@ptsecurity/mosaic 12.2.1 → 13.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (913) hide show
  1. package/_theming.scss +1000 -934
  2. package/_visual.scss +849 -694
  3. package/autocomplete/README.md +0 -0
  4. package/autocomplete/package.json +5 -5
  5. package/button/README.md +0 -0
  6. package/button/button.component.d.ts +17 -14
  7. package/button/button.module.d.ts +1 -1
  8. package/button/package.json +5 -5
  9. package/button-toggle/README.md +0 -0
  10. package/button-toggle/package.json +5 -5
  11. package/card/README.md +0 -0
  12. package/card/package.json +5 -5
  13. package/checkbox/README.md +1 -0
  14. package/checkbox/package.json +5 -5
  15. package/core/formatters/date/formatter.d.ts +41 -17
  16. package/core/formatters/date/templates/en-US.d.ts +8 -8
  17. package/core/formatters/date/templates/ru-RU.d.ts +8 -8
  18. package/core/package.json +5 -5
  19. package/core/public-api.d.ts +1 -0
  20. package/core/version.d.ts +2 -0
  21. package/datepicker/README.md +0 -0
  22. package/datepicker/package.json +5 -5
  23. package/design-tokens/{tokens → legacy-2017/tokens}/components/alert.json5 +0 -0
  24. package/design-tokens/{tokens → legacy-2017/tokens}/components/autocomplete.json5 +0 -0
  25. package/design-tokens/{tokens → legacy-2017/tokens}/components/badge.json5 +0 -0
  26. package/design-tokens/{tokens → legacy-2017/tokens}/components/button-toggle.json5 +0 -0
  27. package/design-tokens/{tokens → legacy-2017/tokens}/components/button.json5 +0 -0
  28. package/design-tokens/{tokens → legacy-2017/tokens}/components/card.json5 +0 -0
  29. package/design-tokens/legacy-2017/tokens/components/checkbox.json5 +39 -0
  30. package/design-tokens/{tokens → legacy-2017/tokens}/components/datepicker.json5 +0 -0
  31. package/design-tokens/{tokens → legacy-2017/tokens}/components/divider.json5 +0 -0
  32. package/design-tokens/{tokens → legacy-2017/tokens}/components/dropdown.json5 +0 -0
  33. package/design-tokens/{tokens → legacy-2017/tokens}/components/form-field.json5 +0 -0
  34. package/design-tokens/{tokens → legacy-2017/tokens}/components/forms.json5 +0 -0
  35. package/design-tokens/{tokens → legacy-2017/tokens}/components/input.json5 +0 -0
  36. package/design-tokens/{tokens → legacy-2017/tokens}/components/link.json5 +0 -0
  37. package/design-tokens/{tokens → legacy-2017/tokens}/components/list.json5 +0 -0
  38. package/design-tokens/legacy-2017/tokens/components/modal.json5 +79 -0
  39. package/design-tokens/legacy-2017/tokens/components/navbar.json5 +69 -0
  40. package/design-tokens/{tokens → legacy-2017/tokens}/components/optgroup.json5 +0 -0
  41. package/design-tokens/{tokens → legacy-2017/tokens}/components/option.json5 +0 -0
  42. package/design-tokens/{tokens → legacy-2017/tokens}/components/popover.json5 +0 -0
  43. package/design-tokens/{tokens → legacy-2017/tokens}/components/popup.json5 +0 -0
  44. package/design-tokens/{tokens → legacy-2017/tokens}/components/progress-bar.json5 +0 -0
  45. package/design-tokens/{tokens → legacy-2017/tokens}/components/progress-spinner.json5 +0 -0
  46. package/design-tokens/legacy-2017/tokens/components/radio.json5 +44 -0
  47. package/design-tokens/{tokens → legacy-2017/tokens}/components/select.json5 +0 -0
  48. package/design-tokens/{tokens → legacy-2017/tokens}/components/sidepanel.json5 +0 -0
  49. package/design-tokens/{tokens → legacy-2017/tokens}/components/table.json5 +0 -0
  50. package/design-tokens/{tokens → legacy-2017/tokens}/components/tabs.json5 +0 -0
  51. package/design-tokens/legacy-2017/tokens/components/tags.json5 +132 -0
  52. package/design-tokens/{tokens → legacy-2017/tokens}/components/textarea.json5 +0 -0
  53. package/design-tokens/{tokens → legacy-2017/tokens}/components/timepicker.json5 +0 -0
  54. package/design-tokens/legacy-2017/tokens/components/toggle.json5 +79 -0
  55. package/design-tokens/{tokens → legacy-2017/tokens}/components/tooltip.json5 +0 -0
  56. package/design-tokens/{tokens → legacy-2017/tokens}/components/tree.json5 +0 -0
  57. package/design-tokens/{tokens → legacy-2017/tokens}/properties/aliases.json5 +0 -0
  58. package/design-tokens/{tokens → legacy-2017/tokens}/properties/colors.json5 +0 -0
  59. package/design-tokens/{tokens → legacy-2017/tokens}/properties/font.json5 +0 -0
  60. package/design-tokens/{tokens → legacy-2017/tokens}/properties/globals.json5 +0 -0
  61. package/design-tokens/{tokens → legacy-2017/tokens}/properties/padding.json5 +0 -0
  62. package/design-tokens/{tokens → legacy-2017/tokens}/properties/palette.json5 +0 -0
  63. package/design-tokens/{tokens → legacy-2017/tokens}/properties/typography.json5 +0 -0
  64. package/design-tokens/legacy-2017/tokens.d.ts +7659 -0
  65. package/design-tokens/package.json +5 -5
  66. package/design-tokens/pt-2022/tokens/components/alert.json5 +83 -0
  67. package/design-tokens/pt-2022/tokens/components/autocomplete.json5 +11 -0
  68. package/design-tokens/pt-2022/tokens/components/badge.json5 +184 -0
  69. package/design-tokens/pt-2022/tokens/components/button-toggle.json5 +10 -0
  70. package/design-tokens/pt-2022/tokens/components/button.json5 +143 -0
  71. package/design-tokens/pt-2022/tokens/components/card.json5 +51 -0
  72. package/design-tokens/pt-2022/tokens/components/checkbox.json5 +39 -0
  73. package/design-tokens/pt-2022/tokens/components/datepicker.json5 +64 -0
  74. package/design-tokens/pt-2022/tokens/components/divider.json5 +8 -0
  75. package/design-tokens/pt-2022/tokens/components/dropdown.json5 +47 -0
  76. package/design-tokens/pt-2022/tokens/components/form-field.json5 +52 -0
  77. package/design-tokens/pt-2022/tokens/components/forms.json5 +52 -0
  78. package/design-tokens/pt-2022/tokens/components/input.json5 +13 -0
  79. package/design-tokens/pt-2022/tokens/components/link.json5 +56 -0
  80. package/design-tokens/pt-2022/tokens/components/list.json5 +15 -0
  81. package/design-tokens/pt-2022/tokens/components/modal.json5 +79 -0
  82. package/design-tokens/pt-2022/tokens/components/navbar.json5 +69 -0
  83. package/design-tokens/pt-2022/tokens/components/optgroup.json5 +10 -0
  84. package/design-tokens/pt-2022/tokens/components/option.json5 +12 -0
  85. package/design-tokens/pt-2022/tokens/components/popover.json5 +68 -0
  86. package/design-tokens/pt-2022/tokens/components/popup.json5 +18 -0
  87. package/design-tokens/pt-2022/tokens/components/progress-bar.json5 +13 -0
  88. package/design-tokens/pt-2022/tokens/components/progress-spinner.json5 +7 -0
  89. package/design-tokens/pt-2022/tokens/components/radio.json5 +44 -0
  90. package/design-tokens/pt-2022/tokens/components/select.json5 +25 -0
  91. package/design-tokens/pt-2022/tokens/components/sidepanel.json5 +30 -0
  92. package/design-tokens/pt-2022/tokens/components/table.json5 +15 -0
  93. package/design-tokens/pt-2022/tokens/components/tabs.json5 +25 -0
  94. package/design-tokens/pt-2022/tokens/components/tags.json5 +132 -0
  95. package/design-tokens/pt-2022/tokens/components/textarea.json5 +12 -0
  96. package/design-tokens/pt-2022/tokens/components/timepicker.json5 +7 -0
  97. package/design-tokens/pt-2022/tokens/components/toggle.json5 +79 -0
  98. package/design-tokens/pt-2022/tokens/components/tooltip.json5 +83 -0
  99. package/design-tokens/pt-2022/tokens/components/tree.json5 +12 -0
  100. package/design-tokens/pt-2022/tokens/properties/aliases.json5 +3 -0
  101. package/design-tokens/pt-2022/tokens/properties/colors.json5 +112 -0
  102. package/design-tokens/pt-2022/tokens/properties/font.json5 +15 -0
  103. package/design-tokens/pt-2022/tokens/properties/globals.json5 +30 -0
  104. package/design-tokens/pt-2022/tokens/properties/padding.json5 +3 -0
  105. package/design-tokens/pt-2022/tokens/properties/palette.json5 +226 -0
  106. package/design-tokens/pt-2022/tokens/properties/typography.json5 +140 -0
  107. package/design-tokens/pt-2022/tokens.d.ts +8696 -0
  108. package/design-tokens/public-api.d.ts +3 -1
  109. package/design-tokens/style-dictionary/build.js +6 -0
  110. package/design-tokens/style-dictionary/configs/index.js +2 -1
  111. package/divider/README.md +0 -0
  112. package/divider/package.json +5 -5
  113. package/dropdown/dropdown-item.component.d.ts +1 -0
  114. package/dropdown/package.json +5 -5
  115. package/esm2020/autocomplete/autocomplete-origin.directive.mjs +21 -0
  116. package/esm2020/autocomplete/autocomplete-trigger.directive.mjs +555 -0
  117. package/esm2020/autocomplete/autocomplete.component.mjs +154 -0
  118. package/esm2020/autocomplete/autocomplete.module.mjs +34 -0
  119. package/{esm2015/autocomplete/index.js → esm2020/autocomplete/index.mjs} +0 -0
  120. package/{esm2015/autocomplete/ptsecurity-mosaic-autocomplete.js → esm2020/autocomplete/ptsecurity-mosaic-autocomplete.mjs} +0 -0
  121. package/{esm2015/autocomplete/public-api.js → esm2020/autocomplete/public-api.mjs} +0 -0
  122. package/esm2020/button/button.component.mjs +129 -0
  123. package/esm2020/button/button.module.mjs +38 -0
  124. package/{esm2015/button/index.js → esm2020/button/index.mjs} +0 -0
  125. package/{esm2015/button/ptsecurity-mosaic-button.js → esm2020/button/ptsecurity-mosaic-button.mjs} +0 -0
  126. package/{esm2015/button/public-api.js → esm2020/button/public-api.mjs} +0 -0
  127. package/esm2020/button-toggle/button-toggle.component.mjs +362 -0
  128. package/esm2020/button-toggle/button-toggle.module.mjs +19 -0
  129. package/{esm2015/button-toggle/index.js → esm2020/button-toggle/index.mjs} +0 -0
  130. package/{esm2015/button-toggle/ptsecurity-mosaic-button-toggle.js → esm2020/button-toggle/ptsecurity-mosaic-button-toggle.mjs} +0 -0
  131. package/{esm2015/button-toggle/public-api.js → esm2020/button-toggle/public-api.mjs} +0 -0
  132. package/esm2020/card/card.component.mjs +80 -0
  133. package/esm2020/card/card.module.mjs +30 -0
  134. package/{esm2015/card/index.js → esm2020/card/index.mjs} +0 -0
  135. package/{esm2015/card/ptsecurity-mosaic-card.js → esm2020/card/ptsecurity-mosaic-card.mjs} +0 -0
  136. package/{esm2015/card/public-api.js → esm2020/card/public-api.mjs} +0 -0
  137. package/{esm2015/checkbox/checkbox-config.js → esm2020/checkbox/checkbox-config.mjs} +0 -0
  138. package/esm2020/checkbox/checkbox-module.mjs +19 -0
  139. package/esm2020/checkbox/checkbox-required-validator.mjs +27 -0
  140. package/esm2020/checkbox/checkbox.mjs +315 -0
  141. package/{esm2015/checkbox/index.js → esm2020/checkbox/index.mjs} +0 -0
  142. package/{esm2015/checkbox/ptsecurity-mosaic-checkbox.js → esm2020/checkbox/ptsecurity-mosaic-checkbox.mjs} +0 -0
  143. package/{esm2015/checkbox/public-api.js → esm2020/checkbox/public-api.mjs} +0 -0
  144. package/{esm2015/core/animation/animation.js → esm2020/core/animation/animation.mjs} +0 -0
  145. package/{esm2015/core/animation/fade-animations.js → esm2020/core/animation/fade-animations.mjs} +0 -0
  146. package/{esm2015/core/animation/index.js → esm2020/core/animation/index.mjs} +0 -0
  147. package/{esm2015/core/animation/select-animations.js → esm2020/core/animation/select-animations.mjs} +0 -0
  148. package/{esm2015/core/common-behaviors/color.js → esm2020/core/common-behaviors/color.mjs} +0 -0
  149. package/esm2020/core/common-behaviors/common-module.mjs +83 -0
  150. package/{esm2015/core/common-behaviors/constructor.js → esm2020/core/common-behaviors/constructor.mjs} +0 -0
  151. package/{esm2015/core/common-behaviors/disabled.js → esm2020/core/common-behaviors/disabled.mjs} +0 -0
  152. package/{esm2015/core/common-behaviors/error-state.js → esm2020/core/common-behaviors/error-state.mjs} +0 -0
  153. package/{esm2015/core/common-behaviors/index.js → esm2020/core/common-behaviors/index.mjs} +0 -0
  154. package/{esm2015/core/common-behaviors/tabindex.js → esm2020/core/common-behaviors/tabindex.mjs} +0 -0
  155. package/esm2020/core/error/error-options.mjs +26 -0
  156. package/esm2020/core/formatters/date/formatter.mjs +359 -0
  157. package/esm2020/core/formatters/date/templates/en-US.mjs +281 -0
  158. package/esm2020/core/formatters/date/templates/ru-RU.mjs +281 -0
  159. package/esm2020/core/formatters/index.mjs +20 -0
  160. package/esm2020/core/formatters/number/formatter.mjs +105 -0
  161. package/esm2020/core/forms/forms-module.mjs +24 -0
  162. package/esm2020/core/forms/forms.directive.mjs +66 -0
  163. package/{esm2015/core/forms/index.js → esm2020/core/forms/index.mjs} +0 -0
  164. package/esm2020/core/highlight/highlight.pipe.mjs +17 -0
  165. package/esm2020/core/highlight/index.mjs +19 -0
  166. package/{esm2015/core/index.js → esm2020/core/index.mjs} +0 -0
  167. package/{esm2015/core/label/label-options.js → esm2020/core/label/label-options.mjs} +0 -0
  168. package/esm2020/core/line/line.mjs +70 -0
  169. package/esm2020/core/option/action.mjs +121 -0
  170. package/{esm2015/core/option/index.js → esm2020/core/option/index.mjs} +0 -0
  171. package/esm2020/core/option/optgroup.mjs +31 -0
  172. package/esm2020/core/option/option-module.mjs +21 -0
  173. package/esm2020/core/option/option.mjs +254 -0
  174. package/{esm2015/core/overlay/overlay-position-map.js → esm2020/core/overlay/overlay-position-map.mjs} +0 -0
  175. package/{esm2015/core/pop-up/constants.js → esm2020/core/pop-up/constants.mjs} +0 -0
  176. package/{esm2015/core/pop-up/index.js → esm2020/core/pop-up/index.mjs} +0 -0
  177. package/esm2020/core/pop-up/pop-up-trigger.mjs +244 -0
  178. package/esm2020/core/pop-up/pop-up.mjs +91 -0
  179. package/{esm2015/core/ptsecurity-mosaic-core.js → esm2020/core/ptsecurity-mosaic-core.mjs} +0 -0
  180. package/esm2020/core/public-api.mjs +18 -0
  181. package/{esm2015/core/select/constants.js → esm2020/core/select/constants.mjs} +0 -0
  182. package/{esm2015/core/select/errors.js → esm2020/core/select/errors.mjs} +0 -0
  183. package/{esm2015/core/select/events.js → esm2020/core/select/events.mjs} +0 -0
  184. package/{esm2015/core/select/index.js → esm2020/core/select/index.mjs} +0 -0
  185. package/{esm2015/core/selection/constants.js → esm2020/core/selection/constants.mjs} +0 -0
  186. package/{esm2015/core/selection/index.js → esm2020/core/selection/index.mjs} +0 -0
  187. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +37 -0
  188. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.module.mjs +18 -0
  189. package/esm2020/core/services/measure-scrollbar.service.mjs +48 -0
  190. package/{esm2015/core/utils/index.js → esm2020/core/utils/index.mjs} +0 -0
  191. package/{esm2015/core/utils/public-api.js → esm2020/core/utils/public-api.mjs} +0 -0
  192. package/{esm2015/core/utils/utils.js → esm2020/core/utils/utils.mjs} +0 -0
  193. package/{esm2015/core/validation/index.js → esm2020/core/validation/index.mjs} +0 -0
  194. package/{esm2015/core/validation/validation.js → esm2020/core/validation/validation.mjs} +0 -0
  195. package/esm2020/core/version.mjs +3 -0
  196. package/esm2020/datepicker/calendar-body.component.mjs +106 -0
  197. package/esm2020/datepicker/calendar.component.mjs +362 -0
  198. package/{esm2015/datepicker/datepicker-animations.js → esm2020/datepicker/datepicker-animations.mjs} +0 -0
  199. package/{esm2015/datepicker/datepicker-errors.js → esm2020/datepicker/datepicker-errors.mjs} +0 -0
  200. package/esm2020/datepicker/datepicker-input.directive.mjs +900 -0
  201. package/esm2020/datepicker/datepicker-intl.mjs +40 -0
  202. package/esm2020/datepicker/datepicker-module.mjs +107 -0
  203. package/esm2020/datepicker/datepicker-toggle.component.mjs +86 -0
  204. package/esm2020/datepicker/datepicker.component.mjs +408 -0
  205. package/{esm2015/datepicker/index.js → esm2020/datepicker/index.mjs} +0 -0
  206. package/esm2020/datepicker/month-view.component.mjs +257 -0
  207. package/esm2020/datepicker/multi-year-view.component.mjs +218 -0
  208. package/{esm2015/datepicker/ptsecurity-mosaic-datepicker.js → esm2020/datepicker/ptsecurity-mosaic-datepicker.mjs} +0 -0
  209. package/{esm2015/datepicker/public-api.js → esm2020/datepicker/public-api.mjs} +0 -0
  210. package/esm2020/datepicker/year-view.component.mjs +253 -0
  211. package/{esm2015/design-tokens/index.js → esm2020/design-tokens/index.mjs} +0 -0
  212. package/esm2020/design-tokens/legacy-2017/tokens.mjs +953 -0
  213. package/esm2020/design-tokens/pt-2022/tokens.mjs +1013 -0
  214. package/{esm2015/design-tokens/ptsecurity-mosaic-design-tokens.js → esm2020/design-tokens/ptsecurity-mosaic-design-tokens.mjs} +0 -0
  215. package/esm2020/design-tokens/public-api.mjs +4 -0
  216. package/esm2020/divider/divider.component.mjs +39 -0
  217. package/esm2020/divider/divider.module.mjs +18 -0
  218. package/{esm2015/divider/index.js → esm2020/divider/index.mjs} +0 -0
  219. package/{esm2015/divider/ptsecurity-mosaic-divider.js → esm2020/divider/ptsecurity-mosaic-divider.mjs} +0 -0
  220. package/{esm2015/divider/public-api.js → esm2020/divider/public-api.mjs} +0 -0
  221. package/{esm2015/dropdown/dropdown-animations.js → esm2020/dropdown/dropdown-animations.mjs} +0 -0
  222. package/esm2020/dropdown/dropdown-content.directive.mjs +64 -0
  223. package/{esm2015/dropdown/dropdown-errors.js → esm2020/dropdown/dropdown-errors.mjs} +0 -0
  224. package/esm2020/dropdown/dropdown-item.component.mjs +139 -0
  225. package/esm2020/dropdown/dropdown-trigger.directive.mjs +485 -0
  226. package/esm2020/dropdown/dropdown.component.mjs +292 -0
  227. package/esm2020/dropdown/dropdown.module.mjs +50 -0
  228. package/{esm2015/dropdown/dropdown.types.js → esm2020/dropdown/dropdown.types.mjs} +0 -0
  229. package/{esm2015/dropdown/index.js → esm2020/dropdown/index.mjs} +0 -0
  230. package/{esm2015/dropdown/ptsecurity-mosaic-dropdown.js → esm2020/dropdown/ptsecurity-mosaic-dropdown.mjs} +0 -0
  231. package/{esm2015/dropdown/public-api.js → esm2020/dropdown/public-api.mjs} +0 -0
  232. package/esm2020/form-field/cleaner.mjs +23 -0
  233. package/{esm2015/form-field/form-field-control.js → esm2020/form-field/form-field-control.mjs} +0 -0
  234. package/{esm2015/form-field/form-field-errors.js → esm2020/form-field/form-field-errors.mjs} +0 -0
  235. package/esm2020/form-field/form-field.mjs +205 -0
  236. package/esm2020/form-field/form-field.module.mjs +52 -0
  237. package/esm2020/form-field/hint.mjs +23 -0
  238. package/{esm2015/form-field/index.js → esm2020/form-field/index.mjs} +0 -0
  239. package/esm2020/form-field/prefix.mjs +13 -0
  240. package/{esm2015/form-field/ptsecurity-mosaic-form-field.js → esm2020/form-field/ptsecurity-mosaic-form-field.mjs} +0 -0
  241. package/{esm2015/form-field/public-api.js → esm2020/form-field/public-api.mjs} +0 -0
  242. package/esm2020/form-field/stepper.mjs +55 -0
  243. package/esm2020/form-field/suffix.mjs +13 -0
  244. package/esm2020/icon/icon.component.mjs +44 -0
  245. package/esm2020/icon/icon.module.mjs +38 -0
  246. package/{esm2015/icon/index.js → esm2020/icon/index.mjs} +0 -0
  247. package/{esm2015/icon/ptsecurity-mosaic-icon.js → esm2020/icon/ptsecurity-mosaic-icon.mjs} +0 -0
  248. package/{esm2015/icon/public-api.js → esm2020/icon/public-api.mjs} +0 -0
  249. package/{esm2015/index.js → esm2020/index.mjs} +0 -0
  250. package/{esm2015/input/index.js → esm2020/input/index.mjs} +0 -0
  251. package/{esm2015/input/input-errors.js → esm2020/input/input-errors.mjs} +0 -0
  252. package/esm2020/input/input-number-validators.mjs +92 -0
  253. package/esm2020/input/input-number.mjs +163 -0
  254. package/{esm2015/input/input-value-accessor.js → esm2020/input/input-value-accessor.mjs} +0 -0
  255. package/esm2020/input/input.mjs +333 -0
  256. package/esm2020/input/input.module.mjs +23 -0
  257. package/{esm2015/input/ptsecurity-mosaic-input.js → esm2020/input/ptsecurity-mosaic-input.mjs} +0 -0
  258. package/{esm2015/input/public-api.js → esm2020/input/public-api.mjs} +0 -0
  259. package/{esm2015/link/index.js → esm2020/link/index.mjs} +0 -0
  260. package/esm2020/link/link.component.mjs +107 -0
  261. package/esm2020/link/link.module.mjs +26 -0
  262. package/{esm2015/link/ptsecurity-mosaic-link.js → esm2020/link/ptsecurity-mosaic-link.mjs} +0 -0
  263. package/{esm2015/link/public-api.js → esm2020/link/public-api.mjs} +0 -0
  264. package/{esm2015/list/index.js → esm2020/list/index.mjs} +0 -0
  265. package/esm2020/list/list-selection.component.mjs +687 -0
  266. package/esm2020/list/list.component.mjs +44 -0
  267. package/esm2020/list/list.module.mjs +55 -0
  268. package/{esm2015/list/ptsecurity-mosaic-list.js → esm2020/list/ptsecurity-mosaic-list.mjs} +0 -0
  269. package/{esm2015/list/public-api.js → esm2020/list/public-api.mjs} +0 -0
  270. package/esm2020/modal/css-unit.pipe.mjs +17 -0
  271. package/{esm2015/modal/index.js → esm2020/modal/index.mjs} +0 -0
  272. package/esm2020/modal/modal-control.service.mjs +85 -0
  273. package/{esm2015/modal/modal-ref.class.js → esm2020/modal/modal-ref.class.mjs} +0 -0
  274. package/{esm2015/modal/modal-util.js → esm2020/modal/modal-util.mjs} +0 -0
  275. package/esm2020/modal/modal.component.mjs +501 -0
  276. package/esm2020/modal/modal.directive.mjs +52 -0
  277. package/esm2020/modal/modal.module.mjs +72 -0
  278. package/esm2020/modal/modal.service.mjs +124 -0
  279. package/{esm2015/modal/modal.type.js → esm2020/modal/modal.type.mjs} +0 -0
  280. package/{esm2015/modal/ptsecurity-mosaic-modal.js → esm2020/modal/ptsecurity-mosaic-modal.mjs} +0 -0
  281. package/{esm2015/modal/public-api.js → esm2020/modal/public-api.mjs} +0 -0
  282. package/{esm2015/navbar/index.js → esm2020/navbar/index.mjs} +0 -0
  283. package/esm2020/navbar/navbar-item.component.mjs +577 -0
  284. package/esm2020/navbar/navbar.component.mjs +237 -0
  285. package/esm2020/navbar/navbar.module.mjs +92 -0
  286. package/{esm2015/navbar/ptsecurity-mosaic-navbar.js → esm2020/navbar/ptsecurity-mosaic-navbar.mjs} +0 -0
  287. package/{esm2015/navbar/public-api.js → esm2020/navbar/public-api.mjs} +0 -0
  288. package/esm2020/navbar/vertical-navbar.animation.mjs +10 -0
  289. package/esm2020/navbar/vertical-navbar.component.mjs +114 -0
  290. package/{esm2015/popover/index.js → esm2020/popover/index.mjs} +0 -0
  291. package/{esm2015/popover/popover-animations.js → esm2020/popover/popover-animations.mjs} +0 -0
  292. package/esm2020/popover/popover-confirm.component.mjs +108 -0
  293. package/esm2020/popover/popover.component.mjs +253 -0
  294. package/esm2020/popover/popover.module.mjs +24 -0
  295. package/{esm2015/popover/ptsecurity-mosaic-popover.js → esm2020/popover/ptsecurity-mosaic-popover.mjs} +0 -0
  296. package/{esm2015/popover/public-api.js → esm2020/popover/public-api.mjs} +0 -0
  297. package/{esm2015/progress-bar/index.js → esm2020/progress-bar/index.mjs} +0 -0
  298. package/esm2020/progress-bar/progress-bar.component.mjs +42 -0
  299. package/esm2020/progress-bar/progress-bar.module.mjs +30 -0
  300. package/{esm2015/progress-bar/ptsecurity-mosaic-progress-bar.js → esm2020/progress-bar/ptsecurity-mosaic-progress-bar.mjs} +0 -0
  301. package/{esm2015/progress-bar/public-api.js → esm2020/progress-bar/public-api.mjs} +0 -0
  302. package/{esm2015/progress-spinner/index.js → esm2020/progress-spinner/index.mjs} +0 -0
  303. package/esm2020/progress-spinner/progress-spinner.component.mjs +46 -0
  304. package/esm2020/progress-spinner/progress-spinner.module.mjs +30 -0
  305. package/{esm2015/progress-spinner/ptsecurity-mosaic-progress-spinner.js → esm2020/progress-spinner/ptsecurity-mosaic-progress-spinner.mjs} +0 -0
  306. package/{esm2015/progress-spinner/public-api.js → esm2020/progress-spinner/public-api.mjs} +0 -0
  307. package/{esm2015/ptsecurity-mosaic.js → esm2020/ptsecurity-mosaic.mjs} +0 -0
  308. package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
  309. package/{esm2015/radio/index.js → esm2020/radio/index.mjs} +0 -0
  310. package/{esm2015/radio/ptsecurity-mosaic-radio.js → esm2020/radio/ptsecurity-mosaic-radio.mjs} +0 -0
  311. package/{esm2015/radio/public-api.js → esm2020/radio/public-api.mjs} +0 -0
  312. package/esm2020/radio/radio.component.mjs +458 -0
  313. package/esm2020/radio/radio.module.mjs +20 -0
  314. package/{esm2015/select/index.js → esm2020/select/index.mjs} +0 -0
  315. package/{esm2015/select/ptsecurity-mosaic-select.js → esm2020/select/ptsecurity-mosaic-select.mjs} +0 -0
  316. package/{esm2015/select/public-api.js → esm2020/select/public-api.mjs} +0 -0
  317. package/esm2020/select/select.component.mjs +1110 -0
  318. package/esm2020/select/select.module.mjs +64 -0
  319. package/{esm2015/sidebar/index.js → esm2020/sidebar/index.mjs} +0 -0
  320. package/{esm2015/sidebar/ptsecurity-mosaic-sidebar.js → esm2020/sidebar/ptsecurity-mosaic-sidebar.mjs} +0 -0
  321. package/{esm2015/sidebar/public-api.js → esm2020/sidebar/public-api.mjs} +0 -0
  322. package/{esm2015/sidebar/sidebar-animations.js → esm2020/sidebar/sidebar-animations.mjs} +0 -0
  323. package/esm2020/sidebar/sidebar.component.mjs +146 -0
  324. package/esm2020/sidebar/sidebar.module.mjs +30 -0
  325. package/{esm2015/sidepanel/index.js → esm2020/sidepanel/index.mjs} +0 -0
  326. package/{esm2015/sidepanel/ptsecurity-mosaic-sidepanel.js → esm2020/sidepanel/ptsecurity-mosaic-sidepanel.mjs} +0 -0
  327. package/{esm2015/sidepanel/public-api.js → esm2020/sidepanel/public-api.mjs} +0 -0
  328. package/{esm2015/sidepanel/sidepanel-animations.js → esm2020/sidepanel/sidepanel-animations.mjs} +0 -0
  329. package/{esm2015/sidepanel/sidepanel-config.js → esm2020/sidepanel/sidepanel-config.mjs} +0 -0
  330. package/esm2020/sidepanel/sidepanel-container.component.mjs +106 -0
  331. package/esm2020/sidepanel/sidepanel-directives.mjs +159 -0
  332. package/{esm2015/sidepanel/sidepanel-ref.js → esm2020/sidepanel/sidepanel-ref.mjs} +0 -0
  333. package/esm2020/sidepanel/sidepanel.module.mjs +74 -0
  334. package/esm2020/sidepanel/sidepanel.service.mjs +167 -0
  335. package/{esm2015/splitter/index.js → esm2020/splitter/index.mjs} +0 -0
  336. package/{esm2015/splitter/ptsecurity-mosaic-splitter.js → esm2020/splitter/ptsecurity-mosaic-splitter.mjs} +0 -0
  337. package/{esm2015/splitter/public-api.js → esm2020/splitter/public-api.mjs} +0 -0
  338. package/esm2020/splitter/splitter.component.mjs +480 -0
  339. package/esm2020/splitter/splitter.module.mjs +40 -0
  340. package/{esm2015/table/index.js → esm2020/table/index.mjs} +0 -0
  341. package/{esm2015/table/ptsecurity-mosaic-table.js → esm2020/table/ptsecurity-mosaic-table.mjs} +0 -0
  342. package/{esm2015/table/public-api.js → esm2020/table/public-api.mjs} +0 -0
  343. package/esm2020/table/table.component.mjs +16 -0
  344. package/esm2020/table/table.module.mjs +30 -0
  345. package/{esm2015/tabs/index.js → esm2020/tabs/index.mjs} +0 -0
  346. package/esm2020/tabs/paginated-tab-header.mjs +479 -0
  347. package/{esm2015/tabs/ptsecurity-mosaic-tabs.js → esm2020/tabs/ptsecurity-mosaic-tabs.mjs} +0 -0
  348. package/{esm2015/tabs/public-api.js → esm2020/tabs/public-api.mjs} +0 -0
  349. package/esm2020/tabs/tab-body.component.mjs +178 -0
  350. package/esm2020/tabs/tab-content.directive.mjs +15 -0
  351. package/esm2020/tabs/tab-group.component.mjs +350 -0
  352. package/esm2020/tabs/tab-header.component.mjs +67 -0
  353. package/esm2020/tabs/tab-label-wrapper.directive.mjs +78 -0
  354. package/esm2020/tabs/tab-label.directive.mjs +17 -0
  355. package/{esm2015/tabs/tab-nav-bar/index.js → esm2020/tabs/tab-nav-bar/index.mjs} +0 -0
  356. package/esm2020/tabs/tab-nav-bar/tab-nav-bar.mjs +110 -0
  357. package/esm2020/tabs/tab.component.mjs +133 -0
  358. package/{esm2015/tabs/tabs-animations.js → esm2020/tabs/tabs-animations.mjs} +0 -0
  359. package/esm2020/tabs/tabs.module.mjs +104 -0
  360. package/{esm2015/tags/index.js → esm2020/tags/index.mjs} +0 -0
  361. package/{esm2015/tags/ptsecurity-mosaic-tags.js → esm2020/tags/ptsecurity-mosaic-tags.mjs} +0 -0
  362. package/{esm2015/tags/public-api.js → esm2020/tags/public-api.mjs} +0 -0
  363. package/{esm2015/tags/tag-default-options.js → esm2020/tags/tag-default-options.mjs} +0 -0
  364. package/esm2020/tags/tag-input.mjs +229 -0
  365. package/esm2020/tags/tag-list.component.mjs +722 -0
  366. package/{esm2015/tags/tag-text-control.js → esm2020/tags/tag-text-control.mjs} +0 -0
  367. package/esm2020/tags/tag.component.mjs +377 -0
  368. package/esm2020/tags/tag.module.mjs +56 -0
  369. package/{esm2015/textarea/index.js → esm2020/textarea/index.mjs} +0 -0
  370. package/{esm2015/textarea/ptsecurity-mosaic-textarea.js → esm2020/textarea/ptsecurity-mosaic-textarea.mjs} +0 -0
  371. package/{esm2015/textarea/public-api.js → esm2020/textarea/public-api.mjs} +0 -0
  372. package/esm2020/textarea/textarea.component.mjs +268 -0
  373. package/esm2020/textarea/textarea.module.mjs +21 -0
  374. package/{esm2015/timepicker/index.js → esm2020/timepicker/index.mjs} +0 -0
  375. package/{esm2015/timepicker/ptsecurity-mosaic-timepicker.js → esm2020/timepicker/ptsecurity-mosaic-timepicker.mjs} +0 -0
  376. package/{esm2015/timepicker/public-api.js → esm2020/timepicker/public-api.mjs} +0 -0
  377. package/{esm2015/timepicker/timepicker.constants.js → esm2020/timepicker/timepicker.constants.mjs} +0 -0
  378. package/esm2020/timepicker/timepicker.directive.mjs +653 -0
  379. package/esm2020/timepicker/timepicker.module.mjs +34 -0
  380. package/{esm2015/toggle/index.js → esm2020/toggle/index.mjs} +0 -0
  381. package/{esm2015/toggle/ptsecurity-mosaic-toggle.js → esm2020/toggle/ptsecurity-mosaic-toggle.mjs} +0 -0
  382. package/{esm2015/toggle/public-api.js → esm2020/toggle/public-api.mjs} +0 -0
  383. package/esm2020/toggle/toggle.component.mjs +158 -0
  384. package/esm2020/toggle/toggle.module.mjs +20 -0
  385. package/{esm2015/tooltip/index.js → esm2020/tooltip/index.mjs} +0 -0
  386. package/{esm2015/tooltip/ptsecurity-mosaic-tooltip.js → esm2020/tooltip/ptsecurity-mosaic-tooltip.mjs} +0 -0
  387. package/{esm2015/tooltip/public-api.js → esm2020/tooltip/public-api.mjs} +0 -0
  388. package/{esm2015/tooltip/tooltip.animations.js → esm2020/tooltip/tooltip.animations.mjs} +0 -0
  389. package/esm2020/tooltip/tooltip.component.mjs +291 -0
  390. package/esm2020/tooltip/tooltip.module.mjs +43 -0
  391. package/{esm2015/tree/control/base-tree-control.js → esm2020/tree/control/base-tree-control.mjs} +0 -0
  392. package/{esm2015/tree/control/flat-tree-control.js → esm2020/tree/control/flat-tree-control.mjs} +0 -0
  393. package/{esm2015/tree/control/nested-tree-control.js → esm2020/tree/control/nested-tree-control.mjs} +0 -0
  394. package/{esm2015/tree/control/tree-control.js → esm2020/tree/control/tree-control.mjs} +0 -0
  395. package/esm2020/tree/data-source/flat-data-source.mjs +162 -0
  396. package/{esm2015/tree/data-source/nested-data-source.js → esm2020/tree/data-source/nested-data-source.mjs} +0 -0
  397. package/{esm2015/tree/index.js → esm2020/tree/index.mjs} +0 -0
  398. package/esm2020/tree/node.mjs +31 -0
  399. package/esm2020/tree/outlet.mjs +15 -0
  400. package/esm2020/tree/padding.directive.mjs +110 -0
  401. package/{esm2015/tree/ptsecurity-mosaic-tree.js → esm2020/tree/ptsecurity-mosaic-tree.mjs} +0 -0
  402. package/{esm2015/tree/public-api.js → esm2020/tree/public-api.mjs} +0 -0
  403. package/esm2020/tree/toggle.mjs +80 -0
  404. package/esm2020/tree/tree-base.mjs +243 -0
  405. package/{esm2015/tree/tree-errors.js → esm2020/tree/tree-errors.mjs} +0 -0
  406. package/esm2020/tree/tree-option.component.mjs +234 -0
  407. package/esm2020/tree/tree-selection.component.mjs +533 -0
  408. package/esm2020/tree/tree.mjs +15 -0
  409. package/esm2020/tree/tree.module.mjs +53 -0
  410. package/{esm2015/tree-select/index.js → esm2020/tree-select/index.mjs} +0 -0
  411. package/{esm2015/tree-select/ptsecurity-mosaic-tree-select.js → esm2020/tree-select/ptsecurity-mosaic-tree-select.mjs} +0 -0
  412. package/{esm2015/tree-select/public-api.js → esm2020/tree-select/public-api.mjs} +0 -0
  413. package/esm2020/tree-select/tree-select.component.mjs +925 -0
  414. package/esm2020/tree-select/tree-select.module.mjs +47 -0
  415. package/fesm2015/ptsecurity-mosaic-autocomplete.mjs +756 -0
  416. package/fesm2015/ptsecurity-mosaic-autocomplete.mjs.map +1 -0
  417. package/fesm2015/ptsecurity-mosaic-button-toggle.mjs +385 -0
  418. package/fesm2015/ptsecurity-mosaic-button-toggle.mjs.map +1 -0
  419. package/fesm2015/ptsecurity-mosaic-button.mjs +170 -0
  420. package/fesm2015/ptsecurity-mosaic-button.mjs.map +1 -0
  421. package/fesm2015/ptsecurity-mosaic-card.mjs +113 -0
  422. package/fesm2015/ptsecurity-mosaic-card.mjs.map +1 -0
  423. package/fesm2015/ptsecurity-mosaic-checkbox.mjs +366 -0
  424. package/fesm2015/ptsecurity-mosaic-checkbox.mjs.map +1 -0
  425. package/fesm2015/ptsecurity-mosaic-core.mjs +2706 -0
  426. package/fesm2015/ptsecurity-mosaic-core.mjs.map +1 -0
  427. package/fesm2015/ptsecurity-mosaic-datepicker.mjs +2700 -0
  428. package/fesm2015/ptsecurity-mosaic-datepicker.mjs.map +1 -0
  429. package/fesm2015/ptsecurity-mosaic-design-tokens.mjs +2925 -0
  430. package/fesm2015/ptsecurity-mosaic-design-tokens.mjs.map +1 -0
  431. package/fesm2015/ptsecurity-mosaic-divider.mjs +61 -0
  432. package/fesm2015/ptsecurity-mosaic-divider.mjs.map +1 -0
  433. package/fesm2015/ptsecurity-mosaic-dropdown.mjs +1106 -0
  434. package/fesm2015/ptsecurity-mosaic-dropdown.mjs.map +1 -0
  435. package/fesm2015/ptsecurity-mosaic-form-field.mjs +378 -0
  436. package/fesm2015/ptsecurity-mosaic-form-field.mjs.map +1 -0
  437. package/fesm2015/ptsecurity-mosaic-icon.mjs +88 -0
  438. package/fesm2015/ptsecurity-mosaic-icon.mjs.map +1 -0
  439. package/fesm2015/ptsecurity-mosaic-input.mjs +609 -0
  440. package/fesm2015/ptsecurity-mosaic-input.mjs.map +1 -0
  441. package/fesm2015/ptsecurity-mosaic-link.mjs +137 -0
  442. package/fesm2015/ptsecurity-mosaic-link.mjs.map +1 -0
  443. package/fesm2015/ptsecurity-mosaic-list.mjs +791 -0
  444. package/fesm2015/ptsecurity-mosaic-list.mjs.map +1 -0
  445. package/fesm2015/ptsecurity-mosaic-modal.mjs +864 -0
  446. package/fesm2015/ptsecurity-mosaic-modal.mjs.map +1 -0
  447. package/fesm2015/ptsecurity-mosaic-navbar.mjs +1025 -0
  448. package/fesm2015/ptsecurity-mosaic-navbar.mjs.map +1 -0
  449. package/fesm2015/ptsecurity-mosaic-popover.mjs +393 -0
  450. package/fesm2015/ptsecurity-mosaic-popover.mjs.map +1 -0
  451. package/fesm2015/ptsecurity-mosaic-progress-bar.mjs +76 -0
  452. package/fesm2015/ptsecurity-mosaic-progress-bar.mjs.map +1 -0
  453. package/fesm2015/ptsecurity-mosaic-progress-spinner.mjs +80 -0
  454. package/fesm2015/ptsecurity-mosaic-progress-spinner.mjs.map +1 -0
  455. package/fesm2015/ptsecurity-mosaic-radio.mjs +481 -0
  456. package/fesm2015/ptsecurity-mosaic-radio.mjs.map +1 -0
  457. package/fesm2015/ptsecurity-mosaic-select.mjs +1175 -0
  458. package/fesm2015/ptsecurity-mosaic-select.mjs.map +1 -0
  459. package/fesm2015/ptsecurity-mosaic-sidebar.mjs +202 -0
  460. package/fesm2015/ptsecurity-mosaic-sidebar.mjs.map +1 -0
  461. package/fesm2015/ptsecurity-mosaic-sidepanel.mjs +592 -0
  462. package/fesm2015/ptsecurity-mosaic-sidepanel.mjs.map +1 -0
  463. package/fesm2015/ptsecurity-mosaic-splitter.mjs +524 -0
  464. package/fesm2015/ptsecurity-mosaic-splitter.mjs.map +1 -0
  465. package/fesm2015/ptsecurity-mosaic-table.mjs +50 -0
  466. package/fesm2015/ptsecurity-mosaic-table.mjs.map +1 -0
  467. package/fesm2015/ptsecurity-mosaic-tabs.mjs +1511 -0
  468. package/fesm2015/ptsecurity-mosaic-tabs.mjs.map +1 -0
  469. package/fesm2015/ptsecurity-mosaic-tags.mjs +1377 -0
  470. package/fesm2015/ptsecurity-mosaic-tags.mjs.map +1 -0
  471. package/fesm2015/ptsecurity-mosaic-textarea.mjs +293 -0
  472. package/fesm2015/ptsecurity-mosaic-textarea.mjs.map +1 -0
  473. package/fesm2015/ptsecurity-mosaic-timepicker.mjs +715 -0
  474. package/fesm2015/ptsecurity-mosaic-timepicker.mjs.map +1 -0
  475. package/fesm2015/ptsecurity-mosaic-toggle.mjs +180 -0
  476. package/fesm2015/ptsecurity-mosaic-toggle.mjs.map +1 -0
  477. package/fesm2015/ptsecurity-mosaic-tooltip.mjs +362 -0
  478. package/fesm2015/ptsecurity-mosaic-tooltip.mjs.map +1 -0
  479. package/fesm2015/ptsecurity-mosaic-tree-select.mjs +972 -0
  480. package/fesm2015/ptsecurity-mosaic-tree-select.mjs.map +1 -0
  481. package/fesm2015/ptsecurity-mosaic-tree.mjs +1718 -0
  482. package/fesm2015/ptsecurity-mosaic-tree.mjs.map +1 -0
  483. package/fesm2015/ptsecurity-mosaic.mjs +4 -0
  484. package/fesm2015/ptsecurity-mosaic.mjs.map +1 -0
  485. package/fesm2020/ptsecurity-mosaic-autocomplete.mjs +752 -0
  486. package/fesm2020/ptsecurity-mosaic-autocomplete.mjs.map +1 -0
  487. package/fesm2020/ptsecurity-mosaic-button-toggle.mjs +383 -0
  488. package/fesm2020/ptsecurity-mosaic-button-toggle.mjs.map +1 -0
  489. package/fesm2020/ptsecurity-mosaic-button.mjs +170 -0
  490. package/fesm2020/ptsecurity-mosaic-button.mjs.map +1 -0
  491. package/fesm2020/ptsecurity-mosaic-card.mjs +113 -0
  492. package/fesm2020/ptsecurity-mosaic-card.mjs.map +1 -0
  493. package/fesm2020/ptsecurity-mosaic-checkbox.mjs +364 -0
  494. package/fesm2020/ptsecurity-mosaic-checkbox.mjs.map +1 -0
  495. package/fesm2020/ptsecurity-mosaic-core.mjs +2735 -0
  496. package/fesm2020/ptsecurity-mosaic-core.mjs.map +1 -0
  497. package/fesm2020/ptsecurity-mosaic-datepicker.mjs +2687 -0
  498. package/fesm2020/ptsecurity-mosaic-datepicker.mjs.map +1 -0
  499. package/fesm2020/ptsecurity-mosaic-design-tokens.mjs +2925 -0
  500. package/fesm2020/ptsecurity-mosaic-design-tokens.mjs.map +1 -0
  501. package/fesm2020/ptsecurity-mosaic-divider.mjs +61 -0
  502. package/fesm2020/ptsecurity-mosaic-divider.mjs.map +1 -0
  503. package/fesm2020/ptsecurity-mosaic-dropdown.mjs +1093 -0
  504. package/fesm2020/ptsecurity-mosaic-dropdown.mjs.map +1 -0
  505. package/fesm2020/ptsecurity-mosaic-form-field.mjs +377 -0
  506. package/fesm2020/ptsecurity-mosaic-form-field.mjs.map +1 -0
  507. package/fesm2020/ptsecurity-mosaic-icon.mjs +86 -0
  508. package/fesm2020/ptsecurity-mosaic-icon.mjs.map +1 -0
  509. package/fesm2020/ptsecurity-mosaic-input.mjs +605 -0
  510. package/fesm2020/ptsecurity-mosaic-input.mjs.map +1 -0
  511. package/fesm2020/ptsecurity-mosaic-link.mjs +136 -0
  512. package/fesm2020/ptsecurity-mosaic-link.mjs.map +1 -0
  513. package/fesm2020/ptsecurity-mosaic-list.mjs +784 -0
  514. package/fesm2020/ptsecurity-mosaic-list.mjs.map +1 -0
  515. package/fesm2020/ptsecurity-mosaic-modal.mjs +860 -0
  516. package/fesm2020/ptsecurity-mosaic-modal.mjs.map +1 -0
  517. package/fesm2020/ptsecurity-mosaic-navbar.mjs +1009 -0
  518. package/fesm2020/ptsecurity-mosaic-navbar.mjs.map +1 -0
  519. package/fesm2020/ptsecurity-mosaic-popover.mjs +389 -0
  520. package/fesm2020/ptsecurity-mosaic-popover.mjs.map +1 -0
  521. package/fesm2020/ptsecurity-mosaic-progress-bar.mjs +76 -0
  522. package/fesm2020/ptsecurity-mosaic-progress-bar.mjs.map +1 -0
  523. package/fesm2020/ptsecurity-mosaic-progress-spinner.mjs +80 -0
  524. package/fesm2020/ptsecurity-mosaic-progress-spinner.mjs.map +1 -0
  525. package/fesm2020/ptsecurity-mosaic-radio.mjs +479 -0
  526. package/fesm2020/ptsecurity-mosaic-radio.mjs.map +1 -0
  527. package/fesm2020/ptsecurity-mosaic-select.mjs +1173 -0
  528. package/fesm2020/ptsecurity-mosaic-select.mjs.map +1 -0
  529. package/fesm2020/ptsecurity-mosaic-sidebar.mjs +202 -0
  530. package/fesm2020/ptsecurity-mosaic-sidebar.mjs.map +1 -0
  531. package/fesm2020/ptsecurity-mosaic-sidepanel.mjs +589 -0
  532. package/fesm2020/ptsecurity-mosaic-sidepanel.mjs.map +1 -0
  533. package/fesm2020/ptsecurity-mosaic-splitter.mjs +524 -0
  534. package/fesm2020/ptsecurity-mosaic-splitter.mjs.map +1 -0
  535. package/fesm2020/ptsecurity-mosaic-table.mjs +50 -0
  536. package/fesm2020/ptsecurity-mosaic-table.mjs.map +1 -0
  537. package/fesm2020/ptsecurity-mosaic-tabs.mjs +1496 -0
  538. package/fesm2020/ptsecurity-mosaic-tabs.mjs.map +1 -0
  539. package/fesm2020/ptsecurity-mosaic-tags.mjs +1370 -0
  540. package/fesm2020/ptsecurity-mosaic-tags.mjs.map +1 -0
  541. package/fesm2020/ptsecurity-mosaic-textarea.mjs +291 -0
  542. package/fesm2020/ptsecurity-mosaic-textarea.mjs.map +1 -0
  543. package/fesm2020/ptsecurity-mosaic-timepicker.mjs +713 -0
  544. package/fesm2020/ptsecurity-mosaic-timepicker.mjs.map +1 -0
  545. package/fesm2020/ptsecurity-mosaic-toggle.mjs +180 -0
  546. package/fesm2020/ptsecurity-mosaic-toggle.mjs.map +1 -0
  547. package/fesm2020/ptsecurity-mosaic-tooltip.mjs +354 -0
  548. package/fesm2020/ptsecurity-mosaic-tooltip.mjs.map +1 -0
  549. package/fesm2020/ptsecurity-mosaic-tree-select.mjs +970 -0
  550. package/fesm2020/ptsecurity-mosaic-tree-select.mjs.map +1 -0
  551. package/fesm2020/ptsecurity-mosaic-tree.mjs +1705 -0
  552. package/fesm2020/ptsecurity-mosaic-tree.mjs.map +1 -0
  553. package/fesm2020/ptsecurity-mosaic.mjs +4 -0
  554. package/fesm2020/ptsecurity-mosaic.mjs.map +1 -0
  555. package/form-field/README.md +0 -0
  556. package/form-field/package.json +5 -5
  557. package/icon/README.md +0 -0
  558. package/icon/package.json +5 -5
  559. package/input/package.json +5 -5
  560. package/link/README.md +0 -0
  561. package/link/package.json +5 -5
  562. package/list/README.md +0 -0
  563. package/list/package.json +5 -5
  564. package/modal/README.md +34 -0
  565. package/modal/modal-control.service.d.ts +1 -0
  566. package/modal/package.json +5 -5
  567. package/navbar/README.md +41 -0
  568. package/navbar/navbar-item.component.d.ts +122 -34
  569. package/navbar/navbar.component.d.ts +37 -9
  570. package/navbar/navbar.module.d.ts +2 -1
  571. package/navbar/package.json +5 -5
  572. package/navbar/vertical-navbar.component.d.ts +15 -26
  573. package/package.json +299 -14
  574. package/popover/README.md +32 -0
  575. package/popover/package.json +5 -5
  576. package/popover/popover.component.d.ts +2 -0
  577. package/popover/popover.module.d.ts +2 -1
  578. package/prebuilt-themes/dark-theme.css +1 -1
  579. package/prebuilt-themes/default-theme.css +1 -1
  580. package/prebuilt-visual/default-visual.css +1 -1
  581. package/progress-bar/README.md +0 -0
  582. package/progress-bar/package.json +5 -5
  583. package/progress-spinner/README.md +0 -0
  584. package/progress-spinner/package.json +5 -5
  585. package/radio/package.json +5 -5
  586. package/schematics/README.md +35 -0
  587. package/schematics/ng-update/data/index.d.ts +1 -0
  588. package/schematics/ng-update/data/index.js +10 -9
  589. package/schematics/ng-update/data/index.js.map +1 -1
  590. package/schematics/ng-update/data/symbol-removal.d.ts +2 -0
  591. package/schematics/ng-update/data/symbol-removal.js +5 -0
  592. package/schematics/ng-update/data/symbol-removal.js.map +1 -0
  593. package/schematics/ng-update/index.js +3 -3
  594. package/schematics/ng-update/index.js.map +1 -1
  595. package/schematics/ng-update/update-9.0.0/secondary-entry-points-migration.js +1 -2
  596. package/schematics/ng-update/update-9.0.0/secondary-entry-points-migration.js.map +1 -1
  597. package/schematics/ng-update/upgrade-data.js +2 -1
  598. package/schematics/ng-update/upgrade-data.js.map +1 -1
  599. package/schematics/tsconfig.lib.json +2 -2
  600. package/select/README.md +0 -0
  601. package/select/package.json +5 -5
  602. package/sidebar/package.json +5 -5
  603. package/sidepanel/package.json +5 -5
  604. package/splitter/package.json +5 -5
  605. package/splitter/splitter.component.d.ts +46 -5
  606. package/splitter/splitter.module.d.ts +1 -1
  607. package/table/README.md +0 -0
  608. package/table/package.json +5 -5
  609. package/tabs/README.md +0 -0
  610. package/tabs/package.json +5 -5
  611. package/tags/README.md +0 -0
  612. package/tags/package.json +5 -5
  613. package/tags/tag.component.d.ts +20 -20
  614. package/textarea/README.md +0 -0
  615. package/textarea/package.json +5 -5
  616. package/timepicker/README.md +0 -0
  617. package/timepicker/package.json +5 -5
  618. package/toggle/package.json +5 -5
  619. package/tooltip/package.json +5 -5
  620. package/tree/data-source/flat-data-source.d.ts +2 -2
  621. package/tree/package.json +5 -5
  622. package/tree/toggle.d.ts +1 -1
  623. package/tree/tree-option.component.d.ts +5 -3
  624. package/tree/tree-selection.component.d.ts +1 -0
  625. package/tree-select/README.md +0 -0
  626. package/tree-select/package.json +5 -5
  627. package/tree-select/tree-select.component.d.ts +9 -1
  628. package/tree-select/tree-select.module.d.ts +2 -1
  629. package/bundles/ptsecurity-mosaic-autocomplete.umd.js +0 -1160
  630. package/bundles/ptsecurity-mosaic-autocomplete.umd.js.map +0 -1
  631. package/bundles/ptsecurity-mosaic-button-toggle.umd.js +0 -755
  632. package/bundles/ptsecurity-mosaic-button-toggle.umd.js.map +0 -1
  633. package/bundles/ptsecurity-mosaic-button.umd.js +0 -533
  634. package/bundles/ptsecurity-mosaic-button.umd.js.map +0 -1
  635. package/bundles/ptsecurity-mosaic-card.umd.js +0 -479
  636. package/bundles/ptsecurity-mosaic-card.umd.js.map +0 -1
  637. package/bundles/ptsecurity-mosaic-checkbox.umd.js +0 -762
  638. package/bundles/ptsecurity-mosaic-checkbox.umd.js.map +0 -1
  639. package/bundles/ptsecurity-mosaic-core.umd.js +0 -2843
  640. package/bundles/ptsecurity-mosaic-core.umd.js.map +0 -1
  641. package/bundles/ptsecurity-mosaic-datepicker.umd.js +0 -3355
  642. package/bundles/ptsecurity-mosaic-datepicker.umd.js.map +0 -1
  643. package/bundles/ptsecurity-mosaic-design-tokens.umd.js +0 -1872
  644. package/bundles/ptsecurity-mosaic-design-tokens.umd.js.map +0 -1
  645. package/bundles/ptsecurity-mosaic-divider.umd.js +0 -106
  646. package/bundles/ptsecurity-mosaic-divider.umd.js.map +0 -1
  647. package/bundles/ptsecurity-mosaic-dropdown.umd.js +0 -1517
  648. package/bundles/ptsecurity-mosaic-dropdown.umd.js.map +0 -1
  649. package/bundles/ptsecurity-mosaic-form-field.umd.js +0 -788
  650. package/bundles/ptsecurity-mosaic-form-field.umd.js.map +0 -1
  651. package/bundles/ptsecurity-mosaic-icon.umd.js +0 -450
  652. package/bundles/ptsecurity-mosaic-icon.umd.js.map +0 -1
  653. package/bundles/ptsecurity-mosaic-input.umd.js +0 -1008
  654. package/bundles/ptsecurity-mosaic-input.umd.js.map +0 -1
  655. package/bundles/ptsecurity-mosaic-link.umd.js +0 -515
  656. package/bundles/ptsecurity-mosaic-link.umd.js.map +0 -1
  657. package/bundles/ptsecurity-mosaic-list.umd.js +0 -1256
  658. package/bundles/ptsecurity-mosaic-list.umd.js.map +0 -1
  659. package/bundles/ptsecurity-mosaic-modal.umd.js +0 -1305
  660. package/bundles/ptsecurity-mosaic-modal.umd.js.map +0 -1
  661. package/bundles/ptsecurity-mosaic-navbar.umd.js +0 -930
  662. package/bundles/ptsecurity-mosaic-navbar.umd.js.map +0 -1
  663. package/bundles/ptsecurity-mosaic-popover.umd.js +0 -830
  664. package/bundles/ptsecurity-mosaic-popover.umd.js.map +0 -1
  665. package/bundles/ptsecurity-mosaic-progress-bar.umd.js +0 -440
  666. package/bundles/ptsecurity-mosaic-progress-bar.umd.js.map +0 -1
  667. package/bundles/ptsecurity-mosaic-progress-spinner.umd.js +0 -448
  668. package/bundles/ptsecurity-mosaic-progress-spinner.umd.js.map +0 -1
  669. package/bundles/ptsecurity-mosaic-radio.umd.js +0 -901
  670. package/bundles/ptsecurity-mosaic-radio.umd.js.map +0 -1
  671. package/bundles/ptsecurity-mosaic-select.umd.js +0 -1606
  672. package/bundles/ptsecurity-mosaic-select.umd.js.map +0 -1
  673. package/bundles/ptsecurity-mosaic-sidebar.umd.js +0 -254
  674. package/bundles/ptsecurity-mosaic-sidebar.umd.js.map +0 -1
  675. package/bundles/ptsecurity-mosaic-sidepanel.umd.js +0 -954
  676. package/bundles/ptsecurity-mosaic-sidepanel.umd.js.map +0 -1
  677. package/bundles/ptsecurity-mosaic-splitter.umd.js +0 -436
  678. package/bundles/ptsecurity-mosaic-splitter.umd.js.map +0 -1
  679. package/bundles/ptsecurity-mosaic-table.umd.js +0 -81
  680. package/bundles/ptsecurity-mosaic-table.umd.js.map +0 -1
  681. package/bundles/ptsecurity-mosaic-tabs.umd.js +0 -2013
  682. package/bundles/ptsecurity-mosaic-tabs.umd.js.map +0 -1
  683. package/bundles/ptsecurity-mosaic-tags.umd.js +0 -1911
  684. package/bundles/ptsecurity-mosaic-tags.umd.js.map +0 -1
  685. package/bundles/ptsecurity-mosaic-textarea.umd.js +0 -664
  686. package/bundles/ptsecurity-mosaic-textarea.umd.js.map +0 -1
  687. package/bundles/ptsecurity-mosaic-timepicker.umd.js +0 -820
  688. package/bundles/ptsecurity-mosaic-timepicker.umd.js.map +0 -1
  689. package/bundles/ptsecurity-mosaic-toggle.umd.js +0 -557
  690. package/bundles/ptsecurity-mosaic-toggle.umd.js.map +0 -1
  691. package/bundles/ptsecurity-mosaic-tooltip.umd.js +0 -777
  692. package/bundles/ptsecurity-mosaic-tooltip.umd.js.map +0 -1
  693. package/bundles/ptsecurity-mosaic-tree-select.umd.js +0 -1368
  694. package/bundles/ptsecurity-mosaic-tree-select.umd.js.map +0 -1
  695. package/bundles/ptsecurity-mosaic-tree.umd.js +0 -2301
  696. package/bundles/ptsecurity-mosaic-tree.umd.js.map +0 -1
  697. package/bundles/ptsecurity-mosaic.umd.js +0 -11
  698. package/bundles/ptsecurity-mosaic.umd.js.map +0 -1
  699. package/design-tokens/tokens/components/checkbox.json5 +0 -39
  700. package/design-tokens/tokens/components/modal.json5 +0 -67
  701. package/design-tokens/tokens/components/navbar.json5 +0 -64
  702. package/design-tokens/tokens/components/radio.json5 +0 -45
  703. package/design-tokens/tokens/components/tags.json5 +0 -126
  704. package/design-tokens/tokens/components/toggle.json5 +0 -55
  705. package/design-tokens/tokens.d.ts +0 -7637
  706. package/esm2015/autocomplete/autocomplete-origin.directive.js +0 -21
  707. package/esm2015/autocomplete/autocomplete-trigger.directive.js +0 -555
  708. package/esm2015/autocomplete/autocomplete.component.js +0 -163
  709. package/esm2015/autocomplete/autocomplete.module.js +0 -34
  710. package/esm2015/button/button.component.js +0 -129
  711. package/esm2015/button/button.module.js +0 -42
  712. package/esm2015/button-toggle/button-toggle.component.js +0 -370
  713. package/esm2015/button-toggle/button-toggle.module.js +0 -19
  714. package/esm2015/card/card.component.js +0 -88
  715. package/esm2015/card/card.module.js +0 -30
  716. package/esm2015/checkbox/checkbox-module.js +0 -19
  717. package/esm2015/checkbox/checkbox-required-validator.js +0 -27
  718. package/esm2015/checkbox/checkbox.js +0 -325
  719. package/esm2015/core/common-behaviors/common-module.js +0 -83
  720. package/esm2015/core/error/error-options.js +0 -26
  721. package/esm2015/core/formatters/date/formatter.js +0 -288
  722. package/esm2015/core/formatters/date/templates/en-US.js +0 -280
  723. package/esm2015/core/formatters/date/templates/ru-RU.js +0 -280
  724. package/esm2015/core/formatters/index.js +0 -20
  725. package/esm2015/core/formatters/number/formatter.js +0 -99
  726. package/esm2015/core/forms/forms-module.js +0 -24
  727. package/esm2015/core/forms/forms.directive.js +0 -66
  728. package/esm2015/core/highlight/highlight.pipe.js +0 -17
  729. package/esm2015/core/highlight/index.js +0 -19
  730. package/esm2015/core/line/line.js +0 -70
  731. package/esm2015/core/option/action.js +0 -131
  732. package/esm2015/core/option/optgroup.js +0 -40
  733. package/esm2015/core/option/option-module.js +0 -21
  734. package/esm2015/core/option/option.js +0 -262
  735. package/esm2015/core/pop-up/pop-up-trigger.js +0 -241
  736. package/esm2015/core/pop-up/pop-up.js +0 -87
  737. package/esm2015/core/public-api.js +0 -17
  738. package/esm2015/core/selection/pseudo-checkbox/pseudo-checkbox.js +0 -45
  739. package/esm2015/core/selection/pseudo-checkbox/pseudo-checkbox.module.js +0 -18
  740. package/esm2015/core/services/measure-scrollbar.service.js +0 -48
  741. package/esm2015/datepicker/calendar-body.component.js +0 -114
  742. package/esm2015/datepicker/calendar.component.js +0 -377
  743. package/esm2015/datepicker/datepicker-input.directive.js +0 -885
  744. package/esm2015/datepicker/datepicker-intl.js +0 -40
  745. package/esm2015/datepicker/datepicker-module.js +0 -107
  746. package/esm2015/datepicker/datepicker-toggle.component.js +0 -94
  747. package/esm2015/datepicker/datepicker.component.js +0 -418
  748. package/esm2015/datepicker/month-view.component.js +0 -263
  749. package/esm2015/datepicker/multi-year-view.component.js +0 -224
  750. package/esm2015/datepicker/year-view.component.js +0 -259
  751. package/esm2015/design-tokens/public-api.js +0 -2
  752. package/esm2015/design-tokens/tokens.js +0 -931
  753. package/esm2015/divider/divider.component.js +0 -46
  754. package/esm2015/divider/divider.module.js +0 -18
  755. package/esm2015/dropdown/dropdown-content.directive.js +0 -66
  756. package/esm2015/dropdown/dropdown-item.component.js +0 -142
  757. package/esm2015/dropdown/dropdown-trigger.directive.js +0 -478
  758. package/esm2015/dropdown/dropdown.component.js +0 -302
  759. package/esm2015/dropdown/dropdown.module.js +0 -50
  760. package/esm2015/form-field/cleaner.js +0 -23
  761. package/esm2015/form-field/form-field.js +0 -224
  762. package/esm2015/form-field/form-field.module.js +0 -52
  763. package/esm2015/form-field/hint.js +0 -23
  764. package/esm2015/form-field/prefix.js +0 -13
  765. package/esm2015/form-field/stepper.js +0 -55
  766. package/esm2015/form-field/suffix.js +0 -13
  767. package/esm2015/icon/icon.component.js +0 -51
  768. package/esm2015/icon/icon.module.js +0 -38
  769. package/esm2015/input/input-number-validators.js +0 -92
  770. package/esm2015/input/input-number.js +0 -163
  771. package/esm2015/input/input.js +0 -333
  772. package/esm2015/input/input.module.js +0 -23
  773. package/esm2015/link/link.component.js +0 -108
  774. package/esm2015/link/link.module.js +0 -26
  775. package/esm2015/list/list-selection.component.js +0 -716
  776. package/esm2015/list/list.component.js +0 -58
  777. package/esm2015/list/list.module.js +0 -55
  778. package/esm2015/modal/css-unit.pipe.js +0 -17
  779. package/esm2015/modal/modal-control.service.js +0 -63
  780. package/esm2015/modal/modal.component.js +0 -508
  781. package/esm2015/modal/modal.directive.js +0 -52
  782. package/esm2015/modal/modal.module.js +0 -72
  783. package/esm2015/modal/modal.service.js +0 -117
  784. package/esm2015/navbar/navbar-item.component.js +0 -209
  785. package/esm2015/navbar/navbar.component.js +0 -118
  786. package/esm2015/navbar/navbar.module.js +0 -76
  787. package/esm2015/navbar/vertical-navbar.animation.js +0 -10
  788. package/esm2015/navbar/vertical-navbar.component.js +0 -140
  789. package/esm2015/popover/popover-confirm.component.js +0 -115
  790. package/esm2015/popover/popover.component.js +0 -256
  791. package/esm2015/popover/popover.module.js +0 -23
  792. package/esm2015/progress-bar/progress-bar.component.js +0 -50
  793. package/esm2015/progress-bar/progress-bar.module.js +0 -30
  794. package/esm2015/progress-spinner/progress-spinner.component.js +0 -54
  795. package/esm2015/progress-spinner/progress-spinner.module.js +0 -30
  796. package/esm2015/radio/radio.component.js +0 -467
  797. package/esm2015/radio/radio.module.js +0 -20
  798. package/esm2015/select/select.component.js +0 -1122
  799. package/esm2015/select/select.module.js +0 -64
  800. package/esm2015/sidebar/sidebar.component.js +0 -155
  801. package/esm2015/sidebar/sidebar.module.js +0 -30
  802. package/esm2015/sidepanel/sidepanel-container.component.js +0 -114
  803. package/esm2015/sidepanel/sidepanel-directives.js +0 -159
  804. package/esm2015/sidepanel/sidepanel.module.js +0 -74
  805. package/esm2015/sidepanel/sidepanel.service.js +0 -164
  806. package/esm2015/splitter/splitter.component.js +0 -331
  807. package/esm2015/splitter/splitter.module.js +0 -38
  808. package/esm2015/table/table.component.js +0 -16
  809. package/esm2015/table/table.module.js +0 -30
  810. package/esm2015/tabs/paginated-tab-header.js +0 -482
  811. package/esm2015/tabs/tab-body.component.js +0 -186
  812. package/esm2015/tabs/tab-content.directive.js +0 -15
  813. package/esm2015/tabs/tab-group.component.js +0 -359
  814. package/esm2015/tabs/tab-header.component.js +0 -76
  815. package/esm2015/tabs/tab-label-wrapper.directive.js +0 -78
  816. package/esm2015/tabs/tab-label.directive.js +0 -17
  817. package/esm2015/tabs/tab-nav-bar/tab-nav-bar.js +0 -118
  818. package/esm2015/tabs/tab.component.js +0 -133
  819. package/esm2015/tabs/tabs.module.js +0 -104
  820. package/esm2015/tags/tag-input.js +0 -229
  821. package/esm2015/tags/tag-list.component.js +0 -732
  822. package/esm2015/tags/tag.component.js +0 -382
  823. package/esm2015/tags/tag.module.js +0 -56
  824. package/esm2015/textarea/textarea.component.js +0 -268
  825. package/esm2015/textarea/textarea.module.js +0 -21
  826. package/esm2015/timepicker/timepicker.directive.js +0 -652
  827. package/esm2015/timepicker/timepicker.module.js +0 -34
  828. package/esm2015/toggle/toggle.component.js +0 -169
  829. package/esm2015/toggle/toggle.module.js +0 -20
  830. package/esm2015/tooltip/tooltip.component.js +0 -299
  831. package/esm2015/tooltip/tooltip.module.js +0 -43
  832. package/esm2015/tree/data-source/flat-data-source.js +0 -162
  833. package/esm2015/tree/node.js +0 -31
  834. package/esm2015/tree/outlet.js +0 -15
  835. package/esm2015/tree/padding.directive.js +0 -111
  836. package/esm2015/tree/toggle.js +0 -89
  837. package/esm2015/tree/tree-base.js +0 -243
  838. package/esm2015/tree/tree-option.component.js +0 -238
  839. package/esm2015/tree/tree-selection.component.js +0 -541
  840. package/esm2015/tree/tree.js +0 -23
  841. package/esm2015/tree/tree.module.js +0 -53
  842. package/esm2015/tree-select/tree-select.component.js +0 -900
  843. package/esm2015/tree-select/tree-select.module.js +0 -43
  844. package/fesm2015/ptsecurity-mosaic-autocomplete.js +0 -761
  845. package/fesm2015/ptsecurity-mosaic-autocomplete.js.map +0 -1
  846. package/fesm2015/ptsecurity-mosaic-button-toggle.js +0 -391
  847. package/fesm2015/ptsecurity-mosaic-button-toggle.js.map +0 -1
  848. package/fesm2015/ptsecurity-mosaic-button.js +0 -174
  849. package/fesm2015/ptsecurity-mosaic-button.js.map +0 -1
  850. package/fesm2015/ptsecurity-mosaic-card.js +0 -121
  851. package/fesm2015/ptsecurity-mosaic-card.js.map +0 -1
  852. package/fesm2015/ptsecurity-mosaic-checkbox.js +0 -374
  853. package/fesm2015/ptsecurity-mosaic-checkbox.js.map +0 -1
  854. package/fesm2015/ptsecurity-mosaic-core.js +0 -2682
  855. package/fesm2015/ptsecurity-mosaic-core.js.map +0 -1
  856. package/fesm2015/ptsecurity-mosaic-datepicker.js +0 -2731
  857. package/fesm2015/ptsecurity-mosaic-datepicker.js.map +0 -1
  858. package/fesm2015/ptsecurity-mosaic-design-tokens.js +0 -937
  859. package/fesm2015/ptsecurity-mosaic-design-tokens.js.map +0 -1
  860. package/fesm2015/ptsecurity-mosaic-divider.js +0 -68
  861. package/fesm2015/ptsecurity-mosaic-divider.js.map +0 -1
  862. package/fesm2015/ptsecurity-mosaic-dropdown.js +0 -1101
  863. package/fesm2015/ptsecurity-mosaic-dropdown.js.map +0 -1
  864. package/fesm2015/ptsecurity-mosaic-form-field.js +0 -396
  865. package/fesm2015/ptsecurity-mosaic-form-field.js.map +0 -1
  866. package/fesm2015/ptsecurity-mosaic-icon.js +0 -93
  867. package/fesm2015/ptsecurity-mosaic-icon.js.map +0 -1
  868. package/fesm2015/ptsecurity-mosaic-input.js +0 -605
  869. package/fesm2015/ptsecurity-mosaic-input.js.map +0 -1
  870. package/fesm2015/ptsecurity-mosaic-link.js +0 -137
  871. package/fesm2015/ptsecurity-mosaic-link.js.map +0 -1
  872. package/fesm2015/ptsecurity-mosaic-list.js +0 -827
  873. package/fesm2015/ptsecurity-mosaic-list.js.map +0 -1
  874. package/fesm2015/ptsecurity-mosaic-modal.js +0 -838
  875. package/fesm2015/ptsecurity-mosaic-modal.js.map +0 -1
  876. package/fesm2015/ptsecurity-mosaic-navbar.js +0 -539
  877. package/fesm2015/ptsecurity-mosaic-navbar.js.map +0 -1
  878. package/fesm2015/ptsecurity-mosaic-popover.js +0 -399
  879. package/fesm2015/ptsecurity-mosaic-popover.js.map +0 -1
  880. package/fesm2015/ptsecurity-mosaic-progress-bar.js +0 -84
  881. package/fesm2015/ptsecurity-mosaic-progress-bar.js.map +0 -1
  882. package/fesm2015/ptsecurity-mosaic-progress-spinner.js +0 -88
  883. package/fesm2015/ptsecurity-mosaic-progress-spinner.js.map +0 -1
  884. package/fesm2015/ptsecurity-mosaic-radio.js +0 -488
  885. package/fesm2015/ptsecurity-mosaic-radio.js.map +0 -1
  886. package/fesm2015/ptsecurity-mosaic-select.js +0 -1185
  887. package/fesm2015/ptsecurity-mosaic-select.js.map +0 -1
  888. package/fesm2015/ptsecurity-mosaic-sidebar.js +0 -211
  889. package/fesm2015/ptsecurity-mosaic-sidebar.js.map +0 -1
  890. package/fesm2015/ptsecurity-mosaic-sidepanel.js +0 -594
  891. package/fesm2015/ptsecurity-mosaic-sidepanel.js.map +0 -1
  892. package/fesm2015/ptsecurity-mosaic-splitter.js +0 -373
  893. package/fesm2015/ptsecurity-mosaic-splitter.js.map +0 -1
  894. package/fesm2015/ptsecurity-mosaic-table.js +0 -50
  895. package/fesm2015/ptsecurity-mosaic-table.js.map +0 -1
  896. package/fesm2015/ptsecurity-mosaic-tabs.js +0 -1533
  897. package/fesm2015/ptsecurity-mosaic-tabs.js.map +0 -1
  898. package/fesm2015/ptsecurity-mosaic-tags.js +0 -1385
  899. package/fesm2015/ptsecurity-mosaic-tags.js.map +0 -1
  900. package/fesm2015/ptsecurity-mosaic-textarea.js +0 -291
  901. package/fesm2015/ptsecurity-mosaic-textarea.js.map +0 -1
  902. package/fesm2015/ptsecurity-mosaic-timepicker.js +0 -712
  903. package/fesm2015/ptsecurity-mosaic-timepicker.js.map +0 -1
  904. package/fesm2015/ptsecurity-mosaic-toggle.js +0 -191
  905. package/fesm2015/ptsecurity-mosaic-toggle.js.map +0 -1
  906. package/fesm2015/ptsecurity-mosaic-tooltip.js +0 -362
  907. package/fesm2015/ptsecurity-mosaic-tooltip.js.map +0 -1
  908. package/fesm2015/ptsecurity-mosaic-tree-select.js +0 -942
  909. package/fesm2015/ptsecurity-mosaic-tree-select.js.map +0 -1
  910. package/fesm2015/ptsecurity-mosaic-tree.js +0 -1735
  911. package/fesm2015/ptsecurity-mosaic-tree.js.map +0 -1
  912. package/fesm2015/ptsecurity-mosaic.js +0 -4
  913. package/fesm2015/ptsecurity-mosaic.js.map +0 -1
