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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (377) hide show
  1. package/autocomplete/_autocomplete-theme.scss +3 -10
  2. package/autocomplete/autocomplete.scss +0 -5
  3. package/badge/_badge-theme.scss +17 -8
  4. package/badge/badge.component.d.ts +20 -1
  5. package/badge/badge.component.scss +28 -0
  6. package/badge/badge.module.d.ts +1 -1
  7. package/button/_button-base.scss +1 -1
  8. package/button/_button-theme.scss +23 -38
  9. package/checkbox/_checkbox-theme.scss +9 -6
  10. package/checkbox/checkbox.scss +6 -8
  11. package/code-block/_code-block-theme.scss +43 -12
  12. package/code-block/actionbar.component.scss +34 -6
  13. package/code-block/code-block.component.d.ts +2 -2
  14. package/code-block/code-block.scss +101 -27
  15. package/core/common-behaviors/index.d.ts +2 -0
  16. package/core/locales/index.d.ts +0 -2
  17. package/core/option/_option-action-theme.scss +1 -1
  18. package/core/option/_option-theme.scss +5 -5
  19. package/core/option/action.scss +1 -1
  20. package/core/pop-up/pop-up.d.ts +7 -0
  21. package/core/selection/pseudo-checkbox/pseudo-checkbox.scss +4 -15
  22. package/core/styles/_koobiq-theme.scss +2 -0
  23. package/core/styles/_variables.scss +1 -1
  24. package/core/styles/common/_select.scss +2 -1
  25. package/core/styles/theming/_components-theming.scss +116 -49
  26. package/core/styles/theming/_scrollbars-theme.scss +7 -2
  27. package/core/styles/theming/_theming.scss +200 -28
  28. package/core/styles/typography/_typography.scss +180 -5
  29. package/dropdown/_dropdown-theme.scss +1 -2
  30. package/esm2022/alert/alert.component.mjs +12 -12
  31. package/esm2022/alert/alert.module.mjs +4 -4
  32. package/esm2022/autocomplete/autocomplete-origin.directive.mjs +4 -4
  33. package/esm2022/autocomplete/autocomplete-trigger.directive.mjs +6 -6
  34. package/esm2022/autocomplete/autocomplete.component.mjs +8 -8
  35. package/esm2022/autocomplete/autocomplete.module.mjs +4 -4
  36. package/esm2022/badge/badge.component.mjs +71 -10
  37. package/esm2022/badge/badge.module.mjs +14 -10
  38. package/esm2022/button/button.component.mjs +16 -13
  39. package/esm2022/button/button.module.mjs +4 -4
  40. package/esm2022/button-toggle/button-toggle.component.mjs +12 -12
  41. package/esm2022/button-toggle/button-toggle.module.mjs +4 -4
  42. package/esm2022/card/card.component.mjs +5 -5
  43. package/esm2022/card/card.module.mjs +4 -4
  44. package/esm2022/checkbox/checkbox-module.mjs +4 -4
  45. package/esm2022/checkbox/checkbox-required-validator.mjs +3 -3
  46. package/esm2022/checkbox/checkbox.mjs +7 -7
  47. package/esm2022/code-block/actionbar.component.mjs +5 -5
  48. package/esm2022/code-block/code-block.component.mjs +14 -12
  49. package/esm2022/code-block/code-block.module.mjs +8 -8
  50. package/esm2022/core/common-behaviors/color.mjs +1 -1
  51. package/esm2022/core/common-behaviors/common-module.mjs +7 -7
  52. package/esm2022/core/common-behaviors/error-state.mjs +1 -1
  53. package/esm2022/core/common-behaviors/index.mjs +3 -1
  54. package/esm2022/core/error/error-options.mjs +6 -6
  55. package/esm2022/core/formatters/date/formatter.mjs +5 -5
  56. package/esm2022/core/formatters/date/formatter.pipe.mjs +52 -52
  57. package/esm2022/core/formatters/index.mjs +7 -6
  58. package/esm2022/core/formatters/number/formatter.mjs +19 -19
  59. package/esm2022/core/forms/forms-module.mjs +4 -4
  60. package/esm2022/core/forms/forms.directive.mjs +8 -8
  61. package/esm2022/core/highlight/highlight.pipe.mjs +5 -5
  62. package/esm2022/core/highlight/index.mjs +4 -4
  63. package/esm2022/core/line/line.mjs +8 -8
  64. package/esm2022/core/locales/index.mjs +1 -3
  65. package/esm2022/core/locales/locale-service.mjs +5 -5
  66. package/esm2022/core/locales/locale-service.module.mjs +4 -4
  67. package/esm2022/core/option/action.mjs +9 -8
  68. package/esm2022/core/option/optgroup.mjs +4 -4
  69. package/esm2022/core/option/option-module.mjs +4 -4
  70. package/esm2022/core/option/option.mjs +8 -8
  71. package/esm2022/core/overlay/overlay-position-map.mjs +1 -1
  72. package/esm2022/core/pop-up/pop-up-trigger.mjs +6 -6
  73. package/esm2022/core/pop-up/pop-up.mjs +12 -5
  74. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +6 -6
  75. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.module.mjs +4 -4
  76. package/esm2022/core/services/measure-scrollbar.service.mjs +6 -6
  77. package/esm2022/core/services/theme.service.mjs +5 -5
  78. package/esm2022/core/utils/data-size/data-size.pipe.mjs +7 -7
  79. package/esm2022/core/utils/data-size/size.mjs +1 -1
  80. package/esm2022/core/version.mjs +2 -2
  81. package/esm2022/datepicker/calendar-body.component.mjs +4 -4
  82. package/esm2022/datepicker/calendar-header.component.mjs +5 -5
  83. package/esm2022/datepicker/calendar.component.mjs +6 -6
  84. package/esm2022/datepicker/datepicker-animations.mjs +1 -1
  85. package/esm2022/datepicker/datepicker-input.directive.mjs +6 -6
  86. package/esm2022/datepicker/datepicker-intl.mjs +3 -3
  87. package/esm2022/datepicker/datepicker-module.mjs +4 -4
  88. package/esm2022/datepicker/datepicker-toggle.component.mjs +8 -8
  89. package/esm2022/datepicker/datepicker.component.mjs +10 -10
  90. package/esm2022/datepicker/month-view.component.mjs +6 -6
  91. package/esm2022/divider/divider.component.mjs +3 -3
  92. package/esm2022/divider/divider.module.mjs +4 -4
  93. package/esm2022/dl/dl.component.mjs +11 -11
  94. package/esm2022/dl/dl.module.mjs +4 -4
  95. package/esm2022/dropdown/dropdown-content.directive.mjs +6 -6
  96. package/esm2022/dropdown/dropdown-item.component.mjs +9 -8
  97. package/esm2022/dropdown/dropdown-trigger.directive.mjs +6 -6
  98. package/esm2022/dropdown/dropdown.component.mjs +6 -6
  99. package/esm2022/dropdown/dropdown.module.mjs +4 -4
  100. package/esm2022/ellipsis-center/ellipsis-center.directive.mjs +10 -10
  101. package/esm2022/file-upload/file-drop.mjs +43 -6
  102. package/esm2022/file-upload/file-upload.mjs +1 -1
  103. package/esm2022/file-upload/file-upload.module.mjs +4 -4
  104. package/esm2022/file-upload/multiple-file-upload.component.mjs +7 -7
  105. package/esm2022/file-upload/single-file-upload.component.mjs +7 -7
  106. package/esm2022/form-field/cleaner.mjs +3 -3
  107. package/esm2022/form-field/form-field.mjs +21 -15
  108. package/esm2022/form-field/form-field.module.mjs +4 -4
  109. package/esm2022/form-field/hint.mjs +32 -10
  110. package/esm2022/form-field/password-hint.mjs +24 -21
  111. package/esm2022/form-field/password-toggle.mjs +6 -6
  112. package/esm2022/form-field/prefix.mjs +3 -3
  113. package/esm2022/form-field/stepper.mjs +4 -4
  114. package/esm2022/form-field/suffix.mjs +3 -3
  115. package/esm2022/form-field/validate.directive.mjs +17 -12
  116. package/esm2022/icon/icon-button.component.mjs +69 -0
  117. package/esm2022/icon/icon-item.component.mjs +28 -0
  118. package/esm2022/icon/icon.component.mjs +20 -93
  119. package/esm2022/icon/icon.module.mjs +8 -6
  120. package/esm2022/icon/public-api.mjs +3 -1
  121. package/esm2022/input/input-number-validators.mjs +7 -7
  122. package/esm2022/input/input-number.mjs +12 -9
  123. package/esm2022/input/input-password.mjs +6 -6
  124. package/esm2022/input/input.mjs +9 -9
  125. package/esm2022/input/input.module.mjs +4 -4
  126. package/esm2022/link/link.component.mjs +16 -5
  127. package/esm2022/link/link.module.mjs +4 -4
  128. package/esm2022/list/list-selection.component.mjs +16 -16
  129. package/esm2022/list/list.component.mjs +9 -9
  130. package/esm2022/list/list.module.mjs +4 -4
  131. package/esm2022/loader-overlay/loader-overlay.component.mjs +15 -15
  132. package/esm2022/loader-overlay/loader-overlay.module.mjs +4 -4
  133. package/esm2022/markdown/markdown.component.mjs +5 -5
  134. package/esm2022/markdown/markdown.module.mjs +4 -4
  135. package/esm2022/markdown/markdown.service.mjs +3 -3
  136. package/esm2022/modal/css-unit.pipe.mjs +3 -3
  137. package/esm2022/modal/modal-control.service.mjs +6 -6
  138. package/esm2022/modal/modal.component.mjs +22 -13
  139. package/esm2022/modal/modal.directive.mjs +12 -12
  140. package/esm2022/modal/modal.module.mjs +4 -4
  141. package/esm2022/modal/modal.service.mjs +5 -5
  142. package/esm2022/navbar/navbar-item.component.mjs +61 -52
  143. package/esm2022/navbar/navbar.component.mjs +28 -17
  144. package/esm2022/navbar/navbar.module.mjs +4 -4
  145. package/esm2022/navbar/vertical-navbar.component.mjs +9 -8
  146. package/esm2022/popover/popover-confirm.component.mjs +11 -13
  147. package/esm2022/popover/popover.component.mjs +16 -11
  148. package/esm2022/popover/popover.module.mjs +4 -4
  149. package/esm2022/progress-bar/progress-bar.component.mjs +11 -11
  150. package/esm2022/progress-bar/progress-bar.module.mjs +4 -4
  151. package/esm2022/progress-spinner/progress-spinner.component.mjs +12 -12
  152. package/esm2022/progress-spinner/progress-spinner.module.mjs +4 -4
  153. package/esm2022/radio/radio.component.mjs +10 -10
  154. package/esm2022/radio/radio.module.mjs +4 -4
  155. package/esm2022/risk-level/risk-level.component.mjs +3 -3
  156. package/esm2022/risk-level/risk-level.module.mjs +4 -4
  157. package/esm2022/select/select-option.directive.mjs +6 -6
  158. package/esm2022/select/select.component.mjs +30 -26
  159. package/esm2022/select/select.module.mjs +4 -4
  160. package/esm2022/sidebar/sidebar.component.mjs +11 -11
  161. package/esm2022/sidebar/sidebar.module.mjs +4 -4
  162. package/esm2022/sidepanel/sidepanel-container.component.mjs +7 -7
  163. package/esm2022/sidepanel/sidepanel-directives.mjs +18 -18
  164. package/esm2022/sidepanel/sidepanel-ref.mjs +1 -1
  165. package/esm2022/sidepanel/sidepanel.module.mjs +4 -4
  166. package/esm2022/sidepanel/sidepanel.service.mjs +6 -6
  167. package/esm2022/splitter/splitter.component.mjs +17 -17
  168. package/esm2022/splitter/splitter.module.mjs +4 -4
  169. package/esm2022/table/table.component.mjs +3 -3
  170. package/esm2022/table/table.module.mjs +4 -4
  171. package/esm2022/tabs/paginated-tab-header.mjs +6 -6
  172. package/esm2022/tabs/tab-body.component.mjs +11 -11
  173. package/esm2022/tabs/tab-content.directive.mjs +4 -4
  174. package/esm2022/tabs/tab-group.component.mjs +21 -21
  175. package/esm2022/tabs/tab-header.component.mjs +7 -7
  176. package/esm2022/tabs/tab-label-wrapper.directive.mjs +6 -5
  177. package/esm2022/tabs/tab-label.directive.mjs +3 -3
  178. package/esm2022/tabs/tab-nav-bar/tab-nav-bar.mjs +12 -11
  179. package/esm2022/tabs/tab.component.mjs +5 -5
  180. package/esm2022/tabs/tabs.module.mjs +4 -4
  181. package/esm2022/tags/tag-input.mjs +6 -6
  182. package/esm2022/tags/tag-list.component.mjs +9 -8
  183. package/esm2022/tags/tag.component.mjs +16 -16
  184. package/esm2022/tags/tag.module.mjs +4 -4
  185. package/esm2022/textarea/textarea.component.mjs +36 -25
  186. package/esm2022/textarea/textarea.module.mjs +4 -4
  187. package/esm2022/timepicker/timepicker.directive.mjs +6 -6
  188. package/esm2022/timepicker/timepicker.module.mjs +4 -4
  189. package/esm2022/timezone/cities-by-filter.pipe.mjs +3 -3
  190. package/esm2022/timezone/timezone-option.component.mjs +5 -5
  191. package/esm2022/timezone/timezone-option.directive.mjs +5 -5
  192. package/esm2022/timezone/timezone-select.component.mjs +9 -9
  193. package/esm2022/timezone/timezone.module.mjs +4 -4
  194. package/esm2022/timezone/timezone.utils.mjs +1 -1
  195. package/esm2022/timezone/utc-offset.pipe.mjs +3 -3
  196. package/esm2022/title/title.directive.mjs +6 -6
  197. package/esm2022/title/title.module.mjs +4 -4
  198. package/esm2022/toast/toast-animations.mjs +2 -1
  199. package/esm2022/toast/toast-container.component.mjs +22 -8
  200. package/esm2022/toast/toast.component.mjs +16 -10
  201. package/esm2022/toast/toast.module.mjs +4 -4
  202. package/esm2022/toast/toast.service.mjs +7 -6
  203. package/esm2022/toast/toast.type.mjs +1 -1
  204. package/esm2022/toggle/toggle.component.mjs +5 -5
  205. package/esm2022/toggle/toggle.module.mjs +4 -4
  206. package/esm2022/tooltip/tooltip.component.mjs +23 -23
  207. package/esm2022/tooltip/tooltip.module.mjs +4 -4
  208. package/esm2022/tree/control/base-tree-control.mjs +4 -4
  209. package/esm2022/tree/control/flat-tree-control.filters.mjs +47 -0
  210. package/esm2022/tree/control/flat-tree-control.mjs +27 -45
  211. package/esm2022/tree/control/nested-tree-control.mjs +1 -1
  212. package/esm2022/tree/control/tree-control.mjs +1 -1
  213. package/esm2022/tree/data-source/flat-data-source.mjs +1 -1
  214. package/esm2022/tree/node.mjs +5 -5
  215. package/esm2022/tree/outlet.mjs +4 -4
  216. package/esm2022/tree/padding.directive.mjs +6 -6
  217. package/esm2022/tree/public-api.mjs +2 -1
  218. package/esm2022/tree/toggle.mjs +12 -12
  219. package/esm2022/tree/tree-base.mjs +10 -10
  220. package/esm2022/tree/tree-option.component.mjs +12 -8
  221. package/esm2022/tree/tree-selection.component.mjs +6 -6
  222. package/esm2022/tree/tree.mjs +3 -3
  223. package/esm2022/tree/tree.module.mjs +4 -4
  224. package/esm2022/tree-select/tree-select.component.mjs +26 -18
  225. package/esm2022/tree-select/tree-select.module.mjs +9 -9
  226. package/fesm2022/koobiq-components-alert.mjs +16 -16
  227. package/fesm2022/koobiq-components-autocomplete.mjs +20 -20
  228. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  229. package/fesm2022/koobiq-components-badge.mjs +83 -18
  230. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  231. package/fesm2022/koobiq-components-button-toggle.mjs +15 -15
  232. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  233. package/fesm2022/koobiq-components-button.mjs +19 -16
  234. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  235. package/fesm2022/koobiq-components-card.mjs +8 -8
  236. package/fesm2022/koobiq-components-card.mjs.map +1 -1
  237. package/fesm2022/koobiq-components-checkbox.mjs +13 -13
  238. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  239. package/fesm2022/koobiq-components-code-block.mjs +22 -21
  240. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  241. package/fesm2022/koobiq-components-core.mjs +199 -191
  242. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  243. package/fesm2022/koobiq-components-datepicker.mjs +45 -45
  244. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  245. package/fesm2022/koobiq-components-divider.mjs +7 -7
  246. package/fesm2022/koobiq-components-dl.mjs +14 -14
  247. package/fesm2022/koobiq-components-dl.mjs.map +1 -1
  248. package/fesm2022/koobiq-components-dropdown.mjs +27 -26
  249. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  250. package/fesm2022/koobiq-components-ellipsis-center.mjs +9 -9
  251. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
  252. package/fesm2022/koobiq-components-file-upload.mjs +58 -21
  253. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  254. package/fesm2022/koobiq-components-form-field.mjs +109 -74
  255. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  256. package/fesm2022/koobiq-components-icon.mjs +39 -23
  257. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  258. package/fesm2022/koobiq-components-input.mjs +34 -31
  259. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  260. package/fesm2022/koobiq-components-link.mjs +19 -8
  261. package/fesm2022/koobiq-components-link.mjs.map +1 -1
  262. package/fesm2022/koobiq-components-list.mjs +27 -27
  263. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  264. package/fesm2022/koobiq-components-loader-overlay.mjs +18 -18
  265. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  266. package/fesm2022/koobiq-components-markdown.mjs +11 -11
  267. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  268. package/fesm2022/koobiq-components-modal.mjs +49 -40
  269. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  270. package/fesm2022/koobiq-components-navbar.mjs +99 -78
  271. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  272. package/fesm2022/koobiq-components-popover.mjs +30 -26
  273. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  274. package/fesm2022/koobiq-components-progress-bar.mjs +14 -14
  275. package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
  276. package/fesm2022/koobiq-components-progress-spinner.mjs +15 -15
  277. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  278. package/fesm2022/koobiq-components-radio.mjs +13 -13
  279. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  280. package/fesm2022/koobiq-components-risk-level.mjs +7 -7
  281. package/fesm2022/koobiq-components-select.mjs +39 -35
  282. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  283. package/fesm2022/koobiq-components-sidebar.mjs +14 -14
  284. package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
  285. package/fesm2022/koobiq-components-sidepanel.mjs +32 -32
  286. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  287. package/fesm2022/koobiq-components-splitter.mjs +20 -20
  288. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  289. package/fesm2022/koobiq-components-table.mjs +7 -7
  290. package/fesm2022/koobiq-components-tabs.mjs +71 -69
  291. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  292. package/fesm2022/koobiq-components-tags.mjs +32 -31
  293. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  294. package/fesm2022/koobiq-components-textarea.mjs +39 -28
  295. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  296. package/fesm2022/koobiq-components-timepicker.mjs +9 -9
  297. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  298. package/fesm2022/koobiq-components-timezone.mjs +28 -28
  299. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  300. package/fesm2022/koobiq-components-title.mjs +9 -9
  301. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  302. package/fesm2022/koobiq-components-toast.mjs +44 -26
  303. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  304. package/fesm2022/koobiq-components-toggle.mjs +8 -8
  305. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  306. package/fesm2022/koobiq-components-tooltip.mjs +26 -26
  307. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  308. package/fesm2022/koobiq-components-tree-select.mjs +33 -25
  309. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  310. package/fesm2022/koobiq-components-tree.mjs +132 -100
  311. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  312. package/file-upload/_file-upload-theme.scss +10 -1
  313. package/file-upload/file-drop.d.ts +2 -1
  314. package/file-upload/file-upload.d.ts +4 -1
  315. package/file-upload/multiple-file-upload.component.d.ts +2 -2
  316. package/file-upload/single-file-upload.component.d.ts +2 -2
  317. package/form-field/_form-field-theme.scss +8 -14
  318. package/form-field/_hint-theme.scss +5 -1
  319. package/form-field/form-field.d.ts +2 -0
  320. package/form-field/form-field.scss +12 -1
  321. package/form-field/hint.d.ts +4 -1
  322. package/form-field/hint.scss +10 -2
  323. package/form-field/password-hint.d.ts +7 -5
  324. package/icon/_icon-button-theme.scss +129 -0
  325. package/icon/_icon-item-theme.scss +41 -0
  326. package/icon/_icon-theme.scss +1 -222
  327. package/icon/icon-button.component.d.ts +23 -0
  328. package/icon/icon-button.scss +33 -0
  329. package/icon/icon-item.component.d.ts +11 -0
  330. package/icon/icon-item.scss +18 -0
  331. package/icon/icon.component.d.ts +4 -25
  332. package/icon/icon.module.d.ts +6 -4
  333. package/icon/icon.scss +0 -41
  334. package/icon/public-api.d.ts +2 -0
  335. package/input/input-number.d.ts +3 -2
  336. package/link/_link-theme.scss +97 -89
  337. package/link/link.component.d.ts +4 -1
  338. package/list/_list-theme.scss +1 -2
  339. package/list/list.scss +3 -3
  340. package/modal/_modal-confirm.scss +0 -24
  341. package/modal/modal.component.d.ts +3 -0
  342. package/modal/modal.scss +32 -15
  343. package/navbar/_navbar-theme.scss +8 -7
  344. package/navbar/navbar-item.component.d.ts +5 -2
  345. package/navbar/navbar-item.scss +7 -2
  346. package/navbar/navbar.component.d.ts +3 -0
  347. package/package.json +30 -30
  348. package/popover/popover-confirm.component.d.ts +0 -2
  349. package/popover/popover.component.d.ts +6 -1
  350. package/prebuilt-themes/dark-theme.css +1 -1
  351. package/prebuilt-themes/light-theme.css +1 -1
  352. package/progress-spinner/progress-spinner.scss +10 -5
  353. package/select/_select-theme.scss +6 -6
  354. package/select/select.component.d.ts +1 -1
  355. package/select/select.scss +7 -0
  356. package/splitter/_splitter-theme.scss +5 -4
  357. package/tabs/_tabs-common.scss +1 -1
  358. package/tabs/_tabs-theme.scss +2 -2
  359. package/tags/tag-list.scss +4 -0
  360. package/textarea/textarea.component.d.ts +4 -3
  361. package/toast/toast-animations.d.ts +1 -0
  362. package/toast/toast-container.component.d.ts +7 -3
  363. package/toast/toast.component.d.ts +2 -0
  364. package/toast/toast.service.d.ts +2 -0
  365. package/toast/toast.type.d.ts +1 -0
  366. package/tooltip/tooltip.component.d.ts +1 -1
  367. package/tree/_tree-theme.scss +5 -5
  368. package/tree/control/base-tree-control.d.ts +1 -1
  369. package/tree/control/flat-tree-control.d.ts +5 -3
  370. package/tree/control/flat-tree-control.filters.d.ts +26 -0
  371. package/tree/control/tree-control.d.ts +1 -1
  372. package/tree/public-api.d.ts +1 -0
  373. package/tree/tree-option.scss +4 -4
  374. package/tree-select/_tree-select-theme.scss +6 -4
  375. package/tree-select/tree-select.component.d.ts +9 -5
  376. package/tree-select/tree-select.module.d.ts +1 -1
  377. package/form-field/password-hint.scss +0 -11
