@ptsecurity/mosaic 13.3.0 → 13.5.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 (922) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +6 -6
  3. package/_theming.scss +7091 -6885
  4. package/_visual.scss +2690 -2580
  5. package/autocomplete/autocomplete-origin.directive.d.ts +12 -12
  6. package/autocomplete/autocomplete-trigger.directive.d.ts +167 -167
  7. package/autocomplete/autocomplete.component.d.ts +73 -73
  8. package/autocomplete/autocomplete.module.d.ts +12 -12
  9. package/autocomplete/index.d.ts +1 -1
  10. package/autocomplete/ptsecurity-mosaic-autocomplete.d.ts +5 -5
  11. package/autocomplete/public-api.d.ts +4 -4
  12. package/button/button.component.d.ts +40 -40
  13. package/button/button.module.d.ts +10 -10
  14. package/button/index.d.ts +1 -1
  15. package/button/ptsecurity-mosaic-button.d.ts +5 -5
  16. package/button/public-api.d.ts +2 -2
  17. package/button-toggle/button-toggle.component.d.ts +141 -141
  18. package/button-toggle/button-toggle.module.d.ts +9 -9
  19. package/button-toggle/index.d.ts +1 -1
  20. package/button-toggle/ptsecurity-mosaic-button-toggle.d.ts +5 -5
  21. package/button-toggle/public-api.d.ts +2 -2
  22. package/card/card.component.d.ts +26 -26
  23. package/card/card.module.d.ts +10 -10
  24. package/card/index.d.ts +1 -1
  25. package/card/ptsecurity-mosaic-card.d.ts +5 -5
  26. package/card/public-api.d.ts +2 -2
  27. package/checkbox/README.md +1 -1
  28. package/checkbox/checkbox-config.d.ts +13 -13
  29. package/checkbox/checkbox-module.d.ts +9 -9
  30. package/checkbox/checkbox-required-validator.d.ts +13 -13
  31. package/checkbox/checkbox.d.ts +140 -140
  32. package/checkbox/index.d.ts +1 -1
  33. package/checkbox/ptsecurity-mosaic-checkbox.d.ts +5 -5
  34. package/checkbox/public-api.d.ts +4 -4
  35. package/core/animation/animation.d.ts +6 -6
  36. package/core/animation/fade-animations.d.ts +2 -2
  37. package/core/animation/index.d.ts +3 -3
  38. package/core/animation/select-animations.d.ts +12 -12
  39. package/core/common-behaviors/color.d.ts +19 -19
  40. package/core/common-behaviors/common-module.d.ts +25 -25
  41. package/core/common-behaviors/constructor.d.ts +9 -9
  42. package/core/common-behaviors/disabled.d.ts +8 -8
  43. package/core/common-behaviors/error-state.d.ts +25 -25
  44. package/core/common-behaviors/index.d.ts +5 -5
  45. package/core/common-behaviors/tabindex.d.ts +8 -8
  46. package/core/error/error-options.d.ts +14 -14
  47. package/core/formatters/date/formatter.d.ts +203 -203
  48. package/core/formatters/date/templates/en-US.d.ts +74 -74
  49. package/core/formatters/date/templates/ru-RU.d.ts +74 -74
  50. package/core/formatters/index.d.ts +9 -9
  51. package/core/formatters/number/formatter.d.ts +27 -27
  52. package/core/forms/forms-module.d.ts +7 -7
  53. package/core/forms/forms.directive.d.ts +22 -22
  54. package/core/forms/index.d.ts +2 -2
  55. package/core/highlight/highlight.pipe.d.ts +7 -7
  56. package/core/highlight/index.d.ts +9 -9
  57. package/core/index.d.ts +1 -1
  58. package/core/label/label-options.d.ts +13 -13
  59. package/core/line/line.d.ts +28 -28
  60. package/core/option/action.d.ts +42 -42
  61. package/core/option/index.d.ts +4 -4
  62. package/core/option/optgroup.d.ts +16 -16
  63. package/core/option/option-module.d.ts +11 -11
  64. package/core/option/option.d.ts +115 -115
  65. package/core/overlay/overlay-position-map.d.ts +34 -34
  66. package/core/pop-up/constants.d.ts +29 -29
  67. package/core/pop-up/index.d.ts +3 -3
  68. package/core/pop-up/pop-up-trigger.d.ts +70 -70
  69. package/core/pop-up/pop-up.d.ts +36 -36
  70. package/core/ptsecurity-mosaic-core.d.ts +5 -5
  71. package/core/public-api.d.ts +17 -17
  72. package/core/select/constants.d.ts +23 -23
  73. package/core/select/errors.d.ts +19 -19
  74. package/core/select/events.d.ts +1 -1
  75. package/core/select/index.d.ts +3 -3
  76. package/core/selection/constants.d.ts +4 -4
  77. package/core/selection/index.d.ts +3 -3
  78. package/core/selection/pseudo-checkbox/pseudo-checkbox.d.ts +21 -21
  79. package/core/selection/pseudo-checkbox/pseudo-checkbox.module.d.ts +8 -8
  80. package/core/services/measure-scrollbar.service.d.ts +11 -11
  81. package/core/utils/index.d.ts +1 -1
  82. package/core/utils/public-api.d.ts +1 -1
  83. package/core/utils/utils.d.ts +2 -2
  84. package/core/validation/index.d.ts +1 -1
  85. package/core/validation/validation.d.ts +18 -16
  86. package/core/version.d.ts +2 -2
  87. package/datepicker/calendar-body.component.d.ts +63 -63
  88. package/datepicker/calendar.component.d.ts +151 -151
  89. package/datepicker/datepicker-animations.d.ts +9 -9
  90. package/datepicker/datepicker-errors.d.ts +2 -2
  91. package/datepicker/datepicker-input.directive.d.ts +178 -172
  92. package/datepicker/datepicker-intl.d.ts +32 -32
  93. package/datepicker/datepicker-module.d.ts +20 -20
  94. package/datepicker/datepicker-toggle.component.d.ts +35 -35
  95. package/datepicker/datepicker.component.d.ts +158 -158
  96. package/datepicker/index.d.ts +1 -1
  97. package/datepicker/month-view.component.d.ts +93 -93
  98. package/datepicker/multi-year-view.component.d.ts +72 -72
  99. package/datepicker/ptsecurity-mosaic-datepicker.d.ts +5 -5
  100. package/datepicker/public-api.d.ts +11 -11
  101. package/datepicker/year-view.component.d.ts +90 -90
  102. package/design-tokens/index.d.ts +1 -1
  103. package/design-tokens/legacy-2017/tokens/components/alert.json5 +83 -0
  104. package/design-tokens/legacy-2017/tokens/components/autocomplete.json5 +11 -0
  105. package/design-tokens/legacy-2017/tokens/components/badge.json5 +174 -0
  106. package/design-tokens/legacy-2017/tokens/components/button-toggle.json5 +10 -0
  107. package/design-tokens/legacy-2017/tokens/components/button.json5 +142 -0
  108. package/design-tokens/legacy-2017/tokens/components/card.json5 +51 -0
  109. package/design-tokens/legacy-2017/tokens/components/checkbox.json5 +97 -0
  110. package/design-tokens/legacy-2017/tokens/components/datepicker.json5 +64 -0
  111. package/design-tokens/legacy-2017/tokens/components/divider.json5 +8 -0
  112. package/design-tokens/legacy-2017/tokens/components/dl.json5 +38 -0
  113. package/design-tokens/legacy-2017/tokens/components/dropdown.json5 +48 -0
  114. package/design-tokens/legacy-2017/tokens/components/form-field.json5 +92 -0
  115. package/design-tokens/legacy-2017/tokens/components/forms.json5 +52 -0
  116. package/design-tokens/legacy-2017/tokens/components/icon.json5 +104 -0
  117. package/design-tokens/legacy-2017/tokens/components/input.json5 +12 -0
  118. package/design-tokens/legacy-2017/tokens/components/link.json5 +50 -0
  119. package/design-tokens/legacy-2017/tokens/components/list.json5 +13 -0
  120. package/design-tokens/legacy-2017/tokens/components/modal.json5 +81 -0
  121. package/design-tokens/legacy-2017/tokens/components/navbar.json5 +70 -0
  122. package/design-tokens/legacy-2017/tokens/components/optgroup.json5 +10 -0
  123. package/design-tokens/legacy-2017/tokens/components/option.json5 +12 -0
  124. package/design-tokens/legacy-2017/tokens/components/popover.json5 +68 -0
  125. package/design-tokens/legacy-2017/tokens/components/popup.json5 +18 -0
  126. package/design-tokens/legacy-2017/tokens/components/progress-bar.json5 +13 -0
  127. package/design-tokens/legacy-2017/tokens/components/progress-spinner.json5 +7 -0
  128. package/design-tokens/legacy-2017/tokens/components/radio.json5 +44 -0
  129. package/design-tokens/legacy-2017/tokens/components/select.json5 +24 -0
  130. package/design-tokens/legacy-2017/tokens/components/sidepanel.json5 +32 -0
  131. package/design-tokens/legacy-2017/tokens/components/table.json5 +15 -0
  132. package/design-tokens/legacy-2017/tokens/components/tabs.json5 +101 -0
  133. package/design-tokens/legacy-2017/tokens/components/tags.json5 +134 -0
  134. package/design-tokens/legacy-2017/tokens/components/textarea.json5 +12 -0
  135. package/design-tokens/legacy-2017/tokens/components/timepicker.json5 +7 -0
  136. package/design-tokens/legacy-2017/tokens/components/toggle.json5 +79 -0
  137. package/design-tokens/legacy-2017/tokens/components/tooltip.json5 +83 -0
  138. package/design-tokens/legacy-2017/tokens/components/tree.json5 +15 -0
  139. package/design-tokens/legacy-2017/tokens/properties/aliases.json5 +3 -0
  140. package/design-tokens/legacy-2017/tokens/properties/colors.json5 +118 -0
  141. package/design-tokens/legacy-2017/tokens/properties/font.json5 +12 -0
  142. package/design-tokens/legacy-2017/tokens/properties/globals.json5 +49 -0
  143. package/design-tokens/legacy-2017/tokens/properties/padding.json5 +3 -0
  144. package/design-tokens/legacy-2017/tokens/properties/palette.json5 +163 -0
  145. package/design-tokens/legacy-2017/tokens/properties/typography.json5 +175 -0
  146. package/design-tokens/legacy-2017/tokens.d.ts +7839 -7758
  147. package/design-tokens/pt-2022/tokens/components/alert.json5 +83 -0
  148. package/design-tokens/pt-2022/tokens/components/autocomplete.json5 +11 -0
  149. package/design-tokens/pt-2022/tokens/components/badge.json5 +174 -0
  150. package/design-tokens/pt-2022/tokens/components/button-toggle.json5 +10 -0
  151. package/design-tokens/pt-2022/tokens/components/button.json5 +142 -0
  152. package/design-tokens/pt-2022/tokens/components/card.json5 +51 -0
  153. package/design-tokens/pt-2022/tokens/components/checkbox.json5 +97 -0
  154. package/design-tokens/pt-2022/tokens/components/datepicker.json5 +64 -0
  155. package/design-tokens/pt-2022/tokens/components/divider.json5 +8 -0
  156. package/design-tokens/pt-2022/tokens/components/dl.json5 +38 -0
  157. package/design-tokens/pt-2022/tokens/components/dropdown.json5 +48 -0
  158. package/design-tokens/pt-2022/tokens/components/form-field.json5 +92 -0
  159. package/design-tokens/pt-2022/tokens/components/forms.json5 +52 -0
  160. package/design-tokens/pt-2022/tokens/components/icon.json5 +104 -0
  161. package/design-tokens/pt-2022/tokens/components/input.json5 +12 -0
  162. package/design-tokens/pt-2022/tokens/components/link.json5 +50 -0
  163. package/design-tokens/pt-2022/tokens/components/list.json5 +13 -0
  164. package/design-tokens/pt-2022/tokens/components/modal.json5 +81 -0
  165. package/design-tokens/pt-2022/tokens/components/navbar.json5 +70 -0
  166. package/design-tokens/pt-2022/tokens/components/optgroup.json5 +10 -0
  167. package/design-tokens/pt-2022/tokens/components/option.json5 +12 -0
  168. package/design-tokens/pt-2022/tokens/components/popover.json5 +68 -0
  169. package/design-tokens/pt-2022/tokens/components/popup.json5 +18 -0
  170. package/design-tokens/pt-2022/tokens/components/progress-bar.json5 +13 -0
  171. package/design-tokens/pt-2022/tokens/components/progress-spinner.json5 +7 -0
  172. package/design-tokens/pt-2022/tokens/components/radio.json5 +44 -0
  173. package/design-tokens/pt-2022/tokens/components/select.json5 +24 -0
  174. package/design-tokens/pt-2022/tokens/components/sidepanel.json5 +32 -0
  175. package/design-tokens/pt-2022/tokens/components/table.json5 +15 -0
  176. package/design-tokens/pt-2022/tokens/components/tabs.json5 +101 -0
  177. package/design-tokens/pt-2022/tokens/components/tags.json5 +137 -0
  178. package/design-tokens/pt-2022/tokens/components/textarea.json5 +12 -0
  179. package/design-tokens/pt-2022/tokens/components/timepicker.json5 +7 -0
  180. package/design-tokens/pt-2022/tokens/components/toggle.json5 +79 -0
  181. package/design-tokens/pt-2022/tokens/components/tooltip.json5 +83 -0
  182. package/design-tokens/pt-2022/tokens/components/tree.json5 +15 -0
  183. package/design-tokens/pt-2022/tokens/properties/aliases.json5 +3 -0
  184. package/design-tokens/pt-2022/tokens/properties/colors.json5 +120 -0
  185. package/design-tokens/pt-2022/tokens/properties/font.json5 +15 -0
  186. package/design-tokens/pt-2022/tokens/properties/globals.json5 +49 -0
  187. package/design-tokens/pt-2022/tokens/properties/padding.json5 +3 -0
  188. package/design-tokens/pt-2022/tokens/properties/palette.json5 +233 -0
  189. package/design-tokens/pt-2022/tokens/properties/typography.json5 +175 -0
  190. package/design-tokens/pt-2022/tokens.d.ts +9171 -8795
  191. package/design-tokens/ptsecurity-mosaic-design-tokens.d.ts +5 -5
  192. package/design-tokens/public-api.d.ts +3 -3
  193. package/design-tokens/style-dictionary/build.js +63 -0
  194. package/design-tokens/style-dictionary/configs/css.js +13 -0
  195. package/design-tokens/style-dictionary/configs/index.js +48 -0
  196. package/design-tokens/style-dictionary/configs/js.js +9 -0
  197. package/design-tokens/style-dictionary/configs/scss.js +23 -0
  198. package/design-tokens/style-dictionary/filters/color.js +7 -0
  199. package/design-tokens/style-dictionary/filters/palette.js +7 -0
  200. package/design-tokens/style-dictionary/filters/size.js +7 -0
  201. package/design-tokens/style-dictionary/filters/typography.js +7 -0
  202. package/design-tokens/style-dictionary/formats/palette.js +25 -0
  203. package/design-tokens/style-dictionary/formats/typography.js +52 -0
  204. package/design-tokens/style-dictionary/transformGroups/css.js +13 -0
  205. package/design-tokens/style-dictionary/transformGroups/scss.js +12 -0
  206. package/design-tokens/style-dictionary/transformGroups/ts.js +11 -0
  207. package/design-tokens/style-dictionary/transforms/attribute/palette.js +9 -0
  208. package/design-tokens/style-dictionary/transforms/attribute/prefix.js +11 -0
  209. package/design-tokens/style-dictionary/transforms/attribute/size.js +8 -0
  210. package/design-tokens/style-dictionary/transforms/attribute/typography.js +9 -0
  211. package/divider/divider.component.d.ts +11 -11
  212. package/divider/divider.module.d.ts +8 -8
  213. package/divider/index.d.ts +1 -1
  214. package/divider/ptsecurity-mosaic-divider.d.ts +5 -5
  215. package/divider/public-api.d.ts +2 -2
  216. package/dl/dl.component.d.ts +26 -26
  217. package/dl/dl.module.d.ts +10 -10
  218. package/dl/index.d.ts +1 -1
  219. package/dl/ptsecurity-mosaic-dl.d.ts +5 -5
  220. package/dl/public-api.d.ts +2 -2
  221. package/dropdown/dropdown-animations.d.ts +11 -11
  222. package/dropdown/dropdown-content.directive.d.ts +32 -32
  223. package/dropdown/dropdown-errors.d.ts +17 -17
  224. package/dropdown/dropdown-item.component.d.ts +50 -50
  225. package/dropdown/dropdown-trigger.directive.d.ts +136 -135
  226. package/dropdown/dropdown.component.d.ts +121 -121
  227. package/dropdown/dropdown.module.d.ts +13 -13
  228. package/dropdown/dropdown.types.d.ts +53 -53
  229. package/dropdown/index.d.ts +1 -1
  230. package/dropdown/ptsecurity-mosaic-dropdown.d.ts +5 -5
  231. package/dropdown/public-api.d.ts +8 -8
  232. package/esm2020/autocomplete/autocomplete-origin.directive.mjs +21 -21
  233. package/esm2020/autocomplete/autocomplete-trigger.directive.mjs +555 -555
  234. package/esm2020/autocomplete/autocomplete.component.mjs +154 -154
  235. package/esm2020/autocomplete/autocomplete.module.mjs +34 -34
  236. package/esm2020/autocomplete/index.mjs +2 -2
  237. package/esm2020/autocomplete/ptsecurity-mosaic-autocomplete.mjs +4 -4
  238. package/esm2020/autocomplete/public-api.mjs +5 -5
  239. package/esm2020/button/button.component.mjs +137 -137
  240. package/esm2020/button/button.module.mjs +38 -38
  241. package/esm2020/button/index.mjs +2 -2
  242. package/esm2020/button/ptsecurity-mosaic-button.mjs +4 -4
  243. package/esm2020/button/public-api.mjs +3 -3
  244. package/esm2020/button-toggle/button-toggle.component.mjs +362 -362
  245. package/esm2020/button-toggle/button-toggle.module.mjs +19 -19
  246. package/esm2020/button-toggle/index.mjs +2 -2
  247. package/esm2020/button-toggle/ptsecurity-mosaic-button-toggle.mjs +4 -4
  248. package/esm2020/button-toggle/public-api.mjs +3 -3
  249. package/esm2020/card/card.component.mjs +80 -80
  250. package/esm2020/card/card.module.mjs +30 -30
  251. package/esm2020/card/index.mjs +2 -2
  252. package/esm2020/card/ptsecurity-mosaic-card.mjs +4 -4
  253. package/esm2020/card/public-api.mjs +3 -3
  254. package/esm2020/checkbox/checkbox-config.mjs +6 -6
  255. package/esm2020/checkbox/checkbox-module.mjs +19 -19
  256. package/esm2020/checkbox/checkbox-required-validator.mjs +27 -27
  257. package/esm2020/checkbox/checkbox.mjs +316 -315
  258. package/esm2020/checkbox/index.mjs +2 -2
  259. package/esm2020/checkbox/ptsecurity-mosaic-checkbox.mjs +4 -4
  260. package/esm2020/checkbox/public-api.mjs +5 -5
  261. package/esm2020/core/animation/animation.mjs +8 -8
  262. package/esm2020/core/animation/fade-animations.mjs +9 -9
  263. package/esm2020/core/animation/index.mjs +4 -4
  264. package/esm2020/core/animation/select-animations.mjs +45 -45
  265. package/esm2020/core/common-behaviors/color.mjs +30 -30
  266. package/esm2020/core/common-behaviors/common-module.mjs +83 -83
  267. package/esm2020/core/common-behaviors/constructor.mjs +2 -2
  268. package/esm2020/core/common-behaviors/disabled.mjs +17 -17
  269. package/esm2020/core/common-behaviors/error-state.mjs +31 -31
  270. package/esm2020/core/common-behaviors/index.mjs +6 -6
  271. package/esm2020/core/common-behaviors/tabindex.mjs +18 -18
  272. package/esm2020/core/error/error-options.mjs +26 -26
  273. package/esm2020/core/formatters/date/formatter.mjs +359 -359
  274. package/esm2020/core/formatters/date/templates/en-US.mjs +281 -281
  275. package/esm2020/core/formatters/date/templates/ru-RU.mjs +281 -281
  276. package/esm2020/core/formatters/index.mjs +20 -20
  277. package/esm2020/core/formatters/number/formatter.mjs +105 -105
  278. package/esm2020/core/forms/forms-module.mjs +24 -24
  279. package/esm2020/core/forms/forms.directive.mjs +66 -66
  280. package/esm2020/core/forms/index.mjs +3 -3
  281. package/esm2020/core/highlight/highlight.pipe.mjs +17 -17
  282. package/esm2020/core/highlight/index.mjs +19 -19
  283. package/esm2020/core/index.mjs +2 -2
  284. package/esm2020/core/label/label-options.mjs +4 -4
  285. package/esm2020/core/line/line.mjs +70 -70
  286. package/esm2020/core/option/action.mjs +121 -121
  287. package/esm2020/core/option/index.mjs +5 -5
  288. package/esm2020/core/option/optgroup.mjs +31 -31
  289. package/esm2020/core/option/option-module.mjs +21 -21
  290. package/esm2020/core/option/option.mjs +257 -257
  291. package/esm2020/core/overlay/overlay-position-map.mjs +244 -244
  292. package/esm2020/core/pop-up/constants.mjs +34 -34
  293. package/esm2020/core/pop-up/index.mjs +4 -4
  294. package/esm2020/core/pop-up/pop-up-trigger.mjs +239 -239
  295. package/esm2020/core/pop-up/pop-up.mjs +94 -94
  296. package/esm2020/core/ptsecurity-mosaic-core.mjs +4 -4
  297. package/esm2020/core/public-api.mjs +18 -18
  298. package/esm2020/core/select/constants.mjs +27 -27
  299. package/esm2020/core/select/errors.mjs +26 -26
  300. package/esm2020/core/select/events.mjs +2 -2
  301. package/esm2020/core/select/index.mjs +4 -4
  302. package/esm2020/core/selection/constants.mjs +6 -6
  303. package/esm2020/core/selection/index.mjs +4 -4
  304. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +37 -37
  305. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.module.mjs +18 -18
  306. package/esm2020/core/services/measure-scrollbar.service.mjs +48 -48
  307. package/esm2020/core/utils/index.mjs +2 -2
  308. package/esm2020/core/utils/public-api.mjs +2 -2
  309. package/esm2020/core/utils/utils.mjs +5 -5
  310. package/esm2020/core/validation/index.mjs +2 -2
  311. package/esm2020/core/validation/validation.mjs +118 -89
  312. package/esm2020/core/version.mjs +3 -3
  313. package/esm2020/datepicker/calendar-body.component.mjs +106 -106
  314. package/esm2020/datepicker/calendar.component.mjs +362 -362
  315. package/esm2020/datepicker/datepicker-animations.mjs +32 -32
  316. package/esm2020/datepicker/datepicker-errors.mjs +6 -6
  317. package/esm2020/datepicker/datepicker-input.directive.mjs +936 -900
  318. package/esm2020/datepicker/datepicker-intl.mjs +40 -40
  319. package/esm2020/datepicker/datepicker-module.mjs +107 -107
  320. package/esm2020/datepicker/datepicker-toggle.component.mjs +86 -86
  321. package/esm2020/datepicker/datepicker.component.mjs +408 -408
  322. package/esm2020/datepicker/index.mjs +2 -2
  323. package/esm2020/datepicker/month-view.component.mjs +257 -257
  324. package/esm2020/datepicker/multi-year-view.component.mjs +218 -218
  325. package/esm2020/datepicker/ptsecurity-mosaic-datepicker.mjs +4 -4
  326. package/esm2020/datepicker/public-api.mjs +12 -12
  327. package/esm2020/datepicker/year-view.component.mjs +253 -253
  328. package/esm2020/design-tokens/index.mjs +2 -2
  329. package/esm2020/design-tokens/legacy-2017/tokens.mjs +1133 -1052
  330. package/esm2020/design-tokens/pt-2022/tokens.mjs +1203 -1112
  331. package/esm2020/design-tokens/ptsecurity-mosaic-design-tokens.mjs +4 -4
  332. package/esm2020/design-tokens/public-api.mjs +4 -4
  333. package/esm2020/divider/divider.component.mjs +39 -39
  334. package/esm2020/divider/divider.module.mjs +18 -18
  335. package/esm2020/divider/index.mjs +2 -2
  336. package/esm2020/divider/ptsecurity-mosaic-divider.mjs +4 -4
  337. package/esm2020/divider/public-api.mjs +3 -3
  338. package/esm2020/dl/dl.component.mjs +78 -78
  339. package/esm2020/dl/dl.module.mjs +42 -42
  340. package/esm2020/dl/index.mjs +2 -2
  341. package/esm2020/dl/ptsecurity-mosaic-dl.mjs +4 -4
  342. package/esm2020/dl/public-api.mjs +3 -3
  343. package/esm2020/dropdown/dropdown-animations.mjs +41 -41
  344. package/esm2020/dropdown/dropdown-content.directive.mjs +64 -64
  345. package/esm2020/dropdown/dropdown-errors.mjs +29 -29
  346. package/esm2020/dropdown/dropdown-item.component.mjs +139 -139
  347. package/esm2020/dropdown/dropdown-trigger.directive.mjs +489 -485
  348. package/esm2020/dropdown/dropdown.component.mjs +292 -292
  349. package/esm2020/dropdown/dropdown.module.mjs +50 -50
  350. package/esm2020/dropdown/dropdown.types.mjs +24 -24
  351. package/esm2020/dropdown/index.mjs +2 -2
  352. package/esm2020/dropdown/ptsecurity-mosaic-dropdown.mjs +4 -4
  353. package/esm2020/dropdown/public-api.mjs +9 -9
  354. package/esm2020/form-field/cleaner.mjs +23 -23
  355. package/esm2020/form-field/form-field-control.mjs +5 -5
  356. package/esm2020/form-field/form-field-errors.mjs +7 -7
  357. package/esm2020/form-field/form-field.mjs +225 -225
  358. package/esm2020/form-field/form-field.module.mjs +57 -57
  359. package/esm2020/form-field/hint.mjs +23 -23
  360. package/esm2020/form-field/index.mjs +2 -2
  361. package/esm2020/form-field/password-hint.mjs +134 -134
  362. package/esm2020/form-field/prefix.mjs +13 -13
  363. package/esm2020/form-field/ptsecurity-mosaic-form-field.mjs +4 -4
  364. package/esm2020/form-field/public-api.mjs +11 -11
  365. package/esm2020/form-field/stepper.mjs +55 -55
  366. package/esm2020/form-field/suffix.mjs +13 -13
  367. package/esm2020/icon/icon.component.mjs +44 -44
  368. package/esm2020/icon/icon.module.mjs +38 -38
  369. package/esm2020/icon/index.mjs +2 -2
  370. package/esm2020/icon/ptsecurity-mosaic-icon.mjs +4 -4
  371. package/esm2020/icon/public-api.mjs +3 -3
  372. package/esm2020/index.mjs +2 -2
  373. package/esm2020/input/index.mjs +2 -2
  374. package/esm2020/input/input-errors.mjs +4 -4
  375. package/esm2020/input/input-number-validators.mjs +92 -92
  376. package/esm2020/input/input-number.mjs +163 -163
  377. package/esm2020/input/input-password.mjs +368 -368
  378. package/esm2020/input/input-value-accessor.mjs +3 -3
  379. package/esm2020/input/input.mjs +334 -334
  380. package/esm2020/input/input.module.mjs +65 -65
  381. package/esm2020/input/ptsecurity-mosaic-input.mjs +4 -4
  382. package/esm2020/input/public-api.mjs +7 -7
  383. package/esm2020/link/index.mjs +2 -2
  384. package/esm2020/link/link.component.mjs +107 -107
  385. package/esm2020/link/link.module.mjs +26 -26
  386. package/esm2020/link/ptsecurity-mosaic-link.mjs +4 -4
  387. package/esm2020/link/public-api.mjs +3 -3
  388. package/esm2020/list/index.mjs +2 -2
  389. package/esm2020/list/list-selection.component.mjs +686 -687
  390. package/esm2020/list/list.component.mjs +44 -44
  391. package/esm2020/list/list.module.mjs +55 -55
  392. package/esm2020/list/ptsecurity-mosaic-list.mjs +4 -4
  393. package/esm2020/list/public-api.mjs +4 -4
  394. package/esm2020/modal/css-unit.pipe.mjs +17 -17
  395. package/esm2020/modal/index.mjs +2 -2
  396. package/esm2020/modal/modal-control.service.mjs +85 -85
  397. package/esm2020/modal/modal-ref.class.mjs +8 -8
  398. package/esm2020/modal/modal-util.mjs +17 -17
  399. package/esm2020/modal/modal.component.mjs +501 -501
  400. package/esm2020/modal/modal.directive.mjs +52 -52
  401. package/esm2020/modal/modal.module.mjs +72 -72
  402. package/esm2020/modal/modal.service.mjs +124 -124
  403. package/esm2020/modal/modal.type.mjs +7 -7
  404. package/esm2020/modal/ptsecurity-mosaic-modal.mjs +4 -4
  405. package/esm2020/modal/public-api.mjs +7 -7
  406. package/esm2020/navbar/index.mjs +2 -2
  407. package/esm2020/navbar/navbar-item.component.mjs +582 -584
  408. package/esm2020/navbar/navbar.component.mjs +237 -237
  409. package/esm2020/navbar/navbar.module.mjs +92 -92
  410. package/esm2020/navbar/ptsecurity-mosaic-navbar.mjs +4 -4
  411. package/esm2020/navbar/public-api.mjs +5 -5
  412. package/esm2020/navbar/vertical-navbar.animation.mjs +10 -10
  413. package/esm2020/navbar/vertical-navbar.component.mjs +114 -114
  414. package/esm2020/popover/index.mjs +2 -2
  415. package/esm2020/popover/popover-animations.mjs +16 -16
  416. package/esm2020/popover/popover-confirm.component.mjs +108 -108
  417. package/esm2020/popover/popover.component.mjs +253 -253
  418. package/esm2020/popover/popover.module.mjs +24 -24
  419. package/esm2020/popover/ptsecurity-mosaic-popover.mjs +4 -4
  420. package/esm2020/popover/public-api.mjs +5 -5
  421. package/esm2020/progress-bar/index.mjs +2 -2
  422. package/esm2020/progress-bar/progress-bar.component.mjs +42 -42
  423. package/esm2020/progress-bar/progress-bar.module.mjs +30 -30
  424. package/esm2020/progress-bar/ptsecurity-mosaic-progress-bar.mjs +4 -4
  425. package/esm2020/progress-bar/public-api.mjs +3 -3
  426. package/esm2020/progress-spinner/index.mjs +2 -2
  427. package/esm2020/progress-spinner/progress-spinner.component.mjs +46 -46
  428. package/esm2020/progress-spinner/progress-spinner.module.mjs +30 -30
  429. package/esm2020/progress-spinner/ptsecurity-mosaic-progress-spinner.mjs +4 -4
  430. package/esm2020/progress-spinner/public-api.mjs +3 -3
  431. package/esm2020/ptsecurity-mosaic.mjs +4 -4
  432. package/esm2020/public-api.mjs +2 -2
  433. package/esm2020/radio/index.mjs +2 -2
  434. package/esm2020/radio/ptsecurity-mosaic-radio.mjs +4 -4
  435. package/esm2020/radio/public-api.mjs +3 -3
  436. package/esm2020/radio/radio.component.mjs +458 -458
  437. package/esm2020/radio/radio.module.mjs +20 -20
  438. package/esm2020/select/index.mjs +2 -2
  439. package/esm2020/select/ptsecurity-mosaic-select.mjs +4 -4
  440. package/esm2020/select/public-api.mjs +4 -4
  441. package/esm2020/select/select-option.directive.mjs +65 -65
  442. package/esm2020/select/select.component.mjs +1107 -1110
  443. package/esm2020/select/select.module.mjs +73 -73
  444. package/esm2020/sidebar/index.mjs +2 -2
  445. package/esm2020/sidebar/ptsecurity-mosaic-sidebar.mjs +4 -4
  446. package/esm2020/sidebar/public-api.mjs +3 -3
  447. package/esm2020/sidebar/sidebar-animations.mjs +23 -23
  448. package/esm2020/sidebar/sidebar.component.mjs +146 -146
  449. package/esm2020/sidebar/sidebar.module.mjs +30 -30
  450. package/esm2020/sidepanel/index.mjs +2 -2
  451. package/esm2020/sidepanel/ptsecurity-mosaic-sidepanel.mjs +4 -4
  452. package/esm2020/sidepanel/public-api.mjs +7 -7
  453. package/esm2020/sidepanel/sidepanel-animations.mjs +26 -26
  454. package/esm2020/sidepanel/sidepanel-config.mjs +26 -26
  455. package/esm2020/sidepanel/sidepanel-container.component.mjs +106 -106
  456. package/esm2020/sidepanel/sidepanel-directives.mjs +159 -159
  457. package/esm2020/sidepanel/sidepanel-ref.mjs +53 -53
  458. package/esm2020/sidepanel/sidepanel.module.mjs +74 -74
  459. package/esm2020/sidepanel/sidepanel.service.mjs +167 -167
  460. package/esm2020/splitter/index.mjs +2 -2
  461. package/esm2020/splitter/ptsecurity-mosaic-splitter.mjs +4 -4
  462. package/esm2020/splitter/public-api.mjs +3 -3
  463. package/esm2020/splitter/splitter.component.mjs +482 -482
  464. package/esm2020/splitter/splitter.module.mjs +40 -40
  465. package/esm2020/table/index.mjs +2 -2
  466. package/esm2020/table/ptsecurity-mosaic-table.mjs +4 -4
  467. package/esm2020/table/public-api.mjs +3 -3
  468. package/esm2020/table/table.component.mjs +16 -16
  469. package/esm2020/table/table.module.mjs +30 -30
  470. package/esm2020/tabs/index.mjs +2 -2
  471. package/esm2020/tabs/paginated-tab-header.mjs +479 -479
  472. package/esm2020/tabs/ptsecurity-mosaic-tabs.mjs +4 -4
  473. package/esm2020/tabs/public-api.mjs +11 -11
  474. package/esm2020/tabs/tab-body.component.mjs +178 -178
  475. package/esm2020/tabs/tab-content.directive.mjs +15 -15
  476. package/esm2020/tabs/tab-group.component.mjs +350 -350
  477. package/esm2020/tabs/tab-header.component.mjs +67 -67
  478. package/esm2020/tabs/tab-label-wrapper.directive.mjs +78 -78
  479. package/esm2020/tabs/tab-label.directive.mjs +17 -17
  480. package/esm2020/tabs/tab-nav-bar/index.mjs +2 -2
  481. package/esm2020/tabs/tab-nav-bar/tab-nav-bar.mjs +110 -110
  482. package/esm2020/tabs/tab.component.mjs +133 -133
  483. package/esm2020/tabs/tabs-animations.mjs +24 -24
  484. package/esm2020/tabs/tabs.module.mjs +104 -104
  485. package/esm2020/tags/index.mjs +2 -2
  486. package/esm2020/tags/ptsecurity-mosaic-tags.mjs +4 -4
  487. package/esm2020/tags/public-api.mjs +6 -6
  488. package/esm2020/tags/tag-default-options.mjs +4 -4
  489. package/esm2020/tags/tag-input.mjs +229 -229
  490. package/esm2020/tags/tag-list.component.mjs +722 -722
  491. package/esm2020/tags/tag-text-control.mjs +2 -2
  492. package/esm2020/tags/tag.component.mjs +375 -377
  493. package/esm2020/tags/tag.module.mjs +56 -56
  494. package/esm2020/textarea/index.mjs +2 -2
  495. package/esm2020/textarea/ptsecurity-mosaic-textarea.mjs +4 -4
  496. package/esm2020/textarea/public-api.mjs +3 -3
  497. package/esm2020/textarea/textarea.component.mjs +269 -269
  498. package/esm2020/textarea/textarea.module.mjs +21 -21
  499. package/esm2020/timepicker/index.mjs +2 -2
  500. package/esm2020/timepicker/ptsecurity-mosaic-timepicker.mjs +4 -4
  501. package/esm2020/timepicker/public-api.mjs +4 -4
  502. package/esm2020/timepicker/timepicker.constants.mjs +25 -25
  503. package/esm2020/timepicker/timepicker.directive.mjs +676 -653
  504. package/esm2020/timepicker/timepicker.module.mjs +34 -34
  505. package/esm2020/toggle/index.mjs +2 -2
  506. package/esm2020/toggle/ptsecurity-mosaic-toggle.mjs +4 -4
  507. package/esm2020/toggle/public-api.mjs +3 -3
  508. package/esm2020/toggle/toggle.component.mjs +158 -158
  509. package/esm2020/toggle/toggle.module.mjs +20 -20
  510. package/esm2020/tooltip/index.mjs +2 -2
  511. package/esm2020/tooltip/ptsecurity-mosaic-tooltip.mjs +4 -4
  512. package/esm2020/tooltip/public-api.mjs +3 -3
  513. package/esm2020/tooltip/tooltip.animations.mjs +19 -19
  514. package/esm2020/tooltip/tooltip.component.mjs +295 -295
  515. package/esm2020/tooltip/tooltip.module.mjs +43 -43
  516. package/esm2020/tree/control/base-tree-control.mjs +60 -60
  517. package/esm2020/tree/control/flat-tree-control.mjs +123 -123
  518. package/esm2020/tree/control/nested-tree-control.mjs +41 -41
  519. package/esm2020/tree/control/tree-control.mjs +2 -2
  520. package/esm2020/tree/data-source/flat-data-source.mjs +162 -162
  521. package/esm2020/tree/data-source/nested-data-source.mjs +30 -30
  522. package/esm2020/tree/index.mjs +2 -2
  523. package/esm2020/tree/node.mjs +31 -31
  524. package/esm2020/tree/outlet.mjs +15 -15
  525. package/esm2020/tree/padding.directive.mjs +110 -113
  526. package/esm2020/tree/ptsecurity-mosaic-tree.mjs +4 -4
  527. package/esm2020/tree/public-api.mjs +16 -16
  528. package/esm2020/tree/toggle.mjs +80 -80
  529. package/esm2020/tree/tree-base.mjs +243 -243
  530. package/esm2020/tree/tree-errors.mjs +36 -36
  531. package/esm2020/tree/tree-option.component.mjs +236 -234
  532. package/esm2020/tree/tree-selection.component.mjs +540 -535
  533. package/esm2020/tree/tree.mjs +15 -15
  534. package/esm2020/tree/tree.module.mjs +57 -53
  535. package/esm2020/tree-select/index.mjs +2 -2
  536. package/esm2020/tree-select/ptsecurity-mosaic-tree-select.mjs +4 -4
  537. package/esm2020/tree-select/public-api.mjs +3 -3
  538. package/esm2020/tree-select/tree-select.component.mjs +924 -925
  539. package/esm2020/tree-select/tree-select.module.mjs +47 -47
  540. package/fesm2015/ptsecurity-mosaic-autocomplete.mjs +726 -726
  541. package/fesm2015/ptsecurity-mosaic-autocomplete.mjs.map +1 -1
  542. package/fesm2015/ptsecurity-mosaic-button-toggle.mjs +367 -367
  543. package/fesm2015/ptsecurity-mosaic-button-toggle.mjs.map +1 -1
  544. package/fesm2015/ptsecurity-mosaic-button.mjs +160 -160
  545. package/fesm2015/ptsecurity-mosaic-button.mjs.map +1 -1
  546. package/fesm2015/ptsecurity-mosaic-card.mjs +96 -96
  547. package/fesm2015/ptsecurity-mosaic-card.mjs.map +1 -1
  548. package/fesm2015/ptsecurity-mosaic-checkbox.mjs +349 -348
  549. package/fesm2015/ptsecurity-mosaic-checkbox.mjs.map +1 -1
  550. package/fesm2015/ptsecurity-mosaic-core.mjs +2642 -2613
  551. package/fesm2015/ptsecurity-mosaic-core.mjs.map +1 -1
  552. package/fesm2015/ptsecurity-mosaic-datepicker.mjs +2687 -2649
  553. package/fesm2015/ptsecurity-mosaic-datepicker.mjs.map +1 -1
  554. package/fesm2015/ptsecurity-mosaic-design-tokens.mjs +2426 -2173
  555. package/fesm2015/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
  556. package/fesm2015/ptsecurity-mosaic-divider.mjs +48 -48
  557. package/fesm2015/ptsecurity-mosaic-divider.mjs.map +1 -1
  558. package/fesm2015/ptsecurity-mosaic-dl.mjs +108 -108
  559. package/fesm2015/ptsecurity-mosaic-dl.mjs.map +1 -1
  560. package/fesm2015/ptsecurity-mosaic-dropdown.mjs +1069 -1065
  561. package/fesm2015/ptsecurity-mosaic-dropdown.mjs.map +1 -1
  562. package/fesm2015/ptsecurity-mosaic-form-field.mjs +506 -506
  563. package/fesm2015/ptsecurity-mosaic-form-field.mjs.map +1 -1
  564. package/fesm2015/ptsecurity-mosaic-icon.mjs +73 -73
  565. package/fesm2015/ptsecurity-mosaic-icon.mjs.map +1 -1
  566. package/fesm2015/ptsecurity-mosaic-input.mjs +975 -975
  567. package/fesm2015/ptsecurity-mosaic-input.mjs.map +1 -1
  568. package/fesm2015/ptsecurity-mosaic-link.mjs +121 -121
  569. package/fesm2015/ptsecurity-mosaic-link.mjs.map +1 -1
  570. package/fesm2015/ptsecurity-mosaic-list.mjs +762 -763
  571. package/fesm2015/ptsecurity-mosaic-list.mjs.map +1 -1
  572. package/fesm2015/ptsecurity-mosaic-modal.mjs +824 -824
  573. package/fesm2015/ptsecurity-mosaic-modal.mjs.map +1 -1
  574. package/fesm2015/ptsecurity-mosaic-navbar.mjs +993 -995
  575. package/fesm2015/ptsecurity-mosaic-navbar.mjs.map +1 -1
  576. package/fesm2015/ptsecurity-mosaic-popover.mjs +364 -364
  577. package/fesm2015/ptsecurity-mosaic-popover.mjs.map +1 -1
  578. package/fesm2015/ptsecurity-mosaic-progress-bar.mjs +61 -61
  579. package/fesm2015/ptsecurity-mosaic-progress-bar.mjs.map +1 -1
  580. package/fesm2015/ptsecurity-mosaic-progress-spinner.mjs +65 -65
  581. package/fesm2015/ptsecurity-mosaic-progress-spinner.mjs.map +1 -1
  582. package/fesm2015/ptsecurity-mosaic-radio.mjs +464 -464
  583. package/fesm2015/ptsecurity-mosaic-radio.mjs.map +1 -1
  584. package/fesm2015/ptsecurity-mosaic-select.mjs +1203 -1205
  585. package/fesm2015/ptsecurity-mosaic-select.mjs.map +1 -1
  586. package/fesm2015/ptsecurity-mosaic-sidebar.mjs +185 -185
  587. package/fesm2015/ptsecurity-mosaic-sidebar.mjs.map +1 -1
  588. package/fesm2015/ptsecurity-mosaic-sidepanel.mjs +555 -555
  589. package/fesm2015/ptsecurity-mosaic-sidepanel.mjs.map +1 -1
  590. package/fesm2015/ptsecurity-mosaic-splitter.mjs +511 -511
  591. package/fesm2015/ptsecurity-mosaic-splitter.mjs.map +1 -1
  592. package/fesm2015/ptsecurity-mosaic-table.mjs +36 -36
  593. package/fesm2015/ptsecurity-mosaic-table.mjs.map +1 -1
  594. package/fesm2015/ptsecurity-mosaic-tabs.mjs +1460 -1460
  595. package/fesm2015/ptsecurity-mosaic-tabs.mjs.map +1 -1
  596. package/fesm2015/ptsecurity-mosaic-tags.mjs +1342 -1344
  597. package/fesm2015/ptsecurity-mosaic-tags.mjs.map +1 -1
  598. package/fesm2015/ptsecurity-mosaic-textarea.mjs +274 -274
  599. package/fesm2015/ptsecurity-mosaic-textarea.mjs.map +1 -1
  600. package/fesm2015/ptsecurity-mosaic-timepicker.mjs +718 -695
  601. package/fesm2015/ptsecurity-mosaic-timepicker.mjs.map +1 -1
  602. package/fesm2015/ptsecurity-mosaic-toggle.mjs +163 -163
  603. package/fesm2015/ptsecurity-mosaic-toggle.mjs.map +1 -1
  604. package/fesm2015/ptsecurity-mosaic-tooltip.mjs +344 -344
  605. package/fesm2015/ptsecurity-mosaic-tooltip.mjs.map +1 -1
  606. package/fesm2015/ptsecurity-mosaic-tree-select.mjs +940 -940
  607. package/fesm2015/ptsecurity-mosaic-tree-select.mjs.map +1 -1
  608. package/fesm2015/ptsecurity-mosaic-tree.mjs +1682 -1676
  609. package/fesm2015/ptsecurity-mosaic-tree.mjs.map +1 -1
  610. package/fesm2015/ptsecurity-mosaic.mjs +2 -2
  611. package/fesm2020/ptsecurity-mosaic-autocomplete.mjs +722 -722
  612. package/fesm2020/ptsecurity-mosaic-autocomplete.mjs.map +1 -1
  613. package/fesm2020/ptsecurity-mosaic-button-toggle.mjs +365 -365
  614. package/fesm2020/ptsecurity-mosaic-button-toggle.mjs.map +1 -1
  615. package/fesm2020/ptsecurity-mosaic-button.mjs +160 -160
  616. package/fesm2020/ptsecurity-mosaic-button.mjs.map +1 -1
  617. package/fesm2020/ptsecurity-mosaic-card.mjs +96 -96
  618. package/fesm2020/ptsecurity-mosaic-card.mjs.map +1 -1
  619. package/fesm2020/ptsecurity-mosaic-checkbox.mjs +347 -346
  620. package/fesm2020/ptsecurity-mosaic-checkbox.mjs.map +1 -1
  621. package/fesm2020/ptsecurity-mosaic-core.mjs +2671 -2642
  622. package/fesm2020/ptsecurity-mosaic-core.mjs.map +1 -1
  623. package/fesm2020/ptsecurity-mosaic-datepicker.mjs +2672 -2635
  624. package/fesm2020/ptsecurity-mosaic-datepicker.mjs.map +1 -1
  625. package/fesm2020/ptsecurity-mosaic-design-tokens.mjs +2426 -2173
  626. package/fesm2020/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
  627. package/fesm2020/ptsecurity-mosaic-divider.mjs +48 -48
  628. package/fesm2020/ptsecurity-mosaic-divider.mjs.map +1 -1
  629. package/fesm2020/ptsecurity-mosaic-dl.mjs +108 -108
  630. package/fesm2020/ptsecurity-mosaic-dl.mjs.map +1 -1
  631. package/fesm2020/ptsecurity-mosaic-dropdown.mjs +1056 -1052
  632. package/fesm2020/ptsecurity-mosaic-dropdown.mjs.map +1 -1
  633. package/fesm2020/ptsecurity-mosaic-form-field.mjs +491 -491
  634. package/fesm2020/ptsecurity-mosaic-form-field.mjs.map +1 -1
  635. package/fesm2020/ptsecurity-mosaic-icon.mjs +71 -71
  636. package/fesm2020/ptsecurity-mosaic-icon.mjs.map +1 -1
  637. package/fesm2020/ptsecurity-mosaic-input.mjs +964 -964
  638. package/fesm2020/ptsecurity-mosaic-input.mjs.map +1 -1
  639. package/fesm2020/ptsecurity-mosaic-link.mjs +120 -120
  640. package/fesm2020/ptsecurity-mosaic-link.mjs.map +1 -1
  641. package/fesm2020/ptsecurity-mosaic-list.mjs +755 -756
  642. package/fesm2020/ptsecurity-mosaic-list.mjs.map +1 -1
  643. package/fesm2020/ptsecurity-mosaic-modal.mjs +820 -820
  644. package/fesm2020/ptsecurity-mosaic-modal.mjs.map +1 -1
  645. package/fesm2020/ptsecurity-mosaic-navbar.mjs +977 -979
  646. package/fesm2020/ptsecurity-mosaic-navbar.mjs.map +1 -1
  647. package/fesm2020/ptsecurity-mosaic-popover.mjs +360 -360
  648. package/fesm2020/ptsecurity-mosaic-popover.mjs.map +1 -1
  649. package/fesm2020/ptsecurity-mosaic-progress-bar.mjs +61 -61
  650. package/fesm2020/ptsecurity-mosaic-progress-bar.mjs.map +1 -1
  651. package/fesm2020/ptsecurity-mosaic-progress-spinner.mjs +65 -65
  652. package/fesm2020/ptsecurity-mosaic-progress-spinner.mjs.map +1 -1
  653. package/fesm2020/ptsecurity-mosaic-radio.mjs +462 -462
  654. package/fesm2020/ptsecurity-mosaic-radio.mjs.map +1 -1
  655. package/fesm2020/ptsecurity-mosaic-select.mjs +1198 -1201
  656. package/fesm2020/ptsecurity-mosaic-select.mjs.map +1 -1
  657. package/fesm2020/ptsecurity-mosaic-sidebar.mjs +185 -185
  658. package/fesm2020/ptsecurity-mosaic-sidebar.mjs.map +1 -1
  659. package/fesm2020/ptsecurity-mosaic-sidepanel.mjs +552 -552
  660. package/fesm2020/ptsecurity-mosaic-sidepanel.mjs.map +1 -1
  661. package/fesm2020/ptsecurity-mosaic-splitter.mjs +511 -511
  662. package/fesm2020/ptsecurity-mosaic-splitter.mjs.map +1 -1
  663. package/fesm2020/ptsecurity-mosaic-table.mjs +36 -36
  664. package/fesm2020/ptsecurity-mosaic-table.mjs.map +1 -1
  665. package/fesm2020/ptsecurity-mosaic-tabs.mjs +1445 -1445
  666. package/fesm2020/ptsecurity-mosaic-tabs.mjs.map +1 -1
  667. package/fesm2020/ptsecurity-mosaic-tags.mjs +1335 -1337
  668. package/fesm2020/ptsecurity-mosaic-tags.mjs.map +1 -1
  669. package/fesm2020/ptsecurity-mosaic-textarea.mjs +272 -272
  670. package/fesm2020/ptsecurity-mosaic-textarea.mjs.map +1 -1
  671. package/fesm2020/ptsecurity-mosaic-timepicker.mjs +715 -692
  672. package/fesm2020/ptsecurity-mosaic-timepicker.mjs.map +1 -1
  673. package/fesm2020/ptsecurity-mosaic-toggle.mjs +163 -163
  674. package/fesm2020/ptsecurity-mosaic-toggle.mjs.map +1 -1
  675. package/fesm2020/ptsecurity-mosaic-tooltip.mjs +336 -336
  676. package/fesm2020/ptsecurity-mosaic-tooltip.mjs.map +1 -1
  677. package/fesm2020/ptsecurity-mosaic-tree-select.mjs +937 -938
  678. package/fesm2020/ptsecurity-mosaic-tree-select.mjs.map +1 -1
  679. package/fesm2020/ptsecurity-mosaic-tree.mjs +1669 -1663
  680. package/fesm2020/ptsecurity-mosaic-tree.mjs.map +1 -1
  681. package/fesm2020/ptsecurity-mosaic.mjs +2 -2
  682. package/form-field/cleaner.d.ts +7 -7
  683. package/form-field/form-field-control.d.ts +37 -37
  684. package/form-field/form-field-errors.d.ts +2 -2
  685. package/form-field/form-field.d.ts +69 -69
  686. package/form-field/form-field.module.d.ts +15 -15
  687. package/form-field/hint.d.ts +6 -6
  688. package/form-field/index.d.ts +1 -1
  689. package/form-field/password-hint.d.ts +40 -40
  690. package/form-field/prefix.d.ts +5 -5
  691. package/form-field/ptsecurity-mosaic-form-field.d.ts +5 -5
  692. package/form-field/public-api.d.ts +10 -10
  693. package/form-field/stepper.d.ts +11 -11
  694. package/form-field/suffix.d.ts +5 -5
  695. package/icon/icon.component.d.ts +18 -18
  696. package/icon/icon.module.d.ts +10 -10
  697. package/icon/index.d.ts +1 -1
  698. package/icon/ptsecurity-mosaic-icon.d.ts +5 -5
  699. package/icon/public-api.d.ts +2 -2
  700. package/index.d.ts +1 -1
  701. package/input/index.d.ts +1 -1
  702. package/input/input-errors.d.ts +1 -1
  703. package/input/input-number-validators.d.ts +39 -39
  704. package/input/input-number.d.ts +33 -33
  705. package/input/input-password.d.ts +121 -121
  706. package/input/input-value-accessor.d.ts +4 -4
  707. package/input/input.d.ts +116 -116
  708. package/input/input.module.d.ts +14 -14
  709. package/input/ptsecurity-mosaic-input.d.ts +5 -5
  710. package/input/public-api.d.ts +6 -6
  711. package/link/index.d.ts +1 -1
  712. package/link/link.component.d.ts +38 -38
  713. package/link/link.module.d.ts +9 -9
  714. package/link/ptsecurity-mosaic-link.d.ts +5 -5
  715. package/link/public-api.d.ts +2 -2
  716. package/list/index.d.ts +1 -1
  717. package/list/list-selection.component.d.ts +168 -168
  718. package/list/list.component.d.ts +18 -18
  719. package/list/list.module.d.ts +11 -11
  720. package/list/ptsecurity-mosaic-list.d.ts +5 -5
  721. package/list/public-api.d.ts +3 -3
  722. package/modal/README.md +33 -33
  723. package/modal/css-unit.pipe.d.ts +7 -7
  724. package/modal/index.d.ts +1 -1
  725. package/modal/modal-control.service.d.ts +20 -20
  726. package/modal/modal-ref.class.d.ts +36 -36
  727. package/modal/modal-util.d.ts +12 -12
  728. package/modal/modal.component.d.ts +126 -126
  729. package/modal/modal.directive.d.ts +17 -17
  730. package/modal/modal.module.d.ts +14 -14
  731. package/modal/modal.service.d.ts +33 -33
  732. package/modal/modal.type.d.ts +59 -59
  733. package/modal/ptsecurity-mosaic-modal.d.ts +5 -5
  734. package/modal/public-api.d.ts +6 -6
  735. package/navbar/README.md +41 -41
  736. package/navbar/index.d.ts +1 -1
  737. package/navbar/navbar-item.component.d.ts +161 -161
  738. package/navbar/navbar.component.d.ts +58 -58
  739. package/navbar/navbar.module.d.ts +14 -14
  740. package/navbar/ptsecurity-mosaic-navbar.d.ts +5 -5
  741. package/navbar/public-api.d.ts +4 -4
  742. package/navbar/vertical-navbar.animation.d.ts +2 -2
  743. package/navbar/vertical-navbar.component.d.ts +23 -23
  744. package/package.json +13 -10
  745. package/popover/README.md +32 -32
  746. package/popover/index.d.ts +1 -1
  747. package/popover/popover-animations.d.ts +4 -4
  748. package/popover/popover-confirm.component.d.ts +33 -33
  749. package/popover/popover.component.d.ts +74 -74
  750. package/popover/popover.module.d.ts +12 -12
  751. package/popover/ptsecurity-mosaic-popover.d.ts +5 -5
  752. package/popover/public-api.d.ts +4 -4
  753. package/prebuilt-themes/dark-theme.css +1 -1
  754. package/prebuilt-themes/default-theme.css +1 -1
  755. package/progress-bar/index.d.ts +1 -1
  756. package/progress-bar/progress-bar.component.d.ts +18 -18
  757. package/progress-bar/progress-bar.module.d.ts +9 -9
  758. package/progress-bar/ptsecurity-mosaic-progress-bar.d.ts +5 -5
  759. package/progress-bar/public-api.d.ts +2 -2
  760. package/progress-spinner/index.d.ts +1 -1
  761. package/progress-spinner/progress-spinner.component.d.ts +19 -19
  762. package/progress-spinner/progress-spinner.module.d.ts +9 -9
  763. package/progress-spinner/ptsecurity-mosaic-progress-spinner.d.ts +5 -5
  764. package/progress-spinner/public-api.d.ts +2 -2
  765. package/ptsecurity-mosaic.d.ts +5 -5
  766. package/public-api.d.ts +1 -1
  767. package/radio/index.d.ts +1 -1
  768. package/radio/ptsecurity-mosaic-radio.d.ts +5 -5
  769. package/radio/public-api.d.ts +2 -2
  770. package/radio/radio.component.d.ts +207 -207
  771. package/radio/radio.module.d.ts +10 -10
  772. package/schematics/README.md +35 -35
  773. package/select/index.d.ts +1 -1
  774. package/select/ptsecurity-mosaic-select.d.ts +5 -5
  775. package/select/public-api.d.ts +3 -3
  776. package/select/select-option.directive.d.ts +20 -20
  777. package/select/select.component.d.ts +307 -307
  778. package/select/select.module.d.ts +15 -15
  779. package/sidebar/index.d.ts +1 -1
  780. package/sidebar/ptsecurity-mosaic-sidebar.d.ts +5 -5
  781. package/sidebar/public-api.d.ts +2 -2
  782. package/sidebar/sidebar-animations.d.ts +8 -8
  783. package/sidebar/sidebar.component.d.ts +53 -53
  784. package/sidebar/sidebar.module.d.ts +8 -8
  785. package/sidepanel/index.d.ts +1 -1
  786. package/sidepanel/ptsecurity-mosaic-sidepanel.d.ts +5 -5
  787. package/sidepanel/public-api.d.ts +6 -6
  788. package/sidepanel/sidepanel-animations.d.ts +14 -14
  789. package/sidepanel/sidepanel-config.d.ts +25 -25
  790. package/sidepanel/sidepanel-container.component.d.ts +45 -45
  791. package/sidepanel/sidepanel-directives.d.ts +50 -50
  792. package/sidepanel/sidepanel-ref.d.ts +24 -24
  793. package/sidepanel/sidepanel.module.d.ts +15 -15
  794. package/sidepanel/sidepanel.service.d.ts +57 -57
  795. package/splitter/index.d.ts +1 -1
  796. package/splitter/ptsecurity-mosaic-splitter.d.ts +5 -5
  797. package/splitter/public-api.d.ts +2 -2
  798. package/splitter/splitter.component.d.ts +130 -130
  799. package/splitter/splitter.module.d.ts +9 -9
  800. package/table/index.d.ts +1 -1
  801. package/table/ptsecurity-mosaic-table.d.ts +5 -5
  802. package/table/public-api.d.ts +2 -2
  803. package/table/table.component.d.ts +5 -5
  804. package/table/table.module.d.ts +10 -10
  805. package/tabs/index.d.ts +1 -1
  806. package/tabs/paginated-tab-header.d.ts +179 -179
  807. package/tabs/ptsecurity-mosaic-tabs.d.ts +5 -5
  808. package/tabs/public-api.d.ts +10 -10
  809. package/tabs/tab-body.component.d.ts +95 -95
  810. package/tabs/tab-content.directive.d.ts +9 -9
  811. package/tabs/tab-group.component.d.ts +133 -133
  812. package/tabs/tab-header.component.d.ts +35 -35
  813. package/tabs/tab-label-wrapper.directive.d.ts +30 -30
  814. package/tabs/tab-label.directive.d.ts +9 -9
  815. package/tabs/tab-nav-bar/index.d.ts +1 -1
  816. package/tabs/tab-nav-bar/tab-nav-bar.d.ts +38 -38
  817. package/tabs/tab.component.d.ts +66 -66
  818. package/tabs/tabs-animations.d.ts +4 -4
  819. package/tabs/tabs.module.d.ts +20 -20
  820. package/tags/index.d.ts +1 -1
  821. package/tags/ptsecurity-mosaic-tags.d.ts +5 -5
  822. package/tags/public-api.d.ts +5 -5
  823. package/tags/tag-default-options.d.ts +8 -8
  824. package/tags/tag-input.d.ts +77 -77
  825. package/tags/tag-list.component.d.ts +240 -240
  826. package/tags/tag-text-control.d.ts +10 -10
  827. package/tags/tag.component.d.ts +135 -135
  828. package/tags/tag.module.d.ts +11 -11
  829. package/textarea/index.d.ts +1 -1
  830. package/textarea/ptsecurity-mosaic-textarea.d.ts +5 -5
  831. package/textarea/public-api.d.ts +2 -2
  832. package/textarea/textarea.component.d.ts +111 -111
  833. package/textarea/textarea.module.d.ts +11 -11
  834. package/timepicker/index.d.ts +1 -1
  835. package/timepicker/ptsecurity-mosaic-timepicker.d.ts +5 -5
  836. package/timepicker/public-api.d.ts +3 -3
  837. package/timepicker/timepicker.constants.d.ts +20 -20
  838. package/timepicker/timepicker.directive.d.ts +147 -142
  839. package/timepicker/timepicker.module.d.ts +11 -11
  840. package/toggle/index.d.ts +1 -1
  841. package/toggle/ptsecurity-mosaic-toggle.d.ts +5 -5
  842. package/toggle/public-api.d.ts +2 -2
  843. package/toggle/toggle.component.d.ts +54 -54
  844. package/toggle/toggle.module.d.ts +10 -10
  845. package/tooltip/index.d.ts +1 -1
  846. package/tooltip/ptsecurity-mosaic-tooltip.d.ts +5 -5
  847. package/tooltip/public-api.d.ts +2 -2
  848. package/tooltip/tooltip.animations.d.ts +8 -8
  849. package/tooltip/tooltip.component.d.ts +91 -91
  850. package/tooltip/tooltip.module.d.ts +9 -9
  851. package/tree/control/base-tree-control.d.ts +40 -40
  852. package/tree/control/flat-tree-control.d.ts +48 -48
  853. package/tree/control/nested-tree-control.d.ts +19 -19
  854. package/tree/control/tree-control.d.ts +44 -44
  855. package/tree/data-source/flat-data-source.d.ts +80 -80
  856. package/tree/data-source/nested-data-source.d.ts +15 -15
  857. package/tree/index.d.ts +1 -1
  858. package/tree/node.d.ts +34 -34
  859. package/tree/outlet.d.ts +9 -9
  860. package/tree/padding.directive.d.ts +45 -47
  861. package/tree/ptsecurity-mosaic-tree.d.ts +5 -5
  862. package/tree/public-api.d.ts +15 -15
  863. package/tree/toggle.d.ts +28 -28
  864. package/tree/tree-base.d.ts +97 -97
  865. package/tree/tree-errors.d.ts +25 -25
  866. package/tree/tree-option.component.d.ts +68 -68
  867. package/tree/tree-selection.component.d.ts +132 -130
  868. package/tree/tree.d.ts +6 -6
  869. package/tree/tree.module.d.ts +16 -16
  870. package/tree-select/index.d.ts +1 -1
  871. package/tree-select/ptsecurity-mosaic-tree-select.d.ts +5 -5
  872. package/tree-select/public-api.d.ts +2 -2
  873. package/tree-select/tree-select.component.d.ts +269 -269
  874. package/tree-select/tree-select.module.d.ts +14 -14
  875. package/schematics/collection.json +0 -4
  876. package/schematics/migration.json +0 -10
  877. package/schematics/ng-update/data/attribute-selectors.d.ts +0 -2
  878. package/schematics/ng-update/data/attribute-selectors.js +0 -5
  879. package/schematics/ng-update/data/attribute-selectors.js.map +0 -1
  880. package/schematics/ng-update/data/class-names.d.ts +0 -2
  881. package/schematics/ng-update/data/class-names.js +0 -5
  882. package/schematics/ng-update/data/class-names.js.map +0 -1
  883. package/schematics/ng-update/data/constructor-checks.d.ts +0 -2
  884. package/schematics/ng-update/data/constructor-checks.js +0 -5
  885. package/schematics/ng-update/data/constructor-checks.js.map +0 -1
  886. package/schematics/ng-update/data/css-selectors.d.ts +0 -2
  887. package/schematics/ng-update/data/css-selectors.js +0 -5
  888. package/schematics/ng-update/data/css-selectors.js.map +0 -1
  889. package/schematics/ng-update/data/element-selectors.d.ts +0 -2
  890. package/schematics/ng-update/data/element-selectors.js +0 -5
  891. package/schematics/ng-update/data/element-selectors.js.map +0 -1
  892. package/schematics/ng-update/data/index.d.ts +0 -10
  893. package/schematics/ng-update/data/index.js +0 -14
  894. package/schematics/ng-update/data/index.js.map +0 -1
  895. package/schematics/ng-update/data/input-names.d.ts +0 -2
  896. package/schematics/ng-update/data/input-names.js +0 -35
  897. package/schematics/ng-update/data/input-names.js.map +0 -1
  898. package/schematics/ng-update/data/method-call-checks.d.ts +0 -2
  899. package/schematics/ng-update/data/method-call-checks.js +0 -5
  900. package/schematics/ng-update/data/method-call-checks.js.map +0 -1
  901. package/schematics/ng-update/data/output-names.d.ts +0 -2
  902. package/schematics/ng-update/data/output-names.js +0 -5
  903. package/schematics/ng-update/data/output-names.js.map +0 -1
  904. package/schematics/ng-update/data/property-names.d.ts +0 -2
  905. package/schematics/ng-update/data/property-names.js +0 -5
  906. package/schematics/ng-update/data/property-names.js.map +0 -1
  907. package/schematics/ng-update/data/symbol-removal.d.ts +0 -2
  908. package/schematics/ng-update/data/symbol-removal.js +0 -5
  909. package/schematics/ng-update/data/symbol-removal.js.map +0 -1
  910. package/schematics/ng-update/index.d.ts +0 -2
  911. package/schematics/ng-update/index.js +0 -23
  912. package/schematics/ng-update/index.js.map +0 -1
  913. package/schematics/ng-update/update-9.0.0/mosaic-symbols.json +0 -255
  914. package/schematics/ng-update/update-9.0.0/secondary-entry-points-migration.d.ts +0 -7
  915. package/schematics/ng-update/update-9.0.0/secondary-entry-points-migration.js +0 -154
  916. package/schematics/ng-update/update-9.0.0/secondary-entry-points-migration.js.map +0 -1
  917. package/schematics/ng-update/upgrade-data.d.ts +0 -2
  918. package/schematics/ng-update/upgrade-data.js +0 -17
  919. package/schematics/ng-update/upgrade-data.js.map +0 -1
  920. package/schematics/tsconfig.json +0 -29
  921. package/schematics/tsconfig.lib-test.json +0 -8
  922. package/schematics/tsconfig.lib.json +0 -17
