@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,844 +16,852 @@ import { A11yModule } from '@angular/cdk/a11y';
16
16
  import { ComponentPortal } from '@angular/cdk/portal';
17
17
  import { filter } from 'rxjs/operators';
18
18
 
19
- class McModalControlService {
20
- constructor(parentService) {
21
- this.parentService = parentService;
22
- // @ts-ignore
23
- this.rootOpenModals = this.parentService ? null : [];
24
- // @ts-ignore
25
- this.rootAfterAllClose = this.parentService ? null : new Subject();
26
- // @ts-ignore
27
- this.rootRegisteredMetaMap = this.parentService ? null : new Map();
28
- }
29
- // Track singleton afterAllClose through over the injection tree
30
- get afterAllClose() {
31
- return this.parentService ? this.parentService.afterAllClose : this.rootAfterAllClose;
32
- }
33
- // Track singleton openModals array through over the injection tree
34
- get openModals() {
35
- return this.parentService ? this.parentService.openModals : this.rootOpenModals;
36
- }
37
- // Registered modal for later usage
38
- get registeredMetaMap() {
39
- return this.parentService ? this.parentService.registeredMetaMap : this.rootRegisteredMetaMap;
40
- }
41
- // Register a modal to listen its open/close
42
- registerModal(modalRef) {
43
- if (!this.hasRegistered(modalRef)) {
44
- const afterOpenSubscription = modalRef.afterOpen.subscribe(() => this.openModals.push(modalRef));
45
- const afterCloseSubscription = modalRef.afterClose.subscribe(() => this.removeOpenModal(modalRef));
46
- this.registeredMetaMap.set(modalRef, { modalRef, afterOpenSubscription, afterCloseSubscription });
47
- this.handleMultipleMasks(modalRef);
48
- }
49
- }
50
- hasRegistered(modalRef) {
51
- return this.registeredMetaMap.has(modalRef);
52
- }
53
- // Close all registered opened modals
54
- closeAll() {
55
- let i = this.openModals.length;
56
- while (i--) {
57
- this.openModals[i].close();
58
- }
59
- }
60
- removeOpenModal(modalRef) {
61
- const index = this.openModals.indexOf(modalRef);
62
- if (index > -1) {
63
- this.openModals.splice(index, 1);
64
- if (!this.openModals.length) {
65
- this.afterAllClose.next();
66
- }
67
- }
68
- }
69
- handleMultipleMasks(modalRef) {
70
- const modals = Array.from(this.registeredMetaMap.values()).map((v) => v.modalRef);
71
- if (modals.filter((modal) => modal.mcVisible).length > 1) {
72
- const otherModals = modals.splice(0, modals.length - 1)
73
- .filter((modal) => modal.mcVisible && modal.mcMask);
74
- // hide other masks
75
- setTimeout(() => {
76
- otherModals.forEach((modal) => {
77
- modal.getInstance().mcMask = false;
78
- modal.markForCheck();
79
- });
80
- });
81
- // show other masks on close
82
- modalRef.afterClose.subscribe(() => {
83
- otherModals.forEach((modal) => {
84
- modal.getInstance().mcMask = true;
85
- modal.markForCheck();
86
- });
87
- });
88
- }
89
- }
90
- }
91
- /** @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 });
92
- /** @nocollapse */ /** @nocollapse */ McModalControlService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McModalControlService });
93
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McModalControlService, decorators: [{
94
- type: Injectable
95
- }], ctorParameters: function () { return [{ type: McModalControlService, decorators: [{
96
- type: Optional
97
- }, {
98
- type: SkipSelf
19
+ class McModalControlService {
20
+ constructor(parentService) {
21
+ this.parentService = parentService;
22
+ // @ts-ignore
23
+ this.rootOpenModals = this.parentService ? null : [];
24
+ // @ts-ignore
25
+ this.rootAfterAllClose = this.parentService ? null : new Subject();
26
+ // @ts-ignore
27
+ this.rootRegisteredMetaMap = this.parentService ? null : new Map();
28
+ }
29
+ // Track singleton afterAllClose through over the injection tree
30
+ get afterAllClose() {
31
+ return this.parentService ? this.parentService.afterAllClose : this.rootAfterAllClose;
32
+ }
33
+ // Track singleton openModals array through over the injection tree
34
+ get openModals() {
35
+ return this.parentService ? this.parentService.openModals : this.rootOpenModals;
36
+ }
37
+ // Registered modal for later usage
38
+ get registeredMetaMap() {
39
+ return this.parentService ? this.parentService.registeredMetaMap : this.rootRegisteredMetaMap;
40
+ }
41
+ // Register a modal to listen its open/close
42
+ registerModal(modalRef) {
43
+ if (!this.hasRegistered(modalRef)) {
44
+ const afterOpenSubscription = modalRef.afterOpen.subscribe(() => this.openModals.push(modalRef));
45
+ const afterCloseSubscription = modalRef.afterClose.subscribe(() => this.removeOpenModal(modalRef));
46
+ this.registeredMetaMap.set(modalRef, { modalRef, afterOpenSubscription, afterCloseSubscription });
47
+ this.handleMultipleMasks(modalRef);
48
+ }
49
+ }
50
+ hasRegistered(modalRef) {
51
+ return this.registeredMetaMap.has(modalRef);
52
+ }
53
+ // Close all registered opened modals
54
+ closeAll() {
55
+ let i = this.openModals.length;
56
+ while (i--) {
57
+ this.openModals[i].close();
58
+ }
59
+ }
60
+ removeOpenModal(modalRef) {
61
+ const index = this.openModals.indexOf(modalRef);
62
+ if (index > -1) {
63
+ this.openModals.splice(index, 1);
64
+ if (!this.openModals.length) {
65
+ this.afterAllClose.next();
66
+ }
67
+ }
68
+ }
69
+ handleMultipleMasks(modalRef) {
70
+ const modals = Array.from(this.registeredMetaMap.values()).map((v) => v.modalRef);
71
+ if (modals.filter((modal) => modal.mcVisible).length > 1) {
72
+ const otherModals = modals.splice(0, modals.length - 1)
73
+ .filter((modal) => modal.mcVisible && modal.mcMask);
74
+ // hide other masks
75
+ setTimeout(() => {
76
+ otherModals.forEach((modal) => {
77
+ modal.getInstance().mcMask = false;
78
+ modal.markForCheck();
79
+ });
80
+ });
81
+ // show other masks on close
82
+ modalRef.afterClose.subscribe(() => {
83
+ otherModals.forEach((modal) => {
84
+ modal.getInstance().mcMask = true;
85
+ modal.markForCheck();
86
+ });
87
+ });
88
+ }
89
+ }
90
+ }
91
+ /** @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 });
92
+ /** @nocollapse */ /** @nocollapse */ McModalControlService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McModalControlService });
93
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McModalControlService, decorators: [{
94
+ type: Injectable
95
+ }], ctorParameters: function () { return [{ type: McModalControlService, decorators: [{
96
+ type: Optional
97
+ }, {
98
+ type: SkipSelf
99
99
  }] }]; } });
100
100
 
101
- /**
102
- * API class that public to users to handle the modal instance.
103
- * McModalRef is aim to avoid accessing to the modal instance directly by users.
104
- */
105
- // tslint:disable-next-line:naming-convention
106
- class McModalRef {
101
+ /**
102
+ * API class that public to users to handle the modal instance.
103
+ * McModalRef is aim to avoid accessing to the modal instance directly by users.
104
+ */
105
+ // tslint:disable-next-line:naming-convention
106
+ class McModalRef {
107
107
  }
108
108
 
109
- class ModalUtil {
110
- constructor(document) {
111
- this.document = document;
112
- this.lastPosition = { x: -1, y: -1 };
113
- this.listenDocumentClick();
114
- }
115
- getLastClickPosition() {
116
- return this.lastPosition;
117
- }
118
- listenDocumentClick() {
119
- this.document.addEventListener('click', (event) => {
120
- this.lastPosition = { x: event.clientX, y: event.clientY };
121
- });
122
- }
123
- }
109
+ class ModalUtil {
110
+ constructor(document) {
111
+ this.document = document;
112
+ this.lastPosition = { x: -1, y: -1 };
113
+ this.listenDocumentClick();
114
+ }
115
+ getLastClickPosition() {
116
+ return this.lastPosition;
117
+ }
118
+ listenDocumentClick() {
119
+ this.document.addEventListener('click', (event) => {
120
+ this.lastPosition = { x: event.clientX, y: event.clientY };
121
+ });
122
+ }
123
+ }
124
124
  const modalUtilObject = new ModalUtil(document);
125
125
 
126
- var ModalSize;
127
- (function (ModalSize) {
128
- ModalSize["Small"] = "small";
129
- ModalSize["Normal"] = "normal";
130
- ModalSize["Large"] = "large";
126
+ var ModalSize;
127
+ (function (ModalSize) {
128
+ ModalSize["Small"] = "small";
129
+ ModalSize["Normal"] = "normal";
130
+ ModalSize["Large"] = "large";
131
131
  })(ModalSize || (ModalSize = {}));
132
132
 
133
- class McModalTitle {
134
- }
135
- /** @nocollapse */ /** @nocollapse */ McModalTitle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McModalTitle, deps: [], target: i0.ɵɵFactoryTarget.Directive });
136
- /** @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 });
137
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McModalTitle, decorators: [{
138
- type: Directive,
139
- args: [{
140
- selector: `[mc-modal-title], mc-modal-title, [mcModalTitle]`,
141
- host: {
142
- class: 'mc-modal-header mc-modal-title'
143
- }
144
- }]
145
- }] });
146
- class McModalBody {
147
- }
148
- /** @nocollapse */ /** @nocollapse */ McModalBody.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McModalBody, deps: [], target: i0.ɵɵFactoryTarget.Directive });
149
- /** @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 });
150
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McModalBody, decorators: [{
151
- type: Directive,
152
- args: [{
153
- selector: `[mc-modal-body], mc-modal-body, [mcModalBody]`,
154
- host: {
155
- class: 'mc-modal-body'
156
- }
157
- }]
158
- }] });
159
- class McModalFooter {
160
- }
161
- /** @nocollapse */ /** @nocollapse */ McModalFooter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McModalFooter, deps: [], target: i0.ɵɵFactoryTarget.Directive });
162
- /** @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 });
163
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McModalFooter, decorators: [{
164
- type: Directive,
165
- args: [{
166
- selector: `[mc-modal-footer], mc-modal-footer, [mcModalFooter]`,
167
- host: {
168
- class: 'mc-modal-footer'
169
- }
170
- }]
171
- }] });
172
- class McModalMainAction {
173
- }
174
- /** @nocollapse */ /** @nocollapse */ McModalMainAction.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McModalMainAction, deps: [], target: i0.ɵɵFactoryTarget.Directive });
175
- /** @nocollapse */ /** @nocollapse */ McModalMainAction.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: McModalMainAction, selector: "[mc-modal-main-action]", ngImport: i0 });
176
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McModalMainAction, decorators: [{
177
- type: Directive,
178
- args: [{
179
- selector: `[mc-modal-main-action]`
180
- }]
133
+ class McModalTitle {
134
+ }
135
+ /** @nocollapse */ /** @nocollapse */ McModalTitle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McModalTitle, deps: [], target: i0.ɵɵFactoryTarget.Directive });
136
+ /** @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 });
137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McModalTitle, decorators: [{
138
+ type: Directive,
139
+ args: [{
140
+ selector: `[mc-modal-title], mc-modal-title, [mcModalTitle]`,
141
+ host: {
142
+ class: 'mc-modal-header mc-modal-title'
143
+ }
144
+ }]
145
+ }] });
146
+ class McModalBody {
147
+ }
148
+ /** @nocollapse */ /** @nocollapse */ McModalBody.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McModalBody, deps: [], target: i0.ɵɵFactoryTarget.Directive });
149
+ /** @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 });
150
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McModalBody, decorators: [{
151
+ type: Directive,
152
+ args: [{
153
+ selector: `[mc-modal-body], mc-modal-body, [mcModalBody]`,
154
+ host: {
155
+ class: 'mc-modal-body'
156
+ }
157
+ }]
158
+ }] });
159
+ class McModalFooter {
160
+ }
161
+ /** @nocollapse */ /** @nocollapse */ McModalFooter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McModalFooter, deps: [], target: i0.ɵɵFactoryTarget.Directive });
162
+ /** @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 });
163
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McModalFooter, decorators: [{
164
+ type: Directive,
165
+ args: [{
166
+ selector: `[mc-modal-footer], mc-modal-footer, [mcModalFooter]`,
167
+ host: {
168
+ class: 'mc-modal-footer'
169
+ }
170
+ }]
171
+ }] });
172
+ class McModalMainAction {
173
+ }
174
+ /** @nocollapse */ /** @nocollapse */ McModalMainAction.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McModalMainAction, deps: [], target: i0.ɵɵFactoryTarget.Directive });
175
+ /** @nocollapse */ /** @nocollapse */ McModalMainAction.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: McModalMainAction, selector: "[mc-modal-main-action]", ngImport: i0 });
176
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McModalMainAction, decorators: [{
177
+ type: Directive,
178
+ args: [{
179
+ selector: `[mc-modal-main-action]`
180
+ }]
181
181
  }] });
