@koobiq/components 16.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 (1007) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +6 -0
  3. package/_index.scss +3 -0
  4. package/alert/README.md +0 -0
  5. package/alert/_alert-theme.scss +61 -0
  6. package/alert/alert.component.d.ts +22 -0
  7. package/alert/alert.component.scss +81 -0
  8. package/alert/alert.module.d.ts +10 -0
  9. package/alert/index.d.ts +1 -0
  10. package/alert/public-api.d.ts +2 -0
  11. package/autocomplete/README.md +0 -0
  12. package/autocomplete/_autocomplete-theme.scss +21 -0
  13. package/autocomplete/autocomplete-origin.directive.d.ts +12 -0
  14. package/autocomplete/autocomplete-trigger.directive.d.ts +167 -0
  15. package/autocomplete/autocomplete.component.d.ts +73 -0
  16. package/autocomplete/autocomplete.module.d.ts +12 -0
  17. package/autocomplete/autocomplete.scss +63 -0
  18. package/autocomplete/index.d.ts +1 -0
  19. package/autocomplete/public-api.d.ts +4 -0
  20. package/button/README.md +0 -0
  21. package/button/_button-base.scss +69 -0
  22. package/button/_button-theme.scss +180 -0
  23. package/button/button.component.d.ts +58 -0
  24. package/button/button.module.d.ts +11 -0
  25. package/button/button.scss +59 -0
  26. package/button/index.d.ts +1 -0
  27. package/button/public-api.d.ts +2 -0
  28. package/button-toggle/README.md +0 -0
  29. package/button-toggle/_button-toggle-theme.scss +92 -0
  30. package/button-toggle/button-toggle.component.d.ts +145 -0
  31. package/button-toggle/button-toggle.module.d.ts +10 -0
  32. package/button-toggle/button-toggle.scss +163 -0
  33. package/button-toggle/index.d.ts +1 -0
  34. package/button-toggle/public-api.d.ts +2 -0
  35. package/card/README.md +0 -0
  36. package/card/_card-theme.scss +61 -0
  37. package/card/card.component.d.ts +28 -0
  38. package/card/card.component.scss +40 -0
  39. package/card/card.module.d.ts +10 -0
  40. package/card/index.d.ts +1 -0
  41. package/card/public-api.d.ts +2 -0
  42. package/checkbox/README.md +1 -0
  43. package/checkbox/_checkbox-theme.scss +120 -0
  44. package/checkbox/checkbox-config.d.ts +13 -0
  45. package/checkbox/checkbox-module.d.ts +9 -0
  46. package/checkbox/checkbox-required-validator.d.ts +13 -0
  47. package/checkbox/checkbox.d.ts +133 -0
  48. package/checkbox/checkbox.scss +177 -0
  49. package/checkbox/index.d.ts +1 -0
  50. package/checkbox/public-api.d.ts +4 -0
  51. package/code-block/README.md +32 -0
  52. package/code-block/_code-block-theme.scss +326 -0
  53. package/code-block/actionbar.component.d.ts +22 -0
  54. package/code-block/actionbar.component.scss +27 -0
  55. package/code-block/code-block.component.d.ts +74 -0
  56. package/code-block/code-block.module.d.ts +14 -0
  57. package/code-block/code-block.scss +128 -0
  58. package/code-block/code-block.types.d.ts +16 -0
  59. package/code-block/index.d.ts +1 -0
  60. package/code-block/public-api.d.ts +3 -0
  61. package/core/_index.scss +1 -0
  62. package/core/animation/animation.d.ts +6 -0
  63. package/core/animation/fade-animations.d.ts +2 -0
  64. package/core/animation/index.d.ts +3 -0
  65. package/core/animation/select-animations.d.ts +12 -0
  66. package/core/common-behaviors/color.d.ts +33 -0
  67. package/core/common-behaviors/common-module.d.ts +25 -0
  68. package/core/common-behaviors/constructor.d.ts +9 -0
  69. package/core/common-behaviors/disabled.d.ts +8 -0
  70. package/core/common-behaviors/error-state.d.ts +28 -0
  71. package/core/common-behaviors/index.d.ts +5 -0
  72. package/core/common-behaviors/tabindex.d.ts +8 -0
  73. package/core/datetime/date-adapter.d.ts +12 -0
  74. package/core/datetime/date-formats.d.ts +4 -0
  75. package/core/datetime/index.d.ts +2 -0
  76. package/core/error/error-options.d.ts +14 -0
  77. package/core/form-field/form-field-ref.d.ts +11 -0
  78. package/core/form-field/index.d.ts +1 -0
  79. package/core/formatters/date/formatter.d.ts +9 -0
  80. package/core/formatters/date/formatter.pipe.d.ts +109 -0
  81. package/core/formatters/index.d.ts +11 -0
  82. package/core/formatters/number/formatter.d.ts +37 -0
  83. package/core/forms/_forms-theme.scss +34 -0
  84. package/core/forms/_forms.scss +114 -0
  85. package/core/forms/forms-module.d.ts +7 -0
  86. package/core/forms/forms.directive.d.ts +22 -0
  87. package/core/forms/index.d.ts +2 -0
  88. package/core/highlight/_highlight-theme.scss +8 -0
  89. package/core/highlight/highlight.pipe.d.ts +8 -0
  90. package/core/highlight/index.d.ts +9 -0
  91. package/core/index.d.ts +1 -0
  92. package/core/label/label-options.d.ts +13 -0
  93. package/core/line/line.d.ts +28 -0
  94. package/core/locales/en-US.d.ts +11 -0
  95. package/core/locales/es-LA.d.ts +7 -0
  96. package/core/locales/fa-IR.d.ts +7 -0
  97. package/core/locales/index.d.ts +4 -0
  98. package/core/locales/locale-service.d.ts +63 -0
  99. package/core/locales/locale-service.module.d.ts +6 -0
  100. package/core/locales/pt-BR.d.ts +7 -0
  101. package/core/locales/ru-RU.d.ts +11 -0
  102. package/core/locales/zh-CN.d.ts +7 -0
  103. package/core/option/_optgroup-theme.scss +25 -0
  104. package/core/option/_option-action-theme.scss +41 -0
  105. package/core/option/_option-theme.scss +44 -0
  106. package/core/option/action.d.ts +44 -0
  107. package/core/option/action.scss +28 -0
  108. package/core/option/index.d.ts +4 -0
  109. package/core/option/optgroup.d.ts +16 -0
  110. package/core/option/optgroup.scss +16 -0
  111. package/core/option/option-module.d.ts +11 -0
  112. package/core/option/option.d.ts +116 -0
  113. package/core/option/option.scss +62 -0
  114. package/core/overlay/overlay-position-map.d.ts +34 -0
  115. package/core/pop-up/_pop-up.scss +129 -0
  116. package/core/pop-up/constants.d.ts +30 -0
  117. package/core/pop-up/index.d.ts +3 -0
  118. package/core/pop-up/pop-up-trigger.d.ts +71 -0
  119. package/core/pop-up/pop-up.d.ts +36 -0
  120. package/core/public-api.d.ts +21 -0
  121. package/core/select/constants.d.ts +23 -0
  122. package/core/select/errors.d.ts +19 -0
  123. package/core/select/events.d.ts +1 -0
  124. package/core/select/index.d.ts +3 -0
  125. package/core/selection/constants.d.ts +4 -0
  126. package/core/selection/index.d.ts +3 -0
  127. package/core/selection/pseudo-checkbox/_pseudo-checkbox-theme.scss +48 -0
  128. package/core/selection/pseudo-checkbox/pseudo-checkbox.d.ts +32 -0
  129. package/core/selection/pseudo-checkbox/pseudo-checkbox.module.d.ts +8 -0
  130. package/core/selection/pseudo-checkbox/pseudo-checkbox.scss +77 -0
  131. package/core/services/measure-scrollbar.service.d.ts +11 -0
  132. package/core/styles/_core.scss +11 -0
  133. package/core/styles/_koobiq-theme.scss +153 -0
  134. package/core/styles/_tokens.kbq.import.scss +4 -0
  135. package/core/styles/_tokens.scss +6 -0
  136. package/core/styles/_variables.scss +9 -0
  137. package/core/styles/common/_animation.scss +35 -0
  138. package/core/styles/common/_button.scss +10 -0
  139. package/core/styles/common/_clearfix.scss +13 -0
  140. package/core/styles/common/_groups.scss +119 -0
  141. package/core/styles/common/_index.scss +13 -0
  142. package/core/styles/common/_input.scss +28 -0
  143. package/core/styles/common/_layout.scss +8 -0
  144. package/core/styles/common/_list.scss +46 -0
  145. package/core/styles/common/_overlay.scss +173 -0
  146. package/core/styles/common/_popup.scss +11 -0
  147. package/core/styles/common/_rtl.scss +33 -0
  148. package/core/styles/common/_size.scss +8 -0
  149. package/core/styles/common/_vendor-prefixes.scss +24 -0
  150. package/core/styles/common/_visually-hidden.scss +36 -0
  151. package/core/styles/functions/_index.scss +3 -0
  152. package/core/styles/functions/_number.scss +65 -0
  153. package/core/styles/functions/_string.scss +19 -0
  154. package/core/styles/functions/_timing.scss +30 -0
  155. package/core/styles/theming/_badges-theme.scss +118 -0
  156. package/core/styles/theming/_badges.scss +57 -0
  157. package/core/styles/theming/_components-theming.scss +1218 -0
  158. package/core/styles/theming/_index.scss +2 -0
  159. package/core/styles/theming/_scrollbars-theme.scss +77 -0
  160. package/core/styles/theming/_theming.scss +144 -0
  161. package/core/styles/theming/prebuilt/light-theme.scss +20 -0
  162. package/core/styles/typography/_index.scss +2 -0
  163. package/core/styles/typography/_typography-utils.scss +78 -0
  164. package/core/styles/typography/_typography.scss +191 -0
  165. package/core/styles/visual/_body.scss +35 -0
  166. package/core/styles/visual/_index.scss +3 -0
  167. package/core/styles/visual/_layout-media.scss +7 -0
  168. package/core/styles/visual/_layout.scss +527 -0
  169. package/core/title/index.d.ts +1 -0
  170. package/core/title/title-text-ref.d.ts +6 -0
  171. package/core/utils/data-size/config.d.ts +20 -0
  172. package/core/utils/data-size/data-size.pipe.d.ts +13 -0
  173. package/core/utils/data-size/index.d.ts +3 -0
  174. package/core/utils/data-size/size.d.ts +16 -0
  175. package/core/utils/index.d.ts +1 -0
  176. package/core/utils/public-api.d.ts +2 -0
  177. package/core/utils/utils.d.ts +2 -0
  178. package/core/validation/index.d.ts +1 -0
  179. package/core/validation/validation.d.ts +7 -0
  180. package/core/version.d.ts +2 -0
  181. package/datepicker/README.md +0 -0
  182. package/datepicker/_datepicker-theme.scss +101 -0
  183. package/datepicker/calendar-body.component.d.ts +55 -0
  184. package/datepicker/calendar-body.scss +61 -0
  185. package/datepicker/calendar-header.component.d.ts +45 -0
  186. package/datepicker/calendar-header.scss +75 -0
  187. package/datepicker/calendar.component.d.ts +81 -0
  188. package/datepicker/calendar.scss +68 -0
  189. package/datepicker/datepicker-animations.d.ts +9 -0
  190. package/datepicker/datepicker-content.scss +33 -0
  191. package/datepicker/datepicker-errors.d.ts +2 -0
  192. package/datepicker/datepicker-input.directive.d.ts +180 -0
  193. package/datepicker/datepicker-input.scss +15 -0
  194. package/datepicker/datepicker-intl.d.ts +32 -0
  195. package/datepicker/datepicker-module.d.ts +20 -0
  196. package/datepicker/datepicker-toggle.component.d.ts +35 -0
  197. package/datepicker/datepicker-toggle.scss +41 -0
  198. package/datepicker/datepicker.component.d.ts +148 -0
  199. package/datepicker/index.d.ts +1 -0
  200. package/datepicker/month-view.component.d.ts +74 -0
  201. package/datepicker/public-api.d.ts +10 -0
  202. package/divider/README.md +0 -0
  203. package/divider/_divider-theme.scss +10 -0
  204. package/divider/divider.component.d.ts +14 -0
  205. package/divider/divider.module.d.ts +8 -0
  206. package/divider/divider.scss +47 -0
  207. package/divider/index.d.ts +1 -0
  208. package/divider/public-api.d.ts +2 -0
  209. package/dl/README.md +0 -0
  210. package/dl/_dl-theme.scss +86 -0
  211. package/dl/dl.component.d.ts +27 -0
  212. package/dl/dl.module.d.ts +10 -0
  213. package/dl/dl.scss +99 -0
  214. package/dl/index.d.ts +1 -0
  215. package/dl/public-api.d.ts +2 -0
  216. package/dropdown/_dropdown-theme.scss +85 -0
  217. package/dropdown/dropdown-animations.d.ts +11 -0
  218. package/dropdown/dropdown-content.directive.d.ts +32 -0
  219. package/dropdown/dropdown-errors.d.ts +17 -0
  220. package/dropdown/dropdown-item.component.d.ts +52 -0
  221. package/dropdown/dropdown-item.scss +82 -0
  222. package/dropdown/dropdown-trigger.directive.d.ts +136 -0
  223. package/dropdown/dropdown.component.d.ts +121 -0
  224. package/dropdown/dropdown.module.d.ts +13 -0
  225. package/dropdown/dropdown.scss +79 -0
  226. package/dropdown/dropdown.types.d.ts +53 -0
  227. package/dropdown/index.d.ts +1 -0
  228. package/dropdown/public-api.d.ts +8 -0
  229. package/ellipsis-center/ellipsis-center.directive.d.ts +27 -0
  230. package/ellipsis-center/index.d.ts +1 -0
  231. package/ellipsis-center/public-api.d.ts +1 -0
  232. package/esm2022/alert/alert.component.mjs +67 -0
  233. package/esm2022/alert/alert.module.mjs +44 -0
  234. package/esm2022/alert/index.mjs +2 -0
  235. package/esm2022/alert/koobiq-components-alert.mjs +5 -0
  236. package/esm2022/alert/public-api.mjs +3 -0
  237. package/esm2022/autocomplete/autocomplete-origin.directive.mjs +21 -0
  238. package/esm2022/autocomplete/autocomplete-trigger.directive.mjs +552 -0
  239. package/esm2022/autocomplete/autocomplete.component.mjs +153 -0
  240. package/esm2022/autocomplete/autocomplete.module.mjs +34 -0
  241. package/esm2022/autocomplete/index.mjs +2 -0
  242. package/esm2022/autocomplete/koobiq-components-autocomplete.mjs +5 -0
  243. package/esm2022/autocomplete/public-api.mjs +5 -0
  244. package/esm2022/button/button.component.mjs +164 -0
  245. package/esm2022/button/button.module.mjs +40 -0
  246. package/esm2022/button/index.mjs +2 -0
  247. package/esm2022/button/koobiq-components-button.mjs +5 -0
  248. package/esm2022/button/public-api.mjs +3 -0
  249. package/esm2022/button-toggle/button-toggle.component.mjs +381 -0
  250. package/esm2022/button-toggle/button-toggle.module.mjs +20 -0
  251. package/esm2022/button-toggle/index.mjs +2 -0
  252. package/esm2022/button-toggle/koobiq-components-button-toggle.mjs +5 -0
  253. package/esm2022/button-toggle/public-api.mjs +3 -0
  254. package/esm2022/card/card.component.mjs +80 -0
  255. package/esm2022/card/card.module.mjs +28 -0
  256. package/esm2022/card/index.mjs +2 -0
  257. package/esm2022/card/koobiq-components-card.mjs +5 -0
  258. package/esm2022/card/public-api.mjs +3 -0
  259. package/esm2022/checkbox/checkbox-config.mjs +6 -0
  260. package/esm2022/checkbox/checkbox-module.mjs +19 -0
  261. package/esm2022/checkbox/checkbox-required-validator.mjs +27 -0
  262. package/esm2022/checkbox/checkbox.mjs +304 -0
  263. package/esm2022/checkbox/index.mjs +2 -0
  264. package/esm2022/checkbox/koobiq-components-checkbox.mjs +5 -0
  265. package/esm2022/checkbox/public-api.mjs +5 -0
  266. package/esm2022/code-block/actionbar.component.mjs +67 -0
  267. package/esm2022/code-block/code-block.component.mjs +157 -0
  268. package/esm2022/code-block/code-block.module.mjs +60 -0
  269. package/esm2022/code-block/code-block.types.mjs +2 -0
  270. package/esm2022/code-block/index.mjs +2 -0
  271. package/esm2022/code-block/koobiq-components-code-block.mjs +5 -0
  272. package/esm2022/code-block/public-api.mjs +4 -0
  273. package/esm2022/core/animation/animation.mjs +8 -0
  274. package/esm2022/core/animation/fade-animations.mjs +9 -0
  275. package/esm2022/core/animation/index.mjs +4 -0
  276. package/esm2022/core/animation/select-animations.mjs +45 -0
  277. package/esm2022/core/common-behaviors/color.mjs +45 -0
  278. package/esm2022/core/common-behaviors/common-module.mjs +83 -0
  279. package/esm2022/core/common-behaviors/constructor.mjs +2 -0
  280. package/esm2022/core/common-behaviors/disabled.mjs +17 -0
  281. package/esm2022/core/common-behaviors/error-state.mjs +21 -0
  282. package/esm2022/core/common-behaviors/index.mjs +6 -0
  283. package/esm2022/core/common-behaviors/tabindex.mjs +18 -0
  284. package/esm2022/core/datetime/date-adapter.mjs +15 -0
  285. package/esm2022/core/datetime/date-formats.mjs +3 -0
  286. package/esm2022/core/datetime/index.mjs +3 -0
  287. package/esm2022/core/error/error-options.mjs +26 -0
  288. package/esm2022/core/form-field/form-field-ref.mjs +8 -0
  289. package/esm2022/core/form-field/index.mjs +2 -0
  290. package/esm2022/core/formatters/date/formatter.mjs +21 -0
  291. package/esm2022/core/formatters/date/formatter.pipe.mjs +220 -0
  292. package/esm2022/core/formatters/index.mjs +78 -0
  293. package/esm2022/core/formatters/number/formatter.mjs +129 -0
  294. package/esm2022/core/forms/forms-module.mjs +24 -0
  295. package/esm2022/core/forms/forms.directive.mjs +66 -0
  296. package/esm2022/core/forms/index.mjs +3 -0
  297. package/esm2022/core/highlight/highlight.pipe.mjs +23 -0
  298. package/esm2022/core/highlight/index.mjs +19 -0
  299. package/esm2022/core/index.mjs +2 -0
  300. package/esm2022/core/koobiq-components-core.mjs +5 -0
  301. package/esm2022/core/label/label-options.mjs +4 -0
  302. package/esm2022/core/line/line.mjs +70 -0
  303. package/esm2022/core/locales/en-US.mjs +10 -0
  304. package/esm2022/core/locales/es-LA.mjs +6 -0
  305. package/esm2022/core/locales/fa-IR.mjs +6 -0
  306. package/esm2022/core/locales/index.mjs +5 -0
  307. package/esm2022/core/locales/locale-service.mjs +70 -0
  308. package/esm2022/core/locales/locale-service.module.mjs +19 -0
  309. package/esm2022/core/locales/pt-BR.mjs +6 -0
  310. package/esm2022/core/locales/ru-RU.mjs +10 -0
  311. package/esm2022/core/locales/zh-CN.mjs +6 -0
  312. package/esm2022/core/option/action.mjs +122 -0
  313. package/esm2022/core/option/index.mjs +5 -0
  314. package/esm2022/core/option/optgroup.mjs +31 -0
  315. package/esm2022/core/option/option-module.mjs +21 -0
  316. package/esm2022/core/option/option.mjs +262 -0
  317. package/esm2022/core/overlay/overlay-position-map.mjs +244 -0
  318. package/esm2022/core/pop-up/constants.mjs +36 -0
  319. package/esm2022/core/pop-up/index.mjs +4 -0
  320. package/esm2022/core/pop-up/pop-up-trigger.mjs +247 -0
  321. package/esm2022/core/pop-up/pop-up.mjs +94 -0
  322. package/esm2022/core/public-api.mjs +22 -0
  323. package/esm2022/core/select/constants.mjs +27 -0
  324. package/esm2022/core/select/errors.mjs +26 -0
  325. package/esm2022/core/select/events.mjs +2 -0
  326. package/esm2022/core/select/index.mjs +4 -0
  327. package/esm2022/core/selection/constants.mjs +6 -0
  328. package/esm2022/core/selection/index.mjs +4 -0
  329. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +52 -0
  330. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.module.mjs +18 -0
  331. package/esm2022/core/services/measure-scrollbar.service.mjs +48 -0
  332. package/esm2022/core/title/index.mjs +2 -0
  333. package/esm2022/core/title/title-text-ref.mjs +3 -0
  334. package/esm2022/core/utils/data-size/config.mjs +22 -0
  335. package/esm2022/core/utils/data-size/data-size.pipe.mjs +32 -0
  336. package/esm2022/core/utils/data-size/index.mjs +4 -0
  337. package/esm2022/core/utils/data-size/size.mjs +50 -0
  338. package/esm2022/core/utils/index.mjs +2 -0
  339. package/esm2022/core/utils/public-api.mjs +3 -0
  340. package/esm2022/core/utils/utils.mjs +5 -0
  341. package/esm2022/core/validation/index.mjs +2 -0
  342. package/esm2022/core/validation/validation.mjs +5 -0
  343. package/esm2022/core/version.mjs +3 -0
  344. package/esm2022/datepicker/calendar-body.component.mjs +87 -0
  345. package/esm2022/datepicker/calendar-header.component.mjs +134 -0
  346. package/esm2022/datepicker/calendar.component.mjs +175 -0
  347. package/esm2022/datepicker/datepicker-animations.mjs +32 -0
  348. package/esm2022/datepicker/datepicker-errors.mjs +6 -0
  349. package/esm2022/datepicker/datepicker-input.directive.mjs +954 -0
  350. package/esm2022/datepicker/datepicker-intl.mjs +40 -0
  351. package/esm2022/datepicker/datepicker-module.mjs +97 -0
  352. package/esm2022/datepicker/datepicker-toggle.component.mjs +86 -0
  353. package/esm2022/datepicker/datepicker.component.mjs +393 -0
  354. package/esm2022/datepicker/index.mjs +2 -0
  355. package/esm2022/datepicker/koobiq-components-datepicker.mjs +5 -0
  356. package/esm2022/datepicker/month-view.component.mjs +158 -0
  357. package/esm2022/datepicker/public-api.mjs +11 -0
  358. package/esm2022/divider/divider.component.mjs +49 -0
  359. package/esm2022/divider/divider.module.mjs +18 -0
  360. package/esm2022/divider/index.mjs +2 -0
  361. package/esm2022/divider/koobiq-components-divider.mjs +5 -0
  362. package/esm2022/divider/public-api.mjs +3 -0
  363. package/esm2022/dl/dl.component.mjs +82 -0
  364. package/esm2022/dl/dl.module.mjs +40 -0
  365. package/esm2022/dl/index.mjs +2 -0
  366. package/esm2022/dl/koobiq-components-dl.mjs +5 -0
  367. package/esm2022/dl/public-api.mjs +3 -0
  368. package/esm2022/dropdown/dropdown-animations.mjs +41 -0
  369. package/esm2022/dropdown/dropdown-content.directive.mjs +64 -0
  370. package/esm2022/dropdown/dropdown-errors.mjs +29 -0
  371. package/esm2022/dropdown/dropdown-item.component.mjs +146 -0
  372. package/esm2022/dropdown/dropdown-trigger.directive.mjs +489 -0
  373. package/esm2022/dropdown/dropdown.component.mjs +292 -0
  374. package/esm2022/dropdown/dropdown.module.mjs +48 -0
  375. package/esm2022/dropdown/dropdown.types.mjs +24 -0
  376. package/esm2022/dropdown/index.mjs +2 -0
  377. package/esm2022/dropdown/koobiq-components-dropdown.mjs +5 -0
  378. package/esm2022/dropdown/public-api.mjs +9 -0
  379. package/esm2022/ellipsis-center/ellipsis-center.directive.mjs +106 -0
  380. package/esm2022/ellipsis-center/index.mjs +2 -0
  381. package/esm2022/ellipsis-center/koobiq-components-ellipsis-center.mjs +5 -0
  382. package/esm2022/ellipsis-center/public-api.mjs +2 -0
  383. package/esm2022/file-upload/file-drop.mjs +43 -0
  384. package/esm2022/file-upload/file-upload.mjs +4 -0
  385. package/esm2022/file-upload/file-upload.module.mjs +66 -0
  386. package/esm2022/file-upload/index.mjs +2 -0
  387. package/esm2022/file-upload/koobiq-components-file-upload.mjs +5 -0
  388. package/esm2022/file-upload/multiple-file-upload.component.mjs +161 -0
  389. package/esm2022/file-upload/public-api.mjs +6 -0
  390. package/esm2022/file-upload/single-file-upload.component.mjs +130 -0
  391. package/esm2022/form-field/cleaner.mjs +14 -0
  392. package/esm2022/form-field/form-field-control.mjs +5 -0
  393. package/esm2022/form-field/form-field-errors.mjs +7 -0
  394. package/esm2022/form-field/form-field.mjs +276 -0
  395. package/esm2022/form-field/form-field.module.mjs +71 -0
  396. package/esm2022/form-field/hint.mjs +34 -0
  397. package/esm2022/form-field/index.mjs +2 -0
  398. package/esm2022/form-field/koobiq-components-form-field.mjs +5 -0
  399. package/esm2022/form-field/password-hint.mjs +144 -0
  400. package/esm2022/form-field/password-toggle.mjs +64 -0
  401. package/esm2022/form-field/prefix.mjs +13 -0
  402. package/esm2022/form-field/public-api.mjs +13 -0
  403. package/esm2022/form-field/stepper.mjs +71 -0
  404. package/esm2022/form-field/suffix.mjs +13 -0
  405. package/esm2022/form-field/validate.directive.mjs +158 -0
  406. package/esm2022/icon/icon.component.mjs +145 -0
  407. package/esm2022/icon/icon.module.mjs +40 -0
  408. package/esm2022/icon/index.mjs +2 -0
  409. package/esm2022/icon/koobiq-components-icon.mjs +5 -0
  410. package/esm2022/icon/public-api.mjs +3 -0
  411. package/esm2022/index.mjs +2 -0
  412. package/esm2022/input/index.mjs +2 -0
  413. package/esm2022/input/input-errors.mjs +4 -0
  414. package/esm2022/input/input-number-validators.mjs +88 -0
  415. package/esm2022/input/input-number.mjs +168 -0
  416. package/esm2022/input/input-password.mjs +233 -0
  417. package/esm2022/input/input-value-accessor.mjs +3 -0
  418. package/esm2022/input/input.mjs +297 -0
  419. package/esm2022/input/input.module.mjs +63 -0
  420. package/esm2022/input/koobiq-components-input.mjs +5 -0
  421. package/esm2022/input/public-api.mjs +7 -0
  422. package/esm2022/koobiq-components.mjs +5 -0
  423. package/esm2022/link/index.mjs +2 -0
  424. package/esm2022/link/koobiq-components-link.mjs +5 -0
  425. package/esm2022/link/link.component.mjs +132 -0
  426. package/esm2022/link/link.module.mjs +24 -0
  427. package/esm2022/link/public-api.mjs +3 -0
  428. package/esm2022/list/index.mjs +2 -0
  429. package/esm2022/list/koobiq-components-list.mjs +5 -0
  430. package/esm2022/list/list-selection.component.mjs +705 -0
  431. package/esm2022/list/list.component.mjs +44 -0
  432. package/esm2022/list/list.module.mjs +53 -0
  433. package/esm2022/list/public-api.mjs +4 -0
  434. package/esm2022/loader-overlay/index.mjs +2 -0
  435. package/esm2022/loader-overlay/koobiq-components-loader-overlay.mjs +5 -0
  436. package/esm2022/loader-overlay/loader-overlay.component.mjs +103 -0
  437. package/esm2022/loader-overlay/loader-overlay.module.mjs +48 -0
  438. package/esm2022/loader-overlay/public-api.mjs +3 -0
  439. package/esm2022/markdown/index.mjs +2 -0
  440. package/esm2022/markdown/koobiq-components-markdown.mjs +5 -0
  441. package/esm2022/markdown/markdown.component.mjs +53 -0
  442. package/esm2022/markdown/markdown.module.mjs +23 -0
  443. package/esm2022/markdown/markdown.service.mjs +25 -0
  444. package/esm2022/markdown/markdown.values.mjs +29 -0
  445. package/esm2022/markdown/public-api.mjs +5 -0
  446. package/esm2022/modal/css-unit.pipe.mjs +17 -0
  447. package/esm2022/modal/index.mjs +2 -0
  448. package/esm2022/modal/koobiq-components-modal.mjs +5 -0
  449. package/esm2022/modal/modal-control.service.mjs +85 -0
  450. package/esm2022/modal/modal-ref.class.mjs +8 -0
  451. package/esm2022/modal/modal-util.mjs +17 -0
  452. package/esm2022/modal/modal.component.mjs +509 -0
  453. package/esm2022/modal/modal.directive.mjs +52 -0
  454. package/esm2022/modal/modal.module.mjs +69 -0
  455. package/esm2022/modal/modal.service.mjs +124 -0
  456. package/esm2022/modal/modal.type.mjs +9 -0
  457. package/esm2022/modal/public-api.mjs +7 -0
  458. package/esm2022/navbar/index.mjs +2 -0
  459. package/esm2022/navbar/koobiq-components-navbar.mjs +5 -0
  460. package/esm2022/navbar/navbar-item.component.mjs +605 -0
  461. package/esm2022/navbar/navbar.component.mjs +239 -0
  462. package/esm2022/navbar/navbar.module.mjs +90 -0
  463. package/esm2022/navbar/public-api.mjs +5 -0
  464. package/esm2022/navbar/vertical-navbar.animation.mjs +10 -0
  465. package/esm2022/navbar/vertical-navbar.component.mjs +114 -0
  466. package/esm2022/popover/index.mjs +2 -0
  467. package/esm2022/popover/koobiq-components-popover.mjs +5 -0
  468. package/esm2022/popover/popover-animations.mjs +16 -0
  469. package/esm2022/popover/popover-confirm.component.mjs +108 -0
  470. package/esm2022/popover/popover.component.mjs +266 -0
  471. package/esm2022/popover/popover.module.mjs +29 -0
  472. package/esm2022/popover/public-api.mjs +5 -0
  473. package/esm2022/progress-bar/index.mjs +2 -0
  474. package/esm2022/progress-bar/koobiq-components-progress-bar.mjs +5 -0
  475. package/esm2022/progress-bar/progress-bar.component.mjs +70 -0
  476. package/esm2022/progress-bar/progress-bar.module.mjs +36 -0
  477. package/esm2022/progress-bar/public-api.mjs +3 -0
  478. package/esm2022/progress-spinner/index.mjs +2 -0
  479. package/esm2022/progress-spinner/koobiq-components-progress-spinner.mjs +5 -0
  480. package/esm2022/progress-spinner/progress-spinner.component.mjs +85 -0
  481. package/esm2022/progress-spinner/progress-spinner.module.mjs +36 -0
  482. package/esm2022/progress-spinner/public-api.mjs +3 -0
  483. package/esm2022/public-api.mjs +2 -0
  484. package/esm2022/radio/index.mjs +2 -0
  485. package/esm2022/radio/koobiq-components-radio.mjs +5 -0
  486. package/esm2022/radio/public-api.mjs +3 -0
  487. package/esm2022/radio/radio.component.mjs +460 -0
  488. package/esm2022/radio/radio.module.mjs +20 -0
  489. package/esm2022/select/index.mjs +2 -0
  490. package/esm2022/select/koobiq-components-select.mjs +5 -0
  491. package/esm2022/select/public-api.mjs +4 -0
  492. package/esm2022/select/select-option.directive.mjs +65 -0
  493. package/esm2022/select/select.component.mjs +1146 -0
  494. package/esm2022/select/select.module.mjs +79 -0
  495. package/esm2022/sidebar/index.mjs +2 -0
  496. package/esm2022/sidebar/koobiq-components-sidebar.mjs +5 -0
  497. package/esm2022/sidebar/public-api.mjs +3 -0
  498. package/esm2022/sidebar/sidebar-animations.mjs +23 -0
  499. package/esm2022/sidebar/sidebar.component.mjs +146 -0
  500. package/esm2022/sidebar/sidebar.module.mjs +30 -0
  501. package/esm2022/sidepanel/index.mjs +2 -0
  502. package/esm2022/sidepanel/koobiq-components-sidepanel.mjs +5 -0
  503. package/esm2022/sidepanel/public-api.mjs +7 -0
  504. package/esm2022/sidepanel/sidepanel-animations.mjs +26 -0
  505. package/esm2022/sidepanel/sidepanel-config.mjs +33 -0
  506. package/esm2022/sidepanel/sidepanel-container.component.mjs +110 -0
  507. package/esm2022/sidepanel/sidepanel-directives.mjs +167 -0
  508. package/esm2022/sidepanel/sidepanel-ref.mjs +53 -0
  509. package/esm2022/sidepanel/sidepanel.module.mjs +75 -0
  510. package/esm2022/sidepanel/sidepanel.service.mjs +171 -0
  511. package/esm2022/splitter/index.mjs +2 -0
  512. package/esm2022/splitter/koobiq-components-splitter.mjs +5 -0
  513. package/esm2022/splitter/public-api.mjs +3 -0
  514. package/esm2022/splitter/splitter.component.mjs +482 -0
  515. package/esm2022/splitter/splitter.module.mjs +38 -0
  516. package/esm2022/table/index.mjs +2 -0
  517. package/esm2022/table/koobiq-components-table.mjs +5 -0
  518. package/esm2022/table/public-api.mjs +3 -0
  519. package/esm2022/table/table.component.mjs +13 -0
  520. package/esm2022/table/table.module.mjs +28 -0
  521. package/esm2022/tabs/index.mjs +2 -0
  522. package/esm2022/tabs/koobiq-components-tabs.mjs +5 -0
  523. package/esm2022/tabs/paginated-tab-header.mjs +479 -0
  524. package/esm2022/tabs/public-api.mjs +11 -0
  525. package/esm2022/tabs/tab-body.component.mjs +179 -0
  526. package/esm2022/tabs/tab-content.directive.mjs +15 -0
  527. package/esm2022/tabs/tab-group.component.mjs +349 -0
  528. package/esm2022/tabs/tab-header.component.mjs +67 -0
  529. package/esm2022/tabs/tab-label-wrapper.directive.mjs +78 -0
  530. package/esm2022/tabs/tab-label.directive.mjs +17 -0
  531. package/esm2022/tabs/tab-nav-bar/index.mjs +2 -0
  532. package/esm2022/tabs/tab-nav-bar/tab-nav-bar.mjs +111 -0
  533. package/esm2022/tabs/tab.component.mjs +134 -0
  534. package/esm2022/tabs/tabs-animations.mjs +24 -0
  535. package/esm2022/tabs/tabs.module.mjs +106 -0
  536. package/esm2022/tags/index.mjs +2 -0
  537. package/esm2022/tags/koobiq-components-tags.mjs +5 -0
  538. package/esm2022/tags/public-api.mjs +6 -0
  539. package/esm2022/tags/tag-default-options.mjs +4 -0
  540. package/esm2022/tags/tag-input.mjs +248 -0
  541. package/esm2022/tags/tag-list.component.mjs +714 -0
  542. package/esm2022/tags/tag-text-control.mjs +2 -0
  543. package/esm2022/tags/tag.component.mjs +381 -0
  544. package/esm2022/tags/tag.module.mjs +56 -0
  545. package/esm2022/textarea/index.mjs +2 -0
  546. package/esm2022/textarea/koobiq-components-textarea.mjs +5 -0
  547. package/esm2022/textarea/public-api.mjs +3 -0
  548. package/esm2022/textarea/textarea.component.mjs +254 -0
  549. package/esm2022/textarea/textarea.module.mjs +21 -0
  550. package/esm2022/timepicker/index.mjs +2 -0
  551. package/esm2022/timepicker/koobiq-components-timepicker.mjs +5 -0
  552. package/esm2022/timepicker/public-api.mjs +4 -0
  553. package/esm2022/timepicker/timepicker.constants.mjs +25 -0
  554. package/esm2022/timepicker/timepicker.directive.mjs +647 -0
  555. package/esm2022/timepicker/timepicker.module.mjs +32 -0
  556. package/esm2022/timezone/cities-by-filter.pipe.mjs +17 -0
  557. package/esm2022/timezone/index.mjs +2 -0
  558. package/esm2022/timezone/koobiq-components-timezone.mjs +5 -0
  559. package/esm2022/timezone/public-api.mjs +7 -0
  560. package/esm2022/timezone/timezone-option.component.mjs +48 -0
  561. package/esm2022/timezone/timezone-option.directive.mjs +60 -0
  562. package/esm2022/timezone/timezone-select.component.mjs +40 -0
  563. package/esm2022/timezone/timezone.models.mjs +3 -0
  564. package/esm2022/timezone/timezone.module.mjs +75 -0
  565. package/esm2022/timezone/timezone.utils.mjs +79 -0
  566. package/esm2022/timezone/utc-offset.pipe.mjs +17 -0
  567. package/esm2022/title/index.mjs +2 -0
  568. package/esm2022/title/koobiq-components-title.mjs +5 -0
  569. package/esm2022/title/public-api.mjs +3 -0
  570. package/esm2022/title/title.directive.mjs +107 -0
  571. package/esm2022/title/title.module.mjs +18 -0
  572. package/esm2022/toast/index.mjs +2 -0
  573. package/esm2022/toast/koobiq-components-toast.mjs +5 -0
  574. package/esm2022/toast/public-api.mjs +6 -0
  575. package/esm2022/toast/toast-animations.mjs +9 -0
  576. package/esm2022/toast/toast-container.component.mjs +44 -0
  577. package/esm2022/toast/toast.component.mjs +92 -0
  578. package/esm2022/toast/toast.module.mjs +42 -0
  579. package/esm2022/toast/toast.service.mjs +188 -0
  580. package/esm2022/toast/toast.type.mjs +15 -0
  581. package/esm2022/toggle/index.mjs +2 -0
  582. package/esm2022/toggle/koobiq-components-toggle.mjs +5 -0
  583. package/esm2022/toggle/public-api.mjs +3 -0
  584. package/esm2022/toggle/toggle.component.mjs +160 -0
  585. package/esm2022/toggle/toggle.module.mjs +20 -0
  586. package/esm2022/tooltip/index.mjs +2 -0
  587. package/esm2022/tooltip/koobiq-components-tooltip.mjs +5 -0
  588. package/esm2022/tooltip/public-api.mjs +3 -0
  589. package/esm2022/tooltip/tooltip.animations.mjs +19 -0
  590. package/esm2022/tooltip/tooltip.component.mjs +308 -0
  591. package/esm2022/tooltip/tooltip.module.mjs +42 -0
  592. package/esm2022/tree/control/base-tree-control.mjs +60 -0
  593. package/esm2022/tree/control/flat-tree-control.mjs +130 -0
  594. package/esm2022/tree/control/nested-tree-control.mjs +41 -0
  595. package/esm2022/tree/control/tree-control.mjs +2 -0
  596. package/esm2022/tree/data-source/flat-data-source.mjs +162 -0
  597. package/esm2022/tree/data-source/nested-data-source.mjs +30 -0
  598. package/esm2022/tree/index.mjs +2 -0
  599. package/esm2022/tree/koobiq-components-tree.mjs +5 -0
  600. package/esm2022/tree/node.mjs +31 -0
  601. package/esm2022/tree/outlet.mjs +15 -0
  602. package/esm2022/tree/padding.directive.mjs +113 -0
  603. package/esm2022/tree/public-api.mjs +16 -0
  604. package/esm2022/tree/toggle.mjs +81 -0
  605. package/esm2022/tree/tree-base.mjs +243 -0
  606. package/esm2022/tree/tree-errors.mjs +36 -0
  607. package/esm2022/tree/tree-option.component.mjs +299 -0
  608. package/esm2022/tree/tree-selection.component.mjs +557 -0
  609. package/esm2022/tree/tree.mjs +15 -0
  610. package/esm2022/tree/tree.module.mjs +57 -0
  611. package/esm2022/tree-select/index.mjs +2 -0
  612. package/esm2022/tree-select/koobiq-components-tree-select.mjs +5 -0
  613. package/esm2022/tree-select/public-api.mjs +3 -0
  614. package/esm2022/tree-select/tree-select.component.mjs +936 -0
  615. package/esm2022/tree-select/tree-select.module.mjs +45 -0
  616. package/fesm2022/koobiq-components-alert.mjs +115 -0
  617. package/fesm2022/koobiq-components-alert.mjs.map +1 -0
  618. package/fesm2022/koobiq-components-autocomplete.mjs +748 -0
  619. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -0
  620. package/fesm2022/koobiq-components-button-toggle.mjs +403 -0
  621. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -0
  622. package/fesm2022/koobiq-components-button.mjs +207 -0
  623. package/fesm2022/koobiq-components-button.mjs.map +1 -0
  624. package/fesm2022/koobiq-components-card.mjs +111 -0
  625. package/fesm2022/koobiq-components-card.mjs.map +1 -0
  626. package/fesm2022/koobiq-components-checkbox.mjs +353 -0
  627. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -0
  628. package/fesm2022/koobiq-components-code-block.mjs +278 -0
  629. package/fesm2022/koobiq-components-code-block.mjs.map +1 -0
  630. package/fesm2022/koobiq-components-core.mjs +2338 -0
  631. package/fesm2022/koobiq-components-core.mjs.map +1 -0
  632. package/fesm2022/koobiq-components-datepicker.mjs +2101 -0
  633. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -0
  634. package/fesm2022/koobiq-components-divider.mjs +71 -0
  635. package/fesm2022/koobiq-components-divider.mjs.map +1 -0
  636. package/fesm2022/koobiq-components-dl.mjs +126 -0
  637. package/fesm2022/koobiq-components-dl.mjs.map +1 -0
  638. package/fesm2022/koobiq-components-dropdown.mjs +1102 -0
  639. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -0
  640. package/fesm2022/koobiq-components-ellipsis-center.mjs +111 -0
  641. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -0
  642. package/fesm2022/koobiq-components-file-upload.mjs +388 -0
  643. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -0
  644. package/fesm2022/koobiq-components-form-field.mjs +825 -0
  645. package/fesm2022/koobiq-components-form-field.mjs.map +1 -0
  646. package/fesm2022/koobiq-components-icon.mjs +188 -0
  647. package/fesm2022/koobiq-components-icon.mjs.map +1 -0
  648. package/fesm2022/koobiq-components-input.mjs +831 -0
  649. package/fesm2022/koobiq-components-input.mjs.map +1 -0
  650. package/fesm2022/koobiq-components-link.mjs +159 -0
  651. package/fesm2022/koobiq-components-link.mjs.map +1 -0
  652. package/fesm2022/koobiq-components-list.mjs +800 -0
  653. package/fesm2022/koobiq-components-list.mjs.map +1 -0
  654. package/fesm2022/koobiq-components-loader-overlay.mjs +155 -0
  655. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -0
  656. package/fesm2022/koobiq-components-markdown.mjs +127 -0
  657. package/fesm2022/koobiq-components-markdown.mjs.map +1 -0
  658. package/fesm2022/koobiq-components-modal.mjs +868 -0
  659. package/fesm2022/koobiq-components-modal.mjs.map +1 -0
  660. package/fesm2022/koobiq-components-navbar.mjs +1037 -0
  661. package/fesm2022/koobiq-components-navbar.mjs.map +1 -0
  662. package/fesm2022/koobiq-components-popover.mjs +407 -0
  663. package/fesm2022/koobiq-components-popover.mjs.map +1 -0
  664. package/fesm2022/koobiq-components-progress-bar.mjs +110 -0
  665. package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -0
  666. package/fesm2022/koobiq-components-progress-spinner.mjs +125 -0
  667. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -0
  668. package/fesm2022/koobiq-components-radio.mjs +481 -0
  669. package/fesm2022/koobiq-components-radio.mjs.map +1 -0
  670. package/fesm2022/koobiq-components-select.mjs +1278 -0
  671. package/fesm2022/koobiq-components-select.mjs.map +1 -0
  672. package/fesm2022/koobiq-components-sidebar.mjs +202 -0
  673. package/fesm2022/koobiq-components-sidebar.mjs.map +1 -0
  674. package/fesm2022/koobiq-components-sidepanel.mjs +613 -0
  675. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -0
  676. package/fesm2022/koobiq-components-splitter.mjs +524 -0
  677. package/fesm2022/koobiq-components-splitter.mjs.map +1 -0
  678. package/fesm2022/koobiq-components-table.mjs +45 -0
  679. package/fesm2022/koobiq-components-table.mjs.map +1 -0
  680. package/fesm2022/koobiq-components-tabs.mjs +1499 -0
  681. package/fesm2022/koobiq-components-tabs.mjs.map +1 -0
  682. package/fesm2022/koobiq-components-tags.mjs +1383 -0
  683. package/fesm2022/koobiq-components-tags.mjs.map +1 -0
  684. package/fesm2022/koobiq-components-textarea.mjs +277 -0
  685. package/fesm2022/koobiq-components-textarea.mjs.map +1 -0
  686. package/fesm2022/koobiq-components-timepicker.mjs +706 -0
  687. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -0
  688. package/fesm2022/koobiq-components-timezone.mjs +314 -0
  689. package/fesm2022/koobiq-components-timezone.mjs.map +1 -0
  690. package/fesm2022/koobiq-components-title.mjs +125 -0
  691. package/fesm2022/koobiq-components-title.mjs.map +1 -0
  692. package/fesm2022/koobiq-components-toast.mjs +375 -0
  693. package/fesm2022/koobiq-components-toast.mjs.map +1 -0
  694. package/fesm2022/koobiq-components-toggle.mjs +182 -0
  695. package/fesm2022/koobiq-components-toggle.mjs.map +1 -0
  696. package/fesm2022/koobiq-components-tooltip.mjs +370 -0
  697. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -0
  698. package/fesm2022/koobiq-components-tree-select.mjs +978 -0
  699. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -0
  700. package/fesm2022/koobiq-components-tree.mjs +1802 -0
  701. package/fesm2022/koobiq-components-tree.mjs.map +1 -0
  702. package/fesm2022/koobiq-components.mjs +4 -0
  703. package/fesm2022/koobiq-components.mjs.map +1 -0
  704. package/file-upload/README.md +0 -0
  705. package/file-upload/_file-upload-theme.scss +174 -0
  706. package/file-upload/file-drop.d.ts +11 -0
  707. package/file-upload/file-upload.d.ts +22 -0
  708. package/file-upload/file-upload.module.d.ts +18 -0
  709. package/file-upload/file-upload.scss +46 -0
  710. package/file-upload/index.d.ts +1 -0
  711. package/file-upload/multiple-file-upload.component.d.ts +51 -0
  712. package/file-upload/multiple-file-upload.component.scss +148 -0
  713. package/file-upload/public-api.d.ts +5 -0
  714. package/file-upload/single-file-upload.component.d.ts +34 -0
  715. package/file-upload/single-file-upload.component.scss +60 -0
  716. package/form-field/README.md +0 -0
  717. package/form-field/_form-field-theme.scss +112 -0
  718. package/form-field/_hint-theme.scss +67 -0
  719. package/form-field/cleaner.d.ts +5 -0
  720. package/form-field/cleaner.scss +22 -0
  721. package/form-field/form-field-control.d.ts +37 -0
  722. package/form-field/form-field-errors.d.ts +2 -0
  723. package/form-field/form-field.d.ts +84 -0
  724. package/form-field/form-field.module.d.ts +17 -0
  725. package/form-field/form-field.scss +143 -0
  726. package/form-field/hint.d.ts +17 -0
  727. package/form-field/hint.scss +15 -0
  728. package/form-field/index.d.ts +1 -0
  729. package/form-field/password-hint.d.ts +40 -0
  730. package/form-field/password-hint.scss +11 -0
  731. package/form-field/password-toggle.d.ts +18 -0
  732. package/form-field/password-toggle.scss +29 -0
  733. package/form-field/prefix.d.ts +5 -0
  734. package/form-field/public-api.d.ts +12 -0
  735. package/form-field/stepper.d.ts +11 -0
  736. package/form-field/stepper.scss +33 -0
  737. package/form-field/suffix.d.ts +5 -0
  738. package/form-field/validate.directive.d.ts +33 -0
  739. package/icon/README.md +0 -0
  740. package/icon/_icon-theme.scss +267 -0
  741. package/icon/icon.component.d.ts +47 -0
  742. package/icon/icon.module.d.ts +10 -0
  743. package/icon/icon.scss +73 -0
  744. package/icon/index.d.ts +1 -0
  745. package/icon/public-api.d.ts +2 -0
  746. package/index.d.ts +1 -0
  747. package/input/_input-theme.scss +13 -0
  748. package/input/index.d.ts +1 -0
  749. package/input/input-errors.d.ts +1 -0
  750. package/input/input-number-validators.d.ts +35 -0
  751. package/input/input-number.d.ts +33 -0
  752. package/input/input-password.d.ts +92 -0
  753. package/input/input-value-accessor.d.ts +4 -0
  754. package/input/input.d.ts +117 -0
  755. package/input/input.module.d.ts +15 -0
  756. package/input/input.scss +48 -0
  757. package/input/public-api.d.ts +6 -0
  758. package/link/README.md +0 -0
  759. package/link/_link-theme.scss +178 -0
  760. package/link/index.d.ts +1 -0
  761. package/link/link.component.d.ts +47 -0
  762. package/link/link.module.d.ts +9 -0
  763. package/link/public-api.d.ts +2 -0
  764. package/list/README.md +0 -0
  765. package/list/_list-base.scss +54 -0
  766. package/list/_list-theme.scss +47 -0
  767. package/list/index.d.ts +1 -0
  768. package/list/list-selection.component.d.ts +172 -0
  769. package/list/list.component.d.ts +18 -0
  770. package/list/list.module.d.ts +11 -0
  771. package/list/list.scss +52 -0
  772. package/list/public-api.d.ts +3 -0
  773. package/loader-overlay/README.md +0 -0
  774. package/loader-overlay/_loader-overlay-theme.scss +34 -0
  775. package/loader-overlay/index.d.ts +1 -0
  776. package/loader-overlay/loader-overlay.component.d.ts +34 -0
  777. package/loader-overlay/loader-overlay.module.d.ts +11 -0
  778. package/loader-overlay/loader-overlay.scss +64 -0
  779. package/loader-overlay/public-api.d.ts +2 -0
  780. package/markdown/README.md +0 -0
  781. package/markdown/_markdown-theme.scss +142 -0
  782. package/markdown/index.d.ts +1 -0
  783. package/markdown/markdown.component.d.ts +19 -0
  784. package/markdown/markdown.module.d.ts +11 -0
  785. package/markdown/markdown.scss +249 -0
  786. package/markdown/markdown.service.d.ts +7 -0
  787. package/markdown/markdown.values.d.ts +3 -0
  788. package/markdown/public-api.d.ts +4 -0
  789. package/modal/README.md +34 -0
  790. package/modal/_modal-animation.scss +114 -0
  791. package/modal/_modal-confirm.scss +53 -0
  792. package/modal/_modal-theme.scss +90 -0
  793. package/modal/css-unit.pipe.d.ts +7 -0
  794. package/modal/index.d.ts +1 -0
  795. package/modal/modal-control.service.d.ts +20 -0
  796. package/modal/modal-ref.class.d.ts +36 -0
  797. package/modal/modal-util.d.ts +12 -0
  798. package/modal/modal.component.d.ts +128 -0
  799. package/modal/modal.directive.d.ts +17 -0
  800. package/modal/modal.module.d.ts +14 -0
  801. package/modal/modal.scss +143 -0
  802. package/modal/modal.service.d.ts +33 -0
  803. package/modal/modal.type.d.ts +61 -0
  804. package/modal/public-api.d.ts +6 -0
  805. package/navbar/README.md +41 -0
  806. package/navbar/_navbar-theme.scss +123 -0
  807. package/navbar/index.d.ts +1 -0
  808. package/navbar/navbar-brand.scss +70 -0
  809. package/navbar/navbar-divider.scss +18 -0
  810. package/navbar/navbar-item.component.d.ts +167 -0
  811. package/navbar/navbar-item.scss +159 -0
  812. package/navbar/navbar.component.d.ts +58 -0
  813. package/navbar/navbar.module.d.ts +14 -0
  814. package/navbar/navbar.scss +20 -0
  815. package/navbar/public-api.d.ts +4 -0
  816. package/navbar/vertical-navbar.animation.d.ts +2 -0
  817. package/navbar/vertical-navbar.component.d.ts +23 -0
  818. package/navbar/vertical-navbar.scss +46 -0
  819. package/package.json +323 -0
  820. package/popover/README.md +32 -0
  821. package/popover/_popover-theme.scss +111 -0
  822. package/popover/index.d.ts +1 -0
  823. package/popover/popover-animations.d.ts +4 -0
  824. package/popover/popover-confirm.component.d.ts +33 -0
  825. package/popover/popover.component.d.ts +75 -0
  826. package/popover/popover.module.d.ts +12 -0
  827. package/popover/popover.scss +114 -0
  828. package/popover/public-api.d.ts +4 -0
  829. package/prebuilt-themes/dark-theme.css +1 -0
  830. package/prebuilt-themes/light-theme.css +1 -0
  831. package/progress-bar/README.md +0 -0
  832. package/progress-bar/_progress-bar-theme.scss +41 -0
  833. package/progress-bar/index.d.ts +1 -0
  834. package/progress-bar/progress-bar.component.d.ts +28 -0
  835. package/progress-bar/progress-bar.module.d.ts +9 -0
  836. package/progress-bar/progress-bar.scss +68 -0
  837. package/progress-bar/public-api.d.ts +2 -0
  838. package/progress-spinner/README.md +0 -0
  839. package/progress-spinner/_progress-spinner-theme.scss +35 -0
  840. package/progress-spinner/index.d.ts +1 -0
  841. package/progress-spinner/progress-spinner.component.d.ts +34 -0
  842. package/progress-spinner/progress-spinner.module.d.ts +9 -0
  843. package/progress-spinner/progress-spinner.scss +72 -0
  844. package/progress-spinner/public-api.d.ts +2 -0
  845. package/public-api.d.ts +1 -0
  846. package/radio/_radio-theme.scss +95 -0
  847. package/radio/index.d.ts +1 -0
  848. package/radio/public-api.d.ts +2 -0
  849. package/radio/radio.component.d.ts +204 -0
  850. package/radio/radio.module.d.ts +10 -0
  851. package/radio/radio.scss +143 -0
  852. package/select/README.md +0 -0
  853. package/select/_select-theme.scss +55 -0
  854. package/select/index.d.ts +1 -0
  855. package/select/public-api.d.ts +3 -0
  856. package/select/select-option.directive.d.ts +20 -0
  857. package/select/select.component.d.ts +330 -0
  858. package/select/select.module.d.ts +15 -0
  859. package/select/select.scss +222 -0
  860. package/sidebar/index.d.ts +1 -0
  861. package/sidebar/public-api.d.ts +2 -0
  862. package/sidebar/sidebar-animations.d.ts +8 -0
  863. package/sidebar/sidebar.component.d.ts +53 -0
  864. package/sidebar/sidebar.module.d.ts +8 -0
  865. package/sidebar/sidebar.scss +12 -0
  866. package/sidepanel/_sidepanel-theme.scss +67 -0
  867. package/sidepanel/index.d.ts +1 -0
  868. package/sidepanel/public-api.d.ts +6 -0
  869. package/sidepanel/sidepanel-animations.d.ts +14 -0
  870. package/sidepanel/sidepanel-config.d.ts +31 -0
  871. package/sidepanel/sidepanel-container.component.d.ts +46 -0
  872. package/sidepanel/sidepanel-directives.d.ts +50 -0
  873. package/sidepanel/sidepanel-ref.d.ts +24 -0
  874. package/sidepanel/sidepanel.module.d.ts +16 -0
  875. package/sidepanel/sidepanel.scss +203 -0
  876. package/sidepanel/sidepanel.service.d.ts +57 -0
  877. package/splitter/_splitter-theme.scss +31 -0
  878. package/splitter/index.d.ts +1 -0
  879. package/splitter/public-api.d.ts +2 -0
  880. package/splitter/splitter.component.d.ts +130 -0
  881. package/splitter/splitter.module.d.ts +9 -0
  882. package/splitter/splitter.scss +48 -0
  883. package/table/README.md +0 -0
  884. package/table/_table-theme.scss +65 -0
  885. package/table/index.d.ts +1 -0
  886. package/table/public-api.d.ts +2 -0
  887. package/table/table.component.d.ts +5 -0
  888. package/table/table.module.d.ts +10 -0
  889. package/table/table.scss +76 -0
  890. package/tabs/README.md +0 -0
  891. package/tabs/_tabs-common.scss +197 -0
  892. package/tabs/_tabs-theme.scss +240 -0
  893. package/tabs/index.d.ts +1 -0
  894. package/tabs/paginated-tab-header.d.ts +179 -0
  895. package/tabs/public-api.d.ts +10 -0
  896. package/tabs/tab-body.component.d.ts +95 -0
  897. package/tabs/tab-body.scss +8 -0
  898. package/tabs/tab-content.directive.d.ts +9 -0
  899. package/tabs/tab-group.component.d.ts +134 -0
  900. package/tabs/tab-group.scss +63 -0
  901. package/tabs/tab-header.component.d.ts +35 -0
  902. package/tabs/tab-header.scss +106 -0
  903. package/tabs/tab-label-wrapper.directive.d.ts +31 -0
  904. package/tabs/tab-label.directive.d.ts +9 -0
  905. package/tabs/tab-nav-bar/index.d.ts +1 -0
  906. package/tabs/tab-nav-bar/tab-nav-bar.d.ts +40 -0
  907. package/tabs/tab-nav-bar/tab-nav-bar.scss +54 -0
  908. package/tabs/tab.component.d.ts +68 -0
  909. package/tabs/tabs-animations.d.ts +4 -0
  910. package/tabs/tabs.module.d.ts +21 -0
  911. package/tags/README.md +0 -0
  912. package/tags/_tag-theme.scss +100 -0
  913. package/tags/index.d.ts +1 -0
  914. package/tags/public-api.d.ts +5 -0
  915. package/tags/tag-default-options.d.ts +8 -0
  916. package/tags/tag-input.d.ts +87 -0
  917. package/tags/tag-list.component.d.ts +246 -0
  918. package/tags/tag-list.scss +66 -0
  919. package/tags/tag-text-control.d.ts +10 -0
  920. package/tags/tag.component.d.ts +140 -0
  921. package/tags/tag.module.d.ts +11 -0
  922. package/tags/tag.scss +67 -0
  923. package/textarea/README.md +0 -0
  924. package/textarea/_textarea-theme.scss +13 -0
  925. package/textarea/index.d.ts +1 -0
  926. package/textarea/public-api.d.ts +2 -0
  927. package/textarea/textarea.component.d.ts +114 -0
  928. package/textarea/textarea.module.d.ts +11 -0
  929. package/textarea/textarea.scss +45 -0
  930. package/timepicker/README.md +0 -0
  931. package/timepicker/index.d.ts +1 -0
  932. package/timepicker/public-api.d.ts +3 -0
  933. package/timepicker/timepicker.constants.d.ts +20 -0
  934. package/timepicker/timepicker.directive.d.ts +141 -0
  935. package/timepicker/timepicker.module.d.ts +11 -0
  936. package/timepicker/timepicker.scss +18 -0
  937. package/timezone/README.md +0 -0
  938. package/timezone/_timezone-option-theme.scss +34 -0
  939. package/timezone/cities-by-filter.pipe.d.ts +7 -0
  940. package/timezone/index.d.ts +1 -0
  941. package/timezone/public-api.d.ts +6 -0
  942. package/timezone/timezone-option.component.d.ts +15 -0
  943. package/timezone/timezone-option.component.scss +35 -0
  944. package/timezone/timezone-option.directive.d.ts +20 -0
  945. package/timezone/timezone-select.component.d.ts +14 -0
  946. package/timezone/timezone.models.d.ts +16 -0
  947. package/timezone/timezone.module.d.ts +19 -0
  948. package/timezone/timezone.utils.d.ts +18 -0
  949. package/timezone/utc-offset.pipe.d.ts +7 -0
  950. package/title/index.d.ts +1 -0
  951. package/title/public-api.d.ts +2 -0
  952. package/title/title.directive.d.ts +31 -0
  953. package/title/title.module.d.ts +8 -0
  954. package/toast/_toast-theme.scss +61 -0
  955. package/toast/index.d.ts +1 -0
  956. package/toast/public-api.d.ts +5 -0
  957. package/toast/toast-animations.d.ts +4 -0
  958. package/toast/toast-container.component.d.ts +15 -0
  959. package/toast/toast-container.component.scss +23 -0
  960. package/toast/toast.component.d.ts +35 -0
  961. package/toast/toast.component.scss +76 -0
  962. package/toast/toast.module.d.ts +13 -0
  963. package/toast/toast.service.d.ts +51 -0
  964. package/toast/toast.type.d.ts +27 -0
  965. package/toggle/_toggle-theme.scss +98 -0
  966. package/toggle/index.d.ts +1 -0
  967. package/toggle/public-api.d.ts +2 -0
  968. package/toggle/toggle.component.d.ts +57 -0
  969. package/toggle/toggle.module.d.ts +10 -0
  970. package/toggle/toggle.scss +99 -0
  971. package/tooltip/_tooltip-theme.scss +49 -0
  972. package/tooltip/index.d.ts +1 -0
  973. package/tooltip/public-api.d.ts +2 -0
  974. package/tooltip/tooltip.animations.d.ts +8 -0
  975. package/tooltip/tooltip.component.d.ts +94 -0
  976. package/tooltip/tooltip.module.d.ts +9 -0
  977. package/tooltip/tooltip.scss +54 -0
  978. package/tree/_tree-theme.scss +69 -0
  979. package/tree/control/base-tree-control.d.ts +40 -0
  980. package/tree/control/flat-tree-control.d.ts +53 -0
  981. package/tree/control/nested-tree-control.d.ts +19 -0
  982. package/tree/control/tree-control.d.ts +44 -0
  983. package/tree/data-source/flat-data-source.d.ts +80 -0
  984. package/tree/data-source/nested-data-source.d.ts +15 -0
  985. package/tree/index.d.ts +1 -0
  986. package/tree/node.d.ts +34 -0
  987. package/tree/outlet.d.ts +9 -0
  988. package/tree/padding.directive.d.ts +47 -0
  989. package/tree/public-api.d.ts +15 -0
  990. package/tree/toggle.d.ts +30 -0
  991. package/tree/toggle.scss +35 -0
  992. package/tree/tree-base.d.ts +97 -0
  993. package/tree/tree-errors.d.ts +25 -0
  994. package/tree/tree-option.component.d.ts +80 -0
  995. package/tree/tree-option.scss +67 -0
  996. package/tree/tree-selection.component.d.ts +134 -0
  997. package/tree/tree-selection.scss +3 -0
  998. package/tree/tree.d.ts +6 -0
  999. package/tree/tree.module.d.ts +16 -0
  1000. package/tree/tree.scss +3 -0
  1001. package/tree-select/README.md +0 -0
  1002. package/tree-select/_tree-select-theme.scss +41 -0
  1003. package/tree-select/index.d.ts +1 -0
  1004. package/tree-select/public-api.d.ts +2 -0
  1005. package/tree-select/tree-select.component.d.ts +283 -0
  1006. package/tree-select/tree-select.module.d.ts +14 -0
  1007. package/tree-select/tree-select.scss +225 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"koobiq-components-datepicker.mjs","sources":["../../../packages/components/datepicker/calendar-body.component.ts","../../../packages/components/datepicker/calendar-body.html","../../../packages/components/datepicker/calendar-header.component.ts","../../../packages/components/datepicker/calendar-header.html","../../../packages/components/datepicker/datepicker-errors.ts","../../../packages/components/datepicker/datepicker-intl.ts","../../../packages/components/datepicker/month-view.component.ts","../../../packages/components/datepicker/month-view.html","../../../packages/components/datepicker/calendar.component.ts","../../../packages/components/datepicker/calendar.html","../../../packages/components/datepicker/datepicker-animations.ts","../../../packages/components/datepicker/datepicker.component.ts","../../../packages/components/datepicker/datepicker-content.html","../../../packages/components/datepicker/datepicker-input.directive.ts","../../../packages/components/datepicker/datepicker-toggle.component.ts","../../../packages/components/datepicker/datepicker-toggle.html","../../../packages/components/datepicker/datepicker-module.ts","../../../packages/components/datepicker/koobiq-components-datepicker.ts"],"sourcesContent":["// tslint:disable:no-magic-numbers\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n OnChanges,\n SimpleChanges\n} from '@angular/core';\n\n\n/**\n * Extra CSS classes that can be associated with a calendar cell.\n */\nexport type KbqCalendarCellCssClasses = string | string[] | Set<string> | { [key: string]: any };\n\n/**\n * An internal class that represents the data corresponding to a single calendar cell.\n * @docs-private\n */\nexport class KbqCalendarCell {\n constructor(\n public value: number,\n public displayValue: string,\n public enabled: boolean,\n public cssClasses?: KbqCalendarCellCssClasses\n ) {}\n}\n\n\n/**\n * An internal component used to display calendar data in a table.\n * @docs-private\n */\n@Component({\n selector: '[kbq-calendar-body]',\n exportAs: 'mcCalendarBody',\n templateUrl: 'calendar-body.html',\n styleUrls: ['calendar-body.scss'],\n host: {\n class: 'kbq-calendar__body'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqCalendarBody implements OnChanges {\n /** The cells to display in the table. */\n @Input() rows: KbqCalendarCell[][];\n\n /** The value in the table that corresponds to today. */\n @Input() todayValue: number;\n\n /** The value in the table that is currently selected. */\n @Input() selectedValue: number;\n\n /** The minimum number of free cells needed to fit the label in the first row. */\n @Input() labelMinRequiredCells: number;\n\n /** The number of columns in the table. */\n @Input() numCols = 7;\n\n /** The cell number of the active cell in the table. */\n @Input() activeCell = 0;\n\n /**\n * The aspect ratio (width / height) to use for the cells in the table. This aspect ratio will be\n * maintained even as the table resizes.\n */\n @Input() cellAspectRatio = 1;\n\n /** Emits when a new value is selected. */\n @Output() readonly selectedValueChange: EventEmitter<number> = new EventEmitter<number>();\n\n /** The number of blank cells to put at the beginning for the first row. */\n firstRowOffset: number;\n\n /** Padding for the individual date cells. */\n cellPadding: string;\n\n /** Width of an individual cell. */\n cellWidth: string;\n\n cellClicked(cell: KbqCalendarCell): void {\n if (cell.enabled) {\n this.selectedValueChange.emit(cell.value);\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const columnChanges = changes.numCols;\n // tslint:disable-next-line:no-this-assignment\n const { rows, numCols } = this;\n\n if (changes.rows || columnChanges) {\n this.firstRowOffset = rows && rows.length && rows[0].length ? numCols - rows[0].length : 0;\n }\n\n if (changes.cellAspectRatio || columnChanges || !this.cellPadding) {\n this.cellPadding = `${this.cellAspectRatio * 50 / numCols}%`;\n }\n\n if (columnChanges || !this.cellWidth) {\n this.cellWidth = `${100 / numCols}%`;\n }\n }\n\n isActiveCell(rowIndex: number, colIndex: number): boolean {\n let cellNumber = rowIndex * this.numCols + colIndex;\n\n // Account for the fact that the first row may not have as many cells.\n if (rowIndex) {\n cellNumber -= this.firstRowOffset;\n }\n\n return cellNumber === this.activeCell;\n }\n}\n","<!-- Create the first row separately so we can include a special spacer cell. -->\n<tr *ngFor=\"let row of rows; let rowIndex = index\">\n <!--\n We mark this cell as aria-hidden so it doesn't get read out as one of the days in the week.\n The aspect ratio of the table cells is maintained by setting the top and bottom padding as a\n percentage of the width (a variant of the trick described here:\n https://www.w3schools.com/howto/howto_css_aspect_ratio.asp).\n -->\n <td *ngIf=\"rowIndex === 0 && firstRowOffset\"\n class=\"kbq-calendar__body-label\"\n [attr.colspan]=\"firstRowOffset\">\n </td>\n\n <td *ngFor=\"let item of row; let colIndex = index\"\n class=\"kbq-calendar__body-cell\"\n [ngClass]=\"item.cssClasses!\"\n [tabindex]=\"isActiveCell(rowIndex, colIndex) ? 0 : -1\"\n [class.kbq-calendar__body_disabled]=\"!item.enabled\"\n [class.kbq-calendar__body_active]=\"isActiveCell(rowIndex, colIndex)\"\n (click)=\"cellClicked(item)\"\n [style.width]=\"cellWidth\"\n [style.paddingTop]=\"cellPadding\"\n [style.paddingBottom]=\"cellPadding\">\n <div class=\"kbq-calendar__body-cell-content\"\n [class.kbq-selected]=\"selectedValue === item.value\"\n [class.kbq-calendar__body-today]=\"todayValue === item.value\">\n {{ item.displayValue }}\n </div>\n </td>\n</tr>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation\n} from '@angular/core';\nimport { DateAdapter } from '@koobiq/components/core';\n\n\nconst defaultMinYear = 1900;\nconst defaultMaxYear = 2099;\n\n/** Default header for KbqCalendar */\n@Component({\n selector: 'kbq-calendar-header',\n exportAs: 'mcCalendarHeader',\n templateUrl: 'calendar-header.html',\n styleUrls: ['calendar-header.scss'],\n host: {\n class: 'kbq-calendar-header'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqCalendarHeader<D> implements AfterContentInit {\n monthNames: { name: string; value: number }[];\n selectedMonth: number;\n\n years: number[] = [];\n selectedYear: number;\n\n @Input()\n get activeDate(): D {\n return this._activeDate;\n }\n\n set activeDate(value: D) {\n this._activeDate = value;\n\n this.updateSelectedValues();\n }\n\n private _activeDate: D;\n\n @Input()\n get maxDate(): D | null {\n return this._maxDate;\n }\n\n set maxDate(value: D | null) {\n if (!value) { return; }\n\n this._maxDate = value;\n\n this.updateYearsArray();\n }\n\n // tslint:disable-next-line:no-magic-numbers\n private _maxDate = this.adapter.createDate(defaultMaxYear, 11);\n\n @Input()\n get minDate(): D | null {\n return this._minDate;\n }\n\n set minDate(value: D | null) {\n if (!value) { return; }\n\n this._minDate = value;\n\n this.updateYearsArray();\n }\n\n private _minDate = this.adapter.createDate(defaultMinYear, 1);\n\n get previousDisabled(): boolean {\n return this.compareDate(this.activeDate, this.minDate!) < 0;\n }\n\n get nextDisabled(): boolean {\n return this.compareDate(this.activeDate, this.maxDate!) >= 0;\n }\n\n /** Emits when any date is activated. */\n @Output() readonly activeDateChange = new EventEmitter<D>();\n @Output() readonly monthSelected = new EventEmitter<D>();\n @Output() readonly yearSelected = new EventEmitter<D>();\n\n constructor(private readonly adapter: DateAdapter<D>) {\n this.monthNames = this.adapter.getMonthNames('long')\n .map((name, i) => ({ name, value: i }));\n }\n\n ngAfterContentInit(): void {\n this.updateYearsArray();\n this.updateSelectedValues();\n }\n\n /** Handles when a new month is selected. */\n onMonthSelected(month: number) {\n const year = this.adapter.getYear(this.activeDate);\n const normalizedDate = this.adapter.createDate(year, month);\n const daysInMonth = this.adapter.getNumDaysInMonth(normalizedDate);\n\n this.activeDate = this.adapter.createDate(\n year,\n month,\n Math.min(this.adapter.getDate(this.activeDate), daysInMonth)\n );\n\n this.monthSelected.emit(this.activeDate);\n this.activeDateChange.emit(this.activeDate);\n }\n\n /** Handles when a new year is selected. */\n onYearSelected(year: number) {\n const month = this.adapter.getMonth(this.activeDate);\n const daysInMonth = this.adapter.getNumDaysInMonth(this.adapter.createDate(year, month));\n\n this.activeDate = this.adapter.createDate(\n year,\n month,\n Math.min(this.adapter.getDate(this.activeDate), daysInMonth)\n );\n\n this.yearSelected.emit(this.activeDate);\n this.activeDateChange.emit(this.activeDate);\n }\n\n selectCurrentDate(): void {\n this.activeDate = this.adapter.today();\n\n this.activeDateChange.emit(this.activeDate);\n }\n\n /** Handles user clicks on the previous button. */\n selectPreviousMonth(): void {\n this.activeDate = this.adapter.addCalendarMonths(this.activeDate, -1);\n\n this.activeDateChange.emit(this.activeDate);\n }\n\n /** Handles user clicks on the next button. */\n selectNextMonth(): void {\n this.activeDate = this.adapter.addCalendarMonths(this.activeDate, 1);\n\n this.activeDateChange.emit(this.activeDate);\n }\n\n private compareDate(first: D, second: D): number {\n const normalizedFirst = this.adapter.createDate(\n this.adapter.getYear(first),\n this.adapter.getMonth(first)\n );\n\n const normalizedSecond = this.adapter.createDate(\n this.adapter.getYear(second),\n this.adapter.getMonth(second)\n );\n\n return this.adapter.compareDate(normalizedFirst, normalizedSecond);\n }\n\n private updateSelectedValues() {\n this.selectedMonth = this.monthNames[this.adapter.getMonth(this.activeDate)].value;\n\n const selectedYear = this.adapter.getYear(this.activeDate);\n this.selectedYear = this.years.includes(selectedYear) ? selectedYear : this.years[0];\n }\n\n private updateYearsArray() {\n const minYear = this.adapter.getYear(this.minDate!);\n const maxYear = this.adapter.getYear(this.maxDate!);\n\n this.years = [];\n\n for (let i: number = minYear; i <= maxYear; i++) {\n this.years.push(i);\n }\n }\n}\n","<div class=\"kbq-calendar-header__select-group\">\n <kbq-select\n class=\"kbq-calendar-header__select\"\n #monthSelect=\"mcSelect\"\n [value]=\"selectedMonth\"\n [panelClass]=\"'kbq-calendar-select-panel'\"\n (selectionChange)=\"onMonthSelected($event.value)\">\n\n <button class=\"kbq-button_transparent layout-padding-right-xs\"\n kbq-button\n kbq-select-matcher\n [class.kbq-active]=\"monthSelect.panelOpen\"\n [tabindex]=\"-1\">\n {{ monthSelect.triggerValue }}\n\n <i class=\"layout-padding-left-3xs\" kbq-icon=\"mc-angle-down-S_16\"></i>\n </button>\n\n <kbq-option *ngFor=\"let month of monthNames\"\n [mcTooltipDisabled]=\"true\"\n [value]=\"month.value\">\n {{ month.name }}\n </kbq-option>\n </kbq-select>\n\n <kbq-select\n #yearSelect=\"mcSelect\"\n [value]=\"selectedYear\"\n [panelClass]=\"'kbq-calendar-select-panel'\"\n (selectionChange)=\"onYearSelected($event.value)\">\n <button class=\"kbq-button_transparent layout-padding-right-xs\"\n kbq-button\n kbq-select-matcher\n [class.kbq-active]=\"yearSelect.panelOpen\"\n [tabindex]=\"-1\">\n {{ yearSelect.triggerValue }}\n\n <i class=\"layout-padding-left-3xs\" kbq-icon=\"mc-angle-down-S_16\"></i>\n </button>\n\n <kbq-option *ngFor=\"let year of years\"\n [mcTooltipDisabled]=\"true\"\n [value]=\"year\">\n {{ year }}\n </kbq-option>\n </kbq-select>\n</div>\n\n<div class=\"kbq-calendar-header__button-group\">\n <button kbq-button\n class=\"kbq-button_transparent kbq-calendar-header__previous-button\"\n [tabindex]=\"-1\"\n [disabled]=\"previousDisabled\"\n (click)=\"selectPreviousMonth()\">\n\n <i kbq-icon=\"mc-angle-left-L_16\"></i>\n </button>\n\n <button kbq-button\n class=\"kbq-button_transparent\"\n [tabindex]=\"-1\"\n (click)=\"selectCurrentDate()\">\n\n <i kbq-icon=\"mc-circle-8_16\"></i>\n </button>\n\n <button kbq-button\n class=\"kbq-button_transparent kbq-calendar-header__next-button\"\n [tabindex]=\"-1\"\n [disabled]=\"nextDisabled\"\n (click)=\"selectNextMonth()\">\n\n <i kbq-icon=\"mc-angle-right-L_16\"></i>\n </button>\n</div>\n","/** @docs-private */\nexport function createMissingDateImplError(provider: string) {\n return Error(\n `KbqDatepicker: No provider found for ${provider}. You must import one of the existing ` +\n `modules at your application root or provide a custom implementation or use exists ones.`);\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n\n/** Datepicker data that requires internationalization. */\n@Injectable({ providedIn: 'root' })\nexport class KbqDatepickerIntl {\n /**\n * Stream that emits whenever the labels here are changed. Use this to notify\n * components if the labels have changed after initialization.\n */\n readonly changes: Subject<void> = new Subject<void>();\n\n /** A label for the calendar popup (used by screen readers). */\n calendarLabel: string = 'Calendar';\n\n /** A label for the button used to open the calendar popup (used by screen readers). */\n openCalendarLabel: string = 'Open calendar';\n\n /** A label for the previous month button (used by screen readers). */\n prevMonthLabel: string = 'Previous month';\n\n /** A label for the next month button (used by screen readers). */\n nextMonthLabel: string = 'Next month';\n\n /** A label for the previous year button (used by screen readers). */\n prevYearLabel: string = 'Previous year';\n\n /** A label for the next year button (used by screen readers). */\n nextYearLabel: string = 'Next year';\n\n /** A label for the previous multi-year button (used by screen readers). */\n prevMultiYearLabel: string = 'Previous 20 years';\n\n /** A label for the next multi-year button (used by screen readers). */\n nextMultiYearLabel: string = 'Next 20 years';\n\n /** A label for the 'switch to month view' button (used by screen readers). */\n switchToMonthViewLabel: string = 'Choose date';\n\n /** A label for the 'switch to year view' button (used by screen readers). */\n switchToMultiYearViewLabel: string = 'Choose month and year';\n}\n","// tslint:disable:no-magic-numbers\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Inject,\n Input,\n Optional,\n Output,\n ViewEncapsulation,\n ViewChild\n} from '@angular/core';\nimport { DateAdapter, KBQ_DATE_FORMATS, KbqDateFormats } from '@koobiq/components/core';\n\nimport { KbqCalendarBody, KbqCalendarCell, KbqCalendarCellCssClasses } from './calendar-body.component';\nimport { createMissingDateImplError } from './datepicker-errors';\n\n\nconst DAYS_PER_WEEK = 7;\n\n\n/**\n * An internal component used to display a single month in the datepicker.\n * @docs-private\n */\n@Component({\n selector: 'kbq-month-view',\n exportAs: 'mcMonthView',\n templateUrl: 'month-view.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqMonthView<D> implements AfterContentInit {\n /**\n * The date to display in this month view (everything other than the month and year is ignored).\n */\n @Input()\n get activeDate(): D {\n return this._activeDate;\n }\n\n set activeDate(value: D) {\n const oldValue = this._activeDate;\n this._activeDate = value;\n\n if (!this.hasSameMonthAndYear(oldValue, value)) {\n this.init();\n }\n }\n\n private _activeDate: D;\n\n /** The currently selected date. */\n @Input()\n get selected(): D | null {\n return this._selected;\n }\n\n set selected(value: D | null) {\n this._selected = value;\n this.selectedDate = this.getDateInCurrentMonth(this._selected);\n }\n\n private _selected: D | null;\n\n /** The minimum selectable date. */\n @Input() minDate: D | null;\n\n /** The maximum selectable date. */\n @Input() maxDate: D | null;\n\n /** Function used to filter which dates are selectable. */\n @Input() dateFilter: (date: D) => boolean;\n\n /** Function that can be used to add custom CSS classes to dates. */\n @Input() dateClass: (date: D) => KbqCalendarCellCssClasses;\n\n /** Emits when a new date is selected. */\n @Output() readonly selectedChange: EventEmitter<D | null> = new EventEmitter<D | null>();\n\n /** Emits when any date is selected. */\n @Output() readonly userSelection: EventEmitter<void> = new EventEmitter<void>();\n\n /** Emits when any date is activated. */\n @Output() readonly activeDateChange: EventEmitter<D> = new EventEmitter<D>();\n\n /** The body of calendar table */\n @ViewChild(KbqCalendarBody, { static: false }) mcCalendarBody: KbqCalendarBody;\n\n /** Grid of calendar cells representing the dates of the month. */\n weeks: KbqCalendarCell[][];\n\n /** The number of blank cells in the first row before the 1st of the month. */\n firstWeekOffset: number;\n\n /**\n * The date of the month that the currently selected Date falls on.\n * Null if the currently selected Date is in another month.\n */\n selectedDate: number | null;\n\n /** The date of the month that today falls on. Null if today is in another month. */\n todayDate: number | null;\n\n /** The names of the weekdays. */\n weekdays: { long: string; narrow: string }[];\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n @Optional() @Inject(KBQ_DATE_FORMATS) private readonly dateFormats: KbqDateFormats,\n @Optional() public adapter: DateAdapter<D>\n ) {\n\n if (!this.adapter) {\n throw createMissingDateImplError('DateAdapter');\n }\n\n if (!this.dateFormats) {\n throw createMissingDateImplError('KBQ_DATE_FORMATS');\n }\n\n const firstDayOfWeek = this.adapter.getFirstDayOfWeek();\n const narrowWeekdays = this.adapter.getDayOfWeekNames('short');\n const longWeekdays = this.adapter.getDayOfWeekNames('long');\n\n // Rotate the labels for days of the week based on the configured first day of the week.\n const weekdays = longWeekdays.map((long, i) => {\n return { long, narrow: narrowWeekdays[i] };\n });\n\n this.weekdays = weekdays\n .slice(firstDayOfWeek)\n .concat(weekdays.slice(0, firstDayOfWeek));\n\n this._activeDate = this.adapter.today();\n }\n\n ngAfterContentInit() {\n this.init();\n }\n\n /** Handles when a new date is selected. */\n dateSelected(date: number) {\n if (this.selectedDate !== date) {\n const selectedYear = this.adapter.getYear(this.activeDate);\n const selectedMonth = this.adapter.getMonth(this.activeDate);\n const selectedDate = this.adapter.createDate(selectedYear, selectedMonth, date);\n\n this.selectedChange.emit(selectedDate);\n }\n\n this.userSelection.emit();\n }\n\n /** Initializes this month view. */\n init() {\n this.selectedDate = this.getDateInCurrentMonth(this.selected);\n this.todayDate = this.getDateInCurrentMonth(this.adapter.today());\n\n const firstOfMonth = this.adapter.createDate(\n this.adapter.getYear(this.activeDate),\n this.adapter.getMonth(this.activeDate)\n );\n\n this.firstWeekOffset = (\n DAYS_PER_WEEK + this.adapter.getDayOfWeek(firstOfMonth) - this.adapter.getFirstDayOfWeek()\n ) % DAYS_PER_WEEK;\n\n this.createWeekCells();\n this.changeDetectorRef.markForCheck();\n }\n\n /** Creates KbqCalendarCells for the dates in this month. */\n private createWeekCells() {\n const daysInMonth = this.adapter.getNumDaysInMonth(this.activeDate);\n const dateNames = this.adapter.getDateNames();\n\n this.weeks = [[]];\n\n for (let i = 0, cell = this.firstWeekOffset; i < daysInMonth; i++, cell++) {\n if (cell === DAYS_PER_WEEK) {\n this.weeks.push([]);\n cell = 0;\n }\n\n const date = this.adapter.createDate(\n this.adapter.getYear(this.activeDate),\n this.adapter.getMonth(this.activeDate),\n i + 1\n );\n const enabled = this.shouldEnableDate(date);\n const cellClasses = this.dateClass ? this.dateClass(date) : undefined;\n\n this.weeks[this.weeks.length - 1]\n .push(new KbqCalendarCell(i + 1, dateNames[i], enabled, cellClasses));\n }\n }\n\n /** Date filter for the month */\n private shouldEnableDate(date: D): boolean {\n return !!date &&\n (!this.dateFilter || this.dateFilter(date)) &&\n (!this.minDate || this.adapter.compareDate(date, this.minDate) >= 0) &&\n (!this.maxDate || this.adapter.compareDate(date, this.maxDate) <= 0);\n }\n\n /**\n * Gets the date in this month that the given Date falls on.\n * Returns null if the given Date is in another month.\n */\n private getDateInCurrentMonth(date: D | null): number | null {\n return date && this.hasSameMonthAndYear(date, this.activeDate) ? this.adapter.getDate(date) : null;\n }\n\n /** Checks whether the 2 dates are non-null and fall within the same month of the same year. */\n private hasSameMonthAndYear(d1: D | null, d2: D | null): boolean {\n return !!(d1 && d2 && this.adapter.getMonth(d1) === this.adapter.getMonth(d2) &&\n this.adapter.getYear(d1) === this.adapter.getYear(d2));\n }\n}\n","<table class=\"kbq-calendar__table\">\n <thead class=\"kbq-calendar__table-header\">\n <tr>\n <th *ngFor=\"let day of weekdays\" [attr.aria-label]=\"day.long\">{{day.narrow}}</th>\n </tr>\n <tr>\n <th class=\"kbq-calendar__table-header-divider\" colspan=\"7\"></th>\n </tr>\n </thead>\n <tbody kbq-calendar-body\n [rows]=\"weeks\"\n [todayValue]=\"todayDate!\"\n [selectedValue]=\"selectedDate!\"\n [labelMinRequiredCells]=\"3\"\n [activeCell]=\"adapter.getDate(activeDate) - 1\"\n (selectedValueChange)=\"dateSelected($event)\">\n </tbody>\n</table>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n Output,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { DateAdapter, KBQ_DATE_FORMATS, KbqDateFormats } from '@koobiq/components/core';\nimport { Subject, Subscription } from 'rxjs';\n\nimport { KbqCalendarCellCssClasses } from './calendar-body.component';\nimport { createMissingDateImplError } from './datepicker-errors';\nimport { KbqDatepickerIntl } from './datepicker-intl';\nimport { KbqMonthView } from './month-view.component';\n\n\n/**\n * A calendar that is used as part of the datepicker.\n * @docs-private\n */\n@Component({\n selector: 'kbq-calendar',\n exportAs: 'mcCalendar',\n templateUrl: 'calendar.html',\n styleUrls: ['calendar.scss'],\n host: {\n class: 'kbq-calendar'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqCalendar<D> implements AfterContentInit, OnDestroy, OnChanges {\n\n /** A date representing the period (month or year) to start the calendar in. */\n @Input()\n get startAt(): D | null {\n return this._startAt;\n }\n\n set startAt(value: D | null) {\n const deserializedValue = this.getValidDateOrNull(this.adapter.deserialize(value));\n\n this._startAt = deserializedValue !== null ?\n this.adapter.clampDate(deserializedValue, this.minDate, this.maxDate) : null;\n }\n\n private _startAt: D | null;\n\n /** The currently selected date. */\n @Input()\n get selected(): D | null {\n return this._selected;\n }\n\n set selected(value: D | null) {\n this._selected = this.adapter.deserialize(value);\n }\n\n private _selected: D | null;\n\n /** The minimum selectable date. */\n @Input()\n get minDate(): D | null {\n return this._minDate;\n }\n\n set minDate(value: D | null) {\n this._minDate = this.adapter.deserialize(value);\n\n this.startAt = this._startAt;\n }\n\n private _minDate: D | null;\n\n /** The maximum selectable date. */\n @Input()\n get maxDate(): D | null {\n return this._maxDate;\n }\n\n set maxDate(value: D | null) {\n this._maxDate = this.adapter.deserialize(value);\n\n this.startAt = this._startAt;\n }\n\n private _maxDate: D | null;\n\n /**\n * The current active date. This determines which time period is shown and which date is\n * highlighted and used as the anchor on when using keyboard navigation.\n */\n get activeDate(): D {\n return this._activeDate;\n }\n\n set activeDate(value: D | null) {\n this._activeDate = this.adapter.clampDate(value || this.getActiveDateDefault(), this.minDate, this.maxDate);\n\n this.stateChanges.next();\n }\n\n private _activeDate: D;\n\n /** Function used to filter which dates are selectable. */\n @Input() dateFilter: (date: D) => boolean;\n\n /** Function that can be used to add custom CSS classes to dates. */\n @Input() dateClass: (date: D) => KbqCalendarCellCssClasses;\n\n /** Emits when the currently selected date changes. */\n @Output() readonly selectedChange: EventEmitter<D> = new EventEmitter<D>();\n\n /**\n * Emits the year chosen in multiyear view.\n * This doesn't imply a change on the selected date.\n */\n @Output() readonly yearSelected: EventEmitter<D> = new EventEmitter<D>();\n\n /**\n * Emits the month chosen in year view.\n * This doesn't imply a change on the selected date.\n */\n @Output() readonly monthSelected: EventEmitter<D> = new EventEmitter<D>();\n\n /** Emits when any date is selected. */\n @Output() readonly userSelection: EventEmitter<void> = new EventEmitter<void>();\n\n /** Reference to the current month view component. */\n @ViewChild(KbqMonthView, { static: false }) monthView: KbqMonthView<D>;\n\n /**\n * Emits whenever there is a state change that the header may need to respond to.\n */\n stateChanges = new Subject<void>();\n\n private readonly intlChanges: Subscription;\n\n constructor(\n intl: KbqDatepickerIntl,\n @Optional() private readonly adapter: DateAdapter<D>,\n @Optional() @Inject(KBQ_DATE_FORMATS) private readonly dateFormats: KbqDateFormats,\n private changeDetectorRef: ChangeDetectorRef\n ) {\n if (!this.adapter) {\n throw createMissingDateImplError('DateAdapter');\n }\n\n if (!this.dateFormats) {\n throw createMissingDateImplError('KBQ_DATE_FORMATS');\n }\n\n this.intlChanges = intl.changes.subscribe(() => {\n changeDetectorRef.markForCheck();\n this.stateChanges.next();\n });\n }\n\n ngAfterContentInit() {\n this.activeDate = this.getActiveDateDefault();\n }\n\n ngOnDestroy() {\n this.intlChanges.unsubscribe();\n this.stateChanges.complete();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const change = changes.minDate || changes.maxDate || changes.dateFilter;\n\n if (change && !change.firstChange) {\n if (this.monthView) {\n // We need to `detectChanges` manually here, because the `minDate`, `maxDate` etc. are\n // passed down to the view via data bindings which won't be up-to-date when we call `init`.\n this.changeDetectorRef.detectChanges();\n this.monthView.init();\n }\n }\n\n this.stateChanges.next();\n }\n\n /** Updates today's date after an update of the active date */\n updateTodaysDate() {\n this.monthView.ngAfterContentInit();\n }\n\n /** Handles date selection in the month view. */\n dateSelected(date: D): void {\n if (!this.adapter.sameDate(date, this.selected)) {\n this.selectedChange.emit(date);\n }\n }\n\n userSelected(): void {\n this.userSelection.emit();\n }\n\n /**\n * @param obj The object to check.\n * @returns The given object if it is both a date instance and valid, otherwise null.\n */\n // todo выглядит как костыль от которого нужно избавиться\n private getValidDateOrNull(obj: any): D | null {\n return (this.adapter.isDateInstance(obj) && this.adapter.isValid(obj)) ? obj : null;\n }\n\n private getActiveDateDefault(): D {\n return this.startAt || this.adapter.today();\n }\n}\n\n","<kbq-calendar-header\n [(activeDate)]=\"activeDate\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n (monthSelected)=\"monthSelected.emit(activeDate)\"\n (yearSelected)=\"yearSelected.emit(activeDate)\">\n</kbq-calendar-header>\n\n<div class=\"kbq-calendar__content\">\n <kbq-month-view\n [(activeDate)]=\"activeDate\"\n [selected]=\"selected\"\n [dateFilter]=\"dateFilter\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n [dateClass]=\"dateClass\"\n (selectedChange)=\"dateSelected($event!)\"\n (userSelection)=\"userSelected()\">\n </kbq-month-view>\n</div>\n","import {\n animate,\n state,\n style,\n transition,\n trigger,\n AnimationTriggerMetadata\n} from '@angular/animations';\n\n\n/**\n * Animations used by the mosaic datepicker.\n * @docs-private\n */\nexport const mcDatepickerAnimations: {\n readonly transformPanel: AnimationTriggerMetadata;\n readonly fadeInCalendar: AnimationTriggerMetadata;\n} = {\n /** Transforms the height of the datepicker's calendar. */\n transformPanel: trigger('transformPanel', [\n state('void', style({\n opacity: 0,\n transform: 'scale(1, 0.8)'\n })),\n transition('void => enter', animate('120ms cubic-bezier(0, 0, 0.2, 1)', style({\n opacity: 1,\n transform: 'scale(1, 1)'\n }))),\n transition('* => void', animate('100ms linear', style({ opacity: 0 })))\n ]),\n\n /** Fades in the content of the calendar. */\n fadeInCalendar: trigger('fadeInCalendar', [\n state('void', style({ opacity: 0 })),\n state('enter', style({ opacity: 1 })),\n\n // need to keep it until #12440 gets in, otherwise the exit animation will look glitchy.\n transition('void => *', animate('120ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)'))\n ])\n};\n\n// todo should be put into polyfils\n// https://github.com/angular/angular/issues/24769\nif (!Element.prototype.matches) {\n Element.prototype.matches = (Element.prototype as any).msMatchesSelector;\n}\n","// tslint:disable:no-unbound-method\n// tslint:disable:no-magic-numbers\nimport { Directionality } from '@angular/cdk/bidi';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n Overlay,\n OverlayConfig,\n OverlayRef,\n PositionStrategy,\n ScrollStrategy\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n EventEmitter,\n Inject,\n InjectionToken,\n Input,\n NgZone,\n OnDestroy,\n Optional,\n Output,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { DateAdapter } from '@koobiq/components/core';\nimport { KbqFormFieldControl } from '@koobiq/components/form-field';\nimport { merge, Subject, Subscription } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\nimport { KbqCalendarCellCssClasses } from './calendar-body.component';\nimport { KbqCalendar } from './calendar.component';\nimport { mcDatepickerAnimations } from './datepicker-animations';\nimport { createMissingDateImplError } from './datepicker-errors';\nimport { KbqDatepickerInput } from './datepicker-input.directive';\n\n\n/** Used to generate a unique ID for each datepicker instance. */\nlet datepickerUid = 0;\n\n/** Injection token that determines the scroll handling while the calendar is open. */\nexport const KBQ_DATEPICKER_SCROLL_STRATEGY =\n new InjectionToken<() => ScrollStrategy>('kbq-datepicker-scroll-strategy');\n\n/** @docs-private */\n// tslint:disable-next-line:naming-convention\nexport function KBQ_DATEPICKER_SCROLL_STRATEGY_FACTORY(overlay: Overlay): () => ScrollStrategy {\n return () => overlay.scrollStrategies.reposition();\n}\n\n/** @docs-private */\nexport const KBQ_DATEPICKER_SCROLL_STRATEGY_FACTORY_PROVIDER = {\n provide: KBQ_DATEPICKER_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: KBQ_DATEPICKER_SCROLL_STRATEGY_FACTORY\n};\n\n/**\n * Component used as the content for the datepicker dialog and popup. We use this instead of using\n * KbqCalendar directly as the content so we can control the initial focus. This also gives us a\n * place to put additional features of the popup that are not part of the calendar itself in the\n * future. (e.g. confirmation buttons).\n * @docs-private\n */\n@Component({\n selector: 'kbq-datepicker__content',\n exportAs: 'mcDatepickerContent',\n templateUrl: 'datepicker-content.html',\n styleUrls: ['datepicker-content.scss'],\n host: {\n class: 'kbq-datepicker__content',\n\n '[@transformPanel]': 'animationState',\n '(@transformPanel.done)': 'animationDone.next()'\n },\n animations: [\n mcDatepickerAnimations.transformPanel,\n mcDatepickerAnimations.fadeInCalendar\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqDatepickerContent<D> implements OnDestroy {\n /** Emits when an animation has finished. */\n readonly animationDone = new Subject<void>();\n\n /** Reference to the datepicker that created the overlay. */\n datepicker: KbqDatepicker<D>;\n\n /** Current state of the animation. */\n animationState: 'enter' | 'void';\n\n /** Reference to the internal calendar component. */\n @ViewChild(KbqCalendar) calendar: KbqCalendar<D>;\n\n private subscriptions = new Subscription();\n\n constructor(private changeDetectorRef: ChangeDetectorRef) {}\n\n ngAfterViewInit() {\n this.subscriptions.add(this.datepicker.stateChanges.subscribe(() => {\n this.changeDetectorRef.markForCheck();\n }));\n }\n\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n this.animationDone.complete();\n }\n\n startExitAnimation() {\n this.animationState = 'void';\n this.changeDetectorRef.markForCheck();\n }\n}\n\n\n// TODO: We use a component instead of a directive here so the user can use implicit\n// template reference variables (e.g. #d vs #d=\"mcDatepicker\"). We can change this to a directive\n// if angular adds support for `exportAs: '$implicit'` on directives.\n/** Component responsible for managing the datepicker popup/dialog. */\n@Component({\n selector: 'kbq-datepicker',\n template: '',\n exportAs: 'mcDatepicker',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: KbqFormFieldControl, useExisting: KbqDatepicker }]\n})\nexport class KbqDatepicker<D> implements OnDestroy {\n @Input()\n get hasBackdrop(): boolean {\n return this._hasBackdrop;\n }\n\n set hasBackdrop(value: boolean) {\n this._hasBackdrop = coerceBooleanProperty(value);\n }\n\n private _hasBackdrop: boolean = false;\n\n /** The date to open the calendar to initially. */\n @Input()\n get startAt(): D | null {\n // If an explicit startAt is set we start there, otherwise we start at whatever the currently\n // selected value is.\n return this._startAt || this.datepickerInput?.value;\n }\n\n set startAt(value: D | null) {\n const deserializedValue = this.dateAdapter.deserialize(value);\n\n this._startAt = deserializedValue !== null ?\n this.dateAdapter.clampDate(deserializedValue, this.minDate, this.maxDate) : null;\n }\n\n private _startAt: D | null;\n\n /** Whether the datepicker pop-up should be disabled. */\n @Input()\n get disabled(): boolean {\n return this._disabled === undefined && this.datepickerInput ? this.datepickerInput.disabled : this._disabled;\n }\n\n set disabled(value: boolean) {\n const newValue = coerceBooleanProperty(value);\n\n if (newValue !== this._disabled) {\n this._disabled = newValue;\n this.disabledChange.next(newValue);\n }\n }\n\n private _disabled: boolean;\n\n /** Whether the calendar is open. */\n @Input()\n get opened(): boolean {\n return this._opened;\n }\n\n set opened(value: boolean) {\n coerceBooleanProperty(value) ? this.open() : this.close();\n }\n\n private _opened = false;\n\n /** The currently selected date. */\n get selected(): D | null {\n return this.validSelected;\n }\n\n set selected(value: D | null) {\n this.validSelected = value;\n }\n\n get dateFilter(): (date: D | null) => boolean {\n return this.datepickerInput && this.datepickerInput.dateFilter;\n }\n\n get value(): D | null {\n return this.selected;\n }\n\n /** The minimum selectable date. */\n @Input() minDate: D | null;\n\n /** The maximum selectable date. */\n @Input() maxDate: D | null;\n\n /**\n * Emits selected year in multiyear view.\n * This doesn't imply a change on the selected date.\n */\n @Output() readonly yearSelected: EventEmitter<D> = new EventEmitter<D>();\n\n /**\n * Emits selected month in year view.\n * This doesn't imply a change on the selected date.\n */\n @Output() readonly monthSelected: EventEmitter<D> = new EventEmitter<D>();\n\n /** Classes to be passed to the date picker panel. Supports the same syntax as `ngClass`. */\n @Input() panelClass: string | string[];\n\n /** Function that can be used to add custom CSS classes to dates. */\n @Input() dateClass: (date: D) => KbqCalendarCellCssClasses;\n\n @Input() backdropClass: string = 'cdk-overlay-transparent-backdrop';\n\n /** Emits when the datepicker has been opened. */\n @Output('opened') openedStream: EventEmitter<void> = new EventEmitter<void>();\n\n /** Emits when the datepicker has been closed. */\n @Output('closed') closedStream: EventEmitter<void> = new EventEmitter<void>();\n\n readonly stateChanges: Subject<void> = new Subject<void>();\n\n /** Emits when the datepicker is disabled. */\n readonly disabledChange = new Subject<boolean>();\n\n /** Emits new selected date when selected date changes. */\n readonly selectedChanged = new Subject<D>();\n\n /** The id for the datepicker calendar. */\n id: string = `kbq-datepicker-${datepickerUid++}`;\n\n /** A reference to the overlay when the calendar is opened as a popup. */\n popupRef: OverlayRef | null;\n\n /** The input element this datepicker is associated with. */\n datepickerInput: KbqDatepickerInput<D>;\n\n private scrollStrategy: () => ScrollStrategy;\n\n private validSelected: D | null = null;\n\n /** A portal containing the calendar for this datepicker. */\n private calendarPortal: ComponentPortal<KbqDatepickerContent<D>>;\n\n /** Reference to the component instantiated in popup mode. */\n private popupComponentRef: ComponentRef<KbqDatepickerContent<D>> | null;\n\n /** The element that was focused before the datepicker was opened. */\n private focusedElementBeforeOpen: HTMLElement | null = null;\n\n /** Subscription to value changes in the associated input element. */\n private inputSubscription = Subscription.EMPTY;\n\n private closeSubscription = Subscription.EMPTY;\n\n constructor(\n private overlay: Overlay,\n private ngZone: NgZone,\n private viewContainerRef: ViewContainerRef,\n @Inject(KBQ_DATEPICKER_SCROLL_STRATEGY) scrollStrategy: any,\n @Optional() private readonly dateAdapter: DateAdapter<D>,\n @Optional() private dir: Directionality,\n @Optional() @Inject(DOCUMENT) private document: any\n ) {\n if (!this.dateAdapter) {\n throw createMissingDateImplError('DateAdapter');\n }\n\n this.scrollStrategy = scrollStrategy;\n }\n\n ngOnDestroy() {\n this.close();\n this.inputSubscription.unsubscribe();\n this.closeSubscription.unsubscribe();\n this.disabledChange.complete();\n\n this.destroyOverlay();\n }\n\n /** Selects the given date */\n select(date: D): void {\n const oldValue = this.selected;\n this.selected = date;\n\n if (!this.dateAdapter.sameDate(oldValue, this.selected)) {\n this.selectedChanged.next(date);\n }\n }\n\n /** Emits the selected year in multiyear view */\n selectYear(normalizedYear: D): void {\n this.yearSelected.emit(normalizedYear);\n }\n\n /** Emits selected month in year view */\n selectMonth(normalizedMonth: D): void {\n this.monthSelected.emit(normalizedMonth);\n }\n\n /**\n * Register an input with this datepicker.\n * @param input The datepicker input to register with this datepicker.\n */\n registerInput(input: KbqDatepickerInput<D>): void {\n if (this.datepickerInput) {\n throw Error('A KbqDatepicker can only be associated with a single input.');\n }\n\n this.datepickerInput = input;\n this.inputSubscription = this.datepickerInput.valueChange\n .subscribe((value: D | null) => {\n this.selected = value;\n\n if (this.popupComponentRef) {\n this.popupComponentRef.instance.calendar.monthView?.init();\n this.popupComponentRef.instance.calendar.activeDate = value as D;\n }\n });\n }\n\n /** Open the calendar. */\n open(): void {\n if (this._opened || this.disabled) { return; }\n\n if (!this.datepickerInput) {\n throw Error('Attempted to open an KbqDatepicker with no associated input.');\n }\n\n if (this.document) {\n this.focusedElementBeforeOpen = this.document.activeElement;\n }\n\n this.openAsPopup();\n\n this._opened = true;\n this.openedStream.emit();\n }\n\n /** Close the calendar. */\n close(restoreFocus: boolean = true): void {\n if (!this._opened) { return; }\n\n if (this.popupComponentRef) {\n const instance = this.popupComponentRef.instance;\n\n instance.startExitAnimation();\n\n instance.animationDone\n .pipe(take(1))\n .subscribe(() => this.destroyOverlay());\n }\n\n if (restoreFocus) {\n this.focusedElementBeforeOpen!.focus();\n }\n\n this._opened = false;\n this.closedStream.emit();\n this.focusedElementBeforeOpen = null;\n }\n\n toggle(): void {\n if (this.datepickerInput.isReadOnly) { return; }\n\n this._opened ? this.close() : this.open();\n }\n\n /** Destroys the current overlay. */\n private destroyOverlay() {\n if (this.popupRef) {\n this.popupRef.dispose();\n this.popupRef = this.popupComponentRef = null;\n }\n }\n\n /** Open the calendar as a popup. */\n private openAsPopup(): void {\n if (!this.calendarPortal) {\n this.calendarPortal = new ComponentPortal<KbqDatepickerContent<D>>(\n KbqDatepickerContent, this.viewContainerRef\n );\n }\n\n if (!this.popupRef) {\n this.createPopup();\n }\n\n if (!this.popupRef!.hasAttached()) {\n this.popupComponentRef = this.popupRef!.attach(this.calendarPortal);\n this.popupComponentRef.instance.datepicker = this;\n\n // Update the position once the calendar has rendered.\n this.ngZone.onStable.asObservable()\n .pipe(take(1))\n .subscribe(() => this.popupRef?.updatePosition());\n }\n }\n\n /** Create the popup. */\n private createPopup(): void {\n const overlayConfig = new OverlayConfig({\n positionStrategy: this.createPopupPositionStrategy(),\n hasBackdrop: this.hasBackdrop,\n backdropClass: this.backdropClass,\n direction: this.dir,\n scrollStrategy: this.scrollStrategy(),\n panelClass: 'kbq-datepicker__popup'\n });\n\n this.popupRef = this.overlay.create(overlayConfig);\n\n this.closeSubscription = this.closingActions()\n .subscribe(() => this.close(this.restoreFocus()));\n }\n\n private restoreFocus(): boolean {\n return this.document.activeElement === this.document.body;\n }\n\n private closingActions() {\n return merge(\n this.popupRef!.backdropClick(),\n this.popupRef!.outsidePointerEvents(),\n this.popupRef!.detachments()\n );\n }\n\n /** Create the popup PositionStrategy. */\n private createPopupPositionStrategy(): PositionStrategy {\n return this.overlay.position()\n .flexibleConnectedTo(this.datepickerInput.elementRef)\n .withTransformOriginOn('.kbq-datepicker__content')\n .withFlexibleDimensions(false)\n .withViewportMargin(8)\n .withLockedPosition()\n .withPositions([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom'\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top'\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom'\n }\n ]);\n }\n}\n","<kbq-calendar [id]=\"datepicker.id\"\n [@fadeInCalendar]=\"'enter'\"\n [ngClass]=\"datepicker.panelClass\"\n [dateClass]=\"datepicker.dateClass\"\n\n [startAt]=\"datepicker.startAt\"\n [minDate]=\"datepicker.minDate\"\n [maxDate]=\"datepicker.maxDate\"\n [dateFilter]=\"datepicker.dateFilter\"\n\n [selected]=\"datepicker.selected\"\n\n (selectedChange)=\"datepicker.select($event)\"\n (yearSelected)=\"datepicker.selectYear($event)\"\n (monthSelected)=\"datepicker.selectMonth($event)\"\n (userSelection)=\"datepicker.close()\">\n</kbq-calendar>\n","// tslint:disable:no-empty, deprecation\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n OnDestroy,\n Optional,\n Output,\n Renderer2\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n ValidatorFn,\n Validators\n} from '@angular/forms';\nimport {\n UP_ARROW,\n RIGHT_ARROW,\n DOWN_ARROW,\n LEFT_ARROW,\n END,\n PAGE_DOWN,\n HOME,\n PAGE_UP,\n SPACE,\n TAB,\n ESCAPE,\n DELETE,\n BACKSPACE,\n hasModifierKey,\n isHorizontalMovement,\n isLetterKey,\n isVerticalMovement\n} from '@koobiq/cdk/keycodes';\nimport {\n DateAdapter,\n KBQ_DATE_FORMATS,\n KBQ_LOCALE_SERVICE,\n KbqDateFormats,\n KbqLocaleService,\n validationTooltipHideDelay,\n validationTooltipShowDelay\n} from '@koobiq/components/core';\nimport { KbqFormFieldControl } from '@koobiq/components/form-field';\nimport { KbqWarningTooltipTrigger } from '@koobiq/components/tooltip';\nimport { Subject, Subscription } from 'rxjs';\n\nimport { createMissingDateImplError } from './datepicker-errors';\nimport { KbqDatepicker } from './datepicker.component';\n\n\n// tslint:disable:naming-convention\nenum DateParts {\n year = 'y',\n month = 'm',\n day = 'd'\n}\n\nexport const MAX_YEAR = 9999;\nconst YEAR_LENGTH = 4;\n\nclass DateDigit {\n maxDays = 31;\n maxMonth = 12;\n\n parse: (value: string) => number;\n\n constructor(public value: DateParts, public start: number, public length: number) {\n if (value === DateParts.day) {\n this.parse = this.parseDay;\n } else if (value === DateParts.month) {\n this.parse = this.parseMonth;\n } else if (value === DateParts.year) {\n this.parse = this.parseYear;\n }\n }\n\n get end(): number {\n return this.start + this.length;\n }\n\n get isDay(): boolean {\n return this.value === DateParts.day;\n }\n\n get isMonth(): boolean {\n return this.value === DateParts.month;\n }\n\n get isYear(): boolean {\n return this.value === DateParts.year;\n }\n\n get fullName(): string {\n if (this.isDay) { return 'date'; }\n\n if (this.isMonth) { return 'month'; }\n\n if (this.isYear) { return 'year'; }\n\n return '';\n }\n\n private parseDay(value: string): number {\n const parsedValue: number = parseInt(value);\n\n if (parsedValue === 0) { return 1; }\n\n if (parsedValue > this.maxDays) { return this.maxDays; }\n\n return parsedValue;\n }\n\n private parseMonth(value: string): number {\n const parsedValue: number = parseInt(value);\n\n if (parsedValue === 0) { return 1; }\n\n if (parsedValue > this.maxMonth) { return this.maxMonth; }\n\n return parsedValue;\n }\n\n private parseYear(value: string): number {\n const parsedValue: number = parseInt(value);\n\n if (parsedValue === 0) { return 1; }\n\n if (parsedValue > MAX_YEAR) { return parseInt(value.substring(0, YEAR_LENGTH)); }\n\n return parsedValue;\n }\n}\n\n/** @docs-private */\nexport const KBQ_DATEPICKER_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => KbqDatepickerInput),\n multi: true\n};\n\n/** @docs-private */\nexport const KBQ_DATEPICKER_VALIDATORS: any = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => KbqDatepickerInput),\n multi: true\n};\n\n\n/**\n * An event used for datepicker input and change events. We don't always have access to a native\n * input or change event because the event may have been triggered by the user clicking on the\n * calendar popup. For consistency, we always use KbqDatepickerInputEvent instead.\n */\nexport class KbqDatepickerInputEvent<D> {\n /** The new value for the target datepicker input. */\n value: D | null;\n\n constructor(\n /** Reference to the datepicker input component that emitted the event. */\n public target: KbqDatepickerInput<D>,\n /** Reference to the native input element associated with the datepicker input. */\n public targetElement: HTMLElement\n ) {\n this.value = this.target.value;\n }\n}\n\nlet uniqueComponentIdSuffix = 0;\n\ninterface DateTimeObject {\n year: number;\n month: number;\n date: number;\n hours: number;\n minutes: number;\n seconds: number;\n milliseconds: number;\n}\n\n\n/** Directive used to connect an input to a KbqDatepicker. */\n@Directive({\n selector: 'input[mcDatepicker]',\n exportAs: 'mcDatepickerInput',\n providers: [\n KBQ_DATEPICKER_VALUE_ACCESSOR,\n KBQ_DATEPICKER_VALIDATORS,\n { provide: KbqFormFieldControl, useExisting: KbqDatepickerInput }\n ],\n host: {\n class: 'kbq-input kbq-datepicker',\n '[attr.placeholder]': 'placeholder',\n '[attr.required]': 'required',\n '[attr.disabled]': 'disabled || null',\n '[attr.min]': 'min ? toISO8601(min) : null',\n '[attr.max]': 'max ? toISO8601(max) : null',\n '[attr.autocomplete]': '\"off\"',\n\n '(paste)': 'onPaste($event)',\n '(change)': 'onChange()',\n\n '(focus)': 'focusChanged(true)',\n '(blur)': 'onBlur()',\n\n '(keydown)': 'onKeyDown($event)'\n }\n})\nexport class KbqDatepickerInput<D> implements KbqFormFieldControl<D>, ControlValueAccessor, Validator, OnDestroy {\n readonly stateChanges: Subject<void> = new Subject<void>();\n\n readonly errorState: boolean;\n\n controlType: string = 'datepicker';\n\n focused: boolean = false;\n\n datepicker: KbqDatepicker<D>;\n\n dateFilter: (date: D | null) => boolean;\n\n /** Emits when the value changes (either due to user input or programmatic change). */\n valueChange = new EventEmitter<D | null>();\n\n /** Emits when the disabled state has changed */\n disabledChange = new EventEmitter<boolean>();\n\n @Input()\n get placeholder(): string {\n return this._placeholder;\n }\n\n set placeholder(value: string) {\n this._placeholder = value;\n this.usePlaceholderFromInput = true;\n }\n\n private _placeholder: string = '';\n\n @Input()\n get required(): boolean {\n return this._required;\n }\n\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n }\n\n private _required: boolean;\n\n /** The datepicker that this input is associated with. */\n @Input()\n set mcDatepicker(value: KbqDatepicker<D>) {\n if (!value) { return; }\n\n this.datepicker = value;\n this.datepicker.registerInput(this);\n this.datepickerSubscription.unsubscribe();\n\n this.datepickerSubscription = this.datepicker.selectedChanged\n .subscribe((selected: D) => {\n const newValue = this.saveTimePart(selected);\n\n this.value = newValue;\n this.cvaOnChange(newValue);\n this.onTouched();\n this.dateChange.emit(new KbqDatepickerInputEvent(this, this.elementRef.nativeElement));\n });\n }\n\n /** Function that can be used to filter out dates within the datepicker. */\n @Input()\n set mcDatepickerFilter(value: (date: D | null) => boolean) {\n this.dateFilter = value;\n this.validatorOnChange();\n }\n\n /** The value of the input. */\n @Input()\n get value(): D | null {\n return this._value;\n }\n\n set value(value: D | null) {\n let newValue = this.adapter.deserialize(value);\n\n this.lastValueValid = !newValue || this.adapter.isValid(newValue);\n\n newValue = this.getValidDateOrNull(newValue);\n\n const oldDate = this.value;\n this._value = newValue;\n this.formatValue(newValue);\n\n if (!this.adapter.sameDate(oldDate, newValue)) {\n this.valueChange.emit(newValue);\n }\n }\n\n private _value: D | null;\n\n /** The minimum valid date. */\n @Input()\n get min(): D | null {\n return this._min;\n }\n\n set min(value: D | null) {\n this._min = this.adapter.deserialize(value);\n this.validatorOnChange();\n }\n\n private _min: D | null;\n\n /** The maximum valid date. */\n @Input()\n get max(): D | null {\n return this._max;\n }\n\n set max(value: D | null) {\n this._max = this.adapter.deserialize(value);\n this.validatorOnChange();\n }\n\n private _max: D | null;\n\n /** Whether the datepicker-input is disabled. */\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n const newValue = coerceBooleanProperty(value);\n const element = this.elementRef.nativeElement;\n\n if (this._disabled !== newValue) {\n this._disabled = newValue;\n this.disabledChange.emit(newValue);\n }\n\n // We need to null check the `blur` method, because it's undefined during SSR.\n if (newValue && element.blur) {\n // Normally, native input elements automatically blur if they turn disabled. This behavior\n // is problematic, because it would mean that it triggers another change detection cycle,\n // which then causes a changed after checked error if the input element was focused before.\n element.blur();\n }\n }\n\n private _disabled: boolean = false;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this.uid;\n }\n\n private _id: string;\n\n @Input()\n set mcValidationTooltip(tooltip: KbqWarningTooltipTrigger) {\n if (!tooltip) { return; }\n\n tooltip.enterDelay = validationTooltipShowDelay;\n tooltip.trigger = 'manual';\n\n tooltip.initListeners();\n\n this.incorrectInput.subscribe(() => {\n if (tooltip.isOpen) { return; }\n\n tooltip.show();\n\n setTimeout(() => tooltip.hide(), validationTooltipHideDelay);\n });\n }\n\n @Output() incorrectInput = new EventEmitter<void>();\n\n /** Emits when a `change` event is fired on this `<input>`. */\n @Output() readonly dateChange = new EventEmitter<KbqDatepickerInputEvent<D>>();\n\n /** Emits when an `input` event is fired on this `<input>`. */\n @Output() readonly dateInput = new EventEmitter<KbqDatepickerInputEvent<D>>();\n\n get empty(): boolean {\n return !this.viewValue && !this.isBadInput();\n }\n\n get viewValue(): string {\n return this.elementRef.nativeElement.value;\n }\n\n get ngControl(): any {\n return this.control;\n }\n\n get isReadOnly(): boolean {\n return this.elementRef.nativeElement.readOnly;\n }\n\n get dateInputFormat(): string {\n return this.localeService?.getParams('datepicker').dateInput || this.dateFormats.dateInput;\n }\n\n private get readyForParse(): boolean {\n return !!(this.firstDigit && this.secondDigit && this.thirdDigit);\n }\n\n private get selectionStart(): number | null {\n return this.elementRef.nativeElement.selectionStart;\n }\n\n private set selectionStart(value: number | null) {\n this.elementRef.nativeElement.selectionStart = value;\n }\n\n private get selectionEnd(): number | null {\n return this.elementRef.nativeElement.selectionEnd;\n }\n\n private set selectionEnd(value: number | null) {\n this.elementRef.nativeElement.selectionEnd = value;\n }\n\n private control: AbstractControl;\n private readonly uid = `kbq-datepicker-${uniqueComponentIdSuffix++}`;\n\n private datepickerSubscription = Subscription.EMPTY;\n\n private localeSubscription = Subscription.EMPTY;\n\n /** Whether the last value set on the input was valid. */\n private lastValueValid = false;\n\n /** The combined form control validator for this input. */\n private readonly validator: ValidatorFn | null;\n\n private separator: string;\n\n private firstDigit: DateDigit | null = null;\n private secondDigit: DateDigit | null = null;\n private thirdDigit: DateDigit | null = null;\n\n private separatorPositions: number[];\n\n private usePlaceholderFromInput: boolean = false;\n\n constructor(\n public elementRef: ElementRef<HTMLInputElement>,\n private readonly renderer: Renderer2,\n @Optional() readonly adapter: DateAdapter<D>,\n @Optional() @Inject(KBQ_DATE_FORMATS) private readonly dateFormats: KbqDateFormats,\n @Optional() @Inject(KBQ_LOCALE_SERVICE) private localeService: KbqLocaleService\n ) {\n this.validator = Validators.compose([\n this.parseValidator,\n this.minValidator,\n this.maxValidator,\n this.filterValidator\n ]);\n\n if (!this.adapter) {\n throw createMissingDateImplError('DateAdapter');\n }\n\n if (!this.dateFormats) {\n throw createMissingDateImplError('KBQ_DATE_FORMATS');\n }\n\n this.setFormat(this.dateInputFormat);\n\n this.localeSubscription = adapter.localeChanges\n .subscribe(this.updateLocaleParams);\n }\n\n onContainerClick() {\n this.focus();\n }\n\n focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n focusChanged(isFocused: boolean): void {\n if (isFocused !== this.focused) {\n this.focused = isFocused;\n this.onTouched();\n this.stateChanges.next();\n }\n }\n\n // tslint:disable-next-line:no-empty\n onTouched = () => {};\n\n ngOnDestroy() {\n this.datepickerSubscription.unsubscribe();\n this.localeSubscription.unsubscribe();\n this.valueChange.complete();\n this.disabledChange.complete();\n }\n\n /** @docs-private */\n registerOnValidatorChange(fn: () => void): void {\n this.validatorOnChange = fn;\n }\n\n /** @docs-private */\n validate(control: AbstractControl): ValidationErrors | null {\n this.setControl(control);\n\n return this.validator ? this.validator(control) : null;\n }\n\n // Implemented as part of ControlValueAccessor.\n writeValue(value: D): void {\n this.value = value;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn: (value: any) => void): void {\n this.cvaOnChange = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n onKeyDown(event: KeyboardEvent): void {\n if (this.isReadOnly) { return; }\n\n const keyCode = event.keyCode;\n\n if (this.isLetterKey(event)) {\n event.preventDefault();\n\n this.incorrectInput.emit();\n } else if (this.isKeyForOpen(event)) {\n event.preventDefault();\n\n this.datepicker?.open();\n } else if (this.isKeyForClose(event)) {\n event.preventDefault();\n\n this.datepicker.close();\n } else if (keyCode === TAB) {\n this.datepicker.close(false);\n } else if (this.isKeyForByPass(event)) {\n return;\n } else if (keyCode === SPACE) {\n this.spaceKeyHandler(event);\n } else if ([UP_ARROW, DOWN_ARROW].includes(keyCode)) {\n event.preventDefault();\n\n this.verticalArrowKeyHandler(keyCode);\n } else if ([LEFT_ARROW, RIGHT_ARROW, HOME, PAGE_UP, END, PAGE_DOWN].includes(keyCode)) {\n event.preventDefault();\n\n this.changeCaretPosition(keyCode);\n } else if (/^\\D$/.test(event.key)) {\n event.preventDefault();\n\n const newValue = this.getNewValue(event.key, this.selectionStart as number);\n const formattedValue = this.replaceSymbols(newValue);\n\n if (newValue !== formattedValue) {\n this.setViewValue(formattedValue, true);\n\n setTimeout(this.onInput);\n } else {\n this.incorrectInput.emit();\n }\n } else {\n setTimeout(this.onInput);\n }\n }\n\n onInput = () => {\n this.correctCursorPosition();\n const formattedValue = this.replaceSymbols(this.viewValue);\n\n const newTimeObj = this.getDateFromString(formattedValue);\n this.lastValueValid = !!newTimeObj;\n\n if (!newTimeObj) {\n if (!this.viewValue) {\n this.lastValueValid = false;\n this.updateValue(newTimeObj as D);\n } else {\n this.control.updateValueAndValidity();\n }\n\n return;\n }\n\n this.setViewValue(this.getTimeStringFromDate(newTimeObj, this.dateInputFormat), true);\n\n this.selectNextDigitByCursor((this.selectionStart as number));\n\n this.updateValue(newTimeObj);\n }\n\n parseOnBlur = (): any => {\n if (!this.viewValue || !this.readyForParse) { return null; }\n\n const date: DateTimeObject = this.getDefaultValue();\n\n const viewDigits: string[] = this.viewValue\n .split(this.separator)\n .map((value: string) => value)\n .filter((value) => value);\n\n const [firsViewDigit, secondViewDigit, thirdViewDigit] = viewDigits;\n\n // tslint:disable-next-line:no-magic-numbers\n if (viewDigits.length !== 3) {\n this.lastValueValid = false;\n this._value = null;\n\n return setTimeout(() => this.control.updateValueAndValidity());\n }\n\n date[this.firstDigit!.fullName] = this.firstDigit!.parse(firsViewDigit);\n date[this.secondDigit!.fullName] = this.secondDigit!.parse(secondViewDigit);\n date[this.thirdDigit!.fullName] = this.thirdDigit!.parse(thirdViewDigit);\n\n const [digitWithYear, viewDigitWithYear] = [this.firstDigit, this.secondDigit, this.thirdDigit]\n .reduce((acc: any, digit, index) => digit!.value === DateParts.year ? [digit, viewDigits[index]] : acc, []);\n\n // tslint:disable-next-line:no-magic-numbers\n if (viewDigitWithYear.length < 3) {\n // tslint:disable-next-line:no-magic-numbers\n date.year += date.year < 30 ? 2000 : 1900;\n } else if (viewDigitWithYear.length < digitWithYear.length) {\n this.lastValueValid = false;\n this._value = null;\n\n return setTimeout(() => this.control.updateValueAndValidity());\n }\n\n const newTimeObj = this.createDateTime(date);\n\n if (!newTimeObj) {\n this.lastValueValid = false;\n this._value = null;\n this.cvaOnChange(null);\n\n return setTimeout(() => this.control.updateValueAndValidity());\n }\n\n this.lastValueValid = !!newTimeObj;\n\n this.setViewValue(this.getTimeStringFromDate(newTimeObj, this.dateInputFormat), true);\n\n this.updateValue(newTimeObj);\n }\n\n onChange() {\n setTimeout(() => {\n this.dateChange.emit(new KbqDatepickerInputEvent(this, this.elementRef.nativeElement));\n });\n }\n\n /** Handles blur events on the input. */\n onBlur() {\n // Reformat the input only if we have a valid value.\n this.parseOnBlur();\n\n this.focusChanged(false);\n\n this.onInput();\n }\n\n onPaste($event) {\n $event.preventDefault();\n\n let rawValue = $event.clipboardData.getData('text');\n\n if (rawValue.match(/^\\d\\D/)) {\n rawValue = `0${rawValue}`;\n }\n rawValue.replace(/[^A-Za-z0-9]+/g, this.separator);\n\n if (/[a-z]/gi.test(rawValue)) {\n this.incorrectInput.emit();\n }\n\n const match: RegExpMatchArray | null = rawValue.match(/^(?<first>\\d+)\\W(?<second>\\d+)\\W(?<third>\\d+)$/);\n\n if (!match?.groups?.first || !match?.groups?.second || !match?.groups?.third) {\n this.setViewValue(rawValue);\n\n return rawValue;\n }\n\n const value = [match.groups.first, match.groups.second, match.groups.third].join(this.separator);\n\n const newTimeObj = this.getDateFromString(value);\n\n if (!newTimeObj) {\n this.setViewValue(value);\n\n return value;\n }\n\n this.setViewValue(this.getTimeStringFromDate(newTimeObj, this.dateInputFormat));\n\n this.updateValue(newTimeObj);\n }\n\n toISO8601(value: D): string {\n return this.adapter.toIso8601(value);\n }\n\n private saveTimePart(selected: D) {\n if (!this.value) { return selected; }\n\n const years = this.adapter.getYear(selected);\n const month = this.adapter.getMonth(selected);\n const day = this.adapter.getDate(selected);\n\n const hours = this.adapter.getHours(this.value);\n const minutes = this.adapter.getMinutes(this.value);\n const seconds = this.adapter.getSeconds(this.value);\n const milliseconds = this.adapter.getMilliseconds(this.value);\n\n return this.adapter.createDateTime(years, month, day, hours, minutes, seconds, milliseconds);\n }\n\n private updateLocaleParams = () => {\n this.setFormat(this.dateInputFormat);\n\n if (!this.usePlaceholderFromInput) {\n this._placeholder = this.localeService.getParams('datepicker').placeholder;\n }\n\n this.value = this.value;\n }\n\n private setFormat(format: string): void {\n // @ts-ignore\n this.separator = format.match(/[aA-zZ]+(?<separator>\\W|\\D)[aA-zZ]+/).groups.separator;\n\n this.separatorPositions = format\n .split('')\n .reduce((acc: any, item, index: number) => this.separator === item ? [...acc, index + 1] : acc, []);\n\n this.getDigitPositions(format);\n }\n\n private updateValue(newValue: D) {\n if (!this.adapter.sameDate(newValue, this.value)) {\n this._value = newValue;\n this.cvaOnChange(newValue);\n this.valueChange.emit(newValue);\n this.dateInput.emit(new KbqDatepickerInputEvent(this, this.elementRef.nativeElement));\n }\n\n this.control?.updateValueAndValidity({ emitEvent: false });\n }\n\n private isKeyForClose(event: KeyboardEvent): boolean {\n return (event.altKey && event.keyCode === UP_ARROW) || event.keyCode === ESCAPE;\n }\n\n private isKeyForOpen(event: KeyboardEvent): boolean {\n return event.altKey && event.keyCode === DOWN_ARROW;\n }\n\n private isLetterKey(event: KeyboardEvent): boolean {\n return isLetterKey(event) && !event.ctrlKey && !event.metaKey;\n }\n\n private isKeyForByPass(event: KeyboardEvent): boolean {\n return (hasModifierKey(event) && (isVerticalMovement(event) || isHorizontalMovement(event))) ||\n event.ctrlKey || event.metaKey ||\n [DELETE, BACKSPACE, TAB].includes(event.keyCode);\n }\n\n private spaceKeyHandler(event: KeyboardEvent) {\n event.preventDefault();\n\n if (this.selectionStart === this.selectionEnd) {\n const value = this.getNewValue(event.key, this.selectionStart as number);\n this.setViewValue(value);\n\n setTimeout(this.onInput);\n } else if (this.selectionStart !== this.selectionEnd) {\n this.selectNextDigit(this.selectionStart as number, true);\n }\n }\n\n private getNewValue(key: string, position: number) {\n return [this.viewValue.slice(0, position), key, this.viewValue.slice(position)].join('');\n }\n\n private setViewValue(value: string, savePosition: boolean = false) {\n if (savePosition) {\n const selectionStart = this.selectionStart;\n const selectionEnd = this.selectionEnd;\n\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', value);\n\n this.selectionStart = selectionStart;\n this.selectionEnd = selectionEnd;\n } else {\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', value);\n }\n }\n\n private replaceSymbols(value: string): string {\n return value\n .split(this.separator)\n .map((part: string) => part.replace(/^([0-9]+)\\W$/, '0$1'))\n .join(this.separator);\n }\n\n private getDateFromString(timeString: string): D | null {\n if (!timeString || timeString.length < this.firstDigit!.length) { return null; }\n\n const date = this.getDefaultValue();\n\n const viewDigits: string[] = timeString\n .split(this.separator)\n .map((value: string) => value);\n\n const [firsViewDigit, secondViewDigit, thirdViewDigit] = viewDigits;\n\n\n if (viewDigits.length === 1) {\n if (/\\D/.test(firsViewDigit) || firsViewDigit.length < this.firstDigit!.length) { return null; }\n\n date[this.firstDigit!.fullName] = this.firstDigit!.parse(firsViewDigit);\n\n if (this.firstDigit!.isDay) {\n date.month = 1;\n }\n // tslint:disable-next-line:no-magic-numbers\n } else if (viewDigits.length === 2) {\n if (firsViewDigit.length < this.firstDigit!.length || secondViewDigit.length < this.secondDigit!.length) {\n return null;\n }\n\n date[this.firstDigit!.fullName] = this.firstDigit!.parse(firsViewDigit);\n date[this.secondDigit!.fullName] = this.secondDigit!.parse(secondViewDigit);\n // tslint:disable-next-line:no-magic-numbers\n } else if (viewDigits.length === 3) {\n if (\n firsViewDigit.length < this.firstDigit!.length ||\n secondViewDigit.length < this.secondDigit!.length ||\n thirdViewDigit.length < this.thirdDigit!.length\n ) { return null; }\n\n date[this.firstDigit!.fullName] = this.firstDigit!.parse(firsViewDigit);\n date[this.secondDigit!.fullName] = this.secondDigit!.parse(secondViewDigit);\n date[this.thirdDigit!.fullName] = this.thirdDigit!.parse(thirdViewDigit);\n } else {\n return null;\n }\n\n return this.createDateTime(date);\n }\n\n private getDefaultValue(): DateTimeObject {\n const defaultValue = this.value || this.adapter.today();\n\n return {\n year: this.adapter.getYear(defaultValue),\n month: this.adapter.getMonth(defaultValue),\n date: this.adapter.getDate(defaultValue),\n hours: this.adapter.getHours(defaultValue),\n minutes: this.adapter.getMinutes(defaultValue),\n seconds: this.adapter.getSeconds(defaultValue),\n milliseconds: this.adapter.getMilliseconds(defaultValue)\n };\n }\n\n private getTimeStringFromDate(value: D | null, timeFormat: string): string {\n if (!value || !this.adapter.isValid(value)) { return ''; }\n\n return this.adapter.format(value, timeFormat);\n }\n\n private getDateEditMetrics(cursorPosition: number): [\n modifiedTimePart: DateParts,\n cursorStartPosition: number,\n cursorEndPosition: number\n ] {\n for (const digit of [this.firstDigit, this.secondDigit, this.thirdDigit]) {\n if (cursorPosition >= digit!.start && cursorPosition <= digit!.end) {\n return [digit!.value, digit!.start, digit!.end];\n }\n }\n\n return [this.thirdDigit!.value, this.thirdDigit!.start, this.thirdDigit!.end];\n }\n\n private incrementDate(dateVal: D, whatToIncrement: DateParts): D {\n let year = this.adapter.getYear(dateVal);\n let month = this.adapter.getMonth(dateVal);\n let day = this.adapter.getDate(dateVal);\n\n switch (whatToIncrement) {\n case DateParts.day:\n day++;\n\n if (day > this.adapter.getNumDaysInMonth(dateVal)) {\n day = 1;\n }\n\n break;\n case DateParts.month:\n month++;\n\n // tslint:disable-next-line:no-magic-numbers\n if (month > 11) {\n month = 0;\n }\n\n const lastDay = this.getLastDayFor(year, month);\n\n if (day > lastDay) {\n day = lastDay;\n }\n\n break;\n case DateParts.year:\n year++;\n\n if (year > MAX_YEAR) {\n year = 1;\n }\n\n break;\n default:\n }\n\n return this.createDate(year, month, day);\n }\n\n private getLastDayFor(year: number, month: number): number {\n return this.adapter.getNumDaysInMonth(this.createDate(year, month, 1));\n }\n\n private decrementDate(dateVal: D, whatToDecrement: DateParts): D {\n let year = this.adapter.getYear(dateVal);\n let month = this.adapter.getMonth(dateVal);\n let day = this.adapter.getDate(dateVal);\n\n switch (whatToDecrement) {\n case DateParts.day:\n day--;\n\n if (day < 1) {\n day = this.adapter.getNumDaysInMonth(dateVal);\n }\n\n break;\n case DateParts.month:\n month--;\n\n if (month < 0) {\n // tslint:disable-next-line:no-magic-numbers\n month = 11;\n }\n\n const lastDay = this.getLastDayFor(year, month);\n\n if (day > lastDay) {\n day = lastDay;\n }\n\n break;\n case DateParts.year:\n year--;\n\n if (year < 1) {\n year = MAX_YEAR;\n }\n\n break;\n default:\n }\n\n return this.createDate(year, month, day);\n }\n\n private verticalArrowKeyHandler(keyCode: number): void {\n if (!this.value) { return; }\n\n let changedTime;\n\n const [modifiedTimePart, selectionStart, selectionEnd] = this.getDateEditMetrics(this.selectionStart as number);\n\n if (keyCode === UP_ARROW) {\n changedTime = this.incrementDate(this.value, modifiedTimePart);\n }\n\n if (keyCode === DOWN_ARROW) {\n changedTime = this.decrementDate(this.value, modifiedTimePart);\n }\n\n this.value = changedTime;\n\n this.selectionStart = selectionStart;\n this.selectionEnd = selectionEnd;\n\n this.cvaOnChange(changedTime);\n\n this.onChange();\n this.stateChanges.next();\n }\n\n private changeCaretPosition(keyCode: number): void {\n if (!this.value) { return; }\n\n let cursorPos = this.selectionStart as number;\n\n if ([HOME, PAGE_UP].includes(keyCode)) {\n cursorPos = 0;\n } else if ([END, PAGE_DOWN].includes(keyCode)) {\n cursorPos = this.viewValue.length;\n } else if (keyCode === LEFT_ARROW) {\n cursorPos = cursorPos === 0 ? this.viewValue.length : cursorPos - 1;\n } else if (keyCode === RIGHT_ARROW) {\n const nextSeparatorPos: number = this.viewValue.indexOf(this.separator, cursorPos);\n\n cursorPos = nextSeparatorPos ? nextSeparatorPos + 1 : 0;\n }\n\n this.selectDigitByCursor(cursorPos);\n }\n\n private selectDigitByCursor(cursorPos: number): void {\n setTimeout(() => {\n const [, selectionStart, selectionEnd] = this.getDateEditMetrics(cursorPos);\n\n this.selectionStart = selectionStart;\n this.selectionEnd = selectionEnd;\n });\n }\n\n private selectNextDigitByCursor(cursorPos: number): void {\n setTimeout(() => {\n const [, , endPositionOfCurrentDigit] = this.getDateEditMetrics(cursorPos);\n const [, selectionStart, selectionEnd] = this.getDateEditMetrics(endPositionOfCurrentDigit + 1);\n\n this.selectionStart = selectionStart;\n this.selectionEnd = selectionEnd;\n });\n }\n\n private selectNextDigit(cursorPos: number, cycle: boolean = false): void {\n setTimeout(() => {\n const lastValue = cycle ? 0 : cursorPos;\n const nextSeparatorPos: number = this.viewValue.indexOf(this.separator, cursorPos);\n\n const newCursorPos = nextSeparatorPos > 0 ? nextSeparatorPos + 1 : lastValue;\n\n const [, selectionStart, selectionEnd] = this.getDateEditMetrics(newCursorPos);\n\n this.selectionStart = selectionStart;\n this.selectionEnd = selectionEnd;\n });\n }\n\n /** Checks whether the input is invalid based on the native validation. */\n private isBadInput(): boolean {\n const validity = (<HTMLInputElement> this.elementRef.nativeElement).validity;\n\n return validity && validity.badInput;\n }\n\n // tslint:disable-next-line:no-empty\n private cvaOnChange: (value: any) => void = () => {};\n\n // tslint:disable-next-line:no-empty\n private validatorOnChange = () => {};\n\n /** The form control validator for whether the input parses. */\n private parseValidator: ValidatorFn = (): ValidationErrors | null => {\n return this.focused ||\n this.empty ||\n this.lastValueValid ? null : { mcDatepickerParse: { text: this.elementRef.nativeElement.value } };\n }\n\n /** The form control validator for the min date. */\n private minValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n const controlValue = this.adapter.deserialize(control.value);\n\n return !this.min || !controlValue || this.adapter.compareDateTime(this.min, controlValue) <= 0 ?\n null :\n { mcDatepickerMin: { min: this.min, actual: controlValue } };\n }\n\n /** The form control validator for the max date. */\n private maxValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n const controlValue = this.adapter.deserialize(control.value);\n\n return !this.max || !controlValue || this.adapter.compareDateTime(this.max, controlValue) >= 0 ?\n null :\n { mcDatepickerMax: { max: this.max, actual: controlValue } };\n }\n\n /** The form control validator for the date filter. */\n private filterValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n const controlValue = this.adapter.deserialize(control.value);\n\n return !this.dateFilter || !controlValue || this.dateFilter(controlValue) ?\n null : { mcDatepickerFilter: true };\n }\n\n /** Formats a value and sets it on the input element. */\n private formatValue(value: D | null) {\n const formattedValue = value ? this.adapter.format(value, this.dateInputFormat) : '';\n\n this.setViewValue(formattedValue);\n }\n\n private setControl(control: AbstractControl) {\n if (this.control) { return; }\n\n this.control = control;\n\n this.control.valueChanges\n .subscribe((value) => this._value = value);\n }\n\n /**\n * @param obj The object to check.\n * @returns The given object if it is both a date instance and valid, otherwise null.\n */\n private getValidDateOrNull(obj: any): D | null {\n return (this.adapter.isDateInstance(obj) && this.adapter.isValid(obj)) ? obj : null;\n }\n\n private getDigitPositions(format: string) {\n this.firstDigit = this.secondDigit = this.thirdDigit = null;\n\n const formatInLowerCase = format.toLowerCase();\n\n formatInLowerCase\n .split('')\n .reduce(\n ({ prev, length, start }: any, value: string, index: number, arr) => {\n if (value === this.separator || (arr.length - 1) === index) {\n if (!this.firstDigit) {\n this.firstDigit = new DateDigit(prev, start, length);\n } else if (!this.secondDigit) {\n this.secondDigit = new DateDigit(prev, start, length);\n } else if (!this.thirdDigit) {\n this.thirdDigit = new DateDigit(prev, start, arr.length - start);\n }\n\n // tslint:disable:no-parameter-reassignment\n length = 0;\n start = index + 1;\n } else {\n length++;\n }\n\n return { prev: value, length, start };\n },\n { length: 0, start: 0 }\n );\n\n if (!this.firstDigit || !this.secondDigit || !this.thirdDigit) {\n Error(`Can' t use this format: ${format}`);\n }\n }\n\n private createDate(year: number, month: number, day: number): D {\n return this.adapter.createDateTime(\n year,\n month,\n day,\n this.adapter.getHours(this.value as D),\n this.adapter.getMinutes(this.value as D),\n this.adapter.getSeconds(this.value as D),\n this.adapter.getMilliseconds(this.value as D)\n );\n }\n\n private createDateTime(value: DateTimeObject): D | null {\n if (Object.values(value).some(isNaN)) { return null; }\n\n return this.adapter.createDateTime(\n value.year,\n value.month - 1,\n value.date,\n value.hours,\n value.minutes,\n value.seconds,\n value.milliseconds\n );\n }\n\n private correctCursorPosition() {\n if (this.selectionStart && this.separatorPositions.includes(this.selectionStart)) {\n this.selectionStart = this.selectionStart - 1;\n }\n }\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n Directive,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewEncapsulation,\n ViewChild\n} from '@angular/core';\nimport { KbqButton } from '@koobiq/components/button';\nimport { merge, of as observableOf, Subscription } from 'rxjs';\n\nimport { KbqDatepickerIntl } from './datepicker-intl';\nimport { KbqDatepicker } from './datepicker.component';\n\n\n/** Can be used to override the icon of a `mcDatepickerToggle`. */\n@Directive({\n selector: '[mcDatepickerToggleIcon]'\n})\nexport class KbqDatepickerToggleIcon {}\n\n\n@Component({\n selector: 'kbq-datepicker-toggle',\n templateUrl: 'datepicker-toggle.html',\n styleUrls: ['datepicker-toggle.scss'],\n host: {\n class: 'kbq-datepicker-toggle',\n '[class.kbq-active]': 'datepicker && datepicker.opened'\n },\n exportAs: 'mcDatepickerToggle',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqDatepickerToggle<D> implements AfterContentInit, OnChanges, OnDestroy {\n /** Whether the toggle button is disabled. */\n @Input()\n get disabled(): boolean {\n return this._disabled === undefined ? this.datepicker.disabled : this._disabled;\n }\n\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n }\n\n /** Datepicker instance that the button will toggle. */\n @Input('for') datepicker: KbqDatepicker<D>;\n\n /** Tabindex for the toggle. */\n @Input() tabIndex: number | null;\n\n /** Custom icon set by the consumer. */\n @ContentChild(KbqDatepickerToggleIcon, { static: false }) customIcon: KbqDatepickerToggleIcon;\n\n /** Underlying button element. */\n @ViewChild('button', { static: false }) button: KbqButton;\n private stateChanges = Subscription.EMPTY;\n\n private _disabled: boolean;\n\n constructor(public intl: KbqDatepickerIntl, private changeDetectorRef: ChangeDetectorRef) {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.datepicker) {\n this.watchStateChanges();\n }\n }\n\n ngOnDestroy() {\n this.stateChanges.unsubscribe();\n }\n\n ngAfterContentInit() {\n this.watchStateChanges();\n }\n\n open(event: Event): void {\n if (this.datepicker && !this.disabled) {\n this.datepicker.open();\n event.stopPropagation();\n }\n }\n\n private watchStateChanges() {\n const datepickerDisabled = this.datepicker ? this.datepicker.disabledChange : observableOf<boolean>();\n\n const inputDisabled = this.datepicker && this.datepicker.datepickerInput ?\n this.datepicker.datepickerInput.disabledChange : observableOf<boolean>();\n\n const datepickerToggled = this.datepicker ?\n merge(this.datepicker.openedStream, this.datepicker.closedStream) :\n observableOf<boolean>();\n\n this.stateChanges.unsubscribe();\n\n this.stateChanges = merge(\n this.intl.changes,\n datepickerDisabled,\n inputDisabled,\n datepickerToggled\n ).subscribe(() => this.changeDetectorRef.markForCheck());\n }\n}\n","<!--todo need simplify this-->\n<button\n #button\n kbq-button\n type=\"button\"\n class=\"kbq-datepicker-toggle__button\"\n aria-haspopup=\"true\"\n [attr.aria-label]=\"intl.openCalendarLabel\"\n [tabIndex]=\"tabIndex\"\n [disabled]=\"disabled\"\n (click)=\"open($event)\">\n\n <i *ngIf=\"!customIcon\" kbq-icon=\"mc-calendar_16\" class=\"kbq-datepicker-toggle__default-icon\"></i>\n\n <ng-content select=\"[mcDatepickerToggleIcon]\"></ng-content>\n</button>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { KbqButtonModule } from '@koobiq/components/button';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqSelectModule } from '@koobiq/components/select';\n\nimport { KbqCalendarBody } from './calendar-body.component';\nimport { KbqCalendarHeader } from './calendar-header.component';\nimport { KbqCalendar } from './calendar.component';\nimport { KbqDatepickerInput } from './datepicker-input.directive';\nimport { KbqDatepickerIntl } from './datepicker-intl';\nimport { KbqDatepickerToggle, KbqDatepickerToggleIcon } from './datepicker-toggle.component';\nimport {\n KbqDatepicker,\n KbqDatepickerContent,\n KBQ_DATEPICKER_SCROLL_STRATEGY_FACTORY_PROVIDER\n} from './datepicker.component';\nimport { KbqMonthView } from './month-view.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n KbqButtonModule,\n OverlayModule,\n A11yModule,\n PortalModule,\n KbqButtonModule,\n KbqSelectModule,\n KbqIconModule\n ],\n exports: [\n KbqCalendar,\n KbqCalendarBody,\n KbqDatepicker,\n KbqDatepickerContent,\n KbqDatepickerInput,\n KbqDatepickerToggle,\n KbqDatepickerToggleIcon,\n KbqMonthView,\n KbqCalendarHeader\n ],\n declarations: [\n KbqCalendar,\n KbqCalendarBody,\n KbqDatepicker,\n KbqDatepickerContent,\n KbqDatepickerInput,\n KbqDatepickerToggle,\n KbqDatepickerToggleIcon,\n KbqMonthView,\n KbqCalendarHeader\n ],\n providers: [\n KbqDatepickerIntl,\n KBQ_DATEPICKER_SCROLL_STRATEGY_FACTORY_PROVIDER\n ]\n})\nexport class KbqDatepickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3.KbqCalendarBody","i3.KbqMonthView","i4.KbqCalendarHeader","i2.KbqCalendar","i3","i4","i5","observableOf","i1.KbqDatepickerIntl"],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
