@ptsecurity/mosaic 13.6.0 → 13.7.1

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