182
182
 
183
- class CssUnitPipe {
184
- transform(value, defaultUnit = 'px') {
185
- const formatted = +value;
186
- return isNaN(formatted) ? `${value}` : `${formatted}${defaultUnit}`;
187
- }
188
- }
189
- /** @nocollapse */ /** @nocollapse */ CssUnitPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CssUnitPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
190
- /** @nocollapse */ /** @nocollapse */ CssUnitPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CssUnitPipe, name: "toCssUnit" });
191
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CssUnitPipe, decorators: [{
192
- type: Pipe,
193
- args: [{
194
- name: 'toCssUnit'
195
- }]
183
+ class CssUnitPipe {
184
+ transform(value, defaultUnit = 'px') {
185
+ const formatted = +value;
186
+ return isNaN(formatted) ? `${value}` : `${formatted}${defaultUnit}`;
187
+ }
188
+ }
189
+ /** @nocollapse */ /** @nocollapse */ CssUnitPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CssUnitPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
190
+ /** @nocollapse */ /** @nocollapse */ CssUnitPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CssUnitPipe, name: "toCssUnit" });
191
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CssUnitPipe, decorators: [{
192
+ type: Pipe,
193
+ args: [{
194
+ name: 'toCssUnit'
195
+ }]
196
196
  }] });
197
197
 
