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