@ptsecurity/mosaic 13.6.0 → 13.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (298) hide show
  1. package/_theming.scss +28 -15
  2. package/_visual.scss +4 -3
  3. package/datepicker/datepicker.component.d.ts +10 -10
  4. package/design-tokens/legacy-2017/tokens/components/radio.json5 +1 -0
  5. package/design-tokens/legacy-2017/tokens/properties/colors.json5 +1 -0
  6. package/design-tokens/legacy-2017/tokens.d.ts +1 -0
  7. package/design-tokens/pt-2022/tokens/components/form-field.json5 +1 -1
  8. package/design-tokens/pt-2022/tokens/components/link.json5 +2 -2
  9. package/design-tokens/pt-2022/tokens/components/radio.json5 +1 -0
  10. package/design-tokens/pt-2022/tokens/properties/colors.json5 +2 -0
  11. package/design-tokens/pt-2022/tokens.d.ts +4 -3
  12. package/esm2020/autocomplete/autocomplete-origin.directive.mjs +4 -4
  13. package/esm2020/autocomplete/autocomplete-trigger.directive.mjs +4 -4
  14. package/esm2020/autocomplete/autocomplete.component.mjs +4 -4
  15. package/esm2020/autocomplete/autocomplete.module.mjs +5 -5
  16. package/esm2020/button/button.component.mjs +7 -7
  17. package/esm2020/button/button.module.mjs +5 -5
  18. package/esm2020/button-toggle/button-toggle.component.mjs +7 -7
  19. package/esm2020/button-toggle/button-toggle.module.mjs +5 -5
  20. package/esm2020/card/card.component.mjs +4 -4
  21. package/esm2020/card/card.module.mjs +5 -5
  22. package/esm2020/checkbox/checkbox-module.mjs +5 -5
  23. package/esm2020/checkbox/checkbox-required-validator.mjs +4 -4
  24. package/esm2020/checkbox/checkbox.mjs +4 -4
  25. package/esm2020/core/common-behaviors/common-module.mjs +5 -5
  26. package/esm2020/core/error/error-options.mjs +7 -7
  27. package/esm2020/core/formatters/date/formatter.mjs +4 -4
  28. package/esm2020/core/formatters/index.mjs +5 -5
  29. package/esm2020/core/formatters/number/formatter.mjs +5 -5
  30. package/esm2020/core/forms/forms-module.mjs +5 -5
  31. package/esm2020/core/forms/forms.directive.mjs +7 -7
  32. package/esm2020/core/highlight/highlight.pipe.mjs +4 -4
  33. package/esm2020/core/highlight/index.mjs +5 -5
  34. package/esm2020/core/line/line.mjs +8 -8
  35. package/esm2020/core/option/action.mjs +4 -4
  36. package/esm2020/core/option/optgroup.mjs +4 -4
  37. package/esm2020/core/option/option-module.mjs +5 -5
  38. package/esm2020/core/option/option.mjs +4 -4
  39. package/esm2020/core/pop-up/pop-up-trigger.mjs +4 -4
  40. package/esm2020/core/pop-up/pop-up.mjs +4 -4
  41. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +4 -4
  42. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.module.mjs +5 -5
  43. package/esm2020/core/services/measure-scrollbar.service.mjs +4 -4
  44. package/esm2020/datepicker/calendar-body.component.mjs +4 -4
  45. package/esm2020/datepicker/calendar.component.mjs +7 -7
  46. package/esm2020/datepicker/datepicker-input.directive.mjs +12 -10
  47. package/esm2020/datepicker/datepicker-intl.mjs +4 -4
  48. package/esm2020/datepicker/datepicker-module.mjs +5 -5
  49. package/esm2020/datepicker/datepicker-toggle.component.mjs +7 -7
  50. package/esm2020/datepicker/datepicker.component.mjs +13 -17
  51. package/esm2020/datepicker/month-view.component.mjs +4 -4
  52. package/esm2020/datepicker/multi-year-view.component.mjs +4 -4
  53. package/esm2020/datepicker/year-view.component.mjs +4 -4
  54. package/esm2020/design-tokens/legacy-2017/tokens.mjs +2 -1
  55. package/esm2020/design-tokens/pt-2022/tokens.mjs +5 -4
  56. package/esm2020/divider/divider.component.mjs +4 -4
  57. package/esm2020/divider/divider.module.mjs +5 -5
  58. package/esm2020/dl/dl.component.mjs +10 -10
  59. package/esm2020/dl/dl.module.mjs +5 -5
  60. package/esm2020/dropdown/dropdown-content.directive.mjs +4 -4
  61. package/esm2020/dropdown/dropdown-item.component.mjs +4 -4
  62. package/esm2020/dropdown/dropdown-trigger.directive.mjs +4 -4
  63. package/esm2020/dropdown/dropdown.component.mjs +4 -4
  64. package/esm2020/dropdown/dropdown.module.mjs +5 -5
  65. package/esm2020/form-field/cleaner.mjs +4 -4
  66. package/esm2020/form-field/form-field.mjs +13 -13
  67. package/esm2020/form-field/form-field.module.mjs +5 -5
  68. package/esm2020/form-field/hint.mjs +4 -4
  69. package/esm2020/form-field/password-hint.mjs +4 -4
  70. package/esm2020/form-field/prefix.mjs +4 -4
  71. package/esm2020/form-field/stepper.mjs +4 -4
  72. package/esm2020/form-field/suffix.mjs +4 -4
  73. package/esm2020/icon/icon.component.mjs +7 -7
  74. package/esm2020/icon/icon.module.mjs +5 -5
  75. package/esm2020/input/input-number-validators.mjs +7 -7
  76. package/esm2020/input/input-number.mjs +4 -4
  77. package/esm2020/input/input-password.mjs +7 -7
  78. package/esm2020/input/input.mjs +7 -7
  79. package/esm2020/input/input.module.mjs +5 -5
  80. package/esm2020/link/link.component.mjs +4 -4
  81. package/esm2020/link/link.module.mjs +5 -5
  82. package/esm2020/list/list-selection.component.mjs +7 -7
  83. package/esm2020/list/list.component.mjs +7 -7
  84. package/esm2020/list/list.module.mjs +5 -5
  85. package/esm2020/modal/css-unit.pipe.mjs +4 -4
  86. package/esm2020/modal/modal-control.service.mjs +4 -4
  87. package/esm2020/modal/modal.component.mjs +4 -4
  88. package/esm2020/modal/modal.directive.mjs +13 -13
  89. package/esm2020/modal/modal.module.mjs +5 -5
  90. package/esm2020/modal/modal.service.mjs +4 -4
  91. package/esm2020/navbar/navbar-item.component.mjs +31 -31
  92. package/esm2020/navbar/navbar.component.mjs +10 -10
  93. package/esm2020/navbar/navbar.module.mjs +5 -5
  94. package/esm2020/navbar/vertical-navbar.component.mjs +4 -4
  95. package/esm2020/popover/popover-confirm.component.mjs +7 -7
  96. package/esm2020/popover/popover.component.mjs +7 -7
  97. package/esm2020/popover/popover.module.mjs +5 -5
  98. package/esm2020/progress-bar/progress-bar.component.mjs +4 -4
  99. package/esm2020/progress-bar/progress-bar.module.mjs +5 -5
  100. package/esm2020/progress-spinner/progress-spinner.component.mjs +4 -4
  101. package/esm2020/progress-spinner/progress-spinner.module.mjs +5 -5
  102. package/esm2020/radio/radio.component.mjs +8 -8
  103. package/esm2020/radio/radio.module.mjs +5 -5
  104. package/esm2020/select/select-option.directive.mjs +4 -4
  105. package/esm2020/select/select.component.mjs +24 -14
  106. package/esm2020/select/select.module.mjs +5 -5
  107. package/esm2020/sidebar/sidebar.component.mjs +10 -10
  108. package/esm2020/sidebar/sidebar.module.mjs +5 -5
  109. package/esm2020/sidepanel/sidepanel-container.component.mjs +4 -4
  110. package/esm2020/sidepanel/sidepanel-directives.mjs +16 -16
  111. package/esm2020/sidepanel/sidepanel.module.mjs +5 -5
  112. package/esm2020/sidepanel/sidepanel.service.mjs +4 -4
  113. package/esm2020/splitter/splitter.component.mjs +13 -13
  114. package/esm2020/splitter/splitter.module.mjs +5 -5
  115. package/esm2020/table/table.component.mjs +4 -4
  116. package/esm2020/table/table.module.mjs +5 -5
  117. package/esm2020/tabs/paginated-tab-header.mjs +4 -4
  118. package/esm2020/tabs/tab-body.component.mjs +7 -7
  119. package/esm2020/tabs/tab-content.directive.mjs +4 -4
  120. package/esm2020/tabs/tab-group.component.mjs +19 -19
  121. package/esm2020/tabs/tab-header.component.mjs +4 -4
  122. package/esm2020/tabs/tab-label-wrapper.directive.mjs +4 -4
  123. package/esm2020/tabs/tab-label.directive.mjs +4 -4
  124. package/esm2020/tabs/tab-nav-bar/tab-nav-bar.mjs +7 -7
  125. package/esm2020/tabs/tab.component.mjs +4 -4
  126. package/esm2020/tabs/tabs.module.mjs +5 -5
  127. package/esm2020/tags/tag-input.mjs +4 -4
  128. package/esm2020/tags/tag-list.component.mjs +4 -4
  129. package/esm2020/tags/tag.component.mjs +13 -13
  130. package/esm2020/tags/tag.module.mjs +5 -5
  131. package/esm2020/textarea/textarea.component.mjs +4 -4
  132. package/esm2020/textarea/textarea.module.mjs +5 -5
  133. package/esm2020/timepicker/timepicker.directive.mjs +8 -19
  134. package/esm2020/timepicker/timepicker.module.mjs +5 -5
  135. package/esm2020/toggle/toggle.component.mjs +4 -4
  136. package/esm2020/toggle/toggle.module.mjs +5 -5
  137. package/esm2020/tooltip/tooltip.component.mjs +13 -13
  138. package/esm2020/tooltip/tooltip.module.mjs +5 -5
  139. package/esm2020/tree/node.mjs +4 -4
  140. package/esm2020/tree/outlet.mjs +4 -4
  141. package/esm2020/tree/padding.directive.mjs +12 -9
  142. package/esm2020/tree/toggle.mjs +10 -10
  143. package/esm2020/tree/tree-base.mjs +7 -7
  144. package/esm2020/tree/tree-option.component.mjs +22 -10
  145. package/esm2020/tree/tree-selection.component.mjs +4 -4
  146. package/esm2020/tree/tree.mjs +4 -4
  147. package/esm2020/tree/tree.module.mjs +5 -5
  148. package/esm2020/tree-select/tree-select.component.mjs +21 -11
  149. package/esm2020/tree-select/tree-select.module.mjs +5 -5
  150. package/fesm2015/ptsecurity-mosaic-autocomplete.mjs +13 -13
  151. package/fesm2015/ptsecurity-mosaic-autocomplete.mjs.map +1 -1
  152. package/fesm2015/ptsecurity-mosaic-button-toggle.mjs +10 -10
  153. package/fesm2015/ptsecurity-mosaic-button-toggle.mjs.map +1 -1
  154. package/fesm2015/ptsecurity-mosaic-button.mjs +10 -10
  155. package/fesm2015/ptsecurity-mosaic-button.mjs.map +1 -1
  156. package/fesm2015/ptsecurity-mosaic-card.mjs +7 -7
  157. package/fesm2015/ptsecurity-mosaic-card.mjs.map +1 -1
  158. package/fesm2015/ptsecurity-mosaic-checkbox.mjs +10 -10
  159. package/fesm2015/ptsecurity-mosaic-checkbox.mjs.map +1 -1
  160. package/fesm2015/ptsecurity-mosaic-core.mjs +74 -74
  161. package/fesm2015/ptsecurity-mosaic-core.mjs.map +1 -1
  162. package/fesm2015/ptsecurity-mosaic-datepicker.mjs +54 -56
  163. package/fesm2015/ptsecurity-mosaic-datepicker.mjs.map +1 -1
  164. package/fesm2015/ptsecurity-mosaic-design-tokens.mjs +7 -4
  165. package/fesm2015/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
  166. package/fesm2015/ptsecurity-mosaic-divider.mjs +7 -7
  167. package/fesm2015/ptsecurity-mosaic-divider.mjs.map +1 -1
  168. package/fesm2015/ptsecurity-mosaic-dl.mjs +13 -13
  169. package/fesm2015/ptsecurity-mosaic-dl.mjs.map +1 -1
  170. package/fesm2015/ptsecurity-mosaic-dropdown.mjs +16 -16
  171. package/fesm2015/ptsecurity-mosaic-dropdown.mjs.map +1 -1
  172. package/fesm2015/ptsecurity-mosaic-form-field.mjs +34 -34
  173. package/fesm2015/ptsecurity-mosaic-form-field.mjs.map +1 -1
  174. package/fesm2015/ptsecurity-mosaic-icon.mjs +10 -10
  175. package/fesm2015/ptsecurity-mosaic-icon.mjs.map +1 -1
  176. package/fesm2015/ptsecurity-mosaic-input.mjs +25 -25
  177. package/fesm2015/ptsecurity-mosaic-input.mjs.map +1 -1
  178. package/fesm2015/ptsecurity-mosaic-link.mjs +7 -7
  179. package/fesm2015/ptsecurity-mosaic-link.mjs.map +1 -1
  180. package/fesm2015/ptsecurity-mosaic-list.mjs +16 -16
  181. package/fesm2015/ptsecurity-mosaic-list.mjs.map +1 -1
  182. package/fesm2015/ptsecurity-mosaic-modal.mjs +28 -28
  183. package/fesm2015/ptsecurity-mosaic-modal.mjs.map +1 -1
  184. package/fesm2015/ptsecurity-mosaic-navbar.mjs +46 -46
  185. package/fesm2015/ptsecurity-mosaic-navbar.mjs.map +1 -1
  186. package/fesm2015/ptsecurity-mosaic-popover.mjs +16 -16
  187. package/fesm2015/ptsecurity-mosaic-popover.mjs.map +1 -1
  188. package/fesm2015/ptsecurity-mosaic-progress-bar.mjs +7 -7
  189. package/fesm2015/ptsecurity-mosaic-progress-bar.mjs.map +1 -1
  190. package/fesm2015/ptsecurity-mosaic-progress-spinner.mjs +7 -7
  191. package/fesm2015/ptsecurity-mosaic-progress-spinner.mjs.map +1 -1
  192. package/fesm2015/ptsecurity-mosaic-radio.mjs +11 -11
  193. package/fesm2015/ptsecurity-mosaic-radio.mjs.map +1 -1
  194. package/fesm2015/ptsecurity-mosaic-select.mjs +30 -20
  195. package/fesm2015/ptsecurity-mosaic-select.mjs.map +1 -1
  196. package/fesm2015/ptsecurity-mosaic-sidebar.mjs +13 -13
  197. package/fesm2015/ptsecurity-mosaic-sidebar.mjs.map +1 -1
  198. package/fesm2015/ptsecurity-mosaic-sidepanel.mjs +25 -25
  199. package/fesm2015/ptsecurity-mosaic-sidepanel.mjs.map +1 -1
  200. package/fesm2015/ptsecurity-mosaic-splitter.mjs +16 -16
  201. package/fesm2015/ptsecurity-mosaic-splitter.mjs.map +1 -1
  202. package/fesm2015/ptsecurity-mosaic-table.mjs +7 -7
  203. package/fesm2015/ptsecurity-mosaic-table.mjs.map +1 -1
  204. package/fesm2015/ptsecurity-mosaic-tabs.mjs +52 -52
  205. package/fesm2015/ptsecurity-mosaic-tabs.mjs.map +1 -1
  206. package/fesm2015/ptsecurity-mosaic-tags.mjs +22 -22
  207. package/fesm2015/ptsecurity-mosaic-tags.mjs.map +1 -1
  208. package/fesm2015/ptsecurity-mosaic-textarea.mjs +7 -7
  209. package/fesm2015/ptsecurity-mosaic-textarea.mjs.map +1 -1
  210. package/fesm2015/ptsecurity-mosaic-timepicker.mjs +11 -22
  211. package/fesm2015/ptsecurity-mosaic-timepicker.mjs.map +1 -1
  212. package/fesm2015/ptsecurity-mosaic-toggle.mjs +7 -7
  213. package/fesm2015/ptsecurity-mosaic-toggle.mjs.map +1 -1
  214. package/fesm2015/ptsecurity-mosaic-tooltip.mjs +16 -16
  215. package/fesm2015/ptsecurity-mosaic-tooltip.mjs.map +1 -1
  216. package/fesm2015/ptsecurity-mosaic-tree-select.mjs +24 -14
  217. package/fesm2015/ptsecurity-mosaic-tree-select.mjs.map +1 -1
  218. package/fesm2015/ptsecurity-mosaic-tree.mjs +168 -155
  219. package/fesm2015/ptsecurity-mosaic-tree.mjs.map +1 -1
  220. package/fesm2020/ptsecurity-mosaic-autocomplete.mjs +13 -13
  221. package/fesm2020/ptsecurity-mosaic-autocomplete.mjs.map +1 -1
  222. package/fesm2020/ptsecurity-mosaic-button-toggle.mjs +10 -10
  223. package/fesm2020/ptsecurity-mosaic-button-toggle.mjs.map +1 -1
  224. package/fesm2020/ptsecurity-mosaic-button.mjs +10 -10
  225. package/fesm2020/ptsecurity-mosaic-button.mjs.map +1 -1
  226. package/fesm2020/ptsecurity-mosaic-card.mjs +7 -7
  227. package/fesm2020/ptsecurity-mosaic-card.mjs.map +1 -1
  228. package/fesm2020/ptsecurity-mosaic-checkbox.mjs +10 -10
  229. package/fesm2020/ptsecurity-mosaic-checkbox.mjs.map +1 -1
  230. package/fesm2020/ptsecurity-mosaic-core.mjs +74 -74
  231. package/fesm2020/ptsecurity-mosaic-core.mjs.map +1 -1
  232. package/fesm2020/ptsecurity-mosaic-datepicker.mjs +54 -56
  233. package/fesm2020/ptsecurity-mosaic-datepicker.mjs.map +1 -1
  234. package/fesm2020/ptsecurity-mosaic-design-tokens.mjs +7 -4
  235. package/fesm2020/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
  236. package/fesm2020/ptsecurity-mosaic-divider.mjs +7 -7
  237. package/fesm2020/ptsecurity-mosaic-divider.mjs.map +1 -1
  238. package/fesm2020/ptsecurity-mosaic-dl.mjs +13 -13
  239. package/fesm2020/ptsecurity-mosaic-dl.mjs.map +1 -1
  240. package/fesm2020/ptsecurity-mosaic-dropdown.mjs +16 -16
  241. package/fesm2020/ptsecurity-mosaic-dropdown.mjs.map +1 -1
  242. package/fesm2020/ptsecurity-mosaic-form-field.mjs +34 -34
  243. package/fesm2020/ptsecurity-mosaic-form-field.mjs.map +1 -1
  244. package/fesm2020/ptsecurity-mosaic-icon.mjs +10 -10
  245. package/fesm2020/ptsecurity-mosaic-icon.mjs.map +1 -1
  246. package/fesm2020/ptsecurity-mosaic-input.mjs +25 -25
  247. package/fesm2020/ptsecurity-mosaic-input.mjs.map +1 -1
  248. package/fesm2020/ptsecurity-mosaic-link.mjs +7 -7
  249. package/fesm2020/ptsecurity-mosaic-link.mjs.map +1 -1
  250. package/fesm2020/ptsecurity-mosaic-list.mjs +16 -16
  251. package/fesm2020/ptsecurity-mosaic-list.mjs.map +1 -1
  252. package/fesm2020/ptsecurity-mosaic-modal.mjs +28 -28
  253. package/fesm2020/ptsecurity-mosaic-modal.mjs.map +1 -1
  254. package/fesm2020/ptsecurity-mosaic-navbar.mjs +46 -46
  255. package/fesm2020/ptsecurity-mosaic-navbar.mjs.map +1 -1
  256. package/fesm2020/ptsecurity-mosaic-popover.mjs +16 -16
  257. package/fesm2020/ptsecurity-mosaic-popover.mjs.map +1 -1
  258. package/fesm2020/ptsecurity-mosaic-progress-bar.mjs +7 -7
  259. package/fesm2020/ptsecurity-mosaic-progress-bar.mjs.map +1 -1
  260. package/fesm2020/ptsecurity-mosaic-progress-spinner.mjs +7 -7
  261. package/fesm2020/ptsecurity-mosaic-progress-spinner.mjs.map +1 -1
  262. package/fesm2020/ptsecurity-mosaic-radio.mjs +11 -11
  263. package/fesm2020/ptsecurity-mosaic-radio.mjs.map +1 -1
  264. package/fesm2020/ptsecurity-mosaic-select.mjs +30 -20
  265. package/fesm2020/ptsecurity-mosaic-select.mjs.map +1 -1
  266. package/fesm2020/ptsecurity-mosaic-sidebar.mjs +13 -13
  267. package/fesm2020/ptsecurity-mosaic-sidebar.mjs.map +1 -1
  268. package/fesm2020/ptsecurity-mosaic-sidepanel.mjs +25 -25
  269. package/fesm2020/ptsecurity-mosaic-sidepanel.mjs.map +1 -1
  270. package/fesm2020/ptsecurity-mosaic-splitter.mjs +16 -16
  271. package/fesm2020/ptsecurity-mosaic-splitter.mjs.map +1 -1
  272. package/fesm2020/ptsecurity-mosaic-table.mjs +7 -7
  273. package/fesm2020/ptsecurity-mosaic-table.mjs.map +1 -1
  274. package/fesm2020/ptsecurity-mosaic-tabs.mjs +52 -52
  275. package/fesm2020/ptsecurity-mosaic-tabs.mjs.map +1 -1
  276. package/fesm2020/ptsecurity-mosaic-tags.mjs +22 -22
  277. package/fesm2020/ptsecurity-mosaic-tags.mjs.map +1 -1
  278. package/fesm2020/ptsecurity-mosaic-textarea.mjs +7 -7
  279. package/fesm2020/ptsecurity-mosaic-textarea.mjs.map +1 -1
  280. package/fesm2020/ptsecurity-mosaic-timepicker.mjs +11 -22
  281. package/fesm2020/ptsecurity-mosaic-timepicker.mjs.map +1 -1
  282. package/fesm2020/ptsecurity-mosaic-toggle.mjs +7 -7
  283. package/fesm2020/ptsecurity-mosaic-toggle.mjs.map +1 -1
  284. package/fesm2020/ptsecurity-mosaic-tooltip.mjs +16 -16
  285. package/fesm2020/ptsecurity-mosaic-tooltip.mjs.map +1 -1
  286. package/fesm2020/ptsecurity-mosaic-tree-select.mjs +24 -14
  287. package/fesm2020/ptsecurity-mosaic-tree-select.mjs.map +1 -1
  288. package/fesm2020/ptsecurity-mosaic-tree.mjs +165 -152
  289. package/fesm2020/ptsecurity-mosaic-tree.mjs.map +1 -1
  290. package/form-field/form-field.d.ts +2 -2
  291. package/package.json +4 -4
  292. package/prebuilt-themes/dark-theme.css +1 -1
  293. package/prebuilt-themes/default-theme.css +1 -1
  294. package/select/select.component.d.ts +3 -0
  295. package/timepicker/timepicker.directive.d.ts +0 -1
  296. package/tree/padding.directive.d.ts +7 -5
  297. package/tree/tree-option.component.d.ts +6 -2
  298. package/tree-select/tree-select.component.d.ts +3 -0
