@koobiq/components 16.0.0-beta.8 → 17.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (377) hide show
  1. package/autocomplete/_autocomplete-theme.scss +3 -10
  2. package/autocomplete/autocomplete.scss +0 -5
  3. package/badge/_badge-theme.scss +17 -8
  4. package/badge/badge.component.d.ts +20 -1
  5. package/badge/badge.component.scss +28 -0
  6. package/badge/badge.module.d.ts +1 -1
  7. package/button/_button-base.scss +1 -1
  8. package/button/_button-theme.scss +23 -38
  9. package/checkbox/_checkbox-theme.scss +9 -6
  10. package/checkbox/checkbox.scss +6 -8
  11. package/code-block/_code-block-theme.scss +43 -12
  12. package/code-block/actionbar.component.scss +34 -6
  13. package/code-block/code-block.component.d.ts +2 -2
  14. package/code-block/code-block.scss +101 -27
  15. package/core/common-behaviors/index.d.ts +2 -0
  16. package/core/locales/index.d.ts +0 -2
  17. package/core/option/_option-action-theme.scss +1 -1
  18. package/core/option/_option-theme.scss +5 -5
  19. package/core/option/action.scss +1 -1
  20. package/core/pop-up/pop-up.d.ts +7 -0
  21. package/core/selection/pseudo-checkbox/pseudo-checkbox.scss +4 -15
  22. package/core/styles/_koobiq-theme.scss +2 -0
  23. package/core/styles/_variables.scss +1 -1
  24. package/core/styles/common/_select.scss +2 -1
  25. package/core/styles/theming/_components-theming.scss +116 -49
  26. package/core/styles/theming/_scrollbars-theme.scss +7 -2
  27. package/core/styles/theming/_theming.scss +200 -28
  28. package/core/styles/typography/_typography.scss +180 -5
  29. package/dropdown/_dropdown-theme.scss +1 -2
  30. package/esm2022/alert/alert.component.mjs +12 -12
  31. package/esm2022/alert/alert.module.mjs +4 -4
  32. package/esm2022/autocomplete/autocomplete-origin.directive.mjs +4 -4
  33. package/esm2022/autocomplete/autocomplete-trigger.directive.mjs +6 -6
  34. package/esm2022/autocomplete/autocomplete.component.mjs +8 -8
  35. package/esm2022/autocomplete/autocomplete.module.mjs +4 -4
  36. package/esm2022/badge/badge.component.mjs +71 -10
  37. package/esm2022/badge/badge.module.mjs +14 -10
  38. package/esm2022/button/button.component.mjs +16 -13
  39. package/esm2022/button/button.module.mjs +4 -4
  40. package/esm2022/button-toggle/button-toggle.component.mjs +12 -12
  41. package/esm2022/button-toggle/button-toggle.module.mjs +4 -4
  42. package/esm2022/card/card.component.mjs +5 -5
  43. package/esm2022/card/card.module.mjs +4 -4
  44. package/esm2022/checkbox/checkbox-module.mjs +4 -4
  45. package/esm2022/checkbox/checkbox-required-validator.mjs +3 -3
  46. package/esm2022/checkbox/checkbox.mjs +7 -7
  47. package/esm2022/code-block/actionbar.component.mjs +5 -5
  48. package/esm2022/code-block/code-block.component.mjs +14 -12
  49. package/esm2022/code-block/code-block.module.mjs +8 -8
  50. package/esm2022/core/common-behaviors/color.mjs +1 -1
  51. package/esm2022/core/common-behaviors/common-module.mjs +7 -7
  52. package/esm2022/core/common-behaviors/error-state.mjs +1 -1
  53. package/esm2022/core/common-behaviors/index.mjs +3 -1
  54. package/esm2022/core/error/error-options.mjs +6 -6
  55. package/esm2022/core/formatters/date/formatter.mjs +5 -5
  56. package/esm2022/core/formatters/date/formatter.pipe.mjs +52 -52
  57. package/esm2022/core/formatters/index.mjs +7 -6
  58. package/esm2022/core/formatters/number/formatter.mjs +19 -19
  59. package/esm2022/core/forms/forms-module.mjs +4 -4
  60. package/esm2022/core/forms/forms.directive.mjs +8 -8
  61. package/esm2022/core/highlight/highlight.pipe.mjs +5 -5
  62. package/esm2022/core/highlight/index.mjs +4 -4
  63. package/esm2022/core/line/line.mjs +8 -8
  64. package/esm2022/core/locales/index.mjs +1 -3
  65. package/esm2022/core/locales/locale-service.mjs +5 -5
  66. package/esm2022/core/locales/locale-service.module.mjs +4 -4
  67. package/esm2022/core/option/action.mjs +9 -8
  68. package/esm2022/core/option/optgroup.mjs +4 -4
  69. package/esm2022/core/option/option-module.mjs +4 -4
  70. package/esm2022/core/option/option.mjs +8 -8
  71. package/esm2022/core/overlay/overlay-position-map.mjs +1 -1
  72. package/esm2022/core/pop-up/pop-up-trigger.mjs +6 -6
  73. package/esm2022/core/pop-up/pop-up.mjs +12 -5
  74. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +6 -6
  75. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.module.mjs +4 -4
  76. package/esm2022/core/services/measure-scrollbar.service.mjs +6 -6
  77. package/esm2022/core/services/theme.service.mjs +5 -5
  78. package/esm2022/core/utils/data-size/data-size.pipe.mjs +7 -7
  79. package/esm2022/core/utils/data-size/size.mjs +1 -1
  80. package/esm2022/core/version.mjs +2 -2
  81. package/esm2022/datepicker/calendar-body.component.mjs +4 -4
  82. package/esm2022/datepicker/calendar-header.component.mjs +5 -5
  83. package/esm2022/datepicker/calendar.component.mjs +6 -6
  84. package/esm2022/datepicker/datepicker-animations.mjs +1 -1
  85. package/esm2022/datepicker/datepicker-input.directive.mjs +6 -6
  86. package/esm2022/datepicker/datepicker-intl.mjs +3 -3
  87. package/esm2022/datepicker/datepicker-module.mjs +4 -4
  88. package/esm2022/datepicker/datepicker-toggle.component.mjs +8 -8
  89. package/esm2022/datepicker/datepicker.component.mjs +10 -10
  90. package/esm2022/datepicker/month-view.component.mjs +6 -6
  91. package/esm2022/divider/divider.component.mjs +3 -3
  92. package/esm2022/divider/divider.module.mjs +4 -4
  93. package/esm2022/dl/dl.component.mjs +11 -11
  94. package/esm2022/dl/dl.module.mjs +4 -4
  95. package/esm2022/dropdown/dropdown-content.directive.mjs +6 -6
  96. package/esm2022/dropdown/dropdown-item.component.mjs +9 -8
  97. package/esm2022/dropdown/dropdown-trigger.directive.mjs +6 -6
  98. package/esm2022/dropdown/dropdown.component.mjs +6 -6
  99. package/esm2022/dropdown/dropdown.module.mjs +4 -4
  100. package/esm2022/ellipsis-center/ellipsis-center.directive.mjs +10 -10
  101. package/esm2022/file-upload/file-drop.mjs +43 -6
  102. package/esm2022/file-upload/file-upload.mjs +1 -1
  103. package/esm2022/file-upload/file-upload.module.mjs +4 -4
  104. package/esm2022/file-upload/multiple-file-upload.component.mjs +7 -7
  105. package/esm2022/file-upload/single-file-upload.component.mjs +7 -7
  106. package/esm2022/form-field/cleaner.mjs +3 -3
  107. package/esm2022/form-field/form-field.mjs +21 -15
  108. package/esm2022/form-field/form-field.module.mjs +4 -4
  109. package/esm2022/form-field/hint.mjs +32 -10
  110. package/esm2022/form-field/password-hint.mjs +24 -21
  111. package/esm2022/form-field/password-toggle.mjs +6 -6
  112. package/esm2022/form-field/prefix.mjs +3 -3
  113. package/esm2022/form-field/stepper.mjs +4 -4
  114. package/esm2022/form-field/suffix.mjs +3 -3
  115. package/esm2022/form-field/validate.directive.mjs +17 -12
  116. package/esm2022/icon/icon-button.component.mjs +69 -0
  117. package/esm2022/icon/icon-item.component.mjs +28 -0
  118. package/esm2022/icon/icon.component.mjs +20 -93
  119. package/esm2022/icon/icon.module.mjs +8 -6
  120. package/esm2022/icon/public-api.mjs +3 -1
  121. package/esm2022/input/input-number-validators.mjs +7 -7
  122. package/esm2022/input/input-number.mjs +12 -9
  123. package/esm2022/input/input-password.mjs +6 -6
  124. package/esm2022/input/input.mjs +9 -9
  125. package/esm2022/input/input.module.mjs +4 -4
  126. package/esm2022/link/link.component.mjs +16 -5
  127. package/esm2022/link/link.module.mjs +4 -4
  128. package/esm2022/list/list-selection.component.mjs +16 -16
  129. package/esm2022/list/list.component.mjs +9 -9
  130. package/esm2022/list/list.module.mjs +4 -4
  131. package/esm2022/loader-overlay/loader-overlay.component.mjs +15 -15
  132. package/esm2022/loader-overlay/loader-overlay.module.mjs +4 -4
  133. package/esm2022/markdown/markdown.component.mjs +5 -5
  134. package/esm2022/markdown/markdown.module.mjs +4 -4
  135. package/esm2022/markdown/markdown.service.mjs +3 -3
  136. package/esm2022/modal/css-unit.pipe.mjs +3 -3
  137. package/esm2022/modal/modal-control.service.mjs +6 -6
  138. package/esm2022/modal/modal.component.mjs +22 -13
  139. package/esm2022/modal/modal.directive.mjs +12 -12
  140. package/esm2022/modal/modal.module.mjs +4 -4
  141. package/esm2022/modal/modal.service.mjs +5 -5
  142. package/esm2022/navbar/navbar-item.component.mjs +61 -52
  143. package/esm2022/navbar/navbar.component.mjs +28 -17
  144. package/esm2022/navbar/navbar.module.mjs +4 -4
  145. package/esm2022/navbar/vertical-navbar.component.mjs +9 -8
  146. package/esm2022/popover/popover-confirm.component.mjs +11 -13
  147. package/esm2022/popover/popover.component.mjs +16 -11
  148. package/esm2022/popover/popover.module.mjs +4 -4
  149. package/esm2022/progress-bar/progress-bar.component.mjs +11 -11
  150. package/esm2022/progress-bar/progress-bar.module.mjs +4 -4
  151. package/esm2022/progress-spinner/progress-spinner.component.mjs +12 -12
  152. package/esm2022/progress-spinner/progress-spinner.module.mjs +4 -4
  153. package/esm2022/radio/radio.component.mjs +10 -10
  154. package/esm2022/radio/radio.module.mjs +4 -4
  155. package/esm2022/risk-level/risk-level.component.mjs +3 -3
  156. package/esm2022/risk-level/risk-level.module.mjs +4 -4
  157. package/esm2022/select/select-option.directive.mjs +6 -6
  158. package/esm2022/select/select.component.mjs +30 -26
  159. package/esm2022/select/select.module.mjs +4 -4
  160. package/esm2022/sidebar/sidebar.component.mjs +11 -11
  161. package/esm2022/sidebar/sidebar.module.mjs +4 -4
  162. package/esm2022/sidepanel/sidepanel-container.component.mjs +7 -7
  163. package/esm2022/sidepanel/sidepanel-directives.mjs +18 -18
  164. package/esm2022/sidepanel/sidepanel-ref.mjs +1 -1
  165. package/esm2022/sidepanel/sidepanel.module.mjs +4 -4
  166. package/esm2022/sidepanel/sidepanel.service.mjs +6 -6
  167. package/esm2022/splitter/splitter.component.mjs +17 -17
  168. package/esm2022/splitter/splitter.module.mjs +4 -4
  169. package/esm2022/table/table.component.mjs +3 -3
  170. package/esm2022/table/table.module.mjs +4 -4
  171. package/esm2022/tabs/paginated-tab-header.mjs +6 -6
  172. package/esm2022/tabs/tab-body.component.mjs +11 -11
  173. package/esm2022/tabs/tab-content.directive.mjs +4 -4
  174. package/esm2022/tabs/tab-group.component.mjs +21 -21
  175. package/esm2022/tabs/tab-header.component.mjs +7 -7
  176. package/esm2022/tabs/tab-label-wrapper.directive.mjs +6 -5
  177. package/esm2022/tabs/tab-label.directive.mjs +3 -3
  178. package/esm2022/tabs/tab-nav-bar/tab-nav-bar.mjs +12 -11
  179. package/esm2022/tabs/tab.component.mjs +5 -5
  180. package/esm2022/tabs/tabs.module.mjs +4 -4
  181. package/esm2022/tags/tag-input.mjs +6 -6
  182. package/esm2022/tags/tag-list.component.mjs +9 -8
  183. package/esm2022/tags/tag.component.mjs +16 -16
  184. package/esm2022/tags/tag.module.mjs +4 -4
  185. package/esm2022/textarea/textarea.component.mjs +36 -25
  186. package/esm2022/textarea/textarea.module.mjs +4 -4
  187. package/esm2022/timepicker/timepicker.directive.mjs +6 -6
  188. package/esm2022/timepicker/timepicker.module.mjs +4 -4
  189. package/esm2022/timezone/cities-by-filter.pipe.mjs +3 -3
  190. package/esm2022/timezone/timezone-option.component.mjs +5 -5
  191. package/esm2022/timezone/timezone-option.directive.mjs +5 -5
  192. package/esm2022/timezone/timezone-select.component.mjs +9 -9
  193. package/esm2022/timezone/timezone.module.mjs +4 -4
  194. package/esm2022/timezone/timezone.utils.mjs +1 -1
  195. package/esm2022/timezone/utc-offset.pipe.mjs +3 -3
  196. package/esm2022/title/title.directive.mjs +6 -6
  197. package/esm2022/title/title.module.mjs +4 -4
  198. package/esm2022/toast/toast-animations.mjs +2 -1
  199. package/esm2022/toast/toast-container.component.mjs +22 -8
  200. package/esm2022/toast/toast.component.mjs +16 -10
  201. package/esm2022/toast/toast.module.mjs +4 -4
  202. package/esm2022/toast/toast.service.mjs +7 -6
  203. package/esm2022/toast/toast.type.mjs +1 -1
  204. package/esm2022/toggle/toggle.component.mjs +5 -5
  205. package/esm2022/toggle/toggle.module.mjs +4 -4
  206. package/esm2022/tooltip/tooltip.component.mjs +23 -23
  207. package/esm2022/tooltip/tooltip.module.mjs +4 -4
  208. package/esm2022/tree/control/base-tree-control.mjs +4 -4
  209. package/esm2022/tree/control/flat-tree-control.filters.mjs +47 -0
  210. package/esm2022/tree/control/flat-tree-control.mjs +27 -45
  211. package/esm2022/tree/control/nested-tree-control.mjs +1 -1
  212. package/esm2022/tree/control/tree-control.mjs +1 -1
  213. package/esm2022/tree/data-source/flat-data-source.mjs +1 -1
  214. package/esm2022/tree/node.mjs +5 -5
  215. package/esm2022/tree/outlet.mjs +4 -4
  216. package/esm2022/tree/padding.directive.mjs +6 -6
  217. package/esm2022/tree/public-api.mjs +2 -1
  218. package/esm2022/tree/toggle.mjs +12 -12
  219. package/esm2022/tree/tree-base.mjs +10 -10
  220. package/esm2022/tree/tree-option.component.mjs +12 -8
  221. package/esm2022/tree/tree-selection.component.mjs +6 -6
  222. package/esm2022/tree/tree.mjs +3 -3
  223. package/esm2022/tree/tree.module.mjs +4 -4
  224. package/esm2022/tree-select/tree-select.component.mjs +26 -18
  225. package/esm2022/tree-select/tree-select.module.mjs +9 -9
  226. package/fesm2022/koobiq-components-alert.mjs +16 -16
  227. package/fesm2022/koobiq-components-autocomplete.mjs +20 -20
  228. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  229. package/fesm2022/koobiq-components-badge.mjs +83 -18
  230. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  231. package/fesm2022/koobiq-components-button-toggle.mjs +15 -15
  232. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  233. package/fesm2022/koobiq-components-button.mjs +19 -16
  234. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  235. package/fesm2022/koobiq-components-card.mjs +8 -8
  236. package/fesm2022/koobiq-components-card.mjs.map +1 -1
  237. package/fesm2022/koobiq-components-checkbox.mjs +13 -13
  238. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  239. package/fesm2022/koobiq-components-code-block.mjs +22 -21
  240. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  241. package/fesm2022/koobiq-components-core.mjs +199 -191
  242. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  243. package/fesm2022/koobiq-components-datepicker.mjs +45 -45
  244. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  245. package/fesm2022/koobiq-components-divider.mjs +7 -7
  246. package/fesm2022/koobiq-components-dl.mjs +14 -14
  247. package/fesm2022/koobiq-components-dl.mjs.map +1 -1
  248. package/fesm2022/koobiq-components-dropdown.mjs +27 -26
  249. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  250. package/fesm2022/koobiq-components-ellipsis-center.mjs +9 -9
  251. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
  252. package/fesm2022/koobiq-components-file-upload.mjs +58 -21
  253. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  254. package/fesm2022/koobiq-components-form-field.mjs +109 -74
  255. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  256. package/fesm2022/koobiq-components-icon.mjs +39 -23
  257. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  258. package/fesm2022/koobiq-components-input.mjs +34 -31
  259. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  260. package/fesm2022/koobiq-components-link.mjs +19 -8
  261. package/fesm2022/koobiq-components-link.mjs.map +1 -1
  262. package/fesm2022/koobiq-components-list.mjs +27 -27
  263. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  264. package/fesm2022/koobiq-components-loader-overlay.mjs +18 -18
  265. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  266. package/fesm2022/koobiq-components-markdown.mjs +11 -11
  267. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  268. package/fesm2022/koobiq-components-modal.mjs +49 -40
  269. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  270. package/fesm2022/koobiq-components-navbar.mjs +99 -78
  271. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  272. package/fesm2022/koobiq-components-popover.mjs +30 -26
  273. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  274. package/fesm2022/koobiq-components-progress-bar.mjs +14 -14
  275. package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
  276. package/fesm2022/koobiq-components-progress-spinner.mjs +15 -15
  277. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  278. package/fesm2022/koobiq-components-radio.mjs +13 -13
  279. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  280. package/fesm2022/koobiq-components-risk-level.mjs +7 -7
  281. package/fesm2022/koobiq-components-select.mjs +39 -35
  282. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  283. package/fesm2022/koobiq-components-sidebar.mjs +14 -14
  284. package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
  285. package/fesm2022/koobiq-components-sidepanel.mjs +32 -32
  286. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  287. package/fesm2022/koobiq-components-splitter.mjs +20 -20
  288. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  289. package/fesm2022/koobiq-components-table.mjs +7 -7
  290. package/fesm2022/koobiq-components-tabs.mjs +71 -69
  291. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  292. package/fesm2022/koobiq-components-tags.mjs +32 -31
  293. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  294. package/fesm2022/koobiq-components-textarea.mjs +39 -28
  295. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  296. package/fesm2022/koobiq-components-timepicker.mjs +9 -9
  297. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  298. package/fesm2022/koobiq-components-timezone.mjs +28 -28
  299. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  300. package/fesm2022/koobiq-components-title.mjs +9 -9
  301. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  302. package/fesm2022/koobiq-components-toast.mjs +44 -26
  303. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  304. package/fesm2022/koobiq-components-toggle.mjs +8 -8
  305. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  306. package/fesm2022/koobiq-components-tooltip.mjs +26 -26
  307. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  308. package/fesm2022/koobiq-components-tree-select.mjs +33 -25
  309. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  310. package/fesm2022/koobiq-components-tree.mjs +132 -100
  311. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  312. package/file-upload/_file-upload-theme.scss +10 -1
  313. package/file-upload/file-drop.d.ts +2 -1
  314. package/file-upload/file-upload.d.ts +4 -1
  315. package/file-upload/multiple-file-upload.component.d.ts +2 -2
  316. package/file-upload/single-file-upload.component.d.ts +2 -2
  317. package/form-field/_form-field-theme.scss +8 -14
  318. package/form-field/_hint-theme.scss +5 -1
  319. package/form-field/form-field.d.ts +2 -0
  320. package/form-field/form-field.scss +12 -1
  321. package/form-field/hint.d.ts +4 -1
  322. package/form-field/hint.scss +10 -2
  323. package/form-field/password-hint.d.ts +7 -5
  324. package/icon/_icon-button-theme.scss +129 -0
  325. package/icon/_icon-item-theme.scss +41 -0
  326. package/icon/_icon-theme.scss +1 -222
  327. package/icon/icon-button.component.d.ts +23 -0
  328. package/icon/icon-button.scss +33 -0
  329. package/icon/icon-item.component.d.ts +11 -0
  330. package/icon/icon-item.scss +18 -0
  331. package/icon/icon.component.d.ts +4 -25
  332. package/icon/icon.module.d.ts +6 -4
  333. package/icon/icon.scss +0 -41
  334. package/icon/public-api.d.ts +2 -0
  335. package/input/input-number.d.ts +3 -2
  336. package/link/_link-theme.scss +97 -89
  337. package/link/link.component.d.ts +4 -1
  338. package/list/_list-theme.scss +1 -2
  339. package/list/list.scss +3 -3
  340. package/modal/_modal-confirm.scss +0 -24
  341. package/modal/modal.component.d.ts +3 -0
  342. package/modal/modal.scss +32 -15
  343. package/navbar/_navbar-theme.scss +8 -7
  344. package/navbar/navbar-item.component.d.ts +5 -2
  345. package/navbar/navbar-item.scss +7 -2
  346. package/navbar/navbar.component.d.ts +3 -0
  347. package/package.json +30 -30
  348. package/popover/popover-confirm.component.d.ts +0 -2
  349. package/popover/popover.component.d.ts +6 -1
  350. package/prebuilt-themes/dark-theme.css +1 -1
  351. package/prebuilt-themes/light-theme.css +1 -1
  352. package/progress-spinner/progress-spinner.scss +10 -5
  353. package/select/_select-theme.scss +6 -6
  354. package/select/select.component.d.ts +1 -1
  355. package/select/select.scss +7 -0
  356. package/splitter/_splitter-theme.scss +5 -4
  357. package/tabs/_tabs-common.scss +1 -1
  358. package/tabs/_tabs-theme.scss +2 -2
  359. package/tags/tag-list.scss +4 -0
  360. package/textarea/textarea.component.d.ts +4 -3
  361. package/toast/toast-animations.d.ts +1 -0
  362. package/toast/toast-container.component.d.ts +7 -3
  363. package/toast/toast.component.d.ts +2 -0
  364. package/toast/toast.service.d.ts +2 -0
  365. package/toast/toast.type.d.ts +1 -0
  366. package/tooltip/tooltip.component.d.ts +1 -1
  367. package/tree/_tree-theme.scss +5 -5
  368. package/tree/control/base-tree-control.d.ts +1 -1
  369. package/tree/control/flat-tree-control.d.ts +5 -3
  370. package/tree/control/flat-tree-control.filters.d.ts +26 -0
  371. package/tree/control/tree-control.d.ts +1 -1
  372. package/tree/public-api.d.ts +1 -0
  373. package/tree/tree-option.scss +4 -4
  374. package/tree-select/_tree-select-theme.scss +6 -4
  375. package/tree-select/tree-select.component.d.ts +9 -5
  376. package/tree-select/tree-select.module.d.ts +1 -1
  377. package/form-field/password-hint.scss +0 -11
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-markdown.mjs","sources":["../../../packages/components/markdown/markdown.values.ts","../../../packages/components/markdown/markdown.service.ts","../../../packages/components/markdown/markdown.component.ts","../../../packages/components/markdown/markdown.module.ts","../../../packages/components/markdown/koobiq-components-markdown.ts"],"sourcesContent":["export const MARKDOWN_TAGS_TO_CLASS_ALIAS = [\n 'a',\n 'blockquote',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'hr',\n 'li',\n 'ol',\n 'table',\n 'tbody',\n 'thead',\n 'td',\n 'tr',\n 'ul',\n 'pre',\n 'code',\n 'img'\n];\n\n// separating th and p to prevent it's conflict with thead and pre\nexport const MARKDOWN_WHOLE_TAGS_TO_CLASS_ALIAS = [\n 'th',\n 'p'\n];\nexport const CLASS_PREFIX: string = 'kbq-markdown';\n","import { Injectable } from '@angular/core';\nimport { marked } from 'marked';\n\nimport {\n CLASS_PREFIX,\n MARKDOWN_TAGS_TO_CLASS_ALIAS,\n MARKDOWN_WHOLE_TAGS_TO_CLASS_ALIAS\n} from './markdown.values';\n\n\n@Injectable()\nexport class KbqMarkdownService {\n parseToHtml(markdown: string): string {\n return this.transform(marked.parse(markdown));\n }\n\n private transform(htmlContent: string): string {\n let transformed = htmlContent;\n\n MARKDOWN_TAGS_TO_CLASS_ALIAS.forEach((tag) => {\n transformed = transformed.replace(\n new RegExp(`<${tag}`, 'g'),\n (_match: string) => `<${tag} class=\"${CLASS_PREFIX}__${tag}\"`\n );\n });\n\n MARKDOWN_WHOLE_TAGS_TO_CLASS_ALIAS.forEach((tag) => {\n transformed = transformed.replace(\n new RegExp(`<${tag}\\s*>`, 'g'),\n (_match: string) => `<${tag} class=\"${CLASS_PREFIX}__${tag}\">`\n );\n });\n\n return transformed;\n }\n}\n","import {\n Input,\n Component,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n AfterContentChecked,\n ChangeDetectorRef,\n ElementRef,\n ViewChild\n} from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\nimport { KbqMarkdownService } from './markdown.service';\n\n\n@Component({\n selector: 'kbq-markdown',\n styleUrls: ['./markdown.scss'],\n // no need format line with ng-content it's broke textContent for markdownService.parseToHtml()\n template: `\n <pre class=\"markdown-input\" #contentWrapper ngPreserveWhitespaces><ng-content></ng-content></pre>\n <div class=\"markdown-output\" [innerHtml]=\"resultHtml\"></div>\n `,\n host: {\n class: 'kbq-markdown'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class KbqMarkdown implements AfterContentChecked {\n @ViewChild('contentWrapper') contentWrapper: ElementRef;\n\n @Input()\n get markdownText(): string | null {\n return this._markdownText;\n }\n\n set markdownText(value: string | null) {\n if (value && this.markdownText !== value) {\n this.resultHtml = this.getResultHTML(value);\n }\n\n this._markdownText = value;\n }\n\n private _markdownText: string | null = null;\n\n resultHtml: SafeHtml = '';\n\n constructor(\n private markdownService: KbqMarkdownService,\n private sanitizer: DomSanitizer,\n private cdr: ChangeDetectorRef\n ) {}\n\n ngAfterContentChecked(): void {\n if (!this.markdownText && this.contentWrapper?.nativeElement.textContent) {\n this.resultHtml = this.getResultHTML(this.contentWrapper.nativeElement.textContent);\n this.cdr.detectChanges();\n }\n }\n\n private getResultHTML(value): SafeHtml {\n return this.sanitizer.bypassSecurityTrustHtml(this.markdownService.parseToHtml(value));\n }\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { KbqCommonModule } from '@koobiq/components/core';\n\nimport { KbqMarkdown } from './markdown.component';\nimport { KbqMarkdownService } from './markdown.service';\n\n\n@NgModule({\n imports: [CommonModule, A11yModule, KbqCommonModule, FormsModule],\n exports: [KbqMarkdown],\n declarations: [KbqMarkdown],\n providers: [KbqMarkdownService]\n})\nexport class KbqMarkdownModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.KbqMarkdownService"],"mappings":"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"}
1
+ {"version":3,"file":"koobiq-components-markdown.mjs","sources":["../../../packages/components/markdown/markdown.values.ts","../../../packages/components/markdown/markdown.service.ts","../../../packages/components/markdown/markdown.component.ts","../../../packages/components/markdown/markdown.module.ts","../../../packages/components/markdown/koobiq-components-markdown.ts"],"sourcesContent":["export const MARKDOWN_TAGS_TO_CLASS_ALIAS = [\n 'a',\n 'blockquote',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'hr',\n 'li',\n 'ol',\n 'table',\n 'tbody',\n 'thead',\n 'td',\n 'tr',\n 'ul',\n 'pre',\n 'code',\n 'img'\n];\n\n// separating th and p to prevent it's conflict with thead and pre\nexport const MARKDOWN_WHOLE_TAGS_TO_CLASS_ALIAS = [\n 'th',\n 'p'\n];\nexport const CLASS_PREFIX: string = 'kbq-markdown';\n","import { Injectable } from '@angular/core';\nimport { marked } from 'marked';\n\nimport {\n CLASS_PREFIX,\n MARKDOWN_TAGS_TO_CLASS_ALIAS,\n MARKDOWN_WHOLE_TAGS_TO_CLASS_ALIAS\n} from './markdown.values';\n\n\n@Injectable()\nexport class KbqMarkdownService {\n parseToHtml(markdown: string): string {\n return this.transform(marked.parse(markdown));\n }\n\n private transform(htmlContent: string): string {\n let transformed = htmlContent;\n\n MARKDOWN_TAGS_TO_CLASS_ALIAS.forEach((tag) => {\n transformed = transformed.replace(\n new RegExp(`<${tag}`, 'g'),\n (_match: string) => `<${tag} class=\"${CLASS_PREFIX}__${tag}\"`\n );\n });\n\n MARKDOWN_WHOLE_TAGS_TO_CLASS_ALIAS.forEach((tag) => {\n transformed = transformed.replace(\n new RegExp(`<${tag}\\s*>`, 'g'),\n (_match: string) => `<${tag} class=\"${CLASS_PREFIX}__${tag}\">`\n );\n });\n\n return transformed;\n }\n}\n","import {\n Input,\n Component,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n AfterContentChecked,\n ChangeDetectorRef,\n ElementRef,\n ViewChild\n} from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\nimport { KbqMarkdownService } from './markdown.service';\n\n\n@Component({\n selector: 'kbq-markdown',\n styleUrls: ['./markdown.scss'],\n // no need format line with ng-content it's broke textContent for markdownService.parseToHtml()\n template: `\n <pre class=\"markdown-input\" #contentWrapper ngPreserveWhitespaces><ng-content></ng-content></pre>\n <div class=\"markdown-output\" [innerHtml]=\"resultHtml\"></div>\n `,\n host: {\n class: 'kbq-markdown'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class KbqMarkdown implements AfterContentChecked {\n @ViewChild('contentWrapper') contentWrapper: ElementRef;\n\n @Input()\n get markdownText(): string | null {\n return this._markdownText;\n }\n\n set markdownText(value: string | null) {\n if (value && this.markdownText !== value) {\n this.resultHtml = this.getResultHTML(value);\n }\n\n this._markdownText = value;\n }\n\n private _markdownText: string | null = null;\n\n resultHtml: SafeHtml = '';\n\n constructor(\n private markdownService: KbqMarkdownService,\n private sanitizer: DomSanitizer,\n private cdr: ChangeDetectorRef\n ) {}\n\n ngAfterContentChecked(): void {\n if (!this.markdownText && this.contentWrapper?.nativeElement.textContent) {\n this.resultHtml = this.getResultHTML(this.contentWrapper.nativeElement.textContent);\n this.cdr.detectChanges();\n }\n }\n\n private getResultHTML(value): SafeHtml {\n return this.sanitizer.bypassSecurityTrustHtml(this.markdownService.parseToHtml(value));\n }\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { KbqCommonModule } from '@koobiq/components/core';\n\nimport { KbqMarkdown } from './markdown.component';\nimport { KbqMarkdownService } from './markdown.service';\n\n\n@NgModule({\n imports: [CommonModule, A11yModule, KbqCommonModule, FormsModule],\n exports: [KbqMarkdown],\n declarations: [KbqMarkdown],\n providers: [KbqMarkdownService]\n})\nexport class KbqMarkdownModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.KbqMarkdownService"],"mappings":";;;;;;;;;AAAa,MAAA,4BAA4B,GAAG;IACxC,GAAG;IACH,YAAY;IACZ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,OAAO;IACP,OAAO;IACP,OAAO;IACP,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,MAAM;IACN,KAAK;EACP;AAEF;AACa,MAAA,kCAAkC,GAAG;IAC9C,IAAI;IACJ,GAAG;EACL;AACK,MAAM,YAAY,GAAW;;MCjBvB,kBAAkB,CAAA;AAC3B,IAAA,WAAW,CAAC,QAAgB,EAAA;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;KACjD;AAEO,IAAA,SAAS,CAAC,WAAmB,EAAA;QACjC,IAAI,WAAW,GAAG,WAAW,CAAC;AAE9B,QAAA,4BAA4B,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AACzC,YAAA,WAAW,GAAG,WAAW,CAAC,OAAO,CAC7B,IAAI,MAAM,CAAC,CAAI,CAAA,EAAA,GAAG,CAAE,CAAA,EAAE,GAAG,CAAC,EAC1B,CAAC,MAAc,KAAK,CAAI,CAAA,EAAA,GAAG,CAAW,QAAA,EAAA,YAAY,CAAK,EAAA,EAAA,GAAG,CAAG,CAAA,CAAA,CAChE,CAAC;AACN,SAAC,CAAC,CAAC;AAEH,QAAA,kCAAkC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AAC/C,YAAA,WAAW,GAAG,WAAW,CAAC,OAAO,CAC7B,IAAI,MAAM,CAAC,CAAI,CAAA,EAAA,GAAG,CAAM,IAAA,CAAA,EAAE,GAAG,CAAC,EAC9B,CAAC,MAAc,KAAK,CAAI,CAAA,EAAA,GAAG,CAAW,QAAA,EAAA,YAAY,CAAK,EAAA,EAAA,GAAG,CAAI,EAAA,CAAA,CACjE,CAAC;AACN,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,WAAW,CAAC;KACtB;iIAvBQ,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;qIAAlB,kBAAkB,EAAA,CAAA,CAAA,EAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,UAAU;;;MCmBE,WAAW,CAAA;AAGpB,IAAA,IACI,YAAY,GAAA;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC;KAC7B;IAED,IAAI,YAAY,CAAC,KAAoB,EAAA;QACjC,IAAI,KAAK,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,EAAE;YACtC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SAC/C;AAED,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;KAC9B;AAMD,IAAA,WAAA,CACY,eAAmC,EACnC,SAAuB,EACvB,GAAsB,EAAA;QAFtB,IAAe,CAAA,eAAA,GAAf,eAAe,CAAoB;QACnC,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;QACvB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QAP1B,IAAa,CAAA,aAAA,GAAkB,IAAI,CAAC;QAE5C,IAAU,CAAA,UAAA,GAAa,EAAE,CAAC;KAMtB;IAEJ,qBAAqB,GAAA;AACjB,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,WAAW,EAAE;AACtE,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;AACpF,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;SAC5B;KACJ;AAEO,IAAA,aAAa,CAAC,KAAK,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;KAC1F;iIAnCQ,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAX,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,WAAW,EAVV,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,cAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;AAGT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,i5KAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAOQ,WAAW,EAAA,UAAA,EAAA,CAAA;kBAdvB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EAGd,QAAA,EAAA,CAAA;;;KAGT,EACK,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE,cAAc;AACxB,qBAAA,EAAA,eAAA,EACgB,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,MAAA,EAAA,CAAA,i5KAAA,CAAA,EAAA,CAAA;+IAGR,cAAc,EAAA,CAAA;sBAA1C,SAAS;uBAAC,gBAAgB,CAAA;gBAGvB,YAAY,EAAA,CAAA;sBADf,KAAK;;;MChBG,iBAAiB,CAAA;iIAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;kIAAjB,iBAAiB,EAAA,YAAA,EAAA,CAHX,WAAW,CAAA,EAAA,OAAA,EAAA,CAFhB,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,CAAA,EAAA,OAAA,EAAA,CACtD,WAAW,CAAA,EAAA,CAAA,CAAA,EAAA;kIAIZ,iBAAiB,EAAA,SAAA,EAFf,CAAC,kBAAkB,CAAC,EAAA,OAAA,EAAA,CAHrB,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAKvD,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAN7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,CAAC;oBACjE,OAAO,EAAE,CAAC,WAAW,CAAC;oBACtB,YAAY,EAAE,CAAC,WAAW,CAAC;oBAC3B,SAAS,EAAE,CAAC,kBAAkB,CAAC;AAClC,iBAAA,CAAA;;;ACfD;;AAEG;;;;"}
@@ -89,16 +89,16 @@ class KbqModalControlService {
89
89
  });
