The search component in one place: the sections it is built from, the catalogue of filter and result controls, the templates a page fills in, and the property definitions those templates use.
1. Search component
1.1. Structural definition (by section)
| Section | Purpose | Controls (constant and dynamic) |
|---|
| Header section | Provides context and a top-level action relevant to the current page. | PageTitle – displays the title of the current page.
HeaderActionButton – contextual action (e.g., Create Record, Register, Add). |
| Search panel | Area where the user defines search criteria and executes the query. | FilterButton – expands or collapses filter panel.
EnableBulkDownloadSwitch – enables filter controls available for bulk download search and XML file generation option.
IncludeHistoricalVersionSwitch – includes historical versions in search results.
DraftsSwitch – toggles between viewing Non-drafts or Drafts.
ApplyButton – runs the search query.
GenerateXmlButton – generates XML file for the records displayed on the current results page only.
ResetButton – clears all filters.
[Filter controls…] (dynamic, see section 2). |
| Active tags panel | Displays all currently active (search-applied) filters as removable tags and allows clearing them collectively. | ActiveTagsPanel – system-managed container showing each active filter as tag.
ActiveTagItem – individual tag representing a single active filter (name + value); removable by user action.
ClearActiveFiltersLink – link control; removes all active filters at once and resets search criteria. |
| Results section | Displays search results with navigation and range indicators. | ResultInfoText – always on top; shows range and total results.
PageSizeControl – always on top; defines records per page (options: 5, 10, 20, 50). Label text may vary by implementation (e.g. “Show … entries per page”, “Filter …”).
SortControl – mandatory for card layout; not used in table layout.
[ResultField controls…] (dynamic, see section 3).
[Action controls…] (dynamic, see section 3).
PaginationControls – navigation between result pages. |
1.2. Controls catalogue (by section)
| Control type | Property groups |
|---|
PageTitle | Control: Type: StaticText; Name [default: PageTitle]; Label: Page title text;
Values: Format: Text; ReadOnly: Yes;
Display: Visible: Yes; Enabled: Yes; |
HeaderActionButton | Control: Type: Button; Name [default: HeaderActionButton]; Label [default: context-specific];
Display: SecP: (Security permission); Visible: Yes; Enabled: Yes; Style: Primary;
Behaviour: OnClick: Opens related form or management view; |
1.2.2. Search panel
| Control type | Property groups |
|---|
FilterButton | Control: Type: Button; Name [default: FilterButton]; Label [default: Filter];
Display: Visible: Yes; Enabled: Yes; Style: Primary;
Behaviour: OnClick: Expand or collapse Filter panel; |
EnableBulkDownloadSwitch | Control: Type: Switch; Name [default: EnableBulkDownloadSwitch]; Label [default: Enable search filters available for bulk XML download];
Values: Format: Boolean [default: Off];
Display: Visible: Yes; Enabled: Yes;
Behaviour: OnChange: Enables or disables XML output option; |
IncludeHistoricalVersionSwitch | Control: Type: Switch; Name [default: IncludeHistoricalVersionSwitch]; Label [default: Include historical versions];
Values: Format: Boolean [default: Off];
Display: Visible: Yes; Enabled: Yes;
Behaviour: OnChange: Includes or excludes historical records; |
DraftsSwitch | Control: Type: Switch; Name [default: DraftsSwitch]; Label [default: Non-drafts / Drafts];
Values: Format: Boolean [default: Off];
Display: Visible: Conditional; Enabled: Yes;
Behaviour: OnChange: Toggles between viewing Non-drafts or Drafts; |
ApplyButton | Control: Type: Button; Name [default: ApplyButton]; Label [default: Apply];
Display: Visible: Yes; Enabled: Yes; Style: Primary;
Behaviour: OnClick: Execute search; |
GenerateXmlButton | Control: Type: Button; Name [default: GenerateXmlButton]; Label [default: Generate XML file];
Display: Visible: (default: No); Enabled: (default: No); Style: Secondary;
Behaviour: OnClick: Initiates asynchronous generation of an XML file containing only the records displayed on the currently active results page, according to the active filters and page size settings; |
ResetButton | Control: Type: Button; Name [default: ResetButton]; Label [default: Reset];
Display: Visible: Yes; Enabled: Yes; Style: Secondary;
Behaviour: OnClick: Clear filters; |
[Filter controls…] (dynamic) | Defined in section 2, Filter controls. |
| Control type | Property groups |
|---|
ActiveTagsPanel | Control: Type: Panel; Name [default: ActiveTagsPanel]; Label [default: Active filters];
Values: Format: Dynamic; Source: CurrentFilterSet;
Display: Visible: Yes; Enabled: Yes;
Behaviour: OnRender: Displays all ActiveTagItem controls for currently applied filters; OnUpdate: Refreshes after any filter change. |
ActiveTagItem | Control: Type: Tag; Name [default: ActiveTagItem]; Label [default: Filter label + value];
Values: Format: Text; ReadOnly: Yes;
Display: Visible: Yes; Enabled: Yes;
Behaviour: OnClick: Removes the corresponding filter and triggers automatic search refresh. |
ClearActiveFiltersLink | Control: Type: Link; Name [default: ClearActiveFiltersLink]; Label [default: Clear all filters];
Values: Format: Action; ReadOnly: Yes;
Display: Visible: Yes; Enabled: Yes; Style: Text;
Behaviour: OnClick: Clears all active filters and re-executes search with default criteria. |
1.2.4. Results area
| Control type | Property groups |
|---|
ResultInfoText | Control: Type: StaticText; Name [default: ResultInfoText]; Label [default: System-generated];
Values: TextFormat [default: “Showing X–Y of Z entries”]; ReadOnly: Yes;
Display: Visible: Yes; Enabled: Yes;
Behaviour: Updates automatically on pagination or sorting change; |
PageSizeControl | Control: Type: Dropdown; Name [default: PageSizeControl]; Label [default: context-specific text, e.g. “Show … entries per page” or “Filter …”];
Values: Options: 5; 10; 20; 50;
Display: Visible: Yes; Enabled: Yes;
Behaviour: OnSelect: Changes number of records displayed per page; |
SortControl | Control: Type: Dropdown; Name [default: SortControl]; Label [default: Sort by];
Values: Source: Static SortControlValues list of sorting criteria (domain-specific);
Display: Visible: Yes; Enabled: Yes;
Behaviour: OnSelect: Reorders displayed results; (mandatory for card layout; not used in table layout) |
[ResultField controls…] (dynamic) | Defined in section 3, Result controls. |
[Action controls…] (dynamic) | Defined in section 3, Result controls. |
PaginationControls | Control: Type: System; Name [default: PaginationControls]; Label [default: None];
Values: None [default: None];
Display: Visible: Yes; Enabled: Yes;
Behaviour: OnSelect: Navigate to selected page; |
1.3. Search component configuration template
| Property | Configuration options |
|---|
| Component Used | Search Component |
| Reference Document | Search Component, v.1 |
| PageTitle | [Mandatory] – specify page title text |
| Default Filter Panel Initial State | Collapsed / Expanded |
| EnableBulkDownloadSwitch.Displayed | Yes / No |
| IncludeHistoricalVersionSwitch.Displayed | Yes / No |
| DraftsSwitch.Displayed | Yes / No |
| Results Layout Type | Table Layout / Card Layout |
| Results Section Initial Visibility | Displayed / Not displayed |
| Header Actions | None |
| Control name | Label | Control info | Behaviour |
|---|
HeaderActionButton | [Mandatory] – specify button caption | Type: HeaderActionButton; Style: Primary / Secondary; | OnClick: [Specify action]; |
2. Filter controls
2.1. Catalogue of filter controls
| Filter type | Property groups |
|---|
TextBox control | Control: Type: TextBox; Name (default: None); Label (default: None);
Mapping: Entity (default: None); Attribute (default: None);
Values: Format: Text (default: None); ReadOnly (default: No); Mandatory (default: No);
Sources: None (default: None);
Display: GuidanceText (default: None); Visible (default: Yes); Enabled (default: Yes); ConditionalLabel (default: None);
Behaviour: OnChange Marks filter as Selected; |
DatePicker control | Control: Type: DatePicker; Name (default: None); Label (default: None);
Mapping: Entity (default: None); Attribute (default: None);
Values: Format: Date (default: None); ReadOnly (default: No); Mandatory (default: No);
Sources: None (default: None);
Display: GuidanceText (default: None); Visible (default: Yes); Enabled (default: Yes); ConditionalLabel (default: None);
Behaviour: OnSelect Marks filter as Selected; OnChange Marks filter as Selected; |
DateRange control | Control: Type: DateRange; Name (default: None); Label (default: None);
Mapping: Entity (default: None); AttributeFrom (default: None); AttributeTo (default: None);
Values: Format: Date (default: None); ReadOnly (default: No); Mandatory (default: No);
Sources: None (default: None);
Display: GuidanceText (default: None); Visible (default: Yes); Enabled (default: Yes); ConditionalLabel (default: None);
Behaviour: OnSelect Marks filter as Selected; OnChange Marks filter as Selected; |
Dropdown control | Control: Type: Dropdown; Name (default: None); Label (default: None);
Mapping: Entity (default: None); Attribute (default: None);
Values: Format: Text (default: None); ReadOnly (default: No); Mandatory (default: No);
Sources: Type (default: None); SourceName (default: None);
Display: GuidanceText (default: None); Visible (default: Yes); Enabled (default: Yes); ConditionalLabel (default: None);
Behaviour: OnSelect Marks filter as Selected; OnChange Marks filter as Selected; DependentOn (default: None); |
Autocomplete control | Control: Type: Autocomplete; Name (default: None); Label (default: None);
Mapping: Entity (default: None); Attribute (default: None);
Values: Format: Text (default: None); ReadOnly (default: No); Mandatory (default: No);
Sources: Type (default: None); SourceName (default: None);
Display: GuidanceText (default: None); Visible (default: Yes); Enabled (default: Yes); ConditionalLabel (default: None);
Behaviour: OnSelect Marks filter as Selected; OnChange Marks filter as Selected; |
Checkbox control | Control: Type: Checkbox; Name (default: None); Label (default: None);
Mapping: Entity (default: None); Attribute (default: None);
Values: Format: Boolean (default: Off); ReadOnly (default: No); Mandatory (default: No);
Sources: None (not applicable);
Display: GuidanceText (default: None); Visible (default: Yes); Enabled (default: Yes);
Behaviour: OnChange Marks filter as Selected; |
Switch control | Control: Type: Switch; Name (default: None); Label (default: None);
Mapping: None (not applicable);
Values: Format: Boolean (default: Off); ReadOnly (default: No); Mandatory (default: No);
Sources: None (not applicable);
Display: GuidanceText (default: None); Visible (default: Yes); Enabled (default: Yes);
Behaviour: OnChange Marks filter as Selected; |
Button control | Control: Type: Button; Name (default: None); Label (default: None);
Mapping: None (not applicable);
Values: None (not applicable);
Sources: None (not applicable);
Display: GuidanceText (default: None); Visible (default: Yes); Enabled (default: Yes); Style (default: Secondary);
Behaviour: OnClick; |
2.2. Filter specification template
| Control name | Label | Type | Control info | Display and behaviour |
|---|
| (PascalCaseIdentifier) | (User-facing caption) | (Control type) | Mapping: Entity: (EntityName); Attribute: (AttributeName) / AttributeFrom–AttributeTo (for range);
Values: Format: (Text / Date / Boolean); ReadOnly: (Yes / No); Mandatory: (Yes / No); Composite: (Yes / No);
Sources: Type: (Static / Dynamic); SourceName: (Enum / Dataset / Service name); | Display: GuidanceText: (instructional text); Visible: (Yes / No / Conditional); Enabled: (Yes / No / Conditional); ConditionalLabel: (expression or None); Style: (Primary / Secondary / Text);
Behaviour: OnSelect: (action or system event); OnChange: (action or system event); OnClick: (action or system event); OnRender: (system event); OnUpdate: (system event); DependentOn: (ControlName or None); |
3. Result controls
3.1. Catalogue of result controls
| Result control type | Property groups | Layout applicability |
|---|
ResultField control | Control: Type: ResultField; Name (default: None); Label (default: Column label);
Mapping: Entity (default: None); Attribute (default: None);
Values: Format (default: Text); Composite (default: No); ReadOnly: Yes;
Header: Sortable (default: No); DefaultSort (default: None);
Display: Visible (default: Yes);
Behaviour: None (default: None); | Tabular: displayed as table column with sortable header if enabled. Card: displayed as field within record card; Header group not used. |
Action control | Control: Type: Action; Subtype (Button / Link / Icon); Name (default: None); Label (default: N/A);
Mapping: None (default: always);
Values: Style (default: Secondary); Icon (default: None);
Sources: None (default: None);
Display: Visible (default: Yes); LabelType (default: Static);
Behaviour: OnClick (default: None); | Used in both layouts; provides record-level actions (e.g. View, Open). |
3.2. Layout-specific notes
| Aspect | Tabular layout | Card layout |
|---|
ResultField placement | Each field corresponds to a table column. | Each field displayed as labelled data item within the card body. |
| Sorting | Controlled by Sortable and DefaultSort header attributes. | Not used; sorting handled by SortControl. |
| Action placement | Positioned at the end of the table row. | Displayed after or beside field content depending on card layout. |
3.3. Result instance template
| Control name | Label | Type | Control info | Display and behaviour |
|---|
| (PascalCaseIdentifier) | (Label text) | (Type) | Mapping: Entity: (EntityName); Attribute: (AttributeName);
Values: Format: Text / Date / Composite; Composite: (Yes / No);
Header: Sortable: (Yes / No); DefaultSort: (None / Ascending / Descending); | Display: Visible: Yes / Conditional; Enabled: Yes;
Behaviour: None / OnClick (action specific); |
Short form, used when every property other than the mapping keeps its default:
| Control name | Label | Type | Control info | Display and behaviour |
|---|
| (PascalCaseIdentifier) | (Label text) | (Type) | Mapping: Entity: (…); Attribute: (…); default otherwise; | Display: default; Behaviour: default; |
3.4. Example result instances
3.4.1. Tabular layout
| Control name | Label | Type | Control info | Display and behaviour |
|---|
DeviceIdentifier | UDI-DI / Device identifier | ResultField | Mapping: Entity: Device; Attribute: deviceIdentifier;
Values: Format: Text;
Header: Sortable: No; DefaultSort: None; | Display: Visible: Yes; |
DeviceName | Device name | ResultField | Mapping: Entity: Device; Attribute: deviceName;
Values: Format: Text;
Header: Sortable: Yes; DefaultSort: Ascending; | Display: Visible: Yes; |
Date | Registration date | ResultField | Mapping: Entity: Device; Attribute: registrationDate;
Values: Format: Date;
Header: Sortable: Yes; DefaultSort: Descending; | Display: Visible: Yes; |
ActionsMenu | Actions | Action (Icon) | Mapping: None;
Values: Icon: Ellipsis; Style: Secondary; | Display: Visible: Yes;
Behaviour: OnClick: Open action menu; |
3.4.2. Card layout
| Control name | Label | Type | Control info | Display and behaviour |
|---|
DossierType | Dossier Type | ResultField | Mapping: Entity: VigilanceDossier; Attribute: dossierType;
Values: Format: Text; ReadOnly: Yes; | Display: Visible: Yes; Enabled: Yes; |
Manufacturer | Manufacturer | ResultField | Mapping: Entity: VigilanceDossier; Attribute: mfSrn + OrganisationName;
Values: Format: Composite; ReadOnly: Yes; | Display: Visible: Yes; |
ViewAction | View | Action (Button) | Mapping: None;
Values: Style: Secondary; | Display: Visible: Yes;
Behaviour: OnClick: Open dossier details; |
ShowAllDevices | Show all devices | Action (Link) | Mapping: None;
Values: Style: Text; | Display: Visible: Conditional; Enabled: Yes;
Behaviour: OnClick: Open modal with all devices; |
3.5. Control defaults
| Control | Control info (defaults) | Display and behaviour (defaults) |
|---|
ResultField | Control: Type: ResultField; Name (default: None); Label (default: Column label);
Mapping: Entity (default: None); Attribute (default: None);
Values: Format (default: Text); Composite (default: No);
Header: Sortable (default: No); DefaultSort (default: None); | Display: Visible (default: Yes);
Behaviour: None (default: None); |
Action | Control: Type: Action; Subtype (Button / Link / Icon); Style (default: Secondary); Icon (default: None); LabelType (default: Static); | Display: Visible (default: Yes);
Behaviour: OnClick (default: None); |
3.6. Quick reference
| Control type | Key properties | Behaviour | Layout use |
|---|
ResultField | Format: Text / Date / Composite; Header: Sortable Yes/No; DefaultSort None / Ascending / Descending; | None; | Tabular / Card; |
Action | Subtype: Button / Link / Icon; Style: Primary / Secondary; | OnClick; | Tabular / Card; |
4. Property definitions appendix
4.1. Control group
| Property | Definition | Permitted values |
|---|
| Type | Identifies the control category. Determines applicable property groups and behaviours. | TextBox / Dropdown / DatePicker / DateRange / Autocomplete / Checkbox / Switch / Button / Tag / Link / Panel / StaticText / ResultField / Action |
| Name | Technical identifier of the control, written in PascalCase. Unique within a component. | Text (PascalCase identifier) |
| Label | User-facing caption displayed beside or within the control; may be omitted when not required (e.g., icon-only button). | Text |
4.2. Mapping group
| Property | Definition | Permitted values |
|---|
| Entity | Logical data object (e.g., Device, Certificate) the control binds to. | Entity name / None (not applicable) |
| Attribute | Field within the entity providing or receiving data. | Attribute name / None (not applicable) |
| AttributeFrom / AttributeTo | Used in range controls to define paired attributes (e.g., dateFrom, dateTo). | Attribute name / None (not applicable) |
4.3. Values group
| Property | Definition | Permitted values |
|---|
| Format | Data type or structure accepted by the control. | Text / Date / Boolean |
| Mandatory | Specifies whether a value is required for the control to be valid. | Yes / No / Conditional |
| ReadOnly | If Yes, value cannot be edited by the user. | Yes / No / Conditional |
| Composite | Indicates a value composed of multiple sub-fields. | Yes / No |
4.4. Sources group
| Property | Definition | Permitted values |
|---|
| Type | Defines whether the control’s values are provided from a predefined list or retrieved dynamically at runtime. | Static / Dynamic |
| SourceName | Specifies the exact source (enumeration, dataset, or runtime provider) from which the control retrieves its values. | For Static: enumeration name (e.g., CountryEnum, RegulationEnum); for Dynamic: runtime data provider or reference service (e.g., CompetentAuthoritiesList) |
4.5. Display group
| Property | Definition | Permitted values |
|---|
| GuidanceText | Instructional hint shown near the control (e.g., “Select country”). | Text |
| Visible | Defines whether the control is displayed on screen. | Yes / No / Conditional |
| Enabled | Defines if an interactive control can be used. When No, it’s visible but inactive. | Yes / No / Conditional |
| ConditionalLabel | Alternate label displayed based on another control’s state. | Conditional text expression |
| Style | Visual appearance variant. | Primary / Secondary / Text |
4.6. Behaviour group
| Property | Definition | Permitted values |
|---|
| OnSelect | Action triggered when a user selects a value or option. | Action reference or system event |
| OnChange | Action triggered when the control value changes. | Action reference or system event |
| OnClick | Action triggered when the control is clicked. | Action reference or system event |
| OnRender | Triggered when the control is displayed on screen. | System event |
| OnUpdate | Triggered when the control refreshes due to data change. | System event |
| DependentOn | Defines dependency on another control’s value or state. | Control name |
4.7. Notation rules
(default: …) - configurable property with predefined default value.
(not applicable) - property group required structurally but unused for this control type.
Property group order: Control -> Mapping -> Values -> Sources -> Display -> Behaviour