@updevs/components 1.0.0-alpha.93 → 1.0.0-alpha.94
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/button/button.component.d.ts +2 -1
- package/esm2022/button/button.component.mjs +6 -3
- package/esm2022/card/card.component.mjs +1 -1
- package/esm2022/dropdown/dropdown.component.mjs +1 -1
- package/esm2022/form/components/dynamic-field/dynamic-field.component.mjs +1 -1
- package/esm2022/form/form.component.mjs +1 -1
- package/esm2022/form-controls/date-picker/date-picker.component.mjs +1 -1
- package/esm2022/form-controls/file-upload/file-upload.component.mjs +1 -1
- package/esm2022/form-controls/select/components/multiple/select-multiple.component.mjs +1 -1
- package/esm2022/form-controls/select/components/single/select.component.mjs +1 -1
- package/esm2022/form-controls/time-picker/time-picker.component.mjs +1 -1
- package/esm2022/form-controls/time-picker/time-selector/time-selector.component.mjs +1 -1
- package/esm2022/layout/pages/auth-flow/login/login.component.mjs +1 -1
- package/esm2022/layout/partials/page-header/page-header.component.mjs +1 -1
- package/esm2022/modal/components/modal-container/modal-container.component.mjs +1 -1
- package/esm2022/paginator/paginator.component.mjs +1 -1
- package/esm2022/pricing/pricing-cards/pricing-cards.component.mjs +1 -1
- package/esm2022/pricing/pricing-table/pricing-table.component.mjs +1 -1
- package/esm2022/table/components/filter-row/filter-row.component.mjs +1 -1
- package/esm2022/table/components/save-search/save-search.component.mjs +1 -1
- package/esm2022/table/components/search-section/search-section.component.mjs +1 -1
- package/esm2022/table/table.component.mjs +1 -1
- package/fesm2022/updevs-components-button.mjs +5 -2
- package/fesm2022/updevs-components-button.mjs.map +1 -1
- package/fesm2022/updevs-components-card.mjs +1 -1
- package/fesm2022/updevs-components-card.mjs.map +1 -1
- package/fesm2022/updevs-components-dropdown.mjs +1 -1
- package/fesm2022/updevs-components-dropdown.mjs.map +1 -1
- package/fesm2022/updevs-components-form-controls-date-picker.mjs +1 -1
- package/fesm2022/updevs-components-form-controls-date-picker.mjs.map +1 -1
- package/fesm2022/updevs-components-form-controls-file-upload.mjs +1 -1
- package/fesm2022/updevs-components-form-controls-file-upload.mjs.map +1 -1
- package/fesm2022/updevs-components-form-controls-select.mjs +2 -2
- package/fesm2022/updevs-components-form-controls-select.mjs.map +1 -1
- package/fesm2022/updevs-components-form-controls-time-picker.mjs +2 -2
- package/fesm2022/updevs-components-form-controls-time-picker.mjs.map +1 -1
- package/fesm2022/updevs-components-form.mjs +2 -2
- package/fesm2022/updevs-components-form.mjs.map +1 -1
- package/fesm2022/updevs-components-layout.mjs +2 -2
- package/fesm2022/updevs-components-layout.mjs.map +1 -1
- package/fesm2022/updevs-components-modal.mjs +1 -1
- package/fesm2022/updevs-components-modal.mjs.map +1 -1
- package/fesm2022/updevs-components-paginator.mjs +1 -1
- package/fesm2022/updevs-components-paginator.mjs.map +1 -1
- package/fesm2022/updevs-components-pricing.mjs +2 -2
- package/fesm2022/updevs-components-pricing.mjs.map +1 -1
- package/fesm2022/updevs-components-table.mjs +4 -4
- package/fesm2022/updevs-components-table.mjs.map +1 -1
- package/package.json +7 -7
|
@@ -44,6 +44,7 @@ export declare class ButtonComponent {
|
|
|
44
44
|
colorStyle: import("@angular/core").InputSignal<BgColorStyleType | undefined>;
|
|
45
45
|
size: import("@angular/core").InputSignal<import("@updevs/sdk/types").SizeType>;
|
|
46
46
|
title: import("@angular/core").InputSignal<TextModel | undefined>;
|
|
47
|
+
stopPropagation: import("@angular/core").InputSignal<boolean>;
|
|
47
48
|
get mainText(): string;
|
|
48
49
|
get _iconModel(): OptionalType<IconModel>;
|
|
49
50
|
get _iconPosition(): LeftRightType;
|
|
@@ -57,5 +58,5 @@ export declare class ButtonComponent {
|
|
|
57
58
|
private readonly textService;
|
|
58
59
|
onClick(event: MouseEvent): void;
|
|
59
60
|
static ɵfac: i0.ɵɵFactoryDeclaration<ButtonComponent, never>;
|
|
60
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "upd-button", never, { "model": { "alias": "model"; "required": false; "isSignal": true; }; "text": { "alias": "text"; "required": false; "isSignal": true; }; "brandColorStyle": { "alias": "brandColorStyle"; "required": false; "isSignal": true; }; "customClasses": { "alias": "customClasses"; "required": false; "isSignal": true; }; "isOutline": { "alias": "isOutline"; "required": false; "isSignal": true; }; "isGhost": { "alias": "isGhost"; "required": false; "isSignal": true; }; "isSquare": { "alias": "isSquare"; "required": false; "isSignal": true; }; "isPill": { "alias": "isPill"; "required": false; "isSignal": true; }; "isIcon": { "alias": "isIcon"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "isList": { "alias": "isList"; "required": false; "isSignal": true; }; "isFloating": { "alias": "isFloating"; "required": false; "isSignal": true; }; "isAction": { "alias": "isAction"; "required": false; "isSignal": true; }; "isNavigationLink": { "alias": "isNavigationLink"; "required": false; "isSignal": true; }; "isLink": { "alias": "isLink"; "required": false; "isSignal": true; }; "shouldIgnoreBtnClass": { "alias": "shouldIgnoreBtnClass"; "required": false; "isSignal": true; }; "iconModel": { "alias": "iconModel"; "required": false; "isSignal": true; }; "iconPosition": { "alias": "iconPosition"; "required": false; "isSignal": true; }; "isDisabled": { "alias": "isDisabled"; "required": false; "isSignal": true; }; "isActive": { "alias": "isActive"; "required": false; "isSignal": true; }; "badgeConfig": { "alias": "badgeConfig"; "required": false; "isSignal": true; }; "colorStyle": { "alias": "colorStyle"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; }, never, ["*"], false, never>;
|
|
61
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "upd-button", never, { "model": { "alias": "model"; "required": false; "isSignal": true; }; "text": { "alias": "text"; "required": false; "isSignal": true; }; "brandColorStyle": { "alias": "brandColorStyle"; "required": false; "isSignal": true; }; "customClasses": { "alias": "customClasses"; "required": false; "isSignal": true; }; "isOutline": { "alias": "isOutline"; "required": false; "isSignal": true; }; "isGhost": { "alias": "isGhost"; "required": false; "isSignal": true; }; "isSquare": { "alias": "isSquare"; "required": false; "isSignal": true; }; "isPill": { "alias": "isPill"; "required": false; "isSignal": true; }; "isIcon": { "alias": "isIcon"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "isList": { "alias": "isList"; "required": false; "isSignal": true; }; "isFloating": { "alias": "isFloating"; "required": false; "isSignal": true; }; "isAction": { "alias": "isAction"; "required": false; "isSignal": true; }; "isNavigationLink": { "alias": "isNavigationLink"; "required": false; "isSignal": true; }; "isLink": { "alias": "isLink"; "required": false; "isSignal": true; }; "shouldIgnoreBtnClass": { "alias": "shouldIgnoreBtnClass"; "required": false; "isSignal": true; }; "iconModel": { "alias": "iconModel"; "required": false; "isSignal": true; }; "iconPosition": { "alias": "iconPosition"; "required": false; "isSignal": true; }; "isDisabled": { "alias": "isDisabled"; "required": false; "isSignal": true; }; "isActive": { "alias": "isActive"; "required": false; "isSignal": true; }; "badgeConfig": { "alias": "badgeConfig"; "required": false; "isSignal": true; }; "colorStyle": { "alias": "colorStyle"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "stopPropagation": { "alias": "stopPropagation"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; }, never, ["*"], false, never>;
|
|
61
62
|
}
|
|
@@ -42,6 +42,7 @@ export class ButtonComponent {
|
|
|
42
42
|
this.colorStyle = input();
|
|
43
43
|
this.size = input('regular');
|
|
44
44
|
this.title = input();
|
|
45
|
+
this.stopPropagation = input(false);
|
|
45
46
|
this._size = computed(() => !!this.model() ? this.model().size() : this.size());
|
|
46
47
|
this._title = computed(() => !!this.model() && !!this.model()?.title ? this.model().title() : this.title());
|
|
47
48
|
this._colorStyle = computed(() => !!this.model() && !!this.model()?.colorStyle ? this.model().colorStyle() : this.colorStyle());
|
|
@@ -134,10 +135,12 @@ export class ButtonComponent {
|
|
|
134
135
|
else {
|
|
135
136
|
this.clicked.emit(event);
|
|
136
137
|
}
|
|
137
|
-
|
|
138
|
+
if (this.model()?.stopPropagation() !== false) {
|
|
139
|
+
event.stopPropagation();
|
|
140
|
+
}
|
|
138
141
|
}
|
|
139
142
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
140
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: ButtonComponent, selector: "upd-button", inputs: { model: { classPropertyName: "model", publicName: "model", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, brandColorStyle: { classPropertyName: "brandColorStyle", publicName: "brandColorStyle", isSignal: true, isRequired: false, transformFunction: null }, customClasses: { classPropertyName: "customClasses", publicName: "customClasses", isSignal: true, isRequired: false, transformFunction: null }, isOutline: { classPropertyName: "isOutline", publicName: "isOutline", isSignal: true, isRequired: false, transformFunction: null }, isGhost: { classPropertyName: "isGhost", publicName: "isGhost", isSignal: true, isRequired: false, transformFunction: null }, isSquare: { classPropertyName: "isSquare", publicName: "isSquare", isSignal: true, isRequired: false, transformFunction: null }, isPill: { classPropertyName: "isPill", publicName: "isPill", isSignal: true, isRequired: false, transformFunction: null }, isIcon: { classPropertyName: "isIcon", publicName: "isIcon", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, isList: { classPropertyName: "isList", publicName: "isList", isSignal: true, isRequired: false, transformFunction: null }, isFloating: { classPropertyName: "isFloating", publicName: "isFloating", isSignal: true, isRequired: false, transformFunction: null }, isAction: { classPropertyName: "isAction", publicName: "isAction", isSignal: true, isRequired: false, transformFunction: null }, isNavigationLink: { classPropertyName: "isNavigationLink", publicName: "isNavigationLink", isSignal: true, isRequired: false, transformFunction: null }, isLink: { classPropertyName: "isLink", publicName: "isLink", isSignal: true, isRequired: false, transformFunction: null }, shouldIgnoreBtnClass: { classPropertyName: "shouldIgnoreBtnClass", publicName: "shouldIgnoreBtnClass", isSignal: true, isRequired: false, transformFunction: null }, iconModel: { classPropertyName: "iconModel", publicName: "iconModel", isSignal: true, isRequired: false, transformFunction: null }, iconPosition: { classPropertyName: "iconPosition", publicName: "iconPosition", isSignal: true, isRequired: false, transformFunction: null }, isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null }, isActive: { classPropertyName: "isActive", publicName: "isActive", isSignal: true, isRequired: false, transformFunction: null }, badgeConfig: { classPropertyName: "badgeConfig", publicName: "badgeConfig", isSignal: true, isRequired: false, transformFunction: null }, colorStyle: { classPropertyName: "colorStyle", publicName: "colorStyle", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked" }, host: { listeners: { "click": "onClick($event)" }, properties: { "class": "this.classes", "title": "this.titleAttr" } }, ngImport: i0, template: "<ng-template #userContentTpl>\n @if (!!_iconModel && _iconPosition === 'left') {\n <upd-icon [model]=\"_iconModel\" [tablerIconSize]=\"_iconModel.tablerIconSize || 20\"\n [heroIconSize]=\"_iconModel.heroIconSize || 'small'\">\n </upd-icon>\n }\n\n <div [class.mx-1]=\"!!_iconModel && !_isIcon\">\n <ng-content></ng-content>\n </div>\n\n @if (!!badgeConfig()) {\n <upd-badge [config]=\"badgeConfig()\"></upd-badge>\n }\n\n @if (!!_iconModel && _iconPosition === 'right') {\n <upd-icon [model]=\"_iconModel\" [tablerIconSize]=\"_iconModel.tablerIconSize || 20\"\n [heroIconSize]=\"_iconModel.heroIconSize || 'small'\">\n </upd-icon>\n }\n</ng-template>\n\n@if (!mainText) {\n <ng-container [ngTemplateOutlet]=\"userContentTpl\"></ng-container>\n} @else {\n @if (!!_iconModel && _iconPosition === 'left') {\n <upd-icon [model]=\"_iconModel\" [tablerIconSize]=\"_iconModel.tablerIconSize || 20\"\n [heroIconSize]=\"_iconModel.heroIconSize || 'small'\">\n </upd-icon>\n }\n\n <span [class.mx-1]=\"!!_iconModel\">\n {{ mainText }}\n </span>\n\n @if (!!badgeConfig()) {\n <upd-badge [config]=\"badgeConfig()\"></upd-badge>\n }\n\n @if (!!_iconModel && _iconPosition === 'right') {\n <upd-icon [model]=\"_iconModel\" [tablerIconSize]=\"_iconModel.tablerIconSize || 20\"\n [heroIconSize]=\"_iconModel.heroIconSize || 'small'\">\n </upd-icon>\n }\n}\n", styles: [".btn-icon .icon{margin:0 calc(-1 * var(--upd-btn-padding-x)) 0 calc(-1 * var(--upd-btn-padding-x))!important}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "component", type: i3.BadgeComponent, selector: "upd-badge", inputs: ["config", "bgColor", "textColor", "text", "isOutline", "isPill", "isNotification", "isBlinking", "customClasses"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
143
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: ButtonComponent, selector: "upd-button", inputs: { model: { classPropertyName: "model", publicName: "model", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, brandColorStyle: { classPropertyName: "brandColorStyle", publicName: "brandColorStyle", isSignal: true, isRequired: false, transformFunction: null }, customClasses: { classPropertyName: "customClasses", publicName: "customClasses", isSignal: true, isRequired: false, transformFunction: null }, isOutline: { classPropertyName: "isOutline", publicName: "isOutline", isSignal: true, isRequired: false, transformFunction: null }, isGhost: { classPropertyName: "isGhost", publicName: "isGhost", isSignal: true, isRequired: false, transformFunction: null }, isSquare: { classPropertyName: "isSquare", publicName: "isSquare", isSignal: true, isRequired: false, transformFunction: null }, isPill: { classPropertyName: "isPill", publicName: "isPill", isSignal: true, isRequired: false, transformFunction: null }, isIcon: { classPropertyName: "isIcon", publicName: "isIcon", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, isList: { classPropertyName: "isList", publicName: "isList", isSignal: true, isRequired: false, transformFunction: null }, isFloating: { classPropertyName: "isFloating", publicName: "isFloating", isSignal: true, isRequired: false, transformFunction: null }, isAction: { classPropertyName: "isAction", publicName: "isAction", isSignal: true, isRequired: false, transformFunction: null }, isNavigationLink: { classPropertyName: "isNavigationLink", publicName: "isNavigationLink", isSignal: true, isRequired: false, transformFunction: null }, isLink: { classPropertyName: "isLink", publicName: "isLink", isSignal: true, isRequired: false, transformFunction: null }, shouldIgnoreBtnClass: { classPropertyName: "shouldIgnoreBtnClass", publicName: "shouldIgnoreBtnClass", isSignal: true, isRequired: false, transformFunction: null }, iconModel: { classPropertyName: "iconModel", publicName: "iconModel", isSignal: true, isRequired: false, transformFunction: null }, iconPosition: { classPropertyName: "iconPosition", publicName: "iconPosition", isSignal: true, isRequired: false, transformFunction: null }, isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null }, isActive: { classPropertyName: "isActive", publicName: "isActive", isSignal: true, isRequired: false, transformFunction: null }, badgeConfig: { classPropertyName: "badgeConfig", publicName: "badgeConfig", isSignal: true, isRequired: false, transformFunction: null }, colorStyle: { classPropertyName: "colorStyle", publicName: "colorStyle", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, stopPropagation: { classPropertyName: "stopPropagation", publicName: "stopPropagation", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked" }, host: { listeners: { "click": "onClick($event)" }, properties: { "class": "this.classes", "title": "this.titleAttr" } }, ngImport: i0, template: "<ng-template #userContentTpl>\n @if (!!_iconModel && _iconPosition === 'left') {\n <upd-icon [model]=\"_iconModel\" [tablerIconSize]=\"_iconModel.tablerIconSize || 20\"\n [heroIconSize]=\"_iconModel.heroIconSize || 'small'\">\n </upd-icon>\n }\n\n <div [class.mx-1]=\"!!_iconModel && !_isIcon\">\n <ng-content></ng-content>\n </div>\n\n @if (!!badgeConfig()) {\n <upd-badge [config]=\"badgeConfig()\"></upd-badge>\n }\n\n @if (!!_iconModel && _iconPosition === 'right') {\n <upd-icon [model]=\"_iconModel\" [tablerIconSize]=\"_iconModel.tablerIconSize || 20\"\n [heroIconSize]=\"_iconModel.heroIconSize || 'small'\">\n </upd-icon>\n }\n</ng-template>\n\n@if (!mainText) {\n <ng-container [ngTemplateOutlet]=\"userContentTpl\"></ng-container>\n} @else {\n @if (!!_iconModel && _iconPosition === 'left') {\n <upd-icon [model]=\"_iconModel\" [tablerIconSize]=\"_iconModel.tablerIconSize || 20\"\n [heroIconSize]=\"_iconModel.heroIconSize || 'small'\">\n </upd-icon>\n }\n\n <span [class.mx-1]=\"!!_iconModel\">\n {{ mainText }}\n </span>\n\n @if (!!badgeConfig()) {\n <upd-badge [config]=\"badgeConfig()\"></upd-badge>\n }\n\n @if (!!_iconModel && _iconPosition === 'right') {\n <upd-icon [model]=\"_iconModel\" [tablerIconSize]=\"_iconModel.tablerIconSize || 20\"\n [heroIconSize]=\"_iconModel.heroIconSize || 'small'\">\n </upd-icon>\n }\n}\n", styles: [".btn-icon .icon{margin:0 calc(-1 * var(--upd-btn-padding-x)) 0 calc(-1 * var(--upd-btn-padding-x))!important}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "component", type: i3.BadgeComponent, selector: "upd-badge", inputs: ["config", "bgColor", "textColor", "text", "isOutline", "isPill", "isNotification", "isBlinking", "customClasses"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
141
144
|
}
|
|
142
145
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ButtonComponent, decorators: [{
|
|
143
146
|
type: Component,
|
|
@@ -154,4 +157,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
154
157
|
type: HostListener,
|
|
155
158
|
args: ['click', ['$event']]
|
|
156
159
|
}] } });
|
|
157
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9idXR0b24vc3JjL2J1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYnV0dG9uL3NyYy9idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsTUFBTSxFQUNOLFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNYLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBYSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7O0FBV3JELE1BQU0sT0FBTyxlQUFlO0lBTjVCO1FBZUk7Ozs7V0FJRztRQUNnQixZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVyRCxVQUFLLEdBQUcsS0FBSyxFQUFlLENBQUM7UUFDN0IsU0FBSSxHQUFHLEtBQUssRUFBYSxDQUFDO1FBQzFCLG9CQUFlLEdBQUcsS0FBSyxFQUFhLENBQUM7UUFDckMsa0JBQWEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUNoQyxjQUFTLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLFlBQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsYUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixXQUFNLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RCLFdBQU0sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsY0FBUyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6Qjs7V0FFRztRQUNILFdBQU0sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEI7O1dB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QUFXO3VCQUFDLE9BQU87Z0JBSU0sU0FBUztzQkFBbEMsV0FBVzt1QkFBQyxPQUFPO2dCQVNELE9BQU87c0JBQXpCLE1BQU07Z0JBc0lQLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBpbmplY3QsXG4gICAgaW5wdXQsXG4gICAgY29tcHV0ZWRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJY29uTW9kZWwgfSBmcm9tICdAdXBkZXZzL2ljb25zJztcbmltcG9ydCB7IFRleHRNb2RlbCwgVGV4dFNlcnZpY2UgfSBmcm9tICdAdXBkZXZzL3Nkayc7XG5pbXBvcnQgeyBCdXR0b25Nb2RlbCB9IGZyb20gJ0B1cGRldnMvc2RrL2xheW91dCc7XG5pbXBvcnQgeyBMZWZ0UmlnaHRUeXBlLCBPcHRpb25hbFR5cGUsIEJyYW5kVHlwZSwgQmdDb2xvclN0eWxlVHlwZSwgQnV0dG9uU2l6ZVR5cGUgfSBmcm9tICdAdXBkZXZzL3Nkay90eXBlcyc7XG5pbXBvcnQgeyBCYWRnZUNvbmZpZyB9IGZyb20gJ0B1cGRldnMvY29tcG9uZW50cy9iYWRnZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndXBkLWJ1dHRvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2J1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYnV0dG9uLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBCdXR0b25Db21wb25lbnQge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBnZXQgY2xhc3NlcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmJ1dHRvbkNsYXNzZXMoKTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ3RpdGxlJykgZ2V0IHRpdGxlQXR0cigpOiBPcHRpb25hbFR5cGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRTZXJ2aWNlLmdldFRleHQodGhpcy5fdGl0bGUoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRW1pdHRlZCB3aGVuIHRoZSBidXR0b24gaXMgY2xpY2tlZC5cbiAgICAgKiAqKk5PVEU6KiogVGhlIG5hbWUgb2YgdGhlIGV2ZW50IGNhbiBub3QgYmUgJ2NsaWNrJy4gSXQgd291bGQgZ2VuZXJhdGUgYSBjb25mbGljdCB3aXRoIHRoZSBIVE1MIGV2ZW50IG9mIHNhbWUgbmFtZS5cbiAgICAgKiBUaGF0IHdvdWxkIGNhdXNlIHN0cmFuZ2UgYmVoYXZpb3JzIGxpa2UgcHJldmVudGluZyBgaXNEaXNhYmxlZGAgZnJvbSB3b3JraW5nIGNvcnJlY3RseS5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgY2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgbW9kZWwgPSBpbnB1dDxCdXR0b25Nb2RlbD4oKTtcbiAgICB0ZXh0ID0gaW5wdXQ8VGV4dE1vZGVsPigpO1xuICAgIGJyYW5kQ29sb3JTdHlsZSA9IGlucHV0PEJyYW5kVHlwZT4oKTtcbiAgICBjdXN0b21DbGFzc2VzID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIGlzT3V0bGluZSA9IGlucHV0KGZhbHNlKTtcbiAgICBpc0dob3N0ID0gaW5wdXQoZmFsc2UpO1xuICAgIGlzU3F1YXJlID0gaW5wdXQoZmFsc2UpO1xuICAgIGlzUGlsbCA9IGlucHV0KGZhbHNlKTtcbiAgICBpc0ljb24gPSBpbnB1dChmYWxzZSk7XG4gICAgaXNMb2FkaW5nID0gaW5wdXQoZmFsc2UpO1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGJ1dHRvbiBzaG91bGQgYWN0IGFzIGEgbGlzdCAodG9wLWJvdHRvbSBhbGlnbm1lbnQgaW5zdGVhZCBvZiBsZWZ0LXJpZ2h0IHJlbGF0ZWQgdG8gbmVpZ2hib3JzKS5cbiAgICAgKi9cbiAgICBpc0xpc3QgPSBpbnB1dChmYWxzZSk7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgYnV0dG9uIHNob3VsZCBiZSBmbG9hdGluZyBpbiB0aGUgYm90dG9tIHJpZ2h0IGNvcm5lci5cbiAgICAgKi9cbiAgICBpc0Zsb2F0aW5nID0gaW5wdXQoZmFsc2UpO1xuICAgIGlzQWN0aW9uID0gaW5wdXQoZmFsc2UpO1xuICAgIGlzTmF2aWdhdGlvbkxpbmsgPSBpbnB1dChmYWxzZSk7XG4gICAgaXNMaW5rID0gaW5wdXQoZmFsc2UpO1xuICAgIHNob3VsZElnbm9yZUJ0bkNsYXNzID0gaW5wdXQoZmFsc2UpO1xuICAgIGljb25Nb2RlbCA9IGlucHV0PEljb25Nb2RlbD4oKTtcbiAgICBpY29uUG9zaXRpb24gPSBpbnB1dDxMZWZ0UmlnaHRUeXBlPignbGVmdCcpO1xuICAgIGlzRGlzYWJsZWQgPSBpbnB1dChmYWxzZSk7XG4gICAgaXNBY3RpdmUgPSBpbnB1dChmYWxzZSk7XG4gICAgYmFkZ2VDb25maWcgPSBpbnB1dDxCYWRnZUNvbmZpZz4oKTtcbiAgICBjb2xvclN0eWxlID0gaW5wdXQ8QmdDb2xvclN0eWxlVHlwZT4oKTtcbiAgICBzaXplID0gaW5wdXQ8QnV0dG9uU2l6ZVR5cGU+KCdyZWd1bGFyJyk7XG4gICAgdGl0bGUgPSBpbnB1dDxUZXh0TW9kZWw+KCk7XG5cbiAgICBnZXQgbWFpblRleHQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dFNlcnZpY2UuZ2V0VGV4dCh0aGlzLm1vZGVsKCk/LnRleHQ/LigpIHx8IHRoaXMudGV4dCgpKTtcbiAgICB9XG5cbiAgICBnZXQgX2ljb25Nb2RlbCgpOiBPcHRpb25hbFR5cGU8SWNvbk1vZGVsPiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vZGVsKCk/Lmljb25Nb2RlbD8uKCkgfHwgdGhpcy5pY29uTW9kZWwoKTtcbiAgICB9XG5cbiAgICBnZXQgX2ljb25Qb3NpdGlvbigpOiBMZWZ0UmlnaHRUeXBlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZWwoKT8uaWNvblBvc2l0aW9uKCkgfHwgdGhpcy5pY29uUG9zaXRpb24oKTtcbiAgICB9XG5cbiAgICBnZXQgX2lzSWNvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZWwoKT8uaXNJY29uKCkgfHwgdGhpcy5pc0ljb24oKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBzaXplQ2xhc3MoKTogc3RyaW5nIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLl9zaXplKCkpIHtcbiAgICAgICAgICAgIGNhc2UgJ2xhcmdlJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2J0bi1sZyc7XG4gICAgICAgICAgICBjYXNlICdzbWFsbCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdidG4tc20nO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9zaXplID0gY29tcHV0ZWQoKCkgPT4gISF0aGlzLm1vZGVsKCkgPyB0aGlzLm1vZGVsKCkhLnNpemUoKSA6IHRoaXMuc2l6ZSgpKTtcbiAgICBwcml2YXRlIF90aXRsZSA9IGNvbXB1dGVkKCgpID0+ICEhdGhpcy5tb2RlbCgpICYmICEhdGhpcy5tb2RlbCgpPy50aXRsZSA/IHRoaXMubW9kZWwoKSEudGl0bGUhKCkgOiB0aGlzLnRpdGxlKCkpO1xuICAgIHByaXZhdGUgX2NvbG9yU3R5bGUgPSBjb21wdXRlZCgoKSA9PiAhIXRoaXMubW9kZWwoKSAmJiAhIXRoaXMubW9kZWwoKT8uY29sb3JTdHlsZSA/IHRoaXMubW9kZWwoKSEuY29sb3JTdHlsZSEoKSA6IHRoaXMuY29sb3JTdHlsZSgpKTtcbiAgICBwcml2YXRlIF9icmFuZENvbG9yU3R5bGUgPSBjb21wdXRlZCgoKSA9PlxuICAgICAgICAhIXRoaXMubW9kZWwoKSAmJiAhIXRoaXMubW9kZWwoKT8uYnJhbmRDb2xvclN0eWxlID8gdGhpcy5tb2RlbCgpIS5icmFuZENvbG9yU3R5bGUhKCkgOiB0aGlzLmJyYW5kQ29sb3JTdHlsZSgpXG4gICAgKTtcbiAgICBwcml2YXRlIGJ1dHRvbkNsYXNzZXMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGlzTGluayA9IHRoaXMubW9kZWwoKT8uaXNMaW5rKCkgfHwgdGhpcy5pc0xpbmsoKTtcbiAgICAgICAgY29uc3Qgb3V0bGluZUNscyA9IHRoaXMubW9kZWwoKT8uaXNPdXRsaW5lKCkgfHwgdGhpcy5pc091dGxpbmUoKSA/ICdvdXRsaW5lLScgOiAnJztcbiAgICAgICAgY29uc3QgZ2hvc3RDbHMgPSB0aGlzLm1vZGVsKCk/LmlzR2hvc3QoKSB8fCB0aGlzLmlzR2hvc3QoKSA/ICdnaG9zdC0nIDogJyc7XG4gICAgICAgIGNvbnN0IGxDbGFzc2VzOiBzdHJpbmdbXSA9IHRoaXMubW9kZWwoKT8uc2hvdWxkSWdub3JlQnRuQ2xhc3MoKSB8fCB0aGlzLnNob3VsZElnbm9yZUJ0bkNsYXNzKCkgPyBbXSA6IFsnYnRuJ107XG4gICAgICAgIGNvbnN0IGN1c3RvbUNsYXNzZXMgPSB0aGlzLm1vZGVsKCk/LmN1c3RvbUNsYXNzZXM/LigpLnNwbGl0KCcgJykgfHwgdGhpcy5jdXN0b21DbGFzc2VzKCk/LnNwbGl0KCcgJykgfHwgW107XG5cbiAgICAgICAgaWYgKCFpc0xpbmsgJiYgKCEhb3V0bGluZUNscyB8fCAhIWdob3N0Q2xzIHx8ICEhdGhpcy5fY29sb3JTdHlsZSgpIHx8ICEhdGhpcy5fYnJhbmRDb2xvclN0eWxlKCkpKSB7XG4gICAgICAgICAgICBsQ2xhc3Nlcy5wdXNoKGBidG4tJHtvdXRsaW5lQ2xzIHx8IGdob3N0Q2xzfSR7dGhpcy5fY29sb3JTdHlsZSgpIHx8IHRoaXMuX2JyYW5kQ29sb3JTdHlsZSgpfWApO1xuICAgICAgICB9IGVsc2UgaWYgKCEhdGhpcy5fY29sb3JTdHlsZSgpIHx8ICEhdGhpcy5fYnJhbmRDb2xvclN0eWxlKCkpIHtcbiAgICAgICAgICAgIGxDbGFzc2VzLnB1c2goYGxpbmstJHt0aGlzLl9jb2xvclN0eWxlKCkgfHwgdGhpcy5fYnJhbmRDb2xvclN0eWxlKCl9YCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5tb2RlbCgpPy5pc1NxdWFyZSgpIHx8IHRoaXMuaXNTcXVhcmUoKSkge1xuICAgICAgICAgICAgbENsYXNzZXMucHVzaCgnYnRuLXNxdWFyZScpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubW9kZWwoKT8uaXNQaWxsKCkgfHwgdGhpcy5pc1BpbGwoKSkge1xuICAgICAgICAgICAgbENsYXNzZXMucHVzaCgnYnRuLXBpbGwnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9pc0ljb24pIHtcbiAgICAgICAgICAgIGxDbGFzc2VzLnB1c2goJ2J0bi1pY29uJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5tb2RlbCgpPy5pc0xvYWRpbmcoKSB8fCB0aGlzLmlzTG9hZGluZygpKSB7XG4gICAgICAgICAgICBsQ2xhc3Nlcy5wdXNoKCdidG4tbG9hZGluZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubW9kZWwoKT8uaXNMaXN0KCkgfHwgdGhpcy5pc0xpc3QoKSkge1xuICAgICAgICAgICAgbENsYXNzZXMucHVzaCgnYnRuLWxpc3QnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1vZGVsKCk/LmlzRmxvYXRpbmcoKSB8fCB0aGlzLmlzRmxvYXRpbmcoKSkge1xuICAgICAgICAgICAgbENsYXNzZXMucHVzaCgnYnRuLWZsb2F0aW5nJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5tb2RlbCgpPy5pc0FjdGlvbigpIHx8IHRoaXMuaXNBY3Rpb24oKSkge1xuICAgICAgICAgICAgbENsYXNzZXMucHVzaCgnYnRuLWFjdGlvbicpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubW9kZWwoKT8uaXNOYXZpZ2F0aW9uTGluaygpIHx8IHRoaXMuaXNOYXZpZ2F0aW9uTGluaygpKSB7XG4gICAgICAgICAgICBsQ2xhc3Nlcy5wdXNoKCduYXYtbGluaycpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzTGluaykge1xuICAgICAgICAgICAgbENsYXNzZXMucHVzaCgnYnRuLWxpbmsnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1vZGVsKCk/LmlzQWN0aXZlKCkgfHwgdGhpcy5pc0FjdGl2ZSgpKSB7XG4gICAgICAgICAgICBsQ2xhc3Nlcy5wdXNoKCdhY3RpdmUnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1vZGVsKCk/LmlzRGlzYWJsZWQoKSB8fCB0aGlzLmlzRGlzYWJsZWQoKSkge1xuICAgICAgICAgICAgbENsYXNzZXMucHVzaCgnZGlzYWJsZWQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghIXRoaXMuYmFkZ2VDb25maWcoKSAmJiAodGhpcy5iYWRnZUNvbmZpZygpIS5pc0JsaW5raW5nIHx8IHRoaXMuYmFkZ2VDb25maWcoKSEuaXNOb3RpZmljYXRpb24pKSB7XG4gICAgICAgICAgICBsQ2xhc3Nlcy5wdXNoKCdwb3NpdGlvbi1yZWxhdGl2ZScpO1xuICAgICAgICB9XG5cbiAgICAgICAgbENsYXNzZXMucHVzaCh0aGlzLnNpemVDbGFzcyk7XG5cbiAgICAgICAgcmV0dXJuIFsuLi5sQ2xhc3NlcywgLi4uY3VzdG9tQ2xhc3Nlc107XG4gICAgfSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0U2VydmljZSA9IGluamVjdChUZXh0U2VydmljZSk7XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gICAgb25DbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoISF0aGlzLm1vZGVsKCkgJiYgISF0aGlzLm1vZGVsKCk/LmNsaWNrRnVuY3Rpb24pIHtcbiAgICAgICAgICAgIHRoaXMubW9kZWwoKSEuY2xpY2tGdW5jdGlvbiEoeyBldmVudCwgZGF0YTogdGhpcyB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY2xpY2tlZC5lbWl0KGV2ZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjdXNlckNvbnRlbnRUcGw+XG4gICAgQGlmICghIV9pY29uTW9kZWwgJiYgX2ljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnKSB7XG4gICAgICAgIDx1cGQtaWNvbiBbbW9kZWxdPVwiX2ljb25Nb2RlbFwiIFt0YWJsZXJJY29uU2l6ZV09XCJfaWNvbk1vZGVsLnRhYmxlckljb25TaXplIHx8IDIwXCJcbiAgICAgICAgICAgIFtoZXJvSWNvblNpemVdPVwiX2ljb25Nb2RlbC5oZXJvSWNvblNpemUgfHwgJ3NtYWxsJ1wiPlxuICAgICAgICA8L3VwZC1pY29uPlxuICAgIH1cblxuICAgIDxkaXYgW2NsYXNzLm14LTFdPVwiISFfaWNvbk1vZGVsICYmICFfaXNJY29uXCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cblxuICAgIEBpZiAoISFiYWRnZUNvbmZpZygpKSB7XG4gICAgICAgIDx1cGQtYmFkZ2UgW2NvbmZpZ109XCJiYWRnZUNvbmZpZygpXCI+PC91cGQtYmFkZ2U+XG4gICAgfVxuXG4gICAgQGlmICghIV9pY29uTW9kZWwgJiYgX2ljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xuICAgICAgICA8dXBkLWljb24gW21vZGVsXT1cIl9pY29uTW9kZWxcIiBbdGFibGVySWNvblNpemVdPVwiX2ljb25Nb2RlbC50YWJsZXJJY29uU2l6ZSB8fCAyMFwiXG4gICAgICAgICAgICBbaGVyb0ljb25TaXplXT1cIl9pY29uTW9kZWwuaGVyb0ljb25TaXplIHx8ICdzbWFsbCdcIj5cbiAgICAgICAgPC91cGQtaWNvbj5cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuXG5AaWYgKCFtYWluVGV4dCkge1xuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwidXNlckNvbnRlbnRUcGxcIj48L25nLWNvbnRhaW5lcj5cbn0gQGVsc2Uge1xuICAgIEBpZiAoISFfaWNvbk1vZGVsICYmIF9pY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xuICAgICAgICA8dXBkLWljb24gW21vZGVsXT1cIl9pY29uTW9kZWxcIiBbdGFibGVySWNvblNpemVdPVwiX2ljb25Nb2RlbC50YWJsZXJJY29uU2l6ZSB8fCAyMFwiXG4gICAgICAgICAgICBbaGVyb0ljb25TaXplXT1cIl9pY29uTW9kZWwuaGVyb0ljb25TaXplIHx8ICdzbWFsbCdcIj5cbiAgICAgICAgPC91cGQtaWNvbj5cbiAgICB9XG5cbiAgICA8c3BhbiBbY2xhc3MubXgtMV09XCIhIV9pY29uTW9kZWxcIj5cbiAgICAgICAge3sgbWFpblRleHQgfX1cbiAgICA8L3NwYW4+XG5cbiAgICBAaWYgKCEhYmFkZ2VDb25maWcoKSkge1xuICAgICAgICA8dXBkLWJhZGdlIFtjb25maWddPVwiYmFkZ2VDb25maWcoKVwiPjwvdXBkLWJhZGdlPlxuICAgIH1cblxuICAgIEBpZiAoISFfaWNvbk1vZGVsICYmIF9pY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcbiAgICAgICAgPHVwZC1pY29uIFttb2RlbF09XCJfaWNvbk1vZGVsXCIgW3RhYmxlckljb25TaXplXT1cIl9pY29uTW9kZWwudGFibGVySWNvblNpemUgfHwgMjBcIlxuICAgICAgICAgICAgW2hlcm9JY29uU2l6ZV09XCJfaWNvbk1vZGVsLmhlcm9JY29uU2l6ZSB8fCAnc21hbGwnXCI+XG4gICAgICAgIDwvdXBkLWljb24+XG4gICAgfVxufVxuIl19
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9idXR0b24vc3JjL2J1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYnV0dG9uL3NyYy9idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsTUFBTSxFQUNOLFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNYLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBYSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7O0FBV3JELE1BQU0sT0FBTyxlQUFlO0lBTjVCO1FBZUk7Ozs7V0FJRztRQUNnQixZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVyRCxVQUFLLEdBQUcsS0FBSyxFQUFlLENBQUM7UUFDN0IsU0FBSSxHQUFHLEtBQUssRUFBYSxDQUFDO1FBQzFCLG9CQUFlLEdBQUcsS0FBSyxFQUFhLENBQUM7UUFDckMsa0JBQWEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUNoQyxjQUFTLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLFlBQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsYUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixXQUFNLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RCLFdBQU0sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsY0FBUyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6Qjs7V0FFRztRQUNILFdBQU0sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEI7O1dB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OEdBL0pRLGVBQWU7a0dBQWYsZUFBZSxpOUdDdkI1QixrL0NBNkNBOzsyRkR0QmEsZUFBZTtrQkFOM0IsU0FBUzsrQkFDSSxZQUFZLGlCQUdQLGlCQUFpQixDQUFDLElBQUk7OEJBR1gsT0FBTztzQkFBaEMsV0FBVzt1QkFBQyxPQUFPO2dCQUlNLFNBQVM7c0JBQWxDLFdBQVc7dUJBQUMsT0FBTztnQkFTRCxPQUFPO3NCQUF6QixNQUFNO2dCQXVJUCxPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgaW5qZWN0LFxuICAgIGlucHV0LFxuICAgIGNvbXB1dGVkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSWNvbk1vZGVsIH0gZnJvbSAnQHVwZGV2cy9pY29ucyc7XG5pbXBvcnQgeyBUZXh0TW9kZWwsIFRleHRTZXJ2aWNlIH0gZnJvbSAnQHVwZGV2cy9zZGsnO1xuaW1wb3J0IHsgQnV0dG9uTW9kZWwgfSBmcm9tICdAdXBkZXZzL3Nkay9sYXlvdXQnO1xuaW1wb3J0IHsgTGVmdFJpZ2h0VHlwZSwgT3B0aW9uYWxUeXBlLCBCcmFuZFR5cGUsIEJnQ29sb3JTdHlsZVR5cGUsIEJ1dHRvblNpemVUeXBlIH0gZnJvbSAnQHVwZGV2cy9zZGsvdHlwZXMnO1xuaW1wb3J0IHsgQmFkZ2VDb25maWcgfSBmcm9tICdAdXBkZXZzL2NvbXBvbmVudHMvYmFkZ2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3VwZC1idXR0b24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2J1dHRvbi5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQnV0dG9uQ29tcG9uZW50IHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgZ2V0IGNsYXNzZXMoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5idXR0b25DbGFzc2VzKCk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCd0aXRsZScpIGdldCB0aXRsZUF0dHIoKTogT3B0aW9uYWxUeXBlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0U2VydmljZS5nZXRUZXh0KHRoaXMuX3RpdGxlKCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVtaXR0ZWQgd2hlbiB0aGUgYnV0dG9uIGlzIGNsaWNrZWQuXG4gICAgICogKipOT1RFOioqIFRoZSBuYW1lIG9mIHRoZSBldmVudCBjYW4gbm90IGJlICdjbGljaycuIEl0IHdvdWxkIGdlbmVyYXRlIGEgY29uZmxpY3Qgd2l0aCB0aGUgSFRNTCBldmVudCBvZiBzYW1lIG5hbWUuXG4gICAgICogVGhhdCB3b3VsZCBjYXVzZSBzdHJhbmdlIGJlaGF2aW9ycyBsaWtlIHByZXZlbnRpbmcgYGlzRGlzYWJsZWRgIGZyb20gd29ya2luZyBjb3JyZWN0bHkuXG4gICAgICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IGNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIG1vZGVsID0gaW5wdXQ8QnV0dG9uTW9kZWw+KCk7XG4gICAgdGV4dCA9IGlucHV0PFRleHRNb2RlbD4oKTtcbiAgICBicmFuZENvbG9yU3R5bGUgPSBpbnB1dDxCcmFuZFR5cGU+KCk7XG4gICAgY3VzdG9tQ2xhc3NlcyA9IGlucHV0PHN0cmluZz4oKTtcbiAgICBpc091dGxpbmUgPSBpbnB1dChmYWxzZSk7XG4gICAgaXNHaG9zdCA9IGlucHV0KGZhbHNlKTtcbiAgICBpc1NxdWFyZSA9IGlucHV0KGZhbHNlKTtcbiAgICBpc1BpbGwgPSBpbnB1dChmYWxzZSk7XG4gICAgaXNJY29uID0gaW5wdXQoZmFsc2UpO1xuICAgIGlzTG9hZGluZyA9IGlucHV0KGZhbHNlKTtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBidXR0b24gc2hvdWxkIGFjdCBhcyBhIGxpc3QgKHRvcC1ib3R0b20gYWxpZ25tZW50IGluc3RlYWQgb2YgbGVmdC1yaWdodCByZWxhdGVkIHRvIG5laWdoYm9ycykuXG4gICAgICovXG4gICAgaXNMaXN0ID0gaW5wdXQoZmFsc2UpO1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGJ1dHRvbiBzaG91bGQgYmUgZmxvYXRpbmcgaW4gdGhlIGJvdHRvbSByaWdodCBjb3JuZXIuXG4gICAgICovXG4gICAgaXNGbG9hdGluZyA9IGlucHV0KGZhbHNlKTtcbiAgICBpc0FjdGlvbiA9IGlucHV0KGZhbHNlKTtcbiAgICBpc05hdmlnYXRpb25MaW5rID0gaW5wdXQoZmFsc2UpO1xuICAgIGlzTGluayA9IGlucHV0KGZhbHNlKTtcbiAgICBzaG91bGRJZ25vcmVCdG5DbGFzcyA9IGlucHV0KGZhbHNlKTtcbiAgICBpY29uTW9kZWwgPSBpbnB1dDxJY29uTW9kZWw+KCk7XG4gICAgaWNvblBvc2l0aW9uID0gaW5wdXQ8TGVmdFJpZ2h0VHlwZT4oJ2xlZnQnKTtcbiAgICBpc0Rpc2FibGVkID0gaW5wdXQoZmFsc2UpO1xuICAgIGlzQWN0aXZlID0gaW5wdXQoZmFsc2UpO1xuICAgIGJhZGdlQ29uZmlnID0gaW5wdXQ8QmFkZ2VDb25maWc+KCk7XG4gICAgY29sb3JTdHlsZSA9IGlucHV0PEJnQ29sb3JTdHlsZVR5cGU+KCk7XG4gICAgc2l6ZSA9IGlucHV0PEJ1dHRvblNpemVUeXBlPigncmVndWxhcicpO1xuICAgIHRpdGxlID0gaW5wdXQ8VGV4dE1vZGVsPigpO1xuICAgIHN0b3BQcm9wYWdhdGlvbiA9IGlucHV0KGZhbHNlKTtcblxuICAgIGdldCBtYWluVGV4dCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0U2VydmljZS5nZXRUZXh0KHRoaXMubW9kZWwoKT8udGV4dD8uKCkgfHwgdGhpcy50ZXh0KCkpO1xuICAgIH1cblxuICAgIGdldCBfaWNvbk1vZGVsKCk6IE9wdGlvbmFsVHlwZTxJY29uTW9kZWw+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZWwoKT8uaWNvbk1vZGVsPy4oKSB8fCB0aGlzLmljb25Nb2RlbCgpO1xuICAgIH1cblxuICAgIGdldCBfaWNvblBvc2l0aW9uKCk6IExlZnRSaWdodFR5cGUge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlbCgpPy5pY29uUG9zaXRpb24oKSB8fCB0aGlzLmljb25Qb3NpdGlvbigpO1xuICAgIH1cblxuICAgIGdldCBfaXNJY29uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlbCgpPy5pc0ljb24oKSB8fCB0aGlzLmlzSWNvbigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IHNpemVDbGFzcygpOiBzdHJpbmcge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuX3NpemUoKSkge1xuICAgICAgICAgICAgY2FzZSAnbGFyZ2UnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnYnRuLWxnJztcbiAgICAgICAgICAgIGNhc2UgJ3NtYWxsJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2J0bi1zbSc7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3NpemUgPSBjb21wdXRlZCgoKSA9PiAhIXRoaXMubW9kZWwoKSA/IHRoaXMubW9kZWwoKSEuc2l6ZSgpIDogdGhpcy5zaXplKCkpO1xuICAgIHByaXZhdGUgX3RpdGxlID0gY29tcHV0ZWQoKCkgPT4gISF0aGlzLm1vZGVsKCkgJiYgISF0aGlzLm1vZGVsKCk/LnRpdGxlID8gdGhpcy5tb2RlbCgpIS50aXRsZSEoKSA6IHRoaXMudGl0bGUoKSk7XG4gICAgcHJpdmF0ZSBfY29sb3JTdHlsZSA9IGNvbXB1dGVkKCgpID0+ICEhdGhpcy5tb2RlbCgpICYmICEhdGhpcy5tb2RlbCgpPy5jb2xvclN0eWxlID8gdGhpcy5tb2RlbCgpIS5jb2xvclN0eWxlISgpIDogdGhpcy5jb2xvclN0eWxlKCkpO1xuICAgIHByaXZhdGUgX2JyYW5kQ29sb3JTdHlsZSA9IGNvbXB1dGVkKCgpID0+XG4gICAgICAgICEhdGhpcy5tb2RlbCgpICYmICEhdGhpcy5tb2RlbCgpPy5icmFuZENvbG9yU3R5bGUgPyB0aGlzLm1vZGVsKCkhLmJyYW5kQ29sb3JTdHlsZSEoKSA6IHRoaXMuYnJhbmRDb2xvclN0eWxlKClcbiAgICApO1xuICAgIHByaXZhdGUgYnV0dG9uQ2xhc3NlcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgaXNMaW5rID0gdGhpcy5tb2RlbCgpPy5pc0xpbmsoKSB8fCB0aGlzLmlzTGluaygpO1xuICAgICAgICBjb25zdCBvdXRsaW5lQ2xzID0gdGhpcy5tb2RlbCgpPy5pc091dGxpbmUoKSB8fCB0aGlzLmlzT3V0bGluZSgpID8gJ291dGxpbmUtJyA6ICcnO1xuICAgICAgICBjb25zdCBnaG9zdENscyA9IHRoaXMubW9kZWwoKT8uaXNHaG9zdCgpIHx8IHRoaXMuaXNHaG9zdCgpID8gJ2dob3N0LScgOiAnJztcbiAgICAgICAgY29uc3QgbENsYXNzZXM6IHN0cmluZ1tdID0gdGhpcy5tb2RlbCgpPy5zaG91bGRJZ25vcmVCdG5DbGFzcygpIHx8IHRoaXMuc2hvdWxkSWdub3JlQnRuQ2xhc3MoKSA/IFtdIDogWydidG4nXTtcbiAgICAgICAgY29uc3QgY3VzdG9tQ2xhc3NlcyA9IHRoaXMubW9kZWwoKT8uY3VzdG9tQ2xhc3Nlcz8uKCkuc3BsaXQoJyAnKSB8fCB0aGlzLmN1c3RvbUNsYXNzZXMoKT8uc3BsaXQoJyAnKSB8fCBbXTtcblxuICAgICAgICBpZiAoIWlzTGluayAmJiAoISFvdXRsaW5lQ2xzIHx8ICEhZ2hvc3RDbHMgfHwgISF0aGlzLl9jb2xvclN0eWxlKCkgfHwgISF0aGlzLl9icmFuZENvbG9yU3R5bGUoKSkpIHtcbiAgICAgICAgICAgIGxDbGFzc2VzLnB1c2goYGJ0bi0ke291dGxpbmVDbHMgfHwgZ2hvc3RDbHN9JHt0aGlzLl9jb2xvclN0eWxlKCkgfHwgdGhpcy5fYnJhbmRDb2xvclN0eWxlKCl9YCk7XG4gICAgICAgIH0gZWxzZSBpZiAoISF0aGlzLl9jb2xvclN0eWxlKCkgfHwgISF0aGlzLl9icmFuZENvbG9yU3R5bGUoKSkge1xuICAgICAgICAgICAgbENsYXNzZXMucHVzaChgbGluay0ke3RoaXMuX2NvbG9yU3R5bGUoKSB8fCB0aGlzLl9icmFuZENvbG9yU3R5bGUoKX1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1vZGVsKCk/LmlzU3F1YXJlKCkgfHwgdGhpcy5pc1NxdWFyZSgpKSB7XG4gICAgICAgICAgICBsQ2xhc3Nlcy5wdXNoKCdidG4tc3F1YXJlJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5tb2RlbCgpPy5pc1BpbGwoKSB8fCB0aGlzLmlzUGlsbCgpKSB7XG4gICAgICAgICAgICBsQ2xhc3Nlcy5wdXNoKCdidG4tcGlsbCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX2lzSWNvbikge1xuICAgICAgICAgICAgbENsYXNzZXMucHVzaCgnYnRuLWljb24nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1vZGVsKCk/LmlzTG9hZGluZygpIHx8IHRoaXMuaXNMb2FkaW5nKCkpIHtcbiAgICAgICAgICAgIGxDbGFzc2VzLnB1c2goJ2J0bi1sb2FkaW5nJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5tb2RlbCgpPy5pc0xpc3QoKSB8fCB0aGlzLmlzTGlzdCgpKSB7XG4gICAgICAgICAgICBsQ2xhc3Nlcy5wdXNoKCdidG4tbGlzdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubW9kZWwoKT8uaXNGbG9hdGluZygpIHx8IHRoaXMuaXNGbG9hdGluZygpKSB7XG4gICAgICAgICAgICBsQ2xhc3Nlcy5wdXNoKCdidG4tZmxvYXRpbmcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1vZGVsKCk/LmlzQWN0aW9uKCkgfHwgdGhpcy5pc0FjdGlvbigpKSB7XG4gICAgICAgICAgICBsQ2xhc3Nlcy5wdXNoKCdidG4tYWN0aW9uJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5tb2RlbCgpPy5pc05hdmlnYXRpb25MaW5rKCkgfHwgdGhpcy5pc05hdmlnYXRpb25MaW5rKCkpIHtcbiAgICAgICAgICAgIGxDbGFzc2VzLnB1c2goJ25hdi1saW5rJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNMaW5rKSB7XG4gICAgICAgICAgICBsQ2xhc3Nlcy5wdXNoKCdidG4tbGluaycpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubW9kZWwoKT8uaXNBY3RpdmUoKSB8fCB0aGlzLmlzQWN0aXZlKCkpIHtcbiAgICAgICAgICAgIGxDbGFzc2VzLnB1c2goJ2FjdGl2ZScpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubW9kZWwoKT8uaXNEaXNhYmxlZCgpIHx8IHRoaXMuaXNEaXNhYmxlZCgpKSB7XG4gICAgICAgICAgICBsQ2xhc3Nlcy5wdXNoKCdkaXNhYmxlZCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCEhdGhpcy5iYWRnZUNvbmZpZygpICYmICh0aGlzLmJhZGdlQ29uZmlnKCkhLmlzQmxpbmtpbmcgfHwgdGhpcy5iYWRnZUNvbmZpZygpIS5pc05vdGlmaWNhdGlvbikpIHtcbiAgICAgICAgICAgIGxDbGFzc2VzLnB1c2goJ3Bvc2l0aW9uLXJlbGF0aXZlJyk7XG4gICAgICAgIH1cblxuICAgICAgICBsQ2xhc3Nlcy5wdXNoKHRoaXMuc2l6ZUNsYXNzKTtcblxuICAgICAgICByZXR1cm4gWy4uLmxDbGFzc2VzLCAuLi5jdXN0b21DbGFzc2VzXTtcbiAgICB9KTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRTZXJ2aWNlID0gaW5qZWN0KFRleHRTZXJ2aWNlKTtcblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgICBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghIXRoaXMubW9kZWwoKSAmJiAhIXRoaXMubW9kZWwoKT8uY2xpY2tGdW5jdGlvbikge1xuICAgICAgICAgICAgdGhpcy5tb2RlbCgpIS5jbGlja0Z1bmN0aW9uISh7IGV2ZW50LCBkYXRhOiB0aGlzIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jbGlja2VkLmVtaXQoZXZlbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubW9kZWwoKT8uc3RvcFByb3BhZ2F0aW9uKCkgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjdXNlckNvbnRlbnRUcGw+XG4gICAgQGlmICghIV9pY29uTW9kZWwgJiYgX2ljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnKSB7XG4gICAgICAgIDx1cGQtaWNvbiBbbW9kZWxdPVwiX2ljb25Nb2RlbFwiIFt0YWJsZXJJY29uU2l6ZV09XCJfaWNvbk1vZGVsLnRhYmxlckljb25TaXplIHx8IDIwXCJcbiAgICAgICAgICAgIFtoZXJvSWNvblNpemVdPVwiX2ljb25Nb2RlbC5oZXJvSWNvblNpemUgfHwgJ3NtYWxsJ1wiPlxuICAgICAgICA8L3VwZC1pY29uPlxuICAgIH1cblxuICAgIDxkaXYgW2NsYXNzLm14LTFdPVwiISFfaWNvbk1vZGVsICYmICFfaXNJY29uXCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cblxuICAgIEBpZiAoISFiYWRnZUNvbmZpZygpKSB7XG4gICAgICAgIDx1cGQtYmFkZ2UgW2NvbmZpZ109XCJiYWRnZUNvbmZpZygpXCI+PC91cGQtYmFkZ2U+XG4gICAgfVxuXG4gICAgQGlmICghIV9pY29uTW9kZWwgJiYgX2ljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xuICAgICAgICA8dXBkLWljb24gW21vZGVsXT1cIl9pY29uTW9kZWxcIiBbdGFibGVySWNvblNpemVdPVwiX2ljb25Nb2RlbC50YWJsZXJJY29uU2l6ZSB8fCAyMFwiXG4gICAgICAgICAgICBbaGVyb0ljb25TaXplXT1cIl9pY29uTW9kZWwuaGVyb0ljb25TaXplIHx8ICdzbWFsbCdcIj5cbiAgICAgICAgPC91cGQtaWNvbj5cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuXG5AaWYgKCFtYWluVGV4dCkge1xuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwidXNlckNvbnRlbnRUcGxcIj48L25nLWNvbnRhaW5lcj5cbn0gQGVsc2Uge1xuICAgIEBpZiAoISFfaWNvbk1vZGVsICYmIF9pY29uUG9zaXRpb24gPT09ICdsZWZ0Jykge1xuICAgICAgICA8dXBkLWljb24gW21vZGVsXT1cIl9pY29uTW9kZWxcIiBbdGFibGVySWNvblNpemVdPVwiX2ljb25Nb2RlbC50YWJsZXJJY29uU2l6ZSB8fCAyMFwiXG4gICAgICAgICAgICBbaGVyb0ljb25TaXplXT1cIl9pY29uTW9kZWwuaGVyb0ljb25TaXplIHx8ICdzbWFsbCdcIj5cbiAgICAgICAgPC91cGQtaWNvbj5cbiAgICB9XG5cbiAgICA8c3BhbiBbY2xhc3MubXgtMV09XCIhIV9pY29uTW9kZWxcIj5cbiAgICAgICAge3sgbWFpblRleHQgfX1cbiAgICA8L3NwYW4+XG5cbiAgICBAaWYgKCEhYmFkZ2VDb25maWcoKSkge1xuICAgICAgICA8dXBkLWJhZGdlIFtjb25maWddPVwiYmFkZ2VDb25maWcoKVwiPjwvdXBkLWJhZGdlPlxuICAgIH1cblxuICAgIEBpZiAoISFfaWNvbk1vZGVsICYmIF9pY29uUG9zaXRpb24gPT09ICdyaWdodCcpIHtcbiAgICAgICAgPHVwZC1pY29uIFttb2RlbF09XCJfaWNvbk1vZGVsXCIgW3RhYmxlckljb25TaXplXT1cIl9pY29uTW9kZWwudGFibGVySWNvblNpemUgfHwgMjBcIlxuICAgICAgICAgICAgW2hlcm9JY29uU2l6ZV09XCJfaWNvbk1vZGVsLmhlcm9JY29uU2l6ZSB8fCAnc21hbGwnXCI+XG4gICAgICAgIDwvdXBkLWljb24+XG4gICAgfVxufVxuIl19
|
|
@@ -62,7 +62,7 @@ export class CardComponent {
|
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
64
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: CardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
65
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: CardComponent, selector: "upd-card", inputs: { wrapperClasses: "wrapperClasses", title: "title", subtitle: "subtitle", hoverEffect: "hoverEffect", state: "state", type: "type", imagePosition: "imagePosition", bgColor: "bgColor", stampIcon: "stampIcon", stampBackground: "stampBackground", statusBackground: "statusBackground", statusPosition: "statusPosition", ribbonBackground: "ribbonBackground", ribbonStyle: "ribbonStyle", ribbonIcon: "ribbonIcon", ribbonText: "ribbonText", rotate: "rotate", removeBorder: "removeBorder", useLightHeader: "useLightHeader", showHeader: "showHeader", isFooterTransparent: "isFooterTransparent", footerText: "footerText", showProgressBar: "showProgressBar", progress: "progress", actions: "actions" }, host: { properties: { "class": "this.wrapperClasses" } }, queries: [{ propertyName: "headerTemplate", first: true, predicate: CardHeaderDirective, descendants: true }, { propertyName: "footerTemplate", first: true, predicate: CardFooterDirective, descendants: true }, { propertyName: "imageTemplate", first: true, predicate: CardImageDirective, descendants: true }, { propertyName: "actionsTemplate", first: true, predicate: CardActionsDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template *ngIf=\"!hoverEffect; else linkTpl\" [ngTemplateOutlet]=\"structureTpl\"></ng-template>\n\n<!-- Template for cards that are links -->\n<ng-template #linkTpl>\n <a href=\"#\" class=\"card\" [ngClass]=\"classes\">\n <ng-template [ngTemplateOutlet]=\"structureTpl\"></ng-template>\n </a>\n</ng-template>\n\n<ng-template #structureTpl>\n <!-- Ribbon -->\n <div *ngIf=\"!!ribbonBackground\" class=\"ribbon {{ribbonStyle === 'default' ? '' : 'ribbon-' + ribbonStyle}} bg-{{ribbonBackground}}\">\n <span *ngIf=\"!!ribbonText; else ribbonIconTpl\">{{ribbonText}}</span>\n <ng-template #ribbonIconTpl>\n <upd-icon [model]=\"ribbonIcon\" wrapperClasses=\"icon\" [removeDefaultClasses]=\"true\"></upd-icon>\n </ng-template>\n </div>\n\n <!-- Status -->\n <div *ngIf=\"!!statusBackground\" class=\"card-status-{{statusPosition}} bg-{{statusBackground}}\"></div>\n\n <!-- Stamp -->\n <div *ngIf=\"!!stampIcon\" class=\"card-stamp\">\n <div class=\"card-stamp-icon bg-{{stampBackground}}\">\n <upd-icon [model]=\"stampIcon\" wrapperClasses=\"icon\" [removeDefaultClasses]=\"true\"></upd-icon>\n </div>\n </div>\n\n <!-- Header section -->\n <div *ngIf=\"showHeader && (!!title || !!headerTemplate?.templateRef)\" class=\"card-header\" [class.card-header-light]=\"useLightHeader\">\n <ng-container *ngIf=\"!headerTemplate?.templateRef; else customHeaderTpl\">\n <h3 class=\"card-title\">{{title}} <span *ngIf=\"!!subtitle\" class=\"card-subtitle\">{{subtitle}}</span></h3>\n </ng-container>\n <ng-template #customHeaderTpl [ngTemplateOutlet]=\"headerTemplate?.templateRef || null\"></ng-template>\n\n <!-- Actions -->\n <div *ngIf=\"!!actionsTemplate || actions.length > 0\" class=\"card-actions\">\n <ng-container *ngIf=\"actions.length > 0; else customActionsTpl\">\n <upd-button *ngFor=\"let btn of actions\" [model]=\"btn\" customClasses=\"me-1\"></upd-button>\n </ng-container>\n <ng-template #customActionsTpl [ngTemplateOutlet]=\"actionsTemplate?.templateRef || null\"></ng-template>\n </div>\n </div>\n\n <!-- Body -->\n <ng-container *ngIf=\"!!imageTemplate; else bodyTpl\">\n <ng-template *ngIf=\"imagePosition === 'left' || imagePosition === 'right'; else bodyWithTopBottomImageTpl\"\n [ngTemplateOutlet]=\"bodyWithSideImageTpl\"></ng-template>\n </ng-container>\n\n <!-- Footer -->\n <div *ngIf=\"!!footerText || !!footerTemplate\" class=\"card-footer\" [class.card-footer-transparent]=\"isFooterTransparent\">\n <ng-container *ngIf=\"!footerTemplate?.templateRef; else customFooterTpl\">\n <span *ngIf=\"!!footerText\">{{footerText}}</span>\n </ng-container>\n <ng-template #customFooterTpl [ngTemplateOutlet]=\"footerTemplate?.templateRef || null\"></ng-template>\n </div>\n\n <!-- Progress bar -->\n <div *ngIf=\"showProgressBar\" class=\"progress progress-sm card-progress\">\n <div class=\"progress-bar\" [style.width.%]=\"progress\" role=\"progressbar\" [attr.aria-valuenow]=\"progress\" aria-valuemin=\"0\"\n aria-valuemax=\"100\">\n </div>\n </div>\n</ng-template>\n\n<!-- Body with an image on either side -->\n<ng-template #bodyWithSideImageTpl>\n <div class=\"row row-0\">\n <div class=\"col-3\" [class.order-md-last]=\"imagePosition === 'right'\">\n <div class=\"card-image-{{imagePosition}}\">\n <ng-template [ngTemplateOutlet]=\"imageTemplate!.templateRef\"></ng-template>\n </div>\n </div>\n <div class=\"col\">\n <ng-template [ngTemplateOutlet]=\"bodyTpl\"></ng-template>\n </div>\n </div>\n</ng-template>\n\n<!-- Body with an image on top or bottom -->\n<ng-template #bodyWithTopBottomImageTpl>\n <div *ngIf=\"imagePosition === 'top'\" class=\"img-responsive-21x9 card-img-top\">\n <div class=\"card-image-{{imagePosition}}\">\n <ng-template [ngTemplateOutlet]=\"imageTemplate!.templateRef\"></ng-template>\n </div>\n </div>\n <ng-template [ngTemplateOutlet]=\"bodyTpl\"></ng-template>\n <div *ngIf=\"imagePosition === 'bottom'\" class=\"img-responsive-21x9 card-img-bottom\">\n <div class=\"card-image-{{imagePosition}}\">\n <ng-template [ngTemplateOutlet]=\"imageTemplate!.templateRef\"></ng-template>\n </div>\n </div>\n</ng-template>\n\n<!-- Body -->\n<ng-template #bodyTpl>\n <div class=\"card-body\">\n <!-- If title was set, but the header section is hidden, we add the title to the body -->\n <ng-container *ngIf=\"!showHeader && !!title\">\n <h3 class=\"card-title\">{{title}} <span *ngIf=\"!!subtitle\" class=\"card-subtitle\">{{subtitle}}</span></h3>\n </ng-container>\n <ng-content></ng-content>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "component", type: i3.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title"], outputs: ["clicked"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
65
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: CardComponent, selector: "upd-card", inputs: { wrapperClasses: "wrapperClasses", title: "title", subtitle: "subtitle", hoverEffect: "hoverEffect", state: "state", type: "type", imagePosition: "imagePosition", bgColor: "bgColor", stampIcon: "stampIcon", stampBackground: "stampBackground", statusBackground: "statusBackground", statusPosition: "statusPosition", ribbonBackground: "ribbonBackground", ribbonStyle: "ribbonStyle", ribbonIcon: "ribbonIcon", ribbonText: "ribbonText", rotate: "rotate", removeBorder: "removeBorder", useLightHeader: "useLightHeader", showHeader: "showHeader", isFooterTransparent: "isFooterTransparent", footerText: "footerText", showProgressBar: "showProgressBar", progress: "progress", actions: "actions" }, host: { properties: { "class": "this.wrapperClasses" } }, queries: [{ propertyName: "headerTemplate", first: true, predicate: CardHeaderDirective, descendants: true }, { propertyName: "footerTemplate", first: true, predicate: CardFooterDirective, descendants: true }, { propertyName: "imageTemplate", first: true, predicate: CardImageDirective, descendants: true }, { propertyName: "actionsTemplate", first: true, predicate: CardActionsDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template *ngIf=\"!hoverEffect; else linkTpl\" [ngTemplateOutlet]=\"structureTpl\"></ng-template>\n\n<!-- Template for cards that are links -->\n<ng-template #linkTpl>\n <a href=\"#\" class=\"card\" [ngClass]=\"classes\">\n <ng-template [ngTemplateOutlet]=\"structureTpl\"></ng-template>\n </a>\n</ng-template>\n\n<ng-template #structureTpl>\n <!-- Ribbon -->\n <div *ngIf=\"!!ribbonBackground\" class=\"ribbon {{ribbonStyle === 'default' ? '' : 'ribbon-' + ribbonStyle}} bg-{{ribbonBackground}}\">\n <span *ngIf=\"!!ribbonText; else ribbonIconTpl\">{{ribbonText}}</span>\n <ng-template #ribbonIconTpl>\n <upd-icon [model]=\"ribbonIcon\" wrapperClasses=\"icon\" [removeDefaultClasses]=\"true\"></upd-icon>\n </ng-template>\n </div>\n\n <!-- Status -->\n <div *ngIf=\"!!statusBackground\" class=\"card-status-{{statusPosition}} bg-{{statusBackground}}\"></div>\n\n <!-- Stamp -->\n <div *ngIf=\"!!stampIcon\" class=\"card-stamp\">\n <div class=\"card-stamp-icon bg-{{stampBackground}}\">\n <upd-icon [model]=\"stampIcon\" wrapperClasses=\"icon\" [removeDefaultClasses]=\"true\"></upd-icon>\n </div>\n </div>\n\n <!-- Header section -->\n <div *ngIf=\"showHeader && (!!title || !!headerTemplate?.templateRef)\" class=\"card-header\" [class.card-header-light]=\"useLightHeader\">\n <ng-container *ngIf=\"!headerTemplate?.templateRef; else customHeaderTpl\">\n <h3 class=\"card-title\">{{title}} <span *ngIf=\"!!subtitle\" class=\"card-subtitle\">{{subtitle}}</span></h3>\n </ng-container>\n <ng-template #customHeaderTpl [ngTemplateOutlet]=\"headerTemplate?.templateRef || null\"></ng-template>\n\n <!-- Actions -->\n <div *ngIf=\"!!actionsTemplate || actions.length > 0\" class=\"card-actions\">\n <ng-container *ngIf=\"actions.length > 0; else customActionsTpl\">\n <upd-button *ngFor=\"let btn of actions\" [model]=\"btn\" customClasses=\"me-1\"></upd-button>\n </ng-container>\n <ng-template #customActionsTpl [ngTemplateOutlet]=\"actionsTemplate?.templateRef || null\"></ng-template>\n </div>\n </div>\n\n <!-- Body -->\n <ng-container *ngIf=\"!!imageTemplate; else bodyTpl\">\n <ng-template *ngIf=\"imagePosition === 'left' || imagePosition === 'right'; else bodyWithTopBottomImageTpl\"\n [ngTemplateOutlet]=\"bodyWithSideImageTpl\"></ng-template>\n </ng-container>\n\n <!-- Footer -->\n <div *ngIf=\"!!footerText || !!footerTemplate\" class=\"card-footer\" [class.card-footer-transparent]=\"isFooterTransparent\">\n <ng-container *ngIf=\"!footerTemplate?.templateRef; else customFooterTpl\">\n <span *ngIf=\"!!footerText\">{{footerText}}</span>\n </ng-container>\n <ng-template #customFooterTpl [ngTemplateOutlet]=\"footerTemplate?.templateRef || null\"></ng-template>\n </div>\n\n <!-- Progress bar -->\n <div *ngIf=\"showProgressBar\" class=\"progress progress-sm card-progress\">\n <div class=\"progress-bar\" [style.width.%]=\"progress\" role=\"progressbar\" [attr.aria-valuenow]=\"progress\" aria-valuemin=\"0\"\n aria-valuemax=\"100\">\n </div>\n </div>\n</ng-template>\n\n<!-- Body with an image on either side -->\n<ng-template #bodyWithSideImageTpl>\n <div class=\"row row-0\">\n <div class=\"col-3\" [class.order-md-last]=\"imagePosition === 'right'\">\n <div class=\"card-image-{{imagePosition}}\">\n <ng-template [ngTemplateOutlet]=\"imageTemplate!.templateRef\"></ng-template>\n </div>\n </div>\n <div class=\"col\">\n <ng-template [ngTemplateOutlet]=\"bodyTpl\"></ng-template>\n </div>\n </div>\n</ng-template>\n\n<!-- Body with an image on top or bottom -->\n<ng-template #bodyWithTopBottomImageTpl>\n <div *ngIf=\"imagePosition === 'top'\" class=\"img-responsive-21x9 card-img-top\">\n <div class=\"card-image-{{imagePosition}}\">\n <ng-template [ngTemplateOutlet]=\"imageTemplate!.templateRef\"></ng-template>\n </div>\n </div>\n <ng-template [ngTemplateOutlet]=\"bodyTpl\"></ng-template>\n <div *ngIf=\"imagePosition === 'bottom'\" class=\"img-responsive-21x9 card-img-bottom\">\n <div class=\"card-image-{{imagePosition}}\">\n <ng-template [ngTemplateOutlet]=\"imageTemplate!.templateRef\"></ng-template>\n </div>\n </div>\n</ng-template>\n\n<!-- Body -->\n<ng-template #bodyTpl>\n <div class=\"card-body\">\n <!-- If title was set, but the header section is hidden, we add the title to the body -->\n <ng-container *ngIf=\"!showHeader && !!title\">\n <h3 class=\"card-title\">{{title}} <span *ngIf=\"!!subtitle\" class=\"card-subtitle\">{{subtitle}}</span></h3>\n </ng-container>\n <ng-content></ng-content>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "component", type: i3.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title", "stopPropagation"], outputs: ["clicked"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
66
66
|
}
|
|
67
67
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: CardComponent, decorators: [{
|
|
68
68
|
type: Component,
|
|
@@ -159,7 +159,7 @@ export class DropdownComponent extends BaseComponent {
|
|
|
159
159
|
this.renderer.setStyle(ddElement, 'top', `${result.y}px`, RendererStyleFlags2.Important);
|
|
160
160
|
}
|
|
161
161
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
162
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: DropdownComponent, selector: "upd-dropdown", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: false, isRequired: false, transformFunction: null }, header: { classPropertyName: "header", publicName: "header", isSignal: false, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: false, isRequired: false, transformFunction: null }, shouldCloseOnOutsideClick: { classPropertyName: "shouldCloseOnOutsideClick", publicName: "shouldCloseOnOutsideClick", isSignal: false, isRequired: false, transformFunction: null }, arrowType: { classPropertyName: "arrowType", publicName: "arrowType", isSignal: false, isRequired: false, transformFunction: null }, wrapperClasses: { classPropertyName: "wrapperClasses", publicName: "wrapperClasses", isSignal: false, isRequired: false, transformFunction: null }, elementsExcludedFromOutsideClick: { classPropertyName: "elementsExcludedFromOutsideClick", publicName: "elementsExcludedFromOutsideClick", isSignal: false, isRequired: false, transformFunction: null }, minHeight: { classPropertyName: "minHeight", publicName: "minHeight", isSignal: false, isRequired: false, transformFunction: null }, maxHeight: { classPropertyName: "maxHeight", publicName: "maxHeight", isSignal: false, isRequired: false, transformFunction: null }, minWidth: { classPropertyName: "minWidth", publicName: "minWidth", isSignal: false, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: "maxWidth", publicName: "maxWidth", isSignal: false, isRequired: false, transformFunction: null }, dropdownReference: { classPropertyName: "dropdownReference", publicName: "dropdownReference", isSignal: false, isRequired: false, transformFunction: null }, dropdownReferencePosition: { classPropertyName: "dropdownReferencePosition", publicName: "dropdownReferencePosition", isSignal: false, isRequired: false, transformFunction: null }, textOverflowStrategy: { classPropertyName: "textOverflowStrategy", publicName: "textOverflowStrategy", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isOpenChange: "isOpenChange", selectedItem: "selectedItem", checkboxChanged: "checkboxChanged" }, host: { properties: { "class": "this.localWrapperClasses" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (!!header) {\n <h6 class=\"dropdown-header\">{{ header }}</h6>\n}\n\n@for (item of items; track trackByItemId($index, item)) {\n @switch (item.type) {\n @case ('divider') {\n <div class=\"dropdown-divider\"></div>\n }\n @case ('default') {\n <upd-button [customClasses]=\"getButtonClasses(item)\"\n [shouldIgnoreBtnClass]=\"true\" (clicked)=\"onSelect(item)\">\n @if (!!item.icon) {\n <upd-icon [model]=\"item.icon\" customClasses=\"dropdown-item-icon\"></upd-icon>\n }\n\n @if (!!item.leftBoxText || !!item.leftBoxImage) {\n <span style=\"background-image: url({{item.leftBoxImage}})\"\n class=\"avatar avatar-xs rounded me-2\">{{ item.leftBoxText }}</span>\n }\n\n {{ textService.getText(item.text) }}\n\n @if (!!item.badgeColor) {\n <span class=\"badge bg-{{item.badgeColor}} ms-auto\">{{ item.badgeText }}</span>\n }\n </upd-button>\n }\n @case ('radio') {\n <upd-radio (selected)=\"onSelect(item)\" [label]=\"item.text\" [isChecked]=\"item.isChecked || false\"\n [wrapperClasses]=\"'dropdown-item' + (item.isDisabled ? ' disabled' : '') + (item.isActive ? ' active' : '')\"></upd-radio>\n }\n @case ('checkbox') {\n <upd-checkbox (changed)=\"onCheckboxChange(item, $event)\" [label]=\"item.text\" [isChecked]=\"item.isChecked || false\"\n [isSwitch]=\"item.isSwitch || false\"\n [wrapperClasses]=\"'dropdown-item' + (item.isDisabled ? ' disabled' : '') + (item.isActive ? ' active' : '')\"></upd-checkbox>\n }\n @case ('with-toolbar') {\n <div class=\"dropdown-item\" [class.disabled]=\"item.isDisabled\" [class.active]=\"item.isActive\" (click)=\"onSelect(item)\">\n @if (!!item.icon) {\n <upd-icon [model]=\"item.icon\" customClasses=\"dropdown-item-icon\"></upd-icon>\n }\n\n @if (!!item.leftBoxText || !!item.leftBoxImage) {\n <span style=\"background-image: url({{item.leftBoxImage}})\"\n class=\"avatar avatar-xs rounded me-2\">{{ item.leftBoxText }}</span>\n }\n\n <span [ngClass]=\"overflowClass\">\n {{ textService.getText(item.text) }}\n </span>\n\n @if ((item.actionButtons?.length || 0) > 0) {\n <div class=\"ms-auto d-flex\" [class.btn-group]=\"item.toolbarType === 'grouped'\"\n [class.gap-1]=\"item.toolbarType === 'spaced'\">\n @for (btn of item.actionButtons; track btn) {\n <upd-button [model]=\"adaptAction(btn, item)\"></upd-button>\n }\n </div>\n }\n\n @if (!!item.badgeColor) {\n <span class=\"badge bg-{{item.badgeColor}} ms-auto\">{{ item.badgeText }}</span>\n }\n </div>\n }\n }\n}\n\n<ng-content></ng-content>\n", styles: [".dropdown-show{display:inline-block!important;width:100%!important;position:relative;top:0!important;margin-bottom:1rem!important}.dropdown-item>.form-check{margin-bottom:0!important}.dropdown-item{cursor:pointer!important}.dropdown-overflow{overflow-y:auto!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "component", type: i3.RadioComponent, selector: "upd-radio", inputs: ["wrapperClasses", "value", "customClasses", "isChecked", "isInline"], outputs: ["selected"] }, { kind: "component", type: i4.CheckboxComponent, selector: "upd-checkbox", inputs: ["wrapperClasses", "value", "customClasses", "isChecked", "isInline", "isSwitch", "isIndeterminate"], outputs: ["changed", "isCheckedChange", "isIndeterminateChange"] }, { kind: "component", type: i5.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title"], outputs: ["clicked"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
162
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: DropdownComponent, selector: "upd-dropdown", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: false, isRequired: false, transformFunction: null }, header: { classPropertyName: "header", publicName: "header", isSignal: false, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: false, isRequired: false, transformFunction: null }, shouldCloseOnOutsideClick: { classPropertyName: "shouldCloseOnOutsideClick", publicName: "shouldCloseOnOutsideClick", isSignal: false, isRequired: false, transformFunction: null }, arrowType: { classPropertyName: "arrowType", publicName: "arrowType", isSignal: false, isRequired: false, transformFunction: null }, wrapperClasses: { classPropertyName: "wrapperClasses", publicName: "wrapperClasses", isSignal: false, isRequired: false, transformFunction: null }, elementsExcludedFromOutsideClick: { classPropertyName: "elementsExcludedFromOutsideClick", publicName: "elementsExcludedFromOutsideClick", isSignal: false, isRequired: false, transformFunction: null }, minHeight: { classPropertyName: "minHeight", publicName: "minHeight", isSignal: false, isRequired: false, transformFunction: null }, maxHeight: { classPropertyName: "maxHeight", publicName: "maxHeight", isSignal: false, isRequired: false, transformFunction: null }, minWidth: { classPropertyName: "minWidth", publicName: "minWidth", isSignal: false, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: "maxWidth", publicName: "maxWidth", isSignal: false, isRequired: false, transformFunction: null }, dropdownReference: { classPropertyName: "dropdownReference", publicName: "dropdownReference", isSignal: false, isRequired: false, transformFunction: null }, dropdownReferencePosition: { classPropertyName: "dropdownReferencePosition", publicName: "dropdownReferencePosition", isSignal: false, isRequired: false, transformFunction: null }, textOverflowStrategy: { classPropertyName: "textOverflowStrategy", publicName: "textOverflowStrategy", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isOpenChange: "isOpenChange", selectedItem: "selectedItem", checkboxChanged: "checkboxChanged" }, host: { properties: { "class": "this.localWrapperClasses" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (!!header) {\n <h6 class=\"dropdown-header\">{{ header }}</h6>\n}\n\n@for (item of items; track trackByItemId($index, item)) {\n @switch (item.type) {\n @case ('divider') {\n <div class=\"dropdown-divider\"></div>\n }\n @case ('default') {\n <upd-button [customClasses]=\"getButtonClasses(item)\"\n [shouldIgnoreBtnClass]=\"true\" (clicked)=\"onSelect(item)\">\n @if (!!item.icon) {\n <upd-icon [model]=\"item.icon\" customClasses=\"dropdown-item-icon\"></upd-icon>\n }\n\n @if (!!item.leftBoxText || !!item.leftBoxImage) {\n <span style=\"background-image: url({{item.leftBoxImage}})\"\n class=\"avatar avatar-xs rounded me-2\">{{ item.leftBoxText }}</span>\n }\n\n {{ textService.getText(item.text) }}\n\n @if (!!item.badgeColor) {\n <span class=\"badge bg-{{item.badgeColor}} ms-auto\">{{ item.badgeText }}</span>\n }\n </upd-button>\n }\n @case ('radio') {\n <upd-radio (selected)=\"onSelect(item)\" [label]=\"item.text\" [isChecked]=\"item.isChecked || false\"\n [wrapperClasses]=\"'dropdown-item' + (item.isDisabled ? ' disabled' : '') + (item.isActive ? ' active' : '')\"></upd-radio>\n }\n @case ('checkbox') {\n <upd-checkbox (changed)=\"onCheckboxChange(item, $event)\" [label]=\"item.text\" [isChecked]=\"item.isChecked || false\"\n [isSwitch]=\"item.isSwitch || false\"\n [wrapperClasses]=\"'dropdown-item' + (item.isDisabled ? ' disabled' : '') + (item.isActive ? ' active' : '')\"></upd-checkbox>\n }\n @case ('with-toolbar') {\n <div class=\"dropdown-item\" [class.disabled]=\"item.isDisabled\" [class.active]=\"item.isActive\" (click)=\"onSelect(item)\">\n @if (!!item.icon) {\n <upd-icon [model]=\"item.icon\" customClasses=\"dropdown-item-icon\"></upd-icon>\n }\n\n @if (!!item.leftBoxText || !!item.leftBoxImage) {\n <span style=\"background-image: url({{item.leftBoxImage}})\"\n class=\"avatar avatar-xs rounded me-2\">{{ item.leftBoxText }}</span>\n }\n\n <span [ngClass]=\"overflowClass\">\n {{ textService.getText(item.text) }}\n </span>\n\n @if ((item.actionButtons?.length || 0) > 0) {\n <div class=\"ms-auto d-flex\" [class.btn-group]=\"item.toolbarType === 'grouped'\"\n [class.gap-1]=\"item.toolbarType === 'spaced'\">\n @for (btn of item.actionButtons; track btn) {\n <upd-button [model]=\"adaptAction(btn, item)\"></upd-button>\n }\n </div>\n }\n\n @if (!!item.badgeColor) {\n <span class=\"badge bg-{{item.badgeColor}} ms-auto\">{{ item.badgeText }}</span>\n }\n </div>\n }\n }\n}\n\n<ng-content></ng-content>\n", styles: [".dropdown-show{display:inline-block!important;width:100%!important;position:relative;top:0!important;margin-bottom:1rem!important}.dropdown-item>.form-check{margin-bottom:0!important}.dropdown-item{cursor:pointer!important}.dropdown-overflow{overflow-y:auto!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "component", type: i3.RadioComponent, selector: "upd-radio", inputs: ["wrapperClasses", "value", "customClasses", "isChecked", "isInline"], outputs: ["selected"] }, { kind: "component", type: i4.CheckboxComponent, selector: "upd-checkbox", inputs: ["wrapperClasses", "value", "customClasses", "isChecked", "isInline", "isSwitch", "isIndeterminate"], outputs: ["changed", "isCheckedChange", "isIndeterminateChange"] }, { kind: "component", type: i5.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title", "stopPropagation"], outputs: ["clicked"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
163
163
|
}
|
|
164
164
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DropdownComponent, decorators: [{
|
|
165
165
|
type: Component,
|
|
@@ -166,7 +166,7 @@ export class DynamicFieldComponent extends BaseComponent {
|
|
|
166
166
|
}
|
|
167
167
|
}
|
|
168
168
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DynamicFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
169
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: DynamicFieldComponent, selector: "upd-dynamic-field", inputs: { formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: true, isRequired: true, transformFunction: null }, field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { submitForm: "submitForm" }, host: { properties: { "class": "this.hostClasses" } }, usesInheritance: true, ngImport: i0, template: "@switch (field().type) {\n @case (DynamicFieldType.Input) {\n <upd-input [name]=\"field().name\" [label]=\"field().label\" [placeholder]=\"field().placeholder\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [layout]=\"layout()\" [isDisabled]=\"field().isDisabled || false\"\n [type]=\"inputField.inputType || 'text'\" [labelColSize]=\"field().labelColSize\" [value]=\"formControl.value\"\n (valueChange)=\"setControlValue($event)\" (blurred)=\"onBlur()\" (keyUpEnter)=\"onInputEnter()\" (focus)=\"onFocus()\"\n (input)=\"onInput($event)\">\n @if (!!inputField.prefix) {\n <ng-template updInputPrepend>\n {{ textService.getText(inputField.prefix) }}\n </ng-template>\n }\n\n @if (!!inputField.suffix) {\n <ng-template updInputAppend>\n {{ textService.getText(inputField.suffix) }}\n </ng-template>\n }\n </upd-input>\n }\n @case (DynamicFieldType.Checkbox) {\n <upd-checkbox [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"true\"\n [isDisabled]=\"field().isDisabled || false\" [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\"\n [isSwitch]=\"checkboxField.isSwitch || false\" (changed)=\"setControlValue($event)\" (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"></upd-checkbox>\n }\n @case (DynamicFieldType.CheckboxGroup) {\n @if (!!field().label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n\n @for (option of checkboxGroupOptionsKeys; track option) {\n <upd-checkbox [name]=\"field().name\" [label]=\"getOptionDescription(option, 'checkbox')\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"option\" [isDisabled]=\"field().isDisabled || false\"\n [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\" [isSwitch]=\"checkboxField.isSwitch || false\"\n (changed)=\"setControlValue(option)\" (focus)=\"onFocus()\" (blur)=\"onBlur()\"></upd-checkbox>\n }\n }\n @case (DynamicFieldType.Radio) {\n <upd-radio [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"true\"\n [isChecked]=\"formControl.value\" [isDisabled]=\"field().isDisabled || false\" [isInline]=\"radioField.isInline || false\"\n (selected)=\"setControlValue($event)\" (focus)=\"onFocus()\" (blur)=\"onBlur()\">\n </upd-radio>\n }\n @case (DynamicFieldType.RadioGroup) {\n @if (!!field().label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n\n @for (option of radioGroupOptionsKeys; track option) {\n <upd-radio [name]=\"field().name\" [label]=\"getOptionDescription(option, 'radio')\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"option\" [isDisabled]=\"field().isDisabled || false\"\n [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\"\n (selected)=\"setControlValue(option)\" (focus)=\"onFocus()\" (blur)=\"onBlur()\"></upd-radio>\n }\n }\n @case (DynamicFieldType.Select) {\n <upd-select [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\"\n [useSystemStyle]=\"singleSelectField.useSystemStyle || false\" [isDisabled]=\"field().isDisabled || false\"\n [items]=\"selectField.items\" [layout]=\"layout()\" [labelColSize]=\"field().labelColSize\" [store]=\"selectField.store!\"\n [observable]=\"selectField.observable\" [itemKey]=\"selectField.itemKey\" [itemValue]=\"selectField.itemValue\"\n [dropdownMaxHeight]=\"selectField.dropdownMaxHeight || SelectDefaults.dropdownMaxHeight\"\n [typeaheadDebounce]=\"selectField.typeaheadDebounce || SelectDefaults.typeaheadDebounce\"\n [shouldAutoSearch]=\"selectField.shouldAutoSearch || SelectDefaults.shouldAutoSearch\"\n [shouldCloseOnOutsideClick]=\"selectField.shouldCloseOnOutsideClick || SelectDefaults.shouldCloseOnOutsideClick\"\n [shouldTruncateSelectedText]=\"selectField.shouldTruncateSelectedText\" [parentValue]=\"selectField.parentValue\"\n [value]=\"formControl.value\" (selectedItem)=\"setControlValue($event?.value)\" (focus)=\"onFocus()\" (blur)=\"onBlur()\"></upd-select>\n }\n @case (DynamicFieldType.SelectMultiple) {\n <upd-select-multiple [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [isDisabled]=\"field().isDisabled || false\"\n [items]=\"selectField.items\" [layout]=\"layout()\" [labelColSize]=\"field().labelColSize\" [store]=\"selectField.store!\"\n [observable]=\"selectField.observable\" [itemKey]=\"selectField.itemKey\" [itemValue]=\"selectField.itemValue\"\n [dropdownMaxHeight]=\"selectField.dropdownMaxHeight || SelectDefaults.dropdownMaxHeight\"\n [typeaheadDebounce]=\"selectField.typeaheadDebounce || SelectDefaults.typeaheadDebounce\"\n [shouldAutoSearch]=\"selectField.shouldAutoSearch || SelectDefaults.shouldAutoSearch\" [parentValue]=\"selectField.parentValue\"\n [shouldCloseOnOutsideClick]=\"selectField.shouldCloseOnOutsideClick || SelectDefaults.shouldCloseOnOutsideClick\"\n [selectedValues]=\"formControl.value\" (selectedIds)=\"setControlValue($event)\" (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"></upd-select-multiple>\n }\n @case (DynamicFieldType.Label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n @case (DynamicFieldType.TextArea) {\n <upd-textarea [name]=\"field().name\" [label]=\"field().label\" [placeholder]=\"field().placeholder\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [isDisabled]=\"field().isDisabled || false\"\n [value]=\"formControl.value\" [customClasses]=\"textareaField.customClasses\" [wrapperClasses]=\"textareaField.wrapperClasses\"\n [maxLength]=\"textareaField.maxLength\" [rows]=\"textareaField.rows\"\n [displayCharactersCount]=\"textareaField.displayCharactersCount || false\" (valueChange)=\"setControlValue($event)\"\n (focus)=\"onFocus()\" (blur)=\"onBlur()\" (input)=\"onInput($event)\" (keydown.enter)=\"onInputEnter()\">\n </upd-textarea>\n }\n @case (DynamicFieldType.FileUpload) {\n <upd-file-upload [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [isDisabled]=\"field().isDisabled || false\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\" [fileName]=\"fileNameControl?.value\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [allowFilesDrop]=\"fileUploadField.allowFilesDrop || false\"\n [title]=\"fileUploadField.title\" [labelColSize]=\"field().labelColSize\" [minFileSize]=\"fileUploadField.minFileSize\"\n [isMultiple]=\"fileUploadField.isMultiple || false\" [allowedExtensions]=\"fileUploadField.allowedExtensions || '*'\"\n [maxFileSize]=\"fileUploadField.maxFileSize\" [layout]=\"layout()\" (fileChanged)=\"handleFileSelected($event)\" (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"></upd-file-upload>\n }\n @case (DynamicFieldType.MaskedInput) {\n <upd-input [name]=\"field().name\" [label]=\"field().label\" [placeholder]=\"field().placeholder\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\" [mask]=\"maskedField.mask\"\n [maskConfig]=\"maskedField.maskConfig\" [validationStatusDescriptions]=\"validationStatusDescriptions\" [layout]=\"layout()\"\n [isDisabled]=\"field().isDisabled || false\" [type]=\"inputField.inputType || 'text'\" [labelColSize]=\"field().labelColSize\"\n [value]=\"formControl.value\" (valueChange)=\"setControlValue($event)\" (blurred)=\"onBlur()\" (keyUpEnter)=\"onInputEnter()\"\n (focus)=\"onFocus()\" (input)=\"onInput($event)\">\n @if (!!inputField.prefix) {\n <ng-template updInputPrepend>\n {{ textService.getText(inputField.prefix) }}\n </ng-template>\n }\n\n @if (!!inputField.suffix) {\n <ng-template updInputAppend>\n {{ textService.getText(inputField.suffix) }}\n </ng-template>\n }\n </upd-input>\n }\n @case (DynamicFieldType.Button) {\n <upd-button [text]=\"field().label\" [isDisabled]=\"field().isDisabled || false\" [model]=\"buttonField.model\" />\n }\n @case (DynamicFieldType.ButtonGroup) {\n @if (!!field().label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n\n <div class=\"btn-group\" role=\"group\">\n @for (btn of buttonGroupField.buttons; track btn) {\n <upd-button [model]=\"btn\" [isDisabled]=\"field().isDisabled || false\" />\n }\n </div>\n }\n}\n", styles: [""], dependencies: [{ kind: "component", type: i1.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title"], outputs: ["clicked"] }, { kind: "component", type: i2.InputComponent, selector: "upd-input", inputs: ["type", "mask", "maskConfig", "value", "size", "customClasses", "wrapperClasses", "maxLength", "isPlainText", "isReadOnly", "isLoading", "isRound", "isFlush", "isInputGroupFlat", "isPrependButton", "isAppendButton", "isFloating", "loaderPosition", "prependIconModel", "appendIconModel", "isValidationStatusLight", "layout"], outputs: ["valueChange", "blurred", "keyDown", "keyDownEsc", "keyUpEnter"] }, { kind: "directive", type: i2.InputAppendDirective, selector: "ng-template[updInputAppend]" }, { kind: "directive", type: i2.InputPrependDirective, selector: "ng-template[updInputPrepend]" }, { kind: "component", type: i3.CheckboxComponent, selector: "upd-checkbox", inputs: ["wrapperClasses", "value", "customClasses", "isChecked", "isInline", "isSwitch", "isIndeterminate"], outputs: ["changed", "isCheckedChange", "isIndeterminateChange"] }, { kind: "component", type: i4.RadioComponent, selector: "upd-radio", inputs: ["wrapperClasses", "value", "customClasses", "isChecked", "isInline"], outputs: ["selected"] }, { kind: "component", type: i5.SelectComponent, selector: "upd-select", inputs: ["useSystemStyle", "shouldShowClearButton", "shouldTruncateSelectedText", "isCompact", "value"], outputs: ["valueChange", "selectedItem"] }, { kind: "component", type: i5.SelectMultipleComponent, selector: "upd-select-multiple", inputs: ["selectedValues"], outputs: ["selectedItems", "selectedIds"] }, { kind: "component", type: i6.TextareaComponent, selector: "upd-textarea", inputs: ["value", "customClasses", "wrapperClasses", "maxLength", "rows", "displayCharactersCount"], outputs: ["valueChange"] }, { kind: "component", type: i7.FileUploadComponent, selector: "upd-file-upload", inputs: ["fileName", "title", "allowFilesDrop", "isMultiple", "allowedExtensions", "minFileSize", "maxFileSize", "layout"], outputs: ["fileChanged"] }] }); }
|
|
169
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: DynamicFieldComponent, selector: "upd-dynamic-field", inputs: { formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: true, isRequired: true, transformFunction: null }, field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { submitForm: "submitForm" }, host: { properties: { "class": "this.hostClasses" } }, usesInheritance: true, ngImport: i0, template: "@switch (field().type) {\n @case (DynamicFieldType.Input) {\n <upd-input [name]=\"field().name\" [label]=\"field().label\" [placeholder]=\"field().placeholder\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [layout]=\"layout()\" [isDisabled]=\"field().isDisabled || false\"\n [type]=\"inputField.inputType || 'text'\" [labelColSize]=\"field().labelColSize\" [value]=\"formControl.value\"\n (valueChange)=\"setControlValue($event)\" (blurred)=\"onBlur()\" (keyUpEnter)=\"onInputEnter()\" (focus)=\"onFocus()\"\n (input)=\"onInput($event)\">\n @if (!!inputField.prefix) {\n <ng-template updInputPrepend>\n {{ textService.getText(inputField.prefix) }}\n </ng-template>\n }\n\n @if (!!inputField.suffix) {\n <ng-template updInputAppend>\n {{ textService.getText(inputField.suffix) }}\n </ng-template>\n }\n </upd-input>\n }\n @case (DynamicFieldType.Checkbox) {\n <upd-checkbox [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"true\"\n [isDisabled]=\"field().isDisabled || false\" [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\"\n [isSwitch]=\"checkboxField.isSwitch || false\" (changed)=\"setControlValue($event)\" (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"></upd-checkbox>\n }\n @case (DynamicFieldType.CheckboxGroup) {\n @if (!!field().label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n\n @for (option of checkboxGroupOptionsKeys; track option) {\n <upd-checkbox [name]=\"field().name\" [label]=\"getOptionDescription(option, 'checkbox')\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"option\" [isDisabled]=\"field().isDisabled || false\"\n [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\" [isSwitch]=\"checkboxField.isSwitch || false\"\n (changed)=\"setControlValue(option)\" (focus)=\"onFocus()\" (blur)=\"onBlur()\"></upd-checkbox>\n }\n }\n @case (DynamicFieldType.Radio) {\n <upd-radio [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"true\"\n [isChecked]=\"formControl.value\" [isDisabled]=\"field().isDisabled || false\" [isInline]=\"radioField.isInline || false\"\n (selected)=\"setControlValue($event)\" (focus)=\"onFocus()\" (blur)=\"onBlur()\">\n </upd-radio>\n }\n @case (DynamicFieldType.RadioGroup) {\n @if (!!field().label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n\n @for (option of radioGroupOptionsKeys; track option) {\n <upd-radio [name]=\"field().name\" [label]=\"getOptionDescription(option, 'radio')\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"option\" [isDisabled]=\"field().isDisabled || false\"\n [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\"\n (selected)=\"setControlValue(option)\" (focus)=\"onFocus()\" (blur)=\"onBlur()\"></upd-radio>\n }\n }\n @case (DynamicFieldType.Select) {\n <upd-select [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\"\n [useSystemStyle]=\"singleSelectField.useSystemStyle || false\" [isDisabled]=\"field().isDisabled || false\"\n [items]=\"selectField.items\" [layout]=\"layout()\" [labelColSize]=\"field().labelColSize\" [store]=\"selectField.store!\"\n [observable]=\"selectField.observable\" [itemKey]=\"selectField.itemKey\" [itemValue]=\"selectField.itemValue\"\n [dropdownMaxHeight]=\"selectField.dropdownMaxHeight || SelectDefaults.dropdownMaxHeight\"\n [typeaheadDebounce]=\"selectField.typeaheadDebounce || SelectDefaults.typeaheadDebounce\"\n [shouldAutoSearch]=\"selectField.shouldAutoSearch || SelectDefaults.shouldAutoSearch\"\n [shouldCloseOnOutsideClick]=\"selectField.shouldCloseOnOutsideClick || SelectDefaults.shouldCloseOnOutsideClick\"\n [shouldTruncateSelectedText]=\"selectField.shouldTruncateSelectedText\" [parentValue]=\"selectField.parentValue\"\n [value]=\"formControl.value\" (selectedItem)=\"setControlValue($event?.value)\" (focus)=\"onFocus()\" (blur)=\"onBlur()\"></upd-select>\n }\n @case (DynamicFieldType.SelectMultiple) {\n <upd-select-multiple [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [isDisabled]=\"field().isDisabled || false\"\n [items]=\"selectField.items\" [layout]=\"layout()\" [labelColSize]=\"field().labelColSize\" [store]=\"selectField.store!\"\n [observable]=\"selectField.observable\" [itemKey]=\"selectField.itemKey\" [itemValue]=\"selectField.itemValue\"\n [dropdownMaxHeight]=\"selectField.dropdownMaxHeight || SelectDefaults.dropdownMaxHeight\"\n [typeaheadDebounce]=\"selectField.typeaheadDebounce || SelectDefaults.typeaheadDebounce\"\n [shouldAutoSearch]=\"selectField.shouldAutoSearch || SelectDefaults.shouldAutoSearch\" [parentValue]=\"selectField.parentValue\"\n [shouldCloseOnOutsideClick]=\"selectField.shouldCloseOnOutsideClick || SelectDefaults.shouldCloseOnOutsideClick\"\n [selectedValues]=\"formControl.value\" (selectedIds)=\"setControlValue($event)\" (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"></upd-select-multiple>\n }\n @case (DynamicFieldType.Label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n @case (DynamicFieldType.TextArea) {\n <upd-textarea [name]=\"field().name\" [label]=\"field().label\" [placeholder]=\"field().placeholder\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [isDisabled]=\"field().isDisabled || false\"\n [value]=\"formControl.value\" [customClasses]=\"textareaField.customClasses\" [wrapperClasses]=\"textareaField.wrapperClasses\"\n [maxLength]=\"textareaField.maxLength\" [rows]=\"textareaField.rows\"\n [displayCharactersCount]=\"textareaField.displayCharactersCount || false\" (valueChange)=\"setControlValue($event)\"\n (focus)=\"onFocus()\" (blur)=\"onBlur()\" (input)=\"onInput($event)\" (keydown.enter)=\"onInputEnter()\">\n </upd-textarea>\n }\n @case (DynamicFieldType.FileUpload) {\n <upd-file-upload [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [isDisabled]=\"field().isDisabled || false\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\" [fileName]=\"fileNameControl?.value\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [allowFilesDrop]=\"fileUploadField.allowFilesDrop || false\"\n [title]=\"fileUploadField.title\" [labelColSize]=\"field().labelColSize\" [minFileSize]=\"fileUploadField.minFileSize\"\n [isMultiple]=\"fileUploadField.isMultiple || false\" [allowedExtensions]=\"fileUploadField.allowedExtensions || '*'\"\n [maxFileSize]=\"fileUploadField.maxFileSize\" [layout]=\"layout()\" (fileChanged)=\"handleFileSelected($event)\" (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"></upd-file-upload>\n }\n @case (DynamicFieldType.MaskedInput) {\n <upd-input [name]=\"field().name\" [label]=\"field().label\" [placeholder]=\"field().placeholder\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\" [mask]=\"maskedField.mask\"\n [maskConfig]=\"maskedField.maskConfig\" [validationStatusDescriptions]=\"validationStatusDescriptions\" [layout]=\"layout()\"\n [isDisabled]=\"field().isDisabled || false\" [type]=\"inputField.inputType || 'text'\" [labelColSize]=\"field().labelColSize\"\n [value]=\"formControl.value\" (valueChange)=\"setControlValue($event)\" (blurred)=\"onBlur()\" (keyUpEnter)=\"onInputEnter()\"\n (focus)=\"onFocus()\" (input)=\"onInput($event)\">\n @if (!!inputField.prefix) {\n <ng-template updInputPrepend>\n {{ textService.getText(inputField.prefix) }}\n </ng-template>\n }\n\n @if (!!inputField.suffix) {\n <ng-template updInputAppend>\n {{ textService.getText(inputField.suffix) }}\n </ng-template>\n }\n </upd-input>\n }\n @case (DynamicFieldType.Button) {\n <upd-button [text]=\"field().label\" [isDisabled]=\"field().isDisabled || false\" [model]=\"buttonField.model\" />\n }\n @case (DynamicFieldType.ButtonGroup) {\n @if (!!field().label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n\n <div class=\"btn-group\" role=\"group\">\n @for (btn of buttonGroupField.buttons; track btn) {\n <upd-button [model]=\"btn\" [isDisabled]=\"field().isDisabled || false\" />\n }\n </div>\n }\n}\n", styles: [""], dependencies: [{ kind: "component", type: i1.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title", "stopPropagation"], outputs: ["clicked"] }, { kind: "component", type: i2.InputComponent, selector: "upd-input", inputs: ["type", "mask", "maskConfig", "value", "size", "customClasses", "wrapperClasses", "maxLength", "isPlainText", "isReadOnly", "isLoading", "isRound", "isFlush", "isInputGroupFlat", "isPrependButton", "isAppendButton", "isFloating", "loaderPosition", "prependIconModel", "appendIconModel", "isValidationStatusLight", "layout"], outputs: ["valueChange", "blurred", "keyDown", "keyDownEsc", "keyUpEnter"] }, { kind: "directive", type: i2.InputAppendDirective, selector: "ng-template[updInputAppend]" }, { kind: "directive", type: i2.InputPrependDirective, selector: "ng-template[updInputPrepend]" }, { kind: "component", type: i3.CheckboxComponent, selector: "upd-checkbox", inputs: ["wrapperClasses", "value", "customClasses", "isChecked", "isInline", "isSwitch", "isIndeterminate"], outputs: ["changed", "isCheckedChange", "isIndeterminateChange"] }, { kind: "component", type: i4.RadioComponent, selector: "upd-radio", inputs: ["wrapperClasses", "value", "customClasses", "isChecked", "isInline"], outputs: ["selected"] }, { kind: "component", type: i5.SelectComponent, selector: "upd-select", inputs: ["useSystemStyle", "shouldShowClearButton", "shouldTruncateSelectedText", "isCompact", "value"], outputs: ["valueChange", "selectedItem"] }, { kind: "component", type: i5.SelectMultipleComponent, selector: "upd-select-multiple", inputs: ["selectedValues"], outputs: ["selectedItems", "selectedIds"] }, { kind: "component", type: i6.TextareaComponent, selector: "upd-textarea", inputs: ["value", "customClasses", "wrapperClasses", "maxLength", "rows", "displayCharactersCount"], outputs: ["valueChange"] }, { kind: "component", type: i7.FileUploadComponent, selector: "upd-file-upload", inputs: ["fileName", "title", "allowFilesDrop", "isMultiple", "allowedExtensions", "minFileSize", "maxFileSize", "layout"], outputs: ["fileChanged"] }] }); }
|
|
170
170
|
}
|
|
171
171
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DynamicFieldComponent, decorators: [{
|
|
172
172
|
type: Component,
|
|
@@ -165,7 +165,7 @@ export class FormComponent extends BaseComponent {
|
|
|
165
165
|
});
|
|
166
166
|
}
|
|
167
167
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
168
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: FormComponent, selector: "upd-form", inputs: { rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: true, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, hasActionsSection: { classPropertyName: "hasActionsSection", publicName: "hasActionsSection", isSignal: true, isRequired: false, transformFunction: null }, isCard: { classPropertyName: "isCard", publicName: "isCard", isSignal: true, isRequired: false, transformFunction: null }, isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, isSaving: { classPropertyName: "isSaving", publicName: "isSaving", isSignal: true, isRequired: false, transformFunction: null }, formData: { classPropertyName: "formData", publicName: "formData", isSignal: true, isRequired: false, transformFunction: null }, formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { initialized: "initialized", dataLoaded: "dataLoaded", submitted: "submitted", formData: "formDataChange", formGroup: "formGroupChange" }, usesInheritance: true, ngImport: i0, template: "<ng-container *transloco=\"let t; prefix: 'UpDevs.Form'\">\n <div [class.card]=\"isCard()\">\n @if (!!titleText) {\n <div [class.card-header]=\"isCard()\">\n <h3 [class.card-title]=\"isCard()\">{{ titleText }}</h3>\n </div>\n }\n <div [class.card-body]=\"isCard()\">\n @for (row of rows(); track row; let isFirst = $first) {\n <div class=\"row\" [class.mt-4]=\"!isFirst\">\n @if (!!row.title) {\n <div class=\"card-title col-12\">{{ textService.getText(row.title) }}</div>\n }\n\n @for (field of row.fields; track field.name) {\n @if (!field.isHidden) {\n <upd-dynamic-field [layout]=\"layout()\" [field]=\"field\" [formGroup]=\"formGroup()\" (submitForm)=\"submit()\">\n </upd-dynamic-field>\n }\n }\n </div>\n }\n </div>\n\n @if (hasActionsSection()) {\n <div [class.card-footer]=\"isCard()\" [class.mt-4]=\"!isCard()\">\n <upd-button colorStyle=\"primary\" (clicked)=\"submit()\">\n {{ t('Submit') }}\n </upd-button>\n </div>\n }\n </div>\n</ng-container>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i2.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title"], outputs: ["clicked"] }, { kind: "directive", type: i3.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: i4.DynamicFieldComponent, selector: "upd-dynamic-field", inputs: ["formGroup", "field", "layout"], outputs: ["submitForm"] }] }); }
|
|
168
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: FormComponent, selector: "upd-form", inputs: { rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: true, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, hasActionsSection: { classPropertyName: "hasActionsSection", publicName: "hasActionsSection", isSignal: true, isRequired: false, transformFunction: null }, isCard: { classPropertyName: "isCard", publicName: "isCard", isSignal: true, isRequired: false, transformFunction: null }, isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, isSaving: { classPropertyName: "isSaving", publicName: "isSaving", isSignal: true, isRequired: false, transformFunction: null }, formData: { classPropertyName: "formData", publicName: "formData", isSignal: true, isRequired: false, transformFunction: null }, formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { initialized: "initialized", dataLoaded: "dataLoaded", submitted: "submitted", formData: "formDataChange", formGroup: "formGroupChange" }, usesInheritance: true, ngImport: i0, template: "<ng-container *transloco=\"let t; prefix: 'UpDevs.Form'\">\n <div [class.card]=\"isCard()\">\n @if (!!titleText) {\n <div [class.card-header]=\"isCard()\">\n <h3 [class.card-title]=\"isCard()\">{{ titleText }}</h3>\n </div>\n }\n <div [class.card-body]=\"isCard()\">\n @for (row of rows(); track row; let isFirst = $first) {\n <div class=\"row\" [class.mt-4]=\"!isFirst\">\n @if (!!row.title) {\n <div class=\"card-title col-12\">{{ textService.getText(row.title) }}</div>\n }\n\n @for (field of row.fields; track field.name) {\n @if (!field.isHidden) {\n <upd-dynamic-field [layout]=\"layout()\" [field]=\"field\" [formGroup]=\"formGroup()\" (submitForm)=\"submit()\">\n </upd-dynamic-field>\n }\n }\n </div>\n }\n </div>\n\n @if (hasActionsSection()) {\n <div [class.card-footer]=\"isCard()\" [class.mt-4]=\"!isCard()\">\n <upd-button colorStyle=\"primary\" (clicked)=\"submit()\">\n {{ t('Submit') }}\n </upd-button>\n </div>\n }\n </div>\n</ng-container>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i2.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title", "stopPropagation"], outputs: ["clicked"] }, { kind: "directive", type: i3.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: i4.DynamicFieldComponent, selector: "upd-dynamic-field", inputs: ["formGroup", "field", "layout"], outputs: ["submitForm"] }] }); }
|
|
169
169
|
}
|
|
170
170
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FormComponent, decorators: [{
|
|
171
171
|
type: Component,
|
|
@@ -98,7 +98,7 @@ export class DatePickerComponent extends BaseComponent {
|
|
|
98
98
|
this.renderer.setStyle(ddElement, 'left', 0, RendererStyleFlags2.Important);
|
|
99
99
|
}
|
|
100
100
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DatePickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
101
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: DatePickerComponent, selector: "upd-date-picker", inputs: { shouldCloseOnOutsideClick: "shouldCloseOnOutsideClick", shouldCloseOnSelectionFinished: "shouldCloseOnSelectionFinished", minDate: "minDate", maxDate: "maxDate", startAt: "startAt", dateFilter: "dateFilter", isRange: "isRange" }, outputs: { selected: "selected" }, viewQueries: [{ propertyName: "componentBox", first: true, predicate: ["componentBox"], descendants: true, read: ElementRef }, { propertyName: "calendarWrapper", first: true, predicate: ["calendarWrapper"], descendants: true, read: ElementRef }, { propertyName: "calendarComponent", first: true, predicate: ["calendar"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"dropdown\">\n <div #componentBox class=\"input-group input-group-flat\">\n <div class=\"form-control\" [class.remove-bottom-radius]=\"isDropdownOpen\" [class.is-range]=\"isRange\">\n @if (isRange) {\n <div class=\"d-flex flex-row align-items-center date-range-container styled\">\n <input type=\"text\" class=\"form-control-plaintext date-range-input\" [value]=\"startDate\" readonly>\n <span class=\"date-range-separator\">-</span>\n <input type=\"text\" class=\"form-control-plaintext date-range-input\" [value]=\"endDate\" readonly>\n </div>\n } @else {\n <upd-input [value]=\"selectedDate\" (valueChange)=\"updateSelectedDate($event)\" customClasses=\"date-input\"\n [isPlainText]=\"true\">\n </upd-input>\n }\n </div>\n <div class=\"input-group-text\" [class.remove-bottom-radius]=\"isDropdownOpen\">\n @if (hasSelectedData) {\n <upd-button [shouldIgnoreBtnClass]=\"true\" (clicked)=\"clearSelection()\" customClasses=\"link-secondary\">\n <upd-icon [model]=\"{tablerIcon:'x'}\"></upd-icon>\n </upd-button>\n }\n <upd-button [shouldIgnoreBtnClass]=\"true\" (clicked)=\"openDropdown()\" customClasses=\"link-secondary ms-2\">\n <upd-icon [model]=\"{tablerIcon:'calendar'}\"></upd-icon>\n </upd-button>\n </div>\n </div>\n <div #calendarWrapper class=\"dropdown-content remove-top-radius\" [style.display]=\"isDropdownOpen ? 'block' : 'none'\">\n <upd-calendar #calendar [id]=\"id\" [minDate]=\"minDate\" [maxDate]=\"maxDate\" [selectedStartDate]=\"startAt\"\n [disabledDatesFilter]=\"dateFilter\" [isRange]=\"isRange\" [shouldRemoveExternalBorder]=\"true\"\n (selected)=\"handleUserSelection($event)\">\n </upd-calendar>\n </div>\n</div>\n", styles: [".dropdown-content{position:absolute!important;background-color:var(--upd-card-bg);z-index:1;border:var(--upd-card-border-width) solid var(--upd-card-border-color)!important;border-radius:var(--upd-card-border-radius)!important;box-shadow:0 1px 1px #0000002e;width:350px!important}.remove-bottom-radius{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.remove-top-radius{border-top-left-radius:0!important;border-top-right-radius:0!important}::ng-deep .date-input{padding:0!important;width:80px!important}.is-range{padding:0!important}.date-range-container{padding:.375rem .75rem;min-height:calc(1em + .75rem + 2px)}.date-range-input{flex:1;border:none;background:transparent;padding:0;margin:0;box-shadow:none;outline:none;font-size:.875rem;color:var(--bs-body-color)}.date-range-input:focus{outline:none;box-shadow:none}.date-range-input::placeholder{color:var(--bs-secondary);opacity:.7}.date-range-input:placeholder-shown{color:var(--bs-secondary)}.date-range-separator{padding:0;color:var(--bs-secondary);font-weight:500;flex-shrink:0}.date-range-container.styled .date-range-input{background-color:var(--upd-bg-surface-tertiary);border:1px solid var(--upd-active-bg);border-radius:var(--bs-border-radius-sm, .25rem);padding:.25rem .5rem}.date-range-container.styled .date-range-input:first-child{margin-right:.25rem}.date-range-container.styled .date-range-input:last-child{margin-left:.25rem}.date-range-container.styled .date-range-separator{padding:0 .25rem}\n"], dependencies: [{ kind: "component", type: i1.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title"], outputs: ["clicked"] }, { kind: "component", type: i2.CalendarComponent, selector: "upd-calendar", inputs: ["selectedDate", "selectedStartDate", "selectedEndDate", "minDate", "maxDate", "disabledDatesFilter", "isRange", "shouldRemoveExternalBorder"], outputs: ["selected", "monthChanged"] }, { kind: "component", type: i3.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "component", type: i4.InputComponent, selector: "upd-input", inputs: ["type", "mask", "maskConfig", "value", "size", "customClasses", "wrapperClasses", "maxLength", "isPlainText", "isReadOnly", "isLoading", "isRound", "isFlush", "isInputGroupFlat", "isPrependButton", "isAppendButton", "isFloating", "loaderPosition", "prependIconModel", "appendIconModel", "isValidationStatusLight", "layout"], outputs: ["valueChange", "blurred", "keyDown", "keyDownEsc", "keyUpEnter"] }] }); }
|
|
101
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: DatePickerComponent, selector: "upd-date-picker", inputs: { shouldCloseOnOutsideClick: "shouldCloseOnOutsideClick", shouldCloseOnSelectionFinished: "shouldCloseOnSelectionFinished", minDate: "minDate", maxDate: "maxDate", startAt: "startAt", dateFilter: "dateFilter", isRange: "isRange" }, outputs: { selected: "selected" }, viewQueries: [{ propertyName: "componentBox", first: true, predicate: ["componentBox"], descendants: true, read: ElementRef }, { propertyName: "calendarWrapper", first: true, predicate: ["calendarWrapper"], descendants: true, read: ElementRef }, { propertyName: "calendarComponent", first: true, predicate: ["calendar"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"dropdown\">\n <div #componentBox class=\"input-group input-group-flat\">\n <div class=\"form-control\" [class.remove-bottom-radius]=\"isDropdownOpen\" [class.is-range]=\"isRange\">\n @if (isRange) {\n <div class=\"d-flex flex-row align-items-center date-range-container styled\">\n <input type=\"text\" class=\"form-control-plaintext date-range-input\" [value]=\"startDate\" readonly>\n <span class=\"date-range-separator\">-</span>\n <input type=\"text\" class=\"form-control-plaintext date-range-input\" [value]=\"endDate\" readonly>\n </div>\n } @else {\n <upd-input [value]=\"selectedDate\" (valueChange)=\"updateSelectedDate($event)\" customClasses=\"date-input\"\n [isPlainText]=\"true\">\n </upd-input>\n }\n </div>\n <div class=\"input-group-text\" [class.remove-bottom-radius]=\"isDropdownOpen\">\n @if (hasSelectedData) {\n <upd-button [shouldIgnoreBtnClass]=\"true\" (clicked)=\"clearSelection()\" customClasses=\"link-secondary\">\n <upd-icon [model]=\"{tablerIcon:'x'}\"></upd-icon>\n </upd-button>\n }\n <upd-button [shouldIgnoreBtnClass]=\"true\" (clicked)=\"openDropdown()\" customClasses=\"link-secondary ms-2\">\n <upd-icon [model]=\"{tablerIcon:'calendar'}\"></upd-icon>\n </upd-button>\n </div>\n </div>\n <div #calendarWrapper class=\"dropdown-content remove-top-radius\" [style.display]=\"isDropdownOpen ? 'block' : 'none'\">\n <upd-calendar #calendar [id]=\"id\" [minDate]=\"minDate\" [maxDate]=\"maxDate\" [selectedStartDate]=\"startAt\"\n [disabledDatesFilter]=\"dateFilter\" [isRange]=\"isRange\" [shouldRemoveExternalBorder]=\"true\"\n (selected)=\"handleUserSelection($event)\">\n </upd-calendar>\n </div>\n</div>\n", styles: [".dropdown-content{position:absolute!important;background-color:var(--upd-card-bg);z-index:1;border:var(--upd-card-border-width) solid var(--upd-card-border-color)!important;border-radius:var(--upd-card-border-radius)!important;box-shadow:0 1px 1px #0000002e;width:350px!important}.remove-bottom-radius{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.remove-top-radius{border-top-left-radius:0!important;border-top-right-radius:0!important}::ng-deep .date-input{padding:0!important;width:80px!important}.is-range{padding:0!important}.date-range-container{padding:.375rem .75rem;min-height:calc(1em + .75rem + 2px)}.date-range-input{flex:1;border:none;background:transparent;padding:0;margin:0;box-shadow:none;outline:none;font-size:.875rem;color:var(--bs-body-color)}.date-range-input:focus{outline:none;box-shadow:none}.date-range-input::placeholder{color:var(--bs-secondary);opacity:.7}.date-range-input:placeholder-shown{color:var(--bs-secondary)}.date-range-separator{padding:0;color:var(--bs-secondary);font-weight:500;flex-shrink:0}.date-range-container.styled .date-range-input{background-color:var(--upd-bg-surface-tertiary);border:1px solid var(--upd-active-bg);border-radius:var(--bs-border-radius-sm, .25rem);padding:.25rem .5rem}.date-range-container.styled .date-range-input:first-child{margin-right:.25rem}.date-range-container.styled .date-range-input:last-child{margin-left:.25rem}.date-range-container.styled .date-range-separator{padding:0 .25rem}\n"], dependencies: [{ kind: "component", type: i1.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title", "stopPropagation"], outputs: ["clicked"] }, { kind: "component", type: i2.CalendarComponent, selector: "upd-calendar", inputs: ["selectedDate", "selectedStartDate", "selectedEndDate", "minDate", "maxDate", "disabledDatesFilter", "isRange", "shouldRemoveExternalBorder"], outputs: ["selected", "monthChanged"] }, { kind: "component", type: i3.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "component", type: i4.InputComponent, selector: "upd-input", inputs: ["type", "mask", "maskConfig", "value", "size", "customClasses", "wrapperClasses", "maxLength", "isPlainText", "isReadOnly", "isLoading", "isRound", "isFlush", "isInputGroupFlat", "isPrependButton", "isAppendButton", "isFloating", "loaderPosition", "prependIconModel", "appendIconModel", "isValidationStatusLight", "layout"], outputs: ["valueChange", "blurred", "keyDown", "keyDownEsc", "keyUpEnter"] }] }); }
|
|
102
102
|
}
|
|
103
103
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DatePickerComponent, decorators: [{
|
|
104
104
|
type: Component,
|
|
@@ -163,7 +163,7 @@ export class FileUploadComponent extends BaseControl {
|
|
|
163
163
|
return errors;
|
|
164
164
|
}
|
|
165
165
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FileUploadComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
166
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: FileUploadComponent, selector: "upd-file-upload", inputs: { fileName: { classPropertyName: "fileName", publicName: "fileName", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, allowFilesDrop: { classPropertyName: "allowFilesDrop", publicName: "allowFilesDrop", isSignal: true, isRequired: false, transformFunction: null }, isMultiple: { classPropertyName: "isMultiple", publicName: "isMultiple", isSignal: true, isRequired: false, transformFunction: null }, allowedExtensions: { classPropertyName: "allowedExtensions", publicName: "allowedExtensions", isSignal: true, isRequired: false, transformFunction: null }, minFileSize: { classPropertyName: "minFileSize", publicName: "minFileSize", isSignal: true, isRequired: false, transformFunction: null }, maxFileSize: { classPropertyName: "maxFileSize", publicName: "maxFileSize", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { fileChanged: "fileChanged" }, host: { properties: { "class": "this.hostWrapperClasses" } }, usesInheritance: true, ngImport: i0, template: "<input class=\"d-none\" [attr.id]=\"name()\" [attr.name]=\"name()\" type=\"file\" [attr.multiple]=\"isMultiple() ? true : undefined\"\n [accept]=\"allowedExtensions()\" (change)=\"onFileChange($event)\" />\n\n<div class=\"row\">\n <ng-container *transloco=\"let t; prefix: 'UpDevs.FormControls.FileUpload'\">\n @if (!!labelText) {\n <div [ngClass]=\"labelSizeClasses()\">\n <label [class.required]=\"isRequired()\">{{ labelText }}</label>\n\n @if (!!hintText || !!this.hintTemplate()) {\n <ng-template [ngTemplateOutlet]=\"hintTpl\"></ng-template>\n }\n </div>\n }\n\n @if (supportsAdvancedUpload && allowFilesDrop()) {\n <div class=\"d-flex flex-column border rounded-2 p-2 w-100 h-100\" [ngClass]=\"validationStatusBorderClass()\"\n [class.bg-muted-lt]=\"!isOver()\" [class.bg-primary-lt]=\"isOver()\" (drag)=\"onDrag($event)\" (dragstart)=\"onDragStart($event)\"\n (dragend)=\"onDragEnd($event)\" (dragover)=\"onDragOver($event)\" (dragenter)=\"onDragEnter($event)\"\n (dragleave)=\"onDragLeave($event)\" (drop)=\"onDrop($event)\">\n @if (!!titleText) {\n <span class=\"fw-bold align-self-center cursor-pointer\" [innerHTML]=\"titleText\"></span>\n }\n\n <label [for]=\"name()\" class=\"text-secondary align-self-center cursor-pointer\" [innerHTML]=\"dropDescriptionText\"></label>\n\n @if (!labelText && (!!hintText || !!this.hintTemplate())) {\n <ng-template [ngTemplateOutlet]=\"hintTpl\"></ng-template>\n }\n </div>\n } @else {\n @if (!labelText && (!!hintText || !!this.hintTemplate())) {\n <div class=\"row g-2\">\n <div class=\"col\">\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n </div>\n <div class=\"col-auto align-self-center\">\n <ng-template [ngTemplateOutlet]=\"hintTpl\"></ng-template>\n </div>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n }\n }\n @if (validationStatus() === 'invalid' && errorsList().length > 0) {\n @for (desc of errorsList(); track desc) {\n <div class=\"invalid-feedback\">{{ desc }}</div>\n }\n }\n\n <ng-template #inputTpl>\n <div class=\"input-group col\">\n <label class=\"input-group-text cursor-pointer\" [ngClass]=\"validationStatusBorderClass()\" [for]=\"name()\">\n {{ t('SelectFile', { isMultiple: isMultiple() }) }}\n </label>\n <input type=\"text\" class=\"form-control text-truncate\" [class.border-end-0]=\"!!firstFileName()\"\n [value]=\"firstFileName() || ''\"\n [ngClass]=\"validationStatusClass()\" placeholder=\"{{ t('NoFileSelected', { isMultiple: isMultiple() }) }}\"\n [attr.disabled]=\"isDisabled() || undefined\" readonly>\n\n @if (!!firstFileName()) {\n <div class=\"input-group-text bg-transparent\" [ngClass]=\"validationStatusBorderClass()\">\n <upd-button [shouldIgnoreBtnClass]=\"true\" (clicked)=\"removeFile()\" customClasses=\"link-secondary cursor-pointer\">\n <upd-icon tablerIcon=\"trash\" [tablerIconSize]=\"18\"></upd-icon>\n </upd-button>\n </div>\n }\n </div>\n </ng-template>\n </ng-container>\n</div>\n\n<ng-template #hintTpl>\n <span class=\"form-help ms-2\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\" [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: i3.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title"], outputs: ["clicked"] }, { kind: "component", type: i4.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "directive", type: i5.PopoverDirective, selector: "[updPopover]", inputs: ["updPopover", "updPopoverTitle", "updPopoverTitleTemplate", "updPopoverTemplate", "updPopoverPlacement", "updPopoverCustomClasses", "updPopoverActAsTooltip"] }] }); }
|
|
166
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: FileUploadComponent, selector: "upd-file-upload", inputs: { fileName: { classPropertyName: "fileName", publicName: "fileName", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, allowFilesDrop: { classPropertyName: "allowFilesDrop", publicName: "allowFilesDrop", isSignal: true, isRequired: false, transformFunction: null }, isMultiple: { classPropertyName: "isMultiple", publicName: "isMultiple", isSignal: true, isRequired: false, transformFunction: null }, allowedExtensions: { classPropertyName: "allowedExtensions", publicName: "allowedExtensions", isSignal: true, isRequired: false, transformFunction: null }, minFileSize: { classPropertyName: "minFileSize", publicName: "minFileSize", isSignal: true, isRequired: false, transformFunction: null }, maxFileSize: { classPropertyName: "maxFileSize", publicName: "maxFileSize", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { fileChanged: "fileChanged" }, host: { properties: { "class": "this.hostWrapperClasses" } }, usesInheritance: true, ngImport: i0, template: "<input class=\"d-none\" [attr.id]=\"name()\" [attr.name]=\"name()\" type=\"file\" [attr.multiple]=\"isMultiple() ? true : undefined\"\n [accept]=\"allowedExtensions()\" (change)=\"onFileChange($event)\" />\n\n<div class=\"row\">\n <ng-container *transloco=\"let t; prefix: 'UpDevs.FormControls.FileUpload'\">\n @if (!!labelText) {\n <div [ngClass]=\"labelSizeClasses()\">\n <label [class.required]=\"isRequired()\">{{ labelText }}</label>\n\n @if (!!hintText || !!this.hintTemplate()) {\n <ng-template [ngTemplateOutlet]=\"hintTpl\"></ng-template>\n }\n </div>\n }\n\n @if (supportsAdvancedUpload && allowFilesDrop()) {\n <div class=\"d-flex flex-column border rounded-2 p-2 w-100 h-100\" [ngClass]=\"validationStatusBorderClass()\"\n [class.bg-muted-lt]=\"!isOver()\" [class.bg-primary-lt]=\"isOver()\" (drag)=\"onDrag($event)\" (dragstart)=\"onDragStart($event)\"\n (dragend)=\"onDragEnd($event)\" (dragover)=\"onDragOver($event)\" (dragenter)=\"onDragEnter($event)\"\n (dragleave)=\"onDragLeave($event)\" (drop)=\"onDrop($event)\">\n @if (!!titleText) {\n <span class=\"fw-bold align-self-center cursor-pointer\" [innerHTML]=\"titleText\"></span>\n }\n\n <label [for]=\"name()\" class=\"text-secondary align-self-center cursor-pointer\" [innerHTML]=\"dropDescriptionText\"></label>\n\n @if (!labelText && (!!hintText || !!this.hintTemplate())) {\n <ng-template [ngTemplateOutlet]=\"hintTpl\"></ng-template>\n }\n </div>\n } @else {\n @if (!labelText && (!!hintText || !!this.hintTemplate())) {\n <div class=\"row g-2\">\n <div class=\"col\">\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n </div>\n <div class=\"col-auto align-self-center\">\n <ng-template [ngTemplateOutlet]=\"hintTpl\"></ng-template>\n </div>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n }\n }\n @if (validationStatus() === 'invalid' && errorsList().length > 0) {\n @for (desc of errorsList(); track desc) {\n <div class=\"invalid-feedback\">{{ desc }}</div>\n }\n }\n\n <ng-template #inputTpl>\n <div class=\"input-group col\">\n <label class=\"input-group-text cursor-pointer\" [ngClass]=\"validationStatusBorderClass()\" [for]=\"name()\">\n {{ t('SelectFile', { isMultiple: isMultiple() }) }}\n </label>\n <input type=\"text\" class=\"form-control text-truncate\" [class.border-end-0]=\"!!firstFileName()\"\n [value]=\"firstFileName() || ''\"\n [ngClass]=\"validationStatusClass()\" placeholder=\"{{ t('NoFileSelected', { isMultiple: isMultiple() }) }}\"\n [attr.disabled]=\"isDisabled() || undefined\" readonly>\n\n @if (!!firstFileName()) {\n <div class=\"input-group-text bg-transparent\" [ngClass]=\"validationStatusBorderClass()\">\n <upd-button [shouldIgnoreBtnClass]=\"true\" (clicked)=\"removeFile()\" customClasses=\"link-secondary cursor-pointer\">\n <upd-icon tablerIcon=\"trash\" [tablerIconSize]=\"18\"></upd-icon>\n </upd-button>\n </div>\n }\n </div>\n </ng-template>\n </ng-container>\n</div>\n\n<ng-template #hintTpl>\n <span class=\"form-help ms-2\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\" [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: i3.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title", "stopPropagation"], outputs: ["clicked"] }, { kind: "component", type: i4.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "directive", type: i5.PopoverDirective, selector: "[updPopover]", inputs: ["updPopover", "updPopoverTitle", "updPopoverTitleTemplate", "updPopoverTemplate", "updPopoverPlacement", "updPopoverCustomClasses", "updPopoverActAsTooltip"] }] }); }
|
|
167
167
|
}
|
|
168
168
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FileUploadComponent, decorators: [{
|
|
169
169
|
type: Component,
|
|
@@ -96,7 +96,7 @@ export class SelectMultipleComponent extends BaseSelectComponent {
|
|
|
96
96
|
this._setupLocalItems(this._localBackupItems);
|
|
97
97
|
}
|
|
98
98
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SelectMultipleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
99
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: SelectMultipleComponent, selector: "upd-select-multiple", inputs: { selectedValues: { classPropertyName: "selectedValues", publicName: "selectedValues", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedItems: "selectedItems", selectedIds: "selectedIds" }, usesInheritance: true, ngImport: i0, template: "@if (!!labelText) {\n @if (!!hintText || !!hintTemplate()) {\n <div class=\"row g-2\">\n <div class=\"col-auto\">\n <label [ngClass]=\"labelSizeClasses\">{{ labelText }}</label>\n </div>\n <div class=\"col-auto\">\n <span class=\"form-help\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\"\n [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n </div>\n </div>\n } @else {\n <label [ngClass]=\"labelSizeClasses\">{{ labelText }}</label>\n }\n}\n\n<div class=\"dropdown\" [attr.id]=\"name()\">\n <div #componentBox class=\"input-group input-group-flat\">\n <div class=\"form-control\" [class.remove-bottom-radius]=\"isDropdownOpen\" [class.disabled]=\"isDisabled()\"\n [class.pe-none]=\"isDisabled()\" [attr.disabled]=\"isDisabled() ? 'disabled' : undefined\" (click)=\"openDropdown()\">\n @for (sel of currentSelection; track sel) {\n <span class=\"badge bg-primary select-multiple-value\">{{ sel.text }}\n <upd-button [isIcon]=\"true\" [shouldIgnoreBtnClass]=\"true\" (clicked)=\"onRemoveItem(sel)\">\n <upd-icon tablerIcon=\"x\"></upd-icon>\n </upd-button></span> \n }\n </div>\n <div class=\"input-group-text\" [class.remove-bottom-radius]=\"isDropdownOpen\">\n @if (currentSelection.length > 0) {\n <upd-button [shouldIgnoreBtnClass]=\"true\" [isDisabled]=\"isDisabled()\" (clicked)=\"clearSelection()\"\n customClasses=\"link-secondary\">\n <upd-icon tablerIcon=\"x\"></upd-icon>\n </upd-button>\n }\n @if (!isLoading) {\n <upd-button [shouldIgnoreBtnClass]=\"true\" [isDisabled]=\"isDisabled()\" (clicked)=\"openDropdown()\"\n customClasses=\"link-secondary ms-2\">\n <upd-icon tablerIcon=\"chevron-down\"></upd-icon>\n </upd-button>\n } @else {\n <div class=\"select-loader-wrapper\">\n <div class=\"spinner-border spinner-border-sm text-muted select-loader\" role=\"status\"></div>\n </div>\n }\n </div>\n </div>\n <div #searchBox>\n <div #searchBoxChild [style.visibility]=\"isDropdownOpen ? 'visible' : 'hidden'\" class=\"select-search-box\">\n <upd-input [placeholder]=\"placeholder()\" [isInputGroupFlat]=\"true\" (valueChange)=\"search($event)\">\n <ng-template updInputPrepend>\n <upd-icon tablerIcon=\"search\"></upd-icon>\n </ng-template>\n </upd-input>\n </div>\n </div>\n <upd-list #list [items]=\"listItems\" [maxHeight]=\"dropdownMaxHeight() + 'px'\" (selectedItem)=\"onSelectItem($event)\"\n [wrapperClasses]=\"dropdownClasses\" [isVisible]=\"isDropdownOpen\" [shouldOverflow]=\"true\" [shouldDisplayItemsCounter]=\"true\">\n </upd-list>\n</div>\n", styles: [".select-dropdown-content{position:absolute!important;background-color:var(--upd-card-bg);z-index:1;border:var(--upd-card-border-width) solid var(--upd-card-border-color)!important;border-radius:var(--upd-card-border-radius)!important;box-shadow:0 1px 1px #0000002e}.select-dropdown-content-open{display:block!important}.select-loader-wrapper{height:16px}.select-loader-wrapper .select-loader{height:16px;width:16px}.select-search-box{position:absolute;z-index:1;padding:.5rem;margin-top:-1px;background:var(--upd-body-bg);border:var(--upd-border-width) var(--upd-border-style) var(--upd-border-color)}.remove-bottom-radius{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.remove-top-radius{border-top-left-radius:0!important;border-top-right-radius:0!important}.compact{padding:.25rem 2rem .25rem .75rem!important}.select-multiple-value{display:inline-flex;align-items:center}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.ListComponent, selector: "upd-list", inputs: ["items", "shouldOverflow", "isFlush", "isVisible", "isHoverable", "shouldDisplayItemsCounter", "wrapperClasses", "maxHeight"], outputs: ["checkboxChanged", "selectedItem"] }, { kind: "component", type: i3.InputComponent, selector: "upd-input", inputs: ["type", "mask", "maskConfig", "value", "size", "customClasses", "wrapperClasses", "maxLength", "isPlainText", "isReadOnly", "isLoading", "isRound", "isFlush", "isInputGroupFlat", "isPrependButton", "isAppendButton", "isFloating", "loaderPosition", "prependIconModel", "appendIconModel", "isValidationStatusLight", "layout"], outputs: ["valueChange", "blurred", "keyDown", "keyDownEsc", "keyUpEnter"] }, { kind: "directive", type: i3.InputPrependDirective, selector: "ng-template[updInputPrepend]" }, { kind: "component", type: i4.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "component", type: i5.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title"], outputs: ["clicked"] }, { kind: "directive", type: i6.PopoverDirective, selector: "[updPopover]", inputs: ["updPopover", "updPopoverTitle", "updPopoverTitleTemplate", "updPopoverTemplate", "updPopoverPlacement", "updPopoverCustomClasses", "updPopoverActAsTooltip"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
99
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: SelectMultipleComponent, selector: "upd-select-multiple", inputs: { selectedValues: { classPropertyName: "selectedValues", publicName: "selectedValues", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedItems: "selectedItems", selectedIds: "selectedIds" }, usesInheritance: true, ngImport: i0, template: "@if (!!labelText) {\n @if (!!hintText || !!hintTemplate()) {\n <div class=\"row g-2\">\n <div class=\"col-auto\">\n <label [ngClass]=\"labelSizeClasses\">{{ labelText }}</label>\n </div>\n <div class=\"col-auto\">\n <span class=\"form-help\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\"\n [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n </div>\n </div>\n } @else {\n <label [ngClass]=\"labelSizeClasses\">{{ labelText }}</label>\n }\n}\n\n<div class=\"dropdown\" [attr.id]=\"name()\">\n <div #componentBox class=\"input-group input-group-flat\">\n <div class=\"form-control\" [class.remove-bottom-radius]=\"isDropdownOpen\" [class.disabled]=\"isDisabled()\"\n [class.pe-none]=\"isDisabled()\" [attr.disabled]=\"isDisabled() ? 'disabled' : undefined\" (click)=\"openDropdown()\">\n @for (sel of currentSelection; track sel) {\n <span class=\"badge bg-primary select-multiple-value\">{{ sel.text }}\n <upd-button [isIcon]=\"true\" [shouldIgnoreBtnClass]=\"true\" (clicked)=\"onRemoveItem(sel)\">\n <upd-icon tablerIcon=\"x\"></upd-icon>\n </upd-button></span> \n }\n </div>\n <div class=\"input-group-text\" [class.remove-bottom-radius]=\"isDropdownOpen\">\n @if (currentSelection.length > 0) {\n <upd-button [shouldIgnoreBtnClass]=\"true\" [isDisabled]=\"isDisabled()\" (clicked)=\"clearSelection()\"\n customClasses=\"link-secondary\">\n <upd-icon tablerIcon=\"x\"></upd-icon>\n </upd-button>\n }\n @if (!isLoading) {\n <upd-button [shouldIgnoreBtnClass]=\"true\" [isDisabled]=\"isDisabled()\" (clicked)=\"openDropdown()\"\n customClasses=\"link-secondary ms-2\">\n <upd-icon tablerIcon=\"chevron-down\"></upd-icon>\n </upd-button>\n } @else {\n <div class=\"select-loader-wrapper\">\n <div class=\"spinner-border spinner-border-sm text-muted select-loader\" role=\"status\"></div>\n </div>\n }\n </div>\n </div>\n <div #searchBox>\n <div #searchBoxChild [style.visibility]=\"isDropdownOpen ? 'visible' : 'hidden'\" class=\"select-search-box\">\n <upd-input [placeholder]=\"placeholder()\" [isInputGroupFlat]=\"true\" (valueChange)=\"search($event)\">\n <ng-template updInputPrepend>\n <upd-icon tablerIcon=\"search\"></upd-icon>\n </ng-template>\n </upd-input>\n </div>\n </div>\n <upd-list #list [items]=\"listItems\" [maxHeight]=\"dropdownMaxHeight() + 'px'\" (selectedItem)=\"onSelectItem($event)\"\n [wrapperClasses]=\"dropdownClasses\" [isVisible]=\"isDropdownOpen\" [shouldOverflow]=\"true\" [shouldDisplayItemsCounter]=\"true\">\n </upd-list>\n</div>\n", styles: [".select-dropdown-content{position:absolute!important;background-color:var(--upd-card-bg);z-index:1;border:var(--upd-card-border-width) solid var(--upd-card-border-color)!important;border-radius:var(--upd-card-border-radius)!important;box-shadow:0 1px 1px #0000002e}.select-dropdown-content-open{display:block!important}.select-loader-wrapper{height:16px}.select-loader-wrapper .select-loader{height:16px;width:16px}.select-search-box{position:absolute;z-index:1;padding:.5rem;margin-top:-1px;background:var(--upd-body-bg);border:var(--upd-border-width) var(--upd-border-style) var(--upd-border-color)}.remove-bottom-radius{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.remove-top-radius{border-top-left-radius:0!important;border-top-right-radius:0!important}.compact{padding:.25rem 2rem .25rem .75rem!important}.select-multiple-value{display:inline-flex;align-items:center}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.ListComponent, selector: "upd-list", inputs: ["items", "shouldOverflow", "isFlush", "isVisible", "isHoverable", "shouldDisplayItemsCounter", "wrapperClasses", "maxHeight"], outputs: ["checkboxChanged", "selectedItem"] }, { kind: "component", type: i3.InputComponent, selector: "upd-input", inputs: ["type", "mask", "maskConfig", "value", "size", "customClasses", "wrapperClasses", "maxLength", "isPlainText", "isReadOnly", "isLoading", "isRound", "isFlush", "isInputGroupFlat", "isPrependButton", "isAppendButton", "isFloating", "loaderPosition", "prependIconModel", "appendIconModel", "isValidationStatusLight", "layout"], outputs: ["valueChange", "blurred", "keyDown", "keyDownEsc", "keyUpEnter"] }, { kind: "directive", type: i3.InputPrependDirective, selector: "ng-template[updInputPrepend]" }, { kind: "component", type: i4.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "component", type: i5.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title", "stopPropagation"], outputs: ["clicked"] }, { kind: "directive", type: i6.PopoverDirective, selector: "[updPopover]", inputs: ["updPopover", "updPopoverTitle", "updPopoverTitleTemplate", "updPopoverTemplate", "updPopoverPlacement", "updPopoverCustomClasses", "updPopoverActAsTooltip"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
100
100
|
}
|
|
101
101
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SelectMultipleComponent, decorators: [{
|
|
102
102
|
type: Component,
|