@net7/boilerplate-muruca 5.5.7 → 5.5.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,6 +5,8 @@ import { MrInputSelectDS } from '../data-sources/form/input-select.ds';
5
5
  import { MrInputSelectEH } from '../event-handlers/form/input-select.eh';
6
6
  import { MrInputCheckboxDS } from '../data-sources/form/input-checkbox.ds';
7
7
  import { MrInputCheckboxEH } from '../event-handlers/form/input-checkbox.eh';
8
+ import { MrInputTypeaheadDS } from '../data-sources/form/input-typeahead.ds';
9
+ import { MrInputTypeaheadEH } from '../event-handlers/form/input-typeahead.eh';
8
10
  export class MrFormModel {
9
11
  constructor() {
10
12
  this.loaded$ = new ReplaySubject();
@@ -21,6 +23,10 @@ export class MrFormModel {
21
23
  checkbox: {
22
24
  ds: MrInputCheckboxDS,
23
25
  eh: MrInputCheckboxEH
26
+ },
27
+ typeahead: {
28
+ ds: MrInputTypeaheadDS,
29
+ eh: MrInputTypeaheadEH
24
30
  }
25
31
  };
26
32
  this.changed$ = new Subject();
@@ -89,4 +95,4 @@ export class MrFormModel {
89
95
  });
90
96
  }
