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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (377) hide show
  1. package/autocomplete/_autocomplete-theme.scss +3 -10
  2. package/autocomplete/autocomplete.scss +0 -5
  3. package/badge/_badge-theme.scss +17 -8
  4. package/badge/badge.component.d.ts +20 -1
  5. package/badge/badge.component.scss +28 -0
  6. package/badge/badge.module.d.ts +1 -1
  7. package/button/_button-base.scss +1 -1
  8. package/button/_button-theme.scss +23 -38
  9. package/checkbox/_checkbox-theme.scss +9 -6
  10. package/checkbox/checkbox.scss +6 -8
  11. package/code-block/_code-block-theme.scss +43 -12
  12. package/code-block/actionbar.component.scss +34 -6
  13. package/code-block/code-block.component.d.ts +2 -2
  14. package/code-block/code-block.scss +101 -27
  15. package/core/common-behaviors/index.d.ts +2 -0
  16. package/core/locales/index.d.ts +0 -2
  17. package/core/option/_option-action-theme.scss +1 -1
  18. package/core/option/_option-theme.scss +5 -5
  19. package/core/option/action.scss +1 -1
  20. package/core/pop-up/pop-up.d.ts +7 -0
  21. package/core/selection/pseudo-checkbox/pseudo-checkbox.scss +4 -15
  22. package/core/styles/_koobiq-theme.scss +2 -0
  23. package/core/styles/_variables.scss +1 -1
  24. package/core/styles/common/_select.scss +2 -1
  25. package/core/styles/theming/_components-theming.scss +116 -49
  26. package/core/styles/theming/_scrollbars-theme.scss +7 -2
  27. package/core/styles/theming/_theming.scss +200 -28
  28. package/core/styles/typography/_typography.scss +180 -5
  29. package/dropdown/_dropdown-theme.scss +1 -2
  30. package/esm2022/alert/alert.component.mjs +12 -12
  31. package/esm2022/alert/alert.module.mjs +4 -4
  32. package/esm2022/autocomplete/autocomplete-origin.directive.mjs +4 -4
  33. package/esm2022/autocomplete/autocomplete-trigger.directive.mjs +6 -6
  34. package/esm2022/autocomplete/autocomplete.component.mjs +8 -8
  35. package/esm2022/autocomplete/autocomplete.module.mjs +4 -4
  36. package/esm2022/badge/badge.component.mjs +71 -10
  37. package/esm2022/badge/badge.module.mjs +14 -10
  38. package/esm2022/button/button.component.mjs +16 -13
  39. package/esm2022/button/button.module.mjs +4 -4
  40. package/esm2022/button-toggle/button-toggle.component.mjs +12 -12
  41. package/esm2022/button-toggle/button-toggle.module.mjs +4 -4
  42. package/esm2022/card/card.component.mjs +5 -5
  43. package/esm2022/card/card.module.mjs +4 -4
  44. package/esm2022/checkbox/checkbox-module.mjs +4 -4
  45. package/esm2022/checkbox/checkbox-required-validator.mjs +3 -3
  46. package/esm2022/checkbox/checkbox.mjs +7 -7
  47. package/esm2022/code-block/actionbar.component.mjs +5 -5
  48. package/esm2022/code-block/code-block.component.mjs +14 -12
  49. package/esm2022/code-block/code-block.module.mjs +8 -8
  50. package/esm2022/core/common-behaviors/color.mjs +1 -1
  51. package/esm2022/core/common-behaviors/common-module.mjs +7 -7
  52. package/esm2022/core/common-behaviors/error-state.mjs +1 -1
  53. package/esm2022/core/common-behaviors/index.mjs +3 -1
  54. package/esm2022/core/error/error-options.mjs +6 -6
  55. package/esm2022/core/formatters/date/formatter.mjs +5 -5
  56. package/esm2022/core/formatters/date/formatter.pipe.mjs +52 -52
  57. package/esm2022/core/formatters/index.mjs +7 -6
  58. package/esm2022/core/formatters/number/formatter.mjs +19 -19
  59. package/esm2022/core/forms/forms-module.mjs +4 -4
  60. package/esm2022/core/forms/forms.directive.mjs +8 -8
  61. package/esm2022/core/highlight/highlight.pipe.mjs +5 -5
  62. package/esm2022/core/highlight/index.mjs +4 -4
  63. package/esm2022/core/line/line.mjs +8 -8
  64. package/esm2022/core/locales/index.mjs +1 -3
  65. package/esm2022/core/locales/locale-service.mjs +5 -5
  66. package/esm2022/core/locales/locale-service.module.mjs +4 -4
  67. package/esm2022/core/option/action.mjs +9 -8
  68. package/esm2022/core/option/optgroup.mjs +4 -4
  69. package/esm2022/core/option/option-module.mjs +4 -4
  70. package/esm2022/core/option/option.mjs +8 -8
  71. package/esm2022/core/overlay/overlay-position-map.mjs +1 -1
  72. package/esm2022/core/pop-up/pop-up-trigger.mjs +6 -6
  73. package/esm2022/core/pop-up/pop-up.mjs +12 -5
  74. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +6 -6
  75. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.module.mjs +4 -4
  76. package/esm2022/core/services/measure-scrollbar.service.mjs +6 -6
  77. package/esm2022/core/services/theme.service.mjs +5 -5
  78. package/esm2022/core/utils/data-size/data-size.pipe.mjs +7 -7
  79. package/esm2022/core/utils/data-size/size.mjs +1 -1
  80. package/esm2022/core/version.mjs +2 -2
  81. package/esm2022/datepicker/calendar-body.component.mjs +4 -4
  82. package/esm2022/datepicker/calendar-header.component.mjs +5 -5
  83. package/esm2022/datepicker/calendar.component.mjs +6 -6
  84. package/esm2022/datepicker/datepicker-animations.mjs +1 -1
  85. package/esm2022/datepicker/datepicker-input.directive.mjs +6 -6
  86. package/esm2022/datepicker/datepicker-intl.mjs +3 -3
  87. package/esm2022/datepicker/datepicker-module.mjs +4 -4
  88. package/esm2022/datepicker/datepicker-toggle.component.mjs +8 -8
  89. package/esm2022/datepicker/datepicker.component.mjs +10 -10
  90. package/esm2022/datepicker/month-view.component.mjs +6 -6
  91. package/esm2022/divider/divider.component.mjs +3 -3
  92. package/esm2022/divider/divider.module.mjs +4 -4
  93. package/esm2022/dl/dl.component.mjs +11 -11
  94. package/esm2022/dl/dl.module.mjs +4 -4
  95. package/esm2022/dropdown/dropdown-content.directive.mjs +6 -6
  96. package/esm2022/dropdown/dropdown-item.component.mjs +9 -8
  97. package/esm2022/dropdown/dropdown-trigger.directive.mjs +6 -6
  98. package/esm2022/dropdown/dropdown.component.mjs +6 -6
  99. package/esm2022/dropdown/dropdown.module.mjs +4 -4
  100. package/esm2022/ellipsis-center/ellipsis-center.directive.mjs +10 -10
  101. package/esm2022/file-upload/file-drop.mjs +43 -6
  102. package/esm2022/file-upload/file-upload.mjs +1 -1
  103. package/esm2022/file-upload/file-upload.module.mjs +4 -4
  104. package/esm2022/file-upload/multiple-file-upload.component.mjs +7 -7
  105. package/esm2022/file-upload/single-file-upload.component.mjs +7 -7
  106. package/esm2022/form-field/cleaner.mjs +3 -3
  107. package/esm2022/form-field/form-field.mjs +21 -15
  108. package/esm2022/form-field/form-field.module.mjs +4 -4
  109. package/esm2022/form-field/hint.mjs +32 -10
  110. package/esm2022/form-field/password-hint.mjs +24 -21
  111. package/esm2022/form-field/password-toggle.mjs +6 -6
  112. package/esm2022/form-field/prefix.mjs +3 -3
  113. package/esm2022/form-field/stepper.mjs +4 -4
  114. package/esm2022/form-field/suffix.mjs +3 -3
  115. package/esm2022/form-field/validate.directive.mjs +17 -12
  116. package/esm2022/icon/icon-button.component.mjs +69 -0
  117. package/esm2022/icon/icon-item.component.mjs +28 -0
  118. package/esm2022/icon/icon.component.mjs +20 -93
  119. package/esm2022/icon/icon.module.mjs +8 -6
  120. package/esm2022/icon/public-api.mjs +3 -1
  121. package/esm2022/input/input-number-validators.mjs +7 -7
  122. package/esm2022/input/input-number.mjs +12 -9
  123. package/esm2022/input/input-password.mjs +6 -6
  124. package/esm2022/input/input.mjs +9 -9
  125. package/esm2022/input/input.module.mjs +4 -4
  126. package/esm2022/link/link.component.mjs +16 -5
  127. package/esm2022/link/link.module.mjs +4 -4
  128. package/esm2022/list/list-selection.component.mjs +16 -16
  129. package/esm2022/list/list.component.mjs +9 -9
  130. package/esm2022/list/list.module.mjs +4 -4
  131. package/esm2022/loader-overlay/loader-overlay.component.mjs +15 -15
  132. package/esm2022/loader-overlay/loader-overlay.module.mjs +4 -4
  133. package/esm2022/markdown/markdown.component.mjs +5 -5
  134. package/esm2022/markdown/markdown.module.mjs +4 -4
  135. package/esm2022/markdown/markdown.service.mjs +3 -3
  136. package/esm2022/modal/css-unit.pipe.mjs +3 -3
  137. package/esm2022/modal/modal-control.service.mjs +6 -6
  138. package/esm2022/modal/modal.component.mjs +22 -13
  139. package/esm2022/modal/modal.directive.mjs +12 -12
  140. package/esm2022/modal/modal.module.mjs +4 -4
  141. package/esm2022/modal/modal.service.mjs +5 -5
  142. package/esm2022/navbar/navbar-item.component.mjs +61 -52
  143. package/esm2022/navbar/navbar.component.mjs +28 -17
  144. package/esm2022/navbar/navbar.module.mjs +4 -4
  145. package/esm2022/navbar/vertical-navbar.component.mjs +9 -8
  146. package/esm2022/popover/popover-confirm.component.mjs +11 -13
  147. package/esm2022/popover/popover.component.mjs +16 -11
  148. package/esm2022/popover/popover.module.mjs +4 -4
  149. package/esm2022/progress-bar/progress-bar.component.mjs +11 -11
  150. package/esm2022/progress-bar/progress-bar.module.mjs +4 -4
  151. package/esm2022/progress-spinner/progress-spinner.component.mjs +12 -12
  152. package/esm2022/progress-spinner/progress-spinner.module.mjs +4 -4
  153. package/esm2022/radio/radio.component.mjs +10 -10
  154. package/esm2022/radio/radio.module.mjs +4 -4
  155. package/esm2022/risk-level/risk-level.component.mjs +3 -3
  156. package/esm2022/risk-level/risk-level.module.mjs +4 -4
  157. package/esm2022/select/select-option.directive.mjs +6 -6
  158. package/esm2022/select/select.component.mjs +30 -26
  159. package/esm2022/select/select.module.mjs +4 -4
  160. package/esm2022/sidebar/sidebar.component.mjs +11 -11
  161. package/esm2022/sidebar/sidebar.module.mjs +4 -4
  162. package/esm2022/sidepanel/sidepanel-container.component.mjs +7 -7
  163. package/esm2022/sidepanel/sidepanel-directives.mjs +18 -18
  164. package/esm2022/sidepanel/sidepanel-ref.mjs +1 -1
  165. package/esm2022/sidepanel/sidepanel.module.mjs +4 -4
  166. package/esm2022/sidepanel/sidepanel.service.mjs +6 -6
  167. package/esm2022/splitter/splitter.component.mjs +17 -17
  168. package/esm2022/splitter/splitter.module.mjs +4 -4
  169. package/esm2022/table/table.component.mjs +3 -3
  170. package/esm2022/table/table.module.mjs +4 -4
  171. package/esm2022/tabs/paginated-tab-header.mjs +6 -6
  172. package/esm2022/tabs/tab-body.component.mjs +11 -11
  173. package/esm2022/tabs/tab-content.directive.mjs +4 -4
  174. package/esm2022/tabs/tab-group.component.mjs +21 -21
  175. package/esm2022/tabs/tab-header.component.mjs +7 -7
  176. package/esm2022/tabs/tab-label-wrapper.directive.mjs +6 -5
  177. package/esm2022/tabs/tab-label.directive.mjs +3 -3
  178. package/esm2022/tabs/tab-nav-bar/tab-nav-bar.mjs +12 -11
  179. package/esm2022/tabs/tab.component.mjs +5 -5
  180. package/esm2022/tabs/tabs.module.mjs +4 -4
  181. package/esm2022/tags/tag-input.mjs +6 -6
  182. package/esm2022/tags/tag-list.component.mjs +9 -8
  183. package/esm2022/tags/tag.component.mjs +16 -16
  184. package/esm2022/tags/tag.module.mjs +4 -4
  185. package/esm2022/textarea/textarea.component.mjs +36 -25
  186. package/esm2022/textarea/textarea.module.mjs +4 -4
  187. package/esm2022/timepicker/timepicker.directive.mjs +6 -6
  188. package/esm2022/timepicker/timepicker.module.mjs +4 -4
  189. package/esm2022/timezone/cities-by-filter.pipe.mjs +3 -3
  190. package/esm2022/timezone/timezone-option.component.mjs +5 -5
  191. package/esm2022/timezone/timezone-option.directive.mjs +5 -5
  192. package/esm2022/timezone/timezone-select.component.mjs +9 -9
  193. package/esm2022/timezone/timezone.module.mjs +4 -4
  194. package/esm2022/timezone/timezone.utils.mjs +1 -1
  195. package/esm2022/timezone/utc-offset.pipe.mjs +3 -3
  196. package/esm2022/title/title.directive.mjs +6 -6
  197. package/esm2022/title/title.module.mjs +4 -4
  198. package/esm2022/toast/toast-animations.mjs +2 -1
  199. package/esm2022/toast/toast-container.component.mjs +22 -8
  200. package/esm2022/toast/toast.component.mjs +16 -10
  201. package/esm2022/toast/toast.module.mjs +4 -4
  202. package/esm2022/toast/toast.service.mjs +7 -6
  203. package/esm2022/toast/toast.type.mjs +1 -1
  204. package/esm2022/toggle/toggle.component.mjs +5 -5
  205. package/esm2022/toggle/toggle.module.mjs +4 -4
  206. package/esm2022/tooltip/tooltip.component.mjs +23 -23
  207. package/esm2022/tooltip/tooltip.module.mjs +4 -4
  208. package/esm2022/tree/control/base-tree-control.mjs +4 -4
  209. package/esm2022/tree/control/flat-tree-control.filters.mjs +47 -0
  210. package/esm2022/tree/control/flat-tree-control.mjs +27 -45
  211. package/esm2022/tree/control/nested-tree-control.mjs +1 -1
  212. package/esm2022/tree/control/tree-control.mjs +1 -1
  213. package/esm2022/tree/data-source/flat-data-source.mjs +1 -1
  214. package/esm2022/tree/node.mjs +5 -5
  215. package/esm2022/tree/outlet.mjs +4 -4
  216. package/esm2022/tree/padding.directive.mjs +6 -6
  217. package/esm2022/tree/public-api.mjs +2 -1
  218. package/esm2022/tree/toggle.mjs +12 -12
  219. package/esm2022/tree/tree-base.mjs +10 -10
  220. package/esm2022/tree/tree-option.component.mjs +12 -8
  221. package/esm2022/tree/tree-selection.component.mjs +6 -6
  222. package/esm2022/tree/tree.mjs +3 -3
  223. package/esm2022/tree/tree.module.mjs +4 -4
  224. package/esm2022/tree-select/tree-select.component.mjs +26 -18
  225. package/esm2022/tree-select/tree-select.module.mjs +9 -9
  226. package/fesm2022/koobiq-components-alert.mjs +16 -16
  227. package/fesm2022/koobiq-components-autocomplete.mjs +20 -20
  228. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  229. package/fesm2022/koobiq-components-badge.mjs +83 -18
  230. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  231. package/fesm2022/koobiq-components-button-toggle.mjs +15 -15
  232. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  233. package/fesm2022/koobiq-components-button.mjs +19 -16
  234. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  235. package/fesm2022/koobiq-components-card.mjs +8 -8
  236. package/fesm2022/koobiq-components-card.mjs.map +1 -1
  237. package/fesm2022/koobiq-components-checkbox.mjs +13 -13
  238. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  239. package/fesm2022/koobiq-components-code-block.mjs +22 -21
  240. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  241. package/fesm2022/koobiq-components-core.mjs +199 -191
  242. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  243. package/fesm2022/koobiq-components-datepicker.mjs +45 -45
  244. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  245. package/fesm2022/koobiq-components-divider.mjs +7 -7
  246. package/fesm2022/koobiq-components-dl.mjs +14 -14
  247. package/fesm2022/koobiq-components-dl.mjs.map +1 -1
  248. package/fesm2022/koobiq-components-dropdown.mjs +27 -26
  249. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  250. package/fesm2022/koobiq-components-ellipsis-center.mjs +9 -9
  251. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
  252. package/fesm2022/koobiq-components-file-upload.mjs +58 -21
  253. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  254. package/fesm2022/koobiq-components-form-field.mjs +109 -74
  255. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  256. package/fesm2022/koobiq-components-icon.mjs +39 -23
  257. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  258. package/fesm2022/koobiq-components-input.mjs +34 -31
  259. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  260. package/fesm2022/koobiq-components-link.mjs +19 -8
  261. package/fesm2022/koobiq-components-link.mjs.map +1 -1
  262. package/fesm2022/koobiq-components-list.mjs +27 -27
  263. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  264. package/fesm2022/koobiq-components-loader-overlay.mjs +18 -18
  265. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  266. package/fesm2022/koobiq-components-markdown.mjs +11 -11
  267. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  268. package/fesm2022/koobiq-components-modal.mjs +49 -40
  269. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  270. package/fesm2022/koobiq-components-navbar.mjs +99 -78
  271. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  272. package/fesm2022/koobiq-components-popover.mjs +30 -26
  273. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  274. package/fesm2022/koobiq-components-progress-bar.mjs +14 -14
  275. package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
  276. package/fesm2022/koobiq-components-progress-spinner.mjs +15 -15
  277. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  278. package/fesm2022/koobiq-components-radio.mjs +13 -13
  279. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  280. package/fesm2022/koobiq-components-risk-level.mjs +7 -7
  281. package/fesm2022/koobiq-components-select.mjs +39 -35
  282. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  283. package/fesm2022/koobiq-components-sidebar.mjs +14 -14
  284. package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
  285. package/fesm2022/koobiq-components-sidepanel.mjs +32 -32
  286. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  287. package/fesm2022/koobiq-components-splitter.mjs +20 -20
  288. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  289. package/fesm2022/koobiq-components-table.mjs +7 -7
  290. package/fesm2022/koobiq-components-tabs.mjs +71 -69
  291. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  292. package/fesm2022/koobiq-components-tags.mjs +32 -31
  293. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  294. package/fesm2022/koobiq-components-textarea.mjs +39 -28
  295. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  296. package/fesm2022/koobiq-components-timepicker.mjs +9 -9
  297. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  298. package/fesm2022/koobiq-components-timezone.mjs +28 -28
  299. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  300. package/fesm2022/koobiq-components-title.mjs +9 -9
  301. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  302. package/fesm2022/koobiq-components-toast.mjs +44 -26
  303. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  304. package/fesm2022/koobiq-components-toggle.mjs +8 -8
  305. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  306. package/fesm2022/koobiq-components-tooltip.mjs +26 -26
  307. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  308. package/fesm2022/koobiq-components-tree-select.mjs +33 -25
  309. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  310. package/fesm2022/koobiq-components-tree.mjs +132 -100
  311. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  312. package/file-upload/_file-upload-theme.scss +10 -1
  313. package/file-upload/file-drop.d.ts +2 -1
  314. package/file-upload/file-upload.d.ts +4 -1
  315. package/file-upload/multiple-file-upload.component.d.ts +2 -2
  316. package/file-upload/single-file-upload.component.d.ts +2 -2
  317. package/form-field/_form-field-theme.scss +8 -14
  318. package/form-field/_hint-theme.scss +5 -1
  319. package/form-field/form-field.d.ts +2 -0
  320. package/form-field/form-field.scss +12 -1
  321. package/form-field/hint.d.ts +4 -1
  322. package/form-field/hint.scss +10 -2
  323. package/form-field/password-hint.d.ts +7 -5
  324. package/icon/_icon-button-theme.scss +129 -0
  325. package/icon/_icon-item-theme.scss +41 -0
  326. package/icon/_icon-theme.scss +1 -222
  327. package/icon/icon-button.component.d.ts +23 -0
  328. package/icon/icon-button.scss +33 -0
  329. package/icon/icon-item.component.d.ts +11 -0
  330. package/icon/icon-item.scss +18 -0
  331. package/icon/icon.component.d.ts +4 -25
  332. package/icon/icon.module.d.ts +6 -4
  333. package/icon/icon.scss +0 -41
  334. package/icon/public-api.d.ts +2 -0
  335. package/input/input-number.d.ts +3 -2
  336. package/link/_link-theme.scss +97 -89
  337. package/link/link.component.d.ts +4 -1
  338. package/list/_list-theme.scss +1 -2
  339. package/list/list.scss +3 -3
  340. package/modal/_modal-confirm.scss +0 -24
  341. package/modal/modal.component.d.ts +3 -0
  342. package/modal/modal.scss +32 -15
  343. package/navbar/_navbar-theme.scss +8 -7
  344. package/navbar/navbar-item.component.d.ts +5 -2
  345. package/navbar/navbar-item.scss +7 -2
  346. package/navbar/navbar.component.d.ts +3 -0
  347. package/package.json +30 -30
  348. package/popover/popover-confirm.component.d.ts +0 -2
  349. package/popover/popover.component.d.ts +6 -1
  350. package/prebuilt-themes/dark-theme.css +1 -1
  351. package/prebuilt-themes/light-theme.css +1 -1
  352. package/progress-spinner/progress-spinner.scss +10 -5
  353. package/select/_select-theme.scss +6 -6
  354. package/select/select.component.d.ts +1 -1
  355. package/select/select.scss +7 -0
  356. package/splitter/_splitter-theme.scss +5 -4
  357. package/tabs/_tabs-common.scss +1 -1
  358. package/tabs/_tabs-theme.scss +2 -2
  359. package/tags/tag-list.scss +4 -0
  360. package/textarea/textarea.component.d.ts +4 -3
  361. package/toast/toast-animations.d.ts +1 -0
  362. package/toast/toast-container.component.d.ts +7 -3
  363. package/toast/toast.component.d.ts +2 -0
  364. package/toast/toast.service.d.ts +2 -0
  365. package/toast/toast.type.d.ts +1 -0
  366. package/tooltip/tooltip.component.d.ts +1 -1
  367. package/tree/_tree-theme.scss +5 -5
  368. package/tree/control/base-tree-control.d.ts +1 -1
  369. package/tree/control/flat-tree-control.d.ts +5 -3
  370. package/tree/control/flat-tree-control.filters.d.ts +26 -0
  371. package/tree/control/tree-control.d.ts +1 -1
  372. package/tree/public-api.d.ts +1 -0
  373. package/tree/tree-option.scss +4 -4
  374. package/tree-select/_tree-select-theme.scss +6 -4
  375. package/tree-select/tree-select.component.d.ts +9 -5
  376. package/tree-select/tree-select.module.d.ts +1 -1
  377. package/form-field/password-hint.scss +0 -11