@@ -1,7 +1,7 @@
1
1
  import * as i1$1 from '@angular/common';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { Component, ViewEncapsulation, Input, forwardRef, ChangeDetectionStrategy, Optional, Inject, ViewChild, Directive, EventEmitter, Output, ContentChild, ContentChildren, Attribute, Self, NgModule } from '@angular/core';
4
+ import { Component, ViewEncapsulation, ChangeDetectionStrategy, Input, forwardRef, Optional, Inject, ViewChild, Directive, EventEmitter, Output, ContentChild, ContentChildren, Attribute, Self, NgModule } from '@angular/core';
5
5
  import * as i1 from '@koobiq/components/icon';
6
6
  import { KbqIconButton, KbqIconModule } from '@koobiq/components/icon';
7
7
  import * as i1$3 from '@angular/cdk/a11y';
@@ -9,7 +9,7 @@ import { coerceBooleanProperty } from '@angular/cdk/coercion';
9
9
  import * as i1$4 from '@angular/forms';
10
10
  import { NgModel, FormControlName, FormControlDirective, RequiredValidator, NG_VALIDATORS } from '@angular/forms';
11
11
  import { F8, ESCAPE } from '@koobiq/cdk/keycodes';
12
- import { mixinColor, KbqComponentColors, KBQ_FORM_FIELD_REF, PopUpTriggers, KBQ_VALIDATION } from '@koobiq/components/core';
12
+ import { mixinColor, KbqComponentColors, toBoolean, KBQ_FORM_FIELD_REF, PopUpTriggers, KBQ_VALIDATION } from '@koobiq/components/core';
13
13
  import { Subject, EMPTY, merge } from 'rxjs';
