@ptsecurity/mosaic 13.1.1 → 13.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (349) hide show
  1. package/_theming.scss +464 -165
  2. package/_visual.scss +419 -239
  3. package/button/button.component.d.ts +1 -1
  4. package/core/option/option.d.ts +1 -0
  5. package/core/validation/validation.d.ts +3 -3
  6. package/design-tokens/legacy-2017/tokens/components/alert.json5 +30 -30
  7. package/design-tokens/legacy-2017/tokens/components/badge.json5 +91 -101
  8. package/design-tokens/legacy-2017/tokens/components/button.json5 +53 -54
  9. package/design-tokens/legacy-2017/tokens/components/card.json5 +24 -24
  10. package/design-tokens/legacy-2017/tokens/components/checkbox.json5 +10 -10
  11. package/design-tokens/legacy-2017/tokens/components/datepicker.json5 +4 -4
  12. package/design-tokens/legacy-2017/tokens/components/dl.json5 +38 -0
  13. package/design-tokens/legacy-2017/tokens/components/dropdown.json5 +2 -1
  14. package/design-tokens/legacy-2017/tokens/components/form-field.json5 +48 -8
  15. package/design-tokens/legacy-2017/tokens/components/forms.json5 +4 -4
  16. package/design-tokens/legacy-2017/tokens/components/input.json5 +2 -3
  17. package/design-tokens/legacy-2017/tokens/components/link.json5 +13 -19
  18. package/design-tokens/legacy-2017/tokens/components/list.json5 +3 -5
  19. package/design-tokens/legacy-2017/tokens/components/modal.json5 +10 -8
  20. package/design-tokens/legacy-2017/tokens/components/navbar.json5 +12 -11
  21. package/design-tokens/legacy-2017/tokens/components/popover.json5 +18 -18
  22. package/design-tokens/legacy-2017/tokens/components/popup.json5 +8 -8
  23. package/design-tokens/legacy-2017/tokens/components/progress-bar.json5 +2 -2
  24. package/design-tokens/legacy-2017/tokens/components/radio.json5 +12 -12
  25. package/design-tokens/legacy-2017/tokens/components/select.json5 +0 -1
  26. package/design-tokens/legacy-2017/tokens/components/sidepanel.json5 +6 -4
  27. package/design-tokens/legacy-2017/tokens/components/table.json5 +1 -1
  28. package/design-tokens/legacy-2017/tokens/components/tabs.json5 +82 -6
  29. package/design-tokens/legacy-2017/tokens/components/tags.json5 +49 -50
  30. package/design-tokens/legacy-2017/tokens/components/toggle.json5 +17 -17
  31. package/design-tokens/legacy-2017/tokens/components/tooltip.json5 +21 -21
  32. package/design-tokens/legacy-2017/tokens/components/tree.json5 +5 -2
  33. package/design-tokens/legacy-2017/tokens/properties/colors.json5 +35 -31
  34. package/design-tokens/legacy-2017/tokens/properties/globals.json5 +20 -1
  35. package/design-tokens/legacy-2017/tokens/properties/typography.json5 +70 -35
  36. package/design-tokens/legacy-2017/tokens.d.ts +155 -56
  37. package/design-tokens/pt-2022/tokens/components/alert.json5 +30 -30
  38. package/design-tokens/pt-2022/tokens/components/badge.json5 +92 -102
  39. package/design-tokens/pt-2022/tokens/components/button.json5 +54 -55
  40. package/design-tokens/pt-2022/tokens/components/card.json5 +24 -24
  41. package/design-tokens/pt-2022/tokens/components/checkbox.json5 +10 -10
  42. package/design-tokens/pt-2022/tokens/components/datepicker.json5 +4 -4
  43. package/design-tokens/pt-2022/tokens/components/dl.json5 +38 -0
  44. package/design-tokens/pt-2022/tokens/components/dropdown.json5 +2 -1
  45. package/design-tokens/pt-2022/tokens/components/form-field.json5 +48 -8
  46. package/design-tokens/pt-2022/tokens/components/forms.json5 +4 -4
  47. package/design-tokens/pt-2022/tokens/components/input.json5 +2 -3
  48. package/design-tokens/pt-2022/tokens/components/link.json5 +17 -23
  49. package/design-tokens/pt-2022/tokens/components/list.json5 +2 -4
  50. package/design-tokens/pt-2022/tokens/components/modal.json5 +10 -8
  51. package/design-tokens/pt-2022/tokens/components/navbar.json5 +14 -13
  52. package/design-tokens/pt-2022/tokens/components/popover.json5 +21 -21
  53. package/design-tokens/pt-2022/tokens/components/popup.json5 +8 -8
  54. package/design-tokens/pt-2022/tokens/components/progress-bar.json5 +1 -1
  55. package/design-tokens/pt-2022/tokens/components/radio.json5 +12 -12
  56. package/design-tokens/pt-2022/tokens/components/select.json5 +0 -1
  57. package/design-tokens/pt-2022/tokens/components/sidepanel.json5 +7 -5
  58. package/design-tokens/pt-2022/tokens/components/table.json5 +1 -1
  59. package/design-tokens/pt-2022/tokens/components/tabs.json5 +82 -6
  60. package/design-tokens/pt-2022/tokens/components/tags.json5 +49 -50
  61. package/design-tokens/pt-2022/tokens/components/toggle.json5 +18 -18
  62. package/design-tokens/pt-2022/tokens/components/tooltip.json5 +23 -23
  63. package/design-tokens/pt-2022/tokens/components/tree.json5 +5 -2
  64. package/design-tokens/pt-2022/tokens/properties/colors.json5 +37 -33
  65. package/design-tokens/pt-2022/tokens/properties/globals.json5 +20 -1
  66. package/design-tokens/pt-2022/tokens/properties/typography.json5 +69 -34
  67. package/design-tokens/pt-2022/tokens.d.ts +151 -52
  68. package/dl/README.md +0 -0
  69. package/dl/dl.component.d.ts +26 -0
  70. package/dl/dl.module.d.ts +10 -0
  71. package/dl/index.d.ts +1 -0
  72. package/dl/package.json +10 -0
  73. package/dl/ptsecurity-mosaic-dl.d.ts +5 -0
  74. package/dl/public-api.d.ts +2 -0
  75. package/esm2020/autocomplete/autocomplete-origin.directive.mjs +3 -3
  76. package/esm2020/autocomplete/autocomplete-trigger.directive.mjs +3 -3
  77. package/esm2020/autocomplete/autocomplete.component.mjs +3 -3
  78. package/esm2020/autocomplete/autocomplete.module.mjs +4 -4
  79. package/esm2020/button/button.component.mjs +29 -21
  80. package/esm2020/button/button.module.mjs +4 -4
  81. package/esm2020/button-toggle/button-toggle.component.mjs +6 -6
  82. package/esm2020/button-toggle/button-toggle.module.mjs +4 -4
  83. package/esm2020/card/card.component.mjs +3 -3
  84. package/esm2020/card/card.module.mjs +4 -4
  85. package/esm2020/checkbox/checkbox-module.mjs +4 -4
  86. package/esm2020/checkbox/checkbox-required-validator.mjs +3 -3
  87. package/esm2020/checkbox/checkbox.mjs +3 -3
  88. package/esm2020/core/common-behaviors/common-module.mjs +4 -4
  89. package/esm2020/core/error/error-options.mjs +6 -6
  90. package/esm2020/core/formatters/date/formatter.mjs +3 -3
  91. package/esm2020/core/formatters/index.mjs +4 -4
  92. package/esm2020/core/formatters/number/formatter.mjs +4 -4
  93. package/esm2020/core/forms/forms-module.mjs +4 -4
  94. package/esm2020/core/forms/forms.directive.mjs +6 -6
  95. package/esm2020/core/highlight/highlight.pipe.mjs +3 -3
  96. package/esm2020/core/highlight/index.mjs +4 -4
  97. package/esm2020/core/line/line.mjs +7 -7
  98. package/esm2020/core/option/action.mjs +3 -3
  99. package/esm2020/core/option/optgroup.mjs +3 -3
  100. package/esm2020/core/option/option-module.mjs +4 -4
  101. package/esm2020/core/option/option.mjs +10 -7
  102. package/esm2020/core/pop-up/pop-up-trigger.mjs +3 -3
  103. package/esm2020/core/pop-up/pop-up.mjs +3 -3
  104. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +3 -3
  105. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.module.mjs +4 -4
  106. package/esm2020/core/services/measure-scrollbar.service.mjs +3 -3
  107. package/esm2020/core/validation/validation.mjs +10 -5
  108. package/esm2020/datepicker/calendar-body.component.mjs +3 -3
  109. package/esm2020/datepicker/calendar.component.mjs +6 -6
  110. package/esm2020/datepicker/datepicker-input.directive.mjs +3 -3
  111. package/esm2020/datepicker/datepicker-intl.mjs +3 -3
  112. package/esm2020/datepicker/datepicker-module.mjs +4 -4
  113. package/esm2020/datepicker/datepicker-toggle.component.mjs +6 -6
  114. package/esm2020/datepicker/datepicker.component.mjs +6 -6
  115. package/esm2020/datepicker/month-view.component.mjs +3 -3
  116. package/esm2020/datepicker/multi-year-view.component.mjs +3 -3
  117. package/esm2020/datepicker/year-view.component.mjs +3 -3
  118. package/esm2020/design-tokens/legacy-2017/tokens.mjs +156 -57
  119. package/esm2020/design-tokens/pt-2022/tokens.mjs +152 -53
  120. package/esm2020/divider/divider.component.mjs +3 -3
  121. package/esm2020/divider/divider.module.mjs +4 -4
  122. package/esm2020/dl/dl.component.mjs +78 -0
  123. package/esm2020/dl/dl.module.mjs +42 -0
  124. package/esm2020/dl/index.mjs +2 -0
  125. package/esm2020/dl/ptsecurity-mosaic-dl.mjs +5 -0
  126. package/esm2020/dl/public-api.mjs +3 -0
  127. package/esm2020/dropdown/dropdown-content.directive.mjs +3 -3
  128. package/esm2020/dropdown/dropdown-item.component.mjs +5 -5
  129. package/esm2020/dropdown/dropdown-trigger.directive.mjs +3 -3
  130. package/esm2020/dropdown/dropdown.component.mjs +6 -6
  131. package/esm2020/dropdown/dropdown.module.mjs +4 -4
  132. package/esm2020/form-field/cleaner.mjs +3 -3
  133. package/esm2020/form-field/form-field.mjs +48 -28
  134. package/esm2020/form-field/form-field.module.mjs +10 -5
  135. package/esm2020/form-field/hint.mjs +6 -6
  136. package/esm2020/form-field/password-hint.mjs +134 -0
  137. package/esm2020/form-field/prefix.mjs +3 -3
  138. package/esm2020/form-field/public-api.mjs +2 -1
  139. package/esm2020/form-field/stepper.mjs +3 -3
  140. package/esm2020/form-field/suffix.mjs +3 -3
  141. package/esm2020/icon/icon.component.mjs +6 -6
  142. package/esm2020/icon/icon.module.mjs +4 -4
  143. package/esm2020/input/input-number-validators.mjs +6 -6
  144. package/esm2020/input/input-number.mjs +3 -3
  145. package/esm2020/input/input-password.mjs +368 -0
  146. package/esm2020/input/input.mjs +12 -11
  147. package/esm2020/input/input.module.mjs +50 -8
  148. package/esm2020/input/public-api.mjs +2 -1
  149. package/esm2020/link/link.component.mjs +3 -3
  150. package/esm2020/link/link.module.mjs +4 -4
  151. package/esm2020/list/list-selection.component.mjs +11 -11
  152. package/esm2020/list/list.component.mjs +7 -7
  153. package/esm2020/list/list.module.mjs +4 -4
  154. package/esm2020/modal/css-unit.pipe.mjs +3 -3
  155. package/esm2020/modal/modal-control.service.mjs +3 -3
  156. package/esm2020/modal/modal.component.mjs +4 -4
  157. package/esm2020/modal/modal.directive.mjs +12 -12
  158. package/esm2020/modal/modal.module.mjs +4 -4
  159. package/esm2020/modal/modal.service.mjs +3 -3
  160. package/esm2020/navbar/navbar-item.component.mjs +80 -79
  161. package/esm2020/navbar/navbar.component.mjs +10 -10
  162. package/esm2020/navbar/navbar.module.mjs +4 -4
  163. package/esm2020/navbar/vertical-navbar.component.mjs +6 -6
  164. package/esm2020/popover/popover-confirm.component.mjs +8 -8
  165. package/esm2020/popover/popover.component.mjs +8 -8
  166. package/esm2020/popover/popover.module.mjs +4 -4
  167. package/esm2020/progress-bar/progress-bar.component.mjs +3 -3
  168. package/esm2020/progress-bar/progress-bar.module.mjs +4 -4
  169. package/esm2020/progress-spinner/progress-spinner.component.mjs +3 -3
  170. package/esm2020/progress-spinner/progress-spinner.module.mjs +4 -4
  171. package/esm2020/radio/radio.component.mjs +6 -6
  172. package/esm2020/radio/radio.module.mjs +4 -4
  173. package/esm2020/select/public-api.mjs +2 -1
  174. package/esm2020/select/select-option.directive.mjs +65 -0
  175. package/esm2020/select/select.component.mjs +16 -16
  176. package/esm2020/select/select.module.mjs +19 -10
  177. package/esm2020/sidebar/sidebar.component.mjs +9 -9
  178. package/esm2020/sidebar/sidebar.module.mjs +4 -4
  179. package/esm2020/sidepanel/sidepanel-container.component.mjs +5 -5
  180. package/esm2020/sidepanel/sidepanel-directives.mjs +18 -18
  181. package/esm2020/sidepanel/sidepanel.module.mjs +4 -4
  182. package/esm2020/sidepanel/sidepanel.service.mjs +3 -3
  183. package/esm2020/splitter/splitter.component.mjs +12 -12
  184. package/esm2020/splitter/splitter.module.mjs +4 -4
  185. package/esm2020/table/table.component.mjs +3 -3
  186. package/esm2020/table/table.module.mjs +4 -4
  187. package/esm2020/tabs/paginated-tab-header.mjs +3 -3
  188. package/esm2020/tabs/tab-body.component.mjs +6 -6
  189. package/esm2020/tabs/tab-content.directive.mjs +3 -3
  190. package/esm2020/tabs/tab-group.component.mjs +20 -20
  191. package/esm2020/tabs/tab-header.component.mjs +4 -4
  192. package/esm2020/tabs/tab-label-wrapper.directive.mjs +3 -3
  193. package/esm2020/tabs/tab-label.directive.mjs +3 -3
  194. package/esm2020/tabs/tab-nav-bar/tab-nav-bar.mjs +9 -9
  195. package/esm2020/tabs/tab.component.mjs +3 -3
  196. package/esm2020/tabs/tabs.module.mjs +4 -4
  197. package/esm2020/tags/tag-input.mjs +3 -3
  198. package/esm2020/tags/tag-list.component.mjs +6 -6
  199. package/esm2020/tags/tag.component.mjs +60 -60
  200. package/esm2020/tags/tag.module.mjs +4 -4
  201. package/esm2020/textarea/textarea.component.mjs +9 -8
  202. package/esm2020/textarea/textarea.module.mjs +4 -4
  203. package/esm2020/timepicker/timepicker.directive.mjs +3 -3
  204. package/esm2020/timepicker/timepicker.module.mjs +4 -4
  205. package/esm2020/toggle/toggle.component.mjs +3 -3
  206. package/esm2020/toggle/toggle.module.mjs +4 -4
  207. package/esm2020/tooltip/tooltip.component.mjs +14 -13
  208. package/esm2020/tooltip/tooltip.module.mjs +4 -4
  209. package/esm2020/tree/node.mjs +3 -3
  210. package/esm2020/tree/outlet.mjs +3 -3
  211. package/esm2020/tree/padding.directive.mjs +12 -9
  212. package/esm2020/tree/toggle.mjs +10 -10
  213. package/esm2020/tree/tree-base.mjs +6 -6
  214. package/esm2020/tree/tree-option.component.mjs +9 -9
  215. package/esm2020/tree/tree-selection.component.mjs +8 -6
  216. package/esm2020/tree/tree.mjs +3 -3
  217. package/esm2020/tree/tree.module.mjs +4 -4
  218. package/esm2020/tree-select/tree-select.component.mjs +14 -14
  219. package/esm2020/tree-select/tree-select.module.mjs +4 -4
  220. package/fesm2015/ptsecurity-mosaic-autocomplete.mjs +13 -13
  221. package/fesm2015/ptsecurity-mosaic-button-toggle.mjs +10 -10
  222. package/fesm2015/ptsecurity-mosaic-button.mjs +32 -24
  223. package/fesm2015/ptsecurity-mosaic-button.mjs.map +1 -1
  224. package/fesm2015/ptsecurity-mosaic-card.mjs +7 -7
  225. package/fesm2015/ptsecurity-mosaic-checkbox.mjs +10 -10
  226. package/fesm2015/ptsecurity-mosaic-core.mjs +89 -81
  227. package/fesm2015/ptsecurity-mosaic-core.mjs.map +1 -1
  228. package/fesm2015/ptsecurity-mosaic-datepicker.mjs +40 -40
  229. package/fesm2015/ptsecurity-mosaic-design-tokens.mjs +443 -146
  230. package/fesm2015/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
  231. package/fesm2015/ptsecurity-mosaic-divider.mjs +7 -7
  232. package/fesm2015/ptsecurity-mosaic-dl.mjs +124 -0
  233. package/fesm2015/ptsecurity-mosaic-dl.mjs.map +1 -0
  234. package/fesm2015/ptsecurity-mosaic-dropdown.mjs +19 -19
  235. package/fesm2015/ptsecurity-mosaic-dropdown.mjs.map +1 -1
  236. package/fesm2015/ptsecurity-mosaic-form-field.mjs +214 -50
  237. package/fesm2015/ptsecurity-mosaic-form-field.mjs.map +1 -1
  238. package/fesm2015/ptsecurity-mosaic-icon.mjs +10 -10
  239. package/fesm2015/ptsecurity-mosaic-input.mjs +434 -31
  240. package/fesm2015/ptsecurity-mosaic-input.mjs.map +1 -1
  241. package/fesm2015/ptsecurity-mosaic-link.mjs +7 -7
  242. package/fesm2015/ptsecurity-mosaic-list.mjs +21 -21
  243. package/fesm2015/ptsecurity-mosaic-list.mjs.map +1 -1
  244. package/fesm2015/ptsecurity-mosaic-modal.mjs +29 -29
  245. package/fesm2015/ptsecurity-mosaic-modal.mjs.map +1 -1
  246. package/fesm2015/ptsecurity-mosaic-navbar.mjs +97 -96
  247. package/fesm2015/ptsecurity-mosaic-navbar.mjs.map +1 -1
  248. package/fesm2015/ptsecurity-mosaic-popover.mjs +18 -18
  249. package/fesm2015/ptsecurity-mosaic-popover.mjs.map +1 -1
  250. package/fesm2015/ptsecurity-mosaic-progress-bar.mjs +7 -7
  251. package/fesm2015/ptsecurity-mosaic-progress-spinner.mjs +7 -7
  252. package/fesm2015/ptsecurity-mosaic-radio.mjs +10 -10
  253. package/fesm2015/ptsecurity-mosaic-select.mjs +99 -33
  254. package/fesm2015/ptsecurity-mosaic-select.mjs.map +1 -1
  255. package/fesm2015/ptsecurity-mosaic-sidebar.mjs +13 -13
  256. package/fesm2015/ptsecurity-mosaic-sidepanel.mjs +28 -28
  257. package/fesm2015/ptsecurity-mosaic-sidepanel.mjs.map +1 -1
  258. package/fesm2015/ptsecurity-mosaic-splitter.mjs +16 -16
  259. package/fesm2015/ptsecurity-mosaic-table.mjs +7 -7
  260. package/fesm2015/ptsecurity-mosaic-tabs.mjs +56 -56
  261. package/fesm2015/ptsecurity-mosaic-tabs.mjs.map +1 -1
  262. package/fesm2015/ptsecurity-mosaic-tags.mjs +74 -74
  263. package/fesm2015/ptsecurity-mosaic-tags.mjs.map +1 -1
  264. package/fesm2015/ptsecurity-mosaic-textarea.mjs +11 -10
  265. package/fesm2015/ptsecurity-mosaic-textarea.mjs.map +1 -1
  266. package/fesm2015/ptsecurity-mosaic-timepicker.mjs +7 -7
  267. package/fesm2015/ptsecurity-mosaic-toggle.mjs +7 -7
  268. package/fesm2015/ptsecurity-mosaic-tooltip.mjs +17 -16
  269. package/fesm2015/ptsecurity-mosaic-tooltip.mjs.map +1 -1
  270. package/fesm2015/ptsecurity-mosaic-tree-select.mjs +17 -17
  271. package/fesm2015/ptsecurity-mosaic-tree-select.mjs.map +1 -1
  272. package/fesm2015/ptsecurity-mosaic-tree.mjs +158 -155
  273. package/fesm2015/ptsecurity-mosaic-tree.mjs.map +1 -1
  274. package/fesm2020/ptsecurity-mosaic-autocomplete.mjs +13 -13
  275. package/fesm2020/ptsecurity-mosaic-button-toggle.mjs +10 -10
  276. package/fesm2020/ptsecurity-mosaic-button.mjs +32 -24
  277. package/fesm2020/ptsecurity-mosaic-button.mjs.map +1 -1
  278. package/fesm2020/ptsecurity-mosaic-card.mjs +7 -7
  279. package/fesm2020/ptsecurity-mosaic-checkbox.mjs +10 -10
  280. package/fesm2020/ptsecurity-mosaic-core.mjs +89 -81
  281. package/fesm2020/ptsecurity-mosaic-core.mjs.map +1 -1
  282. package/fesm2020/ptsecurity-mosaic-datepicker.mjs +40 -40
  283. package/fesm2020/ptsecurity-mosaic-design-tokens.mjs +443 -146
  284. package/fesm2020/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
  285. package/fesm2020/ptsecurity-mosaic-divider.mjs +7 -7
  286. package/fesm2020/ptsecurity-mosaic-dl.mjs +124 -0
  287. package/fesm2020/ptsecurity-mosaic-dl.mjs.map +1 -0
  288. package/fesm2020/ptsecurity-mosaic-dropdown.mjs +19 -19
  289. package/fesm2020/ptsecurity-mosaic-dropdown.mjs.map +1 -1
  290. package/fesm2020/ptsecurity-mosaic-form-field.mjs +200 -50
  291. package/fesm2020/ptsecurity-mosaic-form-field.mjs.map +1 -1
  292. package/fesm2020/ptsecurity-mosaic-icon.mjs +10 -10
  293. package/fesm2020/ptsecurity-mosaic-input.mjs +427 -31
  294. package/fesm2020/ptsecurity-mosaic-input.mjs.map +1 -1
  295. package/fesm2020/ptsecurity-mosaic-link.mjs +7 -7
  296. package/fesm2020/ptsecurity-mosaic-list.mjs +21 -21
  297. package/fesm2020/ptsecurity-mosaic-list.mjs.map +1 -1
  298. package/fesm2020/ptsecurity-mosaic-modal.mjs +29 -29
  299. package/fesm2020/ptsecurity-mosaic-modal.mjs.map +1 -1
  300. package/fesm2020/ptsecurity-mosaic-navbar.mjs +97 -96
  301. package/fesm2020/ptsecurity-mosaic-navbar.mjs.map +1 -1
  302. package/fesm2020/ptsecurity-mosaic-popover.mjs +18 -18
  303. package/fesm2020/ptsecurity-mosaic-popover.mjs.map +1 -1
  304. package/fesm2020/ptsecurity-mosaic-progress-bar.mjs +7 -7
  305. package/fesm2020/ptsecurity-mosaic-progress-spinner.mjs +7 -7
  306. package/fesm2020/ptsecurity-mosaic-radio.mjs +10 -10
  307. package/fesm2020/ptsecurity-mosaic-select.mjs +96 -32
  308. package/fesm2020/ptsecurity-mosaic-select.mjs.map +1 -1
  309. package/fesm2020/ptsecurity-mosaic-sidebar.mjs +13 -13
  310. package/fesm2020/ptsecurity-mosaic-sidepanel.mjs +28 -28
  311. package/fesm2020/ptsecurity-mosaic-sidepanel.mjs.map +1 -1
  312. package/fesm2020/ptsecurity-mosaic-splitter.mjs +16 -16
  313. package/fesm2020/ptsecurity-mosaic-table.mjs +7 -7
  314. package/fesm2020/ptsecurity-mosaic-tabs.mjs +56 -56
  315. package/fesm2020/ptsecurity-mosaic-tabs.mjs.map +1 -1
  316. package/fesm2020/ptsecurity-mosaic-tags.mjs +72 -72
  317. package/fesm2020/ptsecurity-mosaic-tags.mjs.map +1 -1
  318. package/fesm2020/ptsecurity-mosaic-textarea.mjs +11 -10
  319. package/fesm2020/ptsecurity-mosaic-textarea.mjs.map +1 -1
  320. package/fesm2020/ptsecurity-mosaic-timepicker.mjs +7 -7
  321. package/fesm2020/ptsecurity-mosaic-toggle.mjs +7 -7
  322. package/fesm2020/ptsecurity-mosaic-tooltip.mjs +17 -16
  323. package/fesm2020/ptsecurity-mosaic-tooltip.mjs.map +1 -1
  324. package/fesm2020/ptsecurity-mosaic-tree-select.mjs +17 -17
  325. package/fesm2020/ptsecurity-mosaic-tree-select.mjs.map +1 -1
  326. package/fesm2020/ptsecurity-mosaic-tree.mjs +155 -152
  327. package/fesm2020/ptsecurity-mosaic-tree.mjs.map +1 -1
  328. package/form-field/form-field.d.ts +9 -2
  329. package/form-field/form-field.module.d.ts +8 -7
  330. package/form-field/password-hint.d.ts +40 -0
  331. package/form-field/public-api.d.ts +1 -0
  332. package/input/input-password.d.ts +121 -0
  333. package/input/input.d.ts +4 -3
  334. package/input/input.module.d.ts +7 -6
  335. package/input/public-api.d.ts +1 -0
  336. package/list/list-selection.component.d.ts +1 -1
  337. package/navbar/navbar-item.component.d.ts +18 -18
  338. package/package.json +12 -4
  339. package/prebuilt-themes/dark-theme.css +1 -1
  340. package/prebuilt-themes/default-theme.css +1 -1
  341. package/prebuilt-visual/default-visual.css +1 -1
  342. package/select/public-api.d.ts +1 -0
  343. package/select/select-option.directive.d.ts +20 -0
  344. package/select/select.module.d.ts +9 -7
  345. package/tags/tag.component.d.ts +20 -20
  346. package/textarea/textarea.component.d.ts +4 -3
  347. package/toggle/README.md +0 -0
  348. package/tree/padding.directive.d.ts +7 -5
  349. package/tree/tree-option.component.d.ts +2 -2
