@indice/ng-components 0.2.167-beta.21 → 0.2.167-beta.22

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.
package/_styles.css CHANGED
@@ -4271,7 +4271,7 @@
4271
4271
  }
4272
4272
 
4273
4273
  .search-input {
4274
- @apply block w-60 bg-gray-50 rounded-sm text-sm text-gray-900 placeholder-gray-500 outline-none;
4274
+ @apply pl-10 pr-20 w-60 bg-gray-50 rounded-sm text-sm text-gray-900 border-gray-400 placeholder-gray-500 outline-none focus:shadow focus:outline-none z-0;
4275
4275
  }
4276
4276
  }
4277
4277
 
@@ -68,10 +68,10 @@ export class ViewLayoutComponent {
68
68
  }
69
69
  }
70
70
  ViewLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ViewLayoutComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
71
- ViewLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ViewLayoutComponent, selector: "lib-view-layout", inputs: { header: ["show-header", "header"], fluid: "fluid", title: "title", icon: "icon", actions: "actions", busy: "busy", searchPlaceholder: ["search-placeholder", "searchPlaceholder"], view: "view", metaItems: ["meta-items", "metaItems"] }, outputs: { onAction: "onAction", onSearch: "onSearch" }, viewQueries: [{ propertyName: "searchInput$", first: true, predicate: ["search"], descendants: true }], ngImport: i0, template: "<header *ngIf=\"header\"\r\n class=\"view-layout-paddings\">\r\n <div class=\"view-layout-title-container\">\r\n <div class=\"view-layout-title-container-inner\">\r\n <div class=\"flex items-center\">\r\n <i *ngIf=\"icon\"\r\n [class]=\"icon + ' title-icon'\"\r\n aria-hidden=\"true\"></i>\r\n <h1 [class]=\"busy ? 'view-layout-title-busy' : 'view-layout-title'\">{{title}}</h1>\r\n </div>\r\n <div *ngIf=\"metaItems && metaItems.length > 0\"\r\n class=\"meta-container\">\r\n <ng-container *ngFor=\"let meta of metaItems\">\r\n <div class=\"meta-item-container\">\r\n <i *ngIf=\"meta.icon\"\r\n [class]=\"meta.icon + ' meta-icon'\"\r\n aria-hidden=\"true\">\r\n </i>\r\n <span class=\"meta-text\">{{meta.text}}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"view-layout-title-container-far\">\r\n <ng-container *ngFor=\"let action of actions\" [ngSwitch]=\"action.type\">\r\n\r\n <ng-container *ngSwitchCase=\"'switch-view'\">\r\n <button [disabled]=\"view === action.param\"\r\n type=\"button\"\r\n href=\"#\"\r\n class=\"mr-1 disabled:opacity-75 btn-view-header\"\r\n (click)=\"switchViewActionClick(action)\">\r\n <span class=\"inline-block relative\">\r\n <i [class]=\"action.icon\"></i>\r\n <span *ngIf=\"view === action.param\"\r\n class=\"selected-view-indicator\">\r\n </span>\r\n </span>\r\n </button>\r\n </ng-container>\r\n \r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <label for=\"search\"\r\n class=\"sr-only\">\r\n Search\r\n </label>\r\n <div class=\"search-container\">\r\n <div class=\"pointer-events-none absolute inset-y-0 left-0 pl-3 flex items-center\"></div>\r\n <input id=\"search\"\r\n #search\r\n class=\"search-input\"\r\n [placeholder]=\"searchPlaceholder\"\r\n type=\"search\"\r\n name=\"search\"\r\n (input)=\"searchActionType(search.value)\"\r\n (onsearch)=\"handleClear($event)\">\r\n </div>\r\n <button type=\"button\"\r\n *ngIf=\"false\"\r\n href=\"#\"\r\n class=\"btn-view-header rounded-l-none\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"searchActionClick(action, search.value)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n \r\n <ng-container *ngSwitchCase=\"'router-link'\">\r\n <button type=\"button\"\r\n href=\"#\"\r\n class=\"mr-1 btn-view-header\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"routerLinkActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n \r\n <ng-container *ngSwitchDefault>\r\n <button type=\"button\"\r\n class=\"mr-1 btn-view-header\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"emitActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</header>\r\n<div [class]=\"fluid ? 'view-container-fluid' : 'view-container'\">\r\n <ng-content></ng-content>\r\n</div>", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }] });
71
+ ViewLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ViewLayoutComponent, selector: "lib-view-layout", inputs: { header: ["show-header", "header"], fluid: "fluid", title: "title", icon: "icon", actions: "actions", busy: "busy", searchPlaceholder: ["search-placeholder", "searchPlaceholder"], view: "view", metaItems: ["meta-items", "metaItems"] }, outputs: { onAction: "onAction", onSearch: "onSearch" }, viewQueries: [{ propertyName: "searchInput$", first: true, predicate: ["search"], descendants: true }], ngImport: i0, template: "<header *ngIf=\"header\"\r\n class=\"view-layout-paddings\">\r\n <div class=\"view-layout-title-container\">\r\n <div class=\"view-layout-title-container-inner\">\r\n <div class=\"flex items-center\">\r\n <i *ngIf=\"icon\"\r\n [class]=\"icon + ' title-icon'\"\r\n aria-hidden=\"true\"></i>\r\n <h1 [class]=\"busy ? 'view-layout-title-busy' : 'view-layout-title'\">{{title}}</h1>\r\n </div>\r\n <div *ngIf=\"metaItems && metaItems.length > 0\"\r\n class=\"meta-container\">\r\n <ng-container *ngFor=\"let meta of metaItems\">\r\n <div class=\"meta-item-container\">\r\n <i *ngIf=\"meta.icon\"\r\n [class]=\"meta.icon + ' meta-icon'\"\r\n aria-hidden=\"true\">\r\n </i>\r\n <span class=\"meta-text\">{{meta.text}}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"view-layout-title-container-far\">\r\n <ng-container *ngFor=\"let action of actions\" [ngSwitch]=\"action.type\">\r\n\r\n <ng-container *ngSwitchCase=\"'switch-view'\">\r\n <button [disabled]=\"view === action.param\"\r\n type=\"button\"\r\n href=\"#\"\r\n class=\"mr-1 disabled:opacity-75 btn-view-header\"\r\n (click)=\"switchViewActionClick(action)\">\r\n <span class=\"inline-block relative\">\r\n <i [class]=\"action.icon\"></i>\r\n <span *ngIf=\"view === action.param\"\r\n class=\"selected-view-indicator\">\r\n </span>\r\n </span>\r\n </button>\r\n </ng-container>\r\n \r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <label for=\"search\"\r\n class=\"sr-only\">\r\n Search\r\n </label>\r\n <div class=\"search-container\">\r\n <div class=\"pointer-events-none absolute inset-y-0 left-0 pl-3 flex items-center\"></div>\r\n <div class=\"relative\">\r\n <div class=\"absolute top-4 left-3\">\r\n <i [class]=\"action.icon + ' text-gray-400 z-20 hover:text-gray-500'\"></i>\r\n </div>\r\n <input id=\"search\"\r\n #search\r\n class=\"search-input\"\r\n [placeholder]=\"searchPlaceholder\"\r\n type=\"search\"\r\n name=\"search\"\r\n (input)=\"searchActionType(search.value)\"\r\n (onsearch)=\"handleClear($event)\">\r\n <button type=\"button\"\r\n *ngIf=\"false\"\r\n href=\"#\"\r\n class=\"btn-view-header rounded-l-none\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"searchActionClick(action, search.value)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </div>\r\n\r\n </div>\r\n </ng-container>\r\n \r\n <ng-container *ngSwitchCase=\"'router-link'\">\r\n <button type=\"button\"\r\n href=\"#\"\r\n class=\"mr-1 btn-view-header\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"routerLinkActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n \r\n <ng-container *ngSwitchDefault>\r\n <button type=\"button\"\r\n class=\"mr-1 btn-view-header\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"emitActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</header>\r\n<div [class]=\"fluid ? 'view-container-fluid' : 'view-container'\">\r\n <ng-content></ng-content>\r\n</div>", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }] });
72
72
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ViewLayoutComponent, decorators: [{
73
73
  type: Component,
74
- args: [{ selector: 'lib-view-layout', template: "<header *ngIf=\"header\"\r\n class=\"view-layout-paddings\">\r\n <div class=\"view-layout-title-container\">\r\n <div class=\"view-layout-title-container-inner\">\r\n <div class=\"flex items-center\">\r\n <i *ngIf=\"icon\"\r\n [class]=\"icon + ' title-icon'\"\r\n aria-hidden=\"true\"></i>\r\n <h1 [class]=\"busy ? 'view-layout-title-busy' : 'view-layout-title'\">{{title}}</h1>\r\n </div>\r\n <div *ngIf=\"metaItems && metaItems.length > 0\"\r\n class=\"meta-container\">\r\n <ng-container *ngFor=\"let meta of metaItems\">\r\n <div class=\"meta-item-container\">\r\n <i *ngIf=\"meta.icon\"\r\n [class]=\"meta.icon + ' meta-icon'\"\r\n aria-hidden=\"true\">\r\n </i>\r\n <span class=\"meta-text\">{{meta.text}}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"view-layout-title-container-far\">\r\n <ng-container *ngFor=\"let action of actions\" [ngSwitch]=\"action.type\">\r\n\r\n <ng-container *ngSwitchCase=\"'switch-view'\">\r\n <button [disabled]=\"view === action.param\"\r\n type=\"button\"\r\n href=\"#\"\r\n class=\"mr-1 disabled:opacity-75 btn-view-header\"\r\n (click)=\"switchViewActionClick(action)\">\r\n <span class=\"inline-block relative\">\r\n <i [class]=\"action.icon\"></i>\r\n <span *ngIf=\"view === action.param\"\r\n class=\"selected-view-indicator\">\r\n </span>\r\n </span>\r\n </button>\r\n </ng-container>\r\n \r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <label for=\"search\"\r\n class=\"sr-only\">\r\n Search\r\n </label>\r\n <div class=\"search-container\">\r\n <div class=\"pointer-events-none absolute inset-y-0 left-0 pl-3 flex items-center\"></div>\r\n <input id=\"search\"\r\n #search\r\n class=\"search-input\"\r\n [placeholder]=\"searchPlaceholder\"\r\n type=\"search\"\r\n name=\"search\"\r\n (input)=\"searchActionType(search.value)\"\r\n (onsearch)=\"handleClear($event)\">\r\n </div>\r\n <button type=\"button\"\r\n *ngIf=\"false\"\r\n href=\"#\"\r\n class=\"btn-view-header rounded-l-none\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"searchActionClick(action, search.value)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n \r\n <ng-container *ngSwitchCase=\"'router-link'\">\r\n <button type=\"button\"\r\n href=\"#\"\r\n class=\"mr-1 btn-view-header\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"routerLinkActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n \r\n <ng-container *ngSwitchDefault>\r\n <button type=\"button\"\r\n class=\"mr-1 btn-view-header\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"emitActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</header>\r\n<div [class]=\"fluid ? 'view-container-fluid' : 'view-container'\">\r\n <ng-content></ng-content>\r\n</div>" }]
74
+ args: [{ selector: 'lib-view-layout', template: "<header *ngIf=\"header\"\r\n class=\"view-layout-paddings\">\r\n <div class=\"view-layout-title-container\">\r\n <div class=\"view-layout-title-container-inner\">\r\n <div class=\"flex items-center\">\r\n <i *ngIf=\"icon\"\r\n [class]=\"icon + ' title-icon'\"\r\n aria-hidden=\"true\"></i>\r\n <h1 [class]=\"busy ? 'view-layout-title-busy' : 'view-layout-title'\">{{title}}</h1>\r\n </div>\r\n <div *ngIf=\"metaItems && metaItems.length > 0\"\r\n class=\"meta-container\">\r\n <ng-container *ngFor=\"let meta of metaItems\">\r\n <div class=\"meta-item-container\">\r\n <i *ngIf=\"meta.icon\"\r\n [class]=\"meta.icon + ' meta-icon'\"\r\n aria-hidden=\"true\">\r\n </i>\r\n <span class=\"meta-text\">{{meta.text}}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"view-layout-title-container-far\">\r\n <ng-container *ngFor=\"let action of actions\" [ngSwitch]=\"action.type\">\r\n\r\n <ng-container *ngSwitchCase=\"'switch-view'\">\r\n <button [disabled]=\"view === action.param\"\r\n type=\"button\"\r\n href=\"#\"\r\n class=\"mr-1 disabled:opacity-75 btn-view-header\"\r\n (click)=\"switchViewActionClick(action)\">\r\n <span class=\"inline-block relative\">\r\n <i [class]=\"action.icon\"></i>\r\n <span *ngIf=\"view === action.param\"\r\n class=\"selected-view-indicator\">\r\n </span>\r\n </span>\r\n </button>\r\n </ng-container>\r\n \r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <label for=\"search\"\r\n class=\"sr-only\">\r\n Search\r\n </label>\r\n <div class=\"search-container\">\r\n <div class=\"pointer-events-none absolute inset-y-0 left-0 pl-3 flex items-center\"></div>\r\n <div class=\"relative\">\r\n <div class=\"absolute top-4 left-3\">\r\n <i [class]=\"action.icon + ' text-gray-400 z-20 hover:text-gray-500'\"></i>\r\n </div>\r\n <input id=\"search\"\r\n #search\r\n class=\"search-input\"\r\n [placeholder]=\"searchPlaceholder\"\r\n type=\"search\"\r\n name=\"search\"\r\n (input)=\"searchActionType(search.value)\"\r\n (onsearch)=\"handleClear($event)\">\r\n <button type=\"button\"\r\n *ngIf=\"false\"\r\n href=\"#\"\r\n class=\"btn-view-header rounded-l-none\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"searchActionClick(action, search.value)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </div>\r\n\r\n </div>\r\n </ng-container>\r\n \r\n <ng-container *ngSwitchCase=\"'router-link'\">\r\n <button type=\"button\"\r\n href=\"#\"\r\n class=\"mr-1 btn-view-header\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"routerLinkActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n \r\n <ng-container *ngSwitchDefault>\r\n <button type=\"button\"\r\n class=\"mr-1 btn-view-header\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"emitActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</header>\r\n<div [class]=\"fluid ? 'view-container-fluid' : 'view-container'\">\r\n <ng-content></ng-content>\r\n</div>" }]
75
75
  }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i1.Router }]; }, propDecorators: { searchInput$: [{
76
76
  type: ViewChild,
77
77
  args: ['search']
@@ -101,4 +101,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImpor
101
101
  }], onSearch: [{
102
102
  type: Output
103
103
  }] } });
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3Mvdmlldy1sYXlvdXQvdmlldy1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3Mvdmlldy1sYXlvdXQvdmlldy1sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQU9qRixNQUFNLE9BQU8sbUJBQW1CO0lBb0I5QixZQUFvQixNQUFzQixFQUFVLE9BQWU7UUFBL0MsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBakJuRSwyQ0FBMkM7UUFDckIsV0FBTSxHQUFHLElBQUksQ0FBQztRQUMzQixVQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2QsVUFBSyxHQUFHLFVBQVUsQ0FBQztRQUNuQixTQUFJLEdBQWtCLElBQUksQ0FBQztRQUMzQixZQUFPLEdBQXdCLElBQUksQ0FBQztRQUNwQyxTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLDJDQUEyQztRQUNkLHNCQUFpQixHQUFrQixXQUFXLENBQUM7UUFDbkUsU0FBSSxHQUFrQixJQUFJLENBQUM7UUFDcEMsMkNBQTJDO1FBQ3RCLGNBQVMsR0FBNEIsRUFBRSxDQUFDO1FBQzdELCtD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LEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFFdUIsaUJBQWlCO3NCQUE3QyxLQUFLO3VCQUFDLG9CQUFvQjtnQkFDbEIsSUFBSTtzQkFBWixLQUFLO2dCQUVlLFNBQVM7c0JBQTdCLEtBQUs7dUJBQUMsWUFBWTtnQkFFVCxRQUFRO3NCQUFqQixNQUFNO2dCQUVHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTd2l0Y2hWaWV3QWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgVmlld0NoaWxkLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSGVhZGVyTWV0YUl0ZW0sIFJvdXRlclZpZXdBY3Rpb24sIFZpZXdBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi12aWV3LWxheW91dCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3ZpZXctbGF5b3V0LmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVmlld0xheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaCcpIHByaXZhdGUgc2VhcmNoSW5wdXQkPzogRWxlbWVudFJlZjtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdzaG93LWhlYWRlcicpIGhlYWRlciA9IHRydWU7XHJcbiAgQElucHV0KCkgZmx1aWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSB0aXRsZSA9ICdubyB0aXRsZSc7XHJcbiAgQElucHV0KCkgaWNvbjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgYWN0aW9uczogVmlld0FjdGlvbltdIHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgYnVzeSA9IGZhbHNlO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ3NlYXJjaC1wbGFjZWhvbGRlcicpIHNlYXJjaFBsYWNlaG9sZGVyOiBzdHJpbmcgfCBudWxsID0gJ86xzr3Osc62zq7PhM63z4POtyc7XHJcbiAgQElucHV0KCkgdmlldzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnbWV0YS1pdGVtcycpIG1ldGFJdGVtczogSGVhZGVyTWV0YUl0ZW1bXSB8IG51bGwgPSBbXTtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tb3V0cHV0LW9uLXByZWZpeFxyXG4gIEBPdXRwdXQoKSBvbkFjdGlvbjogRXZlbnRFbWl0dGVyPFZpZXdBY3Rpb24+ID0gbmV3IEV2ZW50RW1pdHRlcjxWaWV3QWN0aW9uPigpO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1vdXRwdXQtb24tcHJlZml4XHJcbiAgQE91dHB1dCgpIG9uU2VhcmNoOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlJDogQWN0aXZhdGVkUm91dGUsIHByaXZhdGUgcm91dGVyJDogUm91dGVyKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zZWFyY2hJbnB1dCQ/Lm5hdGl2ZUVsZW1lbnQpe1xyXG4gICAgICBmcm9tRXZlbnQodGhpcy5zZWFyY2hJbnB1dCQubmF0aXZlRWxlbWVudCwgJ2tleXVwJykucGlwZShcclxuICAgICAgICBtYXAoKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiBldmVudC50YXJnZXQudmFsdWU7IC8vIEdldCBpbnB1dCB2YWx1ZS5cclxuICAgICAgICB9KSxcclxuICAgICAgICBmaWx0ZXIoaW5wdXRWYWx1ZSA9PiBpbnB1dFZhbHVlLmxlbmd0aCA+PSAzIHx8IGlucHV0VmFsdWUubGVuZ3RoID09PSAwKSxcclxuICAgICAgICAvLyBJZiBjaGFyYWN0ZXIgbGVuZ3RoIGdyZWF0ZXIgdGhhbiBtaW5pbXVtU2VhcmNoQ2hhcmFjdGVycyBzZXR0aW5nLlxyXG4gICAgICAgIGRlYm91bmNlVGltZSgxMDAwKSwgLy8gVGltZSBpbiBtaWxsaXNlY29uZHMgYmV0d2VlbiBrZXkgZXZlbnRzLlxyXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkgLy8gSWYgcHJldmlvdXMgcXVlcnkgaXMgZGlmZmVyZW50IGZyb20gY3VycmVudC5cclxuICAgICAgKS5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBlbWl0QWN0aW9uQ2xpY2soYWN0aW9uOiBWaWV3QWN0aW9uKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQWN0aW9uLmVtaXQoYWN0aW9uKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByb3V0ZXJMaW5rQWN0aW9uQ2xpY2soYWN0aW9uOiBSb3V0ZXJWaWV3QWN0aW9uIHwgYW55KTogdm9pZCB7XHJcbiAgICAvLyBjb25zb2xlLmxvZygncm91dGVyTGlua0FjdGlvbkNsaWNrJywgYWN0aW9uKTtcclxuICAgIGlmIChhY3Rpb24ub3V0bGV0KSB7XHJcbiAgICAgIHRoaXMucm91dGVyJC5uYXZpZ2F0ZShbJycsIHsgb3V0bGV0czogeyByaWdodHBhbmU6IGFjdGlvbi5saW5rIH0gfV0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5yb3V0ZXIkLm5hdmlnYXRlKFthY3Rpb24ubGlua10pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2VhcmNoQWN0aW9uQ2xpY2soYWN0aW9uOiBWaWV3QWN0aW9uLCB0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMub25TZWFyY2guZW1pdCh0ZXh0KTtcclxuICB9XHJcblxyXG4gIHNlYXJjaEFjdGlvblR5cGUodGV4dDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uU2VhcmNoLmVtaXQodGhpcy5zZWFyY2hJbnB1dCQ/Lm5hdGl2ZUVsZW1lbnQudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUNsZWFyKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnNvbGUubG9nKCdoYW5kbGUgY2xlYXIhISEnKTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5vblNlYXJjaC5lbWl0KGV2ZW50LnRhcmdldD8udmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN3aXRjaFZpZXdBY3Rpb25DbGljayhhY3Rpb246IFN3aXRjaFZpZXdBY3Rpb24gfCBhbnkpOiB2b2lkIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKCdzd2l0Y2hWaWV3QWN0aW9uQ2xpY2snLCBhY3Rpb24pO1xyXG4gICAgdGhpcy52aWV3ID0gYWN0aW9uLnBhcmFtO1xyXG4gICAgaWYgKGFjdGlvbiAmJiBhY3Rpb24ucGFyYW0pIHtcclxuICAgICAgdGhpcy5yb3V0ZXIkLm5hdmlnYXRlKFtdLCB7IHF1ZXJ5UGFyYW1zOiB7IHZpZXc6IGFjdGlvbi5wYXJhbSB9LCBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnLCBza2lwTG9jYXRpb25DaGFuZ2U6IGZhbHNlIH0pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8aGVhZGVyICpuZ0lmPVwiaGVhZGVyXCJcclxuICAgICAgICBjbGFzcz1cInZpZXctbGF5b3V0LXBhZGRpbmdzXCI+XHJcbiAgPGRpdiBjbGFzcz1cInZpZXctbGF5b3V0LXRpdGxlLWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInZpZXctbGF5b3V0LXRpdGxlLWNvbnRhaW5lci1pbm5lclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICA8aSAqbmdJZj1cImljb25cIlxyXG4gICAgICAgICAgIFtjbGFzc109XCJpY29uICsgJyB0aXRsZS1pY29uJ1wiXHJcbiAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgIDxoMSBbY2xhc3NdPVwiYnVzeSA/ICd2aWV3LWxheW91dC10aXRsZS1idXN5JyA6ICd2aWV3LWxheW91dC10aXRsZSdcIj57e3RpdGxlfX08L2gxPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiAqbmdJZj1cIm1ldGFJdGVtcyAmJiBtZXRhSXRlbXMubGVuZ3RoID4gMFwiXHJcbiAgICAgICAgICAgY2xhc3M9XCJtZXRhLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG1ldGEgb2YgbWV0YUl0ZW1zXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWV0YS1pdGVtLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8aSAqbmdJZj1cIm1ldGEuaWNvblwiXHJcbiAgICAgICAgICAgICAgIFtjbGFzc109XCJtZXRhLmljb24gKyAnIG1ldGEtaWNvbidcIlxyXG4gICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIj5cclxuICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1ldGEtdGV4dFwiPnt7bWV0YS50ZXh0fX08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ2aWV3LWxheW91dC10aXRsZS1jb250YWluZXItZmFyXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBhY3Rpb25zXCIgW25nU3dpdGNoXT1cImFjdGlvbi50eXBlXCI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidzd2l0Y2gtdmlldydcIj5cclxuICAgICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cInZpZXcgPT09IGFjdGlvbi5wYXJhbVwiXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICBocmVmPVwiI1wiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXItMSBkaXNhYmxlZDpvcGFjaXR5LTc1IGJ0bi12aWV3LWhlYWRlclwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzd2l0Y2hWaWV3QWN0aW9uQ2xpY2soYWN0aW9uKVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImlubGluZS1ibG9jayByZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICAgIDxpIFtjbGFzc109XCJhY3Rpb24uaWNvblwiPjwvaT5cclxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInZpZXcgPT09IGFjdGlvbi5wYXJhbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3RlZC12aWV3LWluZGljYXRvclwiPlxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3NlYXJjaCdcIj5cclxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJzZWFyY2hcIlxyXG4gICAgICAgICAgICAgICAgIGNsYXNzPVwic3Itb25seVwiPlxyXG4gICAgICAgICAgICBTZWFyY2hcclxuICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9pbnRlci1ldmVudHMtbm9uZSBhYnNvbHV0ZSBpbnNldC15LTAgbGVmdC0wIHBsLTMgZmxleCBpdGVtcy1jZW50ZXJcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGlucHV0IGlkPVwic2VhcmNoXCJcclxuICAgICAgICAgICAgICAgICAgICNzZWFyY2hcclxuICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2VhcmNoLWlucHV0XCJcclxuICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJzZWFyY2hQbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICAgICAgICAgICB0eXBlPVwic2VhcmNoXCJcclxuICAgICAgICAgICAgICAgICAgIG5hbWU9XCJzZWFyY2hcIlxyXG4gICAgICAgICAgICAgICAgICAgKGlucHV0KT1cInNlYXJjaEFjdGlvblR5cGUoc2VhcmNoLnZhbHVlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAob25zZWFyY2gpPVwiaGFuZGxlQ2xlYXIoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgaHJlZj1cIiNcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi12aWV3LWhlYWRlciByb3VuZGVkLWwtbm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJhY3Rpb24udG9vbHRpcFwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWFyY2hBY3Rpb25DbGljayhhY3Rpb24sIHNlYXJjaC52YWx1ZSlcIj5cclxuICAgICAgICAgICAgPGkgW2NsYXNzXT1cImFjdGlvbi5pY29uXCI+PC9pPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3JvdXRlci1saW5rJ1wiPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgaHJlZj1cIiNcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cIm1yLTEgYnRuLXZpZXctaGVhZGVyXCJcclxuICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cImFjdGlvbi50b29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJvdXRlckxpbmtBY3Rpb25DbGljayhhY3Rpb24pXCI+XHJcbiAgICAgICAgICAgIDxpIFtjbGFzc109XCJhY3Rpb24uaWNvblwiPjwvaT5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIFxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXItMSBidG4tdmlldy1oZWFkZXJcIlxyXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiYWN0aW9uLnRvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZW1pdEFjdGlvbkNsaWNrKGFjdGlvbilcIj5cclxuICAgICAgICAgICAgPGkgW2NsYXNzXT1cImFjdGlvbi5pY29uXCI+PC9pPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvaGVhZGVyPlxyXG48ZGl2IFtjbGFzc109XCJmbHVpZCA/ICd2aWV3LWNvbnRhaW5lci1mbHVpZCcgOiAndmlldy1jb250YWluZXInXCI+XHJcbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG48L2Rpdj4iXX0=
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3Mvdmlldy1sYXlvdXQvdmlldy1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2xheW91dHMvdmlld3Mvdmlldy1sYXlvdXQvdmlldy1sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQU9qRixNQUFNLE9BQU8sbUJBQW1CO0lBb0I5QixZQUFvQixNQUFzQixFQUFVLE9BQWU7UUFBL0MsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBakJuRSwyQ0FBMkM7UUFDckIsV0FBTSxHQUFHLElBQUksQ0FBQztRQUMzQixVQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2QsVUFBSyxHQUFHLFVBQVUsQ0FBQztRQUNuQixTQUFJLEdBQWtCLElBQUksQ0FBQztRQUMzQixZQUFPLEdBQXdCLElBQUksQ0FBQztRQUNwQyxTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLDJDQUEyQztRQUNkLHNCQUFpQixHQUFrQixXQUFXLENBQUM7UUFDbkUsU0FBSSxHQUFrQixJQUFJLENBQUM7UUFDcEMsMkNBQTJDO1FBQ3RCLGNBQVMsR0FBNEIsRUFBRSxDQUFDO1FBQzdELCtD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LEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFFdUIsaUJBQWlCO3NCQUE3QyxLQUFLO3VCQUFDLG9CQUFvQjtnQkFDbEIsSUFBSTtzQkFBWixLQUFLO2dCQUVlLFNBQVM7c0JBQTdCLEtBQUs7dUJBQUMsWUFBWTtnQkFFVCxRQUFRO3NCQUFqQixNQUFNO2dCQUVHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTd2l0Y2hWaWV3QWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgVmlld0NoaWxkLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSGVhZGVyTWV0YUl0ZW0sIFJvdXRlclZpZXdBY3Rpb24sIFZpZXdBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi12aWV3LWxheW91dCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3ZpZXctbGF5b3V0LmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVmlld0xheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaCcpIHByaXZhdGUgc2VhcmNoSW5wdXQkPzogRWxlbWVudFJlZjtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdzaG93LWhlYWRlcicpIGhlYWRlciA9IHRydWU7XHJcbiAgQElucHV0KCkgZmx1aWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSB0aXRsZSA9ICdubyB0aXRsZSc7XHJcbiAgQElucHV0KCkgaWNvbjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgYWN0aW9uczogVmlld0FjdGlvbltdIHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgYnVzeSA9IGZhbHNlO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ3NlYXJjaC1wbGFjZWhvbGRlcicpIHNlYXJjaFBsYWNlaG9sZGVyOiBzdHJpbmcgfCBudWxsID0gJ86xzr3Osc62zq7PhM63z4POtyc7XHJcbiAgQElucHV0KCkgdmlldzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnbWV0YS1pdGVtcycpIG1ldGFJdGVtczogSGVhZGVyTWV0YUl0ZW1bXSB8IG51bGwgPSBbXTtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tb3V0cHV0LW9uLXByZWZpeFxyXG4gIEBPdXRwdXQoKSBvbkFjdGlvbjogRXZlbnRFbWl0dGVyPFZpZXdBY3Rpb24+ID0gbmV3IEV2ZW50RW1pdHRlcjxWaWV3QWN0aW9uPigpO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1vdXRwdXQtb24tcHJlZml4XHJcbiAgQE91dHB1dCgpIG9uU2VhcmNoOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlJDogQWN0aXZhdGVkUm91dGUsIHByaXZhdGUgcm91dGVyJDogUm91dGVyKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zZWFyY2hJbnB1dCQ/Lm5hdGl2ZUVsZW1lbnQpe1xyXG4gICAgICBmcm9tRXZlbnQodGhpcy5zZWFyY2hJbnB1dCQubmF0aXZlRWxlbWVudCwgJ2tleXVwJykucGlwZShcclxuICAgICAgICBtYXAoKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiBldmVudC50YXJnZXQudmFsdWU7IC8vIEdldCBpbnB1dCB2YWx1ZS5cclxuICAgICAgICB9KSxcclxuICAgICAgICBmaWx0ZXIoaW5wdXRWYWx1ZSA9PiBpbnB1dFZhbHVlLmxlbmd0aCA+PSAzIHx8IGlucHV0VmFsdWUubGVuZ3RoID09PSAwKSxcclxuICAgICAgICAvLyBJZiBjaGFyYWN0ZXIgbGVuZ3RoIGdyZWF0ZXIgdGhhbiBtaW5pbXVtU2VhcmNoQ2hhcmFjdGVycyBzZXR0aW5nLlxyXG4gICAgICAgIGRlYm91bmNlVGltZSgxMDAwKSwgLy8gVGltZSBpbiBtaWxsaXNlY29uZHMgYmV0d2VlbiBrZXkgZXZlbnRzLlxyXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkgLy8gSWYgcHJldmlvdXMgcXVlcnkgaXMgZGlmZmVyZW50IGZyb20gY3VycmVudC5cclxuICAgICAgKS5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBlbWl0QWN0aW9uQ2xpY2soYWN0aW9uOiBWaWV3QWN0aW9uKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQWN0aW9uLmVtaXQoYWN0aW9uKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByb3V0ZXJMaW5rQWN0aW9uQ2xpY2soYWN0aW9uOiBSb3V0ZXJWaWV3QWN0aW9uIHwgYW55KTogdm9pZCB7XHJcbiAgICAvLyBjb25zb2xlLmxvZygncm91dGVyTGlua0FjdGlvbkNsaWNrJywgYWN0aW9uKTtcclxuICAgIGlmIChhY3Rpb24ub3V0bGV0KSB7XHJcbiAgICAgIHRoaXMucm91dGVyJC5uYXZpZ2F0ZShbJycsIHsgb3V0bGV0czogeyByaWdodHBhbmU6IGFjdGlvbi5saW5rIH0gfV0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5yb3V0ZXIkLm5hdmlnYXRlKFthY3Rpb24ubGlua10pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2VhcmNoQWN0aW9uQ2xpY2soYWN0aW9uOiBWaWV3QWN0aW9uLCB0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMub25TZWFyY2guZW1pdCh0ZXh0KTtcclxuICB9XHJcblxyXG4gIHNlYXJjaEFjdGlvblR5cGUodGV4dDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uU2VhcmNoLmVtaXQodGhpcy5zZWFyY2hJbnB1dCQ/Lm5hdGl2ZUVsZW1lbnQudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUNsZWFyKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnNvbGUubG9nKCdoYW5kbGUgY2xlYXIhISEnKTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5vblNlYXJjaC5lbWl0KGV2ZW50LnRhcmdldD8udmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN3aXRjaFZpZXdBY3Rpb25DbGljayhhY3Rpb246IFN3aXRjaFZpZXdBY3Rpb24gfCBhbnkpOiB2b2lkIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKCdzd2l0Y2hWaWV3QWN0aW9uQ2xpY2snLCBhY3Rpb24pO1xyXG4gICAgdGhpcy52aWV3ID0gYWN0aW9uLnBhcmFtO1xyXG4gICAgaWYgKGFjdGlvbiAmJiBhY3Rpb24ucGFyYW0pIHtcclxuICAgICAgdGhpcy5yb3V0ZXIkLm5hdmlnYXRlKFtdLCB7IHF1ZXJ5UGFyYW1zOiB7IHZpZXc6IGFjdGlvbi5wYXJhbSB9LCBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnLCBza2lwTG9jYXRpb25DaGFuZ2U6IGZhbHNlIH0pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8aGVhZGVyICpuZ0lmPVwiaGVhZGVyXCJcclxuICAgICAgICBjbGFzcz1cInZpZXctbGF5b3V0LXBhZGRpbmdzXCI+XHJcbiAgPGRpdiBjbGFzcz1cInZpZXctbGF5b3V0LXRpdGxlLWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInZpZXctbGF5b3V0LXRpdGxlLWNvbnRhaW5lci1pbm5lclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICA8aSAqbmdJZj1cImljb25cIlxyXG4gICAgICAgICAgIFtjbGFzc109XCJpY29uICsgJyB0aXRsZS1pY29uJ1wiXHJcbiAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgIDxoMSBbY2xhc3NdPVwiYnVzeSA/ICd2aWV3LWxheW91dC10aXRsZS1idXN5JyA6ICd2aWV3LWxheW91dC10aXRsZSdcIj57e3RpdGxlfX08L2gxPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiAqbmdJZj1cIm1ldGFJdGVtcyAmJiBtZXRhSXRlbXMubGVuZ3RoID4gMFwiXHJcbiAgICAgICAgICAgY2xhc3M9XCJtZXRhLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG1ldGEgb2YgbWV0YUl0ZW1zXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWV0YS1pdGVtLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8aSAqbmdJZj1cIm1ldGEuaWNvblwiXHJcbiAgICAgICAgICAgICAgIFtjbGFzc109XCJtZXRhLmljb24gKyAnIG1ldGEtaWNvbidcIlxyXG4gICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIj5cclxuICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1ldGEtdGV4dFwiPnt7bWV0YS50ZXh0fX08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ2aWV3LWxheW91dC10aXRsZS1jb250YWluZXItZmFyXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBhY3Rpb25zXCIgW25nU3dpdGNoXT1cImFjdGlvbi50eXBlXCI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidzd2l0Y2gtdmlldydcIj5cclxuICAgICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cInZpZXcgPT09IGFjdGlvbi5wYXJhbVwiXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICBocmVmPVwiI1wiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXItMSBkaXNhYmxlZDpvcGFjaXR5LTc1IGJ0bi12aWV3LWhlYWRlclwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzd2l0Y2hWaWV3QWN0aW9uQ2xpY2soYWN0aW9uKVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImlubGluZS1ibG9jayByZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICAgIDxpIFtjbGFzc109XCJhY3Rpb24uaWNvblwiPjwvaT5cclxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInZpZXcgPT09IGFjdGlvbi5wYXJhbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3RlZC12aWV3LWluZGljYXRvclwiPlxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3NlYXJjaCdcIj5cclxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJzZWFyY2hcIlxyXG4gICAgICAgICAgICAgICAgIGNsYXNzPVwic3Itb25seVwiPlxyXG4gICAgICAgICAgICBTZWFyY2hcclxuICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9pbnRlci1ldmVudHMtbm9uZSBhYnNvbHV0ZSBpbnNldC15LTAgbGVmdC0wIHBsLTMgZmxleCBpdGVtcy1jZW50ZXJcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFic29sdXRlIHRvcC00IGxlZnQtM1wiPlxyXG4gICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cImFjdGlvbi5pY29uICsgJyB0ZXh0LWdyYXktNDAwIHotMjAgaG92ZXI6dGV4dC1ncmF5LTUwMCdcIj48L2k+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGlucHV0IGlkPVwic2VhcmNoXCJcclxuICAgICAgICAgICAgICAgICAgICAjc2VhcmNoXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZWFyY2gtaW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJzZWFyY2hQbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInNlYXJjaFwiXHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cInNlYXJjaFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGlucHV0KT1cInNlYXJjaEFjdGlvblR5cGUoc2VhcmNoLnZhbHVlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG9uc2VhcmNoKT1cImhhbmRsZUNsZWFyKCRldmVudClcIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIGhyZWY9XCIjXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi12aWV3LWhlYWRlciByb3VuZGVkLWwtbm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cImFjdGlvbi50b29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VhcmNoQWN0aW9uQ2xpY2soYWN0aW9uLCBzZWFyY2gudmFsdWUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cImFjdGlvbi5pY29uXCI+PC9pPlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3JvdXRlci1saW5rJ1wiPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgaHJlZj1cIiNcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cIm1yLTEgYnRuLXZpZXctaGVhZGVyXCJcclxuICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cImFjdGlvbi50b29sdGlwXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJvdXRlckxpbmtBY3Rpb25DbGljayhhY3Rpb24pXCI+XHJcbiAgICAgICAgICAgIDxpIFtjbGFzc109XCJhY3Rpb24uaWNvblwiPjwvaT5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIFxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXItMSBidG4tdmlldy1oZWFkZXJcIlxyXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiYWN0aW9uLnRvb2x0aXBcIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZW1pdEFjdGlvbkNsaWNrKGFjdGlvbilcIj5cclxuICAgICAgICAgICAgPGkgW2NsYXNzXT1cImFjdGlvbi5pY29uXCI+PC9pPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvaGVhZGVyPlxyXG48ZGl2IFtjbGFzc109XCJmbHVpZCA/ICd2aWV3LWNvbnRhaW5lci1mbHVpZCcgOiAndmlldy1jb250YWluZXInXCI+XHJcbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG48L2Rpdj4iXX0=
@@ -3240,10 +3240,10 @@ class ViewLayoutComponent {
3240
3240
  }
