@ptsecurity/mosaic 13.6.1 → 13.7.2

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 (907) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +6 -6
  3. package/_theming.scss +7238 -7141
  4. package/_visual.scss +2724 -2695
  5. package/autocomplete/autocomplete-origin.directive.d.ts +12 -12
  6. package/autocomplete/autocomplete-trigger.directive.d.ts +167 -167
  7. package/autocomplete/autocomplete.component.d.ts +73 -73
  8. package/autocomplete/autocomplete.module.d.ts +12 -12
  9. package/autocomplete/index.d.ts +1 -1
  10. package/autocomplete/ptsecurity-mosaic-autocomplete.d.ts +5 -5
  11. package/autocomplete/public-api.d.ts +4 -4
  12. package/button/button.component.d.ts +40 -40
  13. package/button/button.module.d.ts +10 -10
  14. package/button/index.d.ts +1 -1
  15. package/button/ptsecurity-mosaic-button.d.ts +5 -5
  16. package/button/public-api.d.ts +2 -2
  17. package/button-toggle/button-toggle.component.d.ts +141 -141
  18. package/button-toggle/button-toggle.module.d.ts +9 -9
  19. package/button-toggle/index.d.ts +1 -1
  20. package/button-toggle/ptsecurity-mosaic-button-toggle.d.ts +5 -5
  21. package/button-toggle/public-api.d.ts +2 -2
  22. package/card/card.component.d.ts +26 -26
  23. package/card/card.module.d.ts +10 -10
  24. package/card/index.d.ts +1 -1
  25. package/card/ptsecurity-mosaic-card.d.ts +5 -5
  26. package/card/public-api.d.ts +2 -2
  27. package/checkbox/README.md +1 -1
  28. package/checkbox/checkbox-config.d.ts +13 -13
  29. package/checkbox/checkbox-module.d.ts +9 -9
  30. package/checkbox/checkbox-required-validator.d.ts +13 -13
  31. package/checkbox/checkbox.d.ts +140 -140
  32. package/checkbox/index.d.ts +1 -1
  33. package/checkbox/ptsecurity-mosaic-checkbox.d.ts +5 -5
  34. package/checkbox/public-api.d.ts +4 -4
  35. package/core/animation/animation.d.ts +6 -6
  36. package/core/animation/fade-animations.d.ts +2 -2
  37. package/core/animation/index.d.ts +3 -3
  38. package/core/animation/select-animations.d.ts +12 -12
  39. package/core/common-behaviors/color.d.ts +19 -19
  40. package/core/common-behaviors/common-module.d.ts +25 -25
  41. package/core/common-behaviors/constructor.d.ts +9 -9
  42. package/core/common-behaviors/disabled.d.ts +8 -8
  43. package/core/common-behaviors/error-state.d.ts +25 -25
  44. package/core/common-behaviors/index.d.ts +5 -5
  45. package/core/common-behaviors/tabindex.d.ts +8 -8
  46. package/core/error/error-options.d.ts +14 -14
  47. package/core/formatters/date/formatter.d.ts +203 -203
  48. package/core/formatters/date/templates/en-US.d.ts +74 -74
  49. package/core/formatters/date/templates/ru-RU.d.ts +74 -74
  50. package/core/formatters/index.d.ts +9 -9
  51. package/core/formatters/number/formatter.d.ts +27 -27
  52. package/core/forms/forms-module.d.ts +7 -7
  53. package/core/forms/forms.directive.d.ts +22 -22
  54. package/core/forms/index.d.ts +2 -2
  55. package/core/highlight/highlight.pipe.d.ts +7 -7
  56. package/core/highlight/index.d.ts +9 -9
  57. package/core/index.d.ts +1 -1
  58. package/core/label/label-options.d.ts +13 -13
  59. package/core/line/line.d.ts +28 -28
  60. package/core/option/action.d.ts +42 -42
  61. package/core/option/index.d.ts +4 -4
  62. package/core/option/optgroup.d.ts +16 -16
  63. package/core/option/option-module.d.ts +11 -11
  64. package/core/option/option.d.ts +115 -115
  65. package/core/overlay/overlay-position-map.d.ts +34 -34
  66. package/core/pop-up/constants.d.ts +29 -29
  67. package/core/pop-up/index.d.ts +3 -3
  68. package/core/pop-up/pop-up-trigger.d.ts +70 -70
  69. package/core/pop-up/pop-up.d.ts +36 -36
  70. package/core/ptsecurity-mosaic-core.d.ts +5 -5
  71. package/core/public-api.d.ts +17 -17
  72. package/core/select/constants.d.ts +23 -23
  73. package/core/select/errors.d.ts +19 -19
  74. package/core/select/events.d.ts +1 -1
  75. package/core/select/index.d.ts +3 -3
  76. package/core/selection/constants.d.ts +4 -4
  77. package/core/selection/index.d.ts +3 -3
  78. package/core/selection/pseudo-checkbox/pseudo-checkbox.d.ts +30 -30
  79. package/core/selection/pseudo-checkbox/pseudo-checkbox.module.d.ts +8 -8
  80. package/core/services/measure-scrollbar.service.d.ts +11 -11
  81. package/core/utils/index.d.ts +1 -1
  82. package/core/utils/public-api.d.ts +1 -1
  83. package/core/utils/utils.d.ts +2 -2
  84. package/core/validation/index.d.ts +1 -1
  85. package/core/validation/validation.d.ts +18 -18
  86. package/core/version.d.ts +2 -2
  87. package/datepicker/calendar-body.component.d.ts +63 -63
  88. package/datepicker/calendar.component.d.ts +151 -151
  89. package/datepicker/datepicker-animations.d.ts +9 -9
  90. package/datepicker/datepicker-errors.d.ts +2 -2
  91. package/datepicker/datepicker-input.directive.d.ts +178 -178
  92. package/datepicker/datepicker-intl.d.ts +32 -32
  93. package/datepicker/datepicker-module.d.ts +20 -20
  94. package/datepicker/datepicker-toggle.component.d.ts +35 -35
  95. package/datepicker/datepicker.component.d.ts +158 -158
  96. package/datepicker/index.d.ts +1 -1
  97. package/datepicker/month-view.component.d.ts +93 -93
  98. package/datepicker/multi-year-view.component.d.ts +72 -72
  99. package/datepicker/ptsecurity-mosaic-datepicker.d.ts +5 -5
  100. package/datepicker/public-api.d.ts +11 -11
  101. package/datepicker/year-view.component.d.ts +90 -90
  102. package/design-tokens/index.d.ts +1 -1
  103. package/design-tokens/legacy-2017/tokens/components/alert.json5 +83 -83
  104. package/design-tokens/legacy-2017/tokens/components/autocomplete.json5 +11 -11
  105. package/design-tokens/legacy-2017/tokens/components/badge.json5 +174 -174
  106. package/design-tokens/legacy-2017/tokens/components/button-toggle.json5 +10 -10
  107. package/design-tokens/legacy-2017/tokens/components/button.json5 +142 -142
  108. package/design-tokens/legacy-2017/tokens/components/card.json5 +51 -51
  109. package/design-tokens/legacy-2017/tokens/components/checkbox.json5 +97 -97
  110. package/design-tokens/legacy-2017/tokens/components/datepicker.json5 +64 -64
  111. package/design-tokens/legacy-2017/tokens/components/divider.json5 +14 -14
  112. package/design-tokens/legacy-2017/tokens/components/dl.json5 +38 -38
  113. package/design-tokens/legacy-2017/tokens/components/dropdown.json5 +48 -48
  114. package/design-tokens/legacy-2017/tokens/components/form-field.json5 +92 -92
  115. package/design-tokens/legacy-2017/tokens/components/forms.json5 +52 -52
  116. package/design-tokens/legacy-2017/tokens/components/icon.json5 +104 -104
  117. package/design-tokens/legacy-2017/tokens/components/input.json5 +12 -12
  118. package/design-tokens/legacy-2017/tokens/components/link.json5 +50 -50
  119. package/design-tokens/legacy-2017/tokens/components/list.json5 +13 -13
  120. package/design-tokens/legacy-2017/tokens/components/loader-overlay.json5 +23 -0
  121. package/design-tokens/legacy-2017/tokens/components/modal.json5 +81 -81
  122. package/design-tokens/legacy-2017/tokens/components/navbar.json5 +70 -70
  123. package/design-tokens/legacy-2017/tokens/components/optgroup.json5 +10 -10
  124. package/design-tokens/legacy-2017/tokens/components/option.json5 +12 -12
  125. package/design-tokens/legacy-2017/tokens/components/popover.json5 +68 -68
  126. package/design-tokens/legacy-2017/tokens/components/popup.json5 +16 -16
  127. package/design-tokens/legacy-2017/tokens/components/progress-bar.json5 +13 -13
  128. package/design-tokens/legacy-2017/tokens/components/progress-spinner.json5 +7 -7
  129. package/design-tokens/legacy-2017/tokens/components/radio.json5 +45 -45
  130. package/design-tokens/legacy-2017/tokens/components/select.json5 +24 -24
  131. package/design-tokens/legacy-2017/tokens/components/sidepanel.json5 +44 -44
  132. package/design-tokens/legacy-2017/tokens/components/table.json5 +15 -15
  133. package/design-tokens/legacy-2017/tokens/components/tabs.json5 +101 -101
  134. package/design-tokens/legacy-2017/tokens/components/tags.json5 +134 -134
  135. package/design-tokens/legacy-2017/tokens/components/textarea.json5 +12 -12
  136. package/design-tokens/legacy-2017/tokens/components/timepicker.json5 +7 -7
  137. package/design-tokens/legacy-2017/tokens/components/toggle.json5 +79 -79
  138. package/design-tokens/legacy-2017/tokens/components/tooltip.json5 +83 -83
  139. package/design-tokens/legacy-2017/tokens/components/tree.json5 +15 -15
  140. package/design-tokens/legacy-2017/tokens/properties/aliases.json5 +3 -3
  141. package/design-tokens/legacy-2017/tokens/properties/colors.json5 +119 -119
  142. package/design-tokens/legacy-2017/tokens/properties/font.json5 +12 -12
  143. package/design-tokens/legacy-2017/tokens/properties/globals.json5 +49 -49
  144. package/design-tokens/legacy-2017/tokens/properties/padding.json5 +3 -3
  145. package/design-tokens/legacy-2017/tokens/properties/palette.json5 +163 -163
  146. package/design-tokens/legacy-2017/tokens/properties/typography.json5 +175 -175
  147. package/design-tokens/legacy-2017/tokens.d.ts +7873 -7844
  148. package/design-tokens/pt-2022/tokens/components/alert.json5 +83 -83
  149. package/design-tokens/pt-2022/tokens/components/autocomplete.json5 +11 -11
  150. package/design-tokens/pt-2022/tokens/components/badge.json5 +174 -174
  151. package/design-tokens/pt-2022/tokens/components/button-toggle.json5 +10 -10
  152. package/design-tokens/pt-2022/tokens/components/button.json5 +142 -142
  153. package/design-tokens/pt-2022/tokens/components/card.json5 +51 -51
  154. package/design-tokens/pt-2022/tokens/components/checkbox.json5 +97 -97
  155. package/design-tokens/pt-2022/tokens/components/datepicker.json5 +64 -64
  156. package/design-tokens/pt-2022/tokens/components/divider.json5 +14 -14
  157. package/design-tokens/pt-2022/tokens/components/dl.json5 +38 -38
  158. package/design-tokens/pt-2022/tokens/components/dropdown.json5 +48 -48
  159. package/design-tokens/pt-2022/tokens/components/form-field.json5 +92 -92
  160. package/design-tokens/pt-2022/tokens/components/forms.json5 +52 -52
  161. package/design-tokens/pt-2022/tokens/components/icon.json5 +104 -104
  162. package/design-tokens/pt-2022/tokens/components/input.json5 +12 -12
  163. package/design-tokens/pt-2022/tokens/components/link.json5 +50 -50
  164. package/design-tokens/pt-2022/tokens/components/list.json5 +13 -13
  165. package/design-tokens/pt-2022/tokens/components/loader-overlay.json5 +23 -0
  166. package/design-tokens/pt-2022/tokens/components/modal.json5 +81 -81
  167. package/design-tokens/pt-2022/tokens/components/navbar.json5 +70 -70
  168. package/design-tokens/pt-2022/tokens/components/optgroup.json5 +10 -10
  169. package/design-tokens/pt-2022/tokens/components/option.json5 +12 -12
  170. package/design-tokens/pt-2022/tokens/components/popover.json5 +68 -68
  171. package/design-tokens/pt-2022/tokens/components/popup.json5 +16 -16
  172. package/design-tokens/pt-2022/tokens/components/progress-bar.json5 +13 -13
  173. package/design-tokens/pt-2022/tokens/components/progress-spinner.json5 +7 -7
  174. package/design-tokens/pt-2022/tokens/components/radio.json5 +45 -45
  175. package/design-tokens/pt-2022/tokens/components/select.json5 +24 -24
  176. package/design-tokens/pt-2022/tokens/components/sidepanel.json5 +44 -44
  177. package/design-tokens/pt-2022/tokens/components/table.json5 +15 -15
  178. package/design-tokens/pt-2022/tokens/components/tabs.json5 +101 -101
  179. package/design-tokens/pt-2022/tokens/components/tags.json5 +137 -137
  180. package/design-tokens/pt-2022/tokens/components/textarea.json5 +12 -12
  181. package/design-tokens/pt-2022/tokens/components/timepicker.json5 +7 -7
  182. package/design-tokens/pt-2022/tokens/components/toggle.json5 +79 -79
  183. package/design-tokens/pt-2022/tokens/components/tooltip.json5 +83 -83
  184. package/design-tokens/pt-2022/tokens/components/tree.json5 +15 -15
  185. package/design-tokens/pt-2022/tokens/properties/aliases.json5 +3 -3
  186. package/design-tokens/pt-2022/tokens/properties/colors.json5 +122 -122
  187. package/design-tokens/pt-2022/tokens/properties/font.json5 +15 -15
  188. package/design-tokens/pt-2022/tokens/properties/globals.json5 +49 -49
  189. package/design-tokens/pt-2022/tokens/properties/padding.json5 +3 -3
  190. package/design-tokens/pt-2022/tokens/properties/palette.json5 +232 -232
  191. package/design-tokens/pt-2022/tokens/properties/typography.json5 +175 -175
  192. package/design-tokens/pt-2022/tokens.d.ts +9205 -9176
  193. package/design-tokens/ptsecurity-mosaic-design-tokens.d.ts +5 -5
  194. package/design-tokens/public-api.d.ts +3 -3
  195. package/design-tokens/style-dictionary/build.js +76 -63
  196. package/design-tokens/style-dictionary/configs/css.js +13 -13
  197. package/design-tokens/style-dictionary/configs/figma.js +11 -0
  198. package/design-tokens/style-dictionary/configs/index.js +48 -48
  199. package/design-tokens/style-dictionary/configs/js.js +9 -9
  200. package/design-tokens/style-dictionary/configs/scss.js +23 -23
  201. package/design-tokens/style-dictionary/figma-types.js +41 -0
  202. package/design-tokens/style-dictionary/filters/color.js +7 -7
  203. package/design-tokens/style-dictionary/filters/palette.js +7 -7
  204. package/design-tokens/style-dictionary/filters/size.js +7 -7
  205. package/design-tokens/style-dictionary/filters/typography.js +7 -7
  206. package/design-tokens/style-dictionary/formats/figma.js +104 -0
  207. package/design-tokens/style-dictionary/formats/palette.js +25 -25
  208. package/design-tokens/style-dictionary/formats/typography.js +52 -52
  209. package/design-tokens/style-dictionary/transformGroups/css.js +13 -13
  210. package/design-tokens/style-dictionary/transformGroups/figma.js +21 -0
  211. package/design-tokens/style-dictionary/transformGroups/scss.js +12 -12
  212. package/design-tokens/style-dictionary/transformGroups/ts.js +11 -11
  213. package/design-tokens/style-dictionary/transforms/attribute/figma-border.js +18 -0
  214. package/design-tokens/style-dictionary/transforms/attribute/figma-color.js +25 -0
  215. package/design-tokens/style-dictionary/transforms/attribute/figma-default.js +10 -0
  216. package/design-tokens/style-dictionary/transforms/attribute/figma-font.js +31 -0
  217. package/design-tokens/style-dictionary/transforms/attribute/figma-group.js +17 -0
  218. package/design-tokens/style-dictionary/transforms/attribute/figma-opacity.js +10 -0
  219. package/design-tokens/style-dictionary/transforms/attribute/figma-shadow.js +66 -0
  220. package/design-tokens/style-dictionary/transforms/attribute/figma-sizing.js +16 -0
  221. package/design-tokens/style-dictionary/transforms/attribute/figma-spacing.js +15 -0
  222. package/design-tokens/style-dictionary/transforms/attribute/figma-typography.js +24 -0
  223. package/design-tokens/style-dictionary/transforms/attribute/palette.js +9 -9
  224. package/design-tokens/style-dictionary/transforms/attribute/prefix.js +11 -11
  225. package/design-tokens/style-dictionary/transforms/attribute/size.js +8 -8
  226. package/design-tokens/style-dictionary/transforms/attribute/typography.js +9 -9
  227. package/design-tokens/style-dictionary/transforms/value/figma-values.js +7 -0
  228. package/divider/divider.component.d.ts +11 -11
  229. package/divider/divider.module.d.ts +8 -8
  230. package/divider/index.d.ts +1 -1
  231. package/divider/ptsecurity-mosaic-divider.d.ts +5 -5
  232. package/divider/public-api.d.ts +2 -2
  233. package/dl/dl.component.d.ts +26 -26
  234. package/dl/dl.module.d.ts +10 -10
  235. package/dl/index.d.ts +1 -1
  236. package/dl/ptsecurity-mosaic-dl.d.ts +5 -5
  237. package/dl/public-api.d.ts +2 -2
  238. package/dropdown/dropdown-animations.d.ts +11 -11
  239. package/dropdown/dropdown-content.directive.d.ts +32 -32
  240. package/dropdown/dropdown-errors.d.ts +17 -17
  241. package/dropdown/dropdown-item.component.d.ts +50 -50
  242. package/dropdown/dropdown-trigger.directive.d.ts +136 -136
  243. package/dropdown/dropdown.component.d.ts +121 -121
  244. package/dropdown/dropdown.module.d.ts +13 -13
  245. package/dropdown/dropdown.types.d.ts +53 -53
  246. package/dropdown/index.d.ts +1 -1
  247. package/dropdown/ptsecurity-mosaic-dropdown.d.ts +5 -5
  248. package/dropdown/public-api.d.ts +8 -8
  249. package/esm2020/autocomplete/autocomplete-origin.directive.mjs +21 -21
  250. package/esm2020/autocomplete/autocomplete-trigger.directive.mjs +555 -555
  251. package/esm2020/autocomplete/autocomplete.component.mjs +154 -154
  252. package/esm2020/autocomplete/autocomplete.module.mjs +34 -34
  253. package/esm2020/autocomplete/index.mjs +2 -2
  254. package/esm2020/autocomplete/ptsecurity-mosaic-autocomplete.mjs +4 -4
  255. package/esm2020/autocomplete/public-api.mjs +5 -5
  256. package/esm2020/button/button.component.mjs +137 -137
  257. package/esm2020/button/button.module.mjs +38 -38
  258. package/esm2020/button/index.mjs +2 -2
  259. package/esm2020/button/ptsecurity-mosaic-button.mjs +4 -4
  260. package/esm2020/button/public-api.mjs +3 -3
  261. package/esm2020/button-toggle/button-toggle.component.mjs +362 -362
  262. package/esm2020/button-toggle/button-toggle.module.mjs +19 -19
  263. package/esm2020/button-toggle/index.mjs +2 -2
  264. package/esm2020/button-toggle/ptsecurity-mosaic-button-toggle.mjs +4 -4
  265. package/esm2020/button-toggle/public-api.mjs +3 -3
  266. package/esm2020/card/card.component.mjs +80 -80
  267. package/esm2020/card/card.module.mjs +30 -30
  268. package/esm2020/card/index.mjs +2 -2
  269. package/esm2020/card/ptsecurity-mosaic-card.mjs +4 -4
  270. package/esm2020/card/public-api.mjs +3 -3
  271. package/esm2020/checkbox/checkbox-config.mjs +6 -6
  272. package/esm2020/checkbox/checkbox-module.mjs +19 -19
  273. package/esm2020/checkbox/checkbox-required-validator.mjs +27 -27
  274. package/esm2020/checkbox/checkbox.mjs +316 -316
  275. package/esm2020/checkbox/index.mjs +2 -2
  276. package/esm2020/checkbox/ptsecurity-mosaic-checkbox.mjs +4 -4
  277. package/esm2020/checkbox/public-api.mjs +5 -5
  278. package/esm2020/core/animation/animation.mjs +8 -8
  279. package/esm2020/core/animation/fade-animations.mjs +9 -9
  280. package/esm2020/core/animation/index.mjs +4 -4
  281. package/esm2020/core/animation/select-animations.mjs +45 -45
  282. package/esm2020/core/common-behaviors/color.mjs +30 -30
  283. package/esm2020/core/common-behaviors/common-module.mjs +83 -83
  284. package/esm2020/core/common-behaviors/constructor.mjs +2 -2
  285. package/esm2020/core/common-behaviors/disabled.mjs +17 -17
  286. package/esm2020/core/common-behaviors/error-state.mjs +31 -31
  287. package/esm2020/core/common-behaviors/index.mjs +6 -6
  288. package/esm2020/core/common-behaviors/tabindex.mjs +18 -18
  289. package/esm2020/core/error/error-options.mjs +26 -26
  290. package/esm2020/core/formatters/date/formatter.mjs +359 -359
  291. package/esm2020/core/formatters/date/templates/en-US.mjs +281 -281
  292. package/esm2020/core/formatters/date/templates/ru-RU.mjs +281 -281
  293. package/esm2020/core/formatters/index.mjs +20 -20
  294. package/esm2020/core/formatters/number/formatter.mjs +105 -105
  295. package/esm2020/core/forms/forms-module.mjs +24 -24
  296. package/esm2020/core/forms/forms.directive.mjs +66 -66
  297. package/esm2020/core/forms/index.mjs +3 -3
  298. package/esm2020/core/highlight/highlight.pipe.mjs +17 -17
  299. package/esm2020/core/highlight/index.mjs +19 -19
  300. package/esm2020/core/index.mjs +2 -2
  301. package/esm2020/core/label/label-options.mjs +4 -4
  302. package/esm2020/core/line/line.mjs +70 -70
  303. package/esm2020/core/option/action.mjs +121 -121
  304. package/esm2020/core/option/index.mjs +5 -5
  305. package/esm2020/core/option/optgroup.mjs +31 -31
  306. package/esm2020/core/option/option-module.mjs +21 -21
  307. package/esm2020/core/option/option.mjs +257 -257
  308. package/esm2020/core/overlay/overlay-position-map.mjs +244 -244
  309. package/esm2020/core/pop-up/constants.mjs +34 -34
  310. package/esm2020/core/pop-up/index.mjs +4 -4
  311. package/esm2020/core/pop-up/pop-up-trigger.mjs +239 -239
  312. package/esm2020/core/pop-up/pop-up.mjs +94 -94
  313. package/esm2020/core/ptsecurity-mosaic-core.mjs +4 -4
  314. package/esm2020/core/public-api.mjs +18 -18
  315. package/esm2020/core/select/constants.mjs +27 -27
  316. package/esm2020/core/select/errors.mjs +26 -26
  317. package/esm2020/core/select/events.mjs +2 -2
  318. package/esm2020/core/select/index.mjs +4 -4
  319. package/esm2020/core/selection/constants.mjs +6 -6
  320. package/esm2020/core/selection/index.mjs +4 -4
  321. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +49 -49
  322. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.module.mjs +18 -18
  323. package/esm2020/core/services/measure-scrollbar.service.mjs +48 -48
  324. package/esm2020/core/utils/index.mjs +2 -2
  325. package/esm2020/core/utils/public-api.mjs +2 -2
  326. package/esm2020/core/utils/utils.mjs +5 -5
  327. package/esm2020/core/validation/index.mjs +2 -2
  328. package/esm2020/core/validation/validation.mjs +118 -118
  329. package/esm2020/core/version.mjs +3 -3
  330. package/esm2020/datepicker/calendar-body.component.mjs +106 -106
  331. package/esm2020/datepicker/calendar.component.mjs +362 -362
  332. package/esm2020/datepicker/datepicker-animations.mjs +32 -32
  333. package/esm2020/datepicker/datepicker-errors.mjs +6 -6
  334. package/esm2020/datepicker/datepicker-input.directive.mjs +938 -938
  335. package/esm2020/datepicker/datepicker-intl.mjs +40 -40
  336. package/esm2020/datepicker/datepicker-module.mjs +107 -107
  337. package/esm2020/datepicker/datepicker-toggle.component.mjs +86 -86
  338. package/esm2020/datepicker/datepicker.component.mjs +404 -404
  339. package/esm2020/datepicker/index.mjs +2 -2
  340. package/esm2020/datepicker/month-view.component.mjs +257 -257
  341. package/esm2020/datepicker/multi-year-view.component.mjs +218 -218
  342. package/esm2020/datepicker/ptsecurity-mosaic-datepicker.mjs +4 -4
  343. package/esm2020/datepicker/public-api.mjs +12 -12
  344. package/esm2020/datepicker/year-view.component.mjs +253 -253
  345. package/esm2020/design-tokens/index.mjs +2 -2
  346. package/esm2020/design-tokens/legacy-2017/tokens.mjs +1167 -1138
  347. package/esm2020/design-tokens/pt-2022/tokens.mjs +1237 -1208
  348. package/esm2020/design-tokens/ptsecurity-mosaic-design-tokens.mjs +4 -4
  349. package/esm2020/design-tokens/public-api.mjs +4 -4
  350. package/esm2020/divider/divider.component.mjs +39 -39
  351. package/esm2020/divider/divider.module.mjs +18 -18
  352. package/esm2020/divider/index.mjs +2 -2
  353. package/esm2020/divider/ptsecurity-mosaic-divider.mjs +4 -4
  354. package/esm2020/divider/public-api.mjs +3 -3
  355. package/esm2020/dl/dl.component.mjs +78 -78
  356. package/esm2020/dl/dl.module.mjs +42 -42
  357. package/esm2020/dl/index.mjs +2 -2
  358. package/esm2020/dl/ptsecurity-mosaic-dl.mjs +4 -4
  359. package/esm2020/dl/public-api.mjs +3 -3
  360. package/esm2020/dropdown/dropdown-animations.mjs +41 -41
  361. package/esm2020/dropdown/dropdown-content.directive.mjs +64 -64
  362. package/esm2020/dropdown/dropdown-errors.mjs +29 -29
  363. package/esm2020/dropdown/dropdown-item.component.mjs +139 -139
  364. package/esm2020/dropdown/dropdown-trigger.directive.mjs +489 -489
  365. package/esm2020/dropdown/dropdown.component.mjs +292 -292
  366. package/esm2020/dropdown/dropdown.module.mjs +50 -50
  367. package/esm2020/dropdown/dropdown.types.mjs +24 -24
  368. package/esm2020/dropdown/index.mjs +2 -2
  369. package/esm2020/dropdown/ptsecurity-mosaic-dropdown.mjs +4 -4
  370. package/esm2020/dropdown/public-api.mjs +9 -9
  371. package/esm2020/form-field/cleaner.mjs +23 -23
  372. package/esm2020/form-field/form-field-control.mjs +5 -5
  373. package/esm2020/form-field/form-field-errors.mjs +7 -7
  374. package/esm2020/form-field/form-field.mjs +225 -225
  375. package/esm2020/form-field/form-field.module.mjs +57 -57
  376. package/esm2020/form-field/hint.mjs +34 -23
  377. package/esm2020/form-field/index.mjs +2 -2
  378. package/esm2020/form-field/password-hint.mjs +139 -139
  379. package/esm2020/form-field/prefix.mjs +13 -13
  380. package/esm2020/form-field/ptsecurity-mosaic-form-field.mjs +4 -4
  381. package/esm2020/form-field/public-api.mjs +11 -11
  382. package/esm2020/form-field/stepper.mjs +55 -55
  383. package/esm2020/form-field/suffix.mjs +13 -13
  384. package/esm2020/icon/icon.component.mjs +44 -44
  385. package/esm2020/icon/icon.module.mjs +38 -38
  386. package/esm2020/icon/index.mjs +2 -2
  387. package/esm2020/icon/ptsecurity-mosaic-icon.mjs +4 -4
  388. package/esm2020/icon/public-api.mjs +3 -3
  389. package/esm2020/index.mjs +2 -2
  390. package/esm2020/input/index.mjs +2 -2
  391. package/esm2020/input/input-errors.mjs +4 -4
  392. package/esm2020/input/input-number-validators.mjs +92 -92
  393. package/esm2020/input/input-number.mjs +163 -163
  394. package/esm2020/input/input-password.mjs +372 -372
  395. package/esm2020/input/input-value-accessor.mjs +3 -3
  396. package/esm2020/input/input.mjs +334 -334
  397. package/esm2020/input/input.module.mjs +65 -65
  398. package/esm2020/input/ptsecurity-mosaic-input.mjs +4 -4
  399. package/esm2020/input/public-api.mjs +7 -7
  400. package/esm2020/link/index.mjs +2 -2
  401. package/esm2020/link/link.component.mjs +107 -107
  402. package/esm2020/link/link.module.mjs +26 -26
  403. package/esm2020/link/ptsecurity-mosaic-link.mjs +4 -4
  404. package/esm2020/link/public-api.mjs +3 -3
  405. package/esm2020/list/index.mjs +2 -2
  406. package/esm2020/list/list-selection.component.mjs +689 -686
  407. package/esm2020/list/list.component.mjs +44 -44
  408. package/esm2020/list/list.module.mjs +55 -55
  409. package/esm2020/list/ptsecurity-mosaic-list.mjs +4 -4
  410. package/esm2020/list/public-api.mjs +4 -4
  411. package/esm2020/loader-overlay/index.mjs +2 -0
  412. package/esm2020/loader-overlay/loader-overlay.component.mjs +99 -0
  413. package/esm2020/loader-overlay/loader-overlay.module.mjs +50 -0
  414. package/esm2020/loader-overlay/ptsecurity-mosaic-loader-overlay.mjs +5 -0
  415. package/esm2020/loader-overlay/public-api.mjs +3 -0
  416. package/esm2020/modal/css-unit.pipe.mjs +17 -17
  417. package/esm2020/modal/index.mjs +2 -2
  418. package/esm2020/modal/modal-control.service.mjs +85 -85
  419. package/esm2020/modal/modal-ref.class.mjs +8 -8
  420. package/esm2020/modal/modal-util.mjs +17 -17
  421. package/esm2020/modal/modal.component.mjs +509 -501
  422. package/esm2020/modal/modal.directive.mjs +52 -52
  423. package/esm2020/modal/modal.module.mjs +72 -72
  424. package/esm2020/modal/modal.service.mjs +124 -124
  425. package/esm2020/modal/modal.type.mjs +7 -7
  426. package/esm2020/modal/ptsecurity-mosaic-modal.mjs +4 -4
  427. package/esm2020/modal/public-api.mjs +7 -7
  428. package/esm2020/navbar/index.mjs +2 -2
  429. package/esm2020/navbar/navbar-item.component.mjs +582 -582
  430. package/esm2020/navbar/navbar.component.mjs +239 -237
  431. package/esm2020/navbar/navbar.module.mjs +92 -92
  432. package/esm2020/navbar/ptsecurity-mosaic-navbar.mjs +4 -4
  433. package/esm2020/navbar/public-api.mjs +5 -5
  434. package/esm2020/navbar/vertical-navbar.animation.mjs +10 -10
  435. package/esm2020/navbar/vertical-navbar.component.mjs +114 -114
  436. package/esm2020/popover/index.mjs +2 -2
  437. package/esm2020/popover/popover-animations.mjs +16 -16
  438. package/esm2020/popover/popover-confirm.component.mjs +108 -108
  439. package/esm2020/popover/popover.component.mjs +253 -253
  440. package/esm2020/popover/popover.module.mjs +24 -24
  441. package/esm2020/popover/ptsecurity-mosaic-popover.mjs +4 -4
  442. package/esm2020/popover/public-api.mjs +5 -5
  443. package/esm2020/progress-bar/index.mjs +2 -2
  444. package/esm2020/progress-bar/progress-bar.component.mjs +42 -42
  445. package/esm2020/progress-bar/progress-bar.module.mjs +30 -30
  446. package/esm2020/progress-bar/ptsecurity-mosaic-progress-bar.mjs +4 -4
  447. package/esm2020/progress-bar/public-api.mjs +3 -3
  448. package/esm2020/progress-spinner/index.mjs +2 -2
  449. package/esm2020/progress-spinner/progress-spinner.component.mjs +46 -46
  450. package/esm2020/progress-spinner/progress-spinner.module.mjs +30 -30
  451. package/esm2020/progress-spinner/ptsecurity-mosaic-progress-spinner.mjs +4 -4
  452. package/esm2020/progress-spinner/public-api.mjs +3 -3
  453. package/esm2020/ptsecurity-mosaic.mjs +4 -4
  454. package/esm2020/public-api.mjs +2 -2
  455. package/esm2020/radio/index.mjs +2 -2
  456. package/esm2020/radio/ptsecurity-mosaic-radio.mjs +4 -4
  457. package/esm2020/radio/public-api.mjs +3 -3
  458. package/esm2020/radio/radio.component.mjs +458 -458
  459. package/esm2020/radio/radio.module.mjs +20 -20
  460. package/esm2020/select/index.mjs +2 -2
  461. package/esm2020/select/ptsecurity-mosaic-select.mjs +4 -4
  462. package/esm2020/select/public-api.mjs +4 -4
  463. package/esm2020/select/select-option.directive.mjs +65 -65
  464. package/esm2020/select/select.component.mjs +1117 -1117
  465. package/esm2020/select/select.module.mjs +73 -73
  466. package/esm2020/sidebar/index.mjs +2 -2
  467. package/esm2020/sidebar/ptsecurity-mosaic-sidebar.mjs +4 -4
  468. package/esm2020/sidebar/public-api.mjs +3 -3
  469. package/esm2020/sidebar/sidebar-animations.mjs +23 -23
  470. package/esm2020/sidebar/sidebar.component.mjs +146 -146
  471. package/esm2020/sidebar/sidebar.module.mjs +30 -30
  472. package/esm2020/sidepanel/index.mjs +2 -2
  473. package/esm2020/sidepanel/ptsecurity-mosaic-sidepanel.mjs +4 -4
  474. package/esm2020/sidepanel/public-api.mjs +7 -7
  475. package/esm2020/sidepanel/sidepanel-animations.mjs +26 -26
  476. package/esm2020/sidepanel/sidepanel-config.mjs +26 -26
  477. package/esm2020/sidepanel/sidepanel-container.component.mjs +106 -106
  478. package/esm2020/sidepanel/sidepanel-directives.mjs +159 -159
  479. package/esm2020/sidepanel/sidepanel-ref.mjs +53 -53
  480. package/esm2020/sidepanel/sidepanel.module.mjs +74 -74
  481. package/esm2020/sidepanel/sidepanel.service.mjs +167 -167
  482. package/esm2020/splitter/index.mjs +2 -2
  483. package/esm2020/splitter/ptsecurity-mosaic-splitter.mjs +4 -4
  484. package/esm2020/splitter/public-api.mjs +3 -3
  485. package/esm2020/splitter/splitter.component.mjs +482 -482
  486. package/esm2020/splitter/splitter.module.mjs +40 -40
  487. package/esm2020/table/index.mjs +2 -2
  488. package/esm2020/table/ptsecurity-mosaic-table.mjs +4 -4
  489. package/esm2020/table/public-api.mjs +3 -3
  490. package/esm2020/table/table.component.mjs +16 -16
  491. package/esm2020/table/table.module.mjs +30 -30
  492. package/esm2020/tabs/index.mjs +2 -2
  493. package/esm2020/tabs/paginated-tab-header.mjs +479 -479
  494. package/esm2020/tabs/ptsecurity-mosaic-tabs.mjs +4 -4
  495. package/esm2020/tabs/public-api.mjs +11 -11
  496. package/esm2020/tabs/tab-body.component.mjs +178 -178
  497. package/esm2020/tabs/tab-content.directive.mjs +15 -15
  498. package/esm2020/tabs/tab-group.component.mjs +350 -350
  499. package/esm2020/tabs/tab-header.component.mjs +67 -67
  500. package/esm2020/tabs/tab-label-wrapper.directive.mjs +78 -78
  501. package/esm2020/tabs/tab-label.directive.mjs +17 -17
  502. package/esm2020/tabs/tab-nav-bar/index.mjs +2 -2
  503. package/esm2020/tabs/tab-nav-bar/tab-nav-bar.mjs +110 -110
  504. package/esm2020/tabs/tab.component.mjs +133 -133
  505. package/esm2020/tabs/tabs-animations.mjs +24 -24
  506. package/esm2020/tabs/tabs.module.mjs +104 -104
  507. package/esm2020/tags/index.mjs +2 -2
  508. package/esm2020/tags/ptsecurity-mosaic-tags.mjs +4 -4
  509. package/esm2020/tags/public-api.mjs +6 -6
  510. package/esm2020/tags/tag-default-options.mjs +4 -4
  511. package/esm2020/tags/tag-input.mjs +229 -229
  512. package/esm2020/tags/tag-list.component.mjs +722 -722
  513. package/esm2020/tags/tag-text-control.mjs +2 -2
  514. package/esm2020/tags/tag.component.mjs +375 -375
  515. package/esm2020/tags/tag.module.mjs +56 -56
  516. package/esm2020/textarea/index.mjs +2 -2
  517. package/esm2020/textarea/ptsecurity-mosaic-textarea.mjs +4 -4
  518. package/esm2020/textarea/public-api.mjs +3 -3
  519. package/esm2020/textarea/textarea.component.mjs +269 -269
  520. package/esm2020/textarea/textarea.module.mjs +21 -21
  521. package/esm2020/timepicker/index.mjs +2 -2
  522. package/esm2020/timepicker/ptsecurity-mosaic-timepicker.mjs +4 -4
  523. package/esm2020/timepicker/public-api.mjs +4 -4
  524. package/esm2020/timepicker/timepicker.constants.mjs +25 -25
  525. package/esm2020/timepicker/timepicker.directive.mjs +665 -665
  526. package/esm2020/timepicker/timepicker.module.mjs +34 -34
  527. package/esm2020/toggle/index.mjs +2 -2
  528. package/esm2020/toggle/ptsecurity-mosaic-toggle.mjs +4 -4
  529. package/esm2020/toggle/public-api.mjs +3 -3
  530. package/esm2020/toggle/toggle.component.mjs +158 -158
  531. package/esm2020/toggle/toggle.module.mjs +20 -20
  532. package/esm2020/tooltip/index.mjs +2 -2
  533. package/esm2020/tooltip/ptsecurity-mosaic-tooltip.mjs +4 -4
  534. package/esm2020/tooltip/public-api.mjs +3 -3
  535. package/esm2020/tooltip/tooltip.animations.mjs +19 -19
  536. package/esm2020/tooltip/tooltip.component.mjs +295 -295
  537. package/esm2020/tooltip/tooltip.module.mjs +43 -43
  538. package/esm2020/tree/control/base-tree-control.mjs +60 -60
  539. package/esm2020/tree/control/flat-tree-control.mjs +126 -126
  540. package/esm2020/tree/control/nested-tree-control.mjs +41 -41
  541. package/esm2020/tree/control/tree-control.mjs +2 -2
  542. package/esm2020/tree/data-source/flat-data-source.mjs +162 -162
  543. package/esm2020/tree/data-source/nested-data-source.mjs +30 -30
  544. package/esm2020/tree/index.mjs +2 -2
  545. package/esm2020/tree/node.mjs +31 -31
  546. package/esm2020/tree/outlet.mjs +15 -15
  547. package/esm2020/tree/padding.directive.mjs +113 -113
  548. package/esm2020/tree/ptsecurity-mosaic-tree.mjs +4 -4
  549. package/esm2020/tree/public-api.mjs +16 -16
  550. package/esm2020/tree/toggle.mjs +80 -80
  551. package/esm2020/tree/tree-base.mjs +243 -243
  552. package/esm2020/tree/tree-errors.mjs +36 -36
  553. package/esm2020/tree/tree-option.component.mjs +248 -248
  554. package/esm2020/tree/tree-selection.component.mjs +541 -540
  555. package/esm2020/tree/tree.mjs +15 -15
  556. package/esm2020/tree/tree.module.mjs +57 -57
  557. package/esm2020/tree-select/index.mjs +2 -2
  558. package/esm2020/tree-select/ptsecurity-mosaic-tree-select.mjs +4 -4
  559. package/esm2020/tree-select/public-api.mjs +3 -3
  560. package/esm2020/tree-select/tree-select.component.mjs +939 -939
  561. package/esm2020/tree-select/tree-select.module.mjs +47 -47
  562. package/fesm2015/ptsecurity-mosaic-autocomplete.mjs +726 -726
  563. package/fesm2015/ptsecurity-mosaic-autocomplete.mjs.map +1 -1
  564. package/fesm2015/ptsecurity-mosaic-button-toggle.mjs +367 -367
  565. package/fesm2015/ptsecurity-mosaic-button-toggle.mjs.map +1 -1
  566. package/fesm2015/ptsecurity-mosaic-button.mjs +160 -160
  567. package/fesm2015/ptsecurity-mosaic-button.mjs.map +1 -1
  568. package/fesm2015/ptsecurity-mosaic-card.mjs +96 -96
  569. package/fesm2015/ptsecurity-mosaic-card.mjs.map +1 -1
  570. package/fesm2015/ptsecurity-mosaic-checkbox.mjs +348 -348
  571. package/fesm2015/ptsecurity-mosaic-checkbox.mjs.map +1 -1
  572. package/fesm2015/ptsecurity-mosaic-core.mjs +2652 -2652
  573. package/fesm2015/ptsecurity-mosaic-core.mjs.map +1 -1
  574. package/fesm2015/ptsecurity-mosaic-datepicker.mjs +2682 -2682
  575. package/fesm2015/ptsecurity-mosaic-datepicker.mjs.map +1 -1
  576. package/fesm2015/ptsecurity-mosaic-design-tokens.mjs +2432 -2345
  577. package/fesm2015/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
  578. package/fesm2015/ptsecurity-mosaic-divider.mjs +48 -48
  579. package/fesm2015/ptsecurity-mosaic-divider.mjs.map +1 -1
  580. package/fesm2015/ptsecurity-mosaic-dl.mjs +108 -108
  581. package/fesm2015/ptsecurity-mosaic-dl.mjs.map +1 -1
  582. package/fesm2015/ptsecurity-mosaic-dropdown.mjs +1069 -1069
  583. package/fesm2015/ptsecurity-mosaic-dropdown.mjs.map +1 -1
  584. package/fesm2015/ptsecurity-mosaic-form-field.mjs +522 -512
  585. package/fesm2015/ptsecurity-mosaic-form-field.mjs.map +1 -1
  586. package/fesm2015/ptsecurity-mosaic-icon.mjs +73 -73
  587. package/fesm2015/ptsecurity-mosaic-icon.mjs.map +1 -1
  588. package/fesm2015/ptsecurity-mosaic-input.mjs +979 -979
  589. package/fesm2015/ptsecurity-mosaic-input.mjs.map +1 -1
  590. package/fesm2015/ptsecurity-mosaic-link.mjs +121 -121
  591. package/fesm2015/ptsecurity-mosaic-link.mjs.map +1 -1
  592. package/fesm2015/ptsecurity-mosaic-list.mjs +765 -762
  593. package/fesm2015/ptsecurity-mosaic-list.mjs.map +1 -1
  594. package/fesm2015/ptsecurity-mosaic-loader-overlay.mjs +155 -0
  595. package/fesm2015/ptsecurity-mosaic-loader-overlay.mjs.map +1 -0
  596. package/fesm2015/ptsecurity-mosaic-modal.mjs +833 -824
  597. package/fesm2015/ptsecurity-mosaic-modal.mjs.map +1 -1
  598. package/fesm2015/ptsecurity-mosaic-navbar.mjs +996 -994
  599. package/fesm2015/ptsecurity-mosaic-navbar.mjs.map +1 -1
  600. package/fesm2015/ptsecurity-mosaic-popover.mjs +364 -364
  601. package/fesm2015/ptsecurity-mosaic-popover.mjs.map +1 -1
  602. package/fesm2015/ptsecurity-mosaic-progress-bar.mjs +61 -61
  603. package/fesm2015/ptsecurity-mosaic-progress-bar.mjs.map +1 -1
  604. package/fesm2015/ptsecurity-mosaic-progress-spinner.mjs +65 -65
  605. package/fesm2015/ptsecurity-mosaic-progress-spinner.mjs.map +1 -1
  606. package/fesm2015/ptsecurity-mosaic-radio.mjs +464 -464
  607. package/fesm2015/ptsecurity-mosaic-radio.mjs.map +1 -1
  608. package/fesm2015/ptsecurity-mosaic-select.mjs +1213 -1213
  609. package/fesm2015/ptsecurity-mosaic-select.mjs.map +1 -1
  610. package/fesm2015/ptsecurity-mosaic-sidebar.mjs +185 -185
  611. package/fesm2015/ptsecurity-mosaic-sidebar.mjs.map +1 -1
  612. package/fesm2015/ptsecurity-mosaic-sidepanel.mjs +555 -555
  613. package/fesm2015/ptsecurity-mosaic-sidepanel.mjs.map +1 -1
  614. package/fesm2015/ptsecurity-mosaic-splitter.mjs +511 -511
  615. package/fesm2015/ptsecurity-mosaic-splitter.mjs.map +1 -1
  616. package/fesm2015/ptsecurity-mosaic-table.mjs +36 -36
  617. package/fesm2015/ptsecurity-mosaic-table.mjs.map +1 -1
  618. package/fesm2015/ptsecurity-mosaic-tabs.mjs +1460 -1460
  619. package/fesm2015/ptsecurity-mosaic-tabs.mjs.map +1 -1
  620. package/fesm2015/ptsecurity-mosaic-tags.mjs +1342 -1342
  621. package/fesm2015/ptsecurity-mosaic-tags.mjs.map +1 -1
  622. package/fesm2015/ptsecurity-mosaic-textarea.mjs +274 -274
  623. package/fesm2015/ptsecurity-mosaic-textarea.mjs.map +1 -1
  624. package/fesm2015/ptsecurity-mosaic-timepicker.mjs +703 -703
  625. package/fesm2015/ptsecurity-mosaic-timepicker.mjs.map +1 -1
  626. package/fesm2015/ptsecurity-mosaic-toggle.mjs +163 -163
  627. package/fesm2015/ptsecurity-mosaic-toggle.mjs.map +1 -1
  628. package/fesm2015/ptsecurity-mosaic-tooltip.mjs +344 -344
  629. package/fesm2015/ptsecurity-mosaic-tooltip.mjs.map +1 -1
  630. package/fesm2015/ptsecurity-mosaic-tree-select.mjs +954 -954
  631. package/fesm2015/ptsecurity-mosaic-tree-select.mjs.map +1 -1
  632. package/fesm2015/ptsecurity-mosaic-tree.mjs +1689 -1688
  633. package/fesm2015/ptsecurity-mosaic-tree.mjs.map +1 -1
  634. package/fesm2015/ptsecurity-mosaic.mjs +2 -2
  635. package/fesm2020/ptsecurity-mosaic-autocomplete.mjs +722 -722
  636. package/fesm2020/ptsecurity-mosaic-autocomplete.mjs.map +1 -1
  637. package/fesm2020/ptsecurity-mosaic-button-toggle.mjs +365 -365
  638. package/fesm2020/ptsecurity-mosaic-button-toggle.mjs.map +1 -1
  639. package/fesm2020/ptsecurity-mosaic-button.mjs +160 -160
  640. package/fesm2020/ptsecurity-mosaic-button.mjs.map +1 -1
  641. package/fesm2020/ptsecurity-mosaic-card.mjs +96 -96
  642. package/fesm2020/ptsecurity-mosaic-card.mjs.map +1 -1
  643. package/fesm2020/ptsecurity-mosaic-checkbox.mjs +346 -346
  644. package/fesm2020/ptsecurity-mosaic-checkbox.mjs.map +1 -1
  645. package/fesm2020/ptsecurity-mosaic-core.mjs +2681 -2681
  646. package/fesm2020/ptsecurity-mosaic-core.mjs.map +1 -1
  647. package/fesm2020/ptsecurity-mosaic-datepicker.mjs +2667 -2667
  648. package/fesm2020/ptsecurity-mosaic-datepicker.mjs.map +1 -1
  649. package/fesm2020/ptsecurity-mosaic-design-tokens.mjs +2432 -2345
  650. package/fesm2020/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
  651. package/fesm2020/ptsecurity-mosaic-divider.mjs +48 -48
  652. package/fesm2020/ptsecurity-mosaic-divider.mjs.map +1 -1
  653. package/fesm2020/ptsecurity-mosaic-dl.mjs +108 -108
  654. package/fesm2020/ptsecurity-mosaic-dl.mjs.map +1 -1
  655. package/fesm2020/ptsecurity-mosaic-dropdown.mjs +1056 -1056
  656. package/fesm2020/ptsecurity-mosaic-dropdown.mjs.map +1 -1
  657. package/fesm2020/ptsecurity-mosaic-form-field.mjs +507 -497
  658. package/fesm2020/ptsecurity-mosaic-form-field.mjs.map +1 -1
  659. package/fesm2020/ptsecurity-mosaic-icon.mjs +71 -71
  660. package/fesm2020/ptsecurity-mosaic-icon.mjs.map +1 -1
  661. package/fesm2020/ptsecurity-mosaic-input.mjs +968 -968
  662. package/fesm2020/ptsecurity-mosaic-input.mjs.map +1 -1
  663. package/fesm2020/ptsecurity-mosaic-link.mjs +120 -120
  664. package/fesm2020/ptsecurity-mosaic-link.mjs.map +1 -1
  665. package/fesm2020/ptsecurity-mosaic-list.mjs +758 -755
  666. package/fesm2020/ptsecurity-mosaic-list.mjs.map +1 -1
  667. package/fesm2020/ptsecurity-mosaic-loader-overlay.mjs +153 -0
  668. package/fesm2020/ptsecurity-mosaic-loader-overlay.mjs.map +1 -0
  669. package/fesm2020/ptsecurity-mosaic-modal.mjs +828 -820
  670. package/fesm2020/ptsecurity-mosaic-modal.mjs.map +1 -1
  671. package/fesm2020/ptsecurity-mosaic-navbar.mjs +980 -978
  672. package/fesm2020/ptsecurity-mosaic-navbar.mjs.map +1 -1
  673. package/fesm2020/ptsecurity-mosaic-popover.mjs +360 -360
  674. package/fesm2020/ptsecurity-mosaic-popover.mjs.map +1 -1
  675. package/fesm2020/ptsecurity-mosaic-progress-bar.mjs +61 -61
  676. package/fesm2020/ptsecurity-mosaic-progress-bar.mjs.map +1 -1
  677. package/fesm2020/ptsecurity-mosaic-progress-spinner.mjs +65 -65
  678. package/fesm2020/ptsecurity-mosaic-progress-spinner.mjs.map +1 -1
  679. package/fesm2020/ptsecurity-mosaic-radio.mjs +462 -462
  680. package/fesm2020/ptsecurity-mosaic-radio.mjs.map +1 -1
  681. package/fesm2020/ptsecurity-mosaic-select.mjs +1208 -1208
  682. package/fesm2020/ptsecurity-mosaic-select.mjs.map +1 -1
  683. package/fesm2020/ptsecurity-mosaic-sidebar.mjs +185 -185
  684. package/fesm2020/ptsecurity-mosaic-sidebar.mjs.map +1 -1
  685. package/fesm2020/ptsecurity-mosaic-sidepanel.mjs +552 -552
  686. package/fesm2020/ptsecurity-mosaic-sidepanel.mjs.map +1 -1
  687. package/fesm2020/ptsecurity-mosaic-splitter.mjs +511 -511
  688. package/fesm2020/ptsecurity-mosaic-splitter.mjs.map +1 -1
  689. package/fesm2020/ptsecurity-mosaic-table.mjs +36 -36
  690. package/fesm2020/ptsecurity-mosaic-table.mjs.map +1 -1
  691. package/fesm2020/ptsecurity-mosaic-tabs.mjs +1445 -1445
  692. package/fesm2020/ptsecurity-mosaic-tabs.mjs.map +1 -1
  693. package/fesm2020/ptsecurity-mosaic-tags.mjs +1335 -1335
  694. package/fesm2020/ptsecurity-mosaic-tags.mjs.map +1 -1
  695. package/fesm2020/ptsecurity-mosaic-textarea.mjs +272 -272
  696. package/fesm2020/ptsecurity-mosaic-textarea.mjs.map +1 -1
  697. package/fesm2020/ptsecurity-mosaic-timepicker.mjs +700 -700
  698. package/fesm2020/ptsecurity-mosaic-timepicker.mjs.map +1 -1
  699. package/fesm2020/ptsecurity-mosaic-toggle.mjs +163 -163
  700. package/fesm2020/ptsecurity-mosaic-toggle.mjs.map +1 -1
  701. package/fesm2020/ptsecurity-mosaic-tooltip.mjs +336 -336
  702. package/fesm2020/ptsecurity-mosaic-tooltip.mjs.map +1 -1
  703. package/fesm2020/ptsecurity-mosaic-tree-select.mjs +951 -951
  704. package/fesm2020/ptsecurity-mosaic-tree-select.mjs.map +1 -1
  705. package/fesm2020/ptsecurity-mosaic-tree.mjs +1676 -1675
  706. package/fesm2020/ptsecurity-mosaic-tree.mjs.map +1 -1
  707. package/fesm2020/ptsecurity-mosaic.mjs +2 -2
  708. package/form-field/cleaner.d.ts +7 -7
  709. package/form-field/form-field-control.d.ts +37 -37
  710. package/form-field/form-field-errors.d.ts +2 -2
  711. package/form-field/form-field.d.ts +69 -69
  712. package/form-field/form-field.module.d.ts +15 -15
  713. package/form-field/hint.d.ts +14 -6
  714. package/form-field/index.d.ts +1 -1
  715. package/form-field/password-hint.d.ts +40 -40
  716. package/form-field/prefix.d.ts +5 -5
  717. package/form-field/ptsecurity-mosaic-form-field.d.ts +5 -5
  718. package/form-field/public-api.d.ts +10 -10
  719. package/form-field/stepper.d.ts +11 -11
  720. package/form-field/suffix.d.ts +5 -5
  721. package/icon/icon.component.d.ts +18 -18
  722. package/icon/icon.module.d.ts +10 -10
  723. package/icon/index.d.ts +1 -1
  724. package/icon/ptsecurity-mosaic-icon.d.ts +5 -5
  725. package/icon/public-api.d.ts +2 -2
  726. package/index.d.ts +1 -1
  727. package/input/index.d.ts +1 -1
  728. package/input/input-errors.d.ts +1 -1
  729. package/input/input-number-validators.d.ts +39 -39
  730. package/input/input-number.d.ts +33 -33
  731. package/input/input-password.d.ts +123 -123
  732. package/input/input-value-accessor.d.ts +4 -4
  733. package/input/input.d.ts +116 -116
  734. package/input/input.module.d.ts +14 -14
  735. package/input/ptsecurity-mosaic-input.d.ts +5 -5
  736. package/input/public-api.d.ts +6 -6
  737. package/link/index.d.ts +1 -1
  738. package/link/link.component.d.ts +38 -38
  739. package/link/link.module.d.ts +9 -9
  740. package/link/ptsecurity-mosaic-link.d.ts +5 -5
  741. package/link/public-api.d.ts +2 -2
  742. package/list/index.d.ts +1 -1
  743. package/list/list-selection.component.d.ts +168 -168
  744. package/list/list.component.d.ts +18 -18
  745. package/list/list.module.d.ts +11 -11
  746. package/list/ptsecurity-mosaic-list.d.ts +5 -5
  747. package/list/public-api.d.ts +3 -3
  748. package/{toggle → loader-overlay}/README.md +0 -0
  749. package/loader-overlay/index.d.ts +1 -0
  750. package/loader-overlay/loader-overlay.component.d.ts +33 -0
  751. package/loader-overlay/loader-overlay.module.d.ts +11 -0
  752. package/loader-overlay/package.json +10 -0
  753. package/loader-overlay/ptsecurity-mosaic-loader-overlay.d.ts +5 -0
  754. package/loader-overlay/public-api.d.ts +2 -0
  755. package/modal/README.md +33 -33
  756. package/modal/css-unit.pipe.d.ts +7 -7
  757. package/modal/index.d.ts +1 -1
  758. package/modal/modal-control.service.d.ts +20 -20
  759. package/modal/modal-ref.class.d.ts +36 -36
  760. package/modal/modal-util.d.ts +12 -12
  761. package/modal/modal.component.d.ts +128 -126
  762. package/modal/modal.directive.d.ts +17 -17
  763. package/modal/modal.module.d.ts +14 -14
  764. package/modal/modal.service.d.ts +33 -33
  765. package/modal/modal.type.d.ts +60 -59
  766. package/modal/ptsecurity-mosaic-modal.d.ts +5 -5
  767. package/modal/public-api.d.ts +6 -6
  768. package/navbar/README.md +41 -41
  769. package/navbar/index.d.ts +1 -1
  770. package/navbar/navbar-item.component.d.ts +161 -161
  771. package/navbar/navbar.component.d.ts +58 -58
  772. package/navbar/navbar.module.d.ts +14 -14
  773. package/navbar/ptsecurity-mosaic-navbar.d.ts +5 -5
  774. package/navbar/public-api.d.ts +4 -4
  775. package/navbar/vertical-navbar.animation.d.ts +2 -2
  776. package/navbar/vertical-navbar.component.d.ts +23 -23
  777. package/package.json +12 -4
  778. package/popover/README.md +32 -32
  779. package/popover/index.d.ts +1 -1
  780. package/popover/popover-animations.d.ts +4 -4
  781. package/popover/popover-confirm.component.d.ts +33 -33
  782. package/popover/popover.component.d.ts +74 -74
  783. package/popover/popover.module.d.ts +12 -12
  784. package/popover/ptsecurity-mosaic-popover.d.ts +5 -5
  785. package/popover/public-api.d.ts +4 -4
  786. package/prebuilt-themes/dark-theme.css +1 -1
  787. package/prebuilt-themes/default-theme.css +1 -1
  788. package/progress-bar/index.d.ts +1 -1
  789. package/progress-bar/progress-bar.component.d.ts +18 -18
  790. package/progress-bar/progress-bar.module.d.ts +9 -9
  791. package/progress-bar/ptsecurity-mosaic-progress-bar.d.ts +5 -5
  792. package/progress-bar/public-api.d.ts +2 -2
  793. package/progress-spinner/index.d.ts +1 -1
  794. package/progress-spinner/progress-spinner.component.d.ts +19 -19
  795. package/progress-spinner/progress-spinner.module.d.ts +9 -9
  796. package/progress-spinner/ptsecurity-mosaic-progress-spinner.d.ts +5 -5
  797. package/progress-spinner/public-api.d.ts +2 -2
  798. package/ptsecurity-mosaic.d.ts +5 -5
  799. package/public-api.d.ts +1 -1
  800. package/radio/index.d.ts +1 -1
  801. package/radio/ptsecurity-mosaic-radio.d.ts +5 -5
  802. package/radio/public-api.d.ts +2 -2
  803. package/radio/radio.component.d.ts +207 -207
  804. package/radio/radio.module.d.ts +10 -10
  805. package/schematics/README.md +35 -35
  806. package/select/index.d.ts +1 -1
  807. package/select/ptsecurity-mosaic-select.d.ts +5 -5
  808. package/select/public-api.d.ts +3 -3
  809. package/select/select-option.directive.d.ts +20 -20
  810. package/select/select.component.d.ts +310 -310
  811. package/select/select.module.d.ts +15 -15
  812. package/sidebar/index.d.ts +1 -1
  813. package/sidebar/ptsecurity-mosaic-sidebar.d.ts +5 -5
  814. package/sidebar/public-api.d.ts +2 -2
  815. package/sidebar/sidebar-animations.d.ts +8 -8
  816. package/sidebar/sidebar.component.d.ts +53 -53
  817. package/sidebar/sidebar.module.d.ts +8 -8
  818. package/sidepanel/index.d.ts +1 -1
  819. package/sidepanel/ptsecurity-mosaic-sidepanel.d.ts +5 -5
  820. package/sidepanel/public-api.d.ts +6 -6
  821. package/sidepanel/sidepanel-animations.d.ts +14 -14
  822. package/sidepanel/sidepanel-config.d.ts +25 -25
  823. package/sidepanel/sidepanel-container.component.d.ts +45 -45
  824. package/sidepanel/sidepanel-directives.d.ts +50 -50
  825. package/sidepanel/sidepanel-ref.d.ts +24 -24
  826. package/sidepanel/sidepanel.module.d.ts +15 -15
  827. package/sidepanel/sidepanel.service.d.ts +57 -57
  828. package/splitter/index.d.ts +1 -1
  829. package/splitter/ptsecurity-mosaic-splitter.d.ts +5 -5
  830. package/splitter/public-api.d.ts +2 -2
  831. package/splitter/splitter.component.d.ts +130 -130
  832. package/splitter/splitter.module.d.ts +9 -9
  833. package/table/index.d.ts +1 -1
  834. package/table/ptsecurity-mosaic-table.d.ts +5 -5
  835. package/table/public-api.d.ts +2 -2
  836. package/table/table.component.d.ts +5 -5
  837. package/table/table.module.d.ts +10 -10
  838. package/tabs/index.d.ts +1 -1
  839. package/tabs/paginated-tab-header.d.ts +179 -179
  840. package/tabs/ptsecurity-mosaic-tabs.d.ts +5 -5
  841. package/tabs/public-api.d.ts +10 -10
  842. package/tabs/tab-body.component.d.ts +95 -95
  843. package/tabs/tab-content.directive.d.ts +9 -9
  844. package/tabs/tab-group.component.d.ts +133 -133
  845. package/tabs/tab-header.component.d.ts +35 -35
  846. package/tabs/tab-label-wrapper.directive.d.ts +30 -30
  847. package/tabs/tab-label.directive.d.ts +9 -9
  848. package/tabs/tab-nav-bar/index.d.ts +1 -1
  849. package/tabs/tab-nav-bar/tab-nav-bar.d.ts +38 -38
  850. package/tabs/tab.component.d.ts +66 -66
  851. package/tabs/tabs-animations.d.ts +4 -4
  852. package/tabs/tabs.module.d.ts +20 -20
  853. package/tags/index.d.ts +1 -1
  854. package/tags/ptsecurity-mosaic-tags.d.ts +5 -5
  855. package/tags/public-api.d.ts +5 -5
  856. package/tags/tag-default-options.d.ts +8 -8
  857. package/tags/tag-input.d.ts +77 -77
  858. package/tags/tag-list.component.d.ts +240 -240
  859. package/tags/tag-text-control.d.ts +10 -10
  860. package/tags/tag.component.d.ts +135 -135
  861. package/tags/tag.module.d.ts +11 -11
  862. package/textarea/index.d.ts +1 -1
  863. package/textarea/ptsecurity-mosaic-textarea.d.ts +5 -5
  864. package/textarea/public-api.d.ts +2 -2
  865. package/textarea/textarea.component.d.ts +111 -111
  866. package/textarea/textarea.module.d.ts +11 -11
  867. package/timepicker/index.d.ts +1 -1
  868. package/timepicker/ptsecurity-mosaic-timepicker.d.ts +5 -5
  869. package/timepicker/public-api.d.ts +3 -3
  870. package/timepicker/timepicker.constants.d.ts +20 -20
  871. package/timepicker/timepicker.directive.d.ts +146 -146
  872. package/timepicker/timepicker.module.d.ts +11 -11
  873. package/toggle/index.d.ts +1 -1
  874. package/toggle/ptsecurity-mosaic-toggle.d.ts +5 -5
  875. package/toggle/public-api.d.ts +2 -2
  876. package/toggle/toggle.component.d.ts +54 -54
  877. package/toggle/toggle.module.d.ts +10 -10
  878. package/tooltip/index.d.ts +1 -1
  879. package/tooltip/ptsecurity-mosaic-tooltip.d.ts +5 -5
  880. package/tooltip/public-api.d.ts +2 -2
  881. package/tooltip/tooltip.animations.d.ts +8 -8
  882. package/tooltip/tooltip.component.d.ts +91 -91
  883. package/tooltip/tooltip.module.d.ts +9 -9
  884. package/tree/control/base-tree-control.d.ts +40 -40
  885. package/tree/control/flat-tree-control.d.ts +52 -52
  886. package/tree/control/nested-tree-control.d.ts +19 -19
  887. package/tree/control/tree-control.d.ts +44 -44
  888. package/tree/data-source/flat-data-source.d.ts +80 -80
  889. package/tree/data-source/nested-data-source.d.ts +15 -15
  890. package/tree/index.d.ts +1 -1
  891. package/tree/node.d.ts +34 -34
  892. package/tree/outlet.d.ts +9 -9
  893. package/tree/padding.directive.d.ts +47 -47
  894. package/tree/ptsecurity-mosaic-tree.d.ts +5 -5
  895. package/tree/public-api.d.ts +15 -15
  896. package/tree/toggle.d.ts +28 -28
  897. package/tree/tree-base.d.ts +97 -97
  898. package/tree/tree-errors.d.ts +25 -25
  899. package/tree/tree-option.component.d.ts +72 -72
  900. package/tree/tree-selection.component.d.ts +132 -132
  901. package/tree/tree.d.ts +6 -6
  902. package/tree/tree.module.d.ts +16 -16
  903. package/tree-select/index.d.ts +1 -1
  904. package/tree-select/ptsecurity-mosaic-tree-select.d.ts +5 -5
  905. package/tree-select/public-api.d.ts +2 -2
  906. package/tree-select/tree-select.component.d.ts +277 -277
  907. package/tree-select/tree-select.module.d.ts +14 -14
