@net7/boilerplate-muruca 5.2.15 → 5.2.17

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.
@@ -2088,12 +2088,13 @@ class MrResourceTabsDS extends DataSource {
2088
2088
  const locale = localeService.getLocale();
2089
2089
  baseUrl = root[locale];
2090
2090
  }
2091
- return data.map(({ id, label }) => ({
2091
+ return data.map(({ id, label, hideTab }) => ({
2092
2092
  label: _t(label),
2093
2093
  classes: currentTab === id ? 'is-active' : '',
2094
2094
  anchor: {
2095
2095
  href: `/${baseUrl}/${resourceId}/${slug}/${id}`
2096
- }
2096
+ },
2097
+ hideTab
2097
2098
  }));
2098
2099
  }
2099
2100
  }
@@ -2102,6 +2103,14 @@ class MrTextViewerDS extends DataSource {
2102
2103
  transform(data) {
2103
2104
  if (!data)
2104
2105
  return null;
2106
+ if (this.options.facsimileOptions && data.facsimile) {
2107
+ if (!data.facsimile.options) {
2108
+ data.facsimile.options = {};
2109
+ }
2110
+ Object.keys(this.options.facsimileOptions).forEach((key) => {
2111
+ data.facsimile.options[key] = this.options.facsimileOptions[key];
2112
+ });
2113
+ }
2105
2114
  const { enableClickOnEntities, toggleColumn, searchId, searchApi } = this.options || {};
2106
2115
  data.toggleColumn = toggleColumn;
2107
2116
  // force tei publisher endpoint value
@@ -5100,6 +5109,13 @@ class MrResourceLayoutDS extends LayoutDataSource {
5100
5109
  const responseSection = response.sections[id];
5101
5110
  // set id
5102
5111
  widgetDataSource.id = id;
5112
+ if (type === 'tabs') {
5113
+ this.tabConfig = this.tabConfig.map((tab) => ({
5114
+ id: tab.id,
5115
+ label: tab.label,
5116
+ hideTab: responseSection.includes(tab.id)
5117
+ }));
5118
+ }
5103
5119
  // check viewer tools
5104
5120
  if (type === 'viewer') {
5105
5121
  // update image viewer options
@@ -5594,11 +5610,11 @@ class MrResourceLayoutComponent extends AbstractLayout {
5594
5610
  }
5595
5611
  }
5596
5612
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MrResourceLayoutComponent, deps: [{ token: i1.LayoutsConfigurationService }, { token: i2.ActivatedRoute }, { token: i1.ConfigurationService }, { token: i1.CommunicationService }, { token: i1.MainStateService }, { token: i2.ActivatedRoute }, { token: i2.Router }, { token: MrLayoutStateService }, { token: MrResourceModalService }, { token: MrLocaleService }], target: i0.ɵɵFactoryTarget.Component }); }
5597
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MrResourceLayoutComponent, selector: "mr-resource-layout", usesInheritance: true, ngImport: i0, template: "<div class=\"mr-resource mr-layout\" \n *ngIf=\"lb.dataSource && lb.dataSource.pageConfig\"\n [ngClass]=\"{\n 'is-loading': ( layoutState.get$('content') | async ) == 'LOADING',\n 'is-error': ( layoutState.get$('content') | async ) == 'ERROR'\n }\">\n <!-- RESOURCE LAYOUT CONTENT -->\n <ng-container [ngSwitch]=\"layoutState.get$('content') | async\">\n <!-- loading -->\n <ng-container *ngSwitchCase=\"'LOADING'\">\n <div class=\"mr-layout__loader\">\n <n7-loader></n7-loader>\n </div>\n </ng-container>\n\n <!-- error -->\n <ng-container *ngSwitchCase=\"'ERROR'\">\n <div class=\"mr-layout__error\">\n <h2>{{ lb.dataSource.errorTitle }}</h2>\n <p>{{ lb.dataSource.errorDescription }}</p>\n </div>\n </ng-container>\n\n <!-- success -->\n <ng-container *ngSwitchCase=\"'SUCCESS'\">\n <ng-container *ngIf=\"lb.dataSource.pageConfig.sections as sections\">\n <!-- Pass the list of blocks to render to the block template -->\n <div class=\"mr-resource__top\">\n <ng-container *ngTemplateOutlet=\"blocks; context: { $implicit: sections.top }\"></ng-container>\n </div>\n <div class=\"mr-resource__content mr-side-margin\">\n <ng-container *ngTemplateOutlet=\"blocks; context: { $implicit: sections.content }\"></ng-container>\n </div>\n </ng-container>\n </ng-container>\n\n </ng-container>\n</div>\n\n<ng-template #blocks let-list>\n <ng-container *ngFor=\"let section of list\">\n <section *ngIf=\"lb.widgets[section.id].ds.out$ | async\"\n class=\"{{ 'mr-resource__section mr-resource__' + section.type }}\">\n <ng-container [ngSwitch]=\"section.type\">\n\n <!-- TABS -->\n <ng-container *ngSwitchCase=\"'tabs'\">\n <ng-container *ngFor=\"let tab of lb.widgets[section.id].ds.out$ | async\">\n <n7-anchor-wrapper [data]=\"tab.anchor\" [classes]=\"tab.classes\">\n <span class=\"mr-resource__tabs-item\">{{ tab.label }}</span>\n </n7-anchor-wrapper>\n </ng-container>\n </ng-container>\n\n <!-- INNER TITLE -->\n <ng-container *ngSwitchCase=\"'title'\">\n <div class=\"mr-resource__title-content mr-side-margin\">\n <n7-inner-title \n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </n7-inner-title>\n </div>\n </ng-container>\n\n <!-- CUSTOM BUTTON -->\n <ng-container *ngSwitchCase=\"'button'\">\n <div class=\"mr-resource__button\">\n <n7-button \n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </n7-button>\n </div>\n </ng-container>\n \n <!-- IMAGE VIEWER IIIF -->\n <ng-container *ngSwitchCase=\"'viewer-iiif'\">\n <n7-mirador\n (contextmenu)=\"lb.dataSource.hasContextMenu()\"\n [data]=\"lb.widgets[section.id].ds.out$ | async\">\n </n7-mirador>\n </ng-container>\n \n <!-- IMAGE VIEWER -->\n <ng-container *ngSwitchCase=\"'viewer'\">\n\n <n7-image-viewer \n [data]=\"lb.widgets[section.id].ds.out$ | async\" \n [emit]=\"lb.widgets[section.id].emit\">\n </n7-image-viewer>\n <!-- IMAGE VIEWER TOOLS -->\n <n7-image-viewer-tools *ngIf=\"section.tools\" \n [data]=\"lb.widgets[section.id + '-tools'].ds.out$ | async\" \n [emit]=\"lb.widgets[section.id + '-tools'].emit\">\n </n7-image-viewer-tools>\n <!-- IMAGE VIEWER OVERLAY DETAILS -->\n <div *ngIf=\"lb.widgets[section.id + '-overlay-details'].ds.out$ | async as viewerDetailsData\" \n class=\"mr-resource__viewer-overlay-details\">\n <div class=\"mr-resource__viewer-overlay-details__close\">\n <a class=\"mr-resource__viewer-overlay-details__close-link\" \n (click)=\"lb.eventHandler.emitOuter('overlaycloseclick')\">\n <span class=\"n7-icon-close\"></span>\n </a>\n </div>\n <n7-item-preview \n [data]=\"viewerDetailsData\" \n [emit]=\"lb.widgets[section.id + '-overlay-details'].emit\">\n </n7-item-preview>\n </div>\n\n </ng-container>\n \n <!-- METADATA VIEWER -->\n <ng-container *ngSwitchCase=\"'metadata'\">\n \n <div class=\"mr-content-block mr-content-block-metadata\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <mr-read-more [data]=\"section.readmore\">\n <ng-container *ngIf=\" section?.options?.readmore || section?.options?.groupReadmore;\n else wihoutReadmore\">\n <mr-metadata-readmore\n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </mr-metadata-readmore>\n </ng-container>\n <ng-template #wihoutReadmore>\n <n7-metadata-viewer\n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </n7-metadata-viewer>\n </ng-template>\n </mr-read-more>\n </div>\n </div>\n \n </ng-container>\n \n <!-- METADATA DYNAMIC -->\n <ng-container *ngSwitchCase=\"'metadata-dynamic'\">\n <mr-metadata-dynamic \n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </mr-metadata-dynamic> \n </ng-container>\n \n <!-- COLLECTION -->\n <ng-container *ngSwitchCase=\"'collection'\">\n <ng-container *ngIf=\"lb.widgets[section.id].ds.out$ | async as collection$\">\n <div *ngIf=\"collection$.items?.length > 0\" class=\"mr-content-block mr-content-block-collection\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content {{ section.grid ? 'n7-grid-' + section.grid : '' }}\">\n <n7-item-preview *ngFor=\"let item of collection$?.items\"\n [data]=\"item\" [emit]=\"lb.widgets[section.id].emit\">\n </n7-item-preview>\n </div>\n </div>\n </ng-container>\n </ng-container>\n \n <!-- ITEM PREVIEW -->\n <ng-container *ngSwitchCase=\"'preview'\">\n <div class=\"mr-content-block mr-content-block-item-preview\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <n7-item-preview [data]=\"lb.widgets[section.id].ds.out$ | async\" [emit]=\"lb.widgets[section.id].emit\"> \n </n7-item-preview>\n </div>\n </div>\n </ng-container>\n \n <!-- TEXT VIEWER -->\n <ng-container *ngSwitchCase=\"'text-viewer'\">\n <div class=\"mr-content-block mr-content-block-text-viewer\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <n7-text-viewer [data]=\"lb.widgets[section.id].ds.out$ | async\" [emit]=\"lb.widgets[section.id].emit\">\n </n7-text-viewer>\n </div>\n </div>\n \n </ng-container>\n\n <!-- MAP -->\n <ng-container *ngSwitchCase=\"'map'\">\n <div class=\"mr-content-block mr-content-block-map\">\n <div class=\"mr-content-block__content\">\n <n7-map [data]=\"lb.widgets[section.id].ds.out$ | async\" [emit]=\"lb.widgets[section.id].emit\"></n7-map>\n </div>\n </div>\n </ng-container>\n \n <!-- INFO BOX -->\n <ng-container *ngSwitchCase=\"'info-box'\">\n <div class=\"mr-content-block mr-content-block-info-box\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <div class=\"info-box__mock\">info-box</div> \n </div>\n </div>\n </ng-container>\n \n <!-- BREADCRUMBS -->\n <ng-container *ngSwitchCase=\"'breadcrumbs'\">\n <n7-breadcrumbs [data]=\"lb.widgets[section.id].ds.out$ | async\">\n </n7-breadcrumbs>\n </ng-container>\n\n </ng-container>\n </section>\n </ng-container>\n</ng-template>\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.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: "component", type: i7.AnchorWrapperComponent, selector: "n7-anchor-wrapper", inputs: ["data", "classes"], outputs: ["clicked"] }, { kind: "component", type: i7.BreadcrumbsComponent, selector: "n7-breadcrumbs", inputs: ["data", "emit"] }, { kind: "component", type: i7.ButtonComponent, selector: "n7-button", inputs: ["data", "emit"] }, { kind: "component", type: i7.ImageViewerComponent, selector: "n7-image-viewer", inputs: ["data", "emit"] }, { kind: "component", type: i7.ImageViewerToolsComponent, selector: "n7-image-viewer-tools", inputs: ["data", "emit"] }, { kind: "component", type: i7.InnerTitleComponent, selector: "n7-inner-title", inputs: ["data", "emit"] }, { kind: "component", type: i7.ItemPreviewComponent, selector: "n7-item-preview", inputs: ["data", "emit"] }, { kind: "component", type: i7.LoaderComponent, selector: "n7-loader", inputs: ["data"] }, { kind: "component", type: i7.MapComponent, selector: "n7-map", inputs: ["data", "emit"] }, { kind: "component", type: i7.MetadataViewerComponent, selector: "n7-metadata-viewer", inputs: ["data", "emit"] }, { kind: "component", type: i7.MiradorComponent, selector: "n7-mirador", inputs: ["data"] }, { kind: "component", type: i7.TextViewerComponent, selector: "n7-text-viewer", inputs: ["data", "emit"] }, { kind: "component", type: MrMetadataReadmoreComponent, selector: "mr-metadata-readmore", inputs: ["data", "emit"] }, { kind: "component", type: ReadMoreComponent, selector: "mr-read-more", inputs: ["data"] }, { kind: "component", type: MrMetadataDynamicComponent, selector: "mr-metadata-dynamic", inputs: ["data", "emit"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }] }); }
5613
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MrResourceLayoutComponent, selector: "mr-resource-layout", usesInheritance: true, ngImport: i0, template: "<div class=\"mr-resource mr-layout\" \n *ngIf=\"lb.dataSource && lb.dataSource.pageConfig\"\n [ngClass]=\"{\n 'is-loading': ( layoutState.get$('content') | async ) == 'LOADING',\n 'is-error': ( layoutState.get$('content') | async ) == 'ERROR'\n }\">\n <!-- RESOURCE LAYOUT CONTENT -->\n <ng-container [ngSwitch]=\"layoutState.get$('content') | async\">\n <!-- loading -->\n <ng-container *ngSwitchCase=\"'LOADING'\">\n <div class=\"mr-layout__loader\">\n <n7-loader></n7-loader>\n </div>\n </ng-container>\n\n <!-- error -->\n <ng-container *ngSwitchCase=\"'ERROR'\">\n <div class=\"mr-layout__error\">\n <h2>{{ lb.dataSource.errorTitle }}</h2>\n <p>{{ lb.dataSource.errorDescription }}</p>\n </div>\n </ng-container>\n\n <!-- success -->\n <ng-container *ngSwitchCase=\"'SUCCESS'\">\n <ng-container *ngIf=\"lb.dataSource.pageConfig.sections as sections\">\n <!-- Pass the list of blocks to render to the block template -->\n <div class=\"mr-resource__top\">\n <ng-container *ngTemplateOutlet=\"blocks; context: { $implicit: sections.top }\"></ng-container>\n </div>\n <div class=\"mr-resource__content mr-side-margin\">\n <ng-container *ngTemplateOutlet=\"blocks; context: { $implicit: sections.content }\"></ng-container>\n </div>\n </ng-container>\n </ng-container>\n\n </ng-container>\n</div>\n\n<ng-template #blocks let-list>\n <ng-container *ngFor=\"let section of list\">\n <section *ngIf=\"lb.widgets[section.id].ds.out$ | async\"\n class=\"{{ 'mr-resource__section mr-resource__' + section.type }}\">\n <ng-container [ngSwitch]=\"section.type\">\n\n <!-- TABS -->\n <ng-container *ngSwitchCase=\"'tabs'\">\n <ng-container *ngFor=\"let tab of lb.widgets[section.id].ds.out$ | async\">\n <n7-anchor-wrapper [data]=\"tab.anchor\" [classes]=\"tab.classes\" *ngIf=\"!tab.hideTab\">\n <span class=\"mr-resource__tabs-item\">{{ tab.label }}</span>\n </n7-anchor-wrapper>\n </ng-container>\n </ng-container>\n\n <!-- INNER TITLE -->\n <ng-container *ngSwitchCase=\"'title'\">\n <div class=\"mr-resource__title-content mr-side-margin\">\n <n7-inner-title \n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </n7-inner-title>\n </div>\n </ng-container>\n\n <!-- CUSTOM BUTTON -->\n <ng-container *ngSwitchCase=\"'button'\">\n <div class=\"mr-resource__button\">\n <n7-button \n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </n7-button>\n </div>\n </ng-container>\n \n <!-- IMAGE VIEWER IIIF -->\n <ng-container *ngSwitchCase=\"'viewer-iiif'\">\n <n7-mirador\n (contextmenu)=\"lb.dataSource.hasContextMenu()\"\n [data]=\"lb.widgets[section.id].ds.out$ | async\">\n </n7-mirador>\n </ng-container>\n \n <!-- IMAGE VIEWER -->\n <ng-container *ngSwitchCase=\"'viewer'\">\n\n <n7-image-viewer \n [data]=\"lb.widgets[section.id].ds.out$ | async\" \n [emit]=\"lb.widgets[section.id].emit\">\n </n7-image-viewer>\n <!-- IMAGE VIEWER TOOLS -->\n <n7-image-viewer-tools *ngIf=\"section.tools\" \n [data]=\"lb.widgets[section.id + '-tools'].ds.out$ | async\" \n [emit]=\"lb.widgets[section.id + '-tools'].emit\">\n </n7-image-viewer-tools>\n <!-- IMAGE VIEWER OVERLAY DETAILS -->\n <div *ngIf=\"lb.widgets[section.id + '-overlay-details'].ds.out$ | async as viewerDetailsData\" \n class=\"mr-resource__viewer-overlay-details\">\n <div class=\"mr-resource__viewer-overlay-details__close\">\n <a class=\"mr-resource__viewer-overlay-details__close-link\" \n (click)=\"lb.eventHandler.emitOuter('overlaycloseclick')\">\n <span class=\"n7-icon-close\"></span>\n </a>\n </div>\n <n7-item-preview \n [data]=\"viewerDetailsData\" \n [emit]=\"lb.widgets[section.id + '-overlay-details'].emit\">\n </n7-item-preview>\n </div>\n\n </ng-container>\n \n <!-- METADATA VIEWER -->\n <ng-container *ngSwitchCase=\"'metadata'\">\n \n <div class=\"mr-content-block mr-content-block-metadata\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <mr-read-more [data]=\"section.readmore\">\n <ng-container *ngIf=\" section?.options?.readmore || section?.options?.groupReadmore;\n else wihoutReadmore\">\n <mr-metadata-readmore\n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </mr-metadata-readmore>\n </ng-container>\n <ng-template #wihoutReadmore>\n <n7-metadata-viewer\n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </n7-metadata-viewer>\n </ng-template>\n </mr-read-more>\n </div>\n </div>\n \n </ng-container>\n \n <!-- METADATA DYNAMIC -->\n <ng-container *ngSwitchCase=\"'metadata-dynamic'\">\n <mr-metadata-dynamic \n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </mr-metadata-dynamic> \n </ng-container>\n \n <!-- COLLECTION -->\n <ng-container *ngSwitchCase=\"'collection'\">\n <ng-container *ngIf=\"lb.widgets[section.id].ds.out$ | async as collection$\">\n <div *ngIf=\"collection$.items?.length > 0\" class=\"mr-content-block mr-content-block-collection\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content {{ section.grid ? 'n7-grid-' + section.grid : '' }}\">\n <n7-item-preview *ngFor=\"let item of collection$?.items\"\n [data]=\"item\" [emit]=\"lb.widgets[section.id].emit\">\n </n7-item-preview>\n </div>\n </div>\n </ng-container>\n </ng-container>\n \n <!-- ITEM PREVIEW -->\n <ng-container *ngSwitchCase=\"'preview'\">\n <div class=\"mr-content-block mr-content-block-item-preview\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <n7-item-preview [data]=\"lb.widgets[section.id].ds.out$ | async\" [emit]=\"lb.widgets[section.id].emit\"> \n </n7-item-preview>\n </div>\n </div>\n </ng-container>\n \n <!-- TEXT VIEWER -->\n <ng-container *ngSwitchCase=\"'text-viewer'\">\n <div class=\"mr-content-block mr-content-block-text-viewer\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <n7-text-viewer [data]=\"lb.widgets[section.id].ds.out$ | async\" [emit]=\"lb.widgets[section.id].emit\">\n </n7-text-viewer>\n </div>\n </div>\n \n </ng-container>\n\n <!-- MAP -->\n <ng-container *ngSwitchCase=\"'map'\">\n <div class=\"mr-content-block mr-content-block-map\">\n <div class=\"mr-content-block__content\">\n <n7-map [data]=\"lb.widgets[section.id].ds.out$ | async\" [emit]=\"lb.widgets[section.id].emit\"></n7-map>\n </div>\n </div>\n </ng-container>\n \n <!-- INFO BOX -->\n <ng-container *ngSwitchCase=\"'info-box'\">\n <div class=\"mr-content-block mr-content-block-info-box\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <div class=\"info-box__mock\">info-box</div> \n </div>\n </div>\n </ng-container>\n \n <!-- BREADCRUMBS -->\n <ng-container *ngSwitchCase=\"'breadcrumbs'\">\n <n7-breadcrumbs [data]=\"lb.widgets[section.id].ds.out$ | async\">\n </n7-breadcrumbs>\n </ng-container>\n\n </ng-container>\n </section>\n </ng-container>\n</ng-template>\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.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: "component", type: i7.AnchorWrapperComponent, selector: "n7-anchor-wrapper", inputs: ["data", "classes"], outputs: ["clicked"] }, { kind: "component", type: i7.BreadcrumbsComponent, selector: "n7-breadcrumbs", inputs: ["data", "emit"] }, { kind: "component", type: i7.ButtonComponent, selector: "n7-button", inputs: ["data", "emit"] }, { kind: "component", type: i7.ImageViewerComponent, selector: "n7-image-viewer", inputs: ["data", "emit"] }, { kind: "component", type: i7.ImageViewerToolsComponent, selector: "n7-image-viewer-tools", inputs: ["data", "emit"] }, { kind: "component", type: i7.InnerTitleComponent, selector: "n7-inner-title", inputs: ["data", "emit"] }, { kind: "component", type: i7.ItemPreviewComponent, selector: "n7-item-preview", inputs: ["data", "emit"] }, { kind: "component", type: i7.LoaderComponent, selector: "n7-loader", inputs: ["data"] }, { kind: "component", type: i7.MapComponent, selector: "n7-map", inputs: ["data", "emit"] }, { kind: "component", type: i7.MetadataViewerComponent, selector: "n7-metadata-viewer", inputs: ["data", "emit"] }, { kind: "component", type: i7.MiradorComponent, selector: "n7-mirador", inputs: ["data"] }, { kind: "component", type: i7.TextViewerComponent, selector: "n7-text-viewer", inputs: ["data", "emit"] }, { kind: "component", type: MrMetadataReadmoreComponent, selector: "mr-metadata-readmore", inputs: ["data", "emit"] }, { kind: "component", type: ReadMoreComponent, selector: "mr-read-more", inputs: ["data"] }, { kind: "component", type: MrMetadataDynamicComponent, selector: "mr-metadata-dynamic", inputs: ["data", "emit"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }] }); }
5598
5614
  }