91
97
  }
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL243LWJvaWxlcnBsYXRlLW11cnVjYS9zcmMvbGliL21vZGVscy9mb3JtLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQU83RSxNQUFNLE9BQU8sV0FBVztJQUF4QjtRQUdTLFlBQU8sR0FBMkIsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUV0RCxXQUFNLEdBT1QsRUFBRSxDQUFDO1FBRUMsZUFBVSxHQUtkO1lBQ0EsSUFBSSxFQUFFO2dCQUNKLEVBQUUsRUFBRSxhQUFhO2dCQUNqQixFQUFFLEVBQUUsYUFBYTthQUNsQjtZQUNELE1BQU0sRUFBRTtnQkFDTixFQUFFLEVBQUUsZUFBZTtnQkFDbkIsRUFBRSxFQUFFLGVBQWU7YUFDcEI7WUFDRCxRQUFRLEVBQUU7Z0JBQ1IsRUFBRSxFQUFFLGlCQUFpQjtnQkFDckIsRUFBRSxFQUFFLGlCQUFpQjthQUN0QjtTQUNGLENBQUM7UUFFSixhQUFRLEdBQTZCLElBQUksT0FBTyxFQUFFLENBQUM7UUFZbkQsYUFBUSxHQUFHLENBQUMsRUFBVSxFQUEwQixFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxF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Qyx5QkFBeUI7Z0JBQ3pCLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDcEIsbUJBQW1CO2dCQUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHO29CQUNoQixFQUFFLEVBQUUsVUFBVTtvQkFDZCxFQUFFLEVBQUUsVUFBVTtvQkFDZCxJQUFJLEVBQUUsQ0FBQyxDQUFTLEVBQUUsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQ3hELENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3ViamVjdCwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTXJJbnB1dFRleHREUyB9IGZyb20gJy4uL2RhdGEtc291cmNlcy9mb3JtL2lucHV0LXRleHQuZHMnO1xuaW1wb3J0IHsgTXJJbnB1dFRleHRFSCB9IGZyb20gJy4uL2V2ZW50LWhhbmRsZXJzL2Zvcm0vaW5wdXQtdGV4dC5laCc7XG5pbXBvcnQgeyBNcklucHV0U2VsZWN0RFMgfSBmcm9tICcuLi9kYXRhLXNvdXJjZXMvZm9ybS9pbnB1dC1zZWxlY3QuZHMnO1xuaW1wb3J0IHsgTXJJbnB1dFNlbGVjdEVIIH0gZnJvbSAnLi4vZXZlbnQtaGFuZGxlcnMvZm9ybS9pbnB1dC1zZWxlY3QuZWgnO1xuaW1wb3J0IHsgTXJJbnB1dENoZWNrYm94RFMgfSBmcm9tICcuLi9kYXRhLXNvdXJjZXMvZm9ybS9pbnB1dC1jaGVja2JveC5kcyc7XG5pbXBvcnQgeyBNcklucHV0Q2hlY2tib3hFSCB9IGZyb20gJy4uL2V2ZW50LWhhbmRsZXJzL2Zvcm0vaW5wdXQtY2hlY2tib3guZWgnO1xuaW1wb3J0IHtcbiAgTXJDaGFuZ2VkUGFyYW1zLFxuICBNcklucHV0RGF0YVNvdXJjZSxcbiAgTXJGb3JtQ29uZmlnLFxufSBmcm9tICcuLi9pbnRlcmZhY2VzL2Zvcm0uaW50ZXJmYWNlJztcblxuZXhwb3J0IGNsYXNzIE1yRm9ybU1vZGVsIHtcbiAgcHVibGljIGNvbmZpZzogTXJGb3JtQ29uZmlnO1xuXG4gIHB1YmxpYyBsb2FkZWQkOiBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFJlcGxheVN1YmplY3QoKTtcblxuICBwdWJsaWMgaW5wdXRzOiB7XG4gICAgW2lkOiBzdHJpbmddOiB7XG4gICAgICBkczogYW55O1xuICAgICAgZWg6IGFueTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG4gICAgICBlbWl0OiAodDogc3RyaW5nLCBwOiBhbnkpID0+IEZ1bmN0aW9uO1xuICAgIH07XG4gIH0gPSB7fTtcblxuICBwcml2YXRlIGlucHV0VHlwZXM6IHtcbiAgICBbaWQ6IHN0cmluZ106IHtcbiAgICAgIGRzOiBhbnk7XG4gICAgICBlaDogYW55O1xuICAgIH07XG4gIH0gPSB7XG4gICAgICB0ZXh0OiB7XG4gICAgICAgIGRzOiBNcklucHV0VGV4dERTLFxuICAgICAgICBlaDogTXJJbnB1dFRleHRFSFxuICAgICAgfSxcbiAgICAgIHNlbGVjdDoge1xuICAgICAgICBkczogTXJJbnB1dFNlbGVjdERTLFxuICAgICAgICBlaDogTXJJbnB1dFNlbGVjdEVIXG4gICAgICB9LFxuICAgICAgY2hlY2tib3g6IHtcbiAgICAgICAgZHM6IE1ySW5wdXRDaGVja2JveERTLFxuICAgICAgICBlaDogTXJJbnB1dENoZWNrYm94RUhcbiAgICAgIH1cbiAgICB9O1xuXG4gIGNoYW5nZWQkOiBTdWJqZWN0PE1yQ2hhbmdlZFBhcmFtcz4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIGluaXQoY29uZmlnOiBNckZvcm1Db25maWcpIHtcbiAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcblxuICAgIC8vIGluaXQgaW5wdXRzXG4gICAgdGhpcy5pbml0SW5wdXRzKCk7XG5cbiAgICAvLyBlbWl0IHNpZ25hbFxuICAgIHRoaXMubG9hZGVkJC5uZXh0KHRydWUpO1xuICB9XG5cbiAgZ2V0SW5wdXQgPSAoaWQ6IHN0cmluZyk6IE1ySW5wdXREYXRhU291cmNlPGFueT4gPT4gdGhpcy5pbnB1dHNbaWRdLmRzO1xuXG4gIGdldElucHV0cyA9ICgpOiB7XG4gICAgW2lkOiBzdHJpbmddOiBNcklucHV0RGF0YVNvdXJjZTxhbnk+O1xuICB9ID0+IHtcbiAgICBjb25zdCBpbnB1dHMgPSB7fTtcbiAgICBPYmplY3Qua2V5cyh0aGlzLmlucHV0cykuZm9yRWFjaCgoaWQpID0+IHtcbiAgICAgIGlucHV0c1tpZF0gPSB0aGlzLmdldElucHV0KGlkKTtcbiAgICB9KTtcbiAgICByZXR1cm4gaW5wdXRzO1xuICB9O1xuXG4gIGdldFN0YXRlKCkge1xuICAgIGNvbnN0IHN0YXRlID0ge307XG4gICAgT2JqZWN0LmtleXModGhpcy5pbnB1dHMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgc3RhdGVba2V5XSA9IHRoaXMuaW5wdXRzW2tleV0uZHMuZ2V0U3RhdGUoKTtcbiAgICB9KTtcbiAgICByZXR1cm4gc3RhdGU7XG4gIH1cblxuICBhZGRJbnB1dFR5cGUodHlwZTogc3RyaW5nLCBkczogYW55LCBlaDogYW55KSB7XG4gICAgaWYgKHRoaXMuaW5wdXRUeXBlc1t0eXBlXSkge1xuICAgICAgdGhyb3cgRXJyb3IoYGlucHV0IHR5cGUgJHt0eXBlfSBhbHJlYWR5IGV4aXN0cyFgKTtcbiAgICB9XG5cbiAgICB0aGlzLmlucHV0VHlwZXNbdHlwZV0gPSB7IGRzLCBlaCB9O1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0SW5wdXRzKCkge1xuICAgIGNvbnN0IHsgc2VjdGlvbnMgfSA9IHRoaXMuY29uZmlnO1xuICAgIHNlY3Rpb25zLmZvckVhY2goKHNlY3Rpb24pID0+IHtcbiAgICAgIHNlY3Rpb24uaW5wdXRzLmZvckVhY2goKHtcbiAgICAgICAgaWQsIHR5cGUsIG9wdGlvbnMsIHN0YXRlLCBkYXRhXG4gICAgICB9KSA9PiB7XG4gICAgICAgIGNvbnN0IERTQ2xhc3MgPSB0aGlzLmlucHV0VHlwZXNbdHlwZV0uZHM7XG4gICAgICAgIGNvbnN0IEVIQ2xhc3MgPSB0aGlzLmlucHV0VHlwZXNbdHlwZV0uZWg7XG4gICAgICAgIGNvbnN0IERTSW5zdGFuY2UgPSBuZXcgRFNDbGFzcyhvcHRpb25zIHx8IHt9KTtcbiAgICAgICAgY29uc3QgRUhJbnN0YW5jZSA9IG5ldyBFSENsYXNzKCk7XG4gICAgICAgIC8vIHNldCBkYXRhc291cmNlIGlkXG4gICAgICAgIERTSW5zdGFuY2UuaWQgPSBpZDtcbiAgICAgICAgLy8gc2V0IGluaXRpYWwgZGF0YVxuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgIERTSW5zdGFuY2UudXBkYXRlKGRhdGEpO1xuICAgICAgICB9XG4gICAgICAgIC8vIHNldCBzdGF0ZVxuICAgICAgICBpZiAoc3RhdGUpIHtcbiAgICAgICAgICBEU0luc3RhbmNlLnNldFN0YXRlKHN0YXRlKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBzZXQgZXZlbnRoYW5kbGVyIGhvc3RpZFxuICAgICAgICBFSEluc3RhbmNlLmhvc3RJZCA9IGlkO1xuICAgICAgICAvLyBhdHRhY2ggZGF0YXNvdXJjZSB0byBldmVudGhhbmRsZXJcbiAgICAgICAgRUhJbnN0YW5jZS5kYXRhU291cmNlID0gRFNJbnN0YW5jZTtcbiAgICAgICAgLy8gYXR0YWNoIGNoYW5nZWQkIHRvIGV2ZW50aGFuZGxlclxuICAgICAgICBFSEluc3RhbmNlLmNoYW5nZWQkID0gdGhpcy5jaGFuZ2VkJDtcbiAgICAgICAgLy8gbGlzdGVuIHRvIGlucHV0IGV2ZW50c1xuICAgICAgICBFSEluc3RhbmNlLmxpc3RlbigpO1xuICAgICAgICAvLyBzYXZlIGl0IHRvIGlucHV0XG4gICAgICAgIHRoaXMuaW5wdXRzW2lkXSA9IHtcbiAgICAgICAgICBkczogRFNJbnN0YW5jZSxcbiAgICAgICAgICBlaDogRUhJbnN0YW5jZSxcbiAgICAgICAgICBlbWl0OiAodDogc3RyaW5nLCBwOiBhbnkpID0+IEVISW5zdGFuY2UuZW1pdElubmVyKHQsIHApXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuIl19
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL243LWJvaWxlcnBsYXRlLW11cnVjYS9zcmMvbGliL21vZGVscy9mb3JtLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQU8vRSxNQUFNLE9BQU8sV0FBVztJQUF4QjtRQUdTLFlBQU8sR0FBMkIsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUV0RCxXQUFNLEdBTVQsRUFBRSxDQUFDO1FBRUMsZUFBVSxHQUtkO1lBQ0EsSUFBSSxFQUFFO2dCQUNKLEVBQUUsRUFBRSxhQUFhO2dCQUNqQixFQUFFLEVBQUUsYUFBYTthQUNsQjtZQUNELE1BQU0sRUFBRTtnQkFDTixFQUFFLEVBQUUsZUFBZTtnQkFDbkIsRUFBRSxFQUFFLGVBQWU7YUFDcEI7WUFDRCxRQUFRLEVBQUU7Z0JBQ1IsRUFBRSxFQUFFLGlCQUFpQjtnQkFDckIsRUFBRSxFQUFFLGlCQUFpQjthQUN0QjtZQUNELFNBQVMsRUFBRTtnQkFDVCxFQUFFLEVBQUUsa0JB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QTBCO2dCQUMxQixVQUFVLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztnQkFDdkIsb0NBQW9DO2dCQUNwQyxVQUFVLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztnQkFDbkMsa0NBQWtDO2dCQUNsQyxVQUFVLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7Z0JBQ3BDLHlCQUF5QjtnQkFDekIsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNwQixtQkFBbUI7Z0JBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUc7b0JBQ2hCLEVBQUUsRUFBRSxVQUFVO29CQUNkLEVBQUUsRUFBRSxVQUFVO29CQUNkLElBQUksRUFBRSxDQUFDLENBQVMsRUFBRSxDQUFNLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDeEQsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJqZWN0LCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNcklucHV0VGV4dERTIH0gZnJvbSAnLi4vZGF0YS1zb3VyY2VzL2Zvcm0vaW5wdXQtdGV4dC5kcyc7XG5pbXBvcnQgeyBNcklucHV0VGV4dEVIIH0gZnJvbSAnLi4vZXZlbnQtaGFuZGxlcnMvZm9ybS9pbnB1dC10ZXh0LmVoJztcbmltcG9ydCB7IE1ySW5wdXRTZWxlY3REUyB9IGZyb20gJy4uL2RhdGEtc291cmNlcy9mb3JtL2lucHV0LXNlbGVjdC5kcyc7XG5pbXBvcnQgeyBNcklucHV0U2VsZWN0RUggfSBmcm9tICcuLi9ldmVudC1oYW5kbGVycy9mb3JtL2lucHV0LXNlbGVjdC5laCc7XG5pbXBvcnQgeyBNcklucHV0Q2hlY2tib3hEUyB9IGZyb20gJy4uL2RhdGEtc291cmNlcy9mb3JtL2lucHV0LWNoZWNrYm94LmRzJztcbmltcG9ydCB7IE1ySW5wdXRDaGVja2JveEVIIH0gZnJvbSAnLi4vZXZlbnQtaGFuZGxlcnMvZm9ybS9pbnB1dC1jaGVja2JveC5laCc7XG5pbXBvcnQgeyBNcklucHV0VHlwZWFoZWFkRFMgfSBmcm9tICcuLi9kYXRhLXNvdXJjZXMvZm9ybS9pbnB1dC10eXBlYWhlYWQuZHMnO1xuaW1wb3J0IHsgTXJJbnB1dFR5cGVhaGVhZEVIIH0gZnJvbSAnLi4vZXZlbnQtaGFuZGxlcnMvZm9ybS9pbnB1dC10eXBlYWhlYWQuZWgnO1xuaW1wb3J0IHtcbiAgTXJDaGFuZ2VkUGFyYW1zLFxuICBNcklucHV0RGF0YVNvdXJjZSxcbiAgTXJGb3JtQ29uZmlnLFxufSBmcm9tICcuLi9pbnRlcmZhY2VzL2Zvcm0uaW50ZXJmYWNlJztcblxuZXhwb3J0IGNsYXNzIE1yRm9ybU1vZGVsIHtcbiAgcHVibGljIGNvbmZpZzogTXJGb3JtQ29uZmlnO1xuXG4gIHB1YmxpYyBsb2FkZWQkOiBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFJlcGxheVN1YmplY3QoKTtcblxuICBwdWJsaWMgaW5wdXRzOiB7XG4gICAgW2lkOiBzdHJpbmddOiB7XG4gICAgICBkczogYW55O1xuICAgICAgZWg6IGFueTtcbiAgICAgIGVtaXQ6ICh0OiBzdHJpbmcsIHA6IGFueSkgPT4gdm9pZDtcbiAgICB9O1xuICB9ID0ge307XG5cbiAgcHJpdmF0ZSBpbnB1dFR5cGVzOiB7XG4gICAgW2lkOiBzdHJpbmddOiB7XG4gICAgICBkczogYW55O1xuICAgICAgZWg6IGFueTtcbiAgICB9O1xuICB9ID0ge1xuICAgICAgdGV4dDoge1xuICAgICAgICBkczogTXJJbnB1dFRleHREUyxcbiAgICAgICAgZWg6IE1ySW5wdXRUZXh0RUhcbiAgICAgIH0sXG4gICAgICBzZWxlY3Q6IHtcbiAgICAgICAgZHM6IE1ySW5wdXRTZWxlY3REUyxcbiAgICAgICAgZWg6IE1ySW5wdXRTZWxlY3RFSFxuICAgICAgfSxcbiAgICAgIGNoZWNrYm94OiB7XG4gICAgICAgIGRzOiBNcklucHV0Q2hlY2tib3hEUyxcbiAgICAgICAgZWg6IE1ySW5wdXRDaGVja2JveEVIXG4gICAgICB9LFxuICAgICAgdHlwZWFoZWFkOiB7XG4gICAgICAgIGRzOiBNcklucHV0VHlwZWFoZWFkRFMsXG4gICAgICAgIGVoOiBNcklucHV0VHlwZWFoZWFkRUhcbiAgICAgIH1cbiAgICB9O1xuXG4gIGNoYW5nZWQkOiBTdWJqZWN0PE1yQ2hhbmdlZFBhcmFtcz4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIGluaXQoY29uZmlnOiBNckZvcm1Db25maWcpIHtcbiAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcblxuICAgIC8vIGluaXQgaW5wdXRzXG4gICAgdGhpcy5pbml0SW5wdXRzKCk7XG5cbiAgICAvLyBlbWl0IHNpZ25hbFxuICAgIHRoaXMubG9hZGVkJC5uZXh0KHRydWUpO1xuICB9XG5cbiAgZ2V0SW5wdXQgPSAoaWQ6IHN0cmluZyk6IE1ySW5wdXREYXRhU291cmNlPGFueT4gPT4gdGhpcy5pbnB1dHNbaWRdLmRzO1xuXG4gIGdldElucHV0cyA9ICgpOiB7XG4gICAgW2lkOiBzdHJpbmddOiBNcklucHV0RGF0YVNvdXJjZTxhbnk+O1xuICB9ID0+IHtcbiAgICBjb25zdCBpbnB1dHMgPSB7fTtcbiAgICBPYmplY3Qua2V5cyh0aGlzLmlucHV0cykuZm9yRWFjaCgoaWQpID0+IHtcbiAgICAgIGlucHV0c1tpZF0gPSB0aGlzLmdldElucHV0KGlkKTtcbiAgICB9KTtcbiAgICByZXR1cm4gaW5wdXRzO1xuICB9O1xuXG4gIGdldFN0YXRlKCkge1xuICAgIGNvbnN0IHN0YXRlID0ge307XG4gICAgT2JqZWN0LmtleXModGhpcy5pbnB1dHMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgc3RhdGVba2V5XSA9IHRoaXMuaW5wdXRzW2tleV0uZHMuZ2V0U3RhdGUoKTtcbiAgICB9KTtcbiAgICByZXR1cm4gc3RhdGU7XG4gIH1cblxuICBhZGRJbnB1dFR5cGUodHlwZTogc3RyaW5nLCBkczogYW55LCBlaDogYW55KSB7XG4gICAgaWYgKHRoaXMuaW5wdXRUeXBlc1t0eXBlXSkge1xuICAgICAgdGhyb3cgRXJyb3IoYGlucHV0IHR5cGUgJHt0eXBlfSBhbHJlYWR5IGV4aXN0cyFgKTtcbiAgICB9XG5cbiAgICB0aGlzLmlucHV0VHlwZXNbdHlwZV0gPSB7IGRzLCBlaCB9O1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0SW5wdXRzKCkge1xuICAgIGNvbnN0IHsgc2VjdGlvbnMgfSA9IHRoaXMuY29uZmlnO1xuICAgIHNlY3Rpb25zLmZvckVhY2goKHNlY3Rpb24pID0+IHtcbiAgICAgIHNlY3Rpb24uaW5wdXRzLmZvckVhY2goKHtcbiAgICAgICAgaWQsIHR5cGUsIG9wdGlvbnMsIHN0YXRlLCBkYXRhXG4gICAgICB9KSA9PiB7XG4gICAgICAgIGNvbnN0IERTQ2xhc3MgPSB0aGlzLmlucHV0VHlwZXNbdHlwZV0uZHM7XG4gICAgICAgIGNvbnN0IEVIQ2xhc3MgPSB0aGlzLmlucHV0VHlwZXNbdHlwZV0uZWg7XG4gICAgICAgIGNvbnN0IERTSW5zdGFuY2UgPSBuZXcgRFNDbGFzcyhvcHRpb25zIHx8IHt9KTtcbiAgICAgICAgY29uc3QgRUhJbnN0YW5jZSA9IG5ldyBFSENsYXNzKCk7XG4gICAgICAgIC8vIHNldCBkYXRhc291cmNlIGlkXG4gICAgICAgIERTSW5zdGFuY2UuaWQgPSBpZDtcbiAgICAgICAgLy8gc2V0IGluaXRpYWwgZGF0YVxuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgIERTSW5zdGFuY2UudXBkYXRlKGRhdGEpO1xuICAgICAgICB9XG4gICAgICAgIC8vIHNldCBzdGF0ZVxuICAgICAgICBpZiAoc3RhdGUpIHtcbiAgICAgICAgICBEU0luc3RhbmNlLnNldFN0YXRlKHN0YXRlKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBzZXQgZXZlbnRoYW5kbGVyIGhvc3RpZFxuICAgICAgICBFSEluc3RhbmNlLmhvc3RJZCA9IGlkO1xuICAgICAgICAvLyBhdHRhY2ggZGF0YXNvdXJjZSB0byBldmVudGhhbmRsZXJcbiAgICAgICAgRUhJbnN0YW5jZS5kYXRhU291cmNlID0gRFNJbnN0YW5jZTtcbiAgICAgICAgLy8gYXR0YWNoIGNoYW5nZWQkIHRvIGV2ZW50aGFuZGxlclxuICAgICAgICBFSEluc3RhbmNlLmNoYW5nZWQkID0gdGhpcy5jaGFuZ2VkJDtcbiAgICAgICAgLy8gbGlzdGVuIHRvIGlucHV0IGV2ZW50c1xuICAgICAgICBFSEluc3RhbmNlLmxpc3RlbigpO1xuICAgICAgICAvLyBzYXZlIGl0IHRvIGlucHV0XG4gICAgICAgIHRoaXMuaW5wdXRzW2lkXSA9IHtcbiAgICAgICAgICBkczogRFNJbnN0YW5jZSxcbiAgICAgICAgICBlaDogRUhJbnN0YW5jZSxcbiAgICAgICAgICBlbWl0OiAodDogc3RyaW5nLCBwOiBhbnkpID0+IEVISW5zdGFuY2UuZW1pdElubmVyKHQsIHApXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -33,6 +33,7 @@ import { MrResourceModalComponent } from './components/resource-modal/resource-m
33
33
  import { MrSearchPageDescriptionComponent } from './components/search-page-description/search-page-description';
