@ptsecurity/mosaic 13.9.2 → 14.0.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 (513) hide show
  1. package/_theming.scss +90 -7388
  2. package/_visual.scss +6 -2778
  3. package/autocomplete/autocomplete-origin.directive.d.ts +1 -1
  4. package/autocomplete/autocomplete-trigger.directive.d.ts +1 -1
  5. package/autocomplete/autocomplete.component.d.ts +1 -1
  6. package/button/button.component.d.ts +4 -4
  7. package/button-toggle/button-toggle.component.d.ts +2 -2
  8. package/card/card.component.d.ts +3 -3
  9. package/checkbox/checkbox-required-validator.d.ts +1 -1
  10. package/checkbox/checkbox.d.ts +3 -3
  11. package/core/common-behaviors/color.d.ts +4 -1
  12. package/core/common-behaviors/error-state.d.ts +7 -4
  13. package/core/error/error-options.d.ts +3 -3
  14. package/core/formatters/number/formatter.d.ts +1 -1
  15. package/core/forms/forms.directive.d.ts +2 -2
  16. package/core/highlight/highlight.pipe.d.ts +1 -1
  17. package/core/line/line.d.ts +1 -1
  18. package/core/option/action.d.ts +2 -2
  19. package/core/option/optgroup.d.ts +2 -2
  20. package/core/option/option.d.ts +1 -1
  21. package/core/pop-up/pop-up-trigger.d.ts +2 -3
  22. package/core/pop-up/pop-up.d.ts +2 -2
  23. package/core/selection/pseudo-checkbox/pseudo-checkbox.d.ts +3 -3
  24. package/datepicker/calendar-body.component.d.ts +1 -1
  25. package/datepicker/calendar.component.d.ts +30 -30
  26. package/datepicker/datepicker-input.directive.d.ts +2 -2
  27. package/datepicker/datepicker-toggle.component.d.ts +2 -2
  28. package/datepicker/datepicker.component.d.ts +2 -2
  29. package/datepicker/month-view.component.d.ts +1 -1
  30. package/datepicker/multi-year-view.component.d.ts +1 -1
  31. package/datepicker/year-view.component.d.ts +1 -1
  32. package/design-tokens/legacy-2017/tokens/components/checkbox.json5 +16 -15
  33. package/design-tokens/legacy-2017/tokens/components/forms.json5 +0 -4
  34. package/design-tokens/legacy-2017/tokens/components/timezone.json5 +22 -0
  35. package/design-tokens/legacy-2017/tokens.d.ts +11 -2
  36. package/design-tokens/pt-2022/tokens/components/checkbox.json5 +17 -16
  37. package/design-tokens/pt-2022/tokens/components/forms.json5 +0 -4
  38. package/design-tokens/pt-2022/tokens/components/timezone.json5 +22 -0
  39. package/design-tokens/pt-2022/tokens.d.ts +11 -2
  40. package/design-tokens/style-dictionary/transforms/attribute/palette.js +1 -1
  41. package/design-tokens/style-dictionary/transforms/attribute/size.js +1 -1
  42. package/design-tokens/style-dictionary/transforms/attribute/typography.js +1 -1
  43. package/divider/divider.component.d.ts +1 -1
  44. package/dl/dl.component.d.ts +3 -3
  45. package/dropdown/dropdown-content.directive.d.ts +1 -1
  46. package/dropdown/dropdown-item.component.d.ts +1 -1
  47. package/dropdown/dropdown-trigger.directive.d.ts +1 -1
  48. package/dropdown/dropdown.component.d.ts +1 -1
  49. package/esm2020/autocomplete/autocomplete-origin.directive.mjs +4 -4
  50. package/esm2020/autocomplete/autocomplete-trigger.directive.mjs +7 -7
  51. package/esm2020/autocomplete/autocomplete.component.mjs +6 -7
  52. package/esm2020/autocomplete/autocomplete.module.mjs +5 -5
  53. package/esm2020/button/button.component.mjs +13 -13
  54. package/esm2020/button/button.module.mjs +7 -9
  55. package/esm2020/button-toggle/button-toggle.component.mjs +9 -9
  56. package/esm2020/button-toggle/button-toggle.module.mjs +5 -5
  57. package/esm2020/card/card.component.mjs +10 -10
  58. package/esm2020/card/card.module.mjs +7 -9
  59. package/esm2020/checkbox/checkbox-module.mjs +5 -5
  60. package/esm2020/checkbox/checkbox-required-validator.mjs +4 -4
  61. package/esm2020/checkbox/checkbox.mjs +8 -9
  62. package/esm2020/core/common-behaviors/color.mjs +6 -3
  63. package/esm2020/core/common-behaviors/common-module.mjs +5 -5
  64. package/esm2020/core/common-behaviors/disabled.mjs +1 -1
  65. package/esm2020/core/common-behaviors/error-state.mjs +1 -11
  66. package/esm2020/core/error/error-options.mjs +7 -7
  67. package/esm2020/core/formatters/date/formatter.mjs +4 -4
  68. package/esm2020/core/formatters/index.mjs +5 -5
  69. package/esm2020/core/formatters/number/formatter.mjs +5 -5
  70. package/esm2020/core/forms/forms-module.mjs +5 -5
  71. package/esm2020/core/forms/forms.directive.mjs +7 -7
  72. package/esm2020/core/highlight/highlight.pipe.mjs +4 -4
  73. package/esm2020/core/highlight/index.mjs +5 -5
  74. package/esm2020/core/line/line.mjs +8 -8
  75. package/esm2020/core/option/action.mjs +7 -7
  76. package/esm2020/core/option/optgroup.mjs +6 -6
  77. package/esm2020/core/option/option-module.mjs +6 -6
  78. package/esm2020/core/option/option.mjs +7 -7
  79. package/esm2020/core/pop-up/pop-up-trigger.mjs +4 -4
  80. package/esm2020/core/pop-up/pop-up.mjs +4 -4
  81. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +7 -8
  82. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.module.mjs +5 -5
  83. package/esm2020/core/services/measure-scrollbar.service.mjs +4 -4
  84. package/esm2020/datepicker/calendar-body.component.mjs +5 -5
  85. package/esm2020/datepicker/calendar.component.mjs +126 -129
  86. package/esm2020/datepicker/datepicker-input.directive.mjs +8 -9
  87. package/esm2020/datepicker/datepicker-intl.mjs +4 -4
  88. package/esm2020/datepicker/datepicker-module.mjs +11 -17
  89. package/esm2020/datepicker/datepicker-toggle.component.mjs +11 -11
  90. package/esm2020/datepicker/datepicker.component.mjs +10 -10
  91. package/esm2020/datepicker/month-view.component.mjs +6 -6
  92. package/esm2020/datepicker/multi-year-view.component.mjs +4 -4
  93. package/esm2020/datepicker/year-view.component.mjs +4 -4
  94. package/esm2020/design-tokens/legacy-2017/tokens.mjs +12 -3
  95. package/esm2020/design-tokens/pt-2022/tokens.mjs +12 -3
  96. package/esm2020/divider/divider.component.mjs +5 -5
  97. package/esm2020/divider/divider.module.mjs +5 -5
  98. package/esm2020/dl/dl.component.mjs +12 -12
  99. package/esm2020/dl/dl.module.mjs +7 -9
  100. package/esm2020/dropdown/dropdown-content.directive.mjs +4 -4
  101. package/esm2020/dropdown/dropdown-item.component.mjs +7 -7
  102. package/esm2020/dropdown/dropdown-trigger.directive.mjs +4 -4
  103. package/esm2020/dropdown/dropdown.component.mjs +6 -6
  104. package/esm2020/dropdown/dropdown.module.mjs +7 -9
  105. package/esm2020/form-field/cleaner.mjs +4 -4
  106. package/esm2020/form-field/form-field.mjs +24 -21
  107. package/esm2020/form-field/form-field.module.mjs +5 -5
  108. package/esm2020/form-field/hint.mjs +6 -7
  109. package/esm2020/form-field/password-hint.mjs +11 -12
  110. package/esm2020/form-field/prefix.mjs +4 -4
  111. package/esm2020/form-field/stepper.mjs +4 -4
  112. package/esm2020/form-field/suffix.mjs +4 -4
  113. package/esm2020/icon/icon.component.mjs +10 -11
  114. package/esm2020/icon/icon.module.mjs +7 -9
  115. package/esm2020/input/input-number-validators.mjs +7 -7
  116. package/esm2020/input/input-number.mjs +4 -4
  117. package/esm2020/input/input-password.mjs +11 -11
  118. package/esm2020/input/input.mjs +13 -7
  119. package/esm2020/input/input.module.mjs +8 -10
  120. package/esm2020/link/link.component.mjs +4 -4
  121. package/esm2020/link/link.module.mjs +6 -8
  122. package/esm2020/list/list-selection.component.mjs +10 -10
  123. package/esm2020/list/list.component.mjs +8 -8
  124. package/esm2020/list/list.module.mjs +9 -11
  125. package/esm2020/loader-overlay/loader-overlay.component.mjs +16 -16
  126. package/esm2020/loader-overlay/loader-overlay.module.mjs +8 -10
  127. package/esm2020/modal/css-unit.pipe.mjs +4 -4
  128. package/esm2020/modal/modal-control.service.mjs +4 -4
  129. package/esm2020/modal/modal.component.mjs +9 -9
  130. package/esm2020/modal/modal.directive.mjs +13 -13
  131. package/esm2020/modal/modal.module.mjs +11 -14
  132. package/esm2020/modal/modal.service.mjs +5 -6
  133. package/esm2020/navbar/navbar-item.component.mjs +36 -36
  134. package/esm2020/navbar/navbar.component.mjs +11 -11
  135. package/esm2020/navbar/navbar.module.mjs +9 -11
  136. package/esm2020/navbar/vertical-navbar.component.mjs +6 -6
  137. package/esm2020/popover/popover-confirm.component.mjs +11 -11
  138. package/esm2020/popover/popover.component.mjs +10 -10
  139. package/esm2020/popover/popover.module.mjs +6 -7
  140. package/esm2020/progress-bar/progress-bar.component.mjs +7 -8
  141. package/esm2020/progress-bar/progress-bar.module.mjs +6 -8
  142. package/esm2020/progress-spinner/progress-spinner.component.mjs +7 -8
  143. package/esm2020/progress-spinner/progress-spinner.module.mjs +6 -8
  144. package/esm2020/radio/radio.component.mjs +14 -16
  145. package/esm2020/radio/radio.module.mjs +5 -5
  146. package/esm2020/select/select-option.directive.mjs +4 -4
  147. package/esm2020/select/select.component.mjs +26 -20
  148. package/esm2020/select/select.module.mjs +10 -12
  149. package/esm2020/sidebar/sidebar.component.mjs +10 -10
  150. package/esm2020/sidebar/sidebar.module.mjs +5 -5
  151. package/esm2020/sidepanel/sidepanel-container.component.mjs +7 -7
  152. package/esm2020/sidepanel/sidepanel-directives.mjs +22 -20
  153. package/esm2020/sidepanel/sidepanel.module.mjs +11 -14
  154. package/esm2020/sidepanel/sidepanel.service.mjs +32 -29
  155. package/esm2020/splitter/splitter.component.mjs +37 -37
  156. package/esm2020/splitter/splitter.module.mjs +6 -8
  157. package/esm2020/table/table.component.mjs +4 -4
  158. package/esm2020/table/table.module.mjs +7 -9
  159. package/esm2020/tabs/paginated-tab-header.mjs +4 -4
  160. package/esm2020/tabs/tab-body.component.mjs +7 -7
  161. package/esm2020/tabs/tab-content.directive.mjs +4 -4
  162. package/esm2020/tabs/tab-group.component.mjs +30 -31
  163. package/esm2020/tabs/tab-header.component.mjs +5 -5
  164. package/esm2020/tabs/tab-label-wrapper.directive.mjs +4 -4
  165. package/esm2020/tabs/tab-label.directive.mjs +4 -4
  166. package/esm2020/tabs/tab-nav-bar/tab-nav-bar.mjs +8 -8
  167. package/esm2020/tabs/tab.component.mjs +4 -4
  168. package/esm2020/tabs/tabs.module.mjs +11 -13
  169. package/esm2020/tags/tag-input.mjs +4 -4
  170. package/esm2020/tags/tag-list.component.mjs +12 -6
  171. package/esm2020/tags/tag.component.mjs +24 -22
  172. package/esm2020/tags/tag.module.mjs +6 -6
  173. package/esm2020/textarea/textarea.component.mjs +10 -4
  174. package/esm2020/textarea/textarea.module.mjs +5 -5
  175. package/esm2020/timepicker/timepicker.directive.mjs +4 -4
  176. package/esm2020/timepicker/timepicker.module.mjs +8 -10
  177. package/esm2020/timezone/cities-by-filter.pipe.mjs +17 -0
  178. package/esm2020/timezone/index.mjs +2 -0
  179. package/esm2020/timezone/ptsecurity-mosaic-timezone.mjs +5 -0
  180. package/esm2020/timezone/public-api.mjs +7 -0
  181. package/esm2020/timezone/timezone-option.component.mjs +48 -0
  182. package/esm2020/timezone/timezone-option.directive.mjs +58 -0
  183. package/esm2020/timezone/timezone-select.component.mjs +40 -0
  184. package/esm2020/timezone/timezone.models.mjs +3 -0
  185. package/esm2020/timezone/timezone.module.mjs +75 -0
  186. package/esm2020/timezone/timezone.utils.mjs +64 -0
  187. package/esm2020/timezone/utc-offset.pipe.mjs +17 -0
  188. package/esm2020/toast/toast-container.component.mjs +5 -5
  189. package/esm2020/toast/toast.component.mjs +9 -9
  190. package/esm2020/toast/toast.module.mjs +12 -12
  191. package/esm2020/toast/toast.service.mjs +12 -12
  192. package/esm2020/toggle/toggle.component.mjs +13 -16
  193. package/esm2020/toggle/toggle.module.mjs +5 -5
  194. package/esm2020/tooltip/tooltip.component.mjs +14 -14
  195. package/esm2020/tooltip/tooltip.module.mjs +7 -8
  196. package/esm2020/tree/control/flat-tree-control.mjs +1 -1
  197. package/esm2020/tree/data-source/nested-data-source.mjs +1 -1
  198. package/esm2020/tree/node.mjs +4 -4
  199. package/esm2020/tree/outlet.mjs +4 -4
  200. package/esm2020/tree/padding.directive.mjs +4 -4
  201. package/esm2020/tree/toggle.mjs +11 -11
  202. package/esm2020/tree/tree-base.mjs +7 -7
  203. package/esm2020/tree/tree-option.component.mjs +8 -8
  204. package/esm2020/tree/tree-selection.component.mjs +5 -5
  205. package/esm2020/tree/tree.mjs +4 -4
  206. package/esm2020/tree/tree.module.mjs +5 -5
  207. package/esm2020/tree-select/tree-select.component.mjs +20 -14
  208. package/esm2020/tree-select/tree-select.module.mjs +11 -13
  209. package/fesm2015/ptsecurity-mosaic-autocomplete.mjs +18 -19
  210. package/fesm2015/ptsecurity-mosaic-autocomplete.mjs.map +1 -1
  211. package/fesm2015/ptsecurity-mosaic-button-toggle.mjs +12 -12
  212. package/fesm2015/ptsecurity-mosaic-button-toggle.mjs.map +1 -1
  213. package/fesm2015/ptsecurity-mosaic-button.mjs +18 -20
  214. package/fesm2015/ptsecurity-mosaic-button.mjs.map +1 -1
  215. package/fesm2015/ptsecurity-mosaic-card.mjs +15 -17
  216. package/fesm2015/ptsecurity-mosaic-card.mjs.map +1 -1
  217. package/fesm2015/ptsecurity-mosaic-checkbox.mjs +14 -15
  218. package/fesm2015/ptsecurity-mosaic-checkbox.mjs.map +1 -1
  219. package/fesm2015/ptsecurity-mosaic-core.mjs +87 -94
  220. package/fesm2015/ptsecurity-mosaic-core.mjs.map +1 -1
  221. package/fesm2015/ptsecurity-mosaic-datepicker.mjs +174 -184
  222. package/fesm2015/ptsecurity-mosaic-datepicker.mjs.map +1 -1
  223. package/fesm2015/ptsecurity-mosaic-design-tokens.mjs +34 -7
  224. package/fesm2015/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
  225. package/fesm2015/ptsecurity-mosaic-divider.mjs +8 -8
  226. package/fesm2015/ptsecurity-mosaic-divider.mjs.map +1 -1
  227. package/fesm2015/ptsecurity-mosaic-dl.mjs +17 -19
  228. package/fesm2015/ptsecurity-mosaic-dl.mjs.map +1 -1
  229. package/fesm2015/ptsecurity-mosaic-dropdown.mjs +23 -25
  230. package/fesm2015/ptsecurity-mosaic-dropdown.mjs.map +1 -1
  231. package/fesm2015/ptsecurity-mosaic-form-field.mjs +54 -52
  232. package/fesm2015/ptsecurity-mosaic-form-field.mjs.map +1 -1
  233. package/fesm2015/ptsecurity-mosaic-icon.mjs +15 -18
  234. package/fesm2015/ptsecurity-mosaic-icon.mjs.map +1 -1
  235. package/fesm2015/ptsecurity-mosaic-input.mjs +38 -34
  236. package/fesm2015/ptsecurity-mosaic-input.mjs.map +1 -1
  237. package/fesm2015/ptsecurity-mosaic-link.mjs +8 -10
  238. package/fesm2015/ptsecurity-mosaic-link.mjs.map +1 -1
  239. package/fesm2015/ptsecurity-mosaic-list.mjs +24 -26
  240. package/fesm2015/ptsecurity-mosaic-list.mjs.map +1 -1
  241. package/fesm2015/ptsecurity-mosaic-loader-overlay.mjs +22 -24
  242. package/fesm2015/ptsecurity-mosaic-loader-overlay.mjs.map +1 -1
  243. package/fesm2015/ptsecurity-mosaic-modal.mjs +41 -45
  244. package/fesm2015/ptsecurity-mosaic-modal.mjs.map +1 -1
  245. package/fesm2015/ptsecurity-mosaic-navbar.mjs +58 -60
  246. package/fesm2015/ptsecurity-mosaic-navbar.mjs.map +1 -1
  247. package/fesm2015/ptsecurity-mosaic-popover.mjs +22 -23
  248. package/fesm2015/ptsecurity-mosaic-popover.mjs.map +1 -1
  249. package/fesm2015/ptsecurity-mosaic-progress-bar.mjs +11 -14
  250. package/fesm2015/ptsecurity-mosaic-progress-bar.mjs.map +1 -1
  251. package/fesm2015/ptsecurity-mosaic-progress-spinner.mjs +11 -14
  252. package/fesm2015/ptsecurity-mosaic-progress-spinner.mjs.map +1 -1
  253. package/fesm2015/ptsecurity-mosaic-radio.mjs +17 -19
  254. package/fesm2015/ptsecurity-mosaic-radio.mjs.map +1 -1
  255. package/fesm2015/ptsecurity-mosaic-select.mjs +36 -32
  256. package/fesm2015/ptsecurity-mosaic-select.mjs.map +1 -1
  257. package/fesm2015/ptsecurity-mosaic-sidebar.mjs +13 -13
  258. package/fesm2015/ptsecurity-mosaic-sidebar.mjs.map +1 -1
  259. package/fesm2015/ptsecurity-mosaic-sidepanel.mjs +68 -66
  260. package/fesm2015/ptsecurity-mosaic-sidepanel.mjs.map +1 -1
  261. package/fesm2015/ptsecurity-mosaic-splitter.mjs +41 -43
  262. package/fesm2015/ptsecurity-mosaic-splitter.mjs.map +1 -1
  263. package/fesm2015/ptsecurity-mosaic-table.mjs +9 -11
  264. package/fesm2015/ptsecurity-mosaic-table.mjs.map +1 -1
  265. package/fesm2015/ptsecurity-mosaic-tabs.mjs +139 -142
  266. package/fesm2015/ptsecurity-mosaic-tabs.mjs.map +1 -1
  267. package/fesm2015/ptsecurity-mosaic-tags.mjs +42 -34
  268. package/fesm2015/ptsecurity-mosaic-tags.mjs.map +1 -1
  269. package/fesm2015/ptsecurity-mosaic-textarea.mjs +13 -7
  270. package/fesm2015/ptsecurity-mosaic-textarea.mjs.map +1 -1
  271. package/fesm2015/ptsecurity-mosaic-timepicker.mjs +10 -12
  272. package/fesm2015/ptsecurity-mosaic-timepicker.mjs.map +1 -1
  273. package/fesm2015/ptsecurity-mosaic-timezone.mjs +299 -0
  274. package/fesm2015/ptsecurity-mosaic-timezone.mjs.map +1 -0
  275. package/fesm2015/ptsecurity-mosaic-toast.mjs +124 -123
  276. package/fesm2015/ptsecurity-mosaic-toast.mjs.map +1 -1
  277. package/fesm2015/ptsecurity-mosaic-toggle.mjs +16 -19
  278. package/fesm2015/ptsecurity-mosaic-toggle.mjs.map +1 -1
  279. package/fesm2015/ptsecurity-mosaic-tooltip.mjs +19 -20
  280. package/fesm2015/ptsecurity-mosaic-tooltip.mjs.map +1 -1
  281. package/fesm2015/ptsecurity-mosaic-tree-select.mjs +29 -25
  282. package/fesm2015/ptsecurity-mosaic-tree-select.mjs.map +1 -1
  283. package/fesm2015/ptsecurity-mosaic-tree.mjs +44 -44
  284. package/fesm2015/ptsecurity-mosaic-tree.mjs.map +1 -1
  285. package/fesm2020/ptsecurity-mosaic-autocomplete.mjs +18 -19
  286. package/fesm2020/ptsecurity-mosaic-autocomplete.mjs.map +1 -1
  287. package/fesm2020/ptsecurity-mosaic-button-toggle.mjs +12 -12
  288. package/fesm2020/ptsecurity-mosaic-button-toggle.mjs.map +1 -1
  289. package/fesm2020/ptsecurity-mosaic-button.mjs +18 -20
  290. package/fesm2020/ptsecurity-mosaic-button.mjs.map +1 -1
  291. package/fesm2020/ptsecurity-mosaic-card.mjs +15 -17
  292. package/fesm2020/ptsecurity-mosaic-card.mjs.map +1 -1
  293. package/fesm2020/ptsecurity-mosaic-checkbox.mjs +14 -15
  294. package/fesm2020/ptsecurity-mosaic-checkbox.mjs.map +1 -1
  295. package/fesm2020/ptsecurity-mosaic-core.mjs +87 -94
  296. package/fesm2020/ptsecurity-mosaic-core.mjs.map +1 -1
  297. package/fesm2020/ptsecurity-mosaic-datepicker.mjs +173 -183
  298. package/fesm2020/ptsecurity-mosaic-datepicker.mjs.map +1 -1
  299. package/fesm2020/ptsecurity-mosaic-design-tokens.mjs +34 -7
  300. package/fesm2020/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
  301. package/fesm2020/ptsecurity-mosaic-divider.mjs +8 -8
  302. package/fesm2020/ptsecurity-mosaic-divider.mjs.map +1 -1
  303. package/fesm2020/ptsecurity-mosaic-dl.mjs +17 -19
  304. package/fesm2020/ptsecurity-mosaic-dl.mjs.map +1 -1
  305. package/fesm2020/ptsecurity-mosaic-dropdown.mjs +23 -25
  306. package/fesm2020/ptsecurity-mosaic-dropdown.mjs.map +1 -1
  307. package/fesm2020/ptsecurity-mosaic-form-field.mjs +54 -52
  308. package/fesm2020/ptsecurity-mosaic-form-field.mjs.map +1 -1
  309. package/fesm2020/ptsecurity-mosaic-icon.mjs +15 -18
  310. package/fesm2020/ptsecurity-mosaic-icon.mjs.map +1 -1
  311. package/fesm2020/ptsecurity-mosaic-input.mjs +38 -34
  312. package/fesm2020/ptsecurity-mosaic-input.mjs.map +1 -1
  313. package/fesm2020/ptsecurity-mosaic-link.mjs +8 -10
  314. package/fesm2020/ptsecurity-mosaic-link.mjs.map +1 -1
  315. package/fesm2020/ptsecurity-mosaic-list.mjs +24 -26
  316. package/fesm2020/ptsecurity-mosaic-list.mjs.map +1 -1
  317. package/fesm2020/ptsecurity-mosaic-loader-overlay.mjs +22 -24
  318. package/fesm2020/ptsecurity-mosaic-loader-overlay.mjs.map +1 -1
  319. package/fesm2020/ptsecurity-mosaic-modal.mjs +41 -45
  320. package/fesm2020/ptsecurity-mosaic-modal.mjs.map +1 -1
  321. package/fesm2020/ptsecurity-mosaic-navbar.mjs +58 -60
  322. package/fesm2020/ptsecurity-mosaic-navbar.mjs.map +1 -1
  323. package/fesm2020/ptsecurity-mosaic-popover.mjs +22 -23
  324. package/fesm2020/ptsecurity-mosaic-popover.mjs.map +1 -1
  325. package/fesm2020/ptsecurity-mosaic-progress-bar.mjs +11 -14
  326. package/fesm2020/ptsecurity-mosaic-progress-bar.mjs.map +1 -1
  327. package/fesm2020/ptsecurity-mosaic-progress-spinner.mjs +11 -14
  328. package/fesm2020/ptsecurity-mosaic-progress-spinner.mjs.map +1 -1
  329. package/fesm2020/ptsecurity-mosaic-radio.mjs +17 -19
  330. package/fesm2020/ptsecurity-mosaic-radio.mjs.map +1 -1
  331. package/fesm2020/ptsecurity-mosaic-select.mjs +36 -32
  332. package/fesm2020/ptsecurity-mosaic-select.mjs.map +1 -1
  333. package/fesm2020/ptsecurity-mosaic-sidebar.mjs +13 -13
  334. package/fesm2020/ptsecurity-mosaic-sidebar.mjs.map +1 -1
  335. package/fesm2020/ptsecurity-mosaic-sidepanel.mjs +68 -66
  336. package/fesm2020/ptsecurity-mosaic-sidepanel.mjs.map +1 -1
  337. package/fesm2020/ptsecurity-mosaic-splitter.mjs +41 -43
  338. package/fesm2020/ptsecurity-mosaic-splitter.mjs.map +1 -1
  339. package/fesm2020/ptsecurity-mosaic-table.mjs +9 -11
  340. package/fesm2020/ptsecurity-mosaic-table.mjs.map +1 -1
  341. package/fesm2020/ptsecurity-mosaic-tabs.mjs +68 -71
  342. package/fesm2020/ptsecurity-mosaic-tabs.mjs.map +1 -1
  343. package/fesm2020/ptsecurity-mosaic-tags.mjs +42 -34
  344. package/fesm2020/ptsecurity-mosaic-tags.mjs.map +1 -1
  345. package/fesm2020/ptsecurity-mosaic-textarea.mjs +13 -7
  346. package/fesm2020/ptsecurity-mosaic-textarea.mjs.map +1 -1
  347. package/fesm2020/ptsecurity-mosaic-timepicker.mjs +10 -12
  348. package/fesm2020/ptsecurity-mosaic-timepicker.mjs.map +1 -1
  349. package/fesm2020/ptsecurity-mosaic-timezone.mjs +298 -0
  350. package/fesm2020/ptsecurity-mosaic-timezone.mjs.map +1 -0
  351. package/fesm2020/ptsecurity-mosaic-toast.mjs +119 -118
  352. package/fesm2020/ptsecurity-mosaic-toast.mjs.map +1 -1
  353. package/fesm2020/ptsecurity-mosaic-toggle.mjs +16 -19
  354. package/fesm2020/ptsecurity-mosaic-toggle.mjs.map +1 -1
  355. package/fesm2020/ptsecurity-mosaic-tooltip.mjs +19 -20
  356. package/fesm2020/ptsecurity-mosaic-tooltip.mjs.map +1 -1
  357. package/fesm2020/ptsecurity-mosaic-tree-select.mjs +29 -25
  358. package/fesm2020/ptsecurity-mosaic-tree-select.mjs.map +1 -1
  359. package/fesm2020/ptsecurity-mosaic-tree.mjs +44 -44
  360. package/fesm2020/ptsecurity-mosaic-tree.mjs.map +1 -1
  361. package/form-field/cleaner.d.ts +1 -1
  362. package/form-field/form-field.d.ts +13 -7
  363. package/form-field/hint.d.ts +3 -3
  364. package/form-field/password-hint.d.ts +2 -3
  365. package/form-field/prefix.d.ts +1 -1
  366. package/form-field/stepper.d.ts +1 -1
  367. package/form-field/suffix.d.ts +1 -1
  368. package/icon/icon.component.d.ts +4 -4
  369. package/input/input-number-validators.d.ts +2 -2
  370. package/input/input-number.d.ts +1 -1
  371. package/input/input-password.d.ts +3 -3
  372. package/input/input.d.ts +8 -2
  373. package/link/link.component.d.ts +1 -1
  374. package/list/list-selection.component.d.ts +2 -2
  375. package/list/list.component.d.ts +2 -2
  376. package/loader-overlay/loader-overlay.component.d.ts +4 -4
  377. package/modal/css-unit.pipe.d.ts +1 -1
  378. package/modal/modal.component.d.ts +1 -1
  379. package/modal/modal.directive.d.ts +4 -4
  380. package/navbar/navbar-item.component.d.ts +11 -11
  381. package/navbar/navbar.component.d.ts +3 -3
  382. package/navbar/vertical-navbar.component.d.ts +1 -1
  383. package/package.json +56 -48
  384. package/popover/popover-confirm.component.d.ts +2 -2
  385. package/popover/popover.component.d.ts +4 -5
  386. package/prebuilt-themes/dark-theme.css +1 -1
  387. package/prebuilt-themes/default-theme.css +1 -1
  388. package/prebuilt-visual/default-visual.css +1 -1
  389. package/progress-bar/progress-bar.component.d.ts +3 -3
  390. package/progress-spinner/progress-spinner.component.d.ts +3 -3
  391. package/radio/radio.component.d.ts +6 -6
  392. package/select/select-option.directive.d.ts +1 -1
  393. package/select/select.component.d.ts +10 -4
  394. package/sidebar/sidebar.component.d.ts +3 -3
  395. package/sidepanel/sidepanel-container.component.d.ts +1 -1
  396. package/sidepanel/sidepanel-directives.d.ts +5 -5
  397. package/splitter/splitter.component.d.ts +4 -4
  398. package/table/table.component.d.ts +1 -1
  399. package/tabs/paginated-tab-header.d.ts +1 -1
  400. package/tabs/tab-body.component.d.ts +2 -2
  401. package/tabs/tab-content.directive.d.ts +1 -1
  402. package/tabs/tab-group.component.d.ts +8 -8
  403. package/tabs/tab-header.component.d.ts +1 -1
  404. package/tabs/tab-label-wrapper.directive.d.ts +1 -1
  405. package/tabs/tab-label.directive.d.ts +1 -1
  406. package/tabs/tab-nav-bar/tab-nav-bar.d.ts +2 -2
  407. package/tabs/tab.component.d.ts +1 -1
  408. package/tags/tag-input.d.ts +1 -1
  409. package/tags/tag-list.component.d.ts +8 -2
  410. package/tags/tag.component.d.ts +8 -6
  411. package/textarea/textarea.component.d.ts +7 -1
  412. package/timepicker/timepicker.directive.d.ts +1 -1
  413. package/timezone/README.md +0 -0
  414. package/timezone/cities-by-filter.pipe.d.ts +7 -0
  415. package/timezone/index.d.ts +1 -0
  416. package/timezone/public-api.d.ts +6 -0
  417. package/timezone/timezone-option.component.d.ts +15 -0
  418. package/timezone/timezone-option.directive.d.ts +20 -0
  419. package/timezone/timezone-select.component.d.ts +14 -0
  420. package/timezone/timezone.models.d.ts +16 -0
  421. package/timezone/timezone.module.d.ts +19 -0
  422. package/timezone/timezone.utils.d.ts +18 -0
  423. package/timezone/utc-offset.pipe.d.ts +7 -0
  424. package/toast/toast-container.component.d.ts +1 -1
  425. package/toast/toast.component.d.ts +1 -1
  426. package/toast/toast.service.d.ts +5 -4
  427. package/toggle/toggle.component.d.ts +5 -5
  428. package/tooltip/tooltip.component.d.ts +5 -6
  429. package/tree/control/flat-tree-control.d.ts +8 -8
  430. package/tree/node.d.ts +1 -1
  431. package/tree/outlet.d.ts +1 -1
  432. package/tree/padding.directive.d.ts +1 -1
  433. package/tree/toggle.d.ts +3 -3
  434. package/tree/tree-base.d.ts +2 -2
  435. package/tree/tree-option.component.d.ts +1 -1
  436. package/tree/tree-selection.component.d.ts +1 -1
  437. package/tree/tree.d.ts +1 -1
  438. package/tree-select/tree-select.component.d.ts +10 -4
  439. package/autocomplete/package.json +0 -10
  440. package/autocomplete/ptsecurity-mosaic-autocomplete.d.ts +0 -5
  441. package/button/package.json +0 -10
  442. package/button/ptsecurity-mosaic-button.d.ts +0 -5
  443. package/button-toggle/package.json +0 -10
  444. package/button-toggle/ptsecurity-mosaic-button-toggle.d.ts +0 -5
  445. package/card/package.json +0 -10
  446. package/card/ptsecurity-mosaic-card.d.ts +0 -5
  447. package/checkbox/package.json +0 -10
  448. package/checkbox/ptsecurity-mosaic-checkbox.d.ts +0 -5
  449. package/core/package.json +0 -10
  450. package/core/ptsecurity-mosaic-core.d.ts +0 -5
  451. package/datepicker/package.json +0 -10
  452. package/datepicker/ptsecurity-mosaic-datepicker.d.ts +0 -5
  453. package/design-tokens/package.json +0 -10
  454. package/design-tokens/ptsecurity-mosaic-design-tokens.d.ts +0 -5
  455. package/divider/package.json +0 -10
  456. package/divider/ptsecurity-mosaic-divider.d.ts +0 -5
  457. package/dl/package.json +0 -10
  458. package/dl/ptsecurity-mosaic-dl.d.ts +0 -5
  459. package/dropdown/package.json +0 -10
  460. package/dropdown/ptsecurity-mosaic-dropdown.d.ts +0 -5
  461. package/form-field/package.json +0 -10
  462. package/form-field/ptsecurity-mosaic-form-field.d.ts +0 -5
  463. package/icon/package.json +0 -10
  464. package/icon/ptsecurity-mosaic-icon.d.ts +0 -5
  465. package/input/package.json +0 -10
  466. package/input/ptsecurity-mosaic-input.d.ts +0 -5
  467. package/link/package.json +0 -10
  468. package/link/ptsecurity-mosaic-link.d.ts +0 -5
  469. package/list/package.json +0 -10
  470. package/list/ptsecurity-mosaic-list.d.ts +0 -5
  471. package/loader-overlay/package.json +0 -10
  472. package/loader-overlay/ptsecurity-mosaic-loader-overlay.d.ts +0 -5
  473. package/modal/package.json +0 -10
  474. package/modal/ptsecurity-mosaic-modal.d.ts +0 -5
  475. package/navbar/package.json +0 -10
  476. package/navbar/ptsecurity-mosaic-navbar.d.ts +0 -5
  477. package/popover/package.json +0 -10
  478. package/popover/ptsecurity-mosaic-popover.d.ts +0 -5
  479. package/progress-bar/package.json +0 -10
  480. package/progress-bar/ptsecurity-mosaic-progress-bar.d.ts +0 -5
  481. package/progress-spinner/package.json +0 -10
  482. package/progress-spinner/ptsecurity-mosaic-progress-spinner.d.ts +0 -5
  483. package/ptsecurity-mosaic.d.ts +0 -5
  484. package/radio/package.json +0 -10
  485. package/radio/ptsecurity-mosaic-radio.d.ts +0 -5
  486. package/select/package.json +0 -10
  487. package/select/ptsecurity-mosaic-select.d.ts +0 -5
  488. package/sidebar/package.json +0 -10
  489. package/sidebar/ptsecurity-mosaic-sidebar.d.ts +0 -5
  490. package/sidepanel/package.json +0 -10
  491. package/sidepanel/ptsecurity-mosaic-sidepanel.d.ts +0 -5
  492. package/splitter/package.json +0 -10
  493. package/splitter/ptsecurity-mosaic-splitter.d.ts +0 -5
  494. package/table/package.json +0 -10
  495. package/table/ptsecurity-mosaic-table.d.ts +0 -5
  496. package/tabs/package.json +0 -10
  497. package/tabs/ptsecurity-mosaic-tabs.d.ts +0 -5
  498. package/tags/package.json +0 -10
  499. package/tags/ptsecurity-mosaic-tags.d.ts +0 -5
  500. package/textarea/package.json +0 -10
  501. package/textarea/ptsecurity-mosaic-textarea.d.ts +0 -5
  502. package/timepicker/package.json +0 -10
  503. package/timepicker/ptsecurity-mosaic-timepicker.d.ts +0 -5
  504. package/toast/package.json +0 -10
  505. package/toast/ptsecurity-mosaic-toast.d.ts +0 -5
  506. package/toggle/package.json +0 -10
  507. package/toggle/ptsecurity-mosaic-toggle.d.ts +0 -5
  508. package/tooltip/package.json +0 -10
  509. package/tooltip/ptsecurity-mosaic-tooltip.d.ts +0 -5
  510. package/tree/package.json +0 -10
  511. package/tree/ptsecurity-mosaic-tree.d.ts +0 -5
  512. package/tree-select/package.json +0 -10
  513. package/tree-select/ptsecurity-mosaic-tree-select.d.ts +0 -5