14
14
  import { startWith, takeUntil } from 'rxjs/operators';
15
15
  import * as i2 from '@angular/cdk/bidi';
@@ -17,10 +17,10 @@ import * as i1$2 from '@angular/cdk/overlay';
17
17
  import { KbqTooltipTrigger, KBQ_TOOLTIP_SCROLL_STRATEGY } from '@koobiq/components/tooltip';
18
18
 
19
19
  class KbqCleaner {
20
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqCleaner, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: KbqCleaner, selector: "kbq-cleaner", host: { classAttribute: "kbq-cleaner" }, exportAs: ["kbqCleaner"], ngImport: i0, template: `<i kbq-icon-button="mc-close-circle_16" [autoColor]="true"></i>`, isInline: true, styles: [".kbq-cleaner{display:flex;align-items:center;justify-content:center;width:var(--kbq-form-field-size-icon-button-size, 24px);margin-right:var(--kbq-form-field-size-icon-button-margin-right, 4px);height:100%;cursor:pointer}\n"], dependencies: [{ kind: "component", type: i1.KbqIconButton, selector: "[kbq-icon-button]", inputs: ["color", "small", "tabindex", "disabled"] }], encapsulation: i0.ViewEncapsulation.None }); }
20
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqCleaner, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.0", type: KbqCleaner, selector: "kbq-cleaner", host: { classAttribute: "kbq-cleaner" }, exportAs: ["kbqCleaner"], ngImport: i0, template: `<i kbq-icon-button="mc-close-circle_16" [autoColor]="true"></i>`, isInline: true, styles: [".kbq-cleaner{display:flex;align-items:center;justify-content:center;width:var(--kbq-form-field-size-icon-button-size, 24px);margin-right:var(--kbq-form-field-size-icon-button-margin-right, 4px);height:100%;cursor:pointer}\n"], dependencies: [{ kind: "component", type: i1.KbqIconButton, selector: "[kbq-icon-button]", inputs: ["color", "small", "tabindex", "disabled"] }], encapsulation: i0.ViewEncapsulation.None }); }
22
22
  }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqCleaner, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqCleaner, decorators: [{
24
24
  type: Component,
25
25
  args: [{ selector: 'kbq-cleaner', exportAs: 'kbqCleaner', template: `<i kbq-icon-button="mc-close-circle_16" [autoColor]="true"></i>`, host: {
26
26
  class: 'kbq-cleaner'
@@ -49,25 +49,47 @@ class KbqHintBase {
49
49
  /** @docs-private */
50
50
  const KbqHintMixinBase = mixinColor(KbqHintBase, KbqComponentColors.Empty);
51
51
  class KbqHint extends KbqHintMixinBase {
52
+ get compact() {
53
+ return this._compact;
54
+ }
55
+ set compact(value) {
56
+ this._compact = toBoolean(value);
57
+ }
52
58
  constructor(elementRef) {
53
59
  super(elementRef);
54
60
  this.id = `kbq-hint-${nextHintUniqueId++}`;
55
61
  this.fillTextOff = false;
62
+ this._compact = false;
56
63
  }
57
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqHint, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
58
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: KbqHint, selector: "kbq-hint", inputs: { color: "color", id: "id", fillTextOff: "fillTextOff" }, host: { properties: { "attr.id": "id", "class.kbq-hint_fill-text-off": "fillTextOff" }, classAttribute: "kbq-hint" }, exportAs: ["kbqHint"], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"[kbq-icon]\"></ng-content>\n\n<span class=\"kbq-hint__text\">\n <ng-content></ng-content>\n</span>\n", styles: [".kbq-hint{display:block}.kbq-hint .kbq-icon{margin-right:var(--kbq-hint-size-content-padding, )}\n"], encapsulation: i0.ViewEncapsulation.None }); }
64
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqHint, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
65
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.0", type: KbqHint, selector: "kbq-hint", inputs: { color: "color", id: "id", fillTextOff: "fillTextOff", compact: "compact" }, host: { properties: { "attr.id": "id", "class.kbq-hint_fill-text-off": "fillTextOff", "class.kbq-hint_compact": "compact" }, classAttribute: "kbq-hint" }, exportAs: ["kbqHint"], usesInheritance: true, ngImport: i0, template: `
66
+ <ng-content select="[kbq-icon]"></ng-content>
67
+
68
+ <span class="kbq-hint__text">
69
+ <ng-content></ng-content>
70
+ </span>
71
+ `, isInline: true, styles: [".kbq-hint{display:flex}.kbq-hint .kbq-icon{margin-right:var(--kbq-hint-size-normal-content-padding, 4px)}.kbq-hint.kbq-hint_compact .kbq-icon{margin-right:var(--kbq-hint-size-compact-content-padding, 2px)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
59
72
  }
60
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqHint, decorators: [{
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqHint, decorators: [{
61
74
  type: Component,
62
- args: [{ selector: 'kbq-hint', exportAs: 'kbqHint', inputs: ['color'], host: {
75
+ args: [{ selector: 'kbq-hint', exportAs: 'kbqHint', template: `
76
+ <ng-content select="[kbq-icon]"></ng-content>
77
+
78
+ <span class="kbq-hint__text">
79
+ <ng-content></ng-content>
80
+ </span>
81
+ `, inputs: ['color'], host: {
63
82
  class: 'kbq-hint',
64
83
  '[attr.id]': 'id',
65
- '[class.kbq-hint_fill-text-off]': 'fillTextOff'
66
- }, encapsulation: ViewEncapsulation.None, template: "<ng-content select=\"[kbq-icon]\"></ng-content>\n\n<span class=\"kbq-hint__text\">\n <ng-content></ng-content>\n</span>\n", styles: [".kbq-hint{display:block}.kbq-hint .kbq-icon{margin-right:var(--kbq-hint-size-content-padding, )}\n"] }]
67
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { id: [{
84
+ '[class.kbq-hint_fill-text-off]': 'fillTextOff',
85
+ '[class.kbq-hint_compact]': 'compact'
86
+ }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".kbq-hint{display:flex}.kbq-hint .kbq-icon{margin-right:var(--kbq-hint-size-normal-content-padding, 4px)}.kbq-hint.kbq-hint_compact .kbq-icon{margin-right:var(--kbq-hint-size-compact-content-padding, 2px)}\n"] }]
87
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { id: [{
68
88
  type: Input
69
89
  }], fillTextOff: [{
70
90
  type: Input
91
+ }], compact: [{
92
+ type: Input
71
93
  }] } });
72
94
 
73
95
  let nextPasswordHintUniqueId = 0;
@@ -89,17 +111,19 @@ const regExpPasswordValidator = {
89
111
  const hasPasswordStrengthError = (passwordHints) => {
90
112
  return passwordHints.some((hint) => hint.hasError);
91
113
  };
92
- class KbqPasswordHint {
114
+ class KbqPasswordHint extends KbqHint {
93
115
  get icon() {
94
116
  return this.checked ? 'mc-check_16' : 'mc-close-M_16';
95
117
  }
96
118
  get control() {
97
119
  return this.formField.control;
98
120
  }
99
- constructor(changeDetectorRef, formField) {
121
+ constructor(elementRef, changeDetectorRef, formField) {
122
+ super(elementRef);
100
123
  this.changeDetectorRef = changeDetectorRef;
101
124
  this.formField = formField;
102
125
  this.id = `kbq-hint-${nextPasswordHintUniqueId++}`;
126
+ this.fillTextOff = true;
103
127
  this.hasError = false;
104
128
  this.checked = false;
105
129
  this.checkValue = () => {
@@ -162,45 +186,43 @@ class KbqPasswordHint {
162
186
  isValueChanged() {
163
187
  return this.lastControlValue !== this.formField.control.value;
164
188
  }
165
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqPasswordHint, deps: [{ token: i0.ChangeDetectorRef }, { token: forwardRef(() => KBQ_FORM_FIELD_REF), optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
166
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: KbqPasswordHint, selector: "kbq-password-hint", inputs: { id: "id", rule: "rule", min: "min", max: "max", regex: "regex", customCheckRule: ["checkRule", "customCheckRule"], viewFormField: "viewFormField" }, host: { properties: { "class.kbq-password-hint_valid": "checked", "class.kbq-password-hint_invalid": "hasError", "attr.id": "id" }, classAttribute: "kbq-password-hint" }, ngImport: i0, template: `
189
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqPasswordHint, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: forwardRef(() => KBQ_FORM_FIELD_REF), optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
190
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.0", type: KbqPasswordHint, selector: "kbq-password-hint", inputs: { id: "id", rule: "rule", min: "min", max: "max", regex: "regex", customCheckRule: ["checkRule", "customCheckRule"], viewFormField: "viewFormField", fillTextOff: "fillTextOff" }, host: { properties: { "attr.id": "id", "class.kbq-success": "checked", "class.kbq-error": "hasError", "class.kbq-hint_fill-text-off": "fillTextOff", "class.kbq-hint_compact": "compact" }, classAttribute: "kbq-hint kbq-password-hint" }, usesInheritance: true, ngImport: i0, template: `
167
191
  <i class="kbq-password-hint__icon"
168
192
  kbq-icon=""
169
- [class.kbq-success]="checked"
170
- [class.kbq-error]="hasError"
171
193
  [ngClass]="icon">
172
194
  </i>
173
195
 
174
- <span class="kbq-password-hint__text">
196
+ <span class="kbq-hint__text">
175
197
  <ng-content></ng-content>
176
198
  </span>
177
- `, isInline: true, styles: [".kbq-password-hint{display:block}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i1.KbqIcon, selector: "[kbq-icon]", inputs: ["color", "small", "autoColor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
199
+ `, isInline: true, styles: [".kbq-hint{display:flex}.kbq-hint .kbq-icon{margin-right:var(--kbq-hint-size-normal-content-padding, 4px)}.kbq-hint.kbq-hint_compact .kbq-icon{margin-right:var(--kbq-hint-size-compact-content-padding, 2px)}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i1.KbqIcon, selector: "[kbq-icon]", inputs: ["color", "small", "autoColor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
178
200
  }
179
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqPasswordHint, decorators: [{
201
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqPasswordHint, decorators: [{
180
202
  type: Component,
181
203
  args: [{ selector: 'kbq-password-hint', template: `
182
204
  <i class="kbq-password-hint__icon"
183
205
  kbq-icon=""
184
- [class.kbq-success]="checked"
185
- [class.kbq-error]="hasError"
186
206
  [ngClass]="icon">
187
207
  </i>
188
208
 
189
- <span class="kbq-password-hint__text">
209
+ <span class="kbq-hint__text">
190
210
  <ng-content></ng-content>
191
211
  </span>
192
212
  `, host: {
193
- class: 'kbq-password-hint',
194
- '[class.kbq-password-hint_valid]': 'checked',
195
- '[class.kbq-password-hint_invalid]': 'hasError',
196
- '[attr.id]': 'id'
197
- }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: [".kbq-password-hint{display:block}\n"] }]
198
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
213
+ '[attr.id]': 'id',
214
+ class: 'kbq-hint kbq-password-hint',
215
+ '[class.kbq-success]': 'checked',
216
+ '[class.kbq-error]': 'hasError',
217
+ '[class.kbq-hint_fill-text-off]': 'fillTextOff',
218
+ '[class.kbq-hint_compact]': 'compact'
219
+ }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: [".kbq-hint{display:flex}.kbq-hint .kbq-icon{margin-right:var(--kbq-hint-size-normal-content-padding, 4px)}.kbq-hint.kbq-hint_compact .kbq-icon{margin-right:var(--kbq-hint-size-compact-content-padding, 2px)}\n"] }]
220
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
199
221
  type: Optional
200
222
  }, {
201
223
  type: Inject,
202
224
  args: [forwardRef(() => KBQ_FORM_FIELD_REF)]
203
- }] }]; }, propDecorators: { id: [{
225
+ }] }], propDecorators: { id: [{
204
226
  type: Input
205
227
  }], rule: [{
206
228
  type: Input
@@ -215,6 +237,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
215
237
  args: ['checkRule']
216
238
  }], viewFormField: [{
217
239
  type: Input
240
+ }], fillTextOff: [{
241
+ type: Input
218
242
  }] } });
