@ptsecurity/mosaic 12.1.0 → 13.0.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 (731) hide show
  1. package/_theming.scss +113 -66
  2. package/_visual.scss +11 -9
  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 +4 -4
  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/pop-up/pop-up-trigger.d.ts +9 -12
  20. package/datepicker/README.md +0 -0
  21. package/datepicker/package.json +5 -5
  22. package/design-tokens/package.json +5 -5
  23. package/design-tokens/style-dictionary/build.js +6 -0
  24. package/design-tokens/style-dictionary/configs/index.js +2 -1
  25. package/design-tokens/tokens/components/navbar.json5 +12 -9
  26. package/design-tokens/tokens.d.ts +11 -9
  27. package/divider/README.md +0 -0
  28. package/divider/package.json +5 -5
  29. package/dropdown/dropdown-item.component.d.ts +1 -0
  30. package/dropdown/package.json +5 -5
  31. package/{esm2015/autocomplete/autocomplete-origin.directive.js → esm2020/autocomplete/autocomplete-origin.directive.mjs} +4 -4
  32. package/{esm2015/autocomplete/autocomplete-trigger.directive.js → esm2020/autocomplete/autocomplete-trigger.directive.mjs} +4 -4
  33. package/esm2020/autocomplete/autocomplete.component.mjs +154 -0
  34. package/{esm2015/autocomplete/autocomplete.module.js → esm2020/autocomplete/autocomplete.module.mjs} +5 -5
  35. package/{esm2015/autocomplete/index.js → esm2020/autocomplete/index.mjs} +0 -0
  36. package/{esm2015/autocomplete/ptsecurity-mosaic-autocomplete.js → esm2020/autocomplete/ptsecurity-mosaic-autocomplete.mjs} +0 -0
  37. package/{esm2015/autocomplete/public-api.js → esm2020/autocomplete/public-api.mjs} +0 -0
  38. package/esm2020/button/button.component.mjs +129 -0
  39. package/esm2020/button/button.module.mjs +38 -0
  40. package/{esm2015/button/index.js → esm2020/button/index.mjs} +0 -0
  41. package/{esm2015/button/ptsecurity-mosaic-button.js → esm2020/button/ptsecurity-mosaic-button.mjs} +0 -0
  42. package/{esm2015/button/public-api.js → esm2020/button/public-api.mjs} +0 -0
  43. package/esm2020/button-toggle/button-toggle.component.mjs +362 -0
  44. package/{esm2015/button-toggle/button-toggle.module.js → esm2020/button-toggle/button-toggle.module.mjs} +5 -5
  45. package/{esm2015/button-toggle/index.js → esm2020/button-toggle/index.mjs} +0 -0
  46. package/{esm2015/button-toggle/ptsecurity-mosaic-button-toggle.js → esm2020/button-toggle/ptsecurity-mosaic-button-toggle.mjs} +0 -0
  47. package/{esm2015/button-toggle/public-api.js → esm2020/button-toggle/public-api.mjs} +0 -0
  48. package/esm2020/card/card.component.mjs +80 -0
  49. package/{esm2015/card/card.module.js → esm2020/card/card.module.mjs} +5 -5
  50. package/{esm2015/card/index.js → esm2020/card/index.mjs} +0 -0
  51. package/{esm2015/card/ptsecurity-mosaic-card.js → esm2020/card/ptsecurity-mosaic-card.mjs} +0 -0
  52. package/{esm2015/card/public-api.js → esm2020/card/public-api.mjs} +0 -0
  53. package/{esm2015/checkbox/checkbox-config.js → esm2020/checkbox/checkbox-config.mjs} +0 -0
  54. package/{esm2015/checkbox/checkbox-module.js → esm2020/checkbox/checkbox-module.mjs} +5 -5
  55. package/{esm2015/checkbox/checkbox-required-validator.js → esm2020/checkbox/checkbox-required-validator.mjs} +4 -4
  56. package/esm2020/checkbox/checkbox.mjs +315 -0
  57. package/{esm2015/checkbox/index.js → esm2020/checkbox/index.mjs} +0 -0
  58. package/{esm2015/checkbox/ptsecurity-mosaic-checkbox.js → esm2020/checkbox/ptsecurity-mosaic-checkbox.mjs} +0 -0
  59. package/{esm2015/checkbox/public-api.js → esm2020/checkbox/public-api.mjs} +0 -0
  60. package/{esm2015/core/animation/animation.js → esm2020/core/animation/animation.mjs} +0 -0
  61. package/{esm2015/core/animation/fade-animations.js → esm2020/core/animation/fade-animations.mjs} +0 -0
  62. package/{esm2015/core/animation/index.js → esm2020/core/animation/index.mjs} +0 -0
  63. package/{esm2015/core/animation/select-animations.js → esm2020/core/animation/select-animations.mjs} +0 -0
  64. package/{esm2015/core/common-behaviors/color.js → esm2020/core/common-behaviors/color.mjs} +0 -0
  65. package/{esm2015/core/common-behaviors/common-module.js → esm2020/core/common-behaviors/common-module.mjs} +5 -5
  66. package/{esm2015/core/common-behaviors/constructor.js → esm2020/core/common-behaviors/constructor.mjs} +0 -0
  67. package/{esm2015/core/common-behaviors/disabled.js → esm2020/core/common-behaviors/disabled.mjs} +0 -0
  68. package/{esm2015/core/common-behaviors/error-state.js → esm2020/core/common-behaviors/error-state.mjs} +0 -0
  69. package/{esm2015/core/common-behaviors/index.js → esm2020/core/common-behaviors/index.mjs} +0 -0
  70. package/{esm2015/core/common-behaviors/tabindex.js → esm2020/core/common-behaviors/tabindex.mjs} +0 -0
  71. package/{esm2015/core/error/error-options.js → esm2020/core/error/error-options.mjs} +7 -7
  72. package/esm2020/core/formatters/date/formatter.mjs +314 -0
  73. package/esm2020/core/formatters/date/templates/en-US.mjs +280 -0
  74. package/esm2020/core/formatters/date/templates/ru-RU.mjs +280 -0
  75. package/{esm2015/core/formatters/index.js → esm2020/core/formatters/index.mjs} +5 -5
  76. package/esm2020/core/formatters/number/formatter.mjs +105 -0
  77. package/{esm2015/core/forms/forms-module.js → esm2020/core/forms/forms-module.mjs} +5 -5
  78. package/{esm2015/core/forms/forms.directive.js → esm2020/core/forms/forms.directive.mjs} +7 -7
  79. package/{esm2015/core/forms/index.js → esm2020/core/forms/index.mjs} +0 -0
  80. package/{esm2015/core/highlight/highlight.pipe.js → esm2020/core/highlight/highlight.pipe.mjs} +4 -4
  81. package/{esm2015/core/highlight/index.js → esm2020/core/highlight/index.mjs} +5 -5
  82. package/{esm2015/core/index.js → esm2020/core/index.mjs} +0 -0
  83. package/{esm2015/core/label/label-options.js → esm2020/core/label/label-options.mjs} +0 -0
  84. package/{esm2015/core/line/line.js → esm2020/core/line/line.mjs} +8 -8
  85. package/esm2020/core/option/action.mjs +121 -0
  86. package/{esm2015/core/option/index.js → esm2020/core/option/index.mjs} +0 -0
  87. package/esm2020/core/option/optgroup.mjs +31 -0
  88. package/{esm2015/core/option/option-module.js → esm2020/core/option/option-module.mjs} +5 -5
  89. package/esm2020/core/option/option.mjs +254 -0
  90. package/{esm2015/core/overlay/overlay-position-map.js → esm2020/core/overlay/overlay-position-map.mjs} +0 -0
  91. package/{esm2015/core/pop-up/constants.js → esm2020/core/pop-up/constants.mjs} +0 -0
  92. package/{esm2015/core/pop-up/index.js → esm2020/core/pop-up/index.mjs} +0 -0
  93. package/esm2020/core/pop-up/pop-up-trigger.mjs +246 -0
  94. package/esm2020/core/pop-up/pop-up.mjs +91 -0
  95. package/{esm2015/core/ptsecurity-mosaic-core.js → esm2020/core/ptsecurity-mosaic-core.mjs} +0 -0
  96. package/{esm2015/core/public-api.js → esm2020/core/public-api.mjs} +0 -0
  97. package/{esm2015/core/select/constants.js → esm2020/core/select/constants.mjs} +0 -0
  98. package/{esm2015/core/select/errors.js → esm2020/core/select/errors.mjs} +0 -0
  99. package/{esm2015/core/select/events.js → esm2020/core/select/events.mjs} +0 -0
  100. package/{esm2015/core/select/index.js → esm2020/core/select/index.mjs} +0 -0
  101. package/{esm2015/core/selection/constants.js → esm2020/core/selection/constants.mjs} +0 -0
  102. package/{esm2015/core/selection/index.js → esm2020/core/selection/index.mjs} +0 -0
  103. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +37 -0
  104. package/{esm2015/core/selection/pseudo-checkbox/pseudo-checkbox.module.js → esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.module.mjs} +5 -5
  105. package/{esm2015/core/services/measure-scrollbar.service.js → esm2020/core/services/measure-scrollbar.service.mjs} +4 -4
  106. package/{esm2015/core/utils/index.js → esm2020/core/utils/index.mjs} +0 -0
  107. package/{esm2015/core/utils/public-api.js → esm2020/core/utils/public-api.mjs} +0 -0
  108. package/{esm2015/core/utils/utils.js → esm2020/core/utils/utils.mjs} +0 -0
  109. package/{esm2015/core/validation/index.js → esm2020/core/validation/index.mjs} +0 -0
  110. package/{esm2015/core/validation/validation.js → esm2020/core/validation/validation.mjs} +0 -0
  111. package/esm2020/datepicker/calendar-body.component.mjs +106 -0
  112. package/esm2020/datepicker/calendar.component.mjs +362 -0
  113. package/{esm2015/datepicker/datepicker-animations.js → esm2020/datepicker/datepicker-animations.mjs} +0 -0
  114. package/{esm2015/datepicker/datepicker-errors.js → esm2020/datepicker/datepicker-errors.mjs} +0 -0
  115. package/esm2020/datepicker/datepicker-input.directive.mjs +900 -0
  116. package/{esm2015/datepicker/datepicker-intl.js → esm2020/datepicker/datepicker-intl.mjs} +4 -4
  117. package/{esm2015/datepicker/datepicker-module.js → esm2020/datepicker/datepicker-module.mjs} +5 -5
  118. package/esm2020/datepicker/datepicker-toggle.component.mjs +86 -0
  119. package/esm2020/datepicker/datepicker.component.mjs +408 -0
  120. package/{esm2015/datepicker/index.js → esm2020/datepicker/index.mjs} +0 -0
  121. package/{esm2015/datepicker/month-view.component.js → esm2020/datepicker/month-view.component.mjs} +5 -11
  122. package/{esm2015/datepicker/multi-year-view.component.js → esm2020/datepicker/multi-year-view.component.mjs} +5 -11
  123. package/{esm2015/datepicker/ptsecurity-mosaic-datepicker.js → esm2020/datepicker/ptsecurity-mosaic-datepicker.mjs} +0 -0
  124. package/{esm2015/datepicker/public-api.js → esm2020/datepicker/public-api.mjs} +0 -0
  125. package/{esm2015/datepicker/year-view.component.js → esm2020/datepicker/year-view.component.mjs} +5 -11
  126. package/{esm2015/design-tokens/index.js → esm2020/design-tokens/index.mjs} +0 -0
  127. package/{esm2015/design-tokens/ptsecurity-mosaic-design-tokens.js → esm2020/design-tokens/ptsecurity-mosaic-design-tokens.mjs} +0 -0
  128. package/{esm2015/design-tokens/public-api.js → esm2020/design-tokens/public-api.mjs} +0 -0
  129. package/{esm2015/design-tokens/tokens.js → esm2020/design-tokens/tokens.mjs} +12 -10
  130. package/{esm2015/divider/divider.component.js → esm2020/divider/divider.component.mjs} +6 -13
  131. package/{esm2015/divider/divider.module.js → esm2020/divider/divider.module.mjs} +5 -5
  132. package/{esm2015/divider/index.js → esm2020/divider/index.mjs} +0 -0
  133. package/{esm2015/divider/ptsecurity-mosaic-divider.js → esm2020/divider/ptsecurity-mosaic-divider.mjs} +0 -0
  134. package/{esm2015/divider/public-api.js → esm2020/divider/public-api.mjs} +0 -0
  135. package/{esm2015/dropdown/dropdown-animations.js → esm2020/dropdown/dropdown-animations.mjs} +0 -0
  136. package/{esm2015/dropdown/dropdown-content.directive.js → esm2020/dropdown/dropdown-content.directive.mjs} +6 -8
  137. package/{esm2015/dropdown/dropdown-errors.js → esm2020/dropdown/dropdown-errors.mjs} +0 -0
  138. package/esm2020/dropdown/dropdown-item.component.mjs +139 -0
  139. package/esm2020/dropdown/dropdown-trigger.directive.mjs +485 -0
  140. package/esm2020/dropdown/dropdown.component.mjs +292 -0
  141. package/{esm2015/dropdown/dropdown.module.js → esm2020/dropdown/dropdown.module.mjs} +5 -5
  142. package/{esm2015/dropdown/dropdown.types.js → esm2020/dropdown/dropdown.types.mjs} +0 -0
  143. package/{esm2015/dropdown/index.js → esm2020/dropdown/index.mjs} +0 -0
  144. package/{esm2015/dropdown/ptsecurity-mosaic-dropdown.js → esm2020/dropdown/ptsecurity-mosaic-dropdown.mjs} +0 -0
  145. package/{esm2015/dropdown/public-api.js → esm2020/dropdown/public-api.mjs} +0 -0
  146. package/esm2020/form-field/cleaner.mjs +23 -0
  147. package/{esm2015/form-field/form-field-control.js → esm2020/form-field/form-field-control.mjs} +0 -0
  148. package/{esm2015/form-field/form-field-errors.js → esm2020/form-field/form-field-errors.mjs} +0 -0
  149. package/esm2020/form-field/form-field.mjs +205 -0
  150. package/{esm2015/form-field/form-field.module.js → esm2020/form-field/form-field.module.mjs} +5 -5
  151. package/{esm2015/form-field/hint.js → esm2020/form-field/hint.mjs} +4 -4
  152. package/{esm2015/form-field/index.js → esm2020/form-field/index.mjs} +0 -0
  153. package/{esm2015/form-field/prefix.js → esm2020/form-field/prefix.mjs} +4 -4
  154. package/{esm2015/form-field/ptsecurity-mosaic-form-field.js → esm2020/form-field/ptsecurity-mosaic-form-field.mjs} +0 -0
  155. package/{esm2015/form-field/public-api.js → esm2020/form-field/public-api.mjs} +0 -0
  156. package/{esm2015/form-field/stepper.js → esm2020/form-field/stepper.mjs} +4 -4
  157. package/{esm2015/form-field/suffix.js → esm2020/form-field/suffix.mjs} +4 -4
  158. package/esm2020/icon/icon.component.mjs +44 -0
  159. package/{esm2015/icon/icon.module.js → esm2020/icon/icon.module.mjs} +5 -5
  160. package/{esm2015/icon/index.js → esm2020/icon/index.mjs} +0 -0
  161. package/{esm2015/icon/ptsecurity-mosaic-icon.js → esm2020/icon/ptsecurity-mosaic-icon.mjs} +0 -0
  162. package/{esm2015/icon/public-api.js → esm2020/icon/public-api.mjs} +0 -0
  163. package/{esm2015/index.js → esm2020/index.mjs} +0 -0
  164. package/{esm2015/input/index.js → esm2020/input/index.mjs} +0 -0
  165. package/{esm2015/input/input-errors.js → esm2020/input/input-errors.mjs} +0 -0
  166. package/esm2020/input/input-number-validators.mjs +92 -0
  167. package/{esm2015/input/input-number.js → esm2020/input/input-number.mjs} +4 -4
  168. package/{esm2015/input/input-value-accessor.js → esm2020/input/input-value-accessor.mjs} +0 -0
  169. package/{esm2015/input/input.js → esm2020/input/input.mjs} +7 -7
  170. package/{esm2015/input/input.module.js → esm2020/input/input.module.mjs} +5 -5
  171. package/{esm2015/input/ptsecurity-mosaic-input.js → esm2020/input/ptsecurity-mosaic-input.mjs} +0 -0
  172. package/{esm2015/input/public-api.js → esm2020/input/public-api.mjs} +0 -0
  173. package/{esm2015/link/index.js → esm2020/link/index.mjs} +0 -0
  174. package/esm2020/link/link.component.mjs +107 -0
  175. package/{esm2015/link/link.module.js → esm2020/link/link.module.mjs} +5 -5
  176. package/{esm2015/link/ptsecurity-mosaic-link.js → esm2020/link/ptsecurity-mosaic-link.mjs} +0 -0
  177. package/{esm2015/link/public-api.js → esm2020/link/public-api.mjs} +0 -0
  178. package/{esm2015/list/index.js → esm2020/list/index.mjs} +0 -0
  179. package/esm2020/list/list-selection.component.mjs +693 -0
  180. package/esm2020/list/list.component.mjs +44 -0
  181. package/{esm2015/list/list.module.js → esm2020/list/list.module.mjs} +5 -5
  182. package/{esm2015/list/ptsecurity-mosaic-list.js → esm2020/list/ptsecurity-mosaic-list.mjs} +0 -0
  183. package/{esm2015/list/public-api.js → esm2020/list/public-api.mjs} +0 -0
  184. package/{esm2015/modal/css-unit.pipe.js → esm2020/modal/css-unit.pipe.mjs} +4 -4
  185. package/{esm2015/modal/index.js → esm2020/modal/index.mjs} +0 -0
  186. package/{esm2015/modal/modal-control.service.js → esm2020/modal/modal-control.service.mjs} +4 -4
  187. package/{esm2015/modal/modal-ref.class.js → esm2020/modal/modal-ref.class.mjs} +0 -0
  188. package/{esm2015/modal/modal-util.js → esm2020/modal/modal-util.mjs} +0 -0
  189. package/esm2020/modal/modal.component.mjs +501 -0
  190. package/{esm2015/modal/modal.directive.js → esm2020/modal/modal.directive.mjs} +13 -13
  191. package/esm2020/modal/modal.module.mjs +72 -0
  192. package/esm2020/modal/modal.service.mjs +124 -0
  193. package/{esm2015/modal/modal.type.js → esm2020/modal/modal.type.mjs} +0 -0
  194. package/{esm2015/modal/ptsecurity-mosaic-modal.js → esm2020/modal/ptsecurity-mosaic-modal.mjs} +0 -0
  195. package/{esm2015/modal/public-api.js → esm2020/modal/public-api.mjs} +0 -0
  196. package/{esm2015/navbar/index.js → esm2020/navbar/index.mjs} +0 -0
  197. package/esm2020/navbar/navbar-item.component.mjs +577 -0
  198. package/esm2020/navbar/navbar.component.mjs +237 -0
  199. package/esm2020/navbar/navbar.module.mjs +92 -0
  200. package/{esm2015/navbar/ptsecurity-mosaic-navbar.js → esm2020/navbar/ptsecurity-mosaic-navbar.mjs} +0 -0
  201. package/{esm2015/navbar/public-api.js → esm2020/navbar/public-api.mjs} +0 -0
  202. package/{esm2015/navbar/vertical-navbar.animation.js → esm2020/navbar/vertical-navbar.animation.mjs} +2 -2
  203. package/esm2020/navbar/vertical-navbar.component.mjs +114 -0
  204. package/{esm2015/popover/index.js → esm2020/popover/index.mjs} +0 -0
  205. package/{esm2015/popover/popover-animations.js → esm2020/popover/popover-animations.mjs} +0 -0
  206. package/esm2020/popover/popover-confirm.component.mjs +108 -0
  207. package/esm2020/popover/popover.component.mjs +253 -0
  208. package/esm2020/popover/popover.module.mjs +24 -0
  209. package/{esm2015/popover/ptsecurity-mosaic-popover.js → esm2020/popover/ptsecurity-mosaic-popover.mjs} +0 -0
  210. package/{esm2015/popover/public-api.js → esm2020/popover/public-api.mjs} +2 -1
  211. package/{esm2015/progress-bar/index.js → esm2020/progress-bar/index.mjs} +0 -0
  212. package/esm2020/progress-bar/progress-bar.component.mjs +42 -0
  213. package/{esm2015/progress-bar/progress-bar.module.js → esm2020/progress-bar/progress-bar.module.mjs} +5 -5
  214. package/{esm2015/progress-bar/ptsecurity-mosaic-progress-bar.js → esm2020/progress-bar/ptsecurity-mosaic-progress-bar.mjs} +0 -0
  215. package/{esm2015/progress-bar/public-api.js → esm2020/progress-bar/public-api.mjs} +0 -0
  216. package/{esm2015/progress-spinner/index.js → esm2020/progress-spinner/index.mjs} +0 -0
  217. package/esm2020/progress-spinner/progress-spinner.component.mjs +46 -0
  218. package/{esm2015/progress-spinner/progress-spinner.module.js → esm2020/progress-spinner/progress-spinner.module.mjs} +5 -5
  219. package/{esm2015/progress-spinner/ptsecurity-mosaic-progress-spinner.js → esm2020/progress-spinner/ptsecurity-mosaic-progress-spinner.mjs} +0 -0
  220. package/{esm2015/progress-spinner/public-api.js → esm2020/progress-spinner/public-api.mjs} +0 -0
  221. package/{esm2015/ptsecurity-mosaic.js → esm2020/ptsecurity-mosaic.mjs} +0 -0
  222. package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
  223. package/{esm2015/radio/index.js → esm2020/radio/index.mjs} +0 -0
  224. package/{esm2015/radio/ptsecurity-mosaic-radio.js → esm2020/radio/ptsecurity-mosaic-radio.mjs} +0 -0
  225. package/{esm2015/radio/public-api.js → esm2020/radio/public-api.mjs} +0 -0
  226. package/esm2020/radio/radio.component.mjs +458 -0
  227. package/{esm2015/radio/radio.module.js → esm2020/radio/radio.module.mjs} +5 -5
  228. package/{esm2015/select/index.js → esm2020/select/index.mjs} +0 -0
  229. package/{esm2015/select/ptsecurity-mosaic-select.js → esm2020/select/ptsecurity-mosaic-select.mjs} +0 -0
  230. package/{esm2015/select/public-api.js → esm2020/select/public-api.mjs} +0 -0
  231. package/esm2020/select/select.component.mjs +1110 -0
  232. package/{esm2015/select/select.module.js → esm2020/select/select.module.mjs} +5 -5
  233. package/{esm2015/sidebar/index.js → esm2020/sidebar/index.mjs} +0 -0
  234. package/{esm2015/sidebar/ptsecurity-mosaic-sidebar.js → esm2020/sidebar/ptsecurity-mosaic-sidebar.mjs} +0 -0
  235. package/{esm2015/sidebar/public-api.js → esm2020/sidebar/public-api.mjs} +0 -0
  236. package/{esm2015/sidebar/sidebar-animations.js → esm2020/sidebar/sidebar-animations.mjs} +0 -0
  237. package/esm2020/sidebar/sidebar.component.mjs +146 -0
  238. package/{esm2015/sidebar/sidebar.module.js → esm2020/sidebar/sidebar.module.mjs} +5 -5
  239. package/{esm2015/sidepanel/index.js → esm2020/sidepanel/index.mjs} +0 -0
  240. package/{esm2015/sidepanel/ptsecurity-mosaic-sidepanel.js → esm2020/sidepanel/ptsecurity-mosaic-sidepanel.mjs} +0 -0
  241. package/{esm2015/sidepanel/public-api.js → esm2020/sidepanel/public-api.mjs} +0 -0
  242. package/{esm2015/sidepanel/sidepanel-animations.js → esm2020/sidepanel/sidepanel-animations.mjs} +0 -0
  243. package/{esm2015/sidepanel/sidepanel-config.js → esm2020/sidepanel/sidepanel-config.mjs} +0 -0
  244. package/esm2020/sidepanel/sidepanel-container.component.mjs +106 -0
  245. package/esm2020/sidepanel/sidepanel-directives.mjs +159 -0
  246. package/{esm2015/sidepanel/sidepanel-ref.js → esm2020/sidepanel/sidepanel-ref.mjs} +0 -0
  247. package/esm2020/sidepanel/sidepanel.module.mjs +74 -0
  248. package/esm2020/sidepanel/sidepanel.service.mjs +167 -0
  249. package/{esm2015/splitter/index.js → esm2020/splitter/index.mjs} +0 -0
  250. package/{esm2015/splitter/ptsecurity-mosaic-splitter.js → esm2020/splitter/ptsecurity-mosaic-splitter.mjs} +0 -0
  251. package/{esm2015/splitter/public-api.js → esm2020/splitter/public-api.mjs} +0 -0
  252. package/esm2020/splitter/splitter.component.mjs +480 -0
  253. package/esm2020/splitter/splitter.module.mjs +40 -0
  254. package/{esm2015/table/index.js → esm2020/table/index.mjs} +0 -0
  255. package/{esm2015/table/ptsecurity-mosaic-table.js → esm2020/table/ptsecurity-mosaic-table.mjs} +0 -0
  256. package/{esm2015/table/public-api.js → esm2020/table/public-api.mjs} +0 -0
  257. package/{esm2015/table/table.component.js → esm2020/table/table.component.mjs} +4 -4
  258. package/{esm2015/table/table.module.js → esm2020/table/table.module.mjs} +5 -5
  259. package/{esm2015/tabs/index.js → esm2020/tabs/index.mjs} +0 -0
  260. package/esm2020/tabs/paginated-tab-header.mjs +479 -0
  261. package/{esm2015/tabs/ptsecurity-mosaic-tabs.js → esm2020/tabs/ptsecurity-mosaic-tabs.mjs} +0 -0
  262. package/{esm2015/tabs/public-api.js → esm2020/tabs/public-api.mjs} +0 -0
  263. package/esm2020/tabs/tab-body.component.mjs +178 -0
  264. package/{esm2015/tabs/tab-content.directive.js → esm2020/tabs/tab-content.directive.mjs} +4 -4
  265. package/esm2020/tabs/tab-group.component.mjs +350 -0
  266. package/esm2020/tabs/tab-header.component.mjs +67 -0
  267. package/{esm2015/tabs/tab-label-wrapper.directive.js → esm2020/tabs/tab-label-wrapper.directive.mjs} +4 -4
  268. package/{esm2015/tabs/tab-label.directive.js → esm2020/tabs/tab-label.directive.mjs} +4 -4
  269. package/{esm2015/tabs/tab-nav-bar/index.js → esm2020/tabs/tab-nav-bar/index.mjs} +0 -0
  270. package/esm2020/tabs/tab-nav-bar/tab-nav-bar.mjs +110 -0
  271. package/{esm2015/tabs/tab.component.js → esm2020/tabs/tab.component.mjs} +4 -4
  272. package/{esm2015/tabs/tabs-animations.js → esm2020/tabs/tabs-animations.mjs} +0 -0
  273. package/{esm2015/tabs/tabs.module.js → esm2020/tabs/tabs.module.mjs} +5 -5
  274. package/{esm2015/tags/index.js → esm2020/tags/index.mjs} +0 -0
  275. package/{esm2015/tags/ptsecurity-mosaic-tags.js → esm2020/tags/ptsecurity-mosaic-tags.mjs} +0 -0
  276. package/{esm2015/tags/public-api.js → esm2020/tags/public-api.mjs} +0 -0
  277. package/{esm2015/tags/tag-default-options.js → esm2020/tags/tag-default-options.mjs} +0 -0
  278. package/{esm2015/tags/tag-input.js → esm2020/tags/tag-input.mjs} +4 -4
  279. package/esm2020/tags/tag-list.component.mjs +722 -0
  280. package/{esm2015/tags/tag-text-control.js → esm2020/tags/tag-text-control.mjs} +0 -0
  281. package/esm2020/tags/tag.component.mjs +374 -0
  282. package/{esm2015/tags/tag.module.js → esm2020/tags/tag.module.mjs} +5 -5
  283. package/{esm2015/textarea/index.js → esm2020/textarea/index.mjs} +0 -0
  284. package/{esm2015/textarea/ptsecurity-mosaic-textarea.js → esm2020/textarea/ptsecurity-mosaic-textarea.mjs} +0 -0
  285. package/{esm2015/textarea/public-api.js → esm2020/textarea/public-api.mjs} +0 -0
  286. package/{esm2015/textarea/textarea.component.js → esm2020/textarea/textarea.component.mjs} +4 -4
  287. package/{esm2015/textarea/textarea.module.js → esm2020/textarea/textarea.module.mjs} +5 -5
  288. package/{esm2015/timepicker/index.js → esm2020/timepicker/index.mjs} +0 -0
  289. package/{esm2015/timepicker/ptsecurity-mosaic-timepicker.js → esm2020/timepicker/ptsecurity-mosaic-timepicker.mjs} +0 -0
  290. package/{esm2015/timepicker/public-api.js → esm2020/timepicker/public-api.mjs} +0 -0
  291. package/{esm2015/timepicker/timepicker.constants.js → esm2020/timepicker/timepicker.constants.mjs} +0 -0
  292. package/esm2020/timepicker/timepicker.directive.mjs +653 -0
  293. package/{esm2015/timepicker/timepicker.module.js → esm2020/timepicker/timepicker.module.mjs} +5 -5
  294. package/{esm2015/toggle/index.js → esm2020/toggle/index.mjs} +0 -0
  295. package/{esm2015/toggle/ptsecurity-mosaic-toggle.js → esm2020/toggle/ptsecurity-mosaic-toggle.mjs} +0 -0
  296. package/{esm2015/toggle/public-api.js → esm2020/toggle/public-api.mjs} +0 -0
  297. package/esm2020/toggle/toggle.component.mjs +158 -0
  298. package/{esm2015/toggle/toggle.module.js → esm2020/toggle/toggle.module.mjs} +5 -5
  299. package/{esm2015/tooltip/index.js → esm2020/tooltip/index.mjs} +0 -0
  300. package/{esm2015/tooltip/ptsecurity-mosaic-tooltip.js → esm2020/tooltip/ptsecurity-mosaic-tooltip.mjs} +0 -0
  301. package/{esm2015/tooltip/public-api.js → esm2020/tooltip/public-api.mjs} +0 -0
  302. package/{esm2015/tooltip/tooltip.animations.js → esm2020/tooltip/tooltip.animations.mjs} +0 -0
  303. package/esm2020/tooltip/tooltip.component.mjs +291 -0
  304. package/{esm2015/tooltip/tooltip.module.js → esm2020/tooltip/tooltip.module.mjs} +5 -5
  305. package/{esm2015/tree/control/base-tree-control.js → esm2020/tree/control/base-tree-control.mjs} +0 -0
  306. package/{esm2015/tree/control/flat-tree-control.js → esm2020/tree/control/flat-tree-control.mjs} +0 -0
  307. package/{esm2015/tree/control/nested-tree-control.js → esm2020/tree/control/nested-tree-control.mjs} +0 -0
  308. package/{esm2015/tree/control/tree-control.js → esm2020/tree/control/tree-control.mjs} +0 -0
  309. package/{esm2015/tree/data-source/flat-data-source.js → esm2020/tree/data-source/flat-data-source.mjs} +0 -0
  310. package/{esm2015/tree/data-source/nested-data-source.js → esm2020/tree/data-source/nested-data-source.mjs} +0 -0
  311. package/{esm2015/tree/index.js → esm2020/tree/index.mjs} +0 -0
  312. package/{esm2015/tree/node.js → esm2020/tree/node.mjs} +4 -4
  313. package/{esm2015/tree/outlet.js → esm2020/tree/outlet.mjs} +4 -4
  314. package/esm2020/tree/padding.directive.mjs +110 -0
  315. package/{esm2015/tree/ptsecurity-mosaic-tree.js → esm2020/tree/ptsecurity-mosaic-tree.mjs} +0 -0
  316. package/{esm2015/tree/public-api.js → esm2020/tree/public-api.mjs} +0 -0
  317. package/esm2020/tree/toggle.mjs +80 -0
  318. package/{esm2015/tree/tree-base.js → esm2020/tree/tree-base.mjs} +7 -7
  319. package/{esm2015/tree/tree-errors.js → esm2020/tree/tree-errors.mjs} +0 -0
  320. package/esm2020/tree/tree-option.component.mjs +226 -0
  321. package/esm2020/tree/tree-selection.component.mjs +530 -0
  322. package/esm2020/tree/tree.mjs +15 -0
  323. package/esm2020/tree/tree.module.mjs +53 -0
  324. package/{esm2015/tree-select/index.js → esm2020/tree-select/index.mjs} +0 -0
  325. package/{esm2015/tree-select/ptsecurity-mosaic-tree-select.js → esm2020/tree-select/ptsecurity-mosaic-tree-select.mjs} +0 -0
  326. package/{esm2015/tree-select/public-api.js → esm2020/tree-select/public-api.mjs} +0 -0
  327. package/esm2020/tree-select/tree-select.component.mjs +889 -0
  328. package/{esm2015/tree-select/tree-select.module.js → esm2020/tree-select/tree-select.module.mjs} +5 -5
  329. package/fesm2015/ptsecurity-mosaic-autocomplete.mjs +756 -0
  330. package/fesm2015/ptsecurity-mosaic-autocomplete.mjs.map +1 -0
  331. package/fesm2015/ptsecurity-mosaic-button-toggle.mjs +385 -0
  332. package/fesm2015/ptsecurity-mosaic-button-toggle.mjs.map +1 -0
  333. package/fesm2015/ptsecurity-mosaic-button.mjs +170 -0
  334. package/fesm2015/ptsecurity-mosaic-button.mjs.map +1 -0
  335. package/fesm2015/{ptsecurity-mosaic-card.js → ptsecurity-mosaic-card.mjs} +10 -18
  336. package/fesm2015/ptsecurity-mosaic-card.mjs.map +1 -0
  337. package/fesm2015/ptsecurity-mosaic-checkbox.mjs +366 -0
  338. package/fesm2015/ptsecurity-mosaic-checkbox.mjs.map +1 -0
  339. package/fesm2015/{ptsecurity-mosaic-core.js → ptsecurity-mosaic-core.mjs} +186 -241
  340. package/fesm2015/ptsecurity-mosaic-core.mjs.map +1 -0
  341. package/fesm2015/ptsecurity-mosaic-datepicker.mjs +2700 -0
  342. package/fesm2015/ptsecurity-mosaic-datepicker.mjs.map +1 -0
  343. package/fesm2015/{ptsecurity-mosaic-design-tokens.js → ptsecurity-mosaic-design-tokens.mjs} +13 -11
  344. package/fesm2015/ptsecurity-mosaic-design-tokens.mjs.map +1 -0
  345. package/fesm2015/ptsecurity-mosaic-divider.mjs +61 -0
  346. package/fesm2015/ptsecurity-mosaic-divider.mjs.map +1 -0
  347. package/fesm2015/ptsecurity-mosaic-dropdown.mjs +1106 -0
  348. package/fesm2015/ptsecurity-mosaic-dropdown.mjs.map +1 -0
  349. package/fesm2015/ptsecurity-mosaic-form-field.mjs +378 -0
  350. package/fesm2015/ptsecurity-mosaic-form-field.mjs.map +1 -0
  351. package/fesm2015/ptsecurity-mosaic-icon.mjs +88 -0
  352. package/fesm2015/ptsecurity-mosaic-icon.mjs.map +1 -0
  353. package/fesm2015/ptsecurity-mosaic-input.mjs +609 -0
  354. package/fesm2015/ptsecurity-mosaic-input.mjs.map +1 -0
  355. package/fesm2015/{ptsecurity-mosaic-link.js → ptsecurity-mosaic-link.mjs} +8 -8
  356. package/fesm2015/ptsecurity-mosaic-link.mjs.map +1 -0
  357. package/fesm2015/ptsecurity-mosaic-list.mjs +796 -0
  358. package/fesm2015/ptsecurity-mosaic-list.mjs.map +1 -0
  359. package/fesm2015/ptsecurity-mosaic-modal.mjs +842 -0
  360. package/fesm2015/ptsecurity-mosaic-modal.mjs.map +1 -0
  361. package/fesm2015/ptsecurity-mosaic-navbar.mjs +1025 -0
  362. package/fesm2015/ptsecurity-mosaic-navbar.mjs.map +1 -0
  363. package/fesm2015/ptsecurity-mosaic-popover.mjs +393 -0
  364. package/fesm2015/ptsecurity-mosaic-popover.mjs.map +1 -0
  365. package/fesm2015/{ptsecurity-mosaic-progress-bar.js → ptsecurity-mosaic-progress-bar.mjs} +10 -18
  366. package/fesm2015/ptsecurity-mosaic-progress-bar.mjs.map +1 -0
  367. package/fesm2015/ptsecurity-mosaic-progress-spinner.mjs +80 -0
  368. package/fesm2015/ptsecurity-mosaic-progress-spinner.mjs.map +1 -0
  369. package/fesm2015/ptsecurity-mosaic-radio.mjs +481 -0
  370. package/fesm2015/ptsecurity-mosaic-radio.mjs.map +1 -0
  371. package/fesm2015/ptsecurity-mosaic-select.mjs +1175 -0
  372. package/fesm2015/ptsecurity-mosaic-select.mjs.map +1 -0
  373. package/fesm2015/{ptsecurity-mosaic-sidebar.js → ptsecurity-mosaic-sidebar.mjs} +16 -25
  374. package/fesm2015/ptsecurity-mosaic-sidebar.mjs.map +1 -0
  375. package/fesm2015/ptsecurity-mosaic-sidepanel.mjs +592 -0
  376. package/fesm2015/ptsecurity-mosaic-sidepanel.mjs.map +1 -0
  377. package/fesm2015/ptsecurity-mosaic-splitter.mjs +524 -0
  378. package/fesm2015/ptsecurity-mosaic-splitter.mjs.map +1 -0
  379. package/fesm2015/{ptsecurity-mosaic-table.js → ptsecurity-mosaic-table.mjs} +8 -8
  380. package/fesm2015/ptsecurity-mosaic-table.mjs.map +1 -0
  381. package/fesm2015/ptsecurity-mosaic-tabs.mjs +1511 -0
  382. package/fesm2015/ptsecurity-mosaic-tabs.mjs.map +1 -0
  383. package/fesm2015/ptsecurity-mosaic-tags.mjs +1372 -0
  384. package/fesm2015/ptsecurity-mosaic-tags.mjs.map +1 -0
  385. package/fesm2015/ptsecurity-mosaic-textarea.mjs +293 -0
  386. package/fesm2015/ptsecurity-mosaic-textarea.mjs.map +1 -0
  387. package/fesm2015/ptsecurity-mosaic-timepicker.mjs +715 -0
  388. package/fesm2015/ptsecurity-mosaic-timepicker.mjs.map +1 -0
  389. package/fesm2015/{ptsecurity-mosaic-toggle.js → ptsecurity-mosaic-toggle.mjs} +12 -23
  390. package/fesm2015/ptsecurity-mosaic-toggle.mjs.map +1 -0
  391. package/fesm2015/ptsecurity-mosaic-tooltip.mjs +362 -0
  392. package/fesm2015/ptsecurity-mosaic-tooltip.mjs.map +1 -0
  393. package/fesm2015/ptsecurity-mosaic-tree-select.mjs +932 -0
  394. package/fesm2015/ptsecurity-mosaic-tree-select.mjs.map +1 -0
  395. package/fesm2015/ptsecurity-mosaic-tree.mjs +1707 -0
  396. package/fesm2015/ptsecurity-mosaic-tree.mjs.map +1 -0
  397. package/fesm2015/{ptsecurity-mosaic.js → ptsecurity-mosaic.mjs} +1 -1
  398. package/fesm2015/ptsecurity-mosaic.mjs.map +1 -0
  399. package/{fesm2015/ptsecurity-mosaic-autocomplete.js → fesm2020/ptsecurity-mosaic-autocomplete.mjs} +17 -26
  400. package/fesm2020/ptsecurity-mosaic-autocomplete.mjs.map +1 -0
  401. package/{fesm2015/ptsecurity-mosaic-button-toggle.js → fesm2020/ptsecurity-mosaic-button-toggle.mjs} +15 -23
  402. package/fesm2020/ptsecurity-mosaic-button-toggle.mjs.map +1 -0
  403. package/fesm2020/ptsecurity-mosaic-button.mjs +170 -0
  404. package/fesm2020/ptsecurity-mosaic-button.mjs.map +1 -0
  405. package/fesm2020/ptsecurity-mosaic-card.mjs +113 -0
  406. package/fesm2020/ptsecurity-mosaic-card.mjs.map +1 -0
  407. package/{fesm2015/ptsecurity-mosaic-checkbox.js → fesm2020/ptsecurity-mosaic-checkbox.mjs} +13 -23
  408. package/fesm2020/ptsecurity-mosaic-checkbox.mjs.map +1 -0
  409. package/fesm2020/ptsecurity-mosaic-core.mjs +2688 -0
  410. package/fesm2020/ptsecurity-mosaic-core.mjs.map +1 -0
  411. package/{fesm2015/ptsecurity-mosaic-datepicker.js → fesm2020/ptsecurity-mosaic-datepicker.mjs} +77 -121
  412. package/fesm2020/ptsecurity-mosaic-datepicker.mjs.map +1 -0
  413. package/fesm2020/ptsecurity-mosaic-design-tokens.mjs +939 -0
  414. package/fesm2020/ptsecurity-mosaic-design-tokens.mjs.map +1 -0
  415. package/fesm2020/ptsecurity-mosaic-divider.mjs +61 -0
  416. package/fesm2020/ptsecurity-mosaic-divider.mjs.map +1 -0
  417. package/{fesm2015/ptsecurity-mosaic-dropdown.js → fesm2020/ptsecurity-mosaic-dropdown.mjs} +45 -53
  418. package/fesm2020/ptsecurity-mosaic-dropdown.mjs.map +1 -0
  419. package/fesm2020/ptsecurity-mosaic-form-field.mjs +377 -0
  420. package/fesm2020/ptsecurity-mosaic-form-field.mjs.map +1 -0
  421. package/fesm2020/ptsecurity-mosaic-icon.mjs +86 -0
  422. package/fesm2020/ptsecurity-mosaic-icon.mjs.map +1 -0
  423. package/{fesm2015/ptsecurity-mosaic-input.js → fesm2020/ptsecurity-mosaic-input.mjs} +41 -27
  424. package/fesm2020/ptsecurity-mosaic-input.mjs.map +1 -0
  425. package/fesm2020/ptsecurity-mosaic-link.mjs +136 -0
  426. package/fesm2020/ptsecurity-mosaic-link.mjs.map +1 -0
  427. package/{fesm2015/ptsecurity-mosaic-list.js → fesm2020/ptsecurity-mosaic-list.mjs} +41 -70
  428. package/fesm2020/ptsecurity-mosaic-list.mjs.map +1 -0
  429. package/{fesm2015/ptsecurity-mosaic-modal.js → fesm2020/ptsecurity-mosaic-modal.mjs} +63 -59
  430. package/fesm2020/ptsecurity-mosaic-modal.mjs.map +1 -0
  431. package/fesm2020/ptsecurity-mosaic-navbar.mjs +1009 -0
  432. package/fesm2020/ptsecurity-mosaic-navbar.mjs.map +1 -0
  433. package/fesm2020/ptsecurity-mosaic-popover.mjs +389 -0
  434. package/fesm2020/ptsecurity-mosaic-popover.mjs.map +1 -0
  435. package/fesm2020/ptsecurity-mosaic-progress-bar.mjs +76 -0
  436. package/fesm2020/ptsecurity-mosaic-progress-bar.mjs.map +1 -0
  437. package/fesm2020/ptsecurity-mosaic-progress-spinner.mjs +80 -0
  438. package/fesm2020/ptsecurity-mosaic-progress-spinner.mjs.map +1 -0
  439. package/{fesm2015/ptsecurity-mosaic-radio.js → fesm2020/ptsecurity-mosaic-radio.mjs} +13 -22
  440. package/fesm2020/ptsecurity-mosaic-radio.mjs.map +1 -0
  441. package/{fesm2015/ptsecurity-mosaic-select.js → fesm2020/ptsecurity-mosaic-select.mjs} +23 -35
  442. package/fesm2020/ptsecurity-mosaic-select.mjs.map +1 -0
  443. package/fesm2020/ptsecurity-mosaic-sidebar.mjs +202 -0
  444. package/fesm2020/ptsecurity-mosaic-sidebar.mjs.map +1 -0
  445. package/{fesm2015/ptsecurity-mosaic-sidepanel.js → fesm2020/ptsecurity-mosaic-sidepanel.mjs} +57 -53
  446. package/fesm2020/ptsecurity-mosaic-sidepanel.mjs.map +1 -0
  447. package/fesm2020/ptsecurity-mosaic-splitter.mjs +524 -0
  448. package/fesm2020/ptsecurity-mosaic-splitter.mjs.map +1 -0
  449. package/fesm2020/ptsecurity-mosaic-table.mjs +50 -0
  450. package/fesm2020/ptsecurity-mosaic-table.mjs.map +1 -0
  451. package/{fesm2015/ptsecurity-mosaic-tabs.js → fesm2020/ptsecurity-mosaic-tabs.mjs} +65 -102
  452. package/fesm2020/ptsecurity-mosaic-tabs.mjs.map +1 -0
  453. package/{fesm2015/ptsecurity-mosaic-tags.js → fesm2020/ptsecurity-mosaic-tags.mjs} +29 -47
  454. package/fesm2020/ptsecurity-mosaic-tags.mjs.map +1 -0
  455. package/{fesm2015/ptsecurity-mosaic-textarea.js → fesm2020/ptsecurity-mosaic-textarea.mjs} +8 -8
  456. package/fesm2020/ptsecurity-mosaic-textarea.mjs.map +1 -0
  457. package/{fesm2015/ptsecurity-mosaic-timepicker.js → fesm2020/ptsecurity-mosaic-timepicker.mjs} +16 -15
  458. package/fesm2020/ptsecurity-mosaic-timepicker.mjs.map +1 -0
  459. package/fesm2020/ptsecurity-mosaic-toggle.mjs +180 -0
  460. package/fesm2020/ptsecurity-mosaic-toggle.mjs.map +1 -0
  461. package/fesm2020/ptsecurity-mosaic-tooltip.mjs +354 -0
  462. package/fesm2020/ptsecurity-mosaic-tooltip.mjs.map +1 -0
  463. package/{fesm2015/ptsecurity-mosaic-tree-select.js → fesm2020/ptsecurity-mosaic-tree-select.mjs} +16 -27
  464. package/fesm2020/ptsecurity-mosaic-tree-select.mjs.map +1 -0
  465. package/{fesm2015/ptsecurity-mosaic-tree.js → fesm2020/ptsecurity-mosaic-tree.mjs} +61 -108
  466. package/fesm2020/ptsecurity-mosaic-tree.mjs.map +1 -0
  467. package/fesm2020/ptsecurity-mosaic.mjs +4 -0
  468. package/fesm2020/ptsecurity-mosaic.mjs.map +1 -0
  469. package/form-field/README.md +0 -0
  470. package/form-field/cleaner.d.ts +2 -0
  471. package/form-field/package.json +5 -5
  472. package/icon/README.md +0 -0
  473. package/icon/package.json +5 -5
  474. package/input/input-number-validators.d.ts +2 -2
  475. package/input/package.json +5 -5
  476. package/link/README.md +0 -0
  477. package/link/package.json +5 -5
  478. package/list/README.md +0 -0
  479. package/list/package.json +5 -5
  480. package/modal/README.md +34 -0
  481. package/modal/modal.component.d.ts +2 -0
  482. package/modal/modal.module.d.ts +1 -1
  483. package/modal/package.json +5 -5
  484. package/navbar/README.md +41 -0
  485. package/navbar/navbar-item.component.d.ts +122 -34
  486. package/navbar/navbar.component.d.ts +37 -9
  487. package/navbar/navbar.module.d.ts +2 -1
  488. package/navbar/package.json +5 -5
  489. package/navbar/vertical-navbar.component.d.ts +15 -26
  490. package/package.json +299 -14
  491. package/popover/README.md +32 -0
  492. package/popover/package.json +5 -5
  493. package/popover/popover-confirm.component.d.ts +33 -0
  494. package/popover/popover.component.d.ts +14 -4
  495. package/popover/popover.module.d.ts +6 -3
  496. package/popover/public-api.d.ts +1 -0
  497. package/prebuilt-themes/dark-theme.css +1 -1
  498. package/prebuilt-themes/default-theme.css +1 -1
  499. package/prebuilt-visual/default-visual.css +1 -1
  500. package/progress-bar/README.md +0 -0
  501. package/progress-bar/package.json +5 -5
  502. package/progress-spinner/README.md +0 -0
  503. package/progress-spinner/package.json +5 -5
  504. package/radio/package.json +5 -5
  505. package/schematics/README.md +35 -0
  506. package/schematics/ng-update/data/index.d.ts +1 -0
  507. package/schematics/ng-update/data/index.js +10 -9
  508. package/schematics/ng-update/data/index.js.map +1 -1
  509. package/schematics/ng-update/data/symbol-removal.d.ts +2 -0
  510. package/schematics/ng-update/data/symbol-removal.js +5 -0
  511. package/schematics/ng-update/data/symbol-removal.js.map +1 -0
  512. package/schematics/ng-update/index.js +3 -3
  513. package/schematics/ng-update/index.js.map +1 -1
  514. package/schematics/ng-update/update-9.0.0/secondary-entry-points-migration.js +1 -2
  515. package/schematics/ng-update/update-9.0.0/secondary-entry-points-migration.js.map +1 -1
  516. package/schematics/ng-update/upgrade-data.js +2 -1
  517. package/schematics/ng-update/upgrade-data.js.map +1 -1
  518. package/schematics/tsconfig.lib.json +2 -2
  519. package/select/README.md +0 -0
  520. package/select/package.json +5 -5
  521. package/select/select.component.d.ts +2 -7
  522. package/sidebar/package.json +5 -5
  523. package/sidepanel/package.json +5 -5
  524. package/sidepanel/sidepanel-directives.d.ts +2 -0
  525. package/sidepanel/sidepanel.module.d.ts +2 -1
  526. package/splitter/package.json +5 -5
  527. package/splitter/splitter.component.d.ts +46 -5
  528. package/splitter/splitter.module.d.ts +1 -1
  529. package/table/README.md +0 -0
  530. package/table/package.json +5 -5
  531. package/tabs/README.md +0 -0
  532. package/tabs/package.json +5 -5
  533. package/tags/README.md +0 -0
  534. package/tags/package.json +5 -5
  535. package/textarea/README.md +0 -0
  536. package/textarea/package.json +5 -5
  537. package/timepicker/README.md +0 -0
  538. package/timepicker/package.json +5 -5
  539. package/toggle/package.json +5 -5
  540. package/tooltip/package.json +5 -5
  541. package/tooltip/tooltip.component.d.ts +12 -3
  542. package/tree/package.json +5 -5
  543. package/tree/padding.directive.d.ts +1 -1
  544. package/tree/tree-option.component.d.ts +1 -1
  545. package/tree/tree-selection.component.d.ts +2 -2
  546. package/tree/tree.module.d.ts +1 -1
  547. package/tree-select/README.md +0 -0
  548. package/tree-select/package.json +5 -5
  549. package/tree-select/tree-select.component.d.ts +2 -7
  550. package/bundles/ptsecurity-mosaic-autocomplete.umd.js +0 -1162
  551. package/bundles/ptsecurity-mosaic-autocomplete.umd.js.map +0 -1
  552. package/bundles/ptsecurity-mosaic-button-toggle.umd.js +0 -757
  553. package/bundles/ptsecurity-mosaic-button-toggle.umd.js.map +0 -1
  554. package/bundles/ptsecurity-mosaic-button.umd.js +0 -535
  555. package/bundles/ptsecurity-mosaic-button.umd.js.map +0 -1
  556. package/bundles/ptsecurity-mosaic-card.umd.js +0 -481
  557. package/bundles/ptsecurity-mosaic-card.umd.js.map +0 -1
  558. package/bundles/ptsecurity-mosaic-checkbox.umd.js +0 -764
  559. package/bundles/ptsecurity-mosaic-checkbox.umd.js.map +0 -1
  560. package/bundles/ptsecurity-mosaic-core.umd.js +0 -2887
  561. package/bundles/ptsecurity-mosaic-core.umd.js.map +0 -1
  562. package/bundles/ptsecurity-mosaic-datepicker.umd.js +0 -3357
  563. package/bundles/ptsecurity-mosaic-datepicker.umd.js.map +0 -1
  564. package/bundles/ptsecurity-mosaic-design-tokens.umd.js +0 -1872
  565. package/bundles/ptsecurity-mosaic-design-tokens.umd.js.map +0 -1
  566. package/bundles/ptsecurity-mosaic-divider.umd.js +0 -108
  567. package/bundles/ptsecurity-mosaic-divider.umd.js.map +0 -1
  568. package/bundles/ptsecurity-mosaic-dropdown.umd.js +0 -1519
  569. package/bundles/ptsecurity-mosaic-dropdown.umd.js.map +0 -1
  570. package/bundles/ptsecurity-mosaic-form-field.umd.js +0 -789
  571. package/bundles/ptsecurity-mosaic-form-field.umd.js.map +0 -1
  572. package/bundles/ptsecurity-mosaic-icon.umd.js +0 -452
  573. package/bundles/ptsecurity-mosaic-icon.umd.js.map +0 -1
  574. package/bundles/ptsecurity-mosaic-input.umd.js +0 -996
  575. package/bundles/ptsecurity-mosaic-input.umd.js.map +0 -1
  576. package/bundles/ptsecurity-mosaic-link.umd.js +0 -517
  577. package/bundles/ptsecurity-mosaic-link.umd.js.map +0 -1
  578. package/bundles/ptsecurity-mosaic-list.umd.js +0 -1250
  579. package/bundles/ptsecurity-mosaic-list.umd.js.map +0 -1
  580. package/bundles/ptsecurity-mosaic-modal.umd.js +0 -1304
  581. package/bundles/ptsecurity-mosaic-modal.umd.js.map +0 -1
  582. package/bundles/ptsecurity-mosaic-navbar.umd.js +0 -932
  583. package/bundles/ptsecurity-mosaic-navbar.umd.js.map +0 -1
  584. package/bundles/ptsecurity-mosaic-popover.umd.js +0 -655
  585. package/bundles/ptsecurity-mosaic-popover.umd.js.map +0 -1
  586. package/bundles/ptsecurity-mosaic-progress-bar.umd.js +0 -442
  587. package/bundles/ptsecurity-mosaic-progress-bar.umd.js.map +0 -1
  588. package/bundles/ptsecurity-mosaic-progress-spinner.umd.js +0 -450
  589. package/bundles/ptsecurity-mosaic-progress-spinner.umd.js.map +0 -1
  590. package/bundles/ptsecurity-mosaic-radio.umd.js +0 -903
  591. package/bundles/ptsecurity-mosaic-radio.umd.js.map +0 -1
  592. package/bundles/ptsecurity-mosaic-select.umd.js +0 -1608
  593. package/bundles/ptsecurity-mosaic-select.umd.js.map +0 -1
  594. package/bundles/ptsecurity-mosaic-sidebar.umd.js +0 -256
  595. package/bundles/ptsecurity-mosaic-sidebar.umd.js.map +0 -1
  596. package/bundles/ptsecurity-mosaic-sidepanel.umd.js +0 -950
  597. package/bundles/ptsecurity-mosaic-sidepanel.umd.js.map +0 -1
  598. package/bundles/ptsecurity-mosaic-splitter.umd.js +0 -438
  599. package/bundles/ptsecurity-mosaic-splitter.umd.js.map +0 -1
  600. package/bundles/ptsecurity-mosaic-table.umd.js +0 -83
  601. package/bundles/ptsecurity-mosaic-table.umd.js.map +0 -1
  602. package/bundles/ptsecurity-mosaic-tabs.umd.js +0 -2015
  603. package/bundles/ptsecurity-mosaic-tabs.umd.js.map +0 -1
  604. package/bundles/ptsecurity-mosaic-tags.umd.js +0 -1913
  605. package/bundles/ptsecurity-mosaic-tags.umd.js.map +0 -1
  606. package/bundles/ptsecurity-mosaic-textarea.umd.js +0 -666
  607. package/bundles/ptsecurity-mosaic-textarea.umd.js.map +0 -1
  608. package/bundles/ptsecurity-mosaic-timepicker.umd.js +0 -822
  609. package/bundles/ptsecurity-mosaic-timepicker.umd.js.map +0 -1
  610. package/bundles/ptsecurity-mosaic-toggle.umd.js +0 -559
  611. package/bundles/ptsecurity-mosaic-toggle.umd.js.map +0 -1
  612. package/bundles/ptsecurity-mosaic-tooltip.umd.js +0 -728
  613. package/bundles/ptsecurity-mosaic-tooltip.umd.js.map +0 -1
  614. package/bundles/ptsecurity-mosaic-tree-select.umd.js +0 -1370
  615. package/bundles/ptsecurity-mosaic-tree-select.umd.js.map +0 -1
  616. package/bundles/ptsecurity-mosaic-tree.umd.js +0 -2309
  617. package/bundles/ptsecurity-mosaic-tree.umd.js.map +0 -1
  618. package/bundles/ptsecurity-mosaic.umd.js +0 -11
  619. package/bundles/ptsecurity-mosaic.umd.js.map +0 -1
  620. package/esm2015/autocomplete/autocomplete.component.js +0 -163
  621. package/esm2015/button/button.component.js +0 -129
  622. package/esm2015/button/button.module.js +0 -42
  623. package/esm2015/button-toggle/button-toggle.component.js +0 -370
  624. package/esm2015/card/card.component.js +0 -88
  625. package/esm2015/checkbox/checkbox.js +0 -325
  626. package/esm2015/core/formatters/date/formatter.js +0 -287
  627. package/esm2015/core/formatters/date/templates/en-US.js +0 -280
  628. package/esm2015/core/formatters/date/templates/ru-RU.js +0 -280
  629. package/esm2015/core/formatters/number/formatter.js +0 -99
  630. package/esm2015/core/option/action.js +0 -131
  631. package/esm2015/core/option/optgroup.js +0 -40
  632. package/esm2015/core/option/option.js +0 -262
  633. package/esm2015/core/pop-up/pop-up-trigger.js +0 -273
  634. package/esm2015/core/pop-up/pop-up.js +0 -87
  635. package/esm2015/core/selection/pseudo-checkbox/pseudo-checkbox.js +0 -45
  636. package/esm2015/datepicker/calendar-body.component.js +0 -114
  637. package/esm2015/datepicker/calendar.component.js +0 -377
  638. package/esm2015/datepicker/datepicker-input.directive.js +0 -885
  639. package/esm2015/datepicker/datepicker-toggle.component.js +0 -94
  640. package/esm2015/datepicker/datepicker.component.js +0 -418
  641. package/esm2015/dropdown/dropdown-item.component.js +0 -142
  642. package/esm2015/dropdown/dropdown-trigger.directive.js +0 -478
  643. package/esm2015/dropdown/dropdown.component.js +0 -302
  644. package/esm2015/form-field/cleaner.js +0 -19
  645. package/esm2015/form-field/form-field.js +0 -224
  646. package/esm2015/icon/icon.component.js +0 -51
  647. package/esm2015/input/input-number-validators.js +0 -78
  648. package/esm2015/link/link.component.js +0 -108
  649. package/esm2015/list/list-selection.component.js +0 -708
  650. package/esm2015/list/list.component.js +0 -58
  651. package/esm2015/modal/modal.component.js +0 -506
  652. package/esm2015/modal/modal.module.js +0 -70
  653. package/esm2015/modal/modal.service.js +0 -117
  654. package/esm2015/navbar/navbar-item.component.js +0 -209
  655. package/esm2015/navbar/navbar.component.js +0 -118
  656. package/esm2015/navbar/navbar.module.js +0 -76
  657. package/esm2015/navbar/vertical-navbar.component.js +0 -140
  658. package/esm2015/popover/popover.component.js +0 -219
  659. package/esm2015/popover/popover.module.js +0 -21
  660. package/esm2015/progress-bar/progress-bar.component.js +0 -50
  661. package/esm2015/progress-spinner/progress-spinner.component.js +0 -54
  662. package/esm2015/radio/radio.component.js +0 -467
  663. package/esm2015/select/select.component.js +0 -1122
  664. package/esm2015/sidebar/sidebar.component.js +0 -155
  665. package/esm2015/sidepanel/sidepanel-container.component.js +0 -113
  666. package/esm2015/sidepanel/sidepanel-directives.js +0 -155
  667. package/esm2015/sidepanel/sidepanel.module.js +0 -70
  668. package/esm2015/sidepanel/sidepanel.service.js +0 -163
  669. package/esm2015/splitter/splitter.component.js +0 -331
  670. package/esm2015/splitter/splitter.module.js +0 -38
  671. package/esm2015/tabs/paginated-tab-header.js +0 -482
  672. package/esm2015/tabs/tab-body.component.js +0 -186
  673. package/esm2015/tabs/tab-group.component.js +0 -359
  674. package/esm2015/tabs/tab-header.component.js +0 -76
  675. package/esm2015/tabs/tab-nav-bar/tab-nav-bar.js +0 -118
  676. package/esm2015/tags/tag-list.component.js +0 -732
  677. package/esm2015/tags/tag.component.js +0 -382
  678. package/esm2015/timepicker/timepicker.directive.js +0 -652
  679. package/esm2015/toggle/toggle.component.js +0 -169
  680. package/esm2015/tooltip/tooltip.component.js +0 -260
  681. package/esm2015/tree/padding.directive.js +0 -114
  682. package/esm2015/tree/toggle.js +0 -89
  683. package/esm2015/tree/tree-option.component.js +0 -238
  684. package/esm2015/tree/tree-selection.component.js +0 -541
  685. package/esm2015/tree/tree.js +0 -23
  686. package/esm2015/tree/tree.module.js +0 -56
  687. package/esm2015/tree-select/tree-select.component.js +0 -900
  688. package/fesm2015/ptsecurity-mosaic-autocomplete.js.map +0 -1
  689. package/fesm2015/ptsecurity-mosaic-button-toggle.js.map +0 -1
  690. package/fesm2015/ptsecurity-mosaic-button.js +0 -174
  691. package/fesm2015/ptsecurity-mosaic-button.js.map +0 -1
  692. package/fesm2015/ptsecurity-mosaic-card.js.map +0 -1
  693. package/fesm2015/ptsecurity-mosaic-checkbox.js.map +0 -1
  694. package/fesm2015/ptsecurity-mosaic-core.js.map +0 -1
  695. package/fesm2015/ptsecurity-mosaic-datepicker.js.map +0 -1
  696. package/fesm2015/ptsecurity-mosaic-design-tokens.js.map +0 -1
  697. package/fesm2015/ptsecurity-mosaic-divider.js +0 -68
  698. package/fesm2015/ptsecurity-mosaic-divider.js.map +0 -1
  699. package/fesm2015/ptsecurity-mosaic-dropdown.js.map +0 -1
  700. package/fesm2015/ptsecurity-mosaic-form-field.js +0 -393
  701. package/fesm2015/ptsecurity-mosaic-form-field.js.map +0 -1
  702. package/fesm2015/ptsecurity-mosaic-icon.js +0 -93
  703. package/fesm2015/ptsecurity-mosaic-icon.js.map +0 -1
  704. package/fesm2015/ptsecurity-mosaic-input.js.map +0 -1
  705. package/fesm2015/ptsecurity-mosaic-link.js.map +0 -1
  706. package/fesm2015/ptsecurity-mosaic-list.js.map +0 -1
  707. package/fesm2015/ptsecurity-mosaic-modal.js.map +0 -1
  708. package/fesm2015/ptsecurity-mosaic-navbar.js +0 -539
  709. package/fesm2015/ptsecurity-mosaic-navbar.js.map +0 -1
  710. package/fesm2015/ptsecurity-mosaic-popover.js +0 -257
  711. package/fesm2015/ptsecurity-mosaic-popover.js.map +0 -1
  712. package/fesm2015/ptsecurity-mosaic-progress-bar.js.map +0 -1
  713. package/fesm2015/ptsecurity-mosaic-progress-spinner.js +0 -88
  714. package/fesm2015/ptsecurity-mosaic-progress-spinner.js.map +0 -1
  715. package/fesm2015/ptsecurity-mosaic-radio.js.map +0 -1
  716. package/fesm2015/ptsecurity-mosaic-select.js.map +0 -1
  717. package/fesm2015/ptsecurity-mosaic-sidebar.js.map +0 -1
  718. package/fesm2015/ptsecurity-mosaic-sidepanel.js.map +0 -1
  719. package/fesm2015/ptsecurity-mosaic-splitter.js +0 -373
  720. package/fesm2015/ptsecurity-mosaic-splitter.js.map +0 -1
  721. package/fesm2015/ptsecurity-mosaic-table.js.map +0 -1
  722. package/fesm2015/ptsecurity-mosaic-tabs.js.map +0 -1
  723. package/fesm2015/ptsecurity-mosaic-tags.js.map +0 -1
  724. package/fesm2015/ptsecurity-mosaic-textarea.js.map +0 -1
  725. package/fesm2015/ptsecurity-mosaic-timepicker.js.map +0 -1
  726. package/fesm2015/ptsecurity-mosaic-toggle.js.map +0 -1
  727. package/fesm2015/ptsecurity-mosaic-tooltip.js +0 -323
  728. package/fesm2015/ptsecurity-mosaic-tooltip.js.map +0 -1
  729. package/fesm2015/ptsecurity-mosaic-tree-select.js.map +0 -1
  730. package/fesm2015/ptsecurity-mosaic-tree.js.map +0 -1
  731. package/fesm2015/ptsecurity-mosaic.js.map +0 -1