@@ -6,11 +6,11 @@ import * as i2$1 from '@koobiq/components/button';
6
6
  import { KbqButtonModule } from '@koobiq/components/button';
7
7
  import * as i4 from '@koobiq/components/icon';
8
8
  import { KbqIconModule } from '@koobiq/components/icon';
9
- import * as i5 from '@koobiq/components/tabs';
9
+ import * as i6 from '@koobiq/components/tabs';
10
10
  import { KbqTabGroup, KbqTabsModule } from '@koobiq/components/tabs';
11
11
  import * as i3 from '@koobiq/components/tooltip';
12
12
  import { KbqToolTipModule } from '@koobiq/components/tooltip';
13
- import * as i4$1 from 'ngx-highlightjs';
13
+ import * as i5 from 'ngx-highlightjs';
14
14
  import { HighlightModule, HIGHLIGHT_OPTIONS } from 'ngx-highlightjs';
15
15
  import { filter, debounceTime } from 'rxjs/operators';
16
16
  import * as i1 from '@angular/cdk/clipboard';
@@ -41,15 +41,15 @@ class KbqActionBarComponent {
41
41
  this.copyTooltip.show();
42
42
  });
43
43
  }
44
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqActionBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
45
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: KbqActionBarComponent, selector: "kbq-actionbar-block", inputs: { config: "config", codeFiles: "codeFiles", lessContrast: "lessContrast", selectedTabIndex: "selectedTabIndex", multiLine: "multiLine", softWrap: "softWrap" }, outputs: { toggleSoftWrap: "toggleSoftWrap", downloadCode: "downloadCode", copyCode: "copyCode", openExternalSystem: "openExternalSystem" }, host: { properties: { "class.kbq-code-block-actionbar_less-contrast": "lessContrast" }, classAttribute: "kbq-code-block-actionbar" }, viewQueries: [{ propertyName: "copyTooltip", first: true, predicate: ["copyTooltip"], descendants: true }], ngImport: i0, template: "<button kbq-button\n class=\"kbq-button-icon kbq-button_transparent\"\n *ngIf=\"multiLine\"\n [kbqTooltip]=\"softWrap ? config.softWrapOffTooltip : config.softWrapOnTooltip\"\n (click)=\"toggleSoftWrap.emit()\">\n <i *ngIf=\"!softWrap\" kbq-icon=\"mc-word-wrap_16\"></i>\n <i *ngIf=\"softWrap\" kbq-icon=\"mc-word-wrap-slash_16\"></i>\n</button>\n\n<button kbq-button\n class=\"kbq-button_transparent\"\n [kbqTooltip]=\"config.downloadTooltip\"\n (click)=\"downloadCode.emit()\">\n <i kbq-icon=\"mc-download_16\"></i>\n</button>\n\n<button kbq-button\n class=\"kbq-button_transparent\"\n #copyTooltip=\"kbqTooltip\"\n [kbqTooltip]=\"copyTooltipText\"\n (click)=\"onCopy()\">\n <i kbq-icon=\"mc-copy-o_16\"></i>\n</button>\n\n<button kbq-button\n class=\"kbq-button_transparent\"\n *ngIf=\"codeFiles[selectedTabIndex].link\"\n [kbqTooltip]=\"config.openExternalSystemTooltip\"\n (click)=\"openExternalSystem.emit()\">\n <i kbq-icon=\"mc-external-link_16\"></i>\n</button>\n", styles: [".kbq-code-block-actionbar{display:flex;justify-content:right;align-items:center;position:absolute;top:4px;right:8px;gap:0;border-radius:8px}.kbq-code-block-actionbar.kbq-actionbar-block_floating{top:6px;right:6px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.KbqButton, selector: "[kbq-button]", inputs: ["color", "tabIndex", "kbqStyle", "disabled"] }, { kind: "directive", type: i2$1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "directive", type: i3.KbqTooltipTrigger, selector: "[kbqTooltip]", inputs: ["kbqVisible", "kbqPlacement", "kbqPlacementPriority", "kbqTooltip", "kbqTooltipDisabled", "mcEnterDelay", "mcLeaveDelay", "kbqTrigger", "kbqTooltipClass", "kbqTooltipColor"], outputs: ["kbqPlacementChange", "kbqVisibleChange"], exportAs: ["kbqTooltip"] }, { kind: "component", type: i4.KbqIcon, selector: "[kbq-icon]", inputs: ["color", "small", "autoColor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
44
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqActionBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
45
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.0", type: KbqActionBarComponent, selector: "kbq-actionbar-block", inputs: { config: "config", codeFiles: "codeFiles", lessContrast: "lessContrast", selectedTabIndex: "selectedTabIndex", multiLine: "multiLine", softWrap: "softWrap" }, outputs: { toggleSoftWrap: "toggleSoftWrap", downloadCode: "downloadCode", copyCode: "copyCode", openExternalSystem: "openExternalSystem" }, host: { properties: { "class.kbq-code-block-actionbar_less-contrast": "lessContrast" }, classAttribute: "kbq-code-block-actionbar" }, viewQueries: [{ propertyName: "copyTooltip", first: true, predicate: ["copyTooltip"], descendants: true }], ngImport: i0, template: "<div class=\"kbq-code-block__fade-gradient\"></div>\n\n<button kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n *ngIf=\"multiLine\"\n [kbqTooltip]=\"softWrap ? config.softWrapOffTooltip : config.softWrapOnTooltip\"\n (click)=\"toggleSoftWrap.emit()\">\n <i *ngIf=\"!softWrap\" kbq-icon=\"mc-word-wrap_16\"></i>\n <i *ngIf=\"softWrap\" kbq-icon=\"mc-word-wrap-slash_16\"></i>\n</button>\n\n<button kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [kbqTooltip]=\"config.downloadTooltip\"\n (click)=\"downloadCode.emit()\">\n <i kbq-icon=\"mc-download_16\"></i>\n</button>\n\n<button kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n #copyTooltip=\"kbqTooltip\"\n [kbqTooltip]=\"copyTooltipText\"\n (click)=\"onCopy()\">\n <i kbq-icon=\"mc-copy-o_16\"></i>\n</button>\n\n<button kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n *ngIf=\"codeFiles[selectedTabIndex].link\"\n [kbqTooltip]=\"config.openExternalSystemTooltip\"\n (click)=\"openExternalSystem.emit()\">\n <i kbq-icon=\"mc-external-link_16\"></i>\n</button>\n", styles: [".kbq-code-block-actionbar{display:flex;justify-content:right;align-items:center;position:absolute;top:0;right:0;padding:var(--kbq-code-block-size-actionbar-padding-vertical, 8px) var(--kbq-code-block-size-actionbar-padding-horizontal, 12px);gap:var(--kbq-code-block-size-actionbar-content-gap-horizontal, 2px)}.kbq-code-block-actionbar .kbq-code-block__fade-gradient{display:none;width:var(--kbq-code-block-size-actionbar-fade-gradient-width, 36px);height:40px;margin-top:calc(var(--kbq-code-block-size-actionbar-padding-vertical, 8px) * -1)}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.KbqButton, selector: "[kbq-button]", inputs: ["color", "tabIndex", "kbqStyle", "disabled"] }, { kind: "directive", type: i2$1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "directive", type: i3.KbqTooltipTrigger, selector: "[kbqTooltip]", inputs: ["kbqVisible", "kbqPlacement", "kbqPlacementPriority", "kbqTooltip", "kbqTooltipDisabled", "kbqEnterDelay", "kbqLeaveDelay", "kbqTrigger", "kbqTooltipClass", "kbqTooltipColor"], outputs: ["kbqPlacementChange", "kbqVisibleChange"], exportAs: ["kbqTooltip"] }, { kind: "component", type: i4.KbqIcon, selector: "[kbq-icon]", inputs: ["color", "small", "autoColor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
46
46
  }
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqActionBarComponent, decorators: [{
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqActionBarComponent, decorators: [{
48
48
  type: Component,
49
49
  args: [{ selector: 'kbq-actionbar-block', host: {
50
50
  class: 'kbq-code-block-actionbar',
51
51
  '[class.kbq-code-block-actionbar_less-contrast]': 'lessContrast'
52
- }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<button kbq-button\n class=\"kbq-button-icon kbq-button_transparent\"\n *ngIf=\"multiLine\"\n [kbqTooltip]=\"softWrap ? config.softWrapOffTooltip : config.softWrapOnTooltip\"\n (click)=\"toggleSoftWrap.emit()\">\n <i *ngIf=\"!softWrap\" kbq-icon=\"mc-word-wrap_16\"></i>\n <i *ngIf=\"softWrap\" kbq-icon=\"mc-word-wrap-slash_16\"></i>\n</button>\n\n<button kbq-button\n class=\"kbq-button_transparent\"\n [kbqTooltip]=\"config.downloadTooltip\"\n (click)=\"downloadCode.emit()\">\n <i kbq-icon=\"mc-download_16\"></i>\n</button>\n\n<button kbq-button\n class=\"kbq-button_transparent\"\n #copyTooltip=\"kbqTooltip\"\n [kbqTooltip]=\"copyTooltipText\"\n (click)=\"onCopy()\">\n <i kbq-icon=\"mc-copy-o_16\"></i>\n</button>\n\n<button kbq-button\n class=\"kbq-button_transparent\"\n *ngIf=\"codeFiles[selectedTabIndex].link\"\n [kbqTooltip]=\"config.openExternalSystemTooltip\"\n (click)=\"openExternalSystem.emit()\">\n <i kbq-icon=\"mc-external-link_16\"></i>\n</button>\n", styles: [".kbq-code-block-actionbar{display:flex;justify-content:right;align-items:center;position:absolute;top:4px;right:8px;gap:0;border-radius:8px}.kbq-code-block-actionbar.kbq-actionbar-block_floating{top:6px;right:6px}\n"] }]
52
+ }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"kbq-code-block__fade-gradient\"></div>\n\n<button kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n *ngIf=\"multiLine\"\n [kbqTooltip]=\"softWrap ? config.softWrapOffTooltip : config.softWrapOnTooltip\"\n (click)=\"toggleSoftWrap.emit()\">\n <i *ngIf=\"!softWrap\" kbq-icon=\"mc-word-wrap_16\"></i>\n <i *ngIf=\"softWrap\" kbq-icon=\"mc-word-wrap-slash_16\"></i>\n</button>\n\n<button kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [kbqTooltip]=\"config.downloadTooltip\"\n (click)=\"downloadCode.emit()\">\n <i kbq-icon=\"mc-download_16\"></i>\n</button>\n\n<button kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n #copyTooltip=\"kbqTooltip\"\n [kbqTooltip]=\"copyTooltipText\"\n (click)=\"onCopy()\">\n <i kbq-icon=\"mc-copy-o_16\"></i>\n</button>\n\n<button kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n *ngIf=\"codeFiles[selectedTabIndex].link\"\n [kbqTooltip]=\"config.openExternalSystemTooltip\"\n (click)=\"openExternalSystem.emit()\">\n <i kbq-icon=\"mc-external-link_16\"></i>\n</button>\n", styles: [".kbq-code-block-actionbar{display:flex;justify-content:right;align-items:center;position:absolute;top:0;right:0;padding:var(--kbq-code-block-size-actionbar-padding-vertical, 8px) var(--kbq-code-block-size-actionbar-padding-horizontal, 12px);gap:var(--kbq-code-block-size-actionbar-content-gap-horizontal, 2px)}.kbq-code-block-actionbar .kbq-code-block__fade-gradient{display:none;width:var(--kbq-code-block-size-actionbar-fade-gradient-width, 36px);height:40px;margin-top:calc(var(--kbq-code-block-size-actionbar-padding-vertical, 8px) * -1)}\n"] }]
53
53
  }], propDecorators: { copyTooltip: [{
54
54
  type: ViewChild,
55
55
  args: ['copyTooltip']
@@ -187,32 +187,33 @@ class KbqCodeBlockComponent {
187
187
  const extension = LANGUAGES_EXTENSIONS[codeFile.language] || DEFAULT_EXTENSION;
188
188
  return `${fileName}.${extension}`;
189
189
  }
190
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqCodeBlockComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.Clipboard }, { token: i0.Renderer2 }, { token: KBQ_CODE_BLOCK_CONFIGURATION, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
191
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: KbqCodeBlockComponent, selector: "kbq-code-block", inputs: { lineNumbers: "lineNumbers", codeFiles: "codeFiles", lessContrast: "lessContrast", maxHeight: "maxHeight", softWrap: "softWrap" }, host: { listeners: { "window:resize": "resizeStream.next($event)" }, properties: { "class.kbq-code-block_less-contrast": "lessContrast", "class.kbq-code-block_hide-line-numbers": "!lineNumbers", "class.kbq-code-block_single-file": "singleFile", "class.kbq-code-block_no-header": "noHeader" }, classAttribute: "kbq-code-block" }, viewQueries: [{ propertyName: "tabGroup", first: true, predicate: KbqTabGroup, descendants: true }], exportAs: ["kbqCodeBlock"], ngImport: i0, template: "<kbq-tab-group (selectedTabChange)=\"onSelectTab($event)\">\n <kbq-tab\n *ngFor=\"let codeFile of codeFiles; let i = index\"\n [disabled]=\"singleFile\">\n\n <ng-template kbq-tab-label>{{ codeFile.filename }}</ng-template>\n\n <pre class=\"kbq-code-block__code kbq-scrollbar\"\n #codeContent\n [style.max-height]=\"getMaxHeight()\"\n [class.kbq-code-block__code_soft-wrap]=\"softWrap\"\n [class.kbq-code-block__code_view-all]=\"viewAll\"\n ><code class=\"hljs\"\n [id]=\"codeFile.filename + '_' + i\"\n [class.hljs-line-numbers]=\"lineNumbers\"\n [highlight]=\"codeFiles[i].content\"\n [lineNumbers]=\"true\"\n (highlighted)=\"onHighlighted()\">\n </code><kbq-actionbar-block\n [class.kbq-actionbar-block_floating]=\"noHeader\"\n [config]=\"config\"\n [codeFiles]=\"codeFiles\"\n [selectedTabIndex]=\"selectedTabIndex\"\n [lessContrast]=\"lessContrast\"\n [multiLine]=\"multiLine\"\n [softWrap]=\"softWrap\"\n (toggleSoftWrap)=\"toggleSoftWrap()\"\n (downloadCode)=\"downloadCode()\"\n (copyCode)=\"copyCode()\"\n (openExternalSystem)=\"openExternalSystem()\">\n </kbq-actionbar-block></pre>\n\n <button\n class=\"kbq-button_transparent kbq-code-block__show-more\"\n kbq-button\n *ngIf=\"viewAll || codeContent.offsetHeight < codeContent.scrollHeight\"\n (click)=\"toggleViewAll()\">\n\n {{ viewAll ? config.viewLessText : config.viewAllText}}\n <i class=\"mc mc-angle-down-S_16\" *ngIf=\"!viewAll\"></i>\n <i class=\"mc kbq-angle-up-S_16\" *ngIf=\"viewAll\"></i>\n </button>\n </kbq-tab>\n</kbq-tab-group>\n", styles: [".kbq-code-block{display:block;position:relative;box-sizing:border-box;hyphens:none;-ms-hyphens:none;-moz-hyphens:none;-webkit-hyphens:none;border-width:1px;border-style:solid;border-radius:8px}.kbq-code-block:not(.kbq-code-block_no-header) .kbq-tab-group:after{content:\"\";position:absolute;top:39px;left:0;right:0;height:1px}.kbq-code-block .kbq-tab-header{margin-right:152px}.kbq-code-block.kbq-code-block_hide-line-numbers .hljs-ln-line.hljs-ln-numbers{display:none}.kbq-code-block.kbq-code-block_single-file .kbq-tab-label:before{content:none}.kbq-code-block.kbq-code-block_single-file .kbq-tab-label:hover{background:transparent!important}.kbq-code-block.kbq-code-block_no-header .kbq-code-block__code{position:relative}.kbq-code-block.kbq-code-block_no-header .kbq-tab-header{display:none}.kbq-code-block pre{margin:0}.kbq-code-block .kbq-tab-body__wrapper{flex-direction:column;position:unset}.kbq-code-block .kbq-tab-body.kbq-tab-body__active{position:unset}.kbq-code-block__code{overflow-y:hidden}.kbq-code-block__code.kbq-code-block__code_view-all{max-height:unset;overflow-y:unset}.kbq-code-block__code.kbq-code-block__code_soft-wrap{white-space:pre-wrap}.kbq-code-block__code>code{padding:12px!important}.kbq-code-block__code .hljs-ln{border-collapse:unset}.kbq-code-block__code .hljs-ln .hljs{padding:0}.kbq-code-block__code .hljs-ln-numbers{border-right-width:0;padding:2px 12px 0 0;vertical-align:baseline;text-align:right}.kbq-code-block__code .hljs-ln-n:before{white-space:nowrap}.kbq-code-block__show-more{overflow:hidden;width:100%;border-top-style:solid!important;border-top-width:1px!important;border-top-left-radius:0!important;border-top-right-radius:0!important}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.KbqButton, selector: "[kbq-button]", inputs: ["color", "tabIndex", "kbqStyle", "disabled"] }, { kind: "directive", type: i2$1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "directive", type: i4$1.Highlight, selector: "[highlight]", inputs: ["highlight", "languages", "lineNumbers"], outputs: ["highlighted"] }, { kind: "component", type: i5.KbqTabGroup, selector: "kbq-tab-group", inputs: ["disabled", "transparent", "onSurface", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["kbqTabGroup"] }, { kind: "directive", type: i5.KbqTabLabel, selector: "[kbq-tab-label], [kbqTabLabel]" }, { kind: "component", type: i5.KbqTab, selector: "kbq-tab", inputs: ["disabled", "tooltipTitle", "tooltipPlacement", "label", "empty", "tabId"], exportAs: ["kbqTab"] }, { kind: "component", type: KbqActionBarComponent, selector: "kbq-actionbar-block", inputs: ["config", "codeFiles", "lessContrast", "selectedTabIndex", "multiLine", "softWrap"], outputs: ["toggleSoftWrap", "downloadCode", "copyCode", "openExternalSystem"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
190
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqCodeBlockComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.Clipboard }, { token: i0.Renderer2 }, { token: KBQ_CODE_BLOCK_CONFIGURATION, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
191
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.0", type: KbqCodeBlockComponent, selector: "kbq-code-block", inputs: { lineNumbers: "lineNumbers", codeFiles: "codeFiles", filled: "filled", maxHeight: "maxHeight", softWrap: "softWrap" }, host: { listeners: { "window:resize": "resizeStream.next($event)" }, properties: { "class.kbq-code-block_filled": "filled", "class.kbq-code-block_outline": "!filled", "class.kbq-code-block_hide-line-numbers": "!lineNumbers", "class.kbq-code-block_single-file": "singleFile", "class.kbq-code-block_no-header": "noHeader" }, classAttribute: "kbq-code-block" }, viewQueries: [{ propertyName: "tabGroup", first: true, predicate: KbqTabGroup, descendants: true }], exportAs: ["kbqCodeBlock"], ngImport: i0, template: "<kbq-tab-group (selectedTabChange)=\"onSelectTab($event)\">\n <kbq-tab\n *ngFor=\"let codeFile of codeFiles; let i = index\"\n [disabled]=\"singleFile\">\n\n <ng-template kbq-tab-label>{{ codeFile.filename }}</ng-template>\n\n <pre class=\"kbq-code-block__code kbq-scrollbar\"\n #codeContent\n [style.max-height]=\"getMaxHeight()\"\n [class.kbq-code-block__code_soft-wrap]=\"softWrap\"\n [class.kbq-code-block__code_view-all]=\"viewAll\"\n ><code class=\"hljs\"\n [id]=\"codeFile.filename + '_' + i\"\n [class.hljs-line-numbers]=\"lineNumbers\"\n [highlight]=\"codeFiles[i].content\"\n [lineNumbers]=\"true\"\n (highlighted)=\"onHighlighted()\">\n </code><kbq-actionbar-block\n [class.kbq-actionbar-block_floating]=\"noHeader\"\n [config]=\"config\"\n [codeFiles]=\"codeFiles\"\n [selectedTabIndex]=\"selectedTabIndex\"\n [lessContrast]=\"filled\"\n [multiLine]=\"multiLine\"\n [softWrap]=\"softWrap\"\n (toggleSoftWrap)=\"toggleSoftWrap()\"\n (downloadCode)=\"downloadCode()\"\n (copyCode)=\"copyCode()\"\n (openExternalSystem)=\"openExternalSystem()\">\n </kbq-actionbar-block></pre>\n\n <div class=\"kbq-code-block__show-more\"\n *ngIf=\"viewAll || codeContent.offsetHeight < codeContent.scrollHeight\"\n [class.kbq-code-block__show-more_expanded]=\"viewAll\"\n [class.kbq-code-block__show-more_collapsed]=\"!viewAll\">\n <button\n [color]=\"'theme'\"\n [kbqStyle]=\"'transparent'\"\n kbq-button\n (click)=\"toggleViewAll()\">\n <i kbq-icon=\"mc-angle-down-L_16\" *ngIf=\"!viewAll\"></i>\n <i kbq-icon=\"mc-angle-up-L_16\" *ngIf=\"viewAll\"></i>\n {{ viewAll ? config.viewLessText : config.viewAllText}}\n </button>\n </div>\n </kbq-tab>\n</kbq-tab-group>\n", styles: [".kbq-code-block{display:block;position:relative;overflow:hidden;box-sizing:border-box;hyphens:none;-ms-hyphens:none;-moz-hyphens:none;-webkit-hyphens:none;border-width:var(--kbq-code-block-size-container-border-width, 1px);border-style:solid;border-radius:var(--kbq-code-block-size-container-border-radius, 12px)}.kbq-code-block .kbq-tab-header{margin-right:152px;padding:var(--kbq-code-block-size-header-padding-vertical, 8px) var(--kbq-code-block-size-header-padding-right, 8px) var(--kbq-code-block-size-header-padding-vertical, 8px) var(--kbq-code-block-size-header-padding-left, 12px)}.kbq-code-block .kbq-code-block__code>code{padding:var(--kbq-code-block-size-with-header-content-padding-top, 4px) var(--kbq-code-block-size-with-header-content-padding-horizontal, 20px) var(--kbq-code-block-size-with-header-content-padding-bottom, 16px) var(--kbq-code-block-size-with-header-content-padding-horizontal, 20px)}.kbq-code-block .kbq-code-block__code .hljs-ln-numbers{padding-right:var(--kbq-code-block-size-with-header-content-content-gap-horizontal, 12px)}.kbq-code-block.kbq-code-block_hide-line-numbers .hljs-ln-line.hljs-ln-numbers{display:none}.kbq-code-block.kbq-code-block_single-file .kbq-tab-label:before{content:none}.kbq-code-block.kbq-code-block_single-file .kbq-tab-label:hover{background:transparent!important}.kbq-code-block.kbq-code-block_no-header .kbq-tab-header{display:none}.kbq-code-block.kbq-code-block_no-header .kbq-code-block__code{position:relative}.kbq-code-block.kbq-code-block_no-header .kbq-code-block__code>code{padding:var(--kbq-code-block-size-no-header-content-padding-vertical, 14px) var(--kbq-code-block-size-no-header-content-padding-horizontal, 20px)}.kbq-code-block.kbq-code-block_no-header .kbq-code-block__code .hljs-ln-numbers{padding-right:var(--kbq-code-block-size-no-header-content-content-gap-horizontal, 12px)}.kbq-code-block pre{margin:0}.kbq-code-block .kbq-tab-body__wrapper{flex-direction:column;position:unset}.kbq-code-block .kbq-tab-body.kbq-tab-body__active{position:unset}.kbq-code-block__code{overflow-y:hidden}.kbq-code-block__code.kbq-code-block__code_view-all{max-height:unset;overflow-y:unset}.kbq-code-block__code.kbq-code-block__code_soft-wrap{white-space:pre-wrap}.kbq-code-block__code .hljs-ln{border-collapse:unset}.kbq-code-block__code .hljs-ln .hljs{padding:0}.kbq-code-block__code .hljs-ln-numbers{vertical-align:baseline;text-align:right}.kbq-code-block__code .hljs-ln-n:before{white-space:nowrap}.kbq-code-block__show-more{display:flex;justify-content:center;overflow:hidden;width:100%;position:absolute;bottom:0}.kbq-code-block__show-more.kbq-code-block__show-more_collapsed{padding-top:var(--kbq-code-block-size-collapse-collapsed-padding-top, 32px);padding-bottom:var(--kbq-code-block-size-collapse-collapsed-padding-bottom, 16px)}.kbq-code-block__show-more.kbq-code-block__show-more_expanded{padding-top:var(--kbq-code-block-size-collapse-expanded-padding-top, 0);margin-bottom:var(--kbq-code-block-size-collapse-expanded-padding-bottom, 16px)}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.KbqButton, selector: "[kbq-button]", inputs: ["color", "tabIndex", "kbqStyle", "disabled"] }, { kind: "directive", type: i2$1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "component", type: i4.KbqIcon, selector: "[kbq-icon]", inputs: ["color", "small", "autoColor"] }, { kind: "directive", type: i5.Highlight, selector: "[highlight]", inputs: ["highlight", "languages", "lineNumbers"], outputs: ["highlighted"] }, { kind: "component", type: i6.KbqTabGroup, selector: "kbq-tab-group", inputs: ["disabled", "transparent", "onSurface", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["kbqTabGroup"] }, { kind: "directive", type: i6.KbqTabLabel, selector: "[kbq-tab-label], [kbqTabLabel]" }, { kind: "component", type: i6.KbqTab, selector: "kbq-tab", inputs: ["disabled", "tooltipTitle", "tooltipPlacement", "label", "empty", "tabId"], exportAs: ["kbqTab"] }, { kind: "component", type: KbqActionBarComponent, selector: "kbq-actionbar-block", inputs: ["config", "codeFiles", "lessContrast", "selectedTabIndex", "multiLine", "softWrap"], outputs: ["toggleSoftWrap", "downloadCode", "copyCode", "openExternalSystem"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
192
192
  }
193
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqCodeBlockComponent, decorators: [{
193
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqCodeBlockComponent, decorators: [{
194
194
  type: Component,
195
195
  args: [{ selector: 'kbq-code-block', exportAs: 'kbqCodeBlock', host: {
196
196
  class: 'kbq-code-block',
197
- '[class.kbq-code-block_less-contrast]': 'lessContrast',
197
+ '[class.kbq-code-block_filled]': 'filled',
198
+ '[class.kbq-code-block_outline]': '!filled',
198
199
  '[class.kbq-code-block_hide-line-numbers]': '!lineNumbers',
199
200
  '[class.kbq-code-block_single-file]': 'singleFile',
200
201
  '[class.kbq-code-block_no-header]': 'noHeader',
201
202
  '(window:resize)': 'resizeStream.next($event)'
202
- }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<kbq-tab-group (selectedTabChange)=\"onSelectTab($event)\">\n <kbq-tab\n *ngFor=\"let codeFile of codeFiles; let i = index\"\n [disabled]=\"singleFile\">\n\n <ng-template kbq-tab-label>{{ codeFile.filename }}</ng-template>\n\n <pre class=\"kbq-code-block__code kbq-scrollbar\"\n #codeContent\n [style.max-height]=\"getMaxHeight()\"\n [class.kbq-code-block__code_soft-wrap]=\"softWrap\"\n [class.kbq-code-block__code_view-all]=\"viewAll\"\n ><code class=\"hljs\"\n [id]=\"codeFile.filename + '_' + i\"\n [class.hljs-line-numbers]=\"lineNumbers\"\n [highlight]=\"codeFiles[i].content\"\n [lineNumbers]=\"true\"\n (highlighted)=\"onHighlighted()\">\n </code><kbq-actionbar-block\n [class.kbq-actionbar-block_floating]=\"noHeader\"\n [config]=\"config\"\n [codeFiles]=\"codeFiles\"\n [selectedTabIndex]=\"selectedTabIndex\"\n [lessContrast]=\"lessContrast\"\n [multiLine]=\"multiLine\"\n [softWrap]=\"softWrap\"\n (toggleSoftWrap)=\"toggleSoftWrap()\"\n (downloadCode)=\"downloadCode()\"\n (copyCode)=\"copyCode()\"\n (openExternalSystem)=\"openExternalSystem()\">\n </kbq-actionbar-block></pre>\n\n <button\n class=\"kbq-button_transparent kbq-code-block__show-more\"\n kbq-button\n *ngIf=\"viewAll || codeContent.offsetHeight < codeContent.scrollHeight\"\n (click)=\"toggleViewAll()\">\n\n {{ viewAll ? config.viewLessText : config.viewAllText}}\n <i class=\"mc mc-angle-down-S_16\" *ngIf=\"!viewAll\"></i>\n <i class=\"mc kbq-angle-up-S_16\" *ngIf=\"viewAll\"></i>\n </button>\n </kbq-tab>\n</kbq-tab-group>\n", styles: [".kbq-code-block{display:block;position:relative;box-sizing:border-box;hyphens:none;-ms-hyphens:none;-moz-hyphens:none;-webkit-hyphens:none;border-width:1px;border-style:solid;border-radius:8px}.kbq-code-block:not(.kbq-code-block_no-header) .kbq-tab-group:after{content:\"\";position:absolute;top:39px;left:0;right:0;height:1px}.kbq-code-block .kbq-tab-header{margin-right:152px}.kbq-code-block.kbq-code-block_hide-line-numbers .hljs-ln-line.hljs-ln-numbers{display:none}.kbq-code-block.kbq-code-block_single-file .kbq-tab-label:before{content:none}.kbq-code-block.kbq-code-block_single-file .kbq-tab-label:hover{background:transparent!important}.kbq-code-block.kbq-code-block_no-header .kbq-code-block__code{position:relative}.kbq-code-block.kbq-code-block_no-header .kbq-tab-header{display:none}.kbq-code-block pre{margin:0}.kbq-code-block .kbq-tab-body__wrapper{flex-direction:column;position:unset}.kbq-code-block .kbq-tab-body.kbq-tab-body__active{position:unset}.kbq-code-block__code{overflow-y:hidden}.kbq-code-block__code.kbq-code-block__code_view-all{max-height:unset;overflow-y:unset}.kbq-code-block__code.kbq-code-block__code_soft-wrap{white-space:pre-wrap}.kbq-code-block__code>code{padding:12px!important}.kbq-code-block__code .hljs-ln{border-collapse:unset}.kbq-code-block__code .hljs-ln .hljs{padding:0}.kbq-code-block__code .hljs-ln-numbers{border-right-width:0;padding:2px 12px 0 0;vertical-align:baseline;text-align:right}.kbq-code-block__code .hljs-ln-n:before{white-space:nowrap}.kbq-code-block__show-more{overflow:hidden;width:100%;border-top-style:solid!important;border-top-width:1px!important;border-top-left-radius:0!important;border-top-right-radius:0!important}\n"] }]
203
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.Clipboard }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
203
+ }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<kbq-tab-group (selectedTabChange)=\"onSelectTab($event)\">\n <kbq-tab\n *ngFor=\"let codeFile of codeFiles; let i = index\"\n [disabled]=\"singleFile\">\n\n <ng-template kbq-tab-label>{{ codeFile.filename }}</ng-template>\n\n <pre class=\"kbq-code-block__code kbq-scrollbar\"\n #codeContent\n [style.max-height]=\"getMaxHeight()\"\n [class.kbq-code-block__code_soft-wrap]=\"softWrap\"\n [class.kbq-code-block__code_view-all]=\"viewAll\"\n ><code class=\"hljs\"\n [id]=\"codeFile.filename + '_' + i\"\n [class.hljs-line-numbers]=\"lineNumbers\"\n [highlight]=\"codeFiles[i].content\"\n [lineNumbers]=\"true\"\n (highlighted)=\"onHighlighted()\">\n </code><kbq-actionbar-block\n [class.kbq-actionbar-block_floating]=\"noHeader\"\n [config]=\"config\"\n [codeFiles]=\"codeFiles\"\n [selectedTabIndex]=\"selectedTabIndex\"\n [lessContrast]=\"filled\"\n [multiLine]=\"multiLine\"\n [softWrap]=\"softWrap\"\n (toggleSoftWrap)=\"toggleSoftWrap()\"\n (downloadCode)=\"downloadCode()\"\n (copyCode)=\"copyCode()\"\n (openExternalSystem)=\"openExternalSystem()\">\n </kbq-actionbar-block></pre>\n\n <div class=\"kbq-code-block__show-more\"\n *ngIf=\"viewAll || codeContent.offsetHeight < codeContent.scrollHeight\"\n [class.kbq-code-block__show-more_expanded]=\"viewAll\"\n [class.kbq-code-block__show-more_collapsed]=\"!viewAll\">\n <button\n [color]=\"'theme'\"\n [kbqStyle]=\"'transparent'\"\n kbq-button\n (click)=\"toggleViewAll()\">\n <i kbq-icon=\"mc-angle-down-L_16\" *ngIf=\"!viewAll\"></i>\n <i kbq-icon=\"mc-angle-up-L_16\" *ngIf=\"viewAll\"></i>\n {{ viewAll ? config.viewLessText : config.viewAllText}}\n </button>\n </div>\n </kbq-tab>\n</kbq-tab-group>\n", styles: [".kbq-code-block{display:block;position:relative;overflow:hidden;box-sizing:border-box;hyphens:none;-ms-hyphens:none;-moz-hyphens:none;-webkit-hyphens:none;border-width:var(--kbq-code-block-size-container-border-width, 1px);border-style:solid;border-radius:var(--kbq-code-block-size-container-border-radius, 12px)}.kbq-code-block .kbq-tab-header{margin-right:152px;padding:var(--kbq-code-block-size-header-padding-vertical, 8px) var(--kbq-code-block-size-header-padding-right, 8px) var(--kbq-code-block-size-header-padding-vertical, 8px) var(--kbq-code-block-size-header-padding-left, 12px)}.kbq-code-block .kbq-code-block__code>code{padding:var(--kbq-code-block-size-with-header-content-padding-top, 4px) var(--kbq-code-block-size-with-header-content-padding-horizontal, 20px) var(--kbq-code-block-size-with-header-content-padding-bottom, 16px) var(--kbq-code-block-size-with-header-content-padding-horizontal, 20px)}.kbq-code-block .kbq-code-block__code .hljs-ln-numbers{padding-right:var(--kbq-code-block-size-with-header-content-content-gap-horizontal, 12px)}.kbq-code-block.kbq-code-block_hide-line-numbers .hljs-ln-line.hljs-ln-numbers{display:none}.kbq-code-block.kbq-code-block_single-file .kbq-tab-label:before{content:none}.kbq-code-block.kbq-code-block_single-file .kbq-tab-label:hover{background:transparent!important}.kbq-code-block.kbq-code-block_no-header .kbq-tab-header{display:none}.kbq-code-block.kbq-code-block_no-header .kbq-code-block__code{position:relative}.kbq-code-block.kbq-code-block_no-header .kbq-code-block__code>code{padding:var(--kbq-code-block-size-no-header-content-padding-vertical, 14px) var(--kbq-code-block-size-no-header-content-padding-horizontal, 20px)}.kbq-code-block.kbq-code-block_no-header .kbq-code-block__code .hljs-ln-numbers{padding-right:var(--kbq-code-block-size-no-header-content-content-gap-horizontal, 12px)}.kbq-code-block pre{margin:0}.kbq-code-block .kbq-tab-body__wrapper{flex-direction:column;position:unset}.kbq-code-block .kbq-tab-body.kbq-tab-body__active{position:unset}.kbq-code-block__code{overflow-y:hidden}.kbq-code-block__code.kbq-code-block__code_view-all{max-height:unset;overflow-y:unset}.kbq-code-block__code.kbq-code-block__code_soft-wrap{white-space:pre-wrap}.kbq-code-block__code .hljs-ln{border-collapse:unset}.kbq-code-block__code .hljs-ln .hljs{padding:0}.kbq-code-block__code .hljs-ln-numbers{vertical-align:baseline;text-align:right}.kbq-code-block__code .hljs-ln-n:before{white-space:nowrap}.kbq-code-block__show-more{display:flex;justify-content:center;overflow:hidden;width:100%;position:absolute;bottom:0}.kbq-code-block__show-more.kbq-code-block__show-more_collapsed{padding-top:var(--kbq-code-block-size-collapse-collapsed-padding-top, 32px);padding-bottom:var(--kbq-code-block-size-collapse-collapsed-padding-bottom, 16px)}.kbq-code-block__show-more.kbq-code-block__show-more_expanded{padding-top:var(--kbq-code-block-size-collapse-expanded-padding-top, 0);margin-bottom:var(--kbq-code-block-size-collapse-expanded-padding-bottom, 16px)}\n"] }]
204
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.Clipboard }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
204
205
  type: Optional
205
206
  }, {
206
207
  type: Inject,
207
208
  args: [KBQ_CODE_BLOCK_CONFIGURATION]
208
- }] }]; }, propDecorators: { tabGroup: [{
209
+ }] }], propDecorators: { tabGroup: [{
209
210
  type: ViewChild,
210
211
  args: [KbqTabGroup]
211
212
  }], lineNumbers: [{
212
213
  type: Input
213
214
  }], codeFiles: [{
214
215
  type: Input
215
- }], lessContrast: [{
216
+ }], filled: [{
216
217
  type: Input
217
218
  }], maxHeight: [{
218
219
  type: Input
@@ -221,19 +222,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
221
222
  }] } });