219
243
 
220
244
  class KbqPasswordToggle extends KbqTooltipTrigger {
@@ -257,10 +281,10 @@ class KbqPasswordToggle extends KbqTooltipTrigger {
257
281
  this.updateData();
258
282
  event.preventDefault();
259
283
  }
260
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqPasswordToggle, deps: [{ token: i1$2.Overlay }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i1$2.ScrollDispatcher }, { token: i0.ViewContainerRef }, { token: KBQ_TOOLTIP_SCROLL_STRATEGY }, { token: i2.Directionality, optional: true }, { token: forwardRef(() => KBQ_FORM_FIELD_REF) }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
261
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: KbqPasswordToggle, selector: "kbq-password-toggle", inputs: { content: ["kbqTooltipNotHidden", "content"], kbqTooltipHidden: "kbqTooltipHidden" }, host: { listeners: { "click": "toggle($event)", "keydown.ENTER": "toggle($event)", "keydown.SPACE": "toggle($event)" }, properties: { "style.visibility": "visibility" }, classAttribute: "kbq-password-toggle" }, viewQueries: [{ propertyName: "icon", first: true, predicate: KbqIconButton, descendants: true }], exportAs: ["kbqPasswordToggle"], usesInheritance: true, ngImport: i0, template: '<i kbq-icon-button="" [ngClass]="iconClass"></i>', isInline: true, styles: [".kbq-password-toggle{display:flex;align-items:center;justify-content:center;width:var(--kbq-form-field-size-icon-button-size, 24px);margin-right:var(--kbq-form-field-size-icon-button-margin-right, 4px);height:100%}.kbq-password-toggle::-moz-focus-inner{border:0}.kbq-password-toggle:focus{outline:none}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i1.KbqIconButton, selector: "[kbq-icon-button]", inputs: ["color", "small", "tabindex", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
284
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqPasswordToggle, deps: [{ token: i1$2.Overlay }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i1$2.ScrollDispatcher }, { token: i0.ViewContainerRef }, { token: KBQ_TOOLTIP_SCROLL_STRATEGY }, { token: i2.Directionality, optional: true }, { token: forwardRef(() => KBQ_FORM_FIELD_REF) }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
285
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.0", type: KbqPasswordToggle, selector: "kbq-password-toggle", inputs: { content: ["kbqTooltipNotHidden", "content"], kbqTooltipHidden: "kbqTooltipHidden" }, host: { listeners: { "click": "toggle($event)", "keydown.ENTER": "toggle($event)", "keydown.SPACE": "toggle($event)" }, properties: { "style.visibility": "visibility" }, classAttribute: "kbq-password-toggle" }, viewQueries: [{ propertyName: "icon", first: true, predicate: KbqIconButton, descendants: true }], exportAs: ["kbqPasswordToggle"], usesInheritance: true, ngImport: i0, template: '<i kbq-icon-button="" [ngClass]="iconClass"></i>', isInline: true, styles: [".kbq-password-toggle{display:flex;align-items:center;justify-content:center;width:var(--kbq-form-field-size-icon-button-size, 24px);margin-right:var(--kbq-form-field-size-icon-button-margin-right, 4px);height:100%}.kbq-password-toggle::-moz-focus-inner{border:0}.kbq-password-toggle:focus{outline:none}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i1.KbqIconButton, selector: "[kbq-icon-button]", inputs: ["color", "small", "tabindex", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
262
286
  }
263
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqPasswordToggle, decorators: [{
287
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqPasswordToggle, decorators: [{
264
288
  type: Component,
265
289
  args: [{ selector: `kbq-password-toggle`, exportAs: 'kbqPasswordToggle', template: '<i kbq-icon-button="" [ngClass]="iconClass"></i>', host: {
266
290
  class: 'kbq-password-toggle',
@@ -269,7 +293,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
269
293
  '(keydown.ENTER)': 'toggle($event)',
270
294
  '(keydown.SPACE)': 'toggle($event)'
271
295
  }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: [".kbq-password-toggle{display:flex;align-items:center;justify-content:center;width:var(--kbq-form-field-size-icon-button-size, 24px);margin-right:var(--kbq-form-field-size-icon-button-margin-right, 4px);height:100%}.kbq-password-toggle::-moz-focus-inner{border:0}.kbq-password-toggle:focus{outline:none}\n"] }]
272
- }], ctorParameters: function () { return [{ type: i1$2.Overlay }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i1$2.ScrollDispatcher }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{
296
+ }], ctorParameters: () => [{ type: i1$2.Overlay }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i1$2.ScrollDispatcher }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{
273
297
  type: Inject,
274
298
  args: [KBQ_TOOLTIP_SCROLL_STRATEGY]
275
299
  }] }, { type: i2.Directionality, decorators: [{
@@ -277,7 +301,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
277
301
  }] }, { type: undefined, decorators: [{
278
302
  type: Inject,
279
303
  args: [forwardRef(() => KBQ_FORM_FIELD_REF)]
280
- }] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { icon: [{
304
+ }] }, { type: i0.ChangeDetectorRef }], propDecorators: { icon: [{
281
305
  type: ViewChild,
282
306
  args: [KbqIconButton]
283
307
  }], content: [{
@@ -288,10 +312,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
288
312
  }] } });
