@koobiq/components 19.8.0 → 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 (685) 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 +125 -125
  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 +1630 -618
  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 +159 -161
  100. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  101. package/fesm2022/koobiq-components-notification-center.mjs +54 -55
  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/notification-center/index.d.ts +237 -1
  177. package/notification-center/notification-center.scss +0 -8
  178. package/overflow-items/index.d.ts +161 -2
  179. package/package.json +10 -18
  180. package/popover/index.d.ts +182 -1
  181. package/popover/popover.scss +8 -12
  182. package/prebuilt-themes/dark-theme.css +1 -1
  183. package/prebuilt-themes/light-theme.css +1 -1
  184. package/prebuilt-themes/theme.css +1 -1
  185. package/progress-bar/index.d.ts +31 -1
  186. package/progress-spinner/index.d.ts +37 -1
  187. package/radio/index.d.ts +207 -1
  188. package/resizer/index.d.ts +85 -2
  189. package/schematics/collection.json +5 -0
  190. package/schematics/migrations/css-selectors/index.js +1 -1
  191. package/schematics/migrations/deprecated-icons/index.js +1 -1
  192. package/schematics/migrations/new-icons-pack/index.js +1 -1
  193. package/schematics/migrations/v20-upgrade/README.md +72 -0
  194. package/schematics/migrations/v20-upgrade/data.js +274 -0
  195. package/schematics/migrations/v20-upgrade/index.js +222 -0
  196. package/schematics/migrations/v20-upgrade/schema.json +20 -0
  197. package/schematics/migrations.json +10 -0
  198. package/schematics/ng-add/index.js +3 -4
  199. package/scrollbar/index.d.ts +136 -1
  200. package/search-expandable/index.d.ts +98 -1
  201. package/select/index.d.ts +693 -1
  202. package/sidebar/index.d.ts +92 -1
  203. package/sidepanel/index.d.ts +263 -1
  204. package/sidepanel/sidepanel.scss +0 -8
  205. package/skeleton/index.d.ts +26 -2
  206. package/split-button/index.d.ts +46 -1
  207. package/splitter/index.d.ts +141 -1
  208. package/table/index.d.ts +23 -1
  209. package/tabs/_tabs-common.scss +31 -1
  210. package/tabs/_tabs-theme.scss +2 -2
  211. package/tabs/index.d.ts +645 -1
  212. package/tags/index.d.ts +706 -1
  213. package/textarea/index.d.ts +134 -1
  214. package/time-range/index.d.ts +310 -7
  215. package/timepicker/index.d.ts +193 -1
  216. package/timezone/index.d.ts +122 -1
  217. package/title/index.d.ts +41 -1
  218. package/toast/index.d.ts +164 -1
  219. package/toggle/index.d.ts +84 -1
  220. package/tooltip/index.d.ts +163 -1
  221. package/top-bar/index.d.ts +33 -1
  222. package/tree/_tree-theme.scss +4 -0
  223. package/tree/index.d.ts +718 -1
  224. package/tree/tree-option.scss +20 -7
  225. package/tree-select/_tree-select-theme.scss +39 -0
  226. package/tree-select/index.d.ts +377 -1
  227. package/username/index.d.ts +176 -5
  228. package/accordion/accordion-content.d.ts +0 -6
  229. package/accordion/accordion-content.directive.d.ts +0 -27
  230. package/accordion/accordion-header.d.ts +0 -6
  231. package/accordion/accordion-header.directive.d.ts +0 -7
  232. package/accordion/accordion-item.d.ts +0 -77
  233. package/accordion/accordion-trigger.component.d.ts +0 -24
  234. package/accordion/accordion-trigger.directive.d.ts +0 -21
  235. package/accordion/accordion.component.d.ts +0 -79
  236. package/accordion/accordion.module.d.ts +0 -12
  237. package/accordion/public-api.d.ts +0 -9
  238. package/actions-panel/actions-panel-config.d.ts +0 -82
  239. package/actions-panel/actions-panel-container.d.ts +0 -90
  240. package/actions-panel/actions-panel-ref.d.ts +0 -44
  241. package/actions-panel/actions-panel.d.ts +0 -84
  242. package/actions-panel/module.d.ts +0 -7
  243. package/alert/alert.component.d.ts +0 -43
  244. package/alert/alert.module.d.ts +0 -9
  245. package/alert/public-api.d.ts +0 -2
  246. package/app-switcher/app-switcher-animations.d.ts +0 -5
  247. package/app-switcher/app-switcher-dropdown-app.d.ts +0 -11
  248. package/app-switcher/app-switcher-dropdown-site.d.ts +0 -9
  249. package/app-switcher/app-switcher.d.ts +0 -198
  250. package/app-switcher/app-switcher.module.d.ts +0 -10
  251. package/app-switcher/kbq-app-switcher-list-item.d.ts +0 -16
  252. package/app-switcher/public-api.d.ts +0 -6
  253. package/autocomplete/autocomplete-origin.directive.d.ts +0 -12
  254. package/autocomplete/autocomplete-trigger.directive.d.ts +0 -169
  255. package/autocomplete/autocomplete.component.d.ts +0 -88
  256. package/autocomplete/autocomplete.module.d.ts +0 -12
  257. package/autocomplete/public-api.d.ts +0 -4
  258. package/badge/badge.component.d.ts +0 -46
  259. package/badge/badge.module.d.ts +0 -9
  260. package/badge/public-api.d.ts +0 -2
  261. package/breadcrumbs/breadcrumbs.d.ts +0 -127
  262. package/breadcrumbs/breadcrumbs.module.d.ts +0 -7
  263. package/breadcrumbs/breadcrumbs.types.d.ts +0 -22
  264. package/breadcrumbs/public-api.d.ts +0 -5
  265. package/breadcrumbs/roving-focus-group.directive.d.ts +0 -50
  266. package/breadcrumbs/roving-focus-item.directive.d.ts +0 -50
  267. package/breadcrumbs/utils.d.ts +0 -19
  268. package/button/button-group.d.ts +0 -45
  269. package/button/button.component.d.ts +0 -59
  270. package/button/button.dropdown-trigger.directive.d.ts +0 -14
  271. package/button/button.module.d.ts +0 -12
  272. package/button/public-api.d.ts +0 -4
  273. package/button-toggle/button-toggle.component.d.ts +0 -146
  274. package/button-toggle/button-toggle.module.d.ts +0 -9
  275. package/button-toggle/public-api.d.ts +0 -2
  276. package/checkbox/checkbox-config.d.ts +0 -13
  277. package/checkbox/checkbox-module.d.ts +0 -9
  278. package/checkbox/checkbox-required-validator.d.ts +0 -13
  279. package/checkbox/checkbox.d.ts +0 -128
  280. package/checkbox/public-api.d.ts +0 -4
  281. package/clamped-text/clamped-list.d.ts +0 -41
  282. package/clamped-text/clamped-text.d.ts +0 -65
  283. package/clamped-text/constants.d.ts +0 -34
  284. package/clamped-text/module.d.ts +0 -8
  285. package/code-block/code-block-highlight.d.ts +0 -98
  286. package/code-block/code-block.d.ts +0 -255
  287. package/code-block/code-block.module.d.ts +0 -7
  288. package/code-block/public-api.d.ts +0 -4
  289. package/code-block/types.d.ts +0 -36
  290. package/content-panel/content-panel.d.ts +0 -149
  291. package/content-panel/module.d.ts +0 -7
  292. package/core/animation/animation.d.ts +0 -37
  293. package/core/animation/fade-animations.d.ts +0 -2
  294. package/core/animation/index.d.ts +0 -3
  295. package/core/animation/select-animations.d.ts +0 -12
  296. package/core/common-behaviors/checkbox.d.ts +0 -5
  297. package/core/common-behaviors/clipboard.d.ts +0 -12
  298. package/core/common-behaviors/color.d.ts +0 -50
  299. package/core/common-behaviors/common-module.d.ts +0 -38
  300. package/core/common-behaviors/constructor.d.ts +0 -9
  301. package/core/common-behaviors/disabled.d.ts +0 -8
  302. package/core/common-behaviors/error-state.d.ts +0 -46
  303. package/core/common-behaviors/flex.d.ts +0 -4
  304. package/core/common-behaviors/hover.d.ts +0 -15
  305. package/core/common-behaviors/index.d.ts +0 -14
  306. package/core/common-behaviors/orientation.d.ts +0 -4
  307. package/core/common-behaviors/read-state.d.ts +0 -12
  308. package/core/common-behaviors/size.d.ts +0 -4
  309. package/core/common-behaviors/tabindex.d.ts +0 -8
  310. package/core/datetime/date-adapter.d.ts +0 -12
  311. package/core/datetime/date-formats.d.ts +0 -4
  312. package/core/datetime/index.d.ts +0 -2
  313. package/core/error/error-state-matcher.d.ts +0 -39
  314. package/core/form-field/field-sizing-content.d.ts +0 -21
  315. package/core/form-field/form-field-ref.d.ts +0 -28
  316. package/core/form-field/index.d.ts +0 -2
  317. package/core/formatters/date/formatter.d.ts +0 -11
  318. package/core/formatters/date/formatter.pipe.d.ts +0 -139
  319. package/core/formatters/filesize/config.d.ts +0 -66
  320. package/core/formatters/filesize/formatter.d.ts +0 -17
  321. package/core/formatters/filesize/index.d.ts +0 -3
  322. package/core/formatters/filesize/size.d.ts +0 -52
  323. package/core/formatters/index.d.ts +0 -13
  324. package/core/formatters/number/formatter.d.ts +0 -101
  325. package/core/forms/forms-module.d.ts +0 -7
  326. package/core/forms/forms.directive.d.ts +0 -22
  327. package/core/forms/index.d.ts +0 -3
  328. package/core/forms/validators.d.ts +0 -120
  329. package/core/highlight/highlight.pipe.d.ts +0 -10
  330. package/core/highlight/index.d.ts +0 -9
  331. package/core/line/line.d.ts +0 -23
  332. package/core/locales/en-US.d.ts +0 -175
  333. package/core/locales/es-LA.d.ts +0 -174
  334. package/core/locales/formatters.d.ts +0 -190
  335. package/core/locales/index.d.ts +0 -9
  336. package/core/locales/locale-service.d.ts +0 -1112
  337. package/core/locales/locale-service.module.d.ts +0 -6
  338. package/core/locales/pt-BR.d.ts +0 -174
  339. package/core/locales/ru-RU.d.ts +0 -175
  340. package/core/locales/tk-TM.d.ts +0 -175
  341. package/core/locales/types.d.ts +0 -77
  342. package/core/navbar/index.d.ts +0 -1
  343. package/core/navbar/rectangle-item.d.ts +0 -14
  344. package/core/option/action-container.d.ts +0 -5
  345. package/core/option/action.d.ts +0 -38
  346. package/core/option/index.d.ts +0 -5
  347. package/core/option/optgroup.d.ts +0 -16
  348. package/core/option/option-module.d.ts +0 -10
  349. package/core/option/option.d.ts +0 -170
  350. package/core/overlay/overlay-position-map.d.ts +0 -40
  351. package/core/pop-up/constants.d.ts +0 -56
  352. package/core/pop-up/focus-trap-strategy.d.ts +0 -5
  353. package/core/pop-up/index.d.ts +0 -5
  354. package/core/pop-up/pop-up-styles.d.ts +0 -2
  355. package/core/pop-up/pop-up-trigger.d.ts +0 -104
  356. package/core/pop-up/pop-up.d.ts +0 -57
  357. package/core/public-api.d.ts +0 -23
  358. package/core/select/common.d.ts +0 -59
  359. package/core/select/constants.d.ts +0 -22
  360. package/core/select/errors.d.ts +0 -19
  361. package/core/select/events.d.ts +0 -1
  362. package/core/select/index.d.ts +0 -4
  363. package/core/selection/constants.d.ts +0 -4
  364. package/core/selection/index.d.ts +0 -3
  365. package/core/selection/pseudo-checkbox/pseudo-checkbox.d.ts +0 -23
  366. package/core/selection/pseudo-checkbox/pseudo-checkbox.module.d.ts +0 -8
  367. package/core/services/measure-scrollbar.service.d.ts +0 -11
  368. package/core/services/theme.service.d.ts +0 -41
  369. package/core/title/index.d.ts +0 -1
  370. package/core/title/title-text-ref.d.ts +0 -6
  371. package/core/tokens/index.d.ts +0 -1
  372. package/core/tokens/window.d.ts +0 -5
  373. package/core/utils/dom.d.ts +0 -4
  374. package/core/utils/index.d.ts +0 -2
  375. package/core/utils/public-api.d.ts +0 -1
  376. package/core/utils/utils.d.ts +0 -25
  377. package/core/validation/index.d.ts +0 -1
  378. package/core/validation/validation.d.ts +0 -29
  379. package/core/version.d.ts +0 -2
  380. package/datepicker/calendar-body.component.d.ts +0 -55
  381. package/datepicker/calendar-header.component.d.ts +0 -51
  382. package/datepicker/calendar.component.d.ts +0 -89
  383. package/datepicker/datepicker-animations.d.ts +0 -9
  384. package/datepicker/datepicker-errors.d.ts +0 -2
  385. package/datepicker/datepicker-input.directive.d.ts +0 -221
  386. package/datepicker/datepicker-intl.d.ts +0 -32
  387. package/datepicker/datepicker-module.d.ts +0 -21
  388. package/datepicker/datepicker-toggle.component.d.ts +0 -57
  389. package/datepicker/datepicker.component.d.ts +0 -148
  390. package/datepicker/month-view.component.d.ts +0 -73
  391. package/datepicker/public-api.d.ts +0 -10
  392. package/divider/divider.component.d.ts +0 -18
  393. package/divider/divider.module.d.ts +0 -8
  394. package/divider/public-api.d.ts +0 -2
  395. package/dl/dl.component.d.ts +0 -26
  396. package/dl/dl.module.d.ts +0 -9
  397. package/dl/public-api.d.ts +0 -2
  398. package/dropdown/dropdown-animations.d.ts +0 -11
  399. package/dropdown/dropdown-content.directive.d.ts +0 -32
  400. package/dropdown/dropdown-errors.d.ts +0 -17
  401. package/dropdown/dropdown-item.component.d.ts +0 -52
  402. package/dropdown/dropdown-trigger.directive.d.ts +0 -156
  403. package/dropdown/dropdown.component.d.ts +0 -126
  404. package/dropdown/dropdown.module.d.ts +0 -13
  405. package/dropdown/dropdown.types.d.ts +0 -67
  406. package/dropdown/public-api.d.ts +0 -8
  407. package/dynamic-translation/dynamic-translation.d.ts +0 -72
  408. package/dynamic-translation/module.d.ts +0 -7
  409. package/ellipsis-center/ellipsis-center.directive.d.ts +0 -36
  410. package/ellipsis-center/public-api.d.ts +0 -1
  411. package/empty-state/empty-state.component.d.ts +0 -36
  412. package/empty-state/empty-state.module.d.ts +0 -9
  413. package/empty-state/public-api.d.ts +0 -2
  414. package/fesm2022/koobiq-components-navbar-ic.mjs +0 -863
  415. package/fesm2022/koobiq-components-navbar-ic.mjs.map +0 -1
  416. package/fesm2022/koobiq-components-risk-level.mjs +0 -75
  417. package/fesm2022/koobiq-components-risk-level.mjs.map +0 -1
  418. package/file-upload/dropzone.d.ts +0 -147
  419. package/file-upload/file-upload.d.ts +0 -102
  420. package/file-upload/file-upload.module.d.ts +0 -20
  421. package/file-upload/multiple-file-upload.component.d.ts +0 -138
  422. package/file-upload/primitives/file-drop.d.ts +0 -35
  423. package/file-upload/primitives/file-picker.d.ts +0 -82
  424. package/file-upload/primitives/index.d.ts +0 -2
  425. package/file-upload/public-api.d.ts +0 -7
  426. package/file-upload/single-file-upload.component.d.ts +0 -118
  427. package/filter-bar/filter-bar-button.d.ts +0 -14
  428. package/filter-bar/filter-bar.d.ts +0 -81
  429. package/filter-bar/filter-bar.module.d.ts +0 -17
  430. package/filter-bar/filter-bar.types.d.ts +0 -143
  431. package/filter-bar/filter-refresher.d.ts +0 -5
  432. package/filter-bar/filter-reset.d.ts +0 -15
  433. package/filter-bar/filter-search.d.ts +0 -54
  434. package/filter-bar/filter-search.scss +0 -12
  435. package/filter-bar/filters.d.ts +0 -122
  436. package/filter-bar/pipe-add.d.ts +0 -28
  437. package/filter-bar/pipe.directive.d.ts +0 -13
  438. package/filter-bar/pipes/base-pipe.d.ts +0 -74
  439. package/filter-bar/pipes/pipe-button.d.ts +0 -21
  440. package/filter-bar/pipes/pipe-date.d.ts +0 -65
  441. package/filter-bar/pipes/pipe-datetime.d.ts +0 -66
  442. package/filter-bar/pipes/pipe-multi-select.d.ts +0 -56
  443. package/filter-bar/pipes/pipe-multi-tree-select.d.ts +0 -67
  444. package/filter-bar/pipes/pipe-readonly.d.ts +0 -7
  445. package/filter-bar/pipes/pipe-select.d.ts +0 -30
  446. package/filter-bar/pipes/pipe-state.d.ts +0 -21
  447. package/filter-bar/pipes/pipe-text.d.ts +0 -26
  448. package/filter-bar/pipes/pipe-title.d.ts +0 -27
  449. package/filter-bar/pipes/pipe-tree-select.d.ts +0 -42
  450. package/filter-bar/public-api.d.ts +0 -21
  451. package/form-field/cleaner.d.ts +0 -11
  452. package/form-field/error.d.ts +0 -8
  453. package/form-field/fieldset.d.ts +0 -27
  454. package/form-field/form-field-control.d.ts +0 -40
  455. package/form-field/form-field.d.ts +0 -298
  456. package/form-field/form-field.module.d.ts +0 -19
  457. package/form-field/hint.d.ts +0 -15
  458. package/form-field/label.d.ts +0 -6
  459. package/form-field/password-hint.d.ts +0 -53
  460. package/form-field/password-toggle.d.ts +0 -56
  461. package/form-field/prefix.d.ts +0 -6
  462. package/form-field/public-api.d.ts +0 -15
  463. package/form-field/reactive-password-hint.d.ts +0 -20
  464. package/form-field/stepper.d.ts +0 -59
  465. package/form-field/suffix.d.ts +0 -6
  466. package/form-field/validate.directive.d.ts +0 -53
  467. package/icon/icon-button.component.d.ts +0 -28
  468. package/icon/icon-item.component.d.ts +0 -11
  469. package/icon/icon-registry-providers.d.ts +0 -34
  470. package/icon/icon-registry.d.ts +0 -50
  471. package/icon/icon.component.d.ts +0 -33
  472. package/icon/icon.module.d.ts +0 -9
  473. package/icon/public-api.d.ts +0 -6
  474. package/inline-edit/inline-edit.d.ts +0 -161
  475. package/inline-edit/module.d.ts +0 -7
  476. package/input/input-errors.d.ts +0 -1
  477. package/input/input-number-validators.d.ts +0 -35
  478. package/input/input-number.d.ts +0 -96
  479. package/input/input-password.d.ts +0 -99
  480. package/input/input-value-accessor.d.ts +0 -4
  481. package/input/input.d.ts +0 -109
  482. package/input/input.module.d.ts +0 -14
  483. package/input/public-api.d.ts +0 -6
  484. package/link/link.component.d.ts +0 -53
  485. package/link/link.module.d.ts +0 -8
  486. package/link/public-api.d.ts +0 -2
  487. package/list/list-selection.component.d.ts +0 -196
  488. package/list/list.component.d.ts +0 -18
  489. package/list/list.module.d.ts +0 -11
  490. package/list/public-api.d.ts +0 -3
  491. package/loader-overlay/loader-overlay.component.d.ts +0 -47
  492. package/loader-overlay/loader-overlay.module.d.ts +0 -10
  493. package/loader-overlay/public-api.d.ts +0 -2
  494. package/markdown/markdown.component.d.ts +0 -31
  495. package/markdown/markdown.module.d.ts +0 -7
  496. package/markdown/markdown.service.d.ts +0 -19
  497. package/markdown/markdown.values.d.ts +0 -10
  498. package/markdown/public-api.d.ts +0 -4
  499. package/modal/css-unit.pipe.d.ts +0 -7
  500. package/modal/modal-control.service.d.ts +0 -20
  501. package/modal/modal-ref.class.d.ts +0 -37
  502. package/modal/modal-util.d.ts +0 -15
  503. package/modal/modal.component.d.ts +0 -141
  504. package/modal/modal.directive.d.ts +0 -20
  505. package/modal/modal.module.d.ts +0 -15
  506. package/modal/modal.service.d.ts +0 -42
  507. package/modal/modal.type.d.ts +0 -72
  508. package/modal/public-api.d.ts +0 -6
  509. package/navbar/navbar-brand.component.d.ts +0 -41
  510. package/navbar/navbar-item.component.d.ts +0 -131
  511. package/navbar/navbar-toggle.component.d.ts +0 -23
  512. package/navbar/navbar.component.d.ts +0 -68
  513. package/navbar/navbar.module.d.ts +0 -15
  514. package/navbar/public-api.d.ts +0 -6
  515. package/navbar/vertical-navbar.component.d.ts +0 -47
  516. package/navbar-ic/_navbar-ic-theme.scss +0 -81
  517. package/navbar-ic/index.d.ts +0 -1
  518. package/navbar-ic/navbar-ic-divider.scss +0 -7
  519. package/navbar-ic/navbar-ic-header.d.ts +0 -22
  520. package/navbar-ic/navbar-ic-header.scss +0 -49
  521. package/navbar-ic/navbar-ic-item.d.ts +0 -144
  522. package/navbar-ic/navbar-ic-item.scss +0 -92
  523. package/navbar-ic/navbar-ic-tokens.scss +0 -22
  524. package/navbar-ic/navbar-ic.animation.d.ts +0 -3
  525. package/navbar-ic/navbar-ic.d.ts +0 -118
  526. package/navbar-ic/navbar-ic.module.d.ts +0 -14
  527. package/navbar-ic/navbar-ic.scss +0 -32
  528. package/navbar-ic/public-api.d.ts +0 -4
  529. package/notification-center/notification-center-animations.d.ts +0 -5
  530. package/notification-center/notification-center.d.ts +0 -156
  531. package/notification-center/notification-center.module.d.ts +0 -7
  532. package/notification-center/notification-center.service.d.ts +0 -72
  533. package/notification-center/notification-item.d.ts +0 -27
  534. package/notification-center/public-api.d.ts +0 -4
  535. package/overflow-items/module.d.ts +0 -7
  536. package/overflow-items/overflow-items.d.ts +0 -152
  537. package/popover/popover-animations.d.ts +0 -4
  538. package/popover/popover-confirm.component.d.ts +0 -28
  539. package/popover/popover.component.d.ts +0 -139
  540. package/popover/popover.module.d.ts +0 -14
  541. package/popover/public-api.d.ts +0 -4
  542. package/progress-bar/progress-bar.component.d.ts +0 -20
  543. package/progress-bar/progress-bar.module.d.ts +0 -8
  544. package/progress-bar/public-api.d.ts +0 -2
  545. package/progress-spinner/progress-spinner.component.d.ts +0 -26
  546. package/progress-spinner/progress-spinner.module.d.ts +0 -9
  547. package/progress-spinner/public-api.d.ts +0 -2
  548. package/public-api.d.ts +0 -1
  549. package/radio/public-api.d.ts +0 -2
  550. package/radio/radio.component.d.ts +0 -200
  551. package/radio/radio.module.d.ts +0 -8
  552. package/resizer/module.d.ts +0 -7
  553. package/resizer/resizer.d.ts +0 -75
  554. package/risk-level/_risk-level-theme.scss +0 -74
  555. package/risk-level/index.d.ts +0 -1
  556. package/risk-level/public-api.d.ts +0 -2
  557. package/risk-level/risk-level-tokens.scss +0 -33
  558. package/risk-level/risk-level.component.d.ts +0 -21
  559. package/risk-level/risk-level.component.scss +0 -22
  560. package/risk-level/risk-level.module.d.ts +0 -12
  561. package/scrollbar/public-api.d.ts +0 -4
  562. package/scrollbar/scrollbar.component.d.ts +0 -37
  563. package/scrollbar/scrollbar.directive.d.ts +0 -29
  564. package/scrollbar/scrollbar.module.d.ts +0 -8
  565. package/scrollbar/scrollbar.types.d.ts +0 -33
  566. package/search-expandable/public-api.d.ts +0 -2
  567. package/search-expandable/search-expandable.d.ts +0 -89
  568. package/search-expandable/search-expandable.module.d.ts +0 -7
  569. package/select/public-api.d.ts +0 -4
  570. package/select/select-common.d.ts +0 -30
  571. package/select/select-option.directive.d.ts +0 -21
  572. package/select/select.component.d.ts +0 -627
  573. package/select/select.module.d.ts +0 -17
  574. package/sidebar/public-api.d.ts +0 -2
  575. package/sidebar/sidebar-animations.d.ts +0 -8
  576. package/sidebar/sidebar.component.d.ts +0 -80
  577. package/sidebar/sidebar.module.d.ts +0 -8
  578. package/sidepanel/public-api.d.ts +0 -6
  579. package/sidepanel/sidepanel-animations.d.ts +0 -20
  580. package/sidepanel/sidepanel-config.d.ts +0 -43
  581. package/sidepanel/sidepanel-container.component.d.ts +0 -67
  582. package/sidepanel/sidepanel-directives.d.ts +0 -61
  583. package/sidepanel/sidepanel-ref.d.ts +0 -36
  584. package/sidepanel/sidepanel.module.d.ts +0 -14
  585. package/sidepanel/sidepanel.service.d.ts +0 -58
  586. package/skeleton/module.d.ts +0 -7
  587. package/skeleton/skeleton.d.ts +0 -17
  588. package/split-button/public-api.d.ts +0 -2
  589. package/split-button/split-button.d.ts +0 -37
  590. package/split-button/split-button.module.d.ts +0 -7
  591. package/splitter/public-api.d.ts +0 -2
  592. package/splitter/splitter.component.d.ts +0 -136
  593. package/splitter/splitter.module.d.ts +0 -8
  594. package/table/public-api.d.ts +0 -2
  595. package/table/table.component.d.ts +0 -12
  596. package/table/table.module.d.ts +0 -9
  597. package/tabs/paginated-tab-header.d.ts +0 -182
  598. package/tabs/public-api.d.ts +0 -10
  599. package/tabs/tab-body.component.d.ts +0 -95
  600. package/tabs/tab-content.directive.d.ts +0 -9
  601. package/tabs/tab-group.component.d.ts +0 -137
  602. package/tabs/tab-header.component.d.ts +0 -32
  603. package/tabs/tab-label-wrapper.directive.d.ts +0 -29
  604. package/tabs/tab-label.directive.d.ts +0 -9
  605. package/tabs/tab-nav-bar.d.ts +0 -91
  606. package/tabs/tab.component.d.ts +0 -68
  607. package/tabs/tabs-animations.d.ts +0 -4
  608. package/tabs/tabs.module.d.ts +0 -20
  609. package/tags/public-api.d.ts +0 -5
  610. package/tags/tag-default-options.d.ts +0 -13
  611. package/tags/tag-input.d.ts +0 -110
  612. package/tags/tag-list.component.d.ts +0 -373
  613. package/tags/tag-text-control.d.ts +0 -10
  614. package/tags/tag.component.d.ts +0 -272
  615. package/tags/tag.module.d.ts +0 -10
  616. package/textarea/public-api.d.ts +0 -2
  617. package/textarea/textarea.component.d.ts +0 -123
  618. package/textarea/textarea.module.d.ts +0 -10
  619. package/time-range/constants.d.ts +0 -19
  620. package/time-range/module.d.ts +0 -10
  621. package/time-range/time-range-editor.d.ts +0 -65
  622. package/time-range/time-range-title-as-form-field.d.ts +0 -41
  623. package/time-range/time-range-title.d.ts +0 -18
  624. package/time-range/time-range.d.ts +0 -78
  625. package/time-range/time-range.service.d.ts +0 -25
  626. package/time-range/types.d.ts +0 -69
  627. package/timepicker/public-api.d.ts +0 -3
  628. package/timepicker/timepicker.constants.d.ts +0 -22
  629. package/timepicker/timepicker.directive.d.ts +0 -159
  630. package/timepicker/timepicker.module.d.ts +0 -11
  631. package/timezone/cities-by-filter.pipe.d.ts +0 -7
  632. package/timezone/public-api.d.ts +0 -6
  633. package/timezone/timezone-option.component.d.ts +0 -15
  634. package/timezone/timezone-option.directive.d.ts +0 -22
  635. package/timezone/timezone-select.component.d.ts +0 -16
  636. package/timezone/timezone.models.d.ts +0 -16
  637. package/timezone/timezone.module.d.ts +0 -20
  638. package/timezone/timezone.utils.d.ts +0 -22
  639. package/timezone/utc-offset.pipe.d.ts +0 -9
  640. package/title/public-api.d.ts +0 -2
  641. package/title/title.directive.d.ts +0 -33
  642. package/title/title.module.d.ts +0 -8
  643. package/toast/public-api.d.ts +0 -5
  644. package/toast/toast-animations.d.ts +0 -5
  645. package/toast/toast-container.component.d.ts +0 -19
  646. package/toast/toast.component.d.ts +0 -41
  647. package/toast/toast.module.d.ts +0 -8
  648. package/toast/toast.service.d.ts +0 -61
  649. package/toast/toast.type.d.ts +0 -44
  650. package/toggle/public-api.d.ts +0 -2
  651. package/toggle/toggle.component.d.ts +0 -77
  652. package/toggle/toggle.module.d.ts +0 -8
  653. package/tooltip/public-api.d.ts +0 -2
  654. package/tooltip/tooltip.animations.d.ts +0 -8
  655. package/tooltip/tooltip.component.d.ts +0 -156
  656. package/tooltip/tooltip.module.d.ts +0 -7
  657. package/top-bar/module.d.ts +0 -7
  658. package/top-bar/public-api.d.ts +0 -2
  659. package/top-bar/top-bar.d.ts +0 -25
  660. package/tree/control/base-tree-control.d.ts +0 -40
  661. package/tree/control/flat-tree-control.d.ts +0 -55
  662. package/tree/control/flat-tree-control.filters.d.ts +0 -27
  663. package/tree/control/nested-tree-control.d.ts +0 -19
  664. package/tree/control/tree-control.d.ts +0 -44
  665. package/tree/data-source/flat-data-source.d.ts +0 -80
  666. package/tree/data-source/nested-data-source.d.ts +0 -15
  667. package/tree/node.d.ts +0 -34
  668. package/tree/outlet.d.ts +0 -9
  669. package/tree/padding.directive.d.ts +0 -45
  670. package/tree/public-api.d.ts +0 -16
  671. package/tree/toggle.d.ts +0 -28
  672. package/tree/tree-base.d.ts +0 -96
  673. package/tree/tree-errors.d.ts +0 -25
  674. package/tree/tree-option.component.d.ts +0 -89
  675. package/tree/tree-selection.component.d.ts +0 -156
  676. package/tree/tree.d.ts +0 -6
  677. package/tree/tree.module.d.ts +0 -16
  678. package/tree-select/public-api.d.ts +0 -2
  679. package/tree-select/tree-select.component.d.ts +0 -360
  680. package/tree-select/tree-select.module.d.ts +0 -15
  681. package/username/constants.d.ts +0 -15
  682. package/username/module.d.ts +0 -8
  683. package/username/types.d.ts +0 -62
  684. package/username/username.d.ts +0 -68
  685. 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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"}