@factor_ec/ui 1.0.7 → 1.0.8

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.
Files changed (51) hide show
  1. package/esm2020/lib/display/avatar/avatar.component.mjs +74 -0
  2. package/esm2020/lib/{content → display/content}/content.component.mjs +1 -1
  3. package/esm2020/lib/display/display.module.mjs +66 -0
  4. package/esm2020/lib/display/icon/icon.component.mjs +97 -0
  5. package/esm2020/lib/{image → display/image}/image.component.mjs +1 -1
  6. package/esm2020/lib/{message → display/message}/message.component.mjs +1 -1
  7. package/esm2020/lib/display/message.service.mjs +58 -0
  8. package/esm2020/lib/display/observe-intersecting.directive.mjs +43 -0
  9. package/esm2020/lib/{progress → display/progress}/progress.component.mjs +1 -1
  10. package/esm2020/lib/display/progress.service.mjs +50 -0
  11. package/esm2020/lib/inputs/inputs.module.mjs +24 -0
  12. package/esm2020/lib/{rating → inputs/rating}/rating.component.mjs +1 -1
  13. package/esm2020/lib/models/action.mjs +1 -1
  14. package/esm2020/lib/models/module-configuration.mjs +2 -0
  15. package/esm2020/lib/navigation/list/list.component.mjs +56 -0
  16. package/esm2020/lib/navigation/navbar/navbar.component.mjs +72 -0
  17. package/esm2020/lib/navigation/navigation.module.mjs +55 -0
  18. package/esm2020/lib/navigation/searchbox/searchbox.component.mjs +106 -0
  19. package/esm2020/lib/navigation/toolbar/toolbar.component.mjs +51 -0
  20. package/esm2020/lib/ui.module.mjs +15 -52
  21. package/esm2020/public-api.mjs +18 -8
  22. package/fesm2015/factor_ec-ui.mjs +558 -149
  23. package/fesm2015/factor_ec-ui.mjs.map +1 -1
  24. package/fesm2020/factor_ec-ui.mjs +552 -145
  25. package/fesm2020/factor_ec-ui.mjs.map +1 -1
  26. package/lib/{avatar → display/avatar}/avatar.component.d.ts +1 -1
  27. package/lib/{content → display/content}/content.component.d.ts +0 -0
  28. package/lib/display/display.module.d.ts +17 -0
  29. package/lib/{icon → display/icon}/icon.component.d.ts +1 -1
  30. package/lib/{image → display/image}/image.component.d.ts +0 -0
  31. package/lib/{message → display/message}/message.component.d.ts +0 -0
  32. package/lib/{message.service.d.ts → display/message.service.d.ts} +2 -2
  33. package/lib/{observe-intersecting.directive.d.ts → display/observe-intersecting.directive.d.ts} +2 -1
  34. package/lib/{progress → display/progress}/progress.component.d.ts +0 -0
  35. package/lib/display/progress.service.d.ts +15 -0
  36. package/lib/inputs/inputs.module.d.ts +8 -0
  37. package/lib/{rating → inputs/rating}/rating.component.d.ts +0 -0
  38. package/lib/models/action.d.ts +11 -3
  39. package/lib/models/module-configuration.d.ts +6 -0
  40. package/lib/navigation/list/list.component.d.ts +19 -0
  41. package/lib/navigation/navbar/navbar.component.d.ts +23 -0
  42. package/lib/navigation/navigation.module.d.ts +15 -0
  43. package/lib/navigation/searchbox/searchbox.component.d.ts +34 -0
  44. package/lib/navigation/toolbar/toolbar.component.d.ts +18 -0
  45. package/lib/ui.module.d.ts +7 -14
  46. package/package.json +1 -1
  47. package/public-api.d.ts +17 -7
  48. package/esm2020/lib/avatar/avatar.component.mjs +0 -74
  49. package/esm2020/lib/icon/icon.component.mjs +0 -97
  50. package/esm2020/lib/message.service.mjs +0 -58
  51. package/esm2020/lib/observe-intersecting.directive.mjs +0 -36