289
313
 
290
314
  class KbqPrefix {
291
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqPrefix, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
292
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.5", type: KbqPrefix, selector: "[kbqPrefix]", ngImport: i0 }); }
315
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqPrefix, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
316
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.0", type: KbqPrefix, selector: "[kbqPrefix]", ngImport: i0 }); }
293
317
  }
294
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqPrefix, decorators: [{
318
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqPrefix, decorators: [{
295
319
  type: Directive,
296
320
  args: [{
297
321
  selector: '[kbqPrefix]'
@@ -322,8 +346,8 @@ class KbqStepper {
322
346
  this.stepDown.emit();
323
347
  $event.preventDefault();
324
348
  }
325
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqStepper, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
326
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: KbqStepper, selector: "kbq-stepper", outputs: { stepUp: "stepUp", stepDown: "stepDown" }, host: { classAttribute: "kbq-stepper" }, ngImport: i0, template: `
349
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqStepper, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
350
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.0", type: KbqStepper, selector: "kbq-stepper", outputs: { stepUp: "stepUp", stepDown: "stepDown" }, host: { classAttribute: "kbq-stepper" }, ngImport: i0, template: `
327
351
  <i kbq-icon-button="mc-angle-down-L_16"
328
352
  class="kbq-stepper-step-up"
329
353
  [small]="true"
@@ -340,7 +364,7 @@ class KbqStepper {
340
364
  </i>
341
365
  `, isInline: true, styles: [".kbq-stepper{display:flex;flex-direction:column;justify-content:center;align-items:center;width:var(--kbq-form-field-size-icon-button-size, 24px);margin-right:var(--kbq-form-field-size-icon-button-margin-right, 4px);height:100%}.kbq-stepper .kbq-stepper-step-up,.kbq-stepper .kbq-stepper-step-down{cursor:pointer;width:var(--kbq-form-field-size-button-width, );text-align:center}.kbq-stepper .kbq-stepper-step-up{transform:scaleY(-1)}\n"], dependencies: [{ kind: "component", type: i1.KbqIconButton, selector: "[kbq-icon-button]", inputs: ["color", "small", "tabindex", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
342
366
  }
343
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqStepper, decorators: [{
367
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqStepper, decorators: [{
344
368
  type: Component,
345
369
  args: [{ selector: 'kbq-stepper', template: `
346
370
  <i kbq-icon-button="mc-angle-down-L_16"
@@ -367,10 +391,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
367
391
  }] } });
368
392
 
369
393
  class KbqSuffix {
370
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqSuffix, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
371
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.5", type: KbqSuffix, selector: "[kbqSuffix]", ngImport: i0 }); }
394
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqSuffix, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
395
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.0", type: KbqSuffix, selector: "[kbqSuffix]", ngImport: i0 }); }
372
396
  }
373
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqSuffix, decorators: [{
397
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqSuffix, decorators: [{
374
398
  type: Directive,
375
399
  args: [{
376
400
  selector: '[kbqSuffix]'
@@ -387,6 +411,9 @@ class KbqFormFieldBase {
387
411
  /** @docs-private */
388
412
  const KbqFormFieldMixinBase = mixinColor(KbqFormFieldBase);
389
413
  class KbqFormField extends KbqFormFieldMixinBase {
414
+ get hasFocus() {
415
+ return this.control.focused;
416
+ }
390
417
  get hasHint() {
391
418
  return this.hint?.length > 0;
392
419
  }
@@ -465,6 +492,9 @@ class KbqFormField extends KbqFormFieldMixinBase {
465
492
  // Avoid animations on load.
466
493
  this.changeDetectorRef.detectChanges();
467
494
  }
495
+ focusViaKeyboard() {
496
+ this.control.focus();
497
+ }
468
498
  clearValue($event) {
469
499
  $event.stopPropagation();
470
500
  this.control?.ngControl?.reset();
@@ -521,12 +551,12 @@ class KbqFormField extends KbqFormFieldMixinBase {
521
551
  throw getKbqFormFieldMissingControlError();
522
552
  }
523
553
  }
524
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqFormField, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$3.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component }); }
525
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: KbqFormField, selector: "kbq-form-field", inputs: { color: "color" }, host: { listeners: { "keydown": "onKeyDown($event)", "mouseenter": "onHoverChanged(true)", "mouseleave": "onHoverChanged(false)" }, properties: { "class.kbq-form-field_invalid": "control.errorState", "class.kbq-form-field_has-prefix": "hasPrefix", "class.kbq-form-field_has-suffix": "hasSuffix", "class.kbq-form-field_has-password-toggle": "hasPasswordToggle", "class.kbq-form-field_has-cleaner": "canShowCleaner", "class.kbq-form-field_has-stepper": "canShowStepper", "class.kbq-disabled": "control.disabled", "class.ng-untouched": "shouldForward(\"untouched\")", "class.ng-touched": "shouldForward(\"touched\")", "class.ng-pristine": "shouldForward(\"pristine\")", "class.ng-dirty": "shouldForward(\"dirty\")", "class.ng-valid": "shouldForward(\"valid\")", "class.ng-invalid": "shouldForward(\"invalid\")", "class.ng-pending": "shouldForward(\"pending\")" }, classAttribute: "kbq-form-field" }, providers: [
554
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqFormField, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$3.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component }); }
555
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.0", type: KbqFormField, selector: "kbq-form-field", inputs: { color: "color" }, host: { listeners: { "keydown": "onKeyDown($event)", "mouseenter": "onHoverChanged(true)", "mouseleave": "onHoverChanged(false)" }, properties: { "class.kbq-form-field_invalid": "control.errorState", "class.kbq-form-field_has-prefix": "hasPrefix", "class.kbq-form-field_has-suffix": "hasSuffix", "class.kbq-form-field_has-password-toggle": "hasPasswordToggle", "class.kbq-form-field_has-cleaner": "canShowCleaner", "class.kbq-form-field_has-stepper": "canShowStepper", "class.kbq-disabled": "control.disabled", "class.ng-untouched": "shouldForward(\"untouched\")", "class.ng-touched": "shouldForward(\"touched\")", "class.ng-pristine": "shouldForward(\"pristine\")", "class.ng-dirty": "shouldForward(\"dirty\")", "class.ng-valid": "shouldForward(\"valid\")", "class.ng-invalid": "shouldForward(\"invalid\")", "class.ng-pending": "shouldForward(\"pending\")" }, classAttribute: "kbq-form-field" }, providers: [
526
556
  { provide: KBQ_FORM_FIELD_REF, useExisting: KbqFormField }
527
- ], queries: [{ propertyName: "control", first: true, predicate: KbqFormFieldControl, descendants: true }, { propertyName: "stepper", first: true, predicate: KbqStepper, descendants: true }, { propertyName: "cleaner", first: true, predicate: KbqCleaner, descendants: true }, { propertyName: "passwordToggle", first: true, predicate: KbqPasswordToggle, descendants: true }, { propertyName: "hint", predicate: KbqHint }, { propertyName: "passwordHints", predicate: KbqPasswordHint }, { propertyName: "suffix", predicate: KbqSuffix }, { propertyName: "prefix", predicate: KbqPrefix }], viewQueries: [{ propertyName: "connectionContainerRef", first: true, predicate: ["connectionContainer"], descendants: true, static: true }], exportAs: ["kbqFormField"], usesInheritance: true, ngImport: i0, template: "<div class=\"kbq-form-field__container\" (click)=\"onContainerClick($event)\" #connectionContainer>\n\n <div class=\"kbq-form-field__prefix\" *ngIf=\"hasPrefix\">\n <ng-content select=\"[kbqPrefix]\"></ng-content>\n </div>\n\n <div class=\"kbq-form-field__infix\">\n <ng-content></ng-content>\n </div>\n\n <div class=\"kbq-form-field__suffix\" *ngIf=\"hasSuffix\">\n <ng-content select=\"[kbqSuffix]\"></ng-content>\n </div>\n\n <div class=\"kbq-form-field__cleaner\"\n *ngIf=\"canShowCleaner && !hasSuffix\"\n (click)=\"clearValue($event)\">\n <ng-content select=\"kbq-cleaner\"></ng-content>\n </div>\n\n <ng-content select=\"kbq-password-toggle\"></ng-content>\n\n <ng-content *ngIf=\"canShowStepper\" select=\"kbq-stepper\"></ng-content>\n</div>\n\n<div class=\"kbq-form-field__hint\" *ngIf=\"hasHint || passwordHints.length\">\n <ng-content select=\"kbq-hint, kbq-password-hint\"></ng-content>\n</div>\n", styles: [".kbq-form-field{position:relative;display:inline-block;width:100%}.kbq-form-field .kbq-form-field__container{box-sizing:border-box}.kbq-form-field .kbq-form-field:not(.kbq-form-field-type-textarea){height:var(--kbq-form-field-size-height, 32px)}.kbq-form-field,.kbq-form-field .kbq-input,.kbq-form-field .kbq-textarea{border-radius:var(--kbq-form-field-size-border-radius, 8px)}.kbq-form-field:hover{z-index:1}.kbq-form-field.kbq-focused{z-index:2}.kbq-form-field.kbq-form-field_without-borders .kbq-form-field__container{border-color:transparent!important;box-shadow:none!important}.kbq-form-field.kbq-form-field_has-prefix .kbq-input{padding-left:calc(var(--kbq-form-field-size-icon-size, 16px) + var(--kbq-form-field-size-icon-margin-left, 8px) + var(--kbq-form-field-size-icon-margin-right, 8px))}.kbq-form-field.kbq-form-field_has-password-toggle .kbq-input,.kbq-form-field.kbq-form-field_has-cleaner .kbq-input,.kbq-form-field.kbq-form-field_has-stepper .kbq-input,.kbq-form-field.kbq-form-field_has-suffix .kbq-input{padding-right:calc(var(--kbq-form-field-size-icon-button-size, 24px) + var(--kbq-form-field-size-icon-button-margin-left, 4px) + var(--kbq-form-field-size-icon-button-margin-right, 4px))}.kbq-form-field__container{position:relative;border-width:var(--kbq-form-field-size-border-width, 1px);border-style:solid;border-color:transparent;border-radius:var(--kbq-form-field-size-border-radius, 8px)}.kbq-form-field__prefix,.kbq-form-field__suffix{position:absolute;top:0;bottom:0;width:32px;display:flex;flex-direction:row;justify-content:center;align-items:center}.kbq-form-field__prefix{left:0}.kbq-form-field__suffix{right:0}.kbq-form-field__cleaner,.kbq-password-toggle,.kbq-stepper{position:absolute;top:0;bottom:0;right:0}.kbq-stepper{display:flex;flex-direction:column;justify-content:center;align-items:center;width:var(--kbq-form-field-size-button-width, )}.kbq-stepper .kbq-stepper-step-up,.kbq-stepper .kbq-stepper-step-down{cursor:pointer;width:var(--kbq-form-field-size-button-width, );text-align:center}.kbq-stepper .kbq-stepper-step-up{transform:scaleY(-1)}.kbq-form-field__hint{display:flex;flex-direction:column;margin-top:var(--kbq-form-field-hint-size-margin-top, 4px);gap:var(--kbq-form-field-hint-size-gap, 8px)}\n", ".kbq-input{background:transparent;padding:0;margin:0;border:none;outline:none;display:inline-block;box-sizing:border-box;text-overflow:ellipsis;width:100%;min-height:calc(var(--kbq-form-field-size-height, 32px) - var(--kbq-form-field-size-border-width, 1px) * 2);padding:calc(var(--kbq-input-size-padding-vertical, 4px) - var(--kbq-form-field-size-border-width, 1px)) var(--kbq-input-size-padding-horizontal, 12px)}.kbq-input::-ms-clear{display:none;width:0;height:0}.kbq-input::-ms-reveal{display:none;width:0;height:0}.kbq-input::-webkit-search-decoration,.kbq-input::-webkit-search-cancel-button,.kbq-input::-webkit-search-results-button,.kbq-input::-webkit-search-results-decoration{display:none}input.kbq-input[type=number]{-moz-appearance:textfield}input.kbq-input[type=number]::-webkit-inner-spin-button,input.kbq-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}input.kbq-input:invalid{box-shadow:unset}input.kbq-input::placeholder{opacity:1}\n", ".kbq-timepicker{padding-right:calc(var(--kbq-timepicker-size-padding-right, ) - var(--kbq-form-field-size-border-width, 1px))}.kbq-form-field-type-timepicker{width:auto}\n", ".kbq-form-field-type-datepicker{width:auto}.kbq-datepicker{width:130px}\n", ".kbq-textarea{display:inline-block;background:transparent;margin:0;border:none;outline:none;resize:none;overflow:auto;width:100%;box-sizing:border-box;padding:var(--kbq-textarea-size-padding-vertical, 8px) var(--kbq-textarea-size-padding-horizontal, 12px);-webkit-appearance:none;vertical-align:bottom}.kbq-textarea:not(.kbq-textarea-resizable){box-sizing:border-box;overflow-y:hidden}.kbq-textarea.kbq-textarea-resizable{resize:vertical;min-height:var(--kbq-textarea-size-min-height, 64px)}.kbq-textarea:invalid{box-shadow:unset}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
557
+ ], queries: [{ propertyName: "control", first: true, predicate: KbqFormFieldControl, descendants: true }, { propertyName: "stepper", first: true, predicate: KbqStepper, descendants: true }, { propertyName: "cleaner", first: true, predicate: KbqCleaner, descendants: true }, { propertyName: "passwordToggle", first: true, predicate: KbqPasswordToggle, descendants: true }, { propertyName: "hint", predicate: KbqHint }, { propertyName: "passwordHints", predicate: KbqPasswordHint }, { propertyName: "suffix", predicate: KbqSuffix }, { propertyName: "prefix", predicate: KbqPrefix }], viewQueries: [{ propertyName: "connectionContainerRef", first: true, predicate: ["connectionContainer"], descendants: true, static: true }], exportAs: ["kbqFormField"], usesInheritance: true, ngImport: i0, template: "<div class=\"kbq-form-field__container\" (click)=\"onContainerClick($event)\" #connectionContainer>\n\n <div class=\"kbq-form-field__prefix\" *ngIf=\"hasPrefix\">\n <ng-content select=\"[kbqPrefix]\"></ng-content>\n </div>\n\n <div class=\"kbq-form-field__infix\">\n <ng-content></ng-content>\n </div>\n\n <div class=\"kbq-form-field__suffix\" *ngIf=\"hasSuffix\">\n <ng-content select=\"[kbqSuffix]\"></ng-content>\n </div>\n\n <div class=\"kbq-form-field__cleaner\"\n *ngIf=\"canShowCleaner && !hasSuffix\"\n (click)=\"clearValue($event)\">\n <ng-content select=\"kbq-cleaner\"></ng-content>\n </div>\n\n <ng-content select=\"kbq-password-toggle\"></ng-content>\n\n <ng-content *ngIf=\"canShowStepper\" select=\"kbq-stepper\"></ng-content>\n</div>\n\n<div class=\"kbq-form-field__hint\" *ngIf=\"hasHint || passwordHints.length\">\n <ng-content select=\"kbq-hint, kbq-password-hint\"></ng-content>\n</div>\n", styles: [".kbq-form-field{position:relative;display:inline-block;width:100%}.kbq-form-field .kbq-form-field__container{box-sizing:border-box}.kbq-form-field .kbq-form-field:not(.kbq-form-field-type-textarea){height:var(--kbq-form-field-size-height, 32px)}.kbq-form-field,.kbq-form-field .kbq-input,.kbq-form-field .kbq-textarea{border-radius:var(--kbq-form-field-size-border-radius, 8px)}.kbq-form-field:hover{z-index:1}.kbq-form-field.kbq-focused{z-index:2}.kbq-form-field.kbq-form-field_without-borders .kbq-form-field__container{border-color:transparent!important;box-shadow:none!important}.kbq-form-field.kbq-form-field_has-prefix .kbq-input{padding-left:calc(var(--kbq-form-field-size-icon-size, 16px) + var(--kbq-form-field-size-icon-margin-left, 8px) + var(--kbq-form-field-size-icon-margin-right, 8px))}.kbq-form-field.kbq-form-field_has-password-toggle .kbq-input,.kbq-form-field.kbq-form-field_has-cleaner .kbq-input,.kbq-form-field.kbq-form-field_has-stepper .kbq-input,.kbq-form-field.kbq-form-field_has-suffix .kbq-input{padding-right:calc(var(--kbq-form-field-size-icon-button-size, 24px) + var(--kbq-form-field-size-icon-button-margin-left, 4px) + var(--kbq-form-field-size-icon-button-margin-right, 4px))}.kbq-form-field+.kbq-password-hint{margin-top:var(--kbq-size-m, 12px)}.kbq-form-field__container{position:relative;border-width:var(--kbq-form-field-size-border-width, 1px);border-style:solid;border-color:transparent;border-radius:var(--kbq-form-field-size-border-radius, 8px)}.kbq-form-field__prefix,.kbq-form-field__suffix{position:absolute;top:0;bottom:0;width:32px;display:flex;flex-direction:row;justify-content:center;align-items:center}.kbq-form-field__prefix{left:0}.kbq-form-field__suffix{right:0}.kbq-form-field__cleaner,.kbq-password-toggle,.kbq-stepper{position:absolute;top:0;bottom:0;right:0}.kbq-stepper{display:flex;flex-direction:column;justify-content:center;align-items:center;width:var(--kbq-form-field-size-button-width, )}.kbq-stepper .kbq-stepper-step-up,.kbq-stepper .kbq-stepper-step-down{cursor:pointer;width:var(--kbq-form-field-size-button-width, );text-align:center}.kbq-stepper .kbq-stepper-step-up{transform:scaleY(-1)}.kbq-form-field__hint{display:flex;flex-direction:column;margin-top:var(--kbq-form-field-hint-size-margin-top, 4px)}.kbq-form-field__hint .kbq-password-hint:first-child{margin-top:var(--kbq-size-s, 8px)}.kbq-password-hint{margin-top:var(--kbq-form-field-hint-size-gap, 8px)}\n", ".kbq-input{background:transparent;padding:0;margin:0;border:none;outline:none;display:inline-block;box-sizing:border-box;text-overflow:ellipsis;width:100%;min-height:calc(var(--kbq-form-field-size-height, 32px) - var(--kbq-form-field-size-border-width, 1px) * 2);padding:calc(var(--kbq-input-size-padding-vertical, 4px) - var(--kbq-form-field-size-border-width, 1px)) var(--kbq-input-size-padding-horizontal, 12px)}.kbq-input::-ms-clear{display:none;width:0;height:0}.kbq-input::-ms-reveal{display:none;width:0;height:0}.kbq-input::-webkit-search-decoration,.kbq-input::-webkit-search-cancel-button,.kbq-input::-webkit-search-results-button,.kbq-input::-webkit-search-results-decoration{display:none}input.kbq-input[type=number]{-moz-appearance:textfield}input.kbq-input[type=number]::-webkit-inner-spin-button,input.kbq-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}input.kbq-input:invalid{box-shadow:unset}input.kbq-input::placeholder{opacity:1}\n", ".kbq-timepicker{padding-right:calc(var(--kbq-timepicker-size-padding-right, ) - var(--kbq-form-field-size-border-width, 1px))}.kbq-form-field-type-timepicker{width:auto}\n", ".kbq-form-field-type-datepicker{width:auto}.kbq-datepicker{width:130px}\n", ".kbq-textarea{display:inline-block;background:transparent;margin:0;border:none;outline:none;resize:none;overflow:auto;width:100%;box-sizing:border-box;padding:var(--kbq-textarea-size-padding-vertical, 8px) var(--kbq-textarea-size-padding-horizontal, 12px);-webkit-appearance:none;vertical-align:bottom}.kbq-textarea:not(.kbq-textarea-resizable){box-sizing:border-box;overflow-y:hidden}.kbq-textarea.kbq-textarea-resizable{resize:vertical;min-height:var(--kbq-textarea-size-min-height, 64px)}.kbq-textarea:invalid{box-shadow:unset}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
528
558
  }
529
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqFormField, decorators: [{
559
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqFormField, decorators: [{
530
560
  type: Component,
531
561
  args: [{ selector: 'kbq-form-field', exportAs: 'kbqFormField', host: {
532
562
  class: 'kbq-form-field',
@@ -549,8 +579,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
549
579
  '(mouseleave)': 'onHoverChanged(false)'
550
580
  }, inputs: ['color'], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
551
581
  { provide: KBQ_FORM_FIELD_REF, useExisting: KbqFormField }
552
- ], template: "<div class=\"kbq-form-field__container\" (click)=\"onContainerClick($event)\" #connectionContainer>\n\n <div class=\"kbq-form-field__prefix\" *ngIf=\"hasPrefix\">\n <ng-content select=\"[kbqPrefix]\"></ng-content>\n </div>\n\n <div class=\"kbq-form-field__infix\">\n <ng-content></ng-content>\n </div>\n\n <div class=\"kbq-form-field__suffix\" *ngIf=\"hasSuffix\">\n <ng-content select=\"[kbqSuffix]\"></ng-content>\n </div>\n\n <div class=\"kbq-form-field__cleaner\"\n *ngIf=\"canShowCleaner && !hasSuffix\"\n (click)=\"clearValue($event)\">\n <ng-content select=\"kbq-cleaner\"></ng-content>\n </div>\n\n <ng-content select=\"kbq-password-toggle\"></ng-content>\n\n <ng-content *ngIf=\"canShowStepper\" select=\"kbq-stepper\"></ng-content>\n</div>\n\n<div class=\"kbq-form-field__hint\" *ngIf=\"hasHint || passwordHints.length\">\n <ng-content select=\"kbq-hint, kbq-password-hint\"></ng-content>\n</div>\n", styles: [".kbq-form-field{position:relative;display:inline-block;width:100%}.kbq-form-field .kbq-form-field__container{box-sizing:border-box}.kbq-form-field .kbq-form-field:not(.kbq-form-field-type-textarea){height:var(--kbq-form-field-size-height, 32px)}.kbq-form-field,.kbq-form-field .kbq-input,.kbq-form-field .kbq-textarea{border-radius:var(--kbq-form-field-size-border-radius, 8px)}.kbq-form-field:hover{z-index:1}.kbq-form-field.kbq-focused{z-index:2}.kbq-form-field.kbq-form-field_without-borders .kbq-form-field__container{border-color:transparent!important;box-shadow:none!important}.kbq-form-field.kbq-form-field_has-prefix .kbq-input{padding-left:calc(var(--kbq-form-field-size-icon-size, 16px) + var(--kbq-form-field-size-icon-margin-left, 8px) + var(--kbq-form-field-size-icon-margin-right, 8px))}.kbq-form-field.kbq-form-field_has-password-toggle .kbq-input,.kbq-form-field.kbq-form-field_has-cleaner .kbq-input,.kbq-form-field.kbq-form-field_has-stepper .kbq-input,.kbq-form-field.kbq-form-field_has-suffix .kbq-input{padding-right:calc(var(--kbq-form-field-size-icon-button-size, 24px) + var(--kbq-form-field-size-icon-button-margin-left, 4px) + var(--kbq-form-field-size-icon-button-margin-right, 4px))}.kbq-form-field__container{position:relative;border-width:var(--kbq-form-field-size-border-width, 1px);border-style:solid;border-color:transparent;border-radius:var(--kbq-form-field-size-border-radius, 8px)}.kbq-form-field__prefix,.kbq-form-field__suffix{position:absolute;top:0;bottom:0;width:32px;display:flex;flex-direction:row;justify-content:center;align-items:center}.kbq-form-field__prefix{left:0}.kbq-form-field__suffix{right:0}.kbq-form-field__cleaner,.kbq-password-toggle,.kbq-stepper{position:absolute;top:0;bottom:0;right:0}.kbq-stepper{display:flex;flex-direction:column;justify-content:center;align-items:center;width:var(--kbq-form-field-size-button-width, )}.kbq-stepper .kbq-stepper-step-up,.kbq-stepper .kbq-stepper-step-down{cursor:pointer;width:var(--kbq-form-field-size-button-width, );text-align:center}.kbq-stepper .kbq-stepper-step-up{transform:scaleY(-1)}.kbq-form-field__hint{display:flex;flex-direction:column;margin-top:var(--kbq-form-field-hint-size-margin-top, 4px);gap:var(--kbq-form-field-hint-size-gap, 8px)}\n", ".kbq-input{background:transparent;padding:0;margin:0;border:none;outline:none;display:inline-block;box-sizing:border-box;text-overflow:ellipsis;width:100%;min-height:calc(var(--kbq-form-field-size-height, 32px) - var(--kbq-form-field-size-border-width, 1px) * 2);padding:calc(var(--kbq-input-size-padding-vertical, 4px) - var(--kbq-form-field-size-border-width, 1px)) var(--kbq-input-size-padding-horizontal, 12px)}.kbq-input::-ms-clear{display:none;width:0;height:0}.kbq-input::-ms-reveal{display:none;width:0;height:0}.kbq-input::-webkit-search-decoration,.kbq-input::-webkit-search-cancel-button,.kbq-input::-webkit-search-results-button,.kbq-input::-webkit-search-results-decoration{display:none}input.kbq-input[type=number]{-moz-appearance:textfield}input.kbq-input[type=number]::-webkit-inner-spin-button,input.kbq-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}input.kbq-input:invalid{box-shadow:unset}input.kbq-input::placeholder{opacity:1}\n", ".kbq-timepicker{padding-right:calc(var(--kbq-timepicker-size-padding-right, ) - var(--kbq-form-field-size-border-width, 1px))}.kbq-form-field-type-timepicker{width:auto}\n", ".kbq-form-field-type-datepicker{width:auto}.kbq-datepicker{width:130px}\n", ".kbq-textarea{display:inline-block;background:transparent;margin:0;border:none;outline:none;resize:none;overflow:auto;width:100%;box-sizing:border-box;padding:var(--kbq-textarea-size-padding-vertical, 8px) var(--kbq-textarea-size-padding-horizontal, 12px);-webkit-appearance:none;vertical-align:bottom}.kbq-textarea:not(.kbq-textarea-resizable){box-sizing:border-box;overflow-y:hidden}.kbq-textarea.kbq-textarea-resizable{resize:vertical;min-height:var(--kbq-textarea-size-min-height, 64px)}.kbq-textarea:invalid{box-shadow:unset}\n"] }]
553
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$3.FocusMonitor }]; }, propDecorators: { control: [{
582
+ ], template: "<div class=\"kbq-form-field__container\" (click)=\"onContainerClick($event)\" #connectionContainer>\n\n <div class=\"kbq-form-field__prefix\" *ngIf=\"hasPrefix\">\n <ng-content select=\"[kbqPrefix]\"></ng-content>\n </div>\n\n <div class=\"kbq-form-field__infix\">\n <ng-content></ng-content>\n </div>\n\n <div class=\"kbq-form-field__suffix\" *ngIf=\"hasSuffix\">\n <ng-content select=\"[kbqSuffix]\"></ng-content>\n </div>\n\n <div class=\"kbq-form-field__cleaner\"\n *ngIf=\"canShowCleaner && !hasSuffix\"\n (click)=\"clearValue($event)\">\n <ng-content select=\"kbq-cleaner\"></ng-content>\n </div>\n\n <ng-content select=\"kbq-password-toggle\"></ng-content>\n\n <ng-content *ngIf=\"canShowStepper\" select=\"kbq-stepper\"></ng-content>\n</div>\n\n<div class=\"kbq-form-field__hint\" *ngIf=\"hasHint || passwordHints.length\">\n <ng-content select=\"kbq-hint, kbq-password-hint\"></ng-content>\n</div>\n", styles: [".kbq-form-field{position:relative;display:inline-block;width:100%}.kbq-form-field .kbq-form-field__container{box-sizing:border-box}.kbq-form-field .kbq-form-field:not(.kbq-form-field-type-textarea){height:var(--kbq-form-field-size-height, 32px)}.kbq-form-field,.kbq-form-field .kbq-input,.kbq-form-field .kbq-textarea{border-radius:var(--kbq-form-field-size-border-radius, 8px)}.kbq-form-field:hover{z-index:1}.kbq-form-field.kbq-focused{z-index:2}.kbq-form-field.kbq-form-field_without-borders .kbq-form-field__container{border-color:transparent!important;box-shadow:none!important}.kbq-form-field.kbq-form-field_has-prefix .kbq-input{padding-left:calc(var(--kbq-form-field-size-icon-size, 16px) + var(--kbq-form-field-size-icon-margin-left, 8px) + var(--kbq-form-field-size-icon-margin-right, 8px))}.kbq-form-field.kbq-form-field_has-password-toggle .kbq-input,.kbq-form-field.kbq-form-field_has-cleaner .kbq-input,.kbq-form-field.kbq-form-field_has-stepper .kbq-input,.kbq-form-field.kbq-form-field_has-suffix .kbq-input{padding-right:calc(var(--kbq-form-field-size-icon-button-size, 24px) + var(--kbq-form-field-size-icon-button-margin-left, 4px) + var(--kbq-form-field-size-icon-button-margin-right, 4px))}.kbq-form-field+.kbq-password-hint{margin-top:var(--kbq-size-m, 12px)}.kbq-form-field__container{position:relative;border-width:var(--kbq-form-field-size-border-width, 1px);border-style:solid;border-color:transparent;border-radius:var(--kbq-form-field-size-border-radius, 8px)}.kbq-form-field__prefix,.kbq-form-field__suffix{position:absolute;top:0;bottom:0;width:32px;display:flex;flex-direction:row;justify-content:center;align-items:center}.kbq-form-field__prefix{left:0}.kbq-form-field__suffix{right:0}.kbq-form-field__cleaner,.kbq-password-toggle,.kbq-stepper{position:absolute;top:0;bottom:0;right:0}.kbq-stepper{display:flex;flex-direction:column;justify-content:center;align-items:center;width:var(--kbq-form-field-size-button-width, )}.kbq-stepper .kbq-stepper-step-up,.kbq-stepper .kbq-stepper-step-down{cursor:pointer;width:var(--kbq-form-field-size-button-width, );text-align:center}.kbq-stepper .kbq-stepper-step-up{transform:scaleY(-1)}.kbq-form-field__hint{display:flex;flex-direction:column;margin-top:var(--kbq-form-field-hint-size-margin-top, 4px)}.kbq-form-field__hint .kbq-password-hint:first-child{margin-top:var(--kbq-size-s, 8px)}.kbq-password-hint{margin-top:var(--kbq-form-field-hint-size-gap, 8px)}\n", ".kbq-input{background:transparent;padding:0;margin:0;border:none;outline:none;display:inline-block;box-sizing:border-box;text-overflow:ellipsis;width:100%;min-height:calc(var(--kbq-form-field-size-height, 32px) - var(--kbq-form-field-size-border-width, 1px) * 2);padding:calc(var(--kbq-input-size-padding-vertical, 4px) - var(--kbq-form-field-size-border-width, 1px)) var(--kbq-input-size-padding-horizontal, 12px)}.kbq-input::-ms-clear{display:none;width:0;height:0}.kbq-input::-ms-reveal{display:none;width:0;height:0}.kbq-input::-webkit-search-decoration,.kbq-input::-webkit-search-cancel-button,.kbq-input::-webkit-search-results-button,.kbq-input::-webkit-search-results-decoration{display:none}input.kbq-input[type=number]{-moz-appearance:textfield}input.kbq-input[type=number]::-webkit-inner-spin-button,input.kbq-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}input.kbq-input:invalid{box-shadow:unset}input.kbq-input::placeholder{opacity:1}\n", ".kbq-timepicker{padding-right:calc(var(--kbq-timepicker-size-padding-right, ) - var(--kbq-form-field-size-border-width, 1px))}.kbq-form-field-type-timepicker{width:auto}\n", ".kbq-form-field-type-datepicker{width:auto}.kbq-datepicker{width:130px}\n", ".kbq-textarea{display:inline-block;background:transparent;margin:0;border:none;outline:none;resize:none;overflow:auto;width:100%;box-sizing:border-box;padding:var(--kbq-textarea-size-padding-vertical, 8px) var(--kbq-textarea-size-padding-horizontal, 12px);-webkit-appearance:none;vertical-align:bottom}.kbq-textarea:not(.kbq-textarea-resizable){box-sizing:border-box;overflow-y:hidden}.kbq-textarea.kbq-textarea-resizable{resize:vertical;min-height:var(--kbq-textarea-size-min-height, 64px)}.kbq-textarea:invalid{box-shadow:unset}\n"] }]
583
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$3.FocusMonitor }], propDecorators: { control: [{
554
584
  type: ContentChild,
555
585
  args: [KbqFormFieldControl, { static: false }]
556
586
  }], stepper: [{
@@ -579,10 +609,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
579
609
  args: ['connectionContainer', { static: true }]
580
610
  }] } });