198
- // Duration when perform animations (ms)
199
- const MODAL_ANIMATE_DURATION = 200;
200
- class McModalComponent extends McModalRef {
201
- constructor(overlay, renderer, cfr, elementRef, viewContainer, modalControl, changeDetector, document) {
202
- super();
203
- this.overlay = overlay;
204
- this.renderer = renderer;
205
- this.cfr = cfr;
206
- this.elementRef = elementRef;
207
- this.viewContainer = viewContainer;
208
- this.modalControl = modalControl;
209
- this.changeDetector = changeDetector;
210
- this.document = document;
211
- this.themePalette = ThemePalette;
212
- this.mcModalType = 'default';
213
- this._mcVisible = false;
214
- this.mcVisibleChange = new EventEmitter();
215
- this.mcZIndex = 1000;
216
- this.mcSize = ModalSize.Normal;
217
- this.mcCloseByESC = true;
218
- this._mcClosable = true;
219
- this._mcMask = true;
220
- this._mcMaskClosable = false;
221
- // Trigger when modal open(visible) after animations
222
- this.mcAfterOpen = new EventEmitter();
223
- // Trigger when modal leave-animation over
224
- this.mcAfterClose = new EventEmitter();
225
- this.mcOkType = 'primary';
226
- this._mcOkLoading = false;
227
- this.mcOnOk = new EventEmitter();
228
- this._mcCancelLoading = false;
229
- this.mcOnCancel = new EventEmitter();
230
- this.isTopOverflow = false;
231
- this.isBottomOverflow = false;
232
- // The origin point that animation based on
233
- this.transformOrigin = '0px 0px 0px';
234
- this.mcGetContainer = () => this.overlay.create();
235
- }
236
- get mcVisible() { return this._mcVisible; }
237
- set mcVisible(value) { this._mcVisible = value; }
238
- get mcClosable() { return this._mcClosable; }
239
- set mcClosable(value) { this._mcClosable = value; }
240
- get mcMask() { return this._mcMask; }
241
- set mcMask(value) { this._mcMask = value; }
242
- get mcMaskClosable() { return this._mcMaskClosable; }
243
- set mcMaskClosable(value) { this._mcMaskClosable = value; }
244
- get mcOkLoading() { return this._mcOkLoading; }
245
- set mcOkLoading(value) { this._mcOkLoading = value; }
246
- get mcCancelLoading() { return this._mcCancelLoading; }
247
- set mcCancelLoading(value) { this._mcCancelLoading = value; }
248
- // Observable alias for mcAfterOpen
249
- get afterOpen() {
250
- return this.mcAfterOpen.asObservable();
251
- }
252
- // Observable alias for mcAfterClose
253
- get afterClose() {
254
- return this.mcAfterClose.asObservable();
255
- }
256
- get okText() {
257
- return this.mcOkText;
258
- }
259
- get cancelText() {
260
- return this.mcCancelText;
261
- }
262
- // Indicate whether this dialog should hidden
263
- get hidden() {
264
- return !this.mcVisible && !this.animationState;
265
- }
266
- ngOnInit() {
267
- // Create component along without View
268
- if (this.isComponent(this.mcContent)) {
269
- this.createDynamicComponent(this.mcContent);
270
- }
271
- // Setup default button options
272
- if (this.isModalButtons(this.mcFooter)) {
273
- this.mcFooter = this.formatModalButtons(this.mcFooter);
274
- }
275
- if (this.isComponent(this.mcComponent)) {
276
- this.createDynamicComponent(this.mcComponent);
277
- }
278
- // Place the modal dom to elsewhere
279
- this.container = typeof this.mcGetContainer === 'function' ? this.mcGetContainer() : this.mcGetContainer;
280
- if (this.container instanceof HTMLElement) {
281
- this.container.appendChild(this.elementRef.nativeElement);
282
- }
283
- else if (this.container instanceof OverlayRef) {
284
- // NOTE: only attach the dom to overlay, the view container is not changed actually
285
- this.container.overlayElement.appendChild(this.elementRef.nativeElement);
286
- }
287
- // Register modal when afterOpen/afterClose is stable
288
- this.modalControl.registerModal(this);
289
- }
290
- // [NOTE] NOT available when using by service!
291
- // Because ngOnChanges never be called when using by service,
292
- // here we can't support "mcContent"(Component) etc. as inputs that initialized dynamically.
293
- // BUT: User also can change "mcContent" dynamically to trigger UI changes
294
- // (provided you don't use Component that needs initializations)
295
- ngOnChanges(changes) {
296
- if (changes.mcVisible) {
297
- // Do not trigger animation while initializing
298
- this.handleVisibleStateChange(this.mcVisible, !changes.mcVisible.firstChange);
299
- }
300
- }
301
- ngAfterViewInit() {
302
- // If using Component, it is the time to attach View while bodyContainer is ready
303
- if (this.contentComponentRef) {
304
- this.bodyContainer.insert(this.contentComponentRef.hostView);
305
- }
306
- this.getElement().getElementsByTagName('button')[0]?.focus();
307
- for (const autoFocusedButton of this.autoFocusedButtons.toArray()) {
308
- if (autoFocusedButton.nativeElement.autofocus) {
309
- autoFocusedButton.nativeElement.focus();
310
- break;
311
- }
312
- }
313
- this.checkOverflow();
314
- }
315
- ngOnDestroy() {
316
- if (this.container instanceof OverlayRef) {
317
- this.container.dispose();
318
- }
319
- }
320
- checkOverflow() {
321
- const nativeElement = this.modalBody?.nativeElement;
322
- if (!nativeElement) {
323
- return;
324
- }
325
- const scrollTop = nativeElement.scrollTop;
326
- const offsetHeight = nativeElement.offsetHeight;
327
- const scrollHeight = nativeElement.scrollHeight;
328
- this.isTopOverflow = scrollTop > 0;
329
- this.isBottomOverflow = scrollTop + offsetHeight < scrollHeight;
330
- }
331
- open() {
332
- this.changeVisibleFromInside(true);
333
- }
334
- close(result) {
335
- this.changeVisibleFromInside(false, result);
336
- }
337
- // Destroy equals Close
338
- destroy(result) {
339
- this.close(result);
340
- }
341
- markForCheck() {
342
- this.changeDetector.markForCheck();
343
- }
344
- triggerOk() {
345
- this.onClickOkCancel('ok');
346
- }
347
- triggerCancel() {
348
- this.onClickOkCancel('cancel');
349
- }
350
- getInstance() {
351
- return this;
352
- }
353
- getContentComponentRef() {
354
- return this.contentComponentRef;
355
- }
356
- getContentComponent() {
357
- return this.contentComponentRef && this.contentComponentRef.instance;
358
- }
359
- getElement() {
360
- return this.elementRef && this.elementRef.nativeElement;
361
- }
362
- getMcFooter() {
363
- return this.getElement().getElementsByClassName('mc-modal-footer').item(0);
364
- }
365
- onClickMask($event) {
366
- if (this.mcMask &&
367
- this.mcMaskClosable &&
368
- $event.target.classList.contains('mc-modal-wrap') &&
369
- this.mcVisible) {
370
- this.onClickOkCancel('cancel');
371
- }
372
- }
373
- // tslint:disable-next-line: no-reserved-keywords
374
- isModalType(type) {
375
- return this.mcModalType === type;
376
- }
377
- onKeyDown(event) {
378
- // tslint:disable-next-line:deprecation .key isn't supported in Edge
379
- if (event.keyCode === ESCAPE && this.container && (this.container instanceof OverlayRef)) {
380
- this.close();
381
- event.preventDefault();
382
- }
383
- // tslint:disable-next-line:deprecation .key isn't supported in Edge
384
- if (event.ctrlKey && event.keyCode === ENTER) {
385
- if (this.mcModalType === 'confirm') {
386
- this.triggerOk();
387
- }
388
- this.getElement().querySelector('[mc-modal-main-action]')?.click();
389
- event.preventDefault();
390
- }
391
- }
392
- // AoT
393
- onClickCloseBtn() {
394
- if (this.mcVisible) {
395
- this.onClickOkCancel('cancel');
396
- }
397
- }
398
- // AoT
399
- // tslint:disable-next-line: no-reserved-keywords
400
- onClickOkCancel(type) {
401
- const trigger = { ok: this.mcOnOk, cancel: this.mcOnCancel }[type];
402
- const loadingKey = { ok: 'mcOkLoading', cancel: 'mcCancelLoading' }[type];
403
- if (trigger instanceof EventEmitter) {
404
- trigger.emit(this.getContentComponent());
405
- }
406
- else if (typeof trigger === 'function') {
407
- const result = trigger(this.getContentComponent());
408
- // Users can return "false" to prevent closing by default
409
- const caseClose = (doClose) => (doClose !== false) && this.close(doClose);
410
- if (isPromise(result)) {
411
- this[loadingKey] = true;
412
- const handleThen = (doClose) => {
413
- this[loadingKey] = false;
414
- caseClose(doClose);
415
- };
416
- result.then(handleThen).catch(handleThen);
417
- }
418
- else {
419
- caseClose(result);
420
- }
421
- }
422
- }
423
- // AoT
424
- isNonEmptyString(value) {
425
- return typeof value === 'string' && value !== '';
426
- }
427
- // AoT
428
- isTemplateRef(value) {
429
- return value instanceof TemplateRef;
430
- }
431
- // AoT
432
- isComponent(value) {
433
- return value instanceof Type;
434
- }
435
- // AoT
436
- isModalButtons(value) {
437
- return Array.isArray(value) && value.length > 0;
438
- }
439
- // Lookup a button's property, if the prop is a function, call & then return the result, otherwise, return itself.
440
- // AoT
441
- getButtonCallableProp(options, prop) {
442
- const value = options[prop];
443
- const args = [];
444
- if (this.contentComponentRef) {
445
- args.push(this.contentComponentRef.instance);
446
- }
447
- return typeof value === 'function' ? value.apply(options, args) : value;
448
- }
449
- // On mcFooter's modal button click
450
- // AoT
451
- onButtonClick(button) {
452
- // Call onClick directly
453
- // tslint:disable-next-line:no-inferred-empty-object-type rule seems to be broken
454
- const result = this.getButtonCallableProp(button, 'onClick');
455
- if (isPromise(result)) {
456
- button.loading = true;
457
- result.then(() => button.loading = false).catch(() => button.loading = false);
458
- }
459
- }
460
- // Do rest things when visible state changed
461
- handleVisibleStateChange(visible, animation = true, closeResult) {
462
- // Hide scrollbar at the first time when shown up
463
- if (visible) {
464
- this.changeBodyOverflow(1);
465
- }
466
- return Promise
467
- .resolve(animation && this.animateTo(visible))
468
- // Emit open/close event after animations over
469
- .then(() => {
470
- if (visible) {
471
- this.mcAfterOpen.emit();
472
- }
473
- else {
474
- this.mcAfterClose.emit(closeResult);
475
- // Show/hide scrollbar when animation is over
476
- this.changeBodyOverflow();
477
- }
478
- });
479
- }
480
- // Change mcVisible from inside
481
- changeVisibleFromInside(visible, closeResult) {
482
- if (this.mcVisible !== visible) {
483
- // Change mcVisible value immediately
484
- this.mcVisible = visible;
485
- this.mcVisibleChange.emit(visible);
486
- return this.handleVisibleStateChange(visible, true, closeResult);
487
- }
488
- return Promise.resolve();
489
- }
490
- changeAnimationState(state) {
491
- this.animationState = state;
492
- if (state) {
493
- this.maskAnimationClassMap = {
494
- [`fade-${state}`]: true,
495
- [`fade-${state}-active`]: true
496
- };
497
- this.modalAnimationClassMap = {
498
- [`zoom-${state}`]: true,
499
- [`zoom-${state}-active`]: true
500
- };
501
- }
502
- else {
503
- // @ts-ignore
504
- this.maskAnimationClassMap = this.modalAnimationClassMap = null;
505
- }
506
- if (this.contentComponentRef) {
507
- this.contentComponentRef.changeDetectorRef.markForCheck();
508
- }
509
- else {
510
- this.changeDetector.markForCheck();
511
- }
512
- }
513
- animateTo(isVisible) {
514
- // Figure out the lastest click position when shows up
515
- if (isVisible) {
516
- // [NOTE] Using timeout due to the document.click event is fired later than visible change,
517
- // so if not postponed to next event-loop, we can't get the lastest click position
518
- window.setTimeout(() => this.updateTransformOrigin());
519
- }
520
- this.changeAnimationState(isVisible ? 'enter' : 'leave');
521
- // Return when animation is over
522
- return new Promise((resolve) => {
523
- return window.setTimeout(() => {
524
- this.changeAnimationState(null);
525
- resolve(null);
526
- }, MODAL_ANIMATE_DURATION);
527
- });
528
- }
529
- formatModalButtons(buttons) {
530
- return buttons.map((button) => {
531
- return {
532
- ...{
533
- type: 'default',
534
- size: 'default',
535
- autoLoading: true,
536
- show: true,
537
- loading: false,
538
- disabled: false
539
- },
540
- ...button
541
- };
542
- });
543
- }
544
- /**
545
- * Create a component dynamically but not attach to any View
546
- * (this action will be executed when bodyContainer is ready)
547
- * @param component Component class
548
- */
549
- createDynamicComponent(component) {
550
- const factory = this.cfr.resolveComponentFactory(component);
551
- const childInjector = Injector.create({
552
- providers: [{ provide: McModalRef, useValue: this }],
553
- parent: this.viewContainer.injector
554
- });
555
- this.contentComponentRef = factory.create(childInjector);
556
- if (this.mcComponentParams) {
557
- Object.assign(this.contentComponentRef.instance, this.mcComponentParams);
558
- }
559
- // Do the first change detection immediately
560
- // (or we do detection at ngAfterViewInit, multi-changes error will be thrown)
561
- this.contentComponentRef.changeDetectorRef.detectChanges();
562
- }
563
- // Update transform-origin to the last click position on document
564
- updateTransformOrigin() {
565
- const modalElement = this.modalContainer.nativeElement;
566
- const lastPosition = modalUtilObject.getLastClickPosition();
567
- if (lastPosition) {
568
- this.transformOrigin = `${lastPosition.x - modalElement.offsetLeft}px ${lastPosition.y - modalElement.offsetTop}px 0px`;
569
- }
570
- }
571
- /**
572
- * Take care of the body's overflow to decide the existense of scrollbar
573
- * @param plusNum The number that the openModals.length will increase soon
574
- */
575
- changeBodyOverflow(plusNum = 0) {
576
- const openModals = this.modalControl.openModals;
577
- if (openModals.length + plusNum > 0) {
578
- this.renderer.setStyle(this.document.body, 'overflow', 'hidden');
579
- }
580
- else {
581
- this.renderer.removeStyle(this.document.body, 'overflow');
582
- }
583
- }
584
- }
585
- /** @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 });
586
- /** @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 });
587
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McModalComponent, decorators: [{
588
- type: Component,
589
- args: [{ selector: 'mc-modal', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
590
- '(keydown)': 'onKeyDown($event)'
591
- }, 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"] }]
592
- }], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.Renderer2 }, { type: i0.ComponentFactoryResolver }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: McModalControlService }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
593
- type: Inject,
594
- args: [DOCUMENT]
595
- }] }]; }, propDecorators: { mcModalType: [{
596
- type: Input
597
- }], mcComponent: [{
598
- type: Input
599
- }], mcContent: [{
600
- type: Input
601
- }], mcComponentParams: [{
602
- type: Input
603
- }], mcFooter: [{
604
- type: Input
605
- }], mcVisible: [{
606
- type: Input
607
- }], mcVisibleChange: [{
608
- type: Output
609
- }], mcZIndex: [{
610
- type: Input
611
- }], mcWidth: [{
612
- type: Input
613
- }], mcSize: [{
614
- type: Input
615
- }], mcWrapClassName: [{
616
- type: Input
617
- }], mcClassName: [{
618
- type: Input
619
- }], mcStyle: [{
620
- type: Input
621
- }], mcTitle: [{
622
- type: Input
623
- }], mcCloseByESC: [{
624
- type: Input
625
- }], mcClosable: [{
626
- type: Input
627
- }], mcMask: [{
628
- type: Input
629
- }], mcMaskClosable: [{
630
- type: Input
631
- }], mcMaskStyle: [{
632
- type: Input
633
- }], mcBodyStyle: [{
634
- type: Input
635
- }], mcAfterOpen: [{
636
- type: Output
637
- }], mcAfterClose: [{
638
- type: Output
639
- }], mcOkText: [{
640
- type: Input
641
- }], mcOkType: [{
642
- type: Input
643
- }], mcOkLoading: [{
644
- type: Input
645
- }], mcOnOk: [{
646
- type: Input
647
- }, {
648
- type: Output
649
- }], mcCancelText: [{
650
- type: Input
651
- }], mcCancelLoading: [{
652
- type: Input
653
- }], mcOnCancel: [{
654
- type: Input
655
- }, {
656
- type: Output
657
- }], modalContainer: [{
658
- type: ViewChild,
659
- args: ['modalContainer', { static: true }]
660
- }], bodyContainer: [{
661
- type: ViewChild,
662
- args: ['bodyContainer', { read: ViewContainerRef, static: false }]
663
- }], autoFocusedButtons: [{
664
- type: ViewChildren,
665
- args: ['autoFocusedButton', { read: ElementRef }]
666
- }], modalBody: [{
667
- type: ViewChild,
668
- args: ['modalBody']
669
- }], mcGetContainer: [{
670
- type: Input
671
- }] } });
672
- ////////////
673
- function isPromise(obj) {
674
- // tslint:disable-next-line: no-unbound-method
675
- return !!obj &&
676
- (typeof obj === 'object' || typeof obj === 'function') &&
677
- typeof obj.then === 'function' &&
678
- typeof obj.catch === 'function';
198
+ // Duration when perform animations (ms)
199
+ const MODAL_ANIMATE_DURATION = 200;
200
+ class McModalComponent extends McModalRef {
201
+ constructor(overlay, renderer, cfr, elementRef, viewContainer, modalControl, changeDetector, document) {
202
+ super();
203
+ this.overlay = overlay;
204
+ this.renderer = renderer;
205
+ this.cfr = cfr;
206
+ this.elementRef = elementRef;
207
+ this.viewContainer = viewContainer;
208
+ this.modalControl = modalControl;
209
+ this.changeDetector = changeDetector;
210
+ this.document = document;
211
+ this.themePalette = ThemePalette;
212
+ this.mcModalType = 'default';
213
+ this._mcVisible = false;
214
+ this.mcVisibleChange = new EventEmitter();
215
+ this.mcZIndex = 1000;
216
+ this.mcSize = ModalSize.Normal;
217
+ this.mcCloseByESC = true;
218
+ this._mcClosable = true;
219
+ this._mcMask = true;
220
+ this._mcMaskClosable = false;
221
+ // Trigger when modal open(visible) after animations
222
+ this.mcAfterOpen = new EventEmitter();
223
+ // Trigger when modal leave-animation over
224
+ this.mcAfterClose = new EventEmitter();
225
+ this.mcOkType = 'primary';
226
+ this.mcRestoreFocus = true;
227
+ this._mcOkLoading = false;
228
+ this.mcOnOk = new EventEmitter();
229
+ this._mcCancelLoading = false;
230
+ this.mcOnCancel = new EventEmitter();
231
+ this.isTopOverflow = false;
232
+ this.isBottomOverflow = false;
233
+ // The origin point that animation based on
234
+ this.transformOrigin = '0px 0px 0px';
235
+ this.mcGetContainer = () => this.overlay.create();
236
+ }
237
+ get mcVisible() { return this._mcVisible; }
238
+ set mcVisible(value) { this._mcVisible = value; }
239
+ get mcClosable() { return this._mcClosable; }
240
+ set mcClosable(value) { this._mcClosable = value; }
241
+ get mcMask() { return this._mcMask; }
242
+ set mcMask(value) { this._mcMask = value; }
243
+ get mcMaskClosable() { return this._mcMaskClosable; }
244
+ set mcMaskClosable(value) { this._mcMaskClosable = value; }
245
+ get mcOkLoading() { return this._mcOkLoading; }
246
+ set mcOkLoading(value) { this._mcOkLoading = value; }
247
+ get mcCancelLoading() { return this._mcCancelLoading; }
248
+ set mcCancelLoading(value) { this._mcCancelLoading = value; }
249
+ // Observable alias for mcAfterOpen
250
+ get afterOpen() {
251
+ return this.mcAfterOpen.asObservable();
252
+ }
253
+ // Observable alias for mcAfterClose
254
+ get afterClose() {
255
+ return this.mcAfterClose.asObservable();
256
+ }
257
+ get okText() {
258
+ return this.mcOkText;
259
+ }
260
+ get cancelText() {
261
+ return this.mcCancelText;
262
+ }
263
+ // Indicate whether this dialog should hidden
264
+ get hidden() {
265
+ return !this.mcVisible && !this.animationState;
266
+ }
267
+ ngOnInit() {
268
+ // Create component along without View
269
+ if (this.isComponent(this.mcContent)) {
270
+ this.createDynamicComponent(this.mcContent);
271
+ }
272
+ // Setup default button options
273
+ if (this.isModalButtons(this.mcFooter)) {
274
+ this.mcFooter = this.formatModalButtons(this.mcFooter);
275
+ }
276
+ if (this.isComponent(this.mcComponent)) {
277
+ this.createDynamicComponent(this.mcComponent);
278
+ }
279
+ // Place the modal dom to elsewhere
280
+ this.container = typeof this.mcGetContainer === 'function' ? this.mcGetContainer() : this.mcGetContainer;
281
+ if (this.container instanceof HTMLElement) {
282
+ this.container.appendChild(this.elementRef.nativeElement);
283
+ }
284
+ else if (this.container instanceof OverlayRef) {
285
+ // NOTE: only attach the dom to overlay, the view container is not changed actually
286
+ this.container.overlayElement.appendChild(this.elementRef.nativeElement);
287
+ }
288
+ // Register modal when afterOpen/afterClose is stable
289
+ this.modalControl.registerModal(this);
290
+ }
291
+ // [NOTE] NOT available when using by service!
292
+ // Because ngOnChanges never be called when using by service,
293
+ // here we can't support "mcContent"(Component) etc. as inputs that initialized dynamically.
294
+ // BUT: User also can change "mcContent" dynamically to trigger UI changes
295
+ // (provided you don't use Component that needs initializations)
296
+ ngOnChanges(changes) {
297
+ if (changes.mcVisible) {
298
+ // Do not trigger animation while initializing
299
+ this.handleVisibleStateChange(this.mcVisible, !changes.mcVisible.firstChange);
300
+ }
301
+ }
302
+ ngAfterViewInit() {
303
+ // If using Component, it is the time to attach View while bodyContainer is ready
304
+ if (this.contentComponentRef) {
305
+ this.bodyContainer.insert(this.contentComponentRef.hostView);
306
+ }
307
+ this.getElement().getElementsByTagName('button')[0]?.focus();
308
+ for (const autoFocusedButton of this.autoFocusedButtons.toArray()) {
309
+ if (autoFocusedButton.nativeElement.autofocus) {
310
+ autoFocusedButton.nativeElement.focus();
311
+ break;
312
+ }
313
+ }
314
+ this.checkOverflow();
315
+ }
316
+ ngOnDestroy() {
317
+ if (this.container instanceof OverlayRef) {
318
+ this.container.dispose();
319
+ }
320
+ }
321
+ checkOverflow() {
322
+ const nativeElement = this.modalBody?.nativeElement;
323
+ if (!nativeElement) {
324
+ return;
325
+ }
326
+ const scrollTop = nativeElement.scrollTop;
327
+ const offsetHeight = nativeElement.offsetHeight;
328
+ const scrollHeight = nativeElement.scrollHeight;
329
+ this.isTopOverflow = scrollTop > 0;
330
+ this.isBottomOverflow = scrollTop + offsetHeight < scrollHeight;
331
+ }
332
+ open() {
333
+ this.focusedElementBeforeOpen = this.document.activeElement;
334
+ this.changeVisibleFromInside(true);
335
+ }
336
+ close(result) {
337
+ if (this.mcRestoreFocus) {
338
+ this.focusedElementBeforeOpen?.focus();
339
+ }
340
+ this.changeVisibleFromInside(false, result);
341
+ this.focusedElementBeforeOpen = null;
342
+ }
343
+ // Destroy equals Close
344
+ destroy(result) {
345
+ this.close(result);
346
+ }
347
+ markForCheck() {
348
+ this.changeDetector.markForCheck();
349
+ }
350
+ triggerOk() {
351
+ this.onClickOkCancel('ok');
352
+ }
353
+ triggerCancel() {
354
+ this.onClickOkCancel('cancel');
355
+ }
356
+ getInstance() {
357
+ return this;
358
+ }
359
+ getContentComponentRef() {
360
+ return this.contentComponentRef;
361
+ }
362
+ getContentComponent() {
363
+ return this.contentComponentRef && this.contentComponentRef.instance;
364
+ }
365
+ getElement() {
366
+ return this.elementRef && this.elementRef.nativeElement;
367
+ }
368
+ getMcFooter() {
369
+ return this.getElement().getElementsByClassName('mc-modal-footer').item(0);
370
+ }
371
+ onClickMask($event) {
372
+ if (this.mcMask &&
373
+ this.mcMaskClosable &&
374
+ $event.target.classList.contains('mc-modal-wrap') &&
375
+ this.mcVisible) {
376
+ this.onClickOkCancel('cancel');
377
+ }
378
+ }
379
+ // tslint:disable-next-line: no-reserved-keywords
380
+ isModalType(type) {
381
+ return this.mcModalType === type;
382
+ }
383
+ onKeyDown(event) {
384
+ // tslint:disable-next-line:deprecation .key isn't supported in Edge
385
+ if (event.keyCode === ESCAPE && this.container && (this.container instanceof OverlayRef)) {
386
+ this.close();
387
+ event.preventDefault();
388
+ }
389
+ // tslint:disable-next-line:deprecation .key isn't supported in Edge
390
+ if (event.ctrlKey && event.keyCode === ENTER) {
391
+ if (this.mcModalType === 'confirm') {
392
+ this.triggerOk();
393
+ }
394
+ this.getElement().querySelector('[mc-modal-main-action]')?.click();
395
+ event.preventDefault();
396
+ }
397
+ }
398
+ // AoT
399
+ onClickCloseBtn() {
400
+ if (this.mcVisible) {
401
+ this.onClickOkCancel('cancel');
402
+ }
403
+ }
404
+ // AoT
405
+ // tslint:disable-next-line: no-reserved-keywords
406
+ onClickOkCancel(type) {
407
+ const trigger = { ok: this.mcOnOk, cancel: this.mcOnCancel }[type];
408
+ const loadingKey = { ok: 'mcOkLoading', cancel: 'mcCancelLoading' }[type];
409
+ if (trigger instanceof EventEmitter) {
410
+ trigger.emit(this.getContentComponent());
411
+ }
412
+ else if (typeof trigger === 'function') {
413
+ const result = trigger(this.getContentComponent());
414
+ // Users can return "false" to prevent closing by default
415
+ const caseClose = (doClose) => (doClose !== false) && this.close(doClose);
416
+ if (isPromise(result)) {
417
+ this[loadingKey] = true;
418
+ const handleThen = (doClose) => {
419
+ this[loadingKey] = false;
420
+ caseClose(doClose);
421
+ };
422
+ result.then(handleThen).catch(handleThen);
423
+ }
424
+ else {
425
+ caseClose(result);
426
+ }
427
+ }
428
+ }
429
+ // AoT
430
+ isNonEmptyString(value) {
431
+ return typeof value === 'string' && value !== '';
432
+ }
433
+ // AoT
434
+ isTemplateRef(value) {
435
+ return value instanceof TemplateRef;
436
+ }
437
+ // AoT
438
+ isComponent(value) {
439
+ return value instanceof Type;
440
+ }
441
+ // AoT
442
+ isModalButtons(value) {
443
+ return Array.isArray(value) && value.length > 0;
444
+ }
445
+ // Lookup a button's property, if the prop is a function, call & then return the result, otherwise, return itself.
446
+ // AoT
447
+ getButtonCallableProp(options, prop) {
448
+ const value = options[prop];
449
+ const args = [];
450
+ if (this.contentComponentRef) {
451
+ args.push(this.contentComponentRef.instance);
452
+ }
453
+ return typeof value === 'function' ? value.apply(options, args) : value;
454
+ }
455
+ // On mcFooter's modal button click
456
+ // AoT
457
+ onButtonClick(button) {
458
+ // Call onClick directly
459
+ // tslint:disable-next-line:no-inferred-empty-object-type rule seems to be broken
460
+ const result = this.getButtonCallableProp(button, 'onClick');
461
+ if (isPromise(result)) {
462
+ button.loading = true;
463
+ result.then(() => button.loading = false).catch(() => button.loading = false);
464
+ }
465
+ }
466
+ // Do rest things when visible state changed
467
+ handleVisibleStateChange(visible, animation = true, closeResult) {
468
+ // Hide scrollbar at the first time when shown up
469
+ if (visible) {
470
+ this.changeBodyOverflow(1);
471
+ }
472
+ return Promise
473
+ .resolve(animation && this.animateTo(visible))
474
+ // Emit open/close event after animations over
475
+ .then(() => {
476
+ if (visible) {
477
+ this.mcAfterOpen.emit();
478
+ }
479
+ else {
480
+ this.mcAfterClose.emit(closeResult);
481
+ // Show/hide scrollbar when animation is over
482
+ this.changeBodyOverflow();
483
+ }
484
+ });
485
+ }
486
+ // Change mcVisible from inside
487
+ changeVisibleFromInside(visible, closeResult) {
488
+ if (this.mcVisible !== visible) {
489
+ // Change mcVisible value immediately
490
+ this.mcVisible = visible;
491
+ this.mcVisibleChange.emit(visible);
492
+ return this.handleVisibleStateChange(visible, true, closeResult);
493
+ }
494
+ return Promise.resolve();
495
+ }
496
+ changeAnimationState(state) {
497
+ this.animationState = state;
498
+ if (state) {
499
+ this.maskAnimationClassMap = {
500
+ [`fade-${state}`]: true,
501
+ [`fade-${state}-active`]: true
502
+ };
503
+ this.modalAnimationClassMap = {
504
+ [`zoom-${state}`]: true,
505
+ [`zoom-${state}-active`]: true
506
+ };
507
+ }
508
+ else {
509
+ // @ts-ignore
510
+ this.maskAnimationClassMap = this.modalAnimationClassMap = null;
511
+ }
512
+ if (this.contentComponentRef) {
513
+ this.contentComponentRef.changeDetectorRef.markForCheck();
514
+ }
515
+ else {
516
+ this.changeDetector.markForCheck();
517
+ }
518
+ }
519
+ animateTo(isVisible) {
520
+ // Figure out the lastest click position when shows up
521
+ if (isVisible) {
522
+ // [NOTE] Using timeout due to the document.click event is fired later than visible change,
523
+ // so if not postponed to next event-loop, we can't get the lastest click position
524
+ window.setTimeout(() => this.updateTransformOrigin());
525
+ }
526
+ this.changeAnimationState(isVisible ? 'enter' : 'leave');
527
+ // Return when animation is over
528
+ return new Promise((resolve) => {
529
+ return window.setTimeout(() => {
530
+ this.changeAnimationState(null);
531
+ resolve(null);
532
+ }, MODAL_ANIMATE_DURATION);
533
+ });
534
+ }
535
+ formatModalButtons(buttons) {
536
+ return buttons.map((button) => {
537
+ return {
538
+ ...{
539
+ type: 'default',
540
+ size: 'default',
541
+ autoLoading: true,
542
+ show: true,
543
+ loading: false,
544
+ disabled: false
545
+ },
546
+ ...button
547
+ };
548
+ });
549
+ }
550
+ /**
551
+ * Create a component dynamically but not attach to any View
552
+ * (this action will be executed when bodyContainer is ready)
553
+ * @param component Component class
554
+ */
555
+ createDynamicComponent(component) {
556
+ const factory = this.cfr.resolveComponentFactory(component);
557
+ const childInjector = Injector.create({
558
+ providers: [{ provide: McModalRef, useValue: this }],
559
+ parent: this.viewContainer.injector
560
+ });
561
+ this.contentComponentRef = factory.create(childInjector);
562
+ if (this.mcComponentParams) {
563
+ Object.assign(this.contentComponentRef.instance, this.mcComponentParams);
564
+ }
565
+ // Do the first change detection immediately
566
+ // (or we do detection at ngAfterViewInit, multi-changes error will be thrown)
567
+ this.contentComponentRef.changeDetectorRef.detectChanges();
568
+ }
569
+ // Update transform-origin to the last click position on document
570
+ updateTransformOrigin() {
571
+ const modalElement = this.modalContainer.nativeElement;
572
+ const lastPosition = modalUtilObject.getLastClickPosition();
573
+ if (lastPosition) {
574
+ this.transformOrigin = `${lastPosition.x - modalElement.offsetLeft}px ${lastPosition.y - modalElement.offsetTop}px 0px`;
575
+ }
576
+ }
577
+ /**
578
+ * Take care of the body's overflow to decide the existense of scrollbar
579
+ * @param plusNum The number that the openModals.length will increase soon
580
+ */
581
+ changeBodyOverflow(plusNum = 0) {
582
+ const openModals = this.modalControl.openModals;
583
+ if (openModals.length + plusNum > 0) {
584
+ this.renderer.setStyle(this.document.body, 'overflow', 'hidden');
585
+ }
586
+ else {
587
+ this.renderer.removeStyle(this.document.body, 'overflow');
588
+ }
589
+ }
590
+ }
591
+ /** @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 });
592
+ /** @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 });
593
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McModalComponent, decorators: [{
594
+ type: Component,
595
+ args: [{ selector: 'mc-modal', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
596
+ '(keydown)': 'onKeyDown($event)'
597
+ }, 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"] }]
598
+ }], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.Renderer2 }, { type: i0.ComponentFactoryResolver }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: McModalControlService }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
599
+ type: Inject,
600
+ args: [DOCUMENT]
601
+ }] }]; }, propDecorators: { mcModalType: [{
602
+ type: Input
603
+ }], mcComponent: [{
604
+ type: Input
605
+ }], mcContent: [{
606
+ type: Input
607
+ }], mcComponentParams: [{
608
+ type: Input
609
+ }], mcFooter: [{
610
+ type: Input
611
+ }], mcVisible: [{
612
+ type: Input
613
+ }], mcVisibleChange: [{
614
+ type: Output
615
+ }], mcZIndex: [{
616
+ type: Input
617
+ }], mcWidth: [{
618
+ type: Input
619
+ }], mcSize: [{
620
+ type: Input
621
+ }], mcWrapClassName: [{
622
+ type: Input
623
+ }], mcClassName: [{
624
+ type: Input
625
+ }], mcStyle: [{
626
+ type: Input
627
+ }], mcTitle: [{
628
+ type: Input
629
+ }], mcCloseByESC: [{
630
+ type: Input
631
+ }], mcClosable: [{
632
+ type: Input
633
+ }], mcMask: [{
634
+ type: Input
635
+ }], mcMaskClosable: [{
636
+ type: Input
637
+ }], mcMaskStyle: [{
638
+ type: Input
639
+ }], mcBodyStyle: [{
640
+ type: Input
641
+ }], mcAfterOpen: [{
642
+ type: Output
643
+ }], mcAfterClose: [{
644
+ type: Output
645
+ }], mcOkText: [{
646
+ type: Input
647
+ }], mcOkType: [{
648
+ type: Input
649
+ }], mcRestoreFocus: [{
650
+ type: Input
651
+ }], mcOkLoading: [{
652
+ type: Input
653
+ }], mcOnOk: [{
654
+ type: Input
655
+ }, {
656
+ type: Output
657
+ }], mcCancelText: [{
658
+ type: Input
659
+ }], mcCancelLoading: [{
660
+ type: Input
661
+ }], mcOnCancel: [{
662
+ type: Input
663
+ }, {
664
+ type: Output
665
+ }], modalContainer: [{
666
+ type: ViewChild,
667
+ args: ['modalContainer', { static: true }]
668
+ }], bodyContainer: [{
669
+ type: ViewChild,
670
+ args: ['bodyContainer', { read: ViewContainerRef, static: false }]
671
+ }], autoFocusedButtons: [{
672
+ type: ViewChildren,
673
+ args: ['autoFocusedButton', { read: ElementRef }]
674
+ }], modalBody: [{
675
+ type: ViewChild,
676
+ args: ['modalBody']
677
+ }], mcGetContainer: [{
678
+ type: Input
679
+ }] } });
680
+ ////////////
681
+ function isPromise(obj) {
682
+ // tslint:disable-next-line: no-unbound-method
683
+ return !!obj &&
684
+ (typeof obj === 'object' || typeof obj === 'function') &&
685
+ typeof obj.then === 'function' &&
686
+ typeof obj.catch === 'function';
679
687
  }
680
688
 
681
- // A builder used for managing service creating modals
682
- class ModalBuilderForService {
683
- constructor(overlay, options = {}) {
684
- this.overlay = overlay;
685
- this.createModal();
686
- if (!('mcGetContainer' in options)) {
687
- options.mcGetContainer = undefined;
688
- }
689
- this.changeProps(options);
690
- this.modalRef.instance.open();
691
- this.modalRef.instance.mcAfterClose.subscribe(() => this.destroyModal());
692
- this.overlayRef.keydownEvents()
693
- // @ts-ignore
694
- .pipe(filter((event) => {
695
- // tslint:disable-next-line:deprecation replacement .key isn't supported in Edge
696
- return event.keyCode === ESCAPE && options.mcCloseByESC;
697
- }))
698
- .subscribe(() => this.modalRef.instance.close());
699
- }
700
- getInstance() {
701
- return this.modalRef && this.modalRef.instance;
702
- }
703
- destroyModal() {
704
- if (this.modalRef) {
705
- this.overlayRef.dispose();
706
- this.modalRef = null;
707
- }
708
- }
709
- changeProps(options) {
710
- if (this.modalRef) {
711
- // here not limit user's inputs at runtime
712
- Object.assign(this.modalRef.instance, options);
713
- }
714
- }
715
- // Create component to ApplicationRef
716
- createModal() {
717
- this.overlayRef = this.overlay.create();
718
- this.modalRef = this.overlayRef.attach(new ComponentPortal(McModalComponent));
719
- }
720
- }
721
- class McModalService {
722
- constructor(overlay, modalControl) {
723
- this.overlay = overlay;
724
- this.modalControl = modalControl;
725
- }
726
- // Track of the current close modals (we assume invisible is close this time)
727
- get openModals() {
728
- return this.modalControl.openModals;
729
- }
730
- get afterAllClose() {
731
- return this.modalControl.afterAllClose.asObservable();
732
- }
733
- // Closes all of the currently-open dialogs
734
- closeAll() {
735
- this.modalControl.closeAll();
736
- }
737
- create(options = {}) {
738
- if (typeof options.mcOnCancel !== 'function') {
739
- // Leave a empty function to close this modal by default
740
- // tslint:disable-next-line
741
- options.mcOnCancel = () => { };
742
- }
743
- if (!('mcCloseByESC' in options)) {
744
- options.mcCloseByESC = true;
745
- }
746
- // Remove the Cancel button if the user not specify a Cancel button
747
- if (!('mcCancelText' in options)) {
748
- options.mcCancelText = undefined;
749
- }
750
- // Remove the Ok button if the user not specify a Ok button
751
- if (!('mcOkText' in options)) {
752
- options.mcOkText = undefined;
753
- }
754
- // Remove the footer if the user not specify a footer
755
- if (!('mcFooter' in options)) {
756
- options.mcFooter = undefined;
757
- }
758
- return new ModalBuilderForService(this.overlay, options).getInstance();
759
- }
760
- confirm(options = {}, confirmType = 'confirm') {
761
- if ('mcFooter' in options) {
762
- console.warn(`The Confirm-Modal doesn't support "mcFooter", this property will be ignored.`);
763
- }
764
- // NOTE: only support function currently by calling confirm()
765
- if (typeof options.mcOnOk !== 'function') {
766
- // Leave a empty function to close this modal by default
767
- // tslint:disable-next-line
768
- options.mcOnOk = () => { };
769
- }
770
- options.mcModalType = 'confirm';
771
- options.mcClassName = `mc-confirm mc-confirm-${confirmType} ${options.mcClassName || ''}`;
772
- return this.create(options);
773
- }
774
- open(options = {}) {
775
- options.mcModalType = 'custom';
776
- return this.create(options);
777
- }
778
- success(options = {}) {
779
- return this.simpleConfirm(options, 'success');
780
- }
781
- // tslint:disable-next-line: no-reserved-keywords
782
- delete(options = {}) {
783
- return this.simpleConfirm(options, 'warn');
784
- }
785
- simpleConfirm(options = {}, confirmType) {
786
- return this.confirm(options, confirmType);
787
- }
788
- }
789
- /** @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 });
790
- /** @nocollapse */ /** @nocollapse */ McModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McModalService });
791
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McModalService, decorators: [{
792
- type: Injectable
689
+ // A builder used for managing service creating modals
690
+ class ModalBuilderForService {
691
+ constructor(overlay, options = {}) {
692
+ this.overlay = overlay;
693
+ this.createModal();
694
+ if (!('mcGetContainer' in options)) {
695
+ options.mcGetContainer = undefined;
696
+ }
697
+ this.changeProps(options);
698
+ this.modalRef.instance.open();
699
+ this.modalRef.instance.mcAfterClose.subscribe(() => this.destroyModal());
700
+ this.overlayRef.keydownEvents()
701
+ // @ts-ignore
702
+ .pipe(filter((event) => {
703
+ // tslint:disable-next-line:deprecation replacement .key isn't supported in Edge
704
+ return event.keyCode === ESCAPE && options.mcCloseByESC;
705
+ }))
706
+ .subscribe(() => this.modalRef.instance.close());
707
+ }
708
+ getInstance() {
709
+ return this.modalRef && this.modalRef.instance;
710
+ }
711
+ destroyModal() {
712
+ if (this.modalRef) {
713
+ this.overlayRef.dispose();
714
+ this.modalRef = null;
715
+ }
716
+ }
717
+ changeProps(options) {
718
+ if (this.modalRef) {
719
+ // here not limit user's inputs at runtime
720
+ Object.assign(this.modalRef.instance, options);
721
+ }
722
+ }
723
+ // Create component to ApplicationRef
724
+ createModal() {
725
+ this.overlayRef = this.overlay.create();
726
+ this.modalRef = this.overlayRef.attach(new ComponentPortal(McModalComponent));
727
+ }
728
+ }
729
+ class McModalService {
730
+ constructor(overlay, modalControl) {
731
+ this.overlay = overlay;
732
+ this.modalControl = modalControl;
733
+ }
734
+ // Track of the current close modals (we assume invisible is close this time)
735
+ get openModals() {
736
+ return this.modalControl.openModals;
737
+ }
738
+ get afterAllClose() {
739
+ return this.modalControl.afterAllClose.asObservable();
740
+ }
741
+ // Closes all of the currently-open dialogs
742
+ closeAll() {
743
+ this.modalControl.closeAll();
744
+ }
745
+ create(options = {}) {
746
+ if (typeof options.mcOnCancel !== 'function') {
747
+ // Leave a empty function to close this modal by default
748
+ // tslint:disable-next-line
749
+ options.mcOnCancel = () => { };
750
+ }
751
+ if (!('mcCloseByESC' in options)) {
752
+ options.mcCloseByESC = true;
753
+ }
754
+ // Remove the Cancel button if the user not specify a Cancel button
755
+ if (!('mcCancelText' in options)) {
756
+ options.mcCancelText = undefined;
757
+ }
758
+ // Remove the Ok button if the user not specify a Ok button
759
+ if (!('mcOkText' in options)) {
760
+ options.mcOkText = undefined;
761
+ }
762
+ // Remove the footer if the user not specify a footer
763
+ if (!('mcFooter' in options)) {
764
+ options.mcFooter = undefined;
765
+ }
766
+ return new ModalBuilderForService(this.overlay, options).getInstance();
767
+ }
768
+ confirm(options = {}, confirmType = 'confirm') {
769
+ if ('mcFooter' in options) {
770
+ console.warn(`The Confirm-Modal doesn't support "mcFooter", this property will be ignored.`);
771
+ }
772
+ // NOTE: only support function currently by calling confirm()
773
+ if (typeof options.mcOnOk !== 'function') {
774
+ // Leave a empty function to close this modal by default
775
+ // tslint:disable-next-line
776
+ options.mcOnOk = () => { };
777
+ }
778
+ options.mcModalType = 'confirm';
779
+ options.mcClassName = `mc-confirm mc-confirm-${confirmType} ${options.mcClassName || ''}`;
780
+ return this.create(options);
781
+ }
782
+ open(options = {}) {
783
+ options.mcModalType = 'custom';
784
+ return this.create(options);
785
+ }
786
+ success(options = {}) {
787
+ return this.simpleConfirm(options, 'success');
788
+ }
789
+ // tslint:disable-next-line: no-reserved-keywords
790
+ delete(options = {}) {
791
+ return this.simpleConfirm(options, 'warn');
792
+ }
793
+ simpleConfirm(options = {}, confirmType) {
794
+ return this.confirm(options, confirmType);
795
+ }
796
+ }
797
+ /** @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 });
798
+ /** @nocollapse */ /** @nocollapse */ McModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McModalService });
799
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McModalService, decorators: [{
800
+ type: Injectable
793
801
  }], ctorParameters: function () { return [{ type: i1.Overlay }, { type: McModalControlService }]; } });
