@koobiq/components 19.8.1 → 20.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 (688) hide show
  1. package/accordion/index.d.ts +238 -1
  2. package/actions-panel/index.d.ts +303 -5
  3. package/alert/index.d.ts +54 -1
  4. package/app-switcher/index.d.ts +239 -1
  5. package/autocomplete/index.d.ts +265 -1
  6. package/badge/index.d.ts +57 -1
  7. package/breadcrumbs/breadcrumbs.scss +7 -0
  8. package/breadcrumbs/index.d.ts +243 -1
  9. package/button/_button-base.scss +20 -0
  10. package/button/_button-theme.scss +3 -11
  11. package/button/button.scss +0 -11
  12. package/button/index.d.ts +153 -1
  13. package/button-toggle/index.d.ts +155 -1
  14. package/checkbox/index.d.ts +159 -1
  15. package/clamped-text/index.d.ts +144 -4
  16. package/code-block/_code-block-theme.scss +0 -6
  17. package/code-block/code-block-tokens.scss +0 -2
  18. package/code-block/index.d.ts +383 -1
  19. package/content-panel/content-panel.scss +0 -8
  20. package/content-panel/index.d.ts +158 -2
  21. package/core/highlight/_highlight-theme.scss +9 -0
  22. package/core/index.d.ts +4405 -1
  23. package/core/option/_option-theme.scss +5 -14
  24. package/core/styles/_koobiq-theme.scss +1 -0
  25. package/core/styles/theming/_components-theming.scss +0 -62
  26. package/datepicker/index.d.ts +699 -1
  27. package/divider/index.d.ts +20 -1
  28. package/dl/index.d.ts +37 -1
  29. package/dropdown/_dropdown-theme.scss +4 -8
  30. package/dropdown/dropdown.scss +4 -0
  31. package/dropdown/index.d.ts +473 -1
  32. package/dynamic-translation/index.d.ts +81 -2
  33. package/ellipsis-center/index.d.ts +38 -1
  34. package/empty-state/index.d.ts +45 -1
  35. package/fesm2022/koobiq-components-accordion.mjs +103 -114
  36. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  37. package/fesm2022/koobiq-components-actions-panel.mjs +16 -16
  38. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  39. package/fesm2022/koobiq-components-alert.mjs +35 -49
  40. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  41. package/fesm2022/koobiq-components-app-switcher.mjs +81 -86
  42. package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
  43. package/fesm2022/koobiq-components-autocomplete.mjs +294 -304
  44. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  45. package/fesm2022/koobiq-components-badge.mjs +35 -42
  46. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  47. package/fesm2022/koobiq-components-breadcrumbs.mjs +154 -163
  48. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  49. package/fesm2022/koobiq-components-button-toggle.mjs +87 -86
  50. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  51. package/fesm2022/koobiq-components-button.mjs +209 -96
  52. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  53. package/fesm2022/koobiq-components-checkbox.mjs +50 -52
  54. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  55. package/fesm2022/koobiq-components-clamped-text.mjs +42 -49
  56. package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
  57. package/fesm2022/koobiq-components-code-block.mjs +111 -136
  58. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  59. package/fesm2022/koobiq-components-content-panel.mjs +90 -107
  60. package/fesm2022/koobiq-components-content-panel.mjs.map +1 -1
  61. package/fesm2022/koobiq-components-core.mjs +1635 -628
  62. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  63. package/fesm2022/koobiq-components-datepicker.mjs +285 -349
  64. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  65. package/fesm2022/koobiq-components-divider.mjs +14 -25
  66. package/fesm2022/koobiq-components-divider.mjs.map +1 -1
  67. package/fesm2022/koobiq-components-dl.mjs +27 -29
  68. package/fesm2022/koobiq-components-dl.mjs.map +1 -1
  69. package/fesm2022/koobiq-components-dropdown.mjs +202 -167
  70. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  71. package/fesm2022/koobiq-components-dynamic-translation.mjs +23 -23
  72. package/fesm2022/koobiq-components-dynamic-translation.mjs.map +1 -1
  73. package/fesm2022/koobiq-components-ellipsis-center.mjs +16 -21
  74. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
  75. package/fesm2022/koobiq-components-empty-state.mjs +35 -39
  76. package/fesm2022/koobiq-components-empty-state.mjs.map +1 -1
  77. package/fesm2022/koobiq-components-file-upload.mjs +135 -234
  78. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  79. package/fesm2022/koobiq-components-filter-bar.mjs +321 -561
  80. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  81. package/fesm2022/koobiq-components-form-field.mjs +211 -430
  82. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  83. package/fesm2022/koobiq-components-icon.mjs +42 -43
  84. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  85. package/fesm2022/koobiq-components-inline-edit.mjs +65 -60
  86. package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
  87. package/fesm2022/koobiq-components-input.mjs +116 -155
  88. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  89. package/fesm2022/koobiq-components-link.mjs +38 -53
  90. package/fesm2022/koobiq-components-link.mjs.map +1 -1
  91. package/fesm2022/koobiq-components-list.mjs +105 -114
  92. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  93. package/fesm2022/koobiq-components-loader-overlay.mjs +37 -44
  94. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  95. package/fesm2022/koobiq-components-markdown.mjs +31 -35
  96. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  97. package/fesm2022/koobiq-components-modal.mjs +169 -163
  98. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  99. package/fesm2022/koobiq-components-navbar.mjs +162 -164
  100. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  101. package/fesm2022/koobiq-components-notification-center.mjs +65 -203
  102. package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
  103. package/fesm2022/koobiq-components-overflow-items.mjs +36 -36
  104. package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
  105. package/fesm2022/koobiq-components-popover.mjs +95 -86
  106. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  107. package/fesm2022/koobiq-components-progress-bar.mjs +24 -30
  108. package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
  109. package/fesm2022/koobiq-components-progress-spinner.mjs +25 -32
  110. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  111. package/fesm2022/koobiq-components-radio.mjs +94 -80
  112. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  113. package/fesm2022/koobiq-components-resizer.mjs +17 -17
  114. package/fesm2022/koobiq-components-resizer.mjs.map +1 -1
  115. package/fesm2022/koobiq-components-scrollbar.mjs +69 -60
  116. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  117. package/fesm2022/koobiq-components-search-expandable.mjs +44 -35
  118. package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
  119. package/fesm2022/koobiq-components-select.mjs +249 -234
  120. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  121. package/fesm2022/koobiq-components-sidebar.mjs +59 -55
  122. package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
  123. package/fesm2022/koobiq-components-sidepanel.mjs +88 -128
  124. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  125. package/fesm2022/koobiq-components-skeleton.mjs +12 -12
  126. package/fesm2022/koobiq-components-skeleton.mjs.map +1 -1
  127. package/fesm2022/koobiq-components-split-button.mjs +27 -20
  128. package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
  129. package/fesm2022/koobiq-components-splitter.mjs +110 -96
  130. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  131. package/fesm2022/koobiq-components-table.mjs +21 -23
  132. package/fesm2022/koobiq-components-table.mjs.map +1 -1
  133. package/fesm2022/koobiq-components-tabs.mjs +269 -275
  134. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  135. package/fesm2022/koobiq-components-tags.mjs +177 -267
  136. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  137. package/fesm2022/koobiq-components-textarea.mjs +37 -56
  138. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  139. package/fesm2022/koobiq-components-time-range.mjs +64 -65
  140. package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
  141. package/fesm2022/koobiq-components-timepicker.mjs +46 -38
  142. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  143. package/fesm2022/koobiq-components-timezone.mjs +52 -58
  144. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  145. package/fesm2022/koobiq-components-title.mjs +23 -30
  146. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  147. package/fesm2022/koobiq-components-toast.mjs +54 -69
  148. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  149. package/fesm2022/koobiq-components-toggle.mjs +51 -63
  150. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  151. package/fesm2022/koobiq-components-tooltip.mjs +91 -119
  152. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  153. package/fesm2022/koobiq-components-top-bar.mjs +25 -23
  154. package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
  155. package/fesm2022/koobiq-components-tree-select.mjs +227 -227
  156. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  157. package/fesm2022/koobiq-components-tree.mjs +217 -209
  158. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  159. package/fesm2022/koobiq-components-username.mjs +48 -48
  160. package/fesm2022/koobiq-components-username.mjs.map +1 -1
  161. package/file-upload/index.d.ts +574 -1
  162. package/filter-bar/_filter-bar-theme.scss +0 -4
  163. package/filter-bar/index.d.ts +796 -1
  164. package/form-field/index.d.ts +569 -1
  165. package/icon/index.d.ts +162 -1
  166. package/index.d.ts +2 -1
  167. package/inline-edit/index.d.ts +171 -2
  168. package/input/index.d.ts +339 -1
  169. package/link/index.d.ts +56 -1
  170. package/list/index.d.ts +220 -1
  171. package/loader-overlay/index.d.ts +57 -1
  172. package/markdown/index.d.ts +68 -1
  173. package/modal/_modal-theme.scss +0 -8
  174. package/modal/index.d.ts +311 -1
  175. package/navbar/index.d.ts +304 -1
  176. package/navbar/navbar-item.scss +0 -9
  177. package/notification-center/_notification-center-theme.scss +1 -2
  178. package/notification-center/index.d.ts +237 -1
  179. package/notification-center/notification-center.scss +3 -36
  180. package/notification-center/notification-item.scss +1 -1
  181. package/overflow-items/index.d.ts +161 -2
  182. package/package.json +9 -17
  183. package/popover/index.d.ts +182 -1
  184. package/popover/popover.scss +8 -12
  185. package/prebuilt-themes/dark-theme.css +1 -1
  186. package/prebuilt-themes/light-theme.css +1 -1
  187. package/prebuilt-themes/theme.css +1 -1
  188. package/progress-bar/index.d.ts +31 -1
  189. package/progress-spinner/index.d.ts +37 -1
  190. package/radio/index.d.ts +207 -1
  191. package/resizer/index.d.ts +85 -2
  192. package/schematics/collection.json +5 -0
  193. package/schematics/migrations/css-selectors/index.js +1 -1
  194. package/schematics/migrations/deprecated-icons/index.js +1 -1
  195. package/schematics/migrations/new-icons-pack/index.js +1 -1
  196. package/schematics/migrations/v20-upgrade/README.md +72 -0
  197. package/schematics/migrations/v20-upgrade/data.js +274 -0
  198. package/schematics/migrations/v20-upgrade/index.js +222 -0
  199. package/schematics/migrations/v20-upgrade/schema.json +20 -0
  200. package/schematics/migrations.json +10 -0
  201. package/schematics/ng-add/index.js +3 -4
  202. package/scrollbar/index.d.ts +136 -1
  203. package/search-expandable/index.d.ts +98 -1
  204. package/select/index.d.ts +693 -1
  205. package/sidebar/index.d.ts +92 -1
  206. package/sidepanel/index.d.ts +263 -1
  207. package/sidepanel/sidepanel.scss +0 -8
  208. package/skeleton/index.d.ts +26 -2
  209. package/split-button/index.d.ts +46 -1
  210. package/splitter/index.d.ts +141 -1
  211. package/table/index.d.ts +23 -1
  212. package/tabs/_tabs-common.scss +27 -0
  213. package/tabs/_tabs-theme.scss +2 -2
  214. package/tabs/index.d.ts +645 -1
  215. package/tags/index.d.ts +706 -1
  216. package/textarea/index.d.ts +134 -1
  217. package/time-range/index.d.ts +310 -7
  218. package/timepicker/index.d.ts +193 -1
  219. package/timezone/index.d.ts +122 -1
  220. package/title/index.d.ts +41 -1
  221. package/toast/index.d.ts +164 -1
  222. package/toggle/index.d.ts +84 -1
  223. package/tooltip/index.d.ts +163 -1
  224. package/top-bar/index.d.ts +33 -1
  225. package/tree/_tree-theme.scss +4 -0
  226. package/tree/index.d.ts +718 -1
  227. package/tree/tree-option.scss +20 -7
  228. package/tree-select/_tree-select-theme.scss +39 -0
  229. package/tree-select/index.d.ts +377 -1
  230. package/username/index.d.ts +176 -5
  231. package/accordion/accordion-content.d.ts +0 -6
  232. package/accordion/accordion-content.directive.d.ts +0 -27
  233. package/accordion/accordion-header.d.ts +0 -6
  234. package/accordion/accordion-header.directive.d.ts +0 -7
  235. package/accordion/accordion-item.d.ts +0 -77
  236. package/accordion/accordion-trigger.component.d.ts +0 -24
  237. package/accordion/accordion-trigger.directive.d.ts +0 -21
  238. package/accordion/accordion.component.d.ts +0 -79
  239. package/accordion/accordion.module.d.ts +0 -12
  240. package/accordion/public-api.d.ts +0 -9
  241. package/actions-panel/actions-panel-config.d.ts +0 -82
  242. package/actions-panel/actions-panel-container.d.ts +0 -90
  243. package/actions-panel/actions-panel-ref.d.ts +0 -44
  244. package/actions-panel/actions-panel.d.ts +0 -84
  245. package/actions-panel/module.d.ts +0 -7
  246. package/alert/alert.component.d.ts +0 -43
  247. package/alert/alert.module.d.ts +0 -9
  248. package/alert/public-api.d.ts +0 -2
  249. package/app-switcher/app-switcher-animations.d.ts +0 -5
  250. package/app-switcher/app-switcher-dropdown-app.d.ts +0 -11
  251. package/app-switcher/app-switcher-dropdown-site.d.ts +0 -9
  252. package/app-switcher/app-switcher.d.ts +0 -198
  253. package/app-switcher/app-switcher.module.d.ts +0 -10
  254. package/app-switcher/kbq-app-switcher-list-item.d.ts +0 -16
  255. package/app-switcher/public-api.d.ts +0 -6
  256. package/autocomplete/autocomplete-origin.directive.d.ts +0 -12
  257. package/autocomplete/autocomplete-trigger.directive.d.ts +0 -169
  258. package/autocomplete/autocomplete.component.d.ts +0 -88
  259. package/autocomplete/autocomplete.module.d.ts +0 -12
  260. package/autocomplete/public-api.d.ts +0 -4
  261. package/badge/badge.component.d.ts +0 -46
  262. package/badge/badge.module.d.ts +0 -9
  263. package/badge/public-api.d.ts +0 -2
  264. package/breadcrumbs/breadcrumbs.d.ts +0 -127
  265. package/breadcrumbs/breadcrumbs.module.d.ts +0 -7
  266. package/breadcrumbs/breadcrumbs.types.d.ts +0 -22
  267. package/breadcrumbs/public-api.d.ts +0 -5
  268. package/breadcrumbs/roving-focus-group.directive.d.ts +0 -50
  269. package/breadcrumbs/roving-focus-item.directive.d.ts +0 -50
  270. package/breadcrumbs/utils.d.ts +0 -19
  271. package/button/button-group.d.ts +0 -45
  272. package/button/button.component.d.ts +0 -59
  273. package/button/button.dropdown-trigger.directive.d.ts +0 -14
  274. package/button/button.module.d.ts +0 -12
  275. package/button/public-api.d.ts +0 -4
  276. package/button-toggle/button-toggle.component.d.ts +0 -146
  277. package/button-toggle/button-toggle.module.d.ts +0 -9
  278. package/button-toggle/public-api.d.ts +0 -2
  279. package/checkbox/checkbox-config.d.ts +0 -13
  280. package/checkbox/checkbox-module.d.ts +0 -9
  281. package/checkbox/checkbox-required-validator.d.ts +0 -13
  282. package/checkbox/checkbox.d.ts +0 -128
  283. package/checkbox/public-api.d.ts +0 -4
  284. package/clamped-text/clamped-list.d.ts +0 -41
  285. package/clamped-text/clamped-text.d.ts +0 -65
  286. package/clamped-text/constants.d.ts +0 -34
  287. package/clamped-text/module.d.ts +0 -8
  288. package/code-block/code-block-highlight.d.ts +0 -98
  289. package/code-block/code-block.d.ts +0 -259
  290. package/code-block/code-block.module.d.ts +0 -7
  291. package/code-block/public-api.d.ts +0 -4
  292. package/code-block/types.d.ts +0 -36
  293. package/content-panel/content-panel.d.ts +0 -149
  294. package/content-panel/module.d.ts +0 -7
  295. package/core/animation/animation.d.ts +0 -37
  296. package/core/animation/fade-animations.d.ts +0 -2
  297. package/core/animation/index.d.ts +0 -3
  298. package/core/animation/select-animations.d.ts +0 -12
  299. package/core/common-behaviors/checkbox.d.ts +0 -5
  300. package/core/common-behaviors/clipboard.d.ts +0 -12
  301. package/core/common-behaviors/color.d.ts +0 -50
  302. package/core/common-behaviors/common-module.d.ts +0 -38
  303. package/core/common-behaviors/constructor.d.ts +0 -9
  304. package/core/common-behaviors/disabled.d.ts +0 -8
  305. package/core/common-behaviors/error-state.d.ts +0 -46
  306. package/core/common-behaviors/flex.d.ts +0 -4
  307. package/core/common-behaviors/hover.d.ts +0 -15
  308. package/core/common-behaviors/index.d.ts +0 -14
  309. package/core/common-behaviors/orientation.d.ts +0 -4
  310. package/core/common-behaviors/read-state.d.ts +0 -12
  311. package/core/common-behaviors/size.d.ts +0 -4
  312. package/core/common-behaviors/tabindex.d.ts +0 -8
  313. package/core/datetime/date-adapter.d.ts +0 -12
  314. package/core/datetime/date-formats.d.ts +0 -4
  315. package/core/datetime/index.d.ts +0 -2
  316. package/core/error/error-state-matcher.d.ts +0 -39
  317. package/core/form-field/field-sizing-content.d.ts +0 -21
  318. package/core/form-field/form-field-ref.d.ts +0 -28
  319. package/core/form-field/index.d.ts +0 -2
  320. package/core/formatters/date/formatter.d.ts +0 -11
  321. package/core/formatters/date/formatter.pipe.d.ts +0 -139
  322. package/core/formatters/filesize/config.d.ts +0 -66
  323. package/core/formatters/filesize/formatter.d.ts +0 -17
  324. package/core/formatters/filesize/index.d.ts +0 -3
  325. package/core/formatters/filesize/size.d.ts +0 -52
  326. package/core/formatters/index.d.ts +0 -13
  327. package/core/formatters/number/formatter.d.ts +0 -101
  328. package/core/forms/forms-module.d.ts +0 -7
  329. package/core/forms/forms.directive.d.ts +0 -22
  330. package/core/forms/index.d.ts +0 -3
  331. package/core/forms/validators.d.ts +0 -120
  332. package/core/highlight/highlight.pipe.d.ts +0 -10
  333. package/core/highlight/index.d.ts +0 -9
  334. package/core/line/line.d.ts +0 -23
  335. package/core/locales/en-US.d.ts +0 -176
  336. package/core/locales/es-LA.d.ts +0 -175
  337. package/core/locales/formatters.d.ts +0 -190
  338. package/core/locales/index.d.ts +0 -9
  339. package/core/locales/locale-service.d.ts +0 -1117
  340. package/core/locales/locale-service.module.d.ts +0 -6
  341. package/core/locales/pt-BR.d.ts +0 -175
  342. package/core/locales/ru-RU.d.ts +0 -176
  343. package/core/locales/tk-TM.d.ts +0 -176
  344. package/core/locales/types.d.ts +0 -77
  345. package/core/navbar/index.d.ts +0 -1
  346. package/core/navbar/rectangle-item.d.ts +0 -14
  347. package/core/option/action-container.d.ts +0 -5
  348. package/core/option/action.d.ts +0 -38
  349. package/core/option/index.d.ts +0 -5
  350. package/core/option/optgroup.d.ts +0 -16
  351. package/core/option/option-module.d.ts +0 -10
  352. package/core/option/option.d.ts +0 -170
  353. package/core/overlay/overlay-position-map.d.ts +0 -40
  354. package/core/pop-up/constants.d.ts +0 -56
  355. package/core/pop-up/focus-trap-strategy.d.ts +0 -5
  356. package/core/pop-up/index.d.ts +0 -5
  357. package/core/pop-up/pop-up-styles.d.ts +0 -2
  358. package/core/pop-up/pop-up-trigger.d.ts +0 -104
  359. package/core/pop-up/pop-up.d.ts +0 -57
  360. package/core/public-api.d.ts +0 -23
  361. package/core/select/common.d.ts +0 -59
  362. package/core/select/constants.d.ts +0 -22
  363. package/core/select/errors.d.ts +0 -19
  364. package/core/select/events.d.ts +0 -1
  365. package/core/select/index.d.ts +0 -4
  366. package/core/selection/constants.d.ts +0 -4
  367. package/core/selection/index.d.ts +0 -3
  368. package/core/selection/pseudo-checkbox/pseudo-checkbox.d.ts +0 -23
  369. package/core/selection/pseudo-checkbox/pseudo-checkbox.module.d.ts +0 -8
  370. package/core/services/measure-scrollbar.service.d.ts +0 -11
  371. package/core/services/theme.service.d.ts +0 -41
  372. package/core/title/index.d.ts +0 -1
  373. package/core/title/title-text-ref.d.ts +0 -6
  374. package/core/tokens/index.d.ts +0 -1
  375. package/core/tokens/window.d.ts +0 -5
  376. package/core/utils/dom.d.ts +0 -4
  377. package/core/utils/index.d.ts +0 -2
  378. package/core/utils/public-api.d.ts +0 -1
  379. package/core/utils/utils.d.ts +0 -25
  380. package/core/validation/index.d.ts +0 -1
  381. package/core/validation/validation.d.ts +0 -29
  382. package/core/version.d.ts +0 -2
  383. package/datepicker/calendar-body.component.d.ts +0 -55
  384. package/datepicker/calendar-header.component.d.ts +0 -51
  385. package/datepicker/calendar.component.d.ts +0 -89
  386. package/datepicker/datepicker-animations.d.ts +0 -9
  387. package/datepicker/datepicker-errors.d.ts +0 -2
  388. package/datepicker/datepicker-input.directive.d.ts +0 -221
  389. package/datepicker/datepicker-intl.d.ts +0 -32
  390. package/datepicker/datepicker-module.d.ts +0 -21
  391. package/datepicker/datepicker-toggle.component.d.ts +0 -57
  392. package/datepicker/datepicker.component.d.ts +0 -148
  393. package/datepicker/month-view.component.d.ts +0 -73
  394. package/datepicker/public-api.d.ts +0 -10
  395. package/divider/divider.component.d.ts +0 -18
  396. package/divider/divider.module.d.ts +0 -8
  397. package/divider/public-api.d.ts +0 -2
  398. package/dl/dl.component.d.ts +0 -26
  399. package/dl/dl.module.d.ts +0 -9
  400. package/dl/public-api.d.ts +0 -2
  401. package/dropdown/dropdown-animations.d.ts +0 -11
  402. package/dropdown/dropdown-content.directive.d.ts +0 -32
  403. package/dropdown/dropdown-errors.d.ts +0 -17
  404. package/dropdown/dropdown-item.component.d.ts +0 -52
  405. package/dropdown/dropdown-trigger.directive.d.ts +0 -156
  406. package/dropdown/dropdown.component.d.ts +0 -126
  407. package/dropdown/dropdown.module.d.ts +0 -13
  408. package/dropdown/dropdown.types.d.ts +0 -67
  409. package/dropdown/public-api.d.ts +0 -8
  410. package/dynamic-translation/dynamic-translation.d.ts +0 -72
  411. package/dynamic-translation/module.d.ts +0 -7
  412. package/ellipsis-center/ellipsis-center.directive.d.ts +0 -36
  413. package/ellipsis-center/public-api.d.ts +0 -1
  414. package/empty-state/empty-state.component.d.ts +0 -36
  415. package/empty-state/empty-state.module.d.ts +0 -9
  416. package/empty-state/public-api.d.ts +0 -2
  417. package/fesm2022/koobiq-components-navbar-ic.mjs +0 -863
  418. package/fesm2022/koobiq-components-navbar-ic.mjs.map +0 -1
  419. package/fesm2022/koobiq-components-risk-level.mjs +0 -75
  420. package/fesm2022/koobiq-components-risk-level.mjs.map +0 -1
  421. package/file-upload/dropzone.d.ts +0 -147
  422. package/file-upload/file-upload.d.ts +0 -102
  423. package/file-upload/file-upload.module.d.ts +0 -20
  424. package/file-upload/multiple-file-upload.component.d.ts +0 -138
  425. package/file-upload/primitives/file-drop.d.ts +0 -35
  426. package/file-upload/primitives/file-picker.d.ts +0 -82
  427. package/file-upload/primitives/index.d.ts +0 -2
  428. package/file-upload/public-api.d.ts +0 -7
  429. package/file-upload/single-file-upload.component.d.ts +0 -118
  430. package/filter-bar/filter-bar-button.d.ts +0 -14
  431. package/filter-bar/filter-bar.d.ts +0 -81
  432. package/filter-bar/filter-bar.module.d.ts +0 -17
  433. package/filter-bar/filter-bar.types.d.ts +0 -143
  434. package/filter-bar/filter-refresher.d.ts +0 -5
  435. package/filter-bar/filter-reset.d.ts +0 -15
  436. package/filter-bar/filter-search.d.ts +0 -54
  437. package/filter-bar/filter-search.scss +0 -12
  438. package/filter-bar/filters.d.ts +0 -122
  439. package/filter-bar/pipe-add.d.ts +0 -28
  440. package/filter-bar/pipe.directive.d.ts +0 -13
  441. package/filter-bar/pipes/base-pipe.d.ts +0 -74
  442. package/filter-bar/pipes/pipe-button.d.ts +0 -21
  443. package/filter-bar/pipes/pipe-date.d.ts +0 -65
  444. package/filter-bar/pipes/pipe-datetime.d.ts +0 -66
  445. package/filter-bar/pipes/pipe-multi-select.d.ts +0 -56
  446. package/filter-bar/pipes/pipe-multi-tree-select.d.ts +0 -67
  447. package/filter-bar/pipes/pipe-readonly.d.ts +0 -7
  448. package/filter-bar/pipes/pipe-select.d.ts +0 -30
  449. package/filter-bar/pipes/pipe-state.d.ts +0 -21
  450. package/filter-bar/pipes/pipe-text.d.ts +0 -26
  451. package/filter-bar/pipes/pipe-title.d.ts +0 -27
  452. package/filter-bar/pipes/pipe-tree-select.d.ts +0 -42
  453. package/filter-bar/public-api.d.ts +0 -21
  454. package/form-field/cleaner.d.ts +0 -11
  455. package/form-field/error.d.ts +0 -8
  456. package/form-field/fieldset.d.ts +0 -27
  457. package/form-field/form-field-control.d.ts +0 -40
  458. package/form-field/form-field.d.ts +0 -298
  459. package/form-field/form-field.module.d.ts +0 -19
  460. package/form-field/hint.d.ts +0 -15
  461. package/form-field/label.d.ts +0 -6
  462. package/form-field/password-hint.d.ts +0 -53
  463. package/form-field/password-toggle.d.ts +0 -56
  464. package/form-field/prefix.d.ts +0 -6
  465. package/form-field/public-api.d.ts +0 -15
  466. package/form-field/reactive-password-hint.d.ts +0 -20
  467. package/form-field/stepper.d.ts +0 -59
  468. package/form-field/suffix.d.ts +0 -6
  469. package/form-field/validate.directive.d.ts +0 -53
  470. package/icon/icon-button.component.d.ts +0 -28
  471. package/icon/icon-item.component.d.ts +0 -11
  472. package/icon/icon-registry-providers.d.ts +0 -34
  473. package/icon/icon-registry.d.ts +0 -50
  474. package/icon/icon.component.d.ts +0 -33
  475. package/icon/icon.module.d.ts +0 -9
  476. package/icon/public-api.d.ts +0 -6
  477. package/inline-edit/inline-edit.d.ts +0 -161
  478. package/inline-edit/module.d.ts +0 -7
  479. package/input/input-errors.d.ts +0 -1
  480. package/input/input-number-validators.d.ts +0 -35
  481. package/input/input-number.d.ts +0 -96
  482. package/input/input-password.d.ts +0 -99
  483. package/input/input-value-accessor.d.ts +0 -4
  484. package/input/input.d.ts +0 -109
  485. package/input/input.module.d.ts +0 -14
  486. package/input/public-api.d.ts +0 -6
  487. package/link/link.component.d.ts +0 -53
  488. package/link/link.module.d.ts +0 -8
  489. package/link/public-api.d.ts +0 -2
  490. package/list/list-selection.component.d.ts +0 -196
  491. package/list/list.component.d.ts +0 -18
  492. package/list/list.module.d.ts +0 -11
  493. package/list/public-api.d.ts +0 -3
  494. package/loader-overlay/loader-overlay.component.d.ts +0 -47
  495. package/loader-overlay/loader-overlay.module.d.ts +0 -10
  496. package/loader-overlay/public-api.d.ts +0 -2
  497. package/markdown/markdown.component.d.ts +0 -31
  498. package/markdown/markdown.module.d.ts +0 -7
  499. package/markdown/markdown.service.d.ts +0 -19
  500. package/markdown/markdown.values.d.ts +0 -10
  501. package/markdown/public-api.d.ts +0 -4
  502. package/modal/css-unit.pipe.d.ts +0 -7
  503. package/modal/modal-control.service.d.ts +0 -20
  504. package/modal/modal-ref.class.d.ts +0 -37
  505. package/modal/modal-util.d.ts +0 -15
  506. package/modal/modal.component.d.ts +0 -141
  507. package/modal/modal.directive.d.ts +0 -20
  508. package/modal/modal.module.d.ts +0 -15
  509. package/modal/modal.service.d.ts +0 -42
  510. package/modal/modal.type.d.ts +0 -72
  511. package/modal/public-api.d.ts +0 -6
  512. package/navbar/navbar-brand.component.d.ts +0 -41
  513. package/navbar/navbar-item.component.d.ts +0 -131
  514. package/navbar/navbar-toggle.component.d.ts +0 -23
  515. package/navbar/navbar.component.d.ts +0 -68
  516. package/navbar/navbar.module.d.ts +0 -15
  517. package/navbar/public-api.d.ts +0 -6
  518. package/navbar/vertical-navbar.component.d.ts +0 -47
  519. package/navbar-ic/_navbar-ic-theme.scss +0 -81
  520. package/navbar-ic/index.d.ts +0 -1
  521. package/navbar-ic/navbar-ic-divider.scss +0 -7
  522. package/navbar-ic/navbar-ic-header.d.ts +0 -22
  523. package/navbar-ic/navbar-ic-header.scss +0 -49
  524. package/navbar-ic/navbar-ic-item.d.ts +0 -144
  525. package/navbar-ic/navbar-ic-item.scss +0 -92
  526. package/navbar-ic/navbar-ic-tokens.scss +0 -22
  527. package/navbar-ic/navbar-ic.animation.d.ts +0 -3
  528. package/navbar-ic/navbar-ic.d.ts +0 -118
  529. package/navbar-ic/navbar-ic.module.d.ts +0 -14
  530. package/navbar-ic/navbar-ic.scss +0 -32
  531. package/navbar-ic/public-api.d.ts +0 -4
  532. package/notification-center/notification-center-animations.d.ts +0 -5
  533. package/notification-center/notification-center.d.ts +0 -184
  534. package/notification-center/notification-center.module.d.ts +0 -7
  535. package/notification-center/notification-center.service.d.ts +0 -115
  536. package/notification-center/notification-item.d.ts +0 -27
  537. package/notification-center/public-api.d.ts +0 -4
  538. package/overflow-items/module.d.ts +0 -7
  539. package/overflow-items/overflow-items.d.ts +0 -152
  540. package/popover/popover-animations.d.ts +0 -4
  541. package/popover/popover-confirm.component.d.ts +0 -28
  542. package/popover/popover.component.d.ts +0 -139
  543. package/popover/popover.module.d.ts +0 -14
  544. package/popover/public-api.d.ts +0 -4
  545. package/progress-bar/progress-bar.component.d.ts +0 -20
  546. package/progress-bar/progress-bar.module.d.ts +0 -8
  547. package/progress-bar/public-api.d.ts +0 -2
  548. package/progress-spinner/progress-spinner.component.d.ts +0 -26
  549. package/progress-spinner/progress-spinner.module.d.ts +0 -9
  550. package/progress-spinner/public-api.d.ts +0 -2
  551. package/public-api.d.ts +0 -1
  552. package/radio/public-api.d.ts +0 -2
  553. package/radio/radio.component.d.ts +0 -200
  554. package/radio/radio.module.d.ts +0 -8
  555. package/resizer/module.d.ts +0 -7
  556. package/resizer/resizer.d.ts +0 -75
  557. package/risk-level/_risk-level-theme.scss +0 -74
  558. package/risk-level/index.d.ts +0 -1
  559. package/risk-level/public-api.d.ts +0 -2
  560. package/risk-level/risk-level-tokens.scss +0 -33
  561. package/risk-level/risk-level.component.d.ts +0 -21
  562. package/risk-level/risk-level.component.scss +0 -22
  563. package/risk-level/risk-level.module.d.ts +0 -12
  564. package/scrollbar/public-api.d.ts +0 -4
  565. package/scrollbar/scrollbar.component.d.ts +0 -37
  566. package/scrollbar/scrollbar.directive.d.ts +0 -29
  567. package/scrollbar/scrollbar.module.d.ts +0 -8
  568. package/scrollbar/scrollbar.types.d.ts +0 -33
  569. package/search-expandable/public-api.d.ts +0 -2
  570. package/search-expandable/search-expandable.d.ts +0 -89
  571. package/search-expandable/search-expandable.module.d.ts +0 -7
  572. package/select/public-api.d.ts +0 -4
  573. package/select/select-common.d.ts +0 -30
  574. package/select/select-option.directive.d.ts +0 -21
  575. package/select/select.component.d.ts +0 -627
  576. package/select/select.module.d.ts +0 -17
  577. package/sidebar/public-api.d.ts +0 -2
  578. package/sidebar/sidebar-animations.d.ts +0 -8
  579. package/sidebar/sidebar.component.d.ts +0 -80
  580. package/sidebar/sidebar.module.d.ts +0 -8
  581. package/sidepanel/public-api.d.ts +0 -6
  582. package/sidepanel/sidepanel-animations.d.ts +0 -20
  583. package/sidepanel/sidepanel-config.d.ts +0 -43
  584. package/sidepanel/sidepanel-container.component.d.ts +0 -67
  585. package/sidepanel/sidepanel-directives.d.ts +0 -61
  586. package/sidepanel/sidepanel-ref.d.ts +0 -36
  587. package/sidepanel/sidepanel.module.d.ts +0 -14
  588. package/sidepanel/sidepanel.service.d.ts +0 -58
  589. package/skeleton/module.d.ts +0 -7
  590. package/skeleton/skeleton.d.ts +0 -17
  591. package/split-button/public-api.d.ts +0 -2
  592. package/split-button/split-button.d.ts +0 -37
  593. package/split-button/split-button.module.d.ts +0 -7
  594. package/splitter/public-api.d.ts +0 -2
  595. package/splitter/splitter.component.d.ts +0 -136
  596. package/splitter/splitter.module.d.ts +0 -8
  597. package/table/public-api.d.ts +0 -2
  598. package/table/table.component.d.ts +0 -12
  599. package/table/table.module.d.ts +0 -9
  600. package/tabs/paginated-tab-header.d.ts +0 -182
  601. package/tabs/public-api.d.ts +0 -10
  602. package/tabs/tab-body.component.d.ts +0 -95
  603. package/tabs/tab-content.directive.d.ts +0 -9
  604. package/tabs/tab-group.component.d.ts +0 -137
  605. package/tabs/tab-header.component.d.ts +0 -32
  606. package/tabs/tab-label-wrapper.directive.d.ts +0 -29
  607. package/tabs/tab-label.directive.d.ts +0 -9
  608. package/tabs/tab-nav-bar.d.ts +0 -91
  609. package/tabs/tab.component.d.ts +0 -68
  610. package/tabs/tabs-animations.d.ts +0 -4
  611. package/tabs/tabs.module.d.ts +0 -20
  612. package/tags/public-api.d.ts +0 -5
  613. package/tags/tag-default-options.d.ts +0 -13
  614. package/tags/tag-input.d.ts +0 -110
  615. package/tags/tag-list.component.d.ts +0 -373
  616. package/tags/tag-text-control.d.ts +0 -10
  617. package/tags/tag.component.d.ts +0 -272
  618. package/tags/tag.module.d.ts +0 -10
  619. package/textarea/public-api.d.ts +0 -2
  620. package/textarea/textarea.component.d.ts +0 -123
  621. package/textarea/textarea.module.d.ts +0 -10
  622. package/time-range/constants.d.ts +0 -19
  623. package/time-range/module.d.ts +0 -10
  624. package/time-range/time-range-editor.d.ts +0 -65
  625. package/time-range/time-range-title-as-form-field.d.ts +0 -41
  626. package/time-range/time-range-title.d.ts +0 -18
  627. package/time-range/time-range.d.ts +0 -78
  628. package/time-range/time-range.service.d.ts +0 -25
  629. package/time-range/types.d.ts +0 -69
  630. package/timepicker/public-api.d.ts +0 -3
  631. package/timepicker/timepicker.constants.d.ts +0 -22
  632. package/timepicker/timepicker.directive.d.ts +0 -159
  633. package/timepicker/timepicker.module.d.ts +0 -11
  634. package/timezone/cities-by-filter.pipe.d.ts +0 -7
  635. package/timezone/public-api.d.ts +0 -6
  636. package/timezone/timezone-option.component.d.ts +0 -15
  637. package/timezone/timezone-option.directive.d.ts +0 -22
  638. package/timezone/timezone-select.component.d.ts +0 -16
  639. package/timezone/timezone.models.d.ts +0 -16
  640. package/timezone/timezone.module.d.ts +0 -20
  641. package/timezone/timezone.utils.d.ts +0 -22
  642. package/timezone/utc-offset.pipe.d.ts +0 -9
  643. package/title/public-api.d.ts +0 -2
  644. package/title/title.directive.d.ts +0 -33
  645. package/title/title.module.d.ts +0 -8
  646. package/toast/public-api.d.ts +0 -5
  647. package/toast/toast-animations.d.ts +0 -5
  648. package/toast/toast-container.component.d.ts +0 -19
  649. package/toast/toast.component.d.ts +0 -41
  650. package/toast/toast.module.d.ts +0 -8
  651. package/toast/toast.service.d.ts +0 -61
  652. package/toast/toast.type.d.ts +0 -44
  653. package/toggle/public-api.d.ts +0 -2
  654. package/toggle/toggle.component.d.ts +0 -77
  655. package/toggle/toggle.module.d.ts +0 -8
  656. package/tooltip/public-api.d.ts +0 -2
  657. package/tooltip/tooltip.animations.d.ts +0 -8
  658. package/tooltip/tooltip.component.d.ts +0 -156
  659. package/tooltip/tooltip.module.d.ts +0 -7
  660. package/top-bar/module.d.ts +0 -7
  661. package/top-bar/public-api.d.ts +0 -2
  662. package/top-bar/top-bar.d.ts +0 -25
  663. package/tree/control/base-tree-control.d.ts +0 -40
  664. package/tree/control/flat-tree-control.d.ts +0 -55
  665. package/tree/control/flat-tree-control.filters.d.ts +0 -27
  666. package/tree/control/nested-tree-control.d.ts +0 -19
  667. package/tree/control/tree-control.d.ts +0 -44
  668. package/tree/data-source/flat-data-source.d.ts +0 -80
  669. package/tree/data-source/nested-data-source.d.ts +0 -15
  670. package/tree/node.d.ts +0 -34
  671. package/tree/outlet.d.ts +0 -9
  672. package/tree/padding.directive.d.ts +0 -45
  673. package/tree/public-api.d.ts +0 -16
  674. package/tree/toggle.d.ts +0 -28
  675. package/tree/tree-base.d.ts +0 -96
  676. package/tree/tree-errors.d.ts +0 -25
  677. package/tree/tree-option.component.d.ts +0 -89
  678. package/tree/tree-selection.component.d.ts +0 -156
  679. package/tree/tree.d.ts +0 -6
  680. package/tree/tree.module.d.ts +0 -16
  681. package/tree-select/public-api.d.ts +0 -2
  682. package/tree-select/tree-select.component.d.ts +0 -360
  683. package/tree-select/tree-select.module.d.ts +0 -15
  684. package/username/constants.d.ts +0 -15
  685. package/username/module.d.ts +0 -8
  686. package/username/types.d.ts +0 -62
  687. package/username/username.d.ts +0 -68
  688. package/username/username.pipe.d.ts +0 -23