581
611
  class KbqFormFieldWithoutBorders {
582
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqFormFieldWithoutBorders, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
583
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.5", type: KbqFormFieldWithoutBorders, selector: "kbq-form-field[kbqFormFieldWithoutBorders]", host: { classAttribute: "kbq-form-field_without-borders" }, exportAs: ["kbqFormFieldWithoutBorders"], ngImport: i0 }); }
612
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqFormFieldWithoutBorders, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
613
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.0", type: KbqFormFieldWithoutBorders, selector: "kbq-form-field[kbqFormFieldWithoutBorders]", host: { classAttribute: "kbq-form-field_without-borders" }, exportAs: ["kbqFormFieldWithoutBorders"], ngImport: i0 }); }
584
614
  }
585
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqFormFieldWithoutBorders, decorators: [{
615
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqFormFieldWithoutBorders, decorators: [{
586
616
  type: Directive,
587
617
  args: [{
588
618
  selector: 'kbq-form-field[kbqFormFieldWithoutBorders]',
@@ -610,24 +640,24 @@ class KbqTrim {
610
640
  }
611
641
  return typeof value === 'string' ? value.trim() : value;
612
642
  }
613
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqTrim, deps: [{ token: 'no-trim', attribute: true }, { token: i1$4.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive }); }
614
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.5", type: KbqTrim, selector: "[kbqInput], [kbqTextarea]", host: { classAttribute: "kbq-trim" }, exportAs: ["KbqTrim"], ngImport: i0 }); }
643
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqTrim, deps: [{ token: 'no-trim', attribute: true }, { token: i1$4.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive }); }
644
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.0", type: KbqTrim, selector: "[kbqInput], [kbqTextarea]", host: { classAttribute: "kbq-trim" }, exportAs: ["KbqTrim"], ngImport: i0 }); }
615
645
  }
616
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqTrim, decorators: [{
646
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqTrim, decorators: [{
617
647
  type: Directive,
618
648
  args: [{
619
649
  selector: '[kbqInput], [kbqTextarea]',
620
650
  exportAs: 'KbqTrim',
621
651
  host: { class: 'kbq-trim' }
622
652
  }]
623
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
653
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
624
654
  type: Attribute,
625
655
  args: ['no-trim']
626
656
  }] }, { type: i1$4.NgControl, decorators: [{
627
657
  type: Optional
628
658
  }, {
629
659
  type: Self
630
- }] }]; } });
660
+ }] }] });
631
661
 