@@ -0,0 +1,2735 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Version, InjectionToken, isDevMode, NgModule, Optional, Inject, Directive, Injectable, Pipe, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, EventEmitter, Output, ContentChild, ContentChildren, TemplateRef } from '@angular/core';
3
+ import * as i2$1 from '@angular/cdk/bidi';
4
+ import { BidiModule } from '@angular/cdk/bidi';
5
+ import { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';
6
+ import { Subject } from 'rxjs';
7
+ import MessageFormat from '@messageformat/core';
8
+ import * as i1 from '@ptsecurity/cdk/datetime';
9
+ import { MC_DATE_LOCALE } from '@ptsecurity/cdk/datetime';
10
+ import { RequiredValidator } from '@angular/forms';
11
+ import * as i2 from '@angular/common';
12
+ import { CommonModule, DOCUMENT } from '@angular/common';
13
+ import * as i1$2 from '@angular/cdk/overlay';
14
+ import { Overlay } from '@angular/cdk/overlay';
15
+ import { trigger, state, style, transition, animate, group } from '@angular/animations';
16
+ import { ENTER, SPACE, TAB, ESCAPE } from '@ptsecurity/cdk/keycodes';
17
+ import * as i1$1 from '@angular/cdk/a11y';
18
+ import { takeUntil, distinctUntilChanged, delay } from 'rxjs/operators';
19
+ import { ComponentPortal } from '@angular/cdk/portal';
20
+
21
+ const VERSION = new Version('{{VERSION}}');
22
+
23
+ function isBoolean(val) { return typeof val === 'boolean'; }
24
+ function toBoolean(value) {
25
+ return value != null && `${value}` !== 'false';
26
+ }
27
+
28
+ // Injection token that configures whether the Mosaic sanity checks are enabled.
29
+ const MC_SANITY_CHECKS = new InjectionToken('mc-sanity-checks', {
30
+ providedIn: 'root',
31
+ factory: mcSanityChecksFactory
32
+ });
33
+ function mcSanityChecksFactory() {
34
+ return true;
35
+ }
36
+ /**
37
+ * Module that captures anything that should be loaded and/or run for *all* Mosaic
38
+ * components. This includes Bidi, etc.
39
+ *
40
+ * This module should be imported to each top-level component module (e.g., McTabsModule).
41
+ */
42
+ class McCommonModule {
43
+ constructor(_sanityChecksEnabled) {
44
+ this._sanityChecksEnabled = _sanityChecksEnabled;
45
+ // Whether we've done the global sanity checks (e.g. a theme is loaded, there is a doctype).
46
+ this.hasDoneGlobalChecks = false;
47
+ // Reference to the global `document` object.
48
+ // tslint:disable-next-line: orthodox-getter-and-setter
49
+ this._document = typeof document === 'object' && document ? document : null;
50
+ // Reference to the global 'window' object.
51
+ // tslint:disable-next-line: orthodox-getter-and-setter
52
+ this._window = typeof window === 'object' && window ? window : null;
53
+ if (this.areChecksEnabled() && !this.hasDoneGlobalChecks) {
54
+ this.checkDoctypeIsDefined();
55
+ this.checkThemeIsPresent();
56
+ this.hasDoneGlobalChecks = true;
57
+ }
58
+ }
59
+ // Whether any sanity checks are enabled
60
+ areChecksEnabled() {
61
+ return this._sanityChecksEnabled && isDevMode() && !this.isTestEnv();
62
+ }
63
+ // Whether the code is running in tests.
64
+ isTestEnv() {
65
+ // tslint:disable-next-line
66
+ return this._window && (this._window['__karma__'] || this._window['jasmine']);
67
+ }
68
+ checkDoctypeIsDefined() {
69
+ if (this._document && !this._document.doctype) {
70
+ console.warn('Current document does not have a doctype. This may cause ' +
71
+ 'some Mosaic components not to behave as expected.');
72
+ }
73
+ }
74
+ checkThemeIsPresent() {
75
+ if (this._document && typeof getComputedStyle === 'function') {
76
+ const testElement = this._document.createElement('div');
77
+ testElement.classList.add('mc-theme-loaded-marker');
78
+ this._document.body.appendChild(testElement);
79
+ const computedStyle = getComputedStyle(testElement);
80
+ // In some situations, the computed style of the test element can be null. For example in
81
+ // Firefox, the computed style is null if an application is running inside of a hidden iframe.
82
+ // See: https://bugzilla.mozilla.org/show_bug.cgi?id=548397
83
+ if (computedStyle && computedStyle.display !== 'none') {
84
+ console.warn('Could not find Mosaic core theme. Most Mosaic ' +
85
+ 'components may not work as expected. For more info refer ' +
86
+ 'to the theming guide: link there');
87
+ }
88
+ this._document.body.removeChild(testElement);
89
+ }
90
+ }
91
+ }
92
+ /** @nocollapse */ /** @nocollapse */ McCommonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McCommonModule, deps: [{ token: MC_SANITY_CHECKS, optional: true }], target: i0.ɵɵFactoryTarget.NgModule });
93
+ /** @nocollapse */ /** @nocollapse */ McCommonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McCommonModule, imports: [BidiModule], exports: [BidiModule] });
94
+ /** @nocollapse */ /** @nocollapse */ McCommonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McCommonModule, imports: [[BidiModule], BidiModule] });
95
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McCommonModule, decorators: [{
96
+ type: NgModule,
97
+ args: [{
98
+ imports: [BidiModule],
99
+ exports: [BidiModule]
100
+ }]
101
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
102
+ type: Optional
103
+ }, {
104
+ type: Inject,
105
+ args: [MC_SANITY_CHECKS]
106
+ }] }]; } });
107
+
108
+ function mixinDisabled(base) {
109
+ return class extends base {
110
+ constructor(...args) {
111
+ // tslint:disable-next-line
112
+ super(...args);
113
+ this._disabled = false;
114
+ }
115
+ get disabled() {
116
+ return this._disabled;
117
+ }
118
+ set disabled(value) {
119
+ this._disabled = coerceBooleanProperty(value);
120
+ }
121
+ };
122
+ }
123
+
124
+ var ThemePalette;
125
+ (function (ThemePalette) {
126
+ ThemePalette["Primary"] = "primary";
127
+ ThemePalette["Second"] = "second";
128
+ ThemePalette["Error"] = "error";
129
+ ThemePalette["Default"] = "second";
130
+ ThemePalette["Empty"] = "";
131
+ })(ThemePalette || (ThemePalette = {}));
132
+ function mixinColor(base, defaultColor = ThemePalette.Default) {
133
+ return class extends base {
134
+ constructor(...args) {
135
+ super(...args);
136
+ this.color = defaultColor;
137
+ }
138
+ get color() { return this._color; }
139
+ set color(value) {
140
+ const colorPalette = value || defaultColor;
141
+ if (colorPalette !== this._color) {
142
+ if (this._color) {
143
+ this._elementRef.nativeElement.classList.remove(`mc-${this._color}`);
144
+ }
145
+ if (colorPalette) {
146
+ this._elementRef.nativeElement.classList.add(`mc-${colorPalette}`);
147
+ }
148
+ this._color = colorPalette;
149
+ }
150
+ }
151
+ };
152
+ }
153
+
154
+ function mixinTabIndex(base, defaultTabIndex = 0) {
155
+ return class extends base {
156
+ constructor(...args) {
157
+ super(...args);
158
+ this.defaultTabIndex = defaultTabIndex;
159
+ this._tabIndex = defaultTabIndex;
160
+ }
161
+ get tabIndex() {
162
+ return this.disabled ? -1 : this._tabIndex;
163
+ }
164
+ set tabIndex(value) {
165
+ // If the specified tabIndex value is null or undefined, fall back to the default value.
166
+ this._tabIndex = value != null ? coerceNumberProperty(value) : this.defaultTabIndex;
167
+ }
168
+ };
169
+ }
170
+
171
+ /**
172
+ * Mixin to augment a directive with updateErrorState method.
173
+ * For component with `errorState` and need to update `errorState`.
174
+ */
175
+ function mixinErrorState(base) {
176
+ return class extends base {
177
+ constructor(...args) {
178
+ super(...args);
179
+ /** Whether the component is in an error state. */
180
+ this.errorState = false;
181
+ /**
182
+ * Stream that emits whenever the state of the input changes such that the wrapping
183
+ * `MatFormField` needs to run change detection.
184
+ */
185
+ this.stateChanges = new Subject();
186
+ }
187
+ updateErrorState() {
188
+ const oldState = this.errorState;
189
+ const parent = this.parentFormGroup || this.parentForm;
190
+ const matcher = this.errorStateMatcher || this.defaultErrorStateMatcher;
191
+ const control = this.ngControl ? this.ngControl.control : null;
192
+ const newState = matcher.isErrorState(control, parent);
193
+ if (newState !== oldState) {
194
+ this.errorState = newState;
195
+ this.stateChanges.next();
196
+ }
197
+ }
198
+ };
199
+ }
200
+
201
+ /**
202
+ * Shared directive to count lines inside a text area, such as a list item.
203
+ * Line elements can be extracted with a @ContentChildren(McLine) query, then
204
+ * counted by checking the query list's length.
205
+ */
206
+ class McLine {
207
+ }
208
+ /** @nocollapse */ /** @nocollapse */ McLine.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McLine, deps: [], target: i0.ɵɵFactoryTarget.Directive });
209
+ /** @nocollapse */ /** @nocollapse */ McLine.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: McLine, selector: "[mc-line], [mcLine]", host: { classAttribute: "mc-line" }, ngImport: i0 });
210
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McLine, decorators: [{
211
+ type: Directive,
212
+ args: [{
213
+ selector: '[mc-line], [mcLine]',
214
+ host: { class: 'mc-line' }
215
+ }]
216
+ }] });
217
+ /**
218
+ * Helper that takes a query list of lines and sets the correct class on the host.
219
+ * @docs-private
220
+ */
221
+ class McLineSetter {
222
+ constructor(_lines, _element) {
223
+ this._lines = _lines;
224
+ this._element = _element;
225
+ this.setLineClass(this._lines.length);
226
+ this._lines.changes.subscribe(() => {
227
+ this.setLineClass(this._lines.length);
228
+ });
229
+ }
230
+ setLineClass(count) {
231
+ const minLineClassNumber = 2;
232
+ const maxLineClassNumber = 3;
233
+ this.resetClasses();
234
+ if (count === minLineClassNumber || count === maxLineClassNumber) {
235
+ this.setClass(`mc-${count}-line`, true);
236
+ }
237
+ else if (count > maxLineClassNumber) {
238
+ this.setClass(`mc-multi-line`, true);
239
+ }
240
+ }
241
+ resetClasses() {
242
+ this.setClass('mc-2-line', false);
243
+ this.setClass('mc-3-line', false);
244
+ this.setClass('mc-multi-line', false);
245
+ }
246
+ setClass(className, isAdd) {
247
+ if (isAdd) {
248
+ this._element.nativeElement.classList.add(className);
249
+ }
250
+ else {
251
+ this._element.nativeElement.classList.remove(className);
252
+ }
253
+ }
254
+ }
255
+ class McLineModule {
256
+ }
257
+ /** @nocollapse */ /** @nocollapse */ McLineModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McLineModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
258
+ /** @nocollapse */ /** @nocollapse */ McLineModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McLineModule, declarations: [McLine], exports: [McLine] });
259
+ /** @nocollapse */ /** @nocollapse */ McLineModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McLineModule, imports: [[]] });
260
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McLineModule, decorators: [{
261
+ type: NgModule,
262
+ args: [{
263
+ imports: [],
264
+ exports: [McLine],
265
+ declarations: [McLine]
266
+ }]
267
+ }] });
268
+
269
+ /** Error state matcher that matches when a control is invalid and dirty. */
270
+ class ShowOnDirtyErrorStateMatcher {
271
+ isErrorState(control, form) {
272
+ return !!(control && control.invalid && (control.dirty || (form && form.submitted)));
273
+ }
274
+ }
275
+ /** @nocollapse */ /** @nocollapse */ ShowOnDirtyErrorStateMatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: ShowOnDirtyErrorStateMatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
276
+ /** @nocollapse */ /** @nocollapse */ ShowOnDirtyErrorStateMatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: ShowOnDirtyErrorStateMatcher });
277
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: ShowOnDirtyErrorStateMatcher, decorators: [{
278
+ type: Injectable
279
+ }] });
280
+ /** Provider that defines how form controls behave with regards to displaying error messages. */
281
+ class ErrorStateMatcher {
282
+ isErrorState(control, form) {
283
+ return !!(control && control.invalid && (control.touched || (form && form.submitted)));
284
+ }
285
+ }
286
+ /** @nocollapse */ /** @nocollapse */ ErrorStateMatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: ErrorStateMatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
287
+ /** @nocollapse */ /** @nocollapse */ ErrorStateMatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: ErrorStateMatcher, providedIn: 'root' });
288
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: ErrorStateMatcher, decorators: [{
289
+ type: Injectable,
290
+ args: [{ providedIn: 'root' }]
291
+ }] });
292
+
293
+ const SECONDS_TEMPLATE$1 = `{
294
+ SHOW_MILLISECONDS,
295
+ select,
296
+ yes{:{SECONDS}{MILLISECONDS}}
297
+ other{{
298
+ SHOW_SECONDS,
299
+ select,
300
+ yes{:{SECONDS}}
301
+ other{}
302
+ }}
303
+ }`;
304
+ const enUS = {
305
+ relativeTemplates: {
306
+ short: {
307
+ BEFORE_YESTERDAY: `{CURRENT_YEAR, select, yes{{SHORT_DATE}, {TIME}} other{{SHORT_DATE}, {YEAR}}}${SECONDS_TEMPLATE$1}`,
308
+ YESTERDAY: `Yesterday, {TIME}${SECONDS_TEMPLATE$1}`,
309
+ TODAY: `Today, {TIME}${SECONDS_TEMPLATE$1}`,
310
+ TOMORROW: `Tomorrow, {TIME}${SECONDS_TEMPLATE$1}`,
311
+ AFTER_TOMORROW: `{CURRENT_YEAR, select, yes{{SHORT_DATE}, {TIME}} other{{SHORT_DATE}, {YEAR}}}${SECONDS_TEMPLATE$1}`
312
+ },
313
+ long: {
314
+ BEFORE_YESTERDAY: `{CURRENT_YEAR, select, yes{{DATE}, {TIME}} other{{DATE}, {YEAR}}}${SECONDS_TEMPLATE$1}`,
315
+ YESTERDAY: `Yesterday, {TIME}${SECONDS_TEMPLATE$1}`,
316
+ TODAY: `Today, {TIME}${SECONDS_TEMPLATE$1}`,
317
+ TOMORROW: `Tomorrow, {TIME}${SECONDS_TEMPLATE$1}`,
318
+ AFTER_TOMORROW: `{CURRENT_YEAR, select, yes{{DATE}, {TIME}} other{{DATE}, {YEAR}}}${SECONDS_TEMPLATE$1}`
319
+ }
320
+ },
321
+ absoluteTemplates: {
322
+ short: {
323
+ DATE: '{CURRENT_YEAR, select, yes{{SHORT_DATE}} other{{SHORT_DATE}, {YEAR}}}',
324
+ DATETIME: `{
325
+ CURRENT_YEAR,
326
+ select,
327
+ yes{{SHORT_DATE}, {TIME}}
328
+ other{{SHORT_DATE}, {YEAR}, {TIME}}
329
+ }${SECONDS_TEMPLATE$1}`
330
+ },
331
+ long: {
332
+ DATE: '{CURRENT_YEAR, select, yes{{DATE}} other{{DATE}, {YEAR}}}',
333
+ DATETIME: `{
334
+ CURRENT_YEAR,
335
+ select,
336
+ yes{{DATE}, {TIME}}
337
+ other{{DATE}, {YEAR}, {TIME}}
338
+ }${SECONDS_TEMPLATE$1}`
339
+ }
340
+ },
341
+ rangeTemplates: {
342
+ closedRange: {
343
+ short: {
344
+ START_DATE: '{CURRENT_YEAR, select, yes{{SHORT_DATE}} other{{SHORT_DATE}, {YEAR}}}',
345
+ END_DATE: `{
346
+ SAME_MONTH,
347
+ select,
348
+ yes{{DAY}}
349
+ other{{
350
+ CURRENT_YEAR,
351
+ select,
352
+ yes{{SHORT_DATE}}
353
+ other{{SHORT_DATE}, {YEAR}}
354
+ }}
355
+ }`,
356
+ DATE: `{
357
+ SAME_MONTH,
358
+ select,
359
+ yes{{START_DATE}{DASH}{END_DATE}}
360
+ other{{START_DATE}{LONG_DASH}{END_DATE}}
361
+ }`,
362
+ START_DATETIME: `{
363
+ SAME_DAY,
364
+ select,
365
+ yes{{TIME}}
366
+ other{{
367
+ CURRENT_YEAR,
368
+ select,
369
+ yes{{SHORT_DATE}, {TIME}}
370
+ other{{SHORT_DATE}, {YEAR}, {TIME}}
371
+ }}
372
+ }${SECONDS_TEMPLATE$1}`,
373
+ END_DATETIME: `{
374
+ SAME_DAY,
375
+ select,
376
+ yes{{
377
+ CURRENT_YEAR,
378
+ select,
379
+ yes{{TIME}${SECONDS_TEMPLATE$1}, {SHORT_DATE}}
380
+ other{{TIME}${SECONDS_TEMPLATE$1}, {SHORT_DATE}, {YEAR}}
381
+ }}
382
+ other{{
383
+ CURRENT_YEAR,
384
+ select,
385
+ yes{{SHORT_DATE}, {TIME}}
386
+ other{{SHORT_DATE}, {YEAR}, {TIME}}
387
+ }${SECONDS_TEMPLATE$1}}
388
+ }`,
389
+ DATETIME: `{
390
+ SAME_DAY,
391
+ select,
392
+ yes{{START_DATETIME}{DASH}{END_DATETIME}}
393
+ other{{START_DATETIME}{LONG_DASH}{END_DATETIME}}
394
+ }`
395
+ },
396
+ middle: {
397
+ START_DATE: `{
398
+ SAME_MONTH,
399
+ select,
400
+ yes{{DAY}}
401
+ other{{
402
+ CURRENT_YEAR,
403
+ select,
404
+ yes{{DATE}}
405
+ other{{DATE}, {YEAR}}
406
+ }}
407
+ }`,
408
+ END_DATE: '{CURRENT_YEAR, select, yes{{DATE}} other{{DATE}, {YEAR}}}',
409
+ DATE: `{
410
+ SAME_MONTH,
411
+ select,
412
+ yes{{START_DATE}{DASH}{END_DATE}}
413
+ other{{START_DATE}{LONG_DASH}{END_DATE}}
414
+ }`,
415
+ START_DATETIME: `{
416
+ SAME_DAY,
417
+ select,
418
+ yes{{TIME}}
419
+ other{{
420
+ CURRENT_YEAR,
421
+ select,
422
+ yes{{DATE}, {TIME}}
423
+ other{{DATE}, {YEAR}, {TIME}}
424
+ }}
425
+ }${SECONDS_TEMPLATE$1}`,
426
+ END_DATETIME: `{
427
+ SAME_DAY,
428
+ select,
429
+ yes{{
430
+ CURRENT_YEAR,
431
+ select,
432
+ yes{{TIME}${SECONDS_TEMPLATE$1}, {DATE}}
433
+ other{{TIME}${SECONDS_TEMPLATE$1}, {DATE}, {YEAR}}
434
+ }}
435
+ other{{
436
+ CURRENT_YEAR,
437
+ select,
438
+ yes{{DATE}, {TIME}}
439
+ other{{DATE}, {YEAR}, {TIME}}
440
+ }${SECONDS_TEMPLATE$1}}
441
+ }`,
442
+ DATETIME: `{
443
+ SAME_DAY,
444
+ select,
445
+ yes{{START_DATETIME}{DASH}{END_DATETIME}}
446
+ other{{START_DATETIME}{LONG_DASH}{END_DATETIME}}
447
+ }`
448
+ },
449
+ long: {
450
+ START_DATE: '{CURRENT_YEAR, select, yes{{DATE}} other{{DATE}, {YEAR}}}',
451
+ END_DATE: `{
452
+ SAME_MONTH,
453
+ select,
454
+ yes{{DAY}}
455
+ other{{
456
+ CURRENT_YEAR,
457
+ select,
458
+ yes{{DATE}}
459
+ other{{DATE}, {YEAR}}
460
+ }}
461
+ }`,
462
+ DATE: `{
463
+ SAME_MONTH,
464
+ select,
465
+ yes{{START_DATE}{DASH}{END_DATE}}
466
+ other{{START_DATE}{LONG_DASH}{END_DATE}}
467
+ }`,
468
+ START_DATETIME: `{
469
+ SAME_DAY,
470
+ select,
471
+ yes{{
472
+ CURRENT_YEAR,
473
+ select,
474
+ yes{{DATE}, from{NBSP}{TIME}}
475
+ other{{DATE}, {YEAR}, from{NBSP}{TIME}}
476
+ }}
477
+ other{{
478
+ CURRENT_YEAR,
479
+ select,
480
+ yes{{DATE}, {TIME}}
481
+ other{{DATE}, {YEAR}, {TIME}}
482
+ }}
483
+ }${SECONDS_TEMPLATE$1}`,
484
+ END_DATETIME: `{
485
+ SAME_DAY,
486
+ select,
487
+ yes{to{NBSP}{TIME}}
488
+ other{{
489
+ CURRENT_YEAR,
490
+ select,
491
+ yes{{DATE}, {TIME}}
492
+ other{{DATE}, {YEAR}, {TIME}}
493
+ }}
494
+ }${SECONDS_TEMPLATE$1}`,
495
+ DATETIME: `{
496
+ SAME_DAY,
497
+ select,
498
+ yes{{START_DATETIME} {END_DATETIME}}
499
+ other{From {START_DATETIME} to{NBSP}{END_DATETIME}}
500
+ }`
501
+ }
502
+ },
503
+ openedRange: {
504
+ short: {
505
+ START_DATE: `{
506
+ CURRENT_YEAR,
507
+ select,
508
+ yes{{SHORT_DATE}}
509
+ other{{SHORT_DATE} {YEAR}}
510
+ }`,
511
+ END_DATE: '{CURRENT_YEAR, select, yes{{SHORT_DATE}} other{{SHORT_DATE} {YEAR}}}',
512
+ DATE: `{
513
+ RANGE_TYPE,
514
+ select,
515
+ onlyStart{From{NBSP}{START_DATE}}
516
+ other{Until{NBSP}{END_DATE}}
517
+ }`,
518
+ START_DATETIME: `{
519
+ CURRENT_YEAR,
520
+ select,
521
+ yes{{SHORT_DATE}, {TIME}}
522
+ other{{SHORT_DATE} {YEAR}, {TIME}}
523
+ }${SECONDS_TEMPLATE$1}`,
524
+ END_DATETIME: `{
525
+ CURRENT_YEAR,
526
+ select,
527
+ yes{{SHORT_DATE}, {TIME}}
528
+ other{{SHORT_DATE} {YEAR}, {TIME}}
529
+ }${SECONDS_TEMPLATE$1}`,
530
+ DATETIME: `{
531
+ RANGE_TYPE,
532
+ select,
533
+ onlyStart{From{NBSP}{START_DATETIME}}
534
+ other{Until{NBSP}{END_DATETIME}}
535
+ }`
536
+ },
537
+ long: {
538
+ START_DATE: `{
539
+ CURRENT_YEAR,
540
+ select,
541
+ yes{{DATE}}
542
+ other{{DATE} {YEAR}}
543
+ }`,
544
+ END_DATE: '{CURRENT_YEAR, select, yes{{DATE}} other{{DATE} {YEAR}}}',
545
+ DATE: `{
546
+ RANGE_TYPE,
547
+ select,
548
+ onlyStart{From{NBSP}{START_DATE}}
549
+ other{Until{NBSP}{END_DATE}}
550
+ }`,
551
+ START_DATETIME: `{
552
+ CURRENT_YEAR,
553
+ select,
554
+ yes{{DATE}, {TIME}}
555
+ other{{DATE} {YEAR}, {TIME}}
556
+ }${SECONDS_TEMPLATE$1}`,
557
+ END_DATETIME: `{
558
+ CURRENT_YEAR,
559
+ select,
560
+ yes{{DATE}, {TIME}}
561
+ other{{DATE} {YEAR}, {TIME}}
562
+ }${SECONDS_TEMPLATE$1}`,
563
+ DATETIME: `{
564
+ RANGE_TYPE,
565
+ select,
566
+ onlyStart{From{NBSP}{START_DATETIME}}
567
+ other{Until{NBSP}{END_DATETIME}}
568
+ }`
569
+ }
570
+ }
571
+ }
572
+ };
573
+
574
+ const SECONDS_TEMPLATE = `{
575
+ SHOW_MILLISECONDS,
576
+ select,
577
+ yes{:{SECONDS}{MILLISECONDS}}
578
+ other{{
579
+ SHOW_SECONDS,
580
+ select,
581
+ yes{:{SECONDS}}
582
+ other{}
583
+ }}
584
+ }`;
585
+ const ruRU = {
586
+ relativeTemplates: {
587
+ short: {
588
+ BEFORE_YESTERDAY: `{CURRENT_YEAR, select, yes{{SHORT_DATE}, {TIME}} other{{SHORT_DATE} {YEAR}}}${SECONDS_TEMPLATE}`,
589
+ YESTERDAY: `Вчера, {TIME}${SECONDS_TEMPLATE}`,
590
+ TODAY: `Сегодня, {TIME}${SECONDS_TEMPLATE}`,
591
+ TOMORROW: `Завтра, {TIME}${SECONDS_TEMPLATE}`,
592
+ AFTER_TOMORROW: `{CURRENT_YEAR, select, yes{{SHORT_DATE}, {TIME}} other{{SHORT_DATE} {YEAR}}}${SECONDS_TEMPLATE}`
593
+ },
594
+ long: {
595
+ BEFORE_YESTERDAY: `{CURRENT_YEAR, select, yes{{DATE}, {TIME}} other{{DATE} {YEAR}}}${SECONDS_TEMPLATE}`,
596
+ YESTERDAY: `Вчера, {TIME}${SECONDS_TEMPLATE}`,
597
+ TODAY: `Сегодня, {TIME}${SECONDS_TEMPLATE}`,
598
+ TOMORROW: `Завтра, {TIME}${SECONDS_TEMPLATE}`,
599
+ AFTER_TOMORROW: `{CURRENT_YEAR, select, yes{{DATE}, {TIME}} other{{DATE} {YEAR}}}${SECONDS_TEMPLATE}`
600
+ }
601
+ },
602
+ absoluteTemplates: {
603
+ short: {
604
+ DATE: '{CURRENT_YEAR, select, yes{{SHORT_DATE}} other{{SHORT_DATE} {YEAR}}}',
605
+ DATETIME: `{
606
+ CURRENT_YEAR,
607
+ select,
608
+ yes{{SHORT_DATE}, {TIME}}
609
+ other{{SHORT_DATE} {YEAR}, {TIME}}
610
+ }${SECONDS_TEMPLATE}`
611
+ },
612
+ long: {
613
+ DATE: '{CURRENT_YEAR, select, yes{{DATE}} other{{DATE} {YEAR}}}',
614
+ DATETIME: `{
615
+ CURRENT_YEAR,
616
+ select,
617
+ yes{{DATE}, {TIME}}
618
+ other{{DATE} {YEAR}, {TIME}}
619
+ }${SECONDS_TEMPLATE}`
620
+ }
621
+ },
622
+ rangeTemplates: {
623
+ closedRange: {
624
+ short: {
625
+ START_DATE: `{
626
+ SAME_MONTH,
627
+ select,
628
+ yes{{DAY}}
629
+ other{{
630
+ CURRENT_YEAR,
631
+ select,
632
+ yes{{SHORT_DATE}}
633
+ other{{SHORT_DATE} {YEAR}}
634
+ }}
635
+ }`,
636
+ END_DATE: '{CURRENT_YEAR, select, yes{{SHORT_DATE}} other{{SHORT_DATE} {YEAR}}}',
637
+ DATE: `{
638
+ SAME_MONTH,
639
+ select,
640
+ yes{{START_DATE}{DASH}{END_DATE}}
641
+ other{{START_DATE}{LONG_DASH}{END_DATE}}
642
+ }`,
643
+ START_DATETIME: `{
644
+ SAME_DAY,
645
+ select,
646
+ yes{{TIME}}
647
+ other{{
648
+ CURRENT_YEAR,
649
+ select,
650
+ yes{{SHORT_DATE}, {TIME}}
651
+ other{{SHORT_DATE} {YEAR}, {TIME}}
652
+ }}
653
+ }${SECONDS_TEMPLATE}`,
654
+ END_DATETIME: `{
655
+ SAME_DAY,
656
+ select,
657
+ yes{{
658
+ CURRENT_YEAR,
659
+ select,
660
+ yes{{TIME}${SECONDS_TEMPLATE}, {SHORT_DATE}}
661
+ other{{TIME}${SECONDS_TEMPLATE}, {SHORT_DATE} {YEAR}}
662
+ }}
663
+ other{{
664
+ CURRENT_YEAR,
665
+ select,
666
+ yes{{SHORT_DATE}, {TIME}}
667
+ other{{SHORT_DATE} {YEAR}, {TIME}}
668
+ }${SECONDS_TEMPLATE}}
669
+ }`,
670
+ DATETIME: `{
671
+ SAME_DAY,
672
+ select,
673
+ yes{{START_DATETIME}{DASH}{END_DATETIME}}
674
+ other{{START_DATETIME}{LONG_DASH}{END_DATETIME}}
675
+ }`
676
+ },
677
+ middle: {
678
+ START_DATE: `{
679
+ SAME_MONTH,
680
+ select,
681
+ yes{{DAY}}
682
+ other{{
683
+ CURRENT_YEAR,
684
+ select,
685
+ yes{{DATE}}
686
+ other{{DATE} {YEAR}}
687
+ }}
688
+ }`,
689
+ END_DATE: '{CURRENT_YEAR, select, yes{{DATE}} other{{DATE} {YEAR}}}',
690
+ DATE: `{
691
+ SAME_MONTH,
692
+ select,
693
+ yes{{START_DATE}{DASH}{END_DATE}}
694
+ other{{START_DATE}{LONG_DASH}{END_DATE}}
695
+ }`,
696
+ START_DATETIME: `{
697
+ SAME_DAY,
698
+ select,
699
+ yes{{TIME}}
700
+ other{{
701
+ CURRENT_YEAR,
702
+ select,
703
+ yes{{DATE}, {TIME}}
704
+ other{{DATE} {YEAR}, {TIME}}
705
+ }}
706
+ }${SECONDS_TEMPLATE}`,
707
+ END_DATETIME: `{
708
+ SAME_DAY,
709
+ select,
710
+ yes{{
711
+ CURRENT_YEAR,
712
+ select,
713
+ yes{{TIME}${SECONDS_TEMPLATE}, {DATE}}
714
+ other{{TIME}${SECONDS_TEMPLATE}, {DATE} {YEAR}}
715
+ }}
716
+ other{{
717
+ CURRENT_YEAR,
718
+ select,
719
+ yes{{DATE}, {TIME}}
720
+ other{{DATE} {YEAR}, {TIME}}
721
+ }${SECONDS_TEMPLATE}}
722
+ }`,
723
+ DATETIME: `{
724
+ SAME_DAY,
725
+ select,
726
+ yes{{START_DATETIME}{DASH}{END_DATETIME}}
727
+ other{{START_DATETIME}{LONG_DASH}{END_DATETIME}}
728
+ }`
729
+ },
730
+ long: {
731
+ START_DATE: `{
732
+ SAME_MONTH,
733
+ select,
734
+ yes{{DAY}}
735
+ other{{
736
+ CURRENT_YEAR,
737
+ select,
738
+ yes{{DATE}}
739
+ other{{DATE} {YEAR}}
740
+ }}
741
+ }`,
742
+ END_DATE: '{CURRENT_YEAR, select, yes{{DATE}} other{{DATE} {YEAR}}}',
743
+ DATE: `{
744
+ SAME_MONTH,
745
+ select,
746
+ yes{{START_DATE}{DASH}{END_DATE}}
747
+ other{{START_DATE}{LONG_DASH}{END_DATE}}
748
+ }`,
749
+ START_DATETIME: `{
750
+ SAME_DAY,
751
+ select,
752
+ yes{{
753
+ CURRENT_YEAR,
754
+ select,
755
+ yes{{DATE}, с{NBSP}{TIME}}
756
+ other{{DATE} {YEAR}, с{NBSP}{TIME}}
757
+ }}
758
+ other{{
759
+ CURRENT_YEAR,
760
+ select,
761
+ yes{{DATE}, {TIME}}
762
+ other{{DATE} {YEAR}, {TIME}}
763
+ }}
764
+ }${SECONDS_TEMPLATE}`,
765
+ END_DATETIME: `{
766
+ SAME_DAY,
767
+ select,
768
+ yes{по{NBSP}{TIME}}
769
+ other{{
770
+ CURRENT_YEAR,
771
+ select,
772
+ yes{{DATE}, {TIME}}
773
+ other{{DATE} {YEAR}, {TIME}}
774
+ }}
775
+ }${SECONDS_TEMPLATE}`,
776
+ DATETIME: `{
777
+ SAME_DAY,
778
+ select,
779
+ yes{{START_DATETIME} {END_DATETIME}}
780
+ other{С{NBSP}{START_DATETIME} по{NBSP}{END_DATETIME}}
781
+ }`
782
+ }
783
+ },
784
+ openedRange: {
785
+ short: {
786
+ START_DATE: `{
787
+ CURRENT_YEAR,
788
+ select,
789
+ yes{{SHORT_DATE}}
790
+ other{{SHORT_DATE} {YEAR}}
791
+ }`,
792
+ END_DATE: '{CURRENT_YEAR, select, yes{{SHORT_DATE}} other{{SHORT_DATE} {YEAR}}}',
793
+ DATE: `{
794
+ RANGE_TYPE,
795
+ select,
796
+ onlyStart{С{NBSP}{START_DATE}}
797
+ other{По{NBSP}{END_DATE}}
798
+ }`,
799
+ START_DATETIME: `{
800
+ CURRENT_YEAR,
801
+ select,
802
+ yes{{SHORT_DATE}, {TIME}}
803
+ other{{SHORT_DATE} {YEAR}, {TIME}}
804
+ }${SECONDS_TEMPLATE}`,
805
+ END_DATETIME: `{
806
+ CURRENT_YEAR,
807
+ select,
808
+ yes{{SHORT_DATE}, {TIME}}
809
+ other{{SHORT_DATE} {YEAR}, {TIME}}
810
+ }${SECONDS_TEMPLATE}`,
811
+ DATETIME: `{
812
+ RANGE_TYPE,
813
+ select,
814
+ onlyStart{С{NBSP}{START_DATETIME}}
815
+ other{По{NBSP}{END_DATETIME}}
816
+ }`
817
+ },
818
+ long: {
819
+ START_DATE: `{
820
+ CURRENT_YEAR,
821
+ select,
822
+ yes{{DATE}}
823
+ other{{DATE} {YEAR}}
824
+ }`,
825
+ END_DATE: '{CURRENT_YEAR, select, yes{{DATE}} other{{DATE} {YEAR}}}',
826
+ DATE: `{
827
+ RANGE_TYPE,
828
+ select,
829
+ onlyStart{С{NBSP}{START_DATE}}
830
+ other{По{NBSP}{END_DATE}}
831
+ }`,
832
+ START_DATETIME: `{
833
+ CURRENT_YEAR,
834
+ select,
835
+ yes{{DATE}, {TIME}}
836
+ other{{DATE} {YEAR}, {TIME}}
837
+ }${SECONDS_TEMPLATE}`,
838
+ END_DATETIME: `{
839
+ CURRENT_YEAR,
840
+ select,
841
+ yes{{DATE}, {TIME}}
842
+ other{{DATE} {YEAR}, {TIME}}
843
+ }${SECONDS_TEMPLATE}`,
844
+ DATETIME: `{
845
+ RANGE_TYPE,
846
+ select,
847
+ onlyStart{С{NBSP}{START_DATETIME}}
848
+ other{По{NBSP}{END_DATETIME}}
849
+ }`
850
+ }
851
+ }
852
+ }
853
+ };
854
+
855
+ // tslint:disable:no-magic-numbers
856
+ class DateFormatter {
857
+ constructor(adapter, locale) {
858
+ this.adapter = adapter;
859
+ this.invalidDateErrorText = 'Invalid date';
860
+ this.config = locale === 'en' ? enUS : ruRU;
861
+ this.messageFormat = new MessageFormat(locale);
862
+ }
863
+ setLocale(locale) {
864
+ this.config = locale === 'en' ? enUS : ruRU;
865
+ this.adapter.setLocale(locale);
866
+ }
867
+ /**
868
+ * @param date - date
869
+ * @param template - template
870
+ * @returns relative date by template
871
+ */
872
+ relativeDate(date, template, seconds = false, milliseconds = false) {
873
+ if (!this.adapter.isDateInstance(date)) {
874
+ throw new Error(this.invalidDateErrorText);
875
+ }
876
+ let newTemplate;
877
+ const templateVariables = { ...this.adapter.config.variables, ...template.variables };
878
+ if (this.isBeforeYesterday(date)) {
879
+ newTemplate = template.BEFORE_YESTERDAY;
880
+ }
881
+ else if (this.isYesterday(date)) {
882
+ newTemplate = template.YESTERDAY;
883
+ }
884
+ else if (this.isToday(date)) {
885
+ newTemplate = template.TODAY;
886
+ }
887
+ else if (this.isTomorrow(date)) {
888
+ newTemplate = template.TOMORROW;
889
+ }
890
+ else if (this.isAfterTomorrow(date)) {
891
+ newTemplate = template.AFTER_TOMORROW;
892
+ }
893
+ const variables = this.compileVariables(date, templateVariables);
894
+ variables.SHOW_SECONDS = seconds ? 'yes' : 'no';
895
+ variables.SHOW_MILLISECONDS = milliseconds ? 'yes' : 'no';
896
+ return this.messageFormat.compile(newTemplate)(variables);
897
+ }
898
+ /**
899
+ * @param date - date
900
+ * @returns relative date in short format
901
+ */
902
+ relativeShortDate(date) {
903
+ return this.relativeDate(date, this.config.relativeTemplates.short);
904
+ }
905
+ /**
906
+ * @param date - date
907
+ * @returns relative date in long format
908
+ */
909
+ relativeLongDate(date) {
910
+ return this.relativeDate(date, this.config.relativeTemplates.long);
911
+ }
912
+ /**
913
+ * @param date - date
914
+ * @param options - DateTimeOptions
915
+ * @returns relative date in short format with time
916
+ */
917
+ relativeShortDateTime(date, options) {
918
+ return this.relativeDate(date, this.config.relativeTemplates.short, options?.seconds, options?.milliseconds);
919
+ }
920
+ /**
921
+ * @param date - date
922
+ * @param options - DateTimeOptions
923
+ * @returns relative date in long format with time
924
+ */
925
+ relativeLongDateTime(date, options) {
926
+ return this.relativeDate(date, this.config.relativeTemplates.long, options?.seconds, options?.milliseconds);
927
+ }
928
+ /**
929
+ * @param date - date
930
+ * @param params - parameters
931
+ * @param datetime - should time be shown as well
932
+ * @param seconds - should time with seconds be shown as well
933
+ * @param milliseconds - should time with milliseconds be shown as well
934
+ * @returns absolute date in common format
935
+ */
936
+ absoluteDate(date, params, datetime = false, seconds = false, milliseconds = false) {
937
+ if (!this.adapter.isDateInstance(date)) {
938
+ throw new Error(this.invalidDateErrorText);
939
+ }
940
+ const variables = this.compileVariables(date, { ...this.adapter.config.variables, ...params.variables });
941
+ variables.SHOW_SECONDS = seconds ? 'yes' : 'no';
942
+ variables.SHOW_MILLISECONDS = milliseconds ? 'yes' : 'no';
943
+ const template = datetime ? params.DATETIME : params.DATE;
944
+ return this.messageFormat.compile(template)(variables);
945
+ }
946
+ /**
947
+ * @param date - date
948
+ * @returns absolute date in short format
949
+ */
950
+ absoluteShortDate(date) {
951
+ return this.absoluteDate(date, this.config.absoluteTemplates.short);
952
+ }
953
+ /**
954
+ * @param date - date
955
+ * @param options - DateTimeOptions
956
+ * @returns absolute date in short format with time
957
+ */
958
+ absoluteShortDateTime(date, options) {
959
+ return this.absoluteDate(date, this.config.absoluteTemplates.short, true, options?.seconds, options?.milliseconds);
960
+ }
961
+ /**
962
+ * @param date - date
963
+ * @returns absolute date in long format
964
+ */
965
+ absoluteLongDate(date) {
966
+ return this.absoluteDate(date, this.config.absoluteTemplates.long);
967
+ }
968
+ /**
969
+ * @param date - date
970
+ * @param options - DateTimeOptions
971
+ * @returns absolute date in long format with time
972
+ */
973
+ absoluteLongDateTime(date, options) {
974
+ return this.absoluteDate(date, this.config.absoluteTemplates.long, true, options?.seconds, options?.milliseconds);
975
+ }
976
+ /**
977
+ * @param startDate - start date
978
+ * @param endDate - end date
979
+ * @param template - template
980
+ * @returns opened date
981
+ */
982
+ openedRangeDate(startDate, endDate, template) {
983
+ if (!this.adapter.isDateInstance(startDate) && !this.adapter.isDateInstance(endDate)) {
984
+ throw new Error(this.invalidDateErrorText);
985
+ }
986
+ const variables = { ...this.adapter.config.variables, ...template.variables };
987
+ let params = {};
988
+ if (startDate) {
989
+ const startDateVariables = this.compileVariables(startDate, variables);
990
+ params = {
991
+ ...variables,
992
+ START_DATE: this.messageFormat.compile(template.START_DATE)(startDateVariables),
993
+ RANGE_TYPE: 'onlyStart'
994
+ };
995
+ }
996
+ else if (endDate) {
997
+ const endDateVariables = this.compileVariables(endDate, variables);
998
+ params = {
999
+ ...variables,
1000
+ END_DATE: this.messageFormat.compile(template.END_DATE)(endDateVariables),
1001
+ RANGE_TYPE: 'onlyEnd'
1002
+ };
1003
+ }
1004
+ return this.messageFormat.compile(template.DATE)(params);
1005
+ }
1006
+ /**
1007
+ * @param startDate - start date
1008
+ * @param endDate - end date
1009
+ * @param template - template
1010
+ * @param seconds - should time with seconds be shown as well
1011
+ * @param milliseconds - should time with milliseconds be shown as well
1012
+ * @returns opened date
1013
+ */
1014
+ openedRangeDateTime(startDate, endDate, template, seconds = false, milliseconds = false) {
1015
+ if (!this.adapter.isDateInstance(startDate) && !this.adapter.isDateInstance(endDate)) {
1016
+ throw new Error(this.invalidDateErrorText);
1017
+ }
1018
+ const variables = { ...this.adapter.config.variables, ...template.variables };
1019
+ let params = {};
1020
+ if (startDate) {
1021
+ const startDateVariables = this.compileVariables(startDate, variables);
1022
+ startDateVariables.SHOW_SECONDS = seconds ? 'yes' : 'no';
1023
+ startDateVariables.SHOW_MILLISECONDS = milliseconds ? 'yes' : 'no';
1024
+ params = {
1025
+ ...variables,
1026
+ START_DATETIME: this.messageFormat.compile(template.START_DATETIME)(startDateVariables),
1027
+ RANGE_TYPE: 'onlyStart'
1028
+ };
1029
+ }
1030
+ else if (endDate) {
1031
+ const endDateVariables = this.compileVariables(endDate, variables);
1032
+ endDateVariables.SHOW_SECONDS = seconds ? 'yes' : 'no';
1033
+ endDateVariables.SHOW_MILLISECONDS = milliseconds ? 'yes' : 'no';
1034
+ params = {
1035
+ ...variables,
1036
+ END_DATETIME: this.messageFormat.compile(template.END_DATETIME)(endDateVariables),
1037
+ RANGE_TYPE: 'onlyEnd'
1038
+ };
1039
+ }
1040
+ return this.messageFormat.compile(template.DATETIME)(params);
1041
+ }
1042
+ /**
1043
+ * @param startDate - start date
1044
+ * @param endDate - end date
1045
+ * @param template - template
1046
+ * @returns range date in template format
1047
+ */
1048
+ rangeDate(startDate, endDate, template) {
1049
+ if (!this.adapter.isDateInstance(startDate) || !this.adapter.isDateInstance(endDate)) {
1050
+ throw new Error(this.invalidDateErrorText);
1051
+ }
1052
+ const variables = { ...this.adapter.config.variables, ...template.variables };
1053
+ const sameMonth = this.hasSame(startDate, endDate, 'month');
1054
+ const startDateVariables = this.compileVariables(startDate, variables);
1055
+ startDateVariables.SAME_MONTH = sameMonth;
1056
+ const endDateVariables = this.compileVariables(endDate, variables);
1057
+ endDateVariables.SAME_MONTH = sameMonth;
1058
+ const bothCurrentYear = startDateVariables.CURRENT_YEAR === 'yes' && endDateVariables.CURRENT_YEAR === 'yes';
1059
+ startDateVariables.CURRENT_YEAR = bothCurrentYear ? 'yes' : 'no';
1060
+ endDateVariables.CURRENT_YEAR = bothCurrentYear ? 'yes' : 'no';
1061
+ const params = {
1062
+ ...variables,
1063
+ START_DATE: this.messageFormat.compile(template.START_DATE)(startDateVariables),
1064
+ END_DATE: this.messageFormat.compile(template.END_DATE)(endDateVariables),
1065
+ SAME_MONTH: sameMonth
1066
+ };
1067
+ return this.messageFormat.compile(template.DATE)(params);
1068
+ }
1069
+ /**
1070
+ * @param startDate - start date
1071
+ * @param endDate - end date
1072
+ * @param template - template
1073
+ * @returns range date in template format with time
1074
+ */
1075
+ rangeDateTime(startDate, endDate, template, seconds = false, milliseconds = false) {
1076
+ if (!this.adapter.isDateInstance(startDate) || !this.adapter.isDateInstance(endDate)) {
1077
+ throw new Error(this.invalidDateErrorText);
1078
+ }
1079
+ const variables = { ...this.adapter.config.variables, ...template.variables };
1080
+ const sameMonth = this.hasSame(startDate, endDate, 'month');
1081
+ const sameDay = this.hasSame(startDate, endDate, 'day');
1082
+ const startDateVariables = this.compileVariables(startDate, variables);
1083
+ startDateVariables.SAME_MONTH = sameMonth;
1084
+ startDateVariables.SAME_DAY = sameDay;
1085
+ startDateVariables.SHOW_SECONDS = seconds ? 'yes' : 'no';
1086
+ startDateVariables.SHOW_MILLISECONDS = milliseconds ? 'yes' : 'no';
1087
+ const endDateVariables = this.compileVariables(endDate, variables);
1088
+ endDateVariables.SAME_MONTH = sameMonth;
1089
+ endDateVariables.SAME_DAY = sameDay;
1090
+ endDateVariables.SHOW_SECONDS = seconds ? 'yes' : 'no';
1091
+ endDateVariables.SHOW_MILLISECONDS = milliseconds ? 'yes' : 'no';
1092
+ const bothCurrentYear = startDateVariables.CURRENT_YEAR === 'yes' && endDateVariables.CURRENT_YEAR === 'yes';
1093
+ startDateVariables.CURRENT_YEAR = bothCurrentYear ? 'yes' : 'no';
1094
+ endDateVariables.CURRENT_YEAR = bothCurrentYear ? 'yes' : 'no';
1095
+ const params = {
1096
+ ...variables,
1097
+ START_DATETIME: this.messageFormat.compile(template.START_DATETIME)(startDateVariables),
1098
+ END_DATETIME: this.messageFormat.compile(template.END_DATETIME)(endDateVariables),
1099
+ SAME_MONTH: sameMonth,
1100
+ SAME_DAY: sameDay
1101
+ };
1102
+ return this.messageFormat.compile(template.DATETIME)(params);
1103
+ }
1104
+ /**
1105
+ * @param startDate - start date
1106
+ * @param endDate - end date
1107
+ * @returns range date in short format
1108
+ */
1109
+ rangeShortDate(startDate, endDate) {
1110
+ const rangeTemplates = this.config.rangeTemplates;
1111
+ if (startDate && endDate) {
1112
+ return this.rangeDate(startDate, endDate, rangeTemplates.closedRange.short);
1113
+ }
1114
+ return this.openedRangeDate(startDate, endDate || null, rangeTemplates.openedRange.short);
1115
+ }
1116
+ /**
1117
+ * @param startDate - start date
1118
+ * @param endDate - end date
1119
+ * @param options - DateTimeOptions
1120
+ * @returns range date in short format with time
1121
+ */
1122
+ rangeShortDateTime(startDate, endDate, options) {
1123
+ const rangeTemplates = this.config.rangeTemplates;
1124
+ if (startDate && endDate) {
1125
+ return this.rangeDateTime(startDate, endDate, rangeTemplates.closedRange.short, options?.seconds, options?.milliseconds);
1126
+ }
1127
+ return this.openedRangeDateTime(startDate, endDate || null, rangeTemplates.openedRange.short, options?.seconds, options?.milliseconds);
1128
+ }
1129
+ /**
1130
+ * @param startDate - start date
1131
+ * @param endDate - end date
1132
+ * @returns range date in long format
1133
+ */
1134
+ rangeLongDate(startDate, endDate) {
1135
+ const rangeTemplates = this.config.rangeTemplates;
1136
+ if (startDate && endDate) {
1137
+ return this.rangeDate(startDate, endDate, rangeTemplates.closedRange.long);
1138
+ }
1139
+ return this.openedRangeDate(startDate, endDate || null, rangeTemplates.openedRange.long);
1140
+ }
1141
+ /**
1142
+ * @param startDate - start date
1143
+ * @param endDate - end date
1144
+ * @param options - DateTimeOptions
1145
+ * @returns range date in long format with time
1146
+ */
1147
+ rangeLongDateTime(startDate, endDate, options) {
1148
+ const rangeTemplates = this.config.rangeTemplates;
1149
+ if (startDate && endDate) {
1150
+ return this.rangeDateTime(startDate, endDate, rangeTemplates.closedRange.long, options?.seconds, options?.milliseconds);
1151
+ }
1152
+ return this.openedRangeDateTime(startDate, endDate || null, rangeTemplates.openedRange.long);
1153
+ }
1154
+ /**
1155
+ * @param startDate - start date
1156
+ * @param endDate - end date
1157
+ * @param options - DateTimeOptions
1158
+ * @returns range middle date with time
1159
+ */
1160
+ rangeMiddleDateTime(startDate, endDate, options) {
1161
+ return this.rangeDateTime(startDate, endDate, this.config.rangeTemplates.closedRange.middle, options?.seconds, options?.milliseconds);
1162
+ }
1163
+ compileVariables(date, variables) {
1164
+ const compiledVariables = {};
1165
+ // tslint:disable-next-line:no-for-in
1166
+ for (const key in variables) {
1167
+ if (!variables.hasOwnProperty(key)) {
1168
+ continue;
1169
+ }
1170
+ const value = variables[key];
1171
+ compiledVariables[key] = this.adapter.format(date, value);
1172
+ }
1173
+ compiledVariables.CURRENT_YEAR = this.hasSame(date, this.adapter.today(), 'year');
1174
+ return compiledVariables;
1175
+ }
1176
+ isBeforeYesterday(date) {
1177
+ return this.adapter.daysFromToday(date) <= -2;
1178
+ }
1179
+ isYesterday(date) {
1180
+ const interval = this.adapter.daysFromToday(date);
1181
+ return interval > -2 && interval <= -1;
1182
+ }
1183
+ isToday(date) {
1184
+ return this.adapter.daysFromToday(date) === 0;
1185
+ }
1186
+ isTomorrow(date) {
1187
+ const interval = this.adapter.daysFromToday(date);
1188
+ return interval >= 1 && interval < 2;
1189
+ }
1190
+ isAfterTomorrow(date) {
1191
+ return this.adapter.daysFromToday(date) >= 2;
1192
+ }
1193
+ hasSame(startDate, endDate, unit) {
1194
+ return this.adapter.hasSame(startDate, endDate, unit) ? 'yes' : 'no';
1195
+ }
1196
+ }
1197
+ /** @nocollapse */ /** @nocollapse */ DateFormatter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DateFormatter, deps: [{ token: i1.DateAdapter }, { token: MC_DATE_LOCALE }], target: i0.ɵɵFactoryTarget.Injectable });
1198
+ /** @nocollapse */ /** @nocollapse */ DateFormatter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DateFormatter });
1199
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: DateFormatter, decorators: [{
1200
+ type: Injectable
1201
+ }], ctorParameters: function () { return [{ type: i1.DateAdapter }, { type: undefined, decorators: [{
1202
+ type: Inject,
1203
+ args: [MC_DATE_LOCALE]
1204
+ }] }]; } });
1205
+
1206
+ /* tslint:disable:naming-convention */
1207
+ const MC_LOCALE_ID = new InjectionToken('McLocaleId');
1208
+ const DEFAULT_MC_LOCALE_ID = 'ru';
1209
+ function isEmpty(value) {
1210
+ return value == null || value === '' || value !== value;
1211
+ }
1212
+ function strToNumber(value) {
1213
+ if (typeof value === 'string' && !isNaN(Number(value) - parseFloat(value))) {
1214
+ return Number(value);
1215
+ }
1216
+ if (typeof value !== 'number') {
1217
+ throw new Error(`${value} is not a number`);
1218
+ }
1219
+ return value;
1220
+ }
1221
+ const NUMBER_FORMAT_REGEXP = /^(\d+)?\.((\d+)(-(\d+))?)?$/;
1222
+ const minIntGroupPosition = 1;
1223
+ const minFractionGroupPosition = 3;
1224
+ const maxFractionGroupPosition = 5;
1225
+ class ParsedDigitsInfo {
1226
+ }
1227
+ function parseDigitsInfo(digitsInfo) {
1228
+ const parts = digitsInfo.match(NUMBER_FORMAT_REGEXP);
1229
+ if (parts === null) {
1230
+ throw new Error(`${digitsInfo} is not a valid digit info`);
1231
+ }
1232
+ const minIntPart = parts[minIntGroupPosition];
1233
+ const minFractionPart = parts[minFractionGroupPosition];
1234
+ const maxFractionPart = parts[maxFractionGroupPosition];
1235
+ const result = new ParsedDigitsInfo();
1236
+ if (minIntPart != null) {
1237
+ result.minimumIntegerDigits = parseInt(minIntPart);
1238
+ }
1239
+ if (minFractionPart != null) {
1240
+ result.minimumFractionDigits = parseInt(minFractionPart);
1241
+ }
1242
+ if (maxFractionPart != null) {
1243
+ result.maximumFractionDigits = parseInt(maxFractionPart);
1244
+ }
1245
+ else if (minFractionPart != null && result.minimumFractionDigits > result.maximumFractionDigits) {
1246
+ result.maximumFractionDigits = result.minimumFractionDigits;
1247
+ }
1248
+ return result;
1249
+ }
1250
+ class McDecimalPipe {
1251
+ constructor(_locale) {
1252
+ this._locale = _locale;
1253
+ }
1254
+ /**
1255
+ * @param value The number to be formatted.
1256
+ * @param digitsInfo Decimal representation options, specified by a string
1257
+ * in the following format:<br>
1258
+ * <code>{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}</code>.
1259
+ * - `minIntegerDigits`: The minimum number of integer digits before the decimal point.
1260
+ * Default is `1`.
1261
+ * - `minFractionDigits`: The minimum number of digits after the decimal point.
1262
+ * Default is `0`.
1263
+ * - `maxFractionDigits`: The maximum number of digits after the decimal point.
1264
+ * Default is `3`.
1265
+ * @param locale A locale code for the locale format rules to use.
1266
+ * When not supplied, uses the value of `MC_LOCALE_ID`, which is `ru` by default.
1267
+ */
1268
+ transform(value, digitsInfo, locale) {
1269
+ if (isEmpty(value)) {
1270
+ return null;
1271
+ }
1272
+ const currentLocale = locale || this._locale || DEFAULT_MC_LOCALE_ID;
1273
+ let parsedDigitsInfo;
1274
+ if (digitsInfo) {
1275
+ parsedDigitsInfo = parseDigitsInfo(digitsInfo);
1276
+ }
1277
+ const options = {
1278
+ useGrouping: true,
1279
+ minimumIntegerDigits: 1,
1280
+ minimumFractionDigits: 0,
1281
+ maximumFractionDigits: 3,
1282
+ ...parsedDigitsInfo
1283
+ };
1284
+ try {
1285
+ const num = strToNumber(value);
1286
+ return Intl.NumberFormat.call(this, currentLocale, options).format(num);
1287
+ }
1288
+ catch (error) {
1289
+ throw Error(`InvalidPipeArgument: McDecimalPipe for pipe '${JSON.stringify(error.message)}'`);
1290
+ }
1291
+ }
1292
+ }
1293
+ /** @nocollapse */ /** @nocollapse */ McDecimalPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McDecimalPipe, deps: [{ token: MC_LOCALE_ID, optional: true }], target: i0.ɵɵFactoryTarget.Pipe });
1294
+ /** @nocollapse */ /** @nocollapse */ McDecimalPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McDecimalPipe, name: "mcNumber" });
1295
+ /** @nocollapse */ /** @nocollapse */ McDecimalPipe.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McDecimalPipe, providedIn: 'root' });
1296
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McDecimalPipe, decorators: [{
1297
+ type: Injectable,
1298
+ args: [{ providedIn: 'root' }]
1299
+ }, {
1300
+ type: Pipe,
1301
+ args: [{ name: 'mcNumber' }]
1302
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
1303
+ type: Optional
1304
+ }, {
1305
+ type: Inject,
1306
+ args: [MC_LOCALE_ID]
1307
+ }] }]; } });
1308
+
1309
+ class McFormattersModule {
1310
+ }
1311
+ /** @nocollapse */ /** @nocollapse */ McFormattersModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McFormattersModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1312
+ /** @nocollapse */ /** @nocollapse */ McFormattersModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McFormattersModule, declarations: [McDecimalPipe], exports: [McDecimalPipe] });
1313
+ /** @nocollapse */ /** @nocollapse */ McFormattersModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McFormattersModule, providers: [DateFormatter] });
1314
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McFormattersModule, decorators: [{
1315
+ type: NgModule,
1316
+ args: [{
1317
+ exports: [McDecimalPipe],
1318
+ declarations: [McDecimalPipe],
1319
+ providers: [DateFormatter]
1320
+ }]
1321
+ }] });
1322
+
1323
+ const validationTooltipShowDelay = 10;
1324
+ const validationTooltipHideDelay = 3000;
1325
+ const MC_VALIDATION = new InjectionToken('McUseValidation', { factory: () => ({ useValidation: true }) });
1326
+ function setValidState(control, validator) {
1327
+ if (!control) {
1328
+ return;
1329
+ }
1330
+ control.clearValidators();
1331
+ control.updateValueAndValidity({ emitEvent: false });
1332
+ control.setValidators(validator);
1333
+ }
1334
+ /** This function do next:
1335
+ * - run validation on submitting parent form
1336
+ * - prevent validation in required validator if form doesn't submitted
1337
+ * - if control has focus validation will be prevented
1338
+ */
1339
+ function setMosaicValidation(component) {
1340
+ const ngControl = component.ngControl;
1341
+ if (!ngControl) {
1342
+ return;
1343
+ }
1344
+ const parentForm = component.parentForm || component.parentFormGroup;
1345
+ if (parentForm) {
1346
+ parentForm.ngSubmit.subscribe(() => {
1347
+ // tslint:disable-next-line: no-unnecessary-type-assertion
1348
+ ngControl.control.updateValueAndValidity({ emitEvent: false });
1349
+ });
1350
+ }
1351
+ if (component.ngModel) {
1352
+ setMosaicValidationForModelControl(component, component.rawValidators, parentForm);
1353
+ }
1354
+ else if (component.formControlName || component.ngControl) {
1355
+ setMosaicValidationForFormControl(component, parentForm, ngControl);
1356
+ }
1357
+ }
1358
+ function setMosaicValidationForModelControl(component, validators, parentForm) {
1359
+ if (!validators) {
1360
+ return;
1361
+ }
1362
+ validators.forEach((validator) => {
1363
+ // tslint:disable-next-line: no-unbound-method
1364
+ const originalValidate = validator.validate;
1365
+ if (validator instanceof RequiredValidator) {
1366
+ // changed required validation logic
1367
+ validator.validate = (control) => {
1368
+ if (parentForm && !parentForm.submitted) {
1369
+ return null;
1370
+ }
1371
+ return originalValidate.call(validator, control);
1372
+ };
1373
+ }
1374
+ else {
1375
+ // changed all other validation logic
1376
+ validator.validate = (control) => {
1377
+ if (component.focused) {
1378
+ return null;
1379
+ }
1380
+ return originalValidate.call(validator, control);
1381
+ };
1382
+ }
1383
+ });
1384
+ }
1385
+ function setMosaicValidationForFormControl(component, parentForm, ngControl) {
1386
+ const originalValidator = ngControl.control.validator;
1387
+ // changed required validation logic after initialization
1388
+ if (ngControl.invalid && ngControl.errors.required) {
1389
+ Promise.resolve().then(() => setValidState(ngControl.control, originalValidator));
1390
+ }
1391
+ // check dynamic updates
1392
+ ngControl.statusChanges
1393
+ .subscribe(() => {
1394
+ // changed required validation logic
1395
+ if (ngControl.invalid && (parentForm && !parentForm.submitted) && ngControl.errors.required) {
1396
+ setValidState(ngControl.control, originalValidator);
1397
+ }
1398
+ // changed all other validation logic
1399
+ if (ngControl.invalid && component.focused) {
1400
+ setValidState(ngControl.control, originalValidator);
1401
+ }
1402
+ });
1403
+ }
1404
+
1405
+ class McHighlightPipe {
1406
+ transform(value, args) {
1407
+ if (!args) {
1408
+ return value;
1409
+ }
1410
+ return value.replace(new RegExp(`(${args})`, 'gi'), '<mark class="mc-highlight">$1</mark>');
1411
+ }
1412
+ }
1413
+ /** @nocollapse */ /** @nocollapse */ McHighlightPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McHighlightPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
1414
+ /** @nocollapse */ /** @nocollapse */ McHighlightPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McHighlightPipe, name: "mcHighlight" });
1415
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McHighlightPipe, decorators: [{
1416
+ type: Pipe,
1417
+ args: [{ name: 'mcHighlight' }]
1418
+ }] });
1419
+
1420
+ class McHighlightModule {
1421
+ }
1422
+ /** @nocollapse */ /** @nocollapse */ McHighlightModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McHighlightModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1423
+ /** @nocollapse */ /** @nocollapse */ McHighlightModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McHighlightModule, declarations: [McHighlightPipe], imports: [CommonModule], exports: [McHighlightPipe] });
1424
+ /** @nocollapse */ /** @nocollapse */ McHighlightModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McHighlightModule, imports: [[CommonModule]] });
1425
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McHighlightModule, decorators: [{
1426
+ type: NgModule,
1427
+ args: [{
1428
+ imports: [CommonModule],
1429
+ exports: [McHighlightPipe],
1430
+ declarations: [McHighlightPipe]
1431
+ }]
1432
+ }] });
1433
+
1434
+ const selectEvents = 'selectEvents';
1435
+
1436
+ /**
1437
+ * Returns an exception to be thrown when attempting to change a select's `multiple` option
1438
+ * after initialization.
1439
+ * @docs-private
1440
+ */
1441
+ function getMcSelectDynamicMultipleError() {
1442
+ return Error('Cannot change `multiple` mode of select after initialization.');
1443
+ }
1444
+ /**
1445
+ * Returns an exception to be thrown when attempting to assign a non-array value to a select
1446
+ * in `multiple` mode. Note that `undefined` and `null` are still valid values to allow for
1447
+ * resetting the value.
1448
+ * @docs-private
1449
+ */
1450
+ function getMcSelectNonArrayValueError() {
1451
+ return Error('Value must be an array in multiple-selection mode.');
1452
+ }
1453
+ /**
1454
+ * Returns an exception to be thrown when assigning a non-function value to the comparator
1455
+ * used to determine if a value corresponds to an option. Note that whether the function
1456
+ * actually takes two values and returns a boolean is not checked.
1457
+ */
1458
+ function getMcSelectNonFunctionValueError() {
1459
+ return Error('`compareWith` must be a function.');
1460
+ }
1461
+
1462
+ /** The max height of the select's overlay panel */
1463
+ const SELECT_PANEL_MAX_HEIGHT = 224;
1464
+ /** The panel's padding on the x-axis */
1465
+ const SELECT_PANEL_PADDING_X = 1;
1466
+ /** The panel's x axis padding if it is indented (e.g. there is an option group). */
1467
+ /* tslint:disable-next-line:no-magic-numbers */
1468
+ const SELECT_PANEL_INDENT_PADDING_X = SELECT_PANEL_PADDING_X * 2;
1469
+ /**
1470
+ * The select panel will only "fit" inside the viewport if it is positioned at
1471
+ * this value or more away from the viewport boundary.
1472
+ */
1473
+ const SELECT_PANEL_VIEWPORT_PADDING = 8;
1474
+ /** Injection token that determines the scroll handling while a select is open. */
1475
+ const MC_SELECT_SCROLL_STRATEGY = new InjectionToken('mc-select-scroll-strategy');
1476
+ /** @docs-private */
1477
+ function mcSelectScrollStrategyProviderFactory(overlay) {
1478
+ return () => overlay.scrollStrategies.reposition();
1479
+ }
1480
+ /** @docs-private */
1481
+ const MC_SELECT_SCROLL_STRATEGY_PROVIDER = {
1482
+ provide: MC_SELECT_SCROLL_STRATEGY,
1483
+ deps: [Overlay],
1484
+ useFactory: mcSelectScrollStrategyProviderFactory
1485
+ };
1486
+
1487
+ const POSITION_MAP = {
1488
+ top: {
1489
+ originX: 'center',
1490
+ originY: 'top',
1491
+ overlayX: 'center',
1492
+ overlayY: 'bottom'
1493
+ },
1494
+ topCenter: {
1495
+ originX: 'center',
1496
+ originY: 'top',
1497
+ overlayX: 'center',
1498
+ overlayY: 'bottom'
1499
+ },
1500
+ topLeft: {
1501
+ originX: 'start',
1502
+ originY: 'top',
1503
+ overlayX: 'start',
1504
+ overlayY: 'bottom'
1505
+ },
1506
+ topRight: {
1507
+ originX: 'end',
1508
+ originY: 'top',
1509
+ overlayX: 'end',
1510
+ overlayY: 'bottom'
1511
+ },
1512
+ right: {
1513
+ originX: 'end',
1514
+ originY: 'center',
1515
+ overlayX: 'start',
1516
+ overlayY: 'center'
1517
+ },
1518
+ rightTop: {
1519
+ originX: 'end',
1520
+ originY: 'top',
1521
+ overlayX: 'start',
1522
+ overlayY: 'top'
1523
+ },
1524
+ rightBottom: {
1525
+ originX: 'end',
1526
+ originY: 'bottom',
1527
+ overlayX: 'start',
1528
+ overlayY: 'bottom'
1529
+ },
1530
+ bottom: {
1531
+ originX: 'center',
1532
+ originY: 'bottom',
1533
+ overlayX: 'center',
1534
+ overlayY: 'top'
1535
+ },
1536
+ bottomCenter: {
1537
+ originX: 'center',
1538
+ originY: 'bottom',
1539
+ overlayX: 'center',
1540
+ overlayY: 'top'
1541
+ },
1542
+ bottomLeft: {
1543
+ originX: 'start',
1544
+ originY: 'bottom',
1545
+ overlayX: 'start',
1546
+ overlayY: 'top'
1547
+ },
1548
+ bottomRight: {
1549
+ originX: 'end',
1550
+ originY: 'bottom',
1551
+ overlayX: 'end',
1552
+ overlayY: 'top'
1553
+ },
1554
+ left: {
1555
+ originX: 'start',
1556
+ originY: 'center',
1557
+ overlayX: 'end',
1558
+ overlayY: 'center'
1559
+ },
1560
+ leftTop: {
1561
+ originX: 'start',
1562
+ originY: 'top',
1563
+ overlayX: 'end',
1564
+ overlayY: 'top'
1565
+ },
1566
+ leftBottom: {
1567
+ originX: 'start',
1568
+ originY: 'bottom',
1569
+ overlayX: 'end',
1570
+ overlayY: 'bottom'
1571
+ }
1572
+ };
1573
+ const EXTENDED_OVERLAY_POSITIONS = objectValues([
1574
+ POSITION_MAP.top,
1575
+ POSITION_MAP.topLeft,
1576
+ POSITION_MAP.topRight,
1577
+ POSITION_MAP.right,
1578
+ POSITION_MAP.rightTop,
1579
+ POSITION_MAP.rightBottom,
1580
+ POSITION_MAP.bottom,
1581
+ POSITION_MAP.bottomLeft,
1582
+ POSITION_MAP.bottomRight,
1583
+ POSITION_MAP.left,
1584
+ POSITION_MAP.leftTop,
1585
+ POSITION_MAP.leftBottom
1586
+ ]);
1587
+ const TOP_POSITION_PRIORITY = objectValues([
1588
+ POSITION_MAP.top,
1589
+ POSITION_MAP.bottom,
1590
+ POSITION_MAP.rightBottom,
1591
+ POSITION_MAP.leftBottom,
1592
+ POSITION_MAP.bottomLeft,
1593
+ POSITION_MAP.bottomRight
1594
+ ]);
1595
+ const BOTTOM_POSITION_PRIORITY = objectValues([
1596
+ POSITION_MAP.bottom,
1597
+ POSITION_MAP.top,
1598
+ POSITION_MAP.topLeft,
1599
+ POSITION_MAP.topRight,
1600
+ POSITION_MAP.rightBottom,
1601
+ POSITION_MAP.leftBottom
1602
+ ]);
1603
+ const RIGHT_POSITION_PRIORITY = objectValues([
1604
+ POSITION_MAP.right,
1605
+ POSITION_MAP.left,
1606
+ POSITION_MAP.leftTop,
1607
+ POSITION_MAP.leftBottom,
1608
+ POSITION_MAP.top,
1609
+ POSITION_MAP.bottom
1610
+ ]);
1611
+ const LEFT_POSITION_PRIORITY = objectValues([
1612
+ POSITION_MAP.left,
1613
+ POSITION_MAP.right,
1614
+ POSITION_MAP.rightTop,
1615
+ POSITION_MAP.rightBottom,
1616
+ POSITION_MAP.top,
1617
+ POSITION_MAP.bottom
1618
+ ]);
1619
+ const RIGHT_TOP_POSITION_PRIORITY = objectValues([
1620
+ POSITION_MAP.rightTop,
1621
+ POSITION_MAP.leftTop,
1622
+ POSITION_MAP.left,
1623
+ POSITION_MAP.leftBottom,
1624
+ POSITION_MAP.topLeft,
1625
+ POSITION_MAP.bottomLeft
1626
+ ]);
1627
+ const RIGHT_BOTTOM_POSITION_PRIORITY = objectValues([
1628
+ POSITION_MAP.rightBottom,
1629
+ POSITION_MAP.leftBottom,
1630
+ POSITION_MAP.left,
1631
+ POSITION_MAP.leftTop,
1632
+ POSITION_MAP.topLeft,
1633
+ POSITION_MAP.bottomLeft
1634
+ ]);
1635
+ const LEFT_TOP_POSITION_PRIORITY = objectValues([
1636
+ POSITION_MAP.leftTop,
1637
+ POSITION_MAP.rightTop,
1638
+ POSITION_MAP.right,
1639
+ POSITION_MAP.rightBottom,
1640
+ POSITION_MAP.topRight,
1641
+ POSITION_MAP.bottomRight
1642
+ ]);
1643
+ const LEFT_BOTTOM_POSITION_PRIORITY = objectValues([
1644
+ POSITION_MAP.leftBottom,
1645
+ POSITION_MAP.rightBottom,
1646
+ POSITION_MAP.right,
1647
+ POSITION_MAP.rightTop,
1648
+ POSITION_MAP.topRight,
1649
+ POSITION_MAP.bottomRight
1650
+ ]);
1651
+ const TOP_LEFT_POSITION_PRIORITY = objectValues([
1652
+ POSITION_MAP.topLeft,
1653
+ POSITION_MAP.topRight,
1654
+ POSITION_MAP.bottomLeft,
1655
+ POSITION_MAP.bottom,
1656
+ POSITION_MAP.bottomRight,
1657
+ POSITION_MAP.leftBottom,
1658
+ POSITION_MAP.rightBottom
1659
+ ]);
1660
+ const TOP_RIGHT_POSITION_PRIORITY = objectValues([
1661
+ POSITION_MAP.topRight,
1662
+ POSITION_MAP.topLeft,
1663
+ POSITION_MAP.bottomRight,
1664
+ POSITION_MAP.bottom,
1665
+ POSITION_MAP.bottomLeft,
1666
+ POSITION_MAP.leftBottom,
1667
+ POSITION_MAP.rightBottom
1668
+ ]);
1669
+ const BOTTOM_RIGHT_POSITION_PRIORITY = objectValues([
1670
+ POSITION_MAP.bottomRight,
1671
+ POSITION_MAP.bottomLeft,
1672
+ POSITION_MAP.topRight,
1673
+ POSITION_MAP.top,
1674
+ POSITION_MAP.topLeft,
1675
+ POSITION_MAP.leftTop,
1676
+ POSITION_MAP.rightTop
1677
+ ]);
1678
+ const BOTTOM_LEFT_POSITION_PRIORITY = objectValues([
1679
+ POSITION_MAP.bottomLeft,
1680
+ POSITION_MAP.bottomRight,
1681
+ POSITION_MAP.topLeft,
1682
+ POSITION_MAP.top,
1683
+ POSITION_MAP.topRight,
1684
+ POSITION_MAP.rightTop,
1685
+ POSITION_MAP.leftTop
1686
+ ]);
1687
+ const POSITION_PRIORITY_STRATEGY = {
1688
+ top: TOP_POSITION_PRIORITY,
1689
+ topLeft: TOP_LEFT_POSITION_PRIORITY,
1690
+ topRight: TOP_RIGHT_POSITION_PRIORITY,
1691
+ bottom: BOTTOM_POSITION_PRIORITY,
1692
+ bottomLeft: BOTTOM_LEFT_POSITION_PRIORITY,
1693
+ bottomRight: BOTTOM_RIGHT_POSITION_PRIORITY,
1694
+ left: LEFT_POSITION_PRIORITY,
1695
+ leftTop: LEFT_TOP_POSITION_PRIORITY,
1696
+ leftBottom: LEFT_BOTTOM_POSITION_PRIORITY,
1697
+ right: RIGHT_POSITION_PRIORITY,
1698
+ rightTop: RIGHT_TOP_POSITION_PRIORITY,
1699
+ rightBottom: RIGHT_BOTTOM_POSITION_PRIORITY
1700
+ };
1701
+ const POSITION_TO_CSS_MAP = {
1702
+ top: 'top',
1703
+ topLeft: 'top-left',
1704
+ topRight: 'top-right',
1705
+ right: 'right',
1706
+ rightTop: 'right-top',
1707
+ rightBottom: 'right-bottom',
1708
+ left: 'left',
1709
+ leftTop: 'left-top',
1710
+ leftBottom: 'left-bottom',
1711
+ bottom: 'bottom',
1712
+ bottomLeft: 'bottom-left',
1713
+ bottomRight: 'bottom-right'
1714
+ };
1715
+ function arrayMap(array, iteratee) {
1716
+ let index = -1;
1717
+ const length = array === null ? 0 : array.length;
1718
+ const result = Array(length);
1719
+ while (++index < length) {
1720
+ result[index] = iteratee(array[index], index, array);
1721
+ }
1722
+ return result;
1723
+ }
1724
+ function baseValues(object, props) {
1725
+ return arrayMap(props, (key) => object[key]);
1726
+ }
1727
+ function objectValues(object) {
1728
+ return object === null ? [] : baseValues(object, Object.keys(object));
1729
+ }
1730
+
1731
+ const fadeAnimation = trigger('fadeAnimation', [
1732
+ state('void', style({ opacity: 0 })),
1733
+ state('true', style({ opacity: 1 })),
1734
+ state('false', style({ opacity: 0 })),
1735
+ transition('* => true', animate('150ms cubic-bezier(0.0, 0.0, 0.2, 1)')),
1736
+ transition('* => void', animate('150ms cubic-bezier(0.4, 0.0, 1, 1)'))
1737
+ ]);
1738
+
1739
+ var AnimationCurves;
1740
+ (function (AnimationCurves) {
1741
+ AnimationCurves["StandardCurve"] = "cubic-bezier(0.4,0.0,0.2,1)";
1742
+ AnimationCurves["DecelerationCurve"] = "cubic-bezier(0.0,0.0,0.2,1)";
1743
+ AnimationCurves["AccelerationCurve"] = "cubic-bezier(0.4,0.0,1,1)";
1744
+ AnimationCurves["SharpCurve"] = "cubic-bezier(0.4,0.0,0.6,1)";
1745
+ })(AnimationCurves || (AnimationCurves = {}));
1746
+
1747
+ /**
1748
+ * The following are all the animations for the mc-select component, with each
1749
+ * const containing the metadata for one animation.
1750
+ *
1751
+ */
1752
+ const mcSelectAnimations = {
1753
+ /**
1754
+ * This animation transforms the select's overlay panel on and off the page.
1755
+ *
1756
+ * When the panel is attached to the DOM, it expands its width by the amount of padding, scales it
1757
+ * up to 100% on the Y axis, fades in its border, and translates slightly up and to the
1758
+ * side to ensure the option text correctly overlaps the trigger text.
1759
+ *
1760
+ * When the panel is removed from the DOM, it simply fades out linearly.
1761
+ */
1762
+ transformPanel: trigger('transformPanel', [
1763
+ state('void', style({
1764
+ transform: 'scaleY(0)',
1765
+ minWidth: '100%',
1766
+ opacity: 0
1767
+ })),
1768
+ transition('void => *', group([
1769
+ animate('150ms cubic-bezier(0.25, 0.8, 0.25, 1)')
1770
+ ])),
1771
+ transition('* => void', [
1772
+ animate('250ms 100ms linear', style({ opacity: 0 }))
1773
+ ])
1774
+ ]),
1775
+ /**
1776
+ * This animation fades in the background color and text content of the
1777
+ * select's options. It is time delayed to occur 100ms after the overlay
1778
+ * panel has transformed in.
1779
+ */
1780
+ fadeInContent: trigger('fadeInContent', [
1781
+ state('showing', style({ opacity: 1 })),
1782
+ transition('void => showing', [
1783
+ style({ opacity: 0 }),
1784
+ animate('150ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)')
1785
+ ])
1786
+ ])
1787
+ };
1788
+ const transformPanel = mcSelectAnimations.transformPanel;
1789
+ const fadeInContent = mcSelectAnimations.fadeInContent;
1790
+
1791
+ /** InjectionToken that can be used to specify the global label options. */
1792
+ const MC_LABEL_GLOBAL_OPTIONS = new InjectionToken('mc-label-global-options');
1793
+
1794
+ var MultipleMode;
1795
+ (function (MultipleMode) {
1796
+ MultipleMode["CHECKBOX"] = "checkbox";
1797
+ MultipleMode["KEYBOARD"] = "keyboard";
1798
+ })(MultipleMode || (MultipleMode = {}));
1799
+
1800
+ /**
1801
+ * Component that shows a simplified checkbox without including any kind of "real" checkbox.
1802
+ * Meant to be used when the checkbox is purely decorative and a large number of them will be
1803
+ * included, such as for the options in a multi-select. Uses no SVGs or complex animations.
1804
+ * Note that theming is meant to be handled by the parent element, e.g.
1805
+ * `mc-primary .mc-pseudo-checkbox`.
1806
+ *
1807
+ * Note that this component will be completely invisible to screen-reader users. This is *not*
1808
+ * interchangeable with `<mc-checkbox>` and should *not* be used if the user would directly
1809
+ * interact with the checkbox. The pseudo-checkbox should only be used as an implementation detail
1810
+ * of more complex components that appropriately handle selected / checked state.
1811
+ * @docs-private
1812
+ */
1813
+ class McPseudoCheckbox {
1814
+ constructor() {
1815
+ this.state = 'unchecked';
1816
+ this.disabled = false;
1817
+ }
1818
+ }
1819
+ /** @nocollapse */ /** @nocollapse */ McPseudoCheckbox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McPseudoCheckbox, deps: [], target: i0.ɵɵFactoryTarget.Component });
1820
+ /** @nocollapse */ /** @nocollapse */ McPseudoCheckbox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: McPseudoCheckbox, selector: "mc-pseudo-checkbox", inputs: { state: "state", disabled: "disabled" }, host: { properties: { "class.mc-indeterminate": "state === \"indeterminate\"", "class.mc-checked": "state === \"checked\"", "class.mc-disabled": "disabled" }, classAttribute: "mc-pseudo-checkbox" }, ngImport: i0, template: "<i class=\"mc-checkbox-checkmark mc mc-check_16\"></i>\n<i class=\"mc-checkbox-mixedmark mc mc-minus_16\"></i>\n", styles: [".mc-pseudo-checkbox{position:relative;display:inline-block;box-sizing:border-box;width:16px;width:var(--mc-checkbox-size-width, 16px);height:16px;height:var(--mc-checkbox-size-width, 16px);border-radius:3px;border-width:1px;border-width:var(--mc-checkbox-size-border-width, 1px);border-style:solid;cursor:pointer;vertical-align:middle;flex-shrink:0}.mc-pseudo-checkbox .mc-checkbox-checkmark,.mc-pseudo-checkbox .mc-checkbox-mixedmark{display:none;position:absolute;top:-1px;top:calc(-1 * var(--mc-checkbox-size-border-width, 1px));left:-1px;left:calc(-1 * var(--mc-checkbox-size-border-width, 1px))}.mc-pseudo-checkbox.mc-pseudo-checkbox-checked,.mc-pseudo-checkbox.mc-pseudo-checkbox-indeterminate{border-color:transparent}.mc-pseudo-checkbox.mc-checked .mc-checkbox-checkmark,.mc-pseudo-checkbox.mc-indeterminate .mc-checkbox-mixedmark{display:inline-block}.mc-pseudo-checkbox.mc-disabled{cursor:default}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1821
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McPseudoCheckbox, decorators: [{
1822
+ type: Component,
1823
+ args: [{ selector: 'mc-pseudo-checkbox', host: {
1824
+ class: 'mc-pseudo-checkbox',
1825
+ '[class.mc-indeterminate]': 'state === "indeterminate"',
1826
+ '[class.mc-checked]': 'state === "checked"',
1827
+ '[class.mc-disabled]': 'disabled'
1828
+ }, preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<i class=\"mc-checkbox-checkmark mc mc-check_16\"></i>\n<i class=\"mc-checkbox-mixedmark mc mc-minus_16\"></i>\n", styles: [".mc-pseudo-checkbox{position:relative;display:inline-block;box-sizing:border-box;width:16px;width:var(--mc-checkbox-size-width, 16px);height:16px;height:var(--mc-checkbox-size-width, 16px);border-radius:3px;border-width:1px;border-width:var(--mc-checkbox-size-border-width, 1px);border-style:solid;cursor:pointer;vertical-align:middle;flex-shrink:0}.mc-pseudo-checkbox .mc-checkbox-checkmark,.mc-pseudo-checkbox .mc-checkbox-mixedmark{display:none;position:absolute;top:-1px;top:calc(-1 * var(--mc-checkbox-size-border-width, 1px));left:-1px;left:calc(-1 * var(--mc-checkbox-size-border-width, 1px))}.mc-pseudo-checkbox.mc-pseudo-checkbox-checked,.mc-pseudo-checkbox.mc-pseudo-checkbox-indeterminate{border-color:transparent}.mc-pseudo-checkbox.mc-checked .mc-checkbox-checkmark,.mc-pseudo-checkbox.mc-indeterminate .mc-checkbox-mixedmark{display:inline-block}.mc-pseudo-checkbox.mc-disabled{cursor:default}\n"] }]
1829
+ }], propDecorators: { state: [{
1830
+ type: Input
1831
+ }], disabled: [{
1832
+ type: Input
1833
+ }] } });
1834
+
1835
+ class McPseudoCheckboxModule {
1836
+ }
1837
+ /** @nocollapse */ /** @nocollapse */ McPseudoCheckboxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McPseudoCheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1838
+ /** @nocollapse */ /** @nocollapse */ McPseudoCheckboxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McPseudoCheckboxModule, declarations: [McPseudoCheckbox], imports: [CommonModule], exports: [McPseudoCheckbox] });
1839
+ /** @nocollapse */ /** @nocollapse */ McPseudoCheckboxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McPseudoCheckboxModule, imports: [[CommonModule]] });
1840
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McPseudoCheckboxModule, decorators: [{
1841
+ type: NgModule,
1842
+ args: [{
1843
+ imports: [CommonModule],
1844
+ exports: [McPseudoCheckbox],
1845
+ declarations: [McPseudoCheckbox]
1846
+ }]
1847
+ }] });
1848
+
1849
+ class McMeasureScrollbarService {
1850
+ constructor(document) {
1851
+ this.document = document;
1852
+ this.scrollbarMeasure = {
1853
+ position: 'absolute',
1854
+ top: '-9999px',
1855
+ width: '50px',
1856
+ height: '50px',
1857
+ overflow: 'scroll'
1858
+ };
1859
+ this.initScrollBarWidth();
1860
+ }
1861
+ get scrollBarWidth() {
1862
+ if (this._scrollBarWidth) {
1863
+ return this._scrollBarWidth;
1864
+ }
1865
+ this.initScrollBarWidth();
1866
+ return this._scrollBarWidth;
1867
+ }
1868
+ initScrollBarWidth() {
1869
+ const scrollDiv = this.document.createElement('div');
1870
+ // tslint:disable-next-line
1871
+ for (const scrollProp in this.scrollbarMeasure) {
1872
+ if (this.scrollbarMeasure.hasOwnProperty(scrollProp)) {
1873
+ scrollDiv.style[scrollProp] = this.scrollbarMeasure[scrollProp];
1874
+ }
1875
+ }
1876
+ this.document.body.appendChild(scrollDiv);
1877
+ const width = scrollDiv.offsetWidth - scrollDiv.clientWidth;
1878
+ this.document.body.removeChild(scrollDiv);
1879
+ this._scrollBarWidth = width;
1880
+ }
1881
+ }
1882
+ /** @nocollapse */ /** @nocollapse */ McMeasureScrollbarService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McMeasureScrollbarService, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
1883
+ /** @nocollapse */ /** @nocollapse */ McMeasureScrollbarService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McMeasureScrollbarService, providedIn: 'root' });
1884
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McMeasureScrollbarService, decorators: [{
1885
+ type: Injectable,
1886
+ args: [{
1887
+ providedIn: 'root'
1888
+ }]
1889
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
1890
+ type: Inject,
1891
+ args: [DOCUMENT]
1892
+ }] }]; } });
1893
+
1894
+ /** @docs-private */
1895
+ class McOptgroupBase {
1896
+ }
1897
+ // tslint:disable-next-line: naming-convention
1898
+ const McOptgroupMixinBase = mixinDisabled(McOptgroupBase);
1899
+ let uniqueOptgroupIdCounter = 0;
1900
+ /**
1901
+ * Component that is used to group instances of `mc-option`.
1902
+ */
1903
+ class McOptgroup extends McOptgroupMixinBase {
1904
+ constructor() {
1905
+ super(...arguments);
1906
+ /** Unique id for the underlying label. */
1907
+ this.labelId = `mc-optgroup-label-${uniqueOptgroupIdCounter++}`;
1908
+ }
1909
+ }
1910
+ /** @nocollapse */ /** @nocollapse */ McOptgroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McOptgroup, deps: null, target: i0.ɵɵFactoryTarget.Component });
1911
+ /** @nocollapse */ /** @nocollapse */ McOptgroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: McOptgroup, selector: "mc-optgroup", inputs: { disabled: "disabled", label: "label" }, host: { properties: { "class.mc-disabled": "disabled" }, classAttribute: "mc-optgroup" }, exportAs: ["mcOptgroup"], usesInheritance: true, ngImport: i0, template: "<label class=\"mc-optgroup-label\" [id]=\"labelId\">{{ label }}</label>\n<ng-content select=\"mc-option, mc-list-option, ng-container\"></ng-content>\n", styles: [".mc-optgroup-label{padding-left:17px;padding-left:var(--mc-optgroup-size-padding-left, 17px);-webkit-user-select:none;user-select:none;cursor:default}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1912
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McOptgroup, decorators: [{
1913
+ type: Component,
1914
+ args: [{ selector: 'mc-optgroup', exportAs: 'mcOptgroup', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, inputs: ['disabled'], host: {
1915
+ class: 'mc-optgroup',
1916
+ '[class.mc-disabled]': 'disabled'
1917
+ }, template: "<label class=\"mc-optgroup-label\" [id]=\"labelId\">{{ label }}</label>\n<ng-content select=\"mc-option, mc-list-option, ng-container\"></ng-content>\n", styles: [".mc-optgroup-label{padding-left:17px;padding-left:var(--mc-optgroup-size-padding-left, 17px);-webkit-user-select:none;user-select:none;cursor:default}\n"] }]
1918
+ }], propDecorators: { label: [{
1919
+ type: Input
1920
+ }] } });
1921
+
1922
+ /**
1923
+ * Option IDs need to be unique across components, so this counter exists outside of
1924
+ * the component definition.
1925
+ */
1926
+ let uniqueIdCounter = 0;
1927
+ /** Event object emitted by McOption when selected or deselected. */
1928
+ class McOptionSelectionChange {
1929
+ constructor(source, isUserInput = false) {
1930
+ this.source = source;
1931
+ this.isUserInput = isUserInput;
1932
+ }
1933
+ }
1934
+ /**
1935
+ * Injection token used to provide the parent component to options.
1936
+ */
1937
+ const MC_OPTION_PARENT_COMPONENT = new InjectionToken('MC_OPTION_PARENT_COMPONENT');
1938
+ /**
1939
+ * Single option inside of a `<mc-select>` element.
1940
+ */
1941
+ class McOption {
1942
+ constructor(element, changeDetectorRef, parent, group) {
1943
+ this.element = element;
1944
+ this.changeDetectorRef = changeDetectorRef;
1945
+ this.parent = parent;
1946
+ this.group = group;
1947
+ /** Event emitted when the option is selected or deselected. */
1948
+ // tslint:disable-next-line:no-output-on-prefix
1949
+ this.onSelectionChange = new EventEmitter();
1950
+ /** Emits when the state of the option changes and any parents have to be notified. */
1951
+ this.stateChanges = new Subject();
1952
+ this._id = `mc-option-${uniqueIdCounter++}`;
1953
+ this._selected = false;
1954
+ this._disabled = false;
1955
+ this._active = false;
1956
+ this.mostRecentViewValue = '';
1957
+ }
1958
+ get showCheckbox() {
1959
+ return this._showCheckbox === undefined ? this.multiple : this._showCheckbox;
1960
+ }
1961
+ set showCheckbox(value) {
1962
+ this._showCheckbox = coerceBooleanProperty(value);
1963
+ }
1964
+ /**
1965
+ * The displayed value of the option. It is necessary to show the selected option in the
1966
+ * select's trigger.
1967
+ */
1968
+ get viewValue() {
1969
+ // TODO: Add input property alternative for node envs.
1970
+ return (this.getHostElement().textContent || '').trim();
1971
+ }
1972
+ /** Whether the wrapping component is in multiple selection mode. */
1973
+ get multiple() {
1974
+ return this.parent && this.parent.multiple;
1975
+ }
1976
+ get id() {
1977
+ return this._id;
1978
+ }
1979
+ get selected() {
1980
+ return this._selected;
1981
+ }
1982
+ get disabled() {
1983
+ return (this.group && this.group.disabled) || this._disabled;
1984
+ }
1985
+ set disabled(value) {
1986
+ this._disabled = coerceBooleanProperty(value);
1987
+ }
1988
+ /**
1989
+ * Whether or not the option is currently active and ready to be selected.
1990
+ * An active option displays styles as if it is focused, but the
1991
+ * focus is actually retained somewhere else. This comes in handy
1992
+ * for components like autocomplete where focus must remain on the input.
1993
+ */
1994
+ get active() {
1995
+ return this._active;
1996
+ }
1997
+ ngAfterViewChecked() {
1998
+ // Since parent components could be using the option's label to display the selected values
1999
+ // (e.g. `mc-select`) and they don't have a way of knowing if the option's label has changed
2000
+ // we have to check for changes in the DOM ourselves and dispatch an event. These checks are
2001
+ // relatively cheap, however we still limit them only to selected options in order to avoid
2002
+ // hitting the DOM too often.
2003
+ if (this._selected) {
2004
+ const viewValue = this.viewValue;
2005
+ if (viewValue !== this.mostRecentViewValue) {
2006
+ this.mostRecentViewValue = viewValue;
2007
+ this.stateChanges.next();
2008
+ }
2009
+ }
2010
+ }
2011
+ ngOnDestroy() {
2012
+ this.stateChanges.complete();
2013
+ }
2014
+ getHeight() {
2015
+ // tslint:disable-next-line:naming-convention
2016
+ const DOMRect = this.element.nativeElement.getClientRects()[0];
2017
+ return DOMRect ? DOMRect.height : 0;
2018
+ }
2019
+ select() {
2020
+ if (!this._selected) {
2021
+ this._selected = true;
2022
+ this.changeDetectorRef.markForCheck();
2023
+ this.emitSelectionChangeEvent();
2024
+ }
2025
+ }
2026
+ deselect() {
2027
+ if (this._selected) {
2028
+ this._selected = false;
2029
+ this.changeDetectorRef.markForCheck();
2030
+ this.emitSelectionChangeEvent();
2031
+ }
2032
+ }
2033
+ focus() {
2034
+ const element = this.getHostElement();
2035
+ if (typeof element.focus === 'function') {
2036
+ element.focus();
2037
+ }
2038
+ }
2039
+ /**
2040
+ * This method sets display styles on the option to make it appear
2041
+ * active. This is used by the ActiveDescendantKeyManager so key
2042
+ * events will display the proper options as active on arrow key events.
2043
+ */
2044
+ setActiveStyles() {
2045
+ if (!this._active) {
2046
+ this._active = true;
2047
+ this.changeDetectorRef.markForCheck();
2048
+ }
2049
+ }
2050
+ /**
2051
+ * This method removes display styles on the option that made it appear
2052
+ * active. This is used by the ActiveDescendantKeyManager so key
2053
+ * events will display the proper options as active on arrow key events.
2054
+ */
2055
+ setInactiveStyles() {
2056
+ if (this._active) {
2057
+ this._active = false;
2058
+ this.changeDetectorRef.markForCheck();
2059
+ }
2060
+ }
2061
+ /** Gets the label to be used when determining whether the option should be focused. */
2062
+ getLabel() {
2063
+ return this.viewValue;
2064
+ }
2065
+ /** Ensures the option is selected when activated from the keyboard. */
2066
+ handleKeydown(event) {
2067
+ // tslint:disable-next-line
2068
+ if (event.keyCode === ENTER || event.keyCode === SPACE) {
2069
+ this.selectViaInteraction();
2070
+ // Prevent the page from scrolling down and form submits.
2071
+ event.preventDefault();
2072
+ }
2073
+ }
2074
+ /**
2075
+ * `Selects the option while indicating the selection came from the user. Used to
2076
+ * determine if the select's view -> model callback should be invoked.`
2077
+ */
2078
+ selectViaInteraction() {
2079
+ if (!this.disabled) {
2080
+ this._selected = this.multiple ? !this._selected : true;
2081
+ this.changeDetectorRef.markForCheck();
2082
+ this.emitSelectionChangeEvent(true);
2083
+ }
2084
+ }
2085
+ getTabIndex() {
2086
+ return this.disabled ? '-1' : '0';
2087
+ }
2088
+ getHostElement() {
2089
+ return this.element.nativeElement;
2090
+ }
2091
+ /** Emits the selection change event. */
2092
+ emitSelectionChangeEvent(isUserInput = false) {
2093
+ this.onSelectionChange.emit(new McOptionSelectionChange(this, isUserInput));
2094
+ }
2095
+ }
2096
+ /** @nocollapse */ /** @nocollapse */ McOption.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McOption, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: MC_OPTION_PARENT_COMPONENT, optional: true }, { token: McOptgroup, optional: true }], target: i0.ɵɵFactoryTarget.Component });
2097
+ /** @nocollapse */ /** @nocollapse */ McOption.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: McOption, selector: "mc-option", inputs: { value: "value", showCheckbox: "showCheckbox", disabled: "disabled" }, outputs: { onSelectionChange: "onSelectionChange" }, host: { listeners: { "click": "selectViaInteraction()", "keydown": "handleKeydown($event)" }, properties: { "attr.tabindex": "getTabIndex()", "class.mc-selected": "selected", "class.mc-option-multiple": "multiple", "class.mc-active": "active", "class.mc-disabled": "disabled", "id": "id" }, classAttribute: "mc-option" }, exportAs: ["mcOption"], ngImport: i0, template: "<mc-pseudo-checkbox\n *ngIf=\"showCheckbox\"\n [state]=\"selected ? 'checked' : 'unchecked'\"\n [disabled]=\"disabled\">\n</mc-pseudo-checkbox>\n\n<span class=\"mc-option-text\"><ng-content></ng-content></span>\n\n<div class=\"mc-option-overlay\"></div>\n", styles: [".mc-option{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;position:relative;max-width:100%;height:32px;height:var(--mc-option-size-height, 32px);border:2px solid transparent;border:var(--mc-option-size-border-width, 2px) solid transparent;cursor:pointer;outline:none;padding-left:16px;padding-left:var(--mc-option-size-horizontal-padding, 16px);padding-right:16px;padding-right:var(--mc-option-size-horizontal-padding, 16px);-webkit-tap-highlight-color:transparent}.mc-option.mc-disabled{cursor:default}.mc-option .mc-pseudo-checkbox{margin-right:8px}.mc-option .mc-option-overlay{position:absolute;top:-2px;top:calc(-1 * var(--mc-option-size-border-width, 2px));left:-2px;left:calc(-1 * var(--mc-option-size-border-width, 2px));right:-2px;right:calc(-1 * var(--mc-option-size-border-width, 2px));bottom:-2px;bottom:calc(-1 * var(--mc-option-size-border-width, 2px));pointer-events:none;border-radius:inherit}.mc-option-text{display:inline-block;flex-grow:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}\n"], components: [{ type: McPseudoCheckbox, selector: "mc-pseudo-checkbox", inputs: ["state", "disabled"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
2098
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McOption, decorators: [{
2099
+ type: Component,
2100
+ args: [{ selector: 'mc-option', exportAs: 'mcOption', host: {
2101
+ '[attr.tabindex]': 'getTabIndex()',
2102
+ class: 'mc-option',
2103
+ '[class.mc-selected]': 'selected',
2104
+ '[class.mc-option-multiple]': 'multiple',
2105
+ '[class.mc-active]': 'active',
2106
+ '[class.mc-disabled]': 'disabled',
2107
+ '[id]': 'id',
2108
+ '(click)': 'selectViaInteraction()',
2109
+ '(keydown)': 'handleKeydown($event)'
2110
+ }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<mc-pseudo-checkbox\n *ngIf=\"showCheckbox\"\n [state]=\"selected ? 'checked' : 'unchecked'\"\n [disabled]=\"disabled\">\n</mc-pseudo-checkbox>\n\n<span class=\"mc-option-text\"><ng-content></ng-content></span>\n\n<div class=\"mc-option-overlay\"></div>\n", styles: [".mc-option{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;position:relative;max-width:100%;height:32px;height:var(--mc-option-size-height, 32px);border:2px solid transparent;border:var(--mc-option-size-border-width, 2px) solid transparent;cursor:pointer;outline:none;padding-left:16px;padding-left:var(--mc-option-size-horizontal-padding, 16px);padding-right:16px;padding-right:var(--mc-option-size-horizontal-padding, 16px);-webkit-tap-highlight-color:transparent}.mc-option.mc-disabled{cursor:default}.mc-option .mc-pseudo-checkbox{margin-right:8px}.mc-option .mc-option-overlay{position:absolute;top:-2px;top:calc(-1 * var(--mc-option-size-border-width, 2px));left:-2px;left:calc(-1 * var(--mc-option-size-border-width, 2px));right:-2px;right:calc(-1 * var(--mc-option-size-border-width, 2px));bottom:-2px;bottom:calc(-1 * var(--mc-option-size-border-width, 2px));pointer-events:none;border-radius:inherit}.mc-option-text{display:inline-block;flex-grow:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}\n"] }]
2111
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
2112
+ type: Optional
2113
+ }, {
2114
+ type: Inject,
2115
+ args: [MC_OPTION_PARENT_COMPONENT]
2116
+ }] }, { type: McOptgroup, decorators: [{
2117
+ type: Optional
2118
+ }] }]; }, propDecorators: { value: [{
2119
+ type: Input
2120
+ }], showCheckbox: [{
2121
+ type: Input
2122
+ }], onSelectionChange: [{
2123
+ type: Output
2124
+ }], disabled: [{
2125
+ type: Input
2126
+ }] } });
2127
+ /**
2128
+ * Counts the amount of option group labels that precede the specified option.
2129
+ * @param optionIndex Index of the option at which to start counting.
2130
+ * @param options Flat list of all of the options.
2131
+ * @param optionGroups Flat list of all of the option groups.
2132
+ * @docs-private
2133
+ */
2134
+ function countGroupLabelsBeforeOption(optionIndex, options, optionGroups) {
2135
+ if (optionGroups.length) {
2136
+ const optionsArray = options.toArray();
2137
+ const groups = optionGroups.toArray();
2138
+ let groupCounter = 0;
2139
+ for (let i = 0; i < optionIndex + 1; i++) {
2140
+ if (optionsArray[i].group && optionsArray[i].group === groups[groupCounter]) {
2141
+ groupCounter++;
2142
+ }
2143
+ }
2144
+ return groupCounter;
2145
+ }
2146
+ return 0;
2147
+ }
2148
+ /**
2149
+ * Determines the position to which to scroll a panel in order for an option to be into view.
2150
+ * @param optionIndex Index of the option to be scrolled into the view.
2151
+ * @param optionHeight Height of the options.
2152
+ * @param currentScrollPosition Current scroll position of the panel.
2153
+ * @param panelHeight Height of the panel.
2154
+ * @docs-private
2155
+ */
2156
+ function getOptionScrollPosition(optionIndex, optionHeight, currentScrollPosition, panelHeight) {
2157
+ const optionOffset = optionIndex * optionHeight;
2158
+ if (optionOffset < currentScrollPosition) {
2159
+ return optionOffset;
2160
+ }
2161
+ if (optionOffset + optionHeight > currentScrollPosition + panelHeight) {
2162
+ return Math.max(0, optionOffset - panelHeight + optionHeight);
2163
+ }
2164
+ return currentScrollPosition;
2165
+ }
2166
+
2167
+ const MC_OPTION_ACTION_PARENT = new InjectionToken('MC_OPTION_ACTION_PARENT');
2168
+ class McOptionActionBase {
2169
+ }
2170
+ // tslint:disable-next-line:naming-convention
2171
+ const McOptionActionMixinBase = mixinTabIndex(mixinDisabled(McOptionActionBase));
2172
+ class McOptionActionComponent extends McOptionActionMixinBase {
2173
+ constructor(elementRef, focusMonitor, option) {
2174
+ super();
2175
+ this.elementRef = elementRef;
2176
+ this.focusMonitor = focusMonitor;
2177
+ this.option = option;
2178
+ this.hasFocus = false;
2179
+ this.destroy = new Subject();
2180
+ this.focusMonitor.monitor(this.elementRef.nativeElement);
2181
+ }
2182
+ get active() {
2183
+ return this.hasFocus || !!this.option.dropdownTrigger?.opened;
2184
+ }
2185
+ ngAfterViewInit() {
2186
+ if (!this.option.dropdownTrigger) {
2187
+ return;
2188
+ }
2189
+ this.option.dropdownTrigger.restoreFocus = false;
2190
+ this.option.dropdownTrigger.dropdownClosed
2191
+ .pipe(takeUntil(this.destroy))
2192
+ .subscribe(() => {
2193
+ this.preventShowingTooltip();
2194
+ const destroyReason = this.option.dropdownTrigger.lastDestroyReason === 'keydown' ?
2195
+ 'keyboard' :
2196
+ 'program';
2197
+ this.focus(destroyReason);
2198
+ });
2199
+ }
2200
+ ngOnDestroy() {
2201
+ this.destroy.next();
2202
+ this.destroy.complete();
2203
+ this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);
2204
+ }
2205
+ focus(origin, options) {
2206
+ if (this.focusMonitor && origin) {
2207
+ this.focusMonitor.focusVia(this.elementRef.nativeElement, origin, options);
2208
+ }
2209
+ else {
2210
+ this.elementRef.nativeElement.focus();
2211
+ }
2212
+ this.hasFocus = true;
2213
+ }
2214
+ onFocus($event) {
2215
+ $event.stopPropagation();
2216
+ this.hasFocus = true;
2217
+ }
2218
+ onBlur() {
2219
+ this.hasFocus = false;
2220
+ }
2221
+ onClick($event) {
2222
+ $event.stopPropagation();
2223
+ }
2224
+ onKeyDown($event) {
2225
+ if ([SPACE, ENTER].includes($event.keyCode) && this.option.dropdownTrigger) {
2226
+ this.option.dropdownTrigger.openedBy = 'keyboard';
2227
+ this.option.dropdownTrigger.toggle();
2228
+ }
2229
+ else if ($event.shiftKey && $event.keyCode === TAB) {
2230
+ this.hasFocus = false;
2231
+ this.option.focus();
2232
+ }
2233
+ else if ($event.keyCode === TAB) {
2234
+ return;
2235
+ }
2236
+ $event.preventDefault();
2237
+ $event.stopPropagation();
2238
+ }
2239
+ preventShowingTooltip() {
2240
+ if (!this.option.tooltipTrigger) {
2241
+ return;
2242
+ }
2243
+ this.option.tooltipTrigger.disabled = true;
2244
+ setTimeout(() => this.option.tooltipTrigger.disabled = false);
2245
+ }
2246
+ }
2247
+ /** @nocollapse */ /** @nocollapse */ McOptionActionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McOptionActionComponent, deps: [{ token: i0.ElementRef }, { token: i1$1.FocusMonitor }, { token: MC_OPTION_ACTION_PARENT }], target: i0.ɵɵFactoryTarget.Component });
2248
+ /** @nocollapse */ /** @nocollapse */ McOptionActionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: McOptionActionComponent, selector: "mc-option-action", inputs: { disabled: "disabled" }, host: { listeners: { "focus": "onFocus($event)", "blur": "onBlur()", "click": "onClick($event)", "keydown": "onKeyDown($event)" }, properties: { "class.mc-expanded": "false", "attr.disabled": "disabled || null", "attr.tabIndex": "-1" }, classAttribute: "mc-option-action" }, queries: [{ propertyName: "customIcon", first: true, predicate: ["customIcon"], descendants: true }], exportAs: ["mcOptionAction"], usesInheritance: true, ngImport: i0, template: `
2249
+ <ng-container [ngSwitch]="!!customIcon">
2250
+ <i class="mc mc-icon mc-ellipsis_16" *ngSwitchCase="false"></i>
2251
+ <ng-content select="[mc-icon]" *ngSwitchCase="true"></ng-content>
2252
+ </ng-container>
2253
+ `, isInline: true, styles: [".mc-option-action{box-sizing:unset;position:relative;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-right:-2px;width:28px;height:100%;cursor:pointer;outline:none;border:2px solid transparent;background:transparent}.mc-option-action[disabled]{cursor:default}\n"], directives: [{ type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
2254
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McOptionActionComponent, decorators: [{
2255
+ type: Component,
2256
+ args: [{ selector: 'mc-option-action', exportAs: 'mcOptionAction', template: `
2257
+ <ng-container [ngSwitch]="!!customIcon">
2258
+ <i class="mc mc-icon mc-ellipsis_16" *ngSwitchCase="false"></i>
2259
+ <ng-content select="[mc-icon]" *ngSwitchCase="true"></ng-content>
2260
+ </ng-container>
2261
+ `, host: {
2262
+ class: 'mc-option-action',
2263
+ '[class.mc-expanded]': 'false',
2264
+ '[attr.disabled]': 'disabled || null',
2265
+ '[attr.tabIndex]': '-1',
2266
+ '(focus)': 'onFocus($event)',
2267
+ '(blur)': 'onBlur()',
2268
+ '(click)': 'onClick($event)',
2269
+ '(keydown)': 'onKeyDown($event)'
2270
+ }, inputs: ['disabled'], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".mc-option-action{box-sizing:unset;position:relative;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-right:-2px;width:28px;height:100%;cursor:pointer;outline:none;border:2px solid transparent;background:transparent}.mc-option-action[disabled]{cursor:default}\n"] }]
2271
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1$1.FocusMonitor }, { type: undefined, decorators: [{
2272
+ type: Inject,
2273
+ args: [MC_OPTION_ACTION_PARENT]
2274
+ }] }]; }, propDecorators: { customIcon: [{
2275
+ type: ContentChild,
2276
+ args: ['customIcon']
2277
+ }] } });
2278
+
2279
+ class McOptionModule {
2280
+ }
2281
+ /** @nocollapse */ /** @nocollapse */ McOptionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McOptionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2282
+ /** @nocollapse */ /** @nocollapse */ McOptionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McOptionModule, declarations: [McOption, McOptgroup, McOptionActionComponent], imports: [CommonModule, McPseudoCheckboxModule], exports: [McOption, McOptgroup, McOptionActionComponent] });
2283
+ /** @nocollapse */ /** @nocollapse */ McOptionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McOptionModule, imports: [[CommonModule, McPseudoCheckboxModule]] });
2284
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McOptionModule, decorators: [{
2285
+ type: NgModule,
2286
+ args: [{
2287
+ imports: [CommonModule, McPseudoCheckboxModule],
2288
+ declarations: [McOption, McOptgroup, McOptionActionComponent],
2289
+ exports: [McOption, McOptgroup, McOptionActionComponent]
2290
+ }]
2291
+ }] });
2292
+
2293
+ class McFormElement {
2294
+ constructor(element) {
2295
+ this.element = element;
2296
+ this.margin = false;
2297
+ this.isRow = false;
2298
+ this.isFieldSet = false;
2299
+ this.hasLegend = false;
2300
+ this.isHorizontal = false;
2301
+ }
2302
+ ngAfterContentInit() {
2303
+ const classList = this.element.nativeElement.classList;
2304
+ this.isRow = classList.contains('mc-form__row');
2305
+ this.isHorizontal = classList.contains('mc-horizontal');
2306
+ this.isFieldSet = classList.contains('mc-form__fieldset');
2307
+ if (this.isFieldSet && this.element.nativeElement.firstElementChild) {
2308
+ this.hasLegend = this.element.nativeElement.firstElementChild.classList.contains('mc-form__legend');
2309
+ }
2310
+ }
2311
+ }
2312
+ /** @nocollapse */ /** @nocollapse */ McFormElement.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McFormElement, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
2313
+ /** @nocollapse */ /** @nocollapse */ McFormElement.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: McFormElement, selector: ".mc-form__row, .mc-form__fieldset, .mc-form__legend", host: { properties: { "class.mc-form-row_margin": "margin" } }, queries: [{ propertyName: "elements", predicate: McFormElement }], exportAs: ["mcFormElement"], ngImport: i0 });
2314
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McFormElement, decorators: [{
2315
+ type: Directive,
2316
+ args: [{
2317
+ selector: '.mc-form__row, .mc-form__fieldset, .mc-form__legend',
2318
+ exportAs: 'mcFormElement',
2319
+ host: {
2320
+ '[class.mc-form-row_margin]': 'margin'
2321
+ }
2322
+ }]
2323
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { elements: [{
2324
+ type: ContentChildren,
2325
+ args: [McFormElement]
2326
+ }] } });
2327
+ class McForm {
2328
+ ngAfterContentInit() {
2329
+ this.handleElements(this.elements);
2330
+ }
2331
+ handleElements(elements) {
2332
+ elements.forEach((element, index) => {
2333
+ const nextElement = elements.get(index + 1);
2334
+ if (element.isFieldSet && !element.isHorizontal) {
2335
+ this.handleElements(element.elements);
2336
+ }
2337
+ element.margin = !!(nextElement && !nextElement.hasLegend);
2338
+ });
2339
+ }
2340
+ }
2341
+ /** @nocollapse */ /** @nocollapse */ McForm.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McForm, deps: [], target: i0.ɵɵFactoryTarget.Directive });
2342
+ /** @nocollapse */ /** @nocollapse */ McForm.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: McForm, selector: ".mc-form-vertical, .mc-form-horizontal", host: { classAttribute: "mc-form" }, queries: [{ propertyName: "elements", predicate: McFormElement }], exportAs: ["mcForm"], ngImport: i0 });
2343
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McForm, decorators: [{
2344
+ type: Directive,
2345
+ args: [{
2346
+ selector: '.mc-form-vertical, .mc-form-horizontal',
2347
+ exportAs: 'mcForm',
2348
+ host: {
2349
+ class: 'mc-form'
2350
+ }
2351
+ }]
2352
+ }], propDecorators: { elements: [{
2353
+ type: ContentChildren,
2354
+ args: [McFormElement]
2355
+ }] } });
2356
+
2357
+ class McFormsModule {
2358
+ }
2359
+ /** @nocollapse */ /** @nocollapse */ McFormsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McFormsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2360
+ /** @nocollapse */ /** @nocollapse */ McFormsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McFormsModule, declarations: [McForm,
2361
+ McFormElement], exports: [McForm,
2362
+ McFormElement] });
2363
+ /** @nocollapse */ /** @nocollapse */ McFormsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McFormsModule });
2364
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McFormsModule, decorators: [{
2365
+ type: NgModule,
2366
+ args: [{
2367
+ exports: [
2368
+ McForm,
2369
+ McFormElement
2370
+ ],
2371
+ declarations: [
2372
+ McForm,
2373
+ McFormElement
2374
+ ]
2375
+ }]
2376
+ }] });
2377
+
2378
+ var PopUpPlacements;
2379
+ (function (PopUpPlacements) {
2380
+ PopUpPlacements["Top"] = "top";
2381
+ PopUpPlacements["TopLeft"] = "topLeft";
2382
+ PopUpPlacements["TopRight"] = "topRight";
2383
+ PopUpPlacements["Right"] = "right";
2384
+ PopUpPlacements["RightTop"] = "rightTop";
2385
+ PopUpPlacements["RightBottom"] = "rightBottom";
2386
+ PopUpPlacements["Left"] = "left";
2387
+ PopUpPlacements["LeftTop"] = "leftTop";
2388
+ PopUpPlacements["LeftBottom"] = "leftBottom";
2389
+ PopUpPlacements["Bottom"] = "bottom";
2390
+ PopUpPlacements["BottomLeft"] = "bottomLeft";
2391
+ PopUpPlacements["BottomRight"] = "bottomRight";
2392
+ })(PopUpPlacements || (PopUpPlacements = {}));
2393
+ var PopUpVisibility;
2394
+ (function (PopUpVisibility) {
2395
+ PopUpVisibility["Initial"] = "initial";
2396
+ PopUpVisibility["Visible"] = "visible";
2397
+ PopUpVisibility["Hidden"] = "hidden";
2398
+ })(PopUpVisibility || (PopUpVisibility = {}));
2399
+ var PopUpTriggers;
2400
+ (function (PopUpTriggers) {
2401
+ PopUpTriggers["Click"] = "click";
2402
+ PopUpTriggers["Focus"] = "focus";
2403
+ PopUpTriggers["Hover"] = "hover";
2404
+ })(PopUpTriggers || (PopUpTriggers = {}));
2405
+ var PopUpSizes;
2406
+ (function (PopUpSizes) {
2407
+ PopUpSizes["Small"] = "small";
2408
+ PopUpSizes["Normal"] = "normal";
2409
+ PopUpSizes["Large"] = "large";
2410
+ })(PopUpSizes || (PopUpSizes = {}));
2411
+
2412
+ // tslint:disable-next-line:naming-convention
2413
+ class McPopUp {
2414
+ constructor(changeDetectorRef) {
2415
+ this.changeDetectorRef = changeDetectorRef;
2416
+ this.classMap = {};
2417
+ this.visibility = PopUpVisibility.Initial;
2418
+ this.visibleChange = new EventEmitter();
2419
+ /** Subject for notifying that the tooltip has been hidden from the view */
2420
+ this.onHideSubject = new Subject();
2421
+ this.closeOnInteraction = false;
2422
+ }
2423
+ ngOnDestroy() {
2424
+ clearTimeout(this.showTimeoutId);
2425
+ clearTimeout(this.hideTimeoutId);
2426
+ this.onHideSubject.complete();
2427
+ }
2428
+ isTemplateRef(value) {
2429
+ return value instanceof TemplateRef;
2430
+ }
2431
+ show(delay) {
2432
+ if (this.hideTimeoutId) {
2433
+ clearTimeout(this.hideTimeoutId);
2434
+ }
2435
+ this.closeOnInteraction = true;
2436
+ this.showTimeoutId = setTimeout(() => {
2437
+ this.showTimeoutId = undefined;
2438
+ this.visibility = PopUpVisibility.Visible;
2439
+ this.visibleChange.emit(true);
2440
+ // Mark for check so if any parent component has set the
2441
+ // ChangeDetectionStrategy to OnPush it will be checked anyways
2442
+ this.markForCheck();
2443
+ }, delay);
2444
+ }
2445
+ hide(delay) {
2446
+ if (this.showTimeoutId) {
2447
+ clearTimeout(this.showTimeoutId);
2448
+ }
2449
+ this.hideTimeoutId = setTimeout(() => {
2450
+ this.hideTimeoutId = undefined;
2451
+ this.visibility = PopUpVisibility.Hidden;
2452
+ this.visibleChange.emit(false);
2453
+ this.onHideSubject.next();
2454
+ // Mark for check so if any parent component has set the
2455
+ // ChangeDetectionStrategy to OnPush it will be checked anyways
2456
+ this.markForCheck();
2457
+ }, delay);
2458
+ }
2459
+ isVisible() {
2460
+ return this.visibility === PopUpVisibility.Visible;
2461
+ }
2462
+ updateClassMap(placement, customClass, classMap) {
2463
+ this.classMap = {
2464
+ [`${this.prefix}_placement-${placement}`]: true,
2465
+ [customClass]: !!customClass,
2466
+ ...classMap
2467
+ };
2468
+ }
2469
+ /** Returns an observable that notifies when the tooltip has been hidden from view. */
2470
+ afterHidden() {
2471
+ return this.onHideSubject.asObservable();
2472
+ }
2473
+ markForCheck() {
2474
+ this.changeDetectorRef.markForCheck();
2475
+ }
2476
+ animationStart() {
2477
+ this.closeOnInteraction = false;
2478
+ }
2479
+ animationDone({ toState }) {
2480
+ if (toState === PopUpVisibility.Hidden && !this.isVisible()) {
2481
+ this.onHideSubject.next();
2482
+ }
2483
+ if (toState === PopUpVisibility.Visible || toState === PopUpVisibility.Hidden) {
2484
+ this.closeOnInteraction = true;
2485
+ }
2486
+ }
2487
+ handleBodyInteraction() {
2488
+ if (this.closeOnInteraction) {
2489
+ this.hide(0);
2490
+ }
2491
+ }
2492
+ }
2493
+ /** @nocollapse */ /** @nocollapse */ McPopUp.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McPopUp, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
2494
+ /** @nocollapse */ /** @nocollapse */ McPopUp.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: McPopUp, ngImport: i0 });
2495
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McPopUp, decorators: [{
2496
+ type: Directive
2497
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; } });
2498
+
2499
+ // tslint:disable-next-line:naming-convention
2500
+ class McPopUpTrigger {
2501
+ constructor(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction) {
2502
+ this.overlay = overlay;
2503
+ this.elementRef = elementRef;
2504
+ this.ngZone = ngZone;
2505
+ this.scrollDispatcher = scrollDispatcher;
2506
+ this.hostView = hostView;
2507
+ this.scrollStrategy = scrollStrategy;
2508
+ this.direction = direction;
2509
+ this.isOpen = false;
2510
+ this.enterDelay = 0;
2511
+ this.leaveDelay = 0;
2512
+ this.placement = PopUpPlacements.Top;
2513
+ this.placementPriority = null;
2514
+ this.visible = false;
2515
+ // tslint:disable-next-line:naming-convention orthodox-getter-and-setter
2516
+ this._disabled = false;
2517
+ this.listeners = new Map();
2518
+ this.destroyed = new Subject();
2519
+ this.detach = () => {
2520
+ if (this.overlayRef && this.overlayRef.hasAttached()) {
2521
+ this.overlayRef.detach();
2522
+ }
2523
+ this.instance = null;
2524
+ };
2525
+ this.onPositionChange = ($event) => {
2526
+ if (!this.instance) {
2527
+ return;
2528
+ }
2529
+ let newPlacement = this.placement;
2530
+ const { originX, originY, overlayX, overlayY } = $event.connectionPair;
2531
+ Object.keys(this.availablePositions).some((key) => {
2532
+ if (originX === this.availablePositions[key].originX && originY === this.availablePositions[key].originY &&
2533
+ overlayX === this.availablePositions[key].overlayX && overlayY === this.availablePositions[key].overlayY) {
2534
+ newPlacement = key;
2535
+ return true;
2536
+ }
2537
+ return false;
2538
+ });
2539
+ this.placementChange.emit(newPlacement);
2540
+ this.updateClassMap(newPlacement);
2541
+ if ($event.scrollableViewProperties.isOverlayClipped && this.instance.isVisible()) {
2542
+ // After position changes occur and the overlay is clipped by
2543
+ // a parent scrollable then close the tooltip.
2544
+ this.ngZone.run(() => this.hide());
2545
+ }
2546
+ };
2547
+ this.addEventListener = (listener, event) => {
2548
+ this.elementRef.nativeElement.addEventListener(event, listener);
2549
+ };
2550
+ this.removeEventListener = (listener, event) => {
2551
+ this.elementRef.nativeElement.removeEventListener(event, listener);
2552
+ };
2553
+ this.availablePositions = POSITION_MAP;
2554
+ }
2555
+ ngOnInit() {
2556
+ this.initListeners();
2557
+ }
2558
+ ngOnDestroy() {
2559
+ if (this.overlayRef) {
2560
+ this.overlayRef.dispose();
2561
+ }
2562
+ this.listeners.forEach(this.removeEventListener);
2563
+ this.listeners.clear();
2564
+ this.destroyed.next();
2565
+ this.destroyed.complete();
2566
+ }
2567
+ updatePlacement(value) {
2568
+ if (POSITION_TO_CSS_MAP[value]) {
2569
+ this.placement = value;
2570
+ this.updateClassMap();
2571
+ }
2572
+ else {
2573
+ this.placement = PopUpPlacements.Top;
2574
+ console.warn(`Unknown position: ${value}. Will used default position: ${this.placement}`);
2575
+ }
2576
+ if (this.visible) {
2577
+ this.updatePosition();
2578
+ }
2579
+ }
2580
+ updatePlacementPriority(value) {
2581
+ if (value && value.length > 0) {
2582
+ this.placementPriority = value;
2583
+ }
2584
+ else {
2585
+ this.placementPriority = null;
2586
+ }
2587
+ }
2588
+ updateVisible(externalValue) {
2589
+ const value = coerceBooleanProperty(externalValue);
2590
+ if (this.visible !== value) {
2591
+ this.visible = value;
2592
+ if (value) {
2593
+ this.show();
2594
+ }
2595
+ else {
2596
+ this.hide();
2597
+ }
2598
+ }
2599
+ }
2600
+ handleKeydown(event) {
2601
+ if (this.isOpen && event.keyCode === ESCAPE) { // tslint:disable-line
2602
+ this.hide();
2603
+ }
2604
+ }
2605
+ handleTouchend() {
2606
+ this.hide();
2607
+ }
2608
+ show(delay = this.enterDelay) {
2609
+ if (this.disabled || this.instance) {
2610
+ return;
2611
+ }
2612
+ this.overlayRef = this.createOverlay();
2613
+ this.detach();
2614
+ this.portal = this.portal || new ComponentPortal(this.getOverlayHandleComponentType(), this.hostView);
2615
+ this.instance = this.overlayRef.attach(this.portal).instance;
2616
+ this.instance.afterHidden()
2617
+ .pipe(takeUntil(this.destroyed))
2618
+ .subscribe(this.detach);
2619
+ this.updateClassMap();
2620
+ this.updateData();
2621
+ this.instance.visibleChange
2622
+ .pipe(takeUntil(this.destroyed), distinctUntilChanged())
2623
+ .subscribe((value) => {
2624
+ this.visible = value;
2625
+ this.visibleChange.emit(value);
2626
+ this.isOpen = value;
2627
+ });
2628
+ this.updatePosition();
2629
+ this.instance.show(delay);
2630
+ }
2631
+ hide(delay = this.leaveDelay) {
2632
+ if (this.instance) {
2633
+ this.instance.hide(delay);
2634
+ }
2635
+ }
2636
+ /** Create the overlay config and position strategy */
2637
+ createOverlay() {
2638
+ if (this.overlayRef) {
2639
+ return this.overlayRef;
2640
+ }
2641
+ // Create connected position strategy that listens for scroll events to reposition.
2642
+ const strategy = this.overlay.position()
2643
+ .flexibleConnectedTo(this.elementRef)
2644
+ .withTransformOriginOn(this.originSelector)
2645
+ .withFlexibleDimensions(false)
2646
+ .withPositions([...EXTENDED_OVERLAY_POSITIONS])
2647
+ .withScrollableContainers(this.scrollDispatcher.getAncestorScrollContainers(this.elementRef));
2648
+ strategy.positionChanges
2649
+ .pipe(takeUntil(this.destroyed))
2650
+ .subscribe(this.onPositionChange);
2651
+ this.overlayRef = this.overlay.create({
2652
+ ...this.overlayConfig,
2653
+ direction: this.direction,
2654
+ positionStrategy: strategy,
2655
+ scrollStrategy: this.scrollStrategy()
2656
+ });
2657
+ this.closingActions()
2658
+ .pipe(takeUntil(this.destroyed))
2659
+ .pipe(delay(0))
2660
+ .subscribe(() => this.hide());
2661
+ this.overlayRef.outsidePointerEvents()
2662
+ .subscribe(() => this.instance.handleBodyInteraction());
2663
+ this.overlayRef.detachments()
2664
+ .pipe(takeUntil(this.destroyed))
2665
+ .subscribe(this.detach);
2666
+ return this.overlayRef;
2667
+ }
2668
+ initListeners() {
2669
+ this.clearListeners();
2670
+ if (this.trigger.includes(PopUpTriggers.Click)) {
2671
+ this.listeners
2672
+ .set('click', () => this.show())
2673
+ .forEach(this.addEventListener);
2674
+ }
2675
+ if (this.trigger.includes(PopUpTriggers.Hover)) {
2676
+ this.listeners
2677
+ .set('mouseenter', () => this.show())
2678
+ .set('mouseleave', () => this.hide())
2679
+ .forEach(this.addEventListener);
2680
+ }
2681
+ if (this.trigger.includes(PopUpTriggers.Focus)) {
2682
+ this.listeners
2683
+ .set('focus', () => this.show())
2684
+ .set('blur', () => this.hide())
2685
+ .forEach(this.addEventListener);
2686
+ }
2687
+ }
2688
+ /** Updates the position of the current popover. */
2689
+ updatePosition(reapplyPosition = false) {
2690
+ this.overlayRef = this.createOverlay();
2691
+ const position = this.overlayRef.getConfig().positionStrategy
2692
+ .withPositions(this.getPrioritizedPositions())
2693
+ .withPush(true);
2694
+ if (reapplyPosition) {
2695
+ setTimeout(() => position.reapplyLastPosition());
2696
+ }
2697
+ }
2698
+ getPriorityPlacementStrategy(value) {
2699
+ const result = [];
2700
+ const possiblePositions = Object.keys(this.availablePositions);
2701
+ if (Array.isArray(value)) {
2702
+ value.forEach((position) => {
2703
+ if (possiblePositions.includes(position)) {
2704
+ result.push(this.availablePositions[position]);
2705
+ }
2706
+ });
2707
+ }
2708
+ else if (possiblePositions.includes(value)) {
2709
+ result.push(this.availablePositions[value]);
2710
+ }
2711
+ return result;
2712
+ }
2713
+ getPrioritizedPositions() {
2714
+ if (this.placementPriority) {
2715
+ return this.getPriorityPlacementStrategy(this.placementPriority);
2716
+ }
2717
+ return POSITION_PRIORITY_STRATEGY[this.placement];
2718
+ }
2719
+ clearListeners() {
2720
+ this.listeners.forEach(this.removeEventListener);
2721
+ this.listeners.clear();
2722
+ }
2723
+ }
2724
+ /** @nocollapse */ /** @nocollapse */ McPopUpTrigger.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McPopUpTrigger, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
2725
+ /** @nocollapse */ /** @nocollapse */ McPopUpTrigger.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.0", type: McPopUpTrigger, ngImport: i0 });
2726
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: McPopUpTrigger, decorators: [{
2727
+ type: Directive
2728
+ }], ctorParameters: function () { return [{ type: i1$2.Overlay }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i1$2.ScrollDispatcher }, { type: i0.ViewContainerRef }, { type: undefined }, { type: i2$1.Directionality }]; } });
2729
+
2730
+ /**
2731
+ * Generated bundle index. Do not edit.
2732
+ */
2733
+
2734
+ export { AnimationCurves, BOTTOM_LEFT_POSITION_PRIORITY, BOTTOM_POSITION_PRIORITY, BOTTOM_RIGHT_POSITION_PRIORITY, DEFAULT_MC_LOCALE_ID, DateFormatter, EXTENDED_OVERLAY_POSITIONS, ErrorStateMatcher, LEFT_BOTTOM_POSITION_PRIORITY, LEFT_POSITION_PRIORITY, LEFT_TOP_POSITION_PRIORITY, MC_LABEL_GLOBAL_OPTIONS, MC_LOCALE_ID, MC_OPTION_ACTION_PARENT, MC_OPTION_PARENT_COMPONENT, MC_SANITY_CHECKS, MC_SELECT_SCROLL_STRATEGY, MC_SELECT_SCROLL_STRATEGY_PROVIDER, MC_VALIDATION, McCommonModule, McDecimalPipe, McForm, McFormElement, McFormattersModule, McFormsModule, McHighlightModule, McHighlightPipe, McLine, McLineModule, McLineSetter, McMeasureScrollbarService, McOptgroup, McOptgroupBase, McOptgroupMixinBase, McOption, McOptionActionBase, McOptionActionComponent, McOptionActionMixinBase, McOptionModule, McOptionSelectionChange, McPopUp, McPopUpTrigger, McPseudoCheckbox, McPseudoCheckboxModule, MultipleMode, NUMBER_FORMAT_REGEXP, POSITION_MAP, POSITION_PRIORITY_STRATEGY, POSITION_TO_CSS_MAP, PopUpPlacements, PopUpSizes, PopUpTriggers, PopUpVisibility, RIGHT_BOTTOM_POSITION_PRIORITY, RIGHT_POSITION_PRIORITY, RIGHT_TOP_POSITION_PRIORITY, SELECT_PANEL_INDENT_PADDING_X, SELECT_PANEL_MAX_HEIGHT, SELECT_PANEL_PADDING_X, SELECT_PANEL_VIEWPORT_PADDING, ShowOnDirtyErrorStateMatcher, TOP_LEFT_POSITION_PRIORITY, TOP_POSITION_PRIORITY, TOP_RIGHT_POSITION_PRIORITY, ThemePalette, VERSION, countGroupLabelsBeforeOption, fadeAnimation, getMcSelectDynamicMultipleError, getMcSelectNonArrayValueError, getMcSelectNonFunctionValueError, getOptionScrollPosition, isBoolean, mcSelectAnimations, mcSelectScrollStrategyProviderFactory, mixinColor, mixinDisabled, mixinErrorState, mixinTabIndex, selectEvents, setMosaicValidation, setMosaicValidationForFormControl, setMosaicValidationForModelControl, toBoolean, validationTooltipHideDelay, validationTooltipShowDelay };
2735
+ //# sourceMappingURL=ptsecurity-mosaic-core.mjs.map