@flywheel-io/vision 2.7.3 → 2.7.5
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/components/chip/chip.component.d.ts +2 -1
- package/components/icon/icon.component.d.ts +5 -1
- package/esm2022/components/chip/chip.component.mjs +6 -3
- package/esm2022/components/icon/icon.component.mjs +28 -20
- package/esm2022/components/paginator/paginator-advanced/paginator-advanced.component.mjs +2 -2
- package/esm2022/components/select-menu/multi-select-menu/multi-select-menu.component.mjs +1 -1
- package/esm2022/components/typeahead/typeahead.component.mjs +2 -2
- package/fesm2022/flywheel-io-vision.mjs +35 -24
- package/fesm2022/flywheel-io-vision.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -11,10 +11,11 @@ export declare class FwChipComponent {
|
|
|
11
11
|
showClose?: boolean;
|
|
12
12
|
disabled?: boolean;
|
|
13
13
|
selected?: boolean;
|
|
14
|
+
textWrap?: boolean;
|
|
14
15
|
selectable?: boolean;
|
|
15
16
|
close: EventEmitter<void>;
|
|
16
17
|
select: EventEmitter<object | string>;
|
|
17
18
|
handleClose(event: MouseEvent): void;
|
|
18
19
|
static ɵfac: i0.ɵɵFactoryDeclaration<FwChipComponent, never>;
|
|
19
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<FwChipComponent, "fw-chip", never, { "value": { "alias": "value"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "color": { "alias": "color"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "title": { "alias": "title"; "required": false; }; "description": { "alias": "description"; "required": false; }; "showClose": { "alias": "showClose"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "selectable": { "alias": "selectable"; "required": false; }; }, { "close": "close"; "select": "select"; }, never, ["fw-avatar", "fw-progress-spinner"], false, never>;
|
|
20
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FwChipComponent, "fw-chip", never, { "value": { "alias": "value"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "color": { "alias": "color"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "title": { "alias": "title"; "required": false; }; "description": { "alias": "description"; "required": false; }; "showClose": { "alias": "showClose"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "textWrap": { "alias": "textWrap"; "required": false; }; "selectable": { "alias": "selectable"; "required": false; }; }, { "close": "close"; "select": "select"; }, never, ["fw-avatar", "fw-progress-spinner"], false, never>;
|
|
20
21
|
}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { DomSanitizer, SafeStyle } from '@angular/platform-browser';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
+
type NamedIconSize = 'large' | 'medium' | 'small' | 'extra-small';
|
|
4
|
+
export type IconSize = NamedIconSize | number;
|
|
3
5
|
export declare class FwIconComponent {
|
|
4
6
|
private sanitizer;
|
|
5
|
-
size
|
|
7
|
+
size: number;
|
|
6
8
|
color?: 'primary' | 'secondary' | 'red' | 'orange' | 'green' | 'slate' | 'muted' | 'typography';
|
|
7
9
|
class: string;
|
|
8
10
|
role: string;
|
|
@@ -10,4 +12,6 @@ export declare class FwIconComponent {
|
|
|
10
12
|
constructor(sanitizer: DomSanitizer);
|
|
11
13
|
static ɵfac: i0.ɵɵFactoryDeclaration<FwIconComponent, never>;
|
|
12
14
|
static ɵcmp: i0.ɵɵComponentDeclaration<FwIconComponent, "fw-icon", never, { "size": { "alias": "size"; "required": false; }; "color": { "alias": "color"; "required": false; }; }, {}, never, ["*"], false, never>;
|
|
15
|
+
static ngAcceptInputType_size: IconSize;
|
|
13
16
|
}
|
|
17
|
+
export {};
|
|
@@ -6,6 +6,7 @@ export class FwChipComponent {
|
|
|
6
6
|
constructor() {
|
|
7
7
|
this.variant = 'enabled';
|
|
8
8
|
this.color = 'slate';
|
|
9
|
+
this.textWrap = true;
|
|
9
10
|
this.selectable = true;
|
|
10
11
|
// eslint-disable-next-line @angular-eslint/no-output-native
|
|
11
12
|
this.close = new EventEmitter();
|
|
@@ -19,11 +20,11 @@ export class FwChipComponent {
|
|
|
19
20
|
}
|
|
20
21
|
}
|
|
21
22
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwChipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
22
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: FwChipComponent, selector: "fw-chip", inputs: { value: "value", variant: "variant", color: "color", icon: "icon", title: "title", description: "description", showClose: "showClose", disabled: "disabled", selected: "selected", selectable: "selectable" }, outputs: { close: "close", select: "select" }, ngImport: i0, template: "<div\n [ngClass]=\"['chip', variant, 'chip-'+color]\" [class.disabled]=\"disabled\" [class.focused]=\"selected\"\n [class.selectable]=\"selectable\" (click)=\"selectable ? select.emit(value) : undefined\">\n\n @if (icon) {\n <fw-icon class=\"chip-icon\">{{ icon }}</fw-icon>\n }\n\n <ng-content select=\"fw-avatar\"></ng-content>\n <ng-content select=\"fw-progress-spinner\"></ng-content>\n @if (title) {\n <div class=\"chip-text-container\">\n <span class=\"chip-text\">{{ title }}</span>\n\n @if (description) {\n <span class=\"description\">{{ description }}</span>\n }\n </div>\n }\n\n @if (showClose) {\n <div class=\"close-icon\" (click)=\"handleClose($event)\">\n <fw-icon>close</fw-icon>\n </div>\n }\n</div>\n", styles: [":host{min-height:24px;display:inline-flex}.chip{box-sizing:border-box;border-radius:16px;padding:2px 4px;display:inline-flex;min-height:24px;align-items:center;font-family:Inter,sans-serif;font-size:12px;font-style:normal;font-weight:600;line-height:16px;width:100%}.chip .chip-icon{align-items:flex-start;font-size:16px;min-width:16px;width:16px}.chip-text{
|
|
23
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: FwChipComponent, selector: "fw-chip", inputs: { value: "value", variant: "variant", color: "color", icon: "icon", title: "title", description: "description", showClose: "showClose", disabled: "disabled", selected: "selected", textWrap: "textWrap", selectable: "selectable" }, outputs: { close: "close", select: "select" }, ngImport: i0, template: "<div\n [ngClass]=\"['chip', variant, 'chip-'+color]\" [class.disabled]=\"disabled\" [class.focused]=\"selected\"\n [class.selectable]=\"selectable\" (click)=\"selectable ? select.emit(value) : undefined\">\n\n @if (icon) {\n <fw-icon class=\"chip-icon\">{{ icon }}</fw-icon>\n }\n\n <ng-content select=\"fw-avatar\"></ng-content>\n <ng-content select=\"fw-progress-spinner\"></ng-content>\n @if (title) {\n <div class=\"chip-text-container\">\n <span [class.text-wrap]=\"!textWrap\" class=\"chip-text\">{{ title }}</span>\n\n @if (description) {\n <span class=\"description\">{{ description }}</span>\n }\n </div>\n }\n\n @if (showClose) {\n <div class=\"close-icon\" (click)=\"handleClose($event)\">\n <fw-icon>close</fw-icon>\n </div>\n }\n</div>\n", styles: [":host{min-height:24px;display:inline-flex}.chip{box-sizing:border-box;border-radius:16px;padding:2px 4px;display:inline-flex;min-height:24px;align-items:center;font-family:Inter,sans-serif;font-size:12px;font-style:normal;font-weight:600;line-height:16px;width:100%}.chip .chip-icon{align-items:flex-start;font-size:16px;min-width:16px;width:16px}.chip-text{overflow:hidden;text-overflow:ellipsis}.chip-text.text-wrap{white-space:nowrap}.chip-text-container{display:flex;align-items:center;margin:0 6px;min-height:16px;white-space:wrap;width:100%;overflow:hidden}.chip-text-container .description{margin-left:4px;font-weight:400;color:var(--typography-light)}.chip .close-icon{font-size:12px;font-weight:700;cursor:pointer;border-width:1px;border-style:solid;border-radius:16px;min-width:12px;width:12px;height:12px;display:inline-flex;align-items:center;justify-content:center;overflow:hidden}.chip .close-icon:hover{color:var(--typography-contrast);border-radius:16px}.chip .close-icon>fw-icon{font-size:12px;min-width:12px;width:12px;height:12px}.chip:not(.selectable){cursor:default}.chip.selectable{cursor:pointer}.chip.enabled.chip-slate{color:var(--slate-base);border:1px solid var(--slate-border)}.chip.enabled.chip-slate .close-icon:hover{background-color:var(--slate-base)}.chip.enabled.chip-primary{color:var(--primary-base);border:1px solid var(--primary-border)}.chip.enabled.chip-primary .close-icon{border-color:var(--primary-base)}.chip.enabled.chip-primary .close-icon:hover{background-color:var(--primary-base)}.chip.enabled.chip-secondary{color:var(--secondary-base);border:1px solid var(--secondary-border)}.chip.enabled.chip-secondary .close-icon{border-color:var(--secondary-base)}.chip.enabled.chip-secondary .close-icon:hover{background-color:var(--secondary-base)}.chip.enabled.chip-orange{color:var(--orange-base);border:1px solid var(--orange-border)}.chip.enabled.chip-orange .close-icon{border-color:var(--orange-base)}.chip.enabled.chip-orange .close-icon:hover{background-color:var(--orange-base)}.chip.enabled.chip-green{color:var(--green-base);border:1px solid var(--green-border)}.chip.enabled.chip-green .close-icon{border-color:var(--green-base)}.chip.enabled.chip-green .close-icon:hover{background-color:var(--green-base)}.chip.enabled.chip-red{color:var(--red-base);border:1px solid var(--red-border)}.chip.enabled.chip-red .close-icon{border-color:var(--red-base)}.chip.enabled.chip-red .close-icon:hover{background-color:var(--red-base)}.chip.hovered.chip-slate,.chip.selectable:not(.focused):hover.chip-slate{color:var(--slate-base)!important;background-color:var(--slate-hover);border:1px solid var(--slate-border)}.chip.hovered.chip-slate .close-icon:hover,.chip.selectable:not(.focused):hover.chip-slate .close-icon:hover{background-color:var(--slate-base)}.chip.hovered.chip-primary,.chip.selectable:not(.focused):hover.chip-primary{color:var(--primary-base)!important;background-color:var(--primary-hover);border:1px solid var(--primary-border)}.chip.hovered.chip-primary .close-icon,.chip.selectable:not(.focused):hover.chip-primary .close-icon{border-color:var(--primary-base)}.chip.hovered.chip-primary .close-icon:hover,.chip.selectable:not(.focused):hover.chip-primary .close-icon:hover{background-color:var(--primary-base)}.chip.hovered.chip-secondary,.chip.selectable:not(.focused):hover.chip-secondary{color:var(--secondary-base)!important;background-color:var(--secondary-hover);border:1px solid var(--secondary-border)}.chip.hovered.chip-secondary .close-icon,.chip.selectable:not(.focused):hover.chip-secondary .close-icon{border-color:var(--secondary-base)}.chip.hovered.chip-secondary .close-icon:hover,.chip.selectable:not(.focused):hover.chip-secondary .close-icon:hover{background-color:var(--secondary-base)}.chip.hovered.chip-orange,.chip.selectable:not(.focused):hover.chip-orange{color:var(--orange-base)!important;background-color:var(--orange-hover);border:1px solid var(--orange-border)}.chip.hovered.chip-orange .close-icon,.chip.selectable:not(.focused):hover.chip-orange .close-icon{border-color:var(--orange-base)}.chip.hovered.chip-orange .close-icon:hover,.chip.selectable:not(.focused):hover.chip-orange .close-icon:hover{background-color:var(--orange-base)}.chip.hovered.chip-green,.chip.selectable:not(.focused):hover.chip-green{color:var(--green-base)!important;background-color:var(--green-hover);border:1px solid var(--green-border)}.chip.hovered.chip-green .close-icon,.chip.selectable:not(.focused):hover.chip-green .close-icon{border-color:var(--green-base)}.chip.hovered.chip-green .close-icon:hover,.chip.selectable:not(.focused):hover.chip-green .close-icon:hover{background-color:var(--green-base)}.chip.hovered.chip-red,.chip.selectable:not(.focused):hover.chip-red{color:var(--red-base)!important;background-color:var(--red-hover);border:1px solid var(--red-border)}.chip.hovered.chip-red .close-icon,.chip.selectable:not(.focused):hover.chip-red .close-icon{border-color:var(--red-base)}.chip.hovered.chip-red .close-icon:hover,.chip.selectable:not(.focused):hover.chip-red .close-icon:hover{background-color:var(--red-base)}.chip.focused{color:var(--typography-contrast)!important}.chip.focused .close-icon{border-color:var(--typography-contrast)}.chip.focused .close-icon:hover{background-color:var(--typography-contrast);border-radius:16px}.chip.focused.chip-slate{background-color:var(--slate-focus);color:var(--typography-base)!important}.chip.focused.chip-slate .close-icon{border-color:var(--typography-base)}.chip.focused.chip-slate .close-icon:hover{color:var(--slate-base)}.chip.focused.chip-primary{background-color:var(--primary-base)}.chip.focused.chip-primary .close-icon:hover{color:var(--primary-base)}.chip.focused.chip-secondary{background-color:var(--secondary-base)}.chip.focused.chip-secondary .close-icon:hover{color:var(--secondary-base)}.chip.focused.chip-orange{background-color:var(--orange-base)}.chip.focused.chip-orange .close-icon:hover{color:var(--orange-base)}.chip.focused.chip-green{background-color:var(--green-base)}.chip.focused.chip-green .close-icon:hover{color:var(--green-base)}.chip.focused.chip-red{background-color:var(--red-base)}.chip.focused.chip-red .close-icon:hover{color:var(--red-base)}.chip.disabled{opacity:38%}.chip.disabled .close-icon{cursor:not-allowed;color:inherit}.chip.disabled .close-icon:hover{background-color:transparent!important}.chip.disabled.chip-slate{color:var(--slate-base);background-color:var(--slate-hover);border:1px solid var(--slate-border)}.chip.disabled.chip-primary{color:var(--primary-base);background-color:var(--primary-hover);border:1px solid var(--primary-border)}.chip.disabled.chip-secondary{color:var(--secondary-base);background-color:var(--secondary-hover);border:1px solid var(--secondary-border)}.chip.disabled.chip-orange{color:var(--orange-base);background-color:var(--orange-hover);border:1px solid var(--orange-border)}.chip.disabled.chip-green{color:var(--green-base);background-color:var(--green-hover);border:1px solid var(--green-border)}.chip.disabled.chip-red{color:var(--red-base);background-color:var(--red-hover);border:1px solid var(--red-border)}:host::ng-deep fw-progress-spinner{width:16px!important;height:16px!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.FwIconComponent, selector: "fw-icon", inputs: ["size", "color"] }] }); }
|
|
23
24
|
}
|
|
24
25
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwChipComponent, decorators: [{
|
|
25
26
|
type: Component,
|
|
26
|
-
args: [{ selector: 'fw-chip', template: "<div\n [ngClass]=\"['chip', variant, 'chip-'+color]\" [class.disabled]=\"disabled\" [class.focused]=\"selected\"\n [class.selectable]=\"selectable\" (click)=\"selectable ? select.emit(value) : undefined\">\n\n @if (icon) {\n <fw-icon class=\"chip-icon\">{{ icon }}</fw-icon>\n }\n\n <ng-content select=\"fw-avatar\"></ng-content>\n <ng-content select=\"fw-progress-spinner\"></ng-content>\n @if (title) {\n <div class=\"chip-text-container\">\n <span class=\"chip-text\">{{ title }}</span>\n\n @if (description) {\n <span class=\"description\">{{ description }}</span>\n }\n </div>\n }\n\n @if (showClose) {\n <div class=\"close-icon\" (click)=\"handleClose($event)\">\n <fw-icon>close</fw-icon>\n </div>\n }\n</div>\n", styles: [":host{min-height:24px;display:inline-flex}.chip{box-sizing:border-box;border-radius:16px;padding:2px 4px;display:inline-flex;min-height:24px;align-items:center;font-family:Inter,sans-serif;font-size:12px;font-style:normal;font-weight:600;line-height:16px;width:100%}.chip .chip-icon{align-items:flex-start;font-size:16px;min-width:16px;width:16px}.chip-text{
|
|
27
|
+
args: [{ selector: 'fw-chip', template: "<div\n [ngClass]=\"['chip', variant, 'chip-'+color]\" [class.disabled]=\"disabled\" [class.focused]=\"selected\"\n [class.selectable]=\"selectable\" (click)=\"selectable ? select.emit(value) : undefined\">\n\n @if (icon) {\n <fw-icon class=\"chip-icon\">{{ icon }}</fw-icon>\n }\n\n <ng-content select=\"fw-avatar\"></ng-content>\n <ng-content select=\"fw-progress-spinner\"></ng-content>\n @if (title) {\n <div class=\"chip-text-container\">\n <span [class.text-wrap]=\"!textWrap\" class=\"chip-text\">{{ title }}</span>\n\n @if (description) {\n <span class=\"description\">{{ description }}</span>\n }\n </div>\n }\n\n @if (showClose) {\n <div class=\"close-icon\" (click)=\"handleClose($event)\">\n <fw-icon>close</fw-icon>\n </div>\n }\n</div>\n", styles: [":host{min-height:24px;display:inline-flex}.chip{box-sizing:border-box;border-radius:16px;padding:2px 4px;display:inline-flex;min-height:24px;align-items:center;font-family:Inter,sans-serif;font-size:12px;font-style:normal;font-weight:600;line-height:16px;width:100%}.chip .chip-icon{align-items:flex-start;font-size:16px;min-width:16px;width:16px}.chip-text{overflow:hidden;text-overflow:ellipsis}.chip-text.text-wrap{white-space:nowrap}.chip-text-container{display:flex;align-items:center;margin:0 6px;min-height:16px;white-space:wrap;width:100%;overflow:hidden}.chip-text-container .description{margin-left:4px;font-weight:400;color:var(--typography-light)}.chip .close-icon{font-size:12px;font-weight:700;cursor:pointer;border-width:1px;border-style:solid;border-radius:16px;min-width:12px;width:12px;height:12px;display:inline-flex;align-items:center;justify-content:center;overflow:hidden}.chip .close-icon:hover{color:var(--typography-contrast);border-radius:16px}.chip .close-icon>fw-icon{font-size:12px;min-width:12px;width:12px;height:12px}.chip:not(.selectable){cursor:default}.chip.selectable{cursor:pointer}.chip.enabled.chip-slate{color:var(--slate-base);border:1px solid var(--slate-border)}.chip.enabled.chip-slate .close-icon:hover{background-color:var(--slate-base)}.chip.enabled.chip-primary{color:var(--primary-base);border:1px solid var(--primary-border)}.chip.enabled.chip-primary .close-icon{border-color:var(--primary-base)}.chip.enabled.chip-primary .close-icon:hover{background-color:var(--primary-base)}.chip.enabled.chip-secondary{color:var(--secondary-base);border:1px solid var(--secondary-border)}.chip.enabled.chip-secondary .close-icon{border-color:var(--secondary-base)}.chip.enabled.chip-secondary .close-icon:hover{background-color:var(--secondary-base)}.chip.enabled.chip-orange{color:var(--orange-base);border:1px solid var(--orange-border)}.chip.enabled.chip-orange .close-icon{border-color:var(--orange-base)}.chip.enabled.chip-orange .close-icon:hover{background-color:var(--orange-base)}.chip.enabled.chip-green{color:var(--green-base);border:1px solid var(--green-border)}.chip.enabled.chip-green .close-icon{border-color:var(--green-base)}.chip.enabled.chip-green .close-icon:hover{background-color:var(--green-base)}.chip.enabled.chip-red{color:var(--red-base);border:1px solid var(--red-border)}.chip.enabled.chip-red .close-icon{border-color:var(--red-base)}.chip.enabled.chip-red .close-icon:hover{background-color:var(--red-base)}.chip.hovered.chip-slate,.chip.selectable:not(.focused):hover.chip-slate{color:var(--slate-base)!important;background-color:var(--slate-hover);border:1px solid var(--slate-border)}.chip.hovered.chip-slate .close-icon:hover,.chip.selectable:not(.focused):hover.chip-slate .close-icon:hover{background-color:var(--slate-base)}.chip.hovered.chip-primary,.chip.selectable:not(.focused):hover.chip-primary{color:var(--primary-base)!important;background-color:var(--primary-hover);border:1px solid var(--primary-border)}.chip.hovered.chip-primary .close-icon,.chip.selectable:not(.focused):hover.chip-primary .close-icon{border-color:var(--primary-base)}.chip.hovered.chip-primary .close-icon:hover,.chip.selectable:not(.focused):hover.chip-primary .close-icon:hover{background-color:var(--primary-base)}.chip.hovered.chip-secondary,.chip.selectable:not(.focused):hover.chip-secondary{color:var(--secondary-base)!important;background-color:var(--secondary-hover);border:1px solid var(--secondary-border)}.chip.hovered.chip-secondary .close-icon,.chip.selectable:not(.focused):hover.chip-secondary .close-icon{border-color:var(--secondary-base)}.chip.hovered.chip-secondary .close-icon:hover,.chip.selectable:not(.focused):hover.chip-secondary .close-icon:hover{background-color:var(--secondary-base)}.chip.hovered.chip-orange,.chip.selectable:not(.focused):hover.chip-orange{color:var(--orange-base)!important;background-color:var(--orange-hover);border:1px solid var(--orange-border)}.chip.hovered.chip-orange .close-icon,.chip.selectable:not(.focused):hover.chip-orange .close-icon{border-color:var(--orange-base)}.chip.hovered.chip-orange .close-icon:hover,.chip.selectable:not(.focused):hover.chip-orange .close-icon:hover{background-color:var(--orange-base)}.chip.hovered.chip-green,.chip.selectable:not(.focused):hover.chip-green{color:var(--green-base)!important;background-color:var(--green-hover);border:1px solid var(--green-border)}.chip.hovered.chip-green .close-icon,.chip.selectable:not(.focused):hover.chip-green .close-icon{border-color:var(--green-base)}.chip.hovered.chip-green .close-icon:hover,.chip.selectable:not(.focused):hover.chip-green .close-icon:hover{background-color:var(--green-base)}.chip.hovered.chip-red,.chip.selectable:not(.focused):hover.chip-red{color:var(--red-base)!important;background-color:var(--red-hover);border:1px solid var(--red-border)}.chip.hovered.chip-red .close-icon,.chip.selectable:not(.focused):hover.chip-red .close-icon{border-color:var(--red-base)}.chip.hovered.chip-red .close-icon:hover,.chip.selectable:not(.focused):hover.chip-red .close-icon:hover{background-color:var(--red-base)}.chip.focused{color:var(--typography-contrast)!important}.chip.focused .close-icon{border-color:var(--typography-contrast)}.chip.focused .close-icon:hover{background-color:var(--typography-contrast);border-radius:16px}.chip.focused.chip-slate{background-color:var(--slate-focus);color:var(--typography-base)!important}.chip.focused.chip-slate .close-icon{border-color:var(--typography-base)}.chip.focused.chip-slate .close-icon:hover{color:var(--slate-base)}.chip.focused.chip-primary{background-color:var(--primary-base)}.chip.focused.chip-primary .close-icon:hover{color:var(--primary-base)}.chip.focused.chip-secondary{background-color:var(--secondary-base)}.chip.focused.chip-secondary .close-icon:hover{color:var(--secondary-base)}.chip.focused.chip-orange{background-color:var(--orange-base)}.chip.focused.chip-orange .close-icon:hover{color:var(--orange-base)}.chip.focused.chip-green{background-color:var(--green-base)}.chip.focused.chip-green .close-icon:hover{color:var(--green-base)}.chip.focused.chip-red{background-color:var(--red-base)}.chip.focused.chip-red .close-icon:hover{color:var(--red-base)}.chip.disabled{opacity:38%}.chip.disabled .close-icon{cursor:not-allowed;color:inherit}.chip.disabled .close-icon:hover{background-color:transparent!important}.chip.disabled.chip-slate{color:var(--slate-base);background-color:var(--slate-hover);border:1px solid var(--slate-border)}.chip.disabled.chip-primary{color:var(--primary-base);background-color:var(--primary-hover);border:1px solid var(--primary-border)}.chip.disabled.chip-secondary{color:var(--secondary-base);background-color:var(--secondary-hover);border:1px solid var(--secondary-border)}.chip.disabled.chip-orange{color:var(--orange-base);background-color:var(--orange-hover);border:1px solid var(--orange-border)}.chip.disabled.chip-green{color:var(--green-base);background-color:var(--green-hover);border:1px solid var(--green-border)}.chip.disabled.chip-red{color:var(--red-base);background-color:var(--red-hover);border:1px solid var(--red-border)}:host::ng-deep fw-progress-spinner{width:16px!important;height:16px!important}\n"] }]
|
|
27
28
|
}], propDecorators: { value: [{
|
|
28
29
|
type: Input
|
|
29
30
|
}], variant: [{
|
|
@@ -42,6 +43,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
42
43
|
type: Input
|
|
43
44
|
}], selected: [{
|
|
44
45
|
type: Input
|
|
46
|
+
}], textWrap: [{
|
|
47
|
+
type: Input
|
|
45
48
|
}], selectable: [{
|
|
46
49
|
type: Input
|
|
47
50
|
}], close: [{
|
|
@@ -49,4 +52,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
49
52
|
}], select: [{
|
|
50
53
|
type: Output
|
|
51
54
|
}] } });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9jaGlwL2NoaXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvY2hpcC9jaGlwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFTdkUsTUFBTSxPQUFPLGVBQWU7SUFMNUI7UUFPVyxZQUFPLEdBQW9ELFNBQVMsQ0FBQztRQUNyRSxVQUFLLEdBQW9FLE9BQU8sQ0FBQztRQU9qRixhQUFRLEdBQUksSUFBSSxDQUFDO1FBQ2pCLGVBQVUsR0FBYSxJQUFJLENBQUM7UUFDckMsNERBQTREO1FBQ2xELFVBQUssR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUMvRCw0REFBNEQ7UUFDbEQsV0FBTSxHQUFrQyxJQUFJLFlBQVksRUFBbUIsQ0FBQztLQVF2RjtJQU5DLFdBQVcsQ0FBQyxLQUFpQjtRQUMzQixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BCLENBQUM7SUFDSCxDQUFDOytHQXRCVSxlQUFlO21HQUFmLGVBQWUsNFVDVDVCLG95QkEwQkE7OzRGRGpCYSxlQUFlO2tCQUwzQixTQUFTOytCQUNFLFNBQVM7OEJBS1YsS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFFSSxLQUFLO3NCQUFkLE1BQU07Z0JBRUcsTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgSWNvblR5cGUgfSBmcm9tICcuLi9pY29uL2ljb24udHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmdy1jaGlwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoaXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jaGlwLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZ3Q2hpcENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHZhbHVlPzogb2JqZWN0IHwgc3RyaW5nO1xuICBASW5wdXQoKSB2YXJpYW50PzogJ2VuYWJsZWQnIHwgJ2hvdmVyZWQnIHwgJ2ZvY3VzZWQnIHwgJ2Rpc2FibGVkJyA9ICdlbmFibGVkJztcbiAgQElucHV0KCkgY29sb3I/OiAnc2xhdGUnIHwgJ3ByaW1hcnknIHwgJ3NlY29uZGFyeScgfCAncmVkJyB8ICdncmVlbicgfCAnb3JhbmdlJyA9ICdzbGF0ZSc7XG4gIEBJbnB1dCgpIGljb24/OiBJY29uVHlwZTtcbiAgQElucHV0KCkgdGl0bGU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBASW5wdXQoKSBzaG93Q2xvc2U/OiBib29sZWFuO1xuICBASW5wdXQoKSBkaXNhYmxlZD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIHNlbGVjdGVkPzogYm9vbGVhbjtcbiAgQElucHV0KCkgdGV4dFdyYXA/ID0gdHJ1ZTtcbiAgQElucHV0KCkgc2VsZWN0YWJsZT86IGJvb2xlYW4gPSB0cnVlO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmVcbiAgQE91dHB1dCgpIGNsb3NlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuICBAT3V0cHV0KCkgc2VsZWN0OiBFdmVudEVtaXR0ZXI8b2JqZWN0IHwgc3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8b2JqZWN0IHwgc3RyaW5nPigpO1xuXG4gIGhhbmRsZUNsb3NlKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKHRoaXMuY2xvc2UpIHtcbiAgICAgIHRoaXMuY2xvc2UuZW1pdCgpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdlxuICBbbmdDbGFzc109XCJbJ2NoaXAnLCB2YXJpYW50LCAnY2hpcC0nK2NvbG9yXVwiIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtjbGFzcy5mb2N1c2VkXT1cInNlbGVjdGVkXCJcbiAgW2NsYXNzLnNlbGVjdGFibGVdPVwic2VsZWN0YWJsZVwiIChjbGljayk9XCJzZWxlY3RhYmxlID8gc2VsZWN0LmVtaXQodmFsdWUpIDogdW5kZWZpbmVkXCI+XG5cbiAgQGlmIChpY29uKSB7XG4gICAgPGZ3LWljb24gY2xhc3M9XCJjaGlwLWljb25cIj57eyBpY29uIH19PC9mdy1pY29uPlxuICB9XG5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZnctYXZhdGFyXCI+PC9uZy1jb250ZW50PlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJmdy1wcm9ncmVzcy1zcGlubmVyXCI+PC9uZy1jb250ZW50PlxuICBAaWYgKHRpdGxlKSB7XG4gICAgPGRpdiBjbGFzcz1cImNoaXAtdGV4dC1jb250YWluZXJcIj5cbiAgICAgIDxzcGFuIFtjbGFzcy50ZXh0LXdyYXBdPVwiIXRleHRXcmFwXCIgY2xhc3M9XCJjaGlwLXRleHRcIj57eyB0aXRsZSB9fTwvc3Bhbj5cblxuICAgICAgQGlmIChkZXNjcmlwdGlvbikge1xuICAgICAgICA8c3BhbiBjbGFzcz1cImRlc2NyaXB0aW9uXCI+e3sgZGVzY3JpcHRpb24gfX08L3NwYW4+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIH1cblxuICBAaWYgKHNob3dDbG9zZSkge1xuICAgIDxkaXYgY2xhc3M9XCJjbG9zZS1pY29uXCIgKGNsaWNrKT1cImhhbmRsZUNsb3NlKCRldmVudClcIj5cbiAgICAgIDxmdy1pY29uPmNsb3NlPC9mdy1pY29uPlxuICAgIDwvZGl2PlxuICB9XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,32 +1,27 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import * as i1 from "@angular/platform-browser";
|
|
4
|
+
const namedSizeToPxMap = {
|
|
5
|
+
large: 28,
|
|
6
|
+
medium: 24,
|
|
7
|
+
small: 22,
|
|
8
|
+
'extra-small': 18,
|
|
9
|
+
};
|
|
4
10
|
export class FwIconComponent {
|
|
5
11
|
get style() {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
case 'small':
|
|
9
|
-
size = 'font-size: 22px; min-width: 22px; width: 22px;';
|
|
10
|
-
break;
|
|
11
|
-
case 'medium':
|
|
12
|
-
size = 'font-size: 24px; min-width: 24px; width: 24px;';
|
|
13
|
-
break;
|
|
14
|
-
case 'large':
|
|
15
|
-
size = 'font-size: 28px; min-width: 28px; width: 28px;';
|
|
16
|
-
break;
|
|
17
|
-
}
|
|
18
|
-
let color = '';
|
|
12
|
+
const sizeStyle = `font-size: ${this.size}px; min-width: ${this.size}px; width: ${this.size}px;`;
|
|
13
|
+
let colorStyle = '';
|
|
19
14
|
if (this.color) {
|
|
20
15
|
if (this.color === 'muted') {
|
|
21
|
-
|
|
16
|
+
colorStyle = 'color: var(--typography-muted);';
|
|
22
17
|
}
|
|
23
18
|
else {
|
|
24
|
-
|
|
19
|
+
colorStyle = `color: var(--${this.color}-base);`;
|
|
25
20
|
}
|
|
26
21
|
}
|
|
27
22
|
return this.sanitizer.bypassSecurityTrustStyle(`
|
|
28
|
-
${
|
|
29
|
-
${
|
|
23
|
+
${sizeStyle}
|
|
24
|
+
${colorStyle}
|
|
30
25
|
`);
|
|
31
26
|
}
|
|
32
27
|
constructor(sanitizer) {
|
|
@@ -35,7 +30,12 @@ export class FwIconComponent {
|
|
|
35
30
|
this.role = 'img';
|
|
36
31
|
}
|
|
37
32
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwIconComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
38
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
33
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.3.12", type: FwIconComponent, selector: "fw-icon", inputs: { size: ["size", "size", (input) => {
|
|
34
|
+
if (typeof input === 'string') {
|
|
35
|
+
return namedSizeToPxMap[input] || parseInt(input) || 24;
|
|
36
|
+
}
|
|
37
|
+
return input;
|
|
38
|
+
}], color: "color" }, host: { properties: { "class": "this.class", "role": "this.role", "style": "this.style" } }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
39
39
|
}
|
|
40
40
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwIconComponent, decorators: [{
|
|
41
41
|
type: Component,
|
|
@@ -45,7 +45,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
45
45
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
46
46
|
}]
|
|
47
47
|
}], ctorParameters: () => [{ type: i1.DomSanitizer }], propDecorators: { size: [{
|
|
48
|
-
type: Input
|
|
48
|
+
type: Input,
|
|
49
|
+
args: [{
|
|
50
|
+
transform: (input) => {
|
|
51
|
+
if (typeof input === 'string') {
|
|
52
|
+
return namedSizeToPxMap[input] || parseInt(input) || 24;
|
|
53
|
+
}
|
|
54
|
+
return input;
|
|
55
|
+
}
|
|
56
|
+
}]
|
|
49
57
|
}], color: [{
|
|
50
58
|
type: Input
|
|
51
59
|
}], class: [{
|
|
@@ -58,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
58
66
|
type: HostBinding,
|
|
59
67
|
args: ['style']
|
|
60
68
|
}] } });
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9pY29uL2ljb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBT3ZGLE1BQU0sZ0JBQWdCLEdBQUc7SUFDdkIsS0FBSyxFQUFFLEVBQUU7SUFDVCxNQUFNLEVBQUUsRUFBRTtJQUNWLEtBQUssRUFBRSxFQUFFO0lBQ1QsYUFBYSxFQUFFLEVBQUU7Q0FDbEIsQ0FBQTtBQU9ELE1BQU0sT0FBTyxlQUFlO0lBb0IxQixJQUEwQixLQUFLO1FBQzdCLE1BQU0sU0FBUyxHQUFXLGNBQWMsSUFBSSxDQUFDLElBQUksa0JBQWtCLElBQUksQ0FBQyxJQUFJLGNBQWMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDO1FBQ3pHLElBQUksVUFBVSxHQUFXLEVBQUUsQ0FBQztRQUM1QixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNmLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxPQUFPLEVBQUUsQ0FBQztnQkFDM0IsVUFBVSxHQUFHLGlDQUFpQyxDQUFDO1lBQ2pELENBQUM7aUJBQU0sQ0FBQztnQkFDTixVQUFVLEdBQUcsZ0JBQWdCLElBQUksQ0FBQyxLQUFLLFNBQVMsQ0FBQztZQUNuRCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyx3QkFBd0IsQ0FBQztRQUMzQyxTQUFTO1FBQ1QsVUFBVTtHQUNmLENBQUMsQ0FBQztJQUNILENBQUM7SUFFRCxZQUFvQixTQUF1QjtRQUF2QixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBbEJyQixVQUFLLEdBQUcsYUFBYSxDQUFDO1FBQ3ZCLFNBQUksR0FBRyxLQUFLLENBQUM7SUFrQmxDLENBQUM7K0dBckNVLGVBQWU7bUdBQWYsZUFBZSx3REFFYixDQUFDLEtBQWUsRUFBRSxFQUFFO29CQUM3QixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO3dCQUM5QixPQUFPLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQzFELENBQUM7b0JBQ0QsT0FBTyxLQUFLLENBQUM7Z0JBQ2YsQ0FBQywwSUFWTywyQkFBMkI7OzRGQUcxQixlQUFlO2tCQUwzQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxTQUFTO29CQUNuQixRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7aUZBU0ksSUFBSTtzQkFQTixLQUFLO3VCQUFDO3dCQUNMLFNBQVMsRUFBRSxDQUFDLEtBQWUsRUFBRSxFQUFFOzRCQUM3QixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dDQUM5QixPQUFPLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7NEJBQzFELENBQUM7NEJBQ0QsT0FBTyxLQUFLLENBQUM7d0JBQ2YsQ0FBQztxQkFDRjtnQkFDUSxLQUFLO3NCQUFiLEtBQUs7Z0JBU2dCLEtBQUs7c0JBQTFCLFdBQVc7dUJBQUMsT0FBTztnQkFDQyxJQUFJO3NCQUF4QixXQUFXO3VCQUFDLE1BQU07Z0JBQ08sS0FBSztzQkFBOUIsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVTdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG50eXBlIE5hbWVkSWNvblNpemUgPSAnbGFyZ2UnIHwgJ21lZGl1bScgfCAnc21hbGwnIHwgJ2V4dHJhLXNtYWxsJztcblxuZXhwb3J0IHR5cGUgSWNvblNpemUgPSBOYW1lZEljb25TaXplIHwgbnVtYmVyO1xuXG5jb25zdCBuYW1lZFNpemVUb1B4TWFwID0ge1xuICBsYXJnZTogMjgsXG4gIG1lZGl1bTogMjQsXG4gIHNtYWxsOiAyMixcbiAgJ2V4dHJhLXNtYWxsJzogMTgsXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Z3LWljb24nLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRndJY29uQ29tcG9uZW50IHtcbiAgQElucHV0KHtcbiAgICB0cmFuc2Zvcm06IChpbnB1dDogSWNvblNpemUpID0+IHtcbiAgICAgIGlmICh0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBuYW1lZFNpemVUb1B4TWFwW2lucHV0XSB8fCBwYXJzZUludChpbnB1dCkgfHwgMjQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gaW5wdXQ7XG4gICAgfVxuICB9KSBzaXplOiBudW1iZXI7XG4gIEBJbnB1dCgpIGNvbG9yPzpcbiAgICB8ICdwcmltYXJ5J1xuICAgIHwgJ3NlY29uZGFyeSdcbiAgICB8ICdyZWQnXG4gICAgfCAnb3JhbmdlJ1xuICAgIHwgJ2dyZWVuJ1xuICAgIHwgJ3NsYXRlJ1xuICAgIHwgJ211dGVkJ1xuICAgIHwgJ3R5cG9ncmFwaHknO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgY2xhc3MgPSAndmlzaW9uLWljb24nO1xuICBASG9zdEJpbmRpbmcoJ3JvbGUnKSByb2xlID0gJ2ltZyc7XG4gIEBIb3N0QmluZGluZygnc3R5bGUnKSBnZXQgc3R5bGUoKTogU2FmZVN0eWxlIHtcbiAgICBjb25zdCBzaXplU3R5bGU6IHN0cmluZyA9IGBmb250LXNpemU6ICR7dGhpcy5zaXplfXB4OyBtaW4td2lkdGg6ICR7dGhpcy5zaXplfXB4OyB3aWR0aDogJHt0aGlzLnNpemV9cHg7YDtcbiAgICBsZXQgY29sb3JTdHlsZTogc3RyaW5nID0gJyc7XG4gICAgaWYgKHRoaXMuY29sb3IpIHtcbiAgICAgIGlmICh0aGlzLmNvbG9yID09PSAnbXV0ZWQnKSB7XG4gICAgICAgIGNvbG9yU3R5bGUgPSAnY29sb3I6IHZhcigtLXR5cG9ncmFwaHktbXV0ZWQpOyc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb2xvclN0eWxlID0gYGNvbG9yOiB2YXIoLS0ke3RoaXMuY29sb3J9LWJhc2UpO2A7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0U3R5bGUoYFxuICAgICAgJHtzaXplU3R5bGV9XG4gICAgICAke2NvbG9yU3R5bGV9XG4gIGApO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikge1xuICB9XG59XG4iXX0=
|
|
@@ -45,7 +45,7 @@ export class FwPaginatorAdvancedComponent {
|
|
|
45
45
|
this.page.emit(evt);
|
|
46
46
|
}
|
|
47
47
|
lastPage() {
|
|
48
|
-
const evt = this.buildPageEvent(this.getNumberOfPages());
|
|
48
|
+
const evt = this.buildPageEvent(this.getNumberOfPages() - 1);
|
|
49
49
|
this.pageIndex = this.getNumberOfPages() - 1;
|
|
50
50
|
this.page.emit(evt);
|
|
51
51
|
}
|
|
@@ -120,4 +120,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
120
120
|
}], page: [{
|
|
121
121
|
type: Output
|
|
122
122
|
}] } });
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLWFkdmFuY2VkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2luYXRvci9wYWdpbmF0b3ItYWR2YW5jZWQvcGFnaW5hdG9yLWFkdmFuY2VkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2luYXRvci9wYWdpbmF0b3ItYWR2YW5jZWQvcGFnaW5hdG9yLWFkdmFuY2VkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFTdkUsTUFBTSxPQUFPLDRCQUE0QjtJQUx6QztRQU1XLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsYUFBUSxHQUFZLElBQUksQ0FBQztRQUN6QixpQkFBWSxHQUFZLElBQUksQ0FBQztRQUM3QixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsY0FBUyxHQUFXLENBQUMsQ0FBQztRQUN0QixvQkFBZSxHQUFhLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDOUMsV0FBTSxHQUFXLENBQUMsQ0FBQztRQUNuQixjQUFTLEdBQStCLFFBQVEsQ0FBQztRQUNqRCxrQkFBYSxHQUFXLGlCQUFpQixDQUFDO1FBYzNDLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFDckIsU0FBSSxHQUFtQyxJQUFJLFlBQVksRUFBb0IsQ0FBQztLQXdFdkY7SUFyRkMsSUFDSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxPQUFlO1FBQzFCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUtPLGNBQWMsQ0FBQyxTQUFpQjtRQUN0QyxPQUFPO1lBQ0wsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixTQUFTLEVBQUUsU0FBUztZQUNwQixpQkFBaUIsRUFBRSxJQUFJLENBQUMsU0FBUztZQUNqQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQztZQUMvQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUM7U0FDNUMsQ0FBQztJQUNKLENBQUM7SUFFRCxTQUFTO1FBQ1AsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQsUUFBUTtRQUNOLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDdkIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3BELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDO1lBQzNCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNwRCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLENBQUMsVUFBa0I7UUFDeEIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQztRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxTQUFrQjtRQUNqQyxNQUFNLEtBQUssR0FBRyxTQUFTLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDbkUsT0FBTyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUMvQixDQUFDO0lBRUQsY0FBYyxDQUFDLFNBQWtCO1FBQy9CLE1BQU0sS0FBSyxHQUFHLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNuRSxJQUFJLFFBQVEsR0FBRyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDM0QsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzNCLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUM3QixDQUFDO1FBQ0QsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzlCLENBQUM7K0dBaEdVLDRCQUE0QjttR0FBNUIsNEJBQTRCLHdYQ1R6QyxtdURBNkNBOzs0RkRwQ2EsNEJBQTRCO2tCQUx4QyxTQUFTOytCQUNFLHVCQUF1Qjs4QkFLeEIsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdGLFFBQVE7c0JBRFgsS0FBSztnQkFhSSxJQUFJO3NCQUFiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBGd1BhZ2luYXRvckV2ZW50IH0gZnJvbSAnLi4vcGFnaW5hdG9yLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnctcGFnaW5hdG9yLWFkdmFuY2VkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2luYXRvci1hZHZhbmNlZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhZ2luYXRvci1hZHZhbmNlZC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBGd1BhZ2luYXRvckFkdmFuY2VkQ29tcG9uZW50IHtcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2hvd05leHQ6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBzaG93UHJldmlvdXM6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBzaG93Rmlyc3Q6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2hvd0xhc3Q6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcGFnZUluZGV4OiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBwYWdlU2l6ZU9wdGlvbnM6IG51bWJlcltdID0gWzEwLCAyNSwgNTAsIDEwMF07XG4gIEBJbnB1dCgpIGxlbmd0aDogbnVtYmVyID0gMDtcbiAgQElucHV0KCkgYWxpZ25tZW50OiAnc3RhcnQnIHwgJ2NlbnRlcicgfCAnZW5kJyA9ICdjZW50ZXInO1xuICBASW5wdXQoKSBzZWxlY3RvclRpdGxlOiBzdHJpbmcgPSAnSXRlbXMgcGVyIHBhZ2U6JztcblxuICBASW5wdXQoKVxuICBnZXQgcGFnZVNpemUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fcGFnZVNpemU7XG4gIH1cblxuICBzZXQgcGFnZVNpemUobmV3U2l6ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fcGFnZVNpemUgPSBwYXJzZUludChuZXdTaXplLnRvU3RyaW5nKCkpO1xuICAgIHRoaXMucGFnZUluZGV4ID0gMDtcbiAgICBjb25zdCBwYWdlRXZ0ID0gdGhpcy5idWlsZFBhZ2VFdmVudCgwKTtcbiAgICB0aGlzLnBhZ2UuZW1pdChwYWdlRXZ0KTtcbiAgfVxuXG4gIHByaXZhdGUgX3BhZ2VTaXplOiBudW1iZXIgPSAxMDtcbiAgQE91dHB1dCgpIHBhZ2U6IEV2ZW50RW1pdHRlcjxGd1BhZ2luYXRvckV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RndQYWdpbmF0b3JFdmVudD4oKTtcblxuICBwcml2YXRlIGJ1aWxkUGFnZUV2ZW50KHBhZ2VJbmRleDogbnVtYmVyKTogRndQYWdpbmF0b3JFdmVudCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxlbmd0aDogdGhpcy5sZW5ndGgsXG4gICAgICBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSxcbiAgICAgIHBhZ2VJbmRleDogcGFnZUluZGV4LFxuICAgICAgcHJldmlvdXNQYWdlSW5kZXg6IHRoaXMucGFnZUluZGV4LFxuICAgICAgcm93SW5kZXhTdGFydDogdGhpcy5nZXRSb3dJbmRleFN0YXJ0KHBhZ2VJbmRleCksXG4gICAgICByb3dJbmRleEVuZDogdGhpcy5nZXRSb3dJbmRleEVuZChwYWdlSW5kZXgpLFxuICAgIH07XG4gIH1cblxuICBmaXJzdFBhZ2UoKTogdm9pZCB7XG4gICAgY29uc3QgZXZ0ID0gdGhpcy5idWlsZFBhZ2VFdmVudCgwKTtcbiAgICB0aGlzLnBhZ2VJbmRleCA9IDA7XG4gICAgdGhpcy5wYWdlLmVtaXQoZXZ0KTtcbiAgfVxuXG4gIGxhc3RQYWdlKCk6IHZvaWQge1xuICAgIGNvbnN0IGV2dCA9IHRoaXMuYnVpbGRQYWdlRXZlbnQodGhpcy5nZXROdW1iZXJPZlBhZ2VzKCkpO1xuICAgIHRoaXMucGFnZUluZGV4ID0gdGhpcy5nZXROdW1iZXJPZlBhZ2VzKCkgLSAxO1xuICAgIHRoaXMucGFnZS5lbWl0KGV2dCk7XG4gIH1cblxuICBuZXh0UGFnZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5oYXNOZXh0UGFnZSgpKSB7XG4gICAgICBjb25zdCBldnQgPSB0aGlzLmJ1aWxkUGFnZUV2ZW50KHRoaXMucGFnZUluZGV4ICsgMSk7XG4gICAgICB0aGlzLnBhZ2VJbmRleCsrO1xuICAgICAgdGhpcy5wYWdlLmVtaXQoZXZ0KTtcbiAgICB9XG4gIH1cblxuICBwcmV2aW91c1BhZ2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaGFzUHJldmlvdXNQYWdlKCkpIHtcbiAgICAgIGNvbnN0IGV2dCA9IHRoaXMuYnVpbGRQYWdlRXZlbnQodGhpcy5wYWdlSW5kZXggLSAxKTtcbiAgICAgIHRoaXMucGFnZUluZGV4LS07XG4gICAgICB0aGlzLnBhZ2UuZW1pdChldnQpO1xuICAgIH1cbiAgfVxuXG4gIHNldFBhZ2UocGFnZU51bWJlcjogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgZXZ0ID0gdGhpcy5idWlsZFBhZ2VFdmVudChwYWdlTnVtYmVyKTtcbiAgICB0aGlzLnBhZ2VJbmRleCA9IHBhZ2VOdW1iZXI7XG4gICAgdGhpcy5wYWdlLmVtaXQoZXZ0KTtcbiAgfVxuXG4gIGdldE51bWJlck9mUGFnZXMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5jZWlsKHRoaXMubGVuZ3RoIC8gdGhpcy5wYWdlU2l6ZSk7XG4gIH1cblxuICBnZXRSb3dJbmRleFN0YXJ0KHBhZ2VJbmRleD86IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3QgaW5kZXggPSBwYWdlSW5kZXggIT09IHVuZGVmaW5lZCA/IHBhZ2VJbmRleCA6IHRoaXMucGFnZUluZGV4O1xuICAgIHJldHVybiBpbmRleCAqIHRoaXMucGFnZVNpemU7XG4gIH1cblxuICBnZXRSb3dJbmRleEVuZChwYWdlSW5kZXg/OiBudW1iZXIpOiBudW1iZXIge1xuICAgIGNvbnN0IGluZGV4ID0gcGFnZUluZGV4ICE9PSB1bmRlZmluZWQgPyBwYWdlSW5kZXggOiB0aGlzLnBhZ2VJbmRleDtcbiAgICBsZXQgaW5kZXhFbmQgPSAoaW5kZXggKiB0aGlzLnBhZ2VTaXplKSArIHRoaXMucGFnZVNpemUgLSAxO1xuICAgIGlmIChpbmRleEVuZCA+IHRoaXMubGVuZ3RoKSB7XG4gICAgICBpbmRleEVuZCA9IHRoaXMubGVuZ3RoIC0gMTtcbiAgICB9XG4gICAgcmV0dXJuIGluZGV4RW5kO1xuICB9XG5cbiAgaGFzTmV4dFBhZ2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLnBhZ2VJbmRleCAhPT0gdGhpcy5nZXROdW1iZXJPZlBhZ2VzKCkgLSAxKTtcbiAgfVxuXG4gIGhhc1ByZXZpb3VzUGFnZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHRoaXMucGFnZUluZGV4ID4gMCk7XG4gIH1cbn1cbiIsIjxkaXYgW25nQ2xhc3NdPVwiWydwYWdpbmF0b3InLCBhbGlnbm1lbnRdXCI+XG4gIDxkaXYgY2xhc3M9XCJwYWdlcy1zZWxlY3RvclwiPlxuICAgIDxkaXY+XG4gICAgICA8cCBjbGFzcz1cInZpc2lvbi1wMlwiIFtuZ0NsYXNzXT1cImRpc2FibGVkPydkaXNhYmxlZCc6JydcIj57eyBzZWxlY3RvclRpdGxlIH19PC9wPlxuICAgICAgJm5ic3A7XG4gICAgICA8Znctc2VsZWN0XG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIHdpZHRoPVwiODBweFwiIHBsYWNlaG9sZGVyPVwiU2l6ZVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwicGFnZVNpemVcIj5cbiAgICAgICAgPGZ3LW1lbnUtaXRlbVxuICAgICAgICAgICpuZ0Zvcj1cImxldCBzaXplIG9mIHBhZ2VTaXplT3B0aW9uc1wiXG4gICAgICAgICAgW3ZhbHVlXT1cInNpemUudG9TdHJpbmcoKVwiXG4gICAgICAgICAgW3RpdGxlXT1cInNpemUudG9TdHJpbmcoKVwiXG4gICAgICAgICAgW3NlbGVjdGVkXT1cInBhZ2VTaXplLnRvU3RyaW5nKCk9PT1zaXplLnRvU3RyaW5nKClcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgID48L2Z3LW1lbnUtaXRlbT5cbiAgICAgIDwvZnctc2VsZWN0PlxuICAgIDwvZGl2PlxuICAgIDxwIGNsYXNzPVwidmlzaW9uLXAyIHJlY29yZC1jb3VudFwiIFtuZ0NsYXNzXT1cImRpc2FibGVkPydkaXNhYmxlZCc6JydcIj5cbiAgICAgIHt7IGdldFJvd0luZGV4U3RhcnQoKSArIDEgfX0te3sgZ2V0Um93SW5kZXhFbmQoKSArIDEgfX1cbiAgICAgIG9mIHt7IGxlbmd0aCB9fTwvcD5cbiAgICA8ZGl2PlxuICAgICAgPGJ1dHRvblxuICAgICAgICAqbmdJZj1cInNob3dGaXJzdFwiXG4gICAgICAgIGNsYXNzPVwicGFnZS1pdGVtIHBhZ2UtYWN0aW9uIHBhZ2UtZmlyc3RcIiBbZGlzYWJsZWRdPVwiIWhhc1ByZXZpb3VzUGFnZSgpIHx8ICBkaXNhYmxlZFwiIChjbGljayk9XCJmaXJzdFBhZ2UoKVwiPlxuICAgICAgICA8ZnctaWNvbj5hcnJvdy1iYWNrLWNvbGxhcHNlPC9mdy1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwic2hvd1ByZXZpb3VzXCJcbiAgICAgICAgY2xhc3M9XCJwYWdlLWl0ZW0gcGFnZS1hY3Rpb24gcGFnZS1wcmV2aW91c1wiIFtkaXNhYmxlZF09XCIhaGFzUHJldmlvdXNQYWdlKCkgfHwgZGlzYWJsZWRcIlxuICAgICAgICAoY2xpY2spPVwicHJldmlvdXNQYWdlKClcIj5cbiAgICAgICAgPGZ3LWljb24+Y2hldnJvbi1iYWNrPC9mdy1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwic2hvd05leHRcIiBjbGFzcz1cInBhZ2UtaXRlbSBwYWdlLWFjdGlvbiBwYWdlLW5leHRcIiBbZGlzYWJsZWRdPVwiIWhhc05leHRQYWdlKCkgfHwgZGlzYWJsZWRcIlxuICAgICAgICAoY2xpY2spPVwibmV4dFBhZ2UoKVwiPlxuICAgICAgICA8ZnctaWNvbj5jaGV2cm9uLWZvcndhcmQ8L2Z3LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nSWY9XCJzaG93TGFzdFwiIGNsYXNzPVwicGFnZS1pdGVtIHBhZ2UtYWN0aW9uIHBhZ2UtbGFzdFwiIFtkaXNhYmxlZF09XCIhaGFzTmV4dFBhZ2UoKSB8fCBkaXNhYmxlZFwiXG4gICAgICAgIChjbGljayk9XCJsYXN0UGFnZSgpXCI+XG4gICAgICAgIDxmdy1pY29uPmFycm93LWZvcndhcmQtY29sbGFwc2U8L2Z3LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLWFkdmFuY2VkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2luYXRvci9wYWdpbmF0b3ItYWR2YW5jZWQvcGFnaW5hdG9yLWFkdmFuY2VkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2luYXRvci9wYWdpbmF0b3ItYWR2YW5jZWQvcGFnaW5hdG9yLWFkdmFuY2VkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFTdkUsTUFBTSxPQUFPLDRCQUE0QjtJQUx6QztRQU1XLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsYUFBUSxHQUFZLElBQUksQ0FBQztRQUN6QixpQkFBWSxHQUFZLElBQUksQ0FBQztRQUM3QixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsY0FBUyxHQUFXLENBQUMsQ0FBQztRQUN0QixvQkFBZSxHQUFhLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDOUMsV0FBTSxHQUFXLENBQUMsQ0FBQztRQUNuQixjQUFTLEdBQStCLFFBQVEsQ0FBQztRQUNqRCxrQkFBYSxHQUFXLGlCQUFpQixDQUFDO1FBYzNDLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFDckIsU0FBSSxHQUFtQyxJQUFJLFlBQVksRUFBb0IsQ0FBQztLQXdFdkY7SUFyRkMsSUFDSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxPQUFlO1FBQzFCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLE9B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QUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDbkUsSUFBSSxRQUFRLEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQzNELElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMzQixRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDN0IsQ0FBQztRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELGVBQWU7UUFDYixPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM5QixDQUFDOytHQWhHVSw0QkFBNEI7bUdBQTVCLDRCQUE0Qix3WENUekMsbXVEQTZDQTs7NEZEcENhLDRCQUE0QjtrQkFMeEMsU0FBUzsrQkFDRSx1QkFBdUI7OEJBS3hCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFHRixRQUFRO3NCQURYLEtBQUs7Z0JBYUksSUFBSTtzQkFBYixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRndQYWdpbmF0b3JFdmVudCB9IGZyb20gJy4uL3BhZ2luYXRvci5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Z3LXBhZ2luYXRvci1hZHZhbmNlZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWdpbmF0b3ItYWR2YW5jZWQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wYWdpbmF0b3ItYWR2YW5jZWQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRndQYWdpbmF0b3JBZHZhbmNlZENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dOZXh0OiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgc2hvd1ByZXZpb3VzOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgc2hvd0ZpcnN0OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dMYXN0OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHBhZ2VJbmRleDogbnVtYmVyID0gMDtcbiAgQElucHV0KCkgcGFnZVNpemVPcHRpb25zOiBudW1iZXJbXSA9IFsxMCwgMjUsIDUwLCAxMDBdO1xuICBASW5wdXQoKSBsZW5ndGg6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIGFsaWdubWVudDogJ3N0YXJ0JyB8ICdjZW50ZXInIHwgJ2VuZCcgPSAnY2VudGVyJztcbiAgQElucHV0KCkgc2VsZWN0b3JUaXRsZTogc3RyaW5nID0gJ0l0ZW1zIHBlciBwYWdlOic7XG5cbiAgQElucHV0KClcbiAgZ2V0IHBhZ2VTaXplKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3BhZ2VTaXplO1xuICB9XG5cbiAgc2V0IHBhZ2VTaXplKG5ld1NpemU6IG51bWJlcikge1xuICAgIHRoaXMuX3BhZ2VTaXplID0gcGFyc2VJbnQobmV3U2l6ZS50b1N0cmluZygpKTtcbiAgICB0aGlzLnBhZ2VJbmRleCA9IDA7XG4gICAgY29uc3QgcGFnZUV2dCA9IHRoaXMuYnVpbGRQYWdlRXZlbnQoMCk7XG4gICAgdGhpcy5wYWdlLmVtaXQocGFnZUV2dCk7XG4gIH1cblxuICBwcml2YXRlIF9wYWdlU2l6ZTogbnVtYmVyID0gMTA7XG4gIEBPdXRwdXQoKSBwYWdlOiBFdmVudEVtaXR0ZXI8RndQYWdpbmF0b3JFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEZ3UGFnaW5hdG9yRXZlbnQ+KCk7XG5cbiAgcHJpdmF0ZSBidWlsZFBhZ2VFdmVudChwYWdlSW5kZXg6IG51bWJlcik6IEZ3UGFnaW5hdG9yRXZlbnQge1xuICAgIHJldHVybiB7XG4gICAgICBsZW5ndGg6IHRoaXMubGVuZ3RoLFxuICAgICAgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsXG4gICAgICBwYWdlSW5kZXg6IHBhZ2VJbmRleCxcbiAgICAgIHByZXZpb3VzUGFnZUluZGV4OiB0aGlzLnBhZ2VJbmRleCxcbiAgICAgIHJvd0luZGV4U3RhcnQ6IHRoaXMuZ2V0Um93SW5kZXhTdGFydChwYWdlSW5kZXgpLFxuICAgICAgcm93SW5kZXhFbmQ6IHRoaXMuZ2V0Um93SW5kZXhFbmQocGFnZUluZGV4KSxcbiAgICB9O1xuICB9XG5cbiAgZmlyc3RQYWdlKCk6IHZvaWQge1xuICAgIGNvbnN0IGV2dCA9IHRoaXMuYnVpbGRQYWdlRXZlbnQoMCk7XG4gICAgdGhpcy5wYWdlSW5kZXggPSAwO1xuICAgIHRoaXMucGFnZS5lbWl0KGV2dCk7XG4gIH1cblxuICBsYXN0UGFnZSgpOiB2b2lkIHtcbiAgICBjb25zdCBldnQgPSB0aGlzLmJ1aWxkUGFnZUV2ZW50KHRoaXMuZ2V0TnVtYmVyT2ZQYWdlcygpIC0gMSk7XG4gICAgdGhpcy5wYWdlSW5kZXggPSB0aGlzLmdldE51bWJlck9mUGFnZXMoKSAtIDE7XG4gICAgdGhpcy5wYWdlLmVtaXQoZXZ0KTtcbiAgfVxuXG4gIG5leHRQYWdlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmhhc05leHRQYWdlKCkpIHtcbiAgICAgIGNvbnN0IGV2dCA9IHRoaXMuYnVpbGRQYWdlRXZlbnQodGhpcy5wYWdlSW5kZXggKyAxKTtcbiAgICAgIHRoaXMucGFnZUluZGV4Kys7XG4gICAgICB0aGlzLnBhZ2UuZW1pdChldnQpO1xuICAgIH1cbiAgfVxuXG4gIHByZXZpb3VzUGFnZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5oYXNQcmV2aW91c1BhZ2UoKSkge1xuICAgICAgY29uc3QgZXZ0ID0gdGhpcy5idWlsZFBhZ2VFdmVudCh0aGlzLnBhZ2VJbmRleCAtIDEpO1xuICAgICAgdGhpcy5wYWdlSW5kZXgtLTtcbiAgICAgIHRoaXMucGFnZS5lbWl0KGV2dCk7XG4gICAgfVxuICB9XG5cbiAgc2V0UGFnZShwYWdlTnVtYmVyOiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBldnQgPSB0aGlzLmJ1aWxkUGFnZUV2ZW50KHBhZ2VOdW1iZXIpO1xuICAgIHRoaXMucGFnZUluZGV4ID0gcGFnZU51bWJlcjtcbiAgICB0aGlzLnBhZ2UuZW1pdChldnQpO1xuICB9XG5cbiAgZ2V0TnVtYmVyT2ZQYWdlcygpOiBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLmNlaWwodGhpcy5sZW5ndGggLyB0aGlzLnBhZ2VTaXplKTtcbiAgfVxuXG4gIGdldFJvd0luZGV4U3RhcnQocGFnZUluZGV4PzogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBjb25zdCBpbmRleCA9IHBhZ2VJbmRleCAhPT0gdW5kZWZpbmVkID8gcGFnZUluZGV4IDogdGhpcy5wYWdlSW5kZXg7XG4gICAgcmV0dXJuIGluZGV4ICogdGhpcy5wYWdlU2l6ZTtcbiAgfVxuXG4gIGdldFJvd0luZGV4RW5kKHBhZ2VJbmRleD86IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3QgaW5kZXggPSBwYWdlSW5kZXggIT09IHVuZGVmaW5lZCA/IHBhZ2VJbmRleCA6IHRoaXMucGFnZUluZGV4O1xuICAgIGxldCBpbmRleEVuZCA9IChpbmRleCAqIHRoaXMucGFnZVNpemUpICsgdGhpcy5wYWdlU2l6ZSAtIDE7XG4gICAgaWYgKGluZGV4RW5kID4gdGhpcy5sZW5ndGgpIHtcbiAgICAgIGluZGV4RW5kID0gdGhpcy5sZW5ndGggLSAxO1xuICAgIH1cbiAgICByZXR1cm4gaW5kZXhFbmQ7XG4gIH1cblxuICBoYXNOZXh0UGFnZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHRoaXMucGFnZUluZGV4ICE9PSB0aGlzLmdldE51bWJlck9mUGFnZXMoKSAtIDEpO1xuICB9XG5cbiAgaGFzUHJldmlvdXNQYWdlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5wYWdlSW5kZXggPiAwKTtcbiAgfVxufVxuIiwiPGRpdiBbbmdDbGFzc109XCJbJ3BhZ2luYXRvcicsIGFsaWdubWVudF1cIj5cbiAgPGRpdiBjbGFzcz1cInBhZ2VzLXNlbGVjdG9yXCI+XG4gICAgPGRpdj5cbiAgICAgIDxwIGNsYXNzPVwidmlzaW9uLXAyXCIgW25nQ2xhc3NdPVwiZGlzYWJsZWQ/J2Rpc2FibGVkJzonJ1wiPnt7IHNlbGVjdG9yVGl0bGUgfX08L3A+XG4gICAgICAmbmJzcDtcbiAgICAgIDxmdy1zZWxlY3RcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgd2lkdGg9XCI4MHB4XCIgcGxhY2Vob2xkZXI9XCJTaXplXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJwYWdlU2l6ZVwiPlxuICAgICAgICA8ZnctbWVudS1pdGVtXG4gICAgICAgICAgKm5nRm9yPVwibGV0IHNpemUgb2YgcGFnZVNpemVPcHRpb25zXCJcbiAgICAgICAgICBbdmFsdWVdPVwic2l6ZS50b1N0cmluZygpXCJcbiAgICAgICAgICBbdGl0bGVdPVwic2l6ZS50b1N0cmluZygpXCJcbiAgICAgICAgICBbc2VsZWN0ZWRdPVwicGFnZVNpemUudG9TdHJpbmcoKT09PXNpemUudG9TdHJpbmcoKVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgPjwvZnctbWVudS1pdGVtPlxuICAgICAgPC9mdy1zZWxlY3Q+XG4gICAgPC9kaXY+XG4gICAgPHAgY2xhc3M9XCJ2aXNpb24tcDIgcmVjb3JkLWNvdW50XCIgW25nQ2xhc3NdPVwiZGlzYWJsZWQ/J2Rpc2FibGVkJzonJ1wiPlxuICAgICAge3sgZ2V0Um93SW5kZXhTdGFydCgpICsgMSB9fS17eyBnZXRSb3dJbmRleEVuZCgpICsgMSB9fVxuICAgICAgb2Yge3sgbGVuZ3RoIH19PC9wPlxuICAgIDxkaXY+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwic2hvd0ZpcnN0XCJcbiAgICAgICAgY2xhc3M9XCJwYWdlLWl0ZW0gcGFnZS1hY3Rpb24gcGFnZS1maXJzdFwiIFtkaXNhYmxlZF09XCIhaGFzUHJldmlvdXNQYWdlKCkgfHwgIGRpc2FibGVkXCIgKGNsaWNrKT1cImZpcnN0UGFnZSgpXCI+XG4gICAgICAgIDxmdy1pY29uPmFycm93LWJhY2stY29sbGFwc2U8L2Z3LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nSWY9XCJzaG93UHJldmlvdXNcIlxuICAgICAgICBjbGFzcz1cInBhZ2UtaXRlbSBwYWdlLWFjdGlvbiBwYWdlLXByZXZpb3VzXCIgW2Rpc2FibGVkXT1cIiFoYXNQcmV2aW91c1BhZ2UoKSB8fCBkaXNhYmxlZFwiXG4gICAgICAgIChjbGljayk9XCJwcmV2aW91c1BhZ2UoKVwiPlxuICAgICAgICA8ZnctaWNvbj5jaGV2cm9uLWJhY2s8L2Z3LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nSWY9XCJzaG93TmV4dFwiIGNsYXNzPVwicGFnZS1pdGVtIHBhZ2UtYWN0aW9uIHBhZ2UtbmV4dFwiIFtkaXNhYmxlZF09XCIhaGFzTmV4dFBhZ2UoKSB8fCBkaXNhYmxlZFwiXG4gICAgICAgIChjbGljayk9XCJuZXh0UGFnZSgpXCI+XG4gICAgICAgIDxmdy1pY29uPmNoZXZyb24tZm9yd2FyZDwvZnctaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAqbmdJZj1cInNob3dMYXN0XCIgY2xhc3M9XCJwYWdlLWl0ZW0gcGFnZS1hY3Rpb24gcGFnZS1sYXN0XCIgW2Rpc2FibGVkXT1cIiFoYXNOZXh0UGFnZSgpIHx8IGRpc2FibGVkXCJcbiAgICAgICAgKGNsaWNrKT1cImxhc3RQYWdlKClcIj5cbiAgICAgICAgPGZ3LWljb24+YXJyb3ctZm9yd2FyZC1jb2xsYXBzZTwvZnctaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -294,7 +294,7 @@ export class FwMultiSelectMenuComponent {
|
|
|
294
294
|
useExisting: forwardRef(() => FwMultiSelectMenuComponent),
|
|
295
295
|
multi: true,
|
|
296
296
|
},
|
|
297
|
-
], queries: [{ propertyName: "customMenuItems", predicate: FwMenuItemComponent, descendants: true }], viewQueries: [{ propertyName: "menuFilter", first: true, predicate: FwMenuContainerComponent, descendants: true, isSignal: true }, { propertyName: "trigger", first: true, predicate: CdkMenuTrigger, descendants: true }, { propertyName: "menu", first: true, predicate: FwMenuComponent, descendants: true }, { propertyName: "renderedMenuItems", predicate: FwMenuItemComponent, descendants: true }], ngImport: i0, template: "<div [ngStyle]=\"{width: width}\" #wrapper>\n\n <div\n fwMenuRegister\n class=\"chip-grid\"\n [ngClass]=\"[size]\"\n [ngStyle]=\"{ minHeight: minHeight, maxHeight: maxHeight }\"\n [cdkMenuTriggerFor]=\"selectMenu\">\n <span *ngIf=\"value.length === 0\" class=\"placeholder\">{{placeholder}}</span>\n\n <!-- CHIPS -->\n <div class=\"inner-chip-grid\" *ngIf=\"value && value.length>0\">\n <fw-chip\n *ngFor=\"let chip of selectedOptions | slice:0:maxSelectedShown\"\n [title]=\"chip[titleProperty]\"\n [value]=\"chip[valueProperty]\"\n [icon]=\"chip[iconProperty]\"\n color=\"primary\"\n [showClose]=\"true\"\n (close)=\"handleChipClose(chip)\"\n [selectable]=\"false\">\n </fw-chip>\n <span *ngIf=\"maxSelectedShown === 0 && value.length > 0\" class=\"selected-text\">\n {{ value.length }} selected\n </span>\n <span *ngIf=\"value.length > maxSelectedShown && maxSelectedShown > 0\" class=\"max-exceeded\">\n +{{ value.length - maxSelectedShown }} more\n </span>\n </div>\n\n <fw-icon *ngIf=\"showClear() && value.length > 0\" (click)=\"updateValue([])\">close</fw-icon>\n <fw-icon>chevron-down</fw-icon>\n </div>\n\n <!-- MENU -->\n <ng-template #selectMenu>\n <fw-menu-filter\n [keyHandler]=\"handleKeyDown\"\n [showFilter]=\"showFilter()\"\n [focusFilterOnMount]=\"showFilter()\"\n [width]=\"optionsWidth || (wrapper.offsetWidth - 2) + 'px'\"\n [additionalMenuItems]=\"this.customMenuItems.toArray()\"\n [emptyText]=\"emptyText\"\n [maxHeight]=\"maxOptionsHeight\"\n [minHeight]=\"minOptionsHeight\"\n [filterFn]=\"customFilter\"\n (filteredMenuItemChange)=\"displayedOptions.set($event)\"\n >\n <div class=\"filter-content\" *ngIf=\"showSelectionInfo()\">\n <p>{{value.length}} selections</p>\n <fw-button variant=\"ghost\" (click)=\"updateValue([])\">Clear</fw-button>\n </div>\n <fw-menu\n [multiSelect]=\"true\"\n [disabled]=\"disabled\"\n [value]=\"createArray(selectedValues)\"\n (change)=\"handleMenuChange($event)\">\n <ng-container *ngIf=\"customMenuItems.length === 0\">\n <fw-menu-item\n *ngFor=\"let item of options; index as $index\"\n [title]=\"item[titleProperty]\"\n [value]=\"item[valueProperty]\"\n [icon]=\"item[iconProperty]\"\n [multiSelect]=\"true\"\n [selected]=\"value.includes(item[valueProperty])\"\n [showCheckbox]=\"useCheckbox\"\n (mouseenter)=\"setFocusedIndex(item)\"\n >\n </fw-menu-item>\n </ng-container>\n <ng-content ngProjectAs=\"custom-menu-items\" select=\"[fw-menu-item, fw-menu-separator, fw-menu-item-group, fw-menu-header]\"></ng-content>\n </fw-menu>\n </fw-menu-filter>\n </ng-template>\n</div>\n", styles: [":host .placeholder{color:var(--typography-light);font-size:14px;padding-left:4px;text-wrap:nowrap;text-overflow:ellipsis;overflow:hidden}:host .chip-grid{min-height:36px;width:100%;box-sizing:border-box;color:var(--typography-light);background:var(--page-light);display:flex;justify-content:space-between;padding:4px;align-items:center;border-radius:6px;overflow:hidden;border:1px solid var(--separations-input);cursor:pointer;font-family:Inter,sans-serif}:host .chip-grid.small{min-height:30px;padding:2px}:host .chip-grid.large{min-height:40px;padding:6px}:host .chip-grid:focus-within{border-color:var(--primary-base)}:host .chip-grid .inner-chip-grid{display:flex;flex-wrap:wrap;gap:4px;overflow:hidden auto;align-items:center;flex:1}:host .chip-grid .inner-chip-grid input{display:inline-flex;width:10px;flex-grow:1}:host .chip-grid fw-icon{font-size:20px}:host .chip-grid fw-icon:hover{color:var(--primary-base)}:host .chip-grid .selected-text{color:var(--typography-base);font-size:14px;padding:0 2px 0 4px;text-wrap:nowrap;text-overflow:ellipsis;overflow:hidden}:host .chip-grid .max-exceeded{font-size:12px}.filter-content{display:flex;align-items:center;justify-content:space-between;padding-left:4px;padding-top:4px}.filter-content p{color:var(--typography-muted);width:fit-content;margin:0}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.CdkMenuTrigger, selector: "[cdkMenuTriggerFor]", inputs: ["cdkMenuTriggerFor", "cdkMenuPosition", "cdkMenuTriggerData"], outputs: ["cdkMenuOpened", "cdkMenuClosed"], exportAs: ["cdkMenuTriggerFor"] }, { kind: "component", type: i3.FwButtonComponent, selector: "fw-button", inputs: ["color", "size", "variant", "type", "disabled", "fullWidth", "leftIcon", "rightIcon"] }, { kind: "component", type: i4.FwChipComponent, selector: "fw-chip", inputs: ["value", "variant", "color", "icon", "title", "description", "showClose", "disabled", "selected", "selectable"], outputs: ["close", "select"] }, { kind: "component", type: i5.FwIconComponent, selector: "fw-icon", inputs: ["size", "color"] }, { kind: "component", type: i6.FwMenuComponent, selector: "fw-menu", inputs: ["disabled", "size", "multiSelect", "useCheckbox", "value"], outputs: ["change"] }, { kind: "component", type: i7.FwMenuContainerComponent, selector: "fw-menu-container, fw-menu-filter", inputs: ["width", "maxHeight", "minHeight", "border", "shadow", "showFilter", "filterText", "focusFilterOnMount", "offset", "emptyText", "filterFn", "additionalMenuItems", "keyHandler"], outputs: ["filteredMenuItemChange", "filterChanged"] }, { kind: "component", type: i8.FwMenuItemComponent, selector: "fw-menu-item", inputs: ["value", "size", "title", "description", "icon", "iconColor", "disabled", "showCheckbox", "checkboxColor", "multiSelect", "hidden", "collapsed", "href", "target", "subItemsOpen", "mouseEnterHandler", "focused", "selected"], outputs: ["mouseEnterHandlerChange", "click"] }, { kind: "directive", type: i9.MenuRegisterDirective, selector: "[fwMenuRegister]" }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }] }); }
|
|
297
|
+
], queries: [{ propertyName: "customMenuItems", predicate: FwMenuItemComponent, descendants: true }], viewQueries: [{ propertyName: "menuFilter", first: true, predicate: FwMenuContainerComponent, descendants: true, isSignal: true }, { propertyName: "trigger", first: true, predicate: CdkMenuTrigger, descendants: true }, { propertyName: "menu", first: true, predicate: FwMenuComponent, descendants: true }, { propertyName: "renderedMenuItems", predicate: FwMenuItemComponent, descendants: true }], ngImport: i0, template: "<div [ngStyle]=\"{width: width}\" #wrapper>\n\n <div\n fwMenuRegister\n class=\"chip-grid\"\n [ngClass]=\"[size]\"\n [ngStyle]=\"{ minHeight: minHeight, maxHeight: maxHeight }\"\n [cdkMenuTriggerFor]=\"selectMenu\">\n <span *ngIf=\"value.length === 0\" class=\"placeholder\">{{placeholder}}</span>\n\n <!-- CHIPS -->\n <div class=\"inner-chip-grid\" *ngIf=\"value && value.length>0\">\n <fw-chip\n *ngFor=\"let chip of selectedOptions | slice:0:maxSelectedShown\"\n [title]=\"chip[titleProperty]\"\n [value]=\"chip[valueProperty]\"\n [icon]=\"chip[iconProperty]\"\n color=\"primary\"\n [showClose]=\"true\"\n (close)=\"handleChipClose(chip)\"\n [selectable]=\"false\">\n </fw-chip>\n <span *ngIf=\"maxSelectedShown === 0 && value.length > 0\" class=\"selected-text\">\n {{ value.length }} selected\n </span>\n <span *ngIf=\"value.length > maxSelectedShown && maxSelectedShown > 0\" class=\"max-exceeded\">\n +{{ value.length - maxSelectedShown }} more\n </span>\n </div>\n\n <fw-icon *ngIf=\"showClear() && value.length > 0\" (click)=\"updateValue([])\">close</fw-icon>\n <fw-icon>chevron-down</fw-icon>\n </div>\n\n <!-- MENU -->\n <ng-template #selectMenu>\n <fw-menu-filter\n [keyHandler]=\"handleKeyDown\"\n [showFilter]=\"showFilter()\"\n [focusFilterOnMount]=\"showFilter()\"\n [width]=\"optionsWidth || (wrapper.offsetWidth - 2) + 'px'\"\n [additionalMenuItems]=\"this.customMenuItems.toArray()\"\n [emptyText]=\"emptyText\"\n [maxHeight]=\"maxOptionsHeight\"\n [minHeight]=\"minOptionsHeight\"\n [filterFn]=\"customFilter\"\n (filteredMenuItemChange)=\"displayedOptions.set($event)\"\n >\n <div class=\"filter-content\" *ngIf=\"showSelectionInfo()\">\n <p>{{value.length}} selections</p>\n <fw-button variant=\"ghost\" (click)=\"updateValue([])\">Clear</fw-button>\n </div>\n <fw-menu\n [multiSelect]=\"true\"\n [disabled]=\"disabled\"\n [value]=\"createArray(selectedValues)\"\n (change)=\"handleMenuChange($event)\">\n <ng-container *ngIf=\"customMenuItems.length === 0\">\n <fw-menu-item\n *ngFor=\"let item of options; index as $index\"\n [title]=\"item[titleProperty]\"\n [value]=\"item[valueProperty]\"\n [icon]=\"item[iconProperty]\"\n [multiSelect]=\"true\"\n [selected]=\"value.includes(item[valueProperty])\"\n [showCheckbox]=\"useCheckbox\"\n (mouseenter)=\"setFocusedIndex(item)\"\n >\n </fw-menu-item>\n </ng-container>\n <ng-content ngProjectAs=\"custom-menu-items\" select=\"[fw-menu-item, fw-menu-separator, fw-menu-item-group, fw-menu-header]\"></ng-content>\n </fw-menu>\n </fw-menu-filter>\n </ng-template>\n</div>\n", styles: [":host .placeholder{color:var(--typography-light);font-size:14px;padding-left:4px;text-wrap:nowrap;text-overflow:ellipsis;overflow:hidden}:host .chip-grid{min-height:36px;width:100%;box-sizing:border-box;color:var(--typography-light);background:var(--page-light);display:flex;justify-content:space-between;padding:4px;align-items:center;border-radius:6px;overflow:hidden;border:1px solid var(--separations-input);cursor:pointer;font-family:Inter,sans-serif}:host .chip-grid.small{min-height:30px;padding:2px}:host .chip-grid.large{min-height:40px;padding:6px}:host .chip-grid:focus-within{border-color:var(--primary-base)}:host .chip-grid .inner-chip-grid{display:flex;flex-wrap:wrap;gap:4px;overflow:hidden auto;align-items:center;flex:1}:host .chip-grid .inner-chip-grid input{display:inline-flex;width:10px;flex-grow:1}:host .chip-grid fw-icon{font-size:20px}:host .chip-grid fw-icon:hover{color:var(--primary-base)}:host .chip-grid .selected-text{color:var(--typography-base);font-size:14px;padding:0 2px 0 4px;text-wrap:nowrap;text-overflow:ellipsis;overflow:hidden}:host .chip-grid .max-exceeded{font-size:12px}.filter-content{display:flex;align-items:center;justify-content:space-between;padding-left:4px;padding-top:4px}.filter-content p{color:var(--typography-muted);width:fit-content;margin:0}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.CdkMenuTrigger, selector: "[cdkMenuTriggerFor]", inputs: ["cdkMenuTriggerFor", "cdkMenuPosition", "cdkMenuTriggerData"], outputs: ["cdkMenuOpened", "cdkMenuClosed"], exportAs: ["cdkMenuTriggerFor"] }, { kind: "component", type: i3.FwButtonComponent, selector: "fw-button", inputs: ["color", "size", "variant", "type", "disabled", "fullWidth", "leftIcon", "rightIcon"] }, { kind: "component", type: i4.FwChipComponent, selector: "fw-chip", inputs: ["value", "variant", "color", "icon", "title", "description", "showClose", "disabled", "selected", "textWrap", "selectable"], outputs: ["close", "select"] }, { kind: "component", type: i5.FwIconComponent, selector: "fw-icon", inputs: ["size", "color"] }, { kind: "component", type: i6.FwMenuComponent, selector: "fw-menu", inputs: ["disabled", "size", "multiSelect", "useCheckbox", "value"], outputs: ["change"] }, { kind: "component", type: i7.FwMenuContainerComponent, selector: "fw-menu-container, fw-menu-filter", inputs: ["width", "maxHeight", "minHeight", "border", "shadow", "showFilter", "filterText", "focusFilterOnMount", "offset", "emptyText", "filterFn", "additionalMenuItems", "keyHandler"], outputs: ["filteredMenuItemChange", "filterChanged"] }, { kind: "component", type: i8.FwMenuItemComponent, selector: "fw-menu-item", inputs: ["value", "size", "title", "description", "icon", "iconColor", "disabled", "showCheckbox", "checkboxColor", "multiSelect", "hidden", "collapsed", "href", "target", "subItemsOpen", "mouseEnterHandler", "focused", "selected"], outputs: ["mouseEnterHandlerChange", "click"] }, { kind: "directive", type: i9.MenuRegisterDirective, selector: "[fwMenuRegister]" }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }] }); }
|
|
298
298
|
}
|
|
299
299
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwMultiSelectMenuComponent, decorators: [{
|
|
300
300
|
type: Component,
|
|
@@ -205,7 +205,7 @@ export class FwTypeaheadComponent {
|
|
|
205
205
|
useExisting: forwardRef(() => FwTypeaheadComponent),
|
|
206
206
|
multi: true,
|
|
207
207
|
},
|
|
208
|
-
], viewQueries: [{ propertyName: "trigger", first: true, predicate: CdkMenuTrigger, descendants: true, isSignal: true }, { propertyName: "displayedOptions", predicate: FwMenuItemComponent, descendants: true, isSignal: true }, { propertyName: "inputRef", first: true, predicate: ["input"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\n (click)=\"focusInput($event)\"\n class=\"input-container\"\n [ngClass]=\"{ 'disabled': disabled() }\"\n [cdkMenuTriggerFor]=\"menuContent\"\n fwMenuRegister\n #inputContainer>\n <fw-chip-list class=\"chips\">\n @for(val of value(); track val) {\n <fw-chip\n color=\"primary\"\n [showClose]=\"true\"\n [title]=\"val\"\n [selectable]=\"false\"\n (close)=\"closeChip(val)\"\n />\n }\n </fw-chip-list>\n <input\n test-id=\"typeahead-input\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [value]=\"searchValue()\"\n (keyup)=\"handleSearchChange($event)\"\n (keydown)=\"handleKey($event)\"\n #input\n type=\"text\"\n />\n @if(loading()) {\n <fw-progress-spinner size=\"small\"/>\n }\n</div>\n<ng-template #menuContent>\n <fw-menu-container\n [maxHeight]=\"maxOptionsHeight()\"\n [minHeight]=\"minOptionsHeight()\"\n [width]=\"optionsWidth() || inputContainer.offsetWidth - 2 + 'px'\"\n >\n <fw-menu>\n @if(loading() && !displayNewOption()) {\n <fw-menu-item title=\"Searching...\" [disabled]=\"true\"/>\n } @else if(!loading()) {\n @for (option of optionsSignal(); track option) {\n <fw-menu-item\n (click)=\"handleOptionClick($event)\"\n (mouseenter)=\"setFocusByValue(option)\"\n [title]=\"option\"\n [focused]=\"focusedOption() === option\"\n [value]=\"option\"\n />\n }\n @empty {\n @if (!displayNewOption()) {\n <fw-menu-item title=\"No tag suggestions\" [disabled]=\"true\"/>\n }\n }\n }\n @if(displayNewOption()) {\n <fw-menu-item\n (click)=\"handleOptionClick($event)\"\n (mouseenter)=\"setFocusByValue(searchValue())\"\n [title]=\"searchValue()\"\n [value]=\"searchValue()\"\n [focused]=\"focusedOption() === searchValue()\">\n <p class=\"new-tag\">New</p>\n </fw-menu-item>\n }\n </fw-menu>\n </fw-menu-container>\n</ng-template>\n", styles: [".new-tag{margin:0;color:var(--typography-light)}:host{display:flex;flex-direction:column;width:100%;line-height:21px}:host.disabled{cursor:not-allowed}:host.disabled fw-icon{cursor:not-allowed!important}:host .chips,:host fw-progress-spinner{margin:-4px 0}:host .input-container{width:100%;box-sizing:border-box;color:var(--typography-light);background:var(--page-light);display:flex;padding:8px;align-items:center;border-radius:6px;border:1px solid var(--separations-input);font-family:Inter,sans-serif}:host .input-container:focus-within{border:1px solid var(--primary-base)}:host .input-container input{min-width:80px;font-size:14px;flex:1 1 80px;color:var(--typography-base);background:var(--page-light);border:none}:host .input-container input:focus{outline:none;border:none}:host .input-container input::placeholder{color:var(--typography-light)}:host .input-container .context{color:var(--typography-light)}:host.errored .input-container,:host.ng-touched.ng-invalid .input-container{border:1px solid var(--red-base)}.disabled{opacity:.4;pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: FwTextInputModule }, { kind: "ngmodule", type: FwChipModule }, { kind: "component", type: i1.FwChipComponent, selector: "fw-chip", inputs: ["value", "variant", "color", "icon", "title", "description", "showClose", "disabled", "selected", "selectable"], outputs: ["close", "select"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: FwMenuModule }, { kind: "component", type: i2.FwMenuComponent, selector: "fw-menu", inputs: ["disabled", "size", "multiSelect", "useCheckbox", "value"], outputs: ["change"] }, { kind: "component", type: i3.FwMenuContainerComponent, selector: "fw-menu-container, fw-menu-filter", inputs: ["width", "maxHeight", "minHeight", "border", "shadow", "showFilter", "filterText", "focusFilterOnMount", "offset", "emptyText", "filterFn", "additionalMenuItems", "keyHandler"], outputs: ["filteredMenuItemChange", "filterChanged"] }, { kind: "component", type: i4.FwMenuItemComponent, selector: "fw-menu-item", inputs: ["value", "size", "title", "description", "icon", "iconColor", "disabled", "showCheckbox", "checkboxColor", "multiSelect", "hidden", "collapsed", "href", "target", "subItemsOpen", "mouseEnterHandler", "focused", "selected"], outputs: ["mouseEnterHandlerChange", "click"] }, { kind: "ngmodule", type: CdkMenuModule }, { kind: "directive", type: i5.CdkMenuTrigger, selector: "[cdkMenuTriggerFor]", inputs: ["cdkMenuTriggerFor", "cdkMenuPosition", "cdkMenuTriggerData"], outputs: ["cdkMenuOpened", "cdkMenuClosed"], exportAs: ["cdkMenuTriggerFor"] }, { kind: "directive", type: MenuRegisterDirective, selector: "[fwMenuRegister]" }, { kind: "ngmodule", type: FwProgressModule }, { kind: "component", type: i6.FwProgressSpinnerComponent, selector: "fw-progress-spinner", inputs: ["mode", "size", "color", "showValue", "value"] }, { kind: "component", type: FwChipListComponent, selector: "fw-chip-list" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
|
|
208
|
+
], viewQueries: [{ propertyName: "trigger", first: true, predicate: CdkMenuTrigger, descendants: true, isSignal: true }, { propertyName: "displayedOptions", predicate: FwMenuItemComponent, descendants: true, isSignal: true }, { propertyName: "inputRef", first: true, predicate: ["input"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\n (click)=\"focusInput($event)\"\n class=\"input-container\"\n [ngClass]=\"{ 'disabled': disabled() }\"\n [cdkMenuTriggerFor]=\"menuContent\"\n fwMenuRegister\n #inputContainer>\n <fw-chip-list class=\"chips\">\n @for(val of value(); track val) {\n <fw-chip\n color=\"primary\"\n [showClose]=\"true\"\n [title]=\"val\"\n [selectable]=\"false\"\n (close)=\"closeChip(val)\"\n />\n }\n </fw-chip-list>\n <input\n test-id=\"typeahead-input\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [value]=\"searchValue()\"\n (keyup)=\"handleSearchChange($event)\"\n (keydown)=\"handleKey($event)\"\n #input\n type=\"text\"\n />\n @if(loading()) {\n <fw-progress-spinner size=\"small\"/>\n }\n</div>\n<ng-template #menuContent>\n <fw-menu-container\n [maxHeight]=\"maxOptionsHeight()\"\n [minHeight]=\"minOptionsHeight()\"\n [width]=\"optionsWidth() || inputContainer.offsetWidth - 2 + 'px'\"\n >\n <fw-menu>\n @if(loading() && !displayNewOption()) {\n <fw-menu-item title=\"Searching...\" [disabled]=\"true\"/>\n } @else if(!loading()) {\n @for (option of optionsSignal(); track option) {\n <fw-menu-item\n (click)=\"handleOptionClick($event)\"\n (mouseenter)=\"setFocusByValue(option)\"\n [title]=\"option\"\n [focused]=\"focusedOption() === option\"\n [value]=\"option\"\n />\n }\n @empty {\n @if (!displayNewOption()) {\n <fw-menu-item title=\"No tag suggestions\" [disabled]=\"true\"/>\n }\n }\n }\n @if(displayNewOption()) {\n <fw-menu-item\n (click)=\"handleOptionClick($event)\"\n (mouseenter)=\"setFocusByValue(searchValue())\"\n [title]=\"searchValue()\"\n [value]=\"searchValue()\"\n [focused]=\"focusedOption() === searchValue()\">\n <p class=\"new-tag\">New</p>\n </fw-menu-item>\n }\n </fw-menu>\n </fw-menu-container>\n</ng-template>\n", styles: [".new-tag{margin:0;color:var(--typography-light)}:host{display:flex;flex-direction:column;width:100%;line-height:21px}:host.disabled{cursor:not-allowed}:host.disabled fw-icon{cursor:not-allowed!important}:host .chips,:host fw-progress-spinner{margin:-4px 0}:host .input-container{width:100%;box-sizing:border-box;color:var(--typography-light);background:var(--page-light);display:flex;padding:8px;align-items:center;border-radius:6px;border:1px solid var(--separations-input);font-family:Inter,sans-serif}:host .input-container:focus-within{border:1px solid var(--primary-base)}:host .input-container input{min-width:80px;font-size:14px;flex:1 1 80px;color:var(--typography-base);background:var(--page-light);border:none}:host .input-container input:focus{outline:none;border:none}:host .input-container input::placeholder{color:var(--typography-light)}:host .input-container .context{color:var(--typography-light)}:host.errored .input-container,:host.ng-touched.ng-invalid .input-container{border:1px solid var(--red-base)}.disabled{opacity:.4;pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: FwTextInputModule }, { kind: "ngmodule", type: FwChipModule }, { kind: "component", type: i1.FwChipComponent, selector: "fw-chip", inputs: ["value", "variant", "color", "icon", "title", "description", "showClose", "disabled", "selected", "textWrap", "selectable"], outputs: ["close", "select"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: FwMenuModule }, { kind: "component", type: i2.FwMenuComponent, selector: "fw-menu", inputs: ["disabled", "size", "multiSelect", "useCheckbox", "value"], outputs: ["change"] }, { kind: "component", type: i3.FwMenuContainerComponent, selector: "fw-menu-container, fw-menu-filter", inputs: ["width", "maxHeight", "minHeight", "border", "shadow", "showFilter", "filterText", "focusFilterOnMount", "offset", "emptyText", "filterFn", "additionalMenuItems", "keyHandler"], outputs: ["filteredMenuItemChange", "filterChanged"] }, { kind: "component", type: i4.FwMenuItemComponent, selector: "fw-menu-item", inputs: ["value", "size", "title", "description", "icon", "iconColor", "disabled", "showCheckbox", "checkboxColor", "multiSelect", "hidden", "collapsed", "href", "target", "subItemsOpen", "mouseEnterHandler", "focused", "selected"], outputs: ["mouseEnterHandlerChange", "click"] }, { kind: "ngmodule", type: CdkMenuModule }, { kind: "directive", type: i5.CdkMenuTrigger, selector: "[cdkMenuTriggerFor]", inputs: ["cdkMenuTriggerFor", "cdkMenuPosition", "cdkMenuTriggerData"], outputs: ["cdkMenuOpened", "cdkMenuClosed"], exportAs: ["cdkMenuTriggerFor"] }, { kind: "directive", type: MenuRegisterDirective, selector: "[fwMenuRegister]" }, { kind: "ngmodule", type: FwProgressModule }, { kind: "component", type: i6.FwProgressSpinnerComponent, selector: "fw-progress-spinner", inputs: ["mode", "size", "color", "showValue", "value"] }, { kind: "component", type: FwChipListComponent, selector: "fw-chip-list" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
|
|
209
209
|
}
|
|
210
210
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwTypeaheadComponent, decorators: [{
|
|
211
211
|
type: Component,
|
|
@@ -233,4 +233,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
233
233
|
type: HostListener,
|
|
234
234
|
args: ['click', ['$event']]
|
|
235
235
|
}] } });
|
|
236
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWFoZWFkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3R5cGVhaGVhZC90eXBlYWhlYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdHlwZWFoZWFkL3R5cGVhaGVhZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsTUFBTSxFQUVOLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUYsT0FBTyxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDakYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM1RSxPQUFP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WSwrM0JBQ1osYUFBYSxzUUFDYixxQkFBcUIsNERBQ3JCLGdCQUFnQixxTEFDaEIsbUJBQW1CLHlEQUNuQixPQUFPOzs0RkFZRSxvQkFBb0I7a0JBeEJoQyxTQUFTOytCQUNFLGNBQWMsY0FDWixJQUFJLFdBQ1A7d0JBQ1AsaUJBQWlCO3dCQUNqQixZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsWUFBWTt3QkFDWixhQUFhO3dCQUNiLHFCQUFxQjt3QkFDckIsZ0JBQWdCO3dCQUNoQixtQkFBbUI7d0JBQ25CLE9BQU87cUJBQ1IsYUFDVTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQzs0QkFDbkQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7OEJBSytCLFlBQVk7c0JBQTNDLFlBQVk7dUJBQUMsZ0JBQWdCO2dCQWdDSyxPQUFPO3NCQUF6QyxZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka01lbnVNb2R1bGUsIENka01lbnVUcmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL21lbnUnO1xuaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBjb21wdXRlZCxcbiAgZWZmZWN0LFxuICBFbGVtZW50UmVmLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIG1vZGVsLFxuICBzaWduYWwsXG4gIHZpZXdDaGlsZCxcbiAgdmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUsIG9mLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IE1lbnVSZWdpc3RlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvbWVudS1yZWdpc3Rlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRndDaGlwTW9kdWxlIH0gZnJvbSAnLi4vY2hpcC9jaGlwLm1vZHVsZSc7XG5pbXBvcnQgeyBGd0NoaXBMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vY2hpcC1saXN0L2NoaXAtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRndNZW51TW9kdWxlIH0gZnJvbSAnLi4vbWVudS9tZW51Lm1vZHVsZSc7XG5pbXBvcnQgeyBGd01lbnVJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vbWVudS9tZW51LWl0ZW0vbWVudS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGd1Byb2dyZXNzTW9kdWxlIH0gZnJvbSAnLi4vcHJvZ3Jlc3MvcHJvZ3Jlc3MubW9kdWxlJztcbmltcG9ydCB7IEZ3VGV4dElucHV0TW9kdWxlIH0gZnJvbSAnLi4vdGV4dC1pbnB1dC90ZXh0LWlucHV0Lm1vZHVsZSc7XG5cbnR5cGUgT3B0aW9uRmV0Y2hpbmdGbiA9IChzZWFyY2hTdHJpbmc6IHN0cmluZykgPT4gT2JzZXJ2YWJsZTxzdHJpbmdbXT47XG5cbi8qKlxuICogQ29tcG9uZW50IGZvciBoYXZpbmcgYSB1c2VyIHNlbGVjdCBtdWx0aXBsZSB2YWx1ZXMgd2hpbGUgYWxzbyBhbGxvd2luZyBhcmJpdHJhcnkgdmFsdWVzIHRvIGJlIGFkZGVkXG4gKiBAc2VlIFtWaXNpb24gRG9jc10oaHR0cHM6Ly9jZG4uZmx5d2hlZWwuaW8vZG9jcy92aXNpb24vbWFzdGVyLz9wYXRoPS9kb2NzL2Zvcm0tY29udHJvbHMtdHlwZWFoZWFkLS1kb2NzKVxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmdy10eXBlYWhlYWQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgRndUZXh0SW5wdXRNb2R1bGUsXG4gICAgRndDaGlwTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRndNZW51TW9kdWxlLFxuICAgIENka01lbnVNb2R1bGUsXG4gICAgTWVudVJlZ2lzdGVyRGlyZWN0aXZlLFxuICAgIEZ3UHJvZ3Jlc3NNb2R1bGUsXG4gICAgRndDaGlwTGlzdENvbXBvbmVudCxcbiAgICBOZ0NsYXNzLFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZ3VHlwZWFoZWFkQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi90eXBlYWhlYWQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdHlwZWFoZWFkLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgRndUeXBlYWhlYWRDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJykgb3V0c2lkZUNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgdGhpcy50cmlnZ2VyKCkuY2xvc2UoKTtcbiAgfVxuXG4gIHRyaWdnZXIgPSB2aWV3Q2hpbGQoQ2RrTWVudVRyaWdnZXIpO1xuICBjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIGxvYWRpbmcgPSBtb2RlbChmYWxzZSk7XG4gIGRpc2FibGVkID0gbW9kZWwoZmFsc2UpO1xuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQuc2V0KGlzRGlzYWJsZWQpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZShpbmNvbWluZ1ZhbHVlOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUuc2V0KGluY29taW5nVmFsdWUpO1xuICB9XG5cbiAgb25DaGFuZ2UgPSAoXzogc3RyaW5nW10pOiB2b2lkID0+IHtcbiAgfTtcblxuICByZWdpc3Rlck9uQ2hhbmdlKG9uQ2hhbmdlRm4pOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gb25DaGFuZ2VGbjtcbiAgfVxuXG4gIG9uVG91Y2hlZCA9ICgpOiB2b2lkID0+IHtcbiAgfTtcblxuICByZWdpc3Rlck9uVG91Y2hlZChvblRvdWNoZWRGbik6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gb25Ub3VjaGVkRm47XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pIG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgdmFsdWUgPSBtb2RlbDxzdHJpbmdbXT4oW10pO1xuICBvcHRpb25zSW5wdXQgPSBpbnB1dDxzdHJpbmdbXSB8IE9wdGlvbkZldGNoaW5nRm4+KFtdLCB7IGFsaWFzOiAnb3B0aW9ucycgfSk7XG5cbiAgbWF4T3B0aW9uc0hlaWdodCA9IGlucHV0KCc0MDBweCcpO1xuICBtaW5PcHRpb25zSGVpZ2h0ID0gaW5wdXQoJzBweCcpO1xuICBvcHRpb25zV2lkdGggPSBpbnB1dCgnJyk7XG5cbiAgbm90aWZ5T25WYWx1ZUNoYW5nZXMgPSBlZmZlY3QoKCkgPT4ge1xuICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSgpKTtcbiAgfSk7XG5cbiAgc2VhcmNoVmFsdWUgPSBtb2RlbCgnJyk7XG4gIHNlYXJjaFZhbHVlQ2hhbmdlcyQgPSB0b09ic2VydmFibGUodGhpcy5zZWFyY2hWYWx1ZSk7XG5cbiAgaGFuZGxlU2VhcmNoQ2hhbmdlKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMudHJpZ2dlcigpLmNsb3NlZCkge1xuICAgICAgdGhpcy50cmlnZ2VyKCkub3BlbigpO1xuICAgIH1cbiAgICBjb25zdCB2YWx1ZSA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XG4gICAgdGhpcy5zZWFyY2hWYWx1ZS5zZXQodmFsdWUpO1xuICB9XG5cbiAgYWxsb3dOZXcgPSBpbnB1dCh0cnVlKTtcbiAgcGxhY2Vob2xkZXIgPSBpbnB1dCgnRW50ZXIgdGFncy4uLicpO1xuXG4gIG9wdGlvbnMkOiBPYnNlcnZhYmxlPHN0cmluZ1tdPiA9IHRoaXMuc2VhcmNoVmFsdWVDaGFuZ2VzJC5waXBlKFxuICAgIHN0YXJ0V2l0aCgnJyksXG4gICAgdGFwKCgpID0+IHRoaXMubG9hZGluZy5zZXQodHJ1ZSkpLFxuICAgIHN3aXRjaE1hcChzZWFyY2hTdHJpbmcgPT4ge1xuXG4gICAgICBpZiAodHlwZW9mIHRoaXMub3B0aW9uc0lucHV0KCkgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgY29uc3QgZmV0Y2hpbmdGdW5jdGlvbiA9IHRoaXMub3B0aW9uc0lucHV0KCkgYXMgT3B0aW9uRmV0Y2hpbmdGbjtcbiAgICAgICAgcmV0dXJuIGZldGNoaW5nRnVuY3Rpb24oc2VhcmNoU3RyaW5nKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZmlsdGVyZWRTdGF0aWNPcHRpb25zJCA9IG9mKHRoaXMub3B0aW9uc0lucHV0KCkgYXMgc3RyaW5nW10pLnBpcGUoXG4gICAgICAgIG1hcChvcHRpb25zID0+IG9wdGlvbnMuZmlsdGVyKG9wdCA9PiBvcHQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hTdHJpbmcudG9Mb3dlckNhc2UoKSkpKSxcbiAgICAgICk7XG5cbiAgICAgIHJldHVybiBmaWx0ZXJlZFN0YXRpY09wdGlvbnMkO1xuICAgIH0pLFxuICAgIG1hcChvcHRpb25zID0+IHtcbiAgICAgIHJldHVybiBvcHRpb25zLmZpbHRlcihvcHRpb24gPT4ge1xuICAgICAgICBjb25zdCBhbHJlYWR5U2VsZWN0ZWQgPSB0aGlzLnZhbHVlKCkuZmluZCh2YWwgPT4gdmFsLnRvTG93ZXJDYXNlKCkgPT09IG9wdGlvbi50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgcmV0dXJuICFhbHJlYWR5U2VsZWN0ZWQ7XG4gICAgICB9KTtcbiAgICB9KSxcbiAgICB0YXAoKCkgPT4gdGhpcy5sb2FkaW5nLnNldChmYWxzZSkpLFxuICApO1xuICBvcHRpb25zU2lnbmFsID0gdG9TaWduYWwodGhpcy5vcHRpb25zJCk7XG5cblxuICBjbG9zZUNoaXAoY2hpcFZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50VmFsdWUgPSB0aGlzLnZhbHVlKCk7XG4gICAgY29uc3QgbmV3VmFsdWUgPSBjdXJyZW50VmFsdWUuZmlsdGVyKHZhbCA9PiB2YWwgIT09IGNoaXBWYWx1ZSk7XG4gICAgdGhpcy52YWx1ZS5zZXQobmV3VmFsdWUpO1xuICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAcngtYW5ndWxhci9uby1leHBsaWNpdC1jaGFuZ2UtZGV0ZWN0aW9uLWFwaXNcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGRpc3BsYXlOZXdPcHRpb24gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgbmV3VmFsdWUgPSB0aGlzLnNlYXJjaFZhbHVlKCk7XG5cbiAgICBpZiAoIW5ld1ZhbHVlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgZGlyZWN0TWF0Y2ggPSB0aGlzLm9wdGlvbnNTaWduYWwoKT8uaW5jbHVkZXM/LihuZXdWYWx1ZSk7XG4gICAgY29uc3QgbG9hZGluZyA9IHRoaXMubG9hZGluZygpO1xuICAgIGNvbnN0IGFscmVhZHlTZWxlY3RlZCA9IEJvb2xlYW4odGhpcy52YWx1ZSgpLmZpbmQodmFsID0+IHZhbC50b0xvd2VyQ2FzZSgpID09PSBuZXdWYWx1ZS50b0xvd2VyQ2FzZSgpKSk7XG5cblxuICAgIHJldHVybiB0aGlzLmFsbG93TmV3KCkgJiYgIWFscmVhZHlTZWxlY3RlZCAmJiAoIWRpcmVjdE1hdGNoIHx8IGxvYWRpbmcpO1xuICB9KTtcblxuICBhZGRWYWx1ZSA9IChuZXdWYWx1ZTogc3RyaW5nKTogdm9pZCA9PiB7XG4gICAgdGhpcy52YWx1ZS51cGRhdGUocHJldlZhbHVlID0+IFtcbiAgICAgIC4uLnByZXZWYWx1ZSB8fCBbXSxcbiAgICAgIG5ld1ZhbHVlLFxuICAgIF0pO1xuICB9O1xuXG4gIGhhbmRsZU9wdGlvbkNsaWNrID0gKG9wdGlvblZhbHVlKTogdm9pZCA9PiB7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICB0aGlzLmFkZFZhbHVlKG9wdGlvblZhbHVlKTtcbiAgICB0aGlzLmZvY3VzSW5wdXQoKTtcbiAgICB0aGlzLnNlYXJjaFZhbHVlLnNldCgnJyk7XG4gIH07XG5cbiAgcmVzZXRGb2N1c09uT3B0aW9uc0NoYW5nZSA9IGVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuZGlzcGxheWVkT3B0aW9ucygpIHx8IHRoaXMuc2VhcmNoVmFsdWUoKSkge1xuICAgICAgdGhpcy5mb2N1c2VkSW5kZXguc2V0KDApO1xuICAgIH1cbiAgfSwgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9KTtcblxuICBkaXNwbGF5ZWRPcHRpb25zID0gdmlld0NoaWxkcmVuKEZ3TWVudUl0ZW1Db21wb25lbnQpO1xuICBmb2N1c2VkSW5kZXggPSBzaWduYWwoMCk7XG4gIGZvY3VzZWRPcHRpb24gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuZGlzcGxheWVkT3B0aW9ucygpO1xuICAgIGNvbnN0IGZvY3VzZWQgPSB0aGlzLmZvY3VzZWRJbmRleCgpO1xuXG4gICAgY29uc3Qgb25seU9uZSA9IG9wdGlvbnMubGVuZ3RoID09PSAxO1xuICAgIHJldHVybiBvbmx5T25lID8gdGhpcy5zZWFyY2hWYWx1ZSgpIDogb3B0aW9uc1tmb2N1c2VkXT8udmFsdWU7XG4gIH0pO1xuXG4gIGlucHV0UmVmID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4+KCdpbnB1dCcpO1xuXG4gIGZvY3VzSW5wdXQoZTogTW91c2VFdmVudCA9IG51bGwpOiB2b2lkIHtcbiAgICBlPy5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGU/LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGU/LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAcngtYW5ndWxhci9wcmVmZXItbm8tbGF5b3V0LXNlbnNpdGl2ZS1hcGlzXG4gICAgdGhpcy5pbnB1dFJlZigpLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIC8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbiAqL1xuICBrZXlIYW5kbGVyTWFwOiB7IFtrZXljb2RlOiBzdHJpbmddOiAoZTogS2V5Ym9hcmRFdmVudCkgPT4gdm9pZCB9ID0ge1xuICAgICdFbnRlcic6ICgpID0+IHtcbiAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuZm9jdXNlZE9wdGlvbigpIHx8IHRoaXMuc2VhcmNoVmFsdWUoKTtcbiAgICAgIGNvbnN0IGR1cGxpY2F0ZSA9IHRoaXMudmFsdWUoKS5maW5kKHZhbCA9PiB2YWwudG9Mb3dlckNhc2UoKSA9PT0gbmV3VmFsdWUudG9Mb3dlckNhc2UoKSk7XG5cbiAgICAgIGlmICghbmV3VmFsdWUgfHwgZHVwbGljYXRlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5hZGRWYWx1ZShuZXdWYWx1ZSk7XG4gICAgICB0aGlzLnNlYXJjaFZhbHVlLnNldCgnJyk7XG4gICAgfSxcbiAgICAnQXJyb3dEb3duJzogKCkgPT4ge1xuICAgICAgdGhpcy5tb3ZlRm9jdXNlZCgnZG93bicpO1xuICAgIH0sXG4gICAgJ0Fycm93VXAnOiAoKSA9PiB7XG4gICAgICB0aGlzLm1vdmVGb2N1c2VkKCd1cCcpO1xuICAgIH0sXG4gICAgJ0JhY2tzcGFjZSc6ICgpID0+IHtcbiAgICAgIGNvbnN0IHNlYXJjaElzRW1wdHkgPSAhdGhpcy5zZWFyY2hWYWx1ZSgpOyAvLyBhbnkgZmFsc3kgdmFsdWUgaXMgZW1wdHlcbiAgICAgIGlmIChzZWFyY2hJc0VtcHR5ICYmIHRoaXMudmFsdWUoKT8ubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLmNsb3NlQ2hpcCh0aGlzLnZhbHVlKClbdGhpcy52YWx1ZSgpLmxlbmd0aCAtIDFdKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAhc2VhcmNoSXNFbXB0eTtcbiAgICB9LFxuICAgICdUYWInOiAoKSA9PiB7XG4gICAgICBpZiAodGhpcy50cmlnZ2VyKCkuaXNPcGVuKSB7XG4gICAgICAgIHRoaXMudHJpZ2dlcigpLmNsb3NlKCk7XG4gICAgICB9XG4gICAgfSxcbiAgfTtcblxuICAvKiBlc2xpbnQtZW5hYmxlICovXG5cbiAgaGFuZGxlS2V5KGU6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBoYW5kbGVyID0gdGhpcy5rZXlIYW5kbGVyTWFwW2Uua2V5XTtcbiAgICBoYW5kbGVyPy4oZSk7XG4gIH1cblxuICBzZXRGb2N1c0J5VmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmRpc3BsYXllZE9wdGlvbnMoKTtcbiAgICBjb25zdCBmb3VuZEluZGV4ID0gb3B0aW9ucy5maW5kSW5kZXgob3B0ID0+IG9wdC52YWx1ZSA9PT0gdmFsdWUpO1xuICAgIGNvbnN0IGZpbmFsSW5kZXggPSBmb3VuZEluZGV4ID09PSAtMSA/IDAgOiBmb3VuZEluZGV4O1xuICAgIHRoaXMuZm9jdXNlZEluZGV4LnNldChmaW5hbEluZGV4KTtcbiAgfVxuXG4gIHByaXZhdGUgbW92ZUZvY3VzZWQoZGlyZWN0aW9uOiAndXAnIHwgJ2Rvd24nKTogdm9pZCB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuZGlzcGxheWVkT3B0aW9ucygpO1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5mb2N1c2VkSW5kZXgoKTtcblxuICAgIGNvbnN0IGNsYW1wSW5kZXggPSAobjogbnVtYmVyKTogbnVtYmVyID0+IHtcbiAgICAgIGlmIChuIDwgMCkge1xuICAgICAgICByZXR1cm4gb3B0aW9ucy5sZW5ndGggLSAxO1xuICAgICAgfSBlbHNlIGlmIChuID49IG9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiAwO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbjtcbiAgICB9O1xuXG4gICAgY29uc3QgaW5kZXhDaGFuZ2UgPSBkaXJlY3Rpb24gPT09ICd1cCcgPyAtMSA6IDE7XG5cbiAgICBjb25zdCBuZXdJbmRleCA9IGNsYW1wSW5kZXgoaW5kZXggKyBpbmRleENoYW5nZSk7XG4gICAgdGhpcy5mb2N1c2VkSW5kZXguc2V0KG5ld0luZGV4KTtcblxuICAgIGNvbnN0IG5ld2x5Rm9jdXNlZCA9IHRoaXMuZGlzcGxheWVkT3B0aW9ucygpW3RoaXMuZm9jdXNlZEluZGV4KCldO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEByeC1hbmd1bGFyL3ByZWZlci1uby1sYXlvdXQtc2Vuc2l0aXZlLWFwaXNcbiAgICBuZXdseUZvY3VzZWQuc2Nyb2xsSW50b1ZpZXcoKTtcbiAgfVxuXG59XG4iLCI8ZGl2XG4gIChjbGljayk9XCJmb2N1c0lucHV0KCRldmVudClcIlxuICBjbGFzcz1cImlucHV0LWNvbnRhaW5lclwiXG4gIFtuZ0NsYXNzXT1cInsgJ2Rpc2FibGVkJzogZGlzYWJsZWQoKSB9XCJcbiAgW2Nka01lbnVUcmlnZ2VyRm9yXT1cIm1lbnVDb250ZW50XCJcbiAgZndNZW51UmVnaXN0ZXJcbiAgI2lucHV0Q29udGFpbmVyPlxuICA8ZnctY2hpcC1saXN0IGNsYXNzPVwiY2hpcHNcIj5cbiAgICBAZm9yKHZhbCBvZiB2YWx1ZSgpOyB0cmFjayB2YWwpIHtcbiAgICAgIDxmdy1jaGlwXG4gICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgIFtzaG93Q2xvc2VdPVwidHJ1ZVwiXG4gICAgICAgIFt0aXRsZV09XCJ2YWxcIlxuICAgICAgICBbc2VsZWN0YWJsZV09XCJmYWxzZVwiXG4gICAgICAgIChjbG9zZSk9XCJjbG9zZUNoaXAodmFsKVwiXG4gICAgICAvPlxuICAgIH1cbiAgPC9mdy1jaGlwLWxpc3Q+XG4gIDxpbnB1dFxuICAgIHRlc3QtaWQ9XCJ0eXBlYWhlYWQtaW5wdXRcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcigpXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgW3ZhbHVlXT1cInNlYXJjaFZhbHVlKClcIlxuICAgIChrZXl1cCk9XCJoYW5kbGVTZWFyY2hDaGFuZ2UoJGV2ZW50KVwiXG4gICAgKGtleWRvd24pPVwiaGFuZGxlS2V5KCRldmVudClcIlxuICAgICNpbnB1dFxuICAgIHR5cGU9XCJ0ZXh0XCJcbiAgLz5cbiAgQGlmKGxvYWRpbmcoKSkge1xuICAgIDxmdy1wcm9ncmVzcy1zcGlubmVyIHNpemU9XCJzbWFsbFwiLz5cbiAgfVxuPC9kaXY+XG48bmctdGVtcGxhdGUgI21lbnVDb250ZW50PlxuICAgIDxmdy1tZW51LWNvbnRhaW5lclxuICAgICAgW21heEhlaWdodF09XCJtYXhPcHRpb25zSGVpZ2h0KClcIlxuICAgICAgW21pbkhlaWdodF09XCJtaW5PcHRpb25zSGVpZ2h0KClcIlxuICAgICAgW3dpZHRoXT1cIm9wdGlvbnNXaWR0aCgpIHx8IGlucHV0Q29udGFpbmVyLm9mZnNldFdpZHRoIC0gMiArICdweCdcIlxuICAgID5cbiAgICAgIDxmdy1tZW51PlxuICAgICAgICBAaWYobG9hZGluZygpICYmICFkaXNwbGF5TmV3T3B0aW9uKCkpIHtcbiAgICAgICAgICA8ZnctbWVudS1pdGVtIHRpdGxlPVwiU2VhcmNoaW5nLi4uXCIgW2Rpc2FibGVkXT1cInRydWVcIi8+XG4gICAgICAgIH0gQGVsc2UgaWYoIWxvYWRpbmcoKSkge1xuICAgICAgICAgIEBmb3IgKG9wdGlvbiBvZiBvcHRpb25zU2lnbmFsKCk7IHRyYWNrIG9wdGlvbikge1xuICAgICAgICAgICAgPGZ3LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlT3B0aW9uQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cInNldEZvY3VzQnlWYWx1ZShvcHRpb24pXCJcbiAgICAgICAgICAgICAgW3RpdGxlXT1cIm9wdGlvblwiXG4gICAgICAgICAgICAgIFtmb2N1c2VkXT1cImZvY3VzZWRPcHRpb24oKSA9PT0gb3B0aW9uXCJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cIm9wdGlvblwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAZW1wdHkge1xuICAgICAgICAgICAgQGlmICghZGlzcGxheU5ld09wdGlvbigpKSB7XG4gICAgICAgICAgICAgIDxmdy1tZW51LWl0ZW0gdGl0bGU9XCJObyB0YWcgc3VnZ2VzdGlvbnNcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGlmKGRpc3BsYXlOZXdPcHRpb24oKSkge1xuICAgICAgICAgIDxmdy1tZW51LWl0ZW1cbiAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVPcHRpb25DbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgIChtb3VzZWVudGVyKT1cInNldEZvY3VzQnlWYWx1ZShzZWFyY2hWYWx1ZSgpKVwiXG4gICAgICAgICAgICBbdGl0bGVdPVwic2VhcmNoVmFsdWUoKVwiXG4gICAgICAgICAgICBbdmFsdWVdPVwic2VhcmNoVmFsdWUoKVwiXG4gICAgICAgICAgICBbZm9jdXNlZF09XCJmb2N1c2VkT3B0aW9uKCkgPT09IHNlYXJjaFZhbHVlKClcIj5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwibmV3LXRhZ1wiPk5ldzwvcD5cbiAgICAgICAgICA8L2Z3LW1lbnUtaXRlbT5cbiAgICAgICAgfVxuICAgICAgPC9mdy1tZW51PlxuICAgIDwvZnctbWVudS1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
236
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWFoZWFkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3R5cGVhaGVhZC90eXBlYWhlYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdHlwZWFoZWFkL3R5cGVhaGVhZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsTUFBTSxFQUVOLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUYsT0FBTyxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDakYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM1RSxPQUFP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WSwrM0JBQ1osYUFBYSxzUUFDYixxQkFBcUIsNERBQ3JCLGdCQUFnQixxTEFDaEIsbUJBQW1CLHlEQUNuQixPQUFPOzs0RkFZRSxvQkFBb0I7a0JBeEJoQyxTQUFTOytCQUNFLGNBQWMsY0FDWixJQUFJLFdBQ1A7d0JBQ1AsaUJBQWlCO3dCQUNqQixZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsWUFBWTt3QkFDWixhQUFhO3dCQUNiLHFCQUFxQjt3QkFDckIsZ0JBQWdCO3dCQUNoQixtQkFBbUI7d0JBQ25CLE9BQU87cUJBQ1IsYUFDVTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQzs0QkFDbkQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7OEJBSytCLFlBQVk7c0JBQTNDLFlBQVk7dUJBQUMsZ0JBQWdCO2dCQWdDSyxPQUFPO3NCQUF6QyxZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka01lbnVNb2R1bGUsIENka01lbnVUcmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL21lbnUnO1xuaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBjb21wdXRlZCxcbiAgZWZmZWN0LFxuICBFbGVtZW50UmVmLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIG1vZGVsLFxuICBzaWduYWwsXG4gIHZpZXdDaGlsZCxcbiAgdmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUsIG9mLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IE1lbnVSZWdpc3RlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvbWVudS1yZWdpc3Rlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRndDaGlwTW9kdWxlIH0gZnJvbSAnLi4vY2hpcC9jaGlwLm1vZHVsZSc7XG5pbXBvcnQgeyBGd0NoaXBMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vY2hpcC1saXN0L2NoaXAtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRndNZW51TW9kdWxlIH0gZnJvbSAnLi4vbWVudS9tZW51Lm1vZHVsZSc7XG5pbXBvcnQgeyBGd01lbnVJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vbWVudS9tZW51LWl0ZW0vbWVudS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGd1Byb2dyZXNzTW9kdWxlIH0gZnJvbSAnLi4vcHJvZ3Jlc3MvcHJvZ3Jlc3MubW9kdWxlJztcbmltcG9ydCB7IEZ3VGV4dElucHV0TW9kdWxlIH0gZnJvbSAnLi4vdGV4dC1pbnB1dC90ZXh0LWlucHV0Lm1vZHVsZSc7XG5cbnR5cGUgT3B0aW9uRmV0Y2hpbmdGbiA9IChzZWFyY2hTdHJpbmc6IHN0cmluZykgPT4gT2JzZXJ2YWJsZTxzdHJpbmdbXT47XG5cbi8qKlxuICogQ29tcG9uZW50IGZvciBoYXZpbmcgYSB1c2VyIHNlbGVjdCBtdWx0aXBsZSB2YWx1ZXMgd2hpbGUgYWxzbyBhbGxvd2luZyBhcmJpdHJhcnkgdmFsdWVzIHRvIGJlIGFkZGVkXG4gKiBAc2VlIFtWaXNpb24gRG9jc10oaHR0cHM6Ly9jZG4uZmx5d2hlZWwuaW8vZG9jcy92aXNpb24vbWFzdGVyLz9wYXRoPS9kb2NzL2Zvcm0tY29udHJvbHMtdHlwZWFoZWFkLS1kb2NzKVxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmdy10eXBlYWhlYWQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgRndUZXh0SW5wdXRNb2R1bGUsXG4gICAgRndDaGlwTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRndNZW51TW9kdWxlLFxuICAgIENka01lbnVNb2R1bGUsXG4gICAgTWVudVJlZ2lzdGVyRGlyZWN0aXZlLFxuICAgIEZ3UHJvZ3Jlc3NNb2R1bGUsXG4gICAgRndDaGlwTGlzdENvbXBvbmVudCxcbiAgICBOZ0NsYXNzLFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZ3VHlwZWFoZWFkQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi90eXBlYWhlYWQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdHlwZWFoZWFkLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgRndUeXBlYWhlYWRDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJykgb3V0c2lkZUNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgdGhpcy50cmlnZ2VyKCkuY2xvc2UoKTtcbiAgfVxuXG4gIHRyaWdnZXIgPSB2aWV3Q2hpbGQoQ2RrTWVudVRyaWdnZXIpO1xuICBjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIGxvYWRpbmcgPSBtb2RlbChmYWxzZSk7XG4gIGRpc2FibGVkID0gbW9kZWwoZmFsc2UpO1xuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQuc2V0KGlzRGlzYWJsZWQpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZShpbmNvbWluZ1ZhbHVlOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUuc2V0KGluY29taW5nVmFsdWUpO1xuICB9XG5cbiAgb25DaGFuZ2UgPSAoXzogc3RyaW5nW10pOiB2b2lkID0+IHtcbiAgfTtcblxuICByZWdpc3Rlck9uQ2hhbmdlKG9uQ2hhbmdlRm4pOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gb25DaGFuZ2VGbjtcbiAgfVxuXG4gIG9uVG91Y2hlZCA9ICgpOiB2b2lkID0+IHtcbiAgfTtcblxuICByZWdpc3Rlck9uVG91Y2hlZChvblRvdWNoZWRGbik6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gb25Ub3VjaGVkRm47XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pIG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgdmFsdWUgPSBtb2RlbDxzdHJpbmdbXT4oW10pO1xuICBvcHRpb25zSW5wdXQgPSBpbnB1dDxzdHJpbmdbXSB8IE9wdGlvbkZldGNoaW5nRm4+KFtdLCB7IGFsaWFzOiAnb3B0aW9ucycgfSk7XG5cbiAgbWF4T3B0aW9uc0hlaWdodCA9IGlucHV0KCc0MDBweCcpO1xuICBtaW5PcHRpb25zSGVpZ2h0ID0gaW5wdXQoJzBweCcpO1xuICBvcHRpb25zV2lkdGggPSBpbnB1dCgnJyk7XG5cbiAgbm90aWZ5T25WYWx1ZUNoYW5nZXMgPSBlZmZlY3QoKCkgPT4ge1xuICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSgpKTtcbiAgfSk7XG5cbiAgc2VhcmNoVmFsdWUgPSBtb2RlbCgnJyk7XG4gIHNlYXJjaFZhbHVlQ2hhbmdlcyQgPSB0b09ic2VydmFibGUodGhpcy5zZWFyY2hWYWx1ZSk7XG5cbiAgaGFuZGxlU2VhcmNoQ2hhbmdlKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMudHJpZ2dlcigpLmNsb3NlZCkge1xuICAgICAgdGhpcy50cmlnZ2VyKCkub3BlbigpO1xuICAgIH1cbiAgICBjb25zdCB2YWx1ZSA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XG4gICAgdGhpcy5zZWFyY2hWYWx1ZS5zZXQodmFsdWUpO1xuICB9XG5cbiAgYWxsb3dOZXcgPSBpbnB1dCh0cnVlKTtcbiAgcGxhY2Vob2xkZXIgPSBpbnB1dCgnRW50ZXIgdGFncy4uLicpO1xuXG4gIG9wdGlvbnMkOiBPYnNlcnZhYmxlPHN0cmluZ1tdPiA9IHRoaXMuc2VhcmNoVmFsdWVDaGFuZ2VzJC5waXBlKFxuICAgIHN0YXJ0V2l0aCgnJyksXG4gICAgdGFwKCgpID0+IHRoaXMubG9hZGluZy5zZXQodHJ1ZSkpLFxuICAgIHN3aXRjaE1hcChzZWFyY2hTdHJpbmcgPT4ge1xuXG4gICAgICBpZiAodHlwZW9mIHRoaXMub3B0aW9uc0lucHV0KCkgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgY29uc3QgZmV0Y2hpbmdGdW5jdGlvbiA9IHRoaXMub3B0aW9uc0lucHV0KCkgYXMgT3B0aW9uRmV0Y2hpbmdGbjtcbiAgICAgICAgcmV0dXJuIGZldGNoaW5nRnVuY3Rpb24oc2VhcmNoU3RyaW5nKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZmlsdGVyZWRTdGF0aWNPcHRpb25zJCA9IG9mKHRoaXMub3B0aW9uc0lucHV0KCkgYXMgc3RyaW5nW10pLnBpcGUoXG4gICAgICAgIG1hcChvcHRpb25zID0+IG9wdGlvbnMuZmlsdGVyKG9wdCA9PiBvcHQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hTdHJpbmcudG9Mb3dlckNhc2UoKSkpKSxcbiAgICAgICk7XG5cbiAgICAgIHJldHVybiBmaWx0ZXJlZFN0YXRpY09wdGlvbnMkO1xuICAgIH0pLFxuICAgIG1hcChvcHRpb25zID0+IHtcbiAgICAgIHJldHVybiBvcHRpb25zLmZpbHRlcihvcHRpb24gPT4ge1xuICAgICAgICBjb25zdCBhbHJlYWR5U2VsZWN0ZWQgPSB0aGlzLnZhbHVlKCkuZmluZCh2YWwgPT4gdmFsLnRvTG93ZXJDYXNlKCkgPT09IG9wdGlvbi50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgcmV0dXJuICFhbHJlYWR5U2VsZWN0ZWQ7XG4gICAgICB9KTtcbiAgICB9KSxcbiAgICB0YXAoKCkgPT4gdGhpcy5sb2FkaW5nLnNldChmYWxzZSkpLFxuICApO1xuICBvcHRpb25zU2lnbmFsID0gdG9TaWduYWwodGhpcy5vcHRpb25zJCk7XG5cblxuICBjbG9zZUNoaXAoY2hpcFZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50VmFsdWUgPSB0aGlzLnZhbHVlKCk7XG4gICAgY29uc3QgbmV3VmFsdWUgPSBjdXJyZW50VmFsdWUuZmlsdGVyKHZhbCA9PiB2YWwgIT09IGNoaXBWYWx1ZSk7XG4gICAgdGhpcy52YWx1ZS5zZXQobmV3VmFsdWUpO1xuICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAcngtYW5ndWxhci9uby1leHBsaWNpdC1jaGFuZ2UtZGV0ZWN0aW9uLWFwaXNcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGRpc3BsYXlOZXdPcHRpb24gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgbmV3VmFsdWUgPSB0aGlzLnNlYXJjaFZhbHVlKCk7XG5cbiAgICBpZiAoIW5ld1ZhbHVlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgZGlyZWN0TWF0Y2ggPSB0aGlzLm9wdGlvbnNTaWduYWwoKT8uaW5jbHVkZXM/LihuZXdWYWx1ZSk7XG4gICAgY29uc3QgbG9hZGluZyA9IHRoaXMubG9hZGluZygpO1xuICAgIGNvbnN0IGFscmVhZHlTZWxlY3RlZCA9IEJvb2xlYW4odGhpcy52YWx1ZSgpLmZpbmQodmFsID0+IHZhbC50b0xvd2VyQ2FzZSgpID09PSBuZXdWYWx1ZS50b0xvd2VyQ2FzZSgpKSk7XG5cblxuICAgIHJldHVybiB0aGlzLmFsbG93TmV3KCkgJiYgIWFscmVhZHlTZWxlY3RlZCAmJiAoIWRpcmVjdE1hdGNoIHx8IGxvYWRpbmcpO1xuICB9KTtcblxuICBhZGRWYWx1ZSA9IChuZXdWYWx1ZTogc3RyaW5nKTogdm9pZCA9PiB7XG4gICAgdGhpcy52YWx1ZS51cGRhdGUocHJldlZhbHVlID0+IFtcbiAgICAgIC4uLnByZXZWYWx1ZSB8fCBbXSxcbiAgICAgIG5ld1ZhbHVlLFxuICAgIF0pO1xuICB9O1xuXG4gIGhhbmRsZU9wdGlvbkNsaWNrID0gKG9wdGlvblZhbHVlKTogdm9pZCA9PiB7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICB0aGlzLmFkZFZhbHVlKG9wdGlvblZhbHVlKTtcbiAgICB0aGlzLmZvY3VzSW5wdXQoKTtcbiAgICB0aGlzLnNlYXJjaFZhbHVlLnNldCgnJyk7XG4gIH07XG5cbiAgcmVzZXRGb2N1c09uT3B0aW9uc0NoYW5nZSA9IGVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuZGlzcGxheWVkT3B0aW9ucygpIHx8IHRoaXMuc2VhcmNoVmFsdWUoKSkge1xuICAgICAgdGhpcy5mb2N1c2VkSW5kZXguc2V0KDApO1xuICAgIH1cbiAgfSwgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9KTtcblxuICBkaXNwbGF5ZWRPcHRpb25zID0gdmlld0NoaWxkcmVuKEZ3TWVudUl0ZW1Db21wb25lbnQpO1xuICBmb2N1c2VkSW5kZXggPSBzaWduYWwoMCk7XG4gIGZvY3VzZWRPcHRpb24gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuZGlzcGxheWVkT3B0aW9ucygpO1xuICAgIGNvbnN0IGZvY3VzZWQgPSB0aGlzLmZvY3VzZWRJbmRleCgpO1xuXG4gICAgY29uc3Qgb25seU9uZSA9IG9wdGlvbnMubGVuZ3RoID09PSAxO1xuICAgIHJldHVybiBvbmx5T25lID8gdGhpcy5zZWFyY2hWYWx1ZSgpIDogb3B0aW9uc1tmb2N1c2VkXT8udmFsdWU7XG4gIH0pO1xuXG4gIGlucHV0UmVmID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4+KCdpbnB1dCcpO1xuXG4gIGZvY3VzSW5wdXQoZTogTW91c2VFdmVudCA9IG51bGwpOiB2b2lkIHtcbiAgICBlPy5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGU/LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGU/LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAcngtYW5ndWxhci9wcmVmZXItbm8tbGF5b3V0LXNlbnNpdGl2ZS1hcGlzXG4gICAgdGhpcy5pbnB1dFJlZigpLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIC8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbiAqL1xuICBrZXlIYW5kbGVyTWFwOiB7IFtrZXljb2RlOiBzdHJpbmddOiAoZTogS2V5Ym9hcmRFdmVudCkgPT4gdm9pZCB9ID0ge1xuICAgICdFbnRlcic6ICgpID0+IHtcbiAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuZm9jdXNlZE9wdGlvbigpIHx8IHRoaXMuc2VhcmNoVmFsdWUoKTtcbiAgICAgIGNvbnN0IGR1cGxpY2F0ZSA9IHRoaXMudmFsdWUoKS5maW5kKHZhbCA9PiB2YWwudG9Mb3dlckNhc2UoKSA9PT0gbmV3VmFsdWUudG9Mb3dlckNhc2UoKSk7XG5cbiAgICAgIGlmICghbmV3VmFsdWUgfHwgZHVwbGljYXRlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5hZGRWYWx1ZShuZXdWYWx1ZSk7XG4gICAgICB0aGlzLnNlYXJjaFZhbHVlLnNldCgnJyk7XG4gICAgfSxcbiAgICAnQXJyb3dEb3duJzogKCkgPT4ge1xuICAgICAgdGhpcy5tb3ZlRm9jdXNlZCgnZG93bicpO1xuICAgIH0sXG4gICAgJ0Fycm93VXAnOiAoKSA9PiB7XG4gICAgICB0aGlzLm1vdmVGb2N1c2VkKCd1cCcpO1xuICAgIH0sXG4gICAgJ0JhY2tzcGFjZSc6ICgpID0+IHtcbiAgICAgIGNvbnN0IHNlYXJjaElzRW1wdHkgPSAhdGhpcy5zZWFyY2hWYWx1ZSgpOyAvLyBhbnkgZmFsc3kgdmFsdWUgaXMgZW1wdHlcbiAgICAgIGlmIChzZWFyY2hJc0VtcHR5ICYmIHRoaXMudmFsdWUoKT8ubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLmNsb3NlQ2hpcCh0aGlzLnZhbHVlKClbdGhpcy52YWx1ZSgpLmxlbmd0aCAtIDFdKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAhc2VhcmNoSXNFbXB0eTtcbiAgICB9LFxuICAgICdUYWInOiAoKSA9PiB7XG4gICAgICBpZiAodGhpcy50cmlnZ2VyKCkuaXNPcGVuKSB7XG4gICAgICAgIHRoaXMudHJpZ2dlcigpLmNsb3NlKCk7XG4gICAgICB9XG4gICAgfSxcbiAgfTtcblxuICAvKiBlc2xpbnQtZW5hYmxlICovXG5cbiAgaGFuZGxlS2V5KGU6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBoYW5kbGVyID0gdGhpcy5rZXlIYW5kbGVyTWFwW2Uua2V5XTtcbiAgICBoYW5kbGVyPy4oZSk7XG4gIH1cblxuICBzZXRGb2N1c0J5VmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmRpc3BsYXllZE9wdGlvbnMoKTtcbiAgICBjb25zdCBmb3VuZEluZGV4ID0gb3B0aW9ucy5maW5kSW5kZXgob3B0ID0+IG9wdC52YWx1ZSA9PT0gdmFsdWUpO1xuICAgIGNvbnN0IGZpbmFsSW5kZXggPSBmb3VuZEluZGV4ID09PSAtMSA/IDAgOiBmb3VuZEluZGV4O1xuICAgIHRoaXMuZm9jdXNlZEluZGV4LnNldChmaW5hbEluZGV4KTtcbiAgfVxuXG4gIHByaXZhdGUgbW92ZUZvY3VzZWQoZGlyZWN0aW9uOiAndXAnIHwgJ2Rvd24nKTogdm9pZCB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuZGlzcGxheWVkT3B0aW9ucygpO1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5mb2N1c2VkSW5kZXgoKTtcblxuICAgIGNvbnN0IGNsYW1wSW5kZXggPSAobjogbnVtYmVyKTogbnVtYmVyID0+IHtcbiAgICAgIGlmIChuIDwgMCkge1xuICAgICAgICByZXR1cm4gb3B0aW9ucy5sZW5ndGggLSAxO1xuICAgICAgfSBlbHNlIGlmIChuID49IG9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiAwO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbjtcbiAgICB9O1xuXG4gICAgY29uc3QgaW5kZXhDaGFuZ2UgPSBkaXJlY3Rpb24gPT09ICd1cCcgPyAtMSA6IDE7XG5cbiAgICBjb25zdCBuZXdJbmRleCA9IGNsYW1wSW5kZXgoaW5kZXggKyBpbmRleENoYW5nZSk7XG4gICAgdGhpcy5mb2N1c2VkSW5kZXguc2V0KG5ld0luZGV4KTtcblxuICAgIGNvbnN0IG5ld2x5Rm9jdXNlZCA9IHRoaXMuZGlzcGxheWVkT3B0aW9ucygpW3RoaXMuZm9jdXNlZEluZGV4KCldO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEByeC1hbmd1bGFyL3ByZWZlci1uby1sYXlvdXQtc2Vuc2l0aXZlLWFwaXNcbiAgICBuZXdseUZvY3VzZWQuc2Nyb2xsSW50b1ZpZXcoKTtcbiAgfVxuXG59XG4iLCI8ZGl2XG4gIChjbGljayk9XCJmb2N1c0lucHV0KCRldmVudClcIlxuICBjbGFzcz1cImlucHV0LWNvbnRhaW5lclwiXG4gIFtuZ0NsYXNzXT1cInsgJ2Rpc2FibGVkJzogZGlzYWJsZWQoKSB9XCJcbiAgW2Nka01lbnVUcmlnZ2VyRm9yXT1cIm1lbnVDb250ZW50XCJcbiAgZndNZW51UmVnaXN0ZXJcbiAgI2lucHV0Q29udGFpbmVyPlxuICA8ZnctY2hpcC1saXN0IGNsYXNzPVwiY2hpcHNcIj5cbiAgICBAZm9yKHZhbCBvZiB2YWx1ZSgpOyB0cmFjayB2YWwpIHtcbiAgICAgIDxmdy1jaGlwXG4gICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgIFtzaG93Q2xvc2VdPVwidHJ1ZVwiXG4gICAgICAgIFt0aXRsZV09XCJ2YWxcIlxuICAgICAgICBbc2VsZWN0YWJsZV09XCJmYWxzZVwiXG4gICAgICAgIChjbG9zZSk9XCJjbG9zZUNoaXAodmFsKVwiXG4gICAgICAvPlxuICAgIH1cbiAgPC9mdy1jaGlwLWxpc3Q+XG4gIDxpbnB1dFxuICAgIHRlc3QtaWQ9XCJ0eXBlYWhlYWQtaW5wdXRcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcigpXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgW3ZhbHVlXT1cInNlYXJjaFZhbHVlKClcIlxuICAgIChrZXl1cCk9XCJoYW5kbGVTZWFyY2hDaGFuZ2UoJGV2ZW50KVwiXG4gICAgKGtleWRvd24pPVwiaGFuZGxlS2V5KCRldmVudClcIlxuICAgICNpbnB1dFxuICAgIHR5cGU9XCJ0ZXh0XCJcbiAgLz5cbiAgQGlmKGxvYWRpbmcoKSkge1xuICAgIDxmdy1wcm9ncmVzcy1zcGlubmVyIHNpemU9XCJzbWFsbFwiLz5cbiAgfVxuPC9kaXY+XG48bmctdGVtcGxhdGUgI21lbnVDb250ZW50PlxuICAgIDxmdy1tZW51LWNvbnRhaW5lclxuICAgICAgW21heEhlaWdodF09XCJtYXhPcHRpb25zSGVpZ2h0KClcIlxuICAgICAgW21pbkhlaWdodF09XCJtaW5PcHRpb25zSGVpZ2h0KClcIlxuICAgICAgW3dpZHRoXT1cIm9wdGlvbnNXaWR0aCgpIHx8IGlucHV0Q29udGFpbmVyLm9mZnNldFdpZHRoIC0gMiArICdweCdcIlxuICAgID5cbiAgICAgIDxmdy1tZW51PlxuICAgICAgICBAaWYobG9hZGluZygpICYmICFkaXNwbGF5TmV3T3B0aW9uKCkpIHtcbiAgICAgICAgICA8ZnctbWVudS1pdGVtIHRpdGxlPVwiU2VhcmNoaW5nLi4uXCIgW2Rpc2FibGVkXT1cInRydWVcIi8+XG4gICAgICAgIH0gQGVsc2UgaWYoIWxvYWRpbmcoKSkge1xuICAgICAgICAgIEBmb3IgKG9wdGlvbiBvZiBvcHRpb25zU2lnbmFsKCk7IHRyYWNrIG9wdGlvbikge1xuICAgICAgICAgICAgPGZ3LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlT3B0aW9uQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cInNldEZvY3VzQnlWYWx1ZShvcHRpb24pXCJcbiAgICAgICAgICAgICAgW3RpdGxlXT1cIm9wdGlvblwiXG4gICAgICAgICAgICAgIFtmb2N1c2VkXT1cImZvY3VzZWRPcHRpb24oKSA9PT0gb3B0aW9uXCJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cIm9wdGlvblwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAZW1wdHkge1xuICAgICAgICAgICAgQGlmICghZGlzcGxheU5ld09wdGlvbigpKSB7XG4gICAgICAgICAgICAgIDxmdy1tZW51LWl0ZW0gdGl0bGU9XCJObyB0YWcgc3VnZ2VzdGlvbnNcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGlmKGRpc3BsYXlOZXdPcHRpb24oKSkge1xuICAgICAgICAgIDxmdy1tZW51LWl0ZW1cbiAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVPcHRpb25DbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgIChtb3VzZWVudGVyKT1cInNldEZvY3VzQnlWYWx1ZShzZWFyY2hWYWx1ZSgpKVwiXG4gICAgICAgICAgICBbdGl0bGVdPVwic2VhcmNoVmFsdWUoKVwiXG4gICAgICAgICAgICBbdmFsdWVdPVwic2VhcmNoVmFsdWUoKVwiXG4gICAgICAgICAgICBbZm9jdXNlZF09XCJmb2N1c2VkT3B0aW9uKCkgPT09IHNlYXJjaFZhbHVlKClcIj5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwibmV3LXRhZ1wiPk5ldzwvcD5cbiAgICAgICAgICA8L2Z3LW1lbnUtaXRlbT5cbiAgICAgICAgfVxuICAgICAgPC9mdy1tZW51PlxuICAgIDwvZnctbWVudS1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
|