@koobiq/components 18.8.0 → 18.9.1

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 (243) hide show
  1. package/accordion/accordion-tokens.scss +1 -13
  2. package/alert/alert-tokens.scss +1 -36
  3. package/autocomplete/autocomplete-tokens.scss +1 -8
  4. package/autocomplete/autocomplete-trigger.directive.d.ts +5 -3
  5. package/autocomplete/autocomplete.scss +21 -1
  6. package/badge/_badge-theme.scss +1 -1
  7. package/badge/badge-tokens.scss +1 -71
  8. package/button/button-tokens.scss +1 -140
  9. package/button-toggle/button-toggle-tokens.scss +1 -32
  10. package/checkbox/checkbox-tokens.scss +1 -50
  11. package/code-block/actionbar.component.d.ts +2 -2
  12. package/code-block/code-block-content.d.ts +28 -0
  13. package/code-block/code-block-tokens.scss +1 -139
  14. package/code-block/code-block.component.d.ts +6 -3
  15. package/code-block/code-block.module.d.ts +3 -3
  16. package/code-block/code-block.types.d.ts +10 -2
  17. package/core/common-behaviors/common-module.d.ts +2 -2
  18. package/core/forms/forms-tokens.scss +2 -9
  19. package/core/option/_option-theme.scss +10 -0
  20. package/core/option/option-tokens.scss +4 -0
  21. package/core/selection/pseudo-checkbox/pseudo-checkbox-tokens.scss +1 -50
  22. package/core/services/measure-scrollbar.service.d.ts +2 -2
  23. package/core/services/theme.service.d.ts +4 -3
  24. package/core/styles/_koobiq-theme.scss +3 -2
  25. package/core/styles/common/_list.scss +6 -8
  26. package/core/styles/common/_select.scss +3 -2
  27. package/core/styles/theming/scrollbar-tokens.scss +1 -16
  28. package/datepicker/datepicker-tokens.scss +1 -21
  29. package/datepicker/datepicker.component.d.ts +3 -3
  30. package/divider/divider-tokens.scss +1 -7
  31. package/dl/dl-tokens.scss +1 -8
  32. package/dl/dl.scss +1 -1
  33. package/dropdown/_dropdown-theme.scss +10 -0
  34. package/dropdown/dropdown-content.directive.d.ts +2 -2
  35. package/dropdown/dropdown-tokens.scss +5 -8
  36. package/dropdown/dropdown-trigger.directive.d.ts +1 -0
  37. package/dropdown/dropdown.scss +22 -3
  38. package/empty-state/empty-state-tokens.scss +1 -8
  39. package/esm2022/accordion/accordion-trigger.component.mjs +2 -2
  40. package/esm2022/accordion/accordion.component.mjs +2 -2
  41. package/esm2022/alert/alert.component.mjs +2 -2
  42. package/esm2022/autocomplete/autocomplete-trigger.directive.mjs +13 -17
  43. package/esm2022/autocomplete/autocomplete.component.mjs +2 -2
  44. package/esm2022/badge/badge.component.mjs +2 -2
  45. package/esm2022/button/button.component.mjs +2 -2
  46. package/esm2022/button-toggle/button-toggle.component.mjs +2 -2
  47. package/esm2022/checkbox/checkbox.mjs +2 -2
  48. package/esm2022/code-block/actionbar.component.mjs +1 -1
  49. package/esm2022/code-block/code-block-content.mjs +393 -0
  50. package/esm2022/code-block/code-block.component.mjs +16 -10
  51. package/esm2022/code-block/code-block.module.mjs +7 -27
  52. package/esm2022/code-block/code-block.types.mjs +1 -1
  53. package/esm2022/core/common-behaviors/common-module.mjs +14 -12
  54. package/esm2022/core/option/option.mjs +3 -3
  55. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +2 -2
  56. package/esm2022/core/services/measure-scrollbar.service.mjs +7 -12
  57. package/esm2022/core/services/theme.service.mjs +10 -8
  58. package/esm2022/core/version.mjs +2 -2
  59. package/esm2022/datepicker/calendar-header.component.mjs +1 -1
  60. package/esm2022/datepicker/datepicker.component.mjs +8 -13
  61. package/esm2022/divider/divider.component.mjs +2 -2
  62. package/esm2022/dl/dl.component.mjs +2 -2
  63. package/esm2022/dropdown/dropdown-content.directive.mjs +6 -9
  64. package/esm2022/dropdown/dropdown-item.component.mjs +2 -2
  65. package/esm2022/dropdown/dropdown-trigger.directive.mjs +8 -5
  66. package/esm2022/dropdown/dropdown.component.mjs +3 -3
  67. package/esm2022/empty-state/empty-state.component.mjs +2 -2
  68. package/esm2022/file-upload/multiple-file-upload.component.mjs +3 -3
  69. package/esm2022/file-upload/single-file-upload.component.mjs +3 -3
  70. package/esm2022/form-field/cleaner.mjs +3 -3
  71. package/esm2022/form-field/form-field.mjs +4 -4
  72. package/esm2022/form-field/hint.mjs +2 -2
  73. package/esm2022/form-field/password-hint.mjs +5 -5
  74. package/esm2022/form-field/password-toggle.mjs +3 -3
  75. package/esm2022/form-field/stepper.mjs +5 -1
  76. package/esm2022/icon/icon-button.component.mjs +4 -4
  77. package/esm2022/icon/icon-item.component.mjs +4 -4
  78. package/esm2022/icon/icon.component.mjs +5 -5
  79. package/esm2022/list/list-selection.component.mjs +2 -2
  80. package/esm2022/list/list.component.mjs +2 -2
  81. package/esm2022/loader-overlay/loader-overlay.component.mjs +2 -2
  82. package/esm2022/markdown/markdown.component.mjs +2 -2
  83. package/esm2022/modal/modal.component.mjs +10 -13
  84. package/esm2022/navbar/navbar-item.component.mjs +31 -32
  85. package/esm2022/navbar/navbar.component.mjs +2 -2
  86. package/esm2022/navbar/vertical-navbar.component.mjs +2 -2
  87. package/esm2022/popover/popover-confirm.component.mjs +3 -3
  88. package/esm2022/popover/popover.component.mjs +3 -3
  89. package/esm2022/progress-bar/progress-bar.component.mjs +2 -2
  90. package/esm2022/progress-spinner/progress-spinner.component.mjs +2 -2
  91. package/esm2022/radio/radio.component.mjs +2 -2
  92. package/esm2022/risk-level/risk-level.component.mjs +2 -2
  93. package/esm2022/scrollbar/scrollbar.component.mjs +3 -3
  94. package/esm2022/select/select.component.mjs +52 -18
  95. package/esm2022/sidebar/sidebar.component.mjs +8 -7
  96. package/esm2022/sidepanel/sidepanel-container.component.mjs +3 -3
  97. package/esm2022/tabs/tab-group.component.mjs +2 -2
  98. package/esm2022/tabs/tab-nav-bar.mjs +3 -3
  99. package/esm2022/tags/tag-input.mjs +2 -3
  100. package/esm2022/tags/tag-list.component.mjs +2 -2
  101. package/esm2022/textarea/textarea.component.mjs +8 -5
  102. package/esm2022/timezone/timezone-option.component.mjs +2 -2
  103. package/esm2022/timezone/timezone-select.component.mjs +3 -3
  104. package/esm2022/toast/toast.component.mjs +3 -3
  105. package/esm2022/toggle/toggle.component.mjs +3 -3
  106. package/esm2022/tooltip/tooltip.component.mjs +3 -3
  107. package/esm2022/tree/toggle.mjs +6 -5
  108. package/esm2022/tree/tree-option.component.mjs +2 -2
  109. package/esm2022/tree/tree-selection.component.mjs +2 -2
  110. package/esm2022/tree/tree.mjs +2 -2
  111. package/esm2022/tree-select/tree-select.component.mjs +46 -11
  112. package/fesm2022/koobiq-components-accordion.mjs +4 -4
  113. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  114. package/fesm2022/koobiq-components-alert.mjs +2 -2
  115. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  116. package/fesm2022/koobiq-components-autocomplete.mjs +14 -18
  117. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  118. package/fesm2022/koobiq-components-badge.mjs +2 -2
  119. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  120. package/fesm2022/koobiq-components-button-toggle.mjs +2 -2
  121. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  122. package/fesm2022/koobiq-components-button.mjs +2 -2
  123. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  124. package/fesm2022/koobiq-components-checkbox.mjs +2 -2
  125. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  126. package/fesm2022/koobiq-components-code-block.mjs +408 -34
  127. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  128. package/fesm2022/koobiq-components-core.mjs +30 -33
  129. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  130. package/fesm2022/koobiq-components-datepicker.mjs +7 -12
  131. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  132. package/fesm2022/koobiq-components-divider.mjs +2 -2
  133. package/fesm2022/koobiq-components-divider.mjs.map +1 -1
  134. package/fesm2022/koobiq-components-dl.mjs +2 -2
  135. package/fesm2022/koobiq-components-dl.mjs.map +1 -1
  136. package/fesm2022/koobiq-components-dropdown.mjs +14 -14
  137. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  138. package/fesm2022/koobiq-components-empty-state.mjs +2 -2
  139. package/fesm2022/koobiq-components-empty-state.mjs.map +1 -1
  140. package/fesm2022/koobiq-components-file-upload.mjs +4 -4
  141. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  142. package/fesm2022/koobiq-components-form-field.mjs +17 -13
  143. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  144. package/fesm2022/koobiq-components-icon.mjs +10 -10
  145. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  146. package/fesm2022/koobiq-components-list.mjs +4 -4
  147. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  148. package/fesm2022/koobiq-components-loader-overlay.mjs +2 -2
  149. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  150. package/fesm2022/koobiq-components-markdown.mjs +2 -2
  151. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  152. package/fesm2022/koobiq-components-modal.mjs +9 -12
  153. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  154. package/fesm2022/koobiq-components-navbar.mjs +34 -36
  155. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  156. package/fesm2022/koobiq-components-popover.mjs +4 -4
  157. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  158. package/fesm2022/koobiq-components-progress-bar.mjs +2 -2
  159. package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
  160. package/fesm2022/koobiq-components-progress-spinner.mjs +2 -2
  161. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  162. package/fesm2022/koobiq-components-radio.mjs +2 -2
  163. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  164. package/fesm2022/koobiq-components-risk-level.mjs +2 -2
  165. package/fesm2022/koobiq-components-risk-level.mjs.map +1 -1
  166. package/fesm2022/koobiq-components-scrollbar.mjs +2 -2
  167. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  168. package/fesm2022/koobiq-components-select.mjs +52 -18
  169. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  170. package/fesm2022/koobiq-components-sidebar.mjs +6 -6
  171. package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
  172. package/fesm2022/koobiq-components-sidepanel.mjs +2 -2
  173. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  174. package/fesm2022/koobiq-components-tabs.mjs +4 -4
  175. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  176. package/fesm2022/koobiq-components-tags.mjs +3 -4
  177. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  178. package/fesm2022/koobiq-components-textarea.mjs +7 -4
  179. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  180. package/fesm2022/koobiq-components-timezone.mjs +4 -4
  181. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  182. package/fesm2022/koobiq-components-toast.mjs +2 -2
  183. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  184. package/fesm2022/koobiq-components-toggle.mjs +2 -2
  185. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  186. package/fesm2022/koobiq-components-tooltip.mjs +2 -2
  187. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  188. package/fesm2022/koobiq-components-tree-select.mjs +46 -11
  189. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  190. package/fesm2022/koobiq-components-tree.mjs +11 -10
  191. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  192. package/file-upload/_file-upload-theme.scss +2 -2
  193. package/file-upload/file-upload-tokens.scss +1 -52
  194. package/form-field/_form-field-theme.scss +7 -0
  195. package/form-field/form-field-tokens.scss +3 -29
  196. package/form-field/form-field.scss +5 -6
  197. package/form-field/hint-tokens.scss +1 -22
  198. package/icon/_icon-item-theme.scss +3 -0
  199. package/icon/_icon-theme.scss +3 -1
  200. package/icon/icon-button-tokens.scss +1 -30
  201. package/icon/icon-item-tokens.scss +1 -26
  202. package/icon/icon-tokens.scss +2 -10
  203. package/link/_link-theme.scss +27 -5
  204. package/link/link-tokens.scss +1 -21
  205. package/list/_list-theme.scss +10 -0
  206. package/list/list-tokens.scss +17 -42
  207. package/loader-overlay/loader-overlay-tokens.scss +1 -12
  208. package/markdown/markdown-tokens.scss +1 -34
  209. package/modal/modal-tokens.scss +1 -12
  210. package/modal/modal.component.d.ts +2 -2
  211. package/navbar/navbar-item.component.d.ts +7 -7
  212. package/navbar/navbar-tokens.scss +1 -28
  213. package/package.json +6 -8
  214. package/popover/popover-tokens.scss +1 -12
  215. package/popover/popover.scss +4 -0
  216. package/prebuilt-themes/dark-theme.css +1 -1
  217. package/prebuilt-themes/light-theme.css +1 -1
  218. package/prebuilt-themes/theme.css +1 -1
  219. package/progress-bar/progress-bar-tokens.scss +1 -10
  220. package/progress-spinner/progress-spinner-tokens.scss +1 -9
  221. package/radio/radio-tokens.scss +11 -70
  222. package/risk-level/risk-level-tokens.scss +1 -32
  223. package/schematics/ng-add/index.js +3 -6
  224. package/scrollbar/scrollbar-tokens.scss +1 -16
  225. package/select/select-tokens.scss +1 -8
  226. package/select/select.component.d.ts +41 -4
  227. package/select/select.scss +20 -0
  228. package/sidebar/sidebar.component.d.ts +1 -0
  229. package/sidepanel/sidepanel-tokens.scss +1 -11
  230. package/tabs/tabs-tokens.scss +1 -92
  231. package/tags/tag-tokens.scss +1 -74
  232. package/textarea/textarea.component.d.ts +1 -0
  233. package/timezone/timezone-option-tokens.scss +5 -11
  234. package/toast/toast-tokens.scss +1 -22
  235. package/toggle/toggle-tokens.scss +1 -52
  236. package/tooltip/tooltip-tokens.scss +1 -21
  237. package/tree/_tree-theme.scss +2 -1
  238. package/tree/tree-option.scss +11 -0
  239. package/tree/tree-tokens.scss +1 -37
  240. package/tree-select/_tree-select-theme.scss +5 -1
  241. package/tree-select/tree-select-tokens.scss +2 -6
  242. package/tree-select/tree-select.component.d.ts +46 -5
  243. package/select/README.md +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-sidebar.mjs","sources":["../../../packages/components/sidebar/sidebar-animations.ts","../../../packages/components/sidebar/sidebar.component.ts","../../../packages/components/sidebar/sidebar.component.html","../../../packages/components/sidebar/sidebar.module.ts","../../../packages/components/sidebar/koobiq-components-sidebar.ts"],"sourcesContent":["import { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\n\nexport enum KbqSidebarAnimationState {\n Opened = 'opened',\n Closed = 'closed'\n}\n\nexport const kbqSidebarAnimations: { readonly sidebarState: AnimationTriggerMetadata } = {\n sidebarState: trigger('state', [\n state(\n 'opened',\n style({\n minWidth: '{{ openedStateMinWidth }}',\n width: '{{ openedStateWidth }}',\n maxWidth: '{{ openedStateMaxWidth }}'\n }),\n { params: { openedStateMinWidth: '', openedStateWidth: '', openedStateMaxWidth: '' } }\n ),\n state(\n 'closed',\n style({\n minWidth: '{{ closedStateWidth }}',\n width: '{{ closedStateWidth }}',\n maxWidth: '{{ closedStateWidth }}'\n }),\n { params: { closedStateWidth: '' } }\n ),\n transition('opened => closed', [animate('0.1s')]),\n transition('closed => opened', [animate('0.2s')])\n\n ])\n};\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n ViewEncapsulation\n} from '@angular/core';\nimport { isControl, isInput, isLeftBracket, isRightBracket } from '@koobiq/cdk/keycodes';\nimport { KbqSidebarAnimationState, kbqSidebarAnimations } from './sidebar-animations';\n\nexport enum SidebarPositions {\n Left = 'left',\n Right = 'right'\n}\n\ninterface KbqSidebarParams {\n openedStateMinWidth: string;\n openedStateWidth: string;\n openedStateMaxWidth: string;\n\n closedStateWidth: string;\n}\n\n@Directive({\n selector: '[kbq-sidebar-opened]',\n exportAs: 'kbqSidebarOpened'\n})\nexport class KbqSidebarOpened {\n @Input() minWidth: string;\n @Input() width: string;\n @Input() maxWidth: string;\n}\n\n@Directive({\n selector: '[kbq-sidebar-closed]',\n exportAs: 'kbqSidebarClosed'\n})\nexport class KbqSidebarClosed {\n @Input() width: string;\n}\n\n@Component({\n selector: 'kbq-sidebar',\n exportAs: 'kbqSidebar',\n templateUrl: 'sidebar.component.html',\n styleUrls: ['./sidebar.scss'],\n host: {\n class: 'kbq-sidebar',\n '[@state]': `{\n value: animationState,\n params: params\n }`,\n '(@state.start)': 'onAnimationStart()',\n '(@state.done)': 'onAnimationDone()'\n },\n animations: [kbqSidebarAnimations.sidebarState],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqSidebar implements OnDestroy, OnInit, AfterContentInit {\n @Input()\n get opened(): boolean {\n return this._opened;\n }\n\n set opened(value: boolean) {\n if (this._opened) {\n this.saveWidth();\n }\n\n this._opened = value;\n }\n private _opened: boolean = true;\n\n @Input() position: SidebarPositions;\n\n params: KbqSidebarParams = {\n openedStateWidth: 'inherit',\n openedStateMinWidth: 'inherit',\n openedStateMaxWidth: 'inherit',\n\n closedStateWidth: '32px'\n };\n\n @Output() readonly stateChanged: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n @ContentChild(KbqSidebarOpened, { static: false }) openedContent: KbqSidebarOpened;\n\n @ContentChild(KbqSidebarClosed, { static: false }) closedContent: KbqSidebarClosed;\n\n get animationState(): KbqSidebarAnimationState {\n return this._opened ? KbqSidebarAnimationState.Opened : KbqSidebarAnimationState.Closed;\n }\n\n internalState: boolean = true;\n\n private documentKeydownListener: (event: KeyboardEvent) => void;\n\n constructor(\n private ngZone: NgZone,\n private elementRef: ElementRef\n ) {}\n\n ngOnInit(): void {\n if (this.position === SidebarPositions.Left || this.position === SidebarPositions.Right) {\n this.registerKeydownListener();\n }\n }\n\n ngOnDestroy(): void {\n if (this.position === SidebarPositions.Left || this.position === SidebarPositions.Right) {\n this.unRegisterKeydownListener();\n }\n }\n\n toggle(): void {\n this.opened = !this.opened;\n }\n\n onAnimationStart() {\n if (this._opened) {\n this.internalState = this._opened;\n }\n }\n\n onAnimationDone() {\n this.internalState = this._opened;\n\n this.stateChanged.emit(this._opened);\n }\n\n ngAfterContentInit(): void {\n this.params = {\n openedStateWidth: this.openedContent.width || 'inherit',\n openedStateMinWidth: this.openedContent.minWidth || 'inherit',\n openedStateMaxWidth: this.openedContent.maxWidth || 'inherit',\n\n closedStateWidth: this.closedContent.width || '32px'\n };\n }\n\n private registerKeydownListener(): void {\n this.documentKeydownListener = (event) => {\n if (isControl(event) || isInput(event)) {\n return;\n }\n\n if (\n (this.position === SidebarPositions.Left && isLeftBracket(event)) ||\n (this.position === SidebarPositions.Right && isRightBracket(event))\n ) {\n this.ngZone.run(() => (this._opened = !this._opened));\n }\n };\n\n this.ngZone.runOutsideAngular(() => {\n document.addEventListener('keypress', this.documentKeydownListener, true);\n });\n }\n\n private unRegisterKeydownListener(): void {\n document.removeEventListener('keypress', this.documentKeydownListener, true);\n }\n\n private saveWidth() {\n this.params.openedStateWidth = `${this.elementRef.nativeElement.offsetWidth}px`;\n }\n}\n","@if (internalState) {\n <ng-content select=\"[kbq-sidebar-opened]\" />\n} @else {\n <ng-content select=\"[kbq-sidebar-closed]\" />\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { KbqSidebar, KbqSidebarClosed, KbqSidebarOpened } from './sidebar.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n KbqSidebarClosed,\n KbqSidebarOpened,\n KbqSidebar\n ],\n exports: [\n KbqSidebarClosed,\n KbqSidebarOpened,\n KbqSidebar\n ]\n})\nexport class KbqSidebarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"koobiq-components-sidebar.mjs","sources":["../../../packages/components/sidebar/sidebar-animations.ts","../../../packages/components/sidebar/sidebar.component.ts","../../../packages/components/sidebar/sidebar.component.html","../../../packages/components/sidebar/sidebar.module.ts","../../../packages/components/sidebar/koobiq-components-sidebar.ts"],"sourcesContent":["import { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\n\nexport enum KbqSidebarAnimationState {\n Opened = 'opened',\n Closed = 'closed'\n}\n\nexport const kbqSidebarAnimations: { readonly sidebarState: AnimationTriggerMetadata } = {\n sidebarState: trigger('state', [\n state(\n 'opened',\n style({\n minWidth: '{{ openedStateMinWidth }}',\n width: '{{ openedStateWidth }}',\n maxWidth: '{{ openedStateMaxWidth }}'\n }),\n { params: { openedStateMinWidth: '', openedStateWidth: '', openedStateMaxWidth: '' } }\n ),\n state(\n 'closed',\n style({\n minWidth: '{{ closedStateWidth }}',\n width: '{{ closedStateWidth }}',\n maxWidth: '{{ closedStateWidth }}'\n }),\n { params: { closedStateWidth: '' } }\n ),\n transition('opened => closed', [animate('0.1s')]),\n transition('closed => opened', [animate('0.2s')])\n\n ])\n};\n","import { DOCUMENT } from '@angular/common';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Directive,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n ViewEncapsulation\n} from '@angular/core';\nimport { isControl, isInput, isLeftBracket, isRightBracket } from '@koobiq/cdk/keycodes';\nimport { kbqSidebarAnimations, KbqSidebarAnimationState } from './sidebar-animations';\n\nexport enum SidebarPositions {\n Left = 'left',\n Right = 'right'\n}\n\ninterface KbqSidebarParams {\n openedStateMinWidth: string;\n openedStateWidth: string;\n openedStateMaxWidth: string;\n\n closedStateWidth: string;\n}\n\n@Directive({\n selector: '[kbq-sidebar-opened]',\n exportAs: 'kbqSidebarOpened'\n})\nexport class KbqSidebarOpened {\n @Input() minWidth: string;\n @Input() width: string;\n @Input() maxWidth: string;\n}\n\n@Directive({\n selector: '[kbq-sidebar-closed]',\n exportAs: 'kbqSidebarClosed'\n})\nexport class KbqSidebarClosed {\n @Input() width: string;\n}\n\n@Component({\n selector: 'kbq-sidebar',\n exportAs: 'kbqSidebar',\n templateUrl: 'sidebar.component.html',\n styleUrls: ['./sidebar.scss'],\n host: {\n class: 'kbq-sidebar',\n '[@state]': `{\n value: animationState,\n params: params\n }`,\n '(@state.start)': 'onAnimationStart()',\n '(@state.done)': 'onAnimationDone()'\n },\n animations: [kbqSidebarAnimations.sidebarState],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqSidebar implements OnDestroy, OnInit, AfterContentInit {\n protected readonly document = inject<Document>(DOCUMENT);\n\n @Input()\n get opened(): boolean {\n return this._opened;\n }\n\n set opened(value: boolean) {\n if (this._opened) {\n this.saveWidth();\n }\n\n this._opened = value;\n }\n private _opened: boolean = true;\n\n @Input() position: SidebarPositions;\n\n params: KbqSidebarParams = {\n openedStateWidth: 'inherit',\n openedStateMinWidth: 'inherit',\n openedStateMaxWidth: 'inherit',\n\n closedStateWidth: '32px'\n };\n\n @Output() readonly stateChanged: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n @ContentChild(KbqSidebarOpened, { static: false }) openedContent: KbqSidebarOpened;\n\n @ContentChild(KbqSidebarClosed, { static: false }) closedContent: KbqSidebarClosed;\n\n get animationState(): KbqSidebarAnimationState {\n return this._opened ? KbqSidebarAnimationState.Opened : KbqSidebarAnimationState.Closed;\n }\n\n internalState: boolean = true;\n\n private documentKeydownListener: (event: KeyboardEvent) => void;\n\n constructor(\n private ngZone: NgZone,\n private elementRef: ElementRef\n ) {}\n\n ngOnInit(): void {\n if (this.position === SidebarPositions.Left || this.position === SidebarPositions.Right) {\n this.registerKeydownListener();\n }\n }\n\n ngOnDestroy(): void {\n if (this.position === SidebarPositions.Left || this.position === SidebarPositions.Right) {\n this.unRegisterKeydownListener();\n }\n }\n\n toggle(): void {\n this.opened = !this.opened;\n }\n\n onAnimationStart() {\n if (this._opened) {\n this.internalState = this._opened;\n }\n }\n\n onAnimationDone() {\n this.internalState = this._opened;\n\n this.stateChanged.emit(this._opened);\n }\n\n ngAfterContentInit(): void {\n this.params = {\n openedStateWidth: this.openedContent.width || 'inherit',\n openedStateMinWidth: this.openedContent.minWidth || 'inherit',\n openedStateMaxWidth: this.openedContent.maxWidth || 'inherit',\n\n closedStateWidth: this.closedContent.width || '32px'\n };\n }\n\n private registerKeydownListener(): void {\n this.documentKeydownListener = (event) => {\n if (isControl(event) || isInput(event)) return;\n\n if (\n (this.position === SidebarPositions.Left && isLeftBracket(event)) ||\n (this.position === SidebarPositions.Right && isRightBracket(event))\n ) {\n this.ngZone.run(() => (this._opened = !this._opened));\n }\n };\n\n this.ngZone.runOutsideAngular(() => {\n this.document.addEventListener('keypress', this.documentKeydownListener, true);\n });\n }\n\n private unRegisterKeydownListener(): void {\n this.document.removeEventListener('keypress', this.documentKeydownListener, true);\n }\n\n private saveWidth() {\n this.params.openedStateWidth = `${this.elementRef.nativeElement.offsetWidth}px`;\n }\n}\n","@if (internalState) {\n <ng-content select=\"[kbq-sidebar-opened]\" />\n} @else {\n <ng-content select=\"[kbq-sidebar-closed]\" />\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { KbqSidebar, KbqSidebarClosed, KbqSidebarOpened } from './sidebar.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n KbqSidebarClosed,\n KbqSidebarOpened,\n KbqSidebar\n ],\n exports: [\n KbqSidebarClosed,\n KbqSidebarOpened,\n KbqSidebar\n ]\n})\nexport class KbqSidebarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -148,7 +148,7 @@ class KbqSidepanelContainerComponent extends BasePortalOutlet {
148
148
  }
149
149
  }
150
150
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqSidepanelContainerComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: KbqSidepanelConfig }, { token: KBQ_SIDEPANEL_WITH_INDENT }, { token: KBQ_SIDEPANEL_WITH_SHADOW }], target: i0.ɵɵFactoryTarget.Component }); }
151
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: KbqSidepanelContainerComponent, selector: "kbq-sidepanel-container", host: { listeners: { "@state.start": "onAnimation($event)", "@state.done": "onAnimation($event)" }, properties: { "class": "size", "class.kbq-sidepanel_nested": "withIndent", "class.kbq-sidepanel-container_shadowed": "withShadow", "attr.id": "id", "attr.tabindex": "-1", "@state": "{\n value: animationState,\n params: animationTransform\n }" }, classAttribute: "kbq-sidepanel-container" }, viewQueries: [{ propertyName: "portalOutlet", first: true, predicate: CdkPortalOutlet, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"kbq-sidepanel-wrapper\">\n @if (withIndent) {\n <div class=\"kbq-sidepanel-indent\" (click)=\"exit()\"></div>\n }\n\n <div cdkTrapFocus cdkTrapFocusAutoCapture class=\"kbq-sidepanel-content\">\n <ng-template cdkPortalOutlet />\n </div>\n</div>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-no-select{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-sidepanel-container_top,.kbq-sidepanel-container_bottom{flex-direction:column;height:33%;min-height:400px;width:100%;left:0}.kbq-sidepanel-container_top .kbq-sidepanel-indent,.kbq-sidepanel-container_bottom .kbq-sidepanel-indent{height:16px;width:100%}.kbq-sidepanel-container{outline:none;display:flex;flex:1;position:fixed;min-height:0}.kbq-sidepanel-container .flex{min-height:0}.kbq-sidepanel-container.kbq-sidepanel-container_left,.kbq-sidepanel-container.kbq-sidepanel-container_right{height:100%;top:0;max-width:100%}.kbq-sidepanel-container.kbq-sidepanel-container_left.kbq-sidepanel_small,.kbq-sidepanel-container.kbq-sidepanel-container_right.kbq-sidepanel_small{width:var(--kbq-sidepanel-size-small-width);max-width:var(--kbq-sidepanel-size-small-width)}.kbq-sidepanel-container.kbq-sidepanel-container_left.kbq-sidepanel_medium,.kbq-sidepanel-container.kbq-sidepanel-container_right.kbq-sidepanel_medium{width:var(--kbq-sidepanel-size-medium-width);max-width:var(--kbq-sidepanel-size-medium-width)}.kbq-sidepanel-container.kbq-sidepanel-container_left.kbq-sidepanel_large,.kbq-sidepanel-container.kbq-sidepanel-container_right.kbq-sidepanel_large{width:var(--kbq-sidepanel-size-large-width)}.kbq-sidepanel-container.kbq-sidepanel-container_left .kbq-sidepanel-indent,.kbq-sidepanel-container.kbq-sidepanel-container_right .kbq-sidepanel-indent{width:16px;height:100%}.kbq-sidepanel-container_right{right:0;transform:translate(100%)}.kbq-sidepanel-container_right .kbq-sidepanel-wrapper{flex-direction:row}.kbq-sidepanel-container_left{left:0;transform:translate(-100%)}.kbq-sidepanel-container_left .kbq-sidepanel-wrapper{flex-direction:row-reverse}.kbq-sidepanel-container_top{top:0;transform:translateY(-100%)}.kbq-sidepanel-container_top .kbq-sidepanel-wrapper{flex-direction:column-reverse}.kbq-sidepanel-container_bottom{bottom:0;transform:translateY(100%)}.kbq-sidepanel-container_bottom .kbq-sidepanel-wrapper{flex-direction:column}.kbq-sidepanel-wrapper{display:flex;flex:1;min-height:0;width:100%}.kbq-sidepanel-indent{display:flex;flex:0 0 auto}.kbq-sidepanel-content{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0;width:100%}.kbq-sidepanel-header{display:flex;align-items:center;justify-content:space-between;flex-flow:row nowrap;flex:0 0 auto;padding:var(--kbq-sidepanel-size-header-padding-vertical) var(--kbq-sidepanel-size-header-padding-right) var(--kbq-sidepanel-size-header-padding-vertical) var(--kbq-sidepanel-size-header-padding-left)}.kbq-sidepanel-header .kbq-sidepanel-close{margin-left:var(--kbq-sidepanel-size-close-button-margin-left)}.kbq-sidepanel-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-sidepanel-body{overflow-y:auto;display:flex;flex:1;flex-direction:column;min-height:0;padding-right:var(--kbq-sidepanel-size-content-padding-horizontal);padding-left:var(--kbq-sidepanel-size-content-padding-horizontal);padding-bottom:var(--kbq-sidepanel-size-content-padding-bottom)}.kbq-sidepanel-footer{display:flex;align-items:center;justify-content:space-between;flex-flow:row nowrap;flex:0 0 auto;padding:var(--kbq-sidepanel-size-footer-padding-top) var(--kbq-sidepanel-size-footer-padding-horizontal) var(--kbq-sidepanel-size-footer-padding-bottom)}.kbq-sidepanel-footer .kbq-sidepanel-actions{display:flex;align-items:center;flex-direction:row;flex:1;gap:var(--kbq-sidepanel-size-footer-content-gap-horizontal)}.kbq-sidepanel-footer .kbq-sidepanel-actions[align=left]{justify-content:start}.kbq-sidepanel-footer .kbq-sidepanel-actions[align=right]{justify-content:flex-end}.kbq-sidepanel-title{color:var(--kbq-sidepanel-header-text-color)}.kbq-sidepanel-content{background-color:var(--kbq-sidepanel-container-background);color:var(--kbq-sidepanel-content-text-color)}.kbq-sidepanel-container_shadowed .kbq-sidepanel-content{box-shadow:var(--kbq-sidepanel-container-shadow)}.kbq-sidepanel-title{font-size:var(--kbq-typography-title-font-size);font-weight:var(--kbq-typography-title-font-weight);line-height:var(--kbq-typography-title-line-height);font-family:var(--kbq-typography-title-font-family);text-transform:var(--kbq-typography-title-text-transform);font-feature-settings:var(--kbq-typography-title-font-feature-settings);letter-spacing:var(--kbq-typography-title-letter-spacing)}.kbq-sidepanel-container,.kbq-sidepanel-footer{font-size:var(--kbq-typography-text-normal-font-size);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n", ".kbq-sidepanel-container{--kbq-sidepanel-size-small-width: 400px;--kbq-sidepanel-size-medium-width: 640px;--kbq-sidepanel-size-large-width: 960px;--kbq-sidepanel-size-header-padding-vertical: var(--kbq-size-l);--kbq-sidepanel-size-header-padding-left: var(--kbq-size-3xl);--kbq-sidepanel-size-header-padding-right: var(--kbq-size-m);--kbq-sidepanel-size-close-button-margin-left: var(--kbq-size-s);--kbq-sidepanel-size-content-padding-horizontal: var(--kbq-size-3xl);--kbq-sidepanel-size-content-padding-bottom: var(--kbq-size-xxl);--kbq-sidepanel-size-footer-padding-top: var(--kbq-size-s);--kbq-sidepanel-size-footer-padding-bottom: var(--kbq-size-3xl);--kbq-sidepanel-size-footer-padding-horizontal: var(--kbq-size-3xl);--kbq-sidepanel-size-footer-content-gap-horizontal: var(--kbq-size-l)}:where(.kbq-light,.theme-light,.kbq-theme-light){--kbq-sidepanel-overlay-background: var(--kbq-background-overlay);--kbq-sidepanel-container-background: var(--kbq-background-card);--kbq-sidepanel-container-shadow: var(--kbq-shadow-overlay);--kbq-sidepanel-header-text-color: var(--kbq-foreground-contrast);--kbq-sidepanel-content-text-color: var(--kbq-foreground-contrast)}:where(.kbq-dark,.theme-dark,.kbq-theme-dark){--kbq-sidepanel-overlay-background: var(--kbq-background-overlay);--kbq-sidepanel-container-background: var(--kbq-background-card);--kbq-sidepanel-container-shadow: var(--kbq-shadow-overlay);--kbq-sidepanel-header-text-color: var(--kbq-foreground-contrast);--kbq-sidepanel-content-text-color: var(--kbq-foreground-contrast)}\n"], dependencies: [{ kind: "directive", type: i2.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "directive", type: i3.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], animations: [kbqSidepanelAnimations.sidepanelState], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
151
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: KbqSidepanelContainerComponent, selector: "kbq-sidepanel-container", host: { listeners: { "@state.start": "onAnimation($event)", "@state.done": "onAnimation($event)" }, properties: { "class": "size", "class.kbq-sidepanel_nested": "withIndent", "class.kbq-sidepanel-container_shadowed": "withShadow", "attr.id": "id", "attr.tabindex": "-1", "@state": "{\n value: animationState,\n params: animationTransform\n }" }, classAttribute: "kbq-sidepanel-container" }, viewQueries: [{ propertyName: "portalOutlet", first: true, predicate: CdkPortalOutlet, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"kbq-sidepanel-wrapper\">\n @if (withIndent) {\n <div class=\"kbq-sidepanel-indent\" (click)=\"exit()\"></div>\n }\n\n <div cdkTrapFocus cdkTrapFocusAutoCapture class=\"kbq-sidepanel-content\">\n <ng-template cdkPortalOutlet />\n </div>\n</div>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-no-select{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-sidepanel-container_top,.kbq-sidepanel-container_bottom{flex-direction:column;height:33%;min-height:400px;width:100%;left:0}.kbq-sidepanel-container_top .kbq-sidepanel-indent,.kbq-sidepanel-container_bottom .kbq-sidepanel-indent{height:16px;width:100%}.kbq-sidepanel-container{outline:none;display:flex;flex:1;position:fixed;min-height:0}.kbq-sidepanel-container .flex{min-height:0}.kbq-sidepanel-container.kbq-sidepanel-container_left,.kbq-sidepanel-container.kbq-sidepanel-container_right{height:100%;top:0;max-width:100%}.kbq-sidepanel-container.kbq-sidepanel-container_left.kbq-sidepanel_small,.kbq-sidepanel-container.kbq-sidepanel-container_right.kbq-sidepanel_small{width:var(--kbq-sidepanel-size-small-width);max-width:var(--kbq-sidepanel-size-small-width)}.kbq-sidepanel-container.kbq-sidepanel-container_left.kbq-sidepanel_medium,.kbq-sidepanel-container.kbq-sidepanel-container_right.kbq-sidepanel_medium{width:var(--kbq-sidepanel-size-medium-width);max-width:var(--kbq-sidepanel-size-medium-width)}.kbq-sidepanel-container.kbq-sidepanel-container_left.kbq-sidepanel_large,.kbq-sidepanel-container.kbq-sidepanel-container_right.kbq-sidepanel_large{width:var(--kbq-sidepanel-size-large-width)}.kbq-sidepanel-container.kbq-sidepanel-container_left .kbq-sidepanel-indent,.kbq-sidepanel-container.kbq-sidepanel-container_right .kbq-sidepanel-indent{width:16px;height:100%}.kbq-sidepanel-container_right{right:0;transform:translate(100%)}.kbq-sidepanel-container_right .kbq-sidepanel-wrapper{flex-direction:row}.kbq-sidepanel-container_left{left:0;transform:translate(-100%)}.kbq-sidepanel-container_left .kbq-sidepanel-wrapper{flex-direction:row-reverse}.kbq-sidepanel-container_top{top:0;transform:translateY(-100%)}.kbq-sidepanel-container_top .kbq-sidepanel-wrapper{flex-direction:column-reverse}.kbq-sidepanel-container_bottom{bottom:0;transform:translateY(100%)}.kbq-sidepanel-container_bottom .kbq-sidepanel-wrapper{flex-direction:column}.kbq-sidepanel-wrapper{display:flex;flex:1;min-height:0;width:100%}.kbq-sidepanel-indent{display:flex;flex:0 0 auto}.kbq-sidepanel-content{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0;width:100%}.kbq-sidepanel-header{display:flex;align-items:center;justify-content:space-between;flex-flow:row nowrap;flex:0 0 auto;padding:var(--kbq-sidepanel-size-header-padding-vertical) var(--kbq-sidepanel-size-header-padding-right) var(--kbq-sidepanel-size-header-padding-vertical) var(--kbq-sidepanel-size-header-padding-left)}.kbq-sidepanel-header .kbq-sidepanel-close{margin-left:var(--kbq-sidepanel-size-close-button-margin-left)}.kbq-sidepanel-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-sidepanel-body{overflow-y:auto;display:flex;flex:1;flex-direction:column;min-height:0;padding-right:var(--kbq-sidepanel-size-content-padding-horizontal);padding-left:var(--kbq-sidepanel-size-content-padding-horizontal);padding-bottom:var(--kbq-sidepanel-size-content-padding-bottom)}.kbq-sidepanel-footer{display:flex;align-items:center;justify-content:space-between;flex-flow:row nowrap;flex:0 0 auto;padding:var(--kbq-sidepanel-size-footer-padding-top) var(--kbq-sidepanel-size-footer-padding-horizontal) var(--kbq-sidepanel-size-footer-padding-bottom)}.kbq-sidepanel-footer .kbq-sidepanel-actions{display:flex;align-items:center;flex-direction:row;flex:1;gap:var(--kbq-sidepanel-size-footer-content-gap-horizontal)}.kbq-sidepanel-footer .kbq-sidepanel-actions[align=left]{justify-content:start}.kbq-sidepanel-footer .kbq-sidepanel-actions[align=right]{justify-content:flex-end}.kbq-sidepanel-title{color:var(--kbq-sidepanel-header-text-color)}.kbq-sidepanel-content{background-color:var(--kbq-sidepanel-container-background);color:var(--kbq-sidepanel-content-text-color)}.kbq-sidepanel-container_shadowed .kbq-sidepanel-content{box-shadow:var(--kbq-sidepanel-container-shadow)}.kbq-sidepanel-title{font-size:var(--kbq-typography-title-font-size);font-weight:var(--kbq-typography-title-font-weight);line-height:var(--kbq-typography-title-line-height);font-family:var(--kbq-typography-title-font-family);text-transform:var(--kbq-typography-title-text-transform);font-feature-settings:var(--kbq-typography-title-font-feature-settings);letter-spacing:var(--kbq-typography-title-letter-spacing)}.kbq-sidepanel-container,.kbq-sidepanel-footer{font-size:var(--kbq-typography-text-normal-font-size);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n", ".kbq-sidepanel-container{--kbq-sidepanel-size-small-width: 400px;--kbq-sidepanel-size-medium-width: 640px;--kbq-sidepanel-size-large-width: 960px;--kbq-sidepanel-size-header-padding-vertical: var(--kbq-size-l);--kbq-sidepanel-size-header-padding-left: var(--kbq-size-3xl);--kbq-sidepanel-size-header-padding-right: var(--kbq-size-m);--kbq-sidepanel-size-close-button-margin-left: var(--kbq-size-s);--kbq-sidepanel-size-content-padding-horizontal: var(--kbq-size-3xl);--kbq-sidepanel-size-content-padding-bottom: var(--kbq-size-xxl);--kbq-sidepanel-size-footer-padding-top: var(--kbq-size-s);--kbq-sidepanel-size-footer-padding-bottom: var(--kbq-size-3xl);--kbq-sidepanel-size-footer-padding-horizontal: var(--kbq-size-3xl);--kbq-sidepanel-size-footer-content-gap-horizontal: var(--kbq-size-l);--kbq-sidepanel-overlay-background: var(--kbq-background-overlay);--kbq-sidepanel-container-background: var(--kbq-background-card);--kbq-sidepanel-container-shadow: var(--kbq-shadow-overlay);--kbq-sidepanel-header-text-color: var(--kbq-foreground-contrast);--kbq-sidepanel-content-text-color: var(--kbq-foreground-contrast)}\n"], dependencies: [{ kind: "directive", type: i2.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "directive", type: i3.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], animations: [kbqSidepanelAnimations.sidepanelState], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
152
152
  }
153
153
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqSidepanelContainerComponent, decorators: [{
154
154
  type: Component,
@@ -165,7 +165,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
165
165
  }`,
166
166
  '(@state.start)': 'onAnimation($event)',
167
167
  '(@state.done)': 'onAnimation($event)'
168
- }, template: "<div class=\"kbq-sidepanel-wrapper\">\n @if (withIndent) {\n <div class=\"kbq-sidepanel-indent\" (click)=\"exit()\"></div>\n }\n\n <div cdkTrapFocus cdkTrapFocusAutoCapture class=\"kbq-sidepanel-content\">\n <ng-template cdkPortalOutlet />\n </div>\n</div>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-no-select{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-sidepanel-container_top,.kbq-sidepanel-container_bottom{flex-direction:column;height:33%;min-height:400px;width:100%;left:0}.kbq-sidepanel-container_top .kbq-sidepanel-indent,.kbq-sidepanel-container_bottom .kbq-sidepanel-indent{height:16px;width:100%}.kbq-sidepanel-container{outline:none;display:flex;flex:1;position:fixed;min-height:0}.kbq-sidepanel-container .flex{min-height:0}.kbq-sidepanel-container.kbq-sidepanel-container_left,.kbq-sidepanel-container.kbq-sidepanel-container_right{height:100%;top:0;max-width:100%}.kbq-sidepanel-container.kbq-sidepanel-container_left.kbq-sidepanel_small,.kbq-sidepanel-container.kbq-sidepanel-container_right.kbq-sidepanel_small{width:var(--kbq-sidepanel-size-small-width);max-width:var(--kbq-sidepanel-size-small-width)}.kbq-sidepanel-container.kbq-sidepanel-container_left.kbq-sidepanel_medium,.kbq-sidepanel-container.kbq-sidepanel-container_right.kbq-sidepanel_medium{width:var(--kbq-sidepanel-size-medium-width);max-width:var(--kbq-sidepanel-size-medium-width)}.kbq-sidepanel-container.kbq-sidepanel-container_left.kbq-sidepanel_large,.kbq-sidepanel-container.kbq-sidepanel-container_right.kbq-sidepanel_large{width:var(--kbq-sidepanel-size-large-width)}.kbq-sidepanel-container.kbq-sidepanel-container_left .kbq-sidepanel-indent,.kbq-sidepanel-container.kbq-sidepanel-container_right .kbq-sidepanel-indent{width:16px;height:100%}.kbq-sidepanel-container_right{right:0;transform:translate(100%)}.kbq-sidepanel-container_right .kbq-sidepanel-wrapper{flex-direction:row}.kbq-sidepanel-container_left{left:0;transform:translate(-100%)}.kbq-sidepanel-container_left .kbq-sidepanel-wrapper{flex-direction:row-reverse}.kbq-sidepanel-container_top{top:0;transform:translateY(-100%)}.kbq-sidepanel-container_top .kbq-sidepanel-wrapper{flex-direction:column-reverse}.kbq-sidepanel-container_bottom{bottom:0;transform:translateY(100%)}.kbq-sidepanel-container_bottom .kbq-sidepanel-wrapper{flex-direction:column}.kbq-sidepanel-wrapper{display:flex;flex:1;min-height:0;width:100%}.kbq-sidepanel-indent{display:flex;flex:0 0 auto}.kbq-sidepanel-content{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0;width:100%}.kbq-sidepanel-header{display:flex;align-items:center;justify-content:space-between;flex-flow:row nowrap;flex:0 0 auto;padding:var(--kbq-sidepanel-size-header-padding-vertical) var(--kbq-sidepanel-size-header-padding-right) var(--kbq-sidepanel-size-header-padding-vertical) var(--kbq-sidepanel-size-header-padding-left)}.kbq-sidepanel-header .kbq-sidepanel-close{margin-left:var(--kbq-sidepanel-size-close-button-margin-left)}.kbq-sidepanel-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-sidepanel-body{overflow-y:auto;display:flex;flex:1;flex-direction:column;min-height:0;padding-right:var(--kbq-sidepanel-size-content-padding-horizontal);padding-left:var(--kbq-sidepanel-size-content-padding-horizontal);padding-bottom:var(--kbq-sidepanel-size-content-padding-bottom)}.kbq-sidepanel-footer{display:flex;align-items:center;justify-content:space-between;flex-flow:row nowrap;flex:0 0 auto;padding:var(--kbq-sidepanel-size-footer-padding-top) var(--kbq-sidepanel-size-footer-padding-horizontal) var(--kbq-sidepanel-size-footer-padding-bottom)}.kbq-sidepanel-footer .kbq-sidepanel-actions{display:flex;align-items:center;flex-direction:row;flex:1;gap:var(--kbq-sidepanel-size-footer-content-gap-horizontal)}.kbq-sidepanel-footer .kbq-sidepanel-actions[align=left]{justify-content:start}.kbq-sidepanel-footer .kbq-sidepanel-actions[align=right]{justify-content:flex-end}.kbq-sidepanel-title{color:var(--kbq-sidepanel-header-text-color)}.kbq-sidepanel-content{background-color:var(--kbq-sidepanel-container-background);color:var(--kbq-sidepanel-content-text-color)}.kbq-sidepanel-container_shadowed .kbq-sidepanel-content{box-shadow:var(--kbq-sidepanel-container-shadow)}.kbq-sidepanel-title{font-size:var(--kbq-typography-title-font-size);font-weight:var(--kbq-typography-title-font-weight);line-height:var(--kbq-typography-title-line-height);font-family:var(--kbq-typography-title-font-family);text-transform:var(--kbq-typography-title-text-transform);font-feature-settings:var(--kbq-typography-title-font-feature-settings);letter-spacing:var(--kbq-typography-title-letter-spacing)}.kbq-sidepanel-container,.kbq-sidepanel-footer{font-size:var(--kbq-typography-text-normal-font-size);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n", ".kbq-sidepanel-container{--kbq-sidepanel-size-small-width: 400px;--kbq-sidepanel-size-medium-width: 640px;--kbq-sidepanel-size-large-width: 960px;--kbq-sidepanel-size-header-padding-vertical: var(--kbq-size-l);--kbq-sidepanel-size-header-padding-left: var(--kbq-size-3xl);--kbq-sidepanel-size-header-padding-right: var(--kbq-size-m);--kbq-sidepanel-size-close-button-margin-left: var(--kbq-size-s);--kbq-sidepanel-size-content-padding-horizontal: var(--kbq-size-3xl);--kbq-sidepanel-size-content-padding-bottom: var(--kbq-size-xxl);--kbq-sidepanel-size-footer-padding-top: var(--kbq-size-s);--kbq-sidepanel-size-footer-padding-bottom: var(--kbq-size-3xl);--kbq-sidepanel-size-footer-padding-horizontal: var(--kbq-size-3xl);--kbq-sidepanel-size-footer-content-gap-horizontal: var(--kbq-size-l)}:where(.kbq-light,.theme-light,.kbq-theme-light){--kbq-sidepanel-overlay-background: var(--kbq-background-overlay);--kbq-sidepanel-container-background: var(--kbq-background-card);--kbq-sidepanel-container-shadow: var(--kbq-shadow-overlay);--kbq-sidepanel-header-text-color: var(--kbq-foreground-contrast);--kbq-sidepanel-content-text-color: var(--kbq-foreground-contrast)}:where(.kbq-dark,.theme-dark,.kbq-theme-dark){--kbq-sidepanel-overlay-background: var(--kbq-background-overlay);--kbq-sidepanel-container-background: var(--kbq-background-card);--kbq-sidepanel-container-shadow: var(--kbq-shadow-overlay);--kbq-sidepanel-header-text-color: var(--kbq-foreground-contrast);--kbq-sidepanel-content-text-color: var(--kbq-foreground-contrast)}\n"] }]
168
+ }, template: "<div class=\"kbq-sidepanel-wrapper\">\n @if (withIndent) {\n <div class=\"kbq-sidepanel-indent\" (click)=\"exit()\"></div>\n }\n\n <div cdkTrapFocus cdkTrapFocusAutoCapture class=\"kbq-sidepanel-content\">\n <ng-template cdkPortalOutlet />\n </div>\n</div>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-no-select{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-sidepanel-container_top,.kbq-sidepanel-container_bottom{flex-direction:column;height:33%;min-height:400px;width:100%;left:0}.kbq-sidepanel-container_top .kbq-sidepanel-indent,.kbq-sidepanel-container_bottom .kbq-sidepanel-indent{height:16px;width:100%}.kbq-sidepanel-container{outline:none;display:flex;flex:1;position:fixed;min-height:0}.kbq-sidepanel-container .flex{min-height:0}.kbq-sidepanel-container.kbq-sidepanel-container_left,.kbq-sidepanel-container.kbq-sidepanel-container_right{height:100%;top:0;max-width:100%}.kbq-sidepanel-container.kbq-sidepanel-container_left.kbq-sidepanel_small,.kbq-sidepanel-container.kbq-sidepanel-container_right.kbq-sidepanel_small{width:var(--kbq-sidepanel-size-small-width);max-width:var(--kbq-sidepanel-size-small-width)}.kbq-sidepanel-container.kbq-sidepanel-container_left.kbq-sidepanel_medium,.kbq-sidepanel-container.kbq-sidepanel-container_right.kbq-sidepanel_medium{width:var(--kbq-sidepanel-size-medium-width);max-width:var(--kbq-sidepanel-size-medium-width)}.kbq-sidepanel-container.kbq-sidepanel-container_left.kbq-sidepanel_large,.kbq-sidepanel-container.kbq-sidepanel-container_right.kbq-sidepanel_large{width:var(--kbq-sidepanel-size-large-width)}.kbq-sidepanel-container.kbq-sidepanel-container_left .kbq-sidepanel-indent,.kbq-sidepanel-container.kbq-sidepanel-container_right .kbq-sidepanel-indent{width:16px;height:100%}.kbq-sidepanel-container_right{right:0;transform:translate(100%)}.kbq-sidepanel-container_right .kbq-sidepanel-wrapper{flex-direction:row}.kbq-sidepanel-container_left{left:0;transform:translate(-100%)}.kbq-sidepanel-container_left .kbq-sidepanel-wrapper{flex-direction:row-reverse}.kbq-sidepanel-container_top{top:0;transform:translateY(-100%)}.kbq-sidepanel-container_top .kbq-sidepanel-wrapper{flex-direction:column-reverse}.kbq-sidepanel-container_bottom{bottom:0;transform:translateY(100%)}.kbq-sidepanel-container_bottom .kbq-sidepanel-wrapper{flex-direction:column}.kbq-sidepanel-wrapper{display:flex;flex:1;min-height:0;width:100%}.kbq-sidepanel-indent{display:flex;flex:0 0 auto}.kbq-sidepanel-content{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0;width:100%}.kbq-sidepanel-header{display:flex;align-items:center;justify-content:space-between;flex-flow:row nowrap;flex:0 0 auto;padding:var(--kbq-sidepanel-size-header-padding-vertical) var(--kbq-sidepanel-size-header-padding-right) var(--kbq-sidepanel-size-header-padding-vertical) var(--kbq-sidepanel-size-header-padding-left)}.kbq-sidepanel-header .kbq-sidepanel-close{margin-left:var(--kbq-sidepanel-size-close-button-margin-left)}.kbq-sidepanel-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-sidepanel-body{overflow-y:auto;display:flex;flex:1;flex-direction:column;min-height:0;padding-right:var(--kbq-sidepanel-size-content-padding-horizontal);padding-left:var(--kbq-sidepanel-size-content-padding-horizontal);padding-bottom:var(--kbq-sidepanel-size-content-padding-bottom)}.kbq-sidepanel-footer{display:flex;align-items:center;justify-content:space-between;flex-flow:row nowrap;flex:0 0 auto;padding:var(--kbq-sidepanel-size-footer-padding-top) var(--kbq-sidepanel-size-footer-padding-horizontal) var(--kbq-sidepanel-size-footer-padding-bottom)}.kbq-sidepanel-footer .kbq-sidepanel-actions{display:flex;align-items:center;flex-direction:row;flex:1;gap:var(--kbq-sidepanel-size-footer-content-gap-horizontal)}.kbq-sidepanel-footer .kbq-sidepanel-actions[align=left]{justify-content:start}.kbq-sidepanel-footer .kbq-sidepanel-actions[align=right]{justify-content:flex-end}.kbq-sidepanel-title{color:var(--kbq-sidepanel-header-text-color)}.kbq-sidepanel-content{background-color:var(--kbq-sidepanel-container-background);color:var(--kbq-sidepanel-content-text-color)}.kbq-sidepanel-container_shadowed .kbq-sidepanel-content{box-shadow:var(--kbq-sidepanel-container-shadow)}.kbq-sidepanel-title{font-size:var(--kbq-typography-title-font-size);font-weight:var(--kbq-typography-title-font-weight);line-height:var(--kbq-typography-title-line-height);font-family:var(--kbq-typography-title-font-family);text-transform:var(--kbq-typography-title-text-transform);font-feature-settings:var(--kbq-typography-title-font-feature-settings);letter-spacing:var(--kbq-typography-title-letter-spacing)}.kbq-sidepanel-container,.kbq-sidepanel-footer{font-size:var(--kbq-typography-text-normal-font-size);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n", ".kbq-sidepanel-container{--kbq-sidepanel-size-small-width: 400px;--kbq-sidepanel-size-medium-width: 640px;--kbq-sidepanel-size-large-width: 960px;--kbq-sidepanel-size-header-padding-vertical: var(--kbq-size-l);--kbq-sidepanel-size-header-padding-left: var(--kbq-size-3xl);--kbq-sidepanel-size-header-padding-right: var(--kbq-size-m);--kbq-sidepanel-size-close-button-margin-left: var(--kbq-size-s);--kbq-sidepanel-size-content-padding-horizontal: var(--kbq-size-3xl);--kbq-sidepanel-size-content-padding-bottom: var(--kbq-size-xxl);--kbq-sidepanel-size-footer-padding-top: var(--kbq-size-s);--kbq-sidepanel-size-footer-padding-bottom: var(--kbq-size-3xl);--kbq-sidepanel-size-footer-padding-horizontal: var(--kbq-size-3xl);--kbq-sidepanel-size-footer-content-gap-horizontal: var(--kbq-size-l);--kbq-sidepanel-overlay-background: var(--kbq-background-overlay);--kbq-sidepanel-container-background: var(--kbq-background-card);--kbq-sidepanel-container-shadow: var(--kbq-shadow-overlay);--kbq-sidepanel-header-text-color: var(--kbq-foreground-contrast);--kbq-sidepanel-content-text-color: var(--kbq-foreground-contrast)}\n"] }]
169
169
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: KbqSidepanelConfig }, { type: undefined, decorators: [{
170
170
  type: Inject,
171
171
  args: [KBQ_SIDEPANEL_WITH_INDENT]
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-sidepanel.mjs","sources":["../../../packages/components/sidepanel/sidepanel-config.ts","../../../packages/components/sidepanel/sidepanel-animations.ts","../../../packages/components/sidepanel/sidepanel-container.component.ts","../../../packages/components/sidepanel/sidepanel-container.component.html","../../../packages/components/sidepanel/sidepanel-ref.ts","../../../packages/components/sidepanel/sidepanel.service.ts","../../../packages/components/sidepanel/sidepanel-directives.ts","../../../packages/components/sidepanel/sidepanel.module.ts","../../../packages/components/sidepanel/koobiq-components-sidepanel.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\n/** Injection token that can be used to access the data that was passed in to a sidepanel. */\nexport const KBQ_SIDEPANEL_DATA = new InjectionToken<any>('KbqSidepanelData');\n\nexport enum KbqSidepanelPosition {\n Right = 'right',\n Left = 'left',\n Top = 'top',\n Bottom = 'bottom'\n}\n\nexport enum KbqSidepanelSize {\n Small = 'small',\n Medium = 'medium',\n Large = 'large'\n}\n\nexport class KbqSidepanelConfig<D = any> {\n /** ID for the sidepanel. If omitted, a unique one will be generated. */\n id?: string;\n\n /** Data being injected into the child component. */\n data?: D | null = null;\n\n position?: KbqSidepanelPosition = KbqSidepanelPosition.Right;\n\n size?: KbqSidepanelSize = KbqSidepanelSize.Medium;\n\n /** Whether the sidepanel has a backdrop. */\n hasBackdrop?: boolean = true;\n\n backdropClass?: string;\n\n /** When we open multiple sidepanels, backdrop appears only once, except cases then this flag is true. */\n requiredBackdrop?: boolean = false;\n\n /** Whether the user can use escape or clicking outside to close the sidepanel. */\n disableClose?: boolean = false;\n\n /** Custom class for the overlay pane. */\n overlayPanelClass?: string | string[] = '';\n}\n","import { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\nimport { AnimationCurves } from '@koobiq/components/core';\nimport { KbqSidepanelPosition } from './sidepanel-config';\n\nexport enum KbqSidepanelAnimationState {\n Void = 'void',\n Visible = 'visible',\n Hidden = 'hidden'\n}\n\n// TODO Find a way to use dynamic keys and avoid error \"Expression form not supported.\"\nexport const kbqSidepanelTransformAnimation: Record<KbqSidepanelPosition, { in: string; out: string }> = {\n right: { in: 'translateX(100%)', out: 'translateX(0%)' },\n left: { in: 'translateX(-100%)', out: 'translateX(0%)' },\n top: { in: 'translateY(-100%)', out: 'translateY(0%)' },\n bottom: { in: 'translateY(100%)', out: 'translateY(0%)' }\n};\n\nexport const kbqSidepanelAnimations: { readonly sidepanelState: AnimationTriggerMetadata } = {\n sidepanelState: trigger('state', [\n state('hidden', style({ transform: '{{transformIn}}' }), {\n params: { transformIn: kbqSidepanelTransformAnimation[KbqSidepanelPosition.Right].in }\n }),\n state('visible', style({ transform: '{{transformOut}}' }), {\n params: { transformOut: kbqSidepanelTransformAnimation[KbqSidepanelPosition.Right].out }\n }),\n transition('visible => void, visible => hidden', animate(`200ms ${AnimationCurves.AccelerationCurve}`)),\n transition('void => visible', animate(`200ms ${AnimationCurves.DecelerationCurve}`))\n ])\n};\n","import { AnimationEvent } from '@angular/animations';\nimport { BasePortalOutlet, CdkPortalOutlet, ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n Inject,\n InjectionToken,\n OnDestroy,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n KbqSidepanelAnimationState,\n kbqSidepanelAnimations,\n kbqSidepanelTransformAnimation\n} from './sidepanel-animations';\nimport { KbqSidepanelConfig, KbqSidepanelPosition } from './sidepanel-config';\n\nexport const KBQ_SIDEPANEL_WITH_INDENT = new InjectionToken<boolean>('kbq-sidepanel-with-indent');\n\nexport const KBQ_SIDEPANEL_WITH_SHADOW = new InjectionToken<boolean>('kbq-sidepanel-with-shadow');\n\n@Component({\n selector: 'kbq-sidepanel-container',\n templateUrl: './sidepanel-container.component.html',\n styleUrls: ['./sidepanel.scss', './sidepanel-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n animations: [kbqSidepanelAnimations.sidepanelState],\n host: {\n class: 'kbq-sidepanel-container',\n '[class]': 'size',\n '[class.kbq-sidepanel_nested]': 'withIndent',\n '[class.kbq-sidepanel-container_shadowed]': 'withShadow',\n '[attr.id]': 'id',\n '[attr.tabindex]': '-1',\n '[@state]': `{\n value: animationState,\n params: animationTransform\n }`,\n '(@state.start)': 'onAnimation($event)',\n '(@state.done)': 'onAnimation($event)'\n }\n})\nexport class KbqSidepanelContainerComponent extends BasePortalOutlet implements OnDestroy {\n /** ID for the container DOM element. */\n id: string;\n\n /** The portal outlet inside of this container into which the content will be loaded. */\n @ViewChild(CdkPortalOutlet, { static: true }) portalOutlet: CdkPortalOutlet;\n\n /** The state of the sidepanel animations. */\n animationState: KbqSidepanelAnimationState = KbqSidepanelAnimationState.Void;\n\n animationTransform: { transformIn: string; transformOut: string };\n\n /** Emits whenever the state of the animation changes. */\n animationStateChanged = new EventEmitter<AnimationEvent>();\n\n get size(): string {\n return `kbq-sidepanel_${this.sidepanelConfig.size}`;\n }\n\n /** Whether the component has been destroyed. */\n private destroyed: boolean;\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private changeDetectorRef: ChangeDetectorRef,\n public sidepanelConfig: KbqSidepanelConfig,\n @Inject(KBQ_SIDEPANEL_WITH_INDENT) public withIndent: boolean,\n @Inject(KBQ_SIDEPANEL_WITH_SHADOW) public withShadow: boolean\n ) {\n super();\n }\n\n ngOnDestroy(): void {\n this.destroyed = true;\n }\n\n /** Attach a component portal as content to this sidepanel container. */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n this.validatePortalAttached();\n this.setAnimation();\n this.setPanelClass();\n\n return this.portalOutlet.attachComponentPortal(portal);\n }\n\n /** Attach a template portal as content to this sidepanel container. */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n this.validatePortalAttached();\n this.setAnimation();\n this.setPanelClass();\n\n return this.portalOutlet.attachTemplatePortal(portal);\n }\n\n /** Begin animation of the sidepanel entrance into view. */\n enter(): void {\n if (this.destroyed) {\n return;\n }\n\n this.animationState = KbqSidepanelAnimationState.Visible;\n this.changeDetectorRef.detectChanges();\n }\n\n /** Begin animation of the sidepanel exiting from view. */\n exit(): void {\n if (this.destroyed) {\n return;\n }\n\n this.animationState = KbqSidepanelAnimationState.Hidden;\n this.changeDetectorRef.markForCheck();\n }\n\n onAnimation(event: AnimationEvent) {\n this.animationStateChanged.emit(event);\n }\n\n private setAnimation() {\n const position: KbqSidepanelPosition = this.sidepanelConfig.position!;\n\n this.animationTransform = {\n transformIn: kbqSidepanelTransformAnimation[position].in,\n transformOut: kbqSidepanelTransformAnimation[position].out\n };\n }\n\n private setPanelClass() {\n const element: HTMLElement = this.elementRef.nativeElement;\n const position: KbqSidepanelPosition = this.sidepanelConfig.position!;\n\n element.classList.add(`kbq-sidepanel-container_${position}`);\n }\n\n private validatePortalAttached() {\n if (this.portalOutlet.hasAttached()) {\n throw Error('Attempting to attach sidepanel content after content is already attached');\n }\n }\n}\n","<div class=\"kbq-sidepanel-wrapper\">\n @if (withIndent) {\n <div class=\"kbq-sidepanel-indent\" (click)=\"exit()\"></div>\n }\n\n <div cdkTrapFocus cdkTrapFocusAutoCapture class=\"kbq-sidepanel-content\">\n <ng-template cdkPortalOutlet />\n </div>\n</div>\n","import { OverlayRef } from '@angular/cdk/overlay';\nimport { ESCAPE } from '@koobiq/cdk/keycodes';\nimport { merge, Observable, Subject } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\nimport { KbqSidepanelAnimationState } from './sidepanel-animations';\nimport { KbqSidepanelConfig } from './sidepanel-config';\nimport { KbqSidepanelContainerComponent } from './sidepanel-container.component';\n\n// Counter for unique sidepanel ids.\nlet uniqueId = 0;\n\nexport class KbqSidepanelRef<T = any, R = any> {\n readonly id: string;\n\n /** Instance of the component making up the content of the sidepanel. */\n instance: T;\n\n /** Subject for notifying the user that the sidepanel has been closed and dismissed. */\n private readonly afterClosed$ = new Subject<R | undefined>();\n\n /** Subject for notifying the user that the sidepanel has opened and appeared. */\n private readonly afterOpened$ = new Subject<void>();\n\n /** Result to be passed down to the `afterDismissed` stream. */\n private result: R | undefined;\n\n constructor(\n public containerInstance: KbqSidepanelContainerComponent,\n private overlayRef: OverlayRef,\n public config: KbqSidepanelConfig\n ) {\n this.id = this.config.id || `kbq-sidepanel-${uniqueId++}`;\n this.containerInstance.id = this.id;\n\n // Emit when opening animation completes\n containerInstance.animationStateChanged\n .pipe(\n filter((event) => event.phaseName === 'done' && event.toState === KbqSidepanelAnimationState.Visible),\n take(1)\n )\n .subscribe(() => {\n this.afterOpened$.next();\n this.afterOpened$.complete();\n });\n\n // Dispose overlay when closing animation is complete\n containerInstance.animationStateChanged\n .pipe(\n filter((event) => event.phaseName === 'done' && event.toState === KbqSidepanelAnimationState.Hidden),\n take(1)\n )\n .subscribe(() => {\n overlayRef.dispose();\n this.afterClosed$.next(this.result);\n this.afterClosed$.complete();\n });\n\n if (!containerInstance.sidepanelConfig.disableClose) {\n merge(\n overlayRef.backdropClick(),\n overlayRef.keydownEvents().pipe(\n // keyCode is deprecated, but IE11 and Edge don't support code property, which we need use instead\n filter((event) => event.keyCode === ESCAPE)\n )\n ).subscribe(() => this.close());\n }\n }\n\n close(result?: R): void {\n if (!this.afterClosed$.closed) {\n // Transition the backdrop in parallel to the sidepanel.\n this.containerInstance.animationStateChanged\n .pipe(\n filter((event) => event.phaseName === 'done'),\n take(1)\n )\n .subscribe(() => this.overlayRef.detachBackdrop());\n\n this.result = result;\n this.containerInstance.exit();\n }\n }\n\n /** Gets an observable that is notified when the sidepanel is finished closing. */\n afterClosed(): Observable<R | undefined> {\n return this.afterClosed$.asObservable();\n }\n\n /** Gets an observable that is notified when the sidepanel has opened and appeared. */\n afterOpened(): Observable<void> {\n return this.afterOpened$.asObservable();\n }\n}\n","import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal, ComponentType, TemplatePortal } from '@angular/cdk/portal';\nimport {\n ComponentRef,\n Inject,\n Injectable,\n InjectionToken,\n Injector,\n OnDestroy,\n Optional,\n SkipSelf,\n TemplateRef\n} from '@angular/core';\nimport { KBQ_SIDEPANEL_DATA, KbqSidepanelConfig } from './sidepanel-config';\nimport {\n KBQ_SIDEPANEL_WITH_INDENT,\n KBQ_SIDEPANEL_WITH_SHADOW,\n KbqSidepanelContainerComponent\n} from './sidepanel-container.component';\nimport { KbqSidepanelRef } from './sidepanel-ref';\n\n/** Injection token that can be used to specify default sidepanel options. */\nexport const KBQ_SIDEPANEL_DEFAULT_OPTIONS = new InjectionToken<KbqSidepanelConfig>('kbq-sidepanel-default-options');\n\n@Injectable()\nexport class KbqSidepanelService implements OnDestroy {\n private openedSidepanelsAtThisLevel: KbqSidepanelRef[] = [];\n\n /** Keeps track of the currently-open sidepanels. */\n get openedSidepanels(): KbqSidepanelRef[] {\n return this.parentSidepanelService\n ? this.parentSidepanelService.openedSidepanels\n : this.openedSidepanelsAtThisLevel;\n }\n\n constructor(\n private overlay: Overlay,\n private injector: Injector,\n @Optional() @Inject(KBQ_SIDEPANEL_DEFAULT_OPTIONS) private defaultOptions: KbqSidepanelConfig,\n @Optional() @SkipSelf() private parentSidepanelService: KbqSidepanelService\n ) {}\n\n ngOnDestroy() {\n // Only close the sidepanels at this level on destroy\n // since the parent service may still be active.\n this.closeSidepanels(this.openedSidepanelsAtThisLevel);\n }\n\n open<T, D = any>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n config?: KbqSidepanelConfig<D>\n ): KbqSidepanelRef<T> {\n const fullConfig = {\n ...(this.defaultOptions || new KbqSidepanelConfig()),\n ...config\n };\n\n if (fullConfig.id && this.getSidepanelById(fullConfig.id)) {\n throw Error(`Sidepanel with id \"${fullConfig.id}\" exists already. The sidepanel id must be unique.`);\n }\n\n const overlayRef = this.createOverlay(fullConfig);\n overlayRef.hostElement.classList.add('kbq-sidepanel-overlay');\n const container = this.attachContainer(overlayRef, fullConfig);\n const ref = new KbqSidepanelRef(container, overlayRef, fullConfig);\n\n if (componentOrTemplateRef instanceof TemplateRef) {\n container.attachTemplatePortal(\n new TemplatePortal<T>(componentOrTemplateRef, null!, {\n $implicit: fullConfig.data,\n sidepanelRef: ref\n } as any)\n );\n } else {\n const portal = new ComponentPortal(\n componentOrTemplateRef,\n undefined,\n this.createInjector(fullConfig, ref, container)\n );\n const contentRef = container.attachComponentPortal(portal);\n\n ref.instance = contentRef.instance;\n }\n\n this.openedSidepanels.push(ref);\n ref.afterClosed().subscribe(() => this.removeOpenSidepanel(ref));\n\n container.enter();\n\n return ref;\n }\n\n /**\n * Closes all of the currently-open sidepanels.\n */\n closeAll(): void {\n this.closeSidepanels(this.openedSidepanels);\n }\n\n /**\n * Finds an open sidepanel by its id.\n * @param id ID to use when looking up the sidepanel.\n */\n getSidepanelById(id: string): KbqSidepanelRef | undefined {\n return this.openedSidepanels.find((sidepanel) => sidepanel.id === id);\n }\n\n /**\n * Attaches the sidepanel container component to the overlay.\n */\n private attachContainer(overlayRef: OverlayRef, config: KbqSidepanelConfig): KbqSidepanelContainerComponent {\n const openedSidepanelsWithSamePosition = this.getOpenedSidepanelsWithSamePosition(config);\n\n const injector = Injector.create({\n parent: this.injector,\n providers: [\n { provide: KbqSidepanelConfig, useValue: config },\n { provide: KBQ_SIDEPANEL_WITH_INDENT, useValue: openedSidepanelsWithSamePosition.length >= 1 },\n { provide: KBQ_SIDEPANEL_WITH_SHADOW, useValue: openedSidepanelsWithSamePosition.length < 2 }\n ]\n });\n\n const containerPortal = new ComponentPortal(KbqSidepanelContainerComponent, undefined, injector);\n const containerRef: ComponentRef<KbqSidepanelContainerComponent> = overlayRef.attach(containerPortal);\n\n return containerRef.instance;\n }\n\n /**\n * Creates a custom injector to be used inside the sidepanel. This allows a component loaded inside\n * of a sidepanel to close itself and, optionally, to return a value.\n * @param config Config object that is used to construct the sidepanel.\n * @param sidepanelRef Reference to the sidepanel.\n * @param sidepanelContainer Sidepanel container element that wraps all of the contents.\n * @returns The custom injector that can be used inside the sidepanel.\n */\n private createInjector<T>(\n config: KbqSidepanelConfig,\n sidepanelRef: KbqSidepanelRef<T>,\n sidepanelContainer: KbqSidepanelContainerComponent\n ): Injector {\n // The KbqSidepanelContainerComponent is injected in the portal as the KbqSidepanelContainerComponent and\n // the sidepanel's content are created out of the same ViewContainerRef and as such, are siblings for injector\n // purposes. To allow the hierarchy that is expected, the KbqSidepanelContainerComponent is explicitly\n // added to the injection tokens.\n\n return Injector.create({\n parent: this.injector,\n providers: [\n { provide: KbqSidepanelContainerComponent, useValue: sidepanelContainer },\n { provide: KBQ_SIDEPANEL_DATA, useValue: config.data },\n { provide: KbqSidepanelRef, useValue: sidepanelRef }\n ]\n });\n }\n\n /**\n * Creates a new overlay and places it in the correct location.\n * @param config The user-specified sidepanel config.\n */\n private createOverlay(config: KbqSidepanelConfig): OverlayRef {\n const overlayConfig = new OverlayConfig({\n hasBackdrop: config.hasBackdrop,\n backdropClass: this.getBackdropClass(config),\n maxWidth: '100%',\n panelClass: config.overlayPanelClass,\n scrollStrategy: this.overlay.scrollStrategies.block(),\n positionStrategy: this.overlay.position().global()\n });\n\n return this.overlay.create(overlayConfig);\n }\n\n private closeSidepanels(sidepanels: KbqSidepanelRef[]) {\n const reversedOpenedSidepanels = [...sidepanels.reverse()];\n\n reversedOpenedSidepanels.forEach((sidepanelRef: KbqSidepanelRef) => sidepanelRef.close());\n }\n\n private getBackdropClass(config: KbqSidepanelConfig): string {\n if (config.hasBackdrop && config.backdropClass) {\n return config.backdropClass;\n }\n\n const hasOpenedSidepanelWithBackdrop = this.openedSidepanels.some(\n (sidepanelRef) => sidepanelRef.config.hasBackdrop!\n );\n\n return config.requiredBackdrop || !hasOpenedSidepanelWithBackdrop\n ? 'cdk-overlay-dark-backdrop'\n : 'cdk-overlay-transparent-backdrop';\n }\n\n private getOpenedSidepanelsWithSamePosition(config: KbqSidepanelConfig): KbqSidepanelRef[] {\n return this.openedSidepanels.filter((sidepanelRef) => sidepanelRef.config.position === config.position);\n }\n\n /**\n * Removes a sidepanel from the array of open sidepanels.\n * @param sidepanelRef Sidepanel to be removed.\n */\n private removeOpenSidepanel(sidepanelRef: KbqSidepanelRef) {\n const index = this.openedSidepanels.indexOf(sidepanelRef);\n\n if (index > -1) {\n this.openedSidepanels.splice(index, 1);\n }\n }\n}\n","import { Component, Directive, ElementRef, Input, OnChanges, OnInit, Optional, SimpleChanges } from '@angular/core';\nimport { KbqSidepanelRef } from './sidepanel-ref';\nimport { KbqSidepanelService } from './sidepanel.service';\n\n/**\n * Button that will close the current sidepanel.\n */\n@Directive({\n selector: 'button[kbq-sidepanel-close], button[kbqSidepanelClose]',\n host: {\n '(click)': 'sidepanelRef.close(sidepanelResult)',\n class: 'kbq-sidepanel-close'\n }\n})\nexport class KbqSidepanelClose implements OnInit, OnChanges {\n @Input('kbq-sidepanel-close') sidepanelResult: any;\n\n @Input() kbqSidepanelClose: any;\n\n constructor(\n @Optional() public sidepanelRef: KbqSidepanelRef,\n private elementRef: ElementRef<HTMLElement>,\n private sidepanelService: KbqSidepanelService\n ) {}\n\n ngOnInit() {\n if (!this.sidepanelRef) {\n // When this directive is included in a sidepanel via TemplateRef (rather than being\n // in a Component), the SidepanelRef isn't available via injection because embedded\n // views cannot be given a custom injector. Instead, we look up the SidepanelRef by\n // ID.\n // This must occur in `onInit`, as the ID binding for the sidepanel container won't\n // be resolved at constructor time. We use setTimeout by same reason.\n setTimeout(() => {\n this.sidepanelRef = getClosestSidepanel(this.elementRef, this.sidepanelService.openedSidepanels)!;\n });\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const proxiedChange = changes.kbqSidepanelClose || changes.sidepanelResult;\n\n if (proxiedChange) {\n this.sidepanelResult = proxiedChange.currentValue;\n }\n }\n}\n\n/**\n * Header of a sidepanel.\n */\n@Component({\n selector: 'kbq-sidepanel-header',\n template: `\n <div class=\"kbq-sidepanel-title\" kbq-title>\n <ng-content />\n </div>\n\n @if (closeable) {\n <button [color]=\"'contrast'\" [kbqStyle]=\"'transparent'\" kbq-button kbq-sidepanel-close>\n <i [color]=\"'contrast'\" kbq-icon=\"kbq-xmark_16\"></i>\n </button>\n }\n `,\n host: {\n class: 'kbq-sidepanel-header'\n }\n})\nexport class KbqSidepanelHeader {\n @Input() closeable: boolean;\n}\n\n/**\n * Scrollable content container of a sidepanel.\n */\n@Directive({\n selector: 'kbq-sidepanel-body, [kbq-sidepanel-body], kbqSidepanelBody',\n host: {\n class: 'kbq-sidepanel-body kbq-scrollbar'\n }\n})\nexport class KbqSidepanelBody {}\n\n/**\n * Footer of a sidepanel.\n */\n@Directive({\n selector: 'kbq-sidepanel-footer, [kbq-sidepanel-footer], kbqSidepanelFooter',\n host: {\n class: 'kbq-sidepanel-footer'\n }\n})\nexport class KbqSidepanelFooter {}\n\n/**\n * Actions block of a sidepanel footer.\n */\n@Directive({\n selector: 'kbq-sidepanel-actions, [kbq-sidepanel-actions], kbqSidepanelActions',\n host: {\n class: 'kbq-sidepanel-actions'\n }\n})\nexport class KbqSidepanelActions {}\n\n/**\n * Finds the closest KbqSidepanelRef to an element by looking at the DOM.\n * @param element Element relative to which to look for a sidepanel.\n * @param openSidepanels References to the currently-open sidepanels.\n */\nfunction getClosestSidepanel(element: ElementRef<HTMLElement>, openSidepanels: KbqSidepanelRef[]) {\n let parent: HTMLElement | null = element.nativeElement.parentElement;\n\n while (parent && !parent.classList.contains('kbq-sidepanel-container')) {\n parent = parent.parentElement;\n }\n\n return parent ? openSidepanels.find((sidepanel) => sidepanel.id === parent!.id) : null;\n}\n","import { A11yModule, ConfigurableFocusTrapFactory, FocusTrapFactory } from '@angular/cdk/a11y';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { NgModule } from '@angular/core';\nimport { KbqButtonModule } from '@koobiq/components/button';\nimport { KbqCommonModule } from '@koobiq/components/core';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqTitleModule } from '@koobiq/components/title';\nimport { KbqSidepanelContainerComponent } from './sidepanel-container.component';\nimport {\n KbqSidepanelActions,\n KbqSidepanelBody,\n KbqSidepanelClose,\n KbqSidepanelFooter,\n KbqSidepanelHeader\n} from './sidepanel-directives';\nimport { KbqSidepanelService } from './sidepanel.service';\n\n@NgModule({\n imports: [\n OverlayModule,\n PortalModule,\n KbqCommonModule,\n KbqButtonModule,\n KbqIconModule,\n KbqTitleModule,\n A11yModule\n ],\n providers: [\n KbqSidepanelService,\n { provide: FocusTrapFactory, useClass: ConfigurableFocusTrapFactory }],\n declarations: [\n KbqSidepanelContainerComponent,\n KbqSidepanelClose,\n KbqSidepanelHeader,\n KbqSidepanelBody,\n KbqSidepanelFooter,\n KbqSidepanelActions\n ],\n exports: [\n KbqSidepanelContainerComponent,\n KbqSidepanelClose,\n KbqSidepanelHeader,\n KbqSidepanelBody,\n KbqSidepanelFooter,\n KbqSidepanelActions\n ]\n})\nexport class KbqSidepanelModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.KbqSidepanelConfig","i1.KbqSidepanelRef","i2.KbqSidepanelService","i3"],"mappings":"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"}
1
+ {"version":3,"file":"koobiq-components-sidepanel.mjs","sources":["../../../packages/components/sidepanel/sidepanel-config.ts","../../../packages/components/sidepanel/sidepanel-animations.ts","../../../packages/components/sidepanel/sidepanel-container.component.ts","../../../packages/components/sidepanel/sidepanel-container.component.html","../../../packages/components/sidepanel/sidepanel-ref.ts","../../../packages/components/sidepanel/sidepanel.service.ts","../../../packages/components/sidepanel/sidepanel-directives.ts","../../../packages/components/sidepanel/sidepanel.module.ts","../../../packages/components/sidepanel/koobiq-components-sidepanel.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\n/** Injection token that can be used to access the data that was passed in to a sidepanel. */\nexport const KBQ_SIDEPANEL_DATA = new InjectionToken<any>('KbqSidepanelData');\n\nexport enum KbqSidepanelPosition {\n Right = 'right',\n Left = 'left',\n Top = 'top',\n Bottom = 'bottom'\n}\n\nexport enum KbqSidepanelSize {\n Small = 'small',\n Medium = 'medium',\n Large = 'large'\n}\n\nexport class KbqSidepanelConfig<D = any> {\n /** ID for the sidepanel. If omitted, a unique one will be generated. */\n id?: string;\n\n /** Data being injected into the child component. */\n data?: D | null = null;\n\n position?: KbqSidepanelPosition = KbqSidepanelPosition.Right;\n\n size?: KbqSidepanelSize = KbqSidepanelSize.Medium;\n\n /** Whether the sidepanel has a backdrop. */\n hasBackdrop?: boolean = true;\n\n backdropClass?: string;\n\n /** When we open multiple sidepanels, backdrop appears only once, except cases then this flag is true. */\n requiredBackdrop?: boolean = false;\n\n /** Whether the user can use escape or clicking outside to close the sidepanel. */\n disableClose?: boolean = false;\n\n /** Custom class for the overlay pane. */\n overlayPanelClass?: string | string[] = '';\n}\n","import { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\nimport { AnimationCurves } from '@koobiq/components/core';\nimport { KbqSidepanelPosition } from './sidepanel-config';\n\nexport enum KbqSidepanelAnimationState {\n Void = 'void',\n Visible = 'visible',\n Hidden = 'hidden'\n}\n\n// TODO Find a way to use dynamic keys and avoid error \"Expression form not supported.\"\nexport const kbqSidepanelTransformAnimation: Record<KbqSidepanelPosition, { in: string; out: string }> = {\n right: { in: 'translateX(100%)', out: 'translateX(0%)' },\n left: { in: 'translateX(-100%)', out: 'translateX(0%)' },\n top: { in: 'translateY(-100%)', out: 'translateY(0%)' },\n bottom: { in: 'translateY(100%)', out: 'translateY(0%)' }\n};\n\nexport const kbqSidepanelAnimations: { readonly sidepanelState: AnimationTriggerMetadata } = {\n sidepanelState: trigger('state', [\n state('hidden', style({ transform: '{{transformIn}}' }), {\n params: { transformIn: kbqSidepanelTransformAnimation[KbqSidepanelPosition.Right].in }\n }),\n state('visible', style({ transform: '{{transformOut}}' }), {\n params: { transformOut: kbqSidepanelTransformAnimation[KbqSidepanelPosition.Right].out }\n }),\n transition('visible => void, visible => hidden', animate(`200ms ${AnimationCurves.AccelerationCurve}`)),\n transition('void => visible', animate(`200ms ${AnimationCurves.DecelerationCurve}`))\n ])\n};\n","import { AnimationEvent } from '@angular/animations';\nimport { BasePortalOutlet, CdkPortalOutlet, ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n Inject,\n InjectionToken,\n OnDestroy,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n KbqSidepanelAnimationState,\n kbqSidepanelAnimations,\n kbqSidepanelTransformAnimation\n} from './sidepanel-animations';\nimport { KbqSidepanelConfig, KbqSidepanelPosition } from './sidepanel-config';\n\nexport const KBQ_SIDEPANEL_WITH_INDENT = new InjectionToken<boolean>('kbq-sidepanel-with-indent');\n\nexport const KBQ_SIDEPANEL_WITH_SHADOW = new InjectionToken<boolean>('kbq-sidepanel-with-shadow');\n\n@Component({\n selector: 'kbq-sidepanel-container',\n templateUrl: './sidepanel-container.component.html',\n styleUrls: ['./sidepanel.scss', './sidepanel-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n animations: [kbqSidepanelAnimations.sidepanelState],\n host: {\n class: 'kbq-sidepanel-container',\n '[class]': 'size',\n '[class.kbq-sidepanel_nested]': 'withIndent',\n '[class.kbq-sidepanel-container_shadowed]': 'withShadow',\n '[attr.id]': 'id',\n '[attr.tabindex]': '-1',\n '[@state]': `{\n value: animationState,\n params: animationTransform\n }`,\n '(@state.start)': 'onAnimation($event)',\n '(@state.done)': 'onAnimation($event)'\n }\n})\nexport class KbqSidepanelContainerComponent extends BasePortalOutlet implements OnDestroy {\n /** ID for the container DOM element. */\n id: string;\n\n /** The portal outlet inside of this container into which the content will be loaded. */\n @ViewChild(CdkPortalOutlet, { static: true }) portalOutlet: CdkPortalOutlet;\n\n /** The state of the sidepanel animations. */\n animationState: KbqSidepanelAnimationState = KbqSidepanelAnimationState.Void;\n\n animationTransform: { transformIn: string; transformOut: string };\n\n /** Emits whenever the state of the animation changes. */\n animationStateChanged = new EventEmitter<AnimationEvent>();\n\n get size(): string {\n return `kbq-sidepanel_${this.sidepanelConfig.size}`;\n }\n\n /** Whether the component has been destroyed. */\n private destroyed: boolean;\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private changeDetectorRef: ChangeDetectorRef,\n public sidepanelConfig: KbqSidepanelConfig,\n @Inject(KBQ_SIDEPANEL_WITH_INDENT) public withIndent: boolean,\n @Inject(KBQ_SIDEPANEL_WITH_SHADOW) public withShadow: boolean\n ) {\n super();\n }\n\n ngOnDestroy(): void {\n this.destroyed = true;\n }\n\n /** Attach a component portal as content to this sidepanel container. */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n this.validatePortalAttached();\n this.setAnimation();\n this.setPanelClass();\n\n return this.portalOutlet.attachComponentPortal(portal);\n }\n\n /** Attach a template portal as content to this sidepanel container. */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n this.validatePortalAttached();\n this.setAnimation();\n this.setPanelClass();\n\n return this.portalOutlet.attachTemplatePortal(portal);\n }\n\n /** Begin animation of the sidepanel entrance into view. */\n enter(): void {\n if (this.destroyed) {\n return;\n }\n\n this.animationState = KbqSidepanelAnimationState.Visible;\n this.changeDetectorRef.detectChanges();\n }\n\n /** Begin animation of the sidepanel exiting from view. */\n exit(): void {\n if (this.destroyed) {\n return;\n }\n\n this.animationState = KbqSidepanelAnimationState.Hidden;\n this.changeDetectorRef.markForCheck();\n }\n\n onAnimation(event: AnimationEvent) {\n this.animationStateChanged.emit(event);\n }\n\n private setAnimation() {\n const position: KbqSidepanelPosition = this.sidepanelConfig.position!;\n\n this.animationTransform = {\n transformIn: kbqSidepanelTransformAnimation[position].in,\n transformOut: kbqSidepanelTransformAnimation[position].out\n };\n }\n\n private setPanelClass() {\n const element: HTMLElement = this.elementRef.nativeElement;\n const position: KbqSidepanelPosition = this.sidepanelConfig.position!;\n\n element.classList.add(`kbq-sidepanel-container_${position}`);\n }\n\n private validatePortalAttached() {\n if (this.portalOutlet.hasAttached()) {\n throw Error('Attempting to attach sidepanel content after content is already attached');\n }\n }\n}\n","<div class=\"kbq-sidepanel-wrapper\">\n @if (withIndent) {\n <div class=\"kbq-sidepanel-indent\" (click)=\"exit()\"></div>\n }\n\n <div cdkTrapFocus cdkTrapFocusAutoCapture class=\"kbq-sidepanel-content\">\n <ng-template cdkPortalOutlet />\n </div>\n</div>\n","import { OverlayRef } from '@angular/cdk/overlay';\nimport { ESCAPE } from '@koobiq/cdk/keycodes';\nimport { merge, Observable, Subject } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\nimport { KbqSidepanelAnimationState } from './sidepanel-animations';\nimport { KbqSidepanelConfig } from './sidepanel-config';\nimport { KbqSidepanelContainerComponent } from './sidepanel-container.component';\n\n// Counter for unique sidepanel ids.\nlet uniqueId = 0;\n\nexport class KbqSidepanelRef<T = any, R = any> {\n readonly id: string;\n\n /** Instance of the component making up the content of the sidepanel. */\n instance: T;\n\n /** Subject for notifying the user that the sidepanel has been closed and dismissed. */\n private readonly afterClosed$ = new Subject<R | undefined>();\n\n /** Subject for notifying the user that the sidepanel has opened and appeared. */\n private readonly afterOpened$ = new Subject<void>();\n\n /** Result to be passed down to the `afterDismissed` stream. */\n private result: R | undefined;\n\n constructor(\n public containerInstance: KbqSidepanelContainerComponent,\n private overlayRef: OverlayRef,\n public config: KbqSidepanelConfig\n ) {\n this.id = this.config.id || `kbq-sidepanel-${uniqueId++}`;\n this.containerInstance.id = this.id;\n\n // Emit when opening animation completes\n containerInstance.animationStateChanged\n .pipe(\n filter((event) => event.phaseName === 'done' && event.toState === KbqSidepanelAnimationState.Visible),\n take(1)\n )\n .subscribe(() => {\n this.afterOpened$.next();\n this.afterOpened$.complete();\n });\n\n // Dispose overlay when closing animation is complete\n containerInstance.animationStateChanged\n .pipe(\n filter((event) => event.phaseName === 'done' && event.toState === KbqSidepanelAnimationState.Hidden),\n take(1)\n )\n .subscribe(() => {\n overlayRef.dispose();\n this.afterClosed$.next(this.result);\n this.afterClosed$.complete();\n });\n\n if (!containerInstance.sidepanelConfig.disableClose) {\n merge(\n overlayRef.backdropClick(),\n overlayRef.keydownEvents().pipe(\n // keyCode is deprecated, but IE11 and Edge don't support code property, which we need use instead\n filter((event) => event.keyCode === ESCAPE)\n )\n ).subscribe(() => this.close());\n }\n }\n\n close(result?: R): void {\n if (!this.afterClosed$.closed) {\n // Transition the backdrop in parallel to the sidepanel.\n this.containerInstance.animationStateChanged\n .pipe(\n filter((event) => event.phaseName === 'done'),\n take(1)\n )\n .subscribe(() => this.overlayRef.detachBackdrop());\n\n this.result = result;\n this.containerInstance.exit();\n }\n }\n\n /** Gets an observable that is notified when the sidepanel is finished closing. */\n afterClosed(): Observable<R | undefined> {\n return this.afterClosed$.asObservable();\n }\n\n /** Gets an observable that is notified when the sidepanel has opened and appeared. */\n afterOpened(): Observable<void> {\n return this.afterOpened$.asObservable();\n }\n}\n","import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal, ComponentType, TemplatePortal } from '@angular/cdk/portal';\nimport {\n ComponentRef,\n Inject,\n Injectable,\n InjectionToken,\n Injector,\n OnDestroy,\n Optional,\n SkipSelf,\n TemplateRef\n} from '@angular/core';\nimport { KBQ_SIDEPANEL_DATA, KbqSidepanelConfig } from './sidepanel-config';\nimport {\n KBQ_SIDEPANEL_WITH_INDENT,\n KBQ_SIDEPANEL_WITH_SHADOW,\n KbqSidepanelContainerComponent\n} from './sidepanel-container.component';\nimport { KbqSidepanelRef } from './sidepanel-ref';\n\n/** Injection token that can be used to specify default sidepanel options. */\nexport const KBQ_SIDEPANEL_DEFAULT_OPTIONS = new InjectionToken<KbqSidepanelConfig>('kbq-sidepanel-default-options');\n\n@Injectable()\nexport class KbqSidepanelService implements OnDestroy {\n private openedSidepanelsAtThisLevel: KbqSidepanelRef[] = [];\n\n /** Keeps track of the currently-open sidepanels. */\n get openedSidepanels(): KbqSidepanelRef[] {\n return this.parentSidepanelService\n ? this.parentSidepanelService.openedSidepanels\n : this.openedSidepanelsAtThisLevel;\n }\n\n constructor(\n private overlay: Overlay,\n private injector: Injector,\n @Optional() @Inject(KBQ_SIDEPANEL_DEFAULT_OPTIONS) private defaultOptions: KbqSidepanelConfig,\n @Optional() @SkipSelf() private parentSidepanelService: KbqSidepanelService\n ) {}\n\n ngOnDestroy() {\n // Only close the sidepanels at this level on destroy\n // since the parent service may still be active.\n this.closeSidepanels(this.openedSidepanelsAtThisLevel);\n }\n\n open<T, D = any>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n config?: KbqSidepanelConfig<D>\n ): KbqSidepanelRef<T> {\n const fullConfig = {\n ...(this.defaultOptions || new KbqSidepanelConfig()),\n ...config\n };\n\n if (fullConfig.id && this.getSidepanelById(fullConfig.id)) {\n throw Error(`Sidepanel with id \"${fullConfig.id}\" exists already. The sidepanel id must be unique.`);\n }\n\n const overlayRef = this.createOverlay(fullConfig);\n overlayRef.hostElement.classList.add('kbq-sidepanel-overlay');\n const container = this.attachContainer(overlayRef, fullConfig);\n const ref = new KbqSidepanelRef(container, overlayRef, fullConfig);\n\n if (componentOrTemplateRef instanceof TemplateRef) {\n container.attachTemplatePortal(\n new TemplatePortal<T>(componentOrTemplateRef, null!, {\n $implicit: fullConfig.data,\n sidepanelRef: ref\n } as any)\n );\n } else {\n const portal = new ComponentPortal(\n componentOrTemplateRef,\n undefined,\n this.createInjector(fullConfig, ref, container)\n );\n const contentRef = container.attachComponentPortal(portal);\n\n ref.instance = contentRef.instance;\n }\n\n this.openedSidepanels.push(ref);\n ref.afterClosed().subscribe(() => this.removeOpenSidepanel(ref));\n\n container.enter();\n\n return ref;\n }\n\n /**\n * Closes all of the currently-open sidepanels.\n */\n closeAll(): void {\n this.closeSidepanels(this.openedSidepanels);\n }\n\n /**\n * Finds an open sidepanel by its id.\n * @param id ID to use when looking up the sidepanel.\n */\n getSidepanelById(id: string): KbqSidepanelRef | undefined {\n return this.openedSidepanels.find((sidepanel) => sidepanel.id === id);\n }\n\n /**\n * Attaches the sidepanel container component to the overlay.\n */\n private attachContainer(overlayRef: OverlayRef, config: KbqSidepanelConfig): KbqSidepanelContainerComponent {\n const openedSidepanelsWithSamePosition = this.getOpenedSidepanelsWithSamePosition(config);\n\n const injector = Injector.create({\n parent: this.injector,\n providers: [\n { provide: KbqSidepanelConfig, useValue: config },\n { provide: KBQ_SIDEPANEL_WITH_INDENT, useValue: openedSidepanelsWithSamePosition.length >= 1 },\n { provide: KBQ_SIDEPANEL_WITH_SHADOW, useValue: openedSidepanelsWithSamePosition.length < 2 }\n ]\n });\n\n const containerPortal = new ComponentPortal(KbqSidepanelContainerComponent, undefined, injector);\n const containerRef: ComponentRef<KbqSidepanelContainerComponent> = overlayRef.attach(containerPortal);\n\n return containerRef.instance;\n }\n\n /**\n * Creates a custom injector to be used inside the sidepanel. This allows a component loaded inside\n * of a sidepanel to close itself and, optionally, to return a value.\n * @param config Config object that is used to construct the sidepanel.\n * @param sidepanelRef Reference to the sidepanel.\n * @param sidepanelContainer Sidepanel container element that wraps all of the contents.\n * @returns The custom injector that can be used inside the sidepanel.\n */\n private createInjector<T>(\n config: KbqSidepanelConfig,\n sidepanelRef: KbqSidepanelRef<T>,\n sidepanelContainer: KbqSidepanelContainerComponent\n ): Injector {\n // The KbqSidepanelContainerComponent is injected in the portal as the KbqSidepanelContainerComponent and\n // the sidepanel's content are created out of the same ViewContainerRef and as such, are siblings for injector\n // purposes. To allow the hierarchy that is expected, the KbqSidepanelContainerComponent is explicitly\n // added to the injection tokens.\n\n return Injector.create({\n parent: this.injector,\n providers: [\n { provide: KbqSidepanelContainerComponent, useValue: sidepanelContainer },\n { provide: KBQ_SIDEPANEL_DATA, useValue: config.data },\n { provide: KbqSidepanelRef, useValue: sidepanelRef }\n ]\n });\n }\n\n /**\n * Creates a new overlay and places it in the correct location.\n * @param config The user-specified sidepanel config.\n */\n private createOverlay(config: KbqSidepanelConfig): OverlayRef {\n const overlayConfig = new OverlayConfig({\n hasBackdrop: config.hasBackdrop,\n backdropClass: this.getBackdropClass(config),\n maxWidth: '100%',\n panelClass: config.overlayPanelClass,\n scrollStrategy: this.overlay.scrollStrategies.block(),\n positionStrategy: this.overlay.position().global()\n });\n\n return this.overlay.create(overlayConfig);\n }\n\n private closeSidepanels(sidepanels: KbqSidepanelRef[]) {\n const reversedOpenedSidepanels = [...sidepanels.reverse()];\n\n reversedOpenedSidepanels.forEach((sidepanelRef: KbqSidepanelRef) => sidepanelRef.close());\n }\n\n private getBackdropClass(config: KbqSidepanelConfig): string {\n if (config.hasBackdrop && config.backdropClass) {\n return config.backdropClass;\n }\n\n const hasOpenedSidepanelWithBackdrop = this.openedSidepanels.some(\n (sidepanelRef) => sidepanelRef.config.hasBackdrop!\n );\n\n return config.requiredBackdrop || !hasOpenedSidepanelWithBackdrop\n ? 'cdk-overlay-dark-backdrop'\n : 'cdk-overlay-transparent-backdrop';\n }\n\n private getOpenedSidepanelsWithSamePosition(config: KbqSidepanelConfig): KbqSidepanelRef[] {\n return this.openedSidepanels.filter((sidepanelRef) => sidepanelRef.config.position === config.position);\n }\n\n /**\n * Removes a sidepanel from the array of open sidepanels.\n * @param sidepanelRef Sidepanel to be removed.\n */\n private removeOpenSidepanel(sidepanelRef: KbqSidepanelRef) {\n const index = this.openedSidepanels.indexOf(sidepanelRef);\n\n if (index > -1) {\n this.openedSidepanels.splice(index, 1);\n }\n }\n}\n","import { Component, Directive, ElementRef, Input, OnChanges, OnInit, Optional, SimpleChanges } from '@angular/core';\nimport { KbqSidepanelRef } from './sidepanel-ref';\nimport { KbqSidepanelService } from './sidepanel.service';\n\n/**\n * Button that will close the current sidepanel.\n */\n@Directive({\n selector: 'button[kbq-sidepanel-close], button[kbqSidepanelClose]',\n host: {\n '(click)': 'sidepanelRef.close(sidepanelResult)',\n class: 'kbq-sidepanel-close'\n }\n})\nexport class KbqSidepanelClose implements OnInit, OnChanges {\n @Input('kbq-sidepanel-close') sidepanelResult: any;\n\n @Input() kbqSidepanelClose: any;\n\n constructor(\n @Optional() public sidepanelRef: KbqSidepanelRef,\n private elementRef: ElementRef<HTMLElement>,\n private sidepanelService: KbqSidepanelService\n ) {}\n\n ngOnInit() {\n if (!this.sidepanelRef) {\n // When this directive is included in a sidepanel via TemplateRef (rather than being\n // in a Component), the SidepanelRef isn't available via injection because embedded\n // views cannot be given a custom injector. Instead, we look up the SidepanelRef by\n // ID.\n // This must occur in `onInit`, as the ID binding for the sidepanel container won't\n // be resolved at constructor time. We use setTimeout by same reason.\n setTimeout(() => {\n this.sidepanelRef = getClosestSidepanel(this.elementRef, this.sidepanelService.openedSidepanels)!;\n });\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const proxiedChange = changes.kbqSidepanelClose || changes.sidepanelResult;\n\n if (proxiedChange) {\n this.sidepanelResult = proxiedChange.currentValue;\n }\n }\n}\n\n/**\n * Header of a sidepanel.\n */\n@Component({\n selector: 'kbq-sidepanel-header',\n template: `\n <div class=\"kbq-sidepanel-title\" kbq-title>\n <ng-content />\n </div>\n\n @if (closeable) {\n <button [color]=\"'contrast'\" [kbqStyle]=\"'transparent'\" kbq-button kbq-sidepanel-close>\n <i [color]=\"'contrast'\" kbq-icon=\"kbq-xmark_16\"></i>\n </button>\n }\n `,\n host: {\n class: 'kbq-sidepanel-header'\n }\n})\nexport class KbqSidepanelHeader {\n @Input() closeable: boolean;\n}\n\n/**\n * Scrollable content container of a sidepanel.\n */\n@Directive({\n selector: 'kbq-sidepanel-body, [kbq-sidepanel-body], kbqSidepanelBody',\n host: {\n class: 'kbq-sidepanel-body kbq-scrollbar'\n }\n})\nexport class KbqSidepanelBody {}\n\n/**\n * Footer of a sidepanel.\n */\n@Directive({\n selector: 'kbq-sidepanel-footer, [kbq-sidepanel-footer], kbqSidepanelFooter',\n host: {\n class: 'kbq-sidepanel-footer'\n }\n})\nexport class KbqSidepanelFooter {}\n\n/**\n * Actions block of a sidepanel footer.\n */\n@Directive({\n selector: 'kbq-sidepanel-actions, [kbq-sidepanel-actions], kbqSidepanelActions',\n host: {\n class: 'kbq-sidepanel-actions'\n }\n})\nexport class KbqSidepanelActions {}\n\n/**\n * Finds the closest KbqSidepanelRef to an element by looking at the DOM.\n * @param element Element relative to which to look for a sidepanel.\n * @param openSidepanels References to the currently-open sidepanels.\n */\nfunction getClosestSidepanel(element: ElementRef<HTMLElement>, openSidepanels: KbqSidepanelRef[]) {\n let parent: HTMLElement | null = element.nativeElement.parentElement;\n\n while (parent && !parent.classList.contains('kbq-sidepanel-container')) {\n parent = parent.parentElement;\n }\n\n return parent ? openSidepanels.find((sidepanel) => sidepanel.id === parent!.id) : null;\n}\n","import { A11yModule, ConfigurableFocusTrapFactory, FocusTrapFactory } from '@angular/cdk/a11y';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { NgModule } from '@angular/core';\nimport { KbqButtonModule } from '@koobiq/components/button';\nimport { KbqCommonModule } from '@koobiq/components/core';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqTitleModule } from '@koobiq/components/title';\nimport { KbqSidepanelContainerComponent } from './sidepanel-container.component';\nimport {\n KbqSidepanelActions,\n KbqSidepanelBody,\n KbqSidepanelClose,\n KbqSidepanelFooter,\n KbqSidepanelHeader\n} from './sidepanel-directives';\nimport { KbqSidepanelService } from './sidepanel.service';\n\n@NgModule({\n imports: [\n OverlayModule,\n PortalModule,\n KbqCommonModule,\n KbqButtonModule,\n KbqIconModule,\n KbqTitleModule,\n A11yModule\n ],\n providers: [\n KbqSidepanelService,\n { provide: FocusTrapFactory, useClass: ConfigurableFocusTrapFactory }],\n declarations: [\n KbqSidepanelContainerComponent,\n KbqSidepanelClose,\n KbqSidepanelHeader,\n KbqSidepanelBody,\n KbqSidepanelFooter,\n KbqSidepanelActions\n ],\n exports: [\n KbqSidepanelContainerComponent,\n KbqSidepanelClose,\n KbqSidepanelHeader,\n KbqSidepanelBody,\n KbqSidepanelFooter,\n KbqSidepanelActions\n ]\n})\nexport class KbqSidepanelModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.KbqSidepanelConfig","i1.KbqSidepanelRef","i2.KbqSidepanelService","i3"],"mappings":"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"}