@@ -17,988 +17,988 @@ import * as i2 from '@angular/cdk/bidi';
17
17
  import * as i1$1 from '@angular/cdk/overlay';
18
18
  import { McTooltipTrigger, MC_TOOLTIP_SCROLL_STRATEGY } from '@ptsecurity/mosaic/tooltip';
19
19
 
20
- function getMcInputUnsupportedTypeError(inputType) {
21
- return Error(`Input type "${inputType}" isn't supported by mcInput.`);
20
+ function getMcInputUnsupportedTypeError(inputType) {
21
+ return Error(`Input type "${inputType}" isn't supported by mcInput.`);
22
22
  }
23
23
 
24
- const BIG_STEP = 10;
25
- const SMALL_STEP = 1;
26
- function normalizeSplitter(value) {
27
- return value ? value.replace(/,/g, '.') : value;
28
- }
29
- function isFloat(value) {
30
- return /^-?\d+\.\d+$/.test(value);
31
- }
32
- function isInt(value) {
33
- return /^-?\d+$/.test(value);
34
- }
35
- function isDigit(value) {
36
- return isFloat(value) || isInt(value);
37
- }
38
- function getPrecision(value) {
39
- const arr = value.toString().split('.');
40
- return arr.length === 1
41
- ? 1
42
- // tslint:disable-next-line:no-magic-numbers
43
- : Math.pow(10, arr[1].length);
44
- }
45
- function add(value1, value2) {
46
- const precision = Math.max(getPrecision(value1), getPrecision(value2));
47
- return (value1 * precision + value2 * precision) / precision;
48
- }
49
- class McNumberInput {
50
- constructor(elementRef, ngControl, step, bigStep, min, max) {
51
- this.elementRef = elementRef;
52
- this.ngControl = ngControl;
53
- this.focused = false;
54
- this.stateChanges = new Subject();
55
- this.step = isDigit(step) ? parseFloat(step) : SMALL_STEP;
56
- this.bigStep = isDigit(bigStep) ? parseFloat(bigStep) : BIG_STEP;
57
- this.min = isDigit(min) ? parseFloat(min) : -Infinity;
58
- this.max = isDigit(max) ? parseFloat(max) : Infinity;
59
- if ('valueAsNumber' in this.nativeElement) {
60
- Object.defineProperty(Object.getPrototypeOf(this.nativeElement), 'valueAsNumber', {
61
- // tslint:disable-next-line:no-reserved-keywords
62
- get() {
63
- const res = parseFloat(normalizeSplitter(this.value));
64
- return isNaN(res) ? null : res;
65
- }
66
- });
67
- }
68
- }
69
- get nativeElement() {
70
- return this.elementRef.nativeElement;
71
- }
72
- focusChanged(isFocused) {
73
- if (isFocused !== this.focused) {
74
- this.focused = isFocused;
75
- this.stateChanges.next();
76
- }
77
- }
78
- onKeyDown(event) {
79
- // tslint:disable-next-line:deprecation
80
- const keyCode = event.keyCode;
81
- const isCtrlA = (e) => e.keyCode === A && (e.ctrlKey || e.metaKey);
82
- const isCtrlC = (e) => e.keyCode === C && (e.ctrlKey || e.metaKey);
83
- const isCtrlV = (e) => e.keyCode === V && (e.ctrlKey || e.metaKey);
84
- const isCtrlX = (e) => e.keyCode === X && (e.ctrlKey || e.metaKey);
85
- const isCtrlZ = (e) => e.keyCode === Z && (e.ctrlKey || e.metaKey);
86
- const isFKey = (e) => e.keyCode >= F1 && e.keyCode <= F12;
87
- const isNumber = (e) => (e.keyCode >= ZERO && e.keyCode <= NINE) ||
88
- (e.keyCode >= NUMPAD_ZERO && e.keyCode <= NUMPAD_NINE);
89
- const isPeriod = (e) => e.key === '.' || e.key === ',';
90
- const minuses = [NUMPAD_MINUS, DASH, FF_MINUS];
91
- const serviceKeys = [DELETE, BACKSPACE, TAB, ESCAPE, ENTER];
92
- const arrows = [LEFT_ARROW, RIGHT_ARROW];
93
- const allowedKeys = [HOME, END].concat(arrows).concat(serviceKeys).concat(minuses);
94
- if (allowedKeys.indexOf(keyCode) !== -1 ||
95
- isCtrlA(event) ||
96
- isCtrlC(event) ||
97
- isCtrlV(event) ||
98
- isCtrlX(event) ||
99
- isCtrlZ(event) ||
100
- isFKey(event) ||
101
- isPeriod(event)) {
102
- // let it happen, don't do anything
103
- return;
104
- }
105
- // Ensure that it is not a number and stop the keypress
106
- if (event.shiftKey || !isNumber(event)) {
107
- event.preventDefault();
108
- // process steps
109
- const step = event.shiftKey ? this.bigStep : this.step;
110
- if (keyCode === UP_ARROW) {
111
- this.stepUp(step);
112
- }
113
- if (keyCode === DOWN_ARROW) {
114
- this.stepDown(step);
115
- }
116
- }
117
- }
118
- onPaste(event) {
119
- if (!isDigit(normalizeSplitter(event.clipboardData.getData('text')))) {
120
- event.preventDefault();
121
- }
122
- }
123
- stepUp(step) {
124
- this.elementRef.nativeElement.focus();
125
- const res = Math.max(Math.min(add(this.nativeElement.valueAsNumber || 0, step), this.max), this.min);
126
- this.nativeElement.value = res.toString();
127
- this.viewToModelUpdate(this.nativeElement.valueAsNumber);
128
- }
129
- stepDown(step) {
130
- this.elementRef.nativeElement.focus();
131
- const res = Math.min(Math.max(add(this.nativeElement.valueAsNumber || 0, -step), this.min), this.max);
132
- this.nativeElement.value = res.toString();
133
- this.viewToModelUpdate(this.nativeElement.valueAsNumber);
134
- }
135
- viewToModelUpdate(value) {
136
- if (this.ngControl) {
137
- this.ngControl.control.setValue(value);
138
- }
139
- }
140
- }
141
- /** @nocollapse */ /** @nocollapse */ McNumberInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McNumberInput, deps: [{ token: i0.ElementRef }, { token: i1.NgControl, optional: true, self: true }, { token: 'step', attribute: true }, { token: 'big-step', attribute: true }, { token: 'min', attribute: true }, { token: 'max', attribute: true }], target: i0.ɵɵFactoryTarget.Directive });
142
- /** @nocollapse */ /** @nocollapse */ McNumberInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: McNumberInput, selector: "input[mcInput][type=\"number\"]", inputs: { bigStep: "bigStep", step: "step", min: "min", max: "max" }, host: { listeners: { "blur": "focusChanged(false)", "focus": "focusChanged(true)", "paste": "onPaste($event)", "keydown": "onKeyDown($event)" } }, exportAs: ["mcNumericalInput"], ngImport: i0 });
143
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McNumberInput, decorators: [{
144
- type: Directive,
145
- args: [{
146
- selector: `input[mcInput][type="number"]`,
147
- exportAs: 'mcNumericalInput',
148
- host: {
149
- '(blur)': 'focusChanged(false)',
150
- '(focus)': 'focusChanged(true)',
151
- '(paste)': 'onPaste($event)',
152
- '(keydown)': 'onKeyDown($event)'
153
- }
154
- }]
155
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.NgControl, decorators: [{
156
- type: Optional
157
- }, {
158
- type: Self
159
- }] }, { type: undefined, decorators: [{
160
- type: Attribute,
161
- args: ['step']
162
- }] }, { type: undefined, decorators: [{
163
- type: Attribute,
164
- args: ['big-step']
165
- }] }, { type: undefined, decorators: [{
166
- type: Attribute,
167
- args: ['min']
168
- }] }, { type: undefined, decorators: [{
169
- type: Attribute,
170
- args: ['max']
171
- }] }]; }, propDecorators: { bigStep: [{
172
- type: Input
173
- }], step: [{
174
- type: Input
175
- }], min: [{
176
- type: Input
177
- }], max: [{
178
- type: Input
24
+ const BIG_STEP = 10;
25
+ const SMALL_STEP = 1;
26
+ function normalizeSplitter(value) {
27
+ return value ? value.replace(/,/g, '.') : value;
28
+ }
29
+ function isFloat(value) {
30
+ return /^-?\d+\.\d+$/.test(value);
31
+ }
32
+ function isInt(value) {
33
+ return /^-?\d+$/.test(value);
34
+ }
35
+ function isDigit(value) {
36
+ return isFloat(value) || isInt(value);
37
+ }
38
+ function getPrecision(value) {
39
+ const arr = value.toString().split('.');
40
+ return arr.length === 1
41
+ ? 1
42
+ // tslint:disable-next-line:no-magic-numbers
43
+ : Math.pow(10, arr[1].length);
44
+ }
45
+ function add(value1, value2) {
46
+ const precision = Math.max(getPrecision(value1), getPrecision(value2));
47
+ return (value1 * precision + value2 * precision) / precision;
48
+ }
49
+ class McNumberInput {
50
+ constructor(elementRef, ngControl, step, bigStep, min, max) {
51
+ this.elementRef = elementRef;
52
+ this.ngControl = ngControl;
53
+ this.focused = false;
54
+ this.stateChanges = new Subject();
55
+ this.step = isDigit(step) ? parseFloat(step) : SMALL_STEP;
56
+ this.bigStep = isDigit(bigStep) ? parseFloat(bigStep) : BIG_STEP;
57
+ this.min = isDigit(min) ? parseFloat(min) : -Infinity;
58
+ this.max = isDigit(max) ? parseFloat(max) : Infinity;
59
+ if ('valueAsNumber' in this.nativeElement) {
60
+ Object.defineProperty(Object.getPrototypeOf(this.nativeElement), 'valueAsNumber', {
61
+ // tslint:disable-next-line:no-reserved-keywords
62
+ get() {
63
+ const res = parseFloat(normalizeSplitter(this.value));
64
+ return isNaN(res) ? null : res;
65
+ }
66
+ });
67
+ }
68
+ }
69
+ get nativeElement() {
70
+ return this.elementRef.nativeElement;
71
+ }
72
+ focusChanged(isFocused) {
73
+ if (isFocused !== this.focused) {
74
+ this.focused = isFocused;
75
+ this.stateChanges.next();
76
+ }
77
+ }
78
+ onKeyDown(event) {
79
+ // tslint:disable-next-line:deprecation
80
+ const keyCode = event.keyCode;
81
+ const isCtrlA = (e) => e.keyCode === A && (e.ctrlKey || e.metaKey);
82
+ const isCtrlC = (e) => e.keyCode === C && (e.ctrlKey || e.metaKey);
83
+ const isCtrlV = (e) => e.keyCode === V && (e.ctrlKey || e.metaKey);
84
+ const isCtrlX = (e) => e.keyCode === X && (e.ctrlKey || e.metaKey);
85
+ const isCtrlZ = (e) => e.keyCode === Z && (e.ctrlKey || e.metaKey);
86
+ const isFKey = (e) => e.keyCode >= F1 && e.keyCode <= F12;
87
+ const isNumber = (e) => (e.keyCode >= ZERO && e.keyCode <= NINE) ||
88
+ (e.keyCode >= NUMPAD_ZERO && e.keyCode <= NUMPAD_NINE);
89
+ const isPeriod = (e) => e.key === '.' || e.key === ',';
90
+ const minuses = [NUMPAD_MINUS, DASH, FF_MINUS];
91
+ const serviceKeys = [DELETE, BACKSPACE, TAB, ESCAPE, ENTER];
92
+ const arrows = [LEFT_ARROW, RIGHT_ARROW];
93
+ const allowedKeys = [HOME, END].concat(arrows).concat(serviceKeys).concat(minuses);
94
+ if (allowedKeys.indexOf(keyCode) !== -1 ||
95
+ isCtrlA(event) ||
96
+ isCtrlC(event) ||
97
+ isCtrlV(event) ||
98
+ isCtrlX(event) ||
99
+ isCtrlZ(event) ||
100
+ isFKey(event) ||
101
+ isPeriod(event)) {
102
+ // let it happen, don't do anything
103
+ return;
104
+ }
105
+ // Ensure that it is not a number and stop the keypress
106
+ if (event.shiftKey || !isNumber(event)) {
107
+ event.preventDefault();
108
+ // process steps
109
+ const step = event.shiftKey ? this.bigStep : this.step;
110
+ if (keyCode === UP_ARROW) {
111
+ this.stepUp(step);
112
+ }
113
+ if (keyCode === DOWN_ARROW) {
114
+ this.stepDown(step);
115
+ }
116
+ }
117
+ }
118
+ onPaste(event) {
119
+ if (!isDigit(normalizeSplitter(event.clipboardData.getData('text')))) {
120
+ event.preventDefault();
121
+ }
122
+ }
123
+ stepUp(step) {
124
+ this.elementRef.nativeElement.focus();
125
+ const res = Math.max(Math.min(add(this.nativeElement.valueAsNumber || 0, step), this.max), this.min);
126
+ this.nativeElement.value = res.toString();
127
+ this.viewToModelUpdate(this.nativeElement.valueAsNumber);
128
+ }
129
+ stepDown(step) {
130
+ this.elementRef.nativeElement.focus();
131
+ const res = Math.min(Math.max(add(this.nativeElement.valueAsNumber || 0, -step), this.min), this.max);
132
+ this.nativeElement.value = res.toString();
133
+ this.viewToModelUpdate(this.nativeElement.valueAsNumber);
134
+ }
135
+ viewToModelUpdate(value) {
136
+ if (this.ngControl) {
137
+ this.ngControl.control.setValue(value);
138
+ }
139
+ }
140
+ }
141
+ /** @nocollapse */ /** @nocollapse */ McNumberInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McNumberInput, deps: [{ token: i0.ElementRef }, { token: i1.NgControl, optional: true, self: true }, { token: 'step', attribute: true }, { token: 'big-step', attribute: true }, { token: 'min', attribute: true }, { token: 'max', attribute: true }], target: i0.ɵɵFactoryTarget.Directive });
142
+ /** @nocollapse */ /** @nocollapse */ McNumberInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: McNumberInput, selector: "input[mcInput][type=\"number\"]", inputs: { bigStep: "bigStep", step: "step", min: "min", max: "max" }, host: { listeners: { "blur": "focusChanged(false)", "focus": "focusChanged(true)", "paste": "onPaste($event)", "keydown": "onKeyDown($event)" } }, exportAs: ["mcNumericalInput"], ngImport: i0 });
143
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McNumberInput, decorators: [{
144
+ type: Directive,
145
+ args: [{
146
+ selector: `input[mcInput][type="number"]`,
147
+ exportAs: 'mcNumericalInput',
148
+ host: {
149
+ '(blur)': 'focusChanged(false)',
150
+ '(focus)': 'focusChanged(true)',
151
+ '(paste)': 'onPaste($event)',
152
+ '(keydown)': 'onKeyDown($event)'
153
+ }
154
+ }]
155
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.NgControl, decorators: [{
156
+ type: Optional
157
+ }, {
158
+ type: Self
159
+ }] }, { type: undefined, decorators: [{
160
+ type: Attribute,
161
+ args: ['step']
162
+ }] }, { type: undefined, decorators: [{
163
+ type: Attribute,
164
+ args: ['big-step']
165
+ }] }, { type: undefined, decorators: [{
166
+ type: Attribute,
167
+ args: ['min']
168
+ }] }, { type: undefined, decorators: [{
169
+ type: Attribute,
170
+ args: ['max']
171
+ }] }]; }, propDecorators: { bigStep: [{
172
+ type: Input
173
+ }], step: [{
174
+ type: Input
175
+ }], min: [{
176
+ type: Input
177
+ }], max: [{
178
+ type: Input
179
179
  }] } });
