@ptsecurity/mosaic 13.6.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 (298) hide show
  1. package/_theming.scss +28 -15
  2. package/_visual.scss +4 -3
  3. package/datepicker/datepicker.component.d.ts +10 -10
  4. package/design-tokens/legacy-2017/tokens/components/radio.json5 +1 -0
  5. package/design-tokens/legacy-2017/tokens/properties/colors.json5 +1 -0
  6. package/design-tokens/legacy-2017/tokens.d.ts +1 -0
  7. package/design-tokens/pt-2022/tokens/components/form-field.json5 +1 -1
  8. package/design-tokens/pt-2022/tokens/components/link.json5 +2 -2
  9. package/design-tokens/pt-2022/tokens/components/radio.json5 +1 -0
  10. package/design-tokens/pt-2022/tokens/properties/colors.json5 +2 -0
  11. package/design-tokens/pt-2022/tokens.d.ts +4 -3
  12. package/esm2020/autocomplete/autocomplete-origin.directive.mjs +4 -4
  13. package/esm2020/autocomplete/autocomplete-trigger.directive.mjs +4 -4
  14. package/esm2020/autocomplete/autocomplete.component.mjs +4 -4
  15. package/esm2020/autocomplete/autocomplete.module.mjs +5 -5
  16. package/esm2020/button/button.component.mjs +7 -7
  17. package/esm2020/button/button.module.mjs +5 -5
  18. package/esm2020/button-toggle/button-toggle.component.mjs +7 -7
  19. package/esm2020/button-toggle/button-toggle.module.mjs +5 -5
  20. package/esm2020/card/card.component.mjs +4 -4
  21. package/esm2020/card/card.module.mjs +5 -5
  22. package/esm2020/checkbox/checkbox-module.mjs +5 -5
  23. package/esm2020/checkbox/checkbox-required-validator.mjs +4 -4
  24. package/esm2020/checkbox/checkbox.mjs +4 -4
  25. package/esm2020/core/common-behaviors/common-module.mjs +5 -5
  26. package/esm2020/core/error/error-options.mjs +7 -7
  27. package/esm2020/core/formatters/date/formatter.mjs +4 -4
  28. package/esm2020/core/formatters/index.mjs +5 -5
  29. package/esm2020/core/formatters/number/formatter.mjs +5 -5
  30. package/esm2020/core/forms/forms-module.mjs +5 -5
  31. package/esm2020/core/forms/forms.directive.mjs +7 -7
  32. package/esm2020/core/highlight/highlight.pipe.mjs +4 -4
  33. package/esm2020/core/highlight/index.mjs +5 -5
  34. package/esm2020/core/line/line.mjs +8 -8
  35. package/esm2020/core/option/action.mjs +4 -4
  36. package/esm2020/core/option/optgroup.mjs +4 -4
  37. package/esm2020/core/option/option-module.mjs +5 -5
  38. package/esm2020/core/option/option.mjs +4 -4
  39. package/esm2020/core/pop-up/pop-up-trigger.mjs +4 -4
  40. package/esm2020/core/pop-up/pop-up.mjs +4 -4
  41. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +4 -4
  42. package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.module.mjs +5 -5
  43. package/esm2020/core/services/measure-scrollbar.service.mjs +4 -4
  44. package/esm2020/datepicker/calendar-body.component.mjs +4 -4
  45. package/esm2020/datepicker/calendar.component.mjs +7 -7
  46. package/esm2020/datepicker/datepicker-input.directive.mjs +12 -10
  47. package/esm2020/datepicker/datepicker-intl.mjs +4 -4
  48. package/esm2020/datepicker/datepicker-module.mjs +5 -5
  49. package/esm2020/datepicker/datepicker-toggle.component.mjs +7 -7
  50. package/esm2020/datepicker/datepicker.component.mjs +13 -17
  51. package/esm2020/datepicker/month-view.component.mjs +4 -4
  52. package/esm2020/datepicker/multi-year-view.component.mjs +4 -4
  53. package/esm2020/datepicker/year-view.component.mjs +4 -4
  54. package/esm2020/design-tokens/legacy-2017/tokens.mjs +2 -1
  55. package/esm2020/design-tokens/pt-2022/tokens.mjs +5 -4
  56. package/esm2020/divider/divider.component.mjs +4 -4
  57. package/esm2020/divider/divider.module.mjs +5 -5
  58. package/esm2020/dl/dl.component.mjs +10 -10
  59. package/esm2020/dl/dl.module.mjs +5 -5
  60. package/esm2020/dropdown/dropdown-content.directive.mjs +4 -4
  61. package/esm2020/dropdown/dropdown-item.component.mjs +4 -4
  62. package/esm2020/dropdown/dropdown-trigger.directive.mjs +4 -4
  63. package/esm2020/dropdown/dropdown.component.mjs +4 -4
  64. package/esm2020/dropdown/dropdown.module.mjs +5 -5
  65. package/esm2020/form-field/cleaner.mjs +4 -4
  66. package/esm2020/form-field/form-field.mjs +13 -13
  67. package/esm2020/form-field/form-field.module.mjs +5 -5
  68. package/esm2020/form-field/hint.mjs +4 -4
  69. package/esm2020/form-field/password-hint.mjs +4 -4
  70. package/esm2020/form-field/prefix.mjs +4 -4
  71. package/esm2020/form-field/stepper.mjs +4 -4
  72. package/esm2020/form-field/suffix.mjs +4 -4
  73. package/esm2020/icon/icon.component.mjs +7 -7
  74. package/esm2020/icon/icon.module.mjs +5 -5
  75. package/esm2020/input/input-number-validators.mjs +7 -7
  76. package/esm2020/input/input-number.mjs +4 -4
  77. package/esm2020/input/input-password.mjs +7 -7
  78. package/esm2020/input/input.mjs +7 -7
  79. package/esm2020/input/input.module.mjs +5 -5
  80. package/esm2020/link/link.component.mjs +4 -4
  81. package/esm2020/link/link.module.mjs +5 -5
  82. package/esm2020/list/list-selection.component.mjs +7 -7
  83. package/esm2020/list/list.component.mjs +7 -7
  84. package/esm2020/list/list.module.mjs +5 -5
  85. package/esm2020/modal/css-unit.pipe.mjs +4 -4
  86. package/esm2020/modal/modal-control.service.mjs +4 -4
  87. package/esm2020/modal/modal.component.mjs +4 -4
  88. package/esm2020/modal/modal.directive.mjs +13 -13
  89. package/esm2020/modal/modal.module.mjs +5 -5
  90. package/esm2020/modal/modal.service.mjs +4 -4
  91. package/esm2020/navbar/navbar-item.component.mjs +31 -31
  92. package/esm2020/navbar/navbar.component.mjs +10 -10
  93. package/esm2020/navbar/navbar.module.mjs +5 -5
  94. package/esm2020/navbar/vertical-navbar.component.mjs +4 -4
  95. package/esm2020/popover/popover-confirm.component.mjs +7 -7
  96. package/esm2020/popover/popover.component.mjs +7 -7
  97. package/esm2020/popover/popover.module.mjs +5 -5
  98. package/esm2020/progress-bar/progress-bar.component.mjs +4 -4
  99. package/esm2020/progress-bar/progress-bar.module.mjs +5 -5
  100. package/esm2020/progress-spinner/progress-spinner.component.mjs +4 -4
  101. package/esm2020/progress-spinner/progress-spinner.module.mjs +5 -5
  102. package/esm2020/radio/radio.component.mjs +8 -8
  103. package/esm2020/radio/radio.module.mjs +5 -5
  104. package/esm2020/select/select-option.directive.mjs +4 -4
  105. package/esm2020/select/select.component.mjs +24 -14
  106. package/esm2020/select/select.module.mjs +5 -5
  107. package/esm2020/sidebar/sidebar.component.mjs +10 -10
  108. package/esm2020/sidebar/sidebar.module.mjs +5 -5
  109. package/esm2020/sidepanel/sidepanel-container.component.mjs +4 -4
  110. package/esm2020/sidepanel/sidepanel-directives.mjs +16 -16
  111. package/esm2020/sidepanel/sidepanel.module.mjs +5 -5
  112. package/esm2020/sidepanel/sidepanel.service.mjs +4 -4
  113. package/esm2020/splitter/splitter.component.mjs +13 -13
  114. package/esm2020/splitter/splitter.module.mjs +5 -5
  115. package/esm2020/table/table.component.mjs +4 -4
  116. package/esm2020/table/table.module.mjs +5 -5
  117. package/esm2020/tabs/paginated-tab-header.mjs +4 -4
  118. package/esm2020/tabs/tab-body.component.mjs +7 -7
  119. package/esm2020/tabs/tab-content.directive.mjs +4 -4
  120. package/esm2020/tabs/tab-group.component.mjs +19 -19
  121. package/esm2020/tabs/tab-header.component.mjs +4 -4
  122. package/esm2020/tabs/tab-label-wrapper.directive.mjs +4 -4
  123. package/esm2020/tabs/tab-label.directive.mjs +4 -4
  124. package/esm2020/tabs/tab-nav-bar/tab-nav-bar.mjs +7 -7
  125. package/esm2020/tabs/tab.component.mjs +4 -4
  126. package/esm2020/tabs/tabs.module.mjs +5 -5
  127. package/esm2020/tags/tag-input.mjs +4 -4
  128. package/esm2020/tags/tag-list.component.mjs +4 -4
  129. package/esm2020/tags/tag.component.mjs +13 -13
  130. package/esm2020/tags/tag.module.mjs +5 -5
  131. package/esm2020/textarea/textarea.component.mjs +4 -4
  132. package/esm2020/textarea/textarea.module.mjs +5 -5
  133. package/esm2020/timepicker/timepicker.directive.mjs +8 -19
  134. package/esm2020/timepicker/timepicker.module.mjs +5 -5
  135. package/esm2020/toggle/toggle.component.mjs +4 -4
  136. package/esm2020/toggle/toggle.module.mjs +5 -5
  137. package/esm2020/tooltip/tooltip.component.mjs +13 -13
  138. package/esm2020/tooltip/tooltip.module.mjs +5 -5
  139. package/esm2020/tree/node.mjs +4 -4
  140. package/esm2020/tree/outlet.mjs +4 -4
  141. package/esm2020/tree/padding.directive.mjs +12 -9
  142. package/esm2020/tree/toggle.mjs +10 -10
  143. package/esm2020/tree/tree-base.mjs +7 -7
  144. package/esm2020/tree/tree-option.component.mjs +22 -10
  145. package/esm2020/tree/tree-selection.component.mjs +4 -4
  146. package/esm2020/tree/tree.mjs +4 -4
  147. package/esm2020/tree/tree.module.mjs +5 -5
  148. package/esm2020/tree-select/tree-select.component.mjs +21 -11
  149. package/esm2020/tree-select/tree-select.module.mjs +5 -5
  150. package/fesm2015/ptsecurity-mosaic-autocomplete.mjs +13 -13
  151. package/fesm2015/ptsecurity-mosaic-autocomplete.mjs.map +1 -1
  152. package/fesm2015/ptsecurity-mosaic-button-toggle.mjs +10 -10
  153. package/fesm2015/ptsecurity-mosaic-button-toggle.mjs.map +1 -1
  154. package/fesm2015/ptsecurity-mosaic-button.mjs +10 -10
  155. package/fesm2015/ptsecurity-mosaic-button.mjs.map +1 -1
  156. package/fesm2015/ptsecurity-mosaic-card.mjs +7 -7
  157. package/fesm2015/ptsecurity-mosaic-card.mjs.map +1 -1
  158. package/fesm2015/ptsecurity-mosaic-checkbox.mjs +10 -10
  159. package/fesm2015/ptsecurity-mosaic-checkbox.mjs.map +1 -1
  160. package/fesm2015/ptsecurity-mosaic-core.mjs +74 -74
  161. package/fesm2015/ptsecurity-mosaic-core.mjs.map +1 -1
  162. package/fesm2015/ptsecurity-mosaic-datepicker.mjs +54 -56
  163. package/fesm2015/ptsecurity-mosaic-datepicker.mjs.map +1 -1
  164. package/fesm2015/ptsecurity-mosaic-design-tokens.mjs +7 -4
  165. package/fesm2015/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
  166. package/fesm2015/ptsecurity-mosaic-divider.mjs +7 -7
  167. package/fesm2015/ptsecurity-mosaic-divider.mjs.map +1 -1
  168. package/fesm2015/ptsecurity-mosaic-dl.mjs +13 -13
  169. package/fesm2015/ptsecurity-mosaic-dl.mjs.map +1 -1
  170. package/fesm2015/ptsecurity-mosaic-dropdown.mjs +16 -16
  171. package/fesm2015/ptsecurity-mosaic-dropdown.mjs.map +1 -1
  172. package/fesm2015/ptsecurity-mosaic-form-field.mjs +34 -34
  173. package/fesm2015/ptsecurity-mosaic-form-field.mjs.map +1 -1
  174. package/fesm2015/ptsecurity-mosaic-icon.mjs +10 -10
  175. package/fesm2015/ptsecurity-mosaic-icon.mjs.map +1 -1
  176. package/fesm2015/ptsecurity-mosaic-input.mjs +25 -25
  177. package/fesm2015/ptsecurity-mosaic-input.mjs.map +1 -1
  178. package/fesm2015/ptsecurity-mosaic-link.mjs +7 -7
  179. package/fesm2015/ptsecurity-mosaic-link.mjs.map +1 -1
  180. package/fesm2015/ptsecurity-mosaic-list.mjs +16 -16
  181. package/fesm2015/ptsecurity-mosaic-list.mjs.map +1 -1
  182. package/fesm2015/ptsecurity-mosaic-modal.mjs +28 -28
  183. package/fesm2015/ptsecurity-mosaic-modal.mjs.map +1 -1
  184. package/fesm2015/ptsecurity-mosaic-navbar.mjs +46 -46
  185. package/fesm2015/ptsecurity-mosaic-navbar.mjs.map +1 -1
  186. package/fesm2015/ptsecurity-mosaic-popover.mjs +16 -16
  187. package/fesm2015/ptsecurity-mosaic-popover.mjs.map +1 -1
  188. package/fesm2015/ptsecurity-mosaic-progress-bar.mjs +7 -7
  189. package/fesm2015/ptsecurity-mosaic-progress-bar.mjs.map +1 -1
  190. package/fesm2015/ptsecurity-mosaic-progress-spinner.mjs +7 -7
  191. package/fesm2015/ptsecurity-mosaic-progress-spinner.mjs.map +1 -1
  192. package/fesm2015/ptsecurity-mosaic-radio.mjs +11 -11
  193. package/fesm2015/ptsecurity-mosaic-radio.mjs.map +1 -1
  194. package/fesm2015/ptsecurity-mosaic-select.mjs +30 -20
  195. package/fesm2015/ptsecurity-mosaic-select.mjs.map +1 -1
  196. package/fesm2015/ptsecurity-mosaic-sidebar.mjs +13 -13
  197. package/fesm2015/ptsecurity-mosaic-sidebar.mjs.map +1 -1
  198. package/fesm2015/ptsecurity-mosaic-sidepanel.mjs +25 -25
  199. package/fesm2015/ptsecurity-mosaic-sidepanel.mjs.map +1 -1
  200. package/fesm2015/ptsecurity-mosaic-splitter.mjs +16 -16
  201. package/fesm2015/ptsecurity-mosaic-splitter.mjs.map +1 -1
  202. package/fesm2015/ptsecurity-mosaic-table.mjs +7 -7
  203. package/fesm2015/ptsecurity-mosaic-table.mjs.map +1 -1
  204. package/fesm2015/ptsecurity-mosaic-tabs.mjs +52 -52
  205. package/fesm2015/ptsecurity-mosaic-tabs.mjs.map +1 -1
  206. package/fesm2015/ptsecurity-mosaic-tags.mjs +22 -22
  207. package/fesm2015/ptsecurity-mosaic-tags.mjs.map +1 -1
  208. package/fesm2015/ptsecurity-mosaic-textarea.mjs +7 -7
  209. package/fesm2015/ptsecurity-mosaic-textarea.mjs.map +1 -1
  210. package/fesm2015/ptsecurity-mosaic-timepicker.mjs +11 -22
  211. package/fesm2015/ptsecurity-mosaic-timepicker.mjs.map +1 -1
  212. package/fesm2015/ptsecurity-mosaic-toggle.mjs +7 -7
  213. package/fesm2015/ptsecurity-mosaic-toggle.mjs.map +1 -1
  214. package/fesm2015/ptsecurity-mosaic-tooltip.mjs +16 -16
  215. package/fesm2015/ptsecurity-mosaic-tooltip.mjs.map +1 -1
  216. package/fesm2015/ptsecurity-mosaic-tree-select.mjs +24 -14
  217. package/fesm2015/ptsecurity-mosaic-tree-select.mjs.map +1 -1
  218. package/fesm2015/ptsecurity-mosaic-tree.mjs +168 -155
  219. package/fesm2015/ptsecurity-mosaic-tree.mjs.map +1 -1
  220. package/fesm2020/ptsecurity-mosaic-autocomplete.mjs +13 -13
  221. package/fesm2020/ptsecurity-mosaic-autocomplete.mjs.map +1 -1
  222. package/fesm2020/ptsecurity-mosaic-button-toggle.mjs +10 -10
  223. package/fesm2020/ptsecurity-mosaic-button-toggle.mjs.map +1 -1
  224. package/fesm2020/ptsecurity-mosaic-button.mjs +10 -10
  225. package/fesm2020/ptsecurity-mosaic-button.mjs.map +1 -1
  226. package/fesm2020/ptsecurity-mosaic-card.mjs +7 -7
  227. package/fesm2020/ptsecurity-mosaic-card.mjs.map +1 -1
  228. package/fesm2020/ptsecurity-mosaic-checkbox.mjs +10 -10
  229. package/fesm2020/ptsecurity-mosaic-checkbox.mjs.map +1 -1
  230. package/fesm2020/ptsecurity-mosaic-core.mjs +74 -74
  231. package/fesm2020/ptsecurity-mosaic-core.mjs.map +1 -1
  232. package/fesm2020/ptsecurity-mosaic-datepicker.mjs +54 -56
  233. package/fesm2020/ptsecurity-mosaic-datepicker.mjs.map +1 -1
  234. package/fesm2020/ptsecurity-mosaic-design-tokens.mjs +7 -4
  235. package/fesm2020/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
  236. package/fesm2020/ptsecurity-mosaic-divider.mjs +7 -7
  237. package/fesm2020/ptsecurity-mosaic-divider.mjs.map +1 -1
  238. package/fesm2020/ptsecurity-mosaic-dl.mjs +13 -13
  239. package/fesm2020/ptsecurity-mosaic-dl.mjs.map +1 -1
  240. package/fesm2020/ptsecurity-mosaic-dropdown.mjs +16 -16
  241. package/fesm2020/ptsecurity-mosaic-dropdown.mjs.map +1 -1
  242. package/fesm2020/ptsecurity-mosaic-form-field.mjs +34 -34
  243. package/fesm2020/ptsecurity-mosaic-form-field.mjs.map +1 -1
  244. package/fesm2020/ptsecurity-mosaic-icon.mjs +10 -10
  245. package/fesm2020/ptsecurity-mosaic-icon.mjs.map +1 -1
  246. package/fesm2020/ptsecurity-mosaic-input.mjs +25 -25
  247. package/fesm2020/ptsecurity-mosaic-input.mjs.map +1 -1
  248. package/fesm2020/ptsecurity-mosaic-link.mjs +7 -7
  249. package/fesm2020/ptsecurity-mosaic-link.mjs.map +1 -1
  250. package/fesm2020/ptsecurity-mosaic-list.mjs +16 -16
  251. package/fesm2020/ptsecurity-mosaic-list.mjs.map +1 -1
  252. package/fesm2020/ptsecurity-mosaic-modal.mjs +28 -28
  253. package/fesm2020/ptsecurity-mosaic-modal.mjs.map +1 -1
  254. package/fesm2020/ptsecurity-mosaic-navbar.mjs +46 -46
  255. package/fesm2020/ptsecurity-mosaic-navbar.mjs.map +1 -1
  256. package/fesm2020/ptsecurity-mosaic-popover.mjs +16 -16
  257. package/fesm2020/ptsecurity-mosaic-popover.mjs.map +1 -1
  258. package/fesm2020/ptsecurity-mosaic-progress-bar.mjs +7 -7
  259. package/fesm2020/ptsecurity-mosaic-progress-bar.mjs.map +1 -1
  260. package/fesm2020/ptsecurity-mosaic-progress-spinner.mjs +7 -7
  261. package/fesm2020/ptsecurity-mosaic-progress-spinner.mjs.map +1 -1
  262. package/fesm2020/ptsecurity-mosaic-radio.mjs +11 -11
  263. package/fesm2020/ptsecurity-mosaic-radio.mjs.map +1 -1
  264. package/fesm2020/ptsecurity-mosaic-select.mjs +30 -20
  265. package/fesm2020/ptsecurity-mosaic-select.mjs.map +1 -1
  266. package/fesm2020/ptsecurity-mosaic-sidebar.mjs +13 -13
  267. package/fesm2020/ptsecurity-mosaic-sidebar.mjs.map +1 -1
  268. package/fesm2020/ptsecurity-mosaic-sidepanel.mjs +25 -25
  269. package/fesm2020/ptsecurity-mosaic-sidepanel.mjs.map +1 -1
  270. package/fesm2020/ptsecurity-mosaic-splitter.mjs +16 -16
  271. package/fesm2020/ptsecurity-mosaic-splitter.mjs.map +1 -1
  272. package/fesm2020/ptsecurity-mosaic-table.mjs +7 -7
  273. package/fesm2020/ptsecurity-mosaic-table.mjs.map +1 -1
  274. package/fesm2020/ptsecurity-mosaic-tabs.mjs +52 -52
  275. package/fesm2020/ptsecurity-mosaic-tabs.mjs.map +1 -1
  276. package/fesm2020/ptsecurity-mosaic-tags.mjs +22 -22
  277. package/fesm2020/ptsecurity-mosaic-tags.mjs.map +1 -1
  278. package/fesm2020/ptsecurity-mosaic-textarea.mjs +7 -7
  279. package/fesm2020/ptsecurity-mosaic-textarea.mjs.map +1 -1
  280. package/fesm2020/ptsecurity-mosaic-timepicker.mjs +11 -22
  281. package/fesm2020/ptsecurity-mosaic-timepicker.mjs.map +1 -1
  282. package/fesm2020/ptsecurity-mosaic-toggle.mjs +7 -7
  283. package/fesm2020/ptsecurity-mosaic-toggle.mjs.map +1 -1
  284. package/fesm2020/ptsecurity-mosaic-tooltip.mjs +16 -16
  285. package/fesm2020/ptsecurity-mosaic-tooltip.mjs.map +1 -1
  286. package/fesm2020/ptsecurity-mosaic-tree-select.mjs +24 -14
  287. package/fesm2020/ptsecurity-mosaic-tree-select.mjs.map +1 -1
  288. package/fesm2020/ptsecurity-mosaic-tree.mjs +165 -152
  289. package/fesm2020/ptsecurity-mosaic-tree.mjs.map +1 -1
  290. package/form-field/form-field.d.ts +2 -2
  291. package/package.json +4 -4
  292. package/prebuilt-themes/dark-theme.css +1 -1
  293. package/prebuilt-themes/default-theme.css +1 -1
  294. package/select/select.component.d.ts +3 -0
  295. package/timepicker/timepicker.directive.d.ts +0 -1
  296. package/tree/padding.directive.d.ts +7 -5
  297. package/tree/tree-option.component.d.ts +6 -2
  298. package/tree-select/tree-select.component.d.ts +3 -0