2
+ import * as i0 from '@angular/core';
3
+ import { Component, ViewEncapsulation, ChangeDetectionStrategy, Input, NgModule } from '@angular/core';
4
+ import { CommonModule } from '@angular/common';
5
+
6
+ class KbqDivider {
7
+ constructor() {
8
+ this._vertical = false;
9
+ this._inset = false;
10
+ this._paddings = true;
11
+ }
12
+ // Whether the divider is vertically aligned.
13
+ get vertical() {
14
+ return this._vertical;
15
+ }
16
+ set vertical(value) {
17
+ this._vertical = coerceBooleanProperty(value);
18
+ }
19
+ // Whether the divider is an inset divider.
20
+ get inset() {
21
+ return this._inset;
22
+ }
23
+ set inset(value) {
24
+ this._inset = coerceBooleanProperty(value);
25
+ }
26
+ get paddings() {
27
+ return this._paddings;
28
+ }
29
+ set paddings(value) {
30
+ this._paddings = coerceBooleanProperty(value);
31
+ }
32
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqDivider, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
33
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: KbqDivider, selector: "kbq-divider", inputs: { vertical: "vertical", inset: "inset", paddings: "paddings" }, host: { properties: { "class.kbq-divider_vertical": "vertical", "class.kbq-divider_horizontal": "!vertical", "class.kbq-divider_inset": "inset", "class.kbq-divider_paddings": "paddings" }, classAttribute: "kbq-divider" }, ngImport: i0, template: '', isInline: true, styles: [".kbq-divider{display:block;margin:0}.kbq-divider.kbq-divider_horizontal{height:var(--kbq-divider-size-horizontal-width, 1px)}.kbq-divider.kbq-divider_horizontal.kbq-divider_paddings{margin-top:var(--kbq-divider-size-horizontal-margin-vertical, 4px);margin-bottom:var(--kbq-divider-size-horizontal-margin-vertical, 4px)}.kbq-divider.kbq-divider_vertical{width:var(--kbq-divider-size-vertical-width, 1px);height:100%}.kbq-divider.kbq-divider_vertical.kbq-divider_paddings{margin-left:var(--kbq-divider-size-vertical-margin-horizontal, 4px);margin-right:var(--kbq-divider-size-vertical-margin-horizontal, 4px)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
34
+ }
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqDivider, decorators: [{
36
+ type: Component,
37
+ args: [{ selector: 'kbq-divider', host: {
38
+ class: 'kbq-divider',
39
+ '[class.kbq-divider_vertical]': 'vertical',
40
+ '[class.kbq-divider_horizontal]': '!vertical',
41
+ '[class.kbq-divider_inset]': 'inset',
42
+ '[class.kbq-divider_paddings]': 'paddings'
43
+ }, template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".kbq-divider{display:block;margin:0}.kbq-divider.kbq-divider_horizontal{height:var(--kbq-divider-size-horizontal-width, 1px)}.kbq-divider.kbq-divider_horizontal.kbq-divider_paddings{margin-top:var(--kbq-divider-size-horizontal-margin-vertical, 4px);margin-bottom:var(--kbq-divider-size-horizontal-margin-vertical, 4px)}.kbq-divider.kbq-divider_vertical{width:var(--kbq-divider-size-vertical-width, 1px);height:100%}.kbq-divider.kbq-divider_vertical.kbq-divider_paddings{margin-left:var(--kbq-divider-size-vertical-margin-horizontal, 4px);margin-right:var(--kbq-divider-size-vertical-margin-horizontal, 4px)}\n"] }]
44
+ }], propDecorators: { vertical: [{
45
+ type: Input
46
+ }], inset: [{
47
+ type: Input
48
+ }], paddings: [{
49
+ type: Input
50
+ }] } });
51
+
52
+ class KbqDividerModule {
53
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqDividerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
54
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.5", ngImport: i0, type: KbqDividerModule, declarations: [KbqDivider], imports: [CommonModule], exports: [KbqDivider] }); }
55
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqDividerModule, imports: [CommonModule] }); }
56
+ }
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqDividerModule, decorators: [{
58
+ type: NgModule,
59
+ args: [{
60
+ imports: [CommonModule],
61
+ exports: [KbqDivider],
62
+ declarations: [KbqDivider]
63
+ }]
64
+ }] });
65
+
66
+ /**
67
+ * Generated bundle index. Do not edit.
68
+ */
69
+
70
+ export { KbqDivider, KbqDividerModule };
71
+ //# sourceMappingURL=koobiq-components-divider.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"koobiq-components-divider.mjs","sources":["../../../packages/components/divider/divider.component.ts","../../../packages/components/divider/divider.module.ts","../../../packages/components/divider/koobiq-components-divider.ts"],"sourcesContent":["import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\n\n\n@Component({\n selector: 'kbq-divider',\n host: {\n class: 'kbq-divider',\n '[class.kbq-divider_vertical]': 'vertical',\n '[class.kbq-divider_horizontal]': '!vertical',\n '[class.kbq-divider_inset]': 'inset',\n '[class.kbq-divider_paddings]': 'paddings'\n },\n template: '',\n styleUrls: ['divider.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class KbqDivider {\n // Whether the divider is vertically aligned.\n @Input()\n get vertical(): boolean {\n return this._vertical;\n }\n\n set vertical(value: boolean) {\n this._vertical = coerceBooleanProperty(value);\n }\n\n private _vertical: boolean = false;\n\n // Whether the divider is an inset divider.\n @Input()\n get inset(): boolean {\n return this._inset;\n }\n\n set inset(value: boolean) {\n this._inset = coerceBooleanProperty(value);\n }\n\n private _inset: boolean = false;\n\n @Input()\n get paddings(): boolean {\n return this._paddings;\n }\n\n set paddings(value: boolean) {\n this._paddings = coerceBooleanProperty(value);\n }\n\n private _paddings: boolean = true;\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { KbqDivider } from './divider.component';\n\n\n@NgModule({\n imports: [CommonModule],\n exports: [KbqDivider],\n declarations: [KbqDivider]\n})\nexport class KbqDividerModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}