@@ -2,19 +2,19 @@ import * as i1 from '@angular/cdk/overlay';
2
2
  import { OverlayModule } from '@angular/cdk/overlay';
3
3
  import { ComponentPortal } from '@angular/cdk/portal';
4
4
  import * as i0 from '@angular/core';
5
- import { InjectionToken, Injector, ViewContainerRef, Component, ChangeDetectionStrategy, ViewEncapsulation, ViewChild, TemplateRef, forwardRef, Inject, Injectable, Optional, NgModule } from '@angular/core';
6
- import { BehaviorSubject, Subject, merge, timer } from 'rxjs';
7
- import { takeUntil, filter } from 'rxjs/operators';
5
+ import { InjectionToken, Injector, ViewContainerRef, Component, ChangeDetectionStrategy, ViewEncapsulation, ViewChild, Injectable, Inject, Optional, TemplateRef, forwardRef, NgModule } from '@angular/core';
6
+ import { BehaviorSubject, timer, Subject, merge } from 'rxjs';
7
+ import { filter, takeUntil } from 'rxjs/operators';
8
8
  import * as i2 from '@angular/cdk/a11y';
9
9
  import { A11yModule } from '@angular/cdk/a11y';
10
+ import * as i3 from '@angular/common';
11
+ import { CommonModule } from '@angular/common';
12
+ import * as i5 from '@ptsecurity/mosaic/button';
13
+ import { McButtonModule } from '@ptsecurity/mosaic/button';
14
+ import * as i4 from '@ptsecurity/mosaic/icon';
15
+ import { McIconModule } from '@ptsecurity/mosaic/icon';
10
16
  import { ThemePalette } from '@ptsecurity/mosaic/core';