180
180
 
181
181
  const MC_INPUT_VALUE_ACCESSOR = new InjectionToken('MC_INPUT_VALUE_ACCESSOR');
182
182
 
183
- const MC_INPUT_INVALID_TYPES = [
184
- 'button',
185
- 'checkbox',
186
- 'file',
187
- 'hidden',
188
- 'image',
189
- 'radio',
190
- 'range',
191
- 'reset',
192
- 'submit'
193
- ];
194
- let nextUniqueId$1 = 0;
195
- class McInputBase {
196
- constructor(defaultErrorStateMatcher, parentForm, parentFormGroup, ngControl) {
197
- this.defaultErrorStateMatcher = defaultErrorStateMatcher;
198
- this.parentForm = parentForm;
199
- this.parentFormGroup = parentFormGroup;
200
- this.ngControl = ngControl;
201
- }
202
- }
203
- // tslint:disable-next-line:naming-convention
204
- const McInputMixinBase = mixinErrorState(McInputBase);
205
- class McInput extends McInputMixinBase {
206
- // tslint:disable-next-line: naming-convention
207
- constructor(elementRef, rawValidators, mcValidation, ngControl, numberInput, ngModel, formControlName, parentForm, parentFormGroup, defaultErrorStateMatcher, inputValueAccessor, changeDetectorRef) {
208
- super(defaultErrorStateMatcher, parentForm, parentFormGroup, ngControl);
209
- this.elementRef = elementRef;
210
- this.rawValidators = rawValidators;
211
- this.mcValidation = mcValidation;
212
- this.numberInput = numberInput;
213
- this.ngModel = ngModel;
214
- this.formControlName = formControlName;
215
- this.changeDetectorRef = changeDetectorRef;
216
- /**
217
- * Implemented as part of McFormFieldControl.
218
- * @docs-private
219
- */
220
- this.focused = false;
221
- /**
222
- * Implemented as part of McFormFieldControl.
223
- * @docs-private
224
- */
225
- this.stateChanges = new Subject();
226
- /**
227
- * Implemented as part of McFormFieldControl.
228
- * @docs-private
229
- */
230
- this.controlType = 'input';
231
- this.uid = `mc-input-${nextUniqueId$1++}`;
232
- this.neverEmptyInputTypes = [
233
- 'date',
234
- 'datetime',
235
- 'datetime-local',
236
- 'month',
237
- 'time',
238
- 'week'
239
- ].filter((t) => getSupportedInputTypes().has(t));
240
- this._disabled = false;
241
- this._required = false;
242
- // tslint:enable no-reserved-keywords
243
- this._type = 'text';
244
- // If no input value accessor was explicitly specified, use the element as the input value
245
- // accessor.
246
- this._inputValueAccessor = inputValueAccessor || this.elementRef.nativeElement;
247
- this.previousNativeValue = this.value;
248
- // Force setter to be called in case id was not specified.
249
- this.id = this.id;
250
- }
251
- /**
252
- * Implemented as part of McFormFieldControl.
253
- * @docs-private
254
- */
255
- get disabled() {
256
- if (this.ngControl && this.ngControl.disabled !== null) {
257
- return this.ngControl.disabled;
258
- }
259
- return this._disabled;
260
- }
261
- set disabled(value) {
262
- this._disabled = coerceBooleanProperty(value);
263
- // Browsers may not fire the blur event if the input is disabled too quickly.
264
- // Reset from here to ensure that the element doesn't become stuck.
265
- if (this.focused) {
266
- this.focused = false;
267
- this.stateChanges.next();
268
- }
269
- }
270
- /**
271
- * Implemented as part of McFormFieldControl.
272
- * @docs-private
273
- */
274
- get id() {
275
- return this._id;
276
- }
277
- set id(value) {
278
- this._id = value || this.uid;
279
- }
280
- /**
281
- * Implemented as part of McFormFieldControl.
282
- * @docs-private
283
- */
284
- get required() {
285
- return this._required;
286
- }
287
- set required(value) {
288
- this._required = coerceBooleanProperty(value);
289
- }
290
- // tslint:disable no-reserved-keywords
291
- /** Input type of the element. */
292
- get type() {
293
- return this._type;
294
- }
295
- set type(value) {
296
- this._type = value || 'text';
297
- this.validateType();
298
- // When using Angular inputs, developers are no longer able to set the properties on the native
299
- // input element. To ensure that bindings for `type` work, we need to sync the setter
300
- // with the native property. Textarea elements don't support the type property or attribute.
301
- if (getSupportedInputTypes().has(this._type)) {
302
- this.elementRef.nativeElement.type = this._type;
303
- }
304
- }
305
- /**
306
- * Implemented as part of McFormFieldControl.
307
- * @docs-private
308
- */
309
- get value() {
310
- return this._inputValueAccessor.value;
311
- }
312
- set value(value) {
313
- if (value !== this.value) {
314
- this._inputValueAccessor.value = value;
315
- this.stateChanges.next();
316
- }
317
- }
318
- ngAfterContentInit() {
319
- if (!this.ngControl) {
320
- return;
321
- }
322
- if (this.mcValidation.useValidation) {
323
- setMosaicValidation(this, this.changeDetectorRef);
324
- }
325
- }
326
- ngOnChanges() {
327
- this.stateChanges.next();
328
- }
329
- ngOnDestroy() {
330
- this.stateChanges.complete();
331
- }
332
- ngDoCheck() {
333
- if (this.ngControl) {
334
- // We need to re-evaluate this on every change detection cycle, because there are some
335
- // error triggers that we can't subscribe to (e.g. parent form submissions). This means
336
- // that whatever logic is in here has to be super lean or we risk destroying the performance.
337
- this.updateErrorState();
338
- }
339
- // We need to dirty-check the native element's value, because there are some cases where
340
- // we won't be notified when it changes (e.g. the consumer isn't using forms or they're
341
- // updating the value using `emitEvent: false`).
342
- this.dirtyCheckNativeValue();
343
- }
344
- /** Focuses the input. */
345
- focus() {
346
- this.elementRef.nativeElement.focus();
347
- }
348
- onBlur() {
349
- this.focusChanged(false);
350
- if (this.ngControl && this.ngControl.control) {
351
- const control = this.ngControl.control;
352
- control.updateValueAndValidity({ emitEvent: false });
353
- control.statusChanges.emit(control.status);
354
- }
355
- }
356
- /** Callback for the cases where the focused state of the input changes. */
357
- focusChanged(isFocused) {
358
- if (isFocused !== this.focused) {
359
- this.focused = isFocused;
360
- this.stateChanges.next();
361
- }
362
- }
363
- onInput() {
364
- // This is a noop function and is used to let Angular know whenever the value changes.
365
- // Angular will run a new change detection each time the `input` event has been dispatched.
366
- // It's necessary that Angular recognizes the value change, because when floatingLabel
367
- // is set to false and Angular forms aren't used, the placeholder won't recognize the
368
- // value changes and will not disappear.
369
- // Listening to the input event wouldn't be necessary when the input is using the
370
- // FormsModule or ReactiveFormsModule, because Angular forms also listens to input events.
371
- }
372
- /**
373
- * Implemented as part of McFormFieldControl.
374
- * @docs-private
375
- */
376
- get empty() {
377
- return !this.isNeverEmpty() && !this.elementRef.nativeElement.value && !this.isBadInput();
378
- }
379
- /**
380
- * Implemented as part of McFormFieldControl.
381
- * @docs-private
382
- */
383
- onContainerClick() {
384
- this.focus();
385
- }
386
- /** Does some manual dirty checking on the native input `value` property. */
387
- dirtyCheckNativeValue() {
388
- const newValue = this.value;
389
- if (this.previousNativeValue !== newValue) {
390
- this.previousNativeValue = newValue;
391
- this.stateChanges.next();
392
- }
393
- }
394
- /** Make sure the input is a supported type. */
395
- validateType() {
396
- if (MC_INPUT_INVALID_TYPES.indexOf(this._type) > -1) {
397
- throw getMcInputUnsupportedTypeError(this._type);
398
- }
399
- }
400
- /** Checks whether the input type is one of the types that are never empty. */
401
- isNeverEmpty() {
402
- return this.neverEmptyInputTypes.indexOf(this._type) > -1;
403
- }
404
- /** Checks whether the input is invalid based on the native validation. */
405
- isBadInput() {
406
- // The `validity` property won't be present on platform-server.
407
- const validity = this.elementRef.nativeElement.validity;
408
- return validity && validity.badInput;
409
- }
410
- }
411
- /** @nocollapse */ /** @nocollapse */ McInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McInput, deps: [{ token: i0.ElementRef }, { token: NG_VALIDATORS, optional: true, self: true }, { token: MC_VALIDATION, optional: true }, { token: i1.NgControl, optional: true, self: true }, { token: McNumberInput, optional: true, self: true }, { token: i1.NgModel, optional: true, self: true }, { token: i1.FormControlName, optional: true, self: true }, { token: i1.NgForm, optional: true }, { token: i1.FormGroupDirective, optional: true }, { token: i3.ErrorStateMatcher }, { token: MC_INPUT_VALUE_ACCESSOR, optional: true, self: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
412
- /** @nocollapse */ /** @nocollapse */ McInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: McInput, selector: "input[mcInput]", inputs: { errorStateMatcher: "errorStateMatcher", placeholder: "placeholder", disabled: "disabled", id: "id", required: "required", type: "type", value: "value" }, host: { listeners: { "blur": "onBlur()", "focus": "focusChanged(true)", "input": "onInput()" }, properties: { "attr.id": "id", "attr.placeholder": "placeholder", "attr.disabled": "disabled || null", "required": "required" }, classAttribute: "mc-input" }, providers: [{
413
- provide: McFormFieldControl, useExisting: McInput
414
- }], exportAs: ["mcInput"], usesInheritance: true, usesOnChanges: true, ngImport: i0 });
415
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McInput, decorators: [{
416
- type: Directive,
417
- args: [{
418
- selector: `input[mcInput]`,
419
- exportAs: 'mcInput',
420
- host: {
421
- class: 'mc-input',
422
- // Native input properties that are overwritten by Angular inputs need to be synced with
423
- // the native input element. Otherwise property bindings for those don't work.
424
- '[attr.id]': 'id',
425
- '[attr.placeholder]': 'placeholder',
426
- '[attr.disabled]': 'disabled || null',
427
- '[required]': 'required',
428
- '(blur)': 'onBlur()',
429
- '(focus)': 'focusChanged(true)',
430
- '(input)': 'onInput()'
431
- },
432
- providers: [{
433
- provide: McFormFieldControl, useExisting: McInput
434
- }]
435
- }]
436
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: undefined, decorators: [{
437
- type: Optional
438
- }, {
439
- type: Self
440
- }, {
441
- type: Inject,
442
- args: [NG_VALIDATORS]
443
- }] }, { type: undefined, decorators: [{
444
- type: Optional
445
- }, {
446
- type: Inject,
447
- args: [MC_VALIDATION]
448
- }] }, { type: i1.NgControl, decorators: [{
449
- type: Optional
450
- }, {
451
- type: Self
452
- }] }, { type: McNumberInput, decorators: [{
453
- type: Optional
454
- }, {
455
- type: Self
456
- }] }, { type: i1.NgModel, decorators: [{
457
- type: Optional
458
- }, {
459
- type: Self
460
- }] }, { type: i1.FormControlName, decorators: [{
461
- type: Optional
462
- }, {
463
- type: Self
464
- }] }, { type: i1.NgForm, decorators: [{
465
- type: Optional
466
- }] }, { type: i1.FormGroupDirective, decorators: [{
467
- type: Optional
468
- }] }, { type: i3.ErrorStateMatcher }, { type: undefined, decorators: [{
469
- type: Optional
470
- }, {
471
- type: Self
472
- }, {
473
- type: Inject,
474
- args: [MC_INPUT_VALUE_ACCESSOR]
475
- }] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { errorStateMatcher: [{
476
- type: Input
477
- }], placeholder: [{
478
- type: Input
479
- }], disabled: [{
480
- type: Input
481
- }], id: [{
482
- type: Input
483
- }], required: [{
484
- type: Input
485
- }], type: [{
486
- type: Input
487
- }], value: [{
488
- type: Input
489
- }] } });
490
- class McInputMono {
491
- }
492
- /** @nocollapse */ /** @nocollapse */ McInputMono.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McInputMono, deps: [], target: i0.ɵɵFactoryTarget.Directive });
493
- /** @nocollapse */ /** @nocollapse */ McInputMono.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: McInputMono, selector: "input[mcInputMonospace]", host: { classAttribute: "mc-input_monospace" }, exportAs: ["McInputMonospace"], ngImport: i0 });
494
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McInputMono, decorators: [{
495
- type: Directive,
496
- args: [{
497
- selector: 'input[mcInputMonospace]',
498
- exportAs: 'McInputMonospace',
499
- host: { class: 'mc-input_monospace' }
500
- }]
183
+ const MC_INPUT_INVALID_TYPES = [
184
+ 'button',
185
+ 'checkbox',
186
+ 'file',
187
+ 'hidden',
188
+ 'image',
189
+ 'radio',
190
+ 'range',
191
+ 'reset',
192
+ 'submit'
193
+ ];
194
+ let nextUniqueId$1 = 0;
195
+ class McInputBase {
196
+ constructor(defaultErrorStateMatcher, parentForm, parentFormGroup, ngControl) {
197
+ this.defaultErrorStateMatcher = defaultErrorStateMatcher;
198
+ this.parentForm = parentForm;
199
+ this.parentFormGroup = parentFormGroup;
200
+ this.ngControl = ngControl;
201
+ }
202
+ }
203
+ // tslint:disable-next-line:naming-convention
204
+ const McInputMixinBase = mixinErrorState(McInputBase);
205
+ class McInput extends McInputMixinBase {
206
+ // tslint:disable-next-line: naming-convention
207
+ constructor(elementRef, rawValidators, mcValidation, ngControl, numberInput, ngModel, formControlName, parentForm, parentFormGroup, defaultErrorStateMatcher, inputValueAccessor, changeDetectorRef) {
208
+ super(defaultErrorStateMatcher, parentForm, parentFormGroup, ngControl);
209
+ this.elementRef = elementRef;
210
+ this.rawValidators = rawValidators;
211
+ this.mcValidation = mcValidation;
212
+ this.numberInput = numberInput;
213
+ this.ngModel = ngModel;
214
+ this.formControlName = formControlName;
215
+ this.changeDetectorRef = changeDetectorRef;
216
+ /**
217
+ * Implemented as part of McFormFieldControl.
218
+ * @docs-private
219
+ */
220
+ this.focused = false;
221
+ /**
222
+ * Implemented as part of McFormFieldControl.
223
+ * @docs-private
224
+ */
225
+ this.stateChanges = new Subject();
226
+ /**
227
+ * Implemented as part of McFormFieldControl.
228
+ * @docs-private
229
+ */
230
+ this.controlType = 'input';
231
+ this.uid = `mc-input-${nextUniqueId$1++}`;
232
+ this.neverEmptyInputTypes = [
233
+ 'date',
234
+ 'datetime',
235
+ 'datetime-local',
236
+ 'month',
237
+ 'time',
238
+ 'week'
239
+ ].filter((t) => getSupportedInputTypes().has(t));
240
+ this._disabled = false;
241
+ this._required = false;
242
+ // tslint:enable no-reserved-keywords
243
+ this._type = 'text';
244
+ // If no input value accessor was explicitly specified, use the element as the input value
245
+ // accessor.
246
+ this._inputValueAccessor = inputValueAccessor || this.elementRef.nativeElement;
247
+ this.previousNativeValue = this.value;
248
+ // Force setter to be called in case id was not specified.
249
+ this.id = this.id;
250
+ }
251
+ /**
252
+ * Implemented as part of McFormFieldControl.
253
+ * @docs-private
254
+ */
255
+ get disabled() {
256
+ if (this.ngControl && this.ngControl.disabled !== null) {
257
+ return this.ngControl.disabled;
258
+ }
259
+ return this._disabled;
260
+ }
261
+ set disabled(value) {
262
+ this._disabled = coerceBooleanProperty(value);
263
+ // Browsers may not fire the blur event if the input is disabled too quickly.
264
+ // Reset from here to ensure that the element doesn't become stuck.
265
+ if (this.focused) {
266
+ this.focused = false;
267
+ this.stateChanges.next();
268
+ }
269
+ }
270
+ /**
271
+ * Implemented as part of McFormFieldControl.
272
+ * @docs-private
273
+ */
274
+ get id() {
275
+ return this._id;
276
+ }
277
+ set id(value) {
278
+ this._id = value || this.uid;
279
+ }
280
+ /**
281
+ * Implemented as part of McFormFieldControl.
282
+ * @docs-private
283
+ */
284
+ get required() {
285
+ return this._required;
286
+ }
287
+ set required(value) {
288
+ this._required = coerceBooleanProperty(value);
289
+ }
290
+ // tslint:disable no-reserved-keywords
291
+ /** Input type of the element. */
292
+ get type() {
293
+ return this._type;
294
+ }
295
+ set type(value) {
296
+ this._type = value || 'text';
297
+ this.validateType();
298
+ // When using Angular inputs, developers are no longer able to set the properties on the native
299
+ // input element. To ensure that bindings for `type` work, we need to sync the setter
300
+ // with the native property. Textarea elements don't support the type property or attribute.
301
+ if (getSupportedInputTypes().has(this._type)) {
302
+ this.elementRef.nativeElement.type = this._type;
303
+ }
304
+ }
305
+ /**
306
+ * Implemented as part of McFormFieldControl.
307
+ * @docs-private
308
+ */
309
+ get value() {
310
+ return this._inputValueAccessor.value;
311
+ }
312
+ set value(value) {
313
+ if (value !== this.value) {
314
+ this._inputValueAccessor.value = value;
315
+ this.stateChanges.next();
316
+ }
317
+ }
318
+ ngAfterContentInit() {
319
+ if (!this.ngControl) {
320
+ return;
321
+ }
322
+ if (this.mcValidation.useValidation) {
323
+ setMosaicValidation(this, this.changeDetectorRef);
324
+ }
325
+ }
326
+ ngOnChanges() {
327
+ this.stateChanges.next();
328
+ }
329
+ ngOnDestroy() {
330
+ this.stateChanges.complete();
331
+ }
332
+ ngDoCheck() {
333
+ if (this.ngControl) {
334
+ // We need to re-evaluate this on every change detection cycle, because there are some
335
+ // error triggers that we can't subscribe to (e.g. parent form submissions). This means
336
+ // that whatever logic is in here has to be super lean or we risk destroying the performance.
337
+ this.updateErrorState();
338
+ }
339
+ // We need to dirty-check the native element's value, because there are some cases where
340
+ // we won't be notified when it changes (e.g. the consumer isn't using forms or they're
341
+ // updating the value using `emitEvent: false`).
342
+ this.dirtyCheckNativeValue();
343
+ }
344
+ /** Focuses the input. */
345
+ focus() {
346
+ this.elementRef.nativeElement.focus();
347
+ }
348
+ onBlur() {
349
+ this.focusChanged(false);
350
+ if (this.ngControl && this.ngControl.control) {
351
+ const control = this.ngControl.control;
352
+ control.updateValueAndValidity({ emitEvent: false });
353
+ control.statusChanges.emit(control.status);
354
+ }
355
+ }
356
+ /** Callback for the cases where the focused state of the input changes. */
357
+ focusChanged(isFocused) {
358
+ if (isFocused !== this.focused) {
359
+ this.focused = isFocused;
360
+ this.stateChanges.next();
361
+ }
362
+ }
363
+ onInput() {
364
+ // This is a noop function and is used to let Angular know whenever the value changes.
365
+ // Angular will run a new change detection each time the `input` event has been dispatched.
366
+ // It's necessary that Angular recognizes the value change, because when floatingLabel
367
+ // is set to false and Angular forms aren't used, the placeholder won't recognize the
368
+ // value changes and will not disappear.
369
+ // Listening to the input event wouldn't be necessary when the input is using the
370
+ // FormsModule or ReactiveFormsModule, because Angular forms also listens to input events.
371
+ }
372
+ /**
373
+ * Implemented as part of McFormFieldControl.
374
+ * @docs-private
375
+ */
376
+ get empty() {
377
+ return !this.isNeverEmpty() && !this.elementRef.nativeElement.value && !this.isBadInput();
378
+ }
379
+ /**
380
+ * Implemented as part of McFormFieldControl.
381
+ * @docs-private
382
+ */
383
+ onContainerClick() {
384
+ this.focus();
385
+ }
386
+ /** Does some manual dirty checking on the native input `value` property. */
387
+ dirtyCheckNativeValue() {
388
+ const newValue = this.value;
389
+ if (this.previousNativeValue !== newValue) {
390
+ this.previousNativeValue = newValue;
391
+ this.stateChanges.next();
392
+ }
393
+ }
394
+ /** Make sure the input is a supported type. */
395
+ validateType() {
396
+ if (MC_INPUT_INVALID_TYPES.indexOf(this._type) > -1) {
397
+ throw getMcInputUnsupportedTypeError(this._type);
398
+ }
399
+ }
400
+ /** Checks whether the input type is one of the types that are never empty. */
401
+ isNeverEmpty() {
402
+ return this.neverEmptyInputTypes.indexOf(this._type) > -1;
403
+ }
404
+ /** Checks whether the input is invalid based on the native validation. */
405
+ isBadInput() {
406
+ // The `validity` property won't be present on platform-server.
407
+ const validity = this.elementRef.nativeElement.validity;
408
+ return validity && validity.badInput;
409
+ }
410
+ }
411
+ /** @nocollapse */ /** @nocollapse */ McInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McInput, deps: [{ token: i0.ElementRef }, { token: NG_VALIDATORS, optional: true, self: true }, { token: MC_VALIDATION, optional: true }, { token: i1.NgControl, optional: true, self: true }, { token: McNumberInput, optional: true, self: true }, { token: i1.NgModel, optional: true, self: true }, { token: i1.FormControlName, optional: true, self: true }, { token: i1.NgForm, optional: true }, { token: i1.FormGroupDirective, optional: true }, { token: i3.ErrorStateMatcher }, { token: MC_INPUT_VALUE_ACCESSOR, optional: true, self: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
412
+ /** @nocollapse */ /** @nocollapse */ McInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: McInput, selector: "input[mcInput]", inputs: { errorStateMatcher: "errorStateMatcher", placeholder: "placeholder", disabled: "disabled", id: "id", required: "required", type: "type", value: "value" }, host: { listeners: { "blur": "onBlur()", "focus": "focusChanged(true)", "input": "onInput()" }, properties: { "attr.id": "id", "attr.placeholder": "placeholder", "attr.disabled": "disabled || null", "required": "required" }, classAttribute: "mc-input" }, providers: [{
413
+ provide: McFormFieldControl, useExisting: McInput
414
+ }], exportAs: ["mcInput"], usesInheritance: true, usesOnChanges: true, ngImport: i0 });
415
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McInput, decorators: [{
416
+ type: Directive,
417
+ args: [{
418
+ selector: `input[mcInput]`,
419
+ exportAs: 'mcInput',
420
+ host: {
421
+ class: 'mc-input',
422
+ // Native input properties that are overwritten by Angular inputs need to be synced with
423
+ // the native input element. Otherwise property bindings for those don't work.
424
+ '[attr.id]': 'id',
425
+ '[attr.placeholder]': 'placeholder',
426
+ '[attr.disabled]': 'disabled || null',
427
+ '[required]': 'required',
428
+ '(blur)': 'onBlur()',
429
+ '(focus)': 'focusChanged(true)',
430
+ '(input)': 'onInput()'
431
+ },
432
+ providers: [{
433
+ provide: McFormFieldControl, useExisting: McInput
434
+ }]
435
+ }]
436
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: undefined, decorators: [{
437
+ type: Optional
438
+ }, {
439
+ type: Self
440
+ }, {
441
+ type: Inject,
442
+ args: [NG_VALIDATORS]
443
+ }] }, { type: undefined, decorators: [{
444
+ type: Optional
445
+ }, {
446
+ type: Inject,
447
+ args: [MC_VALIDATION]
448
+ }] }, { type: i1.NgControl, decorators: [{
449
+ type: Optional
450
+ }, {
451
+ type: Self
452
+ }] }, { type: McNumberInput, decorators: [{
453
+ type: Optional
454
+ }, {
455
+ type: Self
456
+ }] }, { type: i1.NgModel, decorators: [{
457
+ type: Optional
458
+ }, {
459
+ type: Self
460
+ }] }, { type: i1.FormControlName, decorators: [{
461
+ type: Optional
462
+ }, {
463
+ type: Self
464
+ }] }, { type: i1.NgForm, decorators: [{
465
+ type: Optional
466
+ }] }, { type: i1.FormGroupDirective, decorators: [{
467
+ type: Optional
468
+ }] }, { type: i3.ErrorStateMatcher }, { type: undefined, decorators: [{
469
+ type: Optional
470
+ }, {
471
+ type: Self
472
+ }, {
473
+ type: Inject,
474
+ args: [MC_INPUT_VALUE_ACCESSOR]
475
+ }] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { errorStateMatcher: [{
476
+ type: Input
477
+ }], placeholder: [{
478
+ type: Input
479
+ }], disabled: [{
480
+ type: Input
481
+ }], id: [{
482
+ type: Input
483
+ }], required: [{
484
+ type: Input
485
+ }], type: [{
486
+ type: Input
487
+ }], value: [{
488
+ type: Input
489
+ }] } });
490
+ class McInputMono {
491
+ }
492
+ /** @nocollapse */ /** @nocollapse */ McInputMono.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McInputMono, deps: [], target: i0.ɵɵFactoryTarget.Directive });
493
+ /** @nocollapse */ /** @nocollapse */ McInputMono.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: McInputMono, selector: "input[mcInputMonospace]", host: { classAttribute: "mc-input_monospace" }, exportAs: ["McInputMonospace"], ngImport: i0 });
494
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McInputMono, decorators: [{
495
+ type: Directive,
496
+ args: [{
497
+ selector: 'input[mcInputMonospace]',
498
+ exportAs: 'McInputMonospace',
499
+ host: { class: 'mc-input_monospace' }
500
+ }]
501
501
  }] });