@@ -177,11 +177,11 @@ class McListOption {
177
177
  return this.elementRef.nativeElement;
178
178
  }
179
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: [
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
182
  { provide: MC_OPTION_ACTION_PARENT, useExisting: McListOption }
183
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.7", ngImport: i0, type: McListOption, decorators: [{
184
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McListOption, decorators: [{
185
185
  type: Component,
186
186
  args: [{ exportAs: 'mcListOption', selector: 'mc-list-option', host: {
187
187
  class: 'mc-list-option',
@@ -644,14 +644,14 @@ class McListSelection extends McListSelectionMixinBase {
644
644
  }
645
645
  }
646
646
  }
647
- /** @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 });
648
- /** @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: `
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
649
  <div [attr.tabindex]="tabIndex"
650
650
  (focus)="focus()"
651
651
  (blur)="blur()">
652
652
  <ng-content></ng-content>
653
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.7", ngImport: i0, type: McListSelection, decorators: [{
654
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McListSelection, decorators: [{
655
655
  type: Component,
656
656
  args: [{ exportAs: 'mcListSelection', selector: 'mc-list-selection', template: `
657
657
  <div [attr.tabindex]="tabIndex"
@@ -696,9 +696,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImpor
696
696
  // todo пока не делаем, перенесено из материала, но у нас в доках таких простых списков нет.
697
697
  class McList {
698
698
  }
699
- /** @nocollapse */ /** @nocollapse */ McList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McList, deps: [], target: i0.ɵɵFactoryTarget.Component });
700
- /** @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 });
701
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McList, decorators: [{
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
702
  type: Component,
703
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
704
  }] });
@@ -720,9 +720,9 @@ class McListItem {
720
720
  return this.elementRef.nativeElement;
721
721
  }
722
722
  }
723
- /** @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 });
724
- /** @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>\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.7", ngImport: i0, type: McListItem, decorators: [{
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
726
  type: Component,
727
727
  args: [{ selector: 'mc-list-item, a[mc-list-item]', host: {
728
728
  class: 'mc-list-item',
@@ -736,8 +736,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImpor
736
736
 
737
737
  class McListModule {
738
738
  }
739
- /** @nocollapse */ /** @nocollapse */ McListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
740
- /** @nocollapse */ /** @nocollapse */ McListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McListModule, declarations: [McList,
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
741
  McListSelection,
742
742
  McListItem,
743
743
  McListOption], imports: [CommonModule,
@@ -749,14 +749,14 @@ class McListModule {
749
749
  McListItem,
750
750
  McListOption,
751
751
  McOptionModule] });
752
- /** @nocollapse */ /** @nocollapse */ McListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McListModule, imports: [[
752
+ /** @nocollapse */ /** @nocollapse */ McListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McListModule, imports: [[
753
753
  CommonModule,
754
754
  A11yModule,
755
755
  McPseudoCheckboxModule,
756
756
  McLineModule,
757
757
  McOptionModule
758
758
  ], McOptionModule] });
759
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McListModule, decorators: [{
759
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McListModule, decorators: [{
760
760
  type: NgModule,
761
761
  args: [{
762
762
  imports: [
@@ -1 +1 @@
1
- {"version":3,"file":"ptsecurity-mosaic-list.mjs","sources":["../../../packages/mosaic/list/list-selection.component.ts","../../../packages/mosaic/list/list-option.html","../../../packages/mosaic/list/list.component.ts","../../../packages/mosaic/list/list-item.html","../../../packages/mosaic/list/list.module.ts","../../../packages/mosaic/list/ptsecurity-mosaic-list.ts"],"sourcesContent":["/* tslint:disable:no-empty */\r\nimport { Clipboard } from '@angular/cdk/clipboard';\r\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport {\r\n AfterContentInit,\r\n Attribute,\r\n ChangeDetectionStrategy,\r\n Component,\r\n ContentChildren,\r\n ElementRef,\r\n EventEmitter,\r\n forwardRef,\r\n Input,\r\n Output,\r\n QueryList,\r\n ViewEncapsulation,\r\n ChangeDetectorRef,\r\n Inject,\r\n OnDestroy,\r\n OnInit,\r\n ViewChild,\r\n NgZone,\r\n Optional,\r\n ContentChild\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { FocusKeyManager, IFocusableOption } from '@ptsecurity/cdk/a11y';\r\nimport {\r\n hasModifierKey,\r\n isCopy,\r\n isSelectAll,\r\n isVerticalMovement,\r\n DOWN_ARROW,\r\n END,\r\n ENTER,\r\n HOME,\r\n LEFT_ARROW,\r\n PAGE_DOWN,\r\n PAGE_UP,\r\n RIGHT_ARROW,\r\n SPACE,\r\n TAB,\r\n UP_ARROW\r\n} from '@ptsecurity/cdk/keycodes';\r\nimport {\r\n CanDisable,\r\n mixinDisabled,\r\n toBoolean,\r\n CanDisableCtor,\r\n HasTabIndexCtor,\r\n mixinTabIndex,\r\n HasTabIndex,\r\n MultipleMode,\r\n McOptgroup,\r\n MC_OPTION_ACTION_PARENT,\r\n McOptionActionComponent\r\n} from '@ptsecurity/mosaic/core';\r\nimport { McDropdownTrigger } from '@ptsecurity/mosaic/dropdown';\r\nimport { McTooltipTrigger } from '@ptsecurity/mosaic/tooltip';\r\nimport { merge, Observable, Subject, Subscription } from 'rxjs';\r\nimport { startWith, take, takeUntil } from 'rxjs/operators';\r\n\r\n\r\n// tslint:disable-next-line:naming-convention\r\nexport interface McOptionEvent {\r\n option: McListOption;\r\n}\r\n\r\n/**\r\n * Component for list-options of selection-list. Each list-option can automatically\r\n * generate a checkbox and can put current item into the selectionModel of selection-list\r\n * if the current item is selected.\r\n */\r\n@Component({\r\n exportAs: 'mcListOption',\r\n selector: 'mc-list-option',\r\n templateUrl: './list-option.html',\r\n host: {\r\n class: 'mc-list-option',\r\n\r\n '[class.mc-selected]': 'selected',\r\n '[class.mc-disabled]': 'disabled',\r\n '[class.mc-focused]': 'hasFocus',\r\n\r\n '[class.mc-action-button-focused]': 'actionButton?.active',\r\n\r\n '[attr.tabindex]': 'tabIndex',\r\n '[attr.disabled]': 'disabled || null',\r\n\r\n '(focusin)': 'focus()',\r\n '(blur)': 'blur()',\r\n '(click)': 'handleClick($event)',\r\n '(keydown)': 'onKeydown($event)'\r\n },\r\n encapsulation: ViewEncapsulation.None,\r\n preserveWhitespaces: false,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n { provide: MC_OPTION_ACTION_PARENT, useExisting: McListOption }\r\n ]\r\n})\r\nexport class McListOption implements OnDestroy, OnInit, IFocusableOption {\r\n hasFocus: boolean = false;\r\n\r\n readonly onFocus = new Subject<McOptionEvent>();\r\n\r\n readonly onBlur = new Subject<McOptionEvent>();\r\n\r\n @ContentChild(McOptionActionComponent) actionButton: McOptionActionComponent;\r\n @ContentChild(McTooltipTrigger) tooltipTrigger: McTooltipTrigger;\r\n @ContentChild(McDropdownTrigger) dropdownTrigger: McDropdownTrigger;\r\n\r\n @ViewChild('text', { static: false }) text: ElementRef;\r\n\r\n // Whether the label should appear before or after the checkbox. Defaults to 'after'\r\n @Input() checkboxPosition: 'before' | 'after';\r\n\r\n /**\r\n * This is set to true after the first OnChanges cycle so we don't clear the value of `selected`\r\n * in the first cycle.\r\n */\r\n private inputsInitialized = false;\r\n\r\n @Input()\r\n get value(): any { return this._value; }\r\n set value(newValue: any) {\r\n if (this.selected && newValue !== this.value && this.inputsInitialized) {\r\n this.selected = false;\r\n }\r\n\r\n this._value = newValue;\r\n }\r\n private _value: any;\r\n\r\n @Input()\r\n get disabled() {\r\n const listSelectionDisabled = this.listSelection && this.listSelection.disabled;\r\n const groupDisabled = this.group && this.group.disabled;\r\n\r\n return listSelectionDisabled || groupDisabled || this._disabled;\r\n }\r\n\r\n set disabled(value: any) {\r\n const newValue = toBoolean(value);\r\n\r\n if (newValue !== this._disabled) {\r\n this._disabled = newValue;\r\n this.changeDetector.markForCheck();\r\n }\r\n }\r\n\r\n private _disabled = false;\r\n\r\n @Input()\r\n get showCheckbox() {\r\n return this._showCheckbox !== undefined ? this._showCheckbox : this.listSelection.showCheckbox;\r\n }\r\n\r\n set showCheckbox(value: any) {\r\n this._showCheckbox = coerceBooleanProperty(value);\r\n }\r\n\r\n private _showCheckbox: boolean;\r\n\r\n @Input()\r\n get selected(): boolean {\r\n return this.listSelection.selectionModel?.isSelected(this) || false;\r\n }\r\n\r\n set selected(value: boolean) {\r\n const isSelected = toBoolean(value);\r\n\r\n if (isSelected !== this._selected) {\r\n this.setSelected(isSelected);\r\n }\r\n }\r\n\r\n private _selected = false;\r\n\r\n get tabIndex(): any {\r\n return this.disabled ? null : -1;\r\n }\r\n\r\n constructor(\r\n private elementRef: ElementRef<HTMLElement>,\r\n private changeDetector: ChangeDetectorRef,\r\n private ngZone: NgZone,\r\n @Inject(forwardRef(() => McListSelection)) public listSelection: McListSelection,\r\n @Optional() readonly group: McOptgroup\r\n ) {}\r\n\r\n ngOnInit() {\r\n const list = this.listSelection;\r\n\r\n if (list._value && list._value.some((value) => list.compareWith(value, this._value))) {\r\n this.setSelected(true);\r\n }\r\n\r\n const wasSelected = this._selected;\r\n\r\n // List options that are selected at initialization can't be reported properly to the form\r\n // control. This is because it takes some time until the selection-list knows about all\r\n // available options. Also it can happen that the ControlValueAccessor has an initial value\r\n // that should be used instead. Deferring the value change report to the next tick ensures\r\n // that the form control value is not being overwritten.\r\n Promise.resolve().then(() => {\r\n if (this._selected || wasSelected) {\r\n this.selected = true;\r\n this.changeDetector.markForCheck();\r\n }\r\n });\r\n\r\n this.inputsInitialized = true;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.selected) {\r\n // We have to delay this until the next tick in order\r\n // to avoid changed after checked errors.\r\n Promise.resolve().then(() => this.selected = false);\r\n }\r\n\r\n this.listSelection.removeOptionFromList(this);\r\n }\r\n\r\n toggle(): void {\r\n this.selected = !this.selected;\r\n }\r\n\r\n getLabel() {\r\n return this.text ? this.text.nativeElement.textContent : '';\r\n }\r\n\r\n setSelected(selected: boolean) {\r\n if (this._selected === selected || !this.listSelection.selectionModel) { return; }\r\n\r\n this._selected = selected;\r\n\r\n if (selected) {\r\n this.listSelection.selectionModel.select(this);\r\n } else {\r\n this.listSelection.selectionModel.deselect(this);\r\n }\r\n\r\n this.changeDetector.markForCheck();\r\n }\r\n\r\n getHeight(): number {\r\n const clientRects = this.elementRef.nativeElement.getClientRects();\r\n\r\n return clientRects.length ? clientRects[0].height : 0;\r\n }\r\n\r\n handleClick($event) {\r\n if (this.disabled) { return; }\r\n\r\n this.listSelection.setSelectedOptionsByClick(\r\n this, hasModifierKey($event, 'shiftKey'), hasModifierKey($event, 'ctrlKey')\r\n );\r\n }\r\n\r\n onKeydown($event) {\r\n if (!this.actionButton) { return; }\r\n\r\n if ($event.keyCode === TAB && !$event.shiftKey && !this.actionButton.hasFocus) {\r\n this.actionButton.focus();\r\n\r\n $event.preventDefault();\r\n }\r\n }\r\n\r\n focus() {\r\n if (this.disabled || this.hasFocus || this.actionButton?.hasFocus) { return; }\r\n\r\n this.elementRef.nativeElement.focus();\r\n\r\n this.onFocus.next({ option: this });\r\n\r\n Promise.resolve().then(() => {\r\n this.hasFocus = true;\r\n\r\n this.changeDetector.markForCheck();\r\n });\r\n }\r\n\r\n blur(): void {\r\n // When animations are enabled, Angular may end up removing the option from the DOM a little\r\n // earlier than usual, causing it to be blurred and throwing off the logic in the list\r\n // that moves focus not the next item. To work around the issue, we defer marking the option\r\n // as not focused until the next time the zone stabilizes.\r\n this.ngZone.onStable\r\n .asObservable()\r\n .pipe(take(1))\r\n .subscribe(() => {\r\n this.ngZone.run(() => {\r\n this.hasFocus = false;\r\n\r\n if (this.actionButton?.hasFocus) { return; }\r\n\r\n this.onBlur.next({ option: this });\r\n });\r\n });\r\n }\r\n\r\n getHostElement(): HTMLElement {\r\n return this.elementRef.nativeElement;\r\n }\r\n}\r\n\r\n\r\nexport const MC_SELECTION_LIST_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => McListSelection),\r\n multi: true\r\n};\r\n\r\nexport class McListSelectionChange {\r\n constructor(public source: McListSelection, public option: McListOption) {}\r\n}\r\n\r\nexport class McListSelectAllEvent<T> {\r\n constructor(public source: McListSelection, public options: T[]) {}\r\n}\r\n\r\nexport class McListCopyEvent<T> {\r\n constructor(public source: McListSelection, public option: T) {}\r\n}\r\n\r\nexport class McListSelectionBase {\r\n constructor(public elementRef: ElementRef) {}\r\n}\r\n\r\n// tslint:disable-next-line:naming-convention\r\nexport const McListSelectionMixinBase: CanDisableCtor & HasTabIndexCtor & typeof McListSelectionBase\r\n = mixinTabIndex(mixinDisabled(McListSelectionBase));\r\n\r\n@Component({\r\n exportAs: 'mcListSelection',\r\n selector: 'mc-list-selection',\r\n template: `\r\n <div [attr.tabindex]=\"tabIndex\"\r\n (focus)=\"focus()\"\r\n (blur)=\"blur()\">\r\n <ng-content></ng-content>\r\n </div>`,\r\n styleUrls: ['./list.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n inputs: ['disabled'],\r\n host: {\r\n class: 'mc-list-selection',\r\n\r\n '[attr.tabindex]': '-1',\r\n '[attr.disabled]': 'disabled || null',\r\n\r\n '(keydown)': 'onKeyDown($event)',\r\n '(window:resize)': 'updateScrollSize()'\r\n },\r\n providers: [MC_SELECTION_LIST_VALUE_ACCESSOR],\r\n preserveWhitespaces: false\r\n})\r\nexport class McListSelection extends McListSelectionMixinBase implements CanDisable, HasTabIndex, AfterContentInit,\r\n ControlValueAccessor {\r\n\r\n keyManager: FocusKeyManager<McListOption>;\r\n\r\n @ContentChildren(McListOption, { descendants: true }) options: QueryList<McListOption>;\r\n\r\n @Output() readonly onSelectAll = new EventEmitter<McListSelectAllEvent<McListOption>>();\r\n\r\n @Output() readonly onCopy = new EventEmitter<McListCopyEvent<McListOption>>();\r\n\r\n @Input()\r\n get autoSelect(): boolean {\r\n return this._autoSelect;\r\n }\r\n\r\n set autoSelect(value: boolean) {\r\n this._autoSelect = coerceBooleanProperty(value);\r\n }\r\n\r\n private _autoSelect: boolean = true;\r\n\r\n @Input()\r\n get noUnselectLast(): boolean {\r\n return this._noUnselectLast;\r\n }\r\n\r\n set noUnselectLast(value: boolean) {\r\n this._noUnselectLast = coerceBooleanProperty(value);\r\n }\r\n\r\n private _noUnselectLast: boolean = true;\r\n\r\n multipleMode: MultipleMode | null;\r\n\r\n get multiple(): boolean {\r\n return !!this.multipleMode;\r\n }\r\n\r\n @Input() horizontal: boolean = false;\r\n\r\n @Input()\r\n get tabIndex(): any {\r\n return this.disabled ? -1 : this._tabIndex;\r\n }\r\n\r\n set tabIndex(value: any) {\r\n this.userTabIndex = value;\r\n this._tabIndex = value;\r\n }\r\n\r\n private _tabIndex = 0;\r\n\r\n userTabIndex: number | null = null;\r\n\r\n get showCheckbox(): boolean {\r\n return this.multipleMode === MultipleMode.CHECKBOX;\r\n }\r\n\r\n // Emits a change event whenever the selected state of an option changes.\r\n @Output() readonly selectionChange: EventEmitter<McListSelectionChange> = new EventEmitter<McListSelectionChange>();\r\n\r\n selectionModel: SelectionModel<McListOption>;\r\n\r\n get optionFocusChanges(): Observable<McOptionEvent> {\r\n return merge(...this.options.map((option) => option.onFocus));\r\n }\r\n\r\n get optionBlurChanges(): Observable<McOptionEvent> {\r\n return merge(...this.options.map((option) => option.onBlur));\r\n }\r\n\r\n // tslint:disable-next-line:orthodox-getter-and-setter naming-convention\r\n _value: string[] | null;\r\n\r\n /** Emits whenever the component is destroyed. */\r\n private readonly destroyed = new Subject<void>();\r\n\r\n private optionFocusSubscription: Subscription | null;\r\n\r\n private optionBlurSubscription: Subscription | null;\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n private changeDetectorRef: ChangeDetectorRef,\r\n @Attribute('multiple') multiple: MultipleMode,\r\n @Optional() private clipboard: Clipboard\r\n ) {\r\n super(elementRef);\r\n\r\n if (multiple === MultipleMode.CHECKBOX || multiple === MultipleMode.KEYBOARD) {\r\n this.multipleMode = multiple;\r\n } else if (multiple !== null) {\r\n this.multipleMode = MultipleMode.CHECKBOX;\r\n }\r\n\r\n if (this.multipleMode === MultipleMode.CHECKBOX) {\r\n this.autoSelect = false;\r\n this.noUnselectLast = false;\r\n }\r\n\r\n this.selectionModel = new SelectionModel<McListOption>(this.multiple);\r\n }\r\n\r\n /**\r\n * Function used for comparing an option against the selected value when determining which\r\n * options should appear as selected. The first argument is the value of an options. The second\r\n * one is a value from the selected value. A boolean must be returned.\r\n */\r\n @Input() compareWith: (o1: any, o2: any) => boolean = (a1, a2) => a1 === a2;\r\n\r\n ngAfterContentInit(): void {\r\n this.horizontal = toBoolean(this.horizontal);\r\n\r\n this.keyManager = new FocusKeyManager<McListOption>(this.options)\r\n .withTypeAhead()\r\n .withVerticalOrientation(!this.horizontal)\r\n .withHorizontalOrientation(this.horizontal ? 'ltr' : null);\r\n\r\n this.keyManager.tabOut\r\n .pipe(takeUntil(this.destroyed))\r\n .subscribe(() => {\r\n this._tabIndex = -1;\r\n\r\n setTimeout(() => {\r\n this._tabIndex = this.userTabIndex || 0;\r\n this.changeDetectorRef.markForCheck();\r\n });\r\n });\r\n\r\n if (this._value) {\r\n this.setOptionsFromValues(this._value);\r\n }\r\n\r\n this.selectionModel.changed\r\n .pipe(takeUntil(this.destroyed))\r\n .subscribe((event) => {\r\n for (const item of event.added) { item.selected = true; }\r\n\r\n for (const item of event.removed) { item.selected = false; }\r\n });\r\n\r\n this.options.changes\r\n .pipe(startWith(null), takeUntil(this.destroyed))\r\n .subscribe(() => {\r\n this.resetOptions();\r\n\r\n // Check to see if we need to update our tab index\r\n this.updateTabIndex();\r\n });\r\n\r\n this.updateScrollSize();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroyed.next();\r\n\r\n this.destroyed.complete();\r\n }\r\n\r\n focus(): void {\r\n if (this.options.length === 0) { return; }\r\n\r\n this.keyManager.setFirstItemActive();\r\n }\r\n\r\n blur() {\r\n if (!this.hasFocusedOption()) {\r\n this.keyManager.setActiveItem(-1);\r\n }\r\n\r\n this.onTouched();\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n selectAll() {\r\n this.options.forEach((option) => option.setSelected(true));\r\n\r\n this.reportValueChange();\r\n }\r\n\r\n deselectAll() {\r\n this.options.forEach((option) => option.setSelected(false));\r\n\r\n this.reportValueChange();\r\n }\r\n\r\n updateScrollSize(): void {\r\n if (this.horizontal || !this.options.first) { return; }\r\n\r\n this.keyManager.withScrollSize(Math.floor(this.getHeight() / this.options.first.getHeight()));\r\n }\r\n\r\n setSelectedOptionsByClick(option: McListOption, shiftKey: boolean, ctrlKey: boolean): void {\r\n if (shiftKey && this.multiple) {\r\n this.selectActiveOptions();\r\n } else if (ctrlKey) {\r\n if (!this.canDeselectLast(option)) { return; }\r\n\r\n this.selectionModel.toggle(option);\r\n } else if (this.autoSelect) {\r\n this.selectionModel.clear();\r\n this.selectionModel.toggle(option);\r\n } else {\r\n this.selectionModel.toggle(option);\r\n }\r\n\r\n this.emitChangeEvent(option);\r\n this.reportValueChange();\r\n }\r\n\r\n setSelectedOptionsByKey(option: McListOption, shiftKey: boolean, ctrlKey: boolean): void {\r\n if (shiftKey && this.multiple) {\r\n this.selectActiveOptions();\r\n } else if (ctrlKey) {\r\n if (!this.canDeselectLast(option)) { return; }\r\n } else if (this.autoSelect) {\r\n this.options.forEach((item) => item.setSelected(false));\r\n option.setSelected(true);\r\n\r\n this.emitChangeEvent(option);\r\n this.reportValueChange();\r\n }\r\n }\r\n\r\n selectActiveOptions(): void {\r\n const options = this.options.toArray();\r\n let fromIndex = this.keyManager.previousActiveItemIndex;\r\n let toIndex = this.keyManager.previousActiveItemIndex = this.keyManager.activeItemIndex;\r\n const selectedOptionState = options[fromIndex].selected;\r\n\r\n if (toIndex === fromIndex) { return; }\r\n\r\n if (fromIndex > toIndex) {\r\n [fromIndex, toIndex] = [toIndex, fromIndex];\r\n }\r\n\r\n options\r\n .slice(fromIndex, toIndex + 1)\r\n .filter((item) => !item.disabled)\r\n .forEach((renderedOption) => {\r\n if (!selectedOptionState && this.noUnselectLast && this.selectionModel.selected.length === 1) {\r\n return;\r\n }\r\n\r\n renderedOption.setSelected(selectedOptionState);\r\n });\r\n }\r\n\r\n // Implemented as part of ControlValueAccessor.\r\n writeValue(values: string[]): void {\r\n this._value = values;\r\n\r\n if (this.options) {\r\n this.setOptionsFromValues(values || []);\r\n }\r\n }\r\n\r\n // Implemented as part of ControlValueAccessor.\r\n registerOnChange(fn: (value: any) => void): void {\r\n this.onChange = fn;\r\n }\r\n\r\n // Implemented as part of ControlValueAccessor.\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n // Implemented as a part of ControlValueAccessor.\r\n setDisabledState(isDisabled: boolean): void {\r\n if (this.options) {\r\n this.options.forEach((option) => option.disabled = isDisabled);\r\n }\r\n }\r\n\r\n getSelectedOptionValues(): string[] {\r\n return this.options.filter((option) => option.selected).map((option) => option.value);\r\n }\r\n\r\n // Toggles the selected state of the currently focused option.\r\n toggleFocusedOption(): void {\r\n const focusedIndex = this.keyManager.activeItemIndex;\r\n\r\n if (focusedIndex != null && this.isValidIndex(focusedIndex)) {\r\n const focusedOption: McListOption = this.options.toArray()[focusedIndex];\r\n\r\n if (focusedOption && this.canDeselectLast(focusedOption)) {\r\n focusedOption.toggle();\r\n\r\n // Emit a change event because the focused option changed its state through user interaction.\r\n this.emitChangeEvent(focusedOption);\r\n }\r\n }\r\n }\r\n\r\n canDeselectLast(listOption: McListOption): boolean {\r\n return !(this.noUnselectLast && this.selectionModel.selected.length === 1 && listOption.selected);\r\n }\r\n\r\n getHeight(): number {\r\n const clientRects = this.elementRef.nativeElement.getClientRects();\r\n\r\n return clientRects.length ? clientRects[0].height : 0;\r\n }\r\n\r\n // View to model callback that should be called if the list or its options lost focus.\r\n // tslint:disable-next-line:no-empty\r\n onTouched: () => void = () => {};\r\n\r\n // Removes an option from the selection list and updates the active item.\r\n removeOptionFromList(option: McListOption) {\r\n if (!option.hasFocus) { return; }\r\n\r\n const optionIndex = this.getOptionIndex(option);\r\n\r\n // Check whether the option is the last item\r\n if (optionIndex > 0) {\r\n this.keyManager.setPreviousItemActive();\r\n } else if (optionIndex === 0 && this.options.length > 1) {\r\n this.keyManager.setNextItemActive();\r\n }\r\n }\r\n\r\n onKeyDown(event: KeyboardEvent) {\r\n // tslint:disable-next-line: deprecation\r\n const keyCode = event.keyCode;\r\n\r\n if ([SPACE, ENTER, LEFT_ARROW, RIGHT_ARROW].includes(keyCode) || isVerticalMovement(event)) {\r\n event.preventDefault();\r\n }\r\n\r\n if (this.multiple && isSelectAll(event)) {\r\n this.selectAllOptions();\r\n event.preventDefault();\r\n\r\n return;\r\n } else if (isCopy(event)) {\r\n this.copyActiveOption();\r\n event.preventDefault();\r\n\r\n return;\r\n } else if ([SPACE, ENTER].includes(keyCode)) {\r\n this.toggleFocusedOption();\r\n\r\n return;\r\n } else if (keyCode === TAB) {\r\n this.keyManager.tabOut.next();\r\n\r\n return;\r\n } else if (keyCode === DOWN_ARROW) {\r\n this.keyManager.setNextItemActive();\r\n } else if (keyCode === UP_ARROW) {\r\n this.keyManager.setPreviousItemActive();\r\n } else if (keyCode === HOME) {\r\n this.keyManager.setFirstItemActive();\r\n } else if (keyCode === END) {\r\n this.keyManager.setLastItemActive();\r\n } else if (keyCode === PAGE_UP) {\r\n this.keyManager.setPreviousPageItemActive();\r\n } else if (keyCode === PAGE_DOWN) {\r\n this.keyManager.setNextPageItemActive();\r\n }\r\n\r\n if (this.keyManager.activeItem && isVerticalMovement(event)) {\r\n this.setSelectedOptionsByKey(\r\n this.keyManager.activeItem as McListOption,\r\n hasModifierKey(event, 'shiftKey'),\r\n hasModifierKey(event, 'ctrlKey')\r\n );\r\n }\r\n }\r\n\r\n // Reports a value change to the ControlValueAccessor\r\n reportValueChange() {\r\n if (this.options) {\r\n const value = this.getSelectedOptionValues();\r\n this.onChange(value);\r\n this._value = value;\r\n }\r\n }\r\n\r\n // Emits a change event if the selected state of an option changed.\r\n emitChangeEvent(option: McListOption) {\r\n this.selectionChange.emit(new McListSelectionChange(this, option));\r\n }\r\n\r\n protected updateTabIndex(): void {\r\n this._tabIndex = this.userTabIndex || (this.options.length === 0 ? -1 : 0);\r\n }\r\n\r\n private onCopyDefaultHandler(): void {\r\n this.clipboard?.copy(this.keyManager.activeItem!.value);\r\n }\r\n\r\n private resetOptions() {\r\n this.dropSubscriptions();\r\n this.listenToOptionsFocus();\r\n }\r\n\r\n private dropSubscriptions() {\r\n if (this.optionFocusSubscription) {\r\n this.optionFocusSubscription.unsubscribe();\r\n this.optionFocusSubscription = null;\r\n }\r\n\r\n if (this.optionBlurSubscription) {\r\n this.optionBlurSubscription.unsubscribe();\r\n this.optionBlurSubscription = null;\r\n }\r\n }\r\n\r\n private listenToOptionsFocus(): void {\r\n this.optionFocusSubscription = this.optionFocusChanges\r\n .subscribe((event) => {\r\n const index: number = this.options.toArray().indexOf(event.option);\r\n\r\n if (this.isValidIndex(index)) {\r\n this.keyManager.updateActiveItem(index);\r\n }\r\n });\r\n\r\n this.optionBlurSubscription = this.optionBlurChanges\r\n .subscribe(() => this.blur());\r\n }\r\n\r\n /** Checks whether any of the options is focused. */\r\n private hasFocusedOption() {\r\n return this.options.some((option) => option.hasFocus);\r\n }\r\n\r\n // Returns the option with the specified value.\r\n private getOptionByValue(value: string): McListOption | undefined {\r\n return this.options.find((option) => option.value === value);\r\n }\r\n\r\n // Sets the selected options based on the specified values.\r\n private setOptionsFromValues(values: string[]) {\r\n this.options.forEach((option) => option.setSelected(false));\r\n\r\n values\r\n .map((value) => this.getOptionByValue(value))\r\n .filter(Boolean)\r\n .forEach((option) => option!.setSelected(true));\r\n }\r\n\r\n /**\r\n * Utility to ensure all indexes are valid.\r\n * @param index The index to be checked.\r\n * @returns True if the index is valid for our list of options.\r\n */\r\n private isValidIndex(index: number): boolean {\r\n return index >= 0 && index < this.options.length;\r\n }\r\n\r\n // Returns the index of the specified list option.\r\n private getOptionIndex(option: McListOption): number {\r\n return this.options.toArray().indexOf(option);\r\n }\r\n\r\n // View to model callback that should be called whenever the selected options change.\r\n private onChange: (value: any) => void = (_: any) => {};\r\n\r\n private selectAllOptions() {\r\n const optionsToSelect = this.options\r\n .filter((option) => !option.disabled);\r\n\r\n optionsToSelect\r\n .forEach((option) => option.setSelected(true));\r\n\r\n this.onSelectAll.emit(new McListSelectAllEvent(this, optionsToSelect));\r\n }\r\n\r\n private copyActiveOption() {\r\n if (this.onCopy.observers.length) {\r\n this.onCopy.emit(new McListCopyEvent(this, this.keyManager.activeItem as McListOption));\r\n } else {\r\n this.onCopyDefaultHandler();\r\n }\r\n }\r\n}\r\n","<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","// todo пока не делаем, перенесено из материала, но у нас в доках таких простых списков нет.\r\nimport {\r\n AfterContentInit, ChangeDetectionStrategy, Component, ContentChildren, ElementRef, QueryList,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { McLine, McLineSetter } from '@ptsecurity/mosaic/core';\r\n\r\n\r\n@Component({\r\n selector: 'mc-list',\r\n host: { class: 'mc-list' },\r\n template: '<ng-content></ng-content>',\r\n styleUrls: ['./list.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class McList {}\r\n\r\n\r\n@Component({\r\n selector: 'mc-list-item, a[mc-list-item]',\r\n host: {\r\n class: 'mc-list-item',\r\n '(focus)': 'handleFocus()',\r\n '(blur)': 'handleBlur()'\r\n },\r\n templateUrl: './list-item.html',\r\n encapsulation: ViewEncapsulation.None,\r\n preserveWhitespaces: false,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class McListItem implements AfterContentInit {\r\n @ContentChildren(McLine) lines: QueryList<McLine>;\r\n\r\n constructor(private elementRef: ElementRef) {}\r\n\r\n ngAfterContentInit() {\r\n // tslint:disable-next-line:no-unused-expression\r\n new McLineSetter(this.lines, this.elementRef);\r\n }\r\n\r\n handleFocus() {\r\n this.elementRef.nativeElement.classList.add('mc-focused');\r\n }\r\n\r\n handleBlur() {\r\n this.elementRef.nativeElement.classList.remove('mc-focused');\r\n }\r\n\r\n getHostElement(): HTMLElement {\r\n return this.elementRef.nativeElement;\r\n }\r\n}\r\n","<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","import { A11yModule } from '@angular/cdk/a11y';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { McLineModule, McOptionModule, McPseudoCheckboxModule } from '@ptsecurity/mosaic/core';\r\n\r\nimport { McListSelection, McListOption } from './list-selection.component';\r\nimport { McList, McListItem } from './list.component';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n A11yModule,\r\n McPseudoCheckboxModule,\r\n McLineModule,\r\n McOptionModule\r\n ],\r\n exports: [\r\n McList,\r\n McListSelection,\r\n McListItem,\r\n McListOption,\r\n McOptionModule\r\n ],\r\n declarations: [\r\n McList,\r\n McListSelection,\r\n McListItem,\r\n McListOption\r\n ]\r\n})\r\nexport class McListModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAqEA;;;;AAIG;MA6BU,YAAY,CAAA;IAkFrB,WACY,CAAA,UAAmC,EACnC,cAAiC,EACjC,MAAc,EAC4B,aAA8B,EAC3D,KAAiB,EAAA;AAJ9B,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAyB;AACnC,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmB;AACjC,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;AAC4B,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAiB;AAC3D,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;AAtF1C,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AAEjB,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,OAAO,EAAiB,CAAC;AAEvC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,OAAO,EAAiB,CAAC;AAW/C;;;AAGG;AACK,QAAA,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;AA8B1B,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AA0BlB,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;KAYtB;IAlEJ,IACI,KAAK,KAAU,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE;IACxC,IAAI,KAAK,CAAC,QAAa,EAAA;AACnB,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACpE,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACzB,SAAA;AAED,QAAA,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;KAC1B;AAGD,IAAA,IACI,QAAQ,GAAA;QACR,MAAM,qBAAqB,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;QAChF,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;AAExD,QAAA,OAAO,qBAAqB,IAAI,aAAa,IAAI,IAAI,CAAC,SAAS,CAAC;KACnE;IAED,IAAI,QAAQ,CAAC,KAAU,EAAA;AACnB,QAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;AAElC,QAAA,IAAI,QAAQ,KAAK,IAAI,CAAC,SAAS,EAAE;AAC7B,YAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;AAC1B,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;AACtC,SAAA;KACJ;AAID,IAAA,IACI,YAAY,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,aAAa,KAAK,SAAS,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;KAClG;IAED,IAAI,YAAY,CAAC,KAAU,EAAA;AACvB,QAAA,IAAI,CAAC,aAAa,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KACrD;AAID,IAAA,IACI,QAAQ,GAAA;;AACR,QAAA,OAAO,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,aAAa,CAAC,cAAc,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,UAAU,CAAC,IAAI,CAAC,KAAI,KAAK,CAAC;KACvE;IAED,IAAI,QAAQ,CAAC,KAAc,EAAA;AACvB,QAAA,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;AAEpC,QAAA,IAAI,UAAU,KAAK,IAAI,CAAC,SAAS,EAAE;AAC/B,YAAA,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AAChC,SAAA;KACJ;AAID,IAAA,IAAI,QAAQ,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;KACpC;IAUD,QAAQ,GAAA;AACJ,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC;QAEhC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE;AAClF,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAC1B,SAAA;AAED,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC;;;;;;AAOnC,QAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAK;AACxB,YAAA,IAAI,IAAI,CAAC,SAAS,IAAI,WAAW,EAAE;AAC/B,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,gBAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;AACtC,aAAA;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;KACjC;IAED,WAAW,GAAA;QACP,IAAI,IAAI,CAAC,QAAQ,EAAE;;;AAGf,YAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;AACvD,SAAA;AAED,QAAA,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;KACjD;IAED,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;KAClC;IAED,QAAQ,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,EAAE,CAAC;KAC/D;AAED,IAAA,WAAW,CAAC,QAAiB,EAAA;AACzB,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE;YAAE,OAAO;AAAE,SAAA;AAElF,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;AAE1B,QAAA,IAAI,QAAQ,EAAE;YACV,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAClD,SAAA;AAAM,aAAA;YACH,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACpD,SAAA;AAED,QAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;KACtC;IAED,SAAS,GAAA;QACL,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;AAEnE,QAAA,OAAO,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;KACzD;AAED,IAAA,WAAW,CAAC,MAAM,EAAA;QACd,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE,OAAO;AAAE,SAAA;QAE9B,IAAI,CAAC,aAAa,CAAC,yBAAyB,CACxC,IAAI,EAAE,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAC9E,CAAC;KACL;AAED,IAAA,SAAS,CAAC,MAAM,EAAA;AACZ,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YAAE,OAAO;AAAE,SAAA;AAEnC,QAAA,IAAI,MAAM,CAAC,OAAO,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;AAC3E,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YAE1B,MAAM,CAAC,cAAc,EAAE,CAAC;AAC3B,SAAA;KACJ;IAED,KAAK,GAAA;;AACD,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAI,CAAA,EAAA,GAAA,IAAI,CAAC,YAAY,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAA,EAAE;YAAE,OAAO;AAAE,SAAA;AAE9E,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAEtC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAEpC,QAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAK;AACxB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AAErB,YAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;AACvC,SAAC,CAAC,CAAC;KACN;IAED,IAAI,GAAA;;;;;QAKA,IAAI,CAAC,MAAM,CAAC,QAAQ;AACf,aAAA,YAAY,EAAE;AACd,aAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACb,SAAS,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;;AACjB,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAEtB,gBAAA,IAAI,MAAA,IAAI,CAAC,YAAY,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,EAAE;oBAAE,OAAO;AAAE,iBAAA;gBAE5C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AACvC,aAAC,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;KACV;IAED,cAAc,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;KACxC;;AA7MQ,sCAAA,YAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,mGAsFT,UAAU,CAAC,MAAM,eAAe,CAAC,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAtFpC,sCAAA,YAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAY,EAJV,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,SAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,gCAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,SAAA,EAAA;AACP,QAAA,EAAE,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,YAAY,EAAE;AAClE,KAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EASa,uBAAuB,EACvB,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,gBAAgB,EAChB,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,iBAAiB,0KC/GnC,8WAaA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FDyFa,YAAY,EAAA,UAAA,EAAA,CAAA;kBA5BxB,SAAS;+BACI,cAAc,EAAA,QAAA,EACd,gBAAgB,EAEpB,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE,gBAAgB;AAEvB,wBAAA,qBAAqB,EAAE,UAAU;AACjC,wBAAA,qBAAqB,EAAE,UAAU;AACjC,wBAAA,oBAAoB,EAAE,UAAU;AAEhC,wBAAA,kCAAkC,EAAE,sBAAsB;AAE1D,wBAAA,iBAAiB,EAAE,UAAU;AAC7B,wBAAA,iBAAiB,EAAE,kBAAkB;AAErC,wBAAA,WAAW,EAAE,SAAS;AACtB,wBAAA,QAAQ,EAAE,QAAQ;AAClB,wBAAA,SAAS,EAAE,qBAAqB;AAChC,wBAAA,WAAW,EAAE,mBAAmB;AACnC,qBAAA,EACc,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,mBAAA,EAChB,KAAK,EACT,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACP,wBAAA,EAAE,OAAO,EAAE,uBAAuB,EAAE,WAAW,cAAc,EAAE;AAClE,qBAAA,EAAA,QAAA,EAAA,8WAAA,EAAA,CAAA;;sGAwFoE,eAAe,EAAA,UAAA,EAAA,CAAA;8BAA/E,MAAM;wBAAC,IAAA,EAAA,CAAA,UAAU,CAAC,MAAM,eAAe,CAAC,CAAA;;8BACxC,QAAQ;;yBAhF0B,YAAY,EAAA,CAAA;sBAAlD,YAAY;uBAAC,uBAAuB,CAAA;gBACL,cAAc,EAAA,CAAA;sBAA7C,YAAY;uBAAC,gBAAgB,CAAA;gBACG,eAAe,EAAA,CAAA;sBAA/C,YAAY;uBAAC,iBAAiB,CAAA;gBAEO,IAAI,EAAA,CAAA;sBAAzC,SAAS;gBAAC,IAAA,EAAA,CAAA,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAG3B,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBASF,KAAK,EAAA,CAAA;sBADR,KAAK;gBAYF,QAAQ,EAAA,CAAA;sBADX,KAAK;gBAoBF,YAAY,EAAA,CAAA;sBADf,KAAK;gBAYF,QAAQ,EAAA,CAAA;sBADX,KAAK;;AAkJG,MAAA,gCAAgC,GAAQ;AACjD,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,eAAe,CAAC;AAC9C,IAAA,KAAK,EAAE,IAAI;EACb;MAEW,qBAAqB,CAAA;IAC9B,WAAmB,CAAA,MAAuB,EAAS,MAAoB,EAAA;AAApD,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAiB;AAAS,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAc;KAAI;AAC9E,CAAA;MAEY,oBAAoB,CAAA;IAC7B,WAAmB,CAAA,MAAuB,EAAS,OAAY,EAAA;AAA5C,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAiB;AAAS,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAK;KAAI;AACtE,CAAA;MAEY,eAAe,CAAA;IACxB,WAAmB,CAAA,MAAuB,EAAS,MAAS,EAAA;AAAzC,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAiB;AAAS,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAG;KAAI;AACnE,CAAA;MAEY,mBAAmB,CAAA;AAC5B,IAAA,WAAA,CAAmB,UAAsB,EAAA;AAAtB,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;KAAI;AAChD,CAAA;AAED;AACa,MAAA,wBAAwB,GAC/B,aAAa,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAE;AA2BlD,MAAO,eAAgB,SAAQ,wBAAwB,CAAA;AAkFzD,IAAA,WAAA,CACI,UAAsB,EACd,iBAAoC,EACrB,QAAsB,EACzB,SAAoB,EAAA;QAExC,KAAK,CAAC,UAAU,CAAC,CAAC;AAJV,QAAA,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;AAExB,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;AA/EzB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAsC,CAAC;AAErE,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAiC,CAAC;AAWtE,QAAA,IAAW,CAAA,WAAA,GAAY,IAAI,CAAC;AAW5B,QAAA,IAAe,CAAA,eAAA,GAAY,IAAI,CAAC;AAQ/B,QAAA,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;AAY7B,QAAA,IAAS,CAAA,SAAA,GAAG,CAAC,CAAC;AAEtB,QAAA,IAAY,CAAA,YAAA,GAAkB,IAAI,CAAC;;AAOhB,QAAA,IAAA,CAAA,eAAe,GAAwC,IAAI,YAAY,EAAyB,CAAC;;AAgBnG,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,OAAO,EAAQ,CAAC;AA4BjD;;;;AAIG;AACM,QAAA,IAAW,CAAA,WAAA,GAAkC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;;;AAsM5E,QAAA,IAAA,CAAA,SAAS,GAAe,MAAK,GAAG,CAAC;;QAyJzB,IAAA,CAAA,QAAQ,GAAyB,CAAC,CAAM,KAAM,GAAC,CAAC;QAlXpD,IAAI,QAAQ,KAAK,YAAY,CAAC,QAAQ,IAAI,QAAQ,KAAK,YAAY,CAAC,QAAQ,EAAE;AAC1E,YAAA,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;AAChC,SAAA;aAAM,IAAI,QAAQ,KAAK,IAAI,EAAE;AAC1B,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC;AAC7C,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,YAAY,CAAC,QAAQ,EAAE;AAC7C,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC/B,SAAA;QAED,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAe,IAAI,CAAC,QAAQ,CAAC,CAAC;KACzE;AA3FD,IAAA,IACI,UAAU,GAAA;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;IAED,IAAI,UAAU,CAAC,KAAc,EAAA;AACzB,QAAA,IAAI,CAAC,WAAW,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KACnD;AAID,IAAA,IACI,cAAc,GAAA;QACd,OAAO,IAAI,CAAC,eAAe,CAAC;KAC/B;IAED,IAAI,cAAc,CAAC,KAAc,EAAA;AAC7B,QAAA,IAAI,CAAC,eAAe,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KACvD;AAMD,IAAA,IAAI,QAAQ,GAAA;AACR,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;KAC9B;AAID,IAAA,IACI,QAAQ,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;KAC9C;IAED,IAAI,QAAQ,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KAC1B;AAMD,IAAA,IAAI,YAAY,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,YAAY,KAAK,YAAY,CAAC,QAAQ,CAAC;KACtD;AAOD,IAAA,IAAI,kBAAkB,GAAA;AAClB,QAAA,OAAO,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;KACjE;AAED,IAAA,IAAI,iBAAiB,GAAA;AACjB,QAAA,OAAO,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;KAChE;IAyCD,kBAAkB,GAAA;QACd,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE7C,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAe,IAAI,CAAC,OAAO,CAAC;AAC5D,aAAA,aAAa,EAAE;AACf,aAAA,uBAAuB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;AACzC,aAAA,yBAAyB,CAAC,IAAI,CAAC,UAAU,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC;QAE/D,IAAI,CAAC,UAAU,CAAC,MAAM;AACjB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aAC/B,SAAS,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YAEpB,UAAU,CAAC,MAAK;gBACZ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;AACxC,gBAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;AAC1C,aAAC,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;QAEP,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC1C,SAAA;QAED,IAAI,CAAC,cAAc,CAAC,OAAO;AACtB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC/B,aAAA,SAAS,CAAC,CAAC,KAAK,KAAI;AACjB,YAAA,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE;AAAE,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AAAE,aAAA;AAEzD,YAAA,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE;AAAE,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAAE,aAAA;AAChE,SAAC,CAAC,CAAC;QAEP,IAAI,CAAC,OAAO,CAAC,OAAO;AACf,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aAChD,SAAS,CAAC,MAAK;YACZ,IAAI,CAAC,YAAY,EAAE,CAAC;;YAGpB,IAAI,CAAC,cAAc,EAAE,CAAC;AAC1B,SAAC,CAAC,CAAC;QAEP,IAAI,CAAC,gBAAgB,EAAE,CAAC;KAC3B;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AAEtB,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;KAC7B;IAED,KAAK,GAAA;AACD,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAAE,OAAO;AAAE,SAAA;AAE1C,QAAA,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC;KACxC;IAED,IAAI,GAAA;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE;YAC1B,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,SAAA;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;AACjB,QAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;KACzC;IAED,SAAS,GAAA;AACL,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QAE3D,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC5B;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QAE5D,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC5B;IAED,gBAAgB,GAAA;QACZ,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;YAAE,OAAO;AAAE,SAAA;QAEvD,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;KACjG;AAED,IAAA,yBAAyB,CAAC,MAAoB,EAAE,QAAiB,EAAE,OAAgB,EAAA;AAC/E,QAAA,IAAI,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC3B,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC9B,SAAA;AAAM,aAAA,IAAI,OAAO,EAAE;AAChB,YAAA,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE;gBAAE,OAAO;AAAE,aAAA;AAE9C,YAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACtC,SAAA;aAAM,IAAI,IAAI,CAAC,UAAU,EAAE;AACxB,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;AAC5B,YAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACtC,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACtC,SAAA;AAED,QAAA,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC5B;AAED,IAAA,uBAAuB,CAAC,MAAoB,EAAE,QAAiB,EAAE,OAAgB,EAAA;AAC7E,QAAA,IAAI,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC3B,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC9B,SAAA;AAAM,aAAA,IAAI,OAAO,EAAE;AAChB,YAAA,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE;gBAAE,OAAO;AAAE,aAAA;AACjD,SAAA;aAAM,IAAI,IAAI,CAAC,UAAU,EAAE;AACxB,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;AACxD,YAAA,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAEzB,YAAA,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAC7B,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC5B,SAAA;KACJ;IAED,mBAAmB,GAAA;QACf,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;AACvC,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC;AACxD,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,uBAAuB,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;QACxF,MAAM,mBAAmB,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC;QAExD,IAAI,OAAO,KAAK,SAAS,EAAE;YAAE,OAAO;AAAE,SAAA;QAEtC,IAAI,SAAS,GAAG,OAAO,EAAE;YACrB,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AAC/C,SAAA;QAED,OAAO;AACF,aAAA,KAAK,CAAC,SAAS,EAAE,OAAO,GAAG,CAAC,CAAC;aAC7B,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;AAChC,aAAA,OAAO,CAAC,CAAC,cAAc,KAAI;AACxB,YAAA,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC1F,OAAO;AACV,aAAA;AAED,YAAA,cAAc,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;AACpD,SAAC,CAAC,CAAC;KACV;;AAGD,IAAA,UAAU,CAAC,MAAgB,EAAA;AACvB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,YAAA,IAAI,CAAC,oBAAoB,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;AAC3C,SAAA;KACJ;;AAGD,IAAA,gBAAgB,CAAC,EAAwB,EAAA;AACrC,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACtB;;AAGD,IAAA,iBAAiB,CAAC,EAAc,EAAA;AAC5B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACvB;;AAGD,IAAA,gBAAgB,CAAC,UAAmB,EAAA;QAChC,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,GAAG,UAAU,CAAC,CAAC;AAClE,SAAA;KACJ;IAED,uBAAuB,GAAA;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC;KACzF;;IAGD,mBAAmB,GAAA;AACf,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;QAErD,IAAI,YAAY,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE;YACzD,MAAM,aAAa,GAAiB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC,CAAC;YAEzE,IAAI,aAAa,IAAI,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,EAAE;gBACtD,aAAa,CAAC,MAAM,EAAE,CAAC;;AAGvB,gBAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;AACvC,aAAA;AACJ,SAAA;KACJ;AAED,IAAA,eAAe,CAAC,UAAwB,EAAA;QACpC,OAAO,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;KACrG;IAED,SAAS,GAAA;QACL,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;AAEnE,QAAA,OAAO,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;KACzD;;AAOD,IAAA,oBAAoB,CAAC,MAAoB,EAAA;AACrC,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YAAE,OAAO;AAAE,SAAA;QAEjC,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;;QAGhD,IAAI,WAAW,GAAG,CAAC,EAAE;AACjB,YAAA,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC;AAC3C,SAAA;aAAM,IAAI,WAAW,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACrD,YAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;AACvC,SAAA;KACJ;AAED,IAAA,SAAS,CAAC,KAAoB,EAAA;;AAE1B,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AAE9B,QAAA,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE;YACxF,KAAK,CAAC,cAAc,EAAE,CAAC;AAC1B,SAAA;QAED,IAAI,IAAI,CAAC,QAAQ,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE;YACrC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,KAAK,CAAC,cAAc,EAAE,CAAC;YAEvB,OAAO;AACV,SAAA;AAAM,aAAA,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;YACtB,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,KAAK,CAAC,cAAc,EAAE,CAAC;YAEvB,OAAO;AACV,SAAA;aAAM,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YACzC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAE3B,OAAO;AACV,SAAA;aAAM,IAAI,OAAO,KAAK,GAAG,EAAE;AACxB,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAE9B,OAAO;AACV,SAAA;aAAM,IAAI,OAAO,KAAK,UAAU,EAAE;AAC/B,YAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;AACvC,SAAA;aAAM,IAAI,OAAO,KAAK,QAAQ,EAAE;AAC7B,YAAA,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC;AAC3C,SAAA;aAAM,IAAI,OAAO,KAAK,IAAI,EAAE;AACzB,YAAA,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC;AACxC,SAAA;aAAM,IAAI,OAAO,KAAK,GAAG,EAAE;AACxB,YAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;AACvC,SAAA;aAAM,IAAI,OAAO,KAAK,OAAO,EAAE;AAC5B,YAAA,IAAI,CAAC,UAAU,CAAC,yBAAyB,EAAE,CAAC;AAC/C,SAAA;aAAM,IAAI,OAAO,KAAK,SAAS,EAAE;AAC9B,YAAA,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC;AAC3C,SAAA;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE;YACzD,IAAI,CAAC,uBAAuB,CACxB,IAAI,CAAC,UAAU,CAAC,UAA0B,EAC1C,cAAc,CAAC,KAAK,EAAE,UAAU,CAAC,EACjC,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CACnC,CAAC;AACL,SAAA;KACJ;;IAGD,iBAAiB,GAAA;QACb,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;AAC7C,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACrB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACvB,SAAA;KACJ;;AAGD,IAAA,eAAe,CAAC,MAAoB,EAAA;AAChC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;KACtE;IAES,cAAc,GAAA;QACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;KAC9E;IAEO,oBAAoB,GAAA;;AACxB,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAW,CAAC,KAAK,CAAC,CAAC;KAC3D;IAEO,YAAY,GAAA;QAChB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC/B;IAEO,iBAAiB,GAAA;QACrB,IAAI,IAAI,CAAC,uBAAuB,EAAE;AAC9B,YAAA,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,CAAC;AAC3C,YAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;AACvC,SAAA;QAED,IAAI,IAAI,CAAC,sBAAsB,EAAE;AAC7B,YAAA,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAAC;AAC1C,YAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;AACtC,SAAA;KACJ;IAEO,oBAAoB,GAAA;AACxB,QAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,kBAAkB;AACjD,aAAA,SAAS,CAAC,CAAC,KAAK,KAAI;AACjB,YAAA,MAAM,KAAK,GAAW,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAEnE,YAAA,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;AAC1B,gBAAA,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC3C,aAAA;AACL,SAAC,CAAC,CAAC;AAEP,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,iBAAiB;aAC/C,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;KACrC;;IAGO,gBAAgB,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC;KACzD;;AAGO,IAAA,gBAAgB,CAAC,KAAa,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;KAChE;;AAGO,IAAA,oBAAoB,CAAC,MAAgB,EAAA;AACzC,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QAE5D,MAAM;AACD,aAAA,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;aAC5C,MAAM,CAAC,OAAO,CAAC;AACf,aAAA,OAAO,CAAC,CAAC,MAAM,KAAK,MAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;KACvD;AAED;;;;AAIG;AACK,IAAA,YAAY,CAAC,KAAa,EAAA;QAC9B,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;KACpD;;AAGO,IAAA,cAAc,CAAC,MAAoB,EAAA;QACvC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;KACjD;IAKO,gBAAgB,GAAA;AACpB,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO;aAC/B,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAE1C,eAAe;AACd,aAAA,OAAO,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AAE/C,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;KAC1E;IAEO,gBAAgB,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE;AAC9B,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,UAA0B,CAAC,CAAC,CAAC;AAC3F,SAAA;AAAM,aAAA;YACH,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC/B,SAAA;KACJ;;AA9dQ,sCAAA,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,6EAqFT,UAAU,EAAA,SAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AArFhB,sCAAA,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,sgBAHb,CAAC,gCAAgC,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,SAAA,EAQ5B,YAAY,EA3BnB,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;eAKC,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,w4EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FAiBF,eAAe,EAAA,UAAA,EAAA,CAAA;kBAzB3B,SAAS;+BACI,iBAAiB,EAAA,QAAA,EACjB,mBAAmB,EACnB,QAAA,EAAA,CAAA;;;;;AAKC,cAAA,CAAA,EAEM,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAC7B,MAAA,EAAA,CAAC,UAAU,CAAC,EACd,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE,mBAAmB;AAE1B,wBAAA,iBAAiB,EAAE,IAAI;AACvB,wBAAA,iBAAiB,EAAE,kBAAkB;AAErC,wBAAA,WAAW,EAAE,mBAAmB;AAChC,wBAAA,iBAAiB,EAAE,oBAAoB;AAC1C,qBAAA,EAAA,SAAA,EACU,CAAC,gCAAgC,CAAC,EAAA,mBAAA,EACxB,KAAK,EAAA,MAAA,EAAA,CAAA,w4EAAA,CAAA,EAAA,CAAA;;;8BAuFrB,SAAS;+BAAC,UAAU,CAAA;;8BACpB,QAAQ;;yBAjFyC,OAAO,EAAA,CAAA;sBAA5D,eAAe;gBAAC,IAAA,EAAA,CAAA,YAAY,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;gBAEjC,WAAW,EAAA,CAAA;sBAA7B,MAAM;gBAEY,MAAM,EAAA,CAAA;sBAAxB,MAAM;gBAGH,UAAU,EAAA,CAAA;sBADb,KAAK;gBAYF,cAAc,EAAA,CAAA;sBADjB,KAAK;gBAiBG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAGF,QAAQ,EAAA,CAAA;sBADX,KAAK;gBAmBa,eAAe,EAAA,CAAA;sBAAjC,MAAM;gBAiDE,WAAW,EAAA,CAAA;sBAAnB,KAAK;;;AEvdV;MAgBa,MAAM,CAAA;;yIAAN,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAN,sCAAA,MAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAM,oFALL,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,w4EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FAK5B,MAAM,EAAA,UAAA,EAAA,CAAA;kBARlB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAS,EACb,IAAA,EAAA,EAAE,KAAK,EAAE,SAAS,EAAE,EAAA,QAAA,EAChB,2BAA2B,EAAA,eAAA,EAEpB,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,MAAA,EAAA,CAAA,w4EAAA,CAAA,EAAA,CAAA;;MAiB5B,UAAU,CAAA;AAGnB,IAAA,WAAA,CAAoB,UAAsB,EAAA;AAAtB,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;KAAI;IAE9C,kBAAkB,GAAA;;QAEd,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;KACjD;IAED,WAAW,GAAA;QACP,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;KAC7D;IAED,UAAU,GAAA;QACN,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;KAChE;IAED,cAAc,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;KACxC;;6IApBQ,UAAU,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;iIAAV,UAAU,EAAA,QAAA,EAAA,+BAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,MAAA,EAAA,cAAA,EAAA,EAAA,cAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EACF,MAAM,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChC3B,sNAOA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FDwBa,UAAU,EAAA,UAAA,EAAA,CAAA;kBAZtB,SAAS;YACI,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,+BAA+B,EACnC,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE,cAAc;AACrB,wBAAA,SAAS,EAAE,eAAe;AAC1B,wBAAA,QAAQ,EAAE,cAAc;qBAC3B,EAEc,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,mBAAA,EAChB,KAAK,EACT,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,sNAAA,EAAA,CAAA;iGAGtB,KAAK,EAAA,CAAA;sBAA7B,eAAe;uBAAC,MAAM,CAAA;;;MEDd,YAAY,CAAA;;+IAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAZ,sCAAA,YAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,iBANjB,MAAM;QACN,eAAe;QACf,UAAU;AACV,QAAA,YAAY,aAjBZ,YAAY;QACZ,UAAU;QACV,sBAAsB;QACtB,YAAY;AACZ,QAAA,cAAc,aAGd,MAAM;QACN,eAAe;QACf,UAAU;QACV,YAAY;QACZ,cAAc,CAAA,EAAA,CAAA,CAAA;AAST,sCAAA,YAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,EArBZ,OAAA,EAAA,CAAA;YACL,YAAY;YACZ,UAAU;YACV,sBAAsB;YACtB,YAAY;YACZ,cAAc;AACjB,SAAA,EAMG,cAAc,CAAA,EAAA,CAAA,CAAA;2FAST,YAAY,EAAA,UAAA,EAAA,CAAA;kBAtBxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,UAAU;wBACV,sBAAsB;wBACtB,YAAY;wBACZ,cAAc;AACjB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,MAAM;wBACN,eAAe;wBACf,UAAU;wBACV,YAAY;wBACZ,cAAc;AACjB,qBAAA;AACD,oBAAA,YAAY,EAAE;wBACV,MAAM;wBACN,eAAe;wBACf,UAAU;wBACV,YAAY;AACf,qBAAA;iBACJ,CAAA;;;AC9BD;;AAEG;;;;"}
1
+ {"version":3,"file":"ptsecurity-mosaic-list.mjs","sources":["../../../packages/mosaic/list/list-selection.component.ts","../../../packages/mosaic/list/list-option.html","../../../packages/mosaic/list/list.component.ts","../../../packages/mosaic/list/list-item.html","../../../packages/mosaic/list/list.module.ts","../../../packages/mosaic/list/ptsecurity-mosaic-list.ts"],"sourcesContent":["/* tslint:disable:no-empty */\r\nimport { Clipboard } from '@angular/cdk/clipboard';\r\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport {\r\n AfterContentInit,\r\n Attribute,\r\n ChangeDetectionStrategy,\r\n Component,\r\n ContentChildren,\r\n ElementRef,\r\n EventEmitter,\r\n forwardRef,\r\n Input,\r\n Output,\r\n QueryList,\r\n ViewEncapsulation,\r\n ChangeDetectorRef,\r\n Inject,\r\n OnDestroy,\r\n OnInit,\r\n ViewChild,\r\n NgZone,\r\n Optional,\r\n ContentChild\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { FocusKeyManager, IFocusableOption } from '@ptsecurity/cdk/a11y';\r\nimport {\r\n hasModifierKey,\r\n isCopy,\r\n isSelectAll,\r\n isVerticalMovement,\r\n DOWN_ARROW,\r\n END,\r\n ENTER,\r\n HOME,\r\n LEFT_ARROW,\r\n PAGE_DOWN,\r\n PAGE_UP,\r\n RIGHT_ARROW,\r\n SPACE,\r\n TAB,\r\n UP_ARROW\r\n} from '@ptsecurity/cdk/keycodes';\r\nimport {\r\n CanDisable,\r\n mixinDisabled,\r\n toBoolean,\r\n CanDisableCtor,\r\n HasTabIndexCtor,\r\n mixinTabIndex,\r\n HasTabIndex,\r\n MultipleMode,\r\n McOptgroup,\r\n MC_OPTION_ACTION_PARENT,\r\n McOptionActionComponent\r\n} from '@ptsecurity/mosaic/core';\r\nimport { McDropdownTrigger } from '@ptsecurity/mosaic/dropdown';\r\nimport { McTooltipTrigger } from '@ptsecurity/mosaic/tooltip';\r\nimport { merge, Observable, Subject, Subscription } from 'rxjs';\r\nimport { startWith, take, takeUntil } from 'rxjs/operators';\r\n\r\n\r\n// tslint:disable-next-line:naming-convention\r\nexport interface McOptionEvent {\r\n option: McListOption;\r\n}\r\n\r\n/**\r\n * Component for list-options of selection-list. Each list-option can automatically\r\n * generate a checkbox and can put current item into the selectionModel of selection-list\r\n * if the current item is selected.\r\n */\r\n@Component({\r\n exportAs: 'mcListOption',\r\n selector: 'mc-list-option',\r\n templateUrl: './list-option.html',\r\n host: {\r\n class: 'mc-list-option',\r\n\r\n '[class.mc-selected]': 'selected',\r\n '[class.mc-disabled]': 'disabled',\r\n '[class.mc-focused]': 'hasFocus',\r\n\r\n '[class.mc-action-button-focused]': 'actionButton?.active',\r\n\r\n '[attr.tabindex]': 'tabIndex',\r\n '[attr.disabled]': 'disabled || null',\r\n\r\n '(focusin)': 'focus()',\r\n '(blur)': 'blur()',\r\n '(click)': 'handleClick($event)',\r\n '(keydown)': 'onKeydown($event)'\r\n },\r\n encapsulation: ViewEncapsulation.None,\r\n preserveWhitespaces: false,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n { provide: MC_OPTION_ACTION_PARENT, useExisting: McListOption }\r\n ]\r\n})\r\nexport class McListOption implements OnDestroy, OnInit, IFocusableOption {\r\n hasFocus: boolean = false;\r\n\r\n readonly onFocus = new Subject<McOptionEvent>();\r\n\r\n readonly onBlur = new Subject<McOptionEvent>();\r\n\r\n @ContentChild(McOptionActionComponent) actionButton: McOptionActionComponent;\r\n @ContentChild(McTooltipTrigger) tooltipTrigger: McTooltipTrigger;\r\n @ContentChild(McDropdownTrigger) dropdownTrigger: McDropdownTrigger;\r\n\r\n @ViewChild('text', { static: false }) text: ElementRef;\r\n\r\n // Whether the label should appear before or after the checkbox. Defaults to 'after'\r\n @Input() checkboxPosition: 'before' | 'after';\r\n\r\n /**\r\n * This is set to true after the first OnChanges cycle so we don't clear the value of `selected`\r\n * in the first cycle.\r\n */\r\n private inputsInitialized = false;\r\n\r\n @Input()\r\n get value(): any { return this._value; }\r\n set value(newValue: any) {\r\n if (this.selected && newValue !== this.value && this.inputsInitialized) {\r\n this.selected = false;\r\n }\r\n\r\n this._value = newValue;\r\n }\r\n private _value: any;\r\n\r\n @Input()\r\n get disabled() {\r\n const listSelectionDisabled = this.listSelection && this.listSelection.disabled;\r\n const groupDisabled = this.group && this.group.disabled;\r\n\r\n return listSelectionDisabled || groupDisabled || this._disabled;\r\n }\r\n\r\n set disabled(value: any) {\r\n const newValue = toBoolean(value);\r\n\r\n if (newValue !== this._disabled) {\r\n this._disabled = newValue;\r\n this.changeDetector.markForCheck();\r\n }\r\n }\r\n\r\n private _disabled = false;\r\n\r\n @Input()\r\n get showCheckbox() {\r\n return this._showCheckbox !== undefined ? this._showCheckbox : this.listSelection.showCheckbox;\r\n }\r\n\r\n set showCheckbox(value: any) {\r\n this._showCheckbox = coerceBooleanProperty(value);\r\n }\r\n\r\n private _showCheckbox: boolean;\r\n\r\n @Input()\r\n get selected(): boolean {\r\n return this.listSelection.selectionModel?.isSelected(this) || false;\r\n }\r\n\r\n set selected(value: boolean) {\r\n const isSelected = toBoolean(value);\r\n\r\n if (isSelected !== this._selected) {\r\n this.setSelected(isSelected);\r\n }\r\n }\r\n\r\n private _selected = false;\r\n\r\n get tabIndex(): any {\r\n return this.disabled ? null : -1;\r\n }\r\n\r\n constructor(\r\n private elementRef: ElementRef<HTMLElement>,\r\n private changeDetector: ChangeDetectorRef,\r\n private ngZone: NgZone,\r\n @Inject(forwardRef(() => McListSelection)) public listSelection: McListSelection,\r\n @Optional() readonly group: McOptgroup\r\n ) {}\r\n\r\n ngOnInit() {\r\n const list = this.listSelection;\r\n\r\n if (list._value && list._value.some((value) => list.compareWith(value, this._value))) {\r\n this.setSelected(true);\r\n }\r\n\r\n const wasSelected = this._selected;\r\n\r\n // List options that are selected at initialization can't be reported properly to the form\r\n // control. This is because it takes some time until the selection-list knows about all\r\n // available options. Also it can happen that the ControlValueAccessor has an initial value\r\n // that should be used instead. Deferring the value change report to the next tick ensures\r\n // that the form control value is not being overwritten.\r\n Promise.resolve().then(() => {\r\n if (this._selected || wasSelected) {\r\n this.selected = true;\r\n this.changeDetector.markForCheck();\r\n }\r\n });\r\n\r\n this.inputsInitialized = true;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.selected) {\r\n // We have to delay this until the next tick in order\r\n // to avoid changed after checked errors.\r\n Promise.resolve().then(() => this.selected = false);\r\n }\r\n\r\n this.listSelection.removeOptionFromList(this);\r\n }\r\n\r\n toggle(): void {\r\n this.selected = !this.selected;\r\n }\r\n\r\n getLabel() {\r\n return this.text ? this.text.nativeElement.textContent : '';\r\n }\r\n\r\n setSelected(selected: boolean) {\r\n if (this._selected === selected || !this.listSelection.selectionModel) { return; }\r\n\r\n this._selected = selected;\r\n\r\n if (selected) {\r\n this.listSelection.selectionModel.select(this);\r\n } else {\r\n this.listSelection.selectionModel.deselect(this);\r\n }\r\n\r\n this.changeDetector.markForCheck();\r\n }\r\n\r\n getHeight(): number {\r\n const clientRects = this.elementRef.nativeElement.getClientRects();\r\n\r\n return clientRects.length ? clientRects[0].height : 0;\r\n }\r\n\r\n handleClick($event) {\r\n if (this.disabled) { return; }\r\n\r\n this.listSelection.setSelectedOptionsByClick(\r\n this, hasModifierKey($event, 'shiftKey'), hasModifierKey($event, 'ctrlKey')\r\n );\r\n }\r\n\r\n onKeydown($event) {\r\n if (!this.actionButton) { return; }\r\n\r\n if ($event.keyCode === TAB && !$event.shiftKey && !this.actionButton.hasFocus) {\r\n this.actionButton.focus();\r\n\r\n $event.preventDefault();\r\n }\r\n }\r\n\r\n focus() {\r\n if (this.disabled || this.hasFocus || this.actionButton?.hasFocus) { return; }\r\n\r\n this.elementRef.nativeElement.focus();\r\n\r\n this.onFocus.next({ option: this });\r\n\r\n Promise.resolve().then(() => {\r\n this.hasFocus = true;\r\n\r\n this.changeDetector.markForCheck();\r\n });\r\n }\r\n\r\n blur(): void {\r\n // When animations are enabled, Angular may end up removing the option from the DOM a little\r\n // earlier than usual, causing it to be blurred and throwing off the logic in the list\r\n // that moves focus not the next item. To work around the issue, we defer marking the option\r\n // as not focused until the next time the zone stabilizes.\r\n this.ngZone.onStable\r\n .asObservable()\r\n .pipe(take(1))\r\n .subscribe(() => {\r\n this.ngZone.run(() => {\r\n this.hasFocus = false;\r\n\r\n if (this.actionButton?.hasFocus) { return; }\r\n\r\n this.onBlur.next({ option: this });\r\n });\r\n });\r\n }\r\n\r\n getHostElement(): HTMLElement {\r\n return this.elementRef.nativeElement;\r\n }\r\n}\r\n\r\n\r\nexport const MC_SELECTION_LIST_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => McListSelection),\r\n multi: true\r\n};\r\n\r\nexport class McListSelectionChange {\r\n constructor(public source: McListSelection, public option: McListOption) {}\r\n}\r\n\r\nexport class McListSelectAllEvent<T> {\r\n constructor(public source: McListSelection, public options: T[]) {}\r\n}\r\n\r\nexport class McListCopyEvent<T> {\r\n constructor(public source: McListSelection, public option: T) {}\r\n}\r\n\r\nexport class McListSelectionBase {\r\n constructor(public elementRef: ElementRef) {}\r\n}\r\n\r\n// tslint:disable-next-line:naming-convention\r\nexport const McListSelectionMixinBase: CanDisableCtor & HasTabIndexCtor & typeof McListSelectionBase\r\n = mixinTabIndex(mixinDisabled(McListSelectionBase));\r\n\r\n@Component({\r\n exportAs: 'mcListSelection',\r\n selector: 'mc-list-selection',\r\n template: `\r\n <div [attr.tabindex]=\"tabIndex\"\r\n (focus)=\"focus()\"\r\n (blur)=\"blur()\">\r\n <ng-content></ng-content>\r\n </div>`,\r\n styleUrls: ['./list.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n inputs: ['disabled'],\r\n host: {\r\n class: 'mc-list-selection',\r\n\r\n '[attr.tabindex]': '-1',\r\n '[attr.disabled]': 'disabled || null',\r\n\r\n '(keydown)': 'onKeyDown($event)',\r\n '(window:resize)': 'updateScrollSize()'\r\n },\r\n providers: [MC_SELECTION_LIST_VALUE_ACCESSOR],\r\n preserveWhitespaces: false\r\n})\r\nexport class McListSelection extends McListSelectionMixinBase implements CanDisable, HasTabIndex, AfterContentInit,\r\n ControlValueAccessor {\r\n\r\n keyManager: FocusKeyManager<McListOption>;\r\n\r\n @ContentChildren(McListOption, { descendants: true }) options: QueryList<McListOption>;\r\n\r\n @Output() readonly onSelectAll = new EventEmitter<McListSelectAllEvent<McListOption>>();\r\n\r\n @Output() readonly onCopy = new EventEmitter<McListCopyEvent<McListOption>>();\r\n\r\n @Input()\r\n get autoSelect(): boolean {\r\n return this._autoSelect;\r\n }\r\n\r\n set autoSelect(value: boolean) {\r\n this._autoSelect = coerceBooleanProperty(value);\r\n }\r\n\r\n private _autoSelect: boolean = true;\r\n\r\n @Input()\r\n get noUnselectLast(): boolean {\r\n return this._noUnselectLast;\r\n }\r\n\r\n set noUnselectLast(value: boolean) {\r\n this._noUnselectLast = coerceBooleanProperty(value);\r\n }\r\n\r\n private _noUnselectLast: boolean = true;\r\n\r\n multipleMode: MultipleMode | null;\r\n\r\n get multiple(): boolean {\r\n return !!this.multipleMode;\r\n }\r\n\r\n @Input() horizontal: boolean = false;\r\n\r\n @Input()\r\n get tabIndex(): any {\r\n return this.disabled ? -1 : this._tabIndex;\r\n }\r\n\r\n set tabIndex(value: any) {\r\n this.userTabIndex = value;\r\n this._tabIndex = value;\r\n }\r\n\r\n private _tabIndex = 0;\r\n\r\n userTabIndex: number | null = null;\r\n\r\n get showCheckbox(): boolean {\r\n return this.multipleMode === MultipleMode.CHECKBOX;\r\n }\r\n\r\n // Emits a change event whenever the selected state of an option changes.\r\n @Output() readonly selectionChange: EventEmitter<McListSelectionChange> = new EventEmitter<McListSelectionChange>();\r\n\r\n selectionModel: SelectionModel<McListOption>;\r\n\r\n get optionFocusChanges(): Observable<McOptionEvent> {\r\n return merge(...this.options.map((option) => option.onFocus));\r\n }\r\n\r\n get optionBlurChanges(): Observable<McOptionEvent> {\r\n return merge(...this.options.map((option) => option.onBlur));\r\n }\r\n\r\n // tslint:disable-next-line:orthodox-getter-and-setter naming-convention\r\n _value: string[] | null;\r\n\r\n /** Emits whenever the component is destroyed. */\r\n private readonly destroyed = new Subject<void>();\r\n\r\n private optionFocusSubscription: Subscription | null;\r\n\r\n private optionBlurSubscription: Subscription | null;\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n private changeDetectorRef: ChangeDetectorRef,\r\n @Attribute('multiple') multiple: MultipleMode,\r\n @Optional() private clipboard: Clipboard\r\n ) {\r\n super(elementRef);\r\n\r\n if (multiple === MultipleMode.CHECKBOX || multiple === MultipleMode.KEYBOARD) {\r\n this.multipleMode = multiple;\r\n } else if (multiple !== null) {\r\n this.multipleMode = MultipleMode.CHECKBOX;\r\n }\r\n\r\n if (this.multipleMode === MultipleMode.CHECKBOX) {\r\n this.autoSelect = false;\r\n this.noUnselectLast = false;\r\n }\r\n\r\n this.selectionModel = new SelectionModel<McListOption>(this.multiple);\r\n }\r\n\r\n /**\r\n * Function used for comparing an option against the selected value when determining which\r\n * options should appear as selected. The first argument is the value of an options. The second\r\n * one is a value from the selected value. A boolean must be returned.\r\n */\r\n @Input() compareWith: (o1: any, o2: any) => boolean = (a1, a2) => a1 === a2;\r\n\r\n ngAfterContentInit(): void {\r\n this.horizontal = toBoolean(this.horizontal);\r\n\r\n this.keyManager = new FocusKeyManager<McListOption>(this.options)\r\n .withTypeAhead()\r\n .withVerticalOrientation(!this.horizontal)\r\n .withHorizontalOrientation(this.horizontal ? 'ltr' : null);\r\n\r\n this.keyManager.tabOut\r\n .pipe(takeUntil(this.destroyed))\r\n .subscribe(() => {\r\n this._tabIndex = -1;\r\n\r\n setTimeout(() => {\r\n this._tabIndex = this.userTabIndex || 0;\r\n this.changeDetectorRef.markForCheck();\r\n });\r\n });\r\n\r\n if (this._value) {\r\n this.setOptionsFromValues(this._value);\r\n }\r\n\r\n this.selectionModel.changed\r\n .pipe(takeUntil(this.destroyed))\r\n .subscribe((event) => {\r\n for (const item of event.added) { item.selected = true; }\r\n\r\n for (const item of event.removed) { item.selected = false; }\r\n });\r\n\r\n this.options.changes\r\n .pipe(startWith(null), takeUntil(this.destroyed))\r\n .subscribe(() => {\r\n this.resetOptions();\r\n\r\n // Check to see if we need to update our tab index\r\n this.updateTabIndex();\r\n });\r\n\r\n this.updateScrollSize();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroyed.next();\r\n\r\n this.destroyed.complete();\r\n }\r\n\r\n focus(): void {\r\n if (this.options.length === 0) { return; }\r\n\r\n this.keyManager.setFirstItemActive();\r\n }\r\n\r\n blur() {\r\n if (!this.hasFocusedOption()) {\r\n this.keyManager.setActiveItem(-1);\r\n }\r\n\r\n this.onTouched();\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n selectAll() {\r\n this.options.forEach((option) => option.setSelected(true));\r\n\r\n this.reportValueChange();\r\n }\r\n\r\n deselectAll() {\r\n this.options.forEach((option) => option.setSelected(false));\r\n\r\n this.reportValueChange();\r\n }\r\n\r\n updateScrollSize(): void {\r\n if (this.horizontal || !this.options.first) { return; }\r\n\r\n this.keyManager.withScrollSize(Math.floor(this.getHeight() / this.options.first.getHeight()));\r\n }\r\n\r\n setSelectedOptionsByClick(option: McListOption, shiftKey: boolean, ctrlKey: boolean): void {\r\n if (shiftKey && this.multiple) {\r\n this.selectActiveOptions();\r\n } else if (ctrlKey) {\r\n if (!this.canDeselectLast(option)) { return; }\r\n\r\n this.selectionModel.toggle(option);\r\n } else if (this.autoSelect) {\r\n this.selectionModel.clear();\r\n this.selectionModel.toggle(option);\r\n } else {\r\n this.selectionModel.toggle(option);\r\n }\r\n\r\n this.emitChangeEvent(option);\r\n this.reportValueChange();\r\n }\r\n\r\n setSelectedOptionsByKey(option: McListOption, shiftKey: boolean, ctrlKey: boolean): void {\r\n if (shiftKey && this.multiple) {\r\n this.selectActiveOptions();\r\n } else if (ctrlKey) {\r\n if (!this.canDeselectLast(option)) { return; }\r\n } else if (this.autoSelect) {\r\n this.options.forEach((item) => item.setSelected(false));\r\n option.setSelected(true);\r\n\r\n this.emitChangeEvent(option);\r\n this.reportValueChange();\r\n }\r\n }\r\n\r\n selectActiveOptions(): void {\r\n const options = this.options.toArray();\r\n let fromIndex = this.keyManager.previousActiveItemIndex;\r\n let toIndex = this.keyManager.previousActiveItemIndex = this.keyManager.activeItemIndex;\r\n const selectedOptionState = options[fromIndex].selected;\r\n\r\n if (toIndex === fromIndex) { return; }\r\n\r\n if (fromIndex > toIndex) {\r\n [fromIndex, toIndex] = [toIndex, fromIndex];\r\n }\r\n\r\n options\r\n .slice(fromIndex, toIndex + 1)\r\n .filter((item) => !item.disabled)\r\n .forEach((renderedOption) => {\r\n if (!selectedOptionState && this.noUnselectLast && this.selectionModel.selected.length === 1) {\r\n return;\r\n }\r\n\r\n renderedOption.setSelected(selectedOptionState);\r\n });\r\n }\r\n\r\n // Implemented as part of ControlValueAccessor.\r\n writeValue(values: string[]): void {\r\n this._value = values;\r\n\r\n if (this.options) {\r\n this.setOptionsFromValues(values || []);\r\n }\r\n }\r\n\r\n // Implemented as part of ControlValueAccessor.\r\n registerOnChange(fn: (value: any) => void): void {\r\n this.onChange = fn;\r\n }\r\n\r\n // Implemented as part of ControlValueAccessor.\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n // Implemented as a part of ControlValueAccessor.\r\n setDisabledState(isDisabled: boolean): void {\r\n if (this.options) {\r\n this.options.forEach((option) => option.disabled = isDisabled);\r\n }\r\n }\r\n\r\n getSelectedOptionValues(): string[] {\r\n return this.options.filter((option) => option.selected).map((option) => option.value);\r\n }\r\n\r\n // Toggles the selected state of the currently focused option.\r\n toggleFocusedOption(): void {\r\n const focusedIndex = this.keyManager.activeItemIndex;\r\n\r\n if (focusedIndex != null && this.isValidIndex(focusedIndex)) {\r\n const focusedOption: McListOption = this.options.toArray()[focusedIndex];\r\n\r\n if (focusedOption && this.canDeselectLast(focusedOption)) {\r\n focusedOption.toggle();\r\n\r\n // Emit a change event because the focused option changed its state through user interaction.\r\n this.emitChangeEvent(focusedOption);\r\n }\r\n }\r\n }\r\n\r\n canDeselectLast(listOption: McListOption): boolean {\r\n return !(this.noUnselectLast && this.selectionModel.selected.length === 1 && listOption.selected);\r\n }\r\n\r\n getHeight(): number {\r\n const clientRects = this.elementRef.nativeElement.getClientRects();\r\n\r\n return clientRects.length ? clientRects[0].height : 0;\r\n }\r\n\r\n // View to model callback that should be called if the list or its options lost focus.\r\n // tslint:disable-next-line:no-empty\r\n onTouched: () => void = () => {};\r\n\r\n // Removes an option from the selection list and updates the active item.\r\n removeOptionFromList(option: McListOption) {\r\n if (!option.hasFocus) { return; }\r\n\r\n const optionIndex = this.getOptionIndex(option);\r\n\r\n // Check whether the option is the last item\r\n if (optionIndex > 0) {\r\n this.keyManager.setPreviousItemActive();\r\n } else if (optionIndex === 0 && this.options.length > 1) {\r\n this.keyManager.setNextItemActive();\r\n }\r\n }\r\n\r\n onKeyDown(event: KeyboardEvent) {\r\n // tslint:disable-next-line: deprecation\r\n const keyCode = event.keyCode;\r\n\r\n if ([SPACE, ENTER, LEFT_ARROW, RIGHT_ARROW].includes(keyCode) || isVerticalMovement(event)) {\r\n event.preventDefault();\r\n }\r\n\r\n if (this.multiple && isSelectAll(event)) {\r\n this.selectAllOptions();\r\n event.preventDefault();\r\n\r\n return;\r\n } else if (isCopy(event)) {\r\n this.copyActiveOption();\r\n event.preventDefault();\r\n\r\n return;\r\n } else if ([SPACE, ENTER].includes(keyCode)) {\r\n this.toggleFocusedOption();\r\n\r\n return;\r\n } else if (keyCode === TAB) {\r\n this.keyManager.tabOut.next();\r\n\r\n return;\r\n } else if (keyCode === DOWN_ARROW) {\r\n this.keyManager.setNextItemActive();\r\n } else if (keyCode === UP_ARROW) {\r\n this.keyManager.setPreviousItemActive();\r\n } else if (keyCode === HOME) {\r\n this.keyManager.setFirstItemActive();\r\n } else if (keyCode === END) {\r\n this.keyManager.setLastItemActive();\r\n } else if (keyCode === PAGE_UP) {\r\n this.keyManager.setPreviousPageItemActive();\r\n } else if (keyCode === PAGE_DOWN) {\r\n this.keyManager.setNextPageItemActive();\r\n }\r\n\r\n if (this.keyManager.activeItem && isVerticalMovement(event)) {\r\n this.setSelectedOptionsByKey(\r\n this.keyManager.activeItem as McListOption,\r\n hasModifierKey(event, 'shiftKey'),\r\n hasModifierKey(event, 'ctrlKey')\r\n );\r\n }\r\n }\r\n\r\n // Reports a value change to the ControlValueAccessor\r\n reportValueChange() {\r\n if (this.options) {\r\n const value = this.getSelectedOptionValues();\r\n this.onChange(value);\r\n this._value = value;\r\n }\r\n }\r\n\r\n // Emits a change event if the selected state of an option changed.\r\n emitChangeEvent(option: McListOption) {\r\n this.selectionChange.emit(new McListSelectionChange(this, option));\r\n }\r\n\r\n protected updateTabIndex(): void {\r\n this._tabIndex = this.userTabIndex || (this.options.length === 0 ? -1 : 0);\r\n }\r\n\r\n private onCopyDefaultHandler(): void {\r\n this.clipboard?.copy(this.keyManager.activeItem!.value);\r\n }\r\n\r\n private resetOptions() {\r\n this.dropSubscriptions();\r\n this.listenToOptionsFocus();\r\n }\r\n\r\n private dropSubscriptions() {\r\n if (this.optionFocusSubscription) {\r\n this.optionFocusSubscription.unsubscribe();\r\n this.optionFocusSubscription = null;\r\n }\r\n\r\n if (this.optionBlurSubscription) {\r\n this.optionBlurSubscription.unsubscribe();\r\n this.optionBlurSubscription = null;\r\n }\r\n }\r\n\r\n private listenToOptionsFocus(): void {\r\n this.optionFocusSubscription = this.optionFocusChanges\r\n .subscribe((event) => {\r\n const index: number = this.options.toArray().indexOf(event.option);\r\n\r\n if (this.isValidIndex(index)) {\r\n this.keyManager.updateActiveItem(index);\r\n }\r\n });\r\n\r\n this.optionBlurSubscription = this.optionBlurChanges\r\n .subscribe(() => this.blur());\r\n }\r\n\r\n /** Checks whether any of the options is focused. */\r\n private hasFocusedOption() {\r\n return this.options.some((option) => option.hasFocus);\r\n }\r\n\r\n // Returns the option with the specified value.\r\n private getOptionByValue(value: string): McListOption | undefined {\r\n return this.options.find((option) => option.value === value);\r\n }\r\n\r\n // Sets the selected options based on the specified values.\r\n private setOptionsFromValues(values: string[]) {\r\n this.options.forEach((option) => option.setSelected(false));\r\n\r\n values\r\n .map((value) => this.getOptionByValue(value))\r\n .filter(Boolean)\r\n .forEach((option) => option!.setSelected(true));\r\n }\r\n\r\n /**\r\n * Utility to ensure all indexes are valid.\r\n * @param index The index to be checked.\r\n * @returns True if the index is valid for our list of options.\r\n */\r\n private isValidIndex(index: number): boolean {\r\n return index >= 0 && index < this.options.length;\r\n }\r\n\r\n // Returns the index of the specified list option.\r\n private getOptionIndex(option: McListOption): number {\r\n return this.options.toArray().indexOf(option);\r\n }\r\n\r\n // View to model callback that should be called whenever the selected options change.\r\n private onChange: (value: any) => void = (_: any) => {};\r\n\r\n private selectAllOptions() {\r\n const optionsToSelect = this.options\r\n .filter((option) => !option.disabled);\r\n\r\n optionsToSelect\r\n .forEach((option) => option.setSelected(true));\r\n\r\n this.onSelectAll.emit(new McListSelectAllEvent(this, optionsToSelect));\r\n }\r\n\r\n private copyActiveOption() {\r\n if (this.onCopy.observers.length) {\r\n this.onCopy.emit(new McListCopyEvent(this, this.keyManager.activeItem as McListOption));\r\n } else {\r\n this.onCopyDefaultHandler();\r\n }\r\n }\r\n}\r\n","<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","// todo пока не делаем, перенесено из материала, но у нас в доках таких простых списков нет.\r\nimport {\r\n AfterContentInit, ChangeDetectionStrategy, Component, ContentChildren, ElementRef, QueryList,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { McLine, McLineSetter } from '@ptsecurity/mosaic/core';\r\n\r\n\r\n@Component({\r\n selector: 'mc-list',\r\n host: { class: 'mc-list' },\r\n template: '<ng-content></ng-content>',\r\n styleUrls: ['./list.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class McList {}\r\n\r\n\r\n@Component({\r\n selector: 'mc-list-item, a[mc-list-item]',\r\n host: {\r\n class: 'mc-list-item',\r\n '(focus)': 'handleFocus()',\r\n '(blur)': 'handleBlur()'\r\n },\r\n templateUrl: './list-item.html',\r\n encapsulation: ViewEncapsulation.None,\r\n preserveWhitespaces: false,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class McListItem implements AfterContentInit {\r\n @ContentChildren(McLine) lines: QueryList<McLine>;\r\n\r\n constructor(private elementRef: ElementRef) {}\r\n\r\n ngAfterContentInit() {\r\n // tslint:disable-next-line:no-unused-expression\r\n new McLineSetter(this.lines, this.elementRef);\r\n }\r\n\r\n handleFocus() {\r\n this.elementRef.nativeElement.classList.add('mc-focused');\r\n }\r\n\r\n handleBlur() {\r\n this.elementRef.nativeElement.classList.remove('mc-focused');\r\n }\r\n\r\n getHostElement(): HTMLElement {\r\n return this.elementRef.nativeElement;\r\n }\r\n}\r\n","<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","import { A11yModule } from '@angular/cdk/a11y';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { McLineModule, McOptionModule, McPseudoCheckboxModule } from '@ptsecurity/mosaic/core';\r\n\r\nimport { McListSelection, McListOption } from './list-selection.component';\r\nimport { McList, McListItem } from './list.component';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n A11yModule,\r\n McPseudoCheckboxModule,\r\n McLineModule,\r\n McOptionModule\r\n ],\r\n exports: [\r\n McList,\r\n McListSelection,\r\n McListItem,\r\n McListOption,\r\n McOptionModule\r\n ],\r\n declarations: [\r\n McList,\r\n McListSelection,\r\n McListItem,\r\n McListOption\r\n ]\r\n})\r\nexport class McListModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}