34
34
  import { ReadMoreComponent } from './components/read-more/read-more';
35
35
  import { MrMetadataDynamicComponent } from './components';
36
+ import { MrInputTypeaheadComponent } from './components/input-typeahead/input-typeahead';
36
37
  import * as i0 from "@angular/core";
37
38
  import * as i1 from "./services/locale.service";
38
39
  import * as i2 from "@net7/boilerplate-common";
@@ -61,6 +62,7 @@ const COMPONENTS = [
61
62
  MrGalleryComponent,
62
63
  MrAdvancedResultComponent,
63
64
  MrMetadataDynamicComponent,
65
+ MrInputTypeaheadComponent,
64
66
  ];
65
67
  export class N7BoilerplateMurucaModule {
66
68
  constructor(localeService, mainState, router) {
@@ -105,7 +107,8 @@ export class N7BoilerplateMurucaModule {
105
107
  MrResourceModalComponent,
106
108
  MrGalleryComponent,
107
109
  MrAdvancedResultComponent,
108
- MrMetadataDynamicComponent], imports: [CommonModule,
110
+ MrMetadataDynamicComponent,
111
+ MrInputTypeaheadComponent], imports: [CommonModule,
109
112
  DvComponentsLibModule,
110
113
  N7BoilerplateCommonModule], exports: [
111
114
  // Layout components
@@ -130,7 +133,8 @@ export class N7BoilerplateMurucaModule {
130
133
  MrResourceModalComponent,
131
134
  MrGalleryComponent,
132
135
  MrAdvancedResultComponent,
133
- MrMetadataDynamicComponent] }); }
136
+ MrMetadataDynamicComponent,
137
+ MrInputTypeaheadComponent] }); }
134
138
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: N7BoilerplateMurucaModule, providers: [
135
139
  MrSearchService,
136
140
  MrLayoutStateService,
@@ -161,4 +165,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
161
165
  exports: COMPONENTS
162
166
  }]