@@ -1 +1 @@
1
- {"version":3,"file":"ptsecurity-mosaic-modal.mjs","sources":["../../../packages/mosaic/modal/modal-ref.class.ts","../../../packages/mosaic/modal/modal-util.ts","../../../packages/mosaic/modal/modal.type.ts","../../../packages/mosaic/modal/modal-control.service.ts","../../../packages/mosaic/modal/modal.directive.ts","../../../packages/mosaic/modal/css-unit.pipe.ts","../../../packages/mosaic/modal/modal.component.ts","../../../packages/mosaic/modal/modal.component.html","../../../packages/mosaic/modal/modal.service.ts","../../../packages/mosaic/modal/modal.module.ts","../../../packages/mosaic/modal/ptsecurity-mosaic-modal.ts"],"sourcesContent":["import { Observable } from 'rxjs';\n\nimport { McModalComponent } from './modal.component';\n\n\n/**\n * API class that public to users to handle the modal instance.\n * McModalRef is aim to avoid accessing to the modal instance directly by users.\n */\n// tslint:disable-next-line:naming-convention\nexport abstract class McModalRef<T = any, R = any> {\n abstract afterOpen: Observable<void>;\n abstract afterClose: Observable<R>;\n\n abstract open(): void;\n\n abstract close(result?: R): void;\n\n abstract destroy(result?: R): void;\n\n /**\n * Trigger the mcOnOk/mcOnCancel by manual\n */\n abstract triggerOk(): void;\n\n abstract triggerCancel(): void;\n\n // /**\n // * Return the ComponentRef of mcContent when specify mcContent as a Component\n // * Note: this method may return undefined if the Component has not ready yet.\n // (it only available after Modal's ngOnInit)\n // */\n // abstract getContentComponentRef(): ComponentRef<{}>;\n\n /**\n * Return the component instance of mcContent when specify mcContent as a Component\n * Note: this method may return undefined if the Component has not ready yet.\n * (it only available after Modal's ngOnInit)\n */\n abstract getContentComponent(): T;\n\n /**\n * Get the dom element of this Modal\n */\n abstract getElement(): HTMLElement;\n\n /**\n * Get the instance of the Modal itself\n */\n abstract getInstance(): McModalComponent;\n\n /**\n * Call markForCheck for change detector\n */\n abstract markForCheck();\n}\n","export interface IClickPosition {\n x: number;\n y: number;\n}\n\nexport class ModalUtil {\n private lastPosition: IClickPosition;\n\n constructor(private document: Document) {\n this.lastPosition = {x: -1, y: -1};\n this.listenDocumentClick();\n }\n\n getLastClickPosition(): IClickPosition {\n return this.lastPosition;\n }\n\n listenDocumentClick(): void {\n this.document.addEventListener('click', (event: MouseEvent) => {\n this.lastPosition = {x: event.clientX, y: event.clientY};\n });\n }\n}\n\nexport const modalUtilObject = new ModalUtil(document);\n","import { OverlayRef } from '@angular/cdk/overlay';\nimport { EventEmitter, TemplateRef, Type } from '@angular/core';\n\n\nexport type OnClickCallback<T> = ((instance: T) => (false | void | {}) | Promise<false | void | {}>);\n\n// Different modal styles we have supported\nexport type ModalType = 'default' | 'confirm' | 'custom';\n\n// Subtypes of Confirm Modal\nexport type ConfirmType = 'confirm' | 'success' | 'warn';\n\nexport enum ModalSize {\n Small = 'small',\n Normal = 'normal',\n Large = 'large'\n}\n\n// Public options for using by service\nexport interface IModalOptions<T = any, R = any> {\n mcModalType?: ModalType;\n mcVisible?: boolean;\n mcZIndex?: number;\n mcWidth?: number | string;\n mcSize?: ModalSize;\n mcWrapClassName?: string;\n mcClassName?: string;\n mcStyle?: object;\n mcTitle?: string | TemplateRef<{}>;\n mcContent?: string | TemplateRef<{}> | Type<T>;\n mcComponent?: Type<T>; // The instance of component opened into the dialog.\n mcComponentParams?: Partial<T>;\n mcClosable?: boolean;\n mcMask?: boolean;\n mcMaskClosable?: boolean;\n mcMaskStyle?: object;\n mcBodyStyle?: object;\n mcFooter?: string | TemplateRef<{}> | IModalButtonOptions<T>[]; // Default Modal ONLY\n mcGetContainer?: HTMLElement | OverlayRef | (() => HTMLElement | OverlayRef) | null; // STATIC\n mcAfterOpen?: EventEmitter<void>;\n mcAfterClose?: EventEmitter<R>;\n mcCloseByESC?: boolean;\n\n // --- Predefined OK & Cancel buttons\n mcOkText?: string;\n mcOkType?: string;\n mcOkLoading?: boolean;\n mcOnOk?: EventEmitter<T> | OnClickCallback<T>;\n mcCancelText?: string;\n mcCancelLoading?: boolean;\n mcOnCancel?: EventEmitter<T> | OnClickCallback<T>;\n}\n\n// tslint:disable-next-line:no-any\nexport interface IModalOptionsForService<T = any> extends IModalOptions<T> {\n mcOnOk?: OnClickCallback<T>;\n mcOnCancel?: OnClickCallback<T>;\n}\n\nexport interface IModalButtonOptions<T = any> {\n label: string;\n // tslint:disable-next-line\n type?: string;\n shape?: string;\n ghost?: boolean;\n size?: string;\n // Default: true, indicate whether show loading automatically while onClick returned a Promise\n autoLoading?: boolean;\n\n // [NOTE] \"componentInstance\" will refer to the component's instance when using Component\n show?: boolean | ((this: IModalButtonOptions<T>, contentComponentInstance?: T) => boolean);\n loading?: boolean | ((this: IModalButtonOptions<T>, contentComponentInstance?: T) => boolean);\n disabled?: boolean | ((this: IModalButtonOptions<T>, contentComponentInstance?: T) => boolean);\n\n autoFocus?: boolean;\n mcModalMainAction?: boolean;\n\n onClick?(this: IModalButtonOptions<T>, contentComponentInstance?: T): (void | {}) | Promise<(void | {})>;\n}\n","import { Injectable, Optional, SkipSelf } from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\n\nimport { McModalComponent } from '.';\nimport { McModalRef } from './modal-ref.class';\n\n\ninterface IRegisteredMeta {\n modalRef: McModalRef;\n afterOpenSubscription: Subscription;\n afterCloseSubscription: Subscription;\n}\n\n@Injectable()\nexport class McModalControlService {\n // Track singleton afterAllClose through over the injection tree\n get afterAllClose(): Subject<void> {\n return this.parentService ? this.parentService.afterAllClose : this.rootAfterAllClose;\n }\n\n // Track singleton openModals array through over the injection tree\n get openModals(): McModalRef[] {\n return this.parentService ? this.parentService.openModals : this.rootOpenModals;\n }\n\n // @ts-ignore\n private rootOpenModals: McModalRef[] = this.parentService ? null : [];\n // @ts-ignore\n private rootAfterAllClose: Subject<void> = this.parentService ? null : new Subject<void>();\n // @ts-ignore\n private rootRegisteredMetaMap: Map<McModalRef, IRegisteredMeta> = this.parentService ? null : new Map();\n\n // Registered modal for later usage\n private get registeredMetaMap(): Map<McModalRef, IRegisteredMeta> {\n return this.parentService ? this.parentService.registeredMetaMap : this.rootRegisteredMetaMap;\n }\n\n constructor(\n @Optional() @SkipSelf() private parentService: McModalControlService) {\n }\n\n // Register a modal to listen its open/close\n registerModal(modalRef: McModalRef): void {\n if (!this.hasRegistered(modalRef)) {\n const afterOpenSubscription = modalRef.afterOpen.subscribe(() => this.openModals.push(modalRef));\n const afterCloseSubscription = modalRef.afterClose.subscribe(() => this.removeOpenModal(modalRef));\n\n this.registeredMetaMap.set(modalRef, {modalRef, afterOpenSubscription, afterCloseSubscription});\n\n this.handleMultipleMasks(modalRef);\n }\n }\n\n hasRegistered(modalRef: McModalRef): boolean {\n return this.registeredMetaMap.has(modalRef);\n }\n\n // Close all registered opened modals\n closeAll(): void {\n let i = this.openModals.length;\n\n while (i--) {\n this.openModals[i].close();\n }\n }\n\n private removeOpenModal(modalRef: McModalRef): void {\n const index = this.openModals.indexOf(modalRef);\n\n if (index > -1) {\n this.openModals.splice(index, 1);\n\n if (!this.openModals.length) {\n this.afterAllClose.next();\n }\n }\n }\n\n private handleMultipleMasks(modalRef: McModalRef) {\n const modals = Array.from(this.registeredMetaMap.values()).map((v) => v.modalRef) as McModalComponent[];\n\n if (modals.filter((modal) => modal.mcVisible).length > 1) {\n const otherModals = modals.splice(0, modals.length - 1)\n .filter((modal) => modal.mcVisible && modal.mcMask);\n\n // hide other masks\n setTimeout(() => {\n otherModals.forEach((modal) => {\n modal.getInstance().mcMask = false;\n modal.markForCheck();\n });\n });\n\n // show other masks on close\n modalRef.afterClose.subscribe(() => {\n otherModals.forEach((modal) => {\n modal.getInstance().mcMask = true;\n modal.markForCheck();\n });\n });\n }\n }\n}\n","import { Directive } from '@angular/core';\n\n\n@Directive({\n selector: `[mc-modal-title], mc-modal-title, [mcModalTitle]`,\n host: {\n class: 'mc-modal-header mc-modal-title'\n }\n})\nexport class McModalTitle {}\n\n@Directive({\n selector: `[mc-modal-body], mc-modal-body, [mcModalBody]`,\n host: {\n class: 'mc-modal-body'\n }\n})\nexport class McModalBody {}\n\n@Directive({\n selector: `[mc-modal-footer], mc-modal-footer, [mcModalFooter]`,\n host: {\n class: 'mc-modal-footer'\n }\n})\nexport class McModalFooter {}\n\n@Directive({\n selector: `[mc-modal-main-action]`\n})\nexport class McModalMainAction {}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n\n@Pipe({\n name: 'toCssUnit'\n})\nexport class CssUnitPipe implements PipeTransform {\n transform(value: number | string, defaultUnit: string = 'px'): string {\n const formatted = +value;\n\n return isNaN(formatted) ? `${value}` : `${formatted}${defaultUnit}`;\n }\n}\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { DOCUMENT } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n ComponentRef,\n ElementRef,\n EventEmitter,\n Inject,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n Type,\n ViewChild,\n ViewChildren,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { ESCAPE, ENTER } from '@ptsecurity/cdk/keycodes';\nimport { ThemePalette } from '@ptsecurity/mosaic/core';\nimport { Observable } from 'rxjs';\n\nimport { McModalControlService } from './modal-control.service';\nimport { McModalRef } from './modal-ref.class';\nimport { modalUtilObject as ModalUtil } from './modal-util';\nimport { IModalButtonOptions, IModalOptions, ModalSize, ModalType, OnClickCallback } from './modal.type';\n\n\n// Duration when perform animations (ms)\nexport const MODAL_ANIMATE_DURATION = 200;\n\ntype AnimationState = 'enter' | 'leave' | null;\n\n\n@Component({\n selector: 'mc-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '(keydown)': 'onKeyDown($event)'\n }\n})\nexport class McModalComponent<T = any, R = any> extends McModalRef<T, R>\n implements OnInit, OnChanges, AfterViewInit, OnDestroy, IModalOptions {\n\n themePalette = ThemePalette;\n\n @Input() mcModalType: ModalType = 'default';\n\n // The instance of component opened into the dialog.\n @Input() mcComponent: Type<T>;\n // If not specified, will use <ng-content>\n @Input() mcContent: string | TemplateRef<{}> | Type<T>;\n // available when mcContent is a component\n @Input() mcComponentParams: T;\n // Default Modal ONLY\n @Input() mcFooter: string | TemplateRef<{}> | IModalButtonOptions<T>[];\n\n @Input()\n get mcVisible() { return this._mcVisible; }\n set mcVisible(value) { this._mcVisible = value; }\n\n private _mcVisible = false;\n\n @Output() mcVisibleChange = new EventEmitter<boolean>();\n\n @Input() mcZIndex: number = 1000;\n @Input() mcWidth: number | string;\n @Input() mcSize: ModalSize = ModalSize.Normal;\n @Input() mcWrapClassName: string;\n @Input() mcClassName: string;\n @Input() mcStyle: object;\n @Input() mcTitle: string | TemplateRef<{}>;\n @Input() mcCloseByESC: boolean = true;\n\n @Input()\n get mcClosable() { return this._mcClosable; }\n set mcClosable(value) { this._mcClosable = value; }\n private _mcClosable = true;\n\n @Input()\n get mcMask() { return this._mcMask; }\n set mcMask(value) { this._mcMask = value; }\n private _mcMask = true;\n\n @Input()\n get mcMaskClosable() { return this._mcMaskClosable; }\n set mcMaskClosable(value) { this._mcMaskClosable = value; }\n private _mcMaskClosable = false;\n\n @Input() mcMaskStyle: object;\n @Input() mcBodyStyle: object;\n\n // Trigger when modal open(visible) after animations\n @Output() mcAfterOpen = new EventEmitter<void>();\n // Trigger when modal leave-animation over\n @Output() mcAfterClose = new EventEmitter<R>();\n\n // --- Predefined OK & Cancel buttons\n @Input() mcOkText: string;\n @Input() mcOkType = 'primary';\n\n @Input()\n get mcOkLoading() { return this._mcOkLoading; }\n set mcOkLoading(value) { this._mcOkLoading = value; }\n private _mcOkLoading = false;\n\n @Input() @Output() mcOnOk: EventEmitter<T> | OnClickCallback<T> = new EventEmitter<T>();\n @Input() mcCancelText: string;\n\n @Input()\n get mcCancelLoading() { return this._mcCancelLoading; }\n set mcCancelLoading(value) { this._mcCancelLoading = value; }\n private _mcCancelLoading = false;\n\n @Input() @Output() mcOnCancel: EventEmitter<T> | OnClickCallback<T> = new EventEmitter<T>();\n\n @ViewChild('modalContainer', { static: true }) modalContainer: ElementRef;\n @ViewChild('bodyContainer', { read: ViewContainerRef, static: false }) bodyContainer: ViewContainerRef;\n // Only aim to focus the ok button that needs to be auto focused\n @ViewChildren('autoFocusedButton', { read: ElementRef }) autoFocusedButtons: QueryList<ElementRef>;\n\n @ViewChild('modalBody') modalBody: ElementRef;\n\n isTopOverflow: boolean = false;\n isBottomOverflow: boolean = false;\n\n maskAnimationClassMap: object;\n modalAnimationClassMap: object;\n // The origin point that animation based on\n transformOrigin = '0px 0px 0px';\n\n // Observable alias for mcAfterOpen\n get afterOpen(): Observable<void> {\n return this.mcAfterOpen.asObservable();\n }\n\n // Observable alias for mcAfterClose\n get afterClose(): Observable<R> {\n return this.mcAfterClose.asObservable();\n }\n\n get okText(): string {\n return this.mcOkText;\n }\n\n get cancelText(): string {\n return this.mcCancelText;\n }\n\n // Indicate whether this dialog should hidden\n get hidden(): boolean {\n return !this.mcVisible && !this.animationState;\n }\n\n // Handle the reference when using mcContent as Component\n private contentComponentRef: ComponentRef<T>;\n // Current animation state\n private animationState: AnimationState;\n private container: HTMLElement | OverlayRef;\n\n constructor(\n private overlay: Overlay,\n private renderer: Renderer2,\n private cfr: ComponentFactoryResolver,\n private elementRef: ElementRef,\n private viewContainer: ViewContainerRef,\n private modalControl: McModalControlService,\n private changeDetector: ChangeDetectorRef,\n @Inject(DOCUMENT) private document: any\n ) {\n super();\n }\n\n @Input() mcGetContainer: HTMLElement | OverlayRef | (() => HTMLElement | OverlayRef) = () => this.overlay.create();\n\n ngOnInit() {\n // Create component along without View\n if (this.isComponent(this.mcContent)) {\n this.createDynamicComponent(this.mcContent as Type<T>);\n }\n\n // Setup default button options\n if (this.isModalButtons(this.mcFooter)) {\n this.mcFooter = this.formatModalButtons(this.mcFooter as IModalButtonOptions<T>[]);\n }\n\n if (this.isComponent(this.mcComponent)) {\n this.createDynamicComponent(this.mcComponent);\n }\n\n // Place the modal dom to elsewhere\n this.container = typeof this.mcGetContainer === 'function' ? this.mcGetContainer() : this.mcGetContainer;\n if (this.container instanceof HTMLElement) {\n this.container.appendChild(this.elementRef.nativeElement);\n } else if (this.container instanceof OverlayRef) {\n // NOTE: only attach the dom to overlay, the view container is not changed actually\n this.container.overlayElement.appendChild(this.elementRef.nativeElement);\n }\n\n // Register modal when afterOpen/afterClose is stable\n this.modalControl.registerModal(this);\n }\n\n // [NOTE] NOT available when using by service!\n // Because ngOnChanges never be called when using by service,\n // here we can't support \"mcContent\"(Component) etc. as inputs that initialized dynamically.\n // BUT: User also can change \"mcContent\" dynamically to trigger UI changes\n // (provided you don't use \bComponent that needs initializations)\n ngOnChanges(changes: SimpleChanges) {\n if (changes.mcVisible) {\n // Do not trigger animation while initializing\n this.handleVisibleStateChange(this.mcVisible, !changes.mcVisible.firstChange);\n }\n }\n\n ngAfterViewInit() {\n // If using Component, it is the time to attach View while bodyContainer is ready\n if (this.contentComponentRef) {\n this.bodyContainer.insert(this.contentComponentRef.hostView);\n }\n this.getElement().getElementsByTagName('button')[0]?.focus();\n\n for (const autoFocusedButton of this.autoFocusedButtons.toArray()) {\n if (autoFocusedButton.nativeElement.autofocus) {\n (autoFocusedButton.nativeElement as HTMLButtonElement).focus();\n\n break;\n }\n }\n\n this.checkOverflow();\n }\n\n ngOnDestroy() {\n if (this.container instanceof OverlayRef) {\n this.container.dispose();\n }\n }\n\n checkOverflow(): void {\n const nativeElement = this.modalBody?.nativeElement;\n\n if (!nativeElement) { return; }\n\n const scrollTop: number = nativeElement.scrollTop;\n const offsetHeight: number = nativeElement.offsetHeight;\n const scrollHeight: number = nativeElement.scrollHeight;\n\n this.isTopOverflow = scrollTop > 0;\n\n this.isBottomOverflow = (scrollTop as number + offsetHeight as number) < scrollHeight;\n }\n\n open() {\n this.changeVisibleFromInside(true);\n }\n\n close(result?: R) {\n this.changeVisibleFromInside(false, result);\n }\n\n // Destroy equals Close\n destroy(result?: R) {\n this.close(result);\n }\n\n markForCheck() {\n this.changeDetector.markForCheck();\n }\n\n triggerOk() {\n this.onClickOkCancel('ok');\n }\n\n triggerCancel() {\n this.onClickOkCancel('cancel');\n }\n\n getInstance(): McModalComponent {\n return this;\n }\n\n getContentComponentRef(): ComponentRef<T> {\n return this.contentComponentRef;\n }\n\n getContentComponent(): T {\n return this.contentComponentRef && this.contentComponentRef.instance;\n }\n\n getElement(): HTMLElement {\n return this.elementRef && this.elementRef.nativeElement;\n }\n\n getMcFooter(): HTMLElement {\n return this.getElement().getElementsByClassName('mc-modal-footer').item(0) as HTMLElement;\n }\n\n onClickMask($event: MouseEvent) {\n if (\n this.mcMask &&\n this.mcMaskClosable &&\n ($event.target as HTMLElement).classList.contains('mc-modal-wrap') &&\n this.mcVisible\n ) {\n this.onClickOkCancel('cancel');\n }\n }\n\n // tslint:disable-next-line: no-reserved-keywords\n isModalType(type: ModalType): boolean {\n return this.mcModalType === type;\n }\n\n onKeyDown(event: KeyboardEvent): void {\n\n // tslint:disable-next-line:deprecation .key isn't supported in Edge\n if (event.keyCode === ESCAPE && this.container && (this.container instanceof OverlayRef)) {\n\n this.close();\n event.preventDefault();\n }\n // tslint:disable-next-line:deprecation .key isn't supported in Edge\n if (event.ctrlKey && event.keyCode === ENTER) {\n if (this.mcModalType === 'confirm') {\n this.triggerOk();\n }\n\n (this.getElement().querySelector('[mc-modal-main-action]') as HTMLElement)?.click();\n\n event.preventDefault();\n }\n }\n\n // AoT\n onClickCloseBtn() {\n if (this.mcVisible) {\n this.onClickOkCancel('cancel');\n }\n }\n\n // AoT\n // tslint:disable-next-line: no-reserved-keywords\n onClickOkCancel(type: 'ok' | 'cancel') {\n const trigger = { ok: this.mcOnOk, cancel: this.mcOnCancel }[type];\n const loadingKey = { ok: 'mcOkLoading', cancel: 'mcCancelLoading' }[type];\n\n if (trigger instanceof EventEmitter) {\n trigger.emit(this.getContentComponent());\n } else if (typeof trigger === 'function') {\n\n const result = trigger(this.getContentComponent());\n // Users can return \"false\" to prevent closing by default\n const caseClose = (doClose: boolean | void | {}) => (doClose !== false) && this.close(doClose as R);\n\n if (isPromise(result)) {\n this[loadingKey] = true;\n const handleThen = (doClose) => {\n this[loadingKey] = false;\n caseClose(doClose);\n };\n (result as Promise<void>).then(handleThen).catch(handleThen);\n } else {\n caseClose(result);\n }\n }\n }\n\n // AoT\n isNonEmptyString(value: {}): boolean {\n return typeof value === 'string' && value !== '';\n }\n\n // AoT\n isTemplateRef(value: {}): boolean {\n return value instanceof TemplateRef;\n }\n\n // AoT\n isComponent(value: {}): boolean {\n return value instanceof Type;\n }\n\n // AoT\n isModalButtons(value: {}): boolean {\n return Array.isArray(value) && value.length > 0;\n }\n\n // Lookup a button's property, if the prop is a function, call & then return the result, otherwise, return itself.\n // AoT\n getButtonCallableProp(options: IModalButtonOptions<T>, prop: string): {} {\n const value = options[prop];\n const args: any[] = [];\n if (this.contentComponentRef) {\n args.push(this.contentComponentRef.instance);\n }\n\n return typeof value === 'function' ? value.apply(options, args) : value;\n }\n\n // On mcFooter's modal button click\n // AoT\n onButtonClick(button: IModalButtonOptions<T>) {\n // Call onClick directly\n // tslint:disable-next-line:no-inferred-empty-object-type rule seems to be broken\n const result = this.getButtonCallableProp(button, 'onClick');\n if (isPromise(result)) {\n button.loading = true;\n (result as Promise<{}>).then(() => button.loading = false).catch(() => button.loading = false);\n }\n }\n\n // Do rest things when visible state changed\n private handleVisibleStateChange(visible: boolean, animation: boolean = true, closeResult?: R): Promise<any> {\n // Hide scrollbar at the first time when shown up\n if (visible) {\n this.changeBodyOverflow(1);\n }\n\n return Promise\n .resolve(animation && this.animateTo(visible))\n // Emit open/close event after animations over\n .then(() => {\n if (visible) {\n this.mcAfterOpen.emit();\n } else {\n this.mcAfterClose.emit(closeResult);\n // Show/hide scrollbar when animation is over\n this.changeBodyOverflow();\n }\n });\n }\n\n // Change mcVisible from inside\n private changeVisibleFromInside(visible: boolean, closeResult?: R): Promise<void> {\n if (this.mcVisible !== visible) {\n // Change mcVisible value immediately\n this.mcVisible = visible;\n this.mcVisibleChange.emit(visible);\n\n return this.handleVisibleStateChange(visible, true, closeResult);\n }\n\n return Promise.resolve();\n }\n\n private changeAnimationState(state: AnimationState) {\n this.animationState = state;\n if (state) {\n this.maskAnimationClassMap = {\n [`fade-${state}`]: true,\n [`fade-${state}-active`]: true\n };\n\n this.modalAnimationClassMap = {\n [`zoom-${state}`]: true,\n [`zoom-${state}-active`]: true\n };\n } else {\n // @ts-ignore\n this.maskAnimationClassMap = this.modalAnimationClassMap = null;\n }\n\n if (this.contentComponentRef) {\n this.contentComponentRef.changeDetectorRef.markForCheck();\n } else {\n this.changeDetector.markForCheck();\n }\n }\n\n private animateTo(isVisible: boolean): Promise<any> {\n // Figure out the lastest click position when shows up\n if (isVisible) {\n // [NOTE] Using timeout due to the document.click event is fired later than visible change,\n // so if not postponed to next event-loop, we can't get the lastest click position\n window.setTimeout(() => this.updateTransformOrigin());\n }\n\n this.changeAnimationState(isVisible ? 'enter' : 'leave');\n\n // Return when animation is over\n return new Promise((resolve) => {\n return window.setTimeout(\n () => {\n this.changeAnimationState(null);\n resolve(null);\n },\n MODAL_ANIMATE_DURATION\n );\n });\n }\n\n private formatModalButtons(buttons: IModalButtonOptions<T>[]): IModalButtonOptions<T>[] {\n return buttons.map((button) => {\n\n return {\n ...{\n type: 'default',\n size: 'default',\n autoLoading: true,\n show: true,\n loading: false,\n disabled: false\n },\n ...button\n };\n });\n }\n\n /**\n * Create a component dynamically but not attach to any View\n * (this action will be executed when bodyContainer is ready)\n * @param component Component class\n */\n private createDynamicComponent(component: Type<T>) {\n const factory = this.cfr.resolveComponentFactory(component);\n const childInjector = Injector.create({\n providers: [{provide: McModalRef, useValue: this}],\n parent: this.viewContainer.injector\n });\n\n this.contentComponentRef = factory.create(childInjector);\n\n if (this.mcComponentParams) {\n Object.assign(this.contentComponentRef.instance, this.mcComponentParams);\n }\n\n // Do the first change detection immediately\n // (or we do detection at ngAfterViewInit, multi-changes error will be thrown)\n this.contentComponentRef.changeDetectorRef.detectChanges();\n }\n\n // Update transform-origin to the last click position on document\n private updateTransformOrigin() {\n const modalElement = this.modalContainer.nativeElement as HTMLElement;\n const lastPosition = ModalUtil.getLastClickPosition();\n\n if (lastPosition) {\n this.transformOrigin = `${lastPosition.x - modalElement.offsetLeft}px ${lastPosition.y - modalElement.offsetTop}px 0px`;\n }\n }\n\n /**\n * Take care of the body's overflow to decide the existense of scrollbar\n * @param plusNum The number that the openModals.length will increase soon\n */\n private changeBodyOverflow(plusNum: number = 0) {\n const openModals = this.modalControl.openModals;\n\n if (openModals.length + plusNum > 0) {\n this.renderer.setStyle(this.document.body, 'overflow', 'hidden');\n } else {\n this.renderer.removeStyle(this.document.body, 'overflow');\n }\n }\n}\n\n////////////\n\nfunction isPromise(obj: {} | void): boolean {\n // tslint:disable-next-line: no-unbound-method\n return !!obj &&\n (typeof obj === 'object' || typeof obj === 'function') &&\n typeof (obj as Promise<{}>).then === 'function' &&\n typeof (obj as Promise<{}>).catch === 'function';\n}\n","<!-- Compatible: the <ng-content> can appear only once -->\n<ng-template #tplOriginContent>\n <ng-content></ng-content>\n</ng-template>\n\n<div>\n <div *ngIf=\"mcMask\"\n class=\"mc-modal-mask\"\n [ngClass]=\"maskAnimationClassMap\"\n [class.mc-modal-mask-hidden]=\"hidden\"\n [ngStyle]=\"mcMaskStyle\"\n [style.zIndex]=\"mcZIndex\"\n ></div>\n <div (mousedown)=\"onClickMask($event)\"\n class=\"mc-modal-wrap {{ mcWrapClassName }}\"\n [style.zIndex]=\"mcZIndex\"\n [style.display]=\"hidden ? 'none' : ''\"\n tabindex=\"-1\">\n\n <div #modalContainer\n class=\"mc-modal {{ mcClassName }} mc-modal_{{ mcSize }}\"\n [ngClass]=\"modalAnimationClassMap\"\n [ngStyle]=\"mcStyle\"\n [style.width]=\"mcWidth | toCssUnit\"\n [style.transform-origin]=\"transformOrigin\">\n\n <div class=\"mc-modal-content\" cdkTrapFocus>\n <button *ngIf=\"mcClosable\"\n mc-button\n (click)=\"onClickCloseBtn()\"\n class=\"mc-modal-close mc-button_transparent\">\n <i mc-icon=\"mc-close-L_16\" class=\"mc-icon mc-icon_light\" [color]=\"themePalette.Second\"></i>\n </button>\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isModalType('default')\"\n [ngTemplateOutlet]=\"tplContentDefault\"></ng-container>\n <ng-container *ngSwitchCase=\"isModalType('confirm')\"\n [ngTemplateOutlet]=\"tplContentConfirm\"></ng-container>\n <ng-container *ngSwitchCase=\"isModalType('custom')\"\n [ngTemplateOutlet]=\"tplContentCustom\"></ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #tplContentCustom>\n <ng-container #bodyContainer></ng-container>\n</ng-template>\n\n\n<!-- [Predefined] Default Modal Content -->\n<ng-template #tplContentDefault>\n <div *ngIf=\"mcTitle\" class=\"mc-modal-header\" [class.mc-modal-body_top-overflow]=\"isTopOverflow\">\n <div class=\"mc-modal-title\">\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(mcTitle)\" [ngTemplateOutlet]=\"$any(mcTitle)\"></ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(mcTitle)\">\n <div [innerHTML]=\"mcTitle\"></div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div class=\"mc-modal-body\" #modalBody [ngStyle]=\"mcBodyStyle\" (scroll)=\"checkOverflow()\">\n <ng-container #bodyContainer>\n <ng-container *ngIf=\"!isComponent(mcContent)\" [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(mcContent)\" [ngTemplateOutlet]=\"$any(mcContent)\"></ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(mcContent)\">\n <div [innerHTML]=\"mcContent\"></div>\n </ng-container>\n <ng-container *ngSwitchDefault [ngTemplateOutlet]=\"tplOriginContent\"></ng-container>\n </ng-container>\n </ng-container>\n </div>\n <div *ngIf=\"mcFooter || mcOkText || mcCancelText\" class=\"mc-modal-footer\" [class.mc-modal-body_bottom-overflow]=\"isBottomOverflow\">\n <ng-container [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(mcFooter)\" [ngTemplateOutlet]=\"$any(mcFooter)\"></ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(mcFooter)\">\n <div [innerHTML]=\"mcFooter\"></div>\n </ng-container>\n <ng-container *ngSwitchCase=\"isModalButtons(mcFooter)\">\n <ng-container *ngFor=\"let button of $any(mcFooter)\">\n <button\n mc-button\n #autoFocusedButton\n [attr.autofocus]=\"button.autoFocus\"\n [attr.mc-modal-main-action]=\"button.mcModalMainAction\"\n *ngIf=\"getButtonCallableProp(button, 'show')\"\n [disabled]=\"getButtonCallableProp(button, 'disabled')\"\n [class.mc-progress]=\"getButtonCallableProp(button, 'loading')\"\n (click)=\"onButtonClick(button)\"\n [color]=\"button.type\">\n {{ button.label }}\n </button>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <button\n #autoFocusedButton\n [attr.autofocus]=\"true\"\n *ngIf=\"mcOkText\"\n mc-button\n [color]=\"themePalette.Primary\"\n (click)=\"onClickOkCancel('ok')\">\n\n {{ okText }}\n </button>\n <button *ngIf=\"mcCancelText\" mc-button (click)=\"onClickOkCancel('cancel')\">\n {{ cancelText }}\n </button>\n </ng-container>\n </ng-container>\n </div>\n</ng-template>\n<!-- /[Predefined] Default Modal Content -->\n\n<!-- [Predefined] Confirm Modal Content -->\n<ng-template #tplContentConfirm>\n <div class=\"mc-modal-body\" [ngStyle]=\"mcBodyStyle\">\n <div class=\"mc-confirm-body-wrapper\">\n <div class=\"mc-confirm-body\">\n <div class=\"mc-confirm-content\">\n <ng-container #bodyContainer>\n <ng-container *ngIf=\"!isComponent(mcContent)\" [ngSwitch]=\"true\">\n <ng-container *ngSwitchCase=\"isTemplateRef(mcContent)\"\n [ngTemplateOutlet]=\"$any(mcContent)\">\n </ng-container>\n <ng-container *ngSwitchCase=\"isNonEmptyString(mcContent)\">\n <div [innerHTML]=\"mcContent\"></div>\n </ng-container>\n <ng-container *ngSwitchDefault [ngTemplateOutlet]=\"tplOriginContent\"></ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </div> <!-- /.mc-confirm-body-wrapper -->\n </div>\n <div class=\"mc-confirm-btns\" *ngIf=\"mcOkText || mcCancelText\">\n <button\n mc-button\n #autoFocusedButton\n [color]=\"mcOkType\"\n [attr.autofocus]=\"true\"\n *ngIf=\"mcOkText\"\n (click)=\"onClickOkCancel('ok')\">\n\n {{ okText }}\n </button>\n\n <button mc-button [color]=\"themePalette.Second\" *ngIf=\"mcCancelText\" (click)=\"onClickOkCancel('cancel')\">\n {{ cancelText }}\n </button>\n </div>\n</ng-template>\n<!-- /[Predefined] Confirm Modal Content -->\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ComponentRef, Injectable } from '@angular/core';\nimport { ESCAPE } from '@ptsecurity/cdk/keycodes';\nimport { Observable } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { McModalControlService } from './modal-control.service';\nimport { McModalRef } from './modal-ref.class';\nimport { McModalComponent } from './modal.component';\nimport { ConfirmType, IModalOptions, IModalOptionsForService } from './modal.type';\n\n\n// A builder used for managing service creating modals\nexport class ModalBuilderForService {\n // Modal ComponentRef, \"null\" means it has been destroyed\n private modalRef: ComponentRef<McModalComponent> | null;\n private overlayRef: OverlayRef;\n\n constructor(private overlay: Overlay, options: IModalOptionsForService = {}) {\n this.createModal();\n\n if (!('mcGetContainer' in options)) {\n options.mcGetContainer = undefined;\n }\n\n this.changeProps(options);\n this.modalRef!.instance.open();\n this.modalRef!.instance.mcAfterClose.subscribe(() => this.destroyModal());\n\n this.overlayRef.keydownEvents()\n // @ts-ignore\n .pipe(filter((event: KeyboardEvent) => {\n // tslint:disable-next-line:deprecation replacement .key isn't supported in Edge\n return event.keyCode === ESCAPE && options.mcCloseByESC;\n }))\n .subscribe(() => this.modalRef!.instance.close());\n }\n\n getInstance(): McModalComponent | null {\n return this.modalRef && this.modalRef.instance;\n }\n\n destroyModal(): void {\n if (this.modalRef) {\n this.overlayRef.dispose();\n this.modalRef = null;\n }\n }\n\n private changeProps(options: IModalOptions): void {\n if (this.modalRef) {\n // here not limit user's inputs at runtime\n Object.assign(this.modalRef.instance, options);\n }\n }\n\n // Create component to ApplicationRef\n private createModal(): void {\n this.overlayRef = this.overlay.create();\n this.modalRef = this.overlayRef.attach(new ComponentPortal(McModalComponent));\n }\n}\n\n@Injectable()\nexport class McModalService {\n // Track of the current close modals (we assume invisible is close this time)\n get openModals(): McModalRef[] {\n return this.modalControl.openModals;\n }\n\n get afterAllClose(): Observable<void> {\n return this.modalControl.afterAllClose.asObservable();\n }\n\n constructor(\n private overlay: Overlay,\n private modalControl: McModalControlService\n ) {}\n\n // Closes all of the currently-open dialogs\n closeAll(): void {\n this.modalControl.closeAll();\n }\n\n create<T>(options: IModalOptionsForService<T> = {}): McModalRef<T> {\n\n if (typeof options.mcOnCancel !== 'function') {\n // Leave a empty function to close this modal by default\n // tslint:disable-next-line\n options.mcOnCancel = () => {};\n }\n\n if (!('mcCloseByESC' in options)) {\n options.mcCloseByESC = true;\n }\n // Remove the Cancel button if the user not specify a Cancel button\n if (!('mcCancelText' in options)) {\n options.mcCancelText = undefined;\n }\n // Remove the Ok button if the user not specify a Ok button\n if (!('mcOkText' in options)) {\n options.mcOkText = undefined;\n }\n // Remove the footer if the user not specify a footer\n if (!('mcFooter' in options)) {\n options.mcFooter = undefined;\n }\n\n return new ModalBuilderForService(this.overlay, options).getInstance()!;\n }\n\n confirm<T>(options: IModalOptionsForService<T> = {}, confirmType: ConfirmType = 'confirm'): McModalRef<T> {\n if ('mcFooter' in options) {\n console.warn(`The Confirm-Modal doesn't support \"mcFooter\", this property will be ignored.`);\n }\n\n // NOTE: only support function currently by calling confirm()\n if (typeof options.mcOnOk !== 'function') {\n // Leave a empty function to close this modal by default\n // tslint:disable-next-line\n options.mcOnOk = () => {};\n }\n\n options.mcModalType = 'confirm';\n options.mcClassName = `mc-confirm mc-confirm-${confirmType} ${options.mcClassName || ''}`;\n\n return this.create(options);\n }\n\n open<T>(options: IModalOptionsForService<T> = {}): McModalRef<T> {\n\n options.mcModalType = 'custom';\n\n return this.create(options);\n }\n\n success<T>(options: IModalOptionsForService<T> = {}): McModalRef<T> {\n return this.simpleConfirm(options, 'success');\n }\n\n // tslint:disable-next-line: no-reserved-keywords\n delete<T>(options: IModalOptionsForService<T> = {}): McModalRef<T> {\n return this.simpleConfirm(options, 'warn');\n }\n\n private simpleConfirm<T>(options: IModalOptionsForService<T> = {}, confirmType: ConfirmType): McModalRef<T> {\n return this.confirm(options, confirmType);\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 { CssUnitPipe } from './css-unit.pipe';\nimport { McModalControlService } from './modal-control.service';\nimport { McModalComponent } from './modal.component';\nimport { McModalBody, McModalFooter, McModalTitle, McModalMainAction } from './modal.directive';\nimport { McModalService } from './modal.service';\n\n\n@NgModule({\n imports: [\n CommonModule,\n OverlayModule,\n A11yModule,\n McButtonModule,\n McIconModule\n ],\n exports: [\n McModalComponent,\n McModalTitle,\n McModalBody,\n McModalFooter,\n McModalMainAction\n ],\n declarations: [\n McModalComponent,\n McModalTitle,\n McModalBody,\n McModalFooter,\n CssUnitPipe,\n McModalMainAction\n ],\n providers: [\n McModalControlService,\n McModalService\n ],\n entryComponents: [McModalComponent]\n})\nexport class McModalModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["ModalUtil","i7.McModalMainAction","i8.CssUnitPipe","i2.McModalControlService"],"mappings":"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"}
1
+ {"version":3,"file":"ptsecurity-mosaic-modal.mjs","sources":["../../../packages/mosaic/modal/modal-ref.class.ts","../../../packages/mosaic/modal/modal-util.ts","../../../packages/mosaic/modal/modal.type.ts","../../../packages/mosaic/modal/modal-control.service.ts","../../../packages/mosaic/modal/modal.directive.ts","../../../packages/mosaic/modal/css-unit.pipe.ts","../../../packages/mosaic/modal/modal.component.ts","../../../packages/mosaic/modal/modal.component.html","../../../packages/mosaic/modal/modal.service.ts","../../../packages/mosaic/modal/modal.module.ts","../../../packages/mosaic/modal/ptsecurity-mosaic-modal.ts"],"sourcesContent":["import { Observable } from 'rxjs';\r\n\r\nimport { McModalComponent } from './modal.component';\r\n\r\n\r\n/**\r\n * API class that public to users to handle the modal instance.\r\n * McModalRef is aim to avoid accessing to the modal instance directly by users.\r\n */\r\n// tslint:disable-next-line:naming-convention\r\nexport abstract class McModalRef<T = any, R = any> {\r\n abstract afterOpen: Observable<void>;\r\n abstract afterClose: Observable<R>;\r\n\r\n abstract open(): void;\r\n\r\n abstract close(result?: R): void;\r\n\r\n abstract destroy(result?: R): void;\r\n\r\n /**\r\n * Trigger the mcOnOk/mcOnCancel by manual\r\n */\r\n abstract triggerOk(): void;\r\n\r\n abstract triggerCancel(): void;\r\n\r\n // /**\r\n // * Return the ComponentRef of mcContent when specify mcContent as a Component\r\n // * Note: this method may return undefined if the Component has not ready yet.\r\n // (it only available after Modal's ngOnInit)\r\n // */\r\n // abstract getContentComponentRef(): ComponentRef<{}>;\r\n\r\n /**\r\n * Return the component instance of mcContent when specify mcContent as a Component\r\n * Note: this method may return undefined if the Component has not ready yet.\r\n * (it only available after Modal's ngOnInit)\r\n */\r\n abstract getContentComponent(): T;\r\n\r\n /**\r\n * Get the dom element of this Modal\r\n */\r\n abstract getElement(): HTMLElement;\r\n\r\n /**\r\n * Get the instance of the Modal itself\r\n */\r\n abstract getInstance(): McModalComponent;\r\n\r\n /**\r\n * Call markForCheck for change detector\r\n */\r\n abstract markForCheck();\r\n}\r\n","export interface IClickPosition {\r\n x: number;\r\n y: number;\r\n}\r\n\r\nexport class ModalUtil {\r\n private lastPosition: IClickPosition;\r\n\r\n constructor(private document: Document) {\r\n this.lastPosition = {x: -1, y: -1};\r\n this.listenDocumentClick();\r\n }\r\n\r\n getLastClickPosition(): IClickPosition {\r\n return this.lastPosition;\r\n }\r\n\r\n listenDocumentClick(): void {\r\n this.document.addEventListener('click', (event: MouseEvent) => {\r\n this.lastPosition = {x: event.clientX, y: event.clientY};\r\n });\r\n }\r\n}\r\n\r\nexport const modalUtilObject = new ModalUtil(document);\r\n","import { OverlayRef } from '@angular/cdk/overlay';\r\nimport { EventEmitter, TemplateRef, Type } from '@angular/core';\r\n\r\n\r\nexport type OnClickCallback<T> = ((instance: T) => (false | void | {}) | Promise<false | void | {}>);\r\n\r\n// Different modal styles we have supported\r\nexport type ModalType = 'default' | 'confirm' | 'custom';\r\n\r\n// Subtypes of Confirm Modal\r\nexport type ConfirmType = 'confirm' | 'success' | 'warn';\r\n\r\nexport enum ModalSize {\r\n Small = 'small',\r\n Normal = 'normal',\r\n Large = 'large'\r\n}\r\n\r\n// Public options for using by service\r\nexport interface IModalOptions<T = any, R = any> {\r\n mcModalType?: ModalType;\r\n mcVisible?: boolean;\r\n mcZIndex?: number;\r\n mcWidth?: number | string;\r\n mcSize?: ModalSize;\r\n mcWrapClassName?: string;\r\n mcClassName?: string;\r\n mcStyle?: object;\r\n mcTitle?: string | TemplateRef<{}>;\r\n mcContent?: string | TemplateRef<{}> | Type<T>;\r\n mcComponent?: Type<T>; // The instance of component opened into the dialog.\r\n mcComponentParams?: Partial<T>;\r\n mcClosable?: boolean;\r\n mcMask?: boolean;\r\n mcMaskClosable?: boolean;\r\n mcMaskStyle?: object;\r\n mcBodyStyle?: object;\r\n mcFooter?: string | TemplateRef<{}> | IModalButtonOptions<T>[]; // Default Modal ONLY\r\n mcGetContainer?: HTMLElement | OverlayRef | (() => HTMLElement | OverlayRef) | null; // STATIC\r\n mcAfterOpen?: EventEmitter<void>;\r\n mcAfterClose?: EventEmitter<R>;\r\n mcCloseByESC?: boolean;\r\n\r\n // --- Predefined OK & Cancel buttons\r\n mcOkText?: string;\r\n mcOkType?: string;\r\n mcOkLoading?: boolean;\r\n mcOnOk?: EventEmitter<T> | OnClickCallback<T>;\r\n mcCancelText?: string;\r\n mcCancelLoading?: boolean;\r\n mcOnCancel?: EventEmitter<T> | OnClickCallback<T>;\r\n}\r\n\r\n// tslint:disable-next-line:no-any\r\nexport interface IModalOptionsForService<T = any> extends IModalOptions<T> {\r\n mcOnOk?: OnClickCallback<T>;\r\n mcOnCancel?: OnClickCallback<T>;\r\n}\r\n\r\nexport interface IModalButtonOptions<T = any> {\r\n label: string;\r\n // tslint:disable-next-line\r\n type?: string;\r\n shape?: string;\r\n ghost?: boolean;\r\n size?: string;\r\n // Default: true, indicate whether show loading automatically while onClick returned a Promise\r\n autoLoading?: boolean;\r\n\r\n // [NOTE] \"componentInstance\" will refer to the component's instance when using Component\r\n show?: boolean | ((this: IModalButtonOptions<T>, contentComponentInstance?: T) => boolean);\r\n loading?: boolean | ((this: IModalButtonOptions<T>, contentComponentInstance?: T) => boolean);\r\n disabled?: boolean | ((this: IModalButtonOptions<T>, contentComponentInstance?: T) => boolean);\r\n\r\n autoFocus?: boolean;\r\n mcModalMainAction?: boolean;\r\n\r\n onClick?(this: IModalButtonOptions<T>, contentComponentInstance?: T): (void | {}) | Promise<(void | {})>;\r\n}\r\n","import { Injectable, Optional, SkipSelf } from '@angular/core';\r\nimport { Subject, Subscription } from 'rxjs';\r\n\r\nimport { McModalComponent } from '.';\r\nimport { McModalRef } from './modal-ref.class';\r\n\r\n\r\ninterface IRegisteredMeta {\r\n modalRef: McModalRef;\r\n afterOpenSubscription: Subscription;\r\n afterCloseSubscription: Subscription;\r\n}\r\n\r\n@Injectable()\r\nexport class McModalControlService {\r\n // Track singleton afterAllClose through over the injection tree\r\n get afterAllClose(): Subject<void> {\r\n return this.parentService ? this.parentService.afterAllClose : this.rootAfterAllClose;\r\n }\r\n\r\n // Track singleton openModals array through over the injection tree\r\n get openModals(): McModalRef[] {\r\n return this.parentService ? this.parentService.openModals : this.rootOpenModals;\r\n }\r\n\r\n // @ts-ignore\r\n private rootOpenModals: McModalRef[] = this.parentService ? null : [];\r\n // @ts-ignore\r\n private rootAfterAllClose: Subject<void> = this.parentService ? null : new Subject<void>();\r\n // @ts-ignore\r\n private rootRegisteredMetaMap: Map<McModalRef, IRegisteredMeta> = this.parentService ? null : new Map();\r\n\r\n // Registered modal for later usage\r\n private get registeredMetaMap(): Map<McModalRef, IRegisteredMeta> {\r\n return this.parentService ? this.parentService.registeredMetaMap : this.rootRegisteredMetaMap;\r\n }\r\n\r\n constructor(\r\n @Optional() @SkipSelf() private parentService: McModalControlService) {\r\n }\r\n\r\n // Register a modal to listen its open/close\r\n registerModal(modalRef: McModalRef): void {\r\n if (!this.hasRegistered(modalRef)) {\r\n const afterOpenSubscription = modalRef.afterOpen.subscribe(() => this.openModals.push(modalRef));\r\n const afterCloseSubscription = modalRef.afterClose.subscribe(() => this.removeOpenModal(modalRef));\r\n\r\n this.registeredMetaMap.set(modalRef, {modalRef, afterOpenSubscription, afterCloseSubscription});\r\n\r\n this.handleMultipleMasks(modalRef);\r\n }\r\n }\r\n\r\n hasRegistered(modalRef: McModalRef): boolean {\r\n return this.registeredMetaMap.has(modalRef);\r\n }\r\n\r\n // Close all registered opened modals\r\n closeAll(): void {\r\n let i = this.openModals.length;\r\n\r\n while (i--) {\r\n this.openModals[i].close();\r\n }\r\n }\r\n\r\n private removeOpenModal(modalRef: McModalRef): void {\r\n const index = this.openModals.indexOf(modalRef);\r\n\r\n if (index > -1) {\r\n this.openModals.splice(index, 1);\r\n\r\n if (!this.openModals.length) {\r\n this.afterAllClose.next();\r\n }\r\n }\r\n }\r\n\r\n private handleMultipleMasks(modalRef: McModalRef) {\r\n const modals = Array.from(this.registeredMetaMap.values()).map((v) => v.modalRef) as McModalComponent[];\r\n\r\n if (modals.filter((modal) => modal.mcVisible).length > 1) {\r\n const otherModals = modals.splice(0, modals.length - 1)\r\n .filter((modal) => modal.mcVisible && modal.mcMask);\r\n\r\n // hide other masks\r\n setTimeout(() => {\r\n otherModals.forEach((modal) => {\r\n modal.getInstance().mcMask = false;\r\n modal.markForCheck();\r\n });\r\n });\r\n\r\n // show other masks on close\r\n modalRef.afterClose.subscribe(() => {\r\n otherModals.forEach((modal) => {\r\n modal.getInstance().mcMask = true;\r\n modal.markForCheck();\r\n });\r\n });\r\n }\r\n }\r\n}\r\n","import { Directive } from '@angular/core';\r\n\r\n\r\n@Directive({\r\n selector: `[mc-modal-title], mc-modal-title, [mcModalTitle]`,\r\n host: {\r\n class: 'mc-modal-header mc-modal-title'\r\n }\r\n})\r\nexport class McModalTitle {}\r\n\r\n@Directive({\r\n selector: `[mc-modal-body], mc-modal-body, [mcModalBody]`,\r\n host: {\r\n class: 'mc-modal-body'\r\n }\r\n})\r\nexport class McModalBody {}\r\n\r\n@Directive({\r\n selector: `[mc-modal-footer], mc-modal-footer, [mcModalFooter]`,\r\n host: {\r\n class: 'mc-modal-footer'\r\n }\r\n})\r\nexport class McModalFooter {}\r\n\r\n@Directive({\r\n selector: `[mc-modal-main-action]`\r\n})\r\nexport class McModalMainAction {}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n\r\n@Pipe({\r\n name: 'toCssUnit'\r\n})\r\nexport class CssUnitPipe implements PipeTransform {\r\n transform(value: number | string, defaultUnit: string = 'px'): string {\r\n const formatted = +value;\r\n\r\n return isNaN(formatted) ? `${value}` : `${formatted}${defaultUnit}`;\r\n }\r\n}\r\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ComponentFactoryResolver,\r\n ComponentRef,\r\n ElementRef,\r\n EventEmitter,\r\n Inject,\r\n Injector,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n QueryList,\r\n Renderer2,\r\n SimpleChanges,\r\n TemplateRef,\r\n Type,\r\n ViewChild,\r\n ViewChildren,\r\n ViewContainerRef,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { ESCAPE, ENTER } from '@ptsecurity/cdk/keycodes';\r\nimport { ThemePalette } from '@ptsecurity/mosaic/core';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { McModalControlService } from './modal-control.service';\r\nimport { McModalRef } from './modal-ref.class';\r\nimport { modalUtilObject as ModalUtil } from './modal-util';\r\nimport { IModalButtonOptions, IModalOptions, ModalSize, ModalType, OnClickCallback } from './modal.type';\r\n\r\n\r\n// Duration when perform animations (ms)\r\nexport const MODAL_ANIMATE_DURATION = 200;\r\n\r\ntype AnimationState = 'enter' | 'leave' | null;\r\n\r\n\r\n@Component({\r\n selector: 'mc-modal',\r\n templateUrl: './modal.component.html',\r\n styleUrls: ['./modal.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n '(keydown)': 'onKeyDown($event)'\r\n }\r\n})\r\nexport class McModalComponent<T = any, R = any> extends McModalRef<T, R>\r\n implements OnInit, OnChanges, AfterViewInit, OnDestroy, IModalOptions {\r\n\r\n themePalette = ThemePalette;\r\n\r\n @Input() mcModalType: ModalType = 'default';\r\n\r\n // The instance of component opened into the dialog.\r\n @Input() mcComponent: Type<T>;\r\n // If not specified, will use <ng-content>\r\n @Input() mcContent: string | TemplateRef<{}> | Type<T>;\r\n // available when mcContent is a component\r\n @Input() mcComponentParams: T;\r\n // Default Modal ONLY\r\n @Input() mcFooter: string | TemplateRef<{}> | IModalButtonOptions<T>[];\r\n\r\n @Input()\r\n get mcVisible() { return this._mcVisible; }\r\n set mcVisible(value) { this._mcVisible = value; }\r\n\r\n private _mcVisible = false;\r\n\r\n @Output() mcVisibleChange = new EventEmitter<boolean>();\r\n\r\n @Input() mcZIndex: number = 1000;\r\n @Input() mcWidth: number | string;\r\n @Input() mcSize: ModalSize = ModalSize.Normal;\r\n @Input() mcWrapClassName: string;\r\n @Input() mcClassName: string;\r\n @Input() mcStyle: object;\r\n @Input() mcTitle: string | TemplateRef<{}>;\r\n @Input() mcCloseByESC: boolean = true;\r\n\r\n @Input()\r\n get mcClosable() { return this._mcClosable; }\r\n set mcClosable(value) { this._mcClosable = value; }\r\n private _mcClosable = true;\r\n\r\n @Input()\r\n get mcMask() { return this._mcMask; }\r\n set mcMask(value) { this._mcMask = value; }\r\n private _mcMask = true;\r\n\r\n @Input()\r\n get mcMaskClosable() { return this._mcMaskClosable; }\r\n set mcMaskClosable(value) { this._mcMaskClosable = value; }\r\n private _mcMaskClosable = false;\r\n\r\n @Input() mcMaskStyle: object;\r\n @Input() mcBodyStyle: object;\r\n\r\n // Trigger when modal open(visible) after animations\r\n @Output() mcAfterOpen = new EventEmitter<void>();\r\n // Trigger when modal leave-animation over\r\n @Output() mcAfterClose = new EventEmitter<R>();\r\n\r\n // --- Predefined OK & Cancel buttons\r\n @Input() mcOkText: string;\r\n @Input() mcOkType = 'primary';\r\n\r\n @Input()\r\n get mcOkLoading() { return this._mcOkLoading; }\r\n set mcOkLoading(value) { this._mcOkLoading = value; }\r\n private _mcOkLoading = false;\r\n\r\n @Input() @Output() mcOnOk: EventEmitter<T> | OnClickCallback<T> = new EventEmitter<T>();\r\n @Input() mcCancelText: string;\r\n\r\n @Input()\r\n get mcCancelLoading() { return this._mcCancelLoading; }\r\n set mcCancelLoading(value) { this._mcCancelLoading = value; }\r\n private _mcCancelLoading = false;\r\n\r\n @Input() @Output() mcOnCancel: EventEmitter<T> | OnClickCallback<T> = new EventEmitter<T>();\r\n\r\n @ViewChild('modalContainer', { static: true }) modalContainer: ElementRef;\r\n @ViewChild('bodyContainer', { read: ViewContainerRef, static: false }) bodyContainer: ViewContainerRef;\r\n // Only aim to focus the ok button that needs to be auto focused\r\n @ViewChildren('autoFocusedButton', { read: ElementRef }) autoFocusedButtons: QueryList<ElementRef>;\r\n\r\n @ViewChild('modalBody') modalBody: ElementRef;\r\n\r\n isTopOverflow: boolean = false;\r\n isBottomOverflow: boolean = false;\r\n\r\n maskAnimationClassMap: object;\r\n modalAnimationClassMap: object;\r\n // The origin point that animation based on\r\n transformOrigin = '0px 0px 0px';\r\n\r\n // Observable alias for mcAfterOpen\r\n get afterOpen(): Observable<void> {\r\n return this.mcAfterOpen.asObservable();\r\n }\r\n\r\n // Observable alias for mcAfterClose\r\n get afterClose(): Observable<R> {\r\n return this.mcAfterClose.asObservable();\r\n }\r\n\r\n get okText(): string {\r\n return this.mcOkText;\r\n }\r\n\r\n get cancelText(): string {\r\n return this.mcCancelText;\r\n }\r\n\r\n // Indicate whether this dialog should hidden\r\n get hidden(): boolean {\r\n return !this.mcVisible && !this.animationState;\r\n }\r\n\r\n // Handle the reference when using mcContent as Component\r\n private contentComponentRef: ComponentRef<T>;\r\n // Current animation state\r\n private animationState: AnimationState;\r\n private container: HTMLElement | OverlayRef;\r\n\r\n constructor(\r\n private overlay: Overlay,\r\n private renderer: Renderer2,\r\n private cfr: ComponentFactoryResolver,\r\n private elementRef: ElementRef,\r\n private viewContainer: ViewContainerRef,\r\n private modalControl: McModalControlService,\r\n private changeDetector: ChangeDetectorRef,\r\n @Inject(DOCUMENT) private document: any\r\n ) {\r\n super();\r\n }\r\n\r\n @Input() mcGetContainer: HTMLElement | OverlayRef | (() => HTMLElement | OverlayRef) = () => this.overlay.create();\r\n\r\n ngOnInit() {\r\n // Create component along without View\r\n if (this.isComponent(this.mcContent)) {\r\n this.createDynamicComponent(this.mcContent as Type<T>);\r\n }\r\n\r\n // Setup default button options\r\n if (this.isModalButtons(this.mcFooter)) {\r\n this.mcFooter = this.formatModalButtons(this.mcFooter as IModalButtonOptions<T>[]);\r\n }\r\n\r\n if (this.isComponent(this.mcComponent)) {\r\n this.createDynamicComponent(this.mcComponent);\r\n }\r\n\r\n // Place the modal dom to elsewhere\r\n this.container = typeof this.mcGetContainer === 'function' ? this.mcGetContainer() : this.mcGetContainer;\r\n if (this.container instanceof HTMLElement) {\r\n this.container.appendChild(this.elementRef.nativeElement);\r\n } else if (this.container instanceof OverlayRef) {\r\n // NOTE: only attach the dom to overlay, the view container is not changed actually\r\n this.container.overlayElement.appendChild(this.elementRef.nativeElement);\r\n }\r\n\r\n // Register modal when afterOpen/afterClose is stable\r\n this.modalControl.registerModal(this);\r\n }\r\n\r\n // [NOTE] NOT available when using by service!\r\n // Because ngOnChanges never be called when using by service,\r\n // here we can't support \"mcContent\"(Component) etc. as inputs that initialized dynamically.\r\n // BUT: User also can change \"mcContent\" dynamically to trigger UI changes\r\n // (provided you don't use \bComponent that needs initializations)\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.mcVisible) {\r\n // Do not trigger animation while initializing\r\n this.handleVisibleStateChange(this.mcVisible, !changes.mcVisible.firstChange);\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n // If using Component, it is the time to attach View while bodyContainer is ready\r\n if (this.contentComponentRef) {\r\n this.bodyContainer.insert(this.contentComponentRef.hostView);\r\n }\r\n this.getElement().getElementsByTagName('button')[0]?.focus();\r\n\r\n for (const autoFocusedButton of this.autoFocusedButtons.toArray()) {\r\n if (autoFocusedButton.nativeElement.autofocus) {\r\n (autoFocusedButton.nativeElement as HTMLButtonElement).focus();\r\n\r\n break;\r\n }\r\n }\r\n\r\n this.checkOverflow();\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.container instanceof OverlayRef) {\r\n this.container.dispose();\r\n }\r\n }\r\n\r\n checkOverflow(): void {\r\n const nativeElement = this.modalBody?.nativeElement;\r\n\r\n if (!nativeElement) { return; }\r\n\r\n const scrollTop: number = nativeElement.scrollTop;\r\n const offsetHeight: number = nativeElement.offsetHeight;\r\n const scrollHeight: number = nativeElement.scrollHeight;\r\n\r\n this.isTopOverflow = scrollTop > 0;\r\n\r\n this.isBottomOverflow = (scrollTop as number + offsetHeight as number) < scrollHeight;\r\n }\r\n\r\n open() {\r\n this.changeVisibleFromInside(true);\r\n }\r\n\r\n close(result?: R) {\r\n this.changeVisibleFromInside(false, result);\r\n }\r\n\r\n // Destroy equals Close\r\n destroy(result?: R) {\r\n this.close(result);\r\n }\r\n\r\n markForCheck() {\r\n this.changeDetector.markForCheck();\r\n }\r\n\r\n triggerOk() {\r\n this.onClickOkCancel('ok');\r\n }\r\n\r\n triggerCancel() {\r\n this.onClickOkCancel('cancel');\r\n }\r\n\r\n getInstance(): McModalComponent {\r\n return this;\r\n }\r\n\r\n getContentComponentRef(): ComponentRef<T> {\r\n return this.contentComponentRef;\r\n }\r\n\r\n getContentComponent(): T {\r\n return this.contentComponentRef && this.contentComponentRef.instance;\r\n }\r\n\r\n getElement(): HTMLElement {\r\n return this.elementRef && this.elementRef.nativeElement;\r\n }\r\n\r\n getMcFooter(): HTMLElement {\r\n return this.getElement().getElementsByClassName('mc-modal-footer').item(0) as HTMLElement;\r\n }\r\n\r\n onClickMask($event: MouseEvent) {\r\n if (\r\n this.mcMask &&\r\n this.mcMaskClosable &&\r\n ($event.target as HTMLElement).classList.contains('mc-modal-wrap') &&\r\n this.mcVisible\r\n ) {\r\n this.onClickOkCancel('cancel');\r\n }\r\n }\r\n\r\n // tslint:disable-next-line: no-reserved-keywords\r\n isModalType(type: ModalType): boolean {\r\n return this.mcModalType === type;\r\n }\r\n\r\n onKeyDown(event: KeyboardEvent): void {\r\n\r\n // tslint:disable-next-line:deprecation .key isn't supported in Edge\r\n if (event.keyCode === ESCAPE && this.container && (this.container instanceof OverlayRef)) {\r\n\r\n this.close();\r\n event.preventDefault();\r\n }\r\n // tslint:disable-next-line:deprecation .key isn't supported in Edge\r\n if (event.ctrlKey && event.keyCode === ENTER) {\r\n if (this.mcModalType === 'confirm') {\r\n this.triggerOk();\r\n }\r\n\r\n (this.getElement().querySelector('[mc-modal-main-action]') as HTMLElement)?.click();\r\n\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n // AoT\r\n onClickCloseBtn() {\r\n if (this.mcVisible) {\r\n this.onClickOkCancel('cancel');\r\n }\r\n }\r\n\r\n // AoT\r\n // tslint:disable-next-line: no-reserved-keywords\r\n onClickOkCancel(type: 'ok' | 'cancel') {\r\n const trigger = { ok: this.mcOnOk, cancel: this.mcOnCancel }[type];\r\n const loadingKey = { ok: 'mcOkLoading', cancel: 'mcCancelLoading' }[type];\r\n\r\n if (trigger instanceof EventEmitter) {\r\n trigger.emit(this.getContentComponent());\r\n } else if (typeof trigger === 'function') {\r\n\r\n const result = trigger(this.getContentComponent());\r\n // Users can return \"false\" to prevent closing by default\r\n const caseClose = (doClose: boolean | void | {}) => (doClose !== false) && this.close(doClose as R);\r\n\r\n if (isPromise(result)) {\r\n this[loadingKey] = true;\r\n const handleThen = (doClose) => {\r\n this[loadingKey] = false;\r\n caseClose(doClose);\r\n };\r\n (result as Promise<void>).then(handleThen).catch(handleThen);\r\n } else {\r\n caseClose(result);\r\n }\r\n }\r\n }\r\n\r\n // AoT\r\n isNonEmptyString(value: {}): boolean {\r\n return typeof value === 'string' && value !== '';\r\n }\r\n\r\n // AoT\r\n isTemplateRef(value: {}): boolean {\r\n return value instanceof TemplateRef;\r\n }\r\n\r\n // AoT\r\n isComponent(value: {}): boolean {\r\n return value instanceof Type;\r\n }\r\n\r\n // AoT\r\n isModalButtons(value: {}): boolean {\r\n return Array.isArray(value) && value.length > 0;\r\n }\r\n\r\n // Lookup a button's property, if the prop is a function, call & then return the result, otherwise, return itself.\r\n // AoT\r\n getButtonCallableProp(options: IModalButtonOptions<T>, prop: string): {} {\r\n const value = options[prop];\r\n const args: any[] = [];\r\n if (this.contentComponentRef) {\r\n args.push(this.contentComponentRef.instance);\r\n }\r\n\r\n return typeof value === 'function' ? value.apply(options, args) : value;\r\n }\r\n\r\n // On mcFooter's modal button click\r\n // AoT\r\n onButtonClick(button: IModalButtonOptions<T>) {\r\n // Call onClick directly\r\n // tslint:disable-next-line:no-inferred-empty-object-type rule seems to be broken\r\n const result = this.getButtonCallableProp(button, 'onClick');\r\n if (isPromise(result)) {\r\n button.loading = true;\r\n (result as Promise<{}>).then(() => button.loading = false).catch(() => button.loading = false);\r\n }\r\n }\r\n\r\n // Do rest things when visible state changed\r\n private handleVisibleStateChange(visible: boolean, animation: boolean = true, closeResult?: R): Promise<any> {\r\n // Hide scrollbar at the first time when shown up\r\n if (visible) {\r\n this.changeBodyOverflow(1);\r\n }\r\n\r\n return Promise\r\n .resolve(animation && this.animateTo(visible))\r\n // Emit open/close event after animations over\r\n .then(() => {\r\n if (visible) {\r\n this.mcAfterOpen.emit();\r\n } else {\r\n this.mcAfterClose.emit(closeResult);\r\n // Show/hide scrollbar when animation is over\r\n this.changeBodyOverflow();\r\n }\r\n });\r\n }\r\n\r\n // Change mcVisible from inside\r\n private changeVisibleFromInside(visible: boolean, closeResult?: R): Promise<void> {\r\n if (this.mcVisible !== visible) {\r\n // Change mcVisible value immediately\r\n this.mcVisible = visible;\r\n this.mcVisibleChange.emit(visible);\r\n\r\n return this.handleVisibleStateChange(visible, true, closeResult);\r\n }\r\n\r\n return Promise.resolve();\r\n }\r\n\r\n private changeAnimationState(state: AnimationState) {\r\n this.animationState = state;\r\n if (state) {\r\n this.maskAnimationClassMap = {\r\n [`fade-${state}`]: true,\r\n [`fade-${state}-active`]: true\r\n };\r\n\r\n this.modalAnimationClassMap = {\r\n [`zoom-${state}`]: true,\r\n [`zoom-${state}-active`]: true\r\n };\r\n } else {\r\n // @ts-ignore\r\n this.maskAnimationClassMap = this.modalAnimationClassMap = null;\r\n }\r\n\r\n if (this.contentComponentRef) {\r\n this.contentComponentRef.changeDetectorRef.markForCheck();\r\n } else {\r\n this.changeDetector.markForCheck();\r\n }\r\n }\r\n\r\n private animateTo(isVisible: boolean): Promise<any> {\r\n // Figure out the lastest click position when shows up\r\n if (isVisible) {\r\n // [NOTE] Using timeout due to the document.click event is fired later than visible change,\r\n // so if not postponed to next event-loop, we can't get the lastest click position\r\n window.setTimeout(() => this.updateTransformOrigin());\r\n }\r\n\r\n this.changeAnimationState(isVisible ? 'enter' : 'leave');\r\n\r\n // Return when animation is over\r\n return new Promise((resolve) => {\r\n return window.setTimeout(\r\n () => {\r\n this.changeAnimationState(null);\r\n resolve(null);\r\n },\r\n MODAL_ANIMATE_DURATION\r\n );\r\n });\r\n }\r\n\r\n private formatModalButtons(buttons: IModalButtonOptions<T>[]): IModalButtonOptions<T>[] {\r\n return buttons.map((button) => {\r\n\r\n return {\r\n ...{\r\n type: 'default',\r\n size: 'default',\r\n autoLoading: true,\r\n show: true,\r\n loading: false,\r\n disabled: false\r\n },\r\n ...button\r\n };\r\n });\r\n }\r\n\r\n /**\r\n * Create a component dynamically but not attach to any View\r\n * (this action will be executed when bodyContainer is ready)\r\n * @param component Component class\r\n */\r\n private createDynamicComponent(component: Type<T>) {\r\n const factory = this.cfr.resolveComponentFactory(component);\r\n const childInjector = Injector.create({\r\n providers: [{provide: McModalRef, useValue: this}],\r\n parent: this.viewContainer.injector\r\n });\r\n\r\n this.contentComponentRef = factory.create(childInjector);\r\n\r\n if (this.mcComponentParams) {\r\n Object.assign(this.contentComponentRef.instance, this.mcComponentParams);\r\n }\r\n\r\n // Do the first change detection immediately\r\n // (or we do detection at ngAfterViewInit, multi-changes error will be thrown)\r\n this.contentComponentRef.changeDetectorRef.detectChanges();\r\n }\r\n\r\n // Update transform-origin to the last click position on document\r\n private updateTransformOrigin() {\r\n const modalElement = this.modalContainer.nativeElement as HTMLElement;\r\n const lastPosition = ModalUtil.getLastClickPosition();\r\n\r\n if (lastPosition) {\r\n this.transformOrigin = `${lastPosition.x - modalElement.offsetLeft}px ${lastPosition.y - modalElement.offsetTop}px 0px`;\r\n }\r\n }\r\n\r\n /**\r\n * Take care of the body's overflow to decide the existense of scrollbar\r\n * @param plusNum The number that the openModals.length will increase soon\r\n */\r\n private changeBodyOverflow(plusNum: number = 0) {\r\n const openModals = this.modalControl.openModals;\r\n\r\n if (openModals.length + plusNum > 0) {\r\n this.renderer.setStyle(this.document.body, 'overflow', 'hidden');\r\n } else {\r\n this.renderer.removeStyle(this.document.body, 'overflow');\r\n }\r\n }\r\n}\r\n\r\n////////////\r\n\r\nfunction isPromise(obj: {} | void): boolean {\r\n // tslint:disable-next-line: no-unbound-method\r\n return !!obj &&\r\n (typeof obj === 'object' || typeof obj === 'function') &&\r\n typeof (obj as Promise<{}>).then === 'function' &&\r\n typeof (obj as Promise<{}>).catch === 'function';\r\n}\r\n","<!-- Compatible: the <ng-content> can appear only once -->\r\n<ng-template #tplOriginContent>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n\r\n<div>\r\n <div *ngIf=\"mcMask\"\r\n class=\"mc-modal-mask\"\r\n [ngClass]=\"maskAnimationClassMap\"\r\n [class.mc-modal-mask-hidden]=\"hidden\"\r\n [ngStyle]=\"mcMaskStyle\"\r\n [style.zIndex]=\"mcZIndex\"\r\n ></div>\r\n <div (mousedown)=\"onClickMask($event)\"\r\n class=\"mc-modal-wrap {{ mcWrapClassName }}\"\r\n [style.zIndex]=\"mcZIndex\"\r\n [style.display]=\"hidden ? 'none' : ''\"\r\n tabindex=\"-1\">\r\n\r\n <div #modalContainer\r\n class=\"mc-modal {{ mcClassName }} mc-modal_{{ mcSize }}\"\r\n [ngClass]=\"modalAnimationClassMap\"\r\n [ngStyle]=\"mcStyle\"\r\n [style.width]=\"mcWidth | toCssUnit\"\r\n [style.transform-origin]=\"transformOrigin\">\r\n\r\n <div class=\"mc-modal-content\" cdkTrapFocus>\r\n <button *ngIf=\"mcClosable\"\r\n mc-button\r\n (click)=\"onClickCloseBtn()\"\r\n class=\"mc-modal-close mc-button_transparent\">\r\n <i mc-icon=\"mc-close-L_16\" class=\"mc-icon mc-icon_light\" [color]=\"themePalette.Second\"></i>\r\n </button>\r\n <ng-container [ngSwitch]=\"true\">\r\n <ng-container *ngSwitchCase=\"isModalType('default')\"\r\n [ngTemplateOutlet]=\"tplContentDefault\"></ng-container>\r\n <ng-container *ngSwitchCase=\"isModalType('confirm')\"\r\n [ngTemplateOutlet]=\"tplContentConfirm\"></ng-container>\r\n <ng-container *ngSwitchCase=\"isModalType('custom')\"\r\n [ngTemplateOutlet]=\"tplContentCustom\"></ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #tplContentCustom>\r\n <ng-container #bodyContainer></ng-container>\r\n</ng-template>\r\n\r\n\r\n<!-- [Predefined] Default Modal Content -->\r\n<ng-template #tplContentDefault>\r\n <div *ngIf=\"mcTitle\" class=\"mc-modal-header\" [class.mc-modal-body_top-overflow]=\"isTopOverflow\">\r\n <div class=\"mc-modal-title\">\r\n <ng-container [ngSwitch]=\"true\">\r\n <ng-container *ngSwitchCase=\"isTemplateRef(mcTitle)\" [ngTemplateOutlet]=\"$any(mcTitle)\"></ng-container>\r\n <ng-container *ngSwitchCase=\"isNonEmptyString(mcTitle)\">\r\n <div [innerHTML]=\"mcTitle\"></div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"mc-modal-body\" #modalBody [ngStyle]=\"mcBodyStyle\" (scroll)=\"checkOverflow()\">\r\n <ng-container #bodyContainer>\r\n <ng-container *ngIf=\"!isComponent(mcContent)\" [ngSwitch]=\"true\">\r\n <ng-container *ngSwitchCase=\"isTemplateRef(mcContent)\" [ngTemplateOutlet]=\"$any(mcContent)\"></ng-container>\r\n <ng-container *ngSwitchCase=\"isNonEmptyString(mcContent)\">\r\n <div [innerHTML]=\"mcContent\"></div>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault [ngTemplateOutlet]=\"tplOriginContent\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"mcFooter || mcOkText || mcCancelText\" class=\"mc-modal-footer\" [class.mc-modal-body_bottom-overflow]=\"isBottomOverflow\">\r\n <ng-container [ngSwitch]=\"true\">\r\n <ng-container *ngSwitchCase=\"isTemplateRef(mcFooter)\" [ngTemplateOutlet]=\"$any(mcFooter)\"></ng-container>\r\n <ng-container *ngSwitchCase=\"isNonEmptyString(mcFooter)\">\r\n <div [innerHTML]=\"mcFooter\"></div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"isModalButtons(mcFooter)\">\r\n <ng-container *ngFor=\"let button of $any(mcFooter)\">\r\n <button\r\n mc-button\r\n #autoFocusedButton\r\n [attr.autofocus]=\"button.autoFocus\"\r\n [attr.mc-modal-main-action]=\"button.mcModalMainAction\"\r\n *ngIf=\"getButtonCallableProp(button, 'show')\"\r\n [disabled]=\"getButtonCallableProp(button, 'disabled')\"\r\n [class.mc-progress]=\"getButtonCallableProp(button, 'loading')\"\r\n (click)=\"onButtonClick(button)\"\r\n [color]=\"button.type\">\r\n {{ button.label }}\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <button\r\n #autoFocusedButton\r\n [attr.autofocus]=\"true\"\r\n *ngIf=\"mcOkText\"\r\n mc-button\r\n [color]=\"themePalette.Primary\"\r\n (click)=\"onClickOkCancel('ok')\">\r\n\r\n {{ okText }}\r\n </button>\r\n <button *ngIf=\"mcCancelText\" mc-button (click)=\"onClickOkCancel('cancel')\">\r\n {{ cancelText }}\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n<!-- /[Predefined] Default Modal Content -->\r\n\r\n<!-- [Predefined] Confirm Modal Content -->\r\n<ng-template #tplContentConfirm>\r\n <div class=\"mc-modal-body\" [ngStyle]=\"mcBodyStyle\">\r\n <div class=\"mc-confirm-body-wrapper\">\r\n <div class=\"mc-confirm-body\">\r\n <div class=\"mc-confirm-content\">\r\n <ng-container #bodyContainer>\r\n <ng-container *ngIf=\"!isComponent(mcContent)\" [ngSwitch]=\"true\">\r\n <ng-container *ngSwitchCase=\"isTemplateRef(mcContent)\"\r\n [ngTemplateOutlet]=\"$any(mcContent)\">\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"isNonEmptyString(mcContent)\">\r\n <div [innerHTML]=\"mcContent\"></div>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault [ngTemplateOutlet]=\"tplOriginContent\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div> <!-- /.mc-confirm-body-wrapper -->\r\n </div>\r\n <div class=\"mc-confirm-btns\" *ngIf=\"mcOkText || mcCancelText\">\r\n <button\r\n mc-button\r\n #autoFocusedButton\r\n [color]=\"mcOkType\"\r\n [attr.autofocus]=\"true\"\r\n *ngIf=\"mcOkText\"\r\n (click)=\"onClickOkCancel('ok')\">\r\n\r\n {{ okText }}\r\n </button>\r\n\r\n <button mc-button [color]=\"themePalette.Second\" *ngIf=\"mcCancelText\" (click)=\"onClickOkCancel('cancel')\">\r\n {{ cancelText }}\r\n </button>\r\n </div>\r\n</ng-template>\r\n<!-- /[Predefined] Confirm Modal Content -->\r\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport { ComponentRef, Injectable } from '@angular/core';\r\nimport { ESCAPE } from '@ptsecurity/cdk/keycodes';\r\nimport { Observable } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\n\r\nimport { McModalControlService } from './modal-control.service';\r\nimport { McModalRef } from './modal-ref.class';\r\nimport { McModalComponent } from './modal.component';\r\nimport { ConfirmType, IModalOptions, IModalOptionsForService } from './modal.type';\r\n\r\n\r\n// A builder used for managing service creating modals\r\nexport class ModalBuilderForService {\r\n // Modal ComponentRef, \"null\" means it has been destroyed\r\n private modalRef: ComponentRef<McModalComponent> | null;\r\n private overlayRef: OverlayRef;\r\n\r\n constructor(private overlay: Overlay, options: IModalOptionsForService = {}) {\r\n this.createModal();\r\n\r\n if (!('mcGetContainer' in options)) {\r\n options.mcGetContainer = undefined;\r\n }\r\n\r\n this.changeProps(options);\r\n this.modalRef!.instance.open();\r\n this.modalRef!.instance.mcAfterClose.subscribe(() => this.destroyModal());\r\n\r\n this.overlayRef.keydownEvents()\r\n // @ts-ignore\r\n .pipe(filter((event: KeyboardEvent) => {\r\n // tslint:disable-next-line:deprecation replacement .key isn't supported in Edge\r\n return event.keyCode === ESCAPE && options.mcCloseByESC;\r\n }))\r\n .subscribe(() => this.modalRef!.instance.close());\r\n }\r\n\r\n getInstance(): McModalComponent | null {\r\n return this.modalRef && this.modalRef.instance;\r\n }\r\n\r\n destroyModal(): void {\r\n if (this.modalRef) {\r\n this.overlayRef.dispose();\r\n this.modalRef = null;\r\n }\r\n }\r\n\r\n private changeProps(options: IModalOptions): void {\r\n if (this.modalRef) {\r\n // here not limit user's inputs at runtime\r\n Object.assign(this.modalRef.instance, options);\r\n }\r\n }\r\n\r\n // Create component to ApplicationRef\r\n private createModal(): void {\r\n this.overlayRef = this.overlay.create();\r\n this.modalRef = this.overlayRef.attach(new ComponentPortal(McModalComponent));\r\n }\r\n}\r\n\r\n@Injectable()\r\nexport class McModalService {\r\n // Track of the current close modals (we assume invisible is close this time)\r\n get openModals(): McModalRef[] {\r\n return this.modalControl.openModals;\r\n }\r\n\r\n get afterAllClose(): Observable<void> {\r\n return this.modalControl.afterAllClose.asObservable();\r\n }\r\n\r\n constructor(\r\n private overlay: Overlay,\r\n private modalControl: McModalControlService\r\n ) {}\r\n\r\n // Closes all of the currently-open dialogs\r\n closeAll(): void {\r\n this.modalControl.closeAll();\r\n }\r\n\r\n create<T>(options: IModalOptionsForService<T> = {}): McModalRef<T> {\r\n\r\n if (typeof options.mcOnCancel !== 'function') {\r\n // Leave a empty function to close this modal by default\r\n // tslint:disable-next-line\r\n options.mcOnCancel = () => {};\r\n }\r\n\r\n if (!('mcCloseByESC' in options)) {\r\n options.mcCloseByESC = true;\r\n }\r\n // Remove the Cancel button if the user not specify a Cancel button\r\n if (!('mcCancelText' in options)) {\r\n options.mcCancelText = undefined;\r\n }\r\n // Remove the Ok button if the user not specify a Ok button\r\n if (!('mcOkText' in options)) {\r\n options.mcOkText = undefined;\r\n }\r\n // Remove the footer if the user not specify a footer\r\n if (!('mcFooter' in options)) {\r\n options.mcFooter = undefined;\r\n }\r\n\r\n return new ModalBuilderForService(this.overlay, options).getInstance()!;\r\n }\r\n\r\n confirm<T>(options: IModalOptionsForService<T> = {}, confirmType: ConfirmType = 'confirm'): McModalRef<T> {\r\n if ('mcFooter' in options) {\r\n console.warn(`The Confirm-Modal doesn't support \"mcFooter\", this property will be ignored.`);\r\n }\r\n\r\n // NOTE: only support function currently by calling confirm()\r\n if (typeof options.mcOnOk !== 'function') {\r\n // Leave a empty function to close this modal by default\r\n // tslint:disable-next-line\r\n options.mcOnOk = () => {};\r\n }\r\n\r\n options.mcModalType = 'confirm';\r\n options.mcClassName = `mc-confirm mc-confirm-${confirmType} ${options.mcClassName || ''}`;\r\n\r\n return this.create(options);\r\n }\r\n\r\n open<T>(options: IModalOptionsForService<T> = {}): McModalRef<T> {\r\n\r\n options.mcModalType = 'custom';\r\n\r\n return this.create(options);\r\n }\r\n\r\n success<T>(options: IModalOptionsForService<T> = {}): McModalRef<T> {\r\n return this.simpleConfirm(options, 'success');\r\n }\r\n\r\n // tslint:disable-next-line: no-reserved-keywords\r\n delete<T>(options: IModalOptionsForService<T> = {}): McModalRef<T> {\r\n return this.simpleConfirm(options, 'warn');\r\n }\r\n\r\n private simpleConfirm<T>(options: IModalOptionsForService<T> = {}, confirmType: ConfirmType): McModalRef<T> {\r\n return this.confirm(options, confirmType);\r\n }\r\n}\r\n","import { A11yModule } from '@angular/cdk/a11y';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { McButtonModule } from '@ptsecurity/mosaic/button';\r\nimport { McIconModule } from '@ptsecurity/mosaic/icon';\r\n\r\nimport { CssUnitPipe } from './css-unit.pipe';\r\nimport { McModalControlService } from './modal-control.service';\r\nimport { McModalComponent } from './modal.component';\r\nimport { McModalBody, McModalFooter, McModalTitle, McModalMainAction } from './modal.directive';\r\nimport { McModalService } from './modal.service';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n OverlayModule,\r\n A11yModule,\r\n McButtonModule,\r\n McIconModule\r\n ],\r\n exports: [\r\n McModalComponent,\r\n McModalTitle,\r\n McModalBody,\r\n McModalFooter,\r\n McModalMainAction\r\n ],\r\n declarations: [\r\n McModalComponent,\r\n McModalTitle,\r\n McModalBody,\r\n McModalFooter,\r\n CssUnitPipe,\r\n McModalMainAction\r\n ],\r\n providers: [\r\n McModalControlService,\r\n McModalService\r\n ],\r\n entryComponents: [McModalComponent]\r\n})\r\nexport class McModalModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["ModalUtil","i7.McModalMainAction","i8.CssUnitPipe","i2.McModalControlService"],"mappings":"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"}