5599
5615
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MrResourceLayoutComponent, decorators: [{
5600
5616
  type: Component,
5601
- args: [{ selector: 'mr-resource-layout', template: "<div class=\"mr-resource mr-layout\" \n *ngIf=\"lb.dataSource && lb.dataSource.pageConfig\"\n [ngClass]=\"{\n 'is-loading': ( layoutState.get$('content') | async ) == 'LOADING',\n 'is-error': ( layoutState.get$('content') | async ) == 'ERROR'\n }\">\n <!-- RESOURCE LAYOUT CONTENT -->\n <ng-container [ngSwitch]=\"layoutState.get$('content') | async\">\n <!-- loading -->\n <ng-container *ngSwitchCase=\"'LOADING'\">\n <div class=\"mr-layout__loader\">\n <n7-loader></n7-loader>\n </div>\n </ng-container>\n\n <!-- error -->\n <ng-container *ngSwitchCase=\"'ERROR'\">\n <div class=\"mr-layout__error\">\n <h2>{{ lb.dataSource.errorTitle }}</h2>\n <p>{{ lb.dataSource.errorDescription }}</p>\n </div>\n </ng-container>\n\n <!-- success -->\n <ng-container *ngSwitchCase=\"'SUCCESS'\">\n <ng-container *ngIf=\"lb.dataSource.pageConfig.sections as sections\">\n <!-- Pass the list of blocks to render to the block template -->\n <div class=\"mr-resource__top\">\n <ng-container *ngTemplateOutlet=\"blocks; context: { $implicit: sections.top }\"></ng-container>\n </div>\n <div class=\"mr-resource__content mr-side-margin\">\n <ng-container *ngTemplateOutlet=\"blocks; context: { $implicit: sections.content }\"></ng-container>\n </div>\n </ng-container>\n </ng-container>\n\n </ng-container>\n</div>\n\n<ng-template #blocks let-list>\n <ng-container *ngFor=\"let section of list\">\n <section *ngIf=\"lb.widgets[section.id].ds.out$ | async\"\n class=\"{{ 'mr-resource__section mr-resource__' + section.type }}\">\n <ng-container [ngSwitch]=\"section.type\">\n\n <!-- TABS -->\n <ng-container *ngSwitchCase=\"'tabs'\">\n <ng-container *ngFor=\"let tab of lb.widgets[section.id].ds.out$ | async\">\n <n7-anchor-wrapper [data]=\"tab.anchor\" [classes]=\"tab.classes\">\n <span class=\"mr-resource__tabs-item\">{{ tab.label }}</span>\n </n7-anchor-wrapper>\n </ng-container>\n </ng-container>\n\n <!-- INNER TITLE -->\n <ng-container *ngSwitchCase=\"'title'\">\n <div class=\"mr-resource__title-content mr-side-margin\">\n <n7-inner-title \n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </n7-inner-title>\n </div>\n </ng-container>\n\n <!-- CUSTOM BUTTON -->\n <ng-container *ngSwitchCase=\"'button'\">\n <div class=\"mr-resource__button\">\n <n7-button \n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </n7-button>\n </div>\n </ng-container>\n \n <!-- IMAGE VIEWER IIIF -->\n <ng-container *ngSwitchCase=\"'viewer-iiif'\">\n <n7-mirador\n (contextmenu)=\"lb.dataSource.hasContextMenu()\"\n [data]=\"lb.widgets[section.id].ds.out$ | async\">\n </n7-mirador>\n </ng-container>\n \n <!-- IMAGE VIEWER -->\n <ng-container *ngSwitchCase=\"'viewer'\">\n\n <n7-image-viewer \n [data]=\"lb.widgets[section.id].ds.out$ | async\" \n [emit]=\"lb.widgets[section.id].emit\">\n </n7-image-viewer>\n <!-- IMAGE VIEWER TOOLS -->\n <n7-image-viewer-tools *ngIf=\"section.tools\" \n [data]=\"lb.widgets[section.id + '-tools'].ds.out$ | async\" \n [emit]=\"lb.widgets[section.id + '-tools'].emit\">\n </n7-image-viewer-tools>\n <!-- IMAGE VIEWER OVERLAY DETAILS -->\n <div *ngIf=\"lb.widgets[section.id + '-overlay-details'].ds.out$ | async as viewerDetailsData\" \n class=\"mr-resource__viewer-overlay-details\">\n <div class=\"mr-resource__viewer-overlay-details__close\">\n <a class=\"mr-resource__viewer-overlay-details__close-link\" \n (click)=\"lb.eventHandler.emitOuter('overlaycloseclick')\">\n <span class=\"n7-icon-close\"></span>\n </a>\n </div>\n <n7-item-preview \n [data]=\"viewerDetailsData\" \n [emit]=\"lb.widgets[section.id + '-overlay-details'].emit\">\n </n7-item-preview>\n </div>\n\n </ng-container>\n \n <!-- METADATA VIEWER -->\n <ng-container *ngSwitchCase=\"'metadata'\">\n \n <div class=\"mr-content-block mr-content-block-metadata\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <mr-read-more [data]=\"section.readmore\">\n <ng-container *ngIf=\" section?.options?.readmore || section?.options?.groupReadmore;\n else wihoutReadmore\">\n <mr-metadata-readmore\n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </mr-metadata-readmore>\n </ng-container>\n <ng-template #wihoutReadmore>\n <n7-metadata-viewer\n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </n7-metadata-viewer>\n </ng-template>\n </mr-read-more>\n </div>\n </div>\n \n </ng-container>\n \n <!-- METADATA DYNAMIC -->\n <ng-container *ngSwitchCase=\"'metadata-dynamic'\">\n <mr-metadata-dynamic \n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </mr-metadata-dynamic> \n </ng-container>\n \n <!-- COLLECTION -->\n <ng-container *ngSwitchCase=\"'collection'\">\n <ng-container *ngIf=\"lb.widgets[section.id].ds.out$ | async as collection$\">\n <div *ngIf=\"collection$.items?.length > 0\" class=\"mr-content-block mr-content-block-collection\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content {{ section.grid ? 'n7-grid-' + section.grid : '' }}\">\n <n7-item-preview *ngFor=\"let item of collection$?.items\"\n [data]=\"item\" [emit]=\"lb.widgets[section.id].emit\">\n </n7-item-preview>\n </div>\n </div>\n </ng-container>\n </ng-container>\n \n <!-- ITEM PREVIEW -->\n <ng-container *ngSwitchCase=\"'preview'\">\n <div class=\"mr-content-block mr-content-block-item-preview\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <n7-item-preview [data]=\"lb.widgets[section.id].ds.out$ | async\" [emit]=\"lb.widgets[section.id].emit\"> \n </n7-item-preview>\n </div>\n </div>\n </ng-container>\n \n <!-- TEXT VIEWER -->\n <ng-container *ngSwitchCase=\"'text-viewer'\">\n <div class=\"mr-content-block mr-content-block-text-viewer\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <n7-text-viewer [data]=\"lb.widgets[section.id].ds.out$ | async\" [emit]=\"lb.widgets[section.id].emit\">\n </n7-text-viewer>\n </div>\n </div>\n \n </ng-container>\n\n <!-- MAP -->\n <ng-container *ngSwitchCase=\"'map'\">\n <div class=\"mr-content-block mr-content-block-map\">\n <div class=\"mr-content-block__content\">\n <n7-map [data]=\"lb.widgets[section.id].ds.out$ | async\" [emit]=\"lb.widgets[section.id].emit\"></n7-map>\n </div>\n </div>\n </ng-container>\n \n <!-- INFO BOX -->\n <ng-container *ngSwitchCase=\"'info-box'\">\n <div class=\"mr-content-block mr-content-block-info-box\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <div class=\"info-box__mock\">info-box</div> \n </div>\n </div>\n </ng-container>\n \n <!-- BREADCRUMBS -->\n <ng-container *ngSwitchCase=\"'breadcrumbs'\">\n <n7-breadcrumbs [data]=\"lb.widgets[section.id].ds.out$ | async\">\n </n7-breadcrumbs>\n </ng-container>\n\n </ng-container>\n </section>\n </ng-container>\n</ng-template>\n" }]
5617
+ args: [{ selector: 'mr-resource-layout', template: "<div class=\"mr-resource mr-layout\" \n *ngIf=\"lb.dataSource && lb.dataSource.pageConfig\"\n [ngClass]=\"{\n 'is-loading': ( layoutState.get$('content') | async ) == 'LOADING',\n 'is-error': ( layoutState.get$('content') | async ) == 'ERROR'\n }\">\n <!-- RESOURCE LAYOUT CONTENT -->\n <ng-container [ngSwitch]=\"layoutState.get$('content') | async\">\n <!-- loading -->\n <ng-container *ngSwitchCase=\"'LOADING'\">\n <div class=\"mr-layout__loader\">\n <n7-loader></n7-loader>\n </div>\n </ng-container>\n\n <!-- error -->\n <ng-container *ngSwitchCase=\"'ERROR'\">\n <div class=\"mr-layout__error\">\n <h2>{{ lb.dataSource.errorTitle }}</h2>\n <p>{{ lb.dataSource.errorDescription }}</p>\n </div>\n </ng-container>\n\n <!-- success -->\n <ng-container *ngSwitchCase=\"'SUCCESS'\">\n <ng-container *ngIf=\"lb.dataSource.pageConfig.sections as sections\">\n <!-- Pass the list of blocks to render to the block template -->\n <div class=\"mr-resource__top\">\n <ng-container *ngTemplateOutlet=\"blocks; context: { $implicit: sections.top }\"></ng-container>\n </div>\n <div class=\"mr-resource__content mr-side-margin\">\n <ng-container *ngTemplateOutlet=\"blocks; context: { $implicit: sections.content }\"></ng-container>\n </div>\n </ng-container>\n </ng-container>\n\n </ng-container>\n</div>\n\n<ng-template #blocks let-list>\n <ng-container *ngFor=\"let section of list\">\n <section *ngIf=\"lb.widgets[section.id].ds.out$ | async\"\n class=\"{{ 'mr-resource__section mr-resource__' + section.type }}\">\n <ng-container [ngSwitch]=\"section.type\">\n\n <!-- TABS -->\n <ng-container *ngSwitchCase=\"'tabs'\">\n <ng-container *ngFor=\"let tab of lb.widgets[section.id].ds.out$ | async\">\n <n7-anchor-wrapper [data]=\"tab.anchor\" [classes]=\"tab.classes\" *ngIf=\"!tab.hideTab\">\n <span class=\"mr-resource__tabs-item\">{{ tab.label }}</span>\n </n7-anchor-wrapper>\n </ng-container>\n </ng-container>\n\n <!-- INNER TITLE -->\n <ng-container *ngSwitchCase=\"'title'\">\n <div class=\"mr-resource__title-content mr-side-margin\">\n <n7-inner-title \n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </n7-inner-title>\n </div>\n </ng-container>\n\n <!-- CUSTOM BUTTON -->\n <ng-container *ngSwitchCase=\"'button'\">\n <div class=\"mr-resource__button\">\n <n7-button \n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </n7-button>\n </div>\n </ng-container>\n \n <!-- IMAGE VIEWER IIIF -->\n <ng-container *ngSwitchCase=\"'viewer-iiif'\">\n <n7-mirador\n (contextmenu)=\"lb.dataSource.hasContextMenu()\"\n [data]=\"lb.widgets[section.id].ds.out$ | async\">\n </n7-mirador>\n </ng-container>\n \n <!-- IMAGE VIEWER -->\n <ng-container *ngSwitchCase=\"'viewer'\">\n\n <n7-image-viewer \n [data]=\"lb.widgets[section.id].ds.out$ | async\" \n [emit]=\"lb.widgets[section.id].emit\">\n </n7-image-viewer>\n <!-- IMAGE VIEWER TOOLS -->\n <n7-image-viewer-tools *ngIf=\"section.tools\" \n [data]=\"lb.widgets[section.id + '-tools'].ds.out$ | async\" \n [emit]=\"lb.widgets[section.id + '-tools'].emit\">\n </n7-image-viewer-tools>\n <!-- IMAGE VIEWER OVERLAY DETAILS -->\n <div *ngIf=\"lb.widgets[section.id + '-overlay-details'].ds.out$ | async as viewerDetailsData\" \n class=\"mr-resource__viewer-overlay-details\">\n <div class=\"mr-resource__viewer-overlay-details__close\">\n <a class=\"mr-resource__viewer-overlay-details__close-link\" \n (click)=\"lb.eventHandler.emitOuter('overlaycloseclick')\">\n <span class=\"n7-icon-close\"></span>\n </a>\n </div>\n <n7-item-preview \n [data]=\"viewerDetailsData\" \n [emit]=\"lb.widgets[section.id + '-overlay-details'].emit\">\n </n7-item-preview>\n </div>\n\n </ng-container>\n \n <!-- METADATA VIEWER -->\n <ng-container *ngSwitchCase=\"'metadata'\">\n \n <div class=\"mr-content-block mr-content-block-metadata\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <mr-read-more [data]=\"section.readmore\">\n <ng-container *ngIf=\" section?.options?.readmore || section?.options?.groupReadmore;\n else wihoutReadmore\">\n <mr-metadata-readmore\n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </mr-metadata-readmore>\n </ng-container>\n <ng-template #wihoutReadmore>\n <n7-metadata-viewer\n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </n7-metadata-viewer>\n </ng-template>\n </mr-read-more>\n </div>\n </div>\n \n </ng-container>\n \n <!-- METADATA DYNAMIC -->\n <ng-container *ngSwitchCase=\"'metadata-dynamic'\">\n <mr-metadata-dynamic \n [data]=\"lb.widgets[section.id].ds.out$ | async\"\n [emit]=\"lb.widgets[section.id].emit\">\n </mr-metadata-dynamic> \n </ng-container>\n \n <!-- COLLECTION -->\n <ng-container *ngSwitchCase=\"'collection'\">\n <ng-container *ngIf=\"lb.widgets[section.id].ds.out$ | async as collection$\">\n <div *ngIf=\"collection$.items?.length > 0\" class=\"mr-content-block mr-content-block-collection\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content {{ section.grid ? 'n7-grid-' + section.grid : '' }}\">\n <n7-item-preview *ngFor=\"let item of collection$?.items\"\n [data]=\"item\" [emit]=\"lb.widgets[section.id].emit\">\n </n7-item-preview>\n </div>\n </div>\n </ng-container>\n </ng-container>\n \n <!-- ITEM PREVIEW -->\n <ng-container *ngSwitchCase=\"'preview'\">\n <div class=\"mr-content-block mr-content-block-item-preview\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <n7-item-preview [data]=\"lb.widgets[section.id].ds.out$ | async\" [emit]=\"lb.widgets[section.id].emit\"> \n </n7-item-preview>\n </div>\n </div>\n </ng-container>\n \n <!-- TEXT VIEWER -->\n <ng-container *ngSwitchCase=\"'text-viewer'\">\n <div class=\"mr-content-block mr-content-block-text-viewer\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <n7-text-viewer [data]=\"lb.widgets[section.id].ds.out$ | async\" [emit]=\"lb.widgets[section.id].emit\">\n </n7-text-viewer>\n </div>\n </div>\n \n </ng-container>\n\n <!-- MAP -->\n <ng-container *ngSwitchCase=\"'map'\">\n <div class=\"mr-content-block mr-content-block-map\">\n <div class=\"mr-content-block__content\">\n <n7-map [data]=\"lb.widgets[section.id].ds.out$ | async\" [emit]=\"lb.widgets[section.id].emit\"></n7-map>\n </div>\n </div>\n </ng-container>\n \n <!-- INFO BOX -->\n <ng-container *ngSwitchCase=\"'info-box'\">\n <div class=\"mr-content-block mr-content-block-info-box\">\n <h3 *ngIf=\"section.title\" class=\"mr-content-block__title\">\n {{ section.title }}\n </h3>\n <div class=\"mr-content-block__content\">\n <div class=\"info-box__mock\">info-box</div> \n </div>\n </div>\n </ng-container>\n \n <!-- BREADCRUMBS -->\n <ng-container *ngSwitchCase=\"'breadcrumbs'\">\n <n7-breadcrumbs [data]=\"lb.widgets[section.id].ds.out$ | async\">\n </n7-breadcrumbs>\n </ng-container>\n\n </ng-container>\n </section>\n </ng-container>\n</ng-template>\n" }]
5602
5618
  }], ctorParameters: () => [{ type: i1.LayoutsConfigurationService }, { type: i2.ActivatedRoute }, { type: i1.ConfigurationService }, { type: i1.CommunicationService }, { type: i1.MainStateService }, { type: i2.ActivatedRoute }, { type: i2.Router }, { type: MrLayoutStateService }, { type: MrResourceModalService }, { type: MrLocaleService }] });
