@koobiq/components 18.38.1 → 19.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (891) hide show
  1. package/accordion/accordion-content.d.ts +2 -2
  2. package/accordion/accordion-content.directive.d.ts +11 -0
  3. package/accordion/accordion-header.d.ts +2 -2
  4. package/accordion/accordion-header.directive.d.ts +7 -0
  5. package/accordion/accordion-item.d.ts +2 -2
  6. package/accordion/accordion-item.directive.d.ts +72 -0
  7. package/accordion/accordion-root.directive.d.ts +64 -0
  8. package/accordion/accordion-trigger.component.d.ts +2 -2
  9. package/accordion/accordion-trigger.directive.d.ts +13 -0
  10. package/accordion/accordion.component.d.ts +2 -4
  11. package/accordion/accordion.module.d.ts +7 -7
  12. package/accordion/public-api.d.ts +5 -0
  13. package/alert/_alert-theme.scss +4 -16
  14. package/alert/alert-tokens.scss +6 -12
  15. package/alert/alert.component.d.ts +5 -12
  16. package/alert/alert.module.d.ts +4 -4
  17. package/app-switcher/app-switcher.d.ts +4 -4
  18. package/autocomplete/autocomplete-origin.directive.d.ts +1 -1
  19. package/autocomplete/autocomplete-trigger.directive.d.ts +1 -1
  20. package/autocomplete/autocomplete.component.d.ts +1 -1
  21. package/autocomplete/autocomplete.module.d.ts +7 -7
  22. package/badge/badge.component.d.ts +3 -3
  23. package/badge/badge.module.d.ts +4 -4
  24. package/breadcrumbs/breadcrumbs.d.ts +3 -2
  25. package/breadcrumbs/public-api.d.ts +2 -0
  26. package/breadcrumbs/roving-focus-group.directive.d.ts +50 -0
  27. package/breadcrumbs/roving-focus-item.directive.d.ts +50 -0
  28. package/breadcrumbs/utils.d.ts +19 -0
  29. package/button/button.component.d.ts +2 -2
  30. package/button/button.module.d.ts +6 -6
  31. package/button-toggle/_button-toggle-theme.scss +30 -27
  32. package/button-toggle/button-toggle.component.d.ts +2 -2
  33. package/button-toggle/button-toggle.module.d.ts +4 -4
  34. package/button-toggle/button-toggle.scss +2 -2
  35. package/checkbox/checkbox-module.d.ts +4 -4
  36. package/checkbox/checkbox-required-validator.d.ts +1 -1
  37. package/checkbox/checkbox.d.ts +1 -1
  38. package/code-block/code-block.scss +2 -2
  39. package/core/common-behaviors/index.d.ts +0 -1
  40. package/core/formatters/date/formatter.pipe.d.ts +13 -0
  41. package/core/formatters/index.d.ts +4 -4
  42. package/core/formatters/number/formatter.d.ts +3 -3
  43. package/core/forms/forms-module.d.ts +1 -1
  44. package/core/forms/forms.directive.d.ts +2 -2
  45. package/core/highlight/highlight.pipe.d.ts +1 -1
  46. package/core/highlight/index.d.ts +3 -3
  47. package/core/line/line.d.ts +1 -6
  48. package/core/option/_option-theme.scss +5 -2
  49. package/core/option/action.d.ts +1 -1
  50. package/core/option/optgroup.d.ts +1 -1
  51. package/core/option/option-module.d.ts +5 -5
  52. package/core/option/option.d.ts +4 -1
  53. package/core/pop-up/constants.d.ts +4 -0
  54. package/core/pop-up/pop-up-trigger.d.ts +5 -5
  55. package/core/pop-up/pop-up.d.ts +1 -1
  56. package/core/select/common.d.ts +1 -1
  57. package/core/selection/pseudo-checkbox/pseudo-checkbox.d.ts +1 -1
  58. package/core/selection/pseudo-checkbox/pseudo-checkbox.module.d.ts +3 -3
  59. package/core/styles/common/_select.scss +1 -1
  60. package/core/styles/theming/_scrollbar-theme.scss +18 -12
  61. package/core/styles/visual/_layout.scss +10 -0
  62. package/core/utils/utils.d.ts +3 -0
  63. package/datepicker/calendar-body.component.d.ts +1 -1
  64. package/datepicker/calendar-header.component.d.ts +1 -1
  65. package/datepicker/calendar.component.d.ts +1 -1
  66. package/datepicker/datepicker-input.directive.d.ts +1 -1
  67. package/datepicker/datepicker-module.d.ts +15 -15
  68. package/datepicker/datepicker-toggle.component.d.ts +2 -2
  69. package/datepicker/datepicker.component.d.ts +2 -2
  70. package/datepicker/month-view.component.d.ts +1 -1
  71. package/divider/divider.component.d.ts +5 -1
  72. package/divider/divider.module.d.ts +3 -3
  73. package/dl/dl.component.d.ts +3 -3
  74. package/dl/dl.module.d.ts +4 -4
  75. package/dropdown/dropdown-content.directive.d.ts +1 -1
  76. package/dropdown/dropdown-item.component.d.ts +1 -1
  77. package/dropdown/dropdown-trigger.directive.d.ts +1 -1
  78. package/dropdown/dropdown.component.d.ts +1 -1
  79. package/dropdown/dropdown.module.d.ts +8 -8
  80. package/dropdown/dropdown.scss +1 -0
  81. package/ellipsis-center/ellipsis-center.directive.d.ts +2 -2
  82. package/empty-state/empty-state.component.d.ts +5 -5
  83. package/empty-state/empty-state.module.d.ts +4 -4
  84. package/fesm2022/koobiq-components-accordion.mjs +459 -40
  85. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  86. package/fesm2022/koobiq-components-actions-panel.mjs +18 -18
  87. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  88. package/fesm2022/koobiq-components-alert.mjs +28 -36
  89. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  90. package/fesm2022/koobiq-components-app-switcher.mjs +49 -52
  91. package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
  92. package/fesm2022/koobiq-components-autocomplete.mjs +31 -25
  93. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  94. package/fesm2022/koobiq-components-badge.mjs +20 -21
  95. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  96. package/fesm2022/koobiq-components-breadcrumbs.mjs +339 -36
  97. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  98. package/fesm2022/koobiq-components-button-toggle.mjs +25 -22
  99. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  100. package/fesm2022/koobiq-components-button.mjs +25 -26
  101. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  102. package/fesm2022/koobiq-components-checkbox.mjs +18 -16
  103. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  104. package/fesm2022/koobiq-components-clamped-text.mjs +9 -9
  105. package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
  106. package/fesm2022/koobiq-components-code-block.mjs +15 -16
  107. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  108. package/fesm2022/koobiq-components-content-panel.mjs +55 -57
  109. package/fesm2022/koobiq-components-content-panel.mjs.map +1 -1
  110. package/fesm2022/koobiq-components-core.mjs +326 -356
  111. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  112. package/fesm2022/koobiq-components-datepicker.mjs +107 -90
  113. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  114. package/fesm2022/koobiq-components-divider.mjs +16 -14
  115. package/fesm2022/koobiq-components-divider.mjs.map +1 -1
  116. package/fesm2022/koobiq-components-dl.mjs +19 -20
  117. package/fesm2022/koobiq-components-dl.mjs.map +1 -1
  118. package/fesm2022/koobiq-components-dropdown.mjs +47 -48
  119. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  120. package/fesm2022/koobiq-components-dynamic-translation.mjs +16 -19
  121. package/fesm2022/koobiq-components-dynamic-translation.mjs.map +1 -1
  122. package/fesm2022/koobiq-components-ellipsis-center.mjs +10 -10
  123. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
  124. package/fesm2022/koobiq-components-empty-state.mjs +26 -27
  125. package/fesm2022/koobiq-components-empty-state.mjs.map +1 -1
  126. package/fesm2022/koobiq-components-file-upload.mjs +306 -98
  127. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  128. package/fesm2022/koobiq-components-filter-bar.mjs +258 -234
  129. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  130. package/fesm2022/koobiq-components-form-field.mjs +84 -92
  131. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  132. package/fesm2022/koobiq-components-icon.mjs +18 -18
  133. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  134. package/fesm2022/koobiq-components-inline-edit.mjs +33 -37
  135. package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
  136. package/fesm2022/koobiq-components-input.mjs +31 -30
  137. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  138. package/fesm2022/koobiq-components-link.mjs +11 -10
  139. package/fesm2022/koobiq-components-link.mjs.map +1 -1
  140. package/fesm2022/koobiq-components-list.mjs +54 -46
  141. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  142. package/fesm2022/koobiq-components-loader-overlay.mjs +27 -28
  143. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  144. package/fesm2022/koobiq-components-markdown.mjs +14 -14
  145. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  146. package/fesm2022/koobiq-components-modal.mjs +76 -64
  147. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  148. package/fesm2022/koobiq-components-navbar-ic.mjs +76 -54
  149. package/fesm2022/koobiq-components-navbar-ic.mjs.map +1 -1
  150. package/fesm2022/koobiq-components-navbar.mjs +77 -66
  151. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  152. package/fesm2022/koobiq-components-notification-center.mjs +31 -32
  153. package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
  154. package/fesm2022/koobiq-components-overflow-items.mjs +16 -19
  155. package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
  156. package/fesm2022/koobiq-components-popover.mjs +55 -46
  157. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  158. package/fesm2022/koobiq-components-progress-bar.mjs +18 -19
  159. package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
  160. package/fesm2022/koobiq-components-progress-spinner.mjs +21 -23
  161. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  162. package/fesm2022/koobiq-components-radio.mjs +20 -16
  163. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  164. package/fesm2022/koobiq-components-resizer.mjs +10 -12
  165. package/fesm2022/koobiq-components-resizer.mjs.map +1 -1
  166. package/fesm2022/koobiq-components-risk-level.mjs +13 -12
  167. package/fesm2022/koobiq-components-risk-level.mjs.map +1 -1
  168. package/fesm2022/koobiq-components-scrollbar.mjs +17 -18
  169. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  170. package/fesm2022/koobiq-components-search-expandable.mjs +19 -19
  171. package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
  172. package/fesm2022/koobiq-components-select.mjs +110 -73
  173. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  174. package/fesm2022/koobiq-components-sidebar.mjs +16 -23
  175. package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
  176. package/fesm2022/koobiq-components-sidepanel.mjs +61 -55
  177. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  178. package/fesm2022/koobiq-components-split-button.mjs +12 -12
  179. package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
  180. package/fesm2022/koobiq-components-splitter.mjs +24 -25
  181. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  182. package/fesm2022/koobiq-components-table.mjs +17 -18
  183. package/fesm2022/koobiq-components-table.mjs.map +1 -1
  184. package/fesm2022/koobiq-components-tabs.mjs +85 -89
  185. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  186. package/fesm2022/koobiq-components-tags.mjs +43 -47
  187. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  188. package/fesm2022/koobiq-components-textarea.mjs +10 -11
  189. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  190. package/fesm2022/koobiq-components-time-range.mjs +38 -40
  191. package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
  192. package/fesm2022/koobiq-components-timepicker.mjs +65 -14
  193. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  194. package/fesm2022/koobiq-components-timezone.mjs +68 -59
  195. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  196. package/fesm2022/koobiq-components-title.mjs +9 -10
  197. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  198. package/fesm2022/koobiq-components-toast.mjs +23 -24
  199. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  200. package/fesm2022/koobiq-components-toggle.mjs +16 -14
  201. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  202. package/fesm2022/koobiq-components-tooltip.mjs +20 -23
  203. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  204. package/fesm2022/koobiq-components-top-bar.mjs +18 -20
  205. package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
  206. package/fesm2022/koobiq-components-tree-select.mjs +81 -70
  207. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  208. package/fesm2022/koobiq-components-tree.mjs +77 -66
  209. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  210. package/fesm2022/koobiq-components-username.mjs +31 -37
  211. package/fesm2022/koobiq-components-username.mjs.map +1 -1
  212. package/file-upload/file-upload.d.ts +11 -0
  213. package/file-upload/file-upload.module.d.ts +15 -15
  214. package/file-upload/multiple-file-upload.component.d.ts +12 -9
  215. package/file-upload/{file-drop.d.ts → primitives/file-drop.d.ts} +3 -3
  216. package/file-upload/primitives/file-picker.d.ts +82 -0
  217. package/file-upload/primitives/index.d.ts +2 -0
  218. package/file-upload/public-api.d.ts +2 -1
  219. package/file-upload/single-file-upload.component.d.ts +11 -8
  220. package/filter-bar/filter-bar.d.ts +1 -1
  221. package/filter-bar/filter-search.d.ts +17 -4
  222. package/icon/_icon-button-theme.scss +2 -1
  223. package/inline-edit/inline-edit.d.ts +2 -3
  224. package/input/_input-theme.scss +2 -1
  225. package/input/input-number-validators.d.ts +2 -2
  226. package/input/input-number.d.ts +1 -1
  227. package/input/input-password.d.ts +1 -1
  228. package/input/input.d.ts +2 -2
  229. package/input/input.module.d.ts +8 -8
  230. package/link/_link-theme.scss +3 -0
  231. package/link/link.component.d.ts +1 -1
  232. package/link/link.module.d.ts +3 -3
  233. package/list/_list-theme.scss +6 -0
  234. package/list/list-selection.component.d.ts +6 -4
  235. package/list/list.component.d.ts +2 -2
  236. package/list/list.module.d.ts +6 -6
  237. package/list/list.scss +1 -0
  238. package/loader-overlay/loader-overlay.component.d.ts +4 -4
  239. package/loader-overlay/loader-overlay.module.d.ts +5 -5
  240. package/modal/css-unit.pipe.d.ts +1 -1
  241. package/modal/modal.component.d.ts +1 -1
  242. package/modal/modal.directive.d.ts +4 -4
  243. package/modal/modal.module.d.ts +10 -10
  244. package/modal/modal.service.d.ts +1 -1
  245. package/navbar/_navbar-theme.scss +1 -0
  246. package/navbar/navbar-brand.component.d.ts +1 -1
  247. package/navbar/navbar-item.component.d.ts +7 -7
  248. package/navbar/navbar-toggle.component.d.ts +1 -1
  249. package/navbar/navbar-toggle.scss +1 -1
  250. package/navbar/navbar.component.d.ts +4 -4
  251. package/navbar/navbar.module.d.ts +10 -10
  252. package/navbar/vertical-navbar.component.d.ts +1 -1
  253. package/navbar/vertical-navbar.scss +5 -2
  254. package/navbar-ic/navbar-ic-header.d.ts +3 -0
  255. package/navbar-ic/navbar-ic-item.d.ts +18 -0
  256. package/navbar-ic/navbar-ic.d.ts +13 -7
  257. package/notification-center/notification-center.d.ts +5 -5
  258. package/overflow-items/overflow-items.d.ts +1 -1
  259. package/package.json +9 -140
  260. package/popover/popover-confirm.component.d.ts +2 -2
  261. package/popover/popover.component.d.ts +9 -9
  262. package/popover/popover.module.d.ts +9 -9
  263. package/popover/popover.scss +3 -2
  264. package/prebuilt-themes/dark-theme.css +1 -1
  265. package/prebuilt-themes/light-theme.css +1 -1
  266. package/prebuilt-themes/theme.css +1 -1
  267. package/progress-bar/progress-bar.component.d.ts +3 -3
  268. package/progress-bar/progress-bar.module.d.ts +3 -3
  269. package/progress-spinner/progress-spinner.component.d.ts +3 -3
  270. package/progress-spinner/progress-spinner.module.d.ts +4 -4
  271. package/progress-spinner/progress-spinner.scss +1 -0
  272. package/radio/_radio-theme.scss +2 -1
  273. package/radio/radio-tokens.scss +1 -0
  274. package/radio/radio.component.d.ts +10 -5
  275. package/radio/radio.module.d.ts +3 -3
  276. package/risk-level/risk-level.component.d.ts +1 -1
  277. package/risk-level/risk-level.module.d.ts +4 -4
  278. package/schematics/migrations/icons-replacement/README.md +5 -1
  279. package/schematics/migrations/icons-replacement/index.js +1 -1
  280. package/schematics/ng-add/index.js +4 -5
  281. package/scrollbar/_scrollbar-component-theme.scss +16 -14
  282. package/select/select-option.directive.d.ts +1 -1
  283. package/select/select.component.d.ts +6 -5
  284. package/select/select.module.d.ts +10 -10
  285. package/sidebar/sidebar.component.d.ts +3 -3
  286. package/sidebar/sidebar.module.d.ts +3 -3
  287. package/sidepanel/sidepanel-container.component.d.ts +1 -1
  288. package/sidepanel/sidepanel-directives.d.ts +5 -5
  289. package/sidepanel/sidepanel.module.d.ts +9 -9
  290. package/splitter/splitter.component.d.ts +4 -4
  291. package/splitter/splitter.module.d.ts +3 -3
  292. package/table/_table-theme.scss +1 -0
  293. package/table/table.component.d.ts +2 -2
  294. package/table/table.module.d.ts +4 -4
  295. package/tabs/paginated-tab-header.d.ts +1 -1
  296. package/tabs/tab-body.component.d.ts +2 -2
  297. package/tabs/tab-content.directive.d.ts +1 -1
  298. package/tabs/tab-group.component.d.ts +5 -5
  299. package/tabs/tab-header.component.d.ts +1 -1
  300. package/tabs/tab-label-wrapper.directive.d.ts +1 -1
  301. package/tabs/tab-label.directive.d.ts +1 -1
  302. package/tabs/tab.component.d.ts +3 -3
  303. package/tabs/tabs.module.d.ts +15 -15
  304. package/tags/tag-input.d.ts +1 -1
  305. package/tags/tag-list.component.d.ts +1 -1
  306. package/tags/tag.component.d.ts +4 -4
  307. package/tags/tag.module.d.ts +4 -4
  308. package/textarea/textarea.component.d.ts +1 -1
  309. package/textarea/textarea.module.d.ts +4 -4
  310. package/timepicker/timepicker.directive.d.ts +15 -5
  311. package/timepicker/timepicker.module.d.ts +5 -5
  312. package/timezone/cities-by-filter.pipe.d.ts +1 -1
  313. package/timezone/timezone-option.component.d.ts +1 -1
  314. package/timezone/timezone-option.directive.d.ts +1 -1
  315. package/timezone/timezone-select.component.d.ts +2 -2
  316. package/timezone/timezone.module.d.ts +15 -15
  317. package/timezone/utc-offset.pipe.d.ts +1 -1
  318. package/title/title.directive.d.ts +1 -1
  319. package/title/title.module.d.ts +3 -3
  320. package/toggle/toggle.component.d.ts +1 -1
  321. package/toggle/toggle.module.d.ts +3 -3
  322. package/tooltip/tooltip.component.d.ts +3 -3
  323. package/top-bar/top-bar.d.ts +1 -1
  324. package/tree/node.d.ts +1 -1
  325. package/tree/outlet.d.ts +1 -1
  326. package/tree/padding.directive.d.ts +1 -1
  327. package/tree/toggle.d.ts +3 -3
  328. package/tree/tree-base.d.ts +2 -2
  329. package/tree/tree-option.component.d.ts +1 -1
  330. package/tree/tree-selection.component.d.ts +1 -1
  331. package/tree/tree.d.ts +1 -1
  332. package/tree/tree.module.d.ts +11 -11
  333. package/tree-select/tree-select.component.d.ts +2 -2
  334. package/tree-select/tree-select.module.d.ts +9 -9
  335. package/core/common-behaviors/focus-monitor.d.ts +0 -19
  336. package/esm2022/accordion/accordion-content.mjs +0 -19
  337. package/esm2022/accordion/accordion-header.mjs +0 -19
  338. package/esm2022/accordion/accordion-item.mjs +0 -25
  339. package/esm2022/accordion/accordion-trigger.component.mjs +0 -48
  340. package/esm2022/accordion/accordion.component.mjs +0 -41
  341. package/esm2022/accordion/accordion.module.mjs +0 -44
  342. package/esm2022/accordion/index.mjs +0 -2
  343. package/esm2022/accordion/koobiq-components-accordion.mjs +0 -5
  344. package/esm2022/accordion/public-api.mjs +0 -7
  345. package/esm2022/actions-panel/actions-panel-config.mjs +0 -55
  346. package/esm2022/actions-panel/actions-panel-container.mjs +0 -217
  347. package/esm2022/actions-panel/actions-panel-ref.mjs +0 -78
  348. package/esm2022/actions-panel/actions-panel.mjs +0 -133
  349. package/esm2022/actions-panel/index.mjs +0 -6
  350. package/esm2022/actions-panel/koobiq-components-actions-panel.mjs +0 -5
  351. package/esm2022/actions-panel/module.mjs +0 -21
  352. package/esm2022/alert/alert.component.mjs +0 -124
  353. package/esm2022/alert/alert.module.mjs +0 -40
  354. package/esm2022/alert/index.mjs +0 -2
  355. package/esm2022/alert/koobiq-components-alert.mjs +0 -5
  356. package/esm2022/alert/public-api.mjs +0 -3
  357. package/esm2022/app-switcher/app-switcher-animations.mjs +0 -18
  358. package/esm2022/app-switcher/app-switcher-dropdown-app.mjs +0 -75
  359. package/esm2022/app-switcher/app-switcher-dropdown-site.mjs +0 -60
  360. package/esm2022/app-switcher/app-switcher.mjs +0 -446
  361. package/esm2022/app-switcher/app-switcher.module.mjs +0 -45
  362. package/esm2022/app-switcher/index.mjs +0 -2
  363. package/esm2022/app-switcher/kbq-app-switcher-list-item.mjs +0 -84
  364. package/esm2022/app-switcher/koobiq-components-app-switcher.mjs +0 -5
  365. package/esm2022/app-switcher/public-api.mjs +0 -7
  366. package/esm2022/autocomplete/autocomplete-origin.directive.mjs +0 -21
  367. package/esm2022/autocomplete/autocomplete-trigger.directive.mjs +0 -540
  368. package/esm2022/autocomplete/autocomplete.component.mjs +0 -178
  369. package/esm2022/autocomplete/autocomplete.module.mjs +0 -38
  370. package/esm2022/autocomplete/index.mjs +0 -2
  371. package/esm2022/autocomplete/koobiq-components-autocomplete.mjs +0 -5
  372. package/esm2022/autocomplete/public-api.mjs +0 -5
  373. package/esm2022/badge/badge.component.mjs +0 -124
  374. package/esm2022/badge/badge.module.mjs +0 -36
  375. package/esm2022/badge/index.mjs +0 -2
  376. package/esm2022/badge/koobiq-components-badge.mjs +0 -5
  377. package/esm2022/badge/public-api.mjs +0 -3
  378. package/esm2022/breadcrumbs/breadcrumbs.mjs +0 -268
  379. package/esm2022/breadcrumbs/breadcrumbs.module.mjs +0 -31
  380. package/esm2022/breadcrumbs/breadcrumbs.types.mjs +0 -2
  381. package/esm2022/breadcrumbs/index.mjs +0 -2
  382. package/esm2022/breadcrumbs/koobiq-components-breadcrumbs.mjs +0 -5
  383. package/esm2022/breadcrumbs/public-api.mjs +0 -4
  384. package/esm2022/button/button.component.mjs +0 -180
  385. package/esm2022/button/button.dropdown-trigger.directive.mjs +0 -28
  386. package/esm2022/button/button.module.mjs +0 -41
  387. package/esm2022/button/index.mjs +0 -2
  388. package/esm2022/button/koobiq-components-button.mjs +0 -5
  389. package/esm2022/button/public-api.mjs +0 -4
  390. package/esm2022/button-toggle/button-toggle.component.mjs +0 -384
  391. package/esm2022/button-toggle/button-toggle.module.mjs +0 -19
  392. package/esm2022/button-toggle/index.mjs +0 -2
  393. package/esm2022/button-toggle/koobiq-components-button-toggle.mjs +0 -5
  394. package/esm2022/button-toggle/public-api.mjs +0 -3
  395. package/esm2022/checkbox/checkbox-config.mjs +0 -6
  396. package/esm2022/checkbox/checkbox-module.mjs +0 -19
  397. package/esm2022/checkbox/checkbox-required-validator.mjs +0 -27
  398. package/esm2022/checkbox/checkbox.mjs +0 -295
  399. package/esm2022/checkbox/index.mjs +0 -2
  400. package/esm2022/checkbox/koobiq-components-checkbox.mjs +0 -5
  401. package/esm2022/checkbox/public-api.mjs +0 -5
  402. package/esm2022/clamped-text/clamped-text.mjs +0 -202
  403. package/esm2022/clamped-text/constants.mjs +0 -20
  404. package/esm2022/clamped-text/index.mjs +0 -4
  405. package/esm2022/clamped-text/koobiq-components-clamped-text.mjs +0 -5
  406. package/esm2022/clamped-text/module.mjs +0 -19
  407. package/esm2022/code-block/code-block-highlight.mjs +0 -418
  408. package/esm2022/code-block/code-block.mjs +0 -440
  409. package/esm2022/code-block/code-block.module.mjs +0 -19
  410. package/esm2022/code-block/index.mjs +0 -2
  411. package/esm2022/code-block/koobiq-components-code-block.mjs +0 -5
  412. package/esm2022/code-block/public-api.mjs +0 -5
  413. package/esm2022/code-block/types.mjs +0 -2
  414. package/esm2022/content-panel/content-panel.mjs +0 -432
  415. package/esm2022/content-panel/index.mjs +0 -3
  416. package/esm2022/content-panel/koobiq-components-content-panel.mjs +0 -5
  417. package/esm2022/content-panel/module.mjs +0 -42
  418. package/esm2022/core/animation/animation.mjs +0 -39
  419. package/esm2022/core/animation/fade-animations.mjs +0 -9
  420. package/esm2022/core/animation/index.mjs +0 -4
  421. package/esm2022/core/animation/select-animations.mjs +0 -45
  422. package/esm2022/core/common-behaviors/checkbox.mjs +0 -2
  423. package/esm2022/core/common-behaviors/clipboard.mjs +0 -31
  424. package/esm2022/core/common-behaviors/color.mjs +0 -89
  425. package/esm2022/core/common-behaviors/common-module.mjs +0 -76
  426. package/esm2022/core/common-behaviors/constructor.mjs +0 -2
  427. package/esm2022/core/common-behaviors/disabled.mjs +0 -19
  428. package/esm2022/core/common-behaviors/error-state.mjs +0 -50
  429. package/esm2022/core/common-behaviors/focus-monitor.mjs +0 -37
  430. package/esm2022/core/common-behaviors/hover.mjs +0 -34
  431. package/esm2022/core/common-behaviors/index.mjs +0 -14
  432. package/esm2022/core/common-behaviors/orientation.mjs +0 -2
  433. package/esm2022/core/common-behaviors/read-state.mjs +0 -33
  434. package/esm2022/core/common-behaviors/size.mjs +0 -2
  435. package/esm2022/core/common-behaviors/tabindex.mjs +0 -20
  436. package/esm2022/core/datetime/date-adapter.mjs +0 -14
  437. package/esm2022/core/datetime/date-formats.mjs +0 -3
  438. package/esm2022/core/datetime/index.mjs +0 -3
  439. package/esm2022/core/error/error-state-matcher.mjs +0 -56
  440. package/esm2022/core/form-field/field-sizing-content.mjs +0 -117
  441. package/esm2022/core/form-field/form-field-ref.mjs +0 -10
  442. package/esm2022/core/form-field/index.mjs +0 -3
  443. package/esm2022/core/formatters/date/formatter.mjs +0 -25
  444. package/esm2022/core/formatters/date/formatter.pipe.mjs +0 -380
  445. package/esm2022/core/formatters/filesize/config.mjs +0 -32
  446. package/esm2022/core/formatters/filesize/formatter.mjs +0 -43
  447. package/esm2022/core/formatters/filesize/index.mjs +0 -4
  448. package/esm2022/core/formatters/filesize/size.mjs +0 -65
  449. package/esm2022/core/formatters/index.mjs +0 -146
  450. package/esm2022/core/formatters/number/formatter.mjs +0 -347
  451. package/esm2022/core/forms/forms-module.mjs +0 -24
  452. package/esm2022/core/forms/forms.directive.mjs +0 -66
  453. package/esm2022/core/forms/index.mjs +0 -4
  454. package/esm2022/core/forms/validators.mjs +0 -184
  455. package/esm2022/core/highlight/highlight.pipe.mjs +0 -23
  456. package/esm2022/core/highlight/index.mjs +0 -19
  457. package/esm2022/core/index.mjs +0 -2
  458. package/esm2022/core/koobiq-components-core.mjs +0 -5
  459. package/esm2022/core/line/line.mjs +0 -70
  460. package/esm2022/core/locales/en-US.mjs +0 -210
  461. package/esm2022/core/locales/es-LA.mjs +0 -209
  462. package/esm2022/core/locales/formatters.mjs +0 -193
  463. package/esm2022/core/locales/index.mjs +0 -10
  464. package/esm2022/core/locales/locale-service.mjs +0 -173
  465. package/esm2022/core/locales/locale-service.module.mjs +0 -19
  466. package/esm2022/core/locales/pt-BR.mjs +0 -209
  467. package/esm2022/core/locales/ru-RU.mjs +0 -224
  468. package/esm2022/core/locales/tk-TM.mjs +0 -210
  469. package/esm2022/core/locales/types.mjs +0 -2
  470. package/esm2022/core/navbar/index.mjs +0 -2
  471. package/esm2022/core/navbar/rectangle-item.mjs +0 -40
  472. package/esm2022/core/option/action-container.mjs +0 -23
  473. package/esm2022/core/option/action.mjs +0 -107
  474. package/esm2022/core/option/index.mjs +0 -6
  475. package/esm2022/core/option/optgroup.mjs +0 -37
  476. package/esm2022/core/option/option-module.mjs +0 -20
  477. package/esm2022/core/option/option.mjs +0 -322
  478. package/esm2022/core/overlay/overlay-position-map.mjs +0 -251
  479. package/esm2022/core/pop-up/constants.mjs +0 -55
  480. package/esm2022/core/pop-up/focus-trap-strategy.mjs +0 -6
  481. package/esm2022/core/pop-up/index.mjs +0 -6
  482. package/esm2022/core/pop-up/pop-up-styles.mjs +0 -24
  483. package/esm2022/core/pop-up/pop-up-trigger.mjs +0 -343
  484. package/esm2022/core/pop-up/pop-up.mjs +0 -152
  485. package/esm2022/core/public-api.mjs +0 -24
  486. package/esm2022/core/select/common.mjs +0 -203
  487. package/esm2022/core/select/constants.mjs +0 -25
  488. package/esm2022/core/select/errors.mjs +0 -26
  489. package/esm2022/core/select/events.mjs +0 -2
  490. package/esm2022/core/select/index.mjs +0 -5
  491. package/esm2022/core/selection/constants.mjs +0 -6
  492. package/esm2022/core/selection/index.mjs +0 -4
  493. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +0 -43
  494. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.module.mjs +0 -18
  495. package/esm2022/core/services/measure-scrollbar.service.mjs +0 -42
  496. package/esm2022/core/services/theme.service.mjs +0 -80
  497. package/esm2022/core/title/index.mjs +0 -2
  498. package/esm2022/core/title/title-text-ref.mjs +0 -3
  499. package/esm2022/core/tokens/index.mjs +0 -2
  500. package/esm2022/core/tokens/window.mjs +0 -19
  501. package/esm2022/core/utils/dom.mjs +0 -8
  502. package/esm2022/core/utils/index.mjs +0 -3
  503. package/esm2022/core/utils/public-api.mjs +0 -2
  504. package/esm2022/core/utils/utils.mjs +0 -31
  505. package/esm2022/core/validation/index.mjs +0 -2
  506. package/esm2022/core/validation/validation.mjs +0 -27
  507. package/esm2022/core/version.mjs +0 -3
  508. package/esm2022/datepicker/calendar-body.component.mjs +0 -87
  509. package/esm2022/datepicker/calendar-header.component.mjs +0 -164
  510. package/esm2022/datepicker/calendar.component.mjs +0 -185
  511. package/esm2022/datepicker/datepicker-animations.mjs +0 -32
  512. package/esm2022/datepicker/datepicker-errors.mjs +0 -6
  513. package/esm2022/datepicker/datepicker-input.directive.mjs +0 -1119
  514. package/esm2022/datepicker/datepicker-intl.mjs +0 -40
  515. package/esm2022/datepicker/datepicker-module.mjs +0 -103
  516. package/esm2022/datepicker/datepicker-toggle.component.mjs +0 -170
  517. package/esm2022/datepicker/datepicker.component.mjs +0 -388
  518. package/esm2022/datepicker/index.mjs +0 -2
  519. package/esm2022/datepicker/koobiq-components-datepicker.mjs +0 -5
  520. package/esm2022/datepicker/month-view.component.mjs +0 -148
  521. package/esm2022/datepicker/public-api.mjs +0 -11
  522. package/esm2022/divider/divider.component.mjs +0 -49
  523. package/esm2022/divider/divider.module.mjs +0 -18
  524. package/esm2022/divider/index.mjs +0 -2
  525. package/esm2022/divider/koobiq-components-divider.mjs +0 -5
  526. package/esm2022/divider/public-api.mjs +0 -3
  527. package/esm2022/dl/dl.component.mjs +0 -81
  528. package/esm2022/dl/dl.module.mjs +0 -36
  529. package/esm2022/dl/index.mjs +0 -2
  530. package/esm2022/dl/koobiq-components-dl.mjs +0 -5
  531. package/esm2022/dl/public-api.mjs +0 -3
  532. package/esm2022/dropdown/dropdown-animations.mjs +0 -41
  533. package/esm2022/dropdown/dropdown-content.directive.mjs +0 -61
  534. package/esm2022/dropdown/dropdown-errors.mjs +0 -29
  535. package/esm2022/dropdown/dropdown-item.component.mjs +0 -150
  536. package/esm2022/dropdown/dropdown-trigger.directive.mjs +0 -513
  537. package/esm2022/dropdown/dropdown.component.mjs +0 -293
  538. package/esm2022/dropdown/dropdown.module.mjs +0 -51
  539. package/esm2022/dropdown/dropdown.types.mjs +0 -23
  540. package/esm2022/dropdown/index.mjs +0 -2
  541. package/esm2022/dropdown/koobiq-components-dropdown.mjs +0 -5
  542. package/esm2022/dropdown/public-api.mjs +0 -9
  543. package/esm2022/dynamic-translation/dynamic-translation.mjs +0 -175
  544. package/esm2022/dynamic-translation/index.mjs +0 -3
  545. package/esm2022/dynamic-translation/koobiq-components-dynamic-translation.mjs +0 -5
  546. package/esm2022/dynamic-translation/module.mjs +0 -25
  547. package/esm2022/ellipsis-center/ellipsis-center.directive.mjs +0 -120
  548. package/esm2022/ellipsis-center/index.mjs +0 -2
  549. package/esm2022/ellipsis-center/koobiq-components-ellipsis-center.mjs +0 -5
  550. package/esm2022/ellipsis-center/public-api.mjs +0 -2
  551. package/esm2022/empty-state/empty-state.component.mjs +0 -109
  552. package/esm2022/empty-state/empty-state.module.mjs +0 -44
  553. package/esm2022/empty-state/index.mjs +0 -2
  554. package/esm2022/empty-state/koobiq-components-empty-state.mjs +0 -5
  555. package/esm2022/empty-state/public-api.mjs +0 -3
  556. package/esm2022/file-upload/file-drop.mjs +0 -87
  557. package/esm2022/file-upload/file-upload.mjs +0 -71
  558. package/esm2022/file-upload/file-upload.module.mjs +0 -79
  559. package/esm2022/file-upload/index.mjs +0 -2
  560. package/esm2022/file-upload/koobiq-components-file-upload.mjs +0 -5
  561. package/esm2022/file-upload/multiple-file-upload.component.mjs +0 -306
  562. package/esm2022/file-upload/public-api.mjs +0 -6
  563. package/esm2022/file-upload/single-file-upload.component.mjs +0 -257
  564. package/esm2022/filter-bar/filter-bar-button.mjs +0 -31
  565. package/esm2022/filter-bar/filter-bar.mjs +0 -213
  566. package/esm2022/filter-bar/filter-bar.module.mjs +0 -67
  567. package/esm2022/filter-bar/filter-bar.types.mjs +0 -72
  568. package/esm2022/filter-bar/filter-refresher.mjs +0 -34
  569. package/esm2022/filter-bar/filter-reset.mjs +0 -49
  570. package/esm2022/filter-bar/filter-search.mjs +0 -145
  571. package/esm2022/filter-bar/filters.mjs +0 -266
  572. package/esm2022/filter-bar/index.mjs +0 -2
  573. package/esm2022/filter-bar/koobiq-components-filter-bar.mjs +0 -5
  574. package/esm2022/filter-bar/pipe-add.mjs +0 -140
  575. package/esm2022/filter-bar/pipe.directive.mjs +0 -37
  576. package/esm2022/filter-bar/pipes/base-pipe.mjs +0 -146
  577. package/esm2022/filter-bar/pipes/pipe-button.mjs +0 -72
  578. package/esm2022/filter-bar/pipes/pipe-date.mjs +0 -206
  579. package/esm2022/filter-bar/pipes/pipe-datetime.mjs +0 -208
  580. package/esm2022/filter-bar/pipes/pipe-multi-select.mjs +0 -188
  581. package/esm2022/filter-bar/pipes/pipe-multi-tree-select.mjs +0 -260
  582. package/esm2022/filter-bar/pipes/pipe-readonly.mjs +0 -68
  583. package/esm2022/filter-bar/pipes/pipe-select.mjs +0 -101
  584. package/esm2022/filter-bar/pipes/pipe-state.mjs +0 -53
  585. package/esm2022/filter-bar/pipes/pipe-text.mjs +0 -104
  586. package/esm2022/filter-bar/pipes/pipe-title.mjs +0 -102
  587. package/esm2022/filter-bar/pipes/pipe-tree-select.mjs +0 -142
  588. package/esm2022/filter-bar/public-api.mjs +0 -22
  589. package/esm2022/form-field/cleaner.mjs +0 -28
  590. package/esm2022/form-field/error.mjs +0 -20
  591. package/esm2022/form-field/fieldset.mjs +0 -84
  592. package/esm2022/form-field/form-field-control.mjs +0 -4
  593. package/esm2022/form-field/form-field.mjs +0 -447
  594. package/esm2022/form-field/form-field.module.mjs +0 -87
  595. package/esm2022/form-field/hint.mjs +0 -36
  596. package/esm2022/form-field/index.mjs +0 -2
  597. package/esm2022/form-field/koobiq-components-form-field.mjs +0 -5
  598. package/esm2022/form-field/label.mjs +0 -19
  599. package/esm2022/form-field/password-hint.mjs +0 -165
  600. package/esm2022/form-field/password-toggle.mjs +0 -129
  601. package/esm2022/form-field/prefix.mjs +0 -19
  602. package/esm2022/form-field/public-api.mjs +0 -16
  603. package/esm2022/form-field/reactive-password-hint.mjs +0 -66
  604. package/esm2022/form-field/stepper.mjs +0 -144
  605. package/esm2022/form-field/suffix.mjs +0 -18
  606. package/esm2022/form-field/validate.directive.mjs +0 -190
  607. package/esm2022/icon/icon-button.component.mjs +0 -64
  608. package/esm2022/icon/icon-item.component.mjs +0 -31
  609. package/esm2022/icon/icon.component.mjs +0 -56
  610. package/esm2022/icon/icon.module.mjs +0 -27
  611. package/esm2022/icon/index.mjs +0 -2
  612. package/esm2022/icon/koobiq-components-icon.mjs +0 -5
  613. package/esm2022/icon/public-api.mjs +0 -5
  614. package/esm2022/index.mjs +0 -2
  615. package/esm2022/inline-edit/index.mjs +0 -3
  616. package/esm2022/inline-edit/inline-edit.mjs +0 -382
  617. package/esm2022/inline-edit/koobiq-components-inline-edit.mjs +0 -5
  618. package/esm2022/inline-edit/module.mjs +0 -25
  619. package/esm2022/input/index.mjs +0 -2
  620. package/esm2022/input/input-errors.mjs +0 -4
  621. package/esm2022/input/input-number-validators.mjs +0 -88
  622. package/esm2022/input/input-number.mjs +0 -386
  623. package/esm2022/input/input-password.mjs +0 -253
  624. package/esm2022/input/input-value-accessor.mjs +0 -3
  625. package/esm2022/input/input.mjs +0 -299
  626. package/esm2022/input/input.module.mjs +0 -58
  627. package/esm2022/input/koobiq-components-input.mjs +0 -5
  628. package/esm2022/input/public-api.mjs +0 -7
  629. package/esm2022/koobiq-components.mjs +0 -5
  630. package/esm2022/link/index.mjs +0 -2
  631. package/esm2022/link/koobiq-components-link.mjs +0 -5
  632. package/esm2022/link/link.component.mjs +0 -143
  633. package/esm2022/link/link.module.mjs +0 -20
  634. package/esm2022/link/public-api.mjs +0 -3
  635. package/esm2022/list/index.mjs +0 -2
  636. package/esm2022/list/koobiq-components-list.mjs +0 -5
  637. package/esm2022/list/list-selection.component.mjs +0 -739
  638. package/esm2022/list/list.component.mjs +0 -43
  639. package/esm2022/list/list.module.mjs +0 -60
  640. package/esm2022/list/public-api.mjs +0 -4
  641. package/esm2022/loader-overlay/index.mjs +0 -2
  642. package/esm2022/loader-overlay/koobiq-components-loader-overlay.mjs +0 -5
  643. package/esm2022/loader-overlay/loader-overlay.component.mjs +0 -110
  644. package/esm2022/loader-overlay/loader-overlay.module.mjs +0 -44
  645. package/esm2022/loader-overlay/public-api.mjs +0 -3
  646. package/esm2022/markdown/index.mjs +0 -2
  647. package/esm2022/markdown/koobiq-components-markdown.mjs +0 -5
  648. package/esm2022/markdown/markdown.component.mjs +0 -67
  649. package/esm2022/markdown/markdown.module.mjs +0 -21
  650. package/esm2022/markdown/markdown.service.mjs +0 -36
  651. package/esm2022/markdown/markdown.values.mjs +0 -35
  652. package/esm2022/markdown/public-api.mjs +0 -5
  653. package/esm2022/modal/css-unit.pipe.mjs +0 -17
  654. package/esm2022/modal/index.mjs +0 -2
  655. package/esm2022/modal/koobiq-components-modal.mjs +0 -5
  656. package/esm2022/modal/modal-control.service.mjs +0 -89
  657. package/esm2022/modal/modal-ref.class.mjs +0 -7
  658. package/esm2022/modal/modal-util.mjs +0 -22
  659. package/esm2022/modal/modal.component.mjs +0 -540
  660. package/esm2022/modal/modal.directive.mjs +0 -94
  661. package/esm2022/modal/modal.module.mjs +0 -78
  662. package/esm2022/modal/modal.service.mjs +0 -135
  663. package/esm2022/modal/modal.type.mjs +0 -7
  664. package/esm2022/modal/public-api.mjs +0 -7
  665. package/esm2022/navbar/index.mjs +0 -2
  666. package/esm2022/navbar/koobiq-components-navbar.mjs +0 -5
  667. package/esm2022/navbar/navbar-brand.component.mjs +0 -105
  668. package/esm2022/navbar/navbar-item.component.mjs +0 -428
  669. package/esm2022/navbar/navbar-toggle.component.mjs +0 -88
  670. package/esm2022/navbar/navbar.component.mjs +0 -251
  671. package/esm2022/navbar/navbar.module.mjs +0 -84
  672. package/esm2022/navbar/public-api.mjs +0 -7
  673. package/esm2022/navbar/vertical-navbar.component.mjs +0 -128
  674. package/esm2022/navbar-ic/index.mjs +0 -2
  675. package/esm2022/navbar-ic/koobiq-components-navbar-ic.mjs +0 -5
  676. package/esm2022/navbar-ic/navbar-ic-header.mjs +0 -74
  677. package/esm2022/navbar-ic/navbar-ic-item.mjs +0 -390
  678. package/esm2022/navbar-ic/navbar-ic.animation.mjs +0 -17
  679. package/esm2022/navbar-ic/navbar-ic.mjs +0 -310
  680. package/esm2022/navbar-ic/navbar-ic.module.mjs +0 -74
  681. package/esm2022/navbar-ic/public-api.mjs +0 -5
  682. package/esm2022/notification-center/index.mjs +0 -2
  683. package/esm2022/notification-center/koobiq-components-notification-center.mjs +0 -5
  684. package/esm2022/notification-center/notification-center-animations.mjs +0 -18
  685. package/esm2022/notification-center/notification-center.mjs +0 -329
  686. package/esm2022/notification-center/notification-center.module.mjs +0 -38
  687. package/esm2022/notification-center/notification-center.service.mjs +0 -127
  688. package/esm2022/notification-center/notification-item.mjs +0 -70
  689. package/esm2022/notification-center/public-api.mjs +0 -5
  690. package/esm2022/overflow-items/index.mjs +0 -3
  691. package/esm2022/overflow-items/koobiq-components-overflow-items.mjs +0 -5
  692. package/esm2022/overflow-items/module.mjs +0 -25
  693. package/esm2022/overflow-items/overflow-items.mjs +0 -290
  694. package/esm2022/popover/index.mjs +0 -2
  695. package/esm2022/popover/koobiq-components-popover.mjs +0 -5
  696. package/esm2022/popover/popover-animations.mjs +0 -16
  697. package/esm2022/popover/popover-confirm.component.mjs +0 -97
  698. package/esm2022/popover/popover.component.mjs +0 -410
  699. package/esm2022/popover/popover.module.mjs +0 -67
  700. package/esm2022/popover/public-api.mjs +0 -5
  701. package/esm2022/progress-bar/index.mjs +0 -2
  702. package/esm2022/progress-bar/koobiq-components-progress-bar.mjs +0 -5
  703. package/esm2022/progress-bar/progress-bar.component.mjs +0 -62
  704. package/esm2022/progress-bar/progress-bar.module.mjs +0 -32
  705. package/esm2022/progress-bar/public-api.mjs +0 -3
  706. package/esm2022/progress-spinner/index.mjs +0 -2
  707. package/esm2022/progress-spinner/koobiq-components-progress-spinner.mjs +0 -5
  708. package/esm2022/progress-spinner/progress-spinner.component.mjs +0 -78
  709. package/esm2022/progress-spinner/progress-spinner.module.mjs +0 -35
  710. package/esm2022/progress-spinner/public-api.mjs +0 -3
  711. package/esm2022/public-api.mjs +0 -2
  712. package/esm2022/radio/index.mjs +0 -2
  713. package/esm2022/radio/koobiq-components-radio.mjs +0 -5
  714. package/esm2022/radio/public-api.mjs +0 -3
  715. package/esm2022/radio/radio.component.mjs +0 -451
  716. package/esm2022/radio/radio.module.mjs +0 -18
  717. package/esm2022/resizer/index.mjs +0 -3
  718. package/esm2022/resizer/koobiq-components-resizer.mjs +0 -5
  719. package/esm2022/resizer/module.mjs +0 -17
  720. package/esm2022/resizer/resizer.mjs +0 -135
  721. package/esm2022/risk-level/index.mjs +0 -2
  722. package/esm2022/risk-level/koobiq-components-risk-level.mjs +0 -5
  723. package/esm2022/risk-level/public-api.mjs +0 -3
  724. package/esm2022/risk-level/risk-level.component.mjs +0 -40
  725. package/esm2022/risk-level/risk-level.module.mjs +0 -24
  726. package/esm2022/scrollbar/index.mjs +0 -2
  727. package/esm2022/scrollbar/koobiq-components-scrollbar.mjs +0 -5
  728. package/esm2022/scrollbar/public-api.mjs +0 -5
  729. package/esm2022/scrollbar/scrollbar.component.mjs +0 -133
  730. package/esm2022/scrollbar/scrollbar.directive.mjs +0 -105
  731. package/esm2022/scrollbar/scrollbar.module.mjs +0 -25
  732. package/esm2022/scrollbar/scrollbar.types.mjs +0 -14
  733. package/esm2022/search-expandable/index.mjs +0 -2
  734. package/esm2022/search-expandable/koobiq-components-search-expandable.mjs +0 -5
  735. package/esm2022/search-expandable/public-api.mjs +0 -3
  736. package/esm2022/search-expandable/search-expandable.mjs +0 -177
  737. package/esm2022/search-expandable/search-expandable.module.mjs +0 -18
  738. package/esm2022/select/index.mjs +0 -2
  739. package/esm2022/select/koobiq-components-select.mjs +0 -5
  740. package/esm2022/select/public-api.mjs +0 -4
  741. package/esm2022/select/select-option.directive.mjs +0 -69
  742. package/esm2022/select/select.component.mjs +0 -1154
  743. package/esm2022/select/select.module.mjs +0 -81
  744. package/esm2022/sidebar/index.mjs +0 -2
  745. package/esm2022/sidebar/koobiq-components-sidebar.mjs +0 -5
  746. package/esm2022/sidebar/public-api.mjs +0 -3
  747. package/esm2022/sidebar/sidebar-animations.mjs +0 -23
  748. package/esm2022/sidebar/sidebar.component.mjs +0 -169
  749. package/esm2022/sidebar/sidebar.module.mjs +0 -30
  750. package/esm2022/sidepanel/index.mjs +0 -2
  751. package/esm2022/sidepanel/koobiq-components-sidepanel.mjs +0 -5
  752. package/esm2022/sidepanel/public-api.mjs +0 -7
  753. package/esm2022/sidepanel/sidepanel-animations.mjs +0 -29
  754. package/esm2022/sidepanel/sidepanel-config.mjs +0 -33
  755. package/esm2022/sidepanel/sidepanel-container.component.mjs +0 -126
  756. package/esm2022/sidepanel/sidepanel-directives.mjs +0 -168
  757. package/esm2022/sidepanel/sidepanel-ref.mjs +0 -60
  758. package/esm2022/sidepanel/sidepanel.module.mjs +0 -73
  759. package/esm2022/sidepanel/sidepanel.service.mjs +0 -167
  760. package/esm2022/split-button/index.mjs +0 -2
  761. package/esm2022/split-button/koobiq-components-split-button.mjs +0 -5
  762. package/esm2022/split-button/public-api.mjs +0 -3
  763. package/esm2022/split-button/split-button.mjs +0 -133
  764. package/esm2022/split-button/split-button.module.mjs +0 -18
  765. package/esm2022/splitter/index.mjs +0 -2
  766. package/esm2022/splitter/koobiq-components-splitter.mjs +0 -5
  767. package/esm2022/splitter/public-api.mjs +0 -3
  768. package/esm2022/splitter/splitter.component.mjs +0 -492
  769. package/esm2022/splitter/splitter.module.mjs +0 -34
  770. package/esm2022/table/index.mjs +0 -2
  771. package/esm2022/table/koobiq-components-table.mjs +0 -5
  772. package/esm2022/table/public-api.mjs +0 -3
  773. package/esm2022/table/table.component.mjs +0 -36
  774. package/esm2022/table/table.module.mjs +0 -32
  775. package/esm2022/tabs/index.mjs +0 -2
  776. package/esm2022/tabs/koobiq-components-tabs.mjs +0 -5
  777. package/esm2022/tabs/paginated-tab-header.mjs +0 -490
  778. package/esm2022/tabs/public-api.mjs +0 -11
  779. package/esm2022/tabs/tab-body.component.mjs +0 -178
  780. package/esm2022/tabs/tab-content.directive.mjs +0 -15
  781. package/esm2022/tabs/tab-group.component.mjs +0 -384
  782. package/esm2022/tabs/tab-header.component.mjs +0 -60
  783. package/esm2022/tabs/tab-label-wrapper.directive.mjs +0 -86
  784. package/esm2022/tabs/tab-label.directive.mjs +0 -17
  785. package/esm2022/tabs/tab-nav-bar.mjs +0 -292
  786. package/esm2022/tabs/tab.component.mjs +0 -145
  787. package/esm2022/tabs/tabs-animations.mjs +0 -24
  788. package/esm2022/tabs/tabs.module.mjs +0 -95
  789. package/esm2022/tags/index.mjs +0 -2
  790. package/esm2022/tags/koobiq-components-tags.mjs +0 -5
  791. package/esm2022/tags/public-api.mjs +0 -6
  792. package/esm2022/tags/tag-default-options.mjs +0 -4
  793. package/esm2022/tags/tag-input.mjs +0 -281
  794. package/esm2022/tags/tag-list.component.mjs +0 -765
  795. package/esm2022/tags/tag-text-control.mjs +0 -2
  796. package/esm2022/tags/tag.component.mjs +0 -647
  797. package/esm2022/tags/tag.module.mjs +0 -67
  798. package/esm2022/textarea/index.mjs +0 -2
  799. package/esm2022/textarea/koobiq-components-textarea.mjs +0 -5
  800. package/esm2022/textarea/public-api.mjs +0 -3
  801. package/esm2022/textarea/textarea.component.mjs +0 -300
  802. package/esm2022/textarea/textarea.module.mjs +0 -20
  803. package/esm2022/time-range/constants.mjs +0 -42
  804. package/esm2022/time-range/index.mjs +0 -8
  805. package/esm2022/time-range/koobiq-components-time-range.mjs +0 -5
  806. package/esm2022/time-range/module.mjs +0 -36
  807. package/esm2022/time-range/time-range-editor.mjs +0 -224
  808. package/esm2022/time-range/time-range-title-as-form-field.mjs +0 -60
  809. package/esm2022/time-range/time-range-title.mjs +0 -112
  810. package/esm2022/time-range/time-range.mjs +0 -234
  811. package/esm2022/time-range/time-range.service.mjs +0 -126
  812. package/esm2022/time-range/types.mjs +0 -2
  813. package/esm2022/timepicker/index.mjs +0 -2
  814. package/esm2022/timepicker/koobiq-components-timepicker.mjs +0 -5
  815. package/esm2022/timepicker/public-api.mjs +0 -4
  816. package/esm2022/timepicker/timepicker.constants.mjs +0 -29
  817. package/esm2022/timepicker/timepicker.directive.mjs +0 -686
  818. package/esm2022/timepicker/timepicker.module.mjs +0 -29
  819. package/esm2022/timezone/cities-by-filter.pipe.mjs +0 -17
  820. package/esm2022/timezone/index.mjs +0 -2
  821. package/esm2022/timezone/koobiq-components-timezone.mjs +0 -5
  822. package/esm2022/timezone/public-api.mjs +0 -7
  823. package/esm2022/timezone/timezone-option.component.mjs +0 -50
  824. package/esm2022/timezone/timezone-option.directive.mjs +0 -54
  825. package/esm2022/timezone/timezone-select.component.mjs +0 -55
  826. package/esm2022/timezone/timezone.models.mjs +0 -2
  827. package/esm2022/timezone/timezone.module.mjs +0 -82
  828. package/esm2022/timezone/timezone.utils.mjs +0 -80
  829. package/esm2022/timezone/utc-offset.pipe.mjs +0 -17
  830. package/esm2022/title/index.mjs +0 -2
  831. package/esm2022/title/koobiq-components-title.mjs +0 -5
  832. package/esm2022/title/public-api.mjs +0 -3
  833. package/esm2022/title/title.directive.mjs +0 -108
  834. package/esm2022/title/title.module.mjs +0 -18
  835. package/esm2022/toast/index.mjs +0 -2
  836. package/esm2022/toast/koobiq-components-toast.mjs +0 -5
  837. package/esm2022/toast/public-api.mjs +0 -6
  838. package/esm2022/toast/toast-animations.mjs +0 -10
  839. package/esm2022/toast/toast-container.component.mjs +0 -57
  840. package/esm2022/toast/toast.component.mjs +0 -125
  841. package/esm2022/toast/toast.module.mjs +0 -26
  842. package/esm2022/toast/toast.service.mjs +0 -197
  843. package/esm2022/toast/toast.type.mjs +0 -39
  844. package/esm2022/toggle/index.mjs +0 -2
  845. package/esm2022/toggle/koobiq-components-toggle.mjs +0 -5
  846. package/esm2022/toggle/public-api.mjs +0 -3
  847. package/esm2022/toggle/toggle.component.mjs +0 -254
  848. package/esm2022/toggle/toggle.module.mjs +0 -18
  849. package/esm2022/tooltip/index.mjs +0 -2
  850. package/esm2022/tooltip/koobiq-components-tooltip.mjs +0 -5
  851. package/esm2022/tooltip/public-api.mjs +0 -3
  852. package/esm2022/tooltip/tooltip.animations.mjs +0 -19
  853. package/esm2022/tooltip/tooltip.component.mjs +0 -400
  854. package/esm2022/tooltip/tooltip.module.mjs +0 -35
  855. package/esm2022/top-bar/index.mjs +0 -2
  856. package/esm2022/top-bar/koobiq-components-top-bar.mjs +0 -5
  857. package/esm2022/top-bar/module.mjs +0 -25
  858. package/esm2022/top-bar/public-api.mjs +0 -3
  859. package/esm2022/top-bar/top-bar.mjs +0 -74
  860. package/esm2022/tree/control/base-tree-control.mjs +0 -59
  861. package/esm2022/tree/control/flat-tree-control.filters.mjs +0 -52
  862. package/esm2022/tree/control/flat-tree-control.mjs +0 -109
  863. package/esm2022/tree/control/nested-tree-control.mjs +0 -40
  864. package/esm2022/tree/control/tree-control.mjs +0 -2
  865. package/esm2022/tree/data-source/flat-data-source.mjs +0 -157
  866. package/esm2022/tree/data-source/nested-data-source.mjs +0 -28
  867. package/esm2022/tree/index.mjs +0 -2
  868. package/esm2022/tree/koobiq-components-tree.mjs +0 -5
  869. package/esm2022/tree/node.mjs +0 -31
  870. package/esm2022/tree/outlet.mjs +0 -15
  871. package/esm2022/tree/padding.directive.mjs +0 -108
  872. package/esm2022/tree/public-api.mjs +0 -17
  873. package/esm2022/tree/toggle.mjs +0 -93
  874. package/esm2022/tree/tree-base.mjs +0 -236
  875. package/esm2022/tree/tree-errors.mjs +0 -36
  876. package/esm2022/tree/tree-option.component.mjs +0 -303
  877. package/esm2022/tree/tree-selection.component.mjs +0 -568
  878. package/esm2022/tree/tree.mjs +0 -19
  879. package/esm2022/tree/tree.module.mjs +0 -64
  880. package/esm2022/tree-select/index.mjs +0 -2
  881. package/esm2022/tree-select/koobiq-components-tree-select.mjs +0 -5
  882. package/esm2022/tree-select/public-api.mjs +0 -3
  883. package/esm2022/tree-select/tree-select.component.mjs +0 -1034
  884. package/esm2022/tree-select/tree-select.module.mjs +0 -71
  885. package/esm2022/username/constants.mjs +0 -25
  886. package/esm2022/username/index.mjs +0 -6
  887. package/esm2022/username/koobiq-components-username.mjs +0 -5
  888. package/esm2022/username/module.mjs +0 -35
  889. package/esm2022/username/types.mjs +0 -32
  890. package/esm2022/username/username.mjs +0 -129
  891. package/esm2022/username/username.pipe.mjs +0 -92
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-checkbox.mjs","sources":["../../../packages/components/checkbox/checkbox-config.ts","../../../packages/components/checkbox/checkbox.ts","../../../packages/components/checkbox/checkbox.html","../../../packages/components/checkbox/checkbox-required-validator.ts","../../../packages/components/checkbox/checkbox-module.ts","../../../packages/components/checkbox/koobiq-components-checkbox.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\n/**\n * Checkbox click action when user click on input element.\n * noop: Do not toggle checked or indeterminate.\n * check: Only toggle checked status, ignore indeterminate.\n * check-indeterminate: Toggle checked status, set indeterminate to false. Default behavior.\n * undefined: Same as `check-indeterminate`.\n */\nexport type KbqCheckboxClickAction = 'noop' | 'check' | 'check-indeterminate' | undefined;\n\n/**\n * Injection token that can be used to specify the checkbox click behavior.\n */\nexport const KBQ_CHECKBOX_CLICK_ACTION = new InjectionToken<KbqCheckboxClickAction>('kbq-checkbox-click-action');\n","import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport {\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n numberAttribute,\n OnDestroy,\n Optional,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { KbqCheckedState, KbqColorDirective } from '@koobiq/components/core';\nimport { KBQ_CHECKBOX_CLICK_ACTION, KbqCheckboxClickAction } from './checkbox-config';\n\n// Increasing integer for generating unique ids for checkbox components.\nlet nextUniqueId = 0;\n\n/**\n * Provider Expression that allows kbq-checkbox to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n * @docs-private\n */\nexport const KBQ_CHECKBOX_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => KbqCheckbox),\n multi: true\n};\n\n/**\n * Represents the different states that require custom transitions between them.\n * @docs-private\n */\nexport enum TransitionCheckState {\n /** The initial state of the component before any user interaction. */\n Init = 'init',\n /** The state representing the component when it's becoming checked. */\n Checked = 'checked',\n /** The state representing the component when it's becoming unchecked. */\n Unchecked = 'unchecked',\n /** The state representing the component when it's becoming indeterminate. */\n Indeterminate = 'indeterminate'\n}\n\n/** Change event object emitted by KbqCheckbox. */\nexport class KbqCheckboxChange {\n /** The source KbqCheckbox of the event. */\n source: KbqCheckbox;\n /** The new `checked` value of the checkbox. */\n checked: boolean;\n}\n\n/**\n * A Koobiq checkbox component. Supports all of the functionality of an HTML5 checkbox,\n * and exposes a similar API. A KbqCheckbox can be either checked, unchecked, indeterminate, or\n * disabled. Note that all additional accessibility attributes are taken care of by the component,\n * so there is no need to provide them yourself. However, if you want to omit a label and still\n * have the checkbox be accessible, you may supply an [aria-label] input.\n */\n@Component({\n selector: 'kbq-checkbox',\n exportAs: 'kbqCheckbox',\n templateUrl: 'checkbox.html',\n styleUrls: ['checkbox.scss', 'checkbox-tokens.scss'],\n host: {\n class: 'kbq-checkbox',\n '[id]': 'id',\n '[attr.id]': 'id',\n '[attr.disabled]': 'disabled',\n '[class.kbq-checkbox_big]': 'big',\n '[class.kbq-indeterminate]': 'indeterminate',\n '[class.kbq-checked]': 'checked',\n '[class.kbq-disabled]': 'disabled',\n '[class.kbq-checkbox_label-before]': 'labelPosition == \"before\"'\n },\n providers: [KBQ_CHECKBOX_CONTROL_VALUE_ACCESSOR],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqCheckbox extends KbqColorDirective implements ControlValueAccessor, AfterViewInit, OnDestroy {\n @Input() big: boolean = false;\n\n /** A unique id for the checkbox input. If none is supplied, it will be auto-generated. */\n @Input() id: string;\n\n /** Whether the label should appear after or before the checkbox. Defaults to 'after' */\n @Input() labelPosition: 'before' | 'after' = 'after';\n\n /** Name value will be applied to the input element if present */\n @Input() name: string | null = null;\n\n /** Event emitted when the checkbox's `checked` value changes. */\n @Output() readonly change: EventEmitter<KbqCheckboxChange> = new EventEmitter<KbqCheckboxChange>();\n\n /** Event emitted when the checkbox's `indeterminate` value changes. */\n @Output() readonly indeterminateChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** The value attribute of the native input element */\n @Input() value: string;\n\n /** The native `<input type=\"checkbox\">` element */\n @ViewChild('input', { static: false }) inputElement: ElementRef;\n\n /** Returns the unique id for the visual hidden input. */\n get inputId(): string {\n return `${this.id || this.uniqueId}-input`;\n }\n\n /** Whether the checkbox is required. */\n @Input({ transform: booleanAttribute }) required: boolean | undefined;\n\n /**\n * Whether the checkbox is checked.\n */\n @Input()\n get checked(): boolean {\n return this._checked;\n }\n\n set checked(value: boolean) {\n if (value !== this.checked) {\n this._checked = value;\n this.changeDetectorRef.markForCheck();\n }\n }\n\n private _checked: boolean = false;\n\n /** Whether the checkbox is disabled. */\n @Input({ transform: booleanAttribute })\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n if (value !== this.disabled) {\n this._disabled = value;\n this.changeDetectorRef.markForCheck();\n }\n }\n\n private _disabled: boolean = false;\n\n @Input({ transform: numberAttribute })\n get tabIndex(): number {\n return this.disabled ? -1 : this._tabIndex;\n }\n\n set tabIndex(value: number) {\n this._tabIndex = value;\n }\n\n private _tabIndex = 0;\n\n /**\n * Whether the checkbox is indeterminate. This is also known as \"mixed\" mode and can be used to\n * represent a checkbox with three states, e.g. a checkbox that represents a nested list of\n * checkable items. Note that whenever checkbox is manually clicked, indeterminate is immediately\n * set to false.\n */\n @Input()\n get indeterminate(): boolean {\n return this._indeterminate;\n }\n\n set indeterminate(value: boolean) {\n const changed = value !== this._indeterminate;\n\n this._indeterminate = value;\n\n if (changed) {\n if (this._indeterminate) {\n this.transitionCheckState(TransitionCheckState.Indeterminate);\n } else {\n this.transitionCheckState(this.checked ? TransitionCheckState.Checked : TransitionCheckState.Unchecked);\n }\n\n this.indeterminateChange.emit(this._indeterminate);\n }\n }\n\n private _indeterminate: boolean = false;\n\n private uniqueId: string = `kbq-checkbox-${++nextUniqueId}`;\n\n private currentAnimationClass: string = '';\n\n private currentCheckState: TransitionCheckState = TransitionCheckState.Init;\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n private focusMonitor: FocusMonitor,\n @Optional() @Inject(KBQ_CHECKBOX_CLICK_ACTION) private clickAction: KbqCheckboxClickAction\n ) {\n super();\n\n this.id = this.uniqueId;\n }\n\n /**\n * Called when the checkbox is blurred. Needed to properly implement ControlValueAccessor.\n * @docs-private\n */\n onTouched: () => any = () => {};\n\n ngAfterViewInit() {\n this.focusMonitor\n .monitor(this.inputElement.nativeElement)\n .subscribe((focusOrigin) => this.onInputFocusChange(focusOrigin));\n }\n\n ngOnDestroy() {\n this.focusMonitor.stopMonitoring(this.inputElement.nativeElement);\n }\n\n /** Method being called whenever the label text changes. */\n onLabelTextChange() {\n // This method is getting called whenever the label of the checkbox changes.\n // Since the checkbox uses the OnPush strategy we need to notify it about the change\n // that has been recognized by the cdkObserveContent directive.\n this.changeDetectorRef.markForCheck();\n }\n\n // Implemented as part of ControlValueAccessor.\n writeValue(value: any) {\n this.checked = !!value;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn: (value: any) => void) {\n this.controlValueAccessorChangeFn = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n getAriaChecked(): KbqCheckedState {\n return this.checked ? 'true' : this.indeterminate ? 'mixed' : 'false';\n }\n\n /** Toggles the `checked` state of the checkbox. */\n toggle(): void {\n this.checked = !this.checked;\n }\n\n /**\n * Event handler for checkbox input element.\n * Toggles checked state if element is not disabled.\n * Do not toggle on (change) event since IE doesn't fire change event when\n * indeterminate checkbox is clicked.\n * @param event Input click event\n */\n onInputClick(event: Event) {\n // We have to stop propagation for click events on the visual hidden input element.\n // By default, when a user clicks on a label element, a generated click event will be\n // dispatched on the associated input element. Since we are using a label element as our\n // root container, the click event on the `checkbox` will be executed twice.\n // The real click event will bubble up, and the generated click event also tries to bubble up.\n // This will lead to multiple click events.\n // Preventing bubbling for the second event will solve that issue.\n event.stopPropagation();\n\n // If resetIndeterminate is false, and the current state is indeterminate, do nothing on click\n if (!this.disabled && this.clickAction !== 'noop') {\n // When user manually click on the checkbox, `indeterminate` is set to false.\n if (this.indeterminate && this.clickAction !== 'check') {\n Promise.resolve().then(() => {\n this._indeterminate = false;\n this.indeterminateChange.emit(this._indeterminate);\n });\n }\n\n this.toggle();\n this.transitionCheckState(this._checked ? TransitionCheckState.Checked : TransitionCheckState.Unchecked);\n\n // Emit our custom change event if the native input emitted one.\n // It is important to only emit it, if the native input triggered one, because\n // we don't want to trigger a change event, when the `checked` variable changes for example.\n this.emitChangeEvent();\n } else if (!this.disabled && this.clickAction === 'noop') {\n // Reset native input when clicked with noop. The native checkbox becomes checked after\n // click, reset it to be align with `checked` value of `kbq-checkbox`.\n this.inputElement.nativeElement.checked = this.checked;\n this.inputElement.nativeElement.indeterminate = this.indeterminate;\n }\n }\n\n /** Focuses the checkbox. */\n focus(): void {\n this.focusMonitor.focusVia(this.inputElement.nativeElement, 'keyboard');\n }\n\n onInteractionEvent(event: Event) {\n // We always have to stop propagation on the change event.\n // Otherwise the change event, from the input element, will bubble up and\n // emit its event object to the `change` output.\n event.stopPropagation();\n }\n private controlValueAccessorChangeFn: (value: any) => void = () => {};\n\n private transitionCheckState(newState: TransitionCheckState) {\n const oldState = this.currentCheckState;\n const element: HTMLElement = this.elementRef.nativeElement;\n\n if (oldState === newState) {\n return;\n }\n\n if (this.currentAnimationClass.length > 0) {\n element.classList.remove(this.currentAnimationClass);\n }\n\n this.currentCheckState = newState;\n\n if (this.currentAnimationClass.length > 0) {\n element.classList.add(this.currentAnimationClass);\n }\n }\n\n private emitChangeEvent() {\n const event = new KbqCheckboxChange();\n\n event.source = this;\n event.checked = this.checked;\n\n this.controlValueAccessorChangeFn(this.checked);\n this.change.emit(event);\n }\n\n /** Function is called whenever the focus changes for the input element. */\n private onInputFocusChange(focusOrigin: FocusOrigin) {\n if (focusOrigin) {\n this.onTouched();\n }\n }\n}\n","<label #label class=\"kbq-checkbox__layout\" [attr.for]=\"inputId\">\n <div\n class=\"kbq-checkbox__inner-container\"\n [class.kbq-checkbox__inner-container_no-side-margin]=\"\n !checkboxLabel.textContent || !checkboxLabel.textContent.trim()\n \"\n >\n <input\n #input\n type=\"checkbox\"\n class=\"kbq-checkbox-input cdk-visually-hidden\"\n [attr.aria-checked]=\"getAriaChecked()\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [id]=\"inputId\"\n [indeterminate]=\"indeterminate\"\n [required]=\"required\"\n [tabIndex]=\"tabIndex\"\n (change)=\"onInteractionEvent($event)\"\n (click)=\"onInputClick($event)\"\n />\n <div class=\"kbq-checkbox__frame\">\n <i class=\"kbq-checkbox-checkmark kbq kbq-check-s_16\"></i>\n <i class=\"kbq-checkbox-mixedmark kbq kbq-minus-s_16\"></i>\n </div>\n </div>\n\n <div class=\"kbq-checkbox__text-container\">\n <span #checkboxLabel class=\"kbq-checkbox-label\" (cdkObserveContent)=\"onLabelTextChange()\">\n <ng-content />\n </span>\n\n <ng-content select=\"kbq-hint\" />\n </div>\n</label>\n","import { Directive, forwardRef, Provider } from '@angular/core';\nimport { CheckboxRequiredValidator, NG_VALIDATORS } from '@angular/forms';\n\nexport const KBQ_CHECKBOX_REQUIRED_VALIDATOR: Provider = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => KbqCheckboxRequiredValidator),\n multi: true\n};\n\n/**\n * Validator for koobiq checkbox's required attribute in template-driven checkbox.\n * Current CheckboxRequiredValidator only work with `input type=checkbox` and does not\n * work with `kbq-checkbox`.\n */\n@Directive({\n selector: `kbq-checkbox[required][formControlName],\n kbq-checkbox[required][formControl], kbq-checkbox[required][ngModel]`,\n providers: [KBQ_CHECKBOX_REQUIRED_VALIDATOR],\n host: { '[attr.required]': 'required ? \"\" : null' }\n})\nexport class KbqCheckboxRequiredValidator extends CheckboxRequiredValidator {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { KbqCheckbox } from './checkbox';\nimport { KbqCheckboxRequiredValidator } from './checkbox-required-validator';\n\n@NgModule({\n imports: [CommonModule],\n exports: [KbqCheckbox, KbqCheckboxRequiredValidator],\n declarations: [KbqCheckbox, KbqCheckboxRequiredValidator]\n})\nexport class KbqCheckboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAWA;;AAEG;MACU,yBAAyB,GAAG,IAAI,cAAc,CAAyB,2BAA2B;;ACS/G;AACA,IAAI,YAAY,GAAG,CAAC,CAAC;AAErB;;;;AAIG;AACU,MAAA,mCAAmC,GAAQ;AACpD,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,WAAW,CAAC;AAC1C,IAAA,KAAK,EAAE,IAAI;EACb;AAEF;;;AAGG;IACS,qBASX;AATD,CAAA,UAAY,oBAAoB,EAAA;;AAE5B,IAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;;AAEb,IAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;;AAEnB,IAAA,oBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;;AAEvB,IAAA,oBAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AACnC,CAAC,EATW,oBAAoB,KAApB,oBAAoB,GAS/B,EAAA,CAAA,CAAA,CAAA;AAED;MACa,iBAAiB,CAAA;AAK7B,CAAA;AAED;;;;;;AAMG;AAqBG,MAAO,WAAY,SAAQ,iBAAiB,CAAA;;AAyB9C,IAAA,IAAI,OAAO,GAAA;QACP,OAAO,CAAA,EAAG,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAA,MAAA,CAAQ,CAAC;KAC9C;AAKD;;AAEG;AACH,IAAA,IACI,OAAO,GAAA;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;KACxB;IAED,IAAI,OAAO,CAAC,KAAc,EAAA;AACtB,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,OAAO,EAAE;AACxB,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,YAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;SACzC;KACJ;;AAKD,IAAA,IACI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;IAED,IAAI,QAAQ,CAAC,KAAc,EAAA;AACvB,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,QAAQ,EAAE;AACzB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,YAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;SACzC;KACJ;AAID,IAAA,IACI,QAAQ,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;KAC9C;IAED,IAAI,QAAQ,CAAC,KAAa,EAAA;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KAC1B;AAID;;;;;AAKG;AACH,IAAA,IACI,aAAa,GAAA;QACb,OAAO,IAAI,CAAC,cAAc,CAAC;KAC9B;IAED,IAAI,aAAa,CAAC,KAAc,EAAA;AAC5B,QAAA,MAAM,OAAO,GAAG,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC;AAE9C,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAE5B,IAAI,OAAO,EAAE;AACT,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACrB,gBAAA,IAAI,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;aACjE;iBAAM;AACH,gBAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,GAAG,oBAAoB,CAAC,OAAO,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;aAC3G;YAED,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SACtD;KACJ;AAUD,IAAA,WAAA,CACY,iBAAoC,EACpC,YAA0B,EACqB,WAAmC,EAAA;AAE1F,QAAA,KAAK,EAAE,CAAC;QAJA,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACpC,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QACqB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAwB;QAhHrF,IAAG,CAAA,GAAA,GAAY,KAAK,CAAC;;QAMrB,IAAa,CAAA,aAAA,GAAuB,OAAO,CAAC;;QAG5C,IAAI,CAAA,IAAA,GAAkB,IAAI,CAAC;;AAGjB,QAAA,IAAA,CAAA,MAAM,GAAoC,IAAI,YAAY,EAAqB,CAAC;;AAGhF,QAAA,IAAA,CAAA,mBAAmB,GAA0B,IAAI,YAAY,EAAW,CAAC;QA+BpF,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAe1B,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAW3B,IAAS,CAAA,SAAA,GAAG,CAAC,CAAC;QA6Bd,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;AAEhC,QAAA,IAAA,CAAA,QAAQ,GAAW,CAAA,aAAA,EAAgB,EAAE,YAAY,EAAE,CAAC;QAEpD,IAAqB,CAAA,qBAAA,GAAW,EAAE,CAAC;AAEnC,QAAA,IAAA,CAAA,iBAAiB,GAAyB,oBAAoB,CAAC,IAAI,CAAC;AAY5E;;;AAGG;AACH,QAAA,IAAA,CAAA,SAAS,GAAc,MAAK,GAAG,CAAC;AAsGxB,QAAA,IAAA,CAAA,4BAA4B,GAAyB,MAAK,GAAG,CAAC;AA7GlE,QAAA,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;KAC3B;IAQD,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,YAAY;AACZ,aAAA,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;AACxC,aAAA,SAAS,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC;KACzE;IAED,WAAW,GAAA;QACP,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;KACrE;;IAGD,iBAAiB,GAAA;;;;AAIb,QAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;KACzC;;AAGD,IAAA,UAAU,CAAC,KAAU,EAAA;AACjB,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC;KAC1B;;AAGD,IAAA,gBAAgB,CAAC,EAAwB,EAAA;AACrC,QAAA,IAAI,CAAC,4BAA4B,GAAG,EAAE,CAAC;KAC1C;;AAGD,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACrB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACvB;;AAGD,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC9B;IAED,cAAc,GAAA;QACV,OAAO,IAAI,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,aAAa,GAAG,OAAO,GAAG,OAAO,CAAC;KACzE;;IAGD,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;KAChC;AAED;;;;;;AAMG;AACH,IAAA,YAAY,CAAC,KAAY,EAAA;;;;;;;;QAQrB,KAAK,CAAC,eAAe,EAAE,CAAC;;QAGxB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,KAAK,MAAM,EAAE;;YAE/C,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,EAAE;AACpD,gBAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAK;AACxB,oBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;oBAC5B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACvD,iBAAC,CAAC,CAAC;aACN;YAED,IAAI,CAAC,MAAM,EAAE,CAAC;AACd,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,GAAG,oBAAoB,CAAC,OAAO,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;;;;YAKzG,IAAI,CAAC,eAAe,EAAE,CAAC;SAC1B;aAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,KAAK,MAAM,EAAE;;;YAGtD,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YACvD,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;SACtE;KACJ;;IAGD,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;KAC3E;AAED,IAAA,kBAAkB,CAAC,KAAY,EAAA;;;;QAI3B,KAAK,CAAC,eAAe,EAAE,CAAC;KAC3B;AAGO,IAAA,oBAAoB,CAAC,QAA8B,EAAA;AACvD,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC;AACxC,QAAA,MAAM,OAAO,GAAgB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;AAE3D,QAAA,IAAI,QAAQ,KAAK,QAAQ,EAAE;YACvB,OAAO;SACV;QAED,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE;YACvC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;SACxD;AAED,QAAA,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC;QAElC,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE;YACvC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;SACrD;KACJ;IAEO,eAAe,GAAA;AACnB,QAAA,MAAM,KAAK,GAAG,IAAI,iBAAiB,EAAE,CAAC;AAEtC,QAAA,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;AACpB,QAAA,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;AAE7B,QAAA,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAChD,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3B;;AAGO,IAAA,kBAAkB,CAAC,WAAwB,EAAA;QAC/C,IAAI,WAAW,EAAE;YACb,IAAI,CAAC,SAAS,EAAE,CAAC;SACpB;KACJ;AAtQQ,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,+EAiHI,yBAAyB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;sHAjHxC,WAAW,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAA,EAAA,eAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EA8BA,gBAAgB,CAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAoBhB,gBAAgB,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAchB,eAAe,CAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,IAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,KAAA,EAAA,yBAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,iCAAA,EAAA,6BAAA,EAAA,EAAA,cAAA,EAAA,cAAA,EAAA,EAAA,SAAA,EApExB,CAAC,mCAAmC,CAAC,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECnFpD,u1CAqCA,EAAA,MAAA,EAAA,CAAA,moUAAA,EAAA,sjIAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FDkDa,WAAW,EAAA,UAAA,EAAA,CAAA;kBApBvB,SAAS;+BACI,cAAc,EAAA,QAAA,EACd,aAAa,EAGjB,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE,cAAc;AACrB,wBAAA,MAAM,EAAE,IAAI;AACZ,wBAAA,WAAW,EAAE,IAAI;AACjB,wBAAA,iBAAiB,EAAE,UAAU;AAC7B,wBAAA,0BAA0B,EAAE,KAAK;AACjC,wBAAA,2BAA2B,EAAE,eAAe;AAC5C,wBAAA,qBAAqB,EAAE,SAAS;AAChC,wBAAA,sBAAsB,EAAE,UAAU;AAClC,wBAAA,mCAAmC,EAAE,2BAA2B;qBACnE,EACU,SAAA,EAAA,CAAC,mCAAmC,CAAC,EACjC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,u1CAAA,EAAA,MAAA,EAAA,CAAA,moUAAA,EAAA,sjIAAA,CAAA,EAAA,CAAA;;0BAmH1C,QAAQ;;0BAAI,MAAM;2BAAC,yBAAyB,CAAA;yCAhHxC,GAAG,EAAA,CAAA;sBAAX,KAAK;gBAGG,EAAE,EAAA,CAAA;sBAAV,KAAK;gBAGG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAGG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAGa,MAAM,EAAA,CAAA;sBAAxB,MAAM;gBAGY,mBAAmB,EAAA,CAAA;sBAArC,MAAM;gBAGE,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAGiC,YAAY,EAAA,CAAA;sBAAlD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAQG,QAAQ,EAAA,CAAA;sBAA/C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAMlC,OAAO,EAAA,CAAA;sBADV,KAAK;gBAgBF,QAAQ,EAAA,CAAA;sBADX,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAelC,QAAQ,EAAA,CAAA;sBADX,KAAK;uBAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAA;gBAkBjC,aAAa,EAAA,CAAA;sBADhB,KAAK;;;AErKG,MAAA,+BAA+B,GAAa;AACrD,IAAA,OAAO,EAAE,aAAa;AACtB,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,4BAA4B,CAAC;AAC3D,IAAA,KAAK,EAAE,IAAI;EACb;AAEF;;;;AAIG;AAOG,MAAO,4BAA6B,SAAQ,yBAAyB,CAAA;kIAA9D,4BAA4B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;sHAA5B,4BAA4B,EAAA,QAAA,EAAA,6HAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,SAAA,EAH1B,CAAC,+BAA+B,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAGnC,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBANxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,CAAA;AACoE,iFAAA,CAAA;oBAC9E,SAAS,EAAE,CAAC,+BAA+B,CAAC;AAC5C,oBAAA,IAAI,EAAE,EAAE,iBAAiB,EAAE,sBAAsB,EAAE;AACtD,iBAAA,CAAA;;;MCTY,iBAAiB,CAAA;kIAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;mIAAjB,iBAAiB,EAAA,YAAA,EAAA,CAFX,WAAW,EAAE,4BAA4B,aAF9C,YAAY,CAAA,EAAA,OAAA,EAAA,CACZ,WAAW,EAAE,4BAA4B,CAAA,EAAA,CAAA,CAAA,EAAA;AAG1C,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAJhB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIb,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,OAAO,EAAE,CAAC,WAAW,EAAE,4BAA4B,CAAC;AACpD,oBAAA,YAAY,EAAE,CAAC,WAAW,EAAE,4BAA4B,CAAC;AAC5D,iBAAA,CAAA;;;ACTD;;AAEG;;;;"}
1
+ {"version":3,"file":"koobiq-components-checkbox.mjs","sources":["../../../packages/components/checkbox/checkbox-config.ts","../../../packages/components/checkbox/checkbox.ts","../../../packages/components/checkbox/checkbox.html","../../../packages/components/checkbox/checkbox-required-validator.ts","../../../packages/components/checkbox/checkbox-module.ts","../../../packages/components/checkbox/koobiq-components-checkbox.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\n/**\n * Checkbox click action when user click on input element.\n * noop: Do not toggle checked or indeterminate.\n * check: Only toggle checked status, ignore indeterminate.\n * check-indeterminate: Toggle checked status, set indeterminate to false. Default behavior.\n * undefined: Same as `check-indeterminate`.\n */\nexport type KbqCheckboxClickAction = 'noop' | 'check' | 'check-indeterminate' | undefined;\n\n/**\n * Injection token that can be used to specify the checkbox click behavior.\n */\nexport const KBQ_CHECKBOX_CLICK_ACTION = new InjectionToken<KbqCheckboxClickAction>('kbq-checkbox-click-action');\n","import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport { CdkObserveContent } from '@angular/cdk/observers';\nimport {\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n numberAttribute,\n OnDestroy,\n Optional,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { KbqCheckedState, KbqColorDirective } from '@koobiq/components/core';\nimport { KBQ_CHECKBOX_CLICK_ACTION, KbqCheckboxClickAction } from './checkbox-config';\n\n// Increasing integer for generating unique ids for checkbox components.\nlet nextUniqueId = 0;\n\n/**\n * Provider Expression that allows kbq-checkbox to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n * @docs-private\n */\nexport const KBQ_CHECKBOX_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => KbqCheckbox),\n multi: true\n};\n\n/**\n * Represents the different states that require custom transitions between them.\n * @docs-private\n */\nexport enum TransitionCheckState {\n /** The initial state of the component before any user interaction. */\n Init = 'init',\n /** The state representing the component when it's becoming checked. */\n Checked = 'checked',\n /** The state representing the component when it's becoming unchecked. */\n Unchecked = 'unchecked',\n /** The state representing the component when it's becoming indeterminate. */\n Indeterminate = 'indeterminate'\n}\n\n/** Change event object emitted by KbqCheckbox. */\nexport class KbqCheckboxChange {\n /** The source KbqCheckbox of the event. */\n source: KbqCheckbox;\n /** The new `checked` value of the checkbox. */\n checked: boolean;\n}\n\n/**\n * A Koobiq checkbox component. Supports all of the functionality of an HTML5 checkbox,\n * and exposes a similar API. A KbqCheckbox can be either checked, unchecked, indeterminate, or\n * disabled. Note that all additional accessibility attributes are taken care of by the component,\n * so there is no need to provide them yourself. However, if you want to omit a label and still\n * have the checkbox be accessible, you may supply an [aria-label] input.\n */\n@Component({\n selector: 'kbq-checkbox',\n imports: [\n CdkObserveContent\n ],\n templateUrl: 'checkbox.html',\n styleUrls: ['checkbox.scss', 'checkbox-tokens.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'kbqCheckbox',\n host: {\n class: 'kbq-checkbox',\n '[id]': 'id',\n '[attr.id]': 'id',\n '[attr.disabled]': 'disabled',\n '[class.kbq-checkbox_big]': 'big',\n '[class.kbq-indeterminate]': 'indeterminate',\n '[class.kbq-checked]': 'checked',\n '[class.kbq-disabled]': 'disabled',\n '[class.kbq-checkbox_label-before]': 'labelPosition == \"before\"'\n },\n providers: [KBQ_CHECKBOX_CONTROL_VALUE_ACCESSOR]\n})\nexport class KbqCheckbox extends KbqColorDirective implements ControlValueAccessor, AfterViewInit, OnDestroy {\n @Input() big: boolean = false;\n\n /** A unique id for the checkbox input. If none is supplied, it will be auto-generated. */\n @Input() id: string;\n\n /** Whether the label should appear after or before the checkbox. Defaults to 'after' */\n @Input() labelPosition: 'before' | 'after' = 'after';\n\n /** Name value will be applied to the input element if present */\n @Input() name: string | null = null;\n\n /** Event emitted when the checkbox's `checked` value changes. */\n @Output() readonly change: EventEmitter<KbqCheckboxChange> = new EventEmitter<KbqCheckboxChange>();\n\n /** Event emitted when the checkbox's `indeterminate` value changes. */\n @Output() readonly indeterminateChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** The value attribute of the native input element */\n @Input() value: string;\n\n /** The native `<input type=\"checkbox\">` element */\n @ViewChild('input', { static: false }) inputElement: ElementRef;\n\n /** Returns the unique id for the visual hidden input. */\n get inputId(): string {\n return `${this.id || this.uniqueId}-input`;\n }\n\n /** Whether the checkbox is required. */\n @Input({ transform: booleanAttribute }) required: boolean | undefined;\n\n /**\n * Whether the checkbox is checked.\n */\n @Input()\n get checked(): boolean {\n return this._checked;\n }\n\n set checked(value: boolean) {\n if (value !== this.checked) {\n this._checked = value;\n this.changeDetectorRef.markForCheck();\n }\n }\n\n private _checked: boolean = false;\n\n /** Whether the checkbox is disabled. */\n @Input({ transform: booleanAttribute })\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n if (value !== this.disabled) {\n this._disabled = value;\n this.changeDetectorRef.markForCheck();\n }\n }\n\n private _disabled: boolean = false;\n\n @Input({ transform: numberAttribute })\n get tabIndex(): number {\n return this.disabled ? -1 : this._tabIndex;\n }\n\n set tabIndex(value: number) {\n this._tabIndex = value;\n }\n\n private _tabIndex = 0;\n\n /**\n * Whether the checkbox is indeterminate. This is also known as \"mixed\" mode and can be used to\n * represent a checkbox with three states, e.g. a checkbox that represents a nested list of\n * checkable items. Note that whenever checkbox is manually clicked, indeterminate is immediately\n * set to false.\n */\n @Input()\n get indeterminate(): boolean {\n return this._indeterminate;\n }\n\n set indeterminate(value: boolean) {\n const changed = value !== this._indeterminate;\n\n this._indeterminate = value;\n\n if (changed) {\n if (this._indeterminate) {\n this.transitionCheckState(TransitionCheckState.Indeterminate);\n } else {\n this.transitionCheckState(this.checked ? TransitionCheckState.Checked : TransitionCheckState.Unchecked);\n }\n\n this.indeterminateChange.emit(this._indeterminate);\n }\n }\n\n private _indeterminate: boolean = false;\n\n private uniqueId: string = `kbq-checkbox-${++nextUniqueId}`;\n\n private currentAnimationClass: string = '';\n\n private currentCheckState: TransitionCheckState = TransitionCheckState.Init;\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n private focusMonitor: FocusMonitor,\n @Optional() @Inject(KBQ_CHECKBOX_CLICK_ACTION) private clickAction: KbqCheckboxClickAction\n ) {\n super();\n\n this.id = this.uniqueId;\n }\n\n /**\n * Called when the checkbox is blurred. Needed to properly implement ControlValueAccessor.\n * @docs-private\n */\n onTouched: () => any = () => {};\n\n ngAfterViewInit() {\n this.focusMonitor\n .monitor(this.inputElement.nativeElement)\n .subscribe((focusOrigin) => this.onInputFocusChange(focusOrigin));\n }\n\n ngOnDestroy() {\n this.focusMonitor.stopMonitoring(this.inputElement.nativeElement);\n }\n\n /** Method being called whenever the label text changes. */\n onLabelTextChange() {\n // This method is getting called whenever the label of the checkbox changes.\n // Since the checkbox uses the OnPush strategy we need to notify it about the change\n // that has been recognized by the cdkObserveContent directive.\n this.changeDetectorRef.markForCheck();\n }\n\n // Implemented as part of ControlValueAccessor.\n writeValue(value: any) {\n this.checked = !!value;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn: (value: any) => void) {\n this.controlValueAccessorChangeFn = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n getAriaChecked(): KbqCheckedState {\n return this.checked ? 'true' : this.indeterminate ? 'mixed' : 'false';\n }\n\n /** Toggles the `checked` state of the checkbox. */\n toggle(): void {\n this.checked = !this.checked;\n }\n\n /**\n * Event handler for checkbox input element.\n * Toggles checked state if element is not disabled.\n * Do not toggle on (change) event since IE doesn't fire change event when\n * indeterminate checkbox is clicked.\n * @param event Input click event\n */\n onInputClick(event: Event) {\n // We have to stop propagation for click events on the visual hidden input element.\n // By default, when a user clicks on a label element, a generated click event will be\n // dispatched on the associated input element. Since we are using a label element as our\n // root container, the click event on the `checkbox` will be executed twice.\n // The real click event will bubble up, and the generated click event also tries to bubble up.\n // This will lead to multiple click events.\n // Preventing bubbling for the second event will solve that issue.\n event.stopPropagation();\n\n // If resetIndeterminate is false, and the current state is indeterminate, do nothing on click\n if (!this.disabled && this.clickAction !== 'noop') {\n // When user manually click on the checkbox, `indeterminate` is set to false.\n if (this.indeterminate && this.clickAction !== 'check') {\n Promise.resolve().then(() => {\n this._indeterminate = false;\n this.indeterminateChange.emit(this._indeterminate);\n });\n }\n\n this.toggle();\n this.transitionCheckState(this._checked ? TransitionCheckState.Checked : TransitionCheckState.Unchecked);\n\n // Emit our custom change event if the native input emitted one.\n // It is important to only emit it, if the native input triggered one, because\n // we don't want to trigger a change event, when the `checked` variable changes for example.\n this.emitChangeEvent();\n } else if (!this.disabled && this.clickAction === 'noop') {\n // Reset native input when clicked with noop. The native checkbox becomes checked after\n // click, reset it to be align with `checked` value of `kbq-checkbox`.\n this.inputElement.nativeElement.checked = this.checked;\n this.inputElement.nativeElement.indeterminate = this.indeterminate;\n }\n }\n\n /** Focuses the checkbox. */\n focus(): void {\n this.focusMonitor.focusVia(this.inputElement.nativeElement, 'keyboard');\n }\n\n onInteractionEvent(event: Event) {\n // We always have to stop propagation on the change event.\n // Otherwise the change event, from the input element, will bubble up and\n // emit its event object to the `change` output.\n event.stopPropagation();\n }\n private controlValueAccessorChangeFn: (value: any) => void = () => {};\n\n private transitionCheckState(newState: TransitionCheckState) {\n const oldState = this.currentCheckState;\n const element: HTMLElement = this.elementRef.nativeElement;\n\n if (oldState === newState) {\n return;\n }\n\n if (this.currentAnimationClass.length > 0) {\n element.classList.remove(this.currentAnimationClass);\n }\n\n this.currentCheckState = newState;\n\n if (this.currentAnimationClass.length > 0) {\n element.classList.add(this.currentAnimationClass);\n }\n }\n\n private emitChangeEvent() {\n const event = new KbqCheckboxChange();\n\n event.source = this;\n event.checked = this.checked;\n\n this.controlValueAccessorChangeFn(this.checked);\n this.change.emit(event);\n }\n\n /** Function is called whenever the focus changes for the input element. */\n private onInputFocusChange(focusOrigin: FocusOrigin) {\n if (focusOrigin) {\n this.onTouched();\n }\n }\n}\n","<label #label class=\"kbq-checkbox__layout\" [attr.for]=\"inputId\">\n <div\n class=\"kbq-checkbox__inner-container\"\n [class.kbq-checkbox__inner-container_no-side-margin]=\"\n !checkboxLabel.textContent || !checkboxLabel.textContent.trim()\n \"\n >\n <input\n #input\n type=\"checkbox\"\n class=\"kbq-checkbox-input cdk-visually-hidden\"\n [attr.aria-checked]=\"getAriaChecked()\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [id]=\"inputId\"\n [indeterminate]=\"indeterminate\"\n [required]=\"required\"\n [tabIndex]=\"tabIndex\"\n (change)=\"onInteractionEvent($event)\"\n (click)=\"onInputClick($event)\"\n />\n <div class=\"kbq-checkbox__frame\">\n <i class=\"kbq-checkbox-checkmark kbq kbq-check-s_16\"></i>\n <i class=\"kbq-checkbox-mixedmark kbq kbq-minus-s_16\"></i>\n </div>\n </div>\n\n <div class=\"kbq-checkbox__text-container\">\n <span #checkboxLabel class=\"kbq-checkbox-label\" (cdkObserveContent)=\"onLabelTextChange()\">\n <ng-content />\n </span>\n\n <ng-content select=\"kbq-hint\" />\n </div>\n</label>\n","import { Directive, forwardRef, Provider } from '@angular/core';\nimport { CheckboxRequiredValidator, NG_VALIDATORS } from '@angular/forms';\n\nexport const KBQ_CHECKBOX_REQUIRED_VALIDATOR: Provider = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => KbqCheckboxRequiredValidator),\n multi: true\n};\n\n/**\n * Validator for koobiq checkbox's required attribute in template-driven checkbox.\n * Current CheckboxRequiredValidator only work with `input type=checkbox` and does not\n * work with `kbq-checkbox`.\n */\n@Directive({\n selector: `kbq-checkbox[required][formControlName],\n kbq-checkbox[required][formControl], kbq-checkbox[required][ngModel]`,\n providers: [KBQ_CHECKBOX_REQUIRED_VALIDATOR],\n host: { '[attr.required]': 'required ? \"\" : null' }\n})\nexport class KbqCheckboxRequiredValidator extends CheckboxRequiredValidator {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { KbqCheckbox } from './checkbox';\nimport { KbqCheckboxRequiredValidator } from './checkbox-required-validator';\n\n@NgModule({\n imports: [CommonModule, KbqCheckbox, KbqCheckboxRequiredValidator],\n exports: [KbqCheckbox, KbqCheckboxRequiredValidator]\n})\nexport class KbqCheckboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { SharedResizeObserver } from '@angular/cdk/observers/private';
2
2
  import * as i0 from '@angular/core';
3
- import { InjectionToken, input, numberAttribute, output, viewChild, signal, inject, DestroyRef, ElementRef, Component, ViewEncapsulation, ChangeDetectionStrategy, NgModule } from '@angular/core';
3
+ import { InjectionToken, input, numberAttribute, output, viewChild, signal, inject, DestroyRef, ElementRef, ChangeDetectionStrategy, ViewEncapsulation, Component, NgModule } from '@angular/core';
4
4
  import { toSignal, toObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';
5
5
  import { KbqButtonModule } from '@koobiq/components/button';
6
6
  import { ruRULocaleData, KBQ_LOCALE_SERVICE } from '@koobiq/components/core';
@@ -133,8 +133,8 @@ class KbqClampedText {
133
133
  const rects = Array.from(this.text().nativeElement.getClientRects());
134
134
  return [...new Set(rects.map(({ top }) => top))].length;
135
135
  }
136
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqClampedText, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
137
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: KbqClampedText, isStandalone: true, selector: "kbq-clamped-text", inputs: { rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, isCollapsed: { classPropertyName: "isCollapsed", publicName: "isCollapsed", isSignal: true, isRequired: false, transformFunction: null }, debounceTime: { classPropertyName: "debounceTime", publicName: "debounceTime", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isCollapsedChange: "isCollapsedChange" }, host: { properties: { "attr.aria-expanded": "collapsedState() ? \"false\" : \"true\"" }, classAttribute: "kbq-clamped-text" }, viewQueries: [{ propertyName: "text", first: true, predicate: ["text"], descendants: true, isSignal: true }, { propertyName: "textContainer", first: true, predicate: ["textContainer"], descendants: true, isSignal: true }], exportAs: ["kbqClampedText"], ngImport: i0, template: `
136
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KbqClampedText, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
137
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", type: KbqClampedText, isStandalone: true, selector: "kbq-clamped-text", inputs: { rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, isCollapsed: { classPropertyName: "isCollapsed", publicName: "isCollapsed", isSignal: true, isRequired: false, transformFunction: null }, debounceTime: { classPropertyName: "debounceTime", publicName: "debounceTime", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isCollapsedChange: "isCollapsedChange" }, host: { properties: { "attr.aria-expanded": "collapsedState() ? \"false\" : \"true\"" }, classAttribute: "kbq-clamped-text" }, viewQueries: [{ propertyName: "text", first: true, predicate: ["text"], descendants: true, isSignal: true }, { propertyName: "textContainer", first: true, predicate: ["textContainer"], descendants: true, isSignal: true }], exportAs: ["kbqClampedText"], ngImport: i0, template: `
138
138
  <div
139
139
  #textContainer
140
140
  class="kbq-clamped-text__content"
@@ -171,9 +171,9 @@ class KbqClampedText {
171
171
  }
172
172
  `, isInline: true, styles: [".kbq-clamped-text{display:inline-flex;flex-direction:column}.kbq-clamped-text__content.kbq-clamped-text__content_collapsed{display:-webkit-box;overflow-y:hidden;-webkit-box-orient:vertical}.kbq-clamped-text__toggle{margin-top:var(--kbq-size-xxs);align-self:flex-start}\n"], dependencies: [{ kind: "component", type: KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "ngmodule", type: KbqLinkModule }, { kind: "directive", type: i1.KbqLink, selector: "[kbq-link]", inputs: ["disabled", "tabIndex", "pseudo", "noUnderline", "big", "compact", "useVisited", "print"], exportAs: ["kbqLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
173
173
  }
174
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqClampedText, decorators: [{
174
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KbqClampedText, decorators: [{
175
175
  type: Component,
176
- args: [{ selector: 'kbq-clamped-text', standalone: true, exportAs: 'kbqClampedText', imports: [
176
+ args: [{ selector: 'kbq-clamped-text', exportAs: 'kbqClampedText', imports: [
177
177
  KbqIcon,
178
178
  KbqButtonModule,
179
179
  KbqLinkModule
@@ -222,11 +222,11 @@ const COMPONENTS = [
222
222
  KbqClampedText
223
223
  ];
224
224
  class KbqClampedTextModule {
225
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqClampedTextModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
226
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: KbqClampedTextModule, imports: [KbqClampedText], exports: [KbqClampedText] }); }
227
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqClampedTextModule, imports: [COMPONENTS] }); }
225
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KbqClampedTextModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
226
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: KbqClampedTextModule, imports: [KbqClampedText], exports: [KbqClampedText] }); }
227
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KbqClampedTextModule, imports: [COMPONENTS] }); }
228
228
  }
229
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KbqClampedTextModule, decorators: [{
229
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: KbqClampedTextModule, decorators: [{
230
230
  type: NgModule,
231
231
  args: [{
232
232
  imports: COMPONENTS,
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-clamped-text.mjs","sources":["../../../packages/components/clamped-text/constants.ts","../../../packages/components/clamped-text/clamped-text.ts","../../../packages/components/clamped-text/module.ts","../../../packages/components/clamped-text/koobiq-components-clamped-text.ts"],"sourcesContent":["import { InjectionToken, Provider } from '@angular/core';\nimport { KbqClampedTextLocaleConfig, ruRULocaleData } from '@koobiq/components/core';\n\n/**\n * Default maximum number of visible rows for the clamped text component\n * before truncation and the \"collapse/expand\" toggle is shown.\n */\nexport const kbqClampedTextDefaultMaxRows = 5;\n\n/** Localization configuration provider. */\nexport const KBQ_CLAMPED_TEXT_LOCALE_CONFIGURATION = new InjectionToken<KbqClampedTextLocaleConfig>(\n 'KbqClampedTextLocaleConfig',\n {\n factory: () => ruRULocaleData.clampedText\n }\n);\n\n/**\n * Utility provider.\n * @see KBQ_CLAMPED_TEXT_LOCALE_CONFIGURATION\n */\nexport const kbqClampedTextLocaleConfigurationProvider = (configuration: KbqClampedTextLocaleConfig): Provider => ({\n provide: KBQ_CLAMPED_TEXT_LOCALE_CONFIGURATION,\n useValue: configuration\n});\n","import { SharedResizeObserver } from '@angular/cdk/observers/private';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n inject,\n input,\n numberAttribute,\n output,\n signal,\n viewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { KbqButtonModule } from '@koobiq/components/button';\nimport { KBQ_LOCALE_SERVICE, KbqClampedTextLocaleConfig } from '@koobiq/components/core';\nimport { KbqIcon } from '@koobiq/components/icon';\nimport { KbqLinkModule } from '@koobiq/components/link';\nimport { debounceTime, map, of, pairwise, skip } from 'rxjs';\nimport { KBQ_CLAMPED_TEXT_LOCALE_CONFIGURATION, kbqClampedTextDefaultMaxRows } from './constants';\n\n@Component({\n selector: 'kbq-clamped-text',\n standalone: true,\n exportAs: 'kbqClampedText',\n imports: [\n KbqIcon,\n KbqButtonModule,\n KbqLinkModule\n ],\n template: `\n <div\n #textContainer\n class=\"kbq-clamped-text__content\"\n [style.-webkit-line-clamp]=\"lineClamp()\"\n [style.line-clamp]=\"lineClamp()\"\n [class.kbq-clamped-text__content_collapsed]=\"collapsedState()\"\n >\n <span #text>\n <ng-content />\n </span>\n </div>\n\n @if (hasToggle()) {\n <span\n class=\"kbq-clamped-text__toggle\"\n kbq-link\n noUnderline\n pseudo\n role=\"button\"\n (click)=\"toggleIsCollapsed($event)\"\n (keydown.enter)=\"toggleIsCollapsed($event)\"\n (keydown.space)=\"toggleIsCollapsed($event)\"\n >\n @let config = localeConfiguration();\n\n @if (collapsedState()) {\n <i kbq-icon=\"kbq-chevron-down_16\"></i>\n <span class=\"kbq-link__text\">{{ config!.openText }}</span>\n } @else {\n <i kbq-icon=\"kbq-chevron-up_16\"></i>\n <span class=\"kbq-link__text\">{{ config!.closeText }}</span>\n }\n </span>\n }\n `,\n styleUrls: ['./clamped-text.scss'],\n host: {\n class: 'kbq-clamped-text',\n '[attr.aria-expanded]': 'collapsedState() ? \"false\" : \"true\"'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqClampedText implements AfterViewInit {\n /**\n * Max rows before text is clamped.\n * @default kbqClampedTextDefaultMaxRows\n */\n readonly rows = input<number>(kbqClampedTextDefaultMaxRows);\n /** Collapsed state: `true` = collapsed, `false` = expanded, `undefined` = auto. */\n readonly isCollapsed = input<boolean>();\n /**\n * Debounce time on resize observer when recalculating toggle and text visibility.\n * @default 0\n */\n readonly debounceTime = input(0, { transform: numberAttribute });\n /** Emits when collapsed state changes. Used for two-way binding with `isCollapsed`. */\n readonly isCollapsedChange = output<boolean>();\n\n /** @docs-private */\n readonly text = viewChild.required<ElementRef<HTMLSpanElement>>('text');\n /** @docs-private */\n readonly textContainer = viewChild.required<ElementRef<HTMLDivElement>>('textContainer');\n\n /**\n * This flag controls event emission, aria/css-class calculation\n * @docs-private\n */\n protected readonly collapsedState = signal<boolean | undefined>(undefined);\n /** @docs-private */\n protected readonly isToggleCollapsed = signal<boolean | undefined>(undefined);\n /** @docs-private */\n protected readonly hasToggle = signal(true);\n /** @docs-private */\n protected readonly lineClamp = signal<number | null>(null);\n\n private readonly destroyRef = inject(DestroyRef);\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly resizeObserver = inject(SharedResizeObserver);\n private readonly localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });\n\n /**\n * Clamped text locale configuration.\n * @docs-private\n */\n protected readonly localeConfiguration = toSignal<KbqClampedTextLocaleConfig>(\n this.localeService\n ? this.localeService.changes.pipe(\n map(() => this.localeService!.getParams('clampedText') satisfies KbqClampedTextLocaleConfig)\n )\n : of(inject(KBQ_CLAMPED_TEXT_LOCALE_CONFIGURATION))\n );\n\n /**\n * This flag is used to prevent trigger resize observer on toggle click.\n */\n private isEventFromToggle = false;\n\n constructor() {\n toObservable(this.isCollapsed)\n .pipe(pairwise(), takeUntilDestroyed())\n .subscribe(([previous, current]) => {\n this.collapsedState.set(current);\n // store previous collapsed value to reduce unnecessary changes\n this.isToggleCollapsed.set(!this.hasToggle() ? previous : current);\n });\n\n toObservable(this.collapsedState)\n .pipe(skip(1), takeUntilDestroyed())\n .subscribe((collapsed) => {\n if (collapsed === undefined) return;\n this.isCollapsedChange.emit(collapsed);\n });\n\n toObservable(this.rows)\n .pipe(takeUntilDestroyed())\n .subscribe((rows) => this.lineClamp.set(rows));\n }\n\n ngAfterViewInit(): void {\n const textContainer = this.textContainer().nativeElement;\n\n this.resizeObserver\n .observe(textContainer)\n .pipe(debounceTime(this.debounceTime()), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.updateToggleVisibilityState();\n this.updateCollapsedState();\n });\n }\n\n /** @docs-private */\n toggleIsCollapsed(event: Event): void {\n event.stopPropagation();\n\n this.collapsedState.update((state) => this.toggleCollapseState(this.isToggleCollapsed() ?? state));\n this.isToggleCollapsed.update(this.toggleCollapseState);\n\n this.isEventFromToggle = true;\n\n if (this.collapsedState()) {\n setTimeout(() => this.elementRef.nativeElement.scrollIntoView({ block: 'center', inline: 'center' }));\n }\n }\n\n private updateToggleVisibilityState(): void {\n this.hasToggle.set(this.getRowsCount() > this.rows() + 1);\n }\n\n private updateCollapsedState(): void {\n if (this.isEventFromToggle) {\n this.isEventFromToggle = false;\n\n return;\n }\n\n this.collapsedState.set(this.hasToggle() && (this.isToggleCollapsed() ?? true));\n }\n\n /**\n * Calculates next collapsed state according to previous one.\n * `undefined` is treated as collapsed and not touched stated.\n */\n private toggleCollapseState = (state: boolean | undefined): boolean => {\n const isCollapsed = state ?? true;\n\n return !isCollapsed;\n };\n\n private getRowsCount(): number {\n const rects = Array.from(this.text().nativeElement.getClientRects());\n\n return [...new Set(rects.map(({ top }) => top))].length;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { KbqClampedText } from './clamped-text';\n\nconst COMPONENTS = [\n KbqClampedText\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\nexport class KbqClampedTextModule {}\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-clamped-text.mjs","sources":["../../../packages/components/clamped-text/constants.ts","../../../packages/components/clamped-text/clamped-text.ts","../../../packages/components/clamped-text/module.ts","../../../packages/components/clamped-text/koobiq-components-clamped-text.ts"],"sourcesContent":["import { InjectionToken, Provider } from '@angular/core';\nimport { KbqClampedTextLocaleConfig, ruRULocaleData } from '@koobiq/components/core';\n\n/**\n * Default maximum number of visible rows for the clamped text component\n * before truncation and the \"collapse/expand\" toggle is shown.\n */\nexport const kbqClampedTextDefaultMaxRows = 5;\n\n/** Localization configuration provider. */\nexport const KBQ_CLAMPED_TEXT_LOCALE_CONFIGURATION = new InjectionToken<KbqClampedTextLocaleConfig>(\n 'KbqClampedTextLocaleConfig',\n {\n factory: () => ruRULocaleData.clampedText\n }\n);\n\n/**\n * Utility provider.\n * @see KBQ_CLAMPED_TEXT_LOCALE_CONFIGURATION\n */\nexport const kbqClampedTextLocaleConfigurationProvider = (configuration: KbqClampedTextLocaleConfig): Provider => ({\n provide: KBQ_CLAMPED_TEXT_LOCALE_CONFIGURATION,\n useValue: configuration\n});\n","import { SharedResizeObserver } from '@angular/cdk/observers/private';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n inject,\n input,\n numberAttribute,\n output,\n signal,\n viewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { KbqButtonModule } from '@koobiq/components/button';\nimport { KBQ_LOCALE_SERVICE, KbqClampedTextLocaleConfig } from '@koobiq/components/core';\nimport { KbqIcon } from '@koobiq/components/icon';\nimport { KbqLinkModule } from '@koobiq/components/link';\nimport { debounceTime, map, of, pairwise, skip } from 'rxjs';\nimport { KBQ_CLAMPED_TEXT_LOCALE_CONFIGURATION, kbqClampedTextDefaultMaxRows } from './constants';\n\n@Component({\n selector: 'kbq-clamped-text',\n exportAs: 'kbqClampedText',\n imports: [\n KbqIcon,\n KbqButtonModule,\n KbqLinkModule\n ],\n template: `\n <div\n #textContainer\n class=\"kbq-clamped-text__content\"\n [style.-webkit-line-clamp]=\"lineClamp()\"\n [style.line-clamp]=\"lineClamp()\"\n [class.kbq-clamped-text__content_collapsed]=\"collapsedState()\"\n >\n <span #text>\n <ng-content />\n </span>\n </div>\n\n @if (hasToggle()) {\n <span\n class=\"kbq-clamped-text__toggle\"\n kbq-link\n noUnderline\n pseudo\n role=\"button\"\n (click)=\"toggleIsCollapsed($event)\"\n (keydown.enter)=\"toggleIsCollapsed($event)\"\n (keydown.space)=\"toggleIsCollapsed($event)\"\n >\n @let config = localeConfiguration();\n\n @if (collapsedState()) {\n <i kbq-icon=\"kbq-chevron-down_16\"></i>\n <span class=\"kbq-link__text\">{{ config!.openText }}</span>\n } @else {\n <i kbq-icon=\"kbq-chevron-up_16\"></i>\n <span class=\"kbq-link__text\">{{ config!.closeText }}</span>\n }\n </span>\n }\n `,\n styleUrls: ['./clamped-text.scss'],\n host: {\n class: 'kbq-clamped-text',\n '[attr.aria-expanded]': 'collapsedState() ? \"false\" : \"true\"'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqClampedText implements AfterViewInit {\n /**\n * Max rows before text is clamped.\n * @default kbqClampedTextDefaultMaxRows\n */\n readonly rows = input<number>(kbqClampedTextDefaultMaxRows);\n /** Collapsed state: `true` = collapsed, `false` = expanded, `undefined` = auto. */\n readonly isCollapsed = input<boolean>();\n /**\n * Debounce time on resize observer when recalculating toggle and text visibility.\n * @default 0\n */\n readonly debounceTime = input(0, { transform: numberAttribute });\n /** Emits when collapsed state changes. Used for two-way binding with `isCollapsed`. */\n readonly isCollapsedChange = output<boolean>();\n\n /** @docs-private */\n readonly text = viewChild.required<ElementRef<HTMLSpanElement>>('text');\n /** @docs-private */\n readonly textContainer = viewChild.required<ElementRef<HTMLDivElement>>('textContainer');\n\n /**\n * This flag controls event emission, aria/css-class calculation\n * @docs-private\n */\n protected readonly collapsedState = signal<boolean | undefined>(undefined);\n /** @docs-private */\n protected readonly isToggleCollapsed = signal<boolean | undefined>(undefined);\n /** @docs-private */\n protected readonly hasToggle = signal(true);\n /** @docs-private */\n protected readonly lineClamp = signal<number | null>(null);\n\n private readonly destroyRef = inject(DestroyRef);\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly resizeObserver = inject(SharedResizeObserver);\n private readonly localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });\n\n /**\n * Clamped text locale configuration.\n * @docs-private\n */\n protected readonly localeConfiguration = toSignal<KbqClampedTextLocaleConfig>(\n this.localeService\n ? this.localeService.changes.pipe(\n map(() => this.localeService!.getParams('clampedText') satisfies KbqClampedTextLocaleConfig)\n )\n : of(inject(KBQ_CLAMPED_TEXT_LOCALE_CONFIGURATION))\n );\n\n /**\n * This flag is used to prevent trigger resize observer on toggle click.\n */\n private isEventFromToggle = false;\n\n constructor() {\n toObservable(this.isCollapsed)\n .pipe(pairwise(), takeUntilDestroyed())\n .subscribe(([previous, current]) => {\n this.collapsedState.set(current);\n // store previous collapsed value to reduce unnecessary changes\n this.isToggleCollapsed.set(!this.hasToggle() ? previous : current);\n });\n\n toObservable(this.collapsedState)\n .pipe(skip(1), takeUntilDestroyed())\n .subscribe((collapsed) => {\n if (collapsed === undefined) return;\n this.isCollapsedChange.emit(collapsed);\n });\n\n toObservable(this.rows)\n .pipe(takeUntilDestroyed())\n .subscribe((rows) => this.lineClamp.set(rows));\n }\n\n ngAfterViewInit(): void {\n const textContainer = this.textContainer().nativeElement;\n\n this.resizeObserver\n .observe(textContainer)\n .pipe(debounceTime(this.debounceTime()), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.updateToggleVisibilityState();\n this.updateCollapsedState();\n });\n }\n\n /** @docs-private */\n toggleIsCollapsed(event: Event): void {\n event.stopPropagation();\n\n this.collapsedState.update((state) => this.toggleCollapseState(this.isToggleCollapsed() ?? state));\n this.isToggleCollapsed.update(this.toggleCollapseState);\n\n this.isEventFromToggle = true;\n\n if (this.collapsedState()) {\n setTimeout(() => this.elementRef.nativeElement.scrollIntoView({ block: 'center', inline: 'center' }));\n }\n }\n\n private updateToggleVisibilityState(): void {\n this.hasToggle.set(this.getRowsCount() > this.rows() + 1);\n }\n\n private updateCollapsedState(): void {\n if (this.isEventFromToggle) {\n this.isEventFromToggle = false;\n\n return;\n }\n\n this.collapsedState.set(this.hasToggle() && (this.isToggleCollapsed() ?? true));\n }\n\n /**\n * Calculates next collapsed state according to previous one.\n * `undefined` is treated as collapsed and not touched stated.\n */\n private toggleCollapseState = (state: boolean | undefined): boolean => {\n const isCollapsed = state ?? true;\n\n return !isCollapsed;\n };\n\n private getRowsCount(): number {\n const rects = Array.from(this.text().nativeElement.getClientRects());\n\n return [...new Set(rects.map(({ top }) => top))].length;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { KbqClampedText } from './clamped-text';\n\nconst COMPONENTS = [\n KbqClampedText\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\nexport class KbqClampedTextModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}