@@ -114,13 +114,13 @@ class McTimepicker {
114
114
  };
115
115
  this.minValidator = (control) => {
116
116
  const controlValue = this.getValidDateOrNull(this.dateAdapter.deserialize(control.value));
117
- return (!this.min || !controlValue || this.compareTime(this.min, controlValue) <= 0) ?
117
+ return !this.min || !controlValue || this.dateAdapter.compareDateTime(this.min, controlValue) <= 0 ?
118
118
  null :
119
119
  { mcTimepickerLowerThenMin: { min: this.min, actual: controlValue } };
120
120
  };
121
121
  this.maxValidator = (control) => {
122
122
  const controlValue = this.getValidDateOrNull(this.dateAdapter.deserialize(control.value));
123
- return (!this.max || !controlValue || this.compareTime(this.max, controlValue) >= 0) ?
123
+ return !this.max || !controlValue || this.dateAdapter.compareDateTime(this.max, controlValue) >= 0 ?
124
124
  null :
125
125
  { mcTimepickerHigherThenMax: { max: this.max, actual: controlValue } };
126
126
  };
@@ -603,19 +603,6 @@ class McTimepicker {
603
603
  const resultDate = this.dateAdapter.createDateTime(this.dateAdapter.getYear(date), this.dateAdapter.getMonth(date), this.dateAdapter.getDate(date), hours, minutes || 0, seconds || 0, this.dateAdapter.getMilliseconds(date));
604
604
  return this.getValidDateOrNull(resultDate);
605
605
  }
606
- compareTime(first, second) {
607
- const result = this.dateAdapter.getHours(first) - this.dateAdapter.getHours(second) ||
608
- this.dateAdapter.getMinutes(first) - this.dateAdapter.getMinutes(second);
609
- if (TimeFormats.HHmm === this.format) {
610
- return result;
611
- }
612
- else if (TimeFormats.HHmmss === this.format) {
613
- return result || this.dateAdapter.getSeconds(first) - this.dateAdapter.getSeconds(second);
614
- }
615
- else {
616
- throw Error(`Unknown format: ${this.format}`);
617
- }
618
- }
619
606
  getValidDateOrNull(obj) {
620
607
  return (this.dateAdapter.isDateInstance(obj) && this.dateAdapter.isValid(obj)) ? obj : null;
621
608
  }
@@ -631,18 +618,20 @@ class McTimepicker {
631
618
  return;
632
619
  }
633
620
  this.control = control;
621
+ this.control.valueChanges
622
+ .subscribe((value) => this._value = value);
634
623
  if (this.mcValidation.useValidation) {
635
624
  setMosaicValidationForCustomFormControl(this, this.changeDetectorRef);
636
625
  }
637
626
  }
638
627
  }
639
- /** @nocollapse */ /** @nocollapse */ McTimepicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McTimepicker, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: MC_VALIDATION, optional: true }, { token: i1.NgForm, optional: true }, { token: i1.FormGroupDirective, optional: true }, { token: i2.DateAdapter, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
640
- /** @nocollapse */ /** @nocollapse */ McTimepicker.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.7", type: McTimepicker, selector: "input[mcTimepicker]", inputs: { placeholder: "placeholder", disabled: "disabled", id: "id", required: "required", format: "format", min: "min", max: "max", value: "value", mcValidationTooltip: "mcValidationTooltip" }, outputs: { incorrectInput: "incorrectInput" }, host: { listeners: { "blur": "onBlur()", "focus": "focusChanged(true)", "paste": "onPaste($event)", "keydown": "onKeyDown($event)" }, properties: { "attr.id": "id", "attr.placeholder": "placeholder", "attr.disabled": "disabled || null", "attr.required": "required", "attr.size": "getSize()", "attr.autocomplete": "\"off\"" }, classAttribute: "mc-input mc-timepicker" }, providers: [
628
+ /** @nocollapse */ /** @nocollapse */ McTimepicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McTimepicker, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: MC_VALIDATION, optional: true }, { token: i1.NgForm, optional: true }, { token: i1.FormGroupDirective, optional: true }, { token: i2.DateAdapter, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
629
+ /** @nocollapse */ /** @nocollapse */ McTimepicker.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: McTimepicker, selector: "input[mcTimepicker]", inputs: { placeholder: "placeholder", disabled: "disabled", id: "id", required: "required", format: "format", min: "min", max: "max", value: "value", mcValidationTooltip: "mcValidationTooltip" }, outputs: { incorrectInput: "incorrectInput" }, host: { listeners: { "blur": "onBlur()", "focus": "focusChanged(true)", "paste": "onPaste($event)", "keydown": "onKeyDown($event)" }, properties: { "attr.id": "id", "attr.placeholder": "placeholder", "attr.disabled": "disabled || null", "attr.required": "required", "attr.size": "getSize()", "attr.autocomplete": "\"off\"" }, classAttribute: "mc-input mc-timepicker" }, providers: [
641
630
  MC_TIMEPICKER_VALIDATORS,
642
631
  MC_TIMEPICKER_VALUE_ACCESSOR,
643
632
  { provide: McFormFieldControl, useExisting: McTimepicker }
644
633
  ], exportAs: ["mcTimepicker"], ngImport: i0 });
