@koobiq/components 17.0.0-beta.2 → 17.0.0-rc.10

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 (369) hide show
  1. package/README.md +1 -2
  2. package/alert/_alert-theme.scss +48 -24
  3. package/alert/alert.component.d.ts +23 -3
  4. package/alert/alert.component.scss +91 -59
  5. package/autocomplete/_autocomplete-theme.scss +3 -3
  6. package/autocomplete/autocomplete.scss +8 -18
  7. package/badge/_badge-theme.scss +30 -45
  8. package/badge/badge.component.scss +18 -39
  9. package/button/_button-base.scss +7 -14
  10. package/button/_button-theme.scss +30 -86
  11. package/button/button.component.d.ts +3 -2
  12. package/button/button.scss +7 -17
  13. package/button-toggle/_button-toggle-theme.scss +19 -20
  14. package/button-toggle/button-toggle.scss +17 -44
  15. package/card/_card-theme.scss +18 -17
  16. package/card/card.component.scss +3 -6
  17. package/checkbox/_checkbox-theme.scss +50 -50
  18. package/checkbox/checkbox.scss +31 -35
  19. package/code-block/README.md +18 -14
  20. package/code-block/_code-block-theme.scss +53 -23
  21. package/code-block/actionbar.component.scss +11 -25
  22. package/code-block/code-block.component.d.ts +12 -4
  23. package/code-block/code-block.scss +62 -77
  24. package/core/form-field/form-field-ref.d.ts +2 -0
  25. package/core/forms/_forms-theme.scss +4 -8
  26. package/core/forms/_forms.scss +13 -43
  27. package/core/locales/formatters.d.ts +96 -0
  28. package/core/locales/locale-service.d.ts +97 -0
  29. package/core/option/_optgroup-theme.scss +4 -6
  30. package/core/option/_option-action-theme.scss +8 -11
  31. package/core/option/_option-theme.scss +15 -20
  32. package/core/option/optgroup.scss +0 -1
  33. package/core/option/option.scss +0 -1
  34. package/core/pop-up/_pop-up.scss +0 -1
  35. package/core/pop-up/pop-up-trigger.d.ts +3 -1
  36. package/core/select/common.d.ts +35 -0
  37. package/core/select/index.d.ts +1 -0
  38. package/core/selection/pseudo-checkbox/_pseudo-checkbox-theme.scss +15 -19
  39. package/core/selection/pseudo-checkbox/pseudo-checkbox.scss +9 -9
  40. package/core/services/theme.service.d.ts +3 -2
  41. package/core/styles/_core.scss +0 -1
  42. package/core/styles/_koobiq-theme.scss +5 -3
  43. package/core/styles/common/_animation.scss +9 -8
  44. package/core/styles/common/_button.scss +0 -2
  45. package/core/styles/common/_clearfix.scss +1 -1
  46. package/core/styles/common/_groups.scss +3 -9
  47. package/core/styles/common/_list.scss +28 -31
  48. package/core/styles/common/_overlay.scss +4 -3
  49. package/core/styles/common/_popup.scss +5 -5
  50. package/core/styles/common/_rtl.scss +4 -4
  51. package/core/styles/common/_select.scss +48 -42
  52. package/core/styles/common/_tokens.scss +47 -0
  53. package/core/styles/functions/_number.scss +14 -19
  54. package/core/styles/functions/_string.scss +18 -19
  55. package/core/styles/functions/_timing.scss +24 -24
  56. package/core/styles/theming/_components-theming.scss +1380 -1384
  57. package/core/styles/theming/_scrollbar-theme.scss +8 -5
  58. package/core/styles/theming/_theming.scss +26 -29
  59. package/core/styles/typography/_typography-utils.scss +1 -2
  60. package/core/styles/typography/_typography.scss +138 -85
  61. package/core/styles/visual/_body.scss +0 -2
  62. package/core/styles/visual/_layout.scss +44 -38
  63. package/core/utils/data-size/config.d.ts +20 -2
  64. package/core/utils/data-size/data-size.pipe.d.ts +10 -9
  65. package/core/utils/data-size/size.d.ts +3 -4
  66. package/datepicker/_datepicker-theme.scss +38 -40
  67. package/datepicker/calendar-body.scss +3 -11
  68. package/datepicker/calendar-header.scss +4 -10
  69. package/datepicker/calendar.scss +5 -17
  70. package/datepicker/datepicker-content.scss +5 -15
  71. package/datepicker/datepicker-input.scss +0 -5
  72. package/datepicker/datepicker-toggle.scss +3 -3
  73. package/divider/_divider-theme.scss +2 -1
  74. package/divider/divider.scss +9 -26
  75. package/dl/_dl-theme.scss +5 -8
  76. package/dl/dl.scss +5 -20
  77. package/dropdown/_dropdown-theme.scss +27 -22
  78. package/dropdown/dropdown-item.scss +5 -12
  79. package/dropdown/dropdown-trigger.directive.d.ts +2 -2
  80. package/dropdown/dropdown.scss +6 -15
  81. package/ellipsis-center/ellipsis-center.directive.d.ts +3 -2
  82. package/empty-state/README.md +0 -0
  83. package/empty-state/_empty-state-theme.scss +56 -0
  84. package/empty-state/empty-state.component.d.ts +31 -0
  85. package/empty-state/empty-state.module.d.ts +10 -0
  86. package/empty-state/empty-state.scss +81 -0
  87. package/empty-state/index.d.ts +1 -0
  88. package/empty-state/public-api.d.ts +2 -0
  89. package/esm2022/alert/alert.component.mjs +52 -5
  90. package/esm2022/badge/badge.component.mjs +2 -2
  91. package/esm2022/button/button.component.mjs +13 -6
  92. package/esm2022/button-toggle/button-toggle.component.mjs +2 -2
  93. package/esm2022/checkbox/checkbox.mjs +2 -2
  94. package/esm2022/code-block/actionbar.component.mjs +2 -2
  95. package/esm2022/code-block/code-block.component.mjs +58 -14
  96. package/esm2022/core/animation/select-animations.mjs +4 -4
  97. package/esm2022/core/form-field/form-field-ref.mjs +1 -1
  98. package/esm2022/core/locales/formatters.mjs +97 -1
  99. package/esm2022/core/locales/locale-service.mjs +5 -2
  100. package/esm2022/core/option/option.mjs +2 -2
  101. package/esm2022/core/pop-up/pop-up-trigger.mjs +18 -11
  102. package/esm2022/core/select/common.mjs +120 -0
  103. package/esm2022/core/select/index.mjs +2 -1
  104. package/esm2022/core/services/theme.service.mjs +4 -1
  105. package/esm2022/core/utils/data-size/config.mjs +5 -17
  106. package/esm2022/core/utils/data-size/data-size.pipe.mjs +36 -22
  107. package/esm2022/core/utils/data-size/size.mjs +10 -14
  108. package/esm2022/core/version.mjs +2 -2
  109. package/esm2022/datepicker/calendar-header.component.mjs +1 -1
  110. package/esm2022/datepicker/datepicker-animations.mjs +2 -2
  111. package/esm2022/dropdown/dropdown-animations.mjs +4 -4
  112. package/esm2022/dropdown/dropdown-item.component.mjs +2 -2
  113. package/esm2022/dropdown/dropdown-trigger.directive.mjs +4 -4
  114. package/esm2022/ellipsis-center/ellipsis-center.directive.mjs +7 -5
  115. package/esm2022/empty-state/empty-state.component.mjs +104 -0
  116. package/esm2022/empty-state/empty-state.module.mjs +50 -0
  117. package/esm2022/empty-state/index.mjs +2 -0
  118. package/esm2022/empty-state/koobiq-components-empty-state.mjs +5 -0
  119. package/esm2022/empty-state/public-api.mjs +3 -0
  120. package/esm2022/file-upload/file-upload.mjs +15 -1
  121. package/esm2022/file-upload/file-upload.module.mjs +15 -5
  122. package/esm2022/file-upload/multiple-file-upload.component.mjs +98 -49
  123. package/esm2022/file-upload/single-file-upload.component.mjs +110 -54
  124. package/esm2022/form-field/form-field.mjs +2 -2
  125. package/esm2022/form-field/hint.mjs +2 -2
  126. package/esm2022/form-field/password-hint.mjs +2 -2
  127. package/esm2022/form-field/password-toggle.mjs +11 -9
  128. package/esm2022/icon/icon-item.component.mjs +16 -6
  129. package/esm2022/input/input-number.mjs +2 -2
  130. package/esm2022/list/list-selection.component.mjs +2 -2
  131. package/esm2022/list/list.component.mjs +2 -2
  132. package/esm2022/loader-overlay/loader-overlay.component.mjs +2 -2
  133. package/esm2022/markdown/markdown.component.mjs +2 -2
  134. package/esm2022/modal/modal.component.mjs +8 -9
  135. package/esm2022/navbar/navbar-item.component.mjs +11 -11
  136. package/esm2022/navbar/navbar.component.mjs +2 -2
  137. package/esm2022/navbar/vertical-navbar.component.mjs +2 -2
  138. package/esm2022/popover/popover-confirm.component.mjs +3 -3
  139. package/esm2022/popover/popover.component.mjs +3 -3
  140. package/esm2022/radio/radio.component.mjs +2 -2
  141. package/esm2022/scrollbar/scrollbar.component.mjs +2 -2
  142. package/esm2022/select/select-option.directive.mjs +7 -5
  143. package/esm2022/select/select.component.mjs +71 -125
  144. package/esm2022/select/select.module.mjs +28 -28
  145. package/esm2022/splitter/splitter.component.mjs +37 -17
  146. package/esm2022/table/table.component.mjs +29 -6
  147. package/esm2022/table/table.module.mjs +14 -6
  148. package/esm2022/tabs/tab-body.component.mjs +1 -1
  149. package/esm2022/tabs/tab-group.component.mjs +55 -13
  150. package/esm2022/tabs/tab-header.component.mjs +2 -2
  151. package/esm2022/tabs/tab-nav-bar/tab-nav-bar.mjs +2 -2
  152. package/esm2022/tags/tag-default-options.mjs +1 -1
  153. package/esm2022/tags/tag-input.mjs +17 -3
  154. package/esm2022/tags/tag-list.component.mjs +2 -2
  155. package/esm2022/tags/tag.component.mjs +4 -4
  156. package/esm2022/textarea/textarea.component.mjs +12 -10
  157. package/esm2022/timepicker/timepicker.directive.mjs +11 -3
  158. package/esm2022/timezone/timezone-option.component.mjs +2 -2
  159. package/esm2022/timezone/timezone-option.directive.mjs +7 -5
  160. package/esm2022/timezone/timezone-select.component.mjs +5 -5
  161. package/esm2022/title/title.directive.mjs +3 -4
  162. package/esm2022/toast/toast-container.component.mjs +2 -2
  163. package/esm2022/toast/toast.component.mjs +4 -4
  164. package/esm2022/toast/toast.service.mjs +18 -13
  165. package/esm2022/toast/toast.type.mjs +3 -1
  166. package/esm2022/tooltip/tooltip.component.mjs +28 -14
  167. package/esm2022/tree/padding.directive.mjs +2 -2
  168. package/esm2022/tree/tree-base.mjs +2 -2
  169. package/esm2022/tree/tree-option.component.mjs +2 -2
  170. package/esm2022/tree/tree-selection.component.mjs +6 -1
  171. package/esm2022/tree-select/tree-select.component.mjs +29 -44
  172. package/esm2022/tree-select/tree-select.module.mjs +31 -11
  173. package/fesm2022/koobiq-components-alert.mjs +52 -5
  174. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  175. package/fesm2022/koobiq-components-badge.mjs +2 -2
  176. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  177. package/fesm2022/koobiq-components-button-toggle.mjs +2 -2
  178. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  179. package/fesm2022/koobiq-components-button.mjs +12 -5
  180. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  181. package/fesm2022/koobiq-components-checkbox.mjs +2 -2
  182. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  183. package/fesm2022/koobiq-components-code-block.mjs +57 -14
  184. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  185. package/fesm2022/koobiq-components-core.mjs +285 -67
  186. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  187. package/fesm2022/koobiq-components-datepicker.mjs +2 -2
  188. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  189. package/fesm2022/koobiq-components-dropdown.mjs +8 -8
  190. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  191. package/fesm2022/koobiq-components-ellipsis-center.mjs +5 -4
  192. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
  193. package/fesm2022/koobiq-components-empty-state.mjs +157 -0
  194. package/fesm2022/koobiq-components-empty-state.mjs.map +1 -0
  195. package/fesm2022/koobiq-components-file-upload.mjs +225 -97
  196. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  197. package/fesm2022/koobiq-components-form-field.mjs +21 -21
  198. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  199. package/fesm2022/koobiq-components-icon.mjs +14 -4
  200. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  201. package/fesm2022/koobiq-components-input.mjs +1 -1
  202. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  203. package/fesm2022/koobiq-components-list.mjs +4 -4
  204. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  205. package/fesm2022/koobiq-components-loader-overlay.mjs +1 -1
  206. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  207. package/fesm2022/koobiq-components-markdown.mjs +2 -2
  208. package/fesm2022/koobiq-components-modal.mjs +7 -8
  209. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  210. package/fesm2022/koobiq-components-navbar.mjs +14 -14
  211. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  212. package/fesm2022/koobiq-components-popover.mjs +4 -4
  213. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  214. package/fesm2022/koobiq-components-radio.mjs +2 -2
  215. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  216. package/fesm2022/koobiq-components-scrollbar.mjs +2 -2
  217. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  218. package/fesm2022/koobiq-components-select.mjs +102 -155
  219. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  220. package/fesm2022/koobiq-components-splitter.mjs +36 -16
  221. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  222. package/fesm2022/koobiq-components-table.mjs +41 -10
  223. package/fesm2022/koobiq-components-table.mjs.map +1 -1
  224. package/fesm2022/koobiq-components-tabs.mjs +57 -15
  225. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  226. package/fesm2022/koobiq-components-tags.mjs +21 -8
  227. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  228. package/fesm2022/koobiq-components-textarea.mjs +11 -9
  229. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  230. package/fesm2022/koobiq-components-timepicker.mjs +10 -2
  231. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  232. package/fesm2022/koobiq-components-timezone.mjs +11 -10
  233. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  234. package/fesm2022/koobiq-components-title.mjs +2 -3
  235. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  236. package/fesm2022/koobiq-components-toast.mjs +25 -17
  237. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  238. package/fesm2022/koobiq-components-tooltip.mjs +26 -13
  239. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  240. package/fesm2022/koobiq-components-tree-select.mjs +57 -51
  241. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  242. package/fesm2022/koobiq-components-tree.mjs +9 -4
  243. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  244. package/file-upload/_file-upload-theme.scss +124 -73
  245. package/file-upload/file-upload.d.ts +1 -1
  246. package/file-upload/file-upload.module.d.ts +11 -9
  247. package/file-upload/file-upload.scss +0 -6
  248. package/file-upload/multiple-file-upload.component.d.ts +38 -10
  249. package/file-upload/multiple-file-upload.component.scss +50 -120
  250. package/file-upload/single-file-upload.component.d.ts +40 -13
  251. package/file-upload/single-file-upload.component.scss +12 -33
  252. package/form-field/_form-field-theme.scss +46 -36
  253. package/form-field/_hint-theme.scss +15 -20
  254. package/form-field/cleaner.scss +3 -9
  255. package/form-field/form-field.scss +23 -26
  256. package/form-field/hint.scss +5 -8
  257. package/form-field/password-toggle.d.ts +3 -2
  258. package/form-field/password-toggle.scss +3 -10
  259. package/form-field/stepper.scss +4 -11
  260. package/icon/_icon-button-theme.scss +47 -36
  261. package/icon/_icon-item-theme.scss +47 -26
  262. package/icon/_icon-theme.scss +12 -14
  263. package/icon/icon-button.scss +5 -20
  264. package/icon/icon-item.component.d.ts +3 -1
  265. package/icon/icon-item.scss +10 -8
  266. package/icon/icon.scss +0 -6
  267. package/input/_input-theme.scss +6 -4
  268. package/input/input.scss +11 -10
  269. package/link/_link-theme.scss +30 -49
  270. package/list/_list-theme.scss +21 -19
  271. package/list/list.scss +2 -6
  272. package/loader-overlay/_loader-overlay-theme.scss +17 -18
  273. package/loader-overlay/loader-overlay.scss +9 -33
  274. package/markdown/_markdown-theme.scss +47 -47
  275. package/markdown/markdown.scss +41 -91
  276. package/modal/README.md +5 -4
  277. package/modal/_modal-animation.scss +0 -1
  278. package/modal/_modal-confirm.scss +2 -7
  279. package/modal/_modal-theme.scss +11 -13
  280. package/modal/modal.component.d.ts +1 -1
  281. package/modal/modal.scss +15 -31
  282. package/navbar/README.md +21 -20
  283. package/navbar/_navbar-item_horizontal.scss +28 -29
  284. package/navbar/_navbar-item_vertical.scss +31 -31
  285. package/navbar/_navbar-theme.scss +20 -24
  286. package/navbar/navbar-brand.scss +24 -27
  287. package/navbar/navbar-divider.scss +4 -8
  288. package/navbar/navbar-item.component.d.ts +4 -4
  289. package/navbar/navbar-item.scss +13 -15
  290. package/navbar/navbar.scss +2 -6
  291. package/navbar/vertical-navbar.scss +4 -6
  292. package/package.json +23 -16
  293. package/popover/README.md +18 -14
  294. package/popover/_popover-theme.scss +9 -17
  295. package/popover/popover.scss +15 -29
  296. package/prebuilt-themes/dark-theme.css +1 -1
  297. package/prebuilt-themes/light-theme.css +1 -1
  298. package/progress-bar/_progress-bar-theme.scss +7 -11
  299. package/progress-bar/progress-bar.scss +6 -19
  300. package/progress-spinner/_progress-spinner-theme.scss +6 -8
  301. package/progress-spinner/progress-spinner.scss +8 -18
  302. package/radio/_radio-theme.scss +36 -37
  303. package/radio/radio.scss +25 -40
  304. package/risk-level/_risk-level-theme.scss +25 -31
  305. package/risk-level/risk-level.component.scss +4 -10
  306. package/schematics/collection.json +11 -0
  307. package/schematics/ng-add/index.js +70 -0
  308. package/schematics/ng-add/schema.json +15 -0
  309. package/scrollbar/_scrollbar-component-theme.scss +15 -19
  310. package/scrollbar/scrollbar.component.scss +68 -63
  311. package/scrollbar/scrollbar.directive.d.ts +1 -0
  312. package/scrollbar/scrollbar.types.d.ts +1 -0
  313. package/select/_select-theme.scss +14 -16
  314. package/select/select-option.directive.d.ts +3 -2
  315. package/select/select.component.d.ts +12 -33
  316. package/select/select.module.d.ts +1 -1
  317. package/select/select.scss +3 -11
  318. package/sidepanel/_sidepanel-theme.scss +8 -10
  319. package/sidepanel/sidepanel.scss +20 -37
  320. package/splitter/_splitter-theme.scss +5 -6
  321. package/splitter/splitter.component.d.ts +10 -5
  322. package/splitter/splitter.scss +0 -1
  323. package/table/_table-theme.scss +16 -15
  324. package/table/table.component.d.ts +8 -1
  325. package/table/table.module.d.ts +1 -1
  326. package/table/table.scss +41 -42
  327. package/tabs/_tabs-common.scss +13 -15
  328. package/tabs/_tabs-theme.scss +76 -44
  329. package/tabs/tab-body.component.d.ts +1 -1
  330. package/tabs/tab-group.component.d.ts +9 -3
  331. package/tabs/tab-group.scss +2 -8
  332. package/tabs/tab-header.scss +0 -10
  333. package/tabs/tab-nav-bar/tab-nav-bar.scss +2 -9
  334. package/tags/_tag-theme.scss +22 -27
  335. package/tags/tag-default-options.d.ts +1 -0
  336. package/tags/tag-input.d.ts +7 -1
  337. package/tags/tag-list.scss +15 -12
  338. package/tags/tag.component.d.ts +1 -1
  339. package/tags/tag.scss +5 -11
  340. package/textarea/_textarea-theme.scss +2 -5
  341. package/textarea/textarea.scss +5 -10
  342. package/timepicker/timepicker.directive.d.ts +1 -1
  343. package/timepicker/timepicker.scss +2 -8
  344. package/timezone/_timezone-option-theme.scss +8 -10
  345. package/timezone/timezone-option.component.scss +5 -8
  346. package/timezone/timezone-option.directive.d.ts +3 -2
  347. package/timezone/timezone-select.component.d.ts +2 -1
  348. package/timezone/timezone-select.component.scss +2 -4
  349. package/title/title.directive.d.ts +0 -1
  350. package/toast/_toast-theme.scss +20 -16
  351. package/toast/toast-container.component.scss +5 -6
  352. package/toast/toast.component.scss +28 -29
  353. package/toast/toast.service.d.ts +8 -4
  354. package/toast/toast.type.d.ts +2 -0
  355. package/toggle/_toggle-theme.scss +49 -42
  356. package/toggle/toggle.scss +9 -22
  357. package/tooltip/_tooltip-theme.scss +12 -16
  358. package/tooltip/tooltip.component.d.ts +12 -8
  359. package/tooltip/tooltip.scss +7 -13
  360. package/tree/_tree-theme.scss +20 -23
  361. package/tree/toggle.scss +3 -6
  362. package/tree/tree-base.d.ts +1 -1
  363. package/tree/tree-option.scss +17 -14
  364. package/tree/tree-selection.component.d.ts +1 -0
  365. package/tree-select/_tree-select-theme.scss +12 -15
  366. package/tree-select/tree-select.component.d.ts +8 -17
  367. package/tree-select/tree-select.module.d.ts +1 -2
  368. package/tree-select/tree-select.scss +1 -6
  369. package/core/styles/_variables.scss +0 -1
