@koobiq/components 16.0.0-beta.6 → 16.0.0-beta.8

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 (331) hide show
  1. package/autocomplete/autocomplete-trigger.directive.d.ts +5 -15
  2. package/button-toggle/_button-toggle-theme.scss +26 -45
  3. package/button-toggle/button-toggle.component.d.ts +2 -2
  4. package/button-toggle/button-toggle.scss +40 -87
  5. package/card/_card-theme.scss +1 -1
  6. package/checkbox/_checkbox-theme.scss +10 -2
  7. package/checkbox/checkbox.d.ts +1 -1
  8. package/code-block/README.md +14 -14
  9. package/code-block/_code-block-theme.scss +8 -0
  10. package/code-block/code-block.component.d.ts +1 -1
  11. package/core/animation/index.d.ts +1 -1
  12. package/core/animation/select-animations.d.ts +1 -1
  13. package/core/formatters/index.d.ts +1 -1
  14. package/core/formatters/number/formatter.d.ts +56 -1
  15. package/core/forms/forms.directive.d.ts +2 -2
  16. package/core/locales/en-US.d.ts +19 -1
  17. package/core/locales/es-LA.d.ts +27 -0
  18. package/core/locales/fa-IR.d.ts +28 -0
  19. package/core/locales/locale-service.d.ts +148 -3
  20. package/core/locales/pt-BR.d.ts +27 -0
  21. package/core/locales/ru-RU.d.ts +20 -1
  22. package/core/locales/zh-CN.d.ts +26 -0
  23. package/core/option/_optgroup-theme.scss +1 -1
  24. package/core/option/_option-theme.scss +2 -2
  25. package/core/option/action.d.ts +1 -1
  26. package/core/option/optgroup.d.ts +1 -1
  27. package/core/option/option.d.ts +37 -8
  28. package/core/option/option.scss +4 -4
  29. package/core/overlay/overlay-position-map.d.ts +7 -1
  30. package/core/pop-up/constants.d.ts +2 -1
  31. package/core/public-api.d.ts +1 -0
  32. package/core/select/constants.d.ts +2 -2
  33. package/core/services/theme.service.d.ts +23 -0
  34. package/core/styles/_koobiq-theme.scss +6 -0
  35. package/core/styles/_variables.scss +1 -0
  36. package/core/styles/common/_animation.scss +10 -6
  37. package/core/styles/common/_overlay.scss +1 -1
  38. package/core/styles/common/_select.scss +79 -65
  39. package/core/styles/theming/_components-theming.scss +205 -23
  40. package/core/styles/theming/_theming.scss +2 -2
  41. package/datepicker/_datepicker-theme.scss +43 -57
  42. package/datepicker/calendar-body.component.d.ts +1 -1
  43. package/datepicker/calendar-body.scss +11 -26
  44. package/datepicker/calendar-header.component.d.ts +9 -3
  45. package/datepicker/calendar-header.scss +7 -31
  46. package/datepicker/calendar.component.d.ts +4 -5
  47. package/datepicker/calendar.scss +20 -25
  48. package/datepicker/datepicker-animations.d.ts +1 -1
  49. package/datepicker/datepicker-content.scss +17 -10
  50. package/datepicker/datepicker-input.directive.d.ts +4 -4
  51. package/datepicker/datepicker-input.scss +1 -1
  52. package/datepicker/datepicker-toggle.component.d.ts +3 -3
  53. package/datepicker/datepicker.component.d.ts +2 -2
  54. package/datepicker/month-view.component.d.ts +5 -6
  55. package/dl/_dl-theme.scss +2 -56
  56. package/dl/dl.component.d.ts +1 -2
  57. package/dl/dl.scss +10 -47
  58. package/dropdown/_dropdown-theme.scss +2 -2
  59. package/dropdown/dropdown-animations.d.ts +1 -1
  60. package/dropdown/dropdown-content.directive.d.ts +1 -1
  61. package/dropdown/dropdown-item.component.d.ts +1 -1
  62. package/dropdown/dropdown-item.scss +1 -1
  63. package/dropdown/dropdown-trigger.directive.d.ts +2 -2
  64. package/dropdown/dropdown.component.d.ts +1 -1
  65. package/dropdown/dropdown.types.d.ts +1 -1
  66. package/esm2022/alert/alert.component.mjs +2 -2
  67. package/esm2022/autocomplete/autocomplete-trigger.directive.mjs +27 -24
  68. package/esm2022/button/button.component.mjs +3 -2
  69. package/esm2022/button-toggle/button-toggle.component.mjs +15 -15
  70. package/esm2022/checkbox/checkbox.mjs +3 -3
  71. package/esm2022/code-block/actionbar.component.mjs +1 -1
  72. package/esm2022/code-block/code-block.component.mjs +3 -3
  73. package/esm2022/core/animation/index.mjs +2 -2
  74. package/esm2022/core/animation/select-animations.mjs +4 -4
  75. package/esm2022/core/formatters/index.mjs +10 -2
  76. package/esm2022/core/formatters/number/formatter.mjs +224 -3
  77. package/esm2022/core/forms/forms.directive.mjs +5 -5
  78. package/esm2022/core/locales/en-US.mjs +22 -4
  79. package/esm2022/core/locales/es-LA.mjs +31 -2
  80. package/esm2022/core/locales/fa-IR.mjs +30 -2
  81. package/esm2022/core/locales/locale-service.mjs +4 -4
  82. package/esm2022/core/locales/pt-BR.mjs +29 -2
  83. package/esm2022/core/locales/ru-RU.mjs +23 -2
  84. package/esm2022/core/locales/zh-CN.mjs +28 -2
  85. package/esm2022/core/option/action.mjs +3 -3
  86. package/esm2022/core/option/optgroup.mjs +3 -3
  87. package/esm2022/core/option/option.mjs +47 -10
  88. package/esm2022/core/overlay/overlay-position-map.mjs +7 -1
  89. package/esm2022/core/pop-up/constants.mjs +2 -1
  90. package/esm2022/core/pop-up/pop-up-trigger.mjs +12 -3
  91. package/esm2022/core/public-api.mjs +2 -1
  92. package/esm2022/core/select/constants.mjs +3 -3
  93. package/esm2022/core/services/theme.service.mjs +60 -0
  94. package/esm2022/core/version.mjs +2 -2
  95. package/esm2022/datepicker/calendar-body.component.mjs +7 -5
  96. package/esm2022/datepicker/calendar-header.component.mjs +9 -8
  97. package/esm2022/datepicker/calendar.component.mjs +8 -17
  98. package/esm2022/datepicker/datepicker-animations.mjs +2 -2
  99. package/esm2022/datepicker/datepicker-input.directive.mjs +29 -20
  100. package/esm2022/datepicker/datepicker-toggle.component.mjs +6 -6
  101. package/esm2022/datepicker/datepicker.component.mjs +12 -12
  102. package/esm2022/datepicker/month-view.component.mjs +9 -18
  103. package/esm2022/dl/dl.component.mjs +3 -7
  104. package/esm2022/dropdown/dropdown-animations.mjs +4 -4
  105. package/esm2022/dropdown/dropdown-content.directive.mjs +3 -3
  106. package/esm2022/dropdown/dropdown-errors.mjs +6 -6
  107. package/esm2022/dropdown/dropdown-item.component.mjs +5 -5
  108. package/esm2022/dropdown/dropdown-trigger.directive.mjs +10 -9
  109. package/esm2022/dropdown/dropdown.component.mjs +8 -8
  110. package/esm2022/dropdown/dropdown.types.mjs +1 -1
  111. package/esm2022/file-upload/file-drop.mjs +4 -4
  112. package/esm2022/file-upload/multiple-file-upload.component.mjs +13 -9
  113. package/esm2022/file-upload/single-file-upload.component.mjs +16 -13
  114. package/esm2022/form-field/cleaner.mjs +3 -3
  115. package/esm2022/form-field/form-field.mjs +7 -7
  116. package/esm2022/form-field/hint.mjs +4 -4
  117. package/esm2022/form-field/password-hint.mjs +11 -11
  118. package/esm2022/form-field/password-toggle.mjs +21 -8
  119. package/esm2022/form-field/suffix.mjs +3 -3
  120. package/esm2022/form-field/validate.directive.mjs +4 -4
  121. package/esm2022/input/input-number.mjs +259 -43
  122. package/esm2022/link/link.component.mjs +3 -3
  123. package/esm2022/list/list-selection.component.mjs +8 -8
  124. package/esm2022/list/list.component.mjs +2 -2
  125. package/esm2022/loader-overlay/loader-overlay.component.mjs +2 -2
  126. package/esm2022/modal/modal-control.service.mjs +5 -5
  127. package/esm2022/modal/modal-ref.class.mjs +1 -1
  128. package/esm2022/modal/modal.component.mjs +124 -111
  129. package/esm2022/modal/modal.service.mjs +23 -23
  130. package/esm2022/modal/modal.type.mjs +1 -3
  131. package/esm2022/navbar/navbar-item.component.mjs +6 -6
  132. package/esm2022/navbar/navbar.component.mjs +18 -9
  133. package/esm2022/navbar/vertical-navbar.component.mjs +9 -6
  134. package/esm2022/popover/popover-animations.mjs +2 -2
  135. package/esm2022/popover/popover-confirm.component.mjs +9 -9
  136. package/esm2022/popover/popover.component.mjs +24 -24
  137. package/esm2022/radio/radio.component.mjs +10 -8
  138. package/esm2022/select/select-option.directive.mjs +15 -3
  139. package/esm2022/select/select.component.mjs +37 -21
  140. package/esm2022/sidebar/sidebar-animations.mjs +2 -2
  141. package/esm2022/sidebar/sidebar.component.mjs +9 -9
  142. package/esm2022/sidepanel/sidepanel-container.component.mjs +3 -3
  143. package/esm2022/sidepanel/sidepanel-directives.mjs +2 -2
  144. package/esm2022/splitter/splitter.component.mjs +3 -3
  145. package/esm2022/table/table.component.mjs +3 -3
  146. package/esm2022/tabs/tab-body.component.mjs +7 -7
  147. package/esm2022/tabs/tab-content.directive.mjs +3 -3
  148. package/esm2022/tabs/tab-group.component.mjs +3 -3
  149. package/esm2022/tabs/tab-nav-bar/tab-nav-bar.mjs +6 -6
  150. package/esm2022/tabs/tab.component.mjs +14 -5
  151. package/esm2022/tabs/tabs-animations.mjs +2 -2
  152. package/esm2022/tags/tag-input.mjs +3 -3
  153. package/esm2022/tags/tag-list.component.mjs +5 -5
  154. package/esm2022/tags/tag.component.mjs +10 -10
  155. package/esm2022/timepicker/timepicker.directive.mjs +10 -10
  156. package/esm2022/timezone/timezone-option.component.mjs +4 -4
  157. package/esm2022/timezone/timezone-select.component.mjs +5 -5
  158. package/esm2022/title/title.directive.mjs +5 -5
  159. package/esm2022/toast/toast.module.mjs +10 -4
  160. package/esm2022/toggle/toggle.component.mjs +4 -4
  161. package/esm2022/tooltip/tooltip.component.mjs +18 -17
  162. package/esm2022/tree/control/base-tree-control.mjs +1 -1
  163. package/esm2022/tree/control/flat-tree-control.mjs +4 -4
  164. package/esm2022/tree/control/tree-control.mjs +1 -1
  165. package/esm2022/tree/node.mjs +5 -5
  166. package/esm2022/tree/outlet.mjs +3 -3
  167. package/esm2022/tree/padding.directive.mjs +7 -7
  168. package/esm2022/tree/toggle.mjs +9 -11
  169. package/esm2022/tree/tree-base.mjs +3 -3
  170. package/esm2022/tree/tree-option.component.mjs +8 -5
  171. package/esm2022/tree/tree-selection.component.mjs +8 -6
  172. package/esm2022/tree/tree.mjs +3 -3
  173. package/esm2022/tree-select/tree-select.component.mjs +14 -15
  174. package/fesm2022/koobiq-components-alert.mjs +2 -2
  175. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  176. package/fesm2022/koobiq-components-autocomplete.mjs +27 -24
  177. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  178. package/fesm2022/koobiq-components-button-toggle.mjs +14 -14
  179. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  180. package/fesm2022/koobiq-components-button.mjs +2 -1
  181. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  182. package/fesm2022/koobiq-components-checkbox.mjs +2 -2
  183. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  184. package/fesm2022/koobiq-components-code-block.mjs +3 -3
  185. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  186. package/fesm2022/koobiq-components-core.mjs +526 -39
  187. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  188. package/fesm2022/koobiq-components-datepicker.mjs +72 -78
  189. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  190. package/fesm2022/koobiq-components-dl.mjs +2 -6
  191. package/fesm2022/koobiq-components-dl.mjs.map +1 -1
  192. package/fesm2022/koobiq-components-dropdown.mjs +30 -29
  193. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  194. package/fesm2022/koobiq-components-file-upload.mjs +26 -19
  195. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  196. package/fesm2022/koobiq-components-form-field.mjs +46 -34
  197. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  198. package/fesm2022/koobiq-components-input.mjs +257 -43
  199. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  200. package/fesm2022/koobiq-components-link.mjs +2 -2
  201. package/fesm2022/koobiq-components-link.mjs.map +1 -1
  202. package/fesm2022/koobiq-components-list.mjs +9 -9
  203. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  204. package/fesm2022/koobiq-components-loader-overlay.mjs +2 -2
  205. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  206. package/fesm2022/koobiq-components-modal.mjs +149 -140
  207. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  208. package/fesm2022/koobiq-components-navbar.mjs +28 -20
  209. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  210. package/fesm2022/koobiq-components-popover.mjs +31 -31
  211. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  212. package/fesm2022/koobiq-components-radio.mjs +9 -7
  213. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  214. package/fesm2022/koobiq-components-select.mjs +50 -22
  215. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  216. package/fesm2022/koobiq-components-sidebar.mjs +8 -8
  217. package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
  218. package/fesm2022/koobiq-components-sidepanel.mjs +3 -3
  219. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  220. package/fesm2022/koobiq-components-splitter.mjs +2 -2
  221. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  222. package/fesm2022/koobiq-components-table.mjs +2 -2
  223. package/fesm2022/koobiq-components-table.mjs.map +1 -1
  224. package/fesm2022/koobiq-components-tabs.mjs +29 -20
  225. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  226. package/fesm2022/koobiq-components-tags.mjs +15 -15
  227. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  228. package/fesm2022/koobiq-components-timepicker.mjs +9 -9
  229. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  230. package/fesm2022/koobiq-components-timezone.mjs +7 -7
  231. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  232. package/fesm2022/koobiq-components-title.mjs +4 -4
  233. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  234. package/fesm2022/koobiq-components-toast.mjs +8 -2
  235. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  236. package/fesm2022/koobiq-components-toggle.mjs +3 -3
  237. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  238. package/fesm2022/koobiq-components-tooltip.mjs +17 -16
  239. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  240. package/fesm2022/koobiq-components-tree-select.mjs +13 -14
  241. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  242. package/fesm2022/koobiq-components-tree.mjs +42 -38
  243. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  244. package/file-upload/_file-upload-theme.scss +54 -40
  245. package/file-upload/file-drop.d.ts +1 -1
  246. package/file-upload/file-upload.scss +2 -9
  247. package/file-upload/multiple-file-upload.component.d.ts +4 -3
  248. package/file-upload/multiple-file-upload.component.scss +170 -59
  249. package/file-upload/single-file-upload.component.d.ts +4 -3
  250. package/file-upload/single-file-upload.component.scss +42 -22
  251. package/form-field/_hint-theme.scss +1 -1
  252. package/form-field/cleaner.d.ts +1 -1
  253. package/form-field/form-field.d.ts +2 -2
  254. package/form-field/form-field.scss +2 -2
  255. package/form-field/hint.d.ts +1 -1
  256. package/form-field/password-hint.d.ts +2 -1
  257. package/form-field/password-toggle.d.ts +11 -6
  258. package/form-field/suffix.d.ts +1 -1
  259. package/form-field/validate.directive.d.ts +1 -1
  260. package/icon/_icon-theme.scss +12 -22
  261. package/input/input-number.d.ts +61 -10
  262. package/link/_link-theme.scss +6 -2
  263. package/link/link.component.d.ts +1 -1
  264. package/list/_list-theme.scss +2 -2
  265. package/list/list-selection.component.d.ts +1 -1
  266. package/list/list.scss +1 -5
  267. package/loader-overlay/loader-overlay.scss +3 -0
  268. package/markdown/_markdown-theme.scss +2 -2
  269. package/modal/README.md +5 -5
  270. package/modal/_modal-theme.scss +10 -18
  271. package/modal/modal-ref.class.d.ts +2 -2
  272. package/modal/modal.component.d.ts +51 -47
  273. package/modal/modal.scss +0 -1
  274. package/modal/modal.type.d.ts +35 -36
  275. package/navbar/_navbar-theme.scss +1 -1
  276. package/navbar/navbar-item.component.d.ts +2 -2
  277. package/navbar/navbar.component.d.ts +5 -2
  278. package/navbar/vertical-navbar.component.d.ts +4 -2
  279. package/package.json +28 -30
  280. package/popover/README.md +14 -14
  281. package/popover/_popover-theme.scss +15 -78
  282. package/popover/popover-animations.d.ts +1 -1
  283. package/popover/popover-confirm.component.d.ts +1 -1
  284. package/popover/popover.component.d.ts +3 -3
  285. package/popover/popover.scss +60 -50
  286. package/prebuilt-themes/dark-theme.css +1 -1
  287. package/prebuilt-themes/light-theme.css +1 -1
  288. package/radio/_radio-theme.scss +17 -4
  289. package/radio/radio.component.d.ts +2 -2
  290. package/radio/radio.scss +13 -0
  291. package/select/_select-theme.scss +1 -1
  292. package/select/select-option.directive.d.ts +2 -0
  293. package/select/select.component.d.ts +14 -11
  294. package/sidebar/sidebar-animations.d.ts +1 -1
  295. package/sidebar/sidebar.component.d.ts +3 -3
  296. package/sidepanel/_sidepanel-theme.scss +5 -0
  297. package/splitter/splitter.component.d.ts +1 -1
  298. package/table/_table-theme.scss +1 -1
  299. package/table/table.component.d.ts +1 -1
  300. package/tabs/tab-body.component.d.ts +1 -1
  301. package/tabs/tab-content.directive.d.ts +1 -1
  302. package/tabs/tab-nav-bar/tab-nav-bar.d.ts +2 -2
  303. package/tabs/tab.component.d.ts +1 -1
  304. package/tabs/tabs-animations.d.ts +1 -1
  305. package/tags/_tag-theme.scss +1 -1
  306. package/tags/tag-input.d.ts +2 -2
  307. package/tags/tag-list.component.d.ts +2 -2
  308. package/tags/tag-list.scss +2 -0
  309. package/tags/tag.component.d.ts +3 -3
  310. package/timepicker/timepicker.directive.d.ts +2 -2
  311. package/timezone/timezone-option.component.d.ts +1 -1
  312. package/timezone/timezone-select.component.d.ts +1 -1
  313. package/title/title.directive.d.ts +1 -1
  314. package/toggle/_toggle-theme.scss +9 -1
  315. package/toggle/toggle.component.d.ts +1 -1
  316. package/toggle/toggle.scss +5 -2
  317. package/tooltip/tooltip.component.d.ts +3 -3
  318. package/tree/_tree-theme.scss +2 -2
  319. package/tree/control/base-tree-control.d.ts +1 -1
  320. package/tree/control/tree-control.d.ts +1 -1
  321. package/tree/node.d.ts +1 -1
  322. package/tree/outlet.d.ts +1 -1
  323. package/tree/padding.directive.d.ts +1 -1
  324. package/tree/toggle.d.ts +3 -3
  325. package/tree/tree-base.d.ts +1 -1
  326. package/tree/tree-option.component.d.ts +1 -1
  327. package/tree/tree-option.scss +2 -0
  328. package/tree/tree-selection.component.d.ts +1 -1
  329. package/tree/tree.d.ts +1 -1
  330. package/tree-select/_tree-select-theme.scss +1 -1
  331. package/tree-select/tree-select.component.d.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-sidebar.mjs","sources":["../../../packages/components/sidebar/sidebar-animations.ts","../../../packages/components/sidebar/sidebar.component.ts","../../../packages/components/sidebar/sidebar.component.html","../../../packages/components/sidebar/sidebar.module.ts","../../../packages/components/sidebar/koobiq-components-sidebar.ts"],"sourcesContent":["import { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\n\n\nexport enum KbqSidebarAnimationState {\n Opened = 'opened',\n Closed = 'closed'\n}\n\nexport const mcSidebarAnimations: { readonly sidebarState: AnimationTriggerMetadata } = {\n sidebarState: trigger('state', [\n state(\n 'opened',\n style({\n minWidth: '{{ openedStateMinWidth }}',\n width: '{{ openedStateWidth }}',\n maxWidth: '{{ openedStateMaxWidth }}'\n }),\n { params: { openedStateMinWidth: '', openedStateWidth: '', openedStateMaxWidth: '' }}\n ),\n state(\n 'closed',\n style({\n minWidth: '{{ closedStateWidth }}',\n width: '{{ closedStateWidth }}',\n maxWidth: '{{ closedStateWidth }}'\n }),\n { params: { closedStateWidth: '' }}\n ),\n transition('opened => closed', [animate('0.1s')]),\n transition('closed => opened', [animate('0.2s')])\n ])\n};\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Directive, ElementRef,\n EventEmitter,\n Input,\n NgZone,\n OnDestroy, OnInit,\n Output,\n ViewEncapsulation\n} from '@angular/core';\nimport { isControl, isInput, isLeftBracket, isRightBracket } from '@koobiq/cdk/keycodes';\n\nimport { mcSidebarAnimations, KbqSidebarAnimationState } from './sidebar-animations';\n\n\nexport enum SidebarPositions {\n Left = 'left',\n Right = 'right'\n}\n\n// tslint:disable-next-line:naming-convention\ninterface KbqSidebarParams {\n openedStateMinWidth: string;\n openedStateWidth: string;\n openedStateMaxWidth: string;\n\n closedStateWidth: string;\n}\n\n\n@Directive({\n selector: '[kbq-sidebar-opened]',\n exportAs: 'mcSidebarOpened'\n})\nexport class KbqSidebarOpened {\n @Input() minWidth: string;\n @Input() width: string;\n @Input() maxWidth: string;\n}\n\n@Directive({\n selector: '[kbq-sidebar-closed]',\n exportAs: 'mcSidebarClosed'\n})\nexport class KbqSidebarClosed {\n @Input() width: string;\n}\n\n\n@Component({\n selector: 'kbq-sidebar',\n exportAs: 'mcSidebar',\n templateUrl: 'sidebar.component.html',\n styleUrls: ['./sidebar.scss'],\n host: {\n class: 'kbq-sidebar',\n '[@state]': `{\n value: animationState,\n params: params\n }`,\n '(@state.start)': 'onAnimationStart()',\n '(@state.done)': 'onAnimationDone()'\n },\n animations: [mcSidebarAnimations.sidebarState],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqSidebar implements OnDestroy, OnInit, AfterContentInit {\n @Input()\n get opened(): boolean {\n return this._opened;\n }\n\n set opened(value: boolean) {\n if (this._opened) {\n this.saveWidth();\n }\n\n this._opened = value;\n }\n private _opened: boolean = true;\n\n @Input() position: SidebarPositions;\n\n params: KbqSidebarParams = {\n openedStateWidth: 'inherit',\n openedStateMinWidth: 'inherit',\n openedStateMaxWidth: 'inherit',\n\n closedStateWidth: '32px'\n };\n\n @Output() readonly stateChanged: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n @ContentChild(KbqSidebarOpened, { static: false }) openedContent: KbqSidebarOpened;\n\n @ContentChild(KbqSidebarClosed, { static: false }) closedContent: KbqSidebarClosed;\n\n get animationState(): KbqSidebarAnimationState {\n return this._opened ? KbqSidebarAnimationState.Opened : KbqSidebarAnimationState.Closed;\n }\n\n internalState: boolean = true;\n\n private documentKeydownListener: (event: KeyboardEvent) => void;\n\n constructor(private ngZone: NgZone, private elementRef: ElementRef) {}\n\n ngOnInit(): void {\n if (this.position === SidebarPositions.Left || this.position === SidebarPositions.Right) {\n this.registerKeydownListener();\n }\n }\n\n ngOnDestroy(): void {\n if (this.position === SidebarPositions.Left || this.position === SidebarPositions.Right) {\n this.unRegisterKeydownListener();\n }\n }\n\n toggle(): void {\n this.opened = !this.opened;\n }\n\n onAnimationStart() {\n if (this._opened) {\n this.internalState = this._opened;\n }\n }\n\n onAnimationDone() {\n this.internalState = this._opened;\n\n this.stateChanged.emit(this._opened);\n }\n\n ngAfterContentInit(): void {\n this.params = {\n openedStateWidth: this.openedContent.width || 'inherit',\n openedStateMinWidth: this.openedContent.minWidth || 'inherit',\n openedStateMaxWidth: this.openedContent.maxWidth || 'inherit',\n\n closedStateWidth: this.closedContent.width || '32px'\n };\n }\n\n private registerKeydownListener(): void {\n this.documentKeydownListener = (event) => {\n if (isControl(event) || isInput(event)) { return; }\n\n if (\n (this.position === SidebarPositions.Left && isLeftBracket(event)) ||\n (this.position === SidebarPositions.Right && isRightBracket(event))\n ) {\n this.ngZone.run(() => this._opened = !this._opened);\n }\n };\n\n this.ngZone.runOutsideAngular(() => {\n // tslint:disable-next-line: no-unbound-method\n document.addEventListener('keypress', this.documentKeydownListener, true);\n });\n }\n\n private unRegisterKeydownListener(): void {\n // tslint:disable-next-line: no-unbound-method\n document.removeEventListener('keypress', this.documentKeydownListener, true);\n }\n\n private saveWidth() {\n this.params.openedStateWidth = `${this.elementRef.nativeElement.offsetWidth}px`;\n }\n}\n","<ng-container [ngSwitch]=\"internalState\">\n <ng-container *ngSwitchCase=\"true\">\n <ng-content select=\"[kbq-sidebar-opened]\"></ng-content>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"false\">\n <ng-content select=\"[kbq-sidebar-closed]\"></ng-content>\n </ng-container>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { KbqSidebar, KbqSidebarClosed, KbqSidebarOpened } from './sidebar.component';\n\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n KbqSidebarClosed,\n KbqSidebarOpened,\n KbqSidebar\n ],\n exports: [\n KbqSidebarClosed,\n KbqSidebarOpened,\n KbqSidebar\n ]\n})\nexport class KbqSidebarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"koobiq-components-sidebar.mjs","sources":["../../../packages/components/sidebar/sidebar-animations.ts","../../../packages/components/sidebar/sidebar.component.ts","../../../packages/components/sidebar/sidebar.component.html","../../../packages/components/sidebar/sidebar.module.ts","../../../packages/components/sidebar/koobiq-components-sidebar.ts"],"sourcesContent":["import { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\n\n\nexport enum KbqSidebarAnimationState {\n Opened = 'opened',\n Closed = 'closed'\n}\n\nexport const kbqSidebarAnimations: { readonly sidebarState: AnimationTriggerMetadata } = {\n sidebarState: trigger('state', [\n state(\n 'opened',\n style({\n minWidth: '{{ openedStateMinWidth }}',\n width: '{{ openedStateWidth }}',\n maxWidth: '{{ openedStateMaxWidth }}'\n }),\n { params: { openedStateMinWidth: '', openedStateWidth: '', openedStateMaxWidth: '' }}\n ),\n state(\n 'closed',\n style({\n minWidth: '{{ closedStateWidth }}',\n width: '{{ closedStateWidth }}',\n maxWidth: '{{ closedStateWidth }}'\n }),\n { params: { closedStateWidth: '' }}\n ),\n transition('opened => closed', [animate('0.1s')]),\n transition('closed => opened', [animate('0.2s')])\n ])\n};\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Directive, ElementRef,\n EventEmitter,\n Input,\n NgZone,\n OnDestroy, OnInit,\n Output,\n ViewEncapsulation\n} from '@angular/core';\nimport { isControl, isInput, isLeftBracket, isRightBracket } from '@koobiq/cdk/keycodes';\n\nimport { kbqSidebarAnimations, KbqSidebarAnimationState } from './sidebar-animations';\n\n\nexport enum SidebarPositions {\n Left = 'left',\n Right = 'right'\n}\n\n// tslint:disable-next-line:naming-convention\ninterface KbqSidebarParams {\n openedStateMinWidth: string;\n openedStateWidth: string;\n openedStateMaxWidth: string;\n\n closedStateWidth: string;\n}\n\n\n@Directive({\n selector: '[kbq-sidebar-opened]',\n exportAs: 'kbqSidebarOpened'\n})\nexport class KbqSidebarOpened {\n @Input() minWidth: string;\n @Input() width: string;\n @Input() maxWidth: string;\n}\n\n@Directive({\n selector: '[kbq-sidebar-closed]',\n exportAs: 'kbqSidebarClosed'\n})\nexport class KbqSidebarClosed {\n @Input() width: string;\n}\n\n\n@Component({\n selector: 'kbq-sidebar',\n exportAs: 'kbqSidebar',\n templateUrl: 'sidebar.component.html',\n styleUrls: ['./sidebar.scss'],\n host: {\n class: 'kbq-sidebar',\n '[@state]': `{\n value: animationState,\n params: params\n }`,\n '(@state.start)': 'onAnimationStart()',\n '(@state.done)': 'onAnimationDone()'\n },\n animations: [kbqSidebarAnimations.sidebarState],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqSidebar implements OnDestroy, OnInit, AfterContentInit {\n @Input()\n get opened(): boolean {\n return this._opened;\n }\n\n set opened(value: boolean) {\n if (this._opened) {\n this.saveWidth();\n }\n\n this._opened = value;\n }\n private _opened: boolean = true;\n\n @Input() position: SidebarPositions;\n\n params: KbqSidebarParams = {\n openedStateWidth: 'inherit',\n openedStateMinWidth: 'inherit',\n openedStateMaxWidth: 'inherit',\n\n closedStateWidth: '32px'\n };\n\n @Output() readonly stateChanged: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n @ContentChild(KbqSidebarOpened, { static: false }) openedContent: KbqSidebarOpened;\n\n @ContentChild(KbqSidebarClosed, { static: false }) closedContent: KbqSidebarClosed;\n\n get animationState(): KbqSidebarAnimationState {\n return this._opened ? KbqSidebarAnimationState.Opened : KbqSidebarAnimationState.Closed;\n }\n\n internalState: boolean = true;\n\n private documentKeydownListener: (event: KeyboardEvent) => void;\n\n constructor(private ngZone: NgZone, private elementRef: ElementRef) {}\n\n ngOnInit(): void {\n if (this.position === SidebarPositions.Left || this.position === SidebarPositions.Right) {\n this.registerKeydownListener();\n }\n }\n\n ngOnDestroy(): void {\n if (this.position === SidebarPositions.Left || this.position === SidebarPositions.Right) {\n this.unRegisterKeydownListener();\n }\n }\n\n toggle(): void {\n this.opened = !this.opened;\n }\n\n onAnimationStart() {\n if (this._opened) {\n this.internalState = this._opened;\n }\n }\n\n onAnimationDone() {\n this.internalState = this._opened;\n\n this.stateChanged.emit(this._opened);\n }\n\n ngAfterContentInit(): void {\n this.params = {\n openedStateWidth: this.openedContent.width || 'inherit',\n openedStateMinWidth: this.openedContent.minWidth || 'inherit',\n openedStateMaxWidth: this.openedContent.maxWidth || 'inherit',\n\n closedStateWidth: this.closedContent.width || '32px'\n };\n }\n\n private registerKeydownListener(): void {\n this.documentKeydownListener = (event) => {\n if (isControl(event) || isInput(event)) { return; }\n\n if (\n (this.position === SidebarPositions.Left && isLeftBracket(event)) ||\n (this.position === SidebarPositions.Right && isRightBracket(event))\n ) {\n this.ngZone.run(() => this._opened = !this._opened);\n }\n };\n\n this.ngZone.runOutsideAngular(() => {\n // tslint:disable-next-line: no-unbound-method\n document.addEventListener('keypress', this.documentKeydownListener, true);\n });\n }\n\n private unRegisterKeydownListener(): void {\n // tslint:disable-next-line: no-unbound-method\n document.removeEventListener('keypress', this.documentKeydownListener, true);\n }\n\n private saveWidth() {\n this.params.openedStateWidth = `${this.elementRef.nativeElement.offsetWidth}px`;\n }\n}\n","<ng-container [ngSwitch]=\"internalState\">\n <ng-container *ngSwitchCase=\"true\">\n <ng-content select=\"[kbq-sidebar-opened]\"></ng-content>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"false\">\n <ng-content select=\"[kbq-sidebar-closed]\"></ng-content>\n </ng-container>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { KbqSidebar, KbqSidebarClosed, KbqSidebarOpened } from './sidebar.component';\n\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n KbqSidebarClosed,\n KbqSidebarOpened,\n KbqSidebar\n ],\n exports: [\n KbqSidebarClosed,\n KbqSidebarOpened,\n KbqSidebar\n ]\n})\nexport class KbqSidebarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -196,7 +196,7 @@ class KbqSidepanelContainerComponent extends BasePortalOutlet {