5603
5619
 
5604
5620
  class SearchFacetsLayoutDS extends LayoutDataSource {
@@ -5608,9 +5624,13 @@ class SearchFacetsLayoutDS extends LayoutDataSource {
5608
5624
  }
5609
5625
  onInit(payload) {
5610
5626
  this.searchService = payload.searchService;
5627
+ this.localeService = payload.localeService;
5611
5628
  this.searchConfig = this.searchService.getConfig();
5612
5629
  this.facets = this.searchConfig.facets;
5613
5630
  this.initInputs();
5631
+ if (this.searchConfig.facets.redirectLink) {
5632
+ this.initRedirectLink(this.searchConfig.facets.redirectLink);
5633
+ }
5614
5634
  }
5615
5635
  initInputs() {
5616
5636
  // set components data
@@ -5630,6 +5650,11 @@ class SearchFacetsLayoutDS extends LayoutDataSource {
5630
5650
  });
5631
5651
  });
5632
5652
  }
5653
+ initRedirectLink(redirectData) {
5654
+ const locale = this.localeService.getLocale();
5655
+ this.redirectLabel = _t(redirectData.label);
5656
+ this.redirectPath = redirectData.paths[locale];
5657
+ }
5633
5658
  updateInputValue(id, newValue) {
5634
5659
  const ds = this.inputsDS[id];
5635
5660
  ds.setValue(newValue, ds.value !== newValue);
@@ -6551,7 +6576,8 @@ class MrSearchFacetsLayoutComponent extends AbstractLayout {
6551
6576
  }
6552
6577
  initPayload() {
6553
6578
  return {
6554
- searchService: this.searchService
6579
+ searchService: this.searchService,
6580
+ localeService: this.localeService,
6555
6581
  };
6556
6582
  }
6557
6583
  ngOnInit() {
@@ -6592,13 +6618,15 @@ class MrSearchFacetsLayoutComponent extends AbstractLayout {
6592
6618
  });
6593
6619
  }
