@koobiq/components 19.8.3 → 20.1.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 (732) hide show
  1. package/accordion/accordion-trigger.component.scss +0 -18
  2. package/accordion/accordion.component.scss +9 -2
  3. package/accordion/index.d.ts +238 -1
  4. package/actions-panel/index.d.ts +304 -5
  5. package/alert/_alert-theme.scss +0 -4
  6. package/alert/alert-tokens.scss +4 -4
  7. package/alert/index.d.ts +54 -1
  8. package/app-switcher/app-switcher-dropdown-app.scss +2 -0
  9. package/app-switcher/index.d.ts +239 -1
  10. package/autocomplete/index.d.ts +265 -1
  11. package/badge/index.d.ts +57 -1
  12. package/breadcrumbs/breadcrumbs.scss +4 -0
  13. package/breadcrumbs/index.d.ts +244 -1
  14. package/button/button-group.scss +42 -2
  15. package/button/index.d.ts +153 -1
  16. package/button-toggle/button-toggle.scss +23 -0
  17. package/button-toggle/index.d.ts +157 -1
  18. package/checkbox/checkbox.scss +5 -4
  19. package/checkbox/index.d.ts +159 -1
  20. package/clamped-text/index.d.ts +145 -4
  21. package/code-block/_code-block-theme.scss +0 -6
  22. package/code-block/code-block-tokens.scss +0 -2
  23. package/code-block/index.d.ts +383 -1
  24. package/content-panel/content-panel.scss +0 -8
  25. package/content-panel/index.d.ts +158 -2
  26. package/core/highlight/_highlight-theme.scss +9 -0
  27. package/core/index.d.ts +4794 -1
  28. package/core/styles/_koobiq-theme.scss +1 -0
  29. package/core/styles/common/_animation.scss +4 -0
  30. package/core/styles/common/_overlay.scss +3 -4
  31. package/core/styles/theming/_components-theming.scss +1 -63
  32. package/core/styles/theming/_scrollbar-theme.scss +4 -0
  33. package/datepicker/_datepicker-theme.scss +1 -1
  34. package/datepicker/datepicker-toggle.scss +3 -3
  35. package/datepicker/index.d.ts +699 -1
  36. package/divider/index.d.ts +20 -1
  37. package/dl/index.d.ts +38 -1
  38. package/dropdown/dropdown.scss +2 -2
  39. package/dropdown/index.d.ts +473 -1
  40. package/dynamic-translation/index.d.ts +81 -2
  41. package/ellipsis-center/index.d.ts +38 -1
  42. package/empty-state/index.d.ts +45 -1
  43. package/fesm2022/koobiq-components-accordion.mjs +104 -115
  44. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  45. package/fesm2022/koobiq-components-actions-panel.mjs +16 -16
  46. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  47. package/fesm2022/koobiq-components-alert.mjs +35 -49
  48. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  49. package/fesm2022/koobiq-components-app-switcher.mjs +82 -87
  50. package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
  51. package/fesm2022/koobiq-components-autocomplete.mjs +294 -304
  52. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  53. package/fesm2022/koobiq-components-badge.mjs +35 -42
  54. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  55. package/fesm2022/koobiq-components-breadcrumbs.mjs +79 -101
  56. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  57. package/fesm2022/koobiq-components-button-toggle.mjs +92 -88
  58. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  59. package/fesm2022/koobiq-components-button.mjs +56 -51
  60. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  61. package/fesm2022/koobiq-components-checkbox.mjs +50 -52
  62. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  63. package/fesm2022/koobiq-components-clamped-text.mjs +46 -49
  64. package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
  65. package/fesm2022/koobiq-components-code-block.mjs +115 -136
  66. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  67. package/fesm2022/koobiq-components-content-panel.mjs +90 -107
  68. package/fesm2022/koobiq-components-content-panel.mjs.map +1 -1
  69. package/fesm2022/koobiq-components-core.mjs +2048 -703
  70. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  71. package/fesm2022/koobiq-components-datepicker.mjs +285 -349
  72. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  73. package/fesm2022/koobiq-components-divider.mjs +14 -25
  74. package/fesm2022/koobiq-components-divider.mjs.map +1 -1
  75. package/fesm2022/koobiq-components-dl.mjs +30 -31
  76. package/fesm2022/koobiq-components-dl.mjs.map +1 -1
  77. package/fesm2022/koobiq-components-dropdown.mjs +159 -160
  78. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  79. package/fesm2022/koobiq-components-dynamic-translation.mjs +23 -23
  80. package/fesm2022/koobiq-components-dynamic-translation.mjs.map +1 -1
  81. package/fesm2022/koobiq-components-ellipsis-center.mjs +16 -21
  82. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
  83. package/fesm2022/koobiq-components-empty-state.mjs +35 -39
  84. package/fesm2022/koobiq-components-empty-state.mjs.map +1 -1
  85. package/fesm2022/koobiq-components-file-upload.mjs +160 -248
  86. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  87. package/fesm2022/koobiq-components-filter-bar.mjs +1160 -1184
  88. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  89. package/fesm2022/koobiq-components-flag.mjs +66 -0
  90. package/fesm2022/koobiq-components-flag.mjs.map +1 -0
  91. package/fesm2022/koobiq-components-form-field.mjs +211 -430
  92. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  93. package/fesm2022/koobiq-components-icon.mjs +42 -43
  94. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  95. package/fesm2022/koobiq-components-inline-edit.mjs +85 -61
  96. package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
  97. package/fesm2022/koobiq-components-input.mjs +116 -155
  98. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  99. package/fesm2022/koobiq-components-link.mjs +38 -53
  100. package/fesm2022/koobiq-components-link.mjs.map +1 -1
  101. package/fesm2022/koobiq-components-list.mjs +138 -128
  102. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  103. package/fesm2022/koobiq-components-loader-overlay.mjs +38 -45
  104. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  105. package/fesm2022/koobiq-components-markdown.mjs +31 -35
  106. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  107. package/fesm2022/koobiq-components-modal.mjs +174 -164
  108. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  109. package/fesm2022/koobiq-components-navbar.mjs +164 -169
  110. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  111. package/fesm2022/koobiq-components-notification-center.mjs +80 -59
  112. package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
  113. package/fesm2022/koobiq-components-overflow-items.mjs +40 -36
  114. package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
  115. package/fesm2022/koobiq-components-popover.mjs +94 -85
  116. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  117. package/fesm2022/koobiq-components-progress-bar.mjs +24 -30
  118. package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
  119. package/fesm2022/koobiq-components-progress-spinner.mjs +25 -32
  120. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  121. package/fesm2022/koobiq-components-radio.mjs +95 -85
  122. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  123. package/fesm2022/koobiq-components-resizer.mjs +17 -17
  124. package/fesm2022/koobiq-components-resizer.mjs.map +1 -1
  125. package/fesm2022/koobiq-components-scrollbar.mjs +69 -60
  126. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  127. package/fesm2022/koobiq-components-search-expandable.mjs +44 -35
  128. package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
  129. package/fesm2022/koobiq-components-select.mjs +279 -244
  130. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  131. package/fesm2022/koobiq-components-sidebar.mjs +63 -55
  132. package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
  133. package/fesm2022/koobiq-components-sidepanel.mjs +88 -128
  134. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  135. package/fesm2022/koobiq-components-skeleton.mjs +13 -13
  136. package/fesm2022/koobiq-components-skeleton.mjs.map +1 -1
  137. package/fesm2022/koobiq-components-split-button.mjs +29 -22
  138. package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
  139. package/fesm2022/koobiq-components-splitter.mjs +114 -96
  140. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  141. package/fesm2022/koobiq-components-table.mjs +23 -23
  142. package/fesm2022/koobiq-components-table.mjs.map +1 -1
  143. package/fesm2022/koobiq-components-tabs.mjs +260 -275
  144. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  145. package/fesm2022/koobiq-components-tags.mjs +179 -267
  146. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  147. package/fesm2022/koobiq-components-textarea.mjs +42 -68
  148. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  149. package/fesm2022/koobiq-components-time-range.mjs +65 -66
  150. package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
  151. package/fesm2022/koobiq-components-timepicker.mjs +46 -38
  152. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  153. package/fesm2022/koobiq-components-timezone.mjs +58 -58
  154. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  155. package/fesm2022/koobiq-components-title.mjs +150 -39
  156. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  157. package/fesm2022/koobiq-components-toast.mjs +54 -69
  158. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  159. package/fesm2022/koobiq-components-toggle.mjs +51 -63
  160. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  161. package/fesm2022/koobiq-components-tooltip.mjs +141 -121
  162. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  163. package/fesm2022/koobiq-components-top-bar.mjs +22 -25
  164. package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
  165. package/fesm2022/koobiq-components-tree-select.mjs +264 -231
  166. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  167. package/fesm2022/koobiq-components-tree.mjs +273 -239
  168. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  169. package/fesm2022/koobiq-components-username.mjs +62 -49
  170. package/fesm2022/koobiq-components-username.mjs.map +1 -1
  171. package/file-upload/file-upload-tokens.scss +1 -0
  172. package/file-upload/index.d.ts +577 -1
  173. package/filter-bar/_filter-bar-theme.scss +86 -0
  174. package/filter-bar/filter-bar-tokens.scss +6 -0
  175. package/filter-bar/filter-bar.scss +10 -4
  176. package/filter-bar/filter-refresher.scss +1 -1
  177. package/filter-bar/filters.scss +23 -19
  178. package/filter-bar/index.d.ts +1165 -1
  179. package/filter-bar/pipes/base-pipe.scss +14 -35
  180. package/filter-bar/pipes/pipe-date.scss +20 -14
  181. package/filter-bar/pipes/pipe-multi-tree-select.scss +5 -3
  182. package/filter-bar/pipes/pipe-multiselect.scss +5 -3
  183. package/filter-bar/pipes/pipe-readonly.scss +4 -13
  184. package/filter-bar/pipes/pipe-select.scss +3 -1
  185. package/filter-bar/pipes/pipe-tree-select.scss +3 -1
  186. package/flag/flag.scss +53 -0
  187. package/flag/index.d.ts +44 -0
  188. package/form-field/index.d.ts +569 -1
  189. package/icon/index.d.ts +162 -1
  190. package/index.d.ts +2 -1
  191. package/inline-edit/index.d.ts +176 -2
  192. package/inline-edit/inline-edit.scss +7 -7
  193. package/input/index.d.ts +339 -1
  194. package/link/index.d.ts +56 -1
  195. package/link/link-tokens.scss +2 -2
  196. package/list/index.d.ts +229 -1
  197. package/loader-overlay/index.d.ts +57 -1
  198. package/loader-overlay/loader-overlay-tokens.scss +1 -1
  199. package/markdown/index.d.ts +68 -1
  200. package/modal/_modal-animation.scss +6 -6
  201. package/modal/_modal-theme.scss +3 -6
  202. package/modal/index.d.ts +313 -1
  203. package/modal/modal.scss +15 -0
  204. package/navbar/index.d.ts +305 -1
  205. package/navbar/navbar.scss +1 -2
  206. package/notification-center/index.d.ts +322 -1
  207. package/notification-center/notification-center.scss +14 -9
  208. package/notification-center/notification-item.scss +2 -1
  209. package/overflow-items/index.d.ts +162 -2
  210. package/package.json +13 -17
  211. package/popover/index.d.ts +182 -1
  212. package/popover/popover.scss +8 -12
  213. package/prebuilt-themes/dark-theme.css +1 -1
  214. package/prebuilt-themes/light-theme.css +1 -1
  215. package/prebuilt-themes/theme.css +1 -1
  216. package/progress-bar/index.d.ts +31 -1
  217. package/progress-bar/progress-bar.scss +4 -0
  218. package/progress-spinner/index.d.ts +37 -1
  219. package/progress-spinner/progress-spinner.scss +5 -1
  220. package/radio/index.d.ts +203 -1
  221. package/radio/radio.scss +18 -4
  222. package/resizer/index.d.ts +85 -2
  223. package/schematics/collection.json +10 -0
  224. package/schematics/migrations/css-selectors/index.js +1 -1
  225. package/schematics/migrations/deprecated-icons/index.js +1 -1
  226. package/schematics/migrations/filter-bar-signals/README.md +66 -0
  227. package/schematics/migrations/filter-bar-signals/data.js +72 -0
  228. package/schematics/migrations/filter-bar-signals/index.js +316 -0
  229. package/schematics/migrations/filter-bar-signals/schema.json +20 -0
  230. package/schematics/migrations/new-icons-pack/index.js +1 -1
  231. package/schematics/migrations/v20-upgrade/README.md +72 -0
  232. package/schematics/migrations/v20-upgrade/data.js +274 -0
  233. package/schematics/migrations/v20-upgrade/index.js +222 -0
  234. package/schematics/migrations/v20-upgrade/schema.json +20 -0
  235. package/schematics/migrations.json +15 -0
  236. package/schematics/ng-add/index.js +3 -4
  237. package/scrollbar/index.d.ts +136 -1
  238. package/search-expandable/index.d.ts +98 -1
  239. package/select/index.d.ts +701 -1
  240. package/sidebar/index.d.ts +93 -1
  241. package/sidepanel/index.d.ts +263 -1
  242. package/sidepanel/sidepanel.scss +0 -8
  243. package/skeleton/index.d.ts +26 -2
  244. package/skeleton/skeleton.scss +4 -0
  245. package/split-button/_split-button-theme.scss +2 -2
  246. package/split-button/index.d.ts +46 -1
  247. package/splitter/_splitter-theme.scss +2 -2
  248. package/splitter/index.d.ts +142 -1
  249. package/table/_table-theme.scss +4 -0
  250. package/table/index.d.ts +24 -1
  251. package/tabs/index.d.ts +647 -1
  252. package/tabs/tab-header.scss +1 -0
  253. package/tabs/tabs-tokens.scss +1 -1
  254. package/tags/index.d.ts +706 -1
  255. package/textarea/index.d.ts +133 -1
  256. package/time-range/index.d.ts +310 -7
  257. package/time-range/time-range.scss +0 -8
  258. package/timepicker/index.d.ts +193 -1
  259. package/timepicker/timepicker.scss +2 -2
  260. package/timezone/index.d.ts +123 -1
  261. package/title/index.d.ts +131 -1
  262. package/toast/index.d.ts +164 -1
  263. package/toggle/index.d.ts +84 -1
  264. package/tooltip/index.d.ts +211 -1
  265. package/top-bar/index.d.ts +33 -1
  266. package/top-bar/top-bar.scss +1 -2
  267. package/tree/_tree-theme.scss +2 -7
  268. package/tree/index.d.ts +733 -1
  269. package/tree/toggle.scss +5 -0
  270. package/tree/tree-option.scss +20 -11
  271. package/tree-select/_tree-select-theme.scss +1 -1
  272. package/tree-select/index.d.ts +384 -1
  273. package/username/index.d.ts +194 -5
  274. package/accordion/accordion-content.d.ts +0 -6
  275. package/accordion/accordion-content.directive.d.ts +0 -27
  276. package/accordion/accordion-header.d.ts +0 -6
  277. package/accordion/accordion-header.directive.d.ts +0 -7
  278. package/accordion/accordion-item.d.ts +0 -77
  279. package/accordion/accordion-trigger.component.d.ts +0 -24
  280. package/accordion/accordion-trigger.directive.d.ts +0 -21
  281. package/accordion/accordion.component.d.ts +0 -79
  282. package/accordion/accordion.module.d.ts +0 -12
  283. package/accordion/public-api.d.ts +0 -9
  284. package/actions-panel/actions-panel-config.d.ts +0 -82
  285. package/actions-panel/actions-panel-container.d.ts +0 -90
  286. package/actions-panel/actions-panel-ref.d.ts +0 -44
  287. package/actions-panel/actions-panel.d.ts +0 -85
  288. package/actions-panel/module.d.ts +0 -7
  289. package/alert/alert.component.d.ts +0 -43
  290. package/alert/alert.module.d.ts +0 -9
  291. package/alert/public-api.d.ts +0 -2
  292. package/app-switcher/app-switcher-animations.d.ts +0 -5
  293. package/app-switcher/app-switcher-dropdown-app.d.ts +0 -11
  294. package/app-switcher/app-switcher-dropdown-site.d.ts +0 -9
  295. package/app-switcher/app-switcher.d.ts +0 -198
  296. package/app-switcher/app-switcher.module.d.ts +0 -10
  297. package/app-switcher/kbq-app-switcher-list-item.d.ts +0 -16
  298. package/app-switcher/public-api.d.ts +0 -6
  299. package/autocomplete/autocomplete-origin.directive.d.ts +0 -12
  300. package/autocomplete/autocomplete-trigger.directive.d.ts +0 -169
  301. package/autocomplete/autocomplete.component.d.ts +0 -88
  302. package/autocomplete/autocomplete.module.d.ts +0 -12
  303. package/autocomplete/public-api.d.ts +0 -4
  304. package/badge/badge.component.d.ts +0 -46
  305. package/badge/badge.module.d.ts +0 -9
  306. package/badge/public-api.d.ts +0 -2
  307. package/breadcrumbs/breadcrumbs.d.ts +0 -121
  308. package/breadcrumbs/breadcrumbs.module.d.ts +0 -7
  309. package/breadcrumbs/breadcrumbs.types.d.ts +0 -22
  310. package/breadcrumbs/public-api.d.ts +0 -5
  311. package/breadcrumbs/roving-focus-group.directive.d.ts +0 -50
  312. package/breadcrumbs/roving-focus-item.directive.d.ts +0 -50
  313. package/breadcrumbs/utils.d.ts +0 -19
  314. package/button/button-group.d.ts +0 -45
  315. package/button/button-slots.d.ts +0 -11
  316. package/button/button.component.d.ts +0 -74
  317. package/button/button.dropdown-trigger.directive.d.ts +0 -14
  318. package/button/button.module.d.ts +0 -13
  319. package/button/public-api.d.ts +0 -5
  320. package/button-toggle/button-toggle.component.d.ts +0 -146
  321. package/button-toggle/button-toggle.module.d.ts +0 -9
  322. package/button-toggle/public-api.d.ts +0 -2
  323. package/checkbox/checkbox-config.d.ts +0 -13
  324. package/checkbox/checkbox-module.d.ts +0 -9
  325. package/checkbox/checkbox-required-validator.d.ts +0 -13
  326. package/checkbox/checkbox.d.ts +0 -128
  327. package/checkbox/public-api.d.ts +0 -4
  328. package/clamped-text/clamped-list.d.ts +0 -41
  329. package/clamped-text/clamped-text.d.ts +0 -65
  330. package/clamped-text/constants.d.ts +0 -34
  331. package/clamped-text/module.d.ts +0 -8
  332. package/code-block/code-block-highlight.d.ts +0 -98
  333. package/code-block/code-block.d.ts +0 -259
  334. package/code-block/code-block.module.d.ts +0 -7
  335. package/code-block/public-api.d.ts +0 -4
  336. package/code-block/types.d.ts +0 -36
  337. package/content-panel/content-panel.d.ts +0 -149
  338. package/content-panel/module.d.ts +0 -7
  339. package/core/animation/animation.d.ts +0 -37
  340. package/core/animation/fade-animations.d.ts +0 -2
  341. package/core/animation/index.d.ts +0 -3
  342. package/core/animation/select-animations.d.ts +0 -12
  343. package/core/common-behaviors/checkbox.d.ts +0 -5
  344. package/core/common-behaviors/clipboard.d.ts +0 -12
  345. package/core/common-behaviors/color.d.ts +0 -50
  346. package/core/common-behaviors/common-module.d.ts +0 -38
  347. package/core/common-behaviors/constructor.d.ts +0 -9
  348. package/core/common-behaviors/disabled.d.ts +0 -8
  349. package/core/common-behaviors/error-state.d.ts +0 -46
  350. package/core/common-behaviors/flex.d.ts +0 -4
  351. package/core/common-behaviors/hover.d.ts +0 -15
  352. package/core/common-behaviors/index.d.ts +0 -14
  353. package/core/common-behaviors/orientation.d.ts +0 -4
  354. package/core/common-behaviors/read-state.d.ts +0 -12
  355. package/core/common-behaviors/size.d.ts +0 -4
  356. package/core/common-behaviors/tabindex.d.ts +0 -8
  357. package/core/datetime/date-adapter.d.ts +0 -12
  358. package/core/datetime/date-formats.d.ts +0 -4
  359. package/core/datetime/index.d.ts +0 -2
  360. package/core/error/error-state-matcher.d.ts +0 -39
  361. package/core/form-field/field-sizing-content.d.ts +0 -21
  362. package/core/form-field/form-field-ref.d.ts +0 -28
  363. package/core/form-field/index.d.ts +0 -2
  364. package/core/formatters/date/formatter.d.ts +0 -11
  365. package/core/formatters/date/formatter.pipe.d.ts +0 -139
  366. package/core/formatters/filesize/config.d.ts +0 -66
  367. package/core/formatters/filesize/formatter.d.ts +0 -17
  368. package/core/formatters/filesize/index.d.ts +0 -3
  369. package/core/formatters/filesize/size.d.ts +0 -52
  370. package/core/formatters/index.d.ts +0 -13
  371. package/core/formatters/number/formatter.d.ts +0 -101
  372. package/core/forms/forms-module.d.ts +0 -7
  373. package/core/forms/forms.directive.d.ts +0 -22
  374. package/core/forms/index.d.ts +0 -3
  375. package/core/forms/validators.d.ts +0 -120
  376. package/core/highlight/highlight.pipe.d.ts +0 -10
  377. package/core/highlight/index.d.ts +0 -9
  378. package/core/line/line.d.ts +0 -23
  379. package/core/locales/en-US.d.ts +0 -176
  380. package/core/locales/es-LA.d.ts +0 -175
  381. package/core/locales/formatters.d.ts +0 -190
  382. package/core/locales/index.d.ts +0 -9
  383. package/core/locales/locale-service.d.ts +0 -1117
  384. package/core/locales/locale-service.module.d.ts +0 -6
  385. package/core/locales/pt-BR.d.ts +0 -175
  386. package/core/locales/ru-RU.d.ts +0 -176
  387. package/core/locales/tk-TM.d.ts +0 -176
  388. package/core/locales/types.d.ts +0 -77
  389. package/core/navbar/index.d.ts +0 -1
  390. package/core/navbar/rectangle-item.d.ts +0 -14
  391. package/core/option/action-container.d.ts +0 -5
  392. package/core/option/action.d.ts +0 -38
  393. package/core/option/index.d.ts +0 -5
  394. package/core/option/optgroup.d.ts +0 -16
  395. package/core/option/option-module.d.ts +0 -10
  396. package/core/option/option.d.ts +0 -170
  397. package/core/overlay/overlay-position-map.d.ts +0 -40
  398. package/core/pop-up/constants.d.ts +0 -56
  399. package/core/pop-up/focus-trap-strategy.d.ts +0 -5
  400. package/core/pop-up/index.d.ts +0 -5
  401. package/core/pop-up/pop-up-styles.d.ts +0 -2
  402. package/core/pop-up/pop-up-trigger.d.ts +0 -104
  403. package/core/pop-up/pop-up.d.ts +0 -57
  404. package/core/public-api.d.ts +0 -23
  405. package/core/select/common.d.ts +0 -59
  406. package/core/select/constants.d.ts +0 -22
  407. package/core/select/errors.d.ts +0 -19
  408. package/core/select/events.d.ts +0 -1
  409. package/core/select/index.d.ts +0 -4
  410. package/core/selection/constants.d.ts +0 -4
  411. package/core/selection/index.d.ts +0 -3
  412. package/core/selection/pseudo-checkbox/pseudo-checkbox.d.ts +0 -23
  413. package/core/selection/pseudo-checkbox/pseudo-checkbox.module.d.ts +0 -8
  414. package/core/services/measure-scrollbar.service.d.ts +0 -11
  415. package/core/services/theme.service.d.ts +0 -41
  416. package/core/title/index.d.ts +0 -1
  417. package/core/title/title-text-ref.d.ts +0 -6
  418. package/core/tokens/index.d.ts +0 -1
  419. package/core/tokens/window.d.ts +0 -5
  420. package/core/utils/dom.d.ts +0 -4
  421. package/core/utils/index.d.ts +0 -2
  422. package/core/utils/public-api.d.ts +0 -1
  423. package/core/utils/utils.d.ts +0 -25
  424. package/core/validation/index.d.ts +0 -1
  425. package/core/validation/validation.d.ts +0 -29
  426. package/core/version.d.ts +0 -2
  427. package/datepicker/calendar-body.component.d.ts +0 -55
  428. package/datepicker/calendar-header.component.d.ts +0 -51
  429. package/datepicker/calendar.component.d.ts +0 -89
  430. package/datepicker/datepicker-animations.d.ts +0 -9
  431. package/datepicker/datepicker-errors.d.ts +0 -2
  432. package/datepicker/datepicker-input.directive.d.ts +0 -221
  433. package/datepicker/datepicker-intl.d.ts +0 -32
  434. package/datepicker/datepicker-module.d.ts +0 -21
  435. package/datepicker/datepicker-toggle.component.d.ts +0 -57
  436. package/datepicker/datepicker.component.d.ts +0 -148
  437. package/datepicker/month-view.component.d.ts +0 -73
  438. package/datepicker/public-api.d.ts +0 -10
  439. package/divider/divider.component.d.ts +0 -18
  440. package/divider/divider.module.d.ts +0 -8
  441. package/divider/public-api.d.ts +0 -2
  442. package/dl/dl.component.d.ts +0 -26
  443. package/dl/dl.module.d.ts +0 -9
  444. package/dl/public-api.d.ts +0 -2
  445. package/dropdown/dropdown-animations.d.ts +0 -11
  446. package/dropdown/dropdown-content.directive.d.ts +0 -32
  447. package/dropdown/dropdown-errors.d.ts +0 -17
  448. package/dropdown/dropdown-item.component.d.ts +0 -52
  449. package/dropdown/dropdown-trigger.directive.d.ts +0 -167
  450. package/dropdown/dropdown.component.d.ts +0 -134
  451. package/dropdown/dropdown.module.d.ts +0 -13
  452. package/dropdown/dropdown.types.d.ts +0 -67
  453. package/dropdown/public-api.d.ts +0 -8
  454. package/dynamic-translation/dynamic-translation.d.ts +0 -72
  455. package/dynamic-translation/module.d.ts +0 -7
  456. package/ellipsis-center/ellipsis-center.directive.d.ts +0 -36
  457. package/ellipsis-center/public-api.d.ts +0 -1
  458. package/empty-state/empty-state.component.d.ts +0 -36
  459. package/empty-state/empty-state.module.d.ts +0 -9
  460. package/empty-state/public-api.d.ts +0 -2
  461. package/fesm2022/koobiq-components-navbar-ic.mjs +0 -863
  462. package/fesm2022/koobiq-components-navbar-ic.mjs.map +0 -1
  463. package/fesm2022/koobiq-components-risk-level.mjs +0 -75
  464. package/fesm2022/koobiq-components-risk-level.mjs.map +0 -1
  465. package/file-upload/dropzone.d.ts +0 -147
  466. package/file-upload/file-upload.d.ts +0 -102
  467. package/file-upload/file-upload.module.d.ts +0 -20
  468. package/file-upload/multiple-file-upload.component.d.ts +0 -138
  469. package/file-upload/primitives/file-drop.d.ts +0 -35
  470. package/file-upload/primitives/file-picker.d.ts +0 -82
  471. package/file-upload/primitives/index.d.ts +0 -2
  472. package/file-upload/public-api.d.ts +0 -7
  473. package/file-upload/single-file-upload.component.d.ts +0 -118
  474. package/filter-bar/filter-bar-button.d.ts +0 -14
  475. package/filter-bar/filter-bar.d.ts +0 -81
  476. package/filter-bar/filter-bar.module.d.ts +0 -17
  477. package/filter-bar/filter-bar.types.d.ts +0 -143
  478. package/filter-bar/filter-refresher.d.ts +0 -5
  479. package/filter-bar/filter-reset.d.ts +0 -15
  480. package/filter-bar/filter-search.d.ts +0 -54
  481. package/filter-bar/filter-search.scss +0 -12
  482. package/filter-bar/filters.d.ts +0 -122
  483. package/filter-bar/pipe-add.d.ts +0 -28
  484. package/filter-bar/pipe.directive.d.ts +0 -13
  485. package/filter-bar/pipes/base-pipe.d.ts +0 -74
  486. package/filter-bar/pipes/pipe-button.d.ts +0 -21
  487. package/filter-bar/pipes/pipe-date.d.ts +0 -65
  488. package/filter-bar/pipes/pipe-datetime.d.ts +0 -66
  489. package/filter-bar/pipes/pipe-multi-select.d.ts +0 -56
  490. package/filter-bar/pipes/pipe-multi-tree-select.d.ts +0 -67
  491. package/filter-bar/pipes/pipe-readonly.d.ts +0 -7
  492. package/filter-bar/pipes/pipe-select.d.ts +0 -30
  493. package/filter-bar/pipes/pipe-state.d.ts +0 -21
  494. package/filter-bar/pipes/pipe-text.d.ts +0 -26
  495. package/filter-bar/pipes/pipe-title.d.ts +0 -27
  496. package/filter-bar/pipes/pipe-tree-select.d.ts +0 -42
  497. package/filter-bar/public-api.d.ts +0 -21
  498. package/form-field/cleaner.d.ts +0 -11
  499. package/form-field/error.d.ts +0 -8
  500. package/form-field/fieldset.d.ts +0 -27
  501. package/form-field/form-field-control.d.ts +0 -40
  502. package/form-field/form-field.d.ts +0 -298
  503. package/form-field/form-field.module.d.ts +0 -19
  504. package/form-field/hint.d.ts +0 -15
  505. package/form-field/label.d.ts +0 -6
  506. package/form-field/password-hint.d.ts +0 -53
  507. package/form-field/password-toggle.d.ts +0 -56
  508. package/form-field/prefix.d.ts +0 -6
  509. package/form-field/public-api.d.ts +0 -15
  510. package/form-field/reactive-password-hint.d.ts +0 -20
  511. package/form-field/stepper.d.ts +0 -59
  512. package/form-field/suffix.d.ts +0 -6
  513. package/form-field/validate.directive.d.ts +0 -53
  514. package/icon/icon-button.component.d.ts +0 -28
  515. package/icon/icon-item.component.d.ts +0 -11
  516. package/icon/icon-registry-providers.d.ts +0 -34
  517. package/icon/icon-registry.d.ts +0 -50
  518. package/icon/icon.component.d.ts +0 -33
  519. package/icon/icon.module.d.ts +0 -9
  520. package/icon/public-api.d.ts +0 -6
  521. package/inline-edit/inline-edit.d.ts +0 -161
  522. package/inline-edit/module.d.ts +0 -7
  523. package/input/input-errors.d.ts +0 -1
  524. package/input/input-number-validators.d.ts +0 -35
  525. package/input/input-number.d.ts +0 -96
  526. package/input/input-password.d.ts +0 -99
  527. package/input/input-value-accessor.d.ts +0 -4
  528. package/input/input.d.ts +0 -109
  529. package/input/input.module.d.ts +0 -14
  530. package/input/public-api.d.ts +0 -6
  531. package/link/link.component.d.ts +0 -53
  532. package/link/link.module.d.ts +0 -8
  533. package/link/public-api.d.ts +0 -2
  534. package/list/list-selection.component.d.ts +0 -196
  535. package/list/list.component.d.ts +0 -18
  536. package/list/list.module.d.ts +0 -11
  537. package/list/public-api.d.ts +0 -3
  538. package/loader-overlay/loader-overlay.component.d.ts +0 -47
  539. package/loader-overlay/loader-overlay.module.d.ts +0 -10
  540. package/loader-overlay/public-api.d.ts +0 -2
  541. package/markdown/markdown.component.d.ts +0 -31
  542. package/markdown/markdown.module.d.ts +0 -7
  543. package/markdown/markdown.service.d.ts +0 -19
  544. package/markdown/markdown.values.d.ts +0 -10
  545. package/markdown/public-api.d.ts +0 -4
  546. package/modal/css-unit.pipe.d.ts +0 -7
  547. package/modal/modal-control.service.d.ts +0 -20
  548. package/modal/modal-ref.class.d.ts +0 -37
  549. package/modal/modal-util.d.ts +0 -15
  550. package/modal/modal.component.d.ts +0 -141
  551. package/modal/modal.directive.d.ts +0 -20
  552. package/modal/modal.module.d.ts +0 -15
  553. package/modal/modal.service.d.ts +0 -42
  554. package/modal/modal.type.d.ts +0 -72
  555. package/modal/public-api.d.ts +0 -6
  556. package/navbar/navbar-brand.component.d.ts +0 -41
  557. package/navbar/navbar-item.component.d.ts +0 -131
  558. package/navbar/navbar-toggle.component.d.ts +0 -23
  559. package/navbar/navbar.component.d.ts +0 -68
  560. package/navbar/navbar.module.d.ts +0 -15
  561. package/navbar/public-api.d.ts +0 -6
  562. package/navbar/vertical-navbar.component.d.ts +0 -47
  563. package/navbar-ic/_navbar-ic-theme.scss +0 -81
  564. package/navbar-ic/index.d.ts +0 -1
  565. package/navbar-ic/navbar-ic-divider.scss +0 -7
  566. package/navbar-ic/navbar-ic-header.d.ts +0 -22
  567. package/navbar-ic/navbar-ic-header.scss +0 -49
  568. package/navbar-ic/navbar-ic-item.d.ts +0 -144
  569. package/navbar-ic/navbar-ic-item.scss +0 -92
  570. package/navbar-ic/navbar-ic-tokens.scss +0 -22
  571. package/navbar-ic/navbar-ic.animation.d.ts +0 -3
  572. package/navbar-ic/navbar-ic.d.ts +0 -118
  573. package/navbar-ic/navbar-ic.module.d.ts +0 -14
  574. package/navbar-ic/navbar-ic.scss +0 -32
  575. package/navbar-ic/public-api.d.ts +0 -4
  576. package/notification-center/notification-center-animations.d.ts +0 -5
  577. package/notification-center/notification-center.d.ts +0 -184
  578. package/notification-center/notification-center.module.d.ts +0 -7
  579. package/notification-center/notification-center.service.d.ts +0 -115
  580. package/notification-center/notification-item.d.ts +0 -27
  581. package/notification-center/public-api.d.ts +0 -4
  582. package/overflow-items/module.d.ts +0 -7
  583. package/overflow-items/overflow-items.d.ts +0 -152
  584. package/popover/popover-animations.d.ts +0 -4
  585. package/popover/popover-confirm.component.d.ts +0 -28
  586. package/popover/popover.component.d.ts +0 -139
  587. package/popover/popover.module.d.ts +0 -14
  588. package/popover/public-api.d.ts +0 -4
  589. package/progress-bar/progress-bar.component.d.ts +0 -20
  590. package/progress-bar/progress-bar.module.d.ts +0 -8
  591. package/progress-bar/public-api.d.ts +0 -2
  592. package/progress-spinner/progress-spinner.component.d.ts +0 -26
  593. package/progress-spinner/progress-spinner.module.d.ts +0 -9
  594. package/progress-spinner/public-api.d.ts +0 -2
  595. package/public-api.d.ts +0 -1
  596. package/radio/public-api.d.ts +0 -2
  597. package/radio/radio.component.d.ts +0 -200
  598. package/radio/radio.module.d.ts +0 -8
  599. package/resizer/module.d.ts +0 -7
  600. package/resizer/resizer.d.ts +0 -75
  601. package/risk-level/_risk-level-theme.scss +0 -74
  602. package/risk-level/index.d.ts +0 -1
  603. package/risk-level/public-api.d.ts +0 -2
  604. package/risk-level/risk-level-tokens.scss +0 -33
  605. package/risk-level/risk-level.component.d.ts +0 -21
  606. package/risk-level/risk-level.component.scss +0 -22
  607. package/risk-level/risk-level.module.d.ts +0 -12
  608. package/scrollbar/public-api.d.ts +0 -4
  609. package/scrollbar/scrollbar.component.d.ts +0 -37
  610. package/scrollbar/scrollbar.directive.d.ts +0 -29
  611. package/scrollbar/scrollbar.module.d.ts +0 -8
  612. package/scrollbar/scrollbar.types.d.ts +0 -33
  613. package/search-expandable/public-api.d.ts +0 -2
  614. package/search-expandable/search-expandable.d.ts +0 -89
  615. package/search-expandable/search-expandable.module.d.ts +0 -7
  616. package/select/public-api.d.ts +0 -4
  617. package/select/select-common.d.ts +0 -30
  618. package/select/select-option.directive.d.ts +0 -21
  619. package/select/select.component.d.ts +0 -627
  620. package/select/select.module.d.ts +0 -17
  621. package/sidebar/public-api.d.ts +0 -2
  622. package/sidebar/sidebar-animations.d.ts +0 -8
  623. package/sidebar/sidebar.component.d.ts +0 -80
  624. package/sidebar/sidebar.module.d.ts +0 -8
  625. package/sidepanel/public-api.d.ts +0 -6
  626. package/sidepanel/sidepanel-animations.d.ts +0 -20
  627. package/sidepanel/sidepanel-config.d.ts +0 -43
  628. package/sidepanel/sidepanel-container.component.d.ts +0 -67
  629. package/sidepanel/sidepanel-directives.d.ts +0 -61
  630. package/sidepanel/sidepanel-ref.d.ts +0 -36
  631. package/sidepanel/sidepanel.module.d.ts +0 -14
  632. package/sidepanel/sidepanel.service.d.ts +0 -58
  633. package/skeleton/module.d.ts +0 -7
  634. package/skeleton/skeleton.d.ts +0 -17
  635. package/split-button/public-api.d.ts +0 -2
  636. package/split-button/split-button.d.ts +0 -37
  637. package/split-button/split-button.module.d.ts +0 -7
  638. package/splitter/public-api.d.ts +0 -2
  639. package/splitter/splitter.component.d.ts +0 -136
  640. package/splitter/splitter.module.d.ts +0 -8
  641. package/table/public-api.d.ts +0 -2
  642. package/table/table.component.d.ts +0 -12
  643. package/table/table.module.d.ts +0 -9
  644. package/tabs/paginated-tab-header.d.ts +0 -182
  645. package/tabs/public-api.d.ts +0 -10
  646. package/tabs/tab-body.component.d.ts +0 -95
  647. package/tabs/tab-content.directive.d.ts +0 -9
  648. package/tabs/tab-group.component.d.ts +0 -137
  649. package/tabs/tab-header.component.d.ts +0 -34
  650. package/tabs/tab-label-wrapper.directive.d.ts +0 -29
  651. package/tabs/tab-label.directive.d.ts +0 -11
  652. package/tabs/tab-nav-bar.d.ts +0 -91
  653. package/tabs/tab.component.d.ts +0 -70
  654. package/tabs/tabs-animations.d.ts +0 -4
  655. package/tabs/tabs.module.d.ts +0 -20
  656. package/tags/public-api.d.ts +0 -5
  657. package/tags/tag-default-options.d.ts +0 -13
  658. package/tags/tag-input.d.ts +0 -110
  659. package/tags/tag-list.component.d.ts +0 -373
  660. package/tags/tag-text-control.d.ts +0 -10
  661. package/tags/tag.component.d.ts +0 -272
  662. package/tags/tag.module.d.ts +0 -10
  663. package/textarea/public-api.d.ts +0 -2
  664. package/textarea/textarea.component.d.ts +0 -123
  665. package/textarea/textarea.module.d.ts +0 -10
  666. package/time-range/constants.d.ts +0 -19
  667. package/time-range/module.d.ts +0 -10
  668. package/time-range/time-range-editor.d.ts +0 -65
  669. package/time-range/time-range-title-as-form-field.d.ts +0 -41
  670. package/time-range/time-range-title.d.ts +0 -18
  671. package/time-range/time-range.d.ts +0 -78
  672. package/time-range/time-range.service.d.ts +0 -25
  673. package/time-range/types.d.ts +0 -69
  674. package/timepicker/public-api.d.ts +0 -3
  675. package/timepicker/timepicker.constants.d.ts +0 -22
  676. package/timepicker/timepicker.directive.d.ts +0 -159
  677. package/timepicker/timepicker.module.d.ts +0 -11
  678. package/timezone/cities-by-filter.pipe.d.ts +0 -7
  679. package/timezone/public-api.d.ts +0 -6
  680. package/timezone/timezone-option.component.d.ts +0 -15
  681. package/timezone/timezone-option.directive.d.ts +0 -22
  682. package/timezone/timezone-select.component.d.ts +0 -16
  683. package/timezone/timezone.models.d.ts +0 -16
  684. package/timezone/timezone.module.d.ts +0 -20
  685. package/timezone/timezone.utils.d.ts +0 -22
  686. package/timezone/utc-offset.pipe.d.ts +0 -9
  687. package/title/public-api.d.ts +0 -2
  688. package/title/title.directive.d.ts +0 -33
  689. package/title/title.module.d.ts +0 -8
  690. package/toast/public-api.d.ts +0 -5
  691. package/toast/toast-animations.d.ts +0 -5
  692. package/toast/toast-container.component.d.ts +0 -19
  693. package/toast/toast.component.d.ts +0 -41
  694. package/toast/toast.module.d.ts +0 -8
  695. package/toast/toast.service.d.ts +0 -61
  696. package/toast/toast.type.d.ts +0 -44
  697. package/toggle/public-api.d.ts +0 -2
  698. package/toggle/toggle.component.d.ts +0 -77
  699. package/toggle/toggle.module.d.ts +0 -8
  700. package/tooltip/public-api.d.ts +0 -2
  701. package/tooltip/tooltip.animations.d.ts +0 -8
  702. package/tooltip/tooltip.component.d.ts +0 -156
  703. package/tooltip/tooltip.module.d.ts +0 -7
  704. package/top-bar/module.d.ts +0 -7
  705. package/top-bar/public-api.d.ts +0 -2
  706. package/top-bar/top-bar.d.ts +0 -25
  707. package/tree/control/base-tree-control.d.ts +0 -40
  708. package/tree/control/flat-tree-control.d.ts +0 -55
  709. package/tree/control/flat-tree-control.filters.d.ts +0 -27
  710. package/tree/control/nested-tree-control.d.ts +0 -19
  711. package/tree/control/tree-control.d.ts +0 -44
  712. package/tree/data-source/flat-data-source.d.ts +0 -80
  713. package/tree/data-source/nested-data-source.d.ts +0 -15
  714. package/tree/node.d.ts +0 -34
  715. package/tree/outlet.d.ts +0 -9
  716. package/tree/padding.directive.d.ts +0 -45
  717. package/tree/public-api.d.ts +0 -16
  718. package/tree/toggle.d.ts +0 -28
  719. package/tree/tree-base.d.ts +0 -96
  720. package/tree/tree-errors.d.ts +0 -25
  721. package/tree/tree-option.component.d.ts +0 -89
  722. package/tree/tree-selection.component.d.ts +0 -156
  723. package/tree/tree.d.ts +0 -6
  724. package/tree/tree.module.d.ts +0 -16
  725. package/tree-select/public-api.d.ts +0 -2
  726. package/tree-select/tree-select.component.d.ts +0 -360
  727. package/tree-select/tree-select.module.d.ts +0 -15
  728. package/username/constants.d.ts +0 -15
  729. package/username/module.d.ts +0 -8
  730. package/username/types.d.ts +0 -62
  731. package/username/username.d.ts +0 -68
  732. package/username/username.pipe.d.ts +0 -23
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-input.mjs","sources":["../../../packages/components/input/input-errors.ts","../../../packages/components/input/input-number.ts","../../../packages/components/input/input-value-accessor.ts","../../../packages/components/input/input.ts","../../../packages/components/input/input-number-validators.ts","../../../packages/components/input/input-password.ts","../../../packages/components/input/input.module.ts","../../../packages/components/input/koobiq-components-input.ts"],"sourcesContent":["export function getKbqInputUnsupportedTypeError(inputType: string): Error {\n return Error(`Input type \"${inputType}\" isn't supported by kbqInput.`);\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n Attribute,\n booleanAttribute,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n OnDestroy,\n Optional,\n Renderer2\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AbstractControl, ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n BACKSPACE,\n DASH,\n DELETE,\n DOWN_ARROW,\n END,\n ENTER,\n ESCAPE,\n FF_MINUS,\n HOME,\n isCopy,\n isFunctionKey,\n isNumberKey,\n isNumpadKey,\n isSelectAll,\n LEFT_ARROW,\n NUMPAD_MINUS,\n RIGHT_ARROW,\n TAB,\n UP_ARROW,\n V,\n X,\n Z\n} from '@koobiq/cdk/keycodes';\nimport {\n checkAndNormalizeLocalizedNumber,\n formatNumberWithLocale,\n KBQ_DEFAULT_PRECISION_SEPARATOR,\n KBQ_LOCALE_SERVICE,\n KbqLocaleService,\n KbqNumberInputLocaleConfig,\n normalizeNumber,\n ruRUFormattersData\n} from '@koobiq/components/core';\nimport { KbqFormFieldControl } from '@koobiq/components/form-field';\nimport { Subject } from 'rxjs';\n\nexport const KBQ_INPUT_NUMBER_DEFAULT_CONFIGURATION = ruRUFormattersData.input.number;\n\nexport const BIG_STEP = 10;\nexport const SMALL_STEP = 1;\n\nexport function normalizeSplitter(value: string): string {\n return value ? value.replace(/,/g, KBQ_DEFAULT_PRECISION_SEPARATOR) : value;\n}\n\nexport function isFloat(value: string): boolean {\n return /^-?\\d+\\.\\d+$/.test(value);\n}\n\nexport function isInt(value: string): boolean {\n return /^-?\\d+$/.test(value);\n}\n\nexport function isDigit(value: string): boolean {\n return isFloat(value) || isInt(value);\n}\n\nexport function getPrecision(value: number): number {\n const arr = value.toString().split(KBQ_DEFAULT_PRECISION_SEPARATOR);\n\n return arr.length === 1 ? 1 : Math.pow(10, arr[1].length);\n}\n\nexport function add(value1: number, value2: number): number {\n const precision = Math.max(getPrecision(value1), getPrecision(value2));\n\n return (value1 * precision + value2 * precision) / precision;\n}\n\nexport const KBQ_NUMBER_INPUT_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => KbqNumberInput),\n multi: true\n};\n\n@Directive({\n selector: `input[kbqNumberInput]`,\n exportAs: 'kbqNumericalInput',\n providers: [KBQ_NUMBER_INPUT_VALUE_ACCESSOR],\n host: {\n '(blur)': 'focusChanged(false)',\n '(focus)': 'focusChanged(true)',\n '(paste)': 'onPaste($event)',\n '(keydown)': 'onKeyDown($event)',\n '(input)': 'onInput($event)'\n }\n})\nexport class KbqNumberInput implements KbqFormFieldControl<any>, ControlValueAccessor, OnDestroy {\n /** Emits when the value changes (either due to user input or programmatic change). */\n valueChange = new EventEmitter<number | null>();\n\n /** Emits when the disabled state has changed */\n disabledChange = new EventEmitter<boolean>();\n\n readonly stateChanges: Subject<void> = new Subject<void>();\n\n id: string;\n\n placeholder: string;\n\n empty: boolean;\n\n required: boolean;\n\n errorState: boolean;\n\n controlType?: string | undefined;\n\n /**\n * Allows input and pasting of integers only.\n */\n @Input({ transform: booleanAttribute })\n integer: boolean = false;\n\n @Input()\n bigStep: number;\n\n @Input()\n step: number;\n\n @Input()\n min: number;\n\n @Input()\n max: number;\n\n @Input({ transform: booleanAttribute })\n withThousandSeparator: boolean = true;\n\n /**\n * Include thousand separator from custom index. For example, it will be useful in tables.\n */\n @Input()\n startFormattingFrom?: number;\n\n @Input()\n get value(): number | null {\n return this._value;\n }\n\n set value(value: number | null) {\n const oldValue = this.value;\n\n this._value = value;\n\n if (oldValue !== value) {\n this.setViewValue(this.formatNumber(value));\n\n this.valueChange.emit(value);\n }\n }\n\n private _value: number | null;\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n const newValue = coerceBooleanProperty(value);\n const element = this.nativeElement;\n\n if (this._disabled !== newValue) {\n this._disabled = newValue;\n this.disabledChange.emit(newValue);\n }\n\n // We need to null check the `blur` method, because it's undefined during SSR.\n if (newValue && element.blur) {\n // Normally, native input elements automatically blur if they turn disabled. This behavior\n // is problematic, because it would mean that it triggers another change detection cycle,\n // which then causes a changed after checked error if the input element was focused before.\n element.blur();\n }\n }\n\n private _disabled: boolean = false;\n\n focused: boolean = false;\n\n get nativeElement(): HTMLInputElement {\n return this.elementRef.nativeElement;\n }\n\n get viewValue(): string {\n return this.nativeElement.value;\n }\n\n get ngControl(): any {\n return this.control;\n }\n\n protected get fractionSeparator(): KbqNumberInputLocaleConfig['fractionSeparator'] {\n return this.config.fractionSeparator;\n }\n\n protected get groupSeparator(): KbqNumberInputLocaleConfig['groupSeparator'] {\n return this.config.groupSeparator;\n }\n\n private control: AbstractControl;\n\n private config: KbqNumberInputLocaleConfig;\n\n private valueFromPaste: number | null;\n\n constructor(\n private elementRef: ElementRef<HTMLInputElement>,\n private readonly renderer: Renderer2,\n @Attribute('step') step: string,\n @Attribute('big-step') bigStep: string,\n @Attribute('min') min: string,\n @Attribute('max') max: string,\n @Optional() @Inject(KBQ_LOCALE_SERVICE) private localeService?: KbqLocaleService\n ) {\n this.step = isDigit(step) ? parseFloat(step) : SMALL_STEP;\n this.bigStep = isDigit(bigStep) ? parseFloat(bigStep) : BIG_STEP;\n this.min = isDigit(min) ? parseFloat(min) : -Infinity;\n this.max = isDigit(max) ? parseFloat(max) : Infinity;\n\n if ('valueAsNumber' in this.nativeElement) {\n Object.defineProperty(Object.getPrototypeOf(this.nativeElement), 'valueAsNumber', {\n get() {\n const res = parseFloat(normalizeSplitter(this.value));\n\n return isNaN(res) ? null : res;\n }\n });\n }\n\n this.localeService?.changes.pipe(takeUntilDestroyed()).subscribe(this.updateLocaleParams);\n\n if (!localeService) {\n this.initDefaultParams();\n }\n }\n\n ngOnDestroy(): void {\n this.valueChange.complete();\n this.disabledChange.complete();\n }\n\n onContainerClick(): void {\n this.focus();\n }\n\n focus(): void {\n this.nativeElement.focus();\n }\n\n // Implemented as part of ControlValueAccessor.\n writeValue(value: number | null): void {\n this.value = value;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn: (value: any) => void): void {\n this.cvaOnChange = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n focusChanged(isFocused: boolean) {\n if (isFocused !== this.focused) {\n this.focused = isFocused;\n this.stateChanges.next();\n }\n\n if (!isFocused) this.onTouched();\n }\n\n onTouched = () => {};\n\n onKeyDown(event: KeyboardEvent) {\n const keyCode = event.keyCode;\n const minuses = [NUMPAD_MINUS, DASH, FF_MINUS];\n const serviceKeys = [DELETE, BACKSPACE, TAB, ESCAPE, ENTER];\n const arrows = [LEFT_ARROW, RIGHT_ARROW];\n const allowedKeys = [HOME, END].concat(arrows).concat(serviceKeys).concat(minuses);\n\n // should parse normalized fractionSeparator\n const viewValueToBeChecked = normalizeNumber(this.viewValue, this.config);\n\n const shouldSkipForIntegerMode = this.integer && this.isPeriod(event);\n const isMinusAllowed = minuses.includes(keyCode) && (this.viewValue.includes(event.key) || this.min >= 0);\n const isSignAndFractionSepAlreadyExists =\n this.isPeriod(event) &&\n [this.fractionSeparator, KBQ_DEFAULT_PRECISION_SEPARATOR].includes(event.key) &&\n viewValueToBeChecked.indexOf(KBQ_DEFAULT_PRECISION_SEPARATOR) !== -1;\n\n if (shouldSkipForIntegerMode || isMinusAllowed || isSignAndFractionSepAlreadyExists) {\n event.preventDefault();\n\n return;\n }\n\n if (allowedKeys.indexOf(keyCode) !== -1 || [\n isSelectAll,\n isCopy,\n this.isCtrlV,\n this.isCtrlX,\n this.isCtrlZ,\n isFunctionKey,\n this.isPeriod\n ].some((fn) => fn(event))) {\n // let it happen, don't do anything\n return;\n }\n\n const isLetter = !isNumberKey(event) && !isNumpadKey(event);\n\n // Ensure that it is not a number and stop the keypress\n if (event.shiftKey || isLetter) {\n event.preventDefault();\n\n // process steps\n const step = event.shiftKey ? this.bigStep : this.step;\n\n if (keyCode === UP_ARROW) {\n this.stepUp(step);\n }\n\n if (keyCode === DOWN_ARROW) {\n this.stepDown(step);\n }\n }\n }\n\n onInput(event: InputEvent) {\n const currentValueLength = this.formatNumber(this.value)?.length || 0;\n const previousSelectionStart = this.nativeElement.selectionStart || 0;\n\n setTimeout(() => {\n const fromPaste = event.inputType === 'insertFromPaste';\n let formattedValue: string | null;\n\n if (fromPaste) {\n formattedValue = this.formatNumber(this.valueFromPaste);\n } else {\n /*this.viewValue is raw and should be reformatted to localized number */\n formattedValue = this.formatViewValue();\n\n if (this.withThousandSeparator) {\n const offsetWhenSeparatorAdded = 2;\n\n Promise.resolve().then(() => {\n if (\n this.value &&\n Math.abs(this.value) >= 1000 &&\n Math.abs(this.viewValue.length - currentValueLength) === offsetWhenSeparatorAdded\n ) {\n // move selection to the left/right if separator was added/removed\n const cursorPosition = Math.max(\n 0,\n previousSelectionStart + Math.sign(this.viewValue.length - currentValueLength)\n );\n\n this.renderer.setProperty(this.nativeElement, 'selectionStart', cursorPosition);\n this.renderer.setProperty(this.nativeElement, 'selectionEnd', cursorPosition);\n }\n });\n }\n }\n\n this.setViewValue(formattedValue, !fromPaste);\n\n if (this.viewValue !== '-') {\n this.viewToModelUpdate(formattedValue);\n }\n });\n }\n\n onPaste(event: ClipboardEvent) {\n this.valueFromPaste = checkAndNormalizeLocalizedNumber(\n event.clipboardData?.getData('text'),\n this.localeService?.id\n );\n\n if (this.valueFromPaste === null || isNaN(this.valueFromPaste)) {\n event.preventDefault();\n } else if (this.integer && isFloat(this.valueFromPaste.toString())) {\n event.preventDefault();\n\n const parsedValue = Number.parseInt(this.valueFromPaste.toString());\n\n this.setViewValue(this.formatNumber(parsedValue));\n this.viewToModelUpdate(parsedValue.toString());\n }\n }\n\n stepUp(step: number) {\n this.nativeElement.focus();\n\n const res = Math.max(Math.min(add(this.value || 0, step), this.max), this.min);\n\n this.setViewValue(this.formatNumber(res));\n\n this._value = res;\n this.cvaOnChange(res);\n this.valueChange.emit(res);\n }\n\n stepDown(step: number) {\n this.nativeElement.focus();\n\n const res = Math.min(Math.max(add(this.value || 0, -step), this.min), this.max);\n\n this.setViewValue(this.formatNumber(res));\n\n this._value = res;\n this.cvaOnChange(res);\n this.valueChange.emit(res);\n }\n\n private initDefaultParams() {\n this.config = KBQ_INPUT_NUMBER_DEFAULT_CONFIGURATION;\n }\n\n private isCtrlV = (event: KeyboardEvent) => {\n return event.keyCode === V && (event.ctrlKey || event.metaKey);\n };\n\n private isCtrlX = (event: KeyboardEvent) => {\n return event.keyCode === X && (event.ctrlKey || event.metaKey);\n };\n\n private isCtrlZ = (event: KeyboardEvent) => {\n return event.keyCode === Z && (event.ctrlKey || event.metaKey);\n };\n\n private isPeriod = (event: KeyboardEvent) => {\n return (\n this.groupSeparator.includes(event.key) ||\n [this.fractionSeparator, KBQ_DEFAULT_PRECISION_SEPARATOR].includes(event.key)\n );\n };\n\n private cvaOnChange: (value: any) => void = () => {};\n\n private setViewValue(value: string | null, savePosition: boolean = false) {\n const cursorPosition = this.nativeElement.selectionStart;\n\n this.renderer.setProperty(this.nativeElement, 'value', value);\n\n if (savePosition) {\n this.renderer.setProperty(this.nativeElement, 'selectionStart', cursorPosition);\n this.renderer.setProperty(this.nativeElement, 'selectionEnd', cursorPosition);\n }\n }\n\n private viewToModelUpdate(newValue: string | null) {\n const normalizedValue = newValue === null ? null : +normalizeNumber(newValue, this.config);\n\n if (normalizedValue !== this.value) {\n this._value = normalizedValue;\n this.cvaOnChange(normalizedValue);\n this.valueChange.emit(normalizedValue);\n }\n\n this.ngControl?.updateValueAndValidity({ emitEvent: false });\n }\n\n private formatViewValue(): string | null {\n // we just need to skip the minus sign and not do any formatting\n if (this.viewValue === '-') return this.viewValue;\n\n if (\n this.viewValue === null ||\n this.viewValue === '' ||\n Number.isNaN(+normalizeNumber(this.viewValue, this.config))\n ) {\n return null;\n }\n\n const separator =\n this.groupSeparator.includes(' ') && this.fractionSeparator === ',' ? /[,.]/ : this.fractionSeparator;\n\n const [intPart, fractionPart] = this.viewValue\n .split(separator)\n .map((valuePart) => normalizeNumber(valuePart, this.config));\n\n return this.createLocalizedNumberFromParts(+intPart, fractionPart);\n }\n\n private formatNumber(value: number | null | undefined): string | null {\n if (value === null || value === undefined) return null;\n\n const [intPart, fractionPart] = value.toString().split(KBQ_DEFAULT_PRECISION_SEPARATOR);\n\n return this.createLocalizedNumberFromParts(+intPart, fractionPart);\n }\n\n private createLocalizedNumberFromParts(intPart: number, fractionPart?: string): string {\n const formatOptions = {\n useGrouping: this.withThousandSeparator,\n maximumFractionDigits: 20\n };\n\n if (this.withThousandSeparator && this.config.startFormattingFrom) {\n formatOptions.useGrouping = intPart >= Math.pow(10, this.config.startFormattingFrom);\n }\n\n const localeId = !this.localeService || this.localeService.id === 'es-LA' ? 'ru-RU' : this.localeService.id;\n\n const formatter = new Intl.NumberFormat(localeId, formatOptions);\n\n const formattedIntPart = formatNumberWithLocale(intPart, formatter, this.config);\n\n if (fractionPart === undefined) {\n return formattedIntPart;\n }\n\n let formattedFractionPart: string = '';\n\n for (const numChar of fractionPart) {\n formattedFractionPart += formatter.format(+numChar);\n }\n\n return `${formattedIntPart}${this.fractionSeparator}${formattedFractionPart}`;\n }\n\n private updateLocaleParams = () => {\n this.config = this.localeService!.getParams('input').number;\n\n this.setViewValue(this.formatNumber(this.value));\n };\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const KBQ_INPUT_VALUE_ACCESSOR = new InjectionToken<{ value: any }>('KBQ_INPUT_VALUE_ACCESSOR');\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { getSupportedInputTypes } from '@angular/cdk/platform';\nimport {\n Directive,\n DoCheck,\n ElementRef,\n EventEmitter,\n inject,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n Self\n} from '@angular/core';\nimport { FormGroupDirective, NgControl, NgForm, UntypedFormControl } from '@angular/forms';\nimport { CanUpdateErrorState, ErrorStateMatcher, KBQ_VALIDATION } from '@koobiq/components/core';\nimport { KbqFormFieldControl } from '@koobiq/components/form-field';\nimport { Subject } from 'rxjs';\nimport { getKbqInputUnsupportedTypeError } from './input-errors';\nimport { KbqNumberInput } from './input-number';\nimport { KBQ_INPUT_VALUE_ACCESSOR } from './input-value-accessor';\n\nconst KBQ_INPUT_INVALID_TYPES = [\n 'button',\n 'checkbox',\n 'file',\n 'hidden',\n 'image',\n 'radio',\n 'range',\n 'reset',\n 'submit'\n];\n\nlet nextUniqueId = 0;\n\n@Directive({\n selector: `input[kbqInput],input[kbqNumberInput]`,\n exportAs: 'kbqInput',\n host: {\n class: 'kbq-input',\n // Native input properties that are overwritten by Angular inputs need to be synced with\n // the native input element. Otherwise property bindings for those don't work.\n '[attr.id]': 'id',\n '[attr.placeholder]': 'placeholder',\n '[attr.disabled]': 'disabled || null',\n '[required]': 'required',\n '(blur)': 'onBlur()',\n '(focus)': 'focusChanged(true)'\n },\n providers: [\n {\n provide: KbqFormFieldControl,\n useExisting: KbqInput\n }\n ]\n})\nexport class KbqInput\n implements KbqFormFieldControl<any>, OnChanges, OnDestroy, DoCheck, OnChanges, 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 /** 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 = 'input';\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n @Input() placeholder: string;\n\n protected uid = `kbq-input-${nextUniqueId++}`;\n protected previousNativeValue: any;\n protected neverEmptyInputTypes = [\n 'date',\n 'datetime',\n 'datetime-local',\n 'month',\n 'time',\n 'week'\n ].filter((t) => getSupportedInputTypes().has(t));\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 // Browsers may not fire the blur event if the input is disabled too quickly.\n // Reset from here to ensure that the element doesn't become stuck.\n if (this.focused) {\n this.focused = false;\n this.stateChanges.next();\n }\n }\n\n private _disabled = false;\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 private _id: string;\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 private _required = false;\n\n /** Input type of the element. */\n @Input()\n get type(): string {\n return this._type;\n }\n\n set type(value: string) {\n this._type = value || 'text';\n this.validateType();\n\n // When using Angular inputs, developers are no longer able to set the properties on the native\n // input element. To ensure that bindings for `type` work, we need to sync the setter\n // with the native property. Textarea elements don't support the type property or attribute.\n if (getSupportedInputTypes().has(this._type)) {\n this.elementRef.nativeElement.type = this._type;\n }\n }\n\n private _type = 'text';\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n @Input()\n get value(): string {\n return this.inputValueAccessor.value;\n }\n\n set value(value: string) {\n if (value !== this.value) {\n this.inputValueAccessor.value = value;\n this.stateChanges.next();\n }\n }\n\n private inputValueAccessor: { value: any };\n\n constructor(\n protected elementRef: ElementRef<HTMLInputElement>,\n @Optional() @Self() public ngControl: NgControl,\n @Optional() @Self() public numberInput: KbqNumberInput,\n @Optional() public parentForm: NgForm,\n @Optional() public parentFormGroup: FormGroupDirective,\n public defaultErrorStateMatcher: ErrorStateMatcher,\n @Optional() @Self() @Inject(KBQ_INPUT_VALUE_ACCESSOR) inputValueAccessor: any\n ) {\n // If no input value accessor was explicitly specified, use the element as the input value accessor.\n this.inputValueAccessor = 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\n ngOnChanges() {\n this.stateChanges.next();\n }\n\n ngOnDestroy() {\n this.stateChanges.complete();\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 /** Focuses the input. */\n focus(): void {\n this.elementRef.nativeElement.focus();\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 /** Callback for the cases where the focused state of the input changes. */\n focusChanged(isFocused: boolean) {\n if (this.focused !== isFocused) {\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.isNeverEmpty() && !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 input `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 /** Make sure the input is a supported type. */\n protected validateType() {\n if (KBQ_INPUT_INVALID_TYPES.indexOf(this._type) > -1) {\n throw getKbqInputUnsupportedTypeError(this._type);\n }\n }\n\n /** Checks whether the input type is one of the types that are never empty. */\n protected isNeverEmpty() {\n return this.neverEmptyInputTypes.indexOf(this._type) > -1;\n }\n\n /** Checks whether the input is invalid based on the native validation. */\n protected isBadInput() {\n // The `validity` property won't be present on platform-server.\n const validity = (this.elementRef.nativeElement as HTMLInputElement).validity;\n\n return validity?.badInput;\n }\n}\n\n@Directive({\n selector: 'input[kbqInputMonospace]',\n exportAs: 'KbqInputMonospace',\n host: { class: 'kbq-input_monospace' }\n})\nexport class KbqInputMono {}\n","import { Directive, forwardRef, Input, OnChanges, Provider, SimpleChanges } from '@angular/core';\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator, ValidatorFn, Validators } from '@angular/forms';\n\nexport const MIN_VALIDATOR: Provider = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MinValidator),\n multi: true\n};\n\n/**\n * A directive which installs the MinValidator for any `formControlName`,\n * `formControl`, or control with `ngModel` that also has a `min` attribute.\n */\n@Directive({\n selector: '[min][formControlName],[min][formControl],[min][ngModel]',\n providers: [MIN_VALIDATOR],\n host: {\n '[attr.min]': 'min ? min : null'\n }\n})\nexport class MinValidator implements Validator, OnChanges {\n @Input() min: number;\n private validator: ValidatorFn;\n private onChange: () => void;\n\n ngOnChanges(changes: SimpleChanges): void {\n if ('min' in changes) {\n this.createValidator();\n\n if (this.onChange) {\n this.onChange();\n }\n }\n }\n\n validate(c: AbstractControl): ValidationErrors | null {\n return this.validator(c);\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onChange = fn;\n }\n\n private createValidator(): void {\n this.validator = Validators.min(parseInt(this.min as unknown as string, 10));\n }\n}\n\nexport const MAX_VALIDATOR: Provider = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MaxValidator),\n multi: true\n};\n\n/**\n * A directive which installs the MaxValidator for any `formControlName`,\n * `formControl`, or control with `ngModel` that also has a `min` attribute.\n */\n@Directive({\n selector: '[max][formControlName],[max][formControl],[max][ngModel]',\n providers: [MAX_VALIDATOR],\n host: {\n '[attr.max]': 'max ? max : null'\n }\n})\nexport class MaxValidator implements Validator, OnChanges {\n @Input() max: number | string;\n private validator: ValidatorFn;\n private onChange: () => void;\n\n ngOnChanges(changes: SimpleChanges): void {\n if ('max' in changes) {\n this.createValidator();\n\n if (this.onChange) {\n this.onChange();\n }\n }\n }\n\n validate(c: AbstractControl): ValidationErrors | null {\n return this.validator(c);\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onChange = fn;\n }\n\n private createValidator(): void {\n this.validator = Validators.max(parseInt(this.max as unknown as string, 10));\n }\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n Directive,\n DoCheck,\n ElementRef,\n EventEmitter,\n inject,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n Self\n} from '@angular/core';\nimport { FormGroupDirective, NgControl, NgForm, UntypedFormControl } from '@angular/forms';\nimport { CanUpdateErrorState, ErrorStateMatcher, KBQ_VALIDATION } from '@koobiq/components/core';\nimport { KbqFormFieldControl } from '@koobiq/components/form-field';\nimport { Subject } from 'rxjs';\nimport { KBQ_INPUT_VALUE_ACCESSOR } from './input-value-accessor';\n\nlet nextUniqueId = 0;\n\n@Directive({\n selector: `input[kbqInputPassword]`,\n exportAs: 'kbqInputPassword',\n host: {\n class: 'kbq-input kbq-input-password',\n // Native input properties that are overwritten by Angular inputs need to be synced with\n // the native input element. Otherwise property bindings for those don't work.\n '[attr.id]': 'id',\n '[attr.type]': 'elementType',\n '[attr.placeholder]': 'placeholder',\n '[attr.disabled]': 'disabled || null',\n '[required]': 'required',\n '(blur)': 'onBlur()',\n '(focus)': 'focusChanged(true)',\n '(input)': 'onInput()'\n },\n providers: [\n {\n provide: KbqFormFieldControl,\n useExisting: KbqInputPassword\n }\n ]\n})\nexport class KbqInputPassword\n implements KbqFormFieldControl<any>, OnChanges, OnDestroy, DoCheck, OnChanges, 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 /** 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 = new Subject<any>();\n\n readonly checkRule = new Subject<void>();\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n controlType: string = 'input-password';\n\n elementType: string = 'password';\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n @Input() placeholder: string;\n\n protected uid = `kbq-input-${nextUniqueId++}`;\n protected previousNativeValue: any;\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 // Browsers may not fire the blur event if the input is disabled too quickly.\n // Reset from here to ensure that the element doesn't become stuck.\n if (this.focused) {\n this.focused = false;\n this.stateChanges.next(null);\n }\n }\n\n private _disabled = false;\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 private _id: string;\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 private _required = false;\n\n // this.elementRef.nativeElement.type = this._type;\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n @Input()\n get value(): string {\n return this._inputValueAccessor.value;\n }\n\n set value(value: string) {\n if (value === this.value) {\n return;\n }\n\n this._inputValueAccessor.value = value;\n this.stateChanges.next(null);\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 private _inputValueAccessor: { value: any };\n\n constructor(\n protected elementRef: ElementRef<HTMLInputElement>,\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_INPUT_VALUE_ACCESSOR) inputValueAccessor: any\n ) {\n // If no input value accessor was explicitly specified, use the element as the input value\n // accessor.\n this._inputValueAccessor = 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\n ngOnChanges() {\n this.stateChanges.next(null);\n }\n\n ngOnDestroy() {\n this.stateChanges.complete();\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(null);\n }\n }\n\n checkRules() {\n this.checkRule.next();\n }\n\n toggleType() {\n this.elementType = this.elementType === 'password' ? 'text' : 'password';\n }\n\n /** Focuses the input. */\n focus(): void {\n this.elementRef.nativeElement.focus();\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 /** Callback for the cases where the focused state of the input changes. */\n focusChanged(isFocused: boolean) {\n if (isFocused === this.focused) {\n return;\n }\n\n this.focused = isFocused;\n this.stateChanges.next({ focused: this.focused });\n }\n\n onInput() {\n // This is a noop function and is used to let Angular know whenever the value changes.\n // Angular will run a new change detection each time the `input` event has been dispatched.\n // It's necessary that Angular recognizes the value change, because when floatingLabel\n // is set to false and Angular forms aren't used, the placeholder won't recognize the\n // value changes and will not disappear.\n // Listening to the input event wouldn't be necessary when the input is using the\n // FormsModule or ReactiveFormsModule, because Angular forms also listens to input events.\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 input `value` property. */\n protected dirtyCheckNativeValue() {\n if (this.previousNativeValue !== this.value) {\n this.previousNativeValue = this.value;\n this.stateChanges.next(null);\n }\n }\n\n /** Checks whether the input is invalid based on the native validation. */\n protected isBadInput() {\n // The `validity` property won't be present on platform-server.\n return (this.elementRef.nativeElement as HTMLInputElement).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 { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqInput, KbqInputMono } from './input';\nimport { KbqNumberInput } from './input-number';\nimport { MaxValidator, MinValidator } from './input-number-validators';\nimport { KbqInputPassword } from './input-password';\n\n@NgModule({\n imports: [\n A11yModule,\n FormsModule,\n KbqIconModule,\n KbqInput,\n KbqNumberInput,\n KbqInputPassword,\n KbqInputMono,\n MinValidator,\n MaxValidator\n ],\n exports: [\n KbqInput,\n KbqNumberInput,\n KbqInputPassword,\n KbqInputMono,\n MinValidator,\n MaxValidator,\n KbqFormFieldModule\n ]\n})\nexport class KbqInputModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["nextUniqueId"],"mappings":"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"}
1
+ {"version":3,"file":"koobiq-components-input.mjs","sources":["../../../packages/components/input/input-errors.ts","../../../packages/components/input/input-number.ts","../../../packages/components/input/input-value-accessor.ts","../../../packages/components/input/input.ts","../../../packages/components/input/input-number-validators.ts","../../../packages/components/input/input-password.ts","../../../packages/components/input/input.module.ts","../../../packages/components/input/koobiq-components-input.ts"],"sourcesContent":["export function getKbqInputUnsupportedTypeError(inputType: string): Error {\n return Error(`Input type \"${inputType}\" isn't supported by kbqInput.`);\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n booleanAttribute,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostAttributeToken,\n inject,\n Input,\n input,\n OnDestroy,\n Renderer2\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AbstractControl, ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n BACKSPACE,\n checkAndNormalizeLocalizedNumber,\n DASH,\n DELETE,\n DOWN_ARROW,\n END,\n ENTER,\n ESCAPE,\n FF_MINUS,\n formatNumberWithLocale,\n HOME,\n isCopy,\n isFunctionKey,\n isNumberKey,\n isNumpadKey,\n isSelectAll,\n KBQ_DEFAULT_PRECISION_SEPARATOR,\n KBQ_LOCALE_SERVICE,\n KbqLocaleService,\n KbqNumberInputLocaleConfig,\n LEFT_ARROW,\n normalizeNumber,\n NUMPAD_MINUS,\n RIGHT_ARROW,\n ruRUFormattersData,\n TAB,\n UP_ARROW,\n V,\n X,\n Z\n} from '@koobiq/components/core';\nimport { KbqFormFieldControl } from '@koobiq/components/form-field';\nimport { Subject } from 'rxjs';\n\nexport const KBQ_INPUT_NUMBER_DEFAULT_CONFIGURATION = ruRUFormattersData.input.number;\n\nexport const BIG_STEP = 10;\nexport const SMALL_STEP = 1;\n\nexport function normalizeSplitter(value: string): string {\n return value ? value.replace(/,/g, KBQ_DEFAULT_PRECISION_SEPARATOR) : value;\n}\n\nexport function isFloat(value: string): boolean {\n return /^-?\\d+\\.\\d+$/.test(value);\n}\n\nexport function isInt(value: string): boolean {\n return /^-?\\d+$/.test(value);\n}\n\nexport function isDigit(value: string): boolean {\n return isFloat(value) || isInt(value);\n}\n\nexport function getPrecision(value: number): number {\n const arr = value.toString().split(KBQ_DEFAULT_PRECISION_SEPARATOR);\n\n return arr.length === 1 ? 1 : Math.pow(10, arr[1].length);\n}\n\nexport function add(value1: number, value2: number): number {\n const precision = Math.max(getPrecision(value1), getPrecision(value2));\n\n return (value1 * precision + value2 * precision) / precision;\n}\n\nexport const KBQ_NUMBER_INPUT_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => KbqNumberInput),\n multi: true\n};\n\n@Directive({\n selector: `input[kbqNumberInput]`,\n providers: [KBQ_NUMBER_INPUT_VALUE_ACCESSOR],\n host: {\n '(blur)': 'focusChanged(false)',\n '(focus)': 'focusChanged(true)',\n '(paste)': 'onPaste($event)',\n '(keydown)': 'onKeyDown($event)',\n '(input)': 'onInput($event)'\n },\n exportAs: 'kbqNumericalInput'\n})\nexport class KbqNumberInput implements KbqFormFieldControl<any>, ControlValueAccessor, OnDestroy {\n private elementRef = inject<ElementRef<HTMLInputElement>>(ElementRef);\n private readonly renderer = inject(Renderer2);\n private localeService = inject<KbqLocaleService>(KBQ_LOCALE_SERVICE, { optional: true });\n /** Emits when the value changes (either due to user input or programmatic change). */\n valueChange = new EventEmitter<number | null>();\n\n /** Emits when the disabled state has changed */\n disabledChange = new EventEmitter<boolean>();\n\n readonly stateChanges: Subject<void> = new Subject<void>();\n\n id: string;\n\n placeholder: string;\n\n empty: boolean;\n\n required: boolean;\n\n errorState: boolean;\n\n controlType?: string | undefined;\n\n /**\n * Allows input and pasting of integers only.\n */\n readonly integer = input<boolean, unknown>(false, { transform: booleanAttribute });\n\n // TODO: Skipped for migration because:\n // Your application code writes to the input. This prevents migration.\n @Input()\n bigStep: number;\n\n // TODO: Skipped for migration because:\n // Your application code writes to the input. This prevents migration.\n @Input()\n step: number;\n\n // TODO: Skipped for migration because:\n // Your application code writes to the input. This prevents migration.\n @Input()\n min: number;\n\n // TODO: Skipped for migration because:\n // Your application code writes to the input. This prevents migration.\n @Input()\n max: number;\n\n readonly withThousandSeparator = input<boolean, unknown>(true, { transform: booleanAttribute });\n\n /**\n * Include thousand separator from custom index. For example, it will be useful in tables.\n */\n readonly startFormattingFrom = input<number>();\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get value(): number | null {\n return this._value;\n }\n\n set value(value: number | null) {\n const oldValue = this.value;\n\n this._value = value;\n\n if (oldValue !== value) {\n this.setViewValue(this.formatNumber(value));\n\n this.valueChange.emit(value);\n }\n }\n\n private _value: number | null;\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 return this._disabled;\n }\n\n set disabled(value: boolean) {\n const newValue = coerceBooleanProperty(value);\n const element = this.nativeElement;\n\n if (this._disabled !== newValue) {\n this._disabled = newValue;\n this.disabledChange.emit(newValue);\n }\n\n // We need to null check the `blur` method, because it's undefined during SSR.\n if (newValue && element.blur) {\n // Normally, native input elements automatically blur if they turn disabled. This behavior\n // is problematic, because it would mean that it triggers another change detection cycle,\n // which then causes a changed after checked error if the input element was focused before.\n element.blur();\n }\n }\n\n private _disabled: boolean = false;\n\n focused: boolean = false;\n\n get nativeElement(): HTMLInputElement {\n return this.elementRef.nativeElement;\n }\n\n get viewValue(): string {\n return this.nativeElement.value;\n }\n\n get ngControl(): any {\n return this.control;\n }\n\n protected get fractionSeparator(): KbqNumberInputLocaleConfig['fractionSeparator'] {\n return this.config.fractionSeparator;\n }\n\n protected get groupSeparator(): KbqNumberInputLocaleConfig['groupSeparator'] {\n return this.config.groupSeparator;\n }\n\n private control: AbstractControl;\n\n private config: KbqNumberInputLocaleConfig;\n\n private valueFromPaste: number | null;\n\n constructor() {\n const step = inject(new HostAttributeToken('step'), { optional: true })!;\n const bigStep = inject(new HostAttributeToken('big-step'), { optional: true })!;\n const min = inject(new HostAttributeToken('min'), { optional: true })!;\n const max = inject(new HostAttributeToken('max'), { optional: true })!;\n const localeService = this.localeService;\n\n this.step = isDigit(step) ? parseFloat(step) : SMALL_STEP;\n this.bigStep = isDigit(bigStep) ? parseFloat(bigStep) : BIG_STEP;\n this.min = isDigit(min) ? parseFloat(min) : -Infinity;\n this.max = isDigit(max) ? parseFloat(max) : Infinity;\n\n if ('valueAsNumber' in this.nativeElement) {\n Object.defineProperty(Object.getPrototypeOf(this.nativeElement), 'valueAsNumber', {\n get() {\n const res = parseFloat(normalizeSplitter(this.value));\n\n return isNaN(res) ? null : res;\n }\n });\n }\n\n this.localeService?.changes.pipe(takeUntilDestroyed()).subscribe(this.updateLocaleParams);\n\n if (!localeService) {\n this.initDefaultParams();\n }\n }\n\n ngOnDestroy(): void {\n this.valueChange.complete();\n this.disabledChange.complete();\n }\n\n onContainerClick(): void {\n this.focus();\n }\n\n focus(): void {\n this.nativeElement.focus();\n }\n\n // Implemented as part of ControlValueAccessor.\n writeValue(value: number | null): void {\n this.value = value;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn: (value: any) => void): void {\n this.cvaOnChange = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n focusChanged(isFocused: boolean) {\n if (isFocused !== this.focused) {\n this.focused = isFocused;\n this.stateChanges.next();\n }\n\n if (!isFocused) this.onTouched();\n }\n\n onTouched = () => {};\n\n onKeyDown(event: KeyboardEvent) {\n const keyCode = event.keyCode;\n const minuses = [NUMPAD_MINUS, DASH, FF_MINUS];\n const serviceKeys = [DELETE, BACKSPACE, TAB, ESCAPE, ENTER];\n const arrows = [LEFT_ARROW, RIGHT_ARROW];\n const allowedKeys = [HOME, END].concat(arrows).concat(serviceKeys).concat(minuses);\n\n // should parse normalized fractionSeparator\n const viewValueToBeChecked = normalizeNumber(this.viewValue, this.config);\n\n const shouldSkipForIntegerMode = this.integer() && this.isPeriod(event);\n const isMinusAllowed = minuses.includes(keyCode) && (this.viewValue.includes(event.key) || this.min >= 0);\n const isSignAndFractionSepAlreadyExists =\n this.isPeriod(event) &&\n [this.fractionSeparator, KBQ_DEFAULT_PRECISION_SEPARATOR].includes(event.key) &&\n viewValueToBeChecked.indexOf(KBQ_DEFAULT_PRECISION_SEPARATOR) !== -1;\n\n if (shouldSkipForIntegerMode || isMinusAllowed || isSignAndFractionSepAlreadyExists) {\n event.preventDefault();\n\n return;\n }\n\n if (allowedKeys.indexOf(keyCode) !== -1 || [\n isSelectAll,\n isCopy,\n this.isCtrlV,\n this.isCtrlX,\n this.isCtrlZ,\n isFunctionKey,\n this.isPeriod\n ].some((fn) => fn(event))) {\n // let it happen, don't do anything\n return;\n }\n\n const isLetter = !isNumberKey(event) && !isNumpadKey(event);\n\n // Ensure that it is not a number and stop the keypress\n if (event.shiftKey || isLetter) {\n event.preventDefault();\n\n // process steps\n const step = event.shiftKey ? this.bigStep : this.step;\n\n if (keyCode === UP_ARROW) {\n this.stepUp(step);\n }\n\n if (keyCode === DOWN_ARROW) {\n this.stepDown(step);\n }\n }\n }\n\n onInput(event: InputEvent) {\n const currentValueLength = this.formatNumber(this.value)?.length || 0;\n const previousSelectionStart = this.nativeElement.selectionStart || 0;\n\n setTimeout(() => {\n const fromPaste = event.inputType === 'insertFromPaste';\n let formattedValue: string | null;\n\n if (fromPaste) {\n formattedValue = this.formatNumber(this.valueFromPaste);\n } else {\n /*this.viewValue is raw and should be reformatted to localized number */\n formattedValue = this.formatViewValue();\n\n if (this.withThousandSeparator()) {\n const offsetWhenSeparatorAdded = 2;\n\n Promise.resolve().then(() => {\n if (\n this.value &&\n Math.abs(this.value) >= 1000 &&\n Math.abs(this.viewValue.length - currentValueLength) === offsetWhenSeparatorAdded\n ) {\n // move selection to the left/right if separator was added/removed\n const cursorPosition = Math.max(\n 0,\n previousSelectionStart + Math.sign(this.viewValue.length - currentValueLength)\n );\n\n this.renderer.setProperty(this.nativeElement, 'selectionStart', cursorPosition);\n this.renderer.setProperty(this.nativeElement, 'selectionEnd', cursorPosition);\n }\n });\n }\n }\n\n this.setViewValue(formattedValue, !fromPaste);\n\n if (this.viewValue !== '-') {\n this.viewToModelUpdate(formattedValue);\n }\n });\n }\n\n onPaste(event: ClipboardEvent) {\n this.valueFromPaste = checkAndNormalizeLocalizedNumber(\n event.clipboardData?.getData('text'),\n this.localeService?.id\n );\n\n if (this.valueFromPaste === null || isNaN(this.valueFromPaste)) {\n event.preventDefault();\n } else if (this.integer() && isFloat(this.valueFromPaste.toString())) {\n event.preventDefault();\n\n const parsedValue = Number.parseInt(this.valueFromPaste.toString());\n\n this.setViewValue(this.formatNumber(parsedValue));\n this.viewToModelUpdate(parsedValue.toString());\n }\n }\n\n stepUp(step: number) {\n this.nativeElement.focus();\n\n const res = Math.max(Math.min(add(this.value || 0, step), this.max), this.min);\n\n this.setViewValue(this.formatNumber(res));\n\n this._value = res;\n this.cvaOnChange(res);\n this.valueChange.emit(res);\n }\n\n stepDown(step: number) {\n this.nativeElement.focus();\n\n const res = Math.min(Math.max(add(this.value || 0, -step), this.min), this.max);\n\n this.setViewValue(this.formatNumber(res));\n\n this._value = res;\n this.cvaOnChange(res);\n this.valueChange.emit(res);\n }\n\n private initDefaultParams() {\n this.config = KBQ_INPUT_NUMBER_DEFAULT_CONFIGURATION;\n }\n\n private isCtrlV = (event: KeyboardEvent) => {\n return event.keyCode === V && (event.ctrlKey || event.metaKey);\n };\n\n private isCtrlX = (event: KeyboardEvent) => {\n return event.keyCode === X && (event.ctrlKey || event.metaKey);\n };\n\n private isCtrlZ = (event: KeyboardEvent) => {\n return event.keyCode === Z && (event.ctrlKey || event.metaKey);\n };\n\n private isPeriod = (event: KeyboardEvent) => {\n return (\n this.groupSeparator.includes(event.key) ||\n [this.fractionSeparator, KBQ_DEFAULT_PRECISION_SEPARATOR].includes(event.key)\n );\n };\n\n private cvaOnChange: (value: any) => void = () => {};\n\n private setViewValue(value: string | null, savePosition: boolean = false) {\n const cursorPosition = this.nativeElement.selectionStart;\n\n this.renderer.setProperty(this.nativeElement, 'value', value);\n\n if (savePosition) {\n this.renderer.setProperty(this.nativeElement, 'selectionStart', cursorPosition);\n this.renderer.setProperty(this.nativeElement, 'selectionEnd', cursorPosition);\n }\n }\n\n private viewToModelUpdate(newValue: string | null) {\n const normalizedValue = newValue === null ? null : +normalizeNumber(newValue, this.config);\n\n if (normalizedValue !== this.value) {\n this._value = normalizedValue;\n this.cvaOnChange(normalizedValue);\n this.valueChange.emit(normalizedValue);\n }\n\n this.ngControl?.updateValueAndValidity({ emitEvent: false });\n }\n\n private formatViewValue(): string | null {\n // we just need to skip the minus sign and not do any formatting\n if (this.viewValue === '-') return this.viewValue;\n\n if (\n this.viewValue === null ||\n this.viewValue === '' ||\n Number.isNaN(+normalizeNumber(this.viewValue, this.config))\n ) {\n return null;\n }\n\n const separator =\n this.groupSeparator.includes(' ') && this.fractionSeparator === ',' ? /[,.]/ : this.fractionSeparator;\n\n const [intPart, fractionPart] = this.viewValue\n .split(separator)\n .map((valuePart) => normalizeNumber(valuePart, this.config));\n\n return this.createLocalizedNumberFromParts(+intPart, fractionPart);\n }\n\n private formatNumber(value: number | null | undefined): string | null {\n if (value === null || value === undefined) return null;\n\n const [intPart, fractionPart] = value.toString().split(KBQ_DEFAULT_PRECISION_SEPARATOR);\n\n return this.createLocalizedNumberFromParts(+intPart, fractionPart);\n }\n\n private createLocalizedNumberFromParts(intPart: number, fractionPart?: string): string {\n const formatOptions = {\n useGrouping: this.withThousandSeparator(),\n maximumFractionDigits: 20\n };\n\n if (this.withThousandSeparator() && this.config.startFormattingFrom) {\n formatOptions.useGrouping = intPart >= Math.pow(10, this.config.startFormattingFrom);\n }\n\n const localeId = !this.localeService || this.localeService.id === 'es-LA' ? 'ru-RU' : this.localeService.id;\n\n const formatter = new Intl.NumberFormat(localeId, formatOptions);\n\n const formattedIntPart = formatNumberWithLocale(intPart, formatter, this.config);\n\n if (fractionPart === undefined) {\n return formattedIntPart;\n }\n\n let formattedFractionPart: string = '';\n\n for (const numChar of fractionPart) {\n formattedFractionPart += formatter.format(+numChar);\n }\n\n return `${formattedIntPart}${this.fractionSeparator}${formattedFractionPart}`;\n }\n\n private updateLocaleParams = () => {\n this.config = this.localeService!.getParams('input').number;\n\n this.setViewValue(this.formatNumber(this.value));\n };\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const KBQ_INPUT_VALUE_ACCESSOR = new InjectionToken<{ value: any }>('KBQ_INPUT_VALUE_ACCESSOR');\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { getSupportedInputTypes } from '@angular/cdk/platform';\nimport { Directive, DoCheck, ElementRef, Input, OnChanges, OnDestroy, inject } from '@angular/core';\nimport { FormGroupDirective, NgControl, NgForm, UntypedFormControl } from '@angular/forms';\nimport { CanUpdateErrorState, ErrorStateMatcher } from '@koobiq/components/core';\nimport { KbqFormFieldControl } from '@koobiq/components/form-field';\nimport { Subject } from 'rxjs';\nimport { getKbqInputUnsupportedTypeError } from './input-errors';\nimport { KbqNumberInput } from './input-number';\nimport { KBQ_INPUT_VALUE_ACCESSOR } from './input-value-accessor';\n\nconst KBQ_INPUT_INVALID_TYPES = [\n 'button',\n 'checkbox',\n 'file',\n 'hidden',\n 'image',\n 'radio',\n 'range',\n 'reset',\n 'submit'\n];\n\nlet nextUniqueId = 0;\n\n@Directive({\n selector: `input[kbqInput],input[kbqNumberInput]`,\n providers: [\n {\n provide: KbqFormFieldControl,\n useExisting: KbqInput\n }\n ],\n host: {\n class: 'kbq-input',\n // Native input properties that are overwritten by Angular inputs need to be synced with\n // the native input element. Otherwise property bindings for those don't work.\n '[attr.id]': 'id',\n '[attr.placeholder]': 'placeholder',\n '[attr.disabled]': 'disabled || null',\n '[required]': 'required',\n '(blur)': 'onBlur()',\n '(focus)': 'focusChanged(true)'\n },\n exportAs: 'kbqInput'\n})\nexport class KbqInput\n implements KbqFormFieldControl<any>, OnChanges, OnDestroy, DoCheck, OnChanges, CanUpdateErrorState\n{\n protected elementRef = inject<ElementRef<HTMLInputElement>>(ElementRef);\n ngControl = inject(NgControl, { optional: true, self: true });\n numberInput = inject(KbqNumberInput, { optional: true, self: true });\n parentForm = inject(NgForm, { optional: true });\n parentFormGroup = inject(FormGroupDirective, { optional: true });\n defaultErrorStateMatcher = inject(ErrorStateMatcher);\n\n /** Whether the component is in an error state. */\n errorState: boolean = false;\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 = 'input';\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 protected uid = `kbq-input-${nextUniqueId++}`;\n protected previousNativeValue: any;\n protected neverEmptyInputTypes = [\n 'date',\n 'datetime',\n 'datetime-local',\n 'month',\n 'time',\n 'week'\n ].filter((t) => getSupportedInputTypes().has(t));\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 // Browsers may not fire the blur event if the input is disabled too quickly.\n // Reset from here to ensure that the element doesn't become stuck.\n if (this.focused) {\n this.focused = false;\n this.stateChanges.next();\n }\n }\n\n private _disabled = false;\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 private _id: string;\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 private _required = false;\n\n /** Input type of the element. */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get type(): string {\n return this._type;\n }\n\n set type(value: string) {\n this._type = value || 'text';\n this.validateType();\n\n // When using Angular inputs, developers are no longer able to set the properties on the native\n // input element. To ensure that bindings for `type` work, we need to sync the setter\n // with the native property. Textarea elements don't support the type property or attribute.\n if (getSupportedInputTypes().has(this._type)) {\n this.elementRef.nativeElement.type = this._type;\n }\n }\n\n private _type = 'text';\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.inputValueAccessor.value;\n }\n\n set value(value: string) {\n if (value !== this.value) {\n this.inputValueAccessor.value = value;\n this.stateChanges.next();\n }\n }\n\n private inputValueAccessor: { value: any };\n\n constructor() {\n const inputValueAccessor = inject(KBQ_INPUT_VALUE_ACCESSOR, { optional: true, self: true });\n\n // If no input value accessor was explicitly specified, use the element as the input value accessor.\n this.inputValueAccessor = 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\n ngOnChanges() {\n this.stateChanges.next();\n }\n\n ngOnDestroy() {\n this.stateChanges.complete();\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 /** Focuses the input. */\n focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n onBlur(): void {\n this.focusChanged(false);\n }\n\n /** Callback for the cases where the focused state of the input changes. */\n focusChanged(isFocused: boolean) {\n if (this.focused !== isFocused) {\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.isNeverEmpty() && !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 input `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 /** Make sure the input is a supported type. */\n protected validateType() {\n if (KBQ_INPUT_INVALID_TYPES.indexOf(this._type) > -1) {\n throw getKbqInputUnsupportedTypeError(this._type);\n }\n }\n\n /** Checks whether the input type is one of the types that are never empty. */\n protected isNeverEmpty() {\n return this.neverEmptyInputTypes.indexOf(this._type) > -1;\n }\n\n /** Checks whether the input is invalid based on the native validation. */\n protected isBadInput() {\n // The `validity` property won't be present on platform-server.\n const validity = (this.elementRef.nativeElement as HTMLInputElement).validity;\n\n return validity?.badInput;\n }\n}\n\n@Directive({\n selector: 'input[kbqInputMonospace]',\n host: { class: 'kbq-input_monospace' },\n exportAs: 'KbqInputMonospace'\n})\nexport class KbqInputMono {}\n","import { Directive, forwardRef, input, OnChanges, Provider, SimpleChanges } from '@angular/core';\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator, ValidatorFn, Validators } from '@angular/forms';\n\nexport const MIN_VALIDATOR: Provider = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MinValidator),\n multi: true\n};\n\n/**\n * A directive which installs the MinValidator for any `formControlName`,\n * `formControl`, or control with `ngModel` that also has a `min` attribute.\n */\n@Directive({\n selector: '[min][formControlName],[min][formControl],[min][ngModel]',\n providers: [MIN_VALIDATOR],\n host: {\n '[attr.min]': 'min() ? min() : null'\n }\n})\nexport class MinValidator implements Validator, OnChanges {\n readonly min = input<number>(undefined!);\n private validator: ValidatorFn;\n private onChange: () => void;\n\n ngOnChanges(changes: SimpleChanges): void {\n if ('min' in changes) {\n this.createValidator();\n\n if (this.onChange) {\n this.onChange();\n }\n }\n }\n\n validate(c: AbstractControl): ValidationErrors | null {\n return this.validator(c);\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onChange = fn;\n }\n\n private createValidator(): void {\n this.validator = Validators.min(parseInt(this.min() as unknown as string, 10));\n }\n}\n\nexport const MAX_VALIDATOR: Provider = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MaxValidator),\n multi: true\n};\n\n/**\n * A directive which installs the MaxValidator for any `formControlName`,\n * `formControl`, or control with `ngModel` that also has a `min` attribute.\n */\n@Directive({\n selector: '[max][formControlName],[max][formControl],[max][ngModel]',\n providers: [MAX_VALIDATOR],\n host: {\n '[attr.max]': 'max() ? max() : null'\n }\n})\nexport class MaxValidator implements Validator, OnChanges {\n readonly max = input<number | string>(undefined!);\n private validator: ValidatorFn;\n private onChange: () => void;\n\n ngOnChanges(changes: SimpleChanges): void {\n if ('max' in changes) {\n this.createValidator();\n\n if (this.onChange) {\n this.onChange();\n }\n }\n }\n\n validate(c: AbstractControl): ValidationErrors | null {\n return this.validator(c);\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onChange = fn;\n }\n\n private createValidator(): void {\n this.validator = Validators.max(parseInt(this.max() as unknown as string, 10));\n }\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Directive, DoCheck, ElementRef, Input, OnChanges, OnDestroy, inject } from '@angular/core';\nimport { FormGroupDirective, NgControl, NgForm, UntypedFormControl } from '@angular/forms';\nimport { CanUpdateErrorState, ErrorStateMatcher } from '@koobiq/components/core';\nimport { KbqFormFieldControl } from '@koobiq/components/form-field';\nimport { Subject } from 'rxjs';\nimport { KBQ_INPUT_VALUE_ACCESSOR } from './input-value-accessor';\n\nlet nextUniqueId = 0;\n\n@Directive({\n selector: `input[kbqInputPassword]`,\n providers: [\n {\n provide: KbqFormFieldControl,\n useExisting: KbqInputPassword\n }\n ],\n host: {\n class: 'kbq-input kbq-input-password',\n // Native input properties that are overwritten by Angular inputs need to be synced with\n // the native input element. Otherwise property bindings for those don't work.\n '[attr.id]': 'id',\n '[attr.type]': 'elementType',\n '[attr.placeholder]': 'placeholder',\n '[attr.disabled]': 'disabled || null',\n '[required]': 'required',\n '(blur)': 'onBlur()',\n '(focus)': 'focusChanged(true)',\n '(input)': 'onInput()'\n },\n exportAs: 'kbqInputPassword'\n})\nexport class KbqInputPassword\n implements KbqFormFieldControl<any>, OnChanges, OnDestroy, DoCheck, OnChanges, CanUpdateErrorState\n{\n protected elementRef = inject<ElementRef<HTMLInputElement>>(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\n /** Whether the component is in an error state. */\n errorState: boolean = false;\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 = new Subject<any>();\n\n readonly checkRule = new Subject<void>();\n\n /**\n * Implemented as part of KbqFormFieldControl.\n * @docs-private\n */\n controlType: string = 'input-password';\n\n elementType: string = 'password';\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 protected uid = `kbq-input-${nextUniqueId++}`;\n protected previousNativeValue: any;\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 // Browsers may not fire the blur event if the input is disabled too quickly.\n // Reset from here to ensure that the element doesn't become stuck.\n if (this.focused) {\n this.focused = false;\n this.stateChanges.next(null);\n }\n }\n\n private _disabled = false;\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 private _id: string;\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 private _required = false;\n\n // this.elementRef.nativeElement.type = this._type;\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._inputValueAccessor.value;\n }\n\n set value(value: string) {\n if (value === this.value) {\n return;\n }\n\n this._inputValueAccessor.value = value;\n this.stateChanges.next(null);\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 private _inputValueAccessor: { value: any };\n\n constructor() {\n const inputValueAccessor = inject(KBQ_INPUT_VALUE_ACCESSOR, { optional: true, self: true });\n\n // If no input value accessor was explicitly specified, use the element as the input value\n // accessor.\n this._inputValueAccessor = 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\n ngOnChanges() {\n this.stateChanges.next(null);\n }\n\n ngOnDestroy() {\n this.stateChanges.complete();\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(null);\n }\n }\n\n checkRules() {\n this.checkRule.next();\n }\n\n toggleType() {\n this.elementType = this.elementType === 'password' ? 'text' : 'password';\n }\n\n /** Focuses the input. */\n focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n onBlur(): void {\n this.focusChanged(false);\n }\n\n /** Callback for the cases where the focused state of the input changes. */\n focusChanged(isFocused: boolean) {\n if (isFocused === this.focused) {\n return;\n }\n\n this.focused = isFocused;\n this.stateChanges.next({ focused: this.focused });\n }\n\n onInput() {\n // This is a noop function and is used to let Angular know whenever the value changes.\n // Angular will run a new change detection each time the `input` event has been dispatched.\n // It's necessary that Angular recognizes the value change, because when floatingLabel\n // is set to false and Angular forms aren't used, the placeholder won't recognize the\n // value changes and will not disappear.\n // Listening to the input event wouldn't be necessary when the input is using the\n // FormsModule or ReactiveFormsModule, because Angular forms also listens to input events.\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 input `value` property. */\n protected dirtyCheckNativeValue() {\n if (this.previousNativeValue !== this.value) {\n this.previousNativeValue = this.value;\n this.stateChanges.next(null);\n }\n }\n\n /** Checks whether the input is invalid based on the native validation. */\n protected isBadInput() {\n // The `validity` property won't be present on platform-server.\n return (this.elementRef.nativeElement as HTMLInputElement).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 { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqInput, KbqInputMono } from './input';\nimport { KbqNumberInput } from './input-number';\nimport { MaxValidator, MinValidator } from './input-number-validators';\nimport { KbqInputPassword } from './input-password';\n\n@NgModule({\n imports: [\n A11yModule,\n FormsModule,\n KbqIconModule,\n KbqInput,\n KbqNumberInput,\n KbqInputPassword,\n KbqInputMono,\n MinValidator,\n MaxValidator\n ],\n exports: [\n KbqInput,\n KbqNumberInput,\n KbqInputPassword,\n KbqInputMono,\n MinValidator,\n MaxValidator,\n KbqFormFieldModule\n ]\n})\nexport class KbqInputModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["nextUniqueId"],"mappings":"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"}
@@ -1,7 +1,6 @@
1
- import * as i1 from '@angular/cdk/a11y';
2
- import { A11yModule } from '@angular/cdk/a11y';
1
+ import { FocusMonitor, A11yModule } from '@angular/cdk/a11y';
3
2
  import * as i0 from '@angular/core';
4
- import { inject, Renderer2, DestroyRef, signal, ElementRef, booleanAttribute, numberAttribute, ContentChild, Input, forwardRef, ContentChildren, Directive, NgModule } from '@angular/core';
3
+ import { inject, ElementRef, Renderer2, DestroyRef, signal, input, booleanAttribute, contentChild, numberAttribute, Input, forwardRef, ContentChildren, Directive, NgModule } from '@angular/core';
5
4
  import { toObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';
6
5
  import { kbqInjectNativeElement, leftIconClassName, rightIconClassName, getNodesWithoutComments } from '@koobiq/components/core';
7
6
  import { KbqIcon } from '@koobiq/components/icon';
@@ -10,12 +9,16 @@ const baseURLRegex = /^http(s)?:\/\//;
10
9
  class KbqLink {
11
10
  // @todo 20 In the next major release this feature will be replaced on the input signal.
12
11
  /** Whether the link is disabled. */
12
+ // TODO: Skipped for migration because:
13
+ // Accessor inputs cannot be migrated as they are too complex.
13
14
  get disabled() {
14
15
  return this._disabled;
15
16
  }
16
17
  set disabled(value) {
17
18
  this.disabledSignal.set(value);
18
19
  }
20
+ // TODO: Skipped for migration because:
21
+ // Accessor inputs cannot be migrated as they are too complex.
19
22
  get tabIndex() {
20
23
  return this.disabled ? -1 : this._tabIndex;
21
24
  }
@@ -23,29 +26,32 @@ class KbqLink {
23
26
  this._tabIndex = value;
24
27
  }
25
28
  get hasIcon() {
26
- return !!this.icon;
29
+ return !!this.icon();
27
30
  }
31
+ // TODO: Skipped for migration because:
32
+ // Accessor inputs cannot be migrated as they are too complex.
28
33
  set print(value) {
29
34
  this.printMode = value !== null;
30
35
  this._print = value;
31
36
  this.updatePrintUrl();
32
37
  }
33
- constructor(elementRef, focusMonitor) {
34
- this.elementRef = elementRef;
35
- this.focusMonitor = focusMonitor;
38
+ constructor() {
39
+ this.elementRef = inject(ElementRef);
40
+ this.focusMonitor = inject(FocusMonitor);
36
41
  this.renderer = inject(Renderer2);
37
42
  this.destroyRef = inject(DestroyRef);
38
43
  this.nativeElement = kbqInjectNativeElement();
39
44
  /** @docs-private */
40
- this.disabledSignal = signal(false);
45
+ this.disabledSignal = signal(false, ...(ngDevMode ? [{ debugName: "disabledSignal" }] : []));
41
46
  this._tabIndex = 0;
42
- this.pseudo = false;
43
- this.noUnderline = false;
44
- this.big = false;
45
- this.compact = false;
47
+ this.pseudo = input(false, ...(ngDevMode ? [{ debugName: "pseudo", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
48
+ this.noUnderline = input(false, ...(ngDevMode ? [{ debugName: "noUnderline", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
49
+ this.big = input(false, ...(ngDevMode ? [{ debugName: "big", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
50
+ this.compact = input(false, ...(ngDevMode ? [{ debugName: "compact", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
46
51
  /** Whether the link has an increased hit area for multiline usage. */
47
- this.multiline = false;
48
- this.useVisited = false;
52
+ this.multiline = input(false, ...(ngDevMode ? [{ debugName: "multiline", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
53
+ this.useVisited = input(false, ...(ngDevMode ? [{ debugName: "useVisited", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
54
+ this.icon = contentChild(KbqIcon, ...(ngDevMode ? [{ debugName: "icon" }] : []));
49
55
  this.updateClassModifierForIcons = () => {
50
56
  this.icons.forEach(({ nativeElement }) => {
51
57
  this.renderer.removeClass(nativeElement, leftIconClassName);
@@ -89,22 +95,21 @@ class KbqLink {
89
95
  this.printUrl = this._print || this.getHostElement().href?.replace(baseURLRegex, '');
90
96
  });
91
97
  }
92
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqLink, deps: [{ token: i0.ElementRef }, { token: i1.FocusMonitor }], target: i0.ɵɵFactoryTarget.Directive }); }
93
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.2.21", type: KbqLink, isStandalone: true, selector: "[kbq-link]", inputs: { disabled: ["disabled", "disabled", booleanAttribute], tabIndex: ["tabIndex", "tabIndex", numberAttribute], pseudo: ["pseudo", "pseudo", booleanAttribute], noUnderline: ["noUnderline", "noUnderline", booleanAttribute], big: ["big", "big", booleanAttribute], compact: ["compact", "compact", booleanAttribute], multiline: ["multiline", "multiline", booleanAttribute], useVisited: ["useVisited", "useVisited", booleanAttribute], print: "print" }, host: { properties: { "class.kbq-link_no-underline": "noUnderline", "class.kbq-link_use-visited": "useVisited", "class.kbq-link_big": "big", "class.kbq-link_compact": "compact", "class.kbq-link_pseudo": "pseudo", "class.kbq-link_multiline": "multiline", "class.kbq-link_print": "printMode", "class.kbq-text-only": "!hasIcon", "class.kbq-text-with-icon": "hasIcon", "class.kbq-disabled": "disabled", "attr.disabled": "disabled || null", "attr.tabindex": "tabIndex", "attr.print": "printUrl" }, classAttribute: "kbq-link" }, queries: [{ propertyName: "icon", first: true, predicate: KbqIcon, descendants: true }, { propertyName: "icons", predicate: i0.forwardRef(() => KbqIcon), read: ElementRef }], exportAs: ["kbqLink"], ngImport: i0 }); }
98
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqLink, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
99
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "20.3.25", type: KbqLink, isStandalone: true, selector: "[kbq-link]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: false, isRequired: false, transformFunction: numberAttribute }, pseudo: { classPropertyName: "pseudo", publicName: "pseudo", isSignal: true, isRequired: false, transformFunction: null }, noUnderline: { classPropertyName: "noUnderline", publicName: "noUnderline", isSignal: true, isRequired: false, transformFunction: null }, big: { classPropertyName: "big", publicName: "big", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, multiline: { classPropertyName: "multiline", publicName: "multiline", isSignal: true, isRequired: false, transformFunction: null }, useVisited: { classPropertyName: "useVisited", publicName: "useVisited", isSignal: true, isRequired: false, transformFunction: null }, print: { classPropertyName: "print", publicName: "print", isSignal: false, isRequired: false, transformFunction: null } }, host: { properties: { "class.kbq-link_no-underline": "noUnderline()", "class.kbq-link_use-visited": "useVisited()", "class.kbq-link_big": "big()", "class.kbq-link_compact": "compact()", "class.kbq-link_pseudo": "pseudo()", "class.kbq-link_multiline": "multiline()", "class.kbq-link_print": "printMode", "class.kbq-text-only": "!hasIcon", "class.kbq-text-with-icon": "hasIcon", "class.kbq-disabled": "disabled", "attr.disabled": "disabled || null", "attr.tabindex": "tabIndex", "attr.print": "printUrl" }, classAttribute: "kbq-link" }, queries: [{ propertyName: "icon", first: true, predicate: KbqIcon, descendants: true, isSignal: true }, { propertyName: "icons", predicate: i0.forwardRef(() => KbqIcon), read: ElementRef }], exportAs: ["kbqLink"], ngImport: i0 }); }
94
100
  }
95
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqLink, decorators: [{
101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqLink, decorators: [{
96
102
  type: Directive,
97
103
  args: [{
98
104
  selector: '[kbq-link]',
99
- exportAs: 'kbqLink',
100
105
  host: {
101
106
  class: 'kbq-link',
102
- '[class.kbq-link_no-underline]': 'noUnderline',
103
- '[class.kbq-link_use-visited]': 'useVisited',
104
- '[class.kbq-link_big]': 'big',
105
- '[class.kbq-link_compact]': 'compact',
106
- '[class.kbq-link_pseudo]': 'pseudo',
107
- '[class.kbq-link_multiline]': 'multiline',
107
+ '[class.kbq-link_no-underline]': 'noUnderline()',
108
+ '[class.kbq-link_use-visited]': 'useVisited()',
109
+ '[class.kbq-link_big]': 'big()',
110
+ '[class.kbq-link_compact]': 'compact()',
111
+ '[class.kbq-link_pseudo]': 'pseudo()',
112
+ '[class.kbq-link_multiline]': 'multiline()',
108
113
  '[class.kbq-link_print]': 'printMode',
109
114
  '[class.kbq-text-only]': '!hasIcon',
110
115
  '[class.kbq-text-with-icon]': 'hasIcon',
@@ -112,9 +117,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
112
117
  '[attr.disabled]': 'disabled || null',
113
118
  '[attr.tabindex]': 'tabIndex',
114
119
  '[attr.print]': 'printUrl'
115
- }
120
+ },
121
+ exportAs: 'kbqLink'
116
122
  }]
117
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.FocusMonitor }], propDecorators: { icons: [{
123
+ }], ctorParameters: () => [], propDecorators: { icons: [{
118
124
  type: ContentChildren,
119
125
  args: [forwardRef(() => KbqIcon), { read: ElementRef }]
120
126
  }], disabled: [{
@@ -123,38 +129,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImpo
123
129
  }], tabIndex: [{
124
130
  type: Input,
125
131
  args: [{ transform: numberAttribute }]
126
- }], pseudo: [{
127
- type: Input,
128
- args: [{ transform: booleanAttribute }]
129
- }], noUnderline: [{
130
- type: Input,
131
- args: [{ transform: booleanAttribute }]
132
- }], big: [{
133
- type: Input,
134
- args: [{ transform: booleanAttribute }]
135
- }], compact: [{
136
- type: Input,
137
- args: [{ transform: booleanAttribute }]
138
- }], multiline: [{
139
- type: Input,
140
- args: [{ transform: booleanAttribute }]
141
- }], useVisited: [{
142
- type: Input,
143
- args: [{ transform: booleanAttribute }]
144
- }], print: [{
132
+ }], pseudo: [{ type: i0.Input, args: [{ isSignal: true, alias: "pseudo", required: false }] }], noUnderline: [{ type: i0.Input, args: [{ isSignal: true, alias: "noUnderline", required: false }] }], big: [{ type: i0.Input, args: [{ isSignal: true, alias: "big", required: false }] }], compact: [{ type: i0.Input, args: [{ isSignal: true, alias: "compact", required: false }] }], multiline: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiline", required: false }] }], useVisited: [{ type: i0.Input, args: [{ isSignal: true, alias: "useVisited", required: false }] }], print: [{
145
133
  type: Input
146
- }], icon: [{
147
- type: ContentChild,
148
- args: [KbqIcon]
149
- }] } });
134
+ }], icon: [{ type: i0.ContentChild, args: [i0.forwardRef(() => KbqIcon), { isSignal: true }] }] } });
150
135
 
151
136
  class KbqLinkModule {
152
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqLinkModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
153
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: KbqLinkModule, imports: [A11yModule,
137
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqLinkModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
138
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: KbqLinkModule, imports: [A11yModule,
154
139
  KbqLink], exports: [KbqLink] }); }
155
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqLinkModule, imports: [A11yModule] }); }
140
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqLinkModule, imports: [A11yModule] }); }
156
141
  }
157
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqLinkModule, decorators: [{
142
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqLinkModule, decorators: [{
158
143
  type: NgModule,
159
144
  args: [{
160
145
  imports: [
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-link.mjs","sources":["../../../packages/components/link/link.component.ts","../../../packages/components/link/link.module.ts","../../../packages/components/link/koobiq-components-link.ts"],"sourcesContent":["import { FocusMonitor } from '@angular/cdk/a11y';\nimport {\n AfterContentInit,\n AfterViewInit,\n booleanAttribute,\n ContentChild,\n ContentChildren,\n DestroyRef,\n Directive,\n ElementRef,\n forwardRef,\n inject,\n Input,\n numberAttribute,\n OnDestroy,\n QueryList,\n Renderer2,\n signal\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport {\n getNodesWithoutComments,\n kbqInjectNativeElement,\n leftIconClassName,\n rightIconClassName\n} from '@koobiq/components/core';\nimport { KbqIcon } from '@koobiq/components/icon';\n\nexport const baseURLRegex = /^http(s)?:\\/\\//;\n\n@Directive({\n selector: '[kbq-link]',\n exportAs: 'kbqLink',\n host: {\n class: 'kbq-link',\n '[class.kbq-link_no-underline]': 'noUnderline',\n '[class.kbq-link_use-visited]': 'useVisited',\n '[class.kbq-link_big]': 'big',\n '[class.kbq-link_compact]': 'compact',\n '[class.kbq-link_pseudo]': 'pseudo',\n '[class.kbq-link_multiline]': 'multiline',\n '[class.kbq-link_print]': 'printMode',\n '[class.kbq-text-only]': '!hasIcon',\n '[class.kbq-text-with-icon]': 'hasIcon',\n '[class.kbq-disabled]': 'disabled',\n '[attr.disabled]': 'disabled || null',\n '[attr.tabindex]': 'tabIndex',\n '[attr.print]': 'printUrl'\n }\n})\nexport class KbqLink implements AfterContentInit, AfterViewInit, OnDestroy {\n protected readonly renderer = inject(Renderer2);\n protected readonly destroyRef = inject(DestroyRef);\n protected readonly nativeElement = kbqInjectNativeElement();\n\n @ContentChildren(forwardRef(() => KbqIcon), { read: ElementRef }) icons: QueryList<ElementRef>;\n\n // @todo 20 In the next major release this feature will be replaced on the input signal.\n /** Whether the link is disabled. */\n @Input({ transform: booleanAttribute })\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n this.disabledSignal.set(value);\n }\n\n /** @docs-private */\n readonly disabledSignal = signal(false);\n\n @Input({ transform: numberAttribute })\n get tabIndex(): number {\n return this.disabled ? -1 : this._tabIndex;\n }\n\n set tabIndex(value: number) {\n this._tabIndex = value;\n }\n\n private _tabIndex = 0;\n\n @Input({ transform: booleanAttribute }) pseudo: boolean = false;\n\n @Input({ transform: booleanAttribute }) noUnderline: boolean = false;\n\n @Input({ transform: booleanAttribute }) big: boolean = false;\n\n @Input({ transform: booleanAttribute }) compact: boolean = false;\n\n /** Whether the link has an increased hit area for multiline usage. */\n @Input({ transform: booleanAttribute }) multiline: boolean = false;\n\n @Input({ transform: booleanAttribute }) useVisited: boolean = false;\n\n get hasIcon(): boolean {\n return !!this.icon;\n }\n\n @Input()\n set print(value: any) {\n this.printMode = value !== null;\n\n this._print = value;\n\n this.updatePrintUrl();\n }\n\n private _print: string;\n\n printMode: boolean;\n\n printUrl: string;\n\n // @todo 20 In the next major release this line will be deleted.\n private _disabled: boolean;\n\n @ContentChild(KbqIcon) icon: KbqIcon;\n\n constructor(\n private elementRef: ElementRef<HTMLAnchorElement>,\n private focusMonitor: FocusMonitor\n ) {\n this.updatePrintUrl();\n\n // @todo 20 In the next major release this line will be deleted.\n toObservable(this.disabledSignal).subscribe((value) => (this._disabled = value));\n }\n\n ngAfterViewInit(): void {\n this.focusMonitor.monitor(this.elementRef.nativeElement, true);\n }\n\n ngOnDestroy() {\n this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);\n }\n\n focus(): void {\n this.getHostElement().focus();\n }\n\n getHostElement() {\n return this.elementRef.nativeElement;\n }\n\n ngAfterContentInit() {\n this.updateClassModifierForIcons();\n\n this.icons.changes.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(this.updateClassModifierForIcons);\n }\n\n private updateClassModifierForIcons = () => {\n this.icons.forEach(({ nativeElement }) => {\n this.renderer.removeClass(nativeElement, leftIconClassName);\n this.renderer.removeClass(nativeElement, rightIconClassName);\n });\n\n const filteredNodesWithoutComments = getNodesWithoutComments(this.nativeElement.childNodes as NodeList);\n\n if (this.icons.length && filteredNodesWithoutComments.length > 1) {\n this.icons.forEach(({ nativeElement }) => {\n const iconIndex = filteredNodesWithoutComments.findIndex((node) => node === nativeElement);\n\n if (iconIndex === 0) {\n this.renderer.addClass(nativeElement, leftIconClassName);\n }\n\n if (iconIndex === filteredNodesWithoutComments.length - 1) {\n this.renderer.addClass(nativeElement, rightIconClassName);\n }\n });\n }\n };\n\n private updatePrintUrl() {\n Promise.resolve().then(() => {\n this.printUrl = this._print || this.getHostElement().href?.replace(baseURLRegex, '');\n });\n }\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { NgModule } from '@angular/core';\nimport { KbqLink } from './link.component';\n\n@NgModule({\n imports: [\n A11yModule,\n KbqLink\n ],\n exports: [KbqLink]\n})\nexport class KbqLinkModule {}\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-link.mjs","sources":["../../../packages/components/link/link.component.ts","../../../packages/components/link/link.module.ts","../../../packages/components/link/koobiq-components-link.ts"],"sourcesContent":["import { FocusMonitor } from '@angular/cdk/a11y';\nimport {\n AfterContentInit,\n AfterViewInit,\n booleanAttribute,\n contentChild,\n ContentChildren,\n DestroyRef,\n Directive,\n ElementRef,\n forwardRef,\n inject,\n Input,\n input,\n numberAttribute,\n OnDestroy,\n QueryList,\n Renderer2,\n signal\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport {\n getNodesWithoutComments,\n kbqInjectNativeElement,\n leftIconClassName,\n rightIconClassName\n} from '@koobiq/components/core';\nimport { KbqIcon } from '@koobiq/components/icon';\n\nexport const baseURLRegex = /^http(s)?:\\/\\//;\n\n@Directive({\n selector: '[kbq-link]',\n host: {\n class: 'kbq-link',\n '[class.kbq-link_no-underline]': 'noUnderline()',\n '[class.kbq-link_use-visited]': 'useVisited()',\n '[class.kbq-link_big]': 'big()',\n '[class.kbq-link_compact]': 'compact()',\n '[class.kbq-link_pseudo]': 'pseudo()',\n '[class.kbq-link_multiline]': 'multiline()',\n '[class.kbq-link_print]': 'printMode',\n '[class.kbq-text-only]': '!hasIcon',\n '[class.kbq-text-with-icon]': 'hasIcon',\n '[class.kbq-disabled]': 'disabled',\n '[attr.disabled]': 'disabled || null',\n '[attr.tabindex]': 'tabIndex',\n '[attr.print]': 'printUrl'\n },\n exportAs: 'kbqLink'\n})\nexport class KbqLink implements AfterContentInit, AfterViewInit, OnDestroy {\n private elementRef = inject<ElementRef<HTMLAnchorElement>>(ElementRef);\n private focusMonitor = inject(FocusMonitor);\n\n protected readonly renderer = inject(Renderer2);\n protected readonly destroyRef = inject(DestroyRef);\n protected readonly nativeElement = kbqInjectNativeElement();\n\n @ContentChildren(forwardRef(() => KbqIcon), { read: ElementRef }) icons: QueryList<ElementRef>;\n\n // @todo 20 In the next major release this feature will be replaced on the input signal.\n /** Whether the link is disabled. */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input({ transform: booleanAttribute })\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n this.disabledSignal.set(value);\n }\n\n /** @docs-private */\n readonly disabledSignal = signal(false);\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input({ transform: numberAttribute })\n get tabIndex(): number {\n return this.disabled ? -1 : this._tabIndex;\n }\n\n set tabIndex(value: number) {\n this._tabIndex = value;\n }\n\n private _tabIndex = 0;\n\n readonly pseudo = input<boolean, unknown>(false, { transform: booleanAttribute });\n\n readonly noUnderline = input<boolean, unknown>(false, { transform: booleanAttribute });\n\n readonly big = input<boolean, unknown>(false, { transform: booleanAttribute });\n\n readonly compact = input<boolean, unknown>(false, { transform: booleanAttribute });\n\n /** Whether the link has an increased hit area for multiline usage. */\n readonly multiline = input<boolean, unknown>(false, { transform: booleanAttribute });\n\n readonly useVisited = input<boolean, unknown>(false, { transform: booleanAttribute });\n\n get hasIcon(): boolean {\n return !!this.icon();\n }\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n set print(value: any) {\n this.printMode = value !== null;\n\n this._print = value;\n\n this.updatePrintUrl();\n }\n\n private _print: string;\n\n printMode: boolean;\n\n printUrl: string;\n\n // @todo 20 In the next major release this line will be deleted.\n private _disabled: boolean;\n\n readonly icon = contentChild(KbqIcon);\n\n constructor() {\n this.updatePrintUrl();\n\n // @todo 20 In the next major release this line will be deleted.\n toObservable(this.disabledSignal).subscribe((value) => (this._disabled = value));\n }\n\n ngAfterViewInit(): void {\n this.focusMonitor.monitor(this.elementRef.nativeElement, true);\n }\n\n ngOnDestroy() {\n this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);\n }\n\n focus(): void {\n this.getHostElement().focus();\n }\n\n getHostElement() {\n return this.elementRef.nativeElement;\n }\n\n ngAfterContentInit() {\n this.updateClassModifierForIcons();\n\n this.icons.changes.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(this.updateClassModifierForIcons);\n }\n\n private updateClassModifierForIcons = () => {\n this.icons.forEach(({ nativeElement }) => {\n this.renderer.removeClass(nativeElement, leftIconClassName);\n this.renderer.removeClass(nativeElement, rightIconClassName);\n });\n\n const filteredNodesWithoutComments = getNodesWithoutComments(this.nativeElement.childNodes as NodeList);\n\n if (this.icons.length && filteredNodesWithoutComments.length > 1) {\n this.icons.forEach(({ nativeElement }) => {\n const iconIndex = filteredNodesWithoutComments.findIndex((node) => node === nativeElement);\n\n if (iconIndex === 0) {\n this.renderer.addClass(nativeElement, leftIconClassName);\n }\n\n if (iconIndex === filteredNodesWithoutComments.length - 1) {\n this.renderer.addClass(nativeElement, rightIconClassName);\n }\n });\n }\n };\n\n private updatePrintUrl() {\n Promise.resolve().then(() => {\n this.printUrl = this._print || this.getHostElement().href?.replace(baseURLRegex, '');\n });\n }\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { NgModule } from '@angular/core';\nimport { KbqLink } from './link.component';\n\n@NgModule({\n imports: [\n A11yModule,\n KbqLink\n ],\n exports: [KbqLink]\n})\nexport class KbqLinkModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}