ng-prime-tools 1.0.53 → 1.0.55
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/pt-dialog/pt-dialog.component.mjs +16 -8
- package/esm2022/lib/pt-dropdown/pt-dropdown.component.mjs +3 -3
- package/esm2022/lib/pt-multi-select/pt-multi-select.component.mjs +3 -3
- package/fesm2022/ng-prime-tools.mjs +19 -11
- package/fesm2022/ng-prime-tools.mjs.map +1 -1
- package/lib/pt-dialog/pt-dialog.component.d.ts +3 -2
- package/lib/pt-dialog/pt-dialog.component.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -114,32 +114,40 @@ export class PTDialogComponent {
|
|
|
114
114
|
return '#2563eb';
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
|
-
/** ✅ Inline style to override text-primary / utility classes */
|
|
117
|
+
/** ✅ Inline style to override text-primary / utility classes (which are !important) */
|
|
118
118
|
get headerIconStyle() {
|
|
119
|
-
|
|
119
|
+
// important is needed because PrimeFlex text-* uses !important
|
|
120
|
+
return {
|
|
121
|
+
color: this.getSeverityHeaderColor(),
|
|
122
|
+
'color!important': this.getSeverityHeaderColor(),
|
|
123
|
+
};
|
|
120
124
|
}
|
|
121
|
-
/** ✅
|
|
125
|
+
/** ✅ Keep title consistent with icon */
|
|
122
126
|
get headerTitleStyle() {
|
|
123
|
-
return {
|
|
127
|
+
return {
|
|
128
|
+
color: this.getSeverityHeaderColor(),
|
|
129
|
+
'color!important': this.getSeverityHeaderColor(),
|
|
130
|
+
};
|
|
124
131
|
}
|
|
132
|
+
/** remove PrimeFlex text-* utility classes (text-primary, text-danger, ...) */
|
|
125
133
|
removeTextUtilityClasses(cls) {
|
|
126
134
|
if (!cls)
|
|
127
135
|
return '';
|
|
128
136
|
return cls
|
|
129
137
|
.split(/\s+/)
|
|
130
138
|
.filter(Boolean)
|
|
131
|
-
.filter((c) => !c.startsWith('text-'))
|
|
139
|
+
.filter((c) => !c.startsWith('text-'))
|
|
132
140
|
.join(' ');
|
|
133
141
|
}
|
|
134
142
|
get safeHeaderIconClass() {
|
|
135
143
|
return this.removeTextUtilityClasses(this.config.headerIconClass);
|
|
136
144
|
}
|
|
137
145
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
138
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: PTDialogComponent, selector: "pt-dialog", inputs: { config: "config", visible: "visible" }, outputs: { visibleChange: "visibleChange" }, ngImport: i0, template: "<p-dialog\n [visible]=\"_internalVisible\"\n (visibleChange)=\"onInternalVisibleChange($event)\"\n [header]=\"config.header\"\n [modal]=\"config.modal\"\n [style]=\"config.style\"\n [breakpoints]=\"config.breakpoints\"\n [closable]=\"config.closable\"\n [draggable]=\"config.draggable\"\n [resizable]=\"config.resizable\"\n [maximizable]=\"config.maximizable\"\n [dismissableMask]=\"config.dismissableMask\"\n [closeOnEscape]=\"config.closeOnEscape\"\n [blockScroll]=\"config.blockScroll\"\n [position]=\"primePosition\"\n [contentStyle]=\"config.contentStyle\"\n [styleClass]=\"dialogStyleClass\"\n>\n <!-- HEADER -->\n <ng-template pTemplate=\"header\">\n <div class=\"pt-dialog-header-inner\">\n <div class=\"pt-dialog-header-left\">\n <i\n *ngIf=\"config.headerIconClass\"\n class=\"pt-dialog-header-icon\"\n [ngClass]=\"safeHeaderIconClass\"\n [ngStyle]=\"headerIconStyle\"\n ></i>\n\n <ng-content select=\"[ptDialogHeader]\"></ng-content>\n\n <span\n *ngIf=\"config.header\"\n class=\"pt-dialog-header-title\"\n [ngStyle]=\"headerTitleStyle\"\n >\n {{ config.header }}\n </span>\n </div>\n </div>\n </ng-template>\n\n <!-- BODY -->\n <div class=\"pt-dialog-body\" [ngStyle]=\"bodyStyle\">\n <div class=\"pt-dialog-body-inner\">\n <ng-content select=\"[ptDialogContent]\"></ng-content>\n <ng-content></ng-content>\n </div>\n </div>\n\n <!-- FOOTER -->\n <ng-template pTemplate=\"footer\" *ngIf=\"config.showFooter !== false\">\n <div class=\"pt-dialog-footer-buttons\">\n <ng-content select=\"[ptDialogFooter]\"></ng-content>\n </div>\n </ng-template>\n</p-dialog>\n", styles: [":host ::ng-deep .p-dialog.pt-dialog-overlay{border-radius:18px;overflow:hidden;box-shadow:0 20px 45px #0f172a59}:host ::ng-deep .p-dialog.pt-dialog-info .p-dialog-header{background-color:#e0f2fe;border-bottom:0}:host ::ng-deep .p-dialog.pt-dialog-success .p-dialog-header{background-color:#dcfce7;border-bottom:0}:host ::ng-deep .p-dialog.pt-dialog-warning .p-dialog-header{background-color:#fff4d1;border-bottom:0}:host ::ng-deep .p-dialog.pt-dialog-danger .p-dialog-header{background-color:#fde4e4;border-bottom:0}:host ::ng-deep .p-dialog.pt-dialog-overlay .p-dialog-footer
|
|
146
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: PTDialogComponent, selector: "pt-dialog", inputs: { config: "config", visible: "visible" }, outputs: { visibleChange: "visibleChange" }, ngImport: i0, template: "<p-dialog\n [visible]=\"_internalVisible\"\n (visibleChange)=\"onInternalVisibleChange($event)\"\n [header]=\"config.header\"\n [modal]=\"config.modal\"\n [style]=\"config.style\"\n [breakpoints]=\"config.breakpoints\"\n [closable]=\"config.closable\"\n [draggable]=\"config.draggable\"\n [resizable]=\"config.resizable\"\n [maximizable]=\"config.maximizable\"\n [dismissableMask]=\"config.dismissableMask\"\n [closeOnEscape]=\"config.closeOnEscape\"\n [blockScroll]=\"config.blockScroll\"\n [position]=\"primePosition\"\n [contentStyle]=\"config.contentStyle\"\n [styleClass]=\"dialogStyleClass\"\n>\n <!-- HEADER -->\n <ng-template pTemplate=\"header\">\n <div class=\"pt-dialog-header-inner\">\n <div class=\"pt-dialog-header-left\">\n <i\n *ngIf=\"config.headerIconClass\"\n class=\"pt-dialog-header-icon\"\n [ngClass]=\"safeHeaderIconClass\"\n [ngStyle]=\"headerIconStyle\"\n ></i>\n\n <ng-content select=\"[ptDialogHeader]\"></ng-content>\n\n <span\n *ngIf=\"config.header\"\n class=\"pt-dialog-header-title\"\n [ngStyle]=\"headerTitleStyle\"\n >\n {{ config.header }}\n </span>\n </div>\n </div>\n </ng-template>\n\n <!-- BODY -->\n <div class=\"pt-dialog-body\" [ngStyle]=\"bodyStyle\">\n <div class=\"pt-dialog-body-inner\">\n <ng-content select=\"[ptDialogContent]\"></ng-content>\n <ng-content></ng-content>\n </div>\n </div>\n\n <!-- FOOTER -->\n <ng-template pTemplate=\"footer\" *ngIf=\"config.showFooter !== false\">\n <div class=\"pt-dialog-footer-buttons\">\n <ng-content select=\"[ptDialogFooter]\"></ng-content>\n </div>\n </ng-template>\n</p-dialog>\n", styles: [":host ::ng-deep .p-dialog.pt-dialog-overlay{border-radius:18px;overflow:hidden;box-shadow:0 20px 45px #0f172a59}:host ::ng-deep .p-dialog.pt-dialog-info .p-dialog-header{background-color:#e0f2fe;border-bottom:0}:host ::ng-deep .p-dialog.pt-dialog-success .p-dialog-header{background-color:#dcfce7;border-bottom:0}:host ::ng-deep .p-dialog.pt-dialog-warning .p-dialog-header{background-color:#fff4d1;border-bottom:0}:host ::ng-deep .p-dialog.pt-dialog-danger .p-dialog-header{background-color:#fde4e4;border-bottom:0}:host ::ng-deep .p-dialog.pt-dialog-overlay .p-dialog-footer{background:#fff!important;border-top:1px solid rgba(148,163,184,.25)!important;padding:16px 32px 22px!important}.pt-dialog-header-inner{width:100%;padding:1rem 1rem .75rem;display:flex;align-items:center;justify-content:space-between}.pt-dialog-header-left{display:flex;align-items:center}.pt-dialog-header-icon{margin-right:.5rem}.pt-dialog-header-title{font-weight:700;font-size:1.125rem}:host ::ng-deep .p-dialog.pt-dialog-info .pt-dialog-header-title,:host ::ng-deep .p-dialog.pt-dialog-info .pt-dialog-header-icon{color:#2563eb}:host ::ng-deep .p-dialog.pt-dialog-success .pt-dialog-header-title,:host ::ng-deep .p-dialog.pt-dialog-success .pt-dialog-header-icon{color:#15803d}:host ::ng-deep .p-dialog.pt-dialog-warning .pt-dialog-header-title,:host ::ng-deep .p-dialog.pt-dialog-warning .pt-dialog-header-icon{color:#b45309}:host ::ng-deep .p-dialog.pt-dialog-danger .pt-dialog-header-title,:host ::ng-deep .p-dialog.pt-dialog-danger .pt-dialog-header-icon{color:#b91c1c}.pt-dialog-body{padding:1.25rem 1rem 1rem;display:flex;justify-content:center}.pt-dialog-body-inner{width:100%;max-width:100%;display:flex;flex-direction:column;gap:.75rem}.pt-dialog-footer-buttons{display:flex;justify-content:center;gap:16px}:host ::ng-deep .p-dialog.pt-dialog-overlay .p-dialog-footer .p-button{border-radius:9999px;padding:.75rem 1.8rem;font-weight:600}:host ::ng-deep .p-dialog.pt-dialog-overlay .p-dialog-footer .p-button i.pi,:host ::ng-deep .p-dialog.pt-dialog-overlay .p-dialog-footer .p-button i.fa{margin-right:.5rem}:host ::ng-deep .p-dialog.pt-dialog-danger .p-dialog-footer .p-button:not(.p-button-success):not(.p-button-warning):not(.p-button-danger):not(.p-button-info):not(.p-button-secondary):not(.p-button-help){background:#fff!important;border-color:#dc2626!important;color:#dc2626!important}:host ::ng-deep .p-dialog.pt-dialog-warning .p-dialog-footer .p-button:not(.p-button-success):not(.p-button-warning):not(.p-button-danger):not(.p-button-info):not(.p-button-secondary):not(.p-button-help){background:#fff!important;border-color:#d97706!important;color:#b45309!important}:host ::ng-deep .p-dialog.pt-dialog-success .p-dialog-footer .p-button:not(.p-button-success):not(.p-button-warning):not(.p-button-danger):not(.p-button-info):not(.p-button-secondary):not(.p-button-help){background:#fff!important;border-color:#16a34a!important;color:#15803d!important}:host ::ng-deep .p-dialog.pt-dialog-info .p-dialog-footer .p-button:not(.p-button-success):not(.p-button-warning):not(.p-button-danger):not(.p-button-info):not(.p-button-secondary):not(.p-button-help){background:#fff!important;border-color:#2563eb!important;color:#2563eb!important}:host ::ng-deep .p-dialog.pt-dialog-info .p-dialog-footer .p-button:not(.p-button-success):not(.p-button-warning):not(.p-button-danger):not(.p-button-info):not(.p-button-secondary):not(.p-button-help):hover{background:#eff6ff!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }] }); }
|
|
139
147
|
}
|
|
140
148
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTDialogComponent, decorators: [{
|
|
141
149
|
type: Component,
|
|
142
|
-
args: [{ selector: 'pt-dialog', template: "<p-dialog\n [visible]=\"_internalVisible\"\n (visibleChange)=\"onInternalVisibleChange($event)\"\n [header]=\"config.header\"\n [modal]=\"config.modal\"\n [style]=\"config.style\"\n [breakpoints]=\"config.breakpoints\"\n [closable]=\"config.closable\"\n [draggable]=\"config.draggable\"\n [resizable]=\"config.resizable\"\n [maximizable]=\"config.maximizable\"\n [dismissableMask]=\"config.dismissableMask\"\n [closeOnEscape]=\"config.closeOnEscape\"\n [blockScroll]=\"config.blockScroll\"\n [position]=\"primePosition\"\n [contentStyle]=\"config.contentStyle\"\n [styleClass]=\"dialogStyleClass\"\n>\n <!-- HEADER -->\n <ng-template pTemplate=\"header\">\n <div class=\"pt-dialog-header-inner\">\n <div class=\"pt-dialog-header-left\">\n <i\n *ngIf=\"config.headerIconClass\"\n class=\"pt-dialog-header-icon\"\n [ngClass]=\"safeHeaderIconClass\"\n [ngStyle]=\"headerIconStyle\"\n ></i>\n\n <ng-content select=\"[ptDialogHeader]\"></ng-content>\n\n <span\n *ngIf=\"config.header\"\n class=\"pt-dialog-header-title\"\n [ngStyle]=\"headerTitleStyle\"\n >\n {{ config.header }}\n </span>\n </div>\n </div>\n </ng-template>\n\n <!-- BODY -->\n <div class=\"pt-dialog-body\" [ngStyle]=\"bodyStyle\">\n <div class=\"pt-dialog-body-inner\">\n <ng-content select=\"[ptDialogContent]\"></ng-content>\n <ng-content></ng-content>\n </div>\n </div>\n\n <!-- FOOTER -->\n <ng-template pTemplate=\"footer\" *ngIf=\"config.showFooter !== false\">\n <div class=\"pt-dialog-footer-buttons\">\n <ng-content select=\"[ptDialogFooter]\"></ng-content>\n </div>\n </ng-template>\n</p-dialog>\n", styles: [":host ::ng-deep .p-dialog.pt-dialog-overlay{border-radius:18px;overflow:hidden;box-shadow:0 20px 45px #0f172a59}:host ::ng-deep .p-dialog.pt-dialog-info .p-dialog-header{background-color:#e0f2fe;border-bottom:0}:host ::ng-deep .p-dialog.pt-dialog-success .p-dialog-header{background-color:#dcfce7;border-bottom:0}:host ::ng-deep .p-dialog.pt-dialog-warning .p-dialog-header{background-color:#fff4d1;border-bottom:0}:host ::ng-deep .p-dialog.pt-dialog-danger .p-dialog-header{background-color:#fde4e4;border-bottom:0}:host ::ng-deep .p-dialog.pt-dialog-overlay .p-dialog-footer
|
|
150
|
+
args: [{ selector: 'pt-dialog', template: "<p-dialog\n [visible]=\"_internalVisible\"\n (visibleChange)=\"onInternalVisibleChange($event)\"\n [header]=\"config.header\"\n [modal]=\"config.modal\"\n [style]=\"config.style\"\n [breakpoints]=\"config.breakpoints\"\n [closable]=\"config.closable\"\n [draggable]=\"config.draggable\"\n [resizable]=\"config.resizable\"\n [maximizable]=\"config.maximizable\"\n [dismissableMask]=\"config.dismissableMask\"\n [closeOnEscape]=\"config.closeOnEscape\"\n [blockScroll]=\"config.blockScroll\"\n [position]=\"primePosition\"\n [contentStyle]=\"config.contentStyle\"\n [styleClass]=\"dialogStyleClass\"\n>\n <!-- HEADER -->\n <ng-template pTemplate=\"header\">\n <div class=\"pt-dialog-header-inner\">\n <div class=\"pt-dialog-header-left\">\n <i\n *ngIf=\"config.headerIconClass\"\n class=\"pt-dialog-header-icon\"\n [ngClass]=\"safeHeaderIconClass\"\n [ngStyle]=\"headerIconStyle\"\n ></i>\n\n <ng-content select=\"[ptDialogHeader]\"></ng-content>\n\n <span\n *ngIf=\"config.header\"\n class=\"pt-dialog-header-title\"\n [ngStyle]=\"headerTitleStyle\"\n >\n {{ config.header }}\n </span>\n </div>\n </div>\n </ng-template>\n\n <!-- BODY -->\n <div class=\"pt-dialog-body\" [ngStyle]=\"bodyStyle\">\n <div class=\"pt-dialog-body-inner\">\n <ng-content select=\"[ptDialogContent]\"></ng-content>\n <ng-content></ng-content>\n </div>\n </div>\n\n <!-- FOOTER -->\n <ng-template pTemplate=\"footer\" *ngIf=\"config.showFooter !== false\">\n <div class=\"pt-dialog-footer-buttons\">\n <ng-content select=\"[ptDialogFooter]\"></ng-content>\n </div>\n </ng-template>\n</p-dialog>\n", styles: [":host ::ng-deep .p-dialog.pt-dialog-overlay{border-radius:18px;overflow:hidden;box-shadow:0 20px 45px #0f172a59}:host ::ng-deep .p-dialog.pt-dialog-info .p-dialog-header{background-color:#e0f2fe;border-bottom:0}:host ::ng-deep .p-dialog.pt-dialog-success .p-dialog-header{background-color:#dcfce7;border-bottom:0}:host ::ng-deep .p-dialog.pt-dialog-warning .p-dialog-header{background-color:#fff4d1;border-bottom:0}:host ::ng-deep .p-dialog.pt-dialog-danger .p-dialog-header{background-color:#fde4e4;border-bottom:0}:host ::ng-deep .p-dialog.pt-dialog-overlay .p-dialog-footer{background:#fff!important;border-top:1px solid rgba(148,163,184,.25)!important;padding:16px 32px 22px!important}.pt-dialog-header-inner{width:100%;padding:1rem 1rem .75rem;display:flex;align-items:center;justify-content:space-between}.pt-dialog-header-left{display:flex;align-items:center}.pt-dialog-header-icon{margin-right:.5rem}.pt-dialog-header-title{font-weight:700;font-size:1.125rem}:host ::ng-deep .p-dialog.pt-dialog-info .pt-dialog-header-title,:host ::ng-deep .p-dialog.pt-dialog-info .pt-dialog-header-icon{color:#2563eb}:host ::ng-deep .p-dialog.pt-dialog-success .pt-dialog-header-title,:host ::ng-deep .p-dialog.pt-dialog-success .pt-dialog-header-icon{color:#15803d}:host ::ng-deep .p-dialog.pt-dialog-warning .pt-dialog-header-title,:host ::ng-deep .p-dialog.pt-dialog-warning .pt-dialog-header-icon{color:#b45309}:host ::ng-deep .p-dialog.pt-dialog-danger .pt-dialog-header-title,:host ::ng-deep .p-dialog.pt-dialog-danger .pt-dialog-header-icon{color:#b91c1c}.pt-dialog-body{padding:1.25rem 1rem 1rem;display:flex;justify-content:center}.pt-dialog-body-inner{width:100%;max-width:100%;display:flex;flex-direction:column;gap:.75rem}.pt-dialog-footer-buttons{display:flex;justify-content:center;gap:16px}:host ::ng-deep .p-dialog.pt-dialog-overlay .p-dialog-footer .p-button{border-radius:9999px;padding:.75rem 1.8rem;font-weight:600}:host ::ng-deep .p-dialog.pt-dialog-overlay .p-dialog-footer .p-button i.pi,:host ::ng-deep .p-dialog.pt-dialog-overlay .p-dialog-footer .p-button i.fa{margin-right:.5rem}:host ::ng-deep .p-dialog.pt-dialog-danger .p-dialog-footer .p-button:not(.p-button-success):not(.p-button-warning):not(.p-button-danger):not(.p-button-info):not(.p-button-secondary):not(.p-button-help){background:#fff!important;border-color:#dc2626!important;color:#dc2626!important}:host ::ng-deep .p-dialog.pt-dialog-warning .p-dialog-footer .p-button:not(.p-button-success):not(.p-button-warning):not(.p-button-danger):not(.p-button-info):not(.p-button-secondary):not(.p-button-help){background:#fff!important;border-color:#d97706!important;color:#b45309!important}:host ::ng-deep .p-dialog.pt-dialog-success .p-dialog-footer .p-button:not(.p-button-success):not(.p-button-warning):not(.p-button-danger):not(.p-button-info):not(.p-button-secondary):not(.p-button-help){background:#fff!important;border-color:#16a34a!important;color:#15803d!important}:host ::ng-deep .p-dialog.pt-dialog-info .p-dialog-footer .p-button:not(.p-button-success):not(.p-button-warning):not(.p-button-danger):not(.p-button-info):not(.p-button-secondary):not(.p-button-help){background:#fff!important;border-color:#2563eb!important;color:#2563eb!important}:host ::ng-deep .p-dialog.pt-dialog-info .p-dialog-footer .p-button:not(.p-button-success):not(.p-button-warning):not(.p-button-danger):not(.p-button-info):not(.p-button-secondary):not(.p-button-help):hover{background:#eff6ff!important}\n"] }]
|
|
143
151
|
}], propDecorators: { config: [{
|
|
144
152
|
type: Input
|
|
145
153
|
}], visible: [{
|
|
@@ -147,4 +155,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
147
155
|
}], visibleChange: [{
|
|
148
156
|
type: Output
|
|
149
157
|
}] } });
|
|
150
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXByaW1lLXRvb2xzL3NyYy9saWIvcHQtZGlhbG9nL3B0LWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LWRpYWxvZy9wdC1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUt2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDOzs7OztBQUV4QyxNQUFNLHFCQUFxQixHQUFtQjtJQUM1QyxXQUFXLEVBQUUsWUFBWSxDQUFDLElBQUk7SUFDOUIsS0FBSyxFQUFFLElBQUk7SUFDWCxRQUFRLEVBQUUsSUFBSTtJQUNkLFNBQVMsRUFBRSxJQUFJO0lBQ2YsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsS0FBSztJQUNsQixlQUFlLEVBQUUsS0FBSztJQUN0QixhQUFhLEVBQUUsSUFBSTtJQUNuQixXQUFXLEVBQUUsSUFBSTtJQUNqQixjQUFjLEVBQUUsSUFBSTtJQUNwQixVQUFVLEVBQUUsSUFBSTtJQUNoQixRQUFRLEVBQUUsUUFBUTtDQUNuQixDQUFDO0FBT0YsTUFBTSxPQUFPLGlCQUFpQjtJQUw5QjtRQU1FLGtDQUFrQztRQUMxQixZQUFPLEdBQW1CLEVBQUUsR0FBRyxxQkFBcUIsRUFBRSxDQUFDO1FBVS9ELG9FQUFvRTtRQUNwRSxxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFXZixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7S0E4R3ZEO0lBbElDLElBQ0ksTUFBTSxDQUFDLEtBQWlDO1FBQzFDLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxHQUFH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SkMzQjlCLDJ0REF5REE7OzRGRDlCYSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsV0FBVzs4QkFTakIsTUFBTTtzQkFEVCxLQUFLO2dCQWFGLE9BQU87c0JBRFYsS0FBSztnQkFRSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIERpYWxvZ1Bvc2l0aW9uLFxuICBQVERpYWxvZ0NvbmZpZyxcbn0gZnJvbSAnLi4vbW9kZWxzL3B0LWRpYWxvZy1jb25maWcubW9kZWwnO1xuaW1wb3J0IHsgU2V2ZXJpdHlFbnVtIH0gZnJvbSAnLi4vZW51bXMnO1xuXG5jb25zdCBERUZBVUxUX0RJQUxPR19DT05GSUc6IFBURGlhbG9nQ29uZmlnID0ge1xuICBkaWFsb2dTdHlsZTogU2V2ZXJpdHlFbnVtLklORk8sXG4gIG1vZGFsOiB0cnVlLFxuICBjbG9zYWJsZTogdHJ1ZSxcbiAgZHJhZ2dhYmxlOiB0cnVlLFxuICByZXNpemFibGU6IHRydWUsXG4gIG1heGltaXphYmxlOiBmYWxzZSxcbiAgZGlzbWlzc2FibGVNYXNrOiBmYWxzZSxcbiAgY2xvc2VPbkVzY2FwZTogdHJ1ZSxcbiAgYmxvY2tTY3JvbGw6IHRydWUsXG4gIGJvZHlTY3JvbGxhYmxlOiB0cnVlLFxuICBzaG93Rm9vdGVyOiB0cnVlLFxuICBwb3NpdGlvbjogJ2NlbnRlcicsXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwdC1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHQtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHQtZGlhbG9nLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUFREaWFsb2dDb21wb25lbnQge1xuICAvKiogU2luZ2xlIGNvbmZpZ3VyYXRpb24gb2JqZWN0ICovXG4gIHByaXZhdGUgX2NvbmZpZzogUFREaWFsb2dDb25maWcgPSB7IC4uLkRFRkFVTFRfRElBTE9HX0NPTkZJRyB9O1xuXG4gIEBJbnB1dCgpXG4gIHNldCBjb25maWcodmFsdWU6IFBURGlhbG9nQ29uZmlnIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fY29uZmlnID0geyAuLi5ERUZBVUxUX0RJQUxPR19DT05GSUcsIC4uLih2YWx1ZSB8fCB7fSkgfTtcbiAgfVxuICBnZXQgY29uZmlnKCk6IFBURGlhbG9nQ29uZmlnIHtcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnO1xuICB9XG5cbiAgLy8gLS0tLSBJbnRlcm5hbCB2aXNpYmxlIHN0YXRlIChQVUJMSUMgc28gdGVtcGxhdGUgY2FuIHJlYWQgaXQpIC0tLS1cbiAgX2ludGVybmFsVmlzaWJsZSA9IGZhbHNlO1xuXG4gIC8qKiBJbnB1dCB2aXNpYmxlIGZyb20gcGFyZW50ICovXG4gIEBJbnB1dCgpXG4gIGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pbnRlcm5hbFZpc2libGU7XG4gIH1cbiAgc2V0IHZpc2libGUodjogYm9vbGVhbikge1xuICAgIHRoaXMuX2ludGVybmFsVmlzaWJsZSA9IHY7XG4gIH1cblxuICBAT3V0cHV0KCkgdmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAvKiog4pyFIFNhbWUgbWFwcGluZyBsb2dpYyBhcyBwdC1jb25maXJtLWRpYWxvZyAqL1xuICBnZXQgZGlhbG9nU2V2ZXJpdHkoKTogU2V2ZXJpdHlFbnVtIHtcbiAgICBjb25zdCBzdHlsZSA9IHRoaXMuY29uZmlnLmRpYWxvZ1N0eWxlID8/IFNldmVyaXR5RW51bS5JTkZPO1xuXG4gICAgcmV0dXJuIHN0eWxlID09PSBTZXZlcml0eUVudW0uREFOR0VSXG4gICAgICA/IFNldmVyaXR5RW51bS5EQU5HRVJcbiAgICAgIDogc3R5bGUgPT09IFNldmVyaXR5RW51bS5XQVJOSU5HXG4gICAgICAgID8gU2V2ZXJpdHlFbnVtLldBUk5JTkdcbiAgICAgICAgOiBzdHlsZSA9PT0gU2V2ZXJpdHlFbnVtLlNVQ0NFU1NcbiAgICAgICAgICA/IFNldmVyaXR5RW51bS5TVUNDRVNTXG4gICAgICAgICAgOiBTZXZlcml0eUVudW0uSU5GTztcbiAgfVxuXG4gIC8qKiDinIUgVXNlZCBpbiBbc3R5bGVDbGFzc10gdG8gYXBwbHkgQ1NTIHRoZW1lIHBlciBzZXZlcml0eSAqL1xuICBwcml2YXRlIGdldFNldmVyaXR5Q2xhc3MoKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHRoaXMuZGlhbG9nU2V2ZXJpdHkpIHtcbiAgICAgIGNhc2UgU2V2ZXJpdHlFbnVtLkRBTkdFUjpcbiAgICAgICAgcmV0dXJuICdwdC1kaWFsb2ctZGFuZ2VyJztcbiAgICAgIGNhc2UgU2V2ZXJpdHlFbnVtLldBUk5JTkc6XG4gICAgICAgIHJldHVybiAncHQtZGlhbG9nLXdhcm5pbmcnO1xuICAgICAgY2FzZSBTZXZlcml0eUVudW0uU1VDQ0VTUzpcbiAgICAgICAgcmV0dXJuICdwdC1kaWFsb2ctc3VjY2Vzcyc7XG4gICAgICBjYXNlIFNldmVyaXR5RW51bS5JTkZPOlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICdwdC1kaWFsb2ctaW5mbyc7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGRpYWxvZ1N0eWxlQ2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gW1xuICAgICAgJ2JvcmRlci1yb3VuZC0zeGwnLFxuICAgICAgJ3NoYWRvdy02JyxcbiAgICAgICdvdmVyZmxvdy1oaWRkZW4nLFxuICAgICAgJ3B0LWRpYWxvZy1vdmVybGF5JyxcbiAgICAgIHRoaXMuZ2V0U2V2ZXJpdHlDbGFzcygpLFxuICAgICAgdGhpcy5jb25maWcuc3R5bGVDbGFzcyxcbiAgICBdXG4gICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAuam9pbignICcpO1xuICB9XG5cbiAgZ2V0IHByaW1lUG9zaXRpb24oKTogRGlhbG9nUG9zaXRpb24ge1xuICAgIHJldHVybiAodGhpcy5jb25maWcucG9zaXRpb24gPz8gJ2NlbnRlcicpIGFzIERpYWxvZ1Bvc2l0aW9uO1xuICB9XG5cbiAgZ2V0IGJvZHlTdHlsZSgpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcbiAgICBjb25zdCBzdHlsZTogYW55ID0ge307XG5cbiAgICBpZiAodGhpcy5jb25maWcuYm9keVdpZHRoKSB7XG4gICAgICBzdHlsZVsnbWF4LXdpZHRoJ10gPSB0aGlzLmNvbmZpZy5ib2R5V2lkdGg7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29uZmlnLmJvZHlIZWlnaHQpIHtcbiAgICAgIHN0eWxlWydtYXgtaGVpZ2h0J10gPSB0aGlzLmNvbmZpZy5ib2R5SGVpZ2h0O1xuICAgICAgaWYgKHRoaXMuY29uZmlnLmJvZHlTY3JvbGxhYmxlICE9PSBmYWxzZSkge1xuICAgICAgICBzdHlsZVsnb3ZlcmZsb3cteSddID0gJ2F1dG8nO1xuICAgICAgICBzdHlsZVsnb3ZlcmZsb3cteCddID0gJ2F1dG8nO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzdHlsZTtcbiAgfVxuXG4gIC8qKiBTeW5jIDxwLWRpYWxvZz4g4oaSIHBhcmVudCAqL1xuICBvbkludGVybmFsVmlzaWJsZUNoYW5nZSh2OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5faW50ZXJuYWxWaXNpYmxlID0gdjtcbiAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdCh2KTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyDinIUgU2V2ZXJpdHkgY29sb3JzIGZvciBoZWFkZXIgZWxlbWVudHMgKGljb24gKyB0aXRsZSlcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIHByaXZhdGUgZ2V0U2V2ZXJpdHlIZWFkZXJDb2xvcigpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAodGhpcy5kaWFsb2dTZXZlcml0eSkge1xuICAgICAgY2FzZSBTZXZlcml0eUVudW0uREFOR0VSOlxuICAgICAgICByZXR1cm4gJyNiOTFjMWMnO1xuICAgICAgY2FzZSBTZXZlcml0eUVudW0uV0FSTklORzpcbiAgICAgICAgcmV0dXJuICcjYjQ1MzA5JztcbiAgICAgIGNhc2UgU2V2ZXJpdHlFbnVtLlNVQ0NFU1M6XG4gICAgICAgIHJldHVybiAnIzE1ODAzZCc7XG4gICAgICBjYXNlIFNldmVyaXR5RW51bS5JTkZPOlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICcjMjU2M2ViJztcbiAgICB9XG4gIH1cblxuICAvKiog4pyFIElubGluZSBzdHlsZSB0byBvdmVycmlkZSB0ZXh0LXByaW1hcnkgLyB1dGlsaXR5IGNsYXNzZXMgKi9cbiAgZ2V0IGhlYWRlckljb25TdHlsZSgpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcbiAgICByZXR1cm4geyBjb2xvcjogdGhpcy5nZXRTZXZlcml0eUhlYWRlckNvbG9yKCkgfTtcbiAgfVxuXG4gIC8qKiDinIUgT3B0aW9uYWwgYnV0IHJlY29tbWVuZGVkOiBrZWVwIHRpdGxlIGNvbnNpc3RlbnQgd2l0aCBpY29uICovXG4gIGdldCBoZWFkZXJUaXRsZVN0eWxlKCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICAgIHJldHVybiB7IGNvbG9yOiB0aGlzLmdldFNldmVyaXR5SGVhZGVyQ29sb3IoKSB9O1xuICB9XG4gIHByaXZhdGUgcmVtb3ZlVGV4dFV0aWxpdHlDbGFzc2VzKGNsczogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgICBpZiAoIWNscykgcmV0dXJuICcnO1xuXG4gICAgcmV0dXJuIGNsc1xuICAgICAgLnNwbGl0KC9cXHMrLylcbiAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgIC5maWx0ZXIoKGMpID0+ICFjLnN0YXJ0c1dpdGgoJ3RleHQtJykpIC8vIHJlbW92ZXMgdGV4dC1wcmltYXJ5LCB0ZXh0LWRhbmdlciwgZXRjLlxuICAgICAgLmpvaW4oJyAnKTtcbiAgfVxuXG4gIGdldCBzYWZlSGVhZGVySWNvbkNsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVtb3ZlVGV4dFV0aWxpdHlDbGFzc2VzKHRoaXMuY29uZmlnLmhlYWRlckljb25DbGFzcyk7XG4gIH1cbn1cbiIsIjxwLWRpYWxvZ1xuICBbdmlzaWJsZV09XCJfaW50ZXJuYWxWaXNpYmxlXCJcbiAgKHZpc2libGVDaGFuZ2UpPVwib25JbnRlcm5hbFZpc2libGVDaGFuZ2UoJGV2ZW50KVwiXG4gIFtoZWFkZXJdPVwiY29uZmlnLmhlYWRlclwiXG4gIFttb2RhbF09XCJjb25maWcubW9kYWxcIlxuICBbc3R5bGVdPVwiY29uZmlnLnN0eWxlXCJcbiAgW2JyZWFrcG9pbnRzXT1cImNvbmZpZy5icmVha3BvaW50c1wiXG4gIFtjbG9zYWJsZV09XCJjb25maWcuY2xvc2FibGVcIlxuICBbZHJhZ2dhYmxlXT1cImNvbmZpZy5kcmFnZ2FibGVcIlxuICBbcmVzaXphYmxlXT1cImNvbmZpZy5yZXNpemFibGVcIlxuICBbbWF4aW1pemFibGVdPVwiY29uZmlnLm1heGltaXphYmxlXCJcbiAgW2Rpc21pc3NhYmxlTWFza109XCJjb25maWcuZGlzbWlzc2FibGVNYXNrXCJcbiAgW2Nsb3NlT25Fc2NhcGVdPVwiY29uZmlnLmNsb3NlT25Fc2NhcGVcIlxuICBbYmxvY2tTY3JvbGxdPVwiY29uZmlnLmJsb2NrU2Nyb2xsXCJcbiAgW3Bvc2l0aW9uXT1cInByaW1lUG9zaXRpb25cIlxuICBbY29udGVudFN0eWxlXT1cImNvbmZpZy5jb250ZW50U3R5bGVcIlxuICBbc3R5bGVDbGFzc109XCJkaWFsb2dTdHlsZUNsYXNzXCJcbj5cbiAgPCEtLSBIRUFERVIgLS0+XG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwicHQtZGlhbG9nLWhlYWRlci1pbm5lclwiPlxuICAgICAgPGRpdiBjbGFzcz1cInB0LWRpYWxvZy1oZWFkZXItbGVmdFwiPlxuICAgICAgICA8aVxuICAgICAgICAgICpuZ0lmPVwiY29uZmlnLmhlYWRlckljb25DbGFzc1wiXG4gICAgICAgICAgY2xhc3M9XCJwdC1kaWFsb2ctaGVhZGVyLWljb25cIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInNhZmVIZWFkZXJJY29uQ2xhc3NcIlxuICAgICAgICAgIFtuZ1N0eWxlXT1cImhlYWRlckljb25TdHlsZVwiXG4gICAgICAgID48L2k+XG5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3B0RGlhbG9nSGVhZGVyXVwiPjwvbmctY29udGVudD5cblxuICAgICAgICA8c3BhblxuICAgICAgICAgICpuZ0lmPVwiY29uZmlnLmhlYWRlclwiXG4gICAgICAgICAgY2xhc3M9XCJwdC1kaWFsb2ctaGVhZGVyLXRpdGxlXCJcbiAgICAgICAgICBbbmdTdHlsZV09XCJoZWFkZXJUaXRsZVN0eWxlXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGNvbmZpZy5oZWFkZXIgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPCEtLSBCT0RZIC0tPlxuICA8ZGl2IGNsYXNzPVwicHQtZGlhbG9nLWJvZHlcIiBbbmdTdHlsZV09XCJib2R5U3R5bGVcIj5cbiAgICA8ZGl2IGNsYXNzPVwicHQtZGlhbG9nLWJvZHktaW5uZXJcIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltwdERpYWxvZ0NvbnRlbnRdXCI+PC9uZy1jb250ZW50PlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tIEZPT1RFUiAtLT5cbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImZvb3RlclwiICpuZ0lmPVwiY29uZmlnLnNob3dGb290ZXIgIT09IGZhbHNlXCI+XG4gICAgPGRpdiBjbGFzcz1cInB0LWRpYWxvZy1mb290ZXItYnV0dG9uc1wiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3B0RGlhbG9nRm9vdGVyXVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvcC1kaWFsb2c+XG4iXX0=
|
|
158
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXByaW1lLXRvb2xzL3NyYy9saWIvcHQtZGlhbG9nL3B0LWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LWRpYWxvZy9wdC1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUt2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDOzs7OztBQUV4QyxNQUFNLHFCQUFxQixHQUFtQjtJQUM1QyxXQUFXLEVBQUUsWUFBWSxDQUFDLElBQUk7SUFDOUIsS0FBSyxFQUFFLElBQUk7SUFDWCxRQUFRLEVBQUUsSUFBSTtJQUNkLFNBQVMsRUFBRSxJQUFJO0lBQ2YsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsS0FBSztJQUNsQixlQUFlLEVBQUUsS0FBSztJQUN0QixhQUFhLEVBQUUsSUFBSTtJQUNuQixXQUFXLEVBQUUsSUFBSTtJQUNqQixjQUFjLEVBQUUsSUFBSTtJQUNwQixVQUFVLEVBQUUsSUFBSTtJQUNoQixRQUFRLEVBQUUsUUFBUTtDQUNuQixDQUFDO0FBT0YsTUFBTSxPQUFPLGlCQUFpQjtJQUw5QjtRQU1FLGtDQUFrQztRQUMxQixZQUFPLEdBQW1CLEVBQUUsR0FBRyxxQkFBcUIsRUFBRSxDQUFDO1FBVS9ELG9FQUFvRTtRQUNwRSxxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFXZixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7S0F1SHZEO0lBM0lDLElBQ0ksTUFBTSxDQUFDLEtBQWlDO1FBQzFDLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxHQUFH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SSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDcEUsQ0FBQzsrR0E5SVUsaUJBQWlCO21HQUFqQixpQkFBaUIsZ0pDM0I5QiwydERBeURBOzs0RkQ5QmEsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLFdBQVc7OEJBU2pCLE1BQU07c0JBRFQsS0FBSztnQkFhRixPQUFPO3NCQURWLEtBQUs7Z0JBUUksYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBEaWFsb2dQb3NpdGlvbixcbiAgUFREaWFsb2dDb25maWcsXG59IGZyb20gJy4uL21vZGVscy9wdC1kaWFsb2ctY29uZmlnLm1vZGVsJztcbmltcG9ydCB7IFNldmVyaXR5RW51bSB9IGZyb20gJy4uL2VudW1zJztcblxuY29uc3QgREVGQVVMVF9ESUFMT0dfQ09ORklHOiBQVERpYWxvZ0NvbmZpZyA9IHtcbiAgZGlhbG9nU3R5bGU6IFNldmVyaXR5RW51bS5JTkZPLFxuICBtb2RhbDogdHJ1ZSxcbiAgY2xvc2FibGU6IHRydWUsXG4gIGRyYWdnYWJsZTogdHJ1ZSxcbiAgcmVzaXphYmxlOiB0cnVlLFxuICBtYXhpbWl6YWJsZTogZmFsc2UsXG4gIGRpc21pc3NhYmxlTWFzazogZmFsc2UsXG4gIGNsb3NlT25Fc2NhcGU6IHRydWUsXG4gIGJsb2NrU2Nyb2xsOiB0cnVlLFxuICBib2R5U2Nyb2xsYWJsZTogdHJ1ZSxcbiAgc2hvd0Zvb3RlcjogdHJ1ZSxcbiAgcG9zaXRpb246ICdjZW50ZXInLFxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHQtZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3B0LWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3B0LWRpYWxvZy5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBURGlhbG9nQ29tcG9uZW50IHtcbiAgLyoqIFNpbmdsZSBjb25maWd1cmF0aW9uIG9iamVjdCAqL1xuICBwcml2YXRlIF9jb25maWc6IFBURGlhbG9nQ29uZmlnID0geyAuLi5ERUZBVUxUX0RJQUxPR19DT05GSUcgfTtcblxuICBASW5wdXQoKVxuICBzZXQgY29uZmlnKHZhbHVlOiBQVERpYWxvZ0NvbmZpZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2NvbmZpZyA9IHsgLi4uREVGQVVMVF9ESUFMT0dfQ09ORklHLCAuLi4odmFsdWUgfHwge30pIH07XG4gIH1cbiAgZ2V0IGNvbmZpZygpOiBQVERpYWxvZ0NvbmZpZyB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZztcbiAgfVxuXG4gIC8vIC0tLS0gSW50ZXJuYWwgdmlzaWJsZSBzdGF0ZSAoUFVCTElDIHNvIHRlbXBsYXRlIGNhbiByZWFkIGl0KSAtLS0tXG4gIF9pbnRlcm5hbFZpc2libGUgPSBmYWxzZTtcblxuICAvKiogSW5wdXQgdmlzaWJsZSBmcm9tIHBhcmVudCAqL1xuICBASW5wdXQoKVxuICBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faW50ZXJuYWxWaXNpYmxlO1xuICB9XG4gIHNldCB2aXNpYmxlKHY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9pbnRlcm5hbFZpc2libGUgPSB2O1xuICB9XG5cbiAgQE91dHB1dCgpIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgLyoqIOKchSBTYW1lIG1hcHBpbmcgbG9naWMgYXMgcHQtY29uZmlybS1kaWFsb2cgKi9cbiAgZ2V0IGRpYWxvZ1NldmVyaXR5KCk6IFNldmVyaXR5RW51bSB7XG4gICAgY29uc3Qgc3R5bGUgPSB0aGlzLmNvbmZpZy5kaWFsb2dTdHlsZSA/PyBTZXZlcml0eUVudW0uSU5GTztcblxuICAgIHJldHVybiBzdHlsZSA9PT0gU2V2ZXJpdHlFbnVtLkRBTkdFUlxuICAgICAgPyBTZXZlcml0eUVudW0uREFOR0VSXG4gICAgICA6IHN0eWxlID09PSBTZXZlcml0eUVudW0uV0FSTklOR1xuICAgICAgICA/IFNldmVyaXR5RW51bS5XQVJOSU5HXG4gICAgICAgIDogc3R5bGUgPT09IFNldmVyaXR5RW51bS5TVUNDRVNTXG4gICAgICAgICAgPyBTZXZlcml0eUVudW0uU1VDQ0VTU1xuICAgICAgICAgIDogU2V2ZXJpdHlFbnVtLklORk87XG4gIH1cblxuICAvKiog4pyFIFVzZWQgaW4gW3N0eWxlQ2xhc3NdIHRvIGFwcGx5IENTUyB0aGVtZSBwZXIgc2V2ZXJpdHkgKi9cbiAgcHJpdmF0ZSBnZXRTZXZlcml0eUNsYXNzKCk6IHN0cmluZyB7XG4gICAgc3dpdGNoICh0aGlzLmRpYWxvZ1NldmVyaXR5KSB7XG4gICAgICBjYXNlIFNldmVyaXR5RW51bS5EQU5HRVI6XG4gICAgICAgIHJldHVybiAncHQtZGlhbG9nLWRhbmdlcic7XG4gICAgICBjYXNlIFNldmVyaXR5RW51bS5XQVJOSU5HOlxuICAgICAgICByZXR1cm4gJ3B0LWRpYWxvZy13YXJuaW5nJztcbiAgICAgIGNhc2UgU2V2ZXJpdHlFbnVtLlNVQ0NFU1M6XG4gICAgICAgIHJldHVybiAncHQtZGlhbG9nLXN1Y2Nlc3MnO1xuICAgICAgY2FzZSBTZXZlcml0eUVudW0uSU5GTzpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAncHQtZGlhbG9nLWluZm8nO1xuICAgIH1cbiAgfVxuXG4gIGdldCBkaWFsb2dTdHlsZUNsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFtcbiAgICAgICdib3JkZXItcm91bmQtM3hsJyxcbiAgICAgICdzaGFkb3ctNicsXG4gICAgICAnb3ZlcmZsb3ctaGlkZGVuJyxcbiAgICAgICdwdC1kaWFsb2ctb3ZlcmxheScsXG4gICAgICB0aGlzLmdldFNldmVyaXR5Q2xhc3MoKSxcbiAgICAgIHRoaXMuY29uZmlnLnN0eWxlQ2xhc3MsXG4gICAgXVxuICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgLmpvaW4oJyAnKTtcbiAgfVxuXG4gIGdldCBwcmltZVBvc2l0aW9uKCk6IERpYWxvZ1Bvc2l0aW9uIHtcbiAgICByZXR1cm4gKHRoaXMuY29uZmlnLnBvc2l0aW9uID8/ICdjZW50ZXInKSBhcyBEaWFsb2dQb3NpdGlvbjtcbiAgfVxuXG4gIGdldCBib2R5U3R5bGUoKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XG4gICAgY29uc3Qgc3R5bGU6IGFueSA9IHt9O1xuXG4gICAgaWYgKHRoaXMuY29uZmlnLmJvZHlXaWR0aCkge1xuICAgICAgc3R5bGVbJ21heC13aWR0aCddID0gdGhpcy5jb25maWcuYm9keVdpZHRoO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbmZpZy5ib2R5SGVpZ2h0KSB7XG4gICAgICBzdHlsZVsnbWF4LWhlaWdodCddID0gdGhpcy5jb25maWcuYm9keUhlaWdodDtcbiAgICAgIGlmICh0aGlzLmNvbmZpZy5ib2R5U2Nyb2xsYWJsZSAhPT0gZmFsc2UpIHtcbiAgICAgICAgc3R5bGVbJ292ZXJmbG93LXknXSA9ICdhdXRvJztcbiAgICAgICAgc3R5bGVbJ292ZXJmbG93LXgnXSA9ICdhdXRvJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gc3R5bGU7XG4gIH1cblxuICAvKiogU3luYyA8cC1kaWFsb2c+IOKGkiBwYXJlbnQgKi9cbiAgb25JbnRlcm5hbFZpc2libGVDaGFuZ2UodjogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuX2ludGVybmFsVmlzaWJsZSA9IHY7XG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodik7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8g4pyFIFNldmVyaXR5IGNvbG9ycyBmb3IgaGVhZGVyIGVsZW1lbnRzIChpY29uICsgdGl0bGUpXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICBwcml2YXRlIGdldFNldmVyaXR5SGVhZGVyQ29sb3IoKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHRoaXMuZGlhbG9nU2V2ZXJpdHkpIHtcbiAgICAgIGNhc2UgU2V2ZXJpdHlFbnVtLkRBTkdFUjpcbiAgICAgICAgcmV0dXJuICcjYjkxYzFjJztcbiAgICAgIGNhc2UgU2V2ZXJpdHlFbnVtLldBUk5JTkc6XG4gICAgICAgIHJldHVybiAnI2I0NTMwOSc7XG4gICAgICBjYXNlIFNldmVyaXR5RW51bS5TVUNDRVNTOlxuICAgICAgICByZXR1cm4gJyMxNTgwM2QnO1xuICAgICAgY2FzZSBTZXZlcml0eUVudW0uSU5GTzpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnIzI1NjNlYic7XG4gICAgfVxuICB9XG5cbiAgLyoqIOKchSBJbmxpbmUgc3R5bGUgdG8gb3ZlcnJpZGUgdGV4dC1wcmltYXJ5IC8gdXRpbGl0eSBjbGFzc2VzICh3aGljaCBhcmUgIWltcG9ydGFudCkgKi9cbiAgZ2V0IGhlYWRlckljb25TdHlsZSgpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcbiAgICAvLyBpbXBvcnRhbnQgaXMgbmVlZGVkIGJlY2F1c2UgUHJpbWVGbGV4IHRleHQtKiB1c2VzICFpbXBvcnRhbnRcbiAgICByZXR1cm4ge1xuICAgICAgY29sb3I6IHRoaXMuZ2V0U2V2ZXJpdHlIZWFkZXJDb2xvcigpLFxuICAgICAgJ2NvbG9yIWltcG9ydGFudCc6IHRoaXMuZ2V0U2V2ZXJpdHlIZWFkZXJDb2xvcigpLFxuICAgIH0gYXMgYW55O1xuICB9XG5cbiAgLyoqIOKchSBLZWVwIHRpdGxlIGNvbnNpc3RlbnQgd2l0aCBpY29uICovXG4gIGdldCBoZWFkZXJUaXRsZVN0eWxlKCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICAgIHJldHVybiB7XG4gICAgICBjb2xvcjogdGhpcy5nZXRTZXZlcml0eUhlYWRlckNvbG9yKCksXG4gICAgICAnY29sb3IhaW1wb3J0YW50JzogdGhpcy5nZXRTZXZlcml0eUhlYWRlckNvbG9yKCksXG4gICAgfSBhcyBhbnk7XG4gIH1cblxuICAvKiogcmVtb3ZlIFByaW1lRmxleCB0ZXh0LSogdXRpbGl0eSBjbGFzc2VzICh0ZXh0LXByaW1hcnksIHRleHQtZGFuZ2VyLCAuLi4pICovXG4gIHByaXZhdGUgcmVtb3ZlVGV4dFV0aWxpdHlDbGFzc2VzKGNsczogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgICBpZiAoIWNscykgcmV0dXJuICcnO1xuXG4gICAgcmV0dXJuIGNsc1xuICAgICAgLnNwbGl0KC9cXHMrLylcbiAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgIC5maWx0ZXIoKGMpID0+ICFjLnN0YXJ0c1dpdGgoJ3RleHQtJykpXG4gICAgICAuam9pbignICcpO1xuICB9XG5cbiAgZ2V0IHNhZmVIZWFkZXJJY29uQ2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZW1vdmVUZXh0VXRpbGl0eUNsYXNzZXModGhpcy5jb25maWcuaGVhZGVySWNvbkNsYXNzKTtcbiAgfVxufVxuIiwiPHAtZGlhbG9nXG4gIFt2aXNpYmxlXT1cIl9pbnRlcm5hbFZpc2libGVcIlxuICAodmlzaWJsZUNoYW5nZSk9XCJvbkludGVybmFsVmlzaWJsZUNoYW5nZSgkZXZlbnQpXCJcbiAgW2hlYWRlcl09XCJjb25maWcuaGVhZGVyXCJcbiAgW21vZGFsXT1cImNvbmZpZy5tb2RhbFwiXG4gIFtzdHlsZV09XCJjb25maWcuc3R5bGVcIlxuICBbYnJlYWtwb2ludHNdPVwiY29uZmlnLmJyZWFrcG9pbnRzXCJcbiAgW2Nsb3NhYmxlXT1cImNvbmZpZy5jbG9zYWJsZVwiXG4gIFtkcmFnZ2FibGVdPVwiY29uZmlnLmRyYWdnYWJsZVwiXG4gIFtyZXNpemFibGVdPVwiY29uZmlnLnJlc2l6YWJsZVwiXG4gIFttYXhpbWl6YWJsZV09XCJjb25maWcubWF4aW1pemFibGVcIlxuICBbZGlzbWlzc2FibGVNYXNrXT1cImNvbmZpZy5kaXNtaXNzYWJsZU1hc2tcIlxuICBbY2xvc2VPbkVzY2FwZV09XCJjb25maWcuY2xvc2VPbkVzY2FwZVwiXG4gIFtibG9ja1Njcm9sbF09XCJjb25maWcuYmxvY2tTY3JvbGxcIlxuICBbcG9zaXRpb25dPVwicHJpbWVQb3NpdGlvblwiXG4gIFtjb250ZW50U3R5bGVdPVwiY29uZmlnLmNvbnRlbnRTdHlsZVwiXG4gIFtzdHlsZUNsYXNzXT1cImRpYWxvZ1N0eWxlQ2xhc3NcIlxuPlxuICA8IS0tIEhFQURFUiAtLT5cbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJwdC1kaWFsb2ctaGVhZGVyLWlubmVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicHQtZGlhbG9nLWhlYWRlci1sZWZ0XCI+XG4gICAgICAgIDxpXG4gICAgICAgICAgKm5nSWY9XCJjb25maWcuaGVhZGVySWNvbkNsYXNzXCJcbiAgICAgICAgICBjbGFzcz1cInB0LWRpYWxvZy1oZWFkZXItaWNvblwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwic2FmZUhlYWRlckljb25DbGFzc1wiXG4gICAgICAgICAgW25nU3R5bGVdPVwiaGVhZGVySWNvblN0eWxlXCJcbiAgICAgICAgPjwvaT5cblxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbcHREaWFsb2dIZWFkZXJdXCI+PC9uZy1jb250ZW50PlxuXG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgKm5nSWY9XCJjb25maWcuaGVhZGVyXCJcbiAgICAgICAgICBjbGFzcz1cInB0LWRpYWxvZy1oZWFkZXItdGl0bGVcIlxuICAgICAgICAgIFtuZ1N0eWxlXT1cImhlYWRlclRpdGxlU3R5bGVcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgY29uZmlnLmhlYWRlciB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8IS0tIEJPRFkgLS0+XG4gIDxkaXYgY2xhc3M9XCJwdC1kaWFsb2ctYm9keVwiIFtuZ1N0eWxlXT1cImJvZHlTdHlsZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJwdC1kaWFsb2ctYm9keS1pbm5lclwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3B0RGlhbG9nQ29udGVudF1cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gRk9PVEVSIC0tPlxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZm9vdGVyXCIgKm5nSWY9XCJjb25maWcuc2hvd0Zvb3RlciAhPT0gZmFsc2VcIj5cbiAgICA8ZGl2IGNsYXNzPVwicHQtZGlhbG9nLWZvb3Rlci1idXR0b25zXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbcHREaWFsb2dGb290ZXJdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9wLWRpYWxvZz5cbiJdfQ==
|
|
@@ -154,14 +154,14 @@ export class PTDropdownComponent {
|
|
|
154
154
|
return 'left';
|
|
155
155
|
}
|
|
156
156
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
157
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: PTDropdownComponent, selector: "pt-dropdown", inputs: { formGroup: "formGroup", formField: "formField" }, ngImport: i0, template: "<!-- ng-prime-tools/projects/ng-prime-tools/src/lib/pt-dropdown/pt-dropdown.component.html -->\n<div\n [formGroup]=\"formGroup\"\n class=\"form-field\"\n [ngStyle]=\"{ width: formField.width || '100%' }\"\n *ngIf=\"!formField.hidden\"\n>\n <label *ngIf=\"formField.label\">{{ formField.label }}</label>\n\n <p-dropdown\n [formControlName]=\"formField.name\"\n [options]=\"formField.options\"\n [placeholder]=\"formField.placeholder || 'Select an option'\"\n optionLabel=\"label\"\n >\n <!-- Selected value template -->\n <ng-template pTemplate=\"selectedItem\" let-option>\n <ng-container *ngIf=\"option; else placeholderTpl\">\n <div class=\"pt-dropdown-item\">\n <ng-container *ngIf=\"getResolvedIcon(option) as iconMeta\">\n <!-- IMAGE ICON -->\n <img\n *ngIf=\"iconMeta.type === 'image'\"\n [src]=\"iconMeta.imageUrl\"\n [ngStyle]=\"iconMeta.imageStyle\"\n class=\"pt-dropdown-icon-image\"\n />\n\n <!-- FONT ICON (PrimeNG / FontAwesome) -->\n <i\n *ngIf=\"iconMeta.type === 'font'\"\n [ngClass]=\"iconMeta.fontIconClass\"\n [ngStyle]=\"iconMeta.fontIconStyle\"\n class=\"pt-dropdown-icon-font\"\n ></i>\n </ng-container>\n\n <span class=\"pt-dropdown-label\">{{ option.label }}</span>\n </div>\n </ng-container>\n </ng-template>\n\n <!-- Placeholder when no value selected -->\n <ng-template #placeholderTpl>\n <span>{{ formField.placeholder || \"Select an option\" }}</span>\n </ng-template>\n\n <!-- Items template -->\n <ng-template pTemplate=\"item\" let-option>\n <div class=\"pt-dropdown-item\">\n <ng-container *ngIf=\"getResolvedIcon(option) as iconMeta\">\n <img\n *ngIf=\"iconMeta.type === 'image'\"\n [src]=\"iconMeta.imageUrl\"\n [ngStyle]=\"iconMeta.imageStyle\"\n class=\"pt-dropdown-icon-image\"\n />\n\n <i\n *ngIf=\"iconMeta.type === 'font'\"\n [ngClass]=\"iconMeta.fontIconClass\"\n [ngStyle]=\"iconMeta.fontIconStyle\"\n class=\"pt-dropdown-icon-font\"\n ></i>\n </ng-container>\n\n <span class=\"pt-dropdown-label\">{{ option.label }}</span>\n </div>\n </ng-template>\n </p-dropdown>\n\n <div\n *ngIf=\"\n formGroup.get(formField.name)?.invalid &&\n formGroup.get(formField.name)?.touched\n \"\n >\n <small class=\"p-error\">{{ getErrorMessage() }}</small>\n </div>\n</div>\n", styles: [".form-field{display:flex;flex-direction:column;margin-bottom:1rem;gap:.25rem}.form-field label{display:block;margin-bottom:.5rem;font-weight:700;font-size:1rem}.pt-dropdown-item{display:flex;align-items:center;gap:.5rem}.pt-dropdown-icon-image{object-fit:cover}.pt-dropdown-icon-font{display:inline-flex;align-items:center;justify-content:center}.pt-dropdown-label{display:inline-block}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.Dropdown, selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "directive", type: i4.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }] }); }
|
|
157
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: PTDropdownComponent, selector: "pt-dropdown", inputs: { formGroup: "formGroup", formField: "formField" }, ngImport: i0, template: "<!-- ng-prime-tools/projects/ng-prime-tools/src/lib/pt-dropdown/pt-dropdown.component.html -->\n<div\n [formGroup]=\"formGroup\"\n class=\"form-field\"\n [ngStyle]=\"{ width: formField.width || '100%' }\"\n *ngIf=\"!formField.hidden\"\n>\n <label *ngIf=\"formField.label\">{{ formField.label }}</label>\n\n <p-dropdown\n [formControlName]=\"formField.name\"\n [options]=\"formField.options\"\n [placeholder]=\"formField.placeholder || 'Select an option'\"\n optionLabel=\"label\"\n [appendTo]=\"'body'\"\n [autoZIndex]=\"true\"\n [baseZIndex]=\"11000\"\n >\n <!-- Selected value template -->\n <ng-template pTemplate=\"selectedItem\" let-option>\n <ng-container *ngIf=\"option; else placeholderTpl\">\n <div class=\"pt-dropdown-item\">\n <ng-container *ngIf=\"getResolvedIcon(option) as iconMeta\">\n <!-- IMAGE ICON -->\n <img\n *ngIf=\"iconMeta.type === 'image'\"\n [src]=\"iconMeta.imageUrl\"\n [ngStyle]=\"iconMeta.imageStyle\"\n class=\"pt-dropdown-icon-image\"\n />\n\n <!-- FONT ICON (PrimeNG / FontAwesome) -->\n <i\n *ngIf=\"iconMeta.type === 'font'\"\n [ngClass]=\"iconMeta.fontIconClass\"\n [ngStyle]=\"iconMeta.fontIconStyle\"\n class=\"pt-dropdown-icon-font\"\n ></i>\n </ng-container>\n\n <span class=\"pt-dropdown-label\">{{ option.label }}</span>\n </div>\n </ng-container>\n </ng-template>\n\n <!-- Placeholder when no value selected -->\n <ng-template #placeholderTpl>\n <span>{{ formField.placeholder || \"Select an option\" }}</span>\n </ng-template>\n\n <!-- Items template -->\n <ng-template pTemplate=\"item\" let-option>\n <div class=\"pt-dropdown-item\">\n <ng-container *ngIf=\"getResolvedIcon(option) as iconMeta\">\n <img\n *ngIf=\"iconMeta.type === 'image'\"\n [src]=\"iconMeta.imageUrl\"\n [ngStyle]=\"iconMeta.imageStyle\"\n class=\"pt-dropdown-icon-image\"\n />\n\n <i\n *ngIf=\"iconMeta.type === 'font'\"\n [ngClass]=\"iconMeta.fontIconClass\"\n [ngStyle]=\"iconMeta.fontIconStyle\"\n class=\"pt-dropdown-icon-font\"\n ></i>\n </ng-container>\n\n <span class=\"pt-dropdown-label\">{{ option.label }}</span>\n </div>\n </ng-template>\n </p-dropdown>\n\n <div\n *ngIf=\"\n formGroup.get(formField.name)?.invalid &&\n formGroup.get(formField.name)?.touched\n \"\n >\n <small class=\"p-error\">{{ getErrorMessage() }}</small>\n </div>\n</div>\n", styles: [".form-field{display:flex;flex-direction:column;margin-bottom:1rem;gap:.25rem}.form-field label{display:block;margin-bottom:.5rem;font-weight:700;font-size:1rem}.pt-dropdown-item{display:flex;align-items:center;gap:.5rem}.pt-dropdown-icon-image{object-fit:cover}.pt-dropdown-icon-font{display:inline-flex;align-items:center;justify-content:center}.pt-dropdown-label{display:inline-block}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.Dropdown, selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "directive", type: i4.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }] }); }
|
|
158
158
|
}
|
|
159
159
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTDropdownComponent, decorators: [{
|
|
160
160
|
type: Component,
|
|
161
|
-
args: [{ selector: 'pt-dropdown', template: "<!-- ng-prime-tools/projects/ng-prime-tools/src/lib/pt-dropdown/pt-dropdown.component.html -->\n<div\n [formGroup]=\"formGroup\"\n class=\"form-field\"\n [ngStyle]=\"{ width: formField.width || '100%' }\"\n *ngIf=\"!formField.hidden\"\n>\n <label *ngIf=\"formField.label\">{{ formField.label }}</label>\n\n <p-dropdown\n [formControlName]=\"formField.name\"\n [options]=\"formField.options\"\n [placeholder]=\"formField.placeholder || 'Select an option'\"\n optionLabel=\"label\"\n >\n <!-- Selected value template -->\n <ng-template pTemplate=\"selectedItem\" let-option>\n <ng-container *ngIf=\"option; else placeholderTpl\">\n <div class=\"pt-dropdown-item\">\n <ng-container *ngIf=\"getResolvedIcon(option) as iconMeta\">\n <!-- IMAGE ICON -->\n <img\n *ngIf=\"iconMeta.type === 'image'\"\n [src]=\"iconMeta.imageUrl\"\n [ngStyle]=\"iconMeta.imageStyle\"\n class=\"pt-dropdown-icon-image\"\n />\n\n <!-- FONT ICON (PrimeNG / FontAwesome) -->\n <i\n *ngIf=\"iconMeta.type === 'font'\"\n [ngClass]=\"iconMeta.fontIconClass\"\n [ngStyle]=\"iconMeta.fontIconStyle\"\n class=\"pt-dropdown-icon-font\"\n ></i>\n </ng-container>\n\n <span class=\"pt-dropdown-label\">{{ option.label }}</span>\n </div>\n </ng-container>\n </ng-template>\n\n <!-- Placeholder when no value selected -->\n <ng-template #placeholderTpl>\n <span>{{ formField.placeholder || \"Select an option\" }}</span>\n </ng-template>\n\n <!-- Items template -->\n <ng-template pTemplate=\"item\" let-option>\n <div class=\"pt-dropdown-item\">\n <ng-container *ngIf=\"getResolvedIcon(option) as iconMeta\">\n <img\n *ngIf=\"iconMeta.type === 'image'\"\n [src]=\"iconMeta.imageUrl\"\n [ngStyle]=\"iconMeta.imageStyle\"\n class=\"pt-dropdown-icon-image\"\n />\n\n <i\n *ngIf=\"iconMeta.type === 'font'\"\n [ngClass]=\"iconMeta.fontIconClass\"\n [ngStyle]=\"iconMeta.fontIconStyle\"\n class=\"pt-dropdown-icon-font\"\n ></i>\n </ng-container>\n\n <span class=\"pt-dropdown-label\">{{ option.label }}</span>\n </div>\n </ng-template>\n </p-dropdown>\n\n <div\n *ngIf=\"\n formGroup.get(formField.name)?.invalid &&\n formGroup.get(formField.name)?.touched\n \"\n >\n <small class=\"p-error\">{{ getErrorMessage() }}</small>\n </div>\n</div>\n", styles: [".form-field{display:flex;flex-direction:column;margin-bottom:1rem;gap:.25rem}.form-field label{display:block;margin-bottom:.5rem;font-weight:700;font-size:1rem}.pt-dropdown-item{display:flex;align-items:center;gap:.5rem}.pt-dropdown-icon-image{object-fit:cover}.pt-dropdown-icon-font{display:inline-flex;align-items:center;justify-content:center}.pt-dropdown-label{display:inline-block}\n"] }]
|
|
161
|
+
args: [{ selector: 'pt-dropdown', template: "<!-- ng-prime-tools/projects/ng-prime-tools/src/lib/pt-dropdown/pt-dropdown.component.html -->\n<div\n [formGroup]=\"formGroup\"\n class=\"form-field\"\n [ngStyle]=\"{ width: formField.width || '100%' }\"\n *ngIf=\"!formField.hidden\"\n>\n <label *ngIf=\"formField.label\">{{ formField.label }}</label>\n\n <p-dropdown\n [formControlName]=\"formField.name\"\n [options]=\"formField.options\"\n [placeholder]=\"formField.placeholder || 'Select an option'\"\n optionLabel=\"label\"\n [appendTo]=\"'body'\"\n [autoZIndex]=\"true\"\n [baseZIndex]=\"11000\"\n >\n <!-- Selected value template -->\n <ng-template pTemplate=\"selectedItem\" let-option>\n <ng-container *ngIf=\"option; else placeholderTpl\">\n <div class=\"pt-dropdown-item\">\n <ng-container *ngIf=\"getResolvedIcon(option) as iconMeta\">\n <!-- IMAGE ICON -->\n <img\n *ngIf=\"iconMeta.type === 'image'\"\n [src]=\"iconMeta.imageUrl\"\n [ngStyle]=\"iconMeta.imageStyle\"\n class=\"pt-dropdown-icon-image\"\n />\n\n <!-- FONT ICON (PrimeNG / FontAwesome) -->\n <i\n *ngIf=\"iconMeta.type === 'font'\"\n [ngClass]=\"iconMeta.fontIconClass\"\n [ngStyle]=\"iconMeta.fontIconStyle\"\n class=\"pt-dropdown-icon-font\"\n ></i>\n </ng-container>\n\n <span class=\"pt-dropdown-label\">{{ option.label }}</span>\n </div>\n </ng-container>\n </ng-template>\n\n <!-- Placeholder when no value selected -->\n <ng-template #placeholderTpl>\n <span>{{ formField.placeholder || \"Select an option\" }}</span>\n </ng-template>\n\n <!-- Items template -->\n <ng-template pTemplate=\"item\" let-option>\n <div class=\"pt-dropdown-item\">\n <ng-container *ngIf=\"getResolvedIcon(option) as iconMeta\">\n <img\n *ngIf=\"iconMeta.type === 'image'\"\n [src]=\"iconMeta.imageUrl\"\n [ngStyle]=\"iconMeta.imageStyle\"\n class=\"pt-dropdown-icon-image\"\n />\n\n <i\n *ngIf=\"iconMeta.type === 'font'\"\n [ngClass]=\"iconMeta.fontIconClass\"\n [ngStyle]=\"iconMeta.fontIconStyle\"\n class=\"pt-dropdown-icon-font\"\n ></i>\n </ng-container>\n\n <span class=\"pt-dropdown-label\">{{ option.label }}</span>\n </div>\n </ng-template>\n </p-dropdown>\n\n <div\n *ngIf=\"\n formGroup.get(formField.name)?.invalid &&\n formGroup.get(formField.name)?.touched\n \"\n >\n <small class=\"p-error\">{{ getErrorMessage() }}</small>\n </div>\n</div>\n", styles: [".form-field{display:flex;flex-direction:column;margin-bottom:1rem;gap:.25rem}.form-field label{display:block;margin-bottom:.5rem;font-weight:700;font-size:1rem}.pt-dropdown-item{display:flex;align-items:center;gap:.5rem}.pt-dropdown-icon-image{object-fit:cover}.pt-dropdown-icon-font{display:inline-flex;align-items:center;justify-content:center}.pt-dropdown-label{display:inline-block}\n"] }]
|
|
162
162
|
}], propDecorators: { formGroup: [{
|
|
163
163
|
type: Input
|
|
164
164
|
}], formField: [{
|
|
165
165
|
type: Input
|
|
166
166
|
}] } });
|
|
167
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctcHJpbWUtdG9vbHMvc3JjL2xpYi9wdC1kcm9wZG93bi9wdC1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LWRyb3Bkb3duL3B0LWRyb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNGQUFzRjtBQUN0RixPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQWEsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFVcEUsTUFBTSxPQUFPLG1CQUFtQjtJQUk5QixRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxzRUFBc0U7SUFDdEUsMEJBQTBCO0lBQzFCLHNFQUFzRTtJQUM5RCxZQUFZO1FBQ2xCLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFnQixDQUFDO1FBRXJFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE9BQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQztZQUN4RCxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMxRCxDQUFDO1FBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3hDLE9BQU8sQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFbEMsVUFBVSxD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QWdCLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQy9DLE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUN0QixDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzsrR0E5S1UsbUJBQW1CO21HQUFuQixtQkFBbUIsK0dDWmhDLDRsRkFnRkE7OzRGRHBFYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsYUFBYTs4QkFLZCxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBuZy1wcmltZS10b29scy9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LWRyb3Bkb3duL3B0LWRyb3Bkb3duLmNvbXBvbmVudC50c1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1Db250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRm9ybURyb3Bkb3duRmllbGQgfSBmcm9tICcuLi9tb2RlbHMvZm9ybS1kcm9wLWRvd24tZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgSWNvblN0eWxlIH0gZnJvbSAnLi4vbW9kZWxzL2ljb24tc3R5bGUubW9kZWwnO1xuaW1wb3J0IHsgSWNvbkltYWdlU3R5bGUgfSBmcm9tICcuLi9tb2RlbHMvaWNvbi1pbWFnZS1zdHlsZS5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3B0LWRyb3Bkb3duJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3B0LWRyb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHQtZHJvcGRvd24uY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBQVERyb3Bkb3duQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgZm9ybUdyb3VwITogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBmb3JtRmllbGQhOiBGb3JtRHJvcGRvd25GaWVsZDtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldHVwQ29udHJvbCgpO1xuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyDwn5SnIENvbnRyb2wgJiB2YWxpZGF0aW9uXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgcHJpdmF0ZSBzZXR1cENvbnRyb2woKTogdm9pZCB7XG4gICAgbGV0IGNvbnRyb2wgPSB0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5mb3JtRmllbGQubmFtZSkgYXMgRm9ybUNvbnRyb2w7XG5cbiAgICBpZiAoIWNvbnRyb2wpIHtcbiAgICAgIGNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2wodGhpcy5mb3JtRmllbGQudmFsdWUgPz8gbnVsbCk7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKHRoaXMuZm9ybUZpZWxkLm5hbWUsIGNvbnRyb2wpO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbGlkYXRvcnMgPSB0aGlzLmdldFZhbGlkYXRvcnMoKTtcbiAgICBjb250cm9sLnNldFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmZvcm1GaWVsZC5kaXNhYmxlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmICh0aGlzLmZvcm1GaWVsZC5kaXNhYmxlZCkge1xuICAgICAgICAgIGNvbnRyb2wuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29udHJvbC5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldFZhbGlkYXRvcnMoKSB7XG4gICAgY29uc3QgdmFsaWRhdG9ycyA9IFtdO1xuICAgIGlmICh0aGlzLmZvcm1GaWVsZC5yZXF1aXJlZCkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsaWRhdG9ycztcbiAgfVxuXG4gIGdldEVycm9yTWVzc2FnZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5mb3JtRmllbGQubmFtZSk7XG4gICAgaWYgKGNvbnRyb2w/Lmhhc0Vycm9yKCdyZXF1aXJlZCcpKSB7XG4gICAgICByZXR1cm4gdGhpcy5mb3JtRmllbGQuZXJyb3JUZXh0IHx8IGAke3RoaXMuZm9ybUZpZWxkLmxhYmVsfSBpcyByZXF1aXJlZGA7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8g8J+OqCBJY29uIGhlbHBlcnNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8qKlxuICAgKiBSw6lzb3V0IGzigJlpY8O0bmUgw6AgdXRpbGlzZXIgcG91ciB1bmUgb3B0aW9uIDpcbiAgICogMSkgb3B0aW9uLmljb25TdHlsZSB8IG9wdGlvbi5pY29uSW1hZ2VTdHlsZVxuICAgKiAyKSBvcHRpb24uaWNvblxuICAgKiAzKSBmb3JtRmllbGQuaWNvbiAoZmFsbGJhY2sgZ2xvYmFsKVxuICAgKi9cbiAgZ2V0UmVzb2x2ZWRJY29uKG9wdGlvbjogYW55KToge1xuICAgIHR5cGU6ICdub25lJyB8ICdmb250JyB8ICdpbWFnZSc7XG4gICAgZm9udEljb25DbGFzcz86IHN0cmluZztcbiAgICBmb250SWNvblN0eWxlPzogeyBbazogc3RyaW5nXTogYW55IH07XG4gICAgaW1hZ2VVcmw/OiBzdHJpbmc7XG4gICAgaW1hZ2VTdHlsZT86IHsgW2s6IHN0cmluZ106IGFueSB9O1xuICB9IHtcbiAgICBjb25zdCBzb3VyY2UgPVxuICAgICAgb3B0aW9uPy5pY29uU3R5bGUgfHxcbiAgICAgIG9wdGlvbj8uaWNvbkltYWdlU3R5bGUgfHxcbiAgICAgIG9wdGlvbj8uaWNvbiB8fFxuICAgICAgdGhpcy5mb3JtRmllbGQuaWNvbjtcblxuICAgIGlmICghc291cmNlKSB7XG4gICAgICByZXR1cm4geyB0eXBlOiAnbm9uZScgfTtcbiAgICB9XG5cbiAgICAvLyAxKSBJbWFnZSBpY29uIChJY29uSW1hZ2VTdHlsZSlcbiAgICBpZiAodGhpcy5pc0ljb25JbWFnZVN0eWxlKHNvdXJjZSkpIHtcbiAgICAgIGNvbnN0IGltZyA9IHNvdXJjZSBhcyBJY29uSW1hZ2VTdHlsZTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6ICdpbWFnZScsXG4gICAgICAgIGltYWdlVXJsOiBpbWcudXJsLFxuICAgICAgICBpbWFnZVN0eWxlOiB0aGlzLmJ1aWxkSW1hZ2VTdHlsZShpbWcpLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyAyKSBGb250IGljb24gZnVsbCBzdHlsZSAoSWNvblN0eWxlKVxuICAgIGlmICh0aGlzLmlzSWNvblN0eWxlKHNvdXJjZSkpIHtcbiAgICAgIGNvbnN0IHN0eWxlID0gc291cmNlIGFzIEljb25TdHlsZTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6ICdmb250JyxcbiAgICAgICAgZm9udEljb25DbGFzczogc3R5bGUuY29kZSwgLy8gZXg6ICdwaSBwaS1mbGFnJyBvciAnZmEgZmEtZmxhZydcbiAgICAgICAgZm9udEljb25TdHlsZTogdGhpcy5idWlsZEZvbnRJY29uU3R5bGUoc3R5bGUpLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyAzKSBTaW1wbGUgc3RyaW5nIG9mIGNsYXNzZXMgKFByaW1lTkcgLyBGb250IEF3ZXNvbWUpXG4gICAgaWYgKHR5cGVvZiBzb3VyY2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiAnZm9udCcsXG4gICAgICAgIGZvbnRJY29uQ2xhc3M6IHNvdXJjZSxcbiAgICAgICAgZm9udEljb25TdHlsZToge30sXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7IHR5cGU6ICdub25lJyB9O1xuICB9XG5cbiAgcHJpdmF0ZSBpc0ljb25TdHlsZSh2YWx1ZTogYW55KTogdmFsdWUgaXMgSWNvblN0eWxlIHtcbiAgICByZXR1cm4gISF2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICdjb2RlJyBpbiB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgaXNJY29uSW1hZ2VTdHlsZSh2YWx1ZTogYW55KTogdmFsdWUgaXMgSWNvbkltYWdlU3R5bGUge1xuICAgIHJldHVybiAhIXZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgJ3VybCcgaW4gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkRm9udEljb25TdHlsZShpY29uOiBJY29uU3R5bGUpOiB7IFtrOiBzdHJpbmddOiBhbnkgfSB7XG4gICAgY29uc3Qgc3R5bGVzOiB7IFtrOiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuXG4gICAgaWYgKGljb24uY29sb3IpIHtcbiAgICAgIHN0eWxlcy5jb2xvciA9IGljb24uY29sb3I7XG4gICAgfVxuICAgIGlmIChpY29uLmZvbnRTaXplKSB7XG4gICAgICBzdHlsZXNbJ2ZvbnQtc2l6ZSddID0gaWNvbi5mb250U2l6ZTtcbiAgICB9XG4gICAgaWYgKGljb24uYmFja2dyb3VuZENvbG9yKSB7XG4gICAgICBzdHlsZXNbJ2JhY2tncm91bmQtY29sb3InXSA9IGljb24uYmFja2dyb3VuZENvbG9yO1xuICAgICAgc3R5bGVzLnBhZGRpbmcgPSBzdHlsZXMucGFkZGluZyA/PyAnMC4xNXJlbSAwLjNyZW0nO1xuICAgIH1cblxuICAgIGlmIChpY29uLnNoYXBlID09PSAnY2lyY3VsYXInKSB7XG4gICAgICBzdHlsZXNbJ2JvcmRlci1yYWRpdXMnXSA9ICc1MCUnO1xuICAgIH0gZWxzZSBpZiAoaWNvbi5zaGFwZSA9PT0gJ3JvdW5kZWQtc3F1YXJlJykge1xuICAgICAgc3R5bGVzWydib3JkZXItcmFkaXVzJ10gPSAnNnB4JztcbiAgICB9XG5cbiAgICByZXR1cm4gc3R5bGVzO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEltYWdlU3R5bGUoaWNvbjogSWNvbkltYWdlU3R5bGUpOiB7IFtrOiBzdHJpbmddOiBhbnkgfSB7XG4gICAgY29uc3Qgc3R5bGVzOiB7IFtrOiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuXG4gICAgaWYgKGljb24ud2lkdGgpIHN0eWxlcy53aWR0aCA9IGljb24ud2lkdGg7XG4gICAgaWYgKGljb24uaGVpZ2h0KSBzdHlsZXMuaGVpZ2h0ID0gaWNvbi5oZWlnaHQ7XG4gICAgaWYgKGljb24ubWFyZ2luTGVmdCkgc3R5bGVzWydtYXJnaW4tbGVmdCddID0gaWNvbi5tYXJnaW5MZWZ0O1xuICAgIGlmIChpY29uLm1hcmdpblJpZ2h0KSBzdHlsZXNbJ21hcmdpbi1yaWdodCddID0gaWNvbi5tYXJnaW5SaWdodDtcbiAgICBpZiAoaWNvbi5tYXJnaW5Ub3ApIHN0eWxlc1snbWFyZ2luLXRvcCddID0gaWNvbi5tYXJnaW5Ub3A7XG4gICAgaWYgKGljb24ubWFyZ2luQm90dG9tKSBzdHlsZXNbJ21hcmdpbi1ib3R0b20nXSA9IGljb24ubWFyZ2luQm90dG9tO1xuXG4gICAgaWYgKGljb24uc2hhcGUgPT09ICdjaXJjdWxhcicpIHtcbiAgICAgIHN0eWxlc1snYm9yZGVyLXJhZGl1cyddID0gJzUwJSc7XG4gICAgfSBlbHNlIGlmIChpY29uLnNoYXBlID09PSAncm91bmRlZC1zcXVhcmUnKSB7XG4gICAgICBzdHlsZXNbJ2JvcmRlci1yYWRpdXMnXSA9ICc2cHgnO1xuICAgIH1cblxuICAgIHJldHVybiBzdHlsZXM7XG4gIH1cblxuICBnZXRJY29uUG9zaXRpb24ob3B0aW9uOiBhbnkpOiAnbGVmdCcgfCAncmlnaHQnIHtcbiAgICBjb25zdCBzcmMgPVxuICAgICAgb3B0aW9uPy5pY29uU3R5bGUgfHxcbiAgICAgIG9wdGlvbj8uaWNvbkltYWdlU3R5bGUgfHxcbiAgICAgIG9wdGlvbj8uaWNvbiB8fFxuICAgICAgdGhpcy5mb3JtRmllbGQuaWNvbjtcblxuICAgIGlmICh0aGlzLmlzSWNvblN0eWxlKHNyYykgJiYgc3JjLnBvc2l0aW9uKSB7XG4gICAgICByZXR1cm4gc3JjLnBvc2l0aW9uO1xuICAgIH1cbiAgICBpZiAodGhpcy5pc0ljb25JbWFnZVN0eWxlKHNyYykgJiYgc3JjLnBvc2l0aW9uKSB7XG4gICAgICByZXR1cm4gc3JjLnBvc2l0aW9uO1xuICAgIH1cbiAgICByZXR1cm4gJ2xlZnQnO1xuICB9XG59XG4iLCI8IS0tIG5nLXByaW1lLXRvb2xzL3Byb2plY3RzL25nLXByaW1lLXRvb2xzL3NyYy9saWIvcHQtZHJvcGRvd24vcHQtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwgLS0+XG48ZGl2XG4gIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCJcbiAgY2xhc3M9XCJmb3JtLWZpZWxkXCJcbiAgW25nU3R5bGVdPVwieyB3aWR0aDogZm9ybUZpZWxkLndpZHRoIHx8ICcxMDAlJyB9XCJcbiAgKm5nSWY9XCIhZm9ybUZpZWxkLmhpZGRlblwiXG4+XG4gIDxsYWJlbCAqbmdJZj1cImZvcm1GaWVsZC5sYWJlbFwiPnt7IGZvcm1GaWVsZC5sYWJlbCB9fTwvbGFiZWw+XG5cbiAgPHAtZHJvcGRvd25cbiAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZvcm1GaWVsZC5uYW1lXCJcbiAgICBbb3B0aW9uc109XCJmb3JtRmllbGQub3B0aW9uc1wiXG4gICAgW3BsYWNlaG9sZGVyXT1cImZvcm1GaWVsZC5wbGFjZWhvbGRlciB8fCAnU2VsZWN0IGFuIG9wdGlvbidcIlxuICAgIG9wdGlvbkxhYmVsPVwibGFiZWxcIlxuICA+XG4gICAgPCEtLSBTZWxlY3RlZCB2YWx1ZSB0ZW1wbGF0ZSAtLT5cbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwic2VsZWN0ZWRJdGVtXCIgbGV0LW9wdGlvbj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvcHRpb247IGVsc2UgcGxhY2Vob2xkZXJUcGxcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInB0LWRyb3Bkb3duLWl0ZW1cIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ2V0UmVzb2x2ZWRJY29uKG9wdGlvbikgYXMgaWNvbk1ldGFcIj5cbiAgICAgICAgICAgIDwhLS0gSU1BR0UgSUNPTiAtLT5cbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgKm5nSWY9XCJpY29uTWV0YS50eXBlID09PSAnaW1hZ2UnXCJcbiAgICAgICAgICAgICAgW3NyY109XCJpY29uTWV0YS5pbWFnZVVybFwiXG4gICAgICAgICAgICAgIFtuZ1N0eWxlXT1cImljb25NZXRhLmltYWdlU3R5bGVcIlxuICAgICAgICAgICAgICBjbGFzcz1cInB0LWRyb3Bkb3duLWljb24taW1hZ2VcIlxuICAgICAgICAgICAgLz5cblxuICAgICAgICAgICAgPCEtLSBGT05UIElDT04gKFByaW1lTkcgLyBGb250QXdlc29tZSkgLS0+XG4gICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAqbmdJZj1cImljb25NZXRhLnR5cGUgPT09ICdmb250J1wiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImljb25NZXRhLmZvbnRJY29uQ2xhc3NcIlxuICAgICAgICAgICAgICBbbmdTdHlsZV09XCJpY29uTWV0YS5mb250SWNvblN0eWxlXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJwdC1kcm9wZG93bi1pY29uLWZvbnRcIlxuICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHQtZHJvcGRvd24tbGFiZWxcIj57eyBvcHRpb24ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDwhLS0gUGxhY2Vob2xkZXIgd2hlbiBubyB2YWx1ZSBzZWxlY3RlZCAtLT5cbiAgICA8bmctdGVtcGxhdGUgI3BsYWNlaG9sZGVyVHBsPlxuICAgICAgPHNwYW4+e3sgZm9ybUZpZWxkLnBsYWNlaG9sZGVyIHx8IFwiU2VsZWN0IGFuIG9wdGlvblwiIH19PC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8IS0tIEl0ZW1zIHRlbXBsYXRlIC0tPlxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJpdGVtXCIgbGV0LW9wdGlvbj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwdC1kcm9wZG93bi1pdGVtXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJnZXRSZXNvbHZlZEljb24ob3B0aW9uKSBhcyBpY29uTWV0YVwiPlxuICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICpuZ0lmPVwiaWNvbk1ldGEudHlwZSA9PT0gJ2ltYWdlJ1wiXG4gICAgICAgICAgICBbc3JjXT1cImljb25NZXRhLmltYWdlVXJsXCJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cImljb25NZXRhLmltYWdlU3R5bGVcIlxuICAgICAgICAgICAgY2xhc3M9XCJwdC1kcm9wZG93bi1pY29uLWltYWdlXCJcbiAgICAgICAgICAvPlxuXG4gICAgICAgICAgPGlcbiAgICAgICAgICAgICpuZ0lmPVwiaWNvbk1ldGEudHlwZSA9PT0gJ2ZvbnQnXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cImljb25NZXRhLmZvbnRJY29uQ2xhc3NcIlxuICAgICAgICAgICAgW25nU3R5bGVdPVwiaWNvbk1ldGEuZm9udEljb25TdHlsZVwiXG4gICAgICAgICAgICBjbGFzcz1cInB0LWRyb3Bkb3duLWljb24tZm9udFwiXG4gICAgICAgICAgPjwvaT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJwdC1kcm9wZG93bi1sYWJlbFwiPnt7IG9wdGlvbi5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvcC1kcm9wZG93bj5cblxuICA8ZGl2XG4gICAgKm5nSWY9XCJcbiAgICAgIGZvcm1Hcm91cC5nZXQoZm9ybUZpZWxkLm5hbWUpPy5pbnZhbGlkICYmXG4gICAgICBmb3JtR3JvdXAuZ2V0KGZvcm1GaWVsZC5uYW1lKT8udG91Y2hlZFxuICAgIFwiXG4gID5cbiAgICA8c21hbGwgY2xhc3M9XCJwLWVycm9yXCI+e3sgZ2V0RXJyb3JNZXNzYWdlKCkgfX08L3NtYWxsPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
167
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctcHJpbWUtdG9vbHMvc3JjL2xpYi9wdC1kcm9wZG93bi9wdC1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LWRyb3Bkb3duL3B0LWRyb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNGQUFzRjtBQUN0RixPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQWEsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFVcEUsTUFBTSxPQUFPLG1CQUFtQjtJQUk5QixRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxzRUFBc0U7SUFDdEUsMEJBQTBCO0lBQzFCLHNFQUFzRTtJQUM5RCxZQUFZO1FBQ2xCLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFnQixDQUFDO1FBRXJFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE9BQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQztZQUN4RCxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMxRCxDQUFDO1FBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3hDLE9BQU8sQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFbEMsVUFBVSxD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QWdCLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQy9DLE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUN0QixDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzsrR0E5S1UsbUJBQW1CO21HQUFuQixtQkFBbUIsK0dDWmhDLDhxRkFtRkE7OzRGRHZFYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsYUFBYTs4QkFLZCxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBuZy1wcmltZS10b29scy9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LWRyb3Bkb3duL3B0LWRyb3Bkb3duLmNvbXBvbmVudC50c1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1Db250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRm9ybURyb3Bkb3duRmllbGQgfSBmcm9tICcuLi9tb2RlbHMvZm9ybS1kcm9wLWRvd24tZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgSWNvblN0eWxlIH0gZnJvbSAnLi4vbW9kZWxzL2ljb24tc3R5bGUubW9kZWwnO1xuaW1wb3J0IHsgSWNvbkltYWdlU3R5bGUgfSBmcm9tICcuLi9tb2RlbHMvaWNvbi1pbWFnZS1zdHlsZS5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3B0LWRyb3Bkb3duJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3B0LWRyb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHQtZHJvcGRvd24uY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBQVERyb3Bkb3duQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgZm9ybUdyb3VwITogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBmb3JtRmllbGQhOiBGb3JtRHJvcGRvd25GaWVsZDtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldHVwQ29udHJvbCgpO1xuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyDwn5SnIENvbnRyb2wgJiB2YWxpZGF0aW9uXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgcHJpdmF0ZSBzZXR1cENvbnRyb2woKTogdm9pZCB7XG4gICAgbGV0IGNvbnRyb2wgPSB0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5mb3JtRmllbGQubmFtZSkgYXMgRm9ybUNvbnRyb2w7XG5cbiAgICBpZiAoIWNvbnRyb2wpIHtcbiAgICAgIGNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2wodGhpcy5mb3JtRmllbGQudmFsdWUgPz8gbnVsbCk7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKHRoaXMuZm9ybUZpZWxkLm5hbWUsIGNvbnRyb2wpO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbGlkYXRvcnMgPSB0aGlzLmdldFZhbGlkYXRvcnMoKTtcbiAgICBjb250cm9sLnNldFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmZvcm1GaWVsZC5kaXNhYmxlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmICh0aGlzLmZvcm1GaWVsZC5kaXNhYmxlZCkge1xuICAgICAgICAgIGNvbnRyb2wuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29udHJvbC5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldFZhbGlkYXRvcnMoKSB7XG4gICAgY29uc3QgdmFsaWRhdG9ycyA9IFtdO1xuICAgIGlmICh0aGlzLmZvcm1GaWVsZC5yZXF1aXJlZCkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsaWRhdG9ycztcbiAgfVxuXG4gIGdldEVycm9yTWVzc2FnZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5mb3JtRmllbGQubmFtZSk7XG4gICAgaWYgKGNvbnRyb2w/Lmhhc0Vycm9yKCdyZXF1aXJlZCcpKSB7XG4gICAgICByZXR1cm4gdGhpcy5mb3JtRmllbGQuZXJyb3JUZXh0IHx8IGAke3RoaXMuZm9ybUZpZWxkLmxhYmVsfSBpcyByZXF1aXJlZGA7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8g8J+OqCBJY29uIGhlbHBlcnNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8qKlxuICAgKiBSw6lzb3V0IGzigJlpY8O0bmUgw6AgdXRpbGlzZXIgcG91ciB1bmUgb3B0aW9uIDpcbiAgICogMSkgb3B0aW9uLmljb25TdHlsZSB8IG9wdGlvbi5pY29uSW1hZ2VTdHlsZVxuICAgKiAyKSBvcHRpb24uaWNvblxuICAgKiAzKSBmb3JtRmllbGQuaWNvbiAoZmFsbGJhY2sgZ2xvYmFsKVxuICAgKi9cbiAgZ2V0UmVzb2x2ZWRJY29uKG9wdGlvbjogYW55KToge1xuICAgIHR5cGU6ICdub25lJyB8ICdmb250JyB8ICdpbWFnZSc7XG4gICAgZm9udEljb25DbGFzcz86IHN0cmluZztcbiAgICBmb250SWNvblN0eWxlPzogeyBbazogc3RyaW5nXTogYW55IH07XG4gICAgaW1hZ2VVcmw/OiBzdHJpbmc7XG4gICAgaW1hZ2VTdHlsZT86IHsgW2s6IHN0cmluZ106IGFueSB9O1xuICB9IHtcbiAgICBjb25zdCBzb3VyY2UgPVxuICAgICAgb3B0aW9uPy5pY29uU3R5bGUgfHxcbiAgICAgIG9wdGlvbj8uaWNvbkltYWdlU3R5bGUgfHxcbiAgICAgIG9wdGlvbj8uaWNvbiB8fFxuICAgICAgdGhpcy5mb3JtRmllbGQuaWNvbjtcblxuICAgIGlmICghc291cmNlKSB7XG4gICAgICByZXR1cm4geyB0eXBlOiAnbm9uZScgfTtcbiAgICB9XG5cbiAgICAvLyAxKSBJbWFnZSBpY29uIChJY29uSW1hZ2VTdHlsZSlcbiAgICBpZiAodGhpcy5pc0ljb25JbWFnZVN0eWxlKHNvdXJjZSkpIHtcbiAgICAgIGNvbnN0IGltZyA9IHNvdXJjZSBhcyBJY29uSW1hZ2VTdHlsZTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6ICdpbWFnZScsXG4gICAgICAgIGltYWdlVXJsOiBpbWcudXJsLFxuICAgICAgICBpbWFnZVN0eWxlOiB0aGlzLmJ1aWxkSW1hZ2VTdHlsZShpbWcpLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyAyKSBGb250IGljb24gZnVsbCBzdHlsZSAoSWNvblN0eWxlKVxuICAgIGlmICh0aGlzLmlzSWNvblN0eWxlKHNvdXJjZSkpIHtcbiAgICAgIGNvbnN0IHN0eWxlID0gc291cmNlIGFzIEljb25TdHlsZTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6ICdmb250JyxcbiAgICAgICAgZm9udEljb25DbGFzczogc3R5bGUuY29kZSwgLy8gZXg6ICdwaSBwaS1mbGFnJyBvciAnZmEgZmEtZmxhZydcbiAgICAgICAgZm9udEljb25TdHlsZTogdGhpcy5idWlsZEZvbnRJY29uU3R5bGUoc3R5bGUpLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyAzKSBTaW1wbGUgc3RyaW5nIG9mIGNsYXNzZXMgKFByaW1lTkcgLyBGb250IEF3ZXNvbWUpXG4gICAgaWYgKHR5cGVvZiBzb3VyY2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiAnZm9udCcsXG4gICAgICAgIGZvbnRJY29uQ2xhc3M6IHNvdXJjZSxcbiAgICAgICAgZm9udEljb25TdHlsZToge30sXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7IHR5cGU6ICdub25lJyB9O1xuICB9XG5cbiAgcHJpdmF0ZSBpc0ljb25TdHlsZSh2YWx1ZTogYW55KTogdmFsdWUgaXMgSWNvblN0eWxlIHtcbiAgICByZXR1cm4gISF2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICdjb2RlJyBpbiB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgaXNJY29uSW1hZ2VTdHlsZSh2YWx1ZTogYW55KTogdmFsdWUgaXMgSWNvbkltYWdlU3R5bGUge1xuICAgIHJldHVybiAhIXZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgJ3VybCcgaW4gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkRm9udEljb25TdHlsZShpY29uOiBJY29uU3R5bGUpOiB7IFtrOiBzdHJpbmddOiBhbnkgfSB7XG4gICAgY29uc3Qgc3R5bGVzOiB7IFtrOiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuXG4gICAgaWYgKGljb24uY29sb3IpIHtcbiAgICAgIHN0eWxlcy5jb2xvciA9IGljb24uY29sb3I7XG4gICAgfVxuICAgIGlmIChpY29uLmZvbnRTaXplKSB7XG4gICAgICBzdHlsZXNbJ2ZvbnQtc2l6ZSddID0gaWNvbi5mb250U2l6ZTtcbiAgICB9XG4gICAgaWYgKGljb24uYmFja2dyb3VuZENvbG9yKSB7XG4gICAgICBzdHlsZXNbJ2JhY2tncm91bmQtY29sb3InXSA9IGljb24uYmFja2dyb3VuZENvbG9yO1xuICAgICAgc3R5bGVzLnBhZGRpbmcgPSBzdHlsZXMucGFkZGluZyA/PyAnMC4xNXJlbSAwLjNyZW0nO1xuICAgIH1cblxuICAgIGlmIChpY29uLnNoYXBlID09PSAnY2lyY3VsYXInKSB7XG4gICAgICBzdHlsZXNbJ2JvcmRlci1yYWRpdXMnXSA9ICc1MCUnO1xuICAgIH0gZWxzZSBpZiAoaWNvbi5zaGFwZSA9PT0gJ3JvdW5kZWQtc3F1YXJlJykge1xuICAgICAgc3R5bGVzWydib3JkZXItcmFkaXVzJ10gPSAnNnB4JztcbiAgICB9XG5cbiAgICByZXR1cm4gc3R5bGVzO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEltYWdlU3R5bGUoaWNvbjogSWNvbkltYWdlU3R5bGUpOiB7IFtrOiBzdHJpbmddOiBhbnkgfSB7XG4gICAgY29uc3Qgc3R5bGVzOiB7IFtrOiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuXG4gICAgaWYgKGljb24ud2lkdGgpIHN0eWxlcy53aWR0aCA9IGljb24ud2lkdGg7XG4gICAgaWYgKGljb24uaGVpZ2h0KSBzdHlsZXMuaGVpZ2h0ID0gaWNvbi5oZWlnaHQ7XG4gICAgaWYgKGljb24ubWFyZ2luTGVmdCkgc3R5bGVzWydtYXJnaW4tbGVmdCddID0gaWNvbi5tYXJnaW5MZWZ0O1xuICAgIGlmIChpY29uLm1hcmdpblJpZ2h0KSBzdHlsZXNbJ21hcmdpbi1yaWdodCddID0gaWNvbi5tYXJnaW5SaWdodDtcbiAgICBpZiAoaWNvbi5tYXJnaW5Ub3ApIHN0eWxlc1snbWFyZ2luLXRvcCddID0gaWNvbi5tYXJnaW5Ub3A7XG4gICAgaWYgKGljb24ubWFyZ2luQm90dG9tKSBzdHlsZXNbJ21hcmdpbi1ib3R0b20nXSA9IGljb24ubWFyZ2luQm90dG9tO1xuXG4gICAgaWYgKGljb24uc2hhcGUgPT09ICdjaXJjdWxhcicpIHtcbiAgICAgIHN0eWxlc1snYm9yZGVyLXJhZGl1cyddID0gJzUwJSc7XG4gICAgfSBlbHNlIGlmIChpY29uLnNoYXBlID09PSAncm91bmRlZC1zcXVhcmUnKSB7XG4gICAgICBzdHlsZXNbJ2JvcmRlci1yYWRpdXMnXSA9ICc2cHgnO1xuICAgIH1cblxuICAgIHJldHVybiBzdHlsZXM7XG4gIH1cblxuICBnZXRJY29uUG9zaXRpb24ob3B0aW9uOiBhbnkpOiAnbGVmdCcgfCAncmlnaHQnIHtcbiAgICBjb25zdCBzcmMgPVxuICAgICAgb3B0aW9uPy5pY29uU3R5bGUgfHxcbiAgICAgIG9wdGlvbj8uaWNvbkltYWdlU3R5bGUgfHxcbiAgICAgIG9wdGlvbj8uaWNvbiB8fFxuICAgICAgdGhpcy5mb3JtRmllbGQuaWNvbjtcblxuICAgIGlmICh0aGlzLmlzSWNvblN0eWxlKHNyYykgJiYgc3JjLnBvc2l0aW9uKSB7XG4gICAgICByZXR1cm4gc3JjLnBvc2l0aW9uO1xuICAgIH1cbiAgICBpZiAodGhpcy5pc0ljb25JbWFnZVN0eWxlKHNyYykgJiYgc3JjLnBvc2l0aW9uKSB7XG4gICAgICByZXR1cm4gc3JjLnBvc2l0aW9uO1xuICAgIH1cbiAgICByZXR1cm4gJ2xlZnQnO1xuICB9XG59XG4iLCI8IS0tIG5nLXByaW1lLXRvb2xzL3Byb2plY3RzL25nLXByaW1lLXRvb2xzL3NyYy9saWIvcHQtZHJvcGRvd24vcHQtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwgLS0+XG48ZGl2XG4gIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCJcbiAgY2xhc3M9XCJmb3JtLWZpZWxkXCJcbiAgW25nU3R5bGVdPVwieyB3aWR0aDogZm9ybUZpZWxkLndpZHRoIHx8ICcxMDAlJyB9XCJcbiAgKm5nSWY9XCIhZm9ybUZpZWxkLmhpZGRlblwiXG4+XG4gIDxsYWJlbCAqbmdJZj1cImZvcm1GaWVsZC5sYWJlbFwiPnt7IGZvcm1GaWVsZC5sYWJlbCB9fTwvbGFiZWw+XG5cbiAgPHAtZHJvcGRvd25cbiAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZvcm1GaWVsZC5uYW1lXCJcbiAgICBbb3B0aW9uc109XCJmb3JtRmllbGQub3B0aW9uc1wiXG4gICAgW3BsYWNlaG9sZGVyXT1cImZvcm1GaWVsZC5wbGFjZWhvbGRlciB8fCAnU2VsZWN0IGFuIG9wdGlvbidcIlxuICAgIG9wdGlvbkxhYmVsPVwibGFiZWxcIlxuICAgIFthcHBlbmRUb109XCInYm9keSdcIlxuICAgIFthdXRvWkluZGV4XT1cInRydWVcIlxuICAgIFtiYXNlWkluZGV4XT1cIjExMDAwXCJcbiAgPlxuICAgIDwhLS0gU2VsZWN0ZWQgdmFsdWUgdGVtcGxhdGUgLS0+XG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cInNlbGVjdGVkSXRlbVwiIGxldC1vcHRpb24+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3B0aW9uOyBlbHNlIHBsYWNlaG9sZGVyVHBsXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwdC1kcm9wZG93bi1pdGVtXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdldFJlc29sdmVkSWNvbihvcHRpb24pIGFzIGljb25NZXRhXCI+XG4gICAgICAgICAgICA8IS0tIElNQUdFIElDT04gLS0+XG4gICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICpuZ0lmPVwiaWNvbk1ldGEudHlwZSA9PT0gJ2ltYWdlJ1wiXG4gICAgICAgICAgICAgIFtzcmNdPVwiaWNvbk1ldGEuaW1hZ2VVcmxcIlxuICAgICAgICAgICAgICBbbmdTdHlsZV09XCJpY29uTWV0YS5pbWFnZVN0eWxlXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJwdC1kcm9wZG93bi1pY29uLWltYWdlXCJcbiAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgIDwhLS0gRk9OVCBJQ09OIChQcmltZU5HIC8gRm9udEF3ZXNvbWUpIC0tPlxuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgKm5nSWY9XCJpY29uTWV0YS50eXBlID09PSAnZm9udCdcIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJpY29uTWV0YS5mb250SWNvbkNsYXNzXCJcbiAgICAgICAgICAgICAgW25nU3R5bGVdPVwiaWNvbk1ldGEuZm9udEljb25TdHlsZVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwicHQtZHJvcGRvd24taWNvbi1mb250XCJcbiAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInB0LWRyb3Bkb3duLWxhYmVsXCI+e3sgb3B0aW9uLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8IS0tIFBsYWNlaG9sZGVyIHdoZW4gbm8gdmFsdWUgc2VsZWN0ZWQgLS0+XG4gICAgPG5nLXRlbXBsYXRlICNwbGFjZWhvbGRlclRwbD5cbiAgICAgIDxzcGFuPnt7IGZvcm1GaWVsZC5wbGFjZWhvbGRlciB8fCBcIlNlbGVjdCBhbiBvcHRpb25cIiB9fTwvc3Bhbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPCEtLSBJdGVtcyB0ZW1wbGF0ZSAtLT5cbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaXRlbVwiIGxldC1vcHRpb24+XG4gICAgICA8ZGl2IGNsYXNzPVwicHQtZHJvcGRvd24taXRlbVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ2V0UmVzb2x2ZWRJY29uKG9wdGlvbikgYXMgaWNvbk1ldGFcIj5cbiAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAqbmdJZj1cImljb25NZXRhLnR5cGUgPT09ICdpbWFnZSdcIlxuICAgICAgICAgICAgW3NyY109XCJpY29uTWV0YS5pbWFnZVVybFwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJpY29uTWV0YS5pbWFnZVN0eWxlXCJcbiAgICAgICAgICAgIGNsYXNzPVwicHQtZHJvcGRvd24taWNvbi1pbWFnZVwiXG4gICAgICAgICAgLz5cblxuICAgICAgICAgIDxpXG4gICAgICAgICAgICAqbmdJZj1cImljb25NZXRhLnR5cGUgPT09ICdmb250J1wiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJpY29uTWV0YS5mb250SWNvbkNsYXNzXCJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cImljb25NZXRhLmZvbnRJY29uU3R5bGVcIlxuICAgICAgICAgICAgY2xhc3M9XCJwdC1kcm9wZG93bi1pY29uLWZvbnRcIlxuICAgICAgICAgID48L2k+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxzcGFuIGNsYXNzPVwicHQtZHJvcGRvd24tbGFiZWxcIj57eyBvcHRpb24ubGFiZWwgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L3AtZHJvcGRvd24+XG5cbiAgPGRpdlxuICAgICpuZ0lmPVwiXG4gICAgICBmb3JtR3JvdXAuZ2V0KGZvcm1GaWVsZC5uYW1lKT8uaW52YWxpZCAmJlxuICAgICAgZm9ybUdyb3VwLmdldChmb3JtRmllbGQubmFtZSk/LnRvdWNoZWRcbiAgICBcIlxuICA+XG4gICAgPHNtYWxsIGNsYXNzPVwicC1lcnJvclwiPnt7IGdldEVycm9yTWVzc2FnZSgpIH19PC9zbWFsbD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -44,14 +44,14 @@ export class PTMultiSelectComponent {
|
|
|
44
44
|
return '';
|
|
45
45
|
}
|
|
46
46
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTMultiSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
47
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: PTMultiSelectComponent, selector: "pt-multi-select", inputs: { formGroup: "formGroup", formField: "formField" }, ngImport: i0, template: "<div\n [formGroup]=\"formGroup\"\n class=\"form-field\"\n [ngStyle]=\"{ width: formField.width || '100%' }\"\n *ngIf=\"!formField.hidden\"\n>\n <label *ngIf=\"formField.label\">{{ formField.label }}</label>\n <p-multiSelect\n [formControlName]=\"formField.name\"\n [options]=\"formField.options\"\n [placeholder]=\"formField.placeholder || 'Select options'\"\n optionLabel=\"label\"\n ></p-multiSelect>\n <div\n *ngIf=\"\n formGroup.get(formField.name)?.invalid &&\n formGroup.get(formField.name)?.touched\n \"\n >\n <small class=\"p-error\">{{ getErrorMessage() }}</small>\n </div>\n</div>\n", styles: [".form-field{margin-bottom:1rem}.form-field label{display:block;margin-bottom:.5rem;font-weight:700}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.MultiSelect, selector: "p-multiSelect", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "variant", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "showClear", "autofocus", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }] }); }
|
|
47
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: PTMultiSelectComponent, selector: "pt-multi-select", inputs: { formGroup: "formGroup", formField: "formField" }, ngImport: i0, template: "<div\n [formGroup]=\"formGroup\"\n class=\"form-field\"\n [ngStyle]=\"{ width: formField.width || '100%' }\"\n *ngIf=\"!formField.hidden\"\n>\n <label *ngIf=\"formField.label\">{{ formField.label }}</label>\n <p-multiSelect\n [formControlName]=\"formField.name\"\n [options]=\"formField.options\"\n [placeholder]=\"formField.placeholder || 'Select options'\"\n optionLabel=\"label\"\n [appendTo]=\"'body'\"\n [autoZIndex]=\"true\"\n [baseZIndex]=\"11000\"\n ></p-multiSelect>\n <div\n *ngIf=\"\n formGroup.get(formField.name)?.invalid &&\n formGroup.get(formField.name)?.touched\n \"\n >\n <small class=\"p-error\">{{ getErrorMessage() }}</small>\n </div>\n</div>\n", styles: [".form-field{margin-bottom:1rem}.form-field label{display:block;margin-bottom:.5rem;font-weight:700}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.MultiSelect, selector: "p-multiSelect", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "variant", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "showClear", "autofocus", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }] }); }
|
|
48
48
|
}
|
|
49
49
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTMultiSelectComponent, decorators: [{
|
|
50
50
|
type: Component,
|
|
51
|
-
args: [{ selector: 'pt-multi-select', template: "<div\n [formGroup]=\"formGroup\"\n class=\"form-field\"\n [ngStyle]=\"{ width: formField.width || '100%' }\"\n *ngIf=\"!formField.hidden\"\n>\n <label *ngIf=\"formField.label\">{{ formField.label }}</label>\n <p-multiSelect\n [formControlName]=\"formField.name\"\n [options]=\"formField.options\"\n [placeholder]=\"formField.placeholder || 'Select options'\"\n optionLabel=\"label\"\n ></p-multiSelect>\n <div\n *ngIf=\"\n formGroup.get(formField.name)?.invalid &&\n formGroup.get(formField.name)?.touched\n \"\n >\n <small class=\"p-error\">{{ getErrorMessage() }}</small>\n </div>\n</div>\n", styles: [".form-field{margin-bottom:1rem}.form-field label{display:block;margin-bottom:.5rem;font-weight:700}\n"] }]
|
|
51
|
+
args: [{ selector: 'pt-multi-select', template: "<div\n [formGroup]=\"formGroup\"\n class=\"form-field\"\n [ngStyle]=\"{ width: formField.width || '100%' }\"\n *ngIf=\"!formField.hidden\"\n>\n <label *ngIf=\"formField.label\">{{ formField.label }}</label>\n <p-multiSelect\n [formControlName]=\"formField.name\"\n [options]=\"formField.options\"\n [placeholder]=\"formField.placeholder || 'Select options'\"\n optionLabel=\"label\"\n [appendTo]=\"'body'\"\n [autoZIndex]=\"true\"\n [baseZIndex]=\"11000\"\n ></p-multiSelect>\n <div\n *ngIf=\"\n formGroup.get(formField.name)?.invalid &&\n formGroup.get(formField.name)?.touched\n \"\n >\n <small class=\"p-error\">{{ getErrorMessage() }}</small>\n </div>\n</div>\n", styles: [".form-field{margin-bottom:1rem}.form-field label{display:block;margin-bottom:.5rem;font-weight:700}\n"] }]
|
|
52
52
|
}], propDecorators: { formGroup: [{
|
|
53
53
|
type: Input
|
|
54
54
|
}], formField: [{
|
|
55
55
|
type: Input
|
|
56
56
|
}] } });
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtbXVsdGktc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXByaW1lLXRvb2xzL3NyYy9saWIvcHQtbXVsdGktc2VsZWN0L3B0LW11bHRpLXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LW11bHRpLXNlbGVjdC9wdC1tdWx0aS1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFhLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFRcEUsTUFBTSxPQUFPLHNCQUFzQjtJQUlqQyxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQWdCLENBQUM7UUFFckUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsT0FBTyxHQUFHLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3RELElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFFRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDeEMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVsQywrQ0FBK0M7UUFDL0MsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQzFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDNUIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO2dCQUN4QyxDQUFDO3FCQUFNLENBQUM7b0JBQ04sT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO2dCQUN2QyxDQUFDO1lBQ0gsQ0FBQztZQUNELE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGFBQWE7UUFDbkIsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM1QixVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVELGVBQWU7UUFDYixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hELElBQUksT0FBTyxFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ2xDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssY0FBYyxDQUFDO1FBQzNFLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7K0dBOUNVLHNCQUFzQjttR0FBdEIsc0JBQXNCLG1IQ1RuQyw2c0JBeUJBOzs0RkRoQmEsc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLGlCQUFpQjs4QkFLbEIsU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1Db250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRm9ybU11bHRpU2VsZWN0RmllbGQgfSBmcm9tICcuLi9tb2RlbHMvZm9ybS1tdWx0aS1zZWxlY3QubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwdC1tdWx0aS1zZWxlY3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHQtbXVsdGktc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHQtbXVsdGktc2VsZWN0LmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUFRNdWx0aVNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGZvcm1Hcm91cCE6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgZm9ybUZpZWxkITogRm9ybU11bHRpU2VsZWN0RmllbGQ7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZXR1cENvbnRyb2woKTtcbiAgfVxuXG4gIHNldHVwQ29udHJvbCgpIHtcbiAgICBsZXQgY29udHJvbCA9IHRoaXMuZm9ybUdyb3VwLmdldCh0aGlzLmZvcm1GaWVsZC5uYW1lKSBhcyBGb3JtQ29udHJvbDtcblxuICAgIGlmICghY29udHJvbCkge1xuICAgICAgY29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCh0aGlzLmZvcm1GaWVsZC52YWx1ZSB8fCBbXSk7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKHRoaXMuZm9ybUZpZWxkLm5hbWUsIGNvbnRyb2wpO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbGlkYXRvcnMgPSB0aGlzLmdldFZhbGlkYXRvcnMoKTtcbiAgICBjb250cm9sLnNldFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XG5cbiAgICAvLyBNYW5hZ2UgdGhlIGRpc2FibGVkIHN0YXRlIHVzaW5nIGZvcm0gY29udHJvbFxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZm9ybUZpZWxkLmRpc2FibGVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybUZpZWxkLmRpc2FibGVkKSB7XG4gICAgICAgICAgY29udHJvbC5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb250cm9sLmVuYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldFZhbGlkYXRvcnMoKSB7XG4gICAgY29uc3QgdmFsaWRhdG9ycyA9IFtdO1xuICAgIGlmICh0aGlzLmZvcm1GaWVsZC5yZXF1aXJlZCkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsaWRhdG9ycztcbiAgfVxuXG4gIGdldEVycm9yTWVzc2FnZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5mb3JtRmllbGQubmFtZSk7XG4gICAgaWYgKGNvbnRyb2w/Lmhhc0Vycm9yKCdyZXF1aXJlZCcpKSB7XG4gICAgICByZXR1cm4gdGhpcy5mb3JtRmllbGQuZXJyb3JUZXh0IHx8IGAke3RoaXMuZm9ybUZpZWxkLmxhYmVsfSBpcyByZXF1aXJlZGA7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxufVxuIiwiPGRpdlxuICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXG4gIGNsYXNzPVwiZm9ybS1maWVsZFwiXG4gIFtuZ1N0eWxlXT1cInsgd2lkdGg6IGZvcm1GaWVsZC53aWR0aCB8fCAnMTAwJScgfVwiXG4gICpuZ0lmPVwiIWZvcm1GaWVsZC5oaWRkZW5cIlxuPlxuICA8bGFiZWwgKm5nSWY9XCJmb3JtRmllbGQubGFiZWxcIj57eyBmb3JtRmllbGQubGFiZWwgfX08L2xhYmVsPlxuICA8cC1tdWx0aVNlbGVjdFxuICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZm9ybUZpZWxkLm5hbWVcIlxuICAgIFtvcHRpb25zXT1cImZvcm1GaWVsZC5vcHRpb25zXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwiZm9ybUZpZWxkLnBsYWNlaG9sZGVyIHx8ICdTZWxlY3Qgb3B0aW9ucydcIlxuICAgIG9wdGlvbkxhYmVsPVwibGFiZWxcIlxuICAgIFthcHBlbmRUb109XCInYm9keSdcIlxuICAgIFthdXRvWkluZGV4XT1cInRydWVcIlxuICAgIFtiYXNlWkluZGV4XT1cIjExMDAwXCJcbiAgPjwvcC1tdWx0aVNlbGVjdD5cbiAgPGRpdlxuICAgICpuZ0lmPVwiXG4gICAgICBmb3JtR3JvdXAuZ2V0KGZvcm1GaWVsZC5uYW1lKT8uaW52YWxpZCAmJlxuICAgICAgZm9ybUdyb3VwLmdldChmb3JtRmllbGQubmFtZSk/LnRvdWNoZWRcbiAgICBcIlxuICA+XG4gICAgPHNtYWxsIGNsYXNzPVwicC1lcnJvclwiPnt7IGdldEVycm9yTWVzc2FnZSgpIH19PC9zbWFsbD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|