6594
6620
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MrSearchFacetsLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6595
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MrSearchFacetsLayoutComponent, selector: "mr-search-facets-layout", inputs: { searchService: "searchService" }, usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"lb.dataSource.facets\" class=\"mr-facets__facets-wrapper {{ lb.dataSource.facets.classes || '' }}\">\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" }] }); }
6621
+ 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" }] }); }
6596
6622
  }
6597
6623
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MrSearchFacetsLayoutComponent, decorators: [{
6598
6624
  type: Component,
6599
- args: [{ selector: 'mr-search-facets-layout', template: "<div *ngIf=\"lb.dataSource.facets\" class=\"mr-facets__facets-wrapper {{ lb.dataSource.facets.classes || '' }}\">\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" }]
6625
+ 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" }]
6600
6626
  }], ctorParameters: () => [], propDecorators: { searchService: [{
6601
6627
  type: Input
6628
+ }], localeService: [{
6629
+ type: Input
6602
6630
  }] } });
6603
6631
 
6604
6632
  var localStorageHelper = {
@@ -6973,11 +7001,11 @@ class MrSearchLayoutComponent extends AbstractLayout {
6973
7001
  this.onDestroy();
6974
7002
  }
6975
7003
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MrSearchLayoutComponent, deps: [{ token: i1.LayoutsConfigurationService }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i1.CommunicationService }, { token: i1.ConfigurationService }, { token: MrSearchService }, { token: MrLayoutStateService }, { token: i1.MainStateService }, { token: MrResourceModalService }, { token: MrLocaleService }], target: i0.ɵɵFactoryTarget.Component }); }
6976
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MrSearchLayoutComponent, selector: "mr-search-layout", usesInheritance: true, ngImport: i0, template: "<div class=\"mr-search mr-layout\"\n *ngIf=\"lb.dataSource\">\n <section class=\"mr-layout__maxwidth mr-side-margin\">\n\n <div class=\"mr-search__title\">\n <n7-inner-title\n [data]=\"lb.widgets['mr-search-page-title'].ds.out$ | async\"\n [emit]=\"lb.widgets['mr-search-page-title'].emit\">\n </n7-inner-title>\n </div>\n\n <div *ngIf=\"lb.dataSource.showDescription\" class=\"mr-search__description\">\n <mr-search-page-description\n [data]=\"lb.widgets['mr-search-page-description'].ds.out$ | async\"\n [emit]=\"lb.widgets['mr-search-page-description'].emit\">\n </mr-search-page-description>\n </div>\n \n <div class=\"mr-search__results-content\">\n <aside class=\"mr-facets\"\n [ngStyle]=\"{\n width: lb.dataSource.pageConfig['facetsWidthPercentage'] ? lb.dataSource.pageConfig['facetsWidthPercentage'] + '%' : ''\n }\">\n <div class=\"scroll-ref\">&nbsp;</div>\n <div class=\"mr-facets__contents\">\n <h2 class=\"mr-facets__title\" \n *ngIf=\"lb.dataSource.pageConfig['facetsTitle']\">\n {{ lb.dataSource.pageConfig['facetsTitle'] }}\n </h2>\n <mr-search-facets-layout \n [searchService]=\"lb.dataSource.searchService\">\n </mr-search-facets-layout>\n </div>\n </aside>\n <div class=\"mr-search__results-wrapper\">\n <div class=\"mr-search__results-info\">\n <n7-inner-title\n [data]=\"lb.widgets['mr-search-results-title'].ds.out$ | async\"\n [emit]=\"lb.widgets['mr-search-results-title'].emit\">\n </n7-inner-title>\n </div>\n \n <div *ngIf=\"(\n lb.dataSource.pageConfig['filtersTitle'] && \n lb.widgets['mr-search-tags'].ds.hasFilters\n )\" \n class=\"mr-active-filters\">\n <span class=\"mr-active-filters__label\">{{ lb.dataSource.pageConfig['filtersTitle'] }}</span>\n <div class=\"mr-active-filters__tags-wrapper\">\n <n7-tag *ngFor=\"let tag of (lb.widgets['mr-search-tags'].ds.out$ | async)\"\n [data]=\"tag\"\n [emit]=\"lb.widgets['mr-search-tags'].emit\">\n </n7-tag>\n </div>\n </div>\n\n <main class=\"mr-search__results\">\n <!-- SEARCH RESULTS -->\n <ng-container [ngSwitch]=\"layoutState.get$('results') | async\">\n \n <!-- loading -->\n <ng-container *ngSwitchCase=\"'LOADING'\">\n <div class=\"mr-search__results-loading n7-grid-{{ lb.dataSource.pageConfig.grid || 3 }}\">\n <n7-content-placeholder *ngFor=\"let n of [0,1,2,3,4,5,6,7,8,9]\" [data]=\"{\n blocks: [\n { classes: 'search-result-placeholder-title' },\n { classes: 'search-result-placeholder-metadata' },\n { classes: 'search-result-placeholder-metadata' },\n { classes: 'search-result-placeholder-metadata' }\n ]\n }\"></n7-content-placeholder>\n </div>\n </ng-container>\n \n <!-- success: items > 0 -->\n <ng-container *ngSwitchCase=\"'SUCCESS'\">\n <div class=\"n7-grid-{{ lb.dataSource.pageConfig.grid || 3 }}\">\n <ng-container *ngIf=\"!lb.dataSource.pageConfig?.advancedResults\">\n <n7-item-preview *ngFor=\"let item of (lb.widgets['mr-search-results'].ds.out$ | async)\"\n [data]=\"item\" [emit]=\"lb.widgets['mr-search-results'].emit\">\n </n7-item-preview>\n </ng-container>\n <ng-container *ngIf=\"lb.dataSource.pageConfig?.advancedResults\">\n <mr-advanced-result\n *ngFor=\"let item of (lb.widgets['mr-search-results'].ds.out$ | async)\"\n [data]=\"item\" [emit]=\"lb.widgets['mr-search-results'].emit\">\n </mr-advanced-result>\n </ng-container>\n </div>\n </ng-container>\n\n <!-- empty: items === 0 -->\n <ng-container *ngSwitchCase=\"'EMPTY'\">\n <div class=\"mr-search__results-fallback\">\n <p class=\"mr-search__results-fallback-string\">\n {{ lb.dataSource.pageConfig.fallback.text }}\n </p>\n <button class=\"n7-btn mr-search__results-fallback-button\"\n (click)=\"lb.eventHandler.emitInner('searchreset')\">\n {{ lb.dataSource.pageConfig.fallback.button }}\n </button>\n </div>\n </ng-container>\n\n <!-- error: request problem -->\n <ng-container *ngSwitchCase=\"'ERROR'\">\n <p class=\"mr-search__results-ko-string\">\n {{ lb.dataSource.pageConfig.ko.text }}\n </p>\n <button class=\"n7-btn mr-search__results-ko-button\"\n (click)=\"lb.eventHandler.emitInner('searchreset')\">\n {{ lb.dataSource.pageConfig.ko.button }}\n </button>\n </ng-container>\n \n </ng-container>\n </main> \n <n7-smart-pagination\n *ngIf=\"(layoutState.get$('results') | async) === 'SUCCESS'\"\n [data]=\"lb.widgets['n7-smart-pagination'].ds.out$ | async\"\n [emit]=\"lb.widgets['n7-smart-pagination'].emit\">\n </n7-smart-pagination>\n </div>\n </div>\n\n </section>\n</div>", 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: "directive", type: i1$2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i7.ContentPlaceholderComponent, selector: "n7-content-placeholder", inputs: ["data"] }, { kind: "component", type: i7.InnerTitleComponent, selector: "n7-inner-title", inputs: ["data", "emit"] }, { kind: "component", type: i7.ItemPreviewComponent, selector: "n7-item-preview", inputs: ["data", "emit"] }, { kind: "component", type: i7.TagComponent, selector: "n7-tag", inputs: ["data", "emit"] }, { kind: "component", type: i1.SmartPaginationComponent, selector: "n7-smart-pagination", inputs: ["data", "emit"] }, { kind: "component", type: MrSearchFacetsLayoutComponent, selector: "mr-search-facets-layout", inputs: ["searchService"] }, { kind: "component", type: MrSearchPageDescriptionComponent, selector: "mr-search-page-description", inputs: ["data", "emit"] }, { kind: "component", type: MrAdvancedResultComponent, selector: "mr-advanced-result", inputs: ["data", "emit"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }] }); }
7004
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MrSearchLayoutComponent, selector: "mr-search-layout", usesInheritance: true, ngImport: i0, template: "<div class=\"mr-search mr-layout\"\n *ngIf=\"lb.dataSource\">\n <section class=\"mr-layout__maxwidth mr-side-margin\">\n\n <div class=\"mr-search__title\">\n <n7-inner-title\n [data]=\"lb.widgets['mr-search-page-title'].ds.out$ | async\"\n [emit]=\"lb.widgets['mr-search-page-title'].emit\">\n </n7-inner-title>\n </div>\n\n <div *ngIf=\"lb.dataSource.showDescription\" class=\"mr-search__description\">\n <mr-search-page-description\n [data]=\"lb.widgets['mr-search-page-description'].ds.out$ | async\"\n [emit]=\"lb.widgets['mr-search-page-description'].emit\">\n </mr-search-page-description>\n </div>\n \n <div class=\"mr-search__results-content\">\n <aside class=\"mr-facets\"\n [ngStyle]=\"{\n width: lb.dataSource.pageConfig['facetsWidthPercentage'] ? lb.dataSource.pageConfig['facetsWidthPercentage'] + '%' : ''\n }\">\n <div class=\"scroll-ref\">&nbsp;</div>\n <div class=\"mr-facets__contents\">\n <h2 class=\"mr-facets__title\" \n *ngIf=\"lb.dataSource.pageConfig['facetsTitle']\">\n {{ lb.dataSource.pageConfig['facetsTitle'] }}\n </h2>\n\n <mr-search-facets-layout \n [searchService]=\"lb.dataSource.searchService\"\n [localeService]=\"lb.dataSource.localeService\">\n </mr-search-facets-layout>\n </div>\n </aside>\n <div class=\"mr-search__results-wrapper\">\n <div class=\"mr-search__results-info\">\n <n7-inner-title\n [data]=\"lb.widgets['mr-search-results-title'].ds.out$ | async\"\n [emit]=\"lb.widgets['mr-search-results-title'].emit\">\n </n7-inner-title>\n </div>\n \n <div *ngIf=\"(\n lb.dataSource.pageConfig['filtersTitle'] && \n lb.widgets['mr-search-tags'].ds.hasFilters\n )\" \n class=\"mr-active-filters\">\n <span class=\"mr-active-filters__label\">{{ lb.dataSource.pageConfig['filtersTitle'] }}</span>\n <div class=\"mr-active-filters__tags-wrapper\">\n <n7-tag *ngFor=\"let tag of (lb.widgets['mr-search-tags'].ds.out$ | async)\"\n [data]=\"tag\"\n [emit]=\"lb.widgets['mr-search-tags'].emit\">\n </n7-tag>\n </div>\n </div>\n\n <main class=\"mr-search__results\">\n <!-- SEARCH RESULTS -->\n <ng-container [ngSwitch]=\"layoutState.get$('results') | async\">\n \n <!-- loading -->\n <ng-container *ngSwitchCase=\"'LOADING'\">\n <div class=\"mr-search__results-loading n7-grid-{{ lb.dataSource.pageConfig.grid || 3 }}\">\n <n7-content-placeholder *ngFor=\"let n of [0,1,2,3,4,5,6,7,8,9]\" [data]=\"{\n blocks: [\n { classes: 'search-result-placeholder-title' },\n { classes: 'search-result-placeholder-metadata' },\n { classes: 'search-result-placeholder-metadata' },\n { classes: 'search-result-placeholder-metadata' }\n ]\n }\"></n7-content-placeholder>\n </div>\n </ng-container>\n \n <!-- success: items > 0 -->\n <ng-container *ngSwitchCase=\"'SUCCESS'\">\n <div class=\"n7-grid-{{ lb.dataSource.pageConfig.grid || 3 }}\">\n <ng-container *ngIf=\"!lb.dataSource.pageConfig?.advancedResults\">\n <n7-item-preview *ngFor=\"let item of (lb.widgets['mr-search-results'].ds.out$ | async)\"\n [data]=\"item\" [emit]=\"lb.widgets['mr-search-results'].emit\">\n </n7-item-preview>\n </ng-container>\n <ng-container *ngIf=\"lb.dataSource.pageConfig?.advancedResults\">\n <mr-advanced-result\n *ngFor=\"let item of (lb.widgets['mr-search-results'].ds.out$ | async)\"\n [data]=\"item\" [emit]=\"lb.widgets['mr-search-results'].emit\">\n </mr-advanced-result>\n </ng-container>\n </div>\n </ng-container>\n\n <!-- empty: items === 0 -->\n <ng-container *ngSwitchCase=\"'EMPTY'\">\n <div class=\"mr-search__results-fallback\">\n <p class=\"mr-search__results-fallback-string\">\n {{ lb.dataSource.pageConfig.fallback.text }}\n </p>\n <button class=\"n7-btn mr-search__results-fallback-button\"\n (click)=\"lb.eventHandler.emitInner('searchreset')\">\n {{ lb.dataSource.pageConfig.fallback.button }}\n </button>\n </div>\n </ng-container>\n\n <!-- error: request problem -->\n <ng-container *ngSwitchCase=\"'ERROR'\">\n <p class=\"mr-search__results-ko-string\">\n {{ lb.dataSource.pageConfig.ko.text }}\n </p>\n <button class=\"n7-btn mr-search__results-ko-button\"\n (click)=\"lb.eventHandler.emitInner('searchreset')\">\n {{ lb.dataSource.pageConfig.ko.button }}\n </button>\n </ng-container>\n \n </ng-container>\n </main> \n <n7-smart-pagination\n *ngIf=\"(layoutState.get$('results') | async) === 'SUCCESS'\"\n [data]=\"lb.widgets['n7-smart-pagination'].ds.out$ | async\"\n [emit]=\"lb.widgets['n7-smart-pagination'].emit\">\n </n7-smart-pagination>\n </div>\n </div>\n\n </section>\n</div>", 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: "directive", type: i1$2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i7.ContentPlaceholderComponent, selector: "n7-content-placeholder", inputs: ["data"] }, { kind: "component", type: i7.InnerTitleComponent, selector: "n7-inner-title", inputs: ["data", "emit"] }, { kind: "component", type: i7.ItemPreviewComponent, selector: "n7-item-preview", inputs: ["data", "emit"] }, { kind: "component", type: i7.TagComponent, selector: "n7-tag", inputs: ["data", "emit"] }, { kind: "component", type: i1.SmartPaginationComponent, selector: "n7-smart-pagination", inputs: ["data", "emit"] }, { kind: "component", type: MrSearchFacetsLayoutComponent, selector: "mr-search-facets-layout", inputs: ["searchService", "localeService"] }, { kind: "component", type: MrSearchPageDescriptionComponent, selector: "mr-search-page-description", inputs: ["data", "emit"] }, { kind: "component", type: MrAdvancedResultComponent, selector: "mr-advanced-result", inputs: ["data", "emit"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }] }); }
6977
7005
  }
