@koobiq/components 18.33.0 → 18.35.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 (309) hide show
  1. package/actions-panel/actions-panel-config.d.ts +4 -3
  2. package/actions-panel/actions-panel-container.scss +0 -6
  3. package/actions-panel/actions-panel-ref.d.ts +13 -0
  4. package/actions-panel/actions-panel.d.ts +1 -7
  5. package/button/_button-theme.scss +1 -0
  6. package/clamped-text/clamped-text.d.ts +61 -0
  7. package/clamped-text/clamped-text.scss +17 -0
  8. package/clamped-text/constants.d.ts +14 -0
  9. package/clamped-text/index.d.ts +3 -0
  10. package/clamped-text/module.d.ts +7 -0
  11. package/content-panel/content-panel-aside.scss +9 -0
  12. package/content-panel/content-panel-body.scss +9 -0
  13. package/content-panel/content-panel-container.scss +32 -0
  14. package/content-panel/content-panel-footer.scss +5 -0
  15. package/content-panel/content-panel-header.scss +30 -0
  16. package/content-panel/content-panel-tokens.scss +9 -0
  17. package/content-panel/content-panel.d.ts +149 -0
  18. package/content-panel/content-panel.scss +25 -0
  19. package/content-panel/index.d.ts +3 -0
  20. package/content-panel/module.d.ts +7 -0
  21. package/content-panel/resizable.d.ts +70 -0
  22. package/core/form-field/field-sizing-content.d.ts +21 -0
  23. package/core/form-field/index.d.ts +1 -0
  24. package/core/locales/en-US.d.ts +10 -0
  25. package/core/locales/es-LA.d.ts +10 -0
  26. package/core/locales/fa-IR.d.ts +10 -0
  27. package/core/locales/locale-service.d.ts +70 -0
  28. package/core/locales/pt-BR.d.ts +10 -0
  29. package/core/locales/ru-RU.d.ts +10 -0
  30. package/core/locales/tk-TM.d.ts +10 -0
  31. package/core/locales/types.d.ts +5 -0
  32. package/core/locales/zh-CN.d.ts +10 -0
  33. package/core/navbar/index.d.ts +1 -0
  34. package/core/navbar/rectangle-item.d.ts +14 -0
  35. package/core/option/option.d.ts +3 -1
  36. package/core/pop-up/pop-up-trigger.d.ts +2 -0
  37. package/core/public-api.d.ts +1 -0
  38. package/core/styles/common/_select.scss +6 -3
  39. package/core/utils/dom.d.ts +9 -0
  40. package/core/utils/index.d.ts +1 -0
  41. package/core/utils/utils.d.ts +4 -0
  42. package/datepicker/calendar.component.d.ts +1 -1
  43. package/datepicker/datepicker-input.directive.d.ts +19 -8
  44. package/datepicker/datepicker-toggle.component.d.ts +1 -1
  45. package/datepicker/datepicker.component.d.ts +2 -2
  46. package/dropdown/dropdown-item.scss +1 -0
  47. package/dropdown/dropdown-trigger.directive.d.ts +7 -1
  48. package/dynamic-translation/dynamic-translation.d.ts +72 -0
  49. package/dynamic-translation/index.d.ts +2 -0
  50. package/dynamic-translation/module.d.ts +7 -0
  51. package/esm2022/actions-panel/actions-panel-config.mjs +1 -1
  52. package/esm2022/actions-panel/actions-panel-container.mjs +7 -7
  53. package/esm2022/actions-panel/actions-panel-ref.mjs +17 -1
  54. package/esm2022/actions-panel/actions-panel.mjs +34 -24
  55. package/esm2022/breadcrumbs/breadcrumbs.mjs +2 -2
  56. package/esm2022/button/button.component.mjs +2 -2
  57. package/esm2022/button-toggle/button-toggle.component.mjs +9 -9
  58. package/esm2022/clamped-text/clamped-text.mjs +202 -0
  59. package/esm2022/clamped-text/constants.mjs +20 -0
  60. package/esm2022/clamped-text/index.mjs +4 -0
  61. package/esm2022/clamped-text/koobiq-components-clamped-text.mjs +5 -0
  62. package/esm2022/clamped-text/module.mjs +19 -0
  63. package/esm2022/content-panel/content-panel.mjs +432 -0
  64. package/esm2022/content-panel/index.mjs +4 -0
  65. package/esm2022/content-panel/koobiq-components-content-panel.mjs +5 -0
  66. package/esm2022/content-panel/module.mjs +42 -0
  67. package/esm2022/content-panel/resizable.mjs +138 -0
  68. package/esm2022/core/form-field/field-sizing-content.mjs +114 -0
  69. package/esm2022/core/form-field/index.mjs +2 -1
  70. package/esm2022/core/locales/en-US.mjs +11 -1
  71. package/esm2022/core/locales/es-LA.mjs +11 -1
  72. package/esm2022/core/locales/fa-IR.mjs +11 -1
  73. package/esm2022/core/locales/pt-BR.mjs +11 -1
  74. package/esm2022/core/locales/ru-RU.mjs +11 -1
  75. package/esm2022/core/locales/tk-TM.mjs +11 -1
  76. package/esm2022/core/locales/types.mjs +1 -1
  77. package/esm2022/core/locales/zh-CN.mjs +11 -1
  78. package/esm2022/core/navbar/index.mjs +2 -0
  79. package/esm2022/core/navbar/rectangle-item.mjs +39 -0
  80. package/esm2022/core/option/option.mjs +8 -4
  81. package/esm2022/core/pop-up/pop-up-trigger.mjs +5 -1
  82. package/esm2022/core/public-api.mjs +2 -1
  83. package/esm2022/core/utils/dom.mjs +14 -0
  84. package/esm2022/core/utils/index.mjs +2 -1
  85. package/esm2022/core/utils/utils.mjs +9 -1
  86. package/esm2022/core/version.mjs +2 -2
  87. package/esm2022/datepicker/calendar-header.component.mjs +6 -3
  88. package/esm2022/datepicker/calendar.component.mjs +9 -9
  89. package/esm2022/datepicker/datepicker-input.directive.mjs +24 -21
  90. package/esm2022/datepicker/datepicker-toggle.component.mjs +8 -8
  91. package/esm2022/datepicker/datepicker.component.mjs +3 -3
  92. package/esm2022/dropdown/dropdown-item.component.mjs +2 -2
  93. package/esm2022/dropdown/dropdown-trigger.directive.mjs +30 -10
  94. package/esm2022/dropdown/dropdown.component.mjs +3 -3
  95. package/esm2022/dynamic-translation/dynamic-translation.mjs +175 -0
  96. package/esm2022/dynamic-translation/index.mjs +3 -0
  97. package/esm2022/dynamic-translation/koobiq-components-dynamic-translation.mjs +5 -0
  98. package/esm2022/dynamic-translation/module.mjs +25 -0
  99. package/esm2022/file-upload/file-drop.mjs +1 -1
  100. package/esm2022/file-upload/file-upload.mjs +6 -1
  101. package/esm2022/file-upload/multiple-file-upload.component.mjs +21 -16
  102. package/esm2022/file-upload/single-file-upload.component.mjs +23 -16
  103. package/esm2022/filter-bar/filter-bar.mjs +3 -3
  104. package/esm2022/filter-bar/filter-refresher.mjs +5 -5
  105. package/esm2022/filter-bar/filter-reset.mjs +3 -3
  106. package/esm2022/filter-bar/filter-search.mjs +11 -11
  107. package/esm2022/filter-bar/filters.mjs +16 -4
  108. package/esm2022/filter-bar/pipe-add.mjs +6 -6
  109. package/esm2022/filter-bar/pipes/base-pipe.mjs +2 -2
  110. package/esm2022/filter-bar/pipes/pipe-button.mjs +7 -7
  111. package/esm2022/filter-bar/pipes/pipe-date.mjs +10 -2
  112. package/esm2022/filter-bar/pipes/pipe-datetime.mjs +10 -2
  113. package/esm2022/filter-bar/pipes/pipe-multi-select.mjs +11 -17
  114. package/esm2022/filter-bar/pipes/pipe-multi-tree-select.mjs +10 -9
  115. package/esm2022/filter-bar/pipes/pipe-readonly.mjs +7 -7
  116. package/esm2022/filter-bar/pipes/pipe-select.mjs +3 -4
  117. package/esm2022/filter-bar/pipes/pipe-text.mjs +9 -3
  118. package/esm2022/filter-bar/pipes/pipe-tree-select.mjs +9 -3
  119. package/esm2022/form-field/cleaner.mjs +16 -11
  120. package/esm2022/form-field/fieldset.mjs +2 -2
  121. package/esm2022/form-field/form-field.mjs +5 -5
  122. package/esm2022/form-field/password-hint.mjs +14 -3
  123. package/esm2022/form-field/password-toggle.mjs +45 -10
  124. package/esm2022/form-field/reactive-password-hint.mjs +18 -17
  125. package/esm2022/form-field/stepper.mjs +9 -9
  126. package/esm2022/icon/icon-button.component.mjs +2 -2
  127. package/esm2022/input/input-number.mjs +15 -10
  128. package/esm2022/markdown/markdown.component.mjs +3 -3
  129. package/esm2022/modal/modal.component.mjs +14 -14
  130. package/esm2022/modal/modal.directive.mjs +7 -5
  131. package/esm2022/navbar/navbar-item.component.mjs +3 -3
  132. package/esm2022/navbar-ic/index.mjs +2 -0
  133. package/esm2022/navbar-ic/koobiq-components-navbar-ic.mjs +5 -0
  134. package/esm2022/navbar-ic/navbar-ic-header.mjs +58 -0
  135. package/esm2022/navbar-ic/navbar-ic-item.mjs +399 -0
  136. package/esm2022/navbar-ic/navbar-ic.animation.mjs +9 -0
  137. package/esm2022/navbar-ic/navbar-ic.mjs +281 -0
  138. package/esm2022/navbar-ic/navbar-ic.module.mjs +74 -0
  139. package/esm2022/navbar-ic/public-api.mjs +5 -0
  140. package/esm2022/popover/popover-confirm.component.mjs +3 -3
  141. package/esm2022/popover/popover.component.mjs +10 -5
  142. package/esm2022/scrollbar/scrollbar.component.mjs +5 -5
  143. package/esm2022/select/select.component.mjs +24 -11
  144. package/esm2022/sidebar/sidebar.component.mjs +46 -27
  145. package/esm2022/sidepanel/sidepanel-container.component.mjs +15 -4
  146. package/esm2022/sidepanel/sidepanel-directives.mjs +5 -5
  147. package/esm2022/sidepanel/sidepanel-ref.mjs +8 -6
  148. package/esm2022/splitter/splitter.component.mjs +1 -1
  149. package/esm2022/tabs/tab-body.component.mjs +3 -3
  150. package/esm2022/tabs/tab-group.component.mjs +27 -27
  151. package/esm2022/tabs/tab.component.mjs +4 -4
  152. package/esm2022/tags/tag-input.mjs +2 -2
  153. package/esm2022/tags/tag-list.component.mjs +36 -17
  154. package/esm2022/tags/tag.component.mjs +231 -22
  155. package/esm2022/tags/tag.module.mjs +16 -6
  156. package/esm2022/textarea/textarea.component.mjs +6 -4
  157. package/esm2022/timepicker/timepicker.directive.mjs +1 -1
  158. package/esm2022/timezone/timezone-select.component.mjs +3 -3
  159. package/esm2022/tooltip/tooltip.component.mjs +3 -3
  160. package/esm2022/tree/tree-selection.component.mjs +4 -4
  161. package/esm2022/tree-select/tree-select.component.mjs +11 -9
  162. package/esm2022/username/constants.mjs +25 -0
  163. package/esm2022/username/index.mjs +6 -0
  164. package/esm2022/username/koobiq-components-username.mjs +5 -0
  165. package/esm2022/username/module.mjs +35 -0
  166. package/esm2022/username/types.mjs +32 -0
  167. package/esm2022/username/username.mjs +129 -0
  168. package/esm2022/username/username.pipe.mjs +92 -0
  169. package/fesm2022/koobiq-components-actions-panel.mjs +56 -31
  170. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  171. package/fesm2022/koobiq-components-breadcrumbs.mjs +1 -1
  172. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  173. package/fesm2022/koobiq-components-button-toggle.mjs +8 -8
  174. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  175. package/fesm2022/koobiq-components-button.mjs +2 -2
  176. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  177. package/fesm2022/koobiq-components-clamped-text.mjs +242 -0
  178. package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -0
  179. package/fesm2022/koobiq-components-content-panel.mjs +612 -0
  180. package/fesm2022/koobiq-components-content-panel.mjs.map +1 -0
  181. package/fesm2022/koobiq-components-core.mjs +271 -31
  182. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  183. package/fesm2022/koobiq-components-datepicker.mjs +45 -40
  184. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  185. package/fesm2022/koobiq-components-dropdown.mjs +33 -13
  186. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  187. package/fesm2022/koobiq-components-dynamic-translation.mjs +204 -0
  188. package/fesm2022/koobiq-components-dynamic-translation.mjs.map +1 -0
  189. package/fesm2022/koobiq-components-file-upload.mjs +44 -27
  190. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  191. package/fesm2022/koobiq-components-filter-bar.mjs +100 -71
  192. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  193. package/fesm2022/koobiq-components-form-field.mjs +100 -49
  194. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  195. package/fesm2022/koobiq-components-icon.mjs +2 -2
  196. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  197. package/fesm2022/koobiq-components-input.mjs +14 -9
  198. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  199. package/fesm2022/koobiq-components-markdown.mjs +2 -2
  200. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  201. package/fesm2022/koobiq-components-modal.mjs +19 -17
  202. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  203. package/fesm2022/koobiq-components-navbar-ic.mjs +800 -0
  204. package/fesm2022/koobiq-components-navbar-ic.mjs.map +1 -0
  205. package/fesm2022/koobiq-components-navbar.mjs +2 -2
  206. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  207. package/fesm2022/koobiq-components-popover.mjs +11 -6
  208. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  209. package/fesm2022/koobiq-components-scrollbar.mjs +4 -4
  210. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  211. package/fesm2022/koobiq-components-select.mjs +23 -10
  212. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  213. package/fesm2022/koobiq-components-sidebar.mjs +45 -26
  214. package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
  215. package/fesm2022/koobiq-components-sidepanel.mjs +24 -12
  216. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  217. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  218. package/fesm2022/koobiq-components-tabs.mjs +31 -31
  219. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  220. package/fesm2022/koobiq-components-tags.mjs +284 -47
  221. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  222. package/fesm2022/koobiq-components-textarea.mjs +5 -3
  223. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  224. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  225. package/fesm2022/koobiq-components-timezone.mjs +2 -2
  226. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  227. package/fesm2022/koobiq-components-tooltip.mjs +2 -2
  228. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  229. package/fesm2022/koobiq-components-tree-select.mjs +10 -8
  230. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  231. package/fesm2022/koobiq-components-tree.mjs +3 -3
  232. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  233. package/fesm2022/koobiq-components-username.mjs +308 -0
  234. package/fesm2022/koobiq-components-username.mjs.map +1 -0
  235. package/file-upload/_file-upload-theme.scss +1 -1
  236. package/file-upload/file-drop.d.ts +1 -1
  237. package/file-upload/file-upload.d.ts +5 -2
  238. package/file-upload/multiple-file-upload.component.d.ts +4 -2
  239. package/file-upload/single-file-upload.component.d.ts +5 -3
  240. package/filter-bar/_filter-bar-theme.scss +2 -2
  241. package/filter-bar/filters.d.ts +1 -0
  242. package/filter-bar/pipes/pipe-date.d.ts +3 -1
  243. package/filter-bar/pipes/pipe-datetime.d.ts +3 -1
  244. package/filter-bar/pipes/pipe-multi-select.d.ts +0 -1
  245. package/filter-bar/pipes/pipe-multi-tree-select.d.ts +3 -2
  246. package/filter-bar/pipes/pipe-select.d.ts +0 -1
  247. package/filter-bar/pipes/pipe-tree-select.d.ts +3 -2
  248. package/form-field/_form-field-theme.scss +27 -18
  249. package/form-field/cleaner.d.ts +4 -2
  250. package/form-field/cleaner.scss +6 -2
  251. package/form-field/form-field.scss +12 -2
  252. package/form-field/password-hint.d.ts +7 -0
  253. package/form-field/password-toggle.d.ts +23 -3
  254. package/form-field/password-toggle.scss +4 -8
  255. package/form-field/reactive-password-hint.d.ts +1 -0
  256. package/icon/_icon-button-theme.scss +8 -2
  257. package/modal/modal.component.d.ts +6 -6
  258. package/navbar-ic/_navbar-ic-theme.scss +81 -0
  259. package/navbar-ic/index.d.ts +1 -0
  260. package/navbar-ic/navbar-ic-divider.scss +7 -0
  261. package/navbar-ic/navbar-ic-header.d.ts +18 -0
  262. package/navbar-ic/navbar-ic-header.scss +53 -0
  263. package/navbar-ic/navbar-ic-item.d.ts +125 -0
  264. package/navbar-ic/navbar-ic-item.scss +96 -0
  265. package/navbar-ic/navbar-ic-tokens.scss +22 -0
  266. package/navbar-ic/navbar-ic.animation.d.ts +2 -0
  267. package/navbar-ic/navbar-ic.d.ts +103 -0
  268. package/navbar-ic/navbar-ic.module.d.ts +14 -0
  269. package/navbar-ic/navbar-ic.scss +32 -0
  270. package/navbar-ic/public-api.d.ts +4 -0
  271. package/package.json +34 -4
  272. package/popover/_popover-theme.scss +6 -2
  273. package/popover/popover-confirm.component.d.ts +1 -1
  274. package/popover/popover-tokens.scss +2 -0
  275. package/popover/popover.component.d.ts +6 -3
  276. package/prebuilt-themes/dark-theme.css +1 -1
  277. package/prebuilt-themes/light-theme.css +1 -1
  278. package/prebuilt-themes/theme.css +1 -1
  279. package/schematics/ng-add/index.js +4 -4
  280. package/scrollbar/scrollbar.component.d.ts +4 -4
  281. package/select/select.component.d.ts +14 -2
  282. package/sidebar/sidebar.component.d.ts +31 -5
  283. package/sidepanel/sidepanel-container.component.d.ts +9 -0
  284. package/sidepanel/sidepanel-ref.d.ts +3 -3
  285. package/splitter/splitter.component.d.ts +2 -2
  286. package/tabs/tab-group.component.d.ts +1 -1
  287. package/tabs/tab.component.d.ts +1 -1
  288. package/tags/_tag-theme.scss +10 -1
  289. package/tags/tag-input.d.ts +1 -1
  290. package/tags/tag-list.component.d.ts +11 -3
  291. package/tags/tag-list.scss +5 -0
  292. package/tags/tag.component.d.ts +78 -8
  293. package/tags/tag.module.d.ts +1 -1
  294. package/tags/tag.scss +18 -0
  295. package/textarea/textarea-tokens.scss +1 -1
  296. package/timepicker/timepicker.directive.d.ts +1 -1
  297. package/tooltip/_tooltip-theme.scss +9 -2
  298. package/tooltip/tooltip-tokens.scss +2 -0
  299. package/tooltip/tooltip.component.d.ts +2 -2
  300. package/tree/tree-selection.component.d.ts +1 -1
  301. package/tree-select/tree-select.component.d.ts +1 -1
  302. package/username/constants.d.ts +15 -0
  303. package/username/index.d.ts +5 -0
  304. package/username/module.d.ts +8 -0
  305. package/username/types.d.ts +62 -0
  306. package/username/username-tokens.scss +6 -0
  307. package/username/username.d.ts +68 -0
  308. package/username/username.pipe.d.ts +23 -0
  309. package/username/username.scss +107 -0