163
167
  }], ctorParameters: () => [{ type: i1.MrLocaleService }, { type: i2.MainStateService }, { type: i3.Router }] });
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibjctYm9pbGVycGxhdGUtbXVydWNhLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL243LWJvaWxlcnBsYXRlLW11cnVjYS9zcmMvbGliL243LWJvaWxlcnBsYXRlLW11cnVjYS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pELE9BQU8sRUFBb0IseUJBQXlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RixXQUFXO0FBQ1gsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxRQUFRO0FBQ1IsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELFVBQVU7QUFDVixPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUM3RyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUMxRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN6RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNuRixP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Iiwic291cmNlc0NvbnRlbnQiOlsiLy8gTU9EVUxFU1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgRHZDb21wb25lbnRzTGliTW9kdWxlIH0gZnJvbSAnQG5ldDcvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBNYWluU3RhdGVTZXJ2aWNlLCBON0JvaWxlcnBsYXRlQ29tbW9uTW9kdWxlIH0gZnJvbSAnQG5ldDcvYm9pbGVycGxhdGUtY29tbW9uJztcbi8vIFNFUlZJQ0VTXG5pbXBvcnQgeyBNclNlYXJjaFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3NlYXJjaC5zZXJ2aWNlJztcbmltcG9ydCB7IE1yTGF5b3V0U3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9sYXlvdXQtc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBNclJlc291cmNlTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9yZXNvdXJjZS1tb2RhbC5zZXJ2aWNlJztcbmltcG9ydCB7IE1yTG9jYWxlU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvbG9jYWxlLnNlcnZpY2UnO1xuLy8gUElQRVNcbmltcG9ydCB7IEVzY2FwZUh0bWxQaXBlIH0gZnJvbSAnLi9waXBlcy9rZWVwLWh0bWwucGlwZSc7XG4vLyBMQVlPVVRTXG5pbXBvcnQgeyBNckFkdmFuY2VkUmVzdWx0c0xheW91dENvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy9hZHZhbmNlZC1yZXN1bHRzLWxheW91dC9hZHZhbmNlZC1yZXN1bHRzLWxheW91dCc7XG5pbXBvcnQgeyBNckFkdmFuY2VkU2VhcmNoTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXRzL2FkdmFuY2VkLXNlYXJjaC1sYXlvdXQvYWR2YW5jZWQtc2VhcmNoLWxheW91dCc7XG5pbXBvcnQgeyBNckhvbWVMYXlvdXRDb21wb25lbnQgfSBmcm9tICcuL2xheW91dHMvaG9tZS1sYXlvdXQvaG9tZS1sYXlvdXQnO1xuaW1wb3J0IHsgTXJJdGluZXJhcnlMYXlvdXRDb21wb25lbnQgfSBmcm9tICcuL2xheW91dHMvaXRpbmVyYXJ5LWxheW91dC9pdGluZXJhcnktbGF5b3V0JztcbmltcG9ydCB7IE1yTWFwTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXRzL21hcC1sYXlvdXQvbWFwLWxheW91dCc7XG5pbXBvcnQgeyBNck5ldHdvcmtMYXlvdXRDb21wb25lbnQgfSBmcm9tICcuL2xheW91dHMvbmV0d29yay1sYXlvdXQvbmV0d29yay1sYXlvdXQnO1xuaW1wb3J0IHsgTXJQb3N0c0xheW91dENvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy9wb3N0cy1sYXlvdXQvcG9zdHMtbGF5b3V0JztcbmltcG9ydCB7IE1yUmVzb3VyY2VMYXlvdXRDb21wb25lbnQgfSBmcm9tICcuL2xheW91dHMvcmVzb3VyY2UtbGF5b3V0L3Jlc291cmNlLWxheW91dCc7XG5pbXBvcnQgeyBNclNlYXJjaEZhY2V0c0xheW91dENvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy9zZWFyY2gtZmFjZXRzLWxheW91dC9zZWFyY2gtZmFjZXRzLWxheW91dCc7XG5pbXBvcnQgeyBNclNlYXJjaExheW91dENvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy9zZWFyY2gtbGF5b3V0L3NlYXJjaC1sYXlvdXQnO1xuaW1wb3J0IHsgTXJTdGF0aWNMYXlvdXRDb21wb25lbnQgfSBmcm9tICcuL2xheW91dHMvc3RhdGljLWxheW91dC9zdGF0aWMtbGF5b3V0JztcbmltcG9ydCB7IE1yVGltZWxpbmVMYXlvdXRDb21wb25lbnQgfSBmcm9tICcuL2xheW91dHMvdGltZWxpbmUtbGF5b3V0L3RpbWVsaW5lLWxheW91dCc7XG4vLyBDT01QT05FTlRTXG5pbXBvcnQgeyBNckFkdmFuY2VkUmVzdWx0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkdmFuY2VkLXJlc3VsdC9hZHZhbmNlZC1yZXN1bHQnO1xuaW1wb3J0IHsgTXJGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Zvcm0vZm9ybSc7XG5pbXBvcnQgeyBNckZvcm1XcmFwcGVyQWNjb3JkaW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Zvcm0td3JhcHBlci1hY2NvcmRpb24vZm9ybS13cmFwcGVyLWFjY29yZGlvbic7XG5pbXBvcnQgeyBNckdhbGxlcnlDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZ2FsbGVyeS9nYWxsZXJ5JztcbmltcG9ydCB7IE1yTWV0YWRhdGFSZWFkbW9yZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tZXRhZGF0YS13aXRoLXJlYWRtb3JlL21ldGFkYXRhLXdpdGgtcmVhZG1vcmUnO1xuaW1wb3J0IHsgTXJSZXNvdXJjZU1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Jlc291cmNlLW1vZGFsL3Jlc291cmNlLW1vZGFsJztcbmltcG9ydCB7IE1yU2VhcmNoUGFnZURlc2NyaXB0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NlYXJjaC1wYWdlLWRlc2NyaXB0aW9uL3NlYXJjaC1wYWdlLWRlc2NyaXB0aW9uJztcbmltcG9ydCB7IFJlYWRNb3JlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JlYWQtbW9yZS9yZWFkLW1vcmUnO1xuaW1wb3J0IHsgTXJNZXRhZGF0YUR5bmFtaWNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMnO1xuXG5jb25zdCBDT01QT05FTlRTID0gW1xuICAvLyBMYXlvdXQgY29tcG9uZW50c1xuICBNckFkdmFuY2VkUmVzdWx0c0xheW91dENvbXBvbmVudCxcbiAgTXJBZHZhbmNlZFNlYXJjaExheW91dENvbXBvbmVudCxcbiAgTXJIb21lTGF5b3V0Q29tcG9uZW50LFxuICBNckl0aW5lcmFyeUxheW91dENvbXBvbmVudCxcbiAgTXJNYXBMYXlvdXRDb21wb25lbnQsXG4gIE1yTmV0d29ya0xheW91dENvbXBvbmVudCxcbiAgTXJNZXRhZGF0YVJlYWRtb3JlQ29tcG9uZW50LFxuICBNclBvc3RzTGF5b3V0Q29tcG9uZW50LFxuICBNclJlc291cmNlTGF5b3V0Q29tcG9uZW50LFxuICBNclNlYXJjaEZhY2V0c0xheW91dENvbXBvbmVudCxcbiAgTXJTZWFyY2hMYXlvdXRDb21wb25lbnQsXG4gIE1yU3RhdGljTGF5b3V0Q29tcG9uZW50LFxuICBNclRpbWVsaW5lTGF5b3V0Q29tcG9uZW50LFxuICAvLyBDdXN0b20gY29tcG9uZW50c1xuICBSZWFkTW9yZUNvbXBvbmVudCxcbiAgTXJGb3JtQ29tcG9uZW50LFxuICBNckZvcm1XcmFwcGVyQWNjb3JkaW9uQ29tcG9uZW50LFxuICBNclNlYXJjaFBhZ2VEZXNjcmlwdGlvbkNvbXBvbmVudCxcbiAgTXJSZXNvdXJjZU1vZGFsQ29tcG9uZW50LFxuICBNckdhbGxlcnlDb21wb25lbnQsXG4gIE1yQWR2YW5jZWRSZXN1bHRDb21wb25lbnQsXG4gIE1yTWV0YWRhdGFEeW5hbWljQ29tcG9uZW50LFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgRXNjYXBlSHRtbFBpcGUsXG4gICAgQ09NUE9ORU5UU1xuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIER2Q29tcG9uZW50c0xpYk1vZHVsZSxcbiAgICBON0JvaWxlcnBsYXRlQ29tbW9uTW9kdWxlLFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBNclNlYXJjaFNlcnZpY2UsXG4gICAgTXJMYXlvdXRTdGF0ZVNlcnZpY2UsXG4gICAgTXJSZXNvdXJjZU1vZGFsU2VydmljZSxcbiAgICBNckxvY2FsZVNlcnZpY2VcbiAgXSxcbiAgZXhwb3J0czogQ09NUE9ORU5UU1xufSlcbmV4cG9ydCBjbGFzcyBON0JvaWxlcnBsYXRlTXVydWNhTW9kdWxlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBsb2NhbGVTZXJ2aWNlOiBNckxvY2FsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtYWluU3RhdGU6IE1haW5TdGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgKSB7XG4gICAgLy8gbGlzdGVuIHRvIGxvY2FsZSAobGFuZ3VhZ2Ugc2VsZWN0KSBjaGFuZ2UgZXZlbnRcbiAgICB0aGlzLm1haW5TdGF0ZS5nZXQkKCdmb290ZXJFdmVudHMnKS5zdWJzY3JpYmUoKHsgdHlwZSwgcGF5bG9hZCB9KSA9PiB7XG4gICAgICBpZiAodHlwZSA9PT0gJ2Zvb3Rlci5jaGFuZ2UnICYmIHBheWxvYWQ/LmlucHV0UGF5bG9hZCA9PT0gJ2xvY2FsZScpIHtcbiAgICAgICAgY29uc3QgY3VycmVudExvY2FsZSA9IHRoaXMubG9jYWxlU2VydmljZS5nZXRMb2NhbGUoKTtcbiAgICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gcGF5bG9hZDtcbiAgICAgICAgaWYgKGN1cnJlbnRMb2NhbGUgIT09IHZhbHVlKSB7XG4gICAgICAgICAgY29uc3QgaHJlZiA9IHRoaXMubG9jYWxlU2VydmljZS5nZXRMaW5rQnlMb2NhbGUodmFsdWUpO1xuICAgICAgICAgIGlmIChocmVmKSB7XG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbaHJlZl0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibjctYm9pbGVycGxhdGUtbXVydWNhLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL243LWJvaWxlcnBsYXRlLW11cnVjYS9zcmMvbGliL243LWJvaWxlcnBsYXRlLW11cnVjYS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pELE9BQU8sRUFBb0IseUJBQXlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RixXQUFXO0FBQ1gsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxRQUFRO0FBQ1IsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELFVBQVU7QUFDVixPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUM3RyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUMxRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN6RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNuRixP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d0JBQ1QsZUFBZTt3QkFDZixvQkFBb0I7d0JBQ3BCLHNCQUFzQjt3QkFDdEIsZUFBZTtxQkFDaEI7b0JBQ0QsT0FBTyxFQUFFLFVBQVU7aUJBQ3BCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTU9EVUxFU1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgRHZDb21wb25lbnRzTGliTW9kdWxlIH0gZnJvbSAnQG5ldDcvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBNYWluU3RhdGVTZXJ2aWNlLCBON0JvaWxlcnBsYXRlQ29tbW9uTW9kdWxlIH0gZnJvbSAnQG5ldDcvYm9pbGVycGxhdGUtY29tbW9uJztcbi8vIFNFUlZJQ0VTXG5pbXBvcnQgeyBNclNlYXJjaFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3NlYXJjaC5zZXJ2aWNlJztcbmltcG9ydCB7IE1yTGF5b3V0U3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9sYXlvdXQtc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBNclJlc291cmNlTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9yZXNvdXJjZS1tb2RhbC5zZXJ2aWNlJztcbmltcG9ydCB7IE1yTG9jYWxlU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvbG9jYWxlLnNlcnZpY2UnO1xuLy8gUElQRVNcbmltcG9ydCB7IEVzY2FwZUh0bWxQaXBlIH0gZnJvbSAnLi9waXBlcy9rZWVwLWh0bWwucGlwZSc7XG4vLyBMQVlPVVRTXG5pbXBvcnQgeyBNckFkdmFuY2VkUmVzdWx0c0xheW91dENvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy9hZHZhbmNlZC1yZXN1bHRzLWxheW91dC9hZHZhbmNlZC1yZXN1bHRzLWxheW91dCc7XG5pbXBvcnQgeyBNckFkdmFuY2VkU2VhcmNoTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXRzL2FkdmFuY2VkLXNlYXJjaC1sYXlvdXQvYWR2YW5jZWQtc2VhcmNoLWxheW91dCc7XG5pbXBvcnQgeyBNckhvbWVMYXlvdXRDb21wb25lbnQgfSBmcm9tICcuL2xheW91dHMvaG9tZS1sYXlvdXQvaG9tZS1sYXlvdXQnO1xuaW1wb3J0IHsgTXJJdGluZXJhcnlMYXlvdXRDb21wb25lbnQgfSBmcm9tICcuL2xheW91dHMvaXRpbmVyYXJ5LWxheW91dC9pdGluZXJhcnktbGF5b3V0JztcbmltcG9ydCB7IE1yTWFwTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXRzL21hcC1sYXlvdXQvbWFwLWxheW91dCc7XG5pbXBvcnQgeyBNck5ldHdvcmtMYXlvdXRDb21wb25lbnQgfSBmcm9tICcuL2xheW91dHMvbmV0d29yay1sYXlvdXQvbmV0d29yay1sYXlvdXQnO1xuaW1wb3J0IHsgTXJQb3N0c0xheW91dENvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy9wb3N0cy1sYXlvdXQvcG9zdHMtbGF5b3V0JztcbmltcG9ydCB7IE1yUmVzb3VyY2VMYXlvdXRDb21wb25lbnQgfSBmcm9tICcuL2xheW91dHMvcmVzb3VyY2UtbGF5b3V0L3Jlc291cmNlLWxheW91dCc7XG5pbXBvcnQgeyBNclNlYXJjaEZhY2V0c0xheW91dENvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy9zZWFyY2gtZmFjZXRzLWxheW91dC9zZWFyY2gtZmFjZXRzLWxheW91dCc7XG5pbXBvcnQgeyBNclNlYXJjaExheW91dENvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0cy9zZWFyY2gtbGF5b3V0L3NlYXJjaC1sYXlvdXQnO1xuaW1wb3J0IHsgTXJTdGF0aWNMYXlvdXRDb21wb25lbnQgfSBmcm9tICcuL2xheW91dHMvc3RhdGljLWxheW91dC9zdGF0aWMtbGF5b3V0JztcbmltcG9ydCB7IE1yVGltZWxpbmVMYXlvdXRDb21wb25lbnQgfSBmcm9tICcuL2xheW91dHMvdGltZWxpbmUtbGF5b3V0L3RpbWVsaW5lLWxheW91dCc7XG4vLyBDT01QT05FTlRTXG5pbXBvcnQgeyBNckFkdmFuY2VkUmVzdWx0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkdmFuY2VkLXJlc3VsdC9hZHZhbmNlZC1yZXN1bHQnO1xuaW1wb3J0IHsgTXJGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Zvcm0vZm9ybSc7XG5pbXBvcnQgeyBNckZvcm1XcmFwcGVyQWNjb3JkaW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Zvcm0td3JhcHBlci1hY2NvcmRpb24vZm9ybS13cmFwcGVyLWFjY29yZGlvbic7XG5pbXBvcnQgeyBNckdhbGxlcnlDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZ2FsbGVyeS9nYWxsZXJ5JztcbmltcG9ydCB7IE1yTWV0YWRhdGFSZWFkbW9yZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tZXRhZGF0YS13aXRoLXJlYWRtb3JlL21ldGFkYXRhLXdpdGgtcmVhZG1vcmUnO1xuaW1wb3J0IHsgTXJSZXNvdXJjZU1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Jlc291cmNlLW1vZGFsL3Jlc291cmNlLW1vZGFsJztcbmltcG9ydCB7IE1yU2VhcmNoUGFnZURlc2NyaXB0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NlYXJjaC1wYWdlLWRlc2NyaXB0aW9uL3NlYXJjaC1wYWdlLWRlc2NyaXB0aW9uJztcbmltcG9ydCB7IFJlYWRNb3JlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JlYWQtbW9yZS9yZWFkLW1vcmUnO1xuaW1wb3J0IHsgTXJNZXRhZGF0YUR5bmFtaWNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgTXJJbnB1dFR5cGVhaGVhZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9pbnB1dC10eXBlYWhlYWQvaW5wdXQtdHlwZWFoZWFkJztcblxuY29uc3QgQ09NUE9ORU5UUyA9IFtcbiAgLy8gTGF5b3V0IGNvbXBvbmVudHNcbiAgTXJBZHZhbmNlZFJlc3VsdHNMYXlvdXRDb21wb25lbnQsXG4gIE1yQWR2YW5jZWRTZWFyY2hMYXlvdXRDb21wb25lbnQsXG4gIE1ySG9tZUxheW91dENvbXBvbmVudCxcbiAgTXJJdGluZXJhcnlMYXlvdXRDb21wb25lbnQsXG4gIE1yTWFwTGF5b3V0Q29tcG9uZW50LFxuICBNck5ldHdvcmtMYXlvdXRDb21wb25lbnQsXG4gIE1yTWV0YWRhdGFSZWFkbW9yZUNvbXBvbmVudCxcbiAgTXJQb3N0c0xheW91dENvbXBvbmVudCxcbiAgTXJSZXNvdXJjZUxheW91dENvbXBvbmVudCxcbiAgTXJTZWFyY2hGYWNldHNMYXlvdXRDb21wb25lbnQsXG4gIE1yU2VhcmNoTGF5b3V0Q29tcG9uZW50LFxuICBNclN0YXRpY0xheW91dENvbXBvbmVudCxcbiAgTXJUaW1lbGluZUxheW91dENvbXBvbmVudCxcbiAgLy8gQ3VzdG9tIGNvbXBvbmVudHNcbiAgUmVhZE1vcmVDb21wb25lbnQsXG4gIE1yRm9ybUNvbXBvbmVudCxcbiAgTXJGb3JtV3JhcHBlckFjY29yZGlvbkNvbXBvbmVudCxcbiAgTXJTZWFyY2hQYWdlRGVzY3JpcHRpb25Db21wb25lbnQsXG4gIE1yUmVzb3VyY2VNb2RhbENvbXBvbmVudCxcbiAgTXJHYWxsZXJ5Q29tcG9uZW50LFxuICBNckFkdmFuY2VkUmVzdWx0Q29tcG9uZW50LFxuICBNck1ldGFkYXRhRHluYW1pY0NvbXBvbmVudCxcbiAgTXJJbnB1dFR5cGVhaGVhZENvbXBvbmVudCxcbl07XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEVzY2FwZUh0bWxQaXBlLFxuICAgIENPTVBPTkVOVFNcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBEdkNvbXBvbmVudHNMaWJNb2R1bGUsXG4gICAgTjdCb2lsZXJwbGF0ZUNvbW1vbk1vZHVsZSxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgTXJTZWFyY2hTZXJ2aWNlLFxuICAgIE1yTGF5b3V0U3RhdGVTZXJ2aWNlLFxuICAgIE1yUmVzb3VyY2VNb2RhbFNlcnZpY2UsXG4gICAgTXJMb2NhbGVTZXJ2aWNlXG4gIF0sXG4gIGV4cG9ydHM6IENPTVBPTkVOVFNcbn0pXG5leHBvcnQgY2xhc3MgTjdCb2lsZXJwbGF0ZU11cnVjYU1vZHVsZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbG9jYWxlU2VydmljZTogTXJMb2NhbGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgbWFpblN0YXRlOiBNYWluU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICkge1xuICAgIC8vIGxpc3RlbiB0byBsb2NhbGUgKGxhbmd1YWdlIHNlbGVjdCkgY2hhbmdlIGV2ZW50XG4gICAgdGhpcy5tYWluU3RhdGUuZ2V0JCgnZm9vdGVyRXZlbnRzJykuc3Vic2NyaWJlKCh7IHR5cGUsIHBheWxvYWQgfSkgPT4ge1xuICAgICAgaWYgKHR5cGUgPT09ICdmb290ZXIuY2hhbmdlJyAmJiBwYXlsb2FkPy5pbnB1dFBheWxvYWQgPT09ICdsb2NhbGUnKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRMb2NhbGUgPSB0aGlzLmxvY2FsZVNlcnZpY2UuZ2V0TG9jYWxlKCk7XG4gICAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IHBheWxvYWQ7XG4gICAgICAgIGlmIChjdXJyZW50TG9jYWxlICE9PSB2YWx1ZSkge1xuICAgICAgICAgIGNvbnN0IGhyZWYgPSB0aGlzLmxvY2FsZVNlcnZpY2UuZ2V0TGlua0J5TG9jYWxlKHZhbHVlKTtcbiAgICAgICAgICBpZiAoaHJlZikge1xuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2hyZWZdKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, Pipe, Input, Component, TemplateRef, ContentChild, ElementRef, ViewChild, NgModule } from '@angular/core';
2
+ import { Injectable, Pipe, Input, Component, HostListener, TemplateRef, ContentChild, ElementRef, ViewChild, NgModule } from '@angular/core';
3
3
  import * as i1$2 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import * as i7 from '@net7/components';