@@ -1,16 +1,13 @@
1
- import * as i3 from '@angular/cdk/a11y';
2
- import { CdkTrapFocus, A11yModule, ConfigurableFocusTrapFactory, FocusTrapFactory } from '@angular/cdk/a11y';
3
- import * as i1 from '@angular/cdk/overlay';
4
- import { OverlayRef, OverlayModule } from '@angular/cdk/overlay';
1
+ import { FocusMonitor, CdkTrapFocus, A11yModule, ConfigurableFocusTrapFactory, FocusTrapFactory } from '@angular/cdk/a11y';
2
+ import { Overlay, OverlayRef, OverlayModule } from '@angular/cdk/overlay';
5
3
  import { _getFocusedElementPierceShadowDom } from '@angular/cdk/platform';
6
- import { DOCUMENT, NgStyle, NgClass, NgTemplateOutlet } from '@angular/common';
4
+ import { DOCUMENT, NgTemplateOutlet } from '@angular/common';
7
5
  import * as i0 from '@angular/core';
8
- import { Pipe, Optional, SkipSelf, Injectable, inject, EventEmitter, TemplateRef, Type, Injector, ViewContainerRef, ElementRef, Input, ViewChild, ViewChildren, Output, ChangeDetectionStrategy, ViewEncapsulation, Component, Directive, InjectionToken, isDevMode, NgModule } from '@angular/core';
9
- import { ESCAPE, ENTER } from '@koobiq/cdk/keycodes';
10
- import * as i4 from '@koobiq/components/button';
6
+ import { Pipe, inject, Injectable, Renderer2, ComponentFactoryResolver, ElementRef, ViewContainerRef, ChangeDetectorRef, output, EventEmitter, viewChild, viewChildren, TemplateRef, Type, Injector, Input, Output, ViewEncapsulation, ChangeDetectionStrategy, Component, Directive, InjectionToken, isDevMode, NgModule } from '@angular/core';
7
+ import * as i1 from '@koobiq/components/button';
11
8
  import { KbqButtonModule } from '@koobiq/components/button';