@@ -0,0 +1,202 @@
1
+ import { SharedResizeObserver } from '@angular/cdk/observers/private';
2
+ import { ChangeDetectionStrategy, Component, DestroyRef, ElementRef, inject, input, numberAttribute, output, signal, viewChild, ViewEncapsulation } from '@angular/core';
3
+ import { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';
4
+ import { KbqButtonModule } from '@koobiq/components/button';
5
+ import { KBQ_LOCALE_SERVICE } from '@koobiq/components/core';
6
+ import { KbqIcon } from '@koobiq/components/icon';
7
+ import { KbqLinkModule } from '@koobiq/components/link';
8
+ import { debounceTime, map, of, pairwise, skip } from 'rxjs';
9
+ import { KBQ_CLAMPED_TEXT_LOCALE_CONFIGURATION, kbqClampedTextDefaultMaxRows } from './constants';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@koobiq/components/link";
12
+ export class KbqClampedText {
13
+ constructor() {
14
+ /**
15
+ * Max rows before text is clamped.
16
+ * @default kbqClampedTextDefaultMaxRows
17
+ */
18
+ this.rows = input(kbqClampedTextDefaultMaxRows);
19
+ /** Collapsed state: `true` = collapsed, `false` = expanded, `undefined` = auto. */
20
+ this.isCollapsed = input();
21
+ /**
22
+ * Debounce time on resize observer when recalculating toggle and text visibility.
23
+ * @default 0
24
+ */
25
+ this.debounceTime = input(0, { transform: numberAttribute });
26
+ /** Emits when collapsed state changes. Used for two-way binding with `isCollapsed`. */
27
+ this.isCollapsedChange = output();
28
+ /** @docs-private */
29
+ this.text = viewChild.required('text');
30
+ /** @docs-private */
31
+ this.textContainer = viewChild.required('textContainer');
32
+ /**
33
+ * This flag controls event emission, aria/css-class calculation
34
+ * @docs-private
35
+ */
36
+ this.collapsedState = signal(undefined);
37
+ /** @docs-private */
38
+ this.isToggleCollapsed = signal(undefined);
39
+ /** @docs-private */
40
+ this.hasToggle = signal(true);
41
+ /** @docs-private */
42
+ this.lineClamp = signal(null);
43
+ this.destroyRef = inject(DestroyRef);
44
+ this.elementRef = inject(ElementRef);
45
+ this.resizeObserver = inject(SharedResizeObserver);
46
+ this.localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });
47
+ /**
48
+ * Clamped text locale configuration.
49
+ * @docs-private
50
+ */
51
+ this.localeConfiguration = toSignal(this.localeService
52
+ ? this.localeService.changes.pipe(map(() => this.localeService.getParams('clampedText')))
53
+ : of(inject(KBQ_CLAMPED_TEXT_LOCALE_CONFIGURATION)));
54
+ /**
55
+ * This flag is used to prevent trigger resize observer on toggle click.
56
+ */
57
+ this.isEventFromToggle = false;
58
+ /**
59
+ * Calculates next collapsed state according to previous one.
60
+ * `undefined` is treated as collapsed and not touched stated.
61
+ */
62
+ this.toggleCollapseState = (state) => {
63
+ const isCollapsed = state ?? true;
64
+ return !isCollapsed;
65
+ };
66
+ toObservable(this.isCollapsed)
67
+ .pipe(pairwise(), takeUntilDestroyed())
68
+ .subscribe(([previous, current]) => {
69
+ this.collapsedState.set(current);
70
+ // store previous collapsed value to reduce unnecessary changes
71
+ this.isToggleCollapsed.set(!this.hasToggle() ? previous : current);
72
+ });
73
+ toObservable(this.collapsedState)
74
+ .pipe(skip(1), takeUntilDestroyed())
75
+ .subscribe((collapsed) => {
76
+ if (collapsed === undefined)
77
+ return;
78
+ this.isCollapsedChange.emit(collapsed);
79
+ });
80
+ toObservable(this.rows)
81
+ .pipe(takeUntilDestroyed())
82
+ .subscribe((rows) => this.lineClamp.set(rows));
83
+ }
84
+ ngAfterViewInit() {
85
+ const textContainer = this.textContainer().nativeElement;
86
+ this.resizeObserver
87
+ .observe(textContainer)
88
+ .pipe(debounceTime(this.debounceTime()), takeUntilDestroyed(this.destroyRef))
89
+ .subscribe(() => {
90
+ this.updateToggleVisibilityState();
91
+ this.updateCollapsedState();
92
+ });
93
+ }
94
+ /** @docs-private */
95
+ toggleIsCollapsed(event) {
96
+ event.stopPropagation();
97
+ this.collapsedState.update((state) => this.toggleCollapseState(this.isToggleCollapsed() ?? state));
98
+ this.isToggleCollapsed.update(this.toggleCollapseState);
99
+ this.isEventFromToggle = true;
100
+ if (this.collapsedState()) {
101
+ setTimeout(() => this.elementRef.nativeElement.scrollIntoView({ block: 'center', inline: 'center' }));
102
+ }
103
+ }
104
+ updateToggleVisibilityState() {
105
+ this.hasToggle.set(this.getRowsCount() > this.rows() + 1);
106
+ }
107
+ updateCollapsedState() {
108
+ if (this.isEventFromToggle) {
109
+ this.isEventFromToggle = false;
110
+ return;
111
+ }
112
+ this.collapsedState.set(this.hasToggle() && (this.isToggleCollapsed() ?? true));
113
+ }
114
+ getRowsCount() {
115
+ const rects = Array.from(this.text().nativeElement.getClientRects());
116
+ return [...new Set(rects.map(({ top }) => top))].length;
117
+ }
118
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqClampedText, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
119
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: KbqClampedText, isStandalone: true, selector: "kbq-clamped-text", inputs: { rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, isCollapsed: { classPropertyName: "isCollapsed", publicName: "isCollapsed", isSignal: true, isRequired: false, transformFunction: null }, debounceTime: { classPropertyName: "debounceTime", publicName: "debounceTime", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isCollapsedChange: "isCollapsedChange" }, host: { properties: { "attr.aria-expanded": "collapsedState() ? \"false\" : \"true\"" }, classAttribute: "kbq-clamped-text" }, viewQueries: [{ propertyName: "text", first: true, predicate: ["text"], descendants: true, isSignal: true }, { propertyName: "textContainer", first: true, predicate: ["textContainer"], descendants: true, isSignal: true }], exportAs: ["kbqClampedText"], ngImport: i0, template: `
120
+ <div
121
+ #textContainer
122
+ class="kbq-clamped-text__content"
123
+ [style.-webkit-line-clamp]="lineClamp()"
124
+ [style.line-clamp]="lineClamp()"
125
+ [class.kbq-clamped-text__content_collapsed]="collapsedState()"
126
+ >
127
+ <span #text>
128
+ <ng-content />
129
+ </span>
130
+ </div>
131
+
132
+ @if (hasToggle()) {
133
+ <span
134
+ class="kbq-clamped-text__toggle"
135
+ kbq-link
136
+ noUnderline
137
+ pseudo
138
+ role="button"
139
+ (click)="toggleIsCollapsed($event)"
140
+ (keydown.enter)="toggleIsCollapsed($event)"
141
+ (keydown.space)="toggleIsCollapsed($event)"
142
+ >
143
+ @let config = localeConfiguration();
144
+
145
+ @if (collapsedState()) {
146
+ <i kbq-icon="kbq-chevron-down_16"></i>
147
+ <span class="kbq-link__text">{{ config!.openText }}</span>
148
+ } @else {
149
+ <i kbq-icon="kbq-chevron-up_16"></i>
150
+ <span class="kbq-link__text">{{ config!.closeText }}</span>
151
+ }
152
+ </span>
153
+ }
154
+ `, isInline: true, styles: [".kbq-clamped-text{display:inline-flex;flex-direction:column}.kbq-clamped-text__content.kbq-clamped-text__content_collapsed{display:-webkit-box;overflow-y:hidden;-webkit-box-orient:vertical}.kbq-clamped-text__toggle{margin-top:var(--kbq-size-xxs);align-self:flex-start}\n"], dependencies: [{ kind: "component", type: KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "ngmodule", type: KbqLinkModule }, { kind: "directive", type: i1.KbqLink, selector: "[kbq-link]", inputs: ["disabled", "tabIndex", "pseudo", "noUnderline", "big", "compact", "useVisited", "print"], exportAs: ["kbqLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
155
+ }
156
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqClampedText, decorators: [{
157
+ type: Component,
158
+ args: [{ selector: 'kbq-clamped-text', standalone: true, exportAs: 'kbqClampedText', imports: [
159
+ KbqIcon,
160
+ KbqButtonModule,
161
+ KbqLinkModule
162
+ ], template: `
163
+ <div
164
+ #textContainer
165
+ class="kbq-clamped-text__content"
166
+ [style.-webkit-line-clamp]="lineClamp()"
167
+ [style.line-clamp]="lineClamp()"
168
+ [class.kbq-clamped-text__content_collapsed]="collapsedState()"
169
+ >
170
+ <span #text>
171
+ <ng-content />
172
+ </span>
173
+ </div>
174
+
175
+ @if (hasToggle()) {
176
+ <span
177
+ class="kbq-clamped-text__toggle"
178
+ kbq-link
179
+ noUnderline
180
+ pseudo
181
+ role="button"
182
+ (click)="toggleIsCollapsed($event)"
183
+ (keydown.enter)="toggleIsCollapsed($event)"
184
+ (keydown.space)="toggleIsCollapsed($event)"
185
+ >
186
+ @let config = localeConfiguration();
187
+
188
+ @if (collapsedState()) {
189
+ <i kbq-icon="kbq-chevron-down_16"></i>
190
+ <span class="kbq-link__text">{{ config!.openText }}</span>
191
+ } @else {
192
+ <i kbq-icon="kbq-chevron-up_16"></i>
193
+ <span class="kbq-link__text">{{ config!.closeText }}</span>
194
+ }
195
+ </span>
196
+ }
197
+ `, host: {
198
+ class: 'kbq-clamped-text',
199
+ '[attr.aria-expanded]': 'collapsedState() ? "false" : "true"'
200
+ }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".kbq-clamped-text{display:inline-flex;flex-direction:column}.kbq-clamped-text__content.kbq-clamped-text__content_collapsed{display:-webkit-box;overflow-y:hidden;-webkit-box-orient:vertical}.kbq-clamped-text__toggle{margin-top:var(--kbq-size-xxs);align-self:flex-start}\n"] }]
201
+ }], ctorParameters: () => [] });
202
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhbXBlZC10ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jbGFtcGVkLXRleHQvY2xhbXBlZC10ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxlQUFlLEVBQ2YsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBOEIsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdELE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7O0FBdURsRyxNQUFNLE9BQU8sY0FBYztJQXVEdkI7UUF0REE7OztXQUdHO1FBQ00sU0FBSSxHQUFHLEtBQUssQ0FBUyw0QkFBNEIsQ0FBQyxDQUFDO1FBQzVELG1GQUFtRjtRQUMxRSxnQkFBVyxHQUFHLEtBQUssRUFBVyxDQUFDO1FBQ3hDOzs7V0FHRztRQUNNLGlCQUFZLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxF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bnQiOlsiaW1wb3J0IHsgU2hhcmVkUmVzaXplT2JzZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvb2JzZXJ2ZXJzL3ByaXZhdGUnO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBEZXN0cm95UmVmLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgaW5qZWN0LFxuICAgIGlucHV0LFxuICAgIG51bWJlckF0dHJpYnV0ZSxcbiAgICBvdXRwdXQsXG4gICAgc2lnbmFsLFxuICAgIHZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCwgdG9PYnNlcnZhYmxlLCB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEticUJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgS0JRX0xPQ0FMRV9TRVJWSUNFLCBLYnFDbGFtcGVkVGV4dExvY2FsZUNvbmZpZyB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9jb3JlJztcbmltcG9ydCB7IEticUljb24gfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQgeyBLYnFMaW5rTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2xpbmsnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAsIG9mLCBwYWlyd2lzZSwgc2tpcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgS0JRX0NMQU1QRURfVEVYVF9MT0NBTEVfQ09ORklHVVJBVElPTiwga2JxQ2xhbXBlZFRleHREZWZhdWx0TWF4Um93cyB9IGZyb20gJy4vY29uc3RhbnRzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdrYnEtY2xhbXBlZC10ZXh0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGV4cG9ydEFzOiAna2JxQ2xhbXBlZFRleHQnLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgS2JxSWNvbixcbiAgICAgICAgS2JxQnV0dG9uTW9kdWxlLFxuICAgICAgICBLYnFMaW5rTW9kdWxlXG4gICAgXSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAjdGV4dENvbnRhaW5lclxuICAgICAgICAgICAgY2xhc3M9XCJrYnEtY2xhbXBlZC10ZXh0X19jb250ZW50XCJcbiAgICAgICAgICAgIFtzdHlsZS4td2Via2l0LWxpbmUtY2xhbXBdPVwibGluZUNsYW1wKClcIlxuICAgICAgICAgICAgW3N0eWxlLmxpbmUtY2xhbXBdPVwibGluZUNsYW1wKClcIlxuICAgICAgICAgICAgW2NsYXNzLmticS1jbGFtcGVkLXRleHRfX2NvbnRlbnRfY29sbGFwc2VkXT1cImNvbGxhcHNlZFN0YXRlKClcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiAjdGV4dD5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudCAvPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICBAaWYgKGhhc1RvZ2dsZSgpKSB7XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGNsYXNzPVwia2JxLWNsYW1wZWQtdGV4dF9fdG9nZ2xlXCJcbiAgICAgICAgICAgICAgICBrYnEtbGlua1xuICAgICAgICAgICAgICAgIG5vVW5kZXJsaW5lXG4gICAgICAgICAgICAgICAgcHNldWRvXG4gICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUlzQ29sbGFwc2VkKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cInRvZ2dsZUlzQ29sbGFwc2VkKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cInRvZ2dsZUlzQ29sbGFwc2VkKCRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIEBsZXQgY29uZmlnID0gbG9jYWxlQ29uZmlndXJhdGlvbigpO1xuXG4gICAgICAgICAgICAgICAgQGlmIChjb2xsYXBzZWRTdGF0ZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIDxpIGticS1pY29uPVwia2JxLWNoZXZyb24tZG93bl8xNlwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJrYnEtbGlua19fdGV4dFwiPnt7IGNvbmZpZyEub3BlblRleHQgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIDxpIGticS1pY29uPVwia2JxLWNoZXZyb24tdXBfMTZcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwia2JxLWxpbmtfX3RleHRcIj57eyBjb25maWchLmNsb3NlVGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIH1cbiAgICBgLFxuICAgIHN0eWxlVXJsczogWycuL2NsYW1wZWQtdGV4dC5zY3NzJ10sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ticS1jbGFtcGVkLXRleHQnLFxuICAgICAgICAnW2F0dHIuYXJpYS1leHBhbmRlZF0nOiAnY29sbGFwc2VkU3RhdGUoKSA/IFwiZmFsc2VcIiA6IFwidHJ1ZVwiJ1xuICAgIH0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBLYnFDbGFtcGVkVGV4dCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIC8qKlxuICAgICAqIE1heCByb3dzIGJlZm9yZSB0ZXh0IGlzIGNsYW1wZWQuXG4gICAgICogQGRlZmF1bHQga2JxQ2xhbXBlZFRleHREZWZhdWx0TWF4Um93c1xuICAgICAqL1xuICAgIHJlYWRvbmx5IHJvd3MgPSBpbnB1dDxudW1iZXI+KGticUNsYW1wZWRUZXh0RGVmYXVsdE1heFJvd3MpO1xuICAgIC8qKiBDb2xsYXBzZWQgc3RhdGU6IGB0cnVlYCA9IGNvbGxhcHNlZCwgYGZhbHNlYCA9IGV4cGFuZGVkLCBgdW5kZWZpbmVkYCA9IGF1dG8uICovXG4gICAgcmVhZG9ubHkgaXNDb2xsYXBzZWQgPSBpbnB1dDxib29sZWFuPigpO1xuICAgIC8qKlxuICAgICAqIERlYm91bmNlIHRpbWUgb24gcmVzaXplIG9ic2VydmVyIHdoZW4gcmVjYWxjdWxhdGluZyB0b2dnbGUgYW5kIHRleHQgdmlzaWJpbGl0eS5cbiAgICAgKiBAZGVmYXVsdCAwXG4gICAgICovXG4gICAgcmVhZG9ubHkgZGVib3VuY2VUaW1lID0gaW5wdXQoMCwgeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KTtcbiAgICAvKiogRW1pdHMgd2hlbiBjb2xsYXBzZWQgc3RhdGUgY2hhbmdlcy4gVXNlZCBmb3IgdHdvLXdheSBiaW5kaW5nIHdpdGggYGlzQ29sbGFwc2VkYC4gKi9cbiAgICByZWFkb25seSBpc0NvbGxhcHNlZENoYW5nZSA9IG91dHB1dDxib29sZWFuPigpO1xuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICByZWFkb25seSB0ZXh0ID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8SFRNTFNwYW5FbGVtZW50Pj4oJ3RleHQnKTtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHJlYWRvbmx5IHRleHRDb250YWluZXIgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4+KCd0ZXh0Q29udGFpbmVyJyk7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZsYWcgY29udHJvbHMgZXZlbnQgZW1pc3Npb24sIGFyaWEvY3NzLWNsYXNzIGNhbGN1bGF0aW9uXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBjb2xsYXBzZWRTdGF0ZSA9IHNpZ25hbDxib29sZWFuIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzVG9nZ2xlQ29sbGFwc2VkID0gc2lnbmFsPGJvb2xlYW4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaGFzVG9nZ2xlID0gc2lnbmFsKHRydWUpO1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGxpbmVDbGFtcCA9IHNpZ25hbDxudW1iZXIgfCBudWxsPihudWxsKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzaXplT2JzZXJ2ZXIgPSBpbmplY3QoU2hhcmVkUmVzaXplT2JzZXJ2ZXIpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9jYWxlU2VydmljZSA9IGluamVjdChLQlFfTE9DQUxFX1NFUlZJQ0UsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgICAvKipcbiAgICAgKiBDbGFtcGVkIHRleHQgbG9jYWxlIGNvbmZpZ3VyYXRpb24uXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBsb2NhbGVDb25maWd1cmF0aW9uID0gdG9TaWduYWw8S2JxQ2xhbXBlZFRleHRMb2NhbGVDb25maWc+KFxuICAgICAgICB0aGlzLmxvY2FsZVNlcnZpY2VcbiAgICAgICAgICAgID8gdGhpcy5sb2NhbGVTZXJ2aWNlLmNoYW5nZXMucGlwZShcbiAgICAgICAgICAgICAgICAgIG1hcCgoKSA9PiB0aGlzLmxvY2FsZVNlcnZpY2UhLmdldFBhcmFtcygnY2xhbXBlZFRleHQnKSBzYXRpc2ZpZXMgS2JxQ2xhbXBlZFRleHRMb2NhbGVDb25maWcpXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIDogb2YoaW5qZWN0KEtCUV9DTEFNUEVEX1RFWFRfTE9DQUxFX0NPTkZJR1VSQVRJT04pKVxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZsYWcgaXMgdXNlZCB0byBwcmV2ZW50IHRyaWdnZXIgcmVzaXplIG9ic2VydmVyIG9uIHRvZ2dsZSBjbGljay5cbiAgICAgKi9cbiAgICBwcml2YXRlIGlzRXZlbnRGcm9tVG9nZ2xlID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdG9PYnNlcnZhYmxlKHRoaXMuaXNDb2xsYXBzZWQpXG4gICAgICAgICAgICAucGlwZShwYWlyd2lzZSgpLCB0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKFtwcmV2aW91cywgY3VycmVudF0pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbGxhcHNlZFN0YXRlLnNldChjdXJyZW50KTtcbiAgICAgICAgICAgICAgICAvLyBzdG9yZSBwcmV2aW91cyBjb2xsYXBzZWQgdmFsdWUgdG8gcmVkdWNlIHVubmVjZXNzYXJ5IGNoYW5nZXNcbiAgICAgICAgICAgICAgICB0aGlzLmlzVG9nZ2xlQ29sbGFwc2VkLnNldCghdGhpcy5oYXNUb2dnbGUoKSA/IHByZXZpb3VzIDogY3VycmVudCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0b09ic2VydmFibGUodGhpcy5jb2xsYXBzZWRTdGF0ZSlcbiAgICAgICAgICAgIC5waXBlKHNraXAoMSksIHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoY29sbGFwc2VkKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGNvbGxhcHNlZCA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgICAgICAgICAgICAgdGhpcy5pc0NvbGxhcHNlZENoYW5nZS5lbWl0KGNvbGxhcHNlZCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0b09ic2VydmFibGUodGhpcy5yb3dzKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyb3dzKSA9PiB0aGlzLmxpbmVDbGFtcC5zZXQocm93cykpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdGV4dENvbnRhaW5lciA9IHRoaXMudGV4dENvbnRhaW5lcigpLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlclxuICAgICAgICAgICAgLm9ic2VydmUodGV4dENvbnRhaW5lcilcbiAgICAgICAgICAgIC5waXBlKGRlYm91bmNlVGltZSh0aGlzLmRlYm91bmNlVGltZSgpKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVRvZ2dsZVZpc2liaWxpdHlTdGF0ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlQ29sbGFwc2VkU3RhdGUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgdG9nZ2xlSXNDb2xsYXBzZWQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIHRoaXMuY29sbGFwc2VkU3RhdGUudXBkYXRlKChzdGF0ZSkgPT4gdGhpcy50b2dnbGVDb2xsYXBzZVN0YXRlKHRoaXMuaXNUb2dnbGVDb2xsYXBzZWQoKSA/PyBzdGF0ZSkpO1xuICAgICAgICB0aGlzLmlzVG9nZ2xlQ29sbGFwc2VkLnVwZGF0ZSh0aGlzLnRvZ2dsZUNvbGxhcHNlU3RhdGUpO1xuXG4gICAgICAgIHRoaXMuaXNFdmVudEZyb21Ub2dnbGUgPSB0cnVlO1xuXG4gICAgICAgIGlmICh0aGlzLmNvbGxhcHNlZFN0YXRlKCkpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoeyBibG9jazogJ2NlbnRlcicsIGlubGluZTogJ2NlbnRlcicgfSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVUb2dnbGVWaXNpYmlsaXR5U3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGFzVG9nZ2xlLnNldCh0aGlzLmdldFJvd3NDb3VudCgpID4gdGhpcy5yb3dzKCkgKyAxKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUNvbGxhcHNlZFN0YXRlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0V2ZW50RnJvbVRvZ2dsZSkge1xuICAgICAgICAgICAgdGhpcy5pc0V2ZW50RnJvbVRvZ2dsZSA9IGZhbHNlO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNvbGxhcHNlZFN0YXRlLnNldCh0aGlzLmhhc1RvZ2dsZSgpICYmICh0aGlzLmlzVG9nZ2xlQ29sbGFwc2VkKCkgPz8gdHJ1ZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZXMgbmV4dCBjb2xsYXBzZWQgc3RhdGUgYWNjb3JkaW5nIHRvIHByZXZpb3VzIG9uZS5cbiAgICAgKiBgdW5kZWZpbmVkYCBpcyB0cmVhdGVkIGFzIGNvbGxhcHNlZCBhbmQgbm90IHRvdWNoZWQgc3RhdGVkLlxuICAgICAqL1xuICAgIHByaXZhdGUgdG9nZ2xlQ29sbGFwc2VTdGF0ZSA9IChzdGF0ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCk6IGJvb2xlYW4gPT4ge1xuICAgICAgICBjb25zdCBpc0NvbGxhcHNlZCA9IHN0YXRlID8/IHRydWU7XG5cbiAgICAgICAgcmV0dXJuICFpc0NvbGxhcHNlZDtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBnZXRSb3dzQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgcmVjdHMgPSBBcnJheS5mcm9tKHRoaXMudGV4dCgpLm5hdGl2ZUVsZW1lbnQuZ2V0Q2xpZW50UmVjdHMoKSk7XG5cbiAgICAgICAgcmV0dXJuIFsuLi5uZXcgU2V0KHJlY3RzLm1hcCgoeyB0b3AgfSkgPT4gdG9wKSldLmxlbmd0aDtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,20 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { ruRULocaleData } from '@koobiq/components/core';
3
+ /**
4
+ * Default maximum number of visible rows for the clamped text component
5
+ * before truncation and the "collapse/expand" toggle is shown.
6
+ */
7
+ export const kbqClampedTextDefaultMaxRows = 5;
8
+ /** Localization configuration provider. */
9
+ export const KBQ_CLAMPED_TEXT_LOCALE_CONFIGURATION = new InjectionToken('KbqClampedTextLocaleConfig', {
10
+ factory: () => ruRULocaleData.clampedText
11
+ });
12
+ /**
13
+ * Utility provider.
14
+ * @see KBQ_CLAMPED_TEXT_LOCALE_CONFIGURATION
15
+ */
16
+ export const kbqClampedTextLocaleConfigurationProvider = (configuration) => ({
17
+ provide: KBQ_CLAMPED_TEXT_LOCALE_CONFIGURATION,
18
+ useValue: configuration
19
+ });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jbGFtcGVkLXRleHQvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUE4QixjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVyRjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxDQUFDLENBQUM7QUFFOUMsMkNBQTJDO0FBQzNDLE1BQU0sQ0FBQyxNQUFNLHFDQUFxQyxHQUFHLElBQUksY0FBYyxDQUNuRSw0QkFBNEIsRUFDNUI7SUFDSSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDLFdBQVc7Q0FDNUMsQ0FDSixDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0seUNBQXlDLEdBQUcsQ0FBQyxhQUF5QyxFQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQy9HLE9BQU8sRUFBRSxxQ0FBcUM7SUFDOUMsUUFBUSxFQUFFLGFBQWE7Q0FDMUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBLYnFDbGFtcGVkVGV4dExvY2FsZUNvbmZpZywgcnVSVUxvY2FsZURhdGEgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvY29yZSc7XG5cbi8qKlxuICogRGVmYXVsdCBtYXhpbXVtIG51bWJlciBvZiB2aXNpYmxlIHJvd3MgZm9yIHRoZSBjbGFtcGVkIHRleHQgY29tcG9uZW50XG4gKiBiZWZvcmUgdHJ1bmNhdGlvbiBhbmQgdGhlIFwiY29sbGFwc2UvZXhwYW5kXCIgdG9nZ2xlIGlzIHNob3duLlxuICovXG5leHBvcnQgY29uc3Qga2JxQ2xhbXBlZFRleHREZWZhdWx0TWF4Um93cyA9IDU7XG5cbi8qKiBMb2NhbGl6YXRpb24gY29uZmlndXJhdGlvbiBwcm92aWRlci4gKi9cbmV4cG9ydCBjb25zdCBLQlFfQ0xBTVBFRF9URVhUX0xPQ0FMRV9DT05GSUdVUkFUSU9OID0gbmV3IEluamVjdGlvblRva2VuPEticUNsYW1wZWRUZXh0TG9jYWxlQ29uZmlnPihcbiAgICAnS2JxQ2xhbXBlZFRleHRMb2NhbGVDb25maWcnLFxuICAgIHtcbiAgICAgICAgZmFjdG9yeTogKCkgPT4gcnVSVUxvY2FsZURhdGEuY2xhbXBlZFRleHRcbiAgICB9XG4pO1xuXG4vKipcbiAqIFV0aWxpdHkgcHJvdmlkZXIuXG4gKiBAc2VlIEtCUV9DTEFNUEVEX1RFWFRfTE9DQUxFX0NPTkZJR1VSQVRJT05cbiAqL1xuZXhwb3J0IGNvbnN0IGticUNsYW1wZWRUZXh0TG9jYWxlQ29uZmlndXJhdGlvblByb3ZpZGVyID0gKGNvbmZpZ3VyYXRpb246IEticUNsYW1wZWRUZXh0TG9jYWxlQ29uZmlnKTogUHJvdmlkZXIgPT4gKHtcbiAgICBwcm92aWRlOiBLQlFfQ0xBTVBFRF9URVhUX0xPQ0FMRV9DT05GSUdVUkFUSU9OLFxuICAgIHVzZVZhbHVlOiBjb25maWd1cmF0aW9uXG59KTtcbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export * from './clamped-text';
2
+ export * from './constants';
3
+ export * from './module';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NsYW1wZWQtdGV4dC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jbGFtcGVkLXRleHQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25zdGFudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGUnO1xuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia29vYmlxLWNvbXBvbmVudHMtY2xhbXBlZC10ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jbGFtcGVkLXRleHQva29vYmlxLWNvbXBvbmVudHMtY2xhbXBlZC10ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -0,0 +1,19 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { KbqClampedText } from './clamped-text';
3
+ import * as i0 from "@angular/core";
4
+ const COMPONENTS = [
5
+ KbqClampedText
6
+ ];
7
+ export class KbqClampedTextModule {
8
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqClampedTextModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: KbqClampedTextModule, imports: [KbqClampedText], exports: [KbqClampedText] }); }
10
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqClampedTextModule, imports: [COMPONENTS] }); }
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqClampedTextModule, decorators: [{
13
+ type: NgModule,
14
+ args: [{
15
+ imports: COMPONENTS,
16
+ exports: COMPONENTS
17
+ }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jbGFtcGVkLXRleHQvbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUVoRCxNQUFNLFVBQVUsR0FBRztJQUNmLGNBQWM7Q0FDakIsQ0FBQztBQU1GLE1BQU0sT0FBTyxvQkFBb0I7a0lBQXBCLG9CQUFvQjttSUFBcEIsb0JBQW9CLFlBUDdCLGNBQWMsYUFBZCxjQUFjO21JQU9MLG9CQUFvQixZQUhwQixVQUFVOzs0RkFHVixvQkFBb0I7a0JBSmhDLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLFVBQVU7b0JBQ25CLE9BQU8sRUFBRSxVQUFVO2lCQUN0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBLYnFDbGFtcGVkVGV4dCB9IGZyb20gJy4vY2xhbXBlZC10ZXh0JztcblxuY29uc3QgQ09NUE9ORU5UUyA9IFtcbiAgICBLYnFDbGFtcGVkVGV4dFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBDT01QT05FTlRTLFxuICAgIGV4cG9ydHM6IENPTVBPTkVOVFNcbn0pXG5leHBvcnQgY2xhc3MgS2JxQ2xhbXBlZFRleHRNb2R1bGUge31cbiJdfQ==