11
17
  import { trigger, state, style, transition, animate } from '@angular/animations';
12
- import * as i3 from '@ptsecurity/mosaic/icon';
13
- import { McIconModule } from '@ptsecurity/mosaic/icon';
14
- import * as i4 from '@ptsecurity/mosaic/button';
15
- import { McButtonModule } from '@ptsecurity/mosaic/button';
16
- import * as i5 from '@angular/common';
17
- import { CommonModule } from '@angular/common';
18
18
 
19
19
  var McToastPosition;
20
20
  (function (McToastPosition) {
@@ -59,103 +59,19 @@ class McToastContainerComponent {
59
59
  });
60
60
  }
61
61
  }
62
- /** @nocollapse */ /** @nocollapse */ McToastContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McToastContainerComponent, deps: [{ token: i0.Injector }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
63
- /** @nocollapse */ /** @nocollapse */ McToastContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: McToastContainerComponent, selector: "mc-toast-container", host: { classAttribute: "mc-toast-container" }, viewQueries: [{ propertyName: "viewContainer", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: '<ng-container #container></ng-container>', isInline: true, styles: [".mc-toast-container{display:flex;flex-direction:column;gap:var(--mc-toast-size-gap, 12px)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
64
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McToastContainerComponent, decorators: [{
62
+ /** @nocollapse */ McToastContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McToastContainerComponent, deps: [{ token: i0.Injector }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
63
+ /** @nocollapse */ McToastContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: McToastContainerComponent, selector: "mc-toast-container", host: { classAttribute: "mc-toast-container" }, viewQueries: [{ propertyName: "viewContainer", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: '<ng-container #container></ng-container>', isInline: true, styles: [".mc-toast-container{display:flex;flex-direction:column;gap:12px;gap:var(--mc-toast-size-gap, 12px)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McToastContainerComponent, decorators: [{
65
65
  type: Component,
66
66
  args: [{ selector: 'mc-toast-container', template: '<ng-container #container></ng-container>', host: {
67
67
  class: 'mc-toast-container'
68
- }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: [".mc-toast-container{display:flex;flex-direction:column;gap:var(--mc-toast-size-gap, 12px)}\n"] }]
68
+ }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: [".mc-toast-container{display:flex;flex-direction:column;gap:12px;gap:var(--mc-toast-size-gap, 12px)}\n"] }]
69
69
  }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { viewContainer: [{
70
70
  type: ViewChild,
71
71
  args: ['container', { static: true, read: ViewContainerRef }]
72
72
  }] } });
73
73
 
74
- const mcToastAnimations = {
75
- toastState: trigger('state', [
76
- state('void', style({ transform: 'translateX(100%)', opacity: 0 })),
77
- transition('* => visible', animate('150ms ease-out', style({ transform: 'translateX(0%)', opacity: 1 }))),
78
- transition('* => void', animate('300ms ease-in', style({ transform: 'translateX(50%)', opacity: 0, 'max-height': 0 })))
79
- ])
80
- };
81
-
82
- let id = 0;
83
- class McToastComponent {
84
- constructor(data, service, elementRef, focusMonitor) {
85
- this.data = data;
86
- this.service = service;
87
- this.elementRef = elementRef;
88
- this.focusMonitor = focusMonitor;
89
- this.themePalette = ThemePalette;
90
- this.animationState = 'void';
91
- this.hovered = new BehaviorSubject(false);
92
- this.focused = new BehaviorSubject(false);
93
- this.id = id++;
94
- this.destroyed = new Subject();
95
- this.$implicit = this;
96
- this.animationState = 'visible';
97
- this.runFocusMonitor();
98
- this.hovered.subscribe(this.service.hovered);
99
- this.focused.subscribe(this.service.focused);
100
- merge(this.hovered, this.focused)
101
- .pipe(takeUntil(this.destroyed), filter((value) => value))
102
- .subscribe(() => {
103
- if (this.ttl === 0) {
104
- return;
105
- }
106
- this.ttl = this.ttl < this.delay ? this.delay : this.ttl;
107
- });
108
- }
109
- get toastStyle() {
110
- return {
111
- [`mc-toast_${this.data.style || 'info'}`]: true
112
- };
113
- }
114
- get hasDismiss() {
115
- return this.data.hasDismiss === undefined ? true : this.data.hasDismiss;
116
- }
117
- get isFocusedOrHovered() {
118
- return this.hovered.getValue() || this.focused.getValue();
119
- }
120
- ngOnDestroy() {
121
- this.stopFocusMonitor();
122
- this.hovered.next(false);
123
- this.focused.next(false);
124
- this.destroyed.next();
125
- }
126
- close() {
127
- this.service.hide(this.id);
128
- }
129
- isTemplateRef(value) {
130
- return value instanceof TemplateRef;
131
- }
132
- runFocusMonitor() {
133
- this.focusMonitor
134
- .monitor(this.elementRef.nativeElement, true)
135
- .subscribe((origin) => this.focused.next(!!origin));
136
- }
137
- stopFocusMonitor() {
138
- this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);
139
- }
140
- }
141
- /** @nocollapse */ /** @nocollapse */ McToastComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McToastComponent, deps: [{ token: McToastData }, { token: forwardRef(() => McToastService) }, { token: i0.ElementRef }, { token: i2.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component });
142
- /** @nocollapse */ /** @nocollapse */ McToastComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: McToastComponent, selector: "mc-toast", host: { listeners: { "mouseenter": "hovered.next(true)", "mouseleave": "hovered.next(false)", "keydown.esc": "close()" }, properties: { "class": "toastStyle", "class.mc-toast_dismissible": "hasDismiss", "@state": "animationState" }, classAttribute: "mc-toast" }, ngImport: i0, template: "<div class=\"mc-toast__wrapper\">\n <div class=\"mc-toast__icon-container\">\n <ng-container *ngIf=\"isTemplateRef(data.icon)\"\n [ngTemplateOutlet]=\"$any(data.icon)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!data.icon\">\n <ng-container [ngSwitch]=\"data.style\">\n <ng-container *ngSwitchCase=\"'info'\">\n <i mc-icon=\"mc-info_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'success'\">\n <i mc-icon=\"mc-success_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'warning'\">\n <i mc-icon=\"mc-error_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error'\">\n <i mc-icon=\"mc-error_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"mc-toast__container\">\n <div *ngIf=\"data.title\" class=\"mc-toast__title\">\n <ng-container *ngIf=\"isTemplateRef(data.title)\"\n [ngTemplateOutlet]=\"$any(data.title)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.title)\">\n <button\n class=\"mc-button_transparent mc-toast__close\"\n mc-button\n *ngIf=\"hasDismiss\"\n (click)=\"close()\">\n\n <i class=\"mc-icon_light\" mc-icon=\"mc-close-L_16\" [color]=\"themePalette.Second\"></i>\n </button>\n <p>{{ data.title }}</p>\n </ng-container>\n </div>\n\n <div *ngIf=\"data.caption\" class=\"mc-toast__caption\">\n <ng-container *ngIf=\"isTemplateRef(data.caption)\"\n [ngTemplateOutlet]=\"$any(data.caption)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.caption)\">{{ data.caption }}</ng-container>\n </div>\n\n <div *ngIf=\"data.content\" class=\"mc-toast__content\">\n <ng-container *ngIf=\"isTemplateRef(data.content)\"\n [ngTemplateOutlet]=\"$any(data.content)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.content)\">{{ data.content }}</ng-container>\n </div>\n\n <div *ngIf=\"data.actions\" class=\"mc-toast__actions\">\n <ng-container *ngIf=\"isTemplateRef(data.actions)\"\n [ngTemplateOutlet]=\"$any(data.actions)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.actions)\">{{ data.actions }}</ng-container>\n </div>\n </div>\n</div>\n", styles: [".mc-toast{box-sizing:border-box;max-height:200px;height:auto}.mc-toast__wrapper{box-sizing:border-box;display:flex;flex:1 1 auto;width:var(--mc-toast-size-width, 360px);padding-right:var(--mc-toast-size-padding-right, 16px);padding-left:var(--mc-toast-size-padding-left, 12px);border-width:var(--mc-toast-size-border-width, 1px);border-style:solid;border-radius:var(--mc-toast-size-border-radius, 3px)}.mc-toast__icon-container{padding-right:var(--mc-toast-size-icon-margin, 8px);padding-top:var(--mc-toast-size-padding-vertical, 12px);padding-bottom:var(--mc-toast-size-padding-vertical, 12px)}.mc-toast__container{width:100%;padding-top:var(--mc-toast-size-padding-vertical, 12px);padding-bottom:var(--mc-toast-size-padding-vertical, 12px)}.mc-toast__title>p{margin:0}.mc-toast__content{display:flex;flex-direction:column}.mc-toast__actions{margin-top:var(--mc-toast-size-actionbar-margin, 8px)}.mc-toast__actions>*{margin-right:var(--mc-toast-size-actionbar-gap, 12px)}.mc-toast__close{float:right;width:var(--mc-toast-size-close-button-width, 32px);height:var(--mc-toast-size-close-button-width, 32px);margin:-6px -8px -6px 8px}\n"], components: [{ type: i3.McIcon, selector: "[mc-icon]", inputs: ["color"] }, { type: i4.McButton, selector: "[mc-button]", inputs: ["color", "tabIndex", "disabled"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i3.McIconCSSStyler, selector: "[mc-icon]" }, { type: i4.McButtonCssStyler, selector: "[mc-button]" }], animations: [mcToastAnimations.toastState], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
143
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McToastComponent, decorators: [{
144
- type: Component,
145
- args: [{ selector: 'mc-toast', host: {
146
- class: 'mc-toast',
147
- '[class]': 'toastStyle',
148
- '[class.mc-toast_dismissible]': 'hasDismiss',
149
- '[@state]': 'animationState',
150
- '(mouseenter)': 'hovered.next(true)',
151
- '(mouseleave)': 'hovered.next(false)',
152
- '(keydown.esc)': 'close()'
153
- }, animations: [mcToastAnimations.toastState], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"mc-toast__wrapper\">\n <div class=\"mc-toast__icon-container\">\n <ng-container *ngIf=\"isTemplateRef(data.icon)\"\n [ngTemplateOutlet]=\"$any(data.icon)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!data.icon\">\n <ng-container [ngSwitch]=\"data.style\">\n <ng-container *ngSwitchCase=\"'info'\">\n <i mc-icon=\"mc-info_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'success'\">\n <i mc-icon=\"mc-success_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'warning'\">\n <i mc-icon=\"mc-error_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error'\">\n <i mc-icon=\"mc-error_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"mc-toast__container\">\n <div *ngIf=\"data.title\" class=\"mc-toast__title\">\n <ng-container *ngIf=\"isTemplateRef(data.title)\"\n [ngTemplateOutlet]=\"$any(data.title)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.title)\">\n <button\n class=\"mc-button_transparent mc-toast__close\"\n mc-button\n *ngIf=\"hasDismiss\"\n (click)=\"close()\">\n\n <i class=\"mc-icon_light\" mc-icon=\"mc-close-L_16\" [color]=\"themePalette.Second\"></i>\n </button>\n <p>{{ data.title }}</p>\n </ng-container>\n </div>\n\n <div *ngIf=\"data.caption\" class=\"mc-toast__caption\">\n <ng-container *ngIf=\"isTemplateRef(data.caption)\"\n [ngTemplateOutlet]=\"$any(data.caption)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.caption)\">{{ data.caption }}</ng-container>\n </div>\n\n <div *ngIf=\"data.content\" class=\"mc-toast__content\">\n <ng-container *ngIf=\"isTemplateRef(data.content)\"\n [ngTemplateOutlet]=\"$any(data.content)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.content)\">{{ data.content }}</ng-container>\n </div>\n\n <div *ngIf=\"data.actions\" class=\"mc-toast__actions\">\n <ng-container *ngIf=\"isTemplateRef(data.actions)\"\n [ngTemplateOutlet]=\"$any(data.actions)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.actions)\">{{ data.actions }}</ng-container>\n </div>\n </div>\n</div>\n", styles: [".mc-toast{box-sizing:border-box;max-height:200px;height:auto}.mc-toast__wrapper{box-sizing:border-box;display:flex;flex:1 1 auto;width:var(--mc-toast-size-width, 360px);padding-right:var(--mc-toast-size-padding-right, 16px);padding-left:var(--mc-toast-size-padding-left, 12px);border-width:var(--mc-toast-size-border-width, 1px);border-style:solid;border-radius:var(--mc-toast-size-border-radius, 3px)}.mc-toast__icon-container{padding-right:var(--mc-toast-size-icon-margin, 8px);padding-top:var(--mc-toast-size-padding-vertical, 12px);padding-bottom:var(--mc-toast-size-padding-vertical, 12px)}.mc-toast__container{width:100%;padding-top:var(--mc-toast-size-padding-vertical, 12px);padding-bottom:var(--mc-toast-size-padding-vertical, 12px)}.mc-toast__title>p{margin:0}.mc-toast__content{display:flex;flex-direction:column}.mc-toast__actions{margin-top:var(--mc-toast-size-actionbar-margin, 8px)}.mc-toast__actions>*{margin-right:var(--mc-toast-size-actionbar-gap, 12px)}.mc-toast__close{float:right;width:var(--mc-toast-size-close-button-width, 32px);height:var(--mc-toast-size-close-button-width, 32px);margin:-6px -8px -6px 8px}\n"] }]
154
- }], ctorParameters: function () { return [{ type: McToastData }, { type: McToastService, decorators: [{
155
- type: Inject,
156
- args: [forwardRef(() => McToastService)]
157
- }] }, { type: i0.ElementRef }, { type: i2.FocusMonitor }]; } });
158
-
74
+ const MC_TOAST_FACTORY = new InjectionToken('McUseValidation');
159
75
  const defaultToastConfig = {
160
76
  position: McToastPosition.TOP_RIGHT,
161
77
  duration: 5000,
@@ -166,11 +82,11 @@ const INDENT_SIZE = 16;
166
82
  const CHECK_INTERVAL = 500;
167
83
  let templateId = 0;
168
84
  class McToastService {
169
- constructor(overlay, injector, toastConfig, toastFactory) {
85
+ constructor(overlay, injector, toastFactory, toastConfig) {
170
86
  this.overlay = overlay;
171
87
  this.injector = injector;
172
- this.toastConfig = toastConfig;
173
88
  this.toastFactory = toastFactory;
89
+ this.toastConfig = toastConfig;
174
90
  this.hovered = new BehaviorSubject(false);
175
91
  this.focused = new BehaviorSubject(false);
176
92
  this.toastsDict = {};
@@ -199,7 +115,7 @@ class McToastService {
199
115
  }
200
116
  show(data, duration = this.toastConfig.duration, onTop = this.toastConfig.onTop) {
201
117
  this.prepareContainer();
202
- const componentRef = this.containerInstance.createToast(data, this.toastFactory || McToastComponent, onTop);
118
+ const componentRef = this.containerInstance.createToast(data, this.toastFactory, onTop);
203
119
  this.toastsDict[componentRef.instance.id] = componentRef;
204
120
  componentRef.instance.ttl = duration;
205
121
  componentRef.instance.delay = this.toastConfig.delay;
@@ -310,36 +226,120 @@ class McToastService {
310
226
  return this.overlay.position().global();
311
227
  }
312
228
  }
313
- /** @nocollapse */ /** @nocollapse */ McToastService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McToastService, deps: [{ token: i1.Overlay }, { token: i0.Injector }, { token: MC_TOAST_CONFIG, optional: true }, { token: McToastComponent, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
314
- /** @nocollapse */ /** @nocollapse */ McToastService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McToastService });
315
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McToastService, decorators: [{
229
+ /** @nocollapse */ McToastService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McToastService, deps: [{ token: i1.Overlay }, { token: i0.Injector }, { token: MC_TOAST_FACTORY }, { token: MC_TOAST_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
230
+ /** @nocollapse */ McToastService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McToastService });
231
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McToastService, decorators: [{
316
232
  type: Injectable
317
233
  }], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.Injector }, { type: undefined, decorators: [{
234
+ type: Inject,
235
+ args: [MC_TOAST_FACTORY]
236
+ }] }, { type: undefined, decorators: [{
318
237
  type: Optional
319
238
  }, {
320
239
  type: Inject,
321
240
  args: [MC_TOAST_CONFIG]
322
- }] }, { type: McToastComponent, decorators: [{
323
- type: Optional
324
241
  }] }]; } });
325
242
 
243
+ const mcToastAnimations = {
244
+ toastState: trigger('state', [
245
+ state('void', style({ transform: 'translateX(100%)', opacity: 0 })),
246
+ transition('* => visible', animate('150ms ease-out', style({ transform: 'translateX(0%)', opacity: 1 }))),
247
+ transition('* => void', animate('300ms ease-in', style({ transform: 'translateX(50%)', opacity: 0, 'max-height': 0 })))
248
+ ])
249
+ };
250
+
251
+ let id = 0;
252
+ class McToastComponent {
253
+ constructor(data, service, elementRef, focusMonitor) {
254
+ this.data = data;
255
+ this.service = service;
256
+ this.elementRef = elementRef;
257
+ this.focusMonitor = focusMonitor;
258
+ this.themePalette = ThemePalette;
259
+ this.animationState = 'void';
260
+ this.hovered = new BehaviorSubject(false);
261
+ this.focused = new BehaviorSubject(false);
262
+ this.id = id++;
263
+ this.destroyed = new Subject();
264
+ this.$implicit = this;
265
+ this.animationState = 'visible';
266
+ this.runFocusMonitor();
267
+ this.hovered.subscribe(this.service.hovered);
268
+ this.focused.subscribe(this.service.focused);
269
+ merge(this.hovered, this.focused)
270
+ .pipe(takeUntil(this.destroyed), filter((value) => value))
271
+ .subscribe(() => {
272
+ if (this.ttl === 0) {
273
+ return;
274
+ }
275
+ this.ttl = this.ttl < this.delay ? this.delay : this.ttl;
276
+ });
277
+ }
278
+ get toastStyle() {
279
+ return {
280
+ [`mc-toast_${this.data.style || 'info'}`]: true
281
+ };
282
+ }
283
+ get hasDismiss() {
284
+ return this.data.hasDismiss === undefined ? true : this.data.hasDismiss;
285
+ }
286
+ get isFocusedOrHovered() {
287
+ return this.hovered.getValue() || this.focused.getValue();
288
+ }
289
+ ngOnDestroy() {
290
+ this.stopFocusMonitor();
291
+ this.hovered.next(false);
292
+ this.focused.next(false);
293
+ this.destroyed.next(true);
294
+ }
295
+ close() {
296
+ this.service.hide(this.id);
297
+ }
298
+ isTemplateRef(value) {
299
+ return value instanceof TemplateRef;
300
+ }
301
+ runFocusMonitor() {
302
+ this.focusMonitor
303
+ .monitor(this.elementRef.nativeElement, true)
304
+ .subscribe((origin) => this.focused.next(!!origin));
305
+ }
306
+ stopFocusMonitor() {
307
+ this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);
308
+ }
309
+ }
310
+ /** @nocollapse */ McToastComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McToastComponent, deps: [{ token: McToastData }, { token: forwardRef(() => McToastService) }, { token: i0.ElementRef }, { token: i2.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component });
311
+ /** @nocollapse */ McToastComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: McToastComponent, selector: "mc-toast", host: { listeners: { "mouseenter": "hovered.next(true)", "mouseleave": "hovered.next(false)", "keydown.esc": "close()" }, properties: { "class": "toastStyle", "class.mc-toast_dismissible": "hasDismiss", "@state": "animationState" }, classAttribute: "mc-toast" }, ngImport: i0, template: "<div class=\"mc-toast__wrapper\">\n <div class=\"mc-toast__icon-container\">\n <ng-container *ngIf=\"isTemplateRef(data.icon)\"\n [ngTemplateOutlet]=\"$any(data.icon)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!data.icon\">\n <ng-container [ngSwitch]=\"data.style\">\n <ng-container *ngSwitchCase=\"'info'\">\n <i mc-icon=\"mc-info_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'success'\">\n <i mc-icon=\"mc-success_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'warning'\">\n <i mc-icon=\"mc-error_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error'\">\n <i mc-icon=\"mc-error_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"mc-toast__container\">\n <div *ngIf=\"data.title\" class=\"mc-toast__title\">\n <ng-container *ngIf=\"isTemplateRef(data.title)\"\n [ngTemplateOutlet]=\"$any(data.title)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.title)\">\n <button\n class=\"mc-button_transparent mc-toast__close\"\n mc-button\n *ngIf=\"hasDismiss\"\n (click)=\"close()\">\n\n <i class=\"mc-icon_light\" mc-icon=\"mc-close-L_16\" [color]=\"themePalette.Second\"></i>\n </button>\n <p>{{ data.title }}</p>\n </ng-container>\n </div>\n\n <div *ngIf=\"data.caption\" class=\"mc-toast__caption\">\n <ng-container *ngIf=\"isTemplateRef(data.caption)\"\n [ngTemplateOutlet]=\"$any(data.caption)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.caption)\">{{ data.caption }}</ng-container>\n </div>\n\n <div *ngIf=\"data.content\" class=\"mc-toast__content\">\n <ng-container *ngIf=\"isTemplateRef(data.content)\"\n [ngTemplateOutlet]=\"$any(data.content)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.content)\">{{ data.content }}</ng-container>\n </div>\n\n <div *ngIf=\"data.actions\" class=\"mc-toast__actions\">\n <ng-container *ngIf=\"isTemplateRef(data.actions)\"\n [ngTemplateOutlet]=\"$any(data.actions)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.actions)\">{{ data.actions }}</ng-container>\n </div>\n </div>\n</div>\n", styles: [".mc-toast{box-sizing:border-box;z-index:1070;max-height:200px;height:auto}.mc-toast__wrapper{box-sizing:border-box;display:flex;flex:1 1 auto;width:360px;width:var(--mc-toast-size-width, 360px);padding-right:16px;padding-right:var(--mc-toast-size-padding-right, 16px);padding-left:12px;padding-left:var(--mc-toast-size-padding-left, 12px);border-width:1px;border-width:var(--mc-toast-size-border-width, 1px);border-style:solid;border-radius:3px;border-radius:var(--mc-toast-size-border-radius, 3px)}.mc-toast__icon-container{padding-right:8px;padding-right:var(--mc-toast-size-icon-margin, 8px);padding-top:12px;padding-top:var(--mc-toast-size-padding-vertical, 12px);padding-bottom:12px;padding-bottom:var(--mc-toast-size-padding-vertical, 12px)}.mc-toast__container{width:100%;padding-top:12px;padding-top:var(--mc-toast-size-padding-vertical, 12px);padding-bottom:12px;padding-bottom:var(--mc-toast-size-padding-vertical, 12px)}.mc-toast__title>p{margin:0}.mc-toast__content{display:flex;flex-direction:column}.mc-toast__actions{margin-top:8px;margin-top:var(--mc-toast-size-actionbar-margin, 8px)}.mc-toast__actions>*{margin-right:12px;margin-right:var(--mc-toast-size-actionbar-gap, 12px)}.mc-toast__close{float:right;width:32px;width:var(--mc-toast-size-close-button-width, 32px);height:32px;height:var(--mc-toast-size-close-button-width, 32px);margin:-6px -8px -6px 8px}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i4.McIcon, selector: "[mc-icon]", inputs: ["color"] }, { kind: "directive", type: i4.McIconCSSStyler, selector: "[mc-icon]" }, { kind: "component", type: i5.McButton, selector: "[mc-button]", inputs: ["color", "tabIndex", "disabled"] }, { kind: "directive", type: i5.McButtonCssStyler, selector: "[mc-button]" }], animations: [mcToastAnimations.toastState], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
312
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McToastComponent, decorators: [{
313
+ type: Component,
314
+ args: [{ selector: 'mc-toast', host: {
315
+ class: 'mc-toast',
316
+ '[class]': 'toastStyle',
317
+ '[class.mc-toast_dismissible]': 'hasDismiss',
318
+ '[@state]': 'animationState',
319
+ '(mouseenter)': 'hovered.next(true)',
320
+ '(mouseleave)': 'hovered.next(false)',
321
+ '(keydown.esc)': 'close()'
322
+ }, animations: [mcToastAnimations.toastState], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"mc-toast__wrapper\">\n <div class=\"mc-toast__icon-container\">\n <ng-container *ngIf=\"isTemplateRef(data.icon)\"\n [ngTemplateOutlet]=\"$any(data.icon)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!data.icon\">\n <ng-container [ngSwitch]=\"data.style\">\n <ng-container *ngSwitchCase=\"'info'\">\n <i mc-icon=\"mc-info_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'success'\">\n <i mc-icon=\"mc-success_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'warning'\">\n <i mc-icon=\"mc-error_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error'\">\n <i mc-icon=\"mc-error_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"mc-toast__container\">\n <div *ngIf=\"data.title\" class=\"mc-toast__title\">\n <ng-container *ngIf=\"isTemplateRef(data.title)\"\n [ngTemplateOutlet]=\"$any(data.title)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.title)\">\n <button\n class=\"mc-button_transparent mc-toast__close\"\n mc-button\n *ngIf=\"hasDismiss\"\n (click)=\"close()\">\n\n <i class=\"mc-icon_light\" mc-icon=\"mc-close-L_16\" [color]=\"themePalette.Second\"></i>\n </button>\n <p>{{ data.title }}</p>\n </ng-container>\n </div>\n\n <div *ngIf=\"data.caption\" class=\"mc-toast__caption\">\n <ng-container *ngIf=\"isTemplateRef(data.caption)\"\n [ngTemplateOutlet]=\"$any(data.caption)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.caption)\">{{ data.caption }}</ng-container>\n </div>\n\n <div *ngIf=\"data.content\" class=\"mc-toast__content\">\n <ng-container *ngIf=\"isTemplateRef(data.content)\"\n [ngTemplateOutlet]=\"$any(data.content)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.content)\">{{ data.content }}</ng-container>\n </div>\n\n <div *ngIf=\"data.actions\" class=\"mc-toast__actions\">\n <ng-container *ngIf=\"isTemplateRef(data.actions)\"\n [ngTemplateOutlet]=\"$any(data.actions)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.actions)\">{{ data.actions }}</ng-container>\n </div>\n </div>\n</div>\n", styles: [".mc-toast{box-sizing:border-box;z-index:1070;max-height:200px;height:auto}.mc-toast__wrapper{box-sizing:border-box;display:flex;flex:1 1 auto;width:360px;width:var(--mc-toast-size-width, 360px);padding-right:16px;padding-right:var(--mc-toast-size-padding-right, 16px);padding-left:12px;padding-left:var(--mc-toast-size-padding-left, 12px);border-width:1px;border-width:var(--mc-toast-size-border-width, 1px);border-style:solid;border-radius:3px;border-radius:var(--mc-toast-size-border-radius, 3px)}.mc-toast__icon-container{padding-right:8px;padding-right:var(--mc-toast-size-icon-margin, 8px);padding-top:12px;padding-top:var(--mc-toast-size-padding-vertical, 12px);padding-bottom:12px;padding-bottom:var(--mc-toast-size-padding-vertical, 12px)}.mc-toast__container{width:100%;padding-top:12px;padding-top:var(--mc-toast-size-padding-vertical, 12px);padding-bottom:12px;padding-bottom:var(--mc-toast-size-padding-vertical, 12px)}.mc-toast__title>p{margin:0}.mc-toast__content{display:flex;flex-direction:column}.mc-toast__actions{margin-top:8px;margin-top:var(--mc-toast-size-actionbar-margin, 8px)}.mc-toast__actions>*{margin-right:12px;margin-right:var(--mc-toast-size-actionbar-gap, 12px)}.mc-toast__close{float:right;width:32px;width:var(--mc-toast-size-close-button-width, 32px);height:32px;height:var(--mc-toast-size-close-button-width, 32px);margin:-6px -8px -6px 8px}\n"] }]
323
+ }], ctorParameters: function () { return [{ type: McToastData }, { type: McToastService, decorators: [{
324
+ type: Inject,
325
+ args: [forwardRef(() => McToastService)]
326
+ }] }, { type: i0.ElementRef }, { type: i2.FocusMonitor }]; } });
327
+
326
328
  class McToastModule {
327
329
  }
328
- /** @nocollapse */ /** @nocollapse */ McToastModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McToastModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
329
- /** @nocollapse */ /** @nocollapse */ McToastModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McToastModule, declarations: [McToastComponent,
330
+ /** @nocollapse */ McToastModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McToastModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
331
+ /** @nocollapse */ McToastModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.2", ngImport: i0, type: McToastModule, declarations: [McToastComponent,
330
332
  McToastContainerComponent], imports: [CommonModule,
331
333
  OverlayModule,
332
334
  A11yModule,
333
335
  McIconModule,
334
336
  McButtonModule] });
