@koobiq/components 19.8.4 → 19.8.6

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.
Files changed (199) hide show
  1. package/accordion/accordion-content.directive.d.ts +23 -3
  2. package/accordion/accordion-trigger.component.d.ts +1 -0
  3. package/accordion/accordion.component.scss +4 -1
  4. package/alert/alert-tokens.scss +4 -4
  5. package/autocomplete/autocomplete-trigger.directive.d.ts +10 -5
  6. package/breadcrumbs/breadcrumbs.d.ts +2 -0
  7. package/breadcrumbs/breadcrumbs.scss +4 -0
  8. package/button/button-group.scss +42 -2
  9. package/button-toggle/button-toggle-tokens.scss +16 -0
  10. package/button-toggle/button-toggle.component.d.ts +3 -1
  11. package/button-toggle/button-toggle.scss +105 -1
  12. package/checkbox/checkbox.scss +5 -4
  13. package/clamped-text/clamped-text.d.ts +4 -2
  14. package/core/form-field/field-sizing-content.d.ts +0 -1
  15. package/core/form-field/form-field-ref.d.ts +1 -0
  16. package/core/form-field/index.d.ts +1 -0
  17. package/core/form-field/text-field-selection.d.ts +18 -0
  18. package/core/form-field/text-ruler.d.ts +16 -0
  19. package/core/navbar/rectangle-item.d.ts +8 -0
  20. package/core/option/_action-container-mixins.scss +28 -0
  21. package/core/option/_option-theme.scss +8 -0
  22. package/core/option/action.d.ts +9 -0
  23. package/core/option/action.scss +7 -0
  24. package/core/option/option.d.ts +10 -6
  25. package/core/pop-up/pop-up-trigger.d.ts +6 -0
  26. package/core/select/constants.d.ts +8 -1
  27. package/core/services/measure-scrollbar.service.d.ts +1 -0
  28. package/core/styles/common/_animation.scss +35 -24
  29. package/core/styles/common/_select.scss +17 -2
  30. package/core/styles/theming/_scrollbar-theme.scss +4 -0
  31. package/core/styles/typography/_typography.scss +8 -0
  32. package/core/utils/dom.d.ts +12 -0
  33. package/datepicker/datepicker-input.directive.d.ts +20 -5
  34. package/datepicker/datepicker.component.d.ts +4 -1
  35. package/dl/dl.component.d.ts +1 -0
  36. package/dl/dl.scss +10 -0
  37. package/dropdown/dropdown-item.component.d.ts +10 -2
  38. package/dropdown/dropdown-item.scss +16 -0
  39. package/dropdown/dropdown-trigger.directive.d.ts +6 -1
  40. package/dropdown/dropdown.component.d.ts +6 -1
  41. package/dropdown/dropdown.module.d.ts +1 -1
  42. package/dropdown/dropdown.scss +18 -3
  43. package/ellipsis-center/ellipsis-center.directive.d.ts +35 -2
  44. package/fesm2022/koobiq-components-accordion.mjs +104 -16
  45. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  46. package/fesm2022/koobiq-components-alert.mjs +2 -2
  47. package/fesm2022/koobiq-components-app-switcher.mjs +6 -6
  48. package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
  49. package/fesm2022/koobiq-components-autocomplete.mjs +21 -9
  50. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  51. package/fesm2022/koobiq-components-breadcrumbs.mjs +10 -5
  52. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  53. package/fesm2022/koobiq-components-button-toggle.mjs +8 -5
  54. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  55. package/fesm2022/koobiq-components-button.mjs +4 -4
  56. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  57. package/fesm2022/koobiq-components-checkbox.mjs +2 -2
  58. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  59. package/fesm2022/koobiq-components-clamped-text.mjs +9 -0
  60. package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
  61. package/fesm2022/koobiq-components-code-block.mjs +14 -5
  62. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  63. package/fesm2022/koobiq-components-content-panel.mjs +5 -4
  64. package/fesm2022/koobiq-components-content-panel.mjs.map +1 -1
  65. package/fesm2022/koobiq-components-core.mjs +234 -64
  66. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  67. package/fesm2022/koobiq-components-datepicker.mjs +73 -49
  68. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  69. package/fesm2022/koobiq-components-dl.mjs +5 -4
  70. package/fesm2022/koobiq-components-dl.mjs.map +1 -1
  71. package/fesm2022/koobiq-components-dropdown.mjs +65 -22
  72. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  73. package/fesm2022/koobiq-components-ellipsis-center.mjs +77 -22
  74. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
  75. package/fesm2022/koobiq-components-file-upload.mjs +12 -12
  76. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  77. package/fesm2022/koobiq-components-filter-bar.mjs +295 -46
  78. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  79. package/fesm2022/koobiq-components-form-field.mjs +2 -2
  80. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  81. package/fesm2022/koobiq-components-icon.mjs +1 -1
  82. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  83. package/fesm2022/koobiq-components-inline-edit.mjs +26 -5
  84. package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
  85. package/fesm2022/koobiq-components-list.mjs +12 -22
  86. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  87. package/fesm2022/koobiq-components-markdown.mjs +4 -1
  88. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  89. package/fesm2022/koobiq-components-modal.mjs +53 -12
  90. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  91. package/fesm2022/koobiq-components-navbar.mjs +29 -13
  92. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  93. package/fesm2022/koobiq-components-notification-center.mjs +45 -7
  94. package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
  95. package/fesm2022/koobiq-components-overflow-items.mjs +4 -0
  96. package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
  97. package/fesm2022/koobiq-components-popover.mjs +35 -18
  98. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  99. package/fesm2022/koobiq-components-radio.mjs +3 -7
  100. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  101. package/fesm2022/koobiq-components-resizer.mjs +23 -4
  102. package/fesm2022/koobiq-components-resizer.mjs.map +1 -1
  103. package/fesm2022/koobiq-components-select.mjs +126 -29
  104. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  105. package/fesm2022/koobiq-components-sidebar.mjs +10 -0
  106. package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
  107. package/fesm2022/koobiq-components-sidepanel.mjs +34 -10
  108. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  109. package/fesm2022/koobiq-components-splitter.mjs +4 -0
  110. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  111. package/fesm2022/koobiq-components-tabs.mjs +27 -7
  112. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  113. package/fesm2022/koobiq-components-tags.mjs +4 -2
  114. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  115. package/fesm2022/koobiq-components-textarea.mjs +7 -14
  116. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  117. package/fesm2022/koobiq-components-timepicker.mjs +44 -19
  118. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  119. package/fesm2022/koobiq-components-timezone.mjs +10 -4
  120. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  121. package/fesm2022/koobiq-components-title.mjs +41 -3
  122. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  123. package/fesm2022/koobiq-components-toast.mjs +31 -3
  124. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  125. package/fesm2022/koobiq-components-toggle.mjs +2 -2
  126. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  127. package/fesm2022/koobiq-components-tooltip.mjs +4 -1
  128. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  129. package/fesm2022/koobiq-components-tree-select.mjs +36 -12
  130. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  131. package/fesm2022/koobiq-components-tree.mjs +41 -37
  132. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  133. package/fesm2022/koobiq-components-username.mjs +2 -2
  134. package/fesm2022/koobiq-components-username.mjs.map +1 -1
  135. package/file-upload/dropzone.d.ts +0 -1
  136. package/file-upload/file-upload.scss +11 -0
  137. package/file-upload/multiple-file-upload.component.scss +29 -3
  138. package/file-upload/primitives/file-picker.d.ts +1 -1
  139. package/file-upload/single-file-upload.component.scss +10 -2
  140. package/filter-bar/filter-bar.d.ts +1 -1
  141. package/filter-bar/filter-bar.types.d.ts +2 -0
  142. package/filter-bar/filters.scss +3 -2
  143. package/filter-bar/pipes/base-pipe.d.ts +31 -0
  144. package/filter-bar/pipes/base-pipe.scss +0 -13
  145. package/filter-bar/pipes/pipe-date.d.ts +1 -1
  146. package/filter-bar/pipes/pipe-datetime.d.ts +1 -1
  147. package/filter-bar/pipes/pipe-input.d.ts +42 -0
  148. package/filter-bar/pipes/pipe-input.scss +10 -0
  149. package/filter-bar/public-api.d.ts +1 -0
  150. package/form-field/fieldset.scss +10 -0
  151. package/inline-edit/inline-edit.d.ts +5 -0
  152. package/inline-edit/inline-edit.scss +7 -7
  153. package/link/_link-theme.scss +50 -15
  154. package/list/_list-theme.scss +12 -0
  155. package/list/list-selection.component.d.ts +1 -0
  156. package/list/list.scss +2 -9
  157. package/modal/modal-tokens.scss +1 -1
  158. package/modal/modal.component.d.ts +9 -1
  159. package/modal/modal.directive.d.ts +11 -0
  160. package/modal/modal.type.d.ts +7 -0
  161. package/navbar/_navbar-item_horizontal.scss +5 -0
  162. package/navbar/_navbar-item_vertical.scss +7 -5
  163. package/navbar/navbar-item.component.d.ts +15 -0
  164. package/navbar/navbar.component.d.ts +1 -0
  165. package/navbar/vertical-navbar.scss +6 -0
  166. package/notification-center/notification-center.d.ts +13 -1
  167. package/notification-center/notification-center.scss +12 -0
  168. package/notification-center/notification-item.scss +6 -0
  169. package/overflow-items/overflow-items.d.ts +1 -0
  170. package/package.json +4 -4
  171. package/prebuilt-themes/dark-theme.css +1 -1
  172. package/prebuilt-themes/light-theme.css +1 -1
  173. package/prebuilt-themes/theme.css +1 -1
  174. package/radio/radio.component.d.ts +1 -5
  175. package/radio/radio.scss +18 -4
  176. package/resizer/resizer.d.ts +12 -0
  177. package/schematics/ng-add/index.js +2 -2
  178. package/select/select-option.directive.d.ts +1 -0
  179. package/select/select.component.d.ts +29 -4
  180. package/sidebar/sidebar.component.d.ts +3 -0
  181. package/sidepanel/sidepanel-directives.d.ts +2 -0
  182. package/sidepanel/sidepanel.service.d.ts +8 -0
  183. package/splitter/splitter.component.d.ts +1 -0
  184. package/tabs/tab-body.component.d.ts +2 -0
  185. package/tabs/tab-header.component.d.ts +1 -0
  186. package/tabs/tab-header.scss +1 -0
  187. package/tabs/tab-nav-bar.d.ts +1 -0
  188. package/tabs/tabs-tokens.scss +1 -1
  189. package/textarea/textarea.component.d.ts +0 -1
  190. package/timepicker/timepicker.directive.d.ts +3 -0
  191. package/timezone/timezone-option.directive.d.ts +1 -0
  192. package/title/title.directive.d.ts +21 -0
  193. package/toast/toast-container.component.d.ts +25 -0
  194. package/tree/_tree-theme.scss +5 -11
  195. package/tree/toggle.scss +4 -0
  196. package/tree/tree-option.component.d.ts +3 -0
  197. package/tree/tree-option.scss +2 -12
  198. package/tree/tree-selection.component.d.ts +1 -0
  199. package/tree-select/tree-select.component.d.ts +9 -2
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-app-switcher.mjs","sources":["../../../packages/components/app-switcher/app-switcher-animations.ts","../../../packages/components/app-switcher/app-switcher-dropdown-app.ts","../../../packages/components/app-switcher/app-switcher-dropdown-site.ts","../../../packages/components/app-switcher/kbq-app-switcher-list-item.ts","../../../packages/components/app-switcher/app-switcher.ts","../../../packages/components/app-switcher/app-switcher.html","../../../packages/components/app-switcher/app-switcher.module.ts","../../../packages/components/app-switcher/koobiq-components-app-switcher.ts"],"sourcesContent":["import { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\nimport { KbqAnimationCurves, KbqAnimationDurations } from '@koobiq/components/core';\n\n/** @docs-private */\nexport const kbqAppSwitcherAnimations: {\n readonly state: AnimationTriggerMetadata;\n} = {\n /** Animation that transitions a tooltip in and out. */\n state: trigger('state', [\n state(\n 'initial',\n style({\n opacity: 0,\n transform: 'scale(1, 0.8)'\n })\n ),\n transition(\n '* => visible',\n animate(\n `120ms ${KbqAnimationCurves.DecelerationCurve}`,\n style({\n opacity: 1,\n transform: 'scale(1, 1)'\n })\n )\n ),\n transition('* => hidden', animate(`${KbqAnimationDurations.Rapid} linear`, style({ opacity: 0 })))\n ])\n};\n","import { NgOptimizedImage } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, Input, ViewEncapsulation } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { KBQ_TITLE_TEXT_REF } from '@koobiq/components/core';\nimport { KbqDropdownItem } from '@koobiq/components/dropdown';\nimport { KbqIcon } from '@koobiq/components/icon';\nimport { KbqAppSwitcherApp } from './app-switcher';\n\n/** @docs-private */\n@Component({\n selector: '[kbq-app-switcher-dropdown-app]',\n imports: [KbqIcon, NgOptimizedImage],\n template: `\n <i class=\"kbq kbq-icon\" [className]=\"\"></i>\n @if (app.icon) {\n <span class=\"kbq-app-switcher-dropdown-app__icon\" [innerHtml]=\"getIcon(app.icon)\"></span>\n } @else if (app.iconSrc) {\n <span class=\"kbq-app-switcher-dropdown-app__icon\">\n <img alt=\"{{ app.type }}\" width=\"24\" height=\"24\" [ngSrc]=\"app.iconSrc\" />\n </span>\n }\n\n <div class=\"kbq-app-switcher-dropdown-app__container\">\n <div class=\"kbq-app-switcher-dropdown-app__name\">\n <span>{{ app.name }}</span>\n\n @if (isNested) {\n <i\n kbq-icon=\"kbq-chevron-right-s_16\"\n class=\"kbq-app-switcher-dropdown-item-trigger__icon\"\n [color]=\"componentColors.ContrastFade\"\n ></i>\n }\n </div>\n @if (app.caption) {\n <div class=\"kbq-app-switcher-dropdown-app__caption\">{{ app.caption }}</div>\n }\n </div>\n `,\n styleUrls: ['app-switcher-dropdown-app.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'kbqAppSwitcherDropdownApp',\n host: {\n class: 'kbq-app-switcher-dropdown-app',\n '[class.kbq-dropdown-item]': 'false'\n },\n providers: [\n { provide: KBQ_TITLE_TEXT_REF, useExisting: KbqAppSwitcherDropdownApp },\n { provide: KbqDropdownItem, useExisting: KbqAppSwitcherDropdownApp }\n ]\n})\nexport class KbqAppSwitcherDropdownApp extends KbqDropdownItem {\n private sanitizer = inject(DomSanitizer);\n\n @Input('kbq-app-switcher-dropdown-app') app: KbqAppSwitcherApp;\n\n getIcon(icon: string | null) {\n return this.sanitizer.bypassSecurityTrustHtml(icon || '');\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { KbqBadgeModule } from '@koobiq/components/badge';\nimport { KBQ_TITLE_TEXT_REF } from '@koobiq/components/core';\nimport { KbqDropdownItem } from '@koobiq/components/dropdown';\nimport { KbqIcon } from '@koobiq/components/icon';\nimport { KbqAppSwitcherSite } from './app-switcher';\n\n/** @docs-private */\n@Component({\n selector: '[kbq-app-switcher-dropdown-site]',\n imports: [\n KbqIcon,\n KbqBadgeModule\n ],\n template: `\n <span class=\"kbq-app-switcher-dropdown-site__name\">{{ site.name }}</span>\n\n @if (site.status) {\n <kbq-badge class=\"kbq-app-switcher-dropdown-site__badge\" [compact]=\"true\">{{ site.status }}</kbq-badge>\n }\n\n @if (isNested) {\n <i\n kbq-icon=\"kbq-chevron-right-s_16\"\n class=\"kbq-app-switcher-dropdown-item-trigger__icon\"\n [color]=\"componentColors.ContrastFade\"\n ></i>\n }\n `,\n styleUrls: ['app-switcher-dropdown-site.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'kbqAppSwitcherDropdownSite',\n host: {\n class: 'kbq-app-switcher-dropdown-site',\n '[class.kbq-dropdown-item]': 'false'\n },\n providers: [\n { provide: KBQ_TITLE_TEXT_REF, useExisting: KbqAppSwitcherDropdownSite },\n { provide: KbqDropdownItem, useExisting: KbqAppSwitcherDropdownSite }\n ]\n})\nexport class KbqAppSwitcherDropdownSite extends KbqDropdownItem {\n @Input('kbq-app-switcher-dropdown-site') site: KbqAppSwitcherSite;\n}\n","import { NgOptimizedImage } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, inject, Input, ViewEncapsulation } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { KBQ_TITLE_TEXT_REF } from '@koobiq/components/core';\nimport { KbqDropdownItem } from '@koobiq/components/dropdown';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqAppSwitcherApp } from './app-switcher';\n\n/** @docs-private */\n@Component({\n selector: '[kbq-app-switcher-list-item]',\n imports: [\n KbqIconModule,\n NgOptimizedImage\n ],\n template: `\n @if (app.icon) {\n <span class=\"kbq-app-switcher-list-item__icon\" [innerHtml]=\"getIcon(app.icon)\"></span>\n } @else if (app.iconSrc) {\n <span class=\"kbq-app-switcher-list-item__icon\">\n <img alt=\"{{ app.type }}\" width=\"24\" height=\"24\" [ngSrc]=\"app.iconSrc\" />\n </span>\n }\n\n <div class=\"kbq-app-switcher-list-item__container\">\n <div class=\"kbq-app-switcher-list-item__name\">{{ app.name }}</div>\n @if (app.caption) {\n <div class=\"kbq-app-switcher-list-item__caption\">{{ app.caption }}</div>\n }\n </div>\n\n @if (toggle) {\n <div class=\"kbq-app-switcher-list-item__toggle\" [class.kbq-expanded]=\"!collapsed\">\n <i kbq-icon=\"kbq-chevron-down-s_16\" [color]=\"'contrast-fade'\"></i>\n </div>\n }\n `,\n styleUrls: ['kbq-app-switcher-list-item.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'kbqAppSwitcherApp',\n host: {\n class: 'kbq-app-switcher-list-item',\n '[class.kbq-dropdown-item]': 'false',\n '(click)': 'clickHandler($event)'\n },\n providers: [\n { provide: KBQ_TITLE_TEXT_REF, useExisting: KbqAppSwitcherListItem },\n { provide: KbqDropdownItem, useExisting: KbqAppSwitcherListItem }\n ]\n})\nexport class KbqAppSwitcherListItem extends KbqDropdownItem {\n private sanitizer = inject(DomSanitizer);\n\n @Input() app: KbqAppSwitcherApp;\n @Input({ transform: booleanAttribute }) toggle = false;\n @Input({ transform: booleanAttribute }) collapsed: boolean = false;\n\n clickHandler(event: MouseEvent) {\n if (this.toggle) {\n event.stopPropagation();\n event.preventDefault();\n\n this.collapsed = !this.collapsed;\n }\n }\n\n getIcon(icon: string | null) {\n return this.sanitizer.bypassSecurityTrustHtml(icon || '');\n }\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n CdkScrollable,\n FlexibleConnectedPositionStrategy,\n Overlay,\n OverlayConfig,\n ScrollStrategy\n} from '@angular/cdk/overlay';\n\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n Directive,\n EventEmitter,\n InjectionToken,\n Input,\n OnInit,\n Output,\n TemplateRef,\n Type,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n numberAttribute\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { KbqBadgeModule } from '@koobiq/components/badge';\nimport {\n KBQ_LOCALE_SERVICE,\n KbqOptionModule,\n KbqPopUp,\n KbqPopUpPlacementValues,\n KbqPopUpSizeValues,\n KbqPopUpTrigger,\n POSITION_TO_CSS_MAP,\n PopUpPlacements,\n PopUpSizes,\n PopUpTriggers,\n applyPopupMargins,\n ruRULocaleData\n} from '@koobiq/components/core';\nimport { KbqDividerModule } from '@koobiq/components/divider';\nimport { KbqDropdownModule, KbqDropdownTrigger } from '@koobiq/components/dropdown';\nimport { KbqFormFieldModule } from '@koobiq/components/form-field';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqInput, KbqInputModule } from '@koobiq/components/input';\nimport { defaultOffsetYWithArrow } from '@koobiq/components/popover';\nimport { KbqScrollbarModule } from '@koobiq/components/scrollbar';\nimport { Subscription, merge } from 'rxjs';\nimport { kbqAppSwitcherAnimations } from './app-switcher-animations';\nimport { KbqAppSwitcherDropdownApp } from './app-switcher-dropdown-app';\nimport { KbqAppSwitcherDropdownSite } from './app-switcher-dropdown-site';\nimport { KbqAppSwitcherListItem } from './kbq-app-switcher-list-item';\n\nexport interface KbqAppSwitcherApp {\n name: string;\n id: string | number;\n type?: string | number;\n /** Inline SVG markup for the application icon. Use this for SVG icons that should be rendered directly in the DOM. */\n icon?: string;\n /** Path to the icon file (URL or relative path). */\n iconSrc?: string;\n caption?: string;\n aliases?: KbqAppSwitcherApp[];\n link?: string;\n}\n\nexport interface KbqAppSwitcherSite {\n name: string;\n id: string | number;\n status?: string;\n /** Inline SVG markup for the site icon. Use this for SVG icons that should be rendered directly in the DOM. */\n icon?: string;\n /** Path to the icon file (URL or relative path). */\n iconSrc?: string;\n apps: KbqAppSwitcherApp[];\n}\n\n/** @docs-private */\nexport function defaultGroupBy(\n app: KbqAppSwitcherApp,\n groups: Record<string, KbqAppSwitcherApp>,\n untyped: KbqAppSwitcherApp[]\n) {\n if (!app.type) {\n untyped.push(app);\n } else {\n const appType = app.type.toString();\n\n if (groups[appType]) {\n groups[appType].aliases!.push(app);\n } else {\n groups[appType] = {\n name: appType,\n aliases: [app],\n icon: app.icon,\n iconSrc: app.iconSrc,\n id: ''\n };\n }\n }\n}\n\nexport const KBQ_MIN_NUMBER_OF_APPS_TO_ENABLE_SEARCH: number = 7;\nexport const KBQ_MIN_NUMBER_OF_APPS_TO_ENABLE_GROUPING: number = 3;\n\n/** @docs-private */\nexport const KBQ_APP_SWITCHER_SCROLL_STRATEGY = new InjectionToken<() => ScrollStrategy>(\n 'kbq-app-switcher-scroll-strategy'\n);\n\n/** @docs-private */\nexport function kbqAppSwitcherScrollStrategyFactory(overlay: Overlay): () => ScrollStrategy {\n return () => overlay.scrollStrategies.reposition({ scrollThrottle: 20 });\n}\n\n/** @docs-private */\nexport const KBQ_APP_SWITCHER_SCROLL_STRATEGY_FACTORY_PROVIDER = {\n provide: KBQ_APP_SWITCHER_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: kbqAppSwitcherScrollStrategyFactory\n};\n\n/** default configuration of app-switcher */\n/** @docs-private */\nexport const KBQ_APP_SWITCHER_DEFAULT_CONFIGURATION = ruRULocaleData.appSwitcher;\n\n/** Injection Token for providing configuration of app-switcher */\n/** @docs-private */\nexport const KBQ_APP_SWITCHER_CONFIGURATION = new InjectionToken('KbqAppSwitcherConfiguration');\n\n/** @docs-private */\n@Component({\n selector: 'kbq-app-switcher',\n imports: [\n FormsModule,\n ReactiveFormsModule,\n KbqFormFieldModule,\n KbqInputModule,\n KbqIconModule,\n KbqDividerModule,\n KbqBadgeModule,\n KbqDropdownModule,\n KbqScrollbarModule,\n KbqOptionModule,\n KbqAppSwitcherDropdownApp,\n KbqAppSwitcherDropdownSite,\n KbqAppSwitcherListItem\n ],\n templateUrl: './app-switcher.html',\n styleUrls: ['./app-switcher.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n host: {\n class: 'kbq-app-switcher'\n },\n animations: [kbqAppSwitcherAnimations.state]\n})\nexport class KbqAppSwitcherComponent extends KbqPopUp implements AfterViewInit {\n /** @docs-private */\n protected readonly localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });\n\n readonly externalConfiguration = inject(KBQ_APP_SWITCHER_CONFIGURATION, { optional: true });\n\n configuration;\n\n /** localized data\n * @docs-private */\n get localeData() {\n return this.configuration;\n }\n\n /** @docs-private */\n readonly searchControl = new FormControl('');\n\n /** @docs-private */\n filteredSites: KbqAppSwitcherSite[];\n\n /** @docs-private */\n prefix = 'kbq-app-switcher';\n\n /** @docs-private */\n @Input() trigger: KbqAppSwitcherTrigger;\n\n /** @docs-private */\n isTrapFocus: boolean = false;\n\n /** @docs-private */\n protected activeSite: KbqAppSwitcherSite;\n /** @docs-private */\n protected activeApp: KbqAppSwitcherApp;\n\n /** @docs-private */\n @ViewChild(KbqInput) input: KbqInput;\n /** @docs-private */\n @ViewChild('otherSites') otherSites: KbqDropdownTrigger;\n\n constructor() {\n super();\n\n this.localeService?.changes.pipe(takeUntilDestroyed()).subscribe(this.updateLocaleParams);\n\n if (!this.localeService) {\n this.initDefaultParams();\n }\n }\n\n ngAfterViewInit() {\n if (this.input) {\n this.input.focus();\n }\n\n this.visibleChange.subscribe((state) => {\n if (this.offset !== null && state) {\n applyPopupMargins(\n this.renderer,\n this.elementRef.nativeElement,\n this.prefix,\n `${this.offset!.toString()}px`\n );\n }\n });\n\n this.searchControl.valueChanges.subscribe((value) => (this.filteredSites = this.filterSites(value)));\n }\n\n /** @docs-private */\n updateClassMap(placement: string, customClass: string, size: KbqPopUpSizeValues) {\n super.updateClassMap(placement, customClass, { [`${this.prefix}_${size}`]: !!size });\n }\n\n /** @docs-private */\n updateTrapFocus(isTrapFocus: boolean): void {\n this.isTrapFocus = isTrapFocus;\n }\n\n /** @docs-private */\n escapeHandler() {\n this.hide(0);\n }\n\n /** @docs-private */\n selectAppInSite(site: KbqAppSwitcherSite, app: KbqAppSwitcherApp) {\n this.trigger.selectedSite = site;\n this.trigger.selectedApp = app;\n\n this.trigger.selectedSiteChange.emit(site);\n this.trigger.selectedAppChange.emit(app);\n }\n\n private filterSites(query: string | null): KbqAppSwitcherSite[] {\n const filteredSites = structuredClone(this.trigger.originalSites);\n\n return query\n ? filteredSites.filter((site) => {\n const filteredApps = site.apps.filter((app) => app.name.toLowerCase().includes(query.toLowerCase()));\n\n if (filteredApps.length) {\n site.apps = filteredApps;\n\n return true;\n }\n\n return false;\n })\n : filteredSites;\n }\n\n private updateLocaleParams = () => {\n this.configuration = this.externalConfiguration || this.localeService?.getParams('appSwitcher');\n\n this.changeDetectorRef.markForCheck();\n };\n\n private initDefaultParams() {\n this.configuration = KBQ_APP_SWITCHER_DEFAULT_CONFIGURATION;\n }\n}\n\n@Directive({\n selector: '[kbqAppSwitcher]',\n exportAs: 'kbqAppSwitcher',\n host: {\n '[class.kbq-app-switcher_open]': 'isOpen',\n '[class.kbq-active]': 'hasClickTrigger && isOpen',\n '(keydown)': 'keydownHandler($event)',\n '(touchend)': 'touchendHandler()'\n }\n})\nexport class KbqAppSwitcherTrigger\n extends KbqPopUpTrigger<KbqAppSwitcherComponent>\n implements AfterContentInit, OnInit\n{\n /** @docs-private */\n protected scrollStrategy: () => ScrollStrategy = inject(KBQ_APP_SWITCHER_SCROLL_STRATEGY);\n\n // not used\n /** @docs-private */\n arrow: boolean = false;\n /** @docs-private */\n customClass: string;\n /** @docs-private */\n private hasBackdrop: boolean = false;\n /** @docs-private */\n private size: KbqPopUpSizeValues = PopUpSizes.Medium;\n /** @docs-private */\n content: string | TemplateRef<any>;\n /** @docs-private */\n header: string | TemplateRef<any>;\n /** @docs-private */\n footer: string | TemplateRef<any>;\n /** @docs-private */\n private closeOnScroll: null;\n\n /** Whether search is used or not */\n get withSearch(): boolean {\n return this.appsCount > KBQ_MIN_NUMBER_OF_APPS_TO_ENABLE_SEARCH;\n }\n\n /** Number of applications to choose from\n * @docs-private */\n get appsCount(): number {\n return this.originalSites.reduce((acc, site) => acc + site.apps.length, 0);\n }\n\n /** Whether the sites are used or not\n * @docs-private */\n get sitesMode(): boolean {\n return this.originalSites.length > 1;\n }\n\n /** @docs-private */\n get currentApps() {\n return this.sitesMode ? this.selectedSite.apps : this._parsedApps;\n }\n\n /** Selected application */\n @Input() selectedApp: KbqAppSwitcherApp;\n\n /** Placement of popUp */\n @Input('kbqAppSwitcherPlacement') placement: KbqPopUpPlacementValues = PopUpPlacements.BottomLeft;\n\n /** Class that will be used in the background */\n @Input() backdropClass: string = 'cdk-overlay-transparent-backdrop';\n\n /** Offset of popUp */\n @Input({ transform: numberAttribute }) offset: number | null = defaultOffsetYWithArrow;\n\n /** Array of sites */\n @Input()\n get sites(): KbqAppSwitcherSite[] {\n return this._parsedSites;\n }\n\n set sites(value: KbqAppSwitcherSite[]) {\n this.originalSites = value;\n\n if (this.originalSites.length === 1) {\n this._parsedApps = this.makeGroupsForApps(\n this.originalSites[0].apps,\n KBQ_MIN_NUMBER_OF_APPS_TO_ENABLE_GROUPING\n );\n } else {\n this._parsedSites = [];\n\n value.forEach((site: KbqAppSwitcherSite) => {\n const newSite: KbqAppSwitcherSite = { ...site, apps: [] };\n\n newSite.apps = this.makeGroupsForApps(site.apps, KBQ_MIN_NUMBER_OF_APPS_TO_ENABLE_GROUPING);\n\n this._parsedSites.push(newSite);\n });\n }\n }\n\n private _parsedSites: KbqAppSwitcherSite[];\n\n /**\n * @deprecated Will be removed in next major release, use `sites` with one element instead.\n */\n @Input()\n get apps(): KbqAppSwitcherApp[] {\n return this._parsedApps;\n }\n\n set apps(apps: KbqAppSwitcherApp[]) {\n this.originalApps = apps;\n\n this._parsedApps = this.makeGroupsForApps(this.originalApps, KBQ_MIN_NUMBER_OF_APPS_TO_ENABLE_GROUPING);\n }\n\n private makeGroupsForApps(apps: KbqAppSwitcherApp[], minAppsForGrouping: number): KbqAppSwitcherApp[] {\n const groups: Record<string, KbqAppSwitcherApp> = {};\n const untyped: KbqAppSwitcherApp[] = [];\n const groupedApps: KbqAppSwitcherApp[] = [];\n\n apps.forEach((app) => {\n this.groupBy(app, groups, untyped);\n });\n\n Object.values(groups).forEach((group) => {\n if (group.aliases && group.aliases.length > minAppsForGrouping) {\n groupedApps.push(group);\n } else {\n untyped.push(...group.aliases!);\n }\n });\n\n groupedApps.push(...untyped);\n\n return groupedApps;\n }\n\n private _parsedApps: KbqAppSwitcherApp[];\n\n /** Function to group the apps by type. The first argument is an app object with type.\n * The second is a groups object and third is an array for untyped apps */\n @Input()\n get groupBy() {\n return this._groupBy;\n }\n\n set groupBy(\n fn: (app: KbqAppSwitcherApp, groups: Record<string, KbqAppSwitcherApp>, untyped: KbqAppSwitcherApp[]) => void\n ) {\n if (typeof fn !== 'function') {\n throw new Error('The argument must be a function');\n }\n\n this._groupBy = fn;\n }\n\n private _groupBy = defaultGroupBy;\n\n /** Selected site */\n @Input()\n get selectedSite(): KbqAppSwitcherSite {\n return this._parsedSelectedSite;\n }\n\n set selectedSite(value: KbqAppSwitcherSite) {\n const originValue = this.originalSites.find((site) => value.id === site.id) as KbqAppSwitcherSite;\n const newSite: KbqAppSwitcherSite = { ...originValue, apps: [] };\n\n newSite.apps = this.makeGroupsForApps(originValue.apps, KBQ_MIN_NUMBER_OF_APPS_TO_ENABLE_GROUPING);\n\n this._parsedSelectedSite = newSite;\n }\n\n private _parsedSelectedSite: KbqAppSwitcherSite;\n\n /** Whether the trigger is disabled. */\n @Input({ transform: booleanAttribute })\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n\n if (this._disabled) {\n this.hide();\n }\n }\n\n /** @docs-private */\n get hasClickTrigger(): boolean {\n return this.trigger.includes(PopUpTriggers.Click);\n }\n\n /** Emits a change event whenever the placement state changes. */\n @Output('kbqPlacementChange') readonly placementChange = new EventEmitter();\n\n /** Emits a change event whenever the visible state changes. */\n @Output('kbqVisibleChange') readonly visibleChange = new EventEmitter<boolean>();\n\n /** @docs-private */\n @Output() readonly selectedSiteChange = new EventEmitter<KbqAppSwitcherSite>();\n /** @docs-private */\n @Output() readonly selectedAppChange = new EventEmitter<KbqAppSwitcherApp>();\n\n /** @docs-private */\n trigger: string = `${PopUpTriggers.Click}, ${PopUpTriggers.Keydown}`;\n\n /** @docs-private */\n originalSites: KbqAppSwitcherSite[];\n /** @docs-private */\n originalApps: KbqAppSwitcherApp[];\n\n /** @docs-private */\n protected originSelector = '.kbq-app-switcher';\n\n /** @docs-private */\n protected get overlayConfig(): OverlayConfig {\n return {\n panelClass: 'kbq-app-switcher__panel',\n hasBackdrop: this.hasBackdrop,\n backdropClass: this.backdropClass\n };\n }\n\n /** @docs-private */\n protected preventClosingByInnerScrollSubscription: Subscription;\n\n ngOnInit(): void {\n super.ngOnInit();\n\n this.scrollable\n ?.elementScrolled()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(this.hideIfNotInViewPort);\n }\n\n ngAfterContentInit(): void {\n if (this.closeOnScroll === null) {\n this.scrollDispatcher.scrolled().subscribe((scrollable: CdkScrollable | void) => {\n if (!scrollable?.getElementRef().nativeElement.classList.contains('kbq-hide-nested-popup')) return;\n\n const parentRects = scrollable.getElementRef().nativeElement.getBoundingClientRect();\n const childRects = this.elementRef.nativeElement.getBoundingClientRect();\n\n if (childRects.bottom < parentRects.top || childRects.top > parentRects.bottom) {\n this.hide();\n }\n });\n }\n\n this.visibleChange.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((visible: boolean) => {\n if (visible) {\n // eslint-disable-next-line rxjs/no-nested-subscribe\n this.preventClosingByInnerScrollSubscription = this.closingActions().subscribe((event) => {\n if (event['scrollDispatcher']) {\n event['kbqPopoverPreventHide'] = true;\n event['type'] = 'click';\n }\n });\n } else {\n this.preventClosingByInnerScrollSubscription.unsubscribe();\n this.focus();\n }\n });\n }\n\n /** @docs-private */\n updateData() {\n if (!this.instance) return;\n\n this.instance.header = this.header;\n this.instance.content = this.content;\n this.instance.arrow = this.arrow;\n this.instance.offset = this.offset;\n this.instance.footer = this.footer;\n\n this.instance.updateTrapFocus(this.trigger !== PopUpTriggers.Focus);\n\n if (this.isOpen) {\n this.updatePosition(true);\n }\n }\n\n /** Updates the current position.\n * @docs-private */\n updatePosition(reapplyPosition: boolean = false) {\n this.overlayRef = this.createOverlay();\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 /** @docs-private */\n getOverlayHandleComponentType(): Type<KbqAppSwitcherComponent> {\n return KbqAppSwitcherComponent;\n }\n\n /** @docs-private */\n updateClassMap(newPlacement: string = this.placement) {\n if (!this.instance) return;\n\n this.instance.updateClassMap(POSITION_TO_CSS_MAP[newPlacement], this.customClass, this.size);\n this.instance.markForCheck();\n }\n\n /** @docs-private */\n closingActions() {\n return merge(\n this.overlayRef!.outsidePointerEvents(),\n this.overlayRef!.backdropClick(),\n this.scrollDispatcher.scrolled()\n );\n }\n\n private hideIfNotInViewPort = () => {\n if (!this.scrollable) return;\n\n const rect = this.elementRef.nativeElement.getBoundingClientRect();\n const containerRect = this.scrollable.getElementRef().nativeElement.getBoundingClientRect();\n\n if (\n !(\n rect.bottom >= containerRect.top &&\n rect.right >= containerRect.left &&\n rect.top <= containerRect.bottom &&\n rect.left <= containerRect.right\n )\n ) {\n this.hide();\n }\n };\n}\n","@if (trigger.withSearch) {\n <div class=\"kbq-app-switcher__search-container\" (mouseenter)=\"otherSites?.close()\">\n <kbq-form-field noBorders>\n <i kbq-icon=\"kbq-magnifying-glass_16\" kbqPrefix></i>\n <input\n placeholder=\"{{ localeData.searchPlaceholder }}\"\n autocomplete=\"off\"\n kbqInput\n [formControl]=\"searchControl\"\n (keydown.escape)=\"escapeHandler()\"\n />\n <kbq-cleaner />\n </kbq-form-field>\n </div>\n\n <kbq-divider />\n}\n\n<div kbq-scrollbar>\n @if (!searchControl.getRawValue()) {\n <div class=\"kbq-app-switcher__app-container\" (mouseenter)=\"otherSites?.close()\">\n @if (trigger.sitesMode) {\n <div class=\"kbq-app-switcher-group-header\">\n <div class=\"kbq-app-switcher-group-header__text\">{{ trigger.selectedSite?.name }}</div>\n @if (trigger.selectedSite?.status) {\n <kbq-badge class=\"kbq-app-switcher-group-header__badge\" [compact]=\"true\">\n {{ trigger.selectedSite.status }}\n </kbq-badge>\n }\n </div>\n }\n\n <kbq-dropdown [class]=\"'kbq-app-switcher-sites'\">\n <div kbqDropdownStaticContent class=\"kbq-app-switcher-site\">\n @for (app of trigger.currentApps; track app) {\n @if (!app.aliases) {\n <a\n href=\"{{ app.link }}\"\n kbq-app-switcher-list-item\n [class.kbq-selected]=\"app.id === trigger.selectedApp?.id\"\n [app]=\"app\"\n [toggle]=\"!!app.aliases\"\n ></a>\n } @else {\n <div\n #appSwitcherApp=\"kbqAppSwitcherApp\"\n kbq-app-switcher-list-item\n [app]=\"app\"\n [toggle]=\"!!app.aliases\"\n ></div>\n\n @if (!appSwitcherApp.collapsed) {\n @for (alias of app.aliases; track alias) {\n <a\n href=\"{{ alias.link }}\"\n class=\"kbq-app-switcher-site_nested\"\n kbq-app-switcher-list-item\n [class.kbq-selected]=\"alias.id === trigger.selectedApp?.id\"\n [app]=\"alias\"\n ></a>\n }\n }\n }\n }\n </div>\n </kbq-dropdown>\n </div>\n\n @if (trigger.sitesMode) {\n <kbq-divider />\n\n <div class=\"kbq-app-switcher__sites-container\">\n <div class=\"kbq-app-switcher-group-header\">\n <div class=\"kbq-app-switcher-group-header__text\">{{ localeData.sitesHeader }}</div>\n </div>\n\n <kbq-dropdown #otherSites=\"kbqDropdown\">\n <div kbqDropdownStaticContent class=\"kbq-app-switcher-sites\">\n @for (site of trigger.sites; track site) {\n @if (site.id !== trigger.selectedSite?.id) {\n <div\n [kbq-app-switcher-dropdown-site]=\"site\"\n [kbqDropdownTriggerFor]=\"dropdownWithSelectedSite\"\n [offsetX]=\"0\"\n (mouseenter)=\"activeSite = site\"\n ></div>\n }\n }\n </div>\n </kbq-dropdown>\n </div>\n\n <kbq-dropdown #dropdownWithSelectedSite=\"kbqDropdown\" [class]=\"'kbq-app-switcher-sites'\">\n @for (app of activeSite?.apps; track app) {\n @if (app.aliases) {\n <div\n #dropdownWithGroupedAppsTrigger=\"kbqDropdownTrigger\"\n [kbq-app-switcher-dropdown-app]=\"app\"\n [kbqDropdownTriggerFor]=\"dropdownWithGroupedApps\"\n [offsetX]=\"0\"\n [class.kbq-pressed]=\"dropdownWithGroupedAppsTrigger.opened\"\n (mouseenter)=\"activeApp = app\"\n ></div>\n } @else {\n <a\n href=\"{{ app.link }}\"\n [kbq-app-switcher-dropdown-app]=\"app\"\n (click)=\"selectAppInSite(activeSite, app)\"\n ></a>\n }\n }\n </kbq-dropdown>\n\n <kbq-dropdown #dropdownWithGroupedApps=\"kbqDropdown\" [class]=\"'kbq-app-switcher-sites'\">\n @for (alias of activeApp?.aliases; track alias) {\n <a\n href=\"{{ alias.link }}\"\n [kbq-app-switcher-dropdown-app]=\"alias\"\n (click)=\"selectAppInSite(activeSite, alias)\"\n ></a>\n }\n </kbq-dropdown>\n }\n } @else {\n <div class=\"kbq-app-switcher__search-result\">\n <kbq-dropdown [class]=\"'kbq-app-switcher-sites'\">\n <div kbqDropdownStaticContent class=\"kbq-app-switcher-site\">\n @for (site of filteredSites; track site) {\n @if (trigger.sitesMode && site.apps) {\n <kbq-optgroup label=\"{{ site.name }}\" />\n }\n\n @for (app of site.apps; track app) {\n <a href=\"{{ app.link }}\" kbq-app-switcher-list-item [app]=\"app\"></a>\n }\n } @empty {\n <div class=\"kbq-app-switcher__empty-search-result\">{{ localeData.searchEmptyResult }}</div>\n }\n </div>\n </kbq-dropdown>\n </div>\n }\n</div>\n","import { ConfigurableFocusTrapFactory, FOCUS_TRAP_INERT_STRATEGY, FocusTrapFactory } from '@angular/cdk/a11y';\nimport { NgModule } from '@angular/core';\nimport { EmptyFocusTrapStrategy } from '@koobiq/components/core';\nimport {\n KBQ_APP_SWITCHER_SCROLL_STRATEGY_FACTORY_PROVIDER,\n KbqAppSwitcherComponent,\n KbqAppSwitcherTrigger\n} from './app-switcher';\nimport { KbqAppSwitcherDropdownApp } from './app-switcher-dropdown-app';\nimport { KbqAppSwitcherDropdownSite } from './app-switcher-dropdown-site';\nimport { KbqAppSwitcherListItem } from './kbq-app-switcher-list-item';\n\n@NgModule({\n imports: [\n KbqAppSwitcherComponent,\n KbqAppSwitcherTrigger,\n KbqAppSwitcherListItem,\n KbqAppSwitcherDropdownApp,\n KbqAppSwitcherDropdownSite\n ],\n exports: [\n KbqAppSwitcherTrigger\n ],\n providers: [\n KBQ_APP_SWITCHER_SCROLL_STRATEGY_FACTORY_PROVIDER,\n { provide: FocusTrapFactory, useClass: ConfigurableFocusTrapFactory },\n { provide: FOCUS_TRAP_INERT_STRATEGY, useClass: EmptyFocusTrapStrategy }\n ]\n})\nexport class KbqAppSwitcherModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i6"],"mappings":"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"}
1
+ {"version":3,"file":"koobiq-components-app-switcher.mjs","sources":["../../../packages/components/app-switcher/app-switcher-animations.ts","../../../packages/components/app-switcher/app-switcher-dropdown-app.ts","../../../packages/components/app-switcher/app-switcher-dropdown-site.ts","../../../packages/components/app-switcher/kbq-app-switcher-list-item.ts","../../../packages/components/app-switcher/app-switcher.ts","../../../packages/components/app-switcher/app-switcher.html","../../../packages/components/app-switcher/app-switcher.module.ts","../../../packages/components/app-switcher/koobiq-components-app-switcher.ts"],"sourcesContent":["import { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\nimport { KbqAnimationCurves, KbqAnimationDurations } from '@koobiq/components/core';\n\n/** @docs-private */\nexport const kbqAppSwitcherAnimations: {\n readonly state: AnimationTriggerMetadata;\n} = {\n /** Animation that transitions a tooltip in and out. */\n state: trigger('state', [\n state(\n 'initial',\n style({\n opacity: 0,\n transform: 'scale(1, 0.8)'\n })\n ),\n transition(\n '* => visible',\n animate(\n `120ms ${KbqAnimationCurves.DecelerationCurve}`,\n style({\n opacity: 1,\n transform: 'scale(1, 1)'\n })\n )\n ),\n transition('* => hidden', animate(`${KbqAnimationDurations.Rapid} linear`, style({ opacity: 0 })))\n ])\n};\n","import { NgOptimizedImage } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, Input, ViewEncapsulation } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { KBQ_TITLE_TEXT_REF } from '@koobiq/components/core';\nimport { KbqDropdownItem } from '@koobiq/components/dropdown';\nimport { KbqIcon } from '@koobiq/components/icon';\nimport { KbqAppSwitcherApp } from './app-switcher';\n\n/** @docs-private */\n@Component({\n selector: '[kbq-app-switcher-dropdown-app]',\n imports: [KbqIcon, NgOptimizedImage],\n template: `\n <i class=\"kbq kbq-icon\" [className]=\"\"></i>\n @if (app.icon) {\n <span class=\"kbq-app-switcher-dropdown-app__icon\" [innerHtml]=\"getIcon(app.icon)\"></span>\n } @else if (app.iconSrc) {\n <span class=\"kbq-app-switcher-dropdown-app__icon\">\n <img alt=\"{{ app.type }}\" width=\"24\" height=\"24\" [ngSrc]=\"app.iconSrc\" />\n </span>\n }\n\n <div class=\"kbq-app-switcher-dropdown-app__container\">\n <div class=\"kbq-app-switcher-dropdown-app__name\">\n <span>{{ app.name }}</span>\n\n @if (isNested) {\n <i\n kbq-icon=\"kbq-chevron-right-s_16\"\n class=\"kbq-app-switcher-dropdown-item-trigger__icon\"\n [color]=\"componentColors.ContrastFade\"\n ></i>\n }\n </div>\n @if (app.caption) {\n <div class=\"kbq-app-switcher-dropdown-app__caption\">{{ app.caption }}</div>\n }\n </div>\n `,\n styleUrls: ['app-switcher-dropdown-app.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'kbqAppSwitcherDropdownApp',\n host: {\n class: 'kbq-app-switcher-dropdown-app',\n '[class.kbq-dropdown-item]': 'false'\n },\n providers: [\n { provide: KBQ_TITLE_TEXT_REF, useExisting: KbqAppSwitcherDropdownApp },\n { provide: KbqDropdownItem, useExisting: KbqAppSwitcherDropdownApp }\n ]\n})\nexport class KbqAppSwitcherDropdownApp extends KbqDropdownItem {\n private sanitizer = inject(DomSanitizer);\n\n @Input('kbq-app-switcher-dropdown-app') app: KbqAppSwitcherApp;\n\n getIcon(icon: string | null) {\n return this.sanitizer.bypassSecurityTrustHtml(icon || '');\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { KbqBadgeModule } from '@koobiq/components/badge';\nimport { KBQ_TITLE_TEXT_REF } from '@koobiq/components/core';\nimport { KbqDropdownItem } from '@koobiq/components/dropdown';\nimport { KbqIcon } from '@koobiq/components/icon';\nimport { KbqAppSwitcherSite } from './app-switcher';\n\n/** @docs-private */\n@Component({\n selector: '[kbq-app-switcher-dropdown-site]',\n imports: [\n KbqIcon,\n KbqBadgeModule\n ],\n template: `\n <span class=\"kbq-app-switcher-dropdown-site__name\">{{ site.name }}</span>\n\n @if (site.status) {\n <kbq-badge class=\"kbq-app-switcher-dropdown-site__badge\" [compact]=\"true\">{{ site.status }}</kbq-badge>\n }\n\n @if (isNested) {\n <i\n kbq-icon=\"kbq-chevron-right-s_16\"\n class=\"kbq-app-switcher-dropdown-item-trigger__icon\"\n [color]=\"componentColors.ContrastFade\"\n ></i>\n }\n `,\n styleUrls: ['app-switcher-dropdown-site.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'kbqAppSwitcherDropdownSite',\n host: {\n class: 'kbq-app-switcher-dropdown-site',\n '[class.kbq-dropdown-item]': 'false'\n },\n providers: [\n { provide: KBQ_TITLE_TEXT_REF, useExisting: KbqAppSwitcherDropdownSite },\n { provide: KbqDropdownItem, useExisting: KbqAppSwitcherDropdownSite }\n ]\n})\nexport class KbqAppSwitcherDropdownSite extends KbqDropdownItem {\n @Input('kbq-app-switcher-dropdown-site') site: KbqAppSwitcherSite;\n}\n","import { NgOptimizedImage } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, inject, Input, ViewEncapsulation } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { KBQ_TITLE_TEXT_REF } from '@koobiq/components/core';\nimport { KbqDropdownItem } from '@koobiq/components/dropdown';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqAppSwitcherApp } from './app-switcher';\n\n/** @docs-private */\n@Component({\n selector: '[kbq-app-switcher-list-item]',\n imports: [\n KbqIconModule,\n NgOptimizedImage\n ],\n template: `\n @if (app.icon) {\n <span class=\"kbq-app-switcher-list-item__icon\" [innerHtml]=\"getIcon(app.icon)\"></span>\n } @else if (app.iconSrc) {\n <span class=\"kbq-app-switcher-list-item__icon\">\n <img alt=\"{{ app.type }}\" width=\"24\" height=\"24\" [ngSrc]=\"app.iconSrc\" />\n </span>\n }\n\n <div class=\"kbq-app-switcher-list-item__container\">\n <div class=\"kbq-app-switcher-list-item__name\">{{ app.name }}</div>\n @if (app.caption) {\n <div class=\"kbq-app-switcher-list-item__caption\">{{ app.caption }}</div>\n }\n </div>\n\n @if (toggle) {\n <div class=\"kbq-app-switcher-list-item__toggle\" [class.kbq-expanded]=\"!collapsed\">\n <i kbq-icon=\"kbq-chevron-down-s_16\" [color]=\"'contrast-fade'\"></i>\n </div>\n }\n `,\n styleUrls: ['kbq-app-switcher-list-item.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'kbqAppSwitcherApp',\n host: {\n class: 'kbq-app-switcher-list-item',\n '[class.kbq-dropdown-item]': 'false',\n '(click)': 'clickHandler($event)'\n },\n providers: [\n { provide: KBQ_TITLE_TEXT_REF, useExisting: KbqAppSwitcherListItem },\n { provide: KbqDropdownItem, useExisting: KbqAppSwitcherListItem }\n ]\n})\nexport class KbqAppSwitcherListItem extends KbqDropdownItem {\n private sanitizer = inject(DomSanitizer);\n\n @Input() app: KbqAppSwitcherApp;\n @Input({ transform: booleanAttribute }) toggle = false;\n @Input({ transform: booleanAttribute }) collapsed: boolean = false;\n\n clickHandler(event: MouseEvent) {\n if (this.toggle) {\n event.stopPropagation();\n event.preventDefault();\n\n this.collapsed = !this.collapsed;\n }\n }\n\n getIcon(icon: string | null) {\n return this.sanitizer.bypassSecurityTrustHtml(icon || '');\n }\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n CdkScrollable,\n FlexibleConnectedPositionStrategy,\n Overlay,\n OverlayConfig,\n ScrollStrategy\n} from '@angular/cdk/overlay';\n\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n Directive,\n EventEmitter,\n InjectionToken,\n Input,\n OnInit,\n Output,\n TemplateRef,\n Type,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n numberAttribute\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { KbqBadgeModule } from '@koobiq/components/badge';\nimport {\n KBQ_LOCALE_SERVICE,\n KbqOptionModule,\n KbqPopUp,\n KbqPopUpPlacementValues,\n KbqPopUpSizeValues,\n KbqPopUpTrigger,\n POSITION_TO_CSS_MAP,\n PopUpPlacements,\n PopUpSizes,\n PopUpTriggers,\n applyPopupMargins,\n ruRULocaleData\n} from '@koobiq/components/core';\nimport { KbqDividerModule } from '@koobiq/components/divider';\nimport { KbqDropdownModule, KbqDropdownTrigger } from '@koobiq/components/dropdown';\nimport { KbqFormFieldModule } from '@koobiq/components/form-field';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqInput, KbqInputModule } from '@koobiq/components/input';\nimport { defaultOffsetYWithArrow } from '@koobiq/components/popover';\nimport { KbqScrollbarModule } from '@koobiq/components/scrollbar';\nimport { Subscription, merge } from 'rxjs';\nimport { kbqAppSwitcherAnimations } from './app-switcher-animations';\nimport { KbqAppSwitcherDropdownApp } from './app-switcher-dropdown-app';\nimport { KbqAppSwitcherDropdownSite } from './app-switcher-dropdown-site';\nimport { KbqAppSwitcherListItem } from './kbq-app-switcher-list-item';\n\nexport interface KbqAppSwitcherApp {\n name: string;\n id: string | number;\n type?: string | number;\n /** Inline SVG markup for the application icon. Use this for SVG icons that should be rendered directly in the DOM. */\n icon?: string;\n /** Path to the icon file (URL or relative path). */\n iconSrc?: string;\n caption?: string;\n aliases?: KbqAppSwitcherApp[];\n link?: string;\n}\n\nexport interface KbqAppSwitcherSite {\n name: string;\n id: string | number;\n status?: string;\n /** Inline SVG markup for the site icon. Use this for SVG icons that should be rendered directly in the DOM. */\n icon?: string;\n /** Path to the icon file (URL or relative path). */\n iconSrc?: string;\n apps: KbqAppSwitcherApp[];\n}\n\n/** @docs-private */\nexport function defaultGroupBy(\n app: KbqAppSwitcherApp,\n groups: Record<string, KbqAppSwitcherApp>,\n untyped: KbqAppSwitcherApp[]\n) {\n if (!app.type) {\n untyped.push(app);\n } else {\n const appType = app.type.toString();\n\n if (groups[appType]) {\n groups[appType].aliases!.push(app);\n } else {\n groups[appType] = {\n name: appType,\n aliases: [app],\n icon: app.icon,\n iconSrc: app.iconSrc,\n id: ''\n };\n }\n }\n}\n\nexport const KBQ_MIN_NUMBER_OF_APPS_TO_ENABLE_SEARCH: number = 7;\nexport const KBQ_MIN_NUMBER_OF_APPS_TO_ENABLE_GROUPING: number = 3;\n\n/** @docs-private */\nexport const KBQ_APP_SWITCHER_SCROLL_STRATEGY = new InjectionToken<() => ScrollStrategy>(\n 'kbq-app-switcher-scroll-strategy'\n);\n\n/** @docs-private */\nexport function kbqAppSwitcherScrollStrategyFactory(overlay: Overlay): () => ScrollStrategy {\n return () => overlay.scrollStrategies.reposition({ scrollThrottle: 20 });\n}\n\n/** @docs-private */\nexport const KBQ_APP_SWITCHER_SCROLL_STRATEGY_FACTORY_PROVIDER = {\n provide: KBQ_APP_SWITCHER_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: kbqAppSwitcherScrollStrategyFactory\n};\n\n/** default configuration of app-switcher */\n/** @docs-private */\nexport const KBQ_APP_SWITCHER_DEFAULT_CONFIGURATION = ruRULocaleData.appSwitcher;\n\n/** Injection Token for providing configuration of app-switcher */\n/** @docs-private */\nexport const KBQ_APP_SWITCHER_CONFIGURATION = new InjectionToken('KbqAppSwitcherConfiguration');\n\n/** @docs-private */\n@Component({\n selector: 'kbq-app-switcher',\n imports: [\n FormsModule,\n ReactiveFormsModule,\n KbqFormFieldModule,\n KbqInputModule,\n KbqIconModule,\n KbqDividerModule,\n KbqBadgeModule,\n KbqDropdownModule,\n KbqScrollbarModule,\n KbqOptionModule,\n KbqAppSwitcherDropdownApp,\n KbqAppSwitcherDropdownSite,\n KbqAppSwitcherListItem\n ],\n templateUrl: './app-switcher.html',\n styleUrls: ['./app-switcher.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n host: {\n class: 'kbq-app-switcher'\n },\n animations: [kbqAppSwitcherAnimations.state]\n})\nexport class KbqAppSwitcherComponent extends KbqPopUp implements AfterViewInit {\n /** @docs-private */\n protected readonly localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });\n\n readonly externalConfiguration = inject(KBQ_APP_SWITCHER_CONFIGURATION, { optional: true });\n\n configuration;\n\n /** localized data\n * @docs-private */\n get localeData() {\n return this.configuration;\n }\n\n /** @docs-private */\n readonly searchControl = new FormControl('');\n\n /** @docs-private */\n filteredSites: KbqAppSwitcherSite[];\n\n /** @docs-private */\n prefix = 'kbq-app-switcher';\n\n /** @docs-private */\n @Input() trigger: KbqAppSwitcherTrigger;\n\n /** @docs-private */\n isTrapFocus: boolean = false;\n\n /** @docs-private */\n protected activeSite: KbqAppSwitcherSite;\n /** @docs-private */\n protected activeApp: KbqAppSwitcherApp;\n\n /** @docs-private */\n @ViewChild(KbqInput) input: KbqInput;\n /** @docs-private */\n @ViewChild('otherSites') otherSites: KbqDropdownTrigger;\n\n constructor() {\n super();\n\n this.localeService?.changes.pipe(takeUntilDestroyed()).subscribe(this.updateLocaleParams);\n\n if (!this.localeService) {\n this.initDefaultParams();\n }\n }\n\n ngAfterViewInit() {\n if (this.input) {\n this.input.focus();\n }\n\n this.visibleChange.subscribe((state) => {\n if (this.offset !== null && state) {\n applyPopupMargins(\n this.renderer,\n this.elementRef.nativeElement,\n this.prefix,\n `${this.offset!.toString()}px`\n );\n }\n });\n\n this.searchControl.valueChanges.subscribe((value) => (this.filteredSites = this.filterSites(value)));\n }\n\n /** @docs-private */\n updateClassMap(placement: string, customClass: string, size: KbqPopUpSizeValues) {\n super.updateClassMap(placement, customClass, { [`${this.prefix}_${size}`]: !!size });\n }\n\n /** @docs-private */\n updateTrapFocus(isTrapFocus: boolean): void {\n this.isTrapFocus = isTrapFocus;\n }\n\n /** @docs-private */\n escapeHandler() {\n this.hide(0);\n }\n\n /** @docs-private */\n selectAppInSite(site: KbqAppSwitcherSite, app: KbqAppSwitcherApp) {\n this.trigger.selectedSite = site;\n this.trigger.selectedApp = app;\n\n this.trigger.selectedSiteChange.emit(site);\n this.trigger.selectedAppChange.emit(app);\n }\n\n private filterSites(query: string | null): KbqAppSwitcherSite[] {\n const filteredSites = structuredClone(this.trigger.originalSites);\n\n return query\n ? filteredSites.filter((site) => {\n const filteredApps = site.apps.filter((app) => app.name.toLowerCase().includes(query.toLowerCase()));\n\n if (filteredApps.length) {\n site.apps = filteredApps;\n\n return true;\n }\n\n return false;\n })\n : filteredSites;\n }\n\n private updateLocaleParams = () => {\n this.configuration = this.externalConfiguration || this.localeService?.getParams('appSwitcher');\n\n this.changeDetectorRef.markForCheck();\n };\n\n private initDefaultParams() {\n this.configuration = KBQ_APP_SWITCHER_DEFAULT_CONFIGURATION;\n }\n}\n\n@Directive({\n selector: '[kbqAppSwitcher]',\n exportAs: 'kbqAppSwitcher',\n host: {\n '[class.kbq-app-switcher_open]': 'isOpen',\n '[class.kbq-active]': 'hasClickTrigger && isOpen',\n '(keydown)': 'keydownHandler($event)',\n '(touchend)': 'touchendHandler()'\n }\n})\nexport class KbqAppSwitcherTrigger\n extends KbqPopUpTrigger<KbqAppSwitcherComponent>\n implements AfterContentInit, OnInit\n{\n /** @docs-private */\n protected scrollStrategy: () => ScrollStrategy = inject(KBQ_APP_SWITCHER_SCROLL_STRATEGY);\n\n // not used\n /** @docs-private */\n arrow: boolean = false;\n /** @docs-private */\n customClass: string;\n /** @docs-private */\n private hasBackdrop: boolean = false;\n /** @docs-private */\n private size: KbqPopUpSizeValues = PopUpSizes.Medium;\n /** @docs-private */\n content: string | TemplateRef<any>;\n /** @docs-private */\n header: string | TemplateRef<any>;\n /** @docs-private */\n footer: string | TemplateRef<any>;\n /** @docs-private */\n private closeOnScroll: null;\n\n /** Whether search is used or not */\n get withSearch(): boolean {\n return this.appsCount > KBQ_MIN_NUMBER_OF_APPS_TO_ENABLE_SEARCH;\n }\n\n /** Number of applications to choose from\n * @docs-private */\n get appsCount(): number {\n return this.originalSites.reduce((acc, site) => acc + site.apps.length, 0);\n }\n\n /** Whether the sites are used or not\n * @docs-private */\n get sitesMode(): boolean {\n return this.originalSites.length > 1;\n }\n\n /** @docs-private */\n get currentApps() {\n return this.sitesMode ? this.selectedSite.apps : this._parsedApps;\n }\n\n /** Selected application */\n @Input() selectedApp: KbqAppSwitcherApp;\n\n /** Placement of popUp */\n @Input('kbqAppSwitcherPlacement') placement: KbqPopUpPlacementValues = PopUpPlacements.BottomLeft;\n\n /** Class that will be used in the background */\n @Input() backdropClass: string = 'cdk-overlay-transparent-backdrop';\n\n /** Offset of popUp */\n @Input({ transform: numberAttribute }) offset: number | null = defaultOffsetYWithArrow;\n\n /** Array of sites */\n @Input()\n get sites(): KbqAppSwitcherSite[] {\n return this._parsedSites;\n }\n\n set sites(value: KbqAppSwitcherSite[]) {\n this.originalSites = value;\n\n if (this.originalSites.length === 1) {\n this._parsedApps = this.makeGroupsForApps(\n this.originalSites[0].apps,\n KBQ_MIN_NUMBER_OF_APPS_TO_ENABLE_GROUPING\n );\n } else {\n this._parsedSites = [];\n\n value.forEach((site: KbqAppSwitcherSite) => {\n const newSite: KbqAppSwitcherSite = { ...site, apps: [] };\n\n newSite.apps = this.makeGroupsForApps(site.apps, KBQ_MIN_NUMBER_OF_APPS_TO_ENABLE_GROUPING);\n\n this._parsedSites.push(newSite);\n });\n }\n }\n\n private _parsedSites: KbqAppSwitcherSite[];\n\n /**\n * @deprecated Will be removed in next major release, use `sites` with one element instead.\n */\n @Input()\n get apps(): KbqAppSwitcherApp[] {\n return this._parsedApps;\n }\n\n set apps(apps: KbqAppSwitcherApp[]) {\n this.originalApps = apps;\n\n this._parsedApps = this.makeGroupsForApps(this.originalApps, KBQ_MIN_NUMBER_OF_APPS_TO_ENABLE_GROUPING);\n }\n\n private makeGroupsForApps(apps: KbqAppSwitcherApp[], minAppsForGrouping: number): KbqAppSwitcherApp[] {\n const groups: Record<string, KbqAppSwitcherApp> = {};\n const untyped: KbqAppSwitcherApp[] = [];\n const groupedApps: KbqAppSwitcherApp[] = [];\n\n apps.forEach((app) => {\n this.groupBy(app, groups, untyped);\n });\n\n Object.values(groups).forEach((group) => {\n if (group.aliases && group.aliases.length > minAppsForGrouping) {\n groupedApps.push(group);\n } else {\n untyped.push(...group.aliases!);\n }\n });\n\n groupedApps.push(...untyped);\n\n return groupedApps;\n }\n\n private _parsedApps: KbqAppSwitcherApp[];\n\n /** Function to group the apps by type. The first argument is an app object with type.\n * The second is a groups object and third is an array for untyped apps */\n @Input()\n get groupBy() {\n return this._groupBy;\n }\n\n set groupBy(\n fn: (app: KbqAppSwitcherApp, groups: Record<string, KbqAppSwitcherApp>, untyped: KbqAppSwitcherApp[]) => void\n ) {\n if (typeof fn !== 'function') {\n throw new Error('The argument must be a function');\n }\n\n this._groupBy = fn;\n }\n\n private _groupBy = defaultGroupBy;\n\n /** Selected site */\n @Input()\n get selectedSite(): KbqAppSwitcherSite {\n return this._parsedSelectedSite;\n }\n\n set selectedSite(value: KbqAppSwitcherSite) {\n const originValue = this.originalSites.find((site) => value.id === site.id) as KbqAppSwitcherSite;\n const newSite: KbqAppSwitcherSite = { ...originValue, apps: [] };\n\n newSite.apps = this.makeGroupsForApps(originValue.apps, KBQ_MIN_NUMBER_OF_APPS_TO_ENABLE_GROUPING);\n\n this._parsedSelectedSite = newSite;\n }\n\n private _parsedSelectedSite: KbqAppSwitcherSite;\n\n /** Whether the trigger is disabled. */\n @Input({ transform: booleanAttribute })\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n\n if (this._disabled) {\n this.hide();\n }\n }\n\n /** @docs-private */\n get hasClickTrigger(): boolean {\n return this.trigger.includes(PopUpTriggers.Click);\n }\n\n /** Emits a change event whenever the placement state changes. */\n @Output('kbqPlacementChange') readonly placementChange = new EventEmitter();\n\n /** Emits a change event whenever the visible state changes. */\n @Output('kbqVisibleChange') readonly visibleChange = new EventEmitter<boolean>();\n\n /** @docs-private */\n @Output() readonly selectedSiteChange = new EventEmitter<KbqAppSwitcherSite>();\n /** @docs-private */\n @Output() readonly selectedAppChange = new EventEmitter<KbqAppSwitcherApp>();\n\n /** @docs-private */\n trigger: string = `${PopUpTriggers.Click}, ${PopUpTriggers.Keydown}`;\n\n /** @docs-private */\n originalSites: KbqAppSwitcherSite[];\n /** @docs-private */\n originalApps: KbqAppSwitcherApp[];\n\n /** @docs-private */\n protected originSelector = '.kbq-app-switcher';\n\n /** @docs-private */\n protected get overlayConfig(): OverlayConfig {\n return {\n panelClass: 'kbq-app-switcher__panel',\n hasBackdrop: this.hasBackdrop,\n backdropClass: this.backdropClass\n };\n }\n\n /** @docs-private */\n protected preventClosingByInnerScrollSubscription: Subscription;\n\n ngOnInit(): void {\n super.ngOnInit();\n\n this.scrollable\n ?.elementScrolled()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(this.hideIfNotInViewPort);\n }\n\n ngAfterContentInit(): void {\n if (this.closeOnScroll === null) {\n this.scrollDispatcher.scrolled().subscribe((scrollable: CdkScrollable | void) => {\n if (!scrollable?.getElementRef().nativeElement.classList.contains('kbq-hide-nested-popup')) return;\n\n const parentRects = scrollable.getElementRef().nativeElement.getBoundingClientRect();\n const childRects = this.elementRef.nativeElement.getBoundingClientRect();\n\n if (childRects.bottom < parentRects.top || childRects.top > parentRects.bottom) {\n this.hide();\n }\n });\n }\n\n this.visibleChange.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((visible: boolean) => {\n if (visible) {\n // eslint-disable-next-line rxjs/no-nested-subscribe\n this.preventClosingByInnerScrollSubscription = this.closingActions().subscribe((event) => {\n if (event['scrollDispatcher']) {\n event['kbqPopoverPreventHide'] = true;\n event['type'] = 'click';\n }\n });\n } else {\n this.preventClosingByInnerScrollSubscription.unsubscribe();\n this.focus();\n }\n });\n }\n\n /** @docs-private */\n updateData() {\n if (!this.instance) return;\n\n this.instance.header = this.header;\n this.instance.content = this.content;\n this.instance.arrow = this.arrow;\n this.instance.offset = this.offset;\n this.instance.footer = this.footer;\n\n this.instance.updateTrapFocus(this.trigger !== PopUpTriggers.Focus);\n\n if (this.isOpen) {\n this.updatePosition(true);\n }\n }\n\n /** Updates the current position.\n * @docs-private */\n updatePosition(reapplyPosition: boolean = false) {\n this.overlayRef = this.createOverlay();\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 /** @docs-private */\n getOverlayHandleComponentType(): Type<KbqAppSwitcherComponent> {\n return KbqAppSwitcherComponent;\n }\n\n /** @docs-private */\n updateClassMap(newPlacement: string = this.placement) {\n if (!this.instance) return;\n\n this.instance.updateClassMap(POSITION_TO_CSS_MAP[newPlacement], this.customClass, this.size);\n this.instance.markForCheck();\n }\n\n /** @docs-private */\n closingActions() {\n return merge(\n this.overlayRef!.outsidePointerEvents(),\n this.overlayRef!.backdropClick(),\n this.scrollDispatcher.scrolled()\n );\n }\n\n private hideIfNotInViewPort = () => {\n if (!this.scrollable) return;\n\n const rect = this.elementRef.nativeElement.getBoundingClientRect();\n const containerRect = this.scrollable.getElementRef().nativeElement.getBoundingClientRect();\n\n if (\n !(\n rect.bottom >= containerRect.top &&\n rect.right >= containerRect.left &&\n rect.top <= containerRect.bottom &&\n rect.left <= containerRect.right\n )\n ) {\n this.hide();\n }\n };\n}\n","@if (trigger.withSearch) {\n <div class=\"kbq-app-switcher__search-container\" (mouseenter)=\"otherSites?.close()\">\n <kbq-form-field noBorders>\n <i kbq-icon=\"kbq-magnifying-glass_16\" kbqPrefix></i>\n <input\n placeholder=\"{{ localeData.searchPlaceholder }}\"\n autocomplete=\"off\"\n kbqInput\n [formControl]=\"searchControl\"\n (keydown.escape)=\"escapeHandler()\"\n />\n <kbq-cleaner />\n </kbq-form-field>\n </div>\n\n <kbq-divider />\n}\n\n<div kbq-scrollbar>\n @if (!searchControl.getRawValue()) {\n <div class=\"kbq-app-switcher__app-container\" (mouseenter)=\"otherSites?.close()\">\n @if (trigger.sitesMode) {\n <div class=\"kbq-app-switcher-group-header\">\n <div class=\"kbq-app-switcher-group-header__text\">{{ trigger.selectedSite?.name }}</div>\n @if (trigger.selectedSite?.status) {\n <kbq-badge class=\"kbq-app-switcher-group-header__badge\" [compact]=\"true\">\n {{ trigger.selectedSite.status }}\n </kbq-badge>\n }\n </div>\n }\n\n <kbq-dropdown [class]=\"'kbq-app-switcher-sites'\">\n <div kbqDropdownStaticContent class=\"kbq-app-switcher-site\">\n @for (app of trigger.currentApps; track app) {\n @if (!app.aliases) {\n <a\n href=\"{{ app.link }}\"\n kbq-app-switcher-list-item\n [class.kbq-selected]=\"app.id === trigger.selectedApp?.id\"\n [app]=\"app\"\n [toggle]=\"!!app.aliases\"\n ></a>\n } @else {\n <div\n #appSwitcherApp=\"kbqAppSwitcherApp\"\n kbq-app-switcher-list-item\n [app]=\"app\"\n [toggle]=\"!!app.aliases\"\n ></div>\n\n @if (!appSwitcherApp.collapsed) {\n @for (alias of app.aliases; track alias) {\n <a\n href=\"{{ alias.link }}\"\n class=\"kbq-app-switcher-site_nested\"\n kbq-app-switcher-list-item\n [class.kbq-selected]=\"alias.id === trigger.selectedApp?.id\"\n [app]=\"alias\"\n ></a>\n }\n }\n }\n }\n </div>\n </kbq-dropdown>\n </div>\n\n @if (trigger.sitesMode) {\n <kbq-divider />\n\n <div class=\"kbq-app-switcher__sites-container\">\n <div class=\"kbq-app-switcher-group-header\">\n <div class=\"kbq-app-switcher-group-header__text\">{{ localeData.sitesHeader }}</div>\n </div>\n\n <kbq-dropdown #otherSites=\"kbqDropdown\">\n <div kbqDropdownStaticContent class=\"kbq-app-switcher-sites\">\n @for (site of trigger.sites; track site) {\n @if (site.id !== trigger.selectedSite?.id) {\n <div\n [kbq-app-switcher-dropdown-site]=\"site\"\n [kbqDropdownTriggerFor]=\"dropdownWithSelectedSite\"\n [offsetX]=\"0\"\n (mouseenter)=\"activeSite = site\"\n ></div>\n }\n }\n </div>\n </kbq-dropdown>\n </div>\n\n <kbq-dropdown #dropdownWithSelectedSite=\"kbqDropdown\" [class]=\"'kbq-app-switcher-sites'\">\n @for (app of activeSite?.apps; track app) {\n @if (app.aliases) {\n <div\n #dropdownWithGroupedAppsTrigger=\"kbqDropdownTrigger\"\n [kbq-app-switcher-dropdown-app]=\"app\"\n [kbqDropdownTriggerFor]=\"dropdownWithGroupedApps\"\n [offsetX]=\"0\"\n [class.kbq-pressed]=\"dropdownWithGroupedAppsTrigger.opened\"\n (mouseenter)=\"activeApp = app\"\n ></div>\n } @else {\n <a\n href=\"{{ app.link }}\"\n [kbq-app-switcher-dropdown-app]=\"app\"\n (click)=\"selectAppInSite(activeSite, app)\"\n ></a>\n }\n }\n </kbq-dropdown>\n\n <kbq-dropdown #dropdownWithGroupedApps=\"kbqDropdown\" [class]=\"'kbq-app-switcher-sites'\">\n @for (alias of activeApp?.aliases; track alias) {\n <a\n href=\"{{ alias.link }}\"\n [kbq-app-switcher-dropdown-app]=\"alias\"\n (click)=\"selectAppInSite(activeSite, alias)\"\n ></a>\n }\n </kbq-dropdown>\n }\n } @else {\n <div class=\"kbq-app-switcher__search-result\">\n <kbq-dropdown [class]=\"'kbq-app-switcher-sites'\">\n <div kbqDropdownStaticContent class=\"kbq-app-switcher-site\">\n @for (site of filteredSites; track site) {\n @if (trigger.sitesMode && site.apps) {\n <kbq-optgroup label=\"{{ site.name }}\" />\n }\n\n @for (app of site.apps; track app) {\n <a href=\"{{ app.link }}\" kbq-app-switcher-list-item [app]=\"app\"></a>\n }\n } @empty {\n <div class=\"kbq-app-switcher__empty-search-result\">{{ localeData.searchEmptyResult }}</div>\n }\n </div>\n </kbq-dropdown>\n </div>\n }\n</div>\n","import { ConfigurableFocusTrapFactory, FOCUS_TRAP_INERT_STRATEGY, FocusTrapFactory } from '@angular/cdk/a11y';\nimport { NgModule } from '@angular/core';\nimport { EmptyFocusTrapStrategy } from '@koobiq/components/core';\nimport {\n KBQ_APP_SWITCHER_SCROLL_STRATEGY_FACTORY_PROVIDER,\n KbqAppSwitcherComponent,\n KbqAppSwitcherTrigger\n} from './app-switcher';\nimport { KbqAppSwitcherDropdownApp } from './app-switcher-dropdown-app';\nimport { KbqAppSwitcherDropdownSite } from './app-switcher-dropdown-site';\nimport { KbqAppSwitcherListItem } from './kbq-app-switcher-list-item';\n\n@NgModule({\n imports: [\n KbqAppSwitcherComponent,\n KbqAppSwitcherTrigger,\n KbqAppSwitcherListItem,\n KbqAppSwitcherDropdownApp,\n KbqAppSwitcherDropdownSite\n ],\n exports: [\n KbqAppSwitcherTrigger\n ],\n providers: [\n KBQ_APP_SWITCHER_SCROLL_STRATEGY_FACTORY_PROVIDER,\n { provide: FocusTrapFactory, useClass: ConfigurableFocusTrapFactory },\n { provide: FOCUS_TRAP_INERT_STRATEGY, useClass: EmptyFocusTrapStrategy }\n ]\n})\nexport class KbqAppSwitcherModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i6"],"mappings":"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"}
@@ -166,7 +166,7 @@ class KbqAutocomplete {
166
166
  this._classList['cdk-keyboard-focused'] = this.parentFormField?.focusOrigin === 'keyboard';
167
167
  }
168
168
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqAutocomplete, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: KBQ_AUTOCOMPLETE_DEFAULT_OPTIONS }, { token: i1.KbqFormField, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
169
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.21", type: KbqAutocomplete, isStandalone: true, selector: "kbq-autocomplete", inputs: { displayWith: "displayWith", panelWidth: "panelWidth", panelMinWidth: ["panelMinWidth", "panelMinWidth", numberAttribute], classList: ["class", "classList"], autoActiveFirstOption: "autoActiveFirstOption", openOnFocus: "openOnFocus" }, outputs: { optionSelected: "optionSelected", opened: "opened", closed: "closed" }, host: { classAttribute: "kbq-autocomplete" }, providers: [
169
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.21", type: KbqAutocomplete, isStandalone: true, selector: "kbq-autocomplete", inputs: { displayWith: "displayWith", panelWidth: "panelWidth", panelMinWidth: ["panelMinWidth", "panelMinWidth", numberAttribute], classList: ["class", "classList"], autoActiveFirstOption: "autoActiveFirstOption", openOnFocus: "openOnFocus" }, outputs: { optionSelected: "optionSelected", opened: "opened", closed: "closed" }, host: { styleAttribute: "display: none", classAttribute: "kbq-autocomplete" }, providers: [
170
170
  {
171
171
  provide: KBQ_OPTION_PARENT_COMPONENT,
172
172
  useExisting: KbqAutocomplete
@@ -178,7 +178,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
178
178
  args: [{ selector: 'kbq-autocomplete', imports: [
179
179
  NgClass
180
180
  ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'kbqAutocomplete', host: {
181
- class: 'kbq-autocomplete'
181
+ class: 'kbq-autocomplete',
182
+ // Remove the empty TemplatePortal host from layout entirely — it would otherwise contribute an
183
+ // inline box in normal flow, or a phantom item in a flex/grid container.
184
+ style: 'display: none'
182
185
  }, providers: [
183
186
  {
184
187
  provide: KBQ_OPTION_PARENT_COMPONENT,
@@ -227,14 +230,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
227
230
  }] } });
228
231
 
229
232
  /**
230
- * The following style constants are necessary to save here in order
231
- * to properly calculate the scrollTop of the panel. Because we are not
232
- * actually focusing the active item, scroll must be handled manually.
233
+ * The total height of the autocomplete panel.
234
+ *
235
+ * @deprecated Unused — the panel is capped by `--kbq-autocomplete-size-panel-max-height` and reveals its
236
+ * active option through `KbqOption.focus`, so nothing computes a scroll offset from this. Will be removed
237
+ * in the next major release.
233
238
  */
234
- /** The total height of the autocomplete panel. */
235
239
  const AUTOCOMPLETE_PANEL_HEIGHT = 256;
236
- /** Injection token that determines the scroll handling while the autocomplete panel is open. */
237
- const KBQ_AUTOCOMPLETE_SCROLL_STRATEGY = new InjectionToken('kbq-autocomplete-scroll-strategy');
240
+ /**
241
+ * Injection token that determines the scroll handling while the autocomplete panel is open. The root default
242
+ * keeps the trigger usable outside `KbqAutocompleteModule`'s injector; providing the token anywhere still wins
243
+ * over it.
244
+ */
245
+ const KBQ_AUTOCOMPLETE_SCROLL_STRATEGY = new InjectionToken('kbq-autocomplete-scroll-strategy', {
246
+ providedIn: 'root',
247
+ factory: () => KBQ_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY(inject(Overlay))
248
+ });
238
249
  function KBQ_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY(overlay) {
239
250
  return () => overlay.scrollStrategies.reposition();
240
251
  }
@@ -351,7 +362,8 @@ class KbqAutocompleteTrigger {
351
362
  this.autocomplete.keyManager?.change.subscribe(() => {
352
363
  if (this.panelOpen) {
353
364
  this.scrollActiveOptionIntoView();
354
- this.elementRef.nativeElement.focus();
365
+ // Focus returns to the input on every arrow key; it must not drag the scroll with it.
366
+ this.elementRef.nativeElement.focus({ preventScroll: true });
355
367
  }
356
368
  else if (!this.panelOpen && this.autocomplete.keyManager.activeItem) {
357
369
  this.autocomplete.keyManager.activeItem?.selectViaInteraction();