222
223
 
223
224
  class KbqCodeBlockModule {
224
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqCodeBlockModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
225
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.5", ngImport: i0, type: KbqCodeBlockModule, declarations: [KbqCodeBlockComponent,
225
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqCodeBlockModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
226
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.2.0", ngImport: i0, type: KbqCodeBlockModule, declarations: [KbqCodeBlockComponent,
226
227
  KbqActionBarComponent], imports: [CommonModule,
227
228
  KbqButtonModule,
228
229
  KbqToolTipModule,
229
230
  KbqIconModule,
230
231
  HighlightModule,
231
232
  KbqTabsModule], exports: [KbqCodeBlockComponent] }); }
232
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqCodeBlockModule, providers: [{
233
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqCodeBlockModule, providers: [{
233
234
  provide: HIGHLIGHT_OPTIONS,
234
235
  useValue: {
235
236
  fullLibraryLoader: (() => import('highlight.js')),
236
- lineNumbersLoader: (() => import('highlightjs-line-numbers.js')),
237
+ lineNumbersLoader: (() => import('ngx-highlightjs/line-numbers')),
237
238
  lineNumbers: true
238
239
  }
239
240
  }], imports: [CommonModule,
@@ -243,7 +244,7 @@ class KbqCodeBlockModule {
243
244
  HighlightModule,
244
245
  KbqTabsModule] }); }