196
196
  }
197
197
  }
198
198
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", 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 }); }
199
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", 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\n <div *ngIf=\"withIndent\" class=\"kbq-sidepanel-indent\" (click)=\"exit()\"></div>\n\n <div class=\"kbq-sidepanel-content\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <ng-template cdkPortalOutlet></ng-template>\n </div>\n</div>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:29px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,rgba(0,0,0,.05) 10px,transparent 10px,transparent 20px,rgba(0,0,0,.05) 20px,rgba(0,0,0,.05) 30px,transparent 30px) repeat;background-size:29px 29px;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-button-size-border-width, 2px))}.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-button-size-border-radius, 8px)}.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-button-size-border-radius, 8px)}.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-button-size-border-width, 2px))}.kbq-no-select{-webkit-touch-callout:none;-webkit-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}.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, 400px);max-width:var(--kbq-sidepanel-size-small-width, 400px)}.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, 640px);max-width:var(--kbq-sidepanel-size-medium-width, 640px)}.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, 960px);max-width:var(--kbq-sidepanel-size-large-width, 960px)}.kbq-sidepanel-container.kbq-sidepanel-container_left .kbq-sidepanel-indent,.kbq-sidepanel-container.kbq-sidepanel-container_right .kbq-sidepanel-indent{width:16px;height:100%}.kbq-sidepanel-container_right{right:0;transform:translate(100%)}.kbq-sidepanel-container_right .kbq-sidepanel-wrapper{flex-direction:row}.kbq-sidepanel-container_left{left:0;transform:translate(-100%)}.kbq-sidepanel-container_left .kbq-sidepanel-wrapper{flex-direction:row-reverse}.kbq-sidepanel-container_top{top:0;transform:translateY(-100%)}.kbq-sidepanel-container_top .kbq-sidepanel-wrapper{flex-direction:column-reverse}.kbq-sidepanel-container_bottom{bottom:0;transform:translateY(100%)}.kbq-sidepanel-container_bottom .kbq-sidepanel-wrapper{flex-direction:column}.kbq-sidepanel-wrapper{display:flex;flex:1;min-height:0;width:100%}.kbq-sidepanel-indent{display:flex;flex:0 0 auto}.kbq-sidepanel-content{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0;width:100%}.kbq-sidepanel-header{display:flex;align-items:center;justify-content:space-between;flex-flow:row nowrap;flex:0 0 auto;padding:var(--kbq-sidepanel-size-header-padding-vertical, 16px) var(--kbq-sidepanel-size-header-padding-right, 12px) var(--kbq-sidepanel-size-header-padding-vertical, 16px) var(--kbq-sidepanel-size-header-padding-left, 32px)}.kbq-sidepanel-header .kbq-sidepanel-close{margin-left:var(--kbq-sidepanel-size-close-button-margin-left, 8px)}.kbq-sidepanel-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-sidepanel-body{overflow-y:auto;display:flex;flex:1;flex-direction:column;min-height:0;padding-right:var(--kbq-sidepanel-size-content-padding-horizontal, 32px);padding-left:var(--kbq-sidepanel-size-content-padding-horizontal, 32px);padding-bottom:var(--kbq-sidepanel-size-content-padding-bottom, 24px)}.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, 8px) var(--kbq-sidepanel-size-footer-padding-horizontal, 32px) var(--kbq-sidepanel-size-footer-padding-bottom, 32px)}.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, 16px)}.kbq-sidepanel-footer .kbq-sidepanel-actions[align=left]{justify-content:start}.kbq-sidepanel-footer .kbq-sidepanel-actions[align=right]{justify-content:flex-end}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "directive", type: i4.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], animations: [mcSidepanelAnimations.sidepanelState], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
199
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", 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\n <div *ngIf=\"withIndent\" class=\"kbq-sidepanel-indent\" (click)=\"exit()\"></div>\n\n <div class=\"kbq-sidepanel-content\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <ng-template cdkPortalOutlet></ng-template>\n </div>\n</div>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:29px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,rgba(0,0,0,.04) 10px,rgba(255,255,255,.04) 10px,rgba(255,255,255,.04) 20px,rgba(0,0,0,.04) 20px,rgba(0,0,0,.04) 30px,rgba(255,255,255,.04) 31px) 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-button-size-border-width, 2px))}.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-button-size-border-radius, 8px)}.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-button-size-border-radius, 8px)}.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-button-size-border-width, 2px))}.kbq-no-select{-webkit-touch-callout:none;-webkit-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}.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, 400px);max-width:var(--kbq-sidepanel-size-small-width, 400px)}.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, 640px);max-width:var(--kbq-sidepanel-size-medium-width, 640px)}.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, 960px);max-width:var(--kbq-sidepanel-size-large-width, 960px)}.kbq-sidepanel-container.kbq-sidepanel-container_left .kbq-sidepanel-indent,.kbq-sidepanel-container.kbq-sidepanel-container_right .kbq-sidepanel-indent{width:16px;height:100%}.kbq-sidepanel-container_right{right:0;transform:translate(100%)}.kbq-sidepanel-container_right .kbq-sidepanel-wrapper{flex-direction:row}.kbq-sidepanel-container_left{left:0;transform:translate(-100%)}.kbq-sidepanel-container_left .kbq-sidepanel-wrapper{flex-direction:row-reverse}.kbq-sidepanel-container_top{top:0;transform:translateY(-100%)}.kbq-sidepanel-container_top .kbq-sidepanel-wrapper{flex-direction:column-reverse}.kbq-sidepanel-container_bottom{bottom:0;transform:translateY(100%)}.kbq-sidepanel-container_bottom .kbq-sidepanel-wrapper{flex-direction:column}.kbq-sidepanel-wrapper{display:flex;flex:1;min-height:0;width:100%}.kbq-sidepanel-indent{display:flex;flex:0 0 auto}.kbq-sidepanel-content{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0;width:100%}.kbq-sidepanel-header{display:flex;align-items:center;justify-content:space-between;flex-flow:row nowrap;flex:0 0 auto;padding:var(--kbq-sidepanel-size-header-padding-vertical, 16px) var(--kbq-sidepanel-size-header-padding-right, 12px) var(--kbq-sidepanel-size-header-padding-vertical, 16px) var(--kbq-sidepanel-size-header-padding-left, 32px)}.kbq-sidepanel-header .kbq-sidepanel-close{margin-left:var(--kbq-sidepanel-size-close-button-margin-left, 8px)}.kbq-sidepanel-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-sidepanel-body{overflow-y:auto;display:flex;flex:1;flex-direction:column;min-height:0;padding-right:var(--kbq-sidepanel-size-content-padding-horizontal, 32px);padding-left:var(--kbq-sidepanel-size-content-padding-horizontal, 32px);padding-bottom:var(--kbq-sidepanel-size-content-padding-bottom, 24px)}.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, 8px) var(--kbq-sidepanel-size-footer-padding-horizontal, 32px) var(--kbq-sidepanel-size-footer-padding-bottom, 32px)}.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, 16px)}.kbq-sidepanel-footer .kbq-sidepanel-actions[align=left]{justify-content:start}.kbq-sidepanel-footer .kbq-sidepanel-actions[align=right]{justify-content:flex-end}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "directive", type: i4.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], animations: [mcSidepanelAnimations.sidepanelState], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
200
200
  }