335
- /** @nocollapse */ /** @nocollapse */ McToastModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McToastModule, imports: [[
336
- CommonModule,
337
- OverlayModule,
338
- A11yModule,
339
- McIconModule,
340
- McButtonModule
341
- ]] });
342
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McToastModule, decorators: [{
337
+ /** @nocollapse */ McToastModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McToastModule, providers: [{ provide: MC_TOAST_FACTORY, useFactory: (() => McToastComponent) }], imports: [CommonModule,
338
+ OverlayModule,
339
+ A11yModule,
340
+ McIconModule,
341
+ McButtonModule] });
342
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McToastModule, decorators: [{
343
343
  type: NgModule,
344
344
  args: [{
345
345
  declarations: [
@@ -352,7 +352,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
352
352
  A11yModule,
353
353
  McIconModule,
354
354
  McButtonModule
355
- ]
355
+ ],
356
+ providers: [{ provide: MC_TOAST_FACTORY, useFactory: (() => McToastComponent) }]
356
357
  }]
357
358
  }] });
358
359
 
@@ -360,5 +361,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
360
361
  * Generated bundle index. Do not edit.
361
362
  */
362
363
 
363
- export { MC_TOAST_CONFIG, McToastComponent, McToastContainerComponent, McToastData, McToastModule, McToastPosition, McToastService, defaultToastConfig };
364
+ export { MC_TOAST_CONFIG, MC_TOAST_FACTORY, McToastComponent, McToastContainerComponent, McToastData, McToastModule, McToastPosition, McToastService, defaultToastConfig };
364
365
  //# sourceMappingURL=ptsecurity-mosaic-toast.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ptsecurity-mosaic-toast.mjs","sources":["../../../packages/mosaic/toast/toast.type.ts","../../../packages/mosaic/toast/toast-container.component.ts","../../../packages/mosaic/toast/toast-animations.ts","../../../packages/mosaic/toast/toast.component.ts","../../../packages/mosaic/toast/toast.component.html","../../../packages/mosaic/toast/toast.service.ts","../../../packages/mosaic/toast/toast.module.ts","../../../packages/mosaic/toast/ptsecurity-mosaic-toast.ts"],"sourcesContent":["import { TemplateRef, InjectionToken } from '@angular/core';\n\n\nexport type McToastStyle = 'default' | 'confirm' | 'custom' | 'success' | 'error' | 'warning' | 'info';\nexport enum McToastPosition {\n TOP_RIGHT = 'top-right',\n TOP_LEFT = 'top-left',\n TOP_CENTER = 'top-center',\n BOTTOM_RIGHT = 'bottom-right',\n BOTTOM_LEFT = 'bottom-left',\n BOTTOM_CENTER = 'bottom-center',\n CENTER = 'center'\n}\n\nexport class McToastData {\n style: McToastStyle;\n title: string | TemplateRef<any>;\n\n icon?: TemplateRef<any>;\n caption?: string | TemplateRef<any>;\n\n content?: string | TemplateRef<any>;\n actions?: TemplateRef<any>;\n\n hasDismiss?: boolean;\n}\n\n// tslint:disable-next-line:naming-convention\nexport interface McToastConfig {\n position: McToastPosition;\n duration: number;\n delay: number;\n onTop: boolean;\n}\n\nexport const MC_TOAST_CONFIG = new InjectionToken('mc-toast-config');\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n EmbeddedViewRef,\n Injector,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n ViewRef\n} from '@angular/core';\n\nimport { McToastData } from './toast.type';\n\n\n@Component({\n selector: 'mc-toast-container',\n template: '<ng-container #container></ng-container>',\n styleUrls: ['./toast-container.component.scss'],\n host: {\n class: 'mc-toast-container'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class McToastContainerComponent {\n @ViewChild('container', { static: true, read: ViewContainerRef }) viewContainer: ViewContainerRef;\n\n constructor(\n private injector: Injector,\n private changeDetectorRef: ChangeDetectorRef\n ) {}\n\n createToast<C>(data: McToastData, componentType, onTop: boolean): ComponentRef<C> {\n const injector = this.getInjector(data);\n const index = onTop ? 0 : undefined;\n\n this.changeDetectorRef.markForCheck();\n\n return this.viewContainer.createComponent(componentType, { injector, index });\n }\n\n createTemplate<C>(data: McToastData, template: TemplateRef<any>, onTop: boolean): EmbeddedViewRef<C> {\n const index = onTop ? 0 : undefined;\n\n return this.viewContainer.createEmbeddedView(template, { $implicit: data }, index);\n }\n\n remove(viewRef: ViewRef) {\n const index = this.viewContainer.indexOf(viewRef);\n\n if (index < 0) { return; }\n\n this.viewContainer.remove(index);\n }\n\n getInjector(data: McToastData): Injector {\n return Injector.create({\n providers: [{ provide: McToastData, useValue: data }],\n parent: this.injector\n });\n }\n}\n","import {\n animate,\n style,\n transition,\n trigger,\n state,\n AnimationTriggerMetadata\n} from '@angular/animations';\n\n\nexport const mcToastAnimations: {\n readonly toastState: AnimationTriggerMetadata;\n} = {\n toastState: trigger('state', [\n state('void', style({ transform: 'translateX(100%)', opacity: 0 })),\n transition(\n '* => visible',\n animate('150ms ease-out', style({ transform: 'translateX(0%)', opacity: 1 }))\n ),\n transition(\n '* => void',\n animate('300ms ease-in', style({ transform: 'translateX(50%)', opacity: 0, 'max-height': 0 }))\n )\n ])\n};\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { FocusOrigin } from '@angular/cdk/a11y/focus-monitor/focus-monitor';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n forwardRef,\n Inject,\n OnDestroy,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { ThemePalette } from '@ptsecurity/mosaic/core';\nimport { BehaviorSubject, merge, Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { mcToastAnimations } from './toast-animations';\nimport { McToastService } from './toast.service';\nimport { McToastData } from './toast.type';\n\n\nlet id = 0;\n\n@Component({\n selector: 'mc-toast',\n templateUrl: './toast.component.html',\n styleUrls: ['./toast.component.scss'],\n host: {\n class: 'mc-toast',\n '[class]': 'toastStyle',\n '[class.mc-toast_dismissible]': 'hasDismiss',\n '[@state]': 'animationState',\n\n '(mouseenter)': 'hovered.next(true)',\n '(mouseleave)': 'hovered.next(false)',\n\n '(keydown.esc)': 'close()'\n },\n animations: [mcToastAnimations.toastState],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class McToastComponent implements OnDestroy {\n themePalette = ThemePalette;\n\n animationState = 'void';\n\n readonly hovered = new BehaviorSubject<boolean>(false);\n readonly focused = new BehaviorSubject<boolean>(false);\n\n id = id++;\n ttl;\n delay;\n\n $implicit;\n\n get toastStyle() {\n return {\n [`mc-toast_${this.data.style || 'info'}`]: true\n };\n }\n\n get hasDismiss(): boolean {\n return this.data.hasDismiss === undefined ? true : this.data.hasDismiss;\n }\n\n get isFocusedOrHovered(): boolean {\n return this.hovered.getValue() || this.focused.getValue();\n }\n\n private destroyed: Subject<boolean> = new Subject();\n\n constructor(\n readonly data: McToastData,\n @Inject(forwardRef(() => McToastService)) readonly service: McToastService,\n public elementRef: ElementRef,\n private focusMonitor: FocusMonitor\n ) {\n this.$implicit = this;\n\n this.animationState = 'visible';\n\n this.runFocusMonitor();\n\n this.hovered.subscribe(this.service.hovered);\n this.focused.subscribe(this.service.focused);\n\n merge(this.hovered, this.focused)\n .pipe(takeUntil(this.destroyed), filter((value) => value))\n .subscribe(() => {\n if (this.ttl === 0) { return; }\n\n this.ttl = this.ttl < this.delay ? this.delay : this.ttl;\n });\n }\n\n ngOnDestroy() {\n this.stopFocusMonitor();\n\n this.hovered.next(false);\n this.focused.next(false);\n\n this.destroyed.next();\n }\n\n close(): void {\n this.service.hide(this.id);\n }\n\n isTemplateRef(value): boolean {\n return value instanceof TemplateRef;\n }\n\n private runFocusMonitor() {\n this.focusMonitor\n .monitor(this.elementRef.nativeElement, true)\n .subscribe((origin: FocusOrigin) => this.focused.next(!!origin));\n }\n\n private stopFocusMonitor() {\n this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);\n }\n}\n","<div class=\"mc-toast__wrapper\">\n <div class=\"mc-toast__icon-container\">\n <ng-container *ngIf=\"isTemplateRef(data.icon)\"\n [ngTemplateOutlet]=\"$any(data.icon)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!data.icon\">\n <ng-container [ngSwitch]=\"data.style\">\n <ng-container *ngSwitchCase=\"'info'\">\n <i mc-icon=\"mc-info_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'success'\">\n <i mc-icon=\"mc-success_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'warning'\">\n <i mc-icon=\"mc-error_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error'\">\n <i mc-icon=\"mc-error_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"mc-toast__container\">\n <div *ngIf=\"data.title\" class=\"mc-toast__title\">\n <ng-container *ngIf=\"isTemplateRef(data.title)\"\n [ngTemplateOutlet]=\"$any(data.title)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.title)\">\n <button\n class=\"mc-button_transparent mc-toast__close\"\n mc-button\n *ngIf=\"hasDismiss\"\n (click)=\"close()\">\n\n <i class=\"mc-icon_light\" mc-icon=\"mc-close-L_16\" [color]=\"themePalette.Second\"></i>\n </button>\n <p>{{ data.title }}</p>\n </ng-container>\n </div>\n\n <div *ngIf=\"data.caption\" class=\"mc-toast__caption\">\n <ng-container *ngIf=\"isTemplateRef(data.caption)\"\n [ngTemplateOutlet]=\"$any(data.caption)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.caption)\">{{ data.caption }}</ng-container>\n </div>\n\n <div *ngIf=\"data.content\" class=\"mc-toast__content\">\n <ng-container *ngIf=\"isTemplateRef(data.content)\"\n [ngTemplateOutlet]=\"$any(data.content)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.content)\">{{ data.content }}</ng-container>\n </div>\n\n <div *ngIf=\"data.actions\" class=\"mc-toast__actions\">\n <ng-container *ngIf=\"isTemplateRef(data.actions)\"\n [ngTemplateOutlet]=\"$any(data.actions)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.actions)\">{{ data.actions }}</ng-container>\n </div>\n </div>\n</div>\n","import { GlobalPositionStrategy, Overlay } from '@angular/cdk/overlay';\nimport { OverlayRef } from '@angular/cdk/overlay/overlay-ref';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n Injectable,\n Injector,\n Inject,\n ComponentRef,\n Optional,\n TemplateRef,\n EmbeddedViewRef\n} from '@angular/core';\nimport { BehaviorSubject, timer } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { McToastContainerComponent } from './toast-container.component';\nimport { McToastComponent } from './toast.component';\nimport { McToastData, MC_TOAST_CONFIG, McToastConfig, McToastPosition } from './toast.type';\n\n\nexport const defaultToastConfig: McToastConfig = {\n position: McToastPosition.TOP_RIGHT,\n duration: 5000,\n delay: 2000,\n onTop: false\n};\n\n\nconst INDENT_SIZE = 16;\nconst CHECK_INTERVAL = 500;\n\nlet templateId = 0;\n\n@Injectable()\nexport class McToastService<T extends McToastComponent = McToastComponent> {\n get toasts(): ComponentRef<T>[] {\n return Object.values(this.toastsDict)\n .filter((item) => !item.hostView.destroyed);\n }\n\n get templates(): EmbeddedViewRef<T>[] {\n return Object.values(this.templatesDict);\n }\n\n readonly hovered = new BehaviorSubject<boolean>(false);\n readonly focused = new BehaviorSubject<boolean>(false);\n\n private containerInstance: McToastContainerComponent;\n private overlayRef: OverlayRef;\n private portal: ComponentPortal<McToastContainerComponent>;\n\n private toastsDict: { [id: number]: ComponentRef<T> } = {};\n private templatesDict: { [id: number]: EmbeddedViewRef<T> } = {};\n\n constructor(\n private overlay: Overlay,\n private injector: Injector,\n @Optional() @Inject(MC_TOAST_CONFIG) private toastConfig: McToastConfig,\n @Optional() private toastFactory: McToastComponent\n ) {\n this.toastConfig = toastConfig || defaultToastConfig;\n\n timer(CHECK_INTERVAL, CHECK_INTERVAL)\n .pipe(filter(() => this.toasts.length > 0 && !this.hovered.getValue() && !this.focused.getValue()))\n .subscribe(this.processToasts);\n }\n\n show(\n data: McToastData,\n duration: number = this.toastConfig.duration,\n onTop: boolean = this.toastConfig.onTop\n ): { ref: ComponentRef<T>; id: number} {\n\n this.prepareContainer();\n\n const componentRef = this.containerInstance.createToast<T>(data, this.toastFactory || McToastComponent, onTop);\n\n this.toastsDict[componentRef.instance.id] = componentRef;\n\n componentRef.instance.ttl = duration;\n componentRef.instance.delay = this.toastConfig.delay;\n\n return { ref: componentRef, id: componentRef.instance.id };\n }\n\n showTemplate(\n data: McToastData,\n template: TemplateRef<any>,\n duration: number = this.toastConfig.duration,\n onTop: boolean = this.toastConfig.onTop\n ): { ref: EmbeddedViewRef<T>; id: number } {\n\n this.prepareContainer();\n\n const viewRef = this.containerInstance.createTemplate<T>(data, template, onTop);\n\n this.templatesDict[templateId] = viewRef;\n\n this.addRemoveTimer(templateId, duration);\n\n templateId++;\n\n return { ref: viewRef, id: templateId };\n }\n\n hide(id: number) {\n const componentRef = this.toastsDict[id];\n\n if (!componentRef) { return; }\n\n this.containerInstance.remove(componentRef.hostView);\n\n delete this.toastsDict[id];\n }\n\n hideTemplate(id: number) {\n const viewRef = this.templatesDict[id];\n\n if (!viewRef) { return; }\n\n this.containerInstance.remove(viewRef);\n\n delete this.templatesDict[id];\n }\n\n private processToasts = () => {\n for (const toast of this.toasts.filter((item) => item.instance.ttl > 0)) {\n toast.instance.ttl -= CHECK_INTERVAL;\n\n if (toast.instance.ttl <= 0) {\n this.hide(toast.instance.id);\n\n this.updateTTLAfterDelete();\n\n break;\n }\n }\n }\n\n private updateTTLAfterDelete() {\n this.toasts\n .filter((item) => item.instance.ttl > 0)\n .forEach((item) => item.instance.ttl = this.toastConfig.delay);\n }\n\n private addRemoveTimer(id: number, duration: number) {\n setTimeout(() => this.hideTemplate(id), duration);\n }\n\n private prepareContainer() {\n this.overlayRef = this.createOverlay();\n\n this.portal = this.portal || new ComponentPortal(McToastContainerComponent, null, this.injector);\n\n if (!this.overlayRef.hasAttached()) {\n this.containerInstance = this.overlayRef.attach(this.portal).instance;\n }\n }\n\n private createOverlay(): OverlayRef {\n if (this.overlayRef) { return this.overlayRef; }\n\n const positionStrategy = this.getPositionStrategy(this.toastConfig.position);\n\n return this.overlay.create({ positionStrategy });\n }\n\n private getPositionStrategy(position?: McToastPosition): GlobalPositionStrategy {\n switch (position) {\n case McToastPosition.CENTER:\n return this.getCenter();\n case McToastPosition.BOTTOM_CENTER:\n return this.getBottomCenter();\n case McToastPosition.BOTTOM_LEFT:\n return this.getBottomLeft();\n case McToastPosition.BOTTOM_RIGHT:\n return this.getBottomRight();\n case McToastPosition.TOP_CENTER:\n return this.getTopCenter();\n case McToastPosition.TOP_LEFT:\n return this.getTopLeft();\n case McToastPosition.TOP_RIGHT:\n return this.getTopRight();\n default:\n return this.getTopCenter();\n }\n }\n\n private getTopCenter(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition()\n .top(`${INDENT_SIZE}px`)\n .centerHorizontally();\n }\n\n private getTopLeft(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition()\n .top(`${INDENT_SIZE}px`)\n .left(`${INDENT_SIZE}px`);\n }\n\n private getTopRight(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition()\n .top(`${INDENT_SIZE}px`)\n .right(`${INDENT_SIZE}px`);\n }\n\n private getBottomCenter(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition()\n .bottom(`${INDENT_SIZE}px`)\n .centerHorizontally();\n }\n\n private getBottomLeft(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition()\n .bottom(`${INDENT_SIZE}px`)\n .left(`${INDENT_SIZE}px`);\n }\n\n private getBottomRight(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition()\n .bottom(`${INDENT_SIZE}px`)\n .right(`${INDENT_SIZE}px`);\n }\n\n private getCenter(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition()\n .centerVertically()\n .centerHorizontally();\n }\n\n private getGlobalOverlayPosition(): GlobalPositionStrategy {\n return this.overlay.position().global();\n }\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { McButtonModule } from '@ptsecurity/mosaic/button';\nimport { McIconModule } from '@ptsecurity/mosaic/icon';\n\nimport { McToastContainerComponent } from './toast-container.component';\nimport { McToastComponent } from './toast.component';\n\n\n@NgModule({\n declarations: [\n McToastComponent,\n McToastContainerComponent\n ],\n imports: [\n CommonModule,\n OverlayModule,\n A11yModule,\n McIconModule,\n McButtonModule\n ]\n})\nexport class McToastModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.McToastComponent"],"mappings":"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"}