645
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McTimepicker, decorators: [{
634
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McTimepicker, decorators: [{
646
635
  type: Directive,
647
636
  args: [{
648
637
  selector: 'input[mcTimepicker]',
@@ -705,18 +694,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImpor
705
694
 
706
695
  class McTimepickerModule {
707
696
  }
708
- /** @nocollapse */ /** @nocollapse */ McTimepickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McTimepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
709
- /** @nocollapse */ /** @nocollapse */ McTimepickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McTimepickerModule, declarations: [McTimepicker], imports: [CommonModule,
697
+ /** @nocollapse */ /** @nocollapse */ McTimepickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McTimepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
698
+ /** @nocollapse */ /** @nocollapse */ McTimepickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McTimepickerModule, declarations: [McTimepicker], imports: [CommonModule,
710
699
  A11yModule,
711
700
  PlatformModule,
712
701
  FormsModule], exports: [McTimepicker] });
713
- /** @nocollapse */ /** @nocollapse */ McTimepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McTimepickerModule, imports: [[
702
+ /** @nocollapse */ /** @nocollapse */ McTimepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McTimepickerModule, imports: [[
714
703
  CommonModule,
715
704
  A11yModule,
716
705
  PlatformModule,
717
706
  FormsModule
718
707
  ]] });
719
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McTimepickerModule, decorators: [{
708
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McTimepickerModule, decorators: [{
720
709
  type: NgModule,
721
710
  args: [{
722
711
  imports: [
@@ -1 +1 @@
1
- {"version":3,"file":"ptsecurity-mosaic-timepicker.mjs","sources":["../../../packages/mosaic/timepicker/timepicker.constants.ts","../../../packages/mosaic/timepicker/timepicker.directive.ts","../../../packages/mosaic/timepicker/timepicker.module.ts","../../../packages/mosaic/timepicker/ptsecurity-mosaic-timepicker.ts"],"sourcesContent":["// tslint:disable:naming-convention\r\nexport enum TimeParts {\r\n hours,\r\n minutes,\r\n seconds\r\n}\r\n\r\nexport enum TimeFormats {\r\n HHmmss = 'HH:mm:ss',\r\n HHmm = 'HH:mm'\r\n}\r\n\r\nexport const TIMEFORMAT_PLACEHOLDERS: { [timeFormat: string]: string } = {\r\n [TimeFormats.HHmmss]: 'чч:мм:сс',\r\n [TimeFormats.HHmm]: 'чч:мм'\r\n};\r\n\r\nexport const DEFAULT_TIME_FORMAT: TimeFormats = TimeFormats.HHmm;\r\n\r\nexport const HOURS_MINUTES_SECONDS_REGEXP = /^([0-1][0-9]|2[0-3]):?([0-5][0-9]):?([0-5][0-9])?$/;\r\nexport const HOURS_MINUTES_REGEXP = /^([0-1][0-9]|2[0-3]):?([0-5][0-9])?$/;\r\nexport const HOURS_ONLY_REGEXP = /^([0-1][0-9]|2[0-3]):?$/;\r\nexport const AM_PM_FORMAT_REGEXP = /^([0-1]?[0-9]):([0-5]?[0-9]) ([ap][m]?$)/i;\r\n\r\nexport const SECONDS_PER_MINUTE: number = 59;\r\nexport const MINUTES_PER_HOUR: number = 59;\r\nexport const HOURS_PER_DAY: number = 23;\r\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport {\r\n ChangeDetectorRef,\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n forwardRef,\r\n Inject,\r\n Input,\r\n OnDestroy,\r\n Optional,\r\n Output,\r\n Renderer2\r\n} from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n FormGroupDirective,\r\n NG_VALIDATORS,\r\n NG_VALUE_ACCESSOR,\r\n NgForm,\r\n ValidationErrors,\r\n Validator,\r\n ValidatorFn,\r\n Validators\r\n} from '@angular/forms';\r\nimport { DateAdapter } from '@ptsecurity/cdk/datetime';\r\nimport {\r\n DOWN_ARROW,\r\n UP_ARROW,\r\n HOME,\r\n END,\r\n LEFT_ARROW,\r\n RIGHT_ARROW,\r\n PAGE_DOWN,\r\n PAGE_UP,\r\n SPACE,\r\n DELETE,\r\n BACKSPACE,\r\n hasModifierKey,\r\n isLetterKey,\r\n isVerticalMovement,\r\n isHorizontalMovement,\r\n TAB\r\n} from '@ptsecurity/cdk/keycodes';\r\nimport {\r\n MC_VALIDATION,\r\n McValidationOptions,\r\n setMosaicValidationForCustomFormControl,\r\n validationTooltipHideDelay,\r\n validationTooltipShowDelay\r\n} from '@ptsecurity/mosaic/core';\r\nimport { McFormFieldControl } from '@ptsecurity/mosaic/form-field';\r\nimport { McWarningTooltipTrigger } from '@ptsecurity/mosaic/tooltip';\r\nimport { noop, Subject } from 'rxjs';\r\n\r\nimport {\r\n DEFAULT_TIME_FORMAT,\r\n HOURS_PER_DAY,\r\n HOURS_MINUTES_REGEXP,\r\n HOURS_MINUTES_SECONDS_REGEXP,\r\n HOURS_ONLY_REGEXP,\r\n MINUTES_PER_HOUR,\r\n SECONDS_PER_MINUTE,\r\n TIMEFORMAT_PLACEHOLDERS,\r\n TimeFormats,\r\n TimeParts,\r\n AM_PM_FORMAT_REGEXP\r\n} from './timepicker.constants';\r\n\r\n\r\n/** @docs-private */\r\nexport const MC_TIMEPICKER_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => McTimepicker),\r\n multi: true\r\n};\r\n\r\n/** @docs-private */\r\nexport const MC_TIMEPICKER_VALIDATORS: any = {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => McTimepicker),\r\n multi: true\r\n};\r\n\r\n\r\nlet uniqueComponentIdSuffix: number = 0;\r\n\r\nconst shortFormatSize: number = 5;\r\nconst fullFormatSize: number = 8;\r\n\r\n\r\n@Directive({\r\n selector: 'input[mcTimepicker]',\r\n exportAs: 'mcTimepicker',\r\n host: {\r\n class: 'mc-input mc-timepicker',\r\n // Native input properties that are overwritten by Angular inputs need to be synced with\r\n // the native input element. Otherwise property bindings for those don't work.\r\n '[attr.id]': 'id',\r\n '[attr.placeholder]': 'placeholder',\r\n '[attr.disabled]': 'disabled || null',\r\n '[attr.required]': 'required',\r\n '[attr.size]': 'getSize()',\r\n '[attr.autocomplete]': '\"off\"',\r\n\r\n '(blur)': 'onBlur()',\r\n '(focus)': 'focusChanged(true)',\r\n\r\n '(paste)': 'onPaste($event)',\r\n\r\n '(keydown)': 'onKeyDown($event)'\r\n },\r\n providers: [\r\n MC_TIMEPICKER_VALIDATORS,\r\n MC_TIMEPICKER_VALUE_ACCESSOR,\r\n { provide: McFormFieldControl, useExisting: McTimepicker }\r\n ]\r\n})\r\nexport class McTimepicker<D> implements McFormFieldControl<D>, ControlValueAccessor, Validator, OnDestroy {\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n readonly stateChanges: Subject<void> = new Subject<void>();\r\n\r\n readonly errorState: boolean;\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n focused: boolean = false;\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n controlType: string = 'timepicker';\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n @Input()\r\n get placeholder(): string {\r\n return this._placeholder;\r\n }\r\n\r\n set placeholder(value: string) {\r\n this._placeholder = value;\r\n\r\n this.defaultPlaceholder = false;\r\n }\r\n\r\n private _placeholder = TIMEFORMAT_PLACEHOLDERS[DEFAULT_TIME_FORMAT];\r\n\r\n @Input()\r\n get disabled(): boolean {\r\n return this._disabled;\r\n }\r\n\r\n set disabled(value: boolean) {\r\n this._disabled = coerceBooleanProperty(value);\r\n\r\n // Browsers may not fire the blur event if the input is disabled too quickly.\r\n // Reset from here to ensure that the element doesn't become stuck.\r\n if (this.focused) {\r\n this.focused = false;\r\n }\r\n\r\n this.stateChanges.next();\r\n }\r\n\r\n private _disabled: boolean;\r\n\r\n @Input()\r\n get id(): string {\r\n return this._id;\r\n }\r\n\r\n set id(value: string) {\r\n this._id = value || this.uid;\r\n }\r\n\r\n private _id: string;\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n @Input()\r\n get required(): boolean {\r\n return this._required;\r\n }\r\n\r\n set required(value: boolean) {\r\n this._required = coerceBooleanProperty(value);\r\n }\r\n\r\n private _required: boolean;\r\n\r\n @Input()\r\n get format(): TimeFormats {\r\n return this._format;\r\n }\r\n\r\n set format(formatValue: TimeFormats) {\r\n this._format = Object\r\n .keys(TimeFormats)\r\n .map((timeFormatKey) => TimeFormats[timeFormatKey])\r\n .indexOf(formatValue) > -1 ? formatValue : DEFAULT_TIME_FORMAT;\r\n\r\n if (this.defaultPlaceholder) {\r\n this._placeholder = TIMEFORMAT_PLACEHOLDERS[this._format];\r\n }\r\n\r\n if (this.value) {\r\n this.updateView();\r\n }\r\n }\r\n\r\n private _format: TimeFormats = DEFAULT_TIME_FORMAT;\r\n\r\n @Input()\r\n get min(): D | null {\r\n return this._min;\r\n }\r\n\r\n set min(value: D | null) {\r\n this._min = this.getValidDateOrNull(this.dateAdapter.deserialize(value));\r\n this.validatorOnChange();\r\n }\r\n\r\n private _min: D | null = null;\r\n\r\n @Input()\r\n get max(): D | null {\r\n return this._max;\r\n }\r\n\r\n set max(value: D | null) {\r\n this._max = this.getValidDateOrNull(this.dateAdapter.deserialize(value));\r\n this.validatorOnChange();\r\n }\r\n\r\n private _max: D | null = null;\r\n\r\n @Input()\r\n get value(): D | null {\r\n return this._value;\r\n }\r\n\r\n set value(value: D | null) {\r\n const newValue = this.dateAdapter.deserialize(value);\r\n\r\n this.lastValueValid = !newValue || this.dateAdapter.isValid(newValue);\r\n\r\n this._value = this.getValidDateOrNull(newValue);\r\n\r\n this.updateView();\r\n }\r\n\r\n private _value: D | null;\r\n\r\n @Input()\r\n set mcValidationTooltip(tooltip: McWarningTooltipTrigger) {\r\n if (!tooltip) { return; }\r\n\r\n tooltip.enterDelay = validationTooltipShowDelay;\r\n tooltip.trigger = 'manual';\r\n\r\n tooltip.initListeners();\r\n\r\n this.incorrectInput.subscribe(() => {\r\n if (tooltip.isOpen) { return; }\r\n\r\n tooltip.show();\r\n\r\n setTimeout(() => tooltip.hide(), validationTooltipHideDelay);\r\n });\r\n }\r\n\r\n @Output() incorrectInput = new EventEmitter<void>();\r\n\r\n get hasSelection(): boolean {\r\n return this.selectionStart !== this.selectionEnd;\r\n }\r\n\r\n get isFullFormat(): boolean {\r\n return this.format === TimeFormats.HHmmss;\r\n }\r\n\r\n get isShortFormat(): boolean {\r\n return this.format === TimeFormats.HHmm;\r\n }\r\n\r\n get viewValue(): string {\r\n return this.elementRef.nativeElement.value;\r\n }\r\n\r\n get ngControl(): any {\r\n return this.control;\r\n }\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n get empty(): boolean {\r\n return !this.viewValue && !this.isBadInput();\r\n }\r\n\r\n get selectionStart(): number | null {\r\n return this.elementRef.nativeElement.selectionStart;\r\n }\r\n\r\n set selectionStart(value: number | null) {\r\n this.elementRef.nativeElement.selectionStart = value;\r\n }\r\n\r\n get selectionEnd(): number | null {\r\n return this.elementRef.nativeElement.selectionEnd;\r\n }\r\n\r\n set selectionEnd(value: number | null) {\r\n this.elementRef.nativeElement.selectionEnd = value;\r\n }\r\n\r\n private readonly uid = `mc-timepicker-${uniqueComponentIdSuffix++}`;\r\n\r\n private readonly validator: ValidatorFn | null;\r\n\r\n private lastValueValid = false;\r\n\r\n private control: AbstractControl;\r\n\r\n private defaultPlaceholder = true;\r\n\r\n private onChange: (value: any) => void;\r\n private onTouched: () => void;\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private changeDetectorRef: ChangeDetectorRef,\r\n private renderer: Renderer2,\r\n @Optional() @Inject(MC_VALIDATION) private mcValidation: McValidationOptions,\r\n @Optional() public parentForm: NgForm,\r\n @Optional() public parentFormGroup: FormGroupDirective,\r\n @Optional() private dateAdapter: DateAdapter<any>\r\n ) {\r\n if (!this.dateAdapter) {\r\n throw Error(`McTimepicker: No provider found for DateAdapter. You must import one of the existing ` +\r\n `modules at your application root or provide a custom implementation or use exists ones.`);\r\n }\r\n\r\n this.validator = Validators.compose([this.parseValidator, this.minValidator, this.maxValidator]);\r\n\r\n this.onChange = noop;\r\n\r\n // Force setter to be called in case id was not specified.\r\n this.id = this.id;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.stateChanges.complete();\r\n }\r\n\r\n getSize(): number {\r\n return this.isFullFormat ? fullFormatSize : shortFormatSize;\r\n }\r\n\r\n focus(): void {\r\n this.elementRef.nativeElement.focus();\r\n }\r\n\r\n focusChanged(isFocused: boolean): void {\r\n if (isFocused !== this.focused) {\r\n this.focused = isFocused;\r\n this.onTouched();\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n onBlur() {\r\n this.focusChanged(false);\r\n\r\n this.setViewValue(this.formatUserPaste(this.viewValue));\r\n\r\n this.onInput();\r\n }\r\n\r\n onPaste($event) {\r\n $event.preventDefault();\r\n\r\n const value = this.formatUserPaste($event.clipboardData.getData('text'));\r\n\r\n const newTimeObj = this.getDateFromTimeString(value);\r\n\r\n if (!newTimeObj) { return; }\r\n\r\n this.setViewValue(this.getTimeStringFromDate(newTimeObj, this.format));\r\n\r\n this.value = newTimeObj;\r\n this.onChange(newTimeObj);\r\n this.stateChanges.next();\r\n }\r\n\r\n onInput = () => {\r\n const formattedValue = this.formatUserInput(this.viewValue);\r\n\r\n const newTimeObj = this.getDateFromTimeString(formattedValue);\r\n this.lastValueValid = !!newTimeObj;\r\n\r\n if (!newTimeObj) {\r\n if (!this.viewValue) {\r\n this.onChange(null);\r\n } else {\r\n this.control.updateValueAndValidity();\r\n }\r\n\r\n return;\r\n }\r\n\r\n const selectionStart = this.selectionStart;\r\n const selectionEnd = this.selectionEnd;\r\n\r\n this.setViewValue(this.getTimeStringFromDate(newTimeObj, this.format));\r\n\r\n this.selectionStart = selectionStart;\r\n this.selectionEnd = selectionEnd;\r\n\r\n this.createSelectionOfTimeComponentInInput((selectionStart as number) + 1);\r\n\r\n this.value = newTimeObj;\r\n this.onChange(newTimeObj);\r\n this.stateChanges.next();\r\n }\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n onContainerClick() {\r\n this.focus();\r\n }\r\n\r\n onKeyDown(event: KeyboardEvent): void {\r\n // tslint:disable-next-line: deprecation\r\n const keyCode = event.keyCode;\r\n\r\n if (isLetterKey(event) && !event.ctrlKey && !event.metaKey) {\r\n event.preventDefault();\r\n\r\n this.incorrectInput.emit();\r\n } else if (\r\n (hasModifierKey(event) && (isVerticalMovement(event) || isHorizontalMovement(event))) ||\r\n event.ctrlKey || event.metaKey ||\r\n [DELETE, BACKSPACE, TAB].includes(keyCode)\r\n ) {\r\n noop();\r\n } else if (keyCode === SPACE) {\r\n this.spaceKeyHandler(event);\r\n } else if ([HOME, PAGE_UP].includes(keyCode)) {\r\n this.createSelectionOfTimeComponentInInput(0);\r\n } else if ([END, PAGE_DOWN].includes(keyCode)) {\r\n this.createSelectionOfTimeComponentInInput(this.viewValue.length);\r\n } else if ([UP_ARROW, DOWN_ARROW].includes(keyCode)) {\r\n event.preventDefault();\r\n\r\n this.verticalArrowKeyHandler(keyCode);\r\n } else if ([LEFT_ARROW, RIGHT_ARROW].includes(keyCode)) {\r\n this.horizontalArrowKeyHandler(keyCode);\r\n } else if (/^\\D$/.test(event.key)) {\r\n event.preventDefault();\r\n\r\n const newValue = this.getNewValue(event.key, this.selectionStart as number);\r\n const formattedValue = this.replaceSymbols(newValue);\r\n\r\n if (newValue !== formattedValue) {\r\n this.setViewValue(formattedValue);\r\n\r\n setTimeout(this.onInput);\r\n } else {\r\n this.incorrectInput.emit();\r\n }\r\n } else {\r\n setTimeout(this.onInput);\r\n }\r\n }\r\n\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n this.setControl(control);\r\n\r\n return this.validator ? this.validator(control) : null;\r\n }\r\n\r\n registerOnValidatorChange(fn: () => void): void {\r\n this.validatorOnChange = fn;\r\n }\r\n\r\n writeValue(value: D | null): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: (value: D) => void): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n private formatUserPaste(value: string) {\r\n if (value.match(AM_PM_FORMAT_REGEXP)) { return value; }\r\n\r\n const match: RegExpMatchArray | null = value.match(\r\n /^(\\D+)?(?<hours>\\d+)?(\\D+)?(\\D+)?(?<minutes>\\d+)?(\\D+)?(\\D+)?(?<seconds>\\d+)?(\\D+)?$/\r\n );\r\n\r\n if (!match?.groups?.hours) {\r\n this.setViewValue(value);\r\n\r\n return value;\r\n }\r\n\r\n return this.replaceNumbers(Object.values(match.groups)\r\n // tslint:disable-next-line:no-magic-numbers\r\n .map((group) => (group || '').padStart(2, '0'))\r\n .join(':')\r\n );\r\n }\r\n\r\n private formatUserInput(value: string): string {\r\n return this.replaceNumbers(this.replaceSymbols(value));\r\n }\r\n\r\n private replaceSymbols(value: string): string {\r\n let formattedValue: string = value;\r\n\r\n const match: RegExpMatchArray | null = value.match(/^(\\d\\d:){0,2}(?<number>[0-9])(?<symbol>\\W)(:\\d\\d){0,2}$/);\r\n\r\n if (match?.groups) {\r\n const { number, symbol } = match.groups;\r\n\r\n formattedValue = value.replace(number + symbol, `0${number}`);\r\n }\r\n\r\n return formattedValue;\r\n }\r\n\r\n private replaceNumbers(value: string): string {\r\n let formattedValue: string = value;\r\n\r\n const match: RegExpMatchArray | null = value.match(/^(?<hours>\\d{0,4}):?(?<minutes>\\d{0,4}):?(?<seconds>\\d{0,4})$/);\r\n\r\n if (match?.groups) {\r\n const { hours, minutes, seconds } = match.groups;\r\n\r\n if (hours.length && parseInt(hours) > HOURS_PER_DAY) {\r\n formattedValue = formattedValue.replace(hours, HOURS_PER_DAY.toString());\r\n }\r\n\r\n if (minutes.length && parseInt(minutes) > MINUTES_PER_HOUR) {\r\n formattedValue = formattedValue.replace(minutes, MINUTES_PER_HOUR.toString());\r\n }\r\n\r\n if (seconds.length && parseInt(seconds) > SECONDS_PER_MINUTE) {\r\n formattedValue = formattedValue.replace(seconds, SECONDS_PER_MINUTE.toString());\r\n }\r\n }\r\n\r\n return formattedValue;\r\n }\r\n\r\n /** Checks whether the input is invalid based on the native validation. */\r\n private isBadInput(): boolean {\r\n const validity = (<HTMLInputElement> this.elementRef.nativeElement).validity;\r\n\r\n return validity && validity.badInput;\r\n }\r\n\r\n private spaceKeyHandler(event: KeyboardEvent) {\r\n event.preventDefault();\r\n\r\n if (this.selectionStart === this.selectionEnd) {\r\n const value = this.getNewValue(event.key, this.selectionStart as number);\r\n const formattedValue = this.replaceSymbols(value);\r\n\r\n if (value !== formattedValue) {\r\n this.setViewValue(formattedValue);\r\n\r\n setTimeout(this.onInput);\r\n }\r\n } else if (this.selectionStart !== this.selectionEnd) {\r\n\r\n let cursorPos = this.selectionStart as number;\r\n\r\n const nextDividerPos: number = this.viewValue.indexOf(':', cursorPos);\r\n\r\n cursorPos = nextDividerPos ? nextDividerPos + 1 : 0;\r\n\r\n this.createSelectionOfTimeComponentInInput(cursorPos);\r\n }\r\n }\r\n\r\n private getNewValue(key: string, position: number) {\r\n return [this.viewValue.slice(0, position), key, this.viewValue.slice(position)].join('');\r\n }\r\n\r\n private verticalArrowKeyHandler(keyCode: number): void {\r\n if (!this.value) { return; }\r\n\r\n let changedTime;\r\n\r\n const newEditParams = this.getTimeEditMetrics(this.selectionStart as number);\r\n\r\n if (keyCode === UP_ARROW) {\r\n changedTime = this.incrementTime(this.value, newEditParams.modifiedTimePart);\r\n }\r\n\r\n if (keyCode === DOWN_ARROW) {\r\n changedTime = this.decrementTime(this.value, newEditParams.modifiedTimePart);\r\n }\r\n\r\n this.value = changedTime;\r\n\r\n this.selectionStart = newEditParams.cursorStartPosition;\r\n this.selectionEnd = newEditParams.cursorEndPosition;\r\n\r\n this.onChange(changedTime);\r\n this.stateChanges.next();\r\n }\r\n\r\n private horizontalArrowKeyHandler(keyCode: number): void {\r\n if (!this.value) { return; }\r\n\r\n let cursorPos = this.selectionStart as number;\r\n\r\n if (keyCode === LEFT_ARROW) {\r\n cursorPos = cursorPos === 0 ? this.viewValue.length : cursorPos - 1;\r\n } else if (keyCode === RIGHT_ARROW) {\r\n const nextDividerPos: number = this.viewValue.indexOf(':', cursorPos);\r\n\r\n cursorPos = nextDividerPos ? nextDividerPos + 1 : 0;\r\n }\r\n\r\n this.createSelectionOfTimeComponentInInput(cursorPos);\r\n }\r\n\r\n private createSelectionOfTimeComponentInInput(cursorPos: number): void {\r\n setTimeout(() => {\r\n const newEditParams = this.getTimeEditMetrics(cursorPos);\r\n\r\n this.selectionStart = newEditParams.cursorStartPosition;\r\n this.selectionEnd = newEditParams.cursorEndPosition;\r\n });\r\n }\r\n\r\n private incrementTime(dateVal: D, whatToIncrement: TimeParts = TimeParts.seconds): D {\r\n let hours = this.dateAdapter.getHours(dateVal);\r\n let minutes = this.dateAdapter.getMinutes(dateVal);\r\n let seconds = this.dateAdapter.getSeconds(dateVal);\r\n\r\n switch (whatToIncrement) {\r\n case TimeParts.hours:\r\n hours++;\r\n break;\r\n case TimeParts.minutes:\r\n minutes++;\r\n break;\r\n case TimeParts.seconds:\r\n seconds++;\r\n break;\r\n default:\r\n }\r\n\r\n if (seconds > SECONDS_PER_MINUTE) { seconds = 0; }\r\n\r\n if (minutes > MINUTES_PER_HOUR) { minutes = 0; }\r\n\r\n if (hours > HOURS_PER_DAY) { hours = 0; }\r\n\r\n return this.dateAdapter.createDateTime(\r\n this.dateAdapter.getYear(this.value),\r\n this.dateAdapter.getMonth(this.value),\r\n this.dateAdapter.getDate(this.value),\r\n hours,\r\n minutes,\r\n seconds,\r\n this.dateAdapter.getMilliseconds(this.value)\r\n );\r\n }\r\n\r\n private decrementTime(dateVal: D, whatToDecrement: TimeParts = TimeParts.seconds): D {\r\n let hours = this.dateAdapter.getHours(dateVal);\r\n let minutes = this.dateAdapter.getMinutes(dateVal);\r\n let seconds = this.dateAdapter.getSeconds(dateVal);\r\n\r\n switch (whatToDecrement) {\r\n case TimeParts.hours:\r\n hours--;\r\n break;\r\n case TimeParts.minutes:\r\n minutes--;\r\n break;\r\n case TimeParts.seconds:\r\n seconds--;\r\n break;\r\n default:\r\n }\r\n\r\n if (seconds < 0) { seconds = SECONDS_PER_MINUTE; }\r\n\r\n if (minutes < 0) { minutes = MINUTES_PER_HOUR; }\r\n\r\n if (hours < 0) { hours = HOURS_PER_DAY; }\r\n\r\n return this.dateAdapter.createDateTime(\r\n this.dateAdapter.getYear(this.value),\r\n this.dateAdapter.getMonth(this.value),\r\n this.dateAdapter.getDate(this.value),\r\n hours,\r\n minutes,\r\n seconds,\r\n this.dateAdapter.getMilliseconds(this.value)\r\n );\r\n }\r\n\r\n /**\r\n * @description Get params for arrow-keys (up/down) time valie edit.\r\n * @param cursorPosition Current cursor position in timeString\r\n */\r\n private getTimeEditMetrics(cursorPosition: number): {\r\n modifiedTimePart: TimeParts;\r\n cursorStartPosition: number;\r\n cursorEndPosition: number;\r\n } {\r\n const timeString: string = this.viewValue;\r\n let modifiedTimePart: TimeParts;\r\n let cursorStartPosition: number;\r\n let cursorEndPosition: number;\r\n\r\n const hoursIndex = 0;\r\n const minutesIndex = timeString.indexOf(':', hoursIndex + 1);\r\n const secondsIndex = minutesIndex !== -1 ? timeString.indexOf(':', minutesIndex + 1) : -1;\r\n\r\n if (secondsIndex !== -1 && cursorPosition > secondsIndex) {\r\n modifiedTimePart = TimeParts.seconds;\r\n cursorStartPosition = secondsIndex + 1;\r\n cursorEndPosition = timeString.length;\r\n } else if (minutesIndex !== -1 && cursorPosition > minutesIndex) {\r\n modifiedTimePart = TimeParts.minutes;\r\n cursorStartPosition = minutesIndex + 1;\r\n cursorEndPosition = secondsIndex > -1 ? secondsIndex : timeString.length;\r\n } else {\r\n modifiedTimePart = TimeParts.hours;\r\n cursorStartPosition = hoursIndex;\r\n cursorEndPosition = minutesIndex !== -1 ? minutesIndex : timeString.length;\r\n }\r\n\r\n return { modifiedTimePart, cursorStartPosition, cursorEndPosition };\r\n }\r\n\r\n /**\r\n * @description Create time string for displaying inside input element of UI\r\n */\r\n private getTimeStringFromDate(value: D | null, timeFormat: TimeFormats): string {\r\n if (!value || !this.dateAdapter.isValid(value)) { return ''; }\r\n\r\n return this.dateAdapter.format(value, timeFormat);\r\n }\r\n\r\n private getDateFromTimeString(timeString: string): D | null {\r\n if (!timeString) { return null; }\r\n\r\n const HMS = timeString.match(HOURS_MINUTES_SECONDS_REGEXP);\r\n const HM = timeString.match(HOURS_MINUTES_REGEXP);\r\n const H = timeString.match(HOURS_ONLY_REGEXP);\r\n const amPm = timeString.match(AM_PM_FORMAT_REGEXP);\r\n\r\n let hours: number = 0;\r\n let minutes: number = 0;\r\n let seconds: number = 0;\r\n\r\n // tslint:disable:no-magic-numbers\r\n if (amPm) {\r\n hours = Number(amPm[1]);\r\n minutes = Number(amPm[2]);\r\n\r\n if (/[p]/i.test(amPm[3]) || (/[a]/i.test(amPm[3]) && hours === 12)) {\r\n hours += 12;\r\n }\r\n } else if (HMS) {\r\n hours = Number(HMS[1]);\r\n minutes = Number(HMS[2]);\r\n seconds = Number(HMS[3]);\r\n } else if (HM) {\r\n hours = Number(HM[1]);\r\n minutes = Number(HM[2]);\r\n } else if (H) {\r\n hours = Number(H[1]);\r\n } else {\r\n return null;\r\n }\r\n // tslint:enable\r\n const date = this.value || this.dateAdapter.today();\r\n\r\n const resultDate = this.dateAdapter.createDateTime(\r\n this.dateAdapter.getYear(date),\r\n this.dateAdapter.getMonth(date),\r\n this.dateAdapter.getDate(date),\r\n hours,\r\n minutes || 0,\r\n seconds || 0,\r\n this.dateAdapter.getMilliseconds(date)\r\n );\r\n\r\n return this.getValidDateOrNull(resultDate);\r\n }\r\n\r\n private parseValidator: ValidatorFn = (): ValidationErrors | null => {\r\n return this.focused ||\r\n this.empty ||\r\n this.lastValueValid ? null : { mcTimepickerParse: { text: this.viewValue } };\r\n }\r\n\r\n private minValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\r\n const controlValue = this.getValidDateOrNull(this.dateAdapter.deserialize(control.value));\r\n\r\n return (!this.min || !controlValue || this.compareTime(this.min, controlValue) <= 0) ?\r\n null :\r\n { mcTimepickerLowerThenMin: { min: this.min, actual: controlValue } };\r\n }\r\n\r\n private maxValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\r\n const controlValue = this.getValidDateOrNull(this.dateAdapter.deserialize(control.value));\r\n\r\n return (!this.max || !controlValue || this.compareTime(this.max, controlValue) >= 0) ?\r\n null :\r\n { mcTimepickerHigherThenMax: { max: this.max, actual: controlValue } };\r\n }\r\n\r\n private compareTime(first: D, second: D): number {\r\n const result = this.dateAdapter.getHours(first) - this.dateAdapter.getHours(second) ||\r\n this.dateAdapter.getMinutes(first) - this.dateAdapter.getMinutes(second);\r\n\r\n if (TimeFormats.HHmm === this.format) {\r\n return result;\r\n } else if (TimeFormats.HHmmss === this.format) {\r\n return result || this.dateAdapter.getSeconds(first) - this.dateAdapter.getSeconds(second);\r\n } else {\r\n throw Error(`Unknown format: ${this.format}`);\r\n }\r\n }\r\n\r\n private getValidDateOrNull(obj: any): D | null {\r\n return (this.dateAdapter.isDateInstance(obj) && this.dateAdapter.isValid(obj)) ? obj : null;\r\n }\r\n\r\n private setViewValue(value: string) {\r\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', value);\r\n }\r\n\r\n private updateView() {\r\n const formattedValue = this.getTimeStringFromDate(this.value, this.format);\r\n\r\n this.setViewValue(formattedValue);\r\n }\r\n\r\n private setControl(control: AbstractControl) {\r\n if (this.control) { return; }\r\n\r\n this.control = control;\r\n\r\n if (this.mcValidation.useValidation) {\r\n setMosaicValidationForCustomFormControl(this, this.changeDetectorRef);\r\n }\r\n }\r\n\r\n // tslint:disable-next-line:no-empty\r\n private validatorOnChange = () => {};\r\n}\r\n","import { A11yModule } from '@angular/cdk/a11y';\r\nimport { PlatformModule } from '@angular/cdk/platform';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { McTimepicker } from './timepicker.directive';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n A11yModule,\r\n PlatformModule,\r\n FormsModule\r\n ],\r\n declarations: [McTimepicker],\r\n exports: [McTimepicker]\r\n})\r\nexport class McTimepickerModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ptsecurity-mosaic-timepicker.mjs","sources":["../../../packages/mosaic/timepicker/timepicker.constants.ts","../../../packages/mosaic/timepicker/timepicker.directive.ts","../../../packages/mosaic/timepicker/timepicker.module.ts","../../../packages/mosaic/timepicker/ptsecurity-mosaic-timepicker.ts"],"sourcesContent":["// tslint:disable:naming-convention\r\nexport enum TimeParts {\r\n hours,\r\n minutes,\r\n seconds\r\n}\r\n\r\nexport enum TimeFormats {\r\n HHmmss = 'HH:mm:ss',\r\n HHmm = 'HH:mm'\r\n}\r\n\r\nexport const TIMEFORMAT_PLACEHOLDERS: { [timeFormat: string]: string } = {\r\n [TimeFormats.HHmmss]: 'чч:мм:сс',\r\n [TimeFormats.HHmm]: 'чч:мм'\r\n};\r\n\r\nexport const DEFAULT_TIME_FORMAT: TimeFormats = TimeFormats.HHmm;\r\n\r\nexport const HOURS_MINUTES_SECONDS_REGEXP = /^([0-1][0-9]|2[0-3]):?([0-5][0-9]):?([0-5][0-9])?$/;\r\nexport const HOURS_MINUTES_REGEXP = /^([0-1][0-9]|2[0-3]):?([0-5][0-9])?$/;\r\nexport const HOURS_ONLY_REGEXP = /^([0-1][0-9]|2[0-3]):?$/;\r\nexport const AM_PM_FORMAT_REGEXP = /^([0-1]?[0-9]):([0-5]?[0-9]) ([ap][m]?$)/i;\r\n\r\nexport const SECONDS_PER_MINUTE: number = 59;\r\nexport const MINUTES_PER_HOUR: number = 59;\r\nexport const HOURS_PER_DAY: number = 23;\r\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport {\r\n ChangeDetectorRef,\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n forwardRef,\r\n Inject,\r\n Input,\r\n OnDestroy,\r\n Optional,\r\n Output,\r\n Renderer2\r\n} from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n FormGroupDirective,\r\n NG_VALIDATORS,\r\n NG_VALUE_ACCESSOR,\r\n NgForm,\r\n ValidationErrors,\r\n Validator,\r\n ValidatorFn,\r\n Validators\r\n} from '@angular/forms';\r\nimport { DateAdapter } from '@ptsecurity/cdk/datetime';\r\nimport {\r\n DOWN_ARROW,\r\n UP_ARROW,\r\n HOME,\r\n END,\r\n LEFT_ARROW,\r\n RIGHT_ARROW,\r\n PAGE_DOWN,\r\n PAGE_UP,\r\n SPACE,\r\n DELETE,\r\n BACKSPACE,\r\n hasModifierKey,\r\n isLetterKey,\r\n isVerticalMovement,\r\n isHorizontalMovement,\r\n TAB\r\n} from '@ptsecurity/cdk/keycodes';\r\nimport {\r\n MC_VALIDATION,\r\n McValidationOptions,\r\n setMosaicValidationForCustomFormControl,\r\n validationTooltipHideDelay,\r\n validationTooltipShowDelay\r\n} from '@ptsecurity/mosaic/core';\r\nimport { McFormFieldControl } from '@ptsecurity/mosaic/form-field';\r\nimport { McWarningTooltipTrigger } from '@ptsecurity/mosaic/tooltip';\r\nimport { noop, Subject } from 'rxjs';\r\n\r\nimport {\r\n DEFAULT_TIME_FORMAT,\r\n HOURS_PER_DAY,\r\n HOURS_MINUTES_REGEXP,\r\n HOURS_MINUTES_SECONDS_REGEXP,\r\n HOURS_ONLY_REGEXP,\r\n MINUTES_PER_HOUR,\r\n SECONDS_PER_MINUTE,\r\n TIMEFORMAT_PLACEHOLDERS,\r\n TimeFormats,\r\n TimeParts,\r\n AM_PM_FORMAT_REGEXP\r\n} from './timepicker.constants';\r\n\r\n\r\n/** @docs-private */\r\nexport const MC_TIMEPICKER_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => McTimepicker),\r\n multi: true\r\n};\r\n\r\n/** @docs-private */\r\nexport const MC_TIMEPICKER_VALIDATORS: any = {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => McTimepicker),\r\n multi: true\r\n};\r\n\r\n\r\nlet uniqueComponentIdSuffix: number = 0;\r\n\r\nconst shortFormatSize: number = 5;\r\nconst fullFormatSize: number = 8;\r\n\r\n\r\n@Directive({\r\n selector: 'input[mcTimepicker]',\r\n exportAs: 'mcTimepicker',\r\n host: {\r\n class: 'mc-input mc-timepicker',\r\n // Native input properties that are overwritten by Angular inputs need to be synced with\r\n // the native input element. Otherwise property bindings for those don't work.\r\n '[attr.id]': 'id',\r\n '[attr.placeholder]': 'placeholder',\r\n '[attr.disabled]': 'disabled || null',\r\n '[attr.required]': 'required',\r\n '[attr.size]': 'getSize()',\r\n '[attr.autocomplete]': '\"off\"',\r\n\r\n '(blur)': 'onBlur()',\r\n '(focus)': 'focusChanged(true)',\r\n\r\n '(paste)': 'onPaste($event)',\r\n\r\n '(keydown)': 'onKeyDown($event)'\r\n },\r\n providers: [\r\n MC_TIMEPICKER_VALIDATORS,\r\n MC_TIMEPICKER_VALUE_ACCESSOR,\r\n { provide: McFormFieldControl, useExisting: McTimepicker }\r\n ]\r\n})\r\nexport class McTimepicker<D> implements McFormFieldControl<D>, ControlValueAccessor, Validator, OnDestroy {\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n readonly stateChanges: Subject<void> = new Subject<void>();\r\n\r\n readonly errorState: boolean;\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n focused: boolean = false;\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n controlType: string = 'timepicker';\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n @Input()\r\n get placeholder(): string {\r\n return this._placeholder;\r\n }\r\n\r\n set placeholder(value: string) {\r\n this._placeholder = value;\r\n\r\n this.defaultPlaceholder = false;\r\n }\r\n\r\n private _placeholder = TIMEFORMAT_PLACEHOLDERS[DEFAULT_TIME_FORMAT];\r\n\r\n @Input()\r\n get disabled(): boolean {\r\n return this._disabled;\r\n }\r\n\r\n set disabled(value: boolean) {\r\n this._disabled = coerceBooleanProperty(value);\r\n\r\n // Browsers may not fire the blur event if the input is disabled too quickly.\r\n // Reset from here to ensure that the element doesn't become stuck.\r\n if (this.focused) {\r\n this.focused = false;\r\n }\r\n\r\n this.stateChanges.next();\r\n }\r\n\r\n private _disabled: boolean;\r\n\r\n @Input()\r\n get id(): string {\r\n return this._id;\r\n }\r\n\r\n set id(value: string) {\r\n this._id = value || this.uid;\r\n }\r\n\r\n private _id: string;\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n @Input()\r\n get required(): boolean {\r\n return this._required;\r\n }\r\n\r\n set required(value: boolean) {\r\n this._required = coerceBooleanProperty(value);\r\n }\r\n\r\n private _required: boolean;\r\n\r\n @Input()\r\n get format(): TimeFormats {\r\n return this._format;\r\n }\r\n\r\n set format(formatValue: TimeFormats) {\r\n this._format = Object\r\n .keys(TimeFormats)\r\n .map((timeFormatKey) => TimeFormats[timeFormatKey])\r\n .indexOf(formatValue) > -1 ? formatValue : DEFAULT_TIME_FORMAT;\r\n\r\n if (this.defaultPlaceholder) {\r\n this._placeholder = TIMEFORMAT_PLACEHOLDERS[this._format];\r\n }\r\n\r\n if (this.value) {\r\n this.updateView();\r\n }\r\n }\r\n\r\n private _format: TimeFormats = DEFAULT_TIME_FORMAT;\r\n\r\n @Input()\r\n get min(): D | null {\r\n return this._min;\r\n }\r\n\r\n set min(value: D | null) {\r\n this._min = this.getValidDateOrNull(this.dateAdapter.deserialize(value));\r\n this.validatorOnChange();\r\n }\r\n\r\n private _min: D | null = null;\r\n\r\n @Input()\r\n get max(): D | null {\r\n return this._max;\r\n }\r\n\r\n set max(value: D | null) {\r\n this._max = this.getValidDateOrNull(this.dateAdapter.deserialize(value));\r\n this.validatorOnChange();\r\n }\r\n\r\n private _max: D | null = null;\r\n\r\n @Input()\r\n get value(): D | null {\r\n return this._value;\r\n }\r\n\r\n set value(value: D | null) {\r\n const newValue = this.dateAdapter.deserialize(value);\r\n\r\n this.lastValueValid = !newValue || this.dateAdapter.isValid(newValue);\r\n\r\n this._value = this.getValidDateOrNull(newValue);\r\n\r\n this.updateView();\r\n }\r\n\r\n private _value: D | null;\r\n\r\n @Input()\r\n set mcValidationTooltip(tooltip: McWarningTooltipTrigger) {\r\n if (!tooltip) { return; }\r\n\r\n tooltip.enterDelay = validationTooltipShowDelay;\r\n tooltip.trigger = 'manual';\r\n\r\n tooltip.initListeners();\r\n\r\n this.incorrectInput.subscribe(() => {\r\n if (tooltip.isOpen) { return; }\r\n\r\n tooltip.show();\r\n\r\n setTimeout(() => tooltip.hide(), validationTooltipHideDelay);\r\n });\r\n }\r\n\r\n @Output() incorrectInput = new EventEmitter<void>();\r\n\r\n get hasSelection(): boolean {\r\n return this.selectionStart !== this.selectionEnd;\r\n }\r\n\r\n get isFullFormat(): boolean {\r\n return this.format === TimeFormats.HHmmss;\r\n }\r\n\r\n get isShortFormat(): boolean {\r\n return this.format === TimeFormats.HHmm;\r\n }\r\n\r\n get viewValue(): string {\r\n return this.elementRef.nativeElement.value;\r\n }\r\n\r\n get ngControl(): any {\r\n return this.control;\r\n }\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n get empty(): boolean {\r\n return !this.viewValue && !this.isBadInput();\r\n }\r\n\r\n get selectionStart(): number | null {\r\n return this.elementRef.nativeElement.selectionStart;\r\n }\r\n\r\n set selectionStart(value: number | null) {\r\n this.elementRef.nativeElement.selectionStart = value;\r\n }\r\n\r\n get selectionEnd(): number | null {\r\n return this.elementRef.nativeElement.selectionEnd;\r\n }\r\n\r\n set selectionEnd(value: number | null) {\r\n this.elementRef.nativeElement.selectionEnd = value;\r\n }\r\n\r\n private readonly uid = `mc-timepicker-${uniqueComponentIdSuffix++}`;\r\n\r\n private readonly validator: ValidatorFn | null;\r\n\r\n private lastValueValid = false;\r\n\r\n private control: AbstractControl;\r\n\r\n private defaultPlaceholder = true;\r\n\r\n private onChange: (value: any) => void;\r\n private onTouched: () => void;\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private changeDetectorRef: ChangeDetectorRef,\r\n private renderer: Renderer2,\r\n @Optional() @Inject(MC_VALIDATION) private mcValidation: McValidationOptions,\r\n @Optional() public parentForm: NgForm,\r\n @Optional() public parentFormGroup: FormGroupDirective,\r\n @Optional() private dateAdapter: DateAdapter<any>\r\n ) {\r\n if (!this.dateAdapter) {\r\n throw Error(`McTimepicker: No provider found for DateAdapter. You must import one of the existing ` +\r\n `modules at your application root or provide a custom implementation or use exists ones.`);\r\n }\r\n\r\n this.validator = Validators.compose([this.parseValidator, this.minValidator, this.maxValidator]);\r\n\r\n this.onChange = noop;\r\n\r\n // Force setter to be called in case id was not specified.\r\n this.id = this.id;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.stateChanges.complete();\r\n }\r\n\r\n getSize(): number {\r\n return this.isFullFormat ? fullFormatSize : shortFormatSize;\r\n }\r\n\r\n focus(): void {\r\n this.elementRef.nativeElement.focus();\r\n }\r\n\r\n focusChanged(isFocused: boolean): void {\r\n if (isFocused !== this.focused) {\r\n this.focused = isFocused;\r\n this.onTouched();\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n onBlur() {\r\n this.focusChanged(false);\r\n\r\n this.setViewValue(this.formatUserPaste(this.viewValue));\r\n\r\n this.onInput();\r\n }\r\n\r\n onPaste($event) {\r\n $event.preventDefault();\r\n\r\n const value = this.formatUserPaste($event.clipboardData.getData('text'));\r\n\r\n const newTimeObj = this.getDateFromTimeString(value);\r\n\r\n if (!newTimeObj) { return; }\r\n\r\n this.setViewValue(this.getTimeStringFromDate(newTimeObj, this.format));\r\n\r\n this.value = newTimeObj;\r\n this.onChange(newTimeObj);\r\n this.stateChanges.next();\r\n }\r\n\r\n onInput = () => {\r\n const formattedValue = this.formatUserInput(this.viewValue);\r\n\r\n const newTimeObj = this.getDateFromTimeString(formattedValue);\r\n this.lastValueValid = !!newTimeObj;\r\n\r\n if (!newTimeObj) {\r\n if (!this.viewValue) {\r\n this.onChange(null);\r\n } else {\r\n this.control.updateValueAndValidity();\r\n }\r\n\r\n return;\r\n }\r\n\r\n const selectionStart = this.selectionStart;\r\n const selectionEnd = this.selectionEnd;\r\n\r\n this.setViewValue(this.getTimeStringFromDate(newTimeObj, this.format));\r\n\r\n this.selectionStart = selectionStart;\r\n this.selectionEnd = selectionEnd;\r\n\r\n this.createSelectionOfTimeComponentInInput((selectionStart as number) + 1);\r\n\r\n this.value = newTimeObj;\r\n this.onChange(newTimeObj);\r\n this.stateChanges.next();\r\n }\r\n\r\n /**\r\n * Implemented as part of McFormFieldControl.\r\n * @docs-private\r\n */\r\n onContainerClick() {\r\n this.focus();\r\n }\r\n\r\n onKeyDown(event: KeyboardEvent): void {\r\n // tslint:disable-next-line: deprecation\r\n const keyCode = event.keyCode;\r\n\r\n if (isLetterKey(event) && !event.ctrlKey && !event.metaKey) {\r\n event.preventDefault();\r\n\r\n this.incorrectInput.emit();\r\n } else if (\r\n (hasModifierKey(event) && (isVerticalMovement(event) || isHorizontalMovement(event))) ||\r\n event.ctrlKey || event.metaKey ||\r\n [DELETE, BACKSPACE, TAB].includes(keyCode)\r\n ) {\r\n noop();\r\n } else if (keyCode === SPACE) {\r\n this.spaceKeyHandler(event);\r\n } else if ([HOME, PAGE_UP].includes(keyCode)) {\r\n this.createSelectionOfTimeComponentInInput(0);\r\n } else if ([END, PAGE_DOWN].includes(keyCode)) {\r\n this.createSelectionOfTimeComponentInInput(this.viewValue.length);\r\n } else if ([UP_ARROW, DOWN_ARROW].includes(keyCode)) {\r\n event.preventDefault();\r\n\r\n this.verticalArrowKeyHandler(keyCode);\r\n } else if ([LEFT_ARROW, RIGHT_ARROW].includes(keyCode)) {\r\n this.horizontalArrowKeyHandler(keyCode);\r\n } else if (/^\\D$/.test(event.key)) {\r\n event.preventDefault();\r\n\r\n const newValue = this.getNewValue(event.key, this.selectionStart as number);\r\n const formattedValue = this.replaceSymbols(newValue);\r\n\r\n if (newValue !== formattedValue) {\r\n this.setViewValue(formattedValue);\r\n\r\n setTimeout(this.onInput);\r\n } else {\r\n this.incorrectInput.emit();\r\n }\r\n } else {\r\n setTimeout(this.onInput);\r\n }\r\n }\r\n\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n this.setControl(control);\r\n\r\n return this.validator ? this.validator(control) : null;\r\n }\r\n\r\n registerOnValidatorChange(fn: () => void): void {\r\n this.validatorOnChange = fn;\r\n }\r\n\r\n writeValue(value: D | null): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: (value: D) => void): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n private formatUserPaste(value: string) {\r\n if (value.match(AM_PM_FORMAT_REGEXP)) { return value; }\r\n\r\n const match: RegExpMatchArray | null = value.match(\r\n /^(\\D+)?(?<hours>\\d+)?(\\D+)?(\\D+)?(?<minutes>\\d+)?(\\D+)?(\\D+)?(?<seconds>\\d+)?(\\D+)?$/\r\n );\r\n\r\n if (!match?.groups?.hours) {\r\n this.setViewValue(value);\r\n\r\n return value;\r\n }\r\n\r\n return this.replaceNumbers(Object.values(match.groups)\r\n // tslint:disable-next-line:no-magic-numbers\r\n .map((group) => (group || '').padStart(2, '0'))\r\n .join(':')\r\n );\r\n }\r\n\r\n private formatUserInput(value: string): string {\r\n return this.replaceNumbers(this.replaceSymbols(value));\r\n }\r\n\r\n private replaceSymbols(value: string): string {\r\n let formattedValue: string = value;\r\n\r\n const match: RegExpMatchArray | null = value.match(/^(\\d\\d:){0,2}(?<number>[0-9])(?<symbol>\\W)(:\\d\\d){0,2}$/);\r\n\r\n if (match?.groups) {\r\n const { number, symbol } = match.groups;\r\n\r\n formattedValue = value.replace(number + symbol, `0${number}`);\r\n }\r\n\r\n return formattedValue;\r\n }\r\n\r\n private replaceNumbers(value: string): string {\r\n let formattedValue: string = value;\r\n\r\n const match: RegExpMatchArray | null = value.match(/^(?<hours>\\d{0,4}):?(?<minutes>\\d{0,4}):?(?<seconds>\\d{0,4})$/);\r\n\r\n if (match?.groups) {\r\n const { hours, minutes, seconds } = match.groups;\r\n\r\n if (hours.length && parseInt(hours) > HOURS_PER_DAY) {\r\n formattedValue = formattedValue.replace(hours, HOURS_PER_DAY.toString());\r\n }\r\n\r\n if (minutes.length && parseInt(minutes) > MINUTES_PER_HOUR) {\r\n formattedValue = formattedValue.replace(minutes, MINUTES_PER_HOUR.toString());\r\n }\r\n\r\n if (seconds.length && parseInt(seconds) > SECONDS_PER_MINUTE) {\r\n formattedValue = formattedValue.replace(seconds, SECONDS_PER_MINUTE.toString());\r\n }\r\n }\r\n\r\n return formattedValue;\r\n }\r\n\r\n /** Checks whether the input is invalid based on the native validation. */\r\n private isBadInput(): boolean {\r\n const validity = (<HTMLInputElement> this.elementRef.nativeElement).validity;\r\n\r\n return validity && validity.badInput;\r\n }\r\n\r\n private spaceKeyHandler(event: KeyboardEvent) {\r\n event.preventDefault();\r\n\r\n if (this.selectionStart === this.selectionEnd) {\r\n const value = this.getNewValue(event.key, this.selectionStart as number);\r\n const formattedValue = this.replaceSymbols(value);\r\n\r\n if (value !== formattedValue) {\r\n this.setViewValue(formattedValue);\r\n\r\n setTimeout(this.onInput);\r\n }\r\n } else if (this.selectionStart !== this.selectionEnd) {\r\n\r\n let cursorPos = this.selectionStart as number;\r\n\r\n const nextDividerPos: number = this.viewValue.indexOf(':', cursorPos);\r\n\r\n cursorPos = nextDividerPos ? nextDividerPos + 1 : 0;\r\n\r\n this.createSelectionOfTimeComponentInInput(cursorPos);\r\n }\r\n }\r\n\r\n private getNewValue(key: string, position: number) {\r\n return [this.viewValue.slice(0, position), key, this.viewValue.slice(position)].join('');\r\n }\r\n\r\n private verticalArrowKeyHandler(keyCode: number): void {\r\n if (!this.value) { return; }\r\n\r\n let changedTime;\r\n\r\n const newEditParams = this.getTimeEditMetrics(this.selectionStart as number);\r\n\r\n if (keyCode === UP_ARROW) {\r\n changedTime = this.incrementTime(this.value, newEditParams.modifiedTimePart);\r\n }\r\n\r\n if (keyCode === DOWN_ARROW) {\r\n changedTime = this.decrementTime(this.value, newEditParams.modifiedTimePart);\r\n }\r\n\r\n this.value = changedTime;\r\n\r\n this.selectionStart = newEditParams.cursorStartPosition;\r\n this.selectionEnd = newEditParams.cursorEndPosition;\r\n\r\n this.onChange(changedTime);\r\n this.stateChanges.next();\r\n }\r\n\r\n private horizontalArrowKeyHandler(keyCode: number): void {\r\n if (!this.value) { return; }\r\n\r\n let cursorPos = this.selectionStart as number;\r\n\r\n if (keyCode === LEFT_ARROW) {\r\n cursorPos = cursorPos === 0 ? this.viewValue.length : cursorPos - 1;\r\n } else if (keyCode === RIGHT_ARROW) {\r\n const nextDividerPos: number = this.viewValue.indexOf(':', cursorPos);\r\n\r\n cursorPos = nextDividerPos ? nextDividerPos + 1 : 0;\r\n }\r\n\r\n this.createSelectionOfTimeComponentInInput(cursorPos);\r\n }\r\n\r\n private createSelectionOfTimeComponentInInput(cursorPos: number): void {\r\n setTimeout(() => {\r\n const newEditParams = this.getTimeEditMetrics(cursorPos);\r\n\r\n this.selectionStart = newEditParams.cursorStartPosition;\r\n this.selectionEnd = newEditParams.cursorEndPosition;\r\n });\r\n }\r\n\r\n private incrementTime(dateVal: D, whatToIncrement: TimeParts = TimeParts.seconds): D {\r\n let hours = this.dateAdapter.getHours(dateVal);\r\n let minutes = this.dateAdapter.getMinutes(dateVal);\r\n let seconds = this.dateAdapter.getSeconds(dateVal);\r\n\r\n switch (whatToIncrement) {\r\n case TimeParts.hours:\r\n hours++;\r\n break;\r\n case TimeParts.minutes:\r\n minutes++;\r\n break;\r\n case TimeParts.seconds:\r\n seconds++;\r\n break;\r\n default:\r\n }\r\n\r\n if (seconds > SECONDS_PER_MINUTE) { seconds = 0; }\r\n\r\n if (minutes > MINUTES_PER_HOUR) { minutes = 0; }\r\n\r\n if (hours > HOURS_PER_DAY) { hours = 0; }\r\n\r\n return this.dateAdapter.createDateTime(\r\n this.dateAdapter.getYear(this.value),\r\n this.dateAdapter.getMonth(this.value),\r\n this.dateAdapter.getDate(this.value),\r\n hours,\r\n minutes,\r\n seconds,\r\n this.dateAdapter.getMilliseconds(this.value)\r\n );\r\n }\r\n\r\n private decrementTime(dateVal: D, whatToDecrement: TimeParts = TimeParts.seconds): D {\r\n let hours = this.dateAdapter.getHours(dateVal);\r\n let minutes = this.dateAdapter.getMinutes(dateVal);\r\n let seconds = this.dateAdapter.getSeconds(dateVal);\r\n\r\n switch (whatToDecrement) {\r\n case TimeParts.hours:\r\n hours--;\r\n break;\r\n case TimeParts.minutes:\r\n minutes--;\r\n break;\r\n case TimeParts.seconds:\r\n seconds--;\r\n break;\r\n default:\r\n }\r\n\r\n if (seconds < 0) { seconds = SECONDS_PER_MINUTE; }\r\n\r\n if (minutes < 0) { minutes = MINUTES_PER_HOUR; }\r\n\r\n if (hours < 0) { hours = HOURS_PER_DAY; }\r\n\r\n return this.dateAdapter.createDateTime(\r\n this.dateAdapter.getYear(this.value),\r\n this.dateAdapter.getMonth(this.value),\r\n this.dateAdapter.getDate(this.value),\r\n hours,\r\n minutes,\r\n seconds,\r\n this.dateAdapter.getMilliseconds(this.value)\r\n );\r\n }\r\n\r\n /**\r\n * @description Get params for arrow-keys (up/down) time valie edit.\r\n * @param cursorPosition Current cursor position in timeString\r\n */\r\n private getTimeEditMetrics(cursorPosition: number): {\r\n modifiedTimePart: TimeParts;\r\n cursorStartPosition: number;\r\n cursorEndPosition: number;\r\n } {\r\n const timeString: string = this.viewValue;\r\n let modifiedTimePart: TimeParts;\r\n let cursorStartPosition: number;\r\n let cursorEndPosition: number;\r\n\r\n const hoursIndex = 0;\r\n const minutesIndex = timeString.indexOf(':', hoursIndex + 1);\r\n const secondsIndex = minutesIndex !== -1 ? timeString.indexOf(':', minutesIndex + 1) : -1;\r\n\r\n if (secondsIndex !== -1 && cursorPosition > secondsIndex) {\r\n modifiedTimePart = TimeParts.seconds;\r\n cursorStartPosition = secondsIndex + 1;\r\n cursorEndPosition = timeString.length;\r\n } else if (minutesIndex !== -1 && cursorPosition > minutesIndex) {\r\n modifiedTimePart = TimeParts.minutes;\r\n cursorStartPosition = minutesIndex + 1;\r\n cursorEndPosition = secondsIndex > -1 ? secondsIndex : timeString.length;\r\n } else {\r\n modifiedTimePart = TimeParts.hours;\r\n cursorStartPosition = hoursIndex;\r\n cursorEndPosition = minutesIndex !== -1 ? minutesIndex : timeString.length;\r\n }\r\n\r\n return { modifiedTimePart, cursorStartPosition, cursorEndPosition };\r\n }\r\n\r\n /**\r\n * @description Create time string for displaying inside input element of UI\r\n */\r\n private getTimeStringFromDate(value: D | null, timeFormat: TimeFormats): string {\r\n if (!value || !this.dateAdapter.isValid(value)) { return ''; }\r\n\r\n return this.dateAdapter.format(value, timeFormat);\r\n }\r\n\r\n private getDateFromTimeString(timeString: string): D | null {\r\n if (!timeString) { return null; }\r\n\r\n const HMS = timeString.match(HOURS_MINUTES_SECONDS_REGEXP);\r\n const HM = timeString.match(HOURS_MINUTES_REGEXP);\r\n const H = timeString.match(HOURS_ONLY_REGEXP);\r\n const amPm = timeString.match(AM_PM_FORMAT_REGEXP);\r\n\r\n let hours: number = 0;\r\n let minutes: number = 0;\r\n let seconds: number = 0;\r\n\r\n // tslint:disable:no-magic-numbers\r\n if (amPm) {\r\n hours = Number(amPm[1]);\r\n minutes = Number(amPm[2]);\r\n\r\n if (/[p]/i.test(amPm[3]) || (/[a]/i.test(amPm[3]) && hours === 12)) {\r\n hours += 12;\r\n }\r\n } else if (HMS) {\r\n hours = Number(HMS[1]);\r\n minutes = Number(HMS[2]);\r\n seconds = Number(HMS[3]);\r\n } else if (HM) {\r\n hours = Number(HM[1]);\r\n minutes = Number(HM[2]);\r\n } else if (H) {\r\n hours = Number(H[1]);\r\n } else {\r\n return null;\r\n }\r\n // tslint:enable\r\n const date = this.value || this.dateAdapter.today();\r\n\r\n const resultDate = this.dateAdapter.createDateTime(\r\n this.dateAdapter.getYear(date),\r\n this.dateAdapter.getMonth(date),\r\n this.dateAdapter.getDate(date),\r\n hours,\r\n minutes || 0,\r\n seconds || 0,\r\n this.dateAdapter.getMilliseconds(date)\r\n );\r\n\r\n return this.getValidDateOrNull(resultDate);\r\n }\r\n\r\n private parseValidator: ValidatorFn = (): ValidationErrors | null => {\r\n return this.focused ||\r\n this.empty ||\r\n this.lastValueValid ? null : { mcTimepickerParse: { text: this.viewValue } };\r\n }\r\n\r\n private minValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\r\n const controlValue = this.getValidDateOrNull(this.dateAdapter.deserialize(control.value));\r\n\r\n return !this.min || !controlValue || this.dateAdapter.compareDateTime(this.min, controlValue) <= 0 ?\r\n null :\r\n { mcTimepickerLowerThenMin: { min: this.min, actual: controlValue } };\r\n }\r\n\r\n private maxValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\r\n const controlValue = this.getValidDateOrNull(this.dateAdapter.deserialize(control.value));\r\n\r\n return !this.max || !controlValue || this.dateAdapter.compareDateTime(this.max, controlValue) >= 0 ?\r\n null :\r\n { mcTimepickerHigherThenMax: { max: this.max, actual: controlValue } };\r\n }\r\n\r\n private getValidDateOrNull(obj: any): D | null {\r\n return (this.dateAdapter.isDateInstance(obj) && this.dateAdapter.isValid(obj)) ? obj : null;\r\n }\r\n\r\n private setViewValue(value: string) {\r\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', value);\r\n }\r\n\r\n private updateView() {\r\n const formattedValue = this.getTimeStringFromDate(this.value, this.format);\r\n\r\n this.setViewValue(formattedValue);\r\n }\r\n\r\n private setControl(control: AbstractControl) {\r\n if (this.control) { return; }\r\n\r\n this.control = control;\r\n\r\n this.control.valueChanges\r\n .subscribe((value) => this._value = value);\r\n\r\n if (this.mcValidation.useValidation) {\r\n setMosaicValidationForCustomFormControl(this, this.changeDetectorRef);\r\n }\r\n }\r\n\r\n // tslint:disable-next-line:no-empty\r\n private validatorOnChange = () => {};\r\n}\r\n","import { A11yModule } from '@angular/cdk/a11y';\r\nimport { PlatformModule } from '@angular/cdk/platform';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { McTimepicker } from './timepicker.directive';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n A11yModule,\r\n PlatformModule,\r\n FormsModule\r\n ],\r\n declarations: [McTimepicker],\r\n exports: [McTimepicker]\r\n})\r\nexport class McTimepickerModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -106,8 +106,8 @@ class McToggleComponent extends McToggleMixinBase {
106
106
  this.change.emit(event);
107
107
  }
108
108
  }
109
- /** @nocollapse */ /** @nocollapse */ McToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McToggleComponent, deps: [{ token: i0.ElementRef }, { token: i1.FocusMonitor }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
110
- /** @nocollapse */ /** @nocollapse */ McToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.7", type: McToggleComponent, selector: "mc-toggle", inputs: { color: "color", tabIndex: "tabIndex", labelPosition: "labelPosition", ariaLabel: ["aria-label", "ariaLabel"], ariaLabelledby: ["aria-labelledby", "ariaLabelledby"], id: "id", name: "name", value: "value", disabled: "disabled", checked: "checked" }, outputs: { change: "change" }, host: { properties: { "id": "id", "attr.id": "id", "class.mc-disabled": "disabled", "class.mc-active": "checked" }, classAttribute: "mc-toggle" }, providers: [{
109
+ /** @nocollapse */ /** @nocollapse */ McToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McToggleComponent, deps: [{ token: i0.ElementRef }, { token: i1.FocusMonitor }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
110
+ /** @nocollapse */ /** @nocollapse */ McToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: McToggleComponent, selector: "mc-toggle", inputs: { color: "color", tabIndex: "tabIndex", labelPosition: "labelPosition", ariaLabel: ["aria-label", "ariaLabel"], ariaLabelledby: ["aria-labelledby", "ariaLabelledby"], id: "id", name: "name", value: "value", disabled: "disabled", checked: "checked" }, outputs: { change: "change" }, host: { properties: { "id": "id", "attr.id": "id", "class.mc-disabled": "disabled", "class.mc-active": "checked" }, classAttribute: "mc-toggle" }, providers: [{
111
111
  provide: NG_VALUE_ACCESSOR, useExisting: forwardRef((() => McToggleComponent)), multi: true
112
112
  }], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true }], exportAs: ["mcToggle"], usesInheritance: true, ngImport: i0, template: "<label [attr.for]=\"inputId\" class=\"mc-toggle-layout\">\r\n <div class=\"mc-toggle__container\" [class.left]=\"labelPosition === 'left'\">\r\n <input #input\r\n type=\"checkbox\"\r\n role=\"switch\"\r\n class=\"mc-toggle-input cdk-visually-hidden\"\r\n [id]=\"inputId\"\r\n [checked]=\"checked\"\r\n [attr.value]=\"value\"\r\n [disabled]=\"disabled\"\r\n [attr.name]=\"name\"\r\n [tabIndex]=\"tabIndex\"\r\n [attr.aria-label]=\"ariaLabel || null\"\r\n [attr.aria-labelledby]=\"ariaLabelledby\"\r\n [attr.aria-checked]=\"getAriaChecked()\"\r\n (click)=\"onInputClick($event)\"\r\n (change)=\"onChangeEvent($event)\"/>\r\n <div class=\"mc-toggle-bar-container\">\r\n <div class=\"mc-toggle__overlay\"></div>\r\n <div class=\"mc-toggle-bar\">\r\n <div class=\"mc-toggle__circle\" [@switch]=\"checked\"></div>\r\n </div>\r\n </div>\r\n <div class=\"mc-toggle__content\"\r\n [class.left]=\"labelPosition === 'left'\"\r\n [class.right]=\"labelPosition === 'right'\">\r\n <span class=\"mc-toggle-label\" (cdkObserveContent)=\"onLabelTextChange()\">\r\n <ng-content></ng-content>\r\n </span>\r\n </div>\r\n </div>\r\n</label>\r\n", styles: [".mc-toggle{display:inline-block}.mc-toggle .mc-toggle-layout{cursor:inherit;align-items:baseline;vertical-align:middle;display:inline-flex;white-space:nowrap}.mc-toggle .mc-toggle-bar{position:relative;border-width:1px;border-style:solid}.mc-toggle .mc-toggle-bar.mc-toggle-label-position-left{order:1}.mc-toggle .mc-toggle-bar-container{position:relative}.mc-toggle__container{display:flex;align-items:center;position:relative}.mc-toggle__container.left{flex-direction:row-reverse}.mc-toggle__content.left{margin-right:var(--mc-toggle-size-label-margin, 8px)}.mc-toggle__content.right{margin-left:var(--mc-toggle-size-label-margin, 8px)}.mc-toggle__circle{position:absolute;border-width:1px;border-style:solid;border-radius:100%;margin-top:-1px;margin-left:-1px;transform:translate(-1px)}.mc-toggle__overlay{position:absolute;top:0;left:0;z-index:1}.mc-toggle:not(.mc-toggle_small) .mc-toggle-bar{height:var(--mc-toggle-size-height, 16px);width:var(--mc-toggle-size-width, 28px);border-radius:var(--mc-toggle-size-border-radius, 9px)}.mc-toggle:not(.mc-toggle_small) .mc-toggle__overlay{border-radius:var(--mc-toggle-size-border-radius, 9px);height:var(--mc-toggle-size-height, 16px);width:var(--mc-toggle-size-width, 28px)}.mc-toggle:not(.mc-toggle_small) .mc-toggle__circle{height:var(--mc-toggle-size-height, 16px);width:var(--mc-toggle-size-height, 16px)}.mc-toggle.mc-toggle_small .mc-toggle-bar{height:var(--mc-toggle-small-size-height, 14px);width:var(--mc-toggle-small-size-width, 24px);border-radius:var(--mc-toggle-small-size-border-radius, 8px)}.mc-toggle.mc-toggle_small .mc-toggle__overlay{border-radius:var(--mc-toggle-small-size-border-radius, 8px);height:var(--mc-toggle-small-size-height, 14px);width:var(--mc-toggle-small-size-width, 24px)}.mc-toggle.mc-toggle_small .mc-toggle__circle{height:var(--mc-toggle-small-size-height, 14px);width:var(--mc-toggle-small-size-height, 14px)}.mc-toggle:not(.mc-disabled){cursor:pointer}\n"], animations: [
113
113
  trigger('switch', [
@@ -116,7 +116,7 @@ class McToggleComponent extends McToggleMixinBase {
116
116
  transition('true <=> false', animate('150ms'))
117
117
  ])
118
118
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
119
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McToggleComponent, decorators: [{
119
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McToggleComponent, decorators: [{
120
120
  type: Component,
121
121
  args: [{ selector: 'mc-toggle', exportAs: 'mcToggle', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, inputs: ['color', 'tabIndex'], host: {
122
122
  class: 'mc-toggle',
@@ -160,10 +160,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImpor
160
160
 
161
161
  class McToggleModule {
162
162
  }
163
- /** @nocollapse */ /** @nocollapse */ McToggleModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McToggleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
164
- /** @nocollapse */ /** @nocollapse */ McToggleModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McToggleModule, declarations: [McToggleComponent], imports: [CommonModule, A11yModule, McCommonModule], exports: [McToggleComponent] });
165
- /** @nocollapse */ /** @nocollapse */ McToggleModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McToggleModule, imports: [[CommonModule, A11yModule, McCommonModule]] });
166
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McToggleModule, decorators: [{
163
+ /** @nocollapse */ /** @nocollapse */ McToggleModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McToggleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
164
+ /** @nocollapse */ /** @nocollapse */ McToggleModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McToggleModule, declarations: [McToggleComponent], imports: [CommonModule, A11yModule, McCommonModule], exports: [McToggleComponent] });
165
+ /** @nocollapse */ /** @nocollapse */ McToggleModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McToggleModule, imports: [[CommonModule, A11yModule, McCommonModule]] });
166
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McToggleModule, decorators: [{
167
167
  type: NgModule,
168
168
  args: [{
169
169
  imports: [CommonModule, A11yModule, McCommonModule],
@@ -1 +1 @@
1
- {"version":3,"file":"ptsecurity-mosaic-toggle.mjs","sources":["../../../packages/mosaic/toggle/toggle.component.ts","../../../packages/mosaic/toggle/toggle.component.html","../../../packages/mosaic/toggle/toggle.module.ts","../../../packages/mosaic/toggle/ptsecurity-mosaic-toggle.ts"],"sourcesContent":["import { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { FocusMonitor } from '@angular/cdk/a11y';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n forwardRef,\r\n Input,\r\n Output,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport {\r\n ThemePalette,\r\n CanColor, CanColorCtor,\r\n CanDisable, CanDisableCtor,\r\n HasTabIndex, HasTabIndexCtor,\r\n mixinColor,\r\n mixinDisabled,\r\n mixinTabIndex\r\n} from '@ptsecurity/mosaic/core';\r\n\r\n\r\nlet nextUniqueId = 0;\r\n\r\ntype ToggleLabelPositionType = 'left' | 'right';\r\n\r\nexport class McToggleBase {\r\n // tslint:disable-next-line: naming-convention\r\n constructor(public _elementRef: ElementRef) {}\r\n}\r\n\r\n// tslint:disable-next-line: naming-convention\r\nexport const McToggleMixinBase:\r\n HasTabIndexCtor &\r\n CanDisableCtor &\r\n CanColorCtor &\r\n typeof McToggleBase = mixinTabIndex(mixinColor(mixinDisabled(McToggleBase), ThemePalette.Primary));\r\n\r\nexport class McToggleChange {\r\n source: McToggleComponent;\r\n checked: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'mc-toggle',\r\n exportAs: 'mcToggle',\r\n templateUrl: './toggle.component.html',\r\n styleUrls: ['./toggle.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n inputs: ['color', 'tabIndex'],\r\n host: {\r\n class: 'mc-toggle',\r\n '[id]': 'id',\r\n '[attr.id]': 'id',\r\n '[class.mc-disabled]': 'disabled',\r\n '[class.mc-active]': 'checked'\r\n },\r\n animations: [\r\n trigger('switch', [\r\n state('true' , style({ left: '50%' })),\r\n state('false', style({ left: '1px' })),\r\n transition('true <=> false', animate('150ms'))\r\n ])\r\n ],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => McToggleComponent), multi: true\r\n }]\r\n})\r\nexport class McToggleComponent extends McToggleMixinBase\r\n implements ControlValueAccessor, CanColor, CanDisable, HasTabIndex {\r\n\r\n @ViewChild('input', { static: false }) inputElement: ElementRef;\r\n\r\n @Input() labelPosition: ToggleLabelPositionType = 'right';\r\n\r\n @Input('aria-label') ariaLabel: string = '';\r\n @Input('aria-labelledby') ariaLabelledby: string | null = null;\r\n\r\n @Input() id: string;\r\n\r\n get inputId(): string {\r\n return `${this.id || this.uniqueId}-input`;\r\n }\r\n\r\n @Input() name: string | null = null;\r\n\r\n @Input() value: string;\r\n\r\n @Input()\r\n get disabled() {\r\n return this._disabled;\r\n }\r\n\r\n set disabled(value: any) {\r\n if (value !== this._disabled) {\r\n this._disabled = value;\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n }\r\n\r\n private _disabled: boolean = false;\r\n\r\n get checked() {\r\n return this._checked;\r\n }\r\n\r\n @Input()\r\n set checked(value: boolean) {\r\n if (value !== this._checked) {\r\n this._checked = value;\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n }\r\n\r\n private _checked: boolean = false;\r\n\r\n @Output() readonly change: EventEmitter<McToggleChange> = new EventEmitter<McToggleChange>();\r\n\r\n private uniqueId: string = `mc-toggle-${++nextUniqueId}`;\r\n\r\n constructor(\r\n // tslint:disable-next-line:naming-convention\r\n public _elementRef: ElementRef,\r\n private _focusMonitor: FocusMonitor,\r\n private _changeDetectorRef: ChangeDetectorRef\r\n ) {\r\n super(_elementRef);\r\n\r\n this.id = this.uniqueId;\r\n\r\n this._focusMonitor.monitor(this._elementRef.nativeElement, true);\r\n }\r\n\r\n ngOnDestroy() {\r\n this._focusMonitor.stopMonitoring(this._elementRef.nativeElement);\r\n }\r\n\r\n focus(): void {\r\n this._focusMonitor.focusVia(this.inputElement.nativeElement, 'keyboard');\r\n }\r\n\r\n getAriaChecked(): boolean {\r\n return this.checked;\r\n }\r\n\r\n onChangeEvent(event: Event) {\r\n event.stopPropagation();\r\n\r\n this.updateModelValue();\r\n this.emitChangeEvent();\r\n }\r\n\r\n onLabelTextChange() {\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n\r\n onInputClick(event: MouseEvent) {\r\n event.stopPropagation();\r\n }\r\n\r\n writeValue(value: any) {\r\n this.checked = !!value;\r\n }\r\n\r\n registerOnChange(fn: any) {\r\n this.onChangeCallback = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouchedCallback = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n // tslint:disable-next-line:no-empty\r\n private onTouchedCallback = () => {};\r\n\r\n // tslint:disable-next-line:no-empty\r\n private onChangeCallback = (_: any) => {};\r\n\r\n private updateModelValue() {\r\n this._checked = !this.checked;\r\n this.onTouchedCallback();\r\n }\r\n\r\n private emitChangeEvent() {\r\n const event = new McToggleChange();\r\n event.source = this;\r\n event.checked = this.checked;\r\n\r\n this.onChangeCallback(this.checked);\r\n this.change.emit(event);\r\n }\r\n}\r\n","<label [attr.for]=\"inputId\" class=\"mc-toggle-layout\">\r\n <div class=\"mc-toggle__container\" [class.left]=\"labelPosition === 'left'\">\r\n <input #input\r\n type=\"checkbox\"\r\n role=\"switch\"\r\n class=\"mc-toggle-input cdk-visually-hidden\"\r\n [id]=\"inputId\"\r\n [checked]=\"checked\"\r\n [attr.value]=\"value\"\r\n [disabled]=\"disabled\"\r\n [attr.name]=\"name\"\r\n [tabIndex]=\"tabIndex\"\r\n [attr.aria-label]=\"ariaLabel || null\"\r\n [attr.aria-labelledby]=\"ariaLabelledby\"\r\n [attr.aria-checked]=\"getAriaChecked()\"\r\n (click)=\"onInputClick($event)\"\r\n (change)=\"onChangeEvent($event)\"/>\r\n <div class=\"mc-toggle-bar-container\">\r\n <div class=\"mc-toggle__overlay\"></div>\r\n <div class=\"mc-toggle-bar\">\r\n <div class=\"mc-toggle__circle\" [@switch]=\"checked\"></div>\r\n </div>\r\n </div>\r\n <div class=\"mc-toggle__content\"\r\n [class.left]=\"labelPosition === 'left'\"\r\n [class.right]=\"labelPosition === 'right'\">\r\n <span class=\"mc-toggle-label\" (cdkObserveContent)=\"onLabelTextChange()\">\r\n <ng-content></ng-content>\r\n </span>\r\n </div>\r\n </div>\r\n</label>\r\n","import { A11yModule } from '@angular/cdk/a11y';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { McCommonModule } from '@ptsecurity/mosaic/core';\r\n\r\nimport { McToggleComponent } from './toggle.component';\r\n\r\n\r\n@NgModule({\r\n imports: [CommonModule, A11yModule, McCommonModule],\r\n exports: [McToggleComponent],\r\n declarations: [McToggleComponent]\r\n})\r\nexport class McToggleModule {\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ptsecurity-mosaic-toggle.mjs","sources":["../../../packages/mosaic/toggle/toggle.component.ts","../../../packages/mosaic/toggle/toggle.component.html","../../../packages/mosaic/toggle/toggle.module.ts","../../../packages/mosaic/toggle/ptsecurity-mosaic-toggle.ts"],"sourcesContent":["import { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { FocusMonitor } from '@angular/cdk/a11y';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n forwardRef,\r\n Input,\r\n Output,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport {\r\n ThemePalette,\r\n CanColor, CanColorCtor,\r\n CanDisable, CanDisableCtor,\r\n HasTabIndex, HasTabIndexCtor,\r\n mixinColor,\r\n mixinDisabled,\r\n mixinTabIndex\r\n} from '@ptsecurity/mosaic/core';\r\n\r\n\r\nlet nextUniqueId = 0;\r\n\r\ntype ToggleLabelPositionType = 'left' | 'right';\r\n\r\nexport class McToggleBase {\r\n // tslint:disable-next-line: naming-convention\r\n constructor(public _elementRef: ElementRef) {}\r\n}\r\n\r\n// tslint:disable-next-line: naming-convention\r\nexport const McToggleMixinBase:\r\n HasTabIndexCtor &\r\n CanDisableCtor &\r\n CanColorCtor &\r\n typeof McToggleBase = mixinTabIndex(mixinColor(mixinDisabled(McToggleBase), ThemePalette.Primary));\r\n\r\nexport class McToggleChange {\r\n source: McToggleComponent;\r\n checked: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'mc-toggle',\r\n exportAs: 'mcToggle',\r\n templateUrl: './toggle.component.html',\r\n styleUrls: ['./toggle.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n inputs: ['color', 'tabIndex'],\r\n host: {\r\n class: 'mc-toggle',\r\n '[id]': 'id',\r\n '[attr.id]': 'id',\r\n '[class.mc-disabled]': 'disabled',\r\n '[class.mc-active]': 'checked'\r\n },\r\n animations: [\r\n trigger('switch', [\r\n state('true' , style({ left: '50%' })),\r\n state('false', style({ left: '1px' })),\r\n transition('true <=> false', animate('150ms'))\r\n ])\r\n ],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => McToggleComponent), multi: true\r\n }]\r\n})\r\nexport class McToggleComponent extends McToggleMixinBase\r\n implements ControlValueAccessor, CanColor, CanDisable, HasTabIndex {\r\n\r\n @ViewChild('input', { static: false }) inputElement: ElementRef;\r\n\r\n @Input() labelPosition: ToggleLabelPositionType = 'right';\r\n\r\n @Input('aria-label') ariaLabel: string = '';\r\n @Input('aria-labelledby') ariaLabelledby: string | null = null;\r\n\r\n @Input() id: string;\r\n\r\n get inputId(): string {\r\n return `${this.id || this.uniqueId}-input`;\r\n }\r\n\r\n @Input() name: string | null = null;\r\n\r\n @Input() value: string;\r\n\r\n @Input()\r\n get disabled() {\r\n return this._disabled;\r\n }\r\n\r\n set disabled(value: any) {\r\n if (value !== this._disabled) {\r\n this._disabled = value;\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n }\r\n\r\n private _disabled: boolean = false;\r\n\r\n get checked() {\r\n return this._checked;\r\n }\r\n\r\n @Input()\r\n set checked(value: boolean) {\r\n if (value !== this._checked) {\r\n this._checked = value;\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n }\r\n\r\n private _checked: boolean = false;\r\n\r\n @Output() readonly change: EventEmitter<McToggleChange> = new EventEmitter<McToggleChange>();\r\n\r\n private uniqueId: string = `mc-toggle-${++nextUniqueId}`;\r\n\r\n constructor(\r\n // tslint:disable-next-line:naming-convention\r\n public _elementRef: ElementRef,\r\n private _focusMonitor: FocusMonitor,\r\n private _changeDetectorRef: ChangeDetectorRef\r\n ) {\r\n super(_elementRef);\r\n\r\n this.id = this.uniqueId;\r\n\r\n this._focusMonitor.monitor(this._elementRef.nativeElement, true);\r\n }\r\n\r\n ngOnDestroy() {\r\n this._focusMonitor.stopMonitoring(this._elementRef.nativeElement);\r\n }\r\n\r\n focus(): void {\r\n this._focusMonitor.focusVia(this.inputElement.nativeElement, 'keyboard');\r\n }\r\n\r\n getAriaChecked(): boolean {\r\n return this.checked;\r\n }\r\n\r\n onChangeEvent(event: Event) {\r\n event.stopPropagation();\r\n\r\n this.updateModelValue();\r\n this.emitChangeEvent();\r\n }\r\n\r\n onLabelTextChange() {\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n\r\n onInputClick(event: MouseEvent) {\r\n event.stopPropagation();\r\n }\r\n\r\n writeValue(value: any) {\r\n this.checked = !!value;\r\n }\r\n\r\n registerOnChange(fn: any) {\r\n this.onChangeCallback = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouchedCallback = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n // tslint:disable-next-line:no-empty\r\n private onTouchedCallback = () => {};\r\n\r\n // tslint:disable-next-line:no-empty\r\n private onChangeCallback = (_: any) => {};\r\n\r\n private updateModelValue() {\r\n this._checked = !this.checked;\r\n this.onTouchedCallback();\r\n }\r\n\r\n private emitChangeEvent() {\r\n const event = new McToggleChange();\r\n event.source = this;\r\n event.checked = this.checked;\r\n\r\n this.onChangeCallback(this.checked);\r\n this.change.emit(event);\r\n }\r\n}\r\n","<label [attr.for]=\"inputId\" class=\"mc-toggle-layout\">\r\n <div class=\"mc-toggle__container\" [class.left]=\"labelPosition === 'left'\">\r\n <input #input\r\n type=\"checkbox\"\r\n role=\"switch\"\r\n class=\"mc-toggle-input cdk-visually-hidden\"\r\n [id]=\"inputId\"\r\n [checked]=\"checked\"\r\n [attr.value]=\"value\"\r\n [disabled]=\"disabled\"\r\n [attr.name]=\"name\"\r\n [tabIndex]=\"tabIndex\"\r\n [attr.aria-label]=\"ariaLabel || null\"\r\n [attr.aria-labelledby]=\"ariaLabelledby\"\r\n [attr.aria-checked]=\"getAriaChecked()\"\r\n (click)=\"onInputClick($event)\"\r\n (change)=\"onChangeEvent($event)\"/>\r\n <div class=\"mc-toggle-bar-container\">\r\n <div class=\"mc-toggle__overlay\"></div>\r\n <div class=\"mc-toggle-bar\">\r\n <div class=\"mc-toggle__circle\" [@switch]=\"checked\"></div>\r\n </div>\r\n </div>\r\n <div class=\"mc-toggle__content\"\r\n [class.left]=\"labelPosition === 'left'\"\r\n [class.right]=\"labelPosition === 'right'\">\r\n <span class=\"mc-toggle-label\" (cdkObserveContent)=\"onLabelTextChange()\">\r\n <ng-content></ng-content>\r\n </span>\r\n </div>\r\n </div>\r\n</label>\r\n","import { A11yModule } from '@angular/cdk/a11y';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { McCommonModule } from '@ptsecurity/mosaic/core';\r\n\r\nimport { McToggleComponent } from './toggle.component';\r\n\r\n\r\n@NgModule({\r\n imports: [CommonModule, A11yModule, McCommonModule],\r\n exports: [McToggleComponent],\r\n declarations: [McToggleComponent]\r\n})\r\nexport class McToggleModule {\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}