632
662
  class KbqValidateDirective {
633
663
  get isNgModel() {
@@ -679,8 +709,14 @@ class KbqValidateDirective {
679
709
  if (!this.validationControl) {
680
710
  return;
681
711
  }
682
- this.parent?.ngSubmit
683
- .subscribe(() => this.validationControl.updateValueAndValidity({ emitEvent: false }));
712
+ if (this.parent?.onSubmit) {
713
+ // tslint:disable-next-line: no-unbound-method
714
+ const originalSubmit = this.parent.onSubmit;
715
+ this.parent.onSubmit = ($event) => {
716
+ this.validationControl.updateValueAndValidity({ emitEvent: false });
717
+ return originalSubmit.call(this.parent, $event);
718
+ };
719
+ }
684
720
  if (this.isNgModel) {
685
721
  this.setMosaicValidationForModelControl();
686
722
  }
@@ -716,11 +752,10 @@ class KbqValidateDirective {
716
752
  });
717
753
  }
718
754
  setMosaicValidationForFormControl() {
719
- const originalValidator = this.validationControl.validator;
720
755
  // changed required validation logic after initialization
721
756
  if (this.validationControl.invalid && this.validationControl.errors.required) {
722
757
  Promise.resolve().then(() => {
723
- this.setValidState(this.validationControl, originalValidator);
758
+ this.setValidState(this.validationControl, this.validationControl.validator);
724
759
  this.cdr.markForCheck();
725
760
  });
726
761
  }
@@ -729,18 +764,18 @@ class KbqValidateDirective {
729
764
  .subscribe(() => {
730
765
  // changed required validation logic
731
766
  if (this.validationControl.invalid && (this.hasNotSubmittedParent) && this.validationControl.errors.required) {
732
- this.setValidState(this.validationControl, originalValidator);
767
+ this.setValidState(this.validationControl, this.validationControl.validator);
733
768
  }
734
769
  // changed all other validation logic
735
770
  if (this.validationControl.invalid && this.formFieldControl.focused) {
736
- this.setValidState(this.validationControl, originalValidator);
771
+ this.setValidState(this.validationControl, this.validationControl.validator);
737
772
  }
738
773
  });
739
774
  }
740
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqValidateDirective, deps: [{ token: forwardRef(() => KbqFormFieldControl) }, { token: NG_VALIDATORS, optional: true, self: true }, { token: i1$4.NgControl, optional: true, self: true }, { token: i1$4.NgForm, optional: true }, { token: i1$4.FormGroupDirective, optional: true }, { token: KBQ_VALIDATION, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
741
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.5", type: KbqValidateDirective, selector: "\n input[kbqInput],\n input[kbqInputPassword],\n input[kbqTimepicker],\n input[kbqDatepicker],\n textarea[kbqTextarea],\n kbq-select,\n kbq-tree-select,\n kbq-tag-list\n ", exportAs: ["KbqValidate"], ngImport: i0 }); }
775
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqValidateDirective, deps: [{ token: forwardRef(() => KbqFormFieldControl) }, { token: NG_VALIDATORS, optional: true, self: true }, { token: i1$4.NgControl, optional: true, self: true }, { token: i1$4.NgForm, optional: true }, { token: i1$4.FormGroupDirective, optional: true }, { token: KBQ_VALIDATION, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
776
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.0", type: KbqValidateDirective, selector: "\n input[kbqInput],\n input[kbqInputPassword],\n input[kbqTimepicker],\n input[kbqDatepicker],\n textarea[kbqTextarea],\n kbq-select,\n kbq-tree-select,\n kbq-tag-list\n ", exportAs: ["KbqValidate"], ngImport: i0 }); }
742
777
  }
743
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqValidateDirective, decorators: [{
778
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqValidateDirective, decorators: [{
744
779
  type: Directive,
745
780
  args: [{
746
781
  selector: `
@@ -755,7 +790,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
755
790
  `,
756
791
  exportAs: 'KbqValidate'
757
792
  }]
758
- }], ctorParameters: function () { return [{ type: KbqFormFieldControl, decorators: [{
793
+ }], ctorParameters: () => [{ type: KbqFormFieldControl, decorators: [{
759
794
  type: Inject,
760
795
  args: [forwardRef(() => KbqFormFieldControl)]
761
796
  }] }, { type: undefined, decorators: [{
@@ -778,11 +813,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
778
813
  }, {
779
814
  type: Inject,
780
815
  args: [KBQ_VALIDATION]
781
- }] }, { type: i0.ChangeDetectorRef }]; } });
816
+ }] }, { type: i0.ChangeDetectorRef }] });
782
817
 
783
818
  class KbqFormFieldModule {
784
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqFormFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
785
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.5", ngImport: i0, type: KbqFormFieldModule, declarations: [KbqFormField,
819
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqFormFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
820
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.2.0", ngImport: i0, type: KbqFormFieldModule, declarations: [KbqFormField,
786
821
  KbqFormFieldWithoutBorders,
787
822
  KbqHint,
788
823
  KbqPasswordHint,
@@ -803,9 +838,9 @@ class KbqFormFieldModule {
803
838
  KbqValidateDirective,
804
839
  KbqTrim,
805
840
  KbqPasswordToggle] }); }
806
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqFormFieldModule, imports: [CommonModule, KbqIconModule] }); }
841
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqFormFieldModule, imports: [CommonModule, KbqIconModule] }); }
807
842
  }
808
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqFormFieldModule, decorators: [{
843
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqFormFieldModule, decorators: [{
809
844
  type: NgModule,
810
845
  args: [{
811
846
  declarations: [