cmat 0.0.3

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 (680) hide show
  1. package/README.md +3 -0
  2. package/animations/defaults.d.ts +11 -0
  3. package/animations/drop.d.ts +2 -0
  4. package/animations/expand-collapse.d.ts +2 -0
  5. package/animations/fade.d.ts +11 -0
  6. package/animations/index.d.ts +5 -0
  7. package/animations/public-api.d.ts +1 -0
  8. package/animations/shake.d.ts +2 -0
  9. package/animations/slide.d.ts +9 -0
  10. package/animations/transform.d.ts +2 -0
  11. package/animations/zoom.d.ts +3 -0
  12. package/components/adapter/datetime-adapter.d.ts +45 -0
  13. package/components/adapter/datetime-formats.d.ts +22 -0
  14. package/components/adapter/dayjs-date-adapter.d.ts +63 -0
  15. package/components/adapter/dayjs-date-formats.d.ts +2 -0
  16. package/components/adapter/dayjs-datetime-adapter.d.ts +22 -0
  17. package/components/adapter/dayjs-datetime-formats.d.ts +2 -0
  18. package/components/adapter/index.d.ts +5 -0
  19. package/components/adapter/native-datetime-adapter.d.ts +31 -0
  20. package/components/adapter/native-datetime-formats.d.ts +2 -0
  21. package/components/adapter/public-api.d.ts +8 -0
  22. package/components/breadcrumb/breadcrumb-item.directive.d.ts +10 -0
  23. package/components/breadcrumb/breadcrumb.component.d.ts +57 -0
  24. package/components/breadcrumb/breadcrumb.component.scss +18 -0
  25. package/components/breadcrumb/breadcrumb.service.d.ts +126 -0
  26. package/components/breadcrumb/index.d.ts +5 -0
  27. package/components/breadcrumb/public-api.d.ts +3 -0
  28. package/components/breadcrumb/types/breadcrumb.config.d.ts +33 -0
  29. package/components/breadcrumb/types/breadcrumb.d.ts +23 -0
  30. package/components/card/card.component.d.ts +20 -0
  31. package/components/card/card.component.scss +63 -0
  32. package/components/card/card.types.d.ts +1 -0
  33. package/components/card/index.d.ts +5 -0
  34. package/components/card/public-api.d.ts +1 -0
  35. package/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.d.ts +14 -0
  36. package/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.scss +43 -0
  37. package/components/cascade/cascade-list/cascade-list.component.d.ts +52 -0
  38. package/components/cascade/cascade-list/cascade-list.component.scss +22 -0
  39. package/components/cascade/cascade-menu/cascade-menu.component.d.ts +10 -0
  40. package/components/cascade/cascade-menu/cascade-menu.component.scss +48 -0
  41. package/components/cascade/index.d.ts +5 -0
  42. package/components/cascade/options.interface.d.ts +8 -0
  43. package/components/cascade/public-api.d.ts +2 -0
  44. package/components/date-range/date-range.component.d.ts +134 -0
  45. package/components/date-range/date-range.component.scss +232 -0
  46. package/components/date-range/index.d.ts +5 -0
  47. package/components/date-range/public-api.d.ts +1 -0
  48. package/components/drawer/drawer.component.d.ts +75 -0
  49. package/components/drawer/drawer.component.scss +133 -0
  50. package/components/drawer/drawer.service.d.ts +26 -0
  51. package/components/drawer/drawer.types.d.ts +2 -0
  52. package/components/drawer/index.d.ts +5 -0
  53. package/components/drawer/public-api.d.ts +3 -0
  54. package/components/fullscreen/fullscreen.component.d.ts +18 -0
  55. package/components/fullscreen/fullscreen.types.d.ts +13 -0
  56. package/components/fullscreen/index.d.ts +5 -0
  57. package/components/fullscreen/public-api.d.ts +2 -0
  58. package/components/highlight/highlight.component.d.ts +21 -0
  59. package/components/highlight/highlight.component.scss +3 -0
  60. package/components/highlight/highlight.service.d.ts +7 -0
  61. package/components/highlight/index.d.ts +5 -0
  62. package/components/highlight/public-api.d.ts +2 -0
  63. package/components/masonry/index.d.ts +5 -0
  64. package/components/masonry/masonry.component.d.ts +13 -0
  65. package/components/masonry/public-api.d.ts +1 -0
  66. package/components/material-color-picker/base-color.d.ts +1 -0
  67. package/components/material-color-picker/index.d.ts +5 -0
  68. package/components/material-color-picker/material-color-picker.component.d.ts +35 -0
  69. package/components/material-color-picker/material-color-picker.component.scss +5 -0
  70. package/components/material-color-picker/public-api.d.ts +2 -0
  71. package/components/material-color-picker/selected-color.d.ts +5 -0
  72. package/components/material-datetimepicker/calendar-body.d.ts +43 -0
  73. package/components/material-datetimepicker/calendar-body.scss +58 -0
  74. package/components/material-datetimepicker/calendar.d.ts +146 -0
  75. package/components/material-datetimepicker/calendar.scss +194 -0
  76. package/components/material-datetimepicker/clock.d.ts +74 -0
  77. package/components/material-datetimepicker/clock.scss +90 -0
  78. package/components/material-datetimepicker/datetimepicker-animations.d.ts +4 -0
  79. package/components/material-datetimepicker/datetimepicker-content.scss +151 -0
  80. package/components/material-datetimepicker/datetimepicker-errors.d.ts +1 -0
  81. package/components/material-datetimepicker/datetimepicker-filtertype.d.ts +5 -0
  82. package/components/material-datetimepicker/datetimepicker-input.d.ts +106 -0
  83. package/components/material-datetimepicker/datetimepicker-intl.d.ts +51 -0
  84. package/components/material-datetimepicker/datetimepicker-toggle.d.ts +40 -0
  85. package/components/material-datetimepicker/datetimepicker-types.d.ts +13 -0
  86. package/components/material-datetimepicker/datetimepicker.d.ts +195 -0
  87. package/components/material-datetimepicker/datetimepicker.scss +145 -0
  88. package/components/material-datetimepicker/index.d.ts +5 -0
  89. package/components/material-datetimepicker/month-view.d.ts +64 -0
  90. package/components/material-datetimepicker/multi-year-view.d.ts +74 -0
  91. package/components/material-datetimepicker/public-api.d.ts +9 -0
  92. package/components/material-datetimepicker/time.d.ts +129 -0
  93. package/components/material-datetimepicker/time.scss +82 -0
  94. package/components/material-datetimepicker/year-view.d.ts +56 -0
  95. package/components/navigation/horizontal/components/basic/basic.component.d.ts +27 -0
  96. package/components/navigation/horizontal/components/branch/branch.component.d.ts +39 -0
  97. package/components/navigation/horizontal/components/divider/divider.component.d.ts +23 -0
  98. package/components/navigation/horizontal/components/spacer/spacer.component.d.ts +23 -0
  99. package/components/navigation/horizontal/horizontal.component.d.ts +43 -0
  100. package/components/navigation/horizontal/horizontal.component.scss +167 -0
  101. package/components/navigation/index.d.ts +5 -0
  102. package/components/navigation/navigation.service.d.ts +71 -0
  103. package/components/navigation/navigation.types.d.ts +34 -0
  104. package/components/navigation/public-api.d.ts +4 -0
  105. package/components/navigation/vertical/components/aside/aside.component.d.ts +63 -0
  106. package/components/navigation/vertical/components/basic/basic.component.d.ts +30 -0
  107. package/components/navigation/vertical/components/collapsable/collapsable.component.d.ts +74 -0
  108. package/components/navigation/vertical/components/divider/divider.component.d.ts +26 -0
  109. package/components/navigation/vertical/components/group/group.component.d.ts +36 -0
  110. package/components/navigation/vertical/components/spacer/spacer.component.d.ts +26 -0
  111. package/components/navigation/vertical/styles/appearances/compact.scss +103 -0
  112. package/components/navigation/vertical/styles/appearances/default.scss +550 -0
  113. package/components/navigation/vertical/styles/appearances/dense.scss +171 -0
  114. package/components/navigation/vertical/styles/appearances/thin.scss +91 -0
  115. package/components/navigation/vertical/vertical.component.d.ts +176 -0
  116. package/components/navigation/vertical/vertical.component.scss +4 -0
  117. package/components/pagination/index.d.ts +5 -0
  118. package/components/pagination/pagination.component.d.ts +24 -0
  119. package/components/pagination/pagination.directive.d.ts +40 -0
  120. package/components/pagination/pagination.instance.d.ts +11 -0
  121. package/components/pagination/pagination.pipe.d.ts +29 -0
  122. package/components/pagination/pagination.service.d.ts +20 -0
  123. package/components/pagination/public-api.d.ts +4 -0
  124. package/components/password-strength/animations/index.d.ts +4 -0
  125. package/components/password-strength/enum.d.ts +13 -0
  126. package/components/password-strength/index.d.ts +5 -0
  127. package/components/password-strength/mat-pass-toggle-visibility/mat-pass-toggle-visibility.component.d.ts +11 -0
  128. package/components/password-strength/mat-password-strength/mat-password-strength.component.d.ts +52 -0
  129. package/components/password-strength/mat-password-strength-info/mat-password-strength-info.component.d.ts +16 -0
  130. package/components/password-strength/mat-password-strength-info/mat-password-strength-info.component.scss +19 -0
  131. package/components/password-strength/mat-password-strength-validator.d.ts +6 -0
  132. package/components/password-strength/public-api.d.ts +3 -0
  133. package/components/password-strength/regexp.class.d.ts +6 -0
  134. package/components/popover/index.d.ts +5 -0
  135. package/components/popover/popover.component.d.ts +139 -0
  136. package/components/popover/popover.component.scss +174 -0
  137. package/components/popover/popover.errors.d.ts +14 -0
  138. package/components/popover/popover.interfaces.d.ts +44 -0
  139. package/components/popover/popover.type.d.ts +5 -0
  140. package/components/popover/public-api.d.ts +1 -0
  141. package/components/progress-bar/index.d.ts +5 -0
  142. package/components/progress-bar/progress-bar.component.d.ts +17 -0
  143. package/components/progress-bar/progress-bar.component.scss +7 -0
  144. package/components/progress-bar/public-api.d.ts +1 -0
  145. package/components/rating/index.d.ts +5 -0
  146. package/components/rating/public-api.d.ts +1 -0
  147. package/components/rating/rating.component.d.ts +28 -0
  148. package/components/rating/rating.component.scss +33 -0
  149. package/components/select-search/default-options.d.ts +8 -0
  150. package/components/select-search/index.d.ts +5 -0
  151. package/components/select-search/public-api.d.ts +2 -0
  152. package/components/select-search/select-no-entries-found.directive.d.ts +5 -0
  153. package/components/select-search/select-search-clear.directive.d.ts +5 -0
  154. package/components/select-search/select-search.component.d.ts +91 -0
  155. package/components/select-search/select-search.component.scss +126 -0
  156. package/components/select-tree/index.d.ts +5 -0
  157. package/components/select-tree/public-api.d.ts +1 -0
  158. package/components/select-tree/select-tree.component.d.ts +85 -0
  159. package/components/select-tree/select-tree.component.scss +54 -0
  160. package/components/select-tree/select-tree.flatnode.d.ts +6 -0
  161. package/components/select-tree/select-tree.node.d.ts +5 -0
  162. package/components/timeline/index.d.ts +5 -0
  163. package/components/timeline/public-api.d.ts +2 -0
  164. package/components/timeline/timeline-item/timeline-item.component.d.ts +25 -0
  165. package/components/timeline/timeline-item/timeline-item.component.scss +329 -0
  166. package/components/timeline/timeline.component.d.ts +32 -0
  167. package/components/timeline/timeline.component.scss +42 -0
  168. package/components/toast/index.d.ts +5 -0
  169. package/components/toast/models/global-config.model.d.ts +12 -0
  170. package/components/toast/models/toast.model.d.ts +6 -0
  171. package/components/toast/models/type.model.d.ts +12 -0
  172. package/components/toast/public-api.d.ts +2 -0
  173. package/components/toast/toast-modal.component.d.ts +18 -0
  174. package/components/toast/toast-modal.component.scss +119 -0
  175. package/components/toast/toast.component.d.ts +17 -0
  176. package/components/toast/toast.component.scss +62 -0
  177. package/components/toast/toast.service.d.ts +26 -0
  178. package/components/transfer-picker/filter/filter.component.d.ts +24 -0
  179. package/components/transfer-picker/filter/filter.component.scss +40 -0
  180. package/components/transfer-picker/index.d.ts +5 -0
  181. package/components/transfer-picker/interface.d.ts +42 -0
  182. package/components/transfer-picker/public-api.d.ts +7 -0
  183. package/components/transfer-picker/search/search.component.d.ts +14 -0
  184. package/components/transfer-picker/search/search.component.scss +7 -0
  185. package/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.d.ts +49 -0
  186. package/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.scss +25 -0
  187. package/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.d.ts +12 -0
  188. package/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.scss +27 -0
  189. package/components/transfer-picker/transfer-picker.component.d.ts +28 -0
  190. package/components/transfer-picker/transfer-picker.component.scss +8 -0
  191. package/components/transfer-picker/transfer-picker.service.d.ts +31 -0
  192. package/directives/animate-on-scroll/animate-on-scroll.directive.d.ts +29 -0
  193. package/directives/animate-on-scroll/index.d.ts +5 -0
  194. package/directives/animate-on-scroll/public-api.d.ts +1 -0
  195. package/directives/animate-on-scroll/scroll.service.d.ts +15 -0
  196. package/directives/autofocus/autofocus.directive.d.ts +10 -0
  197. package/directives/autofocus/index.d.ts +5 -0
  198. package/directives/autofocus/public-api.d.ts +1 -0
  199. package/directives/debounce/abstract-debounce.directive.d.ts +15 -0
  200. package/directives/debounce/debounce-click.directive.d.ts +8 -0
  201. package/directives/debounce/debounce-keyup.directive.d.ts +8 -0
  202. package/directives/debounce/index.d.ts +5 -0
  203. package/directives/debounce/public-api.d.ts +2 -0
  204. package/directives/digit-only/digit-only.directive.d.ts +34 -0
  205. package/directives/digit-only/index.d.ts +5 -0
  206. package/directives/digit-only/mask.directive.d.ts +14 -0
  207. package/directives/digit-only/public-api.d.ts +2 -0
  208. package/directives/equal-validator/equal-validator.directive.d.ts +14 -0
  209. package/directives/equal-validator/index.d.ts +5 -0
  210. package/directives/equal-validator/public-api.d.ts +1 -0
  211. package/esm2022/animations/cmat-animations.mjs +5 -0
  212. package/esm2022/animations/defaults.mjs +12 -0
  213. package/esm2022/animations/drop.mjs +26 -0
  214. package/esm2022/animations/expand-collapse.mjs +17 -0
  215. package/esm2022/animations/fade.mjs +170 -0
  216. package/esm2022/animations/public-api.mjs +19 -0
  217. package/esm2022/animations/shake.mjs +59 -0
  218. package/esm2022/animations/slide.mjs +124 -0
  219. package/esm2022/animations/transform.mjs +16 -0
  220. package/esm2022/animations/zoom.mjs +38 -0
  221. package/esm2022/cmat.mjs +5 -0
  222. package/esm2022/components/adapter/cmat-components-adapter.mjs +5 -0
  223. package/esm2022/components/adapter/datetime-adapter.mjs +127 -0
  224. package/esm2022/components/adapter/datetime-formats.mjs +3 -0
  225. package/esm2022/components/adapter/dayjs-date-adapter.mjs +198 -0
  226. package/esm2022/components/adapter/dayjs-date-formats.mjs +12 -0
  227. package/esm2022/components/adapter/dayjs-datetime-adapter.mjs +100 -0
  228. package/esm2022/components/adapter/dayjs-datetime-formats.mjs +21 -0
  229. package/esm2022/components/adapter/native-datetime-adapter.mjs +130 -0
  230. package/esm2022/components/adapter/native-datetime-formats.mjs +15 -0
  231. package/esm2022/components/adapter/public-api.mjs +9 -0
  232. package/esm2022/components/breadcrumb/breadcrumb-item.directive.mjs +19 -0
  233. package/esm2022/components/breadcrumb/breadcrumb.component.mjs +95 -0
  234. package/esm2022/components/breadcrumb/breadcrumb.service.mjs +336 -0
  235. package/esm2022/components/breadcrumb/cmat-components-breadcrumb.mjs +5 -0
  236. package/esm2022/components/breadcrumb/public-api.mjs +4 -0
  237. package/esm2022/components/breadcrumb/types/breadcrumb.config.mjs +2 -0
  238. package/esm2022/components/breadcrumb/types/breadcrumb.mjs +2 -0
  239. package/esm2022/components/card/card.component.mjs +58 -0
  240. package/esm2022/components/card/card.types.mjs +2 -0
  241. package/esm2022/components/card/cmat-components-card.mjs +5 -0
  242. package/esm2022/components/card/public-api.mjs +2 -0
  243. package/esm2022/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.mjs +53 -0
  244. package/esm2022/components/cascade/cascade-list/cascade-list.component.mjs +263 -0
  245. package/esm2022/components/cascade/cascade-menu/cascade-menu.component.mjs +29 -0
  246. package/esm2022/components/cascade/cmat-components-cascade.mjs +5 -0
  247. package/esm2022/components/cascade/options.interface.mjs +2 -0
  248. package/esm2022/components/cascade/public-api.mjs +3 -0
  249. package/esm2022/components/date-range/cmat-components-date-range.mjs +5 -0
  250. package/esm2022/components/date-range/date-range.component.mjs +540 -0
  251. package/esm2022/components/date-range/public-api.mjs +2 -0
  252. package/esm2022/components/drawer/cmat-components-drawer.mjs +5 -0
  253. package/esm2022/components/drawer/drawer.component.mjs +301 -0
  254. package/esm2022/components/drawer/drawer.service.mjs +41 -0
  255. package/esm2022/components/drawer/drawer.types.mjs +2 -0
  256. package/esm2022/components/drawer/public-api.mjs +4 -0
  257. package/esm2022/components/fullscreen/cmat-components-fullscreen.mjs +5 -0
  258. package/esm2022/components/fullscreen/fullscreen.component.mjs +101 -0
  259. package/esm2022/components/fullscreen/fullscreen.types.mjs +2 -0
  260. package/esm2022/components/fullscreen/public-api.mjs +3 -0
  261. package/esm2022/components/highlight/cmat-components-highlight.mjs +5 -0
  262. package/esm2022/components/highlight/highlight.component.mjs +80 -0
  263. package/esm2022/components/highlight/highlight.service.mjs +47 -0
  264. package/esm2022/components/highlight/public-api.mjs +3 -0
  265. package/esm2022/components/masonry/cmat-components-masonry.mjs +5 -0
  266. package/esm2022/components/masonry/masonry.component.mjs +54 -0
  267. package/esm2022/components/masonry/public-api.mjs +2 -0
  268. package/esm2022/components/material-color-picker/base-color.mjs +13 -0
  269. package/esm2022/components/material-color-picker/cmat-components-material-color-picker.mjs +5 -0
  270. package/esm2022/components/material-color-picker/material-color-picker.component.mjs +138 -0
  271. package/esm2022/components/material-color-picker/public-api.mjs +3 -0
  272. package/esm2022/components/material-color-picker/selected-color.mjs +3 -0
  273. package/esm2022/components/material-datetimepicker/calendar-body.mjs +80 -0
  274. package/esm2022/components/material-datetimepicker/calendar.mjs +678 -0
  275. package/esm2022/components/material-datetimepicker/clock.mjs +293 -0
  276. package/esm2022/components/material-datetimepicker/cmat-components-material-datetimepicker.mjs +5 -0
  277. package/esm2022/components/material-datetimepicker/datetimepicker-animations.mjs +34 -0
  278. package/esm2022/components/material-datetimepicker/datetimepicker-errors.mjs +6 -0
  279. package/esm2022/components/material-datetimepicker/datetimepicker-filtertype.mjs +8 -0
  280. package/esm2022/components/material-datetimepicker/datetimepicker-input.mjs +340 -0
  281. package/esm2022/components/material-datetimepicker/datetimepicker-intl.mjs +63 -0
  282. package/esm2022/components/material-datetimepicker/datetimepicker-toggle.mjs +88 -0
  283. package/esm2022/components/material-datetimepicker/datetimepicker-types.mjs +2 -0
  284. package/esm2022/components/material-datetimepicker/datetimepicker.mjs +534 -0
  285. package/esm2022/components/material-datetimepicker/month-view.mjs +146 -0
  286. package/esm2022/components/material-datetimepicker/multi-year-view.mjs +198 -0
  287. package/esm2022/components/material-datetimepicker/public-api.mjs +10 -0
  288. package/esm2022/components/material-datetimepicker/time.mjs +456 -0
  289. package/esm2022/components/material-datetimepicker/year-view.mjs +125 -0
  290. package/esm2022/components/navigation/cmat-components-navigation.mjs +5 -0
  291. package/esm2022/components/navigation/horizontal/components/basic/basic.component.mjs +70 -0
  292. package/esm2022/components/navigation/horizontal/components/branch/branch.component.mjs +83 -0
  293. package/esm2022/components/navigation/horizontal/components/divider/divider.component.mjs +47 -0
  294. package/esm2022/components/navigation/horizontal/components/spacer/spacer.component.mjs +47 -0
  295. package/esm2022/components/navigation/horizontal/horizontal.component.mjs +88 -0
  296. package/esm2022/components/navigation/navigation.service.mjs +140 -0
  297. package/esm2022/components/navigation/navigation.types.mjs +3 -0
  298. package/esm2022/components/navigation/public-api.mjs +5 -0
  299. package/esm2022/components/navigation/vertical/components/aside/aside.component.mjs +162 -0
  300. package/esm2022/components/navigation/vertical/components/basic/basic.component.mjs +76 -0
  301. package/esm2022/components/navigation/vertical/components/collapsable/collapsable.component.mjs +279 -0
  302. package/esm2022/components/navigation/vertical/components/divider/divider.component.mjs +56 -0
  303. package/esm2022/components/navigation/vertical/components/group/group.component.mjs +79 -0
  304. package/esm2022/components/navigation/vertical/components/spacer/spacer.component.mjs +56 -0
  305. package/esm2022/components/navigation/vertical/vertical.component.mjs +586 -0
  306. package/esm2022/components/pagination/cmat-components-pagination.mjs +5 -0
  307. package/esm2022/components/pagination/pagination.component.mjs +71 -0
  308. package/esm2022/components/pagination/pagination.directive.mjs +197 -0
  309. package/esm2022/components/pagination/pagination.instance.mjs +2 -0
  310. package/esm2022/components/pagination/pagination.pipe.mjs +100 -0
  311. package/esm2022/components/pagination/pagination.service.mjs +90 -0
  312. package/esm2022/components/pagination/public-api.mjs +5 -0
  313. package/esm2022/components/password-strength/animations/index.mjs +48 -0
  314. package/esm2022/components/password-strength/cmat-components-password-strength.mjs +5 -0
  315. package/esm2022/components/password-strength/enum.mjs +17 -0
  316. package/esm2022/components/password-strength/mat-pass-toggle-visibility/mat-pass-toggle-visibility.component.mjs +27 -0
  317. package/esm2022/components/password-strength/mat-password-strength/mat-password-strength.component.mjs +206 -0
  318. package/esm2022/components/password-strength/mat-password-strength-info/mat-password-strength-info.component.mjs +151 -0
  319. package/esm2022/components/password-strength/mat-password-strength-validator.mjs +36 -0
  320. package/esm2022/components/password-strength/public-api.mjs +4 -0
  321. package/esm2022/components/password-strength/regexp.class.mjs +8 -0
  322. package/esm2022/components/popover/cmat-components-popover.mjs +5 -0
  323. package/esm2022/components/popover/popover.component.mjs +350 -0
  324. package/esm2022/components/popover/popover.errors.mjs +27 -0
  325. package/esm2022/components/popover/popover.interfaces.mjs +2 -0
  326. package/esm2022/components/popover/popover.type.mjs +2 -0
  327. package/esm2022/components/popover/public-api.mjs +2 -0
  328. package/esm2022/components/progress-bar/cmat-components-progress-bar.mjs +5 -0
  329. package/esm2022/components/progress-bar/progress-bar.component.mjs +55 -0
  330. package/esm2022/components/progress-bar/public-api.mjs +2 -0
  331. package/esm2022/components/rating/cmat-components-rating.mjs +5 -0
  332. package/esm2022/components/rating/public-api.mjs +2 -0
  333. package/esm2022/components/rating/rating.component.mjs +91 -0
  334. package/esm2022/components/select-search/cmat-components-select-search.mjs +5 -0
  335. package/esm2022/components/select-search/default-options.mjs +16 -0
  336. package/esm2022/components/select-search/public-api.mjs +3 -0
  337. package/esm2022/components/select-search/select-no-entries-found.directive.mjs +14 -0
  338. package/esm2022/components/select-search/select-search-clear.directive.mjs +14 -0
  339. package/esm2022/components/select-search/select-search.component.mjs +488 -0
  340. package/esm2022/components/select-tree/cmat-components-select-tree.mjs +5 -0
  341. package/esm2022/components/select-tree/public-api.mjs +2 -0
  342. package/esm2022/components/select-tree/select-tree.component.mjs +458 -0
  343. package/esm2022/components/select-tree/select-tree.flatnode.mjs +3 -0
  344. package/esm2022/components/select-tree/select-tree.node.mjs +3 -0
  345. package/esm2022/components/timeline/cmat-components-timeline.mjs +5 -0
  346. package/esm2022/components/timeline/public-api.mjs +3 -0
  347. package/esm2022/components/timeline/timeline-item/timeline-item.component.mjs +68 -0
  348. package/esm2022/components/timeline/timeline.component.mjs +114 -0
  349. package/esm2022/components/toast/cmat-components-toast.mjs +5 -0
  350. package/esm2022/components/toast/models/global-config.model.mjs +2 -0
  351. package/esm2022/components/toast/models/toast.model.mjs +2 -0
  352. package/esm2022/components/toast/models/type.model.mjs +2 -0
  353. package/esm2022/components/toast/public-api.mjs +3 -0
  354. package/esm2022/components/toast/toast-modal.component.mjs +53 -0
  355. package/esm2022/components/toast/toast.component.mjs +30 -0
  356. package/esm2022/components/toast/toast.service.mjs +122 -0
  357. package/esm2022/components/transfer-picker/cmat-components-transfer-picker.mjs +5 -0
  358. package/esm2022/components/transfer-picker/filter/filter.component.mjs +85 -0
  359. package/esm2022/components/transfer-picker/interface.mjs +17 -0
  360. package/esm2022/components/transfer-picker/public-api.mjs +8 -0
  361. package/esm2022/components/transfer-picker/search/search.component.mjs +34 -0
  362. package/esm2022/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.mjs +178 -0
  363. package/esm2022/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.mjs +34 -0
  364. package/esm2022/components/transfer-picker/transfer-picker.component.mjs +82 -0
  365. package/esm2022/components/transfer-picker/transfer-picker.service.mjs +134 -0
  366. package/esm2022/directives/animate-on-scroll/animate-on-scroll.directive.mjs +126 -0
  367. package/esm2022/directives/animate-on-scroll/cmat-directives-animate-on-scroll.mjs +5 -0
  368. package/esm2022/directives/animate-on-scroll/public-api.mjs +2 -0
  369. package/esm2022/directives/animate-on-scroll/scroll.service.mjs +38 -0
  370. package/esm2022/directives/autofocus/autofocus.directive.mjs +20 -0
  371. package/esm2022/directives/autofocus/cmat-directives-autofocus.mjs +5 -0
  372. package/esm2022/directives/autofocus/public-api.mjs +2 -0
  373. package/esm2022/directives/debounce/abstract-debounce.directive.mjs +34 -0
  374. package/esm2022/directives/debounce/cmat-directives-debounce.mjs +5 -0
  375. package/esm2022/directives/debounce/debounce-click.directive.mjs +25 -0
  376. package/esm2022/directives/debounce/debounce-keyup.directive.mjs +25 -0
  377. package/esm2022/directives/debounce/public-api.mjs +3 -0
  378. package/esm2022/directives/digit-only/cmat-directives-digit-only.mjs +5 -0
  379. package/esm2022/directives/digit-only/digit-only.directive.mjs +282 -0
  380. package/esm2022/directives/digit-only/mask.directive.mjs +69 -0
  381. package/esm2022/directives/digit-only/public-api.mjs +3 -0
  382. package/esm2022/directives/equal-validator/cmat-directives-equal-validator.mjs +5 -0
  383. package/esm2022/directives/equal-validator/equal-validator.directive.mjs +54 -0
  384. package/esm2022/directives/equal-validator/public-api.mjs +2 -0
  385. package/esm2022/lib/mock-api/cmat-lib-mock-api.mjs +5 -0
  386. package/esm2022/lib/mock-api/mock-api.constants.mjs +3 -0
  387. package/esm2022/lib/mock-api/mock-api.interceptor.mjs +73 -0
  388. package/esm2022/lib/mock-api/mock-api.request-handler.mjs +48 -0
  389. package/esm2022/lib/mock-api/mock-api.service.mjs +93 -0
  390. package/esm2022/lib/mock-api/mock-api.types.mjs +2 -0
  391. package/esm2022/lib/mock-api/mock-api.utils.mjs +17 -0
  392. package/esm2022/lib/mock-api/public-api.mjs +6 -0
  393. package/esm2022/pipes/bytes/bytes.pipe.mjs +25 -0
  394. package/esm2022/pipes/bytes/cmat-pipes-bytes.mjs +5 -0
  395. package/esm2022/pipes/bytes/public-api.mjs +2 -0
  396. package/esm2022/pipes/date-format/cmat-pipes-date-format.mjs +5 -0
  397. package/esm2022/pipes/date-format/date-format.pipe.mjs +18 -0
  398. package/esm2022/pipes/date-format/public-api.mjs +2 -0
  399. package/esm2022/pipes/find-by-key/cmat-pipes-find-by-key.mjs +5 -0
  400. package/esm2022/pipes/find-by-key/find-by-key.pipe.mjs +23 -0
  401. package/esm2022/pipes/find-by-key/public-api.mjs +2 -0
  402. package/esm2022/pipes/group-by/cmat-pipes-group-by.mjs +5 -0
  403. package/esm2022/pipes/group-by/group-by.pipe.mjs +29 -0
  404. package/esm2022/pipes/group-by/public-api.mjs +2 -0
  405. package/esm2022/pipes/keys/cmat-pipes-keys.mjs +5 -0
  406. package/esm2022/pipes/keys/keys.pipe.mjs +26 -0
  407. package/esm2022/pipes/keys/public-api.mjs +2 -0
  408. package/esm2022/pipes/secure/cmat-pipes-secure.mjs +5 -0
  409. package/esm2022/pipes/secure/public-api.mjs +2 -0
  410. package/esm2022/pipes/secure/secure-pipe.mjs +43 -0
  411. package/esm2022/pipes/uppercase/cmat-pipes-uppercase.mjs +5 -0
  412. package/esm2022/pipes/uppercase/public-api.mjs +2 -0
  413. package/esm2022/pipes/uppercase/uppercase.pipe.mjs +17 -0
  414. package/esm2022/public-api.mjs +2 -0
  415. package/esm2022/services/alert/alert.dialog.mjs +12 -0
  416. package/esm2022/services/alert/alert.message.mjs +9 -0
  417. package/esm2022/services/alert/alert.service.mjs +165 -0
  418. package/esm2022/services/alert/cmat-services-alert.mjs +5 -0
  419. package/esm2022/services/alert/enum.mjs +15 -0
  420. package/esm2022/services/alert/public-api.mjs +5 -0
  421. package/esm2022/services/config/cmat-services-config.mjs +5 -0
  422. package/esm2022/services/config/config.constants.mjs +3 -0
  423. package/esm2022/services/config/config.service.mjs +35 -0
  424. package/esm2022/services/config/public-api.mjs +4 -0
  425. package/esm2022/services/config/urlStateConfig.service.mjs +30 -0
  426. package/esm2022/services/confirmation/cmat-services-confirmation.mjs +5 -0
  427. package/esm2022/services/confirmation/confirmation.service.mjs +51 -0
  428. package/esm2022/services/confirmation/confirmation.types.mjs +2 -0
  429. package/esm2022/services/confirmation/dialog/dialog.component.mjs +25 -0
  430. package/esm2022/services/confirmation/public-api.mjs +3 -0
  431. package/esm2022/services/data/cmat-services-data.mjs +5 -0
  432. package/esm2022/services/data/data.service.mjs +169 -0
  433. package/esm2022/services/data/public-api.mjs +2 -0
  434. package/esm2022/services/loading/cmat-services-loading.mjs +5 -0
  435. package/esm2022/services/loading/loading.interceptor.mjs +29 -0
  436. package/esm2022/services/loading/loading.service.mjs +72 -0
  437. package/esm2022/services/loading/public-api.mjs +3 -0
  438. package/esm2022/services/local-storage/cmat-services-local-storage.mjs +5 -0
  439. package/esm2022/services/local-storage/local-storage.service.mjs +22 -0
  440. package/esm2022/services/local-storage/public-api.mjs +2 -0
  441. package/esm2022/services/media-watcher/cmat-services-media-watcher.mjs +5 -0
  442. package/esm2022/services/media-watcher/media-watcher.service.mjs +55 -0
  443. package/esm2022/services/media-watcher/public-api.mjs +2 -0
  444. package/esm2022/services/platform/cmat-services-platform.mjs +5 -0
  445. package/esm2022/services/platform/platform.service.mjs +46 -0
  446. package/esm2022/services/platform/public-api.mjs +2 -0
  447. package/esm2022/services/splash-screen/cmat-services-splash-screen.mjs +5 -0
  448. package/esm2022/services/splash-screen/public-api.mjs +2 -0
  449. package/esm2022/services/splash-screen/splash-screen.service.mjs +42 -0
  450. package/esm2022/services/title/cmat-services-title.mjs +5 -0
  451. package/esm2022/services/title/public-api.mjs +2 -0
  452. package/esm2022/services/title/title.service.mjs +46 -0
  453. package/esm2022/services/translation/cmat-services-translation.mjs +5 -0
  454. package/esm2022/services/translation/public-api.mjs +2 -0
  455. package/esm2022/services/translation/translation.service.mjs +62 -0
  456. package/esm2022/services/utils/cmat-services-utils.mjs +5 -0
  457. package/esm2022/services/utils/public-api.mjs +2 -0
  458. package/esm2022/services/utils/utils.service.mjs +391 -0
  459. package/esm2022/validators/cmat-validators.mjs +5 -0
  460. package/esm2022/validators/public-api.mjs +2 -0
  461. package/esm2022/validators/validators.mjs +33 -0
  462. package/esm2022/version/cmat-version.mjs +5 -0
  463. package/esm2022/version/public-api.mjs +2 -0
  464. package/esm2022/version/version.mjs +11 -0
  465. package/fesm2022/cmat-animations.mjs +466 -0
  466. package/fesm2022/cmat-animations.mjs.map +1 -0
  467. package/fesm2022/cmat-components-adapter.mjs +600 -0
  468. package/fesm2022/cmat-components-adapter.mjs.map +1 -0
  469. package/fesm2022/cmat-components-breadcrumb.mjs +449 -0
  470. package/fesm2022/cmat-components-breadcrumb.mjs.map +1 -0
  471. package/fesm2022/cmat-components-card.mjs +65 -0
  472. package/fesm2022/cmat-components-card.mjs.map +1 -0
  473. package/fesm2022/cmat-components-cascade.mjs +334 -0
  474. package/fesm2022/cmat-components-cascade.mjs.map +1 -0
  475. package/fesm2022/cmat-components-date-range.mjs +547 -0
  476. package/fesm2022/cmat-components-date-range.mjs.map +1 -0
  477. package/fesm2022/cmat-components-drawer.mjs +346 -0
  478. package/fesm2022/cmat-components-drawer.mjs.map +1 -0
  479. package/fesm2022/cmat-components-fullscreen.mjs +108 -0
  480. package/fesm2022/cmat-components-fullscreen.mjs.map +1 -0
  481. package/fesm2022/cmat-components-highlight.mjs +131 -0
  482. package/fesm2022/cmat-components-highlight.mjs.map +1 -0
  483. package/fesm2022/cmat-components-masonry.mjs +61 -0
  484. package/fesm2022/cmat-components-masonry.mjs.map +1 -0
  485. package/fesm2022/cmat-components-material-color-picker.mjs +160 -0
  486. package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -0
  487. package/fesm2022/cmat-components-material-datetimepicker.mjs +2976 -0
  488. package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -0
  489. package/fesm2022/cmat-components-navigation.mjs +1656 -0
  490. package/fesm2022/cmat-components-navigation.mjs.map +1 -0
  491. package/fesm2022/cmat-components-pagination.mjs +455 -0
  492. package/fesm2022/cmat-components-pagination.mjs.map +1 -0
  493. package/fesm2022/cmat-components-password-strength.mjs +489 -0
  494. package/fesm2022/cmat-components-password-strength.mjs.map +1 -0
  495. package/fesm2022/cmat-components-popover.mjs +383 -0
  496. package/fesm2022/cmat-components-popover.mjs.map +1 -0
  497. package/fesm2022/cmat-components-progress-bar.mjs +62 -0
  498. package/fesm2022/cmat-components-progress-bar.mjs.map +1 -0
  499. package/fesm2022/cmat-components-rating.mjs +98 -0
  500. package/fesm2022/cmat-components-rating.mjs.map +1 -0
  501. package/fesm2022/cmat-components-select-search.mjs +531 -0
  502. package/fesm2022/cmat-components-select-search.mjs.map +1 -0
  503. package/fesm2022/cmat-components-select-tree.mjs +467 -0
  504. package/fesm2022/cmat-components-select-tree.mjs.map +1 -0
  505. package/fesm2022/cmat-components-timeline.mjs +186 -0
  506. package/fesm2022/cmat-components-timeline.mjs.map +1 -0
  507. package/fesm2022/cmat-components-toast.mjs +205 -0
  508. package/fesm2022/cmat-components-toast.mjs.map +1 -0
  509. package/fesm2022/cmat-components-transfer-picker.mjs +536 -0
  510. package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -0
  511. package/fesm2022/cmat-directives-animate-on-scroll.mjs +166 -0
  512. package/fesm2022/cmat-directives-animate-on-scroll.mjs.map +1 -0
  513. package/fesm2022/cmat-directives-autofocus.mjs +27 -0
  514. package/fesm2022/cmat-directives-autofocus.mjs.map +1 -0
  515. package/fesm2022/cmat-directives-debounce.mjs +85 -0
  516. package/fesm2022/cmat-directives-debounce.mjs.map +1 -0
  517. package/fesm2022/cmat-directives-digit-only.mjs +356 -0
  518. package/fesm2022/cmat-directives-digit-only.mjs.map +1 -0
  519. package/fesm2022/cmat-directives-equal-validator.mjs +61 -0
  520. package/fesm2022/cmat-directives-equal-validator.mjs.map +1 -0
  521. package/fesm2022/cmat-lib-mock-api.mjs +232 -0
  522. package/fesm2022/cmat-lib-mock-api.mjs.map +1 -0
  523. package/fesm2022/cmat-pipes-bytes.mjs +32 -0
  524. package/fesm2022/cmat-pipes-bytes.mjs.map +1 -0
  525. package/fesm2022/cmat-pipes-date-format.mjs +25 -0
  526. package/fesm2022/cmat-pipes-date-format.mjs.map +1 -0
  527. package/fesm2022/cmat-pipes-find-by-key.mjs +30 -0
  528. package/fesm2022/cmat-pipes-find-by-key.mjs.map +1 -0
  529. package/fesm2022/cmat-pipes-group-by.mjs +36 -0
  530. package/fesm2022/cmat-pipes-group-by.mjs.map +1 -0
  531. package/fesm2022/cmat-pipes-keys.mjs +33 -0
  532. package/fesm2022/cmat-pipes-keys.mjs.map +1 -0
  533. package/fesm2022/cmat-pipes-secure.mjs +50 -0
  534. package/fesm2022/cmat-pipes-secure.mjs.map +1 -0
  535. package/fesm2022/cmat-pipes-uppercase.mjs +24 -0
  536. package/fesm2022/cmat-pipes-uppercase.mjs.map +1 -0
  537. package/fesm2022/cmat-services-alert.mjs +207 -0
  538. package/fesm2022/cmat-services-alert.mjs.map +1 -0
  539. package/fesm2022/cmat-services-config.mjs +69 -0
  540. package/fesm2022/cmat-services-config.mjs.map +1 -0
  541. package/fesm2022/cmat-services-confirmation.mjs +79 -0
  542. package/fesm2022/cmat-services-confirmation.mjs.map +1 -0
  543. package/fesm2022/cmat-services-data.mjs +176 -0
  544. package/fesm2022/cmat-services-data.mjs.map +1 -0
  545. package/fesm2022/cmat-services-loading.mjs +104 -0
  546. package/fesm2022/cmat-services-loading.mjs.map +1 -0
  547. package/fesm2022/cmat-services-local-storage.mjs +29 -0
  548. package/fesm2022/cmat-services-local-storage.mjs.map +1 -0
  549. package/fesm2022/cmat-services-media-watcher.mjs +62 -0
  550. package/fesm2022/cmat-services-media-watcher.mjs.map +1 -0
  551. package/fesm2022/cmat-services-platform.mjs +53 -0
  552. package/fesm2022/cmat-services-platform.mjs.map +1 -0
  553. package/fesm2022/cmat-services-splash-screen.mjs +49 -0
  554. package/fesm2022/cmat-services-splash-screen.mjs.map +1 -0
  555. package/fesm2022/cmat-services-title.mjs +53 -0
  556. package/fesm2022/cmat-services-title.mjs.map +1 -0
  557. package/fesm2022/cmat-services-translation.mjs +69 -0
  558. package/fesm2022/cmat-services-translation.mjs.map +1 -0
  559. package/fesm2022/cmat-services-utils.mjs +398 -0
  560. package/fesm2022/cmat-services-utils.mjs.map +1 -0
  561. package/fesm2022/cmat-validators.mjs +39 -0
  562. package/fesm2022/cmat-validators.mjs.map +1 -0
  563. package/fesm2022/cmat-version.mjs +17 -0
  564. package/fesm2022/cmat-version.mjs.map +1 -0
  565. package/fesm2022/cmat.mjs +4 -0
  566. package/fesm2022/cmat.mjs.map +1 -0
  567. package/icons/CSV.svg +3 -0
  568. package/icons/EXCEL.svg +3 -0
  569. package/icons/FILE.svg +3 -0
  570. package/icons/GIF.svg +3 -0
  571. package/icons/JPG.svg +3 -0
  572. package/icons/PDF.svg +3 -0
  573. package/icons/PNG.svg +3 -0
  574. package/icons/PPT.svg +3 -0
  575. package/icons/TEXT.svg +3 -0
  576. package/icons/VIDEO.svg +3 -0
  577. package/icons/WORD.svg +3 -0
  578. package/icons/ZIP.svg +3 -0
  579. package/icons/arrow-cursor.svg +3 -0
  580. package/icons/material-icons/heroicons-outline.svg +893 -0
  581. package/icons/material-icons/heroicons-solid.svg +958 -0
  582. package/icons/material-icons/material-outline.svg +3586 -0
  583. package/icons/material-icons/material-solid.svg +3586 -0
  584. package/index.d.ts +5 -0
  585. package/lib/mock-api/index.d.ts +5 -0
  586. package/lib/mock-api/mock-api.constants.d.ts +2 -0
  587. package/lib/mock-api/mock-api.interceptor.d.ts +12 -0
  588. package/lib/mock-api/mock-api.request-handler.d.ts +18 -0
  589. package/lib/mock-api/mock-api.service.d.ts +22 -0
  590. package/lib/mock-api/mock-api.types.d.ts +9 -0
  591. package/lib/mock-api/mock-api.utils.d.ts +3 -0
  592. package/lib/mock-api/public-api.d.ts +5 -0
  593. package/package.json +344 -0
  594. package/pipes/bytes/bytes.pipe.d.ts +7 -0
  595. package/pipes/bytes/index.d.ts +5 -0
  596. package/pipes/bytes/public-api.d.ts +1 -0
  597. package/pipes/date-format/date-format.pipe.d.ts +7 -0
  598. package/pipes/date-format/index.d.ts +5 -0
  599. package/pipes/date-format/public-api.d.ts +1 -0
  600. package/pipes/find-by-key/find-by-key.pipe.d.ts +7 -0
  601. package/pipes/find-by-key/index.d.ts +5 -0
  602. package/pipes/find-by-key/public-api.d.ts +1 -0
  603. package/pipes/group-by/group-by.pipe.d.ts +7 -0
  604. package/pipes/group-by/index.d.ts +5 -0
  605. package/pipes/group-by/public-api.d.ts +1 -0
  606. package/pipes/keys/index.d.ts +5 -0
  607. package/pipes/keys/keys.pipe.d.ts +7 -0
  608. package/pipes/keys/public-api.d.ts +1 -0
  609. package/pipes/secure/index.d.ts +5 -0
  610. package/pipes/secure/public-api.d.ts +1 -0
  611. package/pipes/secure/secure-pipe.d.ts +18 -0
  612. package/pipes/uppercase/index.d.ts +5 -0
  613. package/pipes/uppercase/public-api.d.ts +1 -0
  614. package/pipes/uppercase/uppercase.pipe.d.ts +7 -0
  615. package/public-api.d.ts +1 -0
  616. package/services/alert/alert.dialog.d.ts +11 -0
  617. package/services/alert/alert.message.d.ts +8 -0
  618. package/services/alert/alert.service.d.ts +37 -0
  619. package/services/alert/enum.d.ts +12 -0
  620. package/services/alert/index.d.ts +5 -0
  621. package/services/alert/public-api.d.ts +4 -0
  622. package/services/config/config.constants.d.ts +6 -0
  623. package/services/config/config.service.d.ts +11 -0
  624. package/services/config/index.d.ts +5 -0
  625. package/services/config/public-api.d.ts +3 -0
  626. package/services/config/urlStateConfig.service.d.ts +10 -0
  627. package/services/confirmation/confirmation.service.d.ts +12 -0
  628. package/services/confirmation/confirmation.types.d.ts +21 -0
  629. package/services/confirmation/dialog/dialog.component.d.ts +10 -0
  630. package/services/confirmation/index.d.ts +5 -0
  631. package/services/confirmation/public-api.d.ts +2 -0
  632. package/services/data/data.service.d.ts +20 -0
  633. package/services/data/index.d.ts +5 -0
  634. package/services/data/public-api.d.ts +1 -0
  635. package/services/loading/index.d.ts +5 -0
  636. package/services/loading/loading.interceptor.d.ts +12 -0
  637. package/services/loading/loading.service.d.ts +24 -0
  638. package/services/loading/public-api.d.ts +2 -0
  639. package/services/local-storage/index.d.ts +5 -0
  640. package/services/local-storage/local-storage.service.d.ts +8 -0
  641. package/services/local-storage/public-api.d.ts +1 -0
  642. package/services/media-watcher/index.d.ts +5 -0
  643. package/services/media-watcher/media-watcher.service.d.ts +20 -0
  644. package/services/media-watcher/public-api.d.ts +1 -0
  645. package/services/platform/index.d.ts +5 -0
  646. package/services/platform/platform.service.d.ts +9 -0
  647. package/services/platform/public-api.d.ts +1 -0
  648. package/services/splash-screen/index.d.ts +5 -0
  649. package/services/splash-screen/public-api.d.ts +1 -0
  650. package/services/splash-screen/splash-screen.service.d.ts +14 -0
  651. package/services/title/index.d.ts +5 -0
  652. package/services/title/public-api.d.ts +1 -0
  653. package/services/title/title.service.d.ts +13 -0
  654. package/services/translation/index.d.ts +5 -0
  655. package/services/translation/public-api.d.ts +1 -0
  656. package/services/translation/translation.service.d.ts +20 -0
  657. package/services/utils/index.d.ts +5 -0
  658. package/services/utils/public-api.d.ts +1 -0
  659. package/services/utils/utils.service.d.ts +57 -0
  660. package/styles/components/input.scss +42 -0
  661. package/styles/main.scss +9 -0
  662. package/styles/overrides/angular-material.scss +1403 -0
  663. package/styles/overrides/fullcalendar.scss +550 -0
  664. package/styles/overrides/highlightjs.scss +81 -0
  665. package/styles/styles.scss +3 -0
  666. package/styles/tailwind.scss +86 -0
  667. package/styles/themes.scss +164 -0
  668. package/styles/user-themes.scss +1 -0
  669. package/tailwind/plugins/icon-size.js +49 -0
  670. package/tailwind/plugins/theming.js +256 -0
  671. package/tailwind/plugins/utilities.js +66 -0
  672. package/tailwind/utils/generate-contrasts.js +29 -0
  673. package/tailwind/utils/generate-palette.js +100 -0
  674. package/tailwind/utils/json-to-sass-map.js +67 -0
  675. package/validators/index.d.ts +5 -0
  676. package/validators/public-api.d.ts +1 -0
  677. package/validators/validators.d.ts +5 -0
  678. package/version/index.d.ts +5 -0
  679. package/version/public-api.d.ts +1 -0
  680. package/version/version.d.ts +9 -0
