@ptsecurity/mosaic 13.6.1 → 13.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (907) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +6 -6
  3. package/_theming.scss +7238 -7141
  4. package/_visual.scss +2724 -2695
  5. package/autocomplete/autocomplete-origin.directive.d.ts +12 -12
  6. package/autocomplete/autocomplete-trigger.directive.d.ts +167 -167
  7. package/autocomplete/autocomplete.component.d.ts +73 -73
  8. package/autocomplete/autocomplete.module.d.ts +12 -12
  9. package/autocomplete/index.d.ts +1 -1
  10. package/autocomplete/ptsecurity-mosaic-autocomplete.d.ts +5 -5
  11. package/autocomplete/public-api.d.ts +4 -4
  12. package/button/button.component.d.ts +40 -40
  13. package/button/button.module.d.ts +10 -10
  14. package/button/index.d.ts +1 -1
  15. package/button/ptsecurity-mosaic-button.d.ts +5 -5
  16. package/button/public-api.d.ts +2 -2
  17. package/button-toggle/button-toggle.component.d.ts +141 -141
  18. package/button-toggle/button-toggle.module.d.ts +9 -9
  19. package/button-toggle/index.d.ts +1 -1
  20. package/button-toggle/ptsecurity-mosaic-button-toggle.d.ts +5 -5
  21. package/button-toggle/public-api.d.ts +2 -2
  22. package/card/card.component.d.ts +26 -26
  23. package/card/card.module.d.ts +10 -10
  24. package/card/index.d.ts +1 -1
  25. package/card/ptsecurity-mosaic-card.d.ts +5 -5
  26. package/card/public-api.d.ts +2 -2
  27. package/checkbox/README.md +1 -1
  28. package/checkbox/checkbox-config.d.ts +13 -13
  29. package/checkbox/checkbox-module.d.ts +9 -9
  30. package/checkbox/checkbox-required-validator.d.ts +13 -13
  31. package/checkbox/checkbox.d.ts +140 -140
  32. package/checkbox/index.d.ts +1 -1
  33. package/checkbox/ptsecurity-mosaic-checkbox.d.ts +5 -5
  34. package/checkbox/public-api.d.ts +4 -4
  35. package/core/animation/animation.d.ts +6 -6
  36. package/core/animation/fade-animations.d.ts +2 -2
  37. package/core/animation/index.d.ts +3 -3
  38. package/core/animation/select-animations.d.ts +12 -12
  39. package/core/common-behaviors/color.d.ts +19 -19
  40. package/core/common-behaviors/common-module.d.ts +25 -25
  41. package/core/common-behaviors/constructor.d.ts +9 -9
  42. package/core/common-behaviors/disabled.d.ts +8 -8
  43. package/core/common-behaviors/error-state.d.ts +25 -25
  44. package/core/common-behaviors/index.d.ts +5 -5
  45. package/core/common-behaviors/tabindex.d.ts +8 -8
  46. package/core/error/error-options.d.ts +14 -14
  47. package/core/formatters/date/formatter.d.ts +203 -203
  48. package/core/formatters/date/templates/en-US.d.ts +74 -74
  49. package/core/formatters/date/templates/ru-RU.d.ts +74 -74
  50. package/core/formatters/index.d.ts +9 -9
  51. package/core/formatters/number/formatter.d.ts +27 -27
  52. package/core/forms/forms-module.d.ts +7 -7
  53. package/core/forms/forms.directive.d.ts +22 -22
  54. package/core/forms/index.d.ts +2 -2
  55. package/core/highlight/highlight.pipe.d.ts +7 -7
  56. package/core/highlight/index.d.ts +9 -9
  57. package/core/index.d.ts +1 -1
  58. package/core/label/label-options.d.ts +13 -13
  59. package/core/line/line.d.ts +28 -28
  60. package/core/option/action.d.ts +42 -42
  61. package/core/option/index.d.ts +4 -4
  62. package/core/option/optgroup.d.ts +16 -16
  63. package/core/option/option-module.d.ts +11 -11
  64. package/core/option/option.d.ts +115 -115
  65. package/core/overlay/overlay-position-map.d.ts +34 -34
  66. package/core/pop-up/constants.d.ts +29 -29
  67. package/core/pop-up/index.d.ts +3 -3
  68. package/core/pop-up/pop-up-trigger.d.ts +70 -70
  69. package/core/pop-up/pop-up.d.ts +36 -36
  70. package/core/ptsecurity-mosaic-core.d.ts +5 -5
  71. package/core/public-api.d.ts +17 -17
  72. package/core/select/constants.d.ts +23 -23
  73. package/core/select/errors.d.ts +19 -19
  74. package/core/select/events.d.ts +1 -1
  75. package/core/select/index.d.ts +3 -3
  76. package/core/selection/constants.d.ts +4 -4
  77. package/core/selection/index.d.ts +3 -3
  78. package/core/selection/pseudo-checkbox/pseudo-checkbox.d.ts +30 -30
  79. package/core/selection/pseudo-checkbox/pseudo-checkbox.module.d.ts +8 -8
  80. package/core/services/measure-scrollbar.service.d.ts +11 -11
  81. package/core/utils/index.d.ts +1 -1
  82. package/core/utils/public-api.d.ts +1 -1
  83. package/core/utils/utils.d.ts +2 -2
  84. package/core/validation/index.d.ts +1 -1
  85. package/core/validation/validation.d.ts +18 -18
  86. package/core/version.d.ts +2 -2
  87. package/datepicker/calendar-body.component.d.ts +63 -63
  88. package/datepicker/calendar.component.d.ts +151 -151
  89. package/datepicker/datepicker-animations.d.ts +9 -9
  90. package/datepicker/datepicker-errors.d.ts +2 -2
  91. package/datepicker/datepicker-input.directive.d.ts +178 -178
  92. package/datepicker/datepicker-intl.d.ts +32 -32
  93. package/datepicker/datepicker-module.d.ts +20 -20
  94. package/datepicker/datepicker-toggle.component.d.ts +35 -35
  95. package/datepicker/datepicker.component.d.ts +158 -158
  96. package/datepicker/index.d.ts +1 -1
  97. package/datepicker/month-view.component.d.ts +93 -93
  98. package/datepicker/multi-year-view.component.d.ts +72 -72
  99. package/datepicker/ptsecurity-mosaic-datepicker.d.ts +5 -5
  100. package/datepicker/public-api.d.ts +11 -11
  101. package/datepicker/year-view.component.d.ts +90 -90
  102. package/design-tokens/index.d.ts +1 -1
  103. package/design-tokens/legacy-2017/tokens/components/alert.json5 +83 -83
  104. package/design-tokens/legacy-2017/tokens/components/autocomplete.json5 +11 -11
  105. package/design-tokens/legacy-2017/tokens/components/badge.json5 +174 -174
  106. package/design-tokens/legacy-2017/tokens/components/button-toggle.json5 +10 -10
  107. package/design-tokens/legacy-2017/tokens/components/button.json5 +142 -142
  108. package/design-tokens/legacy-2017/tokens/components/card.json5 +51 -51
  109. package/design-tokens/legacy-2017/tokens/components/checkbox.json5 +97 -97
  110. package/design-tokens/legacy-2017/tokens/components/datepicker.json5 +64 -64
  111. package/design-tokens/legacy-2017/tokens/components/divider.json5 +14 -14
  112. package/design-tokens/legacy-2017/tokens/components/dl.json5 +38 -38
  113. package/design-tokens/legacy-2017/tokens/components/dropdown.json5 +48 -48
  114. package/design-tokens/legacy-2017/tokens/components/form-field.json5 +92 -92
  115. package/design-tokens/legacy-2017/tokens/components/forms.json5 +52 -52
  116. package/design-tokens/legacy-2017/tokens/components/icon.json5 +104 -104
  117. package/design-tokens/legacy-2017/tokens/components/input.json5 +12 -12
  118. package/design-tokens/legacy-2017/tokens/components/link.json5 +50 -50
  119. package/design-tokens/legacy-2017/tokens/components/list.json5 +13 -13
  120. package/design-tokens/legacy-2017/tokens/components/loader-overlay.json5 +23 -0
  121. package/design-tokens/legacy-2017/tokens/components/modal.json5 +81 -81
  122. package/design-tokens/legacy-2017/tokens/components/navbar.json5 +70 -70
  123. package/design-tokens/legacy-2017/tokens/components/optgroup.json5 +10 -10
  124. package/design-tokens/legacy-2017/tokens/components/option.json5 +12 -12
  125. package/design-tokens/legacy-2017/tokens/components/popover.json5 +68 -68
  126. package/design-tokens/legacy-2017/tokens/components/popup.json5 +16 -16
  127. package/design-tokens/legacy-2017/tokens/components/progress-bar.json5 +13 -13
  128. package/design-tokens/legacy-2017/tokens/components/progress-spinner.json5 +7 -7
  129. package/design-tokens/legacy-2017/tokens/components/radio.json5 +45 -45
  130. package/design-tokens/legacy-2017/tokens/components/select.json5 +24 -24
  131. package/design-tokens/legacy-2017/tokens/components/sidepanel.json5 +44 -44
  132. package/design-tokens/legacy-2017/tokens/components/table.json5 +15 -15
  133. package/design-tokens/legacy-2017/tokens/components/tabs.json5 +101 -101
  134. package/design-tokens/legacy-2017/tokens/components/tags.json5 +134 -134
  135. package/design-tokens/legacy-2017/tokens/components/textarea.json5 +12 -12
  136. package/design-tokens/legacy-2017/tokens/components/timepicker.json5 +7 -7
  137. package/design-tokens/legacy-2017/tokens/components/toggle.json5 +79 -79
  138. package/design-tokens/legacy-2017/tokens/components/tooltip.json5 +83 -83
  139. package/design-tokens/legacy-2017/tokens/components/tree.json5 +15 -15
  140. package/design-tokens/legacy-2017/tokens/properties/aliases.json5 +3 -3
  141. package/design-tokens/legacy-2017/tokens/properties/colors.json5 +119 -119
  142. package/design-tokens/legacy-2017/tokens/properties/font.json5 +12 -12
  143. package/design-tokens/legacy-2017/tokens/properties/globals.json5 +49 -49
  144. package/design-tokens/legacy-2017/tokens/properties/padding.json5 +3 -3
  145. package/design-tokens/legacy-2017/tokens/properties/palette.json5 +163 -163
  146. package/design-tokens/legacy-2017/tokens/properties/typography.json5 +175 -175
  147. package/design-tokens/legacy-2017/tokens.d.ts +7873 -7844
  148. package/design-tokens/pt-2022/tokens/components/alert.json5 +83 -83
  149. package/design-tokens/pt-2022/tokens/components/autocomplete.json5 +11 -11
  150. package/design-tokens/pt-2022/tokens/components/badge.json5 +174 -174
  151. package/design-tokens/pt-2022/tokens/components/button-toggle.json5 +10 -10
  152. package/design-tokens/pt-2022/tokens/components/button.json5 +142 -142
  153. package/design-tokens/pt-2022/tokens/components/card.json5 +51 -51
  154. package/design-tokens/pt-2022/tokens/components/checkbox.json5 +97 -97
  155. package/design-tokens/pt-2022/tokens/components/datepicker.json5 +64 -64
  156. package/design-tokens/pt-2022/tokens/components/divider.json5 +14 -14
  157. package/design-tokens/pt-2022/tokens/components/dl.json5 +38 -38
  158. package/design-tokens/pt-2022/tokens/components/dropdown.json5 +48 -48
  159. package/design-tokens/pt-2022/tokens/components/form-field.json5 +92 -92
  160. package/design-tokens/pt-2022/tokens/components/forms.json5 +52 -52
  161. package/design-tokens/pt-2022/tokens/components/icon.json5 +104 -104
  162. package/design-tokens/pt-2022/tokens/components/input.json5 +12 -12
  163. package/design-tokens/pt-2022/tokens/components/link.json5 +50 -50
  164. package/design-tokens/pt-2022/tokens/components/list.json5 +13 -13
  165. package/design-tokens/pt-2022/tokens/components/loader-overlay.json5 +23 -0
  166. package/design-tokens/pt-2022/tokens/components/modal.json5 +81 -81
  167. package/design-tokens/pt-2022/tokens/components/navbar.json5 +70 -70
  168. package/design-tokens/pt-2022/tokens/components/optgroup.json5 +10 -10
  169. package/design-tokens/pt-2022/tokens/components/option.json5 +12 -12
  170. package/design-tokens/pt-2022/tokens/components/popover.json5 +68 -68
  171. package/design-tokens/pt-2022/tokens/components/popup.json5 +16 -16
  172. package/design-tokens/pt-2022/tokens/components/progress-bar.json5 +13 -13
  173. package/design-tokens/pt-2022/tokens/components/progress-spinner.json5 +7 -7
  174. package/design-tokens/pt-2022/tokens/components/radio.json5 +45 -45
  175. package/design-tokens/pt-2022/tokens/components/select.json5 +24 -24
  176. package/design-tokens/pt-2022/tokens/components/sidepanel.json5 +44 -44
  177. package/design-tokens/pt-2022/tokens/components/table.json5 +15 -15
  178. package/design-tokens/pt-2022/tokens/components/tabs.json5 +101 -101
  179. package/design-tokens/pt-2022/tokens/components/tags.json5 +137 -137
  180. package/design-tokens/pt-2022/tokens/components/textarea.json5 +12 -12
  181. package/design-tokens/pt-2022/tokens/components/timepicker.json5 +7 -7
  182. package/design-tokens/pt-2022/tokens/components/toggle.json5 +79 -79
  183. package/design-tokens/pt-2022/tokens/components/tooltip.json5 +83 -83
  184. package/design-tokens/pt-2022/tokens/components/tree.json5 +15 -15
  185. package/design-tokens/pt-2022/tokens/properties/aliases.json5 +3 -3
  186. package/design-tokens/pt-2022/tokens/properties/colors.json5 +122 -122
  187. package/design-tokens/pt-2022/tokens/properties/font.json5 +15 -15
  188. package/design-tokens/pt-2022/tokens/properties/globals.json5 +49 -49
  189. package/design-tokens/pt-2022/tokens/properties/padding.json5 +3 -3
  190. package/design-tokens/pt-2022/tokens/properties/palette.json5 +232 -232
  191. package/design-tokens/pt-2022/tokens/properties/typography.json5 +175 -175
  192. package/design-tokens/pt-2022/tokens.d.ts +9205 -9176
  193. package/design-tokens/ptsecurity-mosaic-design-tokens.d.ts +5 -5
  194. package/design-tokens/public-api.d.ts +3 -3
  195. package/design-tokens/style-dictionary/build.js +76 -63
  196. package/design-tokens/style-dictionary/configs/css.js +13 -13
  197. package/design-tokens/style-dictionary/configs/figma.js +11 -0
  198. package/design-tokens/style-dictionary/configs/index.js +48 -48
  199. package/design-tokens/style-dictionary/configs/js.js +9 -9
  200. package/design-tokens/style-dictionary/configs/scss.js +23 -23
  201. package/design-tokens/style-dictionary/figma-types.js +41 -0
  202. package/design-tokens/style-dictionary/filters/color.js +7 -7
  203. package/design-tokens/style-dictionary/filters/palette.js +7 -7
  204. package/design-tokens/style-dictionary/filters/size.js +7 -7
  205. package/design-tokens/style-dictionary/filters/typography.js +7 -7
  206. package/design-tokens/style-dictionary/formats/figma.js +104 -0
  207. package/design-tokens/style-dictionary/formats/palette.js +25 -25
  208. package/design-tokens/style-dictionary/formats/typography.js +52 -52
  209. package/design-tokens/style-dictionary/transformGroups/css.js +13 -13
  210. package/design-tokens/style-dictionary/transformGroups/figma.js +21 -0
  211. package/design-tokens/style-dictionary/transformGroups/scss.js +12 -12
  212. package/design-tokens/style-dictionary/transformGroups/ts.js +11 -11
  213. package/design-tokens/style-dictionary/transforms/attribute/figma-border.js +18 -0
  214. package/design-tokens/style-dictionary/transforms/attribute/figma-color.js +25 -0
  215. package/design-tokens/style-dictionary/transforms/attribute/figma-default.js +10 -0
  216. package/design-tokens/style-dictionary/transforms/attribute/figma-font.js +31 -0
  217. package/design-tokens/style-dictionary/transforms/attribute/figma-group.js +17 -0
  218. package/design-tokens/style-dictionary/transforms/attribute/figma-opacity.js +10 -0
  219. package/design-tokens/style-dictionary/transforms/attribute/figma-shadow.js +66 -0
  220. package/design-tokens/style-dictionary/transforms/attribute/figma-sizing.js +16 -0
  221. package/design-tokens/style-dictionary/transforms/attribute/figma-spacing.js +15 -0
  222. package/design-tokens/style-dictionary/transforms/attribute/figma-typography.js +24 -0
  223. package/design-tokens/style-dictionary/transforms/attribute/palette.js +9 -9
  224. package/design-tokens/style-dictionary/transforms/attribute/prefix.js +11 -11
  225. package/design-tokens/style-dictionary/transforms/attribute/size.js +8 -8
  226. package/design-tokens/style-dictionary/transforms/attribute/typography.js +9 -9
  227. package/design-tokens/style-dictionary/transforms/value/figma-values.js +7 -0
  228. package/divider/divider.component.d.ts +11 -11
  229. package/divider/divider.module.d.ts +8 -8
  230. package/divider/index.d.ts +1 -1
  231. package/divider/ptsecurity-mosaic-divider.d.ts +5 -5
  232. package/divider/public-api.d.ts +2 -2
  233. package/dl/dl.component.d.ts +26 -26
  234. package/dl/dl.module.d.ts +10 -10
  235. package/dl/index.d.ts +1 -1
  236. package/dl/ptsecurity-mosaic-dl.d.ts +5 -5
  237. package/dl/public-api.d.ts +2 -2
  238. package/dropdown/dropdown-animations.d.ts +11 -11
  239. package/dropdown/dropdown-content.directive.d.ts +32 -32
  240. package/dropdown/dropdown-errors.d.ts +17 -17
  241. package/dropdown/dropdown-item.component.d.ts +50 -50
  242. package/dropdown/dropdown-trigger.directive.d.ts +136 -136
  243. package/dropdown/dropdown.component.d.ts +121 -121
  244. package/dropdown/dropdown.module.d.ts +13 -13
  245. package/dropdown/dropdown.types.d.ts +53 -53
  246. package/dropdown/index.d.ts +1 -1
  247. package/dropdown/ptsecurity-mosaic-dropdown.d.ts +5 -5
  248. package/dropdown/public-api.d.ts +8 -8
  249. package/esm2020/autocomplete/autocomplete-origin.directive.mjs +21 -21
  250. package/esm2020/autocomplete/autocomplete-trigger.directive.mjs +555 -555
  251. package/esm2020/autocomplete/autocomplete.component.mjs +154 -154
  252. package/esm2020/autocomplete/autocomplete.module.mjs +34 -34
  253. package/esm2020/autocomplete/index.mjs +2 -2
  254. package/esm2020/autocomplete/ptsecurity-mosaic-autocomplete.mjs +4 -4
  255. package/esm2020/autocomplete/public-api.mjs +5 -5
  256. package/esm2020/button/button.component.mjs +137 -137
  257. package/esm2020/button/button.module.mjs +38 -38
  258. package/esm2020/button/index.mjs +2 -2
  259. package/esm2020/button/ptsecurity-mosaic-button.mjs +4 -4
  260. package/esm2020/button/public-api.mjs +3 -3
  261. package/esm2020/button-toggle/button-toggle.component.mjs +362 -362
  262. package/esm2020/button-toggle/button-toggle.module.mjs +19 -19
  263. package/esm2020/button-toggle/index.mjs +2 -2
  264. package/esm2020/button-toggle/ptsecurity-mosaic-button-toggle.mjs +4 -4
  265. package/esm2020/button-toggle/public-api.mjs +3 -3
  266. package/esm2020/card/card.component.mjs +80 -80
  267. package/esm2020/card/card.module.mjs +30 -30
  268. package/esm2020/card/index.mjs +2 -2
  269. package/esm2020/card/ptsecurity-mosaic-card.mjs +4 -4
  270. package/esm2020/card/public-api.mjs +3 -3
  271. package/esm2020/checkbox/checkbox-config.mjs +6 -6
  272. package/esm2020/checkbox/checkbox-module.mjs +19 -19
  273. package/esm2020/checkbox/checkbox-required-validator.mjs +27 -27
  274. package/esm2020/checkbox/checkbox.mjs +316 -316
  275. package/esm2020/checkbox/index.mjs +2 -2
  276. package/esm2020/checkbox/ptsecurity-mosaic-checkbox.mjs +4 -4
  277. package/esm2020/checkbox/public-api.mjs +5 -5
  278. package/esm2020/core/animation/animation.mjs +8 -8
  279. package/esm2020/core/animation/fade-animations.mjs +9 -9
  280. package/esm2020/core/animation/index.mjs +4 -4
  281. package/esm2020/core/animation/select-animations.mjs +45 -45
  282. package/esm2020/core/common-behaviors/color.mjs +30 -30
  283. package/esm2020/core/common-behaviors/common-module.mjs +83 -83
  284. package/esm2020/core/common-behaviors/constructor.mjs +2 -2
  285. package/esm2020/core/common-behaviors/disabled.mjs +17 -17
  286. package/esm2020/core/common-behaviors/error-state.mjs +31 -31
  287. package/esm2020/core/common-behaviors/index.mjs +6 -6
  288. package/esm2020/core/common-behaviors/tabindex.mjs +18 -18
  289. package/esm2020/core/error/error-options.mjs +26 -26
  290. package/esm2020/core/formatters/date/formatter.mjs +359 -359
  291. package/esm2020/core/formatters/date/templates/en-US.mjs +281 -281
  292. package/esm2020/core/formatters/date/templates/ru-RU.mjs +281 -281
  293. package/esm2020/core/formatters/index.mjs +20 -20
  294. package/esm2020/core/formatters/number/formatter.mjs +105 -105
  295. package/esm2020/core/forms/forms-module.mjs +24 -24
  296. package/esm2020/core/forms/forms.directive.mjs +66 -66
  297. package/esm2020/core/forms/index.mjs +3 -3
  298. package/esm2020/core/highlight/highlight.pipe.mjs +17 -17
  299. package/esm2020/core/highlight/index.mjs +19 -19
  300. package/esm2020/core/index.mjs +2 -2
  301. package/esm2020/core/label/label-options.mjs +4 -4
  302. package/esm2020/core/line/line.mjs +70 -70
  303. package/esm2020/core/option/action.mjs +121 -121
  304. package/esm2020/core/option/index.mjs +5 -5
  305. package/esm2020/core/option/optgroup.mjs +31 -31
  306. package/esm2020/core/option/option-module.mjs +21 -21
  307. package/esm2020/core/option/option.mjs +257 -257
  308. package/esm2020/core/overlay/overlay-position-map.mjs +244 -244
  309. package/esm2020/core/pop-up/constants.mjs +34 -34
  310. package/esm2020/core/pop-up/index.mjs +4 -4
  311. package/esm2020/core/pop-up/pop-up-trigger.mjs +239 -239
  312. package/esm2020/core/pop-up/pop-up.mjs +94 -94
  313. package/esm2020/core/ptsecurity-mosaic-core.mjs +4 -4
  314. package/esm2020/core/public-api.mjs +18 -18
  315. package/esm2020/core/select/constants.mjs +27 -27
  316. package/esm2020/core/select/errors.mjs +26 -26
  317. package/esm2020/core/select/events.mjs +2 -2
  318. package/esm2020/core/select/index.mjs +4 -4
  319. package/esm2020/core/selection/constants.mjs +6 -6
  320. package/esm2020/core/selection/index.mjs +4 -4
  321. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +49 -49
  322. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.module.mjs +18 -18
  323. package/esm2020/core/services/measure-scrollbar.service.mjs +48 -48
  324. package/esm2020/core/utils/index.mjs +2 -2
  325. package/esm2020/core/utils/public-api.mjs +2 -2
  326. package/esm2020/core/utils/utils.mjs +5 -5
  327. package/esm2020/core/validation/index.mjs +2 -2
  328. package/esm2020/core/validation/validation.mjs +118 -118
  329. package/esm2020/core/version.mjs +3 -3
  330. package/esm2020/datepicker/calendar-body.component.mjs +106 -106
  331. package/esm2020/datepicker/calendar.component.mjs +362 -362
  332. package/esm2020/datepicker/datepicker-animations.mjs +32 -32
  333. package/esm2020/datepicker/datepicker-errors.mjs +6 -6
  334. package/esm2020/datepicker/datepicker-input.directive.mjs +938 -938
  335. package/esm2020/datepicker/datepicker-intl.mjs +40 -40
  336. package/esm2020/datepicker/datepicker-module.mjs +107 -107
  337. package/esm2020/datepicker/datepicker-toggle.component.mjs +86 -86
  338. package/esm2020/datepicker/datepicker.component.mjs +404 -404
  339. package/esm2020/datepicker/index.mjs +2 -2
  340. package/esm2020/datepicker/month-view.component.mjs +257 -257
  341. package/esm2020/datepicker/multi-year-view.component.mjs +218 -218
  342. package/esm2020/datepicker/ptsecurity-mosaic-datepicker.mjs +4 -4
  343. package/esm2020/datepicker/public-api.mjs +12 -12
  344. package/esm2020/datepicker/year-view.component.mjs +253 -253
  345. package/esm2020/design-tokens/index.mjs +2 -2
  346. package/esm2020/design-tokens/legacy-2017/tokens.mjs +1167 -1138
  347. package/esm2020/design-tokens/pt-2022/tokens.mjs +1237 -1208
  348. package/esm2020/design-tokens/ptsecurity-mosaic-design-tokens.mjs +4 -4
  349. package/esm2020/design-tokens/public-api.mjs +4 -4
  350. package/esm2020/divider/divider.component.mjs +39 -39
  351. package/esm2020/divider/divider.module.mjs +18 -18
  352. package/esm2020/divider/index.mjs +2 -2
  353. package/esm2020/divider/ptsecurity-mosaic-divider.mjs +4 -4
  354. package/esm2020/divider/public-api.mjs +3 -3
  355. package/esm2020/dl/dl.component.mjs +78 -78
  356. package/esm2020/dl/dl.module.mjs +42 -42
  357. package/esm2020/dl/index.mjs +2 -2
  358. package/esm2020/dl/ptsecurity-mosaic-dl.mjs +4 -4
  359. package/esm2020/dl/public-api.mjs +3 -3
  360. package/esm2020/dropdown/dropdown-animations.mjs +41 -41
  361. package/esm2020/dropdown/dropdown-content.directive.mjs +64 -64
  362. package/esm2020/dropdown/dropdown-errors.mjs +29 -29
  363. package/esm2020/dropdown/dropdown-item.component.mjs +139 -139
  364. package/esm2020/dropdown/dropdown-trigger.directive.mjs +489 -489
  365. package/esm2020/dropdown/dropdown.component.mjs +292 -292
  366. package/esm2020/dropdown/dropdown.module.mjs +50 -50
  367. package/esm2020/dropdown/dropdown.types.mjs +24 -24
  368. package/esm2020/dropdown/index.mjs +2 -2
  369. package/esm2020/dropdown/ptsecurity-mosaic-dropdown.mjs +4 -4
  370. package/esm2020/dropdown/public-api.mjs +9 -9
  371. package/esm2020/form-field/cleaner.mjs +23 -23
  372. package/esm2020/form-field/form-field-control.mjs +5 -5
  373. package/esm2020/form-field/form-field-errors.mjs +7 -7
  374. package/esm2020/form-field/form-field.mjs +225 -225
  375. package/esm2020/form-field/form-field.module.mjs +57 -57
  376. package/esm2020/form-field/hint.mjs +34 -23
  377. package/esm2020/form-field/index.mjs +2 -2
  378. package/esm2020/form-field/password-hint.mjs +139 -139
  379. package/esm2020/form-field/prefix.mjs +13 -13
  380. package/esm2020/form-field/ptsecurity-mosaic-form-field.mjs +4 -4
  381. package/esm2020/form-field/public-api.mjs +11 -11
  382. package/esm2020/form-field/stepper.mjs +55 -55
  383. package/esm2020/form-field/suffix.mjs +13 -13
  384. package/esm2020/icon/icon.component.mjs +44 -44
  385. package/esm2020/icon/icon.module.mjs +38 -38
  386. package/esm2020/icon/index.mjs +2 -2
  387. package/esm2020/icon/ptsecurity-mosaic-icon.mjs +4 -4
  388. package/esm2020/icon/public-api.mjs +3 -3
  389. package/esm2020/index.mjs +2 -2
  390. package/esm2020/input/index.mjs +2 -2
  391. package/esm2020/input/input-errors.mjs +4 -4
  392. package/esm2020/input/input-number-validators.mjs +92 -92
  393. package/esm2020/input/input-number.mjs +163 -163
  394. package/esm2020/input/input-password.mjs +372 -372
  395. package/esm2020/input/input-value-accessor.mjs +3 -3
  396. package/esm2020/input/input.mjs +334 -334
  397. package/esm2020/input/input.module.mjs +65 -65
  398. package/esm2020/input/ptsecurity-mosaic-input.mjs +4 -4
  399. package/esm2020/input/public-api.mjs +7 -7
  400. package/esm2020/link/index.mjs +2 -2
  401. package/esm2020/link/link.component.mjs +107 -107
  402. package/esm2020/link/link.module.mjs +26 -26
  403. package/esm2020/link/ptsecurity-mosaic-link.mjs +4 -4
  404. package/esm2020/link/public-api.mjs +3 -3
  405. package/esm2020/list/index.mjs +2 -2
  406. package/esm2020/list/list-selection.component.mjs +689 -686
  407. package/esm2020/list/list.component.mjs +44 -44
  408. package/esm2020/list/list.module.mjs +55 -55
  409. package/esm2020/list/ptsecurity-mosaic-list.mjs +4 -4
  410. package/esm2020/list/public-api.mjs +4 -4
  411. package/esm2020/loader-overlay/index.mjs +2 -0
  412. package/esm2020/loader-overlay/loader-overlay.component.mjs +99 -0
  413. package/esm2020/loader-overlay/loader-overlay.module.mjs +50 -0
  414. package/esm2020/loader-overlay/ptsecurity-mosaic-loader-overlay.mjs +5 -0
  415. package/esm2020/loader-overlay/public-api.mjs +3 -0
  416. package/esm2020/modal/css-unit.pipe.mjs +17 -17
  417. package/esm2020/modal/index.mjs +2 -2
  418. package/esm2020/modal/modal-control.service.mjs +85 -85
  419. package/esm2020/modal/modal-ref.class.mjs +8 -8
  420. package/esm2020/modal/modal-util.mjs +17 -17
  421. package/esm2020/modal/modal.component.mjs +509 -501
  422. package/esm2020/modal/modal.directive.mjs +52 -52
  423. package/esm2020/modal/modal.module.mjs +72 -72
  424. package/esm2020/modal/modal.service.mjs +124 -124
  425. package/esm2020/modal/modal.type.mjs +7 -7
  426. package/esm2020/modal/ptsecurity-mosaic-modal.mjs +4 -4
  427. package/esm2020/modal/public-api.mjs +7 -7
  428. package/esm2020/navbar/index.mjs +2 -2
  429. package/esm2020/navbar/navbar-item.component.mjs +582 -582
  430. package/esm2020/navbar/navbar.component.mjs +239 -237
  431. package/esm2020/navbar/navbar.module.mjs +92 -92
  432. package/esm2020/navbar/ptsecurity-mosaic-navbar.mjs +4 -4
  433. package/esm2020/navbar/public-api.mjs +5 -5
  434. package/esm2020/navbar/vertical-navbar.animation.mjs +10 -10
  435. package/esm2020/navbar/vertical-navbar.component.mjs +114 -114
  436. package/esm2020/popover/index.mjs +2 -2
  437. package/esm2020/popover/popover-animations.mjs +16 -16
  438. package/esm2020/popover/popover-confirm.component.mjs +108 -108
  439. package/esm2020/popover/popover.component.mjs +253 -253
  440. package/esm2020/popover/popover.module.mjs +24 -24
  441. package/esm2020/popover/ptsecurity-mosaic-popover.mjs +4 -4
  442. package/esm2020/popover/public-api.mjs +5 -5
  443. package/esm2020/progress-bar/index.mjs +2 -2
  444. package/esm2020/progress-bar/progress-bar.component.mjs +42 -42
  445. package/esm2020/progress-bar/progress-bar.module.mjs +30 -30
  446. package/esm2020/progress-bar/ptsecurity-mosaic-progress-bar.mjs +4 -4
  447. package/esm2020/progress-bar/public-api.mjs +3 -3
  448. package/esm2020/progress-spinner/index.mjs +2 -2
  449. package/esm2020/progress-spinner/progress-spinner.component.mjs +46 -46
  450. package/esm2020/progress-spinner/progress-spinner.module.mjs +30 -30
  451. package/esm2020/progress-spinner/ptsecurity-mosaic-progress-spinner.mjs +4 -4
  452. package/esm2020/progress-spinner/public-api.mjs +3 -3
  453. package/esm2020/ptsecurity-mosaic.mjs +4 -4
  454. package/esm2020/public-api.mjs +2 -2
  455. package/esm2020/radio/index.mjs +2 -2
  456. package/esm2020/radio/ptsecurity-mosaic-radio.mjs +4 -4
  457. package/esm2020/radio/public-api.mjs +3 -3
  458. package/esm2020/radio/radio.component.mjs +458 -458
  459. package/esm2020/radio/radio.module.mjs +20 -20
  460. package/esm2020/select/index.mjs +2 -2
  461. package/esm2020/select/ptsecurity-mosaic-select.mjs +4 -4
  462. package/esm2020/select/public-api.mjs +4 -4
  463. package/esm2020/select/select-option.directive.mjs +65 -65
  464. package/esm2020/select/select.component.mjs +1117 -1117
  465. package/esm2020/select/select.module.mjs +73 -73
  466. package/esm2020/sidebar/index.mjs +2 -2
  467. package/esm2020/sidebar/ptsecurity-mosaic-sidebar.mjs +4 -4
  468. package/esm2020/sidebar/public-api.mjs +3 -3
  469. package/esm2020/sidebar/sidebar-animations.mjs +23 -23
  470. package/esm2020/sidebar/sidebar.component.mjs +146 -146
  471. package/esm2020/sidebar/sidebar.module.mjs +30 -30
  472. package/esm2020/sidepanel/index.mjs +2 -2
  473. package/esm2020/sidepanel/ptsecurity-mosaic-sidepanel.mjs +4 -4
  474. package/esm2020/sidepanel/public-api.mjs +7 -7
  475. package/esm2020/sidepanel/sidepanel-animations.mjs +26 -26
  476. package/esm2020/sidepanel/sidepanel-config.mjs +26 -26
  477. package/esm2020/sidepanel/sidepanel-container.component.mjs +106 -106
  478. package/esm2020/sidepanel/sidepanel-directives.mjs +159 -159
  479. package/esm2020/sidepanel/sidepanel-ref.mjs +53 -53
  480. package/esm2020/sidepanel/sidepanel.module.mjs +74 -74
  481. package/esm2020/sidepanel/sidepanel.service.mjs +167 -167
  482. package/esm2020/splitter/index.mjs +2 -2
  483. package/esm2020/splitter/ptsecurity-mosaic-splitter.mjs +4 -4
  484. package/esm2020/splitter/public-api.mjs +3 -3
  485. package/esm2020/splitter/splitter.component.mjs +482 -482
  486. package/esm2020/splitter/splitter.module.mjs +40 -40
  487. package/esm2020/table/index.mjs +2 -2
  488. package/esm2020/table/ptsecurity-mosaic-table.mjs +4 -4
  489. package/esm2020/table/public-api.mjs +3 -3
  490. package/esm2020/table/table.component.mjs +16 -16
  491. package/esm2020/table/table.module.mjs +30 -30
  492. package/esm2020/tabs/index.mjs +2 -2
  493. package/esm2020/tabs/paginated-tab-header.mjs +479 -479
  494. package/esm2020/tabs/ptsecurity-mosaic-tabs.mjs +4 -4
  495. package/esm2020/tabs/public-api.mjs +11 -11
  496. package/esm2020/tabs/tab-body.component.mjs +178 -178
  497. package/esm2020/tabs/tab-content.directive.mjs +15 -15
  498. package/esm2020/tabs/tab-group.component.mjs +350 -350
  499. package/esm2020/tabs/tab-header.component.mjs +67 -67
  500. package/esm2020/tabs/tab-label-wrapper.directive.mjs +78 -78
  501. package/esm2020/tabs/tab-label.directive.mjs +17 -17
  502. package/esm2020/tabs/tab-nav-bar/index.mjs +2 -2
  503. package/esm2020/tabs/tab-nav-bar/tab-nav-bar.mjs +110 -110
  504. package/esm2020/tabs/tab.component.mjs +133 -133
  505. package/esm2020/tabs/tabs-animations.mjs +24 -24
  506. package/esm2020/tabs/tabs.module.mjs +104 -104
  507. package/esm2020/tags/index.mjs +2 -2
  508. package/esm2020/tags/ptsecurity-mosaic-tags.mjs +4 -4
  509. package/esm2020/tags/public-api.mjs +6 -6
  510. package/esm2020/tags/tag-default-options.mjs +4 -4
  511. package/esm2020/tags/tag-input.mjs +229 -229
  512. package/esm2020/tags/tag-list.component.mjs +722 -722
  513. package/esm2020/tags/tag-text-control.mjs +2 -2
  514. package/esm2020/tags/tag.component.mjs +375 -375
  515. package/esm2020/tags/tag.module.mjs +56 -56
  516. package/esm2020/textarea/index.mjs +2 -2
  517. package/esm2020/textarea/ptsecurity-mosaic-textarea.mjs +4 -4
  518. package/esm2020/textarea/public-api.mjs +3 -3
  519. package/esm2020/textarea/textarea.component.mjs +269 -269
  520. package/esm2020/textarea/textarea.module.mjs +21 -21
  521. package/esm2020/timepicker/index.mjs +2 -2
  522. package/esm2020/timepicker/ptsecurity-mosaic-timepicker.mjs +4 -4
  523. package/esm2020/timepicker/public-api.mjs +4 -4
  524. package/esm2020/timepicker/timepicker.constants.mjs +25 -25
  525. package/esm2020/timepicker/timepicker.directive.mjs +665 -665
  526. package/esm2020/timepicker/timepicker.module.mjs +34 -34
  527. package/esm2020/toggle/index.mjs +2 -2
  528. package/esm2020/toggle/ptsecurity-mosaic-toggle.mjs +4 -4
  529. package/esm2020/toggle/public-api.mjs +3 -3
  530. package/esm2020/toggle/toggle.component.mjs +158 -158
  531. package/esm2020/toggle/toggle.module.mjs +20 -20
  532. package/esm2020/tooltip/index.mjs +2 -2
  533. package/esm2020/tooltip/ptsecurity-mosaic-tooltip.mjs +4 -4
  534. package/esm2020/tooltip/public-api.mjs +3 -3
  535. package/esm2020/tooltip/tooltip.animations.mjs +19 -19
  536. package/esm2020/tooltip/tooltip.component.mjs +295 -295
  537. package/esm2020/tooltip/tooltip.module.mjs +43 -43
  538. package/esm2020/tree/control/base-tree-control.mjs +60 -60
  539. package/esm2020/tree/control/flat-tree-control.mjs +126 -126
  540. package/esm2020/tree/control/nested-tree-control.mjs +41 -41
  541. package/esm2020/tree/control/tree-control.mjs +2 -2
  542. package/esm2020/tree/data-source/flat-data-source.mjs +162 -162
  543. package/esm2020/tree/data-source/nested-data-source.mjs +30 -30
  544. package/esm2020/tree/index.mjs +2 -2
  545. package/esm2020/tree/node.mjs +31 -31
  546. package/esm2020/tree/outlet.mjs +15 -15
  547. package/esm2020/tree/padding.directive.mjs +113 -113
  548. package/esm2020/tree/ptsecurity-mosaic-tree.mjs +4 -4
  549. package/esm2020/tree/public-api.mjs +16 -16
  550. package/esm2020/tree/toggle.mjs +80 -80
  551. package/esm2020/tree/tree-base.mjs +243 -243
  552. package/esm2020/tree/tree-errors.mjs +36 -36
  553. package/esm2020/tree/tree-option.component.mjs +248 -248
  554. package/esm2020/tree/tree-selection.component.mjs +541 -540
  555. package/esm2020/tree/tree.mjs +15 -15
  556. package/esm2020/tree/tree.module.mjs +57 -57
  557. package/esm2020/tree-select/index.mjs +2 -2
  558. package/esm2020/tree-select/ptsecurity-mosaic-tree-select.mjs +4 -4
  559. package/esm2020/tree-select/public-api.mjs +3 -3
  560. package/esm2020/tree-select/tree-select.component.mjs +939 -939
  561. package/esm2020/tree-select/tree-select.module.mjs +47 -47
  562. package/fesm2015/ptsecurity-mosaic-autocomplete.mjs +726 -726
  563. package/fesm2015/ptsecurity-mosaic-autocomplete.mjs.map +1 -1
  564. package/fesm2015/ptsecurity-mosaic-button-toggle.mjs +367 -367
  565. package/fesm2015/ptsecurity-mosaic-button-toggle.mjs.map +1 -1
  566. package/fesm2015/ptsecurity-mosaic-button.mjs +160 -160
  567. package/fesm2015/ptsecurity-mosaic-button.mjs.map +1 -1
  568. package/fesm2015/ptsecurity-mosaic-card.mjs +96 -96
  569. package/fesm2015/ptsecurity-mosaic-card.mjs.map +1 -1
  570. package/fesm2015/ptsecurity-mosaic-checkbox.mjs +348 -348
  571. package/fesm2015/ptsecurity-mosaic-checkbox.mjs.map +1 -1
  572. package/fesm2015/ptsecurity-mosaic-core.mjs +2652 -2652
  573. package/fesm2015/ptsecurity-mosaic-core.mjs.map +1 -1
  574. package/fesm2015/ptsecurity-mosaic-datepicker.mjs +2682 -2682
  575. package/fesm2015/ptsecurity-mosaic-datepicker.mjs.map +1 -1
  576. package/fesm2015/ptsecurity-mosaic-design-tokens.mjs +2432 -2345
  577. package/fesm2015/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
  578. package/fesm2015/ptsecurity-mosaic-divider.mjs +48 -48
  579. package/fesm2015/ptsecurity-mosaic-divider.mjs.map +1 -1
  580. package/fesm2015/ptsecurity-mosaic-dl.mjs +108 -108
  581. package/fesm2015/ptsecurity-mosaic-dl.mjs.map +1 -1
  582. package/fesm2015/ptsecurity-mosaic-dropdown.mjs +1069 -1069
  583. package/fesm2015/ptsecurity-mosaic-dropdown.mjs.map +1 -1
  584. package/fesm2015/ptsecurity-mosaic-form-field.mjs +522 -512
  585. package/fesm2015/ptsecurity-mosaic-form-field.mjs.map +1 -1
  586. package/fesm2015/ptsecurity-mosaic-icon.mjs +73 -73
  587. package/fesm2015/ptsecurity-mosaic-icon.mjs.map +1 -1
  588. package/fesm2015/ptsecurity-mosaic-input.mjs +979 -979
  589. package/fesm2015/ptsecurity-mosaic-input.mjs.map +1 -1
  590. package/fesm2015/ptsecurity-mosaic-link.mjs +121 -121
  591. package/fesm2015/ptsecurity-mosaic-link.mjs.map +1 -1
  592. package/fesm2015/ptsecurity-mosaic-list.mjs +765 -762
  593. package/fesm2015/ptsecurity-mosaic-list.mjs.map +1 -1
  594. package/fesm2015/ptsecurity-mosaic-loader-overlay.mjs +155 -0
  595. package/fesm2015/ptsecurity-mosaic-loader-overlay.mjs.map +1 -0
  596. package/fesm2015/ptsecurity-mosaic-modal.mjs +833 -824
  597. package/fesm2015/ptsecurity-mosaic-modal.mjs.map +1 -1
  598. package/fesm2015/ptsecurity-mosaic-navbar.mjs +996 -994
  599. package/fesm2015/ptsecurity-mosaic-navbar.mjs.map +1 -1
  600. package/fesm2015/ptsecurity-mosaic-popover.mjs +364 -364
  601. package/fesm2015/ptsecurity-mosaic-popover.mjs.map +1 -1
  602. package/fesm2015/ptsecurity-mosaic-progress-bar.mjs +61 -61
  603. package/fesm2015/ptsecurity-mosaic-progress-bar.mjs.map +1 -1
  604. package/fesm2015/ptsecurity-mosaic-progress-spinner.mjs +65 -65
  605. package/fesm2015/ptsecurity-mosaic-progress-spinner.mjs.map +1 -1
  606. package/fesm2015/ptsecurity-mosaic-radio.mjs +464 -464
  607. package/fesm2015/ptsecurity-mosaic-radio.mjs.map +1 -1
  608. package/fesm2015/ptsecurity-mosaic-select.mjs +1213 -1213
  609. package/fesm2015/ptsecurity-mosaic-select.mjs.map +1 -1
  610. package/fesm2015/ptsecurity-mosaic-sidebar.mjs +185 -185
  611. package/fesm2015/ptsecurity-mosaic-sidebar.mjs.map +1 -1
  612. package/fesm2015/ptsecurity-mosaic-sidepanel.mjs +555 -555
  613. package/fesm2015/ptsecurity-mosaic-sidepanel.mjs.map +1 -1
  614. package/fesm2015/ptsecurity-mosaic-splitter.mjs +511 -511
  615. package/fesm2015/ptsecurity-mosaic-splitter.mjs.map +1 -1
  616. package/fesm2015/ptsecurity-mosaic-table.mjs +36 -36
  617. package/fesm2015/ptsecurity-mosaic-table.mjs.map +1 -1
  618. package/fesm2015/ptsecurity-mosaic-tabs.mjs +1460 -1460
  619. package/fesm2015/ptsecurity-mosaic-tabs.mjs.map +1 -1
  620. package/fesm2015/ptsecurity-mosaic-tags.mjs +1342 -1342
  621. package/fesm2015/ptsecurity-mosaic-tags.mjs.map +1 -1
  622. package/fesm2015/ptsecurity-mosaic-textarea.mjs +274 -274
  623. package/fesm2015/ptsecurity-mosaic-textarea.mjs.map +1 -1
  624. package/fesm2015/ptsecurity-mosaic-timepicker.mjs +703 -703
  625. package/fesm2015/ptsecurity-mosaic-timepicker.mjs.map +1 -1
  626. package/fesm2015/ptsecurity-mosaic-toggle.mjs +163 -163
  627. package/fesm2015/ptsecurity-mosaic-toggle.mjs.map +1 -1
  628. package/fesm2015/ptsecurity-mosaic-tooltip.mjs +344 -344
  629. package/fesm2015/ptsecurity-mosaic-tooltip.mjs.map +1 -1
  630. package/fesm2015/ptsecurity-mosaic-tree-select.mjs +954 -954
  631. package/fesm2015/ptsecurity-mosaic-tree-select.mjs.map +1 -1
  632. package/fesm2015/ptsecurity-mosaic-tree.mjs +1689 -1688
  633. package/fesm2015/ptsecurity-mosaic-tree.mjs.map +1 -1
  634. package/fesm2015/ptsecurity-mosaic.mjs +2 -2
  635. package/fesm2020/ptsecurity-mosaic-autocomplete.mjs +722 -722
  636. package/fesm2020/ptsecurity-mosaic-autocomplete.mjs.map +1 -1
  637. package/fesm2020/ptsecurity-mosaic-button-toggle.mjs +365 -365
  638. package/fesm2020/ptsecurity-mosaic-button-toggle.mjs.map +1 -1
  639. package/fesm2020/ptsecurity-mosaic-button.mjs +160 -160
  640. package/fesm2020/ptsecurity-mosaic-button.mjs.map +1 -1
  641. package/fesm2020/ptsecurity-mosaic-card.mjs +96 -96
  642. package/fesm2020/ptsecurity-mosaic-card.mjs.map +1 -1
  643. package/fesm2020/ptsecurity-mosaic-checkbox.mjs +346 -346
  644. package/fesm2020/ptsecurity-mosaic-checkbox.mjs.map +1 -1
  645. package/fesm2020/ptsecurity-mosaic-core.mjs +2681 -2681
  646. package/fesm2020/ptsecurity-mosaic-core.mjs.map +1 -1
  647. package/fesm2020/ptsecurity-mosaic-datepicker.mjs +2667 -2667
  648. package/fesm2020/ptsecurity-mosaic-datepicker.mjs.map +1 -1
  649. package/fesm2020/ptsecurity-mosaic-design-tokens.mjs +2432 -2345
  650. package/fesm2020/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
  651. package/fesm2020/ptsecurity-mosaic-divider.mjs +48 -48
  652. package/fesm2020/ptsecurity-mosaic-divider.mjs.map +1 -1
  653. package/fesm2020/ptsecurity-mosaic-dl.mjs +108 -108
  654. package/fesm2020/ptsecurity-mosaic-dl.mjs.map +1 -1
  655. package/fesm2020/ptsecurity-mosaic-dropdown.mjs +1056 -1056
  656. package/fesm2020/ptsecurity-mosaic-dropdown.mjs.map +1 -1
  657. package/fesm2020/ptsecurity-mosaic-form-field.mjs +507 -497
  658. package/fesm2020/ptsecurity-mosaic-form-field.mjs.map +1 -1
  659. package/fesm2020/ptsecurity-mosaic-icon.mjs +71 -71
  660. package/fesm2020/ptsecurity-mosaic-icon.mjs.map +1 -1
  661. package/fesm2020/ptsecurity-mosaic-input.mjs +968 -968
  662. package/fesm2020/ptsecurity-mosaic-input.mjs.map +1 -1
  663. package/fesm2020/ptsecurity-mosaic-link.mjs +120 -120
  664. package/fesm2020/ptsecurity-mosaic-link.mjs.map +1 -1
  665. package/fesm2020/ptsecurity-mosaic-list.mjs +758 -755
  666. package/fesm2020/ptsecurity-mosaic-list.mjs.map +1 -1
  667. package/fesm2020/ptsecurity-mosaic-loader-overlay.mjs +153 -0
  668. package/fesm2020/ptsecurity-mosaic-loader-overlay.mjs.map +1 -0
  669. package/fesm2020/ptsecurity-mosaic-modal.mjs +828 -820
  670. package/fesm2020/ptsecurity-mosaic-modal.mjs.map +1 -1
  671. package/fesm2020/ptsecurity-mosaic-navbar.mjs +980 -978
  672. package/fesm2020/ptsecurity-mosaic-navbar.mjs.map +1 -1
  673. package/fesm2020/ptsecurity-mosaic-popover.mjs +360 -360
  674. package/fesm2020/ptsecurity-mosaic-popover.mjs.map +1 -1
  675. package/fesm2020/ptsecurity-mosaic-progress-bar.mjs +61 -61
  676. package/fesm2020/ptsecurity-mosaic-progress-bar.mjs.map +1 -1
  677. package/fesm2020/ptsecurity-mosaic-progress-spinner.mjs +65 -65
  678. package/fesm2020/ptsecurity-mosaic-progress-spinner.mjs.map +1 -1
  679. package/fesm2020/ptsecurity-mosaic-radio.mjs +462 -462
  680. package/fesm2020/ptsecurity-mosaic-radio.mjs.map +1 -1
  681. package/fesm2020/ptsecurity-mosaic-select.mjs +1208 -1208
  682. package/fesm2020/ptsecurity-mosaic-select.mjs.map +1 -1
  683. package/fesm2020/ptsecurity-mosaic-sidebar.mjs +185 -185
  684. package/fesm2020/ptsecurity-mosaic-sidebar.mjs.map +1 -1
  685. package/fesm2020/ptsecurity-mosaic-sidepanel.mjs +552 -552
  686. package/fesm2020/ptsecurity-mosaic-sidepanel.mjs.map +1 -1
  687. package/fesm2020/ptsecurity-mosaic-splitter.mjs +511 -511
  688. package/fesm2020/ptsecurity-mosaic-splitter.mjs.map +1 -1
  689. package/fesm2020/ptsecurity-mosaic-table.mjs +36 -36
  690. package/fesm2020/ptsecurity-mosaic-table.mjs.map +1 -1
  691. package/fesm2020/ptsecurity-mosaic-tabs.mjs +1445 -1445
  692. package/fesm2020/ptsecurity-mosaic-tabs.mjs.map +1 -1
  693. package/fesm2020/ptsecurity-mosaic-tags.mjs +1335 -1335
  694. package/fesm2020/ptsecurity-mosaic-tags.mjs.map +1 -1
  695. package/fesm2020/ptsecurity-mosaic-textarea.mjs +272 -272
  696. package/fesm2020/ptsecurity-mosaic-textarea.mjs.map +1 -1
  697. package/fesm2020/ptsecurity-mosaic-timepicker.mjs +700 -700
  698. package/fesm2020/ptsecurity-mosaic-timepicker.mjs.map +1 -1
  699. package/fesm2020/ptsecurity-mosaic-toggle.mjs +163 -163
  700. package/fesm2020/ptsecurity-mosaic-toggle.mjs.map +1 -1
  701. package/fesm2020/ptsecurity-mosaic-tooltip.mjs +336 -336
  702. package/fesm2020/ptsecurity-mosaic-tooltip.mjs.map +1 -1
  703. package/fesm2020/ptsecurity-mosaic-tree-select.mjs +951 -951
  704. package/fesm2020/ptsecurity-mosaic-tree-select.mjs.map +1 -1
  705. package/fesm2020/ptsecurity-mosaic-tree.mjs +1676 -1675
  706. package/fesm2020/ptsecurity-mosaic-tree.mjs.map +1 -1
  707. package/fesm2020/ptsecurity-mosaic.mjs +2 -2
  708. package/form-field/cleaner.d.ts +7 -7
  709. package/form-field/form-field-control.d.ts +37 -37
  710. package/form-field/form-field-errors.d.ts +2 -2
  711. package/form-field/form-field.d.ts +69 -69
  712. package/form-field/form-field.module.d.ts +15 -15
  713. package/form-field/hint.d.ts +14 -6
  714. package/form-field/index.d.ts +1 -1
  715. package/form-field/password-hint.d.ts +40 -40
  716. package/form-field/prefix.d.ts +5 -5
  717. package/form-field/ptsecurity-mosaic-form-field.d.ts +5 -5
  718. package/form-field/public-api.d.ts +10 -10
  719. package/form-field/stepper.d.ts +11 -11
  720. package/form-field/suffix.d.ts +5 -5
  721. package/icon/icon.component.d.ts +18 -18
  722. package/icon/icon.module.d.ts +10 -10
  723. package/icon/index.d.ts +1 -1
  724. package/icon/ptsecurity-mosaic-icon.d.ts +5 -5
  725. package/icon/public-api.d.ts +2 -2
  726. package/index.d.ts +1 -1
  727. package/input/index.d.ts +1 -1
  728. package/input/input-errors.d.ts +1 -1
  729. package/input/input-number-validators.d.ts +39 -39
  730. package/input/input-number.d.ts +33 -33
  731. package/input/input-password.d.ts +123 -123
  732. package/input/input-value-accessor.d.ts +4 -4
  733. package/input/input.d.ts +116 -116
  734. package/input/input.module.d.ts +14 -14
  735. package/input/ptsecurity-mosaic-input.d.ts +5 -5
  736. package/input/public-api.d.ts +6 -6
  737. package/link/index.d.ts +1 -1
  738. package/link/link.component.d.ts +38 -38
  739. package/link/link.module.d.ts +9 -9
  740. package/link/ptsecurity-mosaic-link.d.ts +5 -5
  741. package/link/public-api.d.ts +2 -2
  742. package/list/index.d.ts +1 -1
  743. package/list/list-selection.component.d.ts +168 -168
  744. package/list/list.component.d.ts +18 -18
  745. package/list/list.module.d.ts +11 -11
  746. package/list/ptsecurity-mosaic-list.d.ts +5 -5
  747. package/list/public-api.d.ts +3 -3
  748. package/{toggle → loader-overlay}/README.md +0 -0
  749. package/loader-overlay/index.d.ts +1 -0
  750. package/loader-overlay/loader-overlay.component.d.ts +33 -0
  751. package/loader-overlay/loader-overlay.module.d.ts +11 -0
  752. package/loader-overlay/package.json +10 -0
  753. package/loader-overlay/ptsecurity-mosaic-loader-overlay.d.ts +5 -0
  754. package/loader-overlay/public-api.d.ts +2 -0
  755. package/modal/README.md +33 -33
  756. package/modal/css-unit.pipe.d.ts +7 -7
  757. package/modal/index.d.ts +1 -1
  758. package/modal/modal-control.service.d.ts +20 -20
  759. package/modal/modal-ref.class.d.ts +36 -36
  760. package/modal/modal-util.d.ts +12 -12
  761. package/modal/modal.component.d.ts +128 -126
  762. package/modal/modal.directive.d.ts +17 -17
  763. package/modal/modal.module.d.ts +14 -14
  764. package/modal/modal.service.d.ts +33 -33
  765. package/modal/modal.type.d.ts +60 -59
  766. package/modal/ptsecurity-mosaic-modal.d.ts +5 -5
  767. package/modal/public-api.d.ts +6 -6
  768. package/navbar/README.md +41 -41
  769. package/navbar/index.d.ts +1 -1
  770. package/navbar/navbar-item.component.d.ts +161 -161
  771. package/navbar/navbar.component.d.ts +58 -58
  772. package/navbar/navbar.module.d.ts +14 -14
  773. package/navbar/ptsecurity-mosaic-navbar.d.ts +5 -5
  774. package/navbar/public-api.d.ts +4 -4
  775. package/navbar/vertical-navbar.animation.d.ts +2 -2
  776. package/navbar/vertical-navbar.component.d.ts +23 -23
  777. package/package.json +12 -4
  778. package/popover/README.md +32 -32
  779. package/popover/index.d.ts +1 -1
  780. package/popover/popover-animations.d.ts +4 -4
  781. package/popover/popover-confirm.component.d.ts +33 -33
  782. package/popover/popover.component.d.ts +74 -74
  783. package/popover/popover.module.d.ts +12 -12
  784. package/popover/ptsecurity-mosaic-popover.d.ts +5 -5
  785. package/popover/public-api.d.ts +4 -4
  786. package/prebuilt-themes/dark-theme.css +1 -1
  787. package/prebuilt-themes/default-theme.css +1 -1
  788. package/progress-bar/index.d.ts +1 -1
  789. package/progress-bar/progress-bar.component.d.ts +18 -18
  790. package/progress-bar/progress-bar.module.d.ts +9 -9
  791. package/progress-bar/ptsecurity-mosaic-progress-bar.d.ts +5 -5
  792. package/progress-bar/public-api.d.ts +2 -2
  793. package/progress-spinner/index.d.ts +1 -1
  794. package/progress-spinner/progress-spinner.component.d.ts +19 -19
  795. package/progress-spinner/progress-spinner.module.d.ts +9 -9
  796. package/progress-spinner/ptsecurity-mosaic-progress-spinner.d.ts +5 -5
  797. package/progress-spinner/public-api.d.ts +2 -2
  798. package/ptsecurity-mosaic.d.ts +5 -5
  799. package/public-api.d.ts +1 -1
  800. package/radio/index.d.ts +1 -1
  801. package/radio/ptsecurity-mosaic-radio.d.ts +5 -5
  802. package/radio/public-api.d.ts +2 -2
  803. package/radio/radio.component.d.ts +207 -207
  804. package/radio/radio.module.d.ts +10 -10
  805. package/schematics/README.md +35 -35
  806. package/select/index.d.ts +1 -1
  807. package/select/ptsecurity-mosaic-select.d.ts +5 -5
  808. package/select/public-api.d.ts +3 -3
  809. package/select/select-option.directive.d.ts +20 -20
  810. package/select/select.component.d.ts +310 -310
  811. package/select/select.module.d.ts +15 -15
  812. package/sidebar/index.d.ts +1 -1
  813. package/sidebar/ptsecurity-mosaic-sidebar.d.ts +5 -5
  814. package/sidebar/public-api.d.ts +2 -2
  815. package/sidebar/sidebar-animations.d.ts +8 -8
  816. package/sidebar/sidebar.component.d.ts +53 -53
  817. package/sidebar/sidebar.module.d.ts +8 -8
  818. package/sidepanel/index.d.ts +1 -1
  819. package/sidepanel/ptsecurity-mosaic-sidepanel.d.ts +5 -5
  820. package/sidepanel/public-api.d.ts +6 -6
  821. package/sidepanel/sidepanel-animations.d.ts +14 -14
  822. package/sidepanel/sidepanel-config.d.ts +25 -25
  823. package/sidepanel/sidepanel-container.component.d.ts +45 -45
  824. package/sidepanel/sidepanel-directives.d.ts +50 -50
  825. package/sidepanel/sidepanel-ref.d.ts +24 -24
  826. package/sidepanel/sidepanel.module.d.ts +15 -15
  827. package/sidepanel/sidepanel.service.d.ts +57 -57
  828. package/splitter/index.d.ts +1 -1
  829. package/splitter/ptsecurity-mosaic-splitter.d.ts +5 -5
  830. package/splitter/public-api.d.ts +2 -2
  831. package/splitter/splitter.component.d.ts +130 -130
  832. package/splitter/splitter.module.d.ts +9 -9
  833. package/table/index.d.ts +1 -1
  834. package/table/ptsecurity-mosaic-table.d.ts +5 -5
  835. package/table/public-api.d.ts +2 -2
  836. package/table/table.component.d.ts +5 -5
  837. package/table/table.module.d.ts +10 -10
  838. package/tabs/index.d.ts +1 -1
  839. package/tabs/paginated-tab-header.d.ts +179 -179
  840. package/tabs/ptsecurity-mosaic-tabs.d.ts +5 -5
  841. package/tabs/public-api.d.ts +10 -10
  842. package/tabs/tab-body.component.d.ts +95 -95
  843. package/tabs/tab-content.directive.d.ts +9 -9
  844. package/tabs/tab-group.component.d.ts +133 -133
  845. package/tabs/tab-header.component.d.ts +35 -35
  846. package/tabs/tab-label-wrapper.directive.d.ts +30 -30
  847. package/tabs/tab-label.directive.d.ts +9 -9
  848. package/tabs/tab-nav-bar/index.d.ts +1 -1
  849. package/tabs/tab-nav-bar/tab-nav-bar.d.ts +38 -38
  850. package/tabs/tab.component.d.ts +66 -66
  851. package/tabs/tabs-animations.d.ts +4 -4
  852. package/tabs/tabs.module.d.ts +20 -20
  853. package/tags/index.d.ts +1 -1
  854. package/tags/ptsecurity-mosaic-tags.d.ts +5 -5
  855. package/tags/public-api.d.ts +5 -5
  856. package/tags/tag-default-options.d.ts +8 -8
  857. package/tags/tag-input.d.ts +77 -77
  858. package/tags/tag-list.component.d.ts +240 -240
  859. package/tags/tag-text-control.d.ts +10 -10
  860. package/tags/tag.component.d.ts +135 -135
  861. package/tags/tag.module.d.ts +11 -11
  862. package/textarea/index.d.ts +1 -1
  863. package/textarea/ptsecurity-mosaic-textarea.d.ts +5 -5
  864. package/textarea/public-api.d.ts +2 -2
  865. package/textarea/textarea.component.d.ts +111 -111
  866. package/textarea/textarea.module.d.ts +11 -11
  867. package/timepicker/index.d.ts +1 -1
  868. package/timepicker/ptsecurity-mosaic-timepicker.d.ts +5 -5
  869. package/timepicker/public-api.d.ts +3 -3
  870. package/timepicker/timepicker.constants.d.ts +20 -20
  871. package/timepicker/timepicker.directive.d.ts +146 -146
  872. package/timepicker/timepicker.module.d.ts +11 -11
  873. package/toggle/index.d.ts +1 -1
  874. package/toggle/ptsecurity-mosaic-toggle.d.ts +5 -5
  875. package/toggle/public-api.d.ts +2 -2
  876. package/toggle/toggle.component.d.ts +54 -54
  877. package/toggle/toggle.module.d.ts +10 -10
  878. package/tooltip/index.d.ts +1 -1
  879. package/tooltip/ptsecurity-mosaic-tooltip.d.ts +5 -5
  880. package/tooltip/public-api.d.ts +2 -2
  881. package/tooltip/tooltip.animations.d.ts +8 -8
  882. package/tooltip/tooltip.component.d.ts +91 -91
  883. package/tooltip/tooltip.module.d.ts +9 -9
  884. package/tree/control/base-tree-control.d.ts +40 -40
  885. package/tree/control/flat-tree-control.d.ts +52 -52
  886. package/tree/control/nested-tree-control.d.ts +19 -19
  887. package/tree/control/tree-control.d.ts +44 -44
  888. package/tree/data-source/flat-data-source.d.ts +80 -80
  889. package/tree/data-source/nested-data-source.d.ts +15 -15
  890. package/tree/index.d.ts +1 -1
  891. package/tree/node.d.ts +34 -34
  892. package/tree/outlet.d.ts +9 -9
  893. package/tree/padding.directive.d.ts +47 -47
  894. package/tree/ptsecurity-mosaic-tree.d.ts +5 -5
  895. package/tree/public-api.d.ts +15 -15
  896. package/tree/toggle.d.ts +28 -28
  897. package/tree/tree-base.d.ts +97 -97
  898. package/tree/tree-errors.d.ts +25 -25
  899. package/tree/tree-option.component.d.ts +72 -72
  900. package/tree/tree-selection.component.d.ts +132 -132
  901. package/tree/tree.d.ts +6 -6
  902. package/tree/tree.module.d.ts +16 -16
  903. package/tree-select/index.d.ts +1 -1
  904. package/tree-select/ptsecurity-mosaic-tree-select.d.ts +5 -5
  905. package/tree-select/public-api.d.ts +2 -2
  906. package/tree-select/tree-select.component.d.ts +277 -277
  907. package/tree-select/tree-select.module.d.ts +14 -14