12
- import { KbqComponentColors } from '@koobiq/components/core';
13
- import * as i5 from '@koobiq/components/icon';
9
+ import { KbqComponentColors, ESCAPE, ENTER, KbqOverflowShadowContainer, KbqOverflowShadowTop, KbqOverflowShadowBottom } from '@koobiq/components/core';
10
+ import * as i2 from '@koobiq/components/icon';
14
11
  import { KbqIconModule } from '@koobiq/components/icon';
15
12
  import { take, switchMap, filter } from 'rxjs/operators';
16
13
  import { Subject } from 'rxjs';
@@ -29,10 +26,10 @@ class CssUnitPipe {
29
26
  const formatted = +value;
30
27
  return isNaN(formatted) ? `${value}` : `${formatted}${defaultUnit}`;
31
28
  }
32
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: CssUnitPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
33
- /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: CssUnitPipe, isStandalone: true, name: "toCssUnit" }); }
29
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: CssUnitPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
30
+ /** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: CssUnitPipe, isStandalone: true, name: "toCssUnit" }); }
34
31
  }
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: CssUnitPipe, decorators: [{
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: CssUnitPipe, decorators: [{
36
33
  type: Pipe,
37
34
  args: [{
38
35
  name: 'toCssUnit'
@@ -52,6 +49,18 @@ var ModalSize;
52
49
  const MODAL_ANIMATE_DURATION = 300;
53
50
 
54
51
  class KbqModalControlService {
52
+ constructor() {
53
+ this.parentService = inject(KbqModalControlService, { optional: true, skipSelf: true });
54
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
55
+ // @ts-ignore
56
+ this.rootOpenModals = this.parentService ? null : [];
57
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
58
+ // @ts-ignore
59
+ this.rootAfterAllClose = this.parentService ? null : new Subject();
60
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
61
+ // @ts-ignore
62
+ this.rootRegisteredMetaMap = this.parentService ? null : new Map();
63
+ }
55
64
  // Track singleton afterAllClose through over the injection tree
56
65
  get afterAllClose() {
57
66
  return this.parentService ? this.parentService.afterAllClose : this.rootAfterAllClose;
@@ -64,18 +73,6 @@ class KbqModalControlService {
64
73
  get registeredMetaMap() {
65
74
  return this.parentService ? this.parentService.registeredMetaMap : this.rootRegisteredMetaMap;
66
75
  }
67
- constructor(parentService) {
68
- this.parentService = parentService;
69
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
70
- // @ts-ignore
71
- this.rootOpenModals = this.parentService ? null : [];
72
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
73
- // @ts-ignore
74
- this.rootAfterAllClose = this.parentService ? null : new Subject();
75
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
76
- // @ts-ignore
77
- this.rootRegisteredMetaMap = this.parentService ? null : new Map();
78
- }
79
76
  // Register a modal to listen its open/close
80
77
  registerModal(modalRef) {
81
78
  if (!this.hasRegistered(modalRef)) {
@@ -143,17 +140,13 @@ class KbqModalControlService {
143
140
  });
144
141
  }
145
142
  }
146
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqModalControlService, deps: [{ token: KbqModalControlService, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
147
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqModalControlService, providedIn: 'root' }); }
143
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqModalControlService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
144
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqModalControlService, providedIn: 'root' }); }
148
145
  }
149
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqModalControlService, decorators: [{
146
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqModalControlService, decorators: [{
150
147
  type: Injectable,
151
148
  args: [{ providedIn: 'root' }]
152
- }], ctorParameters: () => [{ type: KbqModalControlService, decorators: [{
153
- type: Optional
154
- }, {
155
- type: SkipSelf
156
- }] }] });
149
+ }] });
157
150
 
158
151
  /** @docs-private */