@@ -0,0 +1,56 @@
1
+ import { Component, EventEmitter, Output, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/router";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "../../display/icon/icon.component";
6
+ export class ListComponent {
7
+ constructor(router) {
8
+ this.router = router;
9
+ this.change = new EventEmitter();
10
+ this.iconNameField = 'iconName';
11
+ this.labelField = 'label';
12
+ }
13
+ getComponentType(item) {
14
+ let type = 'text';
15
+ if (!item.url || item.url.match(/^(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/)) {
16
+ type = 'button';
17
+ }
18
+ else {
19
+ type = 'link';
20
+ }
21
+ return type;
22
+ }
23
+ setItem(item) {
24
+ if (item.url) {
25
+ if (item.url.match(/^(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/)) {
26
+ window.location.href = item.url;
27
+ }
28
+ }
29
+ else if (item.click) {
30
+ item.click();
31
+ }
32
+ }
33
+ toggleCollapsible(action) {
34
+ action.metadata.show = !action.metadata.show;
35
+ this.change.emit(action);
36
+ }
37
+ }
38
+ ListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ListComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
39
+ ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ListComponent, selector: "ft-list", inputs: { iconCollection: "iconCollection", iconNameField: "iconNameField", iconPath: "iconPath", labelField: "labelField", items: "items" }, outputs: { change: "change" }, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"switch; context: { children: items }\"></ng-container>\n<ng-template #switch let-children=\"children\" let-level=\"level\">\n <ng-container *ngFor=\"let item of children\" [ngSwitch]=\"item.type\">\n <ng-container *ngSwitchCase=\"'collapsible'\">\n <ng-container *ngTemplateOutlet=\"collapsible; context: { item: item }\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'header'\">\n <ng-container *ngTemplateOutlet=\"header; context: { item: item }\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <ng-container *ngTemplateOutlet=\"action; context: { item: item }\"></ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n<ng-template #action let-item=\"item\">\n <ng-container [ngSwitch]=\"getComponentType(item)\">\n <button *ngSwitchCase=\"'button'\" type=\"button\" matRipple class=\"list__item\" [ngClass]=\"item.class\" (click)=\"setItem(item)\">\n <ng-container *ngTemplateOutlet=\"text; context: { item: item }\"></ng-container>\n </button>\n <a *ngSwitchCase=\"'link'\" [routerLink]=\"item.url\" routerLinkActive=\"active\" matRipple class=\"list__item\" [ngClass]=\"item.class\" (click)=\"setItem(item)\">\n <ng-container *ngTemplateOutlet=\"text; context: { item: item }\"></ng-container>\n </a>\n </ng-container>\n</ng-template>\n<ng-template #collapsible let-item=\"item\">\n <button type=\"button\" matRipple class=\"collapsible-header list__item\" [ngClass]=\"{ show: item.metadata.show }\" (click)=\"toggleCollapsible(item)\">\n <div class=\"d-flex align-items-center flex-grow-1\">\n <ft-icon class=\"item__icon\" *ngIf=\"item[iconNameField]\" [name]=\"item[iconNameField]\" [collection]=\"iconCollection\" [path]=\"iconPath\"></ft-icon>\n <div class=\"item__label flex-grow-1\">{{ item[labelField] }}</div>\n <ft-icon class=\"item__toggle\" name=\"angle-right\" size=\"1\"></ft-icon>\n </div>\n </button>\n <div class=\"collapsible\" [ngClass]=\"{show:item.metadata.show}\" *ngIf=\"item.children\">\n <ng-container *ngTemplateOutlet=\"switch; context: { children: item.children }\"></ng-container>\n </div>\n</ng-template>\n<ng-template #header let-item=\"item\">\n <div class=\"header\" [ngClass]=\"item.class\">\n {{ item[labelField] }}\n </div>\n</ng-template>\n<ng-template #text let-item=\"item\">\n <div class=\"d-flex align-items-center\">\n <ft-icon class=\"item__icon\" *ngIf=\"item[iconNameField]\" [name]=\"item[iconNameField]\" [collection]=\"iconCollection\" [path]=\"iconPath\"></ft-icon>\n <div class=\"item__label\">{{ item[labelField] }}</div>\n </div>\n</ng-template>\n", styles: [":host{--background-color: var(--background-color, #F8F9FA);--background-color-hover: rgba(0, 0, 0, .03);--background-color-active: rgba(var(--primary-rgb), .1);--text-color: #333;--text-color-hover: var(--primary);--text-color-active: var(--primary);display:block;overflow:auto}.list__item{border:0;box-sizing:border-box;color:var(--text-color);background-color:var(--background-color);cursor:pointer;display:flex;outline:none;transition:background-color .3s,color .3s;text-align:left;padding:.75rem 1.5rem;width:100%}@media (min-width: var(--breakpoint-md)){.list__item{width:100%}}.list__item:hover{text-decoration:none}.list__item:hover:not(.active){--background-color: var(--background-color-hover);--text-color: var(--text-color-hover)}.list__item.active,.list__item:active{--background-color: var(--background-color-active);--text-color: var(--text-color-active)}.list__item>div{max-width:100%}.list__item .item__icon{font-size:1.5rem}.list__item .item__icon+.item__label{display:block;margin-left:.5rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list__item .item__icon,.list__item .item__label{transition:margin-left .3s}.list__item .item__toggle{transition:transform .2s}.collapsible{overflow:hidden;transition:max-height .2s;max-height:100vh;background-color:#00000003;box-shadow:inset 0 4px 9px -7px #0006}.collapsible-header{font-weight:500}.collapsible-header.show .item__toggle{transform:rotate(90deg)}.collapsible:not(.show){max-height:0;background-color:transparent}.header{text-transform:uppercase;font-weight:700;padding:.75rem 1.5rem .25rem;font-size:.75rem;opacity:.3}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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]" }, { kind: "component", type: i3.IconComponent, selector: "ft-icon", inputs: ["class", "collection", "mode", "name", "path", "size", "src"] }, { kind: "directive", type: i1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { kind: "directive", type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }] });
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ListComponent, decorators: [{
41
+ type: Component,
42
+ args: [{ selector: 'ft-list', template: "<ng-container *ngTemplateOutlet=\"switch; context: { children: items }\"></ng-container>\n<ng-template #switch let-children=\"children\" let-level=\"level\">\n <ng-container *ngFor=\"let item of children\" [ngSwitch]=\"item.type\">\n <ng-container *ngSwitchCase=\"'collapsible'\">\n <ng-container *ngTemplateOutlet=\"collapsible; context: { item: item }\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'header'\">\n <ng-container *ngTemplateOutlet=\"header; context: { item: item }\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <ng-container *ngTemplateOutlet=\"action; context: { item: item }\"></ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n<ng-template #action let-item=\"item\">\n <ng-container [ngSwitch]=\"getComponentType(item)\">\n <button *ngSwitchCase=\"'button'\" type=\"button\" matRipple class=\"list__item\" [ngClass]=\"item.class\" (click)=\"setItem(item)\">\n <ng-container *ngTemplateOutlet=\"text; context: { item: item }\"></ng-container>\n </button>\n <a *ngSwitchCase=\"'link'\" [routerLink]=\"item.url\" routerLinkActive=\"active\" matRipple class=\"list__item\" [ngClass]=\"item.class\" (click)=\"setItem(item)\">\n <ng-container *ngTemplateOutlet=\"text; context: { item: item }\"></ng-container>\n </a>\n </ng-container>\n</ng-template>\n<ng-template #collapsible let-item=\"item\">\n <button type=\"button\" matRipple class=\"collapsible-header list__item\" [ngClass]=\"{ show: item.metadata.show }\" (click)=\"toggleCollapsible(item)\">\n <div class=\"d-flex align-items-center flex-grow-1\">\n <ft-icon class=\"item__icon\" *ngIf=\"item[iconNameField]\" [name]=\"item[iconNameField]\" [collection]=\"iconCollection\" [path]=\"iconPath\"></ft-icon>\n <div class=\"item__label flex-grow-1\">{{ item[labelField] }}</div>\n <ft-icon class=\"item__toggle\" name=\"angle-right\" size=\"1\"></ft-icon>\n </div>\n </button>\n <div class=\"collapsible\" [ngClass]=\"{show:item.metadata.show}\" *ngIf=\"item.children\">\n <ng-container *ngTemplateOutlet=\"switch; context: { children: item.children }\"></ng-container>\n </div>\n</ng-template>\n<ng-template #header let-item=\"item\">\n <div class=\"header\" [ngClass]=\"item.class\">\n {{ item[labelField] }}\n </div>\n</ng-template>\n<ng-template #text let-item=\"item\">\n <div class=\"d-flex align-items-center\">\n <ft-icon class=\"item__icon\" *ngIf=\"item[iconNameField]\" [name]=\"item[iconNameField]\" [collection]=\"iconCollection\" [path]=\"iconPath\"></ft-icon>\n <div class=\"item__label\">{{ item[labelField] }}</div>\n </div>\n</ng-template>\n", styles: [":host{--background-color: var(--background-color, #F8F9FA);--background-color-hover: rgba(0, 0, 0, .03);--background-color-active: rgba(var(--primary-rgb), .1);--text-color: #333;--text-color-hover: var(--primary);--text-color-active: var(--primary);display:block;overflow:auto}.list__item{border:0;box-sizing:border-box;color:var(--text-color);background-color:var(--background-color);cursor:pointer;display:flex;outline:none;transition:background-color .3s,color .3s;text-align:left;padding:.75rem 1.5rem;width:100%}@media (min-width: var(--breakpoint-md)){.list__item{width:100%}}.list__item:hover{text-decoration:none}.list__item:hover:not(.active){--background-color: var(--background-color-hover);--text-color: var(--text-color-hover)}.list__item.active,.list__item:active{--background-color: var(--background-color-active);--text-color: var(--text-color-active)}.list__item>div{max-width:100%}.list__item .item__icon{font-size:1.5rem}.list__item .item__icon+.item__label{display:block;margin-left:.5rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list__item .item__icon,.list__item .item__label{transition:margin-left .3s}.list__item .item__toggle{transition:transform .2s}.collapsible{overflow:hidden;transition:max-height .2s;max-height:100vh;background-color:#00000003;box-shadow:inset 0 4px 9px -7px #0006}.collapsible-header{font-weight:500}.collapsible-header.show .item__toggle{transform:rotate(90deg)}.collapsible:not(.show){max-height:0;background-color:transparent}.header{text-transform:uppercase;font-weight:700;padding:.75rem 1.5rem .25rem;font-size:.75rem;opacity:.3}\n"] }]
43
+ }], ctorParameters: function () { return [{ type: i1.Router }]; }, propDecorators: { change: [{
44
+ type: Output
45
+ }], iconCollection: [{
46
+ type: Input
47
+ }], iconNameField: [{
48
+ type: Input
49
+ }], iconPath: [{
50
+ type: Input
51
+ }], labelField: [{
52
+ type: Input
53
+ }], items: [{
54
+ type: Input
55
+ }] } });
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL25hdmlnYXRpb24vbGlzdC9saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvbmF2aWdhdGlvbi9saXN0L2xpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFVdkUsTUFBTSxPQUFPLGFBQWE7SUFjeEIsWUFDVSxNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWJ4QixXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUlwQyxrQkFBYSxHQUFXLFVBQVUsQ0FBQztRQUluQyxlQUFVLEdBQVcsT0FBTyxDQUFDO0lBTXpCLENBQUM7SUFFTCxnQkFBZ0IsQ0FBQyxJQUFZO1FBQzNCLElBQUksSUFBSSxHQUFXLE1BQU0sQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxnRkFBZ0YsQ0FBQyxFQUFFO1lBQ2pILElBQUksR0FBRyxRQUFRLENBQUM7U0FDakI7YUFBTTtZQUNMLElBQUksR0FBRyxNQUFNLENBQUM7U0FDZjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELE9BQU8sQ0FBQyxJQUFZO1FBQ2xCLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsZ0ZBQWdGLENBQUMsRUFBRTtnQkFDcEcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQzthQUNqQztTQUNGO2FBQU0sSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNkO0lBQ0gsQ0FBQztJQUNELGlCQUFpQixDQUFDLE1BQWM7UUFDOUIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztRQUM3QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQixDQUFDOzswR0F2Q1UsYUFBYTs4RkFBYixhQUFhLDROQ1YxQix3b0ZBK0NBOzJGRHJDYSxhQUFhO2tCQUx6QixTQUFTOytCQUNFLFNBQVM7NkZBTW5CLE1BQU07c0JBREwsTUFBTTtnQkFHUCxjQUFjO3NCQURiLEtBQUs7Z0JBR04sYUFBYTtzQkFEWixLQUFLO2dCQUdOLFFBQVE7c0JBRFAsS0FBSztnQkFHTixVQUFVO3NCQURULEtBQUs7Z0JBR04sS0FBSztzQkFESixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IEFjdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9hY3Rpb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmdC1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9saXN0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTGlzdENvbXBvbmVudCB7XG4gIEBPdXRwdXQoKVxuICBjaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEFjdGlvbj4oKTtcbiAgQElucHV0KClcbiAgaWNvbkNvbGxlY3Rpb24hOiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIGljb25OYW1lRmllbGQ6IHN0cmluZyA9ICdpY29uTmFtZSc7XG4gIEBJbnB1dCgpXG4gIGljb25QYXRoITogc3RyaW5nO1xuICBASW5wdXQoKVxuICBsYWJlbEZpZWxkOiBzdHJpbmcgPSAnbGFiZWwnO1xuICBASW5wdXQoKVxuICBpdGVtcyE6IEFjdGlvbltdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcbiAgKSB7IH1cblxuICBnZXRDb21wb25lbnRUeXBlKGl0ZW06IEFjdGlvbik6IHN0cmluZyB7XG4gICAgbGV0IHR5cGU6IHN0cmluZyA9ICd0ZXh0JztcbiAgICBpZiAoIWl0ZW0udXJsIHx8IGl0ZW0udXJsLm1hdGNoKC9eKGh0dHB8aHR0cHMpOlxcL1xcLyhcXHcrOnswLDF9XFx3KkApPyhcXFMrKSg6WzAtOV0rKT8oXFwvfFxcLyhbXFx3IyE6Lj8rPSYlQCFcXC1cXC9dKSk/LykpIHtcbiAgICAgIHR5cGUgPSAnYnV0dG9uJztcbiAgICB9IGVsc2Uge1xuICAgICAgdHlwZSA9ICdsaW5rJztcbiAgICB9XG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cbiAgc2V0SXRlbShpdGVtOiBBY3Rpb24pOiB2b2lkIHtcbiAgICBpZiAoaXRlbS51cmwpIHtcbiAgICAgIGlmIChpdGVtLnVybC5tYXRjaCgvXihodHRwfGh0dHBzKTpcXC9cXC8oXFx3Kzp7MCwxfVxcdypAKT8oXFxTKykoOlswLTldKyk/KFxcL3xcXC8oW1xcdyMhOi4/Kz0mJUAhXFwtXFwvXSkpPy8pKSB7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gaXRlbS51cmw7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChpdGVtLmNsaWNrKSB7XG4gICAgICBpdGVtLmNsaWNrKCk7XG4gICAgfVxuICB9XG4gIHRvZ2dsZUNvbGxhcHNpYmxlKGFjdGlvbjogQWN0aW9uKTogdm9pZCB7XG4gICAgYWN0aW9uLm1ldGFkYXRhLnNob3cgPSAhYWN0aW9uLm1ldGFkYXRhLnNob3c7XG4gICAgdGhpcy5jaGFuZ2UuZW1pdChhY3Rpb24pO1xuICB9XG5cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzd2l0Y2g7IGNvbnRleHQ6IHsgY2hpbGRyZW46IGl0ZW1zIH1cIj48L25nLWNvbnRhaW5lcj5cbjxuZy10ZW1wbGF0ZSAjc3dpdGNoIGxldC1jaGlsZHJlbj1cImNoaWxkcmVuXCIgbGV0LWxldmVsPVwibGV2ZWxcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjaGlsZHJlblwiIFtuZ1N3aXRjaF09XCJpdGVtLnR5cGVcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY29sbGFwc2libGUnXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sbGFwc2libGU7IGNvbnRleHQ6IHsgaXRlbTogaXRlbSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2hlYWRlcidcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXI7IGNvbnRleHQ6IHsgaXRlbTogaXRlbSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImFjdGlvbjsgY29udGV4dDogeyBpdGVtOiBpdGVtIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNhY3Rpb24gbGV0LWl0ZW09XCJpdGVtXCI+XG4gIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImdldENvbXBvbmVudFR5cGUoaXRlbSlcIj5cbiAgICA8YnV0dG9uICpuZ1N3aXRjaENhc2U9XCInYnV0dG9uJ1wiIHR5cGU9XCJidXR0b25cIiBtYXRSaXBwbGUgY2xhc3M9XCJsaXN0X19pdGVtXCIgW25nQ2xhc3NdPVwiaXRlbS5jbGFzc1wiIChjbGljayk9XCJzZXRJdGVtKGl0ZW0pXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGV4dDsgY29udGV4dDogeyBpdGVtOiBpdGVtIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2J1dHRvbj5cbiAgICA8YSAqbmdTd2l0Y2hDYXNlPVwiJ2xpbmsnXCIgW3JvdXRlckxpbmtdPVwiaXRlbS51cmxcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCIgbWF0UmlwcGxlIGNsYXNzPVwibGlzdF9faXRlbVwiIFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3NcIiAoY2xpY2spPVwic2V0SXRlbShpdGVtKVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRleHQ7IGNvbnRleHQ6IHsgaXRlbTogaXRlbSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9hPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2NvbGxhcHNpYmxlIGxldC1pdGVtPVwiaXRlbVwiPlxuICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXRSaXBwbGUgY2xhc3M9XCJjb2xsYXBzaWJsZS1oZWFkZXIgbGlzdF9faXRlbVwiIFtuZ0NsYXNzXT1cInsgc2hvdzogaXRlbS5tZXRhZGF0YS5zaG93IH1cIiAoY2xpY2spPVwidG9nZ2xlQ29sbGFwc2libGUoaXRlbSlcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWdyb3ctMVwiPlxuICAgICAgPGZ0LWljb24gY2xhc3M9XCJpdGVtX19pY29uXCIgKm5nSWY9XCJpdGVtW2ljb25OYW1lRmllbGRdXCIgW25hbWVdPVwiaXRlbVtpY29uTmFtZUZpZWxkXVwiIFtjb2xsZWN0aW9uXT1cImljb25Db2xsZWN0aW9uXCIgW3BhdGhdPVwiaWNvblBhdGhcIj48L2Z0LWljb24+XG4gICAgICA8ZGl2IGNsYXNzPVwiaXRlbV9fbGFiZWwgZmxleC1ncm93LTFcIj57eyBpdGVtW2xhYmVsRmllbGRdIH19PC9kaXY+XG4gICAgICA8ZnQtaWNvbiBjbGFzcz1cIml0ZW1fX3RvZ2dsZVwiIG5hbWU9XCJhbmdsZS1yaWdodFwiIHNpemU9XCIxXCI+PC9mdC1pY29uPlxuICAgIDwvZGl2PlxuICA8L2J1dHRvbj5cbiAgPGRpdiBjbGFzcz1cImNvbGxhcHNpYmxlXCIgW25nQ2xhc3NdPVwie3Nob3c6aXRlbS5tZXRhZGF0YS5zaG93fVwiICpuZ0lmPVwiaXRlbS5jaGlsZHJlblwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzd2l0Y2g7IGNvbnRleHQ6IHsgY2hpbGRyZW46IGl0ZW0uY2hpbGRyZW4gfVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2hlYWRlciBsZXQtaXRlbT1cIml0ZW1cIj5cbiAgPGRpdiBjbGFzcz1cImhlYWRlclwiIFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3NcIj5cbiAgICB7eyBpdGVtW2xhYmVsRmllbGRdIH19XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjdGV4dCBsZXQtaXRlbT1cIml0ZW1cIj5cbiAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICA8ZnQtaWNvbiBjbGFzcz1cIml0ZW1fX2ljb25cIiAqbmdJZj1cIml0ZW1baWNvbk5hbWVGaWVsZF1cIiBbbmFtZV09XCJpdGVtW2ljb25OYW1lRmllbGRdXCIgW2NvbGxlY3Rpb25dPVwiaWNvbkNvbGxlY3Rpb25cIiBbcGF0aF09XCJpY29uUGF0aFwiPjwvZnQtaWNvbj5cbiAgICA8ZGl2IGNsYXNzPVwiaXRlbV9fbGFiZWxcIj57eyBpdGVtW2xhYmVsRmllbGRdIH19PC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -0,0 +1,72 @@
1
+ import { Component, Input, HostBinding } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/router";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "../../display/icon/icon.component";
6
+ export class NavbarComponent {
7
+ constructor(router) {
8
+ this.router = router;
9
+ this.class = '';
10
+ this.iconNameField = 'iconName';
11
+ this.labelField = 'label';
12
+ this.labelPlacement = 'auto';
13
+ this.position = 'auto';
14
+ }
15
+ ngOnInit() { }
16
+ get hostClasses() {
17
+ return [
18
+ this.class,
19
+ this.position
20
+ ].join(' ');
21
+ }
22
+ getComponentType(item) {
23
+ let type = 'text';
24
+ if (!item.url || item.url.match(/^(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/)) {
25
+ type = 'button';
26
+ }
27
+ else {
28
+ type = 'link';
29
+ }
30
+ return type;
31
+ }
32
+ setItem(item) {
33
+ if (item.url) {
34
+ if (item.url.match(/^(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/)) {
35
+ window.location.href = item.url;
36
+ }
37
+ }
38
+ else if (item.click) {
39
+ item.click();
40
+ }
41
+ }
42
+ toggleCollapsible(action) {
43
+ action.metadata.show = !action.metadata.show;
44
+ }
45
+ trackByItem(index, item) {
46
+ return `${item.label} ${item.url}`;
47
+ }
48
+ }
49
+ NavbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: NavbarComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
50
+ NavbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: NavbarComponent, selector: "ft-navbar", inputs: { class: "class", iconCollection: "iconCollection", iconNameField: "iconNameField", labelField: "labelField", labelPlacement: "labelPlacement", items: "items", position: "position" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "<ng-content select=\"[ftStart]\"></ng-content>\n<div class=\"list\" *ngIf=\"items\">\n <ng-container *ngFor=\"let item of items; trackBy: trackByItem\">\n <ng-container *ngTemplateOutlet=\"action; context: { item: item }\"></ng-container>\n </ng-container>\n</div>\n<ng-content select=\"[ftEnd]\"></ng-content>\n<ng-template #action let-item=\"item\">\n <ng-container [ngSwitch]=\"getComponentType(item)\">\n <button *ngSwitchCase=\"'button'\" type=\"button\" matRipple class=\"list__item\" [ngClass]=\"[labelPlacement, item.class || '' ]\" (click)=\"setItem(item)\">\n <ng-container *ngTemplateOutlet=\"text; context: { item: item }\"></ng-container>\n </button>\n <a *ngSwitchCase=\"'link'\" [routerLink]=\"item.url\" routerLinkActive=\"active\" matRipple class=\"list__item\" [ngClass]=\"[labelPlacement, item.class || '' ]\" (click)=\"setItem(item)\">\n <ng-container *ngTemplateOutlet=\"text; context: { item: item }\"></ng-container>\n </a>\n </ng-container>\n</ng-template>\n<ng-template #text let-item=\"item\">\n <div class=\"item\">\n <ft-icon class=\"item__icon\" *ngIf=\"item[iconNameField]\" [name]=\"item[iconNameField]\" [collection]=\"iconCollection\" [title]=\"labelPlacement === 'none' ? item[labelField] : '' \"></ft-icon>\n <div class=\"item__label\" *ngIf=\"labelPlacement !== 'none'\">{{ item[labelField] }}</div>\n </div>\n</ng-template>\n", styles: [":host{--min-width: 4rem;--min-height: 3.5rem;--background-color: #FFF;--background-color-hover: rgba(0, 0, 0, .1);--background-color-active: rgba(0, 0, 0, .1);--text-color: #333;--text-color-hover: #333;--text-color-active: #FFF;background-color:var(--background-color);position:fixed;transition:transform .3s ease-in-out,width .3s,color .3s,background-color .3s;z-index:var(--z-index, 990);font-size:.875rem;display:flex}@media (min-width: 576px){:host{--min-width: 13.75rem}}:host.left,:host.right{top:0;bottom:0;box-shadow:0 1px 1px #00000024,0 1px 3px #0000001f;min-width:var(--min-width)}:host.left{left:0}:host.right{right:0}:host.bottom,:host.top{left:0;right:0;min-height:var(--min-height)}:host.bottom .list,:host.top .list{display:flex}:host.bottom .list__item,:host.top .list__item{flex-grow:1;justify-content:center}:host.bottom{bottom:0;box-shadow:0 0 1px #00000024,0 -1px 3px #0000001f}:host.top{top:0;box-shadow:0 0 1px #00000024,0 1px 3px #0000001f}@media (min-width: 768px){:host.auto{left:0;top:0;bottom:0;box-shadow:0 1px 1px #00000024,0 1px 3px #0000001f;min-width:var(--min-width);flex-direction:column}}@media (max-width: 767.98px){:host.auto{bottom:0;left:0;right:0;box-shadow:0 0 1px #00000024,0 -1px 3px #0000001f;min-height:var(--min-height)}:host.auto .list{display:flex}}.list{display:block;flex-grow:1;overflow:auto}.list__item{border:0;box-sizing:border-box;color:var(--text-color);cursor:pointer;outline:none;transition:background-color .3s,color .3s;display:flex;align-items:center;padding:.75rem 1rem;width:100%}.list__item:hover{text-decoration:none}.list__item:hover:not(.active){background:var(--hover-background-color);color:var(--hover-text-color)}.list__item.active{background:var(--active-background-color);color:var(--active-text-color)}.list__item.left{justify-content:flex-start}.list__item.left .item__icon{margin-right:.5rem}.list__item.right{justify-content:flex-end}.list__item.right .item{flex-direction:row-reverse}.list__item.right .item__icon{margin-left:.5rem}.list__item.top{justify-content:center;flex-grow:1;padding:.5rem}.list__item.top .item{flex-direction:column-reverse}.list__item.bottom{justify-content:center;flex-grow:1;padding:.5rem}.list__item.bottom .item{flex-direction:column}@media (min-width: 768px){.list__item.auto .item{flex-direction:row}.list__item.auto .item__icon{margin-right:.5rem}}@media (max-width: 767.98px){.list__item.auto{justify-content:center;flex-grow:1;padding:.5rem}.list__item.auto .item{flex-direction:column;font-size:.6875rem}}.list__item .item{display:flex;align-items:center}.list__item .item__icon{font-size:1.5rem}.list__item .item__label{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i3.IconComponent, selector: "ft-icon", inputs: ["class", "collection", "mode", "name", "path", "size", "src"] }, { kind: "directive", type: i1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { kind: "directive", type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }] });
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: NavbarComponent, decorators: [{
52
+ type: Component,
53
+ args: [{ selector: 'ft-navbar', template: "<ng-content select=\"[ftStart]\"></ng-content>\n<div class=\"list\" *ngIf=\"items\">\n <ng-container *ngFor=\"let item of items; trackBy: trackByItem\">\n <ng-container *ngTemplateOutlet=\"action; context: { item: item }\"></ng-container>\n </ng-container>\n</div>\n<ng-content select=\"[ftEnd]\"></ng-content>\n<ng-template #action let-item=\"item\">\n <ng-container [ngSwitch]=\"getComponentType(item)\">\n <button *ngSwitchCase=\"'button'\" type=\"button\" matRipple class=\"list__item\" [ngClass]=\"[labelPlacement, item.class || '' ]\" (click)=\"setItem(item)\">\n <ng-container *ngTemplateOutlet=\"text; context: { item: item }\"></ng-container>\n </button>\n <a *ngSwitchCase=\"'link'\" [routerLink]=\"item.url\" routerLinkActive=\"active\" matRipple class=\"list__item\" [ngClass]=\"[labelPlacement, item.class || '' ]\" (click)=\"setItem(item)\">\n <ng-container *ngTemplateOutlet=\"text; context: { item: item }\"></ng-container>\n </a>\n </ng-container>\n</ng-template>\n<ng-template #text let-item=\"item\">\n <div class=\"item\">\n <ft-icon class=\"item__icon\" *ngIf=\"item[iconNameField]\" [name]=\"item[iconNameField]\" [collection]=\"iconCollection\" [title]=\"labelPlacement === 'none' ? item[labelField] : '' \"></ft-icon>\n <div class=\"item__label\" *ngIf=\"labelPlacement !== 'none'\">{{ item[labelField] }}</div>\n </div>\n</ng-template>\n", styles: [":host{--min-width: 4rem;--min-height: 3.5rem;--background-color: #FFF;--background-color-hover: rgba(0, 0, 0, .1);--background-color-active: rgba(0, 0, 0, .1);--text-color: #333;--text-color-hover: #333;--text-color-active: #FFF;background-color:var(--background-color);position:fixed;transition:transform .3s ease-in-out,width .3s,color .3s,background-color .3s;z-index:var(--z-index, 990);font-size:.875rem;display:flex}@media (min-width: 576px){:host{--min-width: 13.75rem}}:host.left,:host.right{top:0;bottom:0;box-shadow:0 1px 1px #00000024,0 1px 3px #0000001f;min-width:var(--min-width)}:host.left{left:0}:host.right{right:0}:host.bottom,:host.top{left:0;right:0;min-height:var(--min-height)}:host.bottom .list,:host.top .list{display:flex}:host.bottom .list__item,:host.top .list__item{flex-grow:1;justify-content:center}:host.bottom{bottom:0;box-shadow:0 0 1px #00000024,0 -1px 3px #0000001f}:host.top{top:0;box-shadow:0 0 1px #00000024,0 1px 3px #0000001f}@media (min-width: 768px){:host.auto{left:0;top:0;bottom:0;box-shadow:0 1px 1px #00000024,0 1px 3px #0000001f;min-width:var(--min-width);flex-direction:column}}@media (max-width: 767.98px){:host.auto{bottom:0;left:0;right:0;box-shadow:0 0 1px #00000024,0 -1px 3px #0000001f;min-height:var(--min-height)}:host.auto .list{display:flex}}.list{display:block;flex-grow:1;overflow:auto}.list__item{border:0;box-sizing:border-box;color:var(--text-color);cursor:pointer;outline:none;transition:background-color .3s,color .3s;display:flex;align-items:center;padding:.75rem 1rem;width:100%}.list__item:hover{text-decoration:none}.list__item:hover:not(.active){background:var(--hover-background-color);color:var(--hover-text-color)}.list__item.active{background:var(--active-background-color);color:var(--active-text-color)}.list__item.left{justify-content:flex-start}.list__item.left .item__icon{margin-right:.5rem}.list__item.right{justify-content:flex-end}.list__item.right .item{flex-direction:row-reverse}.list__item.right .item__icon{margin-left:.5rem}.list__item.top{justify-content:center;flex-grow:1;padding:.5rem}.list__item.top .item{flex-direction:column-reverse}.list__item.bottom{justify-content:center;flex-grow:1;padding:.5rem}.list__item.bottom .item{flex-direction:column}@media (min-width: 768px){.list__item.auto .item{flex-direction:row}.list__item.auto .item__icon{margin-right:.5rem}}@media (max-width: 767.98px){.list__item.auto{justify-content:center;flex-grow:1;padding:.5rem}.list__item.auto .item{flex-direction:column;font-size:.6875rem}}.list__item .item{display:flex;align-items:center}.list__item .item__icon{font-size:1.5rem}.list__item .item__label{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"] }]
54
+ }], ctorParameters: function () { return [{ type: i1.Router }]; }, propDecorators: { class: [{
55
+ type: Input
56
+ }], iconCollection: [{
57
+ type: Input
58
+ }], iconNameField: [{
59
+ type: Input
60
+ }], labelField: [{
61
+ type: Input
62
+ }], labelPlacement: [{
63
+ type: Input
64
+ }], items: [{
65
+ type: Input
66
+ }], position: [{
67
+ type: Input
68
+ }], hostClasses: [{
69
+ type: HostBinding,
70
+ args: ['class']
71
+ }] } });
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvbmF2aWdhdGlvbi9uYXZiYXIvbmF2YmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvbmF2aWdhdGlvbi9uYXZiYXIvbmF2YmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFTdEUsTUFBTSxPQUFPLGVBQWU7SUFnQjFCLFlBQ1UsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFmeEIsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUluQixrQkFBYSxHQUFXLFVBQVUsQ0FBQztRQUVuQyxlQUFVLEdBQVcsT0FBTyxDQUFDO1FBRTdCLG1CQUFjLEdBQTBELE1BQU0sQ0FBQztRQUkvRSxhQUFRLEdBQWlELE1BQU0sQ0FBQztJQUk1RCxDQUFDO0lBRUwsUUFBUSxLQUFLLENBQUM7SUFDZCxJQUNJLFdBQVc7UUFDYixPQUFPO1lBQ0wsSUFBSSxDQUFDLEtBQUs7WUFDVixJQUFJLENBQUMsUUFBUTtTQUNkLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2QsQ0FBQztJQUNELGdCQUFnQixDQUFDLElBQVk7UUFDM0IsSUFBSSxJQUFJLEdBQVcsTUFBTSxDQUFDO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLGdGQUFnRixDQUFDLEVBQUU7WUFDakgsSUFBSSxHQUFHLFFBQVEsQ0FBQztTQUNqQjthQUFNO1lBQ0wsSUFBSSxHQUFHLE1BQU0sQ0FBQztTQUNmO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsT0FBTyxDQUFDLElBQVk7UUFDbEIsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxnRkFBZ0YsQ0FBQyxFQUFFO2dCQUNwRyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO2FBQ2pDO1NBQ0Y7YUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDckIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0lBQ0QsaUJBQWlCLENBQUMsTUFBYztRQUM5QixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO0lBQy9DLENBQUM7SUFDRCxXQUFXLENBQUMsS0FBYSxFQUFFLElBQVk7UUFDckMsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3JDLENBQUM7OzRHQW5EVSxlQUFlO2dHQUFmLGVBQWUsd1NDVDVCLHkzQ0F1QkE7MkZEZGEsZUFBZTtrQkFMM0IsU0FBUzsrQkFDRSxXQUFXOzZGQU1yQixLQUFLO3NCQURKLEtBQUs7Z0JBR04sY0FBYztzQkFEYixLQUFLO2dCQUdOLGFBQWE7c0JBRFosS0FBSztnQkFHTixVQUFVO3NCQURULEtBQUs7Z0JBR04sY0FBYztzQkFEYixLQUFLO2dCQUdOLEtBQUs7c0JBREosS0FBSztnQkFHTixRQUFRO3NCQURQLEtBQUs7Z0JBU0YsV0FBVztzQkFEZCxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIEhvc3RCaW5kaW5nIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FjdGlvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Z0LW5hdmJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9uYXZiYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9uYXZiYXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBOYXZiYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKVxuICBjbGFzczogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpXG4gIGljb25Db2xsZWN0aW9uITogc3RyaW5nO1xuICBASW5wdXQoKVxuICBpY29uTmFtZUZpZWxkOiBzdHJpbmcgPSAnaWNvbk5hbWUnO1xuICBASW5wdXQoKVxuICBsYWJlbEZpZWxkOiBzdHJpbmcgPSAnbGFiZWwnO1xuICBASW5wdXQoKVxuICBsYWJlbFBsYWNlbWVudDogJ3RvcCcgfCAncmlnaHQnIHwgJ2JvdHRvbScgfCAnbGVmdCcgfCAnYXV0bycgfCAnbm9uZScgPSAnYXV0byc7XG4gIEBJbnB1dCgpXG4gIGl0ZW1zITogQWN0aW9uW107XG4gIEBJbnB1dCgpXG4gIHBvc2l0aW9uOiAndG9wJyB8ICdyaWdodCcgfCAnYm90dG9tJyB8ICdsZWZ0JyB8ICdhdXRvJyA9ICdhdXRvJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKSB7IH1cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBob3N0Q2xhc3NlcygpOiBzdHJpbmcge1xuICAgIHJldHVybiBbXG4gICAgICB0aGlzLmNsYXNzLFxuICAgICAgdGhpcy5wb3NpdGlvblxuICAgIF0uam9pbignICcpO1xuICB9XG4gIGdldENvbXBvbmVudFR5cGUoaXRlbTogQWN0aW9uKTogc3RyaW5nIHtcbiAgICBsZXQgdHlwZTogc3RyaW5nID0gJ3RleHQnO1xuICAgIGlmICghaXRlbS51cmwgfHwgaXRlbS51cmwubWF0Y2goL14oaHR0cHxodHRwcyk6XFwvXFwvKFxcdys6ezAsMX1cXHcqQCk/KFxcUyspKDpbMC05XSspPyhcXC98XFwvKFtcXHcjITouPys9JiVAIVxcLVxcL10pKT8vKSkge1xuICAgICAgdHlwZSA9ICdidXR0b24nO1xuICAgIH0gZWxzZSB7XG4gICAgICB0eXBlID0gJ2xpbmsnO1xuICAgIH1cbiAgICByZXR1cm4gdHlwZTtcbiAgfVxuICBzZXRJdGVtKGl0ZW06IEFjdGlvbik6IHZvaWQge1xuICAgIGlmIChpdGVtLnVybCkge1xuICAgICAgaWYgKGl0ZW0udXJsLm1hdGNoKC9eKGh0dHB8aHR0cHMpOlxcL1xcLyhcXHcrOnswLDF9XFx3KkApPyhcXFMrKSg6WzAtOV0rKT8oXFwvfFxcLyhbXFx3IyE6Lj8rPSYlQCFcXC1cXC9dKSk/LykpIHtcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBpdGVtLnVybDtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGl0ZW0uY2xpY2spIHtcbiAgICAgIGl0ZW0uY2xpY2soKTtcbiAgICB9XG4gIH1cbiAgdG9nZ2xlQ29sbGFwc2libGUoYWN0aW9uOiBBY3Rpb24pOiB2b2lkIHtcbiAgICBhY3Rpb24ubWV0YWRhdGEuc2hvdyA9ICFhY3Rpb24ubWV0YWRhdGEuc2hvdztcbiAgfVxuICB0cmFja0J5SXRlbShpbmRleDogbnVtYmVyLCBpdGVtOiBBY3Rpb24pOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtpdGVtLmxhYmVsfSAke2l0ZW0udXJsfWA7XG4gIH1cblxufVxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2Z0U3RhcnRdXCI+PC9uZy1jb250ZW50PlxuPGRpdiBjbGFzcz1cImxpc3RcIiAqbmdJZj1cIml0ZW1zXCI+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXM7IHRyYWNrQnk6IHRyYWNrQnlJdGVtXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImFjdGlvbjsgY29udGV4dDogeyBpdGVtOiBpdGVtIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbjxuZy1jb250ZW50IHNlbGVjdD1cIltmdEVuZF1cIj48L25nLWNvbnRlbnQ+XG48bmctdGVtcGxhdGUgI2FjdGlvbiBsZXQtaXRlbT1cIml0ZW1cIj5cbiAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiZ2V0Q29tcG9uZW50VHlwZShpdGVtKVwiPlxuICAgIDxidXR0b24gKm5nU3dpdGNoQ2FzZT1cIididXR0b24nXCIgdHlwZT1cImJ1dHRvblwiIG1hdFJpcHBsZSBjbGFzcz1cImxpc3RfX2l0ZW1cIiBbbmdDbGFzc109XCJbbGFiZWxQbGFjZW1lbnQsIGl0ZW0uY2xhc3MgfHwgJycgXVwiIChjbGljayk9XCJzZXRJdGVtKGl0ZW0pXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGV4dDsgY29udGV4dDogeyBpdGVtOiBpdGVtIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2J1dHRvbj5cbiAgICA8YSAqbmdTd2l0Y2hDYXNlPVwiJ2xpbmsnXCIgW3JvdXRlckxpbmtdPVwiaXRlbS51cmxcIiByb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCIgbWF0UmlwcGxlIGNsYXNzPVwibGlzdF9faXRlbVwiIFtuZ0NsYXNzXT1cIltsYWJlbFBsYWNlbWVudCwgaXRlbS5jbGFzcyB8fCAnJyBdXCIgKGNsaWNrKT1cInNldEl0ZW0oaXRlbSlcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZXh0OyBjb250ZXh0OiB7IGl0ZW06IGl0ZW0gfVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvYT5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICN0ZXh0IGxldC1pdGVtPVwiaXRlbVwiPlxuICA8ZGl2IGNsYXNzPVwiaXRlbVwiPlxuICAgIDxmdC1pY29uIGNsYXNzPVwiaXRlbV9faWNvblwiICpuZ0lmPVwiaXRlbVtpY29uTmFtZUZpZWxkXVwiIFtuYW1lXT1cIml0ZW1baWNvbk5hbWVGaWVsZF1cIiBbY29sbGVjdGlvbl09XCJpY29uQ29sbGVjdGlvblwiIFt0aXRsZV09XCJsYWJlbFBsYWNlbWVudCA9PT0gJ25vbmUnID8gaXRlbVtsYWJlbEZpZWxkXSA6ICcnIFwiPjwvZnQtaWNvbj5cbiAgICA8ZGl2IGNsYXNzPVwiaXRlbV9fbGFiZWxcIiAqbmdJZj1cImxhYmVsUGxhY2VtZW50ICE9PSAnbm9uZSdcIj57eyBpdGVtW2xhYmVsRmllbGRdIH19PC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -0,0 +1,55 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { MatMenuModule } from '@angular/material/menu';
4
+ import { MatButtonModule } from '@angular/material/button';
5
+ import { ListComponent } from './list/list.component';
6
+ import { NavbarComponent } from './navbar/navbar.component';
7
+ import { ToolbarComponent } from './toolbar/toolbar.component';
8
+ import { SearchboxComponent } from './searchbox/searchbox.component';
9
+ import { DisplayModule } from '../display/display.module';
10
+ import { RouterModule } from '@angular/router';
11
+ import * as i0 from "@angular/core";
12
+ export class NavigationModule {
13
+ }
14
+ NavigationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: NavigationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
+ NavigationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.0", ngImport: i0, type: NavigationModule, declarations: [ListComponent,
16
+ NavbarComponent,
17
+ ToolbarComponent,
18
+ SearchboxComponent], imports: [CommonModule,
19
+ DisplayModule,
20
+ RouterModule,
21
+ MatMenuModule,
22
+ MatButtonModule], exports: [ListComponent,
23
+ NavbarComponent,
24
+ ToolbarComponent,
25
+ SearchboxComponent] });
26
+ NavigationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: NavigationModule, imports: [CommonModule,
27
+ DisplayModule,
28
+ RouterModule,
29
+ MatMenuModule,
30
+ MatButtonModule] });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: NavigationModule, decorators: [{
32
+ type: NgModule,
33
+ args: [{
34
+ declarations: [
35
+ ListComponent,
36
+ NavbarComponent,
37
+ ToolbarComponent,
38
+ SearchboxComponent
39
+ ],
40
+ exports: [
41
+ ListComponent,
42
+ NavbarComponent,
43
+ ToolbarComponent,
44
+ SearchboxComponent
45
+ ],
46
+ imports: [
47
+ CommonModule,
48
+ DisplayModule,
49
+ RouterModule,
50
+ MatMenuModule,
51
+ MatButtonModule
52
+ ]
53
+ }]
54
+ }] });
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL25hdmlnYXRpb24vbmF2aWdhdGlvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBdUIvQyxNQUFNLE9BQU8sZ0JBQWdCOzs2R0FBaEIsZ0JBQWdCOzhHQUFoQixnQkFBZ0IsaUJBbkJ6QixhQUFhO1FBQ2IsZUFBZTtRQUNmLGdCQUFnQjtRQUNoQixrQkFBa0IsYUFTbEIsWUFBWTtRQUNaLGFBQWE7UUFDYixZQUFZO1FBQ1osYUFBYTtRQUNiLGVBQWUsYUFWZixhQUFhO1FBQ2IsZUFBZTtRQUNmLGdCQUFnQjtRQUNoQixrQkFBa0I7OEdBVVQsZ0JBQWdCLFlBUHpCLFlBQVk7UUFDWixhQUFhO1FBQ2IsWUFBWTtRQUNaLGFBQWE7UUFDYixlQUFlOzJGQUdOLGdCQUFnQjtrQkFyQjVCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjtxQkFDbkI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjtxQkFDbkI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsZUFBZTtxQkFDaEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5cbmltcG9ydCB7IExpc3RDb21wb25lbnQgfSBmcm9tICcuL2xpc3QvbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmF2YmFyQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZiYXIvbmF2YmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnLi90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaGJveENvbXBvbmVudCB9IGZyb20gJy4vc2VhcmNoYm94L3NlYXJjaGJveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGlzcGxheU1vZHVsZSB9IGZyb20gJy4uL2Rpc3BsYXkvZGlzcGxheS5tb2R1bGUnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgTGlzdENvbXBvbmVudCxcbiAgICBOYXZiYXJDb21wb25lbnQsXG4gICAgVG9vbGJhckNvbXBvbmVudCxcbiAgICBTZWFyY2hib3hDb21wb25lbnRcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIExpc3RDb21wb25lbnQsXG4gICAgTmF2YmFyQ29tcG9uZW50LFxuICAgIFRvb2xiYXJDb21wb25lbnQsXG4gICAgU2VhcmNoYm94Q29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRGlzcGxheU1vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgTWF0TWVudU1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0aW9uTW9kdWxlIHsgfVxuIl19
@@ -0,0 +1,106 @@
1
+ import { Component, ViewChild, forwardRef, Input, HostBinding, Output, EventEmitter } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "../../display/icon/icon.component";
6
+ import * as i3 from "@angular/material/button";
7
+ export class SearchboxComponent {
8
+ constructor() {
9
+ this.execute = new EventEmitter();
10
+ this.showChange = new EventEmitter();
11
+ this.onChange = (_) => { };
12
+ this.onTouched = (_) => { };
13
+ }
14
+ get hostClasses() {
15
+ return [
16
+ this.class,
17
+ this.shown ? 'show' : ''
18
+ ].join(' ');
19
+ }
20
+ set show(value) {
21
+ this.shown = value;
22
+ if (value) {
23
+ setTimeout(() => {
24
+ this.getNativeElement().focus();
25
+ }, 300);
26
+ }
27
+ }
28
+ set value(value) {
29
+ this._value = value || '';
30
+ this.getNativeElement().value = this._value;
31
+ this.onChange(this._value);
32
+ this.onTouched(this._value);
33
+ }
34
+ get value() {
35
+ return this._value;
36
+ }
37
+ ngOnInit() {
38
+ }
39
+ closeSearch() {
40
+ this.showChange.emit(false);
41
+ }
42
+ getNativeElement() {
43
+ const input = this.placeholder ? this.inputPlaceholder : this.input;
44
+ return input.nativeElement;
45
+ }
46
+ registerOnChange(fn) {
47
+ this.onChange = fn;
48
+ }
49
+ registerOnTouched(fn) {
50
+ this.onTouched = fn;
51
+ }
52
+ setDisabledState(isDisabled) {
53
+ this.disabled = isDisabled;
54
+ }
55
+ onSearch(event) {
56
+ event.preventDefault();
57
+ this.getNativeElement().value = '';
58
+ this.execute.emit(this._value);
59
+ }
60
+ updateValue(event) {
61
+ this.value = event.target.value;
62
+ }
63
+ writeValue(value) {
64
+ this.value = value;
65
+ }
66
+ }
67
+ SearchboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: SearchboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
68
+ SearchboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: SearchboxComponent, selector: "ft-searchbox", inputs: { class: "class", placeholder: "placeholder", show: "show", value: "value" }, outputs: { execute: "execute", showChange: "showChange" }, host: { properties: { "class": "this.hostClasses" } }, providers: [
69
+ {
70
+ provide: NG_VALUE_ACCESSOR,
71
+ useExisting: forwardRef(() => SearchboxComponent),
72
+ multi: true
73
+ }
74
+ ], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "inputPlaceholder", first: true, predicate: ["inputPlaceholder"], descendants: true }], ngImport: i0, template: "<form (submit)=\"onSearch($event)\" class=\"container p-2 p-sm-3 pb-md-3 pt-md-5 px-md-3 px-lg-5\">\n <div class=\"d-flex align-items-center\">\n <button type=\"button\" mat-icon-button class=\"p-2 mr-2\" (click)=\"closeSearch()\">\n <ft-icon name=\"arrow-left\" size=\"2\"></ft-icon>\n </button>\n <input\n #input\n type=\"search\"\n matInput\n class=\"flex-grow-1\"\n i18n-placeholder\n placeholder=\"Search criteria\"\n [disabled]=\"disabled\"\n (change)=\"updateValue($event)\"\n (keyup)=\"updateValue($event)\"\n *ngIf=\"!placeholder\"\n />\n <input\n #inputPlaceholder\n type=\"search\"\n matInput\n class=\"flex-grow-1\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n (change)=\"updateValue($event)\"\n (keyup)=\"updateValue($event)\"\n *ngIf=\"placeholder\"\n />\n <button type=\"submit\" mat-icon-button class=\"p-2 ml-2\">\n <ft-icon name=\"search\" size=\"2\"></ft-icon>\n </button>\n </div>\n </form>\n ", styles: [":host{z-index:var(--z-index, 980);background-color:var(--background-color, #FFF);display:block;transition:background-color .2s,box-shadow .2s;position:sticky;top:-1px;margin-top:-3.5rem;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}:host.show{opacity:1;visibility:visible}@media (min-width: 576px){:host{margin-top:-4.5rem}}@media (min-width: 768px){:host{top:-2rem;margin-top:-6.5rem}}:host button{min-width:0;line-height:inherit}:host input{border:0;background-color:transparent}:host input:focus{outline:none}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IconComponent, selector: "ft-icon", inputs: ["class", "collection", "mode", "name", "path", "size", "src"] }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }] });
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: SearchboxComponent, decorators: [{
76
+ type: Component,
77
+ args: [{ selector: 'ft-searchbox', providers: [
78
+ {
79
+ provide: NG_VALUE_ACCESSOR,
80
+ useExisting: forwardRef(() => SearchboxComponent),
81
+ multi: true
82
+ }
83
+ ], template: "<form (submit)=\"onSearch($event)\" class=\"container p-2 p-sm-3 pb-md-3 pt-md-5 px-md-3 px-lg-5\">\n <div class=\"d-flex align-items-center\">\n <button type=\"button\" mat-icon-button class=\"p-2 mr-2\" (click)=\"closeSearch()\">\n <ft-icon name=\"arrow-left\" size=\"2\"></ft-icon>\n </button>\n <input\n #input\n type=\"search\"\n matInput\n class=\"flex-grow-1\"\n i18n-placeholder\n placeholder=\"Search criteria\"\n [disabled]=\"disabled\"\n (change)=\"updateValue($event)\"\n (keyup)=\"updateValue($event)\"\n *ngIf=\"!placeholder\"\n />\n <input\n #inputPlaceholder\n type=\"search\"\n matInput\n class=\"flex-grow-1\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n (change)=\"updateValue($event)\"\n (keyup)=\"updateValue($event)\"\n *ngIf=\"placeholder\"\n />\n <button type=\"submit\" mat-icon-button class=\"p-2 ml-2\">\n <ft-icon name=\"search\" size=\"2\"></ft-icon>\n </button>\n </div>\n </form>\n ", styles: [":host{z-index:var(--z-index, 980);background-color:var(--background-color, #FFF);display:block;transition:background-color .2s,box-shadow .2s;position:sticky;top:-1px;margin-top:-3.5rem;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}:host.show{opacity:1;visibility:visible}@media (min-width: 576px){:host{margin-top:-4.5rem}}@media (min-width: 768px){:host{top:-2rem;margin-top:-6.5rem}}:host button{min-width:0;line-height:inherit}:host input{border:0;background-color:transparent}:host input:focus{outline:none}\n"] }]
84
+ }], ctorParameters: function () { return []; }, propDecorators: { class: [{
85
+ type: Input
86
+ }], input: [{
87
+ type: ViewChild,
88
+ args: ['input', { static: false }]
89
+ }], inputPlaceholder: [{
90
+ type: ViewChild,
91
+ args: ['inputPlaceholder', { static: false }]
92
+ }], placeholder: [{
93
+ type: Input
94
+ }], execute: [{
95
+ type: Output
96
+ }], showChange: [{
97
+ type: Output
98
+ }], hostClasses: [{
99
+ type: HostBinding,
100
+ args: ['class']
101
+ }], show: [{
102
+ type: Input
103
+ }], value: [{
104
+ type: Input
105
+ }] } });
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvbmF2aWdhdGlvbi9zZWFyY2hib3gvc2VhcmNoYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvbmF2aWdhdGlvbi9zZWFyY2hib3gvc2VhcmNoYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFjLFVBQVUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0gsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQWN6RSxNQUFNLE9BQU8sa0JBQWtCO0lBZ0Q3QjtRQWhDQSxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUVyQyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQVF6QyxhQUFRLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMzQixjQUFTLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQXFCWixDQUFDO0lBN0JqQixJQUNJLFdBQVc7UUFDYixPQUFPO1lBQ0wsSUFBSSxDQUFDLEtBQUs7WUFDVixJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDekIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDZCxDQUFDO0lBR0QsSUFDSSxJQUFJLENBQUMsS0FBYztRQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLEtBQUssRUFBRTtZQUNULFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbEMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ1Q7SUFDSCxDQUFDO0lBQ0QsSUFDSSxLQUFLLENBQUMsS0FBVTtRQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDNUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUNELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBSUQsUUFBUTtJQUNSLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUNELGdCQUFnQjtRQUNkLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNwRSxPQUFPLEtBQUssQ0FBQyxhQUFhLENBQUM7SUFDN0IsQ0FBQztJQUNELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUNELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUNELGdCQUFnQixDQUFDLFVBQW1CO1FBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO0lBQzdCLENBQUM7SUFDRCxRQUFRLENBQUMsS0FBa0I7UUFDekIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFDRCxXQUFXLENBQUMsS0FBVTtRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxVQUFVLENBQUMsS0FBYTtRQUN0QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDOzsrR0E5RVUsa0JBQWtCO21HQUFsQixrQkFBa0IsK09BUmxCO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUM7WUFDakQsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGLGlPQ2JILHFtQ0FpQ0U7MkZEbEJXLGtCQUFrQjtrQkFaOUIsU0FBUzsrQkFDRSxjQUFjLGFBR2I7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsbUJBQW1CLENBQUM7NEJBQ2pELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzBFQU9ELEtBQUs7c0JBREosS0FBSztnQkFHTixLQUFLO3NCQURKLFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFHckMsZ0JBQWdCO3NCQURmLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQU1oRCxXQUFXO3NCQURWLEtBQUs7Z0JBR04sT0FBTztzQkFETixNQUFNO2dCQUdQLFVBQVU7c0JBRFQsTUFBTTtnQkFHSCxXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTztnQkFVaEIsSUFBSTtzQkFEUCxLQUFLO2dCQVVGLEtBQUs7c0JBRFIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIGZvcndhcmRSZWYsIElucHV0LCBIb3N0QmluZGluZywgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnQtc2VhcmNoYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaGJveC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlYXJjaGJveC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNlYXJjaGJveENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hib3hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvKipcbiAgICogQ2xhc2UgbyBjbGFzZXMgYXNpZ25hZGFzIGFsIGNvbXBvbmVudGVcbiAgICovXG4gIEBJbnB1dCgpXG4gIGNsYXNzITogc3RyaW5nO1xuICBAVmlld0NoaWxkKCdpbnB1dCcsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBpbnB1dCE6IEVsZW1lbnRSZWY8YW55PjtcbiAgQFZpZXdDaGlsZCgnaW5wdXRQbGFjZWhvbGRlcicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBpbnB1dFBsYWNlaG9sZGVyITogRWxlbWVudFJlZjxhbnk+O1xuICBkaXNhYmxlZCE6IGJvb2xlYW47XG4gIHByaXZhdGUgX3ZhbHVlITogc3RyaW5nO1xuICBwcml2YXRlIHNob3duITogYm9vbGVhbjtcbiAgQElucHV0KClcbiAgcGxhY2Vob2xkZXIhOiBzdHJpbmc7XG4gIEBPdXRwdXQoKVxuICBleGVjdXRlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKVxuICBzaG93Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGhvc3RDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHRoaXMuY2xhc3MsXG4gICAgICB0aGlzLnNob3duID8gJ3Nob3cnIDogJydcbiAgICBdLmpvaW4oJyAnKTtcbiAgfVxuICBvbkNoYW5nZSA9IChfOiBhbnkpID0+IHsgfTtcbiAgb25Ub3VjaGVkID0gKF86IGFueSkgPT4geyB9O1xuICBASW5wdXQoKVxuICBzZXQgc2hvdyh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuc2hvd24gPSB2YWx1ZTtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmdldE5hdGl2ZUVsZW1lbnQoKS5mb2N1cygpO1xuICAgICAgfSwgMzAwKTtcbiAgICB9XG4gIH1cbiAgQElucHV0KClcbiAgc2V0IHZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLl92YWx1ZSA9IHZhbHVlIHx8ICcnO1xuICAgIHRoaXMuZ2V0TmF0aXZlRWxlbWVudCgpLnZhbHVlID0gdGhpcy5fdmFsdWU7XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLl92YWx1ZSk7XG4gICAgdGhpcy5vblRvdWNoZWQodGhpcy5fdmFsdWUpO1xuICB9XG4gIGdldCB2YWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG4gIGNsb3NlU2VhcmNoKCk6IHZvaWQge1xuICAgIHRoaXMuc2hvd0NoYW5nZS5lbWl0KGZhbHNlKTtcbiAgfVxuICBnZXROYXRpdmVFbGVtZW50KCkge1xuICAgIGNvbnN0IGlucHV0ID0gdGhpcy5wbGFjZWhvbGRlciA/IHRoaXMuaW5wdXRQbGFjZWhvbGRlciA6IHRoaXMuaW5wdXQ7XG4gICAgcmV0dXJuIGlucHV0Lm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG4gIG9uU2VhcmNoKGV2ZW50OiBTdWJtaXRFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5nZXROYXRpdmVFbGVtZW50KCkudmFsdWUgPSAnJztcbiAgICB0aGlzLmV4ZWN1dGUuZW1pdCh0aGlzLl92YWx1ZSk7XG4gIH1cbiAgdXBkYXRlVmFsdWUoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG4gIH1cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbn1cbiIsIjxmb3JtIChzdWJtaXQpPVwib25TZWFyY2goJGV2ZW50KVwiIGNsYXNzPVwiY29udGFpbmVyIHAtMiBwLXNtLTMgcGItbWQtMyBwdC1tZC01IHB4LW1kLTMgcHgtbGctNVwiPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gY2xhc3M9XCJwLTIgbXItMlwiIChjbGljayk9XCJjbG9zZVNlYXJjaCgpXCI+XG4gICAgICAgIDxmdC1pY29uIG5hbWU9XCJhcnJvdy1sZWZ0XCIgc2l6ZT1cIjJcIj48L2Z0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxpbnB1dFxuICAgICAgICAjaW5wdXRcbiAgICAgICAgdHlwZT1cInNlYXJjaFwiXG4gICAgICAgIG1hdElucHV0XG4gICAgICAgIGNsYXNzPVwiZmxleC1ncm93LTFcIlxuICAgICAgICBpMThuLXBsYWNlaG9sZGVyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoIGNyaXRlcmlhXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVWYWx1ZSgkZXZlbnQpXCJcbiAgICAgICAgKGtleXVwKT1cInVwZGF0ZVZhbHVlKCRldmVudClcIlxuICAgICAgICAqbmdJZj1cIiFwbGFjZWhvbGRlclwiXG4gICAgICAvPlxuICAgICAgPGlucHV0XG4gICAgICAgICNpbnB1dFBsYWNlaG9sZGVyXG4gICAgICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgICAgICBtYXRJbnB1dFxuICAgICAgICBjbGFzcz1cImZsZXgtZ3Jvdy0xXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVWYWx1ZSgkZXZlbnQpXCJcbiAgICAgICAgKGtleXVwKT1cInVwZGF0ZVZhbHVlKCRldmVudClcIlxuICAgICAgICAqbmdJZj1cInBsYWNlaG9sZGVyXCJcbiAgICAgIC8+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBtYXQtaWNvbi1idXR0b24gY2xhc3M9XCJwLTIgbWwtMlwiPlxuICAgICAgICA8ZnQtaWNvbiBuYW1lPVwic2VhcmNoXCIgc2l6ZT1cIjJcIj48L2Z0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9mb3JtPlxuICAiXX0=
@@ -0,0 +1,51 @@
1
+ import { Component, Input, HostBinding } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "../../display/icon/icon.component";
5
+ import * as i3 from "../../display/observe-intersecting.directive";
6
+ import * as i4 from "@angular/material/menu";
7
+ import * as i5 from "@angular/material/button";
8
+ export class ToolbarComponent {
9
+ constructor() {
10
+ this.rootMargin = { rootMargin: '0px 0px 0px 0px' };
11
+ this.class = '';
12
+ const breakpointSm = parseInt(getComputedStyle(document.documentElement).getPropertyValue('--breakpoint-sm'));
13
+ if (window.innerWidth < breakpointSm) {
14
+ this.rootMargin = { rootMargin: '0px 0px 0px 0px' };
15
+ }
16
+ }
17
+ ngOnInit() {
18
+ if (this.titleOptions && !this.currentTitleOption) {
19
+ this.currentTitleOption = this.titleOptions[0];
20
+ }
21
+ }
22
+ get hostClasses() {
23
+ return [
24
+ this.class,
25
+ this.overlapped ? 'overlapped' : ''
26
+ ].join(' ');
27
+ }
28
+ setOverlapped(overlapped) {
29
+ this.overlapped = !overlapped;
30
+ }
31
+ }
32
+ ToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
33
+ ToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ToolbarComponent, selector: "ft-toolbar", inputs: { actionOptions: "actionOptions", currentTitleOption: "currentTitleOption", title: "title", titleOptions: "titleOptions", class: "class" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "<div (ftObserveIntersecting)=\"setOverlapped($event)\" [ftObserveIntersectingOptions]=\"rootMargin\"></div>\n<div class=\"content\">\n <div class=\"container p-2 p-sm-3 pb-md-3 pt-md-5 px-md-3 px-lg-5\">\n <div class=\"d-flex align-items-center\">\n <h5 class=\"title ml-2 ml-md-0 mb-0 mr-auto\" *ngIf=\"!titleOptions; else titleForm\">{{ title }}</h5>\n <ng-container *ngFor=\"let option of actionOptions\">\n <button type=\"button\" class=\"p-2\" mat-button [ngClass]=\"option.class || ''\" *ngIf=\"!option.children\" (click)=\"option.click ? option.click($event) : null\" title=\"{{ option.label }}\">\n <div class=\"d-flex align-items-center\">\n <ft-icon *ngIf=\"option.iconName\" [name]=\"option.iconName\" size=\"2\"></ft-icon>\n <div *ngIf=\"option.label\" class=\"label d-none d-sm-inline-block ml-1\">{{ option.label }}</div>\n </div>\n </button>\n <ng-container *ngIf=\"option.children\">\n <button type=\"button\" class=\"p-2\" mat-button [matMenuTriggerFor]=\"menu\" [ngClass]=\"option.class || ''\" title=\"{{ option.label }}\">\n <div class=\"d-flex align-items-center\">\n <ft-icon *ngIf=\"option.iconName\" [name]=\"option.iconName\" size=\"2\"></ft-icon>\n <div *ngIf=\"option.label\" class=\"label d-none d-sm-inline-block ml-1\">{{ option.label }}</div>\n </div>\n </button>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item *ngFor=\"let childOption of option.children\" (click)=\"childOption.click ? childOption.click($event): null\">{{ childOption.label }}</button>\n </mat-menu>\n </ng-container>\n </ng-container>\n </div>\n </div>\n</div>\n<ng-template #titleForm>\n <button type=\"button\" class=\"title p-2 pl-3 mr-auto\" mat-button [matMenuTriggerFor]=\"titleMenu\">\n <div class=\"d-flex align-items-center\">\n <div class=\"label mr-1\">{{ currentTitleOption.label }}</div>\n <ft-icon name=\"angle-down\" size=\"1\"></ft-icon>\n </div>\n </button>\n <mat-menu #titleMenu=\"matMenu\">\n <button class=\"mr-4\" mat-menu-item [disabled]=\"option == currentTitleOption\" *ngFor=\"let option of titleOptions\" (click)=\"currentTitleOption = option; option.click ? option.click($event) : null\">\n <div class=\"d-flex align-items-center\">\n <ft-icon [name]=\"option == currentTitleOption? 'check' : ''\" class=\"mr-1\"></ft-icon>\n <div>{{ option.label }}</div>\n </div>\n </button>\n </mat-menu>\n</ng-template>\n", styles: [":host{z-index:var(--z-index, 980);background-color:var(--background-color, #FFF);transition:background-color .2s,box-shadow .2s;display:block;position:sticky;top:-1px}:host.overlapped{box-shadow:0 0 1px #00000024,0 0 6px #0000001f}@media (min-width: 768px){:host{top:-2rem}}.content button{min-width:0}.content button .label{line-height:initial}.content .title{font-size:1.21rem;font-weight:500}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IconComponent, selector: "ft-icon", inputs: ["class", "collection", "mode", "name", "path", "size", "src"] }, { kind: "directive", type: i3.ObserveIntersectingDirective, selector: "[ftObserveIntersecting]", inputs: ["ftObserveIntersectingOptions"], outputs: ["ftObserveIntersecting"] }, { kind: "component", type: i4.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }] });
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ToolbarComponent, decorators: [{
35
+ type: Component,
36
+ args: [{ selector: 'ft-toolbar', template: "<div (ftObserveIntersecting)=\"setOverlapped($event)\" [ftObserveIntersectingOptions]=\"rootMargin\"></div>\n<div class=\"content\">\n <div class=\"container p-2 p-sm-3 pb-md-3 pt-md-5 px-md-3 px-lg-5\">\n <div class=\"d-flex align-items-center\">\n <h5 class=\"title ml-2 ml-md-0 mb-0 mr-auto\" *ngIf=\"!titleOptions; else titleForm\">{{ title }}</h5>\n <ng-container *ngFor=\"let option of actionOptions\">\n <button type=\"button\" class=\"p-2\" mat-button [ngClass]=\"option.class || ''\" *ngIf=\"!option.children\" (click)=\"option.click ? option.click($event) : null\" title=\"{{ option.label }}\">\n <div class=\"d-flex align-items-center\">\n <ft-icon *ngIf=\"option.iconName\" [name]=\"option.iconName\" size=\"2\"></ft-icon>\n <div *ngIf=\"option.label\" class=\"label d-none d-sm-inline-block ml-1\">{{ option.label }}</div>\n </div>\n </button>\n <ng-container *ngIf=\"option.children\">\n <button type=\"button\" class=\"p-2\" mat-button [matMenuTriggerFor]=\"menu\" [ngClass]=\"option.class || ''\" title=\"{{ option.label }}\">\n <div class=\"d-flex align-items-center\">\n <ft-icon *ngIf=\"option.iconName\" [name]=\"option.iconName\" size=\"2\"></ft-icon>\n <div *ngIf=\"option.label\" class=\"label d-none d-sm-inline-block ml-1\">{{ option.label }}</div>\n </div>\n </button>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item *ngFor=\"let childOption of option.children\" (click)=\"childOption.click ? childOption.click($event): null\">{{ childOption.label }}</button>\n </mat-menu>\n </ng-container>\n </ng-container>\n </div>\n </div>\n</div>\n<ng-template #titleForm>\n <button type=\"button\" class=\"title p-2 pl-3 mr-auto\" mat-button [matMenuTriggerFor]=\"titleMenu\">\n <div class=\"d-flex align-items-center\">\n <div class=\"label mr-1\">{{ currentTitleOption.label }}</div>\n <ft-icon name=\"angle-down\" size=\"1\"></ft-icon>\n </div>\n </button>\n <mat-menu #titleMenu=\"matMenu\">\n <button class=\"mr-4\" mat-menu-item [disabled]=\"option == currentTitleOption\" *ngFor=\"let option of titleOptions\" (click)=\"currentTitleOption = option; option.click ? option.click($event) : null\">\n <div class=\"d-flex align-items-center\">\n <ft-icon [name]=\"option == currentTitleOption? 'check' : ''\" class=\"mr-1\"></ft-icon>\n <div>{{ option.label }}</div>\n </div>\n </button>\n </mat-menu>\n</ng-template>\n", styles: [":host{z-index:var(--z-index, 980);background-color:var(--background-color, #FFF);transition:background-color .2s,box-shadow .2s;display:block;position:sticky;top:-1px}:host.overlapped{box-shadow:0 0 1px #00000024,0 0 6px #0000001f}@media (min-width: 768px){:host{top:-2rem}}.content button{min-width:0}.content button .label{line-height:initial}.content .title{font-size:1.21rem;font-weight:500}\n"] }]
37
+ }], ctorParameters: function () { return []; }, propDecorators: { actionOptions: [{
38
+ type: Input
39
+ }], currentTitleOption: [{
40
+ type: Input
41
+ }], title: [{
42
+ type: Input
43
+ }], titleOptions: [{
44
+ type: Input
45
+ }], class: [{
46
+ type: Input
47
+ }], hostClasses: [{
48
+ type: HostBinding,
49
+ args: ['class']
50
+ }] } });
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL25hdmlnYXRpb24vdG9vbGJhci90b29sYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvbmF2aWdhdGlvbi90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBU3RFLE1BQU0sT0FBTyxnQkFBZ0I7SUFRM0I7UUFGQSxlQUFVLEdBQVEsRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztRQWVwRCxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBWmpCLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO1FBQzlHLElBQUksTUFBTSxDQUFDLFVBQVUsR0FBRyxZQUFZLEVBQUU7WUFDcEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxDQUFDO1NBQ3JEO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDakQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDaEQ7SUFDSCxDQUFDO0lBR0QsSUFDSSxXQUFXO1FBQ2IsT0FBTztZQUNMLElBQUksQ0FBQyxLQUFLO1lBQ1YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFO1NBQ3BDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2QsQ0FBQztJQUNELGFBQWEsQ0FBQyxVQUFtQjtRQUMvQixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsVUFBVSxDQUFDO0lBQ2hDLENBQUM7OzZHQS9CVSxnQkFBZ0I7aUdBQWhCLGdCQUFnQiw2UENUN0Isc2hGQTJDQTsyRkRsQ2EsZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLFlBQVk7MEVBS2IsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBaUJOLEtBQUs7c0JBREosS0FBSztnQkFHRixXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgSG9zdEJpbmRpbmcgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FjdGlvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Z0LXRvb2xiYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vdG9vbGJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Rvb2xiYXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUb29sYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgYWN0aW9uT3B0aW9ucyE6IEFjdGlvbltdO1xuICBASW5wdXQoKSBjdXJyZW50VGl0bGVPcHRpb24hOiBBY3Rpb247XG4gIEBJbnB1dCgpIHRpdGxlITogc3RyaW5nO1xuICBASW5wdXQoKSB0aXRsZU9wdGlvbnMhOiBBY3Rpb25bXTtcbiAgb3ZlcmxhcHBlZCE6IGJvb2xlYW47XG4gIHJvb3RNYXJnaW46IGFueSA9IHsgcm9vdE1hcmdpbjogJzBweCAwcHggMHB4IDBweCcgfTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBjb25zdCBicmVha3BvaW50U20gPSBwYXJzZUludChnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZSgnLS1icmVha3BvaW50LXNtJykpO1xuICAgIGlmICh3aW5kb3cuaW5uZXJXaWR0aCA8IGJyZWFrcG9pbnRTbSkge1xuICAgICAgdGhpcy5yb290TWFyZ2luID0geyByb290TWFyZ2luOiAnMHB4IDBweCAwcHggMHB4JyB9O1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRpdGxlT3B0aW9ucyAmJiAhdGhpcy5jdXJyZW50VGl0bGVPcHRpb24pIHtcbiAgICAgIHRoaXMuY3VycmVudFRpdGxlT3B0aW9uID0gdGhpcy50aXRsZU9wdGlvbnNbMF07XG4gICAgfVxuICB9XG4gIEBJbnB1dCgpXG4gIGNsYXNzOiBzdHJpbmcgPSAnJztcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBob3N0Q2xhc3NlcygpOiBzdHJpbmcge1xuICAgIHJldHVybiBbXG4gICAgICB0aGlzLmNsYXNzLFxuICAgICAgdGhpcy5vdmVybGFwcGVkID8gJ292ZXJsYXBwZWQnIDogJydcbiAgICBdLmpvaW4oJyAnKTtcbiAgfVxuICBzZXRPdmVybGFwcGVkKG92ZXJsYXBwZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLm92ZXJsYXBwZWQgPSAhb3ZlcmxhcHBlZDtcbiAgfVxuXG59XG4iLCI8ZGl2IChmdE9ic2VydmVJbnRlcnNlY3RpbmcpPVwic2V0T3ZlcmxhcHBlZCgkZXZlbnQpXCIgW2Z0T2JzZXJ2ZUludGVyc2VjdGluZ09wdGlvbnNdPVwicm9vdE1hcmdpblwiPjwvZGl2PlxuPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lciBwLTIgcC1zbS0zIHBiLW1kLTMgcHQtbWQtNSBweC1tZC0zIHB4LWxnLTVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgPGg1IGNsYXNzPVwidGl0bGUgbWwtMiBtbC1tZC0wIG1iLTAgbXItYXV0b1wiICpuZ0lmPVwiIXRpdGxlT3B0aW9uczsgZWxzZSB0aXRsZUZvcm1cIj57eyB0aXRsZSB9fTwvaDU+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgYWN0aW9uT3B0aW9uc1wiPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInAtMlwiIG1hdC1idXR0b24gW25nQ2xhc3NdPVwib3B0aW9uLmNsYXNzIHx8ICcnXCIgKm5nSWY9XCIhb3B0aW9uLmNoaWxkcmVuXCIgKGNsaWNrKT1cIm9wdGlvbi5jbGljayA/IG9wdGlvbi5jbGljaygkZXZlbnQpIDogbnVsbFwiIHRpdGxlPVwie3sgb3B0aW9uLmxhYmVsIH19XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxmdC1pY29uICpuZ0lmPVwib3B0aW9uLmljb25OYW1lXCIgW25hbWVdPVwib3B0aW9uLmljb25OYW1lXCIgc2l6ZT1cIjJcIj48L2Z0LWljb24+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwib3B0aW9uLmxhYmVsXCIgY2xhc3M9XCJsYWJlbCBkLW5vbmUgZC1zbS1pbmxpbmUtYmxvY2sgbWwtMVwiPnt7IG9wdGlvbi5sYWJlbCB9fTwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9wdGlvbi5jaGlsZHJlblwiPlxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwicC0yXCIgbWF0LWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiIFtuZ0NsYXNzXT1cIm9wdGlvbi5jbGFzcyB8fCAnJ1wiIHRpdGxlPVwie3sgb3B0aW9uLmxhYmVsIH19XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICA8ZnQtaWNvbiAqbmdJZj1cIm9wdGlvbi5pY29uTmFtZVwiIFtuYW1lXT1cIm9wdGlvbi5pY29uTmFtZVwiIHNpemU9XCIyXCI+PC9mdC1pY29uPlxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwib3B0aW9uLmxhYmVsXCIgY2xhc3M9XCJsYWJlbCBkLW5vbmUgZC1zbS1pbmxpbmUtYmxvY2sgbWwtMVwiPnt7IG9wdGlvbi5sYWJlbCB9fTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtICpuZ0Zvcj1cImxldCBjaGlsZE9wdGlvbiBvZiBvcHRpb24uY2hpbGRyZW5cIiAoY2xpY2spPVwiY2hpbGRPcHRpb24uY2xpY2sgPyBjaGlsZE9wdGlvbi5jbGljaygkZXZlbnQpOiBudWxsXCI+e3sgY2hpbGRPcHRpb24ubGFiZWwgfX08L2J1dHRvbj5cbiAgICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICN0aXRsZUZvcm0+XG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwidGl0bGUgcC0yIHBsLTMgbXItYXV0b1wiIG1hdC1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cInRpdGxlTWVudVwiPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibGFiZWwgbXItMVwiPnt7IGN1cnJlbnRUaXRsZU9wdGlvbi5sYWJlbCB9fTwvZGl2PlxuICAgICAgPGZ0LWljb24gbmFtZT1cImFuZ2xlLWRvd25cIiBzaXplPVwiMVwiPjwvZnQtaWNvbj5cbiAgICA8L2Rpdj5cbiAgPC9idXR0b24+XG4gIDxtYXQtbWVudSAjdGl0bGVNZW51PVwibWF0TWVudVwiPlxuICAgIDxidXR0b24gY2xhc3M9XCJtci00XCIgbWF0LW1lbnUtaXRlbSBbZGlzYWJsZWRdPVwib3B0aW9uID09IGN1cnJlbnRUaXRsZU9wdGlvblwiICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgdGl0bGVPcHRpb25zXCIgKGNsaWNrKT1cImN1cnJlbnRUaXRsZU9wdGlvbiA9IG9wdGlvbjsgb3B0aW9uLmNsaWNrID8gb3B0aW9uLmNsaWNrKCRldmVudCkgOiBudWxsXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8ZnQtaWNvbiBbbmFtZV09XCJvcHRpb24gPT0gY3VycmVudFRpdGxlT3B0aW9uPyAnY2hlY2snIDogJydcIiBjbGFzcz1cIm1yLTFcIj48L2Z0LWljb24+XG4gICAgICAgIDxkaXY+e3sgb3B0aW9uLmxhYmVsIH19PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2J1dHRvbj5cbiAgPC9tYXQtbWVudT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -1,16 +1,8 @@
1
1
  import { CommonModule } from '@angular/common';
