@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,11 +1,9 @@
1
1
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
2
2
  import { Platform } from '@angular/cdk/platform';
3
3
  import * as i0 from '@angular/core';
4
- import { InjectionToken, inject, Renderer2, numberAttribute, booleanAttribute, Input, Optional, Self, Inject, Host, Directive, NgModule } from '@angular/core';
5
- import * as i1 from '@angular/forms';
6
- import { FormsModule } from '@angular/forms';
7
- import * as i2 from '@koobiq/components/core';
8
- import { KBQ_VALIDATION, KBQ_WINDOW, KBQ_PARENT_ANIMATION_COMPONENT } from '@koobiq/components/core';
4
+ import { InjectionToken, inject, ElementRef, NgZone, Renderer2, input, numberAttribute, booleanAttribute, Input, Directive, NgModule } from '@angular/core';
5
+ import { NgControl, NgForm, FormGroupDirective, FormsModule } from '@angular/forms';
6
+ import { ErrorStateMatcher, KBQ_PARENT_ANIMATION_COMPONENT, KBQ_WINDOW } from '@koobiq/components/core';
9
7
  import { KbqFormFieldControl, KbqFormFieldModule } from '@koobiq/components/form-field';
10
8
  import { Subject } from 'rxjs';
11
9
  import { delay } from 'rxjs/operators';