@@ -4172,6 +4172,70 @@ class MrInputCheckboxEH extends EventHandler {
4172
4172
  }
4173
4173
  }
4174
4174
 
4175
+ class MrInputTypeaheadDS extends DataSource {
4176
+ constructor() {
4177
+ super(...arguments);
4178
+ this.state = {
4179
+ value: null,
4180
+ disabled: false,
4181
+ hidden: false,
4182
+ };
4183
+ this.getState = () => this.state;
4184
+ }
4185
+ transform(data) {
4186
+ return {
4187
+ ...data,
4188
+ placeholder: _t(data.placeholder)
4189
+ };
4190
+ }
4191
+ setState(newState) {
4192
+ this.state = {
4193
+ ...this.state,
4194
+ ...newState
4195
+ };
4196
+ this.refresh();
4197
+ }
4198
+ clear() {
4199
+ this.setState({ value: null });
4200
+ }
4201
+ refresh() {
4202
+ const { value, hidden, disabled } = this.state;
4203
+ // render value
4204
+ this.output.value = value;
4205
+ // fix element update (same DOM hack as MrInputTextDS)
4206
+ const el = document.getElementById(this.id);
4207
+ if (el) {
4208
+ el.value = value;
4209
+ }
4210
+ // render disabled
4211
+ this.output.disabled = disabled;
4212
+ // render hidden
4213
+ this.output.classes = hidden ? 'is-hidden' : '';
4214
+ }
4215
+ }
4216
+
4217
+ class MrInputTypeaheadEH extends EventHandler {
4218
+ listen() {
4219
+ this.innerEvents$.subscribe(({ type, payload }) => {
4220
+ switch (type) {
4221
+ case `${this.dataSource.id}.change`: {
4222
+ const { value } = payload;
4223
+ // set new value
4224
+ this.dataSource.setState({ value });
4225
+ // emit changed signal
4226
+ this.changed$.next({
4227
+ id: this.dataSource.id,
4228
+ state: this.dataSource.getState()
4229
+ });
4230
+ break;
4231
+ }
4232
+ default:
4233
+ break;
4234
+ }
4235
+ });
4236
+ }
4237
+ }
4238
+
4175
4239
  class MrFormModel {
4176
4240
  constructor() {
4177
4241
  this.loaded$ = new ReplaySubject();
@@ -4188,6 +4252,10 @@ class MrFormModel {
4188
4252
  checkbox: {
4189
4253
  ds: MrInputCheckboxDS,
4190
4254
  eh: MrInputCheckboxEH
4255
+ },
4256
+ typeahead: {
4257
+ ds: MrInputTypeaheadDS,
4258
+ eh: MrInputTypeaheadEH
4191
4259
  }
4192
4260
  };
4193
4261
  this.changed$ = new Subject();
@@ -4377,8 +4445,8 @@ class MrAdvancedSearchLayoutDS extends LayoutDataSource {
4377
4445
  if (input.data.legend) {
4378
4446
  input.data.legend = _t(input.data.legend);
4379
4447
  }
4380
- // input text
4381
- if (input.type === 'text') {
4448
+ // input text / typeahead
4449
+ if (input.type === 'text' || input.type === 'typeahead') {
4382
4450
  if (input.data.placeholder) {
4383
4451
  input.data.placeholder = _t(input.data.placeholder);
4384
4452
  }
@@ -4396,7 +4464,7 @@ class MrAdvancedSearchLayoutDS extends LayoutDataSource {
4396
4464
  });
4397
4465
  }
4398
4466
  // info tooltip
4399
- if (input.info && input.data.label && ['text', 'select'].includes(input.type)) {
4467
+ if (input.info && input.data.label && ['text', 'select', 'typeahead'].includes(input.type)) {
4400
4468
  const inputData = input.data;
4401
4469
  if (/n7-icon/.test(input.data.label))
4402
4470
  return;
@@ -4481,6 +4549,144 @@ const MrAdvancedSearchLayoutConfig = {
4481
4549
  layoutOptions: {}
4482
4550
  };
4483
4551
 
4552
+ /**
4553
+ * MrInputTypeaheadComponent
4554
+ *
4555
+ * A text input with an inline autocomplete dropdown. Supports two modes:
4556
+ *
4557
+ * 1. **Static (local) filtering** — provide a fixed list of strings via `data.options`.
4558
+ * No API call is made; suggestions are filtered client-side on every keystroke.
4559
+ *
4560
+ * ```ts
4561
+ * {
4562
+ * id: 'my-field',
4563
+ * type: 'typeahead',
4564
+ * data: {
4565
+ * id: 'my-field',
4566
+ * label: 'My Field',
4567
+ * options: ['Apple', 'Banana', 'Cherry'],
4568
+ * }
4569
+ * }
4570
+ * ```
4571
+ *
4572
+ * 2. **Dynamic (API) autocomplete** — omit `data.options` and provide
4573
+ * `data.communicationKey` instead. The component calls
4574
+ * `CommunicationService.request$(communicationKey, { queryParams: { q } })`
4575
+ * after a 200 ms debounce. The endpoint must return `string[]`.
4576
+ *
4577
+ * ```ts
4578
+ * {
4579
+ * id: 'my-field',
4580
+ * type: 'typeahead',
4581
+ * data: {
4582
+ * id: 'my-field',
4583
+ * label: 'My Field',
4584
+ * communicationKey: 'myAutocompleteEndpoint',
4585
+ * }
4586
+ * }
4587
+ * ```
4588
+ *
4589
+ * Suggestions appear after 2 characters are typed. Tab completes with the first
4590
+ * suggestion. Clicking outside dismisses the dropdown.
4591
+ */
4592
+ class MrInputTypeaheadComponent {
4593
+ constructor(communication, el) {
4594
+ this.communication = communication;
4595
+ this.el = el;
4596
+ this.suggestions = [];
4597
+ this.isLoading = false;
4598
+ this.currentQuery = '';
4599
+ /** Wraps the form emit to intercept change events for autocomplete fetching */
4600
+ this.localEmit = (type, payload) => {
4601
+ this.emit(type, payload);
4602
+ if (type === 'change') {
4603
+ this.onValueChange(payload?.value || '');
4604
+ }
4605
+ };
4606
+ }
4607
+ /** Wraps the first occurrence of `query` in `text` with a <strong> tag */
4608
+ highlight(text, query) {
4609
+ if (!query)
4610
+ return text;
4611
+ const idx = text.toLowerCase().indexOf(query.toLowerCase());
4612
+ if (idx === -1)
4613
+ return text;
4614
+ return (text.slice(0, idx) +
4615
+ '<strong>' + text.slice(idx, idx + query.length) + '</strong>' +
4616
+ text.slice(idx + query.length));
4617
+ }
4618
+ /** Completes with the first suggestion on Tab */
4619
+ onKeydown(event) {
4620
+ if (event.key === 'Tab' && this.suggestions.length > 0) {
4621
+ event.preventDefault();
4622
+ this.onSelect(this.suggestions[0]);
4623
+ }
4624
+ }
4625
+ /** Selects a suggestion, updates the input and form state */
4626
+ onSelect(suggestion, event) {
4627
+ if (event)
4628
+ event.preventDefault();
4629
+ this.emit('change', { value: suggestion });
4630
+ this.suggestions = [];
4631
+ this.isLoading = false;
4632
+ const input = this.el.nativeElement.querySelector('input');
4633
+ if (input)
4634
+ input.value = suggestion;
4635
+ }
4636
+ onDocumentClick(event) {
4637
+ if (!this.el.nativeElement.contains(event.target)) {
4638
+ this.suggestions = [];
4639
+ this.isLoading = false;
4640
+ }
4641
+ }
4642
+ ngOnDestroy() {
4643
+ clearTimeout(this.timer);
4644
+ }
4645
+ onValueChange(value) {
4646
+ clearTimeout(this.timer);
4647
+ this.currentQuery = value;
4648
+ if (!value || value.length < 2) {
4649
+ this.suggestions = [];
4650
+ this.isLoading = false;
4651
+ return;
4652
+ }
4653
+ // Static options: filter locally, no API call needed
4654
+ if (Array.isArray(this.data?.options)) {
4655
+ const q = value.toLowerCase();
4656
+ this.suggestions = this.data.options
4657
+ .filter((o) => o.toLowerCase().includes(q))
4658
+ .slice(0, 20);
4659
+ return;
4660
+ }
4661
+ this.isLoading = true;
4662
+ this.timer = setTimeout(() => {
4663
+ this.communication.request$(this.data.communicationKey, {
4664
+ queryParams: { q: value },
4665
+ onError: () => {
4666
+ this.isLoading = false;
4667
+ this.suggestions = [];
4668
+ }
4669
+ }).subscribe((res) => {
4670
+ this.isLoading = false;
4671
+ this.suggestions = res || [];
4672
+ });
4673
+ }, 200);
4674
+ }
4675
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MrInputTypeaheadComponent, deps: [{ token: i1.CommunicationService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
4676
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MrInputTypeaheadComponent, selector: "mr-input-typeahead", inputs: { data: "data", emit: "emit" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, ngImport: i0, template: "<div class=\"mr-input-typeahead\" (keydown)=\"onKeydown($event)\">\n <n7-input-text\n [data]=\"data\"\n [emit]=\"localEmit\">\n </n7-input-text>\n <ul *ngIf=\"suggestions.length > 0\" class=\"mr-input-typeahead__dropdown\">\n <li *ngFor=\"let s of suggestions\"\n class=\"mr-input-typeahead__option\"\n (mousedown)=\"onSelect(s, $event)\">\n <span [innerHTML]=\"highlight(s, currentQuery)\"></span>\n </li>\n </ul>\n</div>\n", dependencies: [{ kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.InputTextComponent, selector: "n7-input-text", inputs: ["data", "emit"] }] }); }
4677
+ }
4678
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MrInputTypeaheadComponent, decorators: [{
4679
+ type: Component,
4680
+ args: [{ selector: 'mr-input-typeahead', template: "<div class=\"mr-input-typeahead\" (keydown)=\"onKeydown($event)\">\n <n7-input-text\n [data]=\"data\"\n [emit]=\"localEmit\">\n </n7-input-text>\n <ul *ngIf=\"suggestions.length > 0\" class=\"mr-input-typeahead__dropdown\">\n <li *ngFor=\"let s of suggestions\"\n class=\"mr-input-typeahead__option\"\n (mousedown)=\"onSelect(s, $event)\">\n <span [innerHTML]=\"highlight(s, currentQuery)\"></span>\n </li>\n </ul>\n</div>\n" }]
4681
+ }], ctorParameters: () => [{ type: i1.CommunicationService }, { type: i0.ElementRef }], propDecorators: { data: [{
4682
+ type: Input
4683
+ }], emit: [{
4684
+ type: Input
4685
+ }], onDocumentClick: [{
4686
+ type: HostListener,
4687
+ args: ['document:click', ['$event']]
4688
+ }] } });
4689
+
4484
4690
  class MrFormComponent {
4485
4691
  ngOnInit() {
4486
4692
  if (this.group) {
@@ -4498,11 +4704,11 @@ class MrFormComponent {
4498
4704
  }));
4499
4705
  }
4500
4706
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MrFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4501
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MrFormComponent, selector: "mr-form", inputs: { form: "form", group: "group" }, queries: [{ propertyName: "templateRef", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "<div *ngIf=\"form.loaded$ | async\" class=\"mr-form {{ group?.classes || '' }}\">\n <div *ngFor=\"let section of sections\" class=\"mr-form__section {{ section.classes || '' }}\" \n [ngClass]=\"{ 'mr-form__section-advanced' : section.advancedSection }\" >\n \n <div class=\"mr-form__section-header\">\n <h3 *ngIf=\"section.title\" class=\"mr-form__section-title\">{{ section.title }}</h3>\n <p *ngIf=\"section.description\" class=\"mr-form__section-description\">{{ section.description }}</p>\n </div>\n \n <div class=\"mr-form__section-content\">\n <div *ngFor=\"let input of section.inputs\" class=\"mr-form__element {{ input.options?.classes || '' }}\">\n <ng-container [ngSwitch]=\"input.type\">\n\n <!-- INPUT TEXT -->\n <n7-input-text *ngSwitchCase=\"'text'\" \n [data]=\"form.inputs[input.id].ds.out$ | async\"\n [emit]=\"form.inputs[input.id].emit\"></n7-input-text>\n\n <!-- INPUT CHECKBOX -->\n <n7-input-checkbox *ngSwitchCase=\"'checkbox'\" \n [data]=\"form.inputs[input.id].ds.out$ | async\"\n [emit]=\"form.inputs[input.id].emit\"></n7-input-checkbox>\n\n <!-- INPUT SELECT -->\n <n7-input-select *ngSwitchCase=\"'select'\" \n [data]=\"form.inputs[input.id].ds.out$ | async\"\n [emit]=\"form.inputs[input.id].emit\"></n7-input-select>\n\n <!-- DEFAULT (external template) -->\n <ng-container *ngSwitchDefault>\n <ng-template *ngTemplateOutlet=\"\n templateRef; \n context: { \n type: input.type, \n input: form.inputs[input.id] \n }\"></ng-template>\n </ng-container>\n\n </ng-container>\n </div>\n </div>\n </div>\n</div>", dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1$2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i7.InputCheckboxComponent, selector: "n7-input-checkbox", inputs: ["data", "emit"] }, { kind: "component", type: i7.InputSelectComponent, selector: "n7-input-select", inputs: ["data", "emit"] }, { kind: "component", type: i7.InputTextComponent, selector: "n7-input-text", inputs: ["data", "emit"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }] }); }
4707
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MrFormComponent, selector: "mr-form", inputs: { form: "form", group: "group" }, queries: [{ propertyName: "templateRef", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "<div *ngIf=\"form.loaded$ | async\" class=\"mr-form {{ group?.classes || '' }}\">\n <div *ngFor=\"let section of sections\" class=\"mr-form__section {{ section.classes || '' }}\" \n [ngClass]=\"{ 'mr-form__section-advanced' : section.advancedSection }\" >\n \n <div class=\"mr-form__section-header\">\n <h3 *ngIf=\"section.title\" class=\"mr-form__section-title\">{{ section.title }}</h3>\n <p *ngIf=\"section.description\" class=\"mr-form__section-description\">{{ section.description }}</p>\n </div>\n \n <div class=\"mr-form__section-content\">\n <div *ngFor=\"let input of section.inputs\" class=\"mr-form__element {{ input.options?.classes || '' }}\">\n <ng-container [ngSwitch]=\"input.type\">\n\n <!-- INPUT TEXT -->\n <n7-input-text *ngSwitchCase=\"'text'\" \n [data]=\"form.inputs[input.id].ds.out$ | async\"\n [emit]=\"form.inputs[input.id].emit\"></n7-input-text>\n\n <!-- INPUT CHECKBOX -->\n <n7-input-checkbox *ngSwitchCase=\"'checkbox'\" \n [data]=\"form.inputs[input.id].ds.out$ | async\"\n [emit]=\"form.inputs[input.id].emit\"></n7-input-checkbox>\n\n <!-- INPUT SELECT -->\n <n7-input-select *ngSwitchCase=\"'select'\"\n [data]=\"form.inputs[input.id].ds.out$ | async\"\n [emit]=\"form.inputs[input.id].emit\"></n7-input-select>\n\n <!-- INPUT TYPEAHEAD -->\n <mr-input-typeahead *ngSwitchCase=\"'typeahead'\"\n [data]=\"form.inputs[input.id].ds.out$ | async\"\n [emit]=\"form.inputs[input.id].emit\"></mr-input-typeahead>\n\n <!-- DEFAULT (external template) -->\n <ng-container *ngSwitchDefault>\n <ng-template *ngTemplateOutlet=\"\n templateRef; \n context: { \n type: input.type, \n input: form.inputs[input.id] \n }\"></ng-template>\n </ng-container>\n\n </ng-container>\n </div>\n </div>\n </div>\n</div>", dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1$2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i7.InputCheckboxComponent, selector: "n7-input-checkbox", inputs: ["data", "emit"] }, { kind: "component", type: i7.InputSelectComponent, selector: "n7-input-select", inputs: ["data", "emit"] }, { kind: "component", type: i7.InputTextComponent, selector: "n7-input-text", inputs: ["data", "emit"] }, { kind: "component", type: MrInputTypeaheadComponent, selector: "mr-input-typeahead", inputs: ["data", "emit"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }] }); }
4502
4708
  }