2
2
  import { NgModule } from '@angular/core';
3
- import { MatButtonModule } from '@angular/material/button';
4
- import { MatDialogModule } from '@angular/material/dialog';
5
- import { MatSnackBarModule } from '@angular/material/snack-bar';
6
- import { AvatarComponent } from './avatar/avatar.component';
7
- import { IconComponent } from './icon/icon.component';
8
- import { ImageComponent } from './image/image.component';
9
- import { ProgressComponent } from './progress/progress.component';
10
- import { ObserveIntersectingDirective } from './observe-intersecting.directive';
11
- import { MessageComponent } from './message/message.component';
12
- import { ContentComponent } from './content/content.component';
13
- import { RatingComponent } from './rating/rating.component';
3
+ import { DisplayModule } from './display/display.module';
4
+ import { InputsModule } from './inputs/inputs.module';
5
+ import { NavigationModule } from './navigation/navigation.module';
14
6
  import * as i0 from "@angular/core";
15
7
  export class UiModule {
16
8
  static forRoot(configuration) {
@@ -23,53 +15,24 @@ export class UiModule {
23
15
  }
24
16
  }
25
17
  UiModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: UiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
26
- UiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.0", ngImport: i0, type: UiModule, declarations: [AvatarComponent,
27
- IconComponent,
28
- ImageComponent,
29
- ProgressComponent,
30
- ObserveIntersectingDirective,
31
- MessageComponent,
32
- ContentComponent,
33
- RatingComponent], imports: [CommonModule,
34
- MatButtonModule,
35
- MatDialogModule,
36
- MatSnackBarModule], exports: [AvatarComponent,
37
- IconComponent,
38
- ImageComponent,
39
- ProgressComponent,
40
- ObserveIntersectingDirective,
41
- RatingComponent] });
18
+ UiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.0", ngImport: i0, type: UiModule, imports: [CommonModule,
19
+ DisplayModule,
20
+ InputsModule,
21
+ NavigationModule] });
42
22
  UiModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: UiModule, imports: [CommonModule,
43
- MatButtonModule,
44
- MatDialogModule,
45
- MatSnackBarModule] });
23
+ DisplayModule,
24
+ InputsModule,
25
+ NavigationModule] });
46
26
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: UiModule, decorators: [{
47
27
  type: NgModule,
48
28
  args: [{
49
- declarations: [
50
- AvatarComponent,
51
- IconComponent,
52
- ImageComponent,
53
- ProgressComponent,
54
- ObserveIntersectingDirective,
55
- MessageComponent,
56
- ContentComponent,
57
- RatingComponent
58
- ],
29
+ declarations: [],
59
30
  imports: [
60
31
  CommonModule,
61
- MatButtonModule,
62
- MatDialogModule,
63
- MatSnackBarModule
64
- ],
65
- exports: [
66
- AvatarComponent,
67
- IconComponent,
68
- ImageComponent,
69
- ProgressComponent,
70
- ObserveIntersectingDirective,
71
- RatingComponent
32
+ DisplayModule,
33
+ InputsModule,
34
+ NavigationModule
72
35
  ]
73
36
  }]
74
37
  }] });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi91aS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQTRCNUQsTUFBTSxPQUFPLFFBQVE7SUFDWixNQUFNLENBQUMsT0FBTyxDQUFDLGFBQW1CO1FBQ3ZDLE9BQU87WUFDTCxRQUFRLEVBQUUsUUFBUTtZQUNsQixTQUFTLEVBQUU7Z0JBQ1QsRUFBRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRTthQUM5RDtTQUNGLENBQUM7SUFDSixDQUFDOztxR0FSVSxRQUFRO3NHQUFSLFFBQVEsaUJBeEJqQixlQUFlO1FBQ2YsYUFBYTtRQUNiLGNBQWM7UUFDZCxpQkFBaUI7UUFDakIsNEJBQTRCO1FBQzVCLGdCQUFnQjtRQUNoQixnQkFBZ0I7UUFDaEIsZUFBZSxhQUdmLFlBQVk7UUFDWixlQUFlO1FBQ2YsZUFBZTtRQUNmLGlCQUFpQixhQUdqQixlQUFlO1FBQ2YsYUFBYTtRQUNiLGNBQWM7UUFDZCxpQkFBaUI7UUFDakIsNEJBQTRCO1FBQzVCLGVBQWU7c0dBR04sUUFBUSxZQWRqQixZQUFZO1FBQ1osZUFBZTtRQUNmLGVBQWU7UUFDZixpQkFBaUI7MkZBV1IsUUFBUTtrQkExQnBCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixjQUFjO3dCQUNkLGlCQUFpQjt3QkFDakIsNEJBQTRCO3dCQUM1QixnQkFBZ0I7d0JBQ2hCLGdCQUFnQjt3QkFDaEIsZUFBZTtxQkFDaEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixlQUFlO3dCQUNmLGlCQUFpQjtxQkFDbEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixjQUFjO3dCQUNkLGlCQUFpQjt3QkFDakIsNEJBQTRCO3dCQUM1QixlQUFlO3FCQUNoQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRTbmFja0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5cbmltcG9ydCB7IEF2YXRhckNvbXBvbmVudCB9IGZyb20gJy4vYXZhdGFyL2F2YXRhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4vaWNvbi9pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbWFnZUNvbXBvbmVudCB9IGZyb20gJy4vaW1hZ2UvaW1hZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IFByb2dyZXNzQ29tcG9uZW50IH0gZnJvbSAnLi9wcm9ncmVzcy9wcm9ncmVzcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgT2JzZXJ2ZUludGVyc2VjdGluZ0RpcmVjdGl2ZSB9IGZyb20gJy4vb2JzZXJ2ZS1pbnRlcnNlY3RpbmcuZGlyZWN0aXZlJztcbmltcG9ydCB7IE1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuL21lc3NhZ2UvbWVzc2FnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4vY29udGVudC9jb250ZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSYXRpbmdDb21wb25lbnQgfSBmcm9tICcuL3JhdGluZy9yYXRpbmcuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgQXZhdGFyQ29tcG9uZW50LFxuICAgIEljb25Db21wb25lbnQsXG4gICAgSW1hZ2VDb21wb25lbnQsXG4gICAgUHJvZ3Jlc3NDb21wb25lbnQsXG4gICAgT2JzZXJ2ZUludGVyc2VjdGluZ0RpcmVjdGl2ZSxcbiAgICBNZXNzYWdlQ29tcG9uZW50LFxuICAgIENvbnRlbnRDb21wb25lbnQsXG4gICAgUmF0aW5nQ29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdERpYWxvZ01vZHVsZSxcbiAgICBNYXRTbmFja0Jhck1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQXZhdGFyQ29tcG9uZW50LFxuICAgIEljb25Db21wb25lbnQsXG4gICAgSW1hZ2VDb21wb25lbnQsXG4gICAgUHJvZ3Jlc3NDb21wb25lbnQsXG4gICAgT2JzZXJ2ZUludGVyc2VjdGluZ0RpcmVjdGl2ZSxcbiAgICBSYXRpbmdDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBVaU1vZHVsZSB7IFxuICBwdWJsaWMgc3RhdGljIGZvclJvb3QoY29uZmlndXJhdGlvbj86IGFueSk6IE1vZHVsZVdpdGhQcm92aWRlcnM8VWlNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IFVpTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogJ0ZhY3RvclVpQ29uZmlndXJhdGlvbicsIHVzZVZhbHVlOiBjb25maWd1cmF0aW9uIH1cbiAgICAgIF1cbiAgICB9O1xuICB9XG59XG4iXX0=
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi91aS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBYWxFLE1BQU0sT0FBTyxRQUFRO0lBQ1osTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFtQztRQUN2RCxPQUFPO1lBQ0wsUUFBUSxFQUFFLFFBQVE7WUFDbEIsU0FBUyxFQUFFO2dCQUNULEVBQUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUU7YUFDOUQ7U0FDRixDQUFDO0lBQ0osQ0FBQzs7cUdBUlUsUUFBUTtzR0FBUixRQUFRLFlBTmpCLFlBQVk7UUFDWixhQUFhO1FBQ2IsWUFBWTtRQUNaLGdCQUFnQjtzR0FHUCxRQUFRLFlBTmpCLFlBQVk7UUFDWixhQUFhO1FBQ2IsWUFBWTtRQUNaLGdCQUFnQjsyRkFHUCxRQUFRO2tCQVhwQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxFQUViO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsWUFBWTt3QkFDWixnQkFBZ0I7cUJBQ2pCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEaXNwbGF5TW9kdWxlIH0gZnJvbSAnLi9kaXNwbGF5L2Rpc3BsYXkubW9kdWxlJztcblxuaW1wb3J0IHsgSW5wdXRzTW9kdWxlIH0gZnJvbSAnLi9pbnB1dHMvaW5wdXRzLm1vZHVsZSc7XG5pbXBvcnQgeyBNb2R1bGVDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9tb2RlbHMvbW9kdWxlLWNvbmZpZ3VyYXRpb24nO1xuaW1wb3J0IHsgTmF2aWdhdGlvbk1vZHVsZSB9IGZyb20gJy4vbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLm1vZHVsZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIERpc3BsYXlNb2R1bGUsXG4gICAgSW5wdXRzTW9kdWxlLFxuICAgIE5hdmlnYXRpb25Nb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBVaU1vZHVsZSB7IFxuICBwdWJsaWMgc3RhdGljIGZvclJvb3QoY29uZmlndXJhdGlvbj86IE1vZHVsZUNvbmZpZ3VyYXRpb24pOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFVpTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBVaU1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6ICdGYWN0b3JVaUNvbmZpZ3VyYXRpb24nLCB1c2VWYWx1ZTogY29uZmlndXJhdGlvbiB9XG4gICAgICBdXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -1,12 +1,22 @@
1
1
  /*
2
2
  * Public API Surface of ui
3
3
  */