@@ -16,6 +14,8 @@ let nextUniqueId = 0;
16
14
  class KbqTextarea {
17
15
  /** Parameter enables or disables the ability to automatically increase the height.
18
16
  * If set to false, the textarea becomes vertically resizable. */
17
+ // TODO: Skipped for migration because:
18
+ // Accessor inputs cannot be migrated as they are too complex.
19
19
  get canGrow() {
20
20
  return !this.maxRowLimitReached && this._canGrow;
21
21
  }
@@ -26,6 +26,8 @@ class KbqTextarea {
26
26
  * Implemented as part of KbqFormFieldControl.
27
27
  * @docs-private
28
28
  */
29
+ // TODO: Skipped for migration because:
30
+ // Accessor inputs cannot be migrated as they are too complex.
29
31
  get disabled() {
30
32
  if (this.ngControl && this.ngControl.disabled !== null) {
31
33
  return this.ngControl.disabled;
@@ -43,6 +45,8 @@ class KbqTextarea {
43
45
  * Implemented as part of KbqFormFieldControl.
44
46
  * @docs-private
45
47
  */
48
+ // TODO: Skipped for migration because:
49
+ // Accessor inputs cannot be migrated as they are too complex.
46
50
  get id() {
47
51
  return this._id;
48
52
  }
@@ -53,6 +57,8 @@ class KbqTextarea {
53
57
  * Implemented as part of KbqFormFieldControl.
54
58
  * @docs-private
55
59
  */
60
+ // TODO: Skipped for migration because:
61
+ // Accessor inputs cannot be migrated as they are too complex.
56
62
  get required() {
57
63
  return this._required;
58
64
  }
@@ -63,6 +69,8 @@ class KbqTextarea {
63
69
  * Implemented as part of KbqFormFieldControl.
64
70
  * @docs-private
65
71
  */
72
+ // TODO: Skipped for migration because:
73
+ // Accessor inputs cannot be migrated as they are too complex.
66
74
  get value() {
67
75
  return this.valueAccessor.value;
68
76
  }
@@ -75,23 +83,24 @@ class KbqTextarea {
75
83
  /** Flag that will be set to true when the maximum number of lines is reached.
76
84
  * Maximum number of rows can be set using the maxRows input. */
77
85
  get maxRowLimitReached() {
78
- return this.rowsCount > this.maxRows;
86
+ return this.rowsCount > this.maxRows();
79
87
  }
80
- constructor(elementRef, ngControl, parentForm, parentFormGroup, defaultErrorStateMatcher, inputValueAccessor, parent, ngZone) {
81
- this.elementRef = elementRef;
82
- this.ngControl = ngControl;
83
- this.parentForm = parentForm;
84
- this.parentFormGroup = parentFormGroup;
85
- this.defaultErrorStateMatcher = defaultErrorStateMatcher;
86
- this.parent = parent;
87
- this.ngZone = ngZone;
88
- this.useLegacyValidation = inject(KBQ_VALIDATION, { optional: true })?.useValidation ?? false;
88
+ constructor() {
89
+ this.elementRef = inject(ElementRef);
90
+ this.ngControl = inject(NgControl, { optional: true, self: true });
91
+ this.parentForm = inject(NgForm, { optional: true });
92
+ this.parentFormGroup = inject(FormGroupDirective, { optional: true });
93
+ this.defaultErrorStateMatcher = inject(ErrorStateMatcher);
94
+ this.parent = inject(KBQ_PARENT_ANIMATION_COMPONENT, { optional: true, host: true });
95
+ this.ngZone = inject(NgZone);
89
96
  /** Whether the component is in an error state. */
90
97
  this.errorState = false;
91
98
  this.isBrowser = inject(Platform).isBrowser;
92
99
  this.renderer = inject(Renderer2);
93
100
  this.window = inject(KBQ_WINDOW);
94
101
  this._canGrow = true;
102
+ /** Maximum number of lines to which the textarea will grow. Default unlimited */
103
+ this.maxRows = input(undefined, ...(ngDevMode ? [{ debugName: "maxRows" }] : []));
95
104
  /**
96
105
  * Implemented as part of KbqFormFieldControl.
97
106
  * @docs-private
@@ -131,10 +140,11 @@ class KbqTextarea {
131
140
  }
132
141
  else if (!textarea.style.minHeight && this.lineHeight) {
133
142
  // need for first initialization when value above maxRows
134
- textarea.style.minHeight = `${this.maxRows * this.lineHeight}px`;
143
+ textarea.style.minHeight = `${this.maxRows() * this.lineHeight}px`;
135
144
  }
136
145
  });
137
146
  };
147
+ const inputValueAccessor = inject(KBQ_TEXTAREA_VALUE_ACCESSOR, { optional: true, self: true });
138
148
  // If no input value accessor was explicitly specified, use the element as the textarea value
139
149
  // accessor.
140
150
  this.valueAccessor = inputValueAccessor || this.elementRef.nativeElement;
@@ -189,11 +199,6 @@ class KbqTextarea {
189
199
  }
190
200
  onBlur() {
191
201
  this.focusChanged(false);
192
- if (this.useLegacyValidation && this.ngControl?.control) {
193
- const control = this.ngControl.control;
194
- control.updateValueAndValidity({ emitEvent: false });
195
- control.statusChanges.emit(control.status);
196
- }
197
202
  }
198
203
  /** Focuses the textarea. */
199
204
  focus() {
@@ -234,14 +239,14 @@ class KbqTextarea {
234
239
  const validity = this.elementRef.nativeElement.validity;
235
240
  return validity && validity.badInput;
236
241
  }
237
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqTextarea, deps: [{ token: i0.ElementRef }, { token: i1.NgControl, optional: true, self: true }, { token: i1.NgForm, optional: true }, { token: i1.FormGroupDirective, optional: true }, { token: i2.ErrorStateMatcher }, { token: KBQ_TEXTAREA_VALUE_ACCESSOR, optional: true, self: true }, { token: KBQ_PARENT_ANIMATION_COMPONENT, host: true, optional: true }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
238
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.2.21", type: KbqTextarea, isStandalone: true, selector: "textarea[kbqTextarea]", inputs: { canGrow: ["canGrow", "canGrow", booleanAttribute], maxRows: "maxRows", errorStateMatcher: "errorStateMatcher", disabled: "disabled", id: "id", placeholder: "placeholder", freeRowsHeight: ["freeRowsHeight", "freeRowsHeight", numberAttribute], required: "required", value: "value" }, host: { listeners: { "blur": "onBlur()", "focus": "focusChanged(true)", "paste": "stateChanges.next()" }, properties: { "class.kbq-textarea-resizable": "!canGrow", "class.kbq-textarea_max-row-limit-reached": "maxRowLimitReached", "attr.id": "id", "attr.placeholder": "placeholder", "attr.aria-invalid": "errorState", "disabled": "disabled", "required": "required" }, classAttribute: "kbq-textarea kbq-scrollbar" }, providers: [{ provide: KbqFormFieldControl, useExisting: KbqTextarea }], exportAs: ["kbqTextarea"], usesOnChanges: true, ngImport: i0 }); }
242
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqTextarea, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
243
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.25", type: KbqTextarea, isStandalone: true, selector: "textarea[kbqTextarea]", inputs: { canGrow: { classPropertyName: "canGrow", publicName: "canGrow", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, maxRows: { classPropertyName: "maxRows", publicName: "maxRows", isSignal: true, isRequired: false, transformFunction: null }, errorStateMatcher: { classPropertyName: "errorStateMatcher", publicName: "errorStateMatcher", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: false, isRequired: false, transformFunction: null }, freeRowsHeight: { classPropertyName: "freeRowsHeight", publicName: "freeRowsHeight", isSignal: false, isRequired: false, transformFunction: numberAttribute }, required: { classPropertyName: "required", publicName: "required", isSignal: false, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null } }, host: { listeners: { "blur": "onBlur()", "focus": "focusChanged(true)", "paste": "stateChanges.next()" }, properties: { "class.kbq-textarea-resizable": "!canGrow", "class.kbq-textarea_max-row-limit-reached": "maxRowLimitReached", "attr.id": "id", "attr.placeholder": "placeholder", "attr.aria-invalid": "errorState", "disabled": "disabled", "required": "required" }, classAttribute: "kbq-textarea kbq-scrollbar" }, providers: [{ provide: KbqFormFieldControl, useExisting: KbqTextarea }], exportAs: ["kbqTextarea"], usesOnChanges: true, ngImport: i0 }); }
239
244
  }
240
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqTextarea, decorators: [{
245
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqTextarea, decorators: [{
241
246
  type: Directive,
242
247
  args: [{
243
248
  selector: 'textarea[kbqTextarea]',
244
- exportAs: 'kbqTextarea',
249
+ providers: [{ provide: KbqFormFieldControl, useExisting: KbqTextarea }],
245
250
  host: {
246
251
  class: 'kbq-textarea kbq-scrollbar',
247
252
  '[class.kbq-textarea-resizable]': '!canGrow',
@@ -255,36 +260,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
255
260
  '(focus)': 'focusChanged(true)',
256
261
  '(paste)': 'stateChanges.next()'
257
262
  },
258
- providers: [{ provide: KbqFormFieldControl, useExisting: KbqTextarea }]
263
+ exportAs: 'kbqTextarea'
259
264
  }]
260
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.NgControl, decorators: [{
261
- type: Optional
262
- }, {
263
- type: Self
264
- }] }, { type: i1.NgForm, decorators: [{
265
- type: Optional
266
- }] }, { type: i1.FormGroupDirective, decorators: [{
267
- type: Optional
268
- }] }, { type: i2.ErrorStateMatcher }, { type: undefined, decorators: [{
269
- type: Optional
270
- }, {
271
- type: Self
272
- }, {
273
- type: Inject,
274
- args: [KBQ_TEXTAREA_VALUE_ACCESSOR]
275
- }] }, { type: undefined, decorators: [{
276
- type: Optional
277
- }, {
278
- type: Host
279
- }, {
280
- type: Inject,
281
- args: [KBQ_PARENT_ANIMATION_COMPONENT]
282
- }] }, { type: i0.NgZone }], propDecorators: { canGrow: [{
265
+ }], ctorParameters: () => [], propDecorators: { canGrow: [{
283
266
  type: Input,
284
267
  args: [{ transform: booleanAttribute }]
285
- }], maxRows: [{
286
- type: Input
287
- }], errorStateMatcher: [{
268
+ }], maxRows: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxRows", required: false }] }], errorStateMatcher: [{
288
269
  type: Input
289
270
  }], disabled: [{
290
271
  type: Input
@@ -302,11 +283,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
302
283
  }] } });
303
284
 
304
285
  class KbqTextareaModule {
305
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqTextareaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
306
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: KbqTextareaModule, imports: [A11yModule, FormsModule, KbqTextarea], exports: [KbqTextarea, KbqFormFieldModule] }); }
307
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqTextareaModule, imports: [A11yModule, FormsModule, KbqFormFieldModule] }); }
286
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqTextareaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
287
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqTextareaModule, imports: [A11yModule, FormsModule, KbqTextarea], exports: [KbqTextarea, KbqFormFieldModule] }); }
288
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqTextareaModule, imports: [A11yModule, FormsModule, KbqFormFieldModule] }); }
308
289
  }
