@seniorsistemas/data-seniorx-core 3.0.0 → 3.1.0
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/core/constants/editable-overlay.const.d.ts +4 -0
- package/core/constants/help-popover.const.d.ts +7 -0
- package/core/constants/input-mask.const.d.ts +5 -0
- package/core/constants/navigation-button.const.d.ts +3 -0
- package/core/constants/object-card.const.d.ts +21 -0
- package/core/constants/thumbnail.const.d.ts +6 -0
- package/core/constants/thumbnails.const.d.ts +4 -0
- package/core/constants/token-list.const.d.ts +3 -0
- package/core/types/button.type.d.ts +1 -1
- package/core/types/datepicker.type.d.ts +28 -0
- package/core/types/dynamic-form.type.d.ts +29 -0
- package/core/types/editable-overlay.type.d.ts +15 -0
- package/core/types/help-popover.type.d.ts +2 -0
- package/core/types/input-mask.type.d.ts +6 -0
- package/core/types/lookup.type.d.ts +45 -0
- package/core/types/navigation-button.type.d.ts +9 -0
- package/core/types/row-card.type.d.ts +5 -0
- package/core/types/semantics.type.d.ts +1 -1
- package/core/types/table-options.type.d.ts +1 -0
- package/core/types/thumbnail.type.d.ts +1 -0
- package/core/types/thumbnails.type.d.ts +20 -0
- package/core/types/token-list.type.d.ts +6 -0
- package/core/utils/emoji-support.util.d.ts +12 -0
- package/core/utils/overlay-dismiss.util.d.ts +25 -0
- package/esm2022/core/config/row-card.type.config.mjs +3 -1
- package/esm2022/core/constants/country-phone-picker.const.mjs +6 -6
- package/esm2022/core/constants/editable-overlay.const.mjs +5 -0
- package/esm2022/core/constants/help-popover.const.mjs +7 -0
- package/esm2022/core/constants/input-mask.const.mjs +6 -0
- package/esm2022/core/constants/navigation-button.const.mjs +4 -0
- package/esm2022/core/constants/object-card.const.mjs +23 -0
- package/esm2022/core/constants/thumbnail.const.mjs +14 -0
- package/esm2022/core/constants/thumbnails.const.mjs +5 -0
- package/esm2022/core/constants/token-list.const.mjs +4 -0
- package/esm2022/core/types/button.type.mjs +1 -1
- package/esm2022/core/types/datepicker.type.mjs +2 -0
- package/esm2022/core/types/dynamic-form.type.mjs +2 -0
- package/esm2022/core/types/editable-overlay.type.mjs +2 -0
- package/esm2022/core/types/help-popover.type.mjs +2 -0
- package/esm2022/core/types/input-mask.type.mjs +2 -0
- package/esm2022/core/types/lookup.type.mjs +2 -0
- package/esm2022/core/types/navigation-button.type.mjs +2 -0
- package/esm2022/core/types/row-card.type.mjs +1 -1
- package/esm2022/core/types/semantics.type.mjs +1 -1
- package/esm2022/core/types/table-options.type.mjs +1 -1
- package/esm2022/core/types/thumbnail.type.mjs +2 -0
- package/esm2022/core/types/thumbnails.type.mjs +2 -0
- package/esm2022/core/types/token-list.type.mjs +2 -0
- package/esm2022/core/utils/emoji-support.util.mjs +48 -0
- package/esm2022/core/utils/mask.util.mjs +2 -2
- package/esm2022/core/utils/overlay-dismiss.util.mjs +38 -0
- package/esm2022/features/alert/alert.component.mjs +5 -2
- package/esm2022/features/autocomplete/autocomplete.component.mjs +30 -8
- package/esm2022/features/bignumber-input/bignumber-input.component.mjs +1 -1
- package/esm2022/features/button/button.component.mjs +13 -5
- package/esm2022/features/card-list/card/card.component.mjs +2 -2
- package/esm2022/features/card-list/card-list.component.mjs +2 -2
- package/esm2022/features/checkbox-list/checkbox-list.component.mjs +25 -5
- package/esm2022/features/chips/chips.component.mjs +3 -3
- package/esm2022/features/code-editor/code-editor.component.mjs +12 -3
- package/esm2022/features/combobox/combobox.component.mjs +3 -3
- package/esm2022/features/confirm/confirm.component.mjs +2 -2
- package/esm2022/features/context-selector/context-selector.component.mjs +1 -1
- package/esm2022/features/country-phone-picker/country-phone-picker.component.mjs +22 -18
- package/esm2022/features/currency/currency.component.mjs +3 -3
- package/esm2022/features/datepicker/datepicker.component.mjs +814 -0
- package/esm2022/features/dynamic-form/dynamic-form-field.directive.mjs +178 -0
- package/esm2022/features/dynamic-form/dynamic-form.component.mjs +60 -0
- package/esm2022/features/dynamic-form/dynamic-form.registry.mjs +13 -0
- package/esm2022/features/editable-overlay/editable-overlay-editor.directive.mjs +31 -0
- package/esm2022/features/editable-overlay/editable-overlay.component.mjs +217 -0
- package/esm2022/features/editor/editor.component.mjs +173 -0
- package/esm2022/features/empty-state/empty-state.component.mjs +3 -3
- package/esm2022/features/fileupload/fileupload.component.mjs +3 -3
- package/esm2022/features/help-popover/help-popover.component.mjs +204 -0
- package/esm2022/features/hyperlink/hyperlink.component.mjs +3 -3
- package/esm2022/features/icon-picker/icon-picker.component.mjs +4 -4
- package/esm2022/features/image-cropper/image-cropper.component.mjs +2 -2
- package/esm2022/features/info-sign/info-sign.component.mjs +6 -3
- package/esm2022/features/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +1 -1
- package/esm2022/features/inline-edit/components/inline-edit-item/inline-edit-item.component.mjs +2 -2
- package/esm2022/features/input-mask/input-mask.directive.mjs +510 -0
- package/esm2022/features/list/list.component.mjs +2 -2
- package/esm2022/features/localized-number-input/localized-number-input.component.mjs +3 -3
- package/esm2022/features/lookup/lookup.component.mjs +351 -0
- package/esm2022/features/modal/modal.component.mjs +6 -3
- package/esm2022/features/modalc/modalc.component.mjs +6 -3
- package/esm2022/features/navigation-button/navigation-button.component.mjs +172 -0
- package/esm2022/features/number-input/number-input.component.mjs +10 -4
- package/esm2022/features/object-card/components/object-card-field/object-card-field.component.mjs +89 -0
- package/esm2022/features/object-card/components/object-card-main/object-card-main.component.mjs +114 -0
- package/esm2022/features/object-card/object-card.component.mjs +199 -0
- package/esm2022/features/password-strength/password-strength.component.mjs +3 -3
- package/esm2022/features/pin-code-field/pin-code-field.component.mjs +14 -4
- package/esm2022/features/popover/popover.component.mjs +29 -3
- package/esm2022/features/profile-picture-picker/profile-picture-picker.component.mjs +13 -4
- package/esm2022/features/rating-scale/rating-scale.component.mjs +24 -4
- package/esm2022/features/row-card-list/row-card/row-card.component.mjs +19 -4
- package/esm2022/features/row-card-list/row-card-list.component.mjs +12 -3
- package/esm2022/features/scaffold/scaffold.component.mjs +3 -3
- package/esm2022/features/searchbox/searchbox.component.mjs +2 -2
- package/esm2022/features/select-button/select-button.component.mjs +26 -4
- package/esm2022/features/slider/slider.component.mjs +3 -3
- package/esm2022/features/split-button/split-button.component.mjs +1 -1
- package/esm2022/features/spotlight/components/spotlight-overlay/spotlight-overlay.component.mjs +15 -18
- package/esm2022/features/spotlight/spotlight.component.mjs +2 -2
- package/esm2022/features/star-rating/star-rating.component.mjs +25 -4
- package/esm2022/features/table/components/table-cell-content.component.mjs +2 -2
- package/esm2022/features/table/table.component.mjs +30 -9
- package/esm2022/features/textarea/textarea.component.mjs +3 -3
- package/esm2022/features/thumbnail/thumbnail.component.mjs +86 -0
- package/esm2022/features/thumbnails/components/thumbnail-item/thumbnail-item.component.mjs +59 -0
- package/esm2022/features/thumbnails/components/thumbnail-item-image/thumbnail-item-image.component.mjs +25 -0
- package/esm2022/features/thumbnails/components/thumbnail-item-video/thumbnail-item-video.component.mjs +50 -0
- package/esm2022/features/thumbnails/thumbnails.component.mjs +76 -0
- package/esm2022/features/tiered-menu/directives/tiered-menu.directive.mjs +13 -1
- package/esm2022/features/token-list/token-list.component.mjs +64 -0
- package/esm2022/features/visual-sql-editor/visual-sql-editor.component.mjs +2 -2
- package/esm2022/locales/en.json +409 -1
- package/esm2022/locales/es-CO.json +423 -2
- package/esm2022/locales/pt.json +1037 -630
- package/esm2022/providers/features.provider.mjs +20 -2
- package/esm2022/providers/primeng-config.provider.mjs +14 -128
- package/esm2022/providers/translate.provider.mjs +2 -2
- package/esm2022/public-api.mjs +31 -1
- package/features/alert/alert.component.d.ts +1 -0
- package/features/autocomplete/autocomplete.component.d.ts +9 -3
- package/features/button/button.component.d.ts +3 -1
- package/features/checkbox-list/checkbox-list.component.d.ts +8 -1
- package/features/code-editor/code-editor.component.d.ts +5 -1
- package/features/country-phone-picker/country-phone-picker.component.d.ts +3 -0
- package/features/datepicker/datepicker.component.d.ts +118 -0
- package/features/dynamic-form/dynamic-form-field.directive.d.ts +26 -0
- package/features/dynamic-form/dynamic-form.component.d.ts +15 -0
- package/features/dynamic-form/dynamic-form.registry.d.ts +11 -0
- package/features/editable-overlay/editable-overlay-editor.directive.d.ts +22 -0
- package/features/editable-overlay/editable-overlay.component.d.ts +60 -0
- package/features/editor/editor.component.d.ts +47 -0
- package/features/help-popover/help-popover.component.d.ts +81 -0
- package/features/info-sign/info-sign.component.d.ts +2 -1
- package/features/input-mask/input-mask.directive.d.ts +117 -0
- package/features/lookup/lookup.component.d.ts +104 -0
- package/features/modal/modal.component.d.ts +2 -1
- package/features/modalc/modalc.component.d.ts +2 -1
- package/features/navigation-button/navigation-button.component.d.ts +58 -0
- package/features/number-input/number-input.component.d.ts +3 -1
- package/features/object-card/components/object-card-field/object-card-field.component.d.ts +48 -0
- package/features/object-card/components/object-card-main/object-card-main.component.d.ts +57 -0
- package/features/object-card/object-card.component.d.ts +70 -0
- package/features/pin-code-field/pin-code-field.component.d.ts +6 -1
- package/features/popover/popover.component.d.ts +4 -1
- package/features/profile-picture-picker/profile-picture-picker.component.d.ts +5 -1
- package/features/rating-scale/rating-scale.component.d.ts +9 -1
- package/features/row-card-list/row-card/row-card.component.d.ts +6 -1
- package/features/row-card-list/row-card-list.component.d.ts +4 -1
- package/features/select-button/select-button.component.d.ts +9 -1
- package/features/star-rating/star-rating.component.d.ts +9 -1
- package/features/table/table.component.d.ts +2 -1
- package/features/thumbnail/thumbnail.component.d.ts +48 -0
- package/features/thumbnails/components/thumbnail-item/thumbnail-item.component.d.ts +29 -0
- package/features/thumbnails/components/thumbnail-item-image/thumbnail-item-image.component.d.ts +13 -0
- package/features/thumbnails/components/thumbnail-item-video/thumbnail-item-video.component.d.ts +19 -0
- package/features/thumbnails/thumbnails.component.d.ts +46 -0
- package/features/tiered-menu/directives/tiered-menu.directive.d.ts +2 -0
- package/features/token-list/token-list.component.d.ts +31 -0
- package/fesm2022/seniorsistemas-data-seniorx-core.mjs +11288 -6613
- package/fesm2022/seniorsistemas-data-seniorx-core.mjs.map +1 -1
- package/package.json +12 -3
- package/providers/primeng-config.provider.d.ts +12 -0
- package/public-api.d.ts +38 -0
- package/src/locales/en.json +409 -1
- package/src/locales/es-CO.json +423 -2
- package/src/locales/pt.json +1037 -630
- package/styles/sdc-global-variables.scss +38 -0
- package/styles.css +132 -0
- package/styles.scss +2 -0
- package/esm2022/providers/custom/button.mjs +0 -93
- package/esm2022/providers/custom/toast.mjs +0 -75
- package/providers/custom/button.d.ts +0 -16
- package/providers/custom/toast.d.ts +0 -14
|
@@ -82,7 +82,7 @@ export class ConfirmComponent {
|
|
|
82
82
|
this.cdr.markForCheck();
|
|
83
83
|
}
|
|
84
84
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ConfirmComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
85
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ConfirmComponent, isStandalone: true, selector: "sdc-confirm", inputs: { zIndex: "zIndex", visible: "visible", confirm: "confirm" }, outputs: { visibleChange: "visibleChange" }, ngImport: i0, template: "<sdc-modal\n [visible]=\"visible\"\n (visibleChange)=\"onVisibleChange($event)\"\n [header]=\"config.title\"\n [zIndex]=\"zIndex\"\n [closable]=\"true\"\n [maximizable]=\"false\"\n [responsive]=\"false\"\n styleClass=\"sdc-confirm-modal\"\n width=\"480px\"\n [footerButtons]=\"footerButtons\"\n>\n <div class=\"content-sizing\" id=\"confirm-dialog-content\">\n {{ config.message | translate }}\n </div>\n</sdc-modal>\n", styles: [":host{display:contents}:host ::ng-deep .sdc-confirm-modal .sdc-modal__footer{flex-direction:row;justify-content:flex-end}.content-sizing{min-width:0;max-width:100%;font-size:14px;line-height:1.5;color:#374151}\n"], dependencies: [{ kind: "component", type: ModalComponent, selector: "sdc-modal", inputs: ["footerButtons", "header", "height", "maximizable", "maximize", "resizable", "responsive", "width", "zIndex", "closable", "styleClass", "appendToBody", "visible"], outputs: ["hidden", "visibleChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
85
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ConfirmComponent, isStandalone: true, selector: "sdc-confirm", inputs: { zIndex: "zIndex", visible: "visible", confirm: "confirm" }, outputs: { visibleChange: "visibleChange" }, ngImport: i0, template: "<sdc-modal\n [visible]=\"visible\"\n (visibleChange)=\"onVisibleChange($event)\"\n [header]=\"config.title\"\n [zIndex]=\"zIndex\"\n [closable]=\"true\"\n [maximizable]=\"false\"\n [responsive]=\"false\"\n styleClass=\"sdc-confirm-modal\"\n width=\"480px\"\n [footerButtons]=\"footerButtons\"\n>\n <div class=\"content-sizing\" id=\"confirm-dialog-content\">\n {{ config.message | translate }}\n </div>\n</sdc-modal>\n", styles: [":host{display:contents}:host ::ng-deep .sdc-confirm-modal .sdc-modal__footer{flex-direction:row;justify-content:flex-end}.content-sizing{min-width:0;max-width:100%;font-size:14px;line-height:1.5;color:#374151}\n"], dependencies: [{ kind: "component", type: ModalComponent, selector: "sdc-modal", inputs: ["footerButtons", "headerActions", "header", "height", "maximizable", "maximize", "resizable", "responsive", "width", "zIndex", "closable", "styleClass", "appendToBody", "visible"], outputs: ["hidden", "visibleChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
86
86
|
}
|
|
87
87
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ConfirmComponent, decorators: [{
|
|
88
88
|
type: Component,
|
|
@@ -96,4 +96,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
96
96
|
}], confirm: [{
|
|
97
97
|
type: Input
|
|
98
98
|
}] } });
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2NvbmZpcm0vY29uZmlybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2NvbmZpcm0vY29uZmlybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7QUFXMUQsTUFBTSxPQUFPLGdCQUFnQjtJQUNWLEdBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUV4QyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ2QsYUFBYSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7SUFFN0MsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUV6QixNQUFNLEdBQVk7UUFDaEIsUUFBUSxFQUFFLFVBQVU7UUFDcEIsS0FBSyxFQUFFLGtDQUFrQztRQUN6QyxPQUFPLEVBQUUsK0JBQStCO1FBQ3hDLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO1FBQ2pCLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0tBQ2xCLENBQUM7SUFFRixJQUFhLE9BQU8sQ0FBQyxLQUFxQjtRQUN4QyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUVE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QkFBZ0IsMExDeEI3QixtYkFnQkEsNlFEQVksY0FBYyx5UkFBRSxlQUFlOzs0RkFROUIsZ0JBQWdCO2tCQVQ1QixTQUFTOzhCQUNDLENBQUMsY0FBYyxFQUFFLGVBQWUsQ0FBQyxjQUM5QixJQUFJLFlBQ04sYUFBYSxtQkFHTix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxRQUFROzhCQUtoQyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0ksYUFBYTtzQkFBdEIsTUFBTTtnQkFFRSxPQUFPO3NCQUFmLEtBQUs7Z0JBVU8sT0FBTztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB0eXBlIHsgQ29uZmlybSB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvY29uZmlybS50eXBlJztcbmltcG9ydCB0eXBlIHsgTW9kYWxCdXR0b24gfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL21vZGFsLnR5cGUnO1xuaW1wb3J0IHsgTW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi9tb2RhbC9tb2RhbC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgaW1wb3J0czogW01vZGFsQ29tcG9uZW50LCBUcmFuc2xhdGVNb2R1bGVdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ3NkYy1jb25maXJtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbmZpcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vY29uZmlybS5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZFxufSlcbmV4cG9ydCBjbGFzcyBDb25maXJtQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIEBJbnB1dCgpIHpJbmRleCA9IDk5OTk5O1xuICBAT3V0cHV0KCkgdmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBASW5wdXQoKSB2aXNpYmxlID0gZmFsc2U7XG5cbiAgY29uZmlnOiBDb25maXJtID0ge1xuICAgIHNldmVyaXR5OiAncXVlc3Rpb24nLFxuICAgIHRpdGxlOiAncGxhdGZvcm0uZGF0YWNvcmUuY29uZmlybV9kaWFsb2cnLFxuICAgIG1lc3NhZ2U6ICdwbGF0Zm9ybS5kYXRhY29yZS5kZWZhdWx0X21zZycsXG4gICAgYWNjZXB0OiAoKSA9PiB7IH0sXG4gICAgcmVqZWN0OiAoKSA9PiB7IH1cbiAgfTtcblxuICBASW5wdXQoKSBzZXQgY29uZmlybSh2YWx1ZTogQ29uZmlybSB8IG51bGwpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuY29uZmlnID0gdmFsdWU7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICBnZXQgZm9vdGVyQnV0dG9ucygpOiBNb2RhbEJ1dHRvbltdIHtcbiAgICBjb25zdCBidXR0b25zOiBNb2RhbEJ1dHRvbltdID0gW1xuICAgICAge1xuICAgICAgICBpZDogJ2NvbmZpcm0tZGVueScsXG4gICAgICAgIGxhYmVsOiB0aGlzLmdldExhYmVsKCdkZW55JyksXG4gICAgICAgIHNldmVyaXR5OiAnc2Vjb25kYXJ5JyxcbiAgICAgICAgYWN0aW9uOiAoKSA9PiB0aGlzLm9uRGVueSgpXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ2NvbmZpcm0tYWNjZXB0JyxcbiAgICAgICAgbGFiZWw6IHRoaXMuZ2V0TGFiZWwoJ2NvbmZpcm0nKSxcbiAgICAgICAgc2V2ZXJpdHk6IHRoaXMuZ2V0U2V2ZXJpdHkoKSxcbiAgICAgICAgYWN0aW9uOiAoKSA9PiB0aGlzLm9uQ29uZmlybSgpXG4gICAgICB9XG4gICAgXTtcblxuICAgIGlmICh0aGlzLmNvbmZpZy5oaWRlUmVqZWN0QWN0aW9uKSB7XG4gICAgICByZXR1cm4gYnV0dG9ucy5maWx0ZXIoKGJ1dHRvbikgPT4gYnV0dG9uLmlkICE9PSAnY29uZmlybS1kZW55Jyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGJ1dHRvbnM7XG4gIH1cblxuICBvblZpc2libGVDaGFuZ2UodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnZpc2libGUgPSB2YWx1ZTtcbiAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBnZXRMYWJlbCh0eXBlOiAnY29uZmlybScgfCAnZGVueScpOiBzdHJpbmcge1xuICAgIGlmICh0eXBlID09PSAnY29uZmlybScgJiYgdGhpcy5jb25maWcuYWNjZXB0TGFiZWwpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5hY2NlcHRMYWJlbDtcbiAgICB9XG5cbiAgICBpZiAodHlwZSA9PT0gJ2RlbnknICYmIHRoaXMuY29uZmlnLnJlamVjdExhYmVsKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb25maWcucmVqZWN0TGFiZWw7XG4gICAgfVxuXG4gICAgY29uc3QgbGFiZWxzID0ge1xuICAgICAgcmVtb3ZlOiB7XG4gICAgICAgIGNvbmZpcm06ICdwbGF0Zm9ybS5kYXRhY29yZS5yZW1vdmUnLFxuICAgICAgICBkZW55OiAncGxhdGZvcm0uZGF0YWNvcmUuY2FuY2VsJ1xuICAgICAgfSxcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29uZmlybTogJ3BsYXRmb3JtLmRhdGFjb3JlLnllcycsXG4gICAgICAgIGRlbnk6ICdwbGF0Zm9ybS5kYXRhY29yZS5ubydcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3Qga2V5ID0gdGhpcy5jb25maWcuc2V2ZXJpdHkgPT09ICdyZW1vdmUnID8gJ3JlbW92ZScgOiAnZGVmYXVsdCc7XG4gICAgcmV0dXJuIGxhYmVsc1trZXldW3R5cGVdO1xuICB9XG5cbiAgZ2V0U2V2ZXJpdHkoKTogTW9kYWxCdXR0b25bJ3NldmVyaXR5J10ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5zZXZlcml0eSA9PT0gJ3JlbW92ZScgPyAnZGFuZ2VyJyA6ICdwcmltYXJ5JztcbiAgfVxuXG4gIG9uQ29uZmlybSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbmZpZy5hY2NlcHQoKTtcbiAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdChmYWxzZSk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBvbkRlbnkoKTogdm9pZCB7XG4gICAgdGhpcy5jb25maWcucmVqZWN0KCk7XG4gICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iLCI8c2RjLW1vZGFsXG4gIFt2aXNpYmxlXT1cInZpc2libGVcIlxuICAodmlzaWJsZUNoYW5nZSk9XCJvblZpc2libGVDaGFuZ2UoJGV2ZW50KVwiXG4gIFtoZWFkZXJdPVwiY29uZmlnLnRpdGxlXCJcbiAgW3pJbmRleF09XCJ6SW5kZXhcIlxuICBbY2xvc2FibGVdPVwidHJ1ZVwiXG4gIFttYXhpbWl6YWJsZV09XCJmYWxzZVwiXG4gIFtyZXNwb25zaXZlXT1cImZhbHNlXCJcbiAgc3R5bGVDbGFzcz1cInNkYy1jb25maXJtLW1vZGFsXCJcbiAgd2lkdGg9XCI0ODBweFwiXG4gIFtmb290ZXJCdXR0b25zXT1cImZvb3RlckJ1dHRvbnNcIlxuPlxuICA8ZGl2IGNsYXNzPVwiY29udGVudC1zaXppbmdcIiBpZD1cImNvbmZpcm0tZGlhbG9nLWNvbnRlbnRcIj5cbiAgICB7eyBjb25maWcubWVzc2FnZSB8IHRyYW5zbGF0ZSB9fVxuICA8L2Rpdj5cbjwvc2RjLW1vZGFsPlxuIl19
|
|
@@ -164,7 +164,7 @@ export class ContextSelectorComponent {
|
|
|
164
164
|
requestAnimationFrame(() => this.calculateListMaxHeight());
|
|
165
165
|
}
|
|
166
166
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ContextSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
167
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ContextSelectorComponent, isStandalone: true, selector: "sdc-context-selector, sdc-workspace-switch", inputs: { workspaces: "workspaces", footerButtonLabel: "footerButtonLabel", showFooterButton: "showFooterButton", disabled: "disabled" }, outputs: { footerButtonClicked: "footerButtonClicked", selected: "selected" }, host: { listeners: { "keydown": "onKeydown($event)" }, properties: { "attr.tabindex": "this.tabindex" } }, viewQueries: [{ propertyName: "listRef", first: true, predicate: ["listRef"], descendants: true }, { propertyName: "listItems", predicate: ["listItem"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"sdc-context-selector\"\n [class.sdc-context-selector--disabled]=\"disabled\"\n>\n <sdc-popover\n [open]=\"open\"\n appendTo=\"body\"\n [offset]=\"8\"\n [matchTriggerWidth]=\"true\"\n [toggleOnTriggerClick]=\"false\"\n [panelClass]=\"'sdc-context-selector__overlay-panel'\"\n (openChange)=\"onPopoverOpenChange($event)\"\n >\n <button\n sdc-popover-trigger\n type=\"button\"\n class=\"sdc-context-selector__button\"\n [disabled]=\"disabled\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-controls]=\"open ? listboxId : null\"\n aria-haspopup=\"listbox\"\n (click)=\"toggle()\"\n >\n <span class=\"sdc-context-selector__text\">\n <span class=\"sdc-context-selector__title\">{{ selectedWorkspace?.title }}</span>\n <span class=\"sdc-context-selector__subtitle\">{{ selectedWorkspace?.subtitle }}</span>\n </span>\n\n <span class=\"sdc-context-selector__icons\">\n <i class=\"fas fa-chevron-up\"></i>\n <i class=\"fas fa-chevron-down\"></i>\n </span>\n </button>\n\n <div sdc-popover-content class=\"sdc-context-selector__panel\">\n <ul\n #listRef\n [id]=\"listboxId\"\n class=\"sdc-context-selector__list\"\n [style.max-height.px]=\"height\"\n >\n @for (workspace of workspaces; track workspace.id; let i = $index) {\n <li\n #listItem\n class=\"sdc-context-selector__item\"\n [class.sdc-context-selector__item--focused]=\"i === currentItemIndex && !workspace.disabled\"\n [class.sdc-context-selector__item--disabled]=\"workspace.disabled\"\n (click)=\"selectIndex(i)\"\n (keydown.enter)=\"selectIndex(i)\"\n (keydown.space)=\"selectIndex(i)\"\n [attr.tabindex]=\"workspace.disabled ? -1 : 0\"\n >\n <span class=\"sdc-context-selector__text\">\n <span class=\"sdc-context-selector__title\">{{ workspace.title }}</span>\n <span class=\"sdc-context-selector__subtitle\">{{ workspace.subtitle }}</span>\n </span>\n\n @if (i === selectedItemIndex) {\n <i class=\"fas fa-check sdc-context-selector__active-icon\"></i>\n }\n </li>\n }\n </ul>\n\n @if (showFooterButton) {\n <div class=\"sdc-context-selector__footer\">\n <button\n type=\"button\"\n class=\"sdc-context-selector__footer-button\"\n (click)=\"onFooterActionClick()\"\n >\n <i class=\"fas fa-plus\"></i>\n <span>{{ footerButtonLabel | translate }}</span>\n </button>\n </div>\n }\n </div>\n </sdc-popover>\n</div>\n", styles: [".sdc-context-selector{display:block;width:min(100%,20.25rem);max-width:100%;border:1px solid transparent;border-radius:.25rem}.sdc-context-selector:focus{border-color:#428bca}.sdc-context-selector__button{display:flex;width:100%;align-items:center;justify-content:space-between;border:0;border-radius:.25rem;background:#fff;cursor:pointer;text-align:left}.sdc-context-selector__text{display:flex;flex:1 1 auto;flex-direction:column;padding:.75rem}.sdc-context-selector__title{color:#333;font-size:.875rem;font-weight:700;line-height:1.5;text-transform:uppercase}.sdc-context-selector__subtitle{color:#999;font-size:.75rem;line-height:1.5}.sdc-context-selector__icons{display:flex;flex-direction:column;gap:.125rem;margin:0 .75rem}.sdc-context-selector__panel{overflow:hidden;border-radius:.25rem;background:#fff}.sdc-context-selector__list{margin:0;overflow:auto;padding:.25rem 0 0;list-style:none}.sdc-context-selector__item{display:flex;align-items:center;justify-content:space-between;cursor:pointer}.sdc-context-selector__item:hover:not(.sdc-context-selector__item--disabled),.sdc-context-selector__item--focused{background:#f1f7f8}.sdc-context-selector__item--disabled{cursor:default;opacity:.5}.sdc-context-selector__active-icon{margin:0 .75rem;color:#7892a1;font-size:.75rem}.sdc-context-selector__footer{border-top:1px solid #ccc;padding:.75rem}.sdc-context-selector__footer-button{display:flex;width:100%;align-items:center;justify-content:center;gap:.5rem;padding:.5rem .75rem;border:1px solid #d8d8d8;border-radius:.25rem;background:#fff;cursor:pointer}.sdc-context-selector__footer-button:active{border-color:#428bca}.sdc-context-selector--disabled .sdc-context-selector__button{cursor:default}.sdc-context-selector--disabled .sdc-context-selector__title,.sdc-context-selector--disabled .sdc-context-selector__subtitle,.sdc-context-selector--disabled .sdc-context-selector__icons{color:#ccc}::ng-deep .sdc-popover__panel.sdc-context-selector__overlay-panel{padding:0;overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: PopoverComponent, selector: "sdc-popover", inputs: ["open", "disabled", "toggleOnTriggerClick", "closeOnOutsideClick", "closeOnEscape", "trapFocus", "focusOnOpen", "restoreFocusOnClose", "ariaLabel", "appendTo", "zIndex", "offset", "placement", "role", "matchTriggerWidth", "panelWidth", "panelMinWidth", "panelMaxWidth", "panelMaxHeight", "panelClass"], outputs: ["openChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
167
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ContextSelectorComponent, isStandalone: true, selector: "sdc-context-selector, sdc-workspace-switch", inputs: { workspaces: "workspaces", footerButtonLabel: "footerButtonLabel", showFooterButton: "showFooterButton", disabled: "disabled" }, outputs: { footerButtonClicked: "footerButtonClicked", selected: "selected" }, host: { listeners: { "keydown": "onKeydown($event)" }, properties: { "attr.tabindex": "this.tabindex" } }, viewQueries: [{ propertyName: "listRef", first: true, predicate: ["listRef"], descendants: true }, { propertyName: "listItems", predicate: ["listItem"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"sdc-context-selector\"\n [class.sdc-context-selector--disabled]=\"disabled\"\n>\n <sdc-popover\n [open]=\"open\"\n appendTo=\"body\"\n [offset]=\"8\"\n [matchTriggerWidth]=\"true\"\n [toggleOnTriggerClick]=\"false\"\n [panelClass]=\"'sdc-context-selector__overlay-panel'\"\n (openChange)=\"onPopoverOpenChange($event)\"\n >\n <button\n sdc-popover-trigger\n type=\"button\"\n class=\"sdc-context-selector__button\"\n [disabled]=\"disabled\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-controls]=\"open ? listboxId : null\"\n aria-haspopup=\"listbox\"\n (click)=\"toggle()\"\n >\n <span class=\"sdc-context-selector__text\">\n <span class=\"sdc-context-selector__title\">{{ selectedWorkspace?.title }}</span>\n <span class=\"sdc-context-selector__subtitle\">{{ selectedWorkspace?.subtitle }}</span>\n </span>\n\n <span class=\"sdc-context-selector__icons\">\n <i class=\"fas fa-chevron-up\"></i>\n <i class=\"fas fa-chevron-down\"></i>\n </span>\n </button>\n\n <div sdc-popover-content class=\"sdc-context-selector__panel\">\n <ul\n #listRef\n [id]=\"listboxId\"\n class=\"sdc-context-selector__list\"\n [style.max-height.px]=\"height\"\n >\n @for (workspace of workspaces; track workspace.id; let i = $index) {\n <li\n #listItem\n class=\"sdc-context-selector__item\"\n [class.sdc-context-selector__item--focused]=\"i === currentItemIndex && !workspace.disabled\"\n [class.sdc-context-selector__item--disabled]=\"workspace.disabled\"\n (click)=\"selectIndex(i)\"\n (keydown.enter)=\"selectIndex(i)\"\n (keydown.space)=\"selectIndex(i)\"\n [attr.tabindex]=\"workspace.disabled ? -1 : 0\"\n >\n <span class=\"sdc-context-selector__text\">\n <span class=\"sdc-context-selector__title\">{{ workspace.title }}</span>\n <span class=\"sdc-context-selector__subtitle\">{{ workspace.subtitle }}</span>\n </span>\n\n @if (i === selectedItemIndex) {\n <i class=\"fas fa-check sdc-context-selector__active-icon\"></i>\n }\n </li>\n }\n </ul>\n\n @if (showFooterButton) {\n <div class=\"sdc-context-selector__footer\">\n <button\n type=\"button\"\n class=\"sdc-context-selector__footer-button\"\n (click)=\"onFooterActionClick()\"\n >\n <i class=\"fas fa-plus\"></i>\n <span>{{ footerButtonLabel | translate }}</span>\n </button>\n </div>\n }\n </div>\n </sdc-popover>\n</div>\n", styles: [".sdc-context-selector{display:block;width:min(100%,20.25rem);max-width:100%;border:1px solid transparent;border-radius:.25rem}.sdc-context-selector:focus{border-color:#428bca}.sdc-context-selector__button{display:flex;width:100%;align-items:center;justify-content:space-between;border:0;border-radius:.25rem;background:#fff;cursor:pointer;text-align:left}.sdc-context-selector__text{display:flex;flex:1 1 auto;flex-direction:column;padding:.75rem}.sdc-context-selector__title{color:#333;font-size:.875rem;font-weight:700;line-height:1.5;text-transform:uppercase}.sdc-context-selector__subtitle{color:#999;font-size:.75rem;line-height:1.5}.sdc-context-selector__icons{display:flex;flex-direction:column;gap:.125rem;margin:0 .75rem}.sdc-context-selector__panel{overflow:hidden;border-radius:.25rem;background:#fff}.sdc-context-selector__list{margin:0;overflow:auto;padding:.25rem 0 0;list-style:none}.sdc-context-selector__item{display:flex;align-items:center;justify-content:space-between;cursor:pointer}.sdc-context-selector__item:hover:not(.sdc-context-selector__item--disabled),.sdc-context-selector__item--focused{background:#f1f7f8}.sdc-context-selector__item--disabled{cursor:default;opacity:.5}.sdc-context-selector__active-icon{margin:0 .75rem;color:#7892a1;font-size:.75rem}.sdc-context-selector__footer{border-top:1px solid #ccc;padding:.75rem}.sdc-context-selector__footer-button{display:flex;width:100%;align-items:center;justify-content:center;gap:.5rem;padding:.5rem .75rem;border:1px solid #d8d8d8;border-radius:.25rem;background:#fff;cursor:pointer}.sdc-context-selector__footer-button:active{border-color:#428bca}.sdc-context-selector--disabled .sdc-context-selector__button{cursor:default}.sdc-context-selector--disabled .sdc-context-selector__title,.sdc-context-selector--disabled .sdc-context-selector__subtitle,.sdc-context-selector--disabled .sdc-context-selector__icons{color:#ccc}::ng-deep .sdc-popover__panel.sdc-context-selector__overlay-panel{padding:0;overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: PopoverComponent, selector: "sdc-popover", inputs: ["open", "disabled", "toggleOnTriggerClick", "closeOnOutsideClick", "closeOnScroll", "closeOnEscape", "trapFocus", "focusOnOpen", "restoreFocusOnClose", "ariaLabel", "appendTo", "zIndex", "offset", "placement", "role", "matchTriggerWidth", "panelWidth", "panelMinWidth", "panelMaxWidth", "panelMaxHeight", "panelClass"], outputs: ["openChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
168
168
|
}
|
|
169
169
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ContextSelectorComponent, decorators: [{
|
|
170
170
|
type: Component,
|
|
@@ -2,13 +2,13 @@ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewCh
|
|
|
2
2
|
import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
3
|
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
|
4
4
|
import { COUNTRY_PHONE_PICKER_DEFAULT_COUNTRIES, COUNTRY_PHONE_PICKER_DEFAULT_ORDINATION } from '../../core/constants/country-phone-picker.const';
|
|
5
|
+
import { buildFlagEmoji, supportsEmojiFlags } from '../../core/utils/emoji-support.util';
|
|
5
6
|
import { nextSequentialId } from '../../core/utils/id.util';
|
|
6
|
-
import { applyMaskFormat, parseMaskPattern } from '../../core/utils/mask.util';
|
|
7
|
+
import { applyMaskFormat, extractMaskRaw, parseMaskPattern } from '../../core/utils/mask.util';
|
|
7
8
|
import { PopoverComponent } from '../popover/popover.component';
|
|
8
9
|
import * as i0 from "@angular/core";
|
|
9
10
|
import * as i1 from "@angular/forms";
|
|
10
11
|
import * as i2 from "@ngx-translate/core";
|
|
11
|
-
const REGIONAL_INDICATOR_OFFSET = 127397;
|
|
12
12
|
export class CountryPhonePickerComponent {
|
|
13
13
|
translate = inject(TranslateService);
|
|
14
14
|
generatedId = nextSequentialId('sdc-country-phone-picker');
|
|
@@ -57,6 +57,15 @@ export class CountryPhonePickerComponent {
|
|
|
57
57
|
return this.availableCountries.filter((country) => `${this.countryName(country.id)} ${country.ddi}`.toLowerCase().includes(query));
|
|
58
58
|
}
|
|
59
59
|
get currentMask() {
|
|
60
|
+
return this.maskForRawLength(this.phoneRawValue.length);
|
|
61
|
+
}
|
|
62
|
+
get currentDdi() {
|
|
63
|
+
return this.selectedItem?.ddi ?? '';
|
|
64
|
+
}
|
|
65
|
+
get phoneRawValue() {
|
|
66
|
+
return this.value?.rawValue ?? '';
|
|
67
|
+
}
|
|
68
|
+
maskForRawLength(rawLength) {
|
|
60
69
|
if (!this.selectedItem) {
|
|
61
70
|
return '0000 0000';
|
|
62
71
|
}
|
|
@@ -64,13 +73,7 @@ export class CountryPhonePickerComponent {
|
|
|
64
73
|
return this.selectedItem.mask;
|
|
65
74
|
}
|
|
66
75
|
const [shortMask, longMask] = this.selectedItem.mask;
|
|
67
|
-
return
|
|
68
|
-
}
|
|
69
|
-
get currentDdi() {
|
|
70
|
-
return this.selectedItem?.ddi ?? '';
|
|
71
|
-
}
|
|
72
|
-
get phoneRawValue() {
|
|
73
|
-
return this.value?.rawValue ?? '';
|
|
76
|
+
return rawLength > countMaskSlots(shortMask) ? longMask : shortMask;
|
|
74
77
|
}
|
|
75
78
|
writeValue(value) {
|
|
76
79
|
this.value = value;
|
|
@@ -94,7 +97,8 @@ export class CountryPhonePickerComponent {
|
|
|
94
97
|
if (!target || !this.selectedItem) {
|
|
95
98
|
return;
|
|
96
99
|
}
|
|
97
|
-
const
|
|
100
|
+
const liveMask = this.maskForRawLength(extractMaskRaw(target.value).length);
|
|
101
|
+
const formatted = applyMaskFormat(target.value, liveMask);
|
|
98
102
|
target.value = formatted.masked;
|
|
99
103
|
this.phoneMaskedValue = formatted.masked;
|
|
100
104
|
this.updateValue(formatted.raw, formatted.masked);
|
|
@@ -128,12 +132,12 @@ export class CountryPhonePickerComponent {
|
|
|
128
132
|
return countryId.toUpperCase();
|
|
129
133
|
}
|
|
130
134
|
}
|
|
135
|
+
showFlagEmoji = supportsEmojiFlags();
|
|
131
136
|
countryFlag(countryId) {
|
|
132
|
-
return countryId
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
.join('');
|
|
137
|
+
return buildFlagEmoji(countryId);
|
|
138
|
+
}
|
|
139
|
+
countryCode(countryId) {
|
|
140
|
+
return countryId.toUpperCase();
|
|
137
141
|
}
|
|
138
142
|
updateValue(rawValue, maskedValue) {
|
|
139
143
|
if (!this.selectedItem) {
|
|
@@ -165,7 +169,7 @@ export class CountryPhonePickerComponent {
|
|
|
165
169
|
useExisting: forwardRef(() => CountryPhonePickerComponent),
|
|
166
170
|
multi: true
|
|
167
171
|
}
|
|
168
|
-
], viewQueries: [{ propertyName: "popover", first: true, predicate: PopoverComponent, descendants: true }, { propertyName: "phoneInputRef", first: true, predicate: ["phoneInputRef"], descendants: true }], ngImport: i0, template: "<div class=\"sdc-country-phone-picker\">\n @if (label) {\n <label\n class=\"sdc-country-phone-picker__label\"\n [attr.for]=\"inputId\"\n >\n {{ label | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n }\n </label>\n }\n\n <sdc-popover\n [open]=\"open\"\n (openChange)=\"onToggle($event)\"\n [matchTriggerWidth]=\"true\"\n placement=\"bottom-start\"\n appendTo=\"body\"\n [disabled]=\"disabled\"\n [ariaLabel]=\"'platform.datacore.country_phone_picker.accessibility.dropdown'\"\n >\n <div\n sdc-popover-trigger\n class=\"sdc-country-phone-picker__control\"\n [class.sdc-country-phone-picker__control--invalid]=\"invalid\"\n >\n <button type=\"button\" class=\"sdc-country-phone-picker__country-trigger\" [disabled]=\"disabled\">\n <span class=\"sdc-country-phone-picker__flag\">{{ countryFlag(selectedItem?.id ?? 'br') }}</span>\n <span class=\"sdc-country-phone-picker__caret fas fa-caret-down\" aria-hidden=\"true\"></span>\n </button>\n\n <span class=\"sdc-country-phone-picker__ddi\">{{ currentDdi }}</span>\n\n <input\n #phoneInputRef\n [id]=\"inputId\"\n class=\"sdc-country-phone-picker__input\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder || currentMask\"\n [required]=\"required\"\n [value]=\"phoneMaskedValue\"\n type=\"tel\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n [attr.aria-label]=\"\n label\n ? (label | translate)\n : ('platform.datacore.country_phone_picker.accessibility.input' | translate)\n \"\n (input)=\"onPhoneInput($event)\"\n (blur)=\"onPhoneBlur()\"\n />\n </div>\n\n <div sdc-popover-content class=\"sdc-country-phone-picker__panel\">\n <div class=\"sdc-country-phone-picker__search\">\n <label [attr.for]=\"searchInputId\" class=\"sr-only\">\n {{ 'platform.datacore.country_phone_picker.search_placeholder' | translate }}\n </label>\n <input\n [id]=\"searchInputId\"\n class=\"sdc-country-phone-picker__search-input\"\n [(ngModel)]=\"filterTerm\"\n [placeholder]=\"'platform.datacore.country_phone_picker.search_placeholder' | translate\"\n [attr.aria-label]=\"'platform.datacore.country_phone_picker.search_placeholder' | translate\"\n type=\"text\"\n />\n </div>\n\n <ul class=\"sdc-country-phone-picker__options\">\n @for (country of filteredCountries; track country.id) {\n <li class=\"sdc-country-phone-picker__option\">\n <button\n type=\"button\"\n class=\"sdc-country-phone-picker__option-button\"\n (click)=\"onSelectCountry(country)\"\n (keydown)=\"onCountryOptionKeydown($event, country)\"\n >\n <span class=\"sdc-country-phone-picker__option-flag\">{{ countryFlag(country.id) }}</span>\n <span class=\"sdc-country-phone-picker__option-name\">{{ countryName(country.id) }}</span>\n <span class=\"sdc-country-phone-picker__option-ddi\">{{ country.ddi }}</span>\n </button>\n </li>\n }\n </ul>\n </div>\n </sdc-popover>\n\n @if (message) {\n <small class=\"invalid-feedback\">\n {{ message | translate }}\n </small>\n }\n </div>\n", styles: [".sdc-country-phone-picker{display:flex;flex-direction:column;gap:.5rem}.sdc-country-phone-picker .sdc-country-phone-picker__label{font-weight:600;color:var(--sdc-text-color, var(--p-text-color, #111827))}.sdc-country-phone-picker .required-field{margin-left:var(--sdc-form-required-ml);color:var(--sdc-form-required-color, var(--sdc-error-color, #d98888));font-weight:400}.sdc-country-phone-picker .sdc-country-phone-picker__control{display:flex;align-items:stretch;border:1px solid var(--sdc-formfield-default-border, #d1d5db);border-radius:var(--sdc-formfield-border-radius, 8px);overflow:hidden;background:var(--sdc-formfield-default-bg, #fff)}.sdc-country-phone-picker .sdc-country-phone-picker__control--invalid{border-color:var(--sdc-formfield-invalid-border, var(--sdc-error-color, #d98888))}.sdc-country-phone-picker .sdc-country-phone-picker__country-trigger{display:inline-flex;align-items:center;gap:.5rem;padding:0 .875rem;border:0;background:transparent;border-right:1px solid var(--sdc-formfield-default-border, #d1d5db);cursor:pointer}.sdc-country-phone-picker .sdc-country-phone-picker__flag,.sdc-country-phone-picker .sdc-country-phone-picker__option-flag{font-size:1rem;line-height:1}.sdc-country-phone-picker .sdc-country-phone-picker__ddi{display:inline-flex;align-items:center;padding:0 .75rem;color:var(--sdc-text-subtle, #667085)}.sdc-country-phone-picker .sdc-country-phone-picker__input{flex:1 1 auto;border:0;min-height:var(--sdc-formfield-default-height, 2.5rem);padding:0 var(--sdc-form-input-padding-x, .875rem);font:inherit;background:transparent}.sdc-country-phone-picker .sdc-country-phone-picker__input:focus{outline:none}.sdc-country-phone-picker .sdc-country-phone-picker__panel{padding:.5rem 0}.sdc-country-phone-picker .sdc-country-phone-picker__search{padding:0 .75rem .5rem}.sdc-country-phone-picker .sdc-country-phone-picker__search-input{width:100%;border:1px solid var(--sdc-formfield-default-border, #d1d5db);border-radius:var(--sdc-formfield-border-radius, 8px);min-height:var(--sdc-formfield-default-height, 2.5rem);padding:0 .875rem;font:inherit}.sdc-country-phone-picker .sdc-country-phone-picker__options{list-style:none;padding:0;margin:0;max-height:16rem;overflow:auto}.sdc-country-phone-picker .sdc-country-phone-picker__option{list-style:none}.sdc-country-phone-picker .sdc-country-phone-picker__option-button{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.sdc-country-phone-picker .sdc-country-phone-picker__option-button:hover{background:var(--sdc-surface-hover, #eef2f6)}.sdc-country-phone-picker .sdc-country-phone-picker__option-name{flex:1 1 auto}.sdc-country-phone-picker .sdc-country-phone-picker__option-ddi{color:var(--sdc-text-subtle, #667085)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: PopoverComponent, selector: "sdc-popover", inputs: ["open", "disabled", "toggleOnTriggerClick", "closeOnOutsideClick", "closeOnEscape", "trapFocus", "focusOnOpen", "restoreFocusOnClose", "ariaLabel", "appendTo", "zIndex", "offset", "placement", "role", "matchTriggerWidth", "panelWidth", "panelMinWidth", "panelMaxWidth", "panelMaxHeight", "panelClass"], outputs: ["openChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
172
|
+
], viewQueries: [{ propertyName: "popover", first: true, predicate: PopoverComponent, descendants: true }, { propertyName: "phoneInputRef", first: true, predicate: ["phoneInputRef"], descendants: true }], ngImport: i0, template: "<div class=\"sdc-country-phone-picker\">\n @if (label) {\n <label\n class=\"sdc-country-phone-picker__label\"\n [attr.for]=\"inputId\"\n >\n {{ label | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n }\n </label>\n }\n\n <sdc-popover\n [open]=\"open\"\n (openChange)=\"onToggle($event)\"\n [matchTriggerWidth]=\"true\"\n placement=\"bottom-start\"\n appendTo=\"body\"\n [disabled]=\"disabled\"\n panelClass=\"sdc-country-phone-picker__overlay-panel\"\n [ariaLabel]=\"'platform.datacore.country_phone_picker.accessibility.dropdown'\"\n >\n <div\n sdc-popover-trigger\n class=\"sdc-country-phone-picker__control\"\n [class.sdc-country-phone-picker__control--invalid]=\"invalid\"\n [class.sdc-country-phone-picker__control--disabled]=\"disabled\"\n >\n <button\n type=\"button\"\n class=\"sdc-country-phone-picker__country-trigger\"\n [disabled]=\"disabled\"\n [attr.aria-label]=\"'platform.datacore.country_phone_picker.accessibility.dropdown' | translate\"\n aria-haspopup=\"listbox\"\n [attr.aria-expanded]=\"open ? 'true' : 'false'\"\n >\n @if (showFlagEmoji) {\n <span class=\"sdc-country-phone-picker__flag\">{{ countryFlag(selectedItem?.id ?? 'br') }}</span>\n } @else {\n <span class=\"sdc-country-phone-picker__flag-fallback\">{{ countryCode(selectedItem?.id ?? 'br') }}</span>\n }\n <span\n class=\"sdc-country-phone-picker__caret fas fa-caret-down\"\n [class.sdc-country-phone-picker__caret--open]=\"open\"\n aria-hidden=\"true\"\n ></span>\n </button>\n\n <span class=\"sdc-country-phone-picker__ddi\">{{ currentDdi }}</span>\n\n <input\n #phoneInputRef\n [id]=\"inputId\"\n class=\"sdc-country-phone-picker__input\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder || currentMask\"\n [required]=\"required\"\n [value]=\"phoneMaskedValue\"\n type=\"tel\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n [attr.aria-label]=\"\n label\n ? (label | translate)\n : ('platform.datacore.country_phone_picker.accessibility.input' | translate)\n \"\n (input)=\"onPhoneInput($event)\"\n (blur)=\"onPhoneBlur()\"\n />\n </div>\n\n <div sdc-popover-content class=\"sdc-country-phone-picker__panel\">\n <div class=\"sdc-country-phone-picker__search\">\n <label [attr.for]=\"searchInputId\" class=\"sr-only\">\n {{ 'platform.datacore.country_phone_picker.search_placeholder' | translate }}\n </label>\n <input\n [id]=\"searchInputId\"\n class=\"sdc-country-phone-picker__search-input\"\n [(ngModel)]=\"filterTerm\"\n [placeholder]=\"'platform.datacore.country_phone_picker.search_placeholder' | translate\"\n [attr.aria-label]=\"'platform.datacore.country_phone_picker.search_placeholder' | translate\"\n type=\"text\"\n />\n </div>\n\n <!-- NOSONAR: custom country dropdown intentionally uses ARIA listbox semantics instead of a native select -->\n <ul\n class=\"sdc-country-phone-picker__options\"\n [attr.role]=\"'listbox'\"\n [attr.aria-label]=\"'platform.datacore.country_phone_picker.accessibility.dropdown' | translate\"\n >\n @for (country of filteredCountries; track country.id) {\n <li\n class=\"sdc-country-phone-picker__option\"\n [class.sdc-country-phone-picker__option--selected]=\"selectedItem?.id === country.id\"\n >\n <!-- NOSONAR -->\n <!-- the custom listbox keeps option semantics on the focusable action for keyboard navigation -->\n <button\n type=\"button\"\n class=\"sdc-country-phone-picker__option-action\"\n [attr.role]=\"'option'\"\n [attr.aria-selected]=\"selectedItem?.id === country.id ? 'true' : 'false'\"\n (click)=\"onSelectCountry(country)\"\n (keydown)=\"onCountryOptionKeydown($event, country)\"\n >\n <span class=\"sdc-country-phone-picker__option-content\">\n @if (showFlagEmoji) {\n <span class=\"sdc-country-phone-picker__option-flag\">{{ countryFlag(country.id) }}</span>\n } @else {\n <span class=\"sdc-country-phone-picker__option-flag-fallback\">{{ countryCode(country.id) }}</span>\n }\n <span class=\"sdc-country-phone-picker__option-texts\">\n <span class=\"sdc-country-phone-picker__option-label\">{{ countryName(country.id) }}</span>\n <span class=\"sdc-country-phone-picker__option-meta\">{{ country.ddi }}</span>\n </span>\n </span>\n @if (selectedItem?.id === country.id) {\n <i class=\"fas fa-check sdc-country-phone-picker__option-selected-icon\" aria-hidden=\"true\"></i>\n }\n </button>\n </li>\n }\n </ul>\n </div>\n </sdc-popover>\n\n @if (message) {\n <small class=\"invalid-feedback\">\n {{ message | translate }}\n </small>\n }\n </div>\n", styles: [":host{display:block}.sdc-country-phone-picker{display:flex;flex-direction:column;gap:var(--sdc-form-label-row-gap)}.sdc-country-phone-picker__label{font-size:var(--sdc-form-label-font-size);font-weight:var(--sdc-form-label-font-weight);color:var(--sdc-form-label-color);line-height:var(--sdc-form-label-lh);margin-bottom:var(--sdc-form-label-row-mb)}.required-field{margin-left:var(--sdc-form-required-ml);color:var(--sdc-form-required-color);font-weight:var(--sdc-form-required-weight)}.sdc-country-phone-picker__control{display:flex;align-items:stretch;min-height:var(--sdc-formfield-default-height);border:1px solid var(--sdc-formfield-default-border);border-radius:var(--sdc-formfield-border-radius);background:var(--sdc-formfield-default-bg, #fff);box-sizing:border-box;overflow:hidden;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.sdc-country-phone-picker__control:hover{border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff))}.sdc-country-phone-picker__control:focus-within{border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff));box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 2px rgba(0, 123, 255, .14))}.sdc-country-phone-picker__control--invalid,.sdc-country-phone-picker__control--invalid:hover,.sdc-country-phone-picker__control--invalid:focus-within{border-color:var(--sdc-formfield-invalid-border, var(--sdc-error-color, #d98888));box-shadow:var(--sdc-formfield-invalid-focus-shadow, 0 0 0 2px rgba(217, 136, 136, .16))}.sdc-country-phone-picker__control--disabled,.sdc-country-phone-picker__control--disabled:hover{background-color:var(--sdc-formfield-disabled-bg);border-color:var(--sdc-formfield-default-border);box-shadow:none;cursor:not-allowed}.sdc-country-phone-picker__country-trigger{display:inline-flex;align-items:center;gap:.5rem;padding:0 .875rem;border:0;background:transparent;border-right:1px solid var(--sdc-formfield-default-border, #d1d5db);cursor:pointer;transition:background-color .16s ease}.sdc-country-phone-picker__country-trigger:disabled{cursor:not-allowed}.sdc-country-phone-picker__country-trigger:hover:not(:disabled){background:var(--sdc-combobox-option-hover-bg, #eeebf2)}.sdc-country-phone-picker__flag,.sdc-country-phone-picker__option-flag{font-family:Twemoji Mozilla,\"Segoe UI Emoji\",\"Noto Color Emoji\",\"Apple Color Emoji\",sans-serif;font-size:1rem;line-height:1}.sdc-country-phone-picker__flag-fallback,.sdc-country-phone-picker__option-flag-fallback{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;height:1.125rem;padding:0 .25rem;border-radius:3px;background:var(--sdc-combobox-option-hover-bg, #eeebf2);color:var(--sdc-text-subtle, #667085);font-family:var(--sdc-font-family-mono, \"Courier New\", monospace);font-size:.6875rem;font-weight:600;line-height:1;letter-spacing:.02em}.sdc-country-phone-picker__caret{transition:transform .16s ease}.sdc-country-phone-picker__caret--open{transform:rotate(180deg)}.sdc-country-phone-picker__ddi{display:inline-flex;align-items:center;padding:0 .75rem;color:var(--sdc-text-subtle, #667085)}.sdc-country-phone-picker__input{flex:1 1 auto;min-width:0;border:0;min-height:var(--sdc-formfield-default-height, 2.5rem);padding:0 var(--sdc-form-input-padding-x, .875rem);font:inherit;line-height:var(--sdc-formfield-default-line-height);background:transparent}.sdc-country-phone-picker__input:focus{outline:none}.sdc-country-phone-picker__input::placeholder{color:var(--sdc-form-placeholder-color)}.sdc-country-phone-picker__input:disabled{cursor:not-allowed}.sdc-country-phone-picker__panel{padding:.625rem;box-sizing:border-box}.sdc-country-phone-picker__search{margin-bottom:.625rem}.sdc-country-phone-picker__search-input{width:100%;box-sizing:border-box;border:1px solid var(--sdc-formfield-default-border, #d1d5db);border-radius:var(--sdc-formfield-border-radius, 8px);min-height:calc(var(--sdc-formfield-default-height) - .25rem);padding:0 .875rem;font:inherit;background:var(--sdc-formfield-default-bg, #fff);transition:border-color .18s ease,box-shadow .18s ease}.sdc-country-phone-picker__search-input:focus{outline:none;border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff));box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 2px rgba(0, 123, 255, .14))}.sdc-country-phone-picker__search-input::placeholder{color:var(--sdc-form-placeholder-color)}.sdc-country-phone-picker__options{list-style:none;padding:0;margin:0 -.625rem;max-height:16rem;overflow:auto}.sdc-country-phone-picker__option{list-style:none;background:transparent;transition:background-color .16s ease}.sdc-country-phone-picker__option:hover,.sdc-country-phone-picker__option--selected{background:var(--sdc-combobox-option-hover-bg, #eeebf2)}.sdc-country-phone-picker__option-action{display:flex;align-items:center;gap:.75rem;width:100%;min-height:2.75rem;padding:.625rem 1.375rem;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;box-sizing:border-box}.sdc-country-phone-picker__option-content{display:inline-flex;align-items:center;gap:.5rem;flex:1 1 auto;min-width:0;color:#334155;font-size:.95rem}.sdc-country-phone-picker__option-texts{display:flex;flex:1 1 auto;flex-direction:column;gap:.125rem;min-width:0}.sdc-country-phone-picker__option-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sdc-country-phone-picker__option-meta{color:var(--p-text-muted-color, #6b7280);font-family:var(--sdc-font-family-mono, \"Courier New\", monospace);font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sdc-country-phone-picker__option-selected-icon{color:var(--sdc-primary-color, #007bff)}::ng-deep .sdc-popover__panel.sdc-country-phone-picker__overlay-panel{box-shadow:0 12px 28px #0f172a24}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: PopoverComponent, selector: "sdc-popover", inputs: ["open", "disabled", "toggleOnTriggerClick", "closeOnOutsideClick", "closeOnScroll", "closeOnEscape", "trapFocus", "focusOnOpen", "restoreFocusOnClose", "ariaLabel", "appendTo", "zIndex", "offset", "placement", "role", "matchTriggerWidth", "panelWidth", "panelMinWidth", "panelMaxWidth", "panelMaxHeight", "panelClass"], outputs: ["openChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
169
173
|
}
|
|
170
174
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CountryPhonePickerComponent, decorators: [{
|
|
171
175
|
type: Component,
|
|
@@ -175,7 +179,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
175
179
|
useExisting: forwardRef(() => CountryPhonePickerComponent),
|
|
176
180
|
multi: true
|
|
177
181
|
}
|
|
178
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div class=\"sdc-country-phone-picker\">\n @if (label) {\n <label\n class=\"sdc-country-phone-picker__label\"\n [attr.for]=\"inputId\"\n >\n {{ label | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n }\n </label>\n }\n\n <sdc-popover\n [open]=\"open\"\n (openChange)=\"onToggle($event)\"\n [matchTriggerWidth]=\"true\"\n placement=\"bottom-start\"\n appendTo=\"body\"\n [disabled]=\"disabled\"\n [ariaLabel]=\"'platform.datacore.country_phone_picker.accessibility.dropdown'\"\n >\n <div\n sdc-popover-trigger\n class=\"sdc-country-phone-picker__control\"\n [class.sdc-country-phone-picker__control--invalid]=\"invalid\"\n >\n <button type=\"button\" class=\"sdc-country-phone-picker__country-trigger\" [disabled]=\"disabled\">\n <span class=\"sdc-country-phone-picker__flag\">{{ countryFlag(selectedItem?.id ?? 'br') }}</span>\n <span class=\"sdc-country-phone-picker__caret fas fa-caret-down\" aria-hidden=\"true\"></span>\n </button>\n\n <span class=\"sdc-country-phone-picker__ddi\">{{ currentDdi }}</span>\n\n <input\n #phoneInputRef\n [id]=\"inputId\"\n class=\"sdc-country-phone-picker__input\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder || currentMask\"\n [required]=\"required\"\n [value]=\"phoneMaskedValue\"\n type=\"tel\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n [attr.aria-label]=\"\n label\n ? (label | translate)\n : ('platform.datacore.country_phone_picker.accessibility.input' | translate)\n \"\n (input)=\"onPhoneInput($event)\"\n (blur)=\"onPhoneBlur()\"\n />\n </div>\n\n <div sdc-popover-content class=\"sdc-country-phone-picker__panel\">\n <div class=\"sdc-country-phone-picker__search\">\n <label [attr.for]=\"searchInputId\" class=\"sr-only\">\n {{ 'platform.datacore.country_phone_picker.search_placeholder' | translate }}\n </label>\n <input\n [id]=\"searchInputId\"\n class=\"sdc-country-phone-picker__search-input\"\n [(ngModel)]=\"filterTerm\"\n [placeholder]=\"'platform.datacore.country_phone_picker.search_placeholder' | translate\"\n [attr.aria-label]=\"'platform.datacore.country_phone_picker.search_placeholder' | translate\"\n type=\"text\"\n />\n </div>\n\n <ul class=\"sdc-country-phone-picker__options\">\n @for (country of filteredCountries; track country.id) {\n <li class=\"sdc-country-phone-picker__option\">\n <button\n type=\"button\"\n class=\"sdc-country-phone-picker__option-button\"\n (click)=\"onSelectCountry(country)\"\n (keydown)=\"onCountryOptionKeydown($event, country)\"\n >\n <span class=\"sdc-country-phone-picker__option-flag\">{{ countryFlag(country.id) }}</span>\n <span class=\"sdc-country-phone-picker__option-name\">{{ countryName(country.id) }}</span>\n <span class=\"sdc-country-phone-picker__option-ddi\">{{ country.ddi }}</span>\n </button>\n </li>\n }\n </ul>\n </div>\n </sdc-popover>\n\n @if (message) {\n <small class=\"invalid-feedback\">\n {{ message | translate }}\n </small>\n }\n </div>\n", styles: [".sdc-country-phone-picker{display:flex;flex-direction:column;gap:.5rem}.sdc-country-phone-picker .sdc-country-phone-picker__label{font-weight:600;color:var(--sdc-text-color, var(--p-text-color, #111827))}.sdc-country-phone-picker .required-field{margin-left:var(--sdc-form-required-ml);color:var(--sdc-form-required-color, var(--sdc-error-color, #d98888));font-weight:400}.sdc-country-phone-picker .sdc-country-phone-picker__control{display:flex;align-items:stretch;border:1px solid var(--sdc-formfield-default-border, #d1d5db);border-radius:var(--sdc-formfield-border-radius, 8px);overflow:hidden;background:var(--sdc-formfield-default-bg, #fff)}.sdc-country-phone-picker .sdc-country-phone-picker__control--invalid{border-color:var(--sdc-formfield-invalid-border, var(--sdc-error-color, #d98888))}.sdc-country-phone-picker .sdc-country-phone-picker__country-trigger{display:inline-flex;align-items:center;gap:.5rem;padding:0 .875rem;border:0;background:transparent;border-right:1px solid var(--sdc-formfield-default-border, #d1d5db);cursor:pointer}.sdc-country-phone-picker .sdc-country-phone-picker__flag,.sdc-country-phone-picker .sdc-country-phone-picker__option-flag{font-size:1rem;line-height:1}.sdc-country-phone-picker .sdc-country-phone-picker__ddi{display:inline-flex;align-items:center;padding:0 .75rem;color:var(--sdc-text-subtle, #667085)}.sdc-country-phone-picker .sdc-country-phone-picker__input{flex:1 1 auto;border:0;min-height:var(--sdc-formfield-default-height, 2.5rem);padding:0 var(--sdc-form-input-padding-x, .875rem);font:inherit;background:transparent}.sdc-country-phone-picker .sdc-country-phone-picker__input:focus{outline:none}.sdc-country-phone-picker .sdc-country-phone-picker__panel{padding:.5rem 0}.sdc-country-phone-picker .sdc-country-phone-picker__search{padding:0 .75rem .5rem}.sdc-country-phone-picker .sdc-country-phone-picker__search-input{width:100%;border:1px solid var(--sdc-formfield-default-border, #d1d5db);border-radius:var(--sdc-formfield-border-radius, 8px);min-height:var(--sdc-formfield-default-height, 2.5rem);padding:0 .875rem;font:inherit}.sdc-country-phone-picker .sdc-country-phone-picker__options{list-style:none;padding:0;margin:0;max-height:16rem;overflow:auto}.sdc-country-phone-picker .sdc-country-phone-picker__option{list-style:none}.sdc-country-phone-picker .sdc-country-phone-picker__option-button{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.sdc-country-phone-picker .sdc-country-phone-picker__option-button:hover{background:var(--sdc-surface-hover, #eef2f6)}.sdc-country-phone-picker .sdc-country-phone-picker__option-name{flex:1 1 auto}.sdc-country-phone-picker .sdc-country-phone-picker__option-ddi{color:var(--sdc-text-subtle, #667085)}\n"] }]
|
|
182
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div class=\"sdc-country-phone-picker\">\n @if (label) {\n <label\n class=\"sdc-country-phone-picker__label\"\n [attr.for]=\"inputId\"\n >\n {{ label | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n }\n </label>\n }\n\n <sdc-popover\n [open]=\"open\"\n (openChange)=\"onToggle($event)\"\n [matchTriggerWidth]=\"true\"\n placement=\"bottom-start\"\n appendTo=\"body\"\n [disabled]=\"disabled\"\n panelClass=\"sdc-country-phone-picker__overlay-panel\"\n [ariaLabel]=\"'platform.datacore.country_phone_picker.accessibility.dropdown'\"\n >\n <div\n sdc-popover-trigger\n class=\"sdc-country-phone-picker__control\"\n [class.sdc-country-phone-picker__control--invalid]=\"invalid\"\n [class.sdc-country-phone-picker__control--disabled]=\"disabled\"\n >\n <button\n type=\"button\"\n class=\"sdc-country-phone-picker__country-trigger\"\n [disabled]=\"disabled\"\n [attr.aria-label]=\"'platform.datacore.country_phone_picker.accessibility.dropdown' | translate\"\n aria-haspopup=\"listbox\"\n [attr.aria-expanded]=\"open ? 'true' : 'false'\"\n >\n @if (showFlagEmoji) {\n <span class=\"sdc-country-phone-picker__flag\">{{ countryFlag(selectedItem?.id ?? 'br') }}</span>\n } @else {\n <span class=\"sdc-country-phone-picker__flag-fallback\">{{ countryCode(selectedItem?.id ?? 'br') }}</span>\n }\n <span\n class=\"sdc-country-phone-picker__caret fas fa-caret-down\"\n [class.sdc-country-phone-picker__caret--open]=\"open\"\n aria-hidden=\"true\"\n ></span>\n </button>\n\n <span class=\"sdc-country-phone-picker__ddi\">{{ currentDdi }}</span>\n\n <input\n #phoneInputRef\n [id]=\"inputId\"\n class=\"sdc-country-phone-picker__input\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder || currentMask\"\n [required]=\"required\"\n [value]=\"phoneMaskedValue\"\n type=\"tel\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n [attr.aria-label]=\"\n label\n ? (label | translate)\n : ('platform.datacore.country_phone_picker.accessibility.input' | translate)\n \"\n (input)=\"onPhoneInput($event)\"\n (blur)=\"onPhoneBlur()\"\n />\n </div>\n\n <div sdc-popover-content class=\"sdc-country-phone-picker__panel\">\n <div class=\"sdc-country-phone-picker__search\">\n <label [attr.for]=\"searchInputId\" class=\"sr-only\">\n {{ 'platform.datacore.country_phone_picker.search_placeholder' | translate }}\n </label>\n <input\n [id]=\"searchInputId\"\n class=\"sdc-country-phone-picker__search-input\"\n [(ngModel)]=\"filterTerm\"\n [placeholder]=\"'platform.datacore.country_phone_picker.search_placeholder' | translate\"\n [attr.aria-label]=\"'platform.datacore.country_phone_picker.search_placeholder' | translate\"\n type=\"text\"\n />\n </div>\n\n <!-- NOSONAR: custom country dropdown intentionally uses ARIA listbox semantics instead of a native select -->\n <ul\n class=\"sdc-country-phone-picker__options\"\n [attr.role]=\"'listbox'\"\n [attr.aria-label]=\"'platform.datacore.country_phone_picker.accessibility.dropdown' | translate\"\n >\n @for (country of filteredCountries; track country.id) {\n <li\n class=\"sdc-country-phone-picker__option\"\n [class.sdc-country-phone-picker__option--selected]=\"selectedItem?.id === country.id\"\n >\n <!-- NOSONAR -->\n <!-- the custom listbox keeps option semantics on the focusable action for keyboard navigation -->\n <button\n type=\"button\"\n class=\"sdc-country-phone-picker__option-action\"\n [attr.role]=\"'option'\"\n [attr.aria-selected]=\"selectedItem?.id === country.id ? 'true' : 'false'\"\n (click)=\"onSelectCountry(country)\"\n (keydown)=\"onCountryOptionKeydown($event, country)\"\n >\n <span class=\"sdc-country-phone-picker__option-content\">\n @if (showFlagEmoji) {\n <span class=\"sdc-country-phone-picker__option-flag\">{{ countryFlag(country.id) }}</span>\n } @else {\n <span class=\"sdc-country-phone-picker__option-flag-fallback\">{{ countryCode(country.id) }}</span>\n }\n <span class=\"sdc-country-phone-picker__option-texts\">\n <span class=\"sdc-country-phone-picker__option-label\">{{ countryName(country.id) }}</span>\n <span class=\"sdc-country-phone-picker__option-meta\">{{ country.ddi }}</span>\n </span>\n </span>\n @if (selectedItem?.id === country.id) {\n <i class=\"fas fa-check sdc-country-phone-picker__option-selected-icon\" aria-hidden=\"true\"></i>\n }\n </button>\n </li>\n }\n </ul>\n </div>\n </sdc-popover>\n\n @if (message) {\n <small class=\"invalid-feedback\">\n {{ message | translate }}\n </small>\n }\n </div>\n", styles: [":host{display:block}.sdc-country-phone-picker{display:flex;flex-direction:column;gap:var(--sdc-form-label-row-gap)}.sdc-country-phone-picker__label{font-size:var(--sdc-form-label-font-size);font-weight:var(--sdc-form-label-font-weight);color:var(--sdc-form-label-color);line-height:var(--sdc-form-label-lh);margin-bottom:var(--sdc-form-label-row-mb)}.required-field{margin-left:var(--sdc-form-required-ml);color:var(--sdc-form-required-color);font-weight:var(--sdc-form-required-weight)}.sdc-country-phone-picker__control{display:flex;align-items:stretch;min-height:var(--sdc-formfield-default-height);border:1px solid var(--sdc-formfield-default-border);border-radius:var(--sdc-formfield-border-radius);background:var(--sdc-formfield-default-bg, #fff);box-sizing:border-box;overflow:hidden;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.sdc-country-phone-picker__control:hover{border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff))}.sdc-country-phone-picker__control:focus-within{border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff));box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 2px rgba(0, 123, 255, .14))}.sdc-country-phone-picker__control--invalid,.sdc-country-phone-picker__control--invalid:hover,.sdc-country-phone-picker__control--invalid:focus-within{border-color:var(--sdc-formfield-invalid-border, var(--sdc-error-color, #d98888));box-shadow:var(--sdc-formfield-invalid-focus-shadow, 0 0 0 2px rgba(217, 136, 136, .16))}.sdc-country-phone-picker__control--disabled,.sdc-country-phone-picker__control--disabled:hover{background-color:var(--sdc-formfield-disabled-bg);border-color:var(--sdc-formfield-default-border);box-shadow:none;cursor:not-allowed}.sdc-country-phone-picker__country-trigger{display:inline-flex;align-items:center;gap:.5rem;padding:0 .875rem;border:0;background:transparent;border-right:1px solid var(--sdc-formfield-default-border, #d1d5db);cursor:pointer;transition:background-color .16s ease}.sdc-country-phone-picker__country-trigger:disabled{cursor:not-allowed}.sdc-country-phone-picker__country-trigger:hover:not(:disabled){background:var(--sdc-combobox-option-hover-bg, #eeebf2)}.sdc-country-phone-picker__flag,.sdc-country-phone-picker__option-flag{font-family:Twemoji Mozilla,\"Segoe UI Emoji\",\"Noto Color Emoji\",\"Apple Color Emoji\",sans-serif;font-size:1rem;line-height:1}.sdc-country-phone-picker__flag-fallback,.sdc-country-phone-picker__option-flag-fallback{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;height:1.125rem;padding:0 .25rem;border-radius:3px;background:var(--sdc-combobox-option-hover-bg, #eeebf2);color:var(--sdc-text-subtle, #667085);font-family:var(--sdc-font-family-mono, \"Courier New\", monospace);font-size:.6875rem;font-weight:600;line-height:1;letter-spacing:.02em}.sdc-country-phone-picker__caret{transition:transform .16s ease}.sdc-country-phone-picker__caret--open{transform:rotate(180deg)}.sdc-country-phone-picker__ddi{display:inline-flex;align-items:center;padding:0 .75rem;color:var(--sdc-text-subtle, #667085)}.sdc-country-phone-picker__input{flex:1 1 auto;min-width:0;border:0;min-height:var(--sdc-formfield-default-height, 2.5rem);padding:0 var(--sdc-form-input-padding-x, .875rem);font:inherit;line-height:var(--sdc-formfield-default-line-height);background:transparent}.sdc-country-phone-picker__input:focus{outline:none}.sdc-country-phone-picker__input::placeholder{color:var(--sdc-form-placeholder-color)}.sdc-country-phone-picker__input:disabled{cursor:not-allowed}.sdc-country-phone-picker__panel{padding:.625rem;box-sizing:border-box}.sdc-country-phone-picker__search{margin-bottom:.625rem}.sdc-country-phone-picker__search-input{width:100%;box-sizing:border-box;border:1px solid var(--sdc-formfield-default-border, #d1d5db);border-radius:var(--sdc-formfield-border-radius, 8px);min-height:calc(var(--sdc-formfield-default-height) - .25rem);padding:0 .875rem;font:inherit;background:var(--sdc-formfield-default-bg, #fff);transition:border-color .18s ease,box-shadow .18s ease}.sdc-country-phone-picker__search-input:focus{outline:none;border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff));box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 2px rgba(0, 123, 255, .14))}.sdc-country-phone-picker__search-input::placeholder{color:var(--sdc-form-placeholder-color)}.sdc-country-phone-picker__options{list-style:none;padding:0;margin:0 -.625rem;max-height:16rem;overflow:auto}.sdc-country-phone-picker__option{list-style:none;background:transparent;transition:background-color .16s ease}.sdc-country-phone-picker__option:hover,.sdc-country-phone-picker__option--selected{background:var(--sdc-combobox-option-hover-bg, #eeebf2)}.sdc-country-phone-picker__option-action{display:flex;align-items:center;gap:.75rem;width:100%;min-height:2.75rem;padding:.625rem 1.375rem;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;box-sizing:border-box}.sdc-country-phone-picker__option-content{display:inline-flex;align-items:center;gap:.5rem;flex:1 1 auto;min-width:0;color:#334155;font-size:.95rem}.sdc-country-phone-picker__option-texts{display:flex;flex:1 1 auto;flex-direction:column;gap:.125rem;min-width:0}.sdc-country-phone-picker__option-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sdc-country-phone-picker__option-meta{color:var(--p-text-muted-color, #6b7280);font-family:var(--sdc-font-family-mono, \"Courier New\", monospace);font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sdc-country-phone-picker__option-selected-icon{color:var(--sdc-primary-color, #007bff)}::ng-deep .sdc-popover__panel.sdc-country-phone-picker__overlay-panel{box-shadow:0 12px 28px #0f172a24}\n"] }]
|
|
179
183
|
}], propDecorators: { countries: [{
|
|
180
184
|
type: Input
|
|
181
185
|
}], ordination: [{
|
|
@@ -206,4 +210,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
206
210
|
function countMaskSlots(mask) {
|
|
207
211
|
return parseMaskPattern(mask).filter((token) => token.kind !== 'literal').length;
|
|
208
212
|
}
|
|
209
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRyeS1waG9uZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9jb3VudHJ5LXBob25lLXBpY2tlci9jb3VudHJ5LXBob25lLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2NvdW50cnktcGhvbmUtcGlja2VyL2NvdW50cnktcGhvbmUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsVUFBVSxFQUNWLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhFLE9BQU8sRUFDTCxzQ0FBc0MsRUFDdEMsdUNBQXVDLEVBQ3hDLE1BQU0saURBQWlELENBQUM7QUFNekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7O0FBRWhFLE1BQU0seUJBQXlCLEdBQUcsTUFBTSxDQUFDO0FBa0J6QyxNQUFNLE9BQU8sMkJBQTJCO0lBQ3JCLFNBQVMsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNyQyxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUVuRSxTQUFTLEdBQWEsRUFBRSxDQUFD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bUJBQUUsZUFBZSw0RkFBRSxnQkFBZ0I7OzRGQWE3QywyQkFBMkI7a0JBaEJ2QyxTQUFTOytCQUNFLDBCQUEwQixjQUN4QixJQUFJLFdBQ1AsQ0FBQyxXQUFXLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixDQUFDLGFBRzlDO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDRCQUE0QixDQUFDOzRCQUMxRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsUUFBUTs4QkFNaEMsU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUVJLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFFc0IsT0FBTztzQkFBbkMsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBQ0MsYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlOztBQTJLNUIsU0FBUyxjQUFjLENBQUMsSUFBWTtJQUNsQyxPQUFPLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUM7QUFDbkYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxuICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHtcbiAgQ09VTlRSWV9QSE9ORV9QSUNLRVJfREVGQVVMVF9DT1VOVFJJRVMsXG4gIENPVU5UUllfUEhPTkVfUElDS0VSX0RFRkFVTFRfT1JESU5BVElPTlxufSBmcm9tICcuLi8uLi9jb3JlL2NvbnN0YW50cy9jb3VudHJ5LXBob25lLXBpY2tlci5jb25zdCc7XG5pbXBvcnQgdHlwZSB7XG4gIENvdW50cnlQaG9uZURhdGEsXG4gIENvdW50cnlQaG9uZU9yZGluYXRpb24sXG4gIFBob25lU2VsZWN0aW9uRGF0YVxufSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL2NvdW50cnktcGhvbmUtcGlja2VyLnR5cGUnO1xuaW1wb3J0IHsgbmV4dFNlcXVlbnRpYWxJZCB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMvaWQudXRpbCc7XG5pbXBvcnQgeyBhcHBseU1hc2tGb3JtYXQsIHBhcnNlTWFza1BhdHRlcm4gfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL21hc2sudXRpbCc7XG5pbXBvcnQgeyBQb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudCc7XG5cbmNvbnN0IFJFR0lPTkFMX0lORElDQVRPUl9PRkZTRVQgPSAxMjczOTc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NkYy1jb3VudHJ5LXBob25lLXBpY2tlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtGb3Jtc01vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBQb3BvdmVyQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvdW50cnktcGhvbmUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NvdW50cnktcGhvbmUtcGlja2VyLmNvbXBvbmVudC5zY3NzJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDb3VudHJ5UGhvbmVQaWNrZXJDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZFxufSlcbmV4cG9ydCBjbGFzcyBDb3VudHJ5UGhvbmVQaWNrZXJDb21wb25lbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBnZW5lcmF0ZWRJZCA9IG5leHRTZXF1ZW50aWFsSWQoJ3NkYy1jb3VudHJ5LXBob25lLXBpY2tlcicpO1xuXG4gIEBJbnB1dCgpIGNvdW50cmllczogc3RyaW5nW10gPSBbXTtcbiAgQElucHV0KCkgb3JkaW5hdGlvbjogQ291bnRyeVBob25lT3JkaW5hdGlvbiA9IENPVU5UUllfUEhPTkVfUElDS0VSX0RFRkFVTFRfT1JESU5BVElPTjtcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyB8IGZhbHNlID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1lc3NhZ2U6IHN0cmluZyB8IGZhbHNlID0gZmFsc2U7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJyc7XG4gIEBJbnB1dCgpIHJlcXVpcmVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGludmFsaWQgPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgc2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPENvdW50cnlQaG9uZURhdGE+KCk7XG4gIEBPdXRwdXQoKSBmb2N1c0xvc3QgPSBuZXcgRXZlbnRFbWl0dGVyPFBob25lU2VsZWN0aW9uRGF0YSB8IG51bGw+KCk7XG5cbiAgQFZpZXdDaGlsZChQb3BvdmVyQ29tcG9uZW50KSBwb3BvdmVyPzogUG9wb3ZlckNvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgncGhvbmVJbnB1dFJlZicpIHBob25lSW5wdXRSZWY/OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIHZhbHVlOiBQaG9uZVNlbGVjdGlvbkRhdGEgfCBudWxsID0gbnVsbDtcbiAgZmlsdGVyVGVybSA9ICcnO1xuICBwaG9uZU1hc2tlZFZhbHVlID0gJyc7XG4gIG9wZW4gPSBmYWxzZTtcbiAgc2VsZWN0ZWRJdGVtOiBDb3VudHJ5UGhvbmVEYXRhIHwgbnVsbCA9IG51bGw7XG5cbiAgb25DaGFuZ2U6ICh2YWx1ZTogUGhvbmVTZWxlY3Rpb25EYXRhIHwgbnVsbCkgPT4gdm9pZCA9ICgpID0+IHVuZGVmaW5lZDtcbiAgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4gdW5kZWZpbmVkO1xuXG4gIGdldCBpbnB1dElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuZ2VuZXJhdGVkSWR9LWlucHV0YDtcbiAgfVxuXG4gIGdldCBzZWFyY2hJbnB1dElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuZ2VuZXJhdGVkSWR9LXNlYXJjaGA7XG4gIH1cblxuICBnZXQgYXZhaWxhYmxlQ291bnRyaWVzKCk6IENvdW50cnlQaG9uZURhdGFbXSB7XG4gICAgY29uc3QgYmFzZSA9IHRoaXMuY291bnRyaWVzLmxlbmd0aFxuICAgICAgPyBDT1VOVFJZX1BIT05FX1BJQ0tFUl9ERUZBVUxUX0NPVU5UUklFUy5maWx0ZXIoKGNvdW50cnkpID0+IHRoaXMuY291bnRyaWVzLmluY2x1ZGVzKGNvdW50cnkuaWQpKVxuICAgICAgOiBDT1VOVFJZX1BIT05FX1BJQ0tFUl9ERUZBVUxUX0NPVU5UUklFUy5zbGljZSgpO1xuXG4gICAgaWYgKHRoaXMub3JkaW5hdGlvbiA9PT0gJ2F6Jykge1xuICAgICAgcmV0dXJuIGJhc2Uuc29ydCgoYSwgYikgPT4gdGhpcy5jb3VudHJ5TmFtZShhLmlkKS5sb2NhbGVDb21wYXJlKHRoaXMuY291bnRyeU5hbWUoYi5pZCkpKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcmRpbmF0aW9uID09PSAnemEnKSB7XG4gICAgICByZXR1cm4gYmFzZS5zb3J0KChhLCBiKSA9PiB0aGlzLmNvdW50cnlOYW1lKGIuaWQpLmxvY2FsZUNvbXBhcmUodGhpcy5jb3VudHJ5TmFtZShhLmlkKSkpO1xuICAgIH1cblxuICAgIHJldHVybiBiYXNlO1xuICB9XG5cbiAgZ2V0IGZpbHRlcmVkQ291bnRyaWVzKCk6IENvdW50cnlQaG9uZURhdGFbXSB7XG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLmZpbHRlclRlcm0udHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKCFxdWVyeSkge1xuICAgICAgcmV0dXJuIHRoaXMuYXZhaWxhYmxlQ291bnRyaWVzO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmF2YWlsYWJsZUNvdW50cmllcy5maWx0ZXIoKGNvdW50cnkpID0+XG4gICAgICBgJHt0aGlzLmNvdW50cnlOYW1lKGNvdW50cnkuaWQpfSAke2NvdW50cnkuZGRpfWAudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhxdWVyeSlcbiAgICApO1xuICB9XG5cbiAgZ2V0IGN1cnJlbnRNYXNrKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkSXRlbSkge1xuICAgICAgcmV0dXJuICcwMDAwIDAwMDAnO1xuICAgIH1cblxuICAgIGlmICghQXJyYXkuaXNBcnJheSh0aGlzLnNlbGVjdGVkSXRlbS5tYXNrKSkge1xuICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtLm1hc2s7XG4gICAgfVxuXG4gICAgY29uc3QgW3Nob3J0TWFzaywgbG9uZ01hc2tdID0gdGhpcy5zZWxlY3RlZEl0ZW0ubWFzaztcbiAgICByZXR1cm4gdGhpcy5waG9uZVJhd1ZhbHVlLmxlbmd0aCA+IGNvdW50TWFza1Nsb3RzKHNob3J0TWFzaykgPyBsb25nTWFzayA6IHNob3J0TWFzaztcbiAgfVxuXG4gIGdldCBjdXJyZW50RGRpKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtPy5kZGkgPz8gJyc7XG4gIH1cblxuICBnZXQgcGhvbmVSYXdWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnZhbHVlPy5yYXdWYWx1ZSA/PyAnJztcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IFBob25lU2VsZWN0aW9uRGF0YSB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSB0aGlzLnJlc29sdmVTZWxlY3RlZENvdW50cnkodmFsdWU/LmlkKSA/PyB0aGlzLmF2YWlsYWJsZUNvdW50cmllc1swXSA/PyBudWxsO1xuICAgIHRoaXMucGhvbmVNYXNrZWRWYWx1ZSA9IHZhbHVlPy5yYXdWYWx1ZSA/IGFwcGx5TWFza0Zvcm1hdCh2YWx1ZS5yYXdWYWx1ZSwgdGhpcy5jdXJyZW50TWFzaykubWFza2VkIDogJyc7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IFBob25lU2VsZWN0aW9uRGF0YSB8IG51bGwpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIG9uVG9nZ2xlKG9wZW46IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLm9wZW4gPSBvcGVuO1xuICB9XG5cbiAgb25QaG9uZUlucHV0KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbDtcbiAgICBpZiAoIXRhcmdldCB8fCAhdGhpcy5zZWxlY3RlZEl0ZW0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBmb3JtYXR0ZWQgPSBhcHBseU1hc2tGb3JtYXQodGFyZ2V0LnZhbHVlLCB0aGlzLmN1cnJlbnRNYXNrKTtcbiAgICB0YXJnZXQudmFsdWUgPSBmb3JtYXR0ZWQubWFza2VkO1xuICAgIHRoaXMucGhvbmVNYXNrZWRWYWx1ZSA9IGZvcm1hdHRlZC5tYXNrZWQ7XG4gICAgdGhpcy51cGRhdGVWYWx1ZShmb3JtYXR0ZWQucmF3LCBmb3JtYXR0ZWQubWFza2VkKTtcbiAgfVxuXG4gIG9uUGhvbmVCbHVyKCk6IHZvaWQge1xuICAgIHRoaXMuZm9jdXNMb3N0LmVtaXQodGhpcy52YWx1ZSk7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfVxuXG4gIG9uU2VsZWN0Q291bnRyeShjb3VudHJ5OiBDb3VudHJ5UGhvbmVEYXRhKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBjb3VudHJ5O1xuICAgIHRoaXMuZmlsdGVyVGVybSA9ICcnO1xuICAgIHRoaXMucGhvbmVNYXNrZWRWYWx1ZSA9ICcnO1xuICAgIHRoaXMudXBkYXRlVmFsdWUoJycsICcnKTtcbiAgICB0aGlzLnNlbGVjdGVkLmVtaXQoY291bnRyeSk7XG4gICAgdGhpcy5wb3BvdmVyPy5jbG9zZVBhbmVsKCk7XG4gICAgcXVldWVNaWNyb3Rhc2soKCkgPT4gdGhpcy5waG9uZUlucHV0UmVmPy5uYXRpdmVFbGVtZW50Py5mb2N1cygpKTtcbiAgfVxuXG4gIG9uQ291bnRyeU9wdGlvbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGNvdW50cnk6IENvdW50cnlQaG9uZURhdGEpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQua2V5ICE9PSAnRW50ZXInICYmIGV2ZW50LmtleSAhPT0gJyAnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLm9uU2VsZWN0Q291bnRyeShjb3VudHJ5KTtcbiAgfVxuXG4gIGNvdW50cnlOYW1lKGNvdW50cnlJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVnaW9uTmFtZXMgPSBuZXcgSW50bC5EaXNwbGF5TmFtZXMoW3RoaXMudHJhbnNsYXRlLmN1cnJlbnRMYW5nIHx8ICdwdC1CUiddLCB7IHR5cGU6ICdyZWdpb24nIH0pO1xuICAgICAgcmV0dXJuIHJlZ2lvbk5hbWVzLm9mKGNvdW50cnlJZC50b1VwcGVyQ2FzZSgpKSA/PyBjb3VudHJ5SWQudG9VcHBlckNhc2UoKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBjb3VudHJ5SWQudG9VcHBlckNhc2UoKTtcbiAgICB9XG4gIH1cblxuICBjb3VudHJ5RmxhZyhjb3VudHJ5SWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGNvdW50cnlJZFxuICAgICAgLnRvVXBwZXJDYXNlKClcbiAgICAgIC5zcGxpdCgnJylcbiAgICAgIC5tYXAoKGNoYXIpID0+IFN0cmluZy5mcm9tQ29kZVBvaW50KFJFR0lPTkFMX0lORElDQVRPUl9PRkZTRVQgKyBjaGFyLmNoYXJDb2RlQXQoMCkpKVxuICAgICAgLmpvaW4oJycpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVWYWx1ZShyYXdWYWx1ZTogc3RyaW5nLCBtYXNrZWRWYWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkSXRlbSkge1xuICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XG4gICAgICB0aGlzLm9uQ2hhbmdlKG51bGwpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudmFsdWUgPSB7XG4gICAgICByYXdWYWx1ZSxcbiAgICAgIGlkOiB0aGlzLnNlbGVjdGVkSXRlbS5pZCxcbiAgICAgIGRkaTogdGhpcy5zZWxlY3RlZEl0ZW0uZGRpLFxuICAgICAgdmFsdWU6IG1hc2tlZFZhbHVlXG4gICAgfTtcblxuICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVTZWxlY3RlZENvdW50cnkoY291bnRyeUlkOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogQ291bnRyeVBob25lRGF0YSB8IG51bGwge1xuICAgIGlmIChjb3VudHJ5SWQpIHtcbiAgICAgIGNvbnN0IG1hdGNoZWQgPSB0aGlzLmF2YWlsYWJsZUNvdW50cmllcy5maW5kKChjb3VudHJ5KSA9PiBjb3VudHJ5LmlkID09PSBjb3VudHJ5SWQpO1xuICAgICAgaWYgKG1hdGNoZWQpIHtcbiAgICAgICAgcmV0dXJuIG1hdGNoZWQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXZhaWxhYmxlQ291bnRyaWVzWzBdID8/IG51bGw7XG4gIH1cbn1cblxuZnVuY3Rpb24gY291bnRNYXNrU2xvdHMobWFzazogc3RyaW5nKTogbnVtYmVyIHtcbiAgcmV0dXJuIHBhcnNlTWFza1BhdHRlcm4obWFzaykuZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4ua2luZCAhPT0gJ2xpdGVyYWwnKS5sZW5ndGg7XG59XG4iLCI8ZGl2IGNsYXNzPVwic2RjLWNvdW50cnktcGhvbmUtcGlja2VyXCI+XG4gIEBpZiAobGFiZWwpIHtcbiAgICA8bGFiZWxcbiAgICAgIGNsYXNzPVwic2RjLWNvdW50cnktcGhvbmUtcGlja2VyX19sYWJlbFwiXG4gICAgICBbYXR0ci5mb3JdPVwiaW5wdXRJZFwiXG4gICAgICA+XG4gICAgICB7eyBsYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgQGlmIChyZXF1aXJlZCkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cInJlcXVpcmVkLWZpZWxkXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+Kjwvc3Bhbj5cbiAgICAgIH1cbiAgICA8L2xhYmVsPlxuICB9XG5cbiAgPHNkYy1wb3BvdmVyXG4gICAgW29wZW5dPVwib3BlblwiXG4gICAgKG9wZW5DaGFuZ2UpPVwib25Ub2dnbGUoJGV2ZW50KVwiXG4gICAgW21hdGNoVHJpZ2dlcldpZHRoXT1cInRydWVcIlxuICAgIHBsYWNlbWVudD1cImJvdHRvbS1zdGFydFwiXG4gICAgYXBwZW5kVG89XCJib2R5XCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFthcmlhTGFiZWxdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmNvdW50cnlfcGhvbmVfcGlja2VyLmFjY2Vzc2liaWxpdHkuZHJvcGRvd24nXCJcbiAgICA+XG4gICAgPGRpdlxuICAgICAgc2RjLXBvcG92ZXItdHJpZ2dlclxuICAgICAgY2xhc3M9XCJzZGMtY291bnRyeS1waG9uZS1waWNrZXJfX2NvbnRyb2xcIlxuICAgICAgW2NsYXNzLnNkYy1jb3VudHJ5LXBob25lLXBpY2tlcl9fY29udHJvbC0taW52YWxpZF09XCJpbnZhbGlkXCJcbiAgICAgID5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwic2RjLWNvdW50cnktcGhvbmUtcGlja2VyX19jb3VudHJ5LXRyaWdnZXJcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtY291bnRyeS1waG9uZS1waWNrZXJfX2ZsYWdcIj57eyBjb3VudHJ5RmxhZyhzZWxlY3RlZEl0ZW0/LmlkID8/ICdicicpIH19PC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy1jb3VudHJ5LXBob25lLXBpY2tlcl9fY2FyZXQgZmFzIGZhLWNhcmV0LWRvd25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtY291bnRyeS1waG9uZS1waWNrZXJfX2RkaVwiPnt7IGN1cnJlbnREZGkgfX08L3NwYW4+XG5cbiAgICAgIDxpbnB1dFxuICAgICAgICAjcGhvbmVJbnB1dFJlZlxuICAgICAgICBbaWRdPVwiaW5wdXRJZFwiXG4gICAgICAgIGNsYXNzPVwic2RjLWNvdW50cnktcGhvbmUtcGlja2VyX19pbnB1dFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlciB8fCBjdXJyZW50TWFza1wiXG4gICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgIFt2YWx1ZV09XCJwaG9uZU1hc2tlZFZhbHVlXCJcbiAgICAgICAgdHlwZT1cInRlbFwiXG4gICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgIHNwZWxsY2hlY2s9XCJmYWxzZVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgbGFiZWxcbiAgICAgICAgICAgID8gKGxhYmVsIHwgdHJhbnNsYXRlKVxuICAgICAgICAgICAgOiAoJ3BsYXRmb3JtLmRhdGFjb3JlLmNvdW50cnlfcGhvbmVfcGlja2VyLmFjY2Vzc2liaWxpdHkuaW5wdXQnIHwgdHJhbnNsYXRlKVxuICAgICAgICBcIlxuICAgICAgICAoaW5wdXQpPVwib25QaG9uZUlucHV0KCRldmVudClcIlxuICAgICAgICAoYmx1cik9XCJvblBob25lQmx1cigpXCJcbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IHNkYy1wb3BvdmVyLWNvbnRlbnQgY2xhc3M9XCJzZGMtY291bnRyeS1waG9uZS1waWNrZXJfX3BhbmVsXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZGMtY291bnRyeS1waG9uZS1waWNrZXJfX3NlYXJjaFwiPlxuICAgICAgICAgIDxsYWJlbCBbYXR0ci5mb3JdPVwic2VhcmNoSW5wdXRJZFwiIGNsYXNzPVwic3Itb25seVwiPlxuICAgICAgICAgICAge3sgJ3BsYXRmb3JtLmRhdGFjb3JlLmNvdW50cnlfcGhvbmVfcGlja2VyLnNlYXJjaF9wbGFjZWhvbGRlcicgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgW2lkXT1cInNlYXJjaElucHV0SWRcIlxuICAgICAgICAgICAgY2xhc3M9XCJzZGMtY291bnRyeS1waG9uZS1waWNrZXJfX3NlYXJjaC1pbnB1dFwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlclRlcm1cIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidwbGF0Zm9ybS5kYXRhY29yZS5jb3VudHJ5X3Bob25lX3BpY2tlci5zZWFyY2hfcGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmNvdW50cnlfcGhvbmVfcGlja2VyLnNlYXJjaF9wbGFjZWhvbGRlcicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDx1bCBjbGFzcz1cInNkYy1jb3VudHJ5LXBob25lLXBpY2tlcl9fb3B0aW9uc1wiPlxuICAgICAgICAgICAgQGZvciAoY291bnRyeSBvZiBmaWx0ZXJlZENvdW50cmllczsgdHJhY2sgY291bnRyeS5pZCkge1xuICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJzZGMtY291bnRyeS1waG9uZS1waWNrZXJfX29wdGlvblwiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZGMtY291bnRyeS1waG9uZS1waWNrZXJfX29wdGlvbi1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0Q291bnRyeShjb3VudHJ5KVwiXG4gICAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJvbkNvdW50cnlPcHRpb25LZXlkb3duKCRldmVudCwgY291bnRyeSlcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtY291bnRyeS1waG9uZS1waWNrZXJfX29wdGlvbi1mbGFnXCI+e3sgY291bnRyeUZsYWcoY291bnRyeS5pZCkgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy1jb3VudHJ5LXBob25lLXBpY2tlcl9fb3B0aW9uLW5hbWVcIj57eyBjb3VudHJ5TmFtZShjb3VudHJ5LmlkKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLWNvdW50cnktcGhvbmUtcGlja2VyX19vcHRpb24tZGRpXCI+e3sgY291bnRyeS5kZGkgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3NkYy1wb3BvdmVyPlxuXG4gICAgICBAaWYgKG1lc3NhZ2UpIHtcbiAgICAgICAgPHNtYWxsIGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiPlxuICAgICAgICAgIHt7IG1lc3NhZ2UgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9zbWFsbD5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiJdfQ==
|
|
213
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRyeS1waG9uZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9jb3VudHJ5LXBob25lLXBpY2tlci9jb3VudHJ5LXBob25lLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2NvdW50cnktcGhvbmUtcGlja2VyL2NvdW50cnktcGhvbmUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsVUFBVSxFQUNWLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhFLE9BQU8sRUFDTCxzQ0FBc0MsRUFDdEMsdUNBQXVDLEVBQ3hDLE1BQU0saURBQWlELENBQUM7QUFNekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7QUFrQmhFLE1BQU0sT0FBTywyQkFBMkI7SUFDckIsU0FBUyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3JDLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQywwQkFBMEIsQ0FB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cG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgZm9yd2FyZFJlZixcbiAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB7XG4gIENPVU5UUllfUEhPTkVfUElDS0VSX0RFRkFVTFRfQ09VTlRSSUVTLFxuICBDT1VOVFJZX1BIT05FX1BJQ0tFUl9ERUZBVUxUX09SRElOQVRJT05cbn0gZnJvbSAnLi4vLi4vY29yZS9jb25zdGFudHMvY291bnRyeS1waG9uZS1waWNrZXIuY29uc3QnO1xuaW1wb3J0IHR5cGUge1xuICBDb3VudHJ5UGhvbmVEYXRhLFxuICBDb3VudHJ5UGhvbmVPcmRpbmF0aW9uLFxuICBQaG9uZVNlbGVjdGlvbkRhdGFcbn0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9jb3VudHJ5LXBob25lLXBpY2tlci50eXBlJztcbmltcG9ydCB7IGJ1aWxkRmxhZ0Vtb2ppLCBzdXBwb3J0c0Vtb2ppRmxhZ3MgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2Vtb2ppLXN1cHBvcnQudXRpbCc7XG5pbXBvcnQgeyBuZXh0U2VxdWVudGlhbElkIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9pZC51dGlsJztcbmltcG9ydCB7IGFwcGx5TWFza0Zvcm1hdCwgZXh0cmFjdE1hc2tSYXcsIHBhcnNlTWFza1BhdHRlcm4gfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL21hc2sudXRpbCc7XG5pbXBvcnQgeyBQb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NkYy1jb3VudHJ5LXBob25lLXBpY2tlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtGb3Jtc01vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBQb3BvdmVyQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvdW50cnktcGhvbmUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NvdW50cnktcGhvbmUtcGlja2VyLmNvbXBvbmVudC5zY3NzJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDb3VudHJ5UGhvbmVQaWNrZXJDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZFxufSlcbmV4cG9ydCBjbGFzcyBDb3VudHJ5UGhvbmVQaWNrZXJDb21wb25lbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBnZW5lcmF0ZWRJZCA9IG5leHRTZXF1ZW50aWFsSWQoJ3NkYy1jb3VudHJ5LXBob25lLXBpY2tlcicpO1xuXG4gIEBJbnB1dCgpIGNvdW50cmllczogc3RyaW5nW10gPSBbXTtcbiAgQElucHV0KCkgb3JkaW5hdGlvbjogQ291bnRyeVBob25lT3JkaW5hdGlvbiA9IENPVU5UUllfUEhPTkVfUElDS0VSX0RFRkFVTFRfT1JESU5BVElPTjtcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyB8IGZhbHNlID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1lc3NhZ2U6IHN0cmluZyB8IGZhbHNlID0gZmFsc2U7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJyc7XG4gIEBJbnB1dCgpIHJlcXVpcmVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGludmFsaWQgPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgc2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPENvdW50cnlQaG9uZURhdGE+KCk7XG4gIEBPdXRwdXQoKSBmb2N1c0xvc3QgPSBuZXcgRXZlbnRFbWl0dGVyPFBob25lU2VsZWN0aW9uRGF0YSB8IG51bGw+KCk7XG5cbiAgQFZpZXdDaGlsZChQb3BvdmVyQ29tcG9uZW50KSBwb3BvdmVyPzogUG9wb3ZlckNvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgncGhvbmVJbnB1dFJlZicpIHBob25lSW5wdXRSZWY/OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIHZhbHVlOiBQaG9uZVNlbGVjdGlvbkRhdGEgfCBudWxsID0gbnVsbDtcbiAgZmlsdGVyVGVybSA9ICcnO1xuICBwaG9uZU1hc2tlZFZhbHVlID0gJyc7XG4gIG9wZW4gPSBmYWxzZTtcbiAgc2VsZWN0ZWRJdGVtOiBDb3VudHJ5UGhvbmVEYXRhIHwgbnVsbCA9IG51bGw7XG5cbiAgb25DaGFuZ2U6ICh2YWx1ZTogUGhvbmVTZWxlY3Rpb25EYXRhIHwgbnVsbCkgPT4gdm9pZCA9ICgpID0+IHVuZGVmaW5lZDtcbiAgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4gdW5kZWZpbmVkO1xuXG4gIGdldCBpbnB1dElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuZ2VuZXJhdGVkSWR9LWlucHV0YDtcbiAgfVxuXG4gIGdldCBzZWFyY2hJbnB1dElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuZ2VuZXJhdGVkSWR9LXNlYXJjaGA7XG4gIH1cblxuICBnZXQgYXZhaWxhYmxlQ291bnRyaWVzKCk6IENvdW50cnlQaG9uZURhdGFbXSB7XG4gICAgY29uc3QgYmFzZSA9IHRoaXMuY291bnRyaWVzLmxlbmd0aFxuICAgICAgPyBDT1VOVFJZX1BIT05FX1BJQ0tFUl9ERUZBVUxUX0NPVU5UUklFUy5maWx0ZXIoKGNvdW50cnkpID0+IHRoaXMuY291bnRyaWVzLmluY2x1ZGVzKGNvdW50cnkuaWQpKVxuICAgICAgOiBDT1VOVFJZX1BIT05FX1BJQ0tFUl9ERUZBVUxUX0NPVU5UUklFUy5zbGljZSgpO1xuXG4gICAgaWYgKHRoaXMub3JkaW5hdGlvbiA9PT0gJ2F6Jykge1xuICAgICAgcmV0dXJuIGJhc2Uuc29ydCgoYSwgYikgPT4gdGhpcy5jb3VudHJ5TmFtZShhLmlkKS5sb2NhbGVDb21wYXJlKHRoaXMuY291bnRyeU5hbWUoYi5pZCkpKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcmRpbmF0aW9uID09PSAnemEnKSB7XG4gICAgICByZXR1cm4gYmFzZS5zb3J0KChhLCBiKSA9PiB0aGlzLmNvdW50cnlOYW1lKGIuaWQpLmxvY2FsZUNvbXBhcmUodGhpcy5jb3VudHJ5TmFtZShhLmlkKSkpO1xuICAgIH1cblxuICAgIHJldHVybiBiYXNlO1xuICB9XG5cbiAgZ2V0IGZpbHRlcmVkQ291bnRyaWVzKCk6IENvdW50cnlQaG9uZURhdGFbXSB7XG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLmZpbHRlclRlcm0udHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKCFxdWVyeSkge1xuICAgICAgcmV0dXJuIHRoaXMuYXZhaWxhYmxlQ291bnRyaWVzO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmF2YWlsYWJsZUNvdW50cmllcy5maWx0ZXIoKGNvdW50cnkpID0+XG4gICAgICBgJHt0aGlzLmNvdW50cnlOYW1lKGNvdW50cnkuaWQpfSAke2NvdW50cnkuZGRpfWAudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhxdWVyeSlcbiAgICApO1xuICB9XG5cbiAgZ2V0IGN1cnJlbnRNYXNrKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubWFza0ZvclJhd0xlbmd0aCh0aGlzLnBob25lUmF3VmFsdWUubGVuZ3RoKTtcbiAgfVxuXG4gIGdldCBjdXJyZW50RGRpKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtPy5kZGkgPz8gJyc7XG4gIH1cblxuICBnZXQgcGhvbmVSYXdWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnZhbHVlPy5yYXdWYWx1ZSA/PyAnJztcbiAgfVxuXG4gIHByaXZhdGUgbWFza0ZvclJhd0xlbmd0aChyYXdMZW5ndGg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkSXRlbSkge1xuICAgICAgcmV0dXJuICcwMDAwIDAwMDAnO1xuICAgIH1cblxuICAgIGlmICghQXJyYXkuaXNBcnJheSh0aGlzLnNlbGVjdGVkSXRlbS5tYXNrKSkge1xuICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtLm1hc2s7XG4gICAgfVxuXG4gICAgY29uc3QgW3Nob3J0TWFzaywgbG9uZ01hc2tdID0gdGhpcy5zZWxlY3RlZEl0ZW0ubWFzaztcbiAgICByZXR1cm4gcmF3TGVuZ3RoID4gY291bnRNYXNrU2xvdHMoc2hvcnRNYXNrKSA/IGxvbmdNYXNrIDogc2hvcnRNYXNrO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogUGhvbmVTZWxlY3Rpb25EYXRhIHwgbnVsbCk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IHRoaXMucmVzb2x2ZVNlbGVjdGVkQ291bnRyeSh2YWx1ZT8uaWQpID8/IHRoaXMuYXZhaWxhYmxlQ291bnRyaWVzWzBdID8/IG51bGw7XG4gICAgdGhpcy5waG9uZU1hc2tlZFZhbHVlID0gdmFsdWU/LnJhd1ZhbHVlID8gYXBwbHlNYXNrRm9ybWF0KHZhbHVlLnJhd1ZhbHVlLCB0aGlzLmN1cnJlbnRNYXNrKS5tYXNrZWQgOiAnJztcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogUGhvbmVTZWxlY3Rpb25EYXRhIHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgb25Ub2dnbGUob3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMub3BlbiA9IG9wZW47XG4gIH1cblxuICBvblBob25lSW5wdXQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsO1xuICAgIGlmICghdGFyZ2V0IHx8ICF0aGlzLnNlbGVjdGVkSXRlbSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGxpdmVNYXNrID0gdGhpcy5tYXNrRm9yUmF3TGVuZ3RoKGV4dHJhY3RNYXNrUmF3KHRhcmdldC52YWx1ZSkubGVuZ3RoKTtcbiAgICBjb25zdCBmb3JtYXR0ZWQgPSBhcHBseU1hc2tGb3JtYXQodGFyZ2V0LnZhbHVlLCBsaXZlTWFzayk7XG4gICAgdGFyZ2V0LnZhbHVlID0gZm9ybWF0dGVkLm1hc2tlZDtcbiAgICB0aGlzLnBob25lTWFza2VkVmFsdWUgPSBmb3JtYXR0ZWQubWFza2VkO1xuICAgIHRoaXMudXBkYXRlVmFsdWUoZm9ybWF0dGVkLnJhdywgZm9ybWF0dGVkLm1hc2tlZCk7XG4gIH1cblxuICBvblBob25lQmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzTG9zdC5lbWl0KHRoaXMudmFsdWUpO1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gIH1cblxuICBvblNlbGVjdENvdW50cnkoY291bnRyeTogQ291bnRyeVBob25lRGF0YSk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gY291bnRyeTtcbiAgICB0aGlzLmZpbHRlclRlcm0gPSAnJztcbiAgICB0aGlzLnBob25lTWFza2VkVmFsdWUgPSAnJztcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKCcnLCAnJyk7XG4gICAgdGhpcy5zZWxlY3RlZC5lbWl0KGNvdW50cnkpO1xuICAgIHRoaXMucG9wb3Zlcj8uY2xvc2VQYW5lbCgpO1xuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHRoaXMucGhvbmVJbnB1dFJlZj8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKSk7XG4gIH1cblxuICBvbkNvdW50cnlPcHRpb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBjb3VudHJ5OiBDb3VudHJ5UGhvbmVEYXRhKTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmtleSAhPT0gJ0VudGVyJyAmJiBldmVudC5rZXkgIT09ICcgJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5vblNlbGVjdENvdW50cnkoY291bnRyeSk7XG4gIH1cblxuICBjb3VudHJ5TmFtZShjb3VudHJ5SWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlZ2lvbk5hbWVzID0gbmV3IEludGwuRGlzcGxheU5hbWVzKFt0aGlzLnRyYW5zbGF0ZS5jdXJyZW50TGFuZyB8fCAncHQtQlInXSwgeyB0eXBlOiAncmVnaW9uJyB9KTtcbiAgICAgIHJldHVybiByZWdpb25OYW1lcy5vZihjb3VudHJ5SWQudG9VcHBlckNhc2UoKSkgPz8gY291bnRyeUlkLnRvVXBwZXJDYXNlKCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gY291bnRyeUlkLnRvVXBwZXJDYXNlKCk7XG4gICAgfVxuICB9XG5cbiAgcmVhZG9ubHkgc2hvd0ZsYWdFbW9qaSA9IHN1cHBvcnRzRW1vamlGbGFncygpO1xuXG4gIGNvdW50cnlGbGFnKGNvdW50cnlJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYnVpbGRGbGFnRW1vamkoY291bnRyeUlkKTtcbiAgfVxuXG4gIGNvdW50cnlDb2RlKGNvdW50cnlJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY291bnRyeUlkLnRvVXBwZXJDYXNlKCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVZhbHVlKHJhd1ZhbHVlOiBzdHJpbmcsIG1hc2tlZFZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRJdGVtKSB7XG4gICAgICB0aGlzLnZhbHVlID0gbnVsbDtcbiAgICAgIHRoaXMub25DaGFuZ2UobnVsbCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy52YWx1ZSA9IHtcbiAgICAgIHJhd1ZhbHVlLFxuICAgICAgaWQ6IHRoaXMuc2VsZWN0ZWRJdGVtLmlkLFxuICAgICAgZGRpOiB0aGlzLnNlbGVjdGVkSXRlbS5kZGksXG4gICAgICB2YWx1ZTogbWFza2VkVmFsdWVcbiAgICB9O1xuXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZVNlbGVjdGVkQ291bnRyeShjb3VudHJ5SWQ6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBDb3VudHJ5UGhvbmVEYXRhIHwgbnVsbCB7XG4gICAgaWYgKGNvdW50cnlJZCkge1xuICAgICAgY29uc3QgbWF0Y2hlZCA9IHRoaXMuYXZhaWxhYmxlQ291bnRyaWVzLmZpbmQoKGNvdW50cnkpID0+IGNvdW50cnkuaWQgPT09IGNvdW50cnlJZCk7XG4gICAgICBpZiAobWF0Y2hlZCkge1xuICAgICAgICByZXR1cm4gbWF0Y2hlZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hdmFpbGFibGVDb3VudHJpZXNbMF0gPz8gbnVsbDtcbiAgfVxufVxuXG5mdW5jdGlvbiBjb3VudE1hc2tTbG90cyhtYXNrOiBzdHJpbmcpOiBudW1iZXIge1xuICByZXR1cm4gcGFyc2VNYXNrUGF0dGVybihtYXNrKS5maWx0ZXIoKHRva2VuKSA9PiB0b2tlbi5raW5kICE9PSAnbGl0ZXJhbCcpLmxlbmd0aDtcbn1cbiIsIjxkaXYgY2xhc3M9XCJzZGMtY291bnRyeS1waG9uZS1waWNrZXJcIj5cbiAgQGlmIChsYWJlbCkge1xuICAgIDxsYWJlbFxuICAgICAgY2xhc3M9XCJzZGMtY291bnRyeS1waG9uZS1waWNrZXJfX2xhYmVsXCJcbiAgICAgIFthdHRyLmZvcl09XCJpbnB1dElkXCJcbiAgICAgID5cbiAgICAgIHt7IGxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICBAaWYgKHJlcXVpcmVkKSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWQtZmllbGRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj4qPC9zcGFuPlxuICAgICAgfVxuICAgIDwvbGFiZWw+XG4gIH1cblxuICA8c2RjLXBvcG92ZXJcbiAgICBbb3Blbl09XCJvcGVuXCJcbiAgICAob3BlbkNoYW5nZSk9XCJvblRvZ2dsZSgkZXZlbnQpXCJcbiAgICBbbWF0Y2hUcmlnZ2VyV2lkdGhdPVwidHJ1ZVwiXG4gICAgcGxhY2VtZW50PVwiYm90dG9tLXN0YXJ0XCJcbiAgICBhcHBlbmRUbz1cImJvZHlcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgcGFuZWxDbGFzcz1cInNkYy1jb3VudHJ5LXBob25lLXBpY2tlcl9fb3ZlcmxheS1wYW5lbFwiXG4gICAgW2FyaWFMYWJlbF09XCIncGxhdGZvcm0uZGF0YWNvcmUuY291bnRyeV9waG9uZV9waWNrZXIuYWNjZXNzaWJpbGl0eS5kcm9wZG93bidcIlxuICAgID5cbiAgICA8ZGl2XG4gICAgICBzZGMtcG9wb3Zlci10cmlnZ2VyXG4gICAgICBjbGFzcz1cInNkYy1jb3VudHJ5LXBob25lLXBpY2tlcl9fY29udHJvbFwiXG4gICAgICBbY2xhc3Muc2RjLWNvdW50cnktcGhvbmUtcGlja2VyX19jb250cm9sLS1pbnZhbGlkXT1cImludmFsaWRcIlxuICAgICAgW2NsYXNzLnNkYy1jb3VudHJ5LXBob25lLXBpY2tlcl9fY29udHJvbC0tZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJzZGMtY291bnRyeS1waG9uZS1waWNrZXJfX2NvdW50cnktdHJpZ2dlclwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmNvdW50cnlfcGhvbmVfcGlja2VyLmFjY2Vzc2liaWxpdHkuZHJvcGRvd24nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgYXJpYS1oYXNwb3B1cD1cImxpc3Rib3hcIlxuICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm9wZW4gPyAndHJ1ZScgOiAnZmFsc2UnXCJcbiAgICAgICAgPlxuICAgICAgICBAaWYgKHNob3dGbGFnRW1vamkpIHtcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy1jb3VudHJ5LXBob25lLXBpY2tlcl9fZmxhZ1wiPnt7IGNvdW50cnlGbGFnKHNlbGVjdGVkSXRlbT8uaWQgPz8gJ2JyJykgfX08L3NwYW4+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLWNvdW50cnktcGhvbmUtcGlja2VyX19mbGFnLWZhbGxiYWNrXCI+e3sgY291bnRyeUNvZGUoc2VsZWN0ZWRJdGVtPy5pZCA/PyAnYnInKSB9fTwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwic2RjLWNvdW50cnktcGhvbmUtcGlja2VyX19jYXJldCBmYXMgZmEtY2FyZXQtZG93blwiXG4gICAgICAgICAgW2NsYXNzLnNkYy1jb3VudHJ5LXBob25lLXBpY2tlcl9fY2FyZXQtLW9wZW5dPVwib3BlblwiXG4gICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgPjwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8c3BhbiBjbGFzcz1cInNkYy1jb3VudHJ5LXBob25lLXBpY2tlcl9fZGRpXCI+e3sgY3VycmVudERkaSB9fTwvc3Bhbj5cblxuICAgICAgPGlucHV0XG4gICAgICAgICNwaG9uZUlucHV0UmVmXG4gICAgICAgIFtpZF09XCJpbnB1dElkXCJcbiAgICAgICAgY2xhc3M9XCJzZGMtY291bnRyeS1waG9uZS1waWNrZXJfX2lucHV0XCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyIHx8IGN1cnJlbnRNYXNrXCJcbiAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgW3ZhbHVlXT1cInBob25lTWFza2VkVmFsdWVcIlxuICAgICAgICB0eXBlPVwidGVsXCJcbiAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgc3BlbGxjaGVjaz1cImZhbHNlXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICBsYWJlbFxuICAgICAgICAgICAgPyAobGFiZWwgfCB0cmFuc2xhdGUpXG4gICAgICAgICAgICA6ICgncGxhdGZvcm0uZGF0YWNvcmUuY291bnRyeV9waG9uZV9waWNrZXIuYWNjZXNzaWJpbGl0eS5pbnB1dCcgfCB0cmFuc2xhdGUpXG4gICAgICAgIFwiXG4gICAgICAgIChpbnB1dCk9XCJvblBob25lSW5wdXQoJGV2ZW50KVwiXG4gICAgICAgIChibHVyKT1cIm9uUGhvbmVCbHVyKClcIlxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgc2RjLXBvcG92ZXItY29udGVudCBjbGFzcz1cInNkYy1jb3VudHJ5LXBob25lLXBpY2tlcl9fcGFuZWxcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNkYy1jb3VudHJ5LXBob25lLXBpY2tlcl9fc2VhcmNoXCI+XG4gICAgICAgICAgPGxhYmVsIFthdHRyLmZvcl09XCJzZWFyY2hJbnB1dElkXCIgY2xhc3M9XCJzci1vbmx5XCI+XG4gICAgICAgICAgICB7eyAncGxhdGZvcm0uZGF0YWNvcmUuY291bnRyeV9waG9uZV9waWNrZXIuc2VhcmNoX3BsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBbaWRdPVwic2VhcmNoSW5wdXRJZFwiXG4gICAgICAgICAgICBjbGFzcz1cInNkYy1jb3VudHJ5LXBob25lLXBpY2tlcl9fc2VhcmNoLWlucHV0XCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVyVGVybVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmNvdW50cnlfcGhvbmVfcGlja2VyLnNlYXJjaF9wbGFjZWhvbGRlcicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIncGxhdGZvcm0uZGF0YWNvcmUuY291bnRyeV9waG9uZV9waWNrZXIuc2VhcmNoX3BsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPCEtLSBOT1NPTkFSOiBjdXN0b20gY291bnRyeSBkcm9wZG93biBpbnRlbnRpb25hbGx5IHVzZXMgQVJJQSBsaXN0Ym94IHNlbWFudGljcyBpbnN0ZWFkIG9mIGEgbmF0aXZlIHNlbGVjdCAtLT5cbiAgICAgICAgICA8dWxcbiAgICAgICAgICAgIGNsYXNzPVwic2RjLWNvdW50cnktcGhvbmUtcGlja2VyX19vcHRpb25zXCJcbiAgICAgICAgICAgIFthdHRyLnJvbGVdPVwiJ2xpc3Rib3gnXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmNvdW50cnlfcGhvbmVfcGlja2VyLmFjY2Vzc2liaWxpdHkuZHJvcGRvd24nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBAZm9yIChjb3VudHJ5IG9mIGZpbHRlcmVkQ291bnRyaWVzOyB0cmFjayBjb3VudHJ5LmlkKSB7XG4gICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2RjLWNvdW50cnktcGhvbmUtcGlja2VyX19vcHRpb25cIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5zZGMtY291bnRyeS1waG9uZS1waWNrZXJfX29wdGlvbi0tc2VsZWN0ZWRdPVwic2VsZWN0ZWRJdGVtPy5pZCA9PT0gY291bnRyeS5pZFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwhLS0gTk9TT05BUiAtLT5cbiAgICAgICAgICAgICAgICA8IS0tIHRoZSBjdXN0b20gbGlzdGJveCBrZWVwcyBvcHRpb24gc2VtYW50aWNzIG9uIHRoZSBmb2N1c2FibGUgYWN0aW9uIGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uIC0tPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZGMtY291bnRyeS1waG9uZS1waWNrZXJfX29wdGlvbi1hY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgW2F0dHIucm9sZV09XCInb3B0aW9uJ1wiXG4gICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cInNlbGVjdGVkSXRlbT8uaWQgPT09IGNvdW50cnkuaWQgPyAndHJ1ZScgOiAnZmFsc2UnXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdENvdW50cnkoY291bnRyeSlcIlxuICAgICAgICAgICAgICAgICAgKGtleWRvd24pPVwib25Db3VudHJ5T3B0aW9uS2V5ZG93bigkZXZlbnQsIGNvdW50cnkpXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLWNvdW50cnktcGhvbmUtcGlja2VyX19vcHRpb24tY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKHNob3dGbGFnRW1vamkpIHtcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy1jb3VudHJ5LXBob25lLXBpY2tlcl9fb3B0aW9uLWZsYWdcIj57eyBjb3VudHJ5RmxhZyhjb3VudHJ5LmlkKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtY291bnRyeS1waG9uZS1waWNrZXJfX29wdGlvbi1mbGFnLWZhbGxiYWNrXCI+e3sgY291bnRyeUNvZGUoY291bnRyeS5pZCkgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtY291bnRyeS1waG9uZS1waWNrZXJfX29wdGlvbi10ZXh0c1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLWNvdW50cnktcGhvbmUtcGlja2VyX19vcHRpb24tbGFiZWxcIj57eyBjb3VudHJ5TmFtZShjb3VudHJ5LmlkKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy1jb3VudHJ5LXBob25lLXBpY2tlcl9fb3B0aW9uLW1ldGFcIj57eyBjb3VudHJ5LmRkaSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgQGlmIChzZWxlY3RlZEl0ZW0/LmlkID09PSBjb3VudHJ5LmlkKSB7XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWNoZWNrIHNkYy1jb3VudHJ5LXBob25lLXBpY2tlcl9fb3B0aW9uLXNlbGVjdGVkLWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3NkYy1wb3BvdmVyPlxuXG4gICAgICBAaWYgKG1lc3NhZ2UpIHtcbiAgICAgICAgPHNtYWxsIGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiPlxuICAgICAgICAgIHt7IG1lc3NhZ2UgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9zbWFsbD5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiJdfQ==
|
|
@@ -56,7 +56,7 @@ export class CurrencyComponent {
|
|
|
56
56
|
useExisting: forwardRef(() => CurrencyComponent),
|
|
57
57
|
multi: true
|
|
58
58
|
}
|
|
59
|
-
], ngImport: i0, template: "<
|
|
59
|
+
], ngImport: i0, template: "<sdc-number-input\n [ngModel]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n [label]=\"label\"\n [message]=\"message\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [invalid]=\"invalid\"\n [precision]=\"precision\"\n [scale]=\"resolvedScale\"\n [alignTo]=\"alignTo\"\n [allowNegative]=\"allowNegative\"\n [infoTooltip]=\"infoTooltip\"\n [infoTooltipPosition]=\"infoTooltipPosition\"\n [infoTooltipEvent]=\"infoTooltipEvent\"\n [addonLeft]=\"symbolSide === 'left' ? currencySymbol : null\"\n [addonRight]=\"symbolSide === 'right' ? currencySymbol : null\"\n (blur)=\"onTouched()\"\n></sdc-number-input>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: NumberInputComponent, selector: "sdc-number-input", inputs: ["precision", "scale", "decimalSeparator", "thousandsSeparator", "alignTo", "allowNegative", "min", "max", "step", "infoTooltip", "infoTooltipPosition", "infoTooltipEvent", "addonLeft", "addonRight"], outputs: ["pasteRejected"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
60
60
|
}
|
|
61
61
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CurrencyComponent, decorators: [{
|
|
62
62
|
type: Component,
|
|
@@ -66,7 +66,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
66
66
|
useExisting: forwardRef(() => CurrencyComponent),
|
|
67
67
|
multi: true
|
|
68
68
|
}
|
|
69
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<
|
|
69
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<sdc-number-input\n [ngModel]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n [label]=\"label\"\n [message]=\"message\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [invalid]=\"invalid\"\n [precision]=\"precision\"\n [scale]=\"resolvedScale\"\n [alignTo]=\"alignTo\"\n [allowNegative]=\"allowNegative\"\n [infoTooltip]=\"infoTooltip\"\n [infoTooltipPosition]=\"infoTooltipPosition\"\n [infoTooltipEvent]=\"infoTooltipEvent\"\n [addonLeft]=\"symbolSide === 'left' ? currencySymbol : null\"\n [addonRight]=\"symbolSide === 'right' ? currencySymbol : null\"\n (blur)=\"onTouched()\"\n></sdc-number-input>\n", styles: [":host{display:block}\n"] }]
|
|
70
70
|
}], propDecorators: { value: [{
|
|
71
71
|
type: Input
|
|
72
72
|
}], currency: [{
|
|
@@ -100,4 +100,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
100
100
|
}], symbolSide: [{
|
|
101
101
|
type: Input
|
|
102
102
|
}] } });
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3kuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9jdXJyZW5jeS9jdXJyZW5jeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2N1cnJlbmN5L2N1cnJlbmN5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUl4RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMxRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7O0FBa0I5RSxNQUFNLE9BQU8saUJBQWlCO0lBQ1gsU0FBUyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBRTdDLEtBQUssR0FBa0IsSUFBSSxDQUFDO0lBQzVCLFFBQVEsR0FBRywyQkFBMkIsQ0FBQztJQUN2QyxPQUFPLEdBQXlCLE9BQU8sQ0FBQztJQUN4QyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQ3JCLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDZixLQUFLLENBQVU7SUFDZixLQUFLLEdBQW1CLEtBQUssQ0FBQztJQUM5QixPQUFPLEdBQW1CLEtBQUss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b20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24sIGZvcndhcmRSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5pbXBvcnQgeyBDVVJSRU5DWV9JTlBVVF9ERUZBVUxUX0NPREUgfSBmcm9tICcuLi8uLi9jb3JlL2NvbnN0YW50cy9jdXJyZW5jeS1pbnB1dC5jb25zdCc7XG5pbXBvcnQgdHlwZSB7IEN1cnJlbmN5QWRvcm5tZW50U2lkZSB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvY3VycmVuY3ktaW5wdXQudHlwZSc7XG5pbXBvcnQgdHlwZSB7IE51bWJlcklucHV0QWxpZ25tZW50IH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9udW1iZXItaW5wdXQudHlwZSc7XG5pbXBvcnQgdHlwZSB7IFRvb2x0aXBFdmVudCwgVG9vbHRpcFBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy90b29sdGlwLnR5cGUnO1xuaW1wb3J0IHsgZ2V0Q3VycmVuY3lTeW1ib2wsIGdldE51bWVyaWNMb2NhbGUsIHJlc29sdmVDdXJyZW5jeVNjYWxlIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9udW1lcmljLnV0aWwnO1xuaW1wb3J0IHsgTnVtYmVySW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9udW1iZXItaW5wdXQvbnVtYmVyLWlucHV0LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NkYy1jdXJyZW5jeScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBOdW1iZXJJbnB1dENvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXJyZW5jeS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9jdXJyZW5jeS5jb21wb25lbnQuc2NzcycsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ3VycmVuY3lDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZFxufSlcbmV4cG9ydCBjbGFzcyBDdXJyZW5jeUNvbXBvbmVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuXG4gIEBJbnB1dCgpIHZhbHVlOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgY3VycmVuY3kgPSBDVVJSRU5DWV9JTlBVVF9ERUZBVUxUX0NPREU7XG4gIEBJbnB1dCgpIGFsaWduVG86IE51bWJlcklucHV0QWxpZ25tZW50ID0gJ3JpZ2h0JztcbiAgQElucHV0KCkgYWxsb3dOZWdhdGl2ZSA9IHRydWU7XG4gIEBJbnB1dCgpIHByZWNpc2lvbiA9IDEyO1xuICBASW5wdXQoKSBzY2FsZT86IG51bWJlcjtcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyB8IGZhbHNlID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1lc3NhZ2U6IHN0cmluZyB8IGZhbHNlID0gZmFsc2U7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJyc7XG4gIEBJbnB1dCgpIHJlcXVpcmVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGludmFsaWQgPSBmYWxzZTtcbiAgQElucHV0KCkgaW5mb1Rvb2x0aXA6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBpbmZvVG9vbHRpcFBvc2l0aW9uOiBUb29sdGlwUG9zaXRpb24gPSAncmlnaHQnO1xuICBASW5wdXQoKSBpbmZvVG9vbHRpcEV2ZW50OiBUb29sdGlwRXZlbnQgPSAnYm90aCc7XG4gIEBJbnB1dCgpIHN5bWJvbFNpZGU6IEN1cnJlbmN5QWRvcm5tZW50U2lkZSA9ICdsZWZ0JztcblxuICBvbkNoYW5nZTogKHZhbHVlOiBudW1iZXIgfCBudWxsKSA9PiB2b2lkID0gKCkgPT4gdW5kZWZpbmVkO1xuICBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB1bmRlZmluZWQ7XG5cbiAgZ2V0IHJlc29sdmVkU2NhbGUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zY2FsZSA/PyByZXNvbHZlQ3VycmVuY3lTY2FsZSh0aGlzLmN1cnJlbmN5KTtcbiAgfVxuXG4gIGdldCBjdXJyZW5jeVN5bWJvbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBnZXRDdXJyZW5jeVN5bWJvbCh0aGlzLmN1cnJlbmN5LCBnZXROdW1lcmljTG9jYWxlKHRoaXMudHJhbnNsYXRlLmN1cnJlbnRMYW5nKSk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBudW1iZXIgfCBudWxsKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBudW1iZXIgfCBudWxsKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICBvblZhbHVlQ2hhbmdlKHZhbHVlOiBudW1iZXIgfCBudWxsKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICB9XG59XG4iLCI8c2RjLW51bWJlci1pbnB1dFxuICBbbmdNb2RlbF09XCJ2YWx1ZVwiXG4gIChuZ01vZGVsQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gIFtsYWJlbF09XCJsYWJlbFwiXG4gIFttZXNzYWdlXT1cIm1lc3NhZ2VcIlxuICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBbaW52YWxpZF09XCJpbnZhbGlkXCJcbiAgW3ByZWNpc2lvbl09XCJwcmVjaXNpb25cIlxuICBbc2NhbGVdPVwicmVzb2x2ZWRTY2FsZVwiXG4gIFthbGlnblRvXT1cImFsaWduVG9cIlxuICBbYWxsb3dOZWdhdGl2ZV09XCJhbGxvd05lZ2F0aXZlXCJcbiAgW2luZm9Ub29sdGlwXT1cImluZm9Ub29sdGlwXCJcbiAgW2luZm9Ub29sdGlwUG9zaXRpb25dPVwiaW5mb1Rvb2x0aXBQb3NpdGlvblwiXG4gIFtpbmZvVG9vbHRpcEV2ZW50XT1cImluZm9Ub29sdGlwRXZlbnRcIlxuICBbYWRkb25MZWZ0XT1cInN5bWJvbFNpZGUgPT09ICdsZWZ0JyA/IGN1cnJlbmN5U3ltYm9sIDogbnVsbFwiXG4gIFthZGRvblJpZ2h0XT1cInN5bWJvbFNpZGUgPT09ICdyaWdodCcgPyBjdXJyZW5jeVN5bWJvbCA6IG51bGxcIlxuICAoYmx1cik9XCJvblRvdWNoZWQoKVwiXG4+PC9zZGMtbnVtYmVyLWlucHV0PlxuIl19
|