@@ -16,767 +16,770 @@ import { McTooltipTrigger } from '@ptsecurity/mosaic/tooltip';
16
16
  import { Subject, merge } from 'rxjs';
17
17
  import { take, takeUntil, startWith } from 'rxjs/operators';
18
18
 
19
- /* tslint:disable:no-empty */
20
- /**
21
- * Component for list-options of selection-list. Each list-option can automatically
22
- * generate a checkbox and can put current item into the selectionModel of selection-list
23
- * if the current item is selected.
24
- */
25
- class McListOption {
26
- constructor(elementRef, changeDetector, ngZone, listSelection, group) {
27
- this.elementRef = elementRef;
28
- this.changeDetector = changeDetector;
29
- this.ngZone = ngZone;
30
- this.listSelection = listSelection;
31
- this.group = group;
32
- this.hasFocus = false;
33
- this.onFocus = new Subject();
34
- this.onBlur = new Subject();
35
- /**
36
- * This is set to true after the first OnChanges cycle so we don't clear the value of `selected`
37
- * in the first cycle.
38
- */
39
- this.inputsInitialized = false;
40
- this._disabled = false;
41
- this._selected = false;
42
- }
43
- get value() { return this._value; }
44
- set value(newValue) {
45
- if (this.selected && newValue !== this.value && this.inputsInitialized) {
46
- this.selected = false;
47
- }
48
- this._value = newValue;
49
- }
50
- get disabled() {
51
- const listSelectionDisabled = this.listSelection && this.listSelection.disabled;
52
- const groupDisabled = this.group && this.group.disabled;
53
- return listSelectionDisabled || groupDisabled || this._disabled;
54
- }
55
- set disabled(value) {
56
- const newValue = toBoolean(value);
57
- if (newValue !== this._disabled) {
58
- this._disabled = newValue;
59
- this.changeDetector.markForCheck();
60
- }
61
- }
62
- get showCheckbox() {
63
- return this._showCheckbox !== undefined ? this._showCheckbox : this.listSelection.showCheckbox;
64
- }
65
- set showCheckbox(value) {
66
- this._showCheckbox = coerceBooleanProperty(value);
67
- }
68
- get selected() {
69
- return this.listSelection.selectionModel?.isSelected(this) || false;
70
- }
71
- set selected(value) {
72
- const isSelected = toBoolean(value);
73
- if (isSelected !== this._selected) {
74
- this.setSelected(isSelected);
75
- }
76
- }
77
- get tabIndex() {
78
- return this.disabled ? null : -1;
79
- }
80
- ngOnInit() {
81
- const list = this.listSelection;
82
- if (list._value && list._value.some((value) => list.compareWith(value, this._value))) {
83
- this.setSelected(true);
84
- }
85
- const wasSelected = this._selected;
86
- // List options that are selected at initialization can't be reported properly to the form
87
- // control. This is because it takes some time until the selection-list knows about all
88
- // available options. Also it can happen that the ControlValueAccessor has an initial value
89
- // that should be used instead. Deferring the value change report to the next tick ensures
90
- // that the form control value is not being overwritten.
91
- Promise.resolve().then(() => {
92
- if (this._selected || wasSelected) {
93
- this.selected = true;
94
- this.changeDetector.markForCheck();
95
- }
96
- });
97
- this.inputsInitialized = true;
98
- }
99
- ngOnDestroy() {
100
- if (this.selected) {
101
- // We have to delay this until the next tick in order
102
- // to avoid changed after checked errors.
103
- Promise.resolve().then(() => this.selected = false);
104
- }
105
- this.listSelection.removeOptionFromList(this);
106
- }
107
- toggle() {
108
- this.selected = !this.selected;
109
- }
110
- getLabel() {
111
- return this.text ? this.text.nativeElement.textContent : '';
112
- }
113
- setSelected(selected) {
114
- if (this._selected === selected || !this.listSelection.selectionModel) {
115
- return;
116
- }
117
- this._selected = selected;
118
- if (selected) {
119
- this.listSelection.selectionModel.select(this);
120
- }
121
- else {
122
- this.listSelection.selectionModel.deselect(this);
123
- }
124
- this.changeDetector.markForCheck();
125
- }
126
- getHeight() {
127
- const clientRects = this.elementRef.nativeElement.getClientRects();
128
- return clientRects.length ? clientRects[0].height : 0;
129
- }
130
- handleClick($event) {
131
- if (this.disabled) {
132
- return;
133
- }
134
- this.listSelection.setSelectedOptionsByClick(this, hasModifierKey($event, 'shiftKey'), hasModifierKey($event, 'ctrlKey'));
135
- }
136
- onKeydown($event) {
137
- if (!this.actionButton) {
138
- return;
139
- }
140
- if ($event.keyCode === TAB && !$event.shiftKey && !this.actionButton.hasFocus) {
141
- this.actionButton.focus();
142
- $event.preventDefault();
143
- }
144
- }
145
- focus() {
146
- if (this.disabled || this.hasFocus || this.actionButton?.hasFocus) {
147
- return;
148
- }
149
- this.elementRef.nativeElement.focus();
150
- this.onFocus.next({ option: this });
151
- Promise.resolve().then(() => {
152
- this.hasFocus = true;
153
- this.changeDetector.markForCheck();
154
- });
155
- }
156
- blur() {
157
- // When animations are enabled, Angular may end up removing the option from the DOM a little
158
- // earlier than usual, causing it to be blurred and throwing off the logic in the list
159
- // that moves focus not the next item. To work around the issue, we defer marking the option
160
- // as not focused until the next time the zone stabilizes.
161
- this.ngZone.onStable
162
- .asObservable()
163
- .pipe(take(1))
164
- .subscribe(() => {
165
- this.ngZone.run(() => {
166
- this.hasFocus = false;
167
- if (this.actionButton?.hasFocus) {
168
- return;
169
- }
170
- this.onBlur.next({ option: this });
171
- });
172
- });
173
- }
174
- getHostElement() {
175
- return this.elementRef.nativeElement;
176
- }
177
- }
178
- /** @nocollapse */ /** @nocollapse */ McListOption.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McListOption, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: forwardRef(() => McListSelection) }, { token: i1.McOptgroup, optional: true }], target: i0.ɵɵFactoryTarget.Component });
179
- /** @nocollapse */ /** @nocollapse */ McListOption.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: McListOption, selector: "mc-list-option", inputs: { checkboxPosition: "checkboxPosition", value: "value", disabled: "disabled", showCheckbox: "showCheckbox", selected: "selected" }, host: { listeners: { "focusin": "focus()", "blur": "blur()", "click": "handleClick($event)", "keydown": "onKeydown($event)" }, properties: { "class.mc-selected": "selected", "class.mc-disabled": "disabled", "class.mc-focused": "hasFocus", "class.mc-action-button-focused": "actionButton?.active", "attr.tabindex": "tabIndex", "attr.disabled": "disabled || null" }, classAttribute: "mc-list-option" }, providers: [
180
- { provide: MC_OPTION_ACTION_PARENT, useExisting: McListOption }
181
- ], queries: [{ propertyName: "actionButton", first: true, predicate: McOptionActionComponent, descendants: true }, { propertyName: "tooltipTrigger", first: true, predicate: McTooltipTrigger, descendants: true }, { propertyName: "dropdownTrigger", first: true, predicate: McDropdownTrigger, descendants: true }], viewQueries: [{ propertyName: "text", first: true, predicate: ["text"], descendants: true }], exportAs: ["mcListOption"], ngImport: i0, template: "<mc-pseudo-checkbox\r\n *ngIf=\"showCheckbox\"\r\n [state]=\"selected ? 'checked' : 'unchecked'\"\r\n [disabled]=\"disabled\">\r\n</mc-pseudo-checkbox>\r\n\r\n<ng-content select=\"[mc-icon]\"></ng-content>\r\n\r\n<div class=\"mc-list-text\" #text>\r\n <ng-content></ng-content>\r\n</div>\r\n\r\n<ng-content select=\"mc-option-action\"></ng-content>\r\n", components: [{ type: i1.McPseudoCheckbox, selector: "mc-pseudo-checkbox", inputs: ["color", "state", "disabled"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
182
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McListOption, decorators: [{
183
- type: Component,
184
- args: [{ exportAs: 'mcListOption', selector: 'mc-list-option', host: {
185
- class: 'mc-list-option',
186
- '[class.mc-selected]': 'selected',
187
- '[class.mc-disabled]': 'disabled',
188
- '[class.mc-focused]': 'hasFocus',
189
- '[class.mc-action-button-focused]': 'actionButton?.active',
190
- '[attr.tabindex]': 'tabIndex',
191
- '[attr.disabled]': 'disabled || null',
192
- '(focusin)': 'focus()',
193
- '(blur)': 'blur()',
194
- '(click)': 'handleClick($event)',
195
- '(keydown)': 'onKeydown($event)'
196
- }, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
197
- { provide: MC_OPTION_ACTION_PARENT, useExisting: McListOption }
198
- ], template: "<mc-pseudo-checkbox\r\n *ngIf=\"showCheckbox\"\r\n [state]=\"selected ? 'checked' : 'unchecked'\"\r\n [disabled]=\"disabled\">\r\n</mc-pseudo-checkbox>\r\n\r\n<ng-content select=\"[mc-icon]\"></ng-content>\r\n\r\n<div class=\"mc-list-text\" #text>\r\n <ng-content></ng-content>\r\n</div>\r\n\r\n<ng-content select=\"mc-option-action\"></ng-content>\r\n" }]
199
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: McListSelection, decorators: [{
200
- type: Inject,
201
- args: [forwardRef(() => McListSelection)]
202
- }] }, { type: i1.McOptgroup, decorators: [{
203
- type: Optional
204
- }] }]; }, propDecorators: { actionButton: [{
205
- type: ContentChild,
206
- args: [McOptionActionComponent]
207
- }], tooltipTrigger: [{
208
- type: ContentChild,
209
- args: [McTooltipTrigger]
210
- }], dropdownTrigger: [{
211
- type: ContentChild,
212
- args: [McDropdownTrigger]
213
- }], text: [{
214
- type: ViewChild,
215
- args: ['text', { static: false }]
216
- }], checkboxPosition: [{
217
- type: Input
218
- }], value: [{
219
- type: Input
220
- }], disabled: [{
221
- type: Input
222
- }], showCheckbox: [{
223
- type: Input
224
- }], selected: [{
225
- type: Input
226
- }] } });
227
- const MC_SELECTION_LIST_VALUE_ACCESSOR = {
228
- provide: NG_VALUE_ACCESSOR,
229
- useExisting: forwardRef(() => McListSelection),
230
- multi: true
231
- };
232
- class McListSelectionChange {
233
- constructor(source, option) {
234
- this.source = source;
235
- this.option = option;
236
- }
237
- }
238
- class McListSelectAllEvent {
239
- constructor(source, options) {
240
- this.source = source;
241
- this.options = options;
242
- }
243
- }
244
- class McListCopyEvent {
245
- constructor(source, option) {
246
- this.source = source;
247
- this.option = option;
248
- }
249
- }
250
- class McListSelectionBase {
251
- constructor(elementRef) {
252
- this.elementRef = elementRef;
253
- }
254
- }
255
- // tslint:disable-next-line:naming-convention
256
- const McListSelectionMixinBase = mixinTabIndex(mixinDisabled(McListSelectionBase));
257
- class McListSelection extends McListSelectionMixinBase {
258
- constructor(elementRef, changeDetectorRef, multiple, clipboard) {
259
- super(elementRef);
260
- this.changeDetectorRef = changeDetectorRef;
261
- this.clipboard = clipboard;
262
- this.onSelectAll = new EventEmitter();
263
- this.onCopy = new EventEmitter();
264
- this._autoSelect = true;
265
- this._noUnselectLast = true;
266
- this.horizontal = false;
267
- this._tabIndex = 0;
268
- this.userTabIndex = null;
269
- // Emits a change event whenever the selected state of an option changes.
270
- this.selectionChange = new EventEmitter();
271
- /** Emits whenever the component is destroyed. */
272
- this.destroyed = new Subject();
273
- /**
274
- * Function used for comparing an option against the selected value when determining which
275
- * options should appear as selected. The first argument is the value of an options. The second
276
- * one is a value from the selected value. A boolean must be returned.
277
- */
278
- this.compareWith = (a1, a2) => a1 === a2;
279
- // View to model callback that should be called if the list or its options lost focus.
280
- // tslint:disable-next-line:no-empty
281
- this.onTouched = () => { };
282
- // View to model callback that should be called whenever the selected options change.
283
- this.onChange = (_) => { };
284
- if (multiple === MultipleMode.CHECKBOX || multiple === MultipleMode.KEYBOARD) {
285
- this.multipleMode = multiple;
286
- }
287
- else if (multiple !== null) {
288
- this.multipleMode = MultipleMode.CHECKBOX;
289
- }
290
- if (this.multipleMode === MultipleMode.CHECKBOX) {
291
- this.autoSelect = false;
292
- this.noUnselectLast = false;
293
- }
294
- this.selectionModel = new SelectionModel(this.multiple);
295
- }
296
- get autoSelect() {
297
- return this._autoSelect;
298
- }
299
- set autoSelect(value) {
300
- this._autoSelect = coerceBooleanProperty(value);
301
- }
302
- get noUnselectLast() {
303
- return this._noUnselectLast;
304
- }
305
- set noUnselectLast(value) {
306
- this._noUnselectLast = coerceBooleanProperty(value);
307
- }
308
- get multiple() {
309
- return !!this.multipleMode;
310
- }
311
- get tabIndex() {
312
- return this.disabled ? -1 : this._tabIndex;
313
- }
314
- set tabIndex(value) {
315
- this.userTabIndex = value;
316
- this._tabIndex = value;
317
- }
318
- get showCheckbox() {
319
- return this.multipleMode === MultipleMode.CHECKBOX;
320
- }
321
- get optionFocusChanges() {
322
- return merge(...this.options.map((option) => option.onFocus));
323
- }
324
- get optionBlurChanges() {
325
- return merge(...this.options.map((option) => option.onBlur));
326
- }
327
- ngAfterContentInit() {
328
- this.horizontal = toBoolean(this.horizontal);
329
- this.keyManager = new FocusKeyManager(this.options)
330
- .withTypeAhead()
331
- .withVerticalOrientation(!this.horizontal)
332
- .withHorizontalOrientation(this.horizontal ? 'ltr' : null);
333
- this.keyManager.tabOut
334
- .pipe(takeUntil(this.destroyed))
335
- .subscribe(() => {
336
- this._tabIndex = -1;
337
- setTimeout(() => {
338
- this._tabIndex = this.userTabIndex || 0;
339
- this.changeDetectorRef.markForCheck();
340
- });
341
- });
342
- if (this._value) {
343
- this.setOptionsFromValues(this._value);
344
- }
345
- this.selectionModel.changed
346
- .pipe(takeUntil(this.destroyed))
347
- .subscribe((event) => {
348
- for (const item of event.added) {
349
- item.selected = true;
350
- }
351
- for (const item of event.removed) {
352
- item.selected = false;
353
- }
354
- });
355
- this.options.changes
356
- .pipe(startWith(null), takeUntil(this.destroyed))
357
- .subscribe(() => {
358
- this.resetOptions();
359
- // Check to see if we need to update our tab index
360
- this.updateTabIndex();
361
- });
362
- this.updateScrollSize();
363
- }
364
- ngOnDestroy() {
365
- this.destroyed.next();
366
- this.destroyed.complete();
367
- }
368
- focus() {
369
- if (this.options.length === 0) {
370
- return;
371
- }
372
- this.keyManager.setFirstItemActive();
373
- }
374
- blur() {
375
- if (!this.hasFocusedOption()) {
376
- this.keyManager.setActiveItem(-1);
377
- }
378
- this.onTouched();
379
- this.changeDetectorRef.markForCheck();
380
- }
381
- selectAll() {
382
- this.options.forEach((option) => option.setSelected(true));
383
- this.reportValueChange();
384
- }
385
- deselectAll() {
386
- this.options.forEach((option) => option.setSelected(false));
387
- this.reportValueChange();
388
- }
389
- updateScrollSize() {
390
- if (this.horizontal || !this.options.first) {
391
- return;
392
- }
393
- this.keyManager.withScrollSize(Math.floor(this.getHeight() / this.options.first.getHeight()));
394
- }
395
- setSelectedOptionsByClick(option, shiftKey, ctrlKey) {
396
- if (shiftKey && this.multiple) {
397
- this.selectActiveOptions();
398
- }
399
- else if (ctrlKey) {
400
- if (!this.canDeselectLast(option)) {
401
- return;
402
- }
403
- this.selectionModel.toggle(option);
404
- }
405
- else if (this.autoSelect) {
406
- this.selectionModel.clear();
407
- this.selectionModel.toggle(option);
408
- }
409
- else {
410
- this.selectionModel.toggle(option);
411
- }
412
- this.emitChangeEvent(option);
413
- this.reportValueChange();
414
- }
415
- setSelectedOptionsByKey(option, shiftKey, ctrlKey) {
416
- if (shiftKey && this.multiple) {
417
- this.selectActiveOptions();
418
- }
419
- else if (ctrlKey) {
420
- if (!this.canDeselectLast(option)) {
421
- return;
422
- }
423
- }
424
- else if (this.autoSelect) {
425
- this.options.forEach((item) => item.setSelected(false));
426
- option.setSelected(true);
427
- this.emitChangeEvent(option);
428
- this.reportValueChange();
429
- }
430
- }
431
- selectActiveOptions() {
432
- const options = this.options.toArray();
433
- let fromIndex = this.keyManager.previousActiveItemIndex;
434
- let toIndex = this.keyManager.previousActiveItemIndex = this.keyManager.activeItemIndex;
435
- const selectedOptionState = options[fromIndex].selected;
436
- if (toIndex === fromIndex) {
437
- return;
438
- }
439
- if (fromIndex > toIndex) {
440
- [fromIndex, toIndex] = [toIndex, fromIndex];
441
- }
442
- options
443
- .slice(fromIndex, toIndex + 1)
444
- .filter((item) => !item.disabled)
445
- .forEach((renderedOption) => {
446
- if (!selectedOptionState && this.noUnselectLast && this.selectionModel.selected.length === 1) {
447
- return;
448
- }
449
- renderedOption.setSelected(selectedOptionState);
450
- });
451
- }
452
- // Implemented as part of ControlValueAccessor.
453
- writeValue(values) {
454
- this._value = values;
455
- if (this.options) {
456
- this.setOptionsFromValues(values || []);
457
- }
458
- }
459
- // Implemented as part of ControlValueAccessor.
460
- registerOnChange(fn) {
461
- this.onChange = fn;
462
- }
463
- // Implemented as part of ControlValueAccessor.
464
- registerOnTouched(fn) {
465
- this.onTouched = fn;
466
- }
467
- // Implemented as a part of ControlValueAccessor.
468
- setDisabledState(isDisabled) {
469
- if (this.options) {
470
- this.options.forEach((option) => option.disabled = isDisabled);
471
- }
472
- }
473
- getSelectedOptionValues() {
474
- return this.options.filter((option) => option.selected).map((option) => option.value);
475
- }
476
- // Toggles the selected state of the currently focused option.
477
- toggleFocusedOption() {
478
- const focusedIndex = this.keyManager.activeItemIndex;
479
- if (focusedIndex != null && this.isValidIndex(focusedIndex)) {
480
- const focusedOption = this.options.toArray()[focusedIndex];
481
- if (focusedOption && this.canDeselectLast(focusedOption)) {
482
- focusedOption.toggle();
483
- // Emit a change event because the focused option changed its state through user interaction.
484
- this.emitChangeEvent(focusedOption);
485
- }
486
- }
487
- }
488
- canDeselectLast(listOption) {
489
- return !(this.noUnselectLast && this.selectionModel.selected.length === 1 && listOption.selected);
490
- }
491
- getHeight() {
492
- const clientRects = this.elementRef.nativeElement.getClientRects();
493
- return clientRects.length ? clientRects[0].height : 0;
494
- }
495
- // Removes an option from the selection list and updates the active item.
496
- removeOptionFromList(option) {
497
- if (!option.hasFocus) {
498
- return;
499
- }
500
- const optionIndex = this.getOptionIndex(option);
501
- // Check whether the option is the last item
502
- if (optionIndex > 0) {
503
- this.keyManager.setPreviousItemActive();
504
- }
505
- else if (optionIndex === 0 && this.options.length > 1) {
506
- this.keyManager.setNextItemActive();
507
- }
508
- }
509
- onKeyDown(event) {
510
- // tslint:disable-next-line: deprecation
511
- const keyCode = event.keyCode;
512
- if ([SPACE, ENTER, LEFT_ARROW, RIGHT_ARROW].includes(keyCode) || isVerticalMovement(event)) {
513
- event.preventDefault();
514
- }
515
- if (this.multiple && isSelectAll(event)) {
516
- this.selectAllOptions();
517
- event.preventDefault();
518
- return;
519
- }
520
- else if (isCopy(event)) {
521
- this.copyActiveOption();
522
- event.preventDefault();
523
- return;
524
- }
525
- else if ([SPACE, ENTER].includes(keyCode)) {
526
- this.toggleFocusedOption();
527
- return;
528
- }
529
- else if (keyCode === TAB) {
530
- this.keyManager.tabOut.next();
531
- return;
532
- }
533
- else if (keyCode === DOWN_ARROW) {
534
- this.keyManager.setNextItemActive();
535
- }
536
- else if (keyCode === UP_ARROW) {
537
- this.keyManager.setPreviousItemActive();
538
- }
539
- else if (keyCode === HOME) {
540
- this.keyManager.setFirstItemActive();
541
- }
542
- else if (keyCode === END) {
543
- this.keyManager.setLastItemActive();
544
- }
545
- else if (keyCode === PAGE_UP) {
546
- this.keyManager.setPreviousPageItemActive();
547
- }
548
- else if (keyCode === PAGE_DOWN) {
549
- this.keyManager.setNextPageItemActive();
550
- }
551
- if (this.keyManager.activeItem && isVerticalMovement(event)) {
552
- this.setSelectedOptionsByKey(this.keyManager.activeItem, hasModifierKey(event, 'shiftKey'), hasModifierKey(event, 'ctrlKey'));
553
- }
554
- }
555
- // Reports a value change to the ControlValueAccessor
556
- reportValueChange() {
557
- if (this.options) {
558
- const value = this.getSelectedOptionValues();
559
- this.onChange(value);
560
- this._value = value;
561
- }
562
- }
563
- // Emits a change event if the selected state of an option changed.
564
- emitChangeEvent(option) {
565
- this.selectionChange.emit(new McListSelectionChange(this, option));
566
- }
567
- updateTabIndex() {
568
- this._tabIndex = this.userTabIndex || (this.options.length === 0 ? -1 : 0);
569
- }
570
- onCopyDefaultHandler() {
571
- this.clipboard?.copy(this.keyManager.activeItem.value);
572
- }
573
- resetOptions() {
574
- this.dropSubscriptions();
575
- this.listenToOptionsFocus();
576
- }
577
- dropSubscriptions() {
578
- if (this.optionFocusSubscription) {
579
- this.optionFocusSubscription.unsubscribe();
580
- this.optionFocusSubscription = null;
581
- }
582
- if (this.optionBlurSubscription) {
583
- this.optionBlurSubscription.unsubscribe();
584
- this.optionBlurSubscription = null;
585
- }
586
- }
587
- listenToOptionsFocus() {
588
- this.optionFocusSubscription = this.optionFocusChanges
589
- .subscribe((event) => {
590
- const index = this.options.toArray().indexOf(event.option);
591
- if (this.isValidIndex(index)) {
592
- this.keyManager.updateActiveItem(index);
593
- }
594
- });
595
- this.optionBlurSubscription = this.optionBlurChanges
596
- .subscribe(() => this.blur());
597
- }
598
- /** Checks whether any of the options is focused. */
599
- hasFocusedOption() {
600
- return this.options.some((option) => option.hasFocus);
601
- }
602
- // Returns the option with the specified value.
603
- getOptionByValue(value) {
604
- return this.options.find((option) => option.value === value);
605
- }
606
- // Sets the selected options based on the specified values.
607
- setOptionsFromValues(values) {
608
- this.options.forEach((option) => option.setSelected(false));
609
- values
610
- .map((value) => this.getOptionByValue(value))
611
- .filter(Boolean)
612
- .forEach((option) => option.setSelected(true));
613
- }
614
- /**
615
- * Utility to ensure all indexes are valid.
616
- * @param index The index to be checked.
617
- * @returns True if the index is valid for our list of options.
618
- */
619
- isValidIndex(index) {
620
- return index >= 0 && index < this.options.length;
621
- }
622
- // Returns the index of the specified list option.
623
- getOptionIndex(option) {
624
- return this.options.toArray().indexOf(option);
625
- }
626
- selectAllOptions() {
627
- const optionsToSelect = this.options
628
- .filter((option) => !option.disabled);
629
- optionsToSelect
630
- .forEach((option) => option.setSelected(true));
631
- this.onSelectAll.emit(new McListSelectAllEvent(this, optionsToSelect));
632
- }
633
- copyActiveOption() {
634
- if (this.onCopy.observers.length) {
635
- this.onCopy.emit(new McListCopyEvent(this, this.keyManager.activeItem));
636
- }
637
- else {
638
- this.onCopyDefaultHandler();
639
- }
640
- }
641
- }
642
- /** @nocollapse */ /** @nocollapse */ McListSelection.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McListSelection, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: 'multiple', attribute: true }, { token: i3.Clipboard, optional: true }], target: i0.ɵɵFactoryTarget.Component });
643
- /** @nocollapse */ /** @nocollapse */ McListSelection.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: McListSelection, selector: "mc-list-selection", inputs: { disabled: "disabled", autoSelect: "autoSelect", noUnselectLast: "noUnselectLast", horizontal: "horizontal", tabIndex: "tabIndex", compareWith: "compareWith" }, outputs: { onSelectAll: "onSelectAll", onCopy: "onCopy", selectionChange: "selectionChange" }, host: { listeners: { "keydown": "onKeyDown($event)", "window:resize": "updateScrollSize()" }, properties: { "attr.tabindex": "-1", "attr.disabled": "disabled || null" }, classAttribute: "mc-list-selection" }, providers: [MC_SELECTION_LIST_VALUE_ACCESSOR], queries: [{ propertyName: "options", predicate: McListOption, descendants: true }], exportAs: ["mcListSelection"], usesInheritance: true, ngImport: i0, template: `
644
- <div [attr.tabindex]="tabIndex"
645
- (focus)="focus()"
646
- (blur)="blur()">
647
- <ng-content></ng-content>
648
- </div>`, isInline: true, styles: [".mc-divider{display:block;margin:0}.mc-divider.mc-divider_horizontal{border-top-width:var(--mc-divider-size-width, 1px);border-top-style:solid}.mc-divider.mc-divider_vertical{height:100%;border-right-width:var(--mc-divider-size-width, 1px);border-right-style:solid}.mc-divider.mc-divider_inset{margin-left:var(--mc-divider-size-inset-margin, 80px)}[dir=rtl] .mc-divider.mc-divider_inset{margin-left:auto;margin-right:var(--mc-divider-size-inset-margin, 80px)}.mc-no-select{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.mc-list,.mc-list-selection{display:block;outline:none}.mc-list-item,.mc-list-option{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;position:relative;display:flex;align-items:center;box-sizing:border-box;height:var(--mc-list-size-item-height, 32px);border:2px solid transparent;padding-left:var(--mc-list-size-horizontal-padding, 12px)}.mc-list-item .mc-list-text,.mc-list-option .mc-list-text{display:flex;flex-direction:column;width:100%;box-sizing:border-box;overflow:hidden;padding-right:var(--mc-list-size-horizontal-padding, 12px)}.mc-list-item .mc-list-text>*,.mc-list-option .mc-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.mc-list-item .mc-list-text:empty,.mc-list-option .mc-list-text:empty{display:none}.mc-list-item .mc-divider,.mc-list-option .mc-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mc-list-item .mc-divider,[dir=rtl] .mc-list-option .mc-divider{margin-left:auto;margin-right:0}.mc-list-item .mc-divider.mc-divider_inset,.mc-list-option .mc-divider.mc-divider_inset{position:absolute}.mc-list-item.mc-progress:after,.mc-list-option.mc-progress:after{top:-2px;right:-2px;bottom:-2px;left:-2px}.mc-list-item .mc-pseudo-checkbox,.mc-list-item .mc-icon,.mc-list-option .mc-pseudo-checkbox,.mc-list-option .mc-icon{margin-right:var(--mc-list-size-icon-right-margin, 8px)}.mc-list-item .mc-option-action,.mc-list-option .mc-option-action{display:none}.mc-list-item:not([disabled]):hover .mc-option-action,.mc-list-item:not([disabled]).mc-focused .mc-option-action,.mc-list-item:not([disabled]).mc-action-button-focused .mc-option-action,.mc-list-option:not([disabled]):hover .mc-option-action,.mc-list-option:not([disabled]).mc-focused .mc-option-action,.mc-list-option:not([disabled]).mc-action-button-focused .mc-option-action{display:flex}.mc-list-option:not([disabled]):not(.mc-disabled){cursor:pointer}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
649
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McListSelection, decorators: [{
650
- type: Component,
651
- args: [{ exportAs: 'mcListSelection', selector: 'mc-list-selection', template: `
652
- <div [attr.tabindex]="tabIndex"
653
- (focus)="focus()"
654
- (blur)="blur()">
655
- <ng-content></ng-content>
656
- </div>`, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, inputs: ['disabled'], host: {
657
- class: 'mc-list-selection',
658
- '[attr.tabindex]': '-1',
659
- '[attr.disabled]': 'disabled || null',
660
- '(keydown)': 'onKeyDown($event)',
661
- '(window:resize)': 'updateScrollSize()'
662
- }, providers: [MC_SELECTION_LIST_VALUE_ACCESSOR], preserveWhitespaces: false, styles: [".mc-divider{display:block;margin:0}.mc-divider.mc-divider_horizontal{border-top-width:var(--mc-divider-size-width, 1px);border-top-style:solid}.mc-divider.mc-divider_vertical{height:100%;border-right-width:var(--mc-divider-size-width, 1px);border-right-style:solid}.mc-divider.mc-divider_inset{margin-left:var(--mc-divider-size-inset-margin, 80px)}[dir=rtl] .mc-divider.mc-divider_inset{margin-left:auto;margin-right:var(--mc-divider-size-inset-margin, 80px)}.mc-no-select{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.mc-list,.mc-list-selection{display:block;outline:none}.mc-list-item,.mc-list-option{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;position:relative;display:flex;align-items:center;box-sizing:border-box;height:var(--mc-list-size-item-height, 32px);border:2px solid transparent;padding-left:var(--mc-list-size-horizontal-padding, 12px)}.mc-list-item .mc-list-text,.mc-list-option .mc-list-text{display:flex;flex-direction:column;width:100%;box-sizing:border-box;overflow:hidden;padding-right:var(--mc-list-size-horizontal-padding, 12px)}.mc-list-item .mc-list-text>*,.mc-list-option .mc-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.mc-list-item .mc-list-text:empty,.mc-list-option .mc-list-text:empty{display:none}.mc-list-item .mc-divider,.mc-list-option .mc-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mc-list-item .mc-divider,[dir=rtl] .mc-list-option .mc-divider{margin-left:auto;margin-right:0}.mc-list-item .mc-divider.mc-divider_inset,.mc-list-option .mc-divider.mc-divider_inset{position:absolute}.mc-list-item.mc-progress:after,.mc-list-option.mc-progress:after{top:-2px;right:-2px;bottom:-2px;left:-2px}.mc-list-item .mc-pseudo-checkbox,.mc-list-item .mc-icon,.mc-list-option .mc-pseudo-checkbox,.mc-list-option .mc-icon{margin-right:var(--mc-list-size-icon-right-margin, 8px)}.mc-list-item .mc-option-action,.mc-list-option .mc-option-action{display:none}.mc-list-item:not([disabled]):hover .mc-option-action,.mc-list-item:not([disabled]).mc-focused .mc-option-action,.mc-list-item:not([disabled]).mc-action-button-focused .mc-option-action,.mc-list-option:not([disabled]):hover .mc-option-action,.mc-list-option:not([disabled]).mc-focused .mc-option-action,.mc-list-option:not([disabled]).mc-action-button-focused .mc-option-action{display:flex}.mc-list-option:not([disabled]):not(.mc-disabled){cursor:pointer}\n"] }]
663
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.MultipleMode, decorators: [{
664
- type: Attribute,
665
- args: ['multiple']
666
- }] }, { type: i3.Clipboard, decorators: [{
667
- type: Optional
668
- }] }]; }, propDecorators: { options: [{
669
- type: ContentChildren,
670
- args: [McListOption, { descendants: true }]
671
- }], onSelectAll: [{
672
- type: Output
673
- }], onCopy: [{
674
- type: Output
675
- }], autoSelect: [{
676
- type: Input
677
- }], noUnselectLast: [{
678
- type: Input
679
- }], horizontal: [{
680
- type: Input
681
- }], tabIndex: [{
682
- type: Input
683
- }], selectionChange: [{
684
- type: Output
685
- }], compareWith: [{
686
- type: Input
19
+ /* tslint:disable:no-empty */
20
+ /**
21
+ * Component for list-options of selection-list. Each list-option can automatically
22
+ * generate a checkbox and can put current item into the selectionModel of selection-list
23
+ * if the current item is selected.
24
+ */
25
+ class McListOption {
26
+ constructor(elementRef, changeDetector, ngZone, listSelection, group) {
27
+ this.elementRef = elementRef;
28
+ this.changeDetector = changeDetector;
29
+ this.ngZone = ngZone;
30
+ this.listSelection = listSelection;
31
+ this.group = group;
32
+ this.hasFocus = false;
33
+ this.onFocus = new Subject();
34
+ this.onBlur = new Subject();
35
+ /**
36
+ * This is set to true after the first OnChanges cycle so we don't clear the value of `selected`
37
+ * in the first cycle.
38
+ */
39
+ this.inputsInitialized = false;
40
+ this._disabled = false;
41
+ this._selected = false;
42
+ }
43
+ get value() { return this._value; }
44
+ set value(newValue) {
45
+ if (this.selected && newValue !== this.value && this.inputsInitialized) {
46
+ this.selected = false;
47
+ }
48
+ this._value = newValue;
49
+ }
50
+ get disabled() {
51
+ const listSelectionDisabled = this.listSelection && this.listSelection.disabled;
52
+ const groupDisabled = this.group && this.group.disabled;
53
+ return listSelectionDisabled || groupDisabled || this._disabled;
54
+ }
55
+ set disabled(value) {
56
+ const newValue = toBoolean(value);
57
+ if (newValue !== this._disabled) {
58
+ this._disabled = newValue;
59
+ this.changeDetector.markForCheck();
60
+ }
61
+ }
62
+ get showCheckbox() {
63
+ return this._showCheckbox !== undefined ? this._showCheckbox : this.listSelection.showCheckbox;
64
+ }
65
+ set showCheckbox(value) {
66
+ this._showCheckbox = coerceBooleanProperty(value);
67
+ }
68
+ get selected() {
69
+ return this.listSelection.selectionModel?.isSelected(this) || false;
70
+ }
71
+ set selected(value) {
72
+ const isSelected = toBoolean(value);
73
+ if (isSelected !== this._selected) {
74
+ this.setSelected(isSelected);
75
+ }
76
+ }
77
+ get tabIndex() {
78
+ return this.disabled ? null : -1;
79
+ }
80
+ ngOnInit() {
81
+ const list = this.listSelection;
82
+ if (list._value && list._value.some((value) => list.compareWith(value, this._value))) {
83
+ this.setSelected(true);
84
+ }
85
+ const wasSelected = this._selected;
86
+ // List options that are selected at initialization can't be reported properly to the form
87
+ // control. This is because it takes some time until the selection-list knows about all
88
+ // available options. Also it can happen that the ControlValueAccessor has an initial value
89
+ // that should be used instead. Deferring the value change report to the next tick ensures
90
+ // that the form control value is not being overwritten.
91
+ Promise.resolve().then(() => {
92
+ if (this._selected || wasSelected) {
93
+ this.selected = true;
94
+ this.changeDetector.markForCheck();
95
+ }
96
+ });
97
+ this.inputsInitialized = true;
98
+ }
99
+ ngOnDestroy() {
100
+ if (this.selected) {
101
+ // We have to delay this until the next tick in order
102
+ // to avoid changed after checked errors.
103
+ Promise.resolve().then(() => this.selected = false);
104
+ }
105
+ this.listSelection.removeOptionFromList(this);
106
+ }
107
+ toggle() {
108
+ this.selected = !this.selected;
109
+ }
110
+ getLabel() {
111
+ return this.text ? this.text.nativeElement.textContent : '';
112
+ }
113
+ setSelected(selected) {
114
+ if (this._selected === selected || !this.listSelection.selectionModel) {
115
+ return;
116
+ }
117
+ this._selected = selected;
118
+ if (selected) {
119
+ this.listSelection.selectionModel.select(this);
120
+ }
121
+ else {
122
+ this.listSelection.selectionModel.deselect(this);
123
+ }
124
+ this.changeDetector.markForCheck();
125
+ }
126
+ getHeight() {
127
+ const clientRects = this.elementRef.nativeElement.getClientRects();
128
+ return clientRects.length ? clientRects[0].height : 0;
129
+ }
130
+ handleClick($event) {
131
+ if (this.disabled) {
132
+ return;
133
+ }
134
+ this.listSelection.setSelectedOptionsByClick(this, hasModifierKey($event, 'shiftKey'), hasModifierKey($event, 'ctrlKey'));
135
+ }
136
+ onKeydown($event) {
137
+ if (!this.actionButton) {
138
+ return;
139
+ }
140
+ if ($event.keyCode === TAB && !$event.shiftKey && !this.actionButton.hasFocus) {
141
+ this.actionButton.focus();
142
+ $event.preventDefault();
143
+ }
144
+ }
145
+ focus() {
146
+ if (this.disabled || this.hasFocus || this.actionButton?.hasFocus) {
147
+ return;
148
+ }
149
+ this.elementRef.nativeElement.focus();
150
+ this.onFocus.next({ option: this });
151
+ Promise.resolve().then(() => {
152
+ this.hasFocus = true;
153
+ this.changeDetector.markForCheck();
154
+ });
155
+ }
156
+ blur() {
157
+ // When animations are enabled, Angular may end up removing the option from the DOM a little
158
+ // earlier than usual, causing it to be blurred and throwing off the logic in the list
159
+ // that moves focus not the next item. To work around the issue, we defer marking the option
160
+ // as not focused until the next time the zone stabilizes.
161
+ this.ngZone.onStable
162
+ .asObservable()
163
+ .pipe(take(1))
164
+ .subscribe(() => {
165
+ this.ngZone.run(() => {
166
+ this.hasFocus = false;
167
+ if (this.actionButton?.hasFocus) {
168
+ return;
169
+ }
170
+ this.onBlur.next({ option: this });
171
+ });
172
+ });
173
+ }
174
+ getHostElement() {
175
+ return this.elementRef.nativeElement;
176
+ }
177
+ }
178
+ /** @nocollapse */ /** @nocollapse */ McListOption.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McListOption, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: forwardRef(() => McListSelection) }, { token: i1.McOptgroup, optional: true }], target: i0.ɵɵFactoryTarget.Component });
179
+ /** @nocollapse */ /** @nocollapse */ McListOption.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: McListOption, selector: "mc-list-option", inputs: { checkboxPosition: "checkboxPosition", value: "value", disabled: "disabled", showCheckbox: "showCheckbox", selected: "selected" }, host: { listeners: { "focusin": "focus()", "blur": "blur()", "click": "handleClick($event)", "keydown": "onKeydown($event)" }, properties: { "class.mc-selected": "selected", "class.mc-disabled": "disabled", "class.mc-focused": "hasFocus", "class.mc-action-button-focused": "actionButton?.active", "attr.tabindex": "tabIndex", "attr.disabled": "disabled || null" }, classAttribute: "mc-list-option" }, providers: [
180
+ { provide: MC_OPTION_ACTION_PARENT, useExisting: McListOption }
181
+ ], queries: [{ propertyName: "actionButton", first: true, predicate: McOptionActionComponent, descendants: true }, { propertyName: "tooltipTrigger", first: true, predicate: McTooltipTrigger, descendants: true }, { propertyName: "dropdownTrigger", first: true, predicate: McDropdownTrigger, descendants: true }], viewQueries: [{ propertyName: "text", first: true, predicate: ["text"], descendants: true }], exportAs: ["mcListOption"], ngImport: i0, template: "<mc-pseudo-checkbox\n *ngIf=\"showCheckbox\"\n [state]=\"selected ? 'checked' : 'unchecked'\"\n [disabled]=\"disabled\">\n</mc-pseudo-checkbox>\n\n<ng-content select=\"[mc-icon]\"></ng-content>\n\n<div class=\"mc-list-text\" #text>\n <ng-content></ng-content>\n</div>\n\n<ng-content select=\"mc-option-action\"></ng-content>\n", components: [{ type: i1.McPseudoCheckbox, selector: "mc-pseudo-checkbox", inputs: ["color", "state", "disabled"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
182
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McListOption, decorators: [{
183
+ type: Component,
184
+ args: [{ exportAs: 'mcListOption', selector: 'mc-list-option', host: {
185
+ class: 'mc-list-option',
186
+ '[class.mc-selected]': 'selected',
187
+ '[class.mc-disabled]': 'disabled',
188
+ '[class.mc-focused]': 'hasFocus',
189
+ '[class.mc-action-button-focused]': 'actionButton?.active',
190
+ '[attr.tabindex]': 'tabIndex',
191
+ '[attr.disabled]': 'disabled || null',
192
+ '(focusin)': 'focus()',
193
+ '(blur)': 'blur()',
194
+ '(click)': 'handleClick($event)',
195
+ '(keydown)': 'onKeydown($event)'
196
+ }, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
197
+ { provide: MC_OPTION_ACTION_PARENT, useExisting: McListOption }
198
+ ], template: "<mc-pseudo-checkbox\n *ngIf=\"showCheckbox\"\n [state]=\"selected ? 'checked' : 'unchecked'\"\n [disabled]=\"disabled\">\n</mc-pseudo-checkbox>\n\n<ng-content select=\"[mc-icon]\"></ng-content>\n\n<div class=\"mc-list-text\" #text>\n <ng-content></ng-content>\n</div>\n\n<ng-content select=\"mc-option-action\"></ng-content>\n" }]
199
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: McListSelection, decorators: [{
200
+ type: Inject,
201
+ args: [forwardRef(() => McListSelection)]
202
+ }] }, { type: i1.McOptgroup, decorators: [{
203
+ type: Optional
204
+ }] }]; }, propDecorators: { actionButton: [{
205
+ type: ContentChild,
206
+ args: [McOptionActionComponent]
207
+ }], tooltipTrigger: [{
208
+ type: ContentChild,
209
+ args: [McTooltipTrigger]
210
+ }], dropdownTrigger: [{
211
+ type: ContentChild,
212
+ args: [McDropdownTrigger]
213
+ }], text: [{
214
+ type: ViewChild,
215
+ args: ['text', { static: false }]
216
+ }], checkboxPosition: [{
217
+ type: Input
218
+ }], value: [{
219
+ type: Input
220
+ }], disabled: [{
221
+ type: Input
222
+ }], showCheckbox: [{
223
+ type: Input
224
+ }], selected: [{
225
+ type: Input
226
+ }] } });
227
+ const MC_SELECTION_LIST_VALUE_ACCESSOR = {
228
+ provide: NG_VALUE_ACCESSOR,
229
+ useExisting: forwardRef(() => McListSelection),
230
+ multi: true
231
+ };
232
+ class McListSelectionChange {
233
+ constructor(source, option) {
234
+ this.source = source;
235
+ this.option = option;
236
+ }
237
+ }
238
+ class McListSelectAllEvent {
239
+ constructor(source, options) {
240
+ this.source = source;
241
+ this.options = options;
242
+ }
243
+ }
244
+ class McListCopyEvent {
245
+ constructor(source, option) {
246
+ this.source = source;
247
+ this.option = option;
248
+ }
249
+ }
250
+ class McListSelectionBase {
251
+ constructor(elementRef) {
252
+ this.elementRef = elementRef;
253
+ }
254
+ }
255
+ // tslint:disable-next-line:naming-convention
256
+ const McListSelectionMixinBase = mixinTabIndex(mixinDisabled(McListSelectionBase));
257
+ class McListSelection extends McListSelectionMixinBase {
258
+ constructor(elementRef, changeDetectorRef, multiple, clipboard) {
259
+ super(elementRef);
260
+ this.changeDetectorRef = changeDetectorRef;
261
+ this.clipboard = clipboard;
262
+ this.onSelectAll = new EventEmitter();
263
+ this.onCopy = new EventEmitter();
264
+ this._autoSelect = true;
265
+ this._noUnselectLast = true;
266
+ this.horizontal = false;
267
+ this._tabIndex = 0;
268
+ this.userTabIndex = null;
269
+ // Emits a change event whenever the selected state of an option changes.
270
+ this.selectionChange = new EventEmitter();
271
+ /** Emits whenever the component is destroyed. */
272
+ this.destroyed = new Subject();
273
+ /**
274
+ * Function used for comparing an option against the selected value when determining which
275
+ * options should appear as selected. The first argument is the value of an options. The second
276
+ * one is a value from the selected value. A boolean must be returned.
277
+ */
278
+ this.compareWith = (a1, a2) => a1 === a2;
279
+ // View to model callback that should be called if the list or its options lost focus.
280
+ // tslint:disable-next-line:no-empty
281
+ this.onTouched = () => { };
282
+ // View to model callback that should be called whenever the selected options change.
283
+ this.onChange = (_) => { };
284
+ if (multiple === MultipleMode.CHECKBOX || multiple === MultipleMode.KEYBOARD) {
285
+ this.multipleMode = multiple;
286
+ }
287
+ else if (multiple !== null) {
288
+ this.multipleMode = MultipleMode.CHECKBOX;
289
+ }
290
+ if (this.multipleMode === MultipleMode.CHECKBOX) {
291
+ this.autoSelect = false;
292
+ this.noUnselectLast = false;
293
+ }
294
+ this.selectionModel = new SelectionModel(this.multiple);
295
+ }
296
+ get autoSelect() {
297
+ return this._autoSelect;
298
+ }
299
+ set autoSelect(value) {
300
+ this._autoSelect = coerceBooleanProperty(value);
301
+ }
302
+ get noUnselectLast() {
303
+ return this._noUnselectLast;
304
+ }
305
+ set noUnselectLast(value) {
306
+ this._noUnselectLast = coerceBooleanProperty(value);
307
+ }
308
+ get multiple() {
309
+ return !!this.multipleMode;
310
+ }
311
+ get tabIndex() {
312
+ return this.disabled ? -1 : this._tabIndex;
313
+ }
314
+ set tabIndex(value) {
315
+ this.userTabIndex = value;
316
+ this._tabIndex = value;
317
+ }
318
+ get showCheckbox() {
319
+ return this.multipleMode === MultipleMode.CHECKBOX;
320
+ }
321
+ get optionFocusChanges() {
322
+ return merge(...this.options.map((option) => option.onFocus));
323
+ }
324
+ get optionBlurChanges() {
325
+ return merge(...this.options.map((option) => option.onBlur));
326
+ }
327
+ ngAfterContentInit() {
328
+ this.horizontal = toBoolean(this.horizontal);
329
+ this.keyManager = new FocusKeyManager(this.options)
330
+ .withTypeAhead()
331
+ .withVerticalOrientation(!this.horizontal)
332
+ .withHorizontalOrientation(this.horizontal ? 'ltr' : null);
333
+ this.keyManager.tabOut
334
+ .pipe(takeUntil(this.destroyed))
335
+ .subscribe(() => {
336
+ this._tabIndex = -1;
337
+ setTimeout(() => {
338
+ this._tabIndex = this.userTabIndex || 0;
339
+ this.changeDetectorRef.markForCheck();
340
+ });
341
+ });
342
+ if (this._value) {
343
+ this.setOptionsFromValues(this._value);
344
+ }
345
+ this.selectionModel.changed
346
+ .pipe(takeUntil(this.destroyed))
347
+ .subscribe((event) => {
348
+ for (const item of event.added) {
349
+ item.selected = true;
350
+ }
351
+ for (const item of event.removed) {
352
+ item.selected = false;
353
+ }
354
+ });
355
+ this.options.changes
356
+ .pipe(startWith(null), takeUntil(this.destroyed))
357
+ .subscribe(() => {
358
+ this.resetOptions();
359
+ // Check to see if we need to update our tab index
360
+ this.updateTabIndex();
361
+ });
362
+ this.updateScrollSize();
363
+ }
364
+ ngOnDestroy() {
365
+ this.destroyed.next();
366
+ this.destroyed.complete();
367
+ }
368
+ focus() {
369
+ if (this.options.length === 0) {
370
+ return;
371
+ }
372
+ this.keyManager.setFirstItemActive();
373
+ }
374
+ blur() {
375
+ if (!this.hasFocusedOption()) {
376
+ this.keyManager.setActiveItem(-1);
377
+ }
378
+ this.onTouched();
379
+ this.changeDetectorRef.markForCheck();
380
+ }
381
+ selectAll() {
382
+ this.options.forEach((option) => option.setSelected(true));
383
+ this.reportValueChange();
384
+ }
385
+ deselectAll() {
386
+ this.options.forEach((option) => option.setSelected(false));
387
+ this.reportValueChange();
388
+ }
389
+ updateScrollSize() {
390
+ if (this.horizontal || !this.options.first) {
391
+ return;
392
+ }
393
+ this.keyManager.withScrollSize(Math.floor(this.getHeight() / this.options.first.getHeight()));
394
+ }
395
+ setSelectedOptionsByClick(option, shiftKey, ctrlKey) {
396
+ if (shiftKey && this.multiple) {
397
+ this.selectActiveOptions();
398
+ }
399
+ else if (ctrlKey) {
400
+ if (!this.canDeselectLast(option)) {
401
+ return;
402
+ }
403
+ this.selectionModel.toggle(option);
404
+ }
405
+ else if (this.autoSelect) {
406
+ this.selectionModel.clear();
407
+ this.selectionModel.toggle(option);
408
+ }
409
+ else {
410
+ this.selectionModel.toggle(option);
411
+ }
412
+ this.emitChangeEvent(option);
413
+ this.reportValueChange();
414
+ }
415
+ setSelectedOptionsByKey(option, shiftKey, ctrlKey) {
416
+ if (shiftKey && this.multiple) {
417
+ this.selectActiveOptions();
418
+ }
419
+ else if (ctrlKey) {
420
+ if (!this.canDeselectLast(option)) {
421
+ return;
422
+ }
423
+ }
424
+ else if (this.autoSelect) {
425
+ this.options.forEach((item) => item.setSelected(false));
426
+ option.setSelected(true);
427
+ }
428
+ if (shiftKey || ctrlKey || this.autoSelect) {
429
+ this.emitChangeEvent(option);
430
+ this.reportValueChange();
431
+ }
432
+ }
433
+ selectActiveOptions() {
434
+ const options = this.options.toArray();
435
+ let fromIndex = this.keyManager.previousActiveItemIndex;
436
+ let toIndex = this.keyManager.previousActiveItemIndex = this.keyManager.activeItemIndex;
437
+ const selectedOptionState = options[fromIndex].selected;
438
+ if (toIndex === fromIndex) {
439
+ return;
440
+ }
441
+ if (fromIndex > toIndex) {
442
+ [fromIndex, toIndex] = [toIndex, fromIndex];
443
+ }
444
+ options
445
+ .slice(fromIndex, toIndex + 1)
446
+ .filter((item) => !item.disabled)
447
+ .forEach((renderedOption) => {
448
+ if (!selectedOptionState && this.noUnselectLast && this.selectionModel.selected.length === 1) {
449
+ return;
450
+ }
451
+ renderedOption.setSelected(selectedOptionState);
452
+ });
453
+ }
454
+ // Implemented as part of ControlValueAccessor.
455
+ writeValue(values) {
456
+ this._value = values;
457
+ if (this.options) {
458
+ this.setOptionsFromValues(values || []);
459
+ }
460
+ }
461
+ // Implemented as part of ControlValueAccessor.
462
+ registerOnChange(fn) {
463
+ this.onChange = fn;
464
+ }
465
+ // Implemented as part of ControlValueAccessor.
466
+ registerOnTouched(fn) {
467
+ this.onTouched = fn;
468
+ }
469
+ // Implemented as a part of ControlValueAccessor.
470
+ setDisabledState(isDisabled) {
471
+ if (this.options) {
472
+ this.options.forEach((option) => option.disabled = isDisabled);
473
+ }
474
+ }
475
+ getSelectedOptionValues() {
476
+ return this.options.filter((option) => option.selected).map((option) => option.value);
477
+ }
478
+ // Toggles the selected state of the currently focused option.
479
+ toggleFocusedOption() {
480
+ const focusedIndex = this.keyManager.activeItemIndex;
481
+ if (focusedIndex != null && this.isValidIndex(focusedIndex)) {
482
+ const focusedOption = this.options.toArray()[focusedIndex];
483
+ if (focusedOption && this.canDeselectLast(focusedOption)) {
484
+ focusedOption.toggle();
485
+ // Emit a change event because the focused option changed its state through user interaction.
486
+ this.emitChangeEvent(focusedOption);
487
+ this.reportValueChange();
488
+ }
489
+ }
490
+ }
491
+ canDeselectLast(listOption) {
492
+ return !(this.noUnselectLast && this.selectionModel.selected.length === 1 && listOption.selected);
493
+ }
494
+ getHeight() {
495
+ const clientRects = this.elementRef.nativeElement.getClientRects();
496
+ return clientRects.length ? clientRects[0].height : 0;
497
+ }
498
+ // Removes an option from the selection list and updates the active item.
499
+ removeOptionFromList(option) {
500
+ if (!option.hasFocus) {
501
+ return;
502
+ }
503
+ const optionIndex = this.getOptionIndex(option);
504
+ // Check whether the option is the last item
505
+ if (optionIndex > 0) {
506
+ this.keyManager.setPreviousItemActive();
507
+ }
508
+ else if (optionIndex === 0 && this.options.length > 1) {
509
+ this.keyManager.setNextItemActive();
510
+ }
511
+ }
512
+ onKeyDown(event) {
513
+ // tslint:disable-next-line: deprecation
514
+ const keyCode = event.keyCode;
515
+ if ([SPACE, ENTER, LEFT_ARROW, RIGHT_ARROW].includes(keyCode) || isVerticalMovement(event)) {
516
+ event.preventDefault();
517
+ }
518
+ if (this.multiple && isSelectAll(event)) {
519
+ this.selectAllOptions();
520
+ event.preventDefault();
521
+ return;
522
+ }
523
+ else if (isCopy(event)) {
524
+ this.copyActiveOption();
525
+ event.preventDefault();
526
+ return;
527
+ }
528
+ else if ([SPACE, ENTER].includes(keyCode)) {
529
+ this.toggleFocusedOption();
530
+ return;
531
+ }
532
+ else if (keyCode === TAB) {
533
+ this.keyManager.tabOut.next();
534
+ return;
535
+ }
536
+ else if (keyCode === DOWN_ARROW) {
537
+ this.keyManager.setNextItemActive();
538
+ }
539
+ else if (keyCode === UP_ARROW) {
540
+ this.keyManager.setPreviousItemActive();
541
+ }
542
+ else if (keyCode === HOME) {
543
+ this.keyManager.setFirstItemActive();
544
+ }
545
+ else if (keyCode === END) {
546
+ this.keyManager.setLastItemActive();
547
+ }
548
+ else if (keyCode === PAGE_UP) {
549
+ this.keyManager.setPreviousPageItemActive();
550
+ }
551
+ else if (keyCode === PAGE_DOWN) {
552
+ this.keyManager.setNextPageItemActive();
553
+ }
554
+ if (this.keyManager.activeItem && isVerticalMovement(event)) {
555
+ this.setSelectedOptionsByKey(this.keyManager.activeItem, hasModifierKey(event, 'shiftKey'), hasModifierKey(event, 'ctrlKey'));
556
+ }
557
+ }
558
+ // Reports a value change to the ControlValueAccessor
559
+ reportValueChange() {
560
+ if (this.options) {
561
+ const value = this.getSelectedOptionValues();
562
+ this.onChange(value);
563
+ this._value = value;
564
+ }
565
+ }
566
+ // Emits a change event if the selected state of an option changed.
567
+ emitChangeEvent(option) {
568
+ this.selectionChange.emit(new McListSelectionChange(this, option));
569
+ }
570
+ updateTabIndex() {
571
+ this._tabIndex = this.userTabIndex || (this.options.length === 0 ? -1 : 0);
572
+ }
573
+ onCopyDefaultHandler() {
574
+ this.clipboard?.copy(this.keyManager.activeItem.value);
575
+ }
576
+ resetOptions() {
577
+ this.dropSubscriptions();
578
+ this.listenToOptionsFocus();
579
+ }
580
+ dropSubscriptions() {
581
+ if (this.optionFocusSubscription) {
582
+ this.optionFocusSubscription.unsubscribe();
583
+ this.optionFocusSubscription = null;
584
+ }
585
+ if (this.optionBlurSubscription) {
586
+ this.optionBlurSubscription.unsubscribe();
587
+ this.optionBlurSubscription = null;
588
+ }
589
+ }
590
+ listenToOptionsFocus() {
591
+ this.optionFocusSubscription = this.optionFocusChanges
592
+ .subscribe((event) => {
593
+ const index = this.options.toArray().indexOf(event.option);
594
+ if (this.isValidIndex(index)) {
595
+ this.keyManager.updateActiveItem(index);
596
+ }
597
+ });
598
+ this.optionBlurSubscription = this.optionBlurChanges
599
+ .subscribe(() => this.blur());
600
+ }
601
+ /** Checks whether any of the options is focused. */
602
+ hasFocusedOption() {
603
+ return this.options.some((option) => option.hasFocus);
604
+ }
605
+ // Returns the option with the specified value.
606
+ getOptionByValue(value) {
607
+ return this.options.find((option) => option.value === value);
608
+ }
609
+ // Sets the selected options based on the specified values.
610
+ setOptionsFromValues(values) {
611
+ this.options.forEach((option) => option.setSelected(false));
612
+ values
613
+ .map((value) => this.getOptionByValue(value))
614
+ .filter(Boolean)
615
+ .forEach((option) => option.setSelected(true));
616
+ }
617
+ /**
618
+ * Utility to ensure all indexes are valid.
619
+ * @param index The index to be checked.
620
+ * @returns True if the index is valid for our list of options.
621
+ */
622
+ isValidIndex(index) {
623
+ return index >= 0 && index < this.options.length;
624
+ }
625
+ // Returns the index of the specified list option.
626
+ getOptionIndex(option) {
627
+ return this.options.toArray().indexOf(option);
628
+ }
629
+ selectAllOptions() {
630
+ const optionsToSelect = this.options
631
+ .filter((option) => !option.disabled);
632
+ optionsToSelect
633
+ .forEach((option) => option.setSelected(true));
634
+ this.onSelectAll.emit(new McListSelectAllEvent(this, optionsToSelect));
635
+ }
636
+ copyActiveOption() {
637
+ if (this.onCopy.observers.length) {
638
+ this.onCopy.emit(new McListCopyEvent(this, this.keyManager.activeItem));
639
+ }
640
+ else {
641
+ this.onCopyDefaultHandler();
642
+ }
643
+ }
644
+ }
645
+ /** @nocollapse */ /** @nocollapse */ McListSelection.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McListSelection, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: 'multiple', attribute: true }, { token: i3.Clipboard, optional: true }], target: i0.ɵɵFactoryTarget.Component });
646
+ /** @nocollapse */ /** @nocollapse */ McListSelection.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: McListSelection, selector: "mc-list-selection", inputs: { disabled: "disabled", autoSelect: "autoSelect", noUnselectLast: "noUnselectLast", horizontal: "horizontal", tabIndex: "tabIndex", compareWith: "compareWith" }, outputs: { onSelectAll: "onSelectAll", onCopy: "onCopy", selectionChange: "selectionChange" }, host: { listeners: { "keydown": "onKeyDown($event)", "window:resize": "updateScrollSize()" }, properties: { "attr.tabindex": "-1", "attr.disabled": "disabled || null" }, classAttribute: "mc-list-selection" }, providers: [MC_SELECTION_LIST_VALUE_ACCESSOR], queries: [{ propertyName: "options", predicate: McListOption, descendants: true }], exportAs: ["mcListSelection"], usesInheritance: true, ngImport: i0, template: `
647
+ <div [attr.tabindex]="tabIndex"
648
+ (focus)="focus()"
649
+ (blur)="blur()">
650
+ <ng-content></ng-content>
651
+ </div>`, isInline: true, styles: [".mc-divider{display:block;margin:0}.mc-divider.mc-divider_horizontal{border-top-width:var(--mc-divider-size-width, 1px);border-top-style:solid}.mc-divider.mc-divider_vertical{height:100%;border-right-width:var(--mc-divider-size-width, 1px);border-right-style:solid}.mc-divider.mc-divider_inset{margin-left:var(--mc-divider-size-inset-margin, 80px)}[dir=rtl] .mc-divider.mc-divider_inset{margin-left:auto;margin-right:var(--mc-divider-size-inset-margin, 80px)}.mc-no-select{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.mc-list,.mc-list-selection{display:block;outline:none}.mc-list-item,.mc-list-option{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;position:relative;display:flex;align-items:center;box-sizing:border-box;height:var(--mc-list-size-item-height, 32px);border:2px solid transparent;padding-left:var(--mc-list-size-horizontal-padding, 12px)}.mc-list-item .mc-list-text,.mc-list-option .mc-list-text{display:flex;flex-direction:column;width:100%;box-sizing:border-box;overflow:hidden;padding-right:var(--mc-list-size-horizontal-padding, 12px)}.mc-list-item .mc-list-text>*,.mc-list-option .mc-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.mc-list-item .mc-list-text:empty,.mc-list-option .mc-list-text:empty{display:none}.mc-list-item .mc-divider,.mc-list-option .mc-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mc-list-item .mc-divider,[dir=rtl] .mc-list-option .mc-divider{margin-left:auto;margin-right:0}.mc-list-item .mc-divider.mc-divider_inset,.mc-list-option .mc-divider.mc-divider_inset{position:absolute}.mc-list-item.mc-progress:after,.mc-list-option.mc-progress:after{top:-2px;right:-2px;bottom:-2px;left:-2px}.mc-list-item .mc-pseudo-checkbox,.mc-list-item .mc-icon,.mc-list-option .mc-pseudo-checkbox,.mc-list-option .mc-icon{margin-right:var(--mc-list-size-icon-right-margin, 8px)}.mc-list-item .mc-option-action,.mc-list-option .mc-option-action{display:none}.mc-list-item:not([disabled]):hover .mc-option-action,.mc-list-item:not([disabled]).mc-focused .mc-option-action,.mc-list-item:not([disabled]).mc-action-button-focused .mc-option-action,.mc-list-option:not([disabled]):hover .mc-option-action,.mc-list-option:not([disabled]).mc-focused .mc-option-action,.mc-list-option:not([disabled]).mc-action-button-focused .mc-option-action{display:flex}.mc-list-option:not([disabled]):not(.mc-disabled){cursor:pointer}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
652
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McListSelection, decorators: [{
653
+ type: Component,
654
+ args: [{ exportAs: 'mcListSelection', selector: 'mc-list-selection', template: `
655
+ <div [attr.tabindex]="tabIndex"
656
+ (focus)="focus()"
657
+ (blur)="blur()">
658
+ <ng-content></ng-content>
659
+ </div>`, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, inputs: ['disabled'], host: {
660
+ class: 'mc-list-selection',
661
+ '[attr.tabindex]': '-1',
662
+ '[attr.disabled]': 'disabled || null',
663
+ '(keydown)': 'onKeyDown($event)',
664
+ '(window:resize)': 'updateScrollSize()'
665
+ }, providers: [MC_SELECTION_LIST_VALUE_ACCESSOR], preserveWhitespaces: false, styles: [".mc-divider{display:block;margin:0}.mc-divider.mc-divider_horizontal{border-top-width:var(--mc-divider-size-width, 1px);border-top-style:solid}.mc-divider.mc-divider_vertical{height:100%;border-right-width:var(--mc-divider-size-width, 1px);border-right-style:solid}.mc-divider.mc-divider_inset{margin-left:var(--mc-divider-size-inset-margin, 80px)}[dir=rtl] .mc-divider.mc-divider_inset{margin-left:auto;margin-right:var(--mc-divider-size-inset-margin, 80px)}.mc-no-select{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.mc-list,.mc-list-selection{display:block;outline:none}.mc-list-item,.mc-list-option{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;position:relative;display:flex;align-items:center;box-sizing:border-box;height:var(--mc-list-size-item-height, 32px);border:2px solid transparent;padding-left:var(--mc-list-size-horizontal-padding, 12px)}.mc-list-item .mc-list-text,.mc-list-option .mc-list-text{display:flex;flex-direction:column;width:100%;box-sizing:border-box;overflow:hidden;padding-right:var(--mc-list-size-horizontal-padding, 12px)}.mc-list-item .mc-list-text>*,.mc-list-option .mc-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.mc-list-item .mc-list-text:empty,.mc-list-option .mc-list-text:empty{display:none}.mc-list-item .mc-divider,.mc-list-option .mc-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mc-list-item .mc-divider,[dir=rtl] .mc-list-option .mc-divider{margin-left:auto;margin-right:0}.mc-list-item .mc-divider.mc-divider_inset,.mc-list-option .mc-divider.mc-divider_inset{position:absolute}.mc-list-item.mc-progress:after,.mc-list-option.mc-progress:after{top:-2px;right:-2px;bottom:-2px;left:-2px}.mc-list-item .mc-pseudo-checkbox,.mc-list-item .mc-icon,.mc-list-option .mc-pseudo-checkbox,.mc-list-option .mc-icon{margin-right:var(--mc-list-size-icon-right-margin, 8px)}.mc-list-item .mc-option-action,.mc-list-option .mc-option-action{display:none}.mc-list-item:not([disabled]):hover .mc-option-action,.mc-list-item:not([disabled]).mc-focused .mc-option-action,.mc-list-item:not([disabled]).mc-action-button-focused .mc-option-action,.mc-list-option:not([disabled]):hover .mc-option-action,.mc-list-option:not([disabled]).mc-focused .mc-option-action,.mc-list-option:not([disabled]).mc-action-button-focused .mc-option-action{display:flex}.mc-list-option:not([disabled]):not(.mc-disabled){cursor:pointer}\n"] }]
666
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.MultipleMode, decorators: [{
667
+ type: Attribute,
668
+ args: ['multiple']
669
+ }] }, { type: i3.Clipboard, decorators: [{
670
+ type: Optional
671
+ }] }]; }, propDecorators: { options: [{
672
+ type: ContentChildren,
673
+ args: [McListOption, { descendants: true }]
674
+ }], onSelectAll: [{
675
+ type: Output
676
+ }], onCopy: [{
677
+ type: Output
678
+ }], autoSelect: [{
679
+ type: Input
680
+ }], noUnselectLast: [{
681
+ type: Input
682
+ }], horizontal: [{
683
+ type: Input
684
+ }], tabIndex: [{
685
+ type: Input
686
+ }], selectionChange: [{
687
+ type: Output
688
+ }], compareWith: [{
689
+ type: Input
687
690
  }] } });