309
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqTextareaModule, decorators: [{
290
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqTextareaModule, decorators: [{
310
291
  type: NgModule,
311
292
  args: [{
312
293
  imports: [A11yModule, FormsModule, KbqTextarea],
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-textarea.mjs","sources":["../../../packages/components/textarea/textarea.component.ts","../../../packages/components/textarea/textarea.module.ts","../../../packages/components/textarea/koobiq-components-textarea.ts"],"sourcesContent":["import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Platform } from '@angular/cdk/platform';\nimport {\n booleanAttribute,\n Directive,\n DoCheck,\n ElementRef,\n EventEmitter,\n Host,\n inject,\n Inject,\n InjectionToken,\n Input,\n NgZone,\n numberAttribute,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Renderer2,\n Self\n} from '@angular/core';\nimport { FormGroupDirective, NgControl, NgForm, UntypedFormControl } from '@angular/forms';\nimport {\n CanUpdateErrorState,\n ErrorStateMatcher,\n KBQ_PARENT_ANIMATION_COMPONENT,\n KBQ_VALIDATION,\n KBQ_WINDOW\n} from '@koobiq/components/core';\nimport { KbqFormFieldControl } from '@koobiq/components/form-field';\nimport { Subject, Subscription } from 'rxjs';\nimport { delay } from 'rxjs/operators';\n\nexport const KBQ_TEXTAREA_VALUE_ACCESSOR = new InjectionToken<{ value: any }>('KBQ_TEXTAREA_VALUE_ACCESSOR');\n\nlet nextUniqueId = 0;\n\n@Directive({\n selector: 'textarea[kbqTextarea]',\n exportAs: 'kbqTextarea',\n host: {\n class: 'kbq-textarea kbq-scrollbar',\n '[class.kbq-textarea-resizable]': '!canGrow',\n '[class.kbq-textarea_max-row-limit-reached]': 'maxRowLimitReached',\n '[attr.id]': 'id',\n '[attr.placeholder]': 'placeholder',\n '[attr.aria-invalid]': 'errorState',\n '[disabled]': 'disabled',\n '[required]': 'required',\n '(blur)': 'onBlur()',\n '(focus)': 'focusChanged(true)',\n '(paste)': 'stateChanges.next()'\n },\n providers: [{ provide: KbqFormFieldControl, useExisting: KbqTextarea }]\n})\nexport class KbqTextarea\n implements KbqFormFieldControl<any>, OnInit, OnChanges, OnDestroy, DoCheck, CanUpdateErrorState\n{\n private readonly useLegacyValidation = inject(KBQ_VALIDATION, { optional: true })?.useValidation ?? false;\n\n /** Whether the component is in an error state. */\n errorState: boolean = false;\n\n /** Parameter enables or disables the ability to automatically increase the height.\n * If set to false, the textarea becomes vertically resizable. */\n @Input({ transform: booleanAttribute })\n get canGrow(): boolean {\n return !this.maxRowLimitReached && this._canGrow;\n }\n\n set canGrow(value: boolean) {\n this._canGrow = value;\n }\n\n protected readonly isBrowser = inject(Platform).isBrowser;\n protected readonly renderer = inject(Renderer2);\n private readonly window = inject(KBQ_WINDOW);\n\n private _canGrow: boolean = true;\n\n /** Maximum number of lines to which the textarea will grow. Default unlimited */\n @Input() maxRows: number;\n\n /** An object used to control when error messages are shown. */\n @Input() errorStateMatcher: ErrorStateMatcher;\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n focused: boolean = false;\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n readonly stateChanges: Subject<void> = new Subject<void>();\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n controlType: string = 'textarea';\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n @Input()\n get disabled(): boolean {\n if (this.ngControl && this.ngControl.disabled !== null) {\n return this.ngControl.disabled;\n }\n\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n\n if (this.focused) {\n this.focused = false;\n this.stateChanges.next();\n }\n }\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this.uid;\n }\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n @Input() placeholder: string;\n\n /** Distance from the last line to the bottom border */\n @Input({ transform: numberAttribute }) freeRowsHeight: number;\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n @Input()\n get required(): boolean {\n return this._required;\n }\n\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n }\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n @Input()\n get value(): string {\n return this.valueAccessor.value;\n }\n\n set value(value: string) {\n if (value !== this.value) {\n this.valueAccessor.value = value;\n this.stateChanges.next();\n }\n }\n\n /** Flag that will be set to true when the maximum number of lines is reached.\n * Maximum number of rows can be set using the maxRows input. */\n get maxRowLimitReached(): boolean {\n return this.rowsCount > this.maxRows;\n }\n\n protected uid = `kbq-textarea-${nextUniqueId++}`;\n protected previousNativeValue: any;\n private _disabled = false;\n private _id: string;\n private _required = false;\n\n private valueAccessor: { value: any };\n private growSubscription: Subscription;\n\n private lineHeight: number = 0;\n private minHeight: number = 0;\n private rowsCount: number;\n\n constructor(\n protected elementRef: ElementRef<HTMLTextAreaElement>,\n @Optional() @Self() public ngControl: NgControl,\n @Optional() public parentForm: NgForm,\n @Optional() public parentFormGroup: FormGroupDirective,\n public defaultErrorStateMatcher: ErrorStateMatcher,\n @Optional() @Self() @Inject(KBQ_TEXTAREA_VALUE_ACCESSOR) inputValueAccessor: any,\n @Optional() @Host() @Inject(KBQ_PARENT_ANIMATION_COMPONENT) private parent: any,\n private ngZone: NgZone\n ) {\n // If no input value accessor was explicitly specified, use the element as the textarea value\n // accessor.\n this.valueAccessor = inputValueAccessor || this.elementRef.nativeElement;\n\n this.previousNativeValue = this.value;\n\n // Force setter to be called in case id was not specified.\n this.id = this.id;\n\n // eslint-disable-next-line @angular-eslint/no-lifecycle-call\n this.parent?.animationDone.subscribe(() => this.ngOnInit());\n\n this.growSubscription = this.stateChanges.pipe(delay(0)).subscribe(this.grow);\n }\n\n ngOnInit() {\n if (!this.isBrowser) return;\n\n Promise.resolve().then(() => {\n this.lineHeight = parseInt(this.window.getComputedStyle(this.elementRef.nativeElement).lineHeight!, 10);\n\n const paddingTop = parseInt(this.window.getComputedStyle(this.elementRef.nativeElement).paddingTop!, 10);\n const paddingBottom = parseInt(\n this.window.getComputedStyle(this.elementRef.nativeElement).paddingBottom!,\n 10\n );\n\n this.minHeight = this.lineHeight + paddingTop + paddingBottom;\n this.freeRowsHeight = this.freeRowsHeight ?? this.lineHeight;\n });\n\n setTimeout(this.grow, 0);\n }\n\n ngOnChanges() {\n this.stateChanges.next();\n }\n\n ngOnDestroy() {\n this.stateChanges.complete();\n this.growSubscription.unsubscribe();\n }\n\n ngDoCheck() {\n if (this.ngControl) {\n // We need to re-evaluate this on every change detection cycle, because there are some\n // error triggers that we can't subscribe to (e.g. parent form submissions). This means\n // that whatever logic is in here has to be super lean or we risk destroying the performance.\n this.updateErrorState();\n }\n\n // We need to dirty-check the native element's value, because there are some cases where\n // we won't be notified when it changes (e.g. the consumer isn't using forms or they're\n // updating the value using `emitEvent: false`).\n this.dirtyCheckNativeValue();\n }\n\n updateErrorState() {\n const oldState = this.errorState;\n const parent = this.parentFormGroup || this.parentForm;\n const matcher = this.errorStateMatcher || this.defaultErrorStateMatcher;\n const control = this.ngControl ? (this.ngControl.control as UntypedFormControl) : null;\n const newState = matcher.isErrorState(control, parent);\n\n if (newState !== oldState) {\n this.errorState = newState;\n this.stateChanges.next();\n }\n }\n\n onBlur(): void {\n this.focusChanged(false);\n\n if (this.useLegacyValidation && this.ngControl?.control) {\n const control = this.ngControl.control;\n\n control.updateValueAndValidity({ emitEvent: false });\n (control.statusChanges as EventEmitter<string>).emit(control.status);\n }\n }\n\n /** Grow textarea height to avoid vertical scroll */\n grow = () => {\n if (!this.isBrowser || !this._canGrow) return;\n\n this.ngZone.runOutsideAngular(() => {\n const textarea = this.elementRef.nativeElement;\n\n const clone = textarea.cloneNode(false) as HTMLTextAreaElement;\n\n this.renderer.appendChild(this.renderer.parentNode(textarea), clone);\n\n const outerHeight = parseInt(this.window.getComputedStyle(textarea).height!, 10);\n const diff = outerHeight - +textarea.clientHeight;\n\n clone.style.minHeight = '0'; // this line is important to height recalculation\n\n const height = Math.max(this.minHeight, +clone.scrollHeight + diff + this.freeRowsHeight);\n\n clone.remove();\n\n this.rowsCount = Math.floor(height / this.lineHeight);\n\n if (!this.maxRowLimitReached) {\n textarea.style.minHeight = `${height}px`;\n } else if (!textarea.style.minHeight && this.lineHeight) {\n // need for first initialization when value above maxRows\n textarea.style.minHeight = `${this.maxRows * this.lineHeight}px`;\n }\n });\n };\n\n /** Focuses the textarea. */\n focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n /** Callback for the cases where the focused state of the textarea changes. */\n focusChanged(isFocused: boolean) {\n if (isFocused !== this.focused) {\n this.focused = isFocused;\n this.stateChanges.next();\n }\n }\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n get empty(): boolean {\n return !this.elementRef.nativeElement.value && !this.isBadInput();\n }\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n onContainerClick() {\n this.focus();\n }\n\n /** Does some manual dirty checking on the native textarea `value` property. */\n protected dirtyCheckNativeValue() {\n const newValue = this.value;\n\n if (this.previousNativeValue !== newValue) {\n this.previousNativeValue = newValue;\n this.stateChanges.next();\n }\n }\n\n /** Checks whether the textarea is invalid based on the native validation. */\n protected isBadInput(): boolean {\n // The `validity` property won't be present on platform-server.\n const validity = (this.elementRef.nativeElement as HTMLTextAreaElement).validity;\n\n return validity && validity.badInput;\n }\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { KbqFormFieldModule } from '@koobiq/components/form-field';\nimport { KbqTextarea } from './textarea.component';\n\n@NgModule({\n imports: [A11yModule, FormsModule, KbqTextarea],\n exports: [KbqTextarea, KbqFormFieldModule]\n})\nexport class KbqTextareaModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"koobiq-components-textarea.mjs","sources":["../../../packages/components/textarea/textarea.component.ts","../../../packages/components/textarea/textarea.module.ts","../../../packages/components/textarea/koobiq-components-textarea.ts"],"sourcesContent":["import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Platform } from '@angular/cdk/platform';\nimport {\n booleanAttribute,\n Directive,\n DoCheck,\n ElementRef,\n inject,\n InjectionToken,\n Input,\n input,\n NgZone,\n numberAttribute,\n OnChanges,\n OnDestroy,\n OnInit,\n Renderer2\n} from '@angular/core';\nimport { FormGroupDirective, NgControl, NgForm, UntypedFormControl } from '@angular/forms';\nimport {\n CanUpdateErrorState,\n ErrorStateMatcher,\n KBQ_PARENT_ANIMATION_COMPONENT,\n KBQ_WINDOW\n} from '@koobiq/components/core';\nimport { KbqFormFieldControl } from '@koobiq/components/form-field';\nimport { Subject, Subscription } from 'rxjs';\nimport { delay } from 'rxjs/operators';\n\nexport const KBQ_TEXTAREA_VALUE_ACCESSOR = new InjectionToken<{ value: any }>('KBQ_TEXTAREA_VALUE_ACCESSOR');\n\nlet nextUniqueId = 0;\n\n@Directive({\n selector: 'textarea[kbqTextarea]',\n providers: [{ provide: KbqFormFieldControl, useExisting: KbqTextarea }],\n host: {\n class: 'kbq-textarea kbq-scrollbar',\n '[class.kbq-textarea-resizable]': '!canGrow',\n '[class.kbq-textarea_max-row-limit-reached]': 'maxRowLimitReached',\n '[attr.id]': 'id',\n '[attr.placeholder]': 'placeholder',\n '[attr.aria-invalid]': 'errorState',\n '[disabled]': 'disabled',\n '[required]': 'required',\n '(blur)': 'onBlur()',\n '(focus)': 'focusChanged(true)',\n '(paste)': 'stateChanges.next()'\n },\n exportAs: 'kbqTextarea'\n})\nexport class KbqTextarea\n implements KbqFormFieldControl<any>, OnInit, OnChanges, OnDestroy, DoCheck, CanUpdateErrorState\n{\n protected elementRef = inject<ElementRef<HTMLTextAreaElement>>(ElementRef);\n ngControl = inject(NgControl, { optional: true, self: true });\n parentForm = inject(NgForm, { optional: true });\n parentFormGroup = inject(FormGroupDirective, { optional: true });\n defaultErrorStateMatcher = inject(ErrorStateMatcher);\n private parent = inject(KBQ_PARENT_ANIMATION_COMPONENT, { optional: true, host: true });\n private ngZone = inject(NgZone);\n\n /** Whether the component is in an error state. */\n errorState: boolean = false;\n\n /** Parameter enables or disables the ability to automatically increase the height.\n * If set to false, the textarea becomes vertically resizable. */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input({ transform: booleanAttribute })\n get canGrow(): boolean {\n return !this.maxRowLimitReached && this._canGrow;\n }\n\n set canGrow(value: boolean) {\n this._canGrow = value;\n }\n\n protected readonly isBrowser = inject(Platform).isBrowser;\n protected readonly renderer = inject(Renderer2);\n private readonly window = inject(KBQ_WINDOW);\n\n private _canGrow: boolean = true;\n\n /** Maximum number of lines to which the textarea will grow. Default unlimited */\n readonly maxRows = input<number>(undefined!);\n\n /** An object used to control when error messages are shown. */\n // TODO: Skipped for migration because:\n // This input overrides a field from a superclass, while the superclass field\n // is not migrated.\n @Input() errorStateMatcher: ErrorStateMatcher;\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n focused: boolean = false;\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n readonly stateChanges: Subject<void> = new Subject<void>();\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n controlType: string = 'textarea';\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get disabled(): boolean {\n if (this.ngControl && this.ngControl.disabled !== null) {\n return this.ngControl.disabled;\n }\n\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n\n if (this.focused) {\n this.focused = false;\n this.stateChanges.next();\n }\n }\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this.uid;\n }\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n // TODO: Skipped for migration because:\n // This input overrides a field from a superclass, while the superclass field\n // is not migrated.\n @Input() placeholder: string;\n\n /** Distance from the last line to the bottom border */\n // TODO: Skipped for migration because:\n // Your application code writes to the input. This prevents migration.\n @Input({ transform: numberAttribute }) freeRowsHeight: number;\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get required(): boolean {\n return this._required;\n }\n\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n }\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get value(): string {\n return this.valueAccessor.value;\n }\n\n set value(value: string) {\n if (value !== this.value) {\n this.valueAccessor.value = value;\n this.stateChanges.next();\n }\n }\n\n /** Flag that will be set to true when the maximum number of lines is reached.\n * Maximum number of rows can be set using the maxRows input. */\n get maxRowLimitReached(): boolean {\n return this.rowsCount > this.maxRows();\n }\n\n protected uid = `kbq-textarea-${nextUniqueId++}`;\n protected previousNativeValue: any;\n private _disabled = false;\n private _id: string;\n private _required = false;\n\n private valueAccessor: { value: any };\n private growSubscription: Subscription;\n\n private lineHeight: number = 0;\n private minHeight: number = 0;\n private rowsCount: number;\n\n constructor() {\n const inputValueAccessor = inject(KBQ_TEXTAREA_VALUE_ACCESSOR, { optional: true, self: true });\n\n // If no input value accessor was explicitly specified, use the element as the textarea value\n // accessor.\n this.valueAccessor = inputValueAccessor || this.elementRef.nativeElement;\n\n this.previousNativeValue = this.value;\n\n // Force setter to be called in case id was not specified.\n this.id = this.id;\n\n // eslint-disable-next-line @angular-eslint/no-lifecycle-call\n this.parent?.animationDone.subscribe(() => this.ngOnInit());\n\n this.growSubscription = this.stateChanges.pipe(delay(0)).subscribe(this.grow);\n }\n\n ngOnInit() {\n if (!this.isBrowser) return;\n\n Promise.resolve().then(() => {\n this.lineHeight = parseInt(this.window.getComputedStyle(this.elementRef.nativeElement).lineHeight!, 10);\n\n const paddingTop = parseInt(this.window.getComputedStyle(this.elementRef.nativeElement).paddingTop!, 10);\n const paddingBottom = parseInt(\n this.window.getComputedStyle(this.elementRef.nativeElement).paddingBottom!,\n 10\n );\n\n this.minHeight = this.lineHeight + paddingTop + paddingBottom;\n this.freeRowsHeight = this.freeRowsHeight ?? this.lineHeight;\n });\n\n setTimeout(this.grow, 0);\n }\n\n ngOnChanges() {\n this.stateChanges.next();\n }\n\n ngOnDestroy() {\n this.stateChanges.complete();\n this.growSubscription.unsubscribe();\n }\n\n ngDoCheck() {\n if (this.ngControl) {\n // We need to re-evaluate this on every change detection cycle, because there are some\n // error triggers that we can't subscribe to (e.g. parent form submissions). This means\n // that whatever logic is in here has to be super lean or we risk destroying the performance.\n this.updateErrorState();\n }\n\n // We need to dirty-check the native element's value, because there are some cases where\n // we won't be notified when it changes (e.g. the consumer isn't using forms or they're\n // updating the value using `emitEvent: false`).\n this.dirtyCheckNativeValue();\n }\n\n updateErrorState() {\n const oldState = this.errorState;\n const parent = this.parentFormGroup || this.parentForm;\n const matcher = this.errorStateMatcher || this.defaultErrorStateMatcher;\n const control = this.ngControl ? (this.ngControl.control as UntypedFormControl) : null;\n const newState = matcher.isErrorState(control, parent);\n\n if (newState !== oldState) {\n this.errorState = newState;\n this.stateChanges.next();\n }\n }\n\n onBlur(): void {\n this.focusChanged(false);\n }\n\n /** Grow textarea height to avoid vertical scroll */\n grow = () => {\n if (!this.isBrowser || !this._canGrow) return;\n\n this.ngZone.runOutsideAngular(() => {\n const textarea = this.elementRef.nativeElement;\n\n const clone = textarea.cloneNode(false) as HTMLTextAreaElement;\n\n this.renderer.appendChild(this.renderer.parentNode(textarea), clone);\n\n const outerHeight = parseInt(this.window.getComputedStyle(textarea).height!, 10);\n const diff = outerHeight - +textarea.clientHeight;\n\n clone.style.minHeight = '0'; // this line is important to height recalculation\n\n const height = Math.max(this.minHeight, +clone.scrollHeight + diff + this.freeRowsHeight);\n\n clone.remove();\n\n this.rowsCount = Math.floor(height / this.lineHeight);\n\n if (!this.maxRowLimitReached) {\n textarea.style.minHeight = `${height}px`;\n } else if (!textarea.style.minHeight && this.lineHeight) {\n // need for first initialization when value above maxRows\n textarea.style.minHeight = `${this.maxRows() * this.lineHeight}px`;\n }\n });\n };\n\n /** Focuses the textarea. */\n focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n /** Callback for the cases where the focused state of the textarea changes. */\n focusChanged(isFocused: boolean) {\n if (isFocused !== this.focused) {\n this.focused = isFocused;\n this.stateChanges.next();\n }\n }\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n get empty(): boolean {\n return !this.elementRef.nativeElement.value && !this.isBadInput();\n }\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n onContainerClick() {\n this.focus();\n }\n\n /** Does some manual dirty checking on the native textarea `value` property. */\n protected dirtyCheckNativeValue() {\n const newValue = this.value;\n\n if (this.previousNativeValue !== newValue) {\n this.previousNativeValue = newValue;\n this.stateChanges.next();\n }\n }\n\n /** Checks whether the textarea is invalid based on the native validation. */\n protected isBadInput(): boolean {\n // The `validity` property won't be present on platform-server.\n const validity = (this.elementRef.nativeElement as HTMLTextAreaElement).validity;\n\n return validity && validity.badInput;\n }\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { KbqFormFieldModule } from '@koobiq/components/form-field';\nimport { KbqTextarea } from './textarea.component';\n\n@NgModule({\n imports: [A11yModule, FormsModule, KbqTextarea],\n exports: [KbqTextarea, KbqFormFieldModule]\n})\nexport class KbqTextareaModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}