@@ -0,0 +1,293 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, HostListener, Input, Output, ViewEncapsulation } from '@angular/core';
2
+ import { CmatDatetimepickerFilterType } from './datetimepicker-filtertype';
3
+ import { NgStyle, NgFor } from '@angular/common';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "cmat/components/adapter";
6
+ export const CLOCK_RADIUS = 50;
7
+ export const CLOCK_INNER_RADIUS = 27.5;
8
+ export const CLOCK_OUTER_RADIUS = 41.25;
9
+ export const CLOCK_TICK_RADIUS = 7.0833;
10
+ /**
11
+ * A clock that is used as part of the datepicker.
12
+ */
13
+ export class CmatDatetimepickerClockComponent {
14
+ constructor(_element, _adapter) {
15
+ this._element = _element;
16
+ this._adapter = _adapter;
17
+ this.userSelection = new EventEmitter();
18
+ this.interval = 1;
19
+ this.twelvehour = false;
20
+ /** Emits when the currently selected date changes. */
21
+ this.selectedChange = new EventEmitter();
22
+ this.activeDateChange = new EventEmitter();
23
+ this.role = 'clock';
24
+ this.class = 'cmat-datetimepicker-clock';
25
+ /** Hours and Minutes representing the clock view. */
26
+ this.hours = [];
27
+ this.minutes = [];
28
+ /** Whether the clock is in hour view. */
29
+ this.hourView = true;
30
+ this._timeChanged = false;
31
+ this._mouseMoveListener = (event) => {
32
+ this.handleMousemove(event);
33
+ };
34
+ this._mouseUpListener = () => {
35
+ this.handleMouseup();
36
+ };
37
+ }
38
+ /**
39
+ * The date to display in this clock view.
40
+ */
41
+ get activeDate() {
42
+ return this._activeDate;
43
+ }
44
+ set activeDate(value) {
45
+ const oldActiveDate = this._activeDate;
46
+ this._activeDate = this._adapter.clampDate(value, this.minDate, this.maxDate);
47
+ if (!this._adapter.sameMinute(oldActiveDate, this._activeDate)) {
48
+ this._init();
49
+ }
50
+ }
51
+ /** The currently selected date. */
52
+ // eslint-disable-next-line @typescript-eslint/member-ordering
53
+ get selected() {
54
+ return this._selected;
55
+ }
56
+ set selected(value) {
57
+ this._selected = this._adapter.getValidDateOrNull(this._adapter.deserialize(value));
58
+ if (this._selected) {
59
+ this.activeDate = this._selected;
60
+ }
61
+ }
62
+ /** The minimum selectable date. */
63
+ // eslint-disable-next-line @typescript-eslint/member-ordering
64
+ get minDate() {
65
+ return this._minDate;
66
+ }
67
+ set minDate(value) {
68
+ this._minDate = this._adapter.getValidDateOrNull(this._adapter.deserialize(value));
69
+ }
70
+ /** The maximum selectable date. */
71
+ // eslint-disable-next-line @typescript-eslint/member-ordering
72
+ get maxDate() {
73
+ return this._maxDate;
74
+ }
75
+ set maxDate(value) {
76
+ this._maxDate = this._adapter.getValidDateOrNull(this._adapter.deserialize(value));
77
+ }
78
+ /** Whether the clock should be started in hour or minute view. */
79
+ // eslint-disable-next-line @typescript-eslint/member-ordering
80
+ set startView(value) {
81
+ this.hourView = value !== 'minute';
82
+ }
83
+ // eslint-disable-next-line @typescript-eslint/member-ordering
84
+ get hand() {
85
+ let hour = this._adapter.getHour(this.activeDate);
86
+ if (this.twelvehour) {
87
+ if (hour === 0) {
88
+ hour = 24;
89
+ }
90
+ this.selectedHour = hour > 12 ? (hour - 12) : hour;
91
+ }
92
+ else {
93
+ this.selectedHour = hour;
94
+ }
95
+ this.selectedMinute = this._adapter.getMinute(this.activeDate);
96
+ let deg = 0;
97
+ let radius = CLOCK_OUTER_RADIUS;
98
+ if (this.hourView) {
99
+ const outer = this.selectedHour > 0 && this.selectedHour < 13;
100
+ radius = outer ? CLOCK_OUTER_RADIUS : CLOCK_INNER_RADIUS;
101
+ if (this.twelvehour) {
102
+ radius = CLOCK_OUTER_RADIUS;
103
+ }
104
+ deg = Math.round(this.selectedHour * (360 / (24 / 2)));
105
+ }
106
+ else {
107
+ deg = Math.round(this.selectedMinute * (360 / 60));
108
+ }
109
+ return {
110
+ 'transform': `rotate(${deg}deg)`,
111
+ 'height': `${radius}%`,
112
+ // eslint-disable-next-line @typescript-eslint/naming-convention
113
+ 'margin-top': `${50 - radius}%`
114
+ };
115
+ }
116
+ /** Handles mousedown events on the clock body. */
117
+ handleMousedown(event) {
118
+ this._timeChanged = false;
119
+ this._setTime(event);
120
+ document.addEventListener('mousemove', this._mouseMoveListener);
121
+ document.addEventListener('touchmove', this._mouseMoveListener);
122
+ document.addEventListener('mouseup', this._mouseUpListener);
123
+ document.addEventListener('touchend', this._mouseUpListener);
124
+ }
125
+ ngAfterContentInit() {
126
+ this.activeDate = this._activeDate || this._adapter.today();
127
+ this._init();
128
+ }
129
+ handleMousemove(event) {
130
+ event.preventDefault();
131
+ this._setTime(event);
132
+ }
133
+ handleMouseup() {
134
+ document.removeEventListener('mousemove', this._mouseMoveListener);
135
+ document.removeEventListener('touchmove', this._mouseMoveListener);
136
+ document.removeEventListener('mouseup', this._mouseUpListener);
137
+ document.removeEventListener('touchend', this._mouseUpListener);
138
+ if (this._timeChanged) {
139
+ this.selectedChange.emit(this.activeDate);
140
+ if (!this.hourView) {
141
+ this.userSelection.emit();
142
+ }
143
+ }
144
+ }
145
+ trackByFn(index, item) {
146
+ return index || item;
147
+ }
148
+ /** Initializes this clock view. */
149
+ _init() {
150
+ this.hours.length = 0;
151
+ this.minutes.length = 0;
152
+ const hourNames = this._adapter.getHourNames();
153
+ const minuteNames = this._adapter.getMinuteNames();
154
+ if (this.twelvehour) {
155
+ for (let i = 1; i < (hourNames.length / 2) + 1; i++) {
156
+ const radian = i / 6 * Math.PI;
157
+ const radius = CLOCK_OUTER_RADIUS;
158
+ const date = this._adapter.createDatetime(this._adapter.getYear(this.activeDate), this._adapter.getMonth(this.activeDate), this._adapter.getDate(this.activeDate), i + 1, 0);
159
+ const enabled = (!this.minDate || this._adapter.compareDatetime(date, this.minDate) >= 0) &&
160
+ (!this.maxDate || this._adapter.compareDatetime(date, this.maxDate) <= 0);
161
+ this.hours.push({
162
+ value: i,
163
+ displayValue: i === 0 ? '00' : hourNames[i],
164
+ enabled: enabled,
165
+ top: CLOCK_RADIUS - Math.cos(radian) * radius - CLOCK_TICK_RADIUS,
166
+ left: CLOCK_RADIUS + Math.sin(radian) * radius - CLOCK_TICK_RADIUS
167
+ });
168
+ }
169
+ }
170
+ else {
171
+ for (let i = 0; i < hourNames.length; i++) {
172
+ const radian = i / 6 * Math.PI;
173
+ const outer = i > 0 && i < 13;
174
+ const radius = outer ? CLOCK_OUTER_RADIUS : CLOCK_INNER_RADIUS;
175
+ const date = this._adapter.createDatetime(this._adapter.getYear(this.activeDate), this._adapter.getMonth(this.activeDate), this._adapter.getDate(this.activeDate), i, 0);
176
+ const enabled = (!this.minDate || this._adapter.compareDatetime(date, this.minDate, false) >= 0) &&
177
+ (!this.maxDate || this._adapter.compareDatetime(date, this.maxDate, false) <= 0) &&
178
+ (!this.dateFilter || this.dateFilter(date, CmatDatetimepickerFilterType.HOUR));
179
+ this.hours.push({
180
+ value: i,
181
+ displayValue: i === 0 ? '00' : hourNames[i],
182
+ enabled: enabled,
183
+ top: CLOCK_RADIUS - Math.cos(radian) * radius - CLOCK_TICK_RADIUS,
184
+ left: CLOCK_RADIUS + Math.sin(radian) * radius - CLOCK_TICK_RADIUS,
185
+ fontSize: i > 0 && i < 13 ? '' : '80%'
186
+ });
187
+ }
188
+ }
189
+ for (let i = 0; i < minuteNames.length; i += 5) {
190
+ const radian = i / 30 * Math.PI;
191
+ const date = this._adapter.createDatetime(this._adapter.getYear(this.activeDate), this._adapter.getMonth(this.activeDate), this._adapter.getDate(this.activeDate), this._adapter.getHour(this.activeDate), i);
192
+ const enabled = (!this.minDate || this._adapter.compareDatetime(date, this.minDate) >= 0) &&
193
+ (!this.maxDate || this._adapter.compareDatetime(date, this.maxDate) <= 0) &&
194
+ (!this.dateFilter || this.dateFilter(date, CmatDatetimepickerFilterType.MINUTE));
195
+ this.minutes.push({
196
+ value: i,
197
+ displayValue: i === 0 ? '00' : minuteNames[i],
198
+ enabled: enabled,
199
+ top: CLOCK_RADIUS - Math.cos(radian) * CLOCK_OUTER_RADIUS - CLOCK_TICK_RADIUS,
200
+ left: CLOCK_RADIUS + Math.sin(radian) * CLOCK_OUTER_RADIUS - CLOCK_TICK_RADIUS
201
+ });
202
+ }
203
+ }
204
+ /**
205
+ * Set Time
206
+ *
207
+ * @param event
208
+ */
209
+ _setTime(event) {
210
+ const trigger = this._element.nativeElement;
211
+ const triggerRect = trigger.getBoundingClientRect();
212
+ const width = trigger.offsetWidth;
213
+ const height = trigger.offsetHeight;
214
+ const pageX = event.pageX !== undefined ? event.pageX : event.touches[0].pageX;
215
+ const pageY = event.pageY !== undefined ? event.pageY : event.touches[0].pageY;
216
+ const x = (width / 2) - (pageX - triggerRect.left - window.pageXOffset);
217
+ const y = (height / 2) - (pageY - triggerRect.top - window.pageYOffset);
218
+ let radian = Math.atan2(-x, y);
219
+ const unit = Math.PI / (this.hourView ? 6 : (this.interval ? (30 / this.interval) : 30));
220
+ const z = Math.sqrt(x * x + y * y);
221
+ const outer = this.hourView && z > ((width * (CLOCK_OUTER_RADIUS / 100)) +
222
+ (width * (CLOCK_INNER_RADIUS / 100))) / 2;
223
+ if (radian < 0) {
224
+ radian = Math.PI * 2 + radian;
225
+ }
226
+ let value = Math.round(radian / unit);
227
+ let date;
228
+ if (this.hourView) {
229
+ if (this.twelvehour) {
230
+ value = value === 0 ? 12 : value;
231
+ }
232
+ else {
233
+ if (value === 12) {
234
+ value = 0;
235
+ }
236
+ value = outer ? (value === 0 ? 12 : value) : value === 0 ? 0 : value + 12;
237
+ }
238
+ date = this._adapter.createDatetime(this._adapter.getYear(this.activeDate), this._adapter.getMonth(this.activeDate), this._adapter.getDate(this.activeDate), value, this._adapter.getMinute(this.activeDate));
239
+ }
240
+ else {
241
+ if (this.interval) {
242
+ value *= this.interval;
243
+ }
244
+ if (value === 60) {
245
+ value = 0;
246
+ }
247
+ date = this._adapter.createDatetime(this._adapter.getYear(this.activeDate), this._adapter.getMonth(this.activeDate), this._adapter.getDate(this.activeDate), this._adapter.getHour(this.activeDate), value);
248
+ }
249
+ this._timeChanged = true;
250
+ this.activeDate = date;
251
+ this.activeDateChange.emit(this.activeDate);
252
+ }
253
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CmatDatetimepickerClockComponent, deps: [{ token: i0.ElementRef }, { token: i1.DatetimeAdapter }], target: i0.ɵɵFactoryTarget.Component }); }
254
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: CmatDatetimepickerClockComponent, isStandalone: true, selector: "cmat-datetimepicker-clock", inputs: { dateFilter: "dateFilter", interval: "interval", twelvehour: "twelvehour", activeDate: "activeDate", selected: "selected", minDate: "minDate", maxDate: "maxDate", startView: "startView" }, outputs: { userSelection: "userSelection", selectedChange: "selectedChange", activeDateChange: "activeDateChange" }, host: { listeners: { "mousedown": "handleMousedown($event)" }, properties: { "role": "this.role", "class": "this.class" } }, exportAs: ["cmatDatetimepickerClock"], ngImport: i0, template: "<div class=\"cmat-datetimepicker-clock-wrapper\">\r\n <div class=\"cmat-datetimepicker-clock-center\"></div>\r\n <div [ngStyle]=\"hand\" class=\"cmat-datetimepicker-clock-hand\"></div>\r\n <div [class.active]=\"hourView\" class=\"cmat-datetimepicker-clock-hours\">\r\n <div *ngFor=\"let item of hours;trackBy: trackByFn\" [class.cmat-datetimepicker-clock-cell-disabled]=\"!item.enabled\"\r\n [class.cmat-datetimepicker-clock-cell-selected]=\"selectedHour === item.value\"\r\n [ngStyle]=\"{'fontSize':item.fontSize,'left':item.left+'%',top:item.top+'%'}\"\r\n class=\"cmat-datetimepicker-clock-cell\">\r\n {{ item.displayValue }}</div>\r\n </div>\r\n <div [class.active]=\"!hourView\" class=\"cmat-datetimepicker-clock-minutes\">\r\n <div *ngFor=\"let item of minutes;trackBy: trackByFn\" [class.cmat-datetimepicker-clock-cell-disabled]=\"!item.enabled\"\r\n [class.cmat-datetimepicker-clock-cell-selected]=\"selectedMinute === item.value\"\r\n [ngStyle]=\"{'left':item.left+'%','top':item.top+'%'}\" class=\"cmat-datetimepicker-clock-cell\">{{ item.displayValue\r\n }}</div>\r\n </div>\r\n</div>", styles: [".cmat-datetimepicker-clock{position:relative;display:block;min-width:224px;margin:12px;box-sizing:border-box;-webkit-user-select:none;user-select:none}.cmat-datetimepicker-clock-wrapper{position:relative;width:100%;height:0;padding-top:100%;border-radius:50%}.cmat-datetimepicker-clock-center{position:absolute;top:50%;left:50%;width:2%;height:2%;margin:-1%;border-radius:50%}.cmat-datetimepicker-clock-hand{position:absolute;inset:0;width:1px;margin:0 auto;transform-origin:bottom}.cmat-datetimepicker-clock-hand:before{content:\"\";position:absolute;top:-4px;left:-4px;width:8px;height:8px;border-radius:50%}.cmat-datetimepicker-clock-hours,.cmat-datetimepicker-clock-minutes{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;visibility:hidden;transition:.35s;transform:scale(1.2)}.cmat-datetimepicker-clock-hours.active,.cmat-datetimepicker-clock-minutes.active{opacity:1;visibility:visible;transform:scale(1)}.cmat-datetimepicker-clock-minutes{transform:scale(.8)}.cmat-datetimepicker-clock-cell{position:absolute;display:flex;width:14.1666%;height:14.1666%;justify-content:center;box-sizing:border-box;border-radius:50%;align-items:center;cursor:pointer}.cmat-datetimepicker-clock-cell.cmat-datetimepicker-clock-cell-disabled{pointer-events:none}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
255
+ }
256
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CmatDatetimepickerClockComponent, decorators: [{
257
+ type: Component,
258
+ args: [{ selector: 'cmat-datetimepicker-clock', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatDatetimepickerClock', standalone: true, imports: [NgStyle, NgFor], template: "<div class=\"cmat-datetimepicker-clock-wrapper\">\r\n <div class=\"cmat-datetimepicker-clock-center\"></div>\r\n <div [ngStyle]=\"hand\" class=\"cmat-datetimepicker-clock-hand\"></div>\r\n <div [class.active]=\"hourView\" class=\"cmat-datetimepicker-clock-hours\">\r\n <div *ngFor=\"let item of hours;trackBy: trackByFn\" [class.cmat-datetimepicker-clock-cell-disabled]=\"!item.enabled\"\r\n [class.cmat-datetimepicker-clock-cell-selected]=\"selectedHour === item.value\"\r\n [ngStyle]=\"{'fontSize':item.fontSize,'left':item.left+'%',top:item.top+'%'}\"\r\n class=\"cmat-datetimepicker-clock-cell\">\r\n {{ item.displayValue }}</div>\r\n </div>\r\n <div [class.active]=\"!hourView\" class=\"cmat-datetimepicker-clock-minutes\">\r\n <div *ngFor=\"let item of minutes;trackBy: trackByFn\" [class.cmat-datetimepicker-clock-cell-disabled]=\"!item.enabled\"\r\n [class.cmat-datetimepicker-clock-cell-selected]=\"selectedMinute === item.value\"\r\n [ngStyle]=\"{'left':item.left+'%','top':item.top+'%'}\" class=\"cmat-datetimepicker-clock-cell\">{{ item.displayValue\r\n }}</div>\r\n </div>\r\n</div>", styles: [".cmat-datetimepicker-clock{position:relative;display:block;min-width:224px;margin:12px;box-sizing:border-box;-webkit-user-select:none;user-select:none}.cmat-datetimepicker-clock-wrapper{position:relative;width:100%;height:0;padding-top:100%;border-radius:50%}.cmat-datetimepicker-clock-center{position:absolute;top:50%;left:50%;width:2%;height:2%;margin:-1%;border-radius:50%}.cmat-datetimepicker-clock-hand{position:absolute;inset:0;width:1px;margin:0 auto;transform-origin:bottom}.cmat-datetimepicker-clock-hand:before{content:\"\";position:absolute;top:-4px;left:-4px;width:8px;height:8px;border-radius:50%}.cmat-datetimepicker-clock-hours,.cmat-datetimepicker-clock-minutes{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;visibility:hidden;transition:.35s;transform:scale(1.2)}.cmat-datetimepicker-clock-hours.active,.cmat-datetimepicker-clock-minutes.active{opacity:1;visibility:visible;transform:scale(1)}.cmat-datetimepicker-clock-minutes{transform:scale(.8)}.cmat-datetimepicker-clock-cell{position:absolute;display:flex;width:14.1666%;height:14.1666%;justify-content:center;box-sizing:border-box;border-radius:50%;align-items:center;cursor:pointer}.cmat-datetimepicker-clock-cell.cmat-datetimepicker-clock-cell-disabled{pointer-events:none}\n"] }]
259
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.DatetimeAdapter }], propDecorators: { userSelection: [{
260
+ type: Output
261
+ }], dateFilter: [{
262
+ type: Input
263
+ }], interval: [{
264
+ type: Input
265
+ }], twelvehour: [{
266
+ type: Input
267
+ }], selectedChange: [{
268
+ type: Output
269
+ }], activeDateChange: [{
270
+ type: Output
271
+ }], role: [{
272
+ type: HostBinding,
273
+ args: ['role']
274
+ }], class: [{
275
+ type: HostBinding,
276
+ args: ['class']
277
+ }], activeDate: [{
278
+ type: Input
279
+ }], selected: [{
280
+ type: Input
281
+ }], minDate: [{
282
+ type: Input
283
+ }], maxDate: [{
284
+ type: Input
285
+ }], startView: [{
286
+ type: Input
287
+ }],
288
+ /** Handles mousedown events on the clock body. */
289
+ handleMousedown: [{
290
+ type: HostListener,
291
+ args: ['mousedown', ['$event']]
292
+ }] } });
293
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbWF0L2NvbXBvbmVudHMvbWF0ZXJpYWwtZGF0ZXRpbWVwaWNrZXIvY2xvY2sudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbWF0L2NvbXBvbmVudHMvbWF0ZXJpYWwtZGF0ZXRpbWVwaWNrZXIvY2xvY2suaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLHVCQUF1QixFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVLLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRzNFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUVqRCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDO0FBQy9CLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQztBQUN2QyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxLQUFLLENBQUM7QUFDeEMsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDO0FBRXhDOztHQUVHO0FBV0gsTUFBTSxPQUFPLGdDQUFnQztJQTZCM0MsWUFBb0IsUUFBb0IsRUFBVSxRQUE0QjtRQUExRCxhQUFRLEdBQVIsUUFBUSxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBb0I7UUE1QnBFLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUcxQyxhQUFRLEdBQVcsQ0FBQyxDQUFDO1FBQ3JCLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDckMsc0RBQXNEO1FBQzVDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUssQ0FBQztRQUN2QyxxQkFBZ0IsR0FBRyxJQUFJLFlB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QkFnQkYsUUFBUTtzQkFEWCxLQUFLO2dCQWVGLE9BQU87c0JBRFYsS0FBSztnQkFZRixPQUFPO3NCQURWLEtBQUs7Z0JBWUYsU0FBUztzQkFEWixLQUFLOztRQXNDTixrREFBa0Q7UUFDbEQsZUFBZTtzQkFGZCxZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ21hdERhdGV0aW1lcGlja2VyRmlsdGVyVHlwZSB9IGZyb20gJy4vZGF0ZXRpbWVwaWNrZXItZmlsdGVydHlwZSc7XHJcbmltcG9ydCB7IERhdGV0aW1lQWRhcHRlciB9IGZyb20gJ2NtYXQvY29tcG9uZW50cy9hZGFwdGVyJztcclxuaW1wb3J0IHsgQ21hdENsb2NrVmlldyB9IGZyb20gJy4vZGF0ZXRpbWVwaWNrZXItdHlwZXMnO1xyXG5pbXBvcnQgeyBOZ1N0eWxlLCBOZ0ZvciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5leHBvcnQgY29uc3QgQ0xPQ0tfUkFESVVTID0gNTA7XHJcbmV4cG9ydCBjb25zdCBDTE9DS19JTk5FUl9SQURJVVMgPSAyNy41O1xyXG5leHBvcnQgY29uc3QgQ0xPQ0tfT1VURVJfUkFESVVTID0gNDEuMjU7XHJcbmV4cG9ydCBjb25zdCBDTE9DS19USUNLX1JBRElVUyA9IDcuMDgzMztcclxuXHJcbi8qKlxyXG4gKiBBIGNsb2NrIHRoYXQgaXMgdXNlZCBhcyBwYXJ0IG9mIHRoZSBkYXRlcGlja2VyLlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjbWF0LWRhdGV0aW1lcGlja2VyLWNsb2NrJyxcclxuICB0ZW1wbGF0ZVVybDogJ2Nsb2NrLmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWydjbG9jay5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBleHBvcnRBczogJ2NtYXREYXRldGltZXBpY2tlckNsb2NrJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtOZ1N0eWxlLCBOZ0Zvcl1cclxufSlcclxuZXhwb3J0IGNsYXNzIENtYXREYXRldGltZXBpY2tlckNsb2NrQ29tcG9uZW50PEQ+IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XHJcbiAgQE91dHB1dCgpIHVzZXJTZWxlY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgLyoqIEEgZnVuY3Rpb24gdXNlZCB0byBmaWx0ZXIgd2hpY2ggZGF0ZXMgYXJlIHNlbGVjdGFibGUuICovXHJcbiAgQElucHV0KCkgZGF0ZUZpbHRlcjogKGRhdGU6IEQsIHR5cGU6IENtYXREYXRldGltZXBpY2tlckZpbHRlclR5cGUpID0+IGJvb2xlYW47XHJcbiAgQElucHV0KCkgaW50ZXJ2YWw6IG51bWJlciA9IDE7XHJcbiAgQElucHV0KCkgdHdlbHZlaG91cjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8qKiBFbWl0cyB3aGVuIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgZGF0ZSBjaGFuZ2VzLiAqL1xyXG4gIEBPdXRwdXQoKSBzZWxlY3RlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RD4oKTtcclxuICBAT3V0cHV0KCkgYWN0aXZlRGF0ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RD4oKTtcclxuICBASG9zdEJpbmRpbmcoJ3JvbGUnKSByb2xlID0gJ2Nsb2NrJztcclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgY2xhc3MgPSAnY21hdC1kYXRldGltZXBpY2tlci1jbG9jayc7XHJcblxyXG4gIC8qKiBIb3VycyBhbmQgTWludXRlcyByZXByZXNlbnRpbmcgdGhlIGNsb2NrIHZpZXcuICovXHJcbiAgaG91cnM6IEFycmF5PGFueT4gPSBbXTtcclxuICBtaW51dGVzOiBBcnJheTxhbnk+ID0gW107XHJcbiAgLyoqIFdoZXRoZXIgdGhlIGNsb2NrIGlzIGluIGhvdXIgdmlldy4gKi9cclxuICBob3VyVmlldzogYm9vbGVhbiA9IHRydWU7XHJcbiAgc2VsZWN0ZWRIb3VyOiBudW1iZXI7XHJcbiAgc2VsZWN0ZWRNaW51dGU6IG51bWJlcjtcclxuXHJcbiAgcHJpdmF0ZSBfdGltZUNoYW5nZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIF9tb3VzZU1vdmVMaXN0ZW5lcjogYW55O1xyXG4gIHByaXZhdGUgX21vdXNlVXBMaXN0ZW5lcjogYW55O1xyXG4gIHByaXZhdGUgX2FjdGl2ZURhdGU6IEQ7XHJcbiAgcHJpdmF0ZSBfc2VsZWN0ZWQ6IEQgfCBudWxsO1xyXG4gIHByaXZhdGUgX21pbkRhdGU6IEQgfCBudWxsO1xyXG4gIHByaXZhdGUgX21heERhdGU6IEQgfCBudWxsO1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZWxlbWVudDogRWxlbWVudFJlZiwgcHJpdmF0ZSBfYWRhcHRlcjogRGF0ZXRpbWVBZGFwdGVyPEQ+KSB7XHJcbiAgICB0aGlzLl9tb3VzZU1vdmVMaXN0ZW5lciA9IChldmVudDogYW55KTogdm9pZCA9PiB7XHJcbiAgICAgIHRoaXMuaGFuZGxlTW91c2Vtb3ZlKGV2ZW50KTtcclxuICAgIH07XHJcbiAgICB0aGlzLl9tb3VzZVVwTGlzdGVuZXIgPSAoKTogdm9pZCA9PiB7XHJcbiAgICAgIHRoaXMuaGFuZGxlTW91c2V1cCgpO1xyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBkYXRlIHRvIGRpc3BsYXkgaW4gdGhpcyBjbG9jayB2aWV3LlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGFjdGl2ZURhdGUoKTogRCB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlRGF0ZTtcclxuICB9XHJcblxyXG4gIHNldCBhY3RpdmVEYXRlKHZhbHVlOiBEKSB7XHJcbiAgICBjb25zdCBvbGRBY3RpdmVEYXRlID0gdGhpcy5fYWN0aXZlRGF0ZTtcclxuICAgIHRoaXMuX2FjdGl2ZURhdGUgPSB0aGlzLl9hZGFwdGVyLmNsYW1wRGF0ZSh2YWx1ZSwgdGhpcy5taW5EYXRlLCB0aGlzLm1heERhdGUpO1xyXG4gICAgaWYgKCF0aGlzLl9hZGFwdGVyLnNhbWVNaW51dGUob2xkQWN0aXZlRGF0ZSwgdGhpcy5fYWN0aXZlRGF0ZSkpIHtcclxuICAgICAgdGhpcy5faW5pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIFRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgZGF0ZS4gKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZ1xyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHNlbGVjdGVkKCk6IEQgfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZDtcclxuICB9XHJcblxyXG4gIHNldCBzZWxlY3RlZCh2YWx1ZTogRCB8IG51bGwpIHtcclxuICAgIHRoaXMuX3NlbGVjdGVkID0gdGhpcy5fYWRhcHRlci5nZXRWYWxpZERhdGVPck51bGwodGhpcy5fYWRhcHRlci5kZXNlcmlhbGl6ZSh2YWx1ZSkpO1xyXG4gICAgaWYgKHRoaXMuX3NlbGVjdGVkKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlRGF0ZSA9IHRoaXMuX3NlbGVjdGVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIFRoZSBtaW5pbXVtIHNlbGVjdGFibGUgZGF0ZS4gKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZ1xyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IG1pbkRhdGUoKTogRCB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuX21pbkRhdGU7XHJcbiAgfVxyXG5cclxuICBzZXQgbWluRGF0ZSh2YWx1ZTogRCB8IG51bGwpIHtcclxuICAgIHRoaXMuX21pbkRhdGUgPSB0aGlzLl9hZGFwdGVyLmdldFZhbGlkRGF0ZU9yTnVsbCh0aGlzLl9hZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlKSk7XHJcbiAgfVxyXG5cclxuICAvKiogVGhlIG1heGltdW0gc2VsZWN0YWJsZSBkYXRlLiAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nXHJcbiAgQElucHV0KClcclxuICBnZXQgbWF4RGF0ZSgpOiBEIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5fbWF4RGF0ZTtcclxuICB9XHJcblxyXG4gIHNldCBtYXhEYXRlKHZhbHVlOiBEIHwgbnVsbCkge1xyXG4gICAgdGhpcy5fbWF4RGF0ZSA9IHRoaXMuX2FkYXB0ZXIuZ2V0VmFsaWREYXRlT3JOdWxsKHRoaXMuX2FkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUpKTtcclxuICB9XHJcblxyXG4gIC8qKiBXaGV0aGVyIHRoZSBjbG9jayBzaG91bGQgYmUgc3RhcnRlZCBpbiBob3VyIG9yIG1pbnV0ZSB2aWV3LiAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nXHJcbiAgQElucHV0KClcclxuICBzZXQgc3RhcnRWaWV3KHZhbHVlOiBDbWF0Q2xvY2tWaWV3KSB7XHJcbiAgICB0aGlzLmhvdXJWaWV3ID0gdmFsdWUgIT09ICdtaW51dGUnO1xyXG4gIH1cclxuXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcclxuICBnZXQgaGFuZCgpOiBhbnkge1xyXG4gICAgbGV0IGhvdXIgPSB0aGlzLl9hZGFwdGVyLmdldEhvdXIodGhpcy5hY3RpdmVEYXRlKTtcclxuICAgIGlmICh0aGlzLnR3ZWx2ZWhvdXIpIHtcclxuICAgICAgaWYgKGhvdXIgPT09IDApIHtcclxuICAgICAgICBob3VyID0gMjQ7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zZWxlY3RlZEhvdXIgPSBob3VyID4gMTIgPyAoaG91ciAtIDEyKSA6IGhvdXI7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSG91ciA9IGhvdXI7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlbGVjdGVkTWludXRlID0gdGhpcy5fYWRhcHRlci5nZXRNaW51dGUodGhpcy5hY3RpdmVEYXRlKTtcclxuICAgIGxldCBkZWcgPSAwO1xyXG4gICAgbGV0IHJhZGl1cyA9IENMT0NLX09VVEVSX1JBRElVUztcclxuICAgIGlmICh0aGlzLmhvdXJWaWV3KSB7XHJcbiAgICAgIGNvbnN0IG91dGVyID0gdGhpcy5zZWxlY3RlZEhvdXIgPiAwICYmIHRoaXMuc2VsZWN0ZWRIb3VyIDwgMTM7XHJcbiAgICAgIHJhZGl1cyA9IG91dGVyID8gQ0xPQ0tfT1VURVJfUkFESVVTIDogQ0xPQ0tfSU5ORVJfUkFESVVTO1xyXG4gICAgICBpZiAodGhpcy50d2VsdmVob3VyKSB7XHJcbiAgICAgICAgcmFkaXVzID0gQ0xPQ0tfT1VURVJfUkFESVVTO1xyXG4gICAgICB9XHJcbiAgICAgIGRlZyA9IE1hdGgucm91bmQodGhpcy5zZWxlY3RlZEhvdXIgKiAoMzYwIC8gKDI0IC8gMikpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRlZyA9IE1hdGgucm91bmQodGhpcy5zZWxlY3RlZE1pbnV0ZSAqICgzNjAgLyA2MCkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgJ3RyYW5zZm9ybSc6IGByb3RhdGUoJHtkZWd9ZGVnKWAsXHJcbiAgICAgICdoZWlnaHQnOiBgJHtyYWRpdXN9JWAsXHJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cclxuICAgICAgJ21hcmdpbi10b3AnOiBgJHs1MCAtIHJhZGl1c30lYFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicsIFsnJGV2ZW50J10pXHJcbiAgLyoqIEhhbmRsZXMgbW91c2Vkb3duIGV2ZW50cyBvbiB0aGUgY2xvY2sgYm9keS4gKi9cclxuICBoYW5kbGVNb3VzZWRvd24oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuX3RpbWVDaGFuZ2VkID0gZmFsc2U7XHJcbiAgICB0aGlzLl9zZXRUaW1lKGV2ZW50KTtcclxuXHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLl9tb3VzZU1vdmVMaXN0ZW5lcik7XHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCB0aGlzLl9tb3VzZU1vdmVMaXN0ZW5lcik7XHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5fbW91c2VVcExpc3RlbmVyKTtcclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgdGhpcy5fbW91c2VVcExpc3RlbmVyKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYWN0aXZlRGF0ZSA9IHRoaXMuX2FjdGl2ZURhdGUgfHwgdGhpcy5fYWRhcHRlci50b2RheSgpO1xyXG4gICAgdGhpcy5faW5pdCgpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlTW91c2Vtb3ZlKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB0aGlzLl9zZXRUaW1lKGV2ZW50KTtcclxuICB9XHJcblxyXG4gIGhhbmRsZU1vdXNldXAoKTogdm9pZCB7XHJcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLl9tb3VzZU1vdmVMaXN0ZW5lcik7XHJcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCB0aGlzLl9tb3VzZU1vdmVMaXN0ZW5lcik7XHJcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5fbW91c2VVcExpc3RlbmVyKTtcclxuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgdGhpcy5fbW91c2VVcExpc3RlbmVyKTtcclxuICAgIGlmICh0aGlzLl90aW1lQ2hhbmdlZCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQ2hhbmdlLmVtaXQodGhpcy5hY3RpdmVEYXRlKTtcclxuICAgICAgaWYgKCF0aGlzLmhvdXJWaWV3KSB7XHJcbiAgICAgICAgdGhpcy51c2VyU2VsZWN0aW9uLmVtaXQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIsIGl0ZW06IGFueSk6IGFueSB7XHJcbiAgICByZXR1cm4gaW5kZXggfHwgaXRlbTtcclxuICB9XHJcblxyXG4gIC8qKiBJbml0aWFsaXplcyB0aGlzIGNsb2NrIHZpZXcuICovXHJcbiAgcHJpdmF0ZSBfaW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaG91cnMubGVuZ3RoID0gMDtcclxuICAgIHRoaXMubWludXRlcy5sZW5ndGggPSAwO1xyXG5cclxuICAgIGNvbnN0IGhvdXJOYW1lcyA9IHRoaXMuX2FkYXB0ZXIuZ2V0SG91ck5hbWVzKCk7XHJcbiAgICBjb25zdCBtaW51dGVOYW1lcyA9IHRoaXMuX2FkYXB0ZXIuZ2V0TWludXRlTmFtZXMoKTtcclxuXHJcbiAgICBpZiAodGhpcy50d2VsdmVob3VyKSB7XHJcbiAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgKGhvdXJOYW1lcy5sZW5ndGggLyAyKSArIDE7IGkrKykge1xyXG4gICAgICAgIGNvbnN0IHJhZGlhbiA9IGkgLyA2ICogTWF0aC5QSTtcclxuICAgICAgICBjb25zdCByYWRpdXMgPSBDTE9DS19PVVRFUl9SQURJVVM7XHJcbiAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMuX2FkYXB0ZXIuY3JlYXRlRGF0ZXRpbWUoXHJcbiAgICAgICAgICB0aGlzLl9hZGFwdGVyLmdldFllYXIodGhpcy5hY3RpdmVEYXRlKSxcclxuICAgICAgICAgIHRoaXMuX2FkYXB0ZXIuZ2V0TW9udGgodGhpcy5hY3RpdmVEYXRlKSxcclxuICAgICAgICAgIHRoaXMuX2FkYXB0ZXIuZ2V0RGF0ZSh0aGlzLmFjdGl2ZURhdGUpLCBpICsgMSwgMCk7XHJcbiAgICAgICAgY29uc3QgZW5hYmxlZCA9XHJcbiAgICAgICAgICAoIXRoaXMubWluRGF0ZSB8fCAodGhpcy5fYWRhcHRlci5jb21wYXJlRGF0ZXRpbWUoZGF0ZSwgdGhpcy5taW5EYXRlKSBhcyBudW1iZXIpID49IDApICYmXHJcbiAgICAgICAgICAoIXRoaXMubWF4RGF0ZSB8fCAodGhpcy5fYWRhcHRlci5jb21wYXJlRGF0ZXRpbWUoZGF0ZSwgdGhpcy5tYXhEYXRlKSBhcyBudW1iZXIpIDw9IDApO1xyXG4gICAgICAgIHRoaXMuaG91cnMucHVzaCh7XHJcbiAgICAgICAgICB2YWx1ZTogaSxcclxuICAgICAgICAgIGRpc3BsYXlWYWx1ZTogaSA9PT0gMCA/ICcwMCcgOiBob3VyTmFtZXNbaV0sXHJcbiAgICAgICAgICBlbmFibGVkOiBlbmFibGVkLFxyXG4gICAgICAgICAgdG9wOiBDTE9DS19SQURJVVMgLSBNYXRoLmNvcyhyYWRpYW4pICogcmFkaXVzIC0gQ0xPQ0tfVElDS19SQURJVVMsXHJcbiAgICAgICAgICBsZWZ0OiBDTE9DS19SQURJVVMgKyBNYXRoLnNpbihyYWRpYW4pICogcmFkaXVzIC0gQ0xPQ0tfVElDS19SQURJVVNcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBob3VyTmFtZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb25zdCByYWRpYW4gPSBpIC8gNiAqIE1hdGguUEk7XHJcbiAgICAgICAgY29uc3Qgb3V0ZXIgPSBpID4gMCAmJiBpIDwgMTM7XHJcbiAgICAgICAgY29uc3QgcmFkaXVzID0gb3V0ZXIgPyBDTE9DS19PVVRFUl9SQURJVVMgOiBDTE9DS19JTk5FUl9SQURJVVM7XHJcbiAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMuX2FkYXB0ZXIuY3JlYXRlRGF0ZXRpbWUoXHJcbiAgICAgICAgICB0aGlzLl9hZGFwdGVyLmdldFllYXIodGhpcy5hY3RpdmVEYXRlKSxcclxuICAgICAgICAgIHRoaXMuX2FkYXB0ZXIuZ2V0TW9udGgodGhpcy5hY3RpdmVEYXRlKSxcclxuICAgICAgICAgIHRoaXMuX2FkYXB0ZXIuZ2V0RGF0ZSh0aGlzLmFjdGl2ZURhdGUpLCBpLCAwKTtcclxuICAgICAgICBjb25zdCBlbmFibGVkID1cclxuICAgICAgICAgICghdGhpcy5taW5EYXRlIHx8ICh0aGlzLl9hZGFwdGVyLmNvbXBhcmVEYXRldGltZShkYXRlLCB0aGlzLm1pbkRhdGUsIGZhbHNlKSBhcyBudW1iZXIpID49IDApICYmXHJcbiAgICAgICAgICAoIXRoaXMubWF4RGF0ZSB8fCAodGhpcy5fYWRhcHRlci5jb21wYXJlRGF0ZXRpbWUoZGF0ZSwgdGhpcy5tYXhEYXRlLCBmYWxzZSkgYXMgbnVtYmVyKSA8PSAwKSAmJlxyXG4gICAgICAgICAgKCF0aGlzLmRhdGVGaWx0ZXIgfHwgdGhpcy5kYXRlRmlsdGVyKGRhdGUsIENtYXREYXRldGltZXBpY2tlckZpbHRlclR5cGUuSE9VUikpO1xyXG4gICAgICAgIHRoaXMuaG91cnMucHVzaCh7XHJcbiAgICAgICAgICB2YWx1ZTogaSxcclxuICAgICAgICAgIGRpc3BsYXlWYWx1ZTogaSA9PT0gMCA/ICcwMCcgOiBob3VyTmFtZXNbaV0sXHJcbiAgICAgICAgICBlbmFibGVkOiBlbmFibGVkLFxyXG4gICAgICAgICAgdG9wOiBDTE9DS19SQURJVVMgLSBNYXRoLmNvcyhyYWRpYW4pICogcmFkaXVzIC0gQ0xPQ0tfVElDS19SQURJVVMsXHJcbiAgICAgICAgICBsZWZ0OiBDTE9DS19SQURJVVMgKyBNYXRoLnNpbihyYWRpYW4pICogcmFkaXVzIC0gQ0xPQ0tfVElDS19SQURJVVMsXHJcbiAgICAgICAgICBmb250U2l6ZTogaSA+IDAgJiYgaSA8IDEzID8gJycgOiAnODAlJ1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtaW51dGVOYW1lcy5sZW5ndGg7IGkgKz0gNSkge1xyXG4gICAgICBjb25zdCByYWRpYW4gPSBpIC8gMzAgKiBNYXRoLlBJO1xyXG4gICAgICBjb25zdCBkYXRlID0gdGhpcy5fYWRhcHRlci5jcmVhdGVEYXRldGltZShcclxuICAgICAgICB0aGlzLl9hZGFwdGVyLmdldFllYXIodGhpcy5hY3RpdmVEYXRlKSxcclxuICAgICAgICB0aGlzLl9hZGFwdGVyLmdldE1vbnRoKHRoaXMuYWN0aXZlRGF0ZSksXHJcbiAgICAgICAgdGhpcy5fYWRhcHRlci5nZXREYXRlKHRoaXMuYWN0aXZlRGF0ZSksIHRoaXMuX2FkYXB0ZXIuZ2V0SG91cih0aGlzLmFjdGl2ZURhdGUpLCBpKTtcclxuICAgICAgY29uc3QgZW5hYmxlZCA9XHJcbiAgICAgICAgKCF0aGlzLm1pbkRhdGUgfHwgKHRoaXMuX2FkYXB0ZXIuY29tcGFyZURhdGV0aW1lKGRhdGUsIHRoaXMubWluRGF0ZSkgYXMgbnVtYmVyKSA+PSAwKSAmJlxyXG4gICAgICAgICghdGhpcy5tYXhEYXRlIHx8ICh0aGlzLl9hZGFwdGVyLmNvbXBhcmVEYXRldGltZShkYXRlLCB0aGlzLm1heERhdGUpIGFzIG51bWJlcikgPD0gMCkgJiZcclxuICAgICAgICAoIXRoaXMuZGF0ZUZpbHRlciB8fCB0aGlzLmRhdGVGaWx0ZXIoZGF0ZSwgQ21hdERhdGV0aW1lcGlja2VyRmlsdGVyVHlwZS5NSU5VVEUpKTtcclxuICAgICAgdGhpcy5taW51dGVzLnB1c2goe1xyXG4gICAgICAgIHZhbHVlOiBpLFxyXG4gICAgICAgIGRpc3BsYXlWYWx1ZTogaSA9PT0gMCA/ICcwMCcgOiBtaW51dGVOYW1lc1tpXSxcclxuICAgICAgICBlbmFibGVkOiBlbmFibGVkLFxyXG4gICAgICAgIHRvcDogQ0xPQ0tfUkFESVVTIC0gTWF0aC5jb3MocmFkaWFuKSAqIENMT0NLX09VVEVSX1JBRElVUyAtIENMT0NLX1RJQ0tfUkFESVVTLFxyXG4gICAgICAgIGxlZnQ6IENMT0NLX1JBRElVUyArIE1hdGguc2luKHJhZGlhbikgKiBDTE9DS19PVVRFUl9SQURJVVMgLSBDTE9DS19USUNLX1JBRElVU1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCBUaW1lXHJcbiAgICpcclxuICAgKiBAcGFyYW0gZXZlbnRcclxuICAgKi9cclxuICBwcml2YXRlIF9zZXRUaW1lKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnN0IHRyaWdnZXIgPSB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBjb25zdCB0cmlnZ2VyUmVjdCA9IHRyaWdnZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICBjb25zdCB3aWR0aCA9IHRyaWdnZXIub2Zmc2V0V2lkdGg7XHJcbiAgICBjb25zdCBoZWlnaHQgPSB0cmlnZ2VyLm9mZnNldEhlaWdodDtcclxuICAgIGNvbnN0IHBhZ2VYID0gZXZlbnQucGFnZVggIT09IHVuZGVmaW5lZCA/IGV2ZW50LnBhZ2VYIDogZXZlbnQudG91Y2hlc1swXS5wYWdlWDtcclxuICAgIGNvbnN0IHBhZ2VZID0gZXZlbnQucGFnZVkgIT09IHVuZGVmaW5lZCA/IGV2ZW50LnBhZ2VZIDogZXZlbnQudG91Y2hlc1swXS5wYWdlWTtcclxuICAgIGNvbnN0IHggPSAod2lkdGggLyAyKSAtIChwYWdlWCAtIHRyaWdnZXJSZWN0LmxlZnQgLSB3aW5kb3cucGFnZVhPZmZzZXQpO1xyXG4gICAgY29uc3QgeSA9IChoZWlnaHQgLyAyKSAtIChwYWdlWSAtIHRyaWdnZXJSZWN0LnRvcCAtIHdpbmRvdy5wYWdlWU9mZnNldCk7IGxldCByYWRpYW4gPSBNYXRoLmF0YW4yKC14LCB5KTtcclxuICAgIGNvbnN0IHVuaXQgPSBNYXRoLlBJIC8gKHRoaXMuaG91clZpZXcgPyA2IDogKHRoaXMuaW50ZXJ2YWwgPyAoMzAgLyB0aGlzLmludGVydmFsKSA6IDMwKSk7XHJcbiAgICBjb25zdCB6ID0gTWF0aC5zcXJ0KHggKiB4ICsgeSAqIHkpO1xyXG4gICAgY29uc3Qgb3V0ZXIgPSB0aGlzLmhvdXJWaWV3ICYmIHogPiAoKHdpZHRoICogKENMT0NLX09VVEVSX1JBRElVUyAvIDEwMCkpICtcclxuICAgICAgKHdpZHRoICogKENMT0NLX0lOTkVSX1JBRElVUyAvIDEwMCkpKSAvIDI7XHJcblxyXG4gICAgaWYgKHJhZGlhbiA8IDApIHtcclxuICAgICAgcmFkaWFuID0gTWF0aC5QSSAqIDIgKyByYWRpYW47XHJcbiAgICB9XHJcbiAgICBsZXQgdmFsdWUgPSBNYXRoLnJvdW5kKHJhZGlhbiAvIHVuaXQpO1xyXG5cclxuICAgIGxldCBkYXRlOiBEO1xyXG4gICAgaWYgKHRoaXMuaG91clZpZXcpIHtcclxuICAgICAgaWYgKHRoaXMudHdlbHZlaG91cikge1xyXG4gICAgICAgIHZhbHVlID0gdmFsdWUgPT09IDAgPyAxMiA6IHZhbHVlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gMTIpIHtcclxuICAgICAgICAgIHZhbHVlID0gMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFsdWUgPSBvdXRlciA/ICh2YWx1ZSA9PT0gMCA/IDEyIDogdmFsdWUpIDogdmFsdWUgPT09IDAgPyAwIDogdmFsdWUgKyAxMjtcclxuICAgICAgfVxyXG4gICAgICBkYXRlID0gdGhpcy5fYWRhcHRlci5jcmVhdGVEYXRldGltZShcclxuICAgICAgICB0aGlzLl9hZGFwdGVyLmdldFllYXIodGhpcy5hY3RpdmVEYXRlKSxcclxuICAgICAgICB0aGlzLl9hZGFwdGVyLmdldE1vbnRoKHRoaXMuYWN0aXZlRGF0ZSksXHJcbiAgICAgICAgdGhpcy5fYWRhcHRlci5nZXREYXRlKHRoaXMuYWN0aXZlRGF0ZSksIHZhbHVlLCB0aGlzLl9hZGFwdGVyLmdldE1pbnV0ZSh0aGlzLmFjdGl2ZURhdGUpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLmludGVydmFsKSB7XHJcbiAgICAgICAgdmFsdWUgKj0gdGhpcy5pbnRlcnZhbDtcclxuICAgICAgfVxyXG4gICAgICBpZiAodmFsdWUgPT09IDYwKSB7XHJcbiAgICAgICAgdmFsdWUgPSAwO1xyXG4gICAgICB9XHJcbiAgICAgIGRhdGUgPSB0aGlzLl9hZGFwdGVyLmNyZWF0ZURhdGV0aW1lKFxyXG4gICAgICAgIHRoaXMuX2FkYXB0ZXIuZ2V0WWVhcih0aGlzLmFjdGl2ZURhdGUpLFxyXG4gICAgICAgIHRoaXMuX2FkYXB0ZXIuZ2V0TW9udGgodGhpcy5hY3RpdmVEYXRlKSxcclxuICAgICAgICB0aGlzLl9hZGFwdGVyLmdldERhdGUodGhpcy5hY3RpdmVEYXRlKSwgdGhpcy5fYWRhcHRlci5nZXRIb3VyKHRoaXMuYWN0aXZlRGF0ZSksIHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl90aW1lQ2hhbmdlZCA9IHRydWU7XHJcbiAgICB0aGlzLmFjdGl2ZURhdGUgPSBkYXRlO1xyXG4gICAgdGhpcy5hY3RpdmVEYXRlQ2hhbmdlLmVtaXQodGhpcy5hY3RpdmVEYXRlKTtcclxuICB9XHJcblxyXG59XHJcblxyXG4iLCI8ZGl2IGNsYXNzPVwiY21hdC1kYXRldGltZXBpY2tlci1jbG9jay13cmFwcGVyXCI+XHJcbiAgPGRpdiBjbGFzcz1cImNtYXQtZGF0ZXRpbWVwaWNrZXItY2xvY2stY2VudGVyXCI+PC9kaXY+XHJcbiAgPGRpdiBbbmdTdHlsZV09XCJoYW5kXCIgY2xhc3M9XCJjbWF0LWRhdGV0aW1lcGlja2VyLWNsb2NrLWhhbmRcIj48L2Rpdj5cclxuICA8ZGl2IFtjbGFzcy5hY3RpdmVdPVwiaG91clZpZXdcIiBjbGFzcz1cImNtYXQtZGF0ZXRpbWVwaWNrZXItY2xvY2staG91cnNcIj5cclxuICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaG91cnM7dHJhY2tCeTogdHJhY2tCeUZuXCIgW2NsYXNzLmNtYXQtZGF0ZXRpbWVwaWNrZXItY2xvY2stY2VsbC1kaXNhYmxlZF09XCIhaXRlbS5lbmFibGVkXCJcclxuICAgICAgW2NsYXNzLmNtYXQtZGF0ZXRpbWVwaWNrZXItY2xvY2stY2VsbC1zZWxlY3RlZF09XCJzZWxlY3RlZEhvdXIgPT09IGl0ZW0udmFsdWVcIlxyXG4gICAgICBbbmdTdHlsZV09XCJ7J2ZvbnRTaXplJzppdGVtLmZvbnRTaXplLCdsZWZ0JzppdGVtLmxlZnQrJyUnLHRvcDppdGVtLnRvcCsnJSd9XCJcclxuICAgICAgY2xhc3M9XCJjbWF0LWRhdGV0aW1lcGlja2VyLWNsb2NrLWNlbGxcIj5cclxuICAgICAge3sgaXRlbS5kaXNwbGF5VmFsdWUgfX08L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IFtjbGFzcy5hY3RpdmVdPVwiIWhvdXJWaWV3XCIgY2xhc3M9XCJjbWF0LWRhdGV0aW1lcGlja2VyLWNsb2NrLW1pbnV0ZXNcIj5cclxuICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbWludXRlczt0cmFja0J5OiB0cmFja0J5Rm5cIiBbY2xhc3MuY21hdC1kYXRldGltZXBpY2tlci1jbG9jay1jZWxsLWRpc2FibGVkXT1cIiFpdGVtLmVuYWJsZWRcIlxyXG4gICAgICBbY2xhc3MuY21hdC1kYXRldGltZXBpY2tlci1jbG9jay1jZWxsLXNlbGVjdGVkXT1cInNlbGVjdGVkTWludXRlID09PSBpdGVtLnZhbHVlXCJcclxuICAgICAgW25nU3R5bGVdPVwieydsZWZ0JzppdGVtLmxlZnQrJyUnLCd0b3AnOml0ZW0udG9wKyclJ31cIiBjbGFzcz1cImNtYXQtZGF0ZXRpbWVwaWNrZXItY2xvY2stY2VsbFwiPnt7IGl0ZW0uZGlzcGxheVZhbHVlXHJcbiAgICAgIH19PC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21hdC1jb21wb25lbnRzLW1hdGVyaWFsLWRhdGV0aW1lcGlja2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL21hdGVyaWFsLWRhdGV0aW1lcGlja2VyL2NtYXQtY29tcG9uZW50cy1tYXRlcmlhbC1kYXRldGltZXBpY2tlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,34 @@
1
+ import { animate, keyframes, state, style, transition, trigger } from '@angular/animations';
2
+ export const transformPanel = trigger('transformPanel', [
3
+ transition('void => enter-dropdown', animate('120ms cubic-bezier(0, 0, 0.2, 1)', keyframes([
4
+ style({ opacity: 0, transform: 'scale(1, 0.8)' }),
5
+ style({ opacity: 1, transform: 'scale(1, 1)' }),
6
+ ]))),
7
+ transition('void => enter-dialog', animate('150ms cubic-bezier(0, 0, 0.2, 1)', keyframes([
8
+ style({ opacity: 0, transform: 'scale(0.7)' }),
9
+ style({ transform: 'none', opacity: 1 }),
10
+ ]))),
11
+ transition('* => void', animate('100ms linear', style({ opacity: 0 }))),
12
+ ]);
13
+ export const fadeInCalendar = trigger('fadeInCalendar', [
14
+ state('void', style({ opacity: 0 })),
15
+ state('enter', style({ opacity: 1 })),
16
+ transition('void => *', animate('120ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)'))
17
+ ]);
18
+ export const slideCalendar = trigger('slideCalendar', [
19
+ transition('* => left', [
20
+ animate(180, keyframes([
21
+ style({ transform: 'translateX(100%)', offset: 0.5 }),
22
+ style({ transform: 'translateX(-100%)', offset: 0.51 }),
23
+ style({ transform: 'translateX(0)', offset: 1 })
24
+ ]))
25
+ ]),
26
+ transition('* => right', [
27
+ animate(180, keyframes([
28
+ style({ transform: 'translateX(-100%)', offset: 0.5 }),
29
+ style({ transform: 'translateX(100%)', offset: 0.51 }),
30
+ style({ transform: 'translateX(0)', offset: 1 })
31
+ ]))
32
+ ])
33
+ ]);
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWVwaWNrZXItYW5pbWF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy9tYXRlcmlhbC1kYXRldGltZXBpY2tlci9kYXRldGltZXBpY2tlci1hbmltYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQTRCLFNBQVMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0SCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQTZCLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRTtJQUM5RSxVQUFVLENBQ04sd0JBQXdCLEVBQ3hCLE9BQU8sQ0FDSCxrQ0FBa0MsRUFDbEMsU0FBUyxDQUFDO1FBQ04sS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLENBQUM7UUFDakQsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLENBQUM7S0FDbEQsQ0FBQyxDQUNMLENBQ0o7SUFDRCxVQUFVLENBQ04sc0JBQXNCLEVBQ3RCLE9BQU8sQ0FDSCxrQ0FBa0MsRUFDbEMsU0FBUyxDQUFDO1FBQ04sS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLENBQUM7UUFDOUMsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7S0FDM0MsQ0FBQyxDQUNMLENBQ0o7SUFDRCxVQUFVLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztDQUMxRSxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQTZCLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRTtJQUM5RSxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDckMsVUFBVSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsOENBQThDLENBQUMsQ0FBQztDQUNuRixDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQTZCLE9BQU8sQ0FBQyxlQUFlLEVBQUU7SUFDNUUsVUFBVSxDQUFDLFdBQVcsRUFBRTtRQUNwQixPQUFPLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQztZQUNuQixLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQ3JELEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDdkQsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUM7U0FDbkQsQ0FBQyxDQUFDO0tBQ04sQ0FBQztJQUNGLFVBQVUsQ0FBQyxZQUFZLEVBQUU7UUFDckIsT0FBTyxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUM7WUFDbkIsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUN0RCxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ3RELEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO1NBQ25ELENBQUMsQ0FBQztLQUNOLENBQUM7Q0FDTCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBBbmltYXRpb25UcmlnZ2VyTWV0YWRhdGEsIGtleWZyYW1lcywgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcblxyXG5leHBvcnQgY29uc3QgdHJhbnNmb3JtUGFuZWw6IEFuaW1hdGlvblRyaWdnZXJNZXRhZGF0YSA9IHRyaWdnZXIoJ3RyYW5zZm9ybVBhbmVsJywgW1xyXG4gICAgdHJhbnNpdGlvbihcclxuICAgICAgICAndm9pZCA9PiBlbnRlci1kcm9wZG93bicsXHJcbiAgICAgICAgYW5pbWF0ZShcclxuICAgICAgICAgICAgJzEyMG1zIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpJyxcclxuICAgICAgICAgICAga2V5ZnJhbWVzKFtcclxuICAgICAgICAgICAgICAgIHN0eWxlKHsgb3BhY2l0eTogMCwgdHJhbnNmb3JtOiAnc2NhbGUoMSwgMC44KScgfSksXHJcbiAgICAgICAgICAgICAgICBzdHlsZSh7IG9wYWNpdHk6IDEsIHRyYW5zZm9ybTogJ3NjYWxlKDEsIDEpJyB9KSxcclxuICAgICAgICAgICAgXSlcclxuICAgICAgICApXHJcbiAgICApLFxyXG4gICAgdHJhbnNpdGlvbihcclxuICAgICAgICAndm9pZCA9PiBlbnRlci1kaWFsb2cnLFxyXG4gICAgICAgIGFuaW1hdGUoXHJcbiAgICAgICAgICAgICcxNTBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKScsXHJcbiAgICAgICAgICAgIGtleWZyYW1lcyhbXHJcbiAgICAgICAgICAgICAgICBzdHlsZSh7IG9wYWNpdHk6IDAsIHRyYW5zZm9ybTogJ3NjYWxlKDAuNyknIH0pLFxyXG4gICAgICAgICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICdub25lJywgb3BhY2l0eTogMSB9KSxcclxuICAgICAgICAgICAgXSlcclxuICAgICAgICApXHJcbiAgICApLFxyXG4gICAgdHJhbnNpdGlvbignKiA9PiB2b2lkJywgYW5pbWF0ZSgnMTAwbXMgbGluZWFyJywgc3R5bGUoeyBvcGFjaXR5OiAwIH0pKSksXHJcbl0pO1xyXG5cclxuZXhwb3J0IGNvbnN0IGZhZGVJbkNhbGVuZGFyOiBBbmltYXRpb25UcmlnZ2VyTWV0YWRhdGEgPSB0cmlnZ2VyKCdmYWRlSW5DYWxlbmRhcicsIFtcclxuICAgIHN0YXRlKCd2b2lkJywgc3R5bGUoeyBvcGFjaXR5OiAwIH0pKSxcclxuICAgIHN0YXRlKCdlbnRlcicsIHN0eWxlKHsgb3BhY2l0eTogMSB9KSksXHJcbiAgICB0cmFuc2l0aW9uKCd2b2lkID0+IConLCBhbmltYXRlKCcxMjBtcyAxMDBtcyBjdWJpYy1iZXppZXIoMC41NSwgMCwgMC41NSwgMC4yKScpKVxyXG5dKTtcclxuXHJcbmV4cG9ydCBjb25zdCBzbGlkZUNhbGVuZGFyOiBBbmltYXRpb25UcmlnZ2VyTWV0YWRhdGEgPSB0cmlnZ2VyKCdzbGlkZUNhbGVuZGFyJywgW1xyXG4gICAgdHJhbnNpdGlvbignKiA9PiBsZWZ0JywgW1xyXG4gICAgICAgIGFuaW1hdGUoMTgwLCBrZXlmcmFtZXMoW1xyXG4gICAgICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMTAwJSknLCBvZmZzZXQ6IDAuNSB9KSxcclxuICAgICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKC0xMDAlKScsIG9mZnNldDogMC41MSB9KSxcclxuICAgICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDApJywgb2Zmc2V0OiAxIH0pXHJcbiAgICAgICAgXSkpXHJcbiAgICBdKSxcclxuICAgIHRyYW5zaXRpb24oJyogPT4gcmlnaHQnLCBbXHJcbiAgICAgICAgYW5pbWF0ZSgxODAsIGtleWZyYW1lcyhbXHJcbiAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgtMTAwJSknLCBvZmZzZXQ6IDAuNSB9KSxcclxuICAgICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDEwMCUpJywgb2Zmc2V0OiAwLjUxIH0pLFxyXG4gICAgICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMCknLCBvZmZzZXQ6IDEgfSlcclxuICAgICAgICBdKSlcclxuICAgIF0pXHJcbl0pO1xyXG4iXX0=
@@ -0,0 +1,6 @@
1
+ export function createMissingDateImplError(provider) {
2
+ return Error(`CmatDatetimepickerComponent: No provider found for ${provider}. You must import one of the following ` +
3
+ 'modules at your application root: CMatNativeDatetimeModule or provide a ' +
4
+ 'custom implementation.');
5
+ }
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWVwaWNrZXItZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL21hdGVyaWFsLWRhdGV0aW1lcGlja2VyL2RhdGV0aW1lcGlja2VyLWVycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxNQUFNLFVBQVUsMEJBQTBCLENBQUMsUUFBZ0I7SUFDdkQsT0FBTyxLQUFLLENBQ1Isc0RBQXNELFFBQVEseUNBQXlDO1FBQ3ZHLDBFQUEwRTtRQUMxRSx3QkFBd0IsQ0FBQyxDQUFDO0FBQ2xDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU1pc3NpbmdEYXRlSW1wbEVycm9yKHByb3ZpZGVyOiBzdHJpbmcpOiBFcnJvciB7XHJcbiAgICByZXR1cm4gRXJyb3IoXHJcbiAgICAgICAgYENtYXREYXRldGltZXBpY2tlckNvbXBvbmVudDogTm8gcHJvdmlkZXIgZm91bmQgZm9yICR7cHJvdmlkZXJ9LiBZb3UgbXVzdCBpbXBvcnQgb25lIG9mIHRoZSBmb2xsb3dpbmcgYCArXHJcbiAgICAgICAgJ21vZHVsZXMgYXQgeW91ciBhcHBsaWNhdGlvbiByb290OiBDTWF0TmF0aXZlRGF0ZXRpbWVNb2R1bGUgb3IgcHJvdmlkZSBhICcgK1xyXG4gICAgICAgICdjdXN0b20gaW1wbGVtZW50YXRpb24uJyk7XHJcbn1cclxuIl19
@@ -0,0 +1,8 @@
1
+ /* eslint-disable @typescript-eslint/naming-convention */
2
+ export var CmatDatetimepickerFilterType;
3
+ (function (CmatDatetimepickerFilterType) {
4
+ CmatDatetimepickerFilterType[CmatDatetimepickerFilterType["DATE"] = 0] = "DATE";
5
+ CmatDatetimepickerFilterType[CmatDatetimepickerFilterType["HOUR"] = 1] = "HOUR";
6
+ CmatDatetimepickerFilterType[CmatDatetimepickerFilterType["MINUTE"] = 2] = "MINUTE";
7
+ })(CmatDatetimepickerFilterType || (CmatDatetimepickerFilterType = {}));
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWVwaWNrZXItZmlsdGVydHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy9tYXRlcmlhbC1kYXRldGltZXBpY2tlci9kYXRldGltZXBpY2tlci1maWx0ZXJ0eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHlEQUF5RDtBQUN6RCxNQUFNLENBQU4sSUFBWSw0QkFFWDtBQUZELFdBQVksNEJBQTRCO0lBQ3BDLCtFQUFJLENBQUE7SUFBRSwrRUFBSSxDQUFBO0lBQUUsbUZBQU0sQ0FBQTtBQUN0QixDQUFDLEVBRlcsNEJBQTRCLEtBQTVCLDRCQUE0QixRQUV2QyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbiAqL1xyXG5leHBvcnQgZW51bSBDbWF0RGF0ZXRpbWVwaWNrZXJGaWx0ZXJUeXBlIHtcclxuICAgIERBVEUsIEhPVVIsIE1JTlVURVxyXG59XHJcbiJdfQ==