159
152
  class ModalUtil {
@@ -178,36 +171,112 @@ const modalUtilObject = new ModalUtil(
178
171
  typeof document === 'undefined' ? undefined : document);
179
172
 
180
173
  class KbqModalComponent extends KbqModalRef {
174
+ constructor() {
175
+ super(...arguments);
176
+ this.overlay = inject(Overlay);
177
+ this.renderer = inject(Renderer2);
178
+ this.cfr = inject(ComponentFactoryResolver);
179
+ this.elementRef = inject(ElementRef);
180
+ this.viewContainer = inject(ViewContainerRef);
181
+ this.modalControl = inject(KbqModalControlService);
182
+ this.changeDetector = inject(ChangeDetectorRef);
183
+ this.focusMonitor = inject(FocusMonitor);
184
+ this.document = inject(DOCUMENT);
185
+ this.componentColors = KbqComponentColors;
186
+ // TODO: Skipped for migration because:
187
+ // This input overrides a field from a superclass, while the superclass field
188
+ // is not migrated.
189
+ this.kbqModalType = 'default';
190
+ this._kbqVisible = false;
191
+ this.kbqVisibleChange = output();
192
+ // TODO: Skipped for migration because:
193
+ // This input overrides a field from a superclass, while the superclass field
194
+ // is not migrated.
195
+ this.kbqSize = ModalSize.Medium;
196
+ // TODO: Skipped for migration because:
197
+ // This input overrides a field from a superclass, while the superclass field
198
+ // is not migrated.
199
+ this.kbqCloseByESC = true;
200
+ this._kbqClosable = true;
201
+ this._kbqMask = true;
202
+ this._kbqMaskClosable = false;
203
+ // Trigger when modal open(visible) after animations
204
+ this.kbqAfterOpen = new EventEmitter();
205
+ // Trigger when modal leave-animation over
206
+ this.kbqAfterClose = new EventEmitter();
207
+ /** Emitted before the modal begins its closing animation. */
208
+ this.kbqBeforeClose = new EventEmitter();
209
+ // TODO: Skipped for migration because:
210
+ // This input overrides a field from a superclass, while the superclass field
211
+ // is not migrated.
212
+ this.kbqOkType = KbqComponentColors.Contrast;
213
+ // TODO: Skipped for migration because:
214
+ // This input overrides a field from a superclass, while the superclass field
215
+ // is not migrated.
216
+ this.kbqRestoreFocus = true;
217
+ this._kbqOkLoading = false;
218
+ // TODO: Skipped for migration because:
219
+ // This input overrides a field from a superclass, while the superclass field
220
+ // is not migrated.
221
+ this.kbqOnOk = new EventEmitter();
222
+ this._kbqCancelLoading = false;
223
+ // TODO: Skipped for migration because:
224
+ // This input overrides a field from a superclass, while the superclass field
225
+ // is not migrated.
226
+ this.kbqOnCancel = new EventEmitter();
227
+ this.modalContainer = viewChild.required('modalContainer');
228
+ this.bodyContainer = viewChild.required('bodyContainer', { read: ViewContainerRef });
229
+ // Only aim to focus the ok button that needs to be auto focused
230
+ this.autoFocusedButtons = viewChildren('autoFocusedButton', ...(ngDevMode ? [{ debugName: "autoFocusedButtons", read: ElementRef }] : [{ read: ElementRef }]));
231
+ // The origin point that animation based on
232
+ this.transformOrigin = '0px 0px 0px';
233
+ // TODO: Skipped for migration because:
234
+ // This input overrides a field from a superclass, while the superclass field
235
+ // is not migrated.
236
+ this.kbqGetContainer = () => this.overlay.create();
237
+ }
238
+ // TODO: Skipped for migration because:
239
+ // Accessor inputs cannot be migrated as they are too complex.
181
240
  get kbqVisible() {
182
241
  return this._kbqVisible;
183
242
  }
184
243
  set kbqVisible(value) {
185
244
  this._kbqVisible = value;
186
245
  }
246
+ // TODO: Skipped for migration because:
247
+ // Accessor inputs cannot be migrated as they are too complex.
187
248
  get kbqClosable() {
188
249
  return this._kbqClosable;
189
250
  }
190
251
  set kbqClosable(value) {
191
252
  this._kbqClosable = value;
192
253
  }
254
+ // TODO: Skipped for migration because:
255
+ // Accessor inputs cannot be migrated as they are too complex.
193
256
  get kbqMask() {
194
257
  return this._kbqMask;
195
258
  }
196
259
  set kbqMask(value) {
197
260
  this._kbqMask = value;
198
261
  }
262
+ // TODO: Skipped for migration because:
263
+ // Accessor inputs cannot be migrated as they are too complex.
199
264
  get kbqMaskClosable() {
200
265
  return this._kbqMaskClosable;
201
266
  }
202
267
  set kbqMaskClosable(value) {
203
268
  this._kbqMaskClosable = value;
204
269
  }
270
+ // TODO: Skipped for migration because:
271
+ // Accessor inputs cannot be migrated as they are too complex.
205
272
  get kbqOkLoading() {
206
273
  return this._kbqOkLoading;
207
274
  }
208
275
  set kbqOkLoading(value) {
209
276
  this._kbqOkLoading = value;
210
277
  }
278
+ // TODO: Skipped for migration because:
279
+ // Accessor inputs cannot be migrated as they are too complex.
211
280
  get kbqCancelLoading() {
212
281
  return this._kbqCancelLoading;
213
282
  }
@@ -236,44 +305,6 @@ class KbqModalComponent extends KbqModalRef {
236
305
  get hidden() {
237
306
  return !this.kbqVisible && !this.animationState;
238
307
  }
239
- constructor(overlay, renderer, cfr, elementRef, viewContainer, modalControl, changeDetector, focusMonitor) {
240
- super();
241
- this.overlay = overlay;
242
- this.renderer = renderer;
243
- this.cfr = cfr;
244
- this.elementRef = elementRef;
245
- this.viewContainer = viewContainer;
246
- this.modalControl = modalControl;
247
- this.changeDetector = changeDetector;
248
- this.focusMonitor = focusMonitor;
249
- this.document = inject(DOCUMENT);
250
- this.componentColors = KbqComponentColors;
251
- this.kbqModalType = 'default';
252
- this._kbqVisible = false;
253
- this.kbqVisibleChange = new EventEmitter();
254
- this.kbqSize = ModalSize.Medium;
255
- this.kbqCloseByESC = true;
256
- this._kbqClosable = true;
257
- this._kbqMask = true;
258
- this._kbqMaskClosable = false;
259
- // Trigger when modal open(visible) after animations
260
- this.kbqAfterOpen = new EventEmitter();
261
- // Trigger when modal leave-animation over
262
- this.kbqAfterClose = new EventEmitter();
263
- /** Emitted before the modal begins its closing animation. */
264
- this.kbqBeforeClose = new EventEmitter();
265
- this.kbqOkType = KbqComponentColors.Contrast;
266
- this.kbqRestoreFocus = true;
267
- this._kbqOkLoading = false;
268
- this.kbqOnOk = new EventEmitter();
269
- this._kbqCancelLoading = false;
270
- this.kbqOnCancel = new EventEmitter();
271
- this.isTopOverflow = false;
272
- this.isBottomOverflow = false;
273
- // The origin point that animation based on
274
- this.transformOrigin = '0px 0px 0px';
275
- this.kbqGetContainer = () => this.overlay.create();
276
- }
277
308
  // [NOTE] NOT available when using by service!
278
309
  // Because ngOnChanges never be called when using by service,
279
310
  // here we can't support "kbqContent"(Component) etc. as inputs that initialized dynamically.
@@ -312,33 +343,23 @@ class KbqModalComponent extends KbqModalRef {
312
343
  ngAfterViewInit() {
313
344
  // If using Component, it is the time to attach View while bodyContainer is ready
314
345
  if (this.contentComponentRef) {
315
- this.bodyContainer.insert(this.contentComponentRef.hostView);
346
+ this.bodyContainer().insert(this.contentComponentRef.hostView);
316
347
  }
317
348
  this.getElement().getElementsByTagName('button')[0]?.focus();
318
349
  this.getElement().querySelector('button[autofocus]')?.focus();
319
- this.checkOverflow();
320
350
  }
321
351
  ngOnDestroy() {
322
352
  if (this.container instanceof OverlayRef) {
323
353
  this.container.dispose();
324
354
  }
325
355
  }
326
- checkOverflow() {
327
- const nativeElement = this.modalBody?.nativeElement;
328
- if (!nativeElement) {
329
- return;
330
- }
331
- const { scrollTop, offsetHeight, scrollHeight } = nativeElement;
332
- this.isTopOverflow = scrollTop > 0;
333
- this.isBottomOverflow = scrollTop + offsetHeight < scrollHeight;
334
- }
335
356
  open() {
336
357
  this.focusedElementBeforeOpen = _getFocusedElementPierceShadowDom();
337
358
  this.previouslyFocusedElementOrigin = this.focusMonitor['_lastFocusOrigin'];
338
359
  this.focusMonitor
339
- .monitor(this.modalContainer, true)
360
+ .monitor(this.modalContainer(), true)
340
361
  .pipe(take(1))
341
- .subscribe(() => this.focusMonitor.stopMonitoring(this.modalContainer));
362
+ .subscribe(() => this.focusMonitor.stopMonitoring(this.modalContainer()));
342
363
  this.changeVisibleFromInside(true);
343
364
  }
344
365
  close(result) {
@@ -411,7 +432,7 @@ class KbqModalComponent extends KbqModalRef {
411
432
  onClickOkCancel(type) {
412
433
  this.handleCloseResult(type, (doClose) => doClose !== false);
413
434
  }
414
- // eslint-disable-next-line @typescript-eslint/ban-types
435
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
415
436
  handleCloseResult(triggerType, canClose) {
416
437
  const trigger = { ok: this.kbqOnOk, cancel: this.kbqOnCancel }[triggerType];
417
438
  const loadingKey = { ok: 'kbqOkLoading', cancel: 'kbqCancelLoading' }[triggerType];
@@ -421,7 +442,7 @@ class KbqModalComponent extends KbqModalRef {
421
442
  else if (typeof trigger === 'function') {
422
443
  const result = trigger(this.getContentComponent());
423
444
  // Users can return "false" to prevent closing by default
424
- // eslint-disable-next-line @typescript-eslint/ban-types
445
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
425
446
  const caseClose = (doClose) => canClose(doClose) && this.close(doClose);
426
447
  if (isPromise(result)) {
427
448
  this[loadingKey] = true;
@@ -437,28 +458,28 @@ class KbqModalComponent extends KbqModalRef {
437
458
  }
438
459
  }
439
460
  // AoT
440
- // eslint-disable-next-line @typescript-eslint/ban-types
461
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
441
462
  isNonEmptyString(value) {
442
463
  return typeof value === 'string' && value !== '';
443
464
  }
444
465
  // AoT
445
- // eslint-disable-next-line @typescript-eslint/ban-types
466
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
446
467
  isTemplateRef(value) {
447
468
  return value instanceof TemplateRef;
448
469
  }
449
470
  // AoT
450
- // eslint-disable-next-line @typescript-eslint/ban-types
471
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
451
472
  isComponent(value) {
452
473
  return value instanceof Type;
453
474
  }
454
475
  // AoT
455
- // eslint-disable-next-line @typescript-eslint/ban-types
476
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
456
477
  isModalButtons(value) {
457
478
  return Array.isArray(value) && value.length > 0;
458
479
  }
459
480
  // Lookup a button's property, if the prop is a function, call & then return the result, otherwise, return itself.
460
481
  // AoT
461
- // eslint-disable-next-line @typescript-eslint/ban-types
482
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
462
483
  getButtonCallableProp(options, prop) {
463
484
  const value = options[prop];
464
485
  const args = [];
@@ -467,6 +488,15 @@ class KbqModalComponent extends KbqModalRef {
467
488
  }
468
489
  return typeof value === 'function' ? value.apply(options, args) : value;
469
490
  }
491
+ /** Returns the full set of classes for the modal container: base, custom class name, size and animation classes. */
492
+ getContainerClasses() {
493
+ const classes = ['kbq-modal-container', this.kbqClassName, `kbq-modal_${this.kbqSize}`];
494
+ if (this.modalAnimationClassMap) {
495
+ const animationClasses = this.modalAnimationClassMap;
496
+ classes.push(...Object.keys(animationClasses).filter((key) => animationClasses[key]));
497
+ }
498
+ return classes.filter(Boolean).join(' ');
499
+ }
470
500
  // On kbqFooter's modal button click
471
501
  // AoT
472
502
  onButtonClick(button) {
@@ -474,7 +504,7 @@ class KbqModalComponent extends KbqModalRef {
474
504
  const result = this.getButtonCallableProp(button, 'onClick');
475
505
  if (isPromise(result)) {
476
506
  button.loading = true;
477
- // eslint-disable-next-line @typescript-eslint/ban-types
507
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
478
508
  result.then(() => (button.loading = false)).catch(() => (button.loading = false));
479
509
  }
480
510
  }
@@ -584,18 +614,13 @@ class KbqModalComponent extends KbqModalRef {
584
614
  parent: this.viewContainer.injector
585
615
  });
586
616
  this.contentComponentRef = factory.create(childInjector);
587
- if (this.kbqComponentParams) {
588
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
589
- // @ts-ignore
590
- Object.assign(this.contentComponentRef.instance, this.kbqComponentParams);
591
- }
592
617
  // Do the first change detection immediately
593
618
  // (or we do detection at ngAfterViewInit, multi-changes error will be thrown)
594
619
  this.contentComponentRef.changeDetectorRef.detectChanges();
595
620
  }
596
621
  // Update transform-origin to the last click position on document
597
622
  updateTransformOrigin() {
598
- const modalElement = this.modalContainer.nativeElement;
623
+ const modalElement = this.modalContainer().nativeElement;
599
624
  const lastPosition = modalUtilObject.getLastClickPosition();
600
625
  if (lastPosition) {
601
626
  this.transformOrigin = `${lastPosition.x - modalElement.offsetLeft}px ${lastPosition.y - modalElement.offsetTop}px 0px`;
@@ -614,38 +639,35 @@ class KbqModalComponent extends KbqModalRef {
614
639
  this.renderer.removeStyle(this.document.body, 'overflow');
615
640
  }
616
641
  }
617
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", 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 }], target: i0.ɵɵFactoryTarget.Component }); }
618
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: KbqModalComponent, isStandalone: true, selector: "kbq-modal", inputs: { kbqModalType: "kbqModalType", kbqComponent: "kbqComponent", kbqContent: "kbqContent", kbqComponentParams: "kbqComponentParams", kbqFooter: "kbqFooter", kbqVisible: "kbqVisible", 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", kbqBeforeClose: "kbqBeforeClose", kbqOnOk: "kbqOnOk", kbqOnCancel: "kbqOnCancel" }, host: { listeners: { "keydown": "onKeyDown($event)" }, classAttribute: "kbq-modal" }, 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 />\n</ng-template>\n\n<div>\n @if (kbqMask) {\n <div\n class=\"kbq-modal-mask\"\n [class.kbq-modal-mask-hidden]=\"hidden\"\n [ngClass]=\"maskAnimationClassMap\"\n [ngStyle]=\"kbqMaskStyle\"\n ></div>\n }\n\n <div\n class=\"kbq-modal-wrap {{ kbqWrapClassName }}\"\n tabindex=\"-1\"\n [style.display]=\"hidden ? 'none' : ''\"\n (mousedown)=\"onClickMask($event)\"\n >\n <div\n #modalContainer\n class=\"kbq-modal-container {{ kbqClassName }} kbq-modal_{{ kbqSize }}\"\n [class.kbq-modal_no-footer]=\"!kbqFooter\"\n [ngClass]=\"modalAnimationClassMap\"\n [ngStyle]=\"kbqStyle\"\n [style.transform-origin]=\"transformOrigin\"\n [style.width]=\"kbqWidth | toCssUnit\"\n >\n <div cdkTrapFocus class=\"kbq-modal-content\">\n @switch (true) {\n @case (isModalType('default')) {\n <ng-container [ngTemplateOutlet]=\"tplContentDefault\" />\n }\n @case (isModalType('confirm')) {\n <ng-container [ngTemplateOutlet]=\"tplContentConfirm\" />\n }\n @case (isModalType('custom')) {\n <ng-container [ngTemplateOutlet]=\"tplContentCustom\" />\n }\n }\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #tplContentCustom>\n <ng-container #bodyContainer />\n</ng-template>\n\n<!-- [Predefined] Default Modal Content -->\n<ng-template #tplContentDefault>\n @if (kbqTitle) {\n <div kbq-title class=\"kbq-modal-header\" [class.kbq-modal-body_top-overflow]=\"isTopOverflow\">\n <div class=\"kbq-modal-title\">\n @switch (true) {\n @case (isTemplateRef(kbqTitle)) {\n <ng-container [ngTemplateOutlet]=\"$any(kbqTitle)\" />\n }\n @case (isNonEmptyString(kbqTitle)) {\n <div [innerHTML]=\"kbqTitle\"></div>\n }\n }\n </div>\n @if (kbqClosable) {\n <button\n kbq-button\n type=\"button\"\n class=\"kbq-modal-close kbq-button_transparent\"\n [color]=\"'contrast'\"\n (click)=\"onClickCloseBtn()\"\n >\n <i kbq-icon=\"kbq-xmark_16\" [color]=\"componentColors.Contrast\"></i>\n </button>\n }\n </div>\n }\n <div #modalBody class=\"kbq-modal-body kbq-scrollbar\" [ngStyle]=\"kbqBodyStyle\" (scroll)=\"checkOverflow()\">\n <ng-container #bodyContainer>\n @if (!isComponent(kbqContent)) {\n @switch (true) {\n @case (isTemplateRef(kbqContent)) {\n <ng-container [ngTemplateOutlet]=\"$any(kbqContent)\" />\n }\n @case (isNonEmptyString(kbqContent)) {\n <div [innerHTML]=\"kbqContent\"></div>\n }\n @default {\n <ng-container [ngTemplateOutlet]=\"tplOriginContent\" />\n }\n }\n }\n </ng-container>\n </div>\n @if (kbqFooter || kbqOkText || kbqCancelText) {\n <div class=\"kbq-modal-footer\" [class.kbq-modal-body_bottom-overflow]=\"isBottomOverflow\">\n @switch (true) {\n @case (isTemplateRef(kbqFooter)) {\n <ng-container [ngTemplateOutlet]=\"$any(kbqFooter)\" />\n }\n @case (isNonEmptyString(kbqFooter)) {\n <div [innerHTML]=\"kbqFooter\"></div>\n }\n @case (isModalButtons(kbqFooter)) {\n @for (button of $any(kbqFooter); track button) {\n @if (getButtonCallableProp(button, 'show')) {\n <button\n kbq-button\n [attr.autofocus]=\"button.autoFocus\"\n [attr.kbq-modal-main-action]=\"button.kbqModalMainAction\"\n [class.kbq-progress]=\"getButtonCallableProp(button, 'loading')\"\n [color]=\"button.type\"\n [disabled]=\"getButtonCallableProp(button, 'disabled')\"\n (click)=\"onButtonClick(button)\"\n >\n {{ button.label }}\n </button>\n }\n }\n }\n @default {\n @if (kbqOkText) {\n <button\n kbq-button\n [attr.autofocus]=\"true\"\n [color]=\"componentColors.Contrast\"\n (click)=\"onClickOkCancel('ok')\"\n >\n {{ okText }}\n </button>\n }\n @if (kbqCancelText) {\n <button kbq-button (click)=\"onClickOkCancel('cancel')\">\n {{ cancelText }}\n </button>\n }\n }\n }\n </div>\n }\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 @if (!isComponent(kbqContent)) {\n @switch (true) {\n @case (isTemplateRef(kbqContent)) {\n <ng-container [ngTemplateOutlet]=\"$any(kbqContent)\" />\n }\n @case (isNonEmptyString(kbqContent)) {\n <div [innerHTML]=\"kbqContent\"></div>\n }\n @default {\n <ng-container [ngTemplateOutlet]=\"tplOriginContent\" />\n }\n }\n }\n </ng-container>\n </div>\n @if (kbqOkText || kbqCancelText) {\n <div class=\"kbq-confirm-footer\">\n @if (kbqOkText) {\n <button kbq-button [attr.autofocus]=\"true\" [color]=\"kbqOkType\" (click)=\"onClickOkCancel('ok')\">\n {{ okText }}\n </button>\n }\n @if (kbqCancelText) {\n <button kbq-button (click)=\"onClickOkCancel('cancel')\">\n {{ cancelText }}\n </button>\n }\n </div>\n }\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)}@keyframes mcFadeIn{0%{opacity:0}to{opacity:1}}@keyframes mcFadeOut{0%{opacity:1}to{opacity:0}}@keyframes mcZoomIn{0%{opacity:0;transform:translateY(-25%)}to{opacity:1;transform:scale(1)}}@keyframes mcZoomOut{0%{transform:scale(1)}to{opacity:0;transform:translateY(-30%)}}.fade-enter,.fade-appear,.fade-leave{animation-duration:.3s;animation-fill-mode:both;animation-play-state:paused}.fade-enter.fade-enter-active,.fade-appear.fade-appear-active{animation-name:mcFadeIn;animation-play-state:running}.fade-leave.fade-leave-active{animation-name:mcFadeOut;animation-play-state:running;pointer-events:none}.className-enter,.className-appear{opacity:0;animation-timing-function:ease-out}.className-leave{animation-timing-function:ease-out}.zoom-enter,.zoom-appear,.zoom-leave{animation-duration:.3s;animation-fill-mode:both;animation-play-state:paused}.zoom-enter.zoom-enter-active,.zoom-appear.zoom-appear-active{animation-name:mcZoomIn;animation-play-state:running}.zoom-leave.zoom-leave-active{animation-name:mcZoomOut;animation-play-state:running;pointer-events:none}.className-enter,.className-appear{transform:translateY(-25%);animation-timing-function:cubic-bezier(.075,.82,.165,1)}.className-leave{transform:translate(0);animation-timing-function:cubic-bezier(.785,.135,.15,.86)}.kbq-modal-container{box-sizing:border-box;position:relative;top:var(--kbq-size-5xl);border-radius:var(--kbq-modal-size-border-radius);width:auto;margin:0 auto;list-style:none}.kbq-modal-container.zoom-enter,.kbq-modal-container.zoom-appear{animation-duration:.3s;transform:none;opacity:0}.kbq-modal-container.kbq-modal_small{width:var(--kbq-modal-size-small-width)}.kbq-modal-container.kbq-modal_medium{width:var(--kbq-modal-size-medium-width)}.kbq-modal-container.kbq-modal_large{width:var(--kbq-modal-size-large-width)}.kbq-modal-container .kbq-modal-close{position:absolute;top:var(--kbq-size-l);right:var(--kbq-size-l)}.kbq-modal-wrap{position:fixed;inset:0;overflow:auto;-webkit-overflow-scrolling:touch;outline:0}.kbq-modal-content{position:relative;border-radius:var(--kbq-modal-size-border-radius);background-clip:padding-box}.kbq-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--kbq-modal-size-header-padding-vertical) var(--kbq-modal-size-header-padding-right) var(--kbq-modal-size-header-padding-vertical) var(--kbq-modal-size-header-padding-left)}.kbq-modal-header+.kbq-modal-body{padding-top:var(--kbq-modal-size-content-padding-top)}.kbq-modal-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;padding-top:var(--kbq-size-3xs);padding-bottom:var(--kbq-size-3xs)}.kbq-modal-body{display:block;overflow-y:auto;max-height:calc(100vh - 260px);padding:var(--kbq-modal-size-content-padding-top-without-header) var(--kbq-modal-size-content-padding-horizontal) var(--kbq-modal-size-content-padding-bottom) var(--kbq-modal-size-content-padding-horizontal);overflow-wrap:break-word}.kbq-modal-body>*{position:relative}.kbq-modal-footer,.kbq-confirm-footer{display:flex;align-items:center;padding:var(--kbq-modal-size-footer-padding-vertical) var(--kbq-modal-size-footer-padding-horizontal);gap:var(--kbq-modal-size-footer-content-gap-horizontal)}.kbq-modal-mask{position:fixed;inset:0;height:100%}.kbq-modal-mask.kbq-modal-mask-hidden{display:none}.kbq-modal-open{overflow:hidden}.kbq-modal-container{background:var(--kbq-modal-container-background);box-shadow:var(--kbq-modal-container-shadow)}.kbq-modal-container .kbq-modal-header .kbq-modal-title{color:var(--kbq-modal-header-text-color)}.kbq-modal-container .kbq-modal-header .kbq-modal-close{color:var(--kbq-modal-close-button-color)}.kbq-modal-container .kbq-modal-content{color:var(--kbq-modal-content-text-color)}.kbq-modal-container .kbq-modal-header.kbq-modal-body_top-overflow{box-shadow:var(--kbq-shadow-overflow-normal-bottom)}.kbq-modal-container .kbq-modal-footer.kbq-modal-body_bottom-overflow{box-shadow:var(--kbq-shadow-overflow-normal-top)}.kbq-modal-mask{background-color:var(--kbq-modal-overlay-background)}.kbq-modal-title{font-size:var(--kbq-typography-title-font-size);font-style:var(--kbq-typography-title-font-style);font-weight:var(--kbq-typography-title-font-weight);line-height:var(--kbq-typography-title-line-height);font-family:var(--kbq-typography-title-font-family);text-transform:var(--kbq-typography-title-text-transform);font-feature-settings:var(--kbq-typography-title-font-feature-settings);letter-spacing:var(--kbq-typography-title-letter-spacing)}.kbq-modal-body{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n", ".kbq-modal{--kbq-modal-size-small-width: 400px;--kbq-modal-size-medium-width: 640px;--kbq-modal-size-large-width: 960px;--kbq-modal-size-border-radius: var(--kbq-size-s);--kbq-modal-size-header-padding-vertical: var(--kbq-size-l);--kbq-modal-size-header-padding-left: var(--kbq-size-xxl);--kbq-modal-size-header-padding-right: var(--kbq-size-6xl);--kbq-modal-size-close-button-margin-left: var(--kbq-size-s);--kbq-modal-size-content-padding-horizontal: var(--kbq-size-xxl);--kbq-modal-size-content-padding-top: 1px;--kbq-modal-size-content-padding-bottom: var(--kbq-size-s);--kbq-modal-size-content-padding-top-without-header: var(--kbq-size-xxl);--kbq-modal-size-content-padding-bottom-without-footer: var(--kbq-size-4xl);--kbq-modal-size-footer-padding-horizontal: var(--kbq-size-xxl);--kbq-modal-size-footer-padding-vertical: var(--kbq-size-xl);--kbq-modal-size-footer-content-gap-horizontal: var(--kbq-size-l);--kbq-modal-overlay-background: var(--kbq-background-overlay);--kbq-modal-container-background: var(--kbq-background-card);--kbq-modal-container-shadow: var(--kbq-shadow-overlay);--kbq-modal-close-button-color: var(--kbq-icon-contrast);--kbq-modal-header-text-color: var(--kbq-foreground-contrast);--kbq-modal-content-text-color: var(--kbq-foreground-contrast)}\n"], dependencies: [{ kind: "directive", type: CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i4.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i4.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i5.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "pipe", type: CssUnitPipe, name: "toCssUnit" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
642
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqModalComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
643
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: KbqModalComponent, isStandalone: true, selector: "kbq-modal", inputs: { kbqModalType: "kbqModalType", kbqComponent: "kbqComponent", kbqContent: "kbqContent", kbqFooter: "kbqFooter", kbqVisible: "kbqVisible", 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", kbqBeforeClose: "kbqBeforeClose", kbqOnOk: "kbqOnOk", kbqOnCancel: "kbqOnCancel" }, host: { listeners: { "keydown": "onKeyDown($event)" }, classAttribute: "kbq-modal" }, viewQueries: [{ propertyName: "modalContainer", first: true, predicate: ["modalContainer"], descendants: true, isSignal: true }, { propertyName: "bodyContainer", first: true, predicate: ["bodyContainer"], descendants: true, read: ViewContainerRef, isSignal: true }, { propertyName: "autoFocusedButtons", predicate: ["autoFocusedButton"], descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<!-- Compatible: the <ng-content> can appear only once -->\n<ng-template #tplOriginContent>\n <ng-content />\n</ng-template>\n\n<div>\n @if (kbqMask) {\n <div\n class=\"kbq-modal-mask\"\n [class.kbq-modal-mask-hidden]=\"hidden\"\n [class]=\"maskAnimationClassMap\"\n [style]=\"kbqMaskStyle\"\n ></div>\n }\n\n <div\n class=\"kbq-modal-wrap {{ kbqWrapClassName }}\"\n tabindex=\"-1\"\n [style.display]=\"hidden ? 'none' : ''\"\n (mousedown)=\"onClickMask($event)\"\n >\n <div\n #modalContainer\n [class]=\"getContainerClasses()\"\n [class.kbq-modal_no-footer]=\"!kbqFooter\"\n [style]=\"kbqStyle\"\n [style.transform-origin]=\"transformOrigin\"\n [style.width]=\"kbqWidth | toCssUnit\"\n >\n <div cdkTrapFocus class=\"kbq-modal-content\">\n @switch (true) {\n @case (isModalType('default')) {\n <ng-container [ngTemplateOutlet]=\"tplContentDefault\" />\n }\n @case (isModalType('confirm')) {\n <ng-container [ngTemplateOutlet]=\"tplContentConfirm\" />\n }\n @case (isModalType('custom')) {\n <ng-container [ngTemplateOutlet]=\"tplContentCustom\" />\n }\n }\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #tplContentCustom>\n <ng-container #bodyContainer />\n</ng-template>\n\n<!-- [Predefined] Default Modal Content -->\n<ng-template #tplContentDefault>\n @if (kbqTitle) {\n <div kbq-title class=\"kbq-modal-header\" [kbqOverflowShadowTop]=\"modalBodyOverflow\">\n <div class=\"kbq-modal-title\">\n @switch (true) {\n @case (isTemplateRef(kbqTitle)) {\n <ng-container [ngTemplateOutlet]=\"$any(kbqTitle)\" />\n }\n @case (isNonEmptyString(kbqTitle)) {\n <div [innerHTML]=\"kbqTitle\"></div>\n }\n }\n </div>\n @if (kbqClosable) {\n <button\n kbq-button\n type=\"button\"\n class=\"kbq-modal-close kbq-button_transparent\"\n [color]=\"'contrast'\"\n (click)=\"onClickCloseBtn()\"\n >\n <i kbq-icon=\"kbq-xmark_16\" [color]=\"componentColors.Contrast\"></i>\n </button>\n }\n </div>\n }\n <div\n #modalBodyOverflow=\"kbqOverflowShadowContainer\"\n kbqOverflowShadowContainer\n class=\"kbq-modal-body kbq-scrollbar\"\n [style]=\"kbqBodyStyle\"\n >\n <ng-container #bodyContainer>\n @if (!isComponent(kbqContent)) {\n @switch (true) {\n @case (isTemplateRef(kbqContent)) {\n <ng-container [ngTemplateOutlet]=\"$any(kbqContent)\" />\n }\n @case (isNonEmptyString(kbqContent)) {\n <div [innerHTML]=\"kbqContent\"></div>\n }\n @default {\n <ng-container [ngTemplateOutlet]=\"tplOriginContent\" />\n }\n }\n }\n </ng-container>\n </div>\n @if (kbqFooter || kbqOkText || kbqCancelText) {\n <div class=\"kbq-modal-footer\" [kbqOverflowShadowBottom]=\"modalBodyOverflow\">\n @switch (true) {\n @case (isTemplateRef(kbqFooter)) {\n <ng-container [ngTemplateOutlet]=\"$any(kbqFooter)\" />\n }\n @case (isNonEmptyString(kbqFooter)) {\n <div [innerHTML]=\"kbqFooter\"></div>\n }\n @case (isModalButtons(kbqFooter)) {\n @for (button of $any(kbqFooter); track button) {\n @if (getButtonCallableProp(button, 'show')) {\n <button\n kbq-button\n [attr.autofocus]=\"button.autoFocus\"\n [attr.kbq-modal-main-action]=\"button.kbqModalMainAction\"\n [class.kbq-progress]=\"getButtonCallableProp(button, 'loading')\"\n [color]=\"button.type\"\n [disabled]=\"getButtonCallableProp(button, 'disabled')\"\n (click)=\"onButtonClick(button)\"\n >\n {{ button.label }}\n </button>\n }\n }\n }\n @default {\n @if (kbqOkText) {\n <button\n kbq-button\n [attr.autofocus]=\"true\"\n [color]=\"componentColors.Contrast\"\n (click)=\"onClickOkCancel('ok')\"\n >\n {{ okText }}\n </button>\n }\n @if (kbqCancelText) {\n <button kbq-button (click)=\"onClickOkCancel('cancel')\">\n {{ cancelText }}\n </button>\n }\n }\n }\n </div>\n }\n</ng-template>\n<!-- /[Predefined] Default Modal Content -->\n\n<!-- [Predefined] Confirm Modal Content -->\n<ng-template #tplContentConfirm>\n <div class=\"kbq-modal-body\" [style]=\"kbqBodyStyle\">\n <ng-container #bodyContainer>\n @if (!isComponent(kbqContent)) {\n @switch (true) {\n @case (isTemplateRef(kbqContent)) {\n <ng-container [ngTemplateOutlet]=\"$any(kbqContent)\" />\n }\n @case (isNonEmptyString(kbqContent)) {\n <div [innerHTML]=\"kbqContent\"></div>\n }\n @default {\n <ng-container [ngTemplateOutlet]=\"tplOriginContent\" />\n }\n }\n }\n </ng-container>\n </div>\n @if (kbqOkText || kbqCancelText) {\n <div class=\"kbq-confirm-footer\">\n @if (kbqOkText) {\n <button kbq-button [attr.autofocus]=\"true\" [color]=\"kbqOkType\" (click)=\"onClickOkCancel('ok')\">\n {{ okText }}\n </button>\n }\n @if (kbqCancelText) {\n <button kbq-button (click)=\"onClickOkCancel('cancel')\">\n {{ cancelText }}\n </button>\n }\n </div>\n }\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)}@keyframes mcFadeIn{0%{opacity:0}to{opacity:1}}@keyframes mcFadeOut{0%{opacity:1}to{opacity:0}}@keyframes mcZoomIn{0%{opacity:0;transform:translateY(-25%)}to{opacity:1;transform:scale(1)}}@keyframes mcZoomOut{0%{transform:scale(1)}to{opacity:0;transform:translateY(-30%)}}.fade-enter,.fade-appear,.fade-leave{animation-duration:.3s;animation-fill-mode:both;animation-play-state:paused}.fade-enter.fade-enter-active,.fade-appear.fade-appear-active{animation-name:mcFadeIn;animation-play-state:running}.fade-leave.fade-leave-active{animation-name:mcFadeOut;animation-play-state:running;pointer-events:none}.className-enter,.className-appear{opacity:0;animation-timing-function:ease-out}.className-leave{animation-timing-function:ease-out}.zoom-enter,.zoom-appear,.zoom-leave{animation-duration:.3s;animation-fill-mode:both;animation-play-state:paused}.zoom-enter.zoom-enter-active,.zoom-appear.zoom-appear-active{animation-name:mcZoomIn;animation-play-state:running}.zoom-leave.zoom-leave-active{animation-name:mcZoomOut;animation-play-state:running;pointer-events:none}.className-enter,.className-appear{transform:translateY(-25%);animation-timing-function:cubic-bezier(.075,.82,.165,1)}.className-leave{transform:translate(0);animation-timing-function:cubic-bezier(.785,.135,.15,.86)}.kbq-modal-container{box-sizing:border-box;position:relative;top:var(--kbq-size-5xl);border-radius:var(--kbq-modal-size-border-radius);width:auto;margin:0 auto;list-style:none}.kbq-modal-container.zoom-enter,.kbq-modal-container.zoom-appear{animation-duration:.3s;transform:none;opacity:0}.kbq-modal-container.kbq-modal_small{width:var(--kbq-modal-size-small-width)}.kbq-modal-container.kbq-modal_medium{width:var(--kbq-modal-size-medium-width)}.kbq-modal-container.kbq-modal_large{width:var(--kbq-modal-size-large-width)}.kbq-modal-container .kbq-modal-close{position:absolute;top:var(--kbq-size-l);right:var(--kbq-size-l)}.kbq-modal-wrap{position:fixed;inset:0;overflow:auto;-webkit-overflow-scrolling:touch;outline:0}.kbq-modal-content{position:relative;border-radius:var(--kbq-modal-size-border-radius);background-clip:padding-box}.kbq-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--kbq-modal-size-header-padding-vertical) var(--kbq-modal-size-header-padding-right) var(--kbq-modal-size-header-padding-vertical) var(--kbq-modal-size-header-padding-left)}.kbq-modal-header+.kbq-modal-body{padding-top:var(--kbq-modal-size-content-padding-top)}.kbq-modal-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;padding-top:var(--kbq-size-3xs);padding-bottom:var(--kbq-size-3xs)}.kbq-modal-body{display:block;overflow-y:auto;max-height:calc(100vh - 260px);padding:var(--kbq-modal-size-content-padding-top-without-header) var(--kbq-modal-size-content-padding-horizontal) var(--kbq-modal-size-content-padding-bottom) var(--kbq-modal-size-content-padding-horizontal);overflow-wrap:break-word}.kbq-modal-body>*{position:relative}.kbq-modal-footer,.kbq-confirm-footer{display:flex;align-items:center;padding:var(--kbq-modal-size-footer-padding-vertical) var(--kbq-modal-size-footer-padding-horizontal);gap:var(--kbq-modal-size-footer-content-gap-horizontal)}.kbq-modal-mask{position:fixed;inset:0;height:100%}.kbq-modal-mask.kbq-modal-mask-hidden{display:none}.kbq-modal-open{overflow:hidden}.kbq-modal-container{background:var(--kbq-modal-container-background);box-shadow:var(--kbq-modal-container-shadow)}.kbq-modal-container .kbq-modal-header .kbq-modal-title{color:var(--kbq-modal-header-text-color)}.kbq-modal-container .kbq-modal-header .kbq-modal-close{color:var(--kbq-modal-close-button-color)}.kbq-modal-container .kbq-modal-content{color:var(--kbq-modal-content-text-color)}.kbq-modal-mask{background-color:var(--kbq-modal-overlay-background)}.kbq-modal-title{font-size:var(--kbq-typography-title-font-size);font-style:var(--kbq-typography-title-font-style);font-weight:var(--kbq-typography-title-font-weight);line-height:var(--kbq-typography-title-line-height);font-family:var(--kbq-typography-title-font-family);text-transform:var(--kbq-typography-title-text-transform);font-feature-settings:var(--kbq-typography-title-font-feature-settings);letter-spacing:var(--kbq-typography-title-letter-spacing)}.kbq-modal-body{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n", ".kbq-modal{--kbq-modal-size-small-width: 400px;--kbq-modal-size-medium-width: 640px;--kbq-modal-size-large-width: 960px;--kbq-modal-size-border-radius: var(--kbq-size-s);--kbq-modal-size-header-padding-vertical: var(--kbq-size-l);--kbq-modal-size-header-padding-left: var(--kbq-size-xxl);--kbq-modal-size-header-padding-right: var(--kbq-size-6xl);--kbq-modal-size-close-button-margin-left: var(--kbq-size-s);--kbq-modal-size-content-padding-horizontal: var(--kbq-size-xxl);--kbq-modal-size-content-padding-top: 1px;--kbq-modal-size-content-padding-bottom: var(--kbq-size-s);--kbq-modal-size-content-padding-top-without-header: var(--kbq-size-xxl);--kbq-modal-size-content-padding-bottom-without-footer: var(--kbq-size-4xl);--kbq-modal-size-footer-padding-horizontal: var(--kbq-size-xxl);--kbq-modal-size-footer-padding-vertical: var(--kbq-size-xl);--kbq-modal-size-footer-content-gap-horizontal: var(--kbq-size-l);--kbq-modal-overlay-background: var(--kbq-background-overlay);--kbq-modal-container-background: var(--kbq-background-card);--kbq-modal-container-shadow: var(--kbq-shadow-overlay);--kbq-modal-close-button-color: var(--kbq-icon-contrast);--kbq-modal-header-text-color: var(--kbq-foreground-contrast);--kbq-modal-content-text-color: var(--kbq-foreground-contrast)}\n"], dependencies: [{ kind: "directive", type: CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i2.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: KbqOverflowShadowContainer, selector: "[kbqOverflowShadowContainer]", inputs: ["debounce"], exportAs: ["kbqOverflowShadowContainer"] }, { kind: "directive", type: KbqOverflowShadowTop, selector: "[kbqOverflowShadowTop]", inputs: ["kbqOverflowShadowTop", "shadow"], exportAs: ["kbqOverflowShadowTop"] }, { kind: "directive", type: KbqOverflowShadowBottom, selector: "[kbqOverflowShadowBottom]", inputs: ["kbqOverflowShadowBottom", "shadow"], exportAs: ["kbqOverflowShadowBottom"] }, { kind: "pipe", type: CssUnitPipe, name: "toCssUnit" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
619
644
  }
620
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqModalComponent, decorators: [{
645
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqModalComponent, decorators: [{
621
646
  type: Component,
622
647
  args: [{ selector: 'kbq-modal', imports: [
623
648
  CdkTrapFocus,
624
- NgStyle,
625
- NgClass,
626
649
  KbqButtonModule,
627
650
  KbqIconModule,
628
651
  CssUnitPipe,
629
- NgTemplateOutlet
630
- ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
652
+ NgTemplateOutlet,
653
+ KbqOverflowShadowContainer,
654
+ KbqOverflowShadowTop,
655
+ KbqOverflowShadowBottom
656
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
631
657
  class: 'kbq-modal',
632
658
  '(keydown)': 'onKeyDown($event)'
633
- }, template: "<!-- Compatible: the <ng-content> can appear only once -->\n<ng-template #tplOriginContent>\n <ng-content />\n</ng-template>\n\n<div>\n @if (kbqMask) {\n <div\n class=\"kbq-modal-mask\"\n [class.kbq-modal-mask-hidden]=\"hidden\"\n [ngClass]=\"maskAnimationClassMap\"\n [ngStyle]=\"kbqMaskStyle\"\n ></div>\n }\n\n <div\n class=\"kbq-modal-wrap {{ kbqWrapClassName }}\"\n tabindex=\"-1\"\n [style.display]=\"hidden ? 'none' : ''\"\n (mousedown)=\"onClickMask($event)\"\n >\n <div\n #modalContainer\n class=\"kbq-modal-container {{ kbqClassName }} kbq-modal_{{ kbqSize }}\"\n [class.kbq-modal_no-footer]=\"!kbqFooter\"\n [ngClass]=\"modalAnimationClassMap\"\n [ngStyle]=\"kbqStyle\"\n [style.transform-origin]=\"transformOrigin\"\n [style.width]=\"kbqWidth | toCssUnit\"\n >\n <div cdkTrapFocus class=\"kbq-modal-content\">\n @switch (true) {\n @case (isModalType('default')) {\n <ng-container [ngTemplateOutlet]=\"tplContentDefault\" />\n }\n @case (isModalType('confirm')) {\n <ng-container [ngTemplateOutlet]=\"tplContentConfirm\" />\n }\n @case (isModalType('custom')) {\n <ng-container [ngTemplateOutlet]=\"tplContentCustom\" />\n }\n }\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #tplContentCustom>\n <ng-container #bodyContainer />\n</ng-template>\n\n<!-- [Predefined] Default Modal Content -->\n<ng-template #tplContentDefault>\n @if (kbqTitle) {\n <div kbq-title class=\"kbq-modal-header\" [class.kbq-modal-body_top-overflow]=\"isTopOverflow\">\n <div class=\"kbq-modal-title\">\n @switch (true) {\n @case (isTemplateRef(kbqTitle)) {\n <ng-container [ngTemplateOutlet]=\"$any(kbqTitle)\" />\n }\n @case (isNonEmptyString(kbqTitle)) {\n <div [innerHTML]=\"kbqTitle\"></div>\n }\n }\n </div>\n @if (kbqClosable) {\n <button\n kbq-button\n type=\"button\"\n class=\"kbq-modal-close kbq-button_transparent\"\n [color]=\"'contrast'\"\n (click)=\"onClickCloseBtn()\"\n >\n <i kbq-icon=\"kbq-xmark_16\" [color]=\"componentColors.Contrast\"></i>\n </button>\n }\n </div>\n }\n <div #modalBody class=\"kbq-modal-body kbq-scrollbar\" [ngStyle]=\"kbqBodyStyle\" (scroll)=\"checkOverflow()\">\n <ng-container #bodyContainer>\n @if (!isComponent(kbqContent)) {\n @switch (true) {\n @case (isTemplateRef(kbqContent)) {\n <ng-container [ngTemplateOutlet]=\"$any(kbqContent)\" />\n }\n @case (isNonEmptyString(kbqContent)) {\n <div [innerHTML]=\"kbqContent\"></div>\n }\n @default {\n <ng-container [ngTemplateOutlet]=\"tplOriginContent\" />\n }\n }\n }\n </ng-container>\n </div>\n @if (kbqFooter || kbqOkText || kbqCancelText) {\n <div class=\"kbq-modal-footer\" [class.kbq-modal-body_bottom-overflow]=\"isBottomOverflow\">\n @switch (true) {\n @case (isTemplateRef(kbqFooter)) {\n <ng-container [ngTemplateOutlet]=\"$any(kbqFooter)\" />\n }\n @case (isNonEmptyString(kbqFooter)) {\n <div [innerHTML]=\"kbqFooter\"></div>\n }\n @case (isModalButtons(kbqFooter)) {\n @for (button of $any(kbqFooter); track button) {\n @if (getButtonCallableProp(button, 'show')) {\n <button\n kbq-button\n [attr.autofocus]=\"button.autoFocus\"\n [attr.kbq-modal-main-action]=\"button.kbqModalMainAction\"\n [class.kbq-progress]=\"getButtonCallableProp(button, 'loading')\"\n [color]=\"button.type\"\n [disabled]=\"getButtonCallableProp(button, 'disabled')\"\n (click)=\"onButtonClick(button)\"\n >\n {{ button.label }}\n </button>\n }\n }\n }\n @default {\n @if (kbqOkText) {\n <button\n kbq-button\n [attr.autofocus]=\"true\"\n [color]=\"componentColors.Contrast\"\n (click)=\"onClickOkCancel('ok')\"\n >\n {{ okText }}\n </button>\n }\n @if (kbqCancelText) {\n <button kbq-button (click)=\"onClickOkCancel('cancel')\">\n {{ cancelText }}\n </button>\n }\n }\n }\n </div>\n }\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 @if (!isComponent(kbqContent)) {\n @switch (true) {\n @case (isTemplateRef(kbqContent)) {\n <ng-container [ngTemplateOutlet]=\"$any(kbqContent)\" />\n }\n @case (isNonEmptyString(kbqContent)) {\n <div [innerHTML]=\"kbqContent\"></div>\n }\n @default {\n <ng-container [ngTemplateOutlet]=\"tplOriginContent\" />\n }\n }\n }\n </ng-container>\n </div>\n @if (kbqOkText || kbqCancelText) {\n <div class=\"kbq-confirm-footer\">\n @if (kbqOkText) {\n <button kbq-button [attr.autofocus]=\"true\" [color]=\"kbqOkType\" (click)=\"onClickOkCancel('ok')\">\n {{ okText }}\n </button>\n }\n @if (kbqCancelText) {\n <button kbq-button (click)=\"onClickOkCancel('cancel')\">\n {{ cancelText }}\n </button>\n }\n </div>\n }\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)}@keyframes mcFadeIn{0%{opacity:0}to{opacity:1}}@keyframes mcFadeOut{0%{opacity:1}to{opacity:0}}@keyframes mcZoomIn{0%{opacity:0;transform:translateY(-25%)}to{opacity:1;transform:scale(1)}}@keyframes mcZoomOut{0%{transform:scale(1)}to{opacity:0;transform:translateY(-30%)}}.fade-enter,.fade-appear,.fade-leave{animation-duration:.3s;animation-fill-mode:both;animation-play-state:paused}.fade-enter.fade-enter-active,.fade-appear.fade-appear-active{animation-name:mcFadeIn;animation-play-state:running}.fade-leave.fade-leave-active{animation-name:mcFadeOut;animation-play-state:running;pointer-events:none}.className-enter,.className-appear{opacity:0;animation-timing-function:ease-out}.className-leave{animation-timing-function:ease-out}.zoom-enter,.zoom-appear,.zoom-leave{animation-duration:.3s;animation-fill-mode:both;animation-play-state:paused}.zoom-enter.zoom-enter-active,.zoom-appear.zoom-appear-active{animation-name:mcZoomIn;animation-play-state:running}.zoom-leave.zoom-leave-active{animation-name:mcZoomOut;animation-play-state:running;pointer-events:none}.className-enter,.className-appear{transform:translateY(-25%);animation-timing-function:cubic-bezier(.075,.82,.165,1)}.className-leave{transform:translate(0);animation-timing-function:cubic-bezier(.785,.135,.15,.86)}.kbq-modal-container{box-sizing:border-box;position:relative;top:var(--kbq-size-5xl);border-radius:var(--kbq-modal-size-border-radius);width:auto;margin:0 auto;list-style:none}.kbq-modal-container.zoom-enter,.kbq-modal-container.zoom-appear{animation-duration:.3s;transform:none;opacity:0}.kbq-modal-container.kbq-modal_small{width:var(--kbq-modal-size-small-width)}.kbq-modal-container.kbq-modal_medium{width:var(--kbq-modal-size-medium-width)}.kbq-modal-container.kbq-modal_large{width:var(--kbq-modal-size-large-width)}.kbq-modal-container .kbq-modal-close{position:absolute;top:var(--kbq-size-l);right:var(--kbq-size-l)}.kbq-modal-wrap{position:fixed;inset:0;overflow:auto;-webkit-overflow-scrolling:touch;outline:0}.kbq-modal-content{position:relative;border-radius:var(--kbq-modal-size-border-radius);background-clip:padding-box}.kbq-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--kbq-modal-size-header-padding-vertical) var(--kbq-modal-size-header-padding-right) var(--kbq-modal-size-header-padding-vertical) var(--kbq-modal-size-header-padding-left)}.kbq-modal-header+.kbq-modal-body{padding-top:var(--kbq-modal-size-content-padding-top)}.kbq-modal-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;padding-top:var(--kbq-size-3xs);padding-bottom:var(--kbq-size-3xs)}.kbq-modal-body{display:block;overflow-y:auto;max-height:calc(100vh - 260px);padding:var(--kbq-modal-size-content-padding-top-without-header) var(--kbq-modal-size-content-padding-horizontal) var(--kbq-modal-size-content-padding-bottom) var(--kbq-modal-size-content-padding-horizontal);overflow-wrap:break-word}.kbq-modal-body>*{position:relative}.kbq-modal-footer,.kbq-confirm-footer{display:flex;align-items:center;padding:var(--kbq-modal-size-footer-padding-vertical) var(--kbq-modal-size-footer-padding-horizontal);gap:var(--kbq-modal-size-footer-content-gap-horizontal)}.kbq-modal-mask{position:fixed;inset:0;height:100%}.kbq-modal-mask.kbq-modal-mask-hidden{display:none}.kbq-modal-open{overflow:hidden}.kbq-modal-container{background:var(--kbq-modal-container-background);box-shadow:var(--kbq-modal-container-shadow)}.kbq-modal-container .kbq-modal-header .kbq-modal-title{color:var(--kbq-modal-header-text-color)}.kbq-modal-container .kbq-modal-header .kbq-modal-close{color:var(--kbq-modal-close-button-color)}.kbq-modal-container .kbq-modal-content{color:var(--kbq-modal-content-text-color)}.kbq-modal-container .kbq-modal-header.kbq-modal-body_top-overflow{box-shadow:var(--kbq-shadow-overflow-normal-bottom)}.kbq-modal-container .kbq-modal-footer.kbq-modal-body_bottom-overflow{box-shadow:var(--kbq-shadow-overflow-normal-top)}.kbq-modal-mask{background-color:var(--kbq-modal-overlay-background)}.kbq-modal-title{font-size:var(--kbq-typography-title-font-size);font-style:var(--kbq-typography-title-font-style);font-weight:var(--kbq-typography-title-font-weight);line-height:var(--kbq-typography-title-line-height);font-family:var(--kbq-typography-title-font-family);text-transform:var(--kbq-typography-title-text-transform);font-feature-settings:var(--kbq-typography-title-font-feature-settings);letter-spacing:var(--kbq-typography-title-letter-spacing)}.kbq-modal-body{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n", ".kbq-modal{--kbq-modal-size-small-width: 400px;--kbq-modal-size-medium-width: 640px;--kbq-modal-size-large-width: 960px;--kbq-modal-size-border-radius: var(--kbq-size-s);--kbq-modal-size-header-padding-vertical: var(--kbq-size-l);--kbq-modal-size-header-padding-left: var(--kbq-size-xxl);--kbq-modal-size-header-padding-right: var(--kbq-size-6xl);--kbq-modal-size-close-button-margin-left: var(--kbq-size-s);--kbq-modal-size-content-padding-horizontal: var(--kbq-size-xxl);--kbq-modal-size-content-padding-top: 1px;--kbq-modal-size-content-padding-bottom: var(--kbq-size-s);--kbq-modal-size-content-padding-top-without-header: var(--kbq-size-xxl);--kbq-modal-size-content-padding-bottom-without-footer: var(--kbq-size-4xl);--kbq-modal-size-footer-padding-horizontal: var(--kbq-size-xxl);--kbq-modal-size-footer-padding-vertical: var(--kbq-size-xl);--kbq-modal-size-footer-content-gap-horizontal: var(--kbq-size-l);--kbq-modal-overlay-background: var(--kbq-background-overlay);--kbq-modal-container-background: var(--kbq-background-card);--kbq-modal-container-shadow: var(--kbq-shadow-overlay);--kbq-modal-close-button-color: var(--kbq-icon-contrast);--kbq-modal-header-text-color: var(--kbq-foreground-contrast);--kbq-modal-content-text-color: var(--kbq-foreground-contrast)}\n"] }]
634
- }], ctorParameters: () => [{ type: i1.Overlay }, { type: i0.Renderer2 }, { type: i0.ComponentFactoryResolver }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: KbqModalControlService }, { type: i0.ChangeDetectorRef }, { type: i3.FocusMonitor }], propDecorators: { kbqModalType: [{
659
+ }, template: "<!-- Compatible: the <ng-content> can appear only once -->\n<ng-template #tplOriginContent>\n <ng-content />\n</ng-template>\n\n<div>\n @if (kbqMask) {\n <div\n class=\"kbq-modal-mask\"\n [class.kbq-modal-mask-hidden]=\"hidden\"\n [class]=\"maskAnimationClassMap\"\n [style]=\"kbqMaskStyle\"\n ></div>\n }\n\n <div\n class=\"kbq-modal-wrap {{ kbqWrapClassName }}\"\n tabindex=\"-1\"\n [style.display]=\"hidden ? 'none' : ''\"\n (mousedown)=\"onClickMask($event)\"\n >\n <div\n #modalContainer\n [class]=\"getContainerClasses()\"\n [class.kbq-modal_no-footer]=\"!kbqFooter\"\n [style]=\"kbqStyle\"\n [style.transform-origin]=\"transformOrigin\"\n [style.width]=\"kbqWidth | toCssUnit\"\n >\n <div cdkTrapFocus class=\"kbq-modal-content\">\n @switch (true) {\n @case (isModalType('default')) {\n <ng-container [ngTemplateOutlet]=\"tplContentDefault\" />\n }\n @case (isModalType('confirm')) {\n <ng-container [ngTemplateOutlet]=\"tplContentConfirm\" />\n }\n @case (isModalType('custom')) {\n <ng-container [ngTemplateOutlet]=\"tplContentCustom\" />\n }\n }\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #tplContentCustom>\n <ng-container #bodyContainer />\n</ng-template>\n\n<!-- [Predefined] Default Modal Content -->\n<ng-template #tplContentDefault>\n @if (kbqTitle) {\n <div kbq-title class=\"kbq-modal-header\" [kbqOverflowShadowTop]=\"modalBodyOverflow\">\n <div class=\"kbq-modal-title\">\n @switch (true) {\n @case (isTemplateRef(kbqTitle)) {\n <ng-container [ngTemplateOutlet]=\"$any(kbqTitle)\" />\n }\n @case (isNonEmptyString(kbqTitle)) {\n <div [innerHTML]=\"kbqTitle\"></div>\n }\n }\n </div>\n @if (kbqClosable) {\n <button\n kbq-button\n type=\"button\"\n class=\"kbq-modal-close kbq-button_transparent\"\n [color]=\"'contrast'\"\n (click)=\"onClickCloseBtn()\"\n >\n <i kbq-icon=\"kbq-xmark_16\" [color]=\"componentColors.Contrast\"></i>\n </button>\n }\n </div>\n }\n <div\n #modalBodyOverflow=\"kbqOverflowShadowContainer\"\n kbqOverflowShadowContainer\n class=\"kbq-modal-body kbq-scrollbar\"\n [style]=\"kbqBodyStyle\"\n >\n <ng-container #bodyContainer>\n @if (!isComponent(kbqContent)) {\n @switch (true) {\n @case (isTemplateRef(kbqContent)) {\n <ng-container [ngTemplateOutlet]=\"$any(kbqContent)\" />\n }\n @case (isNonEmptyString(kbqContent)) {\n <div [innerHTML]=\"kbqContent\"></div>\n }\n @default {\n <ng-container [ngTemplateOutlet]=\"tplOriginContent\" />\n }\n }\n }\n </ng-container>\n </div>\n @if (kbqFooter || kbqOkText || kbqCancelText) {\n <div class=\"kbq-modal-footer\" [kbqOverflowShadowBottom]=\"modalBodyOverflow\">\n @switch (true) {\n @case (isTemplateRef(kbqFooter)) {\n <ng-container [ngTemplateOutlet]=\"$any(kbqFooter)\" />\n }\n @case (isNonEmptyString(kbqFooter)) {\n <div [innerHTML]=\"kbqFooter\"></div>\n }\n @case (isModalButtons(kbqFooter)) {\n @for (button of $any(kbqFooter); track button) {\n @if (getButtonCallableProp(button, 'show')) {\n <button\n kbq-button\n [attr.autofocus]=\"button.autoFocus\"\n [attr.kbq-modal-main-action]=\"button.kbqModalMainAction\"\n [class.kbq-progress]=\"getButtonCallableProp(button, 'loading')\"\n [color]=\"button.type\"\n [disabled]=\"getButtonCallableProp(button, 'disabled')\"\n (click)=\"onButtonClick(button)\"\n >\n {{ button.label }}\n </button>\n }\n }\n }\n @default {\n @if (kbqOkText) {\n <button\n kbq-button\n [attr.autofocus]=\"true\"\n [color]=\"componentColors.Contrast\"\n (click)=\"onClickOkCancel('ok')\"\n >\n {{ okText }}\n </button>\n }\n @if (kbqCancelText) {\n <button kbq-button (click)=\"onClickOkCancel('cancel')\">\n {{ cancelText }}\n </button>\n }\n }\n }\n </div>\n }\n</ng-template>\n<!-- /[Predefined] Default Modal Content -->\n\n<!-- [Predefined] Confirm Modal Content -->\n<ng-template #tplContentConfirm>\n <div class=\"kbq-modal-body\" [style]=\"kbqBodyStyle\">\n <ng-container #bodyContainer>\n @if (!isComponent(kbqContent)) {\n @switch (true) {\n @case (isTemplateRef(kbqContent)) {\n <ng-container [ngTemplateOutlet]=\"$any(kbqContent)\" />\n }\n @case (isNonEmptyString(kbqContent)) {\n <div [innerHTML]=\"kbqContent\"></div>\n }\n @default {\n <ng-container [ngTemplateOutlet]=\"tplOriginContent\" />\n }\n }\n }\n </ng-container>\n </div>\n @if (kbqOkText || kbqCancelText) {\n <div class=\"kbq-confirm-footer\">\n @if (kbqOkText) {\n <button kbq-button [attr.autofocus]=\"true\" [color]=\"kbqOkType\" (click)=\"onClickOkCancel('ok')\">\n {{ okText }}\n </button>\n }\n @if (kbqCancelText) {\n <button kbq-button (click)=\"onClickOkCancel('cancel')\">\n {{ cancelText }}\n </button>\n }\n </div>\n }\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)}@keyframes mcFadeIn{0%{opacity:0}to{opacity:1}}@keyframes mcFadeOut{0%{opacity:1}to{opacity:0}}@keyframes mcZoomIn{0%{opacity:0;transform:translateY(-25%)}to{opacity:1;transform:scale(1)}}@keyframes mcZoomOut{0%{transform:scale(1)}to{opacity:0;transform:translateY(-30%)}}.fade-enter,.fade-appear,.fade-leave{animation-duration:.3s;animation-fill-mode:both;animation-play-state:paused}.fade-enter.fade-enter-active,.fade-appear.fade-appear-active{animation-name:mcFadeIn;animation-play-state:running}.fade-leave.fade-leave-active{animation-name:mcFadeOut;animation-play-state:running;pointer-events:none}.className-enter,.className-appear{opacity:0;animation-timing-function:ease-out}.className-leave{animation-timing-function:ease-out}.zoom-enter,.zoom-appear,.zoom-leave{animation-duration:.3s;animation-fill-mode:both;animation-play-state:paused}.zoom-enter.zoom-enter-active,.zoom-appear.zoom-appear-active{animation-name:mcZoomIn;animation-play-state:running}.zoom-leave.zoom-leave-active{animation-name:mcZoomOut;animation-play-state:running;pointer-events:none}.className-enter,.className-appear{transform:translateY(-25%);animation-timing-function:cubic-bezier(.075,.82,.165,1)}.className-leave{transform:translate(0);animation-timing-function:cubic-bezier(.785,.135,.15,.86)}.kbq-modal-container{box-sizing:border-box;position:relative;top:var(--kbq-size-5xl);border-radius:var(--kbq-modal-size-border-radius);width:auto;margin:0 auto;list-style:none}.kbq-modal-container.zoom-enter,.kbq-modal-container.zoom-appear{animation-duration:.3s;transform:none;opacity:0}.kbq-modal-container.kbq-modal_small{width:var(--kbq-modal-size-small-width)}.kbq-modal-container.kbq-modal_medium{width:var(--kbq-modal-size-medium-width)}.kbq-modal-container.kbq-modal_large{width:var(--kbq-modal-size-large-width)}.kbq-modal-container .kbq-modal-close{position:absolute;top:var(--kbq-size-l);right:var(--kbq-size-l)}.kbq-modal-wrap{position:fixed;inset:0;overflow:auto;-webkit-overflow-scrolling:touch;outline:0}.kbq-modal-content{position:relative;border-radius:var(--kbq-modal-size-border-radius);background-clip:padding-box}.kbq-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--kbq-modal-size-header-padding-vertical) var(--kbq-modal-size-header-padding-right) var(--kbq-modal-size-header-padding-vertical) var(--kbq-modal-size-header-padding-left)}.kbq-modal-header+.kbq-modal-body{padding-top:var(--kbq-modal-size-content-padding-top)}.kbq-modal-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;padding-top:var(--kbq-size-3xs);padding-bottom:var(--kbq-size-3xs)}.kbq-modal-body{display:block;overflow-y:auto;max-height:calc(100vh - 260px);padding:var(--kbq-modal-size-content-padding-top-without-header) var(--kbq-modal-size-content-padding-horizontal) var(--kbq-modal-size-content-padding-bottom) var(--kbq-modal-size-content-padding-horizontal);overflow-wrap:break-word}.kbq-modal-body>*{position:relative}.kbq-modal-footer,.kbq-confirm-footer{display:flex;align-items:center;padding:var(--kbq-modal-size-footer-padding-vertical) var(--kbq-modal-size-footer-padding-horizontal);gap:var(--kbq-modal-size-footer-content-gap-horizontal)}.kbq-modal-mask{position:fixed;inset:0;height:100%}.kbq-modal-mask.kbq-modal-mask-hidden{display:none}.kbq-modal-open{overflow:hidden}.kbq-modal-container{background:var(--kbq-modal-container-background);box-shadow:var(--kbq-modal-container-shadow)}.kbq-modal-container .kbq-modal-header .kbq-modal-title{color:var(--kbq-modal-header-text-color)}.kbq-modal-container .kbq-modal-header .kbq-modal-close{color:var(--kbq-modal-close-button-color)}.kbq-modal-container .kbq-modal-content{color:var(--kbq-modal-content-text-color)}.kbq-modal-mask{background-color:var(--kbq-modal-overlay-background)}.kbq-modal-title{font-size:var(--kbq-typography-title-font-size);font-style:var(--kbq-typography-title-font-style);font-weight:var(--kbq-typography-title-font-weight);line-height:var(--kbq-typography-title-line-height);font-family:var(--kbq-typography-title-font-family);text-transform:var(--kbq-typography-title-text-transform);font-feature-settings:var(--kbq-typography-title-font-feature-settings);letter-spacing:var(--kbq-typography-title-letter-spacing)}.kbq-modal-body{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n", ".kbq-modal{--kbq-modal-size-small-width: 400px;--kbq-modal-size-medium-width: 640px;--kbq-modal-size-large-width: 960px;--kbq-modal-size-border-radius: var(--kbq-size-s);--kbq-modal-size-header-padding-vertical: var(--kbq-size-l);--kbq-modal-size-header-padding-left: var(--kbq-size-xxl);--kbq-modal-size-header-padding-right: var(--kbq-size-6xl);--kbq-modal-size-close-button-margin-left: var(--kbq-size-s);--kbq-modal-size-content-padding-horizontal: var(--kbq-size-xxl);--kbq-modal-size-content-padding-top: 1px;--kbq-modal-size-content-padding-bottom: var(--kbq-size-s);--kbq-modal-size-content-padding-top-without-header: var(--kbq-size-xxl);--kbq-modal-size-content-padding-bottom-without-footer: var(--kbq-size-4xl);--kbq-modal-size-footer-padding-horizontal: var(--kbq-size-xxl);--kbq-modal-size-footer-padding-vertical: var(--kbq-size-xl);--kbq-modal-size-footer-content-gap-horizontal: var(--kbq-size-l);--kbq-modal-overlay-background: var(--kbq-background-overlay);--kbq-modal-container-background: var(--kbq-background-card);--kbq-modal-container-shadow: var(--kbq-shadow-overlay);--kbq-modal-close-button-color: var(--kbq-icon-contrast);--kbq-modal-header-text-color: var(--kbq-foreground-contrast);--kbq-modal-content-text-color: var(--kbq-foreground-contrast)}\n"] }]
660
+ }], propDecorators: { kbqModalType: [{
635
661
  type: Input
636
662
  }], kbqComponent: [{
637
663
  type: Input
638
664
  }], kbqContent: [{
639
665
  type: Input
640
- }], kbqComponentParams: [{
641
- type: Input
642
666
  }], kbqFooter: [{
643
667
  type: Input
644
668
  }], kbqVisible: [{
645
669
  type: Input
646
- }], kbqVisibleChange: [{
647
- type: Output
648
- }], kbqWidth: [{
670
+ }], kbqVisibleChange: [{ type: i0.Output, args: ["kbqVisibleChange"] }], kbqWidth: [{
649
671
  type: Input
650
672
  }], kbqSize: [{
651
673
  type: Input
@@ -695,19 +717,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
695
717
  type: Input
696
718
  }, {
697
719
  type: Output
698
- }], modalContainer: [{
699
- type: ViewChild,
700
- args: ['modalContainer', { static: true }]
701
- }], bodyContainer: [{
702
- type: ViewChild,
703
- args: ['bodyContainer', { read: ViewContainerRef, static: false }]
704
- }], autoFocusedButtons: [{
705
- type: ViewChildren,
706
- args: ['autoFocusedButton', { read: ElementRef }]
707
- }], modalBody: [{
708
- type: ViewChild,
709
- args: ['modalBody']
710
- }], kbqGetContainer: [{
720
+ }], modalContainer: [{ type: i0.ViewChild, args: ['modalContainer', { isSignal: true }] }], bodyContainer: [{ type: i0.ViewChild, args: ['bodyContainer', { ...{ read: ViewContainerRef }, isSignal: true }] }], autoFocusedButtons: [{ type: i0.ViewChildren, args: ['autoFocusedButton', { ...{ read: ElementRef }, isSignal: true }] }], kbqGetContainer: [{
711
721
  type: Input
712
722
  }] } });
713
723
  function isPromise(obj) {
@@ -718,11 +728,11 @@ function isPromise(obj) {
718
728
  }
719
729
 
720
730
  class KbqModalTitle {
721
- constructor(modal) {
722
- this.modal = modal;
731
+ constructor() {
732
+ this.modal = inject(KbqModalComponent);
723
733
  }
724
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqModalTitle, deps: [{ token: KbqModalComponent }], target: i0.ɵɵFactoryTarget.Component }); }
725
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.21", type: KbqModalTitle, isStandalone: true, selector: "[kbq-modal-title], kbq-modal-title, [kbqModalTitle]", host: { properties: { "class.kbq-modal-header_closable": "modal.kbqClosable" }, classAttribute: "kbq-modal-header" }, ngImport: i0, template: `
734
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqModalTitle, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
735
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: KbqModalTitle, isStandalone: true, selector: "[kbq-modal-title], kbq-modal-title, [kbqModalTitle]", host: { properties: { "class.kbq-modal-header_closable": "modal.kbqClosable" }, classAttribute: "kbq-modal-header" }, ngImport: i0, template: `
726
736
  <div class="kbq-modal-title" kbq-title>
727
737
  <ng-content />
728
738
  </div>
@@ -738,9 +748,9 @@ class KbqModalTitle {
738
748
  <i kbq-icon="kbq-xmark_16" [color]="modal.componentColors.Contrast"></i>
739
749
  </button>
740
750
  }
741
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i5.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i4.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i4.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "directive", type: KbqTitleDirective, selector: "[kbq-title]", exportAs: ["kbqTitle"] }] }); }
751
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i2.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "directive", type: KbqTitleDirective, selector: "[kbq-title]", exportAs: ["kbqTitle"] }] }); }
742
752
  }
743
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqModalTitle, decorators: [{
753
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqModalTitle, decorators: [{
744
754
  type: Component,
745
755
  args: [{
746
756
  selector: `[kbq-modal-title], kbq-modal-title, [kbqModalTitle]`,
@@ -771,12 +781,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
771
781
  '[class.kbq-modal-header_closable]': 'modal.kbqClosable'
772
782
  }
773
783
  }]
774
- }], ctorParameters: () => [{ type: KbqModalComponent }] });
784
+ }] });
775
785
  class KbqModalBody {
776
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqModalBody, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
777
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.21", type: KbqModalBody, isStandalone: true, selector: "[kbq-modal-body], kbq-modal-body, [kbqModalBody]", host: { classAttribute: "kbq-modal-body" }, ngImport: i0 }); }
786
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqModalBody, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
787
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: KbqModalBody, isStandalone: true, selector: "[kbq-modal-body], kbq-modal-body, [kbqModalBody]", host: { classAttribute: "kbq-modal-body" }, ngImport: i0 }); }
778
788
  }
779
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqModalBody, decorators: [{
789
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqModalBody, decorators: [{
780
790
  type: Directive,
781
791
  args: [{
782
792
  selector: `[kbq-modal-body], kbq-modal-body, [kbqModalBody]`,
@@ -786,10 +796,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
786
796
  }]
787
797
  }] });
788
798
  class KbqModalFooter {
789
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqModalFooter, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
790
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.21", type: KbqModalFooter, isStandalone: true, selector: "[kbq-modal-footer], kbq-modal-footer, [kbqModalFooter]", host: { classAttribute: "kbq-modal-footer" }, ngImport: i0 }); }
799
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqModalFooter, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
800
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: KbqModalFooter, isStandalone: true, selector: "[kbq-modal-footer], kbq-modal-footer, [kbqModalFooter]", host: { classAttribute: "kbq-modal-footer" }, ngImport: i0 }); }
791
801
  }
792
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqModalFooter, decorators: [{
802
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqModalFooter, decorators: [{
793
803
  type: Directive,
794
804
  args: [{
795
805
  selector: `[kbq-modal-footer], kbq-modal-footer, [kbqModalFooter]`,
@@ -799,10 +809,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
799
809
  }]
800
810
  }] });
801
811
  class KbqModalMainAction {
802
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqModalMainAction, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
803
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.21", type: KbqModalMainAction, isStandalone: true, selector: "[kbq-modal-main-action]", ngImport: i0 }); }
812
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqModalMainAction, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
813
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: KbqModalMainAction, isStandalone: true, selector: "[kbq-modal-main-action]", ngImport: i0 }); }
804
814
  }
805
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqModalMainAction, decorators: [{
815
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqModalMainAction, decorators: [{
806
816
  type: Directive,
807
817
  args: [{
808
818
  selector: `[kbq-modal-main-action]`
@@ -855,6 +865,11 @@ class ModalBuilderForService {
855
865
  }
856
866
  }
857
867
  class KbqModalService {
868
+ constructor() {
869
+ this.overlay = inject(Overlay);
870
+ this.modalControl = inject(KbqModalControlService);
871
+ this.injector = inject(Injector);
872
+ }
858
873
  // Track of the current close modals (we assume invisible is close this time)
859
874
  get openModals() {
860
875
  return this.modalControl.openModals;
@@ -862,11 +877,6 @@ class KbqModalService {
862
877
  get afterAllClose() {
863
878
  return this.modalControl.afterAllClose.asObservable();
864
879
  }
865
- constructor(overlay, modalControl, injector) {
866
- this.overlay = overlay;
867
- this.modalControl = modalControl;
868
- this.injector = injector;
869
- }
870
880
  // Closes all of the currently-open dialogs
871
881
  closeAll() {
872
882
  this.modalControl.closeAll();
@@ -925,24 +935,22 @@ class KbqModalService {
925
935
  delete(options = {}) {
926
936
  return this.confirm(options, 'warn');
927
937
  }
928
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqModalService, deps: [{ token: i1.Overlay }, { token: KbqModalControlService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
929
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqModalService, providedIn: 'root' }); }
938
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqModalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
939
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqModalService, providedIn: 'root' }); }
930
940
  }
931
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqModalService, decorators: [{
941
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqModalService, decorators: [{
932
942
  type: Injectable,
933
943
  args: [{ providedIn: 'root' }]
934
- }], ctorParameters: () => [{ type: i1.Overlay }, { type: KbqModalControlService }, { type: i0.Injector }] });
944
+ }] });
935
945
 
936
946
  class KbqModalModule {
937
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
938
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: KbqModalModule, imports: [OverlayModule,
947
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
948
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqModalModule, imports: [OverlayModule,
939
949
  A11yModule,
940
950
  KbqButtonModule,
941
951
  KbqIconModule,
942
952
  KbqTitleModule,
943
953
  NgTemplateOutlet,
944
- NgStyle,
945
- NgClass,
946
954
  KbqModalComponent,
947
955
  KbqModalTitle,
948
956
  KbqModalBody,
@@ -953,7 +961,7 @@ class KbqModalModule {
953
961
  KbqModalBody,
954
962
  KbqModalFooter,
955
963
  KbqModalMainAction] }); }
956
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqModalModule, providers: [
964
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqModalModule, providers: [
957
965
  KbqModalControlService,
958
966
  KbqModalService,
959
967
  { provide: FocusTrapFactory, useClass: ConfigurableFocusTrapFactory }
@@ -965,7 +973,7 @@ class KbqModalModule {
965
973
  KbqModalComponent,
966
974
  KbqModalTitle] }); }
967
975
  }
968
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqModalModule, decorators: [{
976
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqModalModule, decorators: [{
969
977
  type: NgModule,
970
978
  args: [{
971
979
  imports: [
@@ -975,8 +983,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
975
983
  KbqIconModule,
976
984
  KbqTitleModule,
977
985
  NgTemplateOutlet,
978
- NgStyle,
979
- NgClass,
980
986
  KbqModalComponent,
981
987
  KbqModalTitle,
982
988
  KbqModalBody,
@@ -984,17 +990,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
984
990
  CssUnitPipe,
985
991
  KbqModalMainAction
986
992
  ],
993
+ providers: [
994
+ KbqModalControlService,
995
+ KbqModalService,
996
+ { provide: FocusTrapFactory, useClass: ConfigurableFocusTrapFactory }
997
+ ],
987
998
  exports: [
988
999
  KbqModalComponent,
989
1000
  KbqModalTitle,
990
1001
  KbqModalBody,
991
1002
  KbqModalFooter,
992
1003
  KbqModalMainAction
993
- ],
994
- providers: [
995
- KbqModalControlService,
996
- KbqModalService,
997
- { provide: FocusTrapFactory, useClass: ConfigurableFocusTrapFactory }
998
1004
  ]
999
1005
  }]
1000
1006
  }] });