4
- export * from './lib/avatar/avatar.component';
5
- export * from './lib/icon/icon.component';
6
- export * from './lib/image/image.component';
7
- export * from './lib/progress/progress.component';
8
- export * from './lib/rating/rating.component';
9
- export * from './lib/observe-intersecting.directive';
10
- export * from './lib/message.service';
4
+ export * from './lib/display/avatar/avatar.component';
5
+ export * from './lib/display/icon/icon.component';
6
+ export * from './lib/display/image/image.component';
7
+ export * from './lib/display/content/content.component';
8
+ export * from './lib/display/message/message.component';
9
+ export * from './lib/display/message.service';
10
+ export * from './lib/display/progress/progress.component';
11
+ export * from './lib/display/progress.service';
12
+ export * from './lib/display/observe-intersecting.directive';
13
+ export * from './lib/display/display.module';
14
+ export * from './lib/inputs/rating/rating.component';
15
+ export * from './lib/inputs/inputs.module';
16
+ export * from './lib/navigation/list/list.component';
17
+ export * from './lib/navigation/navbar/navbar.component';
18
+ export * from './lib/navigation/searchbox/searchbox.component';
19
+ export * from './lib/navigation/toolbar/toolbar.component';
20
+ export * from './lib/navigation/navigation.module';
11
21
  export * from './lib/ui.module';
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiB1aVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2F2YXRhci9hdmF0YXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ljb24vaWNvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW1hZ2UvaW1hZ2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Byb2dyZXNzL3Byb2dyZXNzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9yYXRpbmcvcmF0aW5nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9vYnNlcnZlLWludGVyc2VjdGluZy5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWVzc2FnZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3VpLm1vZHVsZSc7XG4iXX0=
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHVpXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlzcGxheS9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXNwbGF5L2ljb24vaWNvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlzcGxheS9pbWFnZS9pbWFnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlzcGxheS9jb250ZW50L2NvbnRlbnQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Rpc3BsYXkvbWVzc2FnZS9tZXNzYWdlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXNwbGF5L21lc3NhZ2Uuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXNwbGF5L3Byb2dyZXNzL3Byb2dyZXNzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXNwbGF5L3Byb2dyZXNzLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlzcGxheS9vYnNlcnZlLWludGVyc2VjdGluZy5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlzcGxheS9kaXNwbGF5Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnB1dHMvcmF0aW5nL3JhdGluZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW5wdXRzL2lucHV0cy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbmF2aWdhdGlvbi9saXN0L2xpc3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL25hdmlnYXRpb24vbmF2YmFyL25hdmJhci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbmF2aWdhdGlvbi9zZWFyY2hib3gvc2VhcmNoYm94LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9uYXZpZ2F0aW9uL3Rvb2xiYXIvdG9vbGJhci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91aS5tb2R1bGUnO1xuIl19