@ptsecurity/mosaic 13.4.0 → 13.6.1

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