@koobiq/components 18.31.0 → 18.33.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/accordion/accordion-trigger.component.scss +2 -0
- package/actions-panel/actions-panel-config.d.ts +2 -0
- package/actions-panel/actions-panel.d.ts +3 -57
- package/autocomplete/autocomplete-trigger.directive.d.ts +3 -4
- package/autocomplete/autocomplete.component.d.ts +1 -0
- package/autocomplete/autocomplete.module.d.ts +1 -1
- package/button-toggle/button-toggle.module.d.ts +3 -4
- package/code-block/code-block-highlight.d.ts +1 -2
- package/code-block/code-block.d.ts +57 -10
- package/core/common-behaviors/color.d.ts +3 -0
- package/core/common-behaviors/common-module.d.ts +16 -3
- package/core/form-field/form-field-ref.d.ts +5 -3
- package/core/option/action-container.d.ts +5 -0
- package/core/option/action-container.scss +45 -0
- package/core/option/action.d.ts +1 -4
- package/core/option/action.scss +13 -12
- package/core/option/index.d.ts +1 -0
- package/core/option/option.d.ts +6 -5
- package/core/public-api.d.ts +1 -0
- package/core/styles/common/_select.scss +60 -37
- package/core/styles/common/_tokens.scss +2 -0
- package/core/styles/theming/_theming.scss +0 -4
- package/core/tokens/index.d.ts +1 -0
- package/core/tokens/window.d.ts +5 -0
- package/core/validation/validation.d.ts +23 -2
- package/datepicker/datepicker-input.scss +1 -5
- package/dropdown/dropdown-trigger.directive.d.ts +1 -0
- package/ellipsis-center/ellipsis-center.directive.d.ts +7 -1
- package/esm2022/accordion/accordion-trigger.component.mjs +2 -2
- package/esm2022/accordion/accordion.component.mjs +2 -2
- package/esm2022/actions-panel/actions-panel-config.mjs +1 -1
- package/esm2022/actions-panel/actions-panel.mjs +16 -113
- package/esm2022/alert/alert.component.mjs +2 -2
- package/esm2022/autocomplete/autocomplete-trigger.directive.mjs +9 -13
- package/esm2022/autocomplete/autocomplete.component.mjs +10 -2
- package/esm2022/autocomplete/autocomplete.module.mjs +5 -11
- package/esm2022/badge/badge.component.mjs +2 -2
- package/esm2022/breadcrumbs/breadcrumbs.mjs +3 -6
- package/esm2022/button/button.component.mjs +4 -3
- package/esm2022/button-toggle/button-toggle.component.mjs +2 -2
- package/esm2022/button-toggle/button-toggle.module.mjs +5 -6
- package/esm2022/checkbox/checkbox.mjs +2 -2
- package/esm2022/code-block/code-block-highlight.mjs +8 -12
- package/esm2022/code-block/code-block.mjs +60 -18
- package/esm2022/core/common-behaviors/color.mjs +4 -1
- package/esm2022/core/common-behaviors/common-module.mjs +19 -26
- package/esm2022/core/form-field/form-field-ref.mjs +3 -4
- package/esm2022/core/option/action-container.mjs +23 -0
- package/esm2022/core/option/action.mjs +16 -30
- package/esm2022/core/option/index.mjs +2 -1
- package/esm2022/core/option/optgroup.mjs +2 -2
- package/esm2022/core/option/option.mjs +10 -8
- package/esm2022/core/public-api.mjs +2 -1
- package/esm2022/core/tokens/index.mjs +2 -0
- package/esm2022/core/tokens/window.mjs +19 -0
- package/esm2022/core/utils/utils.mjs +2 -1
- package/esm2022/core/validation/validation.mjs +21 -2
- package/esm2022/core/version.mjs +2 -2
- package/esm2022/datepicker/calendar-body.component.mjs +3 -3
- package/esm2022/datepicker/calendar-header.component.mjs +3 -3
- package/esm2022/datepicker/datepicker-input.directive.mjs +5 -1
- package/esm2022/datepicker/datepicker.component.mjs +3 -3
- package/esm2022/dl/dl.component.mjs +2 -2
- package/esm2022/dropdown/dropdown-trigger.directive.mjs +4 -3
- package/esm2022/dropdown/dropdown.component.mjs +3 -3
- package/esm2022/ellipsis-center/ellipsis-center.directive.mjs +8 -1
- package/esm2022/empty-state/empty-state.component.mjs +2 -2
- package/esm2022/file-upload/multiple-file-upload.component.mjs +4 -4
- package/esm2022/file-upload/single-file-upload.component.mjs +2 -2
- package/esm2022/filter-bar/filter-bar.mjs +21 -5
- package/esm2022/filter-bar/filter-bar.types.mjs +1 -1
- package/esm2022/filter-bar/filter-reset.mjs +2 -1
- package/esm2022/filter-bar/filter-search.mjs +2 -2
- package/esm2022/filter-bar/filters.mjs +4 -3
- package/esm2022/filter-bar/pipe-add.mjs +2 -2
- package/esm2022/filter-bar/pipes/base-pipe.mjs +7 -2
- package/esm2022/filter-bar/pipes/pipe-date.mjs +6 -12
- package/esm2022/filter-bar/pipes/pipe-datetime.mjs +6 -12
- package/esm2022/filter-bar/pipes/pipe-multi-select.mjs +2 -2
- package/esm2022/filter-bar/pipes/pipe-multi-tree-select.mjs +2 -2
- package/esm2022/filter-bar/pipes/pipe-select.mjs +2 -2
- package/esm2022/filter-bar/pipes/pipe-text.mjs +2 -2
- package/esm2022/filter-bar/pipes/pipe-tree-select.mjs +2 -2
- package/esm2022/form-field/cleaner.mjs +11 -6
- package/esm2022/form-field/error.mjs +20 -0
- package/esm2022/form-field/fieldset.mjs +84 -0
- package/esm2022/form-field/form-field-control.mjs +2 -2
- package/esm2022/form-field/form-field.mjs +247 -74
- package/esm2022/form-field/form-field.module.mjs +59 -47
- package/esm2022/form-field/hint.mjs +10 -18
- package/esm2022/form-field/label.mjs +19 -0
- package/esm2022/form-field/password-hint.mjs +7 -6
- package/esm2022/form-field/password-toggle.mjs +52 -27
- package/esm2022/form-field/prefix.mjs +9 -3
- package/esm2022/form-field/public-api.mjs +5 -2
- package/esm2022/form-field/reactive-password-hint.mjs +65 -0
- package/esm2022/form-field/stepper.mjs +34 -16
- package/esm2022/form-field/suffix.mjs +8 -3
- package/esm2022/form-field/validate.directive.mjs +16 -19
- package/esm2022/input/input-number.mjs +7 -2
- package/esm2022/input/input-password.mjs +2 -2
- package/esm2022/input/input.module.mjs +1 -5
- package/esm2022/list/list-selection.component.mjs +5 -5
- package/esm2022/list/list.component.mjs +2 -2
- package/esm2022/list/list.module.mjs +12 -5
- package/esm2022/loader-overlay/loader-overlay.component.mjs +2 -2
- package/esm2022/modal/modal-util.mjs +2 -1
- package/esm2022/modal/modal.component.mjs +2 -2
- package/esm2022/navbar/navbar-item.component.mjs +12 -13
- package/esm2022/navbar/navbar.component.mjs +2 -2
- package/esm2022/navbar/vertical-navbar.component.mjs +2 -2
- package/esm2022/overflow-items/overflow-items.mjs +27 -10
- package/esm2022/popover/popover-confirm.component.mjs +3 -3
- package/esm2022/popover/popover.component.mjs +3 -3
- package/esm2022/progress-bar/progress-bar.component.mjs +2 -2
- package/esm2022/progress-spinner/progress-spinner.component.mjs +2 -2
- package/esm2022/radio/radio.component.mjs +2 -2
- package/esm2022/radio/radio.module.mjs +4 -5
- package/esm2022/risk-level/risk-level.component.mjs +2 -2
- package/esm2022/scrollbar/scrollbar.component.mjs +14 -11
- package/esm2022/scrollbar/scrollbar.directive.mjs +2 -1
- package/esm2022/select/select.component.mjs +42 -22
- package/esm2022/sidepanel/sidepanel-container.component.mjs +3 -3
- package/esm2022/sidepanel/sidepanel.module.mjs +1 -5
- package/esm2022/splitter/splitter.component.mjs +5 -3
- package/esm2022/table/table.component.mjs +2 -2
- package/esm2022/tabs/paginated-tab-header.mjs +6 -2
- package/esm2022/tabs/tabs.module.mjs +1 -5
- package/esm2022/tags/tag-list.component.mjs +2 -2
- package/esm2022/textarea/textarea.component.mjs +7 -6
- package/esm2022/textarea/textarea.module.mjs +4 -5
- package/esm2022/timezone/timezone-option.component.mjs +2 -2
- package/esm2022/timezone/timezone-select.component.mjs +6 -4
- package/esm2022/toast/toast-animations.mjs +2 -2
- package/esm2022/toast/toast.component.mjs +3 -3
- package/esm2022/toggle/toggle.component.mjs +3 -3
- package/esm2022/toggle/toggle.module.mjs +4 -5
- package/esm2022/tooltip/tooltip.component.mjs +3 -3
- package/esm2022/top-bar/top-bar.mjs +2 -2
- package/esm2022/tree/padding.directive.mjs +8 -6
- package/esm2022/tree/toggle.mjs +2 -2
- package/esm2022/tree/tree-option.component.mjs +3 -3
- package/esm2022/tree/tree-selection.component.mjs +2 -2
- package/esm2022/tree/tree.mjs +2 -2
- package/esm2022/tree/tree.module.mjs +8 -5
- package/esm2022/tree-select/tree-select.component.mjs +50 -31
- package/fesm2022/koobiq-components-accordion.mjs +4 -4
- package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
- package/fesm2022/koobiq-components-actions-panel.mjs +16 -112
- package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-alert.mjs +2 -2
- package/fesm2022/koobiq-components-alert.mjs.map +1 -1
- package/fesm2022/koobiq-components-autocomplete.mjs +21 -24
- package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
- package/fesm2022/koobiq-components-badge.mjs +2 -2
- package/fesm2022/koobiq-components-badge.mjs.map +1 -1
- package/fesm2022/koobiq-components-breadcrumbs.mjs +2 -5
- package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/koobiq-components-button-toggle.mjs +7 -7
- package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-button.mjs +3 -2
- package/fesm2022/koobiq-components-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-checkbox.mjs +2 -2
- package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
- package/fesm2022/koobiq-components-code-block.mjs +65 -28
- package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +109 -69
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-datepicker.mjs +10 -6
- package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-dl.mjs +2 -2
- package/fesm2022/koobiq-components-dl.mjs.map +1 -1
- package/fesm2022/koobiq-components-dropdown.mjs +5 -4
- package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-ellipsis-center.mjs +7 -0
- package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-empty-state.mjs +2 -2
- package/fesm2022/koobiq-components-empty-state.mjs.map +1 -1
- package/fesm2022/koobiq-components-file-upload.mjs +5 -5
- package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
- package/fesm2022/koobiq-components-filter-bar.mjs +45 -35
- package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-form-field.mjs +611 -220
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-input.mjs +8 -6
- package/fesm2022/koobiq-components-input.mjs.map +1 -1
- package/fesm2022/koobiq-components-list.mjs +17 -10
- package/fesm2022/koobiq-components-list.mjs.map +1 -1
- package/fesm2022/koobiq-components-loader-overlay.mjs +2 -2
- package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
- package/fesm2022/koobiq-components-modal.mjs +3 -2
- package/fesm2022/koobiq-components-modal.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +15 -16
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-overflow-items.mjs +26 -9
- package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
- package/fesm2022/koobiq-components-popover.mjs +4 -4
- package/fesm2022/koobiq-components-popover.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-bar.mjs +2 -2
- package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-spinner.mjs +2 -2
- package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
- package/fesm2022/koobiq-components-radio.mjs +6 -6
- package/fesm2022/koobiq-components-radio.mjs.map +1 -1
- package/fesm2022/koobiq-components-risk-level.mjs +2 -2
- package/fesm2022/koobiq-components-risk-level.mjs.map +1 -1
- package/fesm2022/koobiq-components-scrollbar.mjs +14 -10
- package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +42 -22
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidepanel.mjs +3 -6
- package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
- package/fesm2022/koobiq-components-splitter.mjs +4 -2
- package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
- package/fesm2022/koobiq-components-table.mjs +2 -2
- package/fesm2022/koobiq-components-table.mjs.map +1 -1
- package/fesm2022/koobiq-components-tabs.mjs +5 -5
- package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
- package/fesm2022/koobiq-components-tags.mjs +2 -2
- package/fesm2022/koobiq-components-tags.mjs.map +1 -1
- package/fesm2022/koobiq-components-textarea.mjs +9 -8
- package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
- package/fesm2022/koobiq-components-timezone.mjs +7 -5
- package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
- package/fesm2022/koobiq-components-toast.mjs +3 -3
- package/fesm2022/koobiq-components-toast.mjs.map +1 -1
- package/fesm2022/koobiq-components-toggle.mjs +6 -6
- package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-tooltip.mjs +2 -2
- package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
- package/fesm2022/koobiq-components-top-bar.mjs +2 -2
- package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree-select.mjs +50 -31
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree.mjs +22 -17
- package/fesm2022/koobiq-components-tree.mjs.map +1 -1
- package/file-upload/_file-upload-theme.scss +9 -0
- package/file-upload/multiple-file-upload.component.d.ts +1 -1
- package/filter-bar/filter-bar.d.ts +2 -0
- package/filter-bar/filter-bar.types.d.ts +2 -2
- package/form-field/_fiedset-theme.scss +13 -0
- package/form-field/_form-field-theme.scss +29 -13
- package/form-field/_hint-theme.scss +21 -22
- package/form-field/cleaner.d.ts +5 -1
- package/form-field/cleaner.scss +1 -4
- package/form-field/error.d.ts +8 -0
- package/form-field/fieldset-tokens.scss +5 -0
- package/form-field/fieldset.d.ts +27 -0
- package/form-field/fieldset.scss +93 -0
- package/form-field/form-field-control.d.ts +1 -1
- package/form-field/form-field-tokens.scss +13 -3
- package/form-field/form-field.d.ts +210 -22
- package/form-field/form-field.module.d.ts +14 -12
- package/form-field/form-field.scss +58 -78
- package/form-field/hint.d.ts +5 -1
- package/form-field/hint.scss +3 -5
- package/form-field/label.d.ts +6 -0
- package/form-field/password-hint.d.ts +1 -1
- package/form-field/password-toggle.d.ts +25 -11
- package/form-field/password-toggle.scss +1 -2
- package/form-field/prefix.d.ts +2 -1
- package/form-field/public-api.d.ts +4 -1
- package/form-field/reactive-password-hint.d.ts +19 -0
- package/form-field/stepper.d.ts +20 -8
- package/form-field/stepper.scss +12 -11
- package/form-field/suffix.d.ts +2 -1
- package/form-field/validate.directive.d.ts +10 -12
- package/input/input-tokens.scss +2 -2
- package/input/input.module.d.ts +3 -4
- package/input/input.scss +1 -2
- package/list/_list-theme.scss +4 -1
- package/list/list.module.d.ts +2 -1
- package/list/list.scss +6 -12
- package/navbar/navbar-item.component.d.ts +3 -1
- package/overflow-items/overflow-items.d.ts +12 -5
- package/package.json +4 -4
- package/prebuilt-themes/dark-theme.css +1 -1
- package/prebuilt-themes/light-theme.css +1 -1
- package/prebuilt-themes/theme.css +1 -1
- package/radio/radio.module.d.ts +1 -2
- package/schematics/ng-add/index.js +3 -3
- package/scrollbar/scrollbar.component.d.ts +1 -0
- package/select/select-tokens.scss +5 -4
- package/select/select.component.d.ts +12 -3
- package/sidepanel/sidepanel.module.d.ts +5 -6
- package/splitter/splitter.component.d.ts +1 -0
- package/tabs/paginated-tab-header.d.ts +1 -0
- package/tabs/tabs.module.d.ts +5 -6
- package/tags/tag-list.scss +8 -4
- package/textarea/textarea.component.d.ts +1 -0
- package/textarea/textarea.module.d.ts +2 -3
- package/timepicker/timepicker.scss +1 -1
- package/toast/toast.component.scss +2 -0
- package/toggle/_toggle-theme.scss +10 -2
- package/toggle/toggle-tokens.scss +7 -1
- package/toggle/toggle.module.d.ts +1 -2
- package/toggle/toggle.scss +6 -6
- package/top-bar/top-bar.scss +48 -32
- package/tree/_tree-theme.scss +13 -2
- package/tree/padding.directive.d.ts +1 -1
- package/tree/tree-option.scss +12 -17
- package/tree/tree.module.d.ts +1 -1
- package/tree-select/tree-select.component.d.ts +10 -1
- package/esm2022/form-field/form-field-errors.mjs +0 -7
- package/form-field/form-field-errors.d.ts +0 -2
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
import { Directive } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
+
/** Element to be placed in front of the form field. */
|
|
3
4
|
export class KbqPrefix {
|
|
4
5
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqPrefix, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
5
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: KbqPrefix, selector: "[kbqPrefix]", ngImport: i0 }); }
|
|
6
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: KbqPrefix, isStandalone: true, selector: "[kbqPrefix]", host: { classAttribute: "kbq-prefix" }, exportAs: ["kbqPrefix"], ngImport: i0 }); }
|
|
6
7
|
}
|
|
7
8
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqPrefix, decorators: [{
|
|
8
9
|
type: Directive,
|
|
9
10
|
args: [{
|
|
10
|
-
|
|
11
|
+
standalone: true,
|
|
12
|
+
selector: '[kbqPrefix]',
|
|
13
|
+
exportAs: 'kbqPrefix',
|
|
14
|
+
host: {
|
|
15
|
+
class: 'kbq-prefix'
|
|
16
|
+
}
|
|
11
17
|
}]
|
|
12
18
|
}] });
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZml4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9mb3JtLWZpZWxkL3ByZWZpeC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUxQyx1REFBdUQ7QUFTdkQsTUFBTSxPQUFPLFNBQVM7a0lBQVQsU0FBUztzSEFBVCxTQUFTOzs0RkFBVCxTQUFTO2tCQVJyQixTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsYUFBYTtvQkFDdkIsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLElBQUksRUFBRTt3QkFDRixLQUFLLEVBQUUsWUFBWTtxQkFDdEI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqIEVsZW1lbnQgdG8gYmUgcGxhY2VkIGluIGZyb250IG9mIHRoZSBmb3JtIGZpZWxkLiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ1trYnFQcmVmaXhdJyxcbiAgICBleHBvcnRBczogJ2ticVByZWZpeCcsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ticS1wcmVmaXgnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBLYnFQcmVmaXgge31cbiJdfQ==
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
export * from './cleaner';
|
|
2
|
+
export * from './error';
|
|
3
|
+
export * from './fieldset';
|
|
2
4
|
export * from './form-field';
|
|
3
5
|
export * from './form-field-control';
|
|
4
|
-
export * from './form-field-errors';
|
|
5
6
|
export * from './form-field.module';
|
|
6
7
|
export * from './hint';
|
|
8
|
+
export * from './label';
|
|
7
9
|
export * from './password-hint';
|
|
8
10
|
export * from './password-toggle';
|
|
9
11
|
export * from './prefix';
|
|
12
|
+
export * from './reactive-password-hint';
|
|
10
13
|
export * from './stepper';
|
|
11
14
|
export * from './suffix';
|
|
12
15
|
export * from './validate.directive';
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZm9ybS1maWVsZC9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jbGVhbmVyJztcbmV4cG9ydCAqIGZyb20gJy4vZXJyb3InO1xuZXhwb3J0ICogZnJvbSAnLi9maWVsZHNldCc7XG5leHBvcnQgKiBmcm9tICcuL2Zvcm0tZmllbGQnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtLWZpZWxkLWNvbnRyb2wnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtLWZpZWxkLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2hpbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9sYWJlbCc7XG5leHBvcnQgKiBmcm9tICcuL3Bhc3N3b3JkLWhpbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9wYXNzd29yZC10b2dnbGUnO1xuZXhwb3J0ICogZnJvbSAnLi9wcmVmaXgnO1xuZXhwb3J0ICogZnJvbSAnLi9yZWFjdGl2ZS1wYXNzd29yZC1oaW50JztcbmV4cG9ydCAqIGZyb20gJy4vc3RlcHBlcic7XG5leHBvcnQgKiBmcm9tICcuL3N1ZmZpeCc7XG5leHBvcnQgKiBmcm9tICcuL3ZhbGlkYXRlLmRpcmVjdGl2ZSc7XG4iXX0=
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { NgClass } from '@angular/common';
|
|
2
|
+
import { afterNextRender, booleanAttribute, ChangeDetectionStrategy, Component, computed, DestroyRef, inject, input, ViewEncapsulation } from '@angular/core';
|
|
3
|
+
import { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';
|
|
4
|
+
import { KBQ_FORM_FIELD_REF, KbqComponentColors } from '@koobiq/components/core';
|
|
5
|
+
import { KbqIconModule } from '@koobiq/components/icon';
|
|
6
|
+
import { EMPTY, merge } from 'rxjs';
|
|
7
|
+
import { KbqHint } from './hint';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@koobiq/components/icon";
|
|
10
|
+
/** Password hint to be shown below the password form field control. */
|
|
11
|
+
export class KbqReactivePasswordHint extends KbqHint {
|
|
12
|
+
constructor() {
|
|
13
|
+
super();
|
|
14
|
+
// @TODO fix types (#DS-2915)
|
|
15
|
+
this.formField = inject(KBQ_FORM_FIELD_REF, { optional: true });
|
|
16
|
+
this.destroyRef = inject(DestroyRef);
|
|
17
|
+
/** Whether the form field control has an error. */
|
|
18
|
+
this.hasError = input(false, { transform: booleanAttribute });
|
|
19
|
+
/**
|
|
20
|
+
* The form field hint icon.
|
|
21
|
+
*
|
|
22
|
+
* @docs-private
|
|
23
|
+
*/
|
|
24
|
+
this.icon = computed(() => (this.hasError() ? 'kbq-xmark-s_16' : 'kbq-check-s_16'));
|
|
25
|
+
this.fillTextOff = true;
|
|
26
|
+
this.compact = false;
|
|
27
|
+
this.color = KbqComponentColors.ContrastFade;
|
|
28
|
+
const hasError = toObservable(this.hasError);
|
|
29
|
+
afterNextRender(() => {
|
|
30
|
+
merge(this.formField?.control?.stateChanges || EMPTY, hasError)
|
|
31
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
32
|
+
.subscribe(() => (this.color = this.makeColor()));
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
makeColor() {
|
|
36
|
+
const invalid = this.formField?.invalid;
|
|
37
|
+
const hasError = this.hasError();
|
|
38
|
+
if (invalid && hasError)
|
|
39
|
+
return KbqComponentColors.Error;
|
|
40
|
+
if ((!invalid && !hasError) || !hasError)
|
|
41
|
+
return KbqComponentColors.Success;
|
|
42
|
+
return KbqComponentColors.ContrastFade;
|
|
43
|
+
}
|
|
44
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqReactivePasswordHint, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
45
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: KbqReactivePasswordHint, isStandalone: true, selector: "kbq-reactive-password-hint", inputs: { hasError: { classPropertyName: "hasError", publicName: "hasError", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "kbq-reactive-password-hint" }, exportAs: ["kbqReactivePasswordHint"], usesInheritance: true, ngImport: i0, template: `
|
|
46
|
+
<i [ngClass]="icon()" kbq-icon=""></i>
|
|
47
|
+
|
|
48
|
+
<span class="kbq-hint__text">
|
|
49
|
+
<ng-content />
|
|
50
|
+
</span>
|
|
51
|
+
`, isInline: true, styles: [".kbq-hint{display:flex}.kbq-hint .kbq-icon{margin-top:var(--kbq-hint-size-normal-margin-top);margin-right:var(--kbq-hint-size-normal-content-padding)}.kbq-hint.kbq-hint_compact .kbq-icon{margin-top:var(--kbq-hint-size-compact-margin-top);margin-right:var(--kbq-hint-size-compact-content-padding)}.kbq-hint.kbq-contrast-fade{color:var(--kbq-hint-fill-text-on-fade-contrast-text)}.kbq-hint.kbq-contrast-fade .kbq-icon.kbq-empty{color:var(--kbq-hint-fill-text-on-fade-contrast-icon)!important}.kbq-hint.kbq-success{color:var(--kbq-hint-fill-text-on-success-text)}.kbq-hint.kbq-success .kbq-icon.kbq-empty{color:var(--kbq-hint-fill-text-on-success-icon)!important}.kbq-hint.kbq-warning{color:var(--kbq-hint-fill-text-on-warning-text)}.kbq-hint.kbq-warning .kbq-icon.kbq-empty{color:var(--kbq-hint-fill-text-on-warning-icon)!important}.kbq-hint.kbq-error{color:var(--kbq-hint-fill-text-on-error-text)}.kbq-hint.kbq-error .kbq-icon.kbq-empty{color:var(--kbq-hint-fill-text-on-error-icon)!important}.kbq-hint.kbq-hint_fill-text-off.kbq-contrast-fade{color:var(--kbq-hint-fill-text-off-fade-contrast-text)}.kbq-hint.kbq-hint_fill-text-off.kbq-contrast-fade .kbq-icon.kbq-empty{color:var(--kbq-hint-fill-text-off-fade-contrast-icon)!important}.kbq-hint.kbq-hint_fill-text-off.kbq-success{color:var(--kbq-hint-fill-text-off-success-text)}.kbq-hint.kbq-hint_fill-text-off.kbq-success .kbq-icon.kbq-empty{color:var(--kbq-hint-fill-text-off-success-icon)!important}.kbq-hint.kbq-hint_fill-text-off.kbq-warning{color:var(--kbq-hint-fill-text-off-warning-text)}.kbq-hint.kbq-hint_fill-text-off.kbq-warning .kbq-icon.kbq-empty{color:var(--kbq-hint-fill-text-off-warning-icon)!important}.kbq-hint.kbq-hint_fill-text-off.kbq-error{color:var(--kbq-hint-fill-text-off-error-text)}.kbq-hint.kbq-hint_fill-text-off.kbq-error .kbq-icon.kbq-empty{color:var(--kbq-hint-fill-text-off-error-icon)!important}.kbq-hint .kbq-hint__text{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-hint.kbq-hint_compact .kbq-hint__text{font-size:var(--kbq-typography-text-compact-font-size);font-style:var(--kbq-typography-text-compact-font-style);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}\n", ".kbq-hint{--kbq-hint-size-normal-margin-top: var(--kbq-size-3xs);--kbq-hint-size-normal-content-padding: var(--kbq-size-xxs);--kbq-hint-size-compact-margin-top: 0;--kbq-hint-size-compact-content-padding: var(--kbq-size-xxs);--kbq-hint-fill-text-off-fade-contrast-text: var(--kbq-foreground-contrast);--kbq-hint-fill-text-off-fade-contrast-icon: var(--kbq-icon-contrast-fade);--kbq-hint-fill-text-off-success-text: var(--kbq-foreground-contrast);--kbq-hint-fill-text-off-success-icon: var(--kbq-icon-success);--kbq-hint-fill-text-off-warning-text: var(--kbq-foreground-contrast);--kbq-hint-fill-text-off-warning-icon: var(--kbq-icon-warning);--kbq-hint-fill-text-off-error-text: var(--kbq-foreground-contrast);--kbq-hint-fill-text-off-error-icon: var(--kbq-icon-error);--kbq-hint-fill-text-on-fade-contrast-text: var(--kbq-foreground-contrast);--kbq-hint-fill-text-on-fade-contrast-icon: var(--kbq-icon-contrast-fade);--kbq-hint-fill-text-on-success-text: var(--kbq-foreground-success);--kbq-hint-fill-text-on-success-icon: var(--kbq-icon-success);--kbq-hint-fill-text-on-warning-text: var(--kbq-foreground-warning);--kbq-hint-fill-text-on-warning-icon: var(--kbq-icon-warning);--kbq-hint-fill-text-on-error-text: var(--kbq-foreground-error);--kbq-hint-fill-text-on-error-icon: var(--kbq-icon-error)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i1.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
52
|
+
}
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqReactivePasswordHint, decorators: [{
|
|
54
|
+
type: Component,
|
|
55
|
+
args: [{ standalone: true, imports: [NgClass, KbqIconModule], selector: 'kbq-reactive-password-hint', exportAs: 'kbqReactivePasswordHint', template: `
|
|
56
|
+
<i [ngClass]="icon()" kbq-icon=""></i>
|
|
57
|
+
|
|
58
|
+
<span class="kbq-hint__text">
|
|
59
|
+
<ng-content />
|
|
60
|
+
</span>
|
|
61
|
+
`, host: {
|
|
62
|
+
class: 'kbq-reactive-password-hint'
|
|
63
|
+
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".kbq-hint{display:flex}.kbq-hint .kbq-icon{margin-top:var(--kbq-hint-size-normal-margin-top);margin-right:var(--kbq-hint-size-normal-content-padding)}.kbq-hint.kbq-hint_compact .kbq-icon{margin-top:var(--kbq-hint-size-compact-margin-top);margin-right:var(--kbq-hint-size-compact-content-padding)}.kbq-hint.kbq-contrast-fade{color:var(--kbq-hint-fill-text-on-fade-contrast-text)}.kbq-hint.kbq-contrast-fade .kbq-icon.kbq-empty{color:var(--kbq-hint-fill-text-on-fade-contrast-icon)!important}.kbq-hint.kbq-success{color:var(--kbq-hint-fill-text-on-success-text)}.kbq-hint.kbq-success .kbq-icon.kbq-empty{color:var(--kbq-hint-fill-text-on-success-icon)!important}.kbq-hint.kbq-warning{color:var(--kbq-hint-fill-text-on-warning-text)}.kbq-hint.kbq-warning .kbq-icon.kbq-empty{color:var(--kbq-hint-fill-text-on-warning-icon)!important}.kbq-hint.kbq-error{color:var(--kbq-hint-fill-text-on-error-text)}.kbq-hint.kbq-error .kbq-icon.kbq-empty{color:var(--kbq-hint-fill-text-on-error-icon)!important}.kbq-hint.kbq-hint_fill-text-off.kbq-contrast-fade{color:var(--kbq-hint-fill-text-off-fade-contrast-text)}.kbq-hint.kbq-hint_fill-text-off.kbq-contrast-fade .kbq-icon.kbq-empty{color:var(--kbq-hint-fill-text-off-fade-contrast-icon)!important}.kbq-hint.kbq-hint_fill-text-off.kbq-success{color:var(--kbq-hint-fill-text-off-success-text)}.kbq-hint.kbq-hint_fill-text-off.kbq-success .kbq-icon.kbq-empty{color:var(--kbq-hint-fill-text-off-success-icon)!important}.kbq-hint.kbq-hint_fill-text-off.kbq-warning{color:var(--kbq-hint-fill-text-off-warning-text)}.kbq-hint.kbq-hint_fill-text-off.kbq-warning .kbq-icon.kbq-empty{color:var(--kbq-hint-fill-text-off-warning-icon)!important}.kbq-hint.kbq-hint_fill-text-off.kbq-error{color:var(--kbq-hint-fill-text-off-error-text)}.kbq-hint.kbq-hint_fill-text-off.kbq-error .kbq-icon.kbq-empty{color:var(--kbq-hint-fill-text-off-error-icon)!important}.kbq-hint .kbq-hint__text{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-hint.kbq-hint_compact .kbq-hint__text{font-size:var(--kbq-typography-text-compact-font-size);font-style:var(--kbq-typography-text-compact-font-style);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}\n", ".kbq-hint{--kbq-hint-size-normal-margin-top: var(--kbq-size-3xs);--kbq-hint-size-normal-content-padding: var(--kbq-size-xxs);--kbq-hint-size-compact-margin-top: 0;--kbq-hint-size-compact-content-padding: var(--kbq-size-xxs);--kbq-hint-fill-text-off-fade-contrast-text: var(--kbq-foreground-contrast);--kbq-hint-fill-text-off-fade-contrast-icon: var(--kbq-icon-contrast-fade);--kbq-hint-fill-text-off-success-text: var(--kbq-foreground-contrast);--kbq-hint-fill-text-off-success-icon: var(--kbq-icon-success);--kbq-hint-fill-text-off-warning-text: var(--kbq-foreground-contrast);--kbq-hint-fill-text-off-warning-icon: var(--kbq-icon-warning);--kbq-hint-fill-text-off-error-text: var(--kbq-foreground-contrast);--kbq-hint-fill-text-off-error-icon: var(--kbq-icon-error);--kbq-hint-fill-text-on-fade-contrast-text: var(--kbq-foreground-contrast);--kbq-hint-fill-text-on-fade-contrast-icon: var(--kbq-icon-contrast-fade);--kbq-hint-fill-text-on-success-text: var(--kbq-foreground-success);--kbq-hint-fill-text-on-success-icon: var(--kbq-icon-success);--kbq-hint-fill-text-on-warning-text: var(--kbq-foreground-warning);--kbq-hint-fill-text-on-warning-icon: var(--kbq-icon-warning);--kbq-hint-fill-text-on-error-text: var(--kbq-foreground-error);--kbq-hint-fill-text-on-error-icon: var(--kbq-icon-error)}\n"] }]
|
|
64
|
+
}], ctorParameters: () => [] });
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhY3RpdmUtcGFzc3dvcmQtaGludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZm9ybS1maWVsZC9yZWFjdGl2ZS1wYXNzd29yZC1oaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQ0gsZUFBZSxFQUNmLGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVwQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFBUSxDQUFDOzs7QUFFakMsdUVBQXVFO0FBdUJ2RSxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsT0FBTztJQWVoRDtRQUNJLEtBQUssRUFBRSxDQUFDO1FBZlosNkJBQTZCO1FBQ1osY0FBUyxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBd0MsQ0FBQztRQUNsRyxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRWpELG1EQUFtRDtRQUMxQyxhQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7UUFFbEU7Ozs7V0FJRztRQUNnQixTQUFJLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1FBSzlGLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsa0JBQWtCLENBQUMsWUFBWSxDQUFDO1FBRTdDLE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFN0MsZUFBZSxDQUFDLEdBQUcsRUFBRTtZQUNqQixLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsWUFBWSxJQUFJLEtBQUssRUFBRSxRQUFRLENBQUM7aUJBQzFELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7aUJBQ3pDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMxRCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxTQUFTO1FBQ2IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUM7UUFDeEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWpDLElBQUksT0FBTyxJQUFJLFFBQVE7WUFBRSxPQUFPLGtCQUFrQixDQUFDLEtBQUssQ0FBQztRQUV6RCxJQUFJLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPLGtCQUFrQixDQUFDLE9BQU8sQ0FBQztRQUU1RSxPQUFPLGtCQUFrQixDQUFDLFlBQVksQ0FBQztJQUMzQyxDQUFDO2tJQXhDUSx1QkFBdUI7c0hBQXZCLHVCQUF1Qix5VkFqQnRCOzs7Ozs7S0FNVCw4dElBVFMsT0FBTyxtRkFBRSxhQUFhOzs0RkFvQnZCLHVCQUF1QjtrQkF0Qm5DLFNBQVM7aUNBQ00sSUFBSSxXQUNQLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxZQUN2Qiw0QkFBNEIsWUFDNUIseUJBQXlCLFlBQ3pCOzs7Ozs7S0FNVCxRQUtLO3dCQUNGLEtBQUssRUFBRSw0QkFBNEI7cUJBQ3RDLGlCQUNjLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgYWZ0ZXJOZXh0UmVuZGVyLFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGNvbXB1dGVkLFxuICAgIERlc3Ryb3lSZWYsXG4gICAgaW5qZWN0LFxuICAgIGlucHV0LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkLCB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBLQlFfRk9STV9GSUVMRF9SRUYsIEticUNvbXBvbmVudENvbG9ycyB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9jb3JlJztcbmltcG9ydCB7IEticUljb25Nb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQgeyBFTVBUWSwgbWVyZ2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEticUZvcm1GaWVsZCB9IGZyb20gJy4vZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBLYnFIaW50IH0gZnJvbSAnLi9oaW50JztcblxuLyoqIFBhc3N3b3JkIGhpbnQgdG8gYmUgc2hvd24gYmVsb3cgdGhlIHBhc3N3b3JkIGZvcm0gZmllbGQgY29udHJvbC4gKi9cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nQ2xhc3MsIEticUljb25Nb2R1bGVdLFxuICAgIHNlbGVjdG9yOiAna2JxLXJlYWN0aXZlLXBhc3N3b3JkLWhpbnQnLFxuICAgIGV4cG9ydEFzOiAna2JxUmVhY3RpdmVQYXNzd29yZEhpbnQnLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxpIFtuZ0NsYXNzXT1cImljb24oKVwiIGticS1pY29uPVwiXCI+PC9pPlxuXG4gICAgICAgIDxzcGFuIGNsYXNzPVwia2JxLWhpbnRfX3RleHRcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgICAgIDwvc3Bhbj5cbiAgICBgLFxuICAgIHN0eWxlVXJsczogW1xuICAgICAgICAnLi9oaW50LnNjc3MnLFxuICAgICAgICAnLi9oaW50LXRva2Vucy5zY3NzJ1xuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ticS1yZWFjdGl2ZS1wYXNzd29yZC1oaW50J1xuICAgIH0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBLYnFSZWFjdGl2ZVBhc3N3b3JkSGludCBleHRlbmRzIEticUhpbnQge1xuICAgIC8vIEBUT0RPIGZpeCB0eXBlcyAoI0RTLTI5MTUpXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtRmllbGQgPSBpbmplY3QoS0JRX0ZPUk1fRklFTERfUkVGLCB7IG9wdGlvbmFsOiB0cnVlIH0pIGFzIHVua25vd24gYXMgS2JxRm9ybUZpZWxkIHwgdW5kZWZpbmVkO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBmb3JtIGZpZWxkIGNvbnRyb2wgaGFzIGFuIGVycm9yLiAqL1xuICAgIHJlYWRvbmx5IGhhc0Vycm9yID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGZvcm0gZmllbGQgaGludCBpY29uLlxuICAgICAqXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBpY29uID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMuaGFzRXJyb3IoKSA/ICdrYnEteG1hcmstc18xNicgOiAna2JxLWNoZWNrLXNfMTYnKSk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICB0aGlzLmZpbGxUZXh0T2ZmID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jb21wYWN0ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY29sb3IgPSBLYnFDb21wb25lbnRDb2xvcnMuQ29udHJhc3RGYWRlO1xuXG4gICAgICAgIGNvbnN0IGhhc0Vycm9yID0gdG9PYnNlcnZhYmxlKHRoaXMuaGFzRXJyb3IpO1xuXG4gICAgICAgIGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgICAgICAgICBtZXJnZSh0aGlzLmZvcm1GaWVsZD8uY29udHJvbD8uc3RhdGVDaGFuZ2VzIHx8IEVNUFRZLCBoYXNFcnJvcilcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+ICh0aGlzLmNvbG9yID0gdGhpcy5tYWtlQ29sb3IoKSkpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1ha2VDb2xvcigpOiBLYnFDb21wb25lbnRDb2xvcnMge1xuICAgICAgICBjb25zdCBpbnZhbGlkID0gdGhpcy5mb3JtRmllbGQ/LmludmFsaWQ7XG4gICAgICAgIGNvbnN0IGhhc0Vycm9yID0gdGhpcy5oYXNFcnJvcigpO1xuXG4gICAgICAgIGlmIChpbnZhbGlkICYmIGhhc0Vycm9yKSByZXR1cm4gS2JxQ29tcG9uZW50Q29sb3JzLkVycm9yO1xuXG4gICAgICAgIGlmICgoIWludmFsaWQgJiYgIWhhc0Vycm9yKSB8fCAhaGFzRXJyb3IpIHJldHVybiBLYnFDb21wb25lbnRDb2xvcnMuU3VjY2VzcztcblxuICAgICAgICByZXR1cm4gS2JxQ29tcG9uZW50Q29sb3JzLkNvbnRyYXN0RmFkZTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,24 +1,40 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, EventEmitter, inject, Output, ViewEncapsulation } from '@angular/core';
|
|
2
2
|
import { KBQ_FORM_FIELD_REF } from '@koobiq/components/core';
|
|
3
|
+
import { KbqIconModule } from '@koobiq/components/icon';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
import * as i1 from "@koobiq/components/icon";
|
|
6
|
+
// @TODO Temporary solution to resolve circular dependency (#DS-3893)
|
|
7
|
+
const isNumberInput = (control) => {
|
|
8
|
+
return 'stepUp' in control && 'stepDown' in control;
|
|
9
|
+
};
|
|
5
10
|
const getKbqStepperToggleMissingControlError = () => {
|
|
6
11
|
return Error('kbq-stepper should use with kbqNumberInput');
|
|
7
12
|
};
|
|
13
|
+
/** Component which allow to increment or decrement number value. */
|
|
8
14
|
export class KbqStepper {
|
|
9
15
|
constructor() {
|
|
10
16
|
this.formField = inject(KBQ_FORM_FIELD_REF, { optional: true });
|
|
17
|
+
/** Emitted when the stepper is incremented. */
|
|
11
18
|
this.stepUp = new EventEmitter();
|
|
19
|
+
/** Emitted when the stepper is decremented. */
|
|
12
20
|
this.stepDown = new EventEmitter();
|
|
13
21
|
}
|
|
14
|
-
/**
|
|
22
|
+
/**
|
|
23
|
+
* Form field number control.
|
|
24
|
+
*
|
|
25
|
+
* @docs-private
|
|
26
|
+
*/
|
|
15
27
|
get control() {
|
|
16
28
|
const control = this.formField?.control;
|
|
17
|
-
|
|
29
|
+
const input = control.numberInput;
|
|
30
|
+
if (!isNumberInput(input)) {
|
|
18
31
|
throw getKbqStepperToggleMissingControlError();
|
|
19
32
|
}
|
|
20
|
-
return
|
|
33
|
+
return input;
|
|
21
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* @docs-private
|
|
37
|
+
*/
|
|
22
38
|
connectTo(numberInput) {
|
|
23
39
|
if (!numberInput)
|
|
24
40
|
return;
|
|
@@ -29,67 +45,69 @@ export class KbqStepper {
|
|
|
29
45
|
numberInput.stepDown(numberInput.step);
|
|
30
46
|
});
|
|
31
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* @docs-private
|
|
50
|
+
*/
|
|
32
51
|
onStepUp($event) {
|
|
33
52
|
this.stepUp.emit();
|
|
34
53
|
$event.preventDefault();
|
|
35
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* @docs-private
|
|
57
|
+
*/
|
|
36
58
|
onStepDown($event) {
|
|
37
59
|
this.stepDown.emit();
|
|
38
60
|
$event.preventDefault();
|
|
39
61
|
}
|
|
40
62
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqStepper, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
41
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: KbqStepper, selector: "kbq-stepper", outputs: { stepUp: "stepUp", stepDown: "stepDown" }, host: { classAttribute: "kbq-stepper" }, ngImport: i0, template: `
|
|
63
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: KbqStepper, isStandalone: true, selector: "kbq-stepper", outputs: { stepUp: "stepUp", stepDown: "stepDown" }, host: { classAttribute: "kbq-stepper" }, exportAs: ["kbqStepper"], ngImport: i0, template: `
|
|
42
64
|
<i
|
|
43
65
|
class="kbq-stepper-step-up"
|
|
44
|
-
[small]="true"
|
|
45
66
|
[tabindex]="-1"
|
|
46
67
|
[autoColor]="true"
|
|
47
68
|
[disabled]="control.disabled"
|
|
48
69
|
(mousedown)="onStepUp($event)"
|
|
49
70
|
color="contrast-fade"
|
|
50
|
-
kbq-icon-button="kbq-chevron-
|
|
71
|
+
kbq-icon-button="kbq-chevron-up-s_16"
|
|
51
72
|
></i>
|
|
52
73
|
<i
|
|
53
74
|
class="kbq-stepper-step-down"
|
|
54
|
-
[small]="true"
|
|
55
75
|
[tabindex]="-1"
|
|
56
76
|
[autoColor]="true"
|
|
57
77
|
[disabled]="control.disabled"
|
|
58
78
|
(mousedown)="onStepDown($event)"
|
|
59
79
|
color="contrast-fade"
|
|
60
|
-
kbq-icon-button="kbq-chevron-
|
|
80
|
+
kbq-icon-button="kbq-chevron-down-s_16"
|
|
61
81
|
></i>
|
|
62
|
-
`, isInline: true, styles: [".kbq-stepper{display:flex;flex-direction:column;justify-content:center;align-items:center;width:var(--kbq-form-field-size-
|
|
82
|
+
`, isInline: true, styles: [".kbq-stepper{display:flex;flex-direction:column;justify-content:center;align-items:center;width:var(--kbq-form-field-size-addon-width);height:100%}.kbq-stepper .kbq-stepper-step-up{margin-bottom:-2px}.kbq-stepper .kbq-stepper-step-down{margin-top:-2px}.kbq-stepper .kbq-stepper-step-up,.kbq-stepper .kbq-stepper-step-down{width:100%;text-align:center}\n"], dependencies: [{ kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i1.KbqIconButton, selector: "[kbq-icon-button]", inputs: ["small", "kbq-icon-button", "tabindex", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
63
83
|
}
|
|
64
84
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqStepper, decorators: [{
|
|
65
85
|
type: Component,
|
|
66
|
-
args: [{ selector: 'kbq-stepper', template: `
|
|
86
|
+
args: [{ standalone: true, selector: 'kbq-stepper', exportAs: 'kbqStepper', imports: [KbqIconModule], template: `
|
|
67
87
|
<i
|
|
68
88
|
class="kbq-stepper-step-up"
|
|
69
|
-
[small]="true"
|
|
70
89
|
[tabindex]="-1"
|
|
71
90
|
[autoColor]="true"
|
|
72
91
|
[disabled]="control.disabled"
|
|
73
92
|
(mousedown)="onStepUp($event)"
|
|
74
93
|
color="contrast-fade"
|
|
75
|
-
kbq-icon-button="kbq-chevron-
|
|
94
|
+
kbq-icon-button="kbq-chevron-up-s_16"
|
|
76
95
|
></i>
|
|
77
96
|
<i
|
|
78
97
|
class="kbq-stepper-step-down"
|
|
79
|
-
[small]="true"
|
|
80
98
|
[tabindex]="-1"
|
|
81
99
|
[autoColor]="true"
|
|
82
100
|
[disabled]="control.disabled"
|
|
83
101
|
(mousedown)="onStepDown($event)"
|
|
84
102
|
color="contrast-fade"
|
|
85
|
-
kbq-icon-button="kbq-chevron-
|
|
103
|
+
kbq-icon-button="kbq-chevron-down-s_16"
|
|
86
104
|
></i>
|
|
87
105
|
`, host: {
|
|
88
106
|
class: 'kbq-stepper'
|
|
89
|
-
}, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: [".kbq-stepper{display:flex;flex-direction:column;justify-content:center;align-items:center;width:var(--kbq-form-field-size-
|
|
107
|
+
}, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: [".kbq-stepper{display:flex;flex-direction:column;justify-content:center;align-items:center;width:var(--kbq-form-field-size-addon-width);height:100%}.kbq-stepper .kbq-stepper-step-up{margin-bottom:-2px}.kbq-stepper .kbq-stepper-step-down{margin-top:-2px}.kbq-stepper .kbq-stepper-step-up,.kbq-stepper .kbq-stepper-step-down{width:100%;text-align:center}\n"] }]
|
|
90
108
|
}], propDecorators: { stepUp: [{
|
|
91
109
|
type: Output
|
|
92
110
|
}], stepDown: [{
|
|
93
111
|
type: Output
|
|
94
112
|
}] } });
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZm9ybS1maWVsZC9zdGVwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7QUFVeEQscUVBQXFFO0FBQ3JFLE1BQU0sYUFBYSxHQUFHLENBQUMsT0FBcUMsRUFBNkIsRUFBRTtJQUN2RixPQUFPLFFBQVEsSUFBSSxPQUFPLElBQUksVUFBVSxJQUFJLE9BQU8sQ0FBQztBQUN4RCxDQUFDLENBQUM7QUFFRixNQUFNLHNDQUFzQyxHQUFHLEdBQVUsRUFBRTtJQUN2RCxPQUFPLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO0FBQy9ELENBQUMsQ0FBQztBQUVGLG9FQUFvRTtBQWlDcEUsTUFBTSxPQUFPLFVBQVU7SUFoQ3ZCO1FBaUNxQixjQUFTLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFNUUsK0NBQStDO1FBQzVCLFdBQU0sR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV6RSwrQ0FBK0M7UUFDNUIsYUFBUSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO0tBZ0Q5RTtJQTlDRzs7OztPQUlHO0lBQ0gsSUFBYyxPQUFPO1FBQ2pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDO1FBQ3hDLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFFbEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sc0NBQXNDLEVBQUUsQ0FBQztRQUNuRCxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsU0FBUyxDQUFDLFdBQTJCO1FBQ2pDLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUV6QixJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDdkIsV0FBVyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDekIsV0FBVyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRLENBQUMsTUFBa0I7UUFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNuQixNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsVUFBVSxDQUFDLE1BQWtCO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzVCLENBQUM7a0lBdERRLFVBQVU7c0hBQVYsVUFBVSwrTEEzQlQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FtQlQsMGFBcEJTLGFBQWE7OzRGQTRCZCxVQUFVO2tCQWhDdEIsU0FBUztpQ0FDTSxJQUFJLFlBQ04sYUFBYSxZQUNiLFlBQVksV0FDYixDQUFDLGFBQWEsQ0FBQyxZQUNkOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBbUJULFFBRUs7d0JBQ0YsS0FBSyxFQUFFLGFBQWE7cUJBQ3ZCLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJOzhCQU1sQixNQUFNO3NCQUF4QixNQUFNO2dCQUdZLFFBQVE7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgS0JRX0ZPUk1fRklFTERfUkVGIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2NvcmUnO1xuaW1wb3J0IHsgS2JxSWNvbk1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IEticUZvcm1GaWVsZENvbnRyb2wgfSBmcm9tICcuL2Zvcm0tZmllbGQtY29udHJvbCc7XG5cbi8vIEBUT0RPIFRlbXBvcmFyeSBzb2x1dGlvbiB0byByZXNvbHZlIGNpcmN1bGFyIGRlcGVuZGVuY3kgKCNEUy0zODkzKVxudHlwZSBLYnFOdW1iZXJJbnB1dCA9IEticUZvcm1GaWVsZENvbnRyb2w8dW5rbm93bj4gJiB7XG4gICAgc3RlcFVwOiAoc3RlcDogbnVtYmVyKSA9PiB2b2lkO1xuICAgIHN0ZXBEb3duOiAoc3RlcDogbnVtYmVyKSA9PiB2b2lkO1xuICAgIHN0ZXA6IG51bWJlcjtcbn07XG5cbi8vIEBUT0RPIFRlbXBvcmFyeSBzb2x1dGlvbiB0byByZXNvbHZlIGNpcmN1bGFyIGRlcGVuZGVuY3kgKCNEUy0zODkzKVxuY29uc3QgaXNOdW1iZXJJbnB1dCA9IChjb250cm9sOiBLYnFGb3JtRmllbGRDb250cm9sPHVua25vd24+KTogY29udHJvbCBpcyBLYnFOdW1iZXJJbnB1dCA9PiB7XG4gICAgcmV0dXJuICdzdGVwVXAnIGluIGNvbnRyb2wgJiYgJ3N0ZXBEb3duJyBpbiBjb250cm9sO1xufTtcblxuY29uc3QgZ2V0S2JxU3RlcHBlclRvZ2dsZU1pc3NpbmdDb250cm9sRXJyb3IgPSAoKTogRXJyb3IgPT4ge1xuICAgIHJldHVybiBFcnJvcigna2JxLXN0ZXBwZXIgc2hvdWxkIHVzZSB3aXRoIGticU51bWJlcklucHV0Jyk7XG59O1xuXG4vKiogQ29tcG9uZW50IHdoaWNoIGFsbG93IHRvIGluY3JlbWVudCBvciBkZWNyZW1lbnQgbnVtYmVyIHZhbHVlLiAqL1xuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ2ticS1zdGVwcGVyJyxcbiAgICBleHBvcnRBczogJ2ticVN0ZXBwZXInLFxuICAgIGltcG9ydHM6IFtLYnFJY29uTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8aVxuICAgICAgICAgICAgY2xhc3M9XCJrYnEtc3RlcHBlci1zdGVwLXVwXCJcbiAgICAgICAgICAgIFt0YWJpbmRleF09XCItMVwiXG4gICAgICAgICAgICBbYXV0b0NvbG9yXT1cInRydWVcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNvbnRyb2wuZGlzYWJsZWRcIlxuICAgICAgICAgICAgKG1vdXNlZG93bik9XCJvblN0ZXBVcCgkZXZlbnQpXCJcbiAgICAgICAgICAgIGNvbG9yPVwiY29udHJhc3QtZmFkZVwiXG4gICAgICAgICAgICBrYnEtaWNvbi1idXR0b249XCJrYnEtY2hldnJvbi11cC1zXzE2XCJcbiAgICAgICAgPjwvaT5cbiAgICAgICAgPGlcbiAgICAgICAgICAgIGNsYXNzPVwia2JxLXN0ZXBwZXItc3RlcC1kb3duXCJcbiAgICAgICAgICAgIFt0YWJpbmRleF09XCItMVwiXG4gICAgICAgICAgICBbYXV0b0NvbG9yXT1cInRydWVcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNvbnRyb2wuZGlzYWJsZWRcIlxuICAgICAgICAgICAgKG1vdXNlZG93bik9XCJvblN0ZXBEb3duKCRldmVudClcIlxuICAgICAgICAgICAgY29sb3I9XCJjb250cmFzdC1mYWRlXCJcbiAgICAgICAgICAgIGticS1pY29uLWJ1dHRvbj1cImticS1jaGV2cm9uLWRvd24tc18xNlwiXG4gICAgICAgID48L2k+XG4gICAgYCxcbiAgICBzdHlsZVVybHM6IFsnc3RlcHBlci5zY3NzJ10sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ticS1zdGVwcGVyJ1xuICAgIH0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBLYnFTdGVwcGVyIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1GaWVsZCA9IGluamVjdChLQlFfRk9STV9GSUVMRF9SRUYsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSBzdGVwcGVyIGlzIGluY3JlbWVudGVkLiAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSBzdGVwVXA6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIHN0ZXBwZXIgaXMgZGVjcmVtZW50ZWQuICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHN0ZXBEb3duOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBGb3JtIGZpZWxkIG51bWJlciBjb250cm9sLlxuICAgICAqXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBnZXQgY29udHJvbCgpOiBLYnFOdW1iZXJJbnB1dCB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmZvcm1GaWVsZD8uY29udHJvbDtcbiAgICAgICAgY29uc3QgaW5wdXQgPSBjb250cm9sLm51bWJlcklucHV0O1xuXG4gICAgICAgIGlmICghaXNOdW1iZXJJbnB1dChpbnB1dCkpIHtcbiAgICAgICAgICAgIHRocm93IGdldEticVN0ZXBwZXJUb2dnbGVNaXNzaW5nQ29udHJvbEVycm9yKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaW5wdXQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIGNvbm5lY3RUbyhudW1iZXJJbnB1dDogS2JxTnVtYmVySW5wdXQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFudW1iZXJJbnB1dCkgcmV0dXJuO1xuXG4gICAgICAgIHRoaXMuc3RlcFVwLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBudW1iZXJJbnB1dC5zdGVwVXAobnVtYmVySW5wdXQuc3RlcCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuc3RlcERvd24uc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIG51bWJlcklucHV0LnN0ZXBEb3duKG51bWJlcklucHV0LnN0ZXApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgb25TdGVwVXAoJGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RlcFVwLmVtaXQoKTtcbiAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIG9uU3RlcERvd24oJGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RlcERvd24uZW1pdCgpO1xuICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
import { Directive } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
+
/** Element to be placed at the end of the form field. */
|
|
3
4
|
export class KbqSuffix {
|
|
4
5
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqSuffix, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
5
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: KbqSuffix, selector: "[kbqSuffix]", ngImport: i0 }); }
|
|
6
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: KbqSuffix, isStandalone: true, selector: "[kbqSuffix]", host: { classAttribute: "kbq-suffix" }, ngImport: i0 }); }
|
|
6
7
|
}
|
|
7
8
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqSuffix, decorators: [{
|
|
8
9
|
type: Directive,
|
|
9
10
|
args: [{
|
|
10
|
-
|
|
11
|
+
standalone: true,
|
|
12
|
+
selector: '[kbqSuffix]',
|
|
13
|
+
host: {
|
|
14
|
+
class: 'kbq-suffix'
|
|
15
|
+
}
|
|
11
16
|
}]
|
|
12
17
|
}] });
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VmZml4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9mb3JtLWZpZWxkL3N1ZmZpeC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUxQyx5REFBeUQ7QUFRekQsTUFBTSxPQUFPLFNBQVM7a0lBQVQsU0FBUztzSEFBVCxTQUFTOzs0RkFBVCxTQUFTO2tCQVByQixTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsYUFBYTtvQkFDdkIsSUFBSSxFQUFFO3dCQUNGLEtBQUssRUFBRSxZQUFZO3FCQUN0QjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKiogRWxlbWVudCB0byBiZSBwbGFjZWQgYXQgdGhlIGVuZCBvZiB0aGUgZm9ybSBmaWVsZC4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdba2JxU3VmZml4XScsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ticS1zdWZmaXgnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBLYnFTdWZmaXgge31cbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChangeDetectorRef, Directive, forwardRef, Host, Inject, Optional, Self } from '@angular/core';
|
|
1
|
+
import { ChangeDetectorRef, Directive, ElementRef, forwardRef, Host, Inject, Optional, Self } from '@angular/core';
|
|
2
2
|
import { FormControlDirective, FormControlName, FormGroupDirective, NG_VALIDATORS, NgControl, NgForm, NgModel, RequiredValidator } from '@angular/forms';
|
|
3
3
|
import { KBQ_VALIDATION } from '@koobiq/components/core';
|
|
4
4
|
import { KbqFormFieldControl } from './form-field-control';
|
|
@@ -9,22 +9,19 @@ import * as i3 from "./form-field-control";
|
|
|
9
9
|
/**
|
|
10
10
|
* @deprecated Will be removed in next major release (#DS-2838)
|
|
11
11
|
*
|
|
12
|
-
* Legacy
|
|
12
|
+
* Legacy validation directive.
|
|
13
13
|
*
|
|
14
14
|
* ### How to disable?
|
|
15
15
|
*
|
|
16
16
|
* ```typescript
|
|
17
|
-
* import {
|
|
17
|
+
* import { kbqDisableLegacyValidationDirectiveProvider } from '@koobiq/components/core';
|
|
18
18
|
*
|
|
19
19
|
* @NgModule({
|
|
20
|
-
* providers: [
|
|
21
|
-
* {
|
|
22
|
-
* provide: KBQ_VALIDATION,
|
|
23
|
-
* useValue: { useValidation: false } satisfies KbqValidationOptions
|
|
24
|
-
* }
|
|
25
|
-
* ]
|
|
20
|
+
* providers: [kbqDisableLegacyValidationDirectiveProvider()]
|
|
26
21
|
* })
|
|
27
22
|
* ```
|
|
23
|
+
*
|
|
24
|
+
* @docs-private
|
|
28
25
|
*/
|
|
29
26
|
export class KbqValidateDirective {
|
|
30
27
|
get isNgModel() {
|
|
@@ -45,7 +42,7 @@ export class KbqValidateDirective {
|
|
|
45
42
|
get hasNotSubmittedParent() {
|
|
46
43
|
return this.parent && !this.parent.submitted;
|
|
47
44
|
}
|
|
48
|
-
constructor(formFieldControl, rawValidators, ngControl, parentForm, parentFormGroup, mcValidation, cdr, parentFormField) {
|
|
45
|
+
constructor(formFieldControl, rawValidators, ngControl, parentForm, parentFormGroup, mcValidation, cdr, parentFormField, elementRef) {
|
|
49
46
|
this.formFieldControl = formFieldControl;
|
|
50
47
|
this.rawValidators = rawValidators;
|
|
51
48
|
this.ngControl = ngControl;
|
|
@@ -54,10 +51,12 @@ export class KbqValidateDirective {
|
|
|
54
51
|
this.mcValidation = mcValidation;
|
|
55
52
|
this.cdr = cdr;
|
|
56
53
|
this.parentFormField = parentFormField;
|
|
57
|
-
this.
|
|
54
|
+
this.elementRef = elementRef;
|
|
58
55
|
}
|
|
59
56
|
ngAfterContentInit() {
|
|
60
57
|
if (this.mcValidation.useValidation) {
|
|
58
|
+
this.parentFormField?.elementRef.nativeElement.classList.add('kbq-form-field_has-validate-directive');
|
|
59
|
+
this.elementRef.nativeElement.classList.add('kbq-control_has-validate-directive');
|
|
61
60
|
this.setMosaicValidation();
|
|
62
61
|
}
|
|
63
62
|
}
|
|
@@ -140,12 +139,13 @@ export class KbqValidateDirective {
|
|
|
140
139
|
}
|
|
141
140
|
});
|
|
142
141
|
}
|
|
143
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqValidateDirective, deps: [{ token: forwardRef(() => KbqFormFieldControl) }, { token: NG_VALIDATORS, optional: true, self: true }, { token: i1.NgControl, optional: true, self: true }, { token: i1.NgForm, optional: true }, { token: i1.FormGroupDirective, optional: true }, { token: KBQ_VALIDATION, optional: true }, { token: i0.ChangeDetectorRef }, { token: i2.KbqFormField, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
144
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: KbqValidateDirective, selector: "\n input[kbqInput],\n input[kbqNumberInput],\n input[kbqInputPassword],\n input[kbqTimepicker],\n input[kbqDatepicker],\n textarea[kbqTextarea],\n kbq-select,\n kbq-tree-select,\n kbq-tag-list\n ",
|
|
142
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqValidateDirective, deps: [{ token: forwardRef(() => KbqFormFieldControl) }, { token: NG_VALIDATORS, optional: true, self: true }, { token: i1.NgControl, optional: true, self: true }, { token: i1.NgForm, optional: true }, { token: i1.FormGroupDirective, optional: true }, { token: KBQ_VALIDATION, optional: true }, { token: i0.ChangeDetectorRef }, { token: i2.KbqFormField, host: true, optional: true }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
143
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: KbqValidateDirective, isStandalone: true, selector: "\n input[kbqInput],\n input[kbqNumberInput],\n input[kbqInputPassword],\n input[kbqTimepicker],\n input[kbqDatepicker],\n textarea[kbqTextarea],\n kbq-select,\n kbq-tree-select,\n kbq-tag-list\n ", exportAs: ["KbqValidate"], ngImport: i0 }); }
|
|
145
144
|
}
|
|
146
145
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqValidateDirective, decorators: [{
|
|
147
146
|
type: Directive,
|
|
148
147
|
args: [{
|
|
148
|
+
standalone: true,
|
|
149
149
|
selector: `
|
|
150
150
|
input[kbqInput],
|
|
151
151
|
input[kbqNumberInput],
|
|
@@ -157,10 +157,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
157
157
|
kbq-tree-select,
|
|
158
158
|
kbq-tag-list
|
|
159
159
|
`,
|
|
160
|
-
exportAs: 'KbqValidate'
|
|
161
|
-
host: {
|
|
162
|
-
class: 'kbq-control_has-validate-directive'
|
|
163
|
-
}
|
|
160
|
+
exportAs: 'KbqValidate'
|
|
164
161
|
}]
|
|
165
162
|
}], ctorParameters: () => [{ type: i3.KbqFormFieldControl, decorators: [{
|
|
166
163
|
type: Inject,
|
|
@@ -189,5 +186,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
189
186
|
type: Optional
|
|
190
187
|
}, {
|
|
191
188
|
type: Host
|
|
192
|
-
}] }] });
|
|
193
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9mb3JtLWZpZWxkL3ZhbGlkYXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsSUFBSSxFQUNKLE1BQU0sRUFDTixRQUFRLEVBQ1IsSUFBSSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFSCxvQkFBb0IsRUFDcEIsZUFBZSxFQUNmLGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsU0FBUyxFQUNULE1BQU0sRUFDTixPQUFPLEVBQ1AsaUJBQWlCLEVBSXBCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGNBQWMsRUFBd0IsTUFBTSx5QkFBeUIsQ0FBQztBQUUvRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7QUFFM0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFrQkgsTUFBTSxPQUFPLG9CQUFvQjtJQUM3QixJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxTQUFTLFlBQVksT0FBTyxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLFlBQVksZUFBZSxDQUFDO0lBQ3JELENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDYixPQUFPLElBQUksQ0FBQyxTQUFTLFlBQVksb0JBQW9CLENBQUM7SUFDMUQsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDbkQsQ0FB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QyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2pGLENBQUM7WUFFRCxxQ0FBcUM7WUFDckMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDbEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2pGLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7a0lBeElRLG9CQUFvQixrQkEwQmpCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxhQUNqQixhQUFhLHNMQUlyQixjQUFjO3NIQS9CN0Isb0JBQW9COzs0RkFBcEIsb0JBQW9CO2tCQWpCaEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7S0FVVDtvQkFDRCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsSUFBSSxFQUFFO3dCQUNGLEtBQUssRUFBRSxvQ0FBb0M7cUJBQzlDO2lCQUNKOzswQkEyQlEsTUFBTTsyQkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUM7OzBCQUM1QyxRQUFROzswQkFBSSxJQUFJOzswQkFBSSxNQUFNOzJCQUFDLGFBQWE7OzBCQUN4QyxRQUFROzswQkFBSSxJQUFJOzswQkFDaEIsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxjQUFjOzswQkFFakMsUUFBUTs7MEJBQUksSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0LFxuICAgIEluamVjdCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdENvbnRyb2wsXG4gICAgRm9ybUNvbnRyb2xEaXJlY3RpdmUsXG4gICAgRm9ybUNvbnRyb2xOYW1lLFxuICAgIEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgICBOR19WQUxJREFUT1JTLFxuICAgIE5nQ29udHJvbCxcbiAgICBOZ0Zvcm0sXG4gICAgTmdNb2RlbCxcbiAgICBSZXF1aXJlZFZhbGlkYXRvcixcbiAgICBWYWxpZGF0aW9uRXJyb3JzLFxuICAgIFZhbGlkYXRvcixcbiAgICBWYWxpZGF0b3JGblxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBLQlFfVkFMSURBVElPTiwgS2JxVmFsaWRhdGlvbk9wdGlvbnMgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvY29yZSc7XG5pbXBvcnQgeyBLYnFGb3JtRmllbGQgfSBmcm9tICcuL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgS2JxRm9ybUZpZWxkQ29udHJvbCB9IGZyb20gJy4vZm9ybS1maWVsZC1jb250cm9sJztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlbW92ZWQgaW4gbmV4dCBtYWpvciByZWxlYXNlICgjRFMtMjgzOClcbiAqXG4gKiBMZWdhY3kgbW9zYWljIHZhbGlkYXRpb25cbiAqXG4gKiAjIyMgSG93IHRvIGRpc2FibGU/XG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgS0JRX1ZBTElEQVRJT04sIEticVZhbGlkYXRpb25PcHRpb25zIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2NvcmUnO1xuICpcbiAqIEBOZ01vZHVsZSh7XG4gKiAgICAgIHByb3ZpZGVyczogW1xuICogICAgICAgICAgIHtcbiAqICAgICAgICAgICAgICBwcm92aWRlOiBLQlFfVkFMSURBVElPTixcbiAqICAgICAgICAgICAgICB1c2VWYWx1ZTogeyB1c2VWYWxpZGF0aW9uOiBmYWxzZSB9IHNhdGlzZmllcyBLYnFWYWxpZGF0aW9uT3B0aW9uc1xuICogICAgICAgICAgIH1cbiAqICAgICAgXVxuICogfSlcbiAqIGBgYFxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogYFxuICAgICAgICBpbnB1dFtrYnFJbnB1dF0sXG4gICAgICAgIGlucHV0W2ticU51bWJlcklucHV0XSxcbiAgICAgICAgaW5wdXRba2JxSW5wdXRQYXNzd29yZF0sXG4gICAgICAgIGlucHV0W2ticVRpbWVwaWNrZXJdLFxuICAgICAgICBpbnB1dFtrYnFEYXRlcGlja2VyXSxcbiAgICAgICAgdGV4dGFyZWFba2JxVGV4dGFyZWFdLFxuICAgICAgICBrYnEtc2VsZWN0LFxuICAgICAgICBrYnEtdHJlZS1zZWxlY3QsXG4gICAgICAgIGticS10YWctbGlzdFxuICAgIGAsXG4gICAgZXhwb3J0QXM6ICdLYnFWYWxpZGF0ZScsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ticS1jb250cm9sX2hhcy12YWxpZGF0ZS1kaXJlY3RpdmUnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBLYnFWYWxpZGF0ZURpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAgIGdldCBpc05nTW9kZWwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm5nQ29udHJvbCBpbnN0YW5jZW9mIE5nTW9kZWw7XG4gICAgfVxuXG4gICAgZ2V0IGlzRm9ybUNvbnRyb2xOYW1lKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5uZ0NvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbE5hbWU7XG4gICAgfVxuXG4gICAgZ2V0IGlzRm9ybUNvbnRyb2woKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm5nQ29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sRGlyZWN0aXZlO1xuICAgIH1cblxuICAgIGdldCB2YWxpZGF0aW9uQ29udHJvbCgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2wgfHwgdGhpcy5uZ0NvbnRyb2w7XG4gICAgfVxuXG4gICAgZ2V0IHBhcmVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyZW50Rm9ybSB8fCB0aGlzLnBhcmVudEZvcm1Hcm91cDtcbiAgICB9XG5cbiAgICBnZXQgaGFzTm90U3VibWl0dGVkUGFyZW50KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wYXJlbnQgJiYgIXRoaXMucGFyZW50LnN1Ym1pdHRlZDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChmb3J3YXJkUmVmKCgpID0+IEticUZvcm1GaWVsZENvbnRyb2wpKSBwcml2YXRlIGZvcm1GaWVsZENvbnRyb2w6IEticUZvcm1GaWVsZENvbnRyb2w8YW55PixcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBASW5qZWN0KE5HX1ZBTElEQVRPUlMpIHB1YmxpYyByYXdWYWxpZGF0b3JzOiBWYWxpZGF0b3JbXSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwcml2YXRlIG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHBhcmVudEZvcm06IE5nRm9ybSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBwYXJlbnRGb3JtR3JvdXA6IEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChLQlFfVkFMSURBVElPTikgcHJpdmF0ZSBtY1ZhbGlkYXRpb246IEticVZhbGlkYXRpb25PcHRpb25zLFxuICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIEBIb3N0KCkgcHJpdmF0ZSByZWFkb25seSBwYXJlbnRGb3JtRmllbGQ6IEticUZvcm1GaWVsZCB8IG51bGxcbiAgICApIHtcbiAgICAgICAgdGhpcy5wYXJlbnRGb3JtRmllbGQ/LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdrYnEtZm9ybS1maWVsZF9oYXMtdmFsaWRhdGUtZGlyZWN0aXZlJyk7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICBpZiAodGhpcy5tY1ZhbGlkYXRpb24udXNlVmFsaWRhdGlvbikge1xuICAgICAgICAgICAgdGhpcy5zZXRNb3NhaWNWYWxpZGF0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRWYWxpZFN0YXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwgdmFsaWRhdG9yOiBWYWxpZGF0b3JGbik6IHZvaWQge1xuICAgICAgICBpZiAoIWNvbnRyb2wpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XG4gICAgICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgIGNvbnRyb2wuc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3IpO1xuICAgIH1cblxuICAgIC8qKiBUaGlzIGZ1bmN0aW9uIGRvIG5leHQ6XG4gICAgICogLSBydW4gdmFsaWRhdGlvbiBvbiBzdWJtaXR0aW5nIHBhcmVudCBmb3JtXG4gICAgICogLSBwcmV2ZW50IHZhbGlkYXRpb24gaW4gcmVxdWlyZWQgdmFsaWRhdG9yIGlmIGZvcm0gZG9lc24ndCBzdWJtaXR0ZWRcbiAgICAgKiAtIGlmIGNvbnRyb2wgaGFzIGZvY3VzIHZhbGlkYXRpb24gd2lsbCBiZSBwcmV2ZW50ZWRcbiAgICAgKi9cbiAgICBzZXRNb3NhaWNWYWxpZGF0aW9uKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMudmFsaWRhdGlvbkNvbnRyb2wpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnBhcmVudD8ub25TdWJtaXQpIHtcbiAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsU3VibWl0ID0gdGhpcy5wYXJlbnQub25TdWJtaXQ7XG5cbiAgICAgICAgICAgIHRoaXMucGFyZW50Lm9uU3VibWl0ID0gKCRldmVudDogRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25Db250cm9sIS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBvcmlnaW5hbFN1Ym1pdC5jYWxsKHRoaXMucGFyZW50LCAkZXZlbnQpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzTmdNb2RlbCkge1xuICAgICAgICAgICAgdGhpcy5zZXRNb3NhaWNWYWxpZGF0aW9uRm9yTW9kZWxDb250cm9sKCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc0Zvcm1Db250cm9sIHx8IHRoaXMuaXNGb3JtQ29udHJvbE5hbWUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0TW9zYWljVmFsaWRhdGlvbkZvckZvcm1Db250cm9sKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRNb3NhaWNWYWxpZGF0aW9uRm9yTW9kZWxDb250cm9sKCkge1xuICAgICAgICBpZiAoIXRoaXMucmF3VmFsaWRhdG9ycykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5yYXdWYWxpZGF0b3JzLmZvckVhY2goKHZhbGlkYXRvcjogVmFsaWRhdG9yKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBvcmlnaW5hbFZhbGlkYXRlID0gdmFsaWRhdG9yLnZhbGlkYXRlO1xuXG4gICAgICAgICAgICBpZiAodmFsaWRhdG9yIGluc3RhbmNlb2YgUmVxdWlyZWRWYWxpZGF0b3IpIHtcbiAgICAgICAgICAgICAgICAvLyBjaGFuZ2VkIHJlcXVpcmVkIHZhbGlkYXRpb24gbG9naWNcbiAgICAgICAgICAgICAgICB2YWxpZGF0b3IudmFsaWRhdGUgPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5oYXNOb3RTdWJtaXR0ZWRQYXJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsVmFsaWRhdGUuY2FsbCh2YWxpZGF0b3IsIGNvbnRyb2wpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIGNoYW5nZWQgYWxsIG90aGVyIHZhbGlkYXRpb24gbG9naWNcbiAgICAgICAgICAgICAgICB2YWxpZGF0b3IudmFsaWRhdGUgPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5mb3JtRmllbGRDb250cm9sLmZvY3VzZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsVmFsaWRhdGUuY2FsbCh2YWxpZGF0b3IsIGNvbnRyb2wpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNldE1vc2FpY1ZhbGlkYXRpb25Gb3JGb3JtQ29udHJvbCgpIHtcbiAgICAgICAgLy8gY2hhbmdlZCByZXF1aXJlZCB2YWxpZGF0aW9uIGxvZ2ljIGFmdGVyIGluaXRpYWxpemF0aW9uXG4gICAgICAgIGlmICh0aGlzLnZhbGlkYXRpb25Db250cm9sLmludmFsaWQgJiYgdGhpcy52YWxpZGF0aW9uQ29udHJvbC5lcnJvcnMhLnJlcXVpcmVkKSB7XG4gICAgICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFZhbGlkU3RhdGUodGhpcy52YWxpZGF0aW9uQ29udHJvbCwgdGhpcy52YWxpZGF0aW9uQ29udHJvbC52YWxpZGF0b3IpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjaGVjayBkeW5hbWljIHVwZGF0ZXNcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uQ29udHJvbC5zdGF0dXNDaGFuZ2VzIS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgLy8gY2hhbmdlZCByZXF1aXJlZCB2YWxpZGF0aW9uIGxvZ2ljXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uQ29udHJvbC5pbnZhbGlkICYmXG4gICAgICAgICAgICAgICAgdGhpcy5oYXNOb3RTdWJtaXR0ZWRQYXJlbnQgJiZcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25Db250cm9sLmVycm9ycyEucmVxdWlyZWRcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0VmFsaWRTdGF0ZSh0aGlzLnZhbGlkYXRpb25Db250cm9sLCB0aGlzLnZhbGlkYXRpb25Db250cm9sLnZhbGlkYXRvcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGNoYW5nZWQgYWxsIG90aGVyIHZhbGlkYXRpb24gbG9naWNcbiAgICAgICAgICAgIGlmICh0aGlzLnZhbGlkYXRpb25Db250cm9sLmludmFsaWQgJiYgdGhpcy5mb3JtRmllbGRDb250cm9sLmZvY3VzZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFZhbGlkU3RhdGUodGhpcy52YWxpZGF0aW9uQ29udHJvbCwgdGhpcy52YWxpZGF0aW9uQ29udHJvbC52YWxpZGF0b3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
|
|
189
|
+
}] }, { type: i0.ElementRef }] });
|
|
190
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9mb3JtLWZpZWxkL3ZhbGlkYXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLElBQUksRUFDSixNQUFNLEVBQ04sUUFBUSxFQUNSLElBQUksRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUgsb0JBQW9CLEVBQ3BCLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsYUFBYSxFQUNiLFNBQVMsRUFDVCxNQUFNLEVBQ04sT0FBTyxFQUNQLGlCQUFpQixFQUlwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxjQUFjLEVBQXdCLE1BQU0seUJBQXlCLENBQUM7QUFFL0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7O0FBRTNEOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBZ0JILE1BQU0sT0FBTyxvQkFBb0I7SUFDN0IsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsU0FBUyxZQUFZLE9BQU8sQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxZQUFZLGVBQWUsQ0FBQztJQUNyRCxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2IsT0FBTyxJQUFJLENBQUMsU0FBUyxZQUFZLG9CQUFvQixDQUFDO0lBQzFELENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDckQsQ0FBQztJQUVELElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDO0lB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QUFpQixDQUFDLE9BQU87Z0JBQzlCLElBQUksQ0FBQyxxQkFBcUI7Z0JBQzFCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFPLENBQUMsUUFBUSxFQUN6QyxDQUFDO2dCQUNDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNqRixDQUFDO1lBRUQscUNBQXFDO1lBQ3JDLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2xFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNqRixDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO2tJQTFJUSxvQkFBb0Isa0JBMEJqQixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUMsYUFDakIsYUFBYSxzTEFJckIsY0FBYztzSEEvQjdCLG9CQUFvQjs7NEZBQXBCLG9CQUFvQjtrQkFmaEMsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7Ozs7Ozs7O0tBVVQ7b0JBQ0QsUUFBUSxFQUFFLGFBQWE7aUJBQzFCOzswQkEyQlEsTUFBTTsyQkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUM7OzBCQUM1QyxRQUFROzswQkFBSSxJQUFJOzswQkFBSSxNQUFNOzJCQUFDLGFBQWE7OzBCQUN4QyxRQUFROzswQkFBSSxJQUFJOzswQkFDaEIsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxjQUFjOzswQkFFakMsUUFBUTs7MEJBQUksSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3QsXG4gICAgSW5qZWN0LFxuICAgIE9wdGlvbmFsLFxuICAgIFNlbGZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0Q29udHJvbCxcbiAgICBGb3JtQ29udHJvbERpcmVjdGl2ZSxcbiAgICBGb3JtQ29udHJvbE5hbWUsXG4gICAgRm9ybUdyb3VwRGlyZWN0aXZlLFxuICAgIE5HX1ZBTElEQVRPUlMsXG4gICAgTmdDb250cm9sLFxuICAgIE5nRm9ybSxcbiAgICBOZ01vZGVsLFxuICAgIFJlcXVpcmVkVmFsaWRhdG9yLFxuICAgIFZhbGlkYXRpb25FcnJvcnMsXG4gICAgVmFsaWRhdG9yLFxuICAgIFZhbGlkYXRvckZuXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEtCUV9WQUxJREFUSU9OLCBLYnFWYWxpZGF0aW9uT3B0aW9ucyB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9jb3JlJztcbmltcG9ydCB7IEticUZvcm1GaWVsZCB9IGZyb20gJy4vZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBLYnFGb3JtRmllbGRDb250cm9sIH0gZnJvbSAnLi9mb3JtLWZpZWxkLWNvbnRyb2wnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVtb3ZlZCBpbiBuZXh0IG1ham9yIHJlbGVhc2UgKCNEUy0yODM4KVxuICpcbiAqIExlZ2FjeSB2YWxpZGF0aW9uIGRpcmVjdGl2ZS5cbiAqXG4gKiAjIyMgSG93IHRvIGRpc2FibGU/XG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsga2JxRGlzYWJsZUxlZ2FjeVZhbGlkYXRpb25EaXJlY3RpdmVQcm92aWRlciB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9jb3JlJztcbiAqXG4gKiBATmdNb2R1bGUoe1xuICogICAgICBwcm92aWRlcnM6IFtrYnFEaXNhYmxlTGVnYWN5VmFsaWRhdGlvbkRpcmVjdGl2ZVByb3ZpZGVyKCldXG4gKiB9KVxuICogYGBgXG4gKlxuICogQGRvY3MtcHJpdmF0ZVxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiBgXG4gICAgICAgIGlucHV0W2ticUlucHV0XSxcbiAgICAgICAgaW5wdXRba2JxTnVtYmVySW5wdXRdLFxuICAgICAgICBpbnB1dFtrYnFJbnB1dFBhc3N3b3JkXSxcbiAgICAgICAgaW5wdXRba2JxVGltZXBpY2tlcl0sXG4gICAgICAgIGlucHV0W2ticURhdGVwaWNrZXJdLFxuICAgICAgICB0ZXh0YXJlYVtrYnFUZXh0YXJlYV0sXG4gICAgICAgIGticS1zZWxlY3QsXG4gICAgICAgIGticS10cmVlLXNlbGVjdCxcbiAgICAgICAga2JxLXRhZy1saXN0XG4gICAgYCxcbiAgICBleHBvcnRBczogJ0ticVZhbGlkYXRlJ1xufSlcbmV4cG9ydCBjbGFzcyBLYnFWYWxpZGF0ZURpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAgIGdldCBpc05nTW9kZWwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm5nQ29udHJvbCBpbnN0YW5jZW9mIE5nTW9kZWw7XG4gICAgfVxuXG4gICAgZ2V0IGlzRm9ybUNvbnRyb2xOYW1lKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5uZ0NvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbE5hbWU7XG4gICAgfVxuXG4gICAgZ2V0IGlzRm9ybUNvbnRyb2woKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm5nQ29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sRGlyZWN0aXZlO1xuICAgIH1cblxuICAgIGdldCB2YWxpZGF0aW9uQ29udHJvbCgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2wgfHwgdGhpcy5uZ0NvbnRyb2w7XG4gICAgfVxuXG4gICAgZ2V0IHBhcmVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyZW50Rm9ybSB8fCB0aGlzLnBhcmVudEZvcm1Hcm91cDtcbiAgICB9XG5cbiAgICBnZXQgaGFzTm90U3VibWl0dGVkUGFyZW50KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wYXJlbnQgJiYgIXRoaXMucGFyZW50LnN1Ym1pdHRlZDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChmb3J3YXJkUmVmKCgpID0+IEticUZvcm1GaWVsZENvbnRyb2wpKSBwcml2YXRlIGZvcm1GaWVsZENvbnRyb2w6IEticUZvcm1GaWVsZENvbnRyb2w8YW55PixcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBASW5qZWN0KE5HX1ZBTElEQVRPUlMpIHB1YmxpYyByYXdWYWxpZGF0b3JzOiBWYWxpZGF0b3JbXSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwcml2YXRlIG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHBhcmVudEZvcm06IE5nRm9ybSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBwYXJlbnRGb3JtR3JvdXA6IEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChLQlFfVkFMSURBVElPTikgcHJpdmF0ZSBtY1ZhbGlkYXRpb246IEticVZhbGlkYXRpb25PcHRpb25zLFxuICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIEBIb3N0KCkgcHJpdmF0ZSByZWFkb25seSBwYXJlbnRGb3JtRmllbGQ6IEticUZvcm1GaWVsZCB8IG51bGwsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZlxuICAgICkge31cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMubWNWYWxpZGF0aW9uLnVzZVZhbGlkYXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMucGFyZW50Rm9ybUZpZWxkPy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgna2JxLWZvcm0tZmllbGRfaGFzLXZhbGlkYXRlLWRpcmVjdGl2ZScpO1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgna2JxLWNvbnRyb2xfaGFzLXZhbGlkYXRlLWRpcmVjdGl2ZScpO1xuXG4gICAgICAgICAgICB0aGlzLnNldE1vc2FpY1ZhbGlkYXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldFZhbGlkU3RhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sLCB2YWxpZGF0b3I6IFZhbGlkYXRvckZuKTogdm9pZCB7XG4gICAgICAgIGlmICghY29udHJvbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcbiAgICAgICAgY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgY29udHJvbC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcik7XG4gICAgfVxuXG4gICAgLyoqIFRoaXMgZnVuY3Rpb24gZG8gbmV4dDpcbiAgICAgKiAtIHJ1biB2YWxpZGF0aW9uIG9uIHN1Ym1pdHRpbmcgcGFyZW50IGZvcm1cbiAgICAgKiAtIHByZXZlbnQgdmFsaWRhdGlvbiBpbiByZXF1aXJlZCB2YWxpZGF0b3IgaWYgZm9ybSBkb2Vzbid0IHN1Ym1pdHRlZFxuICAgICAqIC0gaWYgY29udHJvbCBoYXMgZm9jdXMgdmFsaWRhdGlvbiB3aWxsIGJlIHByZXZlbnRlZFxuICAgICAqL1xuICAgIHNldE1vc2FpY1ZhbGlkYXRpb24oKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy52YWxpZGF0aW9uQ29udHJvbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMucGFyZW50Py5vblN1Ym1pdCkge1xuICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxTdWJtaXQgPSB0aGlzLnBhcmVudC5vblN1Ym1pdDtcblxuICAgICAgICAgICAgdGhpcy5wYXJlbnQub25TdWJtaXQgPSAoJGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkNvbnRyb2whLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsU3VibWl0LmNhbGwodGhpcy5wYXJlbnQsICRldmVudCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNOZ01vZGVsKSB7XG4gICAgICAgICAgICB0aGlzLnNldE1vc2FpY1ZhbGlkYXRpb25Gb3JNb2RlbENvbnRyb2woKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzRm9ybUNvbnRyb2wgfHwgdGhpcy5pc0Zvcm1Db250cm9sTmFtZSkge1xuICAgICAgICAgICAgdGhpcy5zZXRNb3NhaWNWYWxpZGF0aW9uRm9yRm9ybUNvbnRyb2woKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldE1vc2FpY1ZhbGlkYXRpb25Gb3JNb2RlbENvbnRyb2woKSB7XG4gICAgICAgIGlmICghdGhpcy5yYXdWYWxpZGF0b3JzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJhd1ZhbGlkYXRvcnMuZm9yRWFjaCgodmFsaWRhdG9yOiBWYWxpZGF0b3IpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsVmFsaWRhdGUgPSB2YWxpZGF0b3IudmFsaWRhdGU7XG5cbiAgICAgICAgICAgIGlmICh2YWxpZGF0b3IgaW5zdGFuY2VvZiBSZXF1aXJlZFZhbGlkYXRvcikge1xuICAgICAgICAgICAgICAgIC8vIGNoYW5nZWQgcmVxdWlyZWQgdmFsaWRhdGlvbiBsb2dpY1xuICAgICAgICAgICAgICAgIHZhbGlkYXRvci52YWxpZGF0ZSA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmhhc05vdFN1Ym1pdHRlZFBhcmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3JpZ2luYWxWYWxpZGF0ZS5jYWxsKHZhbGlkYXRvciwgY29udHJvbCk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gY2hhbmdlZCBhbGwgb3RoZXIgdmFsaWRhdGlvbiBsb2dpY1xuICAgICAgICAgICAgICAgIHZhbGlkYXRvci52YWxpZGF0ZSA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmZvcm1GaWVsZENvbnRyb2wuZm9jdXNlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3JpZ2luYWxWYWxpZGF0ZS5jYWxsKHZhbGlkYXRvciwgY29udHJvbCk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2V0TW9zYWljVmFsaWRhdGlvbkZvckZvcm1Db250cm9sKCkge1xuICAgICAgICAvLyBjaGFuZ2VkIHJlcXVpcmVkIHZhbGlkYXRpb24gbG9naWMgYWZ0ZXIgaW5pdGlhbGl6YXRpb25cbiAgICAgICAgaWYgKHRoaXMudmFsaWRhdGlvbkNvbnRyb2wuaW52YWxpZCAmJiB0aGlzLnZhbGlkYXRpb25Db250cm9sLmVycm9ycyEucmVxdWlyZWQpIHtcbiAgICAgICAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0VmFsaWRTdGF0ZSh0aGlzLnZhbGlkYXRpb25Db250cm9sLCB0aGlzLnZhbGlkYXRpb25Db250cm9sLnZhbGlkYXRvcik7XG4gICAgICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNoZWNrIGR5bmFtaWMgdXBkYXRlc1xuICAgICAgICB0aGlzLnZhbGlkYXRpb25Db250cm9sLnN0YXR1c0NoYW5nZXMhLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAvLyBjaGFuZ2VkIHJlcXVpcmVkIHZhbGlkYXRpb24gbG9naWNcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25Db250cm9sLmludmFsaWQgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmhhc05vdFN1Ym1pdHRlZFBhcmVudCAmJlxuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkNvbnRyb2wuZXJyb3JzIS5yZXF1aXJlZFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRWYWxpZFN0YXRlKHRoaXMudmFsaWRhdGlvbkNvbnRyb2wsIHRoaXMudmFsaWRhdGlvbkNvbnRyb2wudmFsaWRhdG9yKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gY2hhbmdlZCBhbGwgb3RoZXIgdmFsaWRhdGlvbiBsb2dpY1xuICAgICAgICAgICAgaWYgKHRoaXMudmFsaWRhdGlvbkNvbnRyb2wuaW52YWxpZCAmJiB0aGlzLmZvcm1GaWVsZENvbnRyb2wuZm9jdXNlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0VmFsaWRTdGF0ZSh0aGlzLnZhbGlkYXRpb25Db250cm9sLCB0aGlzLnZhbGlkYXRpb25Db250cm9sLnZhbGlkYXRvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|