4503
4709
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MrFormComponent, decorators: [{
4504
4710
  type: Component,
4505
- args: [{ selector: 'mr-form', template: "<div *ngIf=\"form.loaded$ | async\" class=\"mr-form {{ group?.classes || '' }}\">\n <div *ngFor=\"let section of sections\" class=\"mr-form__section {{ section.classes || '' }}\" \n [ngClass]=\"{ 'mr-form__section-advanced' : section.advancedSection }\" >\n \n <div class=\"mr-form__section-header\">\n <h3 *ngIf=\"section.title\" class=\"mr-form__section-title\">{{ section.title }}</h3>\n <p *ngIf=\"section.description\" class=\"mr-form__section-description\">{{ section.description }}</p>\n </div>\n \n <div class=\"mr-form__section-content\">\n <div *ngFor=\"let input of section.inputs\" class=\"mr-form__element {{ input.options?.classes || '' }}\">\n <ng-container [ngSwitch]=\"input.type\">\n\n <!-- INPUT TEXT -->\n <n7-input-text *ngSwitchCase=\"'text'\" \n [data]=\"form.inputs[input.id].ds.out$ | async\"\n [emit]=\"form.inputs[input.id].emit\"></n7-input-text>\n\n <!-- INPUT CHECKBOX -->\n <n7-input-checkbox *ngSwitchCase=\"'checkbox'\" \n [data]=\"form.inputs[input.id].ds.out$ | async\"\n [emit]=\"form.inputs[input.id].emit\"></n7-input-checkbox>\n\n <!-- INPUT SELECT -->\n <n7-input-select *ngSwitchCase=\"'select'\" \n [data]=\"form.inputs[input.id].ds.out$ | async\"\n [emit]=\"form.inputs[input.id].emit\"></n7-input-select>\n\n <!-- DEFAULT (external template) -->\n <ng-container *ngSwitchDefault>\n <ng-template *ngTemplateOutlet=\"\n templateRef; \n context: { \n type: input.type, \n input: form.inputs[input.id] \n }\"></ng-template>\n </ng-container>\n\n </ng-container>\n </div>\n </div>\n </div>\n</div>" }]
4711
+ args: [{ selector: 'mr-form', template: "<div *ngIf=\"form.loaded$ | async\" class=\"mr-form {{ group?.classes || '' }}\">\n <div *ngFor=\"let section of sections\" class=\"mr-form__section {{ section.classes || '' }}\" \n [ngClass]=\"{ 'mr-form__section-advanced' : section.advancedSection }\" >\n \n <div class=\"mr-form__section-header\">\n <h3 *ngIf=\"section.title\" class=\"mr-form__section-title\">{{ section.title }}</h3>\n <p *ngIf=\"section.description\" class=\"mr-form__section-description\">{{ section.description }}</p>\n </div>\n \n <div class=\"mr-form__section-content\">\n <div *ngFor=\"let input of section.inputs\" class=\"mr-form__element {{ input.options?.classes || '' }}\">\n <ng-container [ngSwitch]=\"input.type\">\n\n <!-- INPUT TEXT -->\n <n7-input-text *ngSwitchCase=\"'text'\" \n [data]=\"form.inputs[input.id].ds.out$ | async\"\n [emit]=\"form.inputs[input.id].emit\"></n7-input-text>\n\n <!-- INPUT CHECKBOX -->\n <n7-input-checkbox *ngSwitchCase=\"'checkbox'\" \n [data]=\"form.inputs[input.id].ds.out$ | async\"\n [emit]=\"form.inputs[input.id].emit\"></n7-input-checkbox>\n\n <!-- INPUT SELECT -->\n <n7-input-select *ngSwitchCase=\"'select'\"\n [data]=\"form.inputs[input.id].ds.out$ | async\"\n [emit]=\"form.inputs[input.id].emit\"></n7-input-select>\n\n <!-- INPUT TYPEAHEAD -->\n <mr-input-typeahead *ngSwitchCase=\"'typeahead'\"\n [data]=\"form.inputs[input.id].ds.out$ | async\"\n [emit]=\"form.inputs[input.id].emit\"></mr-input-typeahead>\n\n <!-- DEFAULT (external template) -->\n <ng-container *ngSwitchDefault>\n <ng-template *ngTemplateOutlet=\"\n templateRef; \n context: { \n type: input.type, \n input: form.inputs[input.id] \n }\"></ng-template>\n </ng-container>\n\n </ng-container>\n </div>\n </div>\n </div>\n</div>" }]
4506
4712
  }], propDecorators: { form: [{
4507
4713
  type: Input
4508
4714
  }], group: [{
@@ -7578,11 +7784,11 @@ class MrSearchFacetsLayoutComponent extends AbstractLayout {
7578
7784
  });
7579
7785
  }
7580
7786
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MrSearchFacetsLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7581
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MrSearchFacetsLayoutComponent, selector: "mr-search-facets-layout", inputs: { searchService: "searchService", localeService: "localeService" }, usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"lb.dataSource.facets\" class=\"mr-facets__facets-wrapper {{ lb.dataSource.facets.classes || '' }}\">\n\n <div *ngIf=\"lb.dataSource.redirectPath && lb.dataSource.redirectLabel\" class=\"mr-facets__redirect-link\">\n <a href=\"{{ lb.dataSource.redirectPath }}\">{{ lb.dataSource.redirectLabel }}</a>\n </div>\n\n <div *ngFor=\"let section of lb.dataSource.facets.sections\" \n class=\"mr-facets__single-facet {{ section.classes || '' }}\"\n [ngClass]=\"lb.dataSource.searchService.getState$('section', section.id) | async\">\n <n7-facet-header\n *ngIf=\"section.header\"\n [data]=\"lb.widgets[section.header.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.header.id].emit\"\n ></n7-facet-header>\n\n <div [hidden]=\"section.header && !lb.widgets[section.header.id].ds.isOpen()\" class=\"mr-facets__single-facet-content\">\n <div *ngFor=\"let input of section.inputs\" \n [attr.id]=\"'facet-container-' + input.id\"\n class=\"mr-facets__single-facet-inner-content {{ input.classes || '' }}\">\n <ng-container [ngSwitch]=\"input.type\">\n \n <!-- INPUT TEXT -->\n <n7-input-text \n *ngSwitchCase=\"'text'\"\n [data]=\"lb.widgets[input.id].ds.out$ | async\"\n [emit]=\"lb.widgets[input.id].emit\"></n7-input-text>\n \n <!-- INPUT CHECKBOX -->\n <n7-input-checkbox \n *ngSwitchCase=\"'checkbox'\"\n [data]=\"lb.widgets[input.id].ds.out$ | async\"\n [emit]=\"lb.widgets[input.id].emit\"></n7-input-checkbox>\n \n <!-- INPUT SELECT -->\n <n7-input-select \n *ngSwitchCase=\"'select'\"\n [data]=\"lb.widgets[input.id].ds.out$ | async\"\n [emit]=\"lb.widgets[input.id].emit\"></n7-input-select>\n \n <!-- INPUT LINK -->\n <n7-input-link \n *ngSwitchCase=\"'link'\"\n [data]=\"lb.widgets[input.id].ds.out$ | async\"\n [emit]=\"lb.widgets[input.id].emit\"></n7-input-link>\n\n <!-- INPUT LINKMULTI -->\n <n7-input-link \n *ngSwitchCase=\"'linkMulti'\"\n [data]=\"lb.widgets[input.id].ds.out$ | async\"\n [emit]=\"lb.widgets[input.id].emit\"></n7-input-link>\n \n <!-- INPUT MAP -->\n <n7-map \n *ngSwitchCase=\"'map'\"\n [data]=\"lb.widgets[input.id].ds.out$ | async\"\n [emit]=\"lb.widgets[input.id].emit\"></n7-map>\n\n <!-- INPUT HISTOGRAM -->\n <n7-histogram-range \n *ngSwitchCase=\"'histogram'\"\n [data]=\"lb.widgets[input.id].ds.out$ | async\"\n [emit]=\"lb.widgets[input.id].emit\"></n7-histogram-range>\n \n </ng-container>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i7.FacetHeaderComponent, selector: "n7-facet-header", inputs: ["data", "emit"] }, { kind: "component", type: i7.HistogramRangeComponent, selector: "n7-histogram-range", inputs: ["data", "emit"] }, { kind: "component", type: i7.InputCheckboxComponent, selector: "n7-input-checkbox", inputs: ["data", "emit"] }, { kind: "component", type: i7.InputLinkComponent, selector: "n7-input-link", inputs: ["data", "emit"] }, { kind: "component", type: i7.InputSelectComponent, selector: "n7-input-select", inputs: ["data", "emit"] }, { kind: "component", type: i7.InputTextComponent, selector: "n7-input-text", inputs: ["data", "emit"] }, { kind: "component", type: i7.MapComponent, selector: "n7-map", inputs: ["data", "emit"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }] }); }
7787
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MrSearchFacetsLayoutComponent, selector: "mr-search-facets-layout", inputs: { searchService: "searchService", localeService: "localeService" }, usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"lb.dataSource.facets\" class=\"mr-facets__facets-wrapper {{ lb.dataSource.facets.classes || '' }}\">\n\n <div *ngIf=\"lb.dataSource.redirectPath && lb.dataSource.redirectLabel\" class=\"mr-facets__redirect-link\">\n <a href=\"{{ lb.dataSource.redirectPath }}\">{{ lb.dataSource.redirectLabel }}</a>\n </div>\n\n <div *ngFor=\"let section of lb.dataSource.facets.sections\" \n class=\"mr-facets__single-facet {{ section.classes || '' }}\"\n [ngClass]=\"lb.dataSource.searchService.getState$('section', section.id) | async\"\n id=\"{{ section.id }}\"\n >\n <n7-facet-header\n *ngIf=\"section.header\"\n [data]=\"lb.widgets[section.header.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.header.id].emit\"\n ></n7-facet-header>\n\n <div [hidden]=\"section.header && !lb.widgets[section.header.id].ds.isOpen()\" class=\"mr-facets__single-facet-content\">\n <div *ngFor=\"let input of section.inputs\" \n [attr.id]=\"'facet-container-' + input.id\"\n class=\"mr-facets__single-facet-inner-content {{ input.classes || '' }}\">\n <ng-container [ngSwitch]=\"input.type\">\n \n <!-- INPUT TEXT -->\n <n7-input-text \n *ngSwitchCase=\"'text'\"\n [data]=\"lb.widgets[input.id].ds.out$ | async\"\n [emit]=\"lb.widgets[input.id].emit\"></n7-input-text>\n \n <!-- INPUT CHECKBOX -->\n <n7-input-checkbox \n *ngSwitchCase=\"'checkbox'\"\n [data]=\"lb.widgets[input.id].ds.out$ | async\"\n [emit]=\"lb.widgets[input.id].emit\"></n7-input-checkbox>\n \n <!-- INPUT SELECT -->\n <n7-input-select \n *ngSwitchCase=\"'select'\"\n [data]=\"lb.widgets[input.id].ds.out$ | async\"\n [emit]=\"lb.widgets[input.id].emit\"></n7-input-select>\n \n <!-- INPUT LINK -->\n <n7-input-link \n *ngSwitchCase=\"'link'\"\n [data]=\"lb.widgets[input.id].ds.out$ | async\"\n [emit]=\"lb.widgets[input.id].emit\"></n7-input-link>\n\n <!-- INPUT LINKMULTI -->\n <n7-input-link \n *ngSwitchCase=\"'linkMulti'\"\n [data]=\"lb.widgets[input.id].ds.out$ | async\"\n [emit]=\"lb.widgets[input.id].emit\"></n7-input-link>\n \n <!-- INPUT MAP -->\n <n7-map \n *ngSwitchCase=\"'map'\"\n [data]=\"lb.widgets[input.id].ds.out$ | async\"\n [emit]=\"lb.widgets[input.id].emit\"></n7-map>\n\n <!-- INPUT HISTOGRAM -->\n <n7-histogram-range \n *ngSwitchCase=\"'histogram'\"\n [data]=\"lb.widgets[input.id].ds.out$ | async\"\n [emit]=\"lb.widgets[input.id].emit\"></n7-histogram-range>\n \n </ng-container>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i7.FacetHeaderComponent, selector: "n7-facet-header", inputs: ["data", "emit"] }, { kind: "component", type: i7.HistogramRangeComponent, selector: "n7-histogram-range", inputs: ["data", "emit"] }, { kind: "component", type: i7.InputCheckboxComponent, selector: "n7-input-checkbox", inputs: ["data", "emit"] }, { kind: "component", type: i7.InputLinkComponent, selector: "n7-input-link", inputs: ["data", "emit"] }, { kind: "component", type: i7.InputSelectComponent, selector: "n7-input-select", inputs: ["data", "emit"] }, { kind: "component", type: i7.InputTextComponent, selector: "n7-input-text", inputs: ["data", "emit"] }, { kind: "component", type: i7.MapComponent, selector: "n7-map", inputs: ["data", "emit"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }] }); }
7582
7788
  }