@@ -0,0 +1,70 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var schematics = require('@angular-devkit/schematics');
6
+ var utility = require('@schematics/angular/utility');
7
+
8
+ /**
9
+ * Sorts the keys of the given object.
10
+ * @returns A new object instance with sorted keys
11
+ */
12
+ function sortObjectByKeys(obj) {
13
+ return Object.keys(obj)
14
+ .sort()
15
+ .reduce((result, key) => (result[key] = obj[key]) && result, {});
16
+ }
17
+ /**
18
+ * Adds a package to the package.json in the given tree
19
+ */
20
+ function addPackageToPackageJson(tree, pkg, version, devDependency = false) {
21
+ if (tree.exists('package.json')) {
22
+ const sourceText = tree.read('package.json').toString('utf-8');
23
+ const json = JSON.parse(sourceText);
24
+ const dependenciesType = devDependency ? 'devDependencies' : 'dependencies';
25
+ const dependencies = json[dependenciesType] || {};
26
+ if (!dependencies[pkg]) {
27
+ dependencies[pkg] = version;
28
+ json[dependenciesType] = sortObjectByKeys(dependencies);
29
+ }
30
+ tree.overwrite('package.json', JSON.stringify(json, null, 2));
31
+ }
32
+ return tree;
33
+ }
34
+
35
+ function noProject(project) {
36
+ return `Unable to find project '${project}' in the workspace`;
37
+ }
38
+
39
+ /**
40
+ * This is executed when `ng add @koobiq/components` is run.
41
+ * It installs all dependencies in the 'package.json' and runs 'ng-add-setup-project' schematic.
42
+ */
43
+ function ngAdd(options) {
44
+ return async (tree) => {
45
+ const { project } = options;
46
+ if (project) {
47
+ const workspace = await utility.readWorkspace(tree);
48
+ const projectWorkspace = workspace.projects.get(project);
49
+ if (!projectWorkspace) {
50
+ throw new schematics.SchematicsException(noProject(project));
51
+ }
52
+ }
53
+ // Installing dependencies
54
+ addPackageToPackageJson(tree, '@angular/cdk', "^17.2.0");
55
+ addPackageToPackageJson(tree, '@koobiq/cdk', "^17.0.0-rc.10");
56
+ addPackageToPackageJson(tree, '@koobiq/angular-luxon-adapter', "^17.0.0-rc.10");
57
+ addPackageToPackageJson(tree, '@koobiq/date-formatter', "^3.1.2");
58
+ addPackageToPackageJson(tree, '@koobiq/date-adapter', "^3.1.2");
59
+ addPackageToPackageJson(tree, '@koobiq/icons', "^7.1.1");
60
+ addPackageToPackageJson(tree, '@koobiq/tokens-builder', "^3.0.0-rc.12");
61
+ addPackageToPackageJson(tree, '@koobiq/design-tokens', "^3.0.0-rc.12");
62
+ addPackageToPackageJson(tree, '@messageformat/core', "^3.0.1");
63
+ addPackageToPackageJson(tree, 'luxon', "^3.4.4");
64
+ addPackageToPackageJson(tree, 'marked', "^9.0.0");
65
+ addPackageToPackageJson(tree, 'overlayscrollbars', "^2.7.3");
66
+ addPackageToPackageJson(tree, 'ngx-highlightjs', "^10.0.0");
67
+ };
68
+ }
69
+
70
+ exports.default = ngAdd;
@@ -0,0 +1,15 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "$id": "koobiq-components-ng-add",
4
+ "title": "koobiq-components ng-add schematic",
5
+ "type": "object",
6
+ "properties": {
7
+ "project": {
8
+ "type": "string",
9
+ "description": "Name of the project",
10
+ "$default": {
11
+ "$source": "projectName"
12
+ }
13
+ }
14
+ }
15
+ }
@@ -1,4 +1,5 @@
1
1
  @use 'sass:map';