@@ -0,0 +1,1175 @@
1
+ import * as i7 from '@angular/cdk/overlay';
2
+ import { CdkConnectedOverlay, OverlayModule } from '@angular/cdk/overlay';
3
+ import * as i8 from '@angular/common';
4
+ import { CommonModule } from '@angular/common';
5
+ import * as i0 from '@angular/core';
6
+ import { Directive, ContentChild, EventEmitter, isDevMode, Component, ViewEncapsulation, ChangeDetectionStrategy, Optional, Inject, Self, ViewChild, ViewChildren, ContentChildren, Input, Output, NgModule } from '@angular/core';
7
+ import * as i2 from '@ptsecurity/mosaic/core';
8
+ import { mixinTabIndex, mixinDisabled, mixinErrorState, getMcSelectDynamicMultipleError, getMcSelectNonFunctionValueError, setMosaicValidation, getMcSelectNonArrayValueError, SELECT_PANEL_PADDING_X, SELECT_PANEL_INDENT_PADDING_X, SELECT_PANEL_VIEWPORT_PADDING, MC_SELECT_SCROLL_STRATEGY, MC_VALIDATION, MC_OPTION_PARENT_COMPONENT, McOption, McOptgroup, mcSelectAnimations, McOptionModule, MC_SELECT_SCROLL_STRATEGY_PROVIDER } from '@ptsecurity/mosaic/core';
9
+ import * as i1 from '@ptsecurity/mosaic/form-field';
10
+ import { McFormFieldControl, McFormFieldModule } from '@ptsecurity/mosaic/form-field';
11
+ import * as i6 from '@ptsecurity/mosaic/icon';
12
+ import { McIconModule } from '@ptsecurity/mosaic/icon';
13
+ import * as i5 from '@ptsecurity/mosaic/tags';
14
+ import { McTag, McTagsModule } from '@ptsecurity/mosaic/tags';
15
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
16
+ import { SelectionModel } from '@angular/cdk/collections';
17
+ import * as i4 from '@angular/forms';
18
+ import { NG_VALIDATORS } from '@angular/forms';
19
+ import { ActiveDescendantKeyManager } from '@ptsecurity/cdk/a11y';
20
+ import { ESCAPE, SPACE, HOME, END, DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW, ENTER, PAGE_UP, PAGE_DOWN, A } from '@ptsecurity/cdk/keycodes';
21
+ import { McInput } from '@ptsecurity/mosaic/input';
22
+ import { Subscription, Subject, defer, merge } from 'rxjs';
23
+ import { take, switchMap, filter, map, distinctUntilChanged, takeUntil, startWith } from 'rxjs/operators';
24
+ import * as i3 from '@angular/cdk/bidi';
25
+
26
+ let nextUniqueId = 0;
27
+ /** Change event object that is emitted when the select value has changed. */
28
+ class McSelectChange {
29
+ constructor(source, value) {
30
+ this.source = source;
31
+ this.value = value;
32
+ }
33
+ }
34
+ class McSelectSearch {
35
+ constructor(formField) {
36
+ this.searchChangesSubscription = new Subscription();
37
+ this.isSearchChanged = false;
38
+ formField.canCleanerClearByEsc = false;
39
+ }
40
+ focus() {
41
+ this.input.focus();
42
+ }
43
+ reset() {
44
+ this.input.ngControl.reset();
45
+ }
46
+ ngAfterContentInit() {
47
+ if (!this.input) {
48
+ throw Error('McSelectSearch does not work without mcInput');
49
+ }
50
+ if (!this.input.ngControl) {
51
+ throw Error('McSelectSearch does not work without ngControl');
52
+ }
53
+ Promise.resolve().then(() => {
54
+ this.searchChangesSubscription = this.input.ngControl.valueChanges.subscribe(() => {
55
+ this.isSearchChanged = true;
56
+ });
57
+ });
58
+ }
59
+ ngOnDestroy() {
60
+ this.searchChangesSubscription.unsubscribe();
61
+ }
62
+ handleKeydown(event) {
63
+ // tslint:disable-next-line:deprecation
64
+ if (event.keyCode === ESCAPE) {
65
+ if (this.input.value) {
66
+ this.reset();
67
+ event.stopPropagation();
68
+ }
69
+ }
70
+ // tslint:disable-next-line:deprecation
71
+ if ([SPACE, HOME, END].includes(event.keyCode)) {
72
+ event.stopPropagation();
73
+ }
74
+ }
75
+ }
76
+ /** @nocollapse */ /** @nocollapse */ McSelectSearch.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: McSelectSearch, deps: [{ token: i1.McFormField }], target: i0.ɵɵFactoryTarget.Directive });
77
+ /** @nocollapse */ /** @nocollapse */ McSelectSearch.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: McSelectSearch, selector: "[mcSelectSearch]", host: { listeners: { "keydown": "handleKeydown($event)" } }, queries: [{ propertyName: "input", first: true, predicate: McInput, descendants: true }], exportAs: ["mcSelectSearch"], ngImport: i0 });
78
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: McSelectSearch, decorators: [{
79
+ type: Directive,
80
+ args: [{
81
+ selector: '[mcSelectSearch]',
82
+ exportAs: 'mcSelectSearch',
83
+ host: {
84
+ '(keydown)': 'handleKeydown($event)'
85
+ }
86
+ }]
87
+ }], ctorParameters: function () { return [{ type: i1.McFormField }]; }, propDecorators: { input: [{
88
+ type: ContentChild,
89
+ args: [McInput, { static: false }]
90
+ }] } });
91
+ class McSelectSearchEmptyResult {
92
+ }
93
+ /** @nocollapse */ /** @nocollapse */ McSelectSearchEmptyResult.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: McSelectSearchEmptyResult, deps: [], target: i0.ɵɵFactoryTarget.Directive });
94
+ /** @nocollapse */ /** @nocollapse */ McSelectSearchEmptyResult.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: McSelectSearchEmptyResult, selector: "[mc-select-search-empty-result]", exportAs: ["mcSelectSearchEmptyResult"], ngImport: i0 });
95
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: McSelectSearchEmptyResult, decorators: [{
96
+ type: Directive,
97
+ args: [{
98
+ selector: '[mc-select-search-empty-result]',
99
+ exportAs: 'mcSelectSearchEmptyResult'
100
+ }]
101
+ }] });
102
+ class McSelectTrigger {
103
+ }
104
+ /** @nocollapse */ /** @nocollapse */ McSelectTrigger.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: McSelectTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
105
+ /** @nocollapse */ /** @nocollapse */ McSelectTrigger.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: McSelectTrigger, selector: "mc-select-trigger", ngImport: i0 });
106
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: McSelectTrigger, decorators: [{
107
+ type: Directive,
108
+ args: [{ selector: 'mc-select-trigger' }]
109
+ }] });
110
+ class McSelectBase {
111
+ constructor(elementRef, defaultErrorStateMatcher, parentForm, parentFormGroup, ngControl) {
112
+ this.elementRef = elementRef;
113
+ this.defaultErrorStateMatcher = defaultErrorStateMatcher;
114
+ this.parentForm = parentForm;
115
+ this.parentFormGroup = parentFormGroup;
116
+ this.ngControl = ngControl;
117
+ }
118
+ }
119
+ // tslint:disable-next-line:naming-convention
120
+ const McSelectMixinBase = mixinTabIndex(mixinDisabled(mixinErrorState(McSelectBase)));
121
+ class McSelect extends McSelectMixinBase {
122
+ constructor(_changeDetectorRef, _ngZone, _renderer, defaultErrorStateMatcher, elementRef, rawValidators, _dir, parentForm, parentFormGroup, _parentFormField, ngControl, ngModel, formControlName, _scrollStrategyFactory, mcValidation) {
123
+ super(elementRef, defaultErrorStateMatcher, parentForm, parentFormGroup, ngControl);
124
+ this._changeDetectorRef = _changeDetectorRef;
125
+ this._ngZone = _ngZone;
126
+ this._renderer = _renderer;
127
+ this.rawValidators = rawValidators;
128
+ this._dir = _dir;
129
+ this._parentFormField = _parentFormField;
130
+ this.ngModel = ngModel;
131
+ this.formControlName = formControlName;
132
+ this._scrollStrategyFactory = _scrollStrategyFactory;
133
+ this.mcValidation = mcValidation;
134
+ /** A name for this control that can be used by `mc-form-field`. */
135
+ this.controlType = 'select';
136
+ this.hiddenItems = 0;
137
+ /** The cached font-size of the trigger element. */
138
+ this.triggerFontSize = 0;
139
+ this.previousSelectionModelSelected = [];
140
+ /** The value of the select panel's transform-origin property. */
141
+ this.transformOrigin = 'top';
142
+ /** Emits when the panel element is finished transforming in. */
143
+ this.panelDoneAnimatingStream = new Subject();
144
+ /** Strategy that will be used to handle scrolling while the select panel is open. */
145
+ this.scrollStrategy = this._scrollStrategyFactory();
146
+ /**
147
+ * The y-offset of the overlay panel in relation to the trigger's top start corner.
148
+ * This must be adjusted to align the selected option text over the trigger text.
149
+ * when the panel opens. Will change based on the y-position of the selected option.
150
+ */
151
+ this.offsetY = 0;
152
+ /**
153
+ * This position config ensures that the top "start" corner of the overlay
154
+ * is aligned with with the top "start" of the origin by default (overlapping
155
+ * the trigger completely). If the panel cannot fit below the trigger, it
156
+ * will fall back to a position above the trigger.
157
+ */
158
+ this.positions = [
159
+ {
160
+ originX: 'start',
161
+ originY: 'bottom',
162
+ overlayX: 'start',
163
+ overlayY: 'top'
164
+ },
165
+ {
166
+ originX: 'start',
167
+ originY: 'top',
168
+ overlayX: 'start',
169
+ overlayY: 'bottom'
170
+ }
171
+ ];
172
+ this.hiddenItemsText = '...ещё';
173
+ this.backdropClass = 'cdk-overlay-transparent-backdrop';
174
+ /** Combined stream of all of the child options' change events. */
175
+ this.optionSelectionChanges = defer(() => {
176
+ if (this.options) {
177
+ return merge(...this.options.map((option) => option.onSelectionChange), ...this.selectionModel.selected.map((option) => option.onSelectionChange));
178
+ }
179
+ return this._ngZone.onStable
180
+ .asObservable()
181
+ .pipe(take(1), switchMap(() => this.optionSelectionChanges));
182
+ });
183
+ /** Event emitted when the select panel has been toggled. */
184
+ this.openedChange = new EventEmitter();
185
+ /** Event emitted when the select has been opened. */
186
+ this.openedStream = this.openedChange.pipe(filter((o) => o), map(() => { }));
187
+ /** Event emitted when the select has been closed. */
188
+ this.closedStream = this.openedChange.pipe(filter((o) => !o), map(() => { }));
189
+ /** Event emitted when the selected value has been changed by the user. */
190
+ this.selectionChange = new EventEmitter();
191
+ /**
192
+ * Event that emits whenever the raw value of the select changes. This is here primarily
193
+ * to facilitate the two-way binding for the `value` input.
194
+ * @docs-private
195
+ */
196
+ this.valueChange = new EventEmitter();
197
+ this._hasBackdrop = false;
198
+ this._required = false;
199
+ this._multiple = false;
200
+ this._focused = false;
201
+ this.panelOpen = false;
202
+ this.closeSubscription = Subscription.EMPTY;
203
+ /** The scroll position of the overlay panel, calculated to center the selected option. */
204
+ this.scrollTop = 0;
205
+ /** Unique id for this input. */
206
+ this.uid = `mc-select-${nextUniqueId++}`;
207
+ /** Emits whenever the component is destroyed. */
208
+ this.destroy = new Subject();
209
+ /** `View -> model callback called when value changes` */
210
+ this.onChange = () => { };
211
+ /** `View -> model callback called when select has been touched` */
212
+ this.onTouched = () => { };
213
+ /** Comparison function to specify which option is displayed. Defaults to object equality. */
214
+ this._compareWith = (o1, o2) => o1 === o2;
215
+ if (this.ngControl) {
216
+ // Note: we provide the value accessor through here, instead of
217
+ // the `providers` to avoid running into a circular import.
218
+ this.ngControl.valueAccessor = this;
219
+ }
220
+ // Force setter to be called in case id was not specified.
221
+ this.id = this.id;
222
+ }
223
+ get hasBackdrop() {
224
+ return this._hasBackdrop;
225
+ }
226
+ set hasBackdrop(value) {
227
+ this._hasBackdrop = coerceBooleanProperty(value);
228
+ }
229
+ get placeholder() {
230
+ return this._placeholder;
231
+ }
232
+ set placeholder(value) {
233
+ this._placeholder = value;
234
+ this.stateChanges.next();
235
+ }
236
+ get required() {
237
+ return this._required;
238
+ }
239
+ set required(value) {
240
+ this._required = coerceBooleanProperty(value);
241
+ this.stateChanges.next();
242
+ }
243
+ get multiple() {
244
+ return this._multiple;
245
+ }
246
+ set multiple(value) {
247
+ if (this.selectionModel) {
248
+ throw getMcSelectDynamicMultipleError();
249
+ }
250
+ this._multiple = coerceBooleanProperty(value);
251
+ }
252
+ /**
253
+ * Function to compare the option values with the selected values. The first argument
254
+ * is a value from an option. The second is a value from the selection. A boolean
255
+ * should be returned.
256
+ */
257
+ get compareWith() {
258
+ return this._compareWith;
259
+ }
260
+ set compareWith(fn) {
261
+ /* tslint:disable-next-line:strict-type-predicates */
262
+ if (typeof fn !== 'function') {
263
+ throw getMcSelectNonFunctionValueError();
264
+ }
265
+ this._compareWith = fn;
266
+ if (this.selectionModel) {
267
+ // A different comparator means the selection could change.
268
+ this.initializeSelection();
269
+ }
270
+ }
271
+ /** Value of the select control. */
272
+ get value() {
273
+ return this._value;
274
+ }
275
+ set value(newValue) {
276
+ if (newValue !== this._value) {
277
+ this.writeValue(newValue);
278
+ this._value = newValue;
279
+ }
280
+ }
281
+ get id() {
282
+ return this._id;
283
+ }
284
+ set id(value) {
285
+ this._id = value || this.uid;
286
+ this.stateChanges.next();
287
+ }
288
+ /** Whether the select is focused. */
289
+ get focused() {
290
+ return this._focused || this.panelOpen;
291
+ }
292
+ set focused(value) {
293
+ this._focused = value;
294
+ }
295
+ get isEmptySearchResult() {
296
+ return this.search && this.options.length === 0 && !!this.search.input.value;
297
+ }
298
+ get canShowCleaner() {
299
+ return this.cleaner && this.selectionModel.hasValue();
300
+ }
301
+ get selected() {
302
+ return this.multiple ? this.selectionModel.selected : this.selectionModel.selected[0];
303
+ }
304
+ get triggerValue() {
305
+ if (this.empty) {
306
+ return '';
307
+ }
308
+ return this.selectionModel.selected[0].viewValue;
309
+ }
310
+ get triggerValues() {
311
+ if (this.empty) {
312
+ return [];
313
+ }
314
+ const selectedOptions = this.selectionModel.selected;
315
+ if (this.isRtl()) {
316
+ selectedOptions.reverse();
317
+ }
318
+ return selectedOptions;
319
+ }
320
+ get empty() {
321
+ return !this.selectionModel || this.selectionModel.isEmpty();
322
+ }
323
+ ngOnInit() {
324
+ this.selectionModel = new SelectionModel(this.multiple);
325
+ this.stateChanges.next();
326
+ // We need `distinctUntilChanged` here, because some browsers will
327
+ // fire the animation end event twice for the same animation. See:
328
+ // https://github.com/angular/angular/issues/24084
329
+ this.panelDoneAnimatingStream
330
+ .pipe(distinctUntilChanged(), takeUntil(this.destroy))
331
+ .subscribe(() => {
332
+ if (this.panelOpen) {
333
+ this.scrollTop = 0;
334
+ if (this.search) {
335
+ this.search.focus();
336
+ }
337
+ this.openedChange.emit(true);
338
+ }
339
+ else {
340
+ this.openedChange.emit(false);
341
+ this._changeDetectorRef.markForCheck();
342
+ }
343
+ });
344
+ }
345
+ ngAfterContentInit() {
346
+ if (this.mcValidation.useValidation) {
347
+ setMosaicValidation(this);
348
+ }
349
+ this.initKeyManager();
350
+ this.selectionModel.changed
351
+ .pipe(takeUntil(this.destroy))
352
+ .subscribe((event) => {
353
+ event.added.forEach((option) => option.select());
354
+ event.removed.forEach((option) => option.deselect());
355
+ });
356
+ this.options.changes
357
+ .pipe(startWith(null), takeUntil(this.destroy))
358
+ .subscribe(() => {
359
+ this.resetOptions();
360
+ this.initializeSelection();
361
+ });
362
+ }
363
+ ngAfterViewInit() {
364
+ this.tags.changes
365
+ .subscribe(() => {
366
+ setTimeout(() => this.calculateHiddenItems(), 0);
367
+ });
368
+ }
369
+ ngDoCheck() {
370
+ if (this.ngControl) {
371
+ this.updateErrorState();
372
+ }
373
+ }
374
+ ngOnChanges(changes) {
375
+ // Updating the disabled state is handled by `mixinDisabled`, but we need to additionally let
376
+ // the parent form field know to run change detection when the disabled state changes.
377
+ if (changes.disabled) {
378
+ this.stateChanges.next();
379
+ }
380
+ }
381
+ ngOnDestroy() {
382
+ this.destroy.next();
383
+ this.destroy.complete();
384
+ this.stateChanges.complete();
385
+ this.closeSubscription.unsubscribe();
386
+ }
387
+ hiddenItemsTextFormatter(hiddenItemsText, hiddenItems) {
388
+ return `${hiddenItemsText} ${hiddenItems}`;
389
+ }
390
+ clearValue($event) {
391
+ $event.stopPropagation();
392
+ this.selectionModel.clear();
393
+ this.keyManager.setActiveItem(-1);
394
+ this.propagateChanges();
395
+ }
396
+ resetSearch() {
397
+ if (!this.search) {
398
+ return;
399
+ }
400
+ this.search.reset();
401
+ /*
402
+ todo the incorrect behaviour of keyManager is possible here
403
+ to avoid first item selection (to provide correct options flipping on closed select)
404
+ we should process options update like it is the first options appearance
405
+ */
406
+ this.search.isSearchChanged = false;
407
+ }
408
+ /** Toggles the overlay panel open or closed. */
409
+ toggle() {
410
+ if (this.panelOpen) {
411
+ this.close();
412
+ }
413
+ else {
414
+ this.open();
415
+ }
416
+ }
417
+ /** Opens the overlay panel. */
418
+ open() {
419
+ var _a;
420
+ if (this.disabled || !((_a = this.options) === null || _a === void 0 ? void 0 : _a.length) || this.panelOpen) {
421
+ return;
422
+ }
423
+ this.triggerRect = this.trigger.nativeElement.getBoundingClientRect();
424
+ // Note: The computed font-size will be a string pixel value (e.g. "16px").
425
+ // `parseInt` ignores the trailing 'px' and converts this to a number.
426
+ this.triggerFontSize = parseInt(getComputedStyle(this.trigger.nativeElement)['font-size']);
427
+ this.panelOpen = true;
428
+ this.keyManager.withHorizontalOrientation(null);
429
+ this.highlightCorrectOption();
430
+ this._changeDetectorRef.markForCheck();
431
+ // Set the font size on the panel element once it exists.
432
+ this._ngZone.onStable.asObservable()
433
+ .pipe(take(1))
434
+ .subscribe(() => {
435
+ this.scrollActiveOptionIntoView();
436
+ if (this.triggerFontSize && this.overlayDir.overlayRef && this.overlayDir.overlayRef.overlayElement) {
437
+ this.overlayDir.overlayRef.overlayElement.style.fontSize = `${this.triggerFontSize}px`;
438
+ }
439
+ });
440
+ }
441
+ /** Closes the overlay panel and focuses the host element. */
442
+ close() {
443
+ if (!this.panelOpen) {
444
+ return;
445
+ }
446
+ // the order of calls is important
447
+ this.resetSearch();
448
+ this.panelOpen = false;
449
+ this.keyManager.withHorizontalOrientation(this.isRtl() ? 'rtl' : 'ltr');
450
+ this._changeDetectorRef.markForCheck();
451
+ this.onTouched();
452
+ }
453
+ /**
454
+ * Sets the select's value. Part of the ControlValueAccessor interface
455
+ * required to integrate with Angular's core forms API.
456
+ *
457
+ * @param value New value to be written to the model.
458
+ */
459
+ writeValue(value) {
460
+ if (this.options) {
461
+ this.setSelectionByValue(value);
462
+ }
463
+ }
464
+ /**
465
+ * Saves a callback function to be invoked when the select's value
466
+ * changes from user input. Part of the ControlValueAccessor interface
467
+ * required to integrate with Angular's core forms API.
468
+ *
469
+ * @param fn Callback to be triggered when the value changes.
470
+ */
471
+ registerOnChange(fn) {
472
+ this.onChange = fn;
473
+ }
474
+ /**
475
+ * Saves a callback function to be invoked when the select is blurred
476
+ * by the user. Part of the ControlValueAccessor interface required
477
+ * to integrate with Angular's core forms API.
478
+ *
479
+ * @param fn Callback to be triggered when the component has been touched.
480
+ */
481
+ registerOnTouched(fn) {
482
+ this.onTouched = fn;
483
+ }
484
+ /**
485
+ * Disables the select. Part of the ControlValueAccessor interface required
486
+ * to integrate with Angular's core forms API.
487
+ *
488
+ * @param isDisabled Sets whether the component is disabled.
489
+ */
490
+ setDisabledState(isDisabled) {
491
+ this.disabled = isDisabled;
492
+ this._changeDetectorRef.markForCheck();
493
+ this.stateChanges.next();
494
+ }
495
+ isRtl() {
496
+ return this._dir ? this._dir.value === 'rtl' : false;
497
+ }
498
+ handleKeydown(event) {
499
+ if (this.disabled) {
500
+ return;
501
+ }
502
+ if (this.panelOpen) {
503
+ this.handleOpenKeydown(event);
504
+ }
505
+ else {
506
+ this.handleClosedKeydown(event);
507
+ }
508
+ }
509
+ onFocus() {
510
+ if (!this.disabled) {
511
+ this._focused = true;
512
+ this.stateChanges.next();
513
+ }
514
+ }
515
+ /**
516
+ * Calls the touched callback only if the panel is closed. Otherwise, the trigger will
517
+ * "blur" to the panel when it opens, causing a false positive.
518
+ */
519
+ onBlur() {
520
+ this._focused = false;
521
+ if (!this.disabled && !this.panelOpen) {
522
+ this.onTouched();
523
+ this._changeDetectorRef.markForCheck();
524
+ this.stateChanges.next();
525
+ }
526
+ }
527
+ /**
528
+ * Callback that is invoked when the overlay panel has been attached.
529
+ */
530
+ onAttached() {
531
+ this.overlayDir.positionChange
532
+ .pipe(take(1))
533
+ .subscribe(() => {
534
+ this._changeDetectorRef.detectChanges();
535
+ this.setOverlayPosition();
536
+ this.optionsContainer.nativeElement.scrollTop = this.scrollTop;
537
+ this.updateScrollSize();
538
+ });
539
+ this.closeSubscription = this.closingActions()
540
+ .subscribe(() => this.close());
541
+ }
542
+ /** Returns the theme to be used on the panel. */
543
+ getPanelTheme() {
544
+ return this._parentFormField ? `mc-${this._parentFormField.color}` : '';
545
+ }
546
+ /** Focuses the select element. */
547
+ focus() {
548
+ this.elementRef.nativeElement.focus();
549
+ }
550
+ /**
551
+ * Implemented as part of McFormFieldControl.
552
+ * @docs-private
553
+ */
554
+ onContainerClick() {
555
+ this.focus();
556
+ }
557
+ /** Invoked when an option is clicked. */
558
+ onRemoveMatcherItem(option, $event) {
559
+ $event.stopPropagation();
560
+ option.deselect();
561
+ }
562
+ calculateHiddenItems() {
563
+ if (this.customTrigger || this.empty || !this.multiple) {
564
+ return;
565
+ }
566
+ let visibleItems = 0;
567
+ const totalItemsWidth = this.getTotalItemsWidthInMatcher();
568
+ let totalVisibleItemsWidth = 0;
569
+ this.tags.forEach((tag) => {
570
+ if (tag.nativeElement.offsetTop < tag.nativeElement.offsetHeight) {
571
+ totalVisibleItemsWidth += this.getItemWidth(tag.nativeElement);
572
+ visibleItems++;
573
+ }
574
+ });
575
+ this.hiddenItems = this.selected.length - visibleItems;
576
+ if (this.hiddenItems) {
577
+ const itemsCounter = this.trigger.nativeElement.querySelector('.mc-select__match-hidden-text');
578
+ const matcherList = this.trigger.nativeElement.querySelector('.mc-select__match-list');
579
+ const itemsCounterShowed = itemsCounter.offsetTop < itemsCounter.offsetHeight;
580
+ // const itemsCounterWidth: number = itemsCounter.getBoundingClientRect().width;
581
+ const itemsCounterWidth = 86;
582
+ const matcherListWidth = matcherList.getBoundingClientRect().width;
583
+ const matcherWidth = matcherListWidth + itemsCounterWidth;
584
+ if (itemsCounterShowed && (totalItemsWidth < matcherWidth)) {
585
+ this.hiddenItems = 0;
586
+ }
587
+ if (totalVisibleItemsWidth === matcherListWidth ||
588
+ (totalVisibleItemsWidth + itemsCounterWidth) < matcherListWidth) {
589
+ this._changeDetectorRef.markForCheck();
590
+ return;
591
+ }
592
+ else if (!itemsCounterShowed && (totalItemsWidth + itemsCounterWidth) > matcherWidth) {
593
+ this.hiddenItems++;
594
+ }
595
+ }
596
+ this._changeDetectorRef.markForCheck();
597
+ }
598
+ getItemHeight() {
599
+ return this.options.first ? this.options.first.getHeight() : 0;
600
+ }
601
+ closingActions() {
602
+ return merge(this.overlayDir.overlayRef.outsidePointerEvents()
603
+ .pipe(filter((event) => !this.elementRef.nativeElement.contains(event.target))), this.overlayDir.overlayRef.detachments());
604
+ }
605
+ getHeightOfOptionsContainer() {
606
+ return this.optionsContainer.nativeElement.getClientRects()[0].height;
607
+ }
608
+ updateScrollSize() {
609
+ if (!this.options.first) {
610
+ return;
611
+ }
612
+ this.keyManager.withScrollSize(Math.floor(this.getHeightOfOptionsContainer() / this.options.first.getHeight()));
613
+ }
614
+ getTotalItemsWidthInMatcher() {
615
+ const triggerClone = this.trigger.nativeElement.cloneNode(true);
616
+ triggerClone.querySelector('.mc-select__match-hidden-text').remove();
617
+ this._renderer.setStyle(triggerClone, 'position', 'absolute');
618
+ this._renderer.setStyle(triggerClone, 'visibility', 'hidden');
619
+ this._renderer.setStyle(triggerClone, 'top', '-100%');
620
+ this._renderer.setStyle(triggerClone, 'left', '0');
621
+ this._renderer.appendChild(this.trigger.nativeElement, triggerClone);
622
+ let totalItemsWidth = 0;
623
+ triggerClone.querySelectorAll('mc-tag').forEach((item) => {
624
+ totalItemsWidth += this.getItemWidth(item);
625
+ });
626
+ triggerClone.remove();
627
+ return totalItemsWidth;
628
+ }
629
+ getItemWidth(element) {
630
+ const computedStyle = window.getComputedStyle(element);
631
+ const width = parseInt(computedStyle.width);
632
+ const marginLeft = parseInt(computedStyle.marginLeft);
633
+ const marginRight = parseInt(computedStyle.marginRight);
634
+ return width + marginLeft + marginRight;
635
+ }
636
+ /** Handles keyboard events while the select is closed. */
637
+ handleClosedKeydown(event) {
638
+ /* tslint:disable-next-line */
639
+ const keyCode = event.keyCode;
640
+ const isArrowKey = [DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW].includes(keyCode);
641
+ const isOpenKey = [ENTER, SPACE].includes(keyCode);
642
+ // Open the select on ALT + arrow key to match the native <select>
643
+ if (isOpenKey || ((this.multiple || event.altKey) && isArrowKey)) {
644
+ event.preventDefault(); // prevents the page from scrolling down when pressing space
645
+ this.open();
646
+ }
647
+ else if (!this.multiple) {
648
+ this.keyManager.onKeydown(event);
649
+ }
650
+ }
651
+ /** Handles keyboard events when the selected is open. */
652
+ handleOpenKeydown(event) {
653
+ /* tslint:disable-next-line */
654
+ const keyCode = event.keyCode;
655
+ const isArrowKey = keyCode === DOWN_ARROW || keyCode === UP_ARROW;
656
+ if (isArrowKey && event.altKey) {
657
+ // Close the select on ALT + arrow key to match the native <select>
658
+ event.preventDefault();
659
+ this.close();
660
+ }
661
+ else if (keyCode === HOME) {
662
+ event.preventDefault();
663
+ this.keyManager.setFirstItemActive();
664
+ }
665
+ else if (keyCode === END) {
666
+ event.preventDefault();
667
+ this.keyManager.setLastItemActive();
668
+ }
669
+ else if (keyCode === PAGE_UP) {
670
+ event.preventDefault();
671
+ this.keyManager.setPreviousPageItemActive();
672
+ }
673
+ else if (keyCode === PAGE_DOWN) {
674
+ event.preventDefault();
675
+ this.keyManager.setNextPageItemActive();
676
+ }
677
+ else if ((keyCode === ENTER || keyCode === SPACE) && this.keyManager.activeItem) {
678
+ event.preventDefault();
679
+ this.keyManager.activeItem.selectViaInteraction();
680
+ }
681
+ else if (this._multiple && keyCode === A && event.ctrlKey) {
682
+ event.preventDefault();
683
+ const hasDeselectedOptions = this.options.some((option) => !option.selected);
684
+ this.options.forEach((option) => {
685
+ if (hasDeselectedOptions && !option.disabled) {
686
+ option.select();
687
+ }
688
+ else {
689
+ option.deselect();
690
+ }
691
+ });
692
+ }
693
+ else {
694
+ const previouslyFocusedIndex = this.keyManager.activeItemIndex;
695
+ this.keyManager.onKeydown(event);
696
+ if (this._multiple && isArrowKey && event.shiftKey && this.keyManager.activeItem &&
697
+ this.keyManager.activeItemIndex !== previouslyFocusedIndex) {
698
+ this.keyManager.activeItem.selectViaInteraction();
699
+ }
700
+ if (this.search) {
701
+ this.search.focus();
702
+ }
703
+ }
704
+ }
705
+ initializeSelection() {
706
+ // Defer setting the value in order to avoid the "Expression
707
+ // has changed after it was checked" errors from Angular.
708
+ Promise.resolve().then(() => {
709
+ this.setSelectionByValue(this.ngControl ? this.ngControl.value : this._value);
710
+ });
711
+ }
712
+ /**
713
+ * Sets the selected option based on a value. If no option can be
714
+ * found with the designated value, the select trigger is cleared.
715
+ */
716
+ setSelectionByValue(value) {
717
+ this.previousSelectionModelSelected = this.selectionModel.selected;
718
+ if (this.multiple && value) {
719
+ if (!Array.isArray(value)) {
720
+ throw getMcSelectNonArrayValueError();
721
+ }
722
+ this.selectionModel.clear();
723
+ value.forEach((currentValue) => this.selectValue(currentValue));
724
+ this.sortValues();
725
+ }
726
+ else {
727
+ this.selectionModel.clear();
728
+ const correspondingOption = this.selectValue(value);
729
+ // Shift focus to the active item. Note that we shouldn't do this in multiple
730
+ // mode, because we don't know what option the user interacted with last.
731
+ if (correspondingOption) {
732
+ this.keyManager.setActiveItem(correspondingOption);
733
+ }
734
+ }
735
+ this._changeDetectorRef.markForCheck();
736
+ }
737
+ getCorrespondOption(value) {
738
+ return [
739
+ ...this.options.toArray(),
740
+ ...this.previousSelectionModelSelected
741
+ ].find((option) => {
742
+ try {
743
+ // Treat null as a special reset value.
744
+ return option.value != null && this.compareWith(option.value, value);
745
+ }
746
+ catch (error) {
747
+ if (isDevMode()) {
748
+ // Notify developers of errors in their comparator.
749
+ console.warn(error);
750
+ }
751
+ return false;
752
+ }
753
+ });
754
+ }
755
+ /**
756
+ * Finds and selects and option based on its value.
757
+ * @returns Option that has the corresponding value.
758
+ */
759
+ selectValue(value) {
760
+ const correspondingOption = this.getCorrespondOption(value);
761
+ if (correspondingOption) {
762
+ this.selectionModel.select(correspondingOption);
763
+ }
764
+ return correspondingOption;
765
+ }
766
+ /** Sets up a key manager to listen to keyboard events on the overlay panel. */
767
+ initKeyManager() {
768
+ const typeAheadDebounce = 200;
769
+ this.keyManager = new ActiveDescendantKeyManager(this.options)
770
+ .withTypeAhead(typeAheadDebounce, this.search ? -1 : 0)
771
+ .withVerticalOrientation()
772
+ .withHorizontalOrientation(this.isRtl() ? 'rtl' : 'ltr');
773
+ this.keyManager.tabOut
774
+ .pipe(takeUntil(this.destroy))
775
+ .subscribe(() => {
776
+ // Restore focus to the trigger before closing. Ensures that the focus
777
+ // position won't be lost if the user got focus into the overlay.
778
+ this.focus();
779
+ this.close();
780
+ });
781
+ this.keyManager.change
782
+ .pipe(takeUntil(this.destroy))
783
+ .subscribe(() => {
784
+ if (this.panelOpen && this.panel) {
785
+ this.scrollActiveOptionIntoView();
786
+ }
787
+ else if (!this.panelOpen && !this.multiple && this.keyManager.activeItem) {
788
+ this.keyManager.activeItem.selectViaInteraction();
789
+ }
790
+ });
791
+ }
792
+ /** Drops current option subscriptions and IDs and resets from scratch. */
793
+ resetOptions() {
794
+ const changedOrDestroyed = merge(this.options.changes, this.destroy);
795
+ this.optionSelectionChanges
796
+ .pipe(takeUntil(changedOrDestroyed))
797
+ .subscribe((event) => {
798
+ this.onSelect(event.source, event.isUserInput);
799
+ if (this.search && this.search.isSearchChanged) {
800
+ Promise.resolve().then(() => this.keyManager.updateActiveItem(0));
801
+ this.search.isSearchChanged = false;
802
+ }
803
+ if (event.isUserInput && !this.multiple && this.panelOpen) {
804
+ this.close();
805
+ this.focus();
806
+ }
807
+ });
808
+ // Listen to changes in the internal state of the options and react accordingly.
809
+ // Handles cases like the labels of the selected options changing.
810
+ merge(...this.options.map((option) => option.stateChanges))
811
+ .pipe(takeUntil(changedOrDestroyed))
812
+ .subscribe(() => {
813
+ this._changeDetectorRef.markForCheck();
814
+ this.stateChanges.next();
815
+ });
816
+ }
817
+ /** Invoked when an option is clicked. */
818
+ onSelect(option, isUserInput) {
819
+ const wasSelected = this.selectionModel.isSelected(option);
820
+ if (option.value == null && !this._multiple) {
821
+ option.deselect();
822
+ this.selectionModel.clear();
823
+ this.propagateChanges(option.value);
824
+ }
825
+ else {
826
+ if (option.selected) {
827
+ this.selectionModel.select(option);
828
+ }
829
+ else {
830
+ this.selectionModel.deselect(option);
831
+ }
832
+ if (isUserInput) {
833
+ this.keyManager.setActiveItem(option);
834
+ }
835
+ if (this.multiple) {
836
+ this.sortValues();
837
+ if (isUserInput) {
838
+ // In case the user selected the option with their mouse, we
839
+ // want to restore focus back to the trigger, in order to
840
+ // prevent the select keyboard controls from clashing with
841
+ // the ones from `mc-option`.
842
+ // If search is avaliable then we focus search again.
843
+ if (this.search) {
844
+ this.search.focus();
845
+ }
846
+ else {
847
+ this.focus();
848
+ }
849
+ }
850
+ }
851
+ }
852
+ if (wasSelected !== this.selectionModel.isSelected(option)) {
853
+ this.propagateChanges();
854
+ }
855
+ this.stateChanges.next();
856
+ }
857
+ /** Sorts the selected values in the selected based on their order in the panel. */
858
+ sortValues() {
859
+ if (this.multiple) {
860
+ const options = this.options.toArray();
861
+ this.selectionModel.sort((a, b) => {
862
+ return this.sortComparator ? this.sortComparator(a, b, options) :
863
+ options.indexOf(a) - options.indexOf(b);
864
+ });
865
+ this.stateChanges.next();
866
+ }
867
+ }
868
+ /** Emits change event to set the model value. */
869
+ propagateChanges(fallbackValue) {
870
+ let valueToEmit = null;
871
+ if (this.multiple) {
872
+ valueToEmit = this.selected.map((option) => option.value);
873
+ }
874
+ else {
875
+ valueToEmit = this.selected ? this.selected.value : fallbackValue;
876
+ }
877
+ this._value = valueToEmit;
878
+ this.valueChange.emit(valueToEmit);
879
+ this.onChange(valueToEmit);
880
+ this.selectionChange.emit(new McSelectChange(this, valueToEmit));
881
+ this._changeDetectorRef.markForCheck();
882
+ }
883
+ /**
884
+ * Highlights the selected item. If no option is selected, it will highlight
885
+ * the first item instead.
886
+ */
887
+ highlightCorrectOption() {
888
+ if (this.keyManager) {
889
+ if (this.empty) {
890
+ this.keyManager.setFirstItemActive();
891
+ }
892
+ else {
893
+ this.keyManager.setActiveItem(this.selectionModel.selected[0]);
894
+ }
895
+ }
896
+ }
897
+ /** Scrolls the active option into view. */
898
+ scrollActiveOptionIntoView() {
899
+ if (!this.keyManager.activeItem) {
900
+ return;
901
+ }
902
+ this.keyManager.activeItem.focus();
903
+ }
904
+ /**
905
+ * Sets the x-offset of the overlay panel in relation to the trigger's top start corner.
906
+ * This must be adjusted to align the selected option text over the trigger text when
907
+ * the panel opens. Will change based on LTR or RTL text direction. Note that the offset
908
+ * can't be calculated until the panel has been attached, because we need to know the
909
+ * content width in order to constrain the panel within the viewport.
910
+ */
911
+ setOverlayPosition() {
912
+ this.resetOverlay();
913
+ const overlayRect = this.getOverlayRect();
914
+ // Window width without scrollbar
915
+ const windowWidth = this.getOverlayWidth();
916
+ const isRtl = this.isRtl();
917
+ /* tslint:disable-next-line:no-magic-numbers */
918
+ const paddingWidth = SELECT_PANEL_PADDING_X * 2;
919
+ let offsetX;
920
+ let overlayMaxWidth;
921
+ const selected = this.selectionModel.selected[0] || this.options.first;
922
+ offsetX = selected && selected.group ? SELECT_PANEL_INDENT_PADDING_X : SELECT_PANEL_PADDING_X;
923
+ // Invert the offset in LTR.
924
+ if (!isRtl) {
925
+ offsetX *= -1;
926
+ }
927
+ // Determine if select overflows on either side.
928
+ const leftOverflow = 0 - (overlayRect.left + offsetX - (isRtl ? paddingWidth : 0));
929
+ const rightOverflow = overlayRect.right + offsetX - windowWidth
930
+ + (isRtl ? 0 : paddingWidth);
931
+ // If the element overflows on either side, reduce the offset to allow it to fit.
932
+ if (leftOverflow > 0 || rightOverflow > 0) {
933
+ [offsetX, overlayMaxWidth] = this.calculateOverlayXPosition(overlayRect, windowWidth, offsetX);
934
+ this.overlayDir.overlayRef.overlayElement.style.maxWidth = `${overlayMaxWidth}px`;
935
+ }
936
+ // Set the offset directly in order to avoid having to go through change detection and
937
+ // potentially triggering "changed after it was checked" errors. Round the value to avoid
938
+ // blurry content in some browsers.
939
+ this.overlayDir.offsetX = Math.round(offsetX);
940
+ this.overlayDir.overlayRef.updatePosition();
941
+ }
942
+ calculateOverlayXPosition(overlayRect, windowWidth, basicOffsetX) {
943
+ let offsetX = basicOffsetX;
944
+ const leftIndent = this.triggerRect.left;
945
+ const rightIndent = windowWidth - this.triggerRect.right;
946
+ // Setting direction of dropdown expansion
947
+ const isRightDirection = leftIndent <= rightIndent;
948
+ let maxDropdownWidth;
949
+ let overlayMaxWidth;
950
+ const triggerWidth = this.triggerRect.width + SELECT_PANEL_INDENT_PADDING_X;
951
+ if (isRightDirection) {
952
+ maxDropdownWidth = rightIndent + triggerWidth - SELECT_PANEL_VIEWPORT_PADDING;
953
+ overlayMaxWidth = overlayRect.width < maxDropdownWidth ? overlayRect.width : maxDropdownWidth;
954
+ }
955
+ else {
956
+ let leftOffset;
957
+ maxDropdownWidth = leftIndent + triggerWidth - SELECT_PANEL_VIEWPORT_PADDING;
958
+ if (overlayRect.width < maxDropdownWidth) {
959
+ overlayMaxWidth = overlayRect.width;
960
+ leftOffset = this.triggerRect.right - overlayMaxWidth;
961
+ }
962
+ else {
963
+ overlayMaxWidth = maxDropdownWidth;
964
+ leftOffset = this.triggerRect.right - (overlayMaxWidth - SELECT_PANEL_INDENT_PADDING_X);
965
+ }
966
+ offsetX -= this.triggerRect.left - leftOffset;
967
+ }
968
+ return [offsetX, overlayMaxWidth];
969
+ }
970
+ resetOverlay() {
971
+ this.overlayDir.offsetX = 0;
972
+ this.overlayDir.overlayRef.overlayElement.style.maxWidth = 'unset';
973
+ this.overlayDir.overlayRef.updatePosition();
974
+ }
975
+ getOverlayRect() {
976
+ return this.overlayDir.overlayRef.overlayElement.getBoundingClientRect();
977
+ }
978
+ getOverlayWidth() {
979
+ return this.scrollStrategy._overlayRef.hostElement.clientWidth;
980
+ }
981
+ }
982
+ /** @nocollapse */ /** @nocollapse */ McSelect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: McSelect, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i2.ErrorStateMatcher }, { token: i0.ElementRef }, { token: NG_VALIDATORS, optional: true }, { token: i3.Directionality, optional: true }, { token: i4.NgForm, optional: true }, { token: i4.FormGroupDirective, optional: true }, { token: i1.McFormField, optional: true }, { token: i4.NgControl, optional: true, self: true }, { token: i4.NgModel, optional: true, self: true }, { token: i4.FormControlName, optional: true, self: true }, { token: MC_SELECT_SCROLL_STRATEGY }, { token: MC_VALIDATION, optional: true }], target: i0.ɵɵFactoryTarget.Component });
983
+ /** @nocollapse */ /** @nocollapse */ McSelect.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: McSelect, selector: "mc-select", inputs: { disabled: "disabled", tabIndex: "tabIndex", hiddenItemsText: "hiddenItemsText", panelClass: "panelClass", backdropClass: "backdropClass", errorStateMatcher: "errorStateMatcher", sortComparator: "sortComparator", hasBackdrop: "hasBackdrop", placeholder: "placeholder", required: "required", multiple: "multiple", compareWith: "compareWith", value: "value", id: "id", hiddenItemsTextFormatter: "hiddenItemsTextFormatter" }, outputs: { openedChange: "openedChange", openedStream: "opened", closedStream: "closed", selectionChange: "selectionChange", valueChange: "valueChange" }, host: { listeners: { "keydown": "handleKeydown($event)", "focus": "onFocus()", "blur": "onBlur()", "window:resize": "calculateHiddenItems()" }, properties: { "attr.id": "id", "attr.tabindex": "tabIndex", "attr.disabled": "disabled || null", "class.mc-disabled": "disabled", "class.mc-invalid": "errorState" }, classAttribute: "mc-select" }, providers: [
984
+ { provide: McFormFieldControl, useExisting: McSelect },
985
+ { provide: MC_OPTION_PARENT_COMPONENT, useExisting: McSelect }
986
+ ], queries: [{ propertyName: "customTrigger", first: true, predicate: McSelectTrigger, descendants: true }, { propertyName: "cleaner", first: true, predicate: ["mcSelectCleaner"], descendants: true, static: true }, { propertyName: "search", first: true, predicate: McSelectSearch, descendants: true }, { propertyName: "options", predicate: McOption, descendants: true }, { propertyName: "optionGroups", predicate: McOptgroup }], viewQueries: [{ propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true }, { propertyName: "panel", first: true, predicate: ["panel"], descendants: true }, { propertyName: "optionsContainer", first: true, predicate: ["optionsContainer"], descendants: true }, { propertyName: "overlayDir", first: true, predicate: CdkConnectedOverlay, descendants: true }, { propertyName: "tags", predicate: McTag, descendants: true }], exportAs: ["mcSelect"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div cdk-overlay-origin\n class=\"mc-select__trigger\"\n (click)=\"toggle()\"\n [class.mc-select__trigger_multiple]=\"multiple\"\n #origin=\"cdkOverlayOrigin\"\n #trigger>\n <div class=\"mc-select__matcher\" [ngSwitch]=\"empty\">\n <span class=\"mc-select__placeholder\" *ngSwitchCase=\"true\">{{ placeholder || '\\u00A0' }}</span>\n <span *ngSwitchCase=\"false\" [ngSwitch]=\"!!customTrigger\">\n <div *ngSwitchDefault [ngSwitch]=\"multiple\" class=\"mc-select__match-container\">\n <span *ngSwitchCase=\"false\" class=\"mc-select__matcher-text\">{{ triggerValue }}</span>\n <div *ngSwitchCase=\"true\" class=\"mc-select__match-list\">\n <mc-tag *ngFor=\"let option of triggerValues\"\n [disabled]=\"option.disabled || disabled\"\n [selectable]=\"false\"\n [class.mc-error]=\"errorState\">\n {{ option.viewValue }}\n <i mc-icon=\"mc-close-S_16\"\n *ngIf=\"!option.disabled && !disabled\"\n (click)=\"onRemoveMatcherItem(option, $event)\">\n </i>\n </mc-tag>\n </div>\n <div class=\"mc-select__match-hidden-text\" [style.display]=\"hiddenItems > 0 ? 'block' : 'none'\">\n {{ hiddenItemsTextFormatter(hiddenItemsText, hiddenItems) }}\n </div>\n </div>\n <ng-content select=\"mc-select-trigger\" *ngSwitchCase=\"true\"></ng-content>\n </span>\n </div>\n\n <div class=\"mc-select__cleaner\" *ngIf=\"canShowCleaner\" (click)=\"clearValue($event)\">\n <ng-content select=\"mc-cleaner\"></ng-content>\n </div>\n\n <div class=\"mc-select__arrow-wrapper\">\n <i class=\"mc-select__arrow\" mc-icon=\"mc-angle-down-L_16\"></i>\n </div>\n</div>\n\n<ng-template\n cdk-connected-overlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\"\n [cdkConnectedOverlayBackdropClass]=\"backdropClass\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayMinWidth]=\"triggerRect?.width!\"\n [cdkConnectedOverlayOffsetY]=\"offsetY\"\n (backdropClick)=\"close()\"\n (attach)=\"onAttached()\"\n (detach)=\"close()\">\n <div\n #panel\n class=\"mc-select__panel {{ getPanelTheme() }}\"\n [ngClass]=\"panelClass\"\n [style.transformOrigin]=\"transformOrigin\"\n [style.font-size.px]=\"triggerFontSize\"\n (keydown)=\"handleKeydown($event)\">\n\n <div *ngIf=\"search\" class=\"mc-select__search-container\">\n <ng-content select=\"[mcSelectSearch]\"></ng-content>\n </div>\n\n <div #optionsContainer\n class=\"mc-select__content\"\n [@fadeInContent]=\"'showing'\"\n (@fadeInContent.done)=\"panelDoneAnimatingStream.next($event.toState)\">\n\n <div *ngIf=\"isEmptySearchResult\" class=\"mc-select__no-options-message\">\n <ng-content select=\"[mc-select-search-empty-result]\"></ng-content>\n </div>\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\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}.mc-select{box-sizing:border-box;display:inline-block;width:100%;outline:none}.mc-select .mc-select__trigger{display:flex;box-sizing:border-box;position:relative;height:30px;height:var(--mc-select-size-height, 30px);cursor:pointer;padding-left:15px;padding-left:calc(var(--mc-select-size-left-padding, 16px) - var(--mc-form-field-size-border-width, 1px));padding-right:7px;padding-right:calc(var(--mc-select-size-right-padding, 8px) - var(--mc-form-field-size-border-width, 1px))}.mc-select .mc-select__trigger.mc-select__trigger_multiple{padding-left:7px;padding-left:calc(var(--mc-select-size-left-padding-multiple, 8px) - var(--mc-form-field-size-border-width, 1px))}.mc-select .mc-select__trigger.mc-select__trigger_multiple .mc-tag.mc-disabled .mc-tag__text{margin-right:7px}.mc-select.mc-disabled .mc-select__trigger{-webkit-user-select:none;user-select:none;cursor:default}.mc-select__no-options-message{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);cursor:default;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)}.mc-select__matcher{display:flex;align-items:center;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mc-select__matcher>span{width:100%}.mc-select__match-list{display:flex;flex-wrap:wrap;overflow:hidden;max-height:29px;max-height:calc(var(--mc-select-size-height, 30px) - var(--mc-select-panel-size-border-width, 1px))}.mc-select__match-list .mc-tag{margin-right:4px}.mc-select__match-container{display:flex;flex-direction:row;justify-content:space-between;width:100%}.mc-select__match-container .mc-select__match-hidden-text{flex:0 0 70px;align-self:center;padding:0 8px;text-align:right}.mc-select__arrow-wrapper{align-self:center}.mc-form-field-appearance-fill .mc-select__arrow-wrapper,.mc-form-field-appearance-standard .mc-select__arrow-wrapper{transform:translateY(-50%)}.mc-form-field-appearance-outline .mc-select__arrow-wrapper{transform:translateY(-25%)}.mc-select__panel{min-width:100%;max-width:640px;max-width:var(--mc-select-panel-size-max-width, 640px);overflow:hidden;border-width:1px;border-width:var(--mc-select-panel-size-border-width, 1px);border-style:solid;border-bottom-left-radius:3px;border-bottom-left-radius:var(--mc-select-panel-size-border-radius, 3px);border-bottom-right-radius:3px;border-bottom-right-radius:var(--mc-select-panel-size-border-radius, 3px)}.mc-select__panel .mc-optgroup-label,.mc-select__panel .mc-option{font-size:inherit;line-height:32px;line-height:var(--mc-option-size-height, 32px);height:32px;height:var(--mc-option-size-height, 32px)}.mc-select__content{max-height:232px;max-height:var(--mc-select-panel-size-max-height, 232px);padding:4px 0;padding:var(--mc-select-panel-size-vertical-padding, 4px) 0;overflow:auto}.mc-select__content .cdk-virtual-scroll-viewport{min-height:232px-8px;min-height:var(--mc-select-panel-size-max-height, 232px)-8px;max-height:232px-8px;max-height:var(--mc-select-panel-size-max-height, 232px)-8px}.mc-form-field-type-select:not(.mc-disabled) .mc-form-field-flex{cursor:pointer}.mc-select__search-container{border-bottom-width:1px;border-bottom-style:solid}\n"], components: [{ type: i5.McTag, selector: "mc-tag, [mc-tag], mc-basic-tag, [mc-basic-tag]", inputs: ["color", "selected", "value", "selectable", "removable", "disabled"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["mcTag"] }, { type: i6.McIcon, selector: "[mc-icon]", inputs: ["color"] }], directives: [{ type: i7.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { type: i8.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i8.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i8.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.McIconCSSStyler, selector: "[mc-icon]" }, { type: i7.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], animations: [
987
+ mcSelectAnimations.transformPanel,
988
+ mcSelectAnimations.fadeInContent
989
+ ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
990
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: McSelect, decorators: [{
991
+ type: Component,
992
+ args: [{ selector: 'mc-select', exportAs: 'mcSelect', inputs: ['disabled', 'tabIndex'], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
993
+ '[attr.id]': 'id',
994
+ '[attr.tabindex]': 'tabIndex',
995
+ '[attr.disabled]': 'disabled || null',
996
+ class: 'mc-select',
997
+ '[class.mc-disabled]': 'disabled',
998
+ '[class.mc-invalid]': 'errorState',
999
+ '(keydown)': 'handleKeydown($event)',
1000
+ '(focus)': 'onFocus()',
1001
+ '(blur)': 'onBlur()',
1002
+ '(window:resize)': 'calculateHiddenItems()'
1003
+ }, animations: [
1004
+ mcSelectAnimations.transformPanel,
1005
+ mcSelectAnimations.fadeInContent
1006
+ ], providers: [
1007
+ { provide: McFormFieldControl, useExisting: McSelect },
1008
+ { provide: MC_OPTION_PARENT_COMPONENT, useExisting: McSelect }
1009
+ ], template: "<div cdk-overlay-origin\n class=\"mc-select__trigger\"\n (click)=\"toggle()\"\n [class.mc-select__trigger_multiple]=\"multiple\"\n #origin=\"cdkOverlayOrigin\"\n #trigger>\n <div class=\"mc-select__matcher\" [ngSwitch]=\"empty\">\n <span class=\"mc-select__placeholder\" *ngSwitchCase=\"true\">{{ placeholder || '\\u00A0' }}</span>\n <span *ngSwitchCase=\"false\" [ngSwitch]=\"!!customTrigger\">\n <div *ngSwitchDefault [ngSwitch]=\"multiple\" class=\"mc-select__match-container\">\n <span *ngSwitchCase=\"false\" class=\"mc-select__matcher-text\">{{ triggerValue }}</span>\n <div *ngSwitchCase=\"true\" class=\"mc-select__match-list\">\n <mc-tag *ngFor=\"let option of triggerValues\"\n [disabled]=\"option.disabled || disabled\"\n [selectable]=\"false\"\n [class.mc-error]=\"errorState\">\n {{ option.viewValue }}\n <i mc-icon=\"mc-close-S_16\"\n *ngIf=\"!option.disabled && !disabled\"\n (click)=\"onRemoveMatcherItem(option, $event)\">\n </i>\n </mc-tag>\n </div>\n <div class=\"mc-select__match-hidden-text\" [style.display]=\"hiddenItems > 0 ? 'block' : 'none'\">\n {{ hiddenItemsTextFormatter(hiddenItemsText, hiddenItems) }}\n </div>\n </div>\n <ng-content select=\"mc-select-trigger\" *ngSwitchCase=\"true\"></ng-content>\n </span>\n </div>\n\n <div class=\"mc-select__cleaner\" *ngIf=\"canShowCleaner\" (click)=\"clearValue($event)\">\n <ng-content select=\"mc-cleaner\"></ng-content>\n </div>\n\n <div class=\"mc-select__arrow-wrapper\">\n <i class=\"mc-select__arrow\" mc-icon=\"mc-angle-down-L_16\"></i>\n </div>\n</div>\n\n<ng-template\n cdk-connected-overlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\"\n [cdkConnectedOverlayBackdropClass]=\"backdropClass\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"panelOpen\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayMinWidth]=\"triggerRect?.width!\"\n [cdkConnectedOverlayOffsetY]=\"offsetY\"\n (backdropClick)=\"close()\"\n (attach)=\"onAttached()\"\n (detach)=\"close()\">\n <div\n #panel\n class=\"mc-select__panel {{ getPanelTheme() }}\"\n [ngClass]=\"panelClass\"\n [style.transformOrigin]=\"transformOrigin\"\n [style.font-size.px]=\"triggerFontSize\"\n (keydown)=\"handleKeydown($event)\">\n\n <div *ngIf=\"search\" class=\"mc-select__search-container\">\n <ng-content select=\"[mcSelectSearch]\"></ng-content>\n </div>\n\n <div #optionsContainer\n class=\"mc-select__content\"\n [@fadeInContent]=\"'showing'\"\n (@fadeInContent.done)=\"panelDoneAnimatingStream.next($event.toState)\">\n\n <div *ngIf=\"isEmptySearchResult\" class=\"mc-select__no-options-message\">\n <ng-content select=\"[mc-select-search-empty-result]\"></ng-content>\n </div>\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\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}.mc-select{box-sizing:border-box;display:inline-block;width:100%;outline:none}.mc-select .mc-select__trigger{display:flex;box-sizing:border-box;position:relative;height:30px;height:var(--mc-select-size-height, 30px);cursor:pointer;padding-left:15px;padding-left:calc(var(--mc-select-size-left-padding, 16px) - var(--mc-form-field-size-border-width, 1px));padding-right:7px;padding-right:calc(var(--mc-select-size-right-padding, 8px) - var(--mc-form-field-size-border-width, 1px))}.mc-select .mc-select__trigger.mc-select__trigger_multiple{padding-left:7px;padding-left:calc(var(--mc-select-size-left-padding-multiple, 8px) - var(--mc-form-field-size-border-width, 1px))}.mc-select .mc-select__trigger.mc-select__trigger_multiple .mc-tag.mc-disabled .mc-tag__text{margin-right:7px}.mc-select.mc-disabled .mc-select__trigger{-webkit-user-select:none;user-select:none;cursor:default}.mc-select__no-options-message{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);cursor:default;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)}.mc-select__matcher{display:flex;align-items:center;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mc-select__matcher>span{width:100%}.mc-select__match-list{display:flex;flex-wrap:wrap;overflow:hidden;max-height:29px;max-height:calc(var(--mc-select-size-height, 30px) - var(--mc-select-panel-size-border-width, 1px))}.mc-select__match-list .mc-tag{margin-right:4px}.mc-select__match-container{display:flex;flex-direction:row;justify-content:space-between;width:100%}.mc-select__match-container .mc-select__match-hidden-text{flex:0 0 70px;align-self:center;padding:0 8px;text-align:right}.mc-select__arrow-wrapper{align-self:center}.mc-form-field-appearance-fill .mc-select__arrow-wrapper,.mc-form-field-appearance-standard .mc-select__arrow-wrapper{transform:translateY(-50%)}.mc-form-field-appearance-outline .mc-select__arrow-wrapper{transform:translateY(-25%)}.mc-select__panel{min-width:100%;max-width:640px;max-width:var(--mc-select-panel-size-max-width, 640px);overflow:hidden;border-width:1px;border-width:var(--mc-select-panel-size-border-width, 1px);border-style:solid;border-bottom-left-radius:3px;border-bottom-left-radius:var(--mc-select-panel-size-border-radius, 3px);border-bottom-right-radius:3px;border-bottom-right-radius:var(--mc-select-panel-size-border-radius, 3px)}.mc-select__panel .mc-optgroup-label,.mc-select__panel .mc-option{font-size:inherit;line-height:32px;line-height:var(--mc-option-size-height, 32px);height:32px;height:var(--mc-option-size-height, 32px)}.mc-select__content{max-height:232px;max-height:var(--mc-select-panel-size-max-height, 232px);padding:4px 0;padding:var(--mc-select-panel-size-vertical-padding, 4px) 0;overflow:auto}.mc-select__content .cdk-virtual-scroll-viewport{min-height:232px-8px;min-height:var(--mc-select-panel-size-max-height, 232px)-8px;max-height:232px-8px;max-height:var(--mc-select-panel-size-max-height, 232px)-8px}.mc-form-field-type-select:not(.mc-disabled) .mc-form-field-flex{cursor:pointer}.mc-select__search-container{border-bottom-width:1px;border-bottom-style:solid}\n"] }]
1010
+ }], ctorParameters: function () {
1011
+ return [{ type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i2.ErrorStateMatcher }, { type: i0.ElementRef }, { type: undefined, decorators: [{
1012
+ type: Optional
1013
+ }, {
1014
+ type: Inject,
1015
+ args: [NG_VALIDATORS]
1016
+ }] }, { type: i3.Directionality, decorators: [{
1017
+ type: Optional
1018
+ }] }, { type: i4.NgForm, decorators: [{
1019
+ type: Optional
1020
+ }] }, { type: i4.FormGroupDirective, decorators: [{
1021
+ type: Optional
1022
+ }] }, { type: i1.McFormField, decorators: [{
1023
+ type: Optional
1024
+ }] }, { type: i4.NgControl, decorators: [{
1025
+ type: Self
1026
+ }, {
1027
+ type: Optional
1028
+ }] }, { type: i4.NgModel, decorators: [{
1029
+ type: Optional
1030
+ }, {
1031
+ type: Self
1032
+ }] }, { type: i4.FormControlName, decorators: [{
1033
+ type: Optional
1034
+ }, {
1035
+ type: Self
1036
+ }] }, { type: undefined, decorators: [{
1037
+ type: Inject,
1038
+ args: [MC_SELECT_SCROLL_STRATEGY]
1039
+ }] }, { type: undefined, decorators: [{
1040
+ type: Optional
1041
+ }, {
1042
+ type: Inject,
1043
+ args: [MC_VALIDATION]
1044
+ }] }];
1045
+ }, propDecorators: { trigger: [{
1046
+ type: ViewChild,
1047
+ args: ['trigger', { static: false }]
1048
+ }], panel: [{
1049
+ type: ViewChild,
1050
+ args: ['panel', { static: false }]
1051
+ }], optionsContainer: [{
1052
+ type: ViewChild,
1053
+ args: ['optionsContainer', { static: false }]
1054
+ }], overlayDir: [{
1055
+ type: ViewChild,
1056
+ args: [CdkConnectedOverlay, { static: false }]
1057
+ }], tags: [{
1058
+ type: ViewChildren,
1059
+ args: [McTag]
1060
+ }], customTrigger: [{
1061
+ type: ContentChild,
1062
+ args: [McSelectTrigger, { static: false }]
1063
+ }], cleaner: [{
1064
+ type: ContentChild,
1065
+ args: ['mcSelectCleaner', { static: true }]
1066
+ }], options: [{
1067
+ type: ContentChildren,
1068
+ args: [McOption, { descendants: true }]
1069
+ }], optionGroups: [{
1070
+ type: ContentChildren,
1071
+ args: [McOptgroup]
1072
+ }], search: [{
1073
+ type: ContentChild,
1074
+ args: [McSelectSearch, { static: false }]
1075
+ }], hiddenItemsText: [{
1076
+ type: Input
1077
+ }], panelClass: [{
1078
+ type: Input
1079
+ }], backdropClass: [{
1080
+ type: Input
1081
+ }], errorStateMatcher: [{
1082
+ type: Input
1083
+ }], sortComparator: [{
1084
+ type: Input
1085
+ }], openedChange: [{
1086
+ type: Output
1087
+ }], openedStream: [{
1088
+ type: Output,
1089
+ args: ['opened']
1090
+ }], closedStream: [{
1091
+ type: Output,
1092
+ args: ['closed']
1093
+ }], selectionChange: [{
1094
+ type: Output
1095
+ }], valueChange: [{
1096
+ type: Output
1097
+ }], hasBackdrop: [{
1098
+ type: Input
1099
+ }], placeholder: [{
1100
+ type: Input
1101
+ }], required: [{
1102
+ type: Input
1103
+ }], multiple: [{
1104
+ type: Input
1105
+ }], compareWith: [{
1106
+ type: Input
1107
+ }], value: [{
1108
+ type: Input
1109
+ }], id: [{
1110
+ type: Input
1111
+ }], hiddenItemsTextFormatter: [{
1112
+ type: Input
1113
+ }] } });
1114
+
1115
+ class McSelectModule {
1116
+ }
1117
+ /** @nocollapse */ /** @nocollapse */ McSelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: McSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1118
+ /** @nocollapse */ /** @nocollapse */ McSelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: McSelectModule, declarations: [McSelect,
1119
+ McSelectSearch,
1120
+ McSelectSearchEmptyResult,
1121
+ McSelectTrigger], imports: [CommonModule,
1122
+ OverlayModule,
1123
+ McOptionModule,
1124
+ McIconModule,
1125
+ McTagsModule], exports: [McFormFieldModule,
1126
+ McSelect,
1127
+ McSelectSearch,
1128
+ McSelectSearchEmptyResult,
1129
+ McSelectTrigger,
1130
+ McOptionModule,
1131
+ CommonModule] });
1132
+ /** @nocollapse */ /** @nocollapse */ McSelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: McSelectModule, providers: [MC_SELECT_SCROLL_STRATEGY_PROVIDER], imports: [[
1133
+ CommonModule,
1134
+ OverlayModule,
1135
+ McOptionModule,
1136
+ McIconModule,
1137
+ McTagsModule
1138
+ ], McFormFieldModule,
1139
+ McOptionModule,
1140
+ CommonModule] });
1141
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: McSelectModule, decorators: [{
1142
+ type: NgModule,
1143
+ args: [{
1144
+ imports: [
1145
+ CommonModule,
1146
+ OverlayModule,
1147
+ McOptionModule,
1148
+ McIconModule,
1149
+ McTagsModule
1150
+ ],
1151
+ exports: [
1152
+ McFormFieldModule,
1153
+ McSelect,
1154
+ McSelectSearch,
1155
+ McSelectSearchEmptyResult,
1156
+ McSelectTrigger,
1157
+ McOptionModule,
1158
+ CommonModule
1159
+ ],
1160
+ declarations: [
1161
+ McSelect,
1162
+ McSelectSearch,
1163
+ McSelectSearchEmptyResult,
1164
+ McSelectTrigger
1165
+ ],
1166
+ providers: [MC_SELECT_SCROLL_STRATEGY_PROVIDER]
1167
+ }]
1168
+ }] });
1169
+
1170
+ /**
1171
+ * Generated bundle index. Do not edit.
1172
+ */
1173
+
1174
+ export { McSelect, McSelectBase, McSelectChange, McSelectModule, McSelectSearch, McSelectSearchEmptyResult, McSelectTrigger };
1175
+ //# sourceMappingURL=ptsecurity-mosaic-select.mjs.map