502
502
 
503
- const MIN_VALIDATOR = {
504
- provide: NG_VALIDATORS,
505
- useExisting: forwardRef(() => MinValidator),
506
- multi: true
507
- };
508
- /**
509
- * A directive which installs the {@link MinValidator} for any `formControlName`,
510
- * `formControl`, or control with `ngModel` that also has a `min` attribute.
511
- *
512
- * @experimental
513
- */
514
- class MinValidator {
515
- ngOnChanges(changes) {
516
- if ('min' in changes) {
517
- this.createValidator();
518
- if (this.onChange) {
519
- this.onChange();
520
- }
521
- }
522
- }
523
- validate(c) {
524
- return this.validator(c);
525
- }
526
- registerOnValidatorChange(fn) {
527
- this.onChange = fn;
528
- }
529
- createValidator() {
530
- this.validator = Validators.min(parseInt(this.min, 10));
531
- }
532
- }
533
- /** @nocollapse */ /** @nocollapse */ MinValidator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MinValidator, deps: [], target: i0.ɵɵFactoryTarget.Directive });
534
- /** @nocollapse */ /** @nocollapse */ MinValidator.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: MinValidator, selector: "[min][formControlName],[min][formControl],[min][ngModel]", inputs: { min: "min" }, host: { properties: { "attr.min": "min ? min : null" } }, providers: [MIN_VALIDATOR], usesOnChanges: true, ngImport: i0 });
535
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MinValidator, decorators: [{
536
- type: Directive,
537
- args: [{
538
- selector: '[min][formControlName],[min][formControl],[min][ngModel]',
539
- providers: [MIN_VALIDATOR],
540
- host: {
541
- '[attr.min]': 'min ? min : null'
542
- }
543
- }]
544
- }], propDecorators: { min: [{
545
- type: Input
546
- }] } });
547
- const MAX_VALIDATOR = {
548
- provide: NG_VALIDATORS,
549
- useExisting: forwardRef(() => MaxValidator),
550
- multi: true
551
- };
552
- /**
553
- * A directive which installs the {@link MaxValidator} for any `formControlName`,
554
- * `formControl`, or control with `ngModel` that also has a `min` attribute.
555
- *
556
- * @experimental
557
- */
558
- class MaxValidator {
559
- ngOnChanges(changes) {
560
- if ('max' in changes) {
561
- this.createValidator();
562
- if (this.onChange) {
563
- this.onChange();
564
- }
565
- }
566
- }
567
- validate(c) {
568
- return this.validator(c);
569
- }
570
- registerOnValidatorChange(fn) {
571
- this.onChange = fn;
572
- }
573
- createValidator() {
574
- this.validator = Validators.max(parseInt(this.max, 10));
575
- }
576
- }
577
- /** @nocollapse */ /** @nocollapse */ MaxValidator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MaxValidator, deps: [], target: i0.ɵɵFactoryTarget.Directive });
578
- /** @nocollapse */ /** @nocollapse */ MaxValidator.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: MaxValidator, selector: "[max][formControlName],[max][formControl],[max][ngModel]", inputs: { max: "max" }, host: { properties: { "attr.max": "max ? max : null" } }, providers: [MAX_VALIDATOR], usesOnChanges: true, ngImport: i0 });
579
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MaxValidator, decorators: [{
580
- type: Directive,
581
- args: [{
582
- selector: '[max][formControlName],[max][formControl],[max][ngModel]',
583
- providers: [MAX_VALIDATOR],
584
- host: {
585
- '[attr.max]': 'max ? max : null'
586
- }
587
- }]
588
- }], propDecorators: { max: [{
589
- type: Input
503
+ const MIN_VALIDATOR = {
504
+ provide: NG_VALIDATORS,
505
+ useExisting: forwardRef(() => MinValidator),
506
+ multi: true
507
+ };
508
+ /**
509
+ * A directive which installs the {@link MinValidator} for any `formControlName`,
510
+ * `formControl`, or control with `ngModel` that also has a `min` attribute.
511
+ *
512
+ * @experimental
513
+ */
514
+ class MinValidator {
515
+ ngOnChanges(changes) {
516
+ if ('min' in changes) {
517
+ this.createValidator();
518
+ if (this.onChange) {
519
+ this.onChange();
520
+ }
521
+ }
522
+ }
523
+ validate(c) {
524
+ return this.validator(c);
525
+ }
526
+ registerOnValidatorChange(fn) {
527
+ this.onChange = fn;
528
+ }
529
+ createValidator() {
530
+ this.validator = Validators.min(parseInt(this.min, 10));
531
+ }
532
+ }
533
+ /** @nocollapse */ /** @nocollapse */ MinValidator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MinValidator, deps: [], target: i0.ɵɵFactoryTarget.Directive });
534
+ /** @nocollapse */ /** @nocollapse */ MinValidator.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: MinValidator, selector: "[min][formControlName],[min][formControl],[min][ngModel]", inputs: { min: "min" }, host: { properties: { "attr.min": "min ? min : null" } }, providers: [MIN_VALIDATOR], usesOnChanges: true, ngImport: i0 });
535
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MinValidator, decorators: [{
536
+ type: Directive,
537
+ args: [{
538
+ selector: '[min][formControlName],[min][formControl],[min][ngModel]',
539
+ providers: [MIN_VALIDATOR],
540
+ host: {
541
+ '[attr.min]': 'min ? min : null'
542
+ }
543
+ }]
544
+ }], propDecorators: { min: [{
545
+ type: Input
546
+ }] } });
547
+ const MAX_VALIDATOR = {
548
+ provide: NG_VALIDATORS,
549
+ useExisting: forwardRef(() => MaxValidator),
550
+ multi: true
551
+ };
552
+ /**
553
+ * A directive which installs the {@link MaxValidator} for any `formControlName`,
554
+ * `formControl`, or control with `ngModel` that also has a `min` attribute.
555
+ *
556
+ * @experimental
557
+ */
558
+ class MaxValidator {
559
+ ngOnChanges(changes) {
560
+ if ('max' in changes) {
561
+ this.createValidator();
562
+ if (this.onChange) {
563
+ this.onChange();
564
+ }
565
+ }
566
+ }
567
+ validate(c) {
568
+ return this.validator(c);
569
+ }
570
+ registerOnValidatorChange(fn) {
571
+ this.onChange = fn;
572
+ }
573
+ createValidator() {
574
+ this.validator = Validators.max(parseInt(this.max, 10));
575
+ }
576
+ }
577
+ /** @nocollapse */ /** @nocollapse */ MaxValidator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MaxValidator, deps: [], target: i0.ɵɵFactoryTarget.Directive });
578
+ /** @nocollapse */ /** @nocollapse */ MaxValidator.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: MaxValidator, selector: "[max][formControlName],[max][formControl],[max][ngModel]", inputs: { max: "max" }, host: { properties: { "attr.max": "max ? max : null" } }, providers: [MAX_VALIDATOR], usesOnChanges: true, ngImport: i0 });
579
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MaxValidator, decorators: [{
580
+ type: Directive,
581
+ args: [{
582
+ selector: '[max][formControlName],[max][formControl],[max][ngModel]',
583
+ providers: [MAX_VALIDATOR],
584
+ host: {
585
+ '[attr.max]': 'max ? max : null'
586
+ }
587
+ }]
588
+ }], propDecorators: { max: [{
589
+ type: Input
590
590
  }] } });
