@koobiq/components 18.31.0 → 18.33.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (305) hide show
  1. package/accordion/accordion-trigger.component.scss +2 -0
  2. package/actions-panel/actions-panel-config.d.ts +2 -0
  3. package/actions-panel/actions-panel.d.ts +3 -57
  4. package/autocomplete/autocomplete-trigger.directive.d.ts +3 -4
  5. package/autocomplete/autocomplete.component.d.ts +1 -0
  6. package/autocomplete/autocomplete.module.d.ts +1 -1
  7. package/button-toggle/button-toggle.module.d.ts +3 -4
  8. package/code-block/code-block-highlight.d.ts +1 -2
  9. package/code-block/code-block.d.ts +57 -10
  10. package/core/common-behaviors/color.d.ts +3 -0
  11. package/core/common-behaviors/common-module.d.ts +16 -3
  12. package/core/form-field/form-field-ref.d.ts +5 -3
  13. package/core/option/action-container.d.ts +5 -0
  14. package/core/option/action-container.scss +45 -0
  15. package/core/option/action.d.ts +1 -4
  16. package/core/option/action.scss +13 -12
  17. package/core/option/index.d.ts +1 -0
  18. package/core/option/option.d.ts +6 -5
  19. package/core/public-api.d.ts +1 -0
  20. package/core/styles/common/_select.scss +60 -37
  21. package/core/styles/common/_tokens.scss +2 -0
  22. package/core/styles/theming/_theming.scss +0 -4
  23. package/core/tokens/index.d.ts +1 -0
  24. package/core/tokens/window.d.ts +5 -0
  25. package/core/validation/validation.d.ts +23 -2
  26. package/datepicker/datepicker-input.scss +1 -5
  27. package/dropdown/dropdown-trigger.directive.d.ts +1 -0
  28. package/ellipsis-center/ellipsis-center.directive.d.ts +7 -1
  29. package/esm2022/accordion/accordion-trigger.component.mjs +2 -2
  30. package/esm2022/accordion/accordion.component.mjs +2 -2
  31. package/esm2022/actions-panel/actions-panel-config.mjs +1 -1
  32. package/esm2022/actions-panel/actions-panel.mjs +16 -113
  33. package/esm2022/alert/alert.component.mjs +2 -2
  34. package/esm2022/autocomplete/autocomplete-trigger.directive.mjs +9 -13
  35. package/esm2022/autocomplete/autocomplete.component.mjs +10 -2
  36. package/esm2022/autocomplete/autocomplete.module.mjs +5 -11
  37. package/esm2022/badge/badge.component.mjs +2 -2
  38. package/esm2022/breadcrumbs/breadcrumbs.mjs +3 -6
  39. package/esm2022/button/button.component.mjs +4 -3
  40. package/esm2022/button-toggle/button-toggle.component.mjs +2 -2
  41. package/esm2022/button-toggle/button-toggle.module.mjs +5 -6
  42. package/esm2022/checkbox/checkbox.mjs +2 -2
  43. package/esm2022/code-block/code-block-highlight.mjs +8 -12
  44. package/esm2022/code-block/code-block.mjs +60 -18
  45. package/esm2022/core/common-behaviors/color.mjs +4 -1
  46. package/esm2022/core/common-behaviors/common-module.mjs +19 -26
  47. package/esm2022/core/form-field/form-field-ref.mjs +3 -4
  48. package/esm2022/core/option/action-container.mjs +23 -0
  49. package/esm2022/core/option/action.mjs +16 -30
  50. package/esm2022/core/option/index.mjs +2 -1
  51. package/esm2022/core/option/optgroup.mjs +2 -2
  52. package/esm2022/core/option/option.mjs +10 -8
  53. package/esm2022/core/public-api.mjs +2 -1
  54. package/esm2022/core/tokens/index.mjs +2 -0
  55. package/esm2022/core/tokens/window.mjs +19 -0
  56. package/esm2022/core/utils/utils.mjs +2 -1
  57. package/esm2022/core/validation/validation.mjs +21 -2
  58. package/esm2022/core/version.mjs +2 -2
  59. package/esm2022/datepicker/calendar-body.component.mjs +3 -3
  60. package/esm2022/datepicker/calendar-header.component.mjs +3 -3
  61. package/esm2022/datepicker/datepicker-input.directive.mjs +5 -1
  62. package/esm2022/datepicker/datepicker.component.mjs +3 -3
  63. package/esm2022/dl/dl.component.mjs +2 -2
  64. package/esm2022/dropdown/dropdown-trigger.directive.mjs +4 -3
  65. package/esm2022/dropdown/dropdown.component.mjs +3 -3
  66. package/esm2022/ellipsis-center/ellipsis-center.directive.mjs +8 -1
  67. package/esm2022/empty-state/empty-state.component.mjs +2 -2
  68. package/esm2022/file-upload/multiple-file-upload.component.mjs +4 -4
  69. package/esm2022/file-upload/single-file-upload.component.mjs +2 -2
  70. package/esm2022/filter-bar/filter-bar.mjs +21 -5
  71. package/esm2022/filter-bar/filter-bar.types.mjs +1 -1
  72. package/esm2022/filter-bar/filter-reset.mjs +2 -1
  73. package/esm2022/filter-bar/filter-search.mjs +2 -2
  74. package/esm2022/filter-bar/filters.mjs +4 -3
  75. package/esm2022/filter-bar/pipe-add.mjs +2 -2
  76. package/esm2022/filter-bar/pipes/base-pipe.mjs +7 -2
  77. package/esm2022/filter-bar/pipes/pipe-date.mjs +6 -12
  78. package/esm2022/filter-bar/pipes/pipe-datetime.mjs +6 -12
  79. package/esm2022/filter-bar/pipes/pipe-multi-select.mjs +2 -2
  80. package/esm2022/filter-bar/pipes/pipe-multi-tree-select.mjs +2 -2
  81. package/esm2022/filter-bar/pipes/pipe-select.mjs +2 -2
  82. package/esm2022/filter-bar/pipes/pipe-text.mjs +2 -2
  83. package/esm2022/filter-bar/pipes/pipe-tree-select.mjs +2 -2
  84. package/esm2022/form-field/cleaner.mjs +11 -6
  85. package/esm2022/form-field/error.mjs +20 -0
  86. package/esm2022/form-field/fieldset.mjs +84 -0
  87. package/esm2022/form-field/form-field-control.mjs +2 -2
  88. package/esm2022/form-field/form-field.mjs +247 -74
  89. package/esm2022/form-field/form-field.module.mjs +59 -47
  90. package/esm2022/form-field/hint.mjs +10 -18
  91. package/esm2022/form-field/label.mjs +19 -0
  92. package/esm2022/form-field/password-hint.mjs +7 -6
  93. package/esm2022/form-field/password-toggle.mjs +52 -27
  94. package/esm2022/form-field/prefix.mjs +9 -3
  95. package/esm2022/form-field/public-api.mjs +5 -2
  96. package/esm2022/form-field/reactive-password-hint.mjs +65 -0
  97. package/esm2022/form-field/stepper.mjs +34 -16
  98. package/esm2022/form-field/suffix.mjs +8 -3
  99. package/esm2022/form-field/validate.directive.mjs +16 -19
  100. package/esm2022/input/input-number.mjs +7 -2
  101. package/esm2022/input/input-password.mjs +2 -2
  102. package/esm2022/input/input.module.mjs +1 -5
  103. package/esm2022/list/list-selection.component.mjs +5 -5
  104. package/esm2022/list/list.component.mjs +2 -2
  105. package/esm2022/list/list.module.mjs +12 -5
  106. package/esm2022/loader-overlay/loader-overlay.component.mjs +2 -2
  107. package/esm2022/modal/modal-util.mjs +2 -1
  108. package/esm2022/modal/modal.component.mjs +2 -2
  109. package/esm2022/navbar/navbar-item.component.mjs +12 -13
  110. package/esm2022/navbar/navbar.component.mjs +2 -2
  111. package/esm2022/navbar/vertical-navbar.component.mjs +2 -2
  112. package/esm2022/overflow-items/overflow-items.mjs +27 -10
  113. package/esm2022/popover/popover-confirm.component.mjs +3 -3
  114. package/esm2022/popover/popover.component.mjs +3 -3
  115. package/esm2022/progress-bar/progress-bar.component.mjs +2 -2
  116. package/esm2022/progress-spinner/progress-spinner.component.mjs +2 -2
  117. package/esm2022/radio/radio.component.mjs +2 -2
  118. package/esm2022/radio/radio.module.mjs +4 -5
  119. package/esm2022/risk-level/risk-level.component.mjs +2 -2
  120. package/esm2022/scrollbar/scrollbar.component.mjs +14 -11
  121. package/esm2022/scrollbar/scrollbar.directive.mjs +2 -1
  122. package/esm2022/select/select.component.mjs +42 -22
  123. package/esm2022/sidepanel/sidepanel-container.component.mjs +3 -3
  124. package/esm2022/sidepanel/sidepanel.module.mjs +1 -5
  125. package/esm2022/splitter/splitter.component.mjs +5 -3
  126. package/esm2022/table/table.component.mjs +2 -2
  127. package/esm2022/tabs/paginated-tab-header.mjs +6 -2
  128. package/esm2022/tabs/tabs.module.mjs +1 -5
  129. package/esm2022/tags/tag-list.component.mjs +2 -2
  130. package/esm2022/textarea/textarea.component.mjs +7 -6
  131. package/esm2022/textarea/textarea.module.mjs +4 -5
  132. package/esm2022/timezone/timezone-option.component.mjs +2 -2
  133. package/esm2022/timezone/timezone-select.component.mjs +6 -4
  134. package/esm2022/toast/toast-animations.mjs +2 -2
  135. package/esm2022/toast/toast.component.mjs +3 -3
  136. package/esm2022/toggle/toggle.component.mjs +3 -3
  137. package/esm2022/toggle/toggle.module.mjs +4 -5
  138. package/esm2022/tooltip/tooltip.component.mjs +3 -3
  139. package/esm2022/top-bar/top-bar.mjs +2 -2
  140. package/esm2022/tree/padding.directive.mjs +8 -6
  141. package/esm2022/tree/toggle.mjs +2 -2
  142. package/esm2022/tree/tree-option.component.mjs +3 -3
  143. package/esm2022/tree/tree-selection.component.mjs +2 -2
  144. package/esm2022/tree/tree.mjs +2 -2
  145. package/esm2022/tree/tree.module.mjs +8 -5
  146. package/esm2022/tree-select/tree-select.component.mjs +50 -31
  147. package/fesm2022/koobiq-components-accordion.mjs +4 -4
  148. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  149. package/fesm2022/koobiq-components-actions-panel.mjs +16 -112
  150. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  151. package/fesm2022/koobiq-components-alert.mjs +2 -2
  152. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  153. package/fesm2022/koobiq-components-autocomplete.mjs +21 -24
  154. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  155. package/fesm2022/koobiq-components-badge.mjs +2 -2
  156. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  157. package/fesm2022/koobiq-components-breadcrumbs.mjs +2 -5
  158. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  159. package/fesm2022/koobiq-components-button-toggle.mjs +7 -7
  160. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  161. package/fesm2022/koobiq-components-button.mjs +3 -2
  162. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  163. package/fesm2022/koobiq-components-checkbox.mjs +2 -2
  164. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  165. package/fesm2022/koobiq-components-code-block.mjs +65 -28
  166. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  167. package/fesm2022/koobiq-components-core.mjs +109 -69
  168. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  169. package/fesm2022/koobiq-components-datepicker.mjs +10 -6
  170. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  171. package/fesm2022/koobiq-components-dl.mjs +2 -2
  172. package/fesm2022/koobiq-components-dl.mjs.map +1 -1
  173. package/fesm2022/koobiq-components-dropdown.mjs +5 -4
  174. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  175. package/fesm2022/koobiq-components-ellipsis-center.mjs +7 -0
  176. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
  177. package/fesm2022/koobiq-components-empty-state.mjs +2 -2
  178. package/fesm2022/koobiq-components-empty-state.mjs.map +1 -1
  179. package/fesm2022/koobiq-components-file-upload.mjs +5 -5
  180. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  181. package/fesm2022/koobiq-components-filter-bar.mjs +45 -35
  182. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  183. package/fesm2022/koobiq-components-form-field.mjs +611 -220
  184. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  185. package/fesm2022/koobiq-components-input.mjs +8 -6
  186. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  187. package/fesm2022/koobiq-components-list.mjs +17 -10
  188. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  189. package/fesm2022/koobiq-components-loader-overlay.mjs +2 -2
  190. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  191. package/fesm2022/koobiq-components-modal.mjs +3 -2
  192. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  193. package/fesm2022/koobiq-components-navbar.mjs +15 -16
  194. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  195. package/fesm2022/koobiq-components-overflow-items.mjs +26 -9
  196. package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
  197. package/fesm2022/koobiq-components-popover.mjs +4 -4
  198. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  199. package/fesm2022/koobiq-components-progress-bar.mjs +2 -2
  200. package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
  201. package/fesm2022/koobiq-components-progress-spinner.mjs +2 -2
  202. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  203. package/fesm2022/koobiq-components-radio.mjs +6 -6
  204. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  205. package/fesm2022/koobiq-components-risk-level.mjs +2 -2
  206. package/fesm2022/koobiq-components-risk-level.mjs.map +1 -1
  207. package/fesm2022/koobiq-components-scrollbar.mjs +14 -10
  208. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  209. package/fesm2022/koobiq-components-select.mjs +42 -22
  210. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  211. package/fesm2022/koobiq-components-sidepanel.mjs +3 -6
  212. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  213. package/fesm2022/koobiq-components-splitter.mjs +4 -2
  214. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  215. package/fesm2022/koobiq-components-table.mjs +2 -2
  216. package/fesm2022/koobiq-components-table.mjs.map +1 -1
  217. package/fesm2022/koobiq-components-tabs.mjs +5 -5
  218. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  219. package/fesm2022/koobiq-components-tags.mjs +2 -2
  220. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  221. package/fesm2022/koobiq-components-textarea.mjs +9 -8
  222. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  223. package/fesm2022/koobiq-components-timezone.mjs +7 -5
  224. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  225. package/fesm2022/koobiq-components-toast.mjs +3 -3
  226. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  227. package/fesm2022/koobiq-components-toggle.mjs +6 -6
  228. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  229. package/fesm2022/koobiq-components-tooltip.mjs +2 -2
  230. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  231. package/fesm2022/koobiq-components-top-bar.mjs +2 -2
  232. package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
  233. package/fesm2022/koobiq-components-tree-select.mjs +50 -31
  234. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  235. package/fesm2022/koobiq-components-tree.mjs +22 -17
  236. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  237. package/file-upload/_file-upload-theme.scss +9 -0
  238. package/file-upload/multiple-file-upload.component.d.ts +1 -1
  239. package/filter-bar/filter-bar.d.ts +2 -0
  240. package/filter-bar/filter-bar.types.d.ts +2 -2
  241. package/form-field/_fiedset-theme.scss +13 -0
  242. package/form-field/_form-field-theme.scss +29 -13
  243. package/form-field/_hint-theme.scss +21 -22
  244. package/form-field/cleaner.d.ts +5 -1
  245. package/form-field/cleaner.scss +1 -4
  246. package/form-field/error.d.ts +8 -0
  247. package/form-field/fieldset-tokens.scss +5 -0
  248. package/form-field/fieldset.d.ts +27 -0
  249. package/form-field/fieldset.scss +93 -0
  250. package/form-field/form-field-control.d.ts +1 -1
  251. package/form-field/form-field-tokens.scss +13 -3
  252. package/form-field/form-field.d.ts +210 -22
  253. package/form-field/form-field.module.d.ts +14 -12
  254. package/form-field/form-field.scss +58 -78
  255. package/form-field/hint.d.ts +5 -1
  256. package/form-field/hint.scss +3 -5
  257. package/form-field/label.d.ts +6 -0
  258. package/form-field/password-hint.d.ts +1 -1
  259. package/form-field/password-toggle.d.ts +25 -11
  260. package/form-field/password-toggle.scss +1 -2
  261. package/form-field/prefix.d.ts +2 -1
  262. package/form-field/public-api.d.ts +4 -1
  263. package/form-field/reactive-password-hint.d.ts +19 -0
  264. package/form-field/stepper.d.ts +20 -8
  265. package/form-field/stepper.scss +12 -11
  266. package/form-field/suffix.d.ts +2 -1
  267. package/form-field/validate.directive.d.ts +10 -12
  268. package/input/input-tokens.scss +2 -2
  269. package/input/input.module.d.ts +3 -4
  270. package/input/input.scss +1 -2
  271. package/list/_list-theme.scss +4 -1
  272. package/list/list.module.d.ts +2 -1
  273. package/list/list.scss +6 -12
  274. package/navbar/navbar-item.component.d.ts +3 -1
  275. package/overflow-items/overflow-items.d.ts +12 -5
  276. package/package.json +4 -4
  277. package/prebuilt-themes/dark-theme.css +1 -1
  278. package/prebuilt-themes/light-theme.css +1 -1
  279. package/prebuilt-themes/theme.css +1 -1
  280. package/radio/radio.module.d.ts +1 -2
  281. package/schematics/ng-add/index.js +3 -3
  282. package/scrollbar/scrollbar.component.d.ts +1 -0
  283. package/select/select-tokens.scss +5 -4
  284. package/select/select.component.d.ts +12 -3
  285. package/sidepanel/sidepanel.module.d.ts +5 -6
  286. package/splitter/splitter.component.d.ts +1 -0
  287. package/tabs/paginated-tab-header.d.ts +1 -0
  288. package/tabs/tabs.module.d.ts +5 -6
  289. package/tags/tag-list.scss +8 -4
  290. package/textarea/textarea.component.d.ts +1 -0
  291. package/textarea/textarea.module.d.ts +2 -3
  292. package/timepicker/timepicker.scss +1 -1
  293. package/toast/toast.component.scss +2 -0
  294. package/toggle/_toggle-theme.scss +10 -2
  295. package/toggle/toggle-tokens.scss +7 -1
  296. package/toggle/toggle.module.d.ts +1 -2
  297. package/toggle/toggle.scss +6 -6
  298. package/top-bar/top-bar.scss +48 -32
  299. package/tree/_tree-theme.scss +13 -2
  300. package/tree/padding.directive.d.ts +1 -1
  301. package/tree/tree-option.scss +12 -17
  302. package/tree/tree.module.d.ts +1 -1
  303. package/tree-select/tree-select.component.d.ts +10 -1
  304. package/esm2022/form-field/form-field-errors.mjs +0 -7
  305. package/form-field/form-field-errors.d.ts +0 -2
