@ptsecurity/mosaic 13.0.0 → 13.2.0

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