591
591
 
592
- let nextUniqueId = 0;
593
- class McPasswordToggle extends McTooltipTrigger {
594
- constructor(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction, focusMonitor, formField) {
595
- super(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction);
596
- this.focusMonitor = focusMonitor;
597
- this.formField = formField;
598
- this._tabIndex = 0;
599
- this.trigger = `${PopUpTriggers.Hover}`;
600
- this.runFocusMonitor();
601
- }
602
- get content() {
603
- return this.formField.control.elementType === 'password' ?
604
- this.mcTooltipHidden :
605
- this._content;
606
- }
607
- set content(content) {
608
- this._content = content;
609
- this.updateData();
610
- }
611
- get disabled() {
612
- return this._disabled === undefined ? this.formField.disabled : this._disabled;
613
- }
614
- set disabled(value) {
615
- this._disabled = coerceBooleanProperty(value);
616
- this._disabled ? this.stopFocusMonitor() : this.runFocusMonitor();
617
- }
618
- get tabIndex() {
619
- return this.disabled ? -1 : this._tabIndex;
620
- }
621
- set tabIndex(value) {
622
- // If the specified tabIndex value is null or undefined, fall back to the default value.
623
- this._tabIndex = value != null ? coerceNumberProperty(value) : 0;
624
- }
625
- get hidden() {
626
- return this.formField.control.elementType === 'password';
627
- }
628
- ngOnDestroy() {
629
- this.stopFocusMonitor();
630
- }
631
- toggle() {
632
- if (this.disabled) {
633
- return;
634
- }
635
- this.hide();
636
- const input = this.formField.control;
637
- input.toggleType();
638
- this.updateData();
639
- }
640
- runFocusMonitor() {
641
- this.focusMonitor.monitor(this.elementRef)
642
- .subscribe((origin) => {
643
- if (origin === 'keyboard') {
644
- this.show();
645
- }
646
- else if (origin === null) {
647
- this.hide();
648
- }
649
- });
650
- }
651
- stopFocusMonitor() {
652
- this.focusMonitor.stopMonitoring(this.elementRef);
653
- }
654
- }
655
- /** @nocollapse */ /** @nocollapse */ McPasswordToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McPasswordToggle, deps: [{ token: i1$1.Overlay }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i1$1.ScrollDispatcher }, { token: i0.ViewContainerRef }, { token: MC_TOOLTIP_SCROLL_STRATEGY }, { token: i2.Directionality, optional: true }, { token: i3$1.FocusMonitor }, { token: i4.McFormField }], target: i0.ɵɵFactoryTarget.Component });
656
- /** @nocollapse */ /** @nocollapse */ McPasswordToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: McPasswordToggle, selector: "mc-password-toggle", inputs: { content: ["mcTooltipNotHidden", "content"], mcTooltipHidden: "mcTooltipHidden", disabled: "disabled", tabIndex: "tabIndex" }, host: { listeners: { "click": "toggle()", "keydown.ENTER": "toggle()", "keydown.SPACE": "toggle()" }, properties: { "class.mc-eye_16": "hidden", "class.mc-eye-crossed_16": "!hidden", "attr.tabindex": "disabled ? null : tabIndex", "attr.disabled": "disabled || null" }, classAttribute: "mc-password-toggle mc" }, exportAs: ["mcPasswordToggle"], usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
657
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McPasswordToggle, decorators: [{
658
- type: Component,
659
- args: [{
660
- selector: `mc-password-toggle`,
661
- exportAs: 'mcPasswordToggle',
662
- template: '<ng-content></ng-content>',
663
- host: {
664
- class: 'mc-password-toggle mc',
665
- '[class.mc-eye_16]': 'hidden',
666
- '[class.mc-eye-crossed_16]': '!hidden',
667
- '[attr.tabindex]': 'disabled ? null : tabIndex',
668
- '[attr.disabled]': 'disabled || null',
669
- '(click)': 'toggle()',
670
- '(keydown.ENTER)': 'toggle()',
671
- '(keydown.SPACE)': 'toggle()'
672
- },
673
- changeDetection: ChangeDetectionStrategy.OnPush,
674
- encapsulation: ViewEncapsulation.None
675
- }]
676
- }], ctorParameters: function () { return [{ type: i1$1.Overlay }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i1$1.ScrollDispatcher }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{
677
- type: Inject,
678
- args: [MC_TOOLTIP_SCROLL_STRATEGY]
679
- }] }, { type: i2.Directionality, decorators: [{
680
- type: Optional
681
- }] }, { type: i3$1.FocusMonitor }, { type: i4.McFormField }]; }, propDecorators: { content: [{
682
- type: Input,
683
- args: ['mcTooltipNotHidden']
684
- }], mcTooltipHidden: [{
685
- type: Input
686
- }], disabled: [{
687
- type: Input
688
- }], tabIndex: [{
689
- type: Input
690
- }] } });
691
- class McInputPassword extends McInputMixinBase {
692
- // tslint:disable-next-line: naming-convention
693
- constructor(elementRef, rawValidators, mcValidation, ngControl, ngModel, formControlName, parentForm, parentFormGroup, defaultErrorStateMatcher, inputValueAccessor, changeDetectorRef) {
694
- super(defaultErrorStateMatcher, parentForm, parentFormGroup, ngControl);
695
- this.elementRef = elementRef;
696
- this.rawValidators = rawValidators;
697
- this.mcValidation = mcValidation;
698
- this.ngModel = ngModel;
699
- this.formControlName = formControlName;
700
- this.changeDetectorRef = changeDetectorRef;
701
- /**
702
- * Implemented as part of McFormFieldControl.
703
- * @docs-private
704
- */
705
- this.focused = false;
706
- /**
707
- * Implemented as part of McFormFieldControl.
708
- * @docs-private
709
- */
710
- this.stateChanges = new Subject();
711
- this.checkRule = new Subject();
712
- /**
713
- * Implemented as part of McFormFieldControl.
714
- * @docs-private
715
- */
716
- this.controlType = 'input-password';
717
- this.elementType = 'password';
718
- this.uid = `mc-input-${nextUniqueId++}`;
719
- this._disabled = false;
720
- this._required = false;
721
- // If no input value accessor was explicitly specified, use the element as the input value
722
- // accessor.
723
- this._inputValueAccessor = inputValueAccessor || this.elementRef.nativeElement;
724
- this.previousNativeValue = this.value;
725
- // Force setter to be called in case id was not specified.
726
- this.id = this.id;
727
- }
728
- /**
729
- * Implemented as part of McFormFieldControl.
730
- * @docs-private
731
- */
732
- get disabled() {
733
- if (this.ngControl?.disabled !== null) {
734
- return this.ngControl.disabled;
735
- }
736
- return this._disabled;
737
- }
738
- set disabled(value) {
739
- this._disabled = coerceBooleanProperty(value);
740
- // Browsers may not fire the blur event if the input is disabled too quickly.
741
- // Reset from here to ensure that the element doesn't become stuck.
742
- if (this.focused) {
743
- this.focused = false;
744
- this.stateChanges.next();
745
- }
746
- }
747
- /**
748
- * Implemented as part of McFormFieldControl.
749
- * @docs-private
750
- */
751
- get id() {
752
- return this._id;
753
- }
754
- set id(value) {
755
- this._id = value || this.uid;
756
- }
757
- /**
758
- * Implemented as part of McFormFieldControl.
759
- * @docs-private
760
- */
761
- get required() {
762
- return this._required;
763
- }
764
- set required(value) {
765
- this._required = coerceBooleanProperty(value);
766
- }
767
- // this.elementRef.nativeElement.type = this._type;
768
- /**
769
- * Implemented as part of McFormFieldControl.
770
- * @docs-private
771
- */
772
- get value() {
773
- return this._inputValueAccessor.value;
774
- }
775
- set value(value) {
776
- if (value === this.value) {
777
- return;
778
- }
779
- this._inputValueAccessor.value = value;
780
- this.stateChanges.next();
781
- }
782
- /**
783
- * Implemented as part of McFormFieldControl.
784
- * @docs-private
785
- */
786
- get empty() {
787
- return !this.elementRef.nativeElement.value && !this.isBadInput();
788
- }
789
- ngAfterContentInit() {
790
- if (!this.ngControl) {
791
- return;
792
- }
793
- if (this.mcValidation.useValidation) {
794
- setMosaicValidation(this, this.changeDetectorRef);
795
- }
796
- }
797
- ngOnChanges() {
798
- this.stateChanges.next();
799
- }
800
- ngOnDestroy() {
801
- this.stateChanges.complete();
802
- }
803
- ngDoCheck() {
804
- if (this.ngControl) {
805
- // We need to re-evaluate this on every change detection cycle, because there are some
806
- // error triggers that we can't subscribe to (e.g. parent form submissions). This means
807
- // that whatever logic is in here has to be super lean or we risk destroying the performance.
808
- this.updateErrorState();
809
- }
810
- // We need to dirty-check the native element's value, because there are some cases where
811
- // we won't be notified when it changes (e.g. the consumer isn't using forms or they're
812
- // updating the value using `emitEvent: false`).
813
- this.dirtyCheckNativeValue();
814
- }
815
- checkRules() {
816
- this.checkRule.next();
817
- }
818
- toggleType() {
819
- this.elementType = this.elementType === 'password' ? 'text' : 'password';
820
- }
821
- /** Focuses the input. */
822
- focus() {
823
- this.elementRef.nativeElement.focus();
824
- }
825
- onBlur() {
826
- if (this.ngControl?.control) {
827
- const control = this.ngControl.control;
828
- control.updateValueAndValidity({ emitEvent: false });
829
- control.statusChanges.emit(control.status);
830
- }
831
- this.focusChanged(false);
832
- }
833
- /** Callback for the cases where the focused state of the input changes. */
834
- focusChanged(isFocused) {
835
- if (isFocused === this.focused) {
836
- return;
837
- }
838
- this.focused = isFocused;
839
- this.stateChanges.next({ focused: this.focused });
840
- }
841
- onInput() {
842
- // This is a noop function and is used to let Angular know whenever the value changes.
843
- // Angular will run a new change detection each time the `input` event has been dispatched.
844
- // It's necessary that Angular recognizes the value change, because when floatingLabel
845
- // is set to false and Angular forms aren't used, the placeholder won't recognize the
846
- // value changes and will not disappear.
847
- // Listening to the input event wouldn't be necessary when the input is using the
848
- // FormsModule or ReactiveFormsModule, because Angular forms also listens to input events.
849
- }
850
- /**
851
- * Implemented as part of McFormFieldControl.
852
- * @docs-private
853
- */
854
- onContainerClick() {
855
- this.focus();
856
- }
857
- /** Does some manual dirty checking on the native input `value` property. */
858
- dirtyCheckNativeValue() {
859
- if (this.previousNativeValue !== this.value) {
860
- this.previousNativeValue = this.value;
861
- this.stateChanges.next();
862
- }
863
- }
864
- /** Checks whether the input is invalid based on the native validation. */
865
- isBadInput() {
866
- // The `validity` property won't be present on platform-server.
867
- return this.elementRef.nativeElement.validity?.badInput;
868
- }
869
- }
870
- /** @nocollapse */ /** @nocollapse */ McInputPassword.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McInputPassword, deps: [{ token: i0.ElementRef }, { token: NG_VALIDATORS, optional: true, self: true }, { token: MC_VALIDATION, optional: true }, { token: i1.NgControl, optional: true, self: true }, { token: i1.NgModel, optional: true, self: true }, { token: i1.FormControlName, optional: true, self: true }, { token: i1.NgForm, optional: true }, { token: i1.FormGroupDirective, optional: true }, { token: i3.ErrorStateMatcher }, { token: MC_INPUT_VALUE_ACCESSOR, optional: true, self: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
871
- /** @nocollapse */ /** @nocollapse */ McInputPassword.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: McInputPassword, selector: "input[mcInputPassword]", inputs: { errorStateMatcher: "errorStateMatcher", placeholder: "placeholder", disabled: "disabled", id: "id", required: "required", value: "value" }, host: { listeners: { "blur": "onBlur()", "focus": "focusChanged(true)", "input": "onInput()" }, properties: { "attr.id": "id", "attr.type": "elementType", "attr.placeholder": "placeholder", "attr.disabled": "disabled || null", "required": "required" }, classAttribute: "mc-input mc-input-password" }, providers: [{
872
- provide: McFormFieldControl, useExisting: McInputPassword
873
- }], exportAs: ["mcInputPassword"], usesInheritance: true, usesOnChanges: true, ngImport: i0 });
874
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McInputPassword, decorators: [{
875
- type: Directive,
876
- args: [{
877
- selector: `input[mcInputPassword]`,
878
- exportAs: 'mcInputPassword',
879
- host: {
880
- class: 'mc-input mc-input-password',
881
- // Native input properties that are overwritten by Angular inputs need to be synced with
882
- // the native input element. Otherwise property bindings for those don't work.
883
- '[attr.id]': 'id',
884
- '[attr.type]': 'elementType',
885
- '[attr.placeholder]': 'placeholder',
886
- '[attr.disabled]': 'disabled || null',
887
- '[required]': 'required',
888
- '(blur)': 'onBlur()',
889
- '(focus)': 'focusChanged(true)',
890
- '(input)': 'onInput()'
891
- },
892
- providers: [{
893
- provide: McFormFieldControl, useExisting: McInputPassword
894
- }]
895
- }]
896
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: undefined, decorators: [{
897
- type: Optional
898
- }, {
899
- type: Self
900
- }, {
901
- type: Inject,
902
- args: [NG_VALIDATORS]
903
- }] }, { type: undefined, decorators: [{
904
- type: Optional
905
- }, {
906
- type: Inject,
907
- args: [MC_VALIDATION]
908
- }] }, { type: i1.NgControl, decorators: [{
909
- type: Optional
910
- }, {
911
- type: Self
912
- }] }, { type: i1.NgModel, decorators: [{
913
- type: Optional
914
- }, {
915
- type: Self
916
- }] }, { type: i1.FormControlName, decorators: [{
917
- type: Optional
918
- }, {
919
- type: Self
920
- }] }, { type: i1.NgForm, decorators: [{
921
- type: Optional
922
- }] }, { type: i1.FormGroupDirective, decorators: [{
923
- type: Optional
924
- }] }, { type: i3.ErrorStateMatcher }, { type: undefined, decorators: [{
925
- type: Optional
926
- }, {
927
- type: Self
928
- }, {
929
- type: Inject,
930
- args: [MC_INPUT_VALUE_ACCESSOR]
931
- }] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { errorStateMatcher: [{
932
- type: Input
933
- }], placeholder: [{
934
- type: Input
935
- }], disabled: [{
936
- type: Input
937
- }], id: [{
938
- type: Input
939
- }], required: [{
940
- type: Input
941
- }], value: [{
942
- type: Input
592
+ let nextUniqueId = 0;
593
+ class McPasswordToggle extends McTooltipTrigger {
594
+ constructor(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction, focusMonitor, formField) {
595
+ super(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction);
596
+ this.focusMonitor = focusMonitor;
597
+ this.formField = formField;
598
+ this._tabIndex = 0;
599
+ this.trigger = `${PopUpTriggers.Hover}`;
600
+ this.runFocusMonitor();
601
+ }
602
+ get content() {
603
+ return this.formField.control.elementType === 'password' ?
604
+ this.mcTooltipHidden :
605
+ this._content;
606
+ }
607
+ set content(content) {
608
+ this._content = content;
609
+ this.updateData();
610
+ }
611
+ get disabled() {
612
+ return this._disabled === undefined ? this.formField.disabled : this._disabled;
613
+ }
614
+ set disabled(value) {
615
+ this._disabled = coerceBooleanProperty(value);
616
+ this._disabled ? this.stopFocusMonitor() : this.runFocusMonitor();
617
+ }
618
+ get tabIndex() {
619
+ return this.disabled ? -1 : this._tabIndex;
620
+ }
621
+ set tabIndex(value) {
622
+ // If the specified tabIndex value is null or undefined, fall back to the default value.
623
+ this._tabIndex = value != null ? coerceNumberProperty(value) : 0;
624
+ }
625
+ get hidden() {
626
+ return this.formField.control.elementType === 'password';
627
+ }
628
+ ngOnDestroy() {
629
+ this.stopFocusMonitor();
630
+ }
631
+ toggle() {
632
+ if (this.disabled) {
633
+ return;
634
+ }
635
+ this.hide();
636
+ const input = this.formField.control;
637
+ input.toggleType();
638
+ this.updateData();
639
+ }
640
+ runFocusMonitor() {
641
+ this.focusMonitor.monitor(this.elementRef)
642
+ .subscribe((origin) => {
643
+ if (origin === 'keyboard') {
644
+ this.show();
645
+ }
646
+ else if (origin === null) {
647
+ this.hide();
648
+ }
649
+ });
650
+ }
651
+ stopFocusMonitor() {
652
+ this.focusMonitor.stopMonitoring(this.elementRef);
653
+ }
654
+ }
655
+ /** @nocollapse */ /** @nocollapse */ McPasswordToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McPasswordToggle, deps: [{ token: i1$1.Overlay }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i1$1.ScrollDispatcher }, { token: i0.ViewContainerRef }, { token: MC_TOOLTIP_SCROLL_STRATEGY }, { token: i2.Directionality, optional: true }, { token: i3$1.FocusMonitor }, { token: i4.McFormField }], target: i0.ɵɵFactoryTarget.Component });
656
+ /** @nocollapse */ /** @nocollapse */ McPasswordToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: McPasswordToggle, selector: "mc-password-toggle", inputs: { content: ["mcTooltipNotHidden", "content"], mcTooltipHidden: "mcTooltipHidden", disabled: "disabled", tabIndex: "tabIndex" }, host: { listeners: { "click": "toggle()", "keydown.ENTER": "toggle()", "keydown.SPACE": "toggle()" }, properties: { "class.mc-eye_16": "hidden", "class.mc-eye-crossed_16": "!hidden", "attr.tabindex": "disabled ? null : tabIndex", "attr.disabled": "disabled || null" }, classAttribute: "mc-password-toggle mc" }, exportAs: ["mcPasswordToggle"], usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
657
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McPasswordToggle, decorators: [{
658
+ type: Component,
659
+ args: [{
660
+ selector: `mc-password-toggle`,
661
+ exportAs: 'mcPasswordToggle',
662
+ template: '<ng-content></ng-content>',
663
+ host: {
664
+ class: 'mc-password-toggle mc',
665
+ '[class.mc-eye_16]': 'hidden',
666
+ '[class.mc-eye-crossed_16]': '!hidden',
667
+ '[attr.tabindex]': 'disabled ? null : tabIndex',
668
+ '[attr.disabled]': 'disabled || null',
669
+ '(click)': 'toggle()',
670
+ '(keydown.ENTER)': 'toggle()',
671
+ '(keydown.SPACE)': 'toggle()'
672
+ },
673
+ changeDetection: ChangeDetectionStrategy.OnPush,
674
+ encapsulation: ViewEncapsulation.None
675
+ }]
676
+ }], ctorParameters: function () { return [{ type: i1$1.Overlay }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i1$1.ScrollDispatcher }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{
677
+ type: Inject,
678
+ args: [MC_TOOLTIP_SCROLL_STRATEGY]
679
+ }] }, { type: i2.Directionality, decorators: [{
680
+ type: Optional
681
+ }] }, { type: i3$1.FocusMonitor }, { type: i4.McFormField }]; }, propDecorators: { content: [{
682
+ type: Input,
683
+ args: ['mcTooltipNotHidden']
684
+ }], mcTooltipHidden: [{
685
+ type: Input
686
+ }], disabled: [{
687
+ type: Input
688
+ }], tabIndex: [{
689
+ type: Input
690
+ }] } });
691
+ class McInputPassword extends McInputMixinBase {
692
+ // tslint:disable-next-line: naming-convention
693
+ constructor(elementRef, rawValidators, mcValidation, ngControl, ngModel, formControlName, parentForm, parentFormGroup, defaultErrorStateMatcher, inputValueAccessor, changeDetectorRef) {
694
+ super(defaultErrorStateMatcher, parentForm, parentFormGroup, ngControl);
695
+ this.elementRef = elementRef;
696
+ this.rawValidators = rawValidators;
697
+ this.mcValidation = mcValidation;
698
+ this.ngModel = ngModel;
699
+ this.formControlName = formControlName;
700
+ this.changeDetectorRef = changeDetectorRef;
701
+ /**
702
+ * Implemented as part of McFormFieldControl.
703
+ * @docs-private
704
+ */
705
+ this.focused = false;
706
+ /**
707
+ * Implemented as part of McFormFieldControl.
708
+ * @docs-private
709
+ */
710
+ this.stateChanges = new Subject();
711
+ this.checkRule = new Subject();
712
+ /**
713
+ * Implemented as part of McFormFieldControl.
714
+ * @docs-private
715
+ */
716
+ this.controlType = 'input-password';
717
+ this.elementType = 'password';
718
+ this.uid = `mc-input-${nextUniqueId++}`;
719
+ this._disabled = false;
720
+ this._required = false;
721
+ // If no input value accessor was explicitly specified, use the element as the input value
722
+ // accessor.
723
+ this._inputValueAccessor = inputValueAccessor || this.elementRef.nativeElement;
724
+ this.previousNativeValue = this.value;
725
+ // Force setter to be called in case id was not specified.
726
+ this.id = this.id;
727
+ }
728
+ /**
729
+ * Implemented as part of McFormFieldControl.
730
+ * @docs-private
731
+ */
732
+ get disabled() {
733
+ if (this.ngControl?.disabled !== null) {
734
+ return this.ngControl.disabled;
735
+ }
736
+ return this._disabled;
737
+ }
738
+ set disabled(value) {
739
+ this._disabled = coerceBooleanProperty(value);
740
+ // Browsers may not fire the blur event if the input is disabled too quickly.
741
+ // Reset from here to ensure that the element doesn't become stuck.
742
+ if (this.focused) {
743
+ this.focused = false;
744
+ this.stateChanges.next();
745
+ }
746
+ }
747
+ /**
748
+ * Implemented as part of McFormFieldControl.
749
+ * @docs-private
750
+ */
751
+ get id() {
752
+ return this._id;
753
+ }
754
+ set id(value) {
755
+ this._id = value || this.uid;
756
+ }
757
+ /**
758
+ * Implemented as part of McFormFieldControl.
759
+ * @docs-private
760
+ */
761
+ get required() {
762
+ return this._required;
763
+ }
764
+ set required(value) {
765
+ this._required = coerceBooleanProperty(value);
766
+ }
767
+ // this.elementRef.nativeElement.type = this._type;
768
+ /**
769
+ * Implemented as part of McFormFieldControl.
770
+ * @docs-private
771
+ */
772
+ get value() {
773
+ return this._inputValueAccessor.value;
774
+ }
775
+ set value(value) {
776
+ if (value === this.value) {
777
+ return;
778
+ }
779
+ this._inputValueAccessor.value = value;
780
+ this.stateChanges.next();
781
+ }
782
+ /**
783
+ * Implemented as part of McFormFieldControl.
784
+ * @docs-private
785
+ */
786
+ get empty() {
787
+ return !this.elementRef.nativeElement.value && !this.isBadInput();
788
+ }
789
+ ngAfterContentInit() {
790
+ if (!this.ngControl) {
791
+ return;
792
+ }
793
+ if (this.mcValidation.useValidation) {
794
+ setMosaicValidation(this, this.changeDetectorRef);
795
+ }
796
+ }
797
+ ngOnChanges() {
798
+ this.stateChanges.next();
799
+ }
800
+ ngOnDestroy() {
801
+ this.stateChanges.complete();
802
+ }
803
+ ngDoCheck() {
804
+ if (this.ngControl) {
805
+ // We need to re-evaluate this on every change detection cycle, because there are some
806
+ // error triggers that we can't subscribe to (e.g. parent form submissions). This means
807
+ // that whatever logic is in here has to be super lean or we risk destroying the performance.
808
+ this.updateErrorState();
809
+ }
810
+ // We need to dirty-check the native element's value, because there are some cases where
811
+ // we won't be notified when it changes (e.g. the consumer isn't using forms or they're
812
+ // updating the value using `emitEvent: false`).
813
+ this.dirtyCheckNativeValue();
814
+ }
815
+ checkRules() {
816
+ this.checkRule.next();
817
+ }
818
+ toggleType() {
819
+ this.elementType = this.elementType === 'password' ? 'text' : 'password';
820
+ }
821
+ /** Focuses the input. */
822
+ focus() {
823
+ this.elementRef.nativeElement.focus();
824
+ }
825
+ onBlur() {
826
+ if (this.ngControl?.control) {
827
+ const control = this.ngControl.control;
828
+ control.updateValueAndValidity({ emitEvent: false });
829
+ control.statusChanges.emit(control.status);
830
+ }
831
+ this.focusChanged(false);
832
+ }
833
+ /** Callback for the cases where the focused state of the input changes. */
834
+ focusChanged(isFocused) {
835
+ if (isFocused === this.focused) {
836
+ return;
837
+ }
838
+ this.focused = isFocused;
839
+ this.stateChanges.next({ focused: this.focused });
840
+ }
841
+ onInput() {
842
+ // This is a noop function and is used to let Angular know whenever the value changes.
843
+ // Angular will run a new change detection each time the `input` event has been dispatched.
844
+ // It's necessary that Angular recognizes the value change, because when floatingLabel
845
+ // is set to false and Angular forms aren't used, the placeholder won't recognize the
846
+ // value changes and will not disappear.
847
+ // Listening to the input event wouldn't be necessary when the input is using the
848
+ // FormsModule or ReactiveFormsModule, because Angular forms also listens to input events.
849
+ }
850
+ /**
851
+ * Implemented as part of McFormFieldControl.
852
+ * @docs-private
853
+ */
854
+ onContainerClick() {
855
+ this.focus();
856
+ }
857
+ /** Does some manual dirty checking on the native input `value` property. */
858
+ dirtyCheckNativeValue() {
859
+ if (this.previousNativeValue !== this.value) {
860
+ this.previousNativeValue = this.value;
861
+ this.stateChanges.next();
862
+ }
863
+ }
864
+ /** Checks whether the input is invalid based on the native validation. */
865
+ isBadInput() {
866
+ // The `validity` property won't be present on platform-server.
867
+ return this.elementRef.nativeElement.validity?.badInput;
868
+ }
869
+ }
870
+ /** @nocollapse */ /** @nocollapse */ McInputPassword.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McInputPassword, deps: [{ token: i0.ElementRef }, { token: NG_VALIDATORS, optional: true, self: true }, { token: MC_VALIDATION, optional: true }, { token: i1.NgControl, optional: true, self: true }, { token: i1.NgModel, optional: true, self: true }, { token: i1.FormControlName, optional: true, self: true }, { token: i1.NgForm, optional: true }, { token: i1.FormGroupDirective, optional: true }, { token: i3.ErrorStateMatcher }, { token: MC_INPUT_VALUE_ACCESSOR, optional: true, self: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
871
+ /** @nocollapse */ /** @nocollapse */ McInputPassword.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: McInputPassword, selector: "input[mcInputPassword]", inputs: { errorStateMatcher: "errorStateMatcher", placeholder: "placeholder", disabled: "disabled", id: "id", required: "required", value: "value" }, host: { listeners: { "blur": "onBlur()", "focus": "focusChanged(true)", "input": "onInput()" }, properties: { "attr.id": "id", "attr.type": "elementType", "attr.placeholder": "placeholder", "attr.disabled": "disabled || null", "required": "required" }, classAttribute: "mc-input mc-input-password" }, providers: [{
872
+ provide: McFormFieldControl, useExisting: McInputPassword
873
+ }], exportAs: ["mcInputPassword"], usesInheritance: true, usesOnChanges: true, ngImport: i0 });
874
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McInputPassword, decorators: [{
875
+ type: Directive,
876
+ args: [{
877
+ selector: `input[mcInputPassword]`,
878
+ exportAs: 'mcInputPassword',
879
+ host: {
880
+ class: 'mc-input mc-input-password',
881
+ // Native input properties that are overwritten by Angular inputs need to be synced with
882
+ // the native input element. Otherwise property bindings for those don't work.
883
+ '[attr.id]': 'id',
884
+ '[attr.type]': 'elementType',
885
+ '[attr.placeholder]': 'placeholder',
886
+ '[attr.disabled]': 'disabled || null',
887
+ '[required]': 'required',
888
+ '(blur)': 'onBlur()',
889
+ '(focus)': 'focusChanged(true)',
890
+ '(input)': 'onInput()'
891
+ },
892
+ providers: [{
893
+ provide: McFormFieldControl, useExisting: McInputPassword
894
+ }]
895
+ }]
896
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: undefined, decorators: [{
897
+ type: Optional
898
+ }, {
899
+ type: Self
900
+ }, {
901
+ type: Inject,
902
+ args: [NG_VALIDATORS]
903
+ }] }, { type: undefined, decorators: [{
904
+ type: Optional
905
+ }, {
906
+ type: Inject,
907
+ args: [MC_VALIDATION]
908
+ }] }, { type: i1.NgControl, decorators: [{
909
+ type: Optional
910
+ }, {
911
+ type: Self
912
+ }] }, { type: i1.NgModel, decorators: [{
913
+ type: Optional
914
+ }, {
915
+ type: Self
916
+ }] }, { type: i1.FormControlName, decorators: [{
917
+ type: Optional
918
+ }, {
919
+ type: Self
920
+ }] }, { type: i1.NgForm, decorators: [{
921
+ type: Optional
922
+ }] }, { type: i1.FormGroupDirective, decorators: [{
923
+ type: Optional
924
+ }] }, { type: i3.ErrorStateMatcher }, { type: undefined, decorators: [{
925
+ type: Optional
926
+ }, {
927
+ type: Self
928
+ }, {
929
+ type: Inject,
930
+ args: [MC_INPUT_VALUE_ACCESSOR]
931
+ }] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { errorStateMatcher: [{
932
+ type: Input
933
+ }], placeholder: [{
934
+ type: Input
935
+ }], disabled: [{
936
+ type: Input
937
+ }], id: [{
938
+ type: Input
939
+ }], required: [{
940
+ type: Input
941
+ }], value: [{
942
+ type: Input
943
943
  }] } });
944
944
 
945
- class McInputModule {
946
- }
947
- /** @nocollapse */ /** @nocollapse */ McInputModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
948
- /** @nocollapse */ /** @nocollapse */ McInputModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McInputModule, declarations: [McInput,
949
- McNumberInput,
950
- McInputPassword,
951
- McPasswordToggle,
952
- McInputMono,
953
- MinValidator,
954
- MaxValidator], imports: [CommonModule,
955
- A11yModule,
956
- McCommonModule,
957
- FormsModule], exports: [McInput,
958
- McNumberInput,
959
- McInputPassword,
960
- McPasswordToggle,
961
- McInputMono,
962
- MinValidator,
963
- MaxValidator] });
964
- /** @nocollapse */ /** @nocollapse */ McInputModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McInputModule, imports: [[
965
- CommonModule,
966
- A11yModule,
967
- McCommonModule,
968
- FormsModule
969
- ]] });
970
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McInputModule, decorators: [{
971
- type: NgModule,
972
- args: [{
973
- imports: [
974
- CommonModule,
975
- A11yModule,
976
- McCommonModule,
977
- FormsModule
978
- ],
979
- declarations: [
980
- McInput,
981
- McNumberInput,
982
- McInputPassword,
983
- McPasswordToggle,
984
- McInputMono,
985
- MinValidator,
986
- MaxValidator
987
- ],
988
- exports: [
989
- McInput,
990
- McNumberInput,
991
- McInputPassword,
992
- McPasswordToggle,
993
- McInputMono,
994
- MinValidator,
995
- MaxValidator
996
- ]
997
- }]
945
+ class McInputModule {
946
+ }
947
+ /** @nocollapse */ /** @nocollapse */ McInputModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
948
+ /** @nocollapse */ /** @nocollapse */ McInputModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McInputModule, declarations: [McInput,
949
+ McNumberInput,
950
+ McInputPassword,
951
+ McPasswordToggle,
952
+ McInputMono,
953
+ MinValidator,
954
+ MaxValidator], imports: [CommonModule,
955
+ A11yModule,
956
+ McCommonModule,
957
+ FormsModule], exports: [McInput,
958
+ McNumberInput,
959
+ McInputPassword,
960
+ McPasswordToggle,
961
+ McInputMono,
962
+ MinValidator,
963
+ MaxValidator] });
964
+ /** @nocollapse */ /** @nocollapse */ McInputModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McInputModule, imports: [[
965
+ CommonModule,
966
+ A11yModule,
967
+ McCommonModule,
968
+ FormsModule
969
+ ]] });
970
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McInputModule, decorators: [{
971
+ type: NgModule,
972
+ args: [{
973
+ imports: [
974
+ CommonModule,
975
+ A11yModule,
976
+ McCommonModule,
977
+ FormsModule
978
+ ],
979
+ declarations: [
980
+ McInput,
981
+ McNumberInput,
982
+ McInputPassword,
983
+ McPasswordToggle,
984
+ McInputMono,
985
+ MinValidator,
986
+ MaxValidator
987
+ ],
988
+ exports: [
989
+ McInput,
990
+ McNumberInput,
991
+ McInputPassword,
992
+ McPasswordToggle,
993
+ McInputMono,
994
+ MinValidator,
995
+ MaxValidator
996
+ ]
997
+ }]
998
998
  }] });
999
999
 
1000
- /**
1001
- * Generated bundle index. Do not edit.
1000
+ /**
1001
+ * Generated bundle index. Do not edit.
1002
1002
  */
1003
1003
 
1004
1004
  export { BIG_STEP, MAX_VALIDATOR, MC_INPUT_VALUE_ACCESSOR, MIN_VALIDATOR, MaxValidator, McInput, McInputBase, McInputMixinBase, McInputModule, McInputMono, McInputPassword, McNumberInput, McPasswordToggle, MinValidator, SMALL_STEP, add, getPrecision, isDigit, isFloat, isInt, normalizeSplitter };