@@ -3,7 +3,7 @@ import { InjectionToken, EventEmitter, Component, ChangeDetectionStrategy, ViewE
3
3
  import * as i2 from '@angular/cdk/portal';
4
4
  import { BasePortalOutlet, CdkPortalOutlet, TemplatePortal, ComponentPortal, PortalModule } from '@angular/cdk/portal';
5
5
  import { trigger, state, style, transition, animate } from '@angular/animations';
6
- import { AnimationCurves, KbqCommonModule } from '@koobiq/components/core';
6
+ import { AnimationCurves } from '@koobiq/components/core';
7
7
  import * as i3 from '@angular/cdk/a11y';
8
8
  import { A11yModule, FocusTrapFactory, ConfigurableFocusTrapFactory } from '@angular/cdk/a11y';
9
9
  import { ESCAPE } from '@koobiq/cdk/keycodes';
@@ -154,7 +154,7 @@ class KbqSidepanelContainerComponent extends BasePortalOutlet {
154
154
  }
155
155
  }
156
156
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", 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 }); }
157
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", 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 class=\"kbq-sidepanel-content\" [cdkTrapFocus]=\"trapFocus\" [cdkTrapFocusAutoCapture]=\"trapFocusAutoCapture\">\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-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-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:baseline;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-header.kbq-sidepanel-header_truncate-text{align-items:center}.kbq-sidepanel-header.kbq-sidepanel-header_truncate-text .kbq-sidepanel-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-sidepanel-title{flex:1}.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-xxl);--kbq-sidepanel-size-header-padding-right: var(--kbq-size-l);--kbq-sidepanel-size-close-button-margin-left: var(--kbq-size-s);--kbq-sidepanel-size-content-padding-horizontal: var(--kbq-size-xxl);--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-xxl);--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 }); }
157
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", 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 class=\"kbq-sidepanel-content\" [cdkTrapFocus]=\"trapFocus\" [cdkTrapFocusAutoCapture]=\"trapFocusAutoCapture\">\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-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-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:baseline;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-header.kbq-sidepanel-header_truncate-text{align-items:center}.kbq-sidepanel-header.kbq-sidepanel-header_truncate-text .kbq-sidepanel-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-sidepanel-title{flex:1}.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-style:var(--kbq-typography-title-font-style);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-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n", ".kbq-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-xxl);--kbq-sidepanel-size-header-padding-right: var(--kbq-size-l);--kbq-sidepanel-size-close-button-margin-left: var(--kbq-size-s);--kbq-sidepanel-size-content-padding-horizontal: var(--kbq-size-xxl);--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-xxl);--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 }); }
158
158
  }