90
90
  }
91
91
  }
92
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqModalControlService, deps: [{ token: KbqModalControlService, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
93
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqModalControlService }); }
92
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqModalControlService, deps: [{ token: KbqModalControlService, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
93
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqModalControlService }); }
94
94
  }
95
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqModalControlService, decorators: [{
95
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqModalControlService, decorators: [{
96
96
  type: Injectable
97
- }], ctorParameters: function () { return [{ type: KbqModalControlService, decorators: [{
97
+ }], ctorParameters: () => [{ type: KbqModalControlService, decorators: [{
98
98
  type: Optional
99
99
  }, {
100
100
  type: SkipSelf
101
- }] }]; } });
101
+ }] }] });
102
102
 
103
103
  /**
104
104
  * API class that public to users to handle the modal instance.
@@ -137,10 +137,10 @@ class CssUnitPipe {
137
137
  const formatted = +value;
138
138
  return isNaN(formatted) ? `${value}` : `${formatted}${defaultUnit}`;
139
139
  }
140
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: CssUnitPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
141
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.5", ngImport: i0, type: CssUnitPipe, name: "toCssUnit" }); }
140
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: CssUnitPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
141
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.0", ngImport: i0, type: CssUnitPipe, name: "toCssUnit" }); }
142
142
  }
143
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: CssUnitPipe, decorators: [{
143
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: CssUnitPipe, decorators: [{
144
144
  type: Pipe,
145
145
  args: [{
146
146
  name: 'toCssUnit'
@@ -211,6 +211,8 @@ class KbqModalComponent extends KbqModalRef {
211
211
  this.kbqOnOk = new EventEmitter();
212
212
  this._kbqCancelLoading = false;
213
213
  this.kbqOnCancel = new EventEmitter();
214
+ this.isTopOverflow = false;
215
+ this.isBottomOverflow = false;
214
216
  // The origin point that animation based on
215
217
  this.transformOrigin = '0px 0px 0px';
216
218
  this.kbqGetContainer = () => this.overlay.create();
@@ -256,18 +258,25 @@ class KbqModalComponent extends KbqModalRef {
256
258
  this.bodyContainer.insert(this.contentComponentRef.hostView);
257
259
  }
258
260
  this.getElement().getElementsByTagName('button')[0]?.focus();
259
- for (const autoFocusedButton of this.autoFocusedButtons.toArray()) {
260
- if (autoFocusedButton.nativeElement.autofocus) {
261
- autoFocusedButton.nativeElement.focus();
262
- break;
263
- }
264
- }
261
+ this.getElement().querySelector('button[autofocus]')?.focus();
262
+ this.checkOverflow();
265
263
  }
266
264
  ngOnDestroy() {
267
265
  if (this.container instanceof OverlayRef) {
268
266
  this.container.dispose();
269
267
  }
270
268
  }
269
+ checkOverflow() {
270
+ const nativeElement = this.modalBody?.nativeElement;
271
+ if (!nativeElement) {
272
+ return;
273
+ }
274
+ const scrollTop = nativeElement.scrollTop;
275
+ const offsetHeight = nativeElement.offsetHeight;
276
+ const scrollHeight = nativeElement.scrollHeight;
277
+ this.isTopOverflow = scrollTop > 0;
278
+ this.isBottomOverflow = scrollTop + offsetHeight < scrollHeight;
279
+ }
271
280
  open() {
272
281
  this.focusedElementBeforeOpen = this.document.activeElement;
273
282
  this.focusMonitor.monitor(this.modalContainer, true)
@@ -537,18 +546,18 @@ class KbqModalComponent extends KbqModalRef {
537
546
  this.renderer.removeStyle(this.document.body, 'overflow');
538
547
  }
539
548
  }
540
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqModalComponent, deps: [{ token: i1.Overlay }, { token: i0.Renderer2 }, { token: i0.ComponentFactoryResolver }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: KbqModalControlService }, { token: i0.ChangeDetectorRef }, { token: i3.FocusMonitor }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
541
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: KbqModalComponent, selector: "kbq-modal", inputs: { kbqModalType: "kbqModalType", kbqComponent: "kbqComponent", kbqContent: "kbqContent", kbqComponentParams: "kbqComponentParams", kbqFooter: "kbqFooter", kbqVisible: "kbqVisible", kbqZIndex: "kbqZIndex", kbqWidth: "kbqWidth", kbqSize: "kbqSize", kbqWrapClassName: "kbqWrapClassName", kbqClassName: "kbqClassName", kbqStyle: "kbqStyle", kbqTitle: "kbqTitle", kbqCloseByESC: "kbqCloseByESC", kbqClosable: "kbqClosable", kbqMask: "kbqMask", kbqMaskClosable: "kbqMaskClosable", kbqMaskStyle: "kbqMaskStyle", kbqBodyStyle: "kbqBodyStyle", kbqOkText: "kbqOkText", kbqOkType: "kbqOkType", kbqRestoreFocus: "kbqRestoreFocus", kbqOkLoading: "kbqOkLoading", kbqOnOk: "kbqOnOk", kbqCancelText: "kbqCancelText", kbqCancelLoading: "kbqCancelLoading", kbqOnCancel: "kbqOnCancel", kbqGetContainer: "kbqGetContainer" }, outputs: { kbqVisibleChange: "kbqVisibleChange", kbqAfterOpen: "kbqAfterOpen", kbqAfterClose: "kbqAfterClose", kbqOnOk: "kbqOnOk", kbqOnCancel: "kbqOnCancel" }, host: { listeners: { "keydown": "onKeyDown($event)" } }, viewQueries: [{ propertyName: "modalContainer", first: true, predicate: ["modalContainer"], descendants: true, static: true }, { propertyName: "bodyContainer", first: true, predicate: ["bodyContainer"], descendants: true, read: ViewContainerRef }, { propertyName: "modalBody", first: true, predicate: ["modalBody"], descendants: true }, { propertyName: "autoFocusedButtons", predicate: ["autoFocusedButton"], descendants: true, read: ElementRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<!-- Compatible: the <ng-content> can appear only once -->\n<ng-template #tplOriginContent>\n <ng-content></ng-content>\n</ng-template>\n\n<div>\n <div *ngIf=\"kbqMask\"\n class=\"kbq-modal-mask\"\n [ngClass]=\"maskAnimationClassMap\"\n [class.kbq-modal-mask-hidden]=\"hidden\"\n [ngStyle]=\"kbqMaskStyle\"\n [style.zIndex]=\"kbqZIndex\">\n </div>\n\n <div (mousedown)=\"onClickMask($event)\"\n class=\"kbq-modal-wrap {{ kbqWrapClassName }}\"\n [style.zIndex]=\"kbqZIndex\"\n [style.display]=\"hidden ? 'none' : ''\"\n tabindex=\"-1\">\n\n <div #modalContainer\n class=\"kbq-modal {{ kbqClassName }} kbq-modal_{{ kbqSize }}\"\n [ngClass]=\"modalAnimationClassMap\"\n [ngStyle]=\"kbqStyle\"\n [style.width]=\"kbqWidth | toCssUnit\"\n [style.transform-origin]=\"transformOrigin\">\n\n <div class=\"kbq-modal-content\" cdkTrapFocus>\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isModalType('default')\"\n [ngTemplateOutlet]=\"tplContentDefault\"></ng-container>\n <ng-container *ngSwitchCase=\"isModalType('confirm')\"\n [ngTemplateOutlet]=\"tplContentConfirm\"></ng-container>\n <ng-container *ngSwitchCase=\"isModalType('custom')\"\n [ngTemplateOutlet]=\"tplContentCustom\"></ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #tplContentCustom>\n <ng-container #bodyContainer></ng-container>\n</ng-template>\n\n\n<!-- [Predefined] Default Modal Content -->\n<ng-template #tplContentDefault>\n <div *ngIf=\"kbqTitle\" class=\"kbq-modal-header\" kbq-title>\n <div class=\"kbq-modal-title\">\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(kbqTitle)\" [ngTemplateOutlet]=\"$any(kbqTitle)\"></ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(kbqTitle)\">\n <div [innerHTML]=\"kbqTitle\"></div>\n </ng-container>\n </ng-container>\n </div>\n\n <button *ngIf=\"kbqClosable\"\n kbq-button\n [color]=\"'contrast'\"\n (click)=\"onClickCloseBtn()\"\n class=\"kbq-modal-close kbq-button_transparent\">\n <i kbq-icon=\"mc-close-L_16\" [color]=\"componentColors.Contrast\"></i>\n </button>\n </div>\n <div class=\"kbq-modal-body kbq-scrollbar\" #modalBody [ngStyle]=\"kbqBodyStyle\">\n <ng-container #bodyContainer>\n <ng-container *ngIf=\"!isComponent(kbqContent)\" [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(kbqContent)\" [ngTemplateOutlet]=\"$any(kbqContent)\"></ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(kbqContent)\">\n <div [innerHTML]=\"kbqContent\"></div>\n </ng-container>\n <ng-container *ngSwitchDefault [ngTemplateOutlet]=\"tplOriginContent\"></ng-container>\n </ng-container>\n </ng-container>\n </div>\n <div *ngIf=\"kbqFooter || kbqOkText || kbqCancelText\" class=\"kbq-modal-footer\">\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(kbqFooter)\" [ngTemplateOutlet]=\"$any(kbqFooter)\"></ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(kbqFooter)\">\n <div [innerHTML]=\"kbqFooter\"></div>\n </ng-container>\n <ng-container *ngSwitchCase=\"isModalButtons(kbqFooter)\">\n <ng-container *ngFor=\"let button of $any(kbqFooter)\">\n <button\n kbq-button\n #autoFocusedButton\n [attr.autofocus]=\"button.autoFocus\"\n [attr.kbq-modal-main-action]=\"button.kbqModalMainAction\"\n *ngIf=\"getButtonCallableProp(button, 'show')\"\n [disabled]=\"getButtonCallableProp(button, 'disabled')\"\n [class.kbq-progress]=\"getButtonCallableProp(button, 'loading')\"\n (click)=\"onButtonClick(button)\"\n [color]=\"button.type\">\n {{ button.label }}\n </button>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <button\n #autoFocusedButton\n [attr.autofocus]=\"true\"\n *ngIf=\"kbqOkText\"\n kbq-button\n [color]=\"componentColors.Contrast\"\n (click)=\"onClickOkCancel('ok')\">\n\n {{ okText }}\n </button>\n <button *ngIf=\"kbqCancelText\" kbq-button (click)=\"onClickOkCancel('cancel')\">\n {{ cancelText }}\n </button>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\n<!-- /[Predefined] Default Modal Content -->\n\n<!-- [Predefined] Confirm Modal Content -->\n<ng-template #tplContentConfirm>\n <div class=\"kbq-modal-body\" [ngStyle]=\"kbqBodyStyle\">\n <ng-container #bodyContainer>\n <ng-container *ngIf=\"!isComponent(kbqContent)\" [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(kbqContent)\"\n [ngTemplateOutlet]=\"$any(kbqContent)\">\n </ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(kbqContent)\">\n <div [innerHTML]=\"kbqContent\"></div>\n </ng-container>\n <ng-container *ngSwitchDefault [ngTemplateOutlet]=\"tplOriginContent\"></ng-container>\n </ng-container>\n </ng-container>\n </div>\n <div class=\"kbq-confirm-footer\" *ngIf=\"kbqOkText || kbqCancelText\">\n <button\n kbq-button\n #autoFocusedButton\n [color]=\"kbqOkType\"\n [attr.autofocus]=\"true\"\n *ngIf=\"kbqOkText\"\n (click)=\"onClickOkCancel('ok')\">\n\n {{ okText }}\n </button>\n\n <button kbq-button *ngIf=\"kbqCancelText\" (click)=\"onClickOkCancel('cancel')\">\n {{ cancelText }}\n </button>\n </div>\n</ng-template>\n<!-- /[Predefined] Confirm Modal Content -->\n", styles: [".kbq-confirm .kbq-modal-close{display:none}.kbq-confirm .kbq-modal-body{padding-right:var(--kbq-modal-size-content-padding-horizontal, 32px);padding-left:var(--kbq-modal-size-content-padding-horizontal, 32px);padding-bottom:var(--kbq-modal-size-content-padding-bottom, 24px)}.kbq-confirm .kbq-confirm-footer{display:flex;padding:var(--kbq-modal-size-footer-padding-top, 8px) var(--kbq-modal-size-footer-padding-horizontal, ) var(--kbq-modal-size-footer-padding-bottom, 32px) var(--kbq-modal-size-footer-padding-horizontal, 32px);gap:var(--kbq-modal-size-footer-content-gap-horizontal, 16px)}.kbq-modal{box-sizing:border-box;position:relative;top:48px;border-radius:var(--kbq-modal-size-border-radius, 8px);width:auto;margin:0 auto;list-style:none}.kbq-modal.zoom-enter,.kbq-modal.zoom-appear{animation-duration:.3s;transform:none;opacity:0}.kbq-modal.kbq-modal_small{width:var(--kbq-modal-size-small-width, 400px)}.kbq-modal.kbq-modal_medium{width:var(--kbq-modal-size-medium-width, 640px)}.kbq-modal.kbq-modal_large{width:var(--kbq-modal-size-large-width, 960px)}.kbq-modal-wrap{position:fixed;z-index:1000;inset:0;overflow:auto;-webkit-overflow-scrolling:touch;outline:0}.kbq-modal-content{position:relative;border-radius:var(--kbq-modal-size-border-radius, 8px);background-clip:padding-box}.kbq-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--kbq-modal-size-header-padding-vertical, 16px) var(--kbq-modal-size-header-padding-right, 12px) var(--kbq-modal-size-header-padding-vertical, 16px) var(--kbq-modal-size-header-padding-left, 32px)}.kbq-modal-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.kbq-modal-body{display:block;overflow-y:auto;max-height:calc(100vh - 260px);padding-right:var(--kbq-modal-size-content-padding-horizontal, 32px);padding-left:var(--kbq-modal-size-content-padding-horizontal, 32px);padding-bottom:var(--kbq-modal-size-content-padding-bottom, 24px);word-wrap:break-word}.kbq-modal-footer{display:flex;align-items:center;padding:var(--kbq-modal-size-footer-padding-top, 8px) var(--kbq-modal-size-footer-padding-horizontal, ) var(--kbq-modal-size-footer-padding-bottom, 32px) var(--kbq-modal-size-footer-padding-horizontal, 32px);gap:var(--kbq-modal-size-footer-content-gap-horizontal, 16px)}.kbq-modal-mask{position:fixed;z-index:1000;inset:0;height:100%}.kbq-modal-mask.kbq-modal-mask-hidden{display:none}.kbq-modal-open{overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i4.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i3.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: i5.KbqButton, selector: "[kbq-button]", inputs: ["color", "tabIndex", "kbqStyle", "disabled"] }, { kind: "directive", type: i5.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "component", type: i6.KbqIcon, selector: "[kbq-icon]", inputs: ["color", "small", "autoColor"] }, { kind: "directive", type: i7.KbqTitleDirective, selector: "[kbq-title]", exportAs: ["kbqTitle"] }, { kind: "pipe", type: CssUnitPipe, name: "toCssUnit" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
549
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqModalComponent, deps: [{ token: i1.Overlay }, { token: i0.Renderer2 }, { token: i0.ComponentFactoryResolver }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: KbqModalControlService }, { token: i0.ChangeDetectorRef }, { token: i3.FocusMonitor }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
550
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.0", type: KbqModalComponent, selector: "kbq-modal", inputs: { kbqModalType: "kbqModalType", kbqComponent: "kbqComponent", kbqContent: "kbqContent", kbqComponentParams: "kbqComponentParams", kbqFooter: "kbqFooter", kbqVisible: "kbqVisible", kbqZIndex: "kbqZIndex", kbqWidth: "kbqWidth", kbqSize: "kbqSize", kbqWrapClassName: "kbqWrapClassName", kbqClassName: "kbqClassName", kbqStyle: "kbqStyle", kbqTitle: "kbqTitle", kbqCloseByESC: "kbqCloseByESC", kbqClosable: "kbqClosable", kbqMask: "kbqMask", kbqMaskClosable: "kbqMaskClosable", kbqMaskStyle: "kbqMaskStyle", kbqBodyStyle: "kbqBodyStyle", kbqOkText: "kbqOkText", kbqOkType: "kbqOkType", kbqRestoreFocus: "kbqRestoreFocus", kbqOkLoading: "kbqOkLoading", kbqOnOk: "kbqOnOk", kbqCancelText: "kbqCancelText", kbqCancelLoading: "kbqCancelLoading", kbqOnCancel: "kbqOnCancel", kbqGetContainer: "kbqGetContainer" }, outputs: { kbqVisibleChange: "kbqVisibleChange", kbqAfterOpen: "kbqAfterOpen", kbqAfterClose: "kbqAfterClose", kbqOnOk: "kbqOnOk", kbqOnCancel: "kbqOnCancel" }, host: { listeners: { "keydown": "onKeyDown($event)" } }, viewQueries: [{ propertyName: "modalContainer", first: true, predicate: ["modalContainer"], descendants: true, static: true }, { propertyName: "bodyContainer", first: true, predicate: ["bodyContainer"], descendants: true, read: ViewContainerRef }, { propertyName: "modalBody", first: true, predicate: ["modalBody"], descendants: true }, { propertyName: "autoFocusedButtons", predicate: ["autoFocusedButton"], descendants: true, read: ElementRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<!-- Compatible: the <ng-content> can appear only once -->\n<ng-template #tplOriginContent>\n <ng-content></ng-content>\n</ng-template>\n\n<div>\n <div *ngIf=\"kbqMask\"\n class=\"kbq-modal-mask\"\n [ngClass]=\"maskAnimationClassMap\"\n [class.kbq-modal-mask-hidden]=\"hidden\"\n [ngStyle]=\"kbqMaskStyle\"\n [style.zIndex]=\"kbqZIndex\">\n </div>\n\n <div (mousedown)=\"onClickMask($event)\"\n class=\"kbq-modal-wrap {{ kbqWrapClassName }}\"\n [style.zIndex]=\"kbqZIndex\"\n [style.display]=\"hidden ? 'none' : ''\"\n tabindex=\"-1\">\n\n <div #modalContainer\n class=\"kbq-modal {{ kbqClassName }} kbq-modal_{{ kbqSize }}\"\n [ngClass]=\"modalAnimationClassMap\"\n [class.kbq-modal_no-footer]=\"!kbqFooter\"\n [ngStyle]=\"kbqStyle\"\n [style.width]=\"kbqWidth | toCssUnit\"\n [style.transform-origin]=\"transformOrigin\">\n\n <div class=\"kbq-modal-content\" cdkTrapFocus>\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isModalType('default')\"\n [ngTemplateOutlet]=\"tplContentDefault\"></ng-container>\n <ng-container *ngSwitchCase=\"isModalType('confirm')\"\n [ngTemplateOutlet]=\"tplContentConfirm\"></ng-container>\n <ng-container *ngSwitchCase=\"isModalType('custom')\"\n [ngTemplateOutlet]=\"tplContentCustom\"></ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #tplContentCustom>\n <ng-container #bodyContainer></ng-container>\n</ng-template>\n\n\n<!-- [Predefined] Default Modal Content -->\n<ng-template #tplContentDefault>\n <div *ngIf=\"kbqTitle\" class=\"kbq-modal-header\" kbq-title [class.kbq-modal-body_top-overflow]=\"isTopOverflow\">\n <div class=\"kbq-modal-title\">\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(kbqTitle)\" [ngTemplateOutlet]=\"$any(kbqTitle)\"></ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(kbqTitle)\">\n <div [innerHTML]=\"kbqTitle\"></div>\n </ng-container>\n </ng-container>\n </div>\n\n <button *ngIf=\"kbqClosable\"\n kbq-button\n [color]=\"'contrast'\"\n (click)=\"onClickCloseBtn()\"\n class=\"kbq-modal-close kbq-button_transparent\">\n <i kbq-icon=\"mc-close-L_16\" [color]=\"componentColors.Contrast\"></i>\n </button>\n </div>\n <div class=\"kbq-modal-body kbq-scrollbar\" #modalBody [ngStyle]=\"kbqBodyStyle\" (scroll)=\"checkOverflow()\">\n <ng-container #bodyContainer>\n <ng-container *ngIf=\"!isComponent(kbqContent)\" [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(kbqContent)\" [ngTemplateOutlet]=\"$any(kbqContent)\"></ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(kbqContent)\">\n <div [innerHTML]=\"kbqContent\"></div>\n </ng-container>\n <ng-container *ngSwitchDefault [ngTemplateOutlet]=\"tplOriginContent\"></ng-container>\n </ng-container>\n </ng-container>\n </div>\n <div *ngIf=\"kbqFooter || kbqOkText || kbqCancelText\"\n class=\"kbq-modal-footer\"\n [class.kbq-modal-body_bottom-overflow]=\"isBottomOverflow\">\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(kbqFooter)\" [ngTemplateOutlet]=\"$any(kbqFooter)\"></ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(kbqFooter)\">\n <div [innerHTML]=\"kbqFooter\"></div>\n </ng-container>\n <ng-container *ngSwitchCase=\"isModalButtons(kbqFooter)\">\n <ng-container *ngFor=\"let button of $any(kbqFooter)\">\n <button\n kbq-button\n [attr.autofocus]=\"button.autoFocus\"\n [attr.kbq-modal-main-action]=\"button.kbqModalMainAction\"\n *ngIf=\"getButtonCallableProp(button, 'show')\"\n [disabled]=\"getButtonCallableProp(button, 'disabled')\"\n [class.kbq-progress]=\"getButtonCallableProp(button, 'loading')\"\n (click)=\"onButtonClick(button)\"\n [color]=\"button.type\">\n {{ button.label }}\n </button>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <button\n [attr.autofocus]=\"true\"\n *ngIf=\"kbqOkText\"\n kbq-button\n [color]=\"componentColors.Contrast\"\n (click)=\"onClickOkCancel('ok')\">\n\n {{ okText }}\n </button>\n <button *ngIf=\"kbqCancelText\" kbq-button (click)=\"onClickOkCancel('cancel')\">\n {{ cancelText }}\n </button>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\n<!-- /[Predefined] Default Modal Content -->\n\n<!-- [Predefined] Confirm Modal Content -->\n<ng-template #tplContentConfirm>\n <div class=\"kbq-modal-body\" [ngStyle]=\"kbqBodyStyle\">\n <ng-container #bodyContainer>\n <ng-container *ngIf=\"!isComponent(kbqContent)\" [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(kbqContent)\"\n [ngTemplateOutlet]=\"$any(kbqContent)\">\n </ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(kbqContent)\">\n <div [innerHTML]=\"kbqContent\"></div>\n </ng-container>\n <ng-container *ngSwitchDefault [ngTemplateOutlet]=\"tplOriginContent\"></ng-container>\n </ng-container>\n </ng-container>\n </div>\n <div class=\"kbq-confirm-footer\" *ngIf=\"kbqOkText || kbqCancelText\">\n <button\n kbq-button\n [color]=\"kbqOkType\"\n [attr.autofocus]=\"true\"\n *ngIf=\"kbqOkText\"\n (click)=\"onClickOkCancel('ok')\">\n\n {{ okText }}\n </button>\n\n <button kbq-button *ngIf=\"kbqCancelText\" (click)=\"onClickOkCancel('cancel')\">\n {{ cancelText }}\n </button>\n </div>\n</ng-template>\n<!-- /[Predefined] Confirm Modal Content -->\n", styles: [".kbq-confirm .kbq-modal-close{display:none}.kbq-confirm .kbq-confirm-footer{display:flex;gap:var(--kbq-modal-size-footer-content-gap-horizontal, 16px)}.kbq-modal{box-sizing:border-box;position:relative;top:48px;border-radius:var(--kbq-modal-size-border-radius, 8px);width:auto;margin:0 auto;list-style:none}.kbq-modal.zoom-enter,.kbq-modal.zoom-appear{animation-duration:.3s;transform:none;opacity:0}.kbq-modal.kbq-modal_small{width:var(--kbq-modal-size-small-width, 400px)}.kbq-modal.kbq-modal_medium{width:var(--kbq-modal-size-medium-width, 640px)}.kbq-modal.kbq-modal_large{width:var(--kbq-modal-size-large-width, 960px)}.kbq-modal .kbq-modal-close{position:absolute;top:16px;right:8px}.kbq-modal-wrap{position:fixed;z-index:1000;inset:0;overflow:auto;-webkit-overflow-scrolling:touch;outline:0}.kbq-modal-content{position:relative;border-radius:var(--kbq-modal-size-border-radius, 8px);background-clip:padding-box}.kbq-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--kbq-modal-size-header-padding-vertical, 16px) var(--kbq-modal-size-header-padding-right, 48px) var(--kbq-modal-size-header-padding-vertical, 16px) var(--kbq-modal-size-header-padding-left, 24px)}.kbq-modal-header+.kbq-modal-body{padding-top:var(--kbq-modal-size-content-padding-top, 0)}.kbq-modal-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.kbq-modal-body{display:block;overflow-y:auto;max-height:calc(100vh - 260px);padding:var(--kbq-modal-size-content-padding-top-without-header, 24px) var(--kbq-modal-size-content-padding-horizontal, 24px) var(--kbq-modal-size-content-padding-bottom, 8px) var(--kbq-modal-size-content-padding-horizontal, 24px);word-wrap:break-word}.kbq-modal-footer,.kbq-confirm-footer{display:flex;align-items:center;padding:var(--kbq-modal-size-footer-padding-vertical, 20px) var(--kbq-modal-size-footer-padding-horizontal, 24px);gap:var(--kbq-modal-size-footer-content-gap-horizontal, 16px)}.kbq-modal-mask{position:fixed;z-index:1000;inset:0;height:100%}.kbq-modal-mask.kbq-modal-mask-hidden{display:none}.kbq-modal-open{overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i4.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i3.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: i5.KbqButton, selector: "[kbq-button]", inputs: ["color", "tabIndex", "kbqStyle", "disabled"] }, { kind: "directive", type: i5.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "component", type: i6.KbqIcon, selector: "[kbq-icon]", inputs: ["color", "small", "autoColor"] }, { kind: "directive", type: i7.KbqTitleDirective, selector: "[kbq-title]", exportAs: ["kbqTitle"] }, { kind: "pipe", type: CssUnitPipe, name: "toCssUnit" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
542
551
  }
543
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqModalComponent, decorators: [{
552
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqModalComponent, decorators: [{
544
553
  type: Component,
545
554
  args: [{ selector: 'kbq-modal', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
546
555
  '(keydown)': 'onKeyDown($event)'
547
- }, template: "<!-- Compatible: the <ng-content> can appear only once -->\n<ng-template #tplOriginContent>\n <ng-content></ng-content>\n</ng-template>\n\n<div>\n <div *ngIf=\"kbqMask\"\n class=\"kbq-modal-mask\"\n [ngClass]=\"maskAnimationClassMap\"\n [class.kbq-modal-mask-hidden]=\"hidden\"\n [ngStyle]=\"kbqMaskStyle\"\n [style.zIndex]=\"kbqZIndex\">\n </div>\n\n <div (mousedown)=\"onClickMask($event)\"\n class=\"kbq-modal-wrap {{ kbqWrapClassName }}\"\n [style.zIndex]=\"kbqZIndex\"\n [style.display]=\"hidden ? 'none' : ''\"\n tabindex=\"-1\">\n\n <div #modalContainer\n class=\"kbq-modal {{ kbqClassName }} kbq-modal_{{ kbqSize }}\"\n [ngClass]=\"modalAnimationClassMap\"\n [ngStyle]=\"kbqStyle\"\n [style.width]=\"kbqWidth | toCssUnit\"\n [style.transform-origin]=\"transformOrigin\">\n\n <div class=\"kbq-modal-content\" cdkTrapFocus>\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isModalType('default')\"\n [ngTemplateOutlet]=\"tplContentDefault\"></ng-container>\n <ng-container *ngSwitchCase=\"isModalType('confirm')\"\n [ngTemplateOutlet]=\"tplContentConfirm\"></ng-container>\n <ng-container *ngSwitchCase=\"isModalType('custom')\"\n [ngTemplateOutlet]=\"tplContentCustom\"></ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #tplContentCustom>\n <ng-container #bodyContainer></ng-container>\n</ng-template>\n\n\n<!-- [Predefined] Default Modal Content -->\n<ng-template #tplContentDefault>\n <div *ngIf=\"kbqTitle\" class=\"kbq-modal-header\" kbq-title>\n <div class=\"kbq-modal-title\">\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(kbqTitle)\" [ngTemplateOutlet]=\"$any(kbqTitle)\"></ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(kbqTitle)\">\n <div [innerHTML]=\"kbqTitle\"></div>\n </ng-container>\n </ng-container>\n </div>\n\n <button *ngIf=\"kbqClosable\"\n kbq-button\n [color]=\"'contrast'\"\n (click)=\"onClickCloseBtn()\"\n class=\"kbq-modal-close kbq-button_transparent\">\n <i kbq-icon=\"mc-close-L_16\" [color]=\"componentColors.Contrast\"></i>\n </button>\n </div>\n <div class=\"kbq-modal-body kbq-scrollbar\" #modalBody [ngStyle]=\"kbqBodyStyle\">\n <ng-container #bodyContainer>\n <ng-container *ngIf=\"!isComponent(kbqContent)\" [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(kbqContent)\" [ngTemplateOutlet]=\"$any(kbqContent)\"></ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(kbqContent)\">\n <div [innerHTML]=\"kbqContent\"></div>\n </ng-container>\n <ng-container *ngSwitchDefault [ngTemplateOutlet]=\"tplOriginContent\"></ng-container>\n </ng-container>\n </ng-container>\n </div>\n <div *ngIf=\"kbqFooter || kbqOkText || kbqCancelText\" class=\"kbq-modal-footer\">\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(kbqFooter)\" [ngTemplateOutlet]=\"$any(kbqFooter)\"></ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(kbqFooter)\">\n <div [innerHTML]=\"kbqFooter\"></div>\n </ng-container>\n <ng-container *ngSwitchCase=\"isModalButtons(kbqFooter)\">\n <ng-container *ngFor=\"let button of $any(kbqFooter)\">\n <button\n kbq-button\n #autoFocusedButton\n [attr.autofocus]=\"button.autoFocus\"\n [attr.kbq-modal-main-action]=\"button.kbqModalMainAction\"\n *ngIf=\"getButtonCallableProp(button, 'show')\"\n [disabled]=\"getButtonCallableProp(button, 'disabled')\"\n [class.kbq-progress]=\"getButtonCallableProp(button, 'loading')\"\n (click)=\"onButtonClick(button)\"\n [color]=\"button.type\">\n {{ button.label }}\n </button>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <button\n #autoFocusedButton\n [attr.autofocus]=\"true\"\n *ngIf=\"kbqOkText\"\n kbq-button\n [color]=\"componentColors.Contrast\"\n (click)=\"onClickOkCancel('ok')\">\n\n {{ okText }}\n </button>\n <button *ngIf=\"kbqCancelText\" kbq-button (click)=\"onClickOkCancel('cancel')\">\n {{ cancelText }}\n </button>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\n<!-- /[Predefined] Default Modal Content -->\n\n<!-- [Predefined] Confirm Modal Content -->\n<ng-template #tplContentConfirm>\n <div class=\"kbq-modal-body\" [ngStyle]=\"kbqBodyStyle\">\n <ng-container #bodyContainer>\n <ng-container *ngIf=\"!isComponent(kbqContent)\" [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(kbqContent)\"\n [ngTemplateOutlet]=\"$any(kbqContent)\">\n </ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(kbqContent)\">\n <div [innerHTML]=\"kbqContent\"></div>\n </ng-container>\n <ng-container *ngSwitchDefault [ngTemplateOutlet]=\"tplOriginContent\"></ng-container>\n </ng-container>\n </ng-container>\n </div>\n <div class=\"kbq-confirm-footer\" *ngIf=\"kbqOkText || kbqCancelText\">\n <button\n kbq-button\n #autoFocusedButton\n [color]=\"kbqOkType\"\n [attr.autofocus]=\"true\"\n *ngIf=\"kbqOkText\"\n (click)=\"onClickOkCancel('ok')\">\n\n {{ okText }}\n </button>\n\n <button kbq-button *ngIf=\"kbqCancelText\" (click)=\"onClickOkCancel('cancel')\">\n {{ cancelText }}\n </button>\n </div>\n</ng-template>\n<!-- /[Predefined] Confirm Modal Content -->\n", styles: [".kbq-confirm .kbq-modal-close{display:none}.kbq-confirm .kbq-modal-body{padding-right:var(--kbq-modal-size-content-padding-horizontal, 32px);padding-left:var(--kbq-modal-size-content-padding-horizontal, 32px);padding-bottom:var(--kbq-modal-size-content-padding-bottom, 24px)}.kbq-confirm .kbq-confirm-footer{display:flex;padding:var(--kbq-modal-size-footer-padding-top, 8px) var(--kbq-modal-size-footer-padding-horizontal, ) var(--kbq-modal-size-footer-padding-bottom, 32px) var(--kbq-modal-size-footer-padding-horizontal, 32px);gap:var(--kbq-modal-size-footer-content-gap-horizontal, 16px)}.kbq-modal{box-sizing:border-box;position:relative;top:48px;border-radius:var(--kbq-modal-size-border-radius, 8px);width:auto;margin:0 auto;list-style:none}.kbq-modal.zoom-enter,.kbq-modal.zoom-appear{animation-duration:.3s;transform:none;opacity:0}.kbq-modal.kbq-modal_small{width:var(--kbq-modal-size-small-width, 400px)}.kbq-modal.kbq-modal_medium{width:var(--kbq-modal-size-medium-width, 640px)}.kbq-modal.kbq-modal_large{width:var(--kbq-modal-size-large-width, 960px)}.kbq-modal-wrap{position:fixed;z-index:1000;inset:0;overflow:auto;-webkit-overflow-scrolling:touch;outline:0}.kbq-modal-content{position:relative;border-radius:var(--kbq-modal-size-border-radius, 8px);background-clip:padding-box}.kbq-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--kbq-modal-size-header-padding-vertical, 16px) var(--kbq-modal-size-header-padding-right, 12px) var(--kbq-modal-size-header-padding-vertical, 16px) var(--kbq-modal-size-header-padding-left, 32px)}.kbq-modal-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.kbq-modal-body{display:block;overflow-y:auto;max-height:calc(100vh - 260px);padding-right:var(--kbq-modal-size-content-padding-horizontal, 32px);padding-left:var(--kbq-modal-size-content-padding-horizontal, 32px);padding-bottom:var(--kbq-modal-size-content-padding-bottom, 24px);word-wrap:break-word}.kbq-modal-footer{display:flex;align-items:center;padding:var(--kbq-modal-size-footer-padding-top, 8px) var(--kbq-modal-size-footer-padding-horizontal, ) var(--kbq-modal-size-footer-padding-bottom, 32px) var(--kbq-modal-size-footer-padding-horizontal, 32px);gap:var(--kbq-modal-size-footer-content-gap-horizontal, 16px)}.kbq-modal-mask{position:fixed;z-index:1000;inset:0;height:100%}.kbq-modal-mask.kbq-modal-mask-hidden{display:none}.kbq-modal-open{overflow:hidden}\n"] }]
548
- }], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.Renderer2 }, { type: i0.ComponentFactoryResolver }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: KbqModalControlService }, { type: i0.ChangeDetectorRef }, { type: i3.FocusMonitor }, { type: undefined, decorators: [{
556
+ }, template: "<!-- Compatible: the <ng-content> can appear only once -->\n<ng-template #tplOriginContent>\n <ng-content></ng-content>\n</ng-template>\n\n<div>\n <div *ngIf=\"kbqMask\"\n class=\"kbq-modal-mask\"\n [ngClass]=\"maskAnimationClassMap\"\n [class.kbq-modal-mask-hidden]=\"hidden\"\n [ngStyle]=\"kbqMaskStyle\"\n [style.zIndex]=\"kbqZIndex\">\n </div>\n\n <div (mousedown)=\"onClickMask($event)\"\n class=\"kbq-modal-wrap {{ kbqWrapClassName }}\"\n [style.zIndex]=\"kbqZIndex\"\n [style.display]=\"hidden ? 'none' : ''\"\n tabindex=\"-1\">\n\n <div #modalContainer\n class=\"kbq-modal {{ kbqClassName }} kbq-modal_{{ kbqSize }}\"\n [ngClass]=\"modalAnimationClassMap\"\n [class.kbq-modal_no-footer]=\"!kbqFooter\"\n [ngStyle]=\"kbqStyle\"\n [style.width]=\"kbqWidth | toCssUnit\"\n [style.transform-origin]=\"transformOrigin\">\n\n <div class=\"kbq-modal-content\" cdkTrapFocus>\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isModalType('default')\"\n [ngTemplateOutlet]=\"tplContentDefault\"></ng-container>\n <ng-container *ngSwitchCase=\"isModalType('confirm')\"\n [ngTemplateOutlet]=\"tplContentConfirm\"></ng-container>\n <ng-container *ngSwitchCase=\"isModalType('custom')\"\n [ngTemplateOutlet]=\"tplContentCustom\"></ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #tplContentCustom>\n <ng-container #bodyContainer></ng-container>\n</ng-template>\n\n\n<!-- [Predefined] Default Modal Content -->\n<ng-template #tplContentDefault>\n <div *ngIf=\"kbqTitle\" class=\"kbq-modal-header\" kbq-title [class.kbq-modal-body_top-overflow]=\"isTopOverflow\">\n <div class=\"kbq-modal-title\">\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(kbqTitle)\" [ngTemplateOutlet]=\"$any(kbqTitle)\"></ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(kbqTitle)\">\n <div [innerHTML]=\"kbqTitle\"></div>\n </ng-container>\n </ng-container>\n </div>\n\n <button *ngIf=\"kbqClosable\"\n kbq-button\n [color]=\"'contrast'\"\n (click)=\"onClickCloseBtn()\"\n class=\"kbq-modal-close kbq-button_transparent\">\n <i kbq-icon=\"mc-close-L_16\" [color]=\"componentColors.Contrast\"></i>\n </button>\n </div>\n <div class=\"kbq-modal-body kbq-scrollbar\" #modalBody [ngStyle]=\"kbqBodyStyle\" (scroll)=\"checkOverflow()\">\n <ng-container #bodyContainer>\n <ng-container *ngIf=\"!isComponent(kbqContent)\" [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(kbqContent)\" [ngTemplateOutlet]=\"$any(kbqContent)\"></ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(kbqContent)\">\n <div [innerHTML]=\"kbqContent\"></div>\n </ng-container>\n <ng-container *ngSwitchDefault [ngTemplateOutlet]=\"tplOriginContent\"></ng-container>\n </ng-container>\n </ng-container>\n </div>\n <div *ngIf=\"kbqFooter || kbqOkText || kbqCancelText\"\n class=\"kbq-modal-footer\"\n [class.kbq-modal-body_bottom-overflow]=\"isBottomOverflow\">\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(kbqFooter)\" [ngTemplateOutlet]=\"$any(kbqFooter)\"></ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(kbqFooter)\">\n <div [innerHTML]=\"kbqFooter\"></div>\n </ng-container>\n <ng-container *ngSwitchCase=\"isModalButtons(kbqFooter)\">\n <ng-container *ngFor=\"let button of $any(kbqFooter)\">\n <button\n kbq-button\n [attr.autofocus]=\"button.autoFocus\"\n [attr.kbq-modal-main-action]=\"button.kbqModalMainAction\"\n *ngIf=\"getButtonCallableProp(button, 'show')\"\n [disabled]=\"getButtonCallableProp(button, 'disabled')\"\n [class.kbq-progress]=\"getButtonCallableProp(button, 'loading')\"\n (click)=\"onButtonClick(button)\"\n [color]=\"button.type\">\n {{ button.label }}\n </button>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <button\n [attr.autofocus]=\"true\"\n *ngIf=\"kbqOkText\"\n kbq-button\n [color]=\"componentColors.Contrast\"\n (click)=\"onClickOkCancel('ok')\">\n\n {{ okText }}\n </button>\n <button *ngIf=\"kbqCancelText\" kbq-button (click)=\"onClickOkCancel('cancel')\">\n {{ cancelText }}\n </button>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\n<!-- /[Predefined] Default Modal Content -->\n\n<!-- [Predefined] Confirm Modal Content -->\n<ng-template #tplContentConfirm>\n <div class=\"kbq-modal-body\" [ngStyle]=\"kbqBodyStyle\">\n <ng-container #bodyContainer>\n <ng-container *ngIf=\"!isComponent(kbqContent)\" [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(kbqContent)\"\n [ngTemplateOutlet]=\"$any(kbqContent)\">\n </ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(kbqContent)\">\n <div [innerHTML]=\"kbqContent\"></div>\n </ng-container>\n <ng-container *ngSwitchDefault [ngTemplateOutlet]=\"tplOriginContent\"></ng-container>\n </ng-container>\n </ng-container>\n </div>\n <div class=\"kbq-confirm-footer\" *ngIf=\"kbqOkText || kbqCancelText\">\n <button\n kbq-button\n [color]=\"kbqOkType\"\n [attr.autofocus]=\"true\"\n *ngIf=\"kbqOkText\"\n (click)=\"onClickOkCancel('ok')\">\n\n {{ okText }}\n </button>\n\n <button kbq-button *ngIf=\"kbqCancelText\" (click)=\"onClickOkCancel('cancel')\">\n {{ cancelText }}\n </button>\n </div>\n</ng-template>\n<!-- /[Predefined] Confirm Modal Content -->\n", styles: [".kbq-confirm .kbq-modal-close{display:none}.kbq-confirm .kbq-confirm-footer{display:flex;gap:var(--kbq-modal-size-footer-content-gap-horizontal, 16px)}.kbq-modal{box-sizing:border-box;position:relative;top:48px;border-radius:var(--kbq-modal-size-border-radius, 8px);width:auto;margin:0 auto;list-style:none}.kbq-modal.zoom-enter,.kbq-modal.zoom-appear{animation-duration:.3s;transform:none;opacity:0}.kbq-modal.kbq-modal_small{width:var(--kbq-modal-size-small-width, 400px)}.kbq-modal.kbq-modal_medium{width:var(--kbq-modal-size-medium-width, 640px)}.kbq-modal.kbq-modal_large{width:var(--kbq-modal-size-large-width, 960px)}.kbq-modal .kbq-modal-close{position:absolute;top:16px;right:8px}.kbq-modal-wrap{position:fixed;z-index:1000;inset:0;overflow:auto;-webkit-overflow-scrolling:touch;outline:0}.kbq-modal-content{position:relative;border-radius:var(--kbq-modal-size-border-radius, 8px);background-clip:padding-box}.kbq-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--kbq-modal-size-header-padding-vertical, 16px) var(--kbq-modal-size-header-padding-right, 48px) var(--kbq-modal-size-header-padding-vertical, 16px) var(--kbq-modal-size-header-padding-left, 24px)}.kbq-modal-header+.kbq-modal-body{padding-top:var(--kbq-modal-size-content-padding-top, 0)}.kbq-modal-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.kbq-modal-body{display:block;overflow-y:auto;max-height:calc(100vh - 260px);padding:var(--kbq-modal-size-content-padding-top-without-header, 24px) var(--kbq-modal-size-content-padding-horizontal, 24px) var(--kbq-modal-size-content-padding-bottom, 8px) var(--kbq-modal-size-content-padding-horizontal, 24px);word-wrap:break-word}.kbq-modal-footer,.kbq-confirm-footer{display:flex;align-items:center;padding:var(--kbq-modal-size-footer-padding-vertical, 20px) var(--kbq-modal-size-footer-padding-horizontal, 24px);gap:var(--kbq-modal-size-footer-content-gap-horizontal, 16px)}.kbq-modal-mask{position:fixed;z-index:1000;inset:0;height:100%}.kbq-modal-mask.kbq-modal-mask-hidden{display:none}.kbq-modal-open{overflow:hidden}\n"] }]
557
+ }], ctorParameters: () => [{ type: i1.Overlay }, { type: i0.Renderer2 }, { type: i0.ComponentFactoryResolver }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: KbqModalControlService }, { type: i0.ChangeDetectorRef }, { type: i3.FocusMonitor }, { type: undefined, decorators: [{
549
558
  type: Inject,
550
559
  args: [DOCUMENT]
551
- }] }]; }, propDecorators: { kbqModalType: [{
560
+ }] }], propDecorators: { kbqModalType: [{
552
561
  type: Input
553
562
  }], kbqComponent: [{
554
563
  type: Input
@@ -637,10 +646,10 @@ function isPromise(obj) {
637
646
  }
638
647
 
639
648
  class KbqModalTitle {
640
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqModalTitle, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
641
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.5", type: KbqModalTitle, selector: "[kbq-modal-title], kbq-modal-title, [mcModalTitle]", host: { classAttribute: "kbq-modal-header kbq-modal-title" }, ngImport: i0 }); }
649
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqModalTitle, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
650
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.0", type: KbqModalTitle, selector: "[kbq-modal-title], kbq-modal-title, [mcModalTitle]", host: { classAttribute: "kbq-modal-header kbq-modal-title" }, ngImport: i0 }); }
642
651
  }
643
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqModalTitle, decorators: [{
652
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqModalTitle, decorators: [{
644
653
  type: Directive,
645
654
  args: [{
646
655
  selector: `[kbq-modal-title], kbq-modal-title, [mcModalTitle]`,
@@ -650,10 +659,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
650
659
  }]
651
660
  }] });
652
661
  class KbqModalBody {
653
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqModalBody, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
654
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.5", type: KbqModalBody, selector: "[kbq-modal-body], kbq-modal-body, [mcModalBody]", host: { classAttribute: "kbq-modal-body" }, ngImport: i0 }); }
662
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqModalBody, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
663
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.0", type: KbqModalBody, selector: "[kbq-modal-body], kbq-modal-body, [mcModalBody]", host: { classAttribute: "kbq-modal-body" }, ngImport: i0 }); }
655
664
  }
656
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqModalBody, decorators: [{
665
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqModalBody, decorators: [{
657
666
  type: Directive,
658
667
  args: [{
659
668
  selector: `[kbq-modal-body], kbq-modal-body, [mcModalBody]`,
@@ -663,10 +672,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
663
672
  }]
664
673
  }] });
665
674
  class KbqModalFooter {
666
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqModalFooter, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
667
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.5", type: KbqModalFooter, selector: "[kbq-modal-footer], kbq-modal-footer, [mcModalFooter]", host: { classAttribute: "kbq-modal-footer" }, ngImport: i0 }); }
675
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqModalFooter, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
676
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.0", type: KbqModalFooter, selector: "[kbq-modal-footer], kbq-modal-footer, [mcModalFooter]", host: { classAttribute: "kbq-modal-footer" }, ngImport: i0 }); }
668
677
  }
669
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqModalFooter, decorators: [{
678
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqModalFooter, decorators: [{
670
679
  type: Directive,
671
680
  args: [{
672
681
  selector: `[kbq-modal-footer], kbq-modal-footer, [mcModalFooter]`,
@@ -676,10 +685,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
676
685
  }]
677
686
  }] });
678
687
  class KbqModalMainAction {
679
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqModalMainAction, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
680
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.5", type: KbqModalMainAction, selector: "[kbq-modal-main-action]", ngImport: i0 }); }
688
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqModalMainAction, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
689
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.0", type: KbqModalMainAction, selector: "[kbq-modal-main-action]", ngImport: i0 }); }
681
690
  }
682
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqModalMainAction, decorators: [{
691
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqModalMainAction, decorators: [{
683
692
  type: Directive,
684
693
  args: [{
685
694
  selector: `[kbq-modal-main-action]`
@@ -793,16 +802,16 @@ class KbqModalService {
793
802
  simpleConfirm(options = {}, confirmType) {
794
803
  return this.confirm(options, confirmType);
795
804
  }
796
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqModalService, deps: [{ token: i1.Overlay }, { token: KbqModalControlService }], target: i0.ɵɵFactoryTarget.Injectable }); }
797
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqModalService }); }
805
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqModalService, deps: [{ token: i1.Overlay }, { token: KbqModalControlService }], target: i0.ɵɵFactoryTarget.Injectable }); }
806
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqModalService }); }
798
807
  }
799
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqModalService, decorators: [{
808
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqModalService, decorators: [{
800
809
  type: Injectable
801
- }], ctorParameters: function () { return [{ type: i1.Overlay }, { type: KbqModalControlService }]; } });
810
+ }], ctorParameters: () => [{ type: i1.Overlay }, { type: KbqModalControlService }] });
802
811
 
803
812
  class KbqModalModule {
804
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
805
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.5", ngImport: i0, type: KbqModalModule, declarations: [KbqModalComponent,
813
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
814
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.2.0", ngImport: i0, type: KbqModalModule, declarations: [KbqModalComponent,
806
815
  KbqModalTitle,
807
816
  KbqModalBody,
808
817
  KbqModalFooter,
@@ -817,7 +826,7 @@ class KbqModalModule {
817
826
  KbqModalBody,
818
827
  KbqModalFooter,
819
828
  KbqModalMainAction] }); }
820
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqModalModule, providers: [
829
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqModalModule, providers: [
821
830
  KbqModalControlService,
822
831
  KbqModalService,
823
832
  { provide: FocusTrapFactory, useClass: ConfigurableFocusTrapFactory }
@@ -828,7 +837,7 @@ class KbqModalModule {
828
837
  KbqIconModule,
829
838
  KbqTitleModule] }); }
830
839
  }
831
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqModalModule, decorators: [{
840
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqModalModule, decorators: [{
832
841
  type: NgModule,
833
842
  args: [{
834
843
  imports: [