2
+ @use '../core/styles/common/tokens' as *;
2
3
 
3
4
  @mixin kbq-scrollbar-component-theme($theme) {
4
5
  $scrollbar: map.get(map.get($theme, components), scrollbar);
@@ -7,44 +8,39 @@
7
8
  .os-scrollbar {
8
9
  .os-scrollbar-handle {
9
10
  &::before {
10
- border-color: map.get($scrollbar, default);
11
- background-color: map.get($scrollbar, default);
11
+ border-color: kbq-css-variable(scrollbar-default, map.get($scrollbar, default));
12
+ background-color: kbq-css-variable(scrollbar-default, map.get($scrollbar, default));
12
13
  }
13
14
 
14
15
  &:hover {
15
16
  &::before {
16
- border-color: map.get($scrollbar, hover);
17
- background-color: map.get($scrollbar, hover);
17
+ border-color: kbq-css-variable(scrollbar-hover, map.get($scrollbar, hover));
18
+ background-color: kbq-css-variable(scrollbar-hover, map.get($scrollbar, hover));
18
19
  }
19
20
  }
20
21
 
21
22
  &:active {
22
23
  &::before {
23
- border-color: map.get($scrollbar, active);
24
- background-color: map.get($scrollbar, active);
24
+ border-color: kbq-css-variable(scrollbar-active, map.get($scrollbar, active));
25
+ background-color: kbq-css-variable(scrollbar-active, map.get($scrollbar, active));
25
26
  }
26
27
  }
27
28
  }
28
29
 
29
- /* stylelint-disable no-descending-specificity */
30
- .os-scrollbar-track, .os-scrollbar-handle {
31
- $track: map.get($scrollbar, track);
32
- $default: map.get($track, default);
33
-
30
+ .os-scrollbar-track,
31
+ .os-scrollbar-handle {
34
32
  border-style: solid;
35
- border-color: $default !important;
36
- background-color: $default;
33
+ border-color: kbq-css-variable(scrollbar-track-default, map.get($scrollbar, track, default)) !important;
34
+ background-color: kbq-css-variable(scrollbar-track-default, map.get($scrollbar, track, default));
37
35
 
38
36
  &:hover {
39
- $hover: map.get($track, hover);
40
- border-color: $hover;
41
- background: $hover;
37
+ border-color: kbq-css-variable(scrollbar-track-hover, map.get($scrollbar, track, hover));
38
+ background: kbq-css-variable(scrollbar-track-hover, map.get($scrollbar, track, hover));
42
39
  }
43
40
 
44
41
  &:active {
45
- $active: map.get($track, active);
46
- border-color: $active;
47
- background: $active;
42
+ border-color: kbq-css-variable(scrollbar-track-active, map.get($scrollbar, track, active));
43
+ background: kbq-css-variable(scrollbar-track-active, map.get($scrollbar, track, active));
48
44
  }
49
45
  }
50
46
  }
@@ -1,26 +1,14 @@
1
1
  @use 'sass:meta';
2
2
  @use 'sass:map';
3
3
 
4
- @use '../core/styles/tokens';
4
+ @use '../core/styles/common/tokens' as *;
5
5
 
6
- $tokens: meta.module-variables(tokens) !default;
7
-
8
- /* stylelint-disable no-descending-specificity */
9
6
  .kbq-scrollbar-component {
10
- $scrollbar-size-thumb-width: var(--kbq-scrollbar-size-thumb-width, map.get($tokens, scrollbar-size-thumb-width));
11
- $padding-vertical: var(
12
- --kbq-scrollbar-size-track-padding-vertical,
13
- map.get($tokens, scrollbar-size-track-padding-vertical)
14
- );
15
- $padding-horizontal: var(
16
- --kbq-scrollbar-size-track-padding-horizontal,
17
- map.get($tokens, scrollbar-size-track-padding-horizontal)
18
- );
19
- $kbq-scrollbar-track-width: var(
20
- --kbq-scrollbar-size-track-dimension,
21
- map.get($tokens, scrollbar-size-track-dimension)
22
- );
23
- $thumb-min-height: var(--kbq-scrollbar-size-thumb-min-size, map.get($tokens, scrollbar-size-thumb-min-size));
7
+ $scrollbar-size-thumb-width: kbq-css-variable(scrollbar-size-thumb-width);
8
+ $padding-vertical: kbq-css-variable(scrollbar-size-track-padding-vertical);
9
+ $padding-horizontal: kbq-css-variable(scrollbar-size-track-padding-horizontal);
10
+ $kbq-scrollbar-track-width: kbq-css-variable(scrollbar-size-track-dimension);
11
+ $thumb-min-height: kbq-css-variable(scrollbar-size-thumb-min-size);
24
12
  $border-width: calc(($kbq-scrollbar-track-width - $scrollbar-size-thumb-width) / 4);
25
13
 
26
14
  .os-scrollbar-vertical {
@@ -29,7 +17,11 @@ $tokens: meta.module-variables(tokens) !default;
29
17
  width: $kbq-scrollbar-track-width;
30
18
 
31
19
  .os-scrollbar-handle {
32
- transition: opacity 0.15s, background-color 0.15s, border-color 0.15s, width 0.15s;
20
+ transition:
21
+ opacity 0.15s,
22
+ background-color 0.15s,
23
+ border-color 0.15s,
24
+ width 0.15s;
33
25
  border: $padding-horizontal solid;
34
26
  width: 100%;
35
27
  min-height: $thumb-min-height;
@@ -47,7 +39,11 @@ $tokens: meta.module-variables(tokens) !default;
47
39
  height: $kbq-scrollbar-track-width;
48
40
 
49
41
  .os-scrollbar-handle {
50
- transition: opacity 0.15s, background-color 0.15s, border-color 0.15s, height 0.15s;
42
+ transition:
43
+ opacity 0.15s,
44
+ background-color 0.15s,
45
+ border-color 0.15s,
46
+ height 0.15s;
51
47
  border: $padding-horizontal solid;
52
48
  height: 100%;
53
49
  min-width: $thumb-min-height;
@@ -60,21 +56,28 @@ $tokens: meta.module-variables(tokens) !default;
60
56
  }
61
57
 
62
58
  .os-scrollbar {
63
- .os-scrollbar-handle, .os-scrollbar-handle::before, .os-scrollbar-track {
59
+ .os-scrollbar-handle,
60
+ .os-scrollbar-handle::before,
61
+ .os-scrollbar-track {
64
62
  box-sizing: border-box;
65
- border-radius: var(
66
- --kbq-scrollbar-size-thumb-inset-border-radius,
67
- map.get($tokens, scrollbar-size-thumb-border-radius)
68
- );
63
+ border-radius: kbq-css-variable(scrollbar-size-thumb-border-radius);
69
64
  }
70
65
 
71
66
  .os-scrollbar-track {
72
67
  border-width: $border-width !important;
73
- transition: opacity 0.15s, background-color 0.15s, border-color 0.15s;
68
+ transition:
69
+ opacity 0.15s,
70
+ background-color 0.15s,
71
+ border-color 0.15s;
74
72
  }
75
73
  }
76
74
  }
77
75
 
76
+ [data-overlayscrollbars-contents] {
77
+ &:focus-visible {
78
+ outline: none;
79
+ }
80
+ }
78
81
 
79
82
  // core
80
83
  .os-size-observer,
@@ -115,7 +118,7 @@ $tokens: meta.module-variables(tokens) !default;
115
118
  }
116
119
 
117
120
  .os-size-observer::before {
118
- content: "";
121
+ content: '';
119
122
  flex: none;
120
123
  box-sizing: inherit;
121
124
  padding: 10px;
@@ -148,12 +151,13 @@ $tokens: meta.module-variables(tokens) !default;
148
151
  }
149
152
 
150
153
  .os-size-observer-listener:empty::before {
151
- content: "";
154
+ content: '';
152
155
  width: 100%;
153
156
  height: 100%;
154
157
  }
155
158
 
156
- .os-size-observer-listener:empty::before, .os-size-observer-listener > .os-size-observer-listener-item {
159
+ .os-size-observer-listener:empty::before,
160
+ .os-size-observer-listener > .os-size-observer-listener-item {
157
161
  display: block;
158
162
  position: relative;
159
163
  padding: inherit;
@@ -265,7 +269,7 @@ $tokens: meta.module-variables(tokens) !default;
265
269
  }
266
270
 
267
271
  .os-environment.os-environment-flexbox-glue-max div::before {
268
- content: "";
272
+ content: '';
269
273
  display: block;
270
274
  height: 999px;
271
275
  width: 999px;
@@ -280,18 +284,18 @@ $tokens: meta.module-variables(tokens) !default;
280
284
  }
281
285
 
282
286
  [data-overlayscrollbars-initialize],
283
- [data-overlayscrollbars~=scrollbarHidden],
284
- [data-overlayscrollbars-viewport~=scrollbarHidden],
287
+ [data-overlayscrollbars~='scrollbarHidden'],
288
+ [data-overlayscrollbars-viewport~='scrollbarHidden'],
285
289
  .os-environment-scrollbar-hidden {
286
290
  scrollbar-width: none !important;
287
291
  }
288
292
 
289
293
  [data-overlayscrollbars-initialize]::-webkit-scrollbar,
290
294
  [data-overlayscrollbars-initialize]::-webkit-scrollbar-corner,
291
- [data-overlayscrollbars~=scrollbarHidden]::-webkit-scrollbar,
292
- [data-overlayscrollbars~=scrollbarHidden]::-webkit-scrollbar-corner,
293
- [data-overlayscrollbars-viewport~=scrollbarHidden]::-webkit-scrollbar,
294
- [data-overlayscrollbars-viewport~=scrollbarHidden]::-webkit-scrollbar-corner,
295
+ [data-overlayscrollbars~='scrollbarHidden']::-webkit-scrollbar,
296
+ [data-overlayscrollbars~='scrollbarHidden']::-webkit-scrollbar-corner,
297
+ [data-overlayscrollbars-viewport~='scrollbarHidden']::-webkit-scrollbar,
298
+ [data-overlayscrollbars-viewport~='scrollbarHidden']::-webkit-scrollbar-corner,
295
299
  .os-environment-scrollbar-hidden::-webkit-scrollbar,
296
300
  .os-environment-scrollbar-hidden::-webkit-scrollbar-corner {
297
301
  -webkit-appearance: none !important;
@@ -316,20 +320,20 @@ html[data-overlayscrollbars] {
316
320
  margin: 0;
317
321
  }
318
322
 
319
- html[data-overlayscrollbars~=body],
320
- html[data-overlayscrollbars~=body] > body {
323
+ html[data-overlayscrollbars~='body'],
324
+ html[data-overlayscrollbars~='body'] > body {
321
325
  width: 100%;
322
326
  height: 100%;
323
327
  }
324
328
 
325
- html[data-overlayscrollbars~=viewport] > body {
329
+ html[data-overlayscrollbars~='viewport'] > body {
326
330
  overflow: visible;
327
331
  }
328
332
 
329
333
  /**
330
334
  * structure setup
331
335
  */
332
- [data-overlayscrollbars~=host],
336
+ [data-overlayscrollbars~='host'],
333
337
  [data-overlayscrollbars-padding] {
334
338
  display: flex;
335
339
  align-items: stretch !important;
@@ -337,8 +341,8 @@ html[data-overlayscrollbars~=viewport] > body {
337
341
  flex-wrap: nowrap !important;
338
342
  }
339
343
 
340
- [data-overlayscrollbars-viewport][data-overlayscrollbars-viewport~=arrange]::before {
341
- content: "";
344
+ [data-overlayscrollbars-viewport][data-overlayscrollbars-viewport~='arrange']::before {
345
+ content: '';
342
346
  position: absolute;
343
347
  pointer-events: none;
344
348
  z-index: -1;
@@ -363,33 +367,33 @@ html[data-overlayscrollbars~=viewport] > body {
363
367
  overflow: hidden;
364
368
  }
365
369
 
366
- [data-overlayscrollbars~=host],
367
- [data-overlayscrollbars~=viewport] {
370
+ [data-overlayscrollbars~='host'],
371
+ [data-overlayscrollbars~='viewport'] {
368
372
  position: relative;
369
373
  overflow: hidden;
370
374
  }
371
375
 
372
- [data-overlayscrollbars~=overflowVisible],
373
- [data-overlayscrollbars-padding~=overflowVisible],
374
- [data-overlayscrollbars-viewport~=overflowVisible] {
376
+ [data-overlayscrollbars~='overflowVisible'],
377
+ [data-overlayscrollbars-padding~='overflowVisible'],
378
+ [data-overlayscrollbars-viewport~='overflowVisible'] {
375
379
  overflow: visible;
376
380
  }
377
381
 
378
- [data-overlayscrollbars-overflow-x=hidden] {
382
+ [data-overlayscrollbars-overflow-x='hidden'] {
379
383
  overflow-x: hidden;
380
384
  overflow-y: hidden;
381
385
  }
382
386
 
383
- [data-overlayscrollbars-overflow-x=scroll] {
387
+ [data-overlayscrollbars-overflow-x='scroll'] {
384
388
  overflow-x: scroll;
385
389
  }
386
390
 
387
- [data-overlayscrollbars-overflow-y=scroll] {
391
+ [data-overlayscrollbars-overflow-y='scroll'] {
388
392
  overflow-y: scroll;
389
393
  }
390
394
 
391
- [data-overlayscrollbars~=scrollbarPressed],
392
- [data-overlayscrollbars~=scrollbarPressed] [data-overlayscrollbars-viewport] {
395
+ [data-overlayscrollbars~='scrollbarPressed'],
396
+ [data-overlayscrollbars~='scrollbarPressed'] [data-overlayscrollbars-viewport] {
393
397
  scroll-behavior: auto !important;
394
398
  }
395
399
 
@@ -400,13 +404,9 @@ html[data-overlayscrollbars~=viewport] > body {
400
404
  /**
401
405
  * Display contents to bridge any flickering during deferred initialization.
402
406
  */
403
- [data-overlayscrollbars-contents]:not(
404
- [data-overlayscrollbars-padding]
405
- ):not(
406
- [data-overlayscrollbars-viewport]
407
- ):not(
408
- [data-overlayscrollbars-content]
409
- ) {
407
+ [data-overlayscrollbars-contents]:not([data-overlayscrollbars-padding]):not([data-overlayscrollbars-viewport]):not(
408
+ [data-overlayscrollbars-content]
409
+ ) {
410
410
  display: contents;
411
411
  }
412
412
 
@@ -430,7 +430,13 @@ html[data-overlayscrollbars~=viewport] > body {
430
430
  box-sizing: border-box;
431
431
  contain: size layout;
432
432
  contain: size layout style;
433
- transition: opacity 0.15s, visibility 0.15s, top 0.15s, right 0.15s, bottom 0.15s, left 0.15s;
433
+ transition:
434
+ opacity 0.15s,
435
+ visibility 0.15s,
436
+ top 0.15s,
437
+ right 0.15s,
438
+ bottom 0.15s,
439
+ left 0.15s;
434
440
  pointer-events: none;
435
441
  position: absolute;
436
442
  opacity: 0;
@@ -542,7 +548,7 @@ body > .os-scrollbar {
542
548
  }
543
549
 
544
550
  .os-scrollbar .os-scrollbar-handle:before {
545
- content: "";
551
+ content: '';
546
552
  position: absolute;
547
553
  left: 0;
548
554
  right: 0;
@@ -552,8 +558,7 @@ body > .os-scrollbar {
552
558
  }
553
559
 
554
560
  /* NONE THEME: */
555
- [data-overlayscrollbars~=updating] > .os-scrollbar,
561
+ [data-overlayscrollbars~='updating'] > .os-scrollbar,
556
562
  .os-theme-none.os-scrollbar {
557
563
  display: none !important;
558
564
  }
559
-
@@ -35,6 +35,7 @@ export declare class KbqScrollbarDirective implements OnDestroy {
35
35
  visibility?: import("overlayscrollbars").ScrollbarsVisibilityBehavior | undefined;
36
36
  autoHide?: import("overlayscrollbars").ScrollbarsAutoHideBehavior | undefined;
37
37
  autoHideDelay?: number | undefined;
38
+ autoHideSuspend?: boolean | undefined;
38
39
  dragScroll?: boolean | undefined;
39
40
  clickScroll?: boolean | undefined;
40
41
  pointers?: string[] | null | undefined;
@@ -23,6 +23,7 @@ export declare const KBQ_SCROLLBAR_CONFIG: InjectionToken<{
23
23
  visibility?: import("overlayscrollbars").ScrollbarsVisibilityBehavior | undefined;
24
24
  autoHide?: import("overlayscrollbars").ScrollbarsAutoHideBehavior | undefined;
25
25
  autoHideDelay?: number | undefined;
26
+ autoHideSuspend?: boolean | undefined;
26
27
  dragScroll?: boolean | undefined;
27
28
  clickScroll?: boolean | undefined;
28
29
  pointers?: string[] | null | undefined;
@@ -4,60 +4,58 @@
4
4
  @use '../core/styles/common/popup' as *;
5
5
  @use '../core/styles/theming/theming' as *;
6
6
  @use '../core/styles/typography/typography-utils' as *;
7
-
7
+ @use '../core/styles/common/tokens' as *;
8
8
 
9
9
  @mixin kbq-select-theme($theme) {
10
10
  $foreground: map.get($theme, foreground);
11
11
 
12
12
  $error: map.get($theme, error);
13
13
 
14
- $select-panel: map.get(map.get($theme, components), select-panel);
15
- $divider: map.get(map.get($theme, components), divider);
14
+ $select-panel: map.get($theme, components, select-panel);
15
+ $divider: map.get($theme, components, divider);
16
16
 
17
17
  .kbq-select {
18
- color: map.get($foreground, contrast);
18
+ color: kbq-css-variable(foreground-contrast, map.get($foreground, contrast));
19
19
 
20
20
  &.ng-invalid {
21
- color: kbq-color($error);
21
+ color: kbq-css-variable(error-default, kbq-color($error));
22
22
  }
23
23
 
24
24
  &.kbq-disabled {
25
- color: map.get($foreground, text-disabled);
25
+ color: kbq-css-variable(foreground-text-disabled, map.get($foreground, text-disabled));
26
26
  }
27
27
  }
28
28
 
29
29
  .kbq-select__placeholder {
30
30
  text-overflow: ellipsis;
31
31
 
32
- color: map.get($foreground, text-disabled);
32
+ color: kbq-css-variable(foreground-text-disabled, map.get($foreground, text-disabled));
33
33
  }
34
34
 
35
35
  .kbq-select__panel {
36
- box-shadow: map.get($select-panel, shadow);
37
- background: map.get($select-panel, background);
36
+ box-shadow: kbq-css-variable(select-panel-shadow, map.get($select-panel, shadow));
37
+ background: kbq-css-variable(select-panel-background, map.get($select-panel, background));
38
38
 
39
39
  & .kbq-select__footer {
40
- border-color: map.get($divider, color);
40
+ border-color: kbq-css-variable(divider-color, map.get($divider, color));
41
41
  }
42
42
  }
43
43
 
44
44
  .kbq-select__search-container {
45
- border-bottom-color: map.get($divider, color);
45
+ border-bottom-color: kbq-css-variable(divider-color, map.get($divider, color));
46
46
  }
47
47
 
48
48
  .kbq-select__no-options-message {
49
- color: map.get($foreground, text-less-contrast);
49
+ color: kbq-css-variable(foreground-text-less-contrast, map.get($foreground, text-less-contrast));
50
50
  }
51
51
  }
52
52
 
53
53
  @mixin kbq-select-typography($config) {
54
- $tokens: map.get($config, tokens);
55
-
56
54
  .kbq-select {
57
- @include kbq-typography-level-to-styles($config, map.get($tokens, select-font-default));
55
+ @include kbq-typography-css-variables(select, default);
58
56
  }
59
57
 
60
58
  .kbq-select__panel {
61
- @include kbq-typography-level-to-styles($config, map.get($tokens, select-panel-font-default));
59
+ @include kbq-typography-css-variables(select-panel, default);
62
60
  }
63
61
  }
@@ -1,3 +1,4 @@
1
+ import { FocusMonitor } from '@angular/cdk/a11y';
1
2
  import { Directionality } from '@angular/cdk/bidi';
2
3
  import { Overlay, ScrollDispatcher } from '@angular/cdk/overlay';
3
4
  import { AfterViewInit, ElementRef, NgZone, OnDestroy, ViewContainerRef } from '@angular/core';
@@ -10,13 +11,13 @@ export declare class KbqOptionTooltip extends KbqTooltipTrigger implements After
10
11
  private mutationObserver;
11
12
  get textElement(): HTMLElement;
12
13
  get isOverflown(): boolean;
13
- constructor(option: KbqOption, overlay: Overlay, elementRef: ElementRef, ngZone: NgZone, scrollDispatcher: ScrollDispatcher, hostView: ViewContainerRef, scrollStrategy: any, direction: Directionality);
14
+ constructor(option: KbqOption, overlay: Overlay, elementRef: ElementRef, ngZone: NgZone, scrollDispatcher: ScrollDispatcher, hostView: ViewContainerRef, scrollStrategy: any, direction: Directionality, focusMonitor: FocusMonitor);
14
15
  ngAfterViewInit(): void;
15
16
  ngOnDestroy(): void;
16
17
  onMouseEnter(): void;
17
18
  onMouseLeave(): void;
18
19
  onFocus(): void;
19
20
  onBlur(): void;
20
- static ɵfac: i0.ɵɵFactoryDeclaration<KbqOptionTooltip, [null, null, null, null, null, null, null, { optional: true; }]>;
21
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqOptionTooltip, [null, null, null, null, null, null, null, { optional: true; }, null]>;
21
22
  static ɵdir: i0.ɵɵDirectiveDeclaration<KbqOptionTooltip, "kbq-option", never, {}, {}, never, never, false, never>;
22
23
  }
@@ -5,11 +5,10 @@ import { CdkVirtualForOf } from '@angular/cdk/scrolling';
5
5
  import { AfterContentInit, AfterViewInit, ChangeDetectorRef, DoCheck, ElementRef, EventEmitter, NgZone, OnChanges, OnDestroy, OnInit, QueryList, Renderer2, SimpleChanges, TemplateRef } from '@angular/core';
6
6
  import { ControlValueAccessor, FormGroupDirective, NgControl, NgForm } from '@angular/forms';
7
7
  import { ActiveDescendantKeyManager } from '@koobiq/cdk/a11y';
8
- import { CanDisable, CanDisableCtor, CanUpdateErrorState, CanUpdateErrorStateCtor, ErrorStateMatcher, HasTabIndex, HasTabIndexCtor, KbqOptgroup, KbqOption, KbqOptionSelectionChange, KbqLocaleService, KbqOptionBase } from '@koobiq/components/core';
8
+ import { CanDisable, CanDisableCtor, CanUpdateErrorState, CanUpdateErrorStateCtor, ErrorStateMatcher, HasTabIndex, HasTabIndexCtor, KbqOptgroup, KbqOption, KbqOptionSelectionChange, KbqLocaleService, KbqOptionBase, KbqSelectTrigger, KbqSelectMatcher, KbqSelectSearch } from '@koobiq/components/core';
9
9
  import { KbqCleaner, KbqFormField, KbqFormFieldControl } from '@koobiq/components/form-field';
10
- import { KbqInput } from '@koobiq/components/input';
11
10
  import { KbqTag } from '@koobiq/components/tags';
12
- import { Observable, Subject, Subscription } from 'rxjs';
11
+ import { Observable, Subject } from 'rxjs';
13
12
  import * as i0 from "@angular/core";
14
13
  /** Change event object that is emitted when the select value has changed. */
15
14
  export declare class KbqSelectChange {
@@ -17,35 +16,6 @@ export declare class KbqSelectChange {
17
16
  value: any;
18
17
  constructor(source: KbqSelect, value: any);
19
18
  }
20
- export declare class KbqSelectFooter {
21
- static ɵfac: i0.ɵɵFactoryDeclaration<KbqSelectFooter, never>;
22
- static ɵdir: i0.ɵɵDirectiveDeclaration<KbqSelectFooter, "kbq-select-footer, [kbq-select-footer]", never, {}, {}, never, never, false, never>;
23
- }
24
- export declare class KbqSelectSearch implements AfterContentInit, OnDestroy {
25
- input: KbqInput;
26
- searchChangesSubscription: Subscription;
27
- isSearchChanged: boolean;
28
- constructor(formField: KbqFormField);
29
- focus(): void;
30
- reset(): void;
31
- ngAfterContentInit(): void;
32
- ngOnDestroy(): void;
33
- handleKeydown(event: KeyboardEvent): void;
34
- static ɵfac: i0.ɵɵFactoryDeclaration<KbqSelectSearch, never>;
35
- static ɵdir: i0.ɵɵDirectiveDeclaration<KbqSelectSearch, "[kbqSelectSearch]", ["kbqSelectSearch"], {}, {}, ["input"], never, false, never>;
36
- }
37
- export declare class KbqSelectSearchEmptyResult {
38
- static ɵfac: i0.ɵɵFactoryDeclaration<KbqSelectSearchEmptyResult, never>;
39
- static ɵdir: i0.ɵɵDirectiveDeclaration<KbqSelectSearchEmptyResult, "[kbq-select-search-empty-result]", ["kbqSelectSearchEmptyResult"], {}, {}, never, never, false, never>;
40
- }
41
- export declare class KbqSelectTrigger {
42
- static ɵfac: i0.ɵɵFactoryDeclaration<KbqSelectTrigger, never>;
43
- static ɵdir: i0.ɵɵDirectiveDeclaration<KbqSelectTrigger, "kbq-select-trigger, [kbq-select-trigger]", never, {}, {}, never, never, false, never>;
44
- }
45
- export declare class KbqSelectMatcher {
46
- static ɵfac: i0.ɵɵFactoryDeclaration<KbqSelectMatcher, never>;
47
- static ɵdir: i0.ɵɵDirectiveDeclaration<KbqSelectMatcher, "kbq-select-matcher, [kbq-select-matcher]", never, {}, {}, never, never, false, never>;
48
- }
49
19
  /** @docs-private */
50
20
  export declare class KbqSelectBase {
51
21
  elementRef: ElementRef;
@@ -103,10 +73,14 @@ export declare class KbqSelect extends KbqSelectMixinBase implements AfterConten
103
73
  * will fall back to a position above the trigger.
104
74
  */
105
75
  positions: ConnectedPosition[];
76
+ /**
77
+ * Trigger - is a clickable field to open select dropdown panel
78
+ */
106
79
  trigger: ElementRef;
107
80
  panel: ElementRef;
108
81
  optionsContainer: ElementRef;
109
82
  overlayDir: CdkConnectedOverlay;
83
+ footer?: ElementRef;
110
84
  cdkVirtualForOf?: CdkVirtualForOf<any>;
111
85
  tags: QueryList<KbqTag>;
112
86
  /** User-supplied override of the trigger element. */
@@ -189,6 +163,8 @@ export declare class KbqSelect extends KbqSelectMixinBase implements AfterConten
189
163
  get triggerValue(): string;
190
164
  get triggerValues(): KbqOptionBase[];
191
165
  get empty(): boolean;
166
+ get firstSelected(): KbqOptionBase | null;
167
+ get firstFiltered(): boolean;
192
168
  private closeSubscription;
193
169
  /** The scroll position of the overlay panel, calculated to center the selected option. */
194
170
  private scrollTop;
@@ -272,8 +248,11 @@ export declare class KbqSelect extends KbqSelectMixinBase implements AfterConten
272
248
  onRemoveMatcherItem(option: KbqOptionBase, $event: any): void;
273
249
  calculateHiddenItems(): void;
274
250
  getItemHeight(): number;
251
+ handleClick($event: MouseEvent): void;
275
252
  private updateLocaleParams;
276
253
  private isVisible;
254
+ private currentOverlayPosition;
255
+ private modalOverlayPosition;
277
256
  private closingActions;
278
257
  private getHeightOfOptionsContainer;
279
258
  private updateScrollSize;
@@ -329,6 +308,6 @@ export declare class KbqSelect extends KbqSelectMixinBase implements AfterConten
329
308
  private getTotalVisibleItems;
330
309
  private buildTriggerClone;
331
310
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqSelect, [null, null, null, null, null, null, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; self: true; }, null, { optional: true; }]>;
332
- static ɵcmp: i0.ɵɵComponentDeclaration<KbqSelect, "kbq-select", ["kbqSelect"], { "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "hiddenItemsText": { "alias": "hiddenItemsText"; "required": false; }; "panelClass": { "alias": "panelClass"; "required": false; }; "backdropClass": { "alias": "backdropClass"; "required": false; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; }; "sortComparator": { "alias": "sortComparator"; "required": false; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "compareWith": { "alias": "compareWith"; "required": false; }; "value": { "alias": "value"; "required": false; }; "id": { "alias": "id"; "required": false; }; "hiddenItemsTextFormatter": { "alias": "hiddenItemsTextFormatter"; "required": false; }; }, { "openedChange": "openedChange"; "openedStream": "opened"; "closedStream": "closed"; "selectionChange": "selectionChange"; "valueChange": "valueChange"; }, ["cdkVirtualForOf", "customTrigger", "customMatcher", "customTagTemplateRef", "cleaner", "search", "options", "optionGroups"], ["kbq-select-trigger, [kbq-select-trigger]", "kbq-cleaner", "kbq-select-matcher, [kbq-select-matcher]", "[kbqSelectSearch]", "[kbq-select-search-empty-result]", "*", "kbq-select-footer,[kbq-select-footer]"], false, never>;
311
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqSelect, "kbq-select", ["kbqSelect"], { "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "hiddenItemsText": { "alias": "hiddenItemsText"; "required": false; }; "panelClass": { "alias": "panelClass"; "required": false; }; "backdropClass": { "alias": "backdropClass"; "required": false; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; }; "sortComparator": { "alias": "sortComparator"; "required": false; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "compareWith": { "alias": "compareWith"; "required": false; }; "value": { "alias": "value"; "required": false; }; "id": { "alias": "id"; "required": false; }; "hiddenItemsTextFormatter": { "alias": "hiddenItemsTextFormatter"; "required": false; }; }, { "openedChange": "openedChange"; "openedStream": "opened"; "closedStream": "closed"; "selectionChange": "selectionChange"; "valueChange": "valueChange"; }, ["footer", "cdkVirtualForOf", "customTrigger", "customMatcher", "customTagTemplateRef", "cleaner", "search", "options", "optionGroups"], ["kbq-select-trigger, [kbq-select-trigger]", "kbq-cleaner", "kbq-select-matcher, [kbq-select-matcher]", "[kbqSelectSearch]", "[kbq-select-search-empty-result]", "*", "kbq-select-footer,[kbq-select-footer]"], false, never>;
333
312
  }
334
313
  export {};
@@ -10,6 +10,6 @@ import * as i8 from "@koobiq/components/tooltip";
10
10
  import * as i9 from "@koobiq/components/form-field";
11
11
  export declare class KbqSelectModule {
12
12
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqSelectModule, never>;
13
- static ɵmod: i0.ɵɵNgModuleDeclaration<KbqSelectModule, [typeof i1.KbqSelect, typeof i1.KbqSelectSearch, typeof i1.KbqSelectSearchEmptyResult, typeof i1.KbqSelectTrigger, typeof i1.KbqSelectMatcher, typeof i2.KbqOptionTooltip, typeof i1.KbqSelectFooter], [typeof i3.CommonModule, typeof i4.OverlayModule, typeof i5.KbqOptionModule, typeof i6.KbqIconModule, typeof i7.KbqTagsModule, typeof i8.KbqToolTipModule], [typeof i9.KbqFormFieldModule, typeof i1.KbqSelect, typeof i1.KbqSelectSearch, typeof i1.KbqSelectSearchEmptyResult, typeof i1.KbqSelectTrigger, typeof i1.KbqSelectMatcher, typeof i1.KbqSelectFooter, typeof i2.KbqOptionTooltip, typeof i5.KbqOptionModule, typeof i3.CommonModule]>;
13
+ static ɵmod: i0.ɵɵNgModuleDeclaration<KbqSelectModule, [typeof i1.KbqSelect, typeof i2.KbqOptionTooltip], [typeof i3.CommonModule, typeof i4.OverlayModule, typeof i5.KbqOptionModule, typeof i6.KbqIconModule, typeof i7.KbqTagsModule, typeof i8.KbqToolTipModule, typeof i5.KbqSelectSearch, typeof i5.KbqSelectFooter, typeof i5.KbqSelectMatcher, typeof i5.KbqSelectTrigger, typeof i5.KbqSelectSearchEmptyResult], [typeof i9.KbqFormFieldModule, typeof i1.KbqSelect, typeof i2.KbqOptionTooltip, typeof i5.KbqOptionModule, typeof i3.CommonModule, typeof i5.KbqSelectSearch, typeof i5.KbqSelectFooter, typeof i5.KbqSelectMatcher, typeof i5.KbqSelectTrigger, typeof i5.KbqSelectSearchEmptyResult]>;
14
14
  static ɵinj: i0.ɵɵInjectorDeclaration<KbqSelectModule>;
15
15
  }