245
246
  }
246
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqCodeBlockModule, decorators: [{
247
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: KbqCodeBlockModule, decorators: [{
247
248
  type: NgModule,
248
249
  args: [{
249
250
  imports: [
@@ -253,7 +254,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
253
254
  KbqIconModule,
254
255
  HighlightModule,
255
256
  KbqTabsModule
256
- ],
257
+ ], // , I18nModule
257
258
  declarations: [
258
259
  KbqCodeBlockComponent,
259
260
  KbqActionBarComponent
@@ -262,7 +263,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
262
263
  provide: HIGHLIGHT_OPTIONS,
263
264
  useValue: {
264
265
  fullLibraryLoader: (() => import('highlight.js')),
265
- lineNumbersLoader: (() => import('highlightjs-line-numbers.js')),
266
+ lineNumbersLoader: (() => import('ngx-highlightjs/line-numbers')),
266
267
  lineNumbers: true
267
268
  }
268
269
  }],
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-code-block.mjs","sources":["../../../packages/components/code-block/actionbar.component.ts","../../../packages/components/code-block/actionbar.component.html","../../../packages/components/code-block/code-block.component.ts","../../../packages/components/code-block/code-block.component.html","../../../packages/components/code-block/code-block.module.ts","../../../packages/components/code-block/koobiq-components-code-block.ts"],"sourcesContent":["import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { KbqTooltipTrigger } from '@koobiq/components/tooltip';\nimport { filter } from 'rxjs/operators';\n\nimport {\n KbqCodeBlockConfiguration,\n KbqCodeFile\n} from './code-block.types';\n\n\n@Component({\n selector: 'kbq-actionbar-block',\n templateUrl: './actionbar.component.html',\n styleUrls: ['./actionbar.component.scss'],\n host: {\n class: 'kbq-code-block-actionbar',\n '[class.kbq-code-block-actionbar_less-contrast]': 'lessContrast'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqActionBarComponent implements AfterViewInit {\n @ViewChild('copyTooltip') copyTooltip: KbqTooltipTrigger;\n\n @Input() config: KbqCodeBlockConfiguration;\n @Input() codeFiles: KbqCodeFile[];\n @Input() lessContrast: boolean;\n @Input() selectedTabIndex = 0;\n @Input() multiLine: boolean;\n @Input() softWrap: boolean;\n\n @Output() toggleSoftWrap = new EventEmitter<void>();\n @Output() downloadCode = new EventEmitter<void>();\n @Output() copyCode = new EventEmitter<void>();\n @Output() openExternalSystem = new EventEmitter<void>();\n\n copyTooltipText: string;\n\n ngAfterViewInit(): void {\n this.copyTooltipText = this.config.copyTooltip;\n\n this.copyTooltip.visibleChange\n .pipe(filter((state) => !state))\n .subscribe(() => {\n if (this.copyTooltipText === this.config.copiedTooltip) {\n this.copyTooltipText = this.config.copyTooltip;\n }\n });\n }\n\n onCopy() {\n this.copyCode.emit();\n\n setTimeout(() => {\n this.copyTooltipText = this.config.copiedTooltip;\n this.copyTooltip.show();\n });\n }\n}\n","<button kbq-button\n class=\"kbq-button-icon kbq-button_transparent\"\n *ngIf=\"multiLine\"\n [kbqTooltip]=\"softWrap ? config.softWrapOffTooltip : config.softWrapOnTooltip\"\n (click)=\"toggleSoftWrap.emit()\">\n <i *ngIf=\"!softWrap\" kbq-icon=\"mc-word-wrap_16\"></i>\n <i *ngIf=\"softWrap\" kbq-icon=\"mc-word-wrap-slash_16\"></i>\n</button>\n\n<button kbq-button\n class=\"kbq-button_transparent\"\n [kbqTooltip]=\"config.downloadTooltip\"\n (click)=\"downloadCode.emit()\">\n <i kbq-icon=\"mc-download_16\"></i>\n</button>\n\n<button kbq-button\n class=\"kbq-button_transparent\"\n #copyTooltip=\"kbqTooltip\"\n [kbqTooltip]=\"copyTooltipText\"\n (click)=\"onCopy()\">\n <i kbq-icon=\"mc-copy-o_16\"></i>\n</button>\n\n<button kbq-button\n class=\"kbq-button_transparent\"\n *ngIf=\"codeFiles[selectedTabIndex].link\"\n [kbqTooltip]=\"config.openExternalSystemTooltip\"\n (click)=\"openExternalSystem.emit()\">\n <i kbq-icon=\"mc-external-link_16\"></i>\n</button>\n","import { Clipboard } from '@angular/cdk/clipboard';\nimport {\n Component,\n ViewEncapsulation,\n Input,\n Inject,\n InjectionToken,\n ChangeDetectionStrategy,\n Optional,\n ElementRef,\n ChangeDetectorRef,\n OnDestroy,\n ViewChild,\n Renderer2\n} from '@angular/core';\nimport { KbqTabChangeEvent, KbqTabGroup } from '@koobiq/components/tabs';\nimport { Subject, Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\nimport {\n KbqCodeBlockConfiguration,\n KbqCodeFile\n} from './code-block.types';\n\n\nexport const COPIED_MESSAGE_TOOLTIP_TIMEOUT = 100;\nexport const DEFAULT_EXTENSION = 'txt';\nexport const LANGUAGES_EXTENSIONS = {\n html: 'html',\n css: 'css',\n php: 'php',\n java: 'java',\n bash: 'sh',\n javascript: 'js',\n typescript: 'ts',\n python: 'py',\n ruby: 'rb',\n c: 'c',\n 'c++': 'cpp',\n 'c#': 'cs',\n csharp: 'cs',\n lua: 'lua',\n xml: 'xml',\n json: 'json'\n};\n\nexport const KBQ_CODE_BLOCK_CONFIGURATION = new InjectionToken<any>('KbqCodeBlockConfiguration');\n\nexport const KBQ_CODE_BLOCK_DEFAULT_CONFIGURATION = {\n softWrapOnTooltip: 'Включить перенос по словам',\n softWrapOffTooltip: 'Выключить перенос по словам',\n downloadTooltip: 'Скачать',\n copiedTooltip: '✓ Скопировано',\n copyTooltip: 'Скопировать',\n viewAllText: 'Показать все',\n viewLessText: 'Свернуть',\n openExternalSystemTooltip: 'Открыть во внешней системе'\n};\n\n\nconst actionBarBlockLeftMargin = 24;\n\n@Component({\n selector: 'kbq-code-block',\n exportAs: 'kbqCodeBlock',\n templateUrl: './code-block.component.html',\n styleUrls: ['./code-block.scss'],\n host: {\n class: 'kbq-code-block',\n '[class.kbq-code-block_less-contrast]': 'lessContrast',\n '[class.kbq-code-block_hide-line-numbers]': '!lineNumbers',\n '[class.kbq-code-block_single-file]': 'singleFile',\n '[class.kbq-code-block_no-header]': 'noHeader',\n '(window:resize)': 'resizeStream.next($event)'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class KbqCodeBlockComponent implements OnDestroy {\n\n @ViewChild(KbqTabGroup) tabGroup: KbqTabGroup;\n\n @Input() lineNumbers = true;\n @Input() codeFiles: KbqCodeFile[];\n @Input() lessContrast: boolean;\n @Input() maxHeight: number;\n @Input() softWrap: boolean = false;\n\n get noHeader(): any {\n return this.codeFiles.length === 1 && !this.codeFiles[0].filename;\n }\n\n get singleFile(): boolean {\n return this.codeFiles.length === 1;\n }\n\n selectedTabIndex = 0;\n copied: boolean = false;\n viewAll: boolean = false;\n multiLine: boolean = false;\n\n readonly resizeStream = new Subject<Event>();\n\n private readonly resizeDebounceInterval: number = 100;\n private resizeSubscription = Subscription.EMPTY;\n\n constructor(\n private elementRef: ElementRef,\n private changeDetectorRef: ChangeDetectorRef,\n private clipboard: Clipboard,\n private renderer: Renderer2,\n @Optional() @Inject(KBQ_CODE_BLOCK_CONFIGURATION) public config: KbqCodeBlockConfiguration\n ) {\n this.config = config || KBQ_CODE_BLOCK_DEFAULT_CONFIGURATION;\n\n this.resizeSubscription = this.resizeStream\n .pipe(debounceTime(this.resizeDebounceInterval))\n .subscribe(this.updateHeader);\n }\n\n ngOnDestroy(): void {\n this.resizeSubscription.unsubscribe();\n }\n\n updateHeader = () => {\n const clientWidth: number = this.elementRef.nativeElement.querySelector('kbq-actionbar-block').clientWidth;\n\n this.renderer.setStyle(\n this.tabGroup.tabHeader.elementRef.nativeElement,\n 'margin-right',\n `${actionBarBlockLeftMargin + clientWidth}px`\n );\n\n this.changeDetectorRef.markForCheck();\n }\n\n toggleSoftWrap() {\n this.softWrap = !this.softWrap;\n }\n\n toggleViewAll() {\n this.viewAll = !this.viewAll;\n }\n\n downloadCode() {\n const codeFile = this.codeFiles[this.selectedTabIndex];\n const blob = new Blob([codeFile.content], { type: 'text/plain' });\n const url = window.URL.createObjectURL(blob);\n const link = document.createElement('a');\n\n link.setAttribute('href', url);\n link.setAttribute('download', `${this.getFullFileName(codeFile)}`);\n link.click();\n }\n\n copyCode() {\n this.clipboard.copy(this.codeFiles[this.selectedTabIndex].content);\n this.copied = true;\n }\n\n openExternalSystem() {\n const externalLink = this.codeFiles[this.selectedTabIndex].link;\n window.open(externalLink, '_blank');\n }\n\n onHighlighted() {\n setTimeout(this.updateMultiline, 1);\n }\n\n getMaxHeight(): string {\n return this.maxHeight > 0 && !this.viewAll ? `${this.maxHeight}px` : 'none';\n }\n\n onSelectTab($event: KbqTabChangeEvent) {\n this.selectedTabIndex = $event.index;\n this.updateMultiline();\n\n setTimeout(this.updateHeader);\n }\n\n private updateMultiline = () => {\n this.multiLine = this.elementRef.nativeElement\n .querySelectorAll('.hljs-ln-numbers').length > 1;\n\n this.updateHeader();\n\n this.changeDetectorRef.markForCheck();\n }\n\n private getFullFileName(codeFile: KbqCodeFile): string {\n const fileName = codeFile.filename || 'code';\n const extension = LANGUAGES_EXTENSIONS[codeFile.language] || DEFAULT_EXTENSION;\n\n return `${fileName}.${extension}`;\n }\n}\n","<kbq-tab-group (selectedTabChange)=\"onSelectTab($event)\">\n <kbq-tab\n *ngFor=\"let codeFile of codeFiles; let i = index\"\n [disabled]=\"singleFile\">\n\n <ng-template kbq-tab-label>{{ codeFile.filename }}</ng-template>\n\n <pre class=\"kbq-code-block__code kbq-scrollbar\"\n #codeContent\n [style.max-height]=\"getMaxHeight()\"\n [class.kbq-code-block__code_soft-wrap]=\"softWrap\"\n [class.kbq-code-block__code_view-all]=\"viewAll\"\n ><code class=\"hljs\"\n [id]=\"codeFile.filename + '_' + i\"\n [class.hljs-line-numbers]=\"lineNumbers\"\n [highlight]=\"codeFiles[i].content\"\n [lineNumbers]=\"true\"\n (highlighted)=\"onHighlighted()\">\n </code><kbq-actionbar-block\n [class.kbq-actionbar-block_floating]=\"noHeader\"\n [config]=\"config\"\n [codeFiles]=\"codeFiles\"\n [selectedTabIndex]=\"selectedTabIndex\"\n [lessContrast]=\"lessContrast\"\n [multiLine]=\"multiLine\"\n [softWrap]=\"softWrap\"\n (toggleSoftWrap)=\"toggleSoftWrap()\"\n (downloadCode)=\"downloadCode()\"\n (copyCode)=\"copyCode()\"\n (openExternalSystem)=\"openExternalSystem()\">\n </kbq-actionbar-block></pre>\n\n <button\n class=\"kbq-button_transparent kbq-code-block__show-more\"\n kbq-button\n *ngIf=\"viewAll || codeContent.offsetHeight < codeContent.scrollHeight\"\n (click)=\"toggleViewAll()\">\n\n {{ viewAll ? config.viewLessText : config.viewAllText}}\n <i class=\"mc mc-angle-down-S_16\" *ngIf=\"!viewAll\"></i>\n <i class=\"mc kbq-angle-up-S_16\" *ngIf=\"viewAll\"></i>\n </button>\n </kbq-tab>\n</kbq-tab-group>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { KbqButtonModule } from '@koobiq/components/button';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqTabsModule } from '@koobiq/components/tabs';\nimport { KbqToolTipModule } from '@koobiq/components/tooltip';\nimport { HIGHLIGHT_OPTIONS, HighlightModule } from 'ngx-highlightjs';\n\nimport { KbqActionBarComponent } from './actionbar.component';\nimport { KbqCodeBlockComponent } from './code-block.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n KbqButtonModule,\n KbqToolTipModule,\n KbqIconModule,\n HighlightModule,\n KbqTabsModule\n ], // , I18nModule\n declarations: [\n KbqCodeBlockComponent,\n KbqActionBarComponent\n ],\n providers: [{\n provide: HIGHLIGHT_OPTIONS,\n useValue: {\n fullLibraryLoader: () => import('highlight.js'),\n lineNumbersLoader: () => import('highlightjs-line-numbers.js'),\n lineNumbers: true\n }\n }],\n exports: [KbqCodeBlockComponent]\n})\nexport class KbqCodeBlockModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3","i4","i6.KbqActionBarComponent"],"mappings":"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"}
1
+ {"version":3,"file":"koobiq-components-code-block.mjs","sources":["../../../packages/components/code-block/actionbar.component.ts","../../../packages/components/code-block/actionbar.component.html","../../../packages/components/code-block/code-block.component.ts","../../../packages/components/code-block/code-block.component.html","../../../packages/components/code-block/code-block.module.ts","../../../packages/components/code-block/koobiq-components-code-block.ts"],"sourcesContent":["import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { KbqTooltipTrigger } from '@koobiq/components/tooltip';\nimport { filter } from 'rxjs/operators';\n\nimport {\n KbqCodeBlockConfiguration,\n KbqCodeFile\n} from './code-block.types';\n\n\n@Component({\n selector: 'kbq-actionbar-block',\n templateUrl: './actionbar.component.html',\n styleUrls: ['./actionbar.component.scss'],\n host: {\n class: 'kbq-code-block-actionbar',\n '[class.kbq-code-block-actionbar_less-contrast]': 'lessContrast'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqActionBarComponent implements AfterViewInit {\n @ViewChild('copyTooltip') copyTooltip: KbqTooltipTrigger;\n\n @Input() config: KbqCodeBlockConfiguration;\n @Input() codeFiles: KbqCodeFile[];\n @Input() lessContrast: boolean;\n @Input() selectedTabIndex = 0;\n @Input() multiLine: boolean;\n @Input() softWrap: boolean;\n\n @Output() toggleSoftWrap = new EventEmitter<void>();\n @Output() downloadCode = new EventEmitter<void>();\n @Output() copyCode = new EventEmitter<void>();\n @Output() openExternalSystem = new EventEmitter<void>();\n\n copyTooltipText: string;\n\n ngAfterViewInit(): void {\n this.copyTooltipText = this.config.copyTooltip;\n\n this.copyTooltip.visibleChange\n .pipe(filter((state) => !state))\n .subscribe(() => {\n if (this.copyTooltipText === this.config.copiedTooltip) {\n this.copyTooltipText = this.config.copyTooltip;\n }\n });\n }\n\n onCopy() {\n this.copyCode.emit();\n\n setTimeout(() => {\n this.copyTooltipText = this.config.copiedTooltip;\n this.copyTooltip.show();\n });\n }\n}\n","<div class=\"kbq-code-block__fade-gradient\"></div>\n\n<button kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n *ngIf=\"multiLine\"\n [kbqTooltip]=\"softWrap ? config.softWrapOffTooltip : config.softWrapOnTooltip\"\n (click)=\"toggleSoftWrap.emit()\">\n <i *ngIf=\"!softWrap\" kbq-icon=\"mc-word-wrap_16\"></i>\n <i *ngIf=\"softWrap\" kbq-icon=\"mc-word-wrap-slash_16\"></i>\n</button>\n\n<button kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [kbqTooltip]=\"config.downloadTooltip\"\n (click)=\"downloadCode.emit()\">\n <i kbq-icon=\"mc-download_16\"></i>\n</button>\n\n<button kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n #copyTooltip=\"kbqTooltip\"\n [kbqTooltip]=\"copyTooltipText\"\n (click)=\"onCopy()\">\n <i kbq-icon=\"mc-copy-o_16\"></i>\n</button>\n\n<button kbq-button\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n *ngIf=\"codeFiles[selectedTabIndex].link\"\n [kbqTooltip]=\"config.openExternalSystemTooltip\"\n (click)=\"openExternalSystem.emit()\">\n <i kbq-icon=\"mc-external-link_16\"></i>\n</button>\n","import { Clipboard } from '@angular/cdk/clipboard';\nimport {\n Component,\n ViewEncapsulation,\n Input,\n Inject,\n InjectionToken,\n ChangeDetectionStrategy,\n Optional,\n ElementRef,\n ChangeDetectorRef,\n OnDestroy,\n ViewChild,\n Renderer2\n} from '@angular/core';\nimport { KbqTabChangeEvent, KbqTabGroup } from '@koobiq/components/tabs';\nimport { Subject, Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\nimport {\n KbqCodeBlockConfiguration,\n KbqCodeFile\n} from './code-block.types';\n\n\nexport const COPIED_MESSAGE_TOOLTIP_TIMEOUT = 100;\nexport const DEFAULT_EXTENSION = 'txt';\nexport const LANGUAGES_EXTENSIONS = {\n html: 'html',\n css: 'css',\n php: 'php',\n java: 'java',\n bash: 'sh',\n javascript: 'js',\n typescript: 'ts',\n python: 'py',\n ruby: 'rb',\n c: 'c',\n 'c++': 'cpp',\n 'c#': 'cs',\n csharp: 'cs',\n lua: 'lua',\n xml: 'xml',\n json: 'json'\n};\n\nexport const KBQ_CODE_BLOCK_CONFIGURATION = new InjectionToken<any>('KbqCodeBlockConfiguration');\n\nexport const KBQ_CODE_BLOCK_DEFAULT_CONFIGURATION = {\n softWrapOnTooltip: 'Включить перенос по словам',\n softWrapOffTooltip: 'Выключить перенос по словам',\n downloadTooltip: 'Скачать',\n copiedTooltip: '✓ Скопировано',\n copyTooltip: 'Скопировать',\n viewAllText: 'Показать все',\n viewLessText: 'Свернуть',\n openExternalSystemTooltip: 'Открыть во внешней системе'\n};\n\n\nconst actionBarBlockLeftMargin = 24;\n\n@Component({\n selector: 'kbq-code-block',\n exportAs: 'kbqCodeBlock',\n templateUrl: './code-block.component.html',\n styleUrls: ['./code-block.scss'],\n host: {\n class: 'kbq-code-block',\n '[class.kbq-code-block_filled]': 'filled',\n '[class.kbq-code-block_outline]': '!filled',\n '[class.kbq-code-block_hide-line-numbers]': '!lineNumbers',\n '[class.kbq-code-block_single-file]': 'singleFile',\n '[class.kbq-code-block_no-header]': 'noHeader',\n '(window:resize)': 'resizeStream.next($event)'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class KbqCodeBlockComponent implements OnDestroy {\n\n @ViewChild(KbqTabGroup) tabGroup: KbqTabGroup;\n\n @Input() lineNumbers = true;\n @Input() codeFiles: KbqCodeFile[];\n @Input() filled: boolean;\n @Input() maxHeight: number;\n @Input() softWrap: boolean = false;\n\n get noHeader(): any {\n return this.codeFiles.length === 1 && !this.codeFiles[0].filename;\n }\n\n get singleFile(): boolean {\n return this.codeFiles.length === 1;\n }\n\n selectedTabIndex = 0;\n copied: boolean = false;\n viewAll: boolean = false;\n multiLine: boolean = false;\n\n readonly resizeStream = new Subject<Event>();\n\n private readonly resizeDebounceInterval: number = 100;\n private resizeSubscription = Subscription.EMPTY;\n\n constructor(\n private elementRef: ElementRef,\n private changeDetectorRef: ChangeDetectorRef,\n private clipboard: Clipboard,\n private renderer: Renderer2,\n @Optional() @Inject(KBQ_CODE_BLOCK_CONFIGURATION) public config: KbqCodeBlockConfiguration\n ) {\n this.config = config || KBQ_CODE_BLOCK_DEFAULT_CONFIGURATION;\n\n this.resizeSubscription = this.resizeStream\n .pipe(debounceTime(this.resizeDebounceInterval))\n .subscribe(this.updateHeader);\n }\n\n ngOnDestroy(): void {\n this.resizeSubscription.unsubscribe();\n }\n\n updateHeader = () => {\n const clientWidth: number = this.elementRef.nativeElement.querySelector('kbq-actionbar-block').clientWidth;\n\n this.renderer.setStyle(\n this.tabGroup.tabHeader.elementRef.nativeElement,\n 'margin-right',\n `${actionBarBlockLeftMargin + clientWidth}px`\n );\n\n this.changeDetectorRef.markForCheck();\n }\n\n toggleSoftWrap() {\n this.softWrap = !this.softWrap;\n }\n\n toggleViewAll() {\n this.viewAll = !this.viewAll;\n }\n\n downloadCode() {\n const codeFile = this.codeFiles[this.selectedTabIndex];\n const blob = new Blob([codeFile.content], { type: 'text/plain' });\n const url = window.URL.createObjectURL(blob);\n const link = document.createElement('a');\n\n link.setAttribute('href', url);\n link.setAttribute('download', `${this.getFullFileName(codeFile)}`);\n link.click();\n }\n\n copyCode() {\n this.clipboard.copy(this.codeFiles[this.selectedTabIndex].content);\n this.copied = true;\n }\n\n openExternalSystem() {\n const externalLink = this.codeFiles[this.selectedTabIndex].link;\n window.open(externalLink, '_blank');\n }\n\n onHighlighted() {\n setTimeout(this.updateMultiline, 1);\n }\n\n getMaxHeight(): string {\n return this.maxHeight > 0 && !this.viewAll ? `${this.maxHeight}px` : 'none';\n }\n\n onSelectTab($event: KbqTabChangeEvent) {\n this.selectedTabIndex = $event.index;\n this.updateMultiline();\n\n setTimeout(this.updateHeader);\n }\n\n private updateMultiline = () => {\n this.multiLine = this.elementRef.nativeElement\n .querySelectorAll('.hljs-ln-numbers').length > 1;\n\n this.updateHeader();\n\n this.changeDetectorRef.markForCheck();\n }\n\n private getFullFileName(codeFile: KbqCodeFile): string {\n const fileName = codeFile.filename || 'code';\n const extension = LANGUAGES_EXTENSIONS[codeFile.language] || DEFAULT_EXTENSION;\n\n return `${fileName}.${extension}`;\n }\n}\n","<kbq-tab-group (selectedTabChange)=\"onSelectTab($event)\">\n <kbq-tab\n *ngFor=\"let codeFile of codeFiles; let i = index\"\n [disabled]=\"singleFile\">\n\n <ng-template kbq-tab-label>{{ codeFile.filename }}</ng-template>\n\n <pre class=\"kbq-code-block__code kbq-scrollbar\"\n #codeContent\n [style.max-height]=\"getMaxHeight()\"\n [class.kbq-code-block__code_soft-wrap]=\"softWrap\"\n [class.kbq-code-block__code_view-all]=\"viewAll\"\n ><code class=\"hljs\"\n [id]=\"codeFile.filename + '_' + i\"\n [class.hljs-line-numbers]=\"lineNumbers\"\n [highlight]=\"codeFiles[i].content\"\n [lineNumbers]=\"true\"\n (highlighted)=\"onHighlighted()\">\n </code><kbq-actionbar-block\n [class.kbq-actionbar-block_floating]=\"noHeader\"\n [config]=\"config\"\n [codeFiles]=\"codeFiles\"\n [selectedTabIndex]=\"selectedTabIndex\"\n [lessContrast]=\"filled\"\n [multiLine]=\"multiLine\"\n [softWrap]=\"softWrap\"\n (toggleSoftWrap)=\"toggleSoftWrap()\"\n (downloadCode)=\"downloadCode()\"\n (copyCode)=\"copyCode()\"\n (openExternalSystem)=\"openExternalSystem()\">\n </kbq-actionbar-block></pre>\n\n <div class=\"kbq-code-block__show-more\"\n *ngIf=\"viewAll || codeContent.offsetHeight < codeContent.scrollHeight\"\n [class.kbq-code-block__show-more_expanded]=\"viewAll\"\n [class.kbq-code-block__show-more_collapsed]=\"!viewAll\">\n <button\n [color]=\"'theme'\"\n [kbqStyle]=\"'transparent'\"\n kbq-button\n (click)=\"toggleViewAll()\">\n <i kbq-icon=\"mc-angle-down-L_16\" *ngIf=\"!viewAll\"></i>\n <i kbq-icon=\"mc-angle-up-L_16\" *ngIf=\"viewAll\"></i>\n {{ viewAll ? config.viewLessText : config.viewAllText}}\n </button>\n </div>\n </kbq-tab>\n</kbq-tab-group>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { KbqButtonModule } from '@koobiq/components/button';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqTabsModule } from '@koobiq/components/tabs';\nimport { KbqToolTipModule } from '@koobiq/components/tooltip';\nimport { HIGHLIGHT_OPTIONS, HighlightModule } from 'ngx-highlightjs';\n\nimport { KbqActionBarComponent } from './actionbar.component';\nimport { KbqCodeBlockComponent } from './code-block.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n KbqButtonModule,\n KbqToolTipModule,\n KbqIconModule,\n HighlightModule,\n KbqTabsModule\n ], // , I18nModule\n declarations: [\n KbqCodeBlockComponent,\n KbqActionBarComponent\n ],\n providers: [{\n provide: HIGHLIGHT_OPTIONS,\n useValue: {\n fullLibraryLoader: () => import('highlight.js'),\n lineNumbersLoader: () => import('ngx-highlightjs/line-numbers'),\n lineNumbers: true\n }\n }],\n exports: [KbqCodeBlockComponent]\n})\nexport class KbqCodeBlockModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3","i7.KbqActionBarComponent"],"mappings":"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"}