6978
7006
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MrSearchLayoutComponent, decorators: [{
6979
7007
  type: Component,
6980
- args: [{ selector: 'mr-search-layout', template: "<div class=\"mr-search mr-layout\"\n *ngIf=\"lb.dataSource\">\n <section class=\"mr-layout__maxwidth mr-side-margin\">\n\n <div class=\"mr-search__title\">\n <n7-inner-title\n [data]=\"lb.widgets['mr-search-page-title'].ds.out$ | async\"\n [emit]=\"lb.widgets['mr-search-page-title'].emit\">\n </n7-inner-title>\n </div>\n\n <div *ngIf=\"lb.dataSource.showDescription\" class=\"mr-search__description\">\n <mr-search-page-description\n [data]=\"lb.widgets['mr-search-page-description'].ds.out$ | async\"\n [emit]=\"lb.widgets['mr-search-page-description'].emit\">\n </mr-search-page-description>\n </div>\n \n <div class=\"mr-search__results-content\">\n <aside class=\"mr-facets\"\n [ngStyle]=\"{\n width: lb.dataSource.pageConfig['facetsWidthPercentage'] ? lb.dataSource.pageConfig['facetsWidthPercentage'] + '%' : ''\n }\">\n <div class=\"scroll-ref\">&nbsp;</div>\n <div class=\"mr-facets__contents\">\n <h2 class=\"mr-facets__title\" \n *ngIf=\"lb.dataSource.pageConfig['facetsTitle']\">\n {{ lb.dataSource.pageConfig['facetsTitle'] }}\n </h2>\n <mr-search-facets-layout \n [searchService]=\"lb.dataSource.searchService\">\n </mr-search-facets-layout>\n </div>\n </aside>\n <div class=\"mr-search__results-wrapper\">\n <div class=\"mr-search__results-info\">\n <n7-inner-title\n [data]=\"lb.widgets['mr-search-results-title'].ds.out$ | async\"\n [emit]=\"lb.widgets['mr-search-results-title'].emit\">\n </n7-inner-title>\n </div>\n \n <div *ngIf=\"(\n lb.dataSource.pageConfig['filtersTitle'] && \n lb.widgets['mr-search-tags'].ds.hasFilters\n )\" \n class=\"mr-active-filters\">\n <span class=\"mr-active-filters__label\">{{ lb.dataSource.pageConfig['filtersTitle'] }}</span>\n <div class=\"mr-active-filters__tags-wrapper\">\n <n7-tag *ngFor=\"let tag of (lb.widgets['mr-search-tags'].ds.out$ | async)\"\n [data]=\"tag\"\n [emit]=\"lb.widgets['mr-search-tags'].emit\">\n </n7-tag>\n </div>\n </div>\n\n <main class=\"mr-search__results\">\n <!-- SEARCH RESULTS -->\n <ng-container [ngSwitch]=\"layoutState.get$('results') | async\">\n \n <!-- loading -->\n <ng-container *ngSwitchCase=\"'LOADING'\">\n <div class=\"mr-search__results-loading n7-grid-{{ lb.dataSource.pageConfig.grid || 3 }}\">\n <n7-content-placeholder *ngFor=\"let n of [0,1,2,3,4,5,6,7,8,9]\" [data]=\"{\n blocks: [\n { classes: 'search-result-placeholder-title' },\n { classes: 'search-result-placeholder-metadata' },\n { classes: 'search-result-placeholder-metadata' },\n { classes: 'search-result-placeholder-metadata' }\n ]\n }\"></n7-content-placeholder>\n </div>\n </ng-container>\n \n <!-- success: items > 0 -->\n <ng-container *ngSwitchCase=\"'SUCCESS'\">\n <div class=\"n7-grid-{{ lb.dataSource.pageConfig.grid || 3 }}\">\n <ng-container *ngIf=\"!lb.dataSource.pageConfig?.advancedResults\">\n <n7-item-preview *ngFor=\"let item of (lb.widgets['mr-search-results'].ds.out$ | async)\"\n [data]=\"item\" [emit]=\"lb.widgets['mr-search-results'].emit\">\n </n7-item-preview>\n </ng-container>\n <ng-container *ngIf=\"lb.dataSource.pageConfig?.advancedResults\">\n <mr-advanced-result\n *ngFor=\"let item of (lb.widgets['mr-search-results'].ds.out$ | async)\"\n [data]=\"item\" [emit]=\"lb.widgets['mr-search-results'].emit\">\n </mr-advanced-result>\n </ng-container>\n </div>\n </ng-container>\n\n <!-- empty: items === 0 -->\n <ng-container *ngSwitchCase=\"'EMPTY'\">\n <div class=\"mr-search__results-fallback\">\n <p class=\"mr-search__results-fallback-string\">\n {{ lb.dataSource.pageConfig.fallback.text }}\n </p>\n <button class=\"n7-btn mr-search__results-fallback-button\"\n (click)=\"lb.eventHandler.emitInner('searchreset')\">\n {{ lb.dataSource.pageConfig.fallback.button }}\n </button>\n </div>\n </ng-container>\n\n <!-- error: request problem -->\n <ng-container *ngSwitchCase=\"'ERROR'\">\n <p class=\"mr-search__results-ko-string\">\n {{ lb.dataSource.pageConfig.ko.text }}\n </p>\n <button class=\"n7-btn mr-search__results-ko-button\"\n (click)=\"lb.eventHandler.emitInner('searchreset')\">\n {{ lb.dataSource.pageConfig.ko.button }}\n </button>\n </ng-container>\n \n </ng-container>\n </main> \n <n7-smart-pagination\n *ngIf=\"(layoutState.get$('results') | async) === 'SUCCESS'\"\n [data]=\"lb.widgets['n7-smart-pagination'].ds.out$ | async\"\n [emit]=\"lb.widgets['n7-smart-pagination'].emit\">\n </n7-smart-pagination>\n </div>\n </div>\n\n </section>\n</div>" }]
7008
+ args: [{ selector: 'mr-search-layout', template: "<div class=\"mr-search mr-layout\"\n *ngIf=\"lb.dataSource\">\n <section class=\"mr-layout__maxwidth mr-side-margin\">\n\n <div class=\"mr-search__title\">\n <n7-inner-title\n [data]=\"lb.widgets['mr-search-page-title'].ds.out$ | async\"\n [emit]=\"lb.widgets['mr-search-page-title'].emit\">\n </n7-inner-title>\n </div>\n\n <div *ngIf=\"lb.dataSource.showDescription\" class=\"mr-search__description\">\n <mr-search-page-description\n [data]=\"lb.widgets['mr-search-page-description'].ds.out$ | async\"\n [emit]=\"lb.widgets['mr-search-page-description'].emit\">\n </mr-search-page-description>\n </div>\n \n <div class=\"mr-search__results-content\">\n <aside class=\"mr-facets\"\n [ngStyle]=\"{\n width: lb.dataSource.pageConfig['facetsWidthPercentage'] ? lb.dataSource.pageConfig['facetsWidthPercentage'] + '%' : ''\n }\">\n <div class=\"scroll-ref\">&nbsp;</div>\n <div class=\"mr-facets__contents\">\n <h2 class=\"mr-facets__title\" \n *ngIf=\"lb.dataSource.pageConfig['facetsTitle']\">\n {{ lb.dataSource.pageConfig['facetsTitle'] }}\n </h2>\n\n <mr-search-facets-layout \n [searchService]=\"lb.dataSource.searchService\"\n [localeService]=\"lb.dataSource.localeService\">\n </mr-search-facets-layout>\n </div>\n </aside>\n <div class=\"mr-search__results-wrapper\">\n <div class=\"mr-search__results-info\">\n <n7-inner-title\n [data]=\"lb.widgets['mr-search-results-title'].ds.out$ | async\"\n [emit]=\"lb.widgets['mr-search-results-title'].emit\">\n </n7-inner-title>\n </div>\n \n <div *ngIf=\"(\n lb.dataSource.pageConfig['filtersTitle'] && \n lb.widgets['mr-search-tags'].ds.hasFilters\n )\" \n class=\"mr-active-filters\">\n <span class=\"mr-active-filters__label\">{{ lb.dataSource.pageConfig['filtersTitle'] }}</span>\n <div class=\"mr-active-filters__tags-wrapper\">\n <n7-tag *ngFor=\"let tag of (lb.widgets['mr-search-tags'].ds.out$ | async)\"\n [data]=\"tag\"\n [emit]=\"lb.widgets['mr-search-tags'].emit\">\n </n7-tag>\n </div>\n </div>\n\n <main class=\"mr-search__results\">\n <!-- SEARCH RESULTS -->\n <ng-container [ngSwitch]=\"layoutState.get$('results') | async\">\n \n <!-- loading -->\n <ng-container *ngSwitchCase=\"'LOADING'\">\n <div class=\"mr-search__results-loading n7-grid-{{ lb.dataSource.pageConfig.grid || 3 }}\">\n <n7-content-placeholder *ngFor=\"let n of [0,1,2,3,4,5,6,7,8,9]\" [data]=\"{\n blocks: [\n { classes: 'search-result-placeholder-title' },\n { classes: 'search-result-placeholder-metadata' },\n { classes: 'search-result-placeholder-metadata' },\n { classes: 'search-result-placeholder-metadata' }\n ]\n }\"></n7-content-placeholder>\n </div>\n </ng-container>\n \n <!-- success: items > 0 -->\n <ng-container *ngSwitchCase=\"'SUCCESS'\">\n <div class=\"n7-grid-{{ lb.dataSource.pageConfig.grid || 3 }}\">\n <ng-container *ngIf=\"!lb.dataSource.pageConfig?.advancedResults\">\n <n7-item-preview *ngFor=\"let item of (lb.widgets['mr-search-results'].ds.out$ | async)\"\n [data]=\"item\" [emit]=\"lb.widgets['mr-search-results'].emit\">\n </n7-item-preview>\n </ng-container>\n <ng-container *ngIf=\"lb.dataSource.pageConfig?.advancedResults\">\n <mr-advanced-result\n *ngFor=\"let item of (lb.widgets['mr-search-results'].ds.out$ | async)\"\n [data]=\"item\" [emit]=\"lb.widgets['mr-search-results'].emit\">\n </mr-advanced-result>\n </ng-container>\n </div>\n </ng-container>\n\n <!-- empty: items === 0 -->\n <ng-container *ngSwitchCase=\"'EMPTY'\">\n <div class=\"mr-search__results-fallback\">\n <p class=\"mr-search__results-fallback-string\">\n {{ lb.dataSource.pageConfig.fallback.text }}\n </p>\n <button class=\"n7-btn mr-search__results-fallback-button\"\n (click)=\"lb.eventHandler.emitInner('searchreset')\">\n {{ lb.dataSource.pageConfig.fallback.button }}\n </button>\n </div>\n </ng-container>\n\n <!-- error: request problem -->\n <ng-container *ngSwitchCase=\"'ERROR'\">\n <p class=\"mr-search__results-ko-string\">\n {{ lb.dataSource.pageConfig.ko.text }}\n </p>\n <button class=\"n7-btn mr-search__results-ko-button\"\n (click)=\"lb.eventHandler.emitInner('searchreset')\">\n {{ lb.dataSource.pageConfig.ko.button }}\n </button>\n </ng-container>\n \n </ng-container>\n </main> \n <n7-smart-pagination\n *ngIf=\"(layoutState.get$('results') | async) === 'SUCCESS'\"\n [data]=\"lb.widgets['n7-smart-pagination'].ds.out$ | async\"\n [emit]=\"lb.widgets['n7-smart-pagination'].emit\">\n </n7-smart-pagination>\n </div>\n </div>\n\n </section>\n</div>" }]
6981
7009
  }], ctorParameters: () => [{ type: i1.LayoutsConfigurationService }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i1.CommunicationService }, { type: i1.ConfigurationService }, { type: MrSearchService }, { type: MrLayoutStateService }, { type: i1.MainStateService }, { type: MrResourceModalService }, { type: MrLocaleService }] });
6982
7010
 
6983
7011
  class MrStaticLayoutDS extends LayoutDataSource {