688
691
 
689
- // todo пока не делаем, перенесено из материала, но у нас в доках таких простых списков нет.
690
- class McList {
691
- }
692
- /** @nocollapse */ /** @nocollapse */ McList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McList, deps: [], target: i0.ɵɵFactoryTarget.Component });
693
- /** @nocollapse */ /** @nocollapse */ McList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: McList, selector: "mc-list", host: { classAttribute: "mc-list" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".mc-divider{display:block;margin:0}.mc-divider.mc-divider_horizontal{border-top-width:var(--mc-divider-size-width, 1px);border-top-style:solid}.mc-divider.mc-divider_vertical{height:100%;border-right-width:var(--mc-divider-size-width, 1px);border-right-style:solid}.mc-divider.mc-divider_inset{margin-left:var(--mc-divider-size-inset-margin, 80px)}[dir=rtl] .mc-divider.mc-divider_inset{margin-left:auto;margin-right:var(--mc-divider-size-inset-margin, 80px)}.mc-no-select{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.mc-list,.mc-list-selection{display:block;outline:none}.mc-list-item,.mc-list-option{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;position:relative;display:flex;align-items:center;box-sizing:border-box;height:var(--mc-list-size-item-height, 32px);border:2px solid transparent;padding-left:var(--mc-list-size-horizontal-padding, 12px)}.mc-list-item .mc-list-text,.mc-list-option .mc-list-text{display:flex;flex-direction:column;width:100%;box-sizing:border-box;overflow:hidden;padding-right:var(--mc-list-size-horizontal-padding, 12px)}.mc-list-item .mc-list-text>*,.mc-list-option .mc-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.mc-list-item .mc-list-text:empty,.mc-list-option .mc-list-text:empty{display:none}.mc-list-item .mc-divider,.mc-list-option .mc-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mc-list-item .mc-divider,[dir=rtl] .mc-list-option .mc-divider{margin-left:auto;margin-right:0}.mc-list-item .mc-divider.mc-divider_inset,.mc-list-option .mc-divider.mc-divider_inset{position:absolute}.mc-list-item.mc-progress:after,.mc-list-option.mc-progress:after{top:-2px;right:-2px;bottom:-2px;left:-2px}.mc-list-item .mc-pseudo-checkbox,.mc-list-item .mc-icon,.mc-list-option .mc-pseudo-checkbox,.mc-list-option .mc-icon{margin-right:var(--mc-list-size-icon-right-margin, 8px)}.mc-list-item .mc-option-action,.mc-list-option .mc-option-action{display:none}.mc-list-item:not([disabled]):hover .mc-option-action,.mc-list-item:not([disabled]).mc-focused .mc-option-action,.mc-list-item:not([disabled]).mc-action-button-focused .mc-option-action,.mc-list-option:not([disabled]):hover .mc-option-action,.mc-list-option:not([disabled]).mc-focused .mc-option-action,.mc-list-option:not([disabled]).mc-action-button-focused .mc-option-action{display:flex}.mc-list-option:not([disabled]):not(.mc-disabled){cursor:pointer}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
694
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McList, decorators: [{
695
- type: Component,
696
- args: [{ selector: 'mc-list', host: { class: 'mc-list' }, template: '<ng-content></ng-content>', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: [".mc-divider{display:block;margin:0}.mc-divider.mc-divider_horizontal{border-top-width:var(--mc-divider-size-width, 1px);border-top-style:solid}.mc-divider.mc-divider_vertical{height:100%;border-right-width:var(--mc-divider-size-width, 1px);border-right-style:solid}.mc-divider.mc-divider_inset{margin-left:var(--mc-divider-size-inset-margin, 80px)}[dir=rtl] .mc-divider.mc-divider_inset{margin-left:auto;margin-right:var(--mc-divider-size-inset-margin, 80px)}.mc-no-select{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.mc-list,.mc-list-selection{display:block;outline:none}.mc-list-item,.mc-list-option{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;position:relative;display:flex;align-items:center;box-sizing:border-box;height:var(--mc-list-size-item-height, 32px);border:2px solid transparent;padding-left:var(--mc-list-size-horizontal-padding, 12px)}.mc-list-item .mc-list-text,.mc-list-option .mc-list-text{display:flex;flex-direction:column;width:100%;box-sizing:border-box;overflow:hidden;padding-right:var(--mc-list-size-horizontal-padding, 12px)}.mc-list-item .mc-list-text>*,.mc-list-option .mc-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.mc-list-item .mc-list-text:empty,.mc-list-option .mc-list-text:empty{display:none}.mc-list-item .mc-divider,.mc-list-option .mc-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mc-list-item .mc-divider,[dir=rtl] .mc-list-option .mc-divider{margin-left:auto;margin-right:0}.mc-list-item .mc-divider.mc-divider_inset,.mc-list-option .mc-divider.mc-divider_inset{position:absolute}.mc-list-item.mc-progress:after,.mc-list-option.mc-progress:after{top:-2px;right:-2px;bottom:-2px;left:-2px}.mc-list-item .mc-pseudo-checkbox,.mc-list-item .mc-icon,.mc-list-option .mc-pseudo-checkbox,.mc-list-option .mc-icon{margin-right:var(--mc-list-size-icon-right-margin, 8px)}.mc-list-item .mc-option-action,.mc-list-option .mc-option-action{display:none}.mc-list-item:not([disabled]):hover .mc-option-action,.mc-list-item:not([disabled]).mc-focused .mc-option-action,.mc-list-item:not([disabled]).mc-action-button-focused .mc-option-action,.mc-list-option:not([disabled]):hover .mc-option-action,.mc-list-option:not([disabled]).mc-focused .mc-option-action,.mc-list-option:not([disabled]).mc-action-button-focused .mc-option-action{display:flex}.mc-list-option:not([disabled]):not(.mc-disabled){cursor:pointer}\n"] }]
697
- }] });
698
- class McListItem {
699
- constructor(elementRef) {
700
- this.elementRef = elementRef;
701
- }
702
- ngAfterContentInit() {
703
- // tslint:disable-next-line:no-unused-expression
704
- new McLineSetter(this.lines, this.elementRef);
705
- }
706
- handleFocus() {
707
- this.elementRef.nativeElement.classList.add('mc-focused');
708
- }
709
- handleBlur() {
710
- this.elementRef.nativeElement.classList.remove('mc-focused');
711
- }
712
- getHostElement() {
713
- return this.elementRef.nativeElement;
714
- }
715
- }
716
- /** @nocollapse */ /** @nocollapse */ McListItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McListItem, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
717
- /** @nocollapse */ /** @nocollapse */ McListItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: McListItem, selector: "mc-list-item, a[mc-list-item]", host: { listeners: { "focus": "handleFocus()", "blur": "handleBlur()" }, classAttribute: "mc-list-item" }, queries: [{ propertyName: "lines", predicate: McLine }], ngImport: i0, template: "<ng-content select=\"[mc-list-icon], [mcListIcon]\"></ng-content>\r\n\r\n<div class=\"mc-list-text\">\r\n <ng-content select=\"[mc-line], [mcLine]\"></ng-content>\r\n</div>\r\n\r\n<ng-content></ng-content>\r\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
718
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McListItem, decorators: [{
719
- type: Component,
720
- args: [{ selector: 'mc-list-item, a[mc-list-item]', host: {
721
- class: 'mc-list-item',
722
- '(focus)': 'handleFocus()',
723
- '(blur)': 'handleBlur()'
724
- }, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content select=\"[mc-list-icon], [mcListIcon]\"></ng-content>\r\n\r\n<div class=\"mc-list-text\">\r\n <ng-content select=\"[mc-line], [mcLine]\"></ng-content>\r\n</div>\r\n\r\n<ng-content></ng-content>\r\n" }]
725
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { lines: [{
726
- type: ContentChildren,
727
- args: [McLine]
692
+ // todo пока не делаем, перенесено из материала, но у нас в доках таких простых списков нет.
693
+ class McList {
694
+ }
695
+ /** @nocollapse */ /** @nocollapse */ McList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McList, deps: [], target: i0.ɵɵFactoryTarget.Component });
696
+ /** @nocollapse */ /** @nocollapse */ McList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: McList, selector: "mc-list", host: { classAttribute: "mc-list" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".mc-divider{display:block;margin:0}.mc-divider.mc-divider_horizontal{border-top-width:var(--mc-divider-size-width, 1px);border-top-style:solid}.mc-divider.mc-divider_vertical{height:100%;border-right-width:var(--mc-divider-size-width, 1px);border-right-style:solid}.mc-divider.mc-divider_inset{margin-left:var(--mc-divider-size-inset-margin, 80px)}[dir=rtl] .mc-divider.mc-divider_inset{margin-left:auto;margin-right:var(--mc-divider-size-inset-margin, 80px)}.mc-no-select{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.mc-list,.mc-list-selection{display:block;outline:none}.mc-list-item,.mc-list-option{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;position:relative;display:flex;align-items:center;box-sizing:border-box;height:var(--mc-list-size-item-height, 32px);border:2px solid transparent;padding-left:var(--mc-list-size-horizontal-padding, 12px)}.mc-list-item .mc-list-text,.mc-list-option .mc-list-text{display:flex;flex-direction:column;width:100%;box-sizing:border-box;overflow:hidden;padding-right:var(--mc-list-size-horizontal-padding, 12px)}.mc-list-item .mc-list-text>*,.mc-list-option .mc-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.mc-list-item .mc-list-text:empty,.mc-list-option .mc-list-text:empty{display:none}.mc-list-item .mc-divider,.mc-list-option .mc-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mc-list-item .mc-divider,[dir=rtl] .mc-list-option .mc-divider{margin-left:auto;margin-right:0}.mc-list-item .mc-divider.mc-divider_inset,.mc-list-option .mc-divider.mc-divider_inset{position:absolute}.mc-list-item.mc-progress:after,.mc-list-option.mc-progress:after{top:-2px;right:-2px;bottom:-2px;left:-2px}.mc-list-item .mc-pseudo-checkbox,.mc-list-item .mc-icon,.mc-list-option .mc-pseudo-checkbox,.mc-list-option .mc-icon{margin-right:var(--mc-list-size-icon-right-margin, 8px)}.mc-list-item .mc-option-action,.mc-list-option .mc-option-action{display:none}.mc-list-item:not([disabled]):hover .mc-option-action,.mc-list-item:not([disabled]).mc-focused .mc-option-action,.mc-list-item:not([disabled]).mc-action-button-focused .mc-option-action,.mc-list-option:not([disabled]):hover .mc-option-action,.mc-list-option:not([disabled]).mc-focused .mc-option-action,.mc-list-option:not([disabled]).mc-action-button-focused .mc-option-action{display:flex}.mc-list-option:not([disabled]):not(.mc-disabled){cursor:pointer}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
697
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McList, decorators: [{
698
+ type: Component,
699
+ args: [{ selector: 'mc-list', host: { class: 'mc-list' }, template: '<ng-content></ng-content>', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: [".mc-divider{display:block;margin:0}.mc-divider.mc-divider_horizontal{border-top-width:var(--mc-divider-size-width, 1px);border-top-style:solid}.mc-divider.mc-divider_vertical{height:100%;border-right-width:var(--mc-divider-size-width, 1px);border-right-style:solid}.mc-divider.mc-divider_inset{margin-left:var(--mc-divider-size-inset-margin, 80px)}[dir=rtl] .mc-divider.mc-divider_inset{margin-left:auto;margin-right:var(--mc-divider-size-inset-margin, 80px)}.mc-no-select{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.mc-list,.mc-list-selection{display:block;outline:none}.mc-list-item,.mc-list-option{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;position:relative;display:flex;align-items:center;box-sizing:border-box;height:var(--mc-list-size-item-height, 32px);border:2px solid transparent;padding-left:var(--mc-list-size-horizontal-padding, 12px)}.mc-list-item .mc-list-text,.mc-list-option .mc-list-text{display:flex;flex-direction:column;width:100%;box-sizing:border-box;overflow:hidden;padding-right:var(--mc-list-size-horizontal-padding, 12px)}.mc-list-item .mc-list-text>*,.mc-list-option .mc-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.mc-list-item .mc-list-text:empty,.mc-list-option .mc-list-text:empty{display:none}.mc-list-item .mc-divider,.mc-list-option .mc-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mc-list-item .mc-divider,[dir=rtl] .mc-list-option .mc-divider{margin-left:auto;margin-right:0}.mc-list-item .mc-divider.mc-divider_inset,.mc-list-option .mc-divider.mc-divider_inset{position:absolute}.mc-list-item.mc-progress:after,.mc-list-option.mc-progress:after{top:-2px;right:-2px;bottom:-2px;left:-2px}.mc-list-item .mc-pseudo-checkbox,.mc-list-item .mc-icon,.mc-list-option .mc-pseudo-checkbox,.mc-list-option .mc-icon{margin-right:var(--mc-list-size-icon-right-margin, 8px)}.mc-list-item .mc-option-action,.mc-list-option .mc-option-action{display:none}.mc-list-item:not([disabled]):hover .mc-option-action,.mc-list-item:not([disabled]).mc-focused .mc-option-action,.mc-list-item:not([disabled]).mc-action-button-focused .mc-option-action,.mc-list-option:not([disabled]):hover .mc-option-action,.mc-list-option:not([disabled]).mc-focused .mc-option-action,.mc-list-option:not([disabled]).mc-action-button-focused .mc-option-action{display:flex}.mc-list-option:not([disabled]):not(.mc-disabled){cursor:pointer}\n"] }]
700
+ }] });
701
+ class McListItem {
702
+ constructor(elementRef) {
703
+ this.elementRef = elementRef;
704
+ }
705
+ ngAfterContentInit() {
706
+ // tslint:disable-next-line:no-unused-expression
707
+ new McLineSetter(this.lines, this.elementRef);
708
+ }
709
+ handleFocus() {
710
+ this.elementRef.nativeElement.classList.add('mc-focused');
711
+ }
712
+ handleBlur() {
713
+ this.elementRef.nativeElement.classList.remove('mc-focused');
714
+ }
715
+ getHostElement() {
716
+ return this.elementRef.nativeElement;
717
+ }
718
+ }
719
+ /** @nocollapse */ /** @nocollapse */ McListItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McListItem, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
720
+ /** @nocollapse */ /** @nocollapse */ McListItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: McListItem, selector: "mc-list-item, a[mc-list-item]", host: { listeners: { "focus": "handleFocus()", "blur": "handleBlur()" }, classAttribute: "mc-list-item" }, queries: [{ propertyName: "lines", predicate: McLine }], ngImport: i0, template: "<ng-content select=\"[mc-list-icon], [mcListIcon]\"></ng-content>\n\n<div class=\"mc-list-text\">\n <ng-content select=\"[mc-line], [mcLine]\"></ng-content>\n</div>\n\n<ng-content></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
721
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McListItem, decorators: [{
722
+ type: Component,
723
+ args: [{ selector: 'mc-list-item, a[mc-list-item]', host: {
724
+ class: 'mc-list-item',
725
+ '(focus)': 'handleFocus()',
726
+ '(blur)': 'handleBlur()'
727
+ }, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content select=\"[mc-list-icon], [mcListIcon]\"></ng-content>\n\n<div class=\"mc-list-text\">\n <ng-content select=\"[mc-line], [mcLine]\"></ng-content>\n</div>\n\n<ng-content></ng-content>\n" }]
728
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { lines: [{
729
+ type: ContentChildren,
730
+ args: [McLine]
728
731
  }] } });
729
732
 
730
- class McListModule {
731
- }
732
- /** @nocollapse */ /** @nocollapse */ McListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
733
- /** @nocollapse */ /** @nocollapse */ McListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McListModule, declarations: [McList,
734
- McListSelection,
735
- McListItem,
736
- McListOption], imports: [CommonModule,
737
- A11yModule,
738
- McPseudoCheckboxModule,
739
- McLineModule,
740
- McOptionModule], exports: [McList,
741
- McListSelection,
742
- McListItem,
743
- McListOption,
744
- McOptionModule] });
745
- /** @nocollapse */ /** @nocollapse */ McListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McListModule, imports: [[
746
- CommonModule,
747
- A11yModule,
748
- McPseudoCheckboxModule,
749
- McLineModule,
750
- McOptionModule
751
- ], McOptionModule] });
752
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McListModule, decorators: [{
753
- type: NgModule,
754
- args: [{
755
- imports: [
756
- CommonModule,
757
- A11yModule,
758
- McPseudoCheckboxModule,
759
- McLineModule,
760
- McOptionModule
761
- ],
762
- exports: [
763
- McList,
764
- McListSelection,
765
- McListItem,
766
- McListOption,
767
- McOptionModule
768
- ],
769
- declarations: [
770
- McList,
771
- McListSelection,
772
- McListItem,
773
- McListOption
774
- ]
775
- }]
733
+ class McListModule {
734
+ }
735
+ /** @nocollapse */ /** @nocollapse */ McListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
736
+ /** @nocollapse */ /** @nocollapse */ McListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McListModule, declarations: [McList,
737
+ McListSelection,
738
+ McListItem,
739
+ McListOption], imports: [CommonModule,
740
+ A11yModule,
741
+ McPseudoCheckboxModule,
742
+ McLineModule,
743
+ McOptionModule], exports: [McList,
744
+ McListSelection,
745
+ McListItem,
746
+ McListOption,
747
+ McOptionModule] });
748
+ /** @nocollapse */ /** @nocollapse */ McListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McListModule, imports: [[
749
+ CommonModule,
750
+ A11yModule,
751
+ McPseudoCheckboxModule,
752
+ McLineModule,
753
+ McOptionModule
754
+ ], McOptionModule] });
755
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McListModule, decorators: [{
756
+ type: NgModule,
757
+ args: [{
758
+ imports: [
759
+ CommonModule,
760
+ A11yModule,
761
+ McPseudoCheckboxModule,
762
+ McLineModule,
763
+ McOptionModule
764
+ ],
765
+ exports: [
766
+ McList,
767
+ McListSelection,
768
+ McListItem,
769
+ McListOption,
770
+ McOptionModule
771
+ ],
772
+ declarations: [
773
+ McList,
774
+ McListSelection,
775
+ McListItem,
776
+ McListOption
777
+ ]
778
+ }]
776
779
  }] });
777
780
 
778
- /**
779
- * Generated bundle index. Do not edit.
781
+ /**
782
+ * Generated bundle index. Do not edit.
780
783
  */
781
784
 
782
785
  export { MC_SELECTION_LIST_VALUE_ACCESSOR, McList, McListCopyEvent, McListItem, McListModule, McListOption, McListSelectAllEvent, McListSelection, McListSelectionBase, McListSelectionChange, McListSelectionMixinBase };