7583
7789
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MrSearchFacetsLayoutComponent, decorators: [{
7584
7790
  type: Component,
7585
- args: [{ selector: 'mr-search-facets-layout', template: "<div *ngIf=\"lb.dataSource.facets\" class=\"mr-facets__facets-wrapper {{ lb.dataSource.facets.classes || '' }}\">\n\n <div *ngIf=\"lb.dataSource.redirectPath && lb.dataSource.redirectLabel\" class=\"mr-facets__redirect-link\">\n <a href=\"{{ lb.dataSource.redirectPath }}\">{{ lb.dataSource.redirectLabel }}</a>\n </div>\n\n <div *ngFor=\"let section of lb.dataSource.facets.sections\" \n class=\"mr-facets__single-facet {{ section.classes || '' }}\"\n [ngClass]=\"lb.dataSource.searchService.getState$('section', section.id) | async\">\n <n7-facet-header\n *ngIf=\"section.header\"\n [data]=\"lb.widgets[section.header.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.header.id].emit\"\n ></n7-facet-header>\n\n <div [hidden]=\"section.header && !lb.widgets[section.header.id].ds.isOpen()\" class=\"mr-facets__single-facet-content\">\n <div *ngFor=\"let input of section.inputs\" \n [attr.id]=\"'facet-container-' + input.id\"\n class=\"mr-facets__single-facet-inner-content {{ input.classes || '' }}\">\n <ng-container [ngSwitch]=\"input.type\">\n \n <!-- INPUT TEXT -->\n <n7-input-text \n *ngSwitchCase=\"'text'\"\n [data]=\"lb.widgets[input.id].ds.out$ | async\"\n [emit]=\"lb.widgets[input.id].emit\"></n7-input-text>\n \n <!-- INPUT CHECKBOX -->\n <n7-input-checkbox \n *ngSwitchCase=\"'checkbox'\"\n [data]=\"lb.widgets[input.id].ds.out$ | async\"\n [emit]=\"lb.widgets[input.id].emit\"></n7-input-checkbox>\n \n <!-- INPUT SELECT -->\n <n7-input-select \n *ngSwitchCase=\"'select'\"\n [data]=\"lb.widgets[input.id].ds.out$ | async\"\n [emit]=\"lb.widgets[input.id].emit\"></n7-input-select>\n \n <!-- INPUT LINK -->\n <n7-input-link \n *ngSwitchCase=\"'link'\"\n [data]=\"lb.widgets[input.id].ds.out$ | async\"\n [emit]=\"lb.widgets[input.id].emit\"></n7-input-link>\n\n <!-- INPUT LINKMULTI -->\n <n7-input-link \n *ngSwitchCase=\"'linkMulti'\"\n [data]=\"lb.widgets[input.id].ds.out$ | async\"\n [emit]=\"lb.widgets[input.id].emit\"></n7-input-link>\n \n <!-- INPUT MAP -->\n <n7-map \n *ngSwitchCase=\"'map'\"\n [data]=\"lb.widgets[input.id].ds.out$ | async\"\n [emit]=\"lb.widgets[input.id].emit\"></n7-map>\n\n <!-- INPUT HISTOGRAM -->\n <n7-histogram-range \n *ngSwitchCase=\"'histogram'\"\n [data]=\"lb.widgets[input.id].ds.out$ | async\"\n [emit]=\"lb.widgets[input.id].emit\"></n7-histogram-range>\n \n </ng-container>\n </div>\n </div>\n </div>\n</div>\n" }]
7791
+ args: [{ selector: 'mr-search-facets-layout', template: "<div *ngIf=\"lb.dataSource.facets\" class=\"mr-facets__facets-wrapper {{ lb.dataSource.facets.classes || '' }}\">\n\n <div *ngIf=\"lb.dataSource.redirectPath && lb.dataSource.redirectLabel\" class=\"mr-facets__redirect-link\">\n <a href=\"{{ lb.dataSource.redirectPath }}\">{{ lb.dataSource.redirectLabel }}</a>\n </div>\n\n <div *ngFor=\"let section of lb.dataSource.facets.sections\" \n class=\"mr-facets__single-facet {{ section.classes || '' }}\"\n [ngClass]=\"lb.dataSource.searchService.getState$('section', section.id) | async\"\n id=\"{{ section.id }}\"\n >\n <n7-facet-header\n *ngIf=\"section.header\"\n [data]=\"lb.widgets[section.header.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.header.id].emit\"\n ></n7-facet-header>\n\n <div [hidden]=\"section.header && !lb.widgets[section.header.id].ds.isOpen()\" class=\"mr-facets__single-facet-content\">\n <div *ngFor=\"let input of section.inputs\" \n [attr.id]=\"'facet-container-' + input.id\"\n class=\"mr-facets__single-facet-inner-content {{ input.classes || '' }}\">\n <ng-container [ngSwitch]=\"input.type\">\n \n <!-- INPUT TEXT -->\n <n7-input-text \n *ngSwitchCase=\"'text'\"\n [data]=\"lb.widgets[input.id].ds.out$ | async\"\n [emit]=\"lb.widgets[input.id].emit\"></n7-input-text>\n \n <!-- INPUT CHECKBOX -->\n <n7-input-checkbox \n *ngSwitchCase=\"'checkbox'\"\n [data]=\"lb.widgets[input.id].ds.out$ | async\"\n [emit]=\"lb.widgets[input.id].emit\"></n7-input-checkbox>\n \n <!-- INPUT SELECT -->\n <n7-input-select \n *ngSwitchCase=\"'select'\"\n [data]=\"lb.widgets[input.id].ds.out$ | async\"\n [emit]=\"lb.widgets[input.id].emit\"></n7-input-select>\n \n <!-- INPUT LINK -->\n <n7-input-link \n *ngSwitchCase=\"'link'\"\n [data]=\"lb.widgets[input.id].ds.out$ | async\"\n [emit]=\"lb.widgets[input.id].emit\"></n7-input-link>\n\n <!-- INPUT LINKMULTI -->\n <n7-input-link \n *ngSwitchCase=\"'linkMulti'\"\n [data]=\"lb.widgets[input.id].ds.out$ | async\"\n [emit]=\"lb.widgets[input.id].emit\"></n7-input-link>\n \n <!-- INPUT MAP -->\n <n7-map \n *ngSwitchCase=\"'map'\"\n [data]=\"lb.widgets[input.id].ds.out$ | async\"\n [emit]=\"lb.widgets[input.id].emit\"></n7-map>\n\n <!-- INPUT HISTOGRAM -->\n <n7-histogram-range \n *ngSwitchCase=\"'histogram'\"\n [data]=\"lb.widgets[input.id].ds.out$ | async\"\n [emit]=\"lb.widgets[input.id].emit\"></n7-histogram-range>\n \n </ng-container>\n </div>\n </div>\n </div>\n</div>\n" }]
7586
7792
  }], ctorParameters: () => [], propDecorators: { searchService: [{
7587
7793
  type: Input
7588
7794
  }], localeService: [{
@@ -8601,6 +8807,7 @@ const COMPONENTS = [
8601
8807
  MrGalleryComponent,
8602
8808
  MrAdvancedResultComponent,
8603
8809
  MrMetadataDynamicComponent,
8810
+ MrInputTypeaheadComponent,
8604
8811
  ];
8605
8812
  class N7BoilerplateMurucaModule {
8606
8813
  constructor(localeService, mainState, router) {
@@ -8645,7 +8852,8 @@ class N7BoilerplateMurucaModule {
8645
8852
  MrResourceModalComponent,
8646
8853
  MrGalleryComponent,
8647
8854
  MrAdvancedResultComponent,
8648
- MrMetadataDynamicComponent], imports: [CommonModule,
8855
+ MrMetadataDynamicComponent,
8856
+ MrInputTypeaheadComponent], imports: [CommonModule,
8649
8857
  DvComponentsLibModule,
8650
8858
  N7BoilerplateCommonModule], exports: [
8651
8859
  // Layout components
@@ -8670,7 +8878,8 @@ class N7BoilerplateMurucaModule {
8670
8878
  MrResourceModalComponent,
8671
8879
  MrGalleryComponent,
8672
8880
  MrAdvancedResultComponent,
8673
- MrMetadataDynamicComponent] }); }
8881
+ MrMetadataDynamicComponent,
8882
+ MrInputTypeaheadComponent] }); }
8674
8883
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: N7BoilerplateMurucaModule, providers: [
8675
8884
  MrSearchService,
8676
8885
  MrLayoutStateService,
@@ -8966,5 +9175,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
8966
9175
  * Generated bundle index. Do not edit.
8967
9176
  */
8968
9177
 
8969
- export { DynamicPathGuard, FACETS_REQUEST_STATE_CONTEXT, FACET_STATE_CONTEXT, INPUT_STATE_CONTEXT, LayoutState, LocaleDependenciesGuard, MrAdvancedResultComponent, MrAdvancedResultsLayoutComponent, MrAdvancedResultsLayoutConfig, MrAdvancedResultsLayoutDS, MrAdvancedResultsLayoutEH, MrAdvancedSearchLayoutComponent, MrAdvancedSearchLayoutConfig, MrAdvancedSearchLayoutDS, MrAdvancedSearchLayoutEH, MrAdvancedSearchTagsDS, MrBreadcrumbsDS, MrButtonDS, MrButtonEH, MrCollectionDS, MrCollectionEH, MrContentDS, MrDummyEH, MrFiltersDS, MrFiltersEH, MrFooterService, MrFormComponent, MrFormWrapperAccordionComponent, MrFormWrapperAccordionDS, MrFormWrapperAccordionEH, MrGalleryComponent, MrGalleryDS, MrGalleryEH, MrHeroDS, MrHomeLayoutComponent, MrHomeLayoutConfig, MrHomeLayoutDS, MrHomeLayoutEH, MrImageViewerDS, MrImageViewerIiifDS, MrImageViewerOverlayDetailsDS, MrImageViewerToolsDS, MrInfoBoxDS, MrInnerTitleDS, MrItemPreviewDS, MrItemPreviewsDS, MrItineraryLayoutComponent, MrItineraryLayoutConfig, MrItineraryLayoutDS, MrItineraryLayoutEH, MrLayoutStateService, MrLocaleService, MrMapDS, MrMapEH, MrMapLayoutComponent, MrMapLayoutConfig, MrMapLayoutDS, MrMapLayoutEH, MrMenuService, MrMetadataDS, MrMetadataDynamicComponent, MrMetadataDynamicDS, MrMetadataDynamicEH, MrMetadataReadmoreComponent, MrNavDS, MrNavEH, MrNetworkDS, MrNetworkEH, MrNetworkLayoutComponent, MrNetworkLayoutConfig, MrNetworkLayoutDS, MrNetworkLayoutEH, MrNetworkResourceDS, MrNetworkResourceEH, MrParallelTextViewerDS, MrParallelTextViewerEH, MrPostsLayoutComponent, MrPostsLayoutConfig, MrPostsLayoutDS, MrPostsLayoutEH, MrResourceLayoutComponent, MrResourceLayoutConfig, MrResourceLayoutDS, MrResourceLayoutEH, MrResourceModalComponent, MrResourceModalService, MrResourceTabsDS, MrSearchFacetsLayoutComponent, MrSearchLayoutComponent, MrSearchLayoutConfig, MrSearchLayoutDS, MrSearchLayoutEH, MrSearchPageDescriptionComponent, MrSearchPageDescriptionDS, MrSearchPageDescriptionEH, MrSearchPageTitleDS, MrSearchPageTitleEH, MrSearchResultsDS, MrSearchResultsEH, MrSearchResultsTitleDS, MrSearchResultsTitleEH, MrSearchService, MrSearchTagsDS, MrSearchTagsEH, MrStaticLayoutComponent, MrStaticLayoutConfig, MrStaticLayoutDS, MrStaticLayoutEH, MrStaticMetadataDS, MrTextViewerDS, MrTextViewerEH, MrTimelineDS, MrTimelineEH, MrTimelineLayoutComponent, MrTimelineLayoutConfig, MrTimelineLayoutDS, MrTimelineLayoutEH, MrTranslationsLoaderService, MrYearHeaderDS, MrYearHeaderEH, N7BoilerplateMurucaModule, RESULTS_REQUEST_STATE_CONTEXT, ReadMoreComponent, SECTION_STATE_CONTEXT, SearchFacetsLayoutConfig, SearchFacetsLayoutDS, SearchFacetsLayoutEH };
9178
+ export { DynamicPathGuard, FACETS_REQUEST_STATE_CONTEXT, FACET_STATE_CONTEXT, INPUT_STATE_CONTEXT, LayoutState, LocaleDependenciesGuard, MrAdvancedResultComponent, MrAdvancedResultsLayoutComponent, MrAdvancedResultsLayoutConfig, MrAdvancedResultsLayoutDS, MrAdvancedResultsLayoutEH, MrAdvancedSearchLayoutComponent, MrAdvancedSearchLayoutConfig, MrAdvancedSearchLayoutDS, MrAdvancedSearchLayoutEH, MrAdvancedSearchTagsDS, MrBreadcrumbsDS, MrButtonDS, MrButtonEH, MrCollectionDS, MrCollectionEH, MrContentDS, MrDummyEH, MrFiltersDS, MrFiltersEH, MrFooterService, MrFormComponent, MrFormWrapperAccordionComponent, MrFormWrapperAccordionDS, MrFormWrapperAccordionEH, MrGalleryComponent, MrGalleryDS, MrGalleryEH, MrHeroDS, MrHomeLayoutComponent, MrHomeLayoutConfig, MrHomeLayoutDS, MrHomeLayoutEH, MrImageViewerDS, MrImageViewerIiifDS, MrImageViewerOverlayDetailsDS, MrImageViewerToolsDS, MrInfoBoxDS, MrInnerTitleDS, MrInputTypeaheadComponent, MrItemPreviewDS, MrItemPreviewsDS, MrItineraryLayoutComponent, MrItineraryLayoutConfig, MrItineraryLayoutDS, MrItineraryLayoutEH, MrLayoutStateService, MrLocaleService, MrMapDS, MrMapEH, MrMapLayoutComponent, MrMapLayoutConfig, MrMapLayoutDS, MrMapLayoutEH, MrMenuService, MrMetadataDS, MrMetadataDynamicComponent, MrMetadataDynamicDS, MrMetadataDynamicEH, MrMetadataReadmoreComponent, MrNavDS, MrNavEH, MrNetworkDS, MrNetworkEH, MrNetworkLayoutComponent, MrNetworkLayoutConfig, MrNetworkLayoutDS, MrNetworkLayoutEH, MrNetworkResourceDS, MrNetworkResourceEH, MrParallelTextViewerDS, MrParallelTextViewerEH, MrPostsLayoutComponent, MrPostsLayoutConfig, MrPostsLayoutDS, MrPostsLayoutEH, MrResourceLayoutComponent, MrResourceLayoutConfig, MrResourceLayoutDS, MrResourceLayoutEH, MrResourceModalComponent, MrResourceModalService, MrResourceTabsDS, MrSearchFacetsLayoutComponent, MrSearchLayoutComponent, MrSearchLayoutConfig, MrSearchLayoutDS, MrSearchLayoutEH, MrSearchPageDescriptionComponent, MrSearchPageDescriptionDS, MrSearchPageDescriptionEH, MrSearchPageTitleDS, MrSearchPageTitleEH, MrSearchResultsDS, MrSearchResultsEH, MrSearchResultsTitleDS, MrSearchResultsTitleEH, MrSearchService, MrSearchTagsDS, MrSearchTagsEH, MrStaticLayoutComponent, MrStaticLayoutConfig, MrStaticLayoutDS, MrStaticLayoutEH, MrStaticMetadataDS, MrTextViewerDS, MrTextViewerEH, MrTimelineDS, MrTimelineEH, MrTimelineLayoutComponent, MrTimelineLayoutConfig, MrTimelineLayoutDS, MrTimelineLayoutEH, MrTranslationsLoaderService, MrYearHeaderDS, MrYearHeaderEH, N7BoilerplateMurucaModule, RESULTS_REQUEST_STATE_CONTEXT, ReadMoreComponent, SECTION_STATE_CONTEXT, SearchFacetsLayoutConfig, SearchFacetsLayoutDS, SearchFacetsLayoutEH };
8970
9179
  //# sourceMappingURL=net7-boilerplate-muruca.mjs.map