794
802
 
795
- class McModalModule {
796
- }
797
- /** @nocollapse */ /** @nocollapse */ McModalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
798
- /** @nocollapse */ /** @nocollapse */ McModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McModalModule, declarations: [McModalComponent,
799
- McModalTitle,
800
- McModalBody,
801
- McModalFooter,
802
- CssUnitPipe,
803
- McModalMainAction], imports: [CommonModule,
804
- OverlayModule,
805
- A11yModule,
806
- McButtonModule,
807
- McIconModule], exports: [McModalComponent,
808
- McModalTitle,
809
- McModalBody,
810
- McModalFooter,
811
- McModalMainAction] });
812
- /** @nocollapse */ /** @nocollapse */ McModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McModalModule, providers: [
813
- McModalControlService,
814
- McModalService
815
- ], imports: [[
816
- CommonModule,
817
- OverlayModule,
818
- A11yModule,
819
- McButtonModule,
820
- McIconModule
821
- ]] });
822
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McModalModule, decorators: [{
823
- type: NgModule,
824
- args: [{
825
- imports: [
826
- CommonModule,
827
- OverlayModule,
828
- A11yModule,
829
- McButtonModule,
830
- McIconModule
831
- ],
832
- exports: [
833
- McModalComponent,
834
- McModalTitle,
835
- McModalBody,
836
- McModalFooter,
837
- McModalMainAction
838
- ],
839
- declarations: [
840
- McModalComponent,
841
- McModalTitle,
842
- McModalBody,
843
- McModalFooter,
844
- CssUnitPipe,
845
- McModalMainAction
846
- ],
847
- providers: [
848
- McModalControlService,
849
- McModalService
850
- ],
851
- entryComponents: [McModalComponent]
852
- }]
803
+ class McModalModule {
804
+ }
805
+ /** @nocollapse */ /** @nocollapse */ McModalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
806
+ /** @nocollapse */ /** @nocollapse */ McModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McModalModule, declarations: [McModalComponent,
807
+ McModalTitle,
808
+ McModalBody,
809
+ McModalFooter,
810
+ CssUnitPipe,
811
+ McModalMainAction], imports: [CommonModule,
812
+ OverlayModule,
813
+ A11yModule,
814
+ McButtonModule,
815
+ McIconModule], exports: [McModalComponent,
816
+ McModalTitle,
817
+ McModalBody,
818
+ McModalFooter,
819
+ McModalMainAction] });
820
+ /** @nocollapse */ /** @nocollapse */ McModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McModalModule, providers: [
821
+ McModalControlService,
822
+ McModalService
823
+ ], imports: [[
824
+ CommonModule,
825
+ OverlayModule,
826
+ A11yModule,
827
+ McButtonModule,
828
+ McIconModule
829
+ ]] });
830
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McModalModule, decorators: [{
831
+ type: NgModule,
832
+ args: [{
833
+ imports: [
834
+ CommonModule,
835
+ OverlayModule,
836
+ A11yModule,
837
+ McButtonModule,
838
+ McIconModule
839
+ ],
840
+ exports: [
841
+ McModalComponent,
842
+ McModalTitle,
843
+ McModalBody,
844
+ McModalFooter,
845
+ McModalMainAction
846
+ ],
847
+ declarations: [
848
+ McModalComponent,
849
+ McModalTitle,
850
+ McModalBody,
851
+ McModalFooter,
852
+ CssUnitPipe,
853
+ McModalMainAction
854
+ ],
855
+ providers: [
856
+ McModalControlService,
857
+ McModalService
858
+ ],
859
+ entryComponents: [McModalComponent]
860
+ }]
853
861
  }] });
854
862
 
855
- /**
856
- * Generated bundle index. Do not edit.
863
+ /**
864
+ * Generated bundle index. Do not edit.
857
865
  */
858
866
 
859
867
  export { McModalBody, McModalComponent, McModalFooter, McModalMainAction, McModalModule, McModalRef, McModalService, McModalTitle, ModalSize };