1
+ {"version":3,"file":"ptsecurity-mosaic-toast.mjs","sources":["../../../packages/mosaic/toast/toast.type.ts","../../../packages/mosaic/toast/toast-container.component.ts","../../../packages/mosaic/toast/toast.service.ts","../../../packages/mosaic/toast/toast-animations.ts","../../../packages/mosaic/toast/toast.component.ts","../../../packages/mosaic/toast/toast.component.html","../../../packages/mosaic/toast/toast.module.ts","../../../packages/mosaic/toast/ptsecurity-mosaic-toast.ts"],"sourcesContent":["import { TemplateRef, InjectionToken } from '@angular/core';\n\n\nexport type McToastStyle = 'default' | 'confirm' | 'custom' | 'success' | 'error' | 'warning' | 'info';\nexport enum McToastPosition {\n TOP_RIGHT = 'top-right',\n TOP_LEFT = 'top-left',\n TOP_CENTER = 'top-center',\n BOTTOM_RIGHT = 'bottom-right',\n BOTTOM_LEFT = 'bottom-left',\n BOTTOM_CENTER = 'bottom-center',\n CENTER = 'center'\n}\n\nexport class McToastData {\n style: McToastStyle;\n title: string | TemplateRef<any>;\n\n icon?: TemplateRef<any>;\n caption?: string | TemplateRef<any>;\n\n content?: string | TemplateRef<any>;\n actions?: TemplateRef<any>;\n\n hasDismiss?: boolean;\n}\n\n// tslint:disable-next-line:naming-convention\nexport interface McToastConfig {\n position: McToastPosition;\n duration: number;\n delay: number;\n onTop: boolean;\n}\n\nexport const MC_TOAST_CONFIG = new InjectionToken('mc-toast-config');\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n EmbeddedViewRef,\n Injector,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n ViewRef\n} from '@angular/core';\n\nimport { McToastData } from './toast.type';\n\n\n@Component({\n selector: 'mc-toast-container',\n template: '<ng-container #container></ng-container>',\n styleUrls: ['./toast-container.component.scss'],\n host: {\n class: 'mc-toast-container'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class McToastContainerComponent {\n @ViewChild('container', { static: true, read: ViewContainerRef }) viewContainer: ViewContainerRef;\n\n constructor(\n private injector: Injector,\n private changeDetectorRef: ChangeDetectorRef\n ) {}\n\n createToast<C>(data: McToastData, componentType, onTop: boolean): ComponentRef<C> {\n const injector = this.getInjector(data);\n const index = onTop ? 0 : undefined;\n\n this.changeDetectorRef.markForCheck();\n\n return this.viewContainer.createComponent(componentType, { injector, index });\n }\n\n createTemplate<C>(data: McToastData, template: TemplateRef<any>, onTop: boolean): EmbeddedViewRef<C> {\n const index = onTop ? 0 : undefined;\n\n return this.viewContainer.createEmbeddedView(template, { $implicit: data }, index);\n }\n\n remove(viewRef: ViewRef) {\n const index = this.viewContainer.indexOf(viewRef);\n\n if (index < 0) { return; }\n\n this.viewContainer.remove(index);\n }\n\n getInjector(data: McToastData): Injector {\n return Injector.create({\n providers: [{ provide: McToastData, useValue: data }],\n parent: this.injector\n });\n }\n}\n","import { GlobalPositionStrategy, Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n Injectable,\n Injector,\n Inject,\n ComponentRef,\n Optional,\n TemplateRef,\n EmbeddedViewRef,\n InjectionToken\n} from '@angular/core';\nimport { BehaviorSubject, timer } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { McToastContainerComponent } from './toast-container.component';\nimport { McToastComponent } from './toast.component';\nimport { McToastData, MC_TOAST_CONFIG, McToastConfig, McToastPosition } from './toast.type';\n\n\nexport const MC_TOAST_FACTORY = new InjectionToken('McUseValidation');\n\nexport const defaultToastConfig: McToastConfig = {\n position: McToastPosition.TOP_RIGHT,\n duration: 5000,\n delay: 2000,\n onTop: false\n};\n\n\nconst INDENT_SIZE = 16;\nconst CHECK_INTERVAL = 500;\n\nlet templateId = 0;\n\n@Injectable()\nexport class McToastService<T extends McToastComponent = McToastComponent> {\n get toasts(): ComponentRef<T>[] {\n return Object.values(this.toastsDict)\n .filter((item) => !item.hostView.destroyed);\n }\n\n get templates(): EmbeddedViewRef<T>[] {\n return Object.values(this.templatesDict);\n }\n\n readonly hovered = new BehaviorSubject<boolean>(false);\n readonly focused = new BehaviorSubject<boolean>(false);\n\n private containerInstance: McToastContainerComponent;\n private overlayRef: OverlayRef;\n private portal: ComponentPortal<McToastContainerComponent>;\n\n private toastsDict: { [id: number]: ComponentRef<T> } = {};\n private templatesDict: { [id: number]: EmbeddedViewRef<T> } = {};\n\n constructor(\n private overlay: Overlay,\n private injector: Injector,\n @Inject(MC_TOAST_FACTORY) private toastFactory: any,\n @Optional() @Inject(MC_TOAST_CONFIG) private toastConfig: McToastConfig\n ) {\n this.toastConfig = toastConfig || defaultToastConfig;\n\n timer(CHECK_INTERVAL, CHECK_INTERVAL)\n .pipe(filter(() => this.toasts.length > 0 && !this.hovered.getValue() && !this.focused.getValue()))\n .subscribe(this.processToasts);\n }\n\n show(\n data: McToastData,\n duration: number = this.toastConfig.duration,\n onTop: boolean = this.toastConfig.onTop\n ): { ref: ComponentRef<T>; id: number} {\n\n this.prepareContainer();\n\n const componentRef = this.containerInstance.createToast<T>(data, this.toastFactory, onTop);\n\n this.toastsDict[componentRef.instance.id] = componentRef;\n\n componentRef.instance.ttl = duration;\n componentRef.instance.delay = this.toastConfig.delay;\n\n return { ref: componentRef, id: componentRef.instance.id };\n }\n\n showTemplate(\n data: McToastData,\n template: TemplateRef<any>,\n duration: number = this.toastConfig.duration,\n onTop: boolean = this.toastConfig.onTop\n ): { ref: EmbeddedViewRef<T>; id: number } {\n\n this.prepareContainer();\n\n const viewRef = this.containerInstance.createTemplate<T>(data, template, onTop);\n\n this.templatesDict[templateId] = viewRef;\n\n this.addRemoveTimer(templateId, duration);\n\n templateId++;\n\n return { ref: viewRef, id: templateId };\n }\n\n hide(id: number) {\n const componentRef = this.toastsDict[id];\n\n if (!componentRef) { return; }\n\n this.containerInstance.remove(componentRef.hostView);\n\n delete this.toastsDict[id];\n }\n\n hideTemplate(id: number) {\n const viewRef = this.templatesDict[id];\n\n if (!viewRef) { return; }\n\n this.containerInstance.remove(viewRef);\n\n delete this.templatesDict[id];\n }\n\n private processToasts = () => {\n for (const toast of this.toasts.filter((item) => item.instance.ttl > 0)) {\n toast.instance.ttl -= CHECK_INTERVAL;\n\n if (toast.instance.ttl <= 0) {\n this.hide(toast.instance.id);\n\n this.updateTTLAfterDelete();\n\n break;\n }\n }\n }\n\n private updateTTLAfterDelete() {\n this.toasts\n .filter((item) => item.instance.ttl > 0)\n .forEach((item) => item.instance.ttl = this.toastConfig.delay);\n }\n\n private addRemoveTimer(id: number, duration: number) {\n setTimeout(() => this.hideTemplate(id), duration);\n }\n\n private prepareContainer() {\n this.overlayRef = this.createOverlay();\n\n this.portal = this.portal || new ComponentPortal(McToastContainerComponent, null, this.injector);\n\n if (!this.overlayRef.hasAttached()) {\n this.containerInstance = this.overlayRef.attach(this.portal).instance;\n }\n }\n\n private createOverlay(): OverlayRef {\n if (this.overlayRef) { return this.overlayRef; }\n\n const positionStrategy = this.getPositionStrategy(this.toastConfig.position);\n\n return this.overlay.create({ positionStrategy });\n }\n\n private getPositionStrategy(position?: McToastPosition): GlobalPositionStrategy {\n switch (position) {\n case McToastPosition.CENTER:\n return this.getCenter();\n case McToastPosition.BOTTOM_CENTER:\n return this.getBottomCenter();\n case McToastPosition.BOTTOM_LEFT:\n return this.getBottomLeft();\n case McToastPosition.BOTTOM_RIGHT:\n return this.getBottomRight();\n case McToastPosition.TOP_CENTER:\n return this.getTopCenter();\n case McToastPosition.TOP_LEFT:\n return this.getTopLeft();\n case McToastPosition.TOP_RIGHT:\n return this.getTopRight();\n default:\n return this.getTopCenter();\n }\n }\n\n private getTopCenter(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition()\n .top(`${INDENT_SIZE}px`)\n .centerHorizontally();\n }\n\n private getTopLeft(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition()\n .top(`${INDENT_SIZE}px`)\n .left(`${INDENT_SIZE}px`);\n }\n\n private getTopRight(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition()\n .top(`${INDENT_SIZE}px`)\n .right(`${INDENT_SIZE}px`);\n }\n\n private getBottomCenter(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition()\n .bottom(`${INDENT_SIZE}px`)\n .centerHorizontally();\n }\n\n private getBottomLeft(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition()\n .bottom(`${INDENT_SIZE}px`)\n .left(`${INDENT_SIZE}px`);\n }\n\n private getBottomRight(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition()\n .bottom(`${INDENT_SIZE}px`)\n .right(`${INDENT_SIZE}px`);\n }\n\n private getCenter(): GlobalPositionStrategy {\n return this.getGlobalOverlayPosition()\n .centerVertically()\n .centerHorizontally();\n }\n\n private getGlobalOverlayPosition(): GlobalPositionStrategy {\n return this.overlay.position().global();\n }\n}\n","import {\n animate,\n style,\n transition,\n trigger,\n state,\n AnimationTriggerMetadata\n} from '@angular/animations';\n\n\nexport const mcToastAnimations: {\n readonly toastState: AnimationTriggerMetadata;\n} = {\n toastState: trigger('state', [\n state('void', style({ transform: 'translateX(100%)', opacity: 0 })),\n transition(\n '* => visible',\n animate('150ms ease-out', style({ transform: 'translateX(0%)', opacity: 1 }))\n ),\n transition(\n '* => void',\n animate('300ms ease-in', style({ transform: 'translateX(50%)', opacity: 0, 'max-height': 0 }))\n )\n ])\n};\n","import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n forwardRef,\n Inject,\n OnDestroy,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { ThemePalette } from '@ptsecurity/mosaic/core';\nimport { BehaviorSubject, merge, Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { mcToastAnimations } from './toast-animations';\nimport { McToastService } from './toast.service';\nimport { McToastData } from './toast.type';\n\n\nlet id = 0;\n\n@Component({\n selector: 'mc-toast',\n templateUrl: './toast.component.html',\n styleUrls: ['./toast.component.scss'],\n host: {\n class: 'mc-toast',\n '[class]': 'toastStyle',\n '[class.mc-toast_dismissible]': 'hasDismiss',\n '[@state]': 'animationState',\n\n '(mouseenter)': 'hovered.next(true)',\n '(mouseleave)': 'hovered.next(false)',\n\n '(keydown.esc)': 'close()'\n },\n animations: [mcToastAnimations.toastState],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class McToastComponent implements OnDestroy {\n themePalette = ThemePalette;\n\n animationState = 'void';\n\n readonly hovered = new BehaviorSubject<boolean>(false);\n readonly focused = new BehaviorSubject<boolean>(false);\n\n id = id++;\n ttl;\n delay;\n\n $implicit;\n\n get toastStyle() {\n return {\n [`mc-toast_${this.data.style || 'info'}`]: true\n };\n }\n\n get hasDismiss(): boolean {\n return this.data.hasDismiss === undefined ? true : this.data.hasDismiss;\n }\n\n get isFocusedOrHovered(): boolean {\n return this.hovered.getValue() || this.focused.getValue();\n }\n\n private destroyed: Subject<boolean> = new Subject();\n\n constructor(\n readonly data: McToastData,\n @Inject(forwardRef(() => McToastService)) readonly service: McToastService,\n public elementRef: ElementRef,\n private focusMonitor: FocusMonitor\n ) {\n this.$implicit = this;\n\n this.animationState = 'visible';\n\n this.runFocusMonitor();\n\n this.hovered.subscribe(this.service.hovered);\n this.focused.subscribe(this.service.focused);\n\n merge(this.hovered, this.focused)\n .pipe(takeUntil(this.destroyed), filter((value) => value))\n .subscribe(() => {\n if (this.ttl === 0) { return; }\n\n this.ttl = this.ttl < this.delay ? this.delay : this.ttl;\n });\n }\n\n ngOnDestroy() {\n this.stopFocusMonitor();\n\n this.hovered.next(false);\n this.focused.next(false);\n\n this.destroyed.next(true);\n }\n\n close(): void {\n this.service.hide(this.id);\n }\n\n isTemplateRef(value): boolean {\n return value instanceof TemplateRef;\n }\n\n private runFocusMonitor() {\n this.focusMonitor\n .monitor(this.elementRef.nativeElement, true)\n .subscribe((origin: FocusOrigin) => this.focused.next(!!origin));\n }\n\n private stopFocusMonitor() {\n this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);\n }\n}\n","<div class=\"mc-toast__wrapper\">\n <div class=\"mc-toast__icon-container\">\n <ng-container *ngIf=\"isTemplateRef(data.icon)\"\n [ngTemplateOutlet]=\"$any(data.icon)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!data.icon\">\n <ng-container [ngSwitch]=\"data.style\">\n <ng-container *ngSwitchCase=\"'info'\">\n <i mc-icon=\"mc-info_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'success'\">\n <i mc-icon=\"mc-success_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'warning'\">\n <i mc-icon=\"mc-error_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'error'\">\n <i mc-icon=\"mc-error_16\" class=\"mc-toast__icon\"></i>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"mc-toast__container\">\n <div *ngIf=\"data.title\" class=\"mc-toast__title\">\n <ng-container *ngIf=\"isTemplateRef(data.title)\"\n [ngTemplateOutlet]=\"$any(data.title)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.title)\">\n <button\n class=\"mc-button_transparent mc-toast__close\"\n mc-button\n *ngIf=\"hasDismiss\"\n (click)=\"close()\">\n\n <i class=\"mc-icon_light\" mc-icon=\"mc-close-L_16\" [color]=\"themePalette.Second\"></i>\n </button>\n <p>{{ data.title }}</p>\n </ng-container>\n </div>\n\n <div *ngIf=\"data.caption\" class=\"mc-toast__caption\">\n <ng-container *ngIf=\"isTemplateRef(data.caption)\"\n [ngTemplateOutlet]=\"$any(data.caption)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.caption)\">{{ data.caption }}</ng-container>\n </div>\n\n <div *ngIf=\"data.content\" class=\"mc-toast__content\">\n <ng-container *ngIf=\"isTemplateRef(data.content)\"\n [ngTemplateOutlet]=\"$any(data.content)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.content)\">{{ data.content }}</ng-container>\n </div>\n\n <div *ngIf=\"data.actions\" class=\"mc-toast__actions\">\n <ng-container *ngIf=\"isTemplateRef(data.actions)\"\n [ngTemplateOutlet]=\"$any(data.actions)\"\n [ngTemplateOutletContext]=\"{ $implicit }\">\n </ng-container>\n\n <ng-container *ngIf=\"!isTemplateRef(data.actions)\">{{ data.actions }}</ng-container>\n </div>\n </div>\n</div>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { McButtonModule } from '@ptsecurity/mosaic/button';\nimport { McIconModule } from '@ptsecurity/mosaic/icon';\n\nimport { McToastContainerComponent } from './toast-container.component';\nimport { McToastComponent } from './toast.component';\nimport { MC_TOAST_FACTORY } from './toast.service';\n\n\n@NgModule({\n declarations: [\n McToastComponent,\n McToastContainerComponent\n ],\n imports: [\n CommonModule,\n OverlayModule,\n A11yModule,\n McIconModule,\n McButtonModule\n ],\n providers: [{ provide: MC_TOAST_FACTORY, useFactory: () => McToastComponent }]\n})\nexport class McToastModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}