@ptsecurity/mosaic 13.6.1 → 13.7.2

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 (907) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +6 -6
  3. package/_theming.scss +7238 -7141
  4. package/_visual.scss +2724 -2695
  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 -45
  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 -119
  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 -7844
  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 -45
  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 -122
  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 -9176
  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/figma-types.js +41 -0
  202. package/design-tokens/style-dictionary/filters/color.js +7 -7
  203. package/design-tokens/style-dictionary/filters/palette.js +7 -7
  204. package/design-tokens/style-dictionary/filters/size.js +7 -7
  205. package/design-tokens/style-dictionary/filters/typography.js +7 -7
  206. package/design-tokens/style-dictionary/formats/figma.js +104 -0
  207. package/design-tokens/style-dictionary/formats/palette.js +25 -25
  208. package/design-tokens/style-dictionary/formats/typography.js +52 -52
  209. package/design-tokens/style-dictionary/transformGroups/css.js +13 -13
  210. package/design-tokens/style-dictionary/transformGroups/figma.js +21 -0
  211. package/design-tokens/style-dictionary/transformGroups/scss.js +12 -12
  212. package/design-tokens/style-dictionary/transformGroups/ts.js +11 -11
  213. package/design-tokens/style-dictionary/transforms/attribute/figma-border.js +18 -0
  214. package/design-tokens/style-dictionary/transforms/attribute/figma-color.js +25 -0
  215. package/design-tokens/style-dictionary/transforms/attribute/figma-default.js +10 -0
  216. package/design-tokens/style-dictionary/transforms/attribute/figma-font.js +31 -0
  217. package/design-tokens/style-dictionary/transforms/attribute/figma-group.js +17 -0
  218. package/design-tokens/style-dictionary/transforms/attribute/figma-opacity.js +10 -0
  219. package/design-tokens/style-dictionary/transforms/attribute/figma-shadow.js +66 -0
  220. package/design-tokens/style-dictionary/transforms/attribute/figma-sizing.js +16 -0
  221. package/design-tokens/style-dictionary/transforms/attribute/figma-spacing.js +15 -0
  222. package/design-tokens/style-dictionary/transforms/attribute/figma-typography.js +24 -0
  223. package/design-tokens/style-dictionary/transforms/attribute/palette.js +9 -9
  224. package/design-tokens/style-dictionary/transforms/attribute/prefix.js +11 -11
  225. package/design-tokens/style-dictionary/transforms/attribute/size.js +8 -8
  226. package/design-tokens/style-dictionary/transforms/attribute/typography.js +9 -9
  227. package/design-tokens/style-dictionary/transforms/value/figma-values.js +7 -0
  228. package/divider/divider.component.d.ts +11 -11
  229. package/divider/divider.module.d.ts +8 -8
  230. package/divider/index.d.ts +1 -1
  231. package/divider/ptsecurity-mosaic-divider.d.ts +5 -5
  232. package/divider/public-api.d.ts +2 -2
  233. package/dl/dl.component.d.ts +26 -26
  234. package/dl/dl.module.d.ts +10 -10
  235. package/dl/index.d.ts +1 -1
  236. package/dl/ptsecurity-mosaic-dl.d.ts +5 -5
  237. package/dl/public-api.d.ts +2 -2
  238. package/dropdown/dropdown-animations.d.ts +11 -11
  239. package/dropdown/dropdown-content.directive.d.ts +32 -32
  240. package/dropdown/dropdown-errors.d.ts +17 -17
  241. package/dropdown/dropdown-item.component.d.ts +50 -50
  242. package/dropdown/dropdown-trigger.directive.d.ts +136 -136
  243. package/dropdown/dropdown.component.d.ts +121 -121
  244. package/dropdown/dropdown.module.d.ts +13 -13
  245. package/dropdown/dropdown.types.d.ts +53 -53
  246. package/dropdown/index.d.ts +1 -1
  247. package/dropdown/ptsecurity-mosaic-dropdown.d.ts +5 -5
  248. package/dropdown/public-api.d.ts +8 -8
  249. package/esm2020/autocomplete/autocomplete-origin.directive.mjs +21 -21
  250. package/esm2020/autocomplete/autocomplete-trigger.directive.mjs +555 -555
  251. package/esm2020/autocomplete/autocomplete.component.mjs +154 -154
  252. package/esm2020/autocomplete/autocomplete.module.mjs +34 -34
  253. package/esm2020/autocomplete/index.mjs +2 -2
  254. package/esm2020/autocomplete/ptsecurity-mosaic-autocomplete.mjs +4 -4
  255. package/esm2020/autocomplete/public-api.mjs +5 -5
  256. package/esm2020/button/button.component.mjs +137 -137
  257. package/esm2020/button/button.module.mjs +38 -38
  258. package/esm2020/button/index.mjs +2 -2
  259. package/esm2020/button/ptsecurity-mosaic-button.mjs +4 -4
  260. package/esm2020/button/public-api.mjs +3 -3
  261. package/esm2020/button-toggle/button-toggle.component.mjs +362 -362
  262. package/esm2020/button-toggle/button-toggle.module.mjs +19 -19
  263. package/esm2020/button-toggle/index.mjs +2 -2
  264. package/esm2020/button-toggle/ptsecurity-mosaic-button-toggle.mjs +4 -4
  265. package/esm2020/button-toggle/public-api.mjs +3 -3
  266. package/esm2020/card/card.component.mjs +80 -80
  267. package/esm2020/card/card.module.mjs +30 -30
  268. package/esm2020/card/index.mjs +2 -2
  269. package/esm2020/card/ptsecurity-mosaic-card.mjs +4 -4
  270. package/esm2020/card/public-api.mjs +3 -3
  271. package/esm2020/checkbox/checkbox-config.mjs +6 -6
  272. package/esm2020/checkbox/checkbox-module.mjs +19 -19
  273. package/esm2020/checkbox/checkbox-required-validator.mjs +27 -27
  274. package/esm2020/checkbox/checkbox.mjs +316 -316
  275. package/esm2020/checkbox/index.mjs +2 -2
  276. package/esm2020/checkbox/ptsecurity-mosaic-checkbox.mjs +4 -4
  277. package/esm2020/checkbox/public-api.mjs +5 -5
  278. package/esm2020/core/animation/animation.mjs +8 -8
  279. package/esm2020/core/animation/fade-animations.mjs +9 -9
  280. package/esm2020/core/animation/index.mjs +4 -4
  281. package/esm2020/core/animation/select-animations.mjs +45 -45
  282. package/esm2020/core/common-behaviors/color.mjs +30 -30
  283. package/esm2020/core/common-behaviors/common-module.mjs +83 -83
  284. package/esm2020/core/common-behaviors/constructor.mjs +2 -2
  285. package/esm2020/core/common-behaviors/disabled.mjs +17 -17
  286. package/esm2020/core/common-behaviors/error-state.mjs +31 -31
  287. package/esm2020/core/common-behaviors/index.mjs +6 -6
  288. package/esm2020/core/common-behaviors/tabindex.mjs +18 -18
  289. package/esm2020/core/error/error-options.mjs +26 -26
  290. package/esm2020/core/formatters/date/formatter.mjs +359 -359
  291. package/esm2020/core/formatters/date/templates/en-US.mjs +281 -281
  292. package/esm2020/core/formatters/date/templates/ru-RU.mjs +281 -281
  293. package/esm2020/core/formatters/index.mjs +20 -20
  294. package/esm2020/core/formatters/number/formatter.mjs +105 -105
  295. package/esm2020/core/forms/forms-module.mjs +24 -24
  296. package/esm2020/core/forms/forms.directive.mjs +66 -66
  297. package/esm2020/core/forms/index.mjs +3 -3
  298. package/esm2020/core/highlight/highlight.pipe.mjs +17 -17
  299. package/esm2020/core/highlight/index.mjs +19 -19
  300. package/esm2020/core/index.mjs +2 -2
  301. package/esm2020/core/label/label-options.mjs +4 -4
  302. package/esm2020/core/line/line.mjs +70 -70
  303. package/esm2020/core/option/action.mjs +121 -121
  304. package/esm2020/core/option/index.mjs +5 -5
  305. package/esm2020/core/option/optgroup.mjs +31 -31
  306. package/esm2020/core/option/option-module.mjs +21 -21
  307. package/esm2020/core/option/option.mjs +257 -257
  308. package/esm2020/core/overlay/overlay-position-map.mjs +244 -244
  309. package/esm2020/core/pop-up/constants.mjs +34 -34
  310. package/esm2020/core/pop-up/index.mjs +4 -4
  311. package/esm2020/core/pop-up/pop-up-trigger.mjs +239 -239
  312. package/esm2020/core/pop-up/pop-up.mjs +94 -94
  313. package/esm2020/core/ptsecurity-mosaic-core.mjs +4 -4
  314. package/esm2020/core/public-api.mjs +18 -18
  315. package/esm2020/core/select/constants.mjs +27 -27
  316. package/esm2020/core/select/errors.mjs +26 -26
  317. package/esm2020/core/select/events.mjs +2 -2
  318. package/esm2020/core/select/index.mjs +4 -4
  319. package/esm2020/core/selection/constants.mjs +6 -6
  320. package/esm2020/core/selection/index.mjs +4 -4
  321. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +49 -49
  322. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.module.mjs +18 -18
  323. package/esm2020/core/services/measure-scrollbar.service.mjs +48 -48
  324. package/esm2020/core/utils/index.mjs +2 -2
  325. package/esm2020/core/utils/public-api.mjs +2 -2
  326. package/esm2020/core/utils/utils.mjs +5 -5
  327. package/esm2020/core/validation/index.mjs +2 -2
  328. package/esm2020/core/validation/validation.mjs +118 -118
  329. package/esm2020/core/version.mjs +3 -3
  330. package/esm2020/datepicker/calendar-body.component.mjs +106 -106
  331. package/esm2020/datepicker/calendar.component.mjs +362 -362
  332. package/esm2020/datepicker/datepicker-animations.mjs +32 -32
  333. package/esm2020/datepicker/datepicker-errors.mjs +6 -6
  334. package/esm2020/datepicker/datepicker-input.directive.mjs +938 -938
  335. package/esm2020/datepicker/datepicker-intl.mjs +40 -40
  336. package/esm2020/datepicker/datepicker-module.mjs +107 -107
  337. package/esm2020/datepicker/datepicker-toggle.component.mjs +86 -86
  338. package/esm2020/datepicker/datepicker.component.mjs +404 -404
  339. package/esm2020/datepicker/index.mjs +2 -2
  340. package/esm2020/datepicker/month-view.component.mjs +257 -257
  341. package/esm2020/datepicker/multi-year-view.component.mjs +218 -218
  342. package/esm2020/datepicker/ptsecurity-mosaic-datepicker.mjs +4 -4
  343. package/esm2020/datepicker/public-api.mjs +12 -12
  344. package/esm2020/datepicker/year-view.component.mjs +253 -253
  345. package/esm2020/design-tokens/index.mjs +2 -2
  346. package/esm2020/design-tokens/legacy-2017/tokens.mjs +1167 -1138
  347. package/esm2020/design-tokens/pt-2022/tokens.mjs +1237 -1208
  348. package/esm2020/design-tokens/ptsecurity-mosaic-design-tokens.mjs +4 -4
  349. package/esm2020/design-tokens/public-api.mjs +4 -4
  350. package/esm2020/divider/divider.component.mjs +39 -39
  351. package/esm2020/divider/divider.module.mjs +18 -18
  352. package/esm2020/divider/index.mjs +2 -2
  353. package/esm2020/divider/ptsecurity-mosaic-divider.mjs +4 -4
  354. package/esm2020/divider/public-api.mjs +3 -3
  355. package/esm2020/dl/dl.component.mjs +78 -78
  356. package/esm2020/dl/dl.module.mjs +42 -42
  357. package/esm2020/dl/index.mjs +2 -2
  358. package/esm2020/dl/ptsecurity-mosaic-dl.mjs +4 -4
  359. package/esm2020/dl/public-api.mjs +3 -3
  360. package/esm2020/dropdown/dropdown-animations.mjs +41 -41
  361. package/esm2020/dropdown/dropdown-content.directive.mjs +64 -64
  362. package/esm2020/dropdown/dropdown-errors.mjs +29 -29
  363. package/esm2020/dropdown/dropdown-item.component.mjs +139 -139
  364. package/esm2020/dropdown/dropdown-trigger.directive.mjs +489 -489
  365. package/esm2020/dropdown/dropdown.component.mjs +292 -292
  366. package/esm2020/dropdown/dropdown.module.mjs +50 -50
  367. package/esm2020/dropdown/dropdown.types.mjs +24 -24
  368. package/esm2020/dropdown/index.mjs +2 -2
  369. package/esm2020/dropdown/ptsecurity-mosaic-dropdown.mjs +4 -4
  370. package/esm2020/dropdown/public-api.mjs +9 -9
  371. package/esm2020/form-field/cleaner.mjs +23 -23
  372. package/esm2020/form-field/form-field-control.mjs +5 -5
  373. package/esm2020/form-field/form-field-errors.mjs +7 -7
  374. package/esm2020/form-field/form-field.mjs +225 -225
  375. package/esm2020/form-field/form-field.module.mjs +57 -57
  376. package/esm2020/form-field/hint.mjs +34 -23
  377. package/esm2020/form-field/index.mjs +2 -2
  378. package/esm2020/form-field/password-hint.mjs +139 -139
  379. package/esm2020/form-field/prefix.mjs +13 -13
  380. package/esm2020/form-field/ptsecurity-mosaic-form-field.mjs +4 -4
  381. package/esm2020/form-field/public-api.mjs +11 -11
  382. package/esm2020/form-field/stepper.mjs +55 -55
  383. package/esm2020/form-field/suffix.mjs +13 -13
  384. package/esm2020/icon/icon.component.mjs +44 -44
  385. package/esm2020/icon/icon.module.mjs +38 -38
  386. package/esm2020/icon/index.mjs +2 -2
  387. package/esm2020/icon/ptsecurity-mosaic-icon.mjs +4 -4
  388. package/esm2020/icon/public-api.mjs +3 -3
  389. package/esm2020/index.mjs +2 -2
  390. package/esm2020/input/index.mjs +2 -2
  391. package/esm2020/input/input-errors.mjs +4 -4
  392. package/esm2020/input/input-number-validators.mjs +92 -92
  393. package/esm2020/input/input-number.mjs +163 -163
  394. package/esm2020/input/input-password.mjs +372 -372
  395. package/esm2020/input/input-value-accessor.mjs +3 -3
  396. package/esm2020/input/input.mjs +334 -334
  397. package/esm2020/input/input.module.mjs +65 -65
  398. package/esm2020/input/ptsecurity-mosaic-input.mjs +4 -4
  399. package/esm2020/input/public-api.mjs +7 -7
  400. package/esm2020/link/index.mjs +2 -2
  401. package/esm2020/link/link.component.mjs +107 -107
  402. package/esm2020/link/link.module.mjs +26 -26
  403. package/esm2020/link/ptsecurity-mosaic-link.mjs +4 -4
  404. package/esm2020/link/public-api.mjs +3 -3
  405. package/esm2020/list/index.mjs +2 -2
  406. package/esm2020/list/list-selection.component.mjs +689 -686
  407. package/esm2020/list/list.component.mjs +44 -44
  408. package/esm2020/list/list.module.mjs +55 -55
  409. package/esm2020/list/ptsecurity-mosaic-list.mjs +4 -4
  410. package/esm2020/list/public-api.mjs +4 -4
  411. package/esm2020/loader-overlay/index.mjs +2 -0
  412. package/esm2020/loader-overlay/loader-overlay.component.mjs +99 -0
  413. package/esm2020/loader-overlay/loader-overlay.module.mjs +50 -0
  414. package/esm2020/loader-overlay/ptsecurity-mosaic-loader-overlay.mjs +5 -0
  415. package/esm2020/loader-overlay/public-api.mjs +3 -0
  416. package/esm2020/modal/css-unit.pipe.mjs +17 -17
  417. package/esm2020/modal/index.mjs +2 -2
  418. package/esm2020/modal/modal-control.service.mjs +85 -85
  419. package/esm2020/modal/modal-ref.class.mjs +8 -8
  420. package/esm2020/modal/modal-util.mjs +17 -17
  421. package/esm2020/modal/modal.component.mjs +509 -501
  422. package/esm2020/modal/modal.directive.mjs +52 -52
  423. package/esm2020/modal/modal.module.mjs +72 -72
  424. package/esm2020/modal/modal.service.mjs +124 -124
  425. package/esm2020/modal/modal.type.mjs +7 -7
  426. package/esm2020/modal/ptsecurity-mosaic-modal.mjs +4 -4
  427. package/esm2020/modal/public-api.mjs +7 -7
  428. package/esm2020/navbar/index.mjs +2 -2
  429. package/esm2020/navbar/navbar-item.component.mjs +582 -582
  430. package/esm2020/navbar/navbar.component.mjs +239 -237
  431. package/esm2020/navbar/navbar.module.mjs +92 -92
  432. package/esm2020/navbar/ptsecurity-mosaic-navbar.mjs +4 -4
  433. package/esm2020/navbar/public-api.mjs +5 -5
  434. package/esm2020/navbar/vertical-navbar.animation.mjs +10 -10
  435. package/esm2020/navbar/vertical-navbar.component.mjs +114 -114
  436. package/esm2020/popover/index.mjs +2 -2
  437. package/esm2020/popover/popover-animations.mjs +16 -16
  438. package/esm2020/popover/popover-confirm.component.mjs +108 -108
  439. package/esm2020/popover/popover.component.mjs +253 -253
  440. package/esm2020/popover/popover.module.mjs +24 -24
  441. package/esm2020/popover/ptsecurity-mosaic-popover.mjs +4 -4
  442. package/esm2020/popover/public-api.mjs +5 -5
  443. package/esm2020/progress-bar/index.mjs +2 -2
  444. package/esm2020/progress-bar/progress-bar.component.mjs +42 -42
  445. package/esm2020/progress-bar/progress-bar.module.mjs +30 -30
  446. package/esm2020/progress-bar/ptsecurity-mosaic-progress-bar.mjs +4 -4
  447. package/esm2020/progress-bar/public-api.mjs +3 -3
  448. package/esm2020/progress-spinner/index.mjs +2 -2
  449. package/esm2020/progress-spinner/progress-spinner.component.mjs +46 -46
  450. package/esm2020/progress-spinner/progress-spinner.module.mjs +30 -30
  451. package/esm2020/progress-spinner/ptsecurity-mosaic-progress-spinner.mjs +4 -4
  452. package/esm2020/progress-spinner/public-api.mjs +3 -3
  453. package/esm2020/ptsecurity-mosaic.mjs +4 -4
  454. package/esm2020/public-api.mjs +2 -2
  455. package/esm2020/radio/index.mjs +2 -2
  456. package/esm2020/radio/ptsecurity-mosaic-radio.mjs +4 -4
  457. package/esm2020/radio/public-api.mjs +3 -3
  458. package/esm2020/radio/radio.component.mjs +458 -458
  459. package/esm2020/radio/radio.module.mjs +20 -20
  460. package/esm2020/select/index.mjs +2 -2
  461. package/esm2020/select/ptsecurity-mosaic-select.mjs +4 -4
  462. package/esm2020/select/public-api.mjs +4 -4
  463. package/esm2020/select/select-option.directive.mjs +65 -65
  464. package/esm2020/select/select.component.mjs +1117 -1117
  465. package/esm2020/select/select.module.mjs +73 -73
  466. package/esm2020/sidebar/index.mjs +2 -2
  467. package/esm2020/sidebar/ptsecurity-mosaic-sidebar.mjs +4 -4
  468. package/esm2020/sidebar/public-api.mjs +3 -3
  469. package/esm2020/sidebar/sidebar-animations.mjs +23 -23
  470. package/esm2020/sidebar/sidebar.component.mjs +146 -146
  471. package/esm2020/sidebar/sidebar.module.mjs +30 -30
  472. package/esm2020/sidepanel/index.mjs +2 -2
  473. package/esm2020/sidepanel/ptsecurity-mosaic-sidepanel.mjs +4 -4
  474. package/esm2020/sidepanel/public-api.mjs +7 -7
  475. package/esm2020/sidepanel/sidepanel-animations.mjs +26 -26
  476. package/esm2020/sidepanel/sidepanel-config.mjs +26 -26
  477. package/esm2020/sidepanel/sidepanel-container.component.mjs +106 -106
  478. package/esm2020/sidepanel/sidepanel-directives.mjs +159 -159
  479. package/esm2020/sidepanel/sidepanel-ref.mjs +53 -53
  480. package/esm2020/sidepanel/sidepanel.module.mjs +74 -74
  481. package/esm2020/sidepanel/sidepanel.service.mjs +167 -167
  482. package/esm2020/splitter/index.mjs +2 -2
  483. package/esm2020/splitter/ptsecurity-mosaic-splitter.mjs +4 -4
  484. package/esm2020/splitter/public-api.mjs +3 -3
  485. package/esm2020/splitter/splitter.component.mjs +482 -482
  486. package/esm2020/splitter/splitter.module.mjs +40 -40
  487. package/esm2020/table/index.mjs +2 -2
  488. package/esm2020/table/ptsecurity-mosaic-table.mjs +4 -4
  489. package/esm2020/table/public-api.mjs +3 -3
  490. package/esm2020/table/table.component.mjs +16 -16
  491. package/esm2020/table/table.module.mjs +30 -30
  492. package/esm2020/tabs/index.mjs +2 -2
  493. package/esm2020/tabs/paginated-tab-header.mjs +479 -479
  494. package/esm2020/tabs/ptsecurity-mosaic-tabs.mjs +4 -4
  495. package/esm2020/tabs/public-api.mjs +11 -11
  496. package/esm2020/tabs/tab-body.component.mjs +178 -178
  497. package/esm2020/tabs/tab-content.directive.mjs +15 -15
  498. package/esm2020/tabs/tab-group.component.mjs +350 -350
  499. package/esm2020/tabs/tab-header.component.mjs +67 -67
  500. package/esm2020/tabs/tab-label-wrapper.directive.mjs +78 -78
  501. package/esm2020/tabs/tab-label.directive.mjs +17 -17
  502. package/esm2020/tabs/tab-nav-bar/index.mjs +2 -2
  503. package/esm2020/tabs/tab-nav-bar/tab-nav-bar.mjs +110 -110
  504. package/esm2020/tabs/tab.component.mjs +133 -133
  505. package/esm2020/tabs/tabs-animations.mjs +24 -24
  506. package/esm2020/tabs/tabs.module.mjs +104 -104
  507. package/esm2020/tags/index.mjs +2 -2
  508. package/esm2020/tags/ptsecurity-mosaic-tags.mjs +4 -4
  509. package/esm2020/tags/public-api.mjs +6 -6
  510. package/esm2020/tags/tag-default-options.mjs +4 -4
  511. package/esm2020/tags/tag-input.mjs +229 -229
  512. package/esm2020/tags/tag-list.component.mjs +722 -722
  513. package/esm2020/tags/tag-text-control.mjs +2 -2
  514. package/esm2020/tags/tag.component.mjs +375 -375
  515. package/esm2020/tags/tag.module.mjs +56 -56
  516. package/esm2020/textarea/index.mjs +2 -2
  517. package/esm2020/textarea/ptsecurity-mosaic-textarea.mjs +4 -4
  518. package/esm2020/textarea/public-api.mjs +3 -3
  519. package/esm2020/textarea/textarea.component.mjs +269 -269
  520. package/esm2020/textarea/textarea.module.mjs +21 -21
  521. package/esm2020/timepicker/index.mjs +2 -2
  522. package/esm2020/timepicker/ptsecurity-mosaic-timepicker.mjs +4 -4
  523. package/esm2020/timepicker/public-api.mjs +4 -4
  524. package/esm2020/timepicker/timepicker.constants.mjs +25 -25
  525. package/esm2020/timepicker/timepicker.directive.mjs +665 -665
  526. package/esm2020/timepicker/timepicker.module.mjs +34 -34
  527. package/esm2020/toggle/index.mjs +2 -2
  528. package/esm2020/toggle/ptsecurity-mosaic-toggle.mjs +4 -4
  529. package/esm2020/toggle/public-api.mjs +3 -3
  530. package/esm2020/toggle/toggle.component.mjs +158 -158
  531. package/esm2020/toggle/toggle.module.mjs +20 -20
  532. package/esm2020/tooltip/index.mjs +2 -2
  533. package/esm2020/tooltip/ptsecurity-mosaic-tooltip.mjs +4 -4
  534. package/esm2020/tooltip/public-api.mjs +3 -3
  535. package/esm2020/tooltip/tooltip.animations.mjs +19 -19
  536. package/esm2020/tooltip/tooltip.component.mjs +295 -295
  537. package/esm2020/tooltip/tooltip.module.mjs +43 -43
  538. package/esm2020/tree/control/base-tree-control.mjs +60 -60
  539. package/esm2020/tree/control/flat-tree-control.mjs +126 -126
  540. package/esm2020/tree/control/nested-tree-control.mjs +41 -41
  541. package/esm2020/tree/control/tree-control.mjs +2 -2
  542. package/esm2020/tree/data-source/flat-data-source.mjs +162 -162
  543. package/esm2020/tree/data-source/nested-data-source.mjs +30 -30
  544. package/esm2020/tree/index.mjs +2 -2
  545. package/esm2020/tree/node.mjs +31 -31
  546. package/esm2020/tree/outlet.mjs +15 -15
  547. package/esm2020/tree/padding.directive.mjs +113 -113
  548. package/esm2020/tree/ptsecurity-mosaic-tree.mjs +4 -4
  549. package/esm2020/tree/public-api.mjs +16 -16
  550. package/esm2020/tree/toggle.mjs +80 -80
  551. package/esm2020/tree/tree-base.mjs +243 -243
  552. package/esm2020/tree/tree-errors.mjs +36 -36
  553. package/esm2020/tree/tree-option.component.mjs +248 -248
  554. package/esm2020/tree/tree-selection.component.mjs +541 -540
  555. package/esm2020/tree/tree.mjs +15 -15
  556. package/esm2020/tree/tree.module.mjs +57 -57
  557. package/esm2020/tree-select/index.mjs +2 -2
  558. package/esm2020/tree-select/ptsecurity-mosaic-tree-select.mjs +4 -4
  559. package/esm2020/tree-select/public-api.mjs +3 -3
  560. package/esm2020/tree-select/tree-select.component.mjs +939 -939
  561. package/esm2020/tree-select/tree-select.module.mjs +47 -47
  562. package/fesm2015/ptsecurity-mosaic-autocomplete.mjs +726 -726
  563. package/fesm2015/ptsecurity-mosaic-autocomplete.mjs.map +1 -1
  564. package/fesm2015/ptsecurity-mosaic-button-toggle.mjs +367 -367
  565. package/fesm2015/ptsecurity-mosaic-button-toggle.mjs.map +1 -1
  566. package/fesm2015/ptsecurity-mosaic-button.mjs +160 -160
  567. package/fesm2015/ptsecurity-mosaic-button.mjs.map +1 -1
  568. package/fesm2015/ptsecurity-mosaic-card.mjs +96 -96
  569. package/fesm2015/ptsecurity-mosaic-card.mjs.map +1 -1
  570. package/fesm2015/ptsecurity-mosaic-checkbox.mjs +348 -348
  571. package/fesm2015/ptsecurity-mosaic-checkbox.mjs.map +1 -1
  572. package/fesm2015/ptsecurity-mosaic-core.mjs +2652 -2652
  573. package/fesm2015/ptsecurity-mosaic-core.mjs.map +1 -1
  574. package/fesm2015/ptsecurity-mosaic-datepicker.mjs +2682 -2682
  575. package/fesm2015/ptsecurity-mosaic-datepicker.mjs.map +1 -1
  576. package/fesm2015/ptsecurity-mosaic-design-tokens.mjs +2432 -2345
  577. package/fesm2015/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
  578. package/fesm2015/ptsecurity-mosaic-divider.mjs +48 -48
  579. package/fesm2015/ptsecurity-mosaic-divider.mjs.map +1 -1
  580. package/fesm2015/ptsecurity-mosaic-dl.mjs +108 -108
  581. package/fesm2015/ptsecurity-mosaic-dl.mjs.map +1 -1
  582. package/fesm2015/ptsecurity-mosaic-dropdown.mjs +1069 -1069
  583. package/fesm2015/ptsecurity-mosaic-dropdown.mjs.map +1 -1
  584. package/fesm2015/ptsecurity-mosaic-form-field.mjs +522 -512
  585. package/fesm2015/ptsecurity-mosaic-form-field.mjs.map +1 -1
  586. package/fesm2015/ptsecurity-mosaic-icon.mjs +73 -73
  587. package/fesm2015/ptsecurity-mosaic-icon.mjs.map +1 -1
  588. package/fesm2015/ptsecurity-mosaic-input.mjs +979 -979
  589. package/fesm2015/ptsecurity-mosaic-input.mjs.map +1 -1
  590. package/fesm2015/ptsecurity-mosaic-link.mjs +121 -121
  591. package/fesm2015/ptsecurity-mosaic-link.mjs.map +1 -1
  592. package/fesm2015/ptsecurity-mosaic-list.mjs +765 -762
  593. package/fesm2015/ptsecurity-mosaic-list.mjs.map +1 -1
  594. package/fesm2015/ptsecurity-mosaic-loader-overlay.mjs +155 -0
  595. package/fesm2015/ptsecurity-mosaic-loader-overlay.mjs.map +1 -0
  596. package/fesm2015/ptsecurity-mosaic-modal.mjs +833 -824
  597. package/fesm2015/ptsecurity-mosaic-modal.mjs.map +1 -1
  598. package/fesm2015/ptsecurity-mosaic-navbar.mjs +996 -994
  599. package/fesm2015/ptsecurity-mosaic-navbar.mjs.map +1 -1
  600. package/fesm2015/ptsecurity-mosaic-popover.mjs +364 -364
  601. package/fesm2015/ptsecurity-mosaic-popover.mjs.map +1 -1
  602. package/fesm2015/ptsecurity-mosaic-progress-bar.mjs +61 -61
  603. package/fesm2015/ptsecurity-mosaic-progress-bar.mjs.map +1 -1
  604. package/fesm2015/ptsecurity-mosaic-progress-spinner.mjs +65 -65
  605. package/fesm2015/ptsecurity-mosaic-progress-spinner.mjs.map +1 -1
  606. package/fesm2015/ptsecurity-mosaic-radio.mjs +464 -464
  607. package/fesm2015/ptsecurity-mosaic-radio.mjs.map +1 -1
  608. package/fesm2015/ptsecurity-mosaic-select.mjs +1213 -1213
  609. package/fesm2015/ptsecurity-mosaic-select.mjs.map +1 -1
  610. package/fesm2015/ptsecurity-mosaic-sidebar.mjs +185 -185
  611. package/fesm2015/ptsecurity-mosaic-sidebar.mjs.map +1 -1
  612. package/fesm2015/ptsecurity-mosaic-sidepanel.mjs +555 -555
  613. package/fesm2015/ptsecurity-mosaic-sidepanel.mjs.map +1 -1
  614. package/fesm2015/ptsecurity-mosaic-splitter.mjs +511 -511
  615. package/fesm2015/ptsecurity-mosaic-splitter.mjs.map +1 -1
  616. package/fesm2015/ptsecurity-mosaic-table.mjs +36 -36
  617. package/fesm2015/ptsecurity-mosaic-table.mjs.map +1 -1
  618. package/fesm2015/ptsecurity-mosaic-tabs.mjs +1460 -1460
  619. package/fesm2015/ptsecurity-mosaic-tabs.mjs.map +1 -1
  620. package/fesm2015/ptsecurity-mosaic-tags.mjs +1342 -1342
  621. package/fesm2015/ptsecurity-mosaic-tags.mjs.map +1 -1
  622. package/fesm2015/ptsecurity-mosaic-textarea.mjs +274 -274
  623. package/fesm2015/ptsecurity-mosaic-textarea.mjs.map +1 -1
  624. package/fesm2015/ptsecurity-mosaic-timepicker.mjs +703 -703
  625. package/fesm2015/ptsecurity-mosaic-timepicker.mjs.map +1 -1
  626. package/fesm2015/ptsecurity-mosaic-toggle.mjs +163 -163
  627. package/fesm2015/ptsecurity-mosaic-toggle.mjs.map +1 -1
  628. package/fesm2015/ptsecurity-mosaic-tooltip.mjs +344 -344
  629. package/fesm2015/ptsecurity-mosaic-tooltip.mjs.map +1 -1
  630. package/fesm2015/ptsecurity-mosaic-tree-select.mjs +954 -954
  631. package/fesm2015/ptsecurity-mosaic-tree-select.mjs.map +1 -1
  632. package/fesm2015/ptsecurity-mosaic-tree.mjs +1689 -1688
  633. package/fesm2015/ptsecurity-mosaic-tree.mjs.map +1 -1
  634. package/fesm2015/ptsecurity-mosaic.mjs +2 -2
  635. package/fesm2020/ptsecurity-mosaic-autocomplete.mjs +722 -722
  636. package/fesm2020/ptsecurity-mosaic-autocomplete.mjs.map +1 -1
  637. package/fesm2020/ptsecurity-mosaic-button-toggle.mjs +365 -365
  638. package/fesm2020/ptsecurity-mosaic-button-toggle.mjs.map +1 -1
  639. package/fesm2020/ptsecurity-mosaic-button.mjs +160 -160
  640. package/fesm2020/ptsecurity-mosaic-button.mjs.map +1 -1
  641. package/fesm2020/ptsecurity-mosaic-card.mjs +96 -96
  642. package/fesm2020/ptsecurity-mosaic-card.mjs.map +1 -1
  643. package/fesm2020/ptsecurity-mosaic-checkbox.mjs +346 -346
  644. package/fesm2020/ptsecurity-mosaic-checkbox.mjs.map +1 -1
  645. package/fesm2020/ptsecurity-mosaic-core.mjs +2681 -2681
  646. package/fesm2020/ptsecurity-mosaic-core.mjs.map +1 -1
  647. package/fesm2020/ptsecurity-mosaic-datepicker.mjs +2667 -2667
  648. package/fesm2020/ptsecurity-mosaic-datepicker.mjs.map +1 -1
  649. package/fesm2020/ptsecurity-mosaic-design-tokens.mjs +2432 -2345
  650. package/fesm2020/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
  651. package/fesm2020/ptsecurity-mosaic-divider.mjs +48 -48
  652. package/fesm2020/ptsecurity-mosaic-divider.mjs.map +1 -1
  653. package/fesm2020/ptsecurity-mosaic-dl.mjs +108 -108
  654. package/fesm2020/ptsecurity-mosaic-dl.mjs.map +1 -1
  655. package/fesm2020/ptsecurity-mosaic-dropdown.mjs +1056 -1056
  656. package/fesm2020/ptsecurity-mosaic-dropdown.mjs.map +1 -1
  657. package/fesm2020/ptsecurity-mosaic-form-field.mjs +507 -497
  658. package/fesm2020/ptsecurity-mosaic-form-field.mjs.map +1 -1
  659. package/fesm2020/ptsecurity-mosaic-icon.mjs +71 -71
  660. package/fesm2020/ptsecurity-mosaic-icon.mjs.map +1 -1
  661. package/fesm2020/ptsecurity-mosaic-input.mjs +968 -968
  662. package/fesm2020/ptsecurity-mosaic-input.mjs.map +1 -1
  663. package/fesm2020/ptsecurity-mosaic-link.mjs +120 -120
  664. package/fesm2020/ptsecurity-mosaic-link.mjs.map +1 -1
  665. package/fesm2020/ptsecurity-mosaic-list.mjs +758 -755
  666. package/fesm2020/ptsecurity-mosaic-list.mjs.map +1 -1
  667. package/fesm2020/ptsecurity-mosaic-loader-overlay.mjs +153 -0
  668. package/fesm2020/ptsecurity-mosaic-loader-overlay.mjs.map +1 -0
  669. package/fesm2020/ptsecurity-mosaic-modal.mjs +828 -820
  670. package/fesm2020/ptsecurity-mosaic-modal.mjs.map +1 -1
  671. package/fesm2020/ptsecurity-mosaic-navbar.mjs +980 -978
  672. package/fesm2020/ptsecurity-mosaic-navbar.mjs.map +1 -1
  673. package/fesm2020/ptsecurity-mosaic-popover.mjs +360 -360
  674. package/fesm2020/ptsecurity-mosaic-popover.mjs.map +1 -1
  675. package/fesm2020/ptsecurity-mosaic-progress-bar.mjs +61 -61
  676. package/fesm2020/ptsecurity-mosaic-progress-bar.mjs.map +1 -1
  677. package/fesm2020/ptsecurity-mosaic-progress-spinner.mjs +65 -65
  678. package/fesm2020/ptsecurity-mosaic-progress-spinner.mjs.map +1 -1
  679. package/fesm2020/ptsecurity-mosaic-radio.mjs +462 -462
  680. package/fesm2020/ptsecurity-mosaic-radio.mjs.map +1 -1
  681. package/fesm2020/ptsecurity-mosaic-select.mjs +1208 -1208
  682. package/fesm2020/ptsecurity-mosaic-select.mjs.map +1 -1
  683. package/fesm2020/ptsecurity-mosaic-sidebar.mjs +185 -185
  684. package/fesm2020/ptsecurity-mosaic-sidebar.mjs.map +1 -1
  685. package/fesm2020/ptsecurity-mosaic-sidepanel.mjs +552 -552
  686. package/fesm2020/ptsecurity-mosaic-sidepanel.mjs.map +1 -1
  687. package/fesm2020/ptsecurity-mosaic-splitter.mjs +511 -511
  688. package/fesm2020/ptsecurity-mosaic-splitter.mjs.map +1 -1
  689. package/fesm2020/ptsecurity-mosaic-table.mjs +36 -36
  690. package/fesm2020/ptsecurity-mosaic-table.mjs.map +1 -1
  691. package/fesm2020/ptsecurity-mosaic-tabs.mjs +1445 -1445
  692. package/fesm2020/ptsecurity-mosaic-tabs.mjs.map +1 -1
  693. package/fesm2020/ptsecurity-mosaic-tags.mjs +1335 -1335
  694. package/fesm2020/ptsecurity-mosaic-tags.mjs.map +1 -1
  695. package/fesm2020/ptsecurity-mosaic-textarea.mjs +272 -272
  696. package/fesm2020/ptsecurity-mosaic-textarea.mjs.map +1 -1
  697. package/fesm2020/ptsecurity-mosaic-timepicker.mjs +700 -700
  698. package/fesm2020/ptsecurity-mosaic-timepicker.mjs.map +1 -1
  699. package/fesm2020/ptsecurity-mosaic-toggle.mjs +163 -163
  700. package/fesm2020/ptsecurity-mosaic-toggle.mjs.map +1 -1
  701. package/fesm2020/ptsecurity-mosaic-tooltip.mjs +336 -336
  702. package/fesm2020/ptsecurity-mosaic-tooltip.mjs.map +1 -1
  703. package/fesm2020/ptsecurity-mosaic-tree-select.mjs +951 -951
  704. package/fesm2020/ptsecurity-mosaic-tree-select.mjs.map +1 -1
  705. package/fesm2020/ptsecurity-mosaic-tree.mjs +1676 -1675
  706. package/fesm2020/ptsecurity-mosaic-tree.mjs.map +1 -1
  707. package/fesm2020/ptsecurity-mosaic.mjs +2 -2
  708. package/form-field/cleaner.d.ts +7 -7
  709. package/form-field/form-field-control.d.ts +37 -37
  710. package/form-field/form-field-errors.d.ts +2 -2
  711. package/form-field/form-field.d.ts +69 -69
  712. package/form-field/form-field.module.d.ts +15 -15
  713. package/form-field/hint.d.ts +14 -6
  714. package/form-field/index.d.ts +1 -1
  715. package/form-field/password-hint.d.ts +40 -40
  716. package/form-field/prefix.d.ts +5 -5
  717. package/form-field/ptsecurity-mosaic-form-field.d.ts +5 -5
  718. package/form-field/public-api.d.ts +10 -10
  719. package/form-field/stepper.d.ts +11 -11
  720. package/form-field/suffix.d.ts +5 -5
  721. package/icon/icon.component.d.ts +18 -18
  722. package/icon/icon.module.d.ts +10 -10
  723. package/icon/index.d.ts +1 -1
  724. package/icon/ptsecurity-mosaic-icon.d.ts +5 -5
  725. package/icon/public-api.d.ts +2 -2
  726. package/index.d.ts +1 -1
  727. package/input/index.d.ts +1 -1
  728. package/input/input-errors.d.ts +1 -1
  729. package/input/input-number-validators.d.ts +39 -39
  730. package/input/input-number.d.ts +33 -33
  731. package/input/input-password.d.ts +123 -123
  732. package/input/input-value-accessor.d.ts +4 -4
  733. package/input/input.d.ts +116 -116
  734. package/input/input.module.d.ts +14 -14
  735. package/input/ptsecurity-mosaic-input.d.ts +5 -5
  736. package/input/public-api.d.ts +6 -6
  737. package/link/index.d.ts +1 -1
  738. package/link/link.component.d.ts +38 -38
  739. package/link/link.module.d.ts +9 -9
  740. package/link/ptsecurity-mosaic-link.d.ts +5 -5
  741. package/link/public-api.d.ts +2 -2
  742. package/list/index.d.ts +1 -1
  743. package/list/list-selection.component.d.ts +168 -168
  744. package/list/list.component.d.ts +18 -18
  745. package/list/list.module.d.ts +11 -11
  746. package/list/ptsecurity-mosaic-list.d.ts +5 -5
  747. package/list/public-api.d.ts +3 -3
  748. package/{toggle → loader-overlay}/README.md +0 -0
  749. package/loader-overlay/index.d.ts +1 -0
  750. package/loader-overlay/loader-overlay.component.d.ts +33 -0
  751. package/loader-overlay/loader-overlay.module.d.ts +11 -0
  752. package/loader-overlay/package.json +10 -0
  753. package/loader-overlay/ptsecurity-mosaic-loader-overlay.d.ts +5 -0
  754. package/loader-overlay/public-api.d.ts +2 -0
  755. package/modal/README.md +33 -33
  756. package/modal/css-unit.pipe.d.ts +7 -7
  757. package/modal/index.d.ts +1 -1
  758. package/modal/modal-control.service.d.ts +20 -20
  759. package/modal/modal-ref.class.d.ts +36 -36
  760. package/modal/modal-util.d.ts +12 -12
  761. package/modal/modal.component.d.ts +128 -126
  762. package/modal/modal.directive.d.ts +17 -17
  763. package/modal/modal.module.d.ts +14 -14
  764. package/modal/modal.service.d.ts +33 -33
  765. package/modal/modal.type.d.ts +60 -59
  766. package/modal/ptsecurity-mosaic-modal.d.ts +5 -5
  767. package/modal/public-api.d.ts +6 -6
  768. package/navbar/README.md +41 -41
  769. package/navbar/index.d.ts +1 -1
  770. package/navbar/navbar-item.component.d.ts +161 -161
  771. package/navbar/navbar.component.d.ts +58 -58
  772. package/navbar/navbar.module.d.ts +14 -14
  773. package/navbar/ptsecurity-mosaic-navbar.d.ts +5 -5
  774. package/navbar/public-api.d.ts +4 -4
  775. package/navbar/vertical-navbar.animation.d.ts +2 -2
  776. package/navbar/vertical-navbar.component.d.ts +23 -23
  777. package/package.json +12 -4
  778. package/popover/README.md +32 -32
  779. package/popover/index.d.ts +1 -1
  780. package/popover/popover-animations.d.ts +4 -4
  781. package/popover/popover-confirm.component.d.ts +33 -33
  782. package/popover/popover.component.d.ts +74 -74
  783. package/popover/popover.module.d.ts +12 -12
  784. package/popover/ptsecurity-mosaic-popover.d.ts +5 -5
  785. package/popover/public-api.d.ts +4 -4
  786. package/prebuilt-themes/dark-theme.css +1 -1
  787. package/prebuilt-themes/default-theme.css +1 -1
  788. package/progress-bar/index.d.ts +1 -1
  789. package/progress-bar/progress-bar.component.d.ts +18 -18
  790. package/progress-bar/progress-bar.module.d.ts +9 -9
  791. package/progress-bar/ptsecurity-mosaic-progress-bar.d.ts +5 -5
  792. package/progress-bar/public-api.d.ts +2 -2
  793. package/progress-spinner/index.d.ts +1 -1
  794. package/progress-spinner/progress-spinner.component.d.ts +19 -19
  795. package/progress-spinner/progress-spinner.module.d.ts +9 -9
  796. package/progress-spinner/ptsecurity-mosaic-progress-spinner.d.ts +5 -5
  797. package/progress-spinner/public-api.d.ts +2 -2
  798. package/ptsecurity-mosaic.d.ts +5 -5
  799. package/public-api.d.ts +1 -1
  800. package/radio/index.d.ts +1 -1
  801. package/radio/ptsecurity-mosaic-radio.d.ts +5 -5
  802. package/radio/public-api.d.ts +2 -2
  803. package/radio/radio.component.d.ts +207 -207
  804. package/radio/radio.module.d.ts +10 -10
  805. package/schematics/README.md +35 -35
  806. package/select/index.d.ts +1 -1
  807. package/select/ptsecurity-mosaic-select.d.ts +5 -5
  808. package/select/public-api.d.ts +3 -3
  809. package/select/select-option.directive.d.ts +20 -20
  810. package/select/select.component.d.ts +310 -310
  811. package/select/select.module.d.ts +15 -15
  812. package/sidebar/index.d.ts +1 -1
  813. package/sidebar/ptsecurity-mosaic-sidebar.d.ts +5 -5
  814. package/sidebar/public-api.d.ts +2 -2
  815. package/sidebar/sidebar-animations.d.ts +8 -8
  816. package/sidebar/sidebar.component.d.ts +53 -53
  817. package/sidebar/sidebar.module.d.ts +8 -8
  818. package/sidepanel/index.d.ts +1 -1
  819. package/sidepanel/ptsecurity-mosaic-sidepanel.d.ts +5 -5
  820. package/sidepanel/public-api.d.ts +6 -6
  821. package/sidepanel/sidepanel-animations.d.ts +14 -14
  822. package/sidepanel/sidepanel-config.d.ts +25 -25
  823. package/sidepanel/sidepanel-container.component.d.ts +45 -45
  824. package/sidepanel/sidepanel-directives.d.ts +50 -50
  825. package/sidepanel/sidepanel-ref.d.ts +24 -24
  826. package/sidepanel/sidepanel.module.d.ts +15 -15
  827. package/sidepanel/sidepanel.service.d.ts +57 -57
  828. package/splitter/index.d.ts +1 -1
  829. package/splitter/ptsecurity-mosaic-splitter.d.ts +5 -5
  830. package/splitter/public-api.d.ts +2 -2
  831. package/splitter/splitter.component.d.ts +130 -130
  832. package/splitter/splitter.module.d.ts +9 -9
  833. package/table/index.d.ts +1 -1
  834. package/table/ptsecurity-mosaic-table.d.ts +5 -5
  835. package/table/public-api.d.ts +2 -2
  836. package/table/table.component.d.ts +5 -5
  837. package/table/table.module.d.ts +10 -10
  838. package/tabs/index.d.ts +1 -1
  839. package/tabs/paginated-tab-header.d.ts +179 -179
  840. package/tabs/ptsecurity-mosaic-tabs.d.ts +5 -5
  841. package/tabs/public-api.d.ts +10 -10
  842. package/tabs/tab-body.component.d.ts +95 -95
  843. package/tabs/tab-content.directive.d.ts +9 -9
  844. package/tabs/tab-group.component.d.ts +133 -133
  845. package/tabs/tab-header.component.d.ts +35 -35
  846. package/tabs/tab-label-wrapper.directive.d.ts +30 -30
  847. package/tabs/tab-label.directive.d.ts +9 -9
  848. package/tabs/tab-nav-bar/index.d.ts +1 -1
  849. package/tabs/tab-nav-bar/tab-nav-bar.d.ts +38 -38
  850. package/tabs/tab.component.d.ts +66 -66
  851. package/tabs/tabs-animations.d.ts +4 -4
  852. package/tabs/tabs.module.d.ts +20 -20
  853. package/tags/index.d.ts +1 -1
  854. package/tags/ptsecurity-mosaic-tags.d.ts +5 -5
  855. package/tags/public-api.d.ts +5 -5
  856. package/tags/tag-default-options.d.ts +8 -8
  857. package/tags/tag-input.d.ts +77 -77
  858. package/tags/tag-list.component.d.ts +240 -240
  859. package/tags/tag-text-control.d.ts +10 -10
  860. package/tags/tag.component.d.ts +135 -135
  861. package/tags/tag.module.d.ts +11 -11
  862. package/textarea/index.d.ts +1 -1
  863. package/textarea/ptsecurity-mosaic-textarea.d.ts +5 -5
  864. package/textarea/public-api.d.ts +2 -2
  865. package/textarea/textarea.component.d.ts +111 -111
  866. package/textarea/textarea.module.d.ts +11 -11
  867. package/timepicker/index.d.ts +1 -1
  868. package/timepicker/ptsecurity-mosaic-timepicker.d.ts +5 -5
  869. package/timepicker/public-api.d.ts +3 -3
  870. package/timepicker/timepicker.constants.d.ts +20 -20
  871. package/timepicker/timepicker.directive.d.ts +146 -146
  872. package/timepicker/timepicker.module.d.ts +11 -11
  873. package/toggle/index.d.ts +1 -1
  874. package/toggle/ptsecurity-mosaic-toggle.d.ts +5 -5
  875. package/toggle/public-api.d.ts +2 -2
  876. package/toggle/toggle.component.d.ts +54 -54
  877. package/toggle/toggle.module.d.ts +10 -10
  878. package/tooltip/index.d.ts +1 -1
  879. package/tooltip/ptsecurity-mosaic-tooltip.d.ts +5 -5
  880. package/tooltip/public-api.d.ts +2 -2
  881. package/tooltip/tooltip.animations.d.ts +8 -8
  882. package/tooltip/tooltip.component.d.ts +91 -91
  883. package/tooltip/tooltip.module.d.ts +9 -9
  884. package/tree/control/base-tree-control.d.ts +40 -40
  885. package/tree/control/flat-tree-control.d.ts +52 -52
  886. package/tree/control/nested-tree-control.d.ts +19 -19
  887. package/tree/control/tree-control.d.ts +44 -44
  888. package/tree/data-source/flat-data-source.d.ts +80 -80
  889. package/tree/data-source/nested-data-source.d.ts +15 -15
  890. package/tree/index.d.ts +1 -1
  891. package/tree/node.d.ts +34 -34
  892. package/tree/outlet.d.ts +9 -9
  893. package/tree/padding.directive.d.ts +47 -47
  894. package/tree/ptsecurity-mosaic-tree.d.ts +5 -5
  895. package/tree/public-api.d.ts +15 -15
  896. package/tree/toggle.d.ts +28 -28
  897. package/tree/tree-base.d.ts +97 -97
  898. package/tree/tree-errors.d.ts +25 -25
  899. package/tree/tree-option.component.d.ts +72 -72
  900. package/tree/tree-selection.component.d.ts +132 -132
  901. package/tree/tree.d.ts +6 -6
  902. package/tree/tree.module.d.ts +16 -16
  903. package/tree-select/index.d.ts +1 -1
  904. package/tree-select/ptsecurity-mosaic-tree-select.d.ts +5 -5
  905. package/tree-select/public-api.d.ts +2 -2
  906. package/tree-select/tree-select.component.d.ts +277 -277
  907. 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.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
- }] }];
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.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
- }]
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.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
- }]
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.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 });
588
- /** @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", 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.11", 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.11", 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.11", ngImport: i0, type: McModalService });
795
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", 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.11", ngImport: i0, type: McModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
802
- /** @nocollapse */ /** @nocollapse */ McModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", 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.11", 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.11", 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 };