ngx-edu-sharing-ui 9.1.1 → 9.1.3
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/esm2022/lib/actionbar/actionbar.component.mjs +31 -16
- package/esm2022/lib/directives/icon.directive.mjs +24 -7
- package/esm2022/lib/dropdown/dropdown.component.mjs +15 -8
- package/esm2022/lib/edu-sharing-ui.module.mjs +5 -1
- package/esm2022/lib/list-items/list-text/list-text.component.mjs +3 -5
- package/esm2022/lib/mds/mds-helper.service.mjs +167 -0
- package/esm2022/lib/mds/mds.module.mjs +16 -0
- package/esm2022/lib/node-entries/drag-preview/drag-preview.component.mjs +3 -3
- package/esm2022/lib/node-entries/entries-model.mjs +1 -1
- package/esm2022/lib/node-entries/node-entries-card/node-entries-card.component.mjs +6 -4
- package/esm2022/lib/node-entries/node-entries-card-small/node-entries-card-small.component.mjs +2 -2
- package/esm2022/lib/node-entries/node-entries-global-options/node-entries-global-options.component.mjs +7 -3
- package/esm2022/lib/node-entries/node-entries-table/node-entries-table.component.mjs +5 -3
- package/esm2022/lib/node-entries/node-entries-wrapper.component.mjs +8 -3
- package/esm2022/lib/node-entries/option-button/option-button.component.mjs +7 -5
- package/esm2022/lib/pipes/file-size.pipe.mjs +6 -5
- package/esm2022/lib/pipes/node-title.pipe.mjs +7 -1
- package/esm2022/lib/pipes/option-tooltip.pipe.mjs +3 -3
- package/esm2022/lib/services/abstract/options-helper.service.mjs +1 -1
- package/esm2022/lib/services/node-helper.service.mjs +5 -2
- package/esm2022/lib/services/options-helper-data.service.mjs +2 -2
- package/esm2022/lib/services/search-helper.service.mjs +52 -0
- package/esm2022/lib/services/ui.service.mjs +16 -1
- package/esm2022/lib/translations/translation-loader.mjs +12 -9
- package/esm2022/lib/translations/translations.service.mjs +24 -6
- package/esm2022/lib/types/option-item.mjs +6 -1
- package/esm2022/module.mjs +4 -1
- package/fesm2022/ngx-edu-sharing-ui.mjs +436 -111
- package/fesm2022/ngx-edu-sharing-ui.mjs.map +1 -1
- package/lib/actionbar/actionbar.component.d.ts +13 -3
- package/lib/directives/icon.directive.d.ts +5 -3
- package/lib/dropdown/dropdown.component.d.ts +6 -3
- package/lib/edu-sharing-ui.module.d.ts +7 -6
- package/lib/list-items/list-text/list-text.component.d.ts +1 -1
- package/lib/list-items/list-widget.d.ts +1 -1
- package/lib/mds/mds-helper.service.d.ts +37 -0
- package/lib/mds/mds.module.d.ts +6 -0
- package/lib/node-entries/entries-model.d.ts +1 -1
- package/lib/node-entries/node-entries-card/node-entries-card.component.d.ts +1 -1
- package/lib/node-entries/node-entries-global-options/node-entries-global-options.component.d.ts +1 -0
- package/lib/node-entries/option-button/option-button.component.d.ts +2 -1
- package/lib/pipes/node-title.pipe.d.ts +2 -1
- package/lib/pipes/option-tooltip.pipe.d.ts +1 -1
- package/lib/services/abstract/options-helper.service.d.ts +1 -1
- package/lib/services/node-helper.service.d.ts +2 -2
- package/lib/services/options-helper-data.service.d.ts +3 -3
- package/lib/services/search-helper.service.d.ts +21 -0
- package/lib/services/ui.service.d.ts +7 -1
- package/lib/translations/translations.service.d.ts +5 -2
- package/lib/types/option-item.d.ts +7 -2
- package/module.d.ts +3 -0
- package/package.json +1 -1
|
@@ -3,6 +3,7 @@ import { Component, Input } from '@angular/core';
|
|
|
3
3
|
import { UIAnimation } from '../util/ui-animation';
|
|
4
4
|
import { UIConstants } from '../util/ui-constants';
|
|
5
5
|
import { Helper } from '../util/helper';
|
|
6
|
+
import { BehaviorSubject } from 'rxjs';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
import * as i1 from "../services/ui.service";
|
|
8
9
|
import * as i2 from "@ngx-translate/core";
|
|
@@ -68,26 +69,36 @@ export class ActionbarComponent {
|
|
|
68
69
|
* Should disabled ("greyed out") options be shown or hidden?
|
|
69
70
|
*/
|
|
70
71
|
this.showDisabled = true;
|
|
72
|
+
/**
|
|
73
|
+
* the position of the mat tooltips
|
|
74
|
+
*/
|
|
75
|
+
this.tooltipPosition = 'below';
|
|
76
|
+
/**
|
|
77
|
+
* breakpoint width at which point the mobile display count is used
|
|
78
|
+
*/
|
|
79
|
+
this.mobileBreakpoint = UIConstants.MOBILE_WIDTH;
|
|
71
80
|
this.optionsIn = [];
|
|
72
|
-
this.optionsAlways = [];
|
|
73
|
-
this.optionsMenu = [];
|
|
81
|
+
this.optionsAlways$ = new BehaviorSubject([]);
|
|
82
|
+
this.optionsMenu$ = new BehaviorSubject([]);
|
|
74
83
|
this.optionsToggle = [];
|
|
75
84
|
}
|
|
76
85
|
prepareOptions(options) {
|
|
77
86
|
options = this.uiService.filterValidOptions(Helper.deepCopyArray(options));
|
|
78
87
|
if (options == null) {
|
|
79
|
-
this.optionsAlways
|
|
80
|
-
this.optionsMenu
|
|
88
|
+
this.optionsAlways$.next([]);
|
|
89
|
+
this.optionsMenu$.next([]);
|
|
81
90
|
return;
|
|
82
91
|
}
|
|
83
92
|
this.optionsToggle = this.uiService.filterToggleOptions(options, true);
|
|
84
|
-
this.optionsAlways
|
|
85
|
-
if (!this.optionsAlways.length) {
|
|
86
|
-
this.optionsAlways
|
|
93
|
+
this.optionsAlways$.next(this.getActionOptions(this.uiService.filterToggleOptions(options, false)).slice(0, this.getNumberOptions()));
|
|
94
|
+
if (!this.optionsAlways$.value.length) {
|
|
95
|
+
this.optionsAlways$.next(this.uiService
|
|
87
96
|
.filterToggleOptions(options, false)
|
|
88
|
-
.slice(0, this.getNumberOptions());
|
|
97
|
+
.slice(0, this.getNumberOptions()));
|
|
89
98
|
}
|
|
90
|
-
this.optionsMenu
|
|
99
|
+
this.optionsMenu$.next(this.hideActionOptions(this.uiService.filterToggleOptions(options, false), this.optionsAlways$.value));
|
|
100
|
+
this.uiService.updateOptionEnabledState(this.optionsAlways$);
|
|
101
|
+
this.uiService.updateOptionEnabledState(this.optionsMenu$);
|
|
91
102
|
// may causes weird looking
|
|
92
103
|
/*if(this.optionsMenu.length<2) {
|
|
93
104
|
this.optionsAlways = this.optionsAlways.concat(this.optionsMenu);
|
|
@@ -95,7 +106,7 @@ export class ActionbarComponent {
|
|
|
95
106
|
}*/
|
|
96
107
|
}
|
|
97
108
|
getNumberOptions() {
|
|
98
|
-
if (window.innerWidth <
|
|
109
|
+
if (window.innerWidth < this.mobileBreakpoint) {
|
|
99
110
|
return this.numberOfAlwaysVisibleOptionsMobile;
|
|
100
111
|
}
|
|
101
112
|
return this.numberOfAlwaysVisibleOptions;
|
|
@@ -142,17 +153,17 @@ export class ActionbarComponent {
|
|
|
142
153
|
return filtered;
|
|
143
154
|
}
|
|
144
155
|
canShowDropdown() {
|
|
145
|
-
if (!this.optionsMenu.length) {
|
|
156
|
+
if (!this.optionsMenu$.value.length) {
|
|
146
157
|
return false;
|
|
147
158
|
}
|
|
148
|
-
return this.optionsMenu.filter((o) => o.isEnabled).length > 0;
|
|
159
|
+
return this.optionsMenu$.value.filter((o) => o.isEnabled).length > 0;
|
|
149
160
|
}
|
|
150
161
|
shouldHighlight(optionIndex, option) {
|
|
151
162
|
switch (this.highlight) {
|
|
152
163
|
case 'first':
|
|
153
164
|
return optionIndex === 0;
|
|
154
165
|
case 'last':
|
|
155
|
-
return optionIndex === this.optionsAlways.length - 1;
|
|
166
|
+
return optionIndex === this.optionsAlways$.value.length - 1;
|
|
156
167
|
case 'manual':
|
|
157
168
|
return option.isPrimary;
|
|
158
169
|
}
|
|
@@ -161,11 +172,11 @@ export class ActionbarComponent {
|
|
|
161
172
|
this.invalidate();
|
|
162
173
|
}
|
|
163
174
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: ActionbarComponent, deps: [{ token: i1.UIService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
164
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: ActionbarComponent, selector: "es-actionbar", inputs: { numberOfAlwaysVisibleOptions: "numberOfAlwaysVisibleOptions", numberOfAlwaysVisibleOptionsMobile: "numberOfAlwaysVisibleOptionsMobile", appearance: "appearance", dropdownPosition: "dropdownPosition", backgroundType: "backgroundType", style: "style", highlight: "highlight", showDisabled: "showDisabled", options: "options" }, usesOnChanges: true, ngImport: i0, template: "<es-dropdown\n #dropdownRef\n [options]=\"optionsMenu\"\n [showDisabled]=\"showDisabled\"\n [position]=\"dropdownPosition\"\n></es-dropdown>\n<div\n class=\"actionbar\"\n [class.actionbar-all-flat]=\"style === 'flat'\"\n [class.actionbar-background-dark]=\"backgroundType === 'dark'\"\n [class.actionbar-background-primary]=\"backgroundType === 'primary'\"\n [class.actionbar-round]=\"appearance === 'round'\"\n [class.actionbar-icon-button]=\"appearance === 'icon-button'\"\n>\n <ng-container *ngFor=\"let option of optionsAlways; let i = index\">\n <button\n *ngIf=\"shouldHighlight(i, option)\"\n mat-flat-button\n color=\"primary\"\n [disabled]=\"!option.isEnabled\"\n [class.display-none]=\"!option.isEnabled && !showDisabled\"\n matTooltip=\"{{ option | optionTooltip }}\"\n [attr.aria-label]=\"option.name | translate\"\n (click)=\"click(option)\"\n >\n <i [esIcon]=\"option.icon\"></i>\n <span class=\"action-always-caption\" *ngIf=\"option.showName && appearance === 'button'\">\n {{ option.name | translate }}</span\n >\n </button>\n <button\n *ngIf=\"!shouldHighlight(i, option)\"\n mat-button\n color=\"primary\"\n [disabled]=\"!option.isEnabled\"\n [class.display-none]=\"!option.isEnabled && !showDisabled\"\n matTooltip=\"{{ option | optionTooltip }}\"\n [attr.aria-label]=\"option.name | translate\"\n (click)=\"click(option)\"\n >\n <i [esIcon]=\"option.icon\"></i>\n <span class=\"action-always-caption\" *ngIf=\"option.showName && appearance === 'button'\">\n {{ option.name | translate }}</span\n >\n </button>\n </ng-container>\n <button\n mat-button\n color=\"primary\"\n class=\"more\"\n [attr.aria-label]=\"'OPTIONS.SHOW_ALL_OPTIONS' | translate\"\n [matMenuTriggerFor]=\"dropdownRef.menu\"\n *ngIf=\"canShowDropdown()\"\n data-test=\"more-actions-button\"\n >\n <i esIcon=\"more_vert\" [aria]=\"false\"></i>\n </button>\n <div\n *ngIf=\"optionsToggle.length\"\n class=\"actionToggle\"\n [class.actionToggleDivider]=\"optionsAlways.length\"\n >\n <button\n *ngFor=\"let option of optionsToggle\"\n mat-icon-button\n matTooltip=\"{{ option.name | translate }}\"\n [attr.aria-label]=\"option.name | translate\"\n (click)=\"click(option)\"\n [class.disabled]=\"!option.isEnabled\"\n attr.data-test=\"toggle-{{ option.name }}\"\n >\n <i [esIcon]=\"option.icon\" [aria]=\"false\"></i>\n </button>\n </div>\n</div>\n", styles: [".actionbar{display:flex;align-items:center;gap:10px}.actionToggle>button{color:var(--textLight)}button{min-width:unset}.light{color:#fff;background:transparent}.disabled{pointer-events:all}.light a{color:#fff}.actionToggleDivider{padding-left:10px;border-left:1px solid #ddd}.more{color:var(--primary);background-color:transparent}.actionbar-background-dark .mat-button{color:rgb(var(--palette-foreground-text-dark))}.actionbar-background-dark .mat-button:disabled{color:rgba(var(--palette-foreground-text-dark),.75)}.actionbar-background-primary .
|
|
175
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: ActionbarComponent, selector: "es-actionbar", inputs: { numberOfAlwaysVisibleOptions: "numberOfAlwaysVisibleOptions", numberOfAlwaysVisibleOptionsMobile: "numberOfAlwaysVisibleOptionsMobile", appearance: "appearance", dropdownPosition: "dropdownPosition", backgroundType: "backgroundType", style: "style", highlight: "highlight", showDisabled: "showDisabled", tooltipPosition: "tooltipPosition", options: "options", mobileBreakpoint: "mobileBreakpoint" }, usesOnChanges: true, ngImport: i0, template: "<es-dropdown\n #dropdownRef\n [options]=\"optionsMenu$ | async\"\n [showDisabled]=\"showDisabled\"\n [position]=\"dropdownPosition\"\n></es-dropdown>\n<div\n class=\"actionbar\"\n [class.actionbar-all-flat]=\"style === 'flat'\"\n [class.actionbar-background-dark]=\"backgroundType === 'dark'\"\n [class.actionbar-background-primary]=\"backgroundType === 'primary'\"\n [class.actionbar-round]=\"appearance === 'round'\"\n [class.actionbar-icon-button]=\"appearance === 'icon-button'\"\n>\n <ng-container *ngFor=\"let option of optionsAlways$ | async; let i = index\">\n <button\n *ngIf=\"shouldHighlight(i, option)\"\n mat-flat-button\n color=\"primary\"\n [disabled]=\"!option.isEnabled\"\n [class.display-none]=\"!option.isEnabled && !showDisabled\"\n matTooltip=\"{{ option | optionTooltip | async }}\"\n [matTooltipPosition]=\"tooltipPosition\"\n [attr.aria-label]=\"option.ariaLabel || option.name | translate\"\n (click)=\"click(option)\"\n >\n <i [esIcon]=\"option.icon\"></i>\n <span class=\"action-always-caption\" *ngIf=\"option.showName && appearance === 'button'\">\n {{ option.name | translate }}</span\n >\n </button>\n <button\n *ngIf=\"!shouldHighlight(i, option)\"\n mat-button\n color=\"primary\"\n [disabled]=\"!option.isEnabled\"\n [class.display-none]=\"!option.isEnabled && !showDisabled\"\n matTooltip=\"{{ option | optionTooltip | async }}\"\n [matTooltipPosition]=\"tooltipPosition\"\n [attr.aria-label]=\"option.ariaLabel || option.name | translate\"\n (click)=\"click(option)\"\n >\n <i [esIcon]=\"option.icon\"></i>\n <span class=\"action-always-caption\" *ngIf=\"option.showName && appearance === 'button'\">\n {{ option.name | translate }}</span\n >\n </button>\n </ng-container>\n <button\n mat-button\n color=\"primary\"\n class=\"more\"\n [attr.aria-label]=\"'OPTIONS.SHOW_ALL_OPTIONS' | translate\"\n [matMenuTriggerFor]=\"dropdownRef.menu\"\n *ngIf=\"canShowDropdown()\"\n data-test=\"more-actions-button\"\n >\n <i esIcon=\"more_vert\" [aria]=\"false\"></i>\n </button>\n <div\n *ngIf=\"optionsToggle.length\"\n class=\"actionToggle\"\n [class.actionToggleDivider]=\"(optionsAlways$ | async).length\"\n >\n <button\n *ngFor=\"let option of optionsToggle\"\n mat-icon-button\n matTooltip=\"{{ option.name | translate }}\"\n [attr.aria-label]=\"option.ariaLabel || option.name | translate\"\n (click)=\"click(option)\"\n [class.disabled]=\"!option.isEnabled\"\n attr.data-test=\"toggle-{{ option.name }}\"\n >\n <i [esIcon]=\"option.icon\" [aria]=\"false\"></i>\n </button>\n </div>\n</div>\n", styles: [".actionbar{display:flex;align-items:center;gap:10px}.actionToggle>button{color:var(--textLight)}button{min-width:unset}.light{color:#fff;background:transparent}.disabled{pointer-events:all}.light a{color:#fff}.actionToggleDivider{padding-left:10px;border-left:1px solid #ddd}.more{color:var(--primary);background-color:transparent}.actionbar-background-dark .mat-button{color:rgb(var(--palette-foreground-text-dark))}.actionbar-background-dark .mat-button:disabled{color:rgba(var(--palette-foreground-text-dark),.75)}.actionbar-background-primary .mdc-button{color:rgb(var(--palette-foreground-text-dark))}.actionbar-background-primary .mat-mdc-unelevated-button{background-color:#fff;color:var(--primary)}.actionbar-background-primary .mat-mdc-unelevated-button:disabled{color:#00000080;background-color:#eee}.actionbar-round button{width:45px;height:45px;justify-content:center}.actionbar-round button{border-radius:50%;box-shadow:0 0 5px #0000004d}.actionbar-round.actionbar-background-primary .mat-button{background-color:#fff;color:var(--primary)}.actionbar-round.actionbar-all-flat button{background:white;color:var(--primary)!important}.actionbar-round.actionbar-all-flat button:disabled{color:var(--textLight)!important}.actionbar-round .more,.actionbar-round .actionAlways{background:white;color:var(--primary);display:flex;width:45px;height:45px;line-height:45px;text-align:center;align-items:center}.actionbar-round .more .edu-icons,.actionbar-round .more .material-icons,.actionbar-round .actionAlways .edu-icons,.actionbar-round .actionAlways .material-icons{position:relative;font-size:24px}.actionbar-round .more span,.actionbar-round .actionAlways span{display:none}.actionbar-round .action-always .edu-icons,.actionbar-round .action-always .material-icons{right:4px!important}@media screen and (max-width: calc(var(--mobileWidth) + var(--mobileStage) * 4)){.action-always{padding:0 1rem}.action-always-caption{display:none}.mat-flat-button{padding:5px}}.actionbar-icon-button .action-always{padding:0 1rem}.actionbar-icon-button .action-always-caption{display:none}.actionbar-icon-button .mat-flat-button{padding:5px}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i7.DropdownComponent, selector: "es-dropdown", inputs: ["position", "options", "callbackObject", "showDisabled", "menuClass"] }, { kind: "directive", type: i8.IconDirective, selector: "i[esIcon], i.material-icons", inputs: ["altText", "aria", "esIcon"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "pipe", type: i9.OptionTooltipPipe, name: "optionTooltip" }], animations: [trigger('openOverlay', UIAnimation.openOverlay(UIAnimation.ANIMATION_TIME_FAST))] }); }
|
|
165
176
|
}
|
|
166
177
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: ActionbarComponent, decorators: [{
|
|
167
178
|
type: Component,
|
|
168
|
-
args: [{ selector: 'es-actionbar', animations: [trigger('openOverlay', UIAnimation.openOverlay(UIAnimation.ANIMATION_TIME_FAST))], template: "<es-dropdown\n #dropdownRef\n [options]=\"optionsMenu\"\n [showDisabled]=\"showDisabled\"\n [position]=\"dropdownPosition\"\n></es-dropdown>\n<div\n class=\"actionbar\"\n [class.actionbar-all-flat]=\"style === 'flat'\"\n [class.actionbar-background-dark]=\"backgroundType === 'dark'\"\n [class.actionbar-background-primary]=\"backgroundType === 'primary'\"\n [class.actionbar-round]=\"appearance === 'round'\"\n [class.actionbar-icon-button]=\"appearance === 'icon-button'\"\n>\n <ng-container *ngFor=\"let option of optionsAlways; let i = index\">\n <button\n *ngIf=\"shouldHighlight(i, option)\"\n mat-flat-button\n color=\"primary\"\n [disabled]=\"!option.isEnabled\"\n [class.display-none]=\"!option.isEnabled && !showDisabled\"\n matTooltip=\"{{ option | optionTooltip }}\"\n [attr.aria-label]=\"option.name | translate\"\n (click)=\"click(option)\"\n >\n <i [esIcon]=\"option.icon\"></i>\n <span class=\"action-always-caption\" *ngIf=\"option.showName && appearance === 'button'\">\n {{ option.name | translate }}</span\n >\n </button>\n <button\n *ngIf=\"!shouldHighlight(i, option)\"\n mat-button\n color=\"primary\"\n [disabled]=\"!option.isEnabled\"\n [class.display-none]=\"!option.isEnabled && !showDisabled\"\n matTooltip=\"{{ option | optionTooltip }}\"\n [attr.aria-label]=\"option.name | translate\"\n (click)=\"click(option)\"\n >\n <i [esIcon]=\"option.icon\"></i>\n <span class=\"action-always-caption\" *ngIf=\"option.showName && appearance === 'button'\">\n {{ option.name | translate }}</span\n >\n </button>\n </ng-container>\n <button\n mat-button\n color=\"primary\"\n class=\"more\"\n [attr.aria-label]=\"'OPTIONS.SHOW_ALL_OPTIONS' | translate\"\n [matMenuTriggerFor]=\"dropdownRef.menu\"\n *ngIf=\"canShowDropdown()\"\n data-test=\"more-actions-button\"\n >\n <i esIcon=\"more_vert\" [aria]=\"false\"></i>\n </button>\n <div\n *ngIf=\"optionsToggle.length\"\n class=\"actionToggle\"\n [class.actionToggleDivider]=\"optionsAlways.length\"\n >\n <button\n *ngFor=\"let option of optionsToggle\"\n mat-icon-button\n matTooltip=\"{{ option.name | translate }}\"\n [attr.aria-label]=\"option.name | translate\"\n (click)=\"click(option)\"\n [class.disabled]=\"!option.isEnabled\"\n attr.data-test=\"toggle-{{ option.name }}\"\n >\n <i [esIcon]=\"option.icon\" [aria]=\"false\"></i>\n </button>\n </div>\n</div>\n", styles: [".actionbar{display:flex;align-items:center;gap:10px}.actionToggle>button{color:var(--textLight)}button{min-width:unset}.light{color:#fff;background:transparent}.disabled{pointer-events:all}.light a{color:#fff}.actionToggleDivider{padding-left:10px;border-left:1px solid #ddd}.more{color:var(--primary);background-color:transparent}.actionbar-background-dark .mat-button{color:rgb(var(--palette-foreground-text-dark))}.actionbar-background-dark .mat-button:disabled{color:rgba(var(--palette-foreground-text-dark),.75)}.actionbar-background-primary .
|
|
179
|
+
args: [{ selector: 'es-actionbar', animations: [trigger('openOverlay', UIAnimation.openOverlay(UIAnimation.ANIMATION_TIME_FAST))], template: "<es-dropdown\n #dropdownRef\n [options]=\"optionsMenu$ | async\"\n [showDisabled]=\"showDisabled\"\n [position]=\"dropdownPosition\"\n></es-dropdown>\n<div\n class=\"actionbar\"\n [class.actionbar-all-flat]=\"style === 'flat'\"\n [class.actionbar-background-dark]=\"backgroundType === 'dark'\"\n [class.actionbar-background-primary]=\"backgroundType === 'primary'\"\n [class.actionbar-round]=\"appearance === 'round'\"\n [class.actionbar-icon-button]=\"appearance === 'icon-button'\"\n>\n <ng-container *ngFor=\"let option of optionsAlways$ | async; let i = index\">\n <button\n *ngIf=\"shouldHighlight(i, option)\"\n mat-flat-button\n color=\"primary\"\n [disabled]=\"!option.isEnabled\"\n [class.display-none]=\"!option.isEnabled && !showDisabled\"\n matTooltip=\"{{ option | optionTooltip | async }}\"\n [matTooltipPosition]=\"tooltipPosition\"\n [attr.aria-label]=\"option.ariaLabel || option.name | translate\"\n (click)=\"click(option)\"\n >\n <i [esIcon]=\"option.icon\"></i>\n <span class=\"action-always-caption\" *ngIf=\"option.showName && appearance === 'button'\">\n {{ option.name | translate }}</span\n >\n </button>\n <button\n *ngIf=\"!shouldHighlight(i, option)\"\n mat-button\n color=\"primary\"\n [disabled]=\"!option.isEnabled\"\n [class.display-none]=\"!option.isEnabled && !showDisabled\"\n matTooltip=\"{{ option | optionTooltip | async }}\"\n [matTooltipPosition]=\"tooltipPosition\"\n [attr.aria-label]=\"option.ariaLabel || option.name | translate\"\n (click)=\"click(option)\"\n >\n <i [esIcon]=\"option.icon\"></i>\n <span class=\"action-always-caption\" *ngIf=\"option.showName && appearance === 'button'\">\n {{ option.name | translate }}</span\n >\n </button>\n </ng-container>\n <button\n mat-button\n color=\"primary\"\n class=\"more\"\n [attr.aria-label]=\"'OPTIONS.SHOW_ALL_OPTIONS' | translate\"\n [matMenuTriggerFor]=\"dropdownRef.menu\"\n *ngIf=\"canShowDropdown()\"\n data-test=\"more-actions-button\"\n >\n <i esIcon=\"more_vert\" [aria]=\"false\"></i>\n </button>\n <div\n *ngIf=\"optionsToggle.length\"\n class=\"actionToggle\"\n [class.actionToggleDivider]=\"(optionsAlways$ | async).length\"\n >\n <button\n *ngFor=\"let option of optionsToggle\"\n mat-icon-button\n matTooltip=\"{{ option.name | translate }}\"\n [attr.aria-label]=\"option.ariaLabel || option.name | translate\"\n (click)=\"click(option)\"\n [class.disabled]=\"!option.isEnabled\"\n attr.data-test=\"toggle-{{ option.name }}\"\n >\n <i [esIcon]=\"option.icon\" [aria]=\"false\"></i>\n </button>\n </div>\n</div>\n", styles: [".actionbar{display:flex;align-items:center;gap:10px}.actionToggle>button{color:var(--textLight)}button{min-width:unset}.light{color:#fff;background:transparent}.disabled{pointer-events:all}.light a{color:#fff}.actionToggleDivider{padding-left:10px;border-left:1px solid #ddd}.more{color:var(--primary);background-color:transparent}.actionbar-background-dark .mat-button{color:rgb(var(--palette-foreground-text-dark))}.actionbar-background-dark .mat-button:disabled{color:rgba(var(--palette-foreground-text-dark),.75)}.actionbar-background-primary .mdc-button{color:rgb(var(--palette-foreground-text-dark))}.actionbar-background-primary .mat-mdc-unelevated-button{background-color:#fff;color:var(--primary)}.actionbar-background-primary .mat-mdc-unelevated-button:disabled{color:#00000080;background-color:#eee}.actionbar-round button{width:45px;height:45px;justify-content:center}.actionbar-round button{border-radius:50%;box-shadow:0 0 5px #0000004d}.actionbar-round.actionbar-background-primary .mat-button{background-color:#fff;color:var(--primary)}.actionbar-round.actionbar-all-flat button{background:white;color:var(--primary)!important}.actionbar-round.actionbar-all-flat button:disabled{color:var(--textLight)!important}.actionbar-round .more,.actionbar-round .actionAlways{background:white;color:var(--primary);display:flex;width:45px;height:45px;line-height:45px;text-align:center;align-items:center}.actionbar-round .more .edu-icons,.actionbar-round .more .material-icons,.actionbar-round .actionAlways .edu-icons,.actionbar-round .actionAlways .material-icons{position:relative;font-size:24px}.actionbar-round .more span,.actionbar-round .actionAlways span{display:none}.actionbar-round .action-always .edu-icons,.actionbar-round .action-always .material-icons{right:4px!important}@media screen and (max-width: calc(var(--mobileWidth) + var(--mobileStage) * 4)){.action-always{padding:0 1rem}.action-always-caption{display:none}.mat-flat-button{padding:5px}}.actionbar-icon-button .action-always{padding:0 1rem}.actionbar-icon-button .action-always-caption{display:none}.actionbar-icon-button .mat-flat-button{padding:5px}\n"] }]
|
|
169
180
|
}], ctorParameters: function () { return [{ type: i1.UIService }, { type: i2.TranslateService }]; }, propDecorators: { numberOfAlwaysVisibleOptions: [{
|
|
170
181
|
type: Input
|
|
171
182
|
}], numberOfAlwaysVisibleOptionsMobile: [{
|
|
@@ -182,7 +193,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
|
|
|
182
193
|
type: Input
|
|
183
194
|
}], showDisabled: [{
|
|
184
195
|
type: Input
|
|
196
|
+
}], tooltipPosition: [{
|
|
197
|
+
type: Input
|
|
185
198
|
}], options: [{
|
|
186
199
|
type: Input
|
|
200
|
+
}], mobileBreakpoint: [{
|
|
201
|
+
type: Input
|
|
187
202
|
}] } });
|
|
188
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VkdS1zaGFyaW5nLXVpL3NyYy9saWIvYWN0aW9uYmFyL2FjdGlvbmJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL2FjdGlvbmJhci9hY3Rpb25iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUUzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFReEM7O0dBRUc7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO0lBMkMzQjs7T0FFRztJQUNILElBQWEsT0FBTyxDQUFDLE9BQXFCO1FBQ3RDLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQU9ELFlBQW9CLFNBQW9CLEVBQVUsU0FBMkI7UUFBekQsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUFVLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBdkQ3RTs7OztXQUlHO1FBQ00saUNBQTRCLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLHVDQUFrQyxHQUFHLENBQUMsQ0FBQztRQUNoRDs7Ozs7Ozs7V0FRRztRQUNNLGVBQVUsR0FBdUMsUUFBUSxDQUFDO1FBQ25FOzs7V0FHRztRQUNNLHFCQUFnQixHQUFxQixNQUFNLENBQUM7UUFFckQ7O1dB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QUFFLENBQUM7SUFDdEIsQ0FBQzs4R0ExSlEsa0JBQWtCO2tHQUFsQixrQkFBa0IseVpDbEIvQixraEZBMkVBLGcxR0Q5RGdCLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7OzJGQUtyRixrQkFBa0I7a0JBVDlCLFNBQVM7K0JBQ0ksY0FBYyxjQUdaLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7K0hBV3JGLDRCQUE0QjtzQkFBcEMsS0FBSztnQkFDRyxrQ0FBa0M7c0JBQTFDLEtBQUs7Z0JBVUcsVUFBVTtzQkFBbEIsS0FBSztnQkFLRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBS0csY0FBYztzQkFBdEIsS0FBSztnQkFJRyxLQUFLO3NCQUFiLEtBQUs7Z0JBT0csU0FBUztzQkFBakIsS0FBSztnQkFJRyxZQUFZO3NCQUFwQixLQUFLO2dCQUlPLE9BQU87c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFVJQW5pbWF0aW9uIH0gZnJvbSAnLi4vdXRpbC91aS1hbmltYXRpb24nO1xuaW1wb3J0IHsgVUlDb25zdGFudHMgfSBmcm9tICcuLi91dGlsL3VpLWNvbnN0YW50cyc7XG5pbXBvcnQgeyBPcHRpb25JdGVtIH0gZnJvbSAnLi4vdHlwZXMvb3B0aW9uLWl0ZW0nO1xuaW1wb3J0IHsgVUlTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvdWkuc2VydmljZSc7XG5pbXBvcnQgeyBIZWxwZXIgfSBmcm9tICcuLi91dGlsL2hlbHBlcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXMtYWN0aW9uYmFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2FjdGlvbmJhci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJ2FjdGlvbmJhci5jb21wb25lbnQuc2NzcyddLFxuICAgIGFuaW1hdGlvbnM6IFt0cmlnZ2VyKCdvcGVuT3ZlcmxheScsIFVJQW5pbWF0aW9uLm9wZW5PdmVybGF5KFVJQW5pbWF0aW9uLkFOSU1BVElPTl9USU1FX0ZBU1QpKV0sXG59KVxuLyoqXG4gKiBUaGUgYWN0aW9uIGJhciBwcm92aWRlcyBzZXZlcmFsIGljb25zLCB1c3VhbGx5IGF0IHRoZSB0b3AgcmlnaHQsIHdpdGggYWN0aW9ucyBmb3IgYSBjdXJyZW50IGNvbnRleHRcbiAqL1xuZXhwb3J0IGNsYXNzIEFjdGlvbmJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgLyoqXG4gICAgICogVGhlIGFtb3VudCBvZiBvcHRpb25zIHdoaWNoIGFyZSBub3QgaGlkZGVuIGluc2lkZSBhbiBvdmVyZmxvdyBtZW51XG4gICAgICogKGRlZmF1bHQ6IGRlcGVuZGluZyBvbiBtb2JpbGUgKDEpIG9yIG5vdCAoMikpXG4gICAgICogQWxzbyB1c2UgbnVtYmVyT2ZBbHdheXNWaXNpYmxlT3B0aW9uc01vYmlsZSB0byBjb250cm9sIHRoZSBhbW91bnQgb2YgbW9iaWxlIG9wdGlvbnMgdmlzaWJsZVxuICAgICAqL1xuICAgIEBJbnB1dCgpIG51bWJlck9mQWx3YXlzVmlzaWJsZU9wdGlvbnMgPSAyO1xuICAgIEBJbnB1dCgpIG51bWJlck9mQWx3YXlzVmlzaWJsZU9wdGlvbnNNb2JpbGUgPSAxO1xuICAgIC8qKlxuICAgICAqIFZpc3VhbCBzdHlsZSBvZiB0aGUgYWN0aW9uYmFyXG4gICAgICpcbiAgICAgKiBWYWx1ZXM6XG4gICAgICogIC0gJ2J1dHRvbic6IG1hdGVyaWFsIGJ1dHRvbnMgd2l0aCBpY29ucyBhbmQgdGV4dCBvbiBtZWRpdW0gdG8gbGFyZ2Ugc2NyZWVuc1xuICAgICAqICAtICdpY29uLWJ1dHRvbic6IG1hdGVyaWFsIGJ1dHRvbnMgd2l0aG91dCB0ZXh0XG4gICAgICogIC0gJ3JvdW5kJzogY2lyY3VsYXIgYnV0dG9ucyB3aXRob3V0IHRleHRcbiAgICAgKiBAZGVmYXVsdCAnYnV0dG9uJ1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGFwcGVhcmFuY2U6ICdyb3VuZCcgfCAnYnV0dG9uJyB8ICdpY29uLWJ1dHRvbicgPSAnYnV0dG9uJztcbiAgICAvKipcbiAgICAgKiBkcm9wZG93blBvc2l0aW9uIGlzIGZvciBwb3NpdGlvbiBvZiBkcm9wZG93biAoZGVmYXVsdCA9IGxlZnQpXG4gICAgICogVmFsdWVzICdsZWZ0JyBvciAncmlnaHQnXG4gICAgICovXG4gICAgQElucHV0KCkgZHJvcGRvd25Qb3NpdGlvbjogJ2xlZnQnIHwgJ3JpZ2h0JyA9ICdsZWZ0JztcblxuICAgIC8qKlxuICAgICAqIGJhY2tncm91bmRUeXBlIGZvciBjb2xvciBtYXRjaGluZywgZWl0aGVyIGJyaWdodCwgZGFyayBvciBwcmltYXJ5XG4gICAgICovXG4gICAgQElucHV0KCkgYmFja2dyb3VuZFR5cGU6ICdicmlnaHQnIHwgJ2RhcmsnIHwgJ3ByaW1hcnknID0gJ2JyaWdodCc7XG4gICAgLyoqXG4gICAgICogU3R5bGUsIGN1cnJlbnRseSBkZWZhdWx0IG9yICdmbGF0JyBpZiBhbGwgYWx3YXlzIHZpc2libGUgaWNvbnMgc2hvdWxkIGdldCBhIGZsYXQgbG9va1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHN0eWxlOiAnZGVmYXVsdCcgfCAnZmxhdCcgPSAnZGVmYXVsdCc7XG4gICAgLyoqXG4gICAgICogSGlnaGxpZ2h0IG9uZSBvciBtb3JlIG9mIHRoZSBhbHdheXMtdmlzaWJsZSBidXR0b25zIGFzIHByaW1hcnkgYWN0aW9uLlxuICAgICAqXG4gICAgICogLSBgZmlyc3RgLCBgbGFzdGA6IFRoZSBmaXJzdCAvIGxhc3Qgb2YgYG9wdGlvbnNBbHdheXNgIGJ5IG9yZGVyLlxuICAgICAqIC0gYG1hbnVhbGA6IEhpZ2hsaWdodCBhbGwgb3B0aW9ucyB0aGF0IHNldCBgaXNQcmltYXJ5ID0gdHJ1ZWAuXG4gICAgICovXG4gICAgQElucHV0KCkgaGlnaGxpZ2h0OiAnZmlyc3QnIHwgJ2xhc3QnIHwgJ21hbnVhbCcgPSAnZmlyc3QnO1xuICAgIC8qKlxuICAgICAqIFNob3VsZCBkaXNhYmxlZCAoXCJncmV5ZWQgb3V0XCIpIG9wdGlvbnMgYmUgc2hvd24gb3IgaGlkZGVuP1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHNob3dEaXNhYmxlZCA9IHRydWU7XG4gICAgLyoqXG4gICAgICogU2V0IHRoZSBvcHRpb25zLCBzZWUgQE9wdGlvbkl0ZW1cbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZXQgb3B0aW9ucyhvcHRpb25zOiBPcHRpb25JdGVtW10pIHtcbiAgICAgICAgdGhpcy5vcHRpb25zSW4gPSBvcHRpb25zO1xuICAgICAgICB0aGlzLnByZXBhcmVPcHRpb25zKG9wdGlvbnMpO1xuICAgIH1cblxuICAgIG9wdGlvbnNJbjogT3B0aW9uSXRlbVtdID0gW107XG4gICAgb3B0aW9uc0Fsd2F5czogT3B0aW9uSXRlbVtdID0gW107XG4gICAgb3B0aW9uc01lbnU6IE9wdGlvbkl0ZW1bXSA9IFtdO1xuICAgIG9wdGlvbnNUb2dnbGU6IE9wdGlvbkl0ZW1bXSA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB1aVNlcnZpY2U6IFVJU2VydmljZSwgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHt9XG5cbiAgICBwcml2YXRlIHByZXBhcmVPcHRpb25zKG9wdGlvbnM6IE9wdGlvbkl0ZW1bXSkge1xuICAgICAgICBvcHRpb25zID0gdGhpcy51aVNlcnZpY2UuZmlsdGVyVmFsaWRPcHRpb25zKEhlbHBlci5kZWVwQ29weUFycmF5KG9wdGlvbnMpKTtcbiAgICAgICAgaWYgKG9wdGlvbnMgPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zQWx3YXlzID0gW107XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnNNZW51ID0gW107XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vcHRpb25zVG9nZ2xlID0gdGhpcy51aVNlcnZpY2UuZmlsdGVyVG9nZ2xlT3B0aW9ucyhvcHRpb25zLCB0cnVlKTtcbiAgICAgICAgdGhpcy5vcHRpb25zQWx3YXlzID0gdGhpcy5nZXRBY3Rpb25PcHRpb25zKFxuICAgICAgICAgICAgdGhpcy51aVNlcnZpY2UuZmlsdGVyVG9nZ2xlT3B0aW9ucyhvcHRpb25zLCBmYWxzZSksXG4gICAgICAgICkuc2xpY2UoMCwgdGhpcy5nZXROdW1iZXJPcHRpb25zKCkpO1xuICAgICAgICBpZiAoIXRoaXMub3B0aW9uc0Fsd2F5cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMub3B0aW9uc0Fsd2F5cyA9IHRoaXMudWlTZXJ2aWNlXG4gICAgICAgICAgICAgICAgLmZpbHRlclRvZ2dsZU9wdGlvbnMob3B0aW9ucywgZmFsc2UpXG4gICAgICAgICAgICAgICAgLnNsaWNlKDAsIHRoaXMuZ2V0TnVtYmVyT3B0aW9ucygpKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9wdGlvbnNNZW51ID0gdGhpcy5oaWRlQWN0aW9uT3B0aW9ucyhcbiAgICAgICAgICAgIHRoaXMudWlTZXJ2aWNlLmZpbHRlclRvZ2dsZU9wdGlvbnMob3B0aW9ucywgZmFsc2UpLFxuICAgICAgICAgICAgdGhpcy5vcHRpb25zQWx3YXlzLFxuICAgICAgICApO1xuICAgICAgICAvLyBtYXkgY2F1c2VzIHdlaXJkIGxvb2tpbmdcbiAgICAgICAgLyppZih0aGlzLm9wdGlvbnNNZW51Lmxlbmd0aDwyKSB7XG4gICAgICB0aGlzLm9wdGlvbnNBbHdheXMgPSB0aGlzLm9wdGlvbnNBbHdheXMuY29uY2F0KHRoaXMub3B0aW9uc01lbnUpO1xuICAgICAgdGhpcy5vcHRpb25zTWVudSA9IFtdO1xuICAgIH0qL1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXROdW1iZXJPcHRpb25zKCkge1xuICAgICAgICBpZiAod2luZG93LmlubmVyV2lkdGggPCBVSUNvbnN0YW50cy5NT0JJTEVfV0lEVEgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm51bWJlck9mQWx3YXlzVmlzaWJsZU9wdGlvbnNNb2JpbGU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMubnVtYmVyT2ZBbHdheXNWaXNpYmxlT3B0aW9ucztcbiAgICB9XG5cbiAgICBjbGljayhvcHRpb246IE9wdGlvbkl0ZW0pIHtcbiAgICAgICAgaWYgKCFvcHRpb24uaXNFbmFibGVkKSB7XG4gICAgICAgICAgICBpZiAob3B0aW9uLmRpc2FibGVkQ2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICBvcHRpb24uZGlzYWJsZWRDYWxsYmFjaygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIG9wdGlvbi5jYWxsYmFjaygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0QWN0aW9uT3B0aW9ucyhvcHRpb25zOiBPcHRpb25JdGVtW10pIHtcbiAgICAgICAgY29uc3QgcmVzdWx0OiBPcHRpb25JdGVtW10gPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBvcHRpb24gb2Ygb3B0aW9ucykge1xuICAgICAgICAgICAgaWYgKG9wdGlvbi5zaG93QXNBY3Rpb24pIHJlc3VsdC5wdXNoKG9wdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhpZGVBY3Rpb25PcHRpb25zKG9wdGlvbnM6IE9wdGlvbkl0ZW1bXSwgb3B0aW9uc0Fsd2F5czogT3B0aW9uSXRlbVtdKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdDogT3B0aW9uSXRlbVtdID0gW107XG4gICAgICAgIGZvciAoY29uc3Qgb3B0aW9uIG9mIG9wdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChvcHRpb25zQWx3YXlzLmluZGV4T2Yob3B0aW9uKSA9PT0gLTEpIHJlc3VsdC5wdXNoKG9wdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbnZhbGlkYXRlIC8gcmVmcmVzaGVzIGFsbCBvcHRpb25zIGJhc2VkIG9uIHRoZWlyIGN1cnJlbnQgY2FsbGJhY2tzXG4gICAgICovXG4gICAgcHVibGljIGludmFsaWRhdGUoKSB7XG4gICAgICAgIHRoaXMucHJlcGFyZU9wdGlvbnModGhpcy5vcHRpb25zSW4pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZmlsdGVyRGlzYWJsZWQob3B0aW9uczogT3B0aW9uSXRlbVtdKSB7XG4gICAgICAgIGlmIChvcHRpb25zID09IG51bGwpIHJldHVybiBudWxsO1xuICAgICAgICBjb25zdCBmaWx0ZXJlZCA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IG9wdGlvbiBvZiBvcHRpb25zKSB7XG4gICAgICAgICAgICBpZiAob3B0aW9uLmlzRW5hYmxlZCB8fCB0aGlzLnNob3dEaXNhYmxlZCkgZmlsdGVyZWQucHVzaChvcHRpb24pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmaWx0ZXJlZDtcbiAgICB9XG5cbiAgICBjYW5TaG93RHJvcGRvd24oKSB7XG4gICAgICAgIGlmICghdGhpcy5vcHRpb25zTWVudS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zTWVudS5maWx0ZXIoKG8pID0+IG8uaXNFbmFibGVkKS5sZW5ndGggPiAwO1xuICAgIH1cblxuICAgIHNob3VsZEhpZ2hsaWdodChvcHRpb25JbmRleDogbnVtYmVyLCBvcHRpb246IE9wdGlvbkl0ZW0pOiBib29sZWFuIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLmhpZ2hsaWdodCkge1xuICAgICAgICAgICAgY2FzZSAnZmlyc3QnOlxuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25JbmRleCA9PT0gMDtcbiAgICAgICAgICAgIGNhc2UgJ2xhc3QnOlxuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25JbmRleCA9PT0gdGhpcy5vcHRpb25zQWx3YXlzLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICBjYXNlICdtYW51YWwnOlxuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb24uaXNQcmltYXJ5O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICB0aGlzLmludmFsaWRhdGUoKTtcbiAgICB9XG59XG4iLCI8ZXMtZHJvcGRvd25cbiAgI2Ryb3Bkb3duUmVmXG4gIFtvcHRpb25zXT1cIm9wdGlvbnNNZW51XCJcbiAgW3Nob3dEaXNhYmxlZF09XCJzaG93RGlzYWJsZWRcIlxuICBbcG9zaXRpb25dPVwiZHJvcGRvd25Qb3NpdGlvblwiXG4+PC9lcy1kcm9wZG93bj5cbjxkaXZcbiAgY2xhc3M9XCJhY3Rpb25iYXJcIlxuICBbY2xhc3MuYWN0aW9uYmFyLWFsbC1mbGF0XT1cInN0eWxlID09PSAnZmxhdCdcIlxuICBbY2xhc3MuYWN0aW9uYmFyLWJhY2tncm91bmQtZGFya109XCJiYWNrZ3JvdW5kVHlwZSA9PT0gJ2RhcmsnXCJcbiAgW2NsYXNzLmFjdGlvbmJhci1iYWNrZ3JvdW5kLXByaW1hcnldPVwiYmFja2dyb3VuZFR5cGUgPT09ICdwcmltYXJ5J1wiXG4gIFtjbGFzcy5hY3Rpb25iYXItcm91bmRdPVwiYXBwZWFyYW5jZSA9PT0gJ3JvdW5kJ1wiXG4gIFtjbGFzcy5hY3Rpb25iYXItaWNvbi1idXR0b25dPVwiYXBwZWFyYW5jZSA9PT0gJ2ljb24tYnV0dG9uJ1wiXG4+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zQWx3YXlzOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgPGJ1dHRvblxuICAgICAgKm5nSWY9XCJzaG91bGRIaWdobGlnaHQoaSwgb3B0aW9uKVwiXG4gICAgICBtYXQtZmxhdC1idXR0b25cbiAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICBbZGlzYWJsZWRdPVwiIW9wdGlvbi5pc0VuYWJsZWRcIlxuICAgICAgW2NsYXNzLmRpc3BsYXktbm9uZV09XCIhb3B0aW9uLmlzRW5hYmxlZCAmJiAhc2hvd0Rpc2FibGVkXCJcbiAgICAgIG1hdFRvb2x0aXA9XCJ7eyBvcHRpb24gfCBvcHRpb25Ub29sdGlwIH19XCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwib3B0aW9uLm5hbWUgfCB0cmFuc2xhdGVcIlxuICAgICAgKGNsaWNrKT1cImNsaWNrKG9wdGlvbilcIlxuICAgID5cbiAgICAgIDxpIFtlc0ljb25dPVwib3B0aW9uLmljb25cIj48L2k+XG4gICAgICA8c3BhbiBjbGFzcz1cImFjdGlvbi1hbHdheXMtY2FwdGlvblwiICpuZ0lmPVwib3B0aW9uLnNob3dOYW1lICYmIGFwcGVhcmFuY2UgPT09ICdidXR0b24nXCI+XG4gICAgICAgIHt7IG9wdGlvbi5uYW1lIHwgdHJhbnNsYXRlIH19PC9zcGFuXG4gICAgICA+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgKm5nSWY9XCIhc2hvdWxkSGlnaGxpZ2h0KGksIG9wdGlvbilcIlxuICAgICAgbWF0LWJ1dHRvblxuICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgIFtkaXNhYmxlZF09XCIhb3B0aW9uLmlzRW5hYmxlZFwiXG4gICAgICBbY2xhc3MuZGlzcGxheS1ub25lXT1cIiFvcHRpb24uaXNFbmFibGVkICYmICFzaG93RGlzYWJsZWRcIlxuICAgICAgbWF0VG9vbHRpcD1cInt7IG9wdGlvbiB8IG9wdGlvblRvb2x0aXAgfX1cIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJvcHRpb24ubmFtZSB8IHRyYW5zbGF0ZVwiXG4gICAgICAoY2xpY2spPVwiY2xpY2sob3B0aW9uKVwiXG4gICAgPlxuICAgICAgPGkgW2VzSWNvbl09XCJvcHRpb24uaWNvblwiPjwvaT5cbiAgICAgIDxzcGFuIGNsYXNzPVwiYWN0aW9uLWFsd2F5cy1jYXB0aW9uXCIgKm5nSWY9XCJvcHRpb24uc2hvd05hbWUgJiYgYXBwZWFyYW5jZSA9PT0gJ2J1dHRvbidcIj5cbiAgICAgICAge3sgb3B0aW9uLm5hbWUgfCB0cmFuc2xhdGUgfX08L3NwYW5cbiAgICAgID5cbiAgICA8L2J1dHRvbj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxidXR0b25cbiAgICBtYXQtYnV0dG9uXG4gICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICBjbGFzcz1cIm1vcmVcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ09QVElPTlMuU0hPV19BTExfT1BUSU9OUycgfCB0cmFuc2xhdGVcIlxuICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJkcm9wZG93blJlZi5tZW51XCJcbiAgICAqbmdJZj1cImNhblNob3dEcm9wZG93bigpXCJcbiAgICBkYXRhLXRlc3Q9XCJtb3JlLWFjdGlvbnMtYnV0dG9uXCJcbiAgPlxuICAgIDxpIGVzSWNvbj1cIm1vcmVfdmVydFwiIFthcmlhXT1cImZhbHNlXCI+PC9pPlxuICA8L2J1dHRvbj5cbiAgPGRpdlxuICAgICpuZ0lmPVwib3B0aW9uc1RvZ2dsZS5sZW5ndGhcIlxuICAgIGNsYXNzPVwiYWN0aW9uVG9nZ2xlXCJcbiAgICBbY2xhc3MuYWN0aW9uVG9nZ2xlRGl2aWRlcl09XCJvcHRpb25zQWx3YXlzLmxlbmd0aFwiXG4gID5cbiAgICA8YnV0dG9uXG4gICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNUb2dnbGVcIlxuICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICBtYXRUb29sdGlwPVwie3sgb3B0aW9uLm5hbWUgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJvcHRpb24ubmFtZSB8IHRyYW5zbGF0ZVwiXG4gICAgICAoY2xpY2spPVwiY2xpY2sob3B0aW9uKVwiXG4gICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIW9wdGlvbi5pc0VuYWJsZWRcIlxuICAgICAgYXR0ci5kYXRhLXRlc3Q9XCJ0b2dnbGUte3sgb3B0aW9uLm5hbWUgfX1cIlxuICAgID5cbiAgICAgIDxpIFtlc0ljb25dPVwib3B0aW9uLmljb25cIiBbYXJpYV09XCJmYWxzZVwiPjwvaT5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
203
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VkdS1zaGFyaW5nLXVpL3NyYy9saWIvYWN0aW9uYmFyL2FjdGlvbmJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL2FjdGlvbmJhci9hY3Rpb25iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFzQyxNQUFNLGVBQWUsQ0FBQztBQUVyRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7OztBQVF2Qzs7R0FFRztBQUNILE1BQU0sT0FBTyxrQkFBa0I7SUFpRDNCOztPQUVHO0lBQ0gsSUFBYSxPQUFPLENBQUMsT0FBcUI7UUFDdEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUM7UUFDekIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBV0QsWUFBb0IsU0FBb0IsRUFBVSxTQUEyQjtRQUF6RCxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFqRTdFOzs7O1dBSUc7UUFDTSxpQ0FBNEIsR0FBRyxDQUFDLENBQUM7UUFDakMsdUNBQWtDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hEOzs7Ozs7OztXQVFHO1FBQ00sZUFBVSxHQUF1QyxRQUFRLENBQUM7UUFDbkU7OztX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QUFLO2dCQUtPLE9BQU87c0JBQW5CLEtBQUs7Z0JBUUcsZ0JBQWdCO3NCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBPcHRpb25hbCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgVUlBbmltYXRpb24gfSBmcm9tICcuLi91dGlsL3VpLWFuaW1hdGlvbic7XG5pbXBvcnQgeyBVSUNvbnN0YW50cyB9IGZyb20gJy4uL3V0aWwvdWktY29uc3RhbnRzJztcbmltcG9ydCB7IE9wdGlvbkl0ZW0gfSBmcm9tICcuLi90eXBlcy9vcHRpb24taXRlbSc7XG5pbXBvcnQgeyBVSVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy91aS5zZXJ2aWNlJztcbmltcG9ydCB7IEhlbHBlciB9IGZyb20gJy4uL3V0aWwvaGVscGVyJztcbmltcG9ydCB7IFRvb2x0aXBQb3NpdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgT3B0aW9uc0hlbHBlckRhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvb3B0aW9ucy1oZWxwZXItZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2VzLWFjdGlvbmJhcicsXG4gICAgdGVtcGxhdGVVcmw6ICdhY3Rpb25iYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWydhY3Rpb25iYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBhbmltYXRpb25zOiBbdHJpZ2dlcignb3Blbk92ZXJsYXknLCBVSUFuaW1hdGlvbi5vcGVuT3ZlcmxheShVSUFuaW1hdGlvbi5BTklNQVRJT05fVElNRV9GQVNUKSldLFxufSlcbi8qKlxuICogVGhlIGFjdGlvbiBiYXIgcHJvdmlkZXMgc2V2ZXJhbCBpY29ucywgdXN1YWxseSBhdCB0aGUgdG9wIHJpZ2h0LCB3aXRoIGFjdGlvbnMgZm9yIGEgY3VycmVudCBjb250ZXh0XG4gKi9cbmV4cG9ydCBjbGFzcyBBY3Rpb25iYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIC8qKlxuICAgICAqIFRoZSBhbW91bnQgb2Ygb3B0aW9ucyB3aGljaCBhcmUgbm90IGhpZGRlbiBpbnNpZGUgYW4gb3ZlcmZsb3cgbWVudVxuICAgICAqIChkZWZhdWx0OiBkZXBlbmRpbmcgb24gbW9iaWxlICgxKSBvciBub3QgKDIpKVxuICAgICAqIEFsc28gdXNlIG51bWJlck9mQWx3YXlzVmlzaWJsZU9wdGlvbnNNb2JpbGUgdG8gY29udHJvbCB0aGUgYW1vdW50IG9mIG1vYmlsZSBvcHRpb25zIHZpc2libGVcbiAgICAgKi9cbiAgICBASW5wdXQoKSBudW1iZXJPZkFsd2F5c1Zpc2libGVPcHRpb25zID0gMjtcbiAgICBASW5wdXQoKSBudW1iZXJPZkFsd2F5c1Zpc2libGVPcHRpb25zTW9iaWxlID0gMTtcbiAgICAvKipcbiAgICAgKiBWaXN1YWwgc3R5bGUgb2YgdGhlIGFjdGlvbmJhclxuICAgICAqXG4gICAgICogVmFsdWVzOlxuICAgICAqICAtICdidXR0b24nOiBtYXRlcmlhbCBidXR0b25zIHdpdGggaWNvbnMgYW5kIHRleHQgb24gbWVkaXVtIHRvIGxhcmdlIHNjcmVlbnNcbiAgICAgKiAgLSAnaWNvbi1idXR0b24nOiBtYXRlcmlhbCBidXR0b25zIHdpdGhvdXQgdGV4dFxuICAgICAqICAtICdyb3VuZCc6IGNpcmN1bGFyIGJ1dHRvbnMgd2l0aG91dCB0ZXh0XG4gICAgICogQGRlZmF1bHQgJ2J1dHRvbidcbiAgICAgKi9cbiAgICBASW5wdXQoKSBhcHBlYXJhbmNlOiAncm91bmQnIHwgJ2J1dHRvbicgfCAnaWNvbi1idXR0b24nID0gJ2J1dHRvbic7XG4gICAgLyoqXG4gICAgICogZHJvcGRvd25Qb3NpdGlvbiBpcyBmb3IgcG9zaXRpb24gb2YgZHJvcGRvd24gKGRlZmF1bHQgPSBsZWZ0KVxuICAgICAqIFZhbHVlcyAnbGVmdCcgb3IgJ3JpZ2h0J1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGRyb3Bkb3duUG9zaXRpb246ICdsZWZ0JyB8ICdyaWdodCcgPSAnbGVmdCc7XG5cbiAgICAvKipcbiAgICAgKiBiYWNrZ3JvdW5kVHlwZSBmb3IgY29sb3IgbWF0Y2hpbmcsIGVpdGhlciBicmlnaHQsIGRhcmsgb3IgcHJpbWFyeVxuICAgICAqL1xuICAgIEBJbnB1dCgpIGJhY2tncm91bmRUeXBlOiAnYnJpZ2h0JyB8ICdkYXJrJyB8ICdwcmltYXJ5JyA9ICdicmlnaHQnO1xuICAgIC8qKlxuICAgICAqIFN0eWxlLCBjdXJyZW50bHkgZGVmYXVsdCBvciAnZmxhdCcgaWYgYWxsIGFsd2F5cyB2aXNpYmxlIGljb25zIHNob3VsZCBnZXQgYSBmbGF0IGxvb2tcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzdHlsZTogJ2RlZmF1bHQnIHwgJ2ZsYXQnID0gJ2RlZmF1bHQnO1xuICAgIC8qKlxuICAgICAqIEhpZ2hsaWdodCBvbmUgb3IgbW9yZSBvZiB0aGUgYWx3YXlzLXZpc2libGUgYnV0dG9ucyBhcyBwcmltYXJ5IGFjdGlvbi5cbiAgICAgKlxuICAgICAqIC0gYGZpcnN0YCwgYGxhc3RgOiBUaGUgZmlyc3QgLyBsYXN0IG9mIGBvcHRpb25zQWx3YXlzYCBieSBvcmRlci5cbiAgICAgKiAtIGBtYW51YWxgOiBIaWdobGlnaHQgYWxsIG9wdGlvbnMgdGhhdCBzZXQgYGlzUHJpbWFyeSA9IHRydWVgLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIGhpZ2hsaWdodDogJ2ZpcnN0JyB8ICdsYXN0JyB8ICdtYW51YWwnID0gJ2ZpcnN0JztcbiAgICAvKipcbiAgICAgKiBTaG91bGQgZGlzYWJsZWQgKFwiZ3JleWVkIG91dFwiKSBvcHRpb25zIGJlIHNob3duIG9yIGhpZGRlbj9cbiAgICAgKi9cbiAgICBASW5wdXQoKSBzaG93RGlzYWJsZWQgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogdGhlIHBvc2l0aW9uIG9mIHRoZSBtYXQgdG9vbHRpcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0b29sdGlwUG9zaXRpb246IFRvb2x0aXBQb3NpdGlvbiA9ICdiZWxvdyc7XG5cbiAgICAvKipcbiAgICAgKiBTZXQgdGhlIG9wdGlvbnMsIHNlZSBAT3B0aW9uSXRlbVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHNldCBvcHRpb25zKG9wdGlvbnM6IE9wdGlvbkl0ZW1bXSkge1xuICAgICAgICB0aGlzLm9wdGlvbnNJbiA9IG9wdGlvbnM7XG4gICAgICAgIHRoaXMucHJlcGFyZU9wdGlvbnMob3B0aW9ucyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogYnJlYWtwb2ludCB3aWR0aCBhdCB3aGljaCBwb2ludCB0aGUgbW9iaWxlIGRpc3BsYXkgY291bnQgaXMgdXNlZFxuICAgICAqL1xuICAgIEBJbnB1dCgpIG1vYmlsZUJyZWFrcG9pbnQgPSBVSUNvbnN0YW50cy5NT0JJTEVfV0lEVEg7XG4gICAgb3B0aW9uc0luOiBPcHRpb25JdGVtW10gPSBbXTtcbiAgICBvcHRpb25zQWx3YXlzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8T3B0aW9uSXRlbVtdPihbXSk7XG4gICAgb3B0aW9uc01lbnUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxPcHRpb25JdGVtW10+KFtdKTtcbiAgICBvcHRpb25zVG9nZ2xlOiBPcHRpb25JdGVtW10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdWlTZXJ2aWNlOiBVSVNlcnZpY2UsIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7fVxuXG4gICAgcHJpdmF0ZSBwcmVwYXJlT3B0aW9ucyhvcHRpb25zOiBPcHRpb25JdGVtW10pIHtcbiAgICAgICAgb3B0aW9ucyA9IHRoaXMudWlTZXJ2aWNlLmZpbHRlclZhbGlkT3B0aW9ucyhIZWxwZXIuZGVlcENvcHlBcnJheShvcHRpb25zKSk7XG4gICAgICAgIGlmIChvcHRpb25zID09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMub3B0aW9uc0Fsd2F5cyQubmV4dChbXSk7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnNNZW51JC5uZXh0KFtdKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9wdGlvbnNUb2dnbGUgPSB0aGlzLnVpU2VydmljZS5maWx0ZXJUb2dnbGVPcHRpb25zKG9wdGlvbnMsIHRydWUpO1xuICAgICAgICB0aGlzLm9wdGlvbnNBbHdheXMkLm5leHQoXG4gICAgICAgICAgICB0aGlzLmdldEFjdGlvbk9wdGlvbnModGhpcy51aVNlcnZpY2UuZmlsdGVyVG9nZ2xlT3B0aW9ucyhvcHRpb25zLCBmYWxzZSkpLnNsaWNlKFxuICAgICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgICAgdGhpcy5nZXROdW1iZXJPcHRpb25zKCksXG4gICAgICAgICAgICApLFxuICAgICAgICApO1xuICAgICAgICBpZiAoIXRoaXMub3B0aW9uc0Fsd2F5cyQudmFsdWUubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnNBbHdheXMkLm5leHQoXG4gICAgICAgICAgICAgICAgdGhpcy51aVNlcnZpY2VcbiAgICAgICAgICAgICAgICAgICAgLmZpbHRlclRvZ2dsZU9wdGlvbnMob3B0aW9ucywgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgIC5zbGljZSgwLCB0aGlzLmdldE51bWJlck9wdGlvbnMoKSksXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub3B0aW9uc01lbnUkLm5leHQoXG4gICAgICAgICAgICB0aGlzLmhpZGVBY3Rpb25PcHRpb25zKFxuICAgICAgICAgICAgICAgIHRoaXMudWlTZXJ2aWNlLmZpbHRlclRvZ2dsZU9wdGlvbnMob3B0aW9ucywgZmFsc2UpLFxuICAgICAgICAgICAgICAgIHRoaXMub3B0aW9uc0Fsd2F5cyQudmFsdWUsXG4gICAgICAgICAgICApLFxuICAgICAgICApO1xuICAgICAgICB0aGlzLnVpU2VydmljZS51cGRhdGVPcHRpb25FbmFibGVkU3RhdGUodGhpcy5vcHRpb25zQWx3YXlzJCk7XG4gICAgICAgIHRoaXMudWlTZXJ2aWNlLnVwZGF0ZU9wdGlvbkVuYWJsZWRTdGF0ZSh0aGlzLm9wdGlvbnNNZW51JCk7XG4gICAgICAgIC8vIG1heSBjYXVzZXMgd2VpcmQgbG9va2luZ1xuICAgICAgICAvKmlmKHRoaXMub3B0aW9uc01lbnUubGVuZ3RoPDIpIHtcbiAgICAgIHRoaXMub3B0aW9uc0Fsd2F5cyA9IHRoaXMub3B0aW9uc0Fsd2F5cy5jb25jYXQodGhpcy5vcHRpb25zTWVudSk7XG4gICAgICB0aGlzLm9wdGlvbnNNZW51ID0gW107XG4gICAgfSovXG4gICAgfVxuXG4gICAgcHVibGljIGdldE51bWJlck9wdGlvbnMoKSB7XG4gICAgICAgIGlmICh3aW5kb3cuaW5uZXJXaWR0aCA8IHRoaXMubW9iaWxlQnJlYWtwb2ludCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubnVtYmVyT2ZBbHdheXNWaXNpYmxlT3B0aW9uc01vYmlsZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5udW1iZXJPZkFsd2F5c1Zpc2libGVPcHRpb25zO1xuICAgIH1cblxuICAgIGNsaWNrKG9wdGlvbjogT3B0aW9uSXRlbSkge1xuICAgICAgICBpZiAoIW9wdGlvbi5pc0VuYWJsZWQpIHtcbiAgICAgICAgICAgIGlmIChvcHRpb24uZGlzYWJsZWRDYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIG9wdGlvbi5kaXNhYmxlZENhbGxiYWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgb3B0aW9uLmNhbGxiYWNrKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRBY3Rpb25PcHRpb25zKG9wdGlvbnM6IE9wdGlvbkl0ZW1bXSkge1xuICAgICAgICBjb25zdCByZXN1bHQ6IE9wdGlvbkl0ZW1bXSA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IG9wdGlvbiBvZiBvcHRpb25zKSB7XG4gICAgICAgICAgICBpZiAob3B0aW9uLnNob3dBc0FjdGlvbikgcmVzdWx0LnB1c2gob3B0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHByaXZhdGUgaGlkZUFjdGlvbk9wdGlvbnMob3B0aW9uczogT3B0aW9uSXRlbVtdLCBvcHRpb25zQWx3YXlzOiBPcHRpb25JdGVtW10pIHtcbiAgICAgICAgY29uc3QgcmVzdWx0OiBPcHRpb25JdGVtW10gPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBvcHRpb24gb2Ygb3B0aW9ucykge1xuICAgICAgICAgICAgaWYgKG9wdGlvbnNBbHdheXMuaW5kZXhPZihvcHRpb24pID09PSAtMSkgcmVzdWx0LnB1c2gob3B0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEludmFsaWRhdGUgLyByZWZyZXNoZXMgYWxsIG9wdGlvbnMgYmFzZWQgb24gdGhlaXIgY3VycmVudCBjYWxsYmFja3NcbiAgICAgKi9cbiAgICBwdWJsaWMgaW52YWxpZGF0ZSgpIHtcbiAgICAgICAgdGhpcy5wcmVwYXJlT3B0aW9ucyh0aGlzLm9wdGlvbnNJbik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaWx0ZXJEaXNhYmxlZChvcHRpb25zOiBPcHRpb25JdGVtW10pIHtcbiAgICAgICAgaWYgKG9wdGlvbnMgPT0gbnVsbCkgcmV0dXJuIG51bGw7XG4gICAgICAgIGNvbnN0IGZpbHRlcmVkID0gW107XG4gICAgICAgIGZvciAoY29uc3Qgb3B0aW9uIG9mIG9wdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChvcHRpb24uaXNFbmFibGVkIHx8IHRoaXMuc2hvd0Rpc2FibGVkKSBmaWx0ZXJlZC5wdXNoKG9wdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpbHRlcmVkO1xuICAgIH1cblxuICAgIGNhblNob3dEcm9wZG93bigpIHtcbiAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnNNZW51JC52YWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zTWVudSQudmFsdWUuZmlsdGVyKChvKSA9PiBvLmlzRW5hYmxlZCkubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBzaG91bGRIaWdobGlnaHQob3B0aW9uSW5kZXg6IG51bWJlciwgb3B0aW9uOiBPcHRpb25JdGVtKTogYm9vbGVhbiB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5oaWdobGlnaHQpIHtcbiAgICAgICAgICAgIGNhc2UgJ2ZpcnN0JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uSW5kZXggPT09IDA7XG4gICAgICAgICAgICBjYXNlICdsYXN0JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uSW5kZXggPT09IHRoaXMub3B0aW9uc0Fsd2F5cyQudmFsdWUubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgIGNhc2UgJ21hbnVhbCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi5pc1ByaW1hcnk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW52YWxpZGF0ZSgpO1xuICAgIH1cbn1cbiIsIjxlcy1kcm9wZG93blxuICAjZHJvcGRvd25SZWZcbiAgW29wdGlvbnNdPVwib3B0aW9uc01lbnUkIHwgYXN5bmNcIlxuICBbc2hvd0Rpc2FibGVkXT1cInNob3dEaXNhYmxlZFwiXG4gIFtwb3NpdGlvbl09XCJkcm9wZG93blBvc2l0aW9uXCJcbj48L2VzLWRyb3Bkb3duPlxuPGRpdlxuICBjbGFzcz1cImFjdGlvbmJhclwiXG4gIFtjbGFzcy5hY3Rpb25iYXItYWxsLWZsYXRdPVwic3R5bGUgPT09ICdmbGF0J1wiXG4gIFtjbGFzcy5hY3Rpb25iYXItYmFja2dyb3VuZC1kYXJrXT1cImJhY2tncm91bmRUeXBlID09PSAnZGFyaydcIlxuICBbY2xhc3MuYWN0aW9uYmFyLWJhY2tncm91bmQtcHJpbWFyeV09XCJiYWNrZ3JvdW5kVHlwZSA9PT0gJ3ByaW1hcnknXCJcbiAgW2NsYXNzLmFjdGlvbmJhci1yb3VuZF09XCJhcHBlYXJhbmNlID09PSAncm91bmQnXCJcbiAgW2NsYXNzLmFjdGlvbmJhci1pY29uLWJ1dHRvbl09XCJhcHBlYXJhbmNlID09PSAnaWNvbi1idXR0b24nXCJcbj5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNBbHdheXMkIHwgYXN5bmM7IGxldCBpID0gaW5kZXhcIj5cbiAgICA8YnV0dG9uXG4gICAgICAqbmdJZj1cInNob3VsZEhpZ2hsaWdodChpLCBvcHRpb24pXCJcbiAgICAgIG1hdC1mbGF0LWJ1dHRvblxuICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgIFtkaXNhYmxlZF09XCIhb3B0aW9uLmlzRW5hYmxlZFwiXG4gICAgICBbY2xhc3MuZGlzcGxheS1ub25lXT1cIiFvcHRpb24uaXNFbmFibGVkICYmICFzaG93RGlzYWJsZWRcIlxuICAgICAgbWF0VG9vbHRpcD1cInt7IG9wdGlvbiB8IG9wdGlvblRvb2x0aXAgfCBhc3luYyB9fVwiXG4gICAgICBbbWF0VG9vbHRpcFBvc2l0aW9uXT1cInRvb2x0aXBQb3NpdGlvblwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm9wdGlvbi5hcmlhTGFiZWwgfHwgb3B0aW9uLm5hbWUgfCB0cmFuc2xhdGVcIlxuICAgICAgKGNsaWNrKT1cImNsaWNrKG9wdGlvbilcIlxuICAgID5cbiAgICAgIDxpIFtlc0ljb25dPVwib3B0aW9uLmljb25cIj48L2k+XG4gICAgICA8c3BhbiBjbGFzcz1cImFjdGlvbi1hbHdheXMtY2FwdGlvblwiICpuZ0lmPVwib3B0aW9uLnNob3dOYW1lICYmIGFwcGVhcmFuY2UgPT09ICdidXR0b24nXCI+XG4gICAgICAgIHt7IG9wdGlvbi5uYW1lIHwgdHJhbnNsYXRlIH19PC9zcGFuXG4gICAgICA+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgKm5nSWY9XCIhc2hvdWxkSGlnaGxpZ2h0KGksIG9wdGlvbilcIlxuICAgICAgbWF0LWJ1dHRvblxuICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgIFtkaXNhYmxlZF09XCIhb3B0aW9uLmlzRW5hYmxlZFwiXG4gICAgICBbY2xhc3MuZGlzcGxheS1ub25lXT1cIiFvcHRpb24uaXNFbmFibGVkICYmICFzaG93RGlzYWJsZWRcIlxuICAgICAgbWF0VG9vbHRpcD1cInt7IG9wdGlvbiB8IG9wdGlvblRvb2x0aXAgfCBhc3luYyB9fVwiXG4gICAgICBbbWF0VG9vbHRpcFBvc2l0aW9uXT1cInRvb2x0aXBQb3NpdGlvblwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm9wdGlvbi5hcmlhTGFiZWwgfHwgb3B0aW9uLm5hbWUgfCB0cmFuc2xhdGVcIlxuICAgICAgKGNsaWNrKT1cImNsaWNrKG9wdGlvbilcIlxuICAgID5cbiAgICAgIDxpIFtlc0ljb25dPVwib3B0aW9uLmljb25cIj48L2k+XG4gICAgICA8c3BhbiBjbGFzcz1cImFjdGlvbi1hbHdheXMtY2FwdGlvblwiICpuZ0lmPVwib3B0aW9uLnNob3dOYW1lICYmIGFwcGVhcmFuY2UgPT09ICdidXR0b24nXCI+XG4gICAgICAgIHt7IG9wdGlvbi5uYW1lIHwgdHJhbnNsYXRlIH19PC9zcGFuXG4gICAgICA+XG4gICAgPC9idXR0b24+XG4gIDwvbmctY29udGFpbmVyPlxuICA8YnV0dG9uXG4gICAgbWF0LWJ1dHRvblxuICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgY2xhc3M9XCJtb3JlXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidPUFRJT05TLlNIT1dfQUxMX09QVElPTlMnIHwgdHJhbnNsYXRlXCJcbiAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwiZHJvcGRvd25SZWYubWVudVwiXG4gICAgKm5nSWY9XCJjYW5TaG93RHJvcGRvd24oKVwiXG4gICAgZGF0YS10ZXN0PVwibW9yZS1hY3Rpb25zLWJ1dHRvblwiXG4gID5cbiAgICA8aSBlc0ljb249XCJtb3JlX3ZlcnRcIiBbYXJpYV09XCJmYWxzZVwiPjwvaT5cbiAgPC9idXR0b24+XG4gIDxkaXZcbiAgICAqbmdJZj1cIm9wdGlvbnNUb2dnbGUubGVuZ3RoXCJcbiAgICBjbGFzcz1cImFjdGlvblRvZ2dsZVwiXG4gICAgW2NsYXNzLmFjdGlvblRvZ2dsZURpdmlkZXJdPVwiKG9wdGlvbnNBbHdheXMkIHwgYXN5bmMpLmxlbmd0aFwiXG4gID5cbiAgICA8YnV0dG9uXG4gICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNUb2dnbGVcIlxuICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICBtYXRUb29sdGlwPVwie3sgb3B0aW9uLm5hbWUgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJvcHRpb24uYXJpYUxhYmVsIHx8IG9wdGlvbi5uYW1lIHwgdHJhbnNsYXRlXCJcbiAgICAgIChjbGljayk9XCJjbGljayhvcHRpb24pXCJcbiAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhb3B0aW9uLmlzRW5hYmxlZFwiXG4gICAgICBhdHRyLmRhdGEtdGVzdD1cInRvZ2dsZS17eyBvcHRpb24ubmFtZSB9fVwiXG4gICAgPlxuICAgICAgPGkgW2VzSWNvbl09XCJvcHRpb24uaWNvblwiIFthcmlhXT1cImZhbHNlXCI+PC9pPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Created by Torsten on 13.01.2017.
|
|
3
3
|
*/
|
|
4
4
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
5
|
-
import { Directive, Input, Optional } from '@angular/core';
|
|
5
|
+
import { Directive, Input, Optional, } from '@angular/core';
|
|
6
6
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
7
7
|
import { BehaviorSubject, combineLatest } from 'rxjs';
|
|
8
8
|
import { filter } from 'rxjs/operators';
|
|
@@ -46,9 +46,10 @@ export class IconDirective {
|
|
|
46
46
|
set esIcon(id) {
|
|
47
47
|
this.originalId$.next(id);
|
|
48
48
|
}
|
|
49
|
-
constructor(element, translate, config) {
|
|
49
|
+
constructor(element, translate, renderer, config) {
|
|
50
50
|
this.element = element;
|
|
51
51
|
this.translate = translate;
|
|
52
|
+
this.renderer = renderer;
|
|
52
53
|
this.config = config;
|
|
53
54
|
this.originalId$ = new BehaviorSubject(null);
|
|
54
55
|
this.isReady = false;
|
|
@@ -72,6 +73,19 @@ export class IconDirective {
|
|
|
72
73
|
setIcon(id, iconsConfig) {
|
|
73
74
|
if (this._id) {
|
|
74
75
|
this.element.nativeElement.classList.remove('edu-icons', 'custom-icons', 'material-icons');
|
|
76
|
+
if (this.svg) {
|
|
77
|
+
this.renderer.removeChild(this.element.nativeElement, this.svg);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
if (id.startsWith('svg-')) {
|
|
81
|
+
this.svg = document.createElement('img');
|
|
82
|
+
this.svg.classList.add('svg-icons');
|
|
83
|
+
this.svg.src = 'assets/images/icons/' + id.substring(4);
|
|
84
|
+
this.renderer.appendChild(this.element.nativeElement, this.svg);
|
|
85
|
+
if (this._aria) {
|
|
86
|
+
this.updateAria();
|
|
87
|
+
}
|
|
88
|
+
return;
|
|
75
89
|
}
|
|
76
90
|
let customClass = null;
|
|
77
91
|
const mapping = iconsConfig?.filter((i) => i.original === id);
|
|
@@ -86,11 +100,11 @@ export class IconDirective {
|
|
|
86
100
|
let cssClass;
|
|
87
101
|
if (id?.startsWith('edu-') && !customClass) {
|
|
88
102
|
cssClass = 'edu-icons';
|
|
89
|
-
id = id.
|
|
103
|
+
id = id.substring(4);
|
|
90
104
|
}
|
|
91
105
|
else if (id?.startsWith('custom-') || customClass) {
|
|
92
106
|
cssClass = 'custom-icons';
|
|
93
|
-
id = id.
|
|
107
|
+
id = id.substring(7);
|
|
94
108
|
}
|
|
95
109
|
else {
|
|
96
110
|
cssClass = 'material-icons';
|
|
@@ -114,6 +128,9 @@ export class IconDirective {
|
|
|
114
128
|
}
|
|
115
129
|
}
|
|
116
130
|
setAltText(altText) {
|
|
131
|
+
if (this.svg) {
|
|
132
|
+
this.svg.alt = altText;
|
|
133
|
+
}
|
|
117
134
|
if (altText && !this.altTextSpan) {
|
|
118
135
|
this.insertAltTextSpan();
|
|
119
136
|
}
|
|
@@ -126,7 +143,7 @@ export class IconDirective {
|
|
|
126
143
|
this.altTextSpan.classList.add('cdk-visually-hidden');
|
|
127
144
|
this.element.nativeElement.insertAdjacentElement('afterend', this.altTextSpan);
|
|
128
145
|
}
|
|
129
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: IconDirective, deps: [{ token: i0.ElementRef }, { token: i1.TranslateService }, { token: i2.ConfigService, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
146
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: IconDirective, deps: [{ token: i0.ElementRef }, { token: i1.TranslateService }, { token: i0.Renderer2 }, { token: i2.ConfigService, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
130
147
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.6", type: IconDirective, selector: "i[esIcon], i.material-icons", inputs: { altText: "altText", aria: "aria", esIcon: "esIcon" }, ngImport: i0 }); }
|
|
131
148
|
}
|
|
132
149
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: IconDirective, decorators: [{
|
|
@@ -134,7 +151,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
|
|
|
134
151
|
args: [{
|
|
135
152
|
selector: 'i[esIcon], i.material-icons',
|
|
136
153
|
}]
|
|
137
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.TranslateService }, { type: i2.ConfigService, decorators: [{
|
|
154
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.TranslateService }, { type: i0.Renderer2 }, { type: i2.ConfigService, decorators: [{
|
|
138
155
|
type: Optional
|
|
139
156
|
}] }]; }, propDecorators: { altText: [{
|
|
140
157
|
type: Input
|
|
@@ -143,4 +160,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
|
|
|
143
160
|
}], esIcon: [{
|
|
144
161
|
type: Input
|
|
145
162
|
}] } });
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL2RpcmVjdGl2ZXMvaWNvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBcUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7QUFJNUM7Ozs7Ozs7Ozs7O0dBV0c7QUFJSCxNQUFNLE9BQU8sYUFBYTtJQU90Qjs7Ozs7O09BTUc7SUFDSCxJQUFhLE9BQU8sQ0FBQyxPQUFlO1FBQ2hDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELHNFQUFzRTtJQUN0RSxJQUFhLElBQUksQ0FBQyxJQUFhO1FBQzNCLElBQUksR0FBRyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxJQUFJLElBQUksS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQ2xCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDZCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7YUFDckI7U0FDSjtJQUNMLENBQUM7SUFFRCxJQUFhLE1BQU0sQ0FBQyxFQUFVO1FBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFB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QUFPLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkYsQ0FBQzs4R0F0SFEsYUFBYTtrR0FBYixhQUFhOzsyRkFBYixhQUFhO2tCQUh6QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw2QkFBNkI7aUJBQzFDOzswQkFxQ1EsUUFBUTs0Q0F0QkEsT0FBTztzQkFBbkIsS0FBSztnQkFLTyxJQUFJO3NCQUFoQixLQUFLO2dCQVVPLE1BQU07c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENyZWF0ZWQgYnkgVG9yc3RlbiBvbiAxMy4wMS4yMDE3LlxuICovXG5cbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICduZ3gtZWR1LXNoYXJpbmctYXBpJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgbm90TnVsbCB9IGZyb20gJy4uL3V0aWwvZnVuY3Rpb25zJztcblxudHlwZSBJY29uc0NvbmZpZyA9IEFycmF5PHsgb3JpZ2luYWw6IHN0cmluZzsgcmVwbGFjZT86IHN0cmluZzsgY3NzQ2xhc3M/OiBzdHJpbmcgfT47XG5cbi8qKlxuICogUmVwbGFjZXMgdGhlIGVsZW1lbnQncyBjb250ZW50IHdpdGggYW4gaWNvbi5cbiAqXG4gKiBFeGFtcGxlOiBgPGkgZXNJY29uPVwic2F2ZVwiPjwvaT5gXG4gKlxuICogT3B0aW9uYWxseSwgYSB0cmFuc2xhdGVkIGBhcmlhLWxhYmVsYCBjYW4gYmUgYXR0YWNoZWQgYnkgc2V0dGluZyBgYXJpYWAgdG8gYSB0cnV0aHkgdmFsdWU6IGA8aVxuICogZXNJY29uPVwic2F2ZVwiIGFyaWE9XCJ0cnVlXCI+PC9pPmAuIE90aGVyd2lzZSwgYGFyaWEtaGlkZGVuYCB3aWxsIGJlIHNldC5cbiAqXG4gKiBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIHRoZSBkaXJlY3RpdmUgaXMgYWxzbyBhY3RpdmF0ZWQgb24gZWxlbWVudHMgdGhhdCBzZXRcbiAqIGBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCJgLiBUaGlzIGlzIG1haW5seSB0byBzZXQgdGhlIGBhcmlhLWhpZGRlbmAgYXR0cmlidXRlLiBPY2N1cnJlbmNlcyBzaG91bGRcbiAqIGJlIHVwZGF0ZWQgdG8gdGhlIHN5bnRheCBhYm92ZS5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdpW2VzSWNvbl0sIGkubWF0ZXJpYWwtaWNvbnMnLFxufSlcbmV4cG9ydCBjbGFzcyBJY29uRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgb3JpZ2luYWxJZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4obnVsbCk7XG4gICAgcHJpdmF0ZSBfaWQ6IHN0cmluZztcbiAgICBwcml2YXRlIF9hcmlhOiBib29sZWFuO1xuICAgIHByaXZhdGUgYWx0VGV4dFNwYW46IEhUTUxFbGVtZW50O1xuICAgIHByaXZhdGUgaXNSZWFkeSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQW4gYWx0IHRleHQgdG8gc2hvdyB0byBzY3JlZW4gcmVhZGVycy5cbiAgICAgKlxuICAgICAqIElmIG9taXR0ZWQsIHRoZSBpY29uIHdpbGwgYmUgaW52aXNpYmxlIHRvIHNjcmVlbiByZWFkZXJzLlxuICAgICAqXG4gICAgICogQHNlZSBodHRwczovL21hdGVyaWFsLmFuZ3VsYXIuaW8vY29tcG9uZW50cy9pY29uL292ZXJ2aWV3I2luZGljYXRvci1pY29uc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHNldCBhbHRUZXh0KGFsdFRleHQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNldEFsdFRleHQoYWx0VGV4dCk7XG4gICAgfVxuXG4gICAgLyoqIElmIHRydWUsIGFuIGFsdCB0ZXh0IChzZWUgYWJvdmUpIHdpbGwgYmUgc2V0IGJhc2VkIG9uIHRoZSBpY29uLiAqL1xuICAgIEBJbnB1dCgpIHNldCBhcmlhKGFyaWE6IGJvb2xlYW4pIHtcbiAgICAgICAgYXJpYSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShhcmlhKTtcbiAgICAgICAgaWYgKGFyaWEgIT09IHRoaXMuX2FyaWEpIHtcbiAgICAgICAgICAgIHRoaXMuX2FyaWEgPSBhcmlhO1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNSZWFkeSkge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlQXJpYSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGVzSWNvbihpZDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMub3JpZ2luYWxJZCQubmV4dChpZCk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGNvbmZpZzogQ29uZmlnU2VydmljZSxcbiAgICApIHtcbiAgICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5vcmlnaW5hbElkJC5waXBlKGZpbHRlcihub3ROdWxsKSksIHRoaXMuY29uZmlnLmdldCgnaWNvbnMnLCBudWxsKV0pXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKFtvcmlnaW5hbElkLCBpY29uc0NvbmZpZ10pID0+IHRoaXMuc2V0SWNvbihvcmlnaW5hbElkLCBpY29uc0NvbmZpZykpO1xuICAgIH1cblxuICAgIGFzeW5jIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmlzUmVhZHkgPSB0cnVlO1xuICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJywgJ3RydWUnKTtcbiAgICAgICAgLy8gTWF0ZXJpYWwgc3R5bGVzIGV4cGVjdCBpY29ucyB0byBoYXZlIHRoZSBjbGFzcyBgbWF0LWljb25gLCBlLmcuLFxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9jb21wb25lbnRzL2Jsb2IvYWUwYjllMWMxYmFlNWU5MzdkMDM5ZWE1MzY1MmZlMTY1NmJjNDYyMy9zcmMvbWF0ZXJpYWwvZm9ybS1maWVsZC9mb3JtLWZpZWxkLnNjc3MjTDE1NlxuICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdtYXQtaWNvbicpO1xuICAgICAgICB0aGlzLnVwZGF0ZUFyaWEoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYWx0VGV4dFNwYW4pIHtcbiAgICAgICAgICAgIHRoaXMuYWx0VGV4dFNwYW4ucmVtb3ZlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEljb24oaWQ6IHN0cmluZywgaWNvbnNDb25maWc6IEljb25zQ29uZmlnKSB7XG4gICAgICAgIGlmICh0aGlzLl9pZCkge1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcbiAgICAgICAgICAgICAgICAnZWR1LWljb25zJyxcbiAgICAgICAgICAgICAgICAnY3VzdG9tLWljb25zJyxcbiAgICAgICAgICAgICAgICAnbWF0ZXJpYWwtaWNvbnMnLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgY3VzdG9tQ2xhc3M6IHN0cmluZyA9IG51bGw7XG4gICAgICAgIGNvbnN0IG1hcHBpbmcgPSBpY29uc0NvbmZpZz8uZmlsdGVyKChpKSA9PiBpLm9yaWdpbmFsID09PSBpZCk7XG4gICAgICAgIGlmIChtYXBwaW5nPy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgIGlkID0gbWFwcGluZ1swXS5yZXBsYWNlIHx8ICcnO1xuICAgICAgICAgICAgY3VzdG9tQ2xhc3MgPSBtYXBwaW5nWzBdLmNzc0NsYXNzO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2lkID0gaWQ7XG4gICAgICAgIGlmICh0aGlzLl9hcmlhKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUFyaWEoKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgY3NzQ2xhc3M6IHN0cmluZztcbiAgICAgICAgaWYgKGlkPy5zdGFydHNXaXRoKCdlZHUtJykgJiYgIWN1c3RvbUNsYXNzKSB7XG4gICAgICAgICAgICBjc3NDbGFzcyA9ICdlZHUtaWNvbnMnO1xuICAgICAgICAgICAgaWQgPSBpZC5zdWJzdHIoNCk7XG4gICAgICAgIH0gZWxzZSBpZiAoaWQ/LnN0YXJ0c1dpdGgoJ2N1c3RvbS0nKSB8fCBjdXN0b21DbGFzcykge1xuICAgICAgICAgICAgY3NzQ2xhc3MgPSAnY3VzdG9tLWljb25zJztcbiAgICAgICAgICAgIGlkID0gaWQuc3Vic3RyKDcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY3NzQ2xhc3MgPSAnbWF0ZXJpYWwtaWNvbnMnO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoY3NzQ2xhc3MpO1xuICAgICAgICBpZiAoY3VzdG9tQ2xhc3MpIHtcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoY3VzdG9tQ2xhc3MpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmlubmVyVGV4dCA9IGlkO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlQXJpYSgpIHtcbiAgICAgICAgaWYgKHRoaXMuX2FyaWEgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2FyaWEgJiYgdGhpcy5faWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZS5nZXQoJ0lDT05fTEFCRUxTLicgKyB0aGlzLl9pZCkuc3Vic2NyaWJlKChsYW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0QWx0VGV4dChsYW5nKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRBbHRUZXh0KG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRBbHRUZXh0KGFsdFRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAoYWx0VGV4dCAmJiAhdGhpcy5hbHRUZXh0U3Bhbikge1xuICAgICAgICAgICAgdGhpcy5pbnNlcnRBbHRUZXh0U3BhbigpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmFsdFRleHRTcGFuKSB7XG4gICAgICAgICAgICB0aGlzLmFsdFRleHRTcGFuLmlubmVyVGV4dCA9IGFsdFRleHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGluc2VydEFsdFRleHRTcGFuKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFsdFRleHRTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgICB0aGlzLmFsdFRleHRTcGFuLmNsYXNzTGlzdC5hZGQoJ2Nkay12aXN1YWxseS1oaWRkZW4nKTtcbiAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCdhZnRlcmVuZCcsIHRoaXMuYWx0VGV4dFNwYW4pO1xuICAgIH1cbn1cbiJdfQ==
|
|
163
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL2RpcmVjdGl2ZXMvaWNvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQ0gsU0FBUyxFQUVULEtBQUssRUFHTCxRQUFRLEdBRVgsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQUk1Qzs7Ozs7Ozs7Ozs7R0FXRztBQUlILE1BQU0sT0FBTyxhQUFhO0lBUXRCOzs7Ozs7T0FNRztJQUNILElBQWEsT0FBTyxDQUFDLE9BQWU7UUFDaEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsc0VBQXNFO0lBQ3RFLElBQWEsSUFBSSxDQUFDLElBQWE7UUFDM0IsSUFBSSxHQUFHLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLElBQUksSUFBSSxLQUFLLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDckIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDbEIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNkLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUNyQjtTQUNKO0lBQ0wsQ0FBQztJQUVELElBQWEsTUFBTSxDQUFDLEVBQVU7UUFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJ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c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENyZWF0ZWQgYnkgVG9yc3RlbiBvbiAxMy4wMS4yMDE3LlxuICovXG5cbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge1xuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgUmVuZGVyZXIyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICduZ3gtZWR1LXNoYXJpbmctYXBpJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgbm90TnVsbCB9IGZyb20gJy4uL3V0aWwvZnVuY3Rpb25zJztcblxudHlwZSBJY29uc0NvbmZpZyA9IEFycmF5PHsgb3JpZ2luYWw6IHN0cmluZzsgcmVwbGFjZT86IHN0cmluZzsgY3NzQ2xhc3M/OiBzdHJpbmcgfT47XG5cbi8qKlxuICogUmVwbGFjZXMgdGhlIGVsZW1lbnQncyBjb250ZW50IHdpdGggYW4gaWNvbi5cbiAqXG4gKiBFeGFtcGxlOiBgPGkgZXNJY29uPVwic2F2ZVwiPjwvaT5gXG4gKlxuICogT3B0aW9uYWxseSwgYSB0cmFuc2xhdGVkIGBhcmlhLWxhYmVsYCBjYW4gYmUgYXR0YWNoZWQgYnkgc2V0dGluZyBgYXJpYWAgdG8gYSB0cnV0aHkgdmFsdWU6IGA8aVxuICogZXNJY29uPVwic2F2ZVwiIGFyaWE9XCJ0cnVlXCI+PC9pPmAuIE90aGVyd2lzZSwgYGFyaWEtaGlkZGVuYCB3aWxsIGJlIHNldC5cbiAqXG4gKiBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIHRoZSBkaXJlY3RpdmUgaXMgYWxzbyBhY3RpdmF0ZWQgb24gZWxlbWVudHMgdGhhdCBzZXRcbiAqIGBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCJgLiBUaGlzIGlzIG1haW5seSB0byBzZXQgdGhlIGBhcmlhLWhpZGRlbmAgYXR0cmlidXRlLiBPY2N1cnJlbmNlcyBzaG91bGRcbiAqIGJlIHVwZGF0ZWQgdG8gdGhlIHN5bnRheCBhYm92ZS5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdpW2VzSWNvbl0sIGkubWF0ZXJpYWwtaWNvbnMnLFxufSlcbmV4cG9ydCBjbGFzcyBJY29uRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgb3JpZ2luYWxJZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4obnVsbCk7XG4gICAgcHJpdmF0ZSBfaWQ6IHN0cmluZztcbiAgICBwcml2YXRlIF9hcmlhOiBib29sZWFuO1xuICAgIHByaXZhdGUgYWx0VGV4dFNwYW46IEhUTUxFbGVtZW50O1xuICAgIHByaXZhdGUgaXNSZWFkeSA9IGZhbHNlO1xuICAgIHByaXZhdGUgc3ZnOiBIVE1MSW1hZ2VFbGVtZW50O1xuXG4gICAgLyoqXG4gICAgICogQW4gYWx0IHRleHQgdG8gc2hvdyB0byBzY3JlZW4gcmVhZGVycy5cbiAgICAgKlxuICAgICAqIElmIG9taXR0ZWQsIHRoZSBpY29uIHdpbGwgYmUgaW52aXNpYmxlIHRvIHNjcmVlbiByZWFkZXJzLlxuICAgICAqXG4gICAgICogQHNlZSBodHRwczovL21hdGVyaWFsLmFuZ3VsYXIuaW8vY29tcG9uZW50cy9pY29uL292ZXJ2aWV3I2luZGljYXRvci1pY29uc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHNldCBhbHRUZXh0KGFsdFRleHQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNldEFsdFRleHQoYWx0VGV4dCk7XG4gICAgfVxuXG4gICAgLyoqIElmIHRydWUsIGFuIGFsdCB0ZXh0IChzZWUgYWJvdmUpIHdpbGwgYmUgc2V0IGJhc2VkIG9uIHRoZSBpY29uLiAqL1xuICAgIEBJbnB1dCgpIHNldCBhcmlhKGFyaWE6IGJvb2xlYW4pIHtcbiAgICAgICAgYXJpYSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShhcmlhKTtcbiAgICAgICAgaWYgKGFyaWEgIT09IHRoaXMuX2FyaWEpIHtcbiAgICAgICAgICAgIHRoaXMuX2FyaWEgPSBhcmlhO1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNSZWFkeSkge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlQXJpYSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGVzSWNvbihpZDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMub3JpZ2luYWxJZCQubmV4dChpZCk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgY29uZmlnOiBDb25maWdTZXJ2aWNlLFxuICAgICkge1xuICAgICAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLm9yaWdpbmFsSWQkLnBpcGUoZmlsdGVyKG5vdE51bGwpKSwgdGhpcy5jb25maWcuZ2V0KCdpY29ucycsIG51bGwpXSlcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoW29yaWdpbmFsSWQsIGljb25zQ29uZmlnXSkgPT4gdGhpcy5zZXRJY29uKG9yaWdpbmFsSWQsIGljb25zQ29uZmlnKSk7XG4gICAgfVxuXG4gICAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuaXNSZWFkeSA9IHRydWU7XG4gICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nLCAndHJ1ZScpO1xuICAgICAgICAvLyBNYXRlcmlhbCBzdHlsZXMgZXhwZWN0IGljb25zIHRvIGhhdmUgdGhlIGNsYXNzIGBtYXQtaWNvbmAsIGUuZy4sXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvYmxvYi9hZTBiOWUxYzFiYWU1ZTkzN2QwMzllYTUzNjUyZmUxNjU2YmM0NjIzL3NyYy9tYXRlcmlhbC9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuc2NzcyNMMTU2XG4gICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ21hdC1pY29uJyk7XG4gICAgICAgIHRoaXMudXBkYXRlQXJpYSgpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5hbHRUZXh0U3Bhbikge1xuICAgICAgICAgICAgdGhpcy5hbHRUZXh0U3Bhbi5yZW1vdmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0SWNvbihpZDogc3RyaW5nLCBpY29uc0NvbmZpZzogSWNvbnNDb25maWcpIHtcbiAgICAgICAgaWYgKHRoaXMuX2lkKSB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFxuICAgICAgICAgICAgICAgICdlZHUtaWNvbnMnLFxuICAgICAgICAgICAgICAgICdjdXN0b20taWNvbnMnLFxuICAgICAgICAgICAgICAgICdtYXRlcmlhbC1pY29ucycsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKHRoaXMuc3ZnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgdGhpcy5zdmcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChpZC5zdGFydHNXaXRoKCdzdmctJykpIHtcbiAgICAgICAgICAgIHRoaXMuc3ZnID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7XG4gICAgICAgICAgICB0aGlzLnN2Zy5jbGFzc0xpc3QuYWRkKCdzdmctaWNvbnMnKTtcbiAgICAgICAgICAgIHRoaXMuc3ZnLnNyYyA9ICdhc3NldHMvaW1hZ2VzL2ljb25zLycgKyBpZC5zdWJzdHJpbmcoNCk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCB0aGlzLnN2Zyk7XG4gICAgICAgICAgICBpZiAodGhpcy5fYXJpYSkge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlQXJpYSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGxldCBjdXN0b21DbGFzczogc3RyaW5nID0gbnVsbDtcbiAgICAgICAgY29uc3QgbWFwcGluZyA9IGljb25zQ29uZmlnPy5maWx0ZXIoKGkpID0+IGkub3JpZ2luYWwgPT09IGlkKTtcbiAgICAgICAgaWYgKG1hcHBpbmc/Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgaWQgPSBtYXBwaW5nWzBdLnJlcGxhY2UgfHwgJyc7XG4gICAgICAgICAgICBjdXN0b21DbGFzcyA9IG1hcHBpbmdbMF0uY3NzQ2xhc3M7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faWQgPSBpZDtcbiAgICAgICAgaWYgKHRoaXMuX2FyaWEpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQXJpYSgpO1xuICAgICAgICB9XG4gICAgICAgIGxldCBjc3NDbGFzczogc3RyaW5nO1xuICAgICAgICBpZiAoaWQ/LnN0YXJ0c1dpdGgoJ2VkdS0nKSAmJiAhY3VzdG9tQ2xhc3MpIHtcbiAgICAgICAgICAgIGNzc0NsYXNzID0gJ2VkdS1pY29ucyc7XG4gICAgICAgICAgICBpZCA9IGlkLnN1YnN0cmluZyg0KTtcbiAgICAgICAgfSBlbHNlIGlmIChpZD8uc3RhcnRzV2l0aCgnY3VzdG9tLScpIHx8IGN1c3RvbUNsYXNzKSB7XG4gICAgICAgICAgICBjc3NDbGFzcyA9ICdjdXN0b20taWNvbnMnO1xuICAgICAgICAgICAgaWQgPSBpZC5zdWJzdHJpbmcoNyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjc3NDbGFzcyA9ICdtYXRlcmlhbC1pY29ucyc7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChjc3NDbGFzcyk7XG4gICAgICAgIGlmIChjdXN0b21DbGFzcykge1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChjdXN0b21DbGFzcyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuaW5uZXJUZXh0ID0gaWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVBcmlhKCkge1xuICAgICAgICBpZiAodGhpcy5fYXJpYSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fYXJpYSAmJiB0aGlzLl9pZCkge1xuICAgICAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmdldCgnSUNPTl9MQUJFTFMuJyArIHRoaXMuX2lkKS5zdWJzY3JpYmUoKGxhbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRBbHRUZXh0KGxhbmcpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldEFsdFRleHQobnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEFsdFRleHQoYWx0VGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnN2Zykge1xuICAgICAgICAgICAgdGhpcy5zdmcuYWx0ID0gYWx0VGV4dDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWx0VGV4dCAmJiAhdGhpcy5hbHRUZXh0U3Bhbikge1xuICAgICAgICAgICAgdGhpcy5pbnNlcnRBbHRUZXh0U3BhbigpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmFsdFRleHRTcGFuKSB7XG4gICAgICAgICAgICB0aGlzLmFsdFRleHRTcGFuLmlubmVyVGV4dCA9IGFsdFRleHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGluc2VydEFsdFRleHRTcGFuKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFsdFRleHRTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgICB0aGlzLmFsdFRleHRTcGFuLmNsYXNzTGlzdC5hZGQoJ2Nkay12aXN1YWxseS1oaWRkZW4nKTtcbiAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCdhZnRlcmVuZCcsIHRoaXMuYWx0VGV4dFNwYW4pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Component, Input, ViewChild } from '@angular/core';
|
|
2
2
|
import { Helper } from '../util/helper';
|
|
3
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
import * as i1 from "../services/ui.service";
|
|
5
6
|
import * as i2 from "@angular/common";
|
|
@@ -14,17 +15,23 @@ import * as i8 from "../pipes/replace-chars.pipe";
|
|
|
14
15
|
* but can also be used standalone.
|
|
15
16
|
*/
|
|
16
17
|
export class DropdownComponent {
|
|
17
|
-
set options(options) {
|
|
18
|
-
this._options = this.ui.filterValidOptions(Helper.deepCopyArray(options));
|
|
19
|
-
}
|
|
20
18
|
constructor(ui) {
|
|
21
19
|
this.ui = ui;
|
|
22
20
|
this.position = 'left';
|
|
21
|
+
this.options$ = new BehaviorSubject([]);
|
|
23
22
|
/**
|
|
24
23
|
* Should disabled ("greyed out") options be shown or hidden?
|
|
25
24
|
*/
|
|
26
25
|
this.showDisabled = true;
|
|
27
26
|
}
|
|
27
|
+
ngOnChanges(changes) {
|
|
28
|
+
if (changes == null || changes?.options || changes?.callbackObject) {
|
|
29
|
+
this.options$.next(this.ui.filterValidOptions(Helper.deepCopyArray(this.options)));
|
|
30
|
+
if (this.callbackObject) {
|
|
31
|
+
this.ui.updateOptionEnabledState(this.options$, this.callbackObject);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
28
35
|
click(option) {
|
|
29
36
|
if (!option.isEnabled) {
|
|
30
37
|
return;
|
|
@@ -33,7 +40,7 @@ export class DropdownComponent {
|
|
|
33
40
|
}
|
|
34
41
|
isNewGroup(i) {
|
|
35
42
|
if (i > 0) {
|
|
36
|
-
return this.
|
|
43
|
+
return this.options$.value[i].group !== this.options$.value[i - 1].group;
|
|
37
44
|
}
|
|
38
45
|
return false;
|
|
39
46
|
}
|
|
@@ -42,14 +49,14 @@ export class DropdownComponent {
|
|
|
42
49
|
// We can only open the dropdown menu, when there is at least one enabled option. Even when
|
|
43
50
|
// there are options with `showDisabled: true`, showing a menu with no selectable option
|
|
44
51
|
// causes a11y issues.
|
|
45
|
-
return this.
|
|
52
|
+
return this.options$.value?.some((o) => o.isEnabled);
|
|
46
53
|
}
|
|
47
54
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: DropdownComponent, deps: [{ token: i1.UIService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
48
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: DropdownComponent, selector: "es-dropdown", inputs: { position: "position", options: "options", callbackObject: "callbackObject", showDisabled: "showDisabled", menuClass: "menuClass" }, viewQueries: [{ propertyName: "menu", first: true, predicate: ["dropdown"], descendants: true, static: true }, { propertyName: "menuTrigger", first: true, predicate: ["menuTrigger"], descendants: true }], ngImport: i0, template: "<mat-menu\n #dropdown=\"matMenu\"\n class=\"mat-dropdown-menu\"\n [class]=\"menuClass\"\n backdropClass=\"mat-dropdown-menu\"\n [xPosition]=\"position === 'right' ? 'after' : 'before'\"\n>\n <!-- MatMenu has role=\"menu\", so the only meaningful role of descendants is \"menuitem\" -->\n <ul role=\"none\">\n <ng-container *ngFor=\"let option of
|
|
55
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: DropdownComponent, selector: "es-dropdown", inputs: { position: "position", options: "options", callbackObject: "callbackObject", showDisabled: "showDisabled", menuClass: "menuClass" }, viewQueries: [{ propertyName: "menu", first: true, predicate: ["dropdown"], descendants: true, static: true }, { propertyName: "menuTrigger", first: true, predicate: ["menuTrigger"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<mat-menu\n #dropdown=\"matMenu\"\n class=\"mat-dropdown-menu\"\n [class]=\"menuClass\"\n backdropClass=\"mat-dropdown-menu\"\n [xPosition]=\"position === 'right' ? 'after' : 'before'\"\n>\n <!-- MatMenu has role=\"menu\", so the only meaningful role of descendants is \"menuitem\" -->\n <ul role=\"none\">\n <ng-container *ngFor=\"let option of options$ | async; let i = index\">\n <li *ngIf=\"option.isEnabled || showDisabled\" role=\"none\">\n <button\n mat-menu-item\n class=\"mat-menu-item collection-item-{{\n option.name | replaceChars : { search: '.', replace: '-' }\n }}\"\n matTooltip=\"{{ option | optionTooltip | async }}\"\n matTooltipPosition=\"right\"\n matTooltipTouchGestures=\"off\"\n [attr.aria-label]=\"option.ariaLabel || option.name | translate\"\n [class.mat-menu-item-separate]=\"option.isSeparate || isNewGroup(i)\"\n [class.mat-menu-item-selected]=\"option.isSelected\"\n [disabled]=\"!option.isEnabled\"\n (click)=\"click(option)\"\n attr.data-test=\"menu-item-{{ option.name }}\"\n >\n <i [esIcon]=\"option.icon\"></i> {{ option.name | translate }}\n </button>\n </li>\n </ng-container>\n </ul>\n</mat-menu>\n<div #menuTrigger=\"matMenuTrigger\" [matMenuTriggerFor]=\"menu\" class=\"display-none\"></div>\n", styles: ["::ng-deep .mat-dropdown-menu .mat-mdc-menu-content{min-width:200px}::ng-deep .mat-dropdown-menu .mat-mdc-menu-content>ul>li>button{display:flex;align-items:center}::ng-deep .mat-dropdown-menu .mat-mdc-menu-content>ul>li>button:not(:disabled)>span{color:var(--primary)}::ng-deep .mat-dropdown-menu .mat-mdc-menu-content>ul>li>button>i{width:35px}::ng-deep .mat-dropdown-menu .mat-mdc-menu-content:not(:empty){padding:0!important}::ng-deep .mat-dropdown-menu ul{margin:0;list-style:none;padding-left:0}::ng-deep .mat-dropdown-menu ul li .mat-mdc-menu-item .mat-mdc-menu-item-text{display:flex;align-items:center}::ng-deep .mat-dropdown-menu ul li .mat-mdc-menu-item .mat-mdc-menu-item-text i{margin-right:10px}::ng-deep .mat-dropdown-menu ul li .mat-mdc-menu-item:hover:not([disabled]),::ng-deep .mat-dropdown-menu ul li .mat-mdc-menu-item.cdk-focused{color:var(--itemSelectedTextColor);background-color:var(--listItemSelectedBackground)}::ng-deep .mat-dropdown-menu ul li .mat-mdc-menu-item.cdk-keyboard-focused{outline:none;border:var(--focusWidth) solid var(--palette-primary-300)}::ng-deep .mat-dropdown-menu ul li .mat-menu-item-separate{border-top:1px solid #ccc}@media screen and (max-width: calc(var(--mobileWidth) - var(--mobileStage) * 1)){::ng-deep .mat-dropdown-menu ul li.cdk-overlay-backdrop{background:rgba(0,0,0,.8)}::ng-deep .mat-dropdown-menu ul li.mat-menu-panel{position:fixed;bottom:0;left:0;max-width:100%;width:100%;border-radius:0}}\n"], 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: "component", type: i3.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i3.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i3.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: i5.IconDirective, selector: "i[esIcon], i.material-icons", inputs: ["altText", "aria", "esIcon"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "pipe", type: i7.OptionTooltipPipe, name: "optionTooltip" }, { kind: "pipe", type: i8.ReplaceCharsPipe, name: "replaceChars" }] }); }
|
|
49
56
|
}
|
|
50
57
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: DropdownComponent, decorators: [{
|
|
51
58
|
type: Component,
|
|
52
|
-
args: [{ selector: 'es-dropdown', template: "<mat-menu\n #dropdown=\"matMenu\"\n class=\"mat-dropdown-menu\"\n [class]=\"menuClass\"\n backdropClass=\"mat-dropdown-menu\"\n [xPosition]=\"position === 'right' ? 'after' : 'before'\"\n>\n <!-- MatMenu has role=\"menu\", so the only meaningful role of descendants is \"menuitem\" -->\n <ul role=\"none\">\n <ng-container *ngFor=\"let option of
|
|
59
|
+
args: [{ selector: 'es-dropdown', template: "<mat-menu\n #dropdown=\"matMenu\"\n class=\"mat-dropdown-menu\"\n [class]=\"menuClass\"\n backdropClass=\"mat-dropdown-menu\"\n [xPosition]=\"position === 'right' ? 'after' : 'before'\"\n>\n <!-- MatMenu has role=\"menu\", so the only meaningful role of descendants is \"menuitem\" -->\n <ul role=\"none\">\n <ng-container *ngFor=\"let option of options$ | async; let i = index\">\n <li *ngIf=\"option.isEnabled || showDisabled\" role=\"none\">\n <button\n mat-menu-item\n class=\"mat-menu-item collection-item-{{\n option.name | replaceChars : { search: '.', replace: '-' }\n }}\"\n matTooltip=\"{{ option | optionTooltip | async }}\"\n matTooltipPosition=\"right\"\n matTooltipTouchGestures=\"off\"\n [attr.aria-label]=\"option.ariaLabel || option.name | translate\"\n [class.mat-menu-item-separate]=\"option.isSeparate || isNewGroup(i)\"\n [class.mat-menu-item-selected]=\"option.isSelected\"\n [disabled]=\"!option.isEnabled\"\n (click)=\"click(option)\"\n attr.data-test=\"menu-item-{{ option.name }}\"\n >\n <i [esIcon]=\"option.icon\"></i> {{ option.name | translate }}\n </button>\n </li>\n </ng-container>\n </ul>\n</mat-menu>\n<div #menuTrigger=\"matMenuTrigger\" [matMenuTriggerFor]=\"menu\" class=\"display-none\"></div>\n", styles: ["::ng-deep .mat-dropdown-menu .mat-mdc-menu-content{min-width:200px}::ng-deep .mat-dropdown-menu .mat-mdc-menu-content>ul>li>button{display:flex;align-items:center}::ng-deep .mat-dropdown-menu .mat-mdc-menu-content>ul>li>button:not(:disabled)>span{color:var(--primary)}::ng-deep .mat-dropdown-menu .mat-mdc-menu-content>ul>li>button>i{width:35px}::ng-deep .mat-dropdown-menu .mat-mdc-menu-content:not(:empty){padding:0!important}::ng-deep .mat-dropdown-menu ul{margin:0;list-style:none;padding-left:0}::ng-deep .mat-dropdown-menu ul li .mat-mdc-menu-item .mat-mdc-menu-item-text{display:flex;align-items:center}::ng-deep .mat-dropdown-menu ul li .mat-mdc-menu-item .mat-mdc-menu-item-text i{margin-right:10px}::ng-deep .mat-dropdown-menu ul li .mat-mdc-menu-item:hover:not([disabled]),::ng-deep .mat-dropdown-menu ul li .mat-mdc-menu-item.cdk-focused{color:var(--itemSelectedTextColor);background-color:var(--listItemSelectedBackground)}::ng-deep .mat-dropdown-menu ul li .mat-mdc-menu-item.cdk-keyboard-focused{outline:none;border:var(--focusWidth) solid var(--palette-primary-300)}::ng-deep .mat-dropdown-menu ul li .mat-menu-item-separate{border-top:1px solid #ccc}@media screen and (max-width: calc(var(--mobileWidth) - var(--mobileStage) * 1)){::ng-deep .mat-dropdown-menu ul li.cdk-overlay-backdrop{background:rgba(0,0,0,.8)}::ng-deep .mat-dropdown-menu ul li.mat-menu-panel{position:fixed;bottom:0;left:0;max-width:100%;width:100%;border-radius:0}}\n"] }]
|
|
53
60
|
}], ctorParameters: function () { return [{ type: i1.UIService }]; }, propDecorators: { menu: [{
|
|
54
61
|
type: ViewChild,
|
|
55
62
|
args: ['dropdown', { static: true }]
|
|
@@ -67,4 +74,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
|
|
|
67
74
|
}], menuClass: [{
|
|
68
75
|
type: Input
|
|
69
76
|
}] } });
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE0QixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7QUFFdkM7OztHQUdHO0FBTUgsTUFBTSxPQUFPLGlCQUFpQjtJQTRCMUIsWUFBb0IsRUFBYTtRQUFiLE9BQUUsR0FBRixFQUFFLENBQVc7UUF4QnhCLGFBQVEsR0FBcUIsTUFBTSxDQUFDO1FBRTdDLGFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBZSxFQUFFLENBQUMsQ0FBQztRQVNqRDs7V0FFRztRQUNNLGlCQUFZLEdBQUcsSUFBSSxDQUFDO0lBVU8sQ0FBQztJQUVyQyxXQUFXLENBQUMsT0FBdUI7UUFDL0IsSUFBSSxPQUFPLElBQUksSUFBSSxJQUFJLE9BQU8sRUFBRSxPQUFPLElBQUksT0FBTyxFQUFFLGNBQWMsRUFBRTtZQUNoRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuRixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxFQUFFLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7YUFDeEU7U0FDSjtJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBa0I7UUFDcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUU7WUFDbkIsT0FBTztTQUNWO1FBQ0QsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELFVBQVUsQ0FBQyxDQUFTO1FBQ2hCLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7U0FDNUU7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQscUVBQXFFO0lBQ3JFLGVBQWU7UUFDWCwyRkFBMkY7UUFDM0Ysd0ZBQXdGO1FBQ3hGLHNCQUFzQjtRQUN0QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7OEdBM0RRLGlCQUFpQjtrR0FBakIsaUJBQWlCLG1hQ2hCOUIsaTRDQWlDQTs7MkZEakJhLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDSSxhQUFhO2dHQUtrQixJQUFJO3NCQUE1QyxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ2IsV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhO2dCQUVmLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQVFHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBS0csWUFBWTtzQkFBcEIsS0FBSztnQkFRRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdE1lbnUsIE1hdE1lbnVUcmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBPcHRpb25JdGVtIH0gZnJvbSAnLi4vdHlwZXMvb3B0aW9uLWl0ZW0nO1xuaW1wb3J0IHsgSGVscGVyIH0gZnJvbSAnLi4vdXRpbC9oZWxwZXInO1xuaW1wb3J0IHsgVUlTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvdWkuc2VydmljZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBUaGUgZHJvcGRvd24gaXMgb25lIGJhc2UgY29tcG9uZW50IG9mIHRoZSBhY3Rpb24gYmFyIChzaG93aW5nIG1vcmUgYWN0aW9ucyksXG4gKiBidXQgY2FuIGFsc28gYmUgdXNlZCBzdGFuZGFsb25lLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2VzLWRyb3Bkb3duJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnZHJvcGRvd24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHJvcGRvd25Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duJywgeyBzdGF0aWM6IHRydWUgfSkgbWVudTogTWF0TWVudTtcbiAgICBAVmlld0NoaWxkKCdtZW51VHJpZ2dlcicpIG1lbnVUcmlnZ2VyOiBNYXRNZW51VHJpZ2dlcjtcblxuICAgIEBJbnB1dCgpIHBvc2l0aW9uOiAnbGVmdCcgfCAncmlnaHQnID0gJ2xlZnQnO1xuICAgIEBJbnB1dCgpIG9wdGlvbnM6IE9wdGlvbkl0ZW1bXTtcbiAgICBvcHRpb25zJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8T3B0aW9uSXRlbVtdPihbXSk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgb2JqZWN0IHRoYXQgc2hvdWxkIGJlIHJldHVybmVkIHZpYSB0aGUgb3B0aW9uJ3MgY2FsbGJhY2suXG4gICAgICpcbiAgICAgKiBDYW4gYmUgbnVsbFxuICAgICAqL1xuICAgIEBJbnB1dCgpIGNhbGxiYWNrT2JqZWN0OiBhbnk7XG5cbiAgICAvKipcbiAgICAgKiBTaG91bGQgZGlzYWJsZWQgKFwiZ3JleWVkIG91dFwiKSBvcHRpb25zIGJlIHNob3duIG9yIGhpZGRlbj9cbiAgICAgKi9cbiAgICBASW5wdXQoKSBzaG93RGlzYWJsZWQgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogQW4gYWRkaXRpb25hbCBjbGFzcyB0byBhZGQgdG8gdGhlIGBtYXQtbWVudWAgaW5zdGFuY2UuXG4gICAgICpcbiAgICAgKiBUaGlzIGlzIG5lZWRlZCB0byBjdXN0b21pemUgdGhlIG1lbnUgc3R5bGluZyBzaW5jZSB0aGUgbWVudSBjb250ZW50cyBhcmVcbiAgICAgKiB0YWtlbiBvdXQgb2YgdGhlIGhvc3QgY29udGFpbmVyIGJ5IGFuZ3VsYXIuXG4gICAgICovXG4gICAgQElucHV0KCkgbWVudUNsYXNzOiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHVpOiBVSVNlcnZpY2UpIHt9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzPzogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlcyA9PSBudWxsIHx8IGNoYW5nZXM/Lm9wdGlvbnMgfHwgY2hhbmdlcz8uY2FsbGJhY2tPYmplY3QpIHtcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucyQubmV4dCh0aGlzLnVpLmZpbHRlclZhbGlkT3B0aW9ucyhIZWxwZXIuZGVlcENvcHlBcnJheSh0aGlzLm9wdGlvbnMpKSk7XG4gICAgICAgICAgICBpZiAodGhpcy5jYWxsYmFja09iamVjdCkge1xuICAgICAgICAgICAgICAgIHRoaXMudWkudXBkYXRlT3B0aW9uRW5hYmxlZFN0YXRlKHRoaXMub3B0aW9ucyQsIHRoaXMuY2FsbGJhY2tPYmplY3QpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2xpY2sob3B0aW9uOiBPcHRpb25JdGVtKSB7XG4gICAgICAgIGlmICghb3B0aW9uLmlzRW5hYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gb3B0aW9uLmNhbGxiYWNrKHRoaXMuY2FsbGJhY2tPYmplY3QpKTtcbiAgICB9XG5cbiAgICBpc05ld0dyb3VwKGk6IG51bWJlcikge1xuICAgICAgICBpZiAoaSA+IDApIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMkLnZhbHVlW2ldLmdyb3VwICE9PSB0aGlzLm9wdGlvbnMkLnZhbHVlW2kgLSAxXS5ncm91cDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqIFdoZXRoZXIgdGhlcmUgYXJlIGFueSBlbmFibGVkIG9wdGlvbnMgc28gd2UgY2FuIG9wZW4gdGhlIG1lbnUuICovXG4gICAgY2FuU2hvd0Ryb3Bkb3duKCk6IGJvb2xlYW4ge1xuICAgICAgICAvLyBXZSBjYW4gb25seSBvcGVuIHRoZSBkcm9wZG93biBtZW51LCB3aGVuIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBlbmFibGVkIG9wdGlvbi4gRXZlbiB3aGVuXG4gICAgICAgIC8vIHRoZXJlIGFyZSBvcHRpb25zIHdpdGggYHNob3dEaXNhYmxlZDogdHJ1ZWAsIHNob3dpbmcgYSBtZW51IHdpdGggbm8gc2VsZWN0YWJsZSBvcHRpb25cbiAgICAgICAgLy8gY2F1c2VzIGExMXkgaXNzdWVzLlxuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zJC52YWx1ZT8uc29tZSgobykgPT4gby5pc0VuYWJsZWQpO1xuICAgIH1cbn1cbiIsIjxtYXQtbWVudVxuICAjZHJvcGRvd249XCJtYXRNZW51XCJcbiAgY2xhc3M9XCJtYXQtZHJvcGRvd24tbWVudVwiXG4gIFtjbGFzc109XCJtZW51Q2xhc3NcIlxuICBiYWNrZHJvcENsYXNzPVwibWF0LWRyb3Bkb3duLW1lbnVcIlxuICBbeFBvc2l0aW9uXT1cInBvc2l0aW9uID09PSAncmlnaHQnID8gJ2FmdGVyJyA6ICdiZWZvcmUnXCJcbj5cbiAgPCEtLSBNYXRNZW51IGhhcyByb2xlPVwibWVudVwiLCBzbyB0aGUgb25seSBtZWFuaW5nZnVsIHJvbGUgb2YgZGVzY2VuZGFudHMgaXMgXCJtZW51aXRlbVwiIC0tPlxuICA8dWwgcm9sZT1cIm5vbmVcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9ucyQgfCBhc3luYzsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgPGxpICpuZ0lmPVwib3B0aW9uLmlzRW5hYmxlZCB8fCBzaG93RGlzYWJsZWRcIiByb2xlPVwibm9uZVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgIGNsYXNzPVwibWF0LW1lbnUtaXRlbSBjb2xsZWN0aW9uLWl0ZW0te3tcbiAgICAgICAgICAgIG9wdGlvbi5uYW1lIHwgcmVwbGFjZUNoYXJzIDogeyBzZWFyY2g6ICcuJywgcmVwbGFjZTogJy0nIH1cbiAgICAgICAgICB9fVwiXG4gICAgICAgICAgbWF0VG9vbHRpcD1cInt7IG9wdGlvbiB8IG9wdGlvblRvb2x0aXAgfCBhc3luYyB9fVwiXG4gICAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwicmlnaHRcIlxuICAgICAgICAgIG1hdFRvb2x0aXBUb3VjaEdlc3R1cmVzPVwib2ZmXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm9wdGlvbi5hcmlhTGFiZWwgfHwgb3B0aW9uLm5hbWUgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIFtjbGFzcy5tYXQtbWVudS1pdGVtLXNlcGFyYXRlXT1cIm9wdGlvbi5pc1NlcGFyYXRlIHx8IGlzTmV3R3JvdXAoaSlcIlxuICAgICAgICAgIFtjbGFzcy5tYXQtbWVudS1pdGVtLXNlbGVjdGVkXT1cIm9wdGlvbi5pc1NlbGVjdGVkXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIW9wdGlvbi5pc0VuYWJsZWRcIlxuICAgICAgICAgIChjbGljayk9XCJjbGljayhvcHRpb24pXCJcbiAgICAgICAgICBhdHRyLmRhdGEtdGVzdD1cIm1lbnUtaXRlbS17eyBvcHRpb24ubmFtZSB9fVwiXG4gICAgICAgID5cbiAgICAgICAgICA8aSBbZXNJY29uXT1cIm9wdGlvbi5pY29uXCI+PC9pPiB7eyBvcHRpb24ubmFtZSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbGk+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvdWw+XG48L21hdC1tZW51PlxuPGRpdiAjbWVudVRyaWdnZXI9XCJtYXRNZW51VHJpZ2dlclwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCIgY2xhc3M9XCJkaXNwbGF5LW5vbmVcIj48L2Rpdj5cbiJdfQ==
|
|
@@ -10,6 +10,7 @@ import { NodeImageSizePipe } from './pipes/node-image-size.pipe';
|
|
|
10
10
|
import { FormatDatePipe } from './pipes/format-date.pipe';
|
|
11
11
|
import { ListItemLabelPipe } from './node-entries/list-item-label.pipe';
|
|
12
12
|
import { SortDropdownComponent } from './sort-dropdown/sort-dropdown.component';
|
|
13
|
+
import { MdsModule } from './mds/mds.module';
|
|
13
14
|
import * as i0 from "@angular/core";
|
|
14
15
|
export class EduSharingUiModule {
|
|
15
16
|
static forRoot(config) {
|
|
@@ -24,6 +25,7 @@ export class EduSharingUiModule {
|
|
|
24
25
|
EduSharingUiCommonModule,
|
|
25
26
|
ListItemsModule,
|
|
26
27
|
NodeEntriesModule], exports: [CommonModule,
|
|
28
|
+
MdsModule,
|
|
27
29
|
MatTooltipModule,
|
|
28
30
|
TranslateModule,
|
|
29
31
|
EduSharingUiCommonModule,
|
|
@@ -39,6 +41,7 @@ export class EduSharingUiModule {
|
|
|
39
41
|
EduSharingUiCommonModule,
|
|
40
42
|
ListItemsModule,
|
|
41
43
|
NodeEntriesModule, CommonModule,
|
|
44
|
+
MdsModule,
|
|
42
45
|
MatTooltipModule,
|
|
43
46
|
TranslateModule,
|
|
44
47
|
EduSharingUiCommonModule,
|
|
@@ -62,6 +65,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
|
|
|
62
65
|
],
|
|
63
66
|
exports: [
|
|
64
67
|
CommonModule,
|
|
68
|
+
MdsModule,
|
|
65
69
|
MatTooltipModule,
|
|
66
70
|
TranslateModule,
|
|
67
71
|
EduSharingUiCommonModule,
|
|
@@ -75,4 +79,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
|
|
|
75
79
|
],
|
|
76
80
|
}]
|
|
77
81
|
}] });
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWR1LXNoYXJpbmctdWkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi9lZHUtc2hhcmluZy11aS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQW1DLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBNkI3QyxNQUFNLE9BQU8sa0JBQWtCO0lBQ3BCLE1BQU0sQ0FBQyxPQUFPLENBQ2pCLE1BQXVDO1FBRXZDLE9BQU87WUFDSCxRQUFRLEVBQUUsa0JBQWtCO1lBQzVCLFNBQVMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3pDLENBQUM7SUFDTixDQUFDOzhHQVJRLGtCQUFrQjsrR0FBbEIsa0JBQWtCLFlBeEJ2QixZQUFZO1lBQ1osZUFBZTtZQUNmLHdCQUF3QjtZQUN4QixlQUFlO1lBQ2YsaUJBQWlCLGFBTWpCLFlBQVk7WUFDWixTQUFTO1lBQ1QsZ0JBQWdCO1lBQ2hCLGVBQWU7WUFDZix3QkFBd0I7WUFDeEIsZUFBZTtZQUNmLGlCQUFpQjtZQUNqQixpQkFBaUI7WUFDakIsY0FBYztZQUNkLGVBQWU7WUFDZixpQkFBaUI7WUFDakIscUJBQXFCOytHQUdoQixrQkFBa0IsWUF4QnZCLFlBQVk7WUFDWixlQUFlO1lBQ2Ysd0JBQXdCO1lBQ3hCLGVBQWU7WUFDZixpQkFBaUIsRUFNakIsWUFBWTtZQUNaLFNBQVM7WUFDVCxnQkFBZ0I7WUFDaEIsZUFBZTtZQUNmLHdCQUF3QjtZQUN4QixlQUFlO1lBQ2YsaUJBQWlCO1lBR2pCLGVBQWU7OzJGQUtWLGtCQUFrQjtrQkEzQjlCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2Ysd0JBQXdCO3dCQUN4QixlQUFlO3dCQUNmLGlCQUFpQjt3QkFDakIsMEZBQTBGO3dCQUMxRixxRkFBcUY7d0JBQ3JGLDRFQUE0RTtxQkFDL0U7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osU0FBUzt3QkFDVCxnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2Ysd0JBQXdCO3dCQUN4QixlQUFlO3dCQUNmLGlCQUFpQjt3QkFDakIsaUJBQWlCO3dCQUNqQixjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixxQkFBcUI7cUJBQ3hCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEVkdVNoYXJpbmdVaUNvbmZpZ3VyYXRpb25QYXJhbXMsIGdldENvbmZpZ1Byb3ZpZGVyIH0gZnJvbSAnLi9lZHUtc2hhcmluZy11aS1jb25maWd1cmF0aW9uJztcbmltcG9ydCB7IExpc3RJdGVtc01vZHVsZSB9IGZyb20gJy4vbGlzdC1pdGVtcy9saXN0LWl0ZW1zLm1vZHVsZSc7XG5pbXBvcnQgeyBOb2RlRW50cmllc01vZHVsZSB9IGZyb20gJy4vbm9kZS1lbnRyaWVzL25vZGUtZW50cmllcy5tb2R1bGUnO1xuaW1wb3J0IHsgRWR1U2hhcmluZ1VpQ29tbW9uTW9kdWxlIH0gZnJvbSAnLi9jb21tb24vZWR1LXNoYXJpbmctdWktY29tbW9uLm1vZHVsZSc7XG5pbXBvcnQgeyBOb2RlSW1hZ2VTaXplUGlwZSB9IGZyb20gJy4vcGlwZXMvbm9kZS1pbWFnZS1zaXplLnBpcGUnO1xuaW1wb3J0IHsgRm9ybWF0RGF0ZVBpcGUgfSBmcm9tICcuL3BpcGVzL2Zvcm1hdC1kYXRlLnBpcGUnO1xuaW1wb3J0IHsgTGlzdEl0ZW1MYWJlbFBpcGUgfSBmcm9tICcuL25vZGUtZW50cmllcy9saXN0LWl0ZW0tbGFiZWwucGlwZSc7XG5pbXBvcnQgeyBTb3J0RHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL3NvcnQtZHJvcGRvd24vc29ydC1kcm9wZG93bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWRzTW9kdWxlIH0gZnJvbSAnLi9tZHMvbWRzLm1vZHVsZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgICAgICBFZHVTaGFyaW5nVWlDb21tb25Nb2R1bGUsXG4gICAgICAgIExpc3RJdGVtc01vZHVsZSxcbiAgICAgICAgTm9kZUVudHJpZXNNb2R1bGUsXG4gICAgICAgIC8vIExvYWRpbmcgdGhlIFRyYW5zbGF0aW9uc01vZHVsZSBoZXJlIGNhdXNlcyBlcnJvcnMgZm9yIGxhenktbG9hZGVkIHBhZ2VzIGxpa2UgdGhlIHNlYXJjaFxuICAgICAgICAvLyBwYWdlLiBGb3IgdXNhZ2Ugb3V0c2lkZSB0aGUgY29udGV4dCBvZiBlZHUtc2hhcmluZywgd2UgcHJvYmFibHkgbmVlZCB0byBpbXBvcnQgdGhlXG4gICAgICAgIC8vIFRyYW5zbGF0aW9uc01vZHVsZSBhdCB0aGUgbWFpbiBtb2R1bGUgdGhhdCBwYWNrYWdlcyBvciB1c2VzIHRoaXMgbGlicmFyeS5cbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBNZHNNb2R1bGUsXG4gICAgICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICAgICAgRWR1U2hhcmluZ1VpQ29tbW9uTW9kdWxlLFxuICAgICAgICBMaXN0SXRlbXNNb2R1bGUsXG4gICAgICAgIE5vZGVFbnRyaWVzTW9kdWxlLFxuICAgICAgICBOb2RlSW1hZ2VTaXplUGlwZSxcbiAgICAgICAgRm9ybWF0RGF0ZVBpcGUsXG4gICAgICAgIExpc3RJdGVtc01vZHVsZSxcbiAgICAgICAgTGlzdEl0ZW1MYWJlbFBpcGUsXG4gICAgICAgIFNvcnREcm9wZG93bkNvbXBvbmVudCxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBFZHVTaGFyaW5nVWlNb2R1bGUge1xuICAgIHB1YmxpYyBzdGF0aWMgZm9yUm9vdChcbiAgICAgICAgY29uZmlnOiBFZHVTaGFyaW5nVWlDb25maWd1cmF0aW9uUGFyYW1zLFxuICAgICk6IE1vZHVsZVdpdGhQcm92aWRlcnM8RWR1U2hhcmluZ1VpTW9kdWxlPiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuZ01vZHVsZTogRWR1U2hhcmluZ1VpTW9kdWxlLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbZ2V0Q29uZmlnUHJvdmlkZXIoY29uZmlnKV0sXG4gICAgICAgIH07XG4gICAgfVxufVxuIl19
|