3241
3241
  }
3242
3242
  ViewLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ViewLayoutComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: i1$1.Router }], target: i0.ɵɵFactoryTarget.Component });
3243
- ViewLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ViewLayoutComponent, selector: "lib-view-layout", inputs: { header: ["show-header", "header"], fluid: "fluid", title: "title", icon: "icon", actions: "actions", busy: "busy", searchPlaceholder: ["search-placeholder", "searchPlaceholder"], view: "view", metaItems: ["meta-items", "metaItems"] }, outputs: { onAction: "onAction", onSearch: "onSearch" }, viewQueries: [{ propertyName: "searchInput$", first: true, predicate: ["search"], descendants: true }], ngImport: i0, template: "<header *ngIf=\"header\"\r\n class=\"view-layout-paddings\">\r\n <div class=\"view-layout-title-container\">\r\n <div class=\"view-layout-title-container-inner\">\r\n <div class=\"flex items-center\">\r\n <i *ngIf=\"icon\"\r\n [class]=\"icon + ' title-icon'\"\r\n aria-hidden=\"true\"></i>\r\n <h1 [class]=\"busy ? 'view-layout-title-busy' : 'view-layout-title'\">{{title}}</h1>\r\n </div>\r\n <div *ngIf=\"metaItems && metaItems.length > 0\"\r\n class=\"meta-container\">\r\n <ng-container *ngFor=\"let meta of metaItems\">\r\n <div class=\"meta-item-container\">\r\n <i *ngIf=\"meta.icon\"\r\n [class]=\"meta.icon + ' meta-icon'\"\r\n aria-hidden=\"true\">\r\n </i>\r\n <span class=\"meta-text\">{{meta.text}}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"view-layout-title-container-far\">\r\n <ng-container *ngFor=\"let action of actions\" [ngSwitch]=\"action.type\">\r\n\r\n <ng-container *ngSwitchCase=\"'switch-view'\">\r\n <button [disabled]=\"view === action.param\"\r\n type=\"button\"\r\n href=\"#\"\r\n class=\"mr-1 disabled:opacity-75 btn-view-header\"\r\n (click)=\"switchViewActionClick(action)\">\r\n <span class=\"inline-block relative\">\r\n <i [class]=\"action.icon\"></i>\r\n <span *ngIf=\"view === action.param\"\r\n class=\"selected-view-indicator\">\r\n </span>\r\n </span>\r\n </button>\r\n </ng-container>\r\n \r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <label for=\"search\"\r\n class=\"sr-only\">\r\n Search\r\n </label>\r\n <div class=\"search-container\">\r\n <div class=\"pointer-events-none absolute inset-y-0 left-0 pl-3 flex items-center\"></div>\r\n <input id=\"search\"\r\n #search\r\n class=\"search-input\"\r\n [placeholder]=\"searchPlaceholder\"\r\n type=\"search\"\r\n name=\"search\"\r\n (input)=\"searchActionType(search.value)\"\r\n (onsearch)=\"handleClear($event)\">\r\n </div>\r\n <button type=\"button\"\r\n *ngIf=\"false\"\r\n href=\"#\"\r\n class=\"btn-view-header rounded-l-none\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"searchActionClick(action, search.value)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n \r\n <ng-container *ngSwitchCase=\"'router-link'\">\r\n <button type=\"button\"\r\n href=\"#\"\r\n class=\"mr-1 btn-view-header\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"routerLinkActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n \r\n <ng-container *ngSwitchDefault>\r\n <button type=\"button\"\r\n class=\"mr-1 btn-view-header\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"emitActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</header>\r\n<div [class]=\"fluid ? 'view-container-fluid' : 'view-container'\">\r\n <ng-content></ng-content>\r\n</div>", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }] });
3243
+ ViewLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ViewLayoutComponent, selector: "lib-view-layout", inputs: { header: ["show-header", "header"], fluid: "fluid", title: "title", icon: "icon", actions: "actions", busy: "busy", searchPlaceholder: ["search-placeholder", "searchPlaceholder"], view: "view", metaItems: ["meta-items", "metaItems"] }, outputs: { onAction: "onAction", onSearch: "onSearch" }, viewQueries: [{ propertyName: "searchInput$", first: true, predicate: ["search"], descendants: true }], ngImport: i0, template: "<header *ngIf=\"header\"\r\n class=\"view-layout-paddings\">\r\n <div class=\"view-layout-title-container\">\r\n <div class=\"view-layout-title-container-inner\">\r\n <div class=\"flex items-center\">\r\n <i *ngIf=\"icon\"\r\n [class]=\"icon + ' title-icon'\"\r\n aria-hidden=\"true\"></i>\r\n <h1 [class]=\"busy ? 'view-layout-title-busy' : 'view-layout-title'\">{{title}}</h1>\r\n </div>\r\n <div *ngIf=\"metaItems && metaItems.length > 0\"\r\n class=\"meta-container\">\r\n <ng-container *ngFor=\"let meta of metaItems\">\r\n <div class=\"meta-item-container\">\r\n <i *ngIf=\"meta.icon\"\r\n [class]=\"meta.icon + ' meta-icon'\"\r\n aria-hidden=\"true\">\r\n </i>\r\n <span class=\"meta-text\">{{meta.text}}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"view-layout-title-container-far\">\r\n <ng-container *ngFor=\"let action of actions\" [ngSwitch]=\"action.type\">\r\n\r\n <ng-container *ngSwitchCase=\"'switch-view'\">\r\n <button [disabled]=\"view === action.param\"\r\n type=\"button\"\r\n href=\"#\"\r\n class=\"mr-1 disabled:opacity-75 btn-view-header\"\r\n (click)=\"switchViewActionClick(action)\">\r\n <span class=\"inline-block relative\">\r\n <i [class]=\"action.icon\"></i>\r\n <span *ngIf=\"view === action.param\"\r\n class=\"selected-view-indicator\">\r\n </span>\r\n </span>\r\n </button>\r\n </ng-container>\r\n \r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <label for=\"search\"\r\n class=\"sr-only\">\r\n Search\r\n </label>\r\n <div class=\"search-container\">\r\n <div class=\"pointer-events-none absolute inset-y-0 left-0 pl-3 flex items-center\"></div>\r\n <div class=\"relative\">\r\n <div class=\"absolute top-4 left-3\">\r\n <i [class]=\"action.icon + ' text-gray-400 z-20 hover:text-gray-500'\"></i>\r\n </div>\r\n <input id=\"search\"\r\n #search\r\n class=\"search-input\"\r\n [placeholder]=\"searchPlaceholder\"\r\n type=\"search\"\r\n name=\"search\"\r\n (input)=\"searchActionType(search.value)\"\r\n (onsearch)=\"handleClear($event)\">\r\n <button type=\"button\"\r\n *ngIf=\"false\"\r\n href=\"#\"\r\n class=\"btn-view-header rounded-l-none\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"searchActionClick(action, search.value)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </div>\r\n\r\n </div>\r\n </ng-container>\r\n \r\n <ng-container *ngSwitchCase=\"'router-link'\">\r\n <button type=\"button\"\r\n href=\"#\"\r\n class=\"mr-1 btn-view-header\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"routerLinkActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n \r\n <ng-container *ngSwitchDefault>\r\n <button type=\"button\"\r\n class=\"mr-1 btn-view-header\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"emitActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</header>\r\n<div [class]=\"fluid ? 'view-container-fluid' : 'view-container'\">\r\n <ng-content></ng-content>\r\n</div>", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }] });
3244
3244
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ViewLayoutComponent, decorators: [{
3245
3245
  type: Component,
3246
- args: [{ selector: 'lib-view-layout', template: "<header *ngIf=\"header\"\r\n class=\"view-layout-paddings\">\r\n <div class=\"view-layout-title-container\">\r\n <div class=\"view-layout-title-container-inner\">\r\n <div class=\"flex items-center\">\r\n <i *ngIf=\"icon\"\r\n [class]=\"icon + ' title-icon'\"\r\n aria-hidden=\"true\"></i>\r\n <h1 [class]=\"busy ? 'view-layout-title-busy' : 'view-layout-title'\">{{title}}</h1>\r\n </div>\r\n <div *ngIf=\"metaItems && metaItems.length > 0\"\r\n class=\"meta-container\">\r\n <ng-container *ngFor=\"let meta of metaItems\">\r\n <div class=\"meta-item-container\">\r\n <i *ngIf=\"meta.icon\"\r\n [class]=\"meta.icon + ' meta-icon'\"\r\n aria-hidden=\"true\">\r\n </i>\r\n <span class=\"meta-text\">{{meta.text}}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"view-layout-title-container-far\">\r\n <ng-container *ngFor=\"let action of actions\" [ngSwitch]=\"action.type\">\r\n\r\n <ng-container *ngSwitchCase=\"'switch-view'\">\r\n <button [disabled]=\"view === action.param\"\r\n type=\"button\"\r\n href=\"#\"\r\n class=\"mr-1 disabled:opacity-75 btn-view-header\"\r\n (click)=\"switchViewActionClick(action)\">\r\n <span class=\"inline-block relative\">\r\n <i [class]=\"action.icon\"></i>\r\n <span *ngIf=\"view === action.param\"\r\n class=\"selected-view-indicator\">\r\n </span>\r\n </span>\r\n </button>\r\n </ng-container>\r\n \r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <label for=\"search\"\r\n class=\"sr-only\">\r\n Search\r\n </label>\r\n <div class=\"search-container\">\r\n <div class=\"pointer-events-none absolute inset-y-0 left-0 pl-3 flex items-center\"></div>\r\n <input id=\"search\"\r\n #search\r\n class=\"search-input\"\r\n [placeholder]=\"searchPlaceholder\"\r\n type=\"search\"\r\n name=\"search\"\r\n (input)=\"searchActionType(search.value)\"\r\n (onsearch)=\"handleClear($event)\">\r\n </div>\r\n <button type=\"button\"\r\n *ngIf=\"false\"\r\n href=\"#\"\r\n class=\"btn-view-header rounded-l-none\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"searchActionClick(action, search.value)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n \r\n <ng-container *ngSwitchCase=\"'router-link'\">\r\n <button type=\"button\"\r\n href=\"#\"\r\n class=\"mr-1 btn-view-header\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"routerLinkActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n \r\n <ng-container *ngSwitchDefault>\r\n <button type=\"button\"\r\n class=\"mr-1 btn-view-header\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"emitActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</header>\r\n<div [class]=\"fluid ? 'view-container-fluid' : 'view-container'\">\r\n <ng-content></ng-content>\r\n</div>" }]
3246
+ args: [{ selector: 'lib-view-layout', template: "<header *ngIf=\"header\"\r\n class=\"view-layout-paddings\">\r\n <div class=\"view-layout-title-container\">\r\n <div class=\"view-layout-title-container-inner\">\r\n <div class=\"flex items-center\">\r\n <i *ngIf=\"icon\"\r\n [class]=\"icon + ' title-icon'\"\r\n aria-hidden=\"true\"></i>\r\n <h1 [class]=\"busy ? 'view-layout-title-busy' : 'view-layout-title'\">{{title}}</h1>\r\n </div>\r\n <div *ngIf=\"metaItems && metaItems.length > 0\"\r\n class=\"meta-container\">\r\n <ng-container *ngFor=\"let meta of metaItems\">\r\n <div class=\"meta-item-container\">\r\n <i *ngIf=\"meta.icon\"\r\n [class]=\"meta.icon + ' meta-icon'\"\r\n aria-hidden=\"true\">\r\n </i>\r\n <span class=\"meta-text\">{{meta.text}}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"view-layout-title-container-far\">\r\n <ng-container *ngFor=\"let action of actions\" [ngSwitch]=\"action.type\">\r\n\r\n <ng-container *ngSwitchCase=\"'switch-view'\">\r\n <button [disabled]=\"view === action.param\"\r\n type=\"button\"\r\n href=\"#\"\r\n class=\"mr-1 disabled:opacity-75 btn-view-header\"\r\n (click)=\"switchViewActionClick(action)\">\r\n <span class=\"inline-block relative\">\r\n <i [class]=\"action.icon\"></i>\r\n <span *ngIf=\"view === action.param\"\r\n class=\"selected-view-indicator\">\r\n </span>\r\n </span>\r\n </button>\r\n </ng-container>\r\n \r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <label for=\"search\"\r\n class=\"sr-only\">\r\n Search\r\n </label>\r\n <div class=\"search-container\">\r\n <div class=\"pointer-events-none absolute inset-y-0 left-0 pl-3 flex items-center\"></div>\r\n <div class=\"relative\">\r\n <div class=\"absolute top-4 left-3\">\r\n <i [class]=\"action.icon + ' text-gray-400 z-20 hover:text-gray-500'\"></i>\r\n </div>\r\n <input id=\"search\"\r\n #search\r\n class=\"search-input\"\r\n [placeholder]=\"searchPlaceholder\"\r\n type=\"search\"\r\n name=\"search\"\r\n (input)=\"searchActionType(search.value)\"\r\n (onsearch)=\"handleClear($event)\">\r\n <button type=\"button\"\r\n *ngIf=\"false\"\r\n href=\"#\"\r\n class=\"btn-view-header rounded-l-none\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"searchActionClick(action, search.value)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </div>\r\n\r\n </div>\r\n </ng-container>\r\n \r\n <ng-container *ngSwitchCase=\"'router-link'\">\r\n <button type=\"button\"\r\n href=\"#\"\r\n class=\"mr-1 btn-view-header\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"routerLinkActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n \r\n <ng-container *ngSwitchDefault>\r\n <button type=\"button\"\r\n class=\"mr-1 btn-view-header\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"emitActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</header>\r\n<div [class]=\"fluid ? 'view-container-fluid' : 'view-container'\">\r\n <ng-content></ng-content>\r\n</div>" }]
3247
3247
  }], ctorParameters: function () { return [{ type: i1$1.ActivatedRoute }, { type: i1$1.Router }]; }, propDecorators: { searchInput$: [{
3248
3248
  type: ViewChild,
3249
3249
  args: ['search']