201
201
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqSidepanelContainerComponent, decorators: [{
202
202
  type: Component,
@@ -213,7 +213,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
213
213
  }`,
214
214
  '(@state.start)': 'onAnimation($event)',
215
215
  '(@state.done)': 'onAnimation($event)'
216
- }, template: "<div class=\"kbq-sidepanel-wrapper\">\n\n <div *ngIf=\"withIndent\" class=\"kbq-sidepanel-indent\" (click)=\"exit()\"></div>\n\n <div class=\"kbq-sidepanel-content\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <ng-template cdkPortalOutlet></ng-template>\n </div>\n</div>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:29px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,rgba(0,0,0,.05) 10px,transparent 10px,transparent 20px,rgba(0,0,0,.05) 20px,rgba(0,0,0,.05) 30px,transparent 30px) repeat;background-size:29px 29px;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-button-size-border-width, 2px))}.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-button-size-border-radius, 8px)}.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-button-size-border-radius, 8px)}.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-button-size-border-width, 2px))}.kbq-no-select{-webkit-touch-callout:none;-webkit-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}.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, 400px);max-width:var(--kbq-sidepanel-size-small-width, 400px)}.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, 640px);max-width:var(--kbq-sidepanel-size-medium-width, 640px)}.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, 960px);max-width:var(--kbq-sidepanel-size-large-width, 960px)}.kbq-sidepanel-container.kbq-sidepanel-container_left .kbq-sidepanel-indent,.kbq-sidepanel-container.kbq-sidepanel-container_right .kbq-sidepanel-indent{width:16px;height:100%}.kbq-sidepanel-container_right{right:0;transform:translate(100%)}.kbq-sidepanel-container_right .kbq-sidepanel-wrapper{flex-direction:row}.kbq-sidepanel-container_left{left:0;transform:translate(-100%)}.kbq-sidepanel-container_left .kbq-sidepanel-wrapper{flex-direction:row-reverse}.kbq-sidepanel-container_top{top:0;transform:translateY(-100%)}.kbq-sidepanel-container_top .kbq-sidepanel-wrapper{flex-direction:column-reverse}.kbq-sidepanel-container_bottom{bottom:0;transform:translateY(100%)}.kbq-sidepanel-container_bottom .kbq-sidepanel-wrapper{flex-direction:column}.kbq-sidepanel-wrapper{display:flex;flex:1;min-height:0;width:100%}.kbq-sidepanel-indent{display:flex;flex:0 0 auto}.kbq-sidepanel-content{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0;width:100%}.kbq-sidepanel-header{display:flex;align-items:center;justify-content:space-between;flex-flow:row nowrap;flex:0 0 auto;padding:var(--kbq-sidepanel-size-header-padding-vertical, 16px) var(--kbq-sidepanel-size-header-padding-right, 12px) var(--kbq-sidepanel-size-header-padding-vertical, 16px) var(--kbq-sidepanel-size-header-padding-left, 32px)}.kbq-sidepanel-header .kbq-sidepanel-close{margin-left:var(--kbq-sidepanel-size-close-button-margin-left, 8px)}.kbq-sidepanel-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-sidepanel-body{overflow-y:auto;display:flex;flex:1;flex-direction:column;min-height:0;padding-right:var(--kbq-sidepanel-size-content-padding-horizontal, 32px);padding-left:var(--kbq-sidepanel-size-content-padding-horizontal, 32px);padding-bottom:var(--kbq-sidepanel-size-content-padding-bottom, 24px)}.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, 8px) var(--kbq-sidepanel-size-footer-padding-horizontal, 32px) var(--kbq-sidepanel-size-footer-padding-bottom, 32px)}.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, 16px)}.kbq-sidepanel-footer .kbq-sidepanel-actions[align=left]{justify-content:start}.kbq-sidepanel-footer .kbq-sidepanel-actions[align=right]{justify-content:flex-end}\n"] }]
216
+ }, template: "<div class=\"kbq-sidepanel-wrapper\">\n\n <div *ngIf=\"withIndent\" class=\"kbq-sidepanel-indent\" (click)=\"exit()\"></div>\n\n <div class=\"kbq-sidepanel-content\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <ng-template cdkPortalOutlet></ng-template>\n </div>\n</div>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:29px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,rgba(0,0,0,.04) 10px,rgba(255,255,255,.04) 10px,rgba(255,255,255,.04) 20px,rgba(0,0,0,.04) 20px,rgba(0,0,0,.04) 30px,rgba(255,255,255,.04) 31px) 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-button-size-border-width, 2px))}.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-button-size-border-radius, 8px)}.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-button-size-border-radius, 8px)}.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-button-size-border-width, 2px))}.kbq-no-select{-webkit-touch-callout:none;-webkit-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}.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, 400px);max-width:var(--kbq-sidepanel-size-small-width, 400px)}.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, 640px);max-width:var(--kbq-sidepanel-size-medium-width, 640px)}.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, 960px);max-width:var(--kbq-sidepanel-size-large-width, 960px)}.kbq-sidepanel-container.kbq-sidepanel-container_left .kbq-sidepanel-indent,.kbq-sidepanel-container.kbq-sidepanel-container_right .kbq-sidepanel-indent{width:16px;height:100%}.kbq-sidepanel-container_right{right:0;transform:translate(100%)}.kbq-sidepanel-container_right .kbq-sidepanel-wrapper{flex-direction:row}.kbq-sidepanel-container_left{left:0;transform:translate(-100%)}.kbq-sidepanel-container_left .kbq-sidepanel-wrapper{flex-direction:row-reverse}.kbq-sidepanel-container_top{top:0;transform:translateY(-100%)}.kbq-sidepanel-container_top .kbq-sidepanel-wrapper{flex-direction:column-reverse}.kbq-sidepanel-container_bottom{bottom:0;transform:translateY(100%)}.kbq-sidepanel-container_bottom .kbq-sidepanel-wrapper{flex-direction:column}.kbq-sidepanel-wrapper{display:flex;flex:1;min-height:0;width:100%}.kbq-sidepanel-indent{display:flex;flex:0 0 auto}.kbq-sidepanel-content{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0;width:100%}.kbq-sidepanel-header{display:flex;align-items:center;justify-content:space-between;flex-flow:row nowrap;flex:0 0 auto;padding:var(--kbq-sidepanel-size-header-padding-vertical, 16px) var(--kbq-sidepanel-size-header-padding-right, 12px) var(--kbq-sidepanel-size-header-padding-vertical, 16px) var(--kbq-sidepanel-size-header-padding-left, 32px)}.kbq-sidepanel-header .kbq-sidepanel-close{margin-left:var(--kbq-sidepanel-size-close-button-margin-left, 8px)}.kbq-sidepanel-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-sidepanel-body{overflow-y:auto;display:flex;flex:1;flex-direction:column;min-height:0;padding-right:var(--kbq-sidepanel-size-content-padding-horizontal, 32px);padding-left:var(--kbq-sidepanel-size-content-padding-horizontal, 32px);padding-bottom:var(--kbq-sidepanel-size-content-padding-bottom, 24px)}.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, 8px) var(--kbq-sidepanel-size-footer-padding-horizontal, 32px) var(--kbq-sidepanel-size-footer-padding-bottom, 32px)}.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, 16px)}.kbq-sidepanel-footer .kbq-sidepanel-actions[align=left]{justify-content:start}.kbq-sidepanel-footer .kbq-sidepanel-actions[align=right]{justify-content:flex-end}\n"] }]
217
217
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: KbqSidepanelConfig }, { type: undefined, decorators: [{
218
218
  type: Inject,
219
219
  args: [KBQ_SIDEPANEL_WITH_INDENT]
@@ -453,7 +453,7 @@ class KbqSidepanelHeader {
453
453
  [kbqStyle]="'transparent'">
454
454
  <i kbq-icon="mc-close-L_16" [color]="'contrast'"></i>
455
455
  </button>
456
- `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4$1.KbqButton, selector: "[kbq-button]", inputs: ["color", "tabIndex", "kbqStyle", "disabled"] }, { kind: "directive", type: i4$1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "component", type: i5.KbqIcon, selector: "[kbq-icon]", inputs: ["color", "small", "autoColor"] }, { kind: "directive", type: i6.KbqTitleDirective, selector: "[kbq-title]", exportAs: ["mcTitle"] }, { kind: "directive", type: KbqSidepanelClose, selector: "button[kbq-sidepanel-close], button[mcSidepanelClose]", inputs: ["kbq-sidepanel-close", "mcSidepanelClose"] }] }); }
456
+ `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4$1.KbqButton, selector: "[kbq-button]", inputs: ["color", "tabIndex", "kbqStyle", "disabled"] }, { kind: "directive", type: i4$1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "component", type: i5.KbqIcon, selector: "[kbq-icon]", inputs: ["color", "small", "autoColor"] }, { kind: "directive", type: i6.KbqTitleDirective, selector: "[kbq-title]", exportAs: ["kbqTitle"] }, { kind: "directive", type: KbqSidepanelClose, selector: "button[kbq-sidepanel-close], button[mcSidepanelClose]", inputs: ["kbq-sidepanel-close", "mcSidepanelClose"] }] }); }
457
457
  }
458
458
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqSidepanelHeader, decorators: [{
459
459
  type: Component,
@@ -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-ref.ts","../../../packages/components/sidepanel/sidepanel-container.component.ts","../../../packages/components/sidepanel/sidepanel-container.component.html","../../../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\n/** Injection token that can be used to access the data that was passed in to a sidepanel. */\nexport const KBQ_SIDEPANEL_DATA = new InjectionToken<any>('KbqSidepanelData');\n\nexport enum KbqSidepanelPosition {\n Right = 'right',\n Left = 'left',\n Top = 'top',\n Bottom = 'bottom'\n}\n\nexport enum KbqSidepanelSize {\n Small = 'small',\n Medium = 'medium',\n Large = 'large'\n}\n\nexport class KbqSidepanelConfig<D = any> {\n /** ID for the sidepanel. If omitted, a unique one will be generated. */\n id?: string;\n\n /** Data being injected into the child component. */\n data?: D | null = null;\n\n position?: KbqSidepanelPosition = KbqSidepanelPosition.Right;\n\n size?: KbqSidepanelSize = KbqSidepanelSize.Medium;\n\n /** Whether the sidepanel has a backdrop. */\n hasBackdrop?: boolean = true;\n\n backdropClass?: string;\n\n /** When we open multiple sidepanels, backdrop appears only once, except cases then this flag is true. */\n requiredBackdrop?: boolean = false;\n\n /** Whether the user can use escape or clicking outside to close the sidepanel. */\n disableClose?: boolean = false;\n\n /** Custom class for the overlay pane. */\n overlayPanelClass?: string | string[] = '';\n}\n","import { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\nimport { AnimationCurves } from '@koobiq/components/core';\n\nimport { KbqSidepanelPosition } from './sidepanel-config';\n\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.\"\n// tslint:disable-next-line\nexport const mcSidepanelTransformAnimation: 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 mcSidepanelAnimations: { readonly sidepanelState: AnimationTriggerMetadata } = {\n sidepanelState: trigger('state', [\n state(\n 'hidden',\n style({ transform: '{{transformIn}}' }),\n { params: { transformIn: mcSidepanelTransformAnimation[KbqSidepanelPosition.Right].in }}\n ),\n state(\n 'visible',\n style({ transform: '{{transformOut}}' }),\n { params: { transformOut: mcSidepanelTransformAnimation[KbqSidepanelPosition.Right].out }}\n ),\n transition(\n 'visible => void, visible => hidden',\n animate(`200ms ${AnimationCurves.AccelerationCurve}`)\n ),\n transition(\n 'void => visible',\n animate(`200ms ${AnimationCurves.DecelerationCurve}`)\n )\n ])\n};\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';\n\nimport { KbqSidepanelAnimationState } from './sidepanel-animations';\nimport { KbqSidepanelConfig } from './sidepanel-config';\nimport { KbqSidepanelContainerComponent } from './sidepanel-container.component';\n\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.pipe(\n filter(\n (event) => event.phaseName === 'done' && event.toState === KbqSidepanelAnimationState.Visible\n ),\n take(1)\n ).subscribe(() => {\n this.afterOpened$.next();\n this.afterOpened$.complete();\n });\n\n // Dispose overlay when closing animation is complete\n containerInstance.animationStateChanged.pipe(\n filter(\n (event) => event.phaseName === 'done' && event.toState === KbqSidepanelAnimationState.Hidden\n ),\n take(1)\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 // tslint:disable:deprecation\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.pipe(\n filter((event) => event.phaseName === 'done'),\n take(1)\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 { 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';\n\nimport {\n mcSidepanelAnimations,\n KbqSidepanelAnimationState,\n mcSidepanelTransformAnimation\n} from './sidepanel-animations';\nimport { KbqSidepanelConfig, KbqSidepanelPosition } from './sidepanel-config';\n\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'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n animations: [mcSidepanelAnimations.sidepanelState],\n host: {\n class: 'kbq-sidepanel-container',\n '[class]': 'size',\n '[class.kbq-sidepanel_nested]': 'withIndent',\n '[class.kbq-sidepanel-container_shadowed]': 'withShadow',\n '[attr.id]': 'id',\n '[attr.tabindex]': '-1',\n '[@state]': `{\n value: animationState,\n params: animationTransform\n }`,\n '(@state.start)': 'onAnimation($event)',\n '(@state.done)': 'onAnimation($event)'\n }\n})\nexport class KbqSidepanelContainerComponent extends BasePortalOutlet implements OnDestroy {\n /** ID for the container DOM element. */\n id: string;\n\n /** The portal outlet inside of this container into which the content will be loaded. */\n @ViewChild(CdkPortalOutlet, { static: true }) portalOutlet: CdkPortalOutlet;\n\n /** The state of the sidepanel animations. */\n animationState: KbqSidepanelAnimationState = KbqSidepanelAnimationState.Void;\n\n animationTransform: { transformIn: string; transformOut: string };\n\n /** Emits whenever the state of the animation changes. */\n animationStateChanged = new EventEmitter<AnimationEvent>();\n\n get size(): string {\n return `kbq-sidepanel_${this.sidepanelConfig.size}`;\n }\n\n /** Whether the component has been destroyed. */\n private destroyed: boolean;\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private changeDetectorRef: ChangeDetectorRef,\n public sidepanelConfig: KbqSidepanelConfig,\n @Inject(KBQ_SIDEPANEL_WITH_INDENT) public withIndent: boolean,\n @Inject(KBQ_SIDEPANEL_WITH_SHADOW) public withShadow: boolean\n ) {\n super();\n }\n\n ngOnDestroy(): void {\n this.destroyed = true;\n }\n\n /** Attach a component portal as content to this sidepanel container. */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n this.validatePortalAttached();\n this.setAnimation();\n this.setPanelClass();\n\n return this.portalOutlet.attachComponentPortal(portal);\n }\n\n /** Attach a template portal as content to this sidepanel container. */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n this.validatePortalAttached();\n this.setAnimation();\n this.setPanelClass();\n\n return this.portalOutlet.attachTemplatePortal(portal);\n }\n\n /** Begin animation of the sidepanel entrance into view. */\n enter(): void {\n if (this.destroyed) { return; }\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) { return; }\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: mcSidepanelTransformAnimation[position].in,\n transformOut: mcSidepanelTransformAnimation[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\n <div *ngIf=\"withIndent\" class=\"kbq-sidepanel-indent\" (click)=\"exit()\"></div>\n\n <div class=\"kbq-sidepanel-content\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <ng-template cdkPortalOutlet></ng-template>\n </div>\n</div>\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';\n\nimport { KBQ_SIDEPANEL_DATA, KbqSidepanelConfig } from './sidepanel-config';\nimport {\n KbqSidepanelContainerComponent,\n KBQ_SIDEPANEL_WITH_INDENT,\n KBQ_SIDEPANEL_WITH_SHADOW\n} from './sidepanel-container.component';\nimport { KbqSidepanelRef } from './sidepanel-ref';\n\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>, config?: KbqSidepanelConfig<D>\n ): KbqSidepanelRef<T> {\n const fullConfig = {\n ...(this.defaultOptions || new KbqSidepanelConfig()),\n ...config\n };\n\n if (fullConfig.id && this.getSidepanelById(fullConfig.id)) {\n throw Error(`Sidepanel with id \"${fullConfig.id}\" exists already. The sidepanel id must be unique.`);\n }\n\n const overlayRef = this.createOverlay(fullConfig);\n overlayRef.hostElement.classList.add('kbq-sidepanel-overlay');\n const container = this.attachContainer(overlayRef, fullConfig);\n const ref = new KbqSidepanelRef(container, overlayRef, fullConfig);\n\n if (componentOrTemplateRef instanceof TemplateRef) {\n container.attachTemplatePortal(\n new TemplatePortal<T>(\n componentOrTemplateRef,\n null!,\n {\n $implicit: fullConfig.data,\n sidepanelRef: ref\n } as any\n )\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()\n .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 // tslint:disable-next-line:no-magic-numbers\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\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\n .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\n .some((sidepanelRef) => sidepanelRef.config.hasBackdrop!);\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 Component,\n Directive,\n ElementRef,\n Input,\n OnChanges,\n OnInit,\n Optional,\n SimpleChanges\n} from '@angular/core';\n\nimport { KbqSidepanelRef } from './sidepanel-ref';\nimport { KbqSidepanelService } from './sidepanel.service';\n\n\n/**\n * Button that will close the current sidepanel.\n */\n@Directive({\n selector: 'button[kbq-sidepanel-close], button[mcSidepanelClose]',\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('mcSidepanelClose') mcSidepanelClose: 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.mcSidepanelClose || 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></ng-content>\n </div>\n\n <button *ngIf=\"closeable\"\n kbq-button\n kbq-sidepanel-close\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\">\n <i kbq-icon=\"mc-close-L_16\" [color]=\"'contrast'\"></i>\n </button>\n `,\n host: {\n class: 'kbq-sidepanel-header'\n }\n})\nexport class KbqSidepanelHeader {\n @Input() closeable: boolean;\n}\n\n/**\n * Scrollable content container of a sidepanel.\n */\n@Directive({\n selector: 'kbq-sidepanel-body, [kbq-sidepanel-body], mcSidepanelBody',\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], mcSidepanelFooter',\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], mcSidepanelActions',\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 ?\n openSidepanels.find((sidepanel) => sidepanel.id === parent!.id) :\n null;\n}\n","import { A11yModule, ConfigurableFocusTrapFactory, FocusTrapFactory } from '@angular/cdk/a11y';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\nimport { PortalModule } from '@angular/cdk/portal';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { KbqButtonModule } from '@koobiq/components/button';\r\nimport { KbqCommonModule } from '@koobiq/components/core';\r\nimport { KbqIconModule } from '@koobiq/components/icon';\r\nimport { KbqTitleModule } from '@koobiq/components/title';\r\n\r\nimport { KbqSidepanelContainerComponent } from './sidepanel-container.component';\r\nimport {\r\n KbqSidepanelActions,\r\n KbqSidepanelBody,\r\n KbqSidepanelClose,\r\n KbqSidepanelFooter,\r\n KbqSidepanelHeader\r\n} from './sidepanel-directives';\r\nimport { KbqSidepanelService } from './sidepanel.service';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n OverlayModule,\r\n PortalModule,\r\n KbqCommonModule,\r\n KbqButtonModule,\r\n KbqIconModule,\r\n KbqTitleModule,\r\n A11yModule\r\n ],\r\n providers: [\r\n KbqSidepanelService,\r\n { provide: FocusTrapFactory, useClass: ConfigurableFocusTrapFactory }\r\n ],\r\n declarations: [\r\n KbqSidepanelContainerComponent,\r\n KbqSidepanelClose,\r\n KbqSidepanelHeader,\r\n KbqSidepanelBody,\r\n KbqSidepanelFooter,\r\n KbqSidepanelActions\r\n ],\r\n exports: [\r\n KbqSidepanelContainerComponent,\r\n KbqSidepanelClose,\r\n KbqSidepanelHeader,\r\n KbqSidepanelBody,\r\n KbqSidepanelFooter,\r\n KbqSidepanelActions\r\n ]\r\n})\r\nexport class KbqSidepanelModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.KbqSidepanelConfig","i1.KbqSidepanelRef","i2.KbqSidepanelService","i3","i4"],"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-ref.ts","../../../packages/components/sidepanel/sidepanel-container.component.ts","../../../packages/components/sidepanel/sidepanel-container.component.html","../../../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\n/** Injection token that can be used to access the data that was passed in to a sidepanel. */\nexport const KBQ_SIDEPANEL_DATA = new InjectionToken<any>('KbqSidepanelData');\n\nexport enum KbqSidepanelPosition {\n Right = 'right',\n Left = 'left',\n Top = 'top',\n Bottom = 'bottom'\n}\n\nexport enum KbqSidepanelSize {\n Small = 'small',\n Medium = 'medium',\n Large = 'large'\n}\n\nexport class KbqSidepanelConfig<D = any> {\n /** ID for the sidepanel. If omitted, a unique one will be generated. */\n id?: string;\n\n /** Data being injected into the child component. */\n data?: D | null = null;\n\n position?: KbqSidepanelPosition = KbqSidepanelPosition.Right;\n\n size?: KbqSidepanelSize = KbqSidepanelSize.Medium;\n\n /** Whether the sidepanel has a backdrop. */\n hasBackdrop?: boolean = true;\n\n backdropClass?: string;\n\n /** When we open multiple sidepanels, backdrop appears only once, except cases then this flag is true. */\n requiredBackdrop?: boolean = false;\n\n /** Whether the user can use escape or clicking outside to close the sidepanel. */\n disableClose?: boolean = false;\n\n /** Custom class for the overlay pane. */\n overlayPanelClass?: string | string[] = '';\n}\n","import { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\nimport { AnimationCurves } from '@koobiq/components/core';\n\nimport { KbqSidepanelPosition } from './sidepanel-config';\n\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.\"\n// tslint:disable-next-line\nexport const mcSidepanelTransformAnimation: 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 mcSidepanelAnimations: { readonly sidepanelState: AnimationTriggerMetadata } = {\n sidepanelState: trigger('state', [\n state(\n 'hidden',\n style({ transform: '{{transformIn}}' }),\n { params: { transformIn: mcSidepanelTransformAnimation[KbqSidepanelPosition.Right].in }}\n ),\n state(\n 'visible',\n style({ transform: '{{transformOut}}' }),\n { params: { transformOut: mcSidepanelTransformAnimation[KbqSidepanelPosition.Right].out }}\n ),\n transition(\n 'visible => void, visible => hidden',\n animate(`200ms ${AnimationCurves.AccelerationCurve}`)\n ),\n transition(\n 'void => visible',\n animate(`200ms ${AnimationCurves.DecelerationCurve}`)\n )\n ])\n};\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';\n\nimport { KbqSidepanelAnimationState } from './sidepanel-animations';\nimport { KbqSidepanelConfig } from './sidepanel-config';\nimport { KbqSidepanelContainerComponent } from './sidepanel-container.component';\n\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.pipe(\n filter(\n (event) => event.phaseName === 'done' && event.toState === KbqSidepanelAnimationState.Visible\n ),\n take(1)\n ).subscribe(() => {\n this.afterOpened$.next();\n this.afterOpened$.complete();\n });\n\n // Dispose overlay when closing animation is complete\n containerInstance.animationStateChanged.pipe(\n filter(\n (event) => event.phaseName === 'done' && event.toState === KbqSidepanelAnimationState.Hidden\n ),\n take(1)\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 // tslint:disable:deprecation\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.pipe(\n filter((event) => event.phaseName === 'done'),\n take(1)\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 { 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';\n\nimport {\n mcSidepanelAnimations,\n KbqSidepanelAnimationState,\n mcSidepanelTransformAnimation\n} from './sidepanel-animations';\nimport { KbqSidepanelConfig, KbqSidepanelPosition } from './sidepanel-config';\n\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'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n animations: [mcSidepanelAnimations.sidepanelState],\n host: {\n class: 'kbq-sidepanel-container',\n '[class]': 'size',\n '[class.kbq-sidepanel_nested]': 'withIndent',\n '[class.kbq-sidepanel-container_shadowed]': 'withShadow',\n '[attr.id]': 'id',\n '[attr.tabindex]': '-1',\n '[@state]': `{\n value: animationState,\n params: animationTransform\n }`,\n '(@state.start)': 'onAnimation($event)',\n '(@state.done)': 'onAnimation($event)'\n }\n})\nexport class KbqSidepanelContainerComponent extends BasePortalOutlet implements OnDestroy {\n /** ID for the container DOM element. */\n id: string;\n\n /** The portal outlet inside of this container into which the content will be loaded. */\n @ViewChild(CdkPortalOutlet, { static: true }) portalOutlet: CdkPortalOutlet;\n\n /** The state of the sidepanel animations. */\n animationState: KbqSidepanelAnimationState = KbqSidepanelAnimationState.Void;\n\n animationTransform: { transformIn: string; transformOut: string };\n\n /** Emits whenever the state of the animation changes. */\n animationStateChanged = new EventEmitter<AnimationEvent>();\n\n get size(): string {\n return `kbq-sidepanel_${this.sidepanelConfig.size}`;\n }\n\n /** Whether the component has been destroyed. */\n private destroyed: boolean;\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private changeDetectorRef: ChangeDetectorRef,\n public sidepanelConfig: KbqSidepanelConfig,\n @Inject(KBQ_SIDEPANEL_WITH_INDENT) public withIndent: boolean,\n @Inject(KBQ_SIDEPANEL_WITH_SHADOW) public withShadow: boolean\n ) {\n super();\n }\n\n ngOnDestroy(): void {\n this.destroyed = true;\n }\n\n /** Attach a component portal as content to this sidepanel container. */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n this.validatePortalAttached();\n this.setAnimation();\n this.setPanelClass();\n\n return this.portalOutlet.attachComponentPortal(portal);\n }\n\n /** Attach a template portal as content to this sidepanel container. */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n this.validatePortalAttached();\n this.setAnimation();\n this.setPanelClass();\n\n return this.portalOutlet.attachTemplatePortal(portal);\n }\n\n /** Begin animation of the sidepanel entrance into view. */\n enter(): void {\n if (this.destroyed) { return; }\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) { return; }\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: mcSidepanelTransformAnimation[position].in,\n transformOut: mcSidepanelTransformAnimation[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\n <div *ngIf=\"withIndent\" class=\"kbq-sidepanel-indent\" (click)=\"exit()\"></div>\n\n <div class=\"kbq-sidepanel-content\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <ng-template cdkPortalOutlet></ng-template>\n </div>\n</div>\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';\n\nimport { KBQ_SIDEPANEL_DATA, KbqSidepanelConfig } from './sidepanel-config';\nimport {\n KbqSidepanelContainerComponent,\n KBQ_SIDEPANEL_WITH_INDENT,\n KBQ_SIDEPANEL_WITH_SHADOW\n} from './sidepanel-container.component';\nimport { KbqSidepanelRef } from './sidepanel-ref';\n\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>, config?: KbqSidepanelConfig<D>\n ): KbqSidepanelRef<T> {\n const fullConfig = {\n ...(this.defaultOptions || new KbqSidepanelConfig()),\n ...config\n };\n\n if (fullConfig.id && this.getSidepanelById(fullConfig.id)) {\n throw Error(`Sidepanel with id \"${fullConfig.id}\" exists already. The sidepanel id must be unique.`);\n }\n\n const overlayRef = this.createOverlay(fullConfig);\n overlayRef.hostElement.classList.add('kbq-sidepanel-overlay');\n const container = this.attachContainer(overlayRef, fullConfig);\n const ref = new KbqSidepanelRef(container, overlayRef, fullConfig);\n\n if (componentOrTemplateRef instanceof TemplateRef) {\n container.attachTemplatePortal(\n new TemplatePortal<T>(\n componentOrTemplateRef,\n null!,\n {\n $implicit: fullConfig.data,\n sidepanelRef: ref\n } as any\n )\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()\n .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 // tslint:disable-next-line:no-magic-numbers\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\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\n .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\n .some((sidepanelRef) => sidepanelRef.config.hasBackdrop!);\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 Component,\n Directive,\n ElementRef,\n Input,\n OnChanges,\n OnInit,\n Optional,\n SimpleChanges\n} from '@angular/core';\n\nimport { KbqSidepanelRef } from './sidepanel-ref';\nimport { KbqSidepanelService } from './sidepanel.service';\n\n\n/**\n * Button that will close the current sidepanel.\n */\n@Directive({\n selector: 'button[kbq-sidepanel-close], button[mcSidepanelClose]',\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('mcSidepanelClose') mcSidepanelClose: 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.mcSidepanelClose || 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></ng-content>\n </div>\n\n <button *ngIf=\"closeable\"\n kbq-button\n kbq-sidepanel-close\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\">\n <i kbq-icon=\"mc-close-L_16\" [color]=\"'contrast'\"></i>\n </button>\n `,\n host: {\n class: 'kbq-sidepanel-header'\n }\n})\nexport class KbqSidepanelHeader {\n @Input() closeable: boolean;\n}\n\n/**\n * Scrollable content container of a sidepanel.\n */\n@Directive({\n selector: 'kbq-sidepanel-body, [kbq-sidepanel-body], mcSidepanelBody',\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], mcSidepanelFooter',\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], mcSidepanelActions',\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 ?\n openSidepanels.find((sidepanel) => sidepanel.id === parent!.id) :\n null;\n}\n","import { A11yModule, ConfigurableFocusTrapFactory, FocusTrapFactory } from '@angular/cdk/a11y';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\nimport { PortalModule } from '@angular/cdk/portal';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { KbqButtonModule } from '@koobiq/components/button';\r\nimport { KbqCommonModule } from '@koobiq/components/core';\r\nimport { KbqIconModule } from '@koobiq/components/icon';\r\nimport { KbqTitleModule } from '@koobiq/components/title';\r\n\r\nimport { KbqSidepanelContainerComponent } from './sidepanel-container.component';\r\nimport {\r\n KbqSidepanelActions,\r\n KbqSidepanelBody,\r\n KbqSidepanelClose,\r\n KbqSidepanelFooter,\r\n KbqSidepanelHeader\r\n} from './sidepanel-directives';\r\nimport { KbqSidepanelService } from './sidepanel.service';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n OverlayModule,\r\n PortalModule,\r\n KbqCommonModule,\r\n KbqButtonModule,\r\n KbqIconModule,\r\n KbqTitleModule,\r\n A11yModule\r\n ],\r\n providers: [\r\n KbqSidepanelService,\r\n { provide: FocusTrapFactory, useClass: ConfigurableFocusTrapFactory }\r\n ],\r\n declarations: [\r\n KbqSidepanelContainerComponent,\r\n KbqSidepanelClose,\r\n KbqSidepanelHeader,\r\n KbqSidepanelBody,\r\n KbqSidepanelFooter,\r\n KbqSidepanelActions\r\n ],\r\n exports: [\r\n KbqSidepanelContainerComponent,\r\n KbqSidepanelClose,\r\n KbqSidepanelHeader,\r\n KbqSidepanelBody,\r\n KbqSidepanelFooter,\r\n KbqSidepanelActions\r\n ]\r\n})\r\nexport class KbqSidepanelModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.KbqSidepanelConfig","i1.KbqSidepanelRef","i2.KbqSidepanelService","i3","i4"],"mappings":"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"}
@@ -362,11 +362,11 @@ class KbqSplitterComponent {
362
362
  this.renderer.setStyle(this.elementRef.nativeElement, property, value);
363
363
  }
