@koobiq/components 19.4.1 → 19.5.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.
Files changed (171) hide show
  1. package/LICENSE +1 -1
  2. package/accordion/accordion-content.d.ts +1 -1
  3. package/accordion/accordion-content.directive.d.ts +18 -7
  4. package/accordion/accordion-header.directive.d.ts +2 -2
  5. package/accordion/accordion-item.d.ts +74 -3
  6. package/accordion/accordion-trigger.component.d.ts +15 -2
  7. package/accordion/accordion-trigger.directive.d.ts +9 -5
  8. package/accordion/accordion.component.d.ts +67 -6
  9. package/accordion/accordion.component.scss +9 -27
  10. package/accordion/public-api.d.ts +0 -2
  11. package/checkbox/checkbox.scss +5 -5
  12. package/clamped-text/clamped-list.d.ts +41 -0
  13. package/clamped-text/clamped-text.d.ts +10 -6
  14. package/clamped-text/constants.d.ts +21 -1
  15. package/clamped-text/index.d.ts +1 -0
  16. package/clamped-text/module.d.ts +2 -1
  17. package/code-block/code-block.d.ts +10 -3
  18. package/code-block/code-block.module.d.ts +1 -1
  19. package/code-block/code-block.scss +1 -0
  20. package/code-block/types.d.ts +9 -0
  21. package/core/common-behaviors/flex.d.ts +4 -0
  22. package/core/common-behaviors/index.d.ts +1 -0
  23. package/core/form-field/form-field-ref.d.ts +3 -1
  24. package/core/locales/en-US.d.ts +2 -0
  25. package/core/locales/es-LA.d.ts +2 -0
  26. package/core/locales/locale-service.d.ts +10 -0
  27. package/core/locales/pt-BR.d.ts +2 -0
  28. package/core/locales/ru-RU.d.ts +2 -0
  29. package/core/locales/tk-TM.d.ts +2 -0
  30. package/core/locales/types.d.ts +2 -0
  31. package/core/option/_option-theme.scss +4 -17
  32. package/core/option/option.d.ts +5 -1
  33. package/core/pop-up/pop-up-trigger.d.ts +10 -1
  34. package/core/selection/pseudo-checkbox/pseudo-checkbox.scss +2 -2
  35. package/core/styles/common/_overlay.scss +1 -1
  36. package/dropdown/dropdown.component.d.ts +2 -1
  37. package/fesm2022/koobiq-components-accordion.mjs +278 -236
  38. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  39. package/fesm2022/koobiq-components-actions-panel.mjs +10 -10
  40. package/fesm2022/koobiq-components-alert.mjs +16 -16
  41. package/fesm2022/koobiq-components-app-switcher.mjs +19 -19
  42. package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
  43. package/fesm2022/koobiq-components-autocomplete.mjs +13 -13
  44. package/fesm2022/koobiq-components-badge.mjs +13 -13
  45. package/fesm2022/koobiq-components-breadcrumbs.mjs +25 -25
  46. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  47. package/fesm2022/koobiq-components-button-toggle.mjs +10 -10
  48. package/fesm2022/koobiq-components-button.mjs +13 -13
  49. package/fesm2022/koobiq-components-checkbox.mjs +11 -11
  50. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  51. package/fesm2022/koobiq-components-clamped-text.mjs +134 -47
  52. package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
  53. package/fesm2022/koobiq-components-code-block.mjs +35 -16
  54. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  55. package/fesm2022/koobiq-components-content-panel.mjs +28 -28
  56. package/fesm2022/koobiq-components-core.mjs +267 -233
  57. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  58. package/fesm2022/koobiq-components-datepicker.mjs +40 -40
  59. package/fesm2022/koobiq-components-divider.mjs +7 -7
  60. package/fesm2022/koobiq-components-dl.mjs +13 -13
  61. package/fesm2022/koobiq-components-dropdown.mjs +29 -21
  62. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  63. package/fesm2022/koobiq-components-dynamic-translation.mjs +13 -13
  64. package/fesm2022/koobiq-components-ellipsis-center.mjs +7 -7
  65. package/fesm2022/koobiq-components-empty-state.mjs +19 -19
  66. package/fesm2022/koobiq-components-file-upload.mjs +39 -39
  67. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  68. package/fesm2022/koobiq-components-filter-bar.mjs +88 -88
  69. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  70. package/fesm2022/koobiq-components-form-field.mjs +68 -63
  71. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  72. package/fesm2022/koobiq-components-icon.mjs +14 -14
  73. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  74. package/fesm2022/koobiq-components-inline-edit.mjs +26 -16
  75. package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
  76. package/fesm2022/koobiq-components-input.mjs +28 -26
  77. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  78. package/fesm2022/koobiq-components-link.mjs +13 -7
  79. package/fesm2022/koobiq-components-link.mjs.map +1 -1
  80. package/fesm2022/koobiq-components-list.mjs +19 -19
  81. package/fesm2022/koobiq-components-loader-overlay.mjs +16 -16
  82. package/fesm2022/koobiq-components-markdown.mjs +10 -10
  83. package/fesm2022/koobiq-components-modal.mjs +90 -63
  84. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  85. package/fesm2022/koobiq-components-navbar-ic.mjs +34 -34
  86. package/fesm2022/koobiq-components-navbar.mjs +51 -44
  87. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  88. package/fesm2022/koobiq-components-notification-center.mjs +16 -16
  89. package/fesm2022/koobiq-components-overflow-items.mjs +29 -17
  90. package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
  91. package/fesm2022/koobiq-components-popover.mjs +16 -16
  92. package/fesm2022/koobiq-components-progress-bar.mjs +13 -13
  93. package/fesm2022/koobiq-components-progress-spinner.mjs +13 -13
  94. package/fesm2022/koobiq-components-radio.mjs +10 -10
  95. package/fesm2022/koobiq-components-resizer.mjs +10 -10
  96. package/fesm2022/koobiq-components-risk-level.mjs +7 -7
  97. package/fesm2022/koobiq-components-scrollbar.mjs +10 -10
  98. package/fesm2022/koobiq-components-search-expandable.mjs +8 -8
  99. package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
  100. package/fesm2022/koobiq-components-select.mjs +13 -12
  101. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  102. package/fesm2022/koobiq-components-sidebar.mjs +13 -13
  103. package/fesm2022/koobiq-components-sidepanel.mjs +49 -40
  104. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  105. package/fesm2022/koobiq-components-skeleton.mjs +26 -10
  106. package/fesm2022/koobiq-components-skeleton.mjs.map +1 -1
  107. package/fesm2022/koobiq-components-split-button.mjs +7 -7
  108. package/fesm2022/koobiq-components-splitter.mjs +16 -16
  109. package/fesm2022/koobiq-components-table.mjs +10 -10
  110. package/fesm2022/koobiq-components-tabs.mjs +54 -54
  111. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  112. package/fesm2022/koobiq-components-tags.mjs +42 -45
  113. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  114. package/fesm2022/koobiq-components-textarea.mjs +10 -9
  115. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  116. package/fesm2022/koobiq-components-time-range.mjs +24 -24
  117. package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
  118. package/fesm2022/koobiq-components-timepicker.mjs +10 -10
  119. package/fesm2022/koobiq-components-timezone.mjs +24 -24
  120. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  121. package/fesm2022/koobiq-components-title.mjs +7 -7
  122. package/fesm2022/koobiq-components-toast.mjs +16 -16
  123. package/fesm2022/koobiq-components-toggle.mjs +7 -7
  124. package/fesm2022/koobiq-components-tooltip.mjs +28 -18
  125. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  126. package/fesm2022/koobiq-components-top-bar.mjs +13 -13
  127. package/fesm2022/koobiq-components-tree-select.mjs +10 -9
  128. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  129. package/fesm2022/koobiq-components-tree.mjs +63 -50
  130. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  131. package/fesm2022/koobiq-components-username.mjs +27 -27
  132. package/filter-bar/pipes/pipe-date.scss +3 -15
  133. package/form-field/form-field.d.ts +7 -1
  134. package/form-field/form-field.scss +4 -0
  135. package/icon/icon-button.scss +4 -0
  136. package/inline-edit/inline-edit.d.ts +1 -0
  137. package/input/input-password.d.ts +1 -0
  138. package/input/input.d.ts +1 -0
  139. package/link/_link-theme.scss +15 -7
  140. package/link/link-tokens.scss +2 -0
  141. package/link/link.component.d.ts +4 -1
  142. package/markdown/markdown.component.d.ts +1 -1
  143. package/modal/modal-ref.class.d.ts +1 -0
  144. package/modal/modal.component.d.ts +14 -8
  145. package/modal/modal.scss +1 -0
  146. package/modal/modal.type.d.ts +5 -0
  147. package/navbar/navbar-item.component.d.ts +3 -1
  148. package/overflow-items/overflow-items.d.ts +8 -2
  149. package/package.json +4 -4
  150. package/prebuilt-themes/dark-theme.css +1 -1
  151. package/prebuilt-themes/light-theme.css +1 -1
  152. package/prebuilt-themes/theme.css +1 -1
  153. package/schematics/ng-add/index.js +4 -5
  154. package/select/select.component.d.ts +1 -0
  155. package/sidepanel/_sidepanel-theme.scss +1 -7
  156. package/sidepanel/sidepanel-config.d.ts +4 -1
  157. package/sidepanel/sidepanel.service.d.ts +0 -1
  158. package/skeleton/skeleton.d.ts +5 -0
  159. package/skeleton/skeleton.scss +3 -2
  160. package/tabs/_tabs-common.scss +2 -1
  161. package/tags/tag-input.d.ts +4 -3
  162. package/tags/tag-list.component.d.ts +1 -0
  163. package/textarea/textarea.component.d.ts +1 -0
  164. package/tooltip/tooltip.component.d.ts +2 -0
  165. package/tree/_tree-theme.scss +0 -19
  166. package/tree/tree-option.component.d.ts +9 -3
  167. package/tree/tree-option.scss +2 -5
  168. package/tree/tree-selection.component.d.ts +2 -0
  169. package/tree-select/tree-select.component.d.ts +1 -0
  170. package/accordion/accordion-item.directive.d.ts +0 -72
  171. package/accordion/accordion-root.directive.d.ts +0 -64
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-navbar.mjs","sources":["../../../packages/components/navbar/navbar-item.component.ts","../../../packages/components/navbar/navbar-item.component.html","../../../packages/components/navbar/navbar-brand.component.ts","../../../packages/components/navbar/navbar.component.ts","../../../packages/components/navbar/vertical-navbar.component.ts","../../../packages/components/navbar/navbar-toggle.component.ts","../../../packages/components/navbar/navbar.module.ts","../../../packages/components/navbar/koobiq-components-navbar.ts"],"sourcesContent":["import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Platform } from '@angular/cdk/platform';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n Directive,\n ElementRef,\n Input,\n NgZone,\n OnDestroy,\n Optional,\n ViewEncapsulation,\n booleanAttribute,\n inject\n} from '@angular/core';\nimport { IFocusableOption } from '@koobiq/cdk/a11y';\nimport { DOWN_ARROW, RIGHT_ARROW } from '@koobiq/cdk/keycodes';\nimport { KbqButton, KbqButtonCssStyler } from '@koobiq/components/button';\nimport { KBQ_WINDOW, PopUpPlacements, PopUpTriggers, kbqInjectNativeElement } from '@koobiq/components/core';\nimport { KbqDropdownTrigger } from '@koobiq/components/dropdown';\nimport { KbqFormField } from '@koobiq/components/form-field';\nimport { KbqIcon } from '@koobiq/components/icon';\nimport { KbqTooltipTrigger } from '@koobiq/components/tooltip';\nimport { Subject } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\nexport interface KbqNavbarFocusableItemEvent {\n item: KbqNavbarFocusableItem;\n}\n\n@Directive({\n selector: 'kbq-navbar-logo, [kbq-navbar-logo]',\n host: {\n class: 'kbq-navbar-logo',\n '(mouseenter)': 'hovered.next(true)',\n '(mouseleave)': 'hovered.next(false)'\n }\n})\nexport class KbqNavbarLogo {\n readonly hovered = new Subject<boolean>();\n}\n\n@Directive({\n selector: 'kbq-navbar-item[bento], [kbq-navbar-item][bento]',\n host: {\n class: 'kbq-navbar-bento'\n }\n})\nexport class KbqNavbarBento {}\n\n@Directive({\n selector: 'kbq-navbar-title, [kbq-navbar-title]',\n host: {\n class: 'kbq-navbar-title',\n '[class.kbq-navbar-title_small]': 'isTextOverflown',\n\n '(mouseenter)': 'hovered.next(true)',\n '(mouseleave)': 'hovered.next(false)'\n }\n})\nexport class KbqNavbarTitle implements AfterViewInit {\n protected readonly isBrowser = inject(Platform).isBrowser;\n protected readonly nativeElement = kbqInjectNativeElement();\n private readonly window = inject(KBQ_WINDOW);\n\n readonly hovered = new Subject<boolean>();\n\n outerElementWidth: number;\n isTextOverflown: boolean = false;\n\n get text(): string {\n return this.nativeElement.textContent || '';\n }\n\n get isOverflown() {\n return this.nativeElement.scrollWidth > this.nativeElement.clientWidth;\n }\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, 0);\n }\n\n checkTextOverflown() {\n this.isTextOverflown = this.text.length > 18;\n }\n\n ngAfterViewInit(): void {\n this.outerElementWidth = this.getOuterElementWidth();\n }\n}\n\n@Directive({\n selector: 'kbq-navbar-divider',\n host: {\n class: 'kbq-navbar-divider'\n }\n})\nexport class KbqNavbarDivider {}\n\n@Directive({\n selector: 'kbq-navbar-item, [kbq-navbar-item], kbq-navbar-brand, [kbq-navbar-brand], kbq-navbar-toggle',\n host: {\n '[attr.tabindex]': 'tabIndex',\n '[attr.disabled]': 'disabled || null',\n\n class: 'kbq-navbar-focusable-item',\n '[class.kbq-navbar-item_has-nested]': '!!nestedElement',\n '[class.kbq-disabled]': 'disabled',\n\n '(focus)': 'onFocusHandler()',\n '(blur)': 'blur()'\n }\n})\nexport class KbqNavbarFocusableItem implements AfterContentInit, AfterViewInit, OnDestroy, IFocusableOption {\n @ContentChild(KbqNavbarTitle) title: KbqNavbarTitle;\n\n @ContentChild(KbqButton) button: KbqButton;\n\n @ContentChild(KbqFormField) formField: KbqFormField;\n\n get nestedElement(): KbqButton | KbqFormField {\n return this.button || this.formField;\n }\n\n get tooltip(): KbqTooltipTrigger {\n return this._tooltip;\n }\n\n private _tooltip: KbqTooltipTrigger;\n\n readonly onFocus = new Subject<KbqNavbarFocusableItemEvent>();\n\n readonly onBlur = new Subject<KbqNavbarFocusableItemEvent>();\n\n get hasFocus(): boolean {\n return !!this.nestedElement?.hasFocus || this._hasFocus;\n }\n\n set hasFocus(value: boolean) {\n this._hasFocus = value;\n }\n\n private _hasFocus: boolean = false;\n\n /** Whether the item is disabled. */\n @Input({ transform: booleanAttribute })\n get disabled() {\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n if (value !== this._disabled) {\n this._disabled = value;\n this.changeDetector.markForCheck();\n }\n }\n\n private _disabled = false;\n\n get tabIndex(): number {\n return -1;\n }\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private changeDetector: ChangeDetectorRef,\n private focusMonitor: FocusMonitor,\n private ngZone: NgZone\n ) {}\n\n ngAfterViewInit(): void {\n this.focusMonitor.monitor(this.elementRef);\n }\n\n ngAfterContentInit(): void {\n if (this.button) {\n this.button.tabIndex = -1;\n }\n }\n\n ngOnDestroy() {\n this.focusMonitor.stopMonitoring(this.elementRef);\n }\n\n setTooltip(value: KbqTooltipTrigger) {\n this._tooltip = value;\n }\n\n onFocusHandler() {\n if (this.disabled || this.hasFocus) {\n return;\n }\n\n this.onFocus.next({ item: this });\n\n this.hasFocus = true;\n\n this.changeDetector.markForCheck();\n\n this.elementRef.nativeElement.focus();\n }\n\n focus(origin?: FocusOrigin): void {\n if (this.disabled || this.hasFocus) {\n return;\n }\n\n if (origin === 'keyboard') {\n this.focusMonitor.focusVia(this.elementRef, origin);\n }\n\n if (this.nestedElement) {\n this.nestedElement.focusViaKeyboard();\n\n this.changeDetector.markForCheck();\n\n return;\n }\n\n this.tooltip?.show();\n this.onFocusHandler();\n }\n\n blur(): void {\n // When animations are enabled, Angular may end up removing the option from the DOM a little\n // earlier than usual, causing it to be blurred and throwing off the logic in the list\n // that moves focus not the next item. To work around the issue, we defer marking the option\n // as not focused until the next time the zone stabilizes.\n this.ngZone.onStable\n .asObservable()\n .pipe(take(1))\n .subscribe(() => {\n this.ngZone.run(() => {\n this._hasFocus = false;\n\n this.tooltip?.hide();\n\n if (this.button?.hasFocus) {\n return;\n }\n\n this.onBlur.next({ item: this });\n });\n });\n }\n\n getLabel(): string {\n return this.title?.text || '';\n }\n}\n\n@Directive({\n selector: 'kbq-navbar-item, [kbq-navbar-item], kbq-navbar-divider, kbq-navbar-brand, [kbq-navbar-brand]',\n host: {\n '[class.kbq-vertical]': 'vertical',\n '[class.kbq-horizontal]': 'horizontal',\n\n '[class.kbq-expanded]': 'vertical && !collapsed',\n '[class.kbq-collapsed]': 'vertical && collapsed'\n }\n})\nexport class KbqNavbarRectangleElement {\n protected readonly isBrowser = inject(Platform).isBrowser;\n protected readonly nativeElement = kbqInjectNativeElement();\n private readonly window = inject(KBQ_WINDOW);\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n\n readonly state = new Subject<void>();\n\n get horizontal(): boolean {\n return this._horizontal;\n }\n\n set horizontal(value: boolean) {\n if (this._horizontal === value) return;\n\n this._horizontal = value;\n this._vertical = !value;\n\n this.state.next();\n this.changeDetectorRef.markForCheck();\n }\n\n private _horizontal: boolean = false;\n\n get vertical(): boolean {\n return this._vertical;\n }\n\n set vertical(value: boolean) {\n if (this._vertical === value) return;\n\n this._vertical = value;\n this._horizontal = !value;\n\n this.state.next();\n this.changeDetectorRef.markForCheck();\n }\n\n private _vertical: boolean = true;\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 @ContentChild(KbqButtonCssStyler) button: KbqButtonCssStyler;\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\n@Component({\n selector: 'kbq-navbar-item, [kbq-navbar-item]',\n imports: [\n KbqIcon\n ],\n templateUrl: './navbar-item.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'kbqNavbarItem',\n host: {\n class: 'kbq-navbar-item',\n '[class.kbq-navbar-item_collapsed]': 'isCollapsed',\n '[class.kbq-navbar-item_with-title]': '!!title',\n\n '(keydown)': 'onKeyDown($event)'\n }\n})\nexport class KbqNavbarItem extends KbqTooltipTrigger implements AfterContentInit {\n @ContentChild(KbqNavbarTitle) title: KbqNavbarTitle;\n\n @ContentChild(KbqIcon) icon: KbqIcon;\n\n @Input() collapsedText: string;\n\n @Input('kbqTrigger')\n get trigger(): string {\n return this._trigger;\n }\n\n set trigger(value: string) {\n if (value) {\n this._trigger = value;\n\n this.initListeners();\n }\n }\n\n set collapsed(value: boolean) {\n if (this._collapsed !== value) {\n this._collapsed = value;\n\n this.updateTooltip();\n }\n }\n\n // todo in future need rename to 'collapsed'\n get isCollapsed(): boolean {\n return this._collapsed ?? this.rectangleElement.collapsed;\n }\n\n private _collapsed = false;\n\n get croppedText(): string {\n const croppedTitleText = this.title?.isOverflown ? this.titleText : '';\n\n return `${croppedTitleText}`;\n }\n\n @Input()\n get collapsable(): boolean {\n return this._collapsable;\n }\n\n set collapsable(value: boolean) {\n this._collapsable = coerceBooleanProperty(value);\n }\n\n private _collapsable: boolean = true;\n\n get titleText(): string | null {\n return this.collapsedText || this.title?.text || null;\n }\n\n get disabled(): boolean {\n if (this._disabled !== undefined) {\n return this._disabled;\n }\n\n return !this.isCollapsed && !this.hasCroppedText;\n }\n\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n }\n\n get hasDropDownTrigger(): boolean {\n return !!this.dropdownTrigger;\n }\n\n get showVerticalDropDownAngle(): boolean {\n return !this.bento && this.hasDropDownTrigger && this.rectangleElement.vertical && !this.isCollapsed;\n }\n\n get showHorizontalDropDownAngle(): boolean {\n return this.hasDropDownTrigger && this.rectangleElement.horizontal && !this.isCollapsed;\n }\n\n get hasCroppedText(): boolean {\n return !!this.title?.isOverflown;\n }\n\n constructor(\n public rectangleElement: KbqNavbarRectangleElement,\n public navbarFocusableItem: KbqNavbarFocusableItem,\n private changeDetectorRef: ChangeDetectorRef,\n @Optional() private dropdownTrigger: KbqDropdownTrigger,\n @Optional() private bento: KbqNavbarBento\n ) {\n super();\n\n if (this.hasDropDownTrigger) {\n this.dropdownTrigger.openByArrowDown = false;\n }\n\n this.rectangleElement.state.subscribe(() => {\n this.collapsed = this.rectangleElement.collapsed;\n\n this.changeDetectorRef.detectChanges();\n });\n\n this._trigger = `${PopUpTriggers.Hover}`;\n\n this.navbarFocusableItem.setTooltip(this);\n\n this.arrow = false;\n this.offset = 0;\n\n this.overlayConfig.panelClass = 'kbq-tooltip-panel_horizontal-navbar';\n }\n\n ngAfterContentInit(): void {\n if (this.dropdownTrigger?.dropdown) {\n this.dropdownTrigger.dropdown.overlapTriggerX = false;\n this.dropdownTrigger.dropdown.overlapTriggerY = true;\n // needs to shift dropdown to the left by 8 pixels\n this.dropdownTrigger.offsetX = -8;\n }\n\n this.updateTooltip();\n }\n\n updateTooltip(): void {\n if (this.isCollapsed) {\n this.content = `${this.titleText || ''}`;\n } else if (!this.isCollapsed && this.hasCroppedText) {\n this.content = this.croppedText;\n }\n\n if (this.rectangleElement.vertical) {\n this.placement = PopUpPlacements.Right;\n this.placementPriority = PopUpPlacements.Right;\n }\n\n this.changeDetectorRef.markForCheck();\n }\n\n getTitleWidth(): number {\n return this.title.outerElementWidth;\n }\n\n onKeyDown($event: KeyboardEvent) {\n if (!this.hasDropDownTrigger) {\n return;\n }\n\n if (\n (this.rectangleElement.horizontal && $event.keyCode === DOWN_ARROW) ||\n (this.rectangleElement.vertical && $event.keyCode === RIGHT_ARROW)\n ) {\n this.dropdownTrigger.openedBy = 'keyboard';\n this.dropdownTrigger.open();\n\n $event.stopPropagation();\n $event.preventDefault();\n }\n }\n}\n","<ng-content select=\"[kbq-icon]\" />\n\n@if (title) {\n <div class=\"kbq-navbar-item__container\">\n <div class=\"kbq-navbar-item__title\">\n <ng-content select=\"kbq-navbar-title, [kbq-navbar-title]\" />\n </div>\n @if (showVerticalDropDownAngle) {\n <i kbq-icon=\"kbq-chevron-right_16\" class=\"kbq-navbar-item__arrow-icon\"></i>\n }\n @if (showHorizontalDropDownAngle) {\n <i kbq-icon=\"kbq-chevron-down-s_16\" class=\"kbq-navbar-item__arrow-icon\"></i>\n }\n </div>\n}\n\n<ng-content />\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { AfterContentInit, ChangeDetectorRef, Component, ContentChild, inject, Input } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { kbqInjectNativeElement, PopUpPlacements, PopUpTriggers } from '@koobiq/components/core';\nimport { KbqTooltipTrigger } from '@koobiq/components/tooltip';\nimport { KbqNavbarFocusableItem, KbqNavbarRectangleElement, KbqNavbarTitle } from './navbar-item.component';\n\n@Component({\n selector: 'kbq-navbar-brand, [kbq-navbar-brand]',\n exportAs: 'kbqNavbarBrand',\n template: `\n <ng-content />\n `,\n styleUrls: [\n './navbar-brand.scss'\n ],\n host: {\n class: 'kbq-navbar-brand',\n '[class.kbq-navbar-brand_long-title]': 'longTitle',\n '[class.kbq-navbar-brand_link]': 'isLink'\n }\n})\nexport class KbqNavbarBrand extends KbqTooltipTrigger implements AfterContentInit {\n /** @docs-private */\n protected readonly nativeElement = kbqInjectNativeElement();\n /** @docs-private */\n protected readonly changeDetectorRef = inject(ChangeDetectorRef);\n /** @docs-private */\n protected readonly rectangleElement = inject(KbqNavbarRectangleElement);\n /** @docs-private */\n protected readonly navbarFocusableItem = inject(KbqNavbarFocusableItem);\n\n /** @docs-private */\n @ContentChild(KbqNavbarTitle) title: KbqNavbarTitle;\n\n /** alternative display of the brand name in two lines */\n @Input() longTitle: boolean = false;\n\n /** text that will be displayed in the tooltip. By default, the text is taken from kbq-navbar-title. */\n @Input() collapsedText: string;\n\n get isLink(): boolean {\n return this.nativeElement.tagName === 'A';\n }\n\n /** @docs-private */\n get croppedText(): string {\n const croppedTitleText = this.title?.isOverflown ? this.titleText : '';\n\n return `${croppedTitleText}`;\n }\n\n /** @docs-private */\n get hasCroppedText(): boolean {\n return !!this.title?.isOverflown;\n }\n\n /** @docs-private */\n get titleText(): string | null {\n return this.collapsedText || this.title?.text || null;\n }\n\n /** @docs-private */\n get disabled(): boolean {\n if (this._disabled !== undefined) {\n return this._disabled;\n }\n\n return !this.collapsed && !this.hasCroppedText;\n }\n\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n }\n\n /** @docs-private */\n get collapsed(): boolean {\n return this._collapsed ?? this.rectangleElement.collapsed;\n }\n\n set collapsed(value: boolean) {\n if (this._collapsed !== value) {\n this._collapsed = value;\n\n this.updateTooltip();\n }\n }\n\n private _collapsed = false;\n\n constructor() {\n super();\n\n this.rectangleElement.state.pipe(takeUntilDestroyed()).subscribe(() => {\n this.collapsed = this.rectangleElement.collapsed;\n\n this.changeDetectorRef.detectChanges();\n });\n\n this._trigger = `${PopUpTriggers.Hover}`;\n\n this.navbarFocusableItem.setTooltip(this);\n\n this.arrow = false;\n this.offset = 0;\n\n this.navbarFocusableItem.disabled = !this.isLink;\n }\n\n ngAfterContentInit(): void {\n this.updateTooltip();\n }\n\n private updateTooltip(): void {\n if (this.collapsed) {\n this.content = `${this.titleText || ''}`;\n } else if (!this.collapsed && this.hasCroppedText) {\n this.content = this.croppedText;\n }\n\n if (this.rectangleElement.vertical) {\n this.placement = PopUpPlacements.Right;\n }\n\n this.changeDetectorRef.markForCheck();\n }\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n contentChildren,\n ContentChildren,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n forwardRef,\n inject,\n Input,\n OnDestroy,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FocusKeyManager } from '@koobiq/cdk/a11y';\nimport { isHorizontalMovement, isVerticalMovement, LEFT_ARROW, RIGHT_ARROW, TAB } from '@koobiq/cdk/keycodes';\nimport { merge, Observable, Subject, Subscription } from 'rxjs';\nimport { debounceTime, startWith } from 'rxjs/operators';\nimport {\n KbqNavbarFocusableItem,\n KbqNavbarFocusableItemEvent,\n KbqNavbarItem,\n KbqNavbarRectangleElement\n} from './navbar-item.component';\n\nexport type KbqNavbarContainerPositionType = 'left' | 'right';\n\n@Directive()\nexport class KbqFocusableComponent implements AfterContentInit, AfterViewInit, OnDestroy {\n @ContentChildren(forwardRef(() => KbqNavbarFocusableItem), { descendants: true })\n focusableItems: QueryList<KbqNavbarFocusableItem>;\n\n keyManager: FocusKeyManager<KbqNavbarFocusableItem>;\n\n @Input()\n get tabIndex(): any {\n return this._tabIndex;\n }\n\n set tabIndex(value: any) {\n this._tabIndex = value;\n }\n\n private _tabIndex = 0;\n\n get optionFocusChanges(): Observable<KbqNavbarFocusableItemEvent> {\n return merge(...this.focusableItems.map((item) => item.onFocus));\n }\n\n get optionBlurChanges(): Observable<KbqNavbarFocusableItemEvent> {\n return merge(...this.focusableItems.map((option) => option.onBlur));\n }\n\n private readonly destroyRef = inject(DestroyRef);\n\n private optionFocusSubscription: Subscription | null;\n private optionBlurSubscription: Subscription | null;\n\n constructor(\n protected readonly changeDetectorRef: ChangeDetectorRef,\n protected readonly elementRef: ElementRef<HTMLElement>,\n protected readonly focusMonitor: FocusMonitor\n ) {}\n\n ngAfterContentInit(): void {\n this.keyManager = new FocusKeyManager<KbqNavbarFocusableItem>(this.focusableItems).withTypeAhead();\n\n this.keyManager.tabOut.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.tabIndex = -1;\n\n setTimeout(() => {\n this.tabIndex = 0;\n this.changeDetectorRef.markForCheck();\n });\n });\n\n this.focusableItems.changes.pipe(startWith(null), takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.resetOptions();\n\n // Check to see if we need to update our tab index\n this.updateTabIndex();\n });\n }\n\n ngAfterViewInit(): void {\n this.focusMonitor.monitor(this.elementRef).subscribe((focusOrigin) => {\n this.keyManager.setFocusOrigin(focusOrigin);\n });\n }\n\n ngOnDestroy() {\n this.focusMonitor.stopMonitoring(this.elementRef);\n }\n\n focus(): void {\n if (this.focusableItems.length === 0) {\n return;\n }\n\n this.keyManager.setFirstItemActive();\n }\n\n blur() {\n if (!this.hasFocusedItem()) {\n this.keyManager.setActiveItem(-1);\n }\n\n this.changeDetectorRef.markForCheck();\n }\n\n protected resetOptions() {\n this.dropSubscriptions();\n this.listenToOptionsFocus();\n }\n\n protected dropSubscriptions() {\n if (this.optionFocusSubscription) {\n this.optionFocusSubscription.unsubscribe();\n this.optionFocusSubscription = null;\n }\n\n if (this.optionBlurSubscription) {\n this.optionBlurSubscription.unsubscribe();\n this.optionBlurSubscription = null;\n }\n }\n\n private listenToOptionsFocus(): void {\n this.optionFocusSubscription = this.optionFocusChanges.subscribe((event) => {\n const index: number = this.focusableItems.toArray().indexOf(event.item);\n\n if (this.isValidIndex(index)) {\n this.keyManager.updateActiveItem(index);\n }\n });\n\n this.optionBlurSubscription = this.optionBlurChanges.subscribe(() => this.blur());\n }\n\n private updateTabIndex(): void {\n this.tabIndex = this.focusableItems.length === 0 ? -1 : 0;\n }\n\n private isValidIndex(index: number): boolean {\n return index >= 0 && index < this.focusableItems.length;\n }\n\n private hasFocusedItem() {\n return this.focusableItems.some((item) => item.hasFocus);\n }\n}\n\n@Directive({\n selector: 'kbq-navbar-container',\n host: {\n class: 'kbq-navbar-container'\n }\n})\nexport class KbqNavbarContainer {}\n\n@Component({\n selector: 'kbq-navbar',\n template: `\n <ng-content select=\"[kbq-navbar-container], kbq-navbar-container\" />\n `,\n styleUrls: [\n './navbar.scss',\n './navbar-item.scss',\n './navbar-brand.scss',\n './navbar-divider.scss',\n './navbar-tokens.scss'\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'kbq-navbar',\n '[attr.tabindex]': 'tabIndex',\n '(focus)': 'focus()',\n '(blur)': 'blur()',\n '(keydown)': 'onKeyDown($event)',\n '(window:resize)': 'resizeStream.next($event)'\n }\n})\nexport class KbqNavbar extends KbqFocusableComponent implements AfterViewInit, AfterContentInit, OnDestroy {\n readonly rectangleElements = contentChildren(\n forwardRef(() => KbqNavbarRectangleElement),\n { descendants: true }\n );\n\n @ContentChildren(forwardRef(() => KbqNavbarItem), { descendants: true }) navbarItems: QueryList<KbqNavbarItem>;\n\n readonly resizeStream = new Subject<Event>();\n\n private readonly resizeDebounceInterval: number = 100;\n\n private get width(): number {\n const element = this.elementRef.nativeElement;\n\n // For SSR compatibility\n if (typeof element.getClientRects !== 'function') return 0;\n\n return element.getBoundingClientRect().width;\n }\n\n private get totalItemsWidth(): number {\n return this.rectangleElements().reduce((acc, item) => acc + item.getOuterElementWidth(), 0);\n }\n\n private get collapsableItems(): KbqNavbarItem[] {\n return this.navbarItems\n .toArray()\n .filter((item) => item.icon && item.title && item.collapsable)\n .reverse();\n }\n\n private resizeSubscription: Subscription;\n\n constructor(\n protected readonly elementRef: ElementRef<HTMLElement>,\n protected readonly changeDetectorRef: ChangeDetectorRef,\n protected readonly focusMonitor: FocusMonitor\n ) {\n super(changeDetectorRef, elementRef, focusMonitor);\n\n this.resizeSubscription = this.resizeStream\n .pipe(debounceTime(this.resizeDebounceInterval), takeUntilDestroyed())\n .subscribe(this.updateExpandedStateForItems);\n\n effect(() => this.setItemsState(this.rectangleElements()));\n }\n\n ngAfterContentInit(): void {\n super.ngAfterContentInit();\n\n this.keyManager.withVerticalOrientation(false).withHorizontalOrientation('ltr');\n }\n\n ngAfterViewInit(): void {\n // Note: this wait is required for loading and rendering fonts for icons;\n // unfortunately we cannot control font rendering\n setTimeout(this.updateExpandedStateForItems);\n }\n\n ngOnDestroy() {\n this.resizeSubscription.unsubscribe();\n\n super.ngOnDestroy();\n }\n\n onKeyDown(event: KeyboardEvent) {\n const keyCode = event.keyCode;\n\n if (!this.eventFromInput(event) && (isVerticalMovement(event) || isHorizontalMovement(event))) {\n event.preventDefault();\n }\n\n if (keyCode === TAB) {\n this.keyManager.tabOut.next();\n\n return;\n } else if (this.eventFromInput(event) && this.cursorOnLastPosition(event) && keyCode === RIGHT_ARROW) {\n this.keyManager.setNextItemActive();\n } else if (this.eventFromInput(event) && this.cursorOnFirstPosition(event) && keyCode === LEFT_ARROW) {\n this.keyManager.setPreviousItemActive();\n } else if (!this.eventFromInput(event)) {\n this.keyManager.onKeydown(event);\n }\n }\n\n updateExpandedStateForItems = () => {\n const collapseDelta = this.totalItemsWidth - this.width;\n\n const needCollapse = collapseDelta > 0;\n\n if (needCollapse) {\n this.collapseItems(collapseDelta);\n } else {\n this.expandItems(collapseDelta);\n }\n };\n\n private eventFromInput(event: KeyboardEvent): boolean {\n return !!(event.target as HTMLElement).attributes.getNamedItem('kbqinput');\n }\n\n private cursorOnFirstPosition(event: KeyboardEvent): boolean {\n const input = event.target as HTMLInputElement;\n\n return input.selectionStart === 0;\n }\n\n private cursorOnLastPosition(event: KeyboardEvent): boolean {\n const input = event.target as HTMLInputElement;\n\n return input.selectionEnd === input.value.length;\n }\n\n private collapseItems(collapseDelta: number) {\n let delta = collapseDelta;\n\n const unCollapsedItems = this.collapsableItems.filter((item) => !item.collapsed);\n\n for (const item of unCollapsedItems) {\n item.collapsed = true;\n delta -= item.getTitleWidth();\n\n if (delta < 0) {\n break;\n }\n }\n }\n\n private expandItems(collapseDelta: number) {\n let delta = collapseDelta;\n\n this.collapsableItems\n .filter((item) => item.collapsed)\n .forEach((item) => {\n if (delta + item.getTitleWidth() < 0) {\n item.collapsed = false;\n delta += item.getTitleWidth();\n }\n });\n }\n\n private setItemsState = (rectangleElements: Readonly<KbqNavbarRectangleElement[]>) => {\n Promise.resolve().then(() => rectangleElements.forEach((item) => (item.horizontal = true)));\n };\n}\n","import { CdkMonitorFocus, FocusMonitor } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n contentChildren,\n ContentChildren,\n effect,\n ElementRef,\n forwardRef,\n inject,\n InjectionToken,\n Input,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DOWN_ARROW, isHorizontalMovement, isVerticalMovement, TAB, UP_ARROW } from '@koobiq/cdk/keycodes';\nimport { KBQ_LOCALE_SERVICE, ruRULocaleData } from '@koobiq/components/core';\nimport { Subject } from 'rxjs';\nimport { KbqNavbarBento, KbqNavbarItem, KbqNavbarRectangleElement } from './navbar-item.component';\nimport { KbqFocusableComponent } from './navbar.component';\n\n/** default configuration of navbar */\n/** @docs-private */\nexport const KBQ_VERTICAL_NAVBAR_DEFAULT_CONFIGURATION = ruRULocaleData.navbar;\n\n/** Injection Token for providing configuration of navbar */\n/** @docs-private */\nexport const KBQ_VERTICAL_NAVBAR_CONFIGURATION = new InjectionToken('KbqVerticalNavbarConfiguration');\n\n@Component({\n selector: 'kbq-vertical-navbar',\n template: `\n <div class=\"kbq-vertical-navbar__container\" [class.kbq-collapsed]=\"!expanded\" [class.kbq-expanded]=\"expanded\">\n <ng-content select=\"[kbq-navbar-container], kbq-navbar-container\" />\n <ng-content select=\"[kbq-navbar-toggle], kbq-navbar-toggle\" />\n </div>\n `,\n styleUrls: [\n './vertical-navbar.scss',\n './navbar-item.scss',\n './navbar-brand.scss',\n './navbar-divider.scss',\n './navbar-tokens.scss'\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'KbqVerticalNavbar',\n host: {\n class: 'kbq-vertical-navbar',\n '[class.kbq-vertical-navbar_open-over]': 'openOver',\n '[attr.tabindex]': 'tabIndex',\n '[attr.cdkMonitorSubtreeFocus]': 'true',\n\n '(focus)': 'focus()',\n '(blur)': 'blur()',\n\n '(keydown)': 'onKeyDown($event)'\n },\n hostDirectives: [CdkMonitorFocus]\n})\nexport class KbqVerticalNavbar extends KbqFocusableComponent implements AfterContentInit {\n /** @docs-private */\n protected readonly localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });\n\n readonly externalConfiguration = inject(KBQ_VERTICAL_NAVBAR_CONFIGURATION, { optional: true });\n\n configuration;\n\n rectangleElements = contentChildren(\n forwardRef(() => KbqNavbarRectangleElement),\n { descendants: true }\n );\n\n @ContentChildren(forwardRef(() => KbqNavbarItem), { descendants: true }) items: QueryList<KbqNavbarItem>;\n\n @ContentChild(forwardRef(() => KbqNavbarBento)) bento: KbqNavbarBento;\n\n readonly animationDone: Subject<void> = new Subject();\n\n @Input() openOver: boolean = false;\n\n @Input()\n get expanded() {\n return this._expanded;\n }\n\n set expanded(value: boolean) {\n this._expanded = coerceBooleanProperty(value);\n\n this.updateExpandedStateForItems();\n }\n\n private _expanded: boolean = false;\n\n constructor(\n protected elementRef: ElementRef<HTMLElement>,\n changeDetectorRef: ChangeDetectorRef,\n focusMonitor: FocusMonitor\n ) {\n super(changeDetectorRef, elementRef, focusMonitor);\n\n this.animationDone.pipe(takeUntilDestroyed()).subscribe(this.updateTooltipForItems);\n\n effect(() => this.setItemsVerticalStateAndUpdateExpandedState(this.rectangleElements()));\n\n this.localeService?.changes.pipe(takeUntilDestroyed()).subscribe(this.updateLocaleParams);\n\n if (!this.localeService) {\n this.initDefaultParams();\n }\n }\n\n ngAfterContentInit(): void {\n this.updateTooltipForItems();\n\n super.ngAfterContentInit();\n\n this.keyManager.withVerticalOrientation(true);\n }\n\n toggle(): void {\n this.expanded = !this.expanded;\n\n this.changeDetectorRef.markForCheck();\n }\n\n onKeyDown(event: KeyboardEvent) {\n const keyCode = event.keyCode;\n\n if (\n !(event.target as HTMLElement).attributes.getNamedItem('kbqinput') &&\n (isVerticalMovement(event) || isHorizontalMovement(event))\n ) {\n event.preventDefault();\n }\n\n if (keyCode === TAB) {\n this.keyManager.tabOut.next();\n\n return;\n } else if (keyCode === DOWN_ARROW) {\n this.keyManager.setNextItemActive();\n } else if (keyCode === UP_ARROW) {\n this.keyManager.setPreviousItemActive();\n } else {\n this.keyManager.onKeydown(event);\n }\n }\n\n private updateExpandedStateForItems = () => this.rectangleElements().forEach(this.updateItemExpandedState);\n\n private updateTooltipForItems = () => this.items.forEach((item) => item.updateTooltip());\n\n private setItemsVerticalStateAndUpdateExpandedState = (rectangleElements: Readonly<KbqNavbarRectangleElement[]>) =>\n rectangleElements.forEach(this.setItemVerticalStateAndUpdateExpandedState);\n\n private setItemVerticalStateAndUpdateExpandedState = (item: KbqNavbarRectangleElement): void => {\n queueMicrotask(() => this.setItemVerticalState(item));\n this.updateItemExpandedState(item);\n };\n\n private setItemVerticalState = (item: KbqNavbarRectangleElement): void => {\n item.vertical = true;\n };\n\n private updateItemExpandedState = (item: KbqNavbarRectangleElement): void => {\n item.collapsed = !this.expanded;\n setTimeout(() => item.button?.updateClassModifierForIcons());\n };\n\n private updateLocaleParams = () => {\n this.configuration = this.externalConfiguration || this.localeService?.getParams('navbar');\n\n this.changeDetectorRef.markForCheck();\n };\n\n private initDefaultParams() {\n this.configuration = KBQ_VERTICAL_NAVBAR_DEFAULT_CONFIGURATION;\n }\n}\n","import { CdkMonitorFocus } from '@angular/cdk/a11y';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n inject,\n NgZone,\n OnDestroy,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ENTER, NUMPAD_DIVIDE, SLASH, SPACE } from '@koobiq/cdk/keycodes';\nimport { KBQ_WINDOW, PopUpPlacements } from '@koobiq/components/core';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqTooltipTrigger } from '@koobiq/components/tooltip';\nimport { KbqVerticalNavbar } from './vertical-navbar.component';\n\n@Component({\n selector: 'kbq-navbar-toggle, [kbq-navbar-toggle]',\n imports: [\n KbqIconModule\n ],\n template: `\n <span class=\"kbq-navbar-toggle__circle\">\n <ng-content select=\"[kbq-icon]\">\n <i\n kbq-icon\n [class.kbq-chevron-double-left-s_16]=\"navbar.expanded\"\n [class.kbq-chevron-double-right-s_16]=\"!navbar.expanded\"\n ></i>\n </ng-content>\n </span>\n `,\n styleUrls: ['./navbar-toggle.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'kbq-navbar-toggle kbq-vertical',\n '[class.kbq-collapsed]': '!navbar.expanded',\n '[class.kbq-expanded]': 'navbar.expanded',\n\n '(keydown)': 'keydownHandler($event)',\n '(click)': 'toggle()'\n },\n hostDirectives: [CdkMonitorFocus, KbqTooltipTrigger]\n})\nexport class KbqNavbarToggle implements OnDestroy {\n private readonly window = inject(KBQ_WINDOW);\n private readonly ngZone = inject(NgZone);\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n\n private readonly tooltip = inject(KbqTooltipTrigger, { self: true });\n\n /** @docs-private */\n protected readonly navbar = inject(KbqVerticalNavbar);\n\n constructor() {\n afterNextRender(() => {\n this.ngZone.runOutsideAngular(() => this.window.addEventListener('keydown', this.windowToggleHandler));\n });\n\n this.tooltip.arrow = false;\n this.updateTooltipContent();\n this.tooltip.tooltipPlacement = PopUpPlacements.Right;\n\n this.tooltip.visibleChange.pipe(takeUntilDestroyed()).subscribe(this.updateTooltipContent);\n }\n\n ngOnDestroy(): void {\n this.window.removeEventListener('keydown', this.windowToggleHandler);\n }\n\n /** @docs-private */\n keydownHandler($event: KeyboardEvent) {\n if ([SPACE, ENTER].includes($event.keyCode)) {\n this.toggle();\n\n $event.stopPropagation();\n $event.preventDefault();\n }\n }\n\n /** toggles the state of the navbar */\n toggle() {\n this.navbar.toggle();\n this.tooltip.hide();\n\n this.changeDetectorRef.detectChanges();\n }\n\n private updateTooltipContent = () => {\n this.tooltip.content = this.navbar.expanded\n ? this.navbar.configuration.toggle.collapse\n : this.navbar.configuration.toggle.expand;\n };\n\n private windowToggleHandler = (event: KeyboardEvent) => {\n if (event.ctrlKey && [NUMPAD_DIVIDE, SLASH].includes(event.keyCode)) {\n this.ngZone.run(this.navbar.toggle);\n }\n };\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { PlatformModule } from '@angular/cdk/platform';\nimport { NgModule } from '@angular/core';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqToolTipModule } from '@koobiq/components/tooltip';\nimport { KbqNavbarBrand } from './navbar-brand.component';\nimport {\n KbqNavbarBento,\n KbqNavbarDivider,\n KbqNavbarFocusableItem,\n KbqNavbarItem,\n KbqNavbarLogo,\n KbqNavbarRectangleElement,\n KbqNavbarTitle\n} from './navbar-item.component';\nimport { KbqNavbarToggle } from './navbar-toggle.component';\nimport { KbqNavbar, KbqNavbarContainer } from './navbar.component';\nimport { KbqVerticalNavbar } from './vertical-navbar.component';\n\n@NgModule({\n imports: [\n A11yModule,\n PlatformModule,\n KbqIconModule,\n KbqToolTipModule,\n KbqNavbar,\n KbqNavbarContainer,\n KbqNavbarTitle,\n KbqNavbarItem,\n KbqNavbarBrand,\n KbqNavbarLogo,\n KbqNavbarToggle,\n KbqVerticalNavbar,\n KbqNavbarDivider,\n KbqNavbarFocusableItem,\n KbqNavbarRectangleElement,\n KbqNavbarBento\n ],\n exports: [\n KbqNavbar,\n KbqNavbarContainer,\n KbqNavbarTitle,\n KbqNavbarItem,\n KbqNavbarBrand,\n KbqNavbarLogo,\n KbqNavbarToggle,\n KbqVerticalNavbar,\n KbqNavbarDivider,\n KbqNavbarFocusableItem,\n KbqNavbarRectangleElement,\n KbqNavbarBento\n ]\n})\nexport class KbqNavbarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2"],"mappings":"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"}
1
+ {"version":3,"file":"koobiq-components-navbar.mjs","sources":["../../../packages/components/navbar/navbar-item.component.ts","../../../packages/components/navbar/navbar-item.component.html","../../../packages/components/navbar/navbar-brand.component.ts","../../../packages/components/navbar/navbar.component.ts","../../../packages/components/navbar/vertical-navbar.component.ts","../../../packages/components/navbar/navbar-toggle.component.ts","../../../packages/components/navbar/navbar.module.ts","../../../packages/components/navbar/koobiq-components-navbar.ts"],"sourcesContent":["import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Platform } from '@angular/cdk/platform';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n Directive,\n ElementRef,\n Input,\n NgZone,\n OnDestroy,\n Optional,\n ViewEncapsulation,\n booleanAttribute,\n inject\n} from '@angular/core';\nimport { IFocusableOption } from '@koobiq/cdk/a11y';\nimport { DOWN_ARROW, RIGHT_ARROW } from '@koobiq/cdk/keycodes';\nimport { KbqButton, KbqButtonCssStyler } from '@koobiq/components/button';\nimport { KBQ_WINDOW, PopUpPlacements, PopUpTriggers, kbqInjectNativeElement } from '@koobiq/components/core';\nimport { KbqDropdownTrigger } from '@koobiq/components/dropdown';\nimport { KbqFormField } from '@koobiq/components/form-field';\nimport { KbqIcon } from '@koobiq/components/icon';\nimport { KbqTooltipTrigger } from '@koobiq/components/tooltip';\nimport { Subject } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\nexport interface KbqNavbarFocusableItemEvent {\n item: KbqNavbarFocusableItem;\n}\n\n@Directive({\n selector: 'kbq-navbar-logo, [kbq-navbar-logo]',\n host: {\n class: 'kbq-navbar-logo',\n '(mouseenter)': 'hovered.next(true)',\n '(mouseleave)': 'hovered.next(false)'\n }\n})\nexport class KbqNavbarLogo {\n readonly hovered = new Subject<boolean>();\n}\n\n@Directive({\n selector: 'kbq-navbar-item[bento], [kbq-navbar-item][bento]',\n host: {\n class: 'kbq-navbar-bento'\n }\n})\nexport class KbqNavbarBento {}\n\n@Directive({\n selector: 'kbq-navbar-title, [kbq-navbar-title]',\n host: {\n class: 'kbq-navbar-title',\n '[class.kbq-navbar-title_small]': 'isTextOverflown',\n\n '(mouseenter)': 'hovered.next(true)',\n '(mouseleave)': 'hovered.next(false)'\n }\n})\nexport class KbqNavbarTitle implements AfterViewInit {\n protected readonly isBrowser = inject(Platform).isBrowser;\n protected readonly nativeElement = kbqInjectNativeElement();\n private readonly window = inject(KBQ_WINDOW);\n\n readonly hovered = new Subject<boolean>();\n\n outerElementWidth: number;\n isTextOverflown: boolean = false;\n\n get text(): string {\n return this.nativeElement.textContent || '';\n }\n\n get isOverflown() {\n return this.nativeElement.scrollWidth > this.nativeElement.clientWidth;\n }\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, 0);\n }\n\n checkTextOverflown() {\n this.isTextOverflown = this.text.length > 18;\n }\n\n ngAfterViewInit(): void {\n this.outerElementWidth = this.getOuterElementWidth();\n }\n}\n\n@Directive({\n selector: 'kbq-navbar-divider',\n host: {\n class: 'kbq-navbar-divider'\n }\n})\nexport class KbqNavbarDivider {}\n\n@Directive({\n selector: 'kbq-navbar-item, [kbq-navbar-item], kbq-navbar-brand, [kbq-navbar-brand], kbq-navbar-toggle',\n host: {\n '[attr.tabindex]': 'tabIndex',\n '[attr.disabled]': 'disabled || null',\n\n class: 'kbq-navbar-focusable-item',\n '[class.kbq-navbar-item_has-nested]': '!!nestedElement',\n '[class.kbq-disabled]': 'disabled',\n\n '(focus)': 'onFocusHandler()',\n '(blur)': 'blur()'\n }\n})\nexport class KbqNavbarFocusableItem implements AfterContentInit, AfterViewInit, OnDestroy, IFocusableOption {\n @ContentChild(KbqNavbarTitle) title: KbqNavbarTitle;\n\n @ContentChild(KbqButton) button: KbqButton;\n\n @ContentChild(KbqFormField) formField: KbqFormField;\n\n get nestedElement(): KbqButton | KbqFormField {\n return this.button || this.formField;\n }\n\n get tooltip(): KbqTooltipTrigger {\n return this._tooltip;\n }\n\n private _tooltip: KbqTooltipTrigger;\n\n readonly onFocus = new Subject<KbqNavbarFocusableItemEvent>();\n\n readonly onBlur = new Subject<KbqNavbarFocusableItemEvent>();\n\n get hasFocus(): boolean {\n return !!this.nestedElement?.hasFocus || this._hasFocus;\n }\n\n set hasFocus(value: boolean) {\n this._hasFocus = value;\n }\n\n private _hasFocus: boolean = false;\n\n /** Whether the item is disabled. */\n @Input({ transform: booleanAttribute })\n get disabled() {\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n if (value !== this._disabled) {\n this._disabled = value;\n this.changeDetector.markForCheck();\n }\n }\n\n private _disabled = false;\n\n get tabIndex(): number {\n return -1;\n }\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private changeDetector: ChangeDetectorRef,\n private focusMonitor: FocusMonitor,\n private ngZone: NgZone\n ) {}\n\n ngAfterViewInit(): void {\n this.focusMonitor.monitor(this.elementRef);\n }\n\n ngAfterContentInit(): void {\n if (this.button) {\n this.button.tabIndex = -1;\n }\n }\n\n ngOnDestroy() {\n this.focusMonitor.stopMonitoring(this.elementRef);\n }\n\n setTooltip(value: KbqTooltipTrigger) {\n this._tooltip = value;\n }\n\n onFocusHandler() {\n if (this.disabled || this.hasFocus) {\n return;\n }\n\n this.onFocus.next({ item: this });\n\n this.hasFocus = true;\n\n this.changeDetector.markForCheck();\n\n this.elementRef.nativeElement.focus();\n }\n\n focus(origin?: FocusOrigin): void {\n if (this.disabled || this.hasFocus) {\n return;\n }\n\n if (origin === 'keyboard') {\n this.focusMonitor.focusVia(this.elementRef, origin);\n }\n\n if (this.nestedElement) {\n this.nestedElement.focusViaKeyboard();\n\n this.changeDetector.markForCheck();\n\n return;\n }\n\n this.tooltip?.show();\n this.onFocusHandler();\n }\n\n blur(): void {\n // When animations are enabled, Angular may end up removing the option from the DOM a little\n // earlier than usual, causing it to be blurred and throwing off the logic in the list\n // that moves focus not the next item. To work around the issue, we defer marking the option\n // as not focused until the next time the zone stabilizes.\n this.ngZone.onStable\n .asObservable()\n .pipe(take(1))\n .subscribe(() => {\n this.ngZone.run(() => {\n this._hasFocus = false;\n\n this.tooltip?.hide();\n\n if (this.button?.hasFocus) {\n return;\n }\n\n this.onBlur.next({ item: this });\n });\n });\n }\n\n getLabel(): string {\n return this.title?.text || '';\n }\n}\n\n@Directive({\n selector: 'kbq-navbar-item, [kbq-navbar-item], kbq-navbar-divider, kbq-navbar-brand, [kbq-navbar-brand]',\n host: {\n '[class.kbq-vertical]': 'vertical',\n '[class.kbq-horizontal]': 'horizontal',\n\n '[class.kbq-expanded]': 'vertical && !collapsed',\n '[class.kbq-collapsed]': 'vertical && collapsed'\n }\n})\nexport class KbqNavbarRectangleElement {\n protected readonly isBrowser = inject(Platform).isBrowser;\n protected readonly nativeElement = kbqInjectNativeElement();\n private readonly window = inject(KBQ_WINDOW);\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n\n readonly state = new Subject<void>();\n\n get horizontal(): boolean {\n return this._horizontal;\n }\n\n set horizontal(value: boolean) {\n if (this._horizontal === value) return;\n\n this._horizontal = value;\n this._vertical = !value;\n\n this.state.next();\n this.changeDetectorRef.markForCheck();\n }\n\n private _horizontal: boolean = false;\n\n get vertical(): boolean {\n return this._vertical;\n }\n\n set vertical(value: boolean) {\n if (this._vertical === value) return;\n\n this._vertical = value;\n this._horizontal = !value;\n\n this.state.next();\n this.changeDetectorRef.markForCheck();\n }\n\n private _vertical: boolean = true;\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 @ContentChild(KbqButtonCssStyler) button: KbqButtonCssStyler;\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\n@Component({\n selector: 'kbq-navbar-item, [kbq-navbar-item]',\n imports: [\n KbqIcon\n ],\n templateUrl: './navbar-item.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'kbqNavbarItem',\n host: {\n class: 'kbq-navbar-item',\n '[class.kbq-navbar-item_collapsed]': 'isCollapsed',\n '[class.kbq-navbar-item_with-title]': '!!title',\n\n '(keydown)': 'onKeyDown($event)'\n }\n})\nexport class KbqNavbarItem extends KbqTooltipTrigger implements AfterContentInit {\n @ContentChild(KbqNavbarTitle) title: KbqNavbarTitle;\n\n @ContentChild(KbqIcon) icon: KbqIcon;\n\n @Input()\n get collapsedText(): string {\n return this._collapsedText;\n }\n\n set collapsedText(value: string) {\n this._collapsedText = value;\n\n this.updateTooltip();\n }\n\n private _collapsedText: string;\n\n @Input('kbqTrigger')\n get trigger(): string {\n return this._trigger;\n }\n\n set trigger(value: string) {\n if (value) {\n this._trigger = value;\n\n this.initListeners();\n }\n }\n\n set collapsed(value: boolean) {\n if (this._collapsed !== value) {\n this._collapsed = value;\n\n this.updateTooltip();\n }\n }\n\n // todo in future need rename to 'collapsed'\n get isCollapsed(): boolean {\n return this._collapsed ?? this.rectangleElement.collapsed;\n }\n\n private _collapsed = false;\n\n get croppedText(): string {\n const croppedTitleText = this.title?.isOverflown ? this.titleText : '';\n\n return `${croppedTitleText}`;\n }\n\n @Input()\n get collapsable(): boolean {\n return this._collapsable;\n }\n\n set collapsable(value: boolean) {\n this._collapsable = coerceBooleanProperty(value);\n }\n\n private _collapsable: boolean = true;\n\n get titleText(): string | null {\n return this._collapsedText || this.title?.text || null;\n }\n\n get disabled(): boolean {\n if (this._disabled !== undefined) {\n return this._disabled;\n }\n\n return !this.isCollapsed && !this.hasCroppedText;\n }\n\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n }\n\n get hasDropDownTrigger(): boolean {\n return !!this.dropdownTrigger;\n }\n\n get showVerticalDropDownAngle(): boolean {\n return !this.bento && this.hasDropDownTrigger && this.rectangleElement.vertical && !this.isCollapsed;\n }\n\n get showHorizontalDropDownAngle(): boolean {\n return this.hasDropDownTrigger && this.rectangleElement.horizontal && !this.isCollapsed;\n }\n\n get hasCroppedText(): boolean {\n return !!this.title?.isOverflown;\n }\n\n constructor(\n public rectangleElement: KbqNavbarRectangleElement,\n public navbarFocusableItem: KbqNavbarFocusableItem,\n private changeDetectorRef: ChangeDetectorRef,\n @Optional() private dropdownTrigger: KbqDropdownTrigger,\n @Optional() private bento: KbqNavbarBento\n ) {\n super();\n\n if (this.hasDropDownTrigger) {\n this.dropdownTrigger.openByArrowDown = false;\n }\n\n this.rectangleElement.state.subscribe(() => {\n this.collapsed = this.rectangleElement.collapsed;\n\n this.changeDetectorRef.detectChanges();\n });\n\n this._trigger = `${PopUpTriggers.Hover}`;\n\n this.navbarFocusableItem.setTooltip(this);\n\n this.arrow = false;\n this.offset = 0;\n\n this.overlayConfig.panelClass = 'kbq-tooltip-panel_horizontal-navbar';\n }\n\n ngAfterContentInit(): void {\n if (this.dropdownTrigger?.dropdown) {\n this.dropdownTrigger.dropdown.overlapTriggerX = false;\n this.dropdownTrigger.dropdown.overlapTriggerY = true;\n // needs to shift dropdown to the left by 8 pixels\n this.dropdownTrigger.offsetX = -8;\n }\n\n this.updateTooltip();\n }\n\n updateTooltip(): void {\n if (this.isCollapsed) {\n this.content = `${this.titleText || ''}`;\n } else if (!this.isCollapsed && this.hasCroppedText) {\n this.content = this.croppedText;\n }\n\n if (this.rectangleElement.vertical) {\n this.placement = PopUpPlacements.Right;\n this.placementPriority = PopUpPlacements.Right;\n }\n\n this.changeDetectorRef.markForCheck();\n }\n\n getTitleWidth(): number {\n return this.title.outerElementWidth;\n }\n\n onKeyDown($event: KeyboardEvent) {\n if (!this.hasDropDownTrigger) {\n return;\n }\n\n if (\n (this.rectangleElement.horizontal && $event.keyCode === DOWN_ARROW) ||\n (this.rectangleElement.vertical && $event.keyCode === RIGHT_ARROW)\n ) {\n this.dropdownTrigger.openedBy = 'keyboard';\n this.dropdownTrigger.open();\n\n $event.stopPropagation();\n $event.preventDefault();\n }\n }\n}\n","<ng-content select=\"[kbq-icon]\" />\n\n@if (title) {\n <div class=\"kbq-navbar-item__container\">\n <div class=\"kbq-navbar-item__title\">\n <ng-content select=\"kbq-navbar-title, [kbq-navbar-title]\" />\n </div>\n @if (showVerticalDropDownAngle) {\n <i kbq-icon=\"kbq-chevron-right_16\" class=\"kbq-navbar-item__arrow-icon\"></i>\n }\n @if (showHorizontalDropDownAngle) {\n <i kbq-icon=\"kbq-chevron-down-s_16\" class=\"kbq-navbar-item__arrow-icon\"></i>\n }\n </div>\n}\n\n<ng-content />\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { AfterContentInit, ChangeDetectorRef, Component, ContentChild, inject, Input } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { kbqInjectNativeElement, PopUpPlacements, PopUpTriggers } from '@koobiq/components/core';\nimport { KbqTooltipTrigger } from '@koobiq/components/tooltip';\nimport { KbqNavbarFocusableItem, KbqNavbarRectangleElement, KbqNavbarTitle } from './navbar-item.component';\n\n@Component({\n selector: 'kbq-navbar-brand, [kbq-navbar-brand]',\n exportAs: 'kbqNavbarBrand',\n template: `\n <ng-content />\n `,\n styleUrls: [\n './navbar-brand.scss'\n ],\n host: {\n class: 'kbq-navbar-brand',\n '[class.kbq-navbar-brand_long-title]': 'longTitle',\n '[class.kbq-navbar-brand_link]': 'isLink'\n }\n})\nexport class KbqNavbarBrand extends KbqTooltipTrigger implements AfterContentInit {\n /** @docs-private */\n protected readonly nativeElement = kbqInjectNativeElement();\n /** @docs-private */\n protected readonly changeDetectorRef = inject(ChangeDetectorRef);\n /** @docs-private */\n protected readonly rectangleElement = inject(KbqNavbarRectangleElement);\n /** @docs-private */\n protected readonly navbarFocusableItem = inject(KbqNavbarFocusableItem);\n\n /** @docs-private */\n @ContentChild(KbqNavbarTitle) title: KbqNavbarTitle;\n\n /** alternative display of the brand name in two lines */\n @Input() longTitle: boolean = false;\n\n /** text that will be displayed in the tooltip. By default, the text is taken from kbq-navbar-title. */\n @Input() collapsedText: string;\n\n get isLink(): boolean {\n return this.nativeElement.tagName === 'A';\n }\n\n /** @docs-private */\n get croppedText(): string {\n const croppedTitleText = this.title?.isOverflown ? this.titleText : '';\n\n return `${croppedTitleText}`;\n }\n\n /** @docs-private */\n get hasCroppedText(): boolean {\n return !!this.title?.isOverflown;\n }\n\n /** @docs-private */\n get titleText(): string | null {\n return this.collapsedText || this.title?.text || null;\n }\n\n /** @docs-private */\n get disabled(): boolean {\n if (this._disabled !== undefined) {\n return this._disabled;\n }\n\n return !this.collapsed && !this.hasCroppedText;\n }\n\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n }\n\n /** @docs-private */\n get collapsed(): boolean {\n return this._collapsed ?? this.rectangleElement.collapsed;\n }\n\n set collapsed(value: boolean) {\n if (this._collapsed !== value) {\n this._collapsed = value;\n\n this.updateTooltip();\n }\n }\n\n private _collapsed = false;\n\n constructor() {\n super();\n\n this.rectangleElement.state.pipe(takeUntilDestroyed()).subscribe(() => {\n this.collapsed = this.rectangleElement.collapsed;\n\n this.changeDetectorRef.detectChanges();\n });\n\n this._trigger = `${PopUpTriggers.Hover}`;\n\n this.navbarFocusableItem.setTooltip(this);\n\n this.arrow = false;\n this.offset = 0;\n\n this.navbarFocusableItem.disabled = !this.isLink;\n }\n\n ngAfterContentInit(): void {\n this.updateTooltip();\n }\n\n private updateTooltip(): void {\n if (this.collapsed) {\n this.content = `${this.titleText || ''}`;\n } else if (!this.collapsed && this.hasCroppedText) {\n this.content = this.croppedText;\n }\n\n if (this.rectangleElement.vertical) {\n this.placement = PopUpPlacements.Right;\n }\n\n this.changeDetectorRef.markForCheck();\n }\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n contentChildren,\n ContentChildren,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n forwardRef,\n inject,\n Input,\n OnDestroy,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FocusKeyManager } from '@koobiq/cdk/a11y';\nimport { isHorizontalMovement, isVerticalMovement, LEFT_ARROW, RIGHT_ARROW, TAB } from '@koobiq/cdk/keycodes';\nimport { merge, Observable, Subject, Subscription } from 'rxjs';\nimport { debounceTime, startWith } from 'rxjs/operators';\nimport {\n KbqNavbarFocusableItem,\n KbqNavbarFocusableItemEvent,\n KbqNavbarItem,\n KbqNavbarRectangleElement\n} from './navbar-item.component';\n\nexport type KbqNavbarContainerPositionType = 'left' | 'right';\n\n@Directive()\nexport class KbqFocusableComponent implements AfterContentInit, AfterViewInit, OnDestroy {\n @ContentChildren(forwardRef(() => KbqNavbarFocusableItem), { descendants: true })\n focusableItems: QueryList<KbqNavbarFocusableItem>;\n\n keyManager: FocusKeyManager<KbqNavbarFocusableItem>;\n\n @Input()\n get tabIndex(): any {\n return this._tabIndex;\n }\n\n set tabIndex(value: any) {\n this._tabIndex = value;\n }\n\n private _tabIndex = 0;\n\n get optionFocusChanges(): Observable<KbqNavbarFocusableItemEvent> {\n return merge(...this.focusableItems.map((item) => item.onFocus));\n }\n\n get optionBlurChanges(): Observable<KbqNavbarFocusableItemEvent> {\n return merge(...this.focusableItems.map((option) => option.onBlur));\n }\n\n private readonly destroyRef = inject(DestroyRef);\n\n private optionFocusSubscription: Subscription | null;\n private optionBlurSubscription: Subscription | null;\n\n constructor(\n protected readonly changeDetectorRef: ChangeDetectorRef,\n protected readonly elementRef: ElementRef<HTMLElement>,\n protected readonly focusMonitor: FocusMonitor\n ) {}\n\n ngAfterContentInit(): void {\n this.keyManager = new FocusKeyManager<KbqNavbarFocusableItem>(this.focusableItems).withTypeAhead();\n\n this.keyManager.tabOut.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.tabIndex = -1;\n\n setTimeout(() => {\n this.tabIndex = 0;\n this.changeDetectorRef.markForCheck();\n });\n });\n\n this.focusableItems.changes.pipe(startWith(null), takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.resetOptions();\n\n // Check to see if we need to update our tab index\n this.updateTabIndex();\n });\n }\n\n ngAfterViewInit(): void {\n this.focusMonitor.monitor(this.elementRef).subscribe((focusOrigin) => {\n this.keyManager.setFocusOrigin(focusOrigin);\n });\n }\n\n ngOnDestroy() {\n this.focusMonitor.stopMonitoring(this.elementRef);\n }\n\n focus(): void {\n if (this.focusableItems.length === 0) {\n return;\n }\n\n this.keyManager.setFirstItemActive();\n }\n\n blur() {\n if (!this.hasFocusedItem()) {\n this.keyManager.setActiveItem(-1);\n }\n\n this.changeDetectorRef.markForCheck();\n }\n\n protected resetOptions() {\n this.dropSubscriptions();\n this.listenToOptionsFocus();\n }\n\n protected dropSubscriptions() {\n if (this.optionFocusSubscription) {\n this.optionFocusSubscription.unsubscribe();\n this.optionFocusSubscription = null;\n }\n\n if (this.optionBlurSubscription) {\n this.optionBlurSubscription.unsubscribe();\n this.optionBlurSubscription = null;\n }\n }\n\n private listenToOptionsFocus(): void {\n this.optionFocusSubscription = this.optionFocusChanges.subscribe((event) => {\n const index: number = this.focusableItems.toArray().indexOf(event.item);\n\n if (this.isValidIndex(index)) {\n this.keyManager.updateActiveItem(index);\n }\n });\n\n this.optionBlurSubscription = this.optionBlurChanges.subscribe(() => this.blur());\n }\n\n private updateTabIndex(): void {\n this.tabIndex = this.focusableItems.length === 0 ? -1 : 0;\n }\n\n private isValidIndex(index: number): boolean {\n return index >= 0 && index < this.focusableItems.length;\n }\n\n private hasFocusedItem() {\n return this.focusableItems.some((item) => item.hasFocus);\n }\n}\n\n@Directive({\n selector: 'kbq-navbar-container',\n host: {\n class: 'kbq-navbar-container'\n }\n})\nexport class KbqNavbarContainer {}\n\n@Component({\n selector: 'kbq-navbar',\n template: `\n <ng-content select=\"[kbq-navbar-container], kbq-navbar-container\" />\n `,\n styleUrls: [\n './navbar.scss',\n './navbar-item.scss',\n './navbar-brand.scss',\n './navbar-divider.scss',\n './navbar-tokens.scss'\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'kbq-navbar',\n '[attr.tabindex]': 'tabIndex',\n '(focus)': 'focus()',\n '(blur)': 'blur()',\n '(keydown)': 'onKeyDown($event)',\n '(window:resize)': 'resizeStream.next($event)'\n }\n})\nexport class KbqNavbar extends KbqFocusableComponent implements AfterViewInit, AfterContentInit, OnDestroy {\n readonly rectangleElements = contentChildren(\n forwardRef(() => KbqNavbarRectangleElement),\n { descendants: true }\n );\n\n @ContentChildren(forwardRef(() => KbqNavbarItem), { descendants: true }) navbarItems: QueryList<KbqNavbarItem>;\n\n readonly resizeStream = new Subject<Event>();\n\n private readonly resizeDebounceInterval: number = 100;\n\n private get width(): number {\n const element = this.elementRef.nativeElement;\n\n // For SSR compatibility\n if (typeof element.getClientRects !== 'function') return 0;\n\n return element.getBoundingClientRect().width;\n }\n\n private get totalItemsWidth(): number {\n return this.rectangleElements().reduce((acc, item) => acc + item.getOuterElementWidth(), 0);\n }\n\n private get collapsableItems(): KbqNavbarItem[] {\n return this.navbarItems\n .toArray()\n .filter((item) => item.icon && item.title && item.collapsable)\n .reverse();\n }\n\n private resizeSubscription: Subscription;\n\n constructor(\n protected readonly elementRef: ElementRef<HTMLElement>,\n protected readonly changeDetectorRef: ChangeDetectorRef,\n protected readonly focusMonitor: FocusMonitor\n ) {\n super(changeDetectorRef, elementRef, focusMonitor);\n\n this.resizeSubscription = this.resizeStream\n .pipe(debounceTime(this.resizeDebounceInterval), takeUntilDestroyed())\n .subscribe(this.updateExpandedStateForItems);\n\n effect(() => this.setItemsState(this.rectangleElements()));\n }\n\n ngAfterContentInit(): void {\n super.ngAfterContentInit();\n\n this.keyManager.withVerticalOrientation(false).withHorizontalOrientation('ltr');\n }\n\n ngAfterViewInit(): void {\n // Note: this wait is required for loading and rendering fonts for icons;\n // unfortunately we cannot control font rendering\n setTimeout(this.updateExpandedStateForItems);\n }\n\n ngOnDestroy() {\n this.resizeSubscription.unsubscribe();\n\n super.ngOnDestroy();\n }\n\n onKeyDown(event: KeyboardEvent) {\n const keyCode = event.keyCode;\n\n if (!this.eventFromInput(event) && (isVerticalMovement(event) || isHorizontalMovement(event))) {\n event.preventDefault();\n }\n\n if (keyCode === TAB) {\n this.keyManager.tabOut.next();\n\n return;\n } else if (this.eventFromInput(event) && this.cursorOnLastPosition(event) && keyCode === RIGHT_ARROW) {\n this.keyManager.setNextItemActive();\n } else if (this.eventFromInput(event) && this.cursorOnFirstPosition(event) && keyCode === LEFT_ARROW) {\n this.keyManager.setPreviousItemActive();\n } else if (!this.eventFromInput(event)) {\n this.keyManager.onKeydown(event);\n }\n }\n\n updateExpandedStateForItems = () => {\n const collapseDelta = this.totalItemsWidth - this.width;\n\n const needCollapse = collapseDelta > 0;\n\n if (needCollapse) {\n this.collapseItems(collapseDelta);\n } else {\n this.expandItems(collapseDelta);\n }\n };\n\n private eventFromInput(event: KeyboardEvent): boolean {\n return !!(event.target as HTMLElement).attributes.getNamedItem('kbqinput');\n }\n\n private cursorOnFirstPosition(event: KeyboardEvent): boolean {\n const input = event.target as HTMLInputElement;\n\n return input.selectionStart === 0;\n }\n\n private cursorOnLastPosition(event: KeyboardEvent): boolean {\n const input = event.target as HTMLInputElement;\n\n return input.selectionEnd === input.value.length;\n }\n\n private collapseItems(collapseDelta: number) {\n let delta = collapseDelta;\n\n const unCollapsedItems = this.collapsableItems.filter((item) => !item.collapsed);\n\n for (const item of unCollapsedItems) {\n item.collapsed = true;\n delta -= item.getTitleWidth();\n\n if (delta < 0) {\n break;\n }\n }\n }\n\n private expandItems(collapseDelta: number) {\n let delta = collapseDelta;\n\n this.collapsableItems\n .filter((item) => item.collapsed)\n .forEach((item) => {\n if (delta + item.getTitleWidth() < 0) {\n item.collapsed = false;\n delta += item.getTitleWidth();\n }\n });\n }\n\n private setItemsState = (rectangleElements: Readonly<KbqNavbarRectangleElement[]>) => {\n Promise.resolve().then(() => rectangleElements.forEach((item) => (item.horizontal = true)));\n };\n}\n","import { CdkMonitorFocus, FocusMonitor } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n contentChildren,\n ContentChildren,\n effect,\n ElementRef,\n forwardRef,\n inject,\n InjectionToken,\n Input,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DOWN_ARROW, isHorizontalMovement, isVerticalMovement, TAB, UP_ARROW } from '@koobiq/cdk/keycodes';\nimport { KBQ_LOCALE_SERVICE, ruRULocaleData } from '@koobiq/components/core';\nimport { Subject } from 'rxjs';\nimport { KbqNavbarBento, KbqNavbarItem, KbqNavbarRectangleElement } from './navbar-item.component';\nimport { KbqFocusableComponent } from './navbar.component';\n\n/** default configuration of navbar */\n/** @docs-private */\nexport const KBQ_VERTICAL_NAVBAR_DEFAULT_CONFIGURATION = ruRULocaleData.navbar;\n\n/** Injection Token for providing configuration of navbar */\n/** @docs-private */\nexport const KBQ_VERTICAL_NAVBAR_CONFIGURATION = new InjectionToken('KbqVerticalNavbarConfiguration');\n\n@Component({\n selector: 'kbq-vertical-navbar',\n template: `\n <div class=\"kbq-vertical-navbar__container\" [class.kbq-collapsed]=\"!expanded\" [class.kbq-expanded]=\"expanded\">\n <ng-content select=\"[kbq-navbar-container], kbq-navbar-container\" />\n <ng-content select=\"[kbq-navbar-toggle], kbq-navbar-toggle\" />\n </div>\n `,\n styleUrls: [\n './vertical-navbar.scss',\n './navbar-item.scss',\n './navbar-brand.scss',\n './navbar-divider.scss',\n './navbar-tokens.scss'\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'KbqVerticalNavbar',\n host: {\n class: 'kbq-vertical-navbar',\n '[class.kbq-vertical-navbar_open-over]': 'openOver',\n '[attr.tabindex]': 'tabIndex',\n '[attr.cdkMonitorSubtreeFocus]': 'true',\n\n '(focus)': 'focus()',\n '(blur)': 'blur()',\n\n '(keydown)': 'onKeyDown($event)'\n },\n hostDirectives: [CdkMonitorFocus]\n})\nexport class KbqVerticalNavbar extends KbqFocusableComponent implements AfterContentInit {\n /** @docs-private */\n protected readonly localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });\n\n readonly externalConfiguration = inject(KBQ_VERTICAL_NAVBAR_CONFIGURATION, { optional: true });\n\n configuration;\n\n rectangleElements = contentChildren(\n forwardRef(() => KbqNavbarRectangleElement),\n { descendants: true }\n );\n\n @ContentChildren(forwardRef(() => KbqNavbarItem), { descendants: true }) items: QueryList<KbqNavbarItem>;\n\n @ContentChild(forwardRef(() => KbqNavbarBento)) bento: KbqNavbarBento;\n\n readonly animationDone: Subject<void> = new Subject();\n\n @Input() openOver: boolean = false;\n\n @Input()\n get expanded() {\n return this._expanded;\n }\n\n set expanded(value: boolean) {\n this._expanded = coerceBooleanProperty(value);\n\n this.updateExpandedStateForItems();\n }\n\n private _expanded: boolean = false;\n\n constructor(\n protected elementRef: ElementRef<HTMLElement>,\n changeDetectorRef: ChangeDetectorRef,\n focusMonitor: FocusMonitor\n ) {\n super(changeDetectorRef, elementRef, focusMonitor);\n\n this.animationDone.pipe(takeUntilDestroyed()).subscribe(this.updateTooltipForItems);\n\n effect(() => this.setItemsVerticalStateAndUpdateExpandedState(this.rectangleElements()));\n\n this.localeService?.changes.pipe(takeUntilDestroyed()).subscribe(this.updateLocaleParams);\n\n if (!this.localeService) {\n this.initDefaultParams();\n }\n }\n\n ngAfterContentInit(): void {\n this.updateTooltipForItems();\n\n super.ngAfterContentInit();\n\n this.keyManager.withVerticalOrientation(true);\n }\n\n toggle(): void {\n this.expanded = !this.expanded;\n\n this.changeDetectorRef.markForCheck();\n }\n\n onKeyDown(event: KeyboardEvent) {\n const keyCode = event.keyCode;\n\n if (\n !(event.target as HTMLElement).attributes.getNamedItem('kbqinput') &&\n (isVerticalMovement(event) || isHorizontalMovement(event))\n ) {\n event.preventDefault();\n }\n\n if (keyCode === TAB) {\n this.keyManager.tabOut.next();\n\n return;\n } else if (keyCode === DOWN_ARROW) {\n this.keyManager.setNextItemActive();\n } else if (keyCode === UP_ARROW) {\n this.keyManager.setPreviousItemActive();\n } else {\n this.keyManager.onKeydown(event);\n }\n }\n\n private updateExpandedStateForItems = () => this.rectangleElements().forEach(this.updateItemExpandedState);\n\n private updateTooltipForItems = () => this.items.forEach((item) => item.updateTooltip());\n\n private setItemsVerticalStateAndUpdateExpandedState = (rectangleElements: Readonly<KbqNavbarRectangleElement[]>) =>\n rectangleElements.forEach(this.setItemVerticalStateAndUpdateExpandedState);\n\n private setItemVerticalStateAndUpdateExpandedState = (item: KbqNavbarRectangleElement): void => {\n queueMicrotask(() => this.setItemVerticalState(item));\n this.updateItemExpandedState(item);\n };\n\n private setItemVerticalState = (item: KbqNavbarRectangleElement): void => {\n item.vertical = true;\n };\n\n private updateItemExpandedState = (item: KbqNavbarRectangleElement): void => {\n item.collapsed = !this.expanded;\n setTimeout(() => item.button?.updateClassModifierForIcons());\n };\n\n private updateLocaleParams = () => {\n this.configuration = this.externalConfiguration || this.localeService?.getParams('navbar');\n\n this.changeDetectorRef.markForCheck();\n };\n\n private initDefaultParams() {\n this.configuration = KBQ_VERTICAL_NAVBAR_DEFAULT_CONFIGURATION;\n }\n}\n","import { CdkMonitorFocus } from '@angular/cdk/a11y';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n inject,\n NgZone,\n OnDestroy,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ENTER, NUMPAD_DIVIDE, SLASH, SPACE } from '@koobiq/cdk/keycodes';\nimport { KBQ_WINDOW, PopUpPlacements } from '@koobiq/components/core';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqTooltipTrigger } from '@koobiq/components/tooltip';\nimport { KbqVerticalNavbar } from './vertical-navbar.component';\n\n@Component({\n selector: 'kbq-navbar-toggle, [kbq-navbar-toggle]',\n imports: [\n KbqIconModule\n ],\n template: `\n <span class=\"kbq-navbar-toggle__circle\">\n <ng-content select=\"[kbq-icon]\">\n <i\n kbq-icon\n [class.kbq-chevron-double-left-s_16]=\"navbar.expanded\"\n [class.kbq-chevron-double-right-s_16]=\"!navbar.expanded\"\n ></i>\n </ng-content>\n </span>\n `,\n styleUrls: ['./navbar-toggle.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'kbq-navbar-toggle kbq-vertical',\n '[class.kbq-collapsed]': '!navbar.expanded',\n '[class.kbq-expanded]': 'navbar.expanded',\n\n '(keydown)': 'keydownHandler($event)',\n '(click)': 'toggle()'\n },\n hostDirectives: [CdkMonitorFocus, KbqTooltipTrigger]\n})\nexport class KbqNavbarToggle implements OnDestroy {\n private readonly window = inject(KBQ_WINDOW);\n private readonly ngZone = inject(NgZone);\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n\n private readonly tooltip = inject(KbqTooltipTrigger, { self: true });\n\n /** @docs-private */\n protected readonly navbar = inject(KbqVerticalNavbar);\n\n constructor() {\n afterNextRender(() => {\n this.ngZone.runOutsideAngular(() => this.window.addEventListener('keydown', this.windowToggleHandler));\n });\n\n this.tooltip.arrow = false;\n this.updateTooltipContent();\n this.tooltip.tooltipPlacement = PopUpPlacements.Right;\n\n this.tooltip.visibleChange.pipe(takeUntilDestroyed()).subscribe(this.updateTooltipContent);\n }\n\n ngOnDestroy(): void {\n this.window.removeEventListener('keydown', this.windowToggleHandler);\n }\n\n /** @docs-private */\n keydownHandler($event: KeyboardEvent) {\n if ([SPACE, ENTER].includes($event.keyCode)) {\n this.toggle();\n\n $event.stopPropagation();\n $event.preventDefault();\n }\n }\n\n /** toggles the state of the navbar */\n toggle() {\n this.navbar.toggle();\n this.tooltip.hide();\n\n this.changeDetectorRef.detectChanges();\n }\n\n private updateTooltipContent = () => {\n this.tooltip.content = this.navbar.expanded\n ? this.navbar.configuration.toggle.collapse\n : this.navbar.configuration.toggle.expand;\n };\n\n private windowToggleHandler = (event: KeyboardEvent) => {\n if (event.ctrlKey && [NUMPAD_DIVIDE, SLASH].includes(event.keyCode)) {\n this.ngZone.run(this.navbar.toggle);\n }\n };\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { PlatformModule } from '@angular/cdk/platform';\nimport { NgModule } from '@angular/core';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqToolTipModule } from '@koobiq/components/tooltip';\nimport { KbqNavbarBrand } from './navbar-brand.component';\nimport {\n KbqNavbarBento,\n KbqNavbarDivider,\n KbqNavbarFocusableItem,\n KbqNavbarItem,\n KbqNavbarLogo,\n KbqNavbarRectangleElement,\n KbqNavbarTitle\n} from './navbar-item.component';\nimport { KbqNavbarToggle } from './navbar-toggle.component';\nimport { KbqNavbar, KbqNavbarContainer } from './navbar.component';\nimport { KbqVerticalNavbar } from './vertical-navbar.component';\n\n@NgModule({\n imports: [\n A11yModule,\n PlatformModule,\n KbqIconModule,\n KbqToolTipModule,\n KbqNavbar,\n KbqNavbarContainer,\n KbqNavbarTitle,\n KbqNavbarItem,\n KbqNavbarBrand,\n KbqNavbarLogo,\n KbqNavbarToggle,\n KbqVerticalNavbar,\n KbqNavbarDivider,\n KbqNavbarFocusableItem,\n KbqNavbarRectangleElement,\n KbqNavbarBento\n ],\n exports: [\n KbqNavbar,\n KbqNavbarContainer,\n KbqNavbarTitle,\n KbqNavbarItem,\n KbqNavbarBrand,\n KbqNavbarLogo,\n KbqNavbarToggle,\n KbqVerticalNavbar,\n KbqNavbarDivider,\n KbqNavbarFocusableItem,\n KbqNavbarRectangleElement,\n KbqNavbarBento\n ]\n})\nexport class KbqNavbarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2"],"mappings":"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"}
@@ -157,10 +157,10 @@ class KbqNotificationCenterService {
157
157
  items.forEach((item) => (item.read = item.read ?? false));
158
158
  return items;
159
159
  }
160
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqNotificationCenterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
161
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqNotificationCenterService, providedIn: 'root' }); }
160
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.19", ngImport: i0, type: KbqNotificationCenterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
161
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.19", ngImport: i0, type: KbqNotificationCenterService, providedIn: 'root' }); }
162
162
  }
