@koobiq/components 19.8.3 → 20.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/accordion/accordion-trigger.component.scss +0 -18
- package/accordion/accordion.component.scss +9 -2
- package/accordion/index.d.ts +238 -1
- package/actions-panel/index.d.ts +304 -5
- package/alert/_alert-theme.scss +0 -4
- package/alert/alert-tokens.scss +4 -4
- package/alert/index.d.ts +54 -1
- package/app-switcher/app-switcher-dropdown-app.scss +2 -0
- package/app-switcher/index.d.ts +239 -1
- package/autocomplete/index.d.ts +265 -1
- package/badge/index.d.ts +57 -1
- package/breadcrumbs/breadcrumbs.scss +4 -0
- package/breadcrumbs/index.d.ts +244 -1
- package/button/button-group.scss +42 -2
- package/button/index.d.ts +153 -1
- package/button-toggle/button-toggle.scss +23 -0
- package/button-toggle/index.d.ts +157 -1
- package/checkbox/checkbox.scss +5 -4
- package/checkbox/index.d.ts +159 -1
- package/clamped-text/index.d.ts +145 -4
- package/code-block/_code-block-theme.scss +0 -6
- package/code-block/code-block-tokens.scss +0 -2
- package/code-block/index.d.ts +383 -1
- package/content-panel/content-panel.scss +0 -8
- package/content-panel/index.d.ts +158 -2
- package/core/highlight/_highlight-theme.scss +9 -0
- package/core/index.d.ts +4794 -1
- package/core/styles/_koobiq-theme.scss +1 -0
- package/core/styles/common/_animation.scss +4 -0
- package/core/styles/common/_overlay.scss +3 -4
- package/core/styles/theming/_components-theming.scss +1 -63
- package/core/styles/theming/_scrollbar-theme.scss +4 -0
- package/datepicker/_datepicker-theme.scss +1 -1
- package/datepicker/datepicker-toggle.scss +3 -3
- package/datepicker/index.d.ts +699 -1
- package/divider/index.d.ts +20 -1
- package/dl/index.d.ts +38 -1
- package/dropdown/dropdown.scss +2 -2
- package/dropdown/index.d.ts +473 -1
- package/dynamic-translation/index.d.ts +81 -2
- package/ellipsis-center/index.d.ts +38 -1
- package/empty-state/index.d.ts +45 -1
- package/fesm2022/koobiq-components-accordion.mjs +104 -115
- package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
- package/fesm2022/koobiq-components-actions-panel.mjs +16 -16
- package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-alert.mjs +35 -49
- package/fesm2022/koobiq-components-alert.mjs.map +1 -1
- package/fesm2022/koobiq-components-app-switcher.mjs +82 -87
- package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
- package/fesm2022/koobiq-components-autocomplete.mjs +294 -304
- package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
- package/fesm2022/koobiq-components-badge.mjs +35 -42
- package/fesm2022/koobiq-components-badge.mjs.map +1 -1
- package/fesm2022/koobiq-components-breadcrumbs.mjs +79 -101
- package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/koobiq-components-button-toggle.mjs +92 -88
- package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-button.mjs +56 -51
- package/fesm2022/koobiq-components-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-checkbox.mjs +50 -52
- package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
- package/fesm2022/koobiq-components-clamped-text.mjs +46 -49
- package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
- package/fesm2022/koobiq-components-code-block.mjs +115 -136
- package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
- package/fesm2022/koobiq-components-content-panel.mjs +90 -107
- package/fesm2022/koobiq-components-content-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +2048 -703
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-datepicker.mjs +285 -349
- package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-divider.mjs +14 -25
- package/fesm2022/koobiq-components-divider.mjs.map +1 -1
- package/fesm2022/koobiq-components-dl.mjs +30 -31
- package/fesm2022/koobiq-components-dl.mjs.map +1 -1
- package/fesm2022/koobiq-components-dropdown.mjs +159 -160
- package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-dynamic-translation.mjs +23 -23
- package/fesm2022/koobiq-components-dynamic-translation.mjs.map +1 -1
- package/fesm2022/koobiq-components-ellipsis-center.mjs +16 -21
- package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-empty-state.mjs +35 -39
- package/fesm2022/koobiq-components-empty-state.mjs.map +1 -1
- package/fesm2022/koobiq-components-file-upload.mjs +160 -248
- package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
- package/fesm2022/koobiq-components-filter-bar.mjs +1160 -1184
- package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-flag.mjs +66 -0
- package/fesm2022/koobiq-components-flag.mjs.map +1 -0
- package/fesm2022/koobiq-components-form-field.mjs +211 -430
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-icon.mjs +42 -43
- package/fesm2022/koobiq-components-icon.mjs.map +1 -1
- package/fesm2022/koobiq-components-inline-edit.mjs +85 -61
- package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
- package/fesm2022/koobiq-components-input.mjs +116 -155
- package/fesm2022/koobiq-components-input.mjs.map +1 -1
- package/fesm2022/koobiq-components-link.mjs +38 -53
- package/fesm2022/koobiq-components-link.mjs.map +1 -1
- package/fesm2022/koobiq-components-list.mjs +138 -128
- package/fesm2022/koobiq-components-list.mjs.map +1 -1
- package/fesm2022/koobiq-components-loader-overlay.mjs +38 -45
- package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
- package/fesm2022/koobiq-components-markdown.mjs +31 -35
- package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-modal.mjs +174 -164
- package/fesm2022/koobiq-components-modal.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +164 -169
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-notification-center.mjs +80 -59
- package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-overflow-items.mjs +40 -36
- package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
- package/fesm2022/koobiq-components-popover.mjs +94 -85
- package/fesm2022/koobiq-components-popover.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-bar.mjs +24 -30
- package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-spinner.mjs +25 -32
- package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
- package/fesm2022/koobiq-components-radio.mjs +95 -85
- package/fesm2022/koobiq-components-radio.mjs.map +1 -1
- package/fesm2022/koobiq-components-resizer.mjs +17 -17
- package/fesm2022/koobiq-components-resizer.mjs.map +1 -1
- package/fesm2022/koobiq-components-scrollbar.mjs +69 -60
- package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-search-expandable.mjs +44 -35
- package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +279 -244
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidebar.mjs +63 -55
- package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidepanel.mjs +88 -128
- package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
- package/fesm2022/koobiq-components-skeleton.mjs +13 -13
- package/fesm2022/koobiq-components-skeleton.mjs.map +1 -1
- package/fesm2022/koobiq-components-split-button.mjs +29 -22
- package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-splitter.mjs +114 -96
- package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
- package/fesm2022/koobiq-components-table.mjs +23 -23
- package/fesm2022/koobiq-components-table.mjs.map +1 -1
- package/fesm2022/koobiq-components-tabs.mjs +260 -275
- package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
- package/fesm2022/koobiq-components-tags.mjs +179 -267
- package/fesm2022/koobiq-components-tags.mjs.map +1 -1
- package/fesm2022/koobiq-components-textarea.mjs +42 -68
- package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
- package/fesm2022/koobiq-components-time-range.mjs +65 -66
- package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
- package/fesm2022/koobiq-components-timepicker.mjs +46 -38
- package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-timezone.mjs +58 -58
- package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
- package/fesm2022/koobiq-components-title.mjs +150 -39
- package/fesm2022/koobiq-components-title.mjs.map +1 -1
- package/fesm2022/koobiq-components-toast.mjs +54 -69
- package/fesm2022/koobiq-components-toast.mjs.map +1 -1
- package/fesm2022/koobiq-components-toggle.mjs +51 -63
- package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-tooltip.mjs +141 -121
- package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
- package/fesm2022/koobiq-components-top-bar.mjs +22 -25
- package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree-select.mjs +264 -231
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree.mjs +273 -239
- package/fesm2022/koobiq-components-tree.mjs.map +1 -1
- package/fesm2022/koobiq-components-username.mjs +62 -49
- package/fesm2022/koobiq-components-username.mjs.map +1 -1
- package/file-upload/file-upload-tokens.scss +1 -0
- package/file-upload/index.d.ts +577 -1
- package/filter-bar/_filter-bar-theme.scss +86 -0
- package/filter-bar/filter-bar-tokens.scss +6 -0
- package/filter-bar/filter-bar.scss +10 -4
- package/filter-bar/filter-refresher.scss +1 -1
- package/filter-bar/filters.scss +23 -19
- package/filter-bar/index.d.ts +1165 -1
- package/filter-bar/pipes/base-pipe.scss +14 -35
- package/filter-bar/pipes/pipe-date.scss +20 -14
- package/filter-bar/pipes/pipe-multi-tree-select.scss +5 -3
- package/filter-bar/pipes/pipe-multiselect.scss +5 -3
- package/filter-bar/pipes/pipe-readonly.scss +4 -13
- package/filter-bar/pipes/pipe-select.scss +3 -1
- package/filter-bar/pipes/pipe-tree-select.scss +3 -1
- package/flag/flag.scss +53 -0
- package/flag/index.d.ts +44 -0
- package/form-field/index.d.ts +569 -1
- package/icon/index.d.ts +162 -1
- package/index.d.ts +2 -1
- package/inline-edit/index.d.ts +176 -2
- package/inline-edit/inline-edit.scss +7 -7
- package/input/index.d.ts +339 -1
- package/link/index.d.ts +56 -1
- package/link/link-tokens.scss +2 -2
- package/list/index.d.ts +229 -1
- package/loader-overlay/index.d.ts +57 -1
- package/loader-overlay/loader-overlay-tokens.scss +1 -1
- package/markdown/index.d.ts +68 -1
- package/modal/_modal-animation.scss +6 -6
- package/modal/_modal-theme.scss +3 -6
- package/modal/index.d.ts +313 -1
- package/modal/modal.scss +15 -0
- package/navbar/index.d.ts +305 -1
- package/navbar/navbar.scss +1 -2
- package/notification-center/index.d.ts +322 -1
- package/notification-center/notification-center.scss +14 -9
- package/notification-center/notification-item.scss +2 -1
- package/overflow-items/index.d.ts +162 -2
- package/package.json +13 -17
- package/popover/index.d.ts +182 -1
- package/popover/popover.scss +8 -12
- package/prebuilt-themes/dark-theme.css +1 -1
- package/prebuilt-themes/light-theme.css +1 -1
- package/prebuilt-themes/theme.css +1 -1
- package/progress-bar/index.d.ts +31 -1
- package/progress-bar/progress-bar.scss +4 -0
- package/progress-spinner/index.d.ts +37 -1
- package/progress-spinner/progress-spinner.scss +5 -1
- package/radio/index.d.ts +203 -1
- package/radio/radio.scss +18 -4
- package/resizer/index.d.ts +85 -2
- package/schematics/collection.json +10 -0
- package/schematics/migrations/css-selectors/index.js +1 -1
- package/schematics/migrations/deprecated-icons/index.js +1 -1
- package/schematics/migrations/filter-bar-signals/README.md +66 -0
- package/schematics/migrations/filter-bar-signals/data.js +72 -0
- package/schematics/migrations/filter-bar-signals/index.js +316 -0
- package/schematics/migrations/filter-bar-signals/schema.json +20 -0
- package/schematics/migrations/new-icons-pack/index.js +1 -1
- package/schematics/migrations/v20-upgrade/README.md +72 -0
- package/schematics/migrations/v20-upgrade/data.js +274 -0
- package/schematics/migrations/v20-upgrade/index.js +222 -0
- package/schematics/migrations/v20-upgrade/schema.json +20 -0
- package/schematics/migrations.json +15 -0
- package/schematics/ng-add/index.js +3 -4
- package/scrollbar/index.d.ts +136 -1
- package/search-expandable/index.d.ts +98 -1
- package/select/index.d.ts +701 -1
- package/sidebar/index.d.ts +93 -1
- package/sidepanel/index.d.ts +263 -1
- package/sidepanel/sidepanel.scss +0 -8
- package/skeleton/index.d.ts +26 -2
- package/skeleton/skeleton.scss +4 -0
- package/split-button/_split-button-theme.scss +2 -2
- package/split-button/index.d.ts +46 -1
- package/splitter/_splitter-theme.scss +2 -2
- package/splitter/index.d.ts +142 -1
- package/table/_table-theme.scss +4 -0
- package/table/index.d.ts +24 -1
- package/tabs/index.d.ts +647 -1
- package/tabs/tab-header.scss +1 -0
- package/tabs/tabs-tokens.scss +1 -1
- package/tags/index.d.ts +706 -1
- package/textarea/index.d.ts +133 -1
- package/time-range/index.d.ts +310 -7
- package/time-range/time-range.scss +0 -8
- package/timepicker/index.d.ts +193 -1
- package/timepicker/timepicker.scss +2 -2
- package/timezone/index.d.ts +123 -1
- package/title/index.d.ts +131 -1
- package/toast/index.d.ts +164 -1
- package/toggle/index.d.ts +84 -1
- package/tooltip/index.d.ts +211 -1
- package/top-bar/index.d.ts +33 -1
- package/top-bar/top-bar.scss +1 -2
- package/tree/_tree-theme.scss +2 -7
- package/tree/index.d.ts +733 -1
- package/tree/toggle.scss +5 -0
- package/tree/tree-option.scss +20 -11
- package/tree-select/_tree-select-theme.scss +1 -1
- package/tree-select/index.d.ts +384 -1
- package/username/index.d.ts +194 -5
- package/accordion/accordion-content.d.ts +0 -6
- package/accordion/accordion-content.directive.d.ts +0 -27
- package/accordion/accordion-header.d.ts +0 -6
- package/accordion/accordion-header.directive.d.ts +0 -7
- package/accordion/accordion-item.d.ts +0 -77
- package/accordion/accordion-trigger.component.d.ts +0 -24
- package/accordion/accordion-trigger.directive.d.ts +0 -21
- package/accordion/accordion.component.d.ts +0 -79
- package/accordion/accordion.module.d.ts +0 -12
- package/accordion/public-api.d.ts +0 -9
- package/actions-panel/actions-panel-config.d.ts +0 -82
- package/actions-panel/actions-panel-container.d.ts +0 -90
- package/actions-panel/actions-panel-ref.d.ts +0 -44
- package/actions-panel/actions-panel.d.ts +0 -85
- package/actions-panel/module.d.ts +0 -7
- package/alert/alert.component.d.ts +0 -43
- package/alert/alert.module.d.ts +0 -9
- package/alert/public-api.d.ts +0 -2
- package/app-switcher/app-switcher-animations.d.ts +0 -5
- package/app-switcher/app-switcher-dropdown-app.d.ts +0 -11
- package/app-switcher/app-switcher-dropdown-site.d.ts +0 -9
- package/app-switcher/app-switcher.d.ts +0 -198
- package/app-switcher/app-switcher.module.d.ts +0 -10
- package/app-switcher/kbq-app-switcher-list-item.d.ts +0 -16
- package/app-switcher/public-api.d.ts +0 -6
- package/autocomplete/autocomplete-origin.directive.d.ts +0 -12
- package/autocomplete/autocomplete-trigger.directive.d.ts +0 -169
- package/autocomplete/autocomplete.component.d.ts +0 -88
- package/autocomplete/autocomplete.module.d.ts +0 -12
- package/autocomplete/public-api.d.ts +0 -4
- package/badge/badge.component.d.ts +0 -46
- package/badge/badge.module.d.ts +0 -9
- package/badge/public-api.d.ts +0 -2
- package/breadcrumbs/breadcrumbs.d.ts +0 -121
- package/breadcrumbs/breadcrumbs.module.d.ts +0 -7
- package/breadcrumbs/breadcrumbs.types.d.ts +0 -22
- package/breadcrumbs/public-api.d.ts +0 -5
- package/breadcrumbs/roving-focus-group.directive.d.ts +0 -50
- package/breadcrumbs/roving-focus-item.directive.d.ts +0 -50
- package/breadcrumbs/utils.d.ts +0 -19
- package/button/button-group.d.ts +0 -45
- package/button/button-slots.d.ts +0 -11
- package/button/button.component.d.ts +0 -74
- package/button/button.dropdown-trigger.directive.d.ts +0 -14
- package/button/button.module.d.ts +0 -13
- package/button/public-api.d.ts +0 -5
- package/button-toggle/button-toggle.component.d.ts +0 -146
- package/button-toggle/button-toggle.module.d.ts +0 -9
- package/button-toggle/public-api.d.ts +0 -2
- package/checkbox/checkbox-config.d.ts +0 -13
- package/checkbox/checkbox-module.d.ts +0 -9
- package/checkbox/checkbox-required-validator.d.ts +0 -13
- package/checkbox/checkbox.d.ts +0 -128
- package/checkbox/public-api.d.ts +0 -4
- package/clamped-text/clamped-list.d.ts +0 -41
- package/clamped-text/clamped-text.d.ts +0 -65
- package/clamped-text/constants.d.ts +0 -34
- package/clamped-text/module.d.ts +0 -8
- package/code-block/code-block-highlight.d.ts +0 -98
- package/code-block/code-block.d.ts +0 -259
- package/code-block/code-block.module.d.ts +0 -7
- package/code-block/public-api.d.ts +0 -4
- package/code-block/types.d.ts +0 -36
- package/content-panel/content-panel.d.ts +0 -149
- package/content-panel/module.d.ts +0 -7
- package/core/animation/animation.d.ts +0 -37
- package/core/animation/fade-animations.d.ts +0 -2
- package/core/animation/index.d.ts +0 -3
- package/core/animation/select-animations.d.ts +0 -12
- package/core/common-behaviors/checkbox.d.ts +0 -5
- package/core/common-behaviors/clipboard.d.ts +0 -12
- package/core/common-behaviors/color.d.ts +0 -50
- package/core/common-behaviors/common-module.d.ts +0 -38
- package/core/common-behaviors/constructor.d.ts +0 -9
- package/core/common-behaviors/disabled.d.ts +0 -8
- package/core/common-behaviors/error-state.d.ts +0 -46
- package/core/common-behaviors/flex.d.ts +0 -4
- package/core/common-behaviors/hover.d.ts +0 -15
- package/core/common-behaviors/index.d.ts +0 -14
- package/core/common-behaviors/orientation.d.ts +0 -4
- package/core/common-behaviors/read-state.d.ts +0 -12
- package/core/common-behaviors/size.d.ts +0 -4
- package/core/common-behaviors/tabindex.d.ts +0 -8
- package/core/datetime/date-adapter.d.ts +0 -12
- package/core/datetime/date-formats.d.ts +0 -4
- package/core/datetime/index.d.ts +0 -2
- package/core/error/error-state-matcher.d.ts +0 -39
- package/core/form-field/field-sizing-content.d.ts +0 -21
- package/core/form-field/form-field-ref.d.ts +0 -28
- package/core/form-field/index.d.ts +0 -2
- package/core/formatters/date/formatter.d.ts +0 -11
- package/core/formatters/date/formatter.pipe.d.ts +0 -139
- package/core/formatters/filesize/config.d.ts +0 -66
- package/core/formatters/filesize/formatter.d.ts +0 -17
- package/core/formatters/filesize/index.d.ts +0 -3
- package/core/formatters/filesize/size.d.ts +0 -52
- package/core/formatters/index.d.ts +0 -13
- package/core/formatters/number/formatter.d.ts +0 -101
- package/core/forms/forms-module.d.ts +0 -7
- package/core/forms/forms.directive.d.ts +0 -22
- package/core/forms/index.d.ts +0 -3
- package/core/forms/validators.d.ts +0 -120
- package/core/highlight/highlight.pipe.d.ts +0 -10
- package/core/highlight/index.d.ts +0 -9
- package/core/line/line.d.ts +0 -23
- package/core/locales/en-US.d.ts +0 -176
- package/core/locales/es-LA.d.ts +0 -175
- package/core/locales/formatters.d.ts +0 -190
- package/core/locales/index.d.ts +0 -9
- package/core/locales/locale-service.d.ts +0 -1117
- package/core/locales/locale-service.module.d.ts +0 -6
- package/core/locales/pt-BR.d.ts +0 -175
- package/core/locales/ru-RU.d.ts +0 -176
- package/core/locales/tk-TM.d.ts +0 -176
- package/core/locales/types.d.ts +0 -77
- package/core/navbar/index.d.ts +0 -1
- package/core/navbar/rectangle-item.d.ts +0 -14
- package/core/option/action-container.d.ts +0 -5
- package/core/option/action.d.ts +0 -38
- package/core/option/index.d.ts +0 -5
- package/core/option/optgroup.d.ts +0 -16
- package/core/option/option-module.d.ts +0 -10
- package/core/option/option.d.ts +0 -170
- package/core/overlay/overlay-position-map.d.ts +0 -40
- package/core/pop-up/constants.d.ts +0 -56
- package/core/pop-up/focus-trap-strategy.d.ts +0 -5
- package/core/pop-up/index.d.ts +0 -5
- package/core/pop-up/pop-up-styles.d.ts +0 -2
- package/core/pop-up/pop-up-trigger.d.ts +0 -104
- package/core/pop-up/pop-up.d.ts +0 -57
- package/core/public-api.d.ts +0 -23
- package/core/select/common.d.ts +0 -59
- package/core/select/constants.d.ts +0 -22
- package/core/select/errors.d.ts +0 -19
- package/core/select/events.d.ts +0 -1
- package/core/select/index.d.ts +0 -4
- package/core/selection/constants.d.ts +0 -4
- package/core/selection/index.d.ts +0 -3
- package/core/selection/pseudo-checkbox/pseudo-checkbox.d.ts +0 -23
- package/core/selection/pseudo-checkbox/pseudo-checkbox.module.d.ts +0 -8
- package/core/services/measure-scrollbar.service.d.ts +0 -11
- package/core/services/theme.service.d.ts +0 -41
- package/core/title/index.d.ts +0 -1
- package/core/title/title-text-ref.d.ts +0 -6
- package/core/tokens/index.d.ts +0 -1
- package/core/tokens/window.d.ts +0 -5
- package/core/utils/dom.d.ts +0 -4
- package/core/utils/index.d.ts +0 -2
- package/core/utils/public-api.d.ts +0 -1
- package/core/utils/utils.d.ts +0 -25
- package/core/validation/index.d.ts +0 -1
- package/core/validation/validation.d.ts +0 -29
- package/core/version.d.ts +0 -2
- package/datepicker/calendar-body.component.d.ts +0 -55
- package/datepicker/calendar-header.component.d.ts +0 -51
- package/datepicker/calendar.component.d.ts +0 -89
- package/datepicker/datepicker-animations.d.ts +0 -9
- package/datepicker/datepicker-errors.d.ts +0 -2
- package/datepicker/datepicker-input.directive.d.ts +0 -221
- package/datepicker/datepicker-intl.d.ts +0 -32
- package/datepicker/datepicker-module.d.ts +0 -21
- package/datepicker/datepicker-toggle.component.d.ts +0 -57
- package/datepicker/datepicker.component.d.ts +0 -148
- package/datepicker/month-view.component.d.ts +0 -73
- package/datepicker/public-api.d.ts +0 -10
- package/divider/divider.component.d.ts +0 -18
- package/divider/divider.module.d.ts +0 -8
- package/divider/public-api.d.ts +0 -2
- package/dl/dl.component.d.ts +0 -26
- package/dl/dl.module.d.ts +0 -9
- package/dl/public-api.d.ts +0 -2
- package/dropdown/dropdown-animations.d.ts +0 -11
- package/dropdown/dropdown-content.directive.d.ts +0 -32
- package/dropdown/dropdown-errors.d.ts +0 -17
- package/dropdown/dropdown-item.component.d.ts +0 -52
- package/dropdown/dropdown-trigger.directive.d.ts +0 -167
- package/dropdown/dropdown.component.d.ts +0 -134
- package/dropdown/dropdown.module.d.ts +0 -13
- package/dropdown/dropdown.types.d.ts +0 -67
- package/dropdown/public-api.d.ts +0 -8
- package/dynamic-translation/dynamic-translation.d.ts +0 -72
- package/dynamic-translation/module.d.ts +0 -7
- package/ellipsis-center/ellipsis-center.directive.d.ts +0 -36
- package/ellipsis-center/public-api.d.ts +0 -1
- package/empty-state/empty-state.component.d.ts +0 -36
- package/empty-state/empty-state.module.d.ts +0 -9
- package/empty-state/public-api.d.ts +0 -2
- package/fesm2022/koobiq-components-navbar-ic.mjs +0 -863
- package/fesm2022/koobiq-components-navbar-ic.mjs.map +0 -1
- package/fesm2022/koobiq-components-risk-level.mjs +0 -75
- package/fesm2022/koobiq-components-risk-level.mjs.map +0 -1
- package/file-upload/dropzone.d.ts +0 -147
- package/file-upload/file-upload.d.ts +0 -102
- package/file-upload/file-upload.module.d.ts +0 -20
- package/file-upload/multiple-file-upload.component.d.ts +0 -138
- package/file-upload/primitives/file-drop.d.ts +0 -35
- package/file-upload/primitives/file-picker.d.ts +0 -82
- package/file-upload/primitives/index.d.ts +0 -2
- package/file-upload/public-api.d.ts +0 -7
- package/file-upload/single-file-upload.component.d.ts +0 -118
- package/filter-bar/filter-bar-button.d.ts +0 -14
- package/filter-bar/filter-bar.d.ts +0 -81
- package/filter-bar/filter-bar.module.d.ts +0 -17
- package/filter-bar/filter-bar.types.d.ts +0 -143
- package/filter-bar/filter-refresher.d.ts +0 -5
- package/filter-bar/filter-reset.d.ts +0 -15
- package/filter-bar/filter-search.d.ts +0 -54
- package/filter-bar/filter-search.scss +0 -12
- package/filter-bar/filters.d.ts +0 -122
- package/filter-bar/pipe-add.d.ts +0 -28
- package/filter-bar/pipe.directive.d.ts +0 -13
- package/filter-bar/pipes/base-pipe.d.ts +0 -74
- package/filter-bar/pipes/pipe-button.d.ts +0 -21
- package/filter-bar/pipes/pipe-date.d.ts +0 -65
- package/filter-bar/pipes/pipe-datetime.d.ts +0 -66
- package/filter-bar/pipes/pipe-multi-select.d.ts +0 -56
- package/filter-bar/pipes/pipe-multi-tree-select.d.ts +0 -67
- package/filter-bar/pipes/pipe-readonly.d.ts +0 -7
- package/filter-bar/pipes/pipe-select.d.ts +0 -30
- package/filter-bar/pipes/pipe-state.d.ts +0 -21
- package/filter-bar/pipes/pipe-text.d.ts +0 -26
- package/filter-bar/pipes/pipe-title.d.ts +0 -27
- package/filter-bar/pipes/pipe-tree-select.d.ts +0 -42
- package/filter-bar/public-api.d.ts +0 -21
- package/form-field/cleaner.d.ts +0 -11
- package/form-field/error.d.ts +0 -8
- package/form-field/fieldset.d.ts +0 -27
- package/form-field/form-field-control.d.ts +0 -40
- package/form-field/form-field.d.ts +0 -298
- package/form-field/form-field.module.d.ts +0 -19
- package/form-field/hint.d.ts +0 -15
- package/form-field/label.d.ts +0 -6
- package/form-field/password-hint.d.ts +0 -53
- package/form-field/password-toggle.d.ts +0 -56
- package/form-field/prefix.d.ts +0 -6
- package/form-field/public-api.d.ts +0 -15
- package/form-field/reactive-password-hint.d.ts +0 -20
- package/form-field/stepper.d.ts +0 -59
- package/form-field/suffix.d.ts +0 -6
- package/form-field/validate.directive.d.ts +0 -53
- package/icon/icon-button.component.d.ts +0 -28
- package/icon/icon-item.component.d.ts +0 -11
- package/icon/icon-registry-providers.d.ts +0 -34
- package/icon/icon-registry.d.ts +0 -50
- package/icon/icon.component.d.ts +0 -33
- package/icon/icon.module.d.ts +0 -9
- package/icon/public-api.d.ts +0 -6
- package/inline-edit/inline-edit.d.ts +0 -161
- package/inline-edit/module.d.ts +0 -7
- package/input/input-errors.d.ts +0 -1
- package/input/input-number-validators.d.ts +0 -35
- package/input/input-number.d.ts +0 -96
- package/input/input-password.d.ts +0 -99
- package/input/input-value-accessor.d.ts +0 -4
- package/input/input.d.ts +0 -109
- package/input/input.module.d.ts +0 -14
- package/input/public-api.d.ts +0 -6
- package/link/link.component.d.ts +0 -53
- package/link/link.module.d.ts +0 -8
- package/link/public-api.d.ts +0 -2
- package/list/list-selection.component.d.ts +0 -196
- package/list/list.component.d.ts +0 -18
- package/list/list.module.d.ts +0 -11
- package/list/public-api.d.ts +0 -3
- package/loader-overlay/loader-overlay.component.d.ts +0 -47
- package/loader-overlay/loader-overlay.module.d.ts +0 -10
- package/loader-overlay/public-api.d.ts +0 -2
- package/markdown/markdown.component.d.ts +0 -31
- package/markdown/markdown.module.d.ts +0 -7
- package/markdown/markdown.service.d.ts +0 -19
- package/markdown/markdown.values.d.ts +0 -10
- package/markdown/public-api.d.ts +0 -4
- package/modal/css-unit.pipe.d.ts +0 -7
- package/modal/modal-control.service.d.ts +0 -20
- package/modal/modal-ref.class.d.ts +0 -37
- package/modal/modal-util.d.ts +0 -15
- package/modal/modal.component.d.ts +0 -141
- package/modal/modal.directive.d.ts +0 -20
- package/modal/modal.module.d.ts +0 -15
- package/modal/modal.service.d.ts +0 -42
- package/modal/modal.type.d.ts +0 -72
- package/modal/public-api.d.ts +0 -6
- package/navbar/navbar-brand.component.d.ts +0 -41
- package/navbar/navbar-item.component.d.ts +0 -131
- package/navbar/navbar-toggle.component.d.ts +0 -23
- package/navbar/navbar.component.d.ts +0 -68
- package/navbar/navbar.module.d.ts +0 -15
- package/navbar/public-api.d.ts +0 -6
- package/navbar/vertical-navbar.component.d.ts +0 -47
- package/navbar-ic/_navbar-ic-theme.scss +0 -81
- package/navbar-ic/index.d.ts +0 -1
- package/navbar-ic/navbar-ic-divider.scss +0 -7
- package/navbar-ic/navbar-ic-header.d.ts +0 -22
- package/navbar-ic/navbar-ic-header.scss +0 -49
- package/navbar-ic/navbar-ic-item.d.ts +0 -144
- package/navbar-ic/navbar-ic-item.scss +0 -92
- package/navbar-ic/navbar-ic-tokens.scss +0 -22
- package/navbar-ic/navbar-ic.animation.d.ts +0 -3
- package/navbar-ic/navbar-ic.d.ts +0 -118
- package/navbar-ic/navbar-ic.module.d.ts +0 -14
- package/navbar-ic/navbar-ic.scss +0 -32
- package/navbar-ic/public-api.d.ts +0 -4
- package/notification-center/notification-center-animations.d.ts +0 -5
- package/notification-center/notification-center.d.ts +0 -184
- package/notification-center/notification-center.module.d.ts +0 -7
- package/notification-center/notification-center.service.d.ts +0 -115
- package/notification-center/notification-item.d.ts +0 -27
- package/notification-center/public-api.d.ts +0 -4
- package/overflow-items/module.d.ts +0 -7
- package/overflow-items/overflow-items.d.ts +0 -152
- package/popover/popover-animations.d.ts +0 -4
- package/popover/popover-confirm.component.d.ts +0 -28
- package/popover/popover.component.d.ts +0 -139
- package/popover/popover.module.d.ts +0 -14
- package/popover/public-api.d.ts +0 -4
- package/progress-bar/progress-bar.component.d.ts +0 -20
- package/progress-bar/progress-bar.module.d.ts +0 -8
- package/progress-bar/public-api.d.ts +0 -2
- package/progress-spinner/progress-spinner.component.d.ts +0 -26
- package/progress-spinner/progress-spinner.module.d.ts +0 -9
- package/progress-spinner/public-api.d.ts +0 -2
- package/public-api.d.ts +0 -1
- package/radio/public-api.d.ts +0 -2
- package/radio/radio.component.d.ts +0 -200
- package/radio/radio.module.d.ts +0 -8
- package/resizer/module.d.ts +0 -7
- package/resizer/resizer.d.ts +0 -75
- package/risk-level/_risk-level-theme.scss +0 -74
- package/risk-level/index.d.ts +0 -1
- package/risk-level/public-api.d.ts +0 -2
- package/risk-level/risk-level-tokens.scss +0 -33
- package/risk-level/risk-level.component.d.ts +0 -21
- package/risk-level/risk-level.component.scss +0 -22
- package/risk-level/risk-level.module.d.ts +0 -12
- package/scrollbar/public-api.d.ts +0 -4
- package/scrollbar/scrollbar.component.d.ts +0 -37
- package/scrollbar/scrollbar.directive.d.ts +0 -29
- package/scrollbar/scrollbar.module.d.ts +0 -8
- package/scrollbar/scrollbar.types.d.ts +0 -33
- package/search-expandable/public-api.d.ts +0 -2
- package/search-expandable/search-expandable.d.ts +0 -89
- package/search-expandable/search-expandable.module.d.ts +0 -7
- package/select/public-api.d.ts +0 -4
- package/select/select-common.d.ts +0 -30
- package/select/select-option.directive.d.ts +0 -21
- package/select/select.component.d.ts +0 -627
- package/select/select.module.d.ts +0 -17
- package/sidebar/public-api.d.ts +0 -2
- package/sidebar/sidebar-animations.d.ts +0 -8
- package/sidebar/sidebar.component.d.ts +0 -80
- package/sidebar/sidebar.module.d.ts +0 -8
- package/sidepanel/public-api.d.ts +0 -6
- package/sidepanel/sidepanel-animations.d.ts +0 -20
- package/sidepanel/sidepanel-config.d.ts +0 -43
- package/sidepanel/sidepanel-container.component.d.ts +0 -67
- package/sidepanel/sidepanel-directives.d.ts +0 -61
- package/sidepanel/sidepanel-ref.d.ts +0 -36
- package/sidepanel/sidepanel.module.d.ts +0 -14
- package/sidepanel/sidepanel.service.d.ts +0 -58
- package/skeleton/module.d.ts +0 -7
- package/skeleton/skeleton.d.ts +0 -17
- package/split-button/public-api.d.ts +0 -2
- package/split-button/split-button.d.ts +0 -37
- package/split-button/split-button.module.d.ts +0 -7
- package/splitter/public-api.d.ts +0 -2
- package/splitter/splitter.component.d.ts +0 -136
- package/splitter/splitter.module.d.ts +0 -8
- package/table/public-api.d.ts +0 -2
- package/table/table.component.d.ts +0 -12
- package/table/table.module.d.ts +0 -9
- package/tabs/paginated-tab-header.d.ts +0 -182
- package/tabs/public-api.d.ts +0 -10
- package/tabs/tab-body.component.d.ts +0 -95
- package/tabs/tab-content.directive.d.ts +0 -9
- package/tabs/tab-group.component.d.ts +0 -137
- package/tabs/tab-header.component.d.ts +0 -34
- package/tabs/tab-label-wrapper.directive.d.ts +0 -29
- package/tabs/tab-label.directive.d.ts +0 -11
- package/tabs/tab-nav-bar.d.ts +0 -91
- package/tabs/tab.component.d.ts +0 -70
- package/tabs/tabs-animations.d.ts +0 -4
- package/tabs/tabs.module.d.ts +0 -20
- package/tags/public-api.d.ts +0 -5
- package/tags/tag-default-options.d.ts +0 -13
- package/tags/tag-input.d.ts +0 -110
- package/tags/tag-list.component.d.ts +0 -373
- package/tags/tag-text-control.d.ts +0 -10
- package/tags/tag.component.d.ts +0 -272
- package/tags/tag.module.d.ts +0 -10
- package/textarea/public-api.d.ts +0 -2
- package/textarea/textarea.component.d.ts +0 -123
- package/textarea/textarea.module.d.ts +0 -10
- package/time-range/constants.d.ts +0 -19
- package/time-range/module.d.ts +0 -10
- package/time-range/time-range-editor.d.ts +0 -65
- package/time-range/time-range-title-as-form-field.d.ts +0 -41
- package/time-range/time-range-title.d.ts +0 -18
- package/time-range/time-range.d.ts +0 -78
- package/time-range/time-range.service.d.ts +0 -25
- package/time-range/types.d.ts +0 -69
- package/timepicker/public-api.d.ts +0 -3
- package/timepicker/timepicker.constants.d.ts +0 -22
- package/timepicker/timepicker.directive.d.ts +0 -159
- package/timepicker/timepicker.module.d.ts +0 -11
- package/timezone/cities-by-filter.pipe.d.ts +0 -7
- package/timezone/public-api.d.ts +0 -6
- package/timezone/timezone-option.component.d.ts +0 -15
- package/timezone/timezone-option.directive.d.ts +0 -22
- package/timezone/timezone-select.component.d.ts +0 -16
- package/timezone/timezone.models.d.ts +0 -16
- package/timezone/timezone.module.d.ts +0 -20
- package/timezone/timezone.utils.d.ts +0 -22
- package/timezone/utc-offset.pipe.d.ts +0 -9
- package/title/public-api.d.ts +0 -2
- package/title/title.directive.d.ts +0 -33
- package/title/title.module.d.ts +0 -8
- package/toast/public-api.d.ts +0 -5
- package/toast/toast-animations.d.ts +0 -5
- package/toast/toast-container.component.d.ts +0 -19
- package/toast/toast.component.d.ts +0 -41
- package/toast/toast.module.d.ts +0 -8
- package/toast/toast.service.d.ts +0 -61
- package/toast/toast.type.d.ts +0 -44
- package/toggle/public-api.d.ts +0 -2
- package/toggle/toggle.component.d.ts +0 -77
- package/toggle/toggle.module.d.ts +0 -8
- package/tooltip/public-api.d.ts +0 -2
- package/tooltip/tooltip.animations.d.ts +0 -8
- package/tooltip/tooltip.component.d.ts +0 -156
- package/tooltip/tooltip.module.d.ts +0 -7
- package/top-bar/module.d.ts +0 -7
- package/top-bar/public-api.d.ts +0 -2
- package/top-bar/top-bar.d.ts +0 -25
- package/tree/control/base-tree-control.d.ts +0 -40
- package/tree/control/flat-tree-control.d.ts +0 -55
- package/tree/control/flat-tree-control.filters.d.ts +0 -27
- package/tree/control/nested-tree-control.d.ts +0 -19
- package/tree/control/tree-control.d.ts +0 -44
- package/tree/data-source/flat-data-source.d.ts +0 -80
- package/tree/data-source/nested-data-source.d.ts +0 -15
- package/tree/node.d.ts +0 -34
- package/tree/outlet.d.ts +0 -9
- package/tree/padding.directive.d.ts +0 -45
- package/tree/public-api.d.ts +0 -16
- package/tree/toggle.d.ts +0 -28
- package/tree/tree-base.d.ts +0 -96
- package/tree/tree-errors.d.ts +0 -25
- package/tree/tree-option.component.d.ts +0 -89
- package/tree/tree-selection.component.d.ts +0 -156
- package/tree/tree.d.ts +0 -6
- package/tree/tree.module.d.ts +0 -16
- package/tree-select/public-api.d.ts +0 -2
- package/tree-select/tree-select.component.d.ts +0 -360
- package/tree-select/tree-select.module.d.ts +0 -15
- package/username/constants.d.ts +0 -15
- package/username/module.d.ts +0 -8
- package/username/types.d.ts +0 -62
- package/username/username.d.ts +0 -68
- package/username/username.pipe.d.ts +0 -23
|
@@ -1,35 +1,591 @@
|
|
|
1
|
-
import { trigger, state, transition, style, animate, group } from '@angular/animations';
|
|
2
1
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { inject, ElementRef, Directive, isDevMode, Input,
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
2
|
+
import { QueryList, inject, ElementRef, Directive, isDevMode, Input, ChangeDetectorRef, InjectionToken, LOCALE_ID, Type, Injectable, Renderer2, DestroyRef, afterNextRender, NgModule, Pipe, contentChildren, booleanAttribute, ViewEncapsulation, ChangeDetectionStrategy, Component, input, EventEmitter, Output, ViewChild, numberAttribute, signal, ApplicationRef, TemplateRef, NgZone, ViewContainerRef, RendererFactory2, Version } from '@angular/core';
|
|
3
|
+
import { Subject, Subscription, merge, fromEvent, map as map$1, BehaviorSubject, interval, pairwise } from 'rxjs';
|
|
4
|
+
import { tap, debounceTime, filter, map, distinctUntilChanged, delay } from 'rxjs/operators';
|
|
5
|
+
import { _getEventTarget, Platform } from '@angular/cdk/platform';
|
|
6
|
+
import { trigger, state, transition, style, animate, group } from '@angular/animations';
|
|
6
7
|
import { coerceBooleanProperty, coerceNumberProperty, coerceCssPixelValue } from '@angular/cdk/coercion';
|
|
7
8
|
import { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
8
|
-
import { merge, fromEvent, map, BehaviorSubject, Subject, interval, Subscription, pairwise } from 'rxjs';
|
|
9
|
-
import * as i1 from '@koobiq/date-adapter';
|
|
10
9
|
import { DateAdapter as DateAdapter$1 } from '@koobiq/date-adapter';
|
|
10
|
+
import { DOCUMENT } from '@angular/common';
|
|
11
11
|
import { DateFormatter as DateFormatter$1 } from '@koobiq/date-formatter';
|
|
12
|
-
import { Platform } from '@angular/cdk/platform';
|
|
13
12
|
import { FocusMonitor } from '@angular/cdk/a11y';
|
|
14
|
-
import {
|
|
15
|
-
import { Overlay, ScrollDispatcher, CdkScrollable } from '@angular/cdk/overlay';
|
|
13
|
+
import { SharedResizeObserver } from '@angular/cdk/observers/private';
|
|
14
|
+
import { Overlay, OverlayContainer, ScrollDispatcher, CdkScrollable } from '@angular/cdk/overlay';
|
|
16
15
|
import { TooltipSizeArrowSize } from '@koobiq/design-tokens';
|
|
16
|
+
import { Directionality } from '@angular/cdk/bidi';
|
|
17
17
|
import { ComponentPortal } from '@angular/cdk/portal';
|
|
18
|
+
import { ViewportRuler } from '@angular/cdk/scrolling';
|
|
18
19
|
import { AsyncScheduler } from 'rxjs/internal/scheduler/AsyncScheduler';
|
|
19
|
-
|
|
20
|
+
|
|
21
|
+
const MAC_ENTER = 3;
|
|
22
|
+
const BACKSPACE = 8;
|
|
23
|
+
const TAB = 9;
|
|
24
|
+
const NUM_CENTER = 12;
|
|
25
|
+
const ENTER = 13;
|
|
26
|
+
const SHIFT = 16;
|
|
27
|
+
const CONTROL = 17;
|
|
28
|
+
const ALT = 18;
|
|
29
|
+
const PAUSE = 19;
|
|
30
|
+
const CAPS_LOCK = 20;
|
|
31
|
+
const ESCAPE = 27;
|
|
32
|
+
const SPACE = 32;
|
|
33
|
+
const PAGE_UP = 33;
|
|
34
|
+
const PAGE_DOWN = 34;
|
|
35
|
+
const END = 35;
|
|
36
|
+
const HOME = 36;
|
|
37
|
+
const LEFT_ARROW = 37;
|
|
38
|
+
const UP_ARROW = 38;
|
|
39
|
+
const RIGHT_ARROW = 39;
|
|
40
|
+
const DOWN_ARROW = 40;
|
|
41
|
+
const PLUS_SIGN = 43;
|
|
42
|
+
const PRINT_SCREEN = 44;
|
|
43
|
+
const INSERT = 45;
|
|
44
|
+
const DELETE = 46;
|
|
45
|
+
const ZERO = 48;
|
|
46
|
+
const ONE = 49;
|
|
47
|
+
const TWO = 50;
|
|
48
|
+
const THREE = 51;
|
|
49
|
+
const FOUR = 52;
|
|
50
|
+
const FIVE = 53;
|
|
51
|
+
const SIX = 54;
|
|
52
|
+
const SEVEN = 55;
|
|
53
|
+
const EIGHT = 56;
|
|
54
|
+
const NINE = 57;
|
|
55
|
+
const FF_SEMICOLON = 59; // Firefox (Gecko) fires this for semicolon instead of 186
|
|
56
|
+
const FF_EQUALS = 61; // Firefox (Gecko) fires this for equals instead of 187
|
|
57
|
+
const QUESTION_MARK = 63;
|
|
58
|
+
const AT_SIGN = 64;
|
|
59
|
+
const A = 65;
|
|
60
|
+
const B = 66;
|
|
61
|
+
const C = 67;
|
|
62
|
+
const D = 68;
|
|
63
|
+
const E = 69;
|
|
64
|
+
const F = 70;
|
|
65
|
+
const G = 71;
|
|
66
|
+
const H = 72;
|
|
67
|
+
const I = 73;
|
|
68
|
+
const J = 74;
|
|
69
|
+
const K = 75;
|
|
70
|
+
const L = 76;
|
|
71
|
+
const M = 77;
|
|
72
|
+
const N = 78;
|
|
73
|
+
const O = 79;
|
|
74
|
+
const P = 80;
|
|
75
|
+
const Q = 81;
|
|
76
|
+
const R = 82;
|
|
77
|
+
const S = 83;
|
|
78
|
+
const T = 84;
|
|
79
|
+
const U = 85;
|
|
80
|
+
const V = 86;
|
|
81
|
+
const W = 87;
|
|
82
|
+
const X = 88;
|
|
83
|
+
const Y = 89;
|
|
84
|
+
const Z = 90;
|
|
85
|
+
const META = 91; // WIN_KEY_LEFT
|
|
86
|
+
const MAC_WK_CMD_LEFT = 91;
|
|
87
|
+
const MAC_WK_CMD_RIGHT = 93;
|
|
88
|
+
const CONTEXT_MENU = 93;
|
|
89
|
+
const NUMPAD_ZERO = 96;
|
|
90
|
+
const NUMPAD_ONE = 97;
|
|
91
|
+
const NUMPAD_TWO = 98;
|
|
92
|
+
const NUMPAD_THREE = 99;
|
|
93
|
+
const NUMPAD_FOUR = 100;
|
|
94
|
+
const NUMPAD_FIVE = 101;
|
|
95
|
+
const NUMPAD_SIX = 102;
|
|
96
|
+
const NUMPAD_SEVEN = 103;
|
|
97
|
+
const NUMPAD_EIGHT = 104;
|
|
98
|
+
const NUMPAD_NINE = 105;
|
|
99
|
+
const NUMPAD_MULTIPLY = 106;
|
|
100
|
+
const NUMPAD_PLUS = 107;
|
|
101
|
+
const NUMPAD_MINUS = 109;
|
|
102
|
+
const NUMPAD_PERIOD = 110;
|
|
103
|
+
const NUMPAD_DIVIDE = 111;
|
|
104
|
+
const F1 = 112;
|
|
105
|
+
const F2 = 113;
|
|
106
|
+
const F3 = 114;
|
|
107
|
+
const F4 = 115;
|
|
108
|
+
const F5 = 116;
|
|
109
|
+
const F6 = 117;
|
|
110
|
+
const F7 = 118;
|
|
111
|
+
const F8 = 119;
|
|
112
|
+
const F9 = 120;
|
|
113
|
+
const F10 = 121;
|
|
114
|
+
const F11 = 122;
|
|
115
|
+
const F12 = 123;
|
|
116
|
+
const NUM_LOCK = 144;
|
|
117
|
+
const SCROLL_LOCK = 145;
|
|
118
|
+
const FIRST_MEDIA = 166;
|
|
119
|
+
const FF_MINUS = 173;
|
|
120
|
+
const MUTE = 173; // Firefox (Gecko) fires 181 for MUTE
|
|
121
|
+
const VOLUME_DOWN = 174; // Firefox (Gecko) fires 182 for VOLUME_DOWN
|
|
122
|
+
const VOLUME_UP = 175; // Firefox (Gecko) fires 183 for VOLUME_UP
|
|
123
|
+
const FF_MUTE = 181;
|
|
124
|
+
const FF_VOLUME_DOWN = 182;
|
|
125
|
+
const LAST_MEDIA = 183;
|
|
126
|
+
const FF_VOLUME_UP = 183;
|
|
127
|
+
const SEMICOLON = 186; // Firefox (Gecko) fires 59 for SEMICOLON
|
|
128
|
+
const EQUALS = 187; // Firefox (Gecko) fires 61 for EQUALS
|
|
129
|
+
const COMMA = 188;
|
|
130
|
+
const DASH = 189; // Firefox (Gecko) fires 173 for DASH/MINUS
|
|
131
|
+
const PERIOD = 190;
|
|
132
|
+
const SLASH = 191;
|
|
133
|
+
const APOSTROPHE = 192;
|
|
134
|
+
const TILDE = 192;
|
|
135
|
+
const OPEN_SQUARE_BRACKET = 219;
|
|
136
|
+
const BACKSLASH = 220;
|
|
137
|
+
const CLOSE_SQUARE_BRACKET = 221;
|
|
138
|
+
const SINGLE_QUOTE = 222;
|
|
139
|
+
const MAC_META = 224;
|
|
140
|
+
function hasModifierKey(event, ...modifiers) {
|
|
141
|
+
if (modifiers.length) {
|
|
142
|
+
return modifiers.some((modifier) => event[modifier]);
|
|
143
|
+
}
|
|
144
|
+
return event.altKey || event.shiftKey || event.ctrlKey || event.metaKey;
|
|
145
|
+
}
|
|
146
|
+
function isControl(event) {
|
|
147
|
+
const keyCode = event.keyCode;
|
|
148
|
+
switch (keyCode) {
|
|
149
|
+
case SHIFT:
|
|
150
|
+
case CONTROL:
|
|
151
|
+
case ALT:
|
|
152
|
+
return true;
|
|
153
|
+
default:
|
|
154
|
+
return event.metaKey;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
function isNumberKey({ keyCode }) {
|
|
158
|
+
return keyCode >= ZERO && keyCode <= NINE;
|
|
159
|
+
}
|
|
160
|
+
function isNumpadKey({ keyCode }) {
|
|
161
|
+
return keyCode >= NUMPAD_ZERO && keyCode <= NUMPAD_NINE;
|
|
162
|
+
}
|
|
163
|
+
function isLetterKey({ keyCode }) {
|
|
164
|
+
return keyCode >= A && keyCode <= Z;
|
|
165
|
+
}
|
|
166
|
+
function isFunctionKey({ keyCode }) {
|
|
167
|
+
return keyCode >= F1 && keyCode <= F12;
|
|
168
|
+
}
|
|
169
|
+
function isVerticalMovement({ keyCode }) {
|
|
170
|
+
return [UP_ARROW, DOWN_ARROW, PAGE_DOWN, PAGE_UP, HOME, END].includes(keyCode);
|
|
171
|
+
}
|
|
172
|
+
function isHorizontalMovement({ keyCode }) {
|
|
173
|
+
return [LEFT_ARROW, RIGHT_ARROW, BACKSPACE, DELETE].includes(keyCode);
|
|
174
|
+
}
|
|
175
|
+
function isSelectAll(event) {
|
|
176
|
+
return (event.ctrlKey || event.metaKey) && event.keyCode === A;
|
|
177
|
+
}
|
|
178
|
+
function isCopy(event) {
|
|
179
|
+
return (event.ctrlKey || event.metaKey) && event.keyCode === C;
|
|
180
|
+
}
|
|
181
|
+
function isInput(event) {
|
|
182
|
+
const target = _getEventTarget(event);
|
|
183
|
+
return !!target && (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA');
|
|
184
|
+
}
|
|
185
|
+
function isLeftBracket(event) {
|
|
186
|
+
return event.code === 'BracketLeft';
|
|
187
|
+
}
|
|
188
|
+
function isRightBracket(event) {
|
|
189
|
+
return event.code === 'BracketRight';
|
|
190
|
+
}
|
|
191
|
+
function isDigit({ keyCode }) {
|
|
192
|
+
return [ZERO, ONE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE].includes(keyCode);
|
|
193
|
+
}
|
|
20
194
|
|
|
21
195
|
/**
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
* @docs-private
|
|
196
|
+
* This class manages keyboard events for selectable lists. If you pass it a query list
|
|
197
|
+
* of items, it will set the active item correctly when arrow events occur.
|
|
25
198
|
*/
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
199
|
+
class ListKeyManager {
|
|
200
|
+
// Index of the currently active item.
|
|
201
|
+
get activeItemIndex() {
|
|
202
|
+
return this._activeItemIndex;
|
|
203
|
+
}
|
|
204
|
+
// The active item.
|
|
205
|
+
get activeItem() {
|
|
206
|
+
return this._activeItem;
|
|
207
|
+
}
|
|
208
|
+
constructor(_items) {
|
|
209
|
+
this._items = _items;
|
|
210
|
+
/**
|
|
211
|
+
* Stream that emits any time the TAB key is pressed, so components can react
|
|
212
|
+
* when focus is shifted off of the list.
|
|
213
|
+
*/
|
|
214
|
+
this.tabOut = new Subject();
|
|
215
|
+
/** Stream that emits whenever the active item of the list manager changes. */
|
|
216
|
+
this.change = new Subject();
|
|
217
|
+
this.previousActiveItemIndex = -1;
|
|
218
|
+
this._activeItemIndex = -1;
|
|
219
|
+
this.wrap = false;
|
|
220
|
+
this.letterKeyStream = new Subject();
|
|
221
|
+
this.typeaheadSubscription = Subscription.EMPTY;
|
|
222
|
+
this.vertical = true;
|
|
223
|
+
this.scrollSize = 0;
|
|
224
|
+
// Buffer for the letters that the user has pressed when the typeahead option is turned on.
|
|
225
|
+
this.pressedLetters = [];
|
|
226
|
+
this.homeAndEnd = false;
|
|
227
|
+
this.allowedModifierKeys = [];
|
|
228
|
+
/**
|
|
229
|
+
* Predicate function that can be used to check whether an item should be skipped
|
|
230
|
+
* by the key manager. By default, disabled items are skipped.
|
|
231
|
+
*/
|
|
232
|
+
this.skipPredicateFn = (item) => item.disabled;
|
|
233
|
+
if (_items instanceof QueryList) {
|
|
234
|
+
_items.changes.subscribe((newItems) => {
|
|
235
|
+
if (this._activeItem) {
|
|
236
|
+
const itemArray = newItems.toArray();
|
|
237
|
+
const newIndex = itemArray.indexOf(this._activeItem);
|
|
238
|
+
if (newIndex > -1 && newIndex !== this._activeItemIndex) {
|
|
239
|
+
this._activeItemIndex = newIndex;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
/** Gets whether the user is currently typing into the manager using the typeahead feature. */
|
|
246
|
+
isTyping() {
|
|
247
|
+
return this.pressedLetters.length > 0;
|
|
248
|
+
}
|
|
249
|
+
withScrollSize(scrollSize) {
|
|
250
|
+
this.scrollSize = scrollSize;
|
|
251
|
+
return this;
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Modifier keys which are allowed to be held down and whose default actions will be prevented
|
|
255
|
+
* as the user is pressing the arrow keys. Defaults to not allowing any modifier keys.
|
|
256
|
+
*/
|
|
257
|
+
withAllowedModifierKeys(keys) {
|
|
258
|
+
this.allowedModifierKeys = keys;
|
|
259
|
+
return this;
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Turns on wrapping mode, which ensures that the active item will wrap to
|
|
263
|
+
* the other end of list when there are no more items in the given direction.
|
|
264
|
+
*/
|
|
265
|
+
withWrap(shouldWrap = true) {
|
|
266
|
+
this.wrap = shouldWrap;
|
|
267
|
+
return this;
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Sets the predicate function that determines which items should be skipped by the
|
|
271
|
+
* list key manager.
|
|
272
|
+
* @param predicate Function that determines whether the given item should be skipped.
|
|
273
|
+
*/
|
|
274
|
+
skipPredicate(predicate) {
|
|
275
|
+
this.skipPredicateFn = predicate;
|
|
276
|
+
return this;
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Configures whether the key manager should be able to move the selection vertically.
|
|
280
|
+
* @param enabled Whether vertical selection should be enabled.
|
|
281
|
+
*/
|
|
282
|
+
withVerticalOrientation(enabled = true) {
|
|
283
|
+
this.vertical = enabled;
|
|
284
|
+
return this;
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Configures the key manager to move the selection horizontally.
|
|
288
|
+
* Passing in `null` will disable horizontal movement.
|
|
289
|
+
* @param direction Direction in which the selection can be moved.
|
|
290
|
+
*/
|
|
291
|
+
withHorizontalOrientation(direction) {
|
|
292
|
+
this.horizontal = direction;
|
|
293
|
+
return this;
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Turns on typeahead mode which allows users to set the active item by typing.
|
|
297
|
+
* @param searchLetterIndex letter index for incremental search, if is -1 search is disabled
|
|
298
|
+
* @param debounceInterval Time to wait after the last keystroke before setting the active item.
|
|
299
|
+
*/
|
|
300
|
+
withTypeAhead(debounceInterval = 200, searchLetterIndex = 0) {
|
|
301
|
+
if (this._items.length && this._items.some((item) => typeof item.getLabel !== 'function')) {
|
|
302
|
+
throw Error('ListKeyManager items in typeahead mode must implement the `getLabel` method.');
|
|
303
|
+
}
|
|
304
|
+
this.typeaheadSubscription.unsubscribe();
|
|
305
|
+
// Debounce the presses of non-navigational keys, collect the ones that correspond to letters and convert those
|
|
306
|
+
// letters back into a string. Afterwards find the first item that starts with that string and select it.
|
|
307
|
+
this.typeaheadSubscription = this.letterKeyStream
|
|
308
|
+
.pipe(tap((keyCode) => this.pressedLetters.push(keyCode)), debounceTime(debounceInterval), filter(() => this.pressedLetters.length > 0), map(() => this.pressedLetters.join('')))
|
|
309
|
+
.subscribe((inputString) => {
|
|
310
|
+
if (searchLetterIndex === -1) {
|
|
311
|
+
this.pressedLetters = [];
|
|
312
|
+
return;
|
|
313
|
+
}
|
|
314
|
+
const items = this._items.toArray();
|
|
315
|
+
// Start at 1 because we want to start searching at the item immediately
|
|
316
|
+
// following the current active item.
|
|
317
|
+
for (let i = 1; i < items.length + 1; i++) {
|
|
318
|
+
const index = (this._activeItemIndex + i) % items.length;
|
|
319
|
+
const item = items[index];
|
|
320
|
+
if (!item.disabled &&
|
|
321
|
+
item.getLabel().toUpperCase().trim().indexOf(inputString) === searchLetterIndex) {
|
|
322
|
+
this.setActiveItem(index);
|
|
323
|
+
break;
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
this.pressedLetters = [];
|
|
327
|
+
});
|
|
328
|
+
return this;
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Configures the key manager to activate the first and last items
|
|
332
|
+
* respectively when the Home or End key is pressed.
|
|
333
|
+
* @param enabled Whether pressing the Home or End key activates the first/last item.
|
|
334
|
+
*/
|
|
335
|
+
withHomeAndEnd(enabled = true) {
|
|
336
|
+
this.homeAndEnd = enabled;
|
|
337
|
+
return this;
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* Sets the active item to the item at the index specified.
|
|
341
|
+
* @param item The index of the item to be set as active.
|
|
342
|
+
*/
|
|
343
|
+
setActiveItem(item) {
|
|
344
|
+
this.previousActiveItemIndex = this._activeItemIndex;
|
|
345
|
+
this.updateActiveItem(item);
|
|
346
|
+
if (this._activeItemIndex !== this.previousActiveItemIndex) {
|
|
347
|
+
this.change.next(this._activeItemIndex);
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
/**
|
|
351
|
+
* Sets the active item depending on the key event passed in.
|
|
352
|
+
* @param event Keyboard event to be used for determining which element should be active.
|
|
353
|
+
*/
|
|
354
|
+
onKeydown(event) {
|
|
355
|
+
const keyCode = event.keyCode;
|
|
356
|
+
const modifiers = ['altKey', 'ctrlKey', 'metaKey', 'shiftKey'];
|
|
357
|
+
const isModifierAllowed = modifiers.every((modifier) => {
|
|
358
|
+
return !event[modifier] || this.allowedModifierKeys.indexOf(modifier) > -1;
|
|
359
|
+
});
|
|
360
|
+
switch (keyCode) {
|
|
361
|
+
case TAB:
|
|
362
|
+
this.tabOut.next();
|
|
363
|
+
return;
|
|
364
|
+
case DOWN_ARROW:
|
|
365
|
+
if (this.vertical) {
|
|
366
|
+
this.setNextItemActive();
|
|
367
|
+
break;
|
|
368
|
+
}
|
|
369
|
+
else {
|
|
370
|
+
return;
|
|
371
|
+
}
|
|
372
|
+
case UP_ARROW:
|
|
373
|
+
if (this.vertical) {
|
|
374
|
+
this.setPreviousItemActive();
|
|
375
|
+
break;
|
|
376
|
+
}
|
|
377
|
+
else {
|
|
378
|
+
return;
|
|
379
|
+
}
|
|
380
|
+
case RIGHT_ARROW:
|
|
381
|
+
if (this.horizontal === 'ltr') {
|
|
382
|
+
this.setNextItemActive();
|
|
383
|
+
break;
|
|
384
|
+
}
|
|
385
|
+
else if (this.horizontal === 'rtl') {
|
|
386
|
+
this.setPreviousItemActive();
|
|
387
|
+
break;
|
|
388
|
+
}
|
|
389
|
+
else {
|
|
390
|
+
return;
|
|
391
|
+
}
|
|
392
|
+
case LEFT_ARROW:
|
|
393
|
+
if (this.horizontal === 'ltr') {
|
|
394
|
+
this.setPreviousItemActive();
|
|
395
|
+
break;
|
|
396
|
+
}
|
|
397
|
+
else if (this.horizontal === 'rtl') {
|
|
398
|
+
this.setNextItemActive();
|
|
399
|
+
break;
|
|
400
|
+
}
|
|
401
|
+
else {
|
|
402
|
+
return;
|
|
403
|
+
}
|
|
404
|
+
case HOME:
|
|
405
|
+
if (this.homeAndEnd && isModifierAllowed) {
|
|
406
|
+
this.setFirstItemActive();
|
|
407
|
+
break;
|
|
408
|
+
}
|
|
409
|
+
else {
|
|
410
|
+
return;
|
|
411
|
+
}
|
|
412
|
+
case END:
|
|
413
|
+
if (this.homeAndEnd && isModifierAllowed) {
|
|
414
|
+
this.setLastItemActive();
|
|
415
|
+
break;
|
|
416
|
+
}
|
|
417
|
+
else {
|
|
418
|
+
return;
|
|
419
|
+
}
|
|
420
|
+
default:
|
|
421
|
+
// Attempt to use the `event.key` which also maps it to the user's keyboard language,
|
|
422
|
+
// otherwise fall back to resolving alphanumeric characters via the keyCode.
|
|
423
|
+
if (event.key && event.key.length === 1) {
|
|
424
|
+
this.letterKeyStream.next(event.key.toLocaleUpperCase());
|
|
425
|
+
}
|
|
426
|
+
else if ((keyCode >= A && keyCode <= Z) || (keyCode >= ZERO && keyCode <= NINE)) {
|
|
427
|
+
this.letterKeyStream.next(String.fromCharCode(keyCode));
|
|
428
|
+
}
|
|
429
|
+
// Note that we return here, in order to avoid preventing
|
|
430
|
+
// the default action of non-navigational keys.
|
|
431
|
+
return;
|
|
432
|
+
}
|
|
433
|
+
this.pressedLetters = [];
|
|
434
|
+
event.preventDefault();
|
|
435
|
+
}
|
|
436
|
+
// Sets the active item to the first enabled item in the list.
|
|
437
|
+
setFirstItemActive() {
|
|
438
|
+
this.setActiveItemByIndex(0, 1);
|
|
439
|
+
}
|
|
440
|
+
// Sets the active item to the last enabled item in the list.
|
|
441
|
+
setLastItemActive() {
|
|
442
|
+
this.setActiveItemByIndex(this._items.length - 1, -1);
|
|
443
|
+
}
|
|
444
|
+
// Sets the active item to the next enabled item in the list.
|
|
445
|
+
setNextItemActive() {
|
|
446
|
+
if (this._activeItemIndex < 0) {
|
|
447
|
+
this.setFirstItemActive();
|
|
448
|
+
}
|
|
449
|
+
else {
|
|
450
|
+
this.setActiveItemByDelta(1);
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
// Sets the active item to a previous enabled item in the list.
|
|
454
|
+
setPreviousItemActive() {
|
|
455
|
+
if (this._activeItemIndex < 0 && this.wrap) {
|
|
456
|
+
this.setLastItemActive();
|
|
457
|
+
}
|
|
458
|
+
else {
|
|
459
|
+
this.setActiveItemByDelta(-1);
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
setNextPageItemActive(delta = this.scrollSize) {
|
|
463
|
+
const nextItemIndex = this._activeItemIndex + delta;
|
|
464
|
+
if (nextItemIndex >= this._items.length) {
|
|
465
|
+
this.setLastItemActive();
|
|
466
|
+
}
|
|
467
|
+
else {
|
|
468
|
+
this.setActiveItemByDelta(delta);
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
setPreviousPageItemActive(delta = this.scrollSize) {
|
|
472
|
+
const nextItemIndex = this._activeItemIndex - delta;
|
|
473
|
+
if (nextItemIndex <= 0) {
|
|
474
|
+
this.setFirstItemActive();
|
|
475
|
+
}
|
|
476
|
+
else {
|
|
477
|
+
this.setActiveItemByDelta(-delta);
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
updateActiveItem(item) {
|
|
481
|
+
const itemArray = this._items.toArray();
|
|
482
|
+
const index = typeof item === 'number' ? item : itemArray.indexOf(item);
|
|
483
|
+
this._activeItemIndex = index;
|
|
484
|
+
this._activeItem = itemArray[index];
|
|
485
|
+
}
|
|
486
|
+
/**
|
|
487
|
+
* This method sets the active item, given a list of items and the delta between the
|
|
488
|
+
* currently active item and the new active item. It will calculate differently
|
|
489
|
+
* depending on whether wrap mode is turned on.
|
|
490
|
+
*/
|
|
491
|
+
setActiveItemByDelta(delta) {
|
|
492
|
+
if (this.wrap) {
|
|
493
|
+
this.setActiveInWrapMode(delta);
|
|
494
|
+
}
|
|
495
|
+
else {
|
|
496
|
+
this.setActiveInDefaultMode(delta);
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
/**
|
|
500
|
+
* Sets the active item properly given "wrap" mode. In other words, it will continue to move
|
|
501
|
+
* down the list until it finds an item that is not disabled, and it will wrap if it
|
|
502
|
+
* encounters either end of the list.
|
|
503
|
+
*/
|
|
504
|
+
setActiveInWrapMode(delta) {
|
|
505
|
+
const items = this.getItemsArray();
|
|
506
|
+
for (let i = 1; i <= items.length; i++) {
|
|
507
|
+
const index = (this._activeItemIndex + delta * i + items.length) % items.length;
|
|
508
|
+
const item = items[index];
|
|
509
|
+
if (!this.skipPredicateFn(item)) {
|
|
510
|
+
this.setActiveItem(index);
|
|
511
|
+
return;
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
/**
|
|
516
|
+
* Sets the active item properly given the default mode. In other words, it will
|
|
517
|
+
* continue to move down the list until it finds an item that is not disabled. If
|
|
518
|
+
* it encounters either end of the list, it will stop and not wrap.
|
|
519
|
+
*/
|
|
520
|
+
setActiveInDefaultMode(delta) {
|
|
521
|
+
this.setActiveItemByIndex(this._activeItemIndex + delta, delta);
|
|
522
|
+
}
|
|
523
|
+
/**
|
|
524
|
+
* Sets the active item to the first enabled item starting at the index specified. If the
|
|
525
|
+
* item is disabled, it will move in the fallbackDelta direction until it either
|
|
526
|
+
* finds an enabled item or encounters the end of the list.
|
|
527
|
+
*/
|
|
528
|
+
setActiveItemByIndex(index, fallbackDelta) {
|
|
529
|
+
const items = this.getItemsArray();
|
|
530
|
+
if (!items[index]) {
|
|
531
|
+
return;
|
|
532
|
+
}
|
|
533
|
+
let curIndex = index;
|
|
534
|
+
while (this.skipPredicateFn(items[curIndex])) {
|
|
535
|
+
curIndex += fallbackDelta;
|
|
536
|
+
if (!items[curIndex]) {
|
|
537
|
+
return;
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
this.setActiveItem(curIndex);
|
|
541
|
+
}
|
|
542
|
+
/** Returns the items as an array. */
|
|
543
|
+
getItemsArray() {
|
|
544
|
+
return this._items instanceof QueryList ? this._items.toArray() : this._items;
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
class ActiveDescendantKeyManager extends ListKeyManager {
|
|
549
|
+
/**
|
|
550
|
+
* This method sets the active item to the item at the specified index.
|
|
551
|
+
* It also adds active styles to the newly active item and removes active
|
|
552
|
+
* styles from the previously active item.
|
|
553
|
+
*/
|
|
554
|
+
setActiveItem(index) {
|
|
555
|
+
if (this.activeItem) {
|
|
556
|
+
this.activeItem.setInactiveStyles();
|
|
557
|
+
}
|
|
558
|
+
super.setActiveItem(index);
|
|
559
|
+
if (this.activeItem) {
|
|
560
|
+
this.activeItem.setActiveStyles();
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
|
|
565
|
+
class FocusKeyManager extends ListKeyManager {
|
|
566
|
+
constructor() {
|
|
567
|
+
super(...arguments);
|
|
568
|
+
this.origin = 'program';
|
|
569
|
+
}
|
|
570
|
+
setActiveItem(item) {
|
|
571
|
+
super.setActiveItem(item);
|
|
572
|
+
if (this.activeItem) {
|
|
573
|
+
this.activeItem.focus(this.origin);
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
/**
|
|
577
|
+
* Sets the focus origin that will be passed in to the items for any subsequent `focus` calls.
|
|
578
|
+
* @param origin Focus origin to be used when focusing items.
|
|
579
|
+
*/
|
|
580
|
+
setFocusOrigin(origin) {
|
|
581
|
+
this.origin = origin;
|
|
582
|
+
return this;
|
|
583
|
+
}
|
|
584
|
+
getFocusOrigin() {
|
|
585
|
+
return this.origin;
|
|
586
|
+
}
|
|
587
|
+
}
|
|
588
|
+
|
|
33
589
|
/**
|
|
34
590
|
* Koobiq components animation curves
|
|
35
591
|
*
|
|
@@ -126,10 +682,10 @@ class KbqNormalizeWhitespace {
|
|
|
126
682
|
$event.clipboardData?.setData('text', value?.replace(/\u2009/g, ' '));
|
|
127
683
|
}
|
|
128
684
|
}
|
|
129
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
130
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
685
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqNormalizeWhitespace, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
686
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: KbqNormalizeWhitespace, isStandalone: true, selector: "[kbqNormalizeWhitespace]", host: { listeners: { "copy": "onCopy($event)" } }, ngImport: i0 }); }
|
|
131
687
|
}
|
|
132
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
688
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqNormalizeWhitespace, decorators: [{
|
|
133
689
|
type: Directive,
|
|
134
690
|
args: [{
|
|
135
691
|
selector: '[kbqNormalizeWhitespace]',
|
|
@@ -194,6 +750,8 @@ class KbqColorDirective {
|
|
|
194
750
|
get colorClassName() {
|
|
195
751
|
return `kbq-${this._color}`;
|
|
196
752
|
}
|
|
753
|
+
// TODO: Skipped for migration because:
|
|
754
|
+
// Accessor inputs cannot be migrated as they are too complex.
|
|
197
755
|
get color() {
|
|
198
756
|
return this._color;
|
|
199
757
|
}
|
|
@@ -218,104 +776,16 @@ class KbqColorDirective {
|
|
|
218
776
|
setDefaultColor(color) {
|
|
219
777
|
this.defaultColor = color;
|
|
220
778
|
}
|
|
221
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
222
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
779
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqColorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
780
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: KbqColorDirective, isStandalone: true, inputs: { color: "color" }, ngImport: i0 }); }
|
|
223
781
|
}
|
|
224
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
782
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqColorDirective, decorators: [{
|
|
225
783
|
type: Directive
|
|
226
784
|
}], ctorParameters: () => [], propDecorators: { color: [{
|
|
227
785
|
type: Input
|
|
228
786
|
}] } });
|
|
229
787
|
|
|
230
|
-
|
|
231
|
-
* An abstraction over the global `window` object.
|
|
232
|
-
*/
|
|
233
|
-
const KBQ_WINDOW = new InjectionToken('[KBQ_WINDOW]', {
|
|
234
|
-
factory: () => {
|
|
235
|
-
const _window = inject(DOCUMENT).defaultView ||
|
|
236
|
-
// Backward compatibility for older Angular versions
|
|
237
|
-
// https://github.com/angular/universal/blob/main/docs/gotchas.md#strategy-3-shims
|
|
238
|
-
// eslint-disable-next-line no-restricted-globals
|
|
239
|
-
window;
|
|
240
|
-
if (!_window) {
|
|
241
|
-
throw new Error('[KBQ_WINDOW] window is not available.');
|
|
242
|
-
}
|
|
243
|
-
return _window;
|
|
244
|
-
}
|
|
245
|
-
});
|
|
246
|
-
|
|
247
|
-
/**
|
|
248
|
-
* Injection token that configures whether the koobiq sanity checks are enabled.
|
|
249
|
-
*
|
|
250
|
-
* @deprecated No longer used and will be removed in next major release.
|
|
251
|
-
*
|
|
252
|
-
* @docs-private
|
|
253
|
-
*/
|
|
254
|
-
const KBQ_SANITY_CHECKS = new InjectionToken('kbq-sanity-checks', {
|
|
255
|
-
providedIn: 'root',
|
|
256
|
-
factory: mcSanityChecksFactory
|
|
257
|
-
});
|
|
258
|
-
/**
|
|
259
|
-
* @deprecated No longer used and will be removed in next major release.
|
|
260
|
-
*
|
|
261
|
-
* @docs-private
|
|
262
|
-
*/
|
|
263
|
-
function mcSanityChecksFactory() {
|
|
264
|
-
return true;
|
|
265
|
-
}
|
|
266
|
-
/**
|
|
267
|
-
* Module that captures anything that should be loaded and/or run for *all* Koobiq
|
|
268
|
-
* components. This includes Bidi, etc.
|
|
269
|
-
*
|
|
270
|
-
* @deprecated No longer used and will be removed in next major release.
|
|
271
|
-
*
|
|
272
|
-
* @docs-private
|
|
273
|
-
*/
|
|
274
|
-
class KbqCommonModule {
|
|
275
|
-
constructor(_sanityChecksEnabled) {
|
|
276
|
-
this._sanityChecksEnabled = _sanityChecksEnabled;
|
|
277
|
-
this.document = inject(DOCUMENT);
|
|
278
|
-
this.window = inject(KBQ_WINDOW);
|
|
279
|
-
// Whether we've done the global sanity checks (e.g. a theme is loaded, there is a doctype).
|
|
280
|
-
this.hasDoneGlobalChecks = false;
|
|
281
|
-
if (this.areChecksEnabled() && !this.hasDoneGlobalChecks) {
|
|
282
|
-
this.checkDoctypeIsDefined();
|
|
283
|
-
this.hasDoneGlobalChecks = true;
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
// Whether any sanity checks are enabled
|
|
287
|
-
areChecksEnabled() {
|
|
288
|
-
return this._sanityChecksEnabled && isDevMode() && !this.isTestEnv();
|
|
289
|
-
}
|
|
290
|
-
// Whether the code is running in tests.
|
|
291
|
-
isTestEnv() {
|
|
292
|
-
return !!(this.window && this.window['__jest__']);
|
|
293
|
-
}
|
|
294
|
-
checkDoctypeIsDefined() {
|
|
295
|
-
if (this.document && !this.document.doctype && isDevMode()) {
|
|
296
|
-
// eslint-disable-next-line no-console
|
|
297
|
-
console.warn('Current document does not have a doctype. This may cause ' +
|
|
298
|
-
'some koobiq components not to behave as expected.');
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqCommonModule, deps: [{ token: KBQ_SANITY_CHECKS, optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
302
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: KbqCommonModule, imports: [BidiModule], exports: [BidiModule] }); }
|
|
303
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqCommonModule, imports: [BidiModule, BidiModule] }); }
|
|
304
|
-
}
|
|
305
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqCommonModule, decorators: [{
|
|
306
|
-
type: NgModule,
|
|
307
|
-
args: [{
|
|
308
|
-
imports: [BidiModule],
|
|
309
|
-
exports: [BidiModule]
|
|
310
|
-
}]
|
|
311
|
-
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
312
|
-
type: Optional
|
|
313
|
-
}, {
|
|
314
|
-
type: Inject,
|
|
315
|
-
args: [KBQ_SANITY_CHECKS]
|
|
316
|
-
}] }] });
|
|
317
|
-
|
|
318
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
788
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
|
319
789
|
function mixinDisabled(base) {
|
|
320
790
|
return class extends base {
|
|
321
791
|
get disabled() {
|
|
@@ -415,14 +885,6 @@ const isElement = (value) => value instanceof Element;
|
|
|
415
885
|
const isHtmlElementOrNull = (value) => {
|
|
416
886
|
return isHtmlElement(value) || isNull(value);
|
|
417
887
|
};
|
|
418
|
-
/**
|
|
419
|
-
* Will be removed in the next major release
|
|
420
|
-
*
|
|
421
|
-
* @deprecated Use `booleanAttribute` instead
|
|
422
|
-
*/
|
|
423
|
-
function toBoolean(value) {
|
|
424
|
-
return value != null && `${value}` !== 'false';
|
|
425
|
-
}
|
|
426
888
|
const getNodesWithoutComments = (nodes) => {
|
|
427
889
|
const COMMENT_NODE = 8;
|
|
428
890
|
return Array.from(nodes).filter((node) => node.nodeType !== COMMENT_NODE);
|
|
@@ -446,20 +908,20 @@ class KbqHover {
|
|
|
446
908
|
/**
|
|
447
909
|
* Whether the element is hovered.
|
|
448
910
|
*/
|
|
449
|
-
this.hovered = toSignal(merge(fromEvent(this.element, 'mouseenter'), fromEvent(this.element, 'mouseleave')).pipe(map(({ type }) => type === 'mouseenter')), { initialValue: false });
|
|
911
|
+
this.hovered = toSignal(merge(fromEvent(this.element, 'mouseenter'), fromEvent(this.element, 'mouseleave')).pipe(map$1(({ type }) => type === 'mouseenter')), { initialValue: false });
|
|
450
912
|
}
|
|
451
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
452
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
913
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqHover, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
914
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: KbqHover, isStandalone: true, selector: "[kbqHover]", host: { properties: { "class.kbq-hovered": "hovered()" }, classAttribute: "kbq-hover" }, exportAs: ["kbqHover"], ngImport: i0 }); }
|
|
453
915
|
}
|
|
454
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
916
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqHover, decorators: [{
|
|
455
917
|
type: Directive,
|
|
456
918
|
args: [{
|
|
457
919
|
selector: '[kbqHover]',
|
|
458
|
-
exportAs: 'kbqHover',
|
|
459
920
|
host: {
|
|
460
921
|
class: 'kbq-hover',
|
|
461
922
|
'[class.kbq-hovered]': 'hovered()'
|
|
462
|
-
}
|
|
923
|
+
},
|
|
924
|
+
exportAs: 'kbqHover'
|
|
463
925
|
}]
|
|
464
926
|
}] });
|
|
465
927
|
|
|
@@ -478,10 +940,10 @@ class KbqReadStateDirective {
|
|
|
478
940
|
}
|
|
479
941
|
this.changeDetectorRef.markForCheck();
|
|
480
942
|
}
|
|
481
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
482
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
943
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqReadStateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
944
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: KbqReadStateDirective, isStandalone: true, host: { listeners: { "mouseenter": "mouseenterHandler()", "mouseleave": "mouseleaveHandler()", "click": "read.next(true)" } }, ngImport: i0 }); }
|
|
483
945
|
}
|
|
484
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
946
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqReadStateDirective, decorators: [{
|
|
485
947
|
type: Directive,
|
|
486
948
|
args: [{
|
|
487
949
|
host: {
|
|
@@ -550,10 +1012,10 @@ class ShowOnFormSubmitErrorStateMatcher {
|
|
|
550
1012
|
isErrorState(control, form) {
|
|
551
1013
|
return !!(control?.invalid && form?.submitted);
|
|
552
1014
|
}
|
|
553
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
554
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1015
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ShowOnFormSubmitErrorStateMatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1016
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ShowOnFormSubmitErrorStateMatcher }); }
|
|
555
1017
|
}
|
|
556
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1018
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ShowOnFormSubmitErrorStateMatcher, decorators: [{
|
|
557
1019
|
type: Injectable
|
|
558
1020
|
}] });
|
|
559
1021
|
/**
|
|
@@ -567,10 +1029,10 @@ class ShowRequiredOnSubmitErrorStateMatcher {
|
|
|
567
1029
|
? !!(control?.invalid && form?.submitted)
|
|
568
1030
|
: !!(control?.invalid && control.touched);
|
|
569
1031
|
}
|
|
570
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
571
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1032
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ShowRequiredOnSubmitErrorStateMatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1033
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ShowRequiredOnSubmitErrorStateMatcher }); }
|
|
572
1034
|
}
|
|
573
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1035
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ShowRequiredOnSubmitErrorStateMatcher, decorators: [{
|
|
574
1036
|
type: Injectable
|
|
575
1037
|
}] });
|
|
576
1038
|
/** Error state matcher that matches when a control is invalid and dirty or form is submitted. */
|
|
@@ -578,10 +1040,10 @@ class ShowOnControlDirtyErrorStateMatcher {
|
|
|
578
1040
|
isErrorState(control, form) {
|
|
579
1041
|
return !!(control?.invalid && (control.dirty || form?.submitted));
|
|
580
1042
|
}
|
|
581
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
582
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1043
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ShowOnControlDirtyErrorStateMatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1044
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ShowOnControlDirtyErrorStateMatcher }); }
|
|
583
1045
|
}
|
|
584
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1046
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ShowOnControlDirtyErrorStateMatcher, decorators: [{
|
|
585
1047
|
type: Injectable
|
|
586
1048
|
}] });
|
|
587
1049
|
/**
|
|
@@ -592,14 +1054,31 @@ class ErrorStateMatcher {
|
|
|
592
1054
|
isErrorState(control, form) {
|
|
593
1055
|
return !!(control?.invalid && (control.touched || form?.submitted));
|
|
594
1056
|
}
|
|
595
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
596
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1057
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ErrorStateMatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1058
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ErrorStateMatcher, providedIn: 'root' }); }
|
|
597
1059
|
}
|
|
598
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1060
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ErrorStateMatcher, decorators: [{
|
|
599
1061
|
type: Injectable,
|
|
600
1062
|
args: [{ providedIn: 'root' }]
|
|
601
1063
|
}] });
|
|
602
1064
|
|
|
1065
|
+
/**
|
|
1066
|
+
* An abstraction over the global `window` object.
|
|
1067
|
+
*/
|
|
1068
|
+
const KBQ_WINDOW = new InjectionToken('[KBQ_WINDOW]', {
|
|
1069
|
+
factory: () => {
|
|
1070
|
+
const _window = inject(DOCUMENT).defaultView ||
|
|
1071
|
+
// Backward compatibility for older Angular versions
|
|
1072
|
+
// https://github.com/angular/universal/blob/main/docs/gotchas.md#strategy-3-shims
|
|
1073
|
+
// eslint-disable-next-line no-restricted-globals
|
|
1074
|
+
window;
|
|
1075
|
+
if (!_window) {
|
|
1076
|
+
throw new Error('[KBQ_WINDOW] window is not available.');
|
|
1077
|
+
}
|
|
1078
|
+
return _window;
|
|
1079
|
+
}
|
|
1080
|
+
});
|
|
1081
|
+
|
|
603
1082
|
const INITIAL_PROPERTIES = {
|
|
604
1083
|
all: 'initial',
|
|
605
1084
|
position: 'absolute',
|
|
@@ -694,17 +1173,17 @@ class KbqFieldSizingContent {
|
|
|
694
1173
|
}
|
|
695
1174
|
return ruler.scrollWidth;
|
|
696
1175
|
}
|
|
697
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
698
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
1176
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqFieldSizingContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1177
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: KbqFieldSizingContent, isStandalone: true, selector: "[kbqFieldSizingContent]", host: { classAttribute: "kbq-field-sizing-content" }, exportAs: ["kbqFieldSizingContent"], ngImport: i0 }); }
|
|
699
1178
|
}
|
|
700
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1179
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqFieldSizingContent, decorators: [{
|
|
701
1180
|
type: Directive,
|
|
702
1181
|
args: [{
|
|
703
1182
|
selector: '[kbqFieldSizingContent]',
|
|
704
|
-
exportAs: 'kbqFieldSizingContent',
|
|
705
1183
|
host: {
|
|
706
1184
|
class: 'kbq-field-sizing-content'
|
|
707
|
-
}
|
|
1185
|
+
},
|
|
1186
|
+
exportAs: 'kbqFieldSizingContent'
|
|
708
1187
|
}]
|
|
709
1188
|
}], ctorParameters: () => [] });
|
|
710
1189
|
|
|
@@ -789,10 +1268,16 @@ const enUSLocaleData = {
|
|
|
789
1268
|
error: 'The search with such name already exists',
|
|
790
1269
|
errorHint: 'Could not save the filter. Try again or contact the administrator.',
|
|
791
1270
|
saveButton: 'Save',
|
|
792
|
-
cancelButton: 'Cancel'
|
|
1271
|
+
cancelButton: 'Cancel',
|
|
1272
|
+
actionsTooltip: 'Filter actions'
|
|
793
1273
|
},
|
|
794
1274
|
add: {
|
|
795
|
-
tooltip: 'Add filter'
|
|
1275
|
+
tooltip: 'Add filter',
|
|
1276
|
+
addedAnnouncement: '{{ name }} filter added'
|
|
1277
|
+
},
|
|
1278
|
+
refresher: {
|
|
1279
|
+
refresh: 'Refresh',
|
|
1280
|
+
settings: 'Refresh settings'
|
|
796
1281
|
},
|
|
797
1282
|
pipe: {
|
|
798
1283
|
clearButtonTooltip: 'Clear',
|
|
@@ -846,10 +1331,13 @@ const enUSLocaleData = {
|
|
|
846
1331
|
to: 'to',
|
|
847
1332
|
apply: 'Apply',
|
|
848
1333
|
cancel: 'Cancel',
|
|
849
|
-
rangeLabel: '
|
|
1334
|
+
rangeLabel: 'Period',
|
|
850
1335
|
allTime: 'for all time',
|
|
851
1336
|
currentQuarter: 'for the current quarter',
|
|
852
|
-
currentYear: 'for the current year'
|
|
1337
|
+
currentYear: 'for the current year',
|
|
1338
|
+
allTimeOption: 'All time',
|
|
1339
|
+
currentQuarterOption: 'Current quarter',
|
|
1340
|
+
currentYearOption: 'Current year'
|
|
853
1341
|
},
|
|
854
1342
|
durationTemplate: {
|
|
855
1343
|
title: {
|
|
@@ -891,31 +1379,31 @@ const enUSLocaleData = {
|
|
|
891
1379
|
LAST_PART_SEPARATOR: '',
|
|
892
1380
|
YEARS: `{years, plural,
|
|
893
1381
|
one {# year}
|
|
894
|
-
other {
|
|
1382
|
+
other {Last # years}
|
|
895
1383
|
}`,
|
|
896
1384
|
MONTHS: `{months, plural,
|
|
897
|
-
one {
|
|
898
|
-
other {
|
|
1385
|
+
one {Last month}
|
|
1386
|
+
other {Last # months}
|
|
899
1387
|
}`,
|
|
900
1388
|
WEEKS: `{weeks, plural,
|
|
901
|
-
one {
|
|
902
|
-
other {
|
|
1389
|
+
one {Last week}
|
|
1390
|
+
other {Last # weeks}
|
|
903
1391
|
}`,
|
|
904
1392
|
DAYS: `{days, plural,
|
|
905
|
-
one {
|
|
906
|
-
other {
|
|
1393
|
+
one {Last day}
|
|
1394
|
+
other {Last # days}
|
|
907
1395
|
}`,
|
|
908
1396
|
HOURS: `{hours, plural,
|
|
909
|
-
one {
|
|
910
|
-
other {
|
|
1397
|
+
one {Last hour}
|
|
1398
|
+
other {Last # hours}
|
|
911
1399
|
}`,
|
|
912
1400
|
MINUTES: `{minutes, plural,
|
|
913
|
-
one {
|
|
914
|
-
other {
|
|
1401
|
+
one {Last minute}
|
|
1402
|
+
other {Last # minutes}
|
|
915
1403
|
}`,
|
|
916
1404
|
SECONDS: `{seconds, plural,
|
|
917
|
-
one {
|
|
918
|
-
other {
|
|
1405
|
+
one {Last second}
|
|
1406
|
+
other {Last # seconds}
|
|
919
1407
|
}`,
|
|
920
1408
|
YEARS_FRACTION: `{years} years`,
|
|
921
1409
|
MONTHS_FRACTION: `{months} months`
|
|
@@ -1005,10 +1493,16 @@ const esLALocaleData = {
|
|
|
1005
1493
|
error: 'Ya existe una búsqueda con ese nombre',
|
|
1006
1494
|
errorHint: 'No se pudo guardar el filtro. Intente de nuevo o comuníquese con el administrador.',
|
|
1007
1495
|
saveButton: 'Guardar',
|
|
1008
|
-
cancelButton: 'Cancelar'
|
|
1496
|
+
cancelButton: 'Cancelar',
|
|
1497
|
+
actionsTooltip: 'Acciones de filtro'
|
|
1009
1498
|
},
|
|
1010
1499
|
add: {
|
|
1011
|
-
tooltip: 'Agregar filtro'
|
|
1500
|
+
tooltip: 'Agregar filtro',
|
|
1501
|
+
addedAnnouncement: 'Filtro {{ name }} agregado'
|
|
1502
|
+
},
|
|
1503
|
+
refresher: {
|
|
1504
|
+
refresh: 'Actualizar',
|
|
1505
|
+
settings: 'Configuración de actualización'
|
|
1012
1506
|
},
|
|
1013
1507
|
pipe: {
|
|
1014
1508
|
clearButtonTooltip: 'Borrar',
|
|
@@ -1062,10 +1556,13 @@ const esLALocaleData = {
|
|
|
1062
1556
|
to: 'a',
|
|
1063
1557
|
apply: 'Aplicar',
|
|
1064
1558
|
cancel: 'Cancelar',
|
|
1065
|
-
rangeLabel: '
|
|
1559
|
+
rangeLabel: 'Período',
|
|
1066
1560
|
allTime: 'por todo el tiempo',
|
|
1067
1561
|
currentQuarter: 'por el trimestre actual',
|
|
1068
|
-
currentYear: 'por el año actual'
|
|
1562
|
+
currentYear: 'por el año actual',
|
|
1563
|
+
allTimeOption: 'Todo el tiempo',
|
|
1564
|
+
currentQuarterOption: 'Trimestre actual',
|
|
1565
|
+
currentYearOption: 'Año actual'
|
|
1069
1566
|
},
|
|
1070
1567
|
durationTemplate: {
|
|
1071
1568
|
title: {
|
|
@@ -1107,31 +1604,31 @@ const esLALocaleData = {
|
|
|
1107
1604
|
LAST_PART_SEPARATOR: '',
|
|
1108
1605
|
YEARS: `{years, plural,
|
|
1109
1606
|
one {# año}
|
|
1110
|
-
other {
|
|
1607
|
+
other {Últimos # años}
|
|
1111
1608
|
}`,
|
|
1112
1609
|
MONTHS: `{months, plural,
|
|
1113
|
-
one {
|
|
1114
|
-
other {
|
|
1610
|
+
one {Último mes}
|
|
1611
|
+
other {Últimos # meses}
|
|
1115
1612
|
}`,
|
|
1116
1613
|
WEEKS: `{weeks, plural,
|
|
1117
|
-
one {
|
|
1118
|
-
other {
|
|
1614
|
+
one {Última semana}
|
|
1615
|
+
other {Últimas # semanas}
|
|
1119
1616
|
}`,
|
|
1120
1617
|
DAYS: `{days, plural,
|
|
1121
|
-
one {
|
|
1122
|
-
other {
|
|
1618
|
+
one {Último día}
|
|
1619
|
+
other {Últimos # días}
|
|
1123
1620
|
}`,
|
|
1124
1621
|
HOURS: `{hours, plural,
|
|
1125
|
-
one {
|
|
1126
|
-
other {
|
|
1622
|
+
one {Última hora}
|
|
1623
|
+
other {Últimas # horas}
|
|
1127
1624
|
}`,
|
|
1128
1625
|
MINUTES: `{minutes, plural,
|
|
1129
|
-
one {
|
|
1130
|
-
other {
|
|
1626
|
+
one {Último minuto}
|
|
1627
|
+
other {Últimos # minutos}
|
|
1131
1628
|
}`,
|
|
1132
1629
|
SECONDS: `{seconds, plural,
|
|
1133
|
-
one {
|
|
1134
|
-
other {
|
|
1630
|
+
one {Último segundo}
|
|
1631
|
+
other {Últimos # segundos}
|
|
1135
1632
|
}`,
|
|
1136
1633
|
YEARS_FRACTION: `{years} años`,
|
|
1137
1634
|
MONTHS_FRACTION: `{months} meses`
|
|
@@ -1221,10 +1718,16 @@ const ptBRLocaleData = {
|
|
|
1221
1718
|
error: 'A busca com esse nome já existe',
|
|
1222
1719
|
errorHint: 'O filtro não pôde ser salvo. Tente de novo ou entre em contato com o administrador.',
|
|
1223
1720
|
saveButton: 'Salvar',
|
|
1224
|
-
cancelButton: 'Cancelar'
|
|
1721
|
+
cancelButton: 'Cancelar',
|
|
1722
|
+
actionsTooltip: 'Ações do filtro'
|
|
1225
1723
|
},
|
|
1226
1724
|
add: {
|
|
1227
|
-
tooltip: 'Adicionar filtros'
|
|
1725
|
+
tooltip: 'Adicionar filtros',
|
|
1726
|
+
addedAnnouncement: 'Filtro {{ name }} adicionado'
|
|
1727
|
+
},
|
|
1728
|
+
refresher: {
|
|
1729
|
+
refresh: 'Atualizar',
|
|
1730
|
+
settings: 'Configurações de atualização'
|
|
1228
1731
|
},
|
|
1229
1732
|
pipe: {
|
|
1230
1733
|
clearButtonTooltip: 'Apagar',
|
|
@@ -1278,10 +1781,13 @@ const ptBRLocaleData = {
|
|
|
1278
1781
|
to: 'até',
|
|
1279
1782
|
apply: 'Aplicar',
|
|
1280
1783
|
cancel: 'Cancelar',
|
|
1281
|
-
rangeLabel: '
|
|
1784
|
+
rangeLabel: 'Período',
|
|
1282
1785
|
allTime: 'por todo o tempo',
|
|
1283
1786
|
currentQuarter: 'pelo trimestre atual',
|
|
1284
|
-
currentYear: 'pelo ano atual'
|
|
1787
|
+
currentYear: 'pelo ano atual',
|
|
1788
|
+
allTimeOption: 'Todo o tempo',
|
|
1789
|
+
currentQuarterOption: 'Trimestre atual',
|
|
1790
|
+
currentYearOption: 'Ano atual'
|
|
1285
1791
|
},
|
|
1286
1792
|
durationTemplate: {
|
|
1287
1793
|
title: {
|
|
@@ -1323,31 +1829,31 @@ const ptBRLocaleData = {
|
|
|
1323
1829
|
LAST_PART_SEPARATOR: '',
|
|
1324
1830
|
YEARS: `{years, plural,
|
|
1325
1831
|
one {# ano}
|
|
1326
|
-
other {
|
|
1832
|
+
other {Últimos # anos}
|
|
1327
1833
|
}`,
|
|
1328
1834
|
MONTHS: `{months, plural,
|
|
1329
|
-
one {
|
|
1330
|
-
other {
|
|
1835
|
+
one {Último mês}
|
|
1836
|
+
other {Últimos # meses}
|
|
1331
1837
|
}`,
|
|
1332
1838
|
WEEKS: `{weeks, plural,
|
|
1333
|
-
one {
|
|
1334
|
-
other {
|
|
1839
|
+
one {Última semana}
|
|
1840
|
+
other {Últimas # semanas}
|
|
1335
1841
|
}`,
|
|
1336
1842
|
DAYS: `{days, plural,
|
|
1337
|
-
one {
|
|
1338
|
-
other {
|
|
1843
|
+
one {Último dia}
|
|
1844
|
+
other {Últimos # dias}
|
|
1339
1845
|
}`,
|
|
1340
1846
|
HOURS: `{hours, plural,
|
|
1341
|
-
one {
|
|
1342
|
-
other {
|
|
1847
|
+
one {Última hora}
|
|
1848
|
+
other {Últimas # horas}
|
|
1343
1849
|
}`,
|
|
1344
1850
|
MINUTES: `{minutes, plural,
|
|
1345
|
-
one {
|
|
1346
|
-
other {
|
|
1851
|
+
one {Último minuto}
|
|
1852
|
+
other {Últimos # minutos}
|
|
1347
1853
|
}`,
|
|
1348
1854
|
SECONDS: `{seconds, plural,
|
|
1349
|
-
one {
|
|
1350
|
-
other {
|
|
1855
|
+
one {Último segundo}
|
|
1856
|
+
other {Últimos # segundos}
|
|
1351
1857
|
}`,
|
|
1352
1858
|
YEARS_FRACTION: `{years} anos`,
|
|
1353
1859
|
MONTHS_FRACTION: `{months} meses`
|
|
@@ -1438,10 +1944,16 @@ const ruRULocaleData = {
|
|
|
1438
1944
|
error: 'Поиск с таким названием уже существует',
|
|
1439
1945
|
errorHint: 'Не удалось сохранить фильтр. Попробуйте снова или сообщите администратору.',
|
|
1440
1946
|
saveButton: 'Сохранить',
|
|
1441
|
-
cancelButton: 'Отмена'
|
|
1947
|
+
cancelButton: 'Отмена',
|
|
1948
|
+
actionsTooltip: 'Действия с фильтром'
|
|
1442
1949
|
},
|
|
1443
1950
|
add: {
|
|
1444
|
-
tooltip: 'Добавить фильтр'
|
|
1951
|
+
tooltip: 'Добавить фильтр',
|
|
1952
|
+
addedAnnouncement: 'Фильтр {{ name }} добавлен'
|
|
1953
|
+
},
|
|
1954
|
+
refresher: {
|
|
1955
|
+
refresh: 'Обновить',
|
|
1956
|
+
settings: 'Настройки обновления'
|
|
1445
1957
|
},
|
|
1446
1958
|
pipe: {
|
|
1447
1959
|
clearButtonTooltip: 'Очистить',
|
|
@@ -1495,10 +2007,13 @@ const ruRULocaleData = {
|
|
|
1495
2007
|
to: 'по',
|
|
1496
2008
|
apply: 'Применить',
|
|
1497
2009
|
cancel: 'Отмена',
|
|
1498
|
-
rangeLabel: '
|
|
2010
|
+
rangeLabel: 'Период',
|
|
1499
2011
|
allTime: 'за все время',
|
|
1500
2012
|
currentQuarter: 'за текущий квартал',
|
|
1501
|
-
currentYear: 'за текущий год'
|
|
2013
|
+
currentYear: 'за текущий год',
|
|
2014
|
+
allTimeOption: 'Все время',
|
|
2015
|
+
currentQuarterOption: 'Текущий квартал',
|
|
2016
|
+
currentYearOption: 'Текущий год'
|
|
1502
2017
|
},
|
|
1503
2018
|
durationTemplate: {
|
|
1504
2019
|
title: {
|
|
@@ -1506,7 +2021,7 @@ const ruRULocaleData = {
|
|
|
1506
2021
|
LAST_PART_SEPARATOR: 'и',
|
|
1507
2022
|
YEARS: `{years, plural,
|
|
1508
2023
|
one {# год}
|
|
1509
|
-
few {последние #
|
|
2024
|
+
few {последние # года}
|
|
1510
2025
|
other {последние # лет}
|
|
1511
2026
|
}`,
|
|
1512
2027
|
MONTHS: `{months, plural,
|
|
@@ -1546,39 +2061,39 @@ const ruRULocaleData = {
|
|
|
1546
2061
|
SEPARATOR: ' ',
|
|
1547
2062
|
LAST_PART_SEPARATOR: 'и',
|
|
1548
2063
|
YEARS: `{years, plural,
|
|
1549
|
-
one {
|
|
1550
|
-
few {
|
|
1551
|
-
other {
|
|
2064
|
+
one {Последний год}
|
|
2065
|
+
few {Последние # года}
|
|
2066
|
+
other {Последние # лет}
|
|
1552
2067
|
}`,
|
|
1553
2068
|
MONTHS: `{months, plural,
|
|
1554
|
-
one {
|
|
1555
|
-
few {
|
|
1556
|
-
other {
|
|
2069
|
+
one {Последний месяц}
|
|
2070
|
+
few {Последние # месяца}
|
|
2071
|
+
other {Последние # месяцев}
|
|
1557
2072
|
}`,
|
|
1558
2073
|
WEEKS: `{weeks, plural,
|
|
1559
|
-
one {
|
|
1560
|
-
few {
|
|
1561
|
-
other {
|
|
2074
|
+
one {Последняя неделя}
|
|
2075
|
+
few {Последние # недели}
|
|
2076
|
+
other {Последние # недель}
|
|
1562
2077
|
}`,
|
|
1563
2078
|
DAYS: `{days, plural,
|
|
1564
|
-
one {
|
|
1565
|
-
few {
|
|
1566
|
-
other {
|
|
2079
|
+
one {Последний день}
|
|
2080
|
+
few {Последние # дня}
|
|
2081
|
+
other {Последние # дней}
|
|
1567
2082
|
}`,
|
|
1568
2083
|
HOURS: `{hours, plural,
|
|
1569
|
-
one {
|
|
1570
|
-
few {
|
|
1571
|
-
other {
|
|
2084
|
+
one {Последний час}
|
|
2085
|
+
few {Последние # часа}
|
|
2086
|
+
other {Последние # часов}
|
|
1572
2087
|
}`,
|
|
1573
2088
|
MINUTES: `{minutes, plural,
|
|
1574
|
-
one {
|
|
1575
|
-
few {
|
|
1576
|
-
other {
|
|
2089
|
+
one {Последняя минута}
|
|
2090
|
+
few {Последние # минуты}
|
|
2091
|
+
other {Последние # минут}
|
|
1577
2092
|
}`,
|
|
1578
2093
|
SECONDS: `{seconds, plural,
|
|
1579
|
-
one {
|
|
1580
|
-
few {
|
|
1581
|
-
other {
|
|
2094
|
+
one {Последняя секунда}
|
|
2095
|
+
few {Последние # секунды}
|
|
2096
|
+
other {Последние # секунд}
|
|
1582
2097
|
}`,
|
|
1583
2098
|
YEARS_FRACTION: `{years} лет`,
|
|
1584
2099
|
MONTHS_FRACTION: `{months} месяцев`
|
|
@@ -1669,10 +2184,16 @@ const tkTMLocaleData = {
|
|
|
1669
2184
|
error: 'Şeýle atly gözleg eýýäm bar',
|
|
1670
2185
|
errorHint: 'Filtri ýazdyryp bolmady. Täzeden synanyň ýa-da administratora ýüz tutuň.',
|
|
1671
2186
|
saveButton: 'Ýazdyr',
|
|
1672
|
-
cancelButton: 'Ýatyr'
|
|
2187
|
+
cancelButton: 'Ýatyr',
|
|
2188
|
+
actionsTooltip: 'Filtr amallary'
|
|
1673
2189
|
},
|
|
1674
2190
|
add: {
|
|
1675
|
-
tooltip: 'Filtr goş'
|
|
2191
|
+
tooltip: 'Filtr goş',
|
|
2192
|
+
addedAnnouncement: '{{ name }} filtri goşuldy'
|
|
2193
|
+
},
|
|
2194
|
+
refresher: {
|
|
2195
|
+
refresh: 'Täzele',
|
|
2196
|
+
settings: 'Täzeleme sazlamalary'
|
|
1676
2197
|
},
|
|
1677
2198
|
pipe: {
|
|
1678
2199
|
clearButtonTooltip: 'Arassala',
|
|
@@ -1726,10 +2247,13 @@ const tkTMLocaleData = {
|
|
|
1726
2247
|
to: 'şuňa',
|
|
1727
2248
|
apply: 'Ulanmak',
|
|
1728
2249
|
cancel: 'Ýatyrmak',
|
|
1729
|
-
rangeLabel: '
|
|
2250
|
+
rangeLabel: 'Döwür',
|
|
1730
2251
|
allTime: 'hemme döwür üçin',
|
|
1731
2252
|
currentQuarter: 'şu çärýek üçin',
|
|
1732
|
-
currentYear: 'şu ýyl üçin'
|
|
2253
|
+
currentYear: 'şu ýyl üçin',
|
|
2254
|
+
allTimeOption: 'Hemme döwür',
|
|
2255
|
+
currentQuarterOption: 'Şu çärýek',
|
|
2256
|
+
currentYearOption: 'Şu ýyl'
|
|
1733
2257
|
},
|
|
1734
2258
|
durationTemplate: {
|
|
1735
2259
|
title: {
|
|
@@ -1774,27 +2298,27 @@ const tkTMLocaleData = {
|
|
|
1774
2298
|
other {# ýyl}
|
|
1775
2299
|
}`,
|
|
1776
2300
|
MONTHS: `{months, plural,
|
|
1777
|
-
one {
|
|
2301
|
+
one {Aý}
|
|
1778
2302
|
other {# aý}
|
|
1779
2303
|
}`,
|
|
1780
2304
|
WEEKS: `{weeks, plural,
|
|
1781
|
-
one {
|
|
2305
|
+
one {Hepde}
|
|
1782
2306
|
other {# hepde}
|
|
1783
2307
|
}`,
|
|
1784
2308
|
DAYS: `{days, plural,
|
|
1785
|
-
one {
|
|
2309
|
+
one {Gün}
|
|
1786
2310
|
other {# gün}
|
|
1787
2311
|
}`,
|
|
1788
2312
|
HOURS: `{hours, plural,
|
|
1789
|
-
one {
|
|
2313
|
+
one {Sagat}
|
|
1790
2314
|
other {# sagat}
|
|
1791
2315
|
}`,
|
|
1792
2316
|
MINUTES: `{minutes, plural,
|
|
1793
|
-
one {
|
|
2317
|
+
one {Minut}
|
|
1794
2318
|
other {# minut}
|
|
1795
2319
|
}`,
|
|
1796
2320
|
SECONDS: `{seconds, plural,
|
|
1797
|
-
one {
|
|
2321
|
+
one {Sekunt}
|
|
1798
2322
|
other {# sekunt}
|
|
1799
2323
|
}`,
|
|
1800
2324
|
YEARS_FRACTION: `{years} ýyl`,
|
|
@@ -2052,10 +2576,12 @@ const kbqLocaleServiceLangAttrNameProvider = (attrName) => ({
|
|
|
2052
2576
|
useValue: attrName
|
|
2053
2577
|
});
|
|
2054
2578
|
class KbqLocaleService {
|
|
2055
|
-
constructor(
|
|
2579
|
+
constructor() {
|
|
2056
2580
|
this.locales = {};
|
|
2057
2581
|
this.document = inject(DOCUMENT);
|
|
2058
2582
|
this.langAttrName = inject(KBQ_LOCALE_SERVICE_LANG_ATTR_NAME);
|
|
2583
|
+
const id = inject(KBQ_LOCALE_ID, { optional: true });
|
|
2584
|
+
const localeData = inject(KBQ_LOCALE_DATA, { optional: true });
|
|
2059
2585
|
this.locales = localeData;
|
|
2060
2586
|
this.id = id || KBQ_DEFAULT_LOCALE_ID;
|
|
2061
2587
|
this.current = this.locales[this.id];
|
|
@@ -2075,23 +2601,13 @@ class KbqLocaleService {
|
|
|
2075
2601
|
getParams(componentName) {
|
|
2076
2602
|
return this.current[componentName];
|
|
2077
2603
|
}
|
|
2078
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2079
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2604
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqLocaleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2605
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqLocaleService, providedIn: 'root' }); }
|
|
2080
2606
|
}
|
|
2081
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2607
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqLocaleService, decorators: [{
|
|
2082
2608
|
type: Injectable,
|
|
2083
2609
|
args: [{ providedIn: 'root' }]
|
|
2084
|
-
}], ctorParameters: () => [
|
|
2085
|
-
type: Optional
|
|
2086
|
-
}, {
|
|
2087
|
-
type: Inject,
|
|
2088
|
-
args: [KBQ_LOCALE_ID]
|
|
2089
|
-
}] }, { type: undefined, decorators: [{
|
|
2090
|
-
type: Optional
|
|
2091
|
-
}, {
|
|
2092
|
-
type: Inject,
|
|
2093
|
-
args: [KBQ_LOCALE_DATA]
|
|
2094
|
-
}] }] });
|
|
2610
|
+
}], ctorParameters: () => [] });
|
|
2095
2611
|
// todo code below need refactor or delete in DS-3603
|
|
2096
2612
|
/** @docs-private */
|
|
2097
2613
|
const KBQ_DEFAULT_PRECISION_SEPARATOR = '.';
|
|
@@ -2171,13 +2687,13 @@ function checkAndNormalizeLocalizedNumber(num, locale) {
|
|
|
2171
2687
|
}
|
|
2172
2688
|
|
|
2173
2689
|
class KbqLocaleServiceModule {
|
|
2174
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2175
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
2176
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
2690
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqLocaleServiceModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
2691
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqLocaleServiceModule }); }
|
|
2692
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqLocaleServiceModule, providers: [
|
|
2177
2693
|
{ provide: KBQ_LOCALE_SERVICE, useClass: KbqLocaleService }
|
|
2178
2694
|
] }); }
|
|
2179
2695
|
}
|
|
2180
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2696
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqLocaleServiceModule, decorators: [{
|
|
2181
2697
|
type: NgModule,
|
|
2182
2698
|
args: [{
|
|
2183
2699
|
providers: [
|
|
@@ -2187,21 +2703,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
|
|
|
2187
2703
|
}] });
|
|
2188
2704
|
|
|
2189
2705
|
class DateFormatter extends DateFormatter$1 {
|
|
2190
|
-
constructor(
|
|
2706
|
+
constructor() {
|
|
2707
|
+
const adapter = inject(DateAdapter);
|
|
2708
|
+
const locale = inject(KBQ_DATE_LOCALE);
|
|
2191
2709
|
super(adapter, locale);
|
|
2192
|
-
this.adapter = adapter;
|
|
2193
2710
|
this.localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });
|
|
2711
|
+
this.adapter = adapter;
|
|
2194
2712
|
this.localeService?.changes.pipe(takeUntilDestroyed()).subscribe((locale) => this.setLocale(locale));
|
|
2195
2713
|
}
|
|
2196
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2197
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2714
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DateFormatter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2715
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DateFormatter }); }
|
|
2198
2716
|
}
|
|
2199
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2717
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DateFormatter, decorators: [{
|
|
2200
2718
|
type: Injectable
|
|
2201
|
-
}], ctorParameters: () => [
|
|
2202
|
-
type: Inject,
|
|
2203
|
-
args: [KBQ_DATE_LOCALE]
|
|
2204
|
-
}] }] });
|
|
2719
|
+
}], ctorParameters: () => [] });
|
|
2205
2720
|
|
|
2206
2721
|
class BaseFormatterPipe {
|
|
2207
2722
|
constructor() {
|
|
@@ -2209,15 +2724,72 @@ class BaseFormatterPipe {
|
|
|
2209
2724
|
this.formatter = inject((DateFormatter));
|
|
2210
2725
|
}
|
|
2211
2726
|
}
|
|
2727
|
+
/**
|
|
2728
|
+
* Base class for impure date-formatter pipes that recompute their result
|
|
2729
|
+
* whenever the active locale changes via `KbqLocaleService`.
|
|
2730
|
+
*
|
|
2731
|
+
* The base class owns:
|
|
2732
|
+
* - a subscription to `KbqLocaleService.changes` that invalidates the cache and
|
|
2733
|
+
* marks the host for check (the same approach the built-in `AsyncPipe` uses);
|
|
2734
|
+
* - caching by `(value, args, localeId)`, so the impure `transform()` only does
|
|
2735
|
+
* real work when an input or the active locale actually changed.
|
|
2736
|
+
*
|
|
2737
|
+
* Subclasses implement `format()`, which receives the raw pipe input(s) — a
|
|
2738
|
+
* single value for absolute/relative pipes, or a `[from, to]` tuple for range
|
|
2739
|
+
* pipes — deserializes via `this.adapter` and calls the matching
|
|
2740
|
+
* `DateFormatter` method.
|
|
2741
|
+
*
|
|
2742
|
+
* @docs-private
|
|
2743
|
+
*/
|
|
2744
|
+
class BaseLocaleAwareFormatterPipe extends BaseFormatterPipe {
|
|
2745
|
+
constructor() {
|
|
2746
|
+
super();
|
|
2747
|
+
this.changeDetectorRef = inject(ChangeDetectorRef);
|
|
2748
|
+
this.localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });
|
|
2749
|
+
this.cachedValue = null;
|
|
2750
|
+
this.cachedArgs = [];
|
|
2751
|
+
this.cachedLocaleId = null;
|
|
2752
|
+
this.cachedResult = '';
|
|
2753
|
+
this.hasCache = false;
|
|
2754
|
+
this.localeService?.changes.pipe(takeUntilDestroyed()).subscribe(() => {
|
|
2755
|
+
this.hasCache = false;
|
|
2756
|
+
this.changeDetectorRef.markForCheck();
|
|
2757
|
+
});
|
|
2758
|
+
}
|
|
2759
|
+
transform(value, ...args) {
|
|
2760
|
+
const currentLocaleId = this.localeService?.id ?? null;
|
|
2761
|
+
if (this.hasCache &&
|
|
2762
|
+
value === this.cachedValue &&
|
|
2763
|
+
currentLocaleId === this.cachedLocaleId &&
|
|
2764
|
+
this.argsEqual(args)) {
|
|
2765
|
+
return this.cachedResult;
|
|
2766
|
+
}
|
|
2767
|
+
this.cachedResult = this.format(value, ...args);
|
|
2768
|
+
this.cachedValue = value;
|
|
2769
|
+
this.cachedArgs = args;
|
|
2770
|
+
this.cachedLocaleId = currentLocaleId;
|
|
2771
|
+
this.hasCache = true;
|
|
2772
|
+
return this.cachedResult;
|
|
2773
|
+
}
|
|
2774
|
+
argsEqual(args) {
|
|
2775
|
+
if (args.length !== this.cachedArgs.length)
|
|
2776
|
+
return false;
|
|
2777
|
+
for (let i = 0; i < args.length; i++) {
|
|
2778
|
+
if (args[i] !== this.cachedArgs[i])
|
|
2779
|
+
return false;
|
|
2780
|
+
}
|
|
2781
|
+
return true;
|
|
2782
|
+
}
|
|
2783
|
+
}
|
|
2212
2784
|
class AbsoluteDateFormatterPipe extends BaseFormatterPipe {
|
|
2213
2785
|
transform(value, currYear) {
|
|
2214
2786
|
const date = this.adapter.deserialize(value);
|
|
2215
2787
|
return date ? this.formatter.absoluteLongDate(date, currYear) : '';
|
|
2216
2788
|
}
|
|
2217
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2218
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
2789
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteDateFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
2790
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteDateFormatterPipe, isStandalone: true, name: "absoluteLongDate" }); }
|
|
2219
2791
|
}
|
|
2220
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2792
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteDateFormatterPipe, decorators: [{
|
|
2221
2793
|
type: Pipe,
|
|
2222
2794
|
args: [{
|
|
2223
2795
|
name: 'absoluteLongDate'
|
|
@@ -2228,10 +2800,10 @@ class AbsoluteDateFormatterImpurePipe extends AbsoluteDateFormatterPipe {
|
|
|
2228
2800
|
transform(value, currYear) {
|
|
2229
2801
|
return super.transform(value, currYear);
|
|
2230
2802
|
}
|
|
2231
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2232
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
2803
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteDateFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
2804
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteDateFormatterImpurePipe, isStandalone: true, name: "absoluteLongDateImpurePipe", pure: false }); }
|
|
2233
2805
|
}
|
|
2234
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2806
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteDateFormatterImpurePipe, decorators: [{
|
|
2235
2807
|
type: Pipe,
|
|
2236
2808
|
args: [{
|
|
2237
2809
|
name: 'absoluteLongDateImpurePipe',
|
|
@@ -2243,10 +2815,10 @@ class AbsoluteDateTimeFormatterPipe extends BaseFormatterPipe {
|
|
|
2243
2815
|
const date = this.adapter.deserialize(value);
|
|
2244
2816
|
return date ? this.formatter.absoluteLongDateTime(date, options) : '';
|
|
2245
2817
|
}
|
|
2246
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2247
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
2818
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteDateTimeFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
2819
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteDateTimeFormatterPipe, isStandalone: true, name: "absoluteLongDateTime" }); }
|
|
2248
2820
|
}
|
|
2249
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2821
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteDateTimeFormatterPipe, decorators: [{
|
|
2250
2822
|
type: Pipe,
|
|
2251
2823
|
args: [{
|
|
2252
2824
|
name: 'absoluteLongDateTime'
|
|
@@ -2257,10 +2829,10 @@ class AbsoluteDateTimeFormatterImpurePipe extends AbsoluteDateTimeFormatterPipe
|
|
|
2257
2829
|
transform(value, options) {
|
|
2258
2830
|
return super.transform(value, options);
|
|
2259
2831
|
}
|
|
2260
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2261
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
2832
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteDateTimeFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
2833
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteDateTimeFormatterImpurePipe, isStandalone: true, name: "absoluteLongDateTimeImpurePipe", pure: false }); }
|
|
2262
2834
|
}
|
|
2263
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2835
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteDateTimeFormatterImpurePipe, decorators: [{
|
|
2264
2836
|
type: Pipe,
|
|
2265
2837
|
args: [{
|
|
2266
2838
|
name: 'absoluteLongDateTimeImpurePipe',
|
|
@@ -2272,10 +2844,10 @@ class AbsoluteDateShortFormatterPipe extends BaseFormatterPipe {
|
|
|
2272
2844
|
const date = this.adapter.deserialize(value);
|
|
2273
2845
|
return date ? this.formatter.absoluteShortDate(date, currYear) : '';
|
|
2274
2846
|
}
|
|
2275
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2276
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
2847
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteDateShortFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
2848
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteDateShortFormatterPipe, isStandalone: true, name: "absoluteShortDate" }); }
|
|
2277
2849
|
}
|
|
2278
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2850
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteDateShortFormatterPipe, decorators: [{
|
|
2279
2851
|
type: Pipe,
|
|
2280
2852
|
args: [{
|
|
2281
2853
|
name: 'absoluteShortDate'
|
|
@@ -2286,10 +2858,10 @@ class AbsoluteDateShortFormatterImpurePipe extends AbsoluteDateShortFormatterPip
|
|
|
2286
2858
|
transform(value, currYear) {
|
|
2287
2859
|
return super.transform(value, currYear);
|
|
2288
2860
|
}
|
|
2289
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2290
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
2861
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteDateShortFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
2862
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteDateShortFormatterImpurePipe, isStandalone: true, name: "absoluteShortDateImpurePipe", pure: false }); }
|
|
2291
2863
|
}
|
|
2292
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2864
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteDateShortFormatterImpurePipe, decorators: [{
|
|
2293
2865
|
type: Pipe,
|
|
2294
2866
|
args: [{
|
|
2295
2867
|
name: 'absoluteShortDateImpurePipe',
|
|
@@ -2301,10 +2873,10 @@ class AbsoluteShortDateTimeFormatterPipe extends BaseFormatterPipe {
|
|
|
2301
2873
|
const date = this.adapter.deserialize(value);
|
|
2302
2874
|
return date ? this.formatter.absoluteShortDateTime(date, options) : '';
|
|
2303
2875
|
}
|
|
2304
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2305
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
2876
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteShortDateTimeFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
2877
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteShortDateTimeFormatterPipe, isStandalone: true, name: "absoluteShortDateTime" }); }
|
|
2306
2878
|
}
|
|
2307
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2879
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteShortDateTimeFormatterPipe, decorators: [{
|
|
2308
2880
|
type: Pipe,
|
|
2309
2881
|
args: [{
|
|
2310
2882
|
name: 'absoluteShortDateTime'
|
|
@@ -2315,10 +2887,10 @@ class AbsoluteShortDateTimeFormatterImpurePipe extends AbsoluteShortDateTimeForm
|
|
|
2315
2887
|
transform(value, options) {
|
|
2316
2888
|
return super.transform(value, options);
|
|
2317
2889
|
}
|
|
2318
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2319
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
2890
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteShortDateTimeFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
2891
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteShortDateTimeFormatterImpurePipe, isStandalone: true, name: "absoluteShortDateTimeImpurePipe", pure: false }); }
|
|
2320
2892
|
}
|
|
2321
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2893
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AbsoluteShortDateTimeFormatterImpurePipe, decorators: [{
|
|
2322
2894
|
type: Pipe,
|
|
2323
2895
|
args: [{
|
|
2324
2896
|
name: 'absoluteShortDateTimeImpurePipe',
|
|
@@ -2330,10 +2902,10 @@ class RelativeDateFormatterPipe extends BaseFormatterPipe {
|
|
|
2330
2902
|
const date = this.adapter.deserialize(value);
|
|
2331
2903
|
return date ? this.formatter.relativeLongDate(date) : '';
|
|
2332
2904
|
}
|
|
2333
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2334
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
2905
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RelativeDateFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
2906
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: RelativeDateFormatterPipe, isStandalone: true, name: "relativeLongDate" }); }
|
|
2335
2907
|
}
|
|
2336
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2908
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RelativeDateFormatterPipe, decorators: [{
|
|
2337
2909
|
type: Pipe,
|
|
2338
2910
|
args: [{
|
|
2339
2911
|
name: 'relativeLongDate'
|
|
@@ -2344,10 +2916,10 @@ class RelativeDateFormatterImpurePipe extends RelativeDateFormatterPipe {
|
|
|
2344
2916
|
transform(value) {
|
|
2345
2917
|
return super.transform(value);
|
|
2346
2918
|
}
|
|
2347
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2348
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
2919
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RelativeDateFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
2920
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: RelativeDateFormatterImpurePipe, isStandalone: true, name: "relativeLongDateImpurePipe", pure: false }); }
|
|
2349
2921
|
}
|
|
2350
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2922
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RelativeDateFormatterImpurePipe, decorators: [{
|
|
2351
2923
|
type: Pipe,
|
|
2352
2924
|
args: [{
|
|
2353
2925
|
name: 'relativeLongDateImpurePipe',
|
|
@@ -2359,10 +2931,10 @@ class RelativeDateTimeFormatterPipe extends BaseFormatterPipe {
|
|
|
2359
2931
|
const date = this.adapter.deserialize(value);
|
|
2360
2932
|
return date ? this.formatter.relativeLongDateTime(date, options) : '';
|
|
2361
2933
|
}
|
|
2362
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2363
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
2934
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RelativeDateTimeFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
2935
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: RelativeDateTimeFormatterPipe, isStandalone: true, name: "relativeLongDateTime" }); }
|
|
2364
2936
|
}
|
|
2365
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2937
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RelativeDateTimeFormatterPipe, decorators: [{
|
|
2366
2938
|
type: Pipe,
|
|
2367
2939
|
args: [{
|
|
2368
2940
|
name: 'relativeLongDateTime'
|
|
@@ -2373,10 +2945,10 @@ class RelativeDateTimeFormatterImpurePipe extends RelativeDateTimeFormatterPipe
|
|
|
2373
2945
|
transform(value, options) {
|
|
2374
2946
|
return super.transform(value, options);
|
|
2375
2947
|
}
|
|
2376
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2377
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
2948
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RelativeDateTimeFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
2949
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: RelativeDateTimeFormatterImpurePipe, isStandalone: true, name: "relativeLongDateTimeImpurePipe", pure: false }); }
|
|
2378
2950
|
}
|
|
2379
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2951
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RelativeDateTimeFormatterImpurePipe, decorators: [{
|
|
2380
2952
|
type: Pipe,
|
|
2381
2953
|
args: [{
|
|
2382
2954
|
name: 'relativeLongDateTimeImpurePipe',
|
|
@@ -2388,10 +2960,10 @@ class RelativeShortDateFormatterPipe extends BaseFormatterPipe {
|
|
|
2388
2960
|
const date = this.adapter.deserialize(value);
|
|
2389
2961
|
return date ? this.formatter.relativeShortDate(date) : '';
|
|
2390
2962
|
}
|
|
2391
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2392
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
2963
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RelativeShortDateFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
2964
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: RelativeShortDateFormatterPipe, isStandalone: true, name: "relativeShortDate" }); }
|
|
2393
2965
|
}
|
|
2394
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2966
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RelativeShortDateFormatterPipe, decorators: [{
|
|
2395
2967
|
type: Pipe,
|
|
2396
2968
|
args: [{
|
|
2397
2969
|
name: 'relativeShortDate'
|
|
@@ -2402,10 +2974,10 @@ class RelativeShortDateFormatterImpurePipe extends RelativeShortDateFormatterPip
|
|
|
2402
2974
|
transform(value) {
|
|
2403
2975
|
return super.transform(value);
|
|
2404
2976
|
}
|
|
2405
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2406
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
2977
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RelativeShortDateFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
2978
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: RelativeShortDateFormatterImpurePipe, isStandalone: true, name: "relativeShortDateImpurePipe", pure: false }); }
|
|
2407
2979
|
}
|
|
2408
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2980
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RelativeShortDateFormatterImpurePipe, decorators: [{
|
|
2409
2981
|
type: Pipe,
|
|
2410
2982
|
args: [{
|
|
2411
2983
|
name: 'relativeShortDateImpurePipe',
|
|
@@ -2417,10 +2989,10 @@ class RelativeShortDateTimeFormatterPipe extends BaseFormatterPipe {
|
|
|
2417
2989
|
const date = this.adapter.deserialize(value);
|
|
2418
2990
|
return date ? this.formatter.relativeShortDateTime(date, options) : '';
|
|
2419
2991
|
}
|
|
2420
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2421
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
2992
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RelativeShortDateTimeFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
2993
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: RelativeShortDateTimeFormatterPipe, isStandalone: true, name: "relativeShortDateTime" }); }
|
|
2422
2994
|
}
|
|
2423
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2995
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RelativeShortDateTimeFormatterPipe, decorators: [{
|
|
2424
2996
|
type: Pipe,
|
|
2425
2997
|
args: [{
|
|
2426
2998
|
name: 'relativeShortDateTime'
|
|
@@ -2431,10 +3003,10 @@ class RelativeShortDateTimeFormatterImpurePipe extends RelativeShortDateTimeForm
|
|
|
2431
3003
|
transform(value, options) {
|
|
2432
3004
|
return super.transform(value, options);
|
|
2433
3005
|
}
|
|
2434
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2435
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
3006
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RelativeShortDateTimeFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3007
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: RelativeShortDateTimeFormatterImpurePipe, isStandalone: true, name: "relativeShortDateTimeImpurePipe", pure: false }); }
|
|
2436
3008
|
}
|
|
2437
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3009
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RelativeShortDateTimeFormatterImpurePipe, decorators: [{
|
|
2438
3010
|
type: Pipe,
|
|
2439
3011
|
args: [{
|
|
2440
3012
|
name: 'relativeShortDateTimeImpurePipe',
|
|
@@ -2447,10 +3019,10 @@ class RangeDateFormatterPipe extends BaseFormatterPipe {
|
|
|
2447
3019
|
const date2 = this.adapter.deserialize(value2);
|
|
2448
3020
|
return this.formatter.rangeLongDate(date1, date2);
|
|
2449
3021
|
}
|
|
2450
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2451
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
3022
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RangeDateFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3023
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: RangeDateFormatterPipe, isStandalone: true, name: "rangeLongDate" }); }
|
|
2452
3024
|
}
|
|
2453
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3025
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RangeDateFormatterPipe, decorators: [{
|
|
2454
3026
|
type: Pipe,
|
|
2455
3027
|
args: [{
|
|
2456
3028
|
name: 'rangeLongDate'
|
|
@@ -2461,10 +3033,10 @@ class RangeDateFormatterImpurePipe extends RangeDateFormatterPipe {
|
|
|
2461
3033
|
transform([value1, value2]) {
|
|
2462
3034
|
return super.transform([value1, value2]);
|
|
2463
3035
|
}
|
|
2464
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2465
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
3036
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RangeDateFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3037
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: RangeDateFormatterImpurePipe, isStandalone: true, name: "rangeLongDateImpurePipe", pure: false }); }
|
|
2466
3038
|
}
|
|
2467
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3039
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RangeDateFormatterImpurePipe, decorators: [{
|
|
2468
3040
|
type: Pipe,
|
|
2469
3041
|
args: [{
|
|
2470
3042
|
name: 'rangeLongDateImpurePipe',
|
|
@@ -2477,10 +3049,10 @@ class RangeShortDateFormatterPipe extends BaseFormatterPipe {
|
|
|
2477
3049
|
const date2 = this.adapter.deserialize(value2);
|
|
2478
3050
|
return this.formatter.rangeShortDate(date1, date2);
|
|
2479
3051
|
}
|
|
2480
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2481
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
3052
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RangeShortDateFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3053
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: RangeShortDateFormatterPipe, isStandalone: true, name: "rangeShortDate" }); }
|
|
2482
3054
|
}
|
|
2483
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3055
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RangeShortDateFormatterPipe, decorators: [{
|
|
2484
3056
|
type: Pipe,
|
|
2485
3057
|
args: [{
|
|
2486
3058
|
name: 'rangeShortDate'
|
|
@@ -2491,10 +3063,10 @@ class RangeShortDateFormatterImpurePipe extends RangeShortDateFormatterPipe {
|
|
|
2491
3063
|
transform([value1, value2]) {
|
|
2492
3064
|
return super.transform([value1, value2]);
|
|
2493
3065
|
}
|
|
2494
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2495
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
3066
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RangeShortDateFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3067
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: RangeShortDateFormatterImpurePipe, isStandalone: true, name: "rangeShortDateImpurePipe", pure: false }); }
|
|
2496
3068
|
}
|
|
2497
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3069
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RangeShortDateFormatterImpurePipe, decorators: [{
|
|
2498
3070
|
type: Pipe,
|
|
2499
3071
|
args: [{
|
|
2500
3072
|
name: 'rangeShortDateImpurePipe',
|
|
@@ -2507,10 +3079,10 @@ class RangeDateTimeFormatterPipe extends BaseFormatterPipe {
|
|
|
2507
3079
|
const date2 = this.adapter.deserialize(value2);
|
|
2508
3080
|
return this.formatter.rangeLongDateTime(date1, date2, options);
|
|
2509
3081
|
}
|
|
2510
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2511
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
3082
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RangeDateTimeFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3083
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: RangeDateTimeFormatterPipe, isStandalone: true, name: "rangeLongDateTime" }); }
|
|
2512
3084
|
}
|
|
2513
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3085
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RangeDateTimeFormatterPipe, decorators: [{
|
|
2514
3086
|
type: Pipe,
|
|
2515
3087
|
args: [{
|
|
2516
3088
|
name: 'rangeLongDateTime'
|
|
@@ -2521,10 +3093,10 @@ class RangeDateTimeFormatterImpurePipe extends RangeDateTimeFormatterPipe {
|
|
|
2521
3093
|
transform([value1, value2], options) {
|
|
2522
3094
|
return super.transform([value1, value2], options);
|
|
2523
3095
|
}
|
|
2524
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2525
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
3096
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RangeDateTimeFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3097
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: RangeDateTimeFormatterImpurePipe, isStandalone: true, name: "rangeLongDateTimeImpurePipe", pure: false }); }
|
|
2526
3098
|
}
|
|
2527
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3099
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RangeDateTimeFormatterImpurePipe, decorators: [{
|
|
2528
3100
|
type: Pipe,
|
|
2529
3101
|
args: [{
|
|
2530
3102
|
name: 'rangeLongDateTimeImpurePipe',
|
|
@@ -2537,10 +3109,10 @@ class RangeMiddleDateTimeFormatterPipe extends BaseFormatterPipe {
|
|
|
2537
3109
|
const date2 = this.adapter.deserialize(value2);
|
|
2538
3110
|
return this.formatter.rangeMiddleDateTime(date1, date2, options);
|
|
2539
3111
|
}
|
|
2540
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2541
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
3112
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RangeMiddleDateTimeFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3113
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: RangeMiddleDateTimeFormatterPipe, isStandalone: true, name: "rangeMiddleDateTime" }); }
|
|
2542
3114
|
}
|
|
2543
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3115
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RangeMiddleDateTimeFormatterPipe, decorators: [{
|
|
2544
3116
|
type: Pipe,
|
|
2545
3117
|
args: [{
|
|
2546
3118
|
name: 'rangeMiddleDateTime'
|
|
@@ -2551,10 +3123,10 @@ class RangeMiddleDateTimeFormatterImpurePipe extends RangeMiddleDateTimeFormatte
|
|
|
2551
3123
|
transform([value1, value2], options) {
|
|
2552
3124
|
return super.transform([value1, value2], options);
|
|
2553
3125
|
}
|
|
2554
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2555
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
3126
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RangeMiddleDateTimeFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3127
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: RangeMiddleDateTimeFormatterImpurePipe, isStandalone: true, name: "rangeMiddleDateTimeImpurePipe", pure: false }); }
|
|
2556
3128
|
}
|
|
2557
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3129
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RangeMiddleDateTimeFormatterImpurePipe, decorators: [{
|
|
2558
3130
|
type: Pipe,
|
|
2559
3131
|
args: [{
|
|
2560
3132
|
name: 'rangeMiddleDateTimeImpurePipe',
|
|
@@ -2567,10 +3139,10 @@ class RangeShortDateTimeFormatterPipe extends BaseFormatterPipe {
|
|
|
2567
3139
|
const date2 = this.adapter.deserialize(value2);
|
|
2568
3140
|
return this.formatter.rangeShortDateTime(date1, date2, options);
|
|
2569
3141
|
}
|
|
2570
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2571
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
3142
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RangeShortDateTimeFormatterPipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3143
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: RangeShortDateTimeFormatterPipe, isStandalone: true, name: "rangeShortDateTime" }); }
|
|
2572
3144
|
}
|
|
2573
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3145
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RangeShortDateTimeFormatterPipe, decorators: [{
|
|
2574
3146
|
type: Pipe,
|
|
2575
3147
|
args: [{
|
|
2576
3148
|
name: 'rangeShortDateTime'
|
|
@@ -2581,26 +3153,259 @@ class RangeShortDateTimeFormatterImpurePipe extends RangeShortDateTimeFormatterP
|
|
|
2581
3153
|
transform([value1, value2], options) {
|
|
2582
3154
|
return super.transform([value1, value2], options);
|
|
2583
3155
|
}
|
|
2584
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2585
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
3156
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RangeShortDateTimeFormatterImpurePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3157
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: RangeShortDateTimeFormatterImpurePipe, isStandalone: true, name: "rangeShortDateTimeImpurePipe", pure: false }); }
|
|
2586
3158
|
}
|
|
2587
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3159
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: RangeShortDateTimeFormatterImpurePipe, decorators: [{
|
|
2588
3160
|
type: Pipe,
|
|
2589
3161
|
args: [{
|
|
2590
3162
|
name: 'rangeShortDateTimeImpurePipe',
|
|
2591
3163
|
pure: false
|
|
2592
3164
|
}]
|
|
2593
3165
|
}] });
|
|
3166
|
+
// Impure pipes that recompute on `KbqLocaleService` locale changes (see `BaseLocaleAwareFormatterPipe`).
|
|
3167
|
+
// Prefer these `kbq`-prefixed pipes when the locale can change at runtime; the pure pipes above are
|
|
3168
|
+
// kept for static usages and backward compatibility.
|
|
3169
|
+
class KbqAbsoluteLongDatePipe extends BaseLocaleAwareFormatterPipe {
|
|
3170
|
+
transform(value, currYear) {
|
|
3171
|
+
return super.transform(value, currYear);
|
|
3172
|
+
}
|
|
3173
|
+
format(value, currYear) {
|
|
3174
|
+
const date = this.adapter.deserialize(value);
|
|
3175
|
+
return date ? this.formatter.absoluteLongDate(date, currYear) : '';
|
|
3176
|
+
}
|
|
3177
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqAbsoluteLongDatePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3178
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqAbsoluteLongDatePipe, isStandalone: true, name: "kbqAbsoluteLongDate", pure: false }); }
|
|
3179
|
+
}
|
|
3180
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqAbsoluteLongDatePipe, decorators: [{
|
|
3181
|
+
type: Pipe,
|
|
3182
|
+
args: [{
|
|
3183
|
+
name: 'kbqAbsoluteLongDate',
|
|
3184
|
+
pure: false
|
|
3185
|
+
}]
|
|
3186
|
+
}] });
|
|
3187
|
+
class KbqAbsoluteShortDatePipe extends BaseLocaleAwareFormatterPipe {
|
|
3188
|
+
transform(value, currYear) {
|
|
3189
|
+
return super.transform(value, currYear);
|
|
3190
|
+
}
|
|
3191
|
+
format(value, currYear) {
|
|
3192
|
+
const date = this.adapter.deserialize(value);
|
|
3193
|
+
return date ? this.formatter.absoluteShortDate(date, currYear) : '';
|
|
3194
|
+
}
|
|
3195
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqAbsoluteShortDatePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3196
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqAbsoluteShortDatePipe, isStandalone: true, name: "kbqAbsoluteShortDate", pure: false }); }
|
|
3197
|
+
}
|
|
3198
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqAbsoluteShortDatePipe, decorators: [{
|
|
3199
|
+
type: Pipe,
|
|
3200
|
+
args: [{
|
|
3201
|
+
name: 'kbqAbsoluteShortDate',
|
|
3202
|
+
pure: false
|
|
3203
|
+
}]
|
|
3204
|
+
}] });
|
|
3205
|
+
class KbqAbsoluteLongDateTimePipe extends BaseLocaleAwareFormatterPipe {
|
|
3206
|
+
transform(value, options) {
|
|
3207
|
+
return super.transform(value, options);
|
|
3208
|
+
}
|
|
3209
|
+
format(value, options) {
|
|
3210
|
+
const date = this.adapter.deserialize(value);
|
|
3211
|
+
return date ? this.formatter.absoluteLongDateTime(date, options) : '';
|
|
3212
|
+
}
|
|
3213
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqAbsoluteLongDateTimePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3214
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqAbsoluteLongDateTimePipe, isStandalone: true, name: "kbqAbsoluteLongDateTime", pure: false }); }
|
|
3215
|
+
}
|
|
3216
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqAbsoluteLongDateTimePipe, decorators: [{
|
|
3217
|
+
type: Pipe,
|
|
3218
|
+
args: [{
|
|
3219
|
+
name: 'kbqAbsoluteLongDateTime',
|
|
3220
|
+
pure: false
|
|
3221
|
+
}]
|
|
3222
|
+
}] });
|
|
3223
|
+
class KbqAbsoluteShortDateTimePipe extends BaseLocaleAwareFormatterPipe {
|
|
3224
|
+
transform(value, options) {
|
|
3225
|
+
return super.transform(value, options);
|
|
3226
|
+
}
|
|
3227
|
+
format(value, options) {
|
|
3228
|
+
const date = this.adapter.deserialize(value);
|
|
3229
|
+
return date ? this.formatter.absoluteShortDateTime(date, options) : '';
|
|
3230
|
+
}
|
|
3231
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqAbsoluteShortDateTimePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3232
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqAbsoluteShortDateTimePipe, isStandalone: true, name: "kbqAbsoluteShortDateTime", pure: false }); }
|
|
3233
|
+
}
|
|
3234
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqAbsoluteShortDateTimePipe, decorators: [{
|
|
3235
|
+
type: Pipe,
|
|
3236
|
+
args: [{
|
|
3237
|
+
name: 'kbqAbsoluteShortDateTime',
|
|
3238
|
+
pure: false
|
|
3239
|
+
}]
|
|
3240
|
+
}] });
|
|
3241
|
+
class KbqRelativeLongDatePipe extends BaseLocaleAwareFormatterPipe {
|
|
3242
|
+
transform(value) {
|
|
3243
|
+
return super.transform(value);
|
|
3244
|
+
}
|
|
3245
|
+
format(value) {
|
|
3246
|
+
const date = this.adapter.deserialize(value);
|
|
3247
|
+
return date ? this.formatter.relativeLongDate(date) : '';
|
|
3248
|
+
}
|
|
3249
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRelativeLongDatePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3250
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqRelativeLongDatePipe, isStandalone: true, name: "kbqRelativeLongDate", pure: false }); }
|
|
3251
|
+
}
|
|
3252
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRelativeLongDatePipe, decorators: [{
|
|
3253
|
+
type: Pipe,
|
|
3254
|
+
args: [{
|
|
3255
|
+
name: 'kbqRelativeLongDate',
|
|
3256
|
+
pure: false
|
|
3257
|
+
}]
|
|
3258
|
+
}] });
|
|
3259
|
+
class KbqRelativeShortDatePipe extends BaseLocaleAwareFormatterPipe {
|
|
3260
|
+
transform(value) {
|
|
3261
|
+
return super.transform(value);
|
|
3262
|
+
}
|
|
3263
|
+
format(value) {
|
|
3264
|
+
const date = this.adapter.deserialize(value);
|
|
3265
|
+
return date ? this.formatter.relativeShortDate(date) : '';
|
|
3266
|
+
}
|
|
3267
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRelativeShortDatePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3268
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqRelativeShortDatePipe, isStandalone: true, name: "kbqRelativeShortDate", pure: false }); }
|
|
3269
|
+
}
|
|
3270
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRelativeShortDatePipe, decorators: [{
|
|
3271
|
+
type: Pipe,
|
|
3272
|
+
args: [{
|
|
3273
|
+
name: 'kbqRelativeShortDate',
|
|
3274
|
+
pure: false
|
|
3275
|
+
}]
|
|
3276
|
+
}] });
|
|
3277
|
+
class KbqRelativeLongDateTimePipe extends BaseLocaleAwareFormatterPipe {
|
|
3278
|
+
transform(value, options) {
|
|
3279
|
+
return super.transform(value, options);
|
|
3280
|
+
}
|
|
3281
|
+
format(value, options) {
|
|
3282
|
+
const date = this.adapter.deserialize(value);
|
|
3283
|
+
return date ? this.formatter.relativeLongDateTime(date, options) : '';
|
|
3284
|
+
}
|
|
3285
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRelativeLongDateTimePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3286
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqRelativeLongDateTimePipe, isStandalone: true, name: "kbqRelativeLongDateTime", pure: false }); }
|
|
3287
|
+
}
|
|
3288
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRelativeLongDateTimePipe, decorators: [{
|
|
3289
|
+
type: Pipe,
|
|
3290
|
+
args: [{
|
|
3291
|
+
name: 'kbqRelativeLongDateTime',
|
|
3292
|
+
pure: false
|
|
3293
|
+
}]
|
|
3294
|
+
}] });
|
|
3295
|
+
class KbqRelativeShortDateTimePipe extends BaseLocaleAwareFormatterPipe {
|
|
3296
|
+
transform(value, options) {
|
|
3297
|
+
return super.transform(value, options);
|
|
3298
|
+
}
|
|
3299
|
+
format(value, options) {
|
|
3300
|
+
const date = this.adapter.deserialize(value);
|
|
3301
|
+
return date ? this.formatter.relativeShortDateTime(date, options) : '';
|
|
3302
|
+
}
|
|
3303
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRelativeShortDateTimePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3304
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqRelativeShortDateTimePipe, isStandalone: true, name: "kbqRelativeShortDateTime", pure: false }); }
|
|
3305
|
+
}
|
|
3306
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRelativeShortDateTimePipe, decorators: [{
|
|
3307
|
+
type: Pipe,
|
|
3308
|
+
args: [{
|
|
3309
|
+
name: 'kbqRelativeShortDateTime',
|
|
3310
|
+
pure: false
|
|
3311
|
+
}]
|
|
3312
|
+
}] });
|
|
3313
|
+
class KbqRangeLongDatePipe extends BaseLocaleAwareFormatterPipe {
|
|
3314
|
+
transform(value) {
|
|
3315
|
+
return super.transform(value);
|
|
3316
|
+
}
|
|
3317
|
+
format([value1, value2]) {
|
|
3318
|
+
const date1 = this.adapter.deserialize(value1);
|
|
3319
|
+
const date2 = this.adapter.deserialize(value2);
|
|
3320
|
+
return this.formatter.rangeLongDate(date1, date2);
|
|
3321
|
+
}
|
|
3322
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRangeLongDatePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3323
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqRangeLongDatePipe, isStandalone: true, name: "kbqRangeLongDate", pure: false }); }
|
|
3324
|
+
}
|
|
3325
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRangeLongDatePipe, decorators: [{
|
|
3326
|
+
type: Pipe,
|
|
3327
|
+
args: [{
|
|
3328
|
+
name: 'kbqRangeLongDate',
|
|
3329
|
+
pure: false
|
|
3330
|
+
}]
|
|
3331
|
+
}] });
|
|
3332
|
+
class KbqRangeShortDatePipe extends BaseLocaleAwareFormatterPipe {
|
|
3333
|
+
transform(value) {
|
|
3334
|
+
return super.transform(value);
|
|
3335
|
+
}
|
|
3336
|
+
format([value1, value2]) {
|
|
3337
|
+
const date1 = this.adapter.deserialize(value1);
|
|
3338
|
+
const date2 = this.adapter.deserialize(value2);
|
|
3339
|
+
return this.formatter.rangeShortDate(date1, date2);
|
|
3340
|
+
}
|
|
3341
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRangeShortDatePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3342
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqRangeShortDatePipe, isStandalone: true, name: "kbqRangeShortDate", pure: false }); }
|
|
3343
|
+
}
|
|
3344
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRangeShortDatePipe, decorators: [{
|
|
3345
|
+
type: Pipe,
|
|
3346
|
+
args: [{
|
|
3347
|
+
name: 'kbqRangeShortDate',
|
|
3348
|
+
pure: false
|
|
3349
|
+
}]
|
|
3350
|
+
}] });
|
|
3351
|
+
class KbqRangeLongDateTimePipe extends BaseLocaleAwareFormatterPipe {
|
|
3352
|
+
transform(value, options) {
|
|
3353
|
+
return super.transform(value, options);
|
|
3354
|
+
}
|
|
3355
|
+
format([value1, value2], options) {
|
|
3356
|
+
const date1 = this.adapter.deserialize(value1);
|
|
3357
|
+
const date2 = this.adapter.deserialize(value2);
|
|
3358
|
+
return this.formatter.rangeLongDateTime(date1, date2, options);
|
|
3359
|
+
}
|
|
3360
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRangeLongDateTimePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3361
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqRangeLongDateTimePipe, isStandalone: true, name: "kbqRangeLongDateTime", pure: false }); }
|
|
3362
|
+
}
|
|
3363
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRangeLongDateTimePipe, decorators: [{
|
|
3364
|
+
type: Pipe,
|
|
3365
|
+
args: [{
|
|
3366
|
+
name: 'kbqRangeLongDateTime',
|
|
3367
|
+
pure: false
|
|
3368
|
+
}]
|
|
3369
|
+
}] });
|
|
3370
|
+
class KbqRangeMiddleDateTimePipe extends BaseLocaleAwareFormatterPipe {
|
|
3371
|
+
transform(value, options) {
|
|
3372
|
+
return super.transform(value, options);
|
|
3373
|
+
}
|
|
3374
|
+
format([value1, value2], options) {
|
|
3375
|
+
const date1 = this.adapter.deserialize(value1);
|
|
3376
|
+
const date2 = this.adapter.deserialize(value2);
|
|
3377
|
+
return this.formatter.rangeMiddleDateTime(date1, date2, options);
|
|
3378
|
+
}
|
|
3379
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRangeMiddleDateTimePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3380
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqRangeMiddleDateTimePipe, isStandalone: true, name: "kbqRangeMiddleDateTime", pure: false }); }
|
|
3381
|
+
}
|
|
3382
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRangeMiddleDateTimePipe, decorators: [{
|
|
3383
|
+
type: Pipe,
|
|
3384
|
+
args: [{
|
|
3385
|
+
name: 'kbqRangeMiddleDateTime',
|
|
3386
|
+
pure: false
|
|
3387
|
+
}]
|
|
3388
|
+
}] });
|
|
3389
|
+
class KbqRangeShortDateTimePipe extends BaseLocaleAwareFormatterPipe {
|
|
3390
|
+
transform(value, options) {
|
|
3391
|
+
return super.transform(value, options);
|
|
3392
|
+
}
|
|
3393
|
+
format([value1, value2], options) {
|
|
3394
|
+
const date1 = this.adapter.deserialize(value1);
|
|
3395
|
+
const date2 = this.adapter.deserialize(value2);
|
|
3396
|
+
return this.formatter.rangeShortDateTime(date1, date2, options);
|
|
3397
|
+
}
|
|
3398
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRangeShortDateTimePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3399
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqRangeShortDateTimePipe, isStandalone: true, name: "kbqRangeShortDateTime", pure: false }); }
|
|
3400
|
+
}
|
|
3401
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRangeShortDateTimePipe, decorators: [{
|
|
3402
|
+
type: Pipe,
|
|
3403
|
+
args: [{
|
|
3404
|
+
name: 'kbqRangeShortDateTime',
|
|
3405
|
+
pure: false
|
|
3406
|
+
}]
|
|
3407
|
+
}] });
|
|
2594
3408
|
|
|
2595
|
-
/**
|
|
2596
|
-
* @deprecated Will be removed in next major release. Use `KbqMeasurementSystem` instead.
|
|
2597
|
-
* @docs-private
|
|
2598
|
-
*/
|
|
2599
|
-
var MeasurementSystem;
|
|
2600
|
-
(function (MeasurementSystem) {
|
|
2601
|
-
MeasurementSystem["SI"] = "SI";
|
|
2602
|
-
MeasurementSystem["IEC"] = "IEC";
|
|
2603
|
-
})(MeasurementSystem || (MeasurementSystem = {}));
|
|
2604
3409
|
/**
|
|
2605
3410
|
* Available unit systems for file size formatting.
|
|
2606
3411
|
* - SI (Metric): 1 KB = 1000 bytes
|
|
@@ -2706,10 +3511,10 @@ function parseDigitsInfo(digitsInfo) {
|
|
|
2706
3511
|
return result;
|
|
2707
3512
|
}
|
|
2708
3513
|
class KbqDecimalPipe {
|
|
2709
|
-
constructor(
|
|
2710
|
-
this.id =
|
|
2711
|
-
this.localeService =
|
|
2712
|
-
this.options =
|
|
3514
|
+
constructor() {
|
|
3515
|
+
this.id = inject(KBQ_LOCALE_ID, { optional: true });
|
|
3516
|
+
this.localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });
|
|
3517
|
+
this.options = inject(KBQ_NUMBER_FORMATTER_OPTIONS, { optional: true });
|
|
2713
3518
|
this.options = this.options || KBQ_NUMBER_FORMATTER_DEFAULT_OPTIONS;
|
|
2714
3519
|
this.localeService?.changes.subscribe((newId) => (this.id = newId));
|
|
2715
3520
|
}
|
|
@@ -2756,11 +3561,11 @@ class KbqDecimalPipe {
|
|
|
2756
3561
|
grouping === undefined &&
|
|
2757
3562
|
Math.abs(value) < defaultValueForGroupingInRULocale);
|
|
2758
3563
|
}
|
|
2759
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2760
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
2761
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3564
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqDecimalPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3565
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqDecimalPipe, isStandalone: true, name: "kbqNumber", pure: false }); }
|
|
3566
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqDecimalPipe, providedIn: 'root' }); }
|
|
2762
3567
|
}
|
|
2763
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3568
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqDecimalPipe, decorators: [{
|
|
2764
3569
|
type: Injectable,
|
|
2765
3570
|
args: [{ providedIn: 'root' }]
|
|
2766
3571
|
}, {
|
|
@@ -2769,27 +3574,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
|
|
|
2769
3574
|
name: 'kbqNumber',
|
|
2770
3575
|
pure: false
|
|
2771
3576
|
}]
|
|
2772
|
-
}], ctorParameters: () => [
|
|
2773
|
-
type: Optional
|
|
2774
|
-
}, {
|
|
2775
|
-
type: Inject,
|
|
2776
|
-
args: [KBQ_LOCALE_ID]
|
|
2777
|
-
}] }, { type: KbqLocaleService, decorators: [{
|
|
2778
|
-
type: Optional
|
|
2779
|
-
}, {
|
|
2780
|
-
type: Inject,
|
|
2781
|
-
args: [KBQ_LOCALE_SERVICE]
|
|
2782
|
-
}] }, { type: ParsedDigitsInfo, decorators: [{
|
|
2783
|
-
type: Optional
|
|
2784
|
-
}, {
|
|
2785
|
-
type: Inject,
|
|
2786
|
-
args: [KBQ_NUMBER_FORMATTER_OPTIONS]
|
|
2787
|
-
}] }] });
|
|
3577
|
+
}], ctorParameters: () => [] });
|
|
2788
3578
|
class KbqTableNumberPipe {
|
|
2789
|
-
constructor(
|
|
2790
|
-
this.id =
|
|
2791
|
-
this.localeService =
|
|
2792
|
-
this.options =
|
|
3579
|
+
constructor() {
|
|
3580
|
+
this.id = inject(KBQ_LOCALE_ID, { optional: true });
|
|
3581
|
+
this.localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });
|
|
3582
|
+
this.options = inject(KBQ_NUMBER_FORMATTER_OPTIONS, { optional: true });
|
|
2793
3583
|
this.options = this.options || KBQ_NUMBER_FORMATTER_DEFAULT_OPTIONS;
|
|
2794
3584
|
this.localeService?.changes.subscribe((newId) => (this.id = newId));
|
|
2795
3585
|
}
|
|
@@ -2828,11 +3618,11 @@ class KbqTableNumberPipe {
|
|
|
2828
3618
|
throw Error(`InvalidPipeArgument: KbqTableNumberPipe for pipe '${JSON.stringify(error.message)}'`);
|
|
2829
3619
|
}
|
|
2830
3620
|
}
|
|
2831
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2832
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
2833
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3621
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqTableNumberPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3622
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqTableNumberPipe, isStandalone: true, name: "kbqTableNumber", pure: false }); }
|
|
3623
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqTableNumberPipe, providedIn: 'root' }); }
|
|
2834
3624
|
}
|
|
2835
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3625
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqTableNumberPipe, decorators: [{
|
|
2836
3626
|
type: Injectable,
|
|
2837
3627
|
args: [{ providedIn: 'root' }]
|
|
2838
3628
|
}, {
|
|
@@ -2841,29 +3631,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
|
|
|
2841
3631
|
name: 'kbqTableNumber',
|
|
2842
3632
|
pure: false
|
|
2843
3633
|
}]
|
|
2844
|
-
}], ctorParameters: () => [
|
|
2845
|
-
type: Optional
|
|
2846
|
-
}, {
|
|
2847
|
-
type: Inject,
|
|
2848
|
-
args: [KBQ_LOCALE_ID]
|
|
2849
|
-
}] }, { type: KbqLocaleService, decorators: [{
|
|
2850
|
-
type: Optional
|
|
2851
|
-
}, {
|
|
2852
|
-
type: Inject,
|
|
2853
|
-
args: [KBQ_LOCALE_SERVICE]
|
|
2854
|
-
}] }, { type: ParsedDigitsInfo, decorators: [{
|
|
2855
|
-
type: Optional
|
|
2856
|
-
}, {
|
|
2857
|
-
type: Inject,
|
|
2858
|
-
args: [KBQ_NUMBER_FORMATTER_OPTIONS]
|
|
2859
|
-
}] }] });
|
|
3634
|
+
}], ctorParameters: () => [] });
|
|
2860
3635
|
function isWithin(startRange, endRange, valueToCheck) {
|
|
2861
3636
|
return startRange <= valueToCheck && valueToCheck < endRange;
|
|
2862
3637
|
}
|
|
2863
3638
|
class KbqRoundDecimalPipe {
|
|
2864
|
-
constructor(
|
|
2865
|
-
this.id =
|
|
2866
|
-
this.localeService =
|
|
3639
|
+
constructor() {
|
|
3640
|
+
this.id = inject(KBQ_LOCALE_ID, { optional: true });
|
|
3641
|
+
this.localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });
|
|
2867
3642
|
this.localeService?.changes.subscribe((newId) => (this.id = newId));
|
|
2868
3643
|
}
|
|
2869
3644
|
transform(value, locale) {
|
|
@@ -2948,11 +3723,11 @@ class KbqRoundDecimalPipe {
|
|
|
2948
3723
|
});
|
|
2949
3724
|
return currentUnit;
|
|
2950
3725
|
}
|
|
2951
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2952
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
2953
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3726
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRoundDecimalPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3727
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqRoundDecimalPipe, isStandalone: true, name: "kbqRoundNumber", pure: false }); }
|
|
3728
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRoundDecimalPipe, providedIn: 'root' }); }
|
|
2954
3729
|
}
|
|
2955
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3730
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRoundDecimalPipe, decorators: [{
|
|
2956
3731
|
type: Injectable,
|
|
2957
3732
|
args: [{ providedIn: 'root' }]
|
|
2958
3733
|
}, {
|
|
@@ -2961,49 +3736,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
|
|
|
2961
3736
|
name: 'kbqRoundNumber',
|
|
2962
3737
|
pure: false
|
|
2963
3738
|
}]
|
|
2964
|
-
}], ctorParameters: () => [
|
|
2965
|
-
type: Optional
|
|
2966
|
-
}, {
|
|
2967
|
-
type: Inject,
|
|
2968
|
-
args: [KBQ_LOCALE_ID]
|
|
2969
|
-
}] }, { type: KbqLocaleService, decorators: [{
|
|
2970
|
-
type: Optional
|
|
2971
|
-
}, {
|
|
2972
|
-
type: Inject,
|
|
2973
|
-
args: [KBQ_LOCALE_SERVICE]
|
|
2974
|
-
}] }] });
|
|
3739
|
+
}], ctorParameters: () => [] });
|
|
2975
3740
|
|
|
2976
3741
|
const KBQ_INVALID_VALUE_ERROR = 'Argument "value" must be a finite number!';
|
|
2977
|
-
/**
|
|
2978
|
-
*
|
|
2979
|
-
*
|
|
2980
|
-
|
|
2981
|
-
|
|
2982
|
-
|
|
2983
|
-
|
|
2984
|
-
|
|
2985
|
-
|
|
2986
|
-
|
|
2987
|
-
|
|
2988
|
-
|
|
2989
|
-
}
|
|
2990
|
-
return {
|
|
2991
|
-
value: volume,
|
|
2992
|
-
unit
|
|
2993
|
-
};
|
|
2994
|
-
};
|
|
2995
|
-
function getFormattedSizeParts(value, _precision, system) {
|
|
2996
|
-
let resolvedSystem = null;
|
|
2997
|
-
if (arguments.length === 2 && typeof _precision === 'object') {
|
|
2998
|
-
resolvedSystem = _precision;
|
|
2999
|
-
}
|
|
3000
|
-
if (arguments.length === 3 && typeof _precision === 'number' && system) {
|
|
3001
|
-
resolvedSystem = system;
|
|
3002
|
-
}
|
|
3003
|
-
if (!resolvedSystem) {
|
|
3004
|
-
throw new Error('Unexpected arguments size');
|
|
3005
|
-
}
|
|
3006
|
-
const { result, unit } = getHumanizedBytes(value, resolvedSystem);
|
|
3742
|
+
/**
|
|
3743
|
+
* Converts a byte value into locale-independent file size parts: numeric value and unit abbreviation.
|
|
3744
|
+
*
|
|
3745
|
+
* @param value - size in bytes.
|
|
3746
|
+
* @param system - unit system defining abbreviations and base scaling (SI/IEC).
|
|
3747
|
+
* @returns Object with the formatted size info.
|
|
3748
|
+
*
|
|
3749
|
+
* @example
|
|
3750
|
+
* getFormattedSizeParts(1500, 'SI'); // { value: "1.50", unit: "KB" }
|
|
3751
|
+
*/
|
|
3752
|
+
function getFormattedSizeParts(value, system) {
|
|
3753
|
+
const { result, unit } = getHumanizedBytes(value, system);
|
|
3007
3754
|
return {
|
|
3008
3755
|
value: result.toString(),
|
|
3009
3756
|
unit
|
|
@@ -3062,10 +3809,10 @@ class KbqDataSizePipe {
|
|
|
3062
3809
|
const formattedValue = this.numberPipe?.transform(value, `1.0-${precision}`, locale) || value;
|
|
3063
3810
|
return formattedValue ? `${formattedValue}${this.nonBreakingSpace}${unit}` : '';
|
|
3064
3811
|
}
|
|
3065
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3066
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
3812
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqDataSizePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3813
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqDataSizePipe, isStandalone: true, name: "kbqDataSize", pure: false }); }
|
|
3067
3814
|
}
|
|
3068
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3815
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqDataSizePipe, decorators: [{
|
|
3069
3816
|
type: Pipe,
|
|
3070
3817
|
args: [{
|
|
3071
3818
|
name: 'kbqDataSize',
|
|
@@ -3074,8 +3821,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
|
|
|
3074
3821
|
}], ctorParameters: () => [] });
|
|
3075
3822
|
|
|
3076
3823
|
class KbqFormattersModule {
|
|
3077
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3078
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
3824
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqFormattersModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
3825
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqFormattersModule, imports: [AbsoluteDateFormatterPipe,
|
|
3079
3826
|
AbsoluteDateTimeFormatterPipe,
|
|
3080
3827
|
AbsoluteDateShortFormatterPipe,
|
|
3081
3828
|
AbsoluteShortDateTimeFormatterPipe,
|
|
@@ -3101,6 +3848,19 @@ class KbqFormattersModule {
|
|
|
3101
3848
|
RangeDateTimeFormatterImpurePipe,
|
|
3102
3849
|
RangeShortDateTimeFormatterImpurePipe,
|
|
3103
3850
|
RangeMiddleDateTimeFormatterImpurePipe,
|
|
3851
|
+
KbqAbsoluteLongDatePipe,
|
|
3852
|
+
KbqAbsoluteLongDateTimePipe,
|
|
3853
|
+
KbqAbsoluteShortDatePipe,
|
|
3854
|
+
KbqAbsoluteShortDateTimePipe,
|
|
3855
|
+
KbqRelativeLongDatePipe,
|
|
3856
|
+
KbqRelativeLongDateTimePipe,
|
|
3857
|
+
KbqRelativeShortDatePipe,
|
|
3858
|
+
KbqRelativeShortDateTimePipe,
|
|
3859
|
+
KbqRangeLongDatePipe,
|
|
3860
|
+
KbqRangeLongDateTimePipe,
|
|
3861
|
+
KbqRangeMiddleDateTimePipe,
|
|
3862
|
+
KbqRangeShortDatePipe,
|
|
3863
|
+
KbqRangeShortDateTimePipe,
|
|
3104
3864
|
KbqDataSizePipe,
|
|
3105
3865
|
KbqDecimalPipe,
|
|
3106
3866
|
KbqRoundDecimalPipe,
|
|
@@ -3133,10 +3893,23 @@ class KbqFormattersModule {
|
|
|
3133
3893
|
RangeDateTimeFormatterImpurePipe,
|
|
3134
3894
|
RangeShortDateTimeFormatterImpurePipe,
|
|
3135
3895
|
RangeMiddleDateTimeFormatterImpurePipe,
|
|
3896
|
+
KbqAbsoluteLongDatePipe,
|
|
3897
|
+
KbqAbsoluteLongDateTimePipe,
|
|
3898
|
+
KbqAbsoluteShortDatePipe,
|
|
3899
|
+
KbqAbsoluteShortDateTimePipe,
|
|
3900
|
+
KbqRelativeLongDatePipe,
|
|
3901
|
+
KbqRelativeLongDateTimePipe,
|
|
3902
|
+
KbqRelativeShortDatePipe,
|
|
3903
|
+
KbqRelativeShortDateTimePipe,
|
|
3904
|
+
KbqRangeLongDatePipe,
|
|
3905
|
+
KbqRangeLongDateTimePipe,
|
|
3906
|
+
KbqRangeMiddleDateTimePipe,
|
|
3907
|
+
KbqRangeShortDatePipe,
|
|
3908
|
+
KbqRangeShortDateTimePipe,
|
|
3136
3909
|
KbqDataSizePipe] }); }
|
|
3137
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
3910
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqFormattersModule, providers: [DateFormatter] }); }
|
|
3138
3911
|
}
|
|
3139
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3912
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqFormattersModule, decorators: [{
|
|
3140
3913
|
type: NgModule,
|
|
3141
3914
|
args: [{
|
|
3142
3915
|
imports: [
|
|
@@ -3166,11 +3939,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
|
|
|
3166
3939
|
RangeDateTimeFormatterImpurePipe,
|
|
3167
3940
|
RangeShortDateTimeFormatterImpurePipe,
|
|
3168
3941
|
RangeMiddleDateTimeFormatterImpurePipe,
|
|
3942
|
+
KbqAbsoluteLongDatePipe,
|
|
3943
|
+
KbqAbsoluteLongDateTimePipe,
|
|
3944
|
+
KbqAbsoluteShortDatePipe,
|
|
3945
|
+
KbqAbsoluteShortDateTimePipe,
|
|
3946
|
+
KbqRelativeLongDatePipe,
|
|
3947
|
+
KbqRelativeLongDateTimePipe,
|
|
3948
|
+
KbqRelativeShortDatePipe,
|
|
3949
|
+
KbqRelativeShortDateTimePipe,
|
|
3950
|
+
KbqRangeLongDatePipe,
|
|
3951
|
+
KbqRangeLongDateTimePipe,
|
|
3952
|
+
KbqRangeMiddleDateTimePipe,
|
|
3953
|
+
KbqRangeShortDatePipe,
|
|
3954
|
+
KbqRangeShortDateTimePipe,
|
|
3169
3955
|
KbqDataSizePipe,
|
|
3170
3956
|
KbqDecimalPipe,
|
|
3171
3957
|
KbqRoundDecimalPipe,
|
|
3172
3958
|
KbqTableNumberPipe
|
|
3173
3959
|
],
|
|
3960
|
+
providers: [DateFormatter],
|
|
3174
3961
|
exports: [
|
|
3175
3962
|
KbqDecimalPipe,
|
|
3176
3963
|
KbqRoundDecimalPipe,
|
|
@@ -3201,20 +3988,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
|
|
|
3201
3988
|
RangeDateTimeFormatterImpurePipe,
|
|
3202
3989
|
RangeShortDateTimeFormatterImpurePipe,
|
|
3203
3990
|
RangeMiddleDateTimeFormatterImpurePipe,
|
|
3991
|
+
KbqAbsoluteLongDatePipe,
|
|
3992
|
+
KbqAbsoluteLongDateTimePipe,
|
|
3993
|
+
KbqAbsoluteShortDatePipe,
|
|
3994
|
+
KbqAbsoluteShortDateTimePipe,
|
|
3995
|
+
KbqRelativeLongDatePipe,
|
|
3996
|
+
KbqRelativeLongDateTimePipe,
|
|
3997
|
+
KbqRelativeShortDatePipe,
|
|
3998
|
+
KbqRelativeShortDateTimePipe,
|
|
3999
|
+
KbqRangeLongDatePipe,
|
|
4000
|
+
KbqRangeLongDateTimePipe,
|
|
4001
|
+
KbqRangeMiddleDateTimePipe,
|
|
4002
|
+
KbqRangeShortDatePipe,
|
|
4003
|
+
KbqRangeShortDateTimePipe,
|
|
3204
4004
|
KbqDataSizePipe
|
|
3205
|
-
]
|
|
3206
|
-
providers: [{ provide: DateFormatter, deps: [DateAdapter, KBQ_DATE_LOCALE] }]
|
|
4005
|
+
]
|
|
3207
4006
|
}]
|
|
3208
4007
|
}] });
|
|
3209
4008
|
|
|
3210
4009
|
class KbqFormElement {
|
|
3211
|
-
constructor(
|
|
3212
|
-
this.element =
|
|
4010
|
+
constructor() {
|
|
4011
|
+
this.element = inject(ElementRef);
|
|
3213
4012
|
this.margin = false;
|
|
3214
4013
|
this.isRow = false;
|
|
3215
4014
|
this.isFieldSet = false;
|
|
3216
4015
|
this.hasLegend = false;
|
|
3217
4016
|
this.isHorizontal = false;
|
|
4017
|
+
this.elements = contentChildren(KbqFormElement, ...(ngDevMode ? [{ debugName: "elements" }] : []));
|
|
3218
4018
|
}
|
|
3219
4019
|
ngAfterContentInit() {
|
|
3220
4020
|
const classList = this.element.nativeElement.classList;
|
|
@@ -3225,60 +4025,57 @@ class KbqFormElement {
|
|
|
3225
4025
|
this.hasLegend = this.element.nativeElement.firstElementChild.classList.contains('kbq-form__legend');
|
|
3226
4026
|
}
|
|
3227
4027
|
}
|
|
3228
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3229
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
4028
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqFormElement, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
4029
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "20.3.25", type: KbqFormElement, isStandalone: true, selector: ".kbq-form__row, .kbq-form__fieldset, .kbq-form__legend", host: { properties: { "class.kbq-form-row_margin": "margin" } }, queries: [{ propertyName: "elements", predicate: KbqFormElement, isSignal: true }], exportAs: ["kbqFormElement"], ngImport: i0 }); }
|
|
3230
4030
|
}
|
|
3231
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4031
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqFormElement, decorators: [{
|
|
3232
4032
|
type: Directive,
|
|
3233
4033
|
args: [{
|
|
3234
4034
|
selector: '.kbq-form__row, .kbq-form__fieldset, .kbq-form__legend',
|
|
3235
|
-
exportAs: 'kbqFormElement',
|
|
3236
4035
|
host: {
|
|
3237
4036
|
'[class.kbq-form-row_margin]': 'margin'
|
|
3238
|
-
}
|
|
4037
|
+
},
|
|
4038
|
+
exportAs: 'kbqFormElement'
|
|
3239
4039
|
}]
|
|
3240
|
-
}],
|
|
3241
|
-
type: ContentChildren,
|
|
3242
|
-
args: [KbqFormElement]
|
|
3243
|
-
}] } });
|
|
4040
|
+
}], propDecorators: { elements: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => KbqFormElement), { isSignal: true }] }] } });
|
|
3244
4041
|
class KbqForm {
|
|
4042
|
+
constructor() {
|
|
4043
|
+
this.elements = contentChildren(KbqFormElement, ...(ngDevMode ? [{ debugName: "elements" }] : []));
|
|
4044
|
+
}
|
|
3245
4045
|
ngAfterContentInit() {
|
|
3246
|
-
this.handleElements(this.elements);
|
|
4046
|
+
this.handleElements(this.elements());
|
|
3247
4047
|
}
|
|
3248
4048
|
handleElements(elements) {
|
|
3249
4049
|
elements.forEach((element, index) => {
|
|
3250
|
-
const nextElement = elements
|
|
4050
|
+
const nextElement = elements[index + 1];
|
|
3251
4051
|
if (element.isFieldSet && !element.isHorizontal) {
|
|
3252
|
-
this.handleElements(element.elements);
|
|
4052
|
+
this.handleElements(element.elements());
|
|
3253
4053
|
}
|
|
3254
4054
|
element.margin = !!(nextElement && !nextElement.hasLegend);
|
|
3255
4055
|
});
|
|
3256
4056
|
}
|
|
3257
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3258
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
4057
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqForm, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
4058
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "20.3.25", type: KbqForm, isStandalone: true, selector: ".kbq-form-vertical, .kbq-form-horizontal", host: { classAttribute: "kbq-form" }, queries: [{ propertyName: "elements", predicate: KbqFormElement, isSignal: true }], exportAs: ["kbqForm"], ngImport: i0 }); }
|
|
3259
4059
|
}
|
|
3260
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4060
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqForm, decorators: [{
|
|
3261
4061
|
type: Directive,
|
|
3262
4062
|
args: [{
|
|
3263
4063
|
selector: '.kbq-form-vertical, .kbq-form-horizontal',
|
|
3264
|
-
exportAs: 'kbqForm',
|
|
3265
4064
|
host: {
|
|
3266
4065
|
class: 'kbq-form'
|
|
3267
|
-
}
|
|
4066
|
+
},
|
|
4067
|
+
exportAs: 'kbqForm'
|
|
3268
4068
|
}]
|
|
3269
|
-
}], propDecorators: { elements: [{
|
|
3270
|
-
type: ContentChildren,
|
|
3271
|
-
args: [KbqFormElement]
|
|
3272
|
-
}] } });
|
|
4069
|
+
}], propDecorators: { elements: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => KbqFormElement), { isSignal: true }] }] } });
|
|
3273
4070
|
|
|
3274
4071
|
class KbqFormsModule {
|
|
3275
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3276
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
4072
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqFormsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
4073
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqFormsModule, imports: [KbqForm,
|
|
3277
4074
|
KbqFormElement], exports: [KbqForm,
|
|
3278
4075
|
KbqFormElement] }); }
|
|
3279
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
4076
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqFormsModule }); }
|
|
3280
4077
|
}
|
|
3281
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4078
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqFormsModule, decorators: [{
|
|
3282
4079
|
type: NgModule,
|
|
3283
4080
|
args: [{
|
|
3284
4081
|
imports: [
|
|
@@ -3477,8 +4274,7 @@ class FileValidators {
|
|
|
3477
4274
|
const HTML_ESCAPES = { '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' };
|
|
3478
4275
|
const HTML_SPECIAL_CHARS = /[&<>"']/;
|
|
3479
4276
|
const HTML_SPECIAL_CHARS_GLOBAL = new RegExp(HTML_SPECIAL_CHARS.source, 'g');
|
|
3480
|
-
/**
|
|
3481
|
-
const kbqHighlightMark = (text) => `<mark class="kbq-highlight">${text}</mark>`;
|
|
4277
|
+
/** Escapes characters in the specified string that have special meaning in a regular expression. */
|
|
3482
4278
|
function escapeRegExp(value) {
|
|
3483
4279
|
if (value) {
|
|
3484
4280
|
return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
@@ -3490,39 +4286,60 @@ function escapeHtml(value) {
|
|
|
3490
4286
|
return value;
|
|
3491
4287
|
return value.replace(HTML_SPECIAL_CHARS_GLOBAL, (chr) => HTML_ESCAPES[chr] ?? chr);
|
|
3492
4288
|
}
|
|
4289
|
+
/** @docs-private */
|
|
4290
|
+
function highlight(value, keyword, mark) {
|
|
4291
|
+
if (typeof value !== 'string')
|
|
4292
|
+
return '';
|
|
4293
|
+
if (!keyword || typeof keyword !== 'string')
|
|
4294
|
+
return escapeHtml(value);
|
|
4295
|
+
const parts = value.split(new RegExp(`(${escapeRegExp(keyword)})`, 'gi'));
|
|
4296
|
+
return parts
|
|
4297
|
+
.map((part, i) => {
|
|
4298
|
+
const escaped = escapeHtml(part);
|
|
4299
|
+
const isMatch = i % 2 === 1;
|
|
4300
|
+
return isMatch ? mark(escaped) : escaped;
|
|
4301
|
+
})
|
|
4302
|
+
.join('');
|
|
4303
|
+
}
|
|
4304
|
+
|
|
4305
|
+
/** @docs-private */
|
|
4306
|
+
const kbqHighlightBackgroundMark = (text) => `<mark class="kbq-highlight-background">${text}</mark>`;
|
|
4307
|
+
class KbqHighlightBackgroundPipe {
|
|
4308
|
+
transform(value, keyword) {
|
|
4309
|
+
return highlight(value, keyword, kbqHighlightBackgroundMark);
|
|
4310
|
+
}
|
|
4311
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqHighlightBackgroundPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
4312
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqHighlightBackgroundPipe, isStandalone: true, name: "kbqHighlightBackground" }); }
|
|
4313
|
+
}
|
|
4314
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqHighlightBackgroundPipe, decorators: [{
|
|
4315
|
+
type: Pipe,
|
|
4316
|
+
args: [{ name: 'kbqHighlightBackground' }]
|
|
4317
|
+
}] });
|
|
4318
|
+
|
|
4319
|
+
/** @docs-private */
|
|
4320
|
+
const kbqHighlightMark = (text) => `<mark class="kbq-highlight">${text}</mark>`;
|
|
3493
4321
|
class KbqHighlightPipe {
|
|
3494
|
-
transform(value,
|
|
3495
|
-
|
|
3496
|
-
|
|
3497
|
-
|
|
3498
|
-
|
|
3499
|
-
|
|
3500
|
-
|
|
3501
|
-
.map((part, i) => {
|
|
3502
|
-
const escaped = escapeHtml(part);
|
|
3503
|
-
const isMatch = i % 2 === 1;
|
|
3504
|
-
return isMatch ? kbqHighlightMark(escaped) : escaped;
|
|
3505
|
-
})
|
|
3506
|
-
.join('');
|
|
3507
|
-
}
|
|
3508
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqHighlightPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
3509
|
-
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: KbqHighlightPipe, isStandalone: true, name: "mcHighlight" }); }
|
|
3510
|
-
}
|
|
3511
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqHighlightPipe, decorators: [{
|
|
4322
|
+
transform(value, keyword) {
|
|
4323
|
+
return highlight(value, keyword, kbqHighlightMark);
|
|
4324
|
+
}
|
|
4325
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqHighlightPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
4326
|
+
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqHighlightPipe, isStandalone: true, name: "mcHighlight" }); }
|
|
4327
|
+
}
|
|
4328
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqHighlightPipe, decorators: [{
|
|
3512
4329
|
type: Pipe,
|
|
3513
4330
|
args: [{ name: 'mcHighlight' }]
|
|
3514
4331
|
}] });
|
|
3515
4332
|
|
|
3516
4333
|
class KbqHighlightModule {
|
|
3517
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3518
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
3519
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
4334
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqHighlightModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
4335
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqHighlightModule, imports: [KbqHighlightPipe, KbqHighlightBackgroundPipe], exports: [KbqHighlightPipe, KbqHighlightBackgroundPipe] }); }
|
|
4336
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqHighlightModule }); }
|
|
3520
4337
|
}
|
|
3521
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4338
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqHighlightModule, decorators: [{
|
|
3522
4339
|
type: NgModule,
|
|
3523
4340
|
args: [{
|
|
3524
|
-
imports: [
|
|
3525
|
-
exports: [KbqHighlightPipe]
|
|
4341
|
+
imports: [KbqHighlightPipe, KbqHighlightBackgroundPipe],
|
|
4342
|
+
exports: [KbqHighlightPipe, KbqHighlightBackgroundPipe]
|
|
3526
4343
|
}]
|
|
3527
4344
|
}] });
|
|
3528
4345
|
|
|
@@ -3532,10 +4349,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
|
|
|
3532
4349
|
* counted by checking the query list's length.
|
|
3533
4350
|
*/
|
|
3534
4351
|
class KbqLine {
|
|
3535
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3536
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
4352
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqLine, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
4353
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: KbqLine, isStandalone: true, selector: "[kbq-line], [mcLine]", host: { classAttribute: "kbq-line" }, ngImport: i0 }); }
|
|
3537
4354
|
}
|
|
3538
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4355
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqLine, decorators: [{
|
|
3539
4356
|
type: Directive,
|
|
3540
4357
|
args: [{
|
|
3541
4358
|
selector: '[kbq-line], [mcLine]',
|
|
@@ -3601,10 +4418,10 @@ class KbqRectangleItem {
|
|
|
3601
4418
|
const { width, marginLeft, marginRight } = this.window.getComputedStyle(this.nativeElement);
|
|
3602
4419
|
return [width, marginLeft, marginRight].reduce((acc, item) => acc + parseInt(item), 0);
|
|
3603
4420
|
}
|
|
3604
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3605
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
4421
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRectangleItem, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
4422
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: KbqRectangleItem, isStandalone: true, host: { properties: { "class.kbq-expanded": "!collapsed", "class.kbq-collapsed": "collapsed" } }, ngImport: i0 }); }
|
|
3606
4423
|
}
|
|
3607
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4424
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqRectangleItem, decorators: [{
|
|
3608
4425
|
type: Directive,
|
|
3609
4426
|
args: [{
|
|
3610
4427
|
host: {
|
|
@@ -3624,6 +4441,8 @@ class KbqOptionActionComponent {
|
|
|
3624
4441
|
this.hasFocus = false;
|
|
3625
4442
|
this.destroyRef = inject(DestroyRef);
|
|
3626
4443
|
}
|
|
4444
|
+
// TODO: Skipped for migration because:
|
|
4445
|
+
// Accessor inputs cannot be migrated as they are too complex.
|
|
3627
4446
|
get disabled() {
|
|
3628
4447
|
return this._disabled;
|
|
3629
4448
|
}
|
|
@@ -3687,20 +4506,20 @@ class KbqOptionActionComponent {
|
|
|
3687
4506
|
this.option.tooltipTrigger.disabled = true;
|
|
3688
4507
|
setTimeout(() => (this.option.tooltipTrigger.disabled = false));
|
|
3689
4508
|
}
|
|
3690
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3691
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "
|
|
4509
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqOptionActionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4510
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "20.3.25", type: KbqOptionActionComponent, isStandalone: true, selector: "kbq-option-action", inputs: { disabled: ["disabled", "disabled", booleanAttribute] }, host: { listeners: { "click": "onClick($event)", "keydown": "onKeyDown($event)" }, properties: { "class.kbq-expanded": "false", "class.kbq-disabled": "disabled", "attr.disabled": "disabled || null", "attr.tabIndex": "-1" }, classAttribute: "kbq-option-action" }, exportAs: ["kbqOptionAction"], ngImport: i0, template: `
|
|
3692
4511
|
<ng-content select="[kbq-icon]">
|
|
3693
4512
|
<i class="kbq kbq-icon kbq-contrast-fade kbq-ellipsis-vertical_16"></i>
|
|
3694
4513
|
</ng-content>
|
|
3695
4514
|
`, isInline: true, styles: [".kbq-option-action{display:flex;align-items:center;justify-content:center;cursor:pointer;outline:none;border:var(--kbq-size-3xs) solid transparent;border-radius:var(--kbq-size-xs);width:var(--kbq-size-xl);height:var(--kbq-size-xl)}.kbq-option-action:not(.kbq-disabled):hover .kbq-icon,.kbq-option-action:not(.kbq-disabled):focus .kbq-icon{color:var(--kbq-icon-button-fade-contrast-states-hover)}.kbq-option-action.kbq-disabled{cursor:default}.kbq-option-action.cdk-keyboard-focused{z-index:1;border-color:var(--kbq-states-line-focus-theme)}.kbq-option-action:active .kbq-icon.kbq-empty,.kbq-option-action.kbq-pressed .kbq-icon.kbq-empty{color:var(--kbq-states-icon-contrast-fade-active)}.kbq-option-action:active,.kbq-option-action.kbq-pressed{background-color:var(--kbq-background-transparent)}.kbq-option-action:hover .kbq-icon.kbq-empty{color:var(--kbq-states-icon-contrast-fade-hover)}.kbq-option-action.kbq-disabled .kbq-icon.kbq-empty{color:var(--kbq-states-icon-disabled)}.kbq-option-action.kbq-disabled{background-color:var(--kbq-background-transparent)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
3696
4515
|
}
|
|
3697
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4516
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqOptionActionComponent, decorators: [{
|
|
3698
4517
|
type: Component,
|
|
3699
|
-
args: [{ selector: 'kbq-option-action',
|
|
4518
|
+
args: [{ selector: 'kbq-option-action', template: `
|
|
3700
4519
|
<ng-content select="[kbq-icon]">
|
|
3701
4520
|
<i class="kbq kbq-icon kbq-contrast-fade kbq-ellipsis-vertical_16"></i>
|
|
3702
4521
|
</ng-content>
|
|
3703
|
-
`, host: {
|
|
4522
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
3704
4523
|
class: 'kbq-option-action',
|
|
3705
4524
|
'[class.kbq-expanded]': 'false',
|
|
3706
4525
|
'[class.kbq-disabled]': 'disabled',
|
|
@@ -3708,31 +4527,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
|
|
|
3708
4527
|
'[attr.tabIndex]': '-1',
|
|
3709
4528
|
'(click)': 'onClick($event)',
|
|
3710
4529
|
'(keydown)': 'onKeyDown($event)'
|
|
3711
|
-
},
|
|
4530
|
+
}, exportAs: 'kbqOptionAction', styles: [".kbq-option-action{display:flex;align-items:center;justify-content:center;cursor:pointer;outline:none;border:var(--kbq-size-3xs) solid transparent;border-radius:var(--kbq-size-xs);width:var(--kbq-size-xl);height:var(--kbq-size-xl)}.kbq-option-action:not(.kbq-disabled):hover .kbq-icon,.kbq-option-action:not(.kbq-disabled):focus .kbq-icon{color:var(--kbq-icon-button-fade-contrast-states-hover)}.kbq-option-action.kbq-disabled{cursor:default}.kbq-option-action.cdk-keyboard-focused{z-index:1;border-color:var(--kbq-states-line-focus-theme)}.kbq-option-action:active .kbq-icon.kbq-empty,.kbq-option-action.kbq-pressed .kbq-icon.kbq-empty{color:var(--kbq-states-icon-contrast-fade-active)}.kbq-option-action:active,.kbq-option-action.kbq-pressed{background-color:var(--kbq-background-transparent)}.kbq-option-action:hover .kbq-icon.kbq-empty{color:var(--kbq-states-icon-contrast-fade-hover)}.kbq-option-action.kbq-disabled .kbq-icon.kbq-empty{color:var(--kbq-states-icon-disabled)}.kbq-option-action.kbq-disabled{background-color:var(--kbq-background-transparent)}\n"] }]
|
|
3712
4531
|
}], propDecorators: { disabled: [{
|
|
3713
4532
|
type: Input,
|
|
3714
4533
|
args: [{ transform: booleanAttribute }]
|
|
3715
4534
|
}] } });
|
|
3716
4535
|
|
|
3717
4536
|
class KbqActionContainer {
|
|
3718
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3719
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
4537
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqActionContainer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4538
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: KbqActionContainer, isStandalone: true, selector: "kbq-action-container", host: { classAttribute: "kbq-action-container" }, exportAs: ["kbqActionContainer"], ngImport: i0, template: `
|
|
3720
4539
|
<div class="kbq-action-container__gradient"></div>
|
|
3721
4540
|
<div class="kbq-action-container__box">
|
|
3722
4541
|
<ng-content />
|
|
3723
4542
|
</div>
|
|
3724
|
-
`, isInline: true, styles: [".kbq-action-container{box-sizing:border-box;position:absolute;right:0;top:0;bottom:0;display:none;align-items:center;overflow:hidden;border:1px solid transparent;border-top-right-radius:var(--kbq-size-xs);border-bottom-right-radius:var(--kbq-size-xs)}.kbq-action-container__gradient{display:flex;margin-right:calc(var(--kbq-size-xs) * -1);width:var(--kbq-size-3xl);height:100%;background:linear-gradient(var(--kbq-option-background),var(--kbq-option-background)),var(--kbq-background-bg);mask-image:linear-gradient(to right,transparent 0%,black var(--kbq-size-xxl))}.kbq-action-container__box{height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(var(--kbq-option-background),var(--kbq-option-background)),var(--kbq-background-bg)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
4543
|
+
`, isInline: true, styles: [".kbq-action-container{box-sizing:border-box;position:absolute;right:0;top:0;bottom:0;display:none;align-items:center;overflow:hidden;border:1px solid transparent;border-top-right-radius:var(--kbq-size-xs);border-bottom-right-radius:var(--kbq-size-xs)}.kbq-action-container__gradient{display:flex;margin-right:calc(var(--kbq-size-xs) * -1);width:var(--kbq-size-3xl);height:100%;background:linear-gradient(var(--kbq-option-background),var(--kbq-option-background)),var(--kbq-background-bg);-webkit-mask-image:linear-gradient(to right,transparent 0%,black var(--kbq-size-xxl));mask-image:linear-gradient(to right,transparent 0%,black var(--kbq-size-xxl))}.kbq-action-container__box{height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(var(--kbq-option-background),var(--kbq-option-background)),var(--kbq-background-bg)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
3725
4544
|
}
|
|
3726
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4545
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqActionContainer, decorators: [{
|
|
3727
4546
|
type: Component,
|
|
3728
|
-
args: [{ selector: 'kbq-action-container',
|
|
4547
|
+
args: [{ selector: 'kbq-action-container', template: `
|
|
3729
4548
|
<div class="kbq-action-container__gradient"></div>
|
|
3730
4549
|
<div class="kbq-action-container__box">
|
|
3731
4550
|
<ng-content />
|
|
3732
4551
|
</div>
|
|
3733
|
-
`, host: {
|
|
4552
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
3734
4553
|
class: 'kbq-action-container'
|
|
3735
|
-
},
|
|
4554
|
+
}, exportAs: 'kbqActionContainer', styles: [".kbq-action-container{box-sizing:border-box;position:absolute;right:0;top:0;bottom:0;display:none;align-items:center;overflow:hidden;border:1px solid transparent;border-top-right-radius:var(--kbq-size-xs);border-bottom-right-radius:var(--kbq-size-xs)}.kbq-action-container__gradient{display:flex;margin-right:calc(var(--kbq-size-xs) * -1);width:var(--kbq-size-3xl);height:100%;background:linear-gradient(var(--kbq-option-background),var(--kbq-option-background)),var(--kbq-background-bg);-webkit-mask-image:linear-gradient(to right,transparent 0%,black var(--kbq-size-xxl));mask-image:linear-gradient(to right,transparent 0%,black var(--kbq-size-xxl))}.kbq-action-container__box{height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(var(--kbq-option-background),var(--kbq-option-background)),var(--kbq-background-bg)}\n"] }]
|
|
3736
4555
|
}] });
|
|
3737
4556
|
|
|
3738
4557
|
let uniqueOptgroupIdCounter = 0;
|
|
@@ -3742,10 +4561,13 @@ let uniqueOptgroupIdCounter = 0;
|
|
|
3742
4561
|
*/
|
|
3743
4562
|
class KbqOptgroup {
|
|
3744
4563
|
constructor() {
|
|
4564
|
+
this.label = input(undefined, ...(ngDevMode ? [{ debugName: "label" }] : []));
|
|
3745
4565
|
this._disabled = false;
|
|
3746
4566
|
/** Unique id for the underlying label. */
|
|
3747
4567
|
this.labelId = `kbq-optgroup-label-${uniqueOptgroupIdCounter++}`;
|
|
3748
4568
|
}
|
|
4569
|
+
// TODO: Skipped for migration because:
|
|
4570
|
+
// Accessor inputs cannot be migrated as they are too complex.
|
|
3749
4571
|
get disabled() {
|
|
3750
4572
|
return this._disabled;
|
|
3751
4573
|
}
|
|
@@ -3754,18 +4576,16 @@ class KbqOptgroup {
|
|
|
3754
4576
|
this._disabled = value;
|
|
3755
4577
|
}
|
|
3756
4578
|
}
|
|
3757
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3758
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
4579
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqOptgroup, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4580
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.25", type: KbqOptgroup, isStandalone: true, selector: "kbq-optgroup", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: booleanAttribute } }, host: { properties: { "class.kbq-disabled": "disabled" }, classAttribute: "kbq-optgroup" }, exportAs: ["kbqOptgroup"], ngImport: i0, template: "<label class=\"kbq-optgroup-label\" [id]=\"labelId\">\n {{ label() }}\n</label>\n<ng-content select=\"kbq-option, kbq-list-option, kbq-timezone-option, ng-container\" />\n", styles: [".kbq-optgroup-label{display:flex;align-items:center;box-sizing:border-box;padding:var(--kbq-size-s) var(--kbq-size-l) var(--kbq-size-s) var(--kbq-size-m);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.kbq-optgroup-label{--kbq-optgroup-label-color: var(--kbq-foreground-contrast-secondary);color:var(--kbq-optgroup-label-color)}.kbq-disabled .kbq-optgroup-label{--kbq-optgroup-label-color: var(--kbq-states-foreground-disabled)}.kbq-optgroup-label{font-size:var(--kbq-typography-caps-compact-strong-font-size);font-style:var(--kbq-typography-caps-compact-strong-font-style);font-weight:var(--kbq-typography-caps-compact-strong-font-weight);line-height:var(--kbq-typography-caps-compact-strong-line-height);font-family:var(--kbq-typography-caps-compact-strong-font-family);text-transform:var(--kbq-typography-caps-compact-strong-text-transform);font-feature-settings:var(--kbq-typography-caps-compact-strong-font-feature-settings);letter-spacing:var(--kbq-typography-caps-compact-strong-letter-spacing)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
3759
4581
|
}
|
|
3760
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4582
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqOptgroup, decorators: [{
|
|
3761
4583
|
type: Component,
|
|
3762
|
-
args: [{ selector: 'kbq-optgroup',
|
|
4584
|
+
args: [{ selector: 'kbq-optgroup', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
3763
4585
|
class: 'kbq-optgroup',
|
|
3764
4586
|
'[class.kbq-disabled]': 'disabled'
|
|
3765
|
-
}, template: "<label class=\"kbq-optgroup-label\" [id]=\"labelId\">\n {{ label }}\n</label>\n<ng-content select=\"kbq-option, kbq-list-option, kbq-timezone-option, ng-container\" />\n", styles: [".kbq-optgroup-label{display:flex;align-items:center;box-sizing:border-box;padding:var(--kbq-size-s) var(--kbq-size-l) var(--kbq-size-s) var(--kbq-size-m);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.kbq-optgroup-label{--kbq-optgroup-label-color: var(--kbq-foreground-contrast-secondary);color:var(--kbq-optgroup-label-color)}.kbq-disabled .kbq-optgroup-label{--kbq-optgroup-label-color: var(--kbq-states-foreground-disabled)}.kbq-optgroup-label{font-size:var(--kbq-typography-caps-compact-strong-font-size);font-style:var(--kbq-typography-caps-compact-strong-font-style);font-weight:var(--kbq-typography-caps-compact-strong-font-weight);line-height:var(--kbq-typography-caps-compact-strong-line-height);font-family:var(--kbq-typography-caps-compact-strong-font-family);text-transform:var(--kbq-typography-caps-compact-strong-text-transform);font-feature-settings:var(--kbq-typography-caps-compact-strong-font-feature-settings);letter-spacing:var(--kbq-typography-caps-compact-strong-letter-spacing)}\n"] }]
|
|
3766
|
-
}], propDecorators: { label: [{
|
|
3767
|
-
type: Input
|
|
3768
|
-
}], disabled: [{
|
|
4587
|
+
}, exportAs: 'kbqOptgroup', template: "<label class=\"kbq-optgroup-label\" [id]=\"labelId\">\n {{ label() }}\n</label>\n<ng-content select=\"kbq-option, kbq-list-option, kbq-timezone-option, ng-container\" />\n", styles: [".kbq-optgroup-label{display:flex;align-items:center;box-sizing:border-box;padding:var(--kbq-size-s) var(--kbq-size-l) var(--kbq-size-s) var(--kbq-size-m);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.kbq-optgroup-label{--kbq-optgroup-label-color: var(--kbq-foreground-contrast-secondary);color:var(--kbq-optgroup-label-color)}.kbq-disabled .kbq-optgroup-label{--kbq-optgroup-label-color: var(--kbq-states-foreground-disabled)}.kbq-optgroup-label{font-size:var(--kbq-typography-caps-compact-strong-font-size);font-style:var(--kbq-typography-caps-compact-strong-font-style);font-weight:var(--kbq-typography-caps-compact-strong-font-weight);line-height:var(--kbq-typography-caps-compact-strong-line-height);font-family:var(--kbq-typography-caps-compact-strong-font-family);text-transform:var(--kbq-typography-caps-compact-strong-text-transform);font-feature-settings:var(--kbq-typography-caps-compact-strong-font-feature-settings);letter-spacing:var(--kbq-typography-caps-compact-strong-letter-spacing)}\n"] }]
|
|
4588
|
+
}], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], disabled: [{
|
|
3769
4589
|
type: Input,
|
|
3770
4590
|
args: [{ transform: booleanAttribute }]
|
|
3771
4591
|
}] } });
|
|
@@ -3792,43 +4612,89 @@ var MultipleMode;
|
|
|
3792
4612
|
class KbqPseudoCheckbox extends KbqColorDirective {
|
|
3793
4613
|
constructor() {
|
|
3794
4614
|
super(...arguments);
|
|
3795
|
-
this.big = false;
|
|
3796
|
-
this.state = 'unchecked';
|
|
3797
|
-
this.disabled = false;
|
|
4615
|
+
this.big = input(false, ...(ngDevMode ? [{ debugName: "big" }] : []));
|
|
4616
|
+
this.state = input('unchecked', ...(ngDevMode ? [{ debugName: "state" }] : []));
|
|
4617
|
+
this.disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
|
|
3798
4618
|
}
|
|
3799
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3800
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
4619
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPseudoCheckbox, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
4620
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.25", type: KbqPseudoCheckbox, isStandalone: true, selector: "kbq-pseudo-checkbox", inputs: { big: { classPropertyName: "big", publicName: "big", isSignal: true, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.kbq-checkbox_big": "big()", "class.kbq-indeterminate": "state() === \"indeterminate\"", "class.kbq-checked": "state() === true || state() === \"checked\"", "class.kbq-disabled": "disabled()" }, classAttribute: "kbq-pseudo-checkbox" }, usesInheritance: true, ngImport: i0, template: "<i class=\"kbq-checkbox-checkmark kbq kbq-check-s_16\"></i>\n<i class=\"kbq-checkbox-mixedmark kbq kbq-minus-s_16\"></i>\n", styles: [".kbq-pseudo-checkbox{position:relative;display:inline-flex;box-sizing:border-box;align-items:center;justify-content:center;width:var(--kbq-checkbox-size-normal-width);height:var(--kbq-checkbox-size-normal-width);border-radius:var(--kbq-checkbox-size-normal-border-radius);border-width:var(--kbq-checkbox-size-normal-border-width);border-style:solid;cursor:pointer;vertical-align:middle;flex-shrink:0}.kbq-pseudo-checkbox .kbq-checkbox-checkmark,.kbq-pseudo-checkbox .kbq-checkbox-mixedmark{display:none}.kbq-pseudo-checkbox.kbq-pseudo-checkbox-checked,.kbq-pseudo-checkbox.kbq-pseudo-checkbox-indeterminate{border-color:transparent}.kbq-pseudo-checkbox.kbq-checked .kbq-checkbox-checkmark,.kbq-pseudo-checkbox.kbq-indeterminate .kbq-checkbox-mixedmark{display:inline-block}.kbq-pseudo-checkbox.kbq-disabled{cursor:default}.kbq-pseudo-checkbox.kbq-pseudo-checkbox_big{width:var(--kbq-checkbox-size-big-width);height:var(--kbq-checkbox-size-big-width);border-radius:var(--kbq-checkbox-size-big-border-radius);border-width:var(--kbq-checkbox-size-big-border-width)}.kbq-pseudo-checkbox{border-color:var(--kbq-checkbox-theme-default-border);background:var(--kbq-checkbox-theme-default-background)}.kbq-pseudo-checkbox .kbq-checkbox-checkmark,.kbq-pseudo-checkbox .kbq-checkbox-mixedmark{color:var(--kbq-checkbox-theme-default-color)}.kbq-pseudo-checkbox.kbq-checked,.kbq-pseudo-checkbox.kbq-indeterminate{border-color:var(--kbq-checkbox-theme-states-checked-border);background:var(--kbq-checkbox-theme-states-checked-background)}.kbq-pseudo-checkbox.kbq-disabled .kbq-checkbox-checkmark,.kbq-pseudo-checkbox.kbq-disabled .kbq-checkbox-mixedmark{color:var(--kbq-checkbox-theme-states-disabled-color)}.kbq-pseudo-checkbox.kbq-disabled{border-color:var(--kbq-checkbox-theme-states-disabled-border);background:var(--kbq-checkbox-theme-states-disabled-background)}.kbq-pseudo-checkbox.kbq-error{border-color:var(--kbq-checkbox-error-default-border);background:var(--kbq-checkbox-error-default-background)}.kbq-pseudo-checkbox.kbq-error .kbq-checkbox-checkmark,.kbq-pseudo-checkbox.kbq-error .kbq-checkbox-mixedmark{color:var(--kbq-checkbox-error-default-color)}.kbq-pseudo-checkbox.kbq-error.kbq-checked,.kbq-pseudo-checkbox.kbq-error.kbq-indeterminate{border-color:var(--kbq-checkbox-error-states-checked-border);background:var(--kbq-checkbox-error-states-checked-background)}.kbq-pseudo-checkbox.kbq-error.kbq-disabled .kbq-checkbox-checkmark,.kbq-pseudo-checkbox.kbq-error.kbq-disabled .kbq-checkbox-mixedmark{color:var(--kbq-checkbox-error-states-disabled-color)}.kbq-pseudo-checkbox.kbq-error.kbq-disabled{border-color:var(--kbq-checkbox-error-states-disabled-border);background:var(--kbq-checkbox-error-states-disabled-background)}\n", ".kbq-pseudo-checkbox{--kbq-checkbox-size-normal-width: var(--kbq-size-l);--kbq-checkbox-size-normal-border-width: var(--kbq-size-border-width);--kbq-checkbox-size-normal-border-radius: var(--kbq-size-xxs);--kbq-checkbox-size-normal-horizontal-content-padding: var(--kbq-size-s);--kbq-checkbox-size-normal-vertical-content-padding: var(--kbq-size-3xs);--kbq-checkbox-size-normal-top: var(--kbq-size-3xs);--kbq-checkbox-size-big-width: var(--kbq-size-l);--kbq-checkbox-size-big-border-width: var(--kbq-size-border-width);--kbq-checkbox-size-big-border-radius: var(--kbq-size-xxs);--kbq-checkbox-size-big-horizontal-content-padding: var(--kbq-size-s);--kbq-checkbox-size-big-vertical-content-padding: var(--kbq-size-3xs);--kbq-checkbox-size-big-top: var(--kbq-size-xxs);--kbq-checkbox-theme-default-border: var(--kbq-line-contrast-fade);--kbq-checkbox-theme-default-color: var(--kbq-icon-white);--kbq-checkbox-theme-default-text: var(--kbq-foreground-contrast);--kbq-checkbox-theme-default-background: var(--kbq-background-bg);--kbq-checkbox-theme-default-caption: var(--kbq-foreground-contrast-secondary);--kbq-checkbox-theme-states-hover-border: var(--kbq-line-contrast-fade);--kbq-checkbox-theme-states-hover-background: var(--kbq-states-background-transparent-hover);--kbq-checkbox-theme-states-checked-border: transparent;--kbq-checkbox-theme-states-checked-background: var(--kbq-background-theme);--kbq-checkbox-theme-states-checked-hover-border: transparent;--kbq-checkbox-theme-states-checked-hover-background: var(--kbq-states-background-theme-hover);--kbq-checkbox-theme-states-focused-border: var(--kbq-states-line-focus-theme);--kbq-checkbox-theme-states-focused-background: var(--kbq-background-bg);--kbq-checkbox-theme-states-focused-outline: 1px solid var(--kbq-states-line-focus-theme);--kbq-checkbox-theme-states-checked-focused-border: var(--kbq-states-line-focus-theme);--kbq-checkbox-theme-states-checked-focused-background: var(--kbq-background-theme);--kbq-checkbox-theme-states-checked-focused-outline: 1px solid var(--kbq-states-line-focus-theme);--kbq-checkbox-theme-states-disabled-border: var(--kbq-states-line-disabled);--kbq-checkbox-theme-states-disabled-color: var(--kbq-states-icon-disabled);--kbq-checkbox-theme-states-disabled-text: var(--kbq-states-foreground-disabled);--kbq-checkbox-theme-states-disabled-background: var(--kbq-states-background-disabled);--kbq-checkbox-theme-states-disabled-caption: var(--kbq-states-icon-disabled);--kbq-checkbox-error-default-border: var(--kbq-line-error);--kbq-checkbox-error-default-color: var(--kbq-icon-white);--kbq-checkbox-error-default-text: var(--kbq-foreground-contrast);--kbq-checkbox-error-default-background: var(--kbq-background-error-less);--kbq-checkbox-error-default-caption: var(--kbq-foreground-contrast-secondary);--kbq-checkbox-error-states-hover-border: var(--kbq-line-error);--kbq-checkbox-error-states-hover-background: var(--kbq-states-background-error-fade-hover);--kbq-checkbox-error-states-checked-border: transparent;--kbq-checkbox-error-states-checked-background: var(--kbq-background-error);--kbq-checkbox-error-states-checked-hover-border: transparent;--kbq-checkbox-error-states-checked-hover-background: var(--kbq-states-background-error-hover);--kbq-checkbox-error-states-focused-border: var(--kbq-line-error);--kbq-checkbox-error-states-focused-background: var(--kbq-background-error-less);--kbq-checkbox-error-states-focused-outline: 1px solid var(--kbq-states-line-focus-error);--kbq-checkbox-error-states-checked-focused-border: var(--kbq-states-line-focus-error);--kbq-checkbox-error-states-checked-focused-background: var(--kbq-background-error);--kbq-checkbox-error-states-checked-focused-outline: 1px solid var(--kbq-states-line-focus-error);--kbq-checkbox-error-states-disabled-border: var(--kbq-states-line-disabled);--kbq-checkbox-error-states-disabled-color: var(--kbq-states-icon-disabled);--kbq-checkbox-error-states-disabled-text: var(--kbq-states-foreground-disabled);--kbq-checkbox-error-states-disabled-background: var(--kbq-states-background-disabled);--kbq-checkbox-error-states-disabled-caption: var(--kbq-states-icon-disabled)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
3801
4621
|
}
|
|
3802
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4622
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPseudoCheckbox, decorators: [{
|
|
3803
4623
|
type: Component,
|
|
3804
|
-
args: [{ selector: 'kbq-pseudo-checkbox',
|
|
4624
|
+
args: [{ selector: 'kbq-pseudo-checkbox', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
3805
4625
|
class: 'kbq-pseudo-checkbox',
|
|
3806
|
-
'[class.kbq-checkbox_big]': 'big',
|
|
3807
|
-
'[class.kbq-indeterminate]': 'state === "indeterminate"',
|
|
3808
|
-
'[class.kbq-checked]': 'state === true || state === "checked"',
|
|
3809
|
-
'[class.kbq-disabled]': 'disabled'
|
|
4626
|
+
'[class.kbq-checkbox_big]': 'big()',
|
|
4627
|
+
'[class.kbq-indeterminate]': 'state() === "indeterminate"',
|
|
4628
|
+
'[class.kbq-checked]': 'state() === true || state() === "checked"',
|
|
4629
|
+
'[class.kbq-disabled]': 'disabled()'
|
|
3810
4630
|
}, preserveWhitespaces: false, template: "<i class=\"kbq-checkbox-checkmark kbq kbq-check-s_16\"></i>\n<i class=\"kbq-checkbox-mixedmark kbq kbq-minus-s_16\"></i>\n", styles: [".kbq-pseudo-checkbox{position:relative;display:inline-flex;box-sizing:border-box;align-items:center;justify-content:center;width:var(--kbq-checkbox-size-normal-width);height:var(--kbq-checkbox-size-normal-width);border-radius:var(--kbq-checkbox-size-normal-border-radius);border-width:var(--kbq-checkbox-size-normal-border-width);border-style:solid;cursor:pointer;vertical-align:middle;flex-shrink:0}.kbq-pseudo-checkbox .kbq-checkbox-checkmark,.kbq-pseudo-checkbox .kbq-checkbox-mixedmark{display:none}.kbq-pseudo-checkbox.kbq-pseudo-checkbox-checked,.kbq-pseudo-checkbox.kbq-pseudo-checkbox-indeterminate{border-color:transparent}.kbq-pseudo-checkbox.kbq-checked .kbq-checkbox-checkmark,.kbq-pseudo-checkbox.kbq-indeterminate .kbq-checkbox-mixedmark{display:inline-block}.kbq-pseudo-checkbox.kbq-disabled{cursor:default}.kbq-pseudo-checkbox.kbq-pseudo-checkbox_big{width:var(--kbq-checkbox-size-big-width);height:var(--kbq-checkbox-size-big-width);border-radius:var(--kbq-checkbox-size-big-border-radius);border-width:var(--kbq-checkbox-size-big-border-width)}.kbq-pseudo-checkbox{border-color:var(--kbq-checkbox-theme-default-border);background:var(--kbq-checkbox-theme-default-background)}.kbq-pseudo-checkbox .kbq-checkbox-checkmark,.kbq-pseudo-checkbox .kbq-checkbox-mixedmark{color:var(--kbq-checkbox-theme-default-color)}.kbq-pseudo-checkbox.kbq-checked,.kbq-pseudo-checkbox.kbq-indeterminate{border-color:var(--kbq-checkbox-theme-states-checked-border);background:var(--kbq-checkbox-theme-states-checked-background)}.kbq-pseudo-checkbox.kbq-disabled .kbq-checkbox-checkmark,.kbq-pseudo-checkbox.kbq-disabled .kbq-checkbox-mixedmark{color:var(--kbq-checkbox-theme-states-disabled-color)}.kbq-pseudo-checkbox.kbq-disabled{border-color:var(--kbq-checkbox-theme-states-disabled-border);background:var(--kbq-checkbox-theme-states-disabled-background)}.kbq-pseudo-checkbox.kbq-error{border-color:var(--kbq-checkbox-error-default-border);background:var(--kbq-checkbox-error-default-background)}.kbq-pseudo-checkbox.kbq-error .kbq-checkbox-checkmark,.kbq-pseudo-checkbox.kbq-error .kbq-checkbox-mixedmark{color:var(--kbq-checkbox-error-default-color)}.kbq-pseudo-checkbox.kbq-error.kbq-checked,.kbq-pseudo-checkbox.kbq-error.kbq-indeterminate{border-color:var(--kbq-checkbox-error-states-checked-border);background:var(--kbq-checkbox-error-states-checked-background)}.kbq-pseudo-checkbox.kbq-error.kbq-disabled .kbq-checkbox-checkmark,.kbq-pseudo-checkbox.kbq-error.kbq-disabled .kbq-checkbox-mixedmark{color:var(--kbq-checkbox-error-states-disabled-color)}.kbq-pseudo-checkbox.kbq-error.kbq-disabled{border-color:var(--kbq-checkbox-error-states-disabled-border);background:var(--kbq-checkbox-error-states-disabled-background)}\n", ".kbq-pseudo-checkbox{--kbq-checkbox-size-normal-width: var(--kbq-size-l);--kbq-checkbox-size-normal-border-width: var(--kbq-size-border-width);--kbq-checkbox-size-normal-border-radius: var(--kbq-size-xxs);--kbq-checkbox-size-normal-horizontal-content-padding: var(--kbq-size-s);--kbq-checkbox-size-normal-vertical-content-padding: var(--kbq-size-3xs);--kbq-checkbox-size-normal-top: var(--kbq-size-3xs);--kbq-checkbox-size-big-width: var(--kbq-size-l);--kbq-checkbox-size-big-border-width: var(--kbq-size-border-width);--kbq-checkbox-size-big-border-radius: var(--kbq-size-xxs);--kbq-checkbox-size-big-horizontal-content-padding: var(--kbq-size-s);--kbq-checkbox-size-big-vertical-content-padding: var(--kbq-size-3xs);--kbq-checkbox-size-big-top: var(--kbq-size-xxs);--kbq-checkbox-theme-default-border: var(--kbq-line-contrast-fade);--kbq-checkbox-theme-default-color: var(--kbq-icon-white);--kbq-checkbox-theme-default-text: var(--kbq-foreground-contrast);--kbq-checkbox-theme-default-background: var(--kbq-background-bg);--kbq-checkbox-theme-default-caption: var(--kbq-foreground-contrast-secondary);--kbq-checkbox-theme-states-hover-border: var(--kbq-line-contrast-fade);--kbq-checkbox-theme-states-hover-background: var(--kbq-states-background-transparent-hover);--kbq-checkbox-theme-states-checked-border: transparent;--kbq-checkbox-theme-states-checked-background: var(--kbq-background-theme);--kbq-checkbox-theme-states-checked-hover-border: transparent;--kbq-checkbox-theme-states-checked-hover-background: var(--kbq-states-background-theme-hover);--kbq-checkbox-theme-states-focused-border: var(--kbq-states-line-focus-theme);--kbq-checkbox-theme-states-focused-background: var(--kbq-background-bg);--kbq-checkbox-theme-states-focused-outline: 1px solid var(--kbq-states-line-focus-theme);--kbq-checkbox-theme-states-checked-focused-border: var(--kbq-states-line-focus-theme);--kbq-checkbox-theme-states-checked-focused-background: var(--kbq-background-theme);--kbq-checkbox-theme-states-checked-focused-outline: 1px solid var(--kbq-states-line-focus-theme);--kbq-checkbox-theme-states-disabled-border: var(--kbq-states-line-disabled);--kbq-checkbox-theme-states-disabled-color: var(--kbq-states-icon-disabled);--kbq-checkbox-theme-states-disabled-text: var(--kbq-states-foreground-disabled);--kbq-checkbox-theme-states-disabled-background: var(--kbq-states-background-disabled);--kbq-checkbox-theme-states-disabled-caption: var(--kbq-states-icon-disabled);--kbq-checkbox-error-default-border: var(--kbq-line-error);--kbq-checkbox-error-default-color: var(--kbq-icon-white);--kbq-checkbox-error-default-text: var(--kbq-foreground-contrast);--kbq-checkbox-error-default-background: var(--kbq-background-error-less);--kbq-checkbox-error-default-caption: var(--kbq-foreground-contrast-secondary);--kbq-checkbox-error-states-hover-border: var(--kbq-line-error);--kbq-checkbox-error-states-hover-background: var(--kbq-states-background-error-fade-hover);--kbq-checkbox-error-states-checked-border: transparent;--kbq-checkbox-error-states-checked-background: var(--kbq-background-error);--kbq-checkbox-error-states-checked-hover-border: transparent;--kbq-checkbox-error-states-checked-hover-background: var(--kbq-states-background-error-hover);--kbq-checkbox-error-states-focused-border: var(--kbq-line-error);--kbq-checkbox-error-states-focused-background: var(--kbq-background-error-less);--kbq-checkbox-error-states-focused-outline: 1px solid var(--kbq-states-line-focus-error);--kbq-checkbox-error-states-checked-focused-border: var(--kbq-states-line-focus-error);--kbq-checkbox-error-states-checked-focused-background: var(--kbq-background-error);--kbq-checkbox-error-states-checked-focused-outline: 1px solid var(--kbq-states-line-focus-error);--kbq-checkbox-error-states-disabled-border: var(--kbq-states-line-disabled);--kbq-checkbox-error-states-disabled-color: var(--kbq-states-icon-disabled);--kbq-checkbox-error-states-disabled-text: var(--kbq-states-foreground-disabled);--kbq-checkbox-error-states-disabled-background: var(--kbq-states-background-disabled);--kbq-checkbox-error-states-disabled-caption: var(--kbq-states-icon-disabled)}\n"] }]
|
|
3811
|
-
}], propDecorators: { big: [{
|
|
3812
|
-
type: Input
|
|
3813
|
-
}], state: [{
|
|
3814
|
-
type: Input
|
|
3815
|
-
}], disabled: [{
|
|
3816
|
-
type: Input
|
|
3817
|
-
}] } });
|
|
4631
|
+
}], propDecorators: { big: [{ type: i0.Input, args: [{ isSignal: true, alias: "big", required: false }] }], state: [{ type: i0.Input, args: [{ isSignal: true, alias: "state", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
|
|
3818
4632
|
|
|
3819
4633
|
class KbqPseudoCheckboxModule {
|
|
3820
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3821
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
3822
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
4634
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPseudoCheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
4635
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqPseudoCheckboxModule, imports: [KbqPseudoCheckbox], exports: [KbqPseudoCheckbox] }); }
|
|
4636
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPseudoCheckboxModule }); }
|
|
3823
4637
|
}
|
|
3824
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4638
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPseudoCheckboxModule, decorators: [{
|
|
3825
4639
|
type: NgModule,
|
|
3826
4640
|
args: [{
|
|
3827
|
-
imports: [
|
|
4641
|
+
imports: [KbqPseudoCheckbox],
|
|
3828
4642
|
exports: [KbqPseudoCheckbox]
|
|
3829
4643
|
}]
|
|
3830
4644
|
}] });
|
|
3831
4645
|
|
|
4646
|
+
/**
|
|
4647
|
+
* Canonical "select all / deselect all" toggle shared by the multi-select components (`Ctrl`/`Cmd` + `A`).
|
|
4648
|
+
*
|
|
4649
|
+
* Considers only selectable items and selects them all. When `allowDeselect` is `true` and every selectable
|
|
4650
|
+
* item is already selected, deselects them all instead; otherwise a repeated call is a no-op. No-op when
|
|
4651
|
+
* there are no selectable items.
|
|
4652
|
+
*
|
|
4653
|
+
* @returns the items whose selected state actually flipped, in input order.
|
|
4654
|
+
*/
|
|
4655
|
+
function toggleSelectAll(adapter, options) {
|
|
4656
|
+
const selectable = adapter.items.filter((item) => adapter.isSelectable(item));
|
|
4657
|
+
if (selectable.length === 0) {
|
|
4658
|
+
return [];
|
|
4659
|
+
}
|
|
4660
|
+
const shouldSelect = !options?.allowDeselect || selectable.some((item) => !adapter.isSelected(item));
|
|
4661
|
+
const changed = selectable.filter((item) => adapter.isSelected(item) !== shouldSelect);
|
|
4662
|
+
selectable.forEach((item) => adapter.setSelected(item, shouldSelect));
|
|
4663
|
+
return changed;
|
|
4664
|
+
}
|
|
4665
|
+
/** Event emitted by the `onSelectAll` outputs when the select-all toggle runs. */
|
|
4666
|
+
class KbqSelectAllEvent {
|
|
4667
|
+
constructor(
|
|
4668
|
+
/** Component that emitted the event. */
|
|
4669
|
+
source,
|
|
4670
|
+
/** The selectable options affected by the toggle. */
|
|
4671
|
+
options,
|
|
4672
|
+
/** `true` when all options were selected, `false` when all were deselected. */
|
|
4673
|
+
selected) {
|
|
4674
|
+
this.source = source;
|
|
4675
|
+
this.options = options;
|
|
4676
|
+
this.selected = selected;
|
|
4677
|
+
}
|
|
4678
|
+
}
|
|
4679
|
+
/**
|
|
4680
|
+
* Whether `Ctrl`/`Cmd` + `A` should select the text of a search `<input>` rather than toggle options.
|
|
4681
|
+
*
|
|
4682
|
+
* Returns `true` only when the input has text that is not already fully selected (nothing selected,
|
|
4683
|
+
* a partial selection, or just a caret). Returns `false` for an empty input (so select-all falls
|
|
4684
|
+
* straight through to the options) and when the whole value is already selected (a second press
|
|
4685
|
+
* then acts on the options).
|
|
4686
|
+
*/
|
|
4687
|
+
function shouldSelectSearchText(input) {
|
|
4688
|
+
if (!input) {
|
|
4689
|
+
return false;
|
|
4690
|
+
}
|
|
4691
|
+
const length = input.value.length;
|
|
4692
|
+
if (length === 0) {
|
|
4693
|
+
return false;
|
|
4694
|
+
}
|
|
4695
|
+
return !(input.selectionStart === 0 && input.selectionEnd === length);
|
|
4696
|
+
}
|
|
4697
|
+
|
|
3832
4698
|
const KBQ_TITLE_TEXT_REF = new InjectionToken('KbqTitleTextRef');
|
|
3833
4699
|
|
|
3834
4700
|
/**
|
|
@@ -3891,6 +4757,35 @@ class KbqVirtualOption extends KbqOptionBase {
|
|
|
3891
4757
|
* Single option inside of a `<kbq-select>` element.
|
|
3892
4758
|
*/
|
|
3893
4759
|
class KbqOption extends KbqOptionBase {
|
|
4760
|
+
constructor() {
|
|
4761
|
+
super(...arguments);
|
|
4762
|
+
this.elementRef = inject(ElementRef);
|
|
4763
|
+
this.changeDetectorRef = inject(ChangeDetectorRef);
|
|
4764
|
+
this.parent = inject(KBQ_OPTION_PARENT_COMPONENT, { optional: true });
|
|
4765
|
+
this.group = inject(KbqOptgroup, { optional: true });
|
|
4766
|
+
this.selectable = input(true, ...(ngDevMode ? [{ debugName: "selectable", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
|
|
4767
|
+
// todo this flag will need to be rethought in the future (added for filter panel)
|
|
4768
|
+
this.userSelect = input(false, ...(ngDevMode ? [{ debugName: "userSelect", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
|
|
4769
|
+
/** Event emitted when the option is selected or deselected. */
|
|
4770
|
+
this.onSelectionChange = new EventEmitter();
|
|
4771
|
+
/** Emits when the state of the option changes and any parents have to be notified. */
|
|
4772
|
+
this.stateChanges = new Subject();
|
|
4773
|
+
this._id = `kbq-option-${uniqueIdCounter++}`;
|
|
4774
|
+
this._selected = false;
|
|
4775
|
+
this._disabled = false;
|
|
4776
|
+
this._active = false;
|
|
4777
|
+
this.mostRecentViewValue = '';
|
|
4778
|
+
/**
|
|
4779
|
+
* Flag that indicates whether the component is currently focused by a mouse interaction.
|
|
4780
|
+
*
|
|
4781
|
+
* When set to `true`, the component has focus resulting from a mouse click or
|
|
4782
|
+
* other pointer event. It is automatically cleared when the component loses
|
|
4783
|
+
* focus or if focus is obtained through keyboard navigation or programmatic means.
|
|
4784
|
+
*/
|
|
4785
|
+
this.isFocusedByMouse = false;
|
|
4786
|
+
}
|
|
4787
|
+
// TODO: Skipped for migration because:
|
|
4788
|
+
// Accessor inputs cannot be migrated as they are too complex.
|
|
3894
4789
|
get showCheckbox() {
|
|
3895
4790
|
return this._showCheckbox === undefined ? this.multiple : this._showCheckbox;
|
|
3896
4791
|
}
|
|
@@ -3901,6 +4796,8 @@ class KbqOption extends KbqOptionBase {
|
|
|
3901
4796
|
* The displayed value of the option. It is necessary to show the selected option in the
|
|
3902
4797
|
* select's trigger.
|
|
3903
4798
|
*/
|
|
4799
|
+
// TODO: Skipped for migration because:
|
|
4800
|
+
// Accessor inputs cannot be migrated as they are too complex.
|
|
3904
4801
|
get viewValue() {
|
|
3905
4802
|
return this._viewValue || (this.getHostElement().textContent || '').trim();
|
|
3906
4803
|
}
|
|
@@ -3917,6 +4814,8 @@ class KbqOption extends KbqOptionBase {
|
|
|
3917
4814
|
get selected() {
|
|
3918
4815
|
return this._selected;
|
|
3919
4816
|
}
|
|
4817
|
+
// TODO: Skipped for migration because:
|
|
4818
|
+
// Accessor inputs cannot be migrated as they are too complex.
|
|
3920
4819
|
get disabled() {
|
|
3921
4820
|
return (this.group && this.group.disabled) || this._disabled;
|
|
3922
4821
|
}
|
|
@@ -3932,33 +4831,6 @@ class KbqOption extends KbqOptionBase {
|
|
|
3932
4831
|
get active() {
|
|
3933
4832
|
return this._active;
|
|
3934
4833
|
}
|
|
3935
|
-
constructor(elementRef, changeDetectorRef, parent, group) {
|
|
3936
|
-
super();
|
|
3937
|
-
this.elementRef = elementRef;
|
|
3938
|
-
this.changeDetectorRef = changeDetectorRef;
|
|
3939
|
-
this.parent = parent;
|
|
3940
|
-
this.group = group;
|
|
3941
|
-
this.selectable = true;
|
|
3942
|
-
// todo this flag will need to be rethought in the future (added for filter panel)
|
|
3943
|
-
this.userSelect = false;
|
|
3944
|
-
/** Event emitted when the option is selected or deselected. */
|
|
3945
|
-
this.onSelectionChange = new EventEmitter();
|
|
3946
|
-
/** Emits when the state of the option changes and any parents have to be notified. */
|
|
3947
|
-
this.stateChanges = new Subject();
|
|
3948
|
-
this._id = `kbq-option-${uniqueIdCounter++}`;
|
|
3949
|
-
this._selected = false;
|
|
3950
|
-
this._disabled = false;
|
|
3951
|
-
this._active = false;
|
|
3952
|
-
this.mostRecentViewValue = '';
|
|
3953
|
-
/**
|
|
3954
|
-
* Flag that indicates whether the component is currently focused by a mouse interaction.
|
|
3955
|
-
*
|
|
3956
|
-
* When set to `true`, the component has focus resulting from a mouse click or
|
|
3957
|
-
* other pointer event. It is automatically cleared when the component loses
|
|
3958
|
-
* focus or if focus is obtained through keyboard navigation or programmatic means.
|
|
3959
|
-
*/
|
|
3960
|
-
this.isFocusedByMouse = false;
|
|
3961
|
-
}
|
|
3962
4834
|
ngAfterViewChecked() {
|
|
3963
4835
|
// Since parent components could be using the option's label to display the selected values
|
|
3964
4836
|
// (e.g. `kbq-select`) and they don't have a way of knowing if the option's label has changed
|
|
@@ -3978,11 +4850,7 @@ class KbqOption extends KbqOptionBase {
|
|
|
3978
4850
|
}
|
|
3979
4851
|
/** @docs-private */
|
|
3980
4852
|
getHeight() {
|
|
3981
|
-
|
|
3982
|
-
// For SSR compatibility
|
|
3983
|
-
if (typeof element.getClientRects !== 'function')
|
|
3984
|
-
return 0;
|
|
3985
|
-
return element.getClientRects()[0]?.height ?? 0;
|
|
4853
|
+
return this.elementRef.nativeElement.getClientRects()[0]?.height ?? 0;
|
|
3986
4854
|
}
|
|
3987
4855
|
select(emitEvent = true) {
|
|
3988
4856
|
if (!this._selected) {
|
|
@@ -4056,9 +4924,9 @@ class KbqOption extends KbqOptionBase {
|
|
|
4056
4924
|
* determine if the select's view -> model callback should be invoked.`
|
|
4057
4925
|
*/
|
|
4058
4926
|
selectViaInteraction() {
|
|
4059
|
-
if (this.userSelect)
|
|
4927
|
+
if (this.userSelect())
|
|
4060
4928
|
return;
|
|
4061
|
-
if (!this.disabled && this.selectable) {
|
|
4929
|
+
if (!this.disabled && this.selectable()) {
|
|
4062
4930
|
this._selected = this.multiple ? !this._selected : true;
|
|
4063
4931
|
this.changeDetectorRef.markForCheck();
|
|
4064
4932
|
this.emitSelectionChangeEvent(true);
|
|
@@ -4077,19 +4945,24 @@ class KbqOption extends KbqOptionBase {
|
|
|
4077
4945
|
this.isFocusedByMouse = true;
|
|
4078
4946
|
this.parent?.keyManager?.setActiveItem(this);
|
|
4079
4947
|
}
|
|
4080
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4081
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
4948
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqOption, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
4949
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: KbqOption, isStandalone: true, selector: "kbq-option", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null }, selectable: { classPropertyName: "selectable", publicName: "selectable", isSignal: true, isRequired: false, transformFunction: null }, userSelect: { classPropertyName: "userSelect", publicName: "userSelect", isSignal: true, isRequired: false, transformFunction: null }, showCheckbox: { classPropertyName: "showCheckbox", publicName: "showCheckbox", isSignal: false, isRequired: false, transformFunction: null }, viewValue: { classPropertyName: "viewValue", publicName: "viewValue", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { onSelectionChange: "onSelectionChange" }, host: { listeners: { "click": "handleClick($event)", "mouseenter": "onMouseenter()", "keydown": "handleKeydown($event)" }, properties: { "attr.tabindex": "getTabIndex()", "class.kbq-selected": "selected", "class.kbq-option-multiple": "multiple", "class.kbq-active": "active", "class.kbq-disabled": "disabled", "id": "id" }, classAttribute: "kbq-option" }, providers: [
|
|
4082
4950
|
{
|
|
4083
4951
|
provide: KBQ_TITLE_TEXT_REF,
|
|
4084
4952
|
useExisting: KbqOption
|
|
4085
4953
|
}
|
|
4086
4954
|
], viewQueries: [{ propertyName: "textElement", first: true, predicate: ["kbqTitleText"], descendants: true }], exportAs: ["kbqOption"], usesInheritance: true, ngImport: i0, template: "@if (showCheckbox) {\n <ng-content select=\"kbq-pseudo-checkbox\">\n <kbq-pseudo-checkbox [disabled]=\"disabled\" [state]=\"selected ? 'checked' : 'unchecked'\" />\n </ng-content>\n}\n\n<span #kbqTitleText class=\"kbq-option-text\">\n <ng-content />\n</span>\n", styles: [".kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-option{position:relative;display:flex;flex-direction:row;align-items:center;box-sizing:border-box;outline:none;-webkit-tap-highlight-color:transparent;min-height:32px;gap:var(--kbq-size-s);border:var(--kbq-size-3xs) solid transparent;padding:var(--kbq-size-xxs) calc(var(--kbq-size-m) - var(--kbq-size-3xs))}.kbq-option .kbq-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.kbq-option .kbq-list-text{display:flex;flex-direction:column;width:100%;box-sizing:content-box;overflow:hidden}.kbq-option .kbq-list-text:empty{display:none}.kbq-option .kbq-list-text{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-option .kbq-list-option-caption{padding-top:var(--kbq-size-3xs)}.kbq-option{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-option>.kbq-pseudo-checkbox{margin-top:var(--kbq-size-3xs);align-self:baseline}.kbq-option{border-radius:var(--kbq-option-border-radius)}.kbq-option:not(.kbq-disabled){cursor:pointer}.kbq-option-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.kbq-option-text{display:flex;flex-direction:column;width:100%;box-sizing:content-box;overflow:hidden}.kbq-option-text:empty{display:none}.kbq-option-text{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-option{background:var(--kbq-list-default-container-background)}.kbq-option .kbq-option-text{color:var(--kbq-list-default-text-color)}.kbq-option .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-default-icon-button-color)}.kbq-option .kbq-option-caption{color:var(--kbq-list-default-caption-color)}.kbq-option.kbq-active:not(.kbq-disabled){background:var(--kbq-list-states-hover-container-background)}.kbq-option.kbq-active:not(.kbq-disabled) .kbq-option-text{color:var(--kbq-list-states-hover-text-color)}.kbq-option.kbq-active:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-hover-icon-button-color)}.kbq-option.kbq-active:not(.kbq-disabled) .kbq-option-caption{color:var(--kbq-list-states-hover-caption-color)}.kbq-option.kbq-selected:not(.kbq-disabled){background:var(--kbq-list-states-selected-container-background)}.kbq-option.kbq-selected:not(.kbq-disabled) .kbq-option-text{color:var(--kbq-list-states-selected-text-color)}.kbq-option.kbq-selected:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-icon-button-color)}.kbq-option.kbq-selected:not(.kbq-disabled) .kbq-option-caption{color:var(--kbq-list-states-selected-caption-color)}.kbq-option.kbq-selected:not(.kbq-disabled).kbq-active{background:var(--kbq-list-states-selected-hover-container-background)}.kbq-option.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-text{color:var(--kbq-list-states-selected-hover-text-color)}.kbq-option.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-hover-icon-button-color)}.kbq-option.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-caption{color:var(--kbq-list-states-selected-hover-caption-color)}.kbq-option.kbq-disabled{background:var(--kbq-list-states-disabled-container-background)}.kbq-option.kbq-disabled .kbq-option-text{color:var(--kbq-list-states-disabled-text-color)}.kbq-option.kbq-disabled .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-disabled-icon-button-color)}.kbq-option.kbq-disabled .kbq-option-caption{color:var(--kbq-list-states-disabled-caption-color)}.kbq-option:is(.kbq-selected,.kbq-active):has(+:is(.kbq-selected,.kbq-active)){border-bottom-left-radius:0;border-bottom-right-radius:0}.kbq-option:is(.kbq-selected,.kbq-active)+:is(.kbq-selected,.kbq-active){border-top-left-radius:0;border-top-right-radius:0}.kbq-option-multiple.kbq-selected:not(.kbq-disabled){background:var(--kbq-list-multiple-states-selected-container-background)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled) .kbq-option-text{color:var(--kbq-list-multiple-states-selected-text-color)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-icon-button-color)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled) .kbq-option-caption{color:var(--kbq-list-multiple-states-selected-caption-color)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled).kbq-active{background:var(--kbq-list-multiple-states-selected-hover-container-background)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-text{color:var(--kbq-list-multiple-states-selected-hover-text-color)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-hover-icon-button-color)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-caption{color:var(--kbq-list-multiple-states-selected-hover-caption-color)}.kbq-option{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-list-option-caption{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-list,.kbq-list-selection{--kbq-list-size-container-padding-left: var(--kbq-size-m);--kbq-list-size-container-padding-right: var(--kbq-size-m);--kbq-list-size-container-padding-vertical: var(--kbq-size-xs);--kbq-list-size-container-content-gap-horizontal: var(--kbq-size-s);--kbq-list-size-container-content-gap-vertical: var(--kbq-size-3xs);--kbq-list-size-container-focus-outline-width: var(--kbq-size-3xs);--kbq-list-size-header-padding-top: var(--kbq-size-s);--kbq-list-size-header-padding-bottom: var(--kbq-size-xxs);--kbq-list-size-header-padding-horizontal: var(--kbq-size-m);--kbq-list-size-subheading-padding-top: var(--kbq-size-m);--kbq-list-size-subheading-padding-bottom: var(--kbq-size-xxs);--kbq-list-size-subheading-padding-horizontal: var(--kbq-size-m);--kbq-list-default-container-background: transparent;--kbq-list-default-text-color: var(--kbq-foreground-contrast);--kbq-list-default-icon-color: var(--kbq-icon-contrast);--kbq-list-default-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-default-caption-color: var(--kbq-foreground-contrast-secondary);--kbq-list-states-hover-container-background: var(--kbq-states-background-transparent-hover);--kbq-list-states-active-container-background: var(--kbq-states-background-transparent-active);--kbq-list-states-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-states-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-states-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-selected-container-background: var(--kbq-background-theme-less);--kbq-list-multiple-states-selected-container-background: var(--kbq-background-contrast-less);--kbq-list-states-selected-text-color: var(--kbq-foreground-contrast);--kbq-list-states-selected-icon-color: var(--kbq-icon-contrast);--kbq-list-states-selected-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-selected-hover-container-background: var(--kbq-states-background-theme-less-hover);--kbq-list-multiple-states-selected-hover-container-background: var(--kbq-states-background-contrast-less-hover);--kbq-list-states-selected-active-container-background: var(--kbq-states-background-theme-less-active);--kbq-list-multiple-states-selected-active-container-background: var(--kbq-states-background-contrast-less-active);--kbq-list-states-selected-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-states-selected-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-states-selected-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-focused-focus-outline-color: var(--kbq-states-line-focus-theme);--kbq-list-states-disabled-container-background: transparent;--kbq-list-states-disabled-text-color: var(--kbq-states-foreground-disabled);--kbq-list-states-disabled-icon-color: var(--kbq-states-icon-disabled);--kbq-list-states-disabled-icon-button-color: var(--kbq-states-icon-disabled);--kbq-list-states-disabled-caption-color: var(--kbq-states-foreground-disabled)}.kbq-option{--kbq-option-size-horizontal-padding: var(--kbq-size-m);--kbq-option-size-height: var(--kbq-size-3xl);--kbq-option-size-border-width: 2px;--kbq-option-border-radius: var(--kbq-size-xs)}.kbq-option{--kbq-list-default-container-background: transparent;--kbq-list-default-text-color: var(--kbq-foreground-contrast);--kbq-list-default-icon-color: var(--kbq-icon-contrast);--kbq-list-default-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-default-caption-color: var(--kbq-foreground-contrast-secondary);--kbq-list-states-hover-container-background: var(--kbq-states-background-transparent-hover);--kbq-list-states-active-container-background: var(--kbq-states-background-transparent-active);--kbq-list-states-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-states-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-states-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-selected-container-background: var(--kbq-background-theme-less);--kbq-list-multiple-states-selected-container-background: var(--kbq-background-contrast-less);--kbq-list-states-selected-text-color: var(--kbq-foreground-contrast);--kbq-list-states-selected-icon-color: var(--kbq-icon-contrast);--kbq-list-states-selected-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-selected-hover-container-background: var(--kbq-states-background-theme-less-hover);--kbq-list-multiple-states-selected-hover-container-background: var(--kbq-states-background-contrast-less-hover);--kbq-list-states-selected-active-container-background: var(--kbq-states-background-theme-less-active);--kbq-list-multiple-states-selected-active-container-background: var(--kbq-states-background-contrast-less-active);--kbq-list-states-selected-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-states-selected-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-states-selected-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-focused-focus-outline-color: var(--kbq-states-line-focus-theme);--kbq-list-states-disabled-container-background: transparent;--kbq-list-states-disabled-text-color: var(--kbq-states-foreground-disabled);--kbq-list-states-disabled-icon-color: var(--kbq-states-icon-disabled);--kbq-list-states-disabled-icon-button-color: var(--kbq-states-icon-disabled);--kbq-list-states-disabled-caption-color: var(--kbq-states-foreground-disabled)}\n"], dependencies: [{ kind: "ngmodule", type: KbqPseudoCheckboxModule }, { kind: "component", type: KbqPseudoCheckbox, selector: "kbq-pseudo-checkbox", inputs: ["big", "state", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
4087
4955
|
}
|
|
4088
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4956
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqOption, decorators: [{
|
|
4089
4957
|
type: Component,
|
|
4090
4958
|
args: [{ selector: 'kbq-option', imports: [
|
|
4091
4959
|
KbqPseudoCheckboxModule
|
|
4092
|
-
],
|
|
4960
|
+
], providers: [
|
|
4961
|
+
{
|
|
4962
|
+
provide: KBQ_TITLE_TEXT_REF,
|
|
4963
|
+
useExisting: KbqOption
|
|
4964
|
+
}
|
|
4965
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
4093
4966
|
'[attr.tabindex]': 'getTabIndex()',
|
|
4094
4967
|
class: 'kbq-option',
|
|
4095
4968
|
'[class.kbq-selected]': 'selected',
|
|
@@ -4100,31 +4973,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
|
|
|
4100
4973
|
'(click)': 'handleClick($event)',
|
|
4101
4974
|
'(mouseenter)': 'onMouseenter()',
|
|
4102
4975
|
'(keydown)': 'handleKeydown($event)'
|
|
4103
|
-
}, providers: [
|
|
4104
|
-
|
|
4105
|
-
provide: KBQ_TITLE_TEXT_REF,
|
|
4106
|
-
useExisting: KbqOption
|
|
4107
|
-
}
|
|
4108
|
-
], template: "@if (showCheckbox) {\n <ng-content select=\"kbq-pseudo-checkbox\">\n <kbq-pseudo-checkbox [disabled]=\"disabled\" [state]=\"selected ? 'checked' : 'unchecked'\" />\n </ng-content>\n}\n\n<span #kbqTitleText class=\"kbq-option-text\">\n <ng-content />\n</span>\n", styles: [".kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-option{position:relative;display:flex;flex-direction:row;align-items:center;box-sizing:border-box;outline:none;-webkit-tap-highlight-color:transparent;min-height:32px;gap:var(--kbq-size-s);border:var(--kbq-size-3xs) solid transparent;padding:var(--kbq-size-xxs) calc(var(--kbq-size-m) - var(--kbq-size-3xs))}.kbq-option .kbq-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.kbq-option .kbq-list-text{display:flex;flex-direction:column;width:100%;box-sizing:content-box;overflow:hidden}.kbq-option .kbq-list-text:empty{display:none}.kbq-option .kbq-list-text{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-option .kbq-list-option-caption{padding-top:var(--kbq-size-3xs)}.kbq-option{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-option>.kbq-pseudo-checkbox{margin-top:var(--kbq-size-3xs);align-self:baseline}.kbq-option{border-radius:var(--kbq-option-border-radius)}.kbq-option:not(.kbq-disabled){cursor:pointer}.kbq-option-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.kbq-option-text{display:flex;flex-direction:column;width:100%;box-sizing:content-box;overflow:hidden}.kbq-option-text:empty{display:none}.kbq-option-text{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-option{background:var(--kbq-list-default-container-background)}.kbq-option .kbq-option-text{color:var(--kbq-list-default-text-color)}.kbq-option .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-default-icon-button-color)}.kbq-option .kbq-option-caption{color:var(--kbq-list-default-caption-color)}.kbq-option.kbq-active:not(.kbq-disabled){background:var(--kbq-list-states-hover-container-background)}.kbq-option.kbq-active:not(.kbq-disabled) .kbq-option-text{color:var(--kbq-list-states-hover-text-color)}.kbq-option.kbq-active:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-hover-icon-button-color)}.kbq-option.kbq-active:not(.kbq-disabled) .kbq-option-caption{color:var(--kbq-list-states-hover-caption-color)}.kbq-option.kbq-selected:not(.kbq-disabled){background:var(--kbq-list-states-selected-container-background)}.kbq-option.kbq-selected:not(.kbq-disabled) .kbq-option-text{color:var(--kbq-list-states-selected-text-color)}.kbq-option.kbq-selected:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-icon-button-color)}.kbq-option.kbq-selected:not(.kbq-disabled) .kbq-option-caption{color:var(--kbq-list-states-selected-caption-color)}.kbq-option.kbq-selected:not(.kbq-disabled).kbq-active{background:var(--kbq-list-states-selected-hover-container-background)}.kbq-option.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-text{color:var(--kbq-list-states-selected-hover-text-color)}.kbq-option.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-hover-icon-button-color)}.kbq-option.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-caption{color:var(--kbq-list-states-selected-hover-caption-color)}.kbq-option.kbq-disabled{background:var(--kbq-list-states-disabled-container-background)}.kbq-option.kbq-disabled .kbq-option-text{color:var(--kbq-list-states-disabled-text-color)}.kbq-option.kbq-disabled .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-disabled-icon-button-color)}.kbq-option.kbq-disabled .kbq-option-caption{color:var(--kbq-list-states-disabled-caption-color)}.kbq-option:is(.kbq-selected,.kbq-active):has(+:is(.kbq-selected,.kbq-active)){border-bottom-left-radius:0;border-bottom-right-radius:0}.kbq-option:is(.kbq-selected,.kbq-active)+:is(.kbq-selected,.kbq-active){border-top-left-radius:0;border-top-right-radius:0}.kbq-option-multiple.kbq-selected:not(.kbq-disabled){background:var(--kbq-list-multiple-states-selected-container-background)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled) .kbq-option-text{color:var(--kbq-list-multiple-states-selected-text-color)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-icon-button-color)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled) .kbq-option-caption{color:var(--kbq-list-multiple-states-selected-caption-color)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled).kbq-active{background:var(--kbq-list-multiple-states-selected-hover-container-background)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-text{color:var(--kbq-list-multiple-states-selected-hover-text-color)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-hover-icon-button-color)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-caption{color:var(--kbq-list-multiple-states-selected-hover-caption-color)}.kbq-option{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-list-option-caption{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-list,.kbq-list-selection{--kbq-list-size-container-padding-left: var(--kbq-size-m);--kbq-list-size-container-padding-right: var(--kbq-size-m);--kbq-list-size-container-padding-vertical: var(--kbq-size-xs);--kbq-list-size-container-content-gap-horizontal: var(--kbq-size-s);--kbq-list-size-container-content-gap-vertical: var(--kbq-size-3xs);--kbq-list-size-container-focus-outline-width: var(--kbq-size-3xs);--kbq-list-size-header-padding-top: var(--kbq-size-s);--kbq-list-size-header-padding-bottom: var(--kbq-size-xxs);--kbq-list-size-header-padding-horizontal: var(--kbq-size-m);--kbq-list-size-subheading-padding-top: var(--kbq-size-m);--kbq-list-size-subheading-padding-bottom: var(--kbq-size-xxs);--kbq-list-size-subheading-padding-horizontal: var(--kbq-size-m);--kbq-list-default-container-background: transparent;--kbq-list-default-text-color: var(--kbq-foreground-contrast);--kbq-list-default-icon-color: var(--kbq-icon-contrast);--kbq-list-default-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-default-caption-color: var(--kbq-foreground-contrast-secondary);--kbq-list-states-hover-container-background: var(--kbq-states-background-transparent-hover);--kbq-list-states-active-container-background: var(--kbq-states-background-transparent-active);--kbq-list-states-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-states-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-states-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-selected-container-background: var(--kbq-background-theme-less);--kbq-list-multiple-states-selected-container-background: var(--kbq-background-contrast-less);--kbq-list-states-selected-text-color: var(--kbq-foreground-contrast);--kbq-list-states-selected-icon-color: var(--kbq-icon-contrast);--kbq-list-states-selected-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-selected-hover-container-background: var(--kbq-states-background-theme-less-hover);--kbq-list-multiple-states-selected-hover-container-background: var(--kbq-states-background-contrast-less-hover);--kbq-list-states-selected-active-container-background: var(--kbq-states-background-theme-less-active);--kbq-list-multiple-states-selected-active-container-background: var(--kbq-states-background-contrast-less-active);--kbq-list-states-selected-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-states-selected-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-states-selected-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-focused-focus-outline-color: var(--kbq-states-line-focus-theme);--kbq-list-states-disabled-container-background: transparent;--kbq-list-states-disabled-text-color: var(--kbq-states-foreground-disabled);--kbq-list-states-disabled-icon-color: var(--kbq-states-icon-disabled);--kbq-list-states-disabled-icon-button-color: var(--kbq-states-icon-disabled);--kbq-list-states-disabled-caption-color: var(--kbq-states-foreground-disabled)}.kbq-option{--kbq-option-size-horizontal-padding: var(--kbq-size-m);--kbq-option-size-height: var(--kbq-size-3xl);--kbq-option-size-border-width: 2px;--kbq-option-border-radius: var(--kbq-size-xs)}.kbq-option{--kbq-list-default-container-background: transparent;--kbq-list-default-text-color: var(--kbq-foreground-contrast);--kbq-list-default-icon-color: var(--kbq-icon-contrast);--kbq-list-default-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-default-caption-color: var(--kbq-foreground-contrast-secondary);--kbq-list-states-hover-container-background: var(--kbq-states-background-transparent-hover);--kbq-list-states-active-container-background: var(--kbq-states-background-transparent-active);--kbq-list-states-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-states-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-states-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-selected-container-background: var(--kbq-background-theme-less);--kbq-list-multiple-states-selected-container-background: var(--kbq-background-contrast-less);--kbq-list-states-selected-text-color: var(--kbq-foreground-contrast);--kbq-list-states-selected-icon-color: var(--kbq-icon-contrast);--kbq-list-states-selected-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-selected-hover-container-background: var(--kbq-states-background-theme-less-hover);--kbq-list-multiple-states-selected-hover-container-background: var(--kbq-states-background-contrast-less-hover);--kbq-list-states-selected-active-container-background: var(--kbq-states-background-theme-less-active);--kbq-list-multiple-states-selected-active-container-background: var(--kbq-states-background-contrast-less-active);--kbq-list-states-selected-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-states-selected-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-states-selected-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-focused-focus-outline-color: var(--kbq-states-line-focus-theme);--kbq-list-states-disabled-container-background: transparent;--kbq-list-states-disabled-text-color: var(--kbq-states-foreground-disabled);--kbq-list-states-disabled-icon-color: var(--kbq-states-icon-disabled);--kbq-list-states-disabled-icon-button-color: var(--kbq-states-icon-disabled);--kbq-list-states-disabled-caption-color: var(--kbq-states-foreground-disabled)}\n"] }]
|
|
4109
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
|
|
4110
|
-
type: Optional
|
|
4111
|
-
}, {
|
|
4112
|
-
type: Inject,
|
|
4113
|
-
args: [KBQ_OPTION_PARENT_COMPONENT]
|
|
4114
|
-
}] }, { type: KbqOptgroup, decorators: [{
|
|
4115
|
-
type: Optional
|
|
4116
|
-
}] }], propDecorators: { textElement: [{
|
|
4976
|
+
}, exportAs: 'kbqOption', template: "@if (showCheckbox) {\n <ng-content select=\"kbq-pseudo-checkbox\">\n <kbq-pseudo-checkbox [disabled]=\"disabled\" [state]=\"selected ? 'checked' : 'unchecked'\" />\n </ng-content>\n}\n\n<span #kbqTitleText class=\"kbq-option-text\">\n <ng-content />\n</span>\n", styles: [".kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-option{position:relative;display:flex;flex-direction:row;align-items:center;box-sizing:border-box;outline:none;-webkit-tap-highlight-color:transparent;min-height:32px;gap:var(--kbq-size-s);border:var(--kbq-size-3xs) solid transparent;padding:var(--kbq-size-xxs) calc(var(--kbq-size-m) - var(--kbq-size-3xs))}.kbq-option .kbq-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.kbq-option .kbq-list-text{display:flex;flex-direction:column;width:100%;box-sizing:content-box;overflow:hidden}.kbq-option .kbq-list-text:empty{display:none}.kbq-option .kbq-list-text{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-option .kbq-list-option-caption{padding-top:var(--kbq-size-3xs)}.kbq-option{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-option>.kbq-pseudo-checkbox{margin-top:var(--kbq-size-3xs);align-self:baseline}.kbq-option{border-radius:var(--kbq-option-border-radius)}.kbq-option:not(.kbq-disabled){cursor:pointer}.kbq-option-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.kbq-option-text{display:flex;flex-direction:column;width:100%;box-sizing:content-box;overflow:hidden}.kbq-option-text:empty{display:none}.kbq-option-text{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-option{background:var(--kbq-list-default-container-background)}.kbq-option .kbq-option-text{color:var(--kbq-list-default-text-color)}.kbq-option .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-default-icon-button-color)}.kbq-option .kbq-option-caption{color:var(--kbq-list-default-caption-color)}.kbq-option.kbq-active:not(.kbq-disabled){background:var(--kbq-list-states-hover-container-background)}.kbq-option.kbq-active:not(.kbq-disabled) .kbq-option-text{color:var(--kbq-list-states-hover-text-color)}.kbq-option.kbq-active:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-hover-icon-button-color)}.kbq-option.kbq-active:not(.kbq-disabled) .kbq-option-caption{color:var(--kbq-list-states-hover-caption-color)}.kbq-option.kbq-selected:not(.kbq-disabled){background:var(--kbq-list-states-selected-container-background)}.kbq-option.kbq-selected:not(.kbq-disabled) .kbq-option-text{color:var(--kbq-list-states-selected-text-color)}.kbq-option.kbq-selected:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-icon-button-color)}.kbq-option.kbq-selected:not(.kbq-disabled) .kbq-option-caption{color:var(--kbq-list-states-selected-caption-color)}.kbq-option.kbq-selected:not(.kbq-disabled).kbq-active{background:var(--kbq-list-states-selected-hover-container-background)}.kbq-option.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-text{color:var(--kbq-list-states-selected-hover-text-color)}.kbq-option.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-selected-hover-icon-button-color)}.kbq-option.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-caption{color:var(--kbq-list-states-selected-hover-caption-color)}.kbq-option.kbq-disabled{background:var(--kbq-list-states-disabled-container-background)}.kbq-option.kbq-disabled .kbq-option-text{color:var(--kbq-list-states-disabled-text-color)}.kbq-option.kbq-disabled .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-states-disabled-icon-button-color)}.kbq-option.kbq-disabled .kbq-option-caption{color:var(--kbq-list-states-disabled-caption-color)}.kbq-option:is(.kbq-selected,.kbq-active):has(+:is(.kbq-selected,.kbq-active)){border-bottom-left-radius:0;border-bottom-right-radius:0}.kbq-option:is(.kbq-selected,.kbq-active)+:is(.kbq-selected,.kbq-active){border-top-left-radius:0;border-top-right-radius:0}.kbq-option-multiple.kbq-selected:not(.kbq-disabled){background:var(--kbq-list-multiple-states-selected-container-background)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled) .kbq-option-text{color:var(--kbq-list-multiple-states-selected-text-color)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled) .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-icon-button-color)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled) .kbq-option-caption{color:var(--kbq-list-multiple-states-selected-caption-color)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled).kbq-active{background:var(--kbq-list-multiple-states-selected-hover-container-background)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-text{color:var(--kbq-list-multiple-states-selected-hover-text-color)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-action .kbq-icon.kbq-empty{color:var(--kbq-list-multiple-states-selected-hover-icon-button-color)}.kbq-option-multiple.kbq-selected:not(.kbq-disabled).kbq-active .kbq-option-caption{color:var(--kbq-list-multiple-states-selected-hover-caption-color)}.kbq-option{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-list-option-caption{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-list,.kbq-list-selection{--kbq-list-size-container-padding-left: var(--kbq-size-m);--kbq-list-size-container-padding-right: var(--kbq-size-m);--kbq-list-size-container-padding-vertical: var(--kbq-size-xs);--kbq-list-size-container-content-gap-horizontal: var(--kbq-size-s);--kbq-list-size-container-content-gap-vertical: var(--kbq-size-3xs);--kbq-list-size-container-focus-outline-width: var(--kbq-size-3xs);--kbq-list-size-header-padding-top: var(--kbq-size-s);--kbq-list-size-header-padding-bottom: var(--kbq-size-xxs);--kbq-list-size-header-padding-horizontal: var(--kbq-size-m);--kbq-list-size-subheading-padding-top: var(--kbq-size-m);--kbq-list-size-subheading-padding-bottom: var(--kbq-size-xxs);--kbq-list-size-subheading-padding-horizontal: var(--kbq-size-m);--kbq-list-default-container-background: transparent;--kbq-list-default-text-color: var(--kbq-foreground-contrast);--kbq-list-default-icon-color: var(--kbq-icon-contrast);--kbq-list-default-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-default-caption-color: var(--kbq-foreground-contrast-secondary);--kbq-list-states-hover-container-background: var(--kbq-states-background-transparent-hover);--kbq-list-states-active-container-background: var(--kbq-states-background-transparent-active);--kbq-list-states-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-states-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-states-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-selected-container-background: var(--kbq-background-theme-less);--kbq-list-multiple-states-selected-container-background: var(--kbq-background-contrast-less);--kbq-list-states-selected-text-color: var(--kbq-foreground-contrast);--kbq-list-states-selected-icon-color: var(--kbq-icon-contrast);--kbq-list-states-selected-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-selected-hover-container-background: var(--kbq-states-background-theme-less-hover);--kbq-list-multiple-states-selected-hover-container-background: var(--kbq-states-background-contrast-less-hover);--kbq-list-states-selected-active-container-background: var(--kbq-states-background-theme-less-active);--kbq-list-multiple-states-selected-active-container-background: var(--kbq-states-background-contrast-less-active);--kbq-list-states-selected-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-states-selected-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-states-selected-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-focused-focus-outline-color: var(--kbq-states-line-focus-theme);--kbq-list-states-disabled-container-background: transparent;--kbq-list-states-disabled-text-color: var(--kbq-states-foreground-disabled);--kbq-list-states-disabled-icon-color: var(--kbq-states-icon-disabled);--kbq-list-states-disabled-icon-button-color: var(--kbq-states-icon-disabled);--kbq-list-states-disabled-caption-color: var(--kbq-states-foreground-disabled)}.kbq-option{--kbq-option-size-horizontal-padding: var(--kbq-size-m);--kbq-option-size-height: var(--kbq-size-3xl);--kbq-option-size-border-width: 2px;--kbq-option-border-radius: var(--kbq-size-xs)}.kbq-option{--kbq-list-default-container-background: transparent;--kbq-list-default-text-color: var(--kbq-foreground-contrast);--kbq-list-default-icon-color: var(--kbq-icon-contrast);--kbq-list-default-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-default-caption-color: var(--kbq-foreground-contrast-secondary);--kbq-list-states-hover-container-background: var(--kbq-states-background-transparent-hover);--kbq-list-states-active-container-background: var(--kbq-states-background-transparent-active);--kbq-list-states-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-states-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-states-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-selected-container-background: var(--kbq-background-theme-less);--kbq-list-multiple-states-selected-container-background: var(--kbq-background-contrast-less);--kbq-list-states-selected-text-color: var(--kbq-foreground-contrast);--kbq-list-states-selected-icon-color: var(--kbq-icon-contrast);--kbq-list-states-selected-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-selected-hover-container-background: var(--kbq-states-background-theme-less-hover);--kbq-list-multiple-states-selected-hover-container-background: var(--kbq-states-background-contrast-less-hover);--kbq-list-states-selected-active-container-background: var(--kbq-states-background-theme-less-active);--kbq-list-multiple-states-selected-active-container-background: var(--kbq-states-background-contrast-less-active);--kbq-list-states-selected-hover-text-color: var(--kbq-foreground-contrast);--kbq-list-states-selected-hover-icon-color: var(--kbq-icon-contrast);--kbq-list-states-selected-hover-icon-button-color: var(--kbq-icon-contrast-fade);--kbq-list-states-focused-focus-outline-color: var(--kbq-states-line-focus-theme);--kbq-list-states-disabled-container-background: transparent;--kbq-list-states-disabled-text-color: var(--kbq-states-foreground-disabled);--kbq-list-states-disabled-icon-color: var(--kbq-states-icon-disabled);--kbq-list-states-disabled-icon-button-color: var(--kbq-states-icon-disabled);--kbq-list-states-disabled-caption-color: var(--kbq-states-foreground-disabled)}\n"] }]
|
|
4977
|
+
}], propDecorators: { textElement: [{
|
|
4117
4978
|
type: ViewChild,
|
|
4118
4979
|
args: ['kbqTitleText', { static: false }]
|
|
4119
4980
|
}], value: [{
|
|
4120
4981
|
type: Input
|
|
4121
|
-
}], selectable: [{
|
|
4122
|
-
type: Input,
|
|
4123
|
-
args: [{ transform: booleanAttribute }]
|
|
4124
|
-
}], userSelect: [{
|
|
4125
|
-
type: Input,
|
|
4126
|
-
args: [{ transform: booleanAttribute }]
|
|
4127
|
-
}], showCheckbox: [{
|
|
4982
|
+
}], selectable: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectable", required: false }] }], userSelect: [{ type: i0.Input, args: [{ isSignal: true, alias: "userSelect", required: false }] }], showCheckbox: [{
|
|
4128
4983
|
type: Input
|
|
4129
4984
|
}], onSelectionChange: [{
|
|
4130
4985
|
type: Output
|
|
@@ -4174,11 +5029,11 @@ function getOptionScrollPosition(optionIndex, optionHeight, currentScrollPositio
|
|
|
4174
5029
|
}
|
|
4175
5030
|
|
|
4176
5031
|
class KbqOptionModule {
|
|
4177
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4178
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
4179
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
5032
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqOptionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
5033
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqOptionModule, imports: [KbqPseudoCheckbox, KbqOption, KbqOptgroup, KbqOptionActionComponent], exports: [KbqOption, KbqOptgroup, KbqOptionActionComponent] }); }
|
|
5034
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqOptionModule }); }
|
|
4180
5035
|
}
|
|
4181
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5036
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqOptionModule, decorators: [{
|
|
4182
5037
|
type: NgModule,
|
|
4183
5038
|
args: [{
|
|
4184
5039
|
imports: [KbqPseudoCheckbox, KbqOption, KbqOptgroup, KbqOptionActionComponent],
|
|
@@ -4186,6 +5041,149 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
|
|
|
4186
5041
|
}]
|
|
4187
5042
|
}] });
|
|
4188
5043
|
|
|
5044
|
+
/**
|
|
5045
|
+
* DI token a scrollable wrapper component can provide to expose itself as the scroll source
|
|
5046
|
+
* for a co-located `KbqOverflowShadowContainer` (see `KbqScrollbar`).
|
|
5047
|
+
*/
|
|
5048
|
+
const KBQ_OVERFLOW_SHADOW_SOURCE = new InjectionToken('KBQ_OVERFLOW_SHADOW_SOURCE');
|
|
5049
|
+
/**
|
|
5050
|
+
* Container directive that sits on the scrollable element. Listens for scroll events and
|
|
5051
|
+
* keeps the `overflow` signal up to date, which is then read by `KbqOverflowShadowTop` and
|
|
5052
|
+
* `KbqOverflowShadowBottom`.
|
|
5053
|
+
*
|
|
5054
|
+
* The scroll source is auto-detected: if `KBQ_OVERFLOW_SHADOW_SOURCE` is provided in the
|
|
5055
|
+
* host's DI, that source is used; otherwise the native `scroll` event on the host element
|
|
5056
|
+
* is observed.
|
|
5057
|
+
*
|
|
5058
|
+
* In addition to scroll events, the directive observes the scroll source's box-size changes
|
|
5059
|
+
* via CDK's `SharedResizeObserver` — this covers layout changes that happen without a scroll
|
|
5060
|
+
* and alter the viewport size (modal open/close animation, window resize, reflow that resizes
|
|
5061
|
+
* the element). Content that only grows `scrollHeight` without changing the element's box size
|
|
5062
|
+
* is not detected by the resize observer; call `checkOverflow()` manually for those cases.
|
|
5063
|
+
*/
|
|
5064
|
+
class KbqOverflowShadowContainer {
|
|
5065
|
+
constructor() {
|
|
5066
|
+
this.destroyRef = inject(DestroyRef);
|
|
5067
|
+
this.hostElement = kbqInjectNativeElement();
|
|
5068
|
+
this.externalSource = inject(KBQ_OVERFLOW_SHADOW_SOURCE, { optional: true, self: true });
|
|
5069
|
+
this.sharedResizeObserver = inject(SharedResizeObserver);
|
|
5070
|
+
/** Optional debounce for scroll events, in milliseconds. Default is 0. */
|
|
5071
|
+
this.debounce = input(0, ...(ngDevMode ? [{ debugName: "debounce", transform: numberAttribute }] : [{ transform: numberAttribute }]));
|
|
5072
|
+
/** Current shadow state. Updated on every scroll event. */
|
|
5073
|
+
this.overflow = signal({ top: false, bottom: false }, ...(ngDevMode ? [{ debugName: "overflow" }] : []));
|
|
5074
|
+
afterNextRender(() => {
|
|
5075
|
+
this.checkOverflow();
|
|
5076
|
+
this.observeResize();
|
|
5077
|
+
});
|
|
5078
|
+
}
|
|
5079
|
+
ngOnInit() {
|
|
5080
|
+
const source$ = this.externalSource
|
|
5081
|
+
? this.externalSource.onScroll
|
|
5082
|
+
: fromEvent(this.hostElement, 'scroll', { passive: true });
|
|
5083
|
+
const stream$ = this.debounce() > 0 ? source$.pipe(debounceTime(this.debounce())) : source$;
|
|
5084
|
+
stream$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => this.checkOverflow());
|
|
5085
|
+
}
|
|
5086
|
+
/**
|
|
5087
|
+
* Force-rechecks overflow and updates the signal. Calling this manually is normally not
|
|
5088
|
+
* necessary — scroll events plus `SharedResizeObserver` cover the standard scenarios. Kept
|
|
5089
|
+
* for rare cases when external code knows about a layout change more precisely than the
|
|
5090
|
+
* browser observers (e.g. content that only grows `scrollHeight`).
|
|
5091
|
+
*/
|
|
5092
|
+
checkOverflow() {
|
|
5093
|
+
const source = this.getScrollSource();
|
|
5094
|
+
if (!source)
|
|
5095
|
+
return;
|
|
5096
|
+
// `clientHeight` (content-box) is the visible scroll-viewport height. `Math.round` on the
|
|
5097
|
+
// bottom comparison absorbs sub-pixel scroll metrics (HiDPI / browser zoom) so the bottom
|
|
5098
|
+
// shadow reliably clears at the very bottom instead of lingering on a fractional gap.
|
|
5099
|
+
const { scrollTop, clientHeight, scrollHeight } = source;
|
|
5100
|
+
this.overflow.set({
|
|
5101
|
+
top: scrollTop > 0,
|
|
5102
|
+
bottom: Math.round(scrollTop + clientHeight) < scrollHeight
|
|
5103
|
+
});
|
|
5104
|
+
}
|
|
5105
|
+
getScrollSource() {
|
|
5106
|
+
return this.externalSource ? this.externalSource.getScrollElement() : this.hostElement;
|
|
5107
|
+
}
|
|
5108
|
+
observeResize() {
|
|
5109
|
+
const source = this.getScrollSource();
|
|
5110
|
+
if (!source)
|
|
5111
|
+
return;
|
|
5112
|
+
this.sharedResizeObserver
|
|
5113
|
+
.observe(source)
|
|
5114
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
5115
|
+
.subscribe(() => this.checkOverflow());
|
|
5116
|
+
}
|
|
5117
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqOverflowShadowContainer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
5118
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.25", type: KbqOverflowShadowContainer, isStandalone: true, selector: "[kbqOverflowShadowContainer]", inputs: { debounce: { classPropertyName: "debounce", publicName: "debounce", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["kbqOverflowShadowContainer"], ngImport: i0 }); }
|
|
5119
|
+
}
|
|
5120
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqOverflowShadowContainer, decorators: [{
|
|
5121
|
+
type: Directive,
|
|
5122
|
+
args: [{
|
|
5123
|
+
selector: '[kbqOverflowShadowContainer]',
|
|
5124
|
+
exportAs: 'kbqOverflowShadowContainer'
|
|
5125
|
+
}]
|
|
5126
|
+
}], ctorParameters: () => [], propDecorators: { debounce: [{ type: i0.Input, args: [{ isSignal: true, alias: "debounce", required: false }] }] } });
|
|
5127
|
+
/**
|
|
5128
|
+
* Marker directive for the top-shadow indicator. Linked to the container directive via a
|
|
5129
|
+
* template ref: `<header [kbqOverflowShadowTop]="containerRef">`.
|
|
5130
|
+
*
|
|
5131
|
+
* Sets an inline `box-shadow` on the host element using the value from the `shadow` input
|
|
5132
|
+
* (the Koobiq token by default). Consumers can override the shadow from the outside by
|
|
5133
|
+
* overriding the token `--kbq-shadow-overflow-normal-bottom` (or whichever token is passed
|
|
5134
|
+
* via the `shadow` input) in the relevant cascade scope.
|
|
5135
|
+
*/
|
|
5136
|
+
class KbqOverflowShadowTop {
|
|
5137
|
+
constructor() {
|
|
5138
|
+
/**
|
|
5139
|
+
* Reference to the container directive. May be `undefined` if the container has not
|
|
5140
|
+
* been rendered yet (e.g. the indicator lives in one @if block and the container in
|
|
5141
|
+
* another).
|
|
5142
|
+
*/
|
|
5143
|
+
this.ref = input(undefined, ...(ngDevMode ? [{ debugName: "ref", alias: 'kbqOverflowShadowTop' }] : [{ alias: 'kbqOverflowShadowTop' }]));
|
|
5144
|
+
/** Value of `box-shadow` when the shadow is active. Defaults to the standard Koobiq token. */
|
|
5145
|
+
this.shadow = input('var(--kbq-shadow-overflow-normal-bottom)', ...(ngDevMode ? [{ debugName: "shadow" }] : []));
|
|
5146
|
+
}
|
|
5147
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqOverflowShadowTop, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
5148
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.25", type: KbqOverflowShadowTop, isStandalone: true, selector: "[kbqOverflowShadowTop]", inputs: { ref: { classPropertyName: "ref", publicName: "kbqOverflowShadowTop", isSignal: true, isRequired: false, transformFunction: null }, shadow: { classPropertyName: "shadow", publicName: "shadow", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.box-shadow": "ref()?.overflow()?.top ? shadow() : null" } }, exportAs: ["kbqOverflowShadowTop"], ngImport: i0 }); }
|
|
5149
|
+
}
|
|
5150
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqOverflowShadowTop, decorators: [{
|
|
5151
|
+
type: Directive,
|
|
5152
|
+
args: [{
|
|
5153
|
+
selector: '[kbqOverflowShadowTop]',
|
|
5154
|
+
host: {
|
|
5155
|
+
'[style.box-shadow]': 'ref()?.overflow()?.top ? shadow() : null'
|
|
5156
|
+
},
|
|
5157
|
+
exportAs: 'kbqOverflowShadowTop'
|
|
5158
|
+
}]
|
|
5159
|
+
}], propDecorators: { ref: [{ type: i0.Input, args: [{ isSignal: true, alias: "kbqOverflowShadowTop", required: false }] }], shadow: [{ type: i0.Input, args: [{ isSignal: true, alias: "shadow", required: false }] }] } });
|
|
5160
|
+
/**
|
|
5161
|
+
* Marker directive for the bottom-shadow indicator. Linked to the container directive via a
|
|
5162
|
+
* template ref: `<footer [kbqOverflowShadowBottom]="containerRef">`.
|
|
5163
|
+
*
|
|
5164
|
+
* Sets an inline `box-shadow` on the host element. See {@link KbqOverflowShadowTop}.
|
|
5165
|
+
*/
|
|
5166
|
+
class KbqOverflowShadowBottom {
|
|
5167
|
+
constructor() {
|
|
5168
|
+
/** Reference to the container directive. See {@link KbqOverflowShadowTop.ref}. */
|
|
5169
|
+
this.ref = input(undefined, ...(ngDevMode ? [{ debugName: "ref", alias: 'kbqOverflowShadowBottom' }] : [{ alias: 'kbqOverflowShadowBottom' }]));
|
|
5170
|
+
/** Value of `box-shadow` when the shadow is active. Defaults to the standard Koobiq token. */
|
|
5171
|
+
this.shadow = input('var(--kbq-shadow-overflow-normal-top)', ...(ngDevMode ? [{ debugName: "shadow" }] : []));
|
|
5172
|
+
}
|
|
5173
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqOverflowShadowBottom, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
5174
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.25", type: KbqOverflowShadowBottom, isStandalone: true, selector: "[kbqOverflowShadowBottom]", inputs: { ref: { classPropertyName: "ref", publicName: "kbqOverflowShadowBottom", isSignal: true, isRequired: false, transformFunction: null }, shadow: { classPropertyName: "shadow", publicName: "shadow", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.box-shadow": "ref()?.overflow()?.bottom ? shadow() : null" } }, exportAs: ["kbqOverflowShadowBottom"], ngImport: i0 }); }
|
|
5175
|
+
}
|
|
5176
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqOverflowShadowBottom, decorators: [{
|
|
5177
|
+
type: Directive,
|
|
5178
|
+
args: [{
|
|
5179
|
+
selector: '[kbqOverflowShadowBottom]',
|
|
5180
|
+
host: {
|
|
5181
|
+
'[style.box-shadow]': 'ref()?.overflow()?.bottom ? shadow() : null'
|
|
5182
|
+
},
|
|
5183
|
+
exportAs: 'kbqOverflowShadowBottom'
|
|
5184
|
+
}]
|
|
5185
|
+
}], propDecorators: { ref: [{ type: i0.Input, args: [{ isSignal: true, alias: "kbqOverflowShadowBottom", required: false }] }], shadow: [{ type: i0.Input, args: [{ isSignal: true, alias: "shadow", required: false }] }] } });
|
|
5186
|
+
|
|
4189
5187
|
const POSITION_MAP = {
|
|
4190
5188
|
top: {
|
|
4191
5189
|
originX: 'center',
|
|
@@ -4436,6 +5434,143 @@ function objectValues(object) {
|
|
|
4436
5434
|
return object === null ? [] : baseValues(object, Object.keys(object));
|
|
4437
5435
|
}
|
|
4438
5436
|
|
|
5437
|
+
/**
|
|
5438
|
+
* Element used by {@link KbqShadowDomOverlayContainer} to locate the shadow root that should host overlays.
|
|
5439
|
+
*
|
|
5440
|
+
* When not provided, the container falls back to the application root component element.
|
|
5441
|
+
*/
|
|
5442
|
+
const KBQ_SHADOW_DOM_OVERLAY_HOST = new InjectionToken('KBQ_SHADOW_DOM_OVERLAY_HOST');
|
|
5443
|
+
/** Marks the structural overlay stylesheet that {@link KbqShadowDomOverlayContainer} clones into a shadow root. */
|
|
5444
|
+
const overlayStructuralStylesAttribute = 'data-kbq-overlay-structural-styles';
|
|
5445
|
+
/**
|
|
5446
|
+
* `OverlayContainer` that places the `.cdk-overlay-container` inside a shadow root instead of `document.body`.
|
|
5447
|
+
*
|
|
5448
|
+
* The default CDK `OverlayContainer` always appends its container to `document.body`. When the application is
|
|
5449
|
+
* rendered inside a shadow root (e.g. a Module Federation micro-frontend), overlays — toasts, modals, dropdowns,
|
|
5450
|
+
* tooltips, etc. — escape the shadow tree into the light DOM. There they lose access to the styles and theme tokens
|
|
5451
|
+
* scoped to the shadow root (Koobiq theme tokens are defined on the `.kbq-light` / `.kbq-dark` ancestor), which
|
|
5452
|
+
* results in unstyled overlays.
|
|
5453
|
+
*
|
|
5454
|
+
* This container resolves the target shadow root from {@link KBQ_SHADOW_DOM_OVERLAY_HOST} (or the root component when
|
|
5455
|
+
* the token is absent) and relocates the overlay container into it. After relocating, it also clones CDK's own
|
|
5456
|
+
* structural overlay stylesheet (`position`/`z-index`/backdrop, `.cdk-overlay-container:empty`) into the shadow root,
|
|
5457
|
+
* since those `document.head` styles do not cross the shadow boundary. If no shadow root is found — the common case
|
|
5458
|
+
* for an app rendered directly in the light DOM — the container is left on `document.body`, so it is safe to provide
|
|
5459
|
+
* unconditionally.
|
|
5460
|
+
*
|
|
5461
|
+
* Only **open** shadow roots can be resolved: a closed shadow root exposes neither `Element.shadowRoot` nor a
|
|
5462
|
+
* `ShadowRoot` from `getRootNode()`, so pass an element that already lives inside the closed tree if you must use one.
|
|
5463
|
+
*
|
|
5464
|
+
* Note: this fixes the overlay container *placement* and delivers the CDK structural overlay styles. The host
|
|
5465
|
+
* application is still responsible for delivering the **Koobiq component/theme styles** (the `.kbq-light` / `.kbq-dark`
|
|
5466
|
+
* tokens and component CSS) into the shadow root, since global `document.head` stylesheets do not cascade across a
|
|
5467
|
+
* shadow boundary.
|
|
5468
|
+
*
|
|
5469
|
+
* @see kbqShadowDomOverlayProvider
|
|
5470
|
+
*/
|
|
5471
|
+
class KbqShadowDomOverlayContainer extends OverlayContainer {
|
|
5472
|
+
constructor() {
|
|
5473
|
+
super(...arguments);
|
|
5474
|
+
this.host = inject(KBQ_SHADOW_DOM_OVERLAY_HOST, { optional: true });
|
|
5475
|
+
this.applicationRef = inject(ApplicationRef);
|
|
5476
|
+
}
|
|
5477
|
+
/** @internal CDK lifecycle hook — overridden to relocate the container into a shadow root. */
|
|
5478
|
+
_createContainer() {
|
|
5479
|
+
// Let CDK create the container (and run its test-environment cleanup). It is appended to `document.body`.
|
|
5480
|
+
super._createContainer();
|
|
5481
|
+
const shadowRoot = this.resolveShadowRoot();
|
|
5482
|
+
if (shadowRoot) {
|
|
5483
|
+
// Relocate the container into the shadow root and deliver the structural overlay styles alongside it.
|
|
5484
|
+
shadowRoot.appendChild(this._containerElement);
|
|
5485
|
+
this.deliverStructuralStyles(shadowRoot);
|
|
5486
|
+
}
|
|
5487
|
+
else if (this.host != null) {
|
|
5488
|
+
// An explicit host was provided but did not resolve to an open shadow root (wrong element, a closed
|
|
5489
|
+
// shadow root, or an element not yet inside a shadow tree). The container stays on `document.body`, so
|
|
5490
|
+
// overlays would render unstyled — warn instead of failing silently.
|
|
5491
|
+
// eslint-disable-next-line no-console
|
|
5492
|
+
console.warn('[KbqShadowDomOverlayContainer] The provided host did not resolve to an open shadow root; the ' +
|
|
5493
|
+
'overlay container stays on document.body. Ensure the host element (or an element inside its ' +
|
|
5494
|
+
'shadow tree) uses an open shadow root.');
|
|
5495
|
+
}
|
|
5496
|
+
}
|
|
5497
|
+
/**
|
|
5498
|
+
* Clones CDK's structural overlay stylesheet into the shadow root.
|
|
5499
|
+
*
|
|
5500
|
+
* CDK ships the overlay's structural CSS as a `ViewEncapsulation.None` component, so Angular injects it as a
|
|
5501
|
+
* `<style>` in `document.head` synchronously — `OverlayContainer.getContainerElement()` loads it before
|
|
5502
|
+
* `_createContainer()` runs. Those rules do not cross the shadow boundary, so a relocated container would
|
|
5503
|
+
* otherwise be unpositioned. Cloning the already-injected stylesheet keeps it version-matched to the installed
|
|
5504
|
+
* `@angular/cdk` and is idempotent.
|
|
5505
|
+
*/
|
|
5506
|
+
deliverStructuralStyles(shadowRoot) {
|
|
5507
|
+
if (shadowRoot.querySelector(`style[${overlayStructuralStylesAttribute}]`)) {
|
|
5508
|
+
return;
|
|
5509
|
+
}
|
|
5510
|
+
const sourceStyle = Array.from(this._document.head.querySelectorAll('style')).find((style) => style.textContent?.includes('.cdk-overlay-pane'));
|
|
5511
|
+
if (sourceStyle) {
|
|
5512
|
+
const clone = sourceStyle.cloneNode(true);
|
|
5513
|
+
clone.setAttribute(overlayStructuralStylesAttribute, '');
|
|
5514
|
+
shadowRoot.appendChild(clone);
|
|
5515
|
+
}
|
|
5516
|
+
}
|
|
5517
|
+
resolveShadowRoot() {
|
|
5518
|
+
const element = this.resolveHostElement();
|
|
5519
|
+
if (!element) {
|
|
5520
|
+
return null;
|
|
5521
|
+
}
|
|
5522
|
+
// The host can be the shadow host itself (the common case — the MFE root element)...
|
|
5523
|
+
const ownShadowRoot = element.shadowRoot;
|
|
5524
|
+
if (ownShadowRoot) {
|
|
5525
|
+
return ownShadowRoot;
|
|
5526
|
+
}
|
|
5527
|
+
// ...or an element that already lives inside the shadow tree.
|
|
5528
|
+
const rootNode = element.getRootNode();
|
|
5529
|
+
return typeof ShadowRoot !== 'undefined' && rootNode instanceof ShadowRoot ? rootNode : null;
|
|
5530
|
+
}
|
|
5531
|
+
resolveHostElement() {
|
|
5532
|
+
if (this.host) {
|
|
5533
|
+
const resolved = typeof this.host === 'function' ? this.host() : this.host;
|
|
5534
|
+
if (resolved instanceof ElementRef) {
|
|
5535
|
+
return resolved.nativeElement;
|
|
5536
|
+
}
|
|
5537
|
+
return resolved ?? null;
|
|
5538
|
+
}
|
|
5539
|
+
// No explicit host provided — fall back to the application root component element.
|
|
5540
|
+
return this.applicationRef.components[0]?.location.nativeElement ?? null;
|
|
5541
|
+
}
|
|
5542
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqShadowDomOverlayContainer, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
5543
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqShadowDomOverlayContainer }); }
|
|
5544
|
+
}
|
|
5545
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqShadowDomOverlayContainer, decorators: [{
|
|
5546
|
+
type: Injectable
|
|
5547
|
+
}] });
|
|
5548
|
+
/**
|
|
5549
|
+
* Providers that route all CDK overlays into a shadow root via {@link KbqShadowDomOverlayContainer}.
|
|
5550
|
+
*
|
|
5551
|
+
* Add it to the bootstrap providers of an application rendered inside a shadow root:
|
|
5552
|
+
*
|
|
5553
|
+
* ```ts
|
|
5554
|
+
* bootstrapApplication(AppComponent, {
|
|
5555
|
+
* providers: kbqShadowDomOverlayProvider(() => document.querySelector('my-mfe-root')!)
|
|
5556
|
+
* });
|
|
5557
|
+
* ```
|
|
5558
|
+
*
|
|
5559
|
+
* The provider replaces the global `OverlayContainer` token, so it cannot be combined with another custom
|
|
5560
|
+
* `OverlayContainer` (e.g. CDK's `FullscreenOverlayContainer`) — the last provider wins. Apps that need both must
|
|
5561
|
+
* subclass `KbqShadowDomOverlayContainer`.
|
|
5562
|
+
*
|
|
5563
|
+
* @param host element (or getter / `ElementRef`) inside the target shadow tree. When omitted, the application root
|
|
5564
|
+
* component element is used to resolve the shadow root.
|
|
5565
|
+
*/
|
|
5566
|
+
const kbqShadowDomOverlayProvider = (host) => {
|
|
5567
|
+
const providers = [{ provide: OverlayContainer, useClass: KbqShadowDomOverlayContainer }];
|
|
5568
|
+
if (host !== undefined) {
|
|
5569
|
+
providers.push({ provide: KBQ_SHADOW_DOM_OVERLAY_HOST, useValue: host });
|
|
5570
|
+
}
|
|
5571
|
+
return providers;
|
|
5572
|
+
};
|
|
5573
|
+
|
|
4439
5574
|
/**
|
|
4440
5575
|
* InjectionToken for providing component with popup. Used in select and tree-select for tooltip.
|
|
4441
5576
|
*/
|
|
@@ -4560,9 +5695,16 @@ class KbqPopUp {
|
|
|
4560
5695
|
return this.visibility === PopUpVisibility.Visible;
|
|
4561
5696
|
}
|
|
4562
5697
|
updateClassMap(placement, customClass, classMap) {
|
|
5698
|
+
// `customClass` may be a whitespace-separated list of class names; expand it into
|
|
5699
|
+
// individual keys so the native `[class]` binding (which doesn't tokenise object keys)
|
|
5700
|
+
// applies each class correctly.
|
|
5701
|
+
const customClasses = {};
|
|
5702
|
+
for (const token of (customClass ?? '').split(/\s+/).filter(Boolean)) {
|
|
5703
|
+
customClasses[token] = true;
|
|
5704
|
+
}
|
|
4563
5705
|
this.classMap = {
|
|
4564
5706
|
[`${this.prefix}_placement-${placement}`]: true,
|
|
4565
|
-
|
|
5707
|
+
...customClasses,
|
|
4566
5708
|
...classMap
|
|
4567
5709
|
};
|
|
4568
5710
|
}
|
|
@@ -4628,10 +5770,10 @@ class KbqPopUp {
|
|
|
4628
5770
|
this.renderer.setStyle(this.trigger.overlayRef?.overlayElement, oppositeSide, 'unset');
|
|
4629
5771
|
}
|
|
4630
5772
|
}
|
|
4631
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4632
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
5773
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPopUp, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
5774
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: KbqPopUp, isStandalone: true, host: { listeners: { "mouseenter": "hovered.next(true)", "mouseleave": "hovered.next(false)" } }, ngImport: i0 }); }
|
|
4633
5775
|
}
|
|
4634
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
5776
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPopUp, decorators: [{
|
|
4635
5777
|
type: Directive,
|
|
4636
5778
|
args: [{
|
|
4637
5779
|
host: {
|
|
@@ -4695,42 +5837,91 @@ const getOffset = ({ originX, overlayX, originY, overlayY }, { width, height })
|
|
|
4695
5837
|
}
|
|
4696
5838
|
return offset;
|
|
4697
5839
|
};
|
|
5840
|
+
/**
|
|
5841
|
+
* Abstract base directive for hover/focus/click-triggered pop-ups (e.g. tooltip and popover). It manages the
|
|
5842
|
+
* CDK overlay lifecycle, binds the trigger event listeners, resolves placement via a flexible connected position
|
|
5843
|
+
* strategy, and controls show/hide timing. Concrete subclasses supply the pop-up component type, its content,
|
|
5844
|
+
* and the overlay configuration.
|
|
5845
|
+
*/
|
|
4698
5846
|
class KbqPopUpTrigger {
|
|
4699
5847
|
constructor() {
|
|
4700
|
-
/** Stream that emits when the popupTrigger is hovered.
|
|
5848
|
+
/** Stream that emits when the popupTrigger is hovered.
|
|
5849
|
+
* @docs-private */
|
|
4701
5850
|
this.hovered = new BehaviorSubject(false);
|
|
5851
|
+
/** RxJS scheduler that drives the hide timeout; `undefined` falls back to the default async scheduler.
|
|
5852
|
+
* @docs-private */
|
|
4702
5853
|
this.scheduler = inject(AsyncScheduler, { optional: true }) || undefined;
|
|
5854
|
+
/** CDK Overlay service used to create and position the pop-up overlay.
|
|
5855
|
+
* @docs-private */
|
|
4703
5856
|
this.overlay = inject(Overlay);
|
|
5857
|
+
/** Reference to the host element the pop-up is anchored to.
|
|
5858
|
+
* @docs-private */
|
|
4704
5859
|
this.elementRef = inject(ElementRef);
|
|
5860
|
+
/** Angular zone, used to run the hide timer outside Angular and re-enter when hiding.
|
|
5861
|
+
* @docs-private */
|
|
4705
5862
|
this.ngZone = inject(NgZone);
|
|
5863
|
+
/** CDK ScrollDispatcher, used to track ancestor scroll containers so the pop-up repositions on scroll.
|
|
5864
|
+
* @docs-private */
|
|
4706
5865
|
this.scrollDispatcher = inject(ScrollDispatcher);
|
|
5866
|
+
/** CDK ViewportRuler, used to re-apply the stick-to-window position on window resize.
|
|
5867
|
+
* @docs-private */
|
|
5868
|
+
this.viewportRuler = inject(ViewportRuler);
|
|
5869
|
+
/** View container the pop-up component portal is attached to.
|
|
5870
|
+
* @docs-private */
|
|
4707
5871
|
this.hostView = inject(ViewContainerRef);
|
|
5872
|
+
/** Text direction (LTR/RTL) applied to the overlay when a `Directionality` is available.
|
|
5873
|
+
* @docs-private */
|
|
4708
5874
|
this.direction = inject(Directionality, { optional: true });
|
|
5875
|
+
/** Destroy reference used to auto-unsubscribe streams when the directive is destroyed.
|
|
5876
|
+
* @docs-private */
|
|
4709
5877
|
this.destroyRef = inject(DestroyRef);
|
|
5878
|
+
/** Nearest `CdkScrollable` ancestor, if any.
|
|
5879
|
+
* @docs-private */
|
|
4710
5880
|
this.scrollable = inject(CdkScrollable, { optional: true });
|
|
5881
|
+
/** Change detector used to refresh the trigger when its open state changes. */
|
|
4711
5882
|
this.popUpChangeDetectorRef = inject(ChangeDetectorRef);
|
|
5883
|
+
/** Backing field for `isOpen`. */
|
|
4712
5884
|
this._isOpen = false;
|
|
5885
|
+
/** Delay in milliseconds before the pop-up is shown.
|
|
5886
|
+
* @docs-private */
|
|
4713
5887
|
this.enterDelay = 0;
|
|
5888
|
+
/** Delay in milliseconds before the pop-up is hidden.
|
|
5889
|
+
* @docs-private */
|
|
4714
5890
|
this.leaveDelay = 0;
|
|
5891
|
+
/** Current resolved placement of the pop-up.
|
|
5892
|
+
* @docs-private */
|
|
4715
5893
|
this.placement = PopUpPlacements.Top;
|
|
5894
|
+
/** Ordered list of fallback placements to try before the default priority.
|
|
5895
|
+
* @docs-private */
|
|
4716
5896
|
this.placementPriority = null;
|
|
5897
|
+
/** Whether the pop-up is currently visible.
|
|
5898
|
+
* @docs-private */
|
|
4717
5899
|
this.visible = false;
|
|
5900
|
+
/** Map of event name to the handler currently bound on the host element.
|
|
5901
|
+
* @docs-private */
|
|
4718
5902
|
this.listeners = new Map();
|
|
5903
|
+
/** Map of placement name to its CDK connected position pair.
|
|
5904
|
+
* @docs-private */
|
|
4719
5905
|
this.availablePositions = POSITION_MAP;
|
|
4720
|
-
/** Hide pop-up with timeout. Need if you want to show pop-up after leaving trigger
|
|
5906
|
+
/** Hide pop-up with timeout. Need if you want to show pop-up after leaving trigger
|
|
5907
|
+
* @docs-private */
|
|
4721
5908
|
this.hideWithTimeout = false;
|
|
4722
|
-
/** prevents closure by any event
|
|
5909
|
+
/** prevents closure by any event
|
|
5910
|
+
* @docs-private */
|
|
4723
5911
|
this.preventClose = false;
|
|
5912
|
+
/** Detaches the overlay (if attached) and clears the current pop-up instance.
|
|
5913
|
+
* @docs-private */
|
|
4724
5914
|
this.detach = () => {
|
|
4725
5915
|
if (this.overlayRef?.hasAttached()) {
|
|
4726
5916
|
this.overlayRef.detach();
|
|
4727
5917
|
}
|
|
4728
5918
|
this.instance = null;
|
|
4729
5919
|
};
|
|
5920
|
+
/** Maps the CDK connection position back to a placement name, emits `placementChange`, and updates classes.
|
|
5921
|
+
* @docs-private */
|
|
4730
5922
|
this.onPositionChange = ($event) => {
|
|
4731
|
-
if (!this.instance)
|
|
5923
|
+
if (!this.instance)
|
|
4732
5924
|
return;
|
|
4733
|
-
}
|
|
4734
5925
|
let newPlacement = this.placement;
|
|
4735
5926
|
const { originX, originY, overlayX, overlayY } = $event.connectionPair;
|
|
4736
5927
|
Object.keys(this.availablePositions).some((key) => {
|
|
@@ -4747,13 +5938,16 @@ class KbqPopUpTrigger {
|
|
|
4747
5938
|
this.updateClassMap(newPlacement);
|
|
4748
5939
|
this.instance.detectChanges();
|
|
4749
5940
|
};
|
|
5941
|
+
/** Binds a single event listener to the pop-up's native element. */
|
|
4750
5942
|
this.addEventListener = (listener, event) => {
|
|
4751
5943
|
this.getNativeElement().addEventListener(event, listener);
|
|
4752
5944
|
};
|
|
5945
|
+
/** Unbinds a single event listener from the pop-up's native element. */
|
|
4753
5946
|
this.removeEventListener = (listener, event) => {
|
|
4754
5947
|
this.getNativeElement().removeEventListener(event, listener);
|
|
4755
5948
|
};
|
|
4756
5949
|
}
|
|
5950
|
+
/** Whether the pop-up overlay is currently open. */
|
|
4757
5951
|
get isOpen() {
|
|
4758
5952
|
return this._isOpen;
|
|
4759
5953
|
}
|
|
@@ -4761,14 +5955,18 @@ class KbqPopUpTrigger {
|
|
|
4761
5955
|
this._isOpen = value;
|
|
4762
5956
|
this.popUpChangeDetectorRef.markForCheck();
|
|
4763
5957
|
}
|
|
5958
|
+
/** Binds the DOM event listeners for the configured triggers. */
|
|
4764
5959
|
ngOnInit() {
|
|
4765
5960
|
this.initListeners();
|
|
4766
5961
|
}
|
|
5962
|
+
/** Disposes the overlay and removes all bound event listeners. */
|
|
4767
5963
|
ngOnDestroy() {
|
|
4768
5964
|
this.overlayRef?.dispose();
|
|
4769
5965
|
this.listeners.forEach(this.removeEventListener);
|
|
4770
5966
|
this.listeners.clear();
|
|
4771
5967
|
}
|
|
5968
|
+
/** Sets the placement (falling back to `Top` on an unknown value) and refreshes the classes and position.
|
|
5969
|
+
* @docs-private */
|
|
4772
5970
|
updatePlacement(value) {
|
|
4773
5971
|
if (POSITION_TO_CSS_MAP[value]) {
|
|
4774
5972
|
this.placement = value;
|
|
@@ -4783,6 +5981,8 @@ class KbqPopUpTrigger {
|
|
|
4783
5981
|
this.updatePosition();
|
|
4784
5982
|
}
|
|
4785
5983
|
}
|
|
5984
|
+
/** Sets the ordered list of fallback placements, or clears it when the value is empty.
|
|
5985
|
+
* @docs-private */
|
|
4786
5986
|
updatePlacementPriority(value) {
|
|
4787
5987
|
if (value && value.length > 0) {
|
|
4788
5988
|
this.placementPriority = value;
|
|
@@ -4791,6 +5991,8 @@ class KbqPopUpTrigger {
|
|
|
4791
5991
|
this.placementPriority = null;
|
|
4792
5992
|
}
|
|
4793
5993
|
}
|
|
5994
|
+
/** Coerces and applies an external visibility value by showing or hiding the pop-up when it changes.
|
|
5995
|
+
* @docs-private */
|
|
4794
5996
|
updateVisible(externalValue) {
|
|
4795
5997
|
const value = coerceBooleanProperty(externalValue);
|
|
4796
5998
|
if (this.visible !== value) {
|
|
@@ -4803,14 +6005,20 @@ class KbqPopUpTrigger {
|
|
|
4803
6005
|
}
|
|
4804
6006
|
}
|
|
4805
6007
|
}
|
|
6008
|
+
/** Closes the pop-up when `Escape` is pressed while it is open. Bound to the host `keydown` event.
|
|
6009
|
+
* @docs-private */
|
|
4806
6010
|
keydownHandler(event) {
|
|
4807
6011
|
if (this.isOpen && event.keyCode === ESCAPE) {
|
|
4808
6012
|
this.hide();
|
|
4809
6013
|
}
|
|
4810
6014
|
}
|
|
6015
|
+
/** Hides the pop-up. Bound to the host `touchend` event.
|
|
6016
|
+
* @docs-private */
|
|
4811
6017
|
touchendHandler() {
|
|
4812
6018
|
this.hide();
|
|
4813
6019
|
}
|
|
6020
|
+
/** Creates the overlay (if needed) and shows the pop-up after `delay` ms, wiring its visibility stream.
|
|
6021
|
+
* @docs-private */
|
|
4814
6022
|
show(delay = this.enterDelay) {
|
|
4815
6023
|
if (this.disabled || this.instance) {
|
|
4816
6024
|
return;
|
|
@@ -4833,6 +6041,14 @@ class KbqPopUpTrigger {
|
|
|
4833
6041
|
});
|
|
4834
6042
|
this.updatePosition();
|
|
4835
6043
|
this.instance.show(delay);
|
|
6044
|
+
// The position strategy re-applies the overlay position on window resize (its ViewportRuler
|
|
6045
|
+
// subscription is created inside OverlayRef.attach(), i.e. before this one), wiping the manual
|
|
6046
|
+
// styles written by setStickPosition. Re-apply them after the strategy has run.
|
|
6047
|
+
// No-op when stickToWindow is not set.
|
|
6048
|
+
this.viewportRuler
|
|
6049
|
+
.change()
|
|
6050
|
+
.pipe(takeUntilDestroyed(this.instance.destroyRef))
|
|
6051
|
+
.subscribe(() => this.instance?.setStickPosition());
|
|
4836
6052
|
if (this.hideWithTimeout && this.trigger.includes(PopUpTriggers.Hover)) {
|
|
4837
6053
|
this.ngZone.runOutsideAngular(() => {
|
|
4838
6054
|
interval(this.leaveDelay, this.scheduler)
|
|
@@ -4841,6 +6057,8 @@ class KbqPopUpTrigger {
|
|
|
4841
6057
|
});
|
|
4842
6058
|
}
|
|
4843
6059
|
}
|
|
6060
|
+
/** Hides the pop-up after `delay` ms, honoring `preventClose` and the hover state on mouseleave.
|
|
6061
|
+
* @docs-private */
|
|
4844
6062
|
hide(delay = this.leaveDelay) {
|
|
4845
6063
|
if (this.preventClose)
|
|
4846
6064
|
return;
|
|
@@ -4849,7 +6067,8 @@ class KbqPopUpTrigger {
|
|
|
4849
6067
|
this.ngZone.run(() => this.instance?.hide(delay));
|
|
4850
6068
|
}
|
|
4851
6069
|
}
|
|
4852
|
-
/** Create the overlay config and position strategy
|
|
6070
|
+
/** Create the overlay config and position strategy
|
|
6071
|
+
* @docs-private */
|
|
4853
6072
|
createOverlay() {
|
|
4854
6073
|
if (this.overlayRef) {
|
|
4855
6074
|
return this.overlayRef;
|
|
@@ -4874,9 +6093,13 @@ class KbqPopUpTrigger {
|
|
|
4874
6093
|
this.overlayRef.detachments().pipe(takeUntilDestroyed(this.destroyRef)).subscribe(this.detach);
|
|
4875
6094
|
return this.overlayRef;
|
|
4876
6095
|
}
|
|
6096
|
+
/** Resets the overlay position origin back to the host element.
|
|
6097
|
+
* @docs-private */
|
|
4877
6098
|
resetOrigin() {
|
|
4878
6099
|
this.strategy.setOrigin(this.getNativeElement());
|
|
4879
6100
|
}
|
|
6101
|
+
/** Rebinds the host DOM listeners (click/hover/focus/keydown) according to the configured triggers.
|
|
6102
|
+
* @docs-private */
|
|
4880
6103
|
initListeners() {
|
|
4881
6104
|
this.clearListeners();
|
|
4882
6105
|
if (this.trigger.includes(PopUpTriggers.Click)) {
|
|
@@ -4901,13 +6124,16 @@ class KbqPopUpTrigger {
|
|
|
4901
6124
|
}
|
|
4902
6125
|
this.listeners.forEach(this.addEventListener);
|
|
4903
6126
|
}
|
|
6127
|
+
/** Returns the `mouseleave` handler — a delayed hide when `hideWithTimeout` is set, otherwise an immediate hide.
|
|
6128
|
+
* @docs-private */
|
|
4904
6129
|
getMouseLeaveListener() {
|
|
4905
6130
|
if (this.hideWithTimeout) {
|
|
4906
6131
|
return () => setTimeout(() => this.hide(), this.leaveDelay);
|
|
4907
6132
|
}
|
|
4908
6133
|
return this.hide;
|
|
4909
6134
|
}
|
|
4910
|
-
/** Updates the position of the current popover.
|
|
6135
|
+
/** Updates the position of the current popover.
|
|
6136
|
+
* @docs-private */
|
|
4911
6137
|
updatePosition(reapplyPosition = false) {
|
|
4912
6138
|
this.overlayRef = this.createOverlay();
|
|
4913
6139
|
this.subscribeOnClosingActions();
|
|
@@ -4918,21 +6144,24 @@ class KbqPopUpTrigger {
|
|
|
4918
6144
|
setTimeout(() => position.reapplyLastPosition());
|
|
4919
6145
|
}
|
|
4920
6146
|
}
|
|
6147
|
+
/** Moves browser focus to the pop-up's native element.
|
|
6148
|
+
* @docs-private */
|
|
4921
6149
|
focus() {
|
|
4922
6150
|
this.getNativeElement().focus();
|
|
4923
6151
|
}
|
|
4924
|
-
/**
|
|
6152
|
+
/** Returns the element the pop-up is bound to: the external element when set, otherwise the host element.
|
|
6153
|
+
* @docs-private */
|
|
4925
6154
|
getNativeElement() {
|
|
4926
6155
|
return this.externalNativeElement || this.elementRef.nativeElement;
|
|
4927
6156
|
}
|
|
4928
|
-
/**
|
|
6157
|
+
/** Sets an external element to anchor and measure the pop-up against instead of the host element.
|
|
6158
|
+
* @docs-private */
|
|
4929
6159
|
setExternalNativeElement(value) {
|
|
4930
6160
|
this.externalNativeElement = value;
|
|
4931
6161
|
}
|
|
4932
6162
|
/**
|
|
4933
6163
|
* Returns a list of positions that are aligned with the element's dimensions and offsets.
|
|
4934
|
-
* @
|
|
4935
|
-
*/
|
|
6164
|
+
* @docs-private */
|
|
4936
6165
|
getAdjustedPositions() {
|
|
4937
6166
|
const res = [];
|
|
4938
6167
|
for (const pos of this.getPrioritizedPositions()) {
|
|
@@ -4946,6 +6175,8 @@ class KbqPopUpTrigger {
|
|
|
4946
6175
|
}
|
|
4947
6176
|
return res;
|
|
4948
6177
|
}
|
|
6178
|
+
/** Maps a priority placement value (or array of values) to the matching connected position pairs.
|
|
6179
|
+
* @docs-private */
|
|
4949
6180
|
getPriorityPlacementStrategy(value) {
|
|
4950
6181
|
const result = [];
|
|
4951
6182
|
const possiblePositions = Object.keys(this.availablePositions);
|
|
@@ -4961,16 +6192,21 @@ class KbqPopUpTrigger {
|
|
|
4961
6192
|
}
|
|
4962
6193
|
return result;
|
|
4963
6194
|
}
|
|
6195
|
+
/** Returns the positions to try: the custom `placementPriority` when set, otherwise the default strategy.
|
|
6196
|
+
* @docs-private */
|
|
4964
6197
|
getPrioritizedPositions() {
|
|
4965
6198
|
if (this.placementPriority) {
|
|
4966
6199
|
return this.getPriorityPlacementStrategy(this.placementPriority);
|
|
4967
6200
|
}
|
|
4968
6201
|
return POSITION_PRIORITY_STRATEGY[this.placement];
|
|
4969
6202
|
}
|
|
6203
|
+
/** Removes all bound host event listeners and clears the listener map.
|
|
6204
|
+
* @docs-private */
|
|
4970
6205
|
clearListeners() {
|
|
4971
6206
|
this.listeners.forEach(this.removeEventListener);
|
|
4972
6207
|
this.listeners.clear();
|
|
4973
6208
|
}
|
|
6209
|
+
/** Wraps a trigger handler so it records the active trigger name and mouse event before running. */
|
|
4974
6210
|
createListener(name, listener) {
|
|
4975
6211
|
return [
|
|
4976
6212
|
name,
|
|
@@ -4981,11 +6217,13 @@ class KbqPopUpTrigger {
|
|
|
4981
6217
|
}
|
|
4982
6218
|
];
|
|
4983
6219
|
}
|
|
6220
|
+
/** Remembers the last mouse event on `mouseenter`, used for cursor-relative positioning. */
|
|
4984
6221
|
saveMouseEvent(event) {
|
|
4985
6222
|
if (this.triggerName === 'mouseenter') {
|
|
4986
6223
|
this.mouseEvent = event;
|
|
4987
6224
|
}
|
|
4988
6225
|
}
|
|
6226
|
+
/** (Re)subscribes to the closing-action streams and hides the pop-up, ignoring prevented click events. */
|
|
4989
6227
|
subscribeOnClosingActions() {
|
|
4990
6228
|
this.closingActionsSubscription?.unsubscribe();
|
|
4991
6229
|
this.closingActionsSubscription = this.closingActions()
|
|
@@ -4998,10 +6236,10 @@ class KbqPopUpTrigger {
|
|
|
4998
6236
|
this.hide();
|
|
4999
6237
|
});
|
|
5000
6238
|
}
|
|
5001
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5002
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
6239
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPopUpTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
6240
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: KbqPopUpTrigger, isStandalone: true, host: { listeners: { "mouseenter": "hovered.next(true)", "mouseleave": "hovered.next(false)" } }, ngImport: i0 }); }
|
|
5003
6241
|
}
|
|
5004
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6242
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqPopUpTrigger, decorators: [{
|
|
5005
6243
|
type: Directive,
|
|
5006
6244
|
args: [{
|
|
5007
6245
|
host: {
|
|
@@ -5035,10 +6273,10 @@ const KBQ_SELECT_SCROLL_STRATEGY_PROVIDER = {
|
|
|
5035
6273
|
};
|
|
5036
6274
|
|
|
5037
6275
|
class KbqSelectTrigger {
|
|
5038
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5039
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
6276
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqSelectTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
6277
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: KbqSelectTrigger, isStandalone: true, selector: "kbq-select-trigger, [kbq-select-trigger]", ngImport: i0 }); }
|
|
5040
6278
|
}
|
|
5041
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6279
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqSelectTrigger, decorators: [{
|
|
5042
6280
|
type: Directive,
|
|
5043
6281
|
args: [{
|
|
5044
6282
|
selector: 'kbq-select-trigger, [kbq-select-trigger]'
|
|
@@ -5046,39 +6284,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
|
|
|
5046
6284
|
}] });
|
|
5047
6285
|
class KbqSelectMatcher {
|
|
5048
6286
|
constructor() {
|
|
5049
|
-
this.useDefaultHandlers = true;
|
|
6287
|
+
this.useDefaultHandlers = input(true, ...(ngDevMode ? [{ debugName: "useDefaultHandlers", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
|
|
5050
6288
|
}
|
|
5051
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5052
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
6289
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqSelectMatcher, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
6290
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.25", type: KbqSelectMatcher, isStandalone: true, selector: "kbq-select-matcher, [kbq-select-matcher]", inputs: { useDefaultHandlers: { classPropertyName: "useDefaultHandlers", publicName: "useDefaultHandlers", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
|
|
5053
6291
|
}
|
|
5054
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6292
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqSelectMatcher, decorators: [{
|
|
5055
6293
|
type: Directive,
|
|
5056
6294
|
args: [{
|
|
5057
6295
|
selector: 'kbq-select-matcher, [kbq-select-matcher]'
|
|
5058
6296
|
}]
|
|
5059
|
-
}], propDecorators: { useDefaultHandlers: [{
|
|
5060
|
-
type: Input,
|
|
5061
|
-
args: [{ transform: booleanAttribute }]
|
|
5062
|
-
}] } });
|
|
6297
|
+
}], propDecorators: { useDefaultHandlers: [{ type: i0.Input, args: [{ isSignal: true, alias: "useDefaultHandlers", required: false }] }] } });
|
|
5063
6298
|
class KbqSelectSearchEmptyResult {
|
|
5064
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5065
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
6299
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqSelectSearchEmptyResult, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
6300
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: KbqSelectSearchEmptyResult, isStandalone: true, selector: "[kbq-select-search-empty-result]", host: { classAttribute: "kbq-select-search-empty-result kbq-select__no-options-message" }, exportAs: ["kbqSelectSearchEmptyResult"], ngImport: i0 }); }
|
|
5066
6301
|
}
|
|
5067
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6302
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqSelectSearchEmptyResult, decorators: [{
|
|
5068
6303
|
type: Directive,
|
|
5069
6304
|
args: [{
|
|
5070
6305
|
selector: '[kbq-select-search-empty-result]',
|
|
5071
|
-
exportAs: 'kbqSelectSearchEmptyResult',
|
|
5072
6306
|
host: {
|
|
5073
6307
|
class: 'kbq-select-search-empty-result kbq-select__no-options-message'
|
|
5074
|
-
}
|
|
6308
|
+
},
|
|
6309
|
+
exportAs: 'kbqSelectSearchEmptyResult'
|
|
5075
6310
|
}]
|
|
5076
6311
|
}] });
|
|
5077
6312
|
class KbqSelectFooter {
|
|
5078
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5079
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
6313
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqSelectFooter, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
6314
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: KbqSelectFooter, isStandalone: true, selector: "kbq-select-footer, [kbq-select-footer]", host: { classAttribute: "kbq-select__footer" }, ngImport: i0 }); }
|
|
5080
6315
|
}
|
|
5081
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6316
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqSelectFooter, decorators: [{
|
|
5082
6317
|
type: Directive,
|
|
5083
6318
|
args: [{
|
|
5084
6319
|
selector: 'kbq-select-footer, [kbq-select-footer]',
|
|
@@ -5087,10 +6322,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
|
|
|
5087
6322
|
}] });
|
|
5088
6323
|
class KbqSelectSearch {
|
|
5089
6324
|
get ngControl() {
|
|
5090
|
-
return this.formField.control.ngControl;
|
|
6325
|
+
return this.formField.control().ngControl;
|
|
5091
6326
|
}
|
|
5092
|
-
constructor(
|
|
5093
|
-
this.formField =
|
|
6327
|
+
constructor() {
|
|
6328
|
+
this.formField = inject(KBQ_FORM_FIELD_REF, { optional: true });
|
|
5094
6329
|
this.changes = new EventEmitter();
|
|
5095
6330
|
this.isSearchChanged = false;
|
|
5096
6331
|
this.searchChangesSubscription = new Subscription();
|
|
@@ -5098,22 +6333,22 @@ class KbqSelectSearch {
|
|
|
5098
6333
|
this.formField.inOverlay.set(true);
|
|
5099
6334
|
}
|
|
5100
6335
|
setPlaceholder(value) {
|
|
5101
|
-
this.formField.control.placeholder = value;
|
|
6336
|
+
this.formField.control().placeholder = value;
|
|
5102
6337
|
}
|
|
5103
6338
|
hasPlaceholder() {
|
|
5104
6339
|
return !!this.formField?.control.placeholder;
|
|
5105
6340
|
}
|
|
5106
6341
|
focus() {
|
|
5107
|
-
this.formField.
|
|
6342
|
+
this.formField.focus();
|
|
5108
6343
|
}
|
|
5109
6344
|
reset() {
|
|
5110
6345
|
this.ngControl?.reset();
|
|
5111
6346
|
}
|
|
5112
6347
|
value() {
|
|
5113
|
-
return this.formField.control.value;
|
|
6348
|
+
return this.formField.control().value;
|
|
5114
6349
|
}
|
|
5115
6350
|
ngAfterContentInit() {
|
|
5116
|
-
if (this.formField.control.controlType !== 'input') {
|
|
6351
|
+
if (this.formField.control().controlType !== 'input') {
|
|
5117
6352
|
throw Error('KbqSelectSearch does not work without kbqInput');
|
|
5118
6353
|
}
|
|
5119
6354
|
if (!this.ngControl) {
|
|
@@ -5140,24 +6375,19 @@ class KbqSelectSearch {
|
|
|
5140
6375
|
event.stopPropagation();
|
|
5141
6376
|
}
|
|
5142
6377
|
}
|
|
5143
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5144
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
6378
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqSelectSearch, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
6379
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: KbqSelectSearch, isStandalone: true, selector: "[kbqSelectSearch]", host: { listeners: { "keydown": "handleKeydown($event)" } }, exportAs: ["kbqSelectSearch"], ngImport: i0 }); }
|
|
5145
6380
|
}
|
|
5146
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6381
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqSelectSearch, decorators: [{
|
|
5147
6382
|
type: Directive,
|
|
5148
6383
|
args: [{
|
|
5149
6384
|
selector: '[kbqSelectSearch]',
|
|
5150
|
-
exportAs: 'kbqSelectSearch',
|
|
5151
6385
|
host: {
|
|
5152
6386
|
'(keydown)': 'handleKeydown($event)'
|
|
5153
|
-
}
|
|
6387
|
+
},
|
|
6388
|
+
exportAs: 'kbqSelectSearch'
|
|
5154
6389
|
}]
|
|
5155
|
-
}], ctorParameters: () => [
|
|
5156
|
-
type: Optional
|
|
5157
|
-
}, {
|
|
5158
|
-
type: Inject,
|
|
5159
|
-
args: [KBQ_FORM_FIELD_REF]
|
|
5160
|
-
}] }] });
|
|
6390
|
+
}], ctorParameters: () => [] });
|
|
5161
6391
|
/**
|
|
5162
6392
|
* Abstract class representing a customizable select component with an overlay.
|
|
5163
6393
|
*
|
|
@@ -5223,10 +6453,10 @@ class KbqAbstractSelect {
|
|
|
5223
6453
|
resolveSearchMinOptionsThreshold(value) {
|
|
5224
6454
|
return value === 'auto' ? KBQ_SELECT_SEARCH_MIN_OPTIONS_THRESHOLD : value;
|
|
5225
6455
|
}
|
|
5226
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5227
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
6456
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqAbstractSelect, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
6457
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: KbqAbstractSelect, isStandalone: true, ngImport: i0 }); }
|
|
5228
6458
|
}
|
|
5229
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6459
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqAbstractSelect, decorators: [{
|
|
5230
6460
|
type: Directive
|
|
5231
6461
|
}] });
|
|
5232
6462
|
|
|
@@ -5268,6 +6498,7 @@ class KbqMeasureScrollbarService {
|
|
|
5268
6498
|
}
|
|
5269
6499
|
constructor() {
|
|
5270
6500
|
this.document = inject(DOCUMENT);
|
|
6501
|
+
this.platform = inject(Platform);
|
|
5271
6502
|
this.scrollbarMeasure = {
|
|
5272
6503
|
position: 'absolute',
|
|
5273
6504
|
top: '-9999px',
|
|
@@ -5278,6 +6509,10 @@ class KbqMeasureScrollbarService {
|
|
|
5278
6509
|
this.initScrollBarWidth();
|
|
5279
6510
|
}
|
|
5280
6511
|
initScrollBarWidth() {
|
|
6512
|
+
if (!this.platform.isBrowser) {
|
|
6513
|
+
this._scrollBarWidth = 0;
|
|
6514
|
+
return;
|
|
6515
|
+
}
|
|
5281
6516
|
const scrollDiv = this.document.createElement('div');
|
|
5282
6517
|
for (const scrollProp in this.scrollbarMeasure) {
|
|
5283
6518
|
if (this.scrollbarMeasure.hasOwnProperty(scrollProp)) {
|
|
@@ -5289,10 +6524,10 @@ class KbqMeasureScrollbarService {
|
|
|
5289
6524
|
this.document.body.removeChild(scrollDiv);
|
|
5290
6525
|
this._scrollBarWidth = width;
|
|
5291
6526
|
}
|
|
5292
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5293
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
6527
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqMeasureScrollbarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
6528
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqMeasureScrollbarService, providedIn: 'root' }); }
|
|
5294
6529
|
}
|
|
5295
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6530
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqMeasureScrollbarService, decorators: [{
|
|
5296
6531
|
type: Injectable,
|
|
5297
6532
|
args: [{ providedIn: 'root' }]
|
|
5298
6533
|
}], ctorParameters: () => [] });
|
|
@@ -5365,45 +6600,155 @@ class ThemeService {
|
|
|
5365
6600
|
getTheme() {
|
|
5366
6601
|
return this.current.value;
|
|
5367
6602
|
}
|
|
5368
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
5369
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
6603
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
6604
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ThemeService, providedIn: 'root' }); }
|
|
5370
6605
|
}
|
|
5371
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6606
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ThemeService, decorators: [{
|
|
5372
6607
|
type: Injectable,
|
|
5373
6608
|
args: [{ providedIn: 'root' }]
|
|
5374
6609
|
}], ctorParameters: () => [] });
|
|
5375
6610
|
|
|
6611
|
+
/* eslint-disable no-restricted-globals -- testing utilities legitimately use raw `document`/`window` */
|
|
6612
|
+
/** Creates a browser MouseEvent with the specified options. */
|
|
6613
|
+
function createMouseEvent(type, x = 0, y = 0, button = 0) {
|
|
6614
|
+
const event = document.createEvent('MouseEvent');
|
|
6615
|
+
event.initMouseEvent(type, false, false, window /* view */, 0, x /* screenX */, y /* screenY */, x /* clientX */, y /* clientY */, false, false, false, false, button /* button */, null);
|
|
6616
|
+
return event;
|
|
6617
|
+
}
|
|
6618
|
+
/** Creates a browser TouchEvent with the specified pointer coordinates. */
|
|
6619
|
+
function createTouchEvent(type, pageX = 0, pageY = 0) {
|
|
6620
|
+
// In favor of creating events that work for most of the browsers, the event is created
|
|
6621
|
+
// as a basic UI Event. The necessary details for the event will be set manually.
|
|
6622
|
+
const event = document.createEvent('UIEvent');
|
|
6623
|
+
const touchDetails = { pageX, pageY };
|
|
6624
|
+
event.initUIEvent(type, true, true, window, 0);
|
|
6625
|
+
// Most of the browsers don't have a "initTouchEvent" method that can be used to define
|
|
6626
|
+
// the touch details.
|
|
6627
|
+
Object.defineProperties(event, {
|
|
6628
|
+
touches: { value: [touchDetails] }
|
|
6629
|
+
});
|
|
6630
|
+
return event;
|
|
6631
|
+
}
|
|
6632
|
+
/** Dispatches a keydown event from an element. */
|
|
6633
|
+
function createKeyboardEvent(type, keyCode, target, key) {
|
|
6634
|
+
const event = document.createEvent('KeyboardEvent');
|
|
6635
|
+
// Firefox does not support `initKeyboardEvent`, but supports `initKeyEvent`.
|
|
6636
|
+
if (event.initKeyEvent) {
|
|
6637
|
+
event.initKeyEvent(type, true, true, window, 0, 0, 0, 0, 0, keyCode);
|
|
6638
|
+
}
|
|
6639
|
+
else {
|
|
6640
|
+
event.initKeyboardEvent(type, true, true, window, 0, key, 0, '', false);
|
|
6641
|
+
}
|
|
6642
|
+
// Webkit Browsers don't set the keyCode when calling the init function.
|
|
6643
|
+
// See related bug https://bugs.webkit.org/show_bug.cgi?id=16735
|
|
6644
|
+
Object.defineProperties(event, {
|
|
6645
|
+
keyCode: { get: () => keyCode },
|
|
6646
|
+
key: { get: () => key }
|
|
6647
|
+
});
|
|
6648
|
+
// Only override `target` when explicitly provided; otherwise let jsdom set it during dispatch.
|
|
6649
|
+
if (target !== undefined) {
|
|
6650
|
+
Object.defineProperty(event, 'target', { get: () => target });
|
|
6651
|
+
}
|
|
6652
|
+
return event;
|
|
6653
|
+
}
|
|
6654
|
+
/** Creates a fake event object with any desired event type. */
|
|
6655
|
+
function createFakeEvent(type, canBubble = false, cancelable = true) {
|
|
6656
|
+
const event = document.createEvent('Event');
|
|
6657
|
+
event.initEvent(type, canBubble, cancelable);
|
|
6658
|
+
return event;
|
|
6659
|
+
}
|
|
6660
|
+
|
|
6661
|
+
/** Utility to dispatch any event on a Node. */
|
|
6662
|
+
function dispatchEvent(node, event) {
|
|
6663
|
+
node.dispatchEvent(event);
|
|
6664
|
+
return event;
|
|
6665
|
+
}
|
|
6666
|
+
/** Shorthand to dispatch a fake event on a specified node. */
|
|
6667
|
+
function dispatchFakeEvent(node, type, canBubble) {
|
|
6668
|
+
return dispatchEvent(node, createFakeEvent(type, canBubble));
|
|
6669
|
+
}
|
|
6670
|
+
/** Shorthand to dispatch a keyboard event with a specified key code. */
|
|
6671
|
+
function dispatchKeyboardEvent(node, type, keyCode, target) {
|
|
6672
|
+
return dispatchEvent(node, createKeyboardEvent(type, keyCode, target));
|
|
6673
|
+
}
|
|
6674
|
+
/** Shorthand to dispatch a mouse event on the specified coordinates. */
|
|
6675
|
+
function dispatchMouseEvent(node, type, x = 0, y = 0, event = createMouseEvent(type, x, y)) {
|
|
6676
|
+
return dispatchEvent(node, event);
|
|
6677
|
+
}
|
|
6678
|
+
/** Shorthand to dispatch a touch event on the specified coordinates. */
|
|
6679
|
+
function dispatchTouchEvent(node, type, x = 0, y = 0) {
|
|
6680
|
+
return dispatchEvent(node, createTouchEvent(type, x, y));
|
|
6681
|
+
}
|
|
6682
|
+
|
|
5376
6683
|
/**
|
|
5377
|
-
*
|
|
6684
|
+
* Patches an elements focus and blur methods to emit events consistently and predictably.
|
|
6685
|
+
* This is necessary, because some browsers, like IE11, will call the focus handlers asynchronously,
|
|
6686
|
+
* while others won't fire them at all if the browser window is not focused.
|
|
5378
6687
|
*/
|
|
5379
|
-
|
|
6688
|
+
function patchElementFocus(element) {
|
|
6689
|
+
element.focus = () => dispatchFakeEvent(element, 'focus');
|
|
6690
|
+
element.blur = () => dispatchFakeEvent(element, 'blur');
|
|
6691
|
+
}
|
|
6692
|
+
|
|
5380
6693
|
/**
|
|
6694
|
+
* Mock synchronous NgZone implementation that can be used
|
|
6695
|
+
* to flush out `onStable` subscriptions in tests.
|
|
6696
|
+
*
|
|
6697
|
+
* via: https://github.com/angular/angular/blob/master/packages/core/testing/src/ng_zone_mock.ts
|
|
5381
6698
|
* @docs-private
|
|
5382
6699
|
*/
|
|
5383
|
-
|
|
6700
|
+
class MockNgZone extends NgZone {
|
|
6701
|
+
constructor() {
|
|
6702
|
+
super({ enableLongStackTrace: false });
|
|
6703
|
+
this.onStable = new EventEmitter(false);
|
|
6704
|
+
}
|
|
6705
|
+
run(fn) {
|
|
6706
|
+
return fn();
|
|
6707
|
+
}
|
|
6708
|
+
runOutsideAngular(fn) {
|
|
6709
|
+
return fn();
|
|
6710
|
+
}
|
|
6711
|
+
simulateZoneExit() {
|
|
6712
|
+
this.onStable.emit(null);
|
|
6713
|
+
}
|
|
6714
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: MockNgZone, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
6715
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: MockNgZone }); }
|
|
6716
|
+
}
|
|
6717
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: MockNgZone, decorators: [{
|
|
6718
|
+
type: Injectable
|
|
6719
|
+
}], ctorParameters: () => [] });
|
|
6720
|
+
|
|
6721
|
+
/**
|
|
6722
|
+
* Focuses an input, sets its value and dispatches
|
|
6723
|
+
* the `input` event, simulating the user typing.
|
|
6724
|
+
* @param value Value to be set on the input.
|
|
6725
|
+
* @param element Element onto which to set the value.
|
|
6726
|
+
*/
|
|
6727
|
+
function typeInElement(value, element) {
|
|
6728
|
+
element.focus();
|
|
6729
|
+
element.value = value;
|
|
6730
|
+
dispatchFakeEvent(element, 'input');
|
|
6731
|
+
}
|
|
6732
|
+
|
|
6733
|
+
function wrappedErrorMessage(e) {
|
|
6734
|
+
const escapedMessage = e.message.replace(/[|\\{}()[\]^$+*?.]/g, '\\$&');
|
|
6735
|
+
return new RegExp(escapedMessage);
|
|
6736
|
+
}
|
|
6737
|
+
|
|
5384
6738
|
/**
|
|
5385
|
-
* @deprecated Will be removed in next major release.
|
|
5386
|
-
*
|
|
5387
6739
|
* @docs-private
|
|
5388
6740
|
*/
|
|
5389
|
-
const
|
|
5390
|
-
factory: () => ({ useValidation: true })
|
|
5391
|
-
});
|
|
6741
|
+
const validationTooltipShowDelay = 10;
|
|
5392
6742
|
/**
|
|
5393
|
-
*
|
|
5394
|
-
*
|
|
5395
|
-
* Will be removed in next major release, so legacy validation will be disabled by default.
|
|
6743
|
+
* @docs-private
|
|
5396
6744
|
*/
|
|
5397
|
-
const
|
|
5398
|
-
provide: KBQ_VALIDATION,
|
|
5399
|
-
useValue: { useValidation: false }
|
|
5400
|
-
});
|
|
6745
|
+
const validationTooltipHideDelay = 3000;
|
|
5401
6746
|
|
|
5402
|
-
const VERSION = new Version('
|
|
6747
|
+
const VERSION = new Version('20.1.0+sha-ba927bf');
|
|
5403
6748
|
|
|
5404
6749
|
/**
|
|
5405
6750
|
* Generated bundle index. Do not edit.
|
|
5406
6751
|
*/
|
|
5407
6752
|
|
|
5408
|
-
export { ARROW_BOTTOM_MARGIN_AND_HALF_HEIGHT, AbsoluteDateFormatterImpurePipe, AbsoluteDateFormatterPipe, AbsoluteDateShortFormatterImpurePipe, AbsoluteDateShortFormatterPipe, AbsoluteDateTimeFormatterImpurePipe, AbsoluteDateTimeFormatterPipe, AbsoluteShortDateTimeFormatterImpurePipe, AbsoluteShortDateTimeFormatterPipe,
|
|
6753
|
+
export { A, ALT, APOSTROPHE, ARROW_BOTTOM_MARGIN_AND_HALF_HEIGHT, AT_SIGN, AbsoluteDateFormatterImpurePipe, AbsoluteDateFormatterPipe, AbsoluteDateShortFormatterImpurePipe, AbsoluteDateShortFormatterPipe, AbsoluteDateTimeFormatterImpurePipe, AbsoluteDateTimeFormatterPipe, AbsoluteShortDateTimeFormatterImpurePipe, AbsoluteShortDateTimeFormatterPipe, ActiveDescendantKeyManager, B, BACKSLASH, BACKSPACE, BOTTOM_LEFT_POSITION_PRIORITY, BOTTOM_POSITION_PRIORITY, BOTTOM_RIGHT_POSITION_PRIORITY, BaseFormatterPipe, BaseLocaleAwareFormatterPipe, C, CAPS_LOCK, CLOSE_SQUARE_BRACKET, COMMA, CONTEXT_MENU, CONTROL, D, DASH, DELETE, DOWN_ARROW, DateAdapter, DateFormatter, E, EIGHT, END, ENTER, EQUALS, ESCAPE, EXTENDED_OVERLAY_POSITIONS, EmptyFocusTrapStrategy, ErrorStateMatcher, F, F1, F10, F11, F12, F2, F3, F4, F5, F6, F7, F8, F9, FF_EQUALS, FF_MINUS, FF_MUTE, FF_SEMICOLON, FF_VOLUME_DOWN, FF_VOLUME_UP, FIRST_MEDIA, FIVE, FOUR, FileValidators, FocusKeyManager, G, H, HOME, I, INSERT, J, K, KBQ_CUSTOM_SCROLL_STRATEGY_PROVIDER, KBQ_DATE_FORMATS, KBQ_DATE_LOCALE, KBQ_DATE_LOCALE_FACTORY, KBQ_DEFAULT_LOCALE_DATA_FACTORY, KBQ_DEFAULT_LOCALE_ID, KBQ_DEFAULT_PRECISION_SEPARATOR, KBQ_FORM_FIELD_REF, KBQ_INVALID_VALUE_ERROR, KBQ_LOCALE_DATA, KBQ_LOCALE_ID, KBQ_LOCALE_SERVICE, KBQ_LOCALE_SERVICE_LANG_ATTR_NAME, KBQ_NUMBER_FORMATTER_DEFAULT_OPTIONS, KBQ_NUMBER_FORMATTER_OPTIONS, KBQ_OPTION_ACTION_PARENT, KBQ_OPTION_PARENT_COMPONENT, KBQ_OVERFLOW_SHADOW_SOURCE, KBQ_PARENT_ANIMATION_COMPONENT, KBQ_PARENT_POPUP, KBQ_SELECT_SCROLL_STRATEGY, KBQ_SELECT_SCROLL_STRATEGY_PROVIDER, KBQ_SELECT_SEARCH_MIN_OPTIONS_THRESHOLD, KBQ_SHADOW_DOM_OVERLAY_HOST, KBQ_SIZE_UNITS_CONFIG, KBQ_SIZE_UNITS_DEFAULT_CONFIG, KBQ_TITLE_TEXT_REF, KBQ_WINDOW, KbqAbsoluteLongDatePipe, KbqAbsoluteLongDateTimePipe, KbqAbsoluteShortDatePipe, KbqAbsoluteShortDateTimePipe, KbqAbstractSelect, KbqActionContainer, KbqAnimationCurves, KbqAnimationDurations, KbqColorDirective, KbqComponentColors, KbqDataSizePipe, KbqDecimalPipe, KbqDefaultThemes, KbqErrorStateTracker, KbqFieldSizingContent, KbqForm, KbqFormElement, KbqFormattersModule, KbqFormsModule, KbqHighlightBackgroundPipe, KbqHighlightModule, KbqHighlightPipe, KbqHover, KbqLine, KbqLineSetter, KbqLocaleService, KbqLocaleServiceModule, KbqMeasureScrollbarService, KbqMeasurementSystem, KbqNormalizeWhitespace, KbqOptgroup, KbqOption, KbqOptionActionComponent, KbqOptionBase, KbqOptionModule, KbqOptionSelectionChange, KbqOverflowShadowBottom, KbqOverflowShadowContainer, KbqOverflowShadowTop, KbqPopUp, KbqPopUpTrigger, KbqPseudoCheckbox, KbqPseudoCheckboxModule, KbqRangeLongDatePipe, KbqRangeLongDateTimePipe, KbqRangeMiddleDateTimePipe, KbqRangeShortDatePipe, KbqRangeShortDateTimePipe, KbqReadStateDirective, KbqRectangleItem, KbqRelativeLongDatePipe, KbqRelativeLongDateTimePipe, KbqRelativeShortDatePipe, KbqRelativeShortDateTimePipe, KbqRoundDecimalPipe, KbqSelectAllEvent, KbqSelectFooter, KbqSelectMatcher, KbqSelectSearch, KbqSelectSearchEmptyResult, KbqSelectTrigger, KbqShadowDomOverlayContainer, KbqTableNumberPipe, KbqThemeSelector, KbqVirtualOption, L, LAST_MEDIA, LEFT_ARROW, LEFT_BOTTOM_POSITION_PRIORITY, LEFT_POSITION_PRIORITY, LEFT_TOP_POSITION_PRIORITY, ListKeyManager, M, MAC_ENTER, MAC_META, MAC_WK_CMD_LEFT, MAC_WK_CMD_RIGHT, META, MUTE, MockNgZone, MultipleMode, N, NINE, NUMBER_FORMAT_REGEXP, NUMPAD_DIVIDE, NUMPAD_EIGHT, NUMPAD_FIVE, NUMPAD_FOUR, NUMPAD_MINUS, NUMPAD_MULTIPLY, NUMPAD_NINE, NUMPAD_ONE, NUMPAD_PERIOD, NUMPAD_PLUS, NUMPAD_SEVEN, NUMPAD_SIX, NUMPAD_THREE, NUMPAD_TWO, NUMPAD_ZERO, NUM_CENTER, NUM_LOCK, O, ONE, OPEN_SQUARE_BRACKET, P, PAGE_DOWN, PAGE_UP, PAUSE, PERIOD, PLUS_SIGN, POSITION_MAP, POSITION_PRIORITY_STRATEGY, POSITION_TO_CSS_MAP, PRINT_SCREEN, PasswordValidators, PopUpPlacements, PopUpSizes, PopUpTriggers, PopUpVisibility, Q, QUESTION_MARK, R, RIGHT_ARROW, RIGHT_BOTTOM_POSITION_PRIORITY, RIGHT_POSITION_PRIORITY, RIGHT_TOP_POSITION_PRIORITY, RangeDateFormatterImpurePipe, RangeDateFormatterPipe, RangeDateTimeFormatterImpurePipe, RangeDateTimeFormatterPipe, RangeMiddleDateTimeFormatterImpurePipe, RangeMiddleDateTimeFormatterPipe, RangeShortDateFormatterImpurePipe, RangeShortDateFormatterPipe, RangeShortDateTimeFormatterImpurePipe, RangeShortDateTimeFormatterPipe, RelativeDateFormatterImpurePipe, RelativeDateFormatterPipe, RelativeDateTimeFormatterImpurePipe, RelativeDateTimeFormatterPipe, RelativeShortDateFormatterImpurePipe, RelativeShortDateFormatterPipe, RelativeShortDateTimeFormatterImpurePipe, RelativeShortDateTimeFormatterPipe, S, SCROLL_LOCK, SELECT_PANEL_VIEWPORT_PADDING, SEMICOLON, SEVEN, SHIFT, SINGLE_QUOTE, SIX, SLASH, SPACE, ShowOnControlDirtyErrorStateMatcher, ShowOnFormSubmitErrorStateMatcher, ShowRequiredOnSubmitErrorStateMatcher, T, TAB, THREE, TILDE, TOP_LEFT_POSITION_PRIORITY, TOP_POSITION_PRIORITY, TOP_RIGHT_POSITION_PRIORITY, TWO, ThemePalette, ThemeService, U, UP_ARROW, V, VERSION, VOLUME_DOWN, VOLUME_UP, W, X, Y, Z, ZERO, applyPopupMargins, checkAndNormalizeLocalizedNumber, countGroupLabelsBeforeOption, createFakeEvent, createKeyboardEvent, createMouseEvent, createTouchEvent, defaultOffsetY, dispatchEvent, dispatchFakeEvent, dispatchKeyboardEvent, dispatchMouseEvent, dispatchTouchEvent, enUSFormattersData, enUSLocaleData, esLAFormattersData, esLALocaleData, escapeRegExp, fadeAnimation, formatNumberWithLocale, getFormattedSizeParts, getHumanizedBytes, getKbqSelectDynamicMultipleError, getKbqSelectNonArrayValueError, getKbqSelectNonFunctionValueError, getNodesWithoutComments, getOptionScrollPosition, hasModifierKey, isBoolean, isControl, isCopy, isDigit, isElement, isFunctionKey, isHorizontalMovement, isHtmlElement, isHtmlElementOrNull, isInput, isLeftBracket, isLetterKey, isMac, isNull, isNumberKey, isNumpadKey, isRightBracket, isSelectAll, isUndefined, isVerticalMovement, isWithin, kbqErrorStateMatcherProvider, kbqFilesizeFormatterConfigurationProvider, kbqHighlightBackgroundMark, kbqHighlightMark, kbqInjectNativeElement, kbqLocaleServiceLangAttrNameProvider, kbqSelectAnimations, kbqSelectScrollStrategyProviderFactory, kbqShadowDomOverlayProvider, leftIconClassName, mixinColor, mixinDisabled, mixinErrorState, mixinTabIndex, normalizeNumber, numberByParts, patchElementFocus, ptBRFormattersData, ptBRLocaleData, rightIconClassName, ruRUFormattersData, ruRULocaleData, selectEvents, shouldSelectSearchText, tkTMFormattersData, tkTMLocaleData, toggleSelectAll, typeInElement, validationTooltipHideDelay, validationTooltipShowDelay, wrappedErrorMessage };
|
|
5409
6754
|
//# sourceMappingURL=koobiq-components-core.mjs.map
|