ngx-bimplus-components 0.0.160 → 0.0.162
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/assets/images/default/Attachment_18_gray.svg +1 -0
- package/assets/images/default/Attachment_18_maincolor.svg +3 -0
- package/assets/images/default/Attachmentlink_18_gray.svg +7 -0
- package/assets/images/default/Attachmentlink_18_maincolor.svg +7 -0
- package/assets/images/default/Calendar_18.svg +4 -0
- package/assets/images/default/Calendar_18_disabled.svg +1 -0
- package/assets/images/default/Calendar_18_gray.svg +1 -0
- package/assets/images/default/Comments_18_gray.svg +1 -0
- package/assets/images/default/Comments_18_maincolor.svg +4 -0
- package/assets/images/default/Links_18_gray.svg +1 -0
- package/assets/images/default/Links_18_maincolor.svg +4 -0
- package/assets/images/default/Refresh_18_gray.svg +1 -0
- package/assets/images/default/bimplus_WebIcons_Cross_Disabled.svg +1 -0
- package/assets/images/default/ic_models.svg +3 -0
- package/assets/images/default/ic_models_maincolor.svg +3 -0
- package/assets/images/default/icn_grid_attachments.png +0 -0
- package/assets/images/default/icn_grid_hyperlinks.png +0 -0
- package/assets/images/default/progress-spinner.svg +1 -0
- package/esm2022/lib/components/bimplus-attachments/bimplus-attachments.component.mjs +114 -0
- package/esm2022/lib/components/bimplus-attachments/bimplus-attachments.interface.mjs +38 -0
- package/esm2022/lib/components/bimplus-attachments/components/bimplus-attachment-item/bimplus-attachment-item.component.mjs +95 -0
- package/esm2022/lib/components/bimplus-attachments/services/bimplus-attachments.service.mjs +32 -0
- package/esm2022/lib/components/bimplus-buttons-row/bimplus-buttons-row.component.mjs +40 -5
- package/esm2022/lib/components/bimplus-buttons-row/bimplus-buttons-row.interface.mjs +5 -2
- package/esm2022/lib/components/bimplus-comment/IComment.mjs +2 -0
- package/esm2022/lib/components/bimplus-comment/bimplus-comment.component.mjs +118 -0
- package/esm2022/lib/components/bimplus-connection-designer/bimplus-connection-designer.component.mjs +5 -5
- package/esm2022/lib/components/bimplus-connection-designer-results/bimplus-connection-designer-results.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-flat-tree/bimplus-flat-tree.component.mjs +115 -7
- package/esm2022/lib/components/bimplus-flat-tree/bimplus-flat-tree.interface.mjs +1 -1
- package/esm2022/lib/components/bimplus-floating-bar-header-logo/bimplus-floating-bar-header-logo.component.mjs +1 -1
- package/esm2022/lib/components/bimplus-general-overlay-dialog/bimplus-general-dialog-config-settings.mjs +1 -1
- package/esm2022/lib/components/bimplus-general-overlay-dialog/bimplus-general-overlay-dialog.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-input-checkbox/bimplus-input-checkbox.component.mjs +64 -0
- package/esm2022/lib/components/bimplus-input-combobox/bimplus-input-combobox.component.mjs +161 -0
- package/esm2022/lib/components/bimplus-input-date/bimplus-input-date.component.mjs +271 -0
- package/esm2022/lib/components/bimplus-input-number/bimplus-input-number.component.mjs +85 -0
- package/esm2022/lib/components/bimplus-input-text-field/bimplus-input-text-field.component.mjs +92 -0
- package/esm2022/lib/components/bimplus-link-tooltip-message/bimplus-link-tooltip-message.component.mjs +78 -0
- package/esm2022/lib/components/bimplus-object-comments-list/bimplus-object-comments-list.component.mjs +388 -0
- package/esm2022/lib/components/bimplus-object-comments-list/bimplus-object-comments-list.interface.mjs +3 -0
- package/esm2022/lib/components/bimplus-object-comments-list/bimplus-object-comments-list.service.mjs +104 -0
- package/esm2022/lib/components/bimplus-object-comments-list/bimplusObjectCommentsI.mjs +2 -0
- package/esm2022/lib/components/bimplus-object-complex-properties/bimplus-object-complex-properties.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-object-navigator/bimplus-object-navigator.component.mjs +6 -3
- package/esm2022/lib/components/bimplus-object-navigator/criteria-select-object-properties/criteria-select-object-properties.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-object-navigator/criteria-select-object-properties/criteria-select-object-properties.interface.mjs +1 -1
- package/esm2022/lib/components/bimplus-object-navigator/object-filter-result/object-filter-result.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-object-structure/bimplus-object-structure.component.mjs +42 -4
- package/esm2022/lib/components/bimplus-object-structure/bimplus-object-structure.interface.mjs +4 -2
- package/esm2022/lib/components/bimplus-overlay-dialog-confirm/bimplus-overlay-dialog-confirm.component.mjs +77 -0
- package/esm2022/lib/components/bimplus-overlay-dialog-delete/bimplus-overlay-dialog-delete.component.mjs +83 -0
- package/esm2022/lib/components/bimplus-overlay-dialog-error/bimplus-overlay-dialog-error.component.mjs +31 -8
- package/esm2022/lib/components/bimplus-overlay-dialog-warning/bimplus-overlay-dialog-warning.component.mjs +34 -8
- package/esm2022/lib/components/bimplus-scrollable-container/bimplus-scrollable-container.component.mjs +1 -1
- package/esm2022/lib/components/bimplus-status-bar/bimplus-status-bar.component.mjs +35 -0
- package/esm2022/lib/components/bimplus-status-bar/bimplus-status-bar.service.mjs +35 -0
- package/esm2022/lib/components/bimplus-status-bar/statusBar.mjs +2 -0
- package/esm2022/lib/components/bimplus-tabs-switcher/bimplus-tabs-switcher.component.mjs +38 -0
- package/esm2022/lib/components/bimplus-tabs-switcher/bimplus-tabs-switcher.interface.mjs +10 -0
- package/esm2022/lib/components/bimplus-tabs-switcher/components/bimplus-tab/bimplus-tab.component.mjs +89 -0
- package/esm2022/lib/components/bimplus-tabs-switcher/services/bimplus-tabs-switcher.service.mjs +33 -0
- package/esm2022/lib/components/bimplus-textarea/autoResizeTextarea.directive.mjs +83 -0
- package/esm2022/lib/components/bimplus-textarea/bimplus-textarea.component.mjs +128 -0
- package/esm2022/lib/components/links-to-documents/links-to-documents.component.mjs +376 -0
- package/esm2022/lib/components/object-hyperlinks/object-hyperlinks.component.mjs +145 -0
- package/esm2022/lib/components/object-hyperlinks-item/object-hyperlinks-item.component.mjs +36 -0
- package/esm2022/lib/components/object-preview/object-preview.component.mjs +284 -0
- package/esm2022/lib/components/object-preview/object-preview.interface.mjs +2 -0
- package/esm2022/lib/components/object-properties/object-properties.component.mjs +545 -0
- package/esm2022/lib/components/object-properties/object-properties.interface.mjs +2 -0
- package/esm2022/lib/components/object-properties/object-properties.service.mjs +26 -0
- package/esm2022/lib/components/object-properties-group/object-properties-group.component.mjs +129 -0
- package/esm2022/lib/components/object-properties-group/object-property-value/object-property-value.component.mjs +55 -0
- package/esm2022/lib/components/object-properties-header/object-properties-header.component.mjs +48 -6
- package/esm2022/lib/components/object-properties-header/object-properties-header.interface.mjs +1 -1
- package/esm2022/lib/components/resizable-panel/resizable-panel.component.mjs +54 -10
- package/esm2022/lib/pipes/bit-converter.pipe.mjs +46 -0
- package/esm2022/lib/pipes/get-attribute-value-as-string.pipe.mjs +173 -0
- package/esm2022/lib/pipes/get-attribute-value.pipe.mjs +156 -0
- package/esm2022/lib/pipes/round.pipe.mjs +20 -0
- package/esm2022/lib/services/decorators.service.mjs +65 -0
- package/esm2022/lib/utils/objectProperties.mjs +9 -0
- package/esm2022/lib/validators/double-enum.validator.mjs +20 -0
- package/esm2022/lib/validators/double.validator.mjs +23 -0
- package/esm2022/lib/validators/guid-enum.validator.mjs +20 -0
- package/esm2022/lib/validators/guid.validator.mjs +14 -0
- package/esm2022/lib/validators/integer.validator.mjs +23 -0
- package/esm2022/lib/validators/string-combobox.validator.mjs +20 -0
- package/esm2022/lib/validators/string-enum.validator.mjs +20 -0
- package/esm2022/public-api.mjs +22 -1
- package/fesm2022/ngx-bimplus-components.mjs +4618 -80
- package/fesm2022/ngx-bimplus-components.mjs.map +1 -1
- package/lib/components/bimplus-attachments/bimplus-attachments.component.d.ts +39 -0
- package/lib/components/bimplus-attachments/bimplus-attachments.interface.d.ts +33 -0
- package/lib/components/bimplus-attachments/components/bimplus-attachment-item/bimplus-attachment-item.component.d.ts +30 -0
- package/lib/components/bimplus-attachments/services/bimplus-attachments.service.d.ts +8 -0
- package/lib/components/bimplus-buttons-row/bimplus-buttons-row.component.d.ts +14 -3
- package/lib/components/bimplus-buttons-row/bimplus-buttons-row.interface.d.ts +7 -1
- package/lib/components/bimplus-comment/IComment.d.ts +4 -0
- package/lib/components/bimplus-comment/bimplus-comment.component.d.ts +39 -0
- package/lib/components/bimplus-flat-tree/bimplus-flat-tree.component.d.ts +16 -3
- package/lib/components/bimplus-flat-tree/bimplus-flat-tree.interface.d.ts +4 -0
- package/lib/components/bimplus-floating-bar-header-logo/bimplus-floating-bar-header-logo.component.d.ts +1 -1
- package/lib/components/bimplus-general-overlay-dialog/bimplus-general-dialog-config-settings.d.ts +3 -3
- package/lib/components/bimplus-input-checkbox/bimplus-input-checkbox.component.d.ts +18 -0
- package/lib/components/bimplus-input-combobox/bimplus-input-combobox.component.d.ts +41 -0
- package/lib/components/bimplus-input-date/bimplus-input-date.component.d.ts +46 -0
- package/lib/components/bimplus-input-number/bimplus-input-number.component.d.ts +26 -0
- package/lib/components/bimplus-input-text-field/bimplus-input-text-field.component.d.ts +28 -0
- package/lib/components/bimplus-link-tooltip-message/bimplus-link-tooltip-message.component.d.ts +22 -0
- package/lib/components/bimplus-object-comments-list/bimplus-object-comments-list.component.d.ts +88 -0
- package/lib/components/bimplus-object-comments-list/bimplus-object-comments-list.interface.d.ts +10 -0
- package/lib/components/bimplus-object-comments-list/bimplus-object-comments-list.service.d.ts +20 -0
- package/lib/components/bimplus-object-comments-list/bimplusObjectCommentsI.d.ts +11 -0
- package/lib/components/bimplus-object-navigator/bimplus-object-navigator.component.d.ts +2 -1
- package/lib/components/bimplus-object-navigator/criteria-select-object-properties/criteria-select-object-properties.component.d.ts +12 -12
- package/lib/components/bimplus-object-navigator/criteria-select-object-properties/criteria-select-object-properties.interface.d.ts +3 -3
- package/lib/components/bimplus-object-structure/bimplus-object-structure.component.d.ts +5 -1
- package/lib/components/bimplus-object-structure/bimplus-object-structure.interface.d.ts +2 -0
- package/lib/components/bimplus-overlay-dialog-confirm/bimplus-overlay-dialog-confirm.component.d.ts +29 -0
- package/lib/components/bimplus-overlay-dialog-delete/bimplus-overlay-dialog-delete.component.d.ts +24 -0
- package/lib/components/bimplus-overlay-dialog-error/bimplus-overlay-dialog-error.component.d.ts +8 -1
- package/lib/components/bimplus-overlay-dialog-warning/bimplus-overlay-dialog-warning.component.d.ts +11 -1
- package/lib/components/bimplus-scrollable-container/bimplus-scrollable-container.component.d.ts +1 -1
- package/lib/components/bimplus-status-bar/bimplus-status-bar.component.d.ts +14 -0
- package/lib/components/bimplus-status-bar/bimplus-status-bar.service.d.ts +14 -0
- package/lib/components/bimplus-status-bar/statusBar.d.ts +4 -0
- package/lib/components/bimplus-tabs-switcher/bimplus-tabs-switcher.component.d.ts +16 -0
- package/lib/components/bimplus-tabs-switcher/bimplus-tabs-switcher.interface.d.ts +18 -0
- package/lib/components/bimplus-tabs-switcher/components/bimplus-tab/bimplus-tab.component.d.ts +36 -0
- package/lib/components/bimplus-tabs-switcher/services/bimplus-tabs-switcher.service.d.ts +15 -0
- package/lib/components/bimplus-textarea/autoResizeTextarea.directive.d.ts +24 -0
- package/lib/components/bimplus-textarea/bimplus-textarea.component.d.ts +42 -0
- package/lib/components/links-to-documents/links-to-documents.component.d.ts +69 -0
- package/lib/components/object-hyperlinks/object-hyperlinks.component.d.ts +32 -0
- package/lib/components/object-hyperlinks-item/object-hyperlinks-item.component.d.ts +15 -0
- package/lib/components/object-preview/object-preview.component.d.ts +45 -0
- package/lib/components/object-preview/object-preview.interface.d.ts +5 -0
- package/lib/components/object-properties/object-properties.component.d.ts +79 -0
- package/lib/components/object-properties/object-properties.interface.d.ts +22 -0
- package/lib/components/object-properties/object-properties.service.d.ts +12 -0
- package/lib/components/object-properties-group/object-properties-group.component.d.ts +30 -0
- package/lib/components/object-properties-group/object-property-value/object-property-value.component.d.ts +14 -0
- package/lib/components/object-properties-header/object-properties-header.component.d.ts +13 -4
- package/lib/components/object-properties-header/object-properties-header.interface.d.ts +8 -0
- package/lib/components/resizable-panel/resizable-panel.component.d.ts +12 -3
- package/lib/pipes/bit-converter.pipe.d.ts +17 -0
- package/lib/pipes/get-attribute-value-as-string.pipe.d.ts +35 -0
- package/lib/pipes/get-attribute-value.pipe.d.ts +35 -0
- package/lib/pipes/round.pipe.d.ts +7 -0
- package/lib/services/decorators.service.d.ts +12 -0
- package/lib/utils/objectProperties.d.ts +2 -0
- package/lib/validators/double-enum.validator.d.ts +2 -0
- package/lib/validators/double.validator.d.ts +2 -0
- package/lib/validators/guid-enum.validator.d.ts +2 -0
- package/lib/validators/guid.validator.d.ts +2 -0
- package/lib/validators/integer.validator.d.ts +2 -0
- package/lib/validators/string-combobox.validator.d.ts +2 -0
- package/lib/validators/string-enum.validator.d.ts +2 -0
- package/package.json +14 -4
- package/public-api.d.ts +21 -0
|
@@ -80,11 +80,11 @@ export class BimportalGeneralOverlayDialogComponent {
|
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
82
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BimportalGeneralOverlayDialogComponent, deps: [{ token: i1.DialogService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
83
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: BimportalGeneralOverlayDialogComponent, isStandalone: true, selector: "app-general-overlay-dialog", viewQueries: [{ propertyName: "genDialogRefContainer", first: true, predicate: ["dialogRefContainer"], descendants: true }, { propertyName: "dialogOverlay", first: true, predicate: ["dialogOverlay"], descendants: true }], ngImport: i0, template: "<div class=\"general-dialog-wrapper\" #generalDialogWrapper *ngIf=\"options\">\r\n <section class=\"general-dialog-content\" #dialogRefContainer\r\n [libDraggableComponent]=\"options.draggable ? true : false\">\r\n <ng-content></ng-content>\r\n </section>\r\n <div class=\"general-dialog-overlay\" #dialogOverlay (click)=\"onClose()\" (keypress)=\"onKeyPress($event)\"\r\n [style.display]=\"options.overlayVisibilityEnabled ? 'block' : 'none'\">\r\n </div>\r\n</div>\r\n", styles: [".general-dialog-wrapper .general-dialog-overlay{height:100%;width:100%;position:fixed;z-index:5;left:0;top:0;overflow-x:hidden;transition:.5s}.general-dialog-wrapper .general-dialog-content{z-index:12}.general-dialog-wrapper .general-dialog-content.middle{position:fixed;
|
|
83
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: BimportalGeneralOverlayDialogComponent, isStandalone: true, selector: "app-general-overlay-dialog", viewQueries: [{ propertyName: "genDialogRefContainer", first: true, predicate: ["dialogRefContainer"], descendants: true }, { propertyName: "dialogOverlay", first: true, predicate: ["dialogOverlay"], descendants: true }], ngImport: i0, template: "<div class=\"general-dialog-wrapper\" #generalDialogWrapper *ngIf=\"options\">\r\n <section class=\"general-dialog-content\" #dialogRefContainer\r\n [libDraggableComponent]=\"options.draggable ? true : false\">\r\n <ng-content></ng-content>\r\n </section>\r\n <div class=\"general-dialog-overlay\" #dialogOverlay (click)=\"onClose()\" (keypress)=\"onKeyPress($event)\"\r\n [style.display]=\"options.overlayVisibilityEnabled ? 'block' : 'none'\">\r\n </div>\r\n</div>\r\n", styles: [".general-dialog-wrapper{--button-row-margin-top: 0;--button-row-margin-bottom: 0}.general-dialog-wrapper .general-dialog-overlay{height:100%;width:100%;position:fixed;z-index:5;left:0;top:0;overflow-x:hidden;transition:.5s}.general-dialog-wrapper .general-dialog-content{z-index:12}.general-dialog-wrapper .general-dialog-content.middle{position:fixed;inset:0;justify-content:center;display:flex;align-items:center}\n"], dependencies: [{ kind: "directive", type: ComponentDraggableDirective, selector: "[libDraggableComponent]", inputs: ["libDraggableComponent"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.ShadowDom }); }
|
|
84
84
|
}
|
|
85
85
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BimportalGeneralOverlayDialogComponent, decorators: [{
|
|
86
86
|
type: Component,
|
|
87
|
-
args: [{ selector: 'app-general-overlay-dialog', standalone: true, imports: [ComponentDraggableDirective, CommonModule], encapsulation: ViewEncapsulation.ShadowDom, template: "<div class=\"general-dialog-wrapper\" #generalDialogWrapper *ngIf=\"options\">\r\n <section class=\"general-dialog-content\" #dialogRefContainer\r\n [libDraggableComponent]=\"options.draggable ? true : false\">\r\n <ng-content></ng-content>\r\n </section>\r\n <div class=\"general-dialog-overlay\" #dialogOverlay (click)=\"onClose()\" (keypress)=\"onKeyPress($event)\"\r\n [style.display]=\"options.overlayVisibilityEnabled ? 'block' : 'none'\">\r\n </div>\r\n</div>\r\n", styles: [".general-dialog-wrapper .general-dialog-overlay{height:100%;width:100%;position:fixed;z-index:5;left:0;top:0;overflow-x:hidden;transition:.5s}.general-dialog-wrapper .general-dialog-content{z-index:12}.general-dialog-wrapper .general-dialog-content.middle{position:fixed;
|
|
87
|
+
args: [{ selector: 'app-general-overlay-dialog', standalone: true, imports: [ComponentDraggableDirective, CommonModule], encapsulation: ViewEncapsulation.ShadowDom, template: "<div class=\"general-dialog-wrapper\" #generalDialogWrapper *ngIf=\"options\">\r\n <section class=\"general-dialog-content\" #dialogRefContainer\r\n [libDraggableComponent]=\"options.draggable ? true : false\">\r\n <ng-content></ng-content>\r\n </section>\r\n <div class=\"general-dialog-overlay\" #dialogOverlay (click)=\"onClose()\" (keypress)=\"onKeyPress($event)\"\r\n [style.display]=\"options.overlayVisibilityEnabled ? 'block' : 'none'\">\r\n </div>\r\n</div>\r\n", styles: [".general-dialog-wrapper{--button-row-margin-top: 0;--button-row-margin-bottom: 0}.general-dialog-wrapper .general-dialog-overlay{height:100%;width:100%;position:fixed;z-index:5;left:0;top:0;overflow-x:hidden;transition:.5s}.general-dialog-wrapper .general-dialog-content{z-index:12}.general-dialog-wrapper .general-dialog-content.middle{position:fixed;inset:0;justify-content:center;display:flex;align-items:center}\n"] }]
|
|
88
88
|
}], ctorParameters: () => [{ type: i1.DialogService }, { type: i0.ChangeDetectorRef }], propDecorators: { genDialogRefContainer: [{
|
|
89
89
|
type: ViewChild,
|
|
90
90
|
args: ['dialogRefContainer']
|
|
@@ -92,4 +92,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
92
92
|
type: ViewChild,
|
|
93
93
|
args: ['dialogOverlay']
|
|
94
94
|
}] } });
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy1nZW5lcmFsLW92ZXJsYXktZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1iaW1wbHVzLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2JpbXBsdXMtZ2VuZXJhbC1vdmVybGF5LWRpYWxvZy9iaW1wbHVzLWdlbmVyYWwtb3ZlcmxheS1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1nZW5lcmFsLW92ZXJsYXktZGlhbG9nL2JpbXBsdXMtZ2VuZXJhbC1vdmVybGF5LWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVDLFNBQVMsRUFBc0IsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpJLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG9FQUFvRSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQVcvQyxNQUFNLE9BQU8sc0NBQXNDO0lBUWpELFlBQTZCLGFBQTRCLEVBQW1CLEtBQXdCO1FBQXZFLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQW1CLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBRnBHLFVBQUssR0FBVyxLQUFLLENBQUM7SUFFa0YsQ0FBQztJQUV6RyxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQztJQUM1QyxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNq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ZSxHQUFHLHVDQUF1QyxDQUFDO1FBQ25HLENBQUM7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQW9CO1FBQzdCLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUNsRCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztnQkFDdEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM3QixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7K0dBeEZVLHNDQUFzQzttR0FBdEMsc0NBQXNDLG9UQ2RuRCxxZUFTQSxtWkRBWSwyQkFBMkIsc0dBQUUsWUFBWTs7NEZBS3hDLHNDQUFzQztrQkFSbEQsU0FBUzsrQkFDRSw0QkFBNEIsY0FDMUIsSUFBSSxXQUNQLENBQUMsMkJBQTJCLEVBQUUsWUFBWSxDQUFDLGlCQUdyQyxpQkFBaUIsQ0FBQyxTQUFTO2tIQUlULHFCQUFxQjtzQkFBckQsU0FBUzt1QkFBQyxvQkFBb0I7Z0JBQ0gsYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25Jbml0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElEaWFsb2dPcHRpb25zIH0gZnJvbSAnLi9iaW1wbHVzLWdlbmVyYWwtZGlhbG9nLWNvbmZpZy1zZXR0aW5ncyc7XHJcbmltcG9ydCB7IENvbXBvbmVudERyYWdnYWJsZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvY29tcG9uZW50LWRyYWdnYWJsZS9jb21wb25lbnRzRHJhZ2dhYmxlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuL2JpbXBsdXMtZ2VuZXJhbC1vdmVybGF5LWRpYWxvZy5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWdlbmVyYWwtb3ZlcmxheS1kaWFsb2cnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbXBvbmVudERyYWdnYWJsZURpcmVjdGl2ZSwgQ29tbW9uTW9kdWxlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vYmltcGx1cy1nZW5lcmFsLW92ZXJsYXktZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9iaW1wbHVzLWdlbmVyYWwtb3ZlcmxheS1kaWFsb2cuY29tcG9uZW50Lmxlc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5TaGFkb3dEb21cclxufSlcclxuZXhwb3J0IGNsYXNzIEJpbXBvcnRhbEdlbmVyYWxPdmVybGF5RGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0IHtcclxuXHJcbiAgQFZpZXdDaGlsZCgnZGlhbG9nUmVmQ29udGFpbmVyJykgZ2VuRGlhbG9nUmVmQ29udGFpbmVyITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47IC8vaGVyZSB3aWxsIGJlIHJlbmRlcmVkIGV2ZXJ5IGNvbXBvbmVudCB3ZSBjYWxsIGluc2lkZSBnZW5lcmFsIGRpYWxvZ1xyXG4gIEBWaWV3Q2hpbGQoJ2RpYWxvZ092ZXJsYXknKSBkaWFsb2dPdmVybGF5ITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XHJcblxyXG4gIG9wdGlvbnM6IElEaWFsb2dPcHRpb25zIHwgdW5kZWZpbmVkO1xyXG4gIHVuaXRzOiBzdHJpbmcgPSAncmVtJztcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLCBwcml2YXRlIHJlYWRvbmx5IGNkcmVmOiBDaGFuZ2VEZXRlY3RvclJlZikgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5vcHRpb25zID0gdGhpcy5kaWFsb2dTZXJ2aWNlLm9wdGlvbnM7XHJcbiAgfVxyXG5cclxuICBvbkNsb3NlKCkge1xyXG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmNsb3NlKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5vcHRpb25zKSB7XHJcbiAgICAgIHRoaXMuY2RyZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB0aGlzLnNldE9wdGlvbnMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldE9wdGlvbnMoKSB7XHJcbiAgICBpZiAodGhpcy5vcHRpb25zKSB7XHJcbiAgICAgIHRoaXMuc2V0RGltZW5zaW9ucygpO1xyXG4gICAgICB0aGlzLnNldFBvc2l0aW9uKCk7XHJcbiAgICAgIHRoaXMuc2V0T3ZlcmxheSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXREaW1lbnNpb25zKCkge1xyXG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLm9wdGlvbnM/LndpZHRoICYmIHRoaXMub3B0aW9ucy53aWR0aC5sZW5ndGggPiAwID8gdGhpcy5vcHRpb25zLndpZHRoIDogJ2F1dG8nO1xyXG4gICAgY29uc3QgaGVpZ2h0ID0gdGhpcy5vcHRpb25zPy5oZWlnaHQgJiYgdGhpcy5vcHRpb25zLmhlaWdodC5sZW5ndGggPiAwID8gdGhpcy5vcHRpb25zLmhlaWdodCA6ICdhdXRvJztcclxuICAgIHRoaXMuZ2VuRGlhbG9nUmVmQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUud2lkdGggPSB3aWR0aDtcclxuICAgIHRoaXMuZ2VuRGlhbG9nUmVmQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gaGVpZ2h0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRQb3NpdGlvbigpIHtcclxuICAgIGlmICh0aGlzLm9wdGlvbnM/LnBvc2l0aW9uID09PSAnbWlkZGxlJykge1xyXG4gICAgICB0aGlzLnNldFBvc2l0aW9uc01pZGRsZSgpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLm9wdGlvbnM/LnBvc2l0aW9uID09PSAndW5zZXQnKSB7XHJcbiAgICAgIHRoaXMuc2V0UG9zaXRpb25zVW5zZXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFBvc2l0aW9uc1Vuc2V0KCkge1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucykge1xyXG4gICAgICB0aGlzLmdlbkRpYWxvZ1JlZkNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnN0eWxlLnBvc2l0aW9uID0gJ2ZpeGVkJztcclxuICAgICAgY29uc3QgdG9wID0gdGhpcy5vcHRpb25zPy5wb3NpdGlvbk9wdGlvbnM/LnRvcCA/PyAnMCcgKyB0aGlzLnVuaXRzO1xyXG4gICAgICBjb25zdCBib3R0b20gPSB0aGlzLm9wdGlvbnM/LnBvc2l0aW9uT3B0aW9ucz8uYm90dG9tID8/ICcwJyArIHRoaXMudW5pdHM7XHJcbiAgICAgIGNvbnN0IGxlZnQgPSB0aGlzLm9wdGlvbnM/LnBvc2l0aW9uT3B0aW9ucz8ubGVmdCA/PyAnMCcgKyB0aGlzLnVuaXRzO1xyXG4gICAgICBjb25zdCByaWdodCA9IHRoaXMub3B0aW9ucz8ucG9zaXRpb25PcHRpb25zPy5yaWdodCA/PyAnMCcgKyB0aGlzLnVuaXRzO1xyXG5cclxuICAgICAgdGhpcy5nZW5EaWFsb2dSZWZDb250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XHJcbiAgICAgIHRoaXMuZ2VuRGlhbG9nUmVmQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUudG9wID0gdG9wO1xyXG4gICAgICB0aGlzLmdlbkRpYWxvZ1JlZkNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSBsZWZ0O1xyXG4gICAgICB0aGlzLmdlbkRpYWxvZ1JlZkNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnN0eWxlLmJvdHRvbSA9IGJvdHRvbTtcclxuICAgICAgdGhpcy5nZW5EaWFsb2dSZWZDb250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS5yaWdodCA9IHJpZ2h0O1xyXG5cclxuICAgICAgdGhpcy5vcHRpb25zLm92ZXJsYXlWaXNpYmlsaXR5RW5hYmxlZCA9IHRoaXMub3B0aW9ucy5vdmVybGF5VmlzaWJpbGl0eUVuYWJsZWQgPyB0aGlzLm9wdGlvbnMub3ZlcmxheVZpc2liaWxpdHlFbmFibGVkIDogZmFsc2U7XHJcbiAgICAgIHRoaXMub3B0aW9ucy5vdmVybGF5Q2xpY2tFbmFibGVkID0gdGhpcy5vcHRpb25zLm92ZXJsYXlWaXNpYmlsaXR5RW5hYmxlZCAmJiB0aGlzLm9wdGlvbnMub3ZlcmxheUNsaWNrRW5hYmxlZCA/IHRoaXMub3B0aW9ucy5vdmVybGF5Q2xpY2tFbmFibGVkIDogZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRQb3NpdGlvbnNNaWRkbGUoKSB7XHJcbiAgICBpZiAodGhpcy5vcHRpb25zKSB7XHJcbiAgICAgIHRoaXMuZ2VuRGlhbG9nUmVmQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5nZW5EaWFsb2dSZWZDb250YWluZXIubmF0aXZlRWxlbWVudC5jbGFzc05hbWUgKyAnIG1pZGRsZSc7XHJcbiAgICAgIHRoaXMub3B0aW9ucy5kcmFnZ2FibGUgPSBmYWxzZTtcclxuICAgICAgdGhpcy5vcHRpb25zLm92ZXJsYXlWaXNpYmlsaXR5RW5hYmxlZCA9IHRoaXMub3B0aW9ucy5vdmVybGF5VmlzaWJpbGl0eUVuYWJsZWQgPyB0aGlzLm9wdGlvbnMub3ZlcmxheVZpc2liaWxpdHlFbmFibGVkIDogdHJ1ZTtcclxuICAgICAgdGhpcy5vcHRpb25zLm92ZXJsYXlDbGlja0VuYWJsZWQgPSB0aGlzLm9wdGlvbnMub3ZlcmxheVZpc2liaWxpdHlFbmFibGVkICYmIHRoaXMub3B0aW9ucy5vdmVybGF5Q2xpY2tFbmFibGVkID8gdGhpcy5vcHRpb25zLm92ZXJsYXlDbGlja0VuYWJsZWQgOiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0T3ZlcmxheSgpIHtcclxuICAgIGlmICh0aGlzLm9wdGlvbnM/Lm92ZXJsYXlWaXNpYmlsaXR5RW5hYmxlZCkge1xyXG4gICAgICB0aGlzLmRpYWxvZ092ZXJsYXkubmF0aXZlRWxlbWVudC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAndmFyKC0tbW9kYWwtZmFkZS1pbi1iYWNrZ3JvdW5kLWNvbG9yKSc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbktleVByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJyB8fCBldmVudC5rZXkgPT09ICdFc2MnKSB7XHJcbiAgICAgIGlmICh0aGlzLm9wdGlvbnM/Lm92ZXJsYXlDbGlja0VuYWJsZWQpIHtcclxuICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuY2xvc2UoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuXHJcblxyXG4iLCI8ZGl2IGNsYXNzPVwiZ2VuZXJhbC1kaWFsb2ctd3JhcHBlclwiICNnZW5lcmFsRGlhbG9nV3JhcHBlciAqbmdJZj1cIm9wdGlvbnNcIj5cclxuICA8c2VjdGlvbiBjbGFzcz1cImdlbmVyYWwtZGlhbG9nLWNvbnRlbnRcIiAjZGlhbG9nUmVmQ29udGFpbmVyXHJcbiAgICBbbGliRHJhZ2dhYmxlQ29tcG9uZW50XT1cIm9wdGlvbnMuZHJhZ2dhYmxlID8gdHJ1ZSA6IGZhbHNlXCI+XHJcbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgPC9zZWN0aW9uPlxyXG4gIDxkaXYgY2xhc3M9XCJnZW5lcmFsLWRpYWxvZy1vdmVybGF5XCIgI2RpYWxvZ092ZXJsYXkgKGNsaWNrKT1cIm9uQ2xvc2UoKVwiIChrZXlwcmVzcyk9XCJvbktleVByZXNzKCRldmVudClcIlxyXG4gICAgW3N0eWxlLmRpc3BsYXldPVwib3B0aW9ucy5vdmVybGF5VmlzaWJpbGl0eUVuYWJsZWQgPyAnYmxvY2snIDogJ25vbmUnXCI+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy1nZW5lcmFsLW92ZXJsYXktZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1iaW1wbHVzLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2JpbXBsdXMtZ2VuZXJhbC1vdmVybGF5LWRpYWxvZy9iaW1wbHVzLWdlbmVyYWwtb3ZlcmxheS1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1nZW5lcmFsLW92ZXJsYXktZGlhbG9nL2JpbXBsdXMtZ2VuZXJhbC1vdmVybGF5LWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVDLFNBQVMsRUFBc0IsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpJLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG9FQUFvRSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQVcvQyxNQUFNLE9BQU8sc0NBQXNDO0lBUWpELFlBQTZCLGFBQTRCLEVBQW1CLEtBQXdCO1FBQXZFLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQW1CLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBRnBHLFVBQUssR0FBVyxLQUFLLENBQUM7SUFFa0YsQ0FBQztJQUV6RyxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQztJQUM1QyxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNq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ZSxHQUFHLHVDQUF1QyxDQUFDO1FBQ25HLENBQUM7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQW9CO1FBQzdCLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUNsRCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztnQkFDdEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM3QixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7K0dBeEZVLHNDQUFzQzttR0FBdEMsc0NBQXNDLG9UQ2RuRCxxZUFTQSwyZERBWSwyQkFBMkIsc0dBQUUsWUFBWTs7NEZBS3hDLHNDQUFzQztrQkFSbEQsU0FBUzsrQkFDRSw0QkFBNEIsY0FDMUIsSUFBSSxXQUNQLENBQUMsMkJBQTJCLEVBQUUsWUFBWSxDQUFDLGlCQUdyQyxpQkFBaUIsQ0FBQyxTQUFTO2tIQUlULHFCQUFxQjtzQkFBckQsU0FBUzt1QkFBQyxvQkFBb0I7Z0JBQ0gsYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25Jbml0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElEaWFsb2dPcHRpb25zIH0gZnJvbSAnLi9iaW1wbHVzLWdlbmVyYWwtZGlhbG9nLWNvbmZpZy1zZXR0aW5ncyc7XHJcbmltcG9ydCB7IENvbXBvbmVudERyYWdnYWJsZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvY29tcG9uZW50LWRyYWdnYWJsZS9jb21wb25lbnRzRHJhZ2dhYmxlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuL2JpbXBsdXMtZ2VuZXJhbC1vdmVybGF5LWRpYWxvZy5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWdlbmVyYWwtb3ZlcmxheS1kaWFsb2cnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbXBvbmVudERyYWdnYWJsZURpcmVjdGl2ZSwgQ29tbW9uTW9kdWxlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vYmltcGx1cy1nZW5lcmFsLW92ZXJsYXktZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9iaW1wbHVzLWdlbmVyYWwtb3ZlcmxheS1kaWFsb2cuY29tcG9uZW50Lmxlc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5TaGFkb3dEb21cclxufSlcclxuZXhwb3J0IGNsYXNzIEJpbXBvcnRhbEdlbmVyYWxPdmVybGF5RGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0IHtcclxuXHJcbiAgQFZpZXdDaGlsZCgnZGlhbG9nUmVmQ29udGFpbmVyJykgZ2VuRGlhbG9nUmVmQ29udGFpbmVyITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XHJcbiAgQFZpZXdDaGlsZCgnZGlhbG9nT3ZlcmxheScpIGRpYWxvZ092ZXJsYXkhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcclxuXHJcbiAgb3B0aW9uczogSURpYWxvZ09wdGlvbnMgfCB1bmRlZmluZWQ7XHJcbiAgdW5pdHM6IHN0cmluZyA9ICdyZW0nO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsIHByaXZhdGUgcmVhZG9ubHkgY2RyZWY6IENoYW5nZURldGVjdG9yUmVmKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLm9wdGlvbnMgPSB0aGlzLmRpYWxvZ1NlcnZpY2Uub3B0aW9ucztcclxuICB9XHJcblxyXG4gIG9uQ2xvc2UoKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMpIHtcclxuICAgICAgdGhpcy5jZHJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIHRoaXMuc2V0T3B0aW9ucygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0T3B0aW9ucygpIHtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMpIHtcclxuICAgICAgdGhpcy5zZXREaW1lbnNpb25zKCk7XHJcbiAgICAgIHRoaXMuc2V0UG9zaXRpb24oKTtcclxuICAgICAgdGhpcy5zZXRPdmVybGF5KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldERpbWVuc2lvbnMoKSB7XHJcbiAgICBjb25zdCB3aWR0aCA9IHRoaXMub3B0aW9ucz8ud2lkdGggJiYgdGhpcy5vcHRpb25zLndpZHRoLmxlbmd0aCA+IDAgPyB0aGlzLm9wdGlvbnMud2lkdGggOiAnYXV0byc7XHJcbiAgICBjb25zdCBoZWlnaHQgPSB0aGlzLm9wdGlvbnM/LmhlaWdodCAmJiB0aGlzLm9wdGlvbnMuaGVpZ2h0Lmxlbmd0aCA+IDAgPyB0aGlzLm9wdGlvbnMuaGVpZ2h0IDogJ2F1dG8nO1xyXG4gICAgdGhpcy5nZW5EaWFsb2dSZWZDb250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS53aWR0aCA9IHdpZHRoO1xyXG4gICAgdGhpcy5nZW5EaWFsb2dSZWZDb250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS5oZWlnaHQgPSBoZWlnaHQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFBvc2l0aW9uKCkge1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucz8ucG9zaXRpb24gPT09ICdtaWRkbGUnKSB7XHJcbiAgICAgIHRoaXMuc2V0UG9zaXRpb25zTWlkZGxlKCk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMub3B0aW9ucz8ucG9zaXRpb24gPT09ICd1bnNldCcpIHtcclxuICAgICAgdGhpcy5zZXRQb3NpdGlvbnNVbnNldCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0UG9zaXRpb25zVW5zZXQoKSB7XHJcbiAgICBpZiAodGhpcy5vcHRpb25zKSB7XHJcbiAgICAgIHRoaXMuZ2VuRGlhbG9nUmVmQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnO1xyXG4gICAgICBjb25zdCB0b3AgPSB0aGlzLm9wdGlvbnM/LnBvc2l0aW9uT3B0aW9ucz8udG9wID8/ICcwJyArIHRoaXMudW5pdHM7XHJcbiAgICAgIGNvbnN0IGJvdHRvbSA9IHRoaXMub3B0aW9ucz8ucG9zaXRpb25PcHRpb25zPy5ib3R0b20gPz8gJzAnICsgdGhpcy51bml0cztcclxuICAgICAgY29uc3QgbGVmdCA9IHRoaXMub3B0aW9ucz8ucG9zaXRpb25PcHRpb25zPy5sZWZ0ID8/ICcwJyArIHRoaXMudW5pdHM7XHJcbiAgICAgIGNvbnN0IHJpZ2h0ID0gdGhpcy5vcHRpb25zPy5wb3NpdGlvbk9wdGlvbnM/LnJpZ2h0ID8/ICcwJyArIHRoaXMudW5pdHM7XHJcblxyXG4gICAgICB0aGlzLmdlbkRpYWxvZ1JlZkNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcclxuICAgICAgdGhpcy5nZW5EaWFsb2dSZWZDb250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS50b3AgPSB0b3A7XHJcbiAgICAgIHRoaXMuZ2VuRGlhbG9nUmVmQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUubGVmdCA9IGxlZnQ7XHJcbiAgICAgIHRoaXMuZ2VuRGlhbG9nUmVmQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUuYm90dG9tID0gYm90dG9tO1xyXG4gICAgICB0aGlzLmdlbkRpYWxvZ1JlZkNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnN0eWxlLnJpZ2h0ID0gcmlnaHQ7XHJcblxyXG4gICAgICB0aGlzLm9wdGlvbnMub3ZlcmxheVZpc2liaWxpdHlFbmFibGVkID0gdGhpcy5vcHRpb25zLm92ZXJsYXlWaXNpYmlsaXR5RW5hYmxlZCA/IHRoaXMub3B0aW9ucy5vdmVybGF5VmlzaWJpbGl0eUVuYWJsZWQgOiBmYWxzZTtcclxuICAgICAgdGhpcy5vcHRpb25zLm92ZXJsYXlDbGlja0VuYWJsZWQgPSB0aGlzLm9wdGlvbnMub3ZlcmxheVZpc2liaWxpdHlFbmFibGVkICYmIHRoaXMub3B0aW9ucy5vdmVybGF5Q2xpY2tFbmFibGVkID8gdGhpcy5vcHRpb25zLm92ZXJsYXlDbGlja0VuYWJsZWQgOiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFBvc2l0aW9uc01pZGRsZSgpIHtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMpIHtcclxuICAgICAgdGhpcy5nZW5EaWFsb2dSZWZDb250YWluZXIubmF0aXZlRWxlbWVudC5jbGFzc05hbWUgPSB0aGlzLmdlbkRpYWxvZ1JlZkNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNsYXNzTmFtZSArICcgbWlkZGxlJztcclxuICAgICAgdGhpcy5vcHRpb25zLmRyYWdnYWJsZSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLm9wdGlvbnMub3ZlcmxheVZpc2liaWxpdHlFbmFibGVkID0gdGhpcy5vcHRpb25zLm92ZXJsYXlWaXNpYmlsaXR5RW5hYmxlZCA/IHRoaXMub3B0aW9ucy5vdmVybGF5VmlzaWJpbGl0eUVuYWJsZWQgOiB0cnVlO1xyXG4gICAgICB0aGlzLm9wdGlvbnMub3ZlcmxheUNsaWNrRW5hYmxlZCA9IHRoaXMub3B0aW9ucy5vdmVybGF5VmlzaWJpbGl0eUVuYWJsZWQgJiYgdGhpcy5vcHRpb25zLm92ZXJsYXlDbGlja0VuYWJsZWQgPyB0aGlzLm9wdGlvbnMub3ZlcmxheUNsaWNrRW5hYmxlZCA6IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRPdmVybGF5KCkge1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucz8ub3ZlcmxheVZpc2liaWxpdHlFbmFibGVkKSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nT3ZlcmxheS5uYXRpdmVFbGVtZW50LnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICd2YXIoLS1tb2RhbC1mYWRlLWluLWJhY2tncm91bmQtY29sb3IpJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uS2V5UHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnIHx8IGV2ZW50LmtleSA9PT0gJ0VzYycpIHtcclxuICAgICAgaWYgKHRoaXMub3B0aW9ucz8ub3ZlcmxheUNsaWNrRW5hYmxlZCkge1xyXG4gICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5jbG9zZSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG5cclxuXHJcbiIsIjxkaXYgY2xhc3M9XCJnZW5lcmFsLWRpYWxvZy13cmFwcGVyXCIgI2dlbmVyYWxEaWFsb2dXcmFwcGVyICpuZ0lmPVwib3B0aW9uc1wiPlxyXG4gIDxzZWN0aW9uIGNsYXNzPVwiZ2VuZXJhbC1kaWFsb2ctY29udGVudFwiICNkaWFsb2dSZWZDb250YWluZXJcclxuICAgIFtsaWJEcmFnZ2FibGVDb21wb25lbnRdPVwib3B0aW9ucy5kcmFnZ2FibGUgPyB0cnVlIDogZmFsc2VcIj5cclxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICA8L3NlY3Rpb24+XHJcbiAgPGRpdiBjbGFzcz1cImdlbmVyYWwtZGlhbG9nLW92ZXJsYXlcIiAjZGlhbG9nT3ZlcmxheSAoY2xpY2spPVwib25DbG9zZSgpXCIgKGtleXByZXNzKT1cIm9uS2V5UHJlc3MoJGV2ZW50KVwiXHJcbiAgICBbc3R5bGUuZGlzcGxheV09XCJvcHRpb25zLm92ZXJsYXlWaXNpYmlsaXR5RW5hYmxlZCA/ICdibG9jaycgOiAnbm9uZSdcIj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { Component, EventEmitter, forwardRef, Output, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { NG_VALUE_ACCESSOR, ReactiveFormsModule } from "@angular/forms";
|
|
3
|
+
import { TranslateModule } from "@ngx-translate/core";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class BimplusInputCheckboxComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.enterKeyPressed = new EventEmitter();
|
|
8
|
+
this.value = false;
|
|
9
|
+
this.isDisabled = false;
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
11
|
+
this.onChange = (value) => {
|
|
12
|
+
};
|
|
13
|
+
this.onTouched = () => {
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
// Called when the checkbox value changes
|
|
17
|
+
onCheckboxChange(event) {
|
|
18
|
+
const checked = event.target.checked;
|
|
19
|
+
this.value = checked;
|
|
20
|
+
this.onChange(checked); // Notify the parent form about the change
|
|
21
|
+
this.onTouched(); // Mark the control as touched
|
|
22
|
+
}
|
|
23
|
+
writeValue(value) {
|
|
24
|
+
this.value = value;
|
|
25
|
+
}
|
|
26
|
+
registerOnChange(fn) {
|
|
27
|
+
this.onChange = fn;
|
|
28
|
+
}
|
|
29
|
+
registerOnTouched(fn) {
|
|
30
|
+
this.onTouched = fn;
|
|
31
|
+
}
|
|
32
|
+
setDisabledState(isDisabled) {
|
|
33
|
+
this.isDisabled = isDisabled;
|
|
34
|
+
}
|
|
35
|
+
toggleAttributeValue() {
|
|
36
|
+
this.value = !this.value;
|
|
37
|
+
this.onChange(this.value);
|
|
38
|
+
this.onTouched();
|
|
39
|
+
}
|
|
40
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BimplusInputCheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
41
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: BimplusInputCheckboxComponent, isStandalone: true, selector: "lib-bimplus-input-checkbox", outputs: { enterKeyPressed: "enterKeyPressed" }, providers: [
|
|
42
|
+
{
|
|
43
|
+
provide: NG_VALUE_ACCESSOR,
|
|
44
|
+
useExisting: forwardRef(() => BimplusInputCheckboxComponent),
|
|
45
|
+
multi: true,
|
|
46
|
+
},
|
|
47
|
+
], ngImport: i0, template: "<div\r\n class=\"select-checkbox\"\r\n>\r\n <div>\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"value\"\r\n (change)=\"onCheckboxChange($event)\"\r\n (click)=\"toggleAttributeValue()\"\r\n (keypress)=\"toggleAttributeValue()\"\r\n >\r\n <span></span>\r\n </div>\r\n</div>\r\n", styles: [":host{display:flex;flex-direction:row;height:100%}.select-checkbox input{display:none}.select-checkbox input:checked+span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3\" y=\"3\" width=\"12\" height=\"12\" fill=\"%230066CC\"/>%0D%0A<path d=\"M13.0226 7.41421L11.6855 6L8.3428 9.5356L6.33707 7.41416L5 8.82837L8.34269 12.3639L13.0226 7.41421Z\" fill=\"white\"/>%0D%0A</svg>%0D%0A')}.select-checkbox input:checked+span:hover{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3\" y=\"3\" width=\"12\" height=\"12\" fill=\"%23005BB6\"/>%0D%0A<path d=\"M13.0226 7.41421L11.6855 6L8.3428 9.5356L6.33707 7.41416L5 8.82837L8.34269 12.3639L13.0226 7.41421Z\" fill=\"white\"/>%0D%0A</svg>%0D%0A')}.select-checkbox input:checked:disabled+span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3\" y=\"3\" width=\"12\" height=\"12\" fill=\"%23D3D3D3\"/>%0D%0A<path d=\"M13.0226 7.41421L11.6855 6L8.3428 9.5356L6.33707 7.41416L5 8.82837L8.34269 12.3639L13.0226 7.41421Z\" fill=\"white\"/>%0D%0A</svg>%0D%0A')}.select-checkbox input:disabled+span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3.5\" y=\"3.5\" width=\"11\" height=\"11\" fill=\"white\" stroke=\"%23D3D3D3\"/>%0D%0A</svg>%0D%0A')}.select-checkbox span{display:inline-block;background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3.5\" y=\"3.5\" width=\"11\" height=\"11\" fill=\"white\" stroke=\"%238D8D8D\"/>%0D%0A</svg>%0D%0A');width:1.8rem;height:1.8rem;margin-top:.1rem;vertical-align:middle;border:0;background-color:transparent;background-position:-.3rem center;background-size:100% 100%;background-repeat:no-repeat}.select-checkbox span:hover{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3.5\" y=\"3.5\" width=\"11\" height=\"11\" fill=\"%23F5F5F5\" stroke=\"%238D8D8D\"/>%0D%0A</svg>%0D%0A')}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: TranslateModule }], encapsulation: i0.ViewEncapsulation.ShadowDom }); }
|
|
48
|
+
}
|
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BimplusInputCheckboxComponent, decorators: [{
|
|
50
|
+
type: Component,
|
|
51
|
+
args: [{ selector: 'lib-bimplus-input-checkbox', standalone: true, imports: [
|
|
52
|
+
ReactiveFormsModule,
|
|
53
|
+
TranslateModule
|
|
54
|
+
], encapsulation: ViewEncapsulation.ShadowDom, providers: [
|
|
55
|
+
{
|
|
56
|
+
provide: NG_VALUE_ACCESSOR,
|
|
57
|
+
useExisting: forwardRef(() => BimplusInputCheckboxComponent),
|
|
58
|
+
multi: true,
|
|
59
|
+
},
|
|
60
|
+
], template: "<div\r\n class=\"select-checkbox\"\r\n>\r\n <div>\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"value\"\r\n (change)=\"onCheckboxChange($event)\"\r\n (click)=\"toggleAttributeValue()\"\r\n (keypress)=\"toggleAttributeValue()\"\r\n >\r\n <span></span>\r\n </div>\r\n</div>\r\n", styles: [":host{display:flex;flex-direction:row;height:100%}.select-checkbox input{display:none}.select-checkbox input:checked+span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3\" y=\"3\" width=\"12\" height=\"12\" fill=\"%230066CC\"/>%0D%0A<path d=\"M13.0226 7.41421L11.6855 6L8.3428 9.5356L6.33707 7.41416L5 8.82837L8.34269 12.3639L13.0226 7.41421Z\" fill=\"white\"/>%0D%0A</svg>%0D%0A')}.select-checkbox input:checked+span:hover{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3\" y=\"3\" width=\"12\" height=\"12\" fill=\"%23005BB6\"/>%0D%0A<path d=\"M13.0226 7.41421L11.6855 6L8.3428 9.5356L6.33707 7.41416L5 8.82837L8.34269 12.3639L13.0226 7.41421Z\" fill=\"white\"/>%0D%0A</svg>%0D%0A')}.select-checkbox input:checked:disabled+span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3\" y=\"3\" width=\"12\" height=\"12\" fill=\"%23D3D3D3\"/>%0D%0A<path d=\"M13.0226 7.41421L11.6855 6L8.3428 9.5356L6.33707 7.41416L5 8.82837L8.34269 12.3639L13.0226 7.41421Z\" fill=\"white\"/>%0D%0A</svg>%0D%0A')}.select-checkbox input:disabled+span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3.5\" y=\"3.5\" width=\"11\" height=\"11\" fill=\"white\" stroke=\"%23D3D3D3\"/>%0D%0A</svg>%0D%0A')}.select-checkbox span{display:inline-block;background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3.5\" y=\"3.5\" width=\"11\" height=\"11\" fill=\"white\" stroke=\"%238D8D8D\"/>%0D%0A</svg>%0D%0A');width:1.8rem;height:1.8rem;margin-top:.1rem;vertical-align:middle;border:0;background-color:transparent;background-position:-.3rem center;background-size:100% 100%;background-repeat:no-repeat}.select-checkbox span:hover{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3.5\" y=\"3.5\" width=\"11\" height=\"11\" fill=\"%23F5F5F5\" stroke=\"%238D8D8D\"/>%0D%0A</svg>%0D%0A')}\n"] }]
|
|
61
|
+
}], propDecorators: { enterKeyPressed: [{
|
|
62
|
+
type: Output
|
|
63
|
+
}] } });
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy1pbnB1dC1jaGVja2JveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYmltcGx1cy1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9iaW1wbHVzLWlucHV0LWNoZWNrYm94L2JpbXBsdXMtaW5wdXQtY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1pbnB1dC1jaGVja2JveC9iaW1wbHVzLWlucHV0LWNoZWNrYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1AsWUFBWSxFQUNaLFVBQVUsRUFDVixNQUFNLEVBQ04saUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFSCxpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ3RCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQW9CdEQsTUFBTSxPQUFPLDZCQUE2QjtJQWxCMUM7UUFtQlksb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXJELFVBQUssR0FBWSxLQUFLLENBQUM7UUFDdkIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUU1Qiw2REFBNkQ7UUFDN0QsYUFBUSxHQUFHLENBQUMsS0FBYyxFQUFFLEVBQUU7UUFDOUIsQ0FBQyxDQUFDO1FBQ0YsY0FBUyxHQUFHLEdBQUcsRUFBRTtRQUNqQixDQUFDLENBQUM7S0ErQkg7SUE3QkMseUNBQXlDO0lBQ3pDLGdCQUFnQixDQUFDLEtBQVk7UUFDM0IsTUFBTSxPQUFPLEdBQUksS0FBSyxDQUFDLE1BQTJCLENBQUMsT0FBTyxDQUFDO1FBQzNELElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQywwQ0FBMEM7UUFDbEUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsOEJBQThCO0lBQ2xELENBQUM7SUFFRCxVQUFVLENBQUMsS0FBYztRQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBNEI7UUFDM0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQWM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQW1CO1FBQ2xDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7K0dBeENVLDZCQUE2QjttR0FBN0IsNkJBQTZCLDBIQVI3QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsNkJBQTZCLENBQUM7Z0JBQzVELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiwwQkM5QkgsNlRBY0EseTdFRElJLG1CQUFtQiw4QkFDbkIsZUFBZTs7NEZBYU4sNkJBQTZCO2tCQWxCekMsU0FBUzsrQkFDRSw0QkFBNEIsY0FDMUIsSUFBSSxXQUNQO3dCQUNQLG1CQUFtQjt3QkFDbkIsZUFBZTtxQkFDaEIsaUJBR2MsaUJBQWlCLENBQUMsU0FBUyxhQUMvQjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSw4QkFBOEIsQ0FBQzs0QkFDNUQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7OEJBR1MsZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50XHJcbiAgLCBFdmVudEVtaXR0ZXJcclxuICAsIGZvcndhcmRSZWZcclxuICAsIE91dHB1dFxyXG4gICwgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBDb250cm9sVmFsdWVBY2Nlc3NvclxyXG4gICwgTkdfVkFMVUVfQUNDRVNTT1JcclxuICAsIFJlYWN0aXZlRm9ybXNNb2R1bGVcclxufSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWJpbXBsdXMtaW5wdXQtY2hlY2tib3gnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIFRyYW5zbGF0ZU1vZHVsZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2JpbXBsdXMtaW5wdXQtY2hlY2tib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9iaW1wbHVzLWlucHV0LWNoZWNrYm94LmNvbXBvbmVudC5sZXNzJyxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5TaGFkb3dEb20sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBCaW1wbHVzSW5wdXRDaGVja2JveENvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmltcGx1c0lucHV0Q2hlY2tib3hDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgQE91dHB1dCgpIGVudGVyS2V5UHJlc3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgdmFsdWU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc0Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcclxuICBvbkNoYW5nZSA9ICh2YWx1ZTogYm9vbGVhbikgPT4ge1xyXG4gIH07XHJcbiAgb25Ub3VjaGVkID0gKCkgPT4ge1xyXG4gIH07XHJcblxyXG4gIC8vIENhbGxlZCB3aGVuIHRoZSBjaGVja2JveCB2YWx1ZSBjaGFuZ2VzXHJcbiAgb25DaGVja2JveENoYW5nZShldmVudDogRXZlbnQpIHtcclxuICAgIGNvbnN0IGNoZWNrZWQgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNoZWNrZWQ7XHJcbiAgICB0aGlzLnZhbHVlID0gY2hlY2tlZDtcclxuICAgIHRoaXMub25DaGFuZ2UoY2hlY2tlZCk7IC8vIE5vdGlmeSB0aGUgcGFyZW50IGZvcm0gYWJvdXQgdGhlIGNoYW5nZVxyXG4gICAgdGhpcy5vblRvdWNoZWQoKTsgLy8gTWFyayB0aGUgY29udHJvbCBhcyB0b3VjaGVkXHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWQpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzRGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlQXR0cmlidXRlVmFsdWUoKSB7XHJcbiAgICB0aGlzLnZhbHVlID0gIXRoaXMudmFsdWU7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gICAgdGhpcy5vblRvdWNoZWQoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwic2VsZWN0LWNoZWNrYm94XCJcclxuPlxyXG4gIDxkaXY+XHJcbiAgICA8aW5wdXRcclxuICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgW2NoZWNrZWRdPVwidmFsdWVcIlxyXG4gICAgICAoY2hhbmdlKT1cIm9uQ2hlY2tib3hDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVBdHRyaWJ1dGVWYWx1ZSgpXCJcclxuICAgICAgKGtleXByZXNzKT1cInRvZ2dsZUF0dHJpYnV0ZVZhbHVlKClcIlxyXG4gICAgPlxyXG4gICAgPHNwYW4+PC9zcGFuPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { Component, EventEmitter, forwardRef, Input, Output, ViewEncapsulation, signal, booleanAttribute, ViewChild } from '@angular/core';
|
|
2
|
+
import { NG_VALUE_ACCESSOR, ReactiveFormsModule, FormsModule } from "@angular/forms";
|
|
3
|
+
import { TranslateModule } from "@ngx-translate/core";
|
|
4
|
+
import { NgSelectModule } from '@ng-select/ng-select';
|
|
5
|
+
import { BehaviorSubject } from 'rxjs';
|
|
6
|
+
import { CommonModule } from '@angular/common';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/common";
|
|
9
|
+
import * as i2 from "@angular/forms";
|
|
10
|
+
import * as i3 from "@ng-select/ng-select";
|
|
11
|
+
;
|
|
12
|
+
export class BimplusInputComboboxComponent {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.placeholder = '';
|
|
15
|
+
this.enterKeyPressed = new EventEmitter();
|
|
16
|
+
this._validValue = signal(true);
|
|
17
|
+
this._type = 'enum';
|
|
18
|
+
this._enumdefinition = [];
|
|
19
|
+
this._selectedValue = null;
|
|
20
|
+
this.activeEnumSubject$ = new BehaviorSubject(null);
|
|
21
|
+
this.value = '';
|
|
22
|
+
this.isDisabled = false;
|
|
23
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
24
|
+
this.onChange = (value) => {
|
|
25
|
+
};
|
|
26
|
+
this.onTouched = () => {
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
set validValue(valid_value) {
|
|
30
|
+
this._validValue.set(valid_value);
|
|
31
|
+
}
|
|
32
|
+
set enumdefinition(enum_definition) {
|
|
33
|
+
if (!enum_definition) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
if (Array.isArray(enum_definition)) {
|
|
37
|
+
enum_definition.forEach((value, index) => {
|
|
38
|
+
this._enumdefinition.push({ id: index.toString(), name: value });
|
|
39
|
+
});
|
|
40
|
+
this._type = 'array';
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
Object.keys(enum_definition).forEach((key) => {
|
|
44
|
+
if (typeof key === 'string') {
|
|
45
|
+
this._enumdefinition.push({ id: key, name: enum_definition[key] });
|
|
46
|
+
}
|
|
47
|
+
if (typeof key === 'number') {
|
|
48
|
+
this._enumdefinition.push({ id: key, name: enum_definition[Number(key)] });
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
_setActiveEnumValue() {
|
|
53
|
+
const sel = this._enumdefinition.find((enumDef) => enumDef.id === this._selectedValue);
|
|
54
|
+
if (!sel) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
this.activeEnum = sel;
|
|
58
|
+
}
|
|
59
|
+
_setActiveArrayValue() {
|
|
60
|
+
const sel = this._enumdefinition.find((enumDef) => enumDef.name === this._selectedValue);
|
|
61
|
+
if (!sel) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
this.activeEnum = sel;
|
|
65
|
+
}
|
|
66
|
+
set selectedValue(value) {
|
|
67
|
+
this._selectedValue = value;
|
|
68
|
+
if (this._type === 'enum') {
|
|
69
|
+
this._setActiveEnumValue();
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
if (this._type === 'array') {
|
|
73
|
+
this._setActiveArrayValue();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
ngOnInit() {
|
|
77
|
+
this.activeEnumSubject$.subscribe({
|
|
78
|
+
next: (value) => {
|
|
79
|
+
if (this._type === 'enum') {
|
|
80
|
+
this.value = value?.id ?? '';
|
|
81
|
+
this.onChange(this.value);
|
|
82
|
+
}
|
|
83
|
+
if (this._type === 'array') {
|
|
84
|
+
this.value = value?.name ?? '';
|
|
85
|
+
this.onChange(this.value);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
set activeEnum(value) {
|
|
91
|
+
this.activeEnumSubject$.next(value);
|
|
92
|
+
}
|
|
93
|
+
get activeEnum() {
|
|
94
|
+
return this.activeEnumSubject$.getValue();
|
|
95
|
+
}
|
|
96
|
+
writeValue(value) {
|
|
97
|
+
this.value = value;
|
|
98
|
+
}
|
|
99
|
+
registerOnChange(fn) {
|
|
100
|
+
this.onChange = fn;
|
|
101
|
+
}
|
|
102
|
+
registerOnTouched(fn) {
|
|
103
|
+
this.onTouched = fn;
|
|
104
|
+
}
|
|
105
|
+
setDisabledState(isDisabled) {
|
|
106
|
+
this.isDisabled = isDisabled;
|
|
107
|
+
}
|
|
108
|
+
handleInput(event) {
|
|
109
|
+
const input = event.target;
|
|
110
|
+
this.value = input.value;
|
|
111
|
+
this.onChange(this.value);
|
|
112
|
+
}
|
|
113
|
+
handleBlur() {
|
|
114
|
+
this.onTouched();
|
|
115
|
+
}
|
|
116
|
+
handleKeyDown(event) {
|
|
117
|
+
if (event.key !== 'Enter') {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
this.enterKeyPressed.emit();
|
|
121
|
+
}
|
|
122
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BimplusInputComboboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
123
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.12", type: BimplusInputComboboxComponent, isStandalone: true, selector: "lib-bimplus-input-combobox", inputs: { placeholder: "placeholder", validValue: ["validValue", "validValue", booleanAttribute], enumdefinition: "enumdefinition", selectedValue: "selectedValue" }, outputs: { enterKeyPressed: "enterKeyPressed" }, providers: [
|
|
124
|
+
{
|
|
125
|
+
provide: NG_VALUE_ACCESSOR,
|
|
126
|
+
useExisting: forwardRef(() => BimplusInputComboboxComponent),
|
|
127
|
+
multi: true,
|
|
128
|
+
},
|
|
129
|
+
], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputValueBox"], descendants: true }], ngImport: i0, template: "<div\r\n class=\"enum-wrapper\"\r\n [class.invalid-value]=\"!_validValue()\"\r\n>\r\n <div class=\"double-enumeration\">\r\n <ng-select class=\"enum-dropdown\" [(ngModel)]=\"activeEnum\" [clearable]=\"false\" [searchable]=\"_enumdefinition.length >= 10\">\r\n <ng-option *ngFor=\"let val of _enumdefinition\" [value]=\"val\">{{val.name}}</ng-option>\r\n </ng-select>\r\n </div>\r\n</div>\r\n", styles: [".ng-select.ng-select-opened>.ng-select-container{background:var(--select-container-open-background-color-enabled);border-color:var(--select-container-open-border-color-enabled)}.ng-select.ng-select-opened>.ng-select-container:hover{box-shadow:none}.ng-select.ng-select-opened>.ng-select-container .ng-arrow{top:-2px;border-color:transparent transparent var(--select-container-open-arrow-border-color-enabled);border-width:0 5px 5px}.ng-select.ng-select-opened>.ng-select-container .ng-arrow:hover{border-color:transparent transparent var(--select-container-open-arrow-border-color-hovered)}.ng-select.ng-select-opened.ng-select-top>.ng-select-container{border-top-right-radius:0;border-top-left-radius:0}.ng-select.ng-select-opened.ng-select-right>.ng-select-container{border-top-right-radius:0;border-bottom-right-radius:0}.ng-select.ng-select-opened.ng-select-bottom>.ng-select-container{border-bottom-right-radius:0;border-bottom-left-radius:0}.ng-select.ng-select-opened.ng-select-left>.ng-select-container{border-top-left-radius:0;border-bottom-left-radius:0}.ng-select.ng-select-disabled>.ng-select-container{background-color:var(--select-container-background-color-disabled)}.ng-select .ng-has-value .ng-placeholder{display:none}.ng-select .ng-select-container{color:var(--select-container-text-color-enabled);background-color:var(--select-container-background-color-enabled);border-radius:0;border:1px solid var(--select-container-border-color-enabled);min-height:36px;align-items:center}.ng-select .ng-select-container:hover{box-shadow:0 1px 0 var(--select-container-box-shadow-color-hovered);background-color:var(--select-container-background-color-hovered)}.ng-select .ng-select-container .ng-value-container{align-items:center;padding-left:10px}[dir=rtl] .ng-select .ng-select-container .ng-value-container{padding-right:10px;padding-left:0}.ng-select .ng-select-container .ng-value-container .ng-placeholder{color:var(--select-container-placeholder-text-color-enabled)}.ng-select.ng-select-single .ng-select-container{height:36px}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{top:5px;left:0;padding-left:10px;padding-right:50px}[dir=rtl] .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{padding-right:10px;padding-left:50px}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value{background-color:var(--select-multiple-disabled-container-value-background-color-enabled);border:1px solid var(--select-multiple-disabled-container-value-border-color-enabled)}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-label{padding:0 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-top:5px;padding-left:7px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-right:7px;padding-left:0}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{font-size:.9em;margin-bottom:5px;color:var(--select-multiple-container-value-text-color-enabled);background-color:var(--select-multiple-container-value-background-color-enabled);border-radius:2px;margin-right:5px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{margin-right:0;margin-left:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled{background-color:var(--select-multiple-container-value-background-color-disabled)}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:5px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:0;padding-right:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-label,.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:inline-block;padding:1px 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon:hover{background-color:var(--select-multiple-container-value-icon-background-color-hovered)}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-right:1px solid var(--select-multiple-container-value-icon-left-border-color-enbabled)}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-left:1px solid var(--select-multiple-container-value-icon-left-border-color-enbabled);border-right:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:1px solid var(--select-multiple-container-value-icon-right-border-color-enbabled)}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:0;border-right:1px solid var(--select-multiple-container-value-icon-right-border-color-enbabled)}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 0 3px 3px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 3px 3px 0}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input>input{color:var(--select-multiple-container-value-input-text-color-enabled)}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{top:5px;padding-bottom:5px;padding-left:3px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{padding-right:3px;padding-left:0}.ng-select .ng-clear-wrapper{color:var(--select-clear-wrapper-text-color-enabled)}.ng-select .ng-clear-wrapper:hover .ng-clear{color:var(--select-clear-wrapper-text-color-hovered)}.ng-select .ng-clear-wrapper:focus .ng-clear{color:var(--select-clear-wrapper-text-color-focused)}.ng-select .ng-clear-wrapper:focus{outline:none}.ng-select .ng-spinner-zone{padding:5px 5px 0 0}[dir=rtl] .ng-select .ng-spinner-zone{padding:5px 0 0 5px}.ng-select .ng-arrow-wrapper{width:25px;padding-right:5px}[dir=rtl] .ng-select .ng-arrow-wrapper{padding-left:5px;padding-right:0}.ng-select .ng-arrow-wrapper:hover .ng-arrow{border-top-color:var(--select-arrow-wrapper-border-color-hovored)}.ng-select .ng-arrow-wrapper .ng-arrow{border-color:var(--select-arrow-wrapper-border-color-enabled) transparent transparent;border-style:solid;border-width:5px 5px 2.5px}.ng-dropdown-panel{background-color:var(--dropdown-panel-background-color-enabled);border:1px solid var(--dropdown-panel-border-color-enabled);box-shadow:0 1px 0 var(--dropdown-panel-box-shadow-color-enabled);left:0}.ng-dropdown-panel.ng-select-top{bottom:100%;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-color:var(--dropdown-panel-select-top-border-color-enabled);margin-bottom:-1px}.ng-dropdown-panel.ng-select-top .ng-dropdown-panel-items .ng-option:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.ng-dropdown-panel.ng-select-right{left:100%;top:0;border-top-right-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-bottom-color:var(--dropdown-panel-select-right-border-color-enabled);margin-bottom:-1px}.ng-dropdown-panel.ng-select-right .ng-dropdown-panel-items .ng-option:first-child{border-top-right-radius:4px}.ng-dropdown-panel.ng-select-bottom{top:100%;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-color:var(--dropdown-panel-select-bottom-border-color-enabled);margin-top:-1px}.ng-dropdown-panel.ng-select-bottom .ng-dropdown-panel-items .ng-option:last-child{border-bottom-right-radius:0;border-bottom-left-radius:0}.ng-dropdown-panel.ng-select-left{left:-100%;top:0;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-bottom-color:var(--dropdown-panel-select-left-border-color-enabled);margin-bottom:-1px}.ng-dropdown-panel.ng-select-left .ng-dropdown-panel-items .ng-option:first-child{border-top-left-radius:4px}.ng-dropdown-panel .ng-dropdown-header{border-bottom:1px solid var(--dropdown-panel-header-border-color-enabled);padding:5px 7px}.ng-dropdown-panel .ng-dropdown-footer{border-top:1px solid var(--dropdown-panel-footer-border-color-enabled);padding:5px 7px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{-webkit-user-select:none;user-select:none;padding:8px 10px;font-weight:500;color:var(--dropdown-panel-items-text-color-enabled);cursor:pointer}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-disabled{cursor:default}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-marked{background-color:var(--dropdown-panel-items-marked-background-color-enabled)}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected.ng-option-marked{color:var(--dropdown-panel-items-option-selected-text-color-enabled);background-color:var(--dropdown-panel-items-option-selected-background-color-enabled);font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{background-color:var(--dropdown-panel-items-option-background-color-enabled);color:var(--dropdown-panel-items-option-text-color-enabled);padding:8px 10px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked{color:var(--dropdown-panel-items-option-selected2-text-color-enabled);background-color:var(--dropdown-panel-items-option-selected2-background-color-enabled)}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected .ng-option-label,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked .ng-option-label{font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked{background-color:var(--dropdown-panel-items-marked-background-color-enabled);color:var(--dropdown-panel-items-marked-text-color-enabled)}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-disabled{color:var(--dropdown-panel-items-text-color-disabled)}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-left:22px}[dir=rtl] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-right:22px;padding-left:0}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{font-size:80%;font-weight:400;padding-right:5px}[dir=rtl] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{padding-left:5px;padding-right:0}[dir=rtl] .ng-dropdown-panel{direction:rtl;text-align:right}:host{display:flex;flex-direction:row}.enum-wrapper{flex:1;display:flex;border:.1rem solid;border-color:var(--issue-details-view-select-border-color);background-color:var(--issue-details-view-select-background-color);flex-direction:row;width:100%;box-sizing:border-box}.enum-wrapper:hover{background-color:var(--control-background-hover-color)}.enum-wrapper .double-enumeration{flex:1;display:flex;box-sizing:border-box;margin:0;border:none;outline:none;min-width:0;font-size:1em;font-family:Source Sans Pro,Helvetica,Arial,tahoma,sans-serif;font-weight:400;background-color:transparent}.enum-wrapper .double-enumeration>.enum-dropdown{width:100%;flex:1}.enum-wrapper .double-enumeration ng-select .ng-select-container{display:flex;flex-direction:1;height:2rem;min-height:2rem;max-height:2rem;border:none}.enum-wrapper .double-enumeration ng-select .ng-select-container .ng-value-container{flex:1;padding-left:.3rem}.enum-wrapper .double-enumeration ng-select .ng-select-container .ng-value-container .ng-value{padding-left:0}.enum-wrapper .double-enumeration ng-select .ng-select-container .ng-value-container .ng-input{top:0;padding-left:.3rem;padding-right:0}.enum-wrapper .double-enumeration ng-select .ng-select-container .ng-arrow-wrapper{flex:0}.enum-wrapper.invalid-value{border-color:var(--object-props-table-value-invalid-border-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i3.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "ariaLabel", "markFirst", "placeholder", "fixedPlaceholder", "notFoundText", "typeToSearchText", "preventToggleOnRightClick", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "ngClass", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick", "keyDownFn"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "component", type: i3.NgOptionComponent, selector: "ng-option", inputs: ["value", "disabled"] }, { kind: "ngmodule", type: TranslateModule }], encapsulation: i0.ViewEncapsulation.ShadowDom }); }
|
|
130
|
+
}
|
|
131
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BimplusInputComboboxComponent, decorators: [{
|
|
132
|
+
type: Component,
|
|
133
|
+
args: [{ selector: 'lib-bimplus-input-combobox', standalone: true, imports: [
|
|
134
|
+
CommonModule,
|
|
135
|
+
FormsModule,
|
|
136
|
+
ReactiveFormsModule,
|
|
137
|
+
NgSelectModule,
|
|
138
|
+
TranslateModule
|
|
139
|
+
], encapsulation: ViewEncapsulation.ShadowDom, providers: [
|
|
140
|
+
{
|
|
141
|
+
provide: NG_VALUE_ACCESSOR,
|
|
142
|
+
useExisting: forwardRef(() => BimplusInputComboboxComponent),
|
|
143
|
+
multi: true,
|
|
144
|
+
},
|
|
145
|
+
], template: "<div\r\n class=\"enum-wrapper\"\r\n [class.invalid-value]=\"!_validValue()\"\r\n>\r\n <div class=\"double-enumeration\">\r\n <ng-select class=\"enum-dropdown\" [(ngModel)]=\"activeEnum\" [clearable]=\"false\" [searchable]=\"_enumdefinition.length >= 10\">\r\n <ng-option *ngFor=\"let val of _enumdefinition\" [value]=\"val\">{{val.name}}</ng-option>\r\n </ng-select>\r\n </div>\r\n</div>\r\n", styles: [".ng-select.ng-select-opened>.ng-select-container{background:var(--select-container-open-background-color-enabled);border-color:var(--select-container-open-border-color-enabled)}.ng-select.ng-select-opened>.ng-select-container:hover{box-shadow:none}.ng-select.ng-select-opened>.ng-select-container .ng-arrow{top:-2px;border-color:transparent transparent var(--select-container-open-arrow-border-color-enabled);border-width:0 5px 5px}.ng-select.ng-select-opened>.ng-select-container .ng-arrow:hover{border-color:transparent transparent var(--select-container-open-arrow-border-color-hovered)}.ng-select.ng-select-opened.ng-select-top>.ng-select-container{border-top-right-radius:0;border-top-left-radius:0}.ng-select.ng-select-opened.ng-select-right>.ng-select-container{border-top-right-radius:0;border-bottom-right-radius:0}.ng-select.ng-select-opened.ng-select-bottom>.ng-select-container{border-bottom-right-radius:0;border-bottom-left-radius:0}.ng-select.ng-select-opened.ng-select-left>.ng-select-container{border-top-left-radius:0;border-bottom-left-radius:0}.ng-select.ng-select-disabled>.ng-select-container{background-color:var(--select-container-background-color-disabled)}.ng-select .ng-has-value .ng-placeholder{display:none}.ng-select .ng-select-container{color:var(--select-container-text-color-enabled);background-color:var(--select-container-background-color-enabled);border-radius:0;border:1px solid var(--select-container-border-color-enabled);min-height:36px;align-items:center}.ng-select .ng-select-container:hover{box-shadow:0 1px 0 var(--select-container-box-shadow-color-hovered);background-color:var(--select-container-background-color-hovered)}.ng-select .ng-select-container .ng-value-container{align-items:center;padding-left:10px}[dir=rtl] .ng-select .ng-select-container .ng-value-container{padding-right:10px;padding-left:0}.ng-select .ng-select-container .ng-value-container .ng-placeholder{color:var(--select-container-placeholder-text-color-enabled)}.ng-select.ng-select-single .ng-select-container{height:36px}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{top:5px;left:0;padding-left:10px;padding-right:50px}[dir=rtl] .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{padding-right:10px;padding-left:50px}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value{background-color:var(--select-multiple-disabled-container-value-background-color-enabled);border:1px solid var(--select-multiple-disabled-container-value-border-color-enabled)}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-label{padding:0 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-top:5px;padding-left:7px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-right:7px;padding-left:0}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{font-size:.9em;margin-bottom:5px;color:var(--select-multiple-container-value-text-color-enabled);background-color:var(--select-multiple-container-value-background-color-enabled);border-radius:2px;margin-right:5px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{margin-right:0;margin-left:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled{background-color:var(--select-multiple-container-value-background-color-disabled)}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:5px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:0;padding-right:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-label,.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:inline-block;padding:1px 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon:hover{background-color:var(--select-multiple-container-value-icon-background-color-hovered)}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-right:1px solid var(--select-multiple-container-value-icon-left-border-color-enbabled)}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-left:1px solid var(--select-multiple-container-value-icon-left-border-color-enbabled);border-right:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:1px solid var(--select-multiple-container-value-icon-right-border-color-enbabled)}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:0;border-right:1px solid var(--select-multiple-container-value-icon-right-border-color-enbabled)}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 0 3px 3px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 3px 3px 0}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input>input{color:var(--select-multiple-container-value-input-text-color-enabled)}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{top:5px;padding-bottom:5px;padding-left:3px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{padding-right:3px;padding-left:0}.ng-select .ng-clear-wrapper{color:var(--select-clear-wrapper-text-color-enabled)}.ng-select .ng-clear-wrapper:hover .ng-clear{color:var(--select-clear-wrapper-text-color-hovered)}.ng-select .ng-clear-wrapper:focus .ng-clear{color:var(--select-clear-wrapper-text-color-focused)}.ng-select .ng-clear-wrapper:focus{outline:none}.ng-select .ng-spinner-zone{padding:5px 5px 0 0}[dir=rtl] .ng-select .ng-spinner-zone{padding:5px 0 0 5px}.ng-select .ng-arrow-wrapper{width:25px;padding-right:5px}[dir=rtl] .ng-select .ng-arrow-wrapper{padding-left:5px;padding-right:0}.ng-select .ng-arrow-wrapper:hover .ng-arrow{border-top-color:var(--select-arrow-wrapper-border-color-hovored)}.ng-select .ng-arrow-wrapper .ng-arrow{border-color:var(--select-arrow-wrapper-border-color-enabled) transparent transparent;border-style:solid;border-width:5px 5px 2.5px}.ng-dropdown-panel{background-color:var(--dropdown-panel-background-color-enabled);border:1px solid var(--dropdown-panel-border-color-enabled);box-shadow:0 1px 0 var(--dropdown-panel-box-shadow-color-enabled);left:0}.ng-dropdown-panel.ng-select-top{bottom:100%;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-color:var(--dropdown-panel-select-top-border-color-enabled);margin-bottom:-1px}.ng-dropdown-panel.ng-select-top .ng-dropdown-panel-items .ng-option:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.ng-dropdown-panel.ng-select-right{left:100%;top:0;border-top-right-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-bottom-color:var(--dropdown-panel-select-right-border-color-enabled);margin-bottom:-1px}.ng-dropdown-panel.ng-select-right .ng-dropdown-panel-items .ng-option:first-child{border-top-right-radius:4px}.ng-dropdown-panel.ng-select-bottom{top:100%;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-color:var(--dropdown-panel-select-bottom-border-color-enabled);margin-top:-1px}.ng-dropdown-panel.ng-select-bottom .ng-dropdown-panel-items .ng-option:last-child{border-bottom-right-radius:0;border-bottom-left-radius:0}.ng-dropdown-panel.ng-select-left{left:-100%;top:0;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-bottom-color:var(--dropdown-panel-select-left-border-color-enabled);margin-bottom:-1px}.ng-dropdown-panel.ng-select-left .ng-dropdown-panel-items .ng-option:first-child{border-top-left-radius:4px}.ng-dropdown-panel .ng-dropdown-header{border-bottom:1px solid var(--dropdown-panel-header-border-color-enabled);padding:5px 7px}.ng-dropdown-panel .ng-dropdown-footer{border-top:1px solid var(--dropdown-panel-footer-border-color-enabled);padding:5px 7px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{-webkit-user-select:none;user-select:none;padding:8px 10px;font-weight:500;color:var(--dropdown-panel-items-text-color-enabled);cursor:pointer}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-disabled{cursor:default}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-marked{background-color:var(--dropdown-panel-items-marked-background-color-enabled)}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected.ng-option-marked{color:var(--dropdown-panel-items-option-selected-text-color-enabled);background-color:var(--dropdown-panel-items-option-selected-background-color-enabled);font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{background-color:var(--dropdown-panel-items-option-background-color-enabled);color:var(--dropdown-panel-items-option-text-color-enabled);padding:8px 10px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked{color:var(--dropdown-panel-items-option-selected2-text-color-enabled);background-color:var(--dropdown-panel-items-option-selected2-background-color-enabled)}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected .ng-option-label,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked .ng-option-label{font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked{background-color:var(--dropdown-panel-items-marked-background-color-enabled);color:var(--dropdown-panel-items-marked-text-color-enabled)}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-disabled{color:var(--dropdown-panel-items-text-color-disabled)}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-left:22px}[dir=rtl] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-right:22px;padding-left:0}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{font-size:80%;font-weight:400;padding-right:5px}[dir=rtl] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{padding-left:5px;padding-right:0}[dir=rtl] .ng-dropdown-panel{direction:rtl;text-align:right}:host{display:flex;flex-direction:row}.enum-wrapper{flex:1;display:flex;border:.1rem solid;border-color:var(--issue-details-view-select-border-color);background-color:var(--issue-details-view-select-background-color);flex-direction:row;width:100%;box-sizing:border-box}.enum-wrapper:hover{background-color:var(--control-background-hover-color)}.enum-wrapper .double-enumeration{flex:1;display:flex;box-sizing:border-box;margin:0;border:none;outline:none;min-width:0;font-size:1em;font-family:Source Sans Pro,Helvetica,Arial,tahoma,sans-serif;font-weight:400;background-color:transparent}.enum-wrapper .double-enumeration>.enum-dropdown{width:100%;flex:1}.enum-wrapper .double-enumeration ng-select .ng-select-container{display:flex;flex-direction:1;height:2rem;min-height:2rem;max-height:2rem;border:none}.enum-wrapper .double-enumeration ng-select .ng-select-container .ng-value-container{flex:1;padding-left:.3rem}.enum-wrapper .double-enumeration ng-select .ng-select-container .ng-value-container .ng-value{padding-left:0}.enum-wrapper .double-enumeration ng-select .ng-select-container .ng-value-container .ng-input{top:0;padding-left:.3rem;padding-right:0}.enum-wrapper .double-enumeration ng-select .ng-select-container .ng-arrow-wrapper{flex:0}.enum-wrapper.invalid-value{border-color:var(--object-props-table-value-invalid-border-color)}\n"] }]
|
|
146
|
+
}], propDecorators: { inputElement: [{
|
|
147
|
+
type: ViewChild,
|
|
148
|
+
args: ['inputValueBox', { static: false }]
|
|
149
|
+
}], placeholder: [{
|
|
150
|
+
type: Input
|
|
151
|
+
}], enterKeyPressed: [{
|
|
152
|
+
type: Output
|
|
153
|
+
}], validValue: [{
|
|
154
|
+
type: Input,
|
|
155
|
+
args: [{ transform: booleanAttribute }]
|
|
156
|
+
}], enumdefinition: [{
|
|
157
|
+
type: Input
|
|
158
|
+
}], selectedValue: [{
|
|
159
|
+
type: Input
|
|
160
|
+
}] } });
|
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy1pbnB1dC1jb21ib2JveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYmltcGx1cy1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9iaW1wbHVzLWlucHV0LWNvbWJvYm94L2JpbXBsdXMtaW5wdXQtY29tYm9ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1pbnB1dC1jb21ib2JveC9iaW1wbHVzLWlucHV0LWNvbWJvYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQ2QsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUNOLGlCQUFpQixFQUNqQixNQUFNLEVBQ04sZ0JBQWdCLEVBQ2hCLFNBQVMsRUFHWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixXQUFXLEVBQ2QsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDOzs7OztBQUs3QyxDQUFDO0FBd0JGLE1BQU0sT0FBTyw2QkFBNkI7SUF0QjFDO1FBd0JXLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBQ3hCLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUUzQyxnQkFBVyxHQUFHLE1BQU0sQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUt0QyxVQUFLLEdB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LDhCQUE4QixDQUFDOzRCQUM1RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjs4QkFJOEMsWUFBWTtzQkFBMUQsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNwQyxXQUFXO3NCQUFuQixLQUFLO2dCQUNJLGVBQWU7c0JBQXhCLE1BQU07Z0JBR3FDLFVBQVU7c0JBQXJELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBTXpCLGNBQWM7c0JBQTFCLEtBQUs7Z0JBdUNPLGFBQWE7c0JBQXpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRcclxuICAsIEV2ZW50RW1pdHRlclxyXG4gICwgZm9yd2FyZFJlZlxyXG4gICwgSW5wdXRcclxuICAsIE91dHB1dFxyXG4gICwgVmlld0VuY2Fwc3VsYXRpb25cclxuICAsIHNpZ25hbFxyXG4gICwgYm9vbGVhbkF0dHJpYnV0ZVxyXG4gICwgVmlld0NoaWxkXHJcbiAgLCBFbGVtZW50UmVmXHJcbiAgLCBPbkluaXRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3JcclxuICAsIE5HX1ZBTFVFX0FDQ0VTU09SXHJcbiAgLCBSZWFjdGl2ZUZvcm1zTW9kdWxlXHJcbiAgLCBGb3Jtc01vZHVsZVxyXG59IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xyXG5pbXBvcnQgeyBOZ1NlbGVjdE1vZHVsZSB9IGZyb20gJ0BuZy1zZWxlY3Qvbmctc2VsZWN0JztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbmludGVyZmFjZSBFbnVtRGVmaW5pdGlvbiB7XHJcbiAgaWQ6IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbn07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1iaW1wbHVzLWlucHV0LWNvbWJvYm94JyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIE5nU2VsZWN0TW9kdWxlLFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vYmltcGx1cy1pbnB1dC1jb21ib2JveC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2JpbXBsdXMtaW5wdXQtY29tYm9ib3guY29tcG9uZW50Lmxlc3MnLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLlNoYWRvd0RvbSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEJpbXBsdXNJbnB1dENvbWJvYm94Q29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgQmltcGx1c0lucHV0Q29tYm9ib3hDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKCdpbnB1dFZhbHVlQm94JywgeyBzdGF0aWM6IGZhbHNlIH0pIGlucHV0RWxlbWVudCE6IEVsZW1lbnRSZWY7XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xyXG4gIEBPdXRwdXQoKSBlbnRlcktleVByZXNzZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIHByb3RlY3RlZCBfdmFsaWRWYWx1ZSA9IHNpZ25hbDxib29sZWFuPih0cnVlKTtcclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2V0IHZhbGlkVmFsdWUodmFsaWRfdmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX3ZhbGlkVmFsdWUuc2V0KHZhbGlkX3ZhbHVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3R5cGU6IHN0cmluZyA9ICdlbnVtJztcclxuICBwcm90ZWN0ZWQgX2VudW1kZWZpbml0aW9uOiBBcnJheTxFbnVtRGVmaW5pdGlvbj4gPSBbXTtcclxuICBASW5wdXQoKSBzZXQgZW51bWRlZmluaXRpb24oZW51bV9kZWZpbml0aW9uOiBSZWNvcmQ8bnVtYmVyIHwgc3RyaW5nLCBzdHJpbmc+IHwgdW5kZWZpbmVkIHwgQXJyYXk8c3RyaW5nPikge1xyXG4gICAgaWYoIWVudW1fZGVmaW5pdGlvbikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZihBcnJheS5pc0FycmF5KGVudW1fZGVmaW5pdGlvbikpIHtcclxuICAgICAgZW51bV9kZWZpbml0aW9uLmZvckVhY2goKHZhbHVlLCBpbmRleCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX2VudW1kZWZpbml0aW9uLnB1c2goeyBpZDogaW5kZXgudG9TdHJpbmcoKSwgbmFtZTogdmFsdWUgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLl90eXBlID0gJ2FycmF5JztcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgT2JqZWN0LmtleXMoZW51bV9kZWZpbml0aW9uKS5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgICAgaWYodHlwZW9mIGtleSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICB0aGlzLl9lbnVtZGVmaW5pdGlvbi5wdXNoKHsgaWQ6IGtleSwgbmFtZTogZW51bV9kZWZpbml0aW9uW2tleV0gfSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYodHlwZW9mIGtleSA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICB0aGlzLl9lbnVtZGVmaW5pdGlvbi5wdXNoKHsgaWQ6IGtleSwgbmFtZTogZW51bV9kZWZpbml0aW9uW051bWJlcihrZXkpXSB9KTtcclxuICAgICAgfVxyXG5cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2V0QWN0aXZlRW51bVZhbHVlKCkge1xyXG4gICAgY29uc3Qgc2VsOiBFbnVtRGVmaW5pdGlvbiB8IHVuZGVmaW5lZCA9IHRoaXMuX2VudW1kZWZpbml0aW9uLmZpbmQoKGVudW1EZWYpID0+IGVudW1EZWYuaWQgPT09IHRoaXMuX3NlbGVjdGVkVmFsdWUpO1xyXG4gICAgaWYoIXNlbCl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuYWN0aXZlRW51bSA9IHNlbFxyXG4gIH1cclxuXHJcbiAgX3NldEFjdGl2ZUFycmF5VmFsdWUoKSB7XHJcbiAgICBjb25zdCBzZWw6IEVudW1EZWZpbml0aW9uIHwgdW5kZWZpbmVkID0gdGhpcy5fZW51bWRlZmluaXRpb24uZmluZCgoZW51bURlZikgPT4gZW51bURlZi5uYW1lID09PSB0aGlzLl9zZWxlY3RlZFZhbHVlKTtcclxuICAgIGlmKCFzZWwpe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmFjdGl2ZUVudW0gPSBzZWxcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3NlbGVjdGVkVmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIHNldCBzZWxlY3RlZFZhbHVlKHZhbHVlOiBzdHJpbmcgfCBudWxsKSB7XHJcbiAgICB0aGlzLl9zZWxlY3RlZFZhbHVlID0gdmFsdWU7XHJcbiAgICBpZih0aGlzLl90eXBlID09PSAnZW51bScpIHtcclxuICAgICAgdGhpcy5fc2V0QWN0aXZlRW51bVZhbHVlKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmKHRoaXMuX3R5cGUgPT09ICdhcnJheScpIHtcclxuICAgICAgdGhpcy5fc2V0QWN0aXZlQXJyYXlWYWx1ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmFjdGl2ZUVudW1TdWJqZWN0JC5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAodmFsdWUpID0+IHtcclxuICAgICAgICBpZih0aGlzLl90eXBlID09PSAnZW51bScpIHtcclxuICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZT8uaWQgPz8gJyc7XHJcbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZih0aGlzLl90eXBlID09PSAnYXJyYXknKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZT8ubmFtZSA/PyAnJztcclxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldCBhY3RpdmVFbnVtKHZhbHVlIDogRW51bURlZmluaXRpb24gfCBudWxsKXtcclxuICAgIHRoaXMuYWN0aXZlRW51bVN1YmplY3QkLm5leHQodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFjdGl2ZUVudW0oKSA6IEVudW1EZWZpbml0aW9uIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVFbnVtU3ViamVjdCQuZ2V0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIGFjdGl2ZUVudW1TdWJqZWN0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RW51bURlZmluaXRpb24gfCBudWxsPiAobnVsbCk7XHJcblxyXG4gIFxyXG4gIHZhbHVlOiBzdHJpbmcgPSAnJztcclxuICBpc0Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcclxuICBvbkNoYW5nZSA9ICh2YWx1ZTogc3RyaW5nKSA9PiB7XHJcbiAgfTtcclxuICBvblRvdWNoZWQgPSAoKSA9PiB7XHJcbiAgfTtcclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuaXNEaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVJbnB1dChldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICB0aGlzLnZhbHVlID0gaW5wdXQudmFsdWU7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlQmx1cigpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkKCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgaGFuZGxlS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKGV2ZW50LmtleSAhPT0gJ0VudGVyJykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmVudGVyS2V5UHJlc3NlZC5lbWl0KCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBjbGFzcz1cImVudW0td3JhcHBlclwiXHJcbiAgW2NsYXNzLmludmFsaWQtdmFsdWVdPVwiIV92YWxpZFZhbHVlKClcIlxyXG4+XHJcbiAgPGRpdiBjbGFzcz1cImRvdWJsZS1lbnVtZXJhdGlvblwiPlxyXG4gICAgPG5nLXNlbGVjdCBjbGFzcz1cImVudW0tZHJvcGRvd25cIiBbKG5nTW9kZWwpXT1cImFjdGl2ZUVudW1cIiBbY2xlYXJhYmxlXT1cImZhbHNlXCIgW3NlYXJjaGFibGVdPVwiX2VudW1kZWZpbml0aW9uLmxlbmd0aCA+PSAxMFwiPlxyXG4gICAgICA8bmctb3B0aW9uICpuZ0Zvcj1cImxldCB2YWwgb2YgX2VudW1kZWZpbml0aW9uXCIgW3ZhbHVlXT1cInZhbFwiPnt7dmFsLm5hbWV9fTwvbmctb3B0aW9uPlxyXG4gICAgPC9uZy1zZWxlY3Q+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|