159
159
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqSidepanelContainerComponent, decorators: [{
160
160
  type: Component,
@@ -171,7 +171,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
171
171
  }`,
172
172
  '(@state.start)': 'onAnimation($event)',
173
173
  '(@state.done)': 'onAnimation($event)'
174
- }, template: "<div class=\"kbq-sidepanel-wrapper\">\n @if (withIndent) {\n <div class=\"kbq-sidepanel-indent\" (click)=\"exit()\"></div>\n }\n\n <div class=\"kbq-sidepanel-content\" [cdkTrapFocus]=\"trapFocus\" [cdkTrapFocusAutoCapture]=\"trapFocusAutoCapture\">\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-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-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:baseline;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-header.kbq-sidepanel-header_truncate-text{align-items:center}.kbq-sidepanel-header.kbq-sidepanel-header_truncate-text .kbq-sidepanel-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-sidepanel-title{flex:1}.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-xxl);--kbq-sidepanel-size-header-padding-right: var(--kbq-size-l);--kbq-sidepanel-size-close-button-margin-left: var(--kbq-size-s);--kbq-sidepanel-size-content-padding-horizontal: var(--kbq-size-xxl);--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-xxl);--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"] }]
174
+ }, template: "<div class=\"kbq-sidepanel-wrapper\">\n @if (withIndent) {\n <div class=\"kbq-sidepanel-indent\" (click)=\"exit()\"></div>\n }\n\n <div class=\"kbq-sidepanel-content\" [cdkTrapFocus]=\"trapFocus\" [cdkTrapFocusAutoCapture]=\"trapFocusAutoCapture\">\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-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-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:baseline;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-header.kbq-sidepanel-header_truncate-text{align-items:center}.kbq-sidepanel-header.kbq-sidepanel-header_truncate-text .kbq-sidepanel-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-sidepanel-title{flex:1}.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-style:var(--kbq-typography-title-font-style);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-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n", ".kbq-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-xxl);--kbq-sidepanel-size-header-padding-right: var(--kbq-size-l);--kbq-sidepanel-size-close-button-margin-left: var(--kbq-size-s);--kbq-sidepanel-size-content-padding-horizontal: var(--kbq-size-xxl);--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-xxl);--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"] }]
175
175
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: KbqSidepanelConfig }, { type: undefined, decorators: [{
176
176
  type: Inject,
177
177
  args: [KBQ_SIDEPANEL_WITH_INDENT]
@@ -563,7 +563,6 @@ class KbqSidepanelModule {
563
563
  KbqSidepanelFooter,
564
564
  KbqSidepanelActions], imports: [OverlayModule,
565
565
  PortalModule,
566
- KbqCommonModule,
567
566
  KbqButtonModule,
568
567
  KbqIconModule,
569
568
  KbqTitleModule,
@@ -578,7 +577,6 @@ class KbqSidepanelModule {
578
577
  { provide: FocusTrapFactory, useClass: ConfigurableFocusTrapFactory }
579
578
  ], imports: [OverlayModule,
580
579
  PortalModule,
581
- KbqCommonModule,
582
580
  KbqButtonModule,
583
581
  KbqIconModule,
584
582
  KbqTitleModule,
@@ -590,7 +588,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
590
588
  imports: [
591
589
  OverlayModule,
592
590
  PortalModule,
593
- KbqCommonModule,
594
591
  KbqButtonModule,
595
592
  KbqIconModule,
596
593
  KbqTitleModule,
@@ -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 /** Whether the focus trap is active. */\n trapFocus?: boolean;\n\n /** capture focus on initialization. This option sets cdkTrapFocusAutoCapture. */\n trapFocusAutoCapture?: boolean;\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 get trapFocusAutoCapture(): boolean {\n return this.sidepanelConfig.trapFocusAutoCapture ?? !!this.sidepanelConfig.hasBackdrop;\n }\n\n get trapFocus(): boolean {\n return this.sidepanelConfig.trapFocus ?? !!this.sidepanelConfig.hasBackdrop;\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 class=\"kbq-sidepanel-content\" [cdkTrapFocus]=\"trapFocus\" [cdkTrapFocusAutoCapture]=\"trapFocusAutoCapture\">\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\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 {\n booleanAttribute,\n Component,\n Directive,\n ElementRef,\n Input,\n OnChanges,\n OnInit,\n Optional,\n SimpleChanges\n} 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 '[class.kbq-sidepanel-header_truncate-text]': 'truncateText'\n }\n})\nexport class KbqSidepanelHeader {\n /** Add button for close sidepanel. Default false */\n @Input({ transform: booleanAttribute }) closeable: boolean = false;\n\n /** Enables text truncation. Default true */\n @Input({ transform: booleanAttribute }) truncateText: boolean = true;\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 /** Whether the focus trap is active. */\n trapFocus?: boolean;\n\n /** capture focus on initialization. This option sets cdkTrapFocusAutoCapture. */\n trapFocusAutoCapture?: boolean;\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 get trapFocusAutoCapture(): boolean {\n return this.sidepanelConfig.trapFocusAutoCapture ?? !!this.sidepanelConfig.hasBackdrop;\n }\n\n get trapFocus(): boolean {\n return this.sidepanelConfig.trapFocus ?? !!this.sidepanelConfig.hasBackdrop;\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 class=\"kbq-sidepanel-content\" [cdkTrapFocus]=\"trapFocus\" [cdkTrapFocusAutoCapture]=\"trapFocusAutoCapture\">\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\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 {\n booleanAttribute,\n Component,\n Directive,\n ElementRef,\n Input,\n OnChanges,\n OnInit,\n Optional,\n SimpleChanges\n} 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 '[class.kbq-sidepanel-header_truncate-text]': 'truncateText'\n }\n})\nexport class KbqSidepanelHeader {\n /** Add button for close sidepanel. Default false */\n @Input({ transform: booleanAttribute }) closeable: boolean = false;\n\n /** Enables text truncation. Default true */\n @Input({ transform: booleanAttribute }) truncateText: boolean = true;\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 { 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 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,6 +1,7 @@
1
1
  import { coerceNumberProperty, coerceCssPixelValue, coerceBooleanProperty } from '@angular/cdk/coercion';
2
2
  import * as i0 from '@angular/core';
3
- import { Directive, Input, EventEmitter, Component, ViewEncapsulation, ChangeDetectionStrategy, Output, ViewChildren, ViewChild, ContentChildren, forwardRef, Inject, NgModule } from '@angular/core';
3
+ import { Directive, Input, EventEmitter, Component, ViewEncapsulation, ChangeDetectionStrategy, Output, ViewChildren, ViewChild, ContentChildren, forwardRef, inject, Inject, NgModule } from '@angular/core';
4
+ import { KBQ_WINDOW } from '@koobiq/components/core';
4
5
  import { Subscription } from 'rxjs';
5
6
  import { KbqIconModule } from '@koobiq/components/icon';
6
7
 
@@ -405,6 +406,7 @@ class KbqSplitterAreaDirective {
405
406
  this.renderer = renderer;
406
407
  this.splitter = splitter;
407
408
  this.sizeChange = new EventEmitter();
409
+ this.window = inject(KBQ_WINDOW);
408
410
  this.emitSizeChange = () => {
409
411
  this.sizeChange.emit(this.getSize());
410
412
  };
@@ -450,7 +452,7 @@ class KbqSplitterAreaDirective {
450
452
  };
451
453
  }
452
454
  getMinSize() {
453
- const styles = getComputedStyle(this.elementRef.nativeElement);
455
+ const styles = this.window.getComputedStyle(this.elementRef.nativeElement);
454
456
  return parseFloat(styles[this.getMinSizeProperty()]);
455
457
  }
456
458
  isVertical() {
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-splitter.mjs","sources":["../../../packages/components/splitter/splitter.component.ts","../../../packages/components/splitter/splitter.component.html","../../../packages/components/splitter/splitter.module.ts","../../../packages/components/splitter/koobiq-components-splitter.ts"],"sourcesContent":["import { coerceBooleanProperty, coerceCssPixelValue, coerceNumberProperty } from '@angular/cdk/coercion';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n Renderer2,\n ViewChild,\n ViewChildren,\n ViewEncapsulation,\n forwardRef\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\ninterface IArea {\n area: KbqSplitterAreaDirective;\n index: number;\n order: number;\n initialSize: number;\n}\n\ninterface IPoint {\n x: number;\n y: number;\n}\n\nconst enum StyleProperty {\n Flex = 'flex',\n FlexBasis = 'flex-basis',\n FlexDirection = 'flex-direction',\n Height = 'height',\n MaxWidth = 'max-width',\n MinHeight = 'min-height',\n MinWidth = 'minWidth',\n OffsetHeight = 'offsetHeight',\n OffsetWidth = 'offsetWidth',\n Order = 'order',\n Width = 'width',\n Top = 'top',\n Left = 'left',\n Cursor = 'cursor'\n}\n\nexport enum Direction {\n Horizontal = 'horizontal',\n Vertical = 'vertical'\n}\n\n@Directive({\n selector: 'kbq-gutter',\n host: {\n class: 'kbq-gutter',\n '[class.kbq-gutter_vertical]': 'isVertical',\n '[class.kbq-gutter_dragged]': 'dragged',\n '(mousedown)': 'dragged = true'\n }\n})\nexport class KbqGutterDirective implements OnInit {\n @Input()\n get direction(): Direction {\n return this._direction;\n }\n\n set direction(direction: Direction) {\n this._direction = direction;\n }\n\n private _direction: Direction = Direction.Vertical;\n\n @Input()\n get order(): number {\n return this._order;\n }\n\n set order(order: number) {\n this._order = coerceNumberProperty(order);\n }\n\n private _order: number = 0;\n\n @Input()\n get size(): number {\n return this._size;\n }\n\n set size(size: number) {\n this._size = coerceNumberProperty(size);\n }\n\n private _size: number = 6;\n\n get isVertical(): boolean {\n return this._direction === Direction.Vertical;\n }\n\n dragged: boolean = false;\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2\n ) {}\n\n ngOnInit(): void {\n this.setStyle(StyleProperty.FlexBasis, coerceCssPixelValue(this.size));\n this.setStyle(this.isVertical ? StyleProperty.Height : StyleProperty.Width, coerceCssPixelValue(this.size));\n this.setStyle(StyleProperty.Order, this.order);\n\n if (!this.isVertical) {\n this.setStyle(StyleProperty.Height, '100%');\n }\n\n // fix IE issue with gutter icon. flex-direction is required for flex alignment options\n this.setStyle(StyleProperty.FlexDirection, this.isVertical ? 'row' : 'column');\n }\n\n getPosition(): IPoint {\n return {\n x: this.elementRef.nativeElement.offsetLeft,\n y: this.elementRef.nativeElement.offsetTop\n };\n }\n\n private setStyle(property: StyleProperty, value: string | number): void {\n this.renderer.setStyle(this.elementRef.nativeElement, property, value);\n }\n}\n\n@Directive({\n selector: 'kbq-gutter-ghost',\n host: {\n class: 'kbq-gutter-ghost',\n '[class.kbq-gutter-ghost_vertical]': 'isVertical',\n '[class.kbq-gutter-ghost_visible]': 'visible'\n }\n})\nexport class KbqGutterGhostDirective {\n @Input() visible: boolean;\n\n @Input()\n get x(): number {\n return this._x;\n }\n\n set x(x: number) {\n this._x = x;\n this.setStyle(StyleProperty.Left, coerceCssPixelValue(x));\n }\n\n private _x: number = 0;\n\n @Input()\n get y(): number {\n return this._y;\n }\n\n set y(y: number) {\n this._y = y;\n this.setStyle(StyleProperty.Top, coerceCssPixelValue(y));\n }\n\n private _y: number = 0;\n\n @Input()\n get direction(): Direction {\n return this._direction;\n }\n\n set direction(direction: Direction) {\n this._direction = direction;\n this.updateDimensions();\n }\n\n private _direction: Direction = Direction.Vertical;\n\n @Input()\n get size(): number {\n return this._size;\n }\n\n set size(size: number) {\n this._size = coerceNumberProperty(size);\n this.updateDimensions();\n }\n\n private _size: number = 6;\n\n get isVertical(): boolean {\n return this.direction === Direction.Vertical;\n }\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2\n ) {}\n\n private updateDimensions(): void {\n this.setStyle(this.isVertical ? StyleProperty.Width : StyleProperty.Height, '100%');\n this.setStyle(this.isVertical ? StyleProperty.Height : StyleProperty.Width, coerceCssPixelValue(this.size));\n }\n\n private setStyle(property: StyleProperty, value: string | number): void {\n this.renderer.setStyle(this.elementRef.nativeElement, property, value);\n }\n}\n\n@Component({\n selector: 'kbq-splitter',\n exportAs: 'kbqSplitter',\n host: {\n class: 'kbq-splitter'\n },\n preserveWhitespaces: false,\n styleUrls: ['splitter.scss'],\n templateUrl: './splitter.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqSplitterComponent implements OnInit, AfterContentInit, OnDestroy {\n @Output() gutterPositionChange: EventEmitter<void> = new EventEmitter<void>();\n\n areas: IArea[] = [];\n\n @ViewChildren(KbqGutterDirective) gutters: QueryList<KbqGutterDirective>;\n @ViewChild(KbqGutterGhostDirective) ghost: KbqGutterGhostDirective;\n\n @ContentChildren(forwardRef(() => KbqSplitterAreaDirective)) areaRefs: QueryList<KbqSplitterAreaDirective>;\n\n get isDragging(): boolean {\n return this._isDragging;\n }\n private _isDragging: boolean = false;\n\n private readonly areaPositionDivider: number = 2;\n private readonly listeners: (() => void)[] = [];\n\n private areasChangeSubscription: Subscription = Subscription.EMPTY;\n\n @Input()\n get hideGutters(): boolean {\n return this._hideGutters;\n }\n\n set hideGutters(value: boolean) {\n this._hideGutters = coerceBooleanProperty(value);\n }\n\n private _hideGutters: boolean = false;\n\n @Input()\n get direction(): Direction {\n return this._direction;\n }\n\n set direction(direction: Direction) {\n this._direction = direction;\n }\n\n private _direction: Direction;\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(disabled: boolean) {\n this._disabled = coerceBooleanProperty(disabled);\n }\n\n private _disabled: boolean = false;\n\n @Input()\n get useGhost(): boolean {\n return this._useGhost;\n }\n\n set useGhost(useGhost: boolean) {\n this._useGhost = coerceBooleanProperty(useGhost);\n }\n\n private _useGhost: boolean = false;\n\n @Input()\n get gutterSize(): number {\n return this._gutterSize;\n }\n\n set gutterSize(gutterSize: number) {\n const size = coerceNumberProperty(gutterSize);\n\n this._gutterSize = size > 0 ? size : this.gutterSize;\n }\n\n private _gutterSize: number = 6;\n\n get resizing(): boolean {\n return this._resizing;\n }\n\n private _resizing: boolean = false;\n\n constructor(\n public elementRef: ElementRef,\n public changeDetectorRef: ChangeDetectorRef,\n private ngZone: NgZone,\n private renderer: Renderer2\n ) {}\n\n addArea(area: KbqSplitterAreaDirective): void {\n this.areas.push(this.mapAndOrderArea(area, this.areas.length));\n this.changeDetectorRef.detectChanges();\n }\n\n ngOnInit(): void {\n if (!this.direction) {\n this.direction = Direction.Horizontal;\n }\n\n this.setStyle(StyleProperty.FlexDirection, this.isVertical() ? 'column' : 'row');\n }\n\n ngAfterContentInit() {\n this.areasChangeSubscription = this.areaRefs.changes.subscribe((data: QueryList<KbqSplitterAreaDirective>) => {\n this.areas = data.map(this.mapAndOrderArea);\n this.changeDetectorRef.markForCheck();\n });\n }\n\n ngOnDestroy() {\n this.areasChangeSubscription.unsubscribe();\n }\n\n onMouseDown(event: MouseEvent, leftAreaIndex: number, rightAreaIndex: number) {\n if (this.disabled) {\n return;\n }\n\n event.preventDefault();\n\n const startPoint: IPoint = {\n x: event.screenX,\n y: event.screenY\n };\n\n const leftArea = this.areas[leftAreaIndex];\n const rightArea = this.areas[rightAreaIndex];\n\n leftArea.initialSize = leftArea.area.getSize();\n rightArea.initialSize = rightArea.area.getSize();\n\n let currentGutter: KbqGutterDirective | undefined;\n\n if (this.useGhost) {\n const gutterOrder = leftAreaIndex * 2 + 1;\n\n currentGutter = this.gutters.find((gutter: KbqGutterDirective) => gutter.order === gutterOrder);\n\n if (currentGutter) {\n const gutterPosition = currentGutter.getPosition();\n\n this.ghost.direction = currentGutter.direction;\n this.ghost.size = currentGutter.size;\n this.ghost.x = gutterPosition.x;\n this.ghost.y = gutterPosition.y;\n\n this.ghost.visible = true;\n this.setStyle(\n StyleProperty.Cursor,\n currentGutter.direction === Direction.Vertical ? 'row-resize' : 'col-resize'\n );\n }\n } else {\n this.areas.forEach((item) => {\n const size = item.area.getSize();\n\n item.area.disableFlex();\n item.area.setSize(size);\n });\n }\n\n this.listeners.push(\n this.renderer.listen('document', 'mouseup', () => this.onMouseUp(leftArea, rightArea, currentGutter))\n );\n\n this.ngZone.runOutsideAngular(() => {\n this.listeners.push(\n this.renderer.listen('document', 'mousemove', (e: MouseEvent) =>\n this.onMouseMove(e, startPoint, leftArea, rightArea, currentGutter)\n )\n );\n });\n\n this._isDragging = true;\n }\n\n removeArea(area: KbqSplitterAreaDirective): void {\n let indexToRemove: number = -1;\n\n this.areas.some((item, index) => {\n if (item.area === area) {\n indexToRemove = index;\n\n return true;\n }\n\n return false;\n });\n\n if (indexToRemove === -1) {\n return;\n }\n\n this.areas.splice(indexToRemove, 1);\n }\n\n isVertical(): boolean {\n return this.direction === Direction.Vertical;\n }\n\n private mapAndOrderArea = (area: KbqSplitterAreaDirective, index: number): IArea => {\n const order = index * this.areaPositionDivider;\n\n area.setOrder(order);\n\n return {\n area,\n index,\n order,\n initialSize: area.getSize()\n };\n };\n\n private updateGutter(): void {\n this.gutters.forEach((gutter) => {\n if (gutter.dragged) {\n gutter.dragged = false;\n\n this.changeDetectorRef.detectChanges();\n }\n });\n }\n\n private onMouseMove(\n event: MouseEvent,\n startPoint: IPoint,\n leftArea: IArea,\n rightArea: IArea,\n currentGutter: KbqGutterDirective | undefined\n ) {\n if (!this.isDragging || this.disabled) {\n return;\n }\n\n const endPoint: IPoint = {\n x: event.screenX,\n y: event.screenY\n };\n\n const offset = this.isVertical() ? startPoint.y - endPoint.y : startPoint.x - endPoint.x;\n\n if (this.useGhost && currentGutter) {\n const gutterPosition = currentGutter.getPosition();\n const leftPos = leftArea.area.getPosition();\n const rightPos = rightArea.area.getPosition();\n const rightMin = rightArea.area.getMinSize() || 0;\n const leftMin = leftArea.area.getMinSize() || 0;\n\n const key = this.isVertical() ? 'y' : 'x';\n\n const minPos = leftPos[key] - leftMin;\n const maxPos = rightPos[key] + (rightArea.area.getSize() || 0) - rightMin - currentGutter.size;\n const newPos = gutterPosition[key] - offset;\n\n this.ghost[key] = newPos < minPos ? minPos : Math.min(newPos, maxPos);\n } else {\n this.resizeAreas(leftArea, rightArea, offset);\n }\n }\n\n private resizeAreas(leftArea: IArea, rightArea: IArea, sizeOffset: number): void {\n const newLeftAreaSize = leftArea.initialSize - sizeOffset;\n const newRightAreaSize = rightArea.initialSize + sizeOffset;\n\n const minLeftAreaSize = leftArea.area.getMinSize();\n const minRightAreaSize = rightArea.area.getMinSize();\n\n if (newLeftAreaSize < minLeftAreaSize || newRightAreaSize < minRightAreaSize) {\n return;\n } else if (newLeftAreaSize <= 0) {\n leftArea.area.setSize(0);\n rightArea.area.setSize(rightArea.initialSize + leftArea.initialSize);\n } else if (newRightAreaSize <= 0) {\n leftArea.area.setSize(rightArea.initialSize + leftArea.initialSize);\n rightArea.area.setSize(0);\n } else {\n leftArea.area.setSize(newLeftAreaSize);\n rightArea.area.setSize(newRightAreaSize);\n }\n }\n\n private onMouseUp(leftArea: IArea, rightArea: IArea, currentGutter: KbqGutterDirective | undefined) {\n while (this.listeners.length > 0) {\n const unsubscribe = this.listeners.pop();\n\n if (unsubscribe) {\n unsubscribe();\n }\n }\n\n if (this.useGhost && currentGutter) {\n const gutterPosition = currentGutter.getPosition();\n const offset =\n this.ghost.direction === Direction.Vertical\n ? gutterPosition.y - this.ghost.y\n : gutterPosition.x - this.ghost.x;\n\n this.resizeAreas(leftArea, rightArea, offset);\n this.ghost.visible = false;\n this.setStyle(StyleProperty.Cursor, 'unset');\n }\n\n this._isDragging = false;\n\n this.updateGutter();\n\n this.gutterPositionChange.emit();\n\n this.changeDetectorRef.markForCheck();\n }\n\n private setStyle(property: StyleProperty, value: string | number) {\n this.renderer.setStyle(this.elementRef.nativeElement, property, value);\n }\n}\n\n@Directive({\n selector: '[kbq-splitter-area]',\n host: {\n class: 'kbq-splitter-area',\n '[class.kbq-splitter-area_resizing]': 'isResizing()'\n }\n})\nexport class KbqSplitterAreaDirective implements AfterViewInit, OnDestroy {\n @Output() sizeChange: EventEmitter<number> = new EventEmitter<number>();\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n @Inject(forwardRef(() => KbqSplitterComponent)) private splitter: KbqSplitterComponent\n ) {}\n\n isResizing(): boolean {\n return this.splitter.isDragging;\n }\n\n disableFlex(): void {\n this.renderer.removeStyle(this.elementRef.nativeElement, 'flex');\n }\n\n ngAfterViewInit() {\n this.splitter.addArea(this);\n\n this.removeStyle(StyleProperty.MaxWidth);\n\n if (this.splitter.direction === Direction.Vertical) {\n this.setStyle(StyleProperty.Width, '100%');\n this.removeStyle(StyleProperty.Height);\n } else {\n this.setStyle(StyleProperty.Height, '100%');\n this.removeStyle(StyleProperty.Width);\n }\n\n this.splitter.gutterPositionChange.subscribe(this.emitSizeChange);\n }\n\n ngOnDestroy(): void {\n this.splitter.removeArea(this);\n }\n\n setOrder(order: number): void {\n this.setStyle(StyleProperty.Order, order);\n }\n\n setSize(size: number): void {\n if (isNaN(size)) {\n return;\n }\n\n this.setStyle(this.getSizeProperty(), coerceCssPixelValue(coerceNumberProperty(size)));\n }\n\n getSize(): number {\n return this.elementRef.nativeElement[this.getOffsetSizeProperty()];\n }\n\n getPosition(): IPoint {\n return {\n x: this.elementRef.nativeElement.offsetLeft,\n y: this.elementRef.nativeElement.offsetTop\n };\n }\n\n getMinSize(): number {\n const styles = getComputedStyle(this.elementRef.nativeElement);\n\n return parseFloat(styles[this.getMinSizeProperty()]);\n }\n\n private isVertical(): boolean {\n return this.splitter.direction === Direction.Vertical;\n }\n\n private getMinSizeProperty(): StyleProperty {\n return this.isVertical() ? StyleProperty.MinHeight : StyleProperty.MinWidth;\n }\n\n private getOffsetSizeProperty(): StyleProperty {\n return this.isVertical() ? StyleProperty.OffsetHeight : StyleProperty.OffsetWidth;\n }\n\n private getSizeProperty(): StyleProperty {\n return this.isVertical() ? StyleProperty.Height : StyleProperty.Width;\n }\n\n private setStyle(style: StyleProperty, value: string | number) {\n this.renderer.setStyle(this.elementRef.nativeElement, style, value);\n }\n\n private removeStyle(style: StyleProperty) {\n this.renderer.removeStyle(this.elementRef.nativeElement, style);\n }\n\n private emitSizeChange = () => {\n this.sizeChange.emit(this.getSize());\n };\n}\n","<ng-content />\n\n@for (area of areas; track area; let index = $index; let last = $last) {\n @if (last === false) {\n <kbq-gutter\n [attr.disabled]=\"disabled || null\"\n [direction]=\"direction\"\n [order]=\"index * 2 + 1\"\n [size]=\"gutterSize\"\n [style.display]=\"hideGutters ? 'none' : 'flex'\"\n (mousedown)=\"onMouseDown($event, index, index + 1)\"\n />\n }\n}\n\n@if (useGhost) {\n <kbq-gutter-ghost />\n}\n","import { NgModule } from '@angular/core';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport {\n KbqGutterDirective,\n KbqGutterGhostDirective,\n KbqSplitterAreaDirective,\n KbqSplitterComponent\n} from './splitter.component';\n\n@NgModule({\n imports: [\n KbqIconModule\n ],\n exports: [\n KbqGutterDirective,\n KbqSplitterAreaDirective,\n KbqSplitterComponent\n ],\n declarations: [\n KbqGutterDirective,\n KbqGutterGhostDirective,\n KbqSplitterAreaDirective,\n KbqSplitterComponent\n ]\n})\nexport class KbqSplitterModule {}\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-splitter.mjs","sources":["../../../packages/components/splitter/splitter.component.ts","../../../packages/components/splitter/splitter.component.html","../../../packages/components/splitter/splitter.module.ts","../../../packages/components/splitter/koobiq-components-splitter.ts"],"sourcesContent":["import { coerceBooleanProperty, coerceCssPixelValue, coerceNumberProperty } from '@angular/cdk/coercion';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n Renderer2,\n ViewChild,\n ViewChildren,\n ViewEncapsulation,\n forwardRef,\n inject\n} from '@angular/core';\nimport { KBQ_WINDOW } from '@koobiq/components/core';\nimport { Subscription } from 'rxjs';\n\ninterface IArea {\n area: KbqSplitterAreaDirective;\n index: number;\n order: number;\n initialSize: number;\n}\n\ninterface IPoint {\n x: number;\n y: number;\n}\n\nconst enum StyleProperty {\n Flex = 'flex',\n FlexBasis = 'flex-basis',\n FlexDirection = 'flex-direction',\n Height = 'height',\n MaxWidth = 'max-width',\n MinHeight = 'min-height',\n MinWidth = 'minWidth',\n OffsetHeight = 'offsetHeight',\n OffsetWidth = 'offsetWidth',\n Order = 'order',\n Width = 'width',\n Top = 'top',\n Left = 'left',\n Cursor = 'cursor'\n}\n\nexport enum Direction {\n Horizontal = 'horizontal',\n Vertical = 'vertical'\n}\n\n@Directive({\n selector: 'kbq-gutter',\n host: {\n class: 'kbq-gutter',\n '[class.kbq-gutter_vertical]': 'isVertical',\n '[class.kbq-gutter_dragged]': 'dragged',\n '(mousedown)': 'dragged = true'\n }\n})\nexport class KbqGutterDirective implements OnInit {\n @Input()\n get direction(): Direction {\n return this._direction;\n }\n\n set direction(direction: Direction) {\n this._direction = direction;\n }\n\n private _direction: Direction = Direction.Vertical;\n\n @Input()\n get order(): number {\n return this._order;\n }\n\n set order(order: number) {\n this._order = coerceNumberProperty(order);\n }\n\n private _order: number = 0;\n\n @Input()\n get size(): number {\n return this._size;\n }\n\n set size(size: number) {\n this._size = coerceNumberProperty(size);\n }\n\n private _size: number = 6;\n\n get isVertical(): boolean {\n return this._direction === Direction.Vertical;\n }\n\n dragged: boolean = false;\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2\n ) {}\n\n ngOnInit(): void {\n this.setStyle(StyleProperty.FlexBasis, coerceCssPixelValue(this.size));\n this.setStyle(this.isVertical ? StyleProperty.Height : StyleProperty.Width, coerceCssPixelValue(this.size));\n this.setStyle(StyleProperty.Order, this.order);\n\n if (!this.isVertical) {\n this.setStyle(StyleProperty.Height, '100%');\n }\n\n // fix IE issue with gutter icon. flex-direction is required for flex alignment options\n this.setStyle(StyleProperty.FlexDirection, this.isVertical ? 'row' : 'column');\n }\n\n getPosition(): IPoint {\n return {\n x: this.elementRef.nativeElement.offsetLeft,\n y: this.elementRef.nativeElement.offsetTop\n };\n }\n\n private setStyle(property: StyleProperty, value: string | number): void {\n this.renderer.setStyle(this.elementRef.nativeElement, property, value);\n }\n}\n\n@Directive({\n selector: 'kbq-gutter-ghost',\n host: {\n class: 'kbq-gutter-ghost',\n '[class.kbq-gutter-ghost_vertical]': 'isVertical',\n '[class.kbq-gutter-ghost_visible]': 'visible'\n }\n})\nexport class KbqGutterGhostDirective {\n @Input() visible: boolean;\n\n @Input()\n get x(): number {\n return this._x;\n }\n\n set x(x: number) {\n this._x = x;\n this.setStyle(StyleProperty.Left, coerceCssPixelValue(x));\n }\n\n private _x: number = 0;\n\n @Input()\n get y(): number {\n return this._y;\n }\n\n set y(y: number) {\n this._y = y;\n this.setStyle(StyleProperty.Top, coerceCssPixelValue(y));\n }\n\n private _y: number = 0;\n\n @Input()\n get direction(): Direction {\n return this._direction;\n }\n\n set direction(direction: Direction) {\n this._direction = direction;\n this.updateDimensions();\n }\n\n private _direction: Direction = Direction.Vertical;\n\n @Input()\n get size(): number {\n return this._size;\n }\n\n set size(size: number) {\n this._size = coerceNumberProperty(size);\n this.updateDimensions();\n }\n\n private _size: number = 6;\n\n get isVertical(): boolean {\n return this.direction === Direction.Vertical;\n }\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2\n ) {}\n\n private updateDimensions(): void {\n this.setStyle(this.isVertical ? StyleProperty.Width : StyleProperty.Height, '100%');\n this.setStyle(this.isVertical ? StyleProperty.Height : StyleProperty.Width, coerceCssPixelValue(this.size));\n }\n\n private setStyle(property: StyleProperty, value: string | number): void {\n this.renderer.setStyle(this.elementRef.nativeElement, property, value);\n }\n}\n\n@Component({\n selector: 'kbq-splitter',\n exportAs: 'kbqSplitter',\n host: {\n class: 'kbq-splitter'\n },\n preserveWhitespaces: false,\n styleUrls: ['splitter.scss'],\n templateUrl: './splitter.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqSplitterComponent implements OnInit, AfterContentInit, OnDestroy {\n @Output() gutterPositionChange: EventEmitter<void> = new EventEmitter<void>();\n\n areas: IArea[] = [];\n\n @ViewChildren(KbqGutterDirective) gutters: QueryList<KbqGutterDirective>;\n @ViewChild(KbqGutterGhostDirective) ghost: KbqGutterGhostDirective;\n\n @ContentChildren(forwardRef(() => KbqSplitterAreaDirective)) areaRefs: QueryList<KbqSplitterAreaDirective>;\n\n get isDragging(): boolean {\n return this._isDragging;\n }\n private _isDragging: boolean = false;\n\n private readonly areaPositionDivider: number = 2;\n private readonly listeners: (() => void)[] = [];\n\n private areasChangeSubscription: Subscription = Subscription.EMPTY;\n\n @Input()\n get hideGutters(): boolean {\n return this._hideGutters;\n }\n\n set hideGutters(value: boolean) {\n this._hideGutters = coerceBooleanProperty(value);\n }\n\n private _hideGutters: boolean = false;\n\n @Input()\n get direction(): Direction {\n return this._direction;\n }\n\n set direction(direction: Direction) {\n this._direction = direction;\n }\n\n private _direction: Direction;\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(disabled: boolean) {\n this._disabled = coerceBooleanProperty(disabled);\n }\n\n private _disabled: boolean = false;\n\n @Input()\n get useGhost(): boolean {\n return this._useGhost;\n }\n\n set useGhost(useGhost: boolean) {\n this._useGhost = coerceBooleanProperty(useGhost);\n }\n\n private _useGhost: boolean = false;\n\n @Input()\n get gutterSize(): number {\n return this._gutterSize;\n }\n\n set gutterSize(gutterSize: number) {\n const size = coerceNumberProperty(gutterSize);\n\n this._gutterSize = size > 0 ? size : this.gutterSize;\n }\n\n private _gutterSize: number = 6;\n\n get resizing(): boolean {\n return this._resizing;\n }\n\n private _resizing: boolean = false;\n\n constructor(\n public elementRef: ElementRef,\n public changeDetectorRef: ChangeDetectorRef,\n private ngZone: NgZone,\n private renderer: Renderer2\n ) {}\n\n addArea(area: KbqSplitterAreaDirective): void {\n this.areas.push(this.mapAndOrderArea(area, this.areas.length));\n this.changeDetectorRef.detectChanges();\n }\n\n ngOnInit(): void {\n if (!this.direction) {\n this.direction = Direction.Horizontal;\n }\n\n this.setStyle(StyleProperty.FlexDirection, this.isVertical() ? 'column' : 'row');\n }\n\n ngAfterContentInit() {\n this.areasChangeSubscription = this.areaRefs.changes.subscribe((data: QueryList<KbqSplitterAreaDirective>) => {\n this.areas = data.map(this.mapAndOrderArea);\n this.changeDetectorRef.markForCheck();\n });\n }\n\n ngOnDestroy() {\n this.areasChangeSubscription.unsubscribe();\n }\n\n onMouseDown(event: MouseEvent, leftAreaIndex: number, rightAreaIndex: number) {\n if (this.disabled) {\n return;\n }\n\n event.preventDefault();\n\n const startPoint: IPoint = {\n x: event.screenX,\n y: event.screenY\n };\n\n const leftArea = this.areas[leftAreaIndex];\n const rightArea = this.areas[rightAreaIndex];\n\n leftArea.initialSize = leftArea.area.getSize();\n rightArea.initialSize = rightArea.area.getSize();\n\n let currentGutter: KbqGutterDirective | undefined;\n\n if (this.useGhost) {\n const gutterOrder = leftAreaIndex * 2 + 1;\n\n currentGutter = this.gutters.find((gutter: KbqGutterDirective) => gutter.order === gutterOrder);\n\n if (currentGutter) {\n const gutterPosition = currentGutter.getPosition();\n\n this.ghost.direction = currentGutter.direction;\n this.ghost.size = currentGutter.size;\n this.ghost.x = gutterPosition.x;\n this.ghost.y = gutterPosition.y;\n\n this.ghost.visible = true;\n this.setStyle(\n StyleProperty.Cursor,\n currentGutter.direction === Direction.Vertical ? 'row-resize' : 'col-resize'\n );\n }\n } else {\n this.areas.forEach((item) => {\n const size = item.area.getSize();\n\n item.area.disableFlex();\n item.area.setSize(size);\n });\n }\n\n this.listeners.push(\n this.renderer.listen('document', 'mouseup', () => this.onMouseUp(leftArea, rightArea, currentGutter))\n );\n\n this.ngZone.runOutsideAngular(() => {\n this.listeners.push(\n this.renderer.listen('document', 'mousemove', (e: MouseEvent) =>\n this.onMouseMove(e, startPoint, leftArea, rightArea, currentGutter)\n )\n );\n });\n\n this._isDragging = true;\n }\n\n removeArea(area: KbqSplitterAreaDirective): void {\n let indexToRemove: number = -1;\n\n this.areas.some((item, index) => {\n if (item.area === area) {\n indexToRemove = index;\n\n return true;\n }\n\n return false;\n });\n\n if (indexToRemove === -1) {\n return;\n }\n\n this.areas.splice(indexToRemove, 1);\n }\n\n isVertical(): boolean {\n return this.direction === Direction.Vertical;\n }\n\n private mapAndOrderArea = (area: KbqSplitterAreaDirective, index: number): IArea => {\n const order = index * this.areaPositionDivider;\n\n area.setOrder(order);\n\n return {\n area,\n index,\n order,\n initialSize: area.getSize()\n };\n };\n\n private updateGutter(): void {\n this.gutters.forEach((gutter) => {\n if (gutter.dragged) {\n gutter.dragged = false;\n\n this.changeDetectorRef.detectChanges();\n }\n });\n }\n\n private onMouseMove(\n event: MouseEvent,\n startPoint: IPoint,\n leftArea: IArea,\n rightArea: IArea,\n currentGutter: KbqGutterDirective | undefined\n ) {\n if (!this.isDragging || this.disabled) {\n return;\n }\n\n const endPoint: IPoint = {\n x: event.screenX,\n y: event.screenY\n };\n\n const offset = this.isVertical() ? startPoint.y - endPoint.y : startPoint.x - endPoint.x;\n\n if (this.useGhost && currentGutter) {\n const gutterPosition = currentGutter.getPosition();\n const leftPos = leftArea.area.getPosition();\n const rightPos = rightArea.area.getPosition();\n const rightMin = rightArea.area.getMinSize() || 0;\n const leftMin = leftArea.area.getMinSize() || 0;\n\n const key = this.isVertical() ? 'y' : 'x';\n\n const minPos = leftPos[key] - leftMin;\n const maxPos = rightPos[key] + (rightArea.area.getSize() || 0) - rightMin - currentGutter.size;\n const newPos = gutterPosition[key] - offset;\n\n this.ghost[key] = newPos < minPos ? minPos : Math.min(newPos, maxPos);\n } else {\n this.resizeAreas(leftArea, rightArea, offset);\n }\n }\n\n private resizeAreas(leftArea: IArea, rightArea: IArea, sizeOffset: number): void {\n const newLeftAreaSize = leftArea.initialSize - sizeOffset;\n const newRightAreaSize = rightArea.initialSize + sizeOffset;\n\n const minLeftAreaSize = leftArea.area.getMinSize();\n const minRightAreaSize = rightArea.area.getMinSize();\n\n if (newLeftAreaSize < minLeftAreaSize || newRightAreaSize < minRightAreaSize) {\n return;\n } else if (newLeftAreaSize <= 0) {\n leftArea.area.setSize(0);\n rightArea.area.setSize(rightArea.initialSize + leftArea.initialSize);\n } else if (newRightAreaSize <= 0) {\n leftArea.area.setSize(rightArea.initialSize + leftArea.initialSize);\n rightArea.area.setSize(0);\n } else {\n leftArea.area.setSize(newLeftAreaSize);\n rightArea.area.setSize(newRightAreaSize);\n }\n }\n\n private onMouseUp(leftArea: IArea, rightArea: IArea, currentGutter: KbqGutterDirective | undefined) {\n while (this.listeners.length > 0) {\n const unsubscribe = this.listeners.pop();\n\n if (unsubscribe) {\n unsubscribe();\n }\n }\n\n if (this.useGhost && currentGutter) {\n const gutterPosition = currentGutter.getPosition();\n const offset =\n this.ghost.direction === Direction.Vertical\n ? gutterPosition.y - this.ghost.y\n : gutterPosition.x - this.ghost.x;\n\n this.resizeAreas(leftArea, rightArea, offset);\n this.ghost.visible = false;\n this.setStyle(StyleProperty.Cursor, 'unset');\n }\n\n this._isDragging = false;\n\n this.updateGutter();\n\n this.gutterPositionChange.emit();\n\n this.changeDetectorRef.markForCheck();\n }\n\n private setStyle(property: StyleProperty, value: string | number) {\n this.renderer.setStyle(this.elementRef.nativeElement, property, value);\n }\n}\n\n@Directive({\n selector: '[kbq-splitter-area]',\n host: {\n class: 'kbq-splitter-area',\n '[class.kbq-splitter-area_resizing]': 'isResizing()'\n }\n})\nexport class KbqSplitterAreaDirective implements AfterViewInit, OnDestroy {\n @Output() sizeChange: EventEmitter<number> = new EventEmitter<number>();\n\n private readonly window = inject(KBQ_WINDOW);\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n @Inject(forwardRef(() => KbqSplitterComponent)) private splitter: KbqSplitterComponent\n ) {}\n\n isResizing(): boolean {\n return this.splitter.isDragging;\n }\n\n disableFlex(): void {\n this.renderer.removeStyle(this.elementRef.nativeElement, 'flex');\n }\n\n ngAfterViewInit() {\n this.splitter.addArea(this);\n\n this.removeStyle(StyleProperty.MaxWidth);\n\n if (this.splitter.direction === Direction.Vertical) {\n this.setStyle(StyleProperty.Width, '100%');\n this.removeStyle(StyleProperty.Height);\n } else {\n this.setStyle(StyleProperty.Height, '100%');\n this.removeStyle(StyleProperty.Width);\n }\n\n this.splitter.gutterPositionChange.subscribe(this.emitSizeChange);\n }\n\n ngOnDestroy(): void {\n this.splitter.removeArea(this);\n }\n\n setOrder(order: number): void {\n this.setStyle(StyleProperty.Order, order);\n }\n\n setSize(size: number): void {\n if (isNaN(size)) {\n return;\n }\n\n this.setStyle(this.getSizeProperty(), coerceCssPixelValue(coerceNumberProperty(size)));\n }\n\n getSize(): number {\n return this.elementRef.nativeElement[this.getOffsetSizeProperty()];\n }\n\n getPosition(): IPoint {\n return {\n x: this.elementRef.nativeElement.offsetLeft,\n y: this.elementRef.nativeElement.offsetTop\n };\n }\n\n getMinSize(): number {\n const styles = this.window.getComputedStyle(this.elementRef.nativeElement);\n\n return parseFloat(styles[this.getMinSizeProperty()]);\n }\n\n private isVertical(): boolean {\n return this.splitter.direction === Direction.Vertical;\n }\n\n private getMinSizeProperty(): StyleProperty {\n return this.isVertical() ? StyleProperty.MinHeight : StyleProperty.MinWidth;\n }\n\n private getOffsetSizeProperty(): StyleProperty {\n return this.isVertical() ? StyleProperty.OffsetHeight : StyleProperty.OffsetWidth;\n }\n\n private getSizeProperty(): StyleProperty {\n return this.isVertical() ? StyleProperty.Height : StyleProperty.Width;\n }\n\n private setStyle(style: StyleProperty, value: string | number) {\n this.renderer.setStyle(this.elementRef.nativeElement, style, value);\n }\n\n private removeStyle(style: StyleProperty) {\n this.renderer.removeStyle(this.elementRef.nativeElement, style);\n }\n\n private emitSizeChange = () => {\n this.sizeChange.emit(this.getSize());\n };\n}\n","<ng-content />\n\n@for (area of areas; track area; let index = $index; let last = $last) {\n @if (last === false) {\n <kbq-gutter\n [attr.disabled]=\"disabled || null\"\n [direction]=\"direction\"\n [order]=\"index * 2 + 1\"\n [size]=\"gutterSize\"\n [style.display]=\"hideGutters ? 'none' : 'flex'\"\n (mousedown)=\"onMouseDown($event, index, index + 1)\"\n />\n }\n}\n\n@if (useGhost) {\n <kbq-gutter-ghost />\n}\n","import { NgModule } from '@angular/core';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport {\n KbqGutterDirective,\n KbqGutterGhostDirective,\n KbqSplitterAreaDirective,\n KbqSplitterComponent\n} from './splitter.component';\n\n@NgModule({\n imports: [\n KbqIconModule\n ],\n exports: [\n KbqGutterDirective,\n KbqSplitterAreaDirective,\n KbqSplitterComponent\n ],\n declarations: [\n KbqGutterDirective,\n KbqGutterGhostDirective,\n KbqSplitterAreaDirective,\n KbqSplitterComponent\n ]\n})\nexport class KbqSplitterModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}