@@ -1,11 +1,12 @@
1
- import * as i1$1 from '@angular/common';
1
+ import * as i2 from '@angular/common';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { Component, Directive, Input, EventEmitter, Output, ViewEncapsulation, ChangeDetectionStrategy, ContentChild, ContentChildren, ViewChild, NgModule } from '@angular/core';
4
+ import { Component, Directive, Input, forwardRef, ChangeDetectionStrategy, Inject, EventEmitter, Output, ViewEncapsulation, ContentChild, ContentChildren, ViewChild, NgModule } from '@angular/core';
5
5
  import * as i1 from '@ptsecurity/mosaic/icon';
6
6
  import { McIconModule } from '@ptsecurity/mosaic/icon';
7
7
  import { ThemePalette, mixinColor } from '@ptsecurity/mosaic/core';
8
- import { ESCAPE } from '@ptsecurity/cdk/keycodes';
8
+ import * as i1$1 from '@angular/cdk/a11y';
9
+ import { F8, ESCAPE } from '@ptsecurity/cdk/keycodes';
9
10
  import { Subject, EMPTY, merge } from 'rxjs';
10
11
  import { startWith, takeUntil } from 'rxjs/operators';
11
12
 
@@ -14,9 +15,9 @@ class McCleaner {
14
15
  this.themePalette = ThemePalette;
15
16
  }
