@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,37 +1,32 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { ChangeDetectionStrategy, Component, input, booleanAttribute, Directive, inject, InjectionToken,
|
|
2
|
+
import { ChangeDetectionStrategy, Component, input, booleanAttribute, Directive, inject, InjectionToken, ChangeDetectorRef, NgZone, Renderer2, ElementRef, DestroyRef, viewChild, contentChild, TemplateRef, contentChildren, EventEmitter, output, numberAttribute, afterNextRender, isDevMode, Input, Output, ContentChildren, ViewChildren, ViewChild, ViewEncapsulation, NgModule } from '@angular/core';
|
|
3
3
|
import * as i1 from '@koobiq/components/progress-spinner';
|
|
4
4
|
import { KbqProgressSpinnerModule } from '@koobiq/components/progress-spinner';
|
|
5
5
|
import { ContentObserver } from '@angular/cdk/observers';
|
|
6
6
|
import { SharedResizeObserver } from '@angular/cdk/observers/private';
|
|
7
|
-
import
|
|
8
|
-
import { KbqOption, KbqAbstractSelect, getKbqSelectDynamicMultipleError, getKbqSelectNonFunctionValueError, KbqComponentColors,
|
|
7
|
+
import { Platform } from '@angular/cdk/platform';
|
|
8
|
+
import { KbqOption, KbqAbstractSelect, getKbqSelectDynamicMultipleError, getKbqSelectNonFunctionValueError, KbqComponentColors, ErrorStateMatcher, KBQ_SELECT_SCROLL_STRATEGY, KBQ_LOCALE_SERVICE, KBQ_WINDOW, defaultOffsetY, KbqSelectFooter, KbqSelectTrigger, KbqSelectMatcher, KbqOptgroup, KbqSelectSearch, KbqSelectSearchEmptyResult, isUndefined, DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW, ENTER, SPACE, ESCAPE, TAB, HOME, END, PAGE_UP, PAGE_DOWN, isSelectAll, BACKSPACE, DELETE, getKbqSelectNonArrayValueError, KbqVirtualOption, ActiveDescendantKeyManager, isInput, shouldSelectSearchText, toggleSelectAll, KbqSelectAllEvent, kbqSelectAnimations, KBQ_OPTION_PARENT_COMPONENT, KBQ_PARENT_POPUP, KbqOptionModule, KBQ_SELECT_SCROLL_STRATEGY_PROVIDER } from '@koobiq/components/core';
|
|
9
9
|
import { KbqTooltipTrigger, KbqToolTipModule } from '@koobiq/components/tooltip';
|
|
10
10
|
import { Subscription, throttleTime, Subject, defer, merge, EMPTY, BehaviorSubject, fromEvent } from 'rxjs';
|
|
11
11
|
import { debounceTime, switchMap, startWith, take, filter, map, delay, distinctUntilChanged, auditTime, takeUntil } from 'rxjs/operators';
|
|
12
12
|
import { CdkMonitorFocus, A11yModule } from '@angular/cdk/a11y';
|
|
13
|
-
import
|
|
13
|
+
import { Directionality } from '@angular/cdk/bidi';
|
|
14
14
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
15
15
|
import { SelectionModel } from '@angular/cdk/collections';
|
|
16
|
-
import
|
|
17
|
-
import { CdkOverlayOrigin, CdkConnectedOverlay, OverlayModule } from '@angular/cdk/overlay';
|
|
18
|
-
import { Platform } from '@angular/cdk/platform';
|
|
16
|
+
import { OverlayContainer, CdkOverlayOrigin, CdkConnectedOverlay, OverlayModule } from '@angular/cdk/overlay';
|
|
19
17
|
import { CdkVirtualForOf, CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
|
|
20
|
-
import { NgTemplateOutlet
|
|
18
|
+
import { NgTemplateOutlet } from '@angular/common';
|
|
21
19
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
22
|
-
import
|
|
23
|
-
import {
|
|
24
|
-
import
|
|
25
|
-
import * as i5 from '@koobiq/components/form-field';
|
|
26
|
-
import { KbqFormFieldControl, KbqFormFieldModule } from '@koobiq/components/form-field';
|
|
27
|
-
import * as i6 from '@koobiq/components/icon';
|
|
20
|
+
import { NgForm, FormGroupDirective, NgControl } from '@angular/forms';
|
|
21
|
+
import { KbqFormField, KbqFormFieldControl, KbqFormFieldModule } from '@koobiq/components/form-field';
|
|
22
|
+
import * as i1$1 from '@koobiq/components/icon';
|
|
28
23
|
import { KbqIconModule } from '@koobiq/components/icon';
|
|
29
24
|
import { KbqTag, KbqTagsModule } from '@koobiq/components/tags';
|
|
30
25
|
import { SizeXxs } from '@koobiq/design-tokens';
|
|
31
26
|
|
|
32
27
|
class KbqSelectLoading {
|
|
33
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
34
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
28
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqSelectLoading, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
29
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: KbqSelectLoading, isStandalone: true, selector: "kbq-select-loading, [kbq-select-loading]", host: { classAttribute: "kbq-select-loading" }, exportAs: ["kbqSelectLoading"], ngImport: i0, template: `
|
|
35
30
|
<ng-content select="kbq-progress-spinner">
|
|
36
31
|
<div class="layout-row layout-margin-top-4xl layout-margin-bottom-4xl layout-align-center-center">
|
|
37
32
|
<kbq-progress-spinner [mode]="'indeterminate'" />
|
|
@@ -39,7 +34,7 @@ class KbqSelectLoading {
|
|
|
39
34
|
</ng-content>
|
|
40
35
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: KbqProgressSpinnerModule }, { kind: "component", type: i1.KbqProgressSpinner, selector: "kbq-progress-spinner", inputs: ["id", "value", "mode", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
41
36
|
}
|
|
42
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqSelectLoading, decorators: [{
|
|
43
38
|
type: Component,
|
|
44
39
|
args: [{
|
|
45
40
|
selector: 'kbq-select-loading, [kbq-select-loading]',
|
|
@@ -54,10 +49,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
|
|
|
54
49
|
</ng-content>
|
|
55
50
|
`,
|
|
56
51
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
57
|
-
exportAs: 'kbqSelectLoading',
|
|
58
52
|
host: {
|
|
59
53
|
class: 'kbq-select-loading'
|
|
60
|
-
}
|
|
54
|
+
},
|
|
55
|
+
exportAs: 'kbqSelectLoading'
|
|
61
56
|
}]
|
|
62
57
|
}] });
|
|
63
58
|
/**
|
|
@@ -68,56 +63,56 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
|
|
|
68
63
|
class KbqSelectError {
|
|
69
64
|
constructor() {
|
|
70
65
|
/** Indicates whether styles for pagination controls should be used. */
|
|
71
|
-
this.paging = input(false, { transform: booleanAttribute });
|
|
66
|
+
this.paging = input(false, ...(ngDevMode ? [{ debugName: "paging", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
|
|
72
67
|
}
|
|
73
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
74
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "
|
|
68
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqSelectError, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
69
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.25", type: KbqSelectError, isStandalone: true, selector: "kbq-select-error, [kbq-select-error]", inputs: { paging: { classPropertyName: "paging", publicName: "paging", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.kbq-select-error_default": "!paging()", "class.kbq-select-error_paging": "paging()" }, classAttribute: "kbq-select-error" }, exportAs: ["kbqSelectError"], ngImport: i0, template: `
|
|
75
70
|
<ng-content />
|
|
76
71
|
`, isInline: true, styles: [":host{display:flex;flex-direction:column}:host.kbq-select-error_default{align-items:center;justify-content:center;margin-bottom:var(--kbq-size-3xl);margin-top:var(--kbq-size-3xl)}:host.kbq-select-error_paging{justify-content:start}:host.kbq-select-error_paging ::ng-deep .kbq-select-error__text{padding-left:var(--kbq-size-l)}::ng-deep .kbq-select-error__text{margin-top:var(--kbq-size-xs);margin-bottom:var(--kbq-size-3xs);color:var(--kbq-foreground-error)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
77
72
|
}
|
|
78
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
73
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqSelectError, decorators: [{
|
|
79
74
|
type: Component,
|
|
80
75
|
args: [{ selector: 'kbq-select-error, [kbq-select-error]', template: `
|
|
81
76
|
<ng-content />
|
|
82
|
-
`, changeDetection: ChangeDetectionStrategy.OnPush,
|
|
77
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
83
78
|
class: 'kbq-select-error',
|
|
84
79
|
'[class.kbq-select-error_default]': '!paging()',
|
|
85
80
|
'[class.kbq-select-error_paging]': 'paging()'
|
|
86
|
-
}, styles: [":host{display:flex;flex-direction:column}:host.kbq-select-error_default{align-items:center;justify-content:center;margin-bottom:var(--kbq-size-3xl);margin-top:var(--kbq-size-3xl)}:host.kbq-select-error_paging{justify-content:start}:host.kbq-select-error_paging ::ng-deep .kbq-select-error__text{padding-left:var(--kbq-size-l)}::ng-deep .kbq-select-error__text{margin-top:var(--kbq-size-xs);margin-bottom:var(--kbq-size-3xs);color:var(--kbq-foreground-error)}\n"] }]
|
|
87
|
-
}] });
|
|
81
|
+
}, exportAs: 'kbqSelectError', styles: [":host{display:flex;flex-direction:column}:host.kbq-select-error_default{align-items:center;justify-content:center;margin-bottom:var(--kbq-size-3xl);margin-top:var(--kbq-size-3xl)}:host.kbq-select-error_paging{justify-content:start}:host.kbq-select-error_paging ::ng-deep .kbq-select-error__text{padding-left:var(--kbq-size-l)}::ng-deep .kbq-select-error__text{margin-top:var(--kbq-size-xs);margin-bottom:var(--kbq-size-3xs);color:var(--kbq-foreground-error)}\n"] }]
|
|
82
|
+
}], propDecorators: { paging: [{ type: i0.Input, args: [{ isSignal: true, alias: "paging", required: false }] }] } });
|
|
88
83
|
/**
|
|
89
84
|
* Marks an element as the error text container for a *KbqSelect* component.
|
|
90
85
|
*/
|
|
91
86
|
class KbqSelectErrorText {
|
|
92
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
93
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
87
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqSelectErrorText, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
88
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: KbqSelectErrorText, isStandalone: true, selector: "[kbq-select-error-text]", host: { classAttribute: "kbq-select-error__text" }, exportAs: ["kbqSelectErrorText"], ngImport: i0 }); }
|
|
94
89
|
}
|
|
95
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
90
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqSelectErrorText, decorators: [{
|
|
96
91
|
type: Directive,
|
|
97
92
|
args: [{
|
|
98
93
|
selector: '[kbq-select-error-text]',
|
|
99
|
-
exportAs: 'kbqSelectErrorText',
|
|
100
94
|
host: {
|
|
101
95
|
class: 'kbq-select-error__text'
|
|
102
|
-
}
|
|
96
|
+
},
|
|
97
|
+
exportAs: 'kbqSelectErrorText'
|
|
103
98
|
}]
|
|
104
99
|
}] });
|
|
105
100
|
/**
|
|
106
101
|
* Component that represents the empty state of a select dropdown.
|
|
107
102
|
*/
|
|
108
103
|
class KbqSelectNoOptions {
|
|
109
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
110
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
104
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqSelectNoOptions, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
105
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: KbqSelectNoOptions, isStandalone: true, selector: "kbq-select-no-options, [kbq-select-no-options]", host: { classAttribute: "kbq-select-no-options" }, exportAs: ["kbqSelectNoOptions"], ngImport: i0, template: `
|
|
111
106
|
<ng-content />
|
|
112
107
|
`, isInline: true, styles: [":host{display:flex;flex-direction:column;align-items:center;justify-content:center;padding-bottom:var(--kbq-size-3xl);padding-top:var(--kbq-size-3xl);color:var(--kbq-foreground-contrast-secondary)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
113
108
|
}
|
|
114
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
109
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqSelectNoOptions, decorators: [{
|
|
115
110
|
type: Component,
|
|
116
111
|
args: [{ selector: 'kbq-select-no-options, [kbq-select-no-options]', template: `
|
|
117
112
|
<ng-content />
|
|
118
|
-
`, changeDetection: ChangeDetectionStrategy.OnPush,
|
|
113
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
119
114
|
class: 'kbq-select-no-options'
|
|
120
|
-
}, styles: [":host{display:flex;flex-direction:column;align-items:center;justify-content:center;padding-bottom:var(--kbq-size-3xl);padding-top:var(--kbq-size-3xl);color:var(--kbq-foreground-contrast-secondary)}\n"] }]
|
|
115
|
+
}, exportAs: 'kbqSelectNoOptions', styles: [":host{display:flex;flex-direction:column;align-items:center;justify-content:center;padding-bottom:var(--kbq-size-3xl);padding-top:var(--kbq-size-3xl);color:var(--kbq-foreground-contrast-secondary)}\n"] }]
|
|
121
116
|
}] });
|
|
122
117
|
|
|
123
118
|
class KbqOptionTooltip extends KbqTooltipTrigger {
|
|
@@ -125,6 +120,8 @@ class KbqOptionTooltip extends KbqTooltipTrigger {
|
|
|
125
120
|
return this.option.textElement.nativeElement;
|
|
126
121
|
}
|
|
127
122
|
get isOverflown() {
|
|
123
|
+
if (!this.isBrowser)
|
|
124
|
+
return false;
|
|
128
125
|
return this.textElement.clientWidth < this.textElement.scrollWidth;
|
|
129
126
|
}
|
|
130
127
|
constructor() {
|
|
@@ -132,6 +129,7 @@ class KbqOptionTooltip extends KbqTooltipTrigger {
|
|
|
132
129
|
this.option = inject(KbqOption);
|
|
133
130
|
this.resizeObserver = inject(SharedResizeObserver);
|
|
134
131
|
this.contentObserver = inject(ContentObserver);
|
|
132
|
+
this.isBrowser = inject(Platform).isBrowser;
|
|
135
133
|
this.debounceInterval = 100;
|
|
136
134
|
this.resizeSubscription = Subscription.EMPTY;
|
|
137
135
|
this.contentObserverSubscription = Subscription.EMPTY;
|
|
@@ -168,10 +166,10 @@ class KbqOptionTooltip extends KbqTooltipTrigger {
|
|
|
168
166
|
handleElementLeave() {
|
|
169
167
|
this.disabled = true;
|
|
170
168
|
}
|
|
171
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
172
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
169
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqOptionTooltip, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
170
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: KbqOptionTooltip, isStandalone: true, selector: "kbq-option", host: { listeners: { "mouseenter": "handleElementEnter()", "mouseleave": "handleElementLeave()" } }, usesInheritance: true, ngImport: i0 }); }
|
|
173
171
|
}
|
|
174
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
172
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqOptionTooltip, decorators: [{
|
|
175
173
|
type: Directive,
|
|
176
174
|
args: [{
|
|
177
175
|
selector: 'kbq-option',
|
|
@@ -211,6 +209,8 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
211
209
|
* Automatically enables search hiding if value provided, even if `defaultOptions.searchMinOptionsThreshold` is provided.
|
|
212
210
|
* @default undefined
|
|
213
211
|
*/
|
|
212
|
+
// TODO: Skipped for migration because:
|
|
213
|
+
// Accessor inputs cannot be migrated as they are too complex.
|
|
214
214
|
set searchMinOptionsThreshold(value) {
|
|
215
215
|
this._searchMinOptionsThreshold =
|
|
216
216
|
this.resolveSearchMinOptionsThreshold(value) ??
|
|
@@ -223,6 +223,8 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
223
223
|
* Whether the overlay should have a backdrop.
|
|
224
224
|
* When true, clicking the backdrop will close the select.
|
|
225
225
|
*/
|
|
226
|
+
// TODO: Skipped for migration because:
|
|
227
|
+
// Accessor inputs cannot be migrated as they are too complex.
|
|
226
228
|
get hasBackdrop() {
|
|
227
229
|
return this._hasBackdrop;
|
|
228
230
|
}
|
|
@@ -233,6 +235,8 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
233
235
|
* Placeholder text to be shown when no value is selected.
|
|
234
236
|
* Displayed in the trigger when the select is closed and no value is selected.
|
|
235
237
|
*/
|
|
238
|
+
// TODO: Skipped for migration because:
|
|
239
|
+
// Accessor inputs cannot be migrated as they are too complex.
|
|
236
240
|
get placeholder() {
|
|
237
241
|
return this._placeholder;
|
|
238
242
|
}
|
|
@@ -243,6 +247,8 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
243
247
|
/**
|
|
244
248
|
* Whether the select is required. Affects validation and display of placeholder.
|
|
245
249
|
*/
|
|
250
|
+
// TODO: Skipped for migration because:
|
|
251
|
+
// Accessor inputs cannot be migrated as they are too complex.
|
|
246
252
|
get required() {
|
|
247
253
|
return this._required;
|
|
248
254
|
}
|
|
@@ -254,6 +260,8 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
254
260
|
* Whether multiple options can be selected.
|
|
255
261
|
* Note: This cannot be changed dynamically after initialization.
|
|
256
262
|
*/
|
|
263
|
+
// TODO: Skipped for migration because:
|
|
264
|
+
// Accessor inputs cannot be migrated as they are too complex.
|
|
257
265
|
get multiple() {
|
|
258
266
|
return this._multiple;
|
|
259
267
|
}
|
|
@@ -270,6 +278,8 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
270
278
|
* Should return true if the values match.
|
|
271
279
|
* Defaults to strict equality comparison.
|
|
272
280
|
*/
|
|
281
|
+
// TODO: Skipped for migration because:
|
|
282
|
+
// Accessor inputs cannot be migrated as they are too complex.
|
|
273
283
|
get compareWith() {
|
|
274
284
|
return this._compareWith;
|
|
275
285
|
}
|
|
@@ -289,6 +299,8 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
289
299
|
* @param event The keyboard event that triggered the handler.
|
|
290
300
|
* @param select Reference to this select component.
|
|
291
301
|
*/
|
|
302
|
+
// TODO: Skipped for migration because:
|
|
303
|
+
// Accessor inputs cannot be migrated as they are too complex.
|
|
292
304
|
get selectAllHandler() {
|
|
293
305
|
return this._selectAllHandler;
|
|
294
306
|
}
|
|
@@ -299,6 +311,8 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
299
311
|
this._selectAllHandler = fn;
|
|
300
312
|
}
|
|
301
313
|
/** Value of the select control. Can be a single value or array of values for multiple selection. */
|
|
314
|
+
// TODO: Skipped for migration because:
|
|
315
|
+
// Accessor inputs cannot be migrated as they are too complex.
|
|
302
316
|
get value() {
|
|
303
317
|
return this._value;
|
|
304
318
|
}
|
|
@@ -312,6 +326,8 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
312
326
|
* Unique identifier for the select component.
|
|
313
327
|
* Auto-generates an ID if not provided.
|
|
314
328
|
*/
|
|
329
|
+
// TODO: Skipped for migration because:
|
|
330
|
+
// Accessor inputs cannot be migrated as they are too complex.
|
|
315
331
|
get id() {
|
|
316
332
|
return this._id;
|
|
317
333
|
}
|
|
@@ -323,6 +339,8 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
323
339
|
* Sets the tabIndex of the select element.
|
|
324
340
|
* Automatically set to -1 when disabled.
|
|
325
341
|
*/
|
|
342
|
+
// TODO: Skipped for migration because:
|
|
343
|
+
// Accessor inputs cannot be migrated as they are too complex.
|
|
326
344
|
get tabIndex() {
|
|
327
345
|
return this.disabled ? -1 : this._tabIndex;
|
|
328
346
|
}
|
|
@@ -333,6 +351,8 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
333
351
|
* Whether the select is disabled.
|
|
334
352
|
* When disabled, the select cannot be opened and its value cannot be changed.
|
|
335
353
|
*/
|
|
354
|
+
// TODO: Skipped for migration because:
|
|
355
|
+
// Accessor inputs cannot be migrated as they are too complex.
|
|
336
356
|
get disabled() {
|
|
337
357
|
return this._disabled;
|
|
338
358
|
}
|
|
@@ -341,7 +361,12 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
341
361
|
this._disabled = value;
|
|
342
362
|
if (this.parentFormField) {
|
|
343
363
|
Promise.resolve().then(() => {
|
|
344
|
-
this._disabled
|
|
364
|
+
if (this._disabled) {
|
|
365
|
+
this.parentFormField.stopFocusMonitor();
|
|
366
|
+
}
|
|
367
|
+
else {
|
|
368
|
+
this.parentFormField.runFocusMonitor();
|
|
369
|
+
}
|
|
345
370
|
});
|
|
346
371
|
}
|
|
347
372
|
// Let the parent form field know to run change detection when the disabled state changes.
|
|
@@ -357,11 +382,12 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
357
382
|
}
|
|
358
383
|
/** Whether the search returned no results. */
|
|
359
384
|
get isEmptySearchResult() {
|
|
360
|
-
|
|
385
|
+
const search = this.search();
|
|
386
|
+
return !!search && this.options?.filter((option) => option.selectable()).length === 0 && !!search.value();
|
|
361
387
|
}
|
|
362
388
|
/** Whether the cleaner (clear button) should be shown. */
|
|
363
389
|
get canShowCleaner() {
|
|
364
|
-
return !this.disabled && this.cleaner && this.selectionModel.hasValue();
|
|
390
|
+
return !this.disabled && !!this.cleaner() && this.selectionModel.hasValue();
|
|
365
391
|
}
|
|
366
392
|
/** Returns the currently selected option(s). Single value or array for multiple selection. */
|
|
367
393
|
get selected() {
|
|
@@ -382,7 +408,7 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
382
408
|
if (this.isRtl()) {
|
|
383
409
|
selectedOptions.reverse();
|
|
384
410
|
}
|
|
385
|
-
return this.triggerValuesLimit > 0 ? selectedOptions.slice(0, this.triggerValuesLimit) : selectedOptions;
|
|
411
|
+
return this.triggerValuesLimit() > 0 ? selectedOptions.slice(0, this.triggerValuesLimit()) : selectedOptions;
|
|
386
412
|
}
|
|
387
413
|
/** Whether no option is currently selected. */
|
|
388
414
|
get empty() {
|
|
@@ -411,24 +437,23 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
411
437
|
}
|
|
412
438
|
/** Whether multiple choice is enabled. True if multiple or multiline mode is active. */
|
|
413
439
|
get multiSelection() {
|
|
414
|
-
return this.multiple || this.multiline;
|
|
440
|
+
return this.multiple || this.multiline();
|
|
415
441
|
}
|
|
416
|
-
constructor(
|
|
442
|
+
constructor() {
|
|
417
443
|
super();
|
|
418
|
-
this._changeDetectorRef =
|
|
419
|
-
this._ngZone =
|
|
420
|
-
this._renderer =
|
|
421
|
-
this.defaultErrorStateMatcher =
|
|
422
|
-
this.elementRef =
|
|
423
|
-
this.overlayContainer =
|
|
424
|
-
this._dir =
|
|
425
|
-
this.parentForm =
|
|
426
|
-
this.parentFormGroup =
|
|
427
|
-
this.parentFormField =
|
|
428
|
-
this.ngControl =
|
|
429
|
-
this.scrollStrategyFactory =
|
|
430
|
-
this.localeService =
|
|
431
|
-
this.useLegacyValidation = inject(KBQ_VALIDATION, { optional: true })?.useValidation ?? false;
|
|
444
|
+
this._changeDetectorRef = inject(ChangeDetectorRef);
|
|
445
|
+
this._ngZone = inject(NgZone);
|
|
446
|
+
this._renderer = inject(Renderer2);
|
|
447
|
+
this.defaultErrorStateMatcher = inject(ErrorStateMatcher);
|
|
448
|
+
this.elementRef = inject(ElementRef);
|
|
449
|
+
this.overlayContainer = inject(OverlayContainer);
|
|
450
|
+
this._dir = inject(Directionality, { optional: true });
|
|
451
|
+
this.parentForm = inject(NgForm, { optional: true });
|
|
452
|
+
this.parentFormGroup = inject(FormGroupDirective, { optional: true });
|
|
453
|
+
this.parentFormField = inject(KbqFormField, { host: true, optional: true });
|
|
454
|
+
this.ngControl = inject(NgControl, { self: true, optional: true });
|
|
455
|
+
this.scrollStrategyFactory = inject(KBQ_SELECT_SCROLL_STRATEGY);
|
|
456
|
+
this.localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });
|
|
432
457
|
/** @docs-private */
|
|
433
458
|
this.destroyRef = inject(DestroyRef);
|
|
434
459
|
this.isBrowser = inject(Platform).isBrowser;
|
|
@@ -483,24 +508,61 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
483
508
|
offsetY: -this.offsetY
|
|
484
509
|
}
|
|
485
510
|
];
|
|
511
|
+
/**
|
|
512
|
+
* Trigger - is a clickable field to open select dropdown panel
|
|
513
|
+
*/
|
|
514
|
+
this.trigger = viewChild('trigger', ...(ngDevMode ? [{ debugName: "trigger" }] : []));
|
|
515
|
+
/** Reference to the overlay panel element. */
|
|
516
|
+
this.panel = viewChild('panel', ...(ngDevMode ? [{ debugName: "panel" }] : []));
|
|
517
|
+
/** Reference to the container element that holds the options. */
|
|
518
|
+
this.optionsContainer = viewChild.required('optionsContainer');
|
|
519
|
+
/** Reference to the optional footer element in the panel. */
|
|
520
|
+
this.footer = contentChild(KbqSelectFooter, ...(ngDevMode ? [{ debugName: "footer", read: ElementRef }] : [{ read: ElementRef }]));
|
|
521
|
+
/** Reference to the CDK virtual scroll directive for virtual scrolling support. */
|
|
522
|
+
this.cdkVirtualForOf = contentChild(CdkVirtualForOf, ...(ngDevMode ? [{ debugName: "cdkVirtualForOf" }] : []));
|
|
523
|
+
/** Reference to the CDK virtual scroll viewport for tracking scroll position in virtual mode. */
|
|
524
|
+
this.virtualScrollViewport = contentChild(CdkVirtualScrollViewport, ...(ngDevMode ? [{ debugName: "virtualScrollViewport" }] : []));
|
|
525
|
+
/** User-supplied override of the trigger element for custom rendering. */
|
|
526
|
+
this.customTrigger = contentChild(KbqSelectTrigger, ...(ngDevMode ? [{ debugName: "customTrigger" }] : []));
|
|
527
|
+
/** User-supplied matcher component for custom value matching logic. */
|
|
528
|
+
this.customMatcher = contentChild(KbqSelectMatcher, ...(ngDevMode ? [{ debugName: "customMatcher" }] : []));
|
|
529
|
+
/** Custom template reference for rendering tag content. */
|
|
530
|
+
this.customTagTemplateRef = contentChild('kbqSelectTagContent', ...(ngDevMode ? [{ debugName: "customTagTemplateRef", read: TemplateRef }] : [{ read: TemplateRef }]));
|
|
531
|
+
/** Reference to the optional cleaner element for clearing selection. */
|
|
532
|
+
this.cleaner = contentChild('kbqSelectCleaner', ...(ngDevMode ? [{ debugName: "cleaner" }] : []));
|
|
533
|
+
/** All of the defined groups of options. */
|
|
534
|
+
this.optionGroups = contentChildren(KbqOptgroup, ...(ngDevMode ? [{ debugName: "optionGroups" }] : []));
|
|
535
|
+
/** Reference to the optional search component. */
|
|
536
|
+
this.search = contentChild(KbqSelectSearch, ...(ngDevMode ? [{ debugName: "search" }] : []));
|
|
537
|
+
/** Reference to the optional empty search result component. */
|
|
538
|
+
this.searchEmpty = contentChild(KbqSelectSearchEmptyResult, ...(ngDevMode ? [{ debugName: "searchEmpty" }] : []));
|
|
486
539
|
/** Template string for hidden items text. Supports {{ number }} placeholder. */
|
|
540
|
+
// TODO: Skipped for migration because:
|
|
541
|
+
// Your application code writes to the input. This prevents migration.
|
|
487
542
|
this.hiddenItemsText = '+{{ number }}';
|
|
488
543
|
/** Determines whether preselected values are displayed. */
|
|
489
|
-
this.showPreselectedValues = false;
|
|
544
|
+
this.showPreselectedValues = input(false, ...(ngDevMode ? [{ debugName: "showPreselectedValues" }] : []));
|
|
490
545
|
/**
|
|
491
546
|
* Specifies the maximum number of trigger values allowed.
|
|
492
547
|
* This constant limits the size of the trigger values array to ensure performance
|
|
493
548
|
* and prevent excessive memory usage.
|
|
494
549
|
* A value of `0` indicates that there is no limit.
|
|
495
550
|
*/
|
|
496
|
-
this.triggerValuesLimit = 0;
|
|
551
|
+
this.triggerValuesLimit = input(0, ...(ngDevMode ? [{ debugName: "triggerValuesLimit" }] : []));
|
|
552
|
+
/** Classes to be passed to the select panel. Supports the same syntax as the `[class]` binding. */
|
|
553
|
+
this.panelClass = input(undefined, ...(ngDevMode ? [{ debugName: "panelClass" }] : []));
|
|
497
554
|
/** Classes to be passed to the overlay backdrop. */
|
|
498
|
-
this.backdropClass = 'cdk-overlay-transparent-backdrop';
|
|
555
|
+
this.backdropClass = input('cdk-overlay-transparent-backdrop', ...(ngDevMode ? [{ debugName: "backdropClass" }] : []));
|
|
556
|
+
/**
|
|
557
|
+
* Function used to sort the values in a select in multiple mode.
|
|
558
|
+
* Follows the same logic as `Array.prototype.sort`.
|
|
559
|
+
*/
|
|
560
|
+
this.sortComparator = input(undefined, ...(ngDevMode ? [{ debugName: "sortComparator" }] : []));
|
|
499
561
|
/**
|
|
500
562
|
* Whether to use a multiline matcher or not. Default is false.
|
|
501
563
|
* When true, allows multiple lines of text in the selected value display.
|
|
502
564
|
*/
|
|
503
|
-
this.multiline = false;
|
|
565
|
+
this.multiline = input(false, ...(ngDevMode ? [{ debugName: "multiline", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
|
|
504
566
|
this._searchMinOptionsThreshold = this.resolveSearchMinOptionsThreshold(this.defaultOptions?.searchMinOptionsThreshold);
|
|
505
567
|
/** Combined stream of all of the child options' change events. */
|
|
506
568
|
this.optionSelectionChanges = defer(() => {
|
|
@@ -524,32 +586,57 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
524
586
|
/** Event emitted when the select has been closed. */
|
|
525
587
|
this.closedStream = this.openedChange.pipe(filter((o) => !o), map(() => { }));
|
|
526
588
|
/** Event emitted when the selected value has been changed by the user. */
|
|
527
|
-
this.selectionChange =
|
|
589
|
+
this.selectionChange = output();
|
|
590
|
+
/**
|
|
591
|
+
* Event emitted when all options are selected or deselected via the Ctrl/Cmd + A shortcut.
|
|
592
|
+
* Not emitted when a custom `selectAllHandler` is supplied — the handler owns the behaviour then.
|
|
593
|
+
*/
|
|
594
|
+
this.onSelectAll = output();
|
|
528
595
|
/**
|
|
529
596
|
* Event that emits whenever the raw value of the select changes. This is here primarily
|
|
530
597
|
* to facilitate the two-way binding for the `value` input.
|
|
531
598
|
* @docs-private
|
|
532
599
|
*/
|
|
533
|
-
this.valueChange =
|
|
600
|
+
this.valueChange = output();
|
|
534
601
|
/**
|
|
535
602
|
* Distance in pixels from the bottom of the options panel at which `scrolledToBottom` fires.
|
|
536
603
|
* Default `0` — emits only when the panel is fully scrolled to the bottom.
|
|
537
604
|
*/
|
|
538
|
-
this.scrolledToBottomOffset = 0;
|
|
605
|
+
this.scrolledToBottomOffset = input(0, ...(ngDevMode ? [{ debugName: "scrolledToBottomOffset", transform: numberAttribute }] : [{ transform: numberAttribute }]));
|
|
539
606
|
/** Emits when the options panel is scrolled to (or within `scrolledToBottomOffset` of) the bottom. */
|
|
540
|
-
this.scrolledToBottom =
|
|
607
|
+
this.scrolledToBottom = output();
|
|
541
608
|
this._hasBackdrop = false;
|
|
542
609
|
this._required = false;
|
|
543
610
|
this._multiple = false;
|
|
611
|
+
/**
|
|
612
|
+
* Factory used to construct a `KbqVirtualOption` for selected values whose
|
|
613
|
+
* `KbqOption` is not currently rendered (e.g. virtual scroll out of viewport,
|
|
614
|
+
* programmatically set initial value, `showPreselectedValues`).
|
|
615
|
+
*
|
|
616
|
+
* Required when option values are objects so the trigger (and tags in
|
|
617
|
+
* multiple mode) can render a human-readable label. Also lets consumers
|
|
618
|
+
* customise per-value `disabled` state or any future `KbqVirtualOption`
|
|
619
|
+
* fields without adding new `@Input`s.
|
|
620
|
+
*
|
|
621
|
+
* Defaults to `new KbqVirtualOption(value, this.disabled)`, which is correct
|
|
622
|
+
* for primitive values where `value` itself is the display label.
|
|
623
|
+
*/
|
|
624
|
+
this.virtualOptionFactory = input(...(ngDevMode ? [undefined, { debugName: "virtualOptionFactory" }] : []));
|
|
625
|
+
/** When `true`, a repeated Ctrl/Cmd+A deselects all options. Off by default (Ctrl+A only selects). */
|
|
626
|
+
this.selectAllToggle = input(false, ...(ngDevMode ? [{ debugName: "selectAllToggle", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
|
|
544
627
|
/**
|
|
545
628
|
* Width of the panel. If set to `auto`, the panel will match the trigger width.
|
|
546
629
|
* If set to null or an empty string, the panel will grow to match the longest option's text.
|
|
547
630
|
*/
|
|
631
|
+
// TODO: Skipped for migration because:
|
|
632
|
+
// The input cannot be migrated because the field is overridden by a subclass.
|
|
548
633
|
this.panelWidth = this.defaultOptions?.panelWidth || null;
|
|
549
634
|
/**
|
|
550
635
|
* Minimum width of the panel in pixels.
|
|
551
636
|
* If minWidth is larger than window width, it will be ignored.
|
|
552
637
|
*/
|
|
638
|
+
// TODO: Skipped for migration because:
|
|
639
|
+
// The input cannot be migrated because the field is overridden by a subclass.
|
|
553
640
|
this.panelMinWidth = this.defaultOptions?.panelMinWidth ?? 200;
|
|
554
641
|
this._tabIndex = 0;
|
|
555
642
|
this._disabled = false;
|
|
@@ -578,19 +665,23 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
578
665
|
*/
|
|
579
666
|
this.calculateHiddenItems = () => {
|
|
580
667
|
if (!this.isBrowser ||
|
|
581
|
-
this.customTrigger ||
|
|
582
|
-
this.customMatcher ||
|
|
668
|
+
this.customTrigger() ||
|
|
669
|
+
this.customMatcher() ||
|
|
583
670
|
this.empty ||
|
|
584
671
|
!this.multiple ||
|
|
585
|
-
this.multiline)
|
|
672
|
+
this.multiline())
|
|
586
673
|
return;
|
|
587
674
|
const totalItemsWidth = this.getTotalItemsWidthInMatcher();
|
|
588
675
|
const [totalVisibleItemsWidth, visibleItems] = this.getTotalVisibleItems();
|
|
589
676
|
this.hiddenItems = this.selected.length - visibleItems;
|
|
590
677
|
this._changeDetectorRef.detectChanges();
|
|
591
678
|
if (this.hiddenItems) {
|
|
592
|
-
const itemsCounter = this.trigger.nativeElement.querySelector('.kbq-select__match-hidden-text');
|
|
593
|
-
const matcherList = this.trigger.nativeElement.querySelector('.kbq-select__match-list');
|
|
679
|
+
const itemsCounter = this.trigger().nativeElement.querySelector('.kbq-select__match-hidden-text');
|
|
680
|
+
const matcherList = this.trigger().nativeElement.querySelector('.kbq-select__match-list');
|
|
681
|
+
if (!itemsCounter || !matcherList) {
|
|
682
|
+
this._changeDetectorRef.markForCheck();
|
|
683
|
+
return;
|
|
684
|
+
}
|
|
594
685
|
const itemsCounterShowed = itemsCounter.offsetTop < itemsCounter.offsetHeight;
|
|
595
686
|
const itemsCounterWidth = Math.floor(itemsCounter.getBoundingClientRect().width);
|
|
596
687
|
const matcherListWidth = Math.floor(matcherList.getBoundingClientRect().width);
|
|
@@ -623,7 +714,7 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
623
714
|
// Force setter to be called in case id was not specified.
|
|
624
715
|
this.id = this.id;
|
|
625
716
|
afterNextRender(() => {
|
|
626
|
-
if (this.multiple && !this.multiline) {
|
|
717
|
+
if (this.multiple && !this.multiline()) {
|
|
627
718
|
merge(fromEvent(this.window, 'resize'), this.tags.changes)
|
|
628
719
|
.pipe(delay(0), debounceTime(50), takeUntilDestroyed(this.destroyRef))
|
|
629
720
|
.subscribe(this.calculateHiddenItems);
|
|
@@ -642,8 +733,9 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
642
733
|
.subscribe(() => {
|
|
643
734
|
if (this.panelOpen) {
|
|
644
735
|
this.scrollTop = 0;
|
|
645
|
-
|
|
646
|
-
|
|
736
|
+
const search = this.search();
|
|
737
|
+
if (search) {
|
|
738
|
+
search.focus();
|
|
647
739
|
}
|
|
648
740
|
this.openedChange.emit(true);
|
|
649
741
|
}
|
|
@@ -656,7 +748,7 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
656
748
|
.pipe(distinctUntilChanged(), takeUntilDestroyed(this.destroyRef))
|
|
657
749
|
.subscribe(() => setTimeout(() => {
|
|
658
750
|
this.calculateHiddenItems();
|
|
659
|
-
if (this.multiline) {
|
|
751
|
+
if (this.multiline()) {
|
|
660
752
|
this.setOverlayPosition();
|
|
661
753
|
}
|
|
662
754
|
}, 0));
|
|
@@ -670,7 +762,7 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
670
762
|
}
|
|
671
763
|
/** Lifecycle hook after content initialization. Sets up key manager and option subscriptions. */
|
|
672
764
|
ngAfterContentInit() {
|
|
673
|
-
this.withVirtualScroll = !!this.cdkVirtualForOf;
|
|
765
|
+
this.withVirtualScroll = !!this.cdkVirtualForOf();
|
|
674
766
|
this.initKeyManager();
|
|
675
767
|
this.selectionModel.changed.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((event) => {
|
|
676
768
|
event.added.forEach((option) => option.select());
|
|
@@ -680,8 +772,8 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
680
772
|
this.resetOptions();
|
|
681
773
|
this.initializeSelection();
|
|
682
774
|
});
|
|
683
|
-
this.search
|
|
684
|
-
.pipe(takeUntilDestroyed(this.destroyRef), delay(0), filter(() => {
|
|
775
|
+
this.search()
|
|
776
|
+
?.changes.pipe(takeUntilDestroyed(this.destroyRef), delay(0), filter(() => {
|
|
685
777
|
const activeItem = this.keyManager.activeItem;
|
|
686
778
|
return !activeItem || !this.options.toArray().includes(activeItem);
|
|
687
779
|
}))
|
|
@@ -730,16 +822,17 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
730
822
|
}
|
|
731
823
|
/** Resets the search component if present. */
|
|
732
824
|
resetSearch() {
|
|
733
|
-
|
|
825
|
+
const search = this.search();
|
|
826
|
+
if (!search) {
|
|
734
827
|
return;
|
|
735
828
|
}
|
|
736
|
-
|
|
829
|
+
search.reset();
|
|
737
830
|
/*
|
|
738
831
|
todo the incorrect behaviour of keyManager is possible here
|
|
739
832
|
to avoid first item selection (to provide correct options flipping on closed select)
|
|
740
833
|
we should process options update like it is the first options appearance
|
|
741
834
|
*/
|
|
742
|
-
|
|
835
|
+
search.isSearchChanged = false;
|
|
743
836
|
}
|
|
744
837
|
/** Toggles the overlay panel open or closed. */
|
|
745
838
|
toggle() {
|
|
@@ -774,13 +867,14 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
774
867
|
* Sets up the overlay dimensions based on trigger size and configured options.
|
|
775
868
|
*/
|
|
776
869
|
openPanel() {
|
|
777
|
-
|
|
870
|
+
const trigger = this.trigger();
|
|
871
|
+
if (!trigger || !this.keyManager)
|
|
778
872
|
return;
|
|
779
873
|
// add check for form-field bounding rectangles, since it adds extra padding around the trigger
|
|
780
|
-
this.triggerRect = (this.parentFormField?.getConnectedOverlayOrigin().nativeElement ||
|
|
874
|
+
this.triggerRect = (this.parentFormField?.getConnectedOverlayOrigin().nativeElement || trigger.nativeElement).getBoundingClientRect();
|
|
781
875
|
// Note: The computed font-size will be a string pixel value (e.g. "16px").
|
|
782
876
|
// `parseInt` ignores the trailing 'px' and converts this to a number.
|
|
783
|
-
this.triggerFontSize = parseInt(this.window.getComputedStyle(
|
|
877
|
+
this.triggerFontSize = parseInt(this.window.getComputedStyle(trigger.nativeElement)['font-size']);
|
|
784
878
|
// It's important that we read this as late as possible, because doing so earlier will
|
|
785
879
|
// return a different element since it's based on queries in the form field which may
|
|
786
880
|
// not have run yet. Also this needs to be assigned before we measure the overlay width.
|
|
@@ -809,8 +903,8 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
809
903
|
this.overlayDir.overlayRef.overlayElement.style.fontSize = `${this.triggerFontSize}px`;
|
|
810
904
|
}
|
|
811
905
|
this.addClassToOverlayContainer();
|
|
812
|
-
if (this.search && !this.overlayWidth) {
|
|
813
|
-
const measuredPanelWidth = this.panel?.nativeElement.getBoundingClientRect().width;
|
|
906
|
+
if (this.search() && !this.overlayWidth) {
|
|
907
|
+
const measuredPanelWidth = this.panel()?.nativeElement.getBoundingClientRect().width;
|
|
814
908
|
if (measuredPanelWidth) {
|
|
815
909
|
this.overlayWidth = measuredPanelWidth;
|
|
816
910
|
}
|
|
@@ -857,7 +951,7 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
857
951
|
*
|
|
858
952
|
* @param fn Callback to be triggered when the component has been touched.
|
|
859
953
|
*/
|
|
860
|
-
// eslint-disable-next-line @typescript-eslint/
|
|
954
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
|
861
955
|
registerOnTouched(fn) {
|
|
862
956
|
this.onTouched = fn;
|
|
863
957
|
}
|
|
@@ -911,11 +1005,6 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
911
1005
|
this.onTouched();
|
|
912
1006
|
this._changeDetectorRef.markForCheck();
|
|
913
1007
|
this.stateChanges.next();
|
|
914
|
-
if (this.useLegacyValidation && this.ngControl?.control) {
|
|
915
|
-
const control = this.ngControl.control;
|
|
916
|
-
control.updateValueAndValidity({ emitEvent: false });
|
|
917
|
-
control.statusChanges.emit(control.status);
|
|
918
|
-
}
|
|
919
1008
|
}
|
|
920
1009
|
}
|
|
921
1010
|
/**
|
|
@@ -926,7 +1015,7 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
926
1015
|
this.overlayDir.positionChange.pipe(take(1)).subscribe(() => {
|
|
927
1016
|
this._changeDetectorRef.detectChanges();
|
|
928
1017
|
this.setOverlayPosition();
|
|
929
|
-
this.optionsContainer.nativeElement.scrollTop = this.scrollTop;
|
|
1018
|
+
this.optionsContainer().nativeElement.scrollTop = this.scrollTop;
|
|
930
1019
|
this.updateScrollSize();
|
|
931
1020
|
this.subscribeToScrolledToBottom();
|
|
932
1021
|
});
|
|
@@ -939,6 +1028,21 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
939
1028
|
getPanelTheme() {
|
|
940
1029
|
return this.parentFormField ? `kbq-${this.parentFormField.color}` : '';
|
|
941
1030
|
}
|
|
1031
|
+
/** Returns the full set of classes for the panel: base class, theme and custom `panelClass`. */
|
|
1032
|
+
getPanelClasses() {
|
|
1033
|
+
const panelClass = this.panelClass();
|
|
1034
|
+
const classes = ['kbq-select__panel', this.getPanelTheme()];
|
|
1035
|
+
if (typeof panelClass === 'string') {
|
|
1036
|
+
classes.push(panelClass);
|
|
1037
|
+
}
|
|
1038
|
+
else if (Array.isArray(panelClass) || panelClass instanceof Set) {
|
|
1039
|
+
classes.push(...panelClass);
|
|
1040
|
+
}
|
|
1041
|
+
else if (panelClass) {
|
|
1042
|
+
classes.push(...Object.keys(panelClass).filter((key) => panelClass[key]));
|
|
1043
|
+
}
|
|
1044
|
+
return classes.filter(Boolean).join(' ');
|
|
1045
|
+
}
|
|
942
1046
|
/** Focuses the select element. */
|
|
943
1047
|
focus() {
|
|
944
1048
|
this.elementRef.nativeElement.focus();
|
|
@@ -972,13 +1076,13 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
972
1076
|
* @param $event The mouse event to handle.
|
|
973
1077
|
*/
|
|
974
1078
|
handleClick($event) {
|
|
975
|
-
if (this.footer?.nativeElement.contains($event.target)) {
|
|
1079
|
+
if (this.footer()?.nativeElement.contains($event.target)) {
|
|
976
1080
|
this.close();
|
|
977
1081
|
}
|
|
978
1082
|
}
|
|
979
1083
|
/** @docs-private */
|
|
980
1084
|
setSelectedOptionsByClick(option) {
|
|
981
|
-
if (this.multiple || this.multiline) {
|
|
1085
|
+
if (this.multiple || this.multiline()) {
|
|
982
1086
|
this.keyManager.setActiveItem(option);
|
|
983
1087
|
const options = this.options.toArray();
|
|
984
1088
|
let fromIndex = this.keyManager.previousActiveItemIndex;
|
|
@@ -1010,11 +1114,13 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
1010
1114
|
/** @docs-private */
|
|
1011
1115
|
shouldShowSearch() {
|
|
1012
1116
|
return (isUndefined(this.searchMinOptionsThreshold) ||
|
|
1013
|
-
!!this.search
|
|
1117
|
+
!!this.search()?.value() ||
|
|
1014
1118
|
this.options.length >= this.searchMinOptionsThreshold);
|
|
1015
1119
|
}
|
|
1016
1120
|
/** Checks if the component is currently visible in the viewport. */
|
|
1017
1121
|
isVisible() {
|
|
1122
|
+
if (!this.isBrowser)
|
|
1123
|
+
return false;
|
|
1018
1124
|
return this.elementRef.nativeElement.offsetTop < this.elementRef.nativeElement.offsetHeight;
|
|
1019
1125
|
}
|
|
1020
1126
|
/** Gets the current overlay position index in the container. */
|
|
@@ -1047,7 +1153,7 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
1047
1153
|
}
|
|
1048
1154
|
/** Gets the height of the options container element. */
|
|
1049
1155
|
getHeightOfOptionsContainer() {
|
|
1050
|
-
return this.optionsContainer.nativeElement.getClientRects()[0]?.height;
|
|
1156
|
+
return this.optionsContainer().nativeElement.getClientRects()[0]?.height;
|
|
1051
1157
|
}
|
|
1052
1158
|
/** Updates the keyboard manager scroll size based on options container height. */
|
|
1053
1159
|
updateScrollSize() {
|
|
@@ -1064,17 +1170,18 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
1064
1170
|
*/
|
|
1065
1171
|
subscribeToScrolledToBottom() {
|
|
1066
1172
|
this.scrollSubscription.unsubscribe();
|
|
1067
|
-
const
|
|
1068
|
-
|
|
1173
|
+
const virtualScrollViewport = this.virtualScrollViewport();
|
|
1174
|
+
const distance = this.withVirtualScroll && virtualScrollViewport
|
|
1175
|
+
? virtualScrollViewport
|
|
1069
1176
|
.elementScrolled()
|
|
1070
|
-
.pipe(map(() => this.virtualScrollViewport.measureScrollOffset('bottom')))
|
|
1071
|
-
: fromEvent(this.optionsContainer.nativeElement, 'scroll').pipe(map(() => {
|
|
1072
|
-
const element = this.optionsContainer.nativeElement;
|
|
1177
|
+
.pipe(map(() => this.virtualScrollViewport().measureScrollOffset('bottom')))
|
|
1178
|
+
: fromEvent(this.optionsContainer().nativeElement, 'scroll').pipe(map(() => {
|
|
1179
|
+
const element = this.optionsContainer().nativeElement;
|
|
1073
1180
|
return element.scrollHeight - element.scrollTop - element.clientHeight;
|
|
1074
1181
|
}));
|
|
1075
1182
|
this._ngZone.runOutsideAngular(() => {
|
|
1076
1183
|
this.scrollSubscription = distance
|
|
1077
|
-
.pipe(auditTime(SCROLLED_TO_BOTTOM_THROTTLE_TIME), map((distance) => distance <= this.scrolledToBottomOffset), distinctUntilChanged(), filter(Boolean), takeUntilDestroyed(this.destroyRef), takeUntil(this.closedStream))
|
|
1184
|
+
.pipe(auditTime(SCROLLED_TO_BOTTOM_THROTTLE_TIME), map((distance) => distance <= this.scrolledToBottomOffset()), distinctUntilChanged(), filter(Boolean), takeUntilDestroyed(this.destroyRef), takeUntil(this.closedStream))
|
|
1078
1185
|
.subscribe(() => this._ngZone.run(() => this.scrolledToBottom.emit()));
|
|
1079
1186
|
});
|
|
1080
1187
|
}
|
|
@@ -1082,7 +1189,7 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
1082
1189
|
getTotalItemsWidthInMatcher() {
|
|
1083
1190
|
const triggerClone = this.buildTriggerClone();
|
|
1084
1191
|
triggerClone.querySelector('.kbq-select__match-hidden-text')?.remove();
|
|
1085
|
-
this._renderer.appendChild(this.trigger.nativeElement, triggerClone);
|
|
1192
|
+
this._renderer.appendChild(this.trigger().nativeElement, triggerClone);
|
|
1086
1193
|
let totalItemsWidth = 0;
|
|
1087
1194
|
const selectedItemsViewValueContainers = triggerClone.querySelectorAll('kbq-tag');
|
|
1088
1195
|
selectedItemsViewValueContainers.forEach((item) => (totalItemsWidth += this.getItemWidth(item)));
|
|
@@ -1145,7 +1252,7 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
1145
1252
|
event.preventDefault();
|
|
1146
1253
|
this.keyManager.activeItem.selectViaInteraction();
|
|
1147
1254
|
}
|
|
1148
|
-
else if (this.multiSelection &&
|
|
1255
|
+
else if (this.multiSelection && isSelectAll(event)) {
|
|
1149
1256
|
this.selectAllHandler(event, this);
|
|
1150
1257
|
}
|
|
1151
1258
|
else {
|
|
@@ -1164,10 +1271,11 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
1164
1271
|
if (isArrowKey && this.keyManager.activeItemIndex === previouslyFocusedIndex) {
|
|
1165
1272
|
this.keyManager.activeItem?.focus();
|
|
1166
1273
|
}
|
|
1167
|
-
|
|
1168
|
-
|
|
1274
|
+
const search = this.search();
|
|
1275
|
+
if (search && this.shouldShowSearch()) {
|
|
1276
|
+
search.focus();
|
|
1169
1277
|
}
|
|
1170
|
-
if (
|
|
1278
|
+
if (search && (this.keyManager.isTyping() || [BACKSPACE, DELETE].includes(keyCode))) {
|
|
1171
1279
|
setTimeout(() => this.highlightCorrectOption());
|
|
1172
1280
|
}
|
|
1173
1281
|
}
|
|
@@ -1243,13 +1351,13 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
1243
1351
|
this.selectionModel.select(correspondingOption);
|
|
1244
1352
|
}
|
|
1245
1353
|
else if (this.withVirtualScroll) {
|
|
1246
|
-
const source = this.cdkVirtualForOf?.cdkVirtualForOf;
|
|
1354
|
+
const source = this.cdkVirtualForOf()?.cdkVirtualForOf;
|
|
1247
1355
|
const correspondingOptionVirtual = source instanceof Array ? source.find((item) => this.compareWith(item, value)) : undefined;
|
|
1248
1356
|
if (correspondingOptionVirtual) {
|
|
1249
1357
|
this.selectionModel.select(this.createVirtualOption(correspondingOptionVirtual));
|
|
1250
1358
|
}
|
|
1251
1359
|
}
|
|
1252
|
-
else if (this.showPreselectedValues) {
|
|
1360
|
+
else if (this.showPreselectedValues()) {
|
|
1253
1361
|
this.selectionModel.select(this.createVirtualOption(value));
|
|
1254
1362
|
}
|
|
1255
1363
|
return correspondingOption;
|
|
@@ -1260,21 +1368,20 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
1260
1368
|
* wraps the raw value with the select's current `disabled` state.
|
|
1261
1369
|
*/
|
|
1262
1370
|
createVirtualOption(value) {
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
: new KbqVirtualOption(value, this.disabled);
|
|
1371
|
+
const virtualOptionFactory = this.virtualOptionFactory();
|
|
1372
|
+
return virtualOptionFactory ? virtualOptionFactory(value) : new KbqVirtualOption(value, this.disabled);
|
|
1266
1373
|
}
|
|
1267
1374
|
/** Sets up a key manager to listen to keyboard events on the overlay panel. */
|
|
1268
1375
|
initKeyManager() {
|
|
1269
1376
|
const typeAheadDebounce = 200;
|
|
1270
1377
|
this.keyManager = new ActiveDescendantKeyManager(this.options)
|
|
1271
|
-
.withTypeAhead(typeAheadDebounce, this.search ? -1 : 0)
|
|
1378
|
+
.withTypeAhead(typeAheadDebounce, this.search() ? -1 : 0)
|
|
1272
1379
|
.withVerticalOrientation()
|
|
1273
1380
|
.withHorizontalOrientation(this.isRtl() ? 'rtl' : 'ltr');
|
|
1274
1381
|
this.keyManager.change.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {
|
|
1275
|
-
if (this.panelOpen && this.panel) {
|
|
1382
|
+
if (this.panelOpen && this.panel()) {
|
|
1276
1383
|
this.scrollActiveOptionIntoView();
|
|
1277
|
-
this.search?.focus();
|
|
1384
|
+
this.search()?.focus();
|
|
1278
1385
|
}
|
|
1279
1386
|
else if (!this.panelOpen && !this.multiSelection && this.keyManager.activeItem) {
|
|
1280
1387
|
this.keyManager.activeItem.selectViaInteraction();
|
|
@@ -1332,7 +1439,10 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
1332
1439
|
sortValues() {
|
|
1333
1440
|
if (this.multiSelection) {
|
|
1334
1441
|
const options = this.options.toArray();
|
|
1335
|
-
this.selectionModel.sort((a, b) =>
|
|
1442
|
+
this.selectionModel.sort((a, b) => {
|
|
1443
|
+
const sortComparator = this.sortComparator();
|
|
1444
|
+
return sortComparator ? sortComparator(a, b, options) : a.value - b.value;
|
|
1445
|
+
});
|
|
1336
1446
|
this.stateChanges.next();
|
|
1337
1447
|
}
|
|
1338
1448
|
}
|
|
@@ -1379,16 +1489,26 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
1379
1489
|
}
|
|
1380
1490
|
/** Function for handling the combination Ctrl + A (select all). By default, the internal handler is used. */
|
|
1381
1491
|
_selectAllHandler(event, select) {
|
|
1492
|
+
const searchInput = isInput(event) ? event.target : null;
|
|
1493
|
+
if (shouldSelectSearchText(searchInput)) {
|
|
1494
|
+
searchInput.select();
|
|
1495
|
+
event.preventDefault();
|
|
1496
|
+
return;
|
|
1497
|
+
}
|
|
1382
1498
|
event.preventDefault();
|
|
1383
|
-
const
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1499
|
+
const options = select.options.toArray();
|
|
1500
|
+
const selectableOptions = options.filter((option) => !option.disabled);
|
|
1501
|
+
toggleSelectAll({
|
|
1502
|
+
items: options,
|
|
1503
|
+
isSelectable: (option) => !option.disabled,
|
|
1504
|
+
isSelected: (option) => option.selected,
|
|
1505
|
+
setSelected: (option, selected) => (selected ? option.select() : option.deselect())
|
|
1506
|
+
}, { allowDeselect: select.selectAllToggle() });
|
|
1507
|
+
// `selected` per the KbqSelectAllEvent contract: `true` only when every selectable option is
|
|
1508
|
+
// now selected, `false` otherwise (deselected or partial). Reading the live option state keeps
|
|
1509
|
+
// this correct even on a no-op (Ctrl+A while everything is already selected, selectAllToggle off).
|
|
1510
|
+
const selected = selectableOptions.length > 0 && selectableOptions.every((option) => option.selected);
|
|
1511
|
+
select.onSelectAll.emit(new KbqSelectAllEvent(select, selectableOptions, selected));
|
|
1392
1512
|
}
|
|
1393
1513
|
/**
|
|
1394
1514
|
* Calculates the total width and count of visible items.
|
|
@@ -1396,8 +1516,11 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
1396
1516
|
*/
|
|
1397
1517
|
getTotalVisibleItems() {
|
|
1398
1518
|
const triggerClone = this.buildTriggerClone();
|
|
1399
|
-
|
|
1400
|
-
|
|
1519
|
+
const hiddenText = triggerClone.querySelector('.kbq-select__match-hidden-text');
|
|
1520
|
+
if (hiddenText) {
|
|
1521
|
+
this._renderer.setStyle(hiddenText, 'display', 'block');
|
|
1522
|
+
}
|
|
1523
|
+
this._renderer.appendChild(this.trigger().nativeElement, triggerClone);
|
|
1401
1524
|
let visibleItemsCount = 0;
|
|
1402
1525
|
let totalVisibleItemsWidth = 0;
|
|
1403
1526
|
triggerClone.querySelectorAll('kbq-tag').forEach((item) => {
|
|
@@ -1414,7 +1537,7 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
1414
1537
|
* @returns Clone of the trigger element positioned off-screen.
|
|
1415
1538
|
*/
|
|
1416
1539
|
buildTriggerClone() {
|
|
1417
|
-
const triggerClone = this.trigger.nativeElement.cloneNode(true);
|
|
1540
|
+
const triggerClone = this.trigger().nativeElement.cloneNode(true);
|
|
1418
1541
|
this._renderer.setStyle(triggerClone, 'position', 'absolute');
|
|
1419
1542
|
this._renderer.setStyle(triggerClone, 'visibility', 'hidden');
|
|
1420
1543
|
this._renderer.setStyle(triggerClone, 'top', '-100%');
|
|
@@ -1436,17 +1559,17 @@ class KbqSelect extends KbqAbstractSelect {
|
|
|
1436
1559
|
this._renderer.removeClass(this.overlayContainer.getContainerElement(), 'cdk-overlay-container_dropdown');
|
|
1437
1560
|
}
|
|
1438
1561
|
}
|
|
1439
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1440
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
1562
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqSelect, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1563
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: KbqSelect, isStandalone: true, selector: "kbq-select", inputs: { hiddenItemsText: { classPropertyName: "hiddenItemsText", publicName: "hiddenItemsText", isSignal: false, isRequired: false, transformFunction: null }, showPreselectedValues: { classPropertyName: "showPreselectedValues", publicName: "showPreselectedValues", isSignal: true, isRequired: false, transformFunction: null }, triggerValuesLimit: { classPropertyName: "triggerValuesLimit", publicName: "triggerValuesLimit", isSignal: true, isRequired: false, transformFunction: null }, panelClass: { classPropertyName: "panelClass", publicName: "panelClass", isSignal: true, isRequired: false, transformFunction: null }, backdropClass: { classPropertyName: "backdropClass", publicName: "backdropClass", isSignal: true, isRequired: false, transformFunction: null }, errorStateMatcher: { classPropertyName: "errorStateMatcher", publicName: "errorStateMatcher", isSignal: false, isRequired: false, transformFunction: null }, sortComparator: { classPropertyName: "sortComparator", publicName: "sortComparator", isSignal: true, isRequired: false, transformFunction: null }, multiline: { classPropertyName: "multiline", publicName: "multiline", isSignal: true, isRequired: false, transformFunction: null }, searchMinOptionsThreshold: { classPropertyName: "searchMinOptionsThreshold", publicName: "searchMinOptionsThreshold", isSignal: false, isRequired: false, transformFunction: null }, scrolledToBottomOffset: { classPropertyName: "scrolledToBottomOffset", publicName: "scrolledToBottomOffset", isSignal: true, isRequired: false, transformFunction: null }, hasBackdrop: { classPropertyName: "hasBackdrop", publicName: "hasBackdrop", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: false, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: false, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, compareWith: { classPropertyName: "compareWith", publicName: "compareWith", isSignal: false, isRequired: false, transformFunction: null }, virtualOptionFactory: { classPropertyName: "virtualOptionFactory", publicName: "virtualOptionFactory", isSignal: true, isRequired: false, transformFunction: null }, selectAllToggle: { classPropertyName: "selectAllToggle", publicName: "selectAllToggle", isSignal: true, isRequired: false, transformFunction: null }, selectAllHandler: { classPropertyName: "selectAllHandler", publicName: "selectAllHandler", isSignal: false, isRequired: false, transformFunction: null }, panelWidth: { classPropertyName: "panelWidth", publicName: "panelWidth", isSignal: false, isRequired: false, transformFunction: null }, panelMinWidth: { classPropertyName: "panelMinWidth", publicName: "panelMinWidth", isSignal: false, isRequired: false, transformFunction: numberAttribute }, value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: false, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: false, isRequired: false, transformFunction: numberAttribute }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, hiddenItemsTextFormatter: { classPropertyName: "hiddenItemsTextFormatter", publicName: "hiddenItemsTextFormatter", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { openedChange: "openedChange", beforeOpened: "beforeOpened", openedStream: "opened", closedStream: "closed", selectionChange: "selectionChange", onSelectAll: "onSelectAll", valueChange: "valueChange", scrolledToBottom: "scrolledToBottom" }, host: { listeners: { "click": "toggle()", "keydown": "handleKeydown($event)", "focus": "onFocus()", "blur": "onBlur()" }, properties: { "attr.tabindex": "tabIndex", "attr.disabled": "disabled || null", "class.kbq-select_multiple": "multiple", "class.kbq-select_multiline": "multiline()", "class.kbq-disabled": "disabled", "class.kbq-invalid": "errorState" }, classAttribute: "kbq-select" }, providers: [
|
|
1441
1564
|
{ provide: KbqFormFieldControl, useExisting: KbqSelect },
|
|
1442
1565
|
{ provide: KBQ_OPTION_PARENT_COMPONENT, useExisting: KbqSelect },
|
|
1443
1566
|
{ provide: KBQ_PARENT_POPUP, useExisting: KbqSelect }
|
|
1444
|
-
], queries: [{ propertyName: "footer", first: true, predicate: KbqSelectFooter, descendants: true, read: ElementRef }, { propertyName: "cdkVirtualForOf", first: true, predicate: CdkVirtualForOf, descendants: true }, { propertyName: "virtualScrollViewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true }, { propertyName: "customTrigger", first: true, predicate: KbqSelectTrigger, descendants: true }, { propertyName: "customMatcher", first: true, predicate: KbqSelectMatcher, descendants: true }, { propertyName: "customTagTemplateRef", first: true, predicate: ["kbqSelectTagContent"], descendants: true, read: TemplateRef }, { propertyName: "cleaner", first: true, predicate: ["kbqSelectCleaner"], descendants: true, static: true }, { propertyName: "search", first: true, predicate: KbqSelectSearch, descendants: true }, { propertyName: "searchEmpty", first: true, predicate: KbqSelectSearchEmptyResult, descendants: true }, { propertyName: "options", predicate: KbqOption, descendants: true }, { propertyName: "optionGroups", predicate: KbqOptgroup }], viewQueries: [{ propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true }, { propertyName: "panel", first: true, predicate: ["panel"], descendants: true }, { propertyName: "optionsContainer", first: true, predicate: ["optionsContainer"], descendants: true }, { propertyName: "overlayDir", first: true, predicate: CdkConnectedOverlay, descendants: true }, { propertyName: "tags", predicate: KbqTag, descendants: true }], exportAs: ["kbqSelect"], usesInheritance: true, ngImport: i0, template: "<div\n #fallbackOverlayOrigin=\"cdkOverlayOrigin\"\n #trigger\n cdkOverlayOrigin\n class=\"kbq-select__trigger\"\n [class.kbq-select__trigger_empty]=\"empty\"\n [class.kbq-select__trigger_multiline]=\"multiline\"\n [class.kbq-select__trigger_multiple]=\"multiple\"\n [class.kbq-select__trigger_single]=\"!multiple\"\n>\n @if (!!customMatcher) {\n <ng-content select=\"kbq-select-matcher, [kbq-select-matcher]\" />\n } @else {\n <div class=\"kbq-select__matcher\">\n @if (empty) {\n <span class=\"kbq-select__placeholder\">\n {{ placeholder || '\\u00A0' }}\n </span>\n } @else {\n @if (!!customTrigger) {\n <ng-content select=\"kbq-select-trigger, [kbq-select-trigger]\" />\n } @else {\n <div class=\"kbq-select__match-container\">\n @if (multiSelection) {\n <div\n [class.kbq-select__match-list]=\"!multiline\"\n [class.kbq-select__multiline-match-list]=\"multiline\"\n >\n @if (!customTagTemplateRef) {\n @for (option of triggerValues; track option) {\n <kbq-tag\n [color]=\"colorForState\"\n [disabled]=\"option.disabled || disabled\"\n [selectable]=\"false\"\n >\n {{ option.viewValue }}\n @if (!option.disabled && !disabled) {\n <i\n kbq-icon=\"kbq-xmark-s_16\"\n kbqTagRemove\n (click)=\"onRemoveMatcherItem(option, $event)\"\n ></i>\n }\n </kbq-tag>\n }\n }\n @if (customTagTemplateRef) {\n @for (option of triggerValues; track option) {\n <ng-container\n [ngTemplateOutlet]=\"$any(customTagTemplateRef)\"\n [ngTemplateOutletContext]=\"{ $implicit: option, select: this }\"\n />\n }\n }\n </div>\n\n @if (!multiline) {\n <div\n class=\"kbq-select__match-hidden-text\"\n [style.display]=\"hiddenItems > 0 ? 'block' : 'none'\"\n >\n {{ hiddenItemsTextFormatter(hiddenItemsText, hiddenItems) }}\n </div>\n }\n } @else {\n <span class=\"kbq-select__matcher-text\">\n {{ triggerValue }}\n </span>\n }\n </div>\n }\n }\n\n @if (canShowCleaner) {\n <div\n class=\"kbq-select__cleaner\"\n (click)=\"clearValue($event)\"\n (keydown.enter)=\"clearValue($event)\"\n (keydown.space)=\"clearValue($event)\"\n >\n <ng-content select=\"kbq-cleaner\" />\n </div>\n }\n\n <div class=\"kbq-select__arrow-wrapper\">\n <i kbq-icon=\"kbq-chevron-down-s_16\" class=\"kbq-select__arrow\" [color]=\"colorForState\"></i>\n </div>\n </div>\n }\n</div>\n\n<ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayBackdropClass]=\"backdropClass\"\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\"\n [cdkConnectedOverlayMinWidth]=\"overlayMinWidth\"\n [cdkConnectedOverlayOffsetY]=\"offsetY\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayOrigin]=\"overlayOrigin || fallbackOverlayOrigin\"\n [cdkConnectedOverlayPanelClass]=\"overlayPanelClass\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n [cdkConnectedOverlayWidth]=\"overlayWidth\"\n (attach)=\"onAttached()\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n>\n <div\n #panel\n class=\"kbq-select__panel {{ getPanelTheme() }}\"\n cdkMonitorSubtreeFocus\n [ngClass]=\"panelClass\"\n [style.font-size.px]=\"triggerFontSize\"\n [style.transformOrigin]=\"transformOrigin\"\n (click)=\"handleClick($event)\"\n (keydown)=\"handleKeydown($event)\"\n >\n @if (search && shouldShowSearch()) {\n <div class=\"kbq-select__search-container\">\n <ng-content select=\"[kbqSelectSearch]\" />\n </div>\n }\n\n <div\n #optionsContainer\n class=\"kbq-select__content\"\n [class.kbq-scrollbar]=\"!withVirtualScroll\"\n [@fadeInContent]=\"'showing'\"\n (@fadeInContent.done)=\"panelDoneAnimatingStream.next($event.toState)\"\n >\n @if (isEmptySearchResult) {\n <ng-content select=\"[kbq-select-search-empty-result]\" />\n }\n <ng-content />\n </div>\n\n <ng-content select=\"kbq-select-footer,[kbq-select-footer]\" />\n </div>\n</ng-template>\n", styles: [".kbq-select{box-sizing:border-box;display:inline-block;width:100%;outline:none}.kbq-select .kbq-select__trigger{display:flex;box-sizing:border-box;position:relative;cursor:pointer;min-height:calc(var(--kbq-form-field-size-height) - var(--kbq-size-border-width) * 2)}.kbq-select .kbq-select__trigger:not(.kbq-select__trigger_multiline){height:calc(var(--kbq-form-field-size-height) - var(--kbq-size-border-width) * 2)}.kbq-select .kbq-select__trigger:not(.kbq-select__trigger_multiline) .kbq-select__matcher{overflow:hidden;white-space:nowrap}.kbq-select .kbq-select__matcher{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-grow:1;align-items:center}.kbq-select .kbq-select__matcher>span{flex:1;overflow:hidden}.kbq-select .kbq-select__trigger.kbq-select__trigger_single .kbq-select__matcher,.kbq-select .kbq-select__trigger.kbq-select__trigger_multiple.kbq-select__trigger_empty .kbq-select__matcher{padding:var(--kbq-select-size-single-padding-vertical) var(--kbq-select-size-single-padding-right) var(--kbq-select-size-single-padding-vertical) var(--kbq-select-size-single-padding-left)}.kbq-select .kbq-select__trigger.kbq-select__trigger_multiple:not(.kbq-select__trigger_empty) .kbq-select__matcher{padding:var(--kbq-select-size-multiple-padding-vertical) var(--kbq-select-size-multiple-padding-right) var(--kbq-select-size-multiple-padding-vertical) var(--kbq-select-size-multiple-padding-left)}.kbq-select .kbq-select__trigger.kbq-select__trigger_multiple:not(.kbq-select__trigger_empty) .kbq-select__matcher .kbq-select__match-container{display:flex}.kbq-select .kbq-select__trigger.kbq-select__trigger_multiple:not(.kbq-select__trigger_empty) .kbq-select__matcher .kbq-select__match-list{display:flex;flex-wrap:wrap;overflow:hidden;height:calc(var(--kbq-form-field-size-height) - var(--kbq-select-size-multiple-padding-vertical) * 2);max-height:calc(var(--kbq-form-field-size-height) - var(--kbq-select-size-multiple-padding-vertical) * 2);gap:var(--kbq-select-size-multiple-content-gap, var(--kbq-size-xxs));margin-right:var(--kbq-select-size-multiple-content-gap, var(--kbq-size-xxs))}.kbq-select .kbq-select__trigger.kbq-select__trigger_multiline:not(.kbq-select__trigger_empty) .kbq-select__match-container{flex-direction:column}.kbq-select .kbq-select__trigger.kbq-select__trigger_multiline:not(.kbq-select__trigger_empty) .kbq-select__matcher{max-width:100%;padding:calc(var(--kbq-select-size-multiple-padding-vertical) - var(--kbq-size-border-width)) var(--kbq-select-size-multiple-padding-right) calc(var(--kbq-select-size-multiple-padding-vertical) - var(--kbq-size-border-width)) var(--kbq-select-size-multiple-padding-left)}.kbq-select .kbq-select__trigger.kbq-select__trigger_multiline:not(.kbq-select__trigger_empty) .kbq-select__cleaner,.kbq-select .kbq-select__trigger.kbq-select__trigger_multiline:not(.kbq-select__trigger_empty) .kbq-select__arrow-wrapper{align-self:flex-start;align-items:center;height:calc(var(--kbq-form-field-size-height) - var(--kbq-size-s));min-width:var(--kbq-form-field-size-addon-width)}.kbq-select .kbq-select__trigger.kbq-select__trigger_multiline:not(.kbq-select__trigger_empty) .kbq-select__multiline-match-list{display:flex;flex-direction:row;flex-wrap:wrap;margin-right:var(--kbq-select-size-multiple-content-gap, var(--kbq-size-xxs));gap:var(--kbq-size-xxs)}.kbq-select .kbq-select__match-container{width:100%;text-overflow:ellipsis;overflow:hidden}.kbq-select .kbq-select__match-container .kbq-select__match-hidden-text{flex:0 0 40px;align-self:center;padding-left:4px;padding-right:var(--kbq-select-size-multiple-content-gap, var(--kbq-size-xxs));text-align:right}.kbq-select kbq-select-trigger,.kbq-select [kbq-select-trigger]{width:100%}.kbq-select .kbq-select__arrow-wrapper{display:flex;align-self:center;justify-content:center;min-width:var(--kbq-form-field-size-addon-width)}.kbq-form-field-appearance-fill .kbq-select .kbq-select__arrow-wrapper,.kbq-form-field-appearance-standard .kbq-select .kbq-select__arrow-wrapper{transform:translateY(-50%)}.kbq-form-field-appearance-outline .kbq-select .kbq-select__arrow-wrapper{transform:translateY(-25%)}.kbq-disabled.kbq-select .kbq-select__trigger{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.kbq-select__panel{min-width:100%;overflow:hidden;border-radius:var(--kbq-select-panel-size-border-radius, var(--kbq-size-border-radius))}.kbq-select__panel .kbq-option{font-size:inherit}.kbq-select__panel .kbq-select__no-options-message{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:row;align-items:center;justify-content:center;box-sizing:border-box;position:relative;margin-bottom:var(--kbq-size-3xl);margin-top:var(--kbq-size-3xl);max-width:100%;height:var(--kbq-option-size-height, var(--kbq-size-3xl));cursor:default;outline:none;padding-left:var(--kbq-option-size-horizontal-padding, var(--kbq-size-m));padding-right:var(--kbq-option-size-horizontal-padding, var(--kbq-size-m));border:var(--kbq-option-size-border-width, var(--kbq-size-3xs)) solid transparent}.kbq-select__panel .kbq-select__search-container{padding:var(--kbq-size-xxs);border-bottom-width:1px;border-bottom-style:solid}.kbq-select__content{max-height:var(--kbq-select-panel-size-max-height, 256px);padding:var(--kbq-size-xxs);overflow:hidden auto}.kbq-select__panel .kbq-select__footer{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;align-items:center;box-sizing:border-box;min-height:40px;border-top-width:1px;border-top-style:solid;padding:var(--kbq-size-xxs) var(--kbq-size-l)}.kbq-select__content{box-sizing:initial}.kbq-select__content .kbq-option{position:relative}.kbq-select__content .kbq-option:before,.kbq-select__content .kbq-option:after{position:absolute;content:\"\";width:var(--kbq-size-xxs);height:calc(100% + var(--kbq-size-3xs) * 2)}.kbq-select__content .kbq-option:before{right:calc(100% + var(--kbq-size-3xs))}.kbq-select__content .kbq-option:after{left:calc(100% + var(--kbq-size-3xs))}.kbq-select__content:not(:has(>.kbq-select__no-options-message)) .cdk-virtual-scroll-viewport{min-height:var(--kbq-select-panel-size-max-height, 256px);max-height:var(--kbq-select-panel-size-max-height, 256px)}.kbq-select__content:not(:has(>.kbq-select__no-options-message)) .cdk-virtual-scroll-viewport.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{max-width:100%}.kbq-form-field-type-select:not(.kbq-disabled) .kbq-form-field-flex{cursor:pointer}.kbq-select{color:var(--kbq-foreground-contrast)}.kbq-select.kbq-control_has-validate-directive.ng-invalid,.kbq-select.kbq-invalid{color:var(--kbq-foreground-error)}.kbq-select.kbq-control_has-validate-directive.ng-invalid .kbq-select__placeholder,.kbq-select.kbq-invalid .kbq-select__placeholder{color:var(--kbq-form-field-states-error-placeholder)}.kbq-select.kbq-disabled{color:var(--kbq-states-foreground-disabled)}.kbq-select.kbq-disabled .kbq-select__placeholder{color:var(--kbq-form-field-states-disabled-placeholder)}.kbq-select__placeholder{text-overflow:ellipsis;color:var(--kbq-form-field-default-placeholder)}.kbq-select__panel{box-shadow:var(--kbq-select-panel-dropdown-shadow);background:var(--kbq-select-panel-dropdown-background)}.kbq-select__panel .kbq-select__footer{border-color:var(--kbq-divider-color, var(--kbq-line-contrast-less))}.kbq-select__search-container{border-bottom-color:var(--kbq-divider-color, var(--kbq-line-contrast-less))}.kbq-select__no-options-message{color:var(--kbq-foreground-contrast-secondary)}.kbq-select,.kbq-select__panel{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)}\n", ".kbq-select,.kbq-tree-select,.kbq-select__panel{--kbq-select-size-single-padding-left: 0;--kbq-select-size-single-padding-right: 0;--kbq-select-size-single-padding-vertical: var(--kbq-size-xs);--kbq-select-size-single-content-gap: var(--kbq-size-xxs);--kbq-select-size-multiple-padding-left: 0;--kbq-select-size-multiple-padding-right: 0;--kbq-select-size-multiple-padding-vertical: var(--kbq-size-xxs);--kbq-select-size-multiple-content-gap: var(--kbq-size-xxs);--kbq-select-panel-size-border-radius: var(--kbq-size-border-radius);--kbq-select-panel-size-max-height: 256px;--kbq-select-panel-dropdown-background: var(--kbq-background-card);--kbq-select-panel-dropdown-shadow: var(--kbq-shadow-popup)}\n"], dependencies: [{ kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: KbqTag, selector: "kbq-tag, [kbq-tag], kbq-basic-tag, [kbq-basic-tag]", inputs: ["editable", "preventEditSubmit", "selected", "value", "selectable", "removable", "tabindex", "disabled"], outputs: ["editChange", "selectionChange", "destroyed", "removed"], exportAs: ["kbqTag"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"], exportAs: ["cdkMonitorFocus"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i6.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }], animations: [
|
|
1567
|
+
], queries: [{ propertyName: "footer", first: true, predicate: KbqSelectFooter, descendants: true, read: ElementRef, isSignal: true }, { propertyName: "cdkVirtualForOf", first: true, predicate: CdkVirtualForOf, descendants: true, isSignal: true }, { propertyName: "virtualScrollViewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true, isSignal: true }, { propertyName: "customTrigger", first: true, predicate: KbqSelectTrigger, descendants: true, isSignal: true }, { propertyName: "customMatcher", first: true, predicate: KbqSelectMatcher, descendants: true, isSignal: true }, { propertyName: "customTagTemplateRef", first: true, predicate: ["kbqSelectTagContent"], descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "cleaner", first: true, predicate: ["kbqSelectCleaner"], descendants: true, isSignal: true }, { propertyName: "optionGroups", predicate: KbqOptgroup, isSignal: true }, { propertyName: "search", first: true, predicate: KbqSelectSearch, descendants: true, isSignal: true }, { propertyName: "searchEmpty", first: true, predicate: KbqSelectSearchEmptyResult, descendants: true, isSignal: true }, { propertyName: "options", predicate: KbqOption, descendants: true }], viewQueries: [{ propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true, isSignal: true }, { propertyName: "panel", first: true, predicate: ["panel"], descendants: true, isSignal: true }, { propertyName: "optionsContainer", first: true, predicate: ["optionsContainer"], descendants: true, isSignal: true }, { propertyName: "overlayDir", first: true, predicate: CdkConnectedOverlay, descendants: true }, { propertyName: "tags", predicate: KbqTag, descendants: true }], exportAs: ["kbqSelect"], usesInheritance: true, ngImport: i0, template: "<div\n #fallbackOverlayOrigin=\"cdkOverlayOrigin\"\n #trigger\n cdkOverlayOrigin\n class=\"kbq-select__trigger\"\n [class.kbq-select__trigger_empty]=\"empty\"\n [class.kbq-select__trigger_multiline]=\"multiline()\"\n [class.kbq-select__trigger_multiple]=\"multiple\"\n [class.kbq-select__trigger_single]=\"!multiple\"\n>\n @if (!!customMatcher()) {\n <ng-content select=\"kbq-select-matcher, [kbq-select-matcher]\" />\n } @else {\n <div class=\"kbq-select__matcher\">\n @if (empty) {\n <span class=\"kbq-select__placeholder\">\n {{ placeholder || '\\u00A0' }}\n </span>\n } @else {\n @if (!!customTrigger()) {\n <ng-content select=\"kbq-select-trigger, [kbq-select-trigger]\" />\n } @else {\n <div class=\"kbq-select__match-container\">\n @if (multiSelection) {\n <div\n [class.kbq-select__match-list]=\"!multiline()\"\n [class.kbq-select__multiline-match-list]=\"multiline()\"\n >\n @if (!customTagTemplateRef()) {\n @for (option of triggerValues; track option) {\n <kbq-tag\n [color]=\"colorForState\"\n [disabled]=\"option.disabled || disabled\"\n [selectable]=\"false\"\n >\n {{ option.viewValue }}\n @if (!option.disabled && !disabled) {\n <i\n kbq-icon=\"kbq-xmark-s_16\"\n kbqTagRemove\n (click)=\"onRemoveMatcherItem(option, $event)\"\n ></i>\n }\n </kbq-tag>\n }\n } @else {\n @for (option of triggerValues; track option) {\n <ng-container\n [ngTemplateOutlet]=\"$any(customTagTemplateRef())\"\n [ngTemplateOutletContext]=\"{ $implicit: option, select: this }\"\n />\n }\n }\n </div>\n\n @if (!multiline()) {\n <div\n class=\"kbq-select__match-hidden-text\"\n [style.display]=\"hiddenItems > 0 ? 'block' : 'none'\"\n >\n {{ hiddenItemsTextFormatter(hiddenItemsText, hiddenItems) }}\n </div>\n }\n } @else {\n <span class=\"kbq-select__matcher-text\">\n {{ triggerValue }}\n </span>\n }\n </div>\n }\n }\n\n @if (canShowCleaner) {\n <div\n class=\"kbq-select__cleaner\"\n (click)=\"clearValue($event)\"\n (keydown.enter)=\"clearValue($event)\"\n (keydown.space)=\"clearValue($event)\"\n >\n <ng-content select=\"kbq-cleaner\" />\n </div>\n }\n\n <div class=\"kbq-select__arrow-wrapper\">\n <i kbq-icon=\"kbq-chevron-down-s_16\" class=\"kbq-select__arrow\" [color]=\"colorForState\"></i>\n </div>\n </div>\n }\n</div>\n\n<ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayBackdropClass]=\"backdropClass()\"\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\"\n [cdkConnectedOverlayMinWidth]=\"overlayMinWidth\"\n [cdkConnectedOverlayOffsetY]=\"offsetY\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayOrigin]=\"overlayOrigin || fallbackOverlayOrigin\"\n [cdkConnectedOverlayPanelClass]=\"overlayPanelClass\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n [cdkConnectedOverlayWidth]=\"overlayWidth\"\n (attach)=\"onAttached()\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n>\n <div\n #panel\n cdkMonitorSubtreeFocus\n [class]=\"getPanelClasses()\"\n [style.font-size.px]=\"triggerFontSize\"\n [style.transformOrigin]=\"transformOrigin\"\n (click)=\"handleClick($event)\"\n (keydown)=\"handleKeydown($event)\"\n >\n @if (search() && shouldShowSearch()) {\n <div class=\"kbq-select__search-container\">\n <ng-content select=\"[kbqSelectSearch]\" />\n </div>\n }\n\n <div\n #optionsContainer\n class=\"kbq-select__content\"\n [class.kbq-scrollbar]=\"!withVirtualScroll\"\n [@fadeInContent]=\"'showing'\"\n (@fadeInContent.done)=\"panelDoneAnimatingStream.next($event.toState)\"\n >\n @if (isEmptySearchResult) {\n <ng-content select=\"[kbq-select-search-empty-result]\" />\n }\n <ng-content />\n </div>\n\n <ng-content select=\"kbq-select-footer,[kbq-select-footer]\" />\n </div>\n</ng-template>\n", styles: [".kbq-select{box-sizing:border-box;display:inline-block;width:100%;outline:none}.kbq-select .kbq-select__trigger{display:flex;box-sizing:border-box;position:relative;cursor:pointer;min-height:calc(var(--kbq-form-field-size-height) - var(--kbq-size-border-width) * 2)}.kbq-select .kbq-select__trigger:not(.kbq-select__trigger_multiline){height:calc(var(--kbq-form-field-size-height) - var(--kbq-size-border-width) * 2)}.kbq-select .kbq-select__trigger:not(.kbq-select__trigger_multiline) .kbq-select__matcher{overflow:hidden;white-space:nowrap}.kbq-select .kbq-select__matcher{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-grow:1;align-items:center}.kbq-select .kbq-select__matcher>span{flex:1;overflow:hidden}.kbq-select .kbq-select__trigger.kbq-select__trigger_single .kbq-select__matcher,.kbq-select .kbq-select__trigger.kbq-select__trigger_multiple.kbq-select__trigger_empty .kbq-select__matcher{padding:var(--kbq-select-size-single-padding-vertical) var(--kbq-select-size-single-padding-right) var(--kbq-select-size-single-padding-vertical) var(--kbq-select-size-single-padding-left)}.kbq-select .kbq-select__trigger.kbq-select__trigger_multiple:not(.kbq-select__trigger_empty) .kbq-select__matcher{padding:var(--kbq-select-size-multiple-padding-vertical) var(--kbq-select-size-multiple-padding-right) var(--kbq-select-size-multiple-padding-vertical) var(--kbq-select-size-multiple-padding-left)}.kbq-select .kbq-select__trigger.kbq-select__trigger_multiple:not(.kbq-select__trigger_empty) .kbq-select__matcher .kbq-select__match-container{display:flex}.kbq-select .kbq-select__trigger.kbq-select__trigger_multiple:not(.kbq-select__trigger_empty) .kbq-select__matcher .kbq-select__match-list{display:flex;flex-wrap:wrap;overflow:hidden;height:calc(var(--kbq-form-field-size-height) - var(--kbq-select-size-multiple-padding-vertical) * 2);max-height:calc(var(--kbq-form-field-size-height) - var(--kbq-select-size-multiple-padding-vertical) * 2);gap:var(--kbq-select-size-multiple-content-gap, var(--kbq-size-xxs));margin-right:var(--kbq-select-size-multiple-content-gap, var(--kbq-size-xxs))}.kbq-select .kbq-select__trigger.kbq-select__trigger_multiline:not(.kbq-select__trigger_empty) .kbq-select__match-container{flex-direction:column}.kbq-select .kbq-select__trigger.kbq-select__trigger_multiline:not(.kbq-select__trigger_empty) .kbq-select__matcher{max-width:100%;padding:calc(var(--kbq-select-size-multiple-padding-vertical) - var(--kbq-size-border-width)) var(--kbq-select-size-multiple-padding-right) calc(var(--kbq-select-size-multiple-padding-vertical) - var(--kbq-size-border-width)) var(--kbq-select-size-multiple-padding-left)}.kbq-select .kbq-select__trigger.kbq-select__trigger_multiline:not(.kbq-select__trigger_empty) .kbq-select__cleaner,.kbq-select .kbq-select__trigger.kbq-select__trigger_multiline:not(.kbq-select__trigger_empty) .kbq-select__arrow-wrapper{align-self:flex-start;align-items:center;height:calc(var(--kbq-form-field-size-height) - var(--kbq-size-s));min-width:var(--kbq-form-field-size-addon-width)}.kbq-select .kbq-select__trigger.kbq-select__trigger_multiline:not(.kbq-select__trigger_empty) .kbq-select__multiline-match-list{display:flex;flex-direction:row;flex-wrap:wrap;margin-right:var(--kbq-select-size-multiple-content-gap, var(--kbq-size-xxs));gap:var(--kbq-size-xxs)}.kbq-select .kbq-select__match-container{width:100%;text-overflow:ellipsis;overflow:hidden}.kbq-select .kbq-select__match-container .kbq-select__match-hidden-text{flex:0 0 40px;align-self:center;padding-left:4px;padding-right:var(--kbq-select-size-multiple-content-gap, var(--kbq-size-xxs));text-align:right}.kbq-select kbq-select-trigger,.kbq-select [kbq-select-trigger]{width:100%}.kbq-select .kbq-select__arrow-wrapper{display:flex;align-self:center;justify-content:center;min-width:var(--kbq-form-field-size-addon-width)}.kbq-form-field-appearance-fill .kbq-select .kbq-select__arrow-wrapper,.kbq-form-field-appearance-standard .kbq-select .kbq-select__arrow-wrapper{transform:translateY(-50%)}.kbq-form-field-appearance-outline .kbq-select .kbq-select__arrow-wrapper{transform:translateY(-25%)}.kbq-disabled.kbq-select .kbq-select__trigger{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.kbq-select__panel{min-width:100%;overflow:hidden;border-radius:var(--kbq-select-panel-size-border-radius, var(--kbq-size-border-radius))}.kbq-select__panel .kbq-option{font-size:inherit}.kbq-select__panel .kbq-select__no-options-message{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:row;align-items:center;justify-content:center;box-sizing:border-box;position:relative;margin-bottom:var(--kbq-size-3xl);margin-top:var(--kbq-size-3xl);max-width:100%;height:var(--kbq-option-size-height, var(--kbq-size-3xl));cursor:default;outline:none;padding-left:var(--kbq-option-size-horizontal-padding, var(--kbq-size-m));padding-right:var(--kbq-option-size-horizontal-padding, var(--kbq-size-m));border:var(--kbq-option-size-border-width, var(--kbq-size-3xs)) solid transparent}.kbq-select__panel .kbq-select__search-container{padding:var(--kbq-size-xxs);border-bottom-width:1px;border-bottom-style:solid}.kbq-select__content{max-height:var(--kbq-select-panel-size-max-height, 256px);padding:var(--kbq-size-xxs);overflow:hidden auto}.kbq-select__panel .kbq-select__footer{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;align-items:center;box-sizing:border-box;min-height:40px;border-top-width:1px;border-top-style:solid;padding:var(--kbq-size-xxs) var(--kbq-size-l)}.kbq-select__content{box-sizing:initial}.kbq-select__content .kbq-option{position:relative}.kbq-select__content .kbq-option:before,.kbq-select__content .kbq-option:after{position:absolute;content:\"\";width:var(--kbq-size-xxs);height:calc(100% + var(--kbq-size-3xs) * 2)}.kbq-select__content .kbq-option:before{right:calc(100% + var(--kbq-size-3xs))}.kbq-select__content .kbq-option:after{left:calc(100% + var(--kbq-size-3xs))}.kbq-select__content:not(:has(>.kbq-select__no-options-message)) .cdk-virtual-scroll-viewport{min-height:var(--kbq-select-panel-size-max-height, 256px);max-height:var(--kbq-select-panel-size-max-height, 256px)}.kbq-select__content:not(:has(>.kbq-select__no-options-message)) .cdk-virtual-scroll-viewport.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{max-width:100%}.kbq-form-field-type-select:not(.kbq-disabled) .kbq-form-field-flex{cursor:pointer}.kbq-select{color:var(--kbq-foreground-contrast)}.kbq-select.kbq-control_has-validate-directive.ng-invalid,.kbq-select.kbq-invalid{color:var(--kbq-foreground-error)}.kbq-select.kbq-control_has-validate-directive.ng-invalid .kbq-select__placeholder,.kbq-select.kbq-invalid .kbq-select__placeholder{color:var(--kbq-form-field-states-error-placeholder)}.kbq-select.kbq-disabled{color:var(--kbq-states-foreground-disabled)}.kbq-select.kbq-disabled .kbq-select__placeholder{color:var(--kbq-form-field-states-disabled-placeholder)}.kbq-select__placeholder{text-overflow:ellipsis;color:var(--kbq-form-field-default-placeholder)}.kbq-select__panel{box-shadow:var(--kbq-select-panel-dropdown-shadow);background:var(--kbq-select-panel-dropdown-background)}.kbq-select__panel .kbq-select__footer{border-color:var(--kbq-divider-color, var(--kbq-line-contrast-less))}.kbq-select__search-container{border-bottom-color:var(--kbq-divider-color, var(--kbq-line-contrast-less))}.kbq-select__no-options-message{color:var(--kbq-foreground-contrast-secondary)}.kbq-select,.kbq-select__panel{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)}\n", ".kbq-select,.kbq-tree-select,.kbq-select__panel{--kbq-select-size-single-padding-left: 0;--kbq-select-size-single-padding-right: 0;--kbq-select-size-single-padding-vertical: var(--kbq-size-xs);--kbq-select-size-single-content-gap: var(--kbq-size-xxs);--kbq-select-size-multiple-padding-left: 0;--kbq-select-size-multiple-padding-right: 0;--kbq-select-size-multiple-padding-vertical: var(--kbq-size-xxs);--kbq-select-size-multiple-content-gap: var(--kbq-size-xxs);--kbq-select-panel-size-border-radius: var(--kbq-size-border-radius);--kbq-select-panel-size-max-height: 256px;--kbq-select-panel-dropdown-background: var(--kbq-background-card);--kbq-select-panel-dropdown-shadow: var(--kbq-shadow-popup)}\n"], dependencies: [{ kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: KbqTag, selector: "kbq-tag, [kbq-tag], kbq-basic-tag, [kbq-basic-tag]", inputs: ["editable", "preventEditSubmit", "selected", "value", "selectable", "removable", "tabindex", "disabled"], outputs: ["editChange", "selectionChange", "destroyed", "removed"], exportAs: ["kbqTag"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"], exportAs: ["cdkMonitorFocus"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i1$1.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }], animations: [
|
|
1445
1568
|
kbqSelectAnimations.transformPanel,
|
|
1446
1569
|
kbqSelectAnimations.fadeInContent
|
|
1447
1570
|
], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
1448
1571
|
}
|
|
1449
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1572
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqSelect, decorators: [{
|
|
1450
1573
|
type: Component,
|
|
1451
1574
|
args: [{ selector: 'kbq-select', imports: [
|
|
1452
1575
|
CdkOverlayOrigin,
|
|
@@ -1454,14 +1577,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
|
|
|
1454
1577
|
NgTemplateOutlet,
|
|
1455
1578
|
CdkMonitorFocus,
|
|
1456
1579
|
CdkConnectedOverlay,
|
|
1457
|
-
NgClass,
|
|
1458
1580
|
KbqIconModule
|
|
1459
|
-
],
|
|
1581
|
+
], providers: [
|
|
1582
|
+
{ provide: KbqFormFieldControl, useExisting: KbqSelect },
|
|
1583
|
+
{ provide: KBQ_OPTION_PARENT_COMPONENT, useExisting: KbqSelect },
|
|
1584
|
+
{ provide: KBQ_PARENT_POPUP, useExisting: KbqSelect }
|
|
1585
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
1460
1586
|
'[attr.tabindex]': 'tabIndex',
|
|
1461
1587
|
'[attr.disabled]': 'disabled || null',
|
|
1462
1588
|
class: 'kbq-select',
|
|
1463
1589
|
'[class.kbq-select_multiple]': 'multiple',
|
|
1464
|
-
'[class.kbq-select_multiline]': 'multiline',
|
|
1590
|
+
'[class.kbq-select_multiline]': 'multiline()',
|
|
1465
1591
|
'[class.kbq-disabled]': 'disabled',
|
|
1466
1592
|
'[class.kbq-invalid]': 'errorState',
|
|
1467
1593
|
'(click)': 'toggle()',
|
|
@@ -1471,118 +1597,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
|
|
|
1471
1597
|
}, animations: [
|
|
1472
1598
|
kbqSelectAnimations.transformPanel,
|
|
1473
1599
|
kbqSelectAnimations.fadeInContent
|
|
1474
|
-
], providers: [
|
|
1475
|
-
|
|
1476
|
-
{ provide: KBQ_OPTION_PARENT_COMPONENT, useExisting: KbqSelect },
|
|
1477
|
-
{ provide: KBQ_PARENT_POPUP, useExisting: KbqSelect }
|
|
1478
|
-
], template: "<div\n #fallbackOverlayOrigin=\"cdkOverlayOrigin\"\n #trigger\n cdkOverlayOrigin\n class=\"kbq-select__trigger\"\n [class.kbq-select__trigger_empty]=\"empty\"\n [class.kbq-select__trigger_multiline]=\"multiline\"\n [class.kbq-select__trigger_multiple]=\"multiple\"\n [class.kbq-select__trigger_single]=\"!multiple\"\n>\n @if (!!customMatcher) {\n <ng-content select=\"kbq-select-matcher, [kbq-select-matcher]\" />\n } @else {\n <div class=\"kbq-select__matcher\">\n @if (empty) {\n <span class=\"kbq-select__placeholder\">\n {{ placeholder || '\\u00A0' }}\n </span>\n } @else {\n @if (!!customTrigger) {\n <ng-content select=\"kbq-select-trigger, [kbq-select-trigger]\" />\n } @else {\n <div class=\"kbq-select__match-container\">\n @if (multiSelection) {\n <div\n [class.kbq-select__match-list]=\"!multiline\"\n [class.kbq-select__multiline-match-list]=\"multiline\"\n >\n @if (!customTagTemplateRef) {\n @for (option of triggerValues; track option) {\n <kbq-tag\n [color]=\"colorForState\"\n [disabled]=\"option.disabled || disabled\"\n [selectable]=\"false\"\n >\n {{ option.viewValue }}\n @if (!option.disabled && !disabled) {\n <i\n kbq-icon=\"kbq-xmark-s_16\"\n kbqTagRemove\n (click)=\"onRemoveMatcherItem(option, $event)\"\n ></i>\n }\n </kbq-tag>\n }\n }\n @if (customTagTemplateRef) {\n @for (option of triggerValues; track option) {\n <ng-container\n [ngTemplateOutlet]=\"$any(customTagTemplateRef)\"\n [ngTemplateOutletContext]=\"{ $implicit: option, select: this }\"\n />\n }\n }\n </div>\n\n @if (!multiline) {\n <div\n class=\"kbq-select__match-hidden-text\"\n [style.display]=\"hiddenItems > 0 ? 'block' : 'none'\"\n >\n {{ hiddenItemsTextFormatter(hiddenItemsText, hiddenItems) }}\n </div>\n }\n } @else {\n <span class=\"kbq-select__matcher-text\">\n {{ triggerValue }}\n </span>\n }\n </div>\n }\n }\n\n @if (canShowCleaner) {\n <div\n class=\"kbq-select__cleaner\"\n (click)=\"clearValue($event)\"\n (keydown.enter)=\"clearValue($event)\"\n (keydown.space)=\"clearValue($event)\"\n >\n <ng-content select=\"kbq-cleaner\" />\n </div>\n }\n\n <div class=\"kbq-select__arrow-wrapper\">\n <i kbq-icon=\"kbq-chevron-down-s_16\" class=\"kbq-select__arrow\" [color]=\"colorForState\"></i>\n </div>\n </div>\n }\n</div>\n\n<ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayBackdropClass]=\"backdropClass\"\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\"\n [cdkConnectedOverlayMinWidth]=\"overlayMinWidth\"\n [cdkConnectedOverlayOffsetY]=\"offsetY\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayOrigin]=\"overlayOrigin || fallbackOverlayOrigin\"\n [cdkConnectedOverlayPanelClass]=\"overlayPanelClass\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n [cdkConnectedOverlayWidth]=\"overlayWidth\"\n (attach)=\"onAttached()\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n>\n <div\n #panel\n class=\"kbq-select__panel {{ getPanelTheme() }}\"\n cdkMonitorSubtreeFocus\n [ngClass]=\"panelClass\"\n [style.font-size.px]=\"triggerFontSize\"\n [style.transformOrigin]=\"transformOrigin\"\n (click)=\"handleClick($event)\"\n (keydown)=\"handleKeydown($event)\"\n >\n @if (search && shouldShowSearch()) {\n <div class=\"kbq-select__search-container\">\n <ng-content select=\"[kbqSelectSearch]\" />\n </div>\n }\n\n <div\n #optionsContainer\n class=\"kbq-select__content\"\n [class.kbq-scrollbar]=\"!withVirtualScroll\"\n [@fadeInContent]=\"'showing'\"\n (@fadeInContent.done)=\"panelDoneAnimatingStream.next($event.toState)\"\n >\n @if (isEmptySearchResult) {\n <ng-content select=\"[kbq-select-search-empty-result]\" />\n }\n <ng-content />\n </div>\n\n <ng-content select=\"kbq-select-footer,[kbq-select-footer]\" />\n </div>\n</ng-template>\n", styles: [".kbq-select{box-sizing:border-box;display:inline-block;width:100%;outline:none}.kbq-select .kbq-select__trigger{display:flex;box-sizing:border-box;position:relative;cursor:pointer;min-height:calc(var(--kbq-form-field-size-height) - var(--kbq-size-border-width) * 2)}.kbq-select .kbq-select__trigger:not(.kbq-select__trigger_multiline){height:calc(var(--kbq-form-field-size-height) - var(--kbq-size-border-width) * 2)}.kbq-select .kbq-select__trigger:not(.kbq-select__trigger_multiline) .kbq-select__matcher{overflow:hidden;white-space:nowrap}.kbq-select .kbq-select__matcher{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-grow:1;align-items:center}.kbq-select .kbq-select__matcher>span{flex:1;overflow:hidden}.kbq-select .kbq-select__trigger.kbq-select__trigger_single .kbq-select__matcher,.kbq-select .kbq-select__trigger.kbq-select__trigger_multiple.kbq-select__trigger_empty .kbq-select__matcher{padding:var(--kbq-select-size-single-padding-vertical) var(--kbq-select-size-single-padding-right) var(--kbq-select-size-single-padding-vertical) var(--kbq-select-size-single-padding-left)}.kbq-select .kbq-select__trigger.kbq-select__trigger_multiple:not(.kbq-select__trigger_empty) .kbq-select__matcher{padding:var(--kbq-select-size-multiple-padding-vertical) var(--kbq-select-size-multiple-padding-right) var(--kbq-select-size-multiple-padding-vertical) var(--kbq-select-size-multiple-padding-left)}.kbq-select .kbq-select__trigger.kbq-select__trigger_multiple:not(.kbq-select__trigger_empty) .kbq-select__matcher .kbq-select__match-container{display:flex}.kbq-select .kbq-select__trigger.kbq-select__trigger_multiple:not(.kbq-select__trigger_empty) .kbq-select__matcher .kbq-select__match-list{display:flex;flex-wrap:wrap;overflow:hidden;height:calc(var(--kbq-form-field-size-height) - var(--kbq-select-size-multiple-padding-vertical) * 2);max-height:calc(var(--kbq-form-field-size-height) - var(--kbq-select-size-multiple-padding-vertical) * 2);gap:var(--kbq-select-size-multiple-content-gap, var(--kbq-size-xxs));margin-right:var(--kbq-select-size-multiple-content-gap, var(--kbq-size-xxs))}.kbq-select .kbq-select__trigger.kbq-select__trigger_multiline:not(.kbq-select__trigger_empty) .kbq-select__match-container{flex-direction:column}.kbq-select .kbq-select__trigger.kbq-select__trigger_multiline:not(.kbq-select__trigger_empty) .kbq-select__matcher{max-width:100%;padding:calc(var(--kbq-select-size-multiple-padding-vertical) - var(--kbq-size-border-width)) var(--kbq-select-size-multiple-padding-right) calc(var(--kbq-select-size-multiple-padding-vertical) - var(--kbq-size-border-width)) var(--kbq-select-size-multiple-padding-left)}.kbq-select .kbq-select__trigger.kbq-select__trigger_multiline:not(.kbq-select__trigger_empty) .kbq-select__cleaner,.kbq-select .kbq-select__trigger.kbq-select__trigger_multiline:not(.kbq-select__trigger_empty) .kbq-select__arrow-wrapper{align-self:flex-start;align-items:center;height:calc(var(--kbq-form-field-size-height) - var(--kbq-size-s));min-width:var(--kbq-form-field-size-addon-width)}.kbq-select .kbq-select__trigger.kbq-select__trigger_multiline:not(.kbq-select__trigger_empty) .kbq-select__multiline-match-list{display:flex;flex-direction:row;flex-wrap:wrap;margin-right:var(--kbq-select-size-multiple-content-gap, var(--kbq-size-xxs));gap:var(--kbq-size-xxs)}.kbq-select .kbq-select__match-container{width:100%;text-overflow:ellipsis;overflow:hidden}.kbq-select .kbq-select__match-container .kbq-select__match-hidden-text{flex:0 0 40px;align-self:center;padding-left:4px;padding-right:var(--kbq-select-size-multiple-content-gap, var(--kbq-size-xxs));text-align:right}.kbq-select kbq-select-trigger,.kbq-select [kbq-select-trigger]{width:100%}.kbq-select .kbq-select__arrow-wrapper{display:flex;align-self:center;justify-content:center;min-width:var(--kbq-form-field-size-addon-width)}.kbq-form-field-appearance-fill .kbq-select .kbq-select__arrow-wrapper,.kbq-form-field-appearance-standard .kbq-select .kbq-select__arrow-wrapper{transform:translateY(-50%)}.kbq-form-field-appearance-outline .kbq-select .kbq-select__arrow-wrapper{transform:translateY(-25%)}.kbq-disabled.kbq-select .kbq-select__trigger{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.kbq-select__panel{min-width:100%;overflow:hidden;border-radius:var(--kbq-select-panel-size-border-radius, var(--kbq-size-border-radius))}.kbq-select__panel .kbq-option{font-size:inherit}.kbq-select__panel .kbq-select__no-options-message{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:row;align-items:center;justify-content:center;box-sizing:border-box;position:relative;margin-bottom:var(--kbq-size-3xl);margin-top:var(--kbq-size-3xl);max-width:100%;height:var(--kbq-option-size-height, var(--kbq-size-3xl));cursor:default;outline:none;padding-left:var(--kbq-option-size-horizontal-padding, var(--kbq-size-m));padding-right:var(--kbq-option-size-horizontal-padding, var(--kbq-size-m));border:var(--kbq-option-size-border-width, var(--kbq-size-3xs)) solid transparent}.kbq-select__panel .kbq-select__search-container{padding:var(--kbq-size-xxs);border-bottom-width:1px;border-bottom-style:solid}.kbq-select__content{max-height:var(--kbq-select-panel-size-max-height, 256px);padding:var(--kbq-size-xxs);overflow:hidden auto}.kbq-select__panel .kbq-select__footer{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;align-items:center;box-sizing:border-box;min-height:40px;border-top-width:1px;border-top-style:solid;padding:var(--kbq-size-xxs) var(--kbq-size-l)}.kbq-select__content{box-sizing:initial}.kbq-select__content .kbq-option{position:relative}.kbq-select__content .kbq-option:before,.kbq-select__content .kbq-option:after{position:absolute;content:\"\";width:var(--kbq-size-xxs);height:calc(100% + var(--kbq-size-3xs) * 2)}.kbq-select__content .kbq-option:before{right:calc(100% + var(--kbq-size-3xs))}.kbq-select__content .kbq-option:after{left:calc(100% + var(--kbq-size-3xs))}.kbq-select__content:not(:has(>.kbq-select__no-options-message)) .cdk-virtual-scroll-viewport{min-height:var(--kbq-select-panel-size-max-height, 256px);max-height:var(--kbq-select-panel-size-max-height, 256px)}.kbq-select__content:not(:has(>.kbq-select__no-options-message)) .cdk-virtual-scroll-viewport.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{max-width:100%}.kbq-form-field-type-select:not(.kbq-disabled) .kbq-form-field-flex{cursor:pointer}.kbq-select{color:var(--kbq-foreground-contrast)}.kbq-select.kbq-control_has-validate-directive.ng-invalid,.kbq-select.kbq-invalid{color:var(--kbq-foreground-error)}.kbq-select.kbq-control_has-validate-directive.ng-invalid .kbq-select__placeholder,.kbq-select.kbq-invalid .kbq-select__placeholder{color:var(--kbq-form-field-states-error-placeholder)}.kbq-select.kbq-disabled{color:var(--kbq-states-foreground-disabled)}.kbq-select.kbq-disabled .kbq-select__placeholder{color:var(--kbq-form-field-states-disabled-placeholder)}.kbq-select__placeholder{text-overflow:ellipsis;color:var(--kbq-form-field-default-placeholder)}.kbq-select__panel{box-shadow:var(--kbq-select-panel-dropdown-shadow);background:var(--kbq-select-panel-dropdown-background)}.kbq-select__panel .kbq-select__footer{border-color:var(--kbq-divider-color, var(--kbq-line-contrast-less))}.kbq-select__search-container{border-bottom-color:var(--kbq-divider-color, var(--kbq-line-contrast-less))}.kbq-select__no-options-message{color:var(--kbq-foreground-contrast-secondary)}.kbq-select,.kbq-select__panel{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)}\n", ".kbq-select,.kbq-tree-select,.kbq-select__panel{--kbq-select-size-single-padding-left: 0;--kbq-select-size-single-padding-right: 0;--kbq-select-size-single-padding-vertical: var(--kbq-size-xs);--kbq-select-size-single-content-gap: var(--kbq-size-xxs);--kbq-select-size-multiple-padding-left: 0;--kbq-select-size-multiple-padding-right: 0;--kbq-select-size-multiple-padding-vertical: var(--kbq-size-xxs);--kbq-select-size-multiple-content-gap: var(--kbq-size-xxs);--kbq-select-panel-size-border-radius: var(--kbq-size-border-radius);--kbq-select-panel-size-max-height: 256px;--kbq-select-panel-dropdown-background: var(--kbq-background-card);--kbq-select-panel-dropdown-shadow: var(--kbq-shadow-popup)}\n"] }]
|
|
1479
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i1$1.ErrorStateMatcher }, { type: i0.ElementRef }, { type: i2.OverlayContainer }, { type: i3.Directionality, decorators: [{
|
|
1480
|
-
type: Optional
|
|
1481
|
-
}] }, { type: i4.NgForm, decorators: [{
|
|
1482
|
-
type: Optional
|
|
1483
|
-
}] }, { type: i4.FormGroupDirective, decorators: [{
|
|
1484
|
-
type: Optional
|
|
1485
|
-
}] }, { type: i5.KbqFormField, decorators: [{
|
|
1486
|
-
type: Host
|
|
1487
|
-
}, {
|
|
1488
|
-
type: Optional
|
|
1489
|
-
}] }, { type: i4.NgControl, decorators: [{
|
|
1490
|
-
type: Self
|
|
1491
|
-
}, {
|
|
1492
|
-
type: Optional
|
|
1493
|
-
}] }, { type: undefined, decorators: [{
|
|
1494
|
-
type: Inject,
|
|
1495
|
-
args: [KBQ_SELECT_SCROLL_STRATEGY]
|
|
1496
|
-
}] }, { type: i1$1.KbqLocaleService, decorators: [{
|
|
1497
|
-
type: Optional
|
|
1498
|
-
}, {
|
|
1499
|
-
type: Inject,
|
|
1500
|
-
args: [KBQ_LOCALE_SERVICE]
|
|
1501
|
-
}] }], propDecorators: { trigger: [{
|
|
1502
|
-
type: ViewChild,
|
|
1503
|
-
args: ['trigger', { static: false }]
|
|
1504
|
-
}], panel: [{
|
|
1505
|
-
type: ViewChild,
|
|
1506
|
-
args: ['panel', { static: false }]
|
|
1507
|
-
}], optionsContainer: [{
|
|
1508
|
-
type: ViewChild,
|
|
1509
|
-
args: ['optionsContainer', { static: false }]
|
|
1510
|
-
}], overlayDir: [{
|
|
1600
|
+
], exportAs: 'kbqSelect', template: "<div\n #fallbackOverlayOrigin=\"cdkOverlayOrigin\"\n #trigger\n cdkOverlayOrigin\n class=\"kbq-select__trigger\"\n [class.kbq-select__trigger_empty]=\"empty\"\n [class.kbq-select__trigger_multiline]=\"multiline()\"\n [class.kbq-select__trigger_multiple]=\"multiple\"\n [class.kbq-select__trigger_single]=\"!multiple\"\n>\n @if (!!customMatcher()) {\n <ng-content select=\"kbq-select-matcher, [kbq-select-matcher]\" />\n } @else {\n <div class=\"kbq-select__matcher\">\n @if (empty) {\n <span class=\"kbq-select__placeholder\">\n {{ placeholder || '\\u00A0' }}\n </span>\n } @else {\n @if (!!customTrigger()) {\n <ng-content select=\"kbq-select-trigger, [kbq-select-trigger]\" />\n } @else {\n <div class=\"kbq-select__match-container\">\n @if (multiSelection) {\n <div\n [class.kbq-select__match-list]=\"!multiline()\"\n [class.kbq-select__multiline-match-list]=\"multiline()\"\n >\n @if (!customTagTemplateRef()) {\n @for (option of triggerValues; track option) {\n <kbq-tag\n [color]=\"colorForState\"\n [disabled]=\"option.disabled || disabled\"\n [selectable]=\"false\"\n >\n {{ option.viewValue }}\n @if (!option.disabled && !disabled) {\n <i\n kbq-icon=\"kbq-xmark-s_16\"\n kbqTagRemove\n (click)=\"onRemoveMatcherItem(option, $event)\"\n ></i>\n }\n </kbq-tag>\n }\n } @else {\n @for (option of triggerValues; track option) {\n <ng-container\n [ngTemplateOutlet]=\"$any(customTagTemplateRef())\"\n [ngTemplateOutletContext]=\"{ $implicit: option, select: this }\"\n />\n }\n }\n </div>\n\n @if (!multiline()) {\n <div\n class=\"kbq-select__match-hidden-text\"\n [style.display]=\"hiddenItems > 0 ? 'block' : 'none'\"\n >\n {{ hiddenItemsTextFormatter(hiddenItemsText, hiddenItems) }}\n </div>\n }\n } @else {\n <span class=\"kbq-select__matcher-text\">\n {{ triggerValue }}\n </span>\n }\n </div>\n }\n }\n\n @if (canShowCleaner) {\n <div\n class=\"kbq-select__cleaner\"\n (click)=\"clearValue($event)\"\n (keydown.enter)=\"clearValue($event)\"\n (keydown.space)=\"clearValue($event)\"\n >\n <ng-content select=\"kbq-cleaner\" />\n </div>\n }\n\n <div class=\"kbq-select__arrow-wrapper\">\n <i kbq-icon=\"kbq-chevron-down-s_16\" class=\"kbq-select__arrow\" [color]=\"colorForState\"></i>\n </div>\n </div>\n }\n</div>\n\n<ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayBackdropClass]=\"backdropClass()\"\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\"\n [cdkConnectedOverlayMinWidth]=\"overlayMinWidth\"\n [cdkConnectedOverlayOffsetY]=\"offsetY\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayOrigin]=\"overlayOrigin || fallbackOverlayOrigin\"\n [cdkConnectedOverlayPanelClass]=\"overlayPanelClass\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n [cdkConnectedOverlayWidth]=\"overlayWidth\"\n (attach)=\"onAttached()\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n>\n <div\n #panel\n cdkMonitorSubtreeFocus\n [class]=\"getPanelClasses()\"\n [style.font-size.px]=\"triggerFontSize\"\n [style.transformOrigin]=\"transformOrigin\"\n (click)=\"handleClick($event)\"\n (keydown)=\"handleKeydown($event)\"\n >\n @if (search() && shouldShowSearch()) {\n <div class=\"kbq-select__search-container\">\n <ng-content select=\"[kbqSelectSearch]\" />\n </div>\n }\n\n <div\n #optionsContainer\n class=\"kbq-select__content\"\n [class.kbq-scrollbar]=\"!withVirtualScroll\"\n [@fadeInContent]=\"'showing'\"\n (@fadeInContent.done)=\"panelDoneAnimatingStream.next($event.toState)\"\n >\n @if (isEmptySearchResult) {\n <ng-content select=\"[kbq-select-search-empty-result]\" />\n }\n <ng-content />\n </div>\n\n <ng-content select=\"kbq-select-footer,[kbq-select-footer]\" />\n </div>\n</ng-template>\n", styles: [".kbq-select{box-sizing:border-box;display:inline-block;width:100%;outline:none}.kbq-select .kbq-select__trigger{display:flex;box-sizing:border-box;position:relative;cursor:pointer;min-height:calc(var(--kbq-form-field-size-height) - var(--kbq-size-border-width) * 2)}.kbq-select .kbq-select__trigger:not(.kbq-select__trigger_multiline){height:calc(var(--kbq-form-field-size-height) - var(--kbq-size-border-width) * 2)}.kbq-select .kbq-select__trigger:not(.kbq-select__trigger_multiline) .kbq-select__matcher{overflow:hidden;white-space:nowrap}.kbq-select .kbq-select__matcher{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-grow:1;align-items:center}.kbq-select .kbq-select__matcher>span{flex:1;overflow:hidden}.kbq-select .kbq-select__trigger.kbq-select__trigger_single .kbq-select__matcher,.kbq-select .kbq-select__trigger.kbq-select__trigger_multiple.kbq-select__trigger_empty .kbq-select__matcher{padding:var(--kbq-select-size-single-padding-vertical) var(--kbq-select-size-single-padding-right) var(--kbq-select-size-single-padding-vertical) var(--kbq-select-size-single-padding-left)}.kbq-select .kbq-select__trigger.kbq-select__trigger_multiple:not(.kbq-select__trigger_empty) .kbq-select__matcher{padding:var(--kbq-select-size-multiple-padding-vertical) var(--kbq-select-size-multiple-padding-right) var(--kbq-select-size-multiple-padding-vertical) var(--kbq-select-size-multiple-padding-left)}.kbq-select .kbq-select__trigger.kbq-select__trigger_multiple:not(.kbq-select__trigger_empty) .kbq-select__matcher .kbq-select__match-container{display:flex}.kbq-select .kbq-select__trigger.kbq-select__trigger_multiple:not(.kbq-select__trigger_empty) .kbq-select__matcher .kbq-select__match-list{display:flex;flex-wrap:wrap;overflow:hidden;height:calc(var(--kbq-form-field-size-height) - var(--kbq-select-size-multiple-padding-vertical) * 2);max-height:calc(var(--kbq-form-field-size-height) - var(--kbq-select-size-multiple-padding-vertical) * 2);gap:var(--kbq-select-size-multiple-content-gap, var(--kbq-size-xxs));margin-right:var(--kbq-select-size-multiple-content-gap, var(--kbq-size-xxs))}.kbq-select .kbq-select__trigger.kbq-select__trigger_multiline:not(.kbq-select__trigger_empty) .kbq-select__match-container{flex-direction:column}.kbq-select .kbq-select__trigger.kbq-select__trigger_multiline:not(.kbq-select__trigger_empty) .kbq-select__matcher{max-width:100%;padding:calc(var(--kbq-select-size-multiple-padding-vertical) - var(--kbq-size-border-width)) var(--kbq-select-size-multiple-padding-right) calc(var(--kbq-select-size-multiple-padding-vertical) - var(--kbq-size-border-width)) var(--kbq-select-size-multiple-padding-left)}.kbq-select .kbq-select__trigger.kbq-select__trigger_multiline:not(.kbq-select__trigger_empty) .kbq-select__cleaner,.kbq-select .kbq-select__trigger.kbq-select__trigger_multiline:not(.kbq-select__trigger_empty) .kbq-select__arrow-wrapper{align-self:flex-start;align-items:center;height:calc(var(--kbq-form-field-size-height) - var(--kbq-size-s));min-width:var(--kbq-form-field-size-addon-width)}.kbq-select .kbq-select__trigger.kbq-select__trigger_multiline:not(.kbq-select__trigger_empty) .kbq-select__multiline-match-list{display:flex;flex-direction:row;flex-wrap:wrap;margin-right:var(--kbq-select-size-multiple-content-gap, var(--kbq-size-xxs));gap:var(--kbq-size-xxs)}.kbq-select .kbq-select__match-container{width:100%;text-overflow:ellipsis;overflow:hidden}.kbq-select .kbq-select__match-container .kbq-select__match-hidden-text{flex:0 0 40px;align-self:center;padding-left:4px;padding-right:var(--kbq-select-size-multiple-content-gap, var(--kbq-size-xxs));text-align:right}.kbq-select kbq-select-trigger,.kbq-select [kbq-select-trigger]{width:100%}.kbq-select .kbq-select__arrow-wrapper{display:flex;align-self:center;justify-content:center;min-width:var(--kbq-form-field-size-addon-width)}.kbq-form-field-appearance-fill .kbq-select .kbq-select__arrow-wrapper,.kbq-form-field-appearance-standard .kbq-select .kbq-select__arrow-wrapper{transform:translateY(-50%)}.kbq-form-field-appearance-outline .kbq-select .kbq-select__arrow-wrapper{transform:translateY(-25%)}.kbq-disabled.kbq-select .kbq-select__trigger{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.kbq-select__panel{min-width:100%;overflow:hidden;border-radius:var(--kbq-select-panel-size-border-radius, var(--kbq-size-border-radius))}.kbq-select__panel .kbq-option{font-size:inherit}.kbq-select__panel .kbq-select__no-options-message{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:row;align-items:center;justify-content:center;box-sizing:border-box;position:relative;margin-bottom:var(--kbq-size-3xl);margin-top:var(--kbq-size-3xl);max-width:100%;height:var(--kbq-option-size-height, var(--kbq-size-3xl));cursor:default;outline:none;padding-left:var(--kbq-option-size-horizontal-padding, var(--kbq-size-m));padding-right:var(--kbq-option-size-horizontal-padding, var(--kbq-size-m));border:var(--kbq-option-size-border-width, var(--kbq-size-3xs)) solid transparent}.kbq-select__panel .kbq-select__search-container{padding:var(--kbq-size-xxs);border-bottom-width:1px;border-bottom-style:solid}.kbq-select__content{max-height:var(--kbq-select-panel-size-max-height, 256px);padding:var(--kbq-size-xxs);overflow:hidden auto}.kbq-select__panel .kbq-select__footer{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;align-items:center;box-sizing:border-box;min-height:40px;border-top-width:1px;border-top-style:solid;padding:var(--kbq-size-xxs) var(--kbq-size-l)}.kbq-select__content{box-sizing:initial}.kbq-select__content .kbq-option{position:relative}.kbq-select__content .kbq-option:before,.kbq-select__content .kbq-option:after{position:absolute;content:\"\";width:var(--kbq-size-xxs);height:calc(100% + var(--kbq-size-3xs) * 2)}.kbq-select__content .kbq-option:before{right:calc(100% + var(--kbq-size-3xs))}.kbq-select__content .kbq-option:after{left:calc(100% + var(--kbq-size-3xs))}.kbq-select__content:not(:has(>.kbq-select__no-options-message)) .cdk-virtual-scroll-viewport{min-height:var(--kbq-select-panel-size-max-height, 256px);max-height:var(--kbq-select-panel-size-max-height, 256px)}.kbq-select__content:not(:has(>.kbq-select__no-options-message)) .cdk-virtual-scroll-viewport.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{max-width:100%}.kbq-form-field-type-select:not(.kbq-disabled) .kbq-form-field-flex{cursor:pointer}.kbq-select{color:var(--kbq-foreground-contrast)}.kbq-select.kbq-control_has-validate-directive.ng-invalid,.kbq-select.kbq-invalid{color:var(--kbq-foreground-error)}.kbq-select.kbq-control_has-validate-directive.ng-invalid .kbq-select__placeholder,.kbq-select.kbq-invalid .kbq-select__placeholder{color:var(--kbq-form-field-states-error-placeholder)}.kbq-select.kbq-disabled{color:var(--kbq-states-foreground-disabled)}.kbq-select.kbq-disabled .kbq-select__placeholder{color:var(--kbq-form-field-states-disabled-placeholder)}.kbq-select__placeholder{text-overflow:ellipsis;color:var(--kbq-form-field-default-placeholder)}.kbq-select__panel{box-shadow:var(--kbq-select-panel-dropdown-shadow);background:var(--kbq-select-panel-dropdown-background)}.kbq-select__panel .kbq-select__footer{border-color:var(--kbq-divider-color, var(--kbq-line-contrast-less))}.kbq-select__search-container{border-bottom-color:var(--kbq-divider-color, var(--kbq-line-contrast-less))}.kbq-select__no-options-message{color:var(--kbq-foreground-contrast-secondary)}.kbq-select,.kbq-select__panel{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)}\n", ".kbq-select,.kbq-tree-select,.kbq-select__panel{--kbq-select-size-single-padding-left: 0;--kbq-select-size-single-padding-right: 0;--kbq-select-size-single-padding-vertical: var(--kbq-size-xs);--kbq-select-size-single-content-gap: var(--kbq-size-xxs);--kbq-select-size-multiple-padding-left: 0;--kbq-select-size-multiple-padding-right: 0;--kbq-select-size-multiple-padding-vertical: var(--kbq-size-xxs);--kbq-select-size-multiple-content-gap: var(--kbq-size-xxs);--kbq-select-panel-size-border-radius: var(--kbq-size-border-radius);--kbq-select-panel-size-max-height: 256px;--kbq-select-panel-dropdown-background: var(--kbq-background-card);--kbq-select-panel-dropdown-shadow: var(--kbq-shadow-popup)}\n"] }]
|
|
1601
|
+
}], ctorParameters: () => [], propDecorators: { trigger: [{ type: i0.ViewChild, args: ['trigger', { isSignal: true }] }], panel: [{ type: i0.ViewChild, args: ['panel', { isSignal: true }] }], optionsContainer: [{ type: i0.ViewChild, args: ['optionsContainer', { isSignal: true }] }], overlayDir: [{
|
|
1511
1602
|
type: ViewChild,
|
|
1512
1603
|
args: [CdkConnectedOverlay, { static: false }]
|
|
1513
|
-
}], footer: [{
|
|
1514
|
-
type: ContentChild,
|
|
1515
|
-
args: [KbqSelectFooter, { static: false, read: ElementRef }]
|
|
1516
|
-
}], cdkVirtualForOf: [{
|
|
1517
|
-
type: ContentChild,
|
|
1518
|
-
args: [CdkVirtualForOf, { static: false }]
|
|
1519
|
-
}], virtualScrollViewport: [{
|
|
1520
|
-
type: ContentChild,
|
|
1521
|
-
args: [CdkVirtualScrollViewport, { static: false }]
|
|
1522
|
-
}], tags: [{
|
|
1604
|
+
}], footer: [{ type: i0.ContentChild, args: [i0.forwardRef(() => KbqSelectFooter), { ...{ read: ElementRef }, isSignal: true }] }], cdkVirtualForOf: [{ type: i0.ContentChild, args: [i0.forwardRef(() => CdkVirtualForOf), { isSignal: true }] }], virtualScrollViewport: [{ type: i0.ContentChild, args: [i0.forwardRef(() => CdkVirtualScrollViewport), { isSignal: true }] }], tags: [{
|
|
1523
1605
|
type: ViewChildren,
|
|
1524
1606
|
args: [KbqTag]
|
|
1525
|
-
}], customTrigger: [{
|
|
1526
|
-
type: ContentChild,
|
|
1527
|
-
args: [KbqSelectTrigger, { static: false }]
|
|
1528
|
-
}], customMatcher: [{
|
|
1529
|
-
type: ContentChild,
|
|
1530
|
-
args: [KbqSelectMatcher, { static: false }]
|
|
1531
|
-
}], customTagTemplateRef: [{
|
|
1532
|
-
type: ContentChild,
|
|
1533
|
-
args: ['kbqSelectTagContent', { static: false, read: TemplateRef }]
|
|
1534
|
-
}], cleaner: [{
|
|
1535
|
-
type: ContentChild,
|
|
1536
|
-
args: ['kbqSelectCleaner', { static: true }]
|
|
1537
|
-
}], options: [{
|
|
1607
|
+
}], customTrigger: [{ type: i0.ContentChild, args: [i0.forwardRef(() => KbqSelectTrigger), { isSignal: true }] }], customMatcher: [{ type: i0.ContentChild, args: [i0.forwardRef(() => KbqSelectMatcher), { isSignal: true }] }], customTagTemplateRef: [{ type: i0.ContentChild, args: ['kbqSelectTagContent', { ...{ read: TemplateRef }, isSignal: true }] }], cleaner: [{ type: i0.ContentChild, args: ['kbqSelectCleaner', { isSignal: true }] }], options: [{
|
|
1538
1608
|
type: ContentChildren,
|
|
1539
1609
|
args: [KbqOption, { descendants: true }]
|
|
1540
|
-
}], optionGroups: [{
|
|
1541
|
-
type: ContentChildren,
|
|
1542
|
-
args: [KbqOptgroup]
|
|
1543
|
-
}], search: [{
|
|
1544
|
-
type: ContentChild,
|
|
1545
|
-
args: [KbqSelectSearch, { static: false }]
|
|
1546
|
-
}], searchEmpty: [{
|
|
1547
|
-
type: ContentChild,
|
|
1548
|
-
args: [KbqSelectSearchEmptyResult, { static: false }]
|
|
1549
|
-
}], hiddenItemsText: [{
|
|
1550
|
-
type: Input
|
|
1551
|
-
}], showPreselectedValues: [{
|
|
1552
|
-
type: Input
|
|
1553
|
-
}], triggerValuesLimit: [{
|
|
1554
|
-
type: Input
|
|
1555
|
-
}], panelClass: [{
|
|
1610
|
+
}], optionGroups: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => KbqOptgroup), { isSignal: true }] }], search: [{ type: i0.ContentChild, args: [i0.forwardRef(() => KbqSelectSearch), { isSignal: true }] }], searchEmpty: [{ type: i0.ContentChild, args: [i0.forwardRef(() => KbqSelectSearchEmptyResult), { isSignal: true }] }], hiddenItemsText: [{
|
|
1556
1611
|
type: Input
|
|
1557
|
-
}], backdropClass: [{
|
|
1612
|
+
}], showPreselectedValues: [{ type: i0.Input, args: [{ isSignal: true, alias: "showPreselectedValues", required: false }] }], triggerValuesLimit: [{ type: i0.Input, args: [{ isSignal: true, alias: "triggerValuesLimit", required: false }] }], panelClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "panelClass", required: false }] }], backdropClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "backdropClass", required: false }] }], errorStateMatcher: [{
|
|
1558
1613
|
type: Input
|
|
1559
|
-
}],
|
|
1560
|
-
type: Input
|
|
1561
|
-
}], sortComparator: [{
|
|
1562
|
-
type: Input
|
|
1563
|
-
}], multiline: [{
|
|
1564
|
-
type: Input,
|
|
1565
|
-
args: [{ transform: booleanAttribute }]
|
|
1566
|
-
}], searchMinOptionsThreshold: [{
|
|
1614
|
+
}], sortComparator: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortComparator", required: false }] }], multiline: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiline", required: false }] }], searchMinOptionsThreshold: [{
|
|
1567
1615
|
type: Input
|
|
1568
1616
|
}], openedChange: [{
|
|
1569
1617
|
type: Output
|
|
1570
|
-
}], openedStream: [{
|
|
1618
|
+
}], beforeOpened: [{ type: i0.Output, args: ["beforeOpened"] }], openedStream: [{
|
|
1571
1619
|
type: Output,
|
|
1572
1620
|
args: ['opened']
|
|
1573
1621
|
}], closedStream: [{
|
|
1574
1622
|
type: Output,
|
|
1575
1623
|
args: ['closed']
|
|
1576
|
-
}], selectionChange: [{
|
|
1577
|
-
type: Output
|
|
1578
|
-
}], valueChange: [{
|
|
1579
|
-
type: Output
|
|
1580
|
-
}], scrolledToBottomOffset: [{
|
|
1581
|
-
type: Input,
|
|
1582
|
-
args: [{ transform: numberAttribute }]
|
|
1583
|
-
}], scrolledToBottom: [{
|
|
1584
|
-
type: Output
|
|
1585
|
-
}], hasBackdrop: [{
|
|
1624
|
+
}], selectionChange: [{ type: i0.Output, args: ["selectionChange"] }], onSelectAll: [{ type: i0.Output, args: ["onSelectAll"] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }], scrolledToBottomOffset: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrolledToBottomOffset", required: false }] }], scrolledToBottom: [{ type: i0.Output, args: ["scrolledToBottom"] }], hasBackdrop: [{
|
|
1586
1625
|
type: Input
|
|
1587
1626
|
}], placeholder: [{
|
|
1588
1627
|
type: Input
|
|
@@ -1593,9 +1632,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
|
|
|
1593
1632
|
args: [{ transform: booleanAttribute }]
|
|
1594
1633
|
}], compareWith: [{
|
|
1595
1634
|
type: Input
|
|
1596
|
-
}], virtualOptionFactory: [{
|
|
1597
|
-
type: Input
|
|
1598
|
-
}], selectAllHandler: [{
|
|
1635
|
+
}], virtualOptionFactory: [{ type: i0.Input, args: [{ isSignal: true, alias: "virtualOptionFactory", required: false }] }], selectAllToggle: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectAllToggle", required: false }] }], selectAllHandler: [{
|
|
1599
1636
|
type: Input
|
|
1600
1637
|
}], panelWidth: [{
|
|
1601
1638
|
type: Input
|
|
@@ -1617,8 +1654,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
|
|
|
1617
1654
|
}] } });
|
|
1618
1655
|
|
|
1619
1656
|
class KbqSelectModule {
|
|
1620
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1621
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
1657
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1658
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqSelectModule, imports: [OverlayModule,
|
|
1622
1659
|
KbqOptionModule,
|
|
1623
1660
|
KbqIconModule,
|
|
1624
1661
|
KbqTagsModule,
|
|
@@ -1628,7 +1665,6 @@ class KbqSelectModule {
|
|
|
1628
1665
|
KbqSelectMatcher,
|
|
1629
1666
|
KbqSelectTrigger,
|
|
1630
1667
|
KbqSelectSearchEmptyResult,
|
|
1631
|
-
NgClass,
|
|
1632
1668
|
NgTemplateOutlet,
|
|
1633
1669
|
A11yModule,
|
|
1634
1670
|
KbqSelect,
|
|
@@ -1649,7 +1685,7 @@ class KbqSelectModule {
|
|
|
1649
1685
|
KbqSelectError,
|
|
1650
1686
|
KbqSelectNoOptions,
|
|
1651
1687
|
KbqSelectErrorText] }); }
|
|
1652
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
1688
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqSelectModule, providers: [KBQ_SELECT_SCROLL_STRATEGY_PROVIDER], imports: [OverlayModule,
|
|
1653
1689
|
KbqOptionModule,
|
|
1654
1690
|
KbqIconModule,
|
|
1655
1691
|
KbqTagsModule,
|
|
@@ -1659,7 +1695,7 @@ class KbqSelectModule {
|
|
|
1659
1695
|
KbqSelectLoading, KbqOptionModule,
|
|
1660
1696
|
KbqFormFieldModule] }); }
|
|
1661
1697
|
}
|
|
1662
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1698
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqSelectModule, decorators: [{
|
|
1663
1699
|
type: NgModule,
|
|
1664
1700
|
args: [{
|
|
1665
1701
|
imports: [
|
|
@@ -1673,7 +1709,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
|
|
|
1673
1709
|
KbqSelectMatcher,
|
|
1674
1710
|
KbqSelectTrigger,
|
|
1675
1711
|
KbqSelectSearchEmptyResult,
|
|
1676
|
-
NgClass,
|
|
1677
1712
|
NgTemplateOutlet,
|
|
1678
1713
|
A11yModule,
|
|
1679
1714
|
KbqSelect,
|
|
@@ -1683,6 +1718,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
|
|
|
1683
1718
|
KbqSelectNoOptions,
|
|
1684
1719
|
KbqSelectErrorText
|
|
1685
1720
|
],
|
|
1721
|
+
providers: [KBQ_SELECT_SCROLL_STRATEGY_PROVIDER],
|
|
1686
1722
|
exports: [
|
|
1687
1723
|
KbqSelect,
|
|
1688
1724
|
KbqOptionTooltip,
|
|
@@ -1697,8 +1733,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
|
|
|
1697
1733
|
KbqSelectError,
|
|
1698
1734
|
KbqSelectNoOptions,
|
|
1699
1735
|
KbqSelectErrorText
|
|
1700
|
-
]
|
|
1701
|
-
providers: [KBQ_SELECT_SCROLL_STRATEGY_PROVIDER]
|
|
1736
|
+
]
|
|
1702
1737
|
}]
|
|
1703
1738
|
}] });
|
|
1704
1739
|
|