@koobiq/components 19.8.1 → 20.0.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/index.d.ts +238 -1
- package/actions-panel/index.d.ts +303 -5
- package/alert/index.d.ts +54 -1
- 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 +7 -0
- package/breadcrumbs/index.d.ts +243 -1
- package/button/_button-base.scss +20 -0
- package/button/_button-theme.scss +3 -11
- package/button/button.scss +0 -11
- package/button/index.d.ts +153 -1
- package/button-toggle/index.d.ts +155 -1
- package/checkbox/index.d.ts +159 -1
- package/clamped-text/index.d.ts +144 -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 +4405 -1
- package/core/option/_option-theme.scss +5 -14
- package/core/styles/_koobiq-theme.scss +1 -0
- package/core/styles/theming/_components-theming.scss +0 -62
- package/datepicker/index.d.ts +699 -1
- package/divider/index.d.ts +20 -1
- package/dl/index.d.ts +37 -1
- package/dropdown/_dropdown-theme.scss +4 -8
- package/dropdown/dropdown.scss +4 -0
- 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 +103 -114
- 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 +81 -86
- 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 +154 -163
- package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/koobiq-components-button-toggle.mjs +87 -86
- package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-button.mjs +209 -96
- 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 +42 -49
- package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
- package/fesm2022/koobiq-components-code-block.mjs +111 -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 +1635 -628
- 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 +27 -29
- package/fesm2022/koobiq-components-dl.mjs.map +1 -1
- package/fesm2022/koobiq-components-dropdown.mjs +202 -167
- 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 +135 -234
- package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
- package/fesm2022/koobiq-components-filter-bar.mjs +321 -561
- package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
- 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 +65 -60
- 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 +105 -114
- package/fesm2022/koobiq-components-list.mjs.map +1 -1
- package/fesm2022/koobiq-components-loader-overlay.mjs +37 -44
- 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 +169 -163
- package/fesm2022/koobiq-components-modal.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +162 -164
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-notification-center.mjs +65 -203
- package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-overflow-items.mjs +36 -36
- package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
- package/fesm2022/koobiq-components-popover.mjs +95 -86
- 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 +94 -80
- 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 +249 -234
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidebar.mjs +59 -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 +12 -12
- package/fesm2022/koobiq-components-skeleton.mjs.map +1 -1
- package/fesm2022/koobiq-components-split-button.mjs +27 -20
- package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-splitter.mjs +110 -96
- package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
- package/fesm2022/koobiq-components-table.mjs +21 -23
- package/fesm2022/koobiq-components-table.mjs.map +1 -1
- package/fesm2022/koobiq-components-tabs.mjs +269 -275
- package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
- package/fesm2022/koobiq-components-tags.mjs +177 -267
- package/fesm2022/koobiq-components-tags.mjs.map +1 -1
- package/fesm2022/koobiq-components-textarea.mjs +37 -56
- package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
- package/fesm2022/koobiq-components-time-range.mjs +64 -65
- 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 +52 -58
- package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
- package/fesm2022/koobiq-components-title.mjs +23 -30
- 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 +91 -119
- package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
- package/fesm2022/koobiq-components-top-bar.mjs +25 -23
- package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree-select.mjs +227 -227
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree.mjs +217 -209
- package/fesm2022/koobiq-components-tree.mjs.map +1 -1
- package/fesm2022/koobiq-components-username.mjs +48 -48
- package/fesm2022/koobiq-components-username.mjs.map +1 -1
- package/file-upload/index.d.ts +574 -1
- package/filter-bar/_filter-bar-theme.scss +0 -4
- package/filter-bar/index.d.ts +796 -1
- 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 +171 -2
- package/input/index.d.ts +339 -1
- package/link/index.d.ts +56 -1
- package/list/index.d.ts +220 -1
- package/loader-overlay/index.d.ts +57 -1
- package/markdown/index.d.ts +68 -1
- package/modal/_modal-theme.scss +0 -8
- package/modal/index.d.ts +311 -1
- package/navbar/index.d.ts +304 -1
- package/navbar/navbar-item.scss +0 -9
- package/notification-center/_notification-center-theme.scss +1 -2
- package/notification-center/index.d.ts +237 -1
- package/notification-center/notification-center.scss +3 -36
- package/notification-center/notification-item.scss +1 -1
- package/overflow-items/index.d.ts +161 -2
- package/package.json +9 -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-spinner/index.d.ts +37 -1
- package/radio/index.d.ts +207 -1
- package/resizer/index.d.ts +85 -2
- package/schematics/collection.json +5 -0
- package/schematics/migrations/css-selectors/index.js +1 -1
- package/schematics/migrations/deprecated-icons/index.js +1 -1
- 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 +10 -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 +693 -1
- package/sidebar/index.d.ts +92 -1
- package/sidepanel/index.d.ts +263 -1
- package/sidepanel/sidepanel.scss +0 -8
- package/skeleton/index.d.ts +26 -2
- package/split-button/index.d.ts +46 -1
- package/splitter/index.d.ts +141 -1
- package/table/index.d.ts +23 -1
- package/tabs/_tabs-common.scss +27 -0
- package/tabs/_tabs-theme.scss +2 -2
- package/tabs/index.d.ts +645 -1
- package/tags/index.d.ts +706 -1
- package/textarea/index.d.ts +134 -1
- package/time-range/index.d.ts +310 -7
- package/timepicker/index.d.ts +193 -1
- package/timezone/index.d.ts +122 -1
- package/title/index.d.ts +41 -1
- package/toast/index.d.ts +164 -1
- package/toggle/index.d.ts +84 -1
- package/tooltip/index.d.ts +163 -1
- package/top-bar/index.d.ts +33 -1
- package/tree/_tree-theme.scss +4 -0
- package/tree/index.d.ts +718 -1
- package/tree/tree-option.scss +20 -7
- package/tree-select/_tree-select-theme.scss +39 -0
- package/tree-select/index.d.ts +377 -1
- package/username/index.d.ts +176 -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 -84
- 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 -127
- 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.component.d.ts +0 -59
- package/button/button.dropdown-trigger.directive.d.ts +0 -14
- package/button/button.module.d.ts +0 -12
- package/button/public-api.d.ts +0 -4
- 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 -156
- package/dropdown/dropdown.component.d.ts +0 -126
- 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 -32
- package/tabs/tab-label-wrapper.directive.d.ts +0 -29
- package/tabs/tab-label.directive.d.ts +0 -9
- package/tabs/tab-nav-bar.d.ts +0 -91
- package/tabs/tab.component.d.ts +0 -68
- 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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"koobiq-components-core.mjs","sources":["../../../packages/components/core/animation/animation.ts","../../../packages/components/core/animation/fade-animations.ts","../../../packages/components/core/animation/select-animations.ts","../../../packages/components/core/common-behaviors/clipboard.ts","../../../packages/components/core/common-behaviors/color.ts","../../../packages/components/core/tokens/window.ts","../../../packages/components/core/common-behaviors/common-module.ts","../../../packages/components/core/common-behaviors/disabled.ts","../../../packages/components/core/common-behaviors/error-state.ts","../../../packages/components/core/utils/dom.ts","../../../packages/components/core/utils/utils.ts","../../../packages/components/core/common-behaviors/hover.ts","../../../packages/components/core/common-behaviors/read-state.ts","../../../packages/components/core/common-behaviors/tabindex.ts","../../../packages/components/core/common-behaviors/index.ts","../../../packages/components/core/datetime/date-adapter.ts","../../../packages/components/core/datetime/date-formats.ts","../../../packages/components/core/error/error-state-matcher.ts","../../../packages/components/core/form-field/field-sizing-content.ts","../../../packages/components/core/form-field/form-field-ref.ts","../../../packages/components/core/locales/en-US.ts","../../../packages/components/core/locales/es-LA.ts","../../../packages/components/core/locales/pt-BR.ts","../../../packages/components/core/locales/ru-RU.ts","../../../packages/components/core/locales/tk-TM.ts","../../../packages/components/core/locales/formatters.ts","../../../packages/components/core/locales/locale-service.ts","../../../packages/components/core/locales/locale-service.module.ts","../../../packages/components/core/formatters/date/formatter.ts","../../../packages/components/core/formatters/date/formatter.pipe.ts","../../../packages/components/core/formatters/filesize/config.ts","../../../packages/components/core/formatters/number/formatter.ts","../../../packages/components/core/formatters/filesize/size.ts","../../../packages/components/core/formatters/filesize/formatter.ts","../../../packages/components/core/formatters/index.ts","../../../packages/components/core/forms/forms.directive.ts","../../../packages/components/core/forms/forms-module.ts","../../../packages/components/core/forms/validators.ts","../../../packages/components/core/highlight/highlight.pipe.ts","../../../packages/components/core/highlight/index.ts","../../../packages/components/core/line/line.ts","../../../packages/components/core/navbar/rectangle-item.ts","../../../packages/components/core/option/action.ts","../../../packages/components/core/option/action-container.ts","../../../packages/components/core/option/optgroup.ts","../../../packages/components/core/option/optgroup.html","../../../packages/components/core/selection/constants.ts","../../../packages/components/core/selection/pseudo-checkbox/pseudo-checkbox.ts","../../../packages/components/core/selection/pseudo-checkbox/pseudo-checkbox.partial.html","../../../packages/components/core/selection/pseudo-checkbox/pseudo-checkbox.module.ts","../../../packages/components/core/title/title-text-ref.ts","../../../packages/components/core/option/option.ts","../../../packages/components/core/option/option.html","../../../packages/components/core/option/option-module.ts","../../../packages/components/core/overlay/overlay-position-map.ts","../../../packages/components/core/pop-up/constants.ts","../../../packages/components/core/pop-up/focus-trap-strategy.ts","../../../packages/components/core/pop-up/pop-up.ts","../../../packages/components/core/pop-up/pop-up-styles.ts","../../../packages/components/core/pop-up/pop-up-trigger.ts","../../../packages/components/core/select/constants.ts","../../../packages/components/core/select/common.ts","../../../packages/components/core/select/errors.ts","../../../packages/components/core/select/events.ts","../../../packages/components/core/services/measure-scrollbar.service.ts","../../../packages/components/core/services/theme.service.ts","../../../packages/components/core/validation/validation.ts","../../../packages/components/core/version.ts","../../../packages/components/core/koobiq-components-core.ts"],"sourcesContent":["/**\n * @deprecated Will be removed in next major release. Use `KbqAnimationCurves` instead.\n *\n * @docs-private\n */\nexport enum AnimationCurves {\n StandardCurve = 'cubic-bezier(0.4,0.0,0.2,1)',\n DecelerationCurve = 'cubic-bezier(0.0,0.0,0.2,1)',\n AccelerationCurve = 'cubic-bezier(0.4,0.0,1,1)',\n SharpCurve = 'cubic-bezier(0.4,0.0,0.6,1)'\n}\n\n/**\n * Koobiq components animation curves\n *\n * @docs-private\n */\nexport enum KbqAnimationCurves {\n StandardCurve = 'cubic-bezier(0.4,0.0,0.2,1)',\n DecelerationCurve = 'cubic-bezier(0.0,0.0,0.2,1)',\n AccelerationCurve = 'cubic-bezier(0.4,0.0,1,1)',\n SharpCurve = 'cubic-bezier(0.4,0.0,0.6,1)',\n EaseInOut = 'ease-in-out',\n EaseInOutQuad = 'cubic-bezier(0.455,0.03,0.515,0.955)'\n}\n\n/**\n * Koobiq components animation durations\n *\n * @docs-private\n */\nexport enum KbqAnimationDurations {\n Long = '300ms',\n Complex = '250ms',\n Entering = '150ms',\n Exiting = '125ms',\n Rapid = '100ms',\n Instant = '50ms'\n}\n","import { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\n\nexport const fadeAnimation: AnimationTriggerMetadata = trigger('fadeAnimation', [\n state('void', style({ opacity: 0 })),\n state('true', style({ opacity: 1 })),\n state('false', style({ opacity: 0 })),\n transition('* => true', animate('150ms cubic-bezier(0.0, 0.0, 0.2, 1)')),\n transition('* => void', animate('150ms cubic-bezier(0.4, 0.0, 1, 1)'))\n]);\n","import { animate, AnimationTriggerMetadata, group, state, style, transition, trigger } from '@angular/animations';\n\n/**\n * The following are all the animations for the kbq-select component, with each\n * const containing the metadata for one animation.\n *\n */\nexport const kbqSelectAnimations: {\n readonly transformPanel: AnimationTriggerMetadata;\n readonly fadeInContent: AnimationTriggerMetadata;\n} = {\n /**\n * This animation transforms the select's overlay panel on and off the page.\n *\n * When the panel is attached to the DOM, it expands its width by the amount of padding, scales it\n * up to 100% on the Y axis, fades in its border, and translates slightly up and to the\n * side to ensure the option text correctly overlaps the trigger text.\n *\n * When the panel is removed from the DOM, it simply fades out linearly.\n */\n transformPanel: trigger('transformPanel', [\n state(\n 'void',\n style({\n transform: 'scaleY(0)',\n minWidth: '100%',\n opacity: 0\n })\n ),\n transition(\n 'void => *',\n group([\n animate('0ms cubic-bezier(0.25, 0.8, 0.25, 1)')\n ])\n ),\n transition('* => void', [\n animate('0ms 0ms linear', style({ opacity: 0 }))\n ])\n ]),\n\n /**\n * This animation fades in the background color and text content of the\n * select's options. It is time delayed to occur 100ms after the overlay\n * panel has transformed in.\n */\n fadeInContent: trigger('fadeInContent', [\n state('showing', style({ opacity: 1 })),\n transition('void => showing', [\n style({ opacity: 0 }),\n animate('0ms 0ms cubic-bezier(0.55, 0, 0.55, 0.2)')\n ])\n ])\n};\n\nexport const transformPanel = kbqSelectAnimations.transformPanel;\n\nexport const fadeInContent = kbqSelectAnimations.fadeInContent;\n","import { Directive, ElementRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[kbqNormalizeWhitespace]',\n host: {\n '(copy)': 'onCopy($event)'\n }\n})\nexport class KbqNormalizeWhitespace {\n /** @docs-private */\n protected readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * Replace thin-space with space on copy event\n */\n onCopy($event: ClipboardEvent) {\n const value =\n (this.elementRef.nativeElement as HTMLInputElement).value || this.elementRef.nativeElement.textContent;\n\n if ($event.type === 'copy' && value) {\n $event.preventDefault();\n $event.clipboardData?.setData('text', value?.replace(/\\u2009/g, ' '));\n }\n }\n}\n","import { Directive, ElementRef, inject, Input, isDevMode } from '@angular/core';\nimport { AbstractConstructor, Constructor } from './constructor';\n\nexport interface CanColor {\n color: KbqComponentColors | ThemePalette | string;\n}\n\n/** @docs-private */\nexport type CanColorCtor = Constructor<CanColor> & AbstractConstructor<CanColor>;\n\nexport interface HasElementRef {\n elementRef: ElementRef;\n}\n\nexport enum ThemePalette {\n Primary = 'primary',\n Secondary = 'secondary',\n Error = 'error',\n Info = 'info',\n Warning = 'warning',\n Success = 'success',\n\n Default = 'secondary',\n Empty = ''\n}\n\nexport enum KbqComponentColors {\n Theme = 'theme',\n ThemeFade = 'theme-fade',\n Contrast = 'contrast',\n ContrastFade = 'contrast-fade',\n\n Error = 'error',\n Warning = 'warning',\n Success = 'success',\n\n Default = 'contrast',\n Empty = 'empty'\n}\n\n/** Mixin to augment a directive with a `color` property. */\nexport function mixinColor<T extends AbstractConstructor<HasElementRef>>(\n base: T,\n defaultColor?: KbqComponentColors | ThemePalette\n): CanColorCtor & T;\n\nexport function mixinColor<T extends Constructor<HasElementRef>>(\n base: T,\n defaultColor: KbqComponentColors | ThemePalette = KbqComponentColors.Empty\n): CanColorCtor & T {\n return class extends base {\n get color(): KbqComponentColors | ThemePalette {\n return this._color;\n }\n set color(value: KbqComponentColors | ThemePalette) {\n const colorPalette = value || defaultColor;\n\n if (colorPalette !== this._color) {\n if (this._color) {\n this.elementRef.nativeElement.classList.remove(`kbq-${this._color}`);\n }\n\n if (colorPalette) {\n this.elementRef.nativeElement.classList.add(`kbq-${colorPalette}`);\n }\n\n this._color = colorPalette;\n }\n }\n\n private _color: KbqComponentColors | ThemePalette;\n\n constructor(...args: any[]) {\n super(...args);\n\n this.color = defaultColor;\n\n if (isDevMode()) {\n // eslint-disable-next-line no-console\n console.warn('mixinColor deprecated and will be deleted in next major release');\n }\n }\n };\n}\n\n@Directive()\nexport class KbqColorDirective {\n /** @docs-private */\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n /** @docs-private */\n protected defaultColor: KbqComponentColors | ThemePalette | string;\n\n /** current class name of color */\n get colorClassName(): KbqComponentColors | ThemePalette | string {\n return `kbq-${this._color}`;\n }\n\n @Input()\n get color(): KbqComponentColors | ThemePalette | string {\n return this._color;\n }\n\n set color(value: KbqComponentColors | ThemePalette | string) {\n const color = value || this.defaultColor;\n\n if (color !== this._color) {\n if (this._color) {\n this.elementRef.nativeElement.classList.remove(`kbq-${this._color}`);\n }\n\n if (color) {\n this.elementRef.nativeElement.classList.add(`kbq-${color}`);\n }\n\n this._color = color;\n }\n }\n\n protected _color: KbqComponentColors | ThemePalette | string;\n\n constructor() {\n this.color = KbqComponentColors.Empty;\n }\n\n /** this color will be used as a default value. For example [color]=\"'' | false | undefined | null\". */\n setDefaultColor(color: KbqComponentColors | ThemePalette | string) {\n this.defaultColor = color;\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { inject, InjectionToken } from '@angular/core';\n\n/**\n * An abstraction over the global `window` object.\n */\nexport const KBQ_WINDOW = new InjectionToken<Window>('[KBQ_WINDOW]', {\n factory: (): Window => {\n const _window =\n inject(DOCUMENT).defaultView ||\n // Backward compatibility for older Angular versions\n // https://github.com/angular/universal/blob/main/docs/gotchas.md#strategy-3-shims\n // eslint-disable-next-line no-restricted-globals\n window;\n\n if (!_window) {\n throw new Error('[KBQ_WINDOW] window is not available.');\n }\n\n return _window;\n }\n});\n","import { BidiModule } from '@angular/cdk/bidi';\nimport { DOCUMENT } from '@angular/common';\nimport { inject, Inject, InjectionToken, isDevMode, NgModule, Optional } from '@angular/core';\nimport { KBQ_WINDOW } from '../tokens';\n\n/**\n * Injection token that configures whether the koobiq sanity checks are enabled.\n *\n * @deprecated No longer used and will be removed in next major release.\n *\n * @docs-private\n */\nexport const KBQ_SANITY_CHECKS = new InjectionToken<boolean>('kbq-sanity-checks', {\n providedIn: 'root',\n factory: mcSanityChecksFactory\n});\n\n/**\n * @deprecated No longer used and will be removed in next major release.\n *\n * @docs-private\n */\nexport function mcSanityChecksFactory(): boolean {\n return true;\n}\n\n/**\n * Module that captures anything that should be loaded and/or run for *all* Koobiq\n * components. This includes Bidi, etc.\n *\n * @deprecated No longer used and will be removed in next major release.\n *\n * @docs-private\n */\n@NgModule({\n imports: [BidiModule],\n exports: [BidiModule]\n})\nexport class KbqCommonModule {\n protected readonly document = inject<Document>(DOCUMENT);\n private readonly window = inject(KBQ_WINDOW);\n\n // Whether we've done the global sanity checks (e.g. a theme is loaded, there is a doctype).\n private hasDoneGlobalChecks = false;\n\n constructor(@Optional() @Inject(KBQ_SANITY_CHECKS) private _sanityChecksEnabled: boolean) {\n if (this.areChecksEnabled() && !this.hasDoneGlobalChecks) {\n this.checkDoctypeIsDefined();\n this.hasDoneGlobalChecks = true;\n }\n }\n\n // Whether any sanity checks are enabled\n private areChecksEnabled(): boolean {\n return this._sanityChecksEnabled && isDevMode() && !this.isTestEnv();\n }\n\n // Whether the code is running in tests.\n private isTestEnv(): boolean {\n return !!(this.window && this.window['__jest__']);\n }\n\n private checkDoctypeIsDefined(): void {\n if (this.document && !this.document.doctype && isDevMode()) {\n // eslint-disable-next-line no-console\n console.warn(\n 'Current document does not have a doctype. This may cause ' +\n 'some koobiq components not to behave as expected.'\n );\n }\n }\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { isDevMode } from '@angular/core';\nimport { AbstractConstructor, Constructor } from './constructor';\n\nexport interface CanDisable {\n disabled: boolean;\n}\n\n/** @docs-private */\nexport type CanDisableCtor = Constructor<CanDisable> & AbstractConstructor<CanDisable>;\n\n/** Mixin to augment a directive with a `disabled` property. */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function mixinDisabled<T extends AbstractConstructor<{}>>(base: T): CanDisableCtor & T;\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function mixinDisabled<T extends Constructor<{}>>(base: T): CanDisableCtor & T {\n return class extends base {\n get disabled() {\n return this._disabled;\n }\n\n set disabled(value: any) {\n this._disabled = coerceBooleanProperty(value);\n }\n\n private _disabled: boolean = false;\n\n constructor(...args: any[]) {\n super(...args);\n\n if (isDevMode()) {\n // eslint-disable-next-line no-console\n console.warn('mixinDisabled deprecated and will be deleted in next major release');\n }\n }\n };\n}\n","import { isDevMode } from '@angular/core';\nimport { AbstractControl, FormGroupDirective, NgControl, NgForm, UntypedFormControl } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { ErrorStateMatcher } from '../error/error-state-matcher';\nimport { AbstractConstructor, Constructor } from './constructor';\n\n/** @docs-private */\nexport interface CanUpdateErrorState {\n /** Whether the component is in an error state. */\n errorState: boolean;\n /** An object used to control the error state of the component. */\n errorStateMatcher: ErrorStateMatcher;\n /** Updates the error state based on the provided error state matcher. */\n updateErrorState(): void;\n}\n\n/** @docs-private */\nexport type CanUpdateErrorStateCtor = Constructor<CanUpdateErrorState>;\n\n/** @docs-private */\nexport interface HasErrorState {\n parentFormGroup: FormGroupDirective | null;\n parentForm: NgForm | null;\n defaultErrorStateMatcher: ErrorStateMatcher;\n\n ngControl: NgControl | null;\n stateChanges: Subject<void>;\n}\n\n/**\n * Mixin to augment a directive with updateErrorState method.\n * For component with `errorState` and need to update `errorState`.\n */\nexport function mixinErrorState<T extends AbstractConstructor<HasErrorState>>(base: T): CanUpdateErrorStateCtor & T;\nexport function mixinErrorState<T extends Constructor<HasErrorState>>(base: T): CanUpdateErrorStateCtor & T {\n return class extends base {\n /** Whether the component is in an error state. */\n errorState: boolean = false;\n\n errorStateMatcher: ErrorStateMatcher;\n\n constructor(...args: any[]) {\n super(...args);\n\n if (isDevMode()) {\n // eslint-disable-next-line no-console\n console.warn('mixinErrorState deprecated and will be deleted in next major release');\n }\n }\n\n updateErrorState() {\n const oldState = this.errorState;\n const parent = this.parentFormGroup || this.parentForm;\n const matcher = this.errorStateMatcher || this.defaultErrorStateMatcher;\n const control = this.ngControl ? (this.ngControl.control as UntypedFormControl) : null;\n const newState = matcher.isErrorState(control, parent);\n\n if (newState !== oldState) {\n this.errorState = newState;\n this.stateChanges.next();\n }\n }\n };\n}\n\n/**\n * Class that tracks the error state of a component.\n * @docs-private\n */\nexport class KbqErrorStateTracker implements CanUpdateErrorState {\n /** Whether the tracker is currently in an error state. */\n errorState = false;\n\n /** User-defined matcher for the error state. */\n errorStateMatcher: ErrorStateMatcher;\n\n constructor(\n private defaultMatcher: ErrorStateMatcher | null,\n public ngControl: NgControl | null,\n private parentFormGroup: FormGroupDirective | null,\n private parentForm: NgForm | null,\n private stateChanges: Subject<void>\n ) {}\n\n /** Updates the error state based on the provided error state matcher. */\n updateErrorState() {\n const oldState = this.errorState;\n const parent = this.parentFormGroup || this.parentForm;\n const matcher = this.errorStateMatcher || this.defaultMatcher;\n const control = this.ngControl ? (this.ngControl.control as AbstractControl) : null;\n const newState = matcher?.isErrorState(control, parent) ?? false;\n\n if (newState !== oldState) {\n this.errorState = newState;\n this.stateChanges.next();\n }\n }\n}\n","import { ElementRef, inject } from '@angular/core';\n\n/**\n * Injects the native element for the current component.\n */\nexport const kbqInjectNativeElement = <T extends Element = HTMLElement>(): T => {\n return inject<ElementRef<T>>(ElementRef<T>).nativeElement;\n};\n","export function isBoolean(value: unknown): value is boolean {\n return typeof value === 'boolean';\n}\n\n/** Whether the value is undefined. */\nexport const isUndefined = (value: unknown): value is undefined => {\n return value === undefined;\n};\n\n/** Whether the value is null. */\nexport const isNull = (value: unknown): value is null => {\n return value === null;\n};\n\n/** Whether the value is HTMLElement. */\nexport const isHtmlElement = (value: unknown): value is HTMLElement => {\n return value instanceof HTMLElement;\n};\n\n/** Whether the value is Element. */\nexport const isElement = (value: unknown): value is Element => value instanceof Element;\n\n/** Whether the value is HTMLElement or null. */\nexport const isHtmlElementOrNull = (value: unknown): value is HTMLElement | null => {\n return isHtmlElement(value) || isNull(value);\n};\n\n/**\n * Will be removed in the next major release\n *\n * @deprecated Use `booleanAttribute` instead\n */\nexport function toBoolean(value: unknown): boolean {\n return value != null && `${value}` !== 'false';\n}\n\nexport const getNodesWithoutComments = (nodes: NodeList): Node[] => {\n const COMMENT_NODE = 8;\n\n return Array.from(nodes).filter((node) => node.nodeType !== COMMENT_NODE);\n};\n\nexport const leftIconClassName = 'kbq-icon_left';\nexport const rightIconClassName = 'kbq-icon_right';\n\n/** Whether the current platform is a Mac. */\nexport function isMac(): boolean {\n // eslint-disable-next-line no-restricted-globals\n return /^mac/i.test(navigator?.platform);\n}\n\n/** Converts an enumeration (enum) type into a string literal type containing\n * all possible string representations of the values. */\nexport type KbqEnumValues<T extends string | number> = `${T}`;\n","import { Directive } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { fromEvent, map, merge } from 'rxjs';\nimport { kbqInjectNativeElement } from '../utils';\n\n/**\n * Directive that adds a `kbq-hovered` class to an element, based on its hover state.\n *\n * @docs-private\n */\n@Directive({\n selector: '[kbqHover]',\n exportAs: 'kbqHover',\n host: {\n class: 'kbq-hover',\n '[class.kbq-hovered]': 'hovered()'\n }\n})\nexport class KbqHover {\n private readonly element = kbqInjectNativeElement();\n\n /**\n * Whether the element is hovered.\n */\n readonly hovered = toSignal(\n merge(\n fromEvent<MouseEvent>(this.element, 'mouseenter'),\n fromEvent<MouseEvent>(this.element, 'mouseleave')\n ).pipe(map(({ type }) => type === 'mouseenter')),\n { initialValue: false }\n );\n}\n","import { ChangeDetectorRef, Directive, inject } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Directive({\n host: {\n '(mouseenter)': 'mouseenterHandler()',\n '(mouseleave)': 'mouseleaveHandler()',\n '(click)': 'read.next(true)'\n }\n})\nexport class KbqReadStateDirective {\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n\n timestamp: number;\n timeToRead: number = 500;\n\n readonly read = new BehaviorSubject<boolean>(false);\n\n mouseenterHandler() {\n this.timestamp = new Date().getTime();\n }\n\n mouseleaveHandler() {\n if (new Date().getTime() - this.timestamp > this.timeToRead) {\n this.read.next(true);\n }\n\n this.changeDetectorRef.markForCheck();\n }\n}\n","import { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { isDevMode } from '@angular/core';\nimport { AbstractConstructor, Constructor } from './constructor';\nimport { CanDisable } from './disabled';\n\nexport interface HasTabIndex {\n tabIndex: number;\n}\n\nexport type HasTabIndexCtor = Constructor<HasTabIndex> & AbstractConstructor<HasTabIndex>;\n\n/** Mixin to augment a directive with a `tabIndex` property. */\nexport function mixinTabIndex<T extends AbstractConstructor<CanDisable>>(\n base: T,\n defaultTabIndex?: number\n): HasTabIndexCtor & T;\n\nexport function mixinTabIndex<T extends Constructor<CanDisable>>(base: T, defaultTabIndex = 0): HasTabIndexCtor & T {\n return class extends base implements HasTabIndex {\n defaultTabIndex = defaultTabIndex;\n\n get tabIndex(): number {\n return this.disabled ? -1 : this._tabIndex;\n }\n\n set tabIndex(value: number) {\n // If the specified tabIndex value is null or undefined, fall back to the default value.\n\n this._tabIndex = value != null ? coerceNumberProperty(value) : this.defaultTabIndex;\n }\n\n private _tabIndex: number = defaultTabIndex;\n\n constructor(...args: any[]) {\n super(...args);\n\n if (isDevMode()) {\n // eslint-disable-next-line no-console\n console.warn('mixinTabIndex deprecated and will be deleted in next major release');\n }\n }\n };\n}\n","import { InjectionToken } from '@angular/core';\n\nexport * from './checkbox';\nexport * from './clipboard';\nexport { CanColor, CanColorCtor, KbqColorDirective, KbqComponentColors, mixinColor, ThemePalette } from './color';\nexport { KBQ_SANITY_CHECKS, KbqCommonModule } from './common-module';\nexport { CanDisable, CanDisableCtor, mixinDisabled } from './disabled';\nexport { CanUpdateErrorState, CanUpdateErrorStateCtor, KbqErrorStateTracker, mixinErrorState } from './error-state';\nexport * from './flex';\nexport * from './hover';\nexport * from './orientation';\nexport * from './read-state';\nexport { KbqDefaultSizes } from './size';\nexport { HasTabIndex, HasTabIndexCtor, mixinTabIndex } from './tabindex';\n\nexport const KBQ_PARENT_ANIMATION_COMPONENT = new InjectionToken<any>('kbq-parent-animation-component');\n","import { inject, InjectionToken, LOCALE_ID } from '@angular/core';\nimport { DateAdapter as BaseDateAdapter } from '@koobiq/date-adapter';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n/** InjectionToken for datepicker that can be used to override default locale code. */\nexport const KBQ_DATE_LOCALE = new InjectionToken<string>('KBQ_DATE_LOCALE', {\n providedIn: 'root',\n factory: KBQ_DATE_LOCALE_FACTORY\n});\n\n/** @docs-private */\nexport function KBQ_DATE_LOCALE_FACTORY(): string {\n return inject(LOCALE_ID);\n}\n\nexport abstract class DateAdapter<D> extends BaseDateAdapter<D> {\n /** A stream that emits when the locale changes. */\n abstract get localeChanges(): Observable<any>;\n\n protected abstract _localeChanges: BehaviorSubject<string>;\n}\n","import { InjectionToken } from '@angular/core';\nimport { DateFormats } from '@koobiq/date-adapter';\n\nexport const KBQ_DATE_FORMATS = new InjectionToken<DateFormats>('kbq-date-formats');\nexport type KbqDateFormats = DateFormats;\n","import { Injectable, Provider, Type } from '@angular/core';\nimport { AbstractControl, FormGroupDirective, NgForm } from '@angular/forms';\n\n/** Utility provider for `ErrorStateMatcher`. */\nexport const kbqErrorStateMatcherProvider = (\n errorStateMatcher: Type<ErrorStateMatcher> | ErrorStateMatcher\n): Provider => {\n if (errorStateMatcher instanceof Type) {\n return {\n provide: ErrorStateMatcher,\n useClass: errorStateMatcher\n };\n }\n\n return {\n provide: ErrorStateMatcher,\n useValue: errorStateMatcher\n };\n};\n\n/**\n * Error state matcher that matches when a control is invalid and form is submitted.\n * Requires use FormGroupDirective or NgForm.\n */\n@Injectable()\nexport class ShowOnFormSubmitErrorStateMatcher implements ErrorStateMatcher {\n isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return !!(control?.invalid && form?.submitted);\n }\n}\n\n/**\n * Error state matcher with split behavior based on error's type:\n * - `required` errors are shown only after the form is submitted.\n * - All other errors are shown as soon as the control is invalid and touched.\n */\n@Injectable()\nexport class ShowRequiredOnSubmitErrorStateMatcher implements ErrorStateMatcher {\n isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return control?.hasError('required')\n ? !!(control?.invalid && form?.submitted)\n : !!(control?.invalid && control.touched);\n }\n}\n\n/** Error state matcher that matches when a control is invalid and dirty or form is submitted. */\n@Injectable()\nexport class ShowOnControlDirtyErrorStateMatcher implements ErrorStateMatcher {\n isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return !!(control?.invalid && (control.dirty || form?.submitted));\n }\n}\n\n/**\n * Provider that defines how form controls behave with regards to displaying error messages.\n * Error state matcher that matches when a control is invalid and touched or form is submitted.\n */\n@Injectable({ providedIn: 'root' })\nexport class ErrorStateMatcher {\n isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return !!(control?.invalid && (control.touched || form?.submitted));\n }\n}\n","import { coerceCssPixelValue } from '@angular/cdk/coercion';\nimport { DOCUMENT } from '@angular/common';\nimport { afterNextRender, DestroyRef, Directive, inject, Renderer2 } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { fromEvent, merge } from 'rxjs';\nimport { KBQ_WINDOW } from '../tokens';\nimport { kbqInjectNativeElement } from '../utils';\n\nconst INITIAL_PROPERTIES = {\n all: 'initial',\n position: 'absolute',\n top: coerceCssPixelValue(0),\n left: coerceCssPixelValue(0),\n width: coerceCssPixelValue(0),\n height: coerceCssPixelValue(0),\n visibility: 'hidden',\n overflow: 'scroll',\n whiteSpace: 'pre',\n pointerEvents: 'none'\n} as const satisfies Partial<CSSStyleDeclaration>;\n\n/**\n * Properties that can affect element width and should be inherited from the parent.\n */\nconst WIDTH_INHERITED_PROPERTIES = [\n 'font',\n 'fontFamily',\n 'fontFeatureSettings',\n 'fontKerning',\n 'fontOpticalSizing',\n 'fontSizeAdjust',\n 'fontSize',\n 'fontStretch',\n 'fontSynthesis',\n 'fontVariant',\n 'fontVariantLigatures',\n 'fontVariationSettings',\n 'fontWeight',\n 'letterSpacing',\n 'textIndent',\n 'textTransform'\n] as const satisfies Array<keyof CSSStyleDeclaration>;\n\n/**\n * Properties that should be added to the width when `box-sizing: border-box` is applied.\n */\nconst BOX_SIZING_BORDER_BOX_WIDTH_PROPERTIES = [\n 'paddingLeft',\n 'paddingRight',\n 'borderLeftWidth',\n 'borderRightWidth'\n] as const satisfies Array<keyof CSSStyleDeclaration>;\n\nconst FIELD_RESIZE_EVENTS = ['input', 'change', 'focus', 'blur'] as const;\n\n/**\n * Emulates [`field-sizing: content`](https://developer.mozilla.org/en-US/docs/Web/CSS/field-sizing) CSS property for\n * browsers that do not support it natively.\n *\n * @docs-private\n */\n@Directive({\n selector: '[kbqFieldSizingContent]',\n exportAs: 'kbqFieldSizingContent',\n host: {\n class: 'kbq-field-sizing-content'\n }\n})\nexport class KbqFieldSizingContent {\n private readonly element = kbqInjectNativeElement<HTMLInputElement>();\n private readonly renderer = inject(Renderer2);\n private readonly window = inject(KBQ_WINDOW);\n private readonly document = inject(DOCUMENT);\n private readonly destroyRef = inject(DestroyRef);\n\n constructor() {\n afterNextRender(() => this.emulate());\n }\n\n private emulate(): void {\n if (CSS.supports('field-sizing', 'content')) {\n this.renderer.setStyle(this.element, 'fieldSizing', 'content');\n\n return;\n }\n\n merge(...FIELD_RESIZE_EVENTS.map((event) => fromEvent(this.element, event)))\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.setupWidth());\n\n this.setupWidth();\n }\n\n private setupWidth(): void {\n const computedStyle = this.window.getComputedStyle(this.element);\n const ruler = this.createRuler(computedStyle);\n\n ruler.textContent = this.element.value || this.element.placeholder || '';\n // We should add space to prevent text truncation in Safari/Firefox\n if (ruler.textContent) ruler.textContent += ' ';\n\n this.renderer.appendChild(this.document.body, ruler);\n\n const width = this.calculateWidth(ruler, computedStyle);\n\n this.renderer.setStyle(this.element, 'width', coerceCssPixelValue(width));\n this.renderer.removeChild(this.document.body, ruler);\n }\n\n private createRuler(computedStyle: CSSStyleDeclaration): HTMLElement {\n const ruler: HTMLSpanElement = this.renderer.createElement('span');\n\n Object.assign(ruler.style, INITIAL_PROPERTIES);\n WIDTH_INHERITED_PROPERTIES.forEach((property) => {\n ruler.style[property] = computedStyle[property];\n });\n\n return ruler;\n }\n\n private calculateWidth(ruler: HTMLElement, computedStyle: CSSStyleDeclaration): number {\n if (computedStyle.boxSizing === 'border-box') {\n return BOX_SIZING_BORDER_BOX_WIDTH_PROPERTIES.reduce(\n (width, property) => width + (parseFloat(computedStyle[property]) || 0),\n ruler.scrollWidth\n );\n }\n\n return ruler.scrollWidth;\n }\n}\n","import { InjectionToken, ModelSignal } from '@angular/core';\n\n/**\n * @deprecated Will be removed in next major release, use `KbqFormField` instead.\n */\nexport interface KbqFormFieldRef {\n control: any;\n canCleanerClearByEsc: boolean;\n /** Use when KbqFormField is in an overlay container. */\n inOverlay: ModelSignal<boolean>;\n /**\n * @TODO should be removed, is private method (#DS-2915)\n * @deprecated use `formField.control?.errorState` instead\n */\n shouldForward(str: string): boolean;\n focus(): void;\n /**\n * @deprecated Use `focus` instead.\n */\n focusViaKeyboard(): void;\n}\n\n/**\n * Injection token that can be used to inject an instances of `KbqFormField`. It serves\n * as alternative token to the actual `KbqFormField` class which would cause unnecessary\n * retention of the `KbqFormField` class and its component metadata.\n *\n * @TODO move into form-field.ts, add correct type for `InjectionToken<KbqFormField>` (#DS-2915)\n */\nexport const KBQ_FORM_FIELD_REF = new InjectionToken<KbqFormFieldRef>('KbqFormFieldRef');\n","import {\n KbqActionsPanelLocaleConfiguration,\n KbqClampedTextLocaleConfig,\n KbqCodeBlockLocaleConfiguration,\n KbqFileUploadLocaleConfig,\n KbqTimeRangeLocaleConfig\n} from './types';\n\nexport const enUSLocaleData = {\n select: { hiddenItemsText: '+{{ number }}' },\n datepicker: {\n placeholder: 'yyyy-mm-dd',\n dateInput: 'yyyy-MM-dd'\n },\n timepicker: {\n placeholder: {\n full: 'hh:mm:ss',\n short: 'hh:mm'\n }\n },\n fileUpload: {\n single: {\n captionText: 'Drag file here or {{ browseLink }}',\n captionTextOnlyFolder: 'Drag here or {{ browseLinkFolder }}',\n captionTextWithFolder: 'Drag here or {{ browseLink }} or {{ browseLinkFolderMixed }}',\n browseLink: 'choose',\n browseLinkFolder: 'choose folder',\n browseLinkFolderMixed: 'folder'\n },\n multiple: {\n captionText: 'or {{ browseLink }}',\n captionTextOnlyFolder: 'or {{ browseLinkFolder }}',\n captionTextWithFolder: 'or {{ browseLink }} or {{ browseLinkFolderMixed }}',\n captionTextWhenSelected: 'Drag more or {{ browseLink }}',\n captionTextForCompactSize: 'Drag files or {{ browseLink }}',\n browseLink: 'choose files',\n browseLinkFolder: 'choose folder',\n browseLinkFolderMixed: 'folder',\n title: 'Drag here'\n }\n } satisfies KbqFileUploadLocaleConfig,\n codeBlock: {\n softWrapOnTooltip: 'Enable word wrap',\n softWrapOffTooltip: 'Disable word wrap',\n downloadTooltip: 'Download',\n copiedTooltip: '✓ Copied',\n copyTooltip: 'Copy',\n viewAllText: 'Show all',\n viewLessText: 'Show less',\n openExternalSystemTooltip: 'Open in the external system'\n } satisfies KbqCodeBlockLocaleConfiguration,\n timezone: {\n searchPlaceholder: 'City or time zone'\n },\n actionsPanel: {\n closeTooltip: 'Deselect'\n } satisfies KbqActionsPanelLocaleConfiguration,\n filterBar: {\n reset: {\n buttonName: 'Reset'\n },\n search: {\n tooltip: 'Search',\n placeholder: 'Search'\n },\n filters: {\n defaultName: 'Filters',\n saveNewFilterTooltip: 'Save the new filter',\n searchPlaceholder: 'Search',\n searchEmptyResult: 'Nothing found',\n saveAsNewFilter: 'Save as new filter',\n saveChanges: 'Save changes',\n saveAsNew: 'Save as new',\n change: 'Edit',\n resetChanges: 'Reset',\n remove: 'Delete',\n name: 'Name',\n error: 'The search with such name already exists',\n errorHint: 'Could not save the filter. Try again or contact the administrator.',\n saveButton: 'Save',\n cancelButton: 'Cancel'\n },\n add: {\n tooltip: 'Add filter'\n },\n pipe: {\n clearButtonTooltip: 'Clear',\n removeButtonTooltip: 'Delete',\n applyButton: 'Apply',\n emptySearchResult: 'Nothing found',\n selectAll: 'Select all'\n },\n datePipe: {\n customPeriod: 'Custom period',\n customPeriodFrom: 'from',\n customPeriodTo: 'to',\n customPeriodErrorHint: 'The period cannot start later than it ends',\n backToPeriodSelection: 'Back'\n }\n },\n clampedText: {\n openText: 'Expand',\n closeText: 'Collapse',\n showMoreText: 'Show {exceededItemCount} more',\n moreText: 'more'\n } satisfies KbqClampedTextLocaleConfig,\n navbarIc: {\n toggle: {\n pinButton: 'Leave expanded',\n collapseButton: 'Collapse'\n }\n },\n navbar: {\n toggle: {\n expand: 'Expand',\n collapse: 'Collapse'\n }\n },\n searchExpandable: {\n tooltip: 'Search',\n placeholder: 'Search'\n },\n appSwitcher: {\n searchPlaceholder: 'Search',\n searchEmptyResult: 'Nothing found',\n sitesHeader: 'Other sites'\n },\n timeRange: {\n title: {\n for: 'for',\n placeholder: 'Select period'\n },\n editor: {\n from: 'from',\n to: 'to',\n apply: 'Apply',\n cancel: 'Cancel',\n rangeLabel: 'for period',\n allTime: 'for all time',\n currentQuarter: 'for the current quarter',\n currentYear: 'for the current year'\n },\n durationTemplate: {\n title: {\n SEPARATOR: ' ',\n LAST_PART_SEPARATOR: '',\n YEARS: `{years, plural,\n one {# year}\n other {last # years}\n }`,\n MONTHS: `{months, plural,\n one {last month}\n other {last # months}\n }`,\n WEEKS: `{weeks, plural,\n one {last week}\n other {last # weeks}\n }`,\n DAYS: `{days, plural,\n one {last day}\n other {last # days}\n }`,\n HOURS: `{hours, plural,\n one {last hour}\n other {last # hours}\n }`,\n MINUTES: `{minutes, plural,\n one {last minute}\n other {last # minutes}\n }`,\n SECONDS: `{seconds, plural,\n one {last second}\n other {last # seconds}\n }`,\n YEARS_FRACTION: `{years} years`,\n MONTHS_FRACTION: `{months} months`\n },\n option: {\n SEPARATOR: ' ',\n LAST_PART_SEPARATOR: '',\n YEARS: `{years, plural,\n one {# year}\n other {last # years}\n }`,\n MONTHS: `{months, plural,\n one {last month}\n other {last # months}\n }`,\n WEEKS: `{weeks, plural,\n one {last week}\n other {last # weeks}\n }`,\n DAYS: `{days, plural,\n one {last day}\n other {last # days}\n }`,\n HOURS: `{hours, plural,\n one {last hour}\n other {last # hours}\n }`,\n MINUTES: `{minutes, plural,\n one {last minute}\n other {last # minutes}\n }`,\n SECONDS: `{seconds, plural,\n one {last second}\n other {last # seconds}\n }`,\n YEARS_FRACTION: `{years} years`,\n MONTHS_FRACTION: `{months} months`\n }\n }\n } satisfies KbqTimeRangeLocaleConfig,\n notificationCenter: {\n notifications: 'Notifications',\n remove: 'Remove',\n doNotDisturb: 'Do not disturb',\n showPopUpNotifications: 'Show pop-up notifications',\n noNotifications: 'No notifications',\n failedToLoadNotifications: 'Failed to load notifications',\n repeat: 'Repeat',\n loadingMore: 'Loading more notifications'\n }\n};\n","import {\n KbqActionsPanelLocaleConfiguration,\n KbqClampedTextLocaleConfig,\n KbqCodeBlockLocaleConfiguration,\n KbqFileUploadLocaleConfig,\n KbqTimeRangeLocaleConfig\n} from './types';\n\nexport const esLALocaleData = {\n select: { hiddenItemsText: '+{{ number }}' },\n datepicker: {\n placeholder: 'dd/mm/aaaa'\n },\n timepicker: {\n placeholder: {\n full: 'hh:mm:ss',\n short: 'hh:mm'\n }\n },\n fileUpload: {\n single: {\n captionText: 'Arrastre el archivo aquí o {{ browseLink }}',\n captionTextOnlyFolder: 'Arrastre el archivo aquí o {{ browseLinkFolder }}',\n captionTextWithFolder: 'Arrastre el archivo aquí o {{ browseLink }} o {{ browseLinkFolderMixed }}',\n browseLink: 'elija',\n browseLinkFolder: 'carpeta',\n browseLinkFolderMixed: 'carpeta'\n },\n multiple: {\n captionText: 'Arrastre aquí o {{ browseLink }}',\n captionTextOnlyFolder: 'Arrastre aquí o {{ browseLinkFolder }}',\n captionTextWithFolder: 'Arrastre aquí o {{ browseLink }} o {{ browseLinkFolderMixed }}',\n captionTextWhenSelected: 'Arrastre más archivos aquí o {{ browseLink }}',\n captionTextForCompactSize: 'Arrastre archivos o {{ browseLink }}',\n browseLink: 'elija',\n browseLinkFolder: 'carpeta',\n browseLinkFolderMixed: 'carpeta',\n title: 'Cargue los archivos'\n }\n } satisfies KbqFileUploadLocaleConfig,\n codeBlock: {\n softWrapOnTooltip: 'Activar el ajuste de texto',\n softWrapOffTooltip: 'Desactivar el ajuste de texto',\n downloadTooltip: 'Descargar',\n copiedTooltip: '✓ Copiado',\n copyTooltip: 'Copiar',\n viewAllText: 'Mostrar todo',\n viewLessText: 'Mostrar menos',\n openExternalSystemTooltip: 'Abrir en el sistema externo'\n } satisfies KbqCodeBlockLocaleConfiguration,\n timezone: {\n searchPlaceholder: 'Ciudad o zona horaria'\n },\n actionsPanel: {\n closeTooltip: 'Desmarque'\n } satisfies KbqActionsPanelLocaleConfiguration,\n filterBar: {\n reset: {\n buttonName: 'Restablecer'\n },\n search: {\n tooltip: 'Búsqueda',\n placeholder: 'Búsqueda'\n },\n filters: {\n defaultName: 'Filtros',\n saveNewFilterTooltip: 'Guardar el filtro nuevo',\n searchPlaceholder: 'Búsqueda',\n searchEmptyResult: 'No se encontró nada',\n saveAsNewFilter: 'Guardar como filtro nuevo',\n saveChanges: 'Guardar cambios',\n saveAsNew: 'Guardar como nuevo',\n change: 'Editar',\n resetChanges: 'Restablecer',\n remove: 'Eliminar',\n name: 'Nombre',\n error: 'Ya existe una búsqueda con ese nombre',\n errorHint: 'No se pudo guardar el filtro. Intente de nuevo o comuníquese con el administrador.',\n saveButton: 'Guardar',\n cancelButton: 'Cancelar'\n },\n add: {\n tooltip: 'Agregar filtro'\n },\n pipe: {\n clearButtonTooltip: 'Borrar',\n removeButtonTooltip: 'Eliminar',\n applyButton: 'Aplicar',\n emptySearchResult: 'No se encontró nada',\n selectAll: 'Seleccionar todo'\n },\n datePipe: {\n customPeriod: 'Personalizar período',\n customPeriodFrom: 'desde',\n customPeriodTo: 'hasta',\n customPeriodErrorHint: 'El inicio del período no puede estar después del fin',\n backToPeriodSelection: 'Atrás'\n }\n },\n clampedText: {\n openText: 'Expandir',\n closeText: 'Contraer',\n showMoreText: 'Mostrar {exceededItemCount} más',\n moreText: 'más'\n } satisfies KbqClampedTextLocaleConfig,\n navbarIc: {\n toggle: {\n pinButton: 'Expandir el menú',\n collapseButton: 'Colapsar'\n }\n },\n navbar: {\n toggle: {\n expand: 'Expandir',\n collapse: 'Colapsar'\n }\n },\n searchExpandable: {\n tooltip: 'Búsqueda',\n placeholder: 'Búsqueda'\n },\n appSwitcher: {\n searchPlaceholder: 'Búsqueda',\n searchEmptyResult: 'No se encontró nada',\n sitesHeader: 'Otros sitios'\n },\n timeRange: {\n title: {\n for: 'para',\n placeholder: 'Seleccione el período'\n },\n editor: {\n from: 'de',\n to: 'a',\n apply: 'Aplicar',\n cancel: 'Cancelar',\n rangeLabel: 'para el período',\n allTime: 'por todo el tiempo',\n currentQuarter: 'por el trimestre actual',\n currentYear: 'por el año actual'\n },\n durationTemplate: {\n title: {\n SEPARATOR: ', ',\n LAST_PART_SEPARATOR: '',\n YEARS: `{years, plural,\n one {# año}\n other {últimos # años}\n }`,\n MONTHS: `{months, plural,\n one {último mes}\n other {últimos # meses}\n }`,\n WEEKS: `{weeks, plural,\n one {última semana}\n other {últimas # semanas}\n }`,\n DAYS: `{days, plural,\n one {último día}\n other {últimos # días}\n }`,\n HOURS: `{hours, plural,\n one {última hora}\n other {últimas # horas}\n }`,\n MINUTES: `{minutes, plural,\n one {último minuto}\n other {últimos # minutos}\n }`,\n SECONDS: `{seconds, plural,\n one {último segundo}\n other {últimos # segundos}\n }`,\n YEARS_FRACTION: `{years} años`,\n MONTHS_FRACTION: `{months} meses`\n },\n option: {\n SEPARATOR: ', ',\n LAST_PART_SEPARATOR: '',\n YEARS: `{years, plural,\n one {# año}\n other {últimos # años}\n }`,\n MONTHS: `{months, plural,\n one {último mes}\n other {últimos # meses}\n }`,\n WEEKS: `{weeks, plural,\n one {última semana}\n other {últimas # semanas}\n }`,\n DAYS: `{days, plural,\n one {último día}\n other {últimos # días}\n }`,\n HOURS: `{hours, plural,\n one {última hora}\n other {últimas # horas}\n }`,\n MINUTES: `{minutes, plural,\n one {último minuto}\n other {últimos # minutos}\n }`,\n SECONDS: `{seconds, plural,\n one {último segundo}\n other {últimos # segundos}\n }`,\n YEARS_FRACTION: `{years} años`,\n MONTHS_FRACTION: `{months} meses`\n }\n }\n } satisfies KbqTimeRangeLocaleConfig,\n notificationCenter: {\n notifications: 'Notificaciones',\n remove: 'Eliminar',\n doNotDisturb: 'No molestar',\n showPopUpNotifications: 'Mostrar notificaciones emergentes',\n noNotifications: 'Sin notificaciones',\n failedToLoadNotifications: 'Error al cargar las notificaciones',\n repeat: 'Repetir',\n loadingMore: 'Cargando más notificaciones'\n }\n};\n","import {\n KbqActionsPanelLocaleConfiguration,\n KbqClampedTextLocaleConfig,\n KbqCodeBlockLocaleConfiguration,\n KbqFileUploadLocaleConfig,\n KbqTimeRangeLocaleConfig\n} from './types';\n\nexport const ptBRLocaleData = {\n select: { hiddenItemsText: '+{{ number }}' },\n datepicker: {\n placeholder: 'dd/mm/yyyy'\n },\n timepicker: {\n placeholder: {\n full: 'hh:mm:ss',\n short: 'hh:mm'\n }\n },\n fileUpload: {\n single: {\n captionText: 'Arrastar o arquivo aqui ou {{ browseLink }}',\n captionTextOnlyFolder: 'Arrastar o arquivo aqui ou {{ browseLinkFolder }}',\n captionTextWithFolder: 'Arrastar o arquivo aqui ou {{ browseLink }} ou {{ browseLinkFolderMixed }}',\n browseLink: 'escolher',\n browseLinkFolder: 'pasta',\n browseLinkFolderMixed: 'pasta'\n },\n multiple: {\n captionText: 'Arrastar aqui ou {{ browseLink }}',\n captionTextOnlyFolder: 'Arrastar aqui ou {{ browseLinkFolder }}',\n captionTextWithFolder: 'Arrastar aqui ou {{ browseLink }} ou {{ browseLinkFolderMixed }}',\n captionTextWhenSelected: 'Arrastar mais arquivos aqui ou {{ browseLink }}',\n captionTextForCompactSize: 'Arrastar arquivos ou {{ browseLink }}',\n browseLink: 'escolher',\n browseLinkFolder: 'pasta',\n browseLinkFolderMixed: 'pasta',\n title: 'Carregar arquivos'\n }\n } satisfies KbqFileUploadLocaleConfig,\n codeBlock: {\n softWrapOnTooltip: 'Ativar quebra de linha',\n softWrapOffTooltip: 'Desativar quebra de linha',\n downloadTooltip: 'Baixar',\n copiedTooltip: '✓ Copiado',\n copyTooltip: 'Copiar',\n viewAllText: 'Mostrar todos',\n viewLessText: 'Mostrar menos',\n openExternalSystemTooltip: 'Abrir em sistema externo'\n } satisfies KbqCodeBlockLocaleConfiguration,\n timezone: {\n searchPlaceholder: 'Cidade ou fuso horário'\n },\n actionsPanel: {\n closeTooltip: 'Desmarcar'\n } satisfies KbqActionsPanelLocaleConfiguration,\n filterBar: {\n reset: {\n buttonName: 'Reconfigurar'\n },\n search: {\n tooltip: 'Buscar',\n placeholder: 'Buscar'\n },\n filters: {\n defaultName: 'Filtros',\n saveNewFilterTooltip: 'Salve o filtro novo',\n searchPlaceholder: 'Buscar',\n searchEmptyResult: 'Nada encontrado',\n saveAsNewFilter: 'Salve o filtro novo',\n saveChanges: 'Salve as mudanças',\n saveAsNew: 'Salve como novo',\n change: 'Editar',\n resetChanges: 'Reconfigurar',\n remove: 'Deletar',\n name: 'Nome',\n error: 'A busca com esse nome já existe',\n errorHint: 'O filtro não pôde ser salvo. Tente de novo ou entre em contato com o administrador.',\n saveButton: 'Salvar',\n cancelButton: 'Cancelar'\n },\n add: {\n tooltip: 'Adicionar filtros'\n },\n pipe: {\n clearButtonTooltip: 'Apagar',\n removeButtonTooltip: 'Deletar',\n applyButton: 'Aplicar',\n emptySearchResult: 'Nada encontrado',\n selectAll: 'Selecionar todos'\n },\n datePipe: {\n customPeriod: 'Selecionar período',\n customPeriodFrom: 'de',\n customPeriodTo: 'até',\n customPeriodErrorHint: 'O período não pode começar depois de quando acaba',\n backToPeriodSelection: 'Voltar'\n }\n },\n clampedText: {\n openText: 'Expandir',\n closeText: 'Recolher',\n showMoreText: 'Mostrar mais {exceededItemCount}',\n moreText: 'mais'\n } satisfies KbqClampedTextLocaleConfig,\n navbarIc: {\n toggle: {\n pinButton: 'Deixar expandido',\n collapseButton: 'Recolher'\n }\n },\n navbar: {\n toggle: {\n expand: 'Expandir',\n collapse: 'Colapso'\n }\n },\n searchExpandable: {\n tooltip: 'Pesquisar',\n placeholder: 'Pesquisar'\n },\n appSwitcher: {\n searchPlaceholder: 'Pesquisar',\n searchEmptyResult: 'Nada encontrado',\n sitesHeader: 'Outros sites'\n },\n timeRange: {\n title: {\n for: 'para',\n placeholder: 'Selecione o período'\n },\n editor: {\n from: 'de',\n to: 'até',\n apply: 'Aplicar',\n cancel: 'Cancelar',\n rangeLabel: 'para o período',\n allTime: 'por todo o tempo',\n currentQuarter: 'pelo trimestre atual',\n currentYear: 'pelo ano atual'\n },\n durationTemplate: {\n title: {\n SEPARATOR: ' e ',\n LAST_PART_SEPARATOR: '',\n YEARS: `{years, plural,\n one {# ano}\n other {últimos # anos}\n }`,\n MONTHS: `{months, plural,\n one {último mês}\n other {últimos # meses}\n }`,\n WEEKS: `{weeks, plural,\n one {última semana}\n other {últimas # semanas}\n }`,\n DAYS: `{days, plural,\n one {último dia}\n other {últimos # dias}\n }`,\n HOURS: `{hours, plural,\n one {última hora}\n other {últimas # horas}\n }`,\n MINUTES: `{minutes, plural,\n one {último minuto}\n other {últimos # minutos}\n }`,\n SECONDS: `{seconds, plural,\n one {último segundo}\n other {últimos # segundos}\n }`,\n YEARS_FRACTION: `{years} anos`,\n MONTHS_FRACTION: `{months} meses`\n },\n option: {\n SEPARATOR: ' e ',\n LAST_PART_SEPARATOR: '',\n YEARS: `{years, plural,\n one {# ano}\n other {últimos # anos}\n }`,\n MONTHS: `{months, plural,\n one {último mês}\n other {últimos # meses}\n }`,\n WEEKS: `{weeks, plural,\n one {última semana}\n other {últimas # semanas}\n }`,\n DAYS: `{days, plural,\n one {último dia}\n other {últimos # dias}\n }`,\n HOURS: `{hours, plural,\n one {última hora}\n other {últimas # horas}\n }`,\n MINUTES: `{minutes, plural,\n one {último minuto}\n other {últimos # minutos}\n }`,\n SECONDS: `{seconds, plural,\n one {último segundo}\n other {últimos # segundos}\n }`,\n YEARS_FRACTION: `{years} anos`,\n MONTHS_FRACTION: `{months} meses`\n }\n }\n } satisfies KbqTimeRangeLocaleConfig,\n notificationCenter: {\n notifications: 'Notificações',\n remove: 'Remover',\n doNotDisturb: 'Não perturbe',\n showPopUpNotifications: 'Mostrar notificações pop-up',\n noNotifications: 'Sem notificações',\n failedToLoadNotifications: 'Falha ao carregar notificações',\n repeat: 'Repetir',\n loadingMore: 'Carregando mais notificações'\n }\n};\n","import {\n KbqActionsPanelLocaleConfiguration,\n KbqClampedTextLocaleConfig,\n KbqCodeBlockLocaleConfiguration,\n KbqFileUploadLocaleConfig,\n KbqTimeRangeLocaleConfig\n} from './types';\n\nexport const ruRULocaleData = {\n select: { hiddenItemsText: '+{{ number }}' },\n datepicker: {\n placeholder: 'дд.мм.гггг',\n dateInput: 'dd.MM.yyyy'\n },\n timepicker: {\n placeholder: {\n full: 'чч:мм:сс',\n short: 'чч:мм'\n }\n },\n fileUpload: {\n single: {\n captionText: 'Перетащите сюда или {{ browseLink }}',\n captionTextOnlyFolder: 'Перетащите сюда или {{ browseLinkFolder }}',\n captionTextWithFolder: 'Перетащите сюда или {{ browseLink }} или {{ browseLinkFolderMixed }}',\n browseLink: 'выберите файл',\n browseLinkFolder: 'выберите папку',\n browseLinkFolderMixed: 'папку'\n },\n multiple: {\n captionText: 'или {{ browseLink }}',\n captionTextOnlyFolder: 'или {{ browseLinkFolder }}',\n captionTextWithFolder: 'или {{ browseLink }} или {{ browseLinkFolderMixed }}',\n captionTextWhenSelected: 'Перетащите еще или {{ browseLink }}',\n captionTextForCompactSize: 'Перетащите сюда или {{ browseLink }}',\n browseLink: 'выберите файлы',\n browseLinkFolder: 'выберите папку',\n browseLinkFolderMixed: 'папку',\n title: 'Перетащите сюда'\n }\n } satisfies KbqFileUploadLocaleConfig,\n codeBlock: {\n softWrapOnTooltip: 'Включить перенос по словам',\n softWrapOffTooltip: 'Выключить перенос по словам',\n downloadTooltip: 'Скачать',\n copiedTooltip: '✓ Скопировано',\n copyTooltip: 'Скопировать',\n viewAllText: 'Показать все',\n viewLessText: 'Свернуть',\n openExternalSystemTooltip: 'Открыть во внешней системе'\n } satisfies KbqCodeBlockLocaleConfiguration,\n timezone: {\n searchPlaceholder: 'Город или часовой пояс'\n },\n actionsPanel: {\n closeTooltip: 'Отменить выбор'\n } satisfies KbqActionsPanelLocaleConfiguration,\n filterBar: {\n reset: {\n buttonName: 'Сбросить'\n },\n search: {\n tooltip: 'Поиск',\n placeholder: 'Поиск'\n },\n filters: {\n defaultName: 'Фильтры',\n saveNewFilterTooltip: 'Сохранить новый фильтр',\n searchPlaceholder: 'Поиск',\n searchEmptyResult: 'Ничего не найдено',\n saveAsNewFilter: 'Сохранить как новый фильтр',\n saveChanges: 'Сохранить изменения',\n saveAsNew: 'Сохранить как новый',\n change: 'Изменить',\n resetChanges: 'Сбросить изменения',\n remove: 'Удалить',\n name: 'Название',\n error: 'Поиск с таким названием уже существует',\n errorHint: 'Не удалось сохранить фильтр. Попробуйте снова или сообщите администратору.',\n saveButton: 'Сохранить',\n cancelButton: 'Отмена'\n },\n add: {\n tooltip: 'Добавить фильтр'\n },\n pipe: {\n clearButtonTooltip: 'Очистить',\n removeButtonTooltip: 'Удалить',\n applyButton: 'Применить',\n emptySearchResult: 'Ничего не найдено',\n selectAll: 'Выбрать все'\n },\n datePipe: {\n customPeriod: 'Произвольный период',\n customPeriodFrom: 'с',\n customPeriodTo: 'по',\n customPeriodErrorHint: 'Начало периода не может быть позже окончания',\n backToPeriodSelection: 'Назад'\n }\n },\n clampedText: {\n openText: 'Развернуть',\n closeText: 'Свернуть',\n showMoreText: 'Показать еще {exceededItemCount}',\n moreText: 'еще'\n } satisfies KbqClampedTextLocaleConfig,\n navbarIc: {\n toggle: {\n pinButton: 'Оставить развернутым',\n collapseButton: 'Свернуть'\n }\n },\n navbar: {\n toggle: {\n expand: 'Развернуть',\n collapse: 'Свернуть'\n }\n },\n searchExpandable: {\n tooltip: 'Поиск',\n placeholder: 'Поиск'\n },\n appSwitcher: {\n searchPlaceholder: 'Поиск',\n searchEmptyResult: 'Ничего не найдено',\n sitesHeader: 'Другие площадки'\n },\n timeRange: {\n title: {\n for: 'за',\n placeholder: 'Выберите период'\n },\n editor: {\n from: 'с',\n to: 'по',\n apply: 'Применить',\n cancel: 'Отмена',\n rangeLabel: 'за период',\n allTime: 'за все время',\n currentQuarter: 'за текущий квартал',\n currentYear: 'за текущий год'\n },\n durationTemplate: {\n title: {\n SEPARATOR: ' ',\n LAST_PART_SEPARATOR: 'и',\n YEARS: `{years, plural,\n one {# год}\n few {последние # лет}\n other {последние # лет}\n }`,\n MONTHS: `{months, plural,\n one {последний месяц}\n few {последние # месяца}\n other {последние # месяцев}\n }`,\n WEEKS: `{weeks, plural,\n one {последнюю неделю}\n few {последние # недели}\n other {последние # недель}\n }`,\n DAYS: `{days, plural,\n one {последний день}\n few {последние # дня}\n other {последние # дней}\n }`,\n HOURS: `{hours, plural,\n one {последний час}\n few {последние # часа}\n other {последние # часов}\n }`,\n MINUTES: `{minutes, plural,\n one {последнюю минуту}\n few {последние # минуты}\n other {последние # минут}\n }`,\n SECONDS: `{seconds, plural,\n one {последнюю секунду}\n few {последние # секунды}\n other {последние # секунд}\n }`,\n YEARS_FRACTION: `{years} лет`,\n MONTHS_FRACTION: `{months} месяцев`\n },\n option: {\n SEPARATOR: ' ',\n LAST_PART_SEPARATOR: 'и',\n YEARS: `{years, plural,\n one {последний год}\n few {последние # лет}\n other {последние # лет}\n }`,\n MONTHS: `{months, plural,\n one {последний месяц}\n few {последние # месяца}\n other {последние # месяцев}\n }`,\n WEEKS: `{weeks, plural,\n one {последняя неделя}\n few {последние # недели}\n other {последние # недель}\n }`,\n DAYS: `{days, plural,\n one {последний день}\n few {последние # дня}\n other {последние # дней}\n }`,\n HOURS: `{hours, plural,\n one {последний час}\n few {последние # часа}\n other {последние # часов}\n }`,\n MINUTES: `{minutes, plural,\n one {последняя минута}\n few {последние # минуты}\n other {последние # минут}\n }`,\n SECONDS: `{seconds, plural,\n one {последняя секунда}\n few {последние # секунды}\n other {последние # секунд}\n }`,\n YEARS_FRACTION: `{years} лет`,\n MONTHS_FRACTION: `{months} месяцев`\n }\n }\n } satisfies KbqTimeRangeLocaleConfig,\n notificationCenter: {\n notifications: 'Уведомления',\n remove: 'Удалить',\n doNotDisturb: 'Не беспокоить',\n showPopUpNotifications: 'Показывать всплывающие уведомления',\n noNotifications: 'Нет уведомлений',\n failedToLoadNotifications: 'Не удалось загрузить уведомления',\n repeat: 'Повторить',\n loadingMore: 'Загрузка уведомлений'\n }\n};\n","import {\n KbqActionsPanelLocaleConfiguration,\n KbqClampedTextLocaleConfig,\n KbqCodeBlockLocaleConfiguration,\n KbqFileUploadLocaleConfig,\n KbqTimeRangeLocaleConfig\n} from './types';\n\nexport const tkTMLocaleData = {\n select: { hiddenItemsText: '+{{ number }}' },\n datepicker: {\n placeholder: 'gg.aa.ýý.',\n dateInput: 'gg.aa.ýý.'\n },\n timepicker: {\n placeholder: {\n full: 'ss:mm:seksek',\n short: 'ss:mm'\n }\n },\n fileUpload: {\n single: {\n captionText: 'Faýly geçiriň ýa-da {{ browseLink }}',\n captionTextOnlyFolder: 'Faýly geçiriň ýa-da {{ browseLinkFolder }}',\n captionTextWithFolder: 'Faýly geçiriň ýa-da {{ browseLink }} ýa-da {{ browseLinkFolderMixed }}',\n browseLink: 'saýlaň',\n browseLinkFolder: 'bukja',\n browseLinkFolderMixed: 'bukja'\n },\n multiple: {\n captionText: 'Şu ýere geçiriň ýa-da {{ browseLink }}',\n captionTextOnlyFolder: 'Şu ýere geçiriň ýa-da {{ browseLinkFolder }}',\n captionTextWithFolder: 'Şu ýere geçiriň ýa-da {{ browseLink }} ýa-da {{ browseLinkFolderMixed }}',\n captionTextWhenSelected: 'Ýene geçiriň ýa-da {{ browseLink }}',\n captionTextForCompactSize: 'Faýllary geçiriň ýa-da {{ browseLink }}',\n browseLink: 'saýlaň',\n browseLinkFolder: 'bukja',\n browseLinkFolderMixed: 'bukja',\n title: 'Faýl ýükläň'\n }\n } satisfies KbqFileUploadLocaleConfig,\n codeBlock: {\n softWrapOnTooltip: 'Sözler boýunça geçirmäni işjeňleşdirmek',\n softWrapOffTooltip: 'Sözler boýunça geçirmäni öçürmek',\n downloadTooltip: 'Ýüklemek',\n copiedTooltip: '✓ Göçürildi',\n copyTooltip: 'Göçürmek',\n viewAllText: 'Hemmesini görkezmek',\n viewLessText: 'Ýygyrmak',\n openExternalSystemTooltip: 'Daşarky ulgamda açmak'\n } satisfies KbqCodeBlockLocaleConfiguration,\n timezone: {\n searchPlaceholder: 'Şäher ýa-da sagat guşagy'\n },\n actionsPanel: {\n closeTooltip: 'Saýlawy ýatyr'\n } satisfies KbqActionsPanelLocaleConfiguration,\n filterBar: {\n reset: {\n buttonName: 'Täzeden düz'\n },\n search: {\n tooltip: 'Gözleg',\n placeholder: 'Gözleg'\n },\n filters: {\n defaultName: 'Filtrler',\n saveNewFilterTooltip: 'Täze filtri ýazdyr',\n searchPlaceholder: 'Gözleg',\n searchEmptyResult: 'Hiç zat tapylmady',\n saveAsNewFilter: 'Täze filtr hökmünde ýazdyr',\n saveChanges: 'Üýtgetmeleri ýazdyr',\n saveAsNew: 'Täze hökmünde ýazdyr',\n change: 'Düzet',\n resetChanges: 'Täzeden düz',\n remove: 'Poz',\n name: 'At',\n error: 'Şeýle atly gözleg eýýäm bar',\n errorHint: 'Filtri ýazdyryp bolmady. Täzeden synanyň ýa-da administratora ýüz tutuň.',\n saveButton: 'Ýazdyr',\n cancelButton: 'Ýatyr'\n },\n add: {\n tooltip: 'Filtr goş'\n },\n pipe: {\n clearButtonTooltip: 'Arassala',\n removeButtonTooltip: 'Ýokla',\n applyButton: 'Ulan',\n emptySearchResult: 'Hiç zat tapylmady',\n selectAll: 'Ählisini saýla'\n },\n datePipe: {\n customPeriod: 'Laýyk döwür',\n customPeriodFrom: 'başy',\n customPeriodTo: 'soňy',\n customPeriodErrorHint: 'Döwür gutarýan wagtyndan soň başlap bilmeýär',\n backToPeriodSelection: 'Yzyna'\n }\n },\n clampedText: {\n openText: 'Giňelt',\n closeText: 'Ýap',\n showMoreText: 'Ýene {exceededItemCount} görkeziň',\n moreText: 'has köp'\n } satisfies KbqClampedTextLocaleConfig,\n navbarIc: {\n toggle: {\n pinButton: 'Rugsat giňeldildi',\n collapseButton: 'Apseykylmak'\n }\n },\n navbar: {\n toggle: {\n expand: 'Giňeltmek',\n collapse: 'Ýykmak'\n }\n },\n searchExpandable: {\n tooltip: 'Gözleg',\n placeholder: 'Gözleg'\n },\n appSwitcher: {\n searchPlaceholder: 'Gözleg',\n searchEmptyResult: 'Hiç zat tapylmady',\n sitesHeader: 'Beýleki saýtlar'\n },\n timeRange: {\n title: {\n for: 'soňky',\n placeholder: 'Möhleti saýla'\n },\n editor: {\n from: 'şundan',\n to: 'şuňa',\n apply: 'Ulanmak',\n cancel: 'Ýatyrmak',\n rangeLabel: 'şu döwürde',\n allTime: 'hemme döwür üçin',\n currentQuarter: 'şu çärýek üçin',\n currentYear: 'şu ýyl üçin'\n },\n durationTemplate: {\n title: {\n SEPARATOR: ' ',\n LAST_PART_SEPARATOR: '',\n YEARS: `{years, plural,\n one {# ýyl}\n other {# ýyl}\n }`,\n MONTHS: `{months, plural,\n one {aý}\n other {# aý}\n }`,\n WEEKS: `{weeks, plural,\n one {hepde}\n other {# hepde}\n }`,\n DAYS: `{days, plural,\n one {gün}\n other {# gün}\n }`,\n HOURS: `{hours, plural,\n one {sagat}\n other {# sagat}\n }`,\n MINUTES: `{minutes, plural,\n one {minut}\n other {# minut}\n }`,\n SECONDS: `{seconds, plural,\n one {sekunt}\n other {# sekunt}\n }`,\n YEARS_FRACTION: `{years} ýyl`,\n MONTHS_FRACTION: `{months} aý`\n },\n option: {\n SEPARATOR: ' ',\n LAST_PART_SEPARATOR: '',\n YEARS: `{years, plural,\n one {# ýyl}\n other {# ýyl}\n }`,\n MONTHS: `{months, plural,\n one {aý}\n other {# aý}\n }`,\n WEEKS: `{weeks, plural,\n one {hepde}\n other {# hepde}\n }`,\n DAYS: `{days, plural,\n one {gün}\n other {# gün}\n }`,\n HOURS: `{hours, plural,\n one {sagat}\n other {# sagat}\n }`,\n MINUTES: `{minutes, plural,\n one {minut}\n other {# minut}\n }`,\n SECONDS: `{seconds, plural,\n one {sekunt}\n other {# sekunt}\n }`,\n YEARS_FRACTION: `{years} ýyl`,\n MONTHS_FRACTION: `{months} aý`\n }\n }\n } satisfies KbqTimeRangeLocaleConfig,\n notificationCenter: {\n notifications: 'Duýduryşlar',\n remove: 'Aýyr',\n doNotDisturb: 'Alada etme',\n showPopUpNotifications: 'Açylýan bildirişleri görkeziň',\n noNotifications: 'Duýduryş ýok',\n failedToLoadNotifications: 'Duýduryşlary ýükläp bilmedi',\n repeat: 'Gaýtalama',\n loadingMore: 'Duýduryşlar ýüklenýär'\n }\n};\n","import { KbqSizeUnitsConfig } from '../formatters';\nimport { KbqNumberFormatOptions, KbqNumberInputLocaleConfig } from './types';\n\nexport const enUSFormattersData = {\n formatters: {\n number: {\n rounding: {\n separator: '',\n groupSeparator: '.',\n thousand: 'K',\n million: 'M',\n billion: 'B',\n trillion: 'T'\n }\n }\n },\n input: {\n number: {\n groupSeparator: [','],\n fractionSeparator: '.'\n } satisfies KbqNumberInputLocaleConfig\n },\n sizeUnits: {\n defaultUnitSystem: 'SI',\n defaultPrecision: 2,\n unitSystems: {\n SI: {\n abbreviations: ['B', 'KB', 'MB', 'GB', 'TB'],\n base: 10,\n power: 3\n },\n IEC: {\n abbreviations: ['B', 'KiB', 'MiB', 'GiB', 'TiB'],\n base: 2,\n power: 10\n }\n }\n } satisfies KbqSizeUnitsConfig\n};\n\nexport const esLAFormattersData = {\n formatters: {\n number: {\n rounding: {\n separator: '',\n groupSeparator: ',',\n thousand: 'K',\n million: 'M',\n billion: 'MRD',\n trillion: 'B'\n },\n decimal: {\n viewGroupSeparator: '\\u2009'\n } satisfies KbqNumberFormatOptions\n }\n },\n input: {\n number: {\n // nbsp is generated automatically and used by default in spec\n groupSeparator: [' ', ' ', '\\u2009'],\n fractionSeparator: ',',\n viewGroupSeparator: '\\u2009'\n } satisfies KbqNumberInputLocaleConfig\n },\n sizeUnits: {\n defaultUnitSystem: 'SI',\n defaultPrecision: 2,\n unitSystems: {\n SI: {\n abbreviations: ['B', 'KB', 'MB', 'GB', 'TB'],\n base: 10,\n power: 3\n },\n IEC: {\n abbreviations: ['B', 'KiB', 'MiB', 'GiB', 'TiB'],\n base: 2,\n power: 10\n }\n }\n }\n};\n\nexport const ptBRFormattersData = {\n formatters: {\n number: {\n rounding: {\n separator: ' ',\n groupSeparator: ',',\n thousand: 'mil',\n million: 'mi',\n billion: 'bi',\n trillion: 'tri'\n }\n }\n },\n input: {\n number: {\n groupSeparator: ['.'],\n fractionSeparator: ','\n } satisfies KbqNumberInputLocaleConfig\n },\n sizeUnits: {\n defaultUnitSystem: 'SI',\n defaultPrecision: 2,\n unitSystems: {\n SI: {\n abbreviations: ['B', 'KB', 'MB', 'GB', 'TB'],\n base: 10,\n power: 3\n },\n IEC: {\n abbreviations: ['B', 'KiB', 'MiB', 'GiB', 'TiB'],\n base: 2,\n power: 10\n }\n }\n }\n};\n\nexport const ruRUFormattersData = {\n formatters: {\n number: {\n rounding: {\n separator: ' ',\n groupSeparator: ',',\n thousand: 'К',\n million: 'М',\n billion: 'М',\n trillion: 'Т'\n },\n decimal: {\n viewGroupSeparator: '\\u2009'\n } satisfies KbqNumberFormatOptions\n }\n },\n input: {\n number: {\n // nbsp is generated automatically and used by default in spec\n groupSeparator: [' ', ' ', '\\u2009'],\n fractionSeparator: ',',\n startFormattingFrom: 4,\n viewGroupSeparator: '\\u2009'\n } satisfies KbqNumberInputLocaleConfig\n },\n sizeUnits: {\n defaultUnitSystem: 'SI',\n defaultPrecision: 2,\n unitSystems: {\n SI: {\n abbreviations: ['Б', 'КБ', 'МБ', 'ГБ', 'ТБ'],\n base: 10,\n power: 3\n },\n IEC: {\n abbreviations: ['Б', 'КиБ', 'МиБ', 'ГиБ', 'ТиБ'],\n base: 2,\n power: 10\n }\n }\n }\n};\n\nexport const tkTMFormattersData = {\n formatters: {\n number: {\n rounding: {\n separator: ' ',\n groupSeparator: '',\n thousand: 'M',\n million: 'Mn',\n billion: 'Mr',\n trillion: 'Tn'\n }\n }\n },\n input: {\n number: {\n groupSeparator: [' ', ' ', '\\u2009'],\n fractionSeparator: ',',\n viewGroupSeparator: '\\u2009'\n } satisfies KbqNumberInputLocaleConfig\n },\n sizeUnits: {\n defaultUnitSystem: 'SI',\n defaultPrecision: 2,\n unitSystems: {\n SI: {\n abbreviations: ['B', 'KB', 'MB', 'GB', 'TB'],\n base: 10,\n power: 3\n },\n IEC: {\n abbreviations: ['B', 'KiB', 'MiB', 'GiB', 'TiB'],\n base: 2,\n power: 10\n }\n }\n }\n};\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, inject, Injectable, InjectionToken, Optional, Provider } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { enUSLocaleData } from './en-US';\nimport { esLALocaleData } from './es-LA';\nimport {\n enUSFormattersData,\n esLAFormattersData,\n ptBRFormattersData,\n ruRUFormattersData,\n tkTMFormattersData\n} from './formatters';\nimport { ptBRLocaleData } from './pt-BR';\nimport { ruRULocaleData } from './ru-RU';\nimport { tkTMLocaleData } from './tk-TM';\nimport { KbqNumberInputLocaleConfig } from './types';\n\nexport const KBQ_LOCALE_ID = new InjectionToken<string>('KbqLocaleId');\n\nexport const KBQ_DEFAULT_LOCALE_ID = 'ru-RU';\n\nexport function KBQ_DEFAULT_LOCALE_DATA_FACTORY() {\n return {\n items: [\n { id: 'en-US', name: 'English' },\n { id: 'es-LA', name: 'Español' },\n { id: 'pt-BR', name: 'Português' },\n { id: 'ru-RU', name: 'Русский' },\n { id: 'tk-TM', name: 'Türkmen' }\n ],\n 'en-US': { ...enUSLocaleData, ...enUSFormattersData },\n 'es-LA': { ...esLALocaleData, ...esLAFormattersData },\n 'pt-BR': { ...ptBRLocaleData, ...ptBRFormattersData },\n 'ru-RU': { ...ruRULocaleData, ...ruRUFormattersData },\n 'tk-TM': { ...tkTMLocaleData, ...tkTMFormattersData }\n };\n}\nexport const KBQ_LOCALE_DATA = new InjectionToken<any>('KBQ_LOCALE_DATA', {\n providedIn: 'root',\n factory: KBQ_DEFAULT_LOCALE_DATA_FACTORY\n});\n\nexport const KBQ_LOCALE_SERVICE = new InjectionToken<KbqLocaleService>('KBQ_LOCALE_SERVICE');\n\n/**\n * Attribute name to be used to set the locale in the html element.\n *\n * @default 'lang'\n *\n * @docs-private\n */\nexport const KBQ_LOCALE_SERVICE_LANG_ATTR_NAME = new InjectionToken<string>('KBQ_LOCALE_SERVICE_LANG_ATTR_NAME', {\n factory: () => 'lang'\n});\n\n/**\n * Utility provider to configure the attribute name to be used to set the locale in the html element.\n *\n * @see KBQ_LOCALE_SERVICE_LANG_ATTR_NAME\n *\n * @docs-private\n */\nexport const kbqLocaleServiceLangAttrNameProvider = (attrName: string): Provider => ({\n provide: KBQ_LOCALE_SERVICE_LANG_ATTR_NAME,\n useValue: attrName\n});\n\n@Injectable({ providedIn: 'root' })\nexport class KbqLocaleService {\n readonly changes: BehaviorSubject<string>;\n readonly locales: any = {};\n\n private readonly document = inject(DOCUMENT);\n\n id: string;\n current;\n\n private readonly langAttrName = inject(KBQ_LOCALE_SERVICE_LANG_ATTR_NAME);\n\n constructor(@Optional() @Inject(KBQ_LOCALE_ID) id: string, @Optional() @Inject(KBQ_LOCALE_DATA) localeData) {\n this.locales = localeData;\n\n this.id = id || KBQ_DEFAULT_LOCALE_ID;\n this.current = this.locales[this.id];\n\n this.changes = new BehaviorSubject(this.id);\n }\n\n setLocale(id: string) {\n this.id = id;\n this.current = this.locales[this.id];\n\n this.document.documentElement.setAttribute(this.langAttrName, this.id);\n\n this.changes.next(this.id);\n }\n\n addLocale(id: string, localeData) {\n this.id = id;\n this.changes.next(this.id);\n\n this.locales[this.id] = localeData;\n }\n\n getParams(componentName: string) {\n return this.current[componentName];\n }\n}\n\n// todo code below need refactor or delete in DS-3603\n/** @docs-private */\nexport const KBQ_DEFAULT_PRECISION_SEPARATOR = '.';\n\n/** @docs-private */\nexport function numberByParts(\n value: string,\n customConfig: Pick<KbqNumberInputLocaleConfig, 'fractionSeparator' | 'groupSeparator'>\n): { integer: string; fraction: string } {\n const { groupSeparator, fractionSeparator } = customConfig;\n const result = { integer: '', fraction: '' };\n let parsedValue = value;\n\n // normalize only when '.', ',' are used as fractionSeparators\n if (groupSeparator.includes(' ') && fractionSeparator === ',') {\n parsedValue = parsedValue.replace(/\\./g, ',');\n }\n\n const isNegative = parsedValue.startsWith('-');\n const numberByParts = parsedValue.split(fractionSeparator).filter(Boolean);\n\n if (numberByParts.length > 1) {\n result.fraction = numberByParts.pop() || '';\n result.integer = numberByParts\n .join()\n .replace(groupSeparator.join(''), '')\n .replace(fractionSeparator, '')\n .replace(/\\D/g, '');\n } else {\n result.integer = numberByParts.join().replace(groupSeparator[0], '').replace(/\\D/g, '');\n }\n\n if (isNegative) result.integer = `-${result.integer}`;\n\n return result;\n}\n\n/**\n * Function that returns a string representation of a number without localized separators\n */\nexport function normalizeNumber(\n value: string | null | undefined,\n customConfig: Pick<KbqNumberInputLocaleConfig, 'fractionSeparator' | 'groupSeparator'>\n): string {\n if (value === null || value === undefined) return '';\n\n const { groupSeparator, fractionSeparator } = customConfig;\n const groupSeparatorRegexp = new RegExp(`[${groupSeparator.join('')}]`, 'g');\n const fractionSeparatorRegexp = new RegExp(`\\\\${fractionSeparator}`, 'g');\n\n return value\n .toString()\n .replace(groupSeparatorRegexp, '')\n .replace(fractionSeparatorRegexp, KBQ_DEFAULT_PRECISION_SEPARATOR);\n}\n\n/**\n * Function that parse string and return a number. The string can be in any locale.\n */\nexport function checkAndNormalizeLocalizedNumber(num: string | null | undefined, locale?: string): number | null {\n if (num === null || num === undefined) return null;\n\n const locales = KBQ_DEFAULT_LOCALE_DATA_FACTORY();\n\n if (locale && locales[locale]) {\n const config = locales[locale].input.number;\n let normalized: number;\n\n if (!/\\d/g.test(num)) return +num;\n\n const { integer, fraction } = numberByParts(num, config);\n\n if (fraction) {\n normalized = +[integer, fraction].join('.');\n } else {\n normalized = +normalizeNumber(integer, config);\n }\n\n if (!Number.isNaN(normalized)) {\n return normalized;\n }\n }\n\n /* if some locale input config satisfies pasted number, try to normalise with selected locale config */\n let numberOutput: number | null = null;\n\n for (const config of locales.items.map(({ id }) => locales[id].input.number)) {\n const normalized = +normalizeNumber(num, config);\n\n if (!Number.isNaN(normalized)) {\n numberOutput = normalized;\n break;\n }\n }\n\n return numberOutput;\n}\n\n// todo code above need refactor or delete in DS-3603\n","import { NgModule } from '@angular/core';\nimport { KBQ_LOCALE_SERVICE, KbqLocaleService } from './locale-service';\n\n@NgModule({\n providers: [\n { provide: KBQ_LOCALE_SERVICE, useClass: KbqLocaleService }\n ]\n})\nexport class KbqLocaleServiceModule {}\n","import { inject, Inject, Injectable } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DateAdapter } from '@koobiq/date-adapter';\nimport { DateFormatter as BaseDateFormatter } from '@koobiq/date-formatter';\nimport { KBQ_DATE_LOCALE } from '../../datetime';\nimport { KBQ_LOCALE_SERVICE, KbqLocaleService } from '../../locales';\n\n@Injectable()\nexport class DateFormatter<D> extends BaseDateFormatter<D> {\n protected localeService = inject<KbqLocaleService>(KBQ_LOCALE_SERVICE, { optional: true });\n constructor(\n override readonly adapter: DateAdapter<D>,\n @Inject(KBQ_DATE_LOCALE) locale: string\n ) {\n super(adapter, locale);\n\n this.localeService?.changes.pipe(takeUntilDestroyed()).subscribe((locale) => this.setLocale(locale));\n }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { DateTimeOptions } from '@koobiq/date-formatter';\nimport { DateAdapter } from '../../datetime';\nimport { DateFormatter } from './formatter';\n\nexport class BaseFormatterPipe<D> {\n protected readonly adapter: DateAdapter<D> = inject(DateAdapter<D>);\n protected readonly formatter: DateFormatter<D> = inject(DateFormatter<D>);\n}\n\n@Pipe({\n name: 'absoluteLongDate'\n})\nexport class AbsoluteDateFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform(value: D | string, currYear?: boolean): string {\n const date = this.adapter.deserialize(value);\n\n return date ? this.formatter.absoluteLongDate(date, currYear) : '';\n }\n}\n\n@Pipe({\n name: 'absoluteLongDateImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class AbsoluteDateFormatterImpurePipe<D> extends AbsoluteDateFormatterPipe<D> {\n transform(value: string | D, currYear?: boolean): string {\n return super.transform(value, currYear);\n }\n}\n\n@Pipe({\n name: 'absoluteLongDateTime'\n})\nexport class AbsoluteDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform(value: D | string, options?: DateTimeOptions): string {\n const date = this.adapter.deserialize(value);\n\n return date ? this.formatter.absoluteLongDateTime(date, options) : '';\n }\n}\n\n@Pipe({\n name: 'absoluteLongDateTimeImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class AbsoluteDateTimeFormatterImpurePipe<D> extends AbsoluteDateTimeFormatterPipe<D> {\n transform(value: string | D, options?: DateTimeOptions): string {\n return super.transform(value, options);\n }\n}\n\n@Pipe({\n name: 'absoluteShortDate'\n})\nexport class AbsoluteDateShortFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform(value: D | string, currYear?: boolean): string {\n const date = this.adapter.deserialize(value);\n\n return date ? this.formatter.absoluteShortDate(date, currYear) : '';\n }\n}\n\n@Pipe({\n name: 'absoluteShortDateImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class AbsoluteDateShortFormatterImpurePipe<D> extends AbsoluteDateShortFormatterPipe<D> {\n transform(value: string | D, currYear?: boolean): string {\n return super.transform(value, currYear);\n }\n}\n\n@Pipe({\n name: 'absoluteShortDateTime'\n})\nexport class AbsoluteShortDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform(value: D | string, options?: DateTimeOptions): string {\n const date = this.adapter.deserialize(value);\n\n return date ? this.formatter.absoluteShortDateTime(date, options) : '';\n }\n}\n\n@Pipe({\n name: 'absoluteShortDateTimeImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class AbsoluteShortDateTimeFormatterImpurePipe<D> extends AbsoluteShortDateTimeFormatterPipe<D> {\n transform(value: string | D, options?: DateTimeOptions): string {\n return super.transform(value, options);\n }\n}\n\n@Pipe({\n name: 'relativeLongDate'\n})\nexport class RelativeDateFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform(value: D | string): string {\n const date = this.adapter.deserialize(value);\n\n return date ? this.formatter.relativeLongDate(date) : '';\n }\n}\n\n@Pipe({\n name: 'relativeLongDateImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RelativeDateFormatterImpurePipe<D> extends RelativeDateFormatterPipe<D> {\n transform(value: string | D): string {\n return super.transform(value);\n }\n}\n\n@Pipe({\n name: 'relativeLongDateTime'\n})\nexport class RelativeDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform(value: D | string, options?: DateTimeOptions): string {\n const date = this.adapter.deserialize(value);\n\n return date ? this.formatter.relativeLongDateTime(date, options) : '';\n }\n}\n\n@Pipe({\n name: 'relativeLongDateTimeImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RelativeDateTimeFormatterImpurePipe<D> extends RelativeDateTimeFormatterPipe<D> {\n transform(value: string | D, options?: DateTimeOptions): string {\n return super.transform(value, options);\n }\n}\n\n@Pipe({\n name: 'relativeShortDate'\n})\nexport class RelativeShortDateFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform(value: D | string): string {\n const date = this.adapter.deserialize(value);\n\n return date ? this.formatter.relativeShortDate(date) : '';\n }\n}\n\n@Pipe({\n name: 'relativeShortDateImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RelativeShortDateFormatterImpurePipe<D> extends RelativeShortDateFormatterPipe<D> {\n transform(value: string | D): string {\n return super.transform(value);\n }\n}\n\n@Pipe({\n name: 'relativeShortDateTime'\n})\nexport class RelativeShortDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform(value: D | string, options?: DateTimeOptions): string {\n const date = this.adapter.deserialize(value);\n\n return date ? this.formatter.relativeShortDateTime(date, options) : '';\n }\n}\n\n@Pipe({\n name: 'relativeShortDateTimeImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RelativeShortDateTimeFormatterImpurePipe<D> extends RelativeShortDateTimeFormatterPipe<D> {\n transform(value: string | D, options?: DateTimeOptions): string {\n return super.transform(value, options);\n }\n}\n\n@Pipe({\n name: 'rangeLongDate'\n})\nexport class RangeDateFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform([value1, value2]: D[] | string[]): string {\n const date1 = this.adapter.deserialize(value1);\n const date2 = this.adapter.deserialize(value2);\n\n return this.formatter.rangeLongDate(date1 as D, date2 as D);\n }\n}\n\n@Pipe({\n name: 'rangeLongDateImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RangeDateFormatterImpurePipe<D> extends RangeDateFormatterPipe<D> {\n transform([value1, value2]: D[] | string[]): string {\n return super.transform([value1, value2] as D[] | string[]);\n }\n}\n\n@Pipe({\n name: 'rangeShortDate'\n})\nexport class RangeShortDateFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform([value1, value2]: D[] | string[]): string {\n const date1 = this.adapter.deserialize(value1);\n const date2 = this.adapter.deserialize(value2);\n\n return this.formatter.rangeShortDate(date1 as D, date2 as D);\n }\n}\n\n@Pipe({\n name: 'rangeShortDateImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RangeShortDateFormatterImpurePipe<D> extends RangeShortDateFormatterPipe<D> {\n transform([value1, value2]: D[] | string[]): string {\n return super.transform([value1, value2] as D[] | string[]);\n }\n}\n\n@Pipe({\n name: 'rangeLongDateTime'\n})\nexport class RangeDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform([value1, value2]: D[] | string[], options?: DateTimeOptions): string {\n const date1 = this.adapter.deserialize(value1);\n const date2 = this.adapter.deserialize(value2);\n\n return this.formatter.rangeLongDateTime(date1 as D, date2 as D, options);\n }\n}\n\n@Pipe({\n name: 'rangeLongDateTimeImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RangeDateTimeFormatterImpurePipe<D> extends RangeDateTimeFormatterPipe<D> {\n transform([value1, value2]: D[] | string[], options?: DateTimeOptions): string {\n return super.transform([value1, value2] as D[] | string[], options);\n }\n}\n\n@Pipe({\n name: 'rangeMiddleDateTime'\n})\nexport class RangeMiddleDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform([value1, value2]: D[] | string[], options?: DateTimeOptions): string {\n const date1 = this.adapter.deserialize(value1);\n const date2 = this.adapter.deserialize(value2);\n\n return this.formatter.rangeMiddleDateTime(date1 as D, date2 as D, options);\n }\n}\n\n@Pipe({\n name: 'rangeMiddleDateTimeImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RangeMiddleDateTimeFormatterImpurePipe<D> extends RangeMiddleDateTimeFormatterPipe<D> {\n transform([value1, value2]: D[] | string[], options?: DateTimeOptions): string {\n return super.transform([value1, value2] as D[] | string[], options);\n }\n}\n\n@Pipe({\n name: 'rangeShortDateTime'\n})\nexport class RangeShortDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform([value1, value2]: D[] | string[], options?: DateTimeOptions): string {\n const date1 = this.adapter.deserialize(value1);\n const date2 = this.adapter.deserialize(value2);\n\n return this.formatter.rangeShortDateTime(date1 as D, date2 as D, options);\n }\n}\n\n@Pipe({\n name: 'rangeShortDateTimeImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RangeShortDateTimeFormatterImpurePipe<D> extends RangeShortDateTimeFormatterPipe<D> {\n transform([value1, value2]: D[] | string[], options?: DateTimeOptions): string {\n return super.transform([value1, value2] as D[] | string[], options);\n }\n}\n","import { InjectionToken, Provider } from '@angular/core';\nimport { enUSFormattersData } from '../../locales';\n\n/**\n * @deprecated Will be removed in next major release. Use `KbqMeasurementSystem` instead.\n * @docs-private\n */\nexport enum MeasurementSystem {\n SI = 'SI',\n IEC = 'IEC'\n}\n\n/**\n * Available unit systems for file size formatting.\n * - SI (Metric): 1 KB = 1000 bytes\n * - IEC (Binary): 1 KiB = 1024 bytes\n */\nexport enum KbqMeasurementSystem {\n SI = 'SI',\n IEC = 'IEC'\n}\n\n/** Unit systems as union type */\nexport type KbqMeasurementSystemType = keyof typeof KbqMeasurementSystem;\n\nexport interface KbqUnitSystem {\n abbreviations: string[];\n base: number;\n power: number;\n}\n\n/**\n * @deprecated Will be removed in next major release. Use `KbqSizeUnitsConfig` instead.\n * @docs-private\n */\nexport interface SizeUnitsConfig {\n defaultUnitSystem: string;\n defaultPrecision: number;\n unitSystems: {\n [MeasurementSystem.SI]: KbqUnitSystem;\n [MeasurementSystem.IEC]: KbqUnitSystem;\n };\n}\n\n/**\n * Configuration for file size formatting options.\n * Defines the default unit system, precision, and available unit systems.\n */\nexport interface KbqSizeUnitsConfig {\n /**\n * Default unit system to use (e.g., 'SI' or 'IEC').\n * @see KbqMeasurementSystem\n */\n defaultUnitSystem: KbqMeasurementSystemType;\n /**\n * Default number of decimal places to display in formatted output.\n * @example\n * `2` → \"1.23 KB\"\n */\n defaultPrecision: number;\n /** @see KbqMeasurementSystem */\n unitSystems: {\n [KbqMeasurementSystem.SI]: KbqUnitSystem;\n [KbqMeasurementSystem.IEC]: KbqUnitSystem;\n };\n}\n\nexport const KBQ_SIZE_UNITS_DEFAULT_CONFIG: KbqSizeUnitsConfig = enUSFormattersData.sizeUnits;\n\n/**\n * Configuration for converting sizes in different unit systems.\n */\nexport const KBQ_SIZE_UNITS_CONFIG = new InjectionToken<KbqSizeUnitsConfig>('KbqSizeUnitsConfig');\n\n/** Utility provider for `KBQ_SIZE_UNITS_CONFIG`. */\nexport const kbqFilesizeFormatterConfigurationProvider = (configuration: Partial<KbqSizeUnitsConfig>): Provider => ({\n provide: KBQ_SIZE_UNITS_CONFIG,\n useValue: { ...KBQ_SIZE_UNITS_DEFAULT_CONFIG, ...configuration }\n});\n","import { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { Inject, Injectable, InjectionToken, Optional, Pipe, PipeTransform } from '@angular/core';\nimport {\n KBQ_DEFAULT_LOCALE_ID,\n KBQ_LOCALE_ID,\n KBQ_LOCALE_SERVICE,\n KbqLocaleService,\n KbqNumberFormatOptions\n} from '../../locales';\n\nexport const KBQ_NUMBER_FORMATTER_OPTIONS = new InjectionToken<ParsedDigitsInfo>('KbqNumberFormatterOptions');\n\nexport const KBQ_NUMBER_FORMATTER_DEFAULT_OPTIONS: ParsedDigitsInfo = {\n useGrouping: true,\n minimumIntegerDigits: 1,\n minimumFractionDigits: 0,\n maximumFractionDigits: 3\n};\n\n/** Formats a number value according to locale and formatting options */\nexport function formatNumberWithLocale(\n value: unknown,\n formatter: Intl.NumberFormat,\n options?: KbqNumberFormatOptions\n): string {\n const num = strToNumber(value);\n\n if (!options?.viewGroupSeparator) return formatter.format(num);\n\n const numberFormatParts = formatter.formatToParts(num);\n\n for (const numberFormatPart of numberFormatParts) {\n if (numberFormatPart.type === 'group') {\n numberFormatPart.value = options.viewGroupSeparator;\n }\n }\n\n return numberFormatParts.map(({ value }) => value).join('');\n}\n\n/**\n * Special contract between `KbqDecimalPipe` and `KbqTableNumberPipe`,\n * so they can be interchangeable in the cases of usage\n */\nexport interface KbqNumericPipe {\n transform(value: unknown, digitsInfo?: string, locale?: string): string | null;\n}\n\nfunction isEmpty(value: any): boolean {\n return value == null || value === '' || value !== value;\n}\n\nfunction strToNumber(value: unknown): number {\n const coerced = coerceNumberProperty(value, null);\n\n if (coerced === null) {\n throw new Error(`${value} is not a number`);\n }\n\n return coerced;\n}\n\nexport const NUMBER_FORMAT_REGEXP = /^(\\d+)?\\.((\\d+)(-(\\d+))?(-(true|false))?)?$/;\n\nconst minIntGroupPosition = 1;\nconst minFractionGroupPosition = 3;\nconst maxFractionGroupPosition = 5;\nconst useGroupingPosition = 7;\n\ninterface RoundDecimalOptions {\n separator: string;\n groupSeparator: string;\n thousands?: string;\n tenThousand?: string;\n million?: string;\n oneHundredMillions?: string;\n billion?: string;\n trillion: string;\n rtl?: boolean;\n}\n\nconst ROUNDING_UNITS = {\n thousand: 1e3,\n tenThousand: 10 * 1e3,\n million: 1e6,\n oneHundredMillions: 100 * 1e6,\n billion: 1e9,\n trillion: 1e12\n};\n\nconst intervalsConfig = {\n supportedLanguages: ['ru-RU', 'en-US', 'es-LA', 'pt-BR'],\n intervals: [\n { startRange: 1, endRange: ROUNDING_UNITS.thousand },\n { startRange: ROUNDING_UNITS.thousand, endRange: ROUNDING_UNITS.tenThousand, precision: 1 },\n { startRange: ROUNDING_UNITS.tenThousand, endRange: ROUNDING_UNITS.million },\n { startRange: ROUNDING_UNITS.million, endRange: ROUNDING_UNITS.million * 10, precision: 1 },\n { startRange: ROUNDING_UNITS.million * 10, endRange: ROUNDING_UNITS.billion }\n ]\n};\n\nclass ParsedDigitsInfo {\n useGrouping: boolean;\n minimumIntegerDigits: number;\n minimumFractionDigits: number;\n maximumFractionDigits: number;\n}\n\nconst defaultValueForGroupingInRULocale: number = 10000;\n\nfunction parseDigitsInfo(digitsInfo: string): ParsedDigitsInfo {\n const parts = digitsInfo.match(NUMBER_FORMAT_REGEXP);\n\n if (parts === null) {\n throw new Error(`${digitsInfo} is not a valid digit info`);\n }\n\n const minIntPart = parts[minIntGroupPosition];\n const minFractionPart = parts[minFractionGroupPosition];\n const maxFractionPart = parts[maxFractionGroupPosition];\n const useGroupingPart = parts[useGroupingPosition];\n\n const result = new ParsedDigitsInfo();\n\n if (minIntPart != null) {\n result.minimumIntegerDigits = parseInt(minIntPart);\n }\n\n if (minFractionPart != null) {\n result.minimumFractionDigits = parseInt(minFractionPart);\n }\n\n if (maxFractionPart != null) {\n result.maximumFractionDigits = parseInt(maxFractionPart);\n } else if (minFractionPart != null && result.minimumFractionDigits > result.maximumFractionDigits) {\n result.maximumFractionDigits = result.minimumFractionDigits;\n }\n\n if (useGroupingPart != null) {\n result.useGrouping = useGroupingPart === 'true';\n }\n\n return result;\n}\n\n@Injectable({ providedIn: 'root' })\n@Pipe({\n name: 'kbqNumber',\n pure: false\n})\nexport class KbqDecimalPipe implements KbqNumericPipe, PipeTransform {\n constructor(\n @Optional() @Inject(KBQ_LOCALE_ID) private id: string,\n @Optional() @Inject(KBQ_LOCALE_SERVICE) private localeService: KbqLocaleService,\n @Optional() @Inject(KBQ_NUMBER_FORMATTER_OPTIONS) private readonly options: ParsedDigitsInfo\n ) {\n this.options = this.options || KBQ_NUMBER_FORMATTER_DEFAULT_OPTIONS;\n\n this.localeService?.changes.subscribe((newId: string) => (this.id = newId));\n }\n\n /**\n * @param value The number to be formatted.\n * @param digitsInfo Decimal representation options, specified by a string\n * in the following format:<br>\n * <code>{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}</code>.\n * - `minIntegerDigits`: The minimum number of integer digits before the decimal point.\n * Default is `1`.\n * - `minFractionDigits`: The minimum number of digits after the decimal point.\n * Default is `0`.\n * - `maxFractionDigits`: The maximum number of digits after the decimal point.\n * Default is `3`.\n * @param locale A locale code for the locale format rules to use.\n * When not supplied, uses the value of `KBQ_LOCALE_ID`, which is `ru` by default.\n */\n transform(value: any, digitsInfo?: string, locale?: string): string | null {\n if (isEmpty(value)) {\n return null;\n }\n\n const currentLocale = locale || this.id || KBQ_DEFAULT_LOCALE_ID;\n\n let parsedDigitsInfo: ParsedDigitsInfo | undefined;\n\n if (digitsInfo) {\n parsedDigitsInfo = parseDigitsInfo(digitsInfo);\n }\n\n const options: Intl.NumberFormatOptions = {\n ...this.options,\n ...parsedDigitsInfo\n };\n\n if (this.isSpecialFormatForRULocale(currentLocale, value, parsedDigitsInfo?.useGrouping)) {\n options.useGrouping = false;\n }\n\n try {\n const formatter = new Intl.NumberFormat(currentLocale, options);\n\n return formatNumberWithLocale(\n value,\n formatter,\n this.localeService?.locales[currentLocale]?.formatters.number.decimal\n );\n } catch (error: any) {\n throw Error(`InvalidPipeArgument: KbqDecimalPipe for pipe '${JSON.stringify(error.message)}'`);\n }\n }\n\n isSpecialFormatForRULocale(locale: string, value: number, grouping?: boolean): boolean {\n return (\n ['ru', 'ru-RU'].includes(locale) &&\n grouping === undefined &&\n Math.abs(value) < defaultValueForGroupingInRULocale\n );\n }\n}\n\n@Injectable({ providedIn: 'root' })\n@Pipe({\n name: 'kbqTableNumber',\n pure: false\n})\nexport class KbqTableNumberPipe implements KbqNumericPipe, PipeTransform {\n constructor(\n @Optional() @Inject(KBQ_LOCALE_ID) private id: string,\n @Optional() @Inject(KBQ_LOCALE_SERVICE) private localeService: KbqLocaleService,\n @Optional() @Inject(KBQ_NUMBER_FORMATTER_OPTIONS) private readonly options: ParsedDigitsInfo\n ) {\n this.options = this.options || KBQ_NUMBER_FORMATTER_DEFAULT_OPTIONS;\n\n this.localeService?.changes.subscribe((newId: string) => (this.id = newId));\n }\n\n /**\n * @param value The number to be formatted.\n * @param digitsInfo Decimal representation options, specified by a string\n * in the following format:<br>\n * <code>{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}</code>.\n * - `minIntegerDigits`: The minimum number of integer digits before the decimal point.\n * Default is `1`.\n * - `minFractionDigits`: The minimum number of digits after the decimal point.\n * Default is `0`.\n * - `maxFractionDigits`: The maximum number of digits after the decimal point.\n * Default is `3`.\n * @param locale A locale code for the locale format rules to use.\n * When not supplied, uses the value of `KBQ_LOCALE_ID`, which is `ru` by default.\n */\n transform(value: any, digitsInfo?: string, locale?: string): string | null {\n if (isEmpty(value)) {\n return null;\n }\n\n const currentLocale = locale || this.id || KBQ_DEFAULT_LOCALE_ID;\n\n let parsedDigitsInfo: ParsedDigitsInfo | undefined;\n\n if (digitsInfo) {\n parsedDigitsInfo = parseDigitsInfo(digitsInfo);\n }\n\n const options: Intl.NumberFormatOptions = {\n ...this.options,\n ...parsedDigitsInfo\n };\n\n try {\n const formatter = new Intl.NumberFormat(currentLocale, options);\n\n return formatNumberWithLocale(\n value,\n formatter,\n this.localeService?.locales[currentLocale]?.formatters.number.decimal\n );\n } catch (error: any) {\n throw Error(`InvalidPipeArgument: KbqTableNumberPipe for pipe '${JSON.stringify(error.message)}'`);\n }\n }\n}\n\nexport function isWithin(startRange: number, endRange: number, valueToCheck: number): boolean {\n return startRange <= valueToCheck && valueToCheck < endRange;\n}\n\n@Injectable({ providedIn: 'root' })\n@Pipe({\n name: 'kbqRoundNumber',\n pure: false\n})\nexport class KbqRoundDecimalPipe implements PipeTransform {\n roundingOptions: RoundDecimalOptions;\n\n constructor(\n @Optional() @Inject(KBQ_LOCALE_ID) private id: string,\n @Optional() @Inject(KBQ_LOCALE_SERVICE) private localeService: KbqLocaleService\n ) {\n this.localeService?.changes.subscribe((newId: string) => (this.id = newId));\n }\n\n transform(value: any, locale?: string): any {\n if (isEmpty(value)) {\n return null;\n }\n\n const currentLocale: string = locale || this.id || KBQ_DEFAULT_LOCALE_ID;\n\n this.roundingOptions = this.localeService?.locales[currentLocale].formatters.number.rounding;\n\n try {\n const num = strToNumber(value);\n const unit = this.calculateUnit(num);\n\n if (!unit) {\n return Intl.NumberFormat.call(this, currentLocale, { useGrouping: false }).format(num);\n }\n\n let parts: { num?: number; fraction?: number } = {};\n\n if (intervalsConfig.supportedLanguages.includes(currentLocale)) {\n intervalsConfig.intervals.find(({ startRange, endRange, precision }) => {\n const within = isWithin(startRange, endRange, num);\n\n if (within) {\n if (precision) {\n parts =\n unit === 'thousand'\n ? this.calculatePartsForThousands(num)\n : {\n num: Math.trunc(num / ROUNDING_UNITS[unit]),\n fraction: this.calculateDecimal(num, ROUNDING_UNITS[unit])\n };\n } else {\n parts = { num: Math.round(num / ROUNDING_UNITS[unit]) };\n }\n }\n\n return within;\n });\n }\n\n parts = parts.num\n ? parts\n : {\n num: Math.trunc(num / ROUNDING_UNITS[unit]),\n fraction: this.calculateDecimal(num, ROUNDING_UNITS[unit])\n };\n Object.keys(parts).forEach((key) => {\n parts[key] = Intl.NumberFormat.call(this, currentLocale, { useGrouping: false }).format(parts[key]);\n });\n\n const calculatedValue = parts.fraction\n ? `${parts.num}${this.roundingOptions.groupSeparator}${parts.fraction}`\n : `${parts.num}`;\n\n return `${calculatedValue}${this.roundingOptions.separator}${this.roundingOptions[unit]}`;\n } catch (error: any) {\n throw Error(`InvalidPipeArgument: KbqRoundDecimalPipe for pipe '${JSON.stringify(error.message)}'`);\n }\n }\n\n private calculateDecimal(num: number, divider: number) {\n return Math.round(((num / divider) % 1) * 10);\n }\n\n /**\n * 2 * 1000 is a number in the interval of [1500...2500)\n *\n * 2,0 * 1000 is a number in the interval of [1950...2050)\n */\n private calculatePartsForThousands(num: number) {\n const dividedValue = num / ROUNDING_UNITS.thousand;\n const div = Math.round(dividedValue) * ROUNDING_UNITS.thousand;\n const fifty = 50;\n\n return isWithin(div - fifty, div + fifty, num)\n ? { num: Math.round(dividedValue), fraction: 0 }\n : { num: Math.round(dividedValue) };\n }\n\n private calculateUnit(num: number): string | undefined {\n let currentUnit: string | undefined;\n const localizedOptions = Object.keys(this.roundingOptions);\n\n Object.keys(ROUNDING_UNITS).every((key) => {\n if (!localizedOptions.includes(key)) {\n return true;\n }\n\n if (num / ROUNDING_UNITS[key] >= 1) {\n currentUnit = key;\n\n return true;\n }\n\n return false;\n });\n\n return currentUnit;\n }\n}\n","import { KbqUnitSystem } from './config';\n\nexport const KBQ_INVALID_VALUE_ERROR = 'Argument \"value\" must be a finite number!';\n\n/**\n * @deprecated Will be removed in next major release. Use `getFormattedSizeParts` instead.\n * @docs-private\n */\nexport const formatDataSize = (\n value: number,\n precision: number,\n system: KbqUnitSystem\n): { value: string; unit: string } => {\n const { result, unit } = getHumanizedBytes(value, system);\n let volume: string;\n\n if (system.abbreviations[0] === unit) {\n volume = result.toString();\n } else {\n volume = result.toFixed(precision).replace(/\\./g, ',');\n }\n\n return {\n value: volume,\n unit\n };\n};\n\n/**\n * Converts a byte value into locale-independent file size parts: numeric value and unit abbreviation.\n *\n * @param value - size in bytes.\n * @param system - unit system defining abbreviations and base scaling (SI/IEC).\n * @returns Object with the formatted size info.\n *\n * @example\n * getFormattedSizeParts(1500, 'SI'); // { value: \"1.50\", unit: \"KB\" }\n */\nexport function getFormattedSizeParts(value: number, system: KbqUnitSystem): { value: string; unit: string };\n/**\n * Converts a byte value into locale-independent file size parts: numeric value and unit abbreviation.\n *\n * @param value - size in bytes.\n * @param _precision param is deprecated, use `Intl.NumberFormat` rounding options instead.\n * @param system - unit system defining abbreviations and base scaling (SI/IEC).\n * @returns Object with the formatted size info.\n * @deprecated `_precision` - this param will be remove in next major version.\n * @TODO remove deprecated (#DS-3849).\n *\n * @example\n * getFormattedSizeParts(1500, 2, 'SI'); // { value: \"1.50\", unit: \"KB\" }\n */\nexport function getFormattedSizeParts(\n value: number,\n _precision: number,\n system: KbqUnitSystem\n): { value: string; unit: string };\nexport function getFormattedSizeParts(\n value: number,\n _precision: number | KbqUnitSystem,\n system?: KbqUnitSystem\n): { value: string; unit: string } {\n let resolvedSystem: KbqUnitSystem | null = null;\n\n if (arguments.length === 2 && typeof _precision === 'object') {\n resolvedSystem = _precision satisfies KbqUnitSystem;\n }\n\n if (arguments.length === 3 && typeof _precision === 'number' && system) {\n resolvedSystem = system;\n }\n\n if (!resolvedSystem) {\n throw new Error('Unexpected arguments size');\n }\n\n const { result, unit } = getHumanizedBytes(value, resolvedSystem);\n\n return {\n value: result.toString(),\n unit\n };\n}\n\n/**\n * Converts bytes to Kb, Mb, Gb\n *\n * @param value the number of bytes\n * @param system the measurement system\n * @param threshold the lower counting threshold\n */\nexport const getHumanizedBytes = (\n value: number,\n system: KbqUnitSystem,\n threshold?: number\n): { result: number; unit: string } => {\n if (!Number.isFinite(value)) {\n throw new Error(KBQ_INVALID_VALUE_ERROR);\n }\n\n const calculatedThreshold = Number.isFinite(threshold) ? threshold : Math.pow(system.base, system.power);\n const orderOfMagnitude: number = Math.pow(system.base, system.power);\n\n let result: number = value;\n let step = 0;\n const len: number = system.abbreviations.length - 1;\n\n while (step < len) {\n if (calculatedThreshold !== undefined && result < calculatedThreshold) {\n break;\n }\n\n step++;\n result = value / Math.pow(orderOfMagnitude, step);\n }\n\n return {\n result,\n unit: system.abbreviations[step]\n };\n};\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { KBQ_DEFAULT_LOCALE_ID, KBQ_LOCALE_SERVICE } from '../../locales';\nimport { KbqDecimalPipe } from '../number/formatter';\nimport {\n KBQ_SIZE_UNITS_CONFIG,\n KBQ_SIZE_UNITS_DEFAULT_CONFIG,\n KbqMeasurementSystem,\n KbqMeasurementSystemType,\n KbqSizeUnitsConfig,\n KbqUnitSystem\n} from './config';\nimport { getFormattedSizeParts } from './size';\n\n@Pipe({\n name: 'kbqDataSize',\n pure: false\n})\nexport class KbqDataSizePipe implements PipeTransform {\n /** Injects the external configuration for size units, if available. */\n readonly externalConfig = inject(KBQ_SIZE_UNITS_CONFIG, { optional: true });\n\n private readonly localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });\n private readonly numberPipe = inject(KbqDecimalPipe, { optional: true });\n private readonly nonBreakingSpace = '\\u00a0';\n private config: KbqSizeUnitsConfig;\n\n constructor() {\n this.localeService?.changes.pipe(takeUntilDestroyed()).subscribe(this.updateLocaleParams);\n\n if (!this.localeService) {\n this.config = this.externalConfig || KBQ_SIZE_UNITS_DEFAULT_CONFIG;\n }\n }\n\n /** Transforms bytes into localized size string */\n transform(\n source: number,\n precision: number = this.config.defaultPrecision,\n unitSystemName: KbqMeasurementSystemType = this.config.defaultUnitSystem,\n locale: string = this.localeService?.id || KBQ_DEFAULT_LOCALE_ID\n ): string {\n const resolvedUnitSystems: Record<KbqMeasurementSystem, KbqUnitSystem> = this.localeService\n ? this.localeService.locales[locale].sizeUnits.unitSystems\n : this.config.unitSystems;\n\n const { value, unit } = getFormattedSizeParts(source, resolvedUnitSystems[unitSystemName]);\n\n const formattedValue = this.numberPipe?.transform(value, `1.0-${precision}`, locale) || value;\n\n return formattedValue ? `${formattedValue}${this.nonBreakingSpace}${unit}` : '';\n }\n\n private updateLocaleParams = () => {\n this.config = this.externalConfig || this.localeService?.getParams('sizeUnits');\n };\n}\n","import { NgModule } from '@angular/core';\nimport { DateAdapter, KBQ_DATE_LOCALE } from '../datetime';\nimport { DateFormatter } from './date/formatter';\nimport {\n AbsoluteDateFormatterImpurePipe,\n AbsoluteDateFormatterPipe,\n AbsoluteDateShortFormatterImpurePipe,\n AbsoluteDateShortFormatterPipe,\n AbsoluteDateTimeFormatterImpurePipe,\n AbsoluteDateTimeFormatterPipe,\n AbsoluteShortDateTimeFormatterImpurePipe,\n AbsoluteShortDateTimeFormatterPipe,\n RangeDateFormatterImpurePipe,\n RangeDateFormatterPipe,\n RangeDateTimeFormatterImpurePipe,\n RangeDateTimeFormatterPipe,\n RangeMiddleDateTimeFormatterImpurePipe,\n RangeMiddleDateTimeFormatterPipe,\n RangeShortDateFormatterImpurePipe,\n RangeShortDateFormatterPipe,\n RangeShortDateTimeFormatterImpurePipe,\n RangeShortDateTimeFormatterPipe,\n RelativeDateFormatterImpurePipe,\n RelativeDateFormatterPipe,\n RelativeDateTimeFormatterImpurePipe,\n RelativeDateTimeFormatterPipe,\n RelativeShortDateFormatterImpurePipe,\n RelativeShortDateFormatterPipe,\n RelativeShortDateTimeFormatterImpurePipe,\n RelativeShortDateTimeFormatterPipe\n} from './date/formatter.pipe';\nimport { KbqDataSizePipe } from './filesize';\nimport { KbqDecimalPipe, KbqRoundDecimalPipe, KbqTableNumberPipe } from './number/formatter';\n\n@NgModule({\n imports: [\n AbsoluteDateFormatterPipe,\n AbsoluteDateTimeFormatterPipe,\n AbsoluteDateShortFormatterPipe,\n AbsoluteShortDateTimeFormatterPipe,\n RelativeDateFormatterPipe,\n RelativeDateTimeFormatterPipe,\n RelativeShortDateFormatterPipe,\n RelativeShortDateTimeFormatterPipe,\n RangeDateFormatterPipe,\n RangeShortDateFormatterPipe,\n RangeDateTimeFormatterPipe,\n RangeShortDateTimeFormatterPipe,\n RangeMiddleDateTimeFormatterPipe,\n AbsoluteDateFormatterImpurePipe,\n AbsoluteDateTimeFormatterImpurePipe,\n AbsoluteDateShortFormatterImpurePipe,\n AbsoluteShortDateTimeFormatterImpurePipe,\n RelativeDateFormatterImpurePipe,\n RelativeDateTimeFormatterImpurePipe,\n RelativeShortDateFormatterImpurePipe,\n RelativeShortDateTimeFormatterImpurePipe,\n RangeDateFormatterImpurePipe,\n RangeShortDateFormatterImpurePipe,\n RangeDateTimeFormatterImpurePipe,\n RangeShortDateTimeFormatterImpurePipe,\n RangeMiddleDateTimeFormatterImpurePipe,\n KbqDataSizePipe,\n KbqDecimalPipe,\n KbqRoundDecimalPipe,\n KbqTableNumberPipe\n ],\n exports: [\n KbqDecimalPipe,\n KbqRoundDecimalPipe,\n KbqTableNumberPipe,\n AbsoluteDateFormatterPipe,\n AbsoluteDateTimeFormatterPipe,\n AbsoluteDateShortFormatterPipe,\n AbsoluteShortDateTimeFormatterPipe,\n RelativeDateFormatterPipe,\n RelativeDateTimeFormatterPipe,\n RelativeShortDateFormatterPipe,\n RelativeShortDateTimeFormatterPipe,\n RangeDateFormatterPipe,\n RangeShortDateFormatterPipe,\n RangeDateTimeFormatterPipe,\n RangeShortDateTimeFormatterPipe,\n RangeMiddleDateTimeFormatterPipe,\n AbsoluteDateFormatterImpurePipe,\n AbsoluteDateTimeFormatterImpurePipe,\n AbsoluteDateShortFormatterImpurePipe,\n AbsoluteShortDateTimeFormatterImpurePipe,\n RelativeDateFormatterImpurePipe,\n RelativeDateTimeFormatterImpurePipe,\n RelativeShortDateFormatterImpurePipe,\n RelativeShortDateTimeFormatterImpurePipe,\n RangeDateFormatterImpurePipe,\n RangeShortDateFormatterImpurePipe,\n RangeDateTimeFormatterImpurePipe,\n RangeShortDateTimeFormatterImpurePipe,\n RangeMiddleDateTimeFormatterImpurePipe,\n KbqDataSizePipe\n ],\n providers: [{ provide: DateFormatter, deps: [DateAdapter, KBQ_DATE_LOCALE] }]\n})\nexport class KbqFormattersModule {}\n\nexport * from './date/formatter';\nexport * from './date/formatter.pipe';\nexport * from './filesize/index';\nexport * from './number/formatter';\n","import { AfterContentInit, ContentChildren, Directive, ElementRef, QueryList } from '@angular/core';\n\n@Directive({\n selector: '.kbq-form__row, .kbq-form__fieldset, .kbq-form__legend',\n exportAs: 'kbqFormElement',\n host: {\n '[class.kbq-form-row_margin]': 'margin'\n }\n})\nexport class KbqFormElement implements AfterContentInit {\n margin = false;\n\n isRow = false;\n isFieldSet = false;\n hasLegend = false;\n isHorizontal = false;\n\n @ContentChildren(KbqFormElement) elements: QueryList<KbqFormElement>;\n\n constructor(private readonly element: ElementRef<HTMLElement>) {}\n\n ngAfterContentInit(): void {\n const classList = this.element.nativeElement.classList;\n\n this.isRow = classList.contains('kbq-form__row');\n this.isHorizontal = classList.contains('kbq-horizontal');\n\n this.isFieldSet = classList.contains('kbq-form__fieldset');\n\n if (this.isFieldSet && this.element.nativeElement.firstElementChild) {\n this.hasLegend = this.element.nativeElement.firstElementChild.classList.contains('kbq-form__legend');\n }\n }\n}\n\n@Directive({\n selector: '.kbq-form-vertical, .kbq-form-horizontal',\n exportAs: 'kbqForm',\n host: {\n class: 'kbq-form'\n }\n})\nexport class KbqForm implements AfterContentInit {\n @ContentChildren(KbqFormElement) elements: QueryList<KbqFormElement>;\n\n ngAfterContentInit(): void {\n this.handleElements(this.elements);\n }\n\n handleElements(elements: QueryList<KbqFormElement>): void {\n elements.forEach((element, index) => {\n const nextElement: KbqFormElement | undefined = elements.get(index + 1);\n\n if (element.isFieldSet && !element.isHorizontal) {\n this.handleElements(element.elements);\n }\n\n element.margin = !!(nextElement && !nextElement.hasLegend);\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { KbqForm, KbqFormElement } from './forms.directive';\n\n@NgModule({\n imports: [\n KbqForm,\n KbqFormElement\n ],\n exports: [\n KbqForm,\n KbqFormElement\n ]\n})\nexport class KbqFormsModule {}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\n/** Provides a set of validators for password form controls. */\nexport class PasswordValidators {\n /**\n * Validator that requires the control's value length to be at least `min` characters.\n *\n * `min` - number of characters.\n *\n * ## Usage:\n *\n * ```typescript\n * const control = new FormControl('password', PasswordValidators.minLength(10));\n * console.log(control.errors); // {minLength: {min: 10, actual: 8}}\n * ```\n */\n static minLength(min: number): ValidatorFn {\n return ({ value }: AbstractControl): ValidationErrors | null => {\n if (typeof value !== 'string') {\n return null;\n }\n\n return value.length >= min ? null : { minLength: { min, actual: value.length } };\n };\n }\n\n /**\n * Validator that requires the control's value length to be at most `max` characters.\n *\n * `max` - number of characters.\n *\n * ## Usage:\n * ```typescript\n * const control = new FormControl('password', PasswordValidators.maxLength(6));\n * console.log(control.errors); // {maxLength: {max: 6, actual: 8}}\n * ```\n */\n static maxLength(max: number): ValidatorFn {\n return ({ value }: AbstractControl): ValidationErrors | null => {\n if (typeof value !== 'string') {\n return null;\n }\n\n return value.length <= max ? null : { maxLength: { max, actual: value.length } };\n };\n }\n\n /**\n * Validator that requires the control's value to be at least `min` uppercase characters.\n *\n * `min` - number of uppercase characters.\n *\n * ### Usage:\n *\n * ```typescript\n * const control = new FormControl('Password', PasswordValidators.minUppercase(2));\n * console.log(control.errors); // {minUppercase: {min: 2, actual: 1}}\n * ```\n */\n static minUppercase(min: number): ValidatorFn {\n return ({ value }: AbstractControl): ValidationErrors | null => {\n if (typeof value !== 'string') {\n return null;\n }\n\n const matches = (value.match(/[A-Z]/g) || []).length;\n\n return matches >= min ? null : { minUppercase: { min, actual: matches } };\n };\n }\n\n /**\n * Validator that requires the control's value to be at least `min` lowercase characters.\n *\n * `min` - number of lowercase characters.\n *\n * ### Usage:\n *\n * ```typescript\n * const control = new FormControl('PASSWORD', PasswordValidators.minLowercase());\n * console.log(control.errors); // {minLowercase: {min: 1, actual: 0}}\n * ```\n */\n static minLowercase(min: number): ValidatorFn {\n return ({ value }: AbstractControl): ValidationErrors | null => {\n if (typeof value !== 'string') {\n return null;\n }\n\n const matches = (value.match(/[a-z]/g) || []).length;\n\n return matches >= min ? null : { minLowercase: { min, actual: matches } };\n };\n }\n\n /**\n * Validator that requires the control's value to be at least `min` number characters.\n *\n * `min` - number of number characters.\n *\n * ### Usage:\n *\n * ```typescript\n * const control = new FormControl('passw0rd', PasswordValidators.minNumber(2));\n * console.log(control.errors); // {minNumber: {min: 2, actual: 1}}\n * ```\n */\n static minNumber(min: number): ValidatorFn {\n return ({ value }: AbstractControl): ValidationErrors | null => {\n if (typeof value !== 'string') {\n return null;\n }\n\n const matches = (value.match(/[\\d]/g) || []).length;\n\n return matches >= min ? null : { minNumber: { min, actual: matches } };\n };\n }\n\n /**\n * Validator that requires the control's value to be at least `min` special characters.\n *\n * `min` - number of special characters.\n *\n * ### Special characters:\n * ```js\n * ['!','@','#','$','%','^','&','*']\n * ```\n *\n * ### Usage:\n *\n * ```typescript\n * const control = new FormControl('pa$sword', PasswordValidators.minSpecial(2));\n * console.log(control.errors); // {minSpecial: {min: 2, actual: 1}}\n * ```\n */\n static minSpecial(min: number): ValidatorFn {\n return ({ value }: AbstractControl): ValidationErrors | null => {\n if (typeof value !== 'string') {\n return null;\n }\n\n const matches = (value.match(/[!@#$%^&*]/g) || []).length;\n\n return matches >= min ? null : { minSpecial: { min, actual: matches } };\n };\n }\n}\n\n/** Provides a set of validators for file-related form controls. */\nexport class FileValidators {\n /**\n * Validator that checks if the file size is less than or equal to the provided `maxSize`.\n *\n * @param maxSize - The maximum allowed file size in bytes.\n *\n * @returns A ValidatorFn function that checks the file size.\n *\n * ## Usage:\n *\n * ```typescript\n * const control = new FormControl(null, [FileValidators.maxFileSize(1024 * 1024)]); // 1MB\n * control.setValue(FILE_LESS_OR_EQUAL_THAN_1MB);\n * console.log(control.errors); // null\n * control.setValue(FILE_MORE_THAN_1MB);\n * console.log(control.errors); // {maxFileSize: { max: 1048576, actual: FILE_MORE_THAN_1MB.size }}\n * ```\n */\n static maxFileSize(maxSize: number): ValidatorFn {\n return ({ value }: AbstractControl): ValidationErrors | null => {\n if (!value) return null;\n\n const size = value instanceof File ? value.size : value.file.size;\n\n if (size > maxSize) {\n return { maxFileSize: { max: maxSize, actual: size } };\n }\n\n return null;\n };\n }\n\n /**\n * Validator that checks whether file's name or MIME type\n * matches one of the accepted extensions or MIME types.\n *\n * @param accept - Array of allowed file extensions or MIME types.\n * @returns ValidatorFn that returns validation error if file type is not accepted, or null otherwise.\n */\n static isCorrectExtension(accept: (`.${string}` | `${string}/${string}`)[]): ValidatorFn {\n return (control: AbstractControl<{ file: File } | null>): ValidationErrors | null => {\n if (!accept?.length || !control.value) return null;\n const { name, type } = control.value.file;\n\n const isValid = accept.some((acceptedExtensionOrMimeType) => {\n const typeAsRegExp = new RegExp(`${acceptedExtensionOrMimeType}$`);\n\n return typeAsRegExp.test(name) || typeAsRegExp.test(type);\n });\n\n return isValid ? null : { fileExtensionMismatch: { expected: accept, actual: name } };\n };\n }\n}\n\n/**\n * Type helper describing accepted file types, referring to:\n * @link https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/input/file#unique_file_type_specifiers\n */\nexport type KbqFileTypeSpecifier = Parameters<typeof FileValidators.isCorrectExtension>[0];\n","import { Pipe, PipeTransform } from '@angular/core';\n\nconst HTML_ESCAPES = { '&': '&', '<': '<', '>': '>', '\"': '"', \"'\": ''' } as const;\nconst HTML_SPECIAL_CHARS = /[&<>\"']/;\nconst HTML_SPECIAL_CHARS_GLOBAL = new RegExp(HTML_SPECIAL_CHARS.source, 'g');\n/** @docs-private */\nexport const kbqHighlightMark = (text: string): string => `<mark class=\"kbq-highlight\">${text}</mark>`;\n\nexport function escapeRegExp(value: string) {\n if (value) {\n return value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n }\n\n return value;\n}\n\nfunction escapeHtml(value: string): string {\n if (!HTML_SPECIAL_CHARS.test(value)) return value;\n\n return value.replace(HTML_SPECIAL_CHARS_GLOBAL, (chr) => HTML_ESCAPES[chr] ?? chr);\n}\n\n@Pipe({ name: 'mcHighlight' })\nexport class KbqHighlightPipe implements PipeTransform {\n transform(value: any, args: any): any {\n if (typeof value !== 'string') return '';\n if (!args || typeof args !== 'string') return escapeHtml(value);\n\n const parts = value.split(new RegExp(`(${escapeRegExp(args)})`, 'gi'));\n\n return parts\n .map((part, i) => {\n const escaped = escapeHtml(part);\n const isMatch = i % 2 === 1;\n\n return isMatch ? kbqHighlightMark(escaped) : escaped;\n })\n .join('');\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { KbqHighlightPipe } from './highlight.pipe';\n\n@NgModule({\n imports: [CommonModule, KbqHighlightPipe],\n exports: [KbqHighlightPipe]\n})\nexport class KbqHighlightModule {}\n\nexport * from './highlight.pipe';\n","import { Directive, ElementRef, QueryList } from '@angular/core';\n\n/**\n * Shared directive to count lines inside a text area, such as a list item.\n * Line elements can be extracted with a @ContentChildren(KbqLine) query, then\n * counted by checking the query list's length.\n */\n@Directive({\n selector: '[kbq-line], [mcLine]',\n host: { class: 'kbq-line' }\n})\nexport class KbqLine {}\n\n/**\n * Helper that takes a query list of lines and sets the correct class on the host.\n * @docs-private\n */\nexport class KbqLineSetter {\n constructor(\n private _lines: QueryList<KbqLine>,\n private _element: ElementRef\n ) {\n this.setLineClass(this._lines.length);\n\n this._lines.changes.subscribe(() => {\n this.setLineClass(this._lines.length);\n });\n }\n\n private setLineClass(count: number): void {\n const minLineClassNumber = 2;\n const maxLineClassNumber = 3;\n\n this.resetClasses();\n\n if (count === minLineClassNumber || count === maxLineClassNumber) {\n this.setClass(`kbq-${count}-line`, true);\n } else if (count > maxLineClassNumber) {\n this.setClass(`kbq-multi-line`, true);\n }\n }\n\n private resetClasses(): void {\n this.setClass('kbq-2-line', false);\n this.setClass('kbq-3-line', false);\n this.setClass('kbq-multi-line', false);\n }\n\n private setClass(className: string, isAdd: boolean): void {\n if (isAdd) {\n this._element.nativeElement.classList.add(className);\n } else {\n this._element.nativeElement.classList.remove(className);\n }\n }\n}\n","import { Platform } from '@angular/cdk/platform';\nimport { Directive, inject } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { KBQ_WINDOW } from '../tokens';\nimport { kbqInjectNativeElement } from '../utils';\n\n@Directive({\n host: {\n '[class.kbq-expanded]': '!collapsed',\n '[class.kbq-collapsed]': 'collapsed'\n }\n})\nexport class KbqRectangleItem {\n protected readonly isBrowser = inject(Platform).isBrowser;\n protected readonly nativeElement = kbqInjectNativeElement();\n private readonly window = inject(KBQ_WINDOW);\n\n readonly state = new Subject<void>();\n\n get collapsed(): boolean {\n return this._collapsed;\n }\n\n set collapsed(value: boolean) {\n this._collapsed = value;\n\n this.state.next();\n }\n\n private _collapsed: boolean;\n\n getOuterElementWidth(): number {\n if (!this.isBrowser) return 0;\n\n const { width, marginLeft, marginRight } = this.window.getComputedStyle(this.nativeElement);\n\n return [width, marginLeft, marginRight].reduce((acc, item) => acc + parseInt(item), 0);\n }\n}\n","import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport {\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n EventEmitter,\n inject,\n InjectionToken,\n Input,\n OnDestroy,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ENTER, SPACE, TAB } from '@koobiq/cdk/keycodes';\nimport { kbqInjectNativeElement } from '../utils';\n\nexport interface KbqOptionActionParent {\n dropdownTrigger: {\n opened: boolean;\n restoreFocus: boolean;\n dropdownClosed: EventEmitter<void>;\n lastDestroyReason: void | 'click' | 'keydown' | 'tab';\n openedBy: Exclude<FocusOrigin, 'program' | null> | undefined;\n toggle(): void;\n };\n tooltipTrigger: {\n disabled: boolean;\n };\n focus(): void;\n}\n\nexport const KBQ_OPTION_ACTION_PARENT = new InjectionToken<KbqOptionActionParent>('KBQ_OPTION_ACTION_PARENT');\n\n@Component({\n selector: 'kbq-option-action',\n exportAs: 'kbqOptionAction',\n template: `\n <ng-content select=\"[kbq-icon]\">\n <i class=\"kbq kbq-icon kbq-contrast-fade kbq-ellipsis-vertical_16\"></i>\n </ng-content>\n `,\n styleUrls: ['./action.scss'],\n host: {\n class: 'kbq-option-action',\n '[class.kbq-expanded]': 'false',\n '[class.kbq-disabled]': 'disabled',\n '[attr.disabled]': 'disabled || null',\n '[attr.tabIndex]': '-1',\n '(click)': 'onClick($event)',\n '(keydown)': 'onKeyDown($event)'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqOptionActionComponent implements AfterViewInit, OnDestroy {\n private readonly nativeElement = kbqInjectNativeElement();\n private readonly focusMonitor = inject(FocusMonitor);\n private readonly option = inject(KBQ_OPTION_ACTION_PARENT);\n\n @Input({ transform: booleanAttribute })\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n if (value !== this.disabled) {\n this._disabled = value;\n }\n }\n\n private _disabled: boolean = false;\n\n hasFocus: boolean = false;\n\n get active(): boolean {\n return this.hasFocus || !!this.option.dropdownTrigger?.opened;\n }\n\n private readonly destroyRef = inject(DestroyRef);\n\n ngAfterViewInit(): void {\n this.focusMonitor\n .monitor(this.nativeElement, true)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((result) => (this.hasFocus = !!result));\n\n if (!this.option.dropdownTrigger) return;\n\n this.option.dropdownTrigger.restoreFocus = false;\n\n this.option.dropdownTrigger.dropdownClosed.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.preventShowingTooltip();\n\n const lastDestroyReason = this.option.dropdownTrigger.lastDestroyReason;\n\n if (lastDestroyReason) {\n this.focus(lastDestroyReason === 'keydown' ? 'keyboard' : 'program');\n }\n });\n }\n\n ngOnDestroy(): void {\n this.focusMonitor.stopMonitoring(this.nativeElement);\n }\n\n focus(origin?: FocusOrigin, options?: FocusOptions) {\n if (this.focusMonitor && origin) {\n this.focusMonitor.focusVia(this.nativeElement, origin, options);\n } else {\n this.nativeElement.focus();\n }\n\n this.hasFocus = true;\n }\n\n onClick($event) {\n $event.stopPropagation();\n }\n\n onKeyDown($event) {\n if ([SPACE, ENTER].includes($event.keyCode) && this.option.dropdownTrigger) {\n this.option.dropdownTrigger.openedBy = 'keyboard';\n } else if ($event.shiftKey && $event.keyCode === TAB) {\n this.hasFocus = false;\n\n this.option.focus();\n } else if ($event.keyCode === TAB) {\n return;\n }\n\n $event.preventDefault();\n $event.stopPropagation();\n }\n\n private preventShowingTooltip() {\n if (!this.option.tooltipTrigger) {\n return;\n }\n\n this.option.tooltipTrigger.disabled = true;\n\n setTimeout(() => (this.option.tooltipTrigger.disabled = false));\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'kbq-action-container',\n exportAs: 'kbqActionContainer',\n template: `\n <div class=\"kbq-action-container__gradient\"></div>\n <div class=\"kbq-action-container__box\">\n <ng-content />\n </div>\n `,\n styleUrls: ['./action-container.scss'],\n host: {\n class: 'kbq-action-container'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqActionContainer {}\n","import { booleanAttribute, ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\n\nlet uniqueOptgroupIdCounter = 0;\n\n/**\n * Component that is used to group instances of `kbq-option`.\n * When options aren't provided as `ng-content`, used as a Group Header with styling.\n */\n@Component({\n selector: 'kbq-optgroup',\n exportAs: 'kbqOptgroup',\n templateUrl: 'optgroup.html',\n styleUrls: ['./optgroup.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'kbq-optgroup',\n '[class.kbq-disabled]': 'disabled'\n }\n})\nexport class KbqOptgroup {\n @Input() label: string;\n\n @Input({ transform: booleanAttribute })\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n if (value !== this.disabled) {\n this._disabled = value;\n }\n }\n\n private _disabled: boolean = false;\n\n /** Unique id for the underlying label. */\n labelId: string = `kbq-optgroup-label-${uniqueOptgroupIdCounter++}`;\n}\n","<label class=\"kbq-optgroup-label\" [id]=\"labelId\">\n {{ label }}\n</label>\n<ng-content select=\"kbq-option, kbq-list-option, kbq-timezone-option, ng-container\" />\n","export enum MultipleMode {\n CHECKBOX = 'checkbox',\n KEYBOARD = 'keyboard'\n}\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { KbqColorDirective } from '../../common-behaviors';\n\nexport type KbqPseudoCheckboxState = 'unchecked' | 'checked' | 'indeterminate' | boolean;\n\n/**\n * Component that shows a simplified checkbox without including any kind of \"real\" checkbox.\n * Meant to be used when the checkbox is purely decorative and a large number of them will be\n * included, such as for the options in a multi-select. Uses no SVGs or complex animations.\n * Note that theming is meant to be handled by the parent element, e.g.\n * `kbq-primary .kbq-pseudo-checkbox`.\n *\n * Note that this component will be completely invisible to screen-reader users. This is *not*\n * interchangeable with `<kbq-checkbox>` and should *not* be used if the user would directly\n * interact with the checkbox. The pseudo-checkbox should only be used as an implementation detail\n * of more complex components that appropriately handle selected / checked state.\n * @docs-private\n */\n@Component({\n selector: 'kbq-pseudo-checkbox',\n templateUrl: 'pseudo-checkbox.partial.html',\n styleUrls: ['pseudo-checkbox.scss', 'pseudo-checkbox-tokens.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'kbq-pseudo-checkbox',\n '[class.kbq-checkbox_big]': 'big',\n '[class.kbq-indeterminate]': 'state === \"indeterminate\"',\n '[class.kbq-checked]': 'state === true || state === \"checked\"',\n '[class.kbq-disabled]': 'disabled'\n },\n preserveWhitespaces: false\n})\nexport class KbqPseudoCheckbox extends KbqColorDirective {\n @Input() big: boolean = false;\n\n @Input() state: KbqPseudoCheckboxState = 'unchecked';\n\n @Input() disabled: boolean = false;\n}\n","<i class=\"kbq-checkbox-checkmark kbq kbq-check-s_16\"></i>\n<i class=\"kbq-checkbox-mixedmark kbq kbq-minus-s_16\"></i>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { KbqPseudoCheckbox } from './pseudo-checkbox';\n\n@NgModule({\n imports: [CommonModule, KbqPseudoCheckbox],\n exports: [KbqPseudoCheckbox]\n})\nexport class KbqPseudoCheckboxModule {}\n","import { ElementRef, InjectionToken } from '@angular/core';\n\nexport interface KbqTitleTextRef {\n textElement?: ElementRef;\n parentTextElement?: ElementRef;\n}\n\nexport const KBQ_TITLE_TEXT_REF = new InjectionToken<KbqTitleTextRef>('KbqTitleTextRef');\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterViewChecked,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Inject,\n InjectionToken,\n Input,\n OnDestroy,\n Optional,\n Output,\n QueryList,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ActiveDescendantKeyManager } from '@koobiq/cdk/a11y';\nimport { ENTER, hasModifierKey, SPACE } from '@koobiq/cdk/keycodes';\nimport { Subject } from 'rxjs';\nimport { KbqPseudoCheckboxModule } from '../selection';\nimport { KBQ_TITLE_TEXT_REF, KbqTitleTextRef } from '../title';\nimport { KbqOptgroup } from './optgroup';\n\n/**\n * Option IDs need to be unique across components, so this counter exists outside of\n * the component definition.\n */\nlet uniqueIdCounter = 0;\n\n/** Event object emitted by KbqOption when selected or deselected. */\nexport class KbqOptionSelectionChange<T = KbqOption> {\n constructor(\n public source: T,\n public isUserInput = false\n ) {}\n}\n\n/**\n * Describes a parent component that manages a list of options.\n * Contains properties that the options can inherit.\n * @docs-private\n */\nexport interface KbqOptionParentComponent {\n multiple?: boolean;\n multiSelection?: boolean;\n withVirtualScroll?: boolean;\n keyManager?: ActiveDescendantKeyManager<KbqOption>;\n setSelectedOptionsByClick: (option: KbqOption) => void;\n}\n\n/**\n * Handler that will update scroll position of elements inside overlay\n */\nexport interface KeyboardNavigationHandler {\n /** Scrolls the active option into view. */\n scrollActiveOptionIntoView(): void;\n}\n\n/**\n * Injection token used to provide the parent component to options.\n */\nexport const KBQ_OPTION_PARENT_COMPONENT = new InjectionToken<KbqOptionParentComponent>('KBQ_OPTION_PARENT_COMPONENT');\n\nexport abstract class KbqOptionBase {\n value: any;\n abstract get viewValue(): string;\n abstract get disabled(): boolean;\n abstract set disabled(value: any);\n\n abstract readonly onSelectionChange: EventEmitter<KbqOptionSelectionChange<any>>;\n\n abstract select(): void;\n\n abstract deselect(): void;\n\n /** Emits the selection change event. */\n protected emitSelectionChangeEvent(isUserInput = false): void {\n this.onSelectionChange.emit(new KbqOptionSelectionChange(this, isUserInput));\n }\n}\n\nexport class KbqVirtualOption extends KbqOptionBase {\n get disabled() {\n return this._disabled;\n }\n set disabled(value: any) {\n this._disabled = coerceBooleanProperty(value);\n }\n\n get selected(): boolean {\n return this._selected;\n }\n\n private _selected = false;\n\n get viewValue(): string {\n return this._viewValue ?? this.value;\n }\n\n readonly onSelectionChange = new EventEmitter<KbqOptionSelectionChange<KbqVirtualOption>>();\n\n constructor(\n public value: any,\n private _disabled: boolean = false,\n private readonly _viewValue?: string\n ) {\n super();\n }\n\n select(): void {\n if (!this._selected) {\n this._selected = true;\n\n this.emitSelectionChangeEvent();\n }\n }\n\n deselect(): void {\n if (this._selected) {\n this._selected = false;\n\n this.emitSelectionChangeEvent();\n }\n }\n}\n\n/**\n * Single option inside of a `<kbq-select>` element.\n */\n@Component({\n selector: 'kbq-option',\n imports: [\n KbqPseudoCheckboxModule\n ],\n templateUrl: 'option.html',\n /* Component inherits styles from `list`, so `list` variables are imported as the single source of truth. */\n styleUrls: ['option.scss', 'option-tokens.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'kbqOption',\n host: {\n '[attr.tabindex]': 'getTabIndex()',\n class: 'kbq-option',\n '[class.kbq-selected]': 'selected',\n '[class.kbq-option-multiple]': 'multiple',\n '[class.kbq-active]': 'active',\n '[class.kbq-disabled]': 'disabled',\n '[id]': 'id',\n\n '(click)': 'handleClick($event)',\n '(mouseenter)': 'onMouseenter()',\n '(keydown)': 'handleKeydown($event)'\n },\n providers: [\n {\n provide: KBQ_TITLE_TEXT_REF,\n useExisting: KbqOption\n }\n ]\n})\nexport class KbqOption extends KbqOptionBase implements AfterViewChecked, OnDestroy, KbqTitleTextRef {\n @ViewChild('kbqTitleText', { static: false }) textElement: ElementRef;\n\n /** The form value of the option. */\n @Input() value: any;\n\n @Input({ transform: booleanAttribute }) selectable: boolean = true;\n\n // todo this flag will need to be rethought in the future (added for filter panel)\n @Input({ transform: booleanAttribute }) userSelect: boolean = false;\n\n @Input()\n get showCheckbox() {\n return this._showCheckbox === undefined ? this.multiple : this._showCheckbox;\n }\n\n set showCheckbox(value) {\n this._showCheckbox = coerceBooleanProperty(value);\n }\n\n private _showCheckbox: boolean;\n\n /** Event emitted when the option is selected or deselected. */\n @Output() readonly onSelectionChange = new EventEmitter<KbqOptionSelectionChange>();\n\n /** Emits when the state of the option changes and any parents have to be notified. */\n readonly stateChanges = new Subject<void>();\n\n /**\n * The displayed value of the option. It is necessary to show the selected option in the\n * select's trigger.\n */\n @Input()\n get viewValue(): string {\n return this._viewValue || (this.getHostElement().textContent || '').trim();\n }\n\n set viewValue(value: string) {\n this._viewValue = value;\n }\n\n private _viewValue: string;\n\n /** Whether the wrapping component is in multiple selection mode. */\n get multiple(): boolean {\n return !!this.parent?.multiSelection;\n }\n\n get id(): string {\n return this._id;\n }\n\n private _id = `kbq-option-${uniqueIdCounter++}`;\n\n get selected(): boolean {\n return this._selected;\n }\n\n private _selected = false;\n\n @Input()\n get disabled() {\n return (this.group && this.group.disabled) || this._disabled;\n }\n\n set disabled(value: any) {\n this._disabled = coerceBooleanProperty(value);\n }\n\n private _disabled = false;\n\n /**\n * Whether or not the option is currently active and ready to be selected.\n * An active option displays styles as if it is focused, but the\n * focus is actually retained somewhere else. This comes in handy\n * for components like autocomplete where focus must remain on the input.\n */\n get active(): boolean {\n return this._active;\n }\n\n private _active = false;\n\n private mostRecentViewValue = '';\n\n /**\n * Flag that indicates whether the component is currently focused by a mouse interaction.\n *\n * When set to `true`, the component has focus resulting from a mouse click or\n * other pointer event. It is automatically cleared when the component loses\n * focus or if focus is obtained through keyboard navigation or programmatic means.\n */\n private isFocusedByMouse: boolean = false;\n\n constructor(\n private readonly elementRef: ElementRef<HTMLElement>,\n private readonly changeDetectorRef: ChangeDetectorRef,\n @Optional() @Inject(KBQ_OPTION_PARENT_COMPONENT) protected readonly parent: KbqOptionParentComponent,\n @Optional() readonly group: KbqOptgroup\n ) {\n super();\n }\n\n ngAfterViewChecked() {\n // Since parent components could be using the option's label to display the selected values\n // (e.g. `kbq-select`) and they don't have a way of knowing if the option's label has changed\n // we have to check for changes in the DOM ourselves and dispatch an event. These checks are\n // relatively cheap, however we still limit them only to selected options in order to avoid\n // hitting the DOM too often.\n if (this._selected) {\n const viewValue = this.viewValue;\n\n if (viewValue !== this.mostRecentViewValue) {\n this.mostRecentViewValue = viewValue;\n this.stateChanges.next();\n }\n }\n }\n\n ngOnDestroy() {\n this.stateChanges.complete();\n }\n\n /** @docs-private */\n getHeight(): number {\n const element = this.elementRef.nativeElement;\n\n // For SSR compatibility\n if (typeof element.getClientRects !== 'function') return 0;\n\n return element.getClientRects()[0]?.height ?? 0;\n }\n\n select(emitEvent: boolean = true): void {\n if (!this._selected) {\n this._selected = true;\n\n this.changeDetectorRef.markForCheck();\n if (emitEvent) this.emitSelectionChangeEvent();\n }\n }\n\n deselect(emitEvent: boolean = true): void {\n if (this._selected) {\n this._selected = false;\n\n this.changeDetectorRef.markForCheck();\n if (emitEvent) this.emitSelectionChangeEvent();\n }\n }\n\n focus(): void {\n const element = this.getHostElement();\n\n if (typeof element.focus === 'function') {\n element.focus({ preventScroll: this.isFocusedByMouse });\n\n this.isFocusedByMouse = false;\n }\n }\n\n /**\n * This method sets display styles on the option to make it appear\n * active. This is used by the ActiveDescendantKeyManager so key\n * events will display the proper options as active on arrow key events.\n */\n setActiveStyles(): void {\n if (!this._active) {\n this._active = true;\n this.changeDetectorRef.markForCheck();\n }\n }\n\n /**\n * This method removes display styles on the option that made it appear\n * active. This is used by the ActiveDescendantKeyManager so key\n * events will display the proper options as active on arrow key events.\n */\n setInactiveStyles(): void {\n if (this._active) {\n this._active = false;\n this.changeDetectorRef.markForCheck();\n }\n }\n\n /** Gets the label to be used when determining whether the option should be focused. */\n getLabel(): string {\n return this.viewValue;\n }\n\n /** @docs-private */\n handleClick(event: MouseEvent): void {\n if (hasModifierKey(event, 'shiftKey')) {\n this.parent.setSelectedOptionsByClick(this);\n } else {\n this.selectViaInteraction();\n }\n }\n\n /** Ensures the option is selected when activated from the keyboard. */\n handleKeydown(event: KeyboardEvent): void {\n if (event.keyCode === ENTER || event.keyCode === SPACE) {\n this.selectViaInteraction();\n\n // Prevent the page from scrolling down and form submits.\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n /**\n * `Selects the option while indicating the selection came from the user. Used to\n * determine if the select's view -> model callback should be invoked.`\n */\n selectViaInteraction(): void {\n if (this.userSelect) return;\n\n if (!this.disabled && this.selectable) {\n this._selected = this.multiple ? !this._selected : true;\n\n this.changeDetectorRef.markForCheck();\n this.emitSelectionChangeEvent(true);\n }\n }\n\n getTabIndex(): string {\n return this.disabled ? '-1' : '0';\n }\n\n getHostElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n /** @docs-private */\n protected onMouseenter() {\n if (this.disabled) return;\n\n this.isFocusedByMouse = true;\n\n this.parent?.keyManager?.setActiveItem(this);\n }\n}\n\n/**\n * Counts the amount of option group labels that precede the specified option.\n * @param optionIndex Index of the option at which to start counting.\n * @param options Flat list of all of the options.\n * @param optionGroups Flat list of all of the option groups.\n * @docs-private\n */\nexport function countGroupLabelsBeforeOption(\n optionIndex: number,\n options: QueryList<KbqOption>,\n optionGroups: QueryList<KbqOptgroup>\n): number {\n if (optionGroups.length) {\n const optionsArray = options.toArray();\n const groups = optionGroups.toArray();\n\n let groupCounter = 0;\n\n for (let i = 0; i < optionIndex + 1; i++) {\n if (optionsArray[i].group && optionsArray[i].group === groups[groupCounter]) {\n groupCounter++;\n }\n }\n\n return groupCounter;\n }\n\n return 0;\n}\n\n/**\n * Determines the position to which to scroll a panel in order for an option to be into view.\n * @param optionIndex Index of the option to be scrolled into the view.\n * @param optionHeight Height of the options.\n * @param currentScrollPosition Current scroll position of the panel.\n * @param panelHeight Height of the panel.\n * @docs-private\n */\nexport function getOptionScrollPosition(\n optionIndex: number,\n optionHeight: number,\n currentScrollPosition: number,\n panelHeight: number\n): number {\n const optionOffset = optionIndex * optionHeight;\n\n if (optionOffset < currentScrollPosition) {\n return optionOffset;\n }\n\n if (optionOffset + optionHeight > currentScrollPosition + panelHeight) {\n return Math.max(0, optionOffset - panelHeight + optionHeight);\n }\n\n return currentScrollPosition;\n}\n","@if (showCheckbox) {\n <ng-content select=\"kbq-pseudo-checkbox\">\n <kbq-pseudo-checkbox [disabled]=\"disabled\" [state]=\"selected ? 'checked' : 'unchecked'\" />\n </ng-content>\n}\n\n<span #kbqTitleText class=\"kbq-option-text\">\n <ng-content />\n</span>\n","import { NgModule } from '@angular/core';\nimport { KbqPseudoCheckbox } from '../selection';\nimport { KbqOptionActionComponent } from './action';\nimport { KbqOptgroup } from './optgroup';\nimport { KbqOption } from './option';\n\n@NgModule({\n imports: [KbqPseudoCheckbox, KbqOption, KbqOptgroup, KbqOptionActionComponent],\n exports: [KbqOption, KbqOptgroup, KbqOptionActionComponent]\n})\nexport class KbqOptionModule {}\n","import { ConnectionPositionPair, Overlay, ScrollStrategy } from '@angular/cdk/overlay';\nimport { InjectionToken } from '@angular/core';\n\nexport const POSITION_MAP: { [key: string]: ConnectionPositionPair } = {\n top: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom'\n },\n topCenter: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom'\n },\n topLeft: {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom'\n },\n topRight: {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom'\n },\n right: {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center'\n },\n rightTop: {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top'\n },\n rightBottom: {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom'\n },\n bottom: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top'\n },\n bottomCenter: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top'\n },\n bottomLeft: {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n },\n bottomRight: {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top'\n },\n left: {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center'\n },\n leftTop: {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top'\n },\n leftBottom: {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom'\n }\n};\n\nexport const EXTENDED_OVERLAY_POSITIONS = objectValues([\n POSITION_MAP.top,\n POSITION_MAP.topLeft,\n POSITION_MAP.topRight,\n POSITION_MAP.right,\n POSITION_MAP.rightTop,\n POSITION_MAP.rightBottom,\n POSITION_MAP.bottom,\n POSITION_MAP.bottomLeft,\n POSITION_MAP.bottomRight,\n POSITION_MAP.left,\n POSITION_MAP.leftTop,\n POSITION_MAP.leftBottom\n]);\n\nexport const TOP_POSITION_PRIORITY = objectValues([\n POSITION_MAP.top,\n POSITION_MAP.bottom,\n POSITION_MAP.right,\n POSITION_MAP.rightBottom,\n POSITION_MAP.leftBottom,\n POSITION_MAP.bottomLeft,\n POSITION_MAP.bottomRight\n]);\n\nexport const BOTTOM_POSITION_PRIORITY = objectValues([\n POSITION_MAP.bottom,\n POSITION_MAP.top,\n POSITION_MAP.topLeft,\n POSITION_MAP.topRight,\n POSITION_MAP.rightBottom,\n POSITION_MAP.leftBottom\n]);\n\nexport const RIGHT_POSITION_PRIORITY = objectValues([\n POSITION_MAP.right,\n POSITION_MAP.left,\n POSITION_MAP.leftTop,\n POSITION_MAP.leftBottom,\n POSITION_MAP.top,\n POSITION_MAP.bottom\n]);\n\nexport const LEFT_POSITION_PRIORITY = objectValues([\n POSITION_MAP.left,\n POSITION_MAP.right,\n POSITION_MAP.rightTop,\n POSITION_MAP.rightBottom,\n POSITION_MAP.top,\n POSITION_MAP.bottom\n]);\n\nexport const RIGHT_TOP_POSITION_PRIORITY = objectValues([\n POSITION_MAP.rightTop,\n POSITION_MAP.leftTop,\n POSITION_MAP.left,\n POSITION_MAP.leftBottom,\n POSITION_MAP.topLeft,\n POSITION_MAP.bottomLeft\n]);\n\nexport const RIGHT_BOTTOM_POSITION_PRIORITY = objectValues([\n POSITION_MAP.rightBottom,\n POSITION_MAP.leftBottom,\n POSITION_MAP.left,\n POSITION_MAP.leftTop,\n POSITION_MAP.topLeft,\n POSITION_MAP.bottomLeft\n]);\n\nexport const LEFT_TOP_POSITION_PRIORITY = objectValues([\n POSITION_MAP.leftTop,\n POSITION_MAP.rightTop,\n POSITION_MAP.right,\n POSITION_MAP.rightBottom,\n POSITION_MAP.topRight,\n POSITION_MAP.bottomRight\n]);\n\nexport const LEFT_BOTTOM_POSITION_PRIORITY = objectValues([\n POSITION_MAP.leftBottom,\n POSITION_MAP.rightBottom,\n POSITION_MAP.right,\n POSITION_MAP.rightTop,\n POSITION_MAP.topRight,\n POSITION_MAP.bottomRight\n]);\n\nexport const TOP_LEFT_POSITION_PRIORITY = objectValues([\n POSITION_MAP.topLeft,\n POSITION_MAP.topRight,\n POSITION_MAP.bottomLeft,\n POSITION_MAP.bottom,\n POSITION_MAP.bottomRight,\n POSITION_MAP.leftBottom,\n POSITION_MAP.rightBottom\n]);\n\nexport const TOP_RIGHT_POSITION_PRIORITY = objectValues([\n POSITION_MAP.topRight,\n POSITION_MAP.topLeft,\n POSITION_MAP.bottomRight,\n POSITION_MAP.bottom,\n POSITION_MAP.bottomLeft,\n POSITION_MAP.leftBottom,\n POSITION_MAP.rightBottom\n]);\n\nexport const BOTTOM_RIGHT_POSITION_PRIORITY = objectValues([\n POSITION_MAP.bottomRight,\n POSITION_MAP.bottomLeft,\n POSITION_MAP.topRight,\n POSITION_MAP.top,\n POSITION_MAP.topLeft,\n POSITION_MAP.leftTop,\n POSITION_MAP.rightTop\n]);\n\nexport const BOTTOM_LEFT_POSITION_PRIORITY = objectValues([\n POSITION_MAP.bottomLeft,\n POSITION_MAP.bottomRight,\n POSITION_MAP.topLeft,\n POSITION_MAP.top,\n POSITION_MAP.topRight,\n POSITION_MAP.rightTop,\n POSITION_MAP.leftTop\n]);\n\nexport const POSITION_PRIORITY_STRATEGY = {\n top: TOP_POSITION_PRIORITY,\n topLeft: TOP_LEFT_POSITION_PRIORITY,\n topRight: TOP_RIGHT_POSITION_PRIORITY,\n bottom: BOTTOM_POSITION_PRIORITY,\n bottomLeft: BOTTOM_LEFT_POSITION_PRIORITY,\n bottomRight: BOTTOM_RIGHT_POSITION_PRIORITY,\n left: LEFT_POSITION_PRIORITY,\n leftTop: LEFT_TOP_POSITION_PRIORITY,\n leftBottom: LEFT_BOTTOM_POSITION_PRIORITY,\n right: RIGHT_POSITION_PRIORITY,\n rightTop: RIGHT_TOP_POSITION_PRIORITY,\n rightBottom: RIGHT_BOTTOM_POSITION_PRIORITY\n};\n\nexport const POSITION_TO_CSS_MAP: { [key: string]: string } = {\n top: 'top',\n topLeft: 'top-left',\n topRight: 'top-right',\n right: 'right',\n rightTop: 'right-top',\n rightBottom: 'right-bottom',\n left: 'left',\n leftTop: 'left-top',\n leftBottom: 'left-bottom',\n bottom: 'bottom',\n bottomLeft: 'bottom-left',\n bottomRight: 'bottom-right'\n};\n\nexport const KBQ_CUSTOM_SCROLL_STRATEGY_PROVIDER = <T>(\n token: InjectionToken<T>,\n factory: (overlay: Overlay) => () => ScrollStrategy\n) => ({\n provide: token,\n deps: [Overlay],\n useFactory: factory\n});\n\nfunction arrayMap<T, S>(array: T[], iteratee: (item: T, index: number, arr: T[]) => S): S[] {\n let index = -1;\n const length = array === null ? 0 : array.length;\n const result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n\n return result;\n}\n\nfunction baseValues<T>(object: T[], props: string[]): T[] {\n return arrayMap(props, (key) => object[key]);\n}\n\nfunction objectValues<T>(object: T[]): T[] {\n return object === null ? [] : baseValues(object, Object.keys(object));\n}\n","import { InjectionToken } from '@angular/core';\nimport { TooltipSizeArrowSize } from '@koobiq/design-tokens';\nimport { Observable } from 'rxjs';\nimport { KbqEnumValues } from '../utils';\n\nexport interface KbqParentPopup {\n closedStream: Observable<boolean>;\n}\n\n/**\n * InjectionToken for providing component with popup. Used in select and tree-select for tooltip.\n */\nexport const KBQ_PARENT_POPUP = new InjectionToken<KbqParentPopup>('kbq-parent-popup');\n\nexport enum PopUpPlacements {\n Top = 'top',\n TopLeft = 'topLeft',\n TopRight = 'topRight',\n Right = 'right',\n RightTop = 'rightTop',\n RightBottom = 'rightBottom',\n Left = 'left',\n LeftTop = 'leftTop',\n LeftBottom = 'leftBottom',\n Bottom = 'bottom',\n BottomLeft = 'bottomLeft',\n BottomRight = 'bottomRight'\n}\n\nexport type KbqPopUpPlacementValues = KbqEnumValues<PopUpPlacements>;\n\nexport type KbqStickToWindowPlacementValues = KbqEnumValues<\n PopUpPlacements.Top | PopUpPlacements.Right | PopUpPlacements.Bottom | PopUpPlacements.Left\n>;\n\nexport enum PopUpVisibility {\n Initial = 'initial',\n Visible = 'visible',\n Hidden = 'hidden'\n}\n\nexport enum PopUpTriggers {\n Click = 'click',\n Focus = 'focus',\n Hover = 'hover',\n Keydown = 'keydown',\n Program = 'program'\n}\n\nexport enum PopUpSizes {\n Small = 'small',\n Medium = 'medium',\n // Normal is deprecated and will be deleted in 16.x\n Normal = 'medium',\n Large = 'large'\n}\n\nexport type KbqPopUpSizeValues = KbqEnumValues<PopUpSizes>;\n\n/**\n * Default value when configuring overlay in popups (Autocomplete, Datepicker, Dropdown, Select, Tags Autocomplete,\n * Tags Input, Timezone, TreeSelect).\n */\nexport const defaultOffsetY: number = 4;\n\n/**\n * Variable used for offsetY(X) calculations when applying Angular Overlay\n *\n * @docs-private\n */\nexport const ARROW_BOTTOM_MARGIN_AND_HALF_HEIGHT = Math.round(parseInt(TooltipSizeArrowSize) * Math.sqrt(2));\n","import { FocusTrapInertStrategy } from '@angular/cdk/a11y';\n\n// Need replace EventListenerFocusTrapInertStrategy to EmptyFocusTrapStrategy for focus work correctly with open popover\nexport class EmptyFocusTrapStrategy implements FocusTrapInertStrategy {\n preventFocus(): void {}\n allowFocus(): void {}\n}\n","import { AnimationEvent } from '@angular/animations';\nimport { coerceCssPixelValue } from '@angular/cdk/coercion';\nimport {\n ChangeDetectorRef,\n DestroyRef,\n Directive,\n ElementRef,\n EventEmitter,\n inject,\n OnDestroy,\n Renderer2,\n TemplateRef\n} from '@angular/core';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { PopUpPlacements, PopUpVisibility } from './constants';\nimport { KbqPopUpTrigger } from './pop-up-trigger';\n\n@Directive({\n host: {\n '(mouseenter)': 'hovered.next(true)',\n '(mouseleave)': 'hovered.next(false)'\n }\n})\nexport abstract class KbqPopUp implements OnDestroy {\n protected readonly renderer: Renderer2 = inject(Renderer2);\n protected readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n protected readonly changeDetectorRef: ChangeDetectorRef = inject(ChangeDetectorRef);\n readonly destroyRef = inject(DestroyRef);\n\n /** Stream that emits when the popup item is hovered. */\n readonly hovered = new BehaviorSubject<boolean>(false);\n\n trigger: KbqPopUpTrigger<unknown>;\n header: string | TemplateRef<any>;\n content: string | TemplateRef<any>;\n context: { $implicit: any } | null;\n\n classMap = {};\n\n warning: boolean;\n arrow: boolean;\n defaultPaddings: boolean;\n\n offset: number | null;\n\n visibility = PopUpVisibility.Initial;\n visibleChange = new EventEmitter<boolean>();\n\n protected prefix: string;\n\n /** Subject for notifying that the tooltip has been hidden from the view */\n protected readonly onHideSubject = new Subject<void>();\n\n protected closeOnInteraction: boolean = false;\n\n private showTimeoutId: any;\n private hideTimeoutId: any;\n\n ngOnDestroy() {\n clearTimeout(this.showTimeoutId);\n clearTimeout(this.hideTimeoutId);\n\n this.onHideSubject.complete();\n this.hovered.complete();\n }\n\n isTemplateRef(value: any): boolean {\n return value instanceof TemplateRef;\n }\n\n show(delay: number): void {\n if (this.hideTimeoutId) {\n clearTimeout(this.hideTimeoutId);\n }\n\n this.closeOnInteraction = true;\n\n this.showTimeoutId = setTimeout(() => {\n this.showTimeoutId = undefined;\n\n this.visibility = PopUpVisibility.Visible;\n this.visibleChange.emit(true);\n // Mark for check so if any parent component has set the\n // ChangeDetectionStrategy to OnPush it will be checked anyways\n this.markForCheck();\n\n if (this.trigger.triggerName === 'mouseenter') {\n this.addEventListenerForHide();\n }\n }, delay);\n }\n\n /**\n * Hides the popup after a specified delay.\n *\n * The hide timeout triggers the hiding of the popup by updating visibility and emitting relevant events.\n * Also, it marks for check to ensure proper change detection, especially for parent components with OnPush strategy.\n * @param delay - The delay in milliseconds before hiding the popup.\n */\n hide(delay: number): void {\n if (this.showTimeoutId) {\n clearTimeout(this.showTimeoutId);\n }\n\n this.hideTimeoutId = setTimeout(() => {\n this.hideTimeoutId = undefined;\n this.visibility = PopUpVisibility.Hidden;\n\n this.visibleChange.emit(false);\n this.onHideSubject.next();\n\n // Mark for check so if any parent component has set the\n // ChangeDetectionStrategy to OnPush it will be checked anyways\n this.markForCheck();\n }, delay);\n }\n\n isVisible(): boolean {\n return this.visibility === PopUpVisibility.Visible;\n }\n\n updateClassMap(placement: string, customClass: string, classMap?): void {\n this.classMap = {\n [`${this.prefix}_placement-${placement}`]: true,\n [customClass]: !!customClass,\n ...classMap\n };\n }\n\n /** Returns an observable that notifies when the tooltip has been hidden from view. */\n afterHidden(): Observable<void> {\n return this.onHideSubject.asObservable();\n }\n\n markForCheck(): void {\n this.changeDetectorRef.markForCheck();\n }\n\n detectChanges(): void {\n this.changeDetectorRef.detectChanges();\n }\n\n animationStart() {\n this.closeOnInteraction = false;\n }\n\n animationDone({ toState }: AnimationEvent): void {\n if (toState === PopUpVisibility.Hidden && !this.isVisible()) {\n this.onHideSubject.next();\n }\n\n if (toState === PopUpVisibility.Visible || toState === PopUpVisibility.Hidden) {\n this.closeOnInteraction = true;\n }\n }\n\n handleBodyInteraction(): void {\n if (this.closeOnInteraction) {\n this.hide(0);\n }\n }\n\n protected addEventListenerForHide() {\n this.elementRef.nativeElement.addEventListener('mouseleave', () => this.hide(0));\n }\n\n protected setStickPosition() {\n const oppositeSide = {\n [PopUpPlacements.Top]: PopUpPlacements.Bottom,\n [PopUpPlacements.Bottom]: PopUpPlacements.Top,\n [PopUpPlacements.Right]: PopUpPlacements.Left,\n [PopUpPlacements.Left]: PopUpPlacements.Right\n }[this.trigger.stickToWindow];\n\n if (!this.trigger.stickToWindow || !oppositeSide) return;\n\n this.arrow = false;\n\n if (this.trigger.container) {\n const { width, height } = this.elementRef.nativeElement.getBoundingClientRect();\n const { right, left, top, bottom } = this.trigger.container.getBoundingClientRect();\n\n if (this.trigger.stickToWindow === PopUpPlacements.Right) {\n this.renderer.setStyle(\n this.trigger.overlayRef?.overlayElement,\n 'left',\n coerceCssPixelValue(right - width)\n );\n } else if (this.trigger.stickToWindow === PopUpPlacements.Left) {\n this.renderer.setStyle(this.trigger.overlayRef?.overlayElement, 'left', coerceCssPixelValue(left));\n } else if (this.trigger.stickToWindow === PopUpPlacements.Top) {\n this.renderer.setStyle(this.trigger.overlayRef?.overlayElement, 'top', coerceCssPixelValue(top));\n } else if (this.trigger.stickToWindow === PopUpPlacements.Bottom) {\n this.renderer.setStyle(\n this.trigger.overlayRef?.overlayElement,\n 'top',\n coerceCssPixelValue(bottom - height)\n );\n }\n\n this.renderer.setStyle(this.trigger.overlayRef?.overlayElement, 'right', 'unset');\n this.renderer.setStyle(this.trigger.overlayRef?.overlayElement, 'bottom', 'unset');\n } else {\n this.renderer.setStyle(this.trigger.overlayRef?.overlayElement, this.trigger.stickToWindow, 0);\n this.renderer.setStyle(this.trigger.overlayRef?.overlayElement, oppositeSide, 'unset');\n }\n }\n}\n","import { Renderer2 } from '@angular/core';\n\nexport const applyPopupMargins = (renderer: Renderer2, element: HTMLElement, name: string, value: string) => {\n const classList = element.classList;\n\n if (\n classList.contains(`${name}_placement-top`) ||\n classList.contains(`${name}_placement-top-left`) ||\n classList.contains(`${name}_placement-top-right`)\n ) {\n renderer.setStyle(element, 'margin-bottom', value);\n }\n\n if (\n classList.contains(`${name}_placement-right`) ||\n classList.contains(`${name}_placement-right-top`) ||\n classList.contains(`${name}_placement-right-bottom`)\n ) {\n renderer.setStyle(element, 'margin-left', value);\n }\n\n if (\n classList.contains(`${name}_placement-bottom`) ||\n classList.contains(`${name}_placement-bottom-left`) ||\n classList.contains(`${name}_placement-bottom-right`)\n ) {\n renderer.setStyle(element, 'margin-top', value);\n }\n\n if (\n classList.contains(`${name}_placement-left`) ||\n classList.contains(`${name}_placement-left-top`) ||\n classList.contains(`${name}_placement-left-bottom`)\n ) {\n renderer.setStyle(element, 'margin-right', value);\n }\n};\n","import { Directionality } from '@angular/cdk/bidi';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n CdkScrollable,\n ConnectedOverlayPositionChange,\n ConnectionPositionPair,\n FlexibleConnectedPositionStrategy,\n Overlay,\n OverlayConfig,\n OverlayRef,\n ScrollDispatcher,\n ScrollStrategy\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectorRef,\n DestroyRef,\n Directive,\n ElementRef,\n EventEmitter,\n inject,\n NgZone,\n OnDestroy,\n OnInit,\n TemplateRef,\n Type,\n ViewContainerRef\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ENTER, ESCAPE, SPACE } from '@koobiq/cdk/keycodes';\nimport { BehaviorSubject, interval, Observable, Subscription } from 'rxjs';\nimport { AsyncScheduler } from 'rxjs/internal/scheduler/AsyncScheduler';\nimport { distinctUntilChanged, filter, delay as rxDelay } from 'rxjs/operators';\nimport {\n EXTENDED_OVERLAY_POSITIONS,\n POSITION_MAP,\n POSITION_PRIORITY_STRATEGY,\n POSITION_TO_CSS_MAP\n} from '../overlay/overlay-position-map';\nimport {\n ARROW_BOTTOM_MARGIN_AND_HALF_HEIGHT,\n KbqPopUpPlacementValues,\n KbqStickToWindowPlacementValues,\n PopUpPlacements,\n PopUpTriggers\n} from './constants';\nimport { KbqPopUp } from './pop-up';\n\ntype KbqPopupTriggerOffset = Pick<ConnectionPositionPair, 'offsetX' | 'offsetY'>;\n\nconst getOffset = (\n { originX, overlayX, originY, overlayY }: ConnectionPositionPair,\n { width, height }: DOMRect\n): KbqPopupTriggerOffset => {\n const offset: KbqPopupTriggerOffset = {};\n const elementWidthHalf = width / 2;\n const elementHeightHalf = height / 2;\n\n // alignment should be applied only if the element is small\n if (ARROW_BOTTOM_MARGIN_AND_HALF_HEIGHT > elementWidthHalf) {\n const PADDING = ARROW_BOTTOM_MARGIN_AND_HALF_HEIGHT - elementWidthHalf;\n\n if (originX === overlayX) {\n if (originX === 'start') {\n offset.offsetX = -PADDING;\n }\n\n if (originX === 'end') {\n offset.offsetX = PADDING;\n }\n }\n }\n\n // alignment should be applied only if the element is small\n if (ARROW_BOTTOM_MARGIN_AND_HALF_HEIGHT > elementHeightHalf) {\n const PADDING = ARROW_BOTTOM_MARGIN_AND_HALF_HEIGHT - elementHeightHalf;\n\n if (originY === overlayY) {\n if (originY === 'top') {\n offset.offsetY = -PADDING;\n }\n\n if (originY === 'bottom') {\n offset.offsetY = PADDING;\n }\n }\n }\n\n return offset;\n};\n\n@Directive({\n host: {\n '(mouseenter)': 'hovered.next(true)',\n '(mouseleave)': 'hovered.next(false)'\n }\n})\nexport abstract class KbqPopUpTrigger<T> implements OnInit, OnDestroy {\n /** Stream that emits when the popupTrigger is hovered. */\n readonly hovered = new BehaviorSubject<boolean>(false);\n\n protected readonly scheduler = inject(AsyncScheduler, { optional: true }) || undefined;\n\n protected readonly overlay: Overlay = inject(Overlay);\n protected readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n protected readonly ngZone: NgZone = inject(NgZone);\n protected readonly scrollDispatcher: ScrollDispatcher = inject(ScrollDispatcher);\n protected readonly hostView: ViewContainerRef = inject(ViewContainerRef);\n protected readonly direction = inject(Directionality, { optional: true });\n protected readonly destroyRef = inject(DestroyRef);\n protected readonly scrollable = inject(CdkScrollable, { optional: true });\n\n protected abstract scrollStrategy: () => ScrollStrategy;\n\n /** @docs-private */\n protected externalNativeElement: HTMLElement;\n\n private popUpChangeDetectorRef = inject(ChangeDetectorRef);\n\n get isOpen(): boolean {\n return this._isOpen;\n }\n\n set isOpen(value: boolean) {\n this._isOpen = value;\n\n this.popUpChangeDetectorRef.markForCheck();\n }\n\n private _isOpen: boolean = false;\n\n enterDelay: number = 0;\n leaveDelay: number = 0;\n\n triggerName: string;\n\n overlayRef: OverlayRef | null;\n\n stickToWindow: KbqStickToWindowPlacementValues;\n\n container: HTMLElement;\n\n abstract disabled: boolean;\n abstract arrow: boolean;\n abstract trigger: string;\n abstract customClass: string;\n abstract content: string | TemplateRef<any>;\n\n abstract placementChange: EventEmitter<string>;\n abstract visibleChange: EventEmitter<boolean>;\n\n protected abstract originSelector: string;\n protected abstract overlayConfig: OverlayConfig;\n\n protected placement: KbqPopUpPlacementValues = PopUpPlacements.Top;\n protected placementPriority: string | string[] | null = null;\n\n protected visible = false;\n\n protected _content: string | TemplateRef<any>;\n protected _disabled: boolean;\n protected _customClass: string;\n\n protected portal: ComponentPortal<T>;\n protected instance: any | null;\n\n protected listeners = new Map<string, EventListener>();\n protected closingActionsSubscription: Subscription;\n\n protected readonly availablePositions: { [key: string]: ConnectionPositionPair } = POSITION_MAP;\n\n protected mouseEvent?: MouseEvent;\n protected strategy: FlexibleConnectedPositionStrategy;\n\n /** Hide pop-up with timeout. Need if you want to show pop-up after leaving trigger */\n protected hideWithTimeout: boolean = false;\n\n /** prevents closure by any event */\n protected preventClose: boolean = false;\n\n abstract updateClassMap(newPlacement?: string): void;\n\n abstract updateData(): void;\n\n abstract closingActions(): Observable<any>;\n\n abstract getOverlayHandleComponentType(): Type<T>;\n\n ngOnInit(): void {\n this.initListeners();\n }\n\n ngOnDestroy(): void {\n this.overlayRef?.dispose();\n\n this.listeners.forEach(this.removeEventListener);\n\n this.listeners.clear();\n }\n\n updatePlacement(value: KbqPopUpPlacementValues) {\n if (POSITION_TO_CSS_MAP[value]) {\n this.placement = value;\n\n this.updateClassMap();\n } else {\n this.placement = PopUpPlacements.Top;\n\n // eslint-disable-next-line no-console\n console.warn(`Unknown position: ${value}. Will used default position: ${this.placement}`);\n }\n\n if (this.visible) {\n this.updatePosition();\n }\n }\n\n updatePlacementPriority(value) {\n if (value && value.length > 0) {\n this.placementPriority = value;\n } else {\n this.placementPriority = null;\n }\n }\n\n updateVisible(externalValue: boolean) {\n const value = coerceBooleanProperty(externalValue);\n\n if (this.visible !== value) {\n this.visible = value;\n\n if (value) {\n this.show();\n } else {\n this.hide();\n }\n }\n }\n\n keydownHandler(event: KeyboardEvent) {\n if (this.isOpen && event.keyCode === ESCAPE) {\n this.hide();\n }\n }\n\n touchendHandler() {\n this.hide();\n }\n\n show(delay: number = this.enterDelay): void {\n if (this.disabled || this.instance) {\n return;\n }\n\n this.overlayRef = this.createOverlay();\n this.subscribeOnClosingActions();\n this.detach();\n\n this.portal = this.portal || new ComponentPortal(this.getOverlayHandleComponentType(), this.hostView);\n\n this.instance = this.overlayRef.attach(this.portal).instance as KbqPopUp;\n\n this.instance.trigger = this;\n\n this.instance.afterHidden().pipe(takeUntilDestroyed(this.destroyRef)).subscribe(this.detach);\n\n this.updateClassMap();\n\n this.updateData();\n\n this.instance.visibleChange\n .pipe(distinctUntilChanged(), takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n this.visible = value;\n this.visibleChange.emit(value);\n this.isOpen = value;\n });\n\n this.updatePosition();\n\n this.instance.show(delay);\n\n if (this.hideWithTimeout && this.trigger.includes(PopUpTriggers.Hover)) {\n this.ngZone.runOutsideAngular(() => {\n interval(this.leaveDelay, this.scheduler)\n .pipe(\n filter(() => this.trigger.includes(PopUpTriggers.Hover)),\n filter(() => !this.hovered.getValue() && !this.instance?.hovered.getValue()),\n takeUntilDestroyed(this.instance?.destroyRef)\n )\n .subscribe(() => this.hide());\n });\n }\n }\n\n hide(delay: number = this.leaveDelay) {\n if (this.preventClose) return;\n\n if (\n (this.instance && this.triggerName !== 'mouseleave') ||\n (this.triggerName === 'mouseleave' && !this.instance?.hovered.getValue())\n ) {\n this.ngZone.run(() => this.instance?.hide(delay));\n }\n }\n\n detach = (): void => {\n if (this.overlayRef?.hasAttached()) {\n this.overlayRef.detach();\n }\n\n this.instance = null;\n };\n\n /** Create the overlay config and position strategy */\n createOverlay(): OverlayRef {\n if (this.overlayRef) {\n return this.overlayRef;\n }\n\n // Create connected position strategy that listens for scroll events to reposition.\n this.strategy = this.overlay\n .position()\n .flexibleConnectedTo(this.getNativeElement())\n .withTransformOriginOn(this.originSelector)\n .withFlexibleDimensions(false)\n .withPositions([...EXTENDED_OVERLAY_POSITIONS])\n .withLockedPosition()\n .withScrollableContainers(this.scrollDispatcher.getAncestorScrollContainers(this.getNativeElement()));\n\n this.strategy.positionChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(this.onPositionChange);\n\n this.overlayRef = this.overlay.create({\n ...this.overlayConfig,\n direction: this.direction || undefined,\n positionStrategy: this.strategy,\n scrollStrategy: this.scrollStrategy()\n });\n\n this.subscribeOnClosingActions();\n\n this.overlayRef.detachments().pipe(takeUntilDestroyed(this.destroyRef)).subscribe(this.detach);\n\n return this.overlayRef;\n }\n\n resetOrigin() {\n this.strategy.setOrigin(this.getNativeElement());\n }\n\n onPositionChange = ($event: ConnectedOverlayPositionChange): void => {\n if (!this.instance) {\n return;\n }\n\n let newPlacement = this.placement;\n\n const { originX, originY, overlayX, overlayY } = $event.connectionPair;\n\n Object.keys(this.availablePositions).some((key) => {\n if (\n originX === this.availablePositions[key].originX &&\n originY === this.availablePositions[key].originY &&\n overlayX === this.availablePositions[key].overlayX &&\n overlayY === this.availablePositions[key].overlayY\n ) {\n newPlacement = key as PopUpPlacements;\n\n return true;\n }\n\n return false;\n });\n\n this.placementChange.emit(newPlacement);\n\n this.updateClassMap(newPlacement);\n\n this.instance.detectChanges();\n };\n\n initListeners() {\n this.clearListeners();\n\n if (this.trigger.includes(PopUpTriggers.Click)) {\n this.listeners.set(...this.createListener('click', this.show));\n }\n\n if (this.trigger.includes(PopUpTriggers.Hover)) {\n this.listeners\n .set(...this.createListener('mouseenter', this.show))\n .set(...this.createListener('mouseleave', this.getMouseLeaveListener()));\n }\n\n if (this.trigger.includes(PopUpTriggers.Focus)) {\n this.listeners\n .set(...this.createListener('focus', this.show))\n .set(...this.createListener('blur', this.hide));\n }\n\n if (this.trigger.includes(PopUpTriggers.Keydown)) {\n this.listeners.set('keydown', (event) => {\n if (event instanceof KeyboardEvent && [ENTER, SPACE].includes(event.keyCode)) {\n setTimeout(() => this.show());\n }\n });\n }\n\n this.listeners.forEach(this.addEventListener);\n }\n\n getMouseLeaveListener() {\n if (this.hideWithTimeout) {\n return () => setTimeout(() => this.hide(), this.leaveDelay);\n }\n\n return this.hide;\n }\n\n /** Updates the position of the current popover. */\n updatePosition(reapplyPosition: boolean = false) {\n this.overlayRef = this.createOverlay();\n\n this.subscribeOnClosingActions();\n\n const position = (this.overlayRef.getConfig().positionStrategy as FlexibleConnectedPositionStrategy)\n .withPositions(this.getAdjustedPositions())\n .withPush(true);\n\n if (reapplyPosition) {\n setTimeout(() => position.reapplyLastPosition());\n }\n }\n\n focus() {\n this.getNativeElement().focus();\n }\n\n /** @docs-private */\n getNativeElement(): HTMLElement {\n return this.externalNativeElement || this.elementRef.nativeElement;\n }\n\n /** @docs-private */\n setExternalNativeElement(value: HTMLElement) {\n this.externalNativeElement = value;\n }\n\n /**\n * Returns a list of positions that are aligned with the element's dimensions and offsets.\n * @protected\n */\n protected getAdjustedPositions(): ConnectionPositionPair[] {\n const res: ConnectionPositionPair[] = [];\n\n for (const pos of this.getPrioritizedPositions()) {\n const offset: KbqPopupTriggerOffset = this.arrow\n ? getOffset(pos, this.getNativeElement().getBoundingClientRect())\n : {};\n\n res.push({\n ...pos,\n ...offset\n });\n }\n\n return res;\n }\n\n protected getPriorityPlacementStrategy(value: string | string[]): ConnectionPositionPair[] {\n const result: ConnectionPositionPair[] = [];\n const possiblePositions = Object.keys(this.availablePositions);\n\n if (Array.isArray(value)) {\n value.forEach((position: string) => {\n if (possiblePositions.includes(position)) {\n result.push(this.availablePositions[position]);\n }\n });\n } else if (possiblePositions.includes(value)) {\n result.push(this.availablePositions[value]);\n }\n\n return result;\n }\n\n protected getPrioritizedPositions() {\n if (this.placementPriority) {\n return this.getPriorityPlacementStrategy(this.placementPriority);\n }\n\n return POSITION_PRIORITY_STRATEGY[this.placement];\n }\n\n protected clearListeners() {\n this.listeners.forEach(this.removeEventListener);\n\n this.listeners.clear();\n }\n\n private createListener(name: string, listener: () => void): [string, (event: unknown) => void] {\n return [\n name,\n (event: unknown) => {\n this.triggerName = name;\n this.saveMouseEvent(event as MouseEvent);\n\n return listener.call(this);\n }\n ];\n }\n\n private saveMouseEvent(event: MouseEvent) {\n if (this.triggerName === 'mouseenter') {\n this.mouseEvent = event;\n }\n }\n\n private addEventListener = (listener: EventListener, event: string) => {\n this.getNativeElement().addEventListener(event, listener);\n };\n\n private removeEventListener = (listener: EventListener, event: string) => {\n this.getNativeElement().removeEventListener(event, listener);\n };\n\n private subscribeOnClosingActions() {\n this.closingActionsSubscription?.unsubscribe();\n\n this.closingActionsSubscription = this.closingActions()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .pipe(rxDelay(0))\n .subscribe((event) => {\n if (event?.type === 'click' && event.kbqPopoverPreventHide) {\n return;\n }\n\n this.hide();\n });\n }\n}\n","import { Overlay, RepositionScrollStrategy, ScrollStrategy } from '@angular/cdk/overlay';\nimport { InjectionToken } from '@angular/core';\n\n/**\n * Minimum option count threshold for displaying select search.\n * Search is hidden when fewer options are available.\n */\nexport const KBQ_SELECT_SEARCH_MIN_OPTIONS_THRESHOLD = 10;\n\n/**\n * The select panel will only \"fit\" inside the viewport if it is positioned at\n * this value or more away from the viewport boundary.\n */\nexport const SELECT_PANEL_VIEWPORT_PADDING = 8;\n\n/** Injection token that determines the scroll handling while a select is open. */\nexport const KBQ_SELECT_SCROLL_STRATEGY = new InjectionToken<() => ScrollStrategy>('kbq-select-scroll-strategy');\n\n/** @docs-private */\nexport function kbqSelectScrollStrategyProviderFactory(overlay: Overlay): () => RepositionScrollStrategy {\n return () => overlay.scrollStrategies.reposition();\n}\n\n/** @docs-private */\nexport const KBQ_SELECT_SCROLL_STRATEGY_PROVIDER = {\n provide: KBQ_SELECT_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: kbqSelectScrollStrategyProviderFactory\n};\n","import { CdkConnectedOverlay } from '@angular/cdk/overlay';\nimport {\n AfterContentInit,\n booleanAttribute,\n Directive,\n EventEmitter,\n Inject,\n Input,\n OnDestroy,\n Optional\n} from '@angular/core';\nimport { END, ESCAPE, HOME, SPACE } from '@koobiq/cdk/keycodes';\nimport { Subscription } from 'rxjs';\nimport { KBQ_FORM_FIELD_REF, KbqFormFieldRef } from '../form-field';\nimport { KBQ_SELECT_SEARCH_MIN_OPTIONS_THRESHOLD, SELECT_PANEL_VIEWPORT_PADDING } from './constants';\n\n@Directive({\n selector: 'kbq-select-trigger, [kbq-select-trigger]'\n})\nexport class KbqSelectTrigger {}\n\n@Directive({\n selector: 'kbq-select-matcher, [kbq-select-matcher]'\n})\nexport class KbqSelectMatcher {\n @Input({ transform: booleanAttribute }) useDefaultHandlers: boolean = true;\n}\n\n@Directive({\n selector: '[kbq-select-search-empty-result]',\n exportAs: 'kbqSelectSearchEmptyResult',\n host: {\n class: 'kbq-select-search-empty-result kbq-select__no-options-message'\n }\n})\nexport class KbqSelectSearchEmptyResult {}\n\n@Directive({\n selector: 'kbq-select-footer, [kbq-select-footer]',\n host: { class: 'kbq-select__footer' }\n})\nexport class KbqSelectFooter {}\n\n@Directive({\n selector: '[kbqSelectSearch]',\n exportAs: 'kbqSelectSearch',\n host: {\n '(keydown)': 'handleKeydown($event)'\n }\n})\nexport class KbqSelectSearch implements AfterContentInit, OnDestroy {\n readonly changes: EventEmitter<string> = new EventEmitter<string>();\n\n isSearchChanged: boolean = false;\n\n get ngControl() {\n return this.formField.control.ngControl;\n }\n\n private searchChangesSubscription: Subscription = new Subscription();\n\n constructor(@Optional() @Inject(KBQ_FORM_FIELD_REF) protected formField: KbqFormFieldRef) {\n this.formField.canCleanerClearByEsc = false;\n this.formField.inOverlay.set(true);\n }\n\n setPlaceholder(value: string): void {\n this.formField.control.placeholder = value;\n }\n\n hasPlaceholder(): boolean {\n return !!this.formField?.control.placeholder;\n }\n\n focus(): void {\n this.formField.focusViaKeyboard();\n }\n\n reset(): void {\n this.ngControl?.reset();\n }\n\n value() {\n return this.formField.control.value;\n }\n\n ngAfterContentInit(): void {\n if (this.formField.control.controlType !== 'input') {\n throw Error('KbqSelectSearch does not work without kbqInput');\n }\n\n if (!this.ngControl) {\n throw Error('KbqSelectSearch does not work without ngControl');\n }\n\n Promise.resolve().then(() => {\n this.searchChangesSubscription = this.ngControl.valueChanges!.subscribe((value) => {\n this.isSearchChanged = true;\n this.changes.next(value);\n });\n });\n }\n\n ngOnDestroy(): void {\n this.searchChangesSubscription.unsubscribe();\n }\n\n handleKeydown(event: KeyboardEvent) {\n if (event.keyCode === ESCAPE) {\n if (this.value()) {\n this.reset();\n event.stopPropagation();\n }\n }\n\n if ([SPACE, HOME, END].includes(event.keyCode)) {\n event.stopPropagation();\n }\n }\n}\n\n/**\n * Abstract class representing a customizable select component with an overlay.\n *\n * This class provides base functionality for handling the overlay positioning.\n * @docs-private\n */\n@Directive()\nexport abstract class KbqAbstractSelect {\n protected overlayDir: CdkConnectedOverlay;\n protected triggerRect: DOMRect;\n\n /** Overlay panel class. */\n protected readonly overlayPanelClass = 'kbq-select-overlay';\n\n protected setOverlayPosition() {\n if (!this.overlayDir.overlayRef) return;\n\n this.resetOverlay();\n\n const overlayRect = this.getOverlayRect();\n // Window width without scrollbar\n const windowWidth = this.overlayDir.overlayRef?.hostElement.clientWidth;\n let offsetX: number = 0;\n let overlayMaxWidth: number;\n\n // Determine if select overflows on either side.\n const leftOverflow = -overlayRect.left;\n const rightOverflow = overlayRect.right - windowWidth;\n\n // If the element overflows on either side, reduce the offset to allow it to fit.\n if (leftOverflow > 0 || rightOverflow > 0) {\n [offsetX, overlayMaxWidth] = this.calculateOverlayOffsetX(offsetX);\n this.overlayDir.overlayRef.overlayElement.style.maxWidth = `${overlayMaxWidth}px`;\n // reset the minWidth property\n this.overlayDir.overlayRef.overlayElement.style.minWidth = '';\n }\n\n // Set the offset directly in order to avoid having to go through change detection and\n // potentially triggering \"changed after it was checked\" errors. Round the value to avoid\n // blurry content in some browsers.\n this.overlayDir.offsetX = Math.round(offsetX);\n this.overlayDir.overlayRef.updatePosition();\n }\n\n protected calculateOverlayOffsetX(baseOffsetX: number): number[] {\n let offsetX = baseOffsetX;\n const windowWidth = this.overlayDir.overlayRef?.hostElement.clientWidth;\n const { left: leftIndent, right: triggerRight, width: triggerWidth } = this.triggerRect;\n const { width: overlayRectWidth } = this.getOverlayRect();\n const rightIndent = windowWidth - triggerRight;\n // Setting direction of dropdown expansion\n const isRightDirection = leftIndent <= rightIndent;\n\n const indent = isRightDirection ? rightIndent : leftIndent;\n const maxDropdownWidth = indent + triggerWidth - SELECT_PANEL_VIEWPORT_PADDING;\n const overlayMaxWidth = overlayRectWidth < maxDropdownWidth ? overlayRectWidth : maxDropdownWidth;\n\n if (!isRightDirection) {\n const leftOffset = triggerRight - overlayMaxWidth;\n\n offsetX -= leftIndent - leftOffset;\n }\n\n return [offsetX, overlayMaxWidth];\n }\n\n protected getOverlayRect(): DOMRect {\n return this.overlayDir.overlayRef.overlayElement.getBoundingClientRect();\n }\n\n protected resetOverlay(): void {\n this.overlayDir.overlayRef.hostElement.classList.add(this.overlayPanelClass);\n this.overlayDir.offsetX = 0;\n this.overlayDir.overlayRef.overlayElement.style.maxWidth = 'unset';\n this.overlayDir.overlayRef.updatePosition();\n }\n\n protected resolveSearchMinOptionsThreshold(value?: 'auto' | number) {\n return value === 'auto' ? KBQ_SELECT_SEARCH_MIN_OPTIONS_THRESHOLD : value;\n }\n}\n","/**\n * Returns an exception to be thrown when attempting to change a select's `multiple` option\n * after initialization.\n * @docs-private\n */\nexport function getKbqSelectDynamicMultipleError(): Error {\n return Error('Cannot change `multiple` mode of select after initialization.');\n}\n\n/**\n * Returns an exception to be thrown when attempting to assign a non-array value to a select\n * in `multiple` mode. Note that `undefined` and `null` are still valid values to allow for\n * resetting the value.\n * @docs-private\n */\nexport function getKbqSelectNonArrayValueError(): Error {\n return Error('Value must be an array in multiple-selection mode.');\n}\n\n/**\n * Returns an exception to be thrown when assigning a non-function value to the comparator\n * used to determine if a value corresponds to an option. Note that whether the function\n * actually takes two values and returns a boolean is not checked.\n */\nexport function getKbqSelectNonFunctionValueError(): Error {\n return Error('`compareWith` must be a function.');\n}\n","export const selectEvents = 'selectEvents';\n","import { DOCUMENT } from '@angular/common';\nimport { inject, Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class KbqMeasureScrollbarService {\n protected readonly document = inject<Document>(DOCUMENT);\n\n get scrollBarWidth(): number {\n if (this._scrollBarWidth) {\n return this._scrollBarWidth;\n }\n\n this.initScrollBarWidth();\n\n return this._scrollBarWidth;\n }\n\n private _scrollBarWidth: number;\n private scrollbarMeasure = {\n position: 'absolute',\n top: '-9999px',\n width: '50px',\n height: '50px',\n overflow: 'scroll'\n };\n\n constructor() {\n this.initScrollBarWidth();\n }\n\n initScrollBarWidth() {\n const scrollDiv = this.document.createElement('div');\n\n for (const scrollProp in this.scrollbarMeasure) {\n if (this.scrollbarMeasure.hasOwnProperty(scrollProp)) {\n scrollDiv.style[scrollProp] = this.scrollbarMeasure[scrollProp];\n }\n }\n\n this.document.body.appendChild(scrollDiv);\n\n const width = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n\n this.document.body.removeChild(scrollDiv);\n this._scrollBarWidth = width;\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { inject, Injectable, OnDestroy, Renderer2, RendererFactory2 } from '@angular/core';\nimport { BehaviorSubject, pairwise, Subscription } from 'rxjs';\n\nexport interface KbqTheme {\n name: string;\n className: string;\n selected: boolean;\n}\n\n/**\n * Enum representing the available themes for the Koobiq design system.\n * This enum is used to manage and switch between different visual themes.\n */\nexport enum KbqThemeSelector {\n /**\n * Represents the default light theme.\n * This is the standard theme that is applied\n * when the application is first loaded if nothing else provided\n */\n Default = 'kbq-light',\n /**\n * This theme is used to provide a darker visual experience, often preferred in low-light environments.\n */\n Dark = 'kbq-dark'\n}\n\nexport const KbqDefaultThemes: KbqTheme[] = [\n {\n name: 'light',\n className: KbqThemeSelector.Default,\n selected: true\n },\n {\n name: 'dark',\n className: KbqThemeSelector.Dark,\n selected: false\n }\n];\n\n@Injectable({ providedIn: 'root' })\nexport class ThemeService<T extends KbqTheme | null = KbqTheme> implements OnDestroy {\n protected readonly document = inject<Document>(DOCUMENT);\n protected readonly rendererFactory = inject(RendererFactory2);\n protected renderer: Renderer2;\n\n current: BehaviorSubject<T> = new BehaviorSubject(null as T);\n\n themes: T[] = KbqDefaultThemes as T[];\n\n protected subscription: Subscription;\n\n constructor() {\n this.renderer = this.rendererFactory.createRenderer(null, null);\n\n this.subscription = this.current.pipe(pairwise()).subscribe(this.update);\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n\n setThemes(items: T[]) {\n this.themes = items;\n }\n\n setTheme(value: T | number) {\n if (typeof value === 'number') {\n this.current.next(this.themes[value]);\n } else if (typeof value === 'object' && this.themes.includes(value)) {\n this.current.next(value);\n } else {\n throw Error(`value has unsupported type: ${typeof value}`);\n }\n }\n\n getTheme(): T {\n return this.current.value;\n }\n\n protected update = ([prev, current]: T[]) => {\n if (prev) {\n prev.selected = false;\n this.renderer.removeClass(this.document.body, prev.className);\n }\n\n if (current) {\n this.renderer.addClass(this.document.body, current.className);\n current.selected = true;\n }\n };\n}\n","import { InjectionToken, Provider } from '@angular/core';\n\n/**\n * @docs-private\n */\nexport const validationTooltipShowDelay = 10;\n\n/**\n * @docs-private\n */\nexport const validationTooltipHideDelay = 3000;\n\n/**\n * @deprecated Will be removed in next major release.\n *\n * @docs-private\n */\nexport interface KbqValidationOptions {\n useValidation: boolean;\n}\n\n/**\n * @deprecated Will be removed in next major release.\n *\n * @docs-private\n */\nexport const KBQ_VALIDATION = new InjectionToken<KbqValidationOptions>('KbqUseValidation', {\n factory: () => ({ useValidation: true })\n});\n\n/**\n * Utility provider which disables legacy validation directive.\n *\n * Will be removed in next major release, so legacy validation will be disabled by default.\n */\nexport const kbqDisableLegacyValidationDirectiveProvider = (): Provider => ({\n provide: KBQ_VALIDATION,\n useValue: { useValidation: false } satisfies KbqValidationOptions\n});\n","import { Version } from '@angular/core';\n\nexport const VERSION = new Version('19.8.1+sha-7bec628');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["BaseDateAdapter","BaseDateFormatter","i1.KbqOptgroup","i2.KbqPseudoCheckbox","rxDelay"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"koobiq-components-core.mjs","sources":["../../../packages/components/core/keycodes/keycodes.ts","../../../packages/components/core/a11y/key-manager/list-key-manager.ts","../../../packages/components/core/a11y/key-manager/activedescendant-key-manager.ts","../../../packages/components/core/a11y/key-manager/focus-key-manager.ts","../../../packages/components/core/animation/animation.ts","../../../packages/components/core/animation/fade-animations.ts","../../../packages/components/core/animation/select-animations.ts","../../../packages/components/core/common-behaviors/clipboard.ts","../../../packages/components/core/common-behaviors/color.ts","../../../packages/components/core/common-behaviors/disabled.ts","../../../packages/components/core/common-behaviors/error-state.ts","../../../packages/components/core/utils/dom.ts","../../../packages/components/core/utils/utils.ts","../../../packages/components/core/common-behaviors/hover.ts","../../../packages/components/core/common-behaviors/read-state.ts","../../../packages/components/core/common-behaviors/tabindex.ts","../../../packages/components/core/common-behaviors/index.ts","../../../packages/components/core/datetime/date-adapter.ts","../../../packages/components/core/datetime/date-formats.ts","../../../packages/components/core/error/error-state-matcher.ts","../../../packages/components/core/tokens/window.ts","../../../packages/components/core/form-field/field-sizing-content.ts","../../../packages/components/core/form-field/form-field-ref.ts","../../../packages/components/core/locales/en-US.ts","../../../packages/components/core/locales/es-LA.ts","../../../packages/components/core/locales/pt-BR.ts","../../../packages/components/core/locales/ru-RU.ts","../../../packages/components/core/locales/tk-TM.ts","../../../packages/components/core/locales/formatters.ts","../../../packages/components/core/locales/locale-service.ts","../../../packages/components/core/locales/locale-service.module.ts","../../../packages/components/core/formatters/date/formatter.ts","../../../packages/components/core/formatters/date/formatter.pipe.ts","../../../packages/components/core/formatters/filesize/config.ts","../../../packages/components/core/formatters/number/formatter.ts","../../../packages/components/core/formatters/filesize/size.ts","../../../packages/components/core/formatters/filesize/formatter.ts","../../../packages/components/core/formatters/index.ts","../../../packages/components/core/forms/forms.directive.ts","../../../packages/components/core/forms/forms-module.ts","../../../packages/components/core/forms/validators.ts","../../../packages/components/core/highlight/highlight-base.ts","../../../packages/components/core/highlight/highlight-background.pipe.ts","../../../packages/components/core/highlight/highlight.pipe.ts","../../../packages/components/core/highlight/index.ts","../../../packages/components/core/line/line.ts","../../../packages/components/core/navbar/rectangle-item.ts","../../../packages/components/core/option/action.ts","../../../packages/components/core/option/action-container.ts","../../../packages/components/core/option/optgroup.ts","../../../packages/components/core/option/optgroup.html","../../../packages/components/core/selection/constants.ts","../../../packages/components/core/selection/pseudo-checkbox/pseudo-checkbox.ts","../../../packages/components/core/selection/pseudo-checkbox/pseudo-checkbox.partial.html","../../../packages/components/core/selection/pseudo-checkbox/pseudo-checkbox.module.ts","../../../packages/components/core/title/title-text-ref.ts","../../../packages/components/core/option/option.ts","../../../packages/components/core/option/option.html","../../../packages/components/core/option/option-module.ts","../../../packages/components/core/overflow-shadow/overflow-shadow.ts","../../../packages/components/core/overlay/overlay-position-map.ts","../../../packages/components/core/pop-up/constants.ts","../../../packages/components/core/pop-up/focus-trap-strategy.ts","../../../packages/components/core/pop-up/pop-up.ts","../../../packages/components/core/pop-up/pop-up-styles.ts","../../../packages/components/core/pop-up/pop-up-trigger.ts","../../../packages/components/core/select/constants.ts","../../../packages/components/core/select/common.ts","../../../packages/components/core/select/errors.ts","../../../packages/components/core/select/events.ts","../../../packages/components/core/services/measure-scrollbar.service.ts","../../../packages/components/core/services/theme.service.ts","../../../packages/components/core/testing/event-objects.ts","../../../packages/components/core/testing/dispatch-events.ts","../../../packages/components/core/testing/element-focus.ts","../../../packages/components/core/testing/mock-ng-zone.ts","../../../packages/components/core/testing/type-in-element.ts","../../../packages/components/core/testing/wrapped-error-message.ts","../../../packages/components/core/validation/validation.ts","../../../packages/components/core/version.ts","../../../packages/components/core/koobiq-components-core.ts"],"sourcesContent":["import { _getEventTarget } from '@angular/cdk/platform';\n\nexport const MAC_ENTER = 3;\nexport const BACKSPACE = 8;\nexport const TAB = 9;\nexport const NUM_CENTER = 12;\nexport const ENTER = 13;\nexport const SHIFT = 16;\nexport const CONTROL = 17;\nexport const ALT = 18;\nexport const PAUSE = 19;\nexport const CAPS_LOCK = 20;\nexport const ESCAPE = 27;\nexport const SPACE = 32;\nexport const PAGE_UP = 33;\nexport const PAGE_DOWN = 34;\nexport const END = 35;\nexport const HOME = 36;\nexport const LEFT_ARROW = 37;\nexport const UP_ARROW = 38;\nexport const RIGHT_ARROW = 39;\nexport const DOWN_ARROW = 40;\nexport const PLUS_SIGN = 43;\nexport const PRINT_SCREEN = 44;\nexport const INSERT = 45;\nexport const DELETE = 46;\nexport const ZERO = 48;\nexport const ONE = 49;\nexport const TWO = 50;\nexport const THREE = 51;\nexport const FOUR = 52;\nexport const FIVE = 53;\nexport const SIX = 54;\nexport const SEVEN = 55;\nexport const EIGHT = 56;\nexport const NINE = 57;\nexport const FF_SEMICOLON = 59; // Firefox (Gecko) fires this for semicolon instead of 186\nexport const FF_EQUALS = 61; // Firefox (Gecko) fires this for equals instead of 187\nexport const QUESTION_MARK = 63;\nexport const AT_SIGN = 64;\nexport const A = 65;\nexport const B = 66;\nexport const C = 67;\nexport const D = 68;\nexport const E = 69;\nexport const F = 70;\nexport const G = 71;\nexport const H = 72;\nexport const I = 73;\nexport const J = 74;\nexport const K = 75;\nexport const L = 76;\nexport const M = 77;\nexport const N = 78;\nexport const O = 79;\nexport const P = 80;\nexport const Q = 81;\nexport const R = 82;\nexport const S = 83;\nexport const T = 84;\nexport const U = 85;\nexport const V = 86;\nexport const W = 87;\nexport const X = 88;\nexport const Y = 89;\nexport const Z = 90;\nexport const META = 91; // WIN_KEY_LEFT\nexport const MAC_WK_CMD_LEFT = 91;\nexport const MAC_WK_CMD_RIGHT = 93;\nexport const CONTEXT_MENU = 93;\nexport const NUMPAD_ZERO = 96;\nexport const NUMPAD_ONE = 97;\nexport const NUMPAD_TWO = 98;\nexport const NUMPAD_THREE = 99;\nexport const NUMPAD_FOUR = 100;\nexport const NUMPAD_FIVE = 101;\nexport const NUMPAD_SIX = 102;\nexport const NUMPAD_SEVEN = 103;\nexport const NUMPAD_EIGHT = 104;\nexport const NUMPAD_NINE = 105;\nexport const NUMPAD_MULTIPLY = 106;\nexport const NUMPAD_PLUS = 107;\nexport const NUMPAD_MINUS = 109;\nexport const NUMPAD_PERIOD = 110;\nexport const NUMPAD_DIVIDE = 111;\nexport const F1 = 112;\nexport const F2 = 113;\nexport const F3 = 114;\nexport const F4 = 115;\nexport const F5 = 116;\nexport const F6 = 117;\nexport const F7 = 118;\nexport const F8 = 119;\nexport const F9 = 120;\nexport const F10 = 121;\nexport const F11 = 122;\nexport const F12 = 123;\nexport const NUM_LOCK = 144;\nexport const SCROLL_LOCK = 145;\nexport const FIRST_MEDIA = 166;\nexport const FF_MINUS = 173;\nexport const MUTE = 173; // Firefox (Gecko) fires 181 for MUTE\nexport const VOLUME_DOWN = 174; // Firefox (Gecko) fires 182 for VOLUME_DOWN\nexport const VOLUME_UP = 175; // Firefox (Gecko) fires 183 for VOLUME_UP\nexport const FF_MUTE = 181;\nexport const FF_VOLUME_DOWN = 182;\nexport const LAST_MEDIA = 183;\nexport const FF_VOLUME_UP = 183;\nexport const SEMICOLON = 186; // Firefox (Gecko) fires 59 for SEMICOLON\nexport const EQUALS = 187; // Firefox (Gecko) fires 61 for EQUALS\nexport const COMMA = 188;\nexport const DASH = 189; // Firefox (Gecko) fires 173 for DASH/MINUS\nexport const PERIOD = 190;\nexport const SLASH = 191;\nexport const APOSTROPHE = 192;\nexport const TILDE = 192;\nexport const OPEN_SQUARE_BRACKET = 219;\nexport const BACKSLASH = 220;\nexport const CLOSE_SQUARE_BRACKET = 221;\nexport const SINGLE_QUOTE = 222;\nexport const MAC_META = 224;\n\ntype ModifierKey = 'altKey' | 'shiftKey' | 'ctrlKey' | 'metaKey';\n\nexport function hasModifierKey(event: KeyboardEvent | MouseEvent, ...modifiers: ModifierKey[]): boolean {\n if (modifiers.length) {\n return modifiers.some((modifier) => event[modifier]);\n }\n\n return event.altKey || event.shiftKey || event.ctrlKey || event.metaKey;\n}\n\nexport function isControl(event: KeyboardEvent): boolean {\n const keyCode = event.keyCode;\n\n switch (keyCode) {\n case SHIFT:\n case CONTROL:\n case ALT:\n return true;\n default:\n return event.metaKey;\n }\n}\n\nexport function isNumberKey({ keyCode }: KeyboardEvent): boolean {\n return keyCode >= ZERO && keyCode <= NINE;\n}\n\nexport function isNumpadKey({ keyCode }: KeyboardEvent): boolean {\n return keyCode >= NUMPAD_ZERO && keyCode <= NUMPAD_NINE;\n}\nexport function isLetterKey({ keyCode }: KeyboardEvent): boolean {\n return keyCode >= A && keyCode <= Z;\n}\n\nexport function isFunctionKey({ keyCode }: KeyboardEvent): boolean {\n return keyCode >= F1 && keyCode <= F12;\n}\n\nexport function isVerticalMovement({ keyCode }: KeyboardEvent): boolean {\n return [UP_ARROW, DOWN_ARROW, PAGE_DOWN, PAGE_UP, HOME, END].includes(keyCode);\n}\n\nexport function isHorizontalMovement({ keyCode }: KeyboardEvent): boolean {\n return [LEFT_ARROW, RIGHT_ARROW, BACKSPACE, DELETE].includes(keyCode);\n}\n\nexport function isSelectAll(event: KeyboardEvent): boolean {\n return (event.ctrlKey || event.metaKey) && event.keyCode === A;\n}\n\nexport function isCopy(event: KeyboardEvent): boolean {\n return (event.ctrlKey || event.metaKey) && event.keyCode === C;\n}\n\nexport function isInput(event: Event): boolean {\n const target = _getEventTarget<HTMLElement>(event);\n\n return !!target && (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA');\n}\n\nexport function isLeftBracket(event: KeyboardEvent): boolean {\n return event.code === 'BracketLeft';\n}\n\nexport function isRightBracket(event: KeyboardEvent): boolean {\n return event.code === 'BracketRight';\n}\n\nexport function isDigit({ keyCode }: KeyboardEvent): boolean {\n return [ZERO, ONE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE].includes(keyCode);\n}\n","import { QueryList } from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\nimport { debounceTime, filter, map, tap } from 'rxjs/operators';\nimport { A, DOWN_ARROW, END, HOME, LEFT_ARROW, NINE, RIGHT_ARROW, TAB, UP_ARROW, Z, ZERO } from '../../keycodes';\n\n// This interface is for items that can be passed to a ListKeyManager.\nexport interface ListKeyManagerOption {\n // Whether the option is disabled.\n disabled?: boolean;\n\n // Gets the label for this option.\n getLabel?(): string;\n}\n\n/** Modifier keys handled by the ListKeyManager. */\nexport type ListKeyManagerModifierKey = 'altKey' | 'ctrlKey' | 'metaKey' | 'shiftKey';\n\n/**\n * This class manages keyboard events for selectable lists. If you pass it a query list\n * of items, it will set the active item correctly when arrow events occur.\n */\nexport class ListKeyManager<T extends ListKeyManagerOption> {\n /**\n * Stream that emits any time the TAB key is pressed, so components can react\n * when focus is shifted off of the list.\n */\n tabOut: Subject<void> = new Subject<void>();\n\n /** Stream that emits whenever the active item of the list manager changes. */\n change = new Subject<number>();\n\n previousActiveItemIndex = -1;\n\n // Index of the currently active item.\n get activeItemIndex(): number {\n return this._activeItemIndex;\n }\n\n private _activeItemIndex = -1;\n\n // The active item.\n get activeItem(): T | null {\n return this._activeItem;\n }\n\n private _activeItem: T;\n\n private wrap: boolean = false;\n private letterKeyStream = new Subject<string>();\n private typeaheadSubscription = Subscription.EMPTY;\n private vertical = true;\n private horizontal: 'ltr' | 'rtl' | null;\n\n private scrollSize: number = 0;\n\n // Buffer for the letters that the user has pressed when the typeahead option is turned on.\n private pressedLetters: string[] = [];\n\n private homeAndEnd = false;\n\n private allowedModifierKeys: ListKeyManagerModifierKey[] = [];\n\n constructor(private _items: QueryList<T>) {\n if (_items instanceof QueryList) {\n _items.changes.subscribe((newItems: QueryList<T>) => {\n if (this._activeItem) {\n const itemArray = newItems.toArray();\n const newIndex = itemArray.indexOf(this._activeItem);\n\n if (newIndex > -1 && newIndex !== this._activeItemIndex) {\n this._activeItemIndex = newIndex;\n }\n }\n });\n }\n }\n\n /** Gets whether the user is currently typing into the manager using the typeahead feature. */\n isTyping(): boolean {\n return this.pressedLetters.length > 0;\n }\n\n withScrollSize(scrollSize: number): this {\n this.scrollSize = scrollSize;\n\n return this;\n }\n\n /**\n * Modifier keys which are allowed to be held down and whose default actions will be prevented\n * as the user is pressing the arrow keys. Defaults to not allowing any modifier keys.\n */\n withAllowedModifierKeys(keys: ListKeyManagerModifierKey[]): this {\n this.allowedModifierKeys = keys;\n\n return this;\n }\n\n /**\n * Turns on wrapping mode, which ensures that the active item will wrap to\n * the other end of list when there are no more items in the given direction.\n */\n\n withWrap(shouldWrap = true): this {\n this.wrap = shouldWrap;\n\n return this;\n }\n\n /**\n * Sets the predicate function that determines which items should be skipped by the\n * list key manager.\n * @param predicate Function that determines whether the given item should be skipped.\n */\n skipPredicate(predicate: (item: T) => boolean): this {\n this.skipPredicateFn = predicate;\n\n return this;\n }\n\n /**\n * Configures whether the key manager should be able to move the selection vertically.\n * @param enabled Whether vertical selection should be enabled.\n */\n withVerticalOrientation(enabled: boolean = true): this {\n this.vertical = enabled;\n\n return this;\n }\n\n /**\n * Configures the key manager to move the selection horizontally.\n * Passing in `null` will disable horizontal movement.\n * @param direction Direction in which the selection can be moved.\n */\n withHorizontalOrientation(direction: 'ltr' | 'rtl' | null): this {\n this.horizontal = direction;\n\n return this;\n }\n\n /**\n * Turns on typeahead mode which allows users to set the active item by typing.\n * @param searchLetterIndex letter index for incremental search, if is -1 search is disabled\n * @param debounceInterval Time to wait after the last keystroke before setting the active item.\n */\n withTypeAhead(debounceInterval: number = 200, searchLetterIndex: number = 0): this {\n if (this._items.length && this._items.some((item) => typeof item.getLabel !== 'function')) {\n throw Error('ListKeyManager items in typeahead mode must implement the `getLabel` method.');\n }\n\n this.typeaheadSubscription.unsubscribe();\n\n // Debounce the presses of non-navigational keys, collect the ones that correspond to letters and convert those\n // letters back into a string. Afterwards find the first item that starts with that string and select it.\n this.typeaheadSubscription = this.letterKeyStream\n .pipe(\n tap((keyCode) => this.pressedLetters.push(keyCode)),\n debounceTime(debounceInterval),\n filter(() => this.pressedLetters.length > 0),\n map(() => this.pressedLetters.join(''))\n )\n .subscribe((inputString) => {\n if (searchLetterIndex === -1) {\n this.pressedLetters = [];\n\n return;\n }\n\n const items = this._items.toArray();\n\n // Start at 1 because we want to start searching at the item immediately\n // following the current active item.\n for (let i = 1; i < items.length + 1; i++) {\n const index = (this._activeItemIndex + i) % items.length;\n const item = items[index];\n\n if (\n !item.disabled &&\n item.getLabel!().toUpperCase().trim().indexOf(inputString) === searchLetterIndex\n ) {\n this.setActiveItem(index);\n break;\n }\n }\n\n this.pressedLetters = [];\n });\n\n return this;\n }\n\n /**\n * Configures the key manager to activate the first and last items\n * respectively when the Home or End key is pressed.\n * @param enabled Whether pressing the Home or End key activates the first/last item.\n */\n withHomeAndEnd(enabled: boolean = true): this {\n this.homeAndEnd = enabled;\n\n return this;\n }\n\n /**\n * Sets the active item to the item at the index specified.\n * @param index The index of the item to be set as active or item The item to be set as active.\n */\n setActiveItem(index: number | T): void;\n\n /**\n * Sets the active item to the item at the index specified.\n * @param item The index of the item to be set as active.\n */\n setActiveItem(item: any): void {\n this.previousActiveItemIndex = this._activeItemIndex;\n\n this.updateActiveItem(item);\n\n if (this._activeItemIndex !== this.previousActiveItemIndex) {\n this.change.next(this._activeItemIndex);\n }\n }\n\n /**\n * Sets the active item depending on the key event passed in.\n * @param event Keyboard event to be used for determining which element should be active.\n */\n onKeydown(event: KeyboardEvent): void {\n const keyCode = event.keyCode;\n\n const modifiers: ListKeyManagerModifierKey[] = ['altKey', 'ctrlKey', 'metaKey', 'shiftKey'];\n const isModifierAllowed = modifiers.every((modifier) => {\n return !event[modifier] || this.allowedModifierKeys.indexOf(modifier) > -1;\n });\n\n switch (keyCode) {\n case TAB:\n this.tabOut.next();\n\n return;\n\n case DOWN_ARROW:\n if (this.vertical) {\n this.setNextItemActive();\n break;\n } else {\n return;\n }\n\n case UP_ARROW:\n if (this.vertical) {\n this.setPreviousItemActive();\n break;\n } else {\n return;\n }\n\n case RIGHT_ARROW:\n if (this.horizontal === 'ltr') {\n this.setNextItemActive();\n break;\n } else if (this.horizontal === 'rtl') {\n this.setPreviousItemActive();\n break;\n } else {\n return;\n }\n\n case LEFT_ARROW:\n if (this.horizontal === 'ltr') {\n this.setPreviousItemActive();\n break;\n } else if (this.horizontal === 'rtl') {\n this.setNextItemActive();\n break;\n } else {\n return;\n }\n\n case HOME:\n if (this.homeAndEnd && isModifierAllowed) {\n this.setFirstItemActive();\n break;\n } else {\n return;\n }\n\n case END:\n if (this.homeAndEnd && isModifierAllowed) {\n this.setLastItemActive();\n break;\n } else {\n return;\n }\n\n default:\n // Attempt to use the `event.key` which also maps it to the user's keyboard language,\n // otherwise fall back to resolving alphanumeric characters via the keyCode.\n if (event.key && event.key.length === 1) {\n this.letterKeyStream.next(event.key.toLocaleUpperCase());\n } else if ((keyCode >= A && keyCode <= Z) || (keyCode >= ZERO && keyCode <= NINE)) {\n this.letterKeyStream.next(String.fromCharCode(keyCode));\n }\n\n // Note that we return here, in order to avoid preventing\n // the default action of non-navigational keys.\n return;\n }\n\n this.pressedLetters = [];\n event.preventDefault();\n }\n\n // Sets the active item to the first enabled item in the list.\n setFirstItemActive(): void {\n this.setActiveItemByIndex(0, 1);\n }\n\n // Sets the active item to the last enabled item in the list.\n setLastItemActive(): void {\n this.setActiveItemByIndex(this._items.length - 1, -1);\n }\n\n // Sets the active item to the next enabled item in the list.\n setNextItemActive(): void {\n if (this._activeItemIndex < 0) {\n this.setFirstItemActive();\n } else {\n this.setActiveItemByDelta(1);\n }\n }\n\n // Sets the active item to a previous enabled item in the list.\n setPreviousItemActive(): void {\n if (this._activeItemIndex < 0 && this.wrap) {\n this.setLastItemActive();\n } else {\n this.setActiveItemByDelta(-1);\n }\n }\n\n setNextPageItemActive(delta: number = this.scrollSize): void {\n const nextItemIndex = this._activeItemIndex + delta;\n\n if (nextItemIndex >= this._items.length) {\n this.setLastItemActive();\n } else {\n this.setActiveItemByDelta(delta);\n }\n }\n\n setPreviousPageItemActive(delta: number = this.scrollSize): void {\n const nextItemIndex = this._activeItemIndex - delta;\n\n if (nextItemIndex <= 0) {\n this.setFirstItemActive();\n } else {\n this.setActiveItemByDelta(-delta);\n }\n }\n\n /**\n * Allows setting the active without any other effects.\n * @param index Index of the item to be set as active.\n */\n updateActiveItem(index: number): void;\n\n /**\n * Allows setting the active item without any other effects.\n * @param item Item to be set as active or index Index of the item to be set as active..\n */\n updateActiveItem(item: number | T): void;\n\n updateActiveItem(item: any): void {\n const itemArray = this._items.toArray();\n const index = typeof item === 'number' ? item : itemArray.indexOf(item);\n\n this._activeItemIndex = index;\n this._activeItem = itemArray[index];\n }\n\n /**\n * Predicate function that can be used to check whether an item should be skipped\n * by the key manager. By default, disabled items are skipped.\n */\n private skipPredicateFn = (item: T) => item.disabled;\n\n /**\n * This method sets the active item, given a list of items and the delta between the\n * currently active item and the new active item. It will calculate differently\n * depending on whether wrap mode is turned on.\n */\n private setActiveItemByDelta(delta: number): void {\n if (this.wrap) {\n this.setActiveInWrapMode(delta);\n } else {\n this.setActiveInDefaultMode(delta);\n }\n }\n\n /**\n * Sets the active item properly given \"wrap\" mode. In other words, it will continue to move\n * down the list until it finds an item that is not disabled, and it will wrap if it\n * encounters either end of the list.\n */\n private setActiveInWrapMode(delta: number): void {\n const items = this.getItemsArray();\n\n for (let i = 1; i <= items.length; i++) {\n const index = (this._activeItemIndex + delta * i + items.length) % items.length;\n const item = items[index];\n\n if (!this.skipPredicateFn(item)) {\n this.setActiveItem(index);\n\n return;\n }\n }\n }\n\n /**\n * Sets the active item properly given the default mode. In other words, it will\n * continue to move down the list until it finds an item that is not disabled. If\n * it encounters either end of the list, it will stop and not wrap.\n */\n private setActiveInDefaultMode(delta: number): void {\n this.setActiveItemByIndex(this._activeItemIndex + delta, delta);\n }\n\n /**\n * Sets the active item to the first enabled item starting at the index specified. If the\n * item is disabled, it will move in the fallbackDelta direction until it either\n * finds an enabled item or encounters the end of the list.\n */\n private setActiveItemByIndex(index: number, fallbackDelta: number): void {\n const items = this.getItemsArray();\n\n if (!items[index]) {\n return;\n }\n\n let curIndex = index;\n\n while (this.skipPredicateFn(items[curIndex])) {\n curIndex += fallbackDelta;\n\n if (!items[curIndex]) {\n return;\n }\n }\n\n this.setActiveItem(curIndex);\n }\n\n /** Returns the items as an array. */\n private getItemsArray(): T[] {\n return this._items instanceof QueryList ? this._items.toArray() : this._items;\n }\n}\n","import { ListKeyManager, ListKeyManagerOption } from './list-key-manager';\n\n/**\n * This is the interface for highlightable items (used by the ActiveDescendantKeyManager).\n * Each item must know how to style itself as active or inactive and whether or not it is\n * currently disabled.\n */\nexport interface Highlightable extends ListKeyManagerOption {\n // Applies the styles for an active item to this item.\n setActiveStyles(): void;\n\n // Applies the styles for an inactive item to this item.\n setInactiveStyles(): void;\n}\n\nexport class ActiveDescendantKeyManager<T> extends ListKeyManager<Highlightable & T> {\n /**\n * Sets the active item to the item at the specified index and adds the\n * active styles to the newly active item. Also removes active styles\n * from the previously active item.\n * @param index Index of the item to be set as active.\n */\n setActiveItem(index: number): void;\n\n /**\n * Sets the active item to the item to the specified one and adds the\n * active styles to the it. Also removes active styles from the\n * previously active item.\n * @param item Item to be set as active.\n */\n setActiveItem(item: T): void;\n\n /**\n * This method sets the active item to the item at the specified index.\n * It also adds active styles to the newly active item and removes active\n * styles from the previously active item.\n */\n setActiveItem(index: any): void {\n if (this.activeItem) {\n this.activeItem.setInactiveStyles();\n }\n\n super.setActiveItem(index);\n\n if (this.activeItem) {\n this.activeItem.setActiveStyles();\n }\n }\n}\n","import { FocusOrigin } from '@angular/cdk/a11y';\nimport { ListKeyManager, ListKeyManagerOption } from './list-key-manager';\n\n/**\n * This is the interface for focusable items (used by the FocusKeyManager).\n * Each item must know how to focus itself, whether or not it is currently disabled\n * and be able to supply it's label.\n */\nexport interface IFocusableOption extends ListKeyManagerOption {\n // Focuses the `FocusableOption`. */\n focus(origin?: FocusOrigin): void;\n}\n\nexport class FocusKeyManager<T> extends ListKeyManager<IFocusableOption & T> {\n private origin: FocusOrigin = 'program';\n\n /**\n * Sets the active item or index to the item that is specified and focuses it.\n * @param item Item to be set as active.\n */\n setActiveItem(item: number | T): void;\n\n setActiveItem(item: any): void {\n super.setActiveItem(item);\n\n if (this.activeItem) {\n this.activeItem.focus(this.origin);\n }\n }\n\n /**\n * Sets the focus origin that will be passed in to the items for any subsequent `focus` calls.\n * @param origin Focus origin to be used when focusing items.\n */\n setFocusOrigin(origin: FocusOrigin): this {\n this.origin = origin;\n\n return this;\n }\n\n getFocusOrigin(): FocusOrigin {\n return this.origin;\n }\n}\n","/**\n * Koobiq components animation curves\n *\n * @docs-private\n */\nexport enum KbqAnimationCurves {\n StandardCurve = 'cubic-bezier(0.4,0.0,0.2,1)',\n DecelerationCurve = 'cubic-bezier(0.0,0.0,0.2,1)',\n AccelerationCurve = 'cubic-bezier(0.4,0.0,1,1)',\n SharpCurve = 'cubic-bezier(0.4,0.0,0.6,1)',\n EaseInOut = 'ease-in-out',\n EaseInOutQuad = 'cubic-bezier(0.455,0.03,0.515,0.955)'\n}\n\n/**\n * Koobiq components animation durations\n *\n * @docs-private\n */\nexport enum KbqAnimationDurations {\n Long = '300ms',\n Complex = '250ms',\n Entering = '150ms',\n Exiting = '125ms',\n Rapid = '100ms',\n Instant = '50ms'\n}\n","import { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\n\nexport const fadeAnimation: AnimationTriggerMetadata = trigger('fadeAnimation', [\n state('void', style({ opacity: 0 })),\n state('true', style({ opacity: 1 })),\n state('false', style({ opacity: 0 })),\n transition('* => true', animate('150ms cubic-bezier(0.0, 0.0, 0.2, 1)')),\n transition('* => void', animate('150ms cubic-bezier(0.4, 0.0, 1, 1)'))\n]);\n","import { animate, AnimationTriggerMetadata, group, state, style, transition, trigger } from '@angular/animations';\n\n/**\n * The following are all the animations for the kbq-select component, with each\n * const containing the metadata for one animation.\n *\n */\nexport const kbqSelectAnimations: {\n readonly transformPanel: AnimationTriggerMetadata;\n readonly fadeInContent: AnimationTriggerMetadata;\n} = {\n /**\n * This animation transforms the select's overlay panel on and off the page.\n *\n * When the panel is attached to the DOM, it expands its width by the amount of padding, scales it\n * up to 100% on the Y axis, fades in its border, and translates slightly up and to the\n * side to ensure the option text correctly overlaps the trigger text.\n *\n * When the panel is removed from the DOM, it simply fades out linearly.\n */\n transformPanel: trigger('transformPanel', [\n state(\n 'void',\n style({\n transform: 'scaleY(0)',\n minWidth: '100%',\n opacity: 0\n })\n ),\n transition(\n 'void => *',\n group([\n animate('0ms cubic-bezier(0.25, 0.8, 0.25, 1)')\n ])\n ),\n transition('* => void', [\n animate('0ms 0ms linear', style({ opacity: 0 }))\n ])\n ]),\n\n /**\n * This animation fades in the background color and text content of the\n * select's options. It is time delayed to occur 100ms after the overlay\n * panel has transformed in.\n */\n fadeInContent: trigger('fadeInContent', [\n state('showing', style({ opacity: 1 })),\n transition('void => showing', [\n style({ opacity: 0 }),\n animate('0ms 0ms cubic-bezier(0.55, 0, 0.55, 0.2)')\n ])\n ])\n};\n\nexport const transformPanel = kbqSelectAnimations.transformPanel;\n\nexport const fadeInContent = kbqSelectAnimations.fadeInContent;\n","import { Directive, ElementRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[kbqNormalizeWhitespace]',\n host: {\n '(copy)': 'onCopy($event)'\n }\n})\nexport class KbqNormalizeWhitespace {\n /** @docs-private */\n protected readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * Replace thin-space with space on copy event\n */\n onCopy($event: ClipboardEvent) {\n const value =\n (this.elementRef.nativeElement as HTMLInputElement).value || this.elementRef.nativeElement.textContent;\n\n if ($event.type === 'copy' && value) {\n $event.preventDefault();\n $event.clipboardData?.setData('text', value?.replace(/\\u2009/g, ' '));\n }\n }\n}\n","import { Directive, ElementRef, inject, Input, isDevMode } from '@angular/core';\nimport { AbstractConstructor, Constructor } from './constructor';\n\nexport interface CanColor {\n color: KbqComponentColors | ThemePalette | string;\n}\n\n/** @docs-private */\nexport type CanColorCtor = Constructor<CanColor> & AbstractConstructor<CanColor>;\n\nexport interface HasElementRef {\n elementRef: ElementRef;\n}\n\nexport enum ThemePalette {\n Primary = 'primary',\n Secondary = 'secondary',\n Error = 'error',\n Info = 'info',\n Warning = 'warning',\n Success = 'success',\n\n Default = 'secondary',\n Empty = ''\n}\n\nexport enum KbqComponentColors {\n Theme = 'theme',\n ThemeFade = 'theme-fade',\n Contrast = 'contrast',\n ContrastFade = 'contrast-fade',\n\n Error = 'error',\n Warning = 'warning',\n Success = 'success',\n\n Default = 'contrast',\n Empty = 'empty'\n}\n\n/** Mixin to augment a directive with a `color` property. */\nexport function mixinColor<T extends AbstractConstructor<HasElementRef>>(\n base: T,\n defaultColor?: KbqComponentColors | ThemePalette\n): CanColorCtor & T;\n\nexport function mixinColor<T extends Constructor<HasElementRef>>(\n base: T,\n defaultColor: KbqComponentColors | ThemePalette = KbqComponentColors.Empty\n): CanColorCtor & T {\n return class extends base {\n get color(): KbqComponentColors | ThemePalette {\n return this._color;\n }\n set color(value: KbqComponentColors | ThemePalette) {\n const colorPalette = value || defaultColor;\n\n if (colorPalette !== this._color) {\n if (this._color) {\n this.elementRef.nativeElement.classList.remove(`kbq-${this._color}`);\n }\n\n if (colorPalette) {\n this.elementRef.nativeElement.classList.add(`kbq-${colorPalette}`);\n }\n\n this._color = colorPalette;\n }\n }\n\n private _color: KbqComponentColors | ThemePalette;\n\n constructor(...args: any[]) {\n super(...args);\n\n this.color = defaultColor;\n\n if (isDevMode()) {\n // eslint-disable-next-line no-console\n console.warn('mixinColor deprecated and will be deleted in next major release');\n }\n }\n };\n}\n\n@Directive()\nexport class KbqColorDirective {\n /** @docs-private */\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n /** @docs-private */\n protected defaultColor: KbqComponentColors | ThemePalette | string;\n\n /** current class name of color */\n get colorClassName(): KbqComponentColors | ThemePalette | string {\n return `kbq-${this._color}`;\n }\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get color(): KbqComponentColors | ThemePalette | string {\n return this._color;\n }\n\n set color(value: KbqComponentColors | ThemePalette | string) {\n const color = value || this.defaultColor;\n\n if (color !== this._color) {\n if (this._color) {\n this.elementRef.nativeElement.classList.remove(`kbq-${this._color}`);\n }\n\n if (color) {\n this.elementRef.nativeElement.classList.add(`kbq-${color}`);\n }\n\n this._color = color;\n }\n }\n\n protected _color: KbqComponentColors | ThemePalette | string;\n\n constructor() {\n this.color = KbqComponentColors.Empty;\n }\n\n /** this color will be used as a default value. For example [color]=\"'' | false | undefined | null\". */\n setDefaultColor(color: KbqComponentColors | ThemePalette | string) {\n this.defaultColor = color;\n }\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { isDevMode } from '@angular/core';\nimport { AbstractConstructor, Constructor } from './constructor';\n\nexport interface CanDisable {\n disabled: boolean;\n}\n\n/** @docs-private */\nexport type CanDisableCtor = Constructor<CanDisable> & AbstractConstructor<CanDisable>;\n\n/** Mixin to augment a directive with a `disabled` property. */\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport function mixinDisabled<T extends AbstractConstructor<{}>>(base: T): CanDisableCtor & T;\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport function mixinDisabled<T extends Constructor<{}>>(base: T): CanDisableCtor & T {\n return class extends base {\n get disabled() {\n return this._disabled;\n }\n\n set disabled(value: any) {\n this._disabled = coerceBooleanProperty(value);\n }\n\n private _disabled: boolean = false;\n\n constructor(...args: any[]) {\n super(...args);\n\n if (isDevMode()) {\n // eslint-disable-next-line no-console\n console.warn('mixinDisabled deprecated and will be deleted in next major release');\n }\n }\n };\n}\n","import { isDevMode } from '@angular/core';\nimport { AbstractControl, FormGroupDirective, NgControl, NgForm, UntypedFormControl } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { ErrorStateMatcher } from '../error/error-state-matcher';\nimport { AbstractConstructor, Constructor } from './constructor';\n\n/** @docs-private */\nexport interface CanUpdateErrorState {\n /** Whether the component is in an error state. */\n errorState: boolean;\n /** An object used to control the error state of the component. */\n errorStateMatcher: ErrorStateMatcher;\n /** Updates the error state based on the provided error state matcher. */\n updateErrorState(): void;\n}\n\n/** @docs-private */\nexport type CanUpdateErrorStateCtor = Constructor<CanUpdateErrorState>;\n\n/** @docs-private */\nexport interface HasErrorState {\n parentFormGroup: FormGroupDirective | null;\n parentForm: NgForm | null;\n defaultErrorStateMatcher: ErrorStateMatcher;\n\n ngControl: NgControl | null;\n stateChanges: Subject<void>;\n}\n\n/**\n * Mixin to augment a directive with updateErrorState method.\n * For component with `errorState` and need to update `errorState`.\n */\nexport function mixinErrorState<T extends AbstractConstructor<HasErrorState>>(base: T): CanUpdateErrorStateCtor & T;\nexport function mixinErrorState<T extends Constructor<HasErrorState>>(base: T): CanUpdateErrorStateCtor & T {\n return class extends base {\n /** Whether the component is in an error state. */\n errorState: boolean = false;\n\n errorStateMatcher: ErrorStateMatcher;\n\n constructor(...args: any[]) {\n super(...args);\n\n if (isDevMode()) {\n // eslint-disable-next-line no-console\n console.warn('mixinErrorState deprecated and will be deleted in next major release');\n }\n }\n\n updateErrorState() {\n const oldState = this.errorState;\n const parent = this.parentFormGroup || this.parentForm;\n const matcher = this.errorStateMatcher || this.defaultErrorStateMatcher;\n const control = this.ngControl ? (this.ngControl.control as UntypedFormControl) : null;\n const newState = matcher.isErrorState(control, parent);\n\n if (newState !== oldState) {\n this.errorState = newState;\n this.stateChanges.next();\n }\n }\n };\n}\n\n/**\n * Class that tracks the error state of a component.\n * @docs-private\n */\nexport class KbqErrorStateTracker implements CanUpdateErrorState {\n /** Whether the tracker is currently in an error state. */\n errorState = false;\n\n /** User-defined matcher for the error state. */\n errorStateMatcher: ErrorStateMatcher;\n\n constructor(\n private defaultMatcher: ErrorStateMatcher | null,\n public ngControl: NgControl | null,\n private parentFormGroup: FormGroupDirective | null,\n private parentForm: NgForm | null,\n private stateChanges: Subject<void>\n ) {}\n\n /** Updates the error state based on the provided error state matcher. */\n updateErrorState() {\n const oldState = this.errorState;\n const parent = this.parentFormGroup || this.parentForm;\n const matcher = this.errorStateMatcher || this.defaultMatcher;\n const control = this.ngControl ? (this.ngControl.control as AbstractControl) : null;\n const newState = matcher?.isErrorState(control, parent) ?? false;\n\n if (newState !== oldState) {\n this.errorState = newState;\n this.stateChanges.next();\n }\n }\n}\n","import { ElementRef, inject } from '@angular/core';\n\n/**\n * Injects the native element for the current component.\n */\nexport const kbqInjectNativeElement = <T extends Element = HTMLElement>(): T => {\n return inject<ElementRef<T>>(ElementRef<T>).nativeElement;\n};\n","export function isBoolean(value: unknown): value is boolean {\n return typeof value === 'boolean';\n}\n\n/** Whether the value is undefined. */\nexport const isUndefined = (value: unknown): value is undefined => {\n return value === undefined;\n};\n\n/** Whether the value is null. */\nexport const isNull = (value: unknown): value is null => {\n return value === null;\n};\n\n/** Whether the value is HTMLElement. */\nexport const isHtmlElement = (value: unknown): value is HTMLElement => {\n return value instanceof HTMLElement;\n};\n\n/** Whether the value is Element. */\nexport const isElement = (value: unknown): value is Element => value instanceof Element;\n\n/** Whether the value is HTMLElement or null. */\nexport const isHtmlElementOrNull = (value: unknown): value is HTMLElement | null => {\n return isHtmlElement(value) || isNull(value);\n};\n\nexport const getNodesWithoutComments = (nodes: NodeList): Node[] => {\n const COMMENT_NODE = 8;\n\n return Array.from(nodes).filter((node) => node.nodeType !== COMMENT_NODE);\n};\n\nexport const leftIconClassName = 'kbq-icon_left';\nexport const rightIconClassName = 'kbq-icon_right';\n\n/** Whether the current platform is a Mac. */\nexport function isMac(): boolean {\n // eslint-disable-next-line no-restricted-globals\n return /^mac/i.test(navigator?.platform);\n}\n\n/** Converts an enumeration (enum) type into a string literal type containing\n * all possible string representations of the values. */\nexport type KbqEnumValues<T extends string | number> = `${T}`;\n","import { Directive } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { fromEvent, map, merge } from 'rxjs';\nimport { kbqInjectNativeElement } from '../utils';\n\n/**\n * Directive that adds a `kbq-hovered` class to an element, based on its hover state.\n *\n * @docs-private\n */\n@Directive({\n selector: '[kbqHover]',\n host: {\n class: 'kbq-hover',\n '[class.kbq-hovered]': 'hovered()'\n },\n exportAs: 'kbqHover'\n})\nexport class KbqHover {\n private readonly element = kbqInjectNativeElement();\n\n /**\n * Whether the element is hovered.\n */\n readonly hovered = toSignal(\n merge(\n fromEvent<MouseEvent>(this.element, 'mouseenter'),\n fromEvent<MouseEvent>(this.element, 'mouseleave')\n ).pipe(map(({ type }) => type === 'mouseenter')),\n { initialValue: false }\n );\n}\n","import { ChangeDetectorRef, Directive, inject } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Directive({\n host: {\n '(mouseenter)': 'mouseenterHandler()',\n '(mouseleave)': 'mouseleaveHandler()',\n '(click)': 'read.next(true)'\n }\n})\nexport class KbqReadStateDirective {\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n\n timestamp: number;\n timeToRead: number = 500;\n\n readonly read = new BehaviorSubject<boolean>(false);\n\n mouseenterHandler() {\n this.timestamp = new Date().getTime();\n }\n\n mouseleaveHandler() {\n if (new Date().getTime() - this.timestamp > this.timeToRead) {\n this.read.next(true);\n }\n\n this.changeDetectorRef.markForCheck();\n }\n}\n","import { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { isDevMode } from '@angular/core';\nimport { AbstractConstructor, Constructor } from './constructor';\nimport { CanDisable } from './disabled';\n\nexport interface HasTabIndex {\n tabIndex: number;\n}\n\nexport type HasTabIndexCtor = Constructor<HasTabIndex> & AbstractConstructor<HasTabIndex>;\n\n/** Mixin to augment a directive with a `tabIndex` property. */\nexport function mixinTabIndex<T extends AbstractConstructor<CanDisable>>(\n base: T,\n defaultTabIndex?: number\n): HasTabIndexCtor & T;\n\nexport function mixinTabIndex<T extends Constructor<CanDisable>>(base: T, defaultTabIndex = 0): HasTabIndexCtor & T {\n return class extends base implements HasTabIndex {\n defaultTabIndex = defaultTabIndex;\n\n get tabIndex(): number {\n return this.disabled ? -1 : this._tabIndex;\n }\n\n set tabIndex(value: number) {\n // If the specified tabIndex value is null or undefined, fall back to the default value.\n\n this._tabIndex = value != null ? coerceNumberProperty(value) : this.defaultTabIndex;\n }\n\n private _tabIndex: number = defaultTabIndex;\n\n constructor(...args: any[]) {\n super(...args);\n\n if (isDevMode()) {\n // eslint-disable-next-line no-console\n console.warn('mixinTabIndex deprecated and will be deleted in next major release');\n }\n }\n };\n}\n","import { InjectionToken } from '@angular/core';\n\nexport * from './checkbox';\nexport * from './clipboard';\nexport { CanColor, CanColorCtor, KbqColorDirective, KbqComponentColors, mixinColor, ThemePalette } from './color';\nexport { CanDisable, CanDisableCtor, mixinDisabled } from './disabled';\nexport { CanUpdateErrorState, CanUpdateErrorStateCtor, KbqErrorStateTracker, mixinErrorState } from './error-state';\nexport * from './flex';\nexport * from './hover';\nexport * from './orientation';\nexport * from './read-state';\nexport { KbqDefaultSizes } from './size';\nexport { HasTabIndex, HasTabIndexCtor, mixinTabIndex } from './tabindex';\n\nexport const KBQ_PARENT_ANIMATION_COMPONENT = new InjectionToken<any>('kbq-parent-animation-component');\n","import { inject, InjectionToken, LOCALE_ID } from '@angular/core';\nimport { DateAdapter as BaseDateAdapter } from '@koobiq/date-adapter';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n/** InjectionToken for datepicker that can be used to override default locale code. */\nexport const KBQ_DATE_LOCALE = new InjectionToken<string>('KBQ_DATE_LOCALE', {\n providedIn: 'root',\n factory: KBQ_DATE_LOCALE_FACTORY\n});\n\n/** @docs-private */\nexport function KBQ_DATE_LOCALE_FACTORY(): string {\n return inject(LOCALE_ID);\n}\n\nexport abstract class DateAdapter<D> extends BaseDateAdapter<D> {\n /** A stream that emits when the locale changes. */\n abstract get localeChanges(): Observable<any>;\n\n protected abstract _localeChanges: BehaviorSubject<string>;\n}\n","import { InjectionToken } from '@angular/core';\nimport { DateFormats } from '@koobiq/date-adapter';\n\nexport const KBQ_DATE_FORMATS = new InjectionToken<DateFormats>('kbq-date-formats');\nexport type KbqDateFormats = DateFormats;\n","import { Injectable, Provider, Type } from '@angular/core';\nimport { AbstractControl, FormGroupDirective, NgForm } from '@angular/forms';\n\n/** Utility provider for `ErrorStateMatcher`. */\nexport const kbqErrorStateMatcherProvider = (\n errorStateMatcher: Type<ErrorStateMatcher> | ErrorStateMatcher\n): Provider => {\n if (errorStateMatcher instanceof Type) {\n return {\n provide: ErrorStateMatcher,\n useClass: errorStateMatcher\n };\n }\n\n return {\n provide: ErrorStateMatcher,\n useValue: errorStateMatcher\n };\n};\n\n/**\n * Error state matcher that matches when a control is invalid and form is submitted.\n * Requires use FormGroupDirective or NgForm.\n */\n@Injectable()\nexport class ShowOnFormSubmitErrorStateMatcher implements ErrorStateMatcher {\n isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return !!(control?.invalid && form?.submitted);\n }\n}\n\n/**\n * Error state matcher with split behavior based on error's type:\n * - `required` errors are shown only after the form is submitted.\n * - All other errors are shown as soon as the control is invalid and touched.\n */\n@Injectable()\nexport class ShowRequiredOnSubmitErrorStateMatcher implements ErrorStateMatcher {\n isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return control?.hasError('required')\n ? !!(control?.invalid && form?.submitted)\n : !!(control?.invalid && control.touched);\n }\n}\n\n/** Error state matcher that matches when a control is invalid and dirty or form is submitted. */\n@Injectable()\nexport class ShowOnControlDirtyErrorStateMatcher implements ErrorStateMatcher {\n isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return !!(control?.invalid && (control.dirty || form?.submitted));\n }\n}\n\n/**\n * Provider that defines how form controls behave with regards to displaying error messages.\n * Error state matcher that matches when a control is invalid and touched or form is submitted.\n */\n@Injectable({ providedIn: 'root' })\nexport class ErrorStateMatcher {\n isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return !!(control?.invalid && (control.touched || form?.submitted));\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { inject, InjectionToken } from '@angular/core';\n\n/**\n * An abstraction over the global `window` object.\n */\nexport const KBQ_WINDOW = new InjectionToken<Window>('[KBQ_WINDOW]', {\n factory: (): Window => {\n const _window =\n inject(DOCUMENT).defaultView ||\n // Backward compatibility for older Angular versions\n // https://github.com/angular/universal/blob/main/docs/gotchas.md#strategy-3-shims\n // eslint-disable-next-line no-restricted-globals\n window;\n\n if (!_window) {\n throw new Error('[KBQ_WINDOW] window is not available.');\n }\n\n return _window;\n }\n});\n","import { coerceCssPixelValue } from '@angular/cdk/coercion';\nimport { DOCUMENT } from '@angular/common';\nimport { afterNextRender, DestroyRef, Directive, inject, Renderer2 } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { fromEvent, merge } from 'rxjs';\nimport { KBQ_WINDOW } from '../tokens';\nimport { kbqInjectNativeElement } from '../utils';\n\nconst INITIAL_PROPERTIES = {\n all: 'initial',\n position: 'absolute',\n top: coerceCssPixelValue(0),\n left: coerceCssPixelValue(0),\n width: coerceCssPixelValue(0),\n height: coerceCssPixelValue(0),\n visibility: 'hidden',\n overflow: 'scroll',\n whiteSpace: 'pre',\n pointerEvents: 'none'\n} as const satisfies Partial<CSSStyleDeclaration>;\n\n/**\n * Properties that can affect element width and should be inherited from the parent.\n */\nconst WIDTH_INHERITED_PROPERTIES = [\n 'font',\n 'fontFamily',\n 'fontFeatureSettings',\n 'fontKerning',\n 'fontOpticalSizing',\n 'fontSizeAdjust',\n 'fontSize',\n 'fontStretch',\n 'fontSynthesis',\n 'fontVariant',\n 'fontVariantLigatures',\n 'fontVariationSettings',\n 'fontWeight',\n 'letterSpacing',\n 'textIndent',\n 'textTransform'\n] as const satisfies Array<keyof CSSStyleDeclaration>;\n\n/**\n * Properties that should be added to the width when `box-sizing: border-box` is applied.\n */\nconst BOX_SIZING_BORDER_BOX_WIDTH_PROPERTIES = [\n 'paddingLeft',\n 'paddingRight',\n 'borderLeftWidth',\n 'borderRightWidth'\n] as const satisfies Array<keyof CSSStyleDeclaration>;\n\nconst FIELD_RESIZE_EVENTS = ['input', 'change', 'focus', 'blur'] as const;\n\n/**\n * Emulates [`field-sizing: content`](https://developer.mozilla.org/en-US/docs/Web/CSS/field-sizing) CSS property for\n * browsers that do not support it natively.\n *\n * @docs-private\n */\n@Directive({\n selector: '[kbqFieldSizingContent]',\n host: {\n class: 'kbq-field-sizing-content'\n },\n exportAs: 'kbqFieldSizingContent'\n})\nexport class KbqFieldSizingContent {\n private readonly element = kbqInjectNativeElement<HTMLInputElement>();\n private readonly renderer = inject(Renderer2);\n private readonly window = inject(KBQ_WINDOW);\n private readonly document = inject(DOCUMENT);\n private readonly destroyRef = inject(DestroyRef);\n\n constructor() {\n afterNextRender(() => this.emulate());\n }\n\n private emulate(): void {\n if (CSS.supports('field-sizing', 'content')) {\n this.renderer.setStyle(this.element, 'fieldSizing', 'content');\n\n return;\n }\n\n merge(...FIELD_RESIZE_EVENTS.map((event) => fromEvent(this.element, event)))\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.setupWidth());\n\n this.setupWidth();\n }\n\n private setupWidth(): void {\n const computedStyle = this.window.getComputedStyle(this.element);\n const ruler = this.createRuler(computedStyle);\n\n ruler.textContent = this.element.value || this.element.placeholder || '';\n // We should add space to prevent text truncation in Safari/Firefox\n if (ruler.textContent) ruler.textContent += ' ';\n\n this.renderer.appendChild(this.document.body, ruler);\n\n const width = this.calculateWidth(ruler, computedStyle);\n\n this.renderer.setStyle(this.element, 'width', coerceCssPixelValue(width));\n this.renderer.removeChild(this.document.body, ruler);\n }\n\n private createRuler(computedStyle: CSSStyleDeclaration): HTMLElement {\n const ruler: HTMLSpanElement = this.renderer.createElement('span');\n\n Object.assign(ruler.style, INITIAL_PROPERTIES);\n WIDTH_INHERITED_PROPERTIES.forEach((property) => {\n ruler.style[property] = computedStyle[property];\n });\n\n return ruler;\n }\n\n private calculateWidth(ruler: HTMLElement, computedStyle: CSSStyleDeclaration): number {\n if (computedStyle.boxSizing === 'border-box') {\n return BOX_SIZING_BORDER_BOX_WIDTH_PROPERTIES.reduce(\n (width, property) => width + (parseFloat(computedStyle[property]) || 0),\n ruler.scrollWidth\n );\n }\n\n return ruler.scrollWidth;\n }\n}\n","import { InjectionToken, ModelSignal } from '@angular/core';\n\n/**\n * Internal contract for `KbqFormField` used by code that cannot import the form-field\n * class directly because of a circular dependency (e.g. `core/select/common.ts`).\n *\n * @docs-private\n */\nexport interface KbqFormFieldRef {\n control: any;\n canCleanerClearByEsc: boolean;\n /** Use when KbqFormField is in an overlay container. */\n inOverlay: ModelSignal<boolean>;\n focus(): void;\n}\n\n/**\n * Injection token that can be used to inject an instances of `KbqFormField`. It serves\n * as alternative token to the actual `KbqFormField` class which would cause unnecessary\n * retention of the `KbqFormField` class and its component metadata.\n *\n * @TODO move into form-field.ts, add correct type for `InjectionToken<KbqFormField>` (#DS-2915)\n */\nexport const KBQ_FORM_FIELD_REF = new InjectionToken<KbqFormFieldRef>('KbqFormFieldRef');\n","import {\n KbqActionsPanelLocaleConfiguration,\n KbqClampedTextLocaleConfig,\n KbqCodeBlockLocaleConfiguration,\n KbqFileUploadLocaleConfig,\n KbqTimeRangeLocaleConfig\n} from './types';\n\nexport const enUSLocaleData = {\n select: { hiddenItemsText: '+{{ number }}' },\n datepicker: {\n placeholder: 'yyyy-mm-dd',\n dateInput: 'yyyy-MM-dd'\n },\n timepicker: {\n placeholder: {\n full: 'hh:mm:ss',\n short: 'hh:mm'\n }\n },\n fileUpload: {\n single: {\n captionText: 'Drag file here or {{ browseLink }}',\n captionTextOnlyFolder: 'Drag here or {{ browseLinkFolder }}',\n captionTextWithFolder: 'Drag here or {{ browseLink }} or {{ browseLinkFolderMixed }}',\n browseLink: 'choose',\n browseLinkFolder: 'choose folder',\n browseLinkFolderMixed: 'folder'\n },\n multiple: {\n captionText: 'or {{ browseLink }}',\n captionTextOnlyFolder: 'or {{ browseLinkFolder }}',\n captionTextWithFolder: 'or {{ browseLink }} or {{ browseLinkFolderMixed }}',\n captionTextWhenSelected: 'Drag more or {{ browseLink }}',\n captionTextForCompactSize: 'Drag files or {{ browseLink }}',\n browseLink: 'choose files',\n browseLinkFolder: 'choose folder',\n browseLinkFolderMixed: 'folder',\n title: 'Drag here'\n }\n } satisfies KbqFileUploadLocaleConfig,\n codeBlock: {\n softWrapOnTooltip: 'Enable word wrap',\n softWrapOffTooltip: 'Disable word wrap',\n downloadTooltip: 'Download',\n copiedTooltip: '✓ Copied',\n copyTooltip: 'Copy',\n viewAllText: 'Show all',\n viewLessText: 'Show less',\n openExternalSystemTooltip: 'Open in the external system'\n } satisfies KbqCodeBlockLocaleConfiguration,\n timezone: {\n searchPlaceholder: 'City or time zone'\n },\n actionsPanel: {\n closeTooltip: 'Deselect'\n } satisfies KbqActionsPanelLocaleConfiguration,\n filterBar: {\n reset: {\n buttonName: 'Reset'\n },\n search: {\n tooltip: 'Search',\n placeholder: 'Search'\n },\n filters: {\n defaultName: 'Filters',\n saveNewFilterTooltip: 'Save the new filter',\n searchPlaceholder: 'Search',\n searchEmptyResult: 'Nothing found',\n saveAsNewFilter: 'Save as new filter',\n saveChanges: 'Save changes',\n saveAsNew: 'Save as new',\n change: 'Edit',\n resetChanges: 'Reset',\n remove: 'Delete',\n name: 'Name',\n error: 'The search with such name already exists',\n errorHint: 'Could not save the filter. Try again or contact the administrator.',\n saveButton: 'Save',\n cancelButton: 'Cancel'\n },\n add: {\n tooltip: 'Add filter'\n },\n pipe: {\n clearButtonTooltip: 'Clear',\n removeButtonTooltip: 'Delete',\n applyButton: 'Apply',\n emptySearchResult: 'Nothing found',\n selectAll: 'Select all'\n },\n datePipe: {\n customPeriod: 'Custom period',\n customPeriodFrom: 'from',\n customPeriodTo: 'to',\n customPeriodErrorHint: 'The period cannot start later than it ends',\n backToPeriodSelection: 'Back'\n }\n },\n clampedText: {\n openText: 'Expand',\n closeText: 'Collapse',\n showMoreText: 'Show {exceededItemCount} more',\n moreText: 'more'\n } satisfies KbqClampedTextLocaleConfig,\n navbarIc: {\n toggle: {\n pinButton: 'Leave expanded',\n collapseButton: 'Collapse'\n }\n },\n navbar: {\n toggle: {\n expand: 'Expand',\n collapse: 'Collapse'\n }\n },\n searchExpandable: {\n tooltip: 'Search',\n placeholder: 'Search'\n },\n appSwitcher: {\n searchPlaceholder: 'Search',\n searchEmptyResult: 'Nothing found',\n sitesHeader: 'Other sites'\n },\n timeRange: {\n title: {\n for: 'for',\n placeholder: 'Select period'\n },\n editor: {\n from: 'from',\n to: 'to',\n apply: 'Apply',\n cancel: 'Cancel',\n rangeLabel: 'for period',\n allTime: 'for all time',\n currentQuarter: 'for the current quarter',\n currentYear: 'for the current year'\n },\n durationTemplate: {\n title: {\n SEPARATOR: ' ',\n LAST_PART_SEPARATOR: '',\n YEARS: `{years, plural,\n one {# year}\n other {last # years}\n }`,\n MONTHS: `{months, plural,\n one {last month}\n other {last # months}\n }`,\n WEEKS: `{weeks, plural,\n one {last week}\n other {last # weeks}\n }`,\n DAYS: `{days, plural,\n one {last day}\n other {last # days}\n }`,\n HOURS: `{hours, plural,\n one {last hour}\n other {last # hours}\n }`,\n MINUTES: `{minutes, plural,\n one {last minute}\n other {last # minutes}\n }`,\n SECONDS: `{seconds, plural,\n one {last second}\n other {last # seconds}\n }`,\n YEARS_FRACTION: `{years} years`,\n MONTHS_FRACTION: `{months} months`\n },\n option: {\n SEPARATOR: ' ',\n LAST_PART_SEPARATOR: '',\n YEARS: `{years, plural,\n one {# year}\n other {last # years}\n }`,\n MONTHS: `{months, plural,\n one {last month}\n other {last # months}\n }`,\n WEEKS: `{weeks, plural,\n one {last week}\n other {last # weeks}\n }`,\n DAYS: `{days, plural,\n one {last day}\n other {last # days}\n }`,\n HOURS: `{hours, plural,\n one {last hour}\n other {last # hours}\n }`,\n MINUTES: `{minutes, plural,\n one {last minute}\n other {last # minutes}\n }`,\n SECONDS: `{seconds, plural,\n one {last second}\n other {last # seconds}\n }`,\n YEARS_FRACTION: `{years} years`,\n MONTHS_FRACTION: `{months} months`\n }\n }\n } satisfies KbqTimeRangeLocaleConfig,\n notificationCenter: {\n notifications: 'Notifications',\n remove: 'Remove',\n doNotDisturb: 'Do not disturb',\n showPopUpNotifications: 'Show pop-up notifications',\n noNotifications: 'No notifications',\n failedToLoadNotifications: 'Failed to load notifications',\n repeat: 'Repeat'\n }\n};\n","import {\n KbqActionsPanelLocaleConfiguration,\n KbqClampedTextLocaleConfig,\n KbqCodeBlockLocaleConfiguration,\n KbqFileUploadLocaleConfig,\n KbqTimeRangeLocaleConfig\n} from './types';\n\nexport const esLALocaleData = {\n select: { hiddenItemsText: '+{{ number }}' },\n datepicker: {\n placeholder: 'dd/mm/aaaa'\n },\n timepicker: {\n placeholder: {\n full: 'hh:mm:ss',\n short: 'hh:mm'\n }\n },\n fileUpload: {\n single: {\n captionText: 'Arrastre el archivo aquí o {{ browseLink }}',\n captionTextOnlyFolder: 'Arrastre el archivo aquí o {{ browseLinkFolder }}',\n captionTextWithFolder: 'Arrastre el archivo aquí o {{ browseLink }} o {{ browseLinkFolderMixed }}',\n browseLink: 'elija',\n browseLinkFolder: 'carpeta',\n browseLinkFolderMixed: 'carpeta'\n },\n multiple: {\n captionText: 'Arrastre aquí o {{ browseLink }}',\n captionTextOnlyFolder: 'Arrastre aquí o {{ browseLinkFolder }}',\n captionTextWithFolder: 'Arrastre aquí o {{ browseLink }} o {{ browseLinkFolderMixed }}',\n captionTextWhenSelected: 'Arrastre más archivos aquí o {{ browseLink }}',\n captionTextForCompactSize: 'Arrastre archivos o {{ browseLink }}',\n browseLink: 'elija',\n browseLinkFolder: 'carpeta',\n browseLinkFolderMixed: 'carpeta',\n title: 'Cargue los archivos'\n }\n } satisfies KbqFileUploadLocaleConfig,\n codeBlock: {\n softWrapOnTooltip: 'Activar el ajuste de texto',\n softWrapOffTooltip: 'Desactivar el ajuste de texto',\n downloadTooltip: 'Descargar',\n copiedTooltip: '✓ Copiado',\n copyTooltip: 'Copiar',\n viewAllText: 'Mostrar todo',\n viewLessText: 'Mostrar menos',\n openExternalSystemTooltip: 'Abrir en el sistema externo'\n } satisfies KbqCodeBlockLocaleConfiguration,\n timezone: {\n searchPlaceholder: 'Ciudad o zona horaria'\n },\n actionsPanel: {\n closeTooltip: 'Desmarque'\n } satisfies KbqActionsPanelLocaleConfiguration,\n filterBar: {\n reset: {\n buttonName: 'Restablecer'\n },\n search: {\n tooltip: 'Búsqueda',\n placeholder: 'Búsqueda'\n },\n filters: {\n defaultName: 'Filtros',\n saveNewFilterTooltip: 'Guardar el filtro nuevo',\n searchPlaceholder: 'Búsqueda',\n searchEmptyResult: 'No se encontró nada',\n saveAsNewFilter: 'Guardar como filtro nuevo',\n saveChanges: 'Guardar cambios',\n saveAsNew: 'Guardar como nuevo',\n change: 'Editar',\n resetChanges: 'Restablecer',\n remove: 'Eliminar',\n name: 'Nombre',\n error: 'Ya existe una búsqueda con ese nombre',\n errorHint: 'No se pudo guardar el filtro. Intente de nuevo o comuníquese con el administrador.',\n saveButton: 'Guardar',\n cancelButton: 'Cancelar'\n },\n add: {\n tooltip: 'Agregar filtro'\n },\n pipe: {\n clearButtonTooltip: 'Borrar',\n removeButtonTooltip: 'Eliminar',\n applyButton: 'Aplicar',\n emptySearchResult: 'No se encontró nada',\n selectAll: 'Seleccionar todo'\n },\n datePipe: {\n customPeriod: 'Personalizar período',\n customPeriodFrom: 'desde',\n customPeriodTo: 'hasta',\n customPeriodErrorHint: 'El inicio del período no puede estar después del fin',\n backToPeriodSelection: 'Atrás'\n }\n },\n clampedText: {\n openText: 'Expandir',\n closeText: 'Contraer',\n showMoreText: 'Mostrar {exceededItemCount} más',\n moreText: 'más'\n } satisfies KbqClampedTextLocaleConfig,\n navbarIc: {\n toggle: {\n pinButton: 'Expandir el menú',\n collapseButton: 'Colapsar'\n }\n },\n navbar: {\n toggle: {\n expand: 'Expandir',\n collapse: 'Colapsar'\n }\n },\n searchExpandable: {\n tooltip: 'Búsqueda',\n placeholder: 'Búsqueda'\n },\n appSwitcher: {\n searchPlaceholder: 'Búsqueda',\n searchEmptyResult: 'No se encontró nada',\n sitesHeader: 'Otros sitios'\n },\n timeRange: {\n title: {\n for: 'para',\n placeholder: 'Seleccione el período'\n },\n editor: {\n from: 'de',\n to: 'a',\n apply: 'Aplicar',\n cancel: 'Cancelar',\n rangeLabel: 'para el período',\n allTime: 'por todo el tiempo',\n currentQuarter: 'por el trimestre actual',\n currentYear: 'por el año actual'\n },\n durationTemplate: {\n title: {\n SEPARATOR: ', ',\n LAST_PART_SEPARATOR: '',\n YEARS: `{years, plural,\n one {# año}\n other {últimos # años}\n }`,\n MONTHS: `{months, plural,\n one {último mes}\n other {últimos # meses}\n }`,\n WEEKS: `{weeks, plural,\n one {última semana}\n other {últimas # semanas}\n }`,\n DAYS: `{days, plural,\n one {último día}\n other {últimos # días}\n }`,\n HOURS: `{hours, plural,\n one {última hora}\n other {últimas # horas}\n }`,\n MINUTES: `{minutes, plural,\n one {último minuto}\n other {últimos # minutos}\n }`,\n SECONDS: `{seconds, plural,\n one {último segundo}\n other {últimos # segundos}\n }`,\n YEARS_FRACTION: `{years} años`,\n MONTHS_FRACTION: `{months} meses`\n },\n option: {\n SEPARATOR: ', ',\n LAST_PART_SEPARATOR: '',\n YEARS: `{years, plural,\n one {# año}\n other {últimos # años}\n }`,\n MONTHS: `{months, plural,\n one {último mes}\n other {últimos # meses}\n }`,\n WEEKS: `{weeks, plural,\n one {última semana}\n other {últimas # semanas}\n }`,\n DAYS: `{days, plural,\n one {último día}\n other {últimos # días}\n }`,\n HOURS: `{hours, plural,\n one {última hora}\n other {últimas # horas}\n }`,\n MINUTES: `{minutes, plural,\n one {último minuto}\n other {últimos # minutos}\n }`,\n SECONDS: `{seconds, plural,\n one {último segundo}\n other {últimos # segundos}\n }`,\n YEARS_FRACTION: `{years} años`,\n MONTHS_FRACTION: `{months} meses`\n }\n }\n } satisfies KbqTimeRangeLocaleConfig,\n notificationCenter: {\n notifications: 'Notificaciones',\n remove: 'Eliminar',\n doNotDisturb: 'No molestar',\n showPopUpNotifications: 'Mostrar notificaciones emergentes',\n noNotifications: 'Sin notificaciones',\n failedToLoadNotifications: 'Error al cargar las notificaciones',\n repeat: 'Repetir'\n }\n};\n","import {\n KbqActionsPanelLocaleConfiguration,\n KbqClampedTextLocaleConfig,\n KbqCodeBlockLocaleConfiguration,\n KbqFileUploadLocaleConfig,\n KbqTimeRangeLocaleConfig\n} from './types';\n\nexport const ptBRLocaleData = {\n select: { hiddenItemsText: '+{{ number }}' },\n datepicker: {\n placeholder: 'dd/mm/yyyy'\n },\n timepicker: {\n placeholder: {\n full: 'hh:mm:ss',\n short: 'hh:mm'\n }\n },\n fileUpload: {\n single: {\n captionText: 'Arrastar o arquivo aqui ou {{ browseLink }}',\n captionTextOnlyFolder: 'Arrastar o arquivo aqui ou {{ browseLinkFolder }}',\n captionTextWithFolder: 'Arrastar o arquivo aqui ou {{ browseLink }} ou {{ browseLinkFolderMixed }}',\n browseLink: 'escolher',\n browseLinkFolder: 'pasta',\n browseLinkFolderMixed: 'pasta'\n },\n multiple: {\n captionText: 'Arrastar aqui ou {{ browseLink }}',\n captionTextOnlyFolder: 'Arrastar aqui ou {{ browseLinkFolder }}',\n captionTextWithFolder: 'Arrastar aqui ou {{ browseLink }} ou {{ browseLinkFolderMixed }}',\n captionTextWhenSelected: 'Arrastar mais arquivos aqui ou {{ browseLink }}',\n captionTextForCompactSize: 'Arrastar arquivos ou {{ browseLink }}',\n browseLink: 'escolher',\n browseLinkFolder: 'pasta',\n browseLinkFolderMixed: 'pasta',\n title: 'Carregar arquivos'\n }\n } satisfies KbqFileUploadLocaleConfig,\n codeBlock: {\n softWrapOnTooltip: 'Ativar quebra de linha',\n softWrapOffTooltip: 'Desativar quebra de linha',\n downloadTooltip: 'Baixar',\n copiedTooltip: '✓ Copiado',\n copyTooltip: 'Copiar',\n viewAllText: 'Mostrar todos',\n viewLessText: 'Mostrar menos',\n openExternalSystemTooltip: 'Abrir em sistema externo'\n } satisfies KbqCodeBlockLocaleConfiguration,\n timezone: {\n searchPlaceholder: 'Cidade ou fuso horário'\n },\n actionsPanel: {\n closeTooltip: 'Desmarcar'\n } satisfies KbqActionsPanelLocaleConfiguration,\n filterBar: {\n reset: {\n buttonName: 'Reconfigurar'\n },\n search: {\n tooltip: 'Buscar',\n placeholder: 'Buscar'\n },\n filters: {\n defaultName: 'Filtros',\n saveNewFilterTooltip: 'Salve o filtro novo',\n searchPlaceholder: 'Buscar',\n searchEmptyResult: 'Nada encontrado',\n saveAsNewFilter: 'Salve o filtro novo',\n saveChanges: 'Salve as mudanças',\n saveAsNew: 'Salve como novo',\n change: 'Editar',\n resetChanges: 'Reconfigurar',\n remove: 'Deletar',\n name: 'Nome',\n error: 'A busca com esse nome já existe',\n errorHint: 'O filtro não pôde ser salvo. Tente de novo ou entre em contato com o administrador.',\n saveButton: 'Salvar',\n cancelButton: 'Cancelar'\n },\n add: {\n tooltip: 'Adicionar filtros'\n },\n pipe: {\n clearButtonTooltip: 'Apagar',\n removeButtonTooltip: 'Deletar',\n applyButton: 'Aplicar',\n emptySearchResult: 'Nada encontrado',\n selectAll: 'Selecionar todos'\n },\n datePipe: {\n customPeriod: 'Selecionar período',\n customPeriodFrom: 'de',\n customPeriodTo: 'até',\n customPeriodErrorHint: 'O período não pode começar depois de quando acaba',\n backToPeriodSelection: 'Voltar'\n }\n },\n clampedText: {\n openText: 'Expandir',\n closeText: 'Recolher',\n showMoreText: 'Mostrar mais {exceededItemCount}',\n moreText: 'mais'\n } satisfies KbqClampedTextLocaleConfig,\n navbarIc: {\n toggle: {\n pinButton: 'Deixar expandido',\n collapseButton: 'Recolher'\n }\n },\n navbar: {\n toggle: {\n expand: 'Expandir',\n collapse: 'Colapso'\n }\n },\n searchExpandable: {\n tooltip: 'Pesquisar',\n placeholder: 'Pesquisar'\n },\n appSwitcher: {\n searchPlaceholder: 'Pesquisar',\n searchEmptyResult: 'Nada encontrado',\n sitesHeader: 'Outros sites'\n },\n timeRange: {\n title: {\n for: 'para',\n placeholder: 'Selecione o período'\n },\n editor: {\n from: 'de',\n to: 'até',\n apply: 'Aplicar',\n cancel: 'Cancelar',\n rangeLabel: 'para o período',\n allTime: 'por todo o tempo',\n currentQuarter: 'pelo trimestre atual',\n currentYear: 'pelo ano atual'\n },\n durationTemplate: {\n title: {\n SEPARATOR: ' e ',\n LAST_PART_SEPARATOR: '',\n YEARS: `{years, plural,\n one {# ano}\n other {últimos # anos}\n }`,\n MONTHS: `{months, plural,\n one {último mês}\n other {últimos # meses}\n }`,\n WEEKS: `{weeks, plural,\n one {última semana}\n other {últimas # semanas}\n }`,\n DAYS: `{days, plural,\n one {último dia}\n other {últimos # dias}\n }`,\n HOURS: `{hours, plural,\n one {última hora}\n other {últimas # horas}\n }`,\n MINUTES: `{minutes, plural,\n one {último minuto}\n other {últimos # minutos}\n }`,\n SECONDS: `{seconds, plural,\n one {último segundo}\n other {últimos # segundos}\n }`,\n YEARS_FRACTION: `{years} anos`,\n MONTHS_FRACTION: `{months} meses`\n },\n option: {\n SEPARATOR: ' e ',\n LAST_PART_SEPARATOR: '',\n YEARS: `{years, plural,\n one {# ano}\n other {últimos # anos}\n }`,\n MONTHS: `{months, plural,\n one {último mês}\n other {últimos # meses}\n }`,\n WEEKS: `{weeks, plural,\n one {última semana}\n other {últimas # semanas}\n }`,\n DAYS: `{days, plural,\n one {último dia}\n other {últimos # dias}\n }`,\n HOURS: `{hours, plural,\n one {última hora}\n other {últimas # horas}\n }`,\n MINUTES: `{minutes, plural,\n one {último minuto}\n other {últimos # minutos}\n }`,\n SECONDS: `{seconds, plural,\n one {último segundo}\n other {últimos # segundos}\n }`,\n YEARS_FRACTION: `{years} anos`,\n MONTHS_FRACTION: `{months} meses`\n }\n }\n } satisfies KbqTimeRangeLocaleConfig,\n notificationCenter: {\n notifications: 'Notificações',\n remove: 'Remover',\n doNotDisturb: 'Não perturbe',\n showPopUpNotifications: 'Mostrar notificações pop-up',\n noNotifications: 'Sem notificações',\n failedToLoadNotifications: 'Falha ao carregar notificações',\n repeat: 'Repetir'\n }\n};\n","import {\n KbqActionsPanelLocaleConfiguration,\n KbqClampedTextLocaleConfig,\n KbqCodeBlockLocaleConfiguration,\n KbqFileUploadLocaleConfig,\n KbqTimeRangeLocaleConfig\n} from './types';\n\nexport const ruRULocaleData = {\n select: { hiddenItemsText: '+{{ number }}' },\n datepicker: {\n placeholder: 'дд.мм.гггг',\n dateInput: 'dd.MM.yyyy'\n },\n timepicker: {\n placeholder: {\n full: 'чч:мм:сс',\n short: 'чч:мм'\n }\n },\n fileUpload: {\n single: {\n captionText: 'Перетащите сюда или {{ browseLink }}',\n captionTextOnlyFolder: 'Перетащите сюда или {{ browseLinkFolder }}',\n captionTextWithFolder: 'Перетащите сюда или {{ browseLink }} или {{ browseLinkFolderMixed }}',\n browseLink: 'выберите файл',\n browseLinkFolder: 'выберите папку',\n browseLinkFolderMixed: 'папку'\n },\n multiple: {\n captionText: 'или {{ browseLink }}',\n captionTextOnlyFolder: 'или {{ browseLinkFolder }}',\n captionTextWithFolder: 'или {{ browseLink }} или {{ browseLinkFolderMixed }}',\n captionTextWhenSelected: 'Перетащите еще или {{ browseLink }}',\n captionTextForCompactSize: 'Перетащите сюда или {{ browseLink }}',\n browseLink: 'выберите файлы',\n browseLinkFolder: 'выберите папку',\n browseLinkFolderMixed: 'папку',\n title: 'Перетащите сюда'\n }\n } satisfies KbqFileUploadLocaleConfig,\n codeBlock: {\n softWrapOnTooltip: 'Включить перенос по словам',\n softWrapOffTooltip: 'Выключить перенос по словам',\n downloadTooltip: 'Скачать',\n copiedTooltip: '✓ Скопировано',\n copyTooltip: 'Скопировать',\n viewAllText: 'Показать все',\n viewLessText: 'Свернуть',\n openExternalSystemTooltip: 'Открыть во внешней системе'\n } satisfies KbqCodeBlockLocaleConfiguration,\n timezone: {\n searchPlaceholder: 'Город или часовой пояс'\n },\n actionsPanel: {\n closeTooltip: 'Отменить выбор'\n } satisfies KbqActionsPanelLocaleConfiguration,\n filterBar: {\n reset: {\n buttonName: 'Сбросить'\n },\n search: {\n tooltip: 'Поиск',\n placeholder: 'Поиск'\n },\n filters: {\n defaultName: 'Фильтры',\n saveNewFilterTooltip: 'Сохранить новый фильтр',\n searchPlaceholder: 'Поиск',\n searchEmptyResult: 'Ничего не найдено',\n saveAsNewFilter: 'Сохранить как новый фильтр',\n saveChanges: 'Сохранить изменения',\n saveAsNew: 'Сохранить как новый',\n change: 'Изменить',\n resetChanges: 'Сбросить изменения',\n remove: 'Удалить',\n name: 'Название',\n error: 'Поиск с таким названием уже существует',\n errorHint: 'Не удалось сохранить фильтр. Попробуйте снова или сообщите администратору.',\n saveButton: 'Сохранить',\n cancelButton: 'Отмена'\n },\n add: {\n tooltip: 'Добавить фильтр'\n },\n pipe: {\n clearButtonTooltip: 'Очистить',\n removeButtonTooltip: 'Удалить',\n applyButton: 'Применить',\n emptySearchResult: 'Ничего не найдено',\n selectAll: 'Выбрать все'\n },\n datePipe: {\n customPeriod: 'Произвольный период',\n customPeriodFrom: 'с',\n customPeriodTo: 'по',\n customPeriodErrorHint: 'Начало периода не может быть позже окончания',\n backToPeriodSelection: 'Назад'\n }\n },\n clampedText: {\n openText: 'Развернуть',\n closeText: 'Свернуть',\n showMoreText: 'Показать еще {exceededItemCount}',\n moreText: 'еще'\n } satisfies KbqClampedTextLocaleConfig,\n navbarIc: {\n toggle: {\n pinButton: 'Оставить развернутым',\n collapseButton: 'Свернуть'\n }\n },\n navbar: {\n toggle: {\n expand: 'Развернуть',\n collapse: 'Свернуть'\n }\n },\n searchExpandable: {\n tooltip: 'Поиск',\n placeholder: 'Поиск'\n },\n appSwitcher: {\n searchPlaceholder: 'Поиск',\n searchEmptyResult: 'Ничего не найдено',\n sitesHeader: 'Другие площадки'\n },\n timeRange: {\n title: {\n for: 'за',\n placeholder: 'Выберите период'\n },\n editor: {\n from: 'с',\n to: 'по',\n apply: 'Применить',\n cancel: 'Отмена',\n rangeLabel: 'за период',\n allTime: 'за все время',\n currentQuarter: 'за текущий квартал',\n currentYear: 'за текущий год'\n },\n durationTemplate: {\n title: {\n SEPARATOR: ' ',\n LAST_PART_SEPARATOR: 'и',\n YEARS: `{years, plural,\n one {# год}\n few {последние # лет}\n other {последние # лет}\n }`,\n MONTHS: `{months, plural,\n one {последний месяц}\n few {последние # месяца}\n other {последние # месяцев}\n }`,\n WEEKS: `{weeks, plural,\n one {последнюю неделю}\n few {последние # недели}\n other {последние # недель}\n }`,\n DAYS: `{days, plural,\n one {последний день}\n few {последние # дня}\n other {последние # дней}\n }`,\n HOURS: `{hours, plural,\n one {последний час}\n few {последние # часа}\n other {последние # часов}\n }`,\n MINUTES: `{minutes, plural,\n one {последнюю минуту}\n few {последние # минуты}\n other {последние # минут}\n }`,\n SECONDS: `{seconds, plural,\n one {последнюю секунду}\n few {последние # секунды}\n other {последние # секунд}\n }`,\n YEARS_FRACTION: `{years} лет`,\n MONTHS_FRACTION: `{months} месяцев`\n },\n option: {\n SEPARATOR: ' ',\n LAST_PART_SEPARATOR: 'и',\n YEARS: `{years, plural,\n one {последний год}\n few {последние # лет}\n other {последние # лет}\n }`,\n MONTHS: `{months, plural,\n one {последний месяц}\n few {последние # месяца}\n other {последние # месяцев}\n }`,\n WEEKS: `{weeks, plural,\n one {последняя неделя}\n few {последние # недели}\n other {последние # недель}\n }`,\n DAYS: `{days, plural,\n one {последний день}\n few {последние # дня}\n other {последние # дней}\n }`,\n HOURS: `{hours, plural,\n one {последний час}\n few {последние # часа}\n other {последние # часов}\n }`,\n MINUTES: `{minutes, plural,\n one {последняя минута}\n few {последние # минуты}\n other {последние # минут}\n }`,\n SECONDS: `{seconds, plural,\n one {последняя секунда}\n few {последние # секунды}\n other {последние # секунд}\n }`,\n YEARS_FRACTION: `{years} лет`,\n MONTHS_FRACTION: `{months} месяцев`\n }\n }\n } satisfies KbqTimeRangeLocaleConfig,\n notificationCenter: {\n notifications: 'Уведомления',\n remove: 'Удалить',\n doNotDisturb: 'Не беспокоить',\n showPopUpNotifications: 'Показывать всплывающие уведомления',\n noNotifications: 'Нет уведомлений',\n failedToLoadNotifications: 'Не удалось загрузить уведомления',\n repeat: 'Повторить'\n }\n};\n","import {\n KbqActionsPanelLocaleConfiguration,\n KbqClampedTextLocaleConfig,\n KbqCodeBlockLocaleConfiguration,\n KbqFileUploadLocaleConfig,\n KbqTimeRangeLocaleConfig\n} from './types';\n\nexport const tkTMLocaleData = {\n select: { hiddenItemsText: '+{{ number }}' },\n datepicker: {\n placeholder: 'gg.aa.ýý.',\n dateInput: 'gg.aa.ýý.'\n },\n timepicker: {\n placeholder: {\n full: 'ss:mm:seksek',\n short: 'ss:mm'\n }\n },\n fileUpload: {\n single: {\n captionText: 'Faýly geçiriň ýa-da {{ browseLink }}',\n captionTextOnlyFolder: 'Faýly geçiriň ýa-da {{ browseLinkFolder }}',\n captionTextWithFolder: 'Faýly geçiriň ýa-da {{ browseLink }} ýa-da {{ browseLinkFolderMixed }}',\n browseLink: 'saýlaň',\n browseLinkFolder: 'bukja',\n browseLinkFolderMixed: 'bukja'\n },\n multiple: {\n captionText: 'Şu ýere geçiriň ýa-da {{ browseLink }}',\n captionTextOnlyFolder: 'Şu ýere geçiriň ýa-da {{ browseLinkFolder }}',\n captionTextWithFolder: 'Şu ýere geçiriň ýa-da {{ browseLink }} ýa-da {{ browseLinkFolderMixed }}',\n captionTextWhenSelected: 'Ýene geçiriň ýa-da {{ browseLink }}',\n captionTextForCompactSize: 'Faýllary geçiriň ýa-da {{ browseLink }}',\n browseLink: 'saýlaň',\n browseLinkFolder: 'bukja',\n browseLinkFolderMixed: 'bukja',\n title: 'Faýl ýükläň'\n }\n } satisfies KbqFileUploadLocaleConfig,\n codeBlock: {\n softWrapOnTooltip: 'Sözler boýunça geçirmäni işjeňleşdirmek',\n softWrapOffTooltip: 'Sözler boýunça geçirmäni öçürmek',\n downloadTooltip: 'Ýüklemek',\n copiedTooltip: '✓ Göçürildi',\n copyTooltip: 'Göçürmek',\n viewAllText: 'Hemmesini görkezmek',\n viewLessText: 'Ýygyrmak',\n openExternalSystemTooltip: 'Daşarky ulgamda açmak'\n } satisfies KbqCodeBlockLocaleConfiguration,\n timezone: {\n searchPlaceholder: 'Şäher ýa-da sagat guşagy'\n },\n actionsPanel: {\n closeTooltip: 'Saýlawy ýatyr'\n } satisfies KbqActionsPanelLocaleConfiguration,\n filterBar: {\n reset: {\n buttonName: 'Täzeden düz'\n },\n search: {\n tooltip: 'Gözleg',\n placeholder: 'Gözleg'\n },\n filters: {\n defaultName: 'Filtrler',\n saveNewFilterTooltip: 'Täze filtri ýazdyr',\n searchPlaceholder: 'Gözleg',\n searchEmptyResult: 'Hiç zat tapylmady',\n saveAsNewFilter: 'Täze filtr hökmünde ýazdyr',\n saveChanges: 'Üýtgetmeleri ýazdyr',\n saveAsNew: 'Täze hökmünde ýazdyr',\n change: 'Düzet',\n resetChanges: 'Täzeden düz',\n remove: 'Poz',\n name: 'At',\n error: 'Şeýle atly gözleg eýýäm bar',\n errorHint: 'Filtri ýazdyryp bolmady. Täzeden synanyň ýa-da administratora ýüz tutuň.',\n saveButton: 'Ýazdyr',\n cancelButton: 'Ýatyr'\n },\n add: {\n tooltip: 'Filtr goş'\n },\n pipe: {\n clearButtonTooltip: 'Arassala',\n removeButtonTooltip: 'Ýokla',\n applyButton: 'Ulan',\n emptySearchResult: 'Hiç zat tapylmady',\n selectAll: 'Ählisini saýla'\n },\n datePipe: {\n customPeriod: 'Laýyk döwür',\n customPeriodFrom: 'başy',\n customPeriodTo: 'soňy',\n customPeriodErrorHint: 'Döwür gutarýan wagtyndan soň başlap bilmeýär',\n backToPeriodSelection: 'Yzyna'\n }\n },\n clampedText: {\n openText: 'Giňelt',\n closeText: 'Ýap',\n showMoreText: 'Ýene {exceededItemCount} görkeziň',\n moreText: 'has köp'\n } satisfies KbqClampedTextLocaleConfig,\n navbarIc: {\n toggle: {\n pinButton: 'Rugsat giňeldildi',\n collapseButton: 'Apseykylmak'\n }\n },\n navbar: {\n toggle: {\n expand: 'Giňeltmek',\n collapse: 'Ýykmak'\n }\n },\n searchExpandable: {\n tooltip: 'Gözleg',\n placeholder: 'Gözleg'\n },\n appSwitcher: {\n searchPlaceholder: 'Gözleg',\n searchEmptyResult: 'Hiç zat tapylmady',\n sitesHeader: 'Beýleki saýtlar'\n },\n timeRange: {\n title: {\n for: 'soňky',\n placeholder: 'Möhleti saýla'\n },\n editor: {\n from: 'şundan',\n to: 'şuňa',\n apply: 'Ulanmak',\n cancel: 'Ýatyrmak',\n rangeLabel: 'şu döwürde',\n allTime: 'hemme döwür üçin',\n currentQuarter: 'şu çärýek üçin',\n currentYear: 'şu ýyl üçin'\n },\n durationTemplate: {\n title: {\n SEPARATOR: ' ',\n LAST_PART_SEPARATOR: '',\n YEARS: `{years, plural,\n one {# ýyl}\n other {# ýyl}\n }`,\n MONTHS: `{months, plural,\n one {aý}\n other {# aý}\n }`,\n WEEKS: `{weeks, plural,\n one {hepde}\n other {# hepde}\n }`,\n DAYS: `{days, plural,\n one {gün}\n other {# gün}\n }`,\n HOURS: `{hours, plural,\n one {sagat}\n other {# sagat}\n }`,\n MINUTES: `{minutes, plural,\n one {minut}\n other {# minut}\n }`,\n SECONDS: `{seconds, plural,\n one {sekunt}\n other {# sekunt}\n }`,\n YEARS_FRACTION: `{years} ýyl`,\n MONTHS_FRACTION: `{months} aý`\n },\n option: {\n SEPARATOR: ' ',\n LAST_PART_SEPARATOR: '',\n YEARS: `{years, plural,\n one {# ýyl}\n other {# ýyl}\n }`,\n MONTHS: `{months, plural,\n one {aý}\n other {# aý}\n }`,\n WEEKS: `{weeks, plural,\n one {hepde}\n other {# hepde}\n }`,\n DAYS: `{days, plural,\n one {gün}\n other {# gün}\n }`,\n HOURS: `{hours, plural,\n one {sagat}\n other {# sagat}\n }`,\n MINUTES: `{minutes, plural,\n one {minut}\n other {# minut}\n }`,\n SECONDS: `{seconds, plural,\n one {sekunt}\n other {# sekunt}\n }`,\n YEARS_FRACTION: `{years} ýyl`,\n MONTHS_FRACTION: `{months} aý`\n }\n }\n } satisfies KbqTimeRangeLocaleConfig,\n notificationCenter: {\n notifications: 'Duýduryşlar',\n remove: 'Aýyr',\n doNotDisturb: 'Alada etme',\n showPopUpNotifications: 'Açylýan bildirişleri görkeziň',\n noNotifications: 'Duýduryş ýok',\n failedToLoadNotifications: 'Duýduryşlary ýükläp bilmedi',\n repeat: 'Gaýtalama'\n }\n};\n","import { KbqSizeUnitsConfig } from '../formatters';\nimport { KbqNumberFormatOptions, KbqNumberInputLocaleConfig } from './types';\n\nexport const enUSFormattersData = {\n formatters: {\n number: {\n rounding: {\n separator: '',\n groupSeparator: '.',\n thousand: 'K',\n million: 'M',\n billion: 'B',\n trillion: 'T'\n }\n }\n },\n input: {\n number: {\n groupSeparator: [','],\n fractionSeparator: '.'\n } satisfies KbqNumberInputLocaleConfig\n },\n sizeUnits: {\n defaultUnitSystem: 'SI',\n defaultPrecision: 2,\n unitSystems: {\n SI: {\n abbreviations: ['B', 'KB', 'MB', 'GB', 'TB'],\n base: 10,\n power: 3\n },\n IEC: {\n abbreviations: ['B', 'KiB', 'MiB', 'GiB', 'TiB'],\n base: 2,\n power: 10\n }\n }\n } satisfies KbqSizeUnitsConfig\n};\n\nexport const esLAFormattersData = {\n formatters: {\n number: {\n rounding: {\n separator: '',\n groupSeparator: ',',\n thousand: 'K',\n million: 'M',\n billion: 'MRD',\n trillion: 'B'\n },\n decimal: {\n viewGroupSeparator: '\\u2009'\n } satisfies KbqNumberFormatOptions\n }\n },\n input: {\n number: {\n // nbsp is generated automatically and used by default in spec\n groupSeparator: [' ', ' ', '\\u2009'],\n fractionSeparator: ',',\n viewGroupSeparator: '\\u2009'\n } satisfies KbqNumberInputLocaleConfig\n },\n sizeUnits: {\n defaultUnitSystem: 'SI',\n defaultPrecision: 2,\n unitSystems: {\n SI: {\n abbreviations: ['B', 'KB', 'MB', 'GB', 'TB'],\n base: 10,\n power: 3\n },\n IEC: {\n abbreviations: ['B', 'KiB', 'MiB', 'GiB', 'TiB'],\n base: 2,\n power: 10\n }\n }\n }\n};\n\nexport const ptBRFormattersData = {\n formatters: {\n number: {\n rounding: {\n separator: ' ',\n groupSeparator: ',',\n thousand: 'mil',\n million: 'mi',\n billion: 'bi',\n trillion: 'tri'\n }\n }\n },\n input: {\n number: {\n groupSeparator: ['.'],\n fractionSeparator: ','\n } satisfies KbqNumberInputLocaleConfig\n },\n sizeUnits: {\n defaultUnitSystem: 'SI',\n defaultPrecision: 2,\n unitSystems: {\n SI: {\n abbreviations: ['B', 'KB', 'MB', 'GB', 'TB'],\n base: 10,\n power: 3\n },\n IEC: {\n abbreviations: ['B', 'KiB', 'MiB', 'GiB', 'TiB'],\n base: 2,\n power: 10\n }\n }\n }\n};\n\nexport const ruRUFormattersData = {\n formatters: {\n number: {\n rounding: {\n separator: ' ',\n groupSeparator: ',',\n thousand: 'К',\n million: 'М',\n billion: 'М',\n trillion: 'Т'\n },\n decimal: {\n viewGroupSeparator: '\\u2009'\n } satisfies KbqNumberFormatOptions\n }\n },\n input: {\n number: {\n // nbsp is generated automatically and used by default in spec\n groupSeparator: [' ', ' ', '\\u2009'],\n fractionSeparator: ',',\n startFormattingFrom: 4,\n viewGroupSeparator: '\\u2009'\n } satisfies KbqNumberInputLocaleConfig\n },\n sizeUnits: {\n defaultUnitSystem: 'SI',\n defaultPrecision: 2,\n unitSystems: {\n SI: {\n abbreviations: ['Б', 'КБ', 'МБ', 'ГБ', 'ТБ'],\n base: 10,\n power: 3\n },\n IEC: {\n abbreviations: ['Б', 'КиБ', 'МиБ', 'ГиБ', 'ТиБ'],\n base: 2,\n power: 10\n }\n }\n }\n};\n\nexport const tkTMFormattersData = {\n formatters: {\n number: {\n rounding: {\n separator: ' ',\n groupSeparator: '',\n thousand: 'M',\n million: 'Mn',\n billion: 'Mr',\n trillion: 'Tn'\n }\n }\n },\n input: {\n number: {\n groupSeparator: [' ', ' ', '\\u2009'],\n fractionSeparator: ',',\n viewGroupSeparator: '\\u2009'\n } satisfies KbqNumberInputLocaleConfig\n },\n sizeUnits: {\n defaultUnitSystem: 'SI',\n defaultPrecision: 2,\n unitSystems: {\n SI: {\n abbreviations: ['B', 'KB', 'MB', 'GB', 'TB'],\n base: 10,\n power: 3\n },\n IEC: {\n abbreviations: ['B', 'KiB', 'MiB', 'GiB', 'TiB'],\n base: 2,\n power: 10\n }\n }\n }\n};\n","import { DOCUMENT } from '@angular/common';\nimport { inject, Injectable, InjectionToken, Provider } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { enUSLocaleData } from './en-US';\nimport { esLALocaleData } from './es-LA';\nimport {\n enUSFormattersData,\n esLAFormattersData,\n ptBRFormattersData,\n ruRUFormattersData,\n tkTMFormattersData\n} from './formatters';\nimport { ptBRLocaleData } from './pt-BR';\nimport { ruRULocaleData } from './ru-RU';\nimport { tkTMLocaleData } from './tk-TM';\nimport { KbqNumberInputLocaleConfig } from './types';\n\nexport const KBQ_LOCALE_ID = new InjectionToken<string>('KbqLocaleId');\n\nexport const KBQ_DEFAULT_LOCALE_ID = 'ru-RU';\n\nexport function KBQ_DEFAULT_LOCALE_DATA_FACTORY() {\n return {\n items: [\n { id: 'en-US', name: 'English' },\n { id: 'es-LA', name: 'Español' },\n { id: 'pt-BR', name: 'Português' },\n { id: 'ru-RU', name: 'Русский' },\n { id: 'tk-TM', name: 'Türkmen' }\n ],\n 'en-US': { ...enUSLocaleData, ...enUSFormattersData },\n 'es-LA': { ...esLALocaleData, ...esLAFormattersData },\n 'pt-BR': { ...ptBRLocaleData, ...ptBRFormattersData },\n 'ru-RU': { ...ruRULocaleData, ...ruRUFormattersData },\n 'tk-TM': { ...tkTMLocaleData, ...tkTMFormattersData }\n };\n}\nexport const KBQ_LOCALE_DATA = new InjectionToken<any>('KBQ_LOCALE_DATA', {\n providedIn: 'root',\n factory: KBQ_DEFAULT_LOCALE_DATA_FACTORY\n});\n\nexport const KBQ_LOCALE_SERVICE = new InjectionToken<KbqLocaleService>('KBQ_LOCALE_SERVICE');\n\n/**\n * Attribute name to be used to set the locale in the html element.\n *\n * @default 'lang'\n *\n * @docs-private\n */\nexport const KBQ_LOCALE_SERVICE_LANG_ATTR_NAME = new InjectionToken<string>('KBQ_LOCALE_SERVICE_LANG_ATTR_NAME', {\n factory: () => 'lang'\n});\n\n/**\n * Utility provider to configure the attribute name to be used to set the locale in the html element.\n *\n * @see KBQ_LOCALE_SERVICE_LANG_ATTR_NAME\n *\n * @docs-private\n */\nexport const kbqLocaleServiceLangAttrNameProvider = (attrName: string): Provider => ({\n provide: KBQ_LOCALE_SERVICE_LANG_ATTR_NAME,\n useValue: attrName\n});\n\n@Injectable({ providedIn: 'root' })\nexport class KbqLocaleService {\n readonly changes: BehaviorSubject<string>;\n readonly locales: any = {};\n\n private readonly document = inject(DOCUMENT);\n\n id: string;\n current;\n\n private readonly langAttrName = inject(KBQ_LOCALE_SERVICE_LANG_ATTR_NAME);\n\n constructor() {\n const id = inject(KBQ_LOCALE_ID, { optional: true });\n const localeData = inject(KBQ_LOCALE_DATA, { optional: true });\n\n this.locales = localeData;\n\n this.id = id || KBQ_DEFAULT_LOCALE_ID;\n this.current = this.locales[this.id];\n\n this.changes = new BehaviorSubject(this.id);\n }\n\n setLocale(id: string) {\n this.id = id;\n this.current = this.locales[this.id];\n\n this.document.documentElement.setAttribute(this.langAttrName, this.id);\n\n this.changes.next(this.id);\n }\n\n addLocale(id: string, localeData) {\n this.id = id;\n this.changes.next(this.id);\n\n this.locales[this.id] = localeData;\n }\n\n getParams(componentName: string) {\n return this.current[componentName];\n }\n}\n\n// todo code below need refactor or delete in DS-3603\n/** @docs-private */\nexport const KBQ_DEFAULT_PRECISION_SEPARATOR = '.';\n\n/** @docs-private */\nexport function numberByParts(\n value: string,\n customConfig: Pick<KbqNumberInputLocaleConfig, 'fractionSeparator' | 'groupSeparator'>\n): { integer: string; fraction: string } {\n const { groupSeparator, fractionSeparator } = customConfig;\n const result = { integer: '', fraction: '' };\n let parsedValue = value;\n\n // normalize only when '.', ',' are used as fractionSeparators\n if (groupSeparator.includes(' ') && fractionSeparator === ',') {\n parsedValue = parsedValue.replace(/\\./g, ',');\n }\n\n const isNegative = parsedValue.startsWith('-');\n const numberByParts = parsedValue.split(fractionSeparator).filter(Boolean);\n\n if (numberByParts.length > 1) {\n result.fraction = numberByParts.pop() || '';\n result.integer = numberByParts\n .join()\n .replace(groupSeparator.join(''), '')\n .replace(fractionSeparator, '')\n .replace(/\\D/g, '');\n } else {\n result.integer = numberByParts.join().replace(groupSeparator[0], '').replace(/\\D/g, '');\n }\n\n if (isNegative) result.integer = `-${result.integer}`;\n\n return result;\n}\n\n/**\n * Function that returns a string representation of a number without localized separators\n */\nexport function normalizeNumber(\n value: string | null | undefined,\n customConfig: Pick<KbqNumberInputLocaleConfig, 'fractionSeparator' | 'groupSeparator'>\n): string {\n if (value === null || value === undefined) return '';\n\n const { groupSeparator, fractionSeparator } = customConfig;\n const groupSeparatorRegexp = new RegExp(`[${groupSeparator.join('')}]`, 'g');\n const fractionSeparatorRegexp = new RegExp(`\\\\${fractionSeparator}`, 'g');\n\n return value\n .toString()\n .replace(groupSeparatorRegexp, '')\n .replace(fractionSeparatorRegexp, KBQ_DEFAULT_PRECISION_SEPARATOR);\n}\n\n/**\n * Function that parse string and return a number. The string can be in any locale.\n */\nexport function checkAndNormalizeLocalizedNumber(num: string | null | undefined, locale?: string): number | null {\n if (num === null || num === undefined) return null;\n\n const locales = KBQ_DEFAULT_LOCALE_DATA_FACTORY();\n\n if (locale && locales[locale]) {\n const config = locales[locale].input.number;\n let normalized: number;\n\n if (!/\\d/g.test(num)) return +num;\n\n const { integer, fraction } = numberByParts(num, config);\n\n if (fraction) {\n normalized = +[integer, fraction].join('.');\n } else {\n normalized = +normalizeNumber(integer, config);\n }\n\n if (!Number.isNaN(normalized)) {\n return normalized;\n }\n }\n\n /* if some locale input config satisfies pasted number, try to normalise with selected locale config */\n let numberOutput: number | null = null;\n\n for (const config of locales.items.map(({ id }) => locales[id].input.number)) {\n const normalized = +normalizeNumber(num, config);\n\n if (!Number.isNaN(normalized)) {\n numberOutput = normalized;\n break;\n }\n }\n\n return numberOutput;\n}\n\n// todo code above need refactor or delete in DS-3603\n","import { NgModule } from '@angular/core';\nimport { KBQ_LOCALE_SERVICE, KbqLocaleService } from './locale-service';\n\n@NgModule({\n providers: [\n { provide: KBQ_LOCALE_SERVICE, useClass: KbqLocaleService }\n ]\n})\nexport class KbqLocaleServiceModule {}\n","import { inject, Injectable } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DateAdapter } from '@koobiq/date-adapter';\nimport { DateFormatter as BaseDateFormatter } from '@koobiq/date-formatter';\nimport { KBQ_DATE_LOCALE, DateAdapter as KbqDateAdapter } from '../../datetime';\nimport { KBQ_LOCALE_SERVICE, KbqLocaleService } from '../../locales';\n\n@Injectable()\nexport class DateFormatter<D> extends BaseDateFormatter<D> {\n override readonly adapter: DateAdapter<D>;\n\n protected localeService = inject<KbqLocaleService>(KBQ_LOCALE_SERVICE, { optional: true });\n constructor() {\n const adapter = inject<DateAdapter<D>>(KbqDateAdapter);\n const locale = inject(KBQ_DATE_LOCALE);\n\n super(adapter, locale);\n this.adapter = adapter;\n\n this.localeService?.changes.pipe(takeUntilDestroyed()).subscribe((locale) => this.setLocale(locale));\n }\n}\n","import { ChangeDetectorRef, inject, Pipe, PipeTransform } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DateTimeOptions } from '@koobiq/date-formatter';\nimport { DateAdapter } from '../../datetime';\nimport { KBQ_LOCALE_SERVICE } from '../../locales';\nimport { DateFormatter } from './formatter';\n\nexport class BaseFormatterPipe<D> {\n protected readonly adapter: DateAdapter<D> = inject(DateAdapter<D>);\n protected readonly formatter: DateFormatter<D> = inject(DateFormatter<D>);\n}\n\n/**\n * Base class for impure date-formatter pipes that recompute their result\n * whenever the active locale changes via `KbqLocaleService`.\n *\n * The base class owns:\n * - a subscription to `KbqLocaleService.changes` that invalidates the cache and\n * marks the host for check (the same approach the built-in `AsyncPipe` uses);\n * - caching by `(value, args, localeId)`, so the impure `transform()` only does\n * real work when an input or the active locale actually changed.\n *\n * Subclasses implement `format()`, which receives the raw pipe input(s) — a\n * single value for absolute/relative pipes, or a `[from, to]` tuple for range\n * pipes — deserializes via `this.adapter` and calls the matching\n * `DateFormatter` method.\n *\n * @docs-private\n */\nexport abstract class BaseLocaleAwareFormatterPipe<\n D,\n Value = D | string,\n Args extends unknown[] = unknown[]\n> extends BaseFormatterPipe<D> {\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n private readonly localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });\n\n private cachedValue: Value | null = null;\n private cachedArgs: Args = [] as unknown as Args;\n private cachedLocaleId: string | null = null;\n private cachedResult = '';\n private hasCache = false;\n\n constructor() {\n super();\n\n this.localeService?.changes.pipe(takeUntilDestroyed()).subscribe(() => {\n this.hasCache = false;\n this.changeDetectorRef.markForCheck();\n });\n }\n\n transform(value: Value, ...args: Args): string {\n const currentLocaleId = this.localeService?.id ?? null;\n\n if (\n this.hasCache &&\n value === this.cachedValue &&\n currentLocaleId === this.cachedLocaleId &&\n this.argsEqual(args)\n ) {\n return this.cachedResult;\n }\n\n this.cachedResult = this.format(value, ...args);\n this.cachedValue = value;\n this.cachedArgs = args;\n this.cachedLocaleId = currentLocaleId;\n this.hasCache = true;\n\n return this.cachedResult;\n }\n\n protected abstract format(value: Value, ...args: Args): string;\n\n private argsEqual(args: Args): boolean {\n if (args.length !== this.cachedArgs.length) return false;\n\n for (let i = 0; i < args.length; i++) {\n if (args[i] !== this.cachedArgs[i]) return false;\n }\n\n return true;\n }\n}\n\n@Pipe({\n name: 'absoluteLongDate'\n})\nexport class AbsoluteDateFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform(value: D | string, currYear?: boolean): string {\n const date = this.adapter.deserialize(value);\n\n return date ? this.formatter.absoluteLongDate(date, currYear) : '';\n }\n}\n\n@Pipe({\n name: 'absoluteLongDateImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class AbsoluteDateFormatterImpurePipe<D> extends AbsoluteDateFormatterPipe<D> {\n transform(value: string | D, currYear?: boolean): string {\n return super.transform(value, currYear);\n }\n}\n\n@Pipe({\n name: 'absoluteLongDateTime'\n})\nexport class AbsoluteDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform(value: D | string, options?: DateTimeOptions): string {\n const date = this.adapter.deserialize(value);\n\n return date ? this.formatter.absoluteLongDateTime(date, options) : '';\n }\n}\n\n@Pipe({\n name: 'absoluteLongDateTimeImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class AbsoluteDateTimeFormatterImpurePipe<D> extends AbsoluteDateTimeFormatterPipe<D> {\n transform(value: string | D, options?: DateTimeOptions): string {\n return super.transform(value, options);\n }\n}\n\n@Pipe({\n name: 'absoluteShortDate'\n})\nexport class AbsoluteDateShortFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform(value: D | string, currYear?: boolean): string {\n const date = this.adapter.deserialize(value);\n\n return date ? this.formatter.absoluteShortDate(date, currYear) : '';\n }\n}\n\n@Pipe({\n name: 'absoluteShortDateImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class AbsoluteDateShortFormatterImpurePipe<D> extends AbsoluteDateShortFormatterPipe<D> {\n transform(value: string | D, currYear?: boolean): string {\n return super.transform(value, currYear);\n }\n}\n\n@Pipe({\n name: 'absoluteShortDateTime'\n})\nexport class AbsoluteShortDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform(value: D | string, options?: DateTimeOptions): string {\n const date = this.adapter.deserialize(value);\n\n return date ? this.formatter.absoluteShortDateTime(date, options) : '';\n }\n}\n\n@Pipe({\n name: 'absoluteShortDateTimeImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class AbsoluteShortDateTimeFormatterImpurePipe<D> extends AbsoluteShortDateTimeFormatterPipe<D> {\n transform(value: string | D, options?: DateTimeOptions): string {\n return super.transform(value, options);\n }\n}\n\n@Pipe({\n name: 'relativeLongDate'\n})\nexport class RelativeDateFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform(value: D | string): string {\n const date = this.adapter.deserialize(value);\n\n return date ? this.formatter.relativeLongDate(date) : '';\n }\n}\n\n@Pipe({\n name: 'relativeLongDateImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RelativeDateFormatterImpurePipe<D> extends RelativeDateFormatterPipe<D> {\n transform(value: string | D): string {\n return super.transform(value);\n }\n}\n\n@Pipe({\n name: 'relativeLongDateTime'\n})\nexport class RelativeDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform(value: D | string, options?: DateTimeOptions): string {\n const date = this.adapter.deserialize(value);\n\n return date ? this.formatter.relativeLongDateTime(date, options) : '';\n }\n}\n\n@Pipe({\n name: 'relativeLongDateTimeImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RelativeDateTimeFormatterImpurePipe<D> extends RelativeDateTimeFormatterPipe<D> {\n transform(value: string | D, options?: DateTimeOptions): string {\n return super.transform(value, options);\n }\n}\n\n@Pipe({\n name: 'relativeShortDate'\n})\nexport class RelativeShortDateFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform(value: D | string): string {\n const date = this.adapter.deserialize(value);\n\n return date ? this.formatter.relativeShortDate(date) : '';\n }\n}\n\n@Pipe({\n name: 'relativeShortDateImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RelativeShortDateFormatterImpurePipe<D> extends RelativeShortDateFormatterPipe<D> {\n transform(value: string | D): string {\n return super.transform(value);\n }\n}\n\n@Pipe({\n name: 'relativeShortDateTime'\n})\nexport class RelativeShortDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform(value: D | string, options?: DateTimeOptions): string {\n const date = this.adapter.deserialize(value);\n\n return date ? this.formatter.relativeShortDateTime(date, options) : '';\n }\n}\n\n@Pipe({\n name: 'relativeShortDateTimeImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RelativeShortDateTimeFormatterImpurePipe<D> extends RelativeShortDateTimeFormatterPipe<D> {\n transform(value: string | D, options?: DateTimeOptions): string {\n return super.transform(value, options);\n }\n}\n\n@Pipe({\n name: 'rangeLongDate'\n})\nexport class RangeDateFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform([value1, value2]: D[] | string[]): string {\n const date1 = this.adapter.deserialize(value1);\n const date2 = this.adapter.deserialize(value2);\n\n return this.formatter.rangeLongDate(date1 as D, date2 as D);\n }\n}\n\n@Pipe({\n name: 'rangeLongDateImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RangeDateFormatterImpurePipe<D> extends RangeDateFormatterPipe<D> {\n transform([value1, value2]: D[] | string[]): string {\n return super.transform([value1, value2] as D[] | string[]);\n }\n}\n\n@Pipe({\n name: 'rangeShortDate'\n})\nexport class RangeShortDateFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform([value1, value2]: D[] | string[]): string {\n const date1 = this.adapter.deserialize(value1);\n const date2 = this.adapter.deserialize(value2);\n\n return this.formatter.rangeShortDate(date1 as D, date2 as D);\n }\n}\n\n@Pipe({\n name: 'rangeShortDateImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RangeShortDateFormatterImpurePipe<D> extends RangeShortDateFormatterPipe<D> {\n transform([value1, value2]: D[] | string[]): string {\n return super.transform([value1, value2] as D[] | string[]);\n }\n}\n\n@Pipe({\n name: 'rangeLongDateTime'\n})\nexport class RangeDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform([value1, value2]: D[] | string[], options?: DateTimeOptions): string {\n const date1 = this.adapter.deserialize(value1);\n const date2 = this.adapter.deserialize(value2);\n\n return this.formatter.rangeLongDateTime(date1 as D, date2 as D, options);\n }\n}\n\n@Pipe({\n name: 'rangeLongDateTimeImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RangeDateTimeFormatterImpurePipe<D> extends RangeDateTimeFormatterPipe<D> {\n transform([value1, value2]: D[] | string[], options?: DateTimeOptions): string {\n return super.transform([value1, value2] as D[] | string[], options);\n }\n}\n\n@Pipe({\n name: 'rangeMiddleDateTime'\n})\nexport class RangeMiddleDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform([value1, value2]: D[] | string[], options?: DateTimeOptions): string {\n const date1 = this.adapter.deserialize(value1);\n const date2 = this.adapter.deserialize(value2);\n\n return this.formatter.rangeMiddleDateTime(date1 as D, date2 as D, options);\n }\n}\n\n@Pipe({\n name: 'rangeMiddleDateTimeImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RangeMiddleDateTimeFormatterImpurePipe<D> extends RangeMiddleDateTimeFormatterPipe<D> {\n transform([value1, value2]: D[] | string[], options?: DateTimeOptions): string {\n return super.transform([value1, value2] as D[] | string[], options);\n }\n}\n\n@Pipe({\n name: 'rangeShortDateTime'\n})\nexport class RangeShortDateTimeFormatterPipe<D> extends BaseFormatterPipe<D> implements PipeTransform {\n transform([value1, value2]: D[] | string[], options?: DateTimeOptions): string {\n const date1 = this.adapter.deserialize(value1);\n const date2 = this.adapter.deserialize(value2);\n\n return this.formatter.rangeShortDateTime(date1 as D, date2 as D, options);\n }\n}\n\n@Pipe({\n name: 'rangeShortDateTimeImpurePipe',\n pure: false\n})\n// eslint-disable-next-line @angular-eslint/use-pipe-transform-interface\nexport class RangeShortDateTimeFormatterImpurePipe<D> extends RangeShortDateTimeFormatterPipe<D> {\n transform([value1, value2]: D[] | string[], options?: DateTimeOptions): string {\n return super.transform([value1, value2] as D[] | string[], options);\n }\n}\n\n// Impure pipes that recompute on `KbqLocaleService` locale changes (see `BaseLocaleAwareFormatterPipe`).\n// Prefer these `kbq`-prefixed pipes when the locale can change at runtime; the pure pipes above are\n// kept for static usages and backward compatibility.\n\n@Pipe({\n name: 'kbqAbsoluteLongDate',\n pure: false\n})\nexport class KbqAbsoluteLongDatePipe<D>\n extends BaseLocaleAwareFormatterPipe<D, D | string, [currYear?: boolean]>\n implements PipeTransform\n{\n override transform(value: D | string, currYear?: boolean): string {\n return super.transform(value, currYear);\n }\n\n protected format(value: D | string, currYear?: boolean): string {\n const date = this.adapter.deserialize(value);\n\n return date ? this.formatter.absoluteLongDate(date, currYear) : '';\n }\n}\n\n@Pipe({\n name: 'kbqAbsoluteShortDate',\n pure: false\n})\nexport class KbqAbsoluteShortDatePipe<D>\n extends BaseLocaleAwareFormatterPipe<D, D | string, [currYear?: boolean]>\n implements PipeTransform\n{\n override transform(value: D | string, currYear?: boolean): string {\n return super.transform(value, currYear);\n }\n\n protected format(value: D | string, currYear?: boolean): string {\n const date = this.adapter.deserialize(value);\n\n return date ? this.formatter.absoluteShortDate(date, currYear) : '';\n }\n}\n\n@Pipe({\n name: 'kbqAbsoluteLongDateTime',\n pure: false\n})\nexport class KbqAbsoluteLongDateTimePipe<D>\n extends BaseLocaleAwareFormatterPipe<D, D | string, [options?: DateTimeOptions]>\n implements PipeTransform\n{\n override transform(value: D | string, options?: DateTimeOptions): string {\n return super.transform(value, options);\n }\n\n protected format(value: D | string, options?: DateTimeOptions): string {\n const date = this.adapter.deserialize(value);\n\n return date ? this.formatter.absoluteLongDateTime(date, options) : '';\n }\n}\n\n@Pipe({\n name: 'kbqAbsoluteShortDateTime',\n pure: false\n})\nexport class KbqAbsoluteShortDateTimePipe<D>\n extends BaseLocaleAwareFormatterPipe<D, D | string, [options?: DateTimeOptions]>\n implements PipeTransform\n{\n override transform(value: D | string, options?: DateTimeOptions): string {\n return super.transform(value, options);\n }\n\n protected format(value: D | string, options?: DateTimeOptions): string {\n const date = this.adapter.deserialize(value);\n\n return date ? this.formatter.absoluteShortDateTime(date, options) : '';\n }\n}\n\n@Pipe({\n name: 'kbqRelativeLongDate',\n pure: false\n})\nexport class KbqRelativeLongDatePipe<D>\n extends BaseLocaleAwareFormatterPipe<D, D | string, []>\n implements PipeTransform\n{\n override transform(value: D | string): string {\n return super.transform(value);\n }\n\n protected format(value: D | string): string {\n const date = this.adapter.deserialize(value);\n\n return date ? this.formatter.relativeLongDate(date) : '';\n }\n}\n\n@Pipe({\n name: 'kbqRelativeShortDate',\n pure: false\n})\nexport class KbqRelativeShortDatePipe<D>\n extends BaseLocaleAwareFormatterPipe<D, D | string, []>\n implements PipeTransform\n{\n override transform(value: D | string): string {\n return super.transform(value);\n }\n\n protected format(value: D | string): string {\n const date = this.adapter.deserialize(value);\n\n return date ? this.formatter.relativeShortDate(date) : '';\n }\n}\n\n@Pipe({\n name: 'kbqRelativeLongDateTime',\n pure: false\n})\nexport class KbqRelativeLongDateTimePipe<D>\n extends BaseLocaleAwareFormatterPipe<D, D | string, [options?: DateTimeOptions]>\n implements PipeTransform\n{\n override transform(value: D | string, options?: DateTimeOptions): string {\n return super.transform(value, options);\n }\n\n protected format(value: D | string, options?: DateTimeOptions): string {\n const date = this.adapter.deserialize(value);\n\n return date ? this.formatter.relativeLongDateTime(date, options) : '';\n }\n}\n\n@Pipe({\n name: 'kbqRelativeShortDateTime',\n pure: false\n})\nexport class KbqRelativeShortDateTimePipe<D>\n extends BaseLocaleAwareFormatterPipe<D, D | string, [options?: DateTimeOptions]>\n implements PipeTransform\n{\n override transform(value: D | string, options?: DateTimeOptions): string {\n return super.transform(value, options);\n }\n\n protected format(value: D | string, options?: DateTimeOptions): string {\n const date = this.adapter.deserialize(value);\n\n return date ? this.formatter.relativeShortDateTime(date, options) : '';\n }\n}\n\n@Pipe({\n name: 'kbqRangeLongDate',\n pure: false\n})\nexport class KbqRangeLongDatePipe<D>\n extends BaseLocaleAwareFormatterPipe<D, D[] | string[], []>\n implements PipeTransform\n{\n override transform(value: D[] | string[]): string {\n return super.transform(value);\n }\n\n protected format([value1, value2]: D[] | string[]): string {\n const date1 = this.adapter.deserialize(value1);\n const date2 = this.adapter.deserialize(value2);\n\n return this.formatter.rangeLongDate(date1 as D, date2 as D);\n }\n}\n\n@Pipe({\n name: 'kbqRangeShortDate',\n pure: false\n})\nexport class KbqRangeShortDatePipe<D>\n extends BaseLocaleAwareFormatterPipe<D, D[] | string[], []>\n implements PipeTransform\n{\n override transform(value: D[] | string[]): string {\n return super.transform(value);\n }\n\n protected format([value1, value2]: D[] | string[]): string {\n const date1 = this.adapter.deserialize(value1);\n const date2 = this.adapter.deserialize(value2);\n\n return this.formatter.rangeShortDate(date1 as D, date2 as D);\n }\n}\n\n@Pipe({\n name: 'kbqRangeLongDateTime',\n pure: false\n})\nexport class KbqRangeLongDateTimePipe<D>\n extends BaseLocaleAwareFormatterPipe<D, D[] | string[], [options?: DateTimeOptions]>\n implements PipeTransform\n{\n override transform(value: D[] | string[], options?: DateTimeOptions): string {\n return super.transform(value, options);\n }\n\n protected format([value1, value2]: D[] | string[], options?: DateTimeOptions): string {\n const date1 = this.adapter.deserialize(value1);\n const date2 = this.adapter.deserialize(value2);\n\n return this.formatter.rangeLongDateTime(date1 as D, date2 as D, options);\n }\n}\n\n@Pipe({\n name: 'kbqRangeMiddleDateTime',\n pure: false\n})\nexport class KbqRangeMiddleDateTimePipe<D>\n extends BaseLocaleAwareFormatterPipe<D, D[] | string[], [options?: DateTimeOptions]>\n implements PipeTransform\n{\n override transform(value: D[] | string[], options?: DateTimeOptions): string {\n return super.transform(value, options);\n }\n\n protected format([value1, value2]: D[] | string[], options?: DateTimeOptions): string {\n const date1 = this.adapter.deserialize(value1);\n const date2 = this.adapter.deserialize(value2);\n\n return this.formatter.rangeMiddleDateTime(date1 as D, date2 as D, options);\n }\n}\n\n@Pipe({\n name: 'kbqRangeShortDateTime',\n pure: false\n})\nexport class KbqRangeShortDateTimePipe<D>\n extends BaseLocaleAwareFormatterPipe<D, D[] | string[], [options?: DateTimeOptions]>\n implements PipeTransform\n{\n override transform(value: D[] | string[], options?: DateTimeOptions): string {\n return super.transform(value, options);\n }\n\n protected format([value1, value2]: D[] | string[], options?: DateTimeOptions): string {\n const date1 = this.adapter.deserialize(value1);\n const date2 = this.adapter.deserialize(value2);\n\n return this.formatter.rangeShortDateTime(date1 as D, date2 as D, options);\n }\n}\n","import { InjectionToken, Provider } from '@angular/core';\nimport { enUSFormattersData } from '../../locales';\n\n/**\n * Available unit systems for file size formatting.\n * - SI (Metric): 1 KB = 1000 bytes\n * - IEC (Binary): 1 KiB = 1024 bytes\n */\nexport enum KbqMeasurementSystem {\n SI = 'SI',\n IEC = 'IEC'\n}\n\n/** Unit systems as union type */\nexport type KbqMeasurementSystemType = keyof typeof KbqMeasurementSystem;\n\nexport interface KbqUnitSystem {\n abbreviations: string[];\n base: number;\n power: number;\n}\n\n/**\n * Configuration for file size formatting options.\n * Defines the default unit system, precision, and available unit systems.\n */\nexport interface KbqSizeUnitsConfig {\n /**\n * Default unit system to use (e.g., 'SI' or 'IEC').\n * @see KbqMeasurementSystem\n */\n defaultUnitSystem: KbqMeasurementSystemType;\n /**\n * Default number of decimal places to display in formatted output.\n * @example\n * `2` → \"1.23 KB\"\n */\n defaultPrecision: number;\n /** @see KbqMeasurementSystem */\n unitSystems: {\n [KbqMeasurementSystem.SI]: KbqUnitSystem;\n [KbqMeasurementSystem.IEC]: KbqUnitSystem;\n };\n}\n\nexport const KBQ_SIZE_UNITS_DEFAULT_CONFIG: KbqSizeUnitsConfig = enUSFormattersData.sizeUnits;\n\n/**\n * Configuration for converting sizes in different unit systems.\n */\nexport const KBQ_SIZE_UNITS_CONFIG = new InjectionToken<KbqSizeUnitsConfig>('KbqSizeUnitsConfig');\n\n/** Utility provider for `KBQ_SIZE_UNITS_CONFIG`. */\nexport const kbqFilesizeFormatterConfigurationProvider = (configuration: Partial<KbqSizeUnitsConfig>): Provider => ({\n provide: KBQ_SIZE_UNITS_CONFIG,\n useValue: { ...KBQ_SIZE_UNITS_DEFAULT_CONFIG, ...configuration }\n});\n","import { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { Injectable, InjectionToken, Pipe, PipeTransform, inject } from '@angular/core';\nimport {\n KBQ_DEFAULT_LOCALE_ID,\n KBQ_LOCALE_ID,\n KBQ_LOCALE_SERVICE,\n KbqLocaleService,\n KbqNumberFormatOptions\n} from '../../locales';\n\nexport const KBQ_NUMBER_FORMATTER_OPTIONS = new InjectionToken<ParsedDigitsInfo>('KbqNumberFormatterOptions');\n\nexport const KBQ_NUMBER_FORMATTER_DEFAULT_OPTIONS: ParsedDigitsInfo = {\n useGrouping: true,\n minimumIntegerDigits: 1,\n minimumFractionDigits: 0,\n maximumFractionDigits: 3\n};\n\n/** Formats a number value according to locale and formatting options */\nexport function formatNumberWithLocale(\n value: unknown,\n formatter: Intl.NumberFormat,\n options?: KbqNumberFormatOptions\n): string {\n const num = strToNumber(value);\n\n if (!options?.viewGroupSeparator) return formatter.format(num);\n\n const numberFormatParts = formatter.formatToParts(num);\n\n for (const numberFormatPart of numberFormatParts) {\n if (numberFormatPart.type === 'group') {\n numberFormatPart.value = options.viewGroupSeparator;\n }\n }\n\n return numberFormatParts.map(({ value }) => value).join('');\n}\n\n/**\n * Special contract between `KbqDecimalPipe` and `KbqTableNumberPipe`,\n * so they can be interchangeable in the cases of usage\n */\nexport interface KbqNumericPipe {\n transform(value: unknown, digitsInfo?: string, locale?: string): string | null;\n}\n\nfunction isEmpty(value: any): boolean {\n return value == null || value === '' || value !== value;\n}\n\nfunction strToNumber(value: unknown): number {\n const coerced = coerceNumberProperty(value, null);\n\n if (coerced === null) {\n throw new Error(`${value} is not a number`);\n }\n\n return coerced;\n}\n\nexport const NUMBER_FORMAT_REGEXP = /^(\\d+)?\\.((\\d+)(-(\\d+))?(-(true|false))?)?$/;\n\nconst minIntGroupPosition = 1;\nconst minFractionGroupPosition = 3;\nconst maxFractionGroupPosition = 5;\nconst useGroupingPosition = 7;\n\ninterface RoundDecimalOptions {\n separator: string;\n groupSeparator: string;\n thousands?: string;\n tenThousand?: string;\n million?: string;\n oneHundredMillions?: string;\n billion?: string;\n trillion: string;\n rtl?: boolean;\n}\n\nconst ROUNDING_UNITS = {\n thousand: 1e3,\n tenThousand: 10 * 1e3,\n million: 1e6,\n oneHundredMillions: 100 * 1e6,\n billion: 1e9,\n trillion: 1e12\n};\n\nconst intervalsConfig = {\n supportedLanguages: ['ru-RU', 'en-US', 'es-LA', 'pt-BR'],\n intervals: [\n { startRange: 1, endRange: ROUNDING_UNITS.thousand },\n { startRange: ROUNDING_UNITS.thousand, endRange: ROUNDING_UNITS.tenThousand, precision: 1 },\n { startRange: ROUNDING_UNITS.tenThousand, endRange: ROUNDING_UNITS.million },\n { startRange: ROUNDING_UNITS.million, endRange: ROUNDING_UNITS.million * 10, precision: 1 },\n { startRange: ROUNDING_UNITS.million * 10, endRange: ROUNDING_UNITS.billion }\n ]\n};\n\nclass ParsedDigitsInfo {\n useGrouping: boolean;\n minimumIntegerDigits: number;\n minimumFractionDigits: number;\n maximumFractionDigits: number;\n}\n\nconst defaultValueForGroupingInRULocale: number = 10000;\n\nfunction parseDigitsInfo(digitsInfo: string): ParsedDigitsInfo {\n const parts = digitsInfo.match(NUMBER_FORMAT_REGEXP);\n\n if (parts === null) {\n throw new Error(`${digitsInfo} is not a valid digit info`);\n }\n\n const minIntPart = parts[minIntGroupPosition];\n const minFractionPart = parts[minFractionGroupPosition];\n const maxFractionPart = parts[maxFractionGroupPosition];\n const useGroupingPart = parts[useGroupingPosition];\n\n const result = new ParsedDigitsInfo();\n\n if (minIntPart != null) {\n result.minimumIntegerDigits = parseInt(minIntPart);\n }\n\n if (minFractionPart != null) {\n result.minimumFractionDigits = parseInt(minFractionPart);\n }\n\n if (maxFractionPart != null) {\n result.maximumFractionDigits = parseInt(maxFractionPart);\n } else if (minFractionPart != null && result.minimumFractionDigits > result.maximumFractionDigits) {\n result.maximumFractionDigits = result.minimumFractionDigits;\n }\n\n if (useGroupingPart != null) {\n result.useGrouping = useGroupingPart === 'true';\n }\n\n return result;\n}\n\n@Injectable({ providedIn: 'root' })\n@Pipe({\n name: 'kbqNumber',\n pure: false\n})\nexport class KbqDecimalPipe implements KbqNumericPipe, PipeTransform {\n private id = inject(KBQ_LOCALE_ID, { optional: true });\n private localeService = inject<KbqLocaleService>(KBQ_LOCALE_SERVICE, { optional: true });\n private readonly options = inject<ParsedDigitsInfo>(KBQ_NUMBER_FORMATTER_OPTIONS, { optional: true })!;\n constructor() {\n this.options = this.options || KBQ_NUMBER_FORMATTER_DEFAULT_OPTIONS;\n\n this.localeService?.changes.subscribe((newId: string) => (this.id = newId));\n }\n\n /**\n * @param value The number to be formatted.\n * @param digitsInfo Decimal representation options, specified by a string\n * in the following format:<br>\n * <code>{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}</code>.\n * - `minIntegerDigits`: The minimum number of integer digits before the decimal point.\n * Default is `1`.\n * - `minFractionDigits`: The minimum number of digits after the decimal point.\n * Default is `0`.\n * - `maxFractionDigits`: The maximum number of digits after the decimal point.\n * Default is `3`.\n * @param locale A locale code for the locale format rules to use.\n * When not supplied, uses the value of `KBQ_LOCALE_ID`, which is `ru` by default.\n */\n transform(value: any, digitsInfo?: string, locale?: string): string | null {\n if (isEmpty(value)) {\n return null;\n }\n\n const currentLocale = locale || this.id || KBQ_DEFAULT_LOCALE_ID;\n\n let parsedDigitsInfo: ParsedDigitsInfo | undefined;\n\n if (digitsInfo) {\n parsedDigitsInfo = parseDigitsInfo(digitsInfo);\n }\n\n const options: Intl.NumberFormatOptions = {\n ...this.options,\n ...parsedDigitsInfo\n };\n\n if (this.isSpecialFormatForRULocale(currentLocale, value, parsedDigitsInfo?.useGrouping)) {\n options.useGrouping = false;\n }\n\n try {\n const formatter = new Intl.NumberFormat(currentLocale, options);\n\n return formatNumberWithLocale(\n value,\n formatter,\n this.localeService?.locales[currentLocale]?.formatters.number.decimal\n );\n } catch (error: any) {\n throw Error(`InvalidPipeArgument: KbqDecimalPipe for pipe '${JSON.stringify(error.message)}'`);\n }\n }\n\n isSpecialFormatForRULocale(locale: string, value: number, grouping?: boolean): boolean {\n return (\n ['ru', 'ru-RU'].includes(locale) &&\n grouping === undefined &&\n Math.abs(value) < defaultValueForGroupingInRULocale\n );\n }\n}\n\n@Injectable({ providedIn: 'root' })\n@Pipe({\n name: 'kbqTableNumber',\n pure: false\n})\nexport class KbqTableNumberPipe implements KbqNumericPipe, PipeTransform {\n private id = inject(KBQ_LOCALE_ID, { optional: true });\n private localeService = inject<KbqLocaleService>(KBQ_LOCALE_SERVICE, { optional: true });\n private readonly options = inject<ParsedDigitsInfo>(KBQ_NUMBER_FORMATTER_OPTIONS, { optional: true })!;\n constructor() {\n this.options = this.options || KBQ_NUMBER_FORMATTER_DEFAULT_OPTIONS;\n\n this.localeService?.changes.subscribe((newId: string) => (this.id = newId));\n }\n\n /**\n * @param value The number to be formatted.\n * @param digitsInfo Decimal representation options, specified by a string\n * in the following format:<br>\n * <code>{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}</code>.\n * - `minIntegerDigits`: The minimum number of integer digits before the decimal point.\n * Default is `1`.\n * - `minFractionDigits`: The minimum number of digits after the decimal point.\n * Default is `0`.\n * - `maxFractionDigits`: The maximum number of digits after the decimal point.\n * Default is `3`.\n * @param locale A locale code for the locale format rules to use.\n * When not supplied, uses the value of `KBQ_LOCALE_ID`, which is `ru` by default.\n */\n transform(value: any, digitsInfo?: string, locale?: string): string | null {\n if (isEmpty(value)) {\n return null;\n }\n\n const currentLocale = locale || this.id || KBQ_DEFAULT_LOCALE_ID;\n\n let parsedDigitsInfo: ParsedDigitsInfo | undefined;\n\n if (digitsInfo) {\n parsedDigitsInfo = parseDigitsInfo(digitsInfo);\n }\n\n const options: Intl.NumberFormatOptions = {\n ...this.options,\n ...parsedDigitsInfo\n };\n\n try {\n const formatter = new Intl.NumberFormat(currentLocale, options);\n\n return formatNumberWithLocale(\n value,\n formatter,\n this.localeService?.locales[currentLocale]?.formatters.number.decimal\n );\n } catch (error: any) {\n throw Error(`InvalidPipeArgument: KbqTableNumberPipe for pipe '${JSON.stringify(error.message)}'`);\n }\n }\n}\n\nexport function isWithin(startRange: number, endRange: number, valueToCheck: number): boolean {\n return startRange <= valueToCheck && valueToCheck < endRange;\n}\n\n@Injectable({ providedIn: 'root' })\n@Pipe({\n name: 'kbqRoundNumber',\n pure: false\n})\nexport class KbqRoundDecimalPipe implements PipeTransform {\n private id = inject(KBQ_LOCALE_ID, { optional: true });\n private localeService = inject<KbqLocaleService>(KBQ_LOCALE_SERVICE, { optional: true });\n roundingOptions: RoundDecimalOptions;\n\n constructor() {\n this.localeService?.changes.subscribe((newId: string) => (this.id = newId));\n }\n\n transform(value: any, locale?: string): any {\n if (isEmpty(value)) {\n return null;\n }\n\n const currentLocale: string = locale || this.id || KBQ_DEFAULT_LOCALE_ID;\n\n this.roundingOptions = this.localeService?.locales[currentLocale].formatters.number.rounding;\n\n try {\n const num = strToNumber(value);\n const unit = this.calculateUnit(num);\n\n if (!unit) {\n return Intl.NumberFormat.call(this, currentLocale, { useGrouping: false }).format(num);\n }\n\n let parts: { num?: number; fraction?: number } = {};\n\n if (intervalsConfig.supportedLanguages.includes(currentLocale)) {\n intervalsConfig.intervals.find(({ startRange, endRange, precision }) => {\n const within = isWithin(startRange, endRange, num);\n\n if (within) {\n if (precision) {\n parts =\n unit === 'thousand'\n ? this.calculatePartsForThousands(num)\n : {\n num: Math.trunc(num / ROUNDING_UNITS[unit]),\n fraction: this.calculateDecimal(num, ROUNDING_UNITS[unit])\n };\n } else {\n parts = { num: Math.round(num / ROUNDING_UNITS[unit]) };\n }\n }\n\n return within;\n });\n }\n\n parts = parts.num\n ? parts\n : {\n num: Math.trunc(num / ROUNDING_UNITS[unit]),\n fraction: this.calculateDecimal(num, ROUNDING_UNITS[unit])\n };\n Object.keys(parts).forEach((key) => {\n parts[key] = Intl.NumberFormat.call(this, currentLocale, { useGrouping: false }).format(parts[key]);\n });\n\n const calculatedValue = parts.fraction\n ? `${parts.num}${this.roundingOptions.groupSeparator}${parts.fraction}`\n : `${parts.num}`;\n\n return `${calculatedValue}${this.roundingOptions.separator}${this.roundingOptions[unit]}`;\n } catch (error: any) {\n throw Error(`InvalidPipeArgument: KbqRoundDecimalPipe for pipe '${JSON.stringify(error.message)}'`);\n }\n }\n\n private calculateDecimal(num: number, divider: number) {\n return Math.round(((num / divider) % 1) * 10);\n }\n\n /**\n * 2 * 1000 is a number in the interval of [1500...2500)\n *\n * 2,0 * 1000 is a number in the interval of [1950...2050)\n */\n private calculatePartsForThousands(num: number) {\n const dividedValue = num / ROUNDING_UNITS.thousand;\n const div = Math.round(dividedValue) * ROUNDING_UNITS.thousand;\n const fifty = 50;\n\n return isWithin(div - fifty, div + fifty, num)\n ? { num: Math.round(dividedValue), fraction: 0 }\n : { num: Math.round(dividedValue) };\n }\n\n private calculateUnit(num: number): string | undefined {\n let currentUnit: string | undefined;\n const localizedOptions = Object.keys(this.roundingOptions);\n\n Object.keys(ROUNDING_UNITS).every((key) => {\n if (!localizedOptions.includes(key)) {\n return true;\n }\n\n if (num / ROUNDING_UNITS[key] >= 1) {\n currentUnit = key;\n\n return true;\n }\n\n return false;\n });\n\n return currentUnit;\n }\n}\n","import { KbqUnitSystem } from './config';\n\nexport const KBQ_INVALID_VALUE_ERROR = 'Argument \"value\" must be a finite number!';\n\n/**\n * Converts a byte value into locale-independent file size parts: numeric value and unit abbreviation.\n *\n * @param value - size in bytes.\n * @param system - unit system defining abbreviations and base scaling (SI/IEC).\n * @returns Object with the formatted size info.\n *\n * @example\n * getFormattedSizeParts(1500, 'SI'); // { value: \"1.50\", unit: \"KB\" }\n */\nexport function getFormattedSizeParts(value: number, system: KbqUnitSystem): { value: string; unit: string } {\n const { result, unit } = getHumanizedBytes(value, system);\n\n return {\n value: result.toString(),\n unit\n };\n}\n\n/**\n * Converts bytes to Kb, Mb, Gb\n *\n * @param value the number of bytes\n * @param system the measurement system\n * @param threshold the lower counting threshold\n */\nexport const getHumanizedBytes = (\n value: number,\n system: KbqUnitSystem,\n threshold?: number\n): { result: number; unit: string } => {\n if (!Number.isFinite(value)) {\n throw new Error(KBQ_INVALID_VALUE_ERROR);\n }\n\n const calculatedThreshold = Number.isFinite(threshold) ? threshold : Math.pow(system.base, system.power);\n const orderOfMagnitude: number = Math.pow(system.base, system.power);\n\n let result: number = value;\n let step = 0;\n const len: number = system.abbreviations.length - 1;\n\n while (step < len) {\n if (calculatedThreshold !== undefined && result < calculatedThreshold) {\n break;\n }\n\n step++;\n result = value / Math.pow(orderOfMagnitude, step);\n }\n\n return {\n result,\n unit: system.abbreviations[step]\n };\n};\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { KBQ_DEFAULT_LOCALE_ID, KBQ_LOCALE_SERVICE } from '../../locales';\nimport { KbqDecimalPipe } from '../number/formatter';\nimport {\n KBQ_SIZE_UNITS_CONFIG,\n KBQ_SIZE_UNITS_DEFAULT_CONFIG,\n KbqMeasurementSystem,\n KbqMeasurementSystemType,\n KbqSizeUnitsConfig,\n KbqUnitSystem\n} from './config';\nimport { getFormattedSizeParts } from './size';\n\n@Pipe({\n name: 'kbqDataSize',\n pure: false\n})\nexport class KbqDataSizePipe implements PipeTransform {\n /** Injects the external configuration for size units, if available. */\n readonly externalConfig = inject(KBQ_SIZE_UNITS_CONFIG, { optional: true });\n\n private readonly localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });\n private readonly numberPipe = inject(KbqDecimalPipe, { optional: true });\n private readonly nonBreakingSpace = '\\u00a0';\n private config: KbqSizeUnitsConfig;\n\n constructor() {\n this.localeService?.changes.pipe(takeUntilDestroyed()).subscribe(this.updateLocaleParams);\n\n if (!this.localeService) {\n this.config = this.externalConfig || KBQ_SIZE_UNITS_DEFAULT_CONFIG;\n }\n }\n\n /** Transforms bytes into localized size string */\n transform(\n source: number,\n precision: number = this.config.defaultPrecision,\n unitSystemName: KbqMeasurementSystemType = this.config.defaultUnitSystem,\n locale: string = this.localeService?.id || KBQ_DEFAULT_LOCALE_ID\n ): string {\n const resolvedUnitSystems: Record<KbqMeasurementSystem, KbqUnitSystem> = this.localeService\n ? this.localeService.locales[locale].sizeUnits.unitSystems\n : this.config.unitSystems;\n\n const { value, unit } = getFormattedSizeParts(source, resolvedUnitSystems[unitSystemName]);\n\n const formattedValue = this.numberPipe?.transform(value, `1.0-${precision}`, locale) || value;\n\n return formattedValue ? `${formattedValue}${this.nonBreakingSpace}${unit}` : '';\n }\n\n private updateLocaleParams = () => {\n this.config = this.externalConfig || this.localeService?.getParams('sizeUnits');\n };\n}\n","import { NgModule } from '@angular/core';\nimport { DateFormatter } from './date/formatter';\nimport {\n AbsoluteDateFormatterImpurePipe,\n AbsoluteDateFormatterPipe,\n AbsoluteDateShortFormatterImpurePipe,\n AbsoluteDateShortFormatterPipe,\n AbsoluteDateTimeFormatterImpurePipe,\n AbsoluteDateTimeFormatterPipe,\n AbsoluteShortDateTimeFormatterImpurePipe,\n AbsoluteShortDateTimeFormatterPipe,\n KbqAbsoluteLongDatePipe,\n KbqAbsoluteLongDateTimePipe,\n KbqAbsoluteShortDatePipe,\n KbqAbsoluteShortDateTimePipe,\n KbqRangeLongDatePipe,\n KbqRangeLongDateTimePipe,\n KbqRangeMiddleDateTimePipe,\n KbqRangeShortDatePipe,\n KbqRangeShortDateTimePipe,\n KbqRelativeLongDatePipe,\n KbqRelativeLongDateTimePipe,\n KbqRelativeShortDatePipe,\n KbqRelativeShortDateTimePipe,\n RangeDateFormatterImpurePipe,\n RangeDateFormatterPipe,\n RangeDateTimeFormatterImpurePipe,\n RangeDateTimeFormatterPipe,\n RangeMiddleDateTimeFormatterImpurePipe,\n RangeMiddleDateTimeFormatterPipe,\n RangeShortDateFormatterImpurePipe,\n RangeShortDateFormatterPipe,\n RangeShortDateTimeFormatterImpurePipe,\n RangeShortDateTimeFormatterPipe,\n RelativeDateFormatterImpurePipe,\n RelativeDateFormatterPipe,\n RelativeDateTimeFormatterImpurePipe,\n RelativeDateTimeFormatterPipe,\n RelativeShortDateFormatterImpurePipe,\n RelativeShortDateFormatterPipe,\n RelativeShortDateTimeFormatterImpurePipe,\n RelativeShortDateTimeFormatterPipe\n} from './date/formatter.pipe';\nimport { KbqDataSizePipe } from './filesize';\nimport { KbqDecimalPipe, KbqRoundDecimalPipe, KbqTableNumberPipe } from './number/formatter';\n\n@NgModule({\n imports: [\n AbsoluteDateFormatterPipe,\n AbsoluteDateTimeFormatterPipe,\n AbsoluteDateShortFormatterPipe,\n AbsoluteShortDateTimeFormatterPipe,\n RelativeDateFormatterPipe,\n RelativeDateTimeFormatterPipe,\n RelativeShortDateFormatterPipe,\n RelativeShortDateTimeFormatterPipe,\n RangeDateFormatterPipe,\n RangeShortDateFormatterPipe,\n RangeDateTimeFormatterPipe,\n RangeShortDateTimeFormatterPipe,\n RangeMiddleDateTimeFormatterPipe,\n AbsoluteDateFormatterImpurePipe,\n AbsoluteDateTimeFormatterImpurePipe,\n AbsoluteDateShortFormatterImpurePipe,\n AbsoluteShortDateTimeFormatterImpurePipe,\n RelativeDateFormatterImpurePipe,\n RelativeDateTimeFormatterImpurePipe,\n RelativeShortDateFormatterImpurePipe,\n RelativeShortDateTimeFormatterImpurePipe,\n RangeDateFormatterImpurePipe,\n RangeShortDateFormatterImpurePipe,\n RangeDateTimeFormatterImpurePipe,\n RangeShortDateTimeFormatterImpurePipe,\n RangeMiddleDateTimeFormatterImpurePipe,\n KbqAbsoluteLongDatePipe,\n KbqAbsoluteLongDateTimePipe,\n KbqAbsoluteShortDatePipe,\n KbqAbsoluteShortDateTimePipe,\n KbqRelativeLongDatePipe,\n KbqRelativeLongDateTimePipe,\n KbqRelativeShortDatePipe,\n KbqRelativeShortDateTimePipe,\n KbqRangeLongDatePipe,\n KbqRangeLongDateTimePipe,\n KbqRangeMiddleDateTimePipe,\n KbqRangeShortDatePipe,\n KbqRangeShortDateTimePipe,\n KbqDataSizePipe,\n KbqDecimalPipe,\n KbqRoundDecimalPipe,\n KbqTableNumberPipe\n ],\n providers: [DateFormatter],\n exports: [\n KbqDecimalPipe,\n KbqRoundDecimalPipe,\n KbqTableNumberPipe,\n AbsoluteDateFormatterPipe,\n AbsoluteDateTimeFormatterPipe,\n AbsoluteDateShortFormatterPipe,\n AbsoluteShortDateTimeFormatterPipe,\n RelativeDateFormatterPipe,\n RelativeDateTimeFormatterPipe,\n RelativeShortDateFormatterPipe,\n RelativeShortDateTimeFormatterPipe,\n RangeDateFormatterPipe,\n RangeShortDateFormatterPipe,\n RangeDateTimeFormatterPipe,\n RangeShortDateTimeFormatterPipe,\n RangeMiddleDateTimeFormatterPipe,\n AbsoluteDateFormatterImpurePipe,\n AbsoluteDateTimeFormatterImpurePipe,\n AbsoluteDateShortFormatterImpurePipe,\n AbsoluteShortDateTimeFormatterImpurePipe,\n RelativeDateFormatterImpurePipe,\n RelativeDateTimeFormatterImpurePipe,\n RelativeShortDateFormatterImpurePipe,\n RelativeShortDateTimeFormatterImpurePipe,\n RangeDateFormatterImpurePipe,\n RangeShortDateFormatterImpurePipe,\n RangeDateTimeFormatterImpurePipe,\n RangeShortDateTimeFormatterImpurePipe,\n RangeMiddleDateTimeFormatterImpurePipe,\n KbqAbsoluteLongDatePipe,\n KbqAbsoluteLongDateTimePipe,\n KbqAbsoluteShortDatePipe,\n KbqAbsoluteShortDateTimePipe,\n KbqRelativeLongDatePipe,\n KbqRelativeLongDateTimePipe,\n KbqRelativeShortDatePipe,\n KbqRelativeShortDateTimePipe,\n KbqRangeLongDatePipe,\n KbqRangeLongDateTimePipe,\n KbqRangeMiddleDateTimePipe,\n KbqRangeShortDatePipe,\n KbqRangeShortDateTimePipe,\n KbqDataSizePipe\n ]\n})\nexport class KbqFormattersModule {}\n\nexport * from './date/formatter';\nexport * from './date/formatter.pipe';\nexport * from './filesize/index';\nexport * from './number/formatter';\n","import { AfterContentInit, Directive, ElementRef, contentChildren, inject } from '@angular/core';\n\n@Directive({\n selector: '.kbq-form__row, .kbq-form__fieldset, .kbq-form__legend',\n host: {\n '[class.kbq-form-row_margin]': 'margin'\n },\n exportAs: 'kbqFormElement'\n})\nexport class KbqFormElement implements AfterContentInit {\n private readonly element = inject<ElementRef<HTMLElement>>(ElementRef);\n\n margin = false;\n\n isRow = false;\n isFieldSet = false;\n hasLegend = false;\n isHorizontal = false;\n\n readonly elements = contentChildren(KbqFormElement);\n\n ngAfterContentInit(): void {\n const classList = this.element.nativeElement.classList;\n\n this.isRow = classList.contains('kbq-form__row');\n this.isHorizontal = classList.contains('kbq-horizontal');\n\n this.isFieldSet = classList.contains('kbq-form__fieldset');\n\n if (this.isFieldSet && this.element.nativeElement.firstElementChild) {\n this.hasLegend = this.element.nativeElement.firstElementChild.classList.contains('kbq-form__legend');\n }\n }\n}\n\n@Directive({\n selector: '.kbq-form-vertical, .kbq-form-horizontal',\n host: {\n class: 'kbq-form'\n },\n exportAs: 'kbqForm'\n})\nexport class KbqForm implements AfterContentInit {\n readonly elements = contentChildren(KbqFormElement);\n\n ngAfterContentInit(): void {\n this.handleElements(this.elements());\n }\n\n handleElements(elements: readonly KbqFormElement[]): void {\n elements.forEach((element, index) => {\n const nextElement: KbqFormElement | undefined = elements[index + 1];\n\n if (element.isFieldSet && !element.isHorizontal) {\n this.handleElements(element.elements());\n }\n\n element.margin = !!(nextElement && !nextElement.hasLegend);\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { KbqForm, KbqFormElement } from './forms.directive';\n\n@NgModule({\n imports: [\n KbqForm,\n KbqFormElement\n ],\n exports: [\n KbqForm,\n KbqFormElement\n ]\n})\nexport class KbqFormsModule {}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\n/** Provides a set of validators for password form controls. */\nexport class PasswordValidators {\n /**\n * Validator that requires the control's value length to be at least `min` characters.\n *\n * `min` - number of characters.\n *\n * ## Usage:\n *\n * ```typescript\n * const control = new FormControl('password', PasswordValidators.minLength(10));\n * console.log(control.errors); // {minLength: {min: 10, actual: 8}}\n * ```\n */\n static minLength(min: number): ValidatorFn {\n return ({ value }: AbstractControl): ValidationErrors | null => {\n if (typeof value !== 'string') {\n return null;\n }\n\n return value.length >= min ? null : { minLength: { min, actual: value.length } };\n };\n }\n\n /**\n * Validator that requires the control's value length to be at most `max` characters.\n *\n * `max` - number of characters.\n *\n * ## Usage:\n * ```typescript\n * const control = new FormControl('password', PasswordValidators.maxLength(6));\n * console.log(control.errors); // {maxLength: {max: 6, actual: 8}}\n * ```\n */\n static maxLength(max: number): ValidatorFn {\n return ({ value }: AbstractControl): ValidationErrors | null => {\n if (typeof value !== 'string') {\n return null;\n }\n\n return value.length <= max ? null : { maxLength: { max, actual: value.length } };\n };\n }\n\n /**\n * Validator that requires the control's value to be at least `min` uppercase characters.\n *\n * `min` - number of uppercase characters.\n *\n * ### Usage:\n *\n * ```typescript\n * const control = new FormControl('Password', PasswordValidators.minUppercase(2));\n * console.log(control.errors); // {minUppercase: {min: 2, actual: 1}}\n * ```\n */\n static minUppercase(min: number): ValidatorFn {\n return ({ value }: AbstractControl): ValidationErrors | null => {\n if (typeof value !== 'string') {\n return null;\n }\n\n const matches = (value.match(/[A-Z]/g) || []).length;\n\n return matches >= min ? null : { minUppercase: { min, actual: matches } };\n };\n }\n\n /**\n * Validator that requires the control's value to be at least `min` lowercase characters.\n *\n * `min` - number of lowercase characters.\n *\n * ### Usage:\n *\n * ```typescript\n * const control = new FormControl('PASSWORD', PasswordValidators.minLowercase());\n * console.log(control.errors); // {minLowercase: {min: 1, actual: 0}}\n * ```\n */\n static minLowercase(min: number): ValidatorFn {\n return ({ value }: AbstractControl): ValidationErrors | null => {\n if (typeof value !== 'string') {\n return null;\n }\n\n const matches = (value.match(/[a-z]/g) || []).length;\n\n return matches >= min ? null : { minLowercase: { min, actual: matches } };\n };\n }\n\n /**\n * Validator that requires the control's value to be at least `min` number characters.\n *\n * `min` - number of number characters.\n *\n * ### Usage:\n *\n * ```typescript\n * const control = new FormControl('passw0rd', PasswordValidators.minNumber(2));\n * console.log(control.errors); // {minNumber: {min: 2, actual: 1}}\n * ```\n */\n static minNumber(min: number): ValidatorFn {\n return ({ value }: AbstractControl): ValidationErrors | null => {\n if (typeof value !== 'string') {\n return null;\n }\n\n const matches = (value.match(/[\\d]/g) || []).length;\n\n return matches >= min ? null : { minNumber: { min, actual: matches } };\n };\n }\n\n /**\n * Validator that requires the control's value to be at least `min` special characters.\n *\n * `min` - number of special characters.\n *\n * ### Special characters:\n * ```js\n * ['!','@','#','$','%','^','&','*']\n * ```\n *\n * ### Usage:\n *\n * ```typescript\n * const control = new FormControl('pa$sword', PasswordValidators.minSpecial(2));\n * console.log(control.errors); // {minSpecial: {min: 2, actual: 1}}\n * ```\n */\n static minSpecial(min: number): ValidatorFn {\n return ({ value }: AbstractControl): ValidationErrors | null => {\n if (typeof value !== 'string') {\n return null;\n }\n\n const matches = (value.match(/[!@#$%^&*]/g) || []).length;\n\n return matches >= min ? null : { minSpecial: { min, actual: matches } };\n };\n }\n}\n\n/** Provides a set of validators for file-related form controls. */\nexport class FileValidators {\n /**\n * Validator that checks if the file size is less than or equal to the provided `maxSize`.\n *\n * @param maxSize - The maximum allowed file size in bytes.\n *\n * @returns A ValidatorFn function that checks the file size.\n *\n * ## Usage:\n *\n * ```typescript\n * const control = new FormControl(null, [FileValidators.maxFileSize(1024 * 1024)]); // 1MB\n * control.setValue(FILE_LESS_OR_EQUAL_THAN_1MB);\n * console.log(control.errors); // null\n * control.setValue(FILE_MORE_THAN_1MB);\n * console.log(control.errors); // {maxFileSize: { max: 1048576, actual: FILE_MORE_THAN_1MB.size }}\n * ```\n */\n static maxFileSize(maxSize: number): ValidatorFn {\n return ({ value }: AbstractControl): ValidationErrors | null => {\n if (!value) return null;\n\n const size = value instanceof File ? value.size : value.file.size;\n\n if (size > maxSize) {\n return { maxFileSize: { max: maxSize, actual: size } };\n }\n\n return null;\n };\n }\n\n /**\n * Validator that checks whether file's name or MIME type\n * matches one of the accepted extensions or MIME types.\n *\n * @param accept - Array of allowed file extensions or MIME types.\n * @returns ValidatorFn that returns validation error if file type is not accepted, or null otherwise.\n */\n static isCorrectExtension(accept: (`.${string}` | `${string}/${string}`)[]): ValidatorFn {\n return (control: AbstractControl<{ file: File } | null>): ValidationErrors | null => {\n if (!accept?.length || !control.value) return null;\n const { name, type } = control.value.file;\n\n const isValid = accept.some((acceptedExtensionOrMimeType) => {\n const typeAsRegExp = new RegExp(`${acceptedExtensionOrMimeType}$`);\n\n return typeAsRegExp.test(name) || typeAsRegExp.test(type);\n });\n\n return isValid ? null : { fileExtensionMismatch: { expected: accept, actual: name } };\n };\n }\n}\n\n/**\n * Type helper describing accepted file types, referring to:\n * @link https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/input/file#unique_file_type_specifiers\n */\nexport type KbqFileTypeSpecifier = Parameters<typeof FileValidators.isCorrectExtension>[0];\n","const HTML_ESCAPES = { '&': '&', '<': '<', '>': '>', '\"': '"', \"'\": ''' } as const;\nconst HTML_SPECIAL_CHARS = /[&<>\"']/;\nconst HTML_SPECIAL_CHARS_GLOBAL = new RegExp(HTML_SPECIAL_CHARS.source, 'g');\n\n/** Escapes characters in the specified string that have special meaning in a regular expression. */\nexport function escapeRegExp(value: string): string {\n if (value) {\n return value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n }\n\n return value;\n}\n\nfunction escapeHtml(value: string): string {\n if (!HTML_SPECIAL_CHARS.test(value)) return value;\n\n return value.replace(HTML_SPECIAL_CHARS_GLOBAL, (chr) => HTML_ESCAPES[chr] ?? chr);\n}\n\n/** @docs-private */\nexport function highlight(value: unknown, keyword: unknown, mark: (text: string) => string): string {\n if (typeof value !== 'string') return '';\n if (!keyword || typeof keyword !== 'string') return escapeHtml(value);\n\n const parts = value.split(new RegExp(`(${escapeRegExp(keyword)})`, 'gi'));\n\n return parts\n .map((part, i) => {\n const escaped = escapeHtml(part);\n const isMatch = i % 2 === 1;\n\n return isMatch ? mark(escaped) : escaped;\n })\n .join('');\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { highlight } from './highlight-base';\n\n/** @docs-private */\nexport const kbqHighlightBackgroundMark = (text: string): string =>\n `<mark class=\"kbq-highlight-background\">${text}</mark>`;\n\n@Pipe({ name: 'kbqHighlightBackground' })\nexport class KbqHighlightBackgroundPipe implements PipeTransform {\n transform(value: unknown, keyword: unknown): string {\n return highlight(value, keyword, kbqHighlightBackgroundMark);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { highlight } from './highlight-base';\n\n/** @docs-private */\nexport const kbqHighlightMark = (text: string): string => `<mark class=\"kbq-highlight\">${text}</mark>`;\n\n@Pipe({ name: 'mcHighlight' })\nexport class KbqHighlightPipe implements PipeTransform {\n transform(value: unknown, keyword: unknown): string {\n return highlight(value, keyword, kbqHighlightMark);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { KbqHighlightBackgroundPipe } from './highlight-background.pipe';\nimport { KbqHighlightPipe } from './highlight.pipe';\n\n@NgModule({\n imports: [KbqHighlightPipe, KbqHighlightBackgroundPipe],\n exports: [KbqHighlightPipe, KbqHighlightBackgroundPipe]\n})\nexport class KbqHighlightModule {}\n\nexport * from './highlight-background.pipe';\nexport { escapeRegExp } from './highlight-base';\nexport * from './highlight.pipe';\n","import { Directive, ElementRef, QueryList } from '@angular/core';\n\n/**\n * Shared directive to count lines inside a text area, such as a list item.\n * Line elements can be extracted with a @ContentChildren(KbqLine) query, then\n * counted by checking the query list's length.\n */\n@Directive({\n selector: '[kbq-line], [mcLine]',\n host: { class: 'kbq-line' }\n})\nexport class KbqLine {}\n\n/**\n * Helper that takes a query list of lines and sets the correct class on the host.\n * @docs-private\n */\nexport class KbqLineSetter {\n constructor(\n private _lines: QueryList<KbqLine>,\n private _element: ElementRef\n ) {\n this.setLineClass(this._lines.length);\n\n this._lines.changes.subscribe(() => {\n this.setLineClass(this._lines.length);\n });\n }\n\n private setLineClass(count: number): void {\n const minLineClassNumber = 2;\n const maxLineClassNumber = 3;\n\n this.resetClasses();\n\n if (count === minLineClassNumber || count === maxLineClassNumber) {\n this.setClass(`kbq-${count}-line`, true);\n } else if (count > maxLineClassNumber) {\n this.setClass(`kbq-multi-line`, true);\n }\n }\n\n private resetClasses(): void {\n this.setClass('kbq-2-line', false);\n this.setClass('kbq-3-line', false);\n this.setClass('kbq-multi-line', false);\n }\n\n private setClass(className: string, isAdd: boolean): void {\n if (isAdd) {\n this._element.nativeElement.classList.add(className);\n } else {\n this._element.nativeElement.classList.remove(className);\n }\n }\n}\n","import { Platform } from '@angular/cdk/platform';\nimport { Directive, inject } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { KBQ_WINDOW } from '../tokens';\nimport { kbqInjectNativeElement } from '../utils';\n\n@Directive({\n host: {\n '[class.kbq-expanded]': '!collapsed',\n '[class.kbq-collapsed]': 'collapsed'\n }\n})\nexport class KbqRectangleItem {\n protected readonly isBrowser = inject(Platform).isBrowser;\n protected readonly nativeElement = kbqInjectNativeElement();\n private readonly window = inject(KBQ_WINDOW);\n\n readonly state = new Subject<void>();\n\n get collapsed(): boolean {\n return this._collapsed;\n }\n\n set collapsed(value: boolean) {\n this._collapsed = value;\n\n this.state.next();\n }\n\n private _collapsed: boolean;\n\n getOuterElementWidth(): number {\n if (!this.isBrowser) return 0;\n\n const { width, marginLeft, marginRight } = this.window.getComputedStyle(this.nativeElement);\n\n return [width, marginLeft, marginRight].reduce((acc, item) => acc + parseInt(item), 0);\n }\n}\n","import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport {\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n EventEmitter,\n inject,\n InjectionToken,\n Input,\n OnDestroy,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ENTER, SPACE, TAB } from '../keycodes';\nimport { kbqInjectNativeElement } from '../utils';\n\nexport interface KbqOptionActionParent {\n dropdownTrigger: {\n opened: boolean;\n restoreFocus: boolean;\n dropdownClosed: EventEmitter<void>;\n lastDestroyReason: void | 'click' | 'keydown' | 'tab';\n openedBy: Exclude<FocusOrigin, 'program' | null> | undefined;\n toggle(): void;\n };\n tooltipTrigger: {\n disabled: boolean;\n };\n focus(): void;\n}\n\nexport const KBQ_OPTION_ACTION_PARENT = new InjectionToken<KbqOptionActionParent>('KBQ_OPTION_ACTION_PARENT');\n\n@Component({\n selector: 'kbq-option-action',\n template: `\n <ng-content select=\"[kbq-icon]\">\n <i class=\"kbq kbq-icon kbq-contrast-fade kbq-ellipsis-vertical_16\"></i>\n </ng-content>\n `,\n styleUrls: ['./action.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-option-action',\n '[class.kbq-expanded]': 'false',\n '[class.kbq-disabled]': 'disabled',\n '[attr.disabled]': 'disabled || null',\n '[attr.tabIndex]': '-1',\n '(click)': 'onClick($event)',\n '(keydown)': 'onKeyDown($event)'\n },\n exportAs: 'kbqOptionAction'\n})\nexport class KbqOptionActionComponent implements AfterViewInit, OnDestroy {\n private readonly nativeElement = kbqInjectNativeElement();\n private readonly focusMonitor = inject(FocusMonitor);\n private readonly option = inject(KBQ_OPTION_ACTION_PARENT);\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input({ transform: booleanAttribute })\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n if (value !== this.disabled) {\n this._disabled = value;\n }\n }\n\n private _disabled: boolean = false;\n\n hasFocus: boolean = false;\n\n get active(): boolean {\n return this.hasFocus || !!this.option.dropdownTrigger?.opened;\n }\n\n private readonly destroyRef = inject(DestroyRef);\n\n ngAfterViewInit(): void {\n this.focusMonitor\n .monitor(this.nativeElement, true)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((result) => (this.hasFocus = !!result));\n\n if (!this.option.dropdownTrigger) return;\n\n this.option.dropdownTrigger.restoreFocus = false;\n\n this.option.dropdownTrigger.dropdownClosed.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.preventShowingTooltip();\n\n const lastDestroyReason = this.option.dropdownTrigger.lastDestroyReason;\n\n if (lastDestroyReason) {\n this.focus(lastDestroyReason === 'keydown' ? 'keyboard' : 'program');\n }\n });\n }\n\n ngOnDestroy(): void {\n this.focusMonitor.stopMonitoring(this.nativeElement);\n }\n\n focus(origin?: FocusOrigin, options?: FocusOptions) {\n if (this.focusMonitor && origin) {\n this.focusMonitor.focusVia(this.nativeElement, origin, options);\n } else {\n this.nativeElement.focus();\n }\n\n this.hasFocus = true;\n }\n\n onClick($event) {\n $event.stopPropagation();\n }\n\n onKeyDown($event) {\n if ([SPACE, ENTER].includes($event.keyCode) && this.option.dropdownTrigger) {\n this.option.dropdownTrigger.openedBy = 'keyboard';\n } else if ($event.shiftKey && $event.keyCode === TAB) {\n this.hasFocus = false;\n\n this.option.focus();\n } else if ($event.keyCode === TAB) {\n return;\n }\n\n $event.preventDefault();\n $event.stopPropagation();\n }\n\n private preventShowingTooltip() {\n if (!this.option.tooltipTrigger) {\n return;\n }\n\n this.option.tooltipTrigger.disabled = true;\n\n setTimeout(() => (this.option.tooltipTrigger.disabled = false));\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'kbq-action-container',\n template: `\n <div class=\"kbq-action-container__gradient\"></div>\n <div class=\"kbq-action-container__box\">\n <ng-content />\n </div>\n `,\n styleUrls: ['./action-container.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-action-container'\n },\n exportAs: 'kbqActionContainer'\n})\nexport class KbqActionContainer {}\n","import { booleanAttribute, ChangeDetectionStrategy, Component, Input, input, ViewEncapsulation } from '@angular/core';\n\nlet uniqueOptgroupIdCounter = 0;\n\n/**\n * Component that is used to group instances of `kbq-option`.\n * When options aren't provided as `ng-content`, used as a Group Header with styling.\n */\n@Component({\n selector: 'kbq-optgroup',\n templateUrl: 'optgroup.html',\n styleUrls: ['./optgroup.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-optgroup',\n '[class.kbq-disabled]': 'disabled'\n },\n exportAs: 'kbqOptgroup'\n})\nexport class KbqOptgroup {\n readonly label = input<string>(undefined!);\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input({ transform: booleanAttribute })\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n if (value !== this.disabled) {\n this._disabled = value;\n }\n }\n\n private _disabled: boolean = false;\n\n /** Unique id for the underlying label. */\n labelId: string = `kbq-optgroup-label-${uniqueOptgroupIdCounter++}`;\n}\n","<label class=\"kbq-optgroup-label\" [id]=\"labelId\">\n {{ label() }}\n</label>\n<ng-content select=\"kbq-option, kbq-list-option, kbq-timezone-option, ng-container\" />\n","export enum MultipleMode {\n CHECKBOX = 'checkbox',\n KEYBOARD = 'keyboard'\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, input } from '@angular/core';\nimport { KbqColorDirective } from '../../common-behaviors';\n\nexport type KbqPseudoCheckboxState = 'unchecked' | 'checked' | 'indeterminate' | boolean;\n\n/**\n * Component that shows a simplified checkbox without including any kind of \"real\" checkbox.\n * Meant to be used when the checkbox is purely decorative and a large number of them will be\n * included, such as for the options in a multi-select. Uses no SVGs or complex animations.\n * Note that theming is meant to be handled by the parent element, e.g.\n * `kbq-primary .kbq-pseudo-checkbox`.\n *\n * Note that this component will be completely invisible to screen-reader users. This is *not*\n * interchangeable with `<kbq-checkbox>` and should *not* be used if the user would directly\n * interact with the checkbox. The pseudo-checkbox should only be used as an implementation detail\n * of more complex components that appropriately handle selected / checked state.\n * @docs-private\n */\n@Component({\n selector: 'kbq-pseudo-checkbox',\n templateUrl: 'pseudo-checkbox.partial.html',\n styleUrls: ['pseudo-checkbox.scss', 'pseudo-checkbox-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-pseudo-checkbox',\n '[class.kbq-checkbox_big]': 'big()',\n '[class.kbq-indeterminate]': 'state() === \"indeterminate\"',\n '[class.kbq-checked]': 'state() === true || state() === \"checked\"',\n '[class.kbq-disabled]': 'disabled()'\n },\n preserveWhitespaces: false\n})\nexport class KbqPseudoCheckbox extends KbqColorDirective {\n readonly big = input<boolean>(false);\n\n readonly state = input<KbqPseudoCheckboxState>('unchecked');\n\n readonly disabled = input<boolean>(false);\n}\n","<i class=\"kbq-checkbox-checkmark kbq kbq-check-s_16\"></i>\n<i class=\"kbq-checkbox-mixedmark kbq kbq-minus-s_16\"></i>\n","import { NgModule } from '@angular/core';\nimport { KbqPseudoCheckbox } from './pseudo-checkbox';\n\n@NgModule({\n imports: [KbqPseudoCheckbox],\n exports: [KbqPseudoCheckbox]\n})\nexport class KbqPseudoCheckboxModule {}\n","import { ElementRef, InjectionToken } from '@angular/core';\n\nexport interface KbqTitleTextRef {\n textElement?: ElementRef;\n parentTextElement?: ElementRef;\n}\n\nexport const KBQ_TITLE_TEXT_REF = new InjectionToken<KbqTitleTextRef>('KbqTitleTextRef');\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterViewChecked,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n inject,\n InjectionToken,\n Input,\n input,\n OnDestroy,\n Output,\n QueryList,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { ActiveDescendantKeyManager } from '../a11y';\nimport { ENTER, hasModifierKey, SPACE } from '../keycodes';\nimport { KbqPseudoCheckboxModule } from '../selection';\nimport { KBQ_TITLE_TEXT_REF, KbqTitleTextRef } from '../title';\nimport { KbqOptgroup } from './optgroup';\n\n/**\n * Option IDs need to be unique across components, so this counter exists outside of\n * the component definition.\n */\nlet uniqueIdCounter = 0;\n\n/** Event object emitted by KbqOption when selected or deselected. */\nexport class KbqOptionSelectionChange<T = KbqOption> {\n constructor(\n public source: T,\n public isUserInput = false\n ) {}\n}\n\n/**\n * Describes a parent component that manages a list of options.\n * Contains properties that the options can inherit.\n * @docs-private\n */\nexport interface KbqOptionParentComponent {\n multiple?: boolean;\n multiSelection?: boolean;\n withVirtualScroll?: boolean;\n keyManager?: ActiveDescendantKeyManager<KbqOption>;\n setSelectedOptionsByClick: (option: KbqOption) => void;\n}\n\n/**\n * Handler that will update scroll position of elements inside overlay\n */\nexport interface KeyboardNavigationHandler {\n /** Scrolls the active option into view. */\n scrollActiveOptionIntoView(): void;\n}\n\n/**\n * Injection token used to provide the parent component to options.\n */\nexport const KBQ_OPTION_PARENT_COMPONENT = new InjectionToken<KbqOptionParentComponent>('KBQ_OPTION_PARENT_COMPONENT');\n\nexport abstract class KbqOptionBase {\n value: any;\n abstract get viewValue(): string;\n abstract get disabled(): boolean;\n abstract set disabled(value: any);\n\n abstract readonly onSelectionChange: EventEmitter<KbqOptionSelectionChange<any>>;\n\n abstract select(): void;\n\n abstract deselect(): void;\n\n /** Emits the selection change event. */\n protected emitSelectionChangeEvent(isUserInput = false): void {\n this.onSelectionChange.emit(new KbqOptionSelectionChange(this, isUserInput));\n }\n}\n\nexport class KbqVirtualOption extends KbqOptionBase {\n get disabled() {\n return this._disabled;\n }\n set disabled(value: any) {\n this._disabled = coerceBooleanProperty(value);\n }\n\n get selected(): boolean {\n return this._selected;\n }\n\n private _selected = false;\n\n get viewValue(): string {\n return this._viewValue ?? this.value;\n }\n\n readonly onSelectionChange = new EventEmitter<KbqOptionSelectionChange<KbqVirtualOption>>();\n\n constructor(\n public value: any,\n private _disabled: boolean = false,\n private readonly _viewValue?: string\n ) {\n super();\n }\n\n select(): void {\n if (!this._selected) {\n this._selected = true;\n\n this.emitSelectionChangeEvent();\n }\n }\n\n deselect(): void {\n if (this._selected) {\n this._selected = false;\n\n this.emitSelectionChangeEvent();\n }\n }\n}\n\n/**\n * Single option inside of a `<kbq-select>` element.\n */\n@Component({\n selector: 'kbq-option',\n imports: [\n KbqPseudoCheckboxModule\n ],\n templateUrl: 'option.html',\n /* Component inherits styles from `list`, so `list` variables are imported as the single source of truth. */\n styleUrls: ['option.scss', 'option-tokens.scss'],\n providers: [\n {\n provide: KBQ_TITLE_TEXT_REF,\n useExisting: KbqOption\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[attr.tabindex]': 'getTabIndex()',\n class: 'kbq-option',\n '[class.kbq-selected]': 'selected',\n '[class.kbq-option-multiple]': 'multiple',\n '[class.kbq-active]': 'active',\n '[class.kbq-disabled]': 'disabled',\n '[id]': 'id',\n\n '(click)': 'handleClick($event)',\n '(mouseenter)': 'onMouseenter()',\n '(keydown)': 'handleKeydown($event)'\n },\n exportAs: 'kbqOption'\n})\nexport class KbqOption extends KbqOptionBase implements AfterViewChecked, OnDestroy, KbqTitleTextRef {\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n protected readonly parent = inject<KbqOptionParentComponent>(KBQ_OPTION_PARENT_COMPONENT, { optional: true })!;\n readonly group = inject(KbqOptgroup, { optional: true });\n @ViewChild('kbqTitleText', { static: false }) textElement: ElementRef;\n\n /** The form value of the option. */\n // TODO: Skipped for migration because:\n // Your application code writes to the input. This prevents migration.\n @Input() value: any;\n\n readonly selectable = input<boolean, unknown>(true, { transform: booleanAttribute });\n\n // todo this flag will need to be rethought in the future (added for filter panel)\n readonly userSelect = input<boolean, unknown>(false, { transform: booleanAttribute });\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get showCheckbox() {\n return this._showCheckbox === undefined ? this.multiple : this._showCheckbox;\n }\n\n set showCheckbox(value) {\n this._showCheckbox = coerceBooleanProperty(value);\n }\n\n private _showCheckbox: boolean;\n\n /** Event emitted when the option is selected or deselected. */\n @Output() readonly onSelectionChange = new EventEmitter<KbqOptionSelectionChange>();\n\n /** Emits when the state of the option changes and any parents have to be notified. */\n readonly stateChanges = new Subject<void>();\n\n /**\n * The displayed value of the option. It is necessary to show the selected option in the\n * select's trigger.\n */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get viewValue(): string {\n return this._viewValue || (this.getHostElement().textContent || '').trim();\n }\n\n set viewValue(value: string) {\n this._viewValue = value;\n }\n\n private _viewValue: string;\n\n /** Whether the wrapping component is in multiple selection mode. */\n get multiple(): boolean {\n return !!this.parent?.multiSelection;\n }\n\n get id(): string {\n return this._id;\n }\n\n private _id = `kbq-option-${uniqueIdCounter++}`;\n\n get selected(): boolean {\n return this._selected;\n }\n\n private _selected = false;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get disabled() {\n return (this.group && this.group.disabled) || this._disabled;\n }\n\n set disabled(value: any) {\n this._disabled = coerceBooleanProperty(value);\n }\n\n private _disabled = false;\n\n /**\n * Whether or not the option is currently active and ready to be selected.\n * An active option displays styles as if it is focused, but the\n * focus is actually retained somewhere else. This comes in handy\n * for components like autocomplete where focus must remain on the input.\n */\n get active(): boolean {\n return this._active;\n }\n\n private _active = false;\n\n private mostRecentViewValue = '';\n\n /**\n * Flag that indicates whether the component is currently focused by a mouse interaction.\n *\n * When set to `true`, the component has focus resulting from a mouse click or\n * other pointer event. It is automatically cleared when the component loses\n * focus or if focus is obtained through keyboard navigation or programmatic means.\n */\n private isFocusedByMouse: boolean = false;\n\n ngAfterViewChecked() {\n // Since parent components could be using the option's label to display the selected values\n // (e.g. `kbq-select`) and they don't have a way of knowing if the option's label has changed\n // we have to check for changes in the DOM ourselves and dispatch an event. These checks are\n // relatively cheap, however we still limit them only to selected options in order to avoid\n // hitting the DOM too often.\n if (this._selected) {\n const viewValue = this.viewValue;\n\n if (viewValue !== this.mostRecentViewValue) {\n this.mostRecentViewValue = viewValue;\n this.stateChanges.next();\n }\n }\n }\n\n ngOnDestroy() {\n this.stateChanges.complete();\n }\n\n /** @docs-private */\n getHeight(): number {\n const element = this.elementRef.nativeElement;\n\n // For SSR compatibility\n if (typeof element.getClientRects !== 'function') return 0;\n\n return element.getClientRects()[0]?.height ?? 0;\n }\n\n select(emitEvent: boolean = true): void {\n if (!this._selected) {\n this._selected = true;\n\n this.changeDetectorRef.markForCheck();\n if (emitEvent) this.emitSelectionChangeEvent();\n }\n }\n\n deselect(emitEvent: boolean = true): void {\n if (this._selected) {\n this._selected = false;\n\n this.changeDetectorRef.markForCheck();\n if (emitEvent) this.emitSelectionChangeEvent();\n }\n }\n\n focus(): void {\n const element = this.getHostElement();\n\n if (typeof element.focus === 'function') {\n element.focus({ preventScroll: this.isFocusedByMouse });\n\n this.isFocusedByMouse = false;\n }\n }\n\n /**\n * This method sets display styles on the option to make it appear\n * active. This is used by the ActiveDescendantKeyManager so key\n * events will display the proper options as active on arrow key events.\n */\n setActiveStyles(): void {\n if (!this._active) {\n this._active = true;\n this.changeDetectorRef.markForCheck();\n }\n }\n\n /**\n * This method removes display styles on the option that made it appear\n * active. This is used by the ActiveDescendantKeyManager so key\n * events will display the proper options as active on arrow key events.\n */\n setInactiveStyles(): void {\n if (this._active) {\n this._active = false;\n this.changeDetectorRef.markForCheck();\n }\n }\n\n /** Gets the label to be used when determining whether the option should be focused. */\n getLabel(): string {\n return this.viewValue;\n }\n\n /** @docs-private */\n handleClick(event: MouseEvent): void {\n if (hasModifierKey(event, 'shiftKey')) {\n this.parent.setSelectedOptionsByClick(this);\n } else {\n this.selectViaInteraction();\n }\n }\n\n /** Ensures the option is selected when activated from the keyboard. */\n handleKeydown(event: KeyboardEvent): void {\n if (event.keyCode === ENTER || event.keyCode === SPACE) {\n this.selectViaInteraction();\n\n // Prevent the page from scrolling down and form submits.\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n /**\n * `Selects the option while indicating the selection came from the user. Used to\n * determine if the select's view -> model callback should be invoked.`\n */\n selectViaInteraction(): void {\n if (this.userSelect()) return;\n\n if (!this.disabled && this.selectable()) {\n this._selected = this.multiple ? !this._selected : true;\n\n this.changeDetectorRef.markForCheck();\n this.emitSelectionChangeEvent(true);\n }\n }\n\n getTabIndex(): string {\n return this.disabled ? '-1' : '0';\n }\n\n getHostElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n /** @docs-private */\n protected onMouseenter() {\n if (this.disabled) return;\n\n this.isFocusedByMouse = true;\n\n this.parent?.keyManager?.setActiveItem(this);\n }\n}\n\n/**\n * Counts the amount of option group labels that precede the specified option.\n * @param optionIndex Index of the option at which to start counting.\n * @param options Flat list of all of the options.\n * @param optionGroups Flat list of all of the option groups.\n * @docs-private\n */\nexport function countGroupLabelsBeforeOption(\n optionIndex: number,\n options: QueryList<KbqOption>,\n optionGroups: QueryList<KbqOptgroup>\n): number {\n if (optionGroups.length) {\n const optionsArray = options.toArray();\n const groups = optionGroups.toArray();\n\n let groupCounter = 0;\n\n for (let i = 0; i < optionIndex + 1; i++) {\n if (optionsArray[i].group && optionsArray[i].group === groups[groupCounter]) {\n groupCounter++;\n }\n }\n\n return groupCounter;\n }\n\n return 0;\n}\n\n/**\n * Determines the position to which to scroll a panel in order for an option to be into view.\n * @param optionIndex Index of the option to be scrolled into the view.\n * @param optionHeight Height of the options.\n * @param currentScrollPosition Current scroll position of the panel.\n * @param panelHeight Height of the panel.\n * @docs-private\n */\nexport function getOptionScrollPosition(\n optionIndex: number,\n optionHeight: number,\n currentScrollPosition: number,\n panelHeight: number\n): number {\n const optionOffset = optionIndex * optionHeight;\n\n if (optionOffset < currentScrollPosition) {\n return optionOffset;\n }\n\n if (optionOffset + optionHeight > currentScrollPosition + panelHeight) {\n return Math.max(0, optionOffset - panelHeight + optionHeight);\n }\n\n return currentScrollPosition;\n}\n","@if (showCheckbox) {\n <ng-content select=\"kbq-pseudo-checkbox\">\n <kbq-pseudo-checkbox [disabled]=\"disabled\" [state]=\"selected ? 'checked' : 'unchecked'\" />\n </ng-content>\n}\n\n<span #kbqTitleText class=\"kbq-option-text\">\n <ng-content />\n</span>\n","import { NgModule } from '@angular/core';\nimport { KbqPseudoCheckbox } from '../selection';\nimport { KbqOptionActionComponent } from './action';\nimport { KbqOptgroup } from './optgroup';\nimport { KbqOption } from './option';\n\n@NgModule({\n imports: [KbqPseudoCheckbox, KbqOption, KbqOptgroup, KbqOptionActionComponent],\n exports: [KbqOption, KbqOptgroup, KbqOptionActionComponent]\n})\nexport class KbqOptionModule {}\n","import { SharedResizeObserver } from '@angular/cdk/observers/private';\nimport {\n afterNextRender,\n DestroyRef,\n Directive,\n inject,\n InjectionToken,\n input,\n numberAttribute,\n OnInit,\n signal\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { fromEvent, Observable } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { kbqInjectNativeElement } from '../utils';\n\n/** Shadow visibility state — which of the two shadows should be rendered. */\nexport interface KbqOverflowShadowState {\n /** Whether the top (header) shadow should be visible — content is scrolled past the top. */\n top: boolean;\n /** Whether the bottom (footer) shadow should be visible — more content remains below the fold. */\n bottom: boolean;\n}\n\n/**\n * Source of scroll events and scroll metrics. Can be provided by a component that wraps\n * the scrollable element (e.g. `KbqScrollbar`) so that `KbqOverflowShadowContainer` does\n * not have to subscribe to the native `scroll` event directly.\n */\nexport interface KbqOverflowShadowSource {\n /** Emits whenever the wrapped element scrolls. */\n readonly onScroll: Observable<unknown>;\n /** The element whose `scrollTop`/`clientHeight`/`scrollHeight` drive the shadows, or `null` if not ready yet. */\n getScrollElement(): HTMLElement | null;\n}\n\n/**\n * DI token a scrollable wrapper component can provide to expose itself as the scroll source\n * for a co-located `KbqOverflowShadowContainer` (see `KbqScrollbar`).\n */\nexport const KBQ_OVERFLOW_SHADOW_SOURCE = new InjectionToken<KbqOverflowShadowSource>('KBQ_OVERFLOW_SHADOW_SOURCE');\n\n/**\n * Container directive that sits on the scrollable element. Listens for scroll events and\n * keeps the `overflow` signal up to date, which is then read by `KbqOverflowShadowTop` and\n * `KbqOverflowShadowBottom`.\n *\n * The scroll source is auto-detected: if `KBQ_OVERFLOW_SHADOW_SOURCE` is provided in the\n * host's DI, that source is used; otherwise the native `scroll` event on the host element\n * is observed.\n *\n * In addition to scroll events, the directive observes the scroll source's box-size changes\n * via CDK's `SharedResizeObserver` — this covers layout changes that happen without a scroll\n * and alter the viewport size (modal open/close animation, window resize, reflow that resizes\n * the element). Content that only grows `scrollHeight` without changing the element's box size\n * is not detected by the resize observer; call `checkOverflow()` manually for those cases.\n */\n@Directive({\n selector: '[kbqOverflowShadowContainer]',\n exportAs: 'kbqOverflowShadowContainer'\n})\nexport class KbqOverflowShadowContainer implements OnInit {\n private readonly destroyRef = inject(DestroyRef);\n private readonly hostElement = kbqInjectNativeElement();\n private readonly externalSource = inject(KBQ_OVERFLOW_SHADOW_SOURCE, { optional: true, self: true });\n private readonly sharedResizeObserver = inject(SharedResizeObserver);\n\n /** Optional debounce for scroll events, in milliseconds. Default is 0. */\n readonly debounce = input(0, { transform: numberAttribute });\n\n /** Current shadow state. Updated on every scroll event. */\n readonly overflow = signal<KbqOverflowShadowState>({ top: false, bottom: false });\n\n constructor() {\n afterNextRender(() => {\n this.checkOverflow();\n this.observeResize();\n });\n }\n\n ngOnInit(): void {\n const source$ = this.externalSource\n ? this.externalSource.onScroll\n : fromEvent(this.hostElement, 'scroll', { passive: true });\n\n const stream$ = this.debounce() > 0 ? source$.pipe(debounceTime(this.debounce())) : source$;\n\n stream$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => this.checkOverflow());\n }\n\n /**\n * Force-rechecks overflow and updates the signal. Calling this manually is normally not\n * necessary — scroll events plus `SharedResizeObserver` cover the standard scenarios. Kept\n * for rare cases when external code knows about a layout change more precisely than the\n * browser observers (e.g. content that only grows `scrollHeight`).\n */\n checkOverflow(): void {\n const source = this.getScrollSource();\n\n if (!source) return;\n\n // `clientHeight` (content-box) is the visible scroll-viewport height. `Math.round` on the\n // bottom comparison absorbs sub-pixel scroll metrics (HiDPI / browser zoom) so the bottom\n // shadow reliably clears at the very bottom instead of lingering on a fractional gap.\n const { scrollTop, clientHeight, scrollHeight } = source;\n\n this.overflow.set({\n top: scrollTop > 0,\n bottom: Math.round(scrollTop + clientHeight) < scrollHeight\n });\n }\n\n private getScrollSource(): HTMLElement | null {\n return this.externalSource ? this.externalSource.getScrollElement() : this.hostElement;\n }\n\n private observeResize(): void {\n const source = this.getScrollSource();\n\n if (!source) return;\n\n this.sharedResizeObserver\n .observe(source)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.checkOverflow());\n }\n}\n\n/**\n * Marker directive for the top-shadow indicator. Linked to the container directive via a\n * template ref: `<header [kbqOverflowShadowTop]=\"containerRef\">`.\n *\n * Sets an inline `box-shadow` on the host element using the value from the `shadow` input\n * (the Koobiq token by default). Consumers can override the shadow from the outside by\n * overriding the token `--kbq-shadow-overflow-normal-bottom` (or whichever token is passed\n * via the `shadow` input) in the relevant cascade scope.\n */\n@Directive({\n selector: '[kbqOverflowShadowTop]',\n host: {\n '[style.box-shadow]': 'ref()?.overflow()?.top ? shadow() : null'\n },\n exportAs: 'kbqOverflowShadowTop'\n})\nexport class KbqOverflowShadowTop {\n /**\n * Reference to the container directive. May be `undefined` if the container has not\n * been rendered yet (e.g. the indicator lives in one @if block and the container in\n * another).\n */\n readonly ref = input<KbqOverflowShadowContainer | undefined>(undefined, { alias: 'kbqOverflowShadowTop' });\n\n /** Value of `box-shadow` when the shadow is active. Defaults to the standard Koobiq token. */\n readonly shadow = input<string>('var(--kbq-shadow-overflow-normal-bottom)');\n}\n\n/**\n * Marker directive for the bottom-shadow indicator. Linked to the container directive via a\n * template ref: `<footer [kbqOverflowShadowBottom]=\"containerRef\">`.\n *\n * Sets an inline `box-shadow` on the host element. See {@link KbqOverflowShadowTop}.\n */\n@Directive({\n selector: '[kbqOverflowShadowBottom]',\n host: {\n '[style.box-shadow]': 'ref()?.overflow()?.bottom ? shadow() : null'\n },\n exportAs: 'kbqOverflowShadowBottom'\n})\nexport class KbqOverflowShadowBottom {\n /** Reference to the container directive. See {@link KbqOverflowShadowTop.ref}. */\n readonly ref = input<KbqOverflowShadowContainer | undefined>(undefined, { alias: 'kbqOverflowShadowBottom' });\n\n /** Value of `box-shadow` when the shadow is active. Defaults to the standard Koobiq token. */\n readonly shadow = input<string>('var(--kbq-shadow-overflow-normal-top)');\n}\n","import { ConnectionPositionPair, Overlay, ScrollStrategy } from '@angular/cdk/overlay';\nimport { InjectionToken } from '@angular/core';\n\nexport const POSITION_MAP: { [key: string]: ConnectionPositionPair } = {\n top: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom'\n },\n topCenter: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom'\n },\n topLeft: {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom'\n },\n topRight: {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom'\n },\n right: {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center'\n },\n rightTop: {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top'\n },\n rightBottom: {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom'\n },\n bottom: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top'\n },\n bottomCenter: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top'\n },\n bottomLeft: {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n },\n bottomRight: {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top'\n },\n left: {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center'\n },\n leftTop: {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top'\n },\n leftBottom: {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom'\n }\n};\n\nexport const EXTENDED_OVERLAY_POSITIONS = objectValues([\n POSITION_MAP.top,\n POSITION_MAP.topLeft,\n POSITION_MAP.topRight,\n POSITION_MAP.right,\n POSITION_MAP.rightTop,\n POSITION_MAP.rightBottom,\n POSITION_MAP.bottom,\n POSITION_MAP.bottomLeft,\n POSITION_MAP.bottomRight,\n POSITION_MAP.left,\n POSITION_MAP.leftTop,\n POSITION_MAP.leftBottom\n]);\n\nexport const TOP_POSITION_PRIORITY = objectValues([\n POSITION_MAP.top,\n POSITION_MAP.bottom,\n POSITION_MAP.right,\n POSITION_MAP.rightBottom,\n POSITION_MAP.leftBottom,\n POSITION_MAP.bottomLeft,\n POSITION_MAP.bottomRight\n]);\n\nexport const BOTTOM_POSITION_PRIORITY = objectValues([\n POSITION_MAP.bottom,\n POSITION_MAP.top,\n POSITION_MAP.topLeft,\n POSITION_MAP.topRight,\n POSITION_MAP.rightBottom,\n POSITION_MAP.leftBottom\n]);\n\nexport const RIGHT_POSITION_PRIORITY = objectValues([\n POSITION_MAP.right,\n POSITION_MAP.left,\n POSITION_MAP.leftTop,\n POSITION_MAP.leftBottom,\n POSITION_MAP.top,\n POSITION_MAP.bottom\n]);\n\nexport const LEFT_POSITION_PRIORITY = objectValues([\n POSITION_MAP.left,\n POSITION_MAP.right,\n POSITION_MAP.rightTop,\n POSITION_MAP.rightBottom,\n POSITION_MAP.top,\n POSITION_MAP.bottom\n]);\n\nexport const RIGHT_TOP_POSITION_PRIORITY = objectValues([\n POSITION_MAP.rightTop,\n POSITION_MAP.leftTop,\n POSITION_MAP.left,\n POSITION_MAP.leftBottom,\n POSITION_MAP.topLeft,\n POSITION_MAP.bottomLeft\n]);\n\nexport const RIGHT_BOTTOM_POSITION_PRIORITY = objectValues([\n POSITION_MAP.rightBottom,\n POSITION_MAP.leftBottom,\n POSITION_MAP.left,\n POSITION_MAP.leftTop,\n POSITION_MAP.topLeft,\n POSITION_MAP.bottomLeft\n]);\n\nexport const LEFT_TOP_POSITION_PRIORITY = objectValues([\n POSITION_MAP.leftTop,\n POSITION_MAP.rightTop,\n POSITION_MAP.right,\n POSITION_MAP.rightBottom,\n POSITION_MAP.topRight,\n POSITION_MAP.bottomRight\n]);\n\nexport const LEFT_BOTTOM_POSITION_PRIORITY = objectValues([\n POSITION_MAP.leftBottom,\n POSITION_MAP.rightBottom,\n POSITION_MAP.right,\n POSITION_MAP.rightTop,\n POSITION_MAP.topRight,\n POSITION_MAP.bottomRight\n]);\n\nexport const TOP_LEFT_POSITION_PRIORITY = objectValues([\n POSITION_MAP.topLeft,\n POSITION_MAP.topRight,\n POSITION_MAP.bottomLeft,\n POSITION_MAP.bottom,\n POSITION_MAP.bottomRight,\n POSITION_MAP.leftBottom,\n POSITION_MAP.rightBottom\n]);\n\nexport const TOP_RIGHT_POSITION_PRIORITY = objectValues([\n POSITION_MAP.topRight,\n POSITION_MAP.topLeft,\n POSITION_MAP.bottomRight,\n POSITION_MAP.bottom,\n POSITION_MAP.bottomLeft,\n POSITION_MAP.leftBottom,\n POSITION_MAP.rightBottom\n]);\n\nexport const BOTTOM_RIGHT_POSITION_PRIORITY = objectValues([\n POSITION_MAP.bottomRight,\n POSITION_MAP.bottomLeft,\n POSITION_MAP.topRight,\n POSITION_MAP.top,\n POSITION_MAP.topLeft,\n POSITION_MAP.leftTop,\n POSITION_MAP.rightTop\n]);\n\nexport const BOTTOM_LEFT_POSITION_PRIORITY = objectValues([\n POSITION_MAP.bottomLeft,\n POSITION_MAP.bottomRight,\n POSITION_MAP.topLeft,\n POSITION_MAP.top,\n POSITION_MAP.topRight,\n POSITION_MAP.rightTop,\n POSITION_MAP.leftTop\n]);\n\nexport const POSITION_PRIORITY_STRATEGY = {\n top: TOP_POSITION_PRIORITY,\n topLeft: TOP_LEFT_POSITION_PRIORITY,\n topRight: TOP_RIGHT_POSITION_PRIORITY,\n bottom: BOTTOM_POSITION_PRIORITY,\n bottomLeft: BOTTOM_LEFT_POSITION_PRIORITY,\n bottomRight: BOTTOM_RIGHT_POSITION_PRIORITY,\n left: LEFT_POSITION_PRIORITY,\n leftTop: LEFT_TOP_POSITION_PRIORITY,\n leftBottom: LEFT_BOTTOM_POSITION_PRIORITY,\n right: RIGHT_POSITION_PRIORITY,\n rightTop: RIGHT_TOP_POSITION_PRIORITY,\n rightBottom: RIGHT_BOTTOM_POSITION_PRIORITY\n};\n\nexport const POSITION_TO_CSS_MAP: { [key: string]: string } = {\n top: 'top',\n topLeft: 'top-left',\n topRight: 'top-right',\n right: 'right',\n rightTop: 'right-top',\n rightBottom: 'right-bottom',\n left: 'left',\n leftTop: 'left-top',\n leftBottom: 'left-bottom',\n bottom: 'bottom',\n bottomLeft: 'bottom-left',\n bottomRight: 'bottom-right'\n};\n\nexport const KBQ_CUSTOM_SCROLL_STRATEGY_PROVIDER = <T>(\n token: InjectionToken<T>,\n factory: (overlay: Overlay) => () => ScrollStrategy\n) => ({\n provide: token,\n deps: [Overlay],\n useFactory: factory\n});\n\nfunction arrayMap<T, S>(array: T[], iteratee: (item: T, index: number, arr: T[]) => S): S[] {\n let index = -1;\n const length = array === null ? 0 : array.length;\n const result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n\n return result;\n}\n\nfunction baseValues<T>(object: T[], props: string[]): T[] {\n return arrayMap(props, (key) => object[key]);\n}\n\nfunction objectValues<T>(object: T[]): T[] {\n return object === null ? [] : baseValues(object, Object.keys(object));\n}\n","import { InjectionToken } from '@angular/core';\nimport { TooltipSizeArrowSize } from '@koobiq/design-tokens';\nimport { Observable } from 'rxjs';\nimport { KbqEnumValues } from '../utils';\n\nexport interface KbqParentPopup {\n closedStream: Observable<boolean>;\n}\n\n/**\n * InjectionToken for providing component with popup. Used in select and tree-select for tooltip.\n */\nexport const KBQ_PARENT_POPUP = new InjectionToken<KbqParentPopup>('kbq-parent-popup');\n\nexport enum PopUpPlacements {\n Top = 'top',\n TopLeft = 'topLeft',\n TopRight = 'topRight',\n Right = 'right',\n RightTop = 'rightTop',\n RightBottom = 'rightBottom',\n Left = 'left',\n LeftTop = 'leftTop',\n LeftBottom = 'leftBottom',\n Bottom = 'bottom',\n BottomLeft = 'bottomLeft',\n BottomRight = 'bottomRight'\n}\n\nexport type KbqPopUpPlacementValues = KbqEnumValues<PopUpPlacements>;\n\nexport type KbqStickToWindowPlacementValues = KbqEnumValues<\n PopUpPlacements.Top | PopUpPlacements.Right | PopUpPlacements.Bottom | PopUpPlacements.Left\n>;\n\nexport enum PopUpVisibility {\n Initial = 'initial',\n Visible = 'visible',\n Hidden = 'hidden'\n}\n\nexport enum PopUpTriggers {\n Click = 'click',\n Focus = 'focus',\n Hover = 'hover',\n Keydown = 'keydown',\n Program = 'program'\n}\n\nexport enum PopUpSizes {\n Small = 'small',\n Medium = 'medium',\n Large = 'large',\n Custom = 'custom'\n}\n\nexport type KbqPopUpSizeValues = KbqEnumValues<PopUpSizes>;\n\n/**\n * Default value when configuring overlay in popups (Autocomplete, Datepicker, Dropdown, Select, Tags Autocomplete,\n * Tags Input, Timezone, TreeSelect).\n */\nexport const defaultOffsetY: number = 4;\n\n/**\n * Variable used for offsetY(X) calculations when applying Angular Overlay\n *\n * @docs-private\n */\nexport const ARROW_BOTTOM_MARGIN_AND_HALF_HEIGHT = Math.round(parseInt(TooltipSizeArrowSize) * Math.sqrt(2));\n","import { FocusTrapInertStrategy } from '@angular/cdk/a11y';\n\n// Need replace EventListenerFocusTrapInertStrategy to EmptyFocusTrapStrategy for focus work correctly with open popover\nexport class EmptyFocusTrapStrategy implements FocusTrapInertStrategy {\n preventFocus(): void {}\n allowFocus(): void {}\n}\n","import { AnimationEvent } from '@angular/animations';\nimport { coerceCssPixelValue } from '@angular/cdk/coercion';\nimport {\n ChangeDetectorRef,\n DestroyRef,\n Directive,\n ElementRef,\n EventEmitter,\n inject,\n OnDestroy,\n Renderer2,\n TemplateRef\n} from '@angular/core';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { PopUpPlacements, PopUpVisibility } from './constants';\nimport { KbqPopUpTrigger } from './pop-up-trigger';\n\n@Directive({\n host: {\n '(mouseenter)': 'hovered.next(true)',\n '(mouseleave)': 'hovered.next(false)'\n }\n})\nexport abstract class KbqPopUp implements OnDestroy {\n protected readonly renderer: Renderer2 = inject(Renderer2);\n protected readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n protected readonly changeDetectorRef: ChangeDetectorRef = inject(ChangeDetectorRef);\n readonly destroyRef = inject(DestroyRef);\n\n /** Stream that emits when the popup item is hovered. */\n readonly hovered = new BehaviorSubject<boolean>(false);\n\n trigger: KbqPopUpTrigger<unknown>;\n header: string | TemplateRef<any>;\n content: string | TemplateRef<any>;\n context: { $implicit: any } | null;\n\n classMap = {};\n\n warning: boolean;\n arrow: boolean;\n defaultPaddings: boolean;\n\n offset: number | null;\n\n visibility = PopUpVisibility.Initial;\n visibleChange = new EventEmitter<boolean>();\n\n protected prefix: string;\n\n /** Subject for notifying that the tooltip has been hidden from the view */\n protected readonly onHideSubject = new Subject<void>();\n\n protected closeOnInteraction: boolean = false;\n\n private showTimeoutId: any;\n private hideTimeoutId: any;\n\n ngOnDestroy() {\n clearTimeout(this.showTimeoutId);\n clearTimeout(this.hideTimeoutId);\n\n this.onHideSubject.complete();\n this.hovered.complete();\n }\n\n isTemplateRef(value: any): boolean {\n return value instanceof TemplateRef;\n }\n\n show(delay: number): void {\n if (this.hideTimeoutId) {\n clearTimeout(this.hideTimeoutId);\n }\n\n this.closeOnInteraction = true;\n\n this.showTimeoutId = setTimeout(() => {\n this.showTimeoutId = undefined;\n\n this.visibility = PopUpVisibility.Visible;\n this.visibleChange.emit(true);\n // Mark for check so if any parent component has set the\n // ChangeDetectionStrategy to OnPush it will be checked anyways\n this.markForCheck();\n\n if (this.trigger.triggerName === 'mouseenter') {\n this.addEventListenerForHide();\n }\n }, delay);\n }\n\n /**\n * Hides the popup after a specified delay.\n *\n * The hide timeout triggers the hiding of the popup by updating visibility and emitting relevant events.\n * Also, it marks for check to ensure proper change detection, especially for parent components with OnPush strategy.\n * @param delay - The delay in milliseconds before hiding the popup.\n */\n hide(delay: number): void {\n if (this.showTimeoutId) {\n clearTimeout(this.showTimeoutId);\n }\n\n this.hideTimeoutId = setTimeout(() => {\n this.hideTimeoutId = undefined;\n this.visibility = PopUpVisibility.Hidden;\n\n this.visibleChange.emit(false);\n this.onHideSubject.next();\n\n // Mark for check so if any parent component has set the\n // ChangeDetectionStrategy to OnPush it will be checked anyways\n this.markForCheck();\n }, delay);\n }\n\n isVisible(): boolean {\n return this.visibility === PopUpVisibility.Visible;\n }\n\n updateClassMap(placement: string, customClass: string, classMap?): void {\n // `customClass` may be a whitespace-separated list of class names; expand it into\n // individual keys so the native `[class]` binding (which doesn't tokenise object keys)\n // applies each class correctly.\n const customClasses: Record<string, boolean> = {};\n\n for (const token of (customClass ?? '').split(/\\s+/).filter(Boolean)) {\n customClasses[token] = true;\n }\n\n this.classMap = {\n [`${this.prefix}_placement-${placement}`]: true,\n ...customClasses,\n ...classMap\n };\n }\n\n /** Returns an observable that notifies when the tooltip has been hidden from view. */\n afterHidden(): Observable<void> {\n return this.onHideSubject.asObservable();\n }\n\n markForCheck(): void {\n this.changeDetectorRef.markForCheck();\n }\n\n detectChanges(): void {\n this.changeDetectorRef.detectChanges();\n }\n\n animationStart() {\n this.closeOnInteraction = false;\n }\n\n animationDone({ toState }: AnimationEvent): void {\n if (toState === PopUpVisibility.Hidden && !this.isVisible()) {\n this.onHideSubject.next();\n }\n\n if (toState === PopUpVisibility.Visible || toState === PopUpVisibility.Hidden) {\n this.closeOnInteraction = true;\n }\n }\n\n handleBodyInteraction(): void {\n if (this.closeOnInteraction) {\n this.hide(0);\n }\n }\n\n protected addEventListenerForHide() {\n this.elementRef.nativeElement.addEventListener('mouseleave', () => this.hide(0));\n }\n\n protected setStickPosition() {\n const oppositeSide = {\n [PopUpPlacements.Top]: PopUpPlacements.Bottom,\n [PopUpPlacements.Bottom]: PopUpPlacements.Top,\n [PopUpPlacements.Right]: PopUpPlacements.Left,\n [PopUpPlacements.Left]: PopUpPlacements.Right\n }[this.trigger.stickToWindow];\n\n if (!this.trigger.stickToWindow || !oppositeSide) return;\n\n this.arrow = false;\n\n if (this.trigger.container) {\n const { width, height } = this.elementRef.nativeElement.getBoundingClientRect();\n const { right, left, top, bottom } = this.trigger.container.getBoundingClientRect();\n\n if (this.trigger.stickToWindow === PopUpPlacements.Right) {\n this.renderer.setStyle(\n this.trigger.overlayRef?.overlayElement,\n 'left',\n coerceCssPixelValue(right - width)\n );\n } else if (this.trigger.stickToWindow === PopUpPlacements.Left) {\n this.renderer.setStyle(this.trigger.overlayRef?.overlayElement, 'left', coerceCssPixelValue(left));\n } else if (this.trigger.stickToWindow === PopUpPlacements.Top) {\n this.renderer.setStyle(this.trigger.overlayRef?.overlayElement, 'top', coerceCssPixelValue(top));\n } else if (this.trigger.stickToWindow === PopUpPlacements.Bottom) {\n this.renderer.setStyle(\n this.trigger.overlayRef?.overlayElement,\n 'top',\n coerceCssPixelValue(bottom - height)\n );\n }\n\n this.renderer.setStyle(this.trigger.overlayRef?.overlayElement, 'right', 'unset');\n this.renderer.setStyle(this.trigger.overlayRef?.overlayElement, 'bottom', 'unset');\n } else {\n this.renderer.setStyle(this.trigger.overlayRef?.overlayElement, this.trigger.stickToWindow, 0);\n this.renderer.setStyle(this.trigger.overlayRef?.overlayElement, oppositeSide, 'unset');\n }\n }\n}\n","import { Renderer2 } from '@angular/core';\n\nexport const applyPopupMargins = (renderer: Renderer2, element: HTMLElement, name: string, value: string) => {\n const classList = element.classList;\n\n if (\n classList.contains(`${name}_placement-top`) ||\n classList.contains(`${name}_placement-top-left`) ||\n classList.contains(`${name}_placement-top-right`)\n ) {\n renderer.setStyle(element, 'margin-bottom', value);\n }\n\n if (\n classList.contains(`${name}_placement-right`) ||\n classList.contains(`${name}_placement-right-top`) ||\n classList.contains(`${name}_placement-right-bottom`)\n ) {\n renderer.setStyle(element, 'margin-left', value);\n }\n\n if (\n classList.contains(`${name}_placement-bottom`) ||\n classList.contains(`${name}_placement-bottom-left`) ||\n classList.contains(`${name}_placement-bottom-right`)\n ) {\n renderer.setStyle(element, 'margin-top', value);\n }\n\n if (\n classList.contains(`${name}_placement-left`) ||\n classList.contains(`${name}_placement-left-top`) ||\n classList.contains(`${name}_placement-left-bottom`)\n ) {\n renderer.setStyle(element, 'margin-right', value);\n }\n};\n","import { Directionality } from '@angular/cdk/bidi';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n CdkScrollable,\n ConnectedOverlayPositionChange,\n ConnectionPositionPair,\n FlexibleConnectedPositionStrategy,\n Overlay,\n OverlayConfig,\n OverlayRef,\n ScrollDispatcher,\n ScrollStrategy\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectorRef,\n DestroyRef,\n Directive,\n ElementRef,\n EventEmitter,\n inject,\n NgZone,\n OnDestroy,\n OnInit,\n TemplateRef,\n Type,\n ViewContainerRef\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BehaviorSubject, interval, Observable, Subscription } from 'rxjs';\nimport { AsyncScheduler } from 'rxjs/internal/scheduler/AsyncScheduler';\nimport { distinctUntilChanged, filter, delay as rxDelay } from 'rxjs/operators';\nimport { ENTER, ESCAPE, SPACE } from '../keycodes';\nimport {\n EXTENDED_OVERLAY_POSITIONS,\n POSITION_MAP,\n POSITION_PRIORITY_STRATEGY,\n POSITION_TO_CSS_MAP\n} from '../overlay/overlay-position-map';\nimport {\n ARROW_BOTTOM_MARGIN_AND_HALF_HEIGHT,\n KbqPopUpPlacementValues,\n KbqStickToWindowPlacementValues,\n PopUpPlacements,\n PopUpTriggers\n} from './constants';\nimport { KbqPopUp } from './pop-up';\n\ntype KbqPopupTriggerOffset = Pick<ConnectionPositionPair, 'offsetX' | 'offsetY'>;\n\nconst getOffset = (\n { originX, overlayX, originY, overlayY }: ConnectionPositionPair,\n { width, height }: DOMRect\n): KbqPopupTriggerOffset => {\n const offset: KbqPopupTriggerOffset = {};\n const elementWidthHalf = width / 2;\n const elementHeightHalf = height / 2;\n\n // alignment should be applied only if the element is small\n if (ARROW_BOTTOM_MARGIN_AND_HALF_HEIGHT > elementWidthHalf) {\n const PADDING = ARROW_BOTTOM_MARGIN_AND_HALF_HEIGHT - elementWidthHalf;\n\n if (originX === overlayX) {\n if (originX === 'start') {\n offset.offsetX = -PADDING;\n }\n\n if (originX === 'end') {\n offset.offsetX = PADDING;\n }\n }\n }\n\n // alignment should be applied only if the element is small\n if (ARROW_BOTTOM_MARGIN_AND_HALF_HEIGHT > elementHeightHalf) {\n const PADDING = ARROW_BOTTOM_MARGIN_AND_HALF_HEIGHT - elementHeightHalf;\n\n if (originY === overlayY) {\n if (originY === 'top') {\n offset.offsetY = -PADDING;\n }\n\n if (originY === 'bottom') {\n offset.offsetY = PADDING;\n }\n }\n }\n\n return offset;\n};\n\n@Directive({\n host: {\n '(mouseenter)': 'hovered.next(true)',\n '(mouseleave)': 'hovered.next(false)'\n }\n})\nexport abstract class KbqPopUpTrigger<T> implements OnInit, OnDestroy {\n /** Stream that emits when the popupTrigger is hovered. */\n readonly hovered = new BehaviorSubject<boolean>(false);\n\n protected readonly scheduler = inject(AsyncScheduler, { optional: true }) || undefined;\n\n protected readonly overlay: Overlay = inject(Overlay);\n protected readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n protected readonly ngZone: NgZone = inject(NgZone);\n protected readonly scrollDispatcher: ScrollDispatcher = inject(ScrollDispatcher);\n protected readonly hostView: ViewContainerRef = inject(ViewContainerRef);\n protected readonly direction = inject(Directionality, { optional: true });\n protected readonly destroyRef = inject(DestroyRef);\n protected readonly scrollable = inject(CdkScrollable, { optional: true });\n\n protected abstract scrollStrategy: () => ScrollStrategy;\n\n /** @docs-private */\n protected externalNativeElement: HTMLElement;\n\n private popUpChangeDetectorRef = inject(ChangeDetectorRef);\n\n get isOpen(): boolean {\n return this._isOpen;\n }\n\n set isOpen(value: boolean) {\n this._isOpen = value;\n\n this.popUpChangeDetectorRef.markForCheck();\n }\n\n private _isOpen: boolean = false;\n\n enterDelay: number = 0;\n leaveDelay: number = 0;\n\n triggerName: string;\n\n overlayRef: OverlayRef | null;\n\n stickToWindow: KbqStickToWindowPlacementValues;\n\n container: HTMLElement;\n\n abstract disabled: boolean;\n abstract arrow: boolean;\n abstract trigger: string;\n abstract customClass: string;\n abstract content: string | TemplateRef<any>;\n\n abstract placementChange: EventEmitter<string>;\n abstract visibleChange: EventEmitter<boolean>;\n\n protected abstract originSelector: string;\n protected abstract overlayConfig: OverlayConfig;\n\n protected placement: KbqPopUpPlacementValues = PopUpPlacements.Top;\n protected placementPriority: string | string[] | null = null;\n\n protected visible = false;\n\n protected _content: string | TemplateRef<any>;\n protected _disabled: boolean;\n protected _customClass: string;\n\n protected portal: ComponentPortal<T>;\n protected instance: any | null;\n\n protected listeners = new Map<string, EventListener>();\n protected closingActionsSubscription: Subscription;\n\n protected readonly availablePositions: { [key: string]: ConnectionPositionPair } = POSITION_MAP;\n\n protected mouseEvent?: MouseEvent;\n protected strategy: FlexibleConnectedPositionStrategy;\n\n /** Hide pop-up with timeout. Need if you want to show pop-up after leaving trigger */\n protected hideWithTimeout: boolean = false;\n\n /** prevents closure by any event */\n protected preventClose: boolean = false;\n\n abstract updateClassMap(newPlacement?: string): void;\n\n abstract updateData(): void;\n\n abstract closingActions(): Observable<any>;\n\n abstract getOverlayHandleComponentType(): Type<T>;\n\n ngOnInit(): void {\n this.initListeners();\n }\n\n ngOnDestroy(): void {\n this.overlayRef?.dispose();\n\n this.listeners.forEach(this.removeEventListener);\n\n this.listeners.clear();\n }\n\n updatePlacement(value: KbqPopUpPlacementValues) {\n if (POSITION_TO_CSS_MAP[value]) {\n this.placement = value;\n\n this.updateClassMap();\n } else {\n this.placement = PopUpPlacements.Top;\n\n // eslint-disable-next-line no-console\n console.warn(`Unknown position: ${value}. Will used default position: ${this.placement}`);\n }\n\n if (this.visible) {\n this.updatePosition();\n }\n }\n\n updatePlacementPriority(value) {\n if (value && value.length > 0) {\n this.placementPriority = value;\n } else {\n this.placementPriority = null;\n }\n }\n\n updateVisible(externalValue: boolean) {\n const value = coerceBooleanProperty(externalValue);\n\n if (this.visible !== value) {\n this.visible = value;\n\n if (value) {\n this.show();\n } else {\n this.hide();\n }\n }\n }\n\n keydownHandler(event: KeyboardEvent) {\n if (this.isOpen && event.keyCode === ESCAPE) {\n this.hide();\n }\n }\n\n touchendHandler() {\n this.hide();\n }\n\n show(delay: number = this.enterDelay): void {\n if (this.disabled || this.instance) {\n return;\n }\n\n this.overlayRef = this.createOverlay();\n this.subscribeOnClosingActions();\n this.detach();\n\n this.portal = this.portal || new ComponentPortal(this.getOverlayHandleComponentType(), this.hostView);\n\n this.instance = this.overlayRef.attach(this.portal).instance as KbqPopUp;\n\n this.instance.trigger = this;\n\n this.instance.afterHidden().pipe(takeUntilDestroyed(this.destroyRef)).subscribe(this.detach);\n\n this.updateClassMap();\n\n this.updateData();\n\n this.instance.visibleChange\n .pipe(distinctUntilChanged(), takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n this.visible = value;\n this.visibleChange.emit(value);\n this.isOpen = value;\n });\n\n this.updatePosition();\n\n this.instance.show(delay);\n\n if (this.hideWithTimeout && this.trigger.includes(PopUpTriggers.Hover)) {\n this.ngZone.runOutsideAngular(() => {\n interval(this.leaveDelay, this.scheduler)\n .pipe(\n filter(() => this.trigger.includes(PopUpTriggers.Hover)),\n filter(() => !this.hovered.getValue() && !this.instance?.hovered.getValue()),\n takeUntilDestroyed(this.instance?.destroyRef)\n )\n .subscribe(() => this.hide());\n });\n }\n }\n\n hide(delay: number = this.leaveDelay) {\n if (this.preventClose) return;\n\n if (\n (this.instance && this.triggerName !== 'mouseleave') ||\n (this.triggerName === 'mouseleave' && !this.instance?.hovered.getValue())\n ) {\n this.ngZone.run(() => this.instance?.hide(delay));\n }\n }\n\n detach = (): void => {\n if (this.overlayRef?.hasAttached()) {\n this.overlayRef.detach();\n }\n\n this.instance = null;\n };\n\n /** Create the overlay config and position strategy */\n createOverlay(): OverlayRef {\n if (this.overlayRef) {\n return this.overlayRef;\n }\n\n // Create connected position strategy that listens for scroll events to reposition.\n this.strategy = this.overlay\n .position()\n .flexibleConnectedTo(this.getNativeElement())\n .withTransformOriginOn(this.originSelector)\n .withFlexibleDimensions(false)\n .withPositions([...EXTENDED_OVERLAY_POSITIONS])\n .withLockedPosition()\n .withScrollableContainers(this.scrollDispatcher.getAncestorScrollContainers(this.getNativeElement()));\n\n this.strategy.positionChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(this.onPositionChange);\n\n this.overlayRef = this.overlay.create({\n ...this.overlayConfig,\n direction: this.direction || undefined,\n positionStrategy: this.strategy,\n scrollStrategy: this.scrollStrategy()\n });\n\n this.subscribeOnClosingActions();\n\n this.overlayRef.detachments().pipe(takeUntilDestroyed(this.destroyRef)).subscribe(this.detach);\n\n return this.overlayRef;\n }\n\n resetOrigin() {\n this.strategy.setOrigin(this.getNativeElement());\n }\n\n onPositionChange = ($event: ConnectedOverlayPositionChange): void => {\n if (!this.instance) {\n return;\n }\n\n let newPlacement = this.placement;\n\n const { originX, originY, overlayX, overlayY } = $event.connectionPair;\n\n Object.keys(this.availablePositions).some((key) => {\n if (\n originX === this.availablePositions[key].originX &&\n originY === this.availablePositions[key].originY &&\n overlayX === this.availablePositions[key].overlayX &&\n overlayY === this.availablePositions[key].overlayY\n ) {\n newPlacement = key as PopUpPlacements;\n\n return true;\n }\n\n return false;\n });\n\n this.placementChange.emit(newPlacement);\n\n this.updateClassMap(newPlacement);\n\n this.instance.detectChanges();\n };\n\n initListeners() {\n this.clearListeners();\n\n if (this.trigger.includes(PopUpTriggers.Click)) {\n this.listeners.set(...this.createListener('click', this.show));\n }\n\n if (this.trigger.includes(PopUpTriggers.Hover)) {\n this.listeners\n .set(...this.createListener('mouseenter', this.show))\n .set(...this.createListener('mouseleave', this.getMouseLeaveListener()));\n }\n\n if (this.trigger.includes(PopUpTriggers.Focus)) {\n this.listeners\n .set(...this.createListener('focus', this.show))\n .set(...this.createListener('blur', this.hide));\n }\n\n if (this.trigger.includes(PopUpTriggers.Keydown)) {\n this.listeners.set('keydown', (event) => {\n if (event instanceof KeyboardEvent && [ENTER, SPACE].includes(event.keyCode)) {\n setTimeout(() => this.show());\n }\n });\n }\n\n this.listeners.forEach(this.addEventListener);\n }\n\n getMouseLeaveListener() {\n if (this.hideWithTimeout) {\n return () => setTimeout(() => this.hide(), this.leaveDelay);\n }\n\n return this.hide;\n }\n\n /** Updates the position of the current popover. */\n updatePosition(reapplyPosition: boolean = false) {\n this.overlayRef = this.createOverlay();\n\n this.subscribeOnClosingActions();\n\n const position = (this.overlayRef.getConfig().positionStrategy as FlexibleConnectedPositionStrategy)\n .withPositions(this.getAdjustedPositions())\n .withPush(true);\n\n if (reapplyPosition) {\n setTimeout(() => position.reapplyLastPosition());\n }\n }\n\n focus() {\n this.getNativeElement().focus();\n }\n\n /** @docs-private */\n getNativeElement(): HTMLElement {\n return this.externalNativeElement || this.elementRef.nativeElement;\n }\n\n /** @docs-private */\n setExternalNativeElement(value: HTMLElement) {\n this.externalNativeElement = value;\n }\n\n /**\n * Returns a list of positions that are aligned with the element's dimensions and offsets.\n * @protected\n */\n protected getAdjustedPositions(): ConnectionPositionPair[] {\n const res: ConnectionPositionPair[] = [];\n\n for (const pos of this.getPrioritizedPositions()) {\n const offset: KbqPopupTriggerOffset = this.arrow\n ? getOffset(pos, this.getNativeElement().getBoundingClientRect())\n : {};\n\n res.push({\n ...pos,\n ...offset\n });\n }\n\n return res;\n }\n\n protected getPriorityPlacementStrategy(value: string | string[]): ConnectionPositionPair[] {\n const result: ConnectionPositionPair[] = [];\n const possiblePositions = Object.keys(this.availablePositions);\n\n if (Array.isArray(value)) {\n value.forEach((position: string) => {\n if (possiblePositions.includes(position)) {\n result.push(this.availablePositions[position]);\n }\n });\n } else if (possiblePositions.includes(value)) {\n result.push(this.availablePositions[value]);\n }\n\n return result;\n }\n\n protected getPrioritizedPositions() {\n if (this.placementPriority) {\n return this.getPriorityPlacementStrategy(this.placementPriority);\n }\n\n return POSITION_PRIORITY_STRATEGY[this.placement];\n }\n\n protected clearListeners() {\n this.listeners.forEach(this.removeEventListener);\n\n this.listeners.clear();\n }\n\n private createListener(name: string, listener: () => void): [string, (event: unknown) => void] {\n return [\n name,\n (event: unknown) => {\n this.triggerName = name;\n this.saveMouseEvent(event as MouseEvent);\n\n return listener.call(this);\n }\n ];\n }\n\n private saveMouseEvent(event: MouseEvent) {\n if (this.triggerName === 'mouseenter') {\n this.mouseEvent = event;\n }\n }\n\n private addEventListener = (listener: EventListener, event: string) => {\n this.getNativeElement().addEventListener(event, listener);\n };\n\n private removeEventListener = (listener: EventListener, event: string) => {\n this.getNativeElement().removeEventListener(event, listener);\n };\n\n private subscribeOnClosingActions() {\n this.closingActionsSubscription?.unsubscribe();\n\n this.closingActionsSubscription = this.closingActions()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .pipe(rxDelay(0))\n .subscribe((event) => {\n if (event?.type === 'click' && event.kbqPopoverPreventHide) {\n return;\n }\n\n this.hide();\n });\n }\n}\n","import { Overlay, RepositionScrollStrategy, ScrollStrategy } from '@angular/cdk/overlay';\nimport { InjectionToken } from '@angular/core';\n\n/**\n * Minimum option count threshold for displaying select search.\n * Search is hidden when fewer options are available.\n */\nexport const KBQ_SELECT_SEARCH_MIN_OPTIONS_THRESHOLD = 10;\n\n/**\n * The select panel will only \"fit\" inside the viewport if it is positioned at\n * this value or more away from the viewport boundary.\n */\nexport const SELECT_PANEL_VIEWPORT_PADDING = 8;\n\n/** Injection token that determines the scroll handling while a select is open. */\nexport const KBQ_SELECT_SCROLL_STRATEGY = new InjectionToken<() => ScrollStrategy>('kbq-select-scroll-strategy');\n\n/** @docs-private */\nexport function kbqSelectScrollStrategyProviderFactory(overlay: Overlay): () => RepositionScrollStrategy {\n return () => overlay.scrollStrategies.reposition();\n}\n\n/** @docs-private */\nexport const KBQ_SELECT_SCROLL_STRATEGY_PROVIDER = {\n provide: KBQ_SELECT_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: kbqSelectScrollStrategyProviderFactory\n};\n","import { CdkConnectedOverlay } from '@angular/cdk/overlay';\nimport { AfterContentInit, booleanAttribute, Directive, EventEmitter, inject, input, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { KBQ_FORM_FIELD_REF, KbqFormFieldRef } from '../form-field';\nimport { END, ESCAPE, HOME, SPACE } from '../keycodes';\nimport { KBQ_SELECT_SEARCH_MIN_OPTIONS_THRESHOLD, SELECT_PANEL_VIEWPORT_PADDING } from './constants';\n\n@Directive({\n selector: 'kbq-select-trigger, [kbq-select-trigger]'\n})\nexport class KbqSelectTrigger {}\n\n@Directive({\n selector: 'kbq-select-matcher, [kbq-select-matcher]'\n})\nexport class KbqSelectMatcher {\n readonly useDefaultHandlers = input<boolean, unknown>(true, { transform: booleanAttribute });\n}\n\n@Directive({\n selector: '[kbq-select-search-empty-result]',\n host: {\n class: 'kbq-select-search-empty-result kbq-select__no-options-message'\n },\n exportAs: 'kbqSelectSearchEmptyResult'\n})\nexport class KbqSelectSearchEmptyResult {}\n\n@Directive({\n selector: 'kbq-select-footer, [kbq-select-footer]',\n host: { class: 'kbq-select__footer' }\n})\nexport class KbqSelectFooter {}\n\n@Directive({\n selector: '[kbqSelectSearch]',\n host: {\n '(keydown)': 'handleKeydown($event)'\n },\n exportAs: 'kbqSelectSearch'\n})\nexport class KbqSelectSearch implements AfterContentInit, OnDestroy {\n protected formField = inject<KbqFormFieldRef>(KBQ_FORM_FIELD_REF, { optional: true })!;\n\n readonly changes: EventEmitter<string> = new EventEmitter<string>();\n\n isSearchChanged: boolean = false;\n\n get ngControl() {\n return this.formField.control().ngControl;\n }\n\n private searchChangesSubscription: Subscription = new Subscription();\n\n constructor() {\n this.formField.canCleanerClearByEsc = false;\n this.formField.inOverlay.set(true);\n }\n\n setPlaceholder(value: string): void {\n this.formField.control().placeholder = value;\n }\n\n hasPlaceholder(): boolean {\n return !!this.formField?.control.placeholder;\n }\n\n focus(): void {\n this.formField.focus();\n }\n\n reset(): void {\n this.ngControl?.reset();\n }\n\n value() {\n return this.formField.control().value;\n }\n\n ngAfterContentInit(): void {\n if (this.formField.control().controlType !== 'input') {\n throw Error('KbqSelectSearch does not work without kbqInput');\n }\n\n if (!this.ngControl) {\n throw Error('KbqSelectSearch does not work without ngControl');\n }\n\n Promise.resolve().then(() => {\n this.searchChangesSubscription = this.ngControl.valueChanges!.subscribe((value) => {\n this.isSearchChanged = true;\n this.changes.next(value);\n });\n });\n }\n\n ngOnDestroy(): void {\n this.searchChangesSubscription.unsubscribe();\n }\n\n handleKeydown(event: KeyboardEvent) {\n if (event.keyCode === ESCAPE) {\n if (this.value()) {\n this.reset();\n event.stopPropagation();\n }\n }\n\n if ([SPACE, HOME, END].includes(event.keyCode)) {\n event.stopPropagation();\n }\n }\n}\n\n/**\n * Abstract class representing a customizable select component with an overlay.\n *\n * This class provides base functionality for handling the overlay positioning.\n * @docs-private\n */\n@Directive()\nexport abstract class KbqAbstractSelect {\n protected overlayDir: CdkConnectedOverlay;\n protected triggerRect: DOMRect;\n\n /** Overlay panel class. */\n protected readonly overlayPanelClass = 'kbq-select-overlay';\n\n protected setOverlayPosition() {\n if (!this.overlayDir.overlayRef) return;\n\n this.resetOverlay();\n\n const overlayRect = this.getOverlayRect();\n // Window width without scrollbar\n const windowWidth = this.overlayDir.overlayRef?.hostElement.clientWidth;\n let offsetX: number = 0;\n let overlayMaxWidth: number;\n\n // Determine if select overflows on either side.\n const leftOverflow = -overlayRect.left;\n const rightOverflow = overlayRect.right - windowWidth;\n\n // If the element overflows on either side, reduce the offset to allow it to fit.\n if (leftOverflow > 0 || rightOverflow > 0) {\n [offsetX, overlayMaxWidth] = this.calculateOverlayOffsetX(offsetX);\n this.overlayDir.overlayRef.overlayElement.style.maxWidth = `${overlayMaxWidth}px`;\n // reset the minWidth property\n this.overlayDir.overlayRef.overlayElement.style.minWidth = '';\n }\n\n // Set the offset directly in order to avoid having to go through change detection and\n // potentially triggering \"changed after it was checked\" errors. Round the value to avoid\n // blurry content in some browsers.\n this.overlayDir.offsetX = Math.round(offsetX);\n this.overlayDir.overlayRef.updatePosition();\n }\n\n protected calculateOverlayOffsetX(baseOffsetX: number): number[] {\n let offsetX = baseOffsetX;\n const windowWidth = this.overlayDir.overlayRef?.hostElement.clientWidth;\n const { left: leftIndent, right: triggerRight, width: triggerWidth } = this.triggerRect;\n const { width: overlayRectWidth } = this.getOverlayRect();\n const rightIndent = windowWidth - triggerRight;\n // Setting direction of dropdown expansion\n const isRightDirection = leftIndent <= rightIndent;\n\n const indent = isRightDirection ? rightIndent : leftIndent;\n const maxDropdownWidth = indent + triggerWidth - SELECT_PANEL_VIEWPORT_PADDING;\n const overlayMaxWidth = overlayRectWidth < maxDropdownWidth ? overlayRectWidth : maxDropdownWidth;\n\n if (!isRightDirection) {\n const leftOffset = triggerRight - overlayMaxWidth;\n\n offsetX -= leftIndent - leftOffset;\n }\n\n return [offsetX, overlayMaxWidth];\n }\n\n protected getOverlayRect(): DOMRect {\n return this.overlayDir.overlayRef.overlayElement.getBoundingClientRect();\n }\n\n protected resetOverlay(): void {\n this.overlayDir.overlayRef.hostElement.classList.add(this.overlayPanelClass);\n this.overlayDir.offsetX = 0;\n this.overlayDir.overlayRef.overlayElement.style.maxWidth = 'unset';\n this.overlayDir.overlayRef.updatePosition();\n }\n\n protected resolveSearchMinOptionsThreshold(value?: 'auto' | number) {\n return value === 'auto' ? KBQ_SELECT_SEARCH_MIN_OPTIONS_THRESHOLD : value;\n }\n}\n","/**\n * Returns an exception to be thrown when attempting to change a select's `multiple` option\n * after initialization.\n * @docs-private\n */\nexport function getKbqSelectDynamicMultipleError(): Error {\n return Error('Cannot change `multiple` mode of select after initialization.');\n}\n\n/**\n * Returns an exception to be thrown when attempting to assign a non-array value to a select\n * in `multiple` mode. Note that `undefined` and `null` are still valid values to allow for\n * resetting the value.\n * @docs-private\n */\nexport function getKbqSelectNonArrayValueError(): Error {\n return Error('Value must be an array in multiple-selection mode.');\n}\n\n/**\n * Returns an exception to be thrown when assigning a non-function value to the comparator\n * used to determine if a value corresponds to an option. Note that whether the function\n * actually takes two values and returns a boolean is not checked.\n */\nexport function getKbqSelectNonFunctionValueError(): Error {\n return Error('`compareWith` must be a function.');\n}\n","export const selectEvents = 'selectEvents';\n","import { DOCUMENT } from '@angular/common';\nimport { inject, Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class KbqMeasureScrollbarService {\n protected readonly document = inject<Document>(DOCUMENT);\n\n get scrollBarWidth(): number {\n if (this._scrollBarWidth) {\n return this._scrollBarWidth;\n }\n\n this.initScrollBarWidth();\n\n return this._scrollBarWidth;\n }\n\n private _scrollBarWidth: number;\n private scrollbarMeasure = {\n position: 'absolute',\n top: '-9999px',\n width: '50px',\n height: '50px',\n overflow: 'scroll'\n };\n\n constructor() {\n this.initScrollBarWidth();\n }\n\n initScrollBarWidth() {\n const scrollDiv = this.document.createElement('div');\n\n for (const scrollProp in this.scrollbarMeasure) {\n if (this.scrollbarMeasure.hasOwnProperty(scrollProp)) {\n scrollDiv.style[scrollProp] = this.scrollbarMeasure[scrollProp];\n }\n }\n\n this.document.body.appendChild(scrollDiv);\n\n const width = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n\n this.document.body.removeChild(scrollDiv);\n this._scrollBarWidth = width;\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { inject, Injectable, OnDestroy, Renderer2, RendererFactory2 } from '@angular/core';\nimport { BehaviorSubject, pairwise, Subscription } from 'rxjs';\n\nexport interface KbqTheme {\n name: string;\n className: string;\n selected: boolean;\n}\n\n/**\n * Enum representing the available themes for the Koobiq design system.\n * This enum is used to manage and switch between different visual themes.\n */\nexport enum KbqThemeSelector {\n /**\n * Represents the default light theme.\n * This is the standard theme that is applied\n * when the application is first loaded if nothing else provided\n */\n Default = 'kbq-light',\n /**\n * This theme is used to provide a darker visual experience, often preferred in low-light environments.\n */\n Dark = 'kbq-dark'\n}\n\nexport const KbqDefaultThemes: KbqTheme[] = [\n {\n name: 'light',\n className: KbqThemeSelector.Default,\n selected: true\n },\n {\n name: 'dark',\n className: KbqThemeSelector.Dark,\n selected: false\n }\n];\n\n@Injectable({ providedIn: 'root' })\nexport class ThemeService<T extends KbqTheme | null = KbqTheme> implements OnDestroy {\n protected readonly document = inject<Document>(DOCUMENT);\n protected readonly rendererFactory = inject(RendererFactory2);\n protected renderer: Renderer2;\n\n current: BehaviorSubject<T> = new BehaviorSubject(null as T);\n\n themes: T[] = KbqDefaultThemes as T[];\n\n protected subscription: Subscription;\n\n constructor() {\n this.renderer = this.rendererFactory.createRenderer(null, null);\n\n this.subscription = this.current.pipe(pairwise()).subscribe(this.update);\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n\n setThemes(items: T[]) {\n this.themes = items;\n }\n\n setTheme(value: T | number) {\n if (typeof value === 'number') {\n this.current.next(this.themes[value]);\n } else if (typeof value === 'object' && this.themes.includes(value)) {\n this.current.next(value);\n } else {\n throw Error(`value has unsupported type: ${typeof value}`);\n }\n }\n\n getTheme(): T {\n return this.current.value;\n }\n\n protected update = ([prev, current]: T[]) => {\n if (prev) {\n prev.selected = false;\n this.renderer.removeClass(this.document.body, prev.className);\n }\n\n if (current) {\n this.renderer.addClass(this.document.body, current.className);\n current.selected = true;\n }\n };\n}\n","/* eslint-disable no-restricted-globals -- testing utilities legitimately use raw `document`/`window` */\n\n/** Creates a browser MouseEvent with the specified options. */\nexport function createMouseEvent(type: string, x = 0, y = 0, button = 0) {\n const event = document.createEvent('MouseEvent');\n\n event.initMouseEvent(\n type,\n false,\n false,\n window /* view */,\n 0,\n x /* screenX */,\n y /* screenY */,\n x /* clientX */,\n y /* clientY */,\n false,\n false,\n false,\n false,\n button /* button */,\n null\n );\n\n return event;\n}\n\n/** Creates a browser TouchEvent with the specified pointer coordinates. */\nexport function createTouchEvent(type: string, pageX = 0, pageY = 0) {\n // In favor of creating events that work for most of the browsers, the event is created\n // as a basic UI Event. The necessary details for the event will be set manually.\n const event = document.createEvent('UIEvent');\n const touchDetails = { pageX, pageY };\n\n (event as any).initUIEvent(type, true, true, window, 0);\n\n // Most of the browsers don't have a \"initTouchEvent\" method that can be used to define\n // the touch details.\n Object.defineProperties(event, {\n touches: { value: [touchDetails] }\n });\n\n return event;\n}\n\n/** Dispatches a keydown event from an element. */\nexport function createKeyboardEvent(type: string, keyCode: number, target?: Element, key?: string) {\n const event = document.createEvent('KeyboardEvent') as any;\n\n // Firefox does not support `initKeyboardEvent`, but supports `initKeyEvent`.\n if (event.initKeyEvent) {\n event.initKeyEvent(type, true, true, window, 0, 0, 0, 0, 0, keyCode);\n } else {\n event.initKeyboardEvent(type, true, true, window, 0, key, 0, '', false);\n }\n\n // Webkit Browsers don't set the keyCode when calling the init function.\n // See related bug https://bugs.webkit.org/show_bug.cgi?id=16735\n Object.defineProperties(event, {\n keyCode: { get: () => keyCode },\n key: { get: () => key }\n });\n\n // Only override `target` when explicitly provided; otherwise let jsdom set it during dispatch.\n if (target !== undefined) {\n Object.defineProperty(event, 'target', { get: () => target });\n }\n\n return event;\n}\n\n/** Creates a fake event object with any desired event type. */\nexport function createFakeEvent(type: string, canBubble = false, cancelable = true) {\n const event = document.createEvent('Event');\n\n event.initEvent(type, canBubble, cancelable);\n\n return event;\n}\n","import { createFakeEvent, createKeyboardEvent, createMouseEvent, createTouchEvent } from './event-objects';\n\n/** Utility to dispatch any event on a Node. */\nexport function dispatchEvent(node: Node | Window, event: Event): Event {\n node.dispatchEvent(event);\n\n return event;\n}\n\n/** Shorthand to dispatch a fake event on a specified node. */\nexport function dispatchFakeEvent(node: Node | Window, type: string, canBubble?: boolean): Event {\n return dispatchEvent(node, createFakeEvent(type, canBubble));\n}\n\n/** Shorthand to dispatch a keyboard event with a specified key code. */\nexport function dispatchKeyboardEvent(node: Node, type: string, keyCode: number, target?: Element): KeyboardEvent {\n return dispatchEvent(node, createKeyboardEvent(type, keyCode, target)) as KeyboardEvent;\n}\n\n/** Shorthand to dispatch a mouse event on the specified coordinates. */\nexport function dispatchMouseEvent(\n node: Node,\n type: string,\n x = 0,\n y = 0,\n event = createMouseEvent(type, x, y)\n): MouseEvent {\n return dispatchEvent(node, event) as MouseEvent;\n}\n\n/** Shorthand to dispatch a touch event on the specified coordinates. */\nexport function dispatchTouchEvent(node: Node, type: string, x = 0, y = 0) {\n return dispatchEvent(node, createTouchEvent(type, x, y));\n}\n","import { dispatchFakeEvent } from './dispatch-events';\n\n/**\n * Patches an elements focus and blur methods to emit events consistently and predictably.\n * This is necessary, because some browsers, like IE11, will call the focus handlers asynchronously,\n * while others won't fire them at all if the browser window is not focused.\n */\nexport function patchElementFocus(element: HTMLElement) {\n element.focus = () => dispatchFakeEvent(element, 'focus');\n element.blur = () => dispatchFakeEvent(element, 'blur');\n}\n","import { EventEmitter, Injectable, NgZone } from '@angular/core';\n\n/**\n * Mock synchronous NgZone implementation that can be used\n * to flush out `onStable` subscriptions in tests.\n *\n * via: https://github.com/angular/angular/blob/master/packages/core/testing/src/ng_zone_mock.ts\n * @docs-private\n */\n@Injectable()\nexport class MockNgZone extends NgZone {\n onStable: EventEmitter<any> = new EventEmitter(false);\n\n constructor() {\n super({ enableLongStackTrace: false });\n }\n\n run(fn: () => void): any {\n return fn();\n }\n\n runOutsideAngular(fn: () => void): any {\n return fn();\n }\n\n simulateZoneExit(): void {\n this.onStable.emit(null);\n }\n}\n","import { dispatchFakeEvent } from './dispatch-events';\n\n/**\n * Focuses an input, sets its value and dispatches\n * the `input` event, simulating the user typing.\n * @param value Value to be set on the input.\n * @param element Element onto which to set the value.\n */\nexport function typeInElement(value: string, element: HTMLInputElement) {\n element.focus();\n element.value = value;\n dispatchFakeEvent(element, 'input');\n}\n","export function wrappedErrorMessage(e: Error) {\n const escapedMessage = e.message.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&');\n\n return new RegExp(escapedMessage);\n}\n","/**\n * @docs-private\n */\nexport const validationTooltipShowDelay = 10;\n\n/**\n * @docs-private\n */\nexport const validationTooltipHideDelay = 3000;\n","import { Version } from '@angular/core';\n\nexport const VERSION = new Version('20.0.0+sha-17501d3');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["map","BaseDateAdapter","BaseDateFormatter","KbqDateAdapter","i1.KbqPseudoCheckbox","rxDelay"],"mappings":"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"}
|