364
364
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqSplitterComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
365
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: KbqSplitterComponent, selector: "kbq-splitter", inputs: { hideGutters: "hideGutters", direction: "direction", disabled: "disabled", useGhost: "useGhost", gutterSize: "gutterSize" }, outputs: { gutterPositionChange: "gutterPositionChange" }, host: { classAttribute: "kbq-splitter" }, viewQueries: [{ propertyName: "ghost", first: true, predicate: KbqGutterGhostDirective, descendants: true }, { propertyName: "gutters", predicate: KbqGutterDirective, descendants: true }], exportAs: ["mcSplitter"], ngImport: i0, template: "<ng-content></ng-content>\n\n<ng-template ngFor let-area [ngForOf]=\"areas\" let-index=\"index\" let-last=\"last\">\n <kbq-gutter *ngIf=\"last === false\"\n [direction]=\"direction\"\n [attr.disabled]=\"disabled || null\"\n [style.display]=\"hideGutters ? 'none' : 'flex'\"\n [size]=\"gutterSize\"\n [order]=\"index * 2 + 1\"\n (mousedown)=\"onMouseDown($event, index, index + 1)\">\n </kbq-gutter>\n</ng-template>\n\n<kbq-gutter-ghost *ngIf=\"useGhost\"></kbq-gutter-ghost>\n", styles: [".kbq-splitter{display:flex;position:relative;flex-wrap:nowrap;align-items:stretch;overflow:hidden}.kbq-splitter .kbq-splitter-area{overflow:hidden}.kbq-splitter .kbq-splitter-area_resizing{pointer-events:none}.kbq-gutter{display:flex;flex-grow:0;flex-shrink:0;justify-content:center;align-items:center;overflow:hidden}.kbq-gutter.kbq-gutter_vertical>.kbq-icon{transform:rotate(90deg)}.kbq-gutter-ghost{position:absolute;z-index:999;display:none;overflow:hidden}.kbq-gutter-ghost.kbq-gutter-ghost_vertical>.kbq-icon{transform:rotate(90deg)}.kbq-gutter-ghost.kbq-gutter-ghost_visible{display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: KbqGutterDirective, selector: "kbq-gutter", inputs: ["direction", "order", "size"] }, { kind: "directive", type: KbqGutterGhostDirective, selector: "kbq-gutter-ghost", inputs: ["visible", "x", "y", "direction", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
365
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: KbqSplitterComponent, selector: "kbq-splitter", inputs: { hideGutters: "hideGutters", direction: "direction", disabled: "disabled", useGhost: "useGhost", gutterSize: "gutterSize" }, outputs: { gutterPositionChange: "gutterPositionChange" }, host: { classAttribute: "kbq-splitter" }, viewQueries: [{ propertyName: "ghost", first: true, predicate: KbqGutterGhostDirective, descendants: true }, { propertyName: "gutters", predicate: KbqGutterDirective, descendants: true }], exportAs: ["kbqSplitter"], ngImport: i0, template: "<ng-content></ng-content>\n\n<ng-template ngFor let-area [ngForOf]=\"areas\" let-index=\"index\" let-last=\"last\">\n <kbq-gutter *ngIf=\"last === false\"\n [direction]=\"direction\"\n [attr.disabled]=\"disabled || null\"\n [style.display]=\"hideGutters ? 'none' : 'flex'\"\n [size]=\"gutterSize\"\n [order]=\"index * 2 + 1\"\n (mousedown)=\"onMouseDown($event, index, index + 1)\">\n </kbq-gutter>\n</ng-template>\n\n<kbq-gutter-ghost *ngIf=\"useGhost\"></kbq-gutter-ghost>\n", styles: [".kbq-splitter{display:flex;position:relative;flex-wrap:nowrap;align-items:stretch;overflow:hidden}.kbq-splitter .kbq-splitter-area{overflow:hidden}.kbq-splitter .kbq-splitter-area_resizing{pointer-events:none}.kbq-gutter{display:flex;flex-grow:0;flex-shrink:0;justify-content:center;align-items:center;overflow:hidden}.kbq-gutter.kbq-gutter_vertical>.kbq-icon{transform:rotate(90deg)}.kbq-gutter-ghost{position:absolute;z-index:999;display:none;overflow:hidden}.kbq-gutter-ghost.kbq-gutter-ghost_vertical>.kbq-icon{transform:rotate(90deg)}.kbq-gutter-ghost.kbq-gutter-ghost_visible{display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: KbqGutterDirective, selector: "kbq-gutter", inputs: ["direction", "order", "size"] }, { kind: "directive", type: KbqGutterGhostDirective, selector: "kbq-gutter-ghost", inputs: ["visible", "x", "y", "direction", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
366
366
  }
367
367
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqSplitterComponent, decorators: [{
368
368
  type: Component,
369
- args: [{ selector: 'kbq-splitter', exportAs: 'mcSplitter', host: {
369
+ args: [{ selector: 'kbq-splitter', exportAs: 'kbqSplitter', host: {
370
370
  class: 'kbq-splitter'
371
371
  }, preserveWhitespaces: false, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n\n<ng-template ngFor let-area [ngForOf]=\"areas\" let-index=\"index\" let-last=\"last\">\n <kbq-gutter *ngIf=\"last === false\"\n [direction]=\"direction\"\n [attr.disabled]=\"disabled || null\"\n [style.display]=\"hideGutters ? 'none' : 'flex'\"\n [size]=\"gutterSize\"\n [order]=\"index * 2 + 1\"\n (mousedown)=\"onMouseDown($event, index, index + 1)\">\n </kbq-gutter>\n</ng-template>\n\n<kbq-gutter-ghost *ngIf=\"useGhost\"></kbq-gutter-ghost>\n", styles: [".kbq-splitter{display:flex;position:relative;flex-wrap:nowrap;align-items:stretch;overflow:hidden}.kbq-splitter .kbq-splitter-area{overflow:hidden}.kbq-splitter .kbq-splitter-area_resizing{pointer-events:none}.kbq-gutter{display:flex;flex-grow:0;flex-shrink:0;justify-content:center;align-items:center;overflow:hidden}.kbq-gutter.kbq-gutter_vertical>.kbq-icon{transform:rotate(90deg)}.kbq-gutter-ghost{position:absolute;z-index:999;display:none;overflow:hidden}.kbq-gutter-ghost.kbq-gutter-ghost_vertical>.kbq-icon{transform:rotate(90deg)}.kbq-gutter-ghost.kbq-gutter-ghost_visible{display:block}\n"] }]
372
372
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i0.Renderer2 }]; }, propDecorators: { gutterPositionChange: [{