163
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqNotificationCenterService, decorators: [{
163
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.19", ngImport: i0, type: KbqNotificationCenterService, decorators: [{
164
164
  type: Injectable,
165
165
  args: [{ providedIn: 'root' }]
166
166
  }], ctorParameters: () => [] });
@@ -199,10 +199,10 @@ class KbqNotificationItemComponent {
199
199
  isTemplateRef(value) {
200
200
  return value instanceof TemplateRef;
201
201
  }
202
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqNotificationItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
203
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: KbqNotificationItemComponent, isStandalone: true, selector: "kbq-notification-item", inputs: { data: "data" }, host: { properties: { "class": "style" }, classAttribute: "kbq-notification-item" }, hostDirectives: [{ directive: i1$1.KbqReadStateDirective }], ngImport: i0, template: "@if (data.icon) {\n <div class=\"kbq-notification-item__icon-container layout-row layout-align-start-start\">\n @if (data.icon === true) {\n @switch (data.style) {\n @case ('contrast') {\n <i\n kbq-icon=\"kbq-circle-info_16\"\n class=\"kbq-notification-item__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n @case ('success') {\n <i\n kbq-icon=\"kbq-circle-check_16\"\n class=\"kbq-notification-item__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n @case ('warning') {\n <i\n kbq-icon=\"kbq-triangle-exclamation_16\"\n class=\"kbq-notification-item__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n @case ('error') {\n <i\n kbq-icon=\"kbq-triangle-exclamation_16\"\n class=\"kbq-notification-item__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n }\n } @else if (isTemplateRef(data.icon)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.icon)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n </div>\n}\n\n<div class=\"kbq-notification-item__container\">\n @if (data.title) {\n <div\n kbq-title\n class=\"kbq-notification-item__title\"\n [class.kbq-notification-item__title_with-content]=\"data.caption || data.content\"\n >\n @if (isTemplateRef(data.title)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.title)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n @if (!isTemplateRef(data.title)) {\n <p>{{ data.title }}</p>\n }\n\n <div class=\"kbq-notification-item-time\" [class.kbq-notification-item-time_read]=\"data.read\">\n <div class=\"kbq-notification-item-time__value\">{{ time }}</div>\n <i class=\"kbq-notification-item-time__state\" kbq-icon=\"kbq-circle-xs_16\" [color]=\"'theme'\"></i>\n </div>\n </div>\n }\n\n @if (data.caption) {\n <div\n kbq-title\n [class.kbq-notification-item__text]=\"data.title\"\n [class.kbq-notification-item__title]=\"!data.title\"\n >\n @if (isTemplateRef(data.caption)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.caption)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n @if (!isTemplateRef(data.caption)) {\n {{ data.caption }}\n }\n </div>\n }\n\n @if (data.content) {\n <div class=\"kbq-notification-item__content\">\n @if (isTemplateRef(data.content)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.content)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n @if (!isTemplateRef(data.content)) {\n {{ data.content }}\n }\n </div>\n }\n\n @if (data.actions) {\n <div class=\"kbq-notification-item__actions\">\n @if (isTemplateRef(data.actions)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.actions)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n @if (!isTemplateRef(data.actions)) {\n {{ data.actions }}\n }\n </div>\n }\n</div>\n\n<button\n kbq-button\n class=\"kbq-notification-item__remove-button\"\n [kbqStyle]=\"'transparent'\"\n [color]=\"'contrast'\"\n [kbqTooltipArrow]=\"false\"\n [kbqTooltip]=\"center.localeData.remove\"\n [kbqPlacement]=\"popUpPlacements.Right\"\n (click)=\"service.remove(data)\"\n>\n <i kbq-icon=\"kbq-trash_16\"></i>\n</button>\n", styles: [".kbq-notification-item{display:flex;box-sizing:border-box;position:relative;border-radius:var(--kbq-size-s);height:auto;margin-left:var(--kbq-size-m);margin-right:var(--kbq-size-m)}.kbq-notification-item:hover .kbq-notification-item-time{visibility:hidden}.kbq-notification-item:hover .kbq-notification-item__remove-button{display:block}.kbq-notification-item__icon-container{flex-shrink:0;width:var(--kbq-size-l);max-width:var(--kbq-size-l);height:var(--kbq-size-l);max-height:var(--kbq-size-l);margin-right:var(--kbq-size-s);padding-left:var(--kbq-size-m);padding-top:14px}.kbq-notification-item__container{display:flex;flex-direction:column;flex:1;padding-top:var(--kbq-size-m);padding-right:var(--kbq-size-l);padding-bottom:var(--kbq-size-m);overflow:hidden}.kbq-notification-item__title{display:flex;flex-direction:row;justify-content:space-between;overflow:hidden;text-overflow:ellipsis}.kbq-notification-item__title>p{margin:0;overflow:hidden;text-overflow:ellipsis}.kbq-notification-item__title.kbq-notification-item__title_with-content{margin-bottom:var(--kbq-size-xxs)}.kbq-notification-item-time{display:flex;flex-direction:row;height:var(--kbq-size-xl);align-items:center;padding-left:22px}.kbq-notification-item-time .kbq-notification-item-time__value{margin-right:var(--kbq-size-3xs)}.kbq-notification-item-time.kbq-notification-item-time_read .kbq-notification-item-time__state{display:none}.kbq-notification-item__text{display:flex;flex:1;align-items:center}.kbq-notification-item__content{display:flex;flex-direction:column;white-space:pre-wrap}.kbq-notification-item__actions{display:flex;padding-top:var(--kbq-size-s);gap:var(--kbq-size-m)}.kbq-notification-item__remove-button{position:absolute;top:var(--kbq-size-xs);right:var(--kbq-size-s);display:none}.kbq-notification-item{background:var(--kbq-background-card)}.kbq-notification-item .kbq-notification-item__title{color:var(--kbq-foreground-contrast)}.kbq-notification-item .kbq-notification-item__text,.kbq-notification-item .kbq-notification-item-time.kbq-notification-item-time_read .kbq-notification-item-time__value{color:var(--kbq-foreground-contrast-secondary)}.kbq-notification-item:hover{background:var(--kbq-states-background-transparent-hover)}.kbq-notification-item{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-notification-item .kbq-notification-item-time{font-size:var(--kbq-typography-text-compact-font-size);font-style:var(--kbq-typography-text-compact-font-style);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i1.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: KbqTitleModule }, { kind: "directive", type: i3.KbqTitleDirective, selector: "[kbq-title]", exportAs: ["kbqTitle"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i3$1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i3$1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "directive", type: KbqTooltipTrigger, selector: "[kbqTooltip]", inputs: ["hideWithTimeout", "kbqVisible", "kbqPlacement", "kbqRelativeToPointer", "kbqPlacementPriority", "kbqTooltip", "kbqTooltipDisabled", "kbqEnterDelay", "kbqLeaveDelay", "kbqTrigger", "kbqTooltipClass", "kbqTooltipContext", "kbqTooltipColor", "kbqTooltipArrow", "kbqTooltipOffset"], outputs: ["kbqPlacementChange", "kbqVisibleChange"], exportAs: ["kbqTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
202
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.19", ngImport: i0, type: KbqNotificationItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
203
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.19", type: KbqNotificationItemComponent, isStandalone: true, selector: "kbq-notification-item", inputs: { data: "data" }, host: { properties: { "class": "style" }, classAttribute: "kbq-notification-item" }, hostDirectives: [{ directive: i1$1.KbqReadStateDirective }], ngImport: i0, template: "@if (data.icon) {\n <div class=\"kbq-notification-item__icon-container layout-row layout-align-start-start\">\n @if (data.icon === true) {\n @switch (data.style) {\n @case ('contrast') {\n <i\n kbq-icon=\"kbq-circle-info_16\"\n class=\"kbq-notification-item__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n @case ('success') {\n <i\n kbq-icon=\"kbq-circle-check_16\"\n class=\"kbq-notification-item__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n @case ('warning') {\n <i\n kbq-icon=\"kbq-triangle-exclamation_16\"\n class=\"kbq-notification-item__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n @case ('error') {\n <i\n kbq-icon=\"kbq-triangle-exclamation_16\"\n class=\"kbq-notification-item__icon\"\n [color]=\"$any(data.style)\"\n [ngClass]=\"data.iconClass\"\n ></i>\n }\n }\n } @else if (isTemplateRef(data.icon)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.icon)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n </div>\n}\n\n<div class=\"kbq-notification-item__container\">\n @if (data.title) {\n <div\n kbq-title\n class=\"kbq-notification-item__title\"\n [class.kbq-notification-item__title_with-content]=\"data.caption || data.content\"\n >\n @if (isTemplateRef(data.title)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.title)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n @if (!isTemplateRef(data.title)) {\n <p>{{ data.title }}</p>\n }\n\n <div class=\"kbq-notification-item-time\" [class.kbq-notification-item-time_read]=\"data.read\">\n <div class=\"kbq-notification-item-time__value\">{{ time }}</div>\n <i class=\"kbq-notification-item-time__state\" kbq-icon=\"kbq-circle-xs_16\" [color]=\"'theme'\"></i>\n </div>\n </div>\n }\n\n @if (data.caption) {\n <div\n kbq-title\n [class.kbq-notification-item__text]=\"data.title\"\n [class.kbq-notification-item__title]=\"!data.title\"\n >\n @if (isTemplateRef(data.caption)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.caption)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n @if (!isTemplateRef(data.caption)) {\n {{ data.caption }}\n }\n </div>\n }\n\n @if (data.content) {\n <div class=\"kbq-notification-item__content\">\n @if (isTemplateRef(data.content)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.content)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n @if (!isTemplateRef(data.content)) {\n {{ data.content }}\n }\n </div>\n }\n\n @if (data.actions) {\n <div class=\"kbq-notification-item__actions\">\n @if (isTemplateRef(data.actions)) {\n <ng-container [ngTemplateOutlet]=\"$any(data.actions)\" [ngTemplateOutletContext]=\"{ $implicit }\" />\n }\n @if (!isTemplateRef(data.actions)) {\n {{ data.actions }}\n }\n </div>\n }\n</div>\n\n<button\n kbq-button\n class=\"kbq-notification-item__remove-button\"\n [kbqStyle]=\"'transparent'\"\n [color]=\"'contrast'\"\n [kbqTooltipArrow]=\"false\"\n [kbqTooltip]=\"center.localeData.remove\"\n [kbqPlacement]=\"popUpPlacements.Right\"\n (click)=\"service.remove(data)\"\n>\n <i kbq-icon=\"kbq-trash_16\"></i>\n</button>\n", styles: [".kbq-notification-item{display:flex;box-sizing:border-box;position:relative;border-radius:var(--kbq-size-s);height:auto;margin-left:var(--kbq-size-m);margin-right:var(--kbq-size-m)}.kbq-notification-item:hover .kbq-notification-item-time{visibility:hidden}.kbq-notification-item:hover .kbq-notification-item__remove-button{display:block}.kbq-notification-item__icon-container{flex-shrink:0;width:var(--kbq-size-l);max-width:var(--kbq-size-l);height:var(--kbq-size-l);max-height:var(--kbq-size-l);margin-right:var(--kbq-size-s);padding-left:var(--kbq-size-m);padding-top:14px}.kbq-notification-item__container{display:flex;flex-direction:column;flex:1;padding-top:var(--kbq-size-m);padding-right:var(--kbq-size-l);padding-bottom:var(--kbq-size-m);overflow:hidden}.kbq-notification-item__title{display:flex;flex-direction:row;justify-content:space-between;overflow:hidden;text-overflow:ellipsis}.kbq-notification-item__title>p{margin:0;overflow:hidden;text-overflow:ellipsis}.kbq-notification-item__title.kbq-notification-item__title_with-content{margin-bottom:var(--kbq-size-xxs)}.kbq-notification-item-time{display:flex;flex-direction:row;height:var(--kbq-size-xl);align-items:center;padding-left:22px}.kbq-notification-item-time .kbq-notification-item-time__value{margin-right:var(--kbq-size-3xs)}.kbq-notification-item-time.kbq-notification-item-time_read .kbq-notification-item-time__state{display:none}.kbq-notification-item__text{display:flex;flex:1;align-items:center}.kbq-notification-item__content{display:flex;flex-direction:column;white-space:pre-wrap}.kbq-notification-item__actions{display:flex;padding-top:var(--kbq-size-s);gap:var(--kbq-size-m)}.kbq-notification-item__remove-button{position:absolute;top:var(--kbq-size-xs);right:var(--kbq-size-s);display:none}.kbq-notification-item{background:var(--kbq-background-card)}.kbq-notification-item .kbq-notification-item__title{color:var(--kbq-foreground-contrast)}.kbq-notification-item .kbq-notification-item__text,.kbq-notification-item .kbq-notification-item-time.kbq-notification-item-time_read .kbq-notification-item-time__value{color:var(--kbq-foreground-contrast-secondary)}.kbq-notification-item:hover{background:var(--kbq-states-background-transparent-hover)}.kbq-notification-item{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-notification-item .kbq-notification-item-time{font-size:var(--kbq-typography-text-compact-font-size);font-style:var(--kbq-typography-text-compact-font-style);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i1.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: KbqTitleModule }, { kind: "directive", type: i3.KbqTitleDirective, selector: "[kbq-title]", exportAs: ["kbqTitle"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i3$1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i3$1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "directive", type: KbqTooltipTrigger, selector: "[kbqTooltip]", inputs: ["hideWithTimeout", "kbqVisible", "kbqPlacement", "kbqRelativeToPointer", "kbqPlacementPriority", "kbqTooltip", "kbqTooltipDisabled", "kbqEnterDelay", "kbqLeaveDelay", "kbqTrigger", "kbqTooltipClass", "kbqTooltipContext", "kbqTooltipColor", "kbqTooltipArrow", "kbqTooltipOffset"], outputs: ["kbqPlacementChange", "kbqVisibleChange"], exportAs: ["kbqTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
204
204
  }
205
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqNotificationItemComponent, decorators: [{
205
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.19", ngImport: i0, type: KbqNotificationItemComponent, decorators: [{
206
206
  type: Component,
207
207
  args: [{ selector: 'kbq-notification-item', imports: [
208
208
  NgTemplateOutlet,
@@ -311,10 +311,10 @@ class KbqNotificationCenterComponent extends KbqPopUp {
311
311
  initDefaultParams() {
312
312
  this.configuration = KBQ_NOTIFICATION_CENTER_DEFAULT_CONFIGURATION;
313
313
  }
314
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqNotificationCenterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
315
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: KbqNotificationCenterComponent, isStandalone: true, selector: "kbq-notification-center", host: { listeners: { "keydown.escape": "escapeHandler()" }, properties: { "class.kbq-notification-center_popover": "popoverMode" }, classAttribute: "kbq-notification-center" }, viewQueries: [{ propertyName: "scrollContainer", first: true, predicate: KbqScrollbar, descendants: true }, { propertyName: "switcher", first: true, predicate: ["notificationSwitcher"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"kbq-notification-center-header\">\n <div class=\"kbq-notification-center-title\">\n <div class=\"kbq-notification-center-title__text\">{{ localeData.notifications }}</div>\n <button\n #notificationSwitcher\n #dropdownTrigger=\"kbqDropdownTrigger\"\n kbq-button\n class=\"kbq-notification-center-title__button\"\n [kbqDropdownTriggerFor]=\"notificationSwitcherDropdown\"\n [kbqTooltip]=\"service.silentMode.value ? localeData.doNotDisturb : localeData.showPopUpNotifications\"\n [kbqTooltipArrow]=\"false\"\n [kbqTooltipOffset]=\"4\"\n [kbqTooltipDisabled]=\"dropdownTrigger.opened\"\n [kbqStyle]=\"'transparent'\"\n [color]=\"'contrast'\"\n >\n <i kbq-icon=\"{{ service.silentMode.value ? 'kbq-bell-slash_16' : 'kbq-bell_16' }}\"></i>\n </button>\n </div>\n <div class=\"kbq-notification-center-toolbar\">\n @if (!service.isEmpty) {\n <button\n kbq-button\n class=\"kbq-notification-center-toolbar__button\"\n [kbqStyle]=\"'transparent'\"\n [color]=\"'contrast'\"\n (click)=\"service.removeAll()\"\n >\n <i kbq-icon=\"kbq-trash_16\"></i>\n </button>\n\n <kbq-divider [vertical]=\"true\" />\n }\n\n <button\n kbq-button\n class=\"kbq-notification-center-toolbar__button\"\n [kbqStyle]=\"'transparent'\"\n [color]=\"'contrast'\"\n (click)=\"hide(0)\"\n >\n <i kbq-icon=\"kbq-xmark_16\"></i>\n </button>\n </div>\n</div>\n\n<div\n kbq-scrollbar\n class=\"kbq-notification-center-container\"\n [class.kbq-notification-center_bottom-overflow]=\"isBottomOverflow\"\n (onScroll)=\"checkOverflow()\"\n>\n @if (!service.errorMode.value) {\n @if (!service.loadingMode.value) {\n @for (group of service.groupedItems | async; track group) {\n <div\n class=\"kbq-notification-center-sub-header\"\n [class.kbq-notification-center_top-overflow]=\"isTopOverflow\"\n >\n <div class=\"kbq-notification-center-sub-header__date\">{{ group.title }}</div>\n\n <button\n kbq-button\n class=\"kbq-notification-center-sub-header__button\"\n [kbqStyle]=\"'transparent'\"\n [color]=\"'contrast'\"\n [kbqTooltip]=\"localeData.remove\"\n [kbqTooltipArrow]=\"false\"\n (click)=\"service.removeGroup(group)\"\n >\n <i kbq-icon=\"kbq-trash_16\"></i>\n </button>\n </div>\n\n @for (item of group.items; track item) {\n <kbq-notification-item [data]=\"item\" />\n }\n } @empty {\n <div class=\"kbq-notification-center-empty-container\">\n <i kbq-icon-item=\"kbq-bell_16\" [big]=\"true\" [color]=\"'contrast-fade'\"></i>\n {{ localeData.noNotifications }}\n </div>\n }\n } @else {\n <kbq-loader-overlay [transparent]=\"true\" />\n }\n } @else {\n <div class=\"kbq-notification-center-error-container\">\n <i kbq-icon-item=\"kbq-bell_16\" [big]=\"true\" [color]=\"'error'\" [fade]=\"true\"></i>\n {{ localeData.failedToLoadNotifications }}\n <button kbq-button [kbqStyle]=\"'transparent'\" [color]=\"'theme'\" (click)=\"service.onReload.emit()\">\n {{ localeData.repeat }}\n </button>\n </div>\n }\n</div>\n\n<kbq-dropdown #notificationSwitcherDropdown=\"kbqDropdown\">\n <button kbq-dropdown-item (click)=\"service.setSilentMode(false)\">\n <i kbq-icon=\"{{ !service.silentMode.value ? 'kbq-circle-xs_16' : '' }}\" [style.min-width.px]=\"16\"></i>\n {{ localeData.showPopUpNotifications }}\n </button>\n <button kbq-dropdown-item (click)=\"service.setSilentMode(true)\">\n <i kbq-icon=\"{{ service.silentMode.value ? 'kbq-circle-xs_16' : '' }}\" [style.min-width.px]=\"16\"></i>\n {{ localeData.doNotDisturb }}\n </button>\n</kbq-dropdown>\n", styles: [".kbq-notification-center{position:relative;display:flex;flex-direction:column;width:400px;height:100vh;box-sizing:border-box;z-index:1}.kbq-notification-center:not(.kbq-notification-center_popover){border-right:1px solid;border-left:1px solid}.kbq-notification-center.kbq-notification-center_popover{margin-top:var(--kbq-size-xxs);margin-bottom:var(--kbq-size-xxs);border-radius:var(--kbq-size-xs);height:calc(100vh - 48px);box-shadow:var(--kbq-shadow-popup)}.kbq-notification-center-header{display:flex;flex-direction:row;justify-content:space-between;padding:var(--kbq-size-xl) var(--kbq-size-xl) var(--kbq-size-xxs) var(--kbq-size-xxl)}.kbq-notification-center-title{display:flex;flex-direction:row;align-items:center;gap:var(--kbq-size-xxs)}.kbq-notification-center-toolbar{display:flex;flex-direction:row;align-items:center}.kbq-notification-center-toolbar .kbq-divider.kbq-divider_vertical{height:var(--kbq-size-m)}.kbq-notification-center-sub-header{position:sticky;top:0;z-index:100;display:flex;flex-direction:row;padding:var(--kbq-size-s) var(--kbq-size-xxl)}.kbq-notification-center-sub-header .kbq-notification-center-sub-header__button{position:absolute;top:0;right:var(--kbq-size-xl);display:none}.kbq-notification-center-sub-header:hover .kbq-notification-center-sub-header__button{display:flex}.kbq-notification-center-sub-header:first-child.kbq-notification-center_top-overflow{box-shadow:var(--kbq-shadow-overflow-normal-bottom)}.kbq-notification-center-container{height:100%;border-radius:inherit;padding-bottom:var(--kbq-size-m)}.kbq-notification-center-container .kbq-loader-overlay_parent{border-radius:inherit}.kbq-notification-center-container.kbq-notification-center_bottom-overflow{box-shadow:var(--kbq-shadow-overflow-normal-bottom)}.kbq-notification-center-empty-container,.kbq-notification-center-error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}.kbq-notification-center-empty-container .kbq-icon,.kbq-notification-center-error-container .kbq-icon{margin-bottom:var(--kbq-size-xl)}.kbq-notification-center-empty-container .kbq-button,.kbq-notification-center-error-container .kbq-button{margin-top:var(--kbq-size-s)}.kbq-notification-center,.kbq-notification-center-sub-header{background:var(--kbq-background-card)}.kbq-notification-center:not(.kbq-notification-center_popover),.kbq-notification-center-sub-header:not(.kbq-notification-center_popover){border-right-color:var(--kbq-line-contrast-less);border-left-color:var(--kbq-line-contrast-less)}.kbq-notification-center-error-container{color:var(--kbq-foreground-error)}.kbq-notification-center{font-size:var(--kbq-typography-text-normal-medium-font-size);font-style:var(--kbq-typography-text-normal-medium-font-style);font-weight:var(--kbq-typography-text-normal-medium-font-weight);line-height:var(--kbq-typography-text-normal-medium-line-height);font-family:var(--kbq-typography-text-normal-medium-font-family);text-transform:var(--kbq-typography-text-normal-medium-text-transform);font-feature-settings:var(--kbq-typography-text-normal-medium-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-medium-letter-spacing)}.kbq-notification-center-title__text{font-size:var(--kbq-typography-text-big-strong-font-size);font-style:var(--kbq-typography-text-big-strong-font-style);font-weight:var(--kbq-typography-text-big-strong-font-weight);line-height:var(--kbq-typography-text-big-strong-line-height);font-family:var(--kbq-typography-text-big-strong-font-family);text-transform:var(--kbq-typography-text-big-strong-text-transform);font-feature-settings:var(--kbq-typography-text-big-strong-font-feature-settings);letter-spacing:var(--kbq-typography-text-big-strong-letter-spacing)}\n"], dependencies: [{ kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i1.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "component", type: i1.KbqIconItem, selector: "[kbq-icon-item]", inputs: ["kbq-icon-item", "fade", "big"] }, { kind: "ngmodule", type: KbqBadgeModule }, { kind: "ngmodule", type: KbqScrollbarModule }, { kind: "component", type: i2.KbqScrollbar, selector: "kbq-scrollbar, [kbq-scrollbar]", inputs: ["initializationTarget", "options", "events", "defer"], outputs: ["onInitialize", "onUpdate", "onDestroy", "onScroll"], exportAs: ["kbqScrollbar"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i3$1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i3$1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "directive", type: i3$1.KbqButtonDropdownTrigger, selector: "[kbq-button][kbqDropdownTriggerFor]" }, { kind: "ngmodule", type: KbqDividerModule }, { kind: "component", type: i4.KbqDivider, selector: "kbq-divider", inputs: ["vertical", "inset", "paddings"] }, { kind: "ngmodule", type: KbqDropdownModule }, { kind: "component", type: i5.KbqDropdown, selector: "kbq-dropdown", inputs: ["navigationWithWrap", "xPosition", "yPosition", "overlapTriggerY", "overlapTriggerX", "hasBackdrop", "class", "backdropClass"], outputs: ["closed"], exportAs: ["kbqDropdown"] }, { kind: "component", type: i5.KbqDropdownItem, selector: "kbq-dropdown-item, [kbq-dropdown-item]", inputs: ["disabled"], exportAs: ["kbqDropdownItem"] }, { kind: "directive", type: i5.KbqDropdownTrigger, selector: "[kbqDropdownTriggerFor]", inputs: ["offsetX", "offsetY", "kbqDropdownTriggerData", "openByArrowDown", "kbqDropdownTriggerRestoreFocus", "kbqDropdownTriggerFor"], outputs: ["dropdownOpened", "dropdownClosed"], exportAs: ["kbqDropdownTrigger"] }, { kind: "ngmodule", type: KbqToolTipModule }, { kind: "directive", type: i6.KbqTooltipTrigger, selector: "[kbqTooltip]", inputs: ["hideWithTimeout", "kbqVisible", "kbqPlacement", "kbqRelativeToPointer", "kbqPlacementPriority", "kbqTooltip", "kbqTooltipDisabled", "kbqEnterDelay", "kbqLeaveDelay", "kbqTrigger", "kbqTooltipClass", "kbqTooltipContext", "kbqTooltipColor", "kbqTooltipArrow", "kbqTooltipOffset"], outputs: ["kbqPlacementChange", "kbqVisibleChange"], exportAs: ["kbqTooltip"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: KbqNotificationItemComponent, selector: "kbq-notification-item", inputs: ["data"] }, { kind: "ngmodule", type: KbqLoaderOverlayModule }, { kind: "component", type: i7.KbqLoaderOverlay, selector: "kbq-loader-overlay", inputs: ["text", "caption", "size", "transparent"] }], animations: [KbqNotificationCenterAnimations.state], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
314
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.19", ngImport: i0, type: KbqNotificationCenterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
315
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.19", type: KbqNotificationCenterComponent, isStandalone: true, selector: "kbq-notification-center", host: { listeners: { "keydown.escape": "escapeHandler()" }, properties: { "class.kbq-notification-center_popover": "popoverMode" }, classAttribute: "kbq-notification-center" }, viewQueries: [{ propertyName: "scrollContainer", first: true, predicate: KbqScrollbar, descendants: true }, { propertyName: "switcher", first: true, predicate: ["notificationSwitcher"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"kbq-notification-center-header\">\n <div class=\"kbq-notification-center-title\">\n <div class=\"kbq-notification-center-title__text\">{{ localeData.notifications }}</div>\n <button\n #notificationSwitcher\n #dropdownTrigger=\"kbqDropdownTrigger\"\n kbq-button\n class=\"kbq-notification-center-title__button\"\n [kbqDropdownTriggerFor]=\"notificationSwitcherDropdown\"\n [kbqTooltip]=\"service.silentMode.value ? localeData.doNotDisturb : localeData.showPopUpNotifications\"\n [kbqTooltipArrow]=\"false\"\n [kbqTooltipOffset]=\"4\"\n [kbqTooltipDisabled]=\"dropdownTrigger.opened\"\n [kbqStyle]=\"'transparent'\"\n [color]=\"'contrast'\"\n >\n <i kbq-icon=\"{{ service.silentMode.value ? 'kbq-bell-slash_16' : 'kbq-bell_16' }}\"></i>\n </button>\n </div>\n <div class=\"kbq-notification-center-toolbar\">\n @if (!service.isEmpty) {\n <button\n kbq-button\n class=\"kbq-notification-center-toolbar__button\"\n [kbqStyle]=\"'transparent'\"\n [color]=\"'contrast'\"\n (click)=\"service.removeAll()\"\n >\n <i kbq-icon=\"kbq-trash_16\"></i>\n </button>\n\n <kbq-divider [vertical]=\"true\" />\n }\n\n <button\n kbq-button\n class=\"kbq-notification-center-toolbar__button\"\n [kbqStyle]=\"'transparent'\"\n [color]=\"'contrast'\"\n (click)=\"hide(0)\"\n >\n <i kbq-icon=\"kbq-xmark_16\"></i>\n </button>\n </div>\n</div>\n\n<div\n kbq-scrollbar\n class=\"kbq-notification-center-container\"\n [class.kbq-notification-center_bottom-overflow]=\"isBottomOverflow\"\n (onScroll)=\"checkOverflow()\"\n>\n @if (!service.errorMode.value) {\n @if (!service.loadingMode.value) {\n @for (group of service.groupedItems | async; track group) {\n <div\n class=\"kbq-notification-center-sub-header\"\n [class.kbq-notification-center_top-overflow]=\"isTopOverflow\"\n >\n <div class=\"kbq-notification-center-sub-header__date\">{{ group.title }}</div>\n\n <button\n kbq-button\n class=\"kbq-notification-center-sub-header__button\"\n [kbqStyle]=\"'transparent'\"\n [color]=\"'contrast'\"\n [kbqTooltip]=\"localeData.remove\"\n [kbqTooltipArrow]=\"false\"\n (click)=\"service.removeGroup(group)\"\n >\n <i kbq-icon=\"kbq-trash_16\"></i>\n </button>\n </div>\n\n @for (item of group.items; track item) {\n <kbq-notification-item [data]=\"item\" />\n }\n } @empty {\n <div class=\"kbq-notification-center-empty-container\">\n <i kbq-icon-item=\"kbq-bell_16\" [big]=\"true\" [color]=\"'contrast-fade'\"></i>\n {{ localeData.noNotifications }}\n </div>\n }\n } @else {\n <kbq-loader-overlay [transparent]=\"true\" />\n }\n } @else {\n <div class=\"kbq-notification-center-error-container\">\n <i kbq-icon-item=\"kbq-bell_16\" [big]=\"true\" [color]=\"'error'\" [fade]=\"true\"></i>\n {{ localeData.failedToLoadNotifications }}\n <button kbq-button [kbqStyle]=\"'transparent'\" [color]=\"'theme'\" (click)=\"service.onReload.emit()\">\n {{ localeData.repeat }}\n </button>\n </div>\n }\n</div>\n\n<kbq-dropdown #notificationSwitcherDropdown=\"kbqDropdown\">\n <button kbq-dropdown-item (click)=\"service.setSilentMode(false)\">\n <i kbq-icon=\"{{ !service.silentMode.value ? 'kbq-circle-xs_16' : '' }}\" [style.min-width.px]=\"16\"></i>\n {{ localeData.showPopUpNotifications }}\n </button>\n <button kbq-dropdown-item (click)=\"service.setSilentMode(true)\">\n <i kbq-icon=\"{{ service.silentMode.value ? 'kbq-circle-xs_16' : '' }}\" [style.min-width.px]=\"16\"></i>\n {{ localeData.doNotDisturb }}\n </button>\n</kbq-dropdown>\n", styles: [".kbq-notification-center{position:relative;display:flex;flex-direction:column;width:400px;height:100vh;box-sizing:border-box;z-index:1}.kbq-notification-center:not(.kbq-notification-center_popover){border-right:1px solid;border-left:1px solid}.kbq-notification-center.kbq-notification-center_popover{margin-top:var(--kbq-size-xxs);margin-bottom:var(--kbq-size-xxs);border-radius:var(--kbq-size-xs);height:calc(100vh - 48px);box-shadow:var(--kbq-shadow-popup)}.kbq-notification-center-header{display:flex;flex-direction:row;justify-content:space-between;padding:var(--kbq-size-xl) var(--kbq-size-xl) var(--kbq-size-xxs) var(--kbq-size-xxl)}.kbq-notification-center-title{display:flex;flex-direction:row;align-items:center;gap:var(--kbq-size-xxs)}.kbq-notification-center-toolbar{display:flex;flex-direction:row;align-items:center}.kbq-notification-center-toolbar .kbq-divider.kbq-divider_vertical{height:var(--kbq-size-m)}.kbq-notification-center-sub-header{position:sticky;top:0;z-index:100;display:flex;flex-direction:row;padding:var(--kbq-size-s) var(--kbq-size-xxl)}.kbq-notification-center-sub-header .kbq-notification-center-sub-header__button{position:absolute;top:0;right:var(--kbq-size-xl);display:none}.kbq-notification-center-sub-header:hover .kbq-notification-center-sub-header__button{display:flex}.kbq-notification-center-sub-header:first-child.kbq-notification-center_top-overflow{box-shadow:var(--kbq-shadow-overflow-normal-bottom)}.kbq-notification-center-container{height:100%;border-radius:inherit;padding-bottom:var(--kbq-size-m)}.kbq-notification-center-container .kbq-loader-overlay_parent{border-radius:inherit}.kbq-notification-center-container.kbq-notification-center_bottom-overflow{box-shadow:var(--kbq-shadow-overflow-normal-bottom)}.kbq-notification-center-empty-container,.kbq-notification-center-error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}.kbq-notification-center-empty-container .kbq-icon,.kbq-notification-center-error-container .kbq-icon{margin-bottom:var(--kbq-size-xl)}.kbq-notification-center-empty-container .kbq-button,.kbq-notification-center-error-container .kbq-button{margin-top:var(--kbq-size-s)}.kbq-notification-center,.kbq-notification-center-sub-header{background:var(--kbq-background-card)}.kbq-notification-center:not(.kbq-notification-center_popover),.kbq-notification-center-sub-header:not(.kbq-notification-center_popover){border-right-color:var(--kbq-line-contrast-less);border-left-color:var(--kbq-line-contrast-less)}.kbq-notification-center-error-container{color:var(--kbq-foreground-error)}.kbq-notification-center{font-size:var(--kbq-typography-text-normal-medium-font-size);font-style:var(--kbq-typography-text-normal-medium-font-style);font-weight:var(--kbq-typography-text-normal-medium-font-weight);line-height:var(--kbq-typography-text-normal-medium-line-height);font-family:var(--kbq-typography-text-normal-medium-font-family);text-transform:var(--kbq-typography-text-normal-medium-text-transform);font-feature-settings:var(--kbq-typography-text-normal-medium-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-medium-letter-spacing)}.kbq-notification-center-title__text{font-size:var(--kbq-typography-text-big-strong-font-size);font-style:var(--kbq-typography-text-big-strong-font-style);font-weight:var(--kbq-typography-text-big-strong-font-weight);line-height:var(--kbq-typography-text-big-strong-line-height);font-family:var(--kbq-typography-text-big-strong-font-family);text-transform:var(--kbq-typography-text-big-strong-text-transform);font-feature-settings:var(--kbq-typography-text-big-strong-font-feature-settings);letter-spacing:var(--kbq-typography-text-big-strong-letter-spacing)}\n"], dependencies: [{ kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i1.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "component", type: i1.KbqIconItem, selector: "[kbq-icon-item]", inputs: ["kbq-icon-item", "fade", "big"] }, { kind: "ngmodule", type: KbqBadgeModule }, { kind: "ngmodule", type: KbqScrollbarModule }, { kind: "component", type: i2.KbqScrollbar, selector: "kbq-scrollbar, [kbq-scrollbar]", inputs: ["initializationTarget", "options", "events", "defer"], outputs: ["onInitialize", "onUpdate", "onDestroy", "onScroll"], exportAs: ["kbqScrollbar"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i3$1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i3$1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "directive", type: i3$1.KbqButtonDropdownTrigger, selector: "[kbq-button][kbqDropdownTriggerFor]" }, { kind: "ngmodule", type: KbqDividerModule }, { kind: "component", type: i4.KbqDivider, selector: "kbq-divider", inputs: ["vertical", "inset", "paddings"] }, { kind: "ngmodule", type: KbqDropdownModule }, { kind: "component", type: i5.KbqDropdown, selector: "kbq-dropdown", inputs: ["navigationWithWrap", "xPosition", "yPosition", "overlapTriggerY", "overlapTriggerX", "hasBackdrop", "class", "backdropClass"], outputs: ["closed"], exportAs: ["kbqDropdown"] }, { kind: "component", type: i5.KbqDropdownItem, selector: "kbq-dropdown-item, [kbq-dropdown-item]", inputs: ["disabled"], exportAs: ["kbqDropdownItem"] }, { kind: "directive", type: i5.KbqDropdownTrigger, selector: "[kbqDropdownTriggerFor]", inputs: ["offsetX", "offsetY", "kbqDropdownTriggerData", "openByArrowDown", "kbqDropdownTriggerRestoreFocus", "kbqDropdownTriggerFor"], outputs: ["dropdownOpened", "dropdownClosed"], exportAs: ["kbqDropdownTrigger"] }, { kind: "ngmodule", type: KbqToolTipModule }, { kind: "directive", type: i6.KbqTooltipTrigger, selector: "[kbqTooltip]", inputs: ["hideWithTimeout", "kbqVisible", "kbqPlacement", "kbqRelativeToPointer", "kbqPlacementPriority", "kbqTooltip", "kbqTooltipDisabled", "kbqEnterDelay", "kbqLeaveDelay", "kbqTrigger", "kbqTooltipClass", "kbqTooltipContext", "kbqTooltipColor", "kbqTooltipArrow", "kbqTooltipOffset"], outputs: ["kbqPlacementChange", "kbqVisibleChange"], exportAs: ["kbqTooltip"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: KbqNotificationItemComponent, selector: "kbq-notification-item", inputs: ["data"] }, { kind: "ngmodule", type: KbqLoaderOverlayModule }, { kind: "component", type: i7.KbqLoaderOverlay, selector: "kbq-loader-overlay", inputs: ["text", "caption", "size", "transparent"] }], animations: [KbqNotificationCenterAnimations.state], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
316
316
  }
317
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqNotificationCenterComponent, decorators: [{
317
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.19", ngImport: i0, type: KbqNotificationCenterComponent, decorators: [{
318
318
  type: Component,
319
319
  args: [{ selector: 'kbq-notification-center', imports: [
320
320
  KbqIconModule,
@@ -477,10 +477,10 @@ class KbqNotificationCenterTrigger extends KbqPopUpTrigger {
477
477
  closingActions() {
478
478
  return merge(this.overlayRef.outsidePointerEvents(), this.overlayRef.backdropClick(), this.scrollDispatcher.scrolled());
479
479
  }
480
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqNotificationCenterTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
481
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.2.18", type: KbqNotificationCenterTrigger, isStandalone: true, selector: "[kbqNotificationCenterTrigger]", inputs: { placement: ["kbqNotificationCenterPlacement", "placement"], backdropClass: "backdropClass", panelClass: ["kbqNotificationCenterPanelClass", "panelClass"], offset: ["offset", "offset", numberAttribute], popoverMode: ["popoverMode", "popoverMode", booleanAttribute], popoverHeight: "popoverHeight", disabled: ["disabled", "disabled", booleanAttribute], stickToWindow: "stickToWindow", container: "container" }, outputs: { placementChange: "kbqPlacementChange", visibleChange: "kbqVisibleChange" }, host: { properties: { "class.kbq-notification-center_open": "isOpen", "class.kbq-active": "hasClickTrigger && isOpen" } }, exportAs: ["kbqNotificationCenterTrigger"], usesInheritance: true, ngImport: i0 }); }
480
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.19", ngImport: i0, type: KbqNotificationCenterTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
481
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.2.19", type: KbqNotificationCenterTrigger, isStandalone: true, selector: "[kbqNotificationCenterTrigger]", inputs: { placement: ["kbqNotificationCenterPlacement", "placement"], backdropClass: "backdropClass", panelClass: ["kbqNotificationCenterPanelClass", "panelClass"], offset: ["offset", "offset", numberAttribute], popoverMode: ["popoverMode", "popoverMode", booleanAttribute], popoverHeight: "popoverHeight", disabled: ["disabled", "disabled", booleanAttribute], stickToWindow: "stickToWindow", container: "container" }, outputs: { placementChange: "kbqPlacementChange", visibleChange: "kbqVisibleChange" }, host: { properties: { "class.kbq-notification-center_open": "isOpen", "class.kbq-active": "hasClickTrigger && isOpen" } }, exportAs: ["kbqNotificationCenterTrigger"], usesInheritance: true, ngImport: i0 }); }
482
482
  }
483
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqNotificationCenterTrigger, decorators: [{
483
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.19", ngImport: i0, type: KbqNotificationCenterTrigger, decorators: [{
484
484
  type: Directive,
485
485
  args: [{
486
486
  selector: '[kbqNotificationCenterTrigger]',
@@ -522,18 +522,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
522
522
  }] } });
523
523
 
524
524
  class KbqNotificationCenterModule {
525
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqNotificationCenterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
526
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: KbqNotificationCenterModule, imports: [KbqNotificationCenterComponent,
525
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.19", ngImport: i0, type: KbqNotificationCenterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
526
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.19", ngImport: i0, type: KbqNotificationCenterModule, imports: [KbqNotificationCenterComponent,
527
527
  KbqNotificationCenterTrigger], exports: [KbqNotificationCenterComponent,
528
528
  KbqNotificationCenterTrigger] }); }
529
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqNotificationCenterModule, providers: [
529
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.19", ngImport: i0, type: KbqNotificationCenterModule, providers: [
530
530
  KBQ_NOTIFICATION_CENTER_SCROLL_STRATEGY_FACTORY_PROVIDER,
531
531
  { provide: FocusTrapFactory, useClass: ConfigurableFocusTrapFactory },
532
532
  { provide: FOCUS_TRAP_INERT_STRATEGY, useClass: EmptyFocusTrapStrategy },
533
533
  { provide: KbqNotificationCenterService, deps: [DateAdapter, DateFormatter] }
534
534
  ], imports: [KbqNotificationCenterComponent] }); }
535
535
  }
536
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: KbqNotificationCenterModule, decorators: [{
536
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.19", ngImport: i0, type: KbqNotificationCenterModule, decorators: [{
537
537
  type: NgModule,
538
538
  args: [{
539
539
  imports: [