16
17
  }
17
- /** @nocollapse */ /** @nocollapse */ McCleaner.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McCleaner, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
- /** @nocollapse */ /** @nocollapse */ McCleaner.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: McCleaner, selector: "mc-cleaner", host: { classAttribute: "mc-cleaner" }, exportAs: ["mcCleaner"], ngImport: i0, template: `<i class="mc-icon_light" mc-icon="mc-close-circle_16" [color]="themePalette.Second"></i>`, isInline: true, components: [{ type: i1.McIcon, selector: "[mc-icon]", inputs: ["color"] }], directives: [{ type: i1.McIconCSSStyler, selector: "[mc-icon]" }] });
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McCleaner, decorators: [{
18
+ /** @nocollapse */ /** @nocollapse */ McCleaner.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: McCleaner, deps: [], target: i0.ɵɵFactoryTarget.Component });
19
+ /** @nocollapse */ /** @nocollapse */ McCleaner.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.4", type: McCleaner, selector: "mc-cleaner", host: { classAttribute: "mc-cleaner" }, exportAs: ["mcCleaner"], ngImport: i0, template: `<i class="mc-icon_light" mc-icon="mc-close-circle_16" [color]="themePalette.Second"></i>`, isInline: true, components: [{ type: i1.McIcon, selector: "[mc-icon]", inputs: ["color"] }], directives: [{ type: i1.McIconCSSStyler, selector: "[mc-icon]" }] });
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: McCleaner, decorators: [{
20
21
  type: Component,
21
22
  args: [{
22
23
  selector: 'mc-cleaner',
@@ -40,15 +41,15 @@ function getMcFormFieldYouCanNotUseCleanerInNumberInputError() {
40
41
  return Error(`You can't use mc-cleaner with input that have type="number"`);
41
42
  }
42
43
 
43
- let nextUniqueId$1 = 0;
44
+ let nextHintUniqueId = 0;
44
45
  class McHint {
45
46
  constructor() {
46
- this.id = `mc-hint-${nextUniqueId$1++}`;
47
+ this.id = `mc-hint-${nextHintUniqueId++}`;
47
48
  }
48
49
  }
49
- /** @nocollapse */ /** @nocollapse */ McHint.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McHint, deps: [], target: i0.ɵɵFactoryTarget.Directive });
50
- /** @nocollapse */ /** @nocollapse */ McHint.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.0", type: McHint, selector: "mc-hint", inputs: { id: "id" }, host: { properties: { "attr.id": "id" }, classAttribute: "mc-hint" }, ngImport: i0 });
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McHint, decorators: [{
50
+ /** @nocollapse */ /** @nocollapse */ McHint.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: McHint, deps: [], target: i0.ɵɵFactoryTarget.Directive });
51
+ /** @nocollapse */ /** @nocollapse */ McHint.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.4", type: McHint, selector: "mc-hint", inputs: { id: "id" }, host: { properties: { "attr.id": "id" }, classAttribute: "mc-hint" }, ngImport: i0 });
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: McHint, decorators: [{
52
53
  type: Directive,
53
54
  args: [{
54
55
  selector: 'mc-hint',
@@ -61,11 +62,139 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
61
62
  type: Input
62
63
  }] } });
63
64
 
65
+ let nextPasswordHintUniqueId = 0;
66
+ var PasswordRules;
67
+ (function (PasswordRules) {
68
+ PasswordRules[PasswordRules["Length"] = 0] = "Length";
69
+ PasswordRules[PasswordRules["UpperLatin"] = 1] = "UpperLatin";
70
+ PasswordRules[PasswordRules["LowerLatin"] = 2] = "LowerLatin";
71
+ PasswordRules[PasswordRules["Digit"] = 3] = "Digit";
72
+ PasswordRules[PasswordRules["LatinAndSpecialSymbols"] = 4] = "LatinAndSpecialSymbols";
73
+ PasswordRules[PasswordRules["Custom"] = 5] = "Custom";
74
+ })(PasswordRules || (PasswordRules = {}));
75
+ const regExpPasswordValidator = {
76
+ [PasswordRules.LowerLatin]: RegExp(/^(?=.*?[a-z])/),
77
+ [PasswordRules.UpperLatin]: RegExp(/^(?=.*?[A-Z])/),
78
+ [PasswordRules.Digit]: RegExp(/^(?=.*?[0-9])/),
79
+ [PasswordRules.LatinAndSpecialSymbols]: RegExp(/[^ !`"'#№$%&()*+,-./:;<=>?@[\]^_{|}~A-Za-z0-9]/)
80
+ };
81
+ class McPasswordHint {
82
+ constructor(changeDetectorRef, formField) {
83
+ this.changeDetectorRef = changeDetectorRef;
84
+ this.formField = formField;
85
+ this.id = `mc-hint-${nextPasswordHintUniqueId++}`;
86
+ this.hasError = false;
87
+ this.checked = false;
88
+ this.checkValue = () => {
89
+ if (this.control.focused && this.isValueChanged()) {
90
+ this.hasError = false;
91
+ this.checked = this.checkRule(this.control.value);
92
+ }
93
+ else if (!this.control.focused && !this.isValueChanged()) {
94
+ this.hasError = !this.checkRule(this.control.value);
95
+ }
96
+ if (!this.control.required && !this.control.value) {
97
+ this.checked = this.hasError = false;
98
+ }
99
+ this.lastControlValue = this.control.value;
100
+ this.changeDetectorRef.markForCheck();
101
+ };
102
+ }
103
+ get control() {
104
+ return this.formField.control;
105
+ }
106
+ ngAfterContentInit() {
107
+ if (this.rule === null) {
108
+ throw Error('You should set [rule] name');
109
+ }
110
+ if (this.rule === PasswordRules.Custom && this.regex === undefined) {
111
+ throw Error('You should set [regex] for PasswordRules.Custom');
112
+ }
113
+ if (this.rule === PasswordRules.Length && (this.min || this.max) === null) {
114
+ throw Error('For [rule] "Length" need set [min] and [max]');
115
+ }
116
+ if (this.rule === PasswordRules.Length) {
117
+ this.checkRule = this.checkLengthRule;
118
+ }
119
+ else if ([PasswordRules.UpperLatin, PasswordRules.LowerLatin, PasswordRules.Digit].includes(this.rule)) {
120
+ this.regex = regExpPasswordValidator[this.rule];
121
+ this.checkRule = this.checkRegexRule;
122
+ }
123
+ else if (this.rule === PasswordRules.LatinAndSpecialSymbols) {
124
+ this.regex = regExpPasswordValidator[this.rule];
125
+ this.checkRule = this.checkSpecialSymbolsRegexRule;
126
+ }
127
+ else if (this.rule === PasswordRules.Custom) {
128
+ this.checkRule = this.checkRegexRule;
129
+ }
130
+ else {
131
+ throw Error(`Unknown [rule]=${this.rule}`);
132
+ }
133
+ this.formField.control.stateChanges
134
+ .subscribe(this.checkValue);
135
+ }
136
+ checkLengthRule(value) {
137
+ return value.length >= this.min && value.length <= this.max;
138
+ }
139
+ checkRegexRule(value) {
140
+ return !!this.regex?.test(value);
141
+ }
142
+ checkSpecialSymbolsRegexRule(value) {
143
+ return !!value && !this.regex?.test(value);
144
+ }
145
+ isValueChanged() {
146
+ return this.lastControlValue !== this.formField.control.value;
147
+ }
148
+ }
149
+ /** @nocollapse */ /** @nocollapse */ McPasswordHint.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: McPasswordHint, deps: [{ token: i0.ChangeDetectorRef }, { token: forwardRef(() => McFormField) }], target: i0.ɵɵFactoryTarget.Component });
150
+ /** @nocollapse */ /** @nocollapse */ McPasswordHint.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.4", type: McPasswordHint, selector: "mc-password-hint", inputs: { id: "id", rule: "rule", min: "min", max: "max", regex: "regex" }, host: { properties: { "class.mc-password-hint_valid": "checked", "class.mc-password-hint_invalid": "hasError", "attr.id": "id" }, classAttribute: "mc-password-hint" }, ngImport: i0, template: `
151
+ <i *ngIf="!checked" class="mc-password-hint__icon" mc-icon="mc-close-M_16"></i>
152
+ <i *ngIf="checked" class="mc-password-hint__icon" mc-icon="mc-check_16"></i>
153
+
154
+ <span class="mc-password-hint__text">
155
+ <ng-content></ng-content>
156
+ </span>
157
+ `, isInline: true, components: [{ type: i1.McIcon, selector: "[mc-icon]", inputs: ["color"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.McIconCSSStyler, selector: "[mc-icon]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
158
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: McPasswordHint, decorators: [{
159
+ type: Component,
160
+ args: [{
161
+ selector: 'mc-password-hint',
162
+ template: `
163
+ <i *ngIf="!checked" class="mc-password-hint__icon" mc-icon="mc-close-M_16"></i>
164
+ <i *ngIf="checked" class="mc-password-hint__icon" mc-icon="mc-check_16"></i>
165
+
166
+ <span class="mc-password-hint__text">
167
+ <ng-content></ng-content>
168
+ </span>
169
+ `,
170
+ host: {
171
+ class: 'mc-password-hint',
172
+ '[class.mc-password-hint_valid]': 'checked',
173
+ '[class.mc-password-hint_invalid]': 'hasError',
174
+ '[attr.id]': 'id'
175
+ },
176
+ changeDetection: ChangeDetectionStrategy.OnPush
177
+ }]
178
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: McFormField, decorators: [{
179
+ type: Inject,
180
+ args: [forwardRef(() => McFormField)]
181
+ }] }]; }, propDecorators: { id: [{
182
+ type: Input
183
+ }], rule: [{
184
+ type: Input
185
+ }], min: [{
186
+ type: Input
187
+ }], max: [{
188
+ type: Input
189
+ }], regex: [{
190
+ type: Input
191
+ }] } });
192
+
64
193
  class McPrefix {
65
194
  }
66
- /** @nocollapse */ /** @nocollapse */ McPrefix.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McPrefix, deps: [], target: i0.ɵɵFactoryTarget.Directive });
67
- /** @nocollapse */ /** @nocollapse */ McPrefix.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.0", type: McPrefix, selector: "[mcPrefix]", ngImport: i0 });
68
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McPrefix, decorators: [{
195
+ /** @nocollapse */ /** @nocollapse */ McPrefix.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: McPrefix, deps: [], target: i0.ɵɵFactoryTarget.Directive });
196
+ /** @nocollapse */ /** @nocollapse */ McPrefix.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.4", type: McPrefix, selector: "[mcPrefix]", ngImport: i0 });
197
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: McPrefix, decorators: [{
69
198
  type: Directive,
70
199
  args: [{
71
200
  selector: '[mcPrefix]'
@@ -97,8 +226,8 @@ class McStepper {
97
226
  $event.preventDefault();
98
227
  }
99
228
  }
100
- /** @nocollapse */ /** @nocollapse */ McStepper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McStepper, deps: [], target: i0.ɵɵFactoryTarget.Component });
101
- /** @nocollapse */ /** @nocollapse */ McStepper.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: McStepper, selector: "mc-stepper", outputs: { stepUp: "stepUp", stepDown: "stepDown" }, ngImport: i0, template: `
229
+ /** @nocollapse */ /** @nocollapse */ McStepper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: McStepper, deps: [], target: i0.ɵɵFactoryTarget.Component });
230
+ /** @nocollapse */ /** @nocollapse */ McStepper.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.4", type: McStepper, selector: "mc-stepper", outputs: { stepUp: "stepUp", stepDown: "stepDown" }, ngImport: i0, template: `
102
231
  <i class="mc mc-icon mc-icon_light mc-second mc-stepper-step-up mc-angle-down-L_16"
103
232
  (mousedown)="onStepUp($event)">
104
233
  </i>
@@ -106,7 +235,7 @@ class McStepper {
106
235
  (mousedown)="onStepDown($event)">
107
236
  </i>
108
237
  `, isInline: true });
109
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McStepper, decorators: [{
238
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: McStepper, decorators: [{
110
239
  type: Component,
111
240
  args: [{
112
241
  selector: 'mc-stepper',
@@ -127,9 +256,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
127
256
 
128
257
  class McSuffix {
129
258
  }
130
- /** @nocollapse */ /** @nocollapse */ McSuffix.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McSuffix, deps: [], target: i0.ɵɵFactoryTarget.Directive });
131
- /** @nocollapse */ /** @nocollapse */ McSuffix.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.0", type: McSuffix, selector: "[mcSuffix]", ngImport: i0 });
132
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McSuffix, decorators: [{
259
+ /** @nocollapse */ /** @nocollapse */ McSuffix.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: McSuffix, deps: [], target: i0.ɵɵFactoryTarget.Directive });
260
+ /** @nocollapse */ /** @nocollapse */ McSuffix.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.4", type: McSuffix, selector: "[mcSuffix]", ngImport: i0 });
261
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: McSuffix, decorators: [{
133
262
  type: Directive,
134
263
  args: [{
135
264
  selector: '[mcSuffix]'
@@ -146,25 +275,31 @@ class McFormFieldBase {
146
275
  // tslint:disable-next-line:naming-convention
147
276
  const McFormFieldMixinBase = mixinColor(McFormFieldBase);
148
277
  class McFormField extends McFormFieldMixinBase {
278
+ constructor(
149
279
  // tslint:disable-next-line:naming-convention
150
- constructor(_elementRef, _changeDetectorRef) {
280
+ _elementRef, _changeDetectorRef, focusMonitor) {
151
281
  super(_elementRef);
152
282
  this._elementRef = _elementRef;
153
283
  this._changeDetectorRef = _changeDetectorRef;
284
+ this.focusMonitor = focusMonitor;
154
285
  // Unique id for the internal form field label.
155
286
  this.labelId = `mc-form-field-label-${nextUniqueId++}`;
156
287
  this.hovered = false;
157
288
  this.canCleanerClearByEsc = true;
158
289
  this.$unsubscribe = new Subject();
290
+ this.runFocusMonitor();
159
291
  }
160
292
  get hasHint() {
161
- return this.hint && this.hint.length > 0;
293
+ return this.hint?.length > 0;
294
+ }
295
+ get hasPasswordStrengthError() {
296
+ return this.passwordHints?.some((hint) => hint.hasError);
162
297
  }
163
298
  get hasSuffix() {
164
- return this.suffix && this.suffix.length > 0;
299
+ return this.suffix?.length > 0;
165
300
  }
166
301
  get hasPrefix() {
167
- return this.prefix && this.prefix.length > 0;
302
+ return this.prefix?.length > 0;
168
303
  }
169
304
  get hasCleaner() {
170
305
  return !!this.cleaner;
@@ -174,13 +309,12 @@ class McFormField extends McFormFieldMixinBase {
174
309
  }
175
310
  get canShowCleaner() {
176
311
  return this.hasCleaner &&
177
- this.control &&
178
- this.control.ngControl
312
+ this.control?.ngControl
179
313
  ? this.control.ngControl.value && !this.control.disabled
180
314
  : false;
181
315
  }
182
316
  get disabled() {
183
- return this.control && this.control.disabled;
317
+ return this.control?.disabled;
184
318
  }
185
319
  get canShowStepper() {
186
320
  return this.hasStepper &&
@@ -199,14 +333,17 @@ class McFormField extends McFormFieldMixinBase {
199
333
  // Subscribe to changes in the child control state in order to update the form field UI.
200
334
  this.control.stateChanges
201
335
  .pipe(startWith())
202
- .subscribe(() => {
336
+ .subscribe((state) => {
337
+ if (!state?.focused && this.hasPasswordStrengthError) {
338
+ this.control.ngControl?.control?.setErrors({ passwordStrength: true });
339
+ }
203
340
  this._changeDetectorRef.markForCheck();
204
341
  });
205
342
  if (this.hasStepper) {
206
343
  this.stepper.connectTo(this.control.numberInput);
207
344
  }
208
345
  // Run change detection if the value changes.
209
- const valueChanges = this.control.ngControl && this.control.ngControl.valueChanges || EMPTY;
346
+ const valueChanges = this.control.ngControl?.valueChanges || EMPTY;
210
347
  merge(valueChanges)
211
348
  .pipe(takeUntil(this.$unsubscribe))
212
349
  .subscribe(() => this._changeDetectorRef.markForCheck());
@@ -220,10 +357,8 @@ class McFormField extends McFormFieldMixinBase {
220
357
  }
221
358
  clearValue($event) {
222
359
  $event.stopPropagation();
223
- if (this.control && this.control.ngControl) {
224
- this.control.ngControl.reset();
225
- this.control.focus();
226
- }
360
+ this.control?.ngControl?.reset();
361
+ this.control?.focus();
227
362
  }
228
363
  onContainerClick($event) {
229
364
  if (this.control.onContainerClick) {
@@ -231,11 +366,13 @@ class McFormField extends McFormFieldMixinBase {
231
366
  }
232
367
  }
233
368
  onKeyDown(event) {
369
+ // tslint:disable-next-line:deprecation
370
+ if (this.control.controlType === 'input-password' && event.altKey && event.keyCode === F8) {
371
+ this.control.toggleType();
372
+ }
234
373
  // tslint:disable-next-line:deprecation
235
374
  if (this.canCleanerClearByEsc && event.keyCode === ESCAPE && this.control.focused && this.hasCleaner) {
236
- if (this.control && this.control.ngControl) {
237
- this.control.ngControl.reset();
238
- }
375
+ this.control?.ngControl?.reset();
239
376
  event.preventDefault();
240
377
  }
241
378
  }
@@ -260,6 +397,7 @@ class McFormField extends McFormFieldMixinBase {
260
397
  ngOnDestroy() {
261
398
  this.$unsubscribe.next();
262
399
  this.$unsubscribe.complete();
400
+ this.stopFocusMonitor();
263
401
  }
264
402
  /** Throws an error if the form field's control is missing. */
265
403
  validateControlChild() {
@@ -267,10 +405,16 @@ class McFormField extends McFormFieldMixinBase {
267
405
  throw getMcFormFieldMissingControlError();
268
406
  }
269
407
  }
408
+ runFocusMonitor() {
409
+ this.focusMonitor.monitor(this._elementRef.nativeElement, true);
410
+ }
411
+ stopFocusMonitor() {
412
+ this.focusMonitor.stopMonitoring(this._elementRef.nativeElement);
413
+ }
270
414
  }
271
- /** @nocollapse */ /** @nocollapse */ McFormField.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McFormField, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
272
- /** @nocollapse */ /** @nocollapse */ McFormField.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: McFormField, selector: "mc-form-field", inputs: { color: "color" }, host: { listeners: { "keydown": "onKeyDown($event)", "mouseenter": "onHoverChanged(true)", "mouseleave": "onHoverChanged(false)" }, properties: { "class.mc-form-field_invalid": "control.errorState", "class.mc-form-field_has-prefix": "hasPrefix", "class.mc-form-field_has-suffix": "hasSuffix", "class.mc-form-field_has-cleaner": "canShowCleaner", "class.mc-form-field_has-stepper": "canShowStepper", "class.mc-disabled": "control.disabled", "class.mc-focused": "control.focused", "class.ng-untouched": "shouldForward(\"untouched\")", "class.ng-touched": "shouldForward(\"touched\")", "class.ng-pristine": "shouldForward(\"pristine\")", "class.ng-dirty": "shouldForward(\"dirty\")", "class.ng-valid": "shouldForward(\"valid\")", "class.ng-invalid": "shouldForward(\"invalid\")", "class.ng-pending": "shouldForward(\"pending\")" }, classAttribute: "mc-form-field" }, queries: [{ propertyName: "control", first: true, predicate: McFormFieldControl, descendants: true }, { propertyName: "stepper", first: true, predicate: McStepper, descendants: true }, { propertyName: "cleaner", first: true, predicate: McCleaner, descendants: true }, { propertyName: "hint", predicate: McHint }, { propertyName: "suffix", predicate: McSuffix }, { propertyName: "prefix", predicate: McPrefix }], viewQueries: [{ propertyName: "connectionContainerRef", first: true, predicate: ["connectionContainer"], descendants: true, static: true }], exportAs: ["mcFormField"], usesInheritance: true, ngImport: i0, template: "<div class=\"mc-form-field__container\" (click)=\"onContainerClick($event)\">\n\n <div class=\"mc-form-field__prefix\" *ngIf=\"hasPrefix\">\n <ng-content select=\"[mcPrefix]\"></ng-content>\n </div>\n\n <div class=\"mc-form-field__infix\">\n <ng-content></ng-content>\n </div>\n\n <div class=\"mc-form-field__suffix\" *ngIf=\"hasSuffix\">\n <ng-content select=\"[mcSuffix]\"></ng-content>\n </div>\n\n <div class=\"mc-form-field__cleaner\"\n *ngIf=\"canShowCleaner && !hasSuffix\"\n (click)=\"clearValue($event)\">\n <ng-content select=\"mc-cleaner\"></ng-content>\n </div>\n\n <ng-content *ngIf=\"canShowStepper\" select=\"mc-stepper\"></ng-content>\n</div>\n\n<div class=\"mc-form-field__hint\">\n <ng-content select=\"mc-hint\"></ng-content>\n</div>\n", styles: [".mc-form-field{position:relative;display:inline-block;width:100%;border-radius:var(--mc-form-field-size-border-radius, 3px)}.mc-form-field:hover{z-index:1}.mc-form-field.mc-focused{z-index:2}.mc-hint{display:block}.mc-form-field__hint>.mc-hint{margin-top:var(--mc-form-field-hint-size-margin-top, 4px)}.mc-form-field__container{position:relative;border-width:var(--mc-form-field-size-border-width, 1px);border-style:solid;border-color:transparent;border-radius:var(--mc-form-field-size-border-radius, 3px)}.mc-form-field_without-borders .mc-form-field__container{border-color:transparent}.mc-form-field__prefix,.mc-form-field__suffix{position:absolute;top:0;bottom:0;width:32px;display:flex;flex-direction:row;justify-content:center;align-items:center}.mc-form-field__prefix{left:0}.mc-form-field__suffix{right:0}.mc-form-field_has-suffix .mc-input,.mc-form-field_has-cleaner .mc-input,.mc-form-field_has-stepper .mc-input{padding-right:var(--mc-form-field-size-button-width, 32px)}.mc-form-field_has-prefix .mc-input{padding-left:var(--mc-form-field-size-button-width, 32px)}.mc-cleaner{display:flex;width:var(--mc-form-field-size-button-width, 32px);height:100%;cursor:pointer}.mc-cleaner .mc-icon{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.mc-form-field__cleaner .mc-cleaner{position:absolute;top:0;bottom:0;right:0}mc-stepper{position:absolute;display:flex;flex-direction:column;justify-content:center;align-items:center;top:0;bottom:0;right:0;width:var(--mc-form-field-size-button-width, 32px)}mc-stepper .mc-stepper-step-up,mc-stepper .mc-stepper-step-down{cursor:pointer;width:var(--mc-form-field-size-button-width, 32px);text-align:center}mc-stepper .mc-stepper-step-up{transform:scaleY(-1)}\n", ".mc-input{background:transparent;padding:0;margin:0;border:none;outline:none;box-sizing:border-box;padding:var(--mc-input-size-padding, 5px 16px);width:var(--mc-input-size-width, 100%);min-height:var(--mc-input-size-min-height, 30px)}.mc-input::-ms-clear{display:none;width:0;height:0}.mc-input::-ms-reveal{display:none;width:0;height:0}.mc-input::-webkit-search-decoration,.mc-input::-webkit-search-cancel-button,.mc-input::-webkit-search-results-button,.mc-input::-webkit-search-results-decoration{display:none}.mc-input{display:inline-block}input.mc-input[type=number]{-moz-appearance:textfield}input.mc-input[type=number]::-webkit-inner-spin-button,input.mc-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}input.mc-input:invalid{box-shadow:unset}\n", ".mc-timepicker{padding-right:calc(var(--mc-timepicker-size-padding-right, 16px) - var(--mc-form-field-size-border-width, 1px))}.mc-form-field-type-timepicker{width:auto}\n", ".mc-form-field-type-datepicker{width:auto}.mc-datepicker{width:var(--mc-datepicker-input-size-width, 130px)}\n", ".mc-textarea{background:transparent;margin:0;border:none;outline:none;resize:none;overflow:auto;width:100%;box-sizing:border-box;padding:var(--mc-textarea-size-padding, 5px 16px)}.mc-textarea{display:inline-block;-webkit-appearance:none;vertical-align:bottom}.mc-textarea:not(.mc-textarea-resizable){box-sizing:border-box;overflow-y:hidden}.mc-textarea.mc-textarea-resizable{resize:vertical;min-height:var(--mc-textarea-size-min-height, 50px)}.mc-textarea:invalid{box-shadow:unset}\n"], directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
273
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McFormField, decorators: [{
415
+ /** @nocollapse */ /** @nocollapse */ McFormField.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: McFormField, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$1.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component });
416
+ /** @nocollapse */ /** @nocollapse */ McFormField.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.4", type: McFormField, selector: "mc-form-field", inputs: { color: "color" }, host: { listeners: { "keydown": "onKeyDown($event)", "mouseenter": "onHoverChanged(true)", "mouseleave": "onHoverChanged(false)" }, properties: { "class.mc-form-field_invalid": "control.errorState", "class.mc-form-field_has-prefix": "hasPrefix", "class.mc-form-field_has-suffix": "hasSuffix", "class.mc-form-field_has-cleaner": "canShowCleaner", "class.mc-form-field_has-stepper": "canShowStepper", "class.mc-disabled": "control.disabled", "class.ng-untouched": "shouldForward(\"untouched\")", "class.ng-touched": "shouldForward(\"touched\")", "class.ng-pristine": "shouldForward(\"pristine\")", "class.ng-dirty": "shouldForward(\"dirty\")", "class.ng-valid": "shouldForward(\"valid\")", "class.ng-invalid": "shouldForward(\"invalid\")", "class.ng-pending": "shouldForward(\"pending\")" }, classAttribute: "mc-form-field" }, queries: [{ propertyName: "control", first: true, predicate: McFormFieldControl, descendants: true }, { propertyName: "stepper", first: true, predicate: McStepper, descendants: true }, { propertyName: "cleaner", first: true, predicate: McCleaner, descendants: true }, { propertyName: "hint", predicate: McHint }, { propertyName: "passwordHints", predicate: McPasswordHint }, { propertyName: "suffix", predicate: McSuffix }, { propertyName: "prefix", predicate: McPrefix }], viewQueries: [{ propertyName: "connectionContainerRef", first: true, predicate: ["connectionContainer"], descendants: true, static: true }], exportAs: ["mcFormField"], usesInheritance: true, ngImport: i0, template: "<div class=\"mc-form-field__container\" (click)=\"onContainerClick($event)\">\n\n <div class=\"mc-form-field__prefix\" *ngIf=\"hasPrefix\">\n <ng-content select=\"[mcPrefix]\"></ng-content>\n </div>\n\n <div class=\"mc-form-field__infix\">\n <ng-content></ng-content>\n </div>\n\n <div class=\"mc-form-field__suffix\" *ngIf=\"hasSuffix\">\n <ng-content select=\"[mcSuffix]\"></ng-content>\n </div>\n\n <div class=\"mc-form-field__cleaner\"\n *ngIf=\"canShowCleaner && !hasSuffix\"\n (click)=\"clearValue($event)\">\n <ng-content select=\"mc-cleaner\"></ng-content>\n </div>\n\n <ng-content select=\"mc-password-toggle\"></ng-content>\n\n <ng-content *ngIf=\"canShowStepper\" select=\"mc-stepper\"></ng-content>\n</div>\n\n<div class=\"mc-form-field__hint\">\n <ng-content select=\"mc-hint, mc-password-hint\"></ng-content>\n</div>\n", styles: [".mc-form-field{position:relative;display:inline-block;width:100%;border-radius:var(--mc-form-field-size-border-radius, 3px)}.mc-form-field:hover{z-index:1}.mc-form-field.mc-focused{z-index:2}.mc-form-field-type-input-password .mc-input{padding-right:var(--mc-form-field-size-button-width, 32px)}.mc-hint{display:block}.mc-password-hint{display:block;padding-left:calc(16px + var(--mc-form-field-password-hint-size-icon-margin, 4px))}.mc-password-hint .mc-icon{position:absolute;left:0}.mc-form-field__hint>.mc-password-hint{margin-top:var(--mc-form-field-password-hint-size-margin-top, 8px)}.mc-form-field__hint>.mc-hint{margin-top:var(--mc-form-field-hint-size-margin-top, 4px)}.mc-form-field__container{position:relative;border-width:var(--mc-form-field-size-border-width, 1px);border-style:solid;border-color:transparent;border-radius:var(--mc-form-field-size-border-radius, 3px)}.mc-form-field_without-borders .mc-form-field__container{border-color:transparent}.mc-form-field__prefix,.mc-form-field__suffix{position:absolute;top:0;bottom:0;width:32px;display:flex;flex-direction:row;justify-content:center;align-items:center}.mc-form-field__prefix{left:0}.mc-form-field__suffix{right:0}.mc-form-field_has-suffix .mc-input,.mc-form-field_has-cleaner .mc-input,.mc-form-field_has-stepper .mc-input{padding-right:var(--mc-form-field-size-button-width, 32px)}.mc-form-field_has-prefix .mc-input{padding-left:var(--mc-form-field-size-button-width, 32px)}.mc-cleaner{display:flex;width:var(--mc-form-field-size-button-width, 32px);height:100%;cursor:pointer}.mc-cleaner .mc-icon{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.mc-form-field__cleaner .mc-cleaner{position:absolute;top:0;bottom:0;right:0}mc-stepper{position:absolute;display:flex;flex-direction:column;justify-content:center;align-items:center;top:0;bottom:0;right:0;width:var(--mc-form-field-size-button-width, 32px)}mc-stepper .mc-stepper-step-up,mc-stepper .mc-stepper-step-down{cursor:pointer;width:var(--mc-form-field-size-button-width, 32px);text-align:center}mc-stepper .mc-stepper-step-up{transform:scaleY(-1)}\n", ".mc-input{background:transparent;padding:0;margin:0;border:none;outline:none;width:var(--mc-input-size-width, 100%);min-height:calc(var(--mc-form-field-size-height, 32px) - var(--mc-form-field-size-border-width, 1px) * 2);padding:var(--mc-input-size-padding, 0 16px)}.mc-input::-ms-clear{display:none;width:0;height:0}.mc-input::-ms-reveal{display:none;width:0;height:0}.mc-input::-webkit-search-decoration,.mc-input::-webkit-search-cancel-button,.mc-input::-webkit-search-results-button,.mc-input::-webkit-search-results-decoration{display:none}.mc-input{display:inline-block}input.mc-input[type=number]{-moz-appearance:textfield}input.mc-input[type=number]::-webkit-inner-spin-button,input.mc-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}input.mc-input:invalid{box-shadow:unset}.mc-password-toggle{display:flex;position:absolute;top:-1px;right:-1px;border:1px solid transparent;width:32px;height:32px;align-items:center;justify-content:center;cursor:pointer;border-top-right-radius:var(--mc-form-field-size-border-radius, 3px);border-bottom-right-radius:var(--mc-form-field-size-border-radius, 3px)}.mc-password-toggle::-moz-focus-inner{border:0}.mc-password-toggle:focus{outline:none}\n", ".mc-timepicker{padding-right:calc(var(--mc-timepicker-size-padding-right, 16px) - var(--mc-form-field-size-border-width, 1px))}.mc-form-field-type-timepicker{width:auto}\n", ".mc-form-field-type-datepicker{width:auto}.mc-datepicker{width:var(--mc-datepicker-input-size-width, 130px)}\n", ".mc-textarea{background:transparent;margin:0;border:none;outline:none;resize:none;overflow:auto;width:100%;box-sizing:border-box;padding:var(--mc-textarea-size-padding, 5px 16px)}.mc-textarea{display:inline-block;-webkit-appearance:none;vertical-align:bottom}.mc-textarea:not(.mc-textarea-resizable){box-sizing:border-box;overflow-y:hidden}.mc-textarea.mc-textarea-resizable{resize:vertical;min-height:var(--mc-textarea-size-min-height, 50px)}.mc-textarea:invalid{box-shadow:unset}\n"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
417
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: McFormField, decorators: [{
274
418
  type: Component,
275
419
  args: [{ selector: 'mc-form-field', exportAs: 'mcFormField', host: {
276
420
  class: 'mc-form-field',
@@ -280,7 +424,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
280
424
  '[class.mc-form-field_has-cleaner]': 'canShowCleaner',
281
425
  '[class.mc-form-field_has-stepper]': 'canShowStepper',
282
426
  '[class.mc-disabled]': 'control.disabled',
283
- '[class.mc-focused]': 'control.focused',
284
427
  '[class.ng-untouched]': 'shouldForward("untouched")',
285
428
  '[class.ng-touched]': 'shouldForward("touched")',
286
429
  '[class.ng-pristine]': 'shouldForward("pristine")',
@@ -291,8 +434,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
291
434
  '(keydown)': 'onKeyDown($event)',
292
435
  '(mouseenter)': 'onHoverChanged(true)',
293
436
  '(mouseleave)': 'onHoverChanged(false)'
294
- }, inputs: ['color'], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"mc-form-field__container\" (click)=\"onContainerClick($event)\">\n\n <div class=\"mc-form-field__prefix\" *ngIf=\"hasPrefix\">\n <ng-content select=\"[mcPrefix]\"></ng-content>\n </div>\n\n <div class=\"mc-form-field__infix\">\n <ng-content></ng-content>\n </div>\n\n <div class=\"mc-form-field__suffix\" *ngIf=\"hasSuffix\">\n <ng-content select=\"[mcSuffix]\"></ng-content>\n </div>\n\n <div class=\"mc-form-field__cleaner\"\n *ngIf=\"canShowCleaner && !hasSuffix\"\n (click)=\"clearValue($event)\">\n <ng-content select=\"mc-cleaner\"></ng-content>\n </div>\n\n <ng-content *ngIf=\"canShowStepper\" select=\"mc-stepper\"></ng-content>\n</div>\n\n<div class=\"mc-form-field__hint\">\n <ng-content select=\"mc-hint\"></ng-content>\n</div>\n", styles: [".mc-form-field{position:relative;display:inline-block;width:100%;border-radius:var(--mc-form-field-size-border-radius, 3px)}.mc-form-field:hover{z-index:1}.mc-form-field.mc-focused{z-index:2}.mc-hint{display:block}.mc-form-field__hint>.mc-hint{margin-top:var(--mc-form-field-hint-size-margin-top, 4px)}.mc-form-field__container{position:relative;border-width:var(--mc-form-field-size-border-width, 1px);border-style:solid;border-color:transparent;border-radius:var(--mc-form-field-size-border-radius, 3px)}.mc-form-field_without-borders .mc-form-field__container{border-color:transparent}.mc-form-field__prefix,.mc-form-field__suffix{position:absolute;top:0;bottom:0;width:32px;display:flex;flex-direction:row;justify-content:center;align-items:center}.mc-form-field__prefix{left:0}.mc-form-field__suffix{right:0}.mc-form-field_has-suffix .mc-input,.mc-form-field_has-cleaner .mc-input,.mc-form-field_has-stepper .mc-input{padding-right:var(--mc-form-field-size-button-width, 32px)}.mc-form-field_has-prefix .mc-input{padding-left:var(--mc-form-field-size-button-width, 32px)}.mc-cleaner{display:flex;width:var(--mc-form-field-size-button-width, 32px);height:100%;cursor:pointer}.mc-cleaner .mc-icon{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.mc-form-field__cleaner .mc-cleaner{position:absolute;top:0;bottom:0;right:0}mc-stepper{position:absolute;display:flex;flex-direction:column;justify-content:center;align-items:center;top:0;bottom:0;right:0;width:var(--mc-form-field-size-button-width, 32px)}mc-stepper .mc-stepper-step-up,mc-stepper .mc-stepper-step-down{cursor:pointer;width:var(--mc-form-field-size-button-width, 32px);text-align:center}mc-stepper .mc-stepper-step-up{transform:scaleY(-1)}\n", ".mc-input{background:transparent;padding:0;margin:0;border:none;outline:none;box-sizing:border-box;padding:var(--mc-input-size-padding, 5px 16px);width:var(--mc-input-size-width, 100%);min-height:var(--mc-input-size-min-height, 30px)}.mc-input::-ms-clear{display:none;width:0;height:0}.mc-input::-ms-reveal{display:none;width:0;height:0}.mc-input::-webkit-search-decoration,.mc-input::-webkit-search-cancel-button,.mc-input::-webkit-search-results-button,.mc-input::-webkit-search-results-decoration{display:none}.mc-input{display:inline-block}input.mc-input[type=number]{-moz-appearance:textfield}input.mc-input[type=number]::-webkit-inner-spin-button,input.mc-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}input.mc-input:invalid{box-shadow:unset}\n", ".mc-timepicker{padding-right:calc(var(--mc-timepicker-size-padding-right, 16px) - var(--mc-form-field-size-border-width, 1px))}.mc-form-field-type-timepicker{width:auto}\n", ".mc-form-field-type-datepicker{width:auto}.mc-datepicker{width:var(--mc-datepicker-input-size-width, 130px)}\n", ".mc-textarea{background:transparent;margin:0;border:none;outline:none;resize:none;overflow:auto;width:100%;box-sizing:border-box;padding:var(--mc-textarea-size-padding, 5px 16px)}.mc-textarea{display:inline-block;-webkit-appearance:none;vertical-align:bottom}.mc-textarea:not(.mc-textarea-resizable){box-sizing:border-box;overflow-y:hidden}.mc-textarea.mc-textarea-resizable{resize:vertical;min-height:var(--mc-textarea-size-min-height, 50px)}.mc-textarea:invalid{box-shadow:unset}\n"] }]
295
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { control: [{
437
+ }, inputs: ['color'], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"mc-form-field__container\" (click)=\"onContainerClick($event)\">\n\n <div class=\"mc-form-field__prefix\" *ngIf=\"hasPrefix\">\n <ng-content select=\"[mcPrefix]\"></ng-content>\n </div>\n\n <div class=\"mc-form-field__infix\">\n <ng-content></ng-content>\n </div>\n\n <div class=\"mc-form-field__suffix\" *ngIf=\"hasSuffix\">\n <ng-content select=\"[mcSuffix]\"></ng-content>\n </div>\n\n <div class=\"mc-form-field__cleaner\"\n *ngIf=\"canShowCleaner && !hasSuffix\"\n (click)=\"clearValue($event)\">\n <ng-content select=\"mc-cleaner\"></ng-content>\n </div>\n\n <ng-content select=\"mc-password-toggle\"></ng-content>\n\n <ng-content *ngIf=\"canShowStepper\" select=\"mc-stepper\"></ng-content>\n</div>\n\n<div class=\"mc-form-field__hint\">\n <ng-content select=\"mc-hint, mc-password-hint\"></ng-content>\n</div>\n", styles: [".mc-form-field{position:relative;display:inline-block;width:100%;border-radius:var(--mc-form-field-size-border-radius, 3px)}.mc-form-field:hover{z-index:1}.mc-form-field.mc-focused{z-index:2}.mc-form-field-type-input-password .mc-input{padding-right:var(--mc-form-field-size-button-width, 32px)}.mc-hint{display:block}.mc-password-hint{display:block;padding-left:calc(16px + var(--mc-form-field-password-hint-size-icon-margin, 4px))}.mc-password-hint .mc-icon{position:absolute;left:0}.mc-form-field__hint>.mc-password-hint{margin-top:var(--mc-form-field-password-hint-size-margin-top, 8px)}.mc-form-field__hint>.mc-hint{margin-top:var(--mc-form-field-hint-size-margin-top, 4px)}.mc-form-field__container{position:relative;border-width:var(--mc-form-field-size-border-width, 1px);border-style:solid;border-color:transparent;border-radius:var(--mc-form-field-size-border-radius, 3px)}.mc-form-field_without-borders .mc-form-field__container{border-color:transparent}.mc-form-field__prefix,.mc-form-field__suffix{position:absolute;top:0;bottom:0;width:32px;display:flex;flex-direction:row;justify-content:center;align-items:center}.mc-form-field__prefix{left:0}.mc-form-field__suffix{right:0}.mc-form-field_has-suffix .mc-input,.mc-form-field_has-cleaner .mc-input,.mc-form-field_has-stepper .mc-input{padding-right:var(--mc-form-field-size-button-width, 32px)}.mc-form-field_has-prefix .mc-input{padding-left:var(--mc-form-field-size-button-width, 32px)}.mc-cleaner{display:flex;width:var(--mc-form-field-size-button-width, 32px);height:100%;cursor:pointer}.mc-cleaner .mc-icon{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.mc-form-field__cleaner .mc-cleaner{position:absolute;top:0;bottom:0;right:0}mc-stepper{position:absolute;display:flex;flex-direction:column;justify-content:center;align-items:center;top:0;bottom:0;right:0;width:var(--mc-form-field-size-button-width, 32px)}mc-stepper .mc-stepper-step-up,mc-stepper .mc-stepper-step-down{cursor:pointer;width:var(--mc-form-field-size-button-width, 32px);text-align:center}mc-stepper .mc-stepper-step-up{transform:scaleY(-1)}\n", ".mc-input{background:transparent;padding:0;margin:0;border:none;outline:none;width:var(--mc-input-size-width, 100%);min-height:calc(var(--mc-form-field-size-height, 32px) - var(--mc-form-field-size-border-width, 1px) * 2);padding:var(--mc-input-size-padding, 0 16px)}.mc-input::-ms-clear{display:none;width:0;height:0}.mc-input::-ms-reveal{display:none;width:0;height:0}.mc-input::-webkit-search-decoration,.mc-input::-webkit-search-cancel-button,.mc-input::-webkit-search-results-button,.mc-input::-webkit-search-results-decoration{display:none}.mc-input{display:inline-block}input.mc-input[type=number]{-moz-appearance:textfield}input.mc-input[type=number]::-webkit-inner-spin-button,input.mc-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}input.mc-input:invalid{box-shadow:unset}.mc-password-toggle{display:flex;position:absolute;top:-1px;right:-1px;border:1px solid transparent;width:32px;height:32px;align-items:center;justify-content:center;cursor:pointer;border-top-right-radius:var(--mc-form-field-size-border-radius, 3px);border-bottom-right-radius:var(--mc-form-field-size-border-radius, 3px)}.mc-password-toggle::-moz-focus-inner{border:0}.mc-password-toggle:focus{outline:none}\n", ".mc-timepicker{padding-right:calc(var(--mc-timepicker-size-padding-right, 16px) - var(--mc-form-field-size-border-width, 1px))}.mc-form-field-type-timepicker{width:auto}\n", ".mc-form-field-type-datepicker{width:auto}.mc-datepicker{width:var(--mc-datepicker-input-size-width, 130px)}\n", ".mc-textarea{background:transparent;margin:0;border:none;outline:none;resize:none;overflow:auto;width:100%;box-sizing:border-box;padding:var(--mc-textarea-size-padding, 5px 16px)}.mc-textarea{display:inline-block;-webkit-appearance:none;vertical-align:bottom}.mc-textarea:not(.mc-textarea-resizable){box-sizing:border-box;overflow-y:hidden}.mc-textarea.mc-textarea-resizable{resize:vertical;min-height:var(--mc-textarea-size-min-height, 50px)}.mc-textarea:invalid{box-shadow:unset}\n"] }]
438
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$1.FocusMonitor }]; }, propDecorators: { control: [{
296
439
  type: ContentChild,
297
440
  args: [McFormFieldControl, { static: false }]
298
441
  }], stepper: [{
@@ -304,6 +447,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
304
447
  }], hint: [{
305
448
  type: ContentChildren,
306
449
  args: [McHint]
450
+ }], passwordHints: [{
451
+ type: ContentChildren,
452
+ args: [McPasswordHint]
307
453
  }], suffix: [{
308
454
  type: ContentChildren,
309
455
  args: [McSuffix]
@@ -316,9 +462,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
316
462
  }] } });
317
463
  class McFormFieldWithoutBorders {
318
464
  }
319
- /** @nocollapse */ /** @nocollapse */ McFormFieldWithoutBorders.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McFormFieldWithoutBorders, deps: [], target: i0.ɵɵFactoryTarget.Directive });
320
- /** @nocollapse */ /** @nocollapse */ McFormFieldWithoutBorders.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.0", type: McFormFieldWithoutBorders, selector: "mc-form-field[mcFormFieldWithoutBorders]", host: { classAttribute: "mc-form-field_without-borders" }, exportAs: ["mcFormFieldWithoutBorders"], ngImport: i0 });
321
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McFormFieldWithoutBorders, decorators: [{
465
+ /** @nocollapse */ /** @nocollapse */ McFormFieldWithoutBorders.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: McFormFieldWithoutBorders, deps: [], target: i0.ɵɵFactoryTarget.Directive });
466
+ /** @nocollapse */ /** @nocollapse */ McFormFieldWithoutBorders.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.4", type: McFormFieldWithoutBorders, selector: "mc-form-field[mcFormFieldWithoutBorders]", host: { classAttribute: "mc-form-field_without-borders" }, exportAs: ["mcFormFieldWithoutBorders"], ngImport: i0 });
467
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: McFormFieldWithoutBorders, decorators: [{
322
468
  type: Directive,
323
469
  args: [{
324
470
  selector: 'mc-form-field[mcFormFieldWithoutBorders]',
@@ -329,28 +475,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
329
475
 
330
476
  class McFormFieldModule {
331
477
  }
332
- /** @nocollapse */ /** @nocollapse */ McFormFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McFormFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
333
- /** @nocollapse */ /** @nocollapse */ McFormFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McFormFieldModule, declarations: [McFormField,
478
+ /** @nocollapse */ /** @nocollapse */ McFormFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: McFormFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
479
+ /** @nocollapse */ /** @nocollapse */ McFormFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: McFormFieldModule, declarations: [McFormField,
334
480
  McFormFieldWithoutBorders,
335
481
  McHint,
482
+ McPasswordHint,
336
483
  McPrefix,
337
484
  McSuffix,
338
485
  McCleaner,
339
486
  McStepper], imports: [CommonModule, McIconModule], exports: [McFormField,
340
487
  McFormFieldWithoutBorders,
341
488
  McHint,
489
+ McPasswordHint,
342
490
  McPrefix,
343
491
  McSuffix,
344
492
  McCleaner,
345
493
  McStepper] });
346
- /** @nocollapse */ /** @nocollapse */ McFormFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McFormFieldModule, imports: [[CommonModule, McIconModule]] });
347
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: McFormFieldModule, decorators: [{
494
+ /** @nocollapse */ /** @nocollapse */ McFormFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: McFormFieldModule, imports: [[CommonModule, McIconModule]] });
495
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: McFormFieldModule, decorators: [{
348
496
  type: NgModule,
349
497
  args: [{
350
498
  declarations: [
351
499
  McFormField,
352
500
  McFormFieldWithoutBorders,
353
501
  McHint,
502
+ McPasswordHint,
354
503
  McPrefix,
355
504
  McSuffix,
356
505
  McCleaner,
@@ -361,6 +510,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
361
510
  McFormField,
362
511
  McFormFieldWithoutBorders,
363
512
  McHint,
513
+ McPasswordHint,
364
514
  McPrefix,
365
515
  McSuffix,
366
516
  McCleaner,
@@ -373,5 +523,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
373
523
  * Generated bundle index. Do not edit.
374
524
  */
375
525
 
376
- export { McCleaner, McFormField, McFormFieldBase, McFormFieldControl, McFormFieldMixinBase, McFormFieldModule, McFormFieldWithoutBorders, McHint, McPrefix, McStepper, McSuffix, getMcFormFieldMissingControlError, getMcFormFieldYouCanNotUseCleanerInNumberInputError };
526
+ export { McCleaner, McFormField, McFormFieldBase, McFormFieldControl, McFormFieldMixinBase, McFormFieldModule, McFormFieldWithoutBorders, McHint, McPasswordHint, McPrefix, McStepper, McSuffix, PasswordRules, getMcFormFieldMissingControlError, getMcFormFieldYouCanNotUseCleanerInNumberInputError, regExpPasswordValidator };
377
527
  //# sourceMappingURL=ptsecurity-mosaic-form-field.mjs.map