@ptsecurity/mosaic 11.5.0 → 12.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (630) hide show
  1. package/_theming.scss +409 -100
  2. package/_visual.scss +66 -23
  3. package/autocomplete/autocomplete-origin.directive.d.ts +3 -0
  4. package/autocomplete/autocomplete-trigger.directive.d.ts +3 -0
  5. package/autocomplete/autocomplete.component.d.ts +3 -0
  6. package/autocomplete/autocomplete.module.d.ts +10 -0
  7. package/autocomplete/package.json +0 -1
  8. package/autocomplete/ptsecurity-mosaic-autocomplete.d.ts +1 -0
  9. package/bundles/ptsecurity-mosaic-autocomplete.umd.js +178 -114
  10. package/bundles/ptsecurity-mosaic-autocomplete.umd.js.map +1 -1
  11. package/bundles/ptsecurity-mosaic-button-toggle.umd.js +107 -71
  12. package/bundles/ptsecurity-mosaic-button-toggle.umd.js.map +1 -1
  13. package/bundles/ptsecurity-mosaic-button.umd.js +106 -77
  14. package/bundles/ptsecurity-mosaic-button.umd.js.map +1 -1
  15. package/bundles/ptsecurity-mosaic-card.umd.js +74 -43
  16. package/bundles/ptsecurity-mosaic-card.umd.js.map +1 -1
  17. package/bundles/ptsecurity-mosaic-checkbox.umd.js +114 -69
  18. package/bundles/ptsecurity-mosaic-checkbox.umd.js.map +1 -1
  19. package/bundles/ptsecurity-mosaic-core.umd.js +804 -256
  20. package/bundles/ptsecurity-mosaic-core.umd.js.map +1 -1
  21. package/bundles/ptsecurity-mosaic-datepicker.umd.js +601 -421
  22. package/bundles/ptsecurity-mosaic-datepicker.umd.js.map +1 -1
  23. package/bundles/ptsecurity-mosaic-design-tokens.umd.js +108 -26
  24. package/bundles/ptsecurity-mosaic-design-tokens.umd.js.map +1 -1
  25. package/bundles/ptsecurity-mosaic-divider.umd.js +55 -28
  26. package/bundles/ptsecurity-mosaic-divider.umd.js.map +1 -1
  27. package/bundles/ptsecurity-mosaic-dropdown.umd.js +263 -187
  28. package/bundles/ptsecurity-mosaic-dropdown.umd.js.map +1 -1
  29. package/bundles/ptsecurity-mosaic-form-field.umd.js +200 -125
  30. package/bundles/ptsecurity-mosaic-form-field.umd.js.map +1 -1
  31. package/bundles/ptsecurity-mosaic-icon.umd.js +79 -41
  32. package/bundles/ptsecurity-mosaic-icon.umd.js.map +1 -1
  33. package/bundles/ptsecurity-mosaic-input.umd.js +222 -124
  34. package/bundles/ptsecurity-mosaic-input.umd.js.map +1 -1
  35. package/bundles/ptsecurity-mosaic-link.umd.js +76 -45
  36. package/bundles/ptsecurity-mosaic-link.umd.js.map +1 -1
  37. package/bundles/ptsecurity-mosaic-list.umd.js +354 -202
  38. package/bundles/ptsecurity-mosaic-list.umd.js.map +1 -1
  39. package/bundles/ptsecurity-mosaic-modal.umd.js +324 -220
  40. package/bundles/ptsecurity-mosaic-modal.umd.js.map +1 -1
  41. package/bundles/ptsecurity-mosaic-navbar.umd.js +289 -208
  42. package/bundles/ptsecurity-mosaic-navbar.umd.js.map +1 -1
  43. package/bundles/ptsecurity-mosaic-popover.umd.js +346 -640
  44. package/bundles/ptsecurity-mosaic-popover.umd.js.map +1 -1
  45. package/bundles/ptsecurity-mosaic-progress-bar.umd.js +69 -40
  46. package/bundles/ptsecurity-mosaic-progress-bar.umd.js.map +1 -1
  47. package/bundles/ptsecurity-mosaic-progress-spinner.umd.js +69 -40
  48. package/bundles/ptsecurity-mosaic-progress-spinner.umd.js.map +1 -1
  49. package/bundles/ptsecurity-mosaic-radio.umd.js +126 -81
  50. package/bundles/ptsecurity-mosaic-radio.umd.js.map +1 -1
  51. package/bundles/ptsecurity-mosaic-select.umd.js +276 -154
  52. package/bundles/ptsecurity-mosaic-select.umd.js.map +1 -1
  53. package/bundles/ptsecurity-mosaic-sidebar.umd.js +105 -68
  54. package/bundles/ptsecurity-mosaic-sidebar.umd.js.map +1 -1
  55. package/bundles/ptsecurity-mosaic-sidepanel.umd.js +236 -158
  56. package/bundles/ptsecurity-mosaic-sidepanel.umd.js.map +1 -1
  57. package/bundles/ptsecurity-mosaic-splitter.umd.js +112 -83
  58. package/bundles/ptsecurity-mosaic-splitter.umd.js.map +1 -1
  59. package/bundles/ptsecurity-mosaic-table.umd.js +77 -44
  60. package/bundles/ptsecurity-mosaic-table.umd.js.map +1 -1
  61. package/bundles/ptsecurity-mosaic-tabs.umd.js +894 -687
  62. package/bundles/ptsecurity-mosaic-tabs.umd.js.map +1 -1
  63. package/bundles/ptsecurity-mosaic-tags.umd.js +313 -209
  64. package/bundles/ptsecurity-mosaic-tags.umd.js.map +1 -1
  65. package/bundles/ptsecurity-mosaic-textarea.umd.js +107 -53
  66. package/bundles/ptsecurity-mosaic-textarea.umd.js.map +1 -1
  67. package/bundles/ptsecurity-mosaic-timepicker.umd.js +117 -72
  68. package/bundles/ptsecurity-mosaic-timepicker.umd.js.map +1 -1
  69. package/bundles/ptsecurity-mosaic-toggle.umd.js +97 -58
  70. package/bundles/ptsecurity-mosaic-toggle.umd.js.map +1 -1
  71. package/bundles/ptsecurity-mosaic-tooltip.umd.js +347 -615
  72. package/bundles/ptsecurity-mosaic-tooltip.umd.js.map +1 -1
  73. package/bundles/ptsecurity-mosaic-tree-select.umd.js +223 -118
  74. package/bundles/ptsecurity-mosaic-tree-select.umd.js.map +1 -1
  75. package/bundles/ptsecurity-mosaic-tree.umd.js +1162 -344
  76. package/bundles/ptsecurity-mosaic-tree.umd.js.map +1 -1
  77. package/bundles/ptsecurity-mosaic.umd.js +2 -2
  78. package/button/button.component.d.ts +7 -0
  79. package/button/button.module.d.ts +8 -0
  80. package/button/package.json +0 -1
  81. package/button/ptsecurity-mosaic-button.d.ts +1 -0
  82. package/button-toggle/button-toggle.component.d.ts +5 -0
  83. package/button-toggle/button-toggle.module.d.ts +7 -0
  84. package/button-toggle/package.json +0 -1
  85. package/button-toggle/ptsecurity-mosaic-button-toggle.d.ts +1 -0
  86. package/card/card.component.d.ts +3 -0
  87. package/card/card.module.d.ts +8 -0
  88. package/card/package.json +0 -1
  89. package/card/ptsecurity-mosaic-card.d.ts +1 -0
  90. package/checkbox/checkbox-module.d.ts +7 -0
  91. package/checkbox/checkbox-required-validator.d.ts +3 -0
  92. package/checkbox/checkbox.d.ts +3 -0
  93. package/checkbox/package.json +0 -1
  94. package/checkbox/ptsecurity-mosaic-checkbox.d.ts +1 -0
  95. package/core/common-behaviors/color.d.ts +3 -3
  96. package/core/common-behaviors/common-module.d.ts +5 -0
  97. package/core/common-behaviors/disabled.d.ts +4 -3
  98. package/core/common-behaviors/tabindex.d.ts +2 -1
  99. package/core/error/error-options.d.ts +5 -0
  100. package/core/formatters/date/formatter.d.ts +3 -0
  101. package/core/formatters/index.d.ts +5 -0
  102. package/core/formatters/number/formatter.d.ts +4 -0
  103. package/core/forms/forms-module.d.ts +5 -0
  104. package/core/forms/forms.directive.d.ts +5 -0
  105. package/core/highlight/highlight.pipe.d.ts +3 -0
  106. package/core/highlight/index.d.ts +6 -0
  107. package/core/line/line.d.ts +6 -0
  108. package/core/option/action.d.ts +42 -0
  109. package/core/option/index.d.ts +1 -0
  110. package/core/option/optgroup.d.ts +3 -0
  111. package/core/option/option-module.d.ts +9 -0
  112. package/core/option/option.d.ts +3 -0
  113. package/core/overlay/overlay-position-map.d.ts +0 -4
  114. package/core/package.json +0 -1
  115. package/core/pop-up/constants.d.ts +29 -0
  116. package/core/pop-up/index.d.ts +3 -0
  117. package/core/pop-up/pop-up-trigger.d.ts +70 -0
  118. package/core/pop-up/pop-up.d.ts +35 -0
  119. package/core/ptsecurity-mosaic-core.d.ts +1 -1
  120. package/core/public-api.d.ts +1 -0
  121. package/core/selection/pseudo-checkbox/pseudo-checkbox.d.ts +3 -0
  122. package/core/selection/pseudo-checkbox/pseudo-checkbox.module.d.ts +6 -0
  123. package/core/services/measure-scrollbar.service.d.ts +3 -0
  124. package/datepicker/calendar-body.component.d.ts +5 -6
  125. package/datepicker/calendar.component.d.ts +5 -0
  126. package/datepicker/datepicker-input.directive.d.ts +6 -2
  127. package/datepicker/datepicker-intl.d.ts +3 -0
  128. package/datepicker/datepicker-module.d.ts +18 -0
  129. package/datepicker/datepicker-toggle.component.d.ts +5 -0
  130. package/datepicker/datepicker.component.d.ts +5 -0
  131. package/datepicker/month-view.component.d.ts +3 -0
  132. package/datepicker/multi-year-view.component.d.ts +3 -0
  133. package/datepicker/package.json +0 -1
  134. package/datepicker/ptsecurity-mosaic-datepicker.d.ts +1 -0
  135. package/datepicker/year-view.component.d.ts +3 -0
  136. package/design-tokens/package.json +0 -1
  137. package/design-tokens/ptsecurity-mosaic-design-tokens.d.ts +1 -0
  138. package/design-tokens/tokens/components/list.json5 +0 -4
  139. package/design-tokens/tokens/components/popover.json5 +32 -4
  140. package/design-tokens/tokens/components/tooltip.json5 +49 -3
  141. package/design-tokens/tokens/components/tree.json5 +3 -3
  142. package/design-tokens/tokens/properties/globals.json5 +1 -1
  143. package/design-tokens/tokens.d.ts +56 -15
  144. package/divider/divider.component.d.ts +3 -0
  145. package/divider/divider.module.d.ts +6 -0
  146. package/divider/package.json +0 -1
  147. package/divider/ptsecurity-mosaic-divider.d.ts +1 -0
  148. package/dropdown/dropdown-content.directive.d.ts +3 -0
  149. package/dropdown/dropdown-item.component.d.ts +3 -0
  150. package/dropdown/dropdown-trigger.directive.d.ts +6 -8
  151. package/dropdown/dropdown.component.d.ts +5 -1
  152. package/dropdown/dropdown.module.d.ts +11 -0
  153. package/dropdown/package.json +0 -1
  154. package/dropdown/ptsecurity-mosaic-dropdown.d.ts +1 -0
  155. package/esm2015/autocomplete/autocomplete-origin.directive.js +11 -11
  156. package/esm2015/autocomplete/autocomplete-trigger.directive.js +53 -38
  157. package/esm2015/autocomplete/autocomplete.component.js +56 -37
  158. package/esm2015/autocomplete/autocomplete.module.js +25 -15
  159. package/esm2015/button/button.component.js +52 -56
  160. package/esm2015/button/button.module.js +35 -20
  161. package/esm2015/button-toggle/button-toggle.component.js +76 -55
  162. package/esm2015/button-toggle/button-toggle.module.js +13 -8
  163. package/esm2015/card/card.component.js +32 -30
  164. package/esm2015/card/card.module.js +23 -12
  165. package/esm2015/checkbox/checkbox-module.js +13 -8
  166. package/esm2015/checkbox/checkbox-required-validator.js +12 -8
  167. package/esm2015/checkbox/checkbox.js +61 -44
  168. package/esm2015/core/common-behaviors/color.js +2 -5
  169. package/esm2015/core/common-behaviors/common-module.js +17 -11
  170. package/esm2015/core/common-behaviors/disabled.js +1 -1
  171. package/esm2015/core/common-behaviors/tabindex.js +4 -13
  172. package/esm2015/core/error/error-options.js +12 -8
  173. package/esm2015/core/formatters/date/formatter.js +13 -10
  174. package/esm2015/core/formatters/index.js +13 -8
  175. package/esm2015/core/formatters/number/formatter.js +16 -10
  176. package/esm2015/core/forms/forms-module.js +20 -13
  177. package/esm2015/core/forms/forms.directive.js +32 -29
  178. package/esm2015/core/highlight/highlight.pipe.js +8 -4
  179. package/esm2015/core/highlight/index.js +13 -8
  180. package/esm2015/core/line/line.js +22 -14
  181. package/esm2015/core/option/action.js +131 -0
  182. package/esm2015/core/option/index.js +2 -1
  183. package/esm2015/core/option/optgroup.js +22 -19
  184. package/esm2015/core/option/option-module.js +14 -8
  185. package/esm2015/core/option/option.js +44 -35
  186. package/esm2015/core/overlay/overlay-position-map.js +16 -18
  187. package/esm2015/core/pop-up/constants.js +34 -0
  188. package/esm2015/core/pop-up/index.js +4 -0
  189. package/esm2015/core/pop-up/pop-up-trigger.js +241 -0
  190. package/esm2015/core/pop-up/pop-up.js +87 -0
  191. package/esm2015/core/ptsecurity-mosaic-core.js +1 -2
  192. package/esm2015/core/public-api.js +2 -1
  193. package/esm2015/core/selection/pseudo-checkbox/pseudo-checkbox.js +25 -21
  194. package/esm2015/core/selection/pseudo-checkbox/pseudo-checkbox.module.js +13 -8
  195. package/esm2015/core/services/measure-scrollbar.service.js +12 -12
  196. package/esm2015/datepicker/calendar-body.component.js +39 -32
  197. package/esm2015/datepicker/calendar.component.js +92 -58
  198. package/esm2015/datepicker/datepicker-input.directive.js +94 -62
  199. package/esm2015/datepicker/datepicker-intl.js +7 -5
  200. package/esm2015/datepicker/datepicker-module.js +89 -48
  201. package/esm2015/datepicker/datepicker-toggle.component.js +44 -32
  202. package/esm2015/datepicker/datepicker.component.js +88 -63
  203. package/esm2015/datepicker/month-view.component.js +48 -29
  204. package/esm2015/datepicker/multi-year-view.component.js +40 -27
  205. package/esm2015/datepicker/year-view.component.js +45 -28
  206. package/esm2015/design-tokens/tokens.js +57 -16
  207. package/esm2015/divider/divider.component.js +24 -20
  208. package/esm2015/divider/divider.module.js +13 -8
  209. package/esm2015/dropdown/dropdown-content.directive.js +13 -15
  210. package/esm2015/dropdown/dropdown-item.component.js +40 -30
  211. package/esm2015/dropdown/dropdown-trigger.directive.js +75 -67
  212. package/esm2015/dropdown/dropdown.component.js +63 -38
  213. package/esm2015/dropdown/dropdown.module.js +40 -23
  214. package/esm2015/form-field/cleaner.js +20 -11
  215. package/esm2015/form-field/form-field.js +77 -53
  216. package/esm2015/form-field/form-field.module.js +41 -24
  217. package/esm2015/form-field/hint.js +16 -13
  218. package/esm2015/form-field/prefix.js +10 -6
  219. package/esm2015/form-field/stepper.js +22 -11
  220. package/esm2015/form-field/suffix.js +10 -6
  221. package/esm2015/icon/icon.component.js +27 -22
  222. package/esm2015/icon/icon.module.js +31 -18
  223. package/esm2015/input/input-number-validators.js +48 -29
  224. package/esm2015/input/input-number.js +42 -28
  225. package/esm2015/input/input.js +94 -52
  226. package/esm2015/input/input.module.js +13 -8
  227. package/esm2015/link/link.component.js +38 -34
  228. package/esm2015/link/link.module.js +20 -11
  229. package/esm2015/list/list-selection.component.js +234 -124
  230. package/esm2015/list/list.component.js +35 -32
  231. package/esm2015/list/list.module.js +47 -25
  232. package/esm2015/modal/css-unit.pipe.js +10 -6
  233. package/esm2015/modal/modal-control.service.js +11 -8
  234. package/esm2015/modal/modal.component.js +107 -61
  235. package/esm2015/modal/modal.directive.js +43 -30
  236. package/esm2015/modal/modal.module.js +59 -31
  237. package/esm2015/modal/modal.service.js +9 -9
  238. package/esm2015/modal/ptsecurity-mosaic-modal.js +1 -3
  239. package/esm2015/navbar/navbar-item.component.js +111 -95
  240. package/esm2015/navbar/navbar.component.js +40 -30
  241. package/esm2015/navbar/navbar.module.js +66 -35
  242. package/esm2015/navbar/ptsecurity-mosaic-navbar.js +1 -2
  243. package/esm2015/navbar/vertical-navbar.component.js +68 -46
  244. package/esm2015/popover/popover-confirm.component.js +115 -0
  245. package/esm2015/popover/popover.component.js +180 -587
  246. package/esm2015/popover/popover.module.js +18 -12
  247. package/esm2015/popover/public-api.js +2 -1
  248. package/esm2015/progress-bar/progress-bar.component.js +26 -24
  249. package/esm2015/progress-bar/progress-bar.module.js +24 -15
  250. package/esm2015/progress-spinner/progress-spinner.component.js +26 -24
  251. package/esm2015/progress-spinner/progress-spinner.module.js +24 -15
  252. package/esm2015/radio/radio.component.js +87 -67
  253. package/esm2015/radio/radio.module.js +13 -8
  254. package/esm2015/select/select.component.js +181 -105
  255. package/esm2015/select/select.module.js +54 -28
  256. package/esm2015/sidebar/ptsecurity-mosaic-sidebar.js +1 -2
  257. package/esm2015/sidebar/sidebar.component.js +61 -50
  258. package/esm2015/sidebar/sidebar.module.js +25 -16
  259. package/esm2015/sidepanel/ptsecurity-mosaic-sidepanel.js +1 -2
  260. package/esm2015/sidepanel/sidepanel-container.component.js +46 -40
  261. package/esm2015/sidepanel/sidepanel-directives.js +87 -57
  262. package/esm2015/sidepanel/sidepanel.module.js +63 -30
  263. package/esm2015/sidepanel/sidepanel.service.js +20 -12
  264. package/esm2015/splitter/splitter.component.js +62 -64
  265. package/esm2015/splitter/splitter.module.js +32 -19
  266. package/esm2015/table/table.component.js +13 -9
  267. package/esm2015/table/table.module.js +23 -12
  268. package/esm2015/tabs/paginated-tab-header.js +20 -18
  269. package/esm2015/tabs/ptsecurity-mosaic-tabs.js +1 -6
  270. package/esm2015/tabs/tab-body.component.js +52 -42
  271. package/esm2015/tabs/tab-content.directive.js +8 -8
  272. package/esm2015/tabs/tab-group.component.js +145 -74
  273. package/esm2015/tabs/tab-header.component.js +50 -36
  274. package/esm2015/tabs/tab-label-wrapper.directive.js +30 -16
  275. package/esm2015/tabs/tab-label.directive.js +11 -7
  276. package/esm2015/tabs/tab-nav-bar/tab-nav-bar.js +46 -46
  277. package/esm2015/tabs/tab.component.js +67 -33
  278. package/esm2015/tabs/tabs.module.js +87 -45
  279. package/esm2015/tags/tag-input.js +48 -34
  280. package/esm2015/tags/tag-list.component.js +93 -56
  281. package/esm2015/tags/tag.component.js +90 -73
  282. package/esm2015/tags/tag.module.js +46 -29
  283. package/esm2015/textarea/textarea.component.js +70 -41
  284. package/esm2015/textarea/textarea.module.js +13 -8
  285. package/esm2015/timepicker/timepicker.directive.js +66 -54
  286. package/esm2015/timepicker/timepicker.module.js +26 -13
  287. package/esm2015/toggle/toggle.component.js +65 -47
  288. package/esm2015/toggle/toggle.module.js +13 -8
  289. package/esm2015/tooltip/tooltip.animations.js +19 -0
  290. package/esm2015/tooltip/tooltip.component.js +239 -555
  291. package/esm2015/tooltip/tooltip.module.js +38 -11
  292. package/esm2015/tree/control/base-tree-control.js +60 -0
  293. package/esm2015/tree/control/flat-tree-control.js +123 -0
  294. package/esm2015/tree/control/nested-tree-control.js +41 -0
  295. package/esm2015/tree/control/tree-control.js +2 -0
  296. package/esm2015/tree/data-source/flat-data-source.js +1 -1
  297. package/esm2015/tree/node.js +31 -0
  298. package/esm2015/tree/outlet.js +15 -0
  299. package/esm2015/tree/padding.directive.js +98 -25
  300. package/esm2015/tree/public-api.js +9 -2
  301. package/esm2015/tree/toggle.js +65 -70
  302. package/esm2015/tree/tree-base.js +243 -0
  303. package/esm2015/tree/tree-errors.js +36 -0
  304. package/esm2015/tree/tree-option.component.js +102 -56
  305. package/esm2015/tree/tree-selection.component.js +180 -115
  306. package/esm2015/tree/tree.js +23 -0
  307. package/esm2015/tree/tree.module.js +38 -12
  308. package/esm2015/tree-select/tree-select.component.js +153 -85
  309. package/esm2015/tree-select/tree-select.module.js +33 -18
  310. package/fesm2015/ptsecurity-mosaic-autocomplete.js +140 -102
  311. package/fesm2015/ptsecurity-mosaic-autocomplete.js.map +1 -1
  312. package/fesm2015/ptsecurity-mosaic-button-toggle.js +87 -63
  313. package/fesm2015/ptsecurity-mosaic-button-toggle.js.map +1 -1
  314. package/fesm2015/ptsecurity-mosaic-button.js +86 -76
  315. package/fesm2015/ptsecurity-mosaic-button.js.map +1 -1
  316. package/fesm2015/ptsecurity-mosaic-card.js +54 -42
  317. package/fesm2015/ptsecurity-mosaic-card.js.map +1 -1
  318. package/fesm2015/ptsecurity-mosaic-checkbox.js +82 -59
  319. package/fesm2015/ptsecurity-mosaic-checkbox.js.map +1 -1
  320. package/fesm2015/ptsecurity-mosaic-core.js +758 -239
  321. package/fesm2015/ptsecurity-mosaic-core.js.map +1 -1
  322. package/fesm2015/ptsecurity-mosaic-datepicker.js +546 -377
  323. package/fesm2015/ptsecurity-mosaic-datepicker.js.map +1 -1
  324. package/fesm2015/ptsecurity-mosaic-design-tokens.js +57 -16
  325. package/fesm2015/ptsecurity-mosaic-design-tokens.js.map +1 -1
  326. package/fesm2015/ptsecurity-mosaic-divider.js +34 -26
  327. package/fesm2015/ptsecurity-mosaic-divider.js.map +1 -1
  328. package/fesm2015/ptsecurity-mosaic-dropdown.js +219 -171
  329. package/fesm2015/ptsecurity-mosaic-dropdown.js.map +1 -1
  330. package/fesm2015/ptsecurity-mosaic-form-field.js +184 -119
  331. package/fesm2015/ptsecurity-mosaic-form-field.js.map +1 -1
  332. package/fesm2015/ptsecurity-mosaic-icon.js +56 -39
  333. package/fesm2015/ptsecurity-mosaic-icon.js.map +1 -1
  334. package/fesm2015/ptsecurity-mosaic-input.js +191 -116
  335. package/fesm2015/ptsecurity-mosaic-input.js.map +1 -1
  336. package/fesm2015/ptsecurity-mosaic-link.js +57 -45
  337. package/fesm2015/ptsecurity-mosaic-link.js.map +1 -1
  338. package/fesm2015/ptsecurity-mosaic-list.js +311 -179
  339. package/fesm2015/ptsecurity-mosaic-list.js.map +1 -1
  340. package/fesm2015/ptsecurity-mosaic-modal.js +243 -159
  341. package/fesm2015/ptsecurity-mosaic-modal.js.map +1 -1
  342. package/fesm2015/ptsecurity-mosaic-navbar.js +280 -205
  343. package/fesm2015/ptsecurity-mosaic-navbar.js.map +1 -1
  344. package/fesm2015/ptsecurity-mosaic-popover.js +297 -597
  345. package/fesm2015/ptsecurity-mosaic-popover.js.map +1 -1
  346. package/fesm2015/ptsecurity-mosaic-progress-bar.js +48 -38
  347. package/fesm2015/ptsecurity-mosaic-progress-bar.js.map +1 -1
  348. package/fesm2015/ptsecurity-mosaic-progress-spinner.js +48 -38
  349. package/fesm2015/ptsecurity-mosaic-progress-spinner.js.map +1 -1
  350. package/fesm2015/ptsecurity-mosaic-radio.js +99 -76
  351. package/fesm2015/ptsecurity-mosaic-radio.js.map +1 -1
  352. package/fesm2015/ptsecurity-mosaic-select.js +236 -136
  353. package/fesm2015/ptsecurity-mosaic-select.js.map +1 -1
  354. package/fesm2015/ptsecurity-mosaic-sidebar.js +85 -66
  355. package/fesm2015/ptsecurity-mosaic-sidebar.js.map +1 -1
  356. package/fesm2015/ptsecurity-mosaic-sidepanel.js +207 -139
  357. package/fesm2015/ptsecurity-mosaic-sidepanel.js.map +1 -1
  358. package/fesm2015/ptsecurity-mosaic-splitter.js +92 -82
  359. package/fesm2015/ptsecurity-mosaic-splitter.js.map +1 -1
  360. package/fesm2015/ptsecurity-mosaic-table.js +33 -19
  361. package/fesm2015/ptsecurity-mosaic-table.js.map +1 -1
  362. package/fesm2015/ptsecurity-mosaic-tabs.js +557 -387
  363. package/fesm2015/ptsecurity-mosaic-tabs.js.map +1 -1
  364. package/fesm2015/ptsecurity-mosaic-tags.js +273 -192
  365. package/fesm2015/ptsecurity-mosaic-tags.js.map +1 -1
  366. package/fesm2015/ptsecurity-mosaic-textarea.js +83 -50
  367. package/fesm2015/ptsecurity-mosaic-textarea.js.map +1 -1
  368. package/fesm2015/ptsecurity-mosaic-timepicker.js +89 -66
  369. package/fesm2015/ptsecurity-mosaic-timepicker.js.map +1 -1
  370. package/fesm2015/ptsecurity-mosaic-toggle.js +77 -55
  371. package/fesm2015/ptsecurity-mosaic-toggle.js.map +1 -1
  372. package/fesm2015/ptsecurity-mosaic-tooltip.js +293 -566
  373. package/fesm2015/ptsecurity-mosaic-tooltip.js.map +1 -1
  374. package/fesm2015/ptsecurity-mosaic-tree-select.js +188 -106
  375. package/fesm2015/ptsecurity-mosaic-tree-select.js.map +1 -1
  376. package/fesm2015/ptsecurity-mosaic-tree.js +1001 -279
  377. package/fesm2015/ptsecurity-mosaic-tree.js.map +1 -1
  378. package/form-field/cleaner.d.ts +5 -0
  379. package/form-field/form-field.d.ts +5 -0
  380. package/form-field/form-field.module.d.ts +12 -0
  381. package/form-field/hint.d.ts +3 -0
  382. package/form-field/package.json +0 -1
  383. package/form-field/prefix.d.ts +3 -0
  384. package/form-field/ptsecurity-mosaic-form-field.d.ts +1 -0
  385. package/form-field/stepper.d.ts +3 -0
  386. package/form-field/suffix.d.ts +3 -0
  387. package/icon/icon.component.d.ts +5 -0
  388. package/icon/icon.module.d.ts +8 -0
  389. package/icon/package.json +0 -1
  390. package/icon/ptsecurity-mosaic-icon.d.ts +1 -0
  391. package/input/input-number-validators.d.ts +7 -2
  392. package/input/input-number.d.ts +3 -0
  393. package/input/input.d.ts +5 -0
  394. package/input/input.module.d.ts +11 -0
  395. package/input/package.json +0 -1
  396. package/input/ptsecurity-mosaic-input.d.ts +1 -0
  397. package/link/link.component.d.ts +3 -0
  398. package/link/link.module.d.ts +7 -0
  399. package/link/package.json +0 -1
  400. package/link/ptsecurity-mosaic-link.d.ts +1 -0
  401. package/list/list-selection.component.d.ts +30 -3
  402. package/list/list.component.d.ts +5 -0
  403. package/list/list.module.d.ts +9 -0
  404. package/list/package.json +0 -1
  405. package/list/ptsecurity-mosaic-list.d.ts +1 -0
  406. package/modal/css-unit.pipe.d.ts +3 -0
  407. package/modal/modal-control.service.d.ts +3 -0
  408. package/modal/modal.component.d.ts +5 -0
  409. package/modal/modal.directive.d.ts +9 -0
  410. package/modal/modal.module.d.ts +12 -0
  411. package/modal/modal.service.d.ts +3 -0
  412. package/modal/package.json +0 -1
  413. package/modal/ptsecurity-mosaic-modal.d.ts +1 -2
  414. package/navbar/navbar-item.component.d.ts +13 -0
  415. package/navbar/navbar.component.d.ts +5 -0
  416. package/navbar/navbar.module.d.ts +11 -0
  417. package/navbar/package.json +0 -1
  418. package/navbar/ptsecurity-mosaic-navbar.d.ts +1 -1
  419. package/navbar/vertical-navbar.component.d.ts +5 -0
  420. package/package.json +8 -9
  421. package/popover/package.json +0 -1
  422. package/popover/popover-confirm.component.d.ts +33 -0
  423. package/popover/popover.component.d.ts +50 -136
  424. package/popover/popover.module.d.ts +9 -0
  425. package/popover/ptsecurity-mosaic-popover.d.ts +1 -0
  426. package/popover/public-api.d.ts +1 -0
  427. package/prebuilt-themes/dark-theme.css +1 -1
  428. package/prebuilt-themes/default-theme.css +1 -1
  429. package/prebuilt-visual/default-visual.css +1 -1
  430. package/progress-bar/package.json +0 -1
  431. package/progress-bar/progress-bar.component.d.ts +3 -0
  432. package/progress-bar/progress-bar.module.d.ts +7 -0
  433. package/progress-bar/ptsecurity-mosaic-progress-bar.d.ts +1 -0
  434. package/progress-spinner/package.json +0 -1
  435. package/progress-spinner/progress-spinner.component.d.ts +3 -0
  436. package/progress-spinner/progress-spinner.module.d.ts +7 -0
  437. package/progress-spinner/ptsecurity-mosaic-progress-spinner.d.ts +1 -0
  438. package/ptsecurity-mosaic.d.ts +1 -0
  439. package/radio/package.json +0 -1
  440. package/radio/ptsecurity-mosaic-radio.d.ts +1 -0
  441. package/radio/radio.component.d.ts +5 -0
  442. package/radio/radio.module.d.ts +8 -0
  443. package/schematics/ng-update/update-9.0.0/secondary-entry-points-migration.js +6 -3
  444. package/schematics/ng-update/update-9.0.0/secondary-entry-points-migration.js.map +1 -1
  445. package/select/package.json +0 -1
  446. package/select/ptsecurity-mosaic-select.d.ts +1 -0
  447. package/select/select.component.d.ts +11 -7
  448. package/select/select.module.d.ts +11 -0
  449. package/sidebar/package.json +0 -1
  450. package/sidebar/ptsecurity-mosaic-sidebar.d.ts +1 -1
  451. package/sidebar/sidebar.component.d.ts +7 -0
  452. package/sidebar/sidebar.module.d.ts +6 -0
  453. package/sidepanel/package.json +0 -1
  454. package/sidepanel/ptsecurity-mosaic-sidepanel.d.ts +1 -1
  455. package/sidepanel/sidepanel-container.component.d.ts +3 -0
  456. package/sidepanel/sidepanel-directives.d.ts +13 -0
  457. package/sidepanel/sidepanel.module.d.ts +13 -0
  458. package/sidepanel/sidepanel.service.d.ts +3 -0
  459. package/splitter/package.json +0 -1
  460. package/splitter/ptsecurity-mosaic-splitter.d.ts +1 -0
  461. package/splitter/splitter.component.d.ts +7 -0
  462. package/splitter/splitter.module.d.ts +7 -0
  463. package/table/package.json +0 -1
  464. package/table/ptsecurity-mosaic-table.d.ts +1 -0
  465. package/table/table.component.d.ts +3 -0
  466. package/table/table.module.d.ts +8 -0
  467. package/tabs/package.json +0 -1
  468. package/tabs/paginated-tab-header.d.ts +3 -0
  469. package/tabs/ptsecurity-mosaic-tabs.d.ts +1 -5
  470. package/tabs/tab-body.component.d.ts +5 -0
  471. package/tabs/tab-content.directive.d.ts +3 -0
  472. package/tabs/tab-group.component.d.ts +24 -4
  473. package/tabs/tab-header.component.d.ts +3 -0
  474. package/tabs/tab-label-wrapper.directive.d.ts +9 -0
  475. package/tabs/tab-label.directive.d.ts +3 -0
  476. package/tabs/tab-nav-bar/tab-nav-bar.d.ts +5 -0
  477. package/tabs/tab.component.d.ts +12 -3
  478. package/tabs/tabs.module.d.ts +18 -0
  479. package/tags/package.json +0 -1
  480. package/tags/ptsecurity-mosaic-tags.d.ts +1 -0
  481. package/tags/tag-input.d.ts +3 -0
  482. package/tags/tag-list.component.d.ts +3 -0
  483. package/tags/tag.component.d.ts +9 -0
  484. package/tags/tag.module.d.ts +9 -0
  485. package/textarea/package.json +0 -1
  486. package/textarea/ptsecurity-mosaic-textarea.d.ts +1 -0
  487. package/textarea/textarea.component.d.ts +3 -0
  488. package/textarea/textarea.module.d.ts +9 -0
  489. package/timepicker/package.json +0 -1
  490. package/timepicker/ptsecurity-mosaic-timepicker.d.ts +1 -0
  491. package/timepicker/timepicker.directive.d.ts +5 -2
  492. package/timepicker/timepicker.module.d.ts +9 -0
  493. package/toggle/package.json +0 -1
  494. package/toggle/ptsecurity-mosaic-toggle.d.ts +1 -0
  495. package/toggle/toggle.component.d.ts +3 -0
  496. package/toggle/toggle.module.d.ts +8 -0
  497. package/tooltip/package.json +0 -1
  498. package/tooltip/ptsecurity-mosaic-tooltip.d.ts +1 -0
  499. package/tooltip/tooltip.animations.d.ts +8 -0
  500. package/tooltip/tooltip.component.d.ts +74 -134
  501. package/tooltip/tooltip.module.d.ts +7 -0
  502. package/tree/control/base-tree-control.d.ts +40 -0
  503. package/tree/control/flat-tree-control.d.ts +48 -0
  504. package/tree/control/nested-tree-control.d.ts +19 -0
  505. package/tree/control/tree-control.d.ts +44 -0
  506. package/tree/data-source/flat-data-source.d.ts +2 -1
  507. package/tree/node.d.ts +34 -0
  508. package/tree/outlet.d.ts +9 -0
  509. package/tree/package.json +0 -1
  510. package/tree/padding.directive.d.ts +36 -5
  511. package/tree/ptsecurity-mosaic-tree.d.ts +1 -0
  512. package/tree/public-api.d.ts +8 -1
  513. package/tree/toggle.d.ts +20 -15
  514. package/tree/tree-base.d.ts +97 -0
  515. package/tree/tree-errors.d.ts +25 -0
  516. package/tree/tree-option.component.d.ts +15 -4
  517. package/tree/tree-selection.component.d.ts +46 -24
  518. package/tree/tree.d.ts +6 -0
  519. package/tree/tree.module.d.ts +14 -0
  520. package/tree-select/package.json +0 -1
  521. package/tree-select/ptsecurity-mosaic-tree-select.d.ts +1 -0
  522. package/tree-select/tree-select.component.d.ts +8 -8
  523. package/tree-select/tree-select.module.d.ts +11 -0
  524. package/autocomplete/ptsecurity-mosaic-autocomplete.metadata.json +0 -1
  525. package/bundles/ptsecurity-mosaic-autocomplete.umd.min.js +0 -2
  526. package/bundles/ptsecurity-mosaic-autocomplete.umd.min.js.map +0 -1
  527. package/bundles/ptsecurity-mosaic-button-toggle.umd.min.js +0 -16
  528. package/bundles/ptsecurity-mosaic-button-toggle.umd.min.js.map +0 -1
  529. package/bundles/ptsecurity-mosaic-button.umd.min.js +0 -16
  530. package/bundles/ptsecurity-mosaic-button.umd.min.js.map +0 -1
  531. package/bundles/ptsecurity-mosaic-card.umd.min.js +0 -16
  532. package/bundles/ptsecurity-mosaic-card.umd.min.js.map +0 -1
  533. package/bundles/ptsecurity-mosaic-checkbox.umd.min.js +0 -16
  534. package/bundles/ptsecurity-mosaic-checkbox.umd.min.js.map +0 -1
  535. package/bundles/ptsecurity-mosaic-core.umd.min.js +0 -17
  536. package/bundles/ptsecurity-mosaic-core.umd.min.js.map +0 -1
  537. package/bundles/ptsecurity-mosaic-datepicker.umd.min.js +0 -2
  538. package/bundles/ptsecurity-mosaic-datepicker.umd.min.js.map +0 -1
  539. package/bundles/ptsecurity-mosaic-design-tokens.umd.min.js +0 -2
  540. package/bundles/ptsecurity-mosaic-design-tokens.umd.min.js.map +0 -1
  541. package/bundles/ptsecurity-mosaic-divider.umd.min.js +0 -2
  542. package/bundles/ptsecurity-mosaic-divider.umd.min.js.map +0 -1
  543. package/bundles/ptsecurity-mosaic-dropdown.umd.min.js +0 -17
  544. package/bundles/ptsecurity-mosaic-dropdown.umd.min.js.map +0 -1
  545. package/bundles/ptsecurity-mosaic-form-field.umd.min.js +0 -17
  546. package/bundles/ptsecurity-mosaic-form-field.umd.min.js.map +0 -1
  547. package/bundles/ptsecurity-mosaic-icon.umd.min.js +0 -16
  548. package/bundles/ptsecurity-mosaic-icon.umd.min.js.map +0 -1
  549. package/bundles/ptsecurity-mosaic-input.umd.min.js +0 -16
  550. package/bundles/ptsecurity-mosaic-input.umd.min.js.map +0 -1
  551. package/bundles/ptsecurity-mosaic-link.umd.min.js +0 -16
  552. package/bundles/ptsecurity-mosaic-link.umd.min.js.map +0 -1
  553. package/bundles/ptsecurity-mosaic-list.umd.min.js +0 -16
  554. package/bundles/ptsecurity-mosaic-list.umd.min.js.map +0 -1
  555. package/bundles/ptsecurity-mosaic-modal.umd.min.js +0 -16
  556. package/bundles/ptsecurity-mosaic-modal.umd.min.js.map +0 -1
  557. package/bundles/ptsecurity-mosaic-navbar.umd.min.js +0 -16
  558. package/bundles/ptsecurity-mosaic-navbar.umd.min.js.map +0 -1
  559. package/bundles/ptsecurity-mosaic-popover.umd.min.js +0 -16
  560. package/bundles/ptsecurity-mosaic-popover.umd.min.js.map +0 -1
  561. package/bundles/ptsecurity-mosaic-progress-bar.umd.min.js +0 -16
  562. package/bundles/ptsecurity-mosaic-progress-bar.umd.min.js.map +0 -1
  563. package/bundles/ptsecurity-mosaic-progress-spinner.umd.min.js +0 -16
  564. package/bundles/ptsecurity-mosaic-progress-spinner.umd.min.js.map +0 -1
  565. package/bundles/ptsecurity-mosaic-radio.umd.min.js +0 -16
  566. package/bundles/ptsecurity-mosaic-radio.umd.min.js.map +0 -1
  567. package/bundles/ptsecurity-mosaic-select.umd.min.js +0 -16
  568. package/bundles/ptsecurity-mosaic-select.umd.min.js.map +0 -1
  569. package/bundles/ptsecurity-mosaic-sidebar.umd.min.js +0 -2
  570. package/bundles/ptsecurity-mosaic-sidebar.umd.min.js.map +0 -1
  571. package/bundles/ptsecurity-mosaic-sidepanel.umd.min.js +0 -2
  572. package/bundles/ptsecurity-mosaic-sidepanel.umd.min.js.map +0 -1
  573. package/bundles/ptsecurity-mosaic-splitter.umd.min.js +0 -2
  574. package/bundles/ptsecurity-mosaic-splitter.umd.min.js.map +0 -1
  575. package/bundles/ptsecurity-mosaic-table.umd.min.js +0 -2
  576. package/bundles/ptsecurity-mosaic-table.umd.min.js.map +0 -1
  577. package/bundles/ptsecurity-mosaic-tabs.umd.min.js +0 -16
  578. package/bundles/ptsecurity-mosaic-tabs.umd.min.js.map +0 -1
  579. package/bundles/ptsecurity-mosaic-tags.umd.min.js +0 -16
  580. package/bundles/ptsecurity-mosaic-tags.umd.min.js.map +0 -1
  581. package/bundles/ptsecurity-mosaic-textarea.umd.min.js +0 -16
  582. package/bundles/ptsecurity-mosaic-textarea.umd.min.js.map +0 -1
  583. package/bundles/ptsecurity-mosaic-timepicker.umd.min.js +0 -2
  584. package/bundles/ptsecurity-mosaic-timepicker.umd.min.js.map +0 -1
  585. package/bundles/ptsecurity-mosaic-toggle.umd.min.js +0 -16
  586. package/bundles/ptsecurity-mosaic-toggle.umd.min.js.map +0 -1
  587. package/bundles/ptsecurity-mosaic-tooltip.umd.min.js +0 -16
  588. package/bundles/ptsecurity-mosaic-tooltip.umd.min.js.map +0 -1
  589. package/bundles/ptsecurity-mosaic-tree-select.umd.min.js +0 -16
  590. package/bundles/ptsecurity-mosaic-tree-select.umd.min.js.map +0 -1
  591. package/bundles/ptsecurity-mosaic-tree.umd.min.js +0 -16
  592. package/bundles/ptsecurity-mosaic-tree.umd.min.js.map +0 -1
  593. package/bundles/ptsecurity-mosaic.umd.min.js +0 -2
  594. package/bundles/ptsecurity-mosaic.umd.min.js.map +0 -1
  595. package/button/ptsecurity-mosaic-button.metadata.json +0 -1
  596. package/button-toggle/ptsecurity-mosaic-button-toggle.metadata.json +0 -1
  597. package/card/ptsecurity-mosaic-card.metadata.json +0 -1
  598. package/checkbox/ptsecurity-mosaic-checkbox.metadata.json +0 -1
  599. package/core/ptsecurity-mosaic-core.metadata.json +0 -1
  600. package/datepicker/ptsecurity-mosaic-datepicker.metadata.json +0 -1
  601. package/design-tokens/ptsecurity-mosaic-design-tokens.metadata.json +0 -1
  602. package/divider/ptsecurity-mosaic-divider.metadata.json +0 -1
  603. package/dropdown/ptsecurity-mosaic-dropdown.metadata.json +0 -1
  604. package/esm2015/tree/node.directive.js +0 -15
  605. package/form-field/ptsecurity-mosaic-form-field.metadata.json +0 -1
  606. package/icon/ptsecurity-mosaic-icon.metadata.json +0 -1
  607. package/input/ptsecurity-mosaic-input.metadata.json +0 -1
  608. package/link/ptsecurity-mosaic-link.metadata.json +0 -1
  609. package/list/ptsecurity-mosaic-list.metadata.json +0 -1
  610. package/modal/ptsecurity-mosaic-modal.metadata.json +0 -1
  611. package/navbar/ptsecurity-mosaic-navbar.metadata.json +0 -1
  612. package/popover/ptsecurity-mosaic-popover.metadata.json +0 -1
  613. package/progress-bar/ptsecurity-mosaic-progress-bar.metadata.json +0 -1
  614. package/progress-spinner/ptsecurity-mosaic-progress-spinner.metadata.json +0 -1
  615. package/ptsecurity-mosaic.metadata.json +0 -1
  616. package/radio/ptsecurity-mosaic-radio.metadata.json +0 -1
  617. package/select/ptsecurity-mosaic-select.metadata.json +0 -1
  618. package/sidebar/ptsecurity-mosaic-sidebar.metadata.json +0 -1
  619. package/sidepanel/ptsecurity-mosaic-sidepanel.metadata.json +0 -1
  620. package/splitter/ptsecurity-mosaic-splitter.metadata.json +0 -1
  621. package/table/ptsecurity-mosaic-table.metadata.json +0 -1
  622. package/tabs/ptsecurity-mosaic-tabs.metadata.json +0 -1
  623. package/tags/ptsecurity-mosaic-tags.metadata.json +0 -1
  624. package/textarea/ptsecurity-mosaic-textarea.metadata.json +0 -1
  625. package/timepicker/ptsecurity-mosaic-timepicker.metadata.json +0 -1
  626. package/toggle/ptsecurity-mosaic-toggle.metadata.json +0 -1
  627. package/tooltip/ptsecurity-mosaic-tooltip.metadata.json +0 -1
  628. package/tree/node.directive.d.ts +0 -4
  629. package/tree/ptsecurity-mosaic-tree.metadata.json +0 -1
  630. package/tree-select/ptsecurity-mosaic-tree-select.metadata.json +0 -1
@@ -1,16 +0,0 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/cdk/overlay"),require("@angular/common"),require("@angular/core"),require("@ptsecurity/cdk/tree"),require("@ptsecurity/mosaic/core"),require("@ptsecurity/mosaic/icon"),require("@ptsecurity/mosaic/tags"),require("@ptsecurity/mosaic/tree"),require("@angular/cdk/bidi"),require("@angular/cdk/coercion"),require("@angular/cdk/collections"),require("@angular/forms"),require("@ptsecurity/cdk/keycodes"),require("@ptsecurity/mosaic/form-field"),require("rxjs"),require("rxjs/operators")):"function"==typeof define&&define.amd?define("@ptsecurity/mosaic/tree-select",["exports","@angular/cdk/overlay","@angular/common","@angular/core","@ptsecurity/cdk/tree","@ptsecurity/mosaic/core","@ptsecurity/mosaic/icon","@ptsecurity/mosaic/tags","@ptsecurity/mosaic/tree","@angular/cdk/bidi","@angular/cdk/coercion","@angular/cdk/collections","@angular/forms","@ptsecurity/cdk/keycodes","@ptsecurity/mosaic/form-field","rxjs","rxjs/operators"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).ptsecurity=e.ptsecurity||{},e.ptsecurity.mosaic=e.ptsecurity.mosaic||{},e.ptsecurity.mosaic["tree-select"]={}),e.ng.cdk.overlay,e.ng.common,e.ng.core,e.mc.cdk.tree,e.ptsecurity.mosaic.core,e.ptsecurity.mosaic.icon,e.ptsecurity.mosaic.tags,e.ptsecurity.mosaic.tree,e.ng.cdk.bidi,e.ng.cdk.coercion,e.ng.cdk.collections,e.ng.forms,e.mc.cdk.keycodes,e.ptsecurity.mosaic["form-field"],e.rxjs,e.rxjs.operators)}(this,(function(e,t,r,i,n,o,s,a,c,l,p,d,u,h,g,m,f){"use strict";
2
- /*! *****************************************************************************
3
- Copyright (c) Microsoft Corporation.
4
-
5
- Permission to use, copy, modify, and/or distribute this software for any
6
- purpose with or without fee is hereby granted.
7
-
8
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
9
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
10
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
11
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
12
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
13
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
14
- PERFORMANCE OF THIS SOFTWARE.
15
- ***************************************************************************** */var y=function(e,t){return(y=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)};Object.create;function v(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var i,n,o=r.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(i=o.next()).done;)s.push(i.value)}catch(e){n={error:e}}finally{try{i&&!i.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}return s}Object.create;var b=0,_=function(e,t,r){void 0===r&&(r=!1),this.source=e,this.value=t,this.isUserInput=r},C=function(){};C.decorators=[{type:i.Directive,args:[{selector:"mc-tree-select-trigger"}]}];var O=function(e,t,r,i,n){this.elementRef=e,this.defaultErrorStateMatcher=t,this.parentForm=r,this.parentFormGroup=i,this.ngControl=n},k=function(e){function t(t,r,n,o,s,a,c,l,p,d,u,h,g,y,_,C){var O=e.call(this,t,a,u,h,y)||this;return O.changeDetectorRef=r,O.viewportRuler=n,O.ngZone=o,O.renderer=s,O.scrollStrategyFactory=c,O.rawValidators=l,O.mcValidation=p,O.dir=d,O.parentFormField=g,O.ngModel=_,O.formControlName=C,O.controlType="select",O.hiddenItems=0,O.triggerFontSize=0,O.transformOrigin="top",O.panelDoneAnimatingStream=new m.Subject,O.scrollStrategy=O.scrollStrategyFactory(),O.offsetY=0,O.positions=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"}],O.hiddenItemsText="...ещё",O.openedChange=new i.EventEmitter,O.openedStream=O.openedChange.pipe(f.filter((function(e){return e})),f.map((function(){}))),O.closedStream=O.openedChange.pipe(f.filter((function(e){return!e})),f.map((function(){}))),O.selectionChange=new i.EventEmitter,O.valueChange=new i.EventEmitter,O.backdropClass="cdk-overlay-transparent-backdrop",O.optionSelectionChanges=m.defer((function(){return O.options?O.options.changes.pipe(f.startWith(O.options),f.switchMap((function(){return m.merge.apply(void 0,function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(v(arguments[t]));return e}(O.options.map((function(e){return e.onSelectionChange}))))}))):O.ngZone.onStable.asObservable().pipe(f.take(1),f.switchMap((function(){return O.optionSelectionChanges})))})),O._required=!1,O._multiple=!1,O._autoSelect=!0,O._value=null,O._hasBackdrop=!1,O._focused=!1,O.closeSubscription=m.Subscription.EMPTY,O._panelOpen=!1,O.scrollTop=0,O.uid="mc-select-"+b++,O.destroy=new m.Subject,O.onChange=function(){},O.onTouched=function(){},O._compareWith=function(e,t){return e===t},O.ngControl&&(O.ngControl.valueAccessor=O),O.id=O.id,O}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}y(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}(t,e),Object.defineProperty(t.prototype,"placeholder",{get:function(){return this._placeholder},set:function(e){this._placeholder=e,this.stateChanges.next()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"required",{get:function(){return this._required},set:function(e){this._required=p.coerceBooleanProperty(e),this.stateChanges.next()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"multiple",{get:function(){return this._multiple},set:function(e){if(this.selectionModel)throw o.getMcSelectDynamicMultipleError();this._multiple=p.coerceBooleanProperty(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"autoSelect",{get:function(){return!this.multiple&&this._autoSelect},set:function(e){this._autoSelect=p.coerceBooleanProperty(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"compareWith",{get:function(){return this._compareWith},set:function(e){if("function"!=typeof e)throw o.getMcSelectNonFunctionValueError();this._compareWith=e,this.selectionModel&&this.initializeSelection()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"value",{get:function(){return this.multiple?this.tree.getSelectedValues():this.tree.getSelectedValues()[0]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"id",{get:function(){return this._id},set:function(e){this._id=e||this.uid,this.stateChanges.next()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"hasBackdrop",{get:function(){return this._hasBackdrop},set:function(e){this._hasBackdrop=p.coerceBooleanProperty(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"focused",{get:function(){return this._focused||this._panelOpen},set:function(e){this._focused=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"panelOpen",{get:function(){return this._panelOpen},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"canShowCleaner",{get:function(){return this.cleaner&&this.selectionModel.hasValue()},enumerable:!1,configurable:!0}),t.prototype.ngOnInit=function(){var e=this;this.stateChanges.next(),this.panelDoneAnimatingStream.pipe(f.distinctUntilChanged(),f.takeUntil(this.destroy)).subscribe((function(){e.panelOpen?(e.scrollTop=0,e.openedChange.emit(!0)):(e.openedChange.emit(!1),e.overlayDir.offsetX=0,e.changeDetectorRef.markForCheck())}))},t.prototype.ngAfterContentInit=function(){var e=this;this.tree&&(this.mcValidation.useValidation&&o.setMosaicValidation(this),this.tree.resetFocusedItemOnBlur=!1,this.selectionModel=this.tree.selectionModel=new d.SelectionModel(this.multiple),this.tree.ngAfterContentInit(),this.initKeyManager(),this.options=this.tree.renderedOptions,this.tree.autoSelect=this.autoSelect,null===this.tree.multipleMode&&(this.tree.multipleMode=this.multiple?o.MultipleMode.CHECKBOX:null),this.multiple&&(this.tree.noUnselectLast=!1),this.tempValues&&(this.setSelectionByValue(this.tempValues),this.tempValues=null),this.optionSelectionChanges.pipe(f.takeUntil(this.destroy)).subscribe((function(t){!e.multiple&&e.panelOpen&&t.isUserInput&&e.close()})),this.tree.selectionChange.pipe(f.takeUntil(this.destroy)).subscribe((function(t){e.onChange(e.selectedValues),e.selectionChange.emit(new _(e,t.option))})),this.selectionModel.changed.pipe(f.takeUntil(this.destroy)).subscribe((function(t){t.added.length&&(e.tree.keyManager.setFocusOrigin("program"),e.tree.keyManager.setActiveItem(e.options.find((function(e){return e.data===t.added[0]}))))})))},t.prototype.ngAfterViewInit=function(){var e=this;this.tree&&(this.tags.changes.subscribe((function(){setTimeout((function(){return e.calculateHiddenItems()}),0)})),setTimeout((function(){return e.calculateHiddenItems()}),0))},t.prototype.ngDoCheck=function(){this.ngControl&&this.updateErrorState()},t.prototype.ngOnChanges=function(e){e.disabled&&this.stateChanges.next()},t.prototype.ngOnDestroy=function(){this.destroy.next(),this.destroy.complete(),this.stateChanges.complete(),this.closeSubscription.unsubscribe()},t.prototype.hiddenItemsTextFormatter=function(e,t){return e+" "+t},t.prototype.clearValue=function(e){e.stopPropagation(),this.selectionModel.clear(),this.tree.keyManager.setActiveItem(-1),this.setSelectionByValue([]),this.onChange(this.selectedValues)},t.prototype.toggle=function(){this.panelOpen?this.close():this.open()},t.prototype.open=function(){var e=this;!this.disabled&&this.options&&this.options.length&&!this._panelOpen&&(this.triggerRect=this.trigger.nativeElement.getBoundingClientRect(),this.triggerFontSize=parseInt(getComputedStyle(this.trigger.nativeElement)["font-size"]),this._panelOpen=!0,setTimeout((function(){return e.highlightCorrectOption()})),this.changeDetectorRef.markForCheck(),this.ngZone.onStable.asObservable().pipe(f.take(1)).subscribe((function(){e.triggerFontSize&&e.overlayDir.overlayRef&&e.overlayDir.overlayRef.overlayElement&&(e.overlayDir.overlayRef.overlayElement.style.fontSize=e.triggerFontSize+"px")})))},t.prototype.close=function(){var e=this;this._panelOpen&&(this._panelOpen=!1,this.changeDetectorRef.markForCheck(),this.onTouched(),setTimeout((function(){return e.focus()}),0))},t.prototype.writeValue=function(e){this.tree?this.setSelectionByValue(e):this.tempValues=e},t.prototype.registerOnChange=function(e){this.onChange=e},t.prototype.registerOnTouched=function(e){this.onTouched=e},t.prototype.setDisabledState=function(e){this.disabled=e,this.changeDetectorRef.markForCheck(),this.stateChanges.next()},Object.defineProperty(t.prototype,"selected",{get:function(){return this.multiple?this.selectionModel.selected:this.selectionModel.selected[0]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"selectedValues",{get:function(){var e=this,t=this.selectionModel.selected.map((function(t){return e.tree.treeControl.getValue(t)}));return this.multiple?t:t[0]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"triggerValue",{get:function(){return this.empty?"":this.tree.treeControl.getViewValue(this.selected)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"triggerValues",{get:function(){var e=this;return this.empty?[]:this.selectedValues.map((function(t){return e.tree.renderedOptions.find((function(e){return e.value===t}))})).filter((function(e){return e}))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"empty",{get:function(){return!this.selectionModel||this.selectionModel.isEmpty()},enumerable:!1,configurable:!0}),t.prototype.isRtl=function(){return!!this.dir&&"rtl"===this.dir.value},t.prototype.handleKeydown=function(e){this.disabled||(this.panelOpen?this.handleOpenKeydown(e):this.handleClosedKeydown(e))},t.prototype.onFocus=function(){this.disabled||(this._focused=!0,this.stateChanges.next())},t.prototype.onBlur=function(){this._focused=!1,this.disabled||this.panelOpen||(this.onTouched(),this.changeDetectorRef.markForCheck(),this.stateChanges.next())},t.prototype.onAttached=function(){var e=this;this.overlayDir.positionChange.pipe(f.take(1)).subscribe((function(){e.changeDetectorRef.detectChanges(),e.calculateOverlayOffsetX(),e.panel.nativeElement.scrollTop=e.scrollTop,e.tree.updateScrollSize()})),this.closeSubscription=this.closingActions().subscribe((function(){return e.close()}))},t.prototype.getPanelTheme=function(){return this.parentFormField?"mc-"+this.parentFormField.color:""},t.prototype.focus=function(){this.elementRef.nativeElement.focus()},t.prototype.onContainerClick=function(){this.focus()},t.prototype.onRemoveSelectedOption=function(e,t){var r=this;t.stopPropagation(),this.selectionModel.deselect(this.selected.find((function(t){return r.tree.treeControl.getValue(t)===e.value}))),this.onChange(this.selectedValues)},t.prototype.calculateHiddenItems=function(){var e=this;if(!this.customTrigger&&!this.empty&&this.multiple){var t=0,r=this.getTotalItemsWidthInMatcher(),i=0;if(this.tags.forEach((function(r){r.nativeElement.offsetTop<r.nativeElement.offsetHeight&&(i+=e.getItemWidth(r.nativeElement),t++)})),this.hiddenItems=this.selectionModel.selected.length-t,this.hiddenItems){var n=this.trigger.nativeElement.querySelector(".mc-tree-select__match-hidden-text"),o=this.trigger.nativeElement.querySelector(".mc-tree-select__match-list"),s=n.offsetTop<n.offsetHeight,a=o.getBoundingClientRect().width,c=a+86;if(s&&r<c&&(this.hiddenItems=0),i===a||i+86<a)return void this.changeDetectorRef.markForCheck();!s&&r+86>c&&this.hiddenItems++}this.changeDetectorRef.markForCheck()}},t.prototype.closingActions=function(){var e=this.overlayDir.overlayRef.backdropClick(),t=this.overlayDir.overlayRef.outsidePointerEvents(),r=this.overlayDir.overlayRef.detachments();return m.merge(e,t,r)},t.prototype.getTotalItemsWidthInMatcher=function(){var e=this,t=this.trigger.nativeElement.cloneNode(!0);t.querySelector(".mc-tree-select__match-hidden-text").remove(),this.renderer.setStyle(t,"position","absolute"),this.renderer.setStyle(t,"visibility","hidden"),this.renderer.setStyle(t,"top","-100%"),this.renderer.setStyle(t,"left","0"),this.renderer.appendChild(this.trigger.nativeElement,t);var r=0;return t.querySelectorAll("mc-tag").forEach((function(t){r+=e.getItemWidth(t)})),t.remove(),r},t.prototype.getItemWidth=function(e){var t=window.getComputedStyle(e);return parseInt(t.width)+parseInt(t.marginLeft)+parseInt(t.marginRight)},t.prototype.handleClosedKeydown=function(e){var t=e.keyCode,r=t===h.DOWN_ARROW||t===h.UP_ARROW||t===h.LEFT_ARROW||t===h.RIGHT_ARROW;t===h.ENTER||t===h.SPACE||(this.multiple||e.altKey)&&r?(e.preventDefault(),this.open()):!this.multiple&&this.tree.keyManager&&this.tree.keyManager.onKeydown&&this.tree.keyManager.onKeydown(e)},t.prototype.handleOpenKeydown=function(e){var t=e.keyCode,r=t===h.DOWN_ARROW||t===h.UP_ARROW;if(r&&e.altKey)e.preventDefault(),this.close();else{if(t===h.LEFT_ARROW||t===h.RIGHT_ARROW)return this.originalOnKeyDown.call(this.tree,e);if(t===h.HOME)e.preventDefault(),this.tree.keyManager.setFirstItemActive();else if(t===h.END)e.preventDefault(),this.tree.keyManager.setLastItemActive();else if(t===h.PAGE_UP)e.preventDefault(),this.tree.keyManager.setPreviousPageItemActive();else if(t===h.PAGE_DOWN)e.preventDefault(),this.tree.keyManager.setNextPageItemActive();else if(t!==h.ENTER&&t!==h.SPACE||!this.tree.keyManager.activeItem)if(this.multiple&&t===h.A&&e.ctrlKey){e.preventDefault();var i=this.options.some((function(e){return!e.selected}));this.options.forEach((function(e){i&&!e.disabled?e.select():e.deselect()}))}else{var n=this.tree.keyManager.activeItemIndex;this.tree.keyManager.setFocusOrigin("keyboard"),this.tree.keyManager.onKeydown(e),this.multiple&&r&&e.shiftKey&&this.tree.keyManager.activeItem&&this.tree.keyManager.activeItemIndex!==n&&this.tree.keyManager.activeItem.selectViaInteraction(e),this.autoSelect&&this.tree.keyManager.activeItem&&this.tree.setSelectedOptionsByKey(this.tree.keyManager.activeItem,h.hasModifierKey(e,"shiftKey"),h.hasModifierKey(e,"ctrlKey"))}else e.preventDefault(),this.autoSelect?this.close():this.selectionModel.toggle(this.tree.keyManager.activeItem.data)}},t.prototype.initializeSelection=function(){var e=this;Promise.resolve().then((function(){e.setSelectionByValue(e.ngControl?e.ngControl.value:e._value)}))},t.prototype.setSelectionByValue=function(e){if(this.multiple&&e){if(!Array.isArray(e))throw o.getMcSelectNonArrayValueError();this.tree.setOptionsFromValues(e),this.sortValues()}else this.tree.setOptionsFromValues([e]);this.changeDetectorRef.detectChanges()},t.prototype.initKeyManager=function(){var e=this;this.originalOnKeyDown=this.tree.onKeyDown,this.tree.onKeyDown=function(){},this.tree.keyManager.tabOut.pipe(f.takeUntil(this.destroy)).subscribe((function(){e.focus(),e.close()})),this.tree.keyManager.change.pipe(f.takeUntil(this.destroy)).subscribe((function(){e._panelOpen&&e.panel?e.scrollActiveOptionIntoView():e._panelOpen||e.multiple||!e.tree.keyManager.activeItem||e.tree.keyManager.activeItem.selectViaInteraction()}))},t.prototype.sortValues=function(){var e=this;if(this.multiple){var t=this.options.toArray();this.selectionModel.sort((function(r,i){return e.sortComparator?e.sortComparator(r,i,t):t.indexOf(r)-t.indexOf(i)})),this.stateChanges.next()}},t.prototype.highlightCorrectOption=function(){if(!this.empty&&this.tree.keyManager){var e=this.multiple?this.selectedValues[0]:this.selectedValues,t=this.options.find((function(t){return t.value===e}));t&&this.tree.keyManager.setActiveItem(t)}},t.prototype.scrollActiveOptionIntoView=function(){var e=this.tree.keyManager.activeItemIndex||0;this.panel.nativeElement.scrollTop=o.getOptionScrollPosition(e,this.tree.getItemHeight(),this.panel.nativeElement.scrollTop,o.SELECT_PANEL_MAX_HEIGHT)},t.prototype.calculateOverlayOffsetX=function(){var e=this.overlayDir.overlayRef.overlayElement.getBoundingClientRect(),t=this.viewportRuler.getViewportSize(),r=this.isRtl(),i=2*o.SELECT_PANEL_PADDING_X,n=o.SELECT_PANEL_PADDING_X;r||(n*=-1);var s=0-(e.left+n-(r?i:0)),a=e.right+n-t.width+(r?0:i);s>0?n+=s+o.SELECT_PANEL_VIEWPORT_PADDING:a>0&&(n-=a+o.SELECT_PANEL_VIEWPORT_PADDING),this.overlayDir.offsetX=Math.round(n),this.overlayDir.overlayRef.updatePosition()},t}(o.mixinTabIndex(o.mixinDisabled(o.mixinErrorState(O))));k.decorators=[{type:i.Component,args:[{selector:"mc-tree-select",exportAs:"mcTreeSelect",template:'<div cdk-overlay-origin\n class="mc-tree-select__trigger"\n [class.mc-tree-select__trigger_multiple]="multiple"\n #origin="cdkOverlayOrigin"\n #trigger>\n <div class="mc-tree-select__matcher" [ngSwitch]="empty">\n <span class="mc-tree-select__placeholder" *ngSwitchCase="true">{{ placeholder || \'\\u00A0\' }}</span>\n <span *ngSwitchCase="false" [ngSwitch]="!!customTrigger">\n <div *ngSwitchDefault [ngSwitch]="multiple" class="mc-tree-select__match-container">\n <span *ngSwitchCase="false" class="mc-tree-select__matcher-text">{{ triggerValue }}</span>\n <div *ngSwitchCase="true" class="mc-tree-select__multiple-matcher">\n <div class="mc-tree-select__match-list">\n <mc-tag *ngFor="let option of triggerValues"\n [selectable]="false"\n [disabled]="option.disabled || disabled"\n [class.mc-error]="errorState">\n\n {{ option.viewValue }}\n <i mc-icon="mc-close-S_16"\n *ngIf="!option.disabled && !disabled"\n (click)="onRemoveSelectedOption(option, $event)">\n </i>\n </mc-tag>\n </div>\n <div class="mc-tree-select__match-hidden-text"\n [style.display]="hiddenItems > 0 ? \'block\' : \'none\'"\n #hiddenItemsCounter>\n {{ hiddenItemsTextFormatter(hiddenItemsText, hiddenItems) }}\n </div>\n </div>\n </div>\n <ng-content select="mc-tree-select-trigger" *ngSwitchCase="true"></ng-content>\n </span>\n </div>\n\n <div class="mc-select__cleaner" *ngIf="canShowCleaner" (click)="clearValue($event)">\n <ng-content select="mc-cleaner"></ng-content>\n </div>\n\n <div class="mc-tree-select__arrow-wrapper">\n <i class="mc-tree-select__arrow" mc-icon="mc-angle-down-L_16"></i>\n </div>\n</div>\n\n<ng-template\n cdk-connected-overlay\n cdkConnectedOverlayLockPosition\n [cdkConnectedOverlayHasBackdrop]="hasBackdrop"\n [cdkConnectedOverlayBackdropClass]="backdropClass"\n [cdkConnectedOverlayScrollStrategy]="scrollStrategy"\n [cdkConnectedOverlayOrigin]="origin"\n [cdkConnectedOverlayOpen]="panelOpen"\n [cdkConnectedOverlayPositions]="positions"\n [cdkConnectedOverlayMinWidth]="triggerRect?.width"\n [cdkConnectedOverlayOffsetY]="offsetY"\n (backdropClick)="close()"\n (attach)="onAttached()"\n (detach)="close()">\n\n <div #panel\n class="mc-tree-select__panel {{ getPanelTheme() }}"\n [ngClass]="panelClass"\n [style.transformOrigin]="transformOrigin"\n [style.font-size.px]="triggerFontSize"\n (keydown)="handleKeydown($event)">\n\n <div #optionsContainer\n class="mc-tree-select__content"\n [@fadeInContent]="\'showing\'"\n (@fadeInContent.done)="panelDoneAnimatingStream.next($event.toState)">\n <ng-content select="mc-tree-selection"></ng-content>\n </div>\n </div>\n</ng-template>\n',inputs:["disabled","tabIndex"],encapsulation:i.ViewEncapsulation.None,changeDetection:i.ChangeDetectionStrategy.OnPush,host:{class:"mc-tree-select","[class.mc-disabled]":"disabled","[class.mc-invalid]":"errorState","[attr.id]":"id","[attr.tabindex]":"tabIndex","[attr.disabled]":"disabled || null","(click)":"toggle()","(keydown)":"handleKeydown($event)","(focus)":"onFocus()","(blur)":"onBlur()","(window:resize)":"calculateHiddenItems()"},animations:[o.mcSelectAnimations.transformPanel,o.mcSelectAnimations.fadeInContent],providers:[{provide:g.McFormFieldControl,useExisting:k},{provide:n.CdkTree,useExisting:k}],styles:[".mc-option{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;position:relative;max-width:100%;height:var(--mc-option-size-height,32px);border:var(--mc-option-size-border-width,2px) solid transparent;cursor:pointer;outline:none;padding-left:var(--mc-option-size-horizontal-padding,16px);padding-right:var(--mc-option-size-horizontal-padding,16px);-webkit-tap-highlight-color:transparent}.mc-option.mc-disabled{cursor:default}.mc-option .mc-pseudo-checkbox{margin-right:8px}.mc-option .mc-option-overlay{position:absolute;top:calc(-1 * var(--mc-option-size-border-width, 2px));left:calc(-1 * var(--mc-option-size-border-width, 2px));right:calc(-1 * var(--mc-option-size-border-width, 2px));bottom:calc(-1 * var(--mc-option-size-border-width, 2px));pointer-events:none;border-radius:inherit}.mc-option-text{display:inline-block;flex-grow:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mc-tree-select{box-sizing:border-box;display:inline-block;width:100%;outline:none}.mc-tree-select.mc-disabled .mc-tree-select__trigger{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.mc-tree-select__trigger{display:flex;box-sizing:border-box;position:relative;height:var(--mc-select-size-height,30px);cursor:pointer;padding-left:calc(var(--mc-select-size-left-padding, 16px) - var(--mc-form-field-size-border-width, 1px));padding-right:calc(var(--mc-select-size-right-padding, 8px) - var(--mc-form-field-size-border-width, 1px))}.mc-tree-select__trigger.mc-tree-select__trigger_multiple{padding-left:calc(var(--mc-select-size-left-padding-multiple, 8px) - var(--mc-form-field-size-border-width, 1px))}.mc-tree-select__trigger.mc-tree-select__trigger_multiple .mc-tree-select__placeholder{margin-left:8px}.mc-tree-select__trigger.mc-tree-select__trigger_multiple .mc-tag.mc-disabled .mc-tag__text{margin-right:7px}.mc-tree-select__matcher{display:flex;align-items:center;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mc-tree-select__matcher>span{width:100%}.mc-tree-select__multiple-matcher{display:flex;width:100%}.mc-tree-select__match-list{display:flex;flex-wrap:wrap;overflow:hidden;max-height:calc(var(--mc-select-size-height, 30px) - var(--mc-select-panel-size-border-width, 1px))}.mc-tree-select__match-list .mc-tag{margin-right:4px}.mc-tree-select__match-container{display:flex;flex-direction:row;justify-content:space-between;width:100%}.mc-tree-select__match-container .mc-tree-select__match-hidden-text{flex:0 0 70px;align-self:center;padding:0 8px;text-align:right}.mc-tree-select__match-item{display:flex;border:1px solid transparent;border-radius:3px;padding-left:7px;margin-right:4px;max-width:100%}.mc-tree-select__arrow-wrapper{align-self:center}.mc-form-field-appearance-fill .mc-tree-select__arrow-wrapper,.mc-form-field-appearance-standard .mc-tree-select__arrow-wrapper{transform:translateY(-50%)}.mc-form-field-appearance-outline .mc-tree-select__arrow-wrapper{transform:translateY(-25%)}.mc-tree-select__panel{max-height:var(--mc-select-panel-size-max-height,232px);min-width:100%;overflow:auto;border-width:var(--mc-select-panel-size-border-width,1px);border-style:solid;border-bottom-left-radius:var(--mc-select-panel-size-border-radius,3px);border-bottom-right-radius:var(--mc-select-panel-size-border-radius,3px);padding:4px 0}.mc-tree-select__panel .mc-optgroup-label,.mc-tree-select__panel .mc-tree-select-option{font-size:inherit;line-height:var(--mc-option-size-height,32px);height:var(--mc-option-size-height,32px)}.mc-tree-select__content,.mc-tree-select__content .mc-tree-selection{height:100%}.mc-form-field-type-select:not(.mc-disabled) .mc-form-field-flex{cursor:pointer}"]}]}],k.ctorParameters=function(){return[{type:i.ElementRef},{type:i.ChangeDetectorRef},{type:t.ViewportRuler},{type:i.NgZone},{type:i.Renderer2},{type:o.ErrorStateMatcher},{type:void 0,decorators:[{type:i.Inject,args:[o.MC_SELECT_SCROLL_STRATEGY]}]},{type:Array,decorators:[{type:i.Optional},{type:i.Inject,args:[u.NG_VALIDATORS]}]},{type:void 0,decorators:[{type:i.Optional},{type:i.Inject,args:[o.MC_VALIDATION]}]},{type:l.Directionality,decorators:[{type:i.Optional}]},{type:u.NgForm,decorators:[{type:i.Optional}]},{type:u.FormGroupDirective,decorators:[{type:i.Optional}]},{type:g.McFormField,decorators:[{type:i.Optional}]},{type:u.NgControl,decorators:[{type:i.Optional},{type:i.Self}]},{type:u.NgModel,decorators:[{type:i.Optional},{type:i.Self}]},{type:u.FormControlName,decorators:[{type:i.Optional},{type:i.Self}]}]},k.propDecorators={trigger:[{type:i.ViewChild,args:["trigger",{static:!1}]}],panel:[{type:i.ViewChild,args:["panel",{static:!1}]}],overlayDir:[{type:i.ViewChild,args:[t.CdkConnectedOverlay,{static:!1}]}],hiddenItemsCounter:[{type:i.ViewChild,args:["hiddenItemsCounter",{static:!1}]}],tags:[{type:i.ViewChildren,args:[a.McTag]}],cleaner:[{type:i.ContentChild,args:["mcSelectCleaner",{static:!0}]}],customTrigger:[{type:i.ContentChild,args:[C,{static:!1}]}],tree:[{type:i.ContentChild,args:[c.McTreeSelection,{static:!1}]}],hiddenItemsText:[{type:i.Input}],openedChange:[{type:i.Output}],openedStream:[{type:i.Output,args:["opened"]}],closedStream:[{type:i.Output,args:["closed"]}],selectionChange:[{type:i.Output}],valueChange:[{type:i.Output}],panelClass:[{type:i.Input}],backdropClass:[{type:i.Input}],errorStateMatcher:[{type:i.Input}],sortComparator:[{type:i.Input}],placeholder:[{type:i.Input}],required:[{type:i.Input}],multiple:[{type:i.Input}],autoSelect:[{type:i.Input}],compareWith:[{type:i.Input}],id:[{type:i.Input}],hasBackdrop:[{type:i.Input}],hiddenItemsTextFormatter:[{type:i.Input}]};var S=function(){};S.decorators=[{type:i.NgModule,args:[{imports:[r.CommonModule,t.OverlayModule,n.CdkTreeModule,c.McTreeModule,s.McIconModule,a.McTagsModule,o.McPseudoCheckboxModule],exports:[k,C,r.CommonModule],declarations:[k,C],providers:[o.MC_SELECT_SCROLL_STRATEGY_PROVIDER]}]}],e.McTreeSelect=k,e.McTreeSelectChange=_,e.McTreeSelectModule=S,e.McTreeSelectTrigger=C,Object.defineProperty(e,"__esModule",{value:!0})}));
16
- //# sourceMappingURL=ptsecurity-mosaic-tree-select.umd.min.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","../../../packages/mosaic/tree-select/tree-select.component.ts","../../../packages/mosaic/tree-select/tree-select.module.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","create","__read","o","n","m","Symbol","iterator","r","e","i","ar","next","done","push","value","error","nextUniqueId","source","isUserInput","this","Directive","args","selector","McTreeSelectBase","elementRef","defaultErrorStateMatcher","parentForm","parentFormGroup","ngControl","McTreeSelect","changeDetectorRef","viewportRuler","ngZone","renderer","scrollStrategyFactory","rawValidators","mcValidation","dir","parentFormField","ngModel","formControlName","_this","_super","controlType","hiddenItems","triggerFontSize","transformOrigin","panelDoneAnimatingStream","Subject","scrollStrategy","offsetY","positions","originX","originY","overlayX","overlayY","hiddenItemsText","openedChange","EventEmitter","openedStream","pipe","filter","map","closedStream","selectionChange","valueChange","backdropClass","optionSelectionChanges","defer","options","changes","startWith","switchMap","merge","apply","arguments","length","concat","__spread","option","onSelectionChange","onStable","asObservable","take","_required","_multiple","_autoSelect","_value","_hasBackdrop","_focused","closeSubscription","Subscription","EMPTY","_panelOpen","scrollTop","uid","destroy","onChange","onTouched","_compareWith","o1","o2","valueAccessor","id","TypeError","String","__","constructor","__extends","defineProperty","_placeholder","stateChanges","coerceBooleanProperty","selectionModel","getMcSelectDynamicMultipleError","multiple","fn","getMcSelectNonFunctionValueError","initializeSelection","tree","getSelectedValues","_id","cleaner","hasValue","ngOnInit","distinctUntilChanged","takeUntil","subscribe","panelOpen","emit","overlayDir","offsetX","markForCheck","ngAfterContentInit","useValidation","setMosaicValidation","resetFocusedItemOnBlur","SelectionModel","initKeyManager","renderedOptions","autoSelect","multipleMode","MultipleMode","CHECKBOX","noUnselectLast","tempValues","setSelectionByValue","event","close","selectedValues","McTreeSelectChange","changed","added","keyManager","setFocusOrigin","setActiveItem","find","data","ngAfterViewInit","tags","setTimeout","calculateHiddenItems","ngDoCheck","updateErrorState","ngOnChanges","disabled","ngOnDestroy","complete","unsubscribe","hiddenItemsTextFormatter","clearValue","$event","stopPropagation","clear","toggle","open","triggerRect","trigger","nativeElement","getBoundingClientRect","parseInt","getComputedStyle","highlightCorrectOption","overlayRef","overlayElement","style","fontSize","focus","writeValue","registerOnChange","registerOnTouched","setDisabledState","isDisabled","selected","treeControl","getValue","empty","getViewValue","isEmpty","isRtl","handleKeydown","handleOpenKeydown","handleClosedKeydown","onFocus","onBlur","onAttached","positionChange","detectChanges","calculateOverlayOffsetX","panel","updateScrollSize","closingActions","getPanelTheme","color","onContainerClick","onRemoveSelectedOption","selectedOption","deselect","customTrigger","visibleItems","totalItemsWidth","getTotalItemsWidthInMatcher","totalVisibleItemsWidth","forEach","tag","offsetTop","offsetHeight","getItemWidth","itemsCounter","querySelector","matcherList","itemsCounterShowed","matcherListWidth","width","matcherWidth","backdrop","backdropClick","outsidePointerEvents","detachments","triggerClone","cloneNode","remove","setStyle","appendChild","querySelectorAll","item","element","computedStyle","window","marginLeft","marginRight","keyCode","isArrowKey","DOWN_ARROW","UP_ARROW","LEFT_ARROW","RIGHT_ARROW","ENTER","SPACE","altKey","preventDefault","onKeydown","originalOnKeyDown","HOME","setFirstItemActive","END","setLastItemActive","PAGE_UP","setPreviousPageItemActive","PAGE_DOWN","setNextPageItemActive","activeItem","A","ctrlKey","hasDeselectedOptions_1","some","select","previouslyFocusedIndex","activeItemIndex","shiftKey","selectViaInteraction","setSelectedOptionsByKey","hasModifierKey","Promise","resolve","then","isArray","getMcSelectNonArrayValueError","setOptionsFromValues","sortValues","onKeyDown","tabOut","change","scrollActiveOptionIntoView","options_1","toArray","sort","a","sortComparator","indexOf","firstSelectedValue","activeOptionIndex","getOptionScrollPosition","getItemHeight","SELECT_PANEL_MAX_HEIGHT","overlayRect","viewportSize","getViewportSize","paddingWidth","SELECT_PANEL_PADDING_X","leftOverflow","left","rightOverflow","right","SELECT_PANEL_VIEWPORT_PADDING","Math","round","updatePosition","mixinTabIndex","mixinDisabled","mixinErrorState","Component","exportAs","template","inputs","encapsulation","ViewEncapsulation","None","changeDetection","ChangeDetectionStrategy","OnPush","host","class","[class.mc-disabled]","[class.mc-invalid]","[attr.id]","[attr.tabindex]","[attr.disabled]","(click)","(keydown)","(focus)","(blur)","(window:resize)","animations","mcSelectAnimations","transformPanel","fadeInContent","providers","provide","McFormFieldControl","useExisting","CdkTree","ElementRef","ChangeDetectorRef","ViewportRuler","NgZone","Renderer2","ErrorStateMatcher","Inject","MC_SELECT_SCROLL_STRATEGY","Optional","type","NG_VALIDATORS","MC_VALIDATION","Directionality","decorators","NgForm","FormGroupDirective","McFormField","NgControl","Self","NgModel","FormControlName","ViewChild","static","CdkConnectedOverlay","ViewChildren","McTag","ContentChild","McTreeSelectTrigger","McTreeSelection","Input","Output","NgModule","imports","CommonModule","OverlayModule","CdkTreeModule","McTreeModule","McIconModule","McTagsModule","McPseudoCheckboxModule","exports","declarations","MC_SELECT_SCROLL_STRATEGY_PROVIDER"],"mappings":";;;;;;;;;;;;;;oFAgBA,IAAIA,EAAgB,SAASC,EAAGC,GAI5B,OAHAF,EAAgBG,OAAOC,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUL,EAAGC,GAAKD,EAAEI,UAAYH,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIK,KAAKL,EAAOC,OAAOK,UAAUC,eAAeC,KAAKR,EAAGK,KAAIN,EAAEM,GAAKL,EAAEK,MAC3EN,EAAGC,IAuFCC,OAAOQ,gBAwBpBC,EAAOC,EAAGC,GACtB,IAAIC,EAAsB,mBAAXC,QAAyBH,EAAEG,OAAOC,UACjD,IAAKF,EAAG,OAAOF,EACf,IAAmBK,EAAYC,EAA3BC,EAAIL,EAAEL,KAAKG,GAAOQ,EAAK,GAC3B,IACI,WAAc,IAANP,GAAgBA,KAAM,MAAQI,EAAIE,EAAEE,QAAQC,MAAMF,EAAGG,KAAKN,EAAEO,OAExE,MAAOC,GAASP,EAAI,CAAEO,MAAOA,WAEzB,IACQR,IAAMA,EAAEK,OAASR,EAAIK,EAAU,SAAIL,EAAEL,KAAKU,WAExC,GAAID,EAAG,MAAMA,EAAEO,OAE7B,OAAOL,EAgEclB,OAAOQ,OCzGhC,IAAIgB,EAAe,IAIf,SAAmBC,EAA6BH,EAAmBI,QAAA,IAAAA,IAAAA,GAAA,GAAhDC,KAAAF,OAAAA,EAA6BE,KAAAL,MAAAA,EAAmBK,KAAAD,YAAAA,KAKvE,iCADCE,EAAAA,UAASC,KAAA,CAAC,CAAEC,SAAU,6BAIvB,IAAAC,EACI,SACWC,EACAC,EACAC,EACAC,EACAC,GAJAT,KAAAK,WAAAA,EACAL,KAAAM,yBAAAA,EACAN,KAAAO,WAAAA,EACAP,KAAAQ,gBAAAA,EACAR,KAAAS,UAAAA,iBAsTX,SAAAC,EACIL,EACSM,EACQC,EACAC,EACAC,EACjBR,EACoDS,EACVC,EACCC,EACdC,EACjBX,EACAC,EACiBW,EACTV,EACOW,EACAC,GAhB/B,IAAAC,EAkBIC,EAAA3C,KAAAoB,KAAMK,EAAYC,EAA0BC,EAAYC,EAAiBC,IAAUT,YAhB1EsB,EAAAX,kBAAAA,EACQW,EAAAV,cAAAA,EACAU,EAAAT,OAAAA,EACAS,EAAAR,SAAAA,EAEmCQ,EAAAP,sBAAAA,EACVO,EAAAN,cAAAA,EACCM,EAAAL,aAAAA,EACdK,EAAAJ,IAAAA,EAGAI,EAAAH,gBAAAA,EAEFG,EAAAF,QAAAA,EACAE,EAAAD,gBAAAA,EAxR/BC,EAAAE,YAAc,SAEdF,EAAAG,YAAsB,EAMtBH,EAAAI,gBAAkB,EAMlBJ,EAAAK,gBAA0B,MAG1BL,EAAAM,yBAA2B,IAAIC,EAAAA,QAG/BP,EAAAQ,eAAiBR,EAAKP,wBAOtBO,EAAAS,QAAU,EAQVT,EAAAU,UAAY,CACR,CACIC,QAAS,QACTC,QAAS,SACTC,SAAU,QACVC,SAAU,OAEd,CACIH,QAAS,QACTC,QAAS,MACTC,SAAU,QACVC,SAAU,WAuBTd,EAAAe,gBAA0B,SAGhBf,EAAAgB,aAAsC,IAAIC,EAAAA,aAGlCjB,EAAAkB,aACvBlB,EAAKgB,aAAaG,KAAKC,EAAAA,QAAO,SAAC3D,GAAM,OAAAA,KAAI4D,EAAAA,KAAI,gBAGtBrB,EAAAsB,aACvBtB,EAAKgB,aAAaG,KAAKC,EAAAA,QAAO,SAAC3D,GAAM,OAACA,KAAI4D,EAAAA,KAAI,gBAG/BrB,EAAAuB,gBAAkB,IAAIN,EAAAA,aAOtBjB,EAAAwB,YAAiC,IAAIP,EAAAA,aAK/CjB,EAAAyB,cAAwB,mCAYxBzB,EAAA0B,uBAAyDC,EAAAA,OAAM,WACpE,OAAI3B,EAAK4B,QACE5B,EAAK4B,QAAQC,QAAQV,KACxBW,EAAAA,UAAU9B,EAAK4B,SACfG,EAAAA,WAAU,WAAM,OAAAC,EAAAA,MAAKC,WAAA,aDjIjC,IAAK,IAAIhE,EAAK,GAAID,EAAI,EAAGA,EAAIkE,UAAUC,OAAQnE,IAC3CC,EAAKA,EAAGmE,OAAO5E,EAAO0E,UAAUlE,KACpC,OAAOC,EC+H0BoE,CAAIrC,EAAK4B,QAAQP,KAAI,SAACiB,GAAW,OAAAA,EAAOC,2BAI9DvC,EAAKT,OAAOiD,SACdC,eACAtB,KAAKuB,EAAAA,KAAK,GAAIX,EAAAA,WAAU,WAAM,OAAA/B,EAAK0B,8BA2BpC1B,EAAA2C,WAAqB,EAerB3C,EAAA4C,WAAqB,EAarB5C,EAAA6C,aAAuB,EA8BvB7C,EAAA8C,OAAc,KAuBd9C,EAAA+C,cAAwB,EAWxB/C,EAAAgD,UAAW,EAUXhD,EAAAiD,kBAAoBC,EAAAA,aAAaC,MAEjCnD,EAAAoD,YAAa,EAKbpD,EAAAqD,UAAY,EAGHrD,EAAAsD,IAAM,aAAa/E,IAGnByB,EAAAuD,QAAU,IAAIhD,EAAAA,QAgK/BP,EAAAwD,SAAiC,aAGjCxD,EAAAyD,UAAY,aAsfJzD,EAAA0D,aAAe,SAACC,EAASC,GAAY,OAAAD,IAAOC,GAhoB5C5D,EAAKb,YAGLa,EAAKb,UAAU0E,cAAgB7D,GAInCA,EAAK8D,GAAK9D,EAAK8D,qBDpbGjH,EAAGC,GACzB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIiH,UAAU,uBAAyBC,OAAOlH,GAAK,iCAE7D,SAASmH,IAAOvF,KAAKwF,YAAcrH,EADnCD,EAAcC,EAAGC,GAEjBD,EAAEO,UAAkB,OAANN,EAAaC,OAAOQ,OAAOT,IAAMmH,EAAG7G,UAAYN,EAAEM,UAAW,IAAI6G,GCuIjDE,CAAA/E,EAAAa,GA6H9BlD,OAAAqH,eACIhF,EAAAhC,UAAA,cAAW,KADf,WAEI,OAAOsB,KAAK2F,kBAGhB,SAAgBhG,GACZK,KAAK2F,aAAehG,EAEpBK,KAAK4F,aAAapG,wCAKtBnB,OAAAqH,eACIhF,EAAAhC,UAAA,WAAQ,KADZ,WAEI,OAAOsB,KAAKiE,eAGhB,SAAatE,GACTK,KAAKiE,UAAY4B,EAAAA,sBAAsBlG,GAEvCK,KAAK4F,aAAapG,wCAKtBnB,OAAAqH,eACIhF,EAAAhC,UAAA,WAAQ,KADZ,WAEI,OAAOsB,KAAKkE,eAGhB,SAAavE,GACT,GAAIK,KAAK8F,eACL,MAAMC,EAAAA,kCAGV/F,KAAKkE,UAAY2B,EAAAA,sBAAsBlG,oCAK3CtB,OAAAqH,eACIhF,EAAAhC,UAAA,aAAU,KADd,WAEI,OAAIsB,KAAKgG,UAEFhG,KAAKmE,iBAGhB,SAAexE,GACXK,KAAKmE,YAAc0B,EAAAA,sBAAsBlG,oCAU7CtB,OAAAqH,eACIhF,EAAAhC,UAAA,cAAW,KADf,WAEI,OAAOsB,KAAKgF,kBAGhB,SAAgBiB,GAEZ,GAAkB,mBAAPA,EACP,MAAMC,EAAAA,mCAGVlG,KAAKgF,aAAeiB,EAEhBjG,KAAK8F,gBAEL9F,KAAKmG,uDAIb9H,OAAAqH,eAAIhF,EAAAhC,UAAA,QAAK,KAAT,WACI,OAAOsB,KAAKgG,SAAWhG,KAAKoG,KAAKC,oBAAsBrG,KAAKoG,KAAKC,oBAAoB,oCAKzFhI,OAAAqH,eACIhF,EAAAhC,UAAA,KAAE,KADN,WAEI,OAAOsB,KAAKsG,SAGhB,SAAO3G,GACHK,KAAKsG,IAAM3G,GAASK,KAAK4E,IACzB5E,KAAK4F,aAAapG,wCAKtBnB,OAAAqH,eACIhF,EAAAhC,UAAA,cAAW,KADf,WAEI,OAAOsB,KAAKqE,kBAGhB,SAAgB1E,GACZK,KAAKqE,aAAewB,EAAAA,sBAAsBlG,oCAM9CtB,OAAAqH,eAAIhF,EAAAhC,UAAA,UAAO,KAAX,WACI,OAAOsB,KAAKsE,UAAYtE,KAAK0E,gBAGjC,SAAY/E,GACRK,KAAKsE,SAAW3E,mCAKpBtB,OAAAqH,eAAIhF,EAAAhC,UAAA,YAAS,KAAb,WACI,OAAOsB,KAAK0E,4CAGhBrG,OAAAqH,eAAIhF,EAAAhC,UAAA,iBAAc,KAAlB,WACI,OAAOsB,KAAKuG,SAAWvG,KAAK8F,eAAeU,4CAmD/C9F,EAAAhC,UAAA+H,SAAA,WAAA,IAAAnF,EAAAtB,KACIA,KAAK4F,aAAapG,OAKlBQ,KAAK4B,yBACAa,KAAKiE,EAAAA,uBAAwBC,EAAAA,UAAU3G,KAAK6E,UAC5C+B,WAAU,WACHtF,EAAKuF,WACLvF,EAAKqD,UAAY,EACjBrD,EAAKgB,aAAawE,MAAK,KAEvBxF,EAAKgB,aAAawE,MAAK,GACvBxF,EAAKyF,WAAWC,QAAU,EAC1B1F,EAAKX,kBAAkBsG,oBAKvCvG,EAAAhC,UAAAwI,mBAAA,WAAA,IAAA5F,EAAAtB,KACSA,KAAKoG,OAENpG,KAAKiB,aAAakG,eAClBC,EAAAA,oBAAoBpH,MAGxBA,KAAKoG,KAAKiB,wBAAyB,EAEnCrH,KAAK8F,eAAiB9F,KAAKoG,KAAKN,eAAiB,IAAIwB,EAAAA,eAAoBtH,KAAKgG,UAC9EhG,KAAKoG,KAAKc,qBAEVlH,KAAKuH,iBAELvH,KAAKkD,QAAUlD,KAAKoG,KAAKoB,gBACzBxH,KAAKoG,KAAKqB,WAAazH,KAAKyH,WAEG,OAA3BzH,KAAKoG,KAAKsB,eACV1H,KAAKoG,KAAKsB,aAAe1H,KAAKgG,SAAW2B,EAAAA,aAAaC,SAAW,MAGjE5H,KAAKgG,WACLhG,KAAKoG,KAAKyB,gBAAiB,GAG3B7H,KAAK8H,aACL9H,KAAK+H,oBAAoB/H,KAAK8H,YAC9B9H,KAAK8H,WAAa,MAGtB9H,KAAKgD,uBACAP,KAAKkE,EAAAA,UAAU3G,KAAK6E,UACpB+B,WAAU,SAACoB,IACH1G,EAAK0E,UAAY1E,EAAKuF,WAAamB,EAAMjI,aAC1CuB,EAAK2G,WAIjBjI,KAAKoG,KAAKvD,gBACLJ,KAAKkE,EAAAA,UAAU3G,KAAK6E,UACpB+B,WAAU,SAACoB,GACR1G,EAAKwD,SAASxD,EAAK4G,gBAEnB5G,EAAKuB,gBAAgBiE,KAAK,IAAIqB,EAAmB7G,EAAM0G,EAAMpE,YAGrE5D,KAAK8F,eAAesC,QACf3F,KAAKkE,EAAAA,UAAU3G,KAAK6E,UACpB+B,WAAU,SAACoB,GACJA,EAAMK,MAAM5E,SACZnC,EAAK8E,KAAKkC,WAAWC,eAAe,WACpCjH,EAAK8E,KAAKkC,WAAWE,cACjBlH,EAAK4B,QAAQuF,MAAK,SAAC7E,GAAW,OAAAA,EAAO8E,OAASV,EAAMK,MAAM,aAM9E3H,EAAAhC,UAAAiK,gBAAA,WAAA,IAAArH,EAAAtB,KACSA,KAAKoG,OAEVpG,KAAK4I,KAAKzF,QACLyD,WAAU,WACPiC,YAAW,WAAM,OAAAvH,EAAKwH,yBAAwB,MAGtDD,YAAW,WAAM,OAAAvH,EAAKwH,yBAAwB,KAGlDpI,EAAAhC,UAAAqK,UAAA,WACQ/I,KAAKS,WAAaT,KAAKgJ,oBAG/BtI,EAAAhC,UAAAuK,YAAA,SAAY9F,GAGJA,EAAQ+F,UACRlJ,KAAK4F,aAAapG,QAI1BkB,EAAAhC,UAAAyK,YAAA,WACInJ,KAAK6E,QAAQrF,OACbQ,KAAK6E,QAAQuE,WACbpJ,KAAK4F,aAAawD,WAClBpJ,KAAKuE,kBAAkB8E,eAI3B3I,EAAAhC,UAAA4K,yBAAA,SAAyBjH,EAAyBZ,GAC9C,OAAUY,EAAe,IAAIZ,GAGjCf,EAAAhC,UAAA6K,WAAA,SAAWC,GACPA,EAAOC,kBAEPzJ,KAAK8F,eAAe4D,QACpB1J,KAAKoG,KAAKkC,WAAWE,eAAe,GAEpCxI,KAAK+H,oBAAoB,IAEzB/H,KAAK8E,SAAS9E,KAAKkI,iBASvBxH,EAAAhC,UAAAiL,OAAA,WACQ3J,KAAK6G,UACL7G,KAAKiI,QAELjI,KAAK4J,QAIblJ,EAAAhC,UAAAkL,KAAA,WAAA,IAAAtI,EAAAtB,MACQA,KAAKkJ,UAAalJ,KAAKkD,SAAYlD,KAAKkD,QAAQO,SAAUzD,KAAK0E,aAEnE1E,KAAK6J,YAAc7J,KAAK8J,QAAQC,cAAcC,wBAG9ChK,KAAK0B,gBAAkBuI,SAASC,iBAAiBlK,KAAK8J,QAAQC,eAAe,cAE7E/J,KAAK0E,YAAa,EAElBmE,YAAW,WAAM,OAAAvH,EAAK6I,4BAEtBnK,KAAKW,kBAAkBsG,eAGvBjH,KAAKa,OAAOiD,SAASC,eAChBtB,KAAKuB,EAAAA,KAAK,IACV4C,WAAU,WACHtF,EAAKI,iBAAmBJ,EAAKyF,WAAWqD,YAAc9I,EAAKyF,WAAWqD,WAAWC,iBACjF/I,EAAKyF,WAAWqD,WAAWC,eAAeC,MAAMC,SAAcjJ,EAAKI,gBAAe,WAMlGhB,EAAAhC,UAAAuJ,MAAA,WAAA,IAAA3G,EAAAtB,KACSA,KAAK0E,aAEV1E,KAAK0E,YAAa,EAElB1E,KAAKW,kBAAkBsG,eACvBjH,KAAK+E,YAEL8D,YAAW,WAAM,OAAAvH,EAAKkJ,UAAS,KASnC9J,EAAAhC,UAAA+L,WAAA,SAAW9K,GACHK,KAAKoG,KACLpG,KAAK+H,oBAAoBpI,GAEzBK,KAAK8H,WAAanI,GAW1Be,EAAAhC,UAAAgM,iBAAA,SAAiBzE,GACbjG,KAAK8E,SAAWmB,GAUpBvF,EAAAhC,UAAAiM,kBAAA,SAAkB1E,GACdjG,KAAK+E,UAAYkB,GASrBvF,EAAAhC,UAAAkM,iBAAA,SAAiBC,GACb7K,KAAKkJ,SAAW2B,EAChB7K,KAAKW,kBAAkBsG,eACvBjH,KAAK4F,aAAapG,QAGtBnB,OAAAqH,eAAIhF,EAAAhC,UAAA,WAAQ,KAAZ,WACI,OAAOsB,KAAKgG,SAAWhG,KAAK8F,eAAegF,SAAW9K,KAAK8F,eAAegF,SAAS,oCAGvFzM,OAAAqH,eAAIhF,EAAAhC,UAAA,iBAAc,KAAlB,WAAA,IAAA4C,EAAAtB,KACUkI,EAAiBlI,KAAK8F,eAAegF,SAASnI,KAAI,SAAChD,GAAU,OAAA2B,EAAK8E,KAAK2E,YAAYC,SAASrL,MAElG,OAAOK,KAAKgG,SAAWkC,EAAiBA,EAAe,oCAG3D7J,OAAAqH,eAAIhF,EAAAhC,UAAA,eAAY,KAAhB,WACI,OAAIsB,KAAKiL,MAAgB,GAElBjL,KAAKoG,KAAK2E,YAAYG,aAAalL,KAAK8K,2CAGnDzM,OAAAqH,eAAIhF,EAAAhC,UAAA,gBAAa,KAAjB,WAAA,IAAA4C,EAAAtB,KACI,OAAIA,KAAKiL,MAAgB,GAElBjL,KAAKkI,eACPvF,KAAI,SAAChD,GAAU,OAAA2B,EAAK8E,KAAKoB,gBAAgBiB,MAAK,SAAC7E,GAAW,OAAAA,EAAOjE,QAAUA,QAC3E+C,QAAO,SAACkB,GAAW,OAAAA,sCAG5BvF,OAAAqH,eAAIhF,EAAAhC,UAAA,QAAK,KAAT,WACI,OAAQsB,KAAK8F,gBAAkB9F,KAAK8F,eAAeqF,2CAGvDzK,EAAAhC,UAAA0M,MAAA,WACI,QAAOpL,KAAKkB,KAAyB,QAAnBlB,KAAKkB,IAAIvB,OAG/Be,EAAAhC,UAAA2M,cAAA,SAAcrD,GACLhI,KAAKkJ,WACFlJ,KAAK6G,UACL7G,KAAKsL,kBAAkBtD,GAEvBhI,KAAKuL,oBAAoBvD,KAKrCtH,EAAAhC,UAAA8M,QAAA,WACSxL,KAAKkJ,WACNlJ,KAAKsE,UAAW,EAEhBtE,KAAK4F,aAAapG,SAQ1BkB,EAAAhC,UAAA+M,OAAA,WACIzL,KAAKsE,UAAW,EAEXtE,KAAKkJ,UAAalJ,KAAK6G,YACxB7G,KAAK+E,YACL/E,KAAKW,kBAAkBsG,eACvBjH,KAAK4F,aAAapG,SAK1BkB,EAAAhC,UAAAgN,WAAA,WAAA,IAAApK,EAAAtB,KACIA,KAAK+G,WAAW4E,eACXlJ,KAAKuB,EAAAA,KAAK,IACV4C,WAAU,WACPtF,EAAKX,kBAAkBiL,gBACvBtK,EAAKuK,0BACLvK,EAAKwK,MAAM/B,cAAcpF,UAAYrD,EAAKqD,UAE1CrD,EAAK8E,KAAK2F,sBAGlB/L,KAAKuE,kBAAoBvE,KAAKgM,iBACzBpF,WAAU,WAAM,OAAAtF,EAAK2G,YAI9BvH,EAAAhC,UAAAuN,cAAA,WACI,OAAOjM,KAAKmB,gBAAkB,MAAMnB,KAAKmB,gBAAgB+K,MAAU,IAGvExL,EAAAhC,UAAA8L,MAAA,WACIxK,KAAKK,WAAW0J,cAAcS,SAOlC9J,EAAAhC,UAAAyN,iBAAA,WACInM,KAAKwK,SAIT9J,EAAAhC,UAAA0N,uBAAA,SAAuBC,EAAqB7C,GAA5C,IAAAlI,EAAAtB,KACIwJ,EAAOC,kBAEPzJ,KAAK8F,eACAwG,SAAStM,KAAK8K,SAASrC,MAAK,SAAC9I,GAAU,OAAA2B,EAAK8E,KAAK2E,YAAYC,SAASrL,KAAW0M,EAAe1M,UAErGK,KAAK8E,SAAS9E,KAAKkI,iBAGvBxH,EAAAhC,UAAAoK,qBAAA,WAAA,IAAAxH,EAAAtB,KACI,IAAIA,KAAKuM,gBAAiBvM,KAAKiL,OAAUjL,KAAKgG,SAA9C,CAEA,IAAIwG,EAAuB,EACrBC,EAAkBzM,KAAK0M,8BACzBC,EAAiC,EAWrC,GATA3M,KAAK4I,KAAKgE,SAAQ,SAACC,GACXA,EAAI9C,cAAc+C,UAAYD,EAAI9C,cAAcgD,eAChDJ,GAA0BrL,EAAK0L,aAAaH,EAAI9C,eAChDyC,QAIRxM,KAAKyB,YAAczB,KAAK8F,eAAegF,SAASrH,OAAS+I,EAErDxM,KAAKyB,YAAa,CAClB,IAAMwL,EAAejN,KAAK8J,QAAQC,cAAcmD,cAAc,sCACxDC,EAAcnN,KAAK8J,QAAQC,cAAcmD,cAAc,+BAEvDE,EAAqBH,EAAaH,UAAYG,EAAaF,aAI3DM,EAA2BF,EAAYnD,wBAAwBsD,MAC/DC,EAAuBF,EAHK,GAOlC,GAFID,GAAuBX,EAAkBc,IAAiBvN,KAAKyB,YAAc,GAG7EkL,IAA2BU,GAC1BV,EAT6B,GASiBU,EAI/C,YAFArN,KAAKW,kBAAkBsG,gBAGfmG,GAAuBX,EAdD,GAcwCc,GACtEvN,KAAKyB,cAIbzB,KAAKW,kBAAkBsG,iBAGnBvG,EAAAhC,UAAAsN,eAAA,WACJ,IAAMwB,EAAWxN,KAAK+G,WAAWqD,WAAYqD,gBACvCC,EAAuB1N,KAAK+G,WAAWqD,WAAYsD,uBACnDC,EAAc3N,KAAK+G,WAAWqD,WAAYuD,cAEhD,OAAOrK,EAAAA,MAAMkK,EAAUE,EAAsBC,IAGzCjN,EAAAhC,UAAAgO,4BAAA,WAAA,IAAApL,EAAAtB,KACE4N,EAAe5N,KAAK8J,QAAQC,cAAc8D,WAAU,GAC1DD,EAAaV,cAAc,sCAAsCY,SAEjE9N,KAAKc,SAASiN,SAASH,EAAc,WAAY,YACjD5N,KAAKc,SAASiN,SAASH,EAAc,aAAc,UACnD5N,KAAKc,SAASiN,SAASH,EAAc,MAAO,SAC5C5N,KAAKc,SAASiN,SAASH,EAAc,OAAQ,KAE7C5N,KAAKc,SAASkN,YAAYhO,KAAK8J,QAAQC,cAAe6D,GAEtD,IAAInB,EAA0B,EAO9B,OANAmB,EAAaK,iBAAiB,UAAUrB,SAAQ,SAACsB,GAC7CzB,GAAmBnL,EAAK0L,aAAakB,MAGzCN,EAAaE,SAENrB,GAGH/L,EAAAhC,UAAAsO,aAAA,SAAamB,GACjB,IAAMC,EAAgBC,OAAOnE,iBAAiBiE,GAM9C,OAJsBlE,SAASmE,EAAcd,OAClBrD,SAASmE,EAAcE,YACtBrE,SAASmE,EAAcG,cAK/C7N,EAAAhC,UAAA6M,oBAAA,SAAoBvD,GAExB,IAAMwG,EAAUxG,EAAMwG,QAChBC,EAAaD,IAAYE,EAAAA,YAAcF,IAAYG,EAAAA,UACrDH,IAAYI,EAAAA,YAAcJ,IAAYK,EAAAA,YACxBL,IAAYM,EAAAA,OAASN,IAAYO,EAAAA,QAGhC/O,KAAKgG,UAAYgC,EAAMgH,SAAWP,GAEjDzG,EAAMiH,iBAENjP,KAAK4J,SACG5J,KAAKgG,UAAYhG,KAAKoG,KAAKkC,YAActI,KAAKoG,KAAKkC,WAAW4G,WACtElP,KAAKoG,KAAKkC,WAAW4G,UAAUlH,IAI/BtH,EAAAhC,UAAA4M,kBAAA,SAAkBtD,GAEtB,IAAMwG,EAAUxG,EAAMwG,QAChBC,EAAaD,IAAYE,EAAAA,YAAcF,IAAYG,EAAAA,SAEzD,GAAIF,GAAczG,EAAMgH,OAEpBhH,EAAMiH,iBAENjP,KAAKiI,YACF,CAAA,GAAIuG,IAAYI,EAAAA,YAAcJ,IAAYK,EAAAA,YAC7C,OAAO7O,KAAKmP,kBAAkBvQ,KAAKoB,KAAKoG,KAAM4B,GAC3C,GAAIwG,IAAYY,EAAAA,KACnBpH,EAAMiH,iBAENjP,KAAKoG,KAAKkC,WAAW+G,0BAClB,GAAIb,IAAYc,EAAAA,IACnBtH,EAAMiH,iBAENjP,KAAKoG,KAAKkC,WAAWiH,yBAClB,GAAIf,IAAYgB,EAAAA,QACnBxH,EAAMiH,iBAENjP,KAAKoG,KAAKkC,WAAWmH,iCAClB,GAAIjB,IAAYkB,EAAAA,UACnB1H,EAAMiH,iBAENjP,KAAKoG,KAAKkC,WAAWqH,6BAClB,GAAKnB,IAAYM,EAAAA,OAASN,IAAYO,EAAAA,QAAU/O,KAAKoG,KAAKkC,WAAWsH,WAQrE,GAAI5P,KAAKgG,UAAYwI,IAAYqB,EAAAA,GAAK7H,EAAM8H,QAAS,CACxD9H,EAAMiH,iBAEN,IAAMc,EAAuB/P,KAAKkD,QAAQ8M,MAAK,SAACpM,GAAW,OAACA,EAAOkH,YAEnE9K,KAAKkD,QAAQ0J,SAAQ,SAAChJ,GACdmM,IAAyBnM,EAAOsF,SAChCtF,EAAOqM,SAEPrM,EAAO0I,kBAGZ,CACH,IAAM4D,EAAyBlQ,KAAKoG,KAAKkC,WAAW6H,gBAEpDnQ,KAAKoG,KAAKkC,WAAWC,eAAe,YACpCvI,KAAKoG,KAAKkC,WAAW4G,UAAUlH,GAG3BhI,KAAKgG,UAAYyI,GAAczG,EAAMoI,UAAYpQ,KAAKoG,KAAKkC,WAAWsH,YACtE5P,KAAKoG,KAAKkC,WAAW6H,kBAAoBD,GAEzClQ,KAAKoG,KAAKkC,WAAWsH,WAAWS,qBAAqBrI,GAGrDhI,KAAKyH,YAAczH,KAAKoG,KAAKkC,WAAWsH,YACxC5P,KAAKoG,KAAKkK,wBACNtQ,KAAKoG,KAAKkC,WAAWsH,WAAYW,EAAAA,eAAevI,EAAO,YAAauI,EAAAA,eAAevI,EAAO,iBAlClGA,EAAMiH,iBAEDjP,KAAKyH,WAGNzH,KAAKiI,QAFLjI,KAAK8F,eAAe6D,OAAO3J,KAAKoG,KAAKkC,WAAWsH,WAAWlH,QAqC/DhI,EAAAhC,UAAAyH,oBAAA,WAAA,IAAA7E,EAAAtB,KAGJwQ,QAAQC,UAAUC,MAAK,WACnBpP,EAAKyG,oBAAoBzG,EAAKb,UAAYa,EAAKb,UAAUd,MAAQ2B,EAAK8C,YAQtE1D,EAAAhC,UAAAqJ,oBAAA,SAAoBpI,GACxB,GAAIK,KAAKgG,UAAYrG,EAAO,CACxB,IAAKnB,MAAMmS,QAAQhR,GAAU,MAAMiR,EAAAA,gCAEnC5Q,KAAKoG,KAAKyK,qBAAqBlR,GAE/BK,KAAK8Q,kBAEL9Q,KAAKoG,KAAKyK,qBAAqB,CAAClR,IAGpCK,KAAKW,kBAAkBiL,iBAGnBlL,EAAAhC,UAAA6I,eAAA,WAAA,IAAAjG,EAAAtB,KACJA,KAAKmP,kBAAoBnP,KAAKoG,KAAK2K,UAEnC/Q,KAAKoG,KAAK2K,UAAY,aAEtB/Q,KAAKoG,KAAKkC,WAAW0I,OAChBvO,KAAKkE,EAAAA,UAAU3G,KAAK6E,UACpB+B,WAAU,WAGPtF,EAAKkJ,QACLlJ,EAAK2G,WAGbjI,KAAKoG,KAAKkC,WAAW2I,OAChBxO,KAAKkE,EAAAA,UAAU3G,KAAK6E,UACpB+B,WAAU,WACHtF,EAAKoD,YAAcpD,EAAKwK,MACxBxK,EAAK4P,6BACG5P,EAAKoD,YAAepD,EAAK0E,WAAY1E,EAAK8E,KAAKkC,WAAWsH,YAClEtO,EAAK8E,KAAKkC,WAAWsH,WAAWS,2BAMxC3P,EAAAhC,UAAAoS,WAAA,WAAA,IAAAxP,EAAAtB,KACJ,GAAIA,KAAKgG,SAAU,CACf,IAAMmL,EAAUnR,KAAKkD,QAAQkO,UAE7BpR,KAAK8F,eAAeuL,MAAK,SAACC,EAAGlT,GACzB,OAAOkD,EAAKiQ,eAAiBjQ,EAAKiQ,eAAeD,EAAGlT,EAAG+S,GACnDA,EAAQK,QAAQF,GAAKH,EAAQK,QAAQpT,MAG7C4B,KAAK4F,aAAapG,SAQlBkB,EAAAhC,UAAAyL,uBAAA,WACJ,IAAInK,KAAKiL,OAAUjL,KAAKoG,KAAKkC,WAA7B,CAEA,IAAMmJ,EAAqBzR,KAAKgG,SAAWhG,KAAKkI,eAAe,GAAKlI,KAAKkI,eAEnEmE,EAAiBrM,KAAKkD,QAAQuF,MAAK,SAAC7E,GAAW,OAAAA,EAAOjE,QAAU8R,KAElEpF,GACArM,KAAKoG,KAAKkC,WAAWE,cAAc6D,KAKnC3L,EAAAhC,UAAAwS,2BAAA,WACJ,IAAMQ,EAAoB1R,KAAKoG,KAAKkC,WAAW6H,iBAAmB,EAElEnQ,KAAK8L,MAAM/B,cAAcpF,UAAYgN,EAAAA,wBACjCD,EACA1R,KAAKoG,KAAKwL,gBACV5R,KAAK8L,MAAM/B,cAAcpF,UACzBkN,EAAAA,0BAWAnR,EAAAhC,UAAAmN,wBAAA,WACJ,IAAMiG,EAAc9R,KAAK+G,WAAWqD,WAAWC,eAAeL,wBACxD+H,EAAe/R,KAAKY,cAAcoR,kBAClC5G,EAAQpL,KAAKoL,QAEb6G,EAAwC,EAAzBC,EAAAA,uBACjBlL,EAAkBkL,EAAAA,uBAGjB9G,IAASpE,IAAY,GAG1B,IAAMmL,EAAe,GAAKL,EAAYM,KAAOpL,GAAWoE,EAAQ6G,EAAe,IACzEI,EAAgBP,EAAYQ,MAAQtL,EAAU+K,EAAazE,OAC1DlC,EAAQ,EAAI6G,GAGfE,EAAe,EACfnL,GAAWmL,EAAeI,EAAAA,8BACnBF,EAAgB,IACvBrL,GAAWqL,EAAgBE,EAAAA,+BAM/BvS,KAAK+G,WAAWC,QAAUwL,KAAKC,MAAMzL,GACrChH,KAAK+G,WAAWqD,WAAWsI,qBAh8BLC,EAAAA,cAAcC,EAAAA,cAAcC,EAAAA,gBAAgBzS,0BAGzE0S,EAAAA,UAAS5S,KAAA,CAAC,CACPC,SAAU,iBACV4S,SAAU,eACVC,SAAA,uuGAEAC,OAAQ,CAAC,WAAY,YACrBC,cAAeC,EAAAA,kBAAkBC,KACjCC,gBAAiBC,EAAAA,wBAAwBC,OACzCC,KAAM,CACFC,MAAO,iBACPC,sBAAuB,WACvBC,qBAAsB,aAEtBC,YAAa,KACbC,kBAAmB,WACnBC,kBAAmB,mBAEnBC,UAAW,WACXC,YAAa,wBACbC,UAAW,YACXC,SAAU,WACVC,kBAAmB,0BAEvBC,WAAY,CACRC,EAAAA,mBAAmBC,eACnBD,EAAAA,mBAAmBE,eAEvBC,UAAW,CACP,CAAEC,QAASC,EAAAA,mBAAoBC,YAAajU,GAC5C,CAAE+T,QAASG,EAAAA,QAASD,YAAajU,orHA9IrCmU,EAAAA,kBALAC,EAAAA,yBANAC,EAAAA,qBAeAC,EAAAA,cAOAC,EAAAA,iBAoCAC,EAAAA,kDAsXKC,EAAAA,OAAMjV,KAAA,CAACkV,EAAAA,4DACPC,EAAAA,UAAQ,CAAAC,KAAIH,EAAAA,OAAMjV,KAAA,CAACqV,EAAAA,iDACnBF,EAAAA,UAAQ,CAAAC,KAAIH,EAAAA,OAAMjV,KAAA,CAACsV,EAAAA,wBAvbnBC,EAAAA,eAAcC,WAAA,CAAA,CAAAJ,KAwbdD,EAAAA,kBAhZLM,EAAAA,OAAMD,WAAA,CAAA,CAAAJ,KAiZDD,EAAAA,kBApZLO,EAAAA,mBAAkBF,WAAA,CAAA,CAAAJ,KAqZbD,EAAAA,kBAnWWQ,EAAAA,YAAWH,WAAA,CAAA,CAAAJ,KAoWtBD,EAAAA,kBApZLS,EAAAA,UAASJ,WAAA,CAAA,CAAAJ,KAqZJD,EAAAA,UAAQ,CAAAC,KAAIS,EAAAA,cAnZjBC,EAAAA,QAAON,WAAA,CAAA,CAAAJ,KAoZFD,EAAAA,UAAQ,CAAAC,KAAIS,EAAAA,cAzZjBE,EAAAA,gBAAeP,WAAA,CAAA,CAAAJ,KA0ZVD,EAAAA,UAAQ,CAAAC,KAAIS,EAAAA,2CApOhBG,EAAAA,UAAShW,KAAA,CAAC,UAAW,CAAEiW,QAAQ,mBAE/BD,EAAAA,UAAShW,KAAA,CAAC,QAAS,CAAEiW,QAAQ,wBAE7BD,EAAAA,UAAShW,KAAA,CAACkW,EAAAA,oBAAqB,CAAED,QAAQ,gCAEzCD,EAAAA,UAAShW,KAAA,CAAC,qBAAsB,CAAEiW,QAAQ,kBAE1CE,EAAAA,aAAYnW,KAAA,CAACoW,EAAAA,wBAEbC,EAAAA,aAAYrW,KAAA,CAAC,kBAAmB,CAAEiW,QAAQ,2BAG1CI,EAAAA,aAAYrW,KAAA,CAACsW,EAAqB,CAAEL,QAAQ,kBAE5CI,EAAAA,aAAYrW,KAAA,CAACuW,EAAAA,gBAAiB,CAAEN,QAAQ,6BAExCO,EAAAA,4BAGAC,EAAAA,6BAGAA,EAAAA,OAAMzW,KAAA,CAAC,gCAIPyW,EAAAA,OAAMzW,KAAA,CAAC,mCAIPyW,EAAAA,4BAOAA,EAAAA,2BAGAD,EAAAA,6BAEAA,EAAAA,iCAGAA,EAAAA,8BAMAA,EAAAA,2BAgBAA,EAAAA,wBAaAA,EAAAA,wBAaAA,EAAAA,0BAeAA,EAAAA,2BAkBAA,EAAAA,kBAyBAA,EAAAA,2BAYAA,EAAAA,wCA0LAA,EAAAA,eChiBL,iCAdCE,EAAAA,SAAQ1W,KAAA,CAAC,CACN2W,QAAS,CACLC,EAAAA,aACAC,EAAAA,cACAC,EAAAA,cACAC,EAAAA,aACAC,EAAAA,aACAC,EAAAA,aACAC,EAAAA,wBAEJC,QAAS,CAAC3W,EAAc8V,EAAqBM,EAAAA,cAC7CQ,aAAc,CAAC5W,EAAc8V,GAC7BhC,UAAW,CAAC+C,EAAAA","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","/* tslint:disable:no-empty */\n\nimport { Directionality } from '@angular/cdk/bidi';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport {\n CdkConnectedOverlay,\n ViewportRuler\n} from '@angular/cdk/overlay';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n Directive,\n DoCheck,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n Renderer2,\n Self,\n SimpleChanges,\n ViewChild,\n ViewChildren,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormControlName,\n FormGroupDirective,\n NG_VALIDATORS,\n NgControl,\n NgForm,\n NgModel,\n Validator\n} from '@angular/forms';\nimport {\n DOWN_ARROW,\n END,\n ENTER,\n HOME,\n LEFT_ARROW,\n RIGHT_ARROW,\n SPACE,\n UP_ARROW,\n A,\n PAGE_UP,\n PAGE_DOWN,\n hasModifierKey\n} from '@ptsecurity/cdk/keycodes';\nimport { CdkTree } from '@ptsecurity/cdk/tree';\nimport {\n getOptionScrollPosition,\n CanDisable,\n CanUpdateErrorState,\n ErrorStateMatcher,\n HasTabIndex,\n CanDisableCtor,\n HasTabIndexCtor,\n CanUpdateErrorStateCtor,\n mixinTabIndex,\n mixinDisabled,\n mixinErrorState,\n mcSelectAnimations,\n\n SELECT_PANEL_MAX_HEIGHT,\n SELECT_PANEL_PADDING_X,\n SELECT_PANEL_VIEWPORT_PADDING,\n MC_SELECT_SCROLL_STRATEGY,\n\n getMcSelectDynamicMultipleError,\n getMcSelectNonFunctionValueError,\n getMcSelectNonArrayValueError,\n MultipleMode,\n\n MC_VALIDATION,\n setMosaicValidation,\n McValidationOptions\n} from '@ptsecurity/mosaic/core';\nimport { McCleaner, McFormField, McFormFieldControl } from '@ptsecurity/mosaic/form-field';\nimport { McTag } from '@ptsecurity/mosaic/tags';\nimport { McTreeSelection, McTreeOption } from '@ptsecurity/mosaic/tree';\nimport { defer, merge, Observable, Subject, Subscription } from 'rxjs';\nimport {\n filter,\n map,\n switchMap,\n take,\n takeUntil,\n distinctUntilChanged,\n startWith\n} from 'rxjs/operators';\n\n\nlet nextUniqueId = 0;\n\n/** Change event object that is emitted when the select value has changed. */\nexport class McTreeSelectChange {\n constructor(public source: McTreeSelect, public value: any, public isUserInput = false) {}\n}\n\n\n@Directive({ selector: 'mc-tree-select-trigger' })\nexport class McTreeSelectTrigger {}\n\n\nclass McTreeSelectBase {\n constructor(\n public elementRef: ElementRef,\n public defaultErrorStateMatcher: ErrorStateMatcher,\n public parentForm: NgForm,\n public parentFormGroup: FormGroupDirective,\n public ngControl: NgControl\n ) {}\n}\n\n// tslint:disable-next-line:naming-convention\nconst McTreeSelectMixinBase: CanDisableCtor & HasTabIndexCtor & CanUpdateErrorStateCtor &\n typeof McTreeSelectBase = mixinTabIndex(mixinDisabled(mixinErrorState(McTreeSelectBase)));\n\n\n@Component({\n selector: 'mc-tree-select',\n exportAs: 'mcTreeSelect',\n templateUrl: 'tree-select.html',\n styleUrls: ['./tree-select.scss'],\n inputs: ['disabled', 'tabIndex'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'mc-tree-select',\n '[class.mc-disabled]': 'disabled',\n '[class.mc-invalid]': 'errorState',\n\n '[attr.id]': 'id',\n '[attr.tabindex]': 'tabIndex',\n '[attr.disabled]': 'disabled || null',\n\n '(click)': 'toggle()',\n '(keydown)': 'handleKeydown($event)',\n '(focus)': 'onFocus()',\n '(blur)': 'onBlur()',\n '(window:resize)': 'calculateHiddenItems()'\n },\n animations: [\n mcSelectAnimations.transformPanel,\n mcSelectAnimations.fadeInContent\n ],\n providers: [\n { provide: McFormFieldControl, useExisting: McTreeSelect },\n { provide: CdkTree, useExisting: McTreeSelect }\n ]\n})\nexport class McTreeSelect extends McTreeSelectMixinBase implements\n AfterContentInit, AfterViewInit, OnChanges, OnDestroy, OnInit, DoCheck, ControlValueAccessor,\n CanDisable, HasTabIndex, McFormFieldControl<McTreeOption>, CanUpdateErrorState {\n\n /** A name for this control that can be used by `mc-form-field`. */\n controlType = 'select';\n\n hiddenItems: number = 0;\n\n /** The last measured value for the trigger's client bounding rect. */\n triggerRect: ClientRect;\n\n /** The cached font-size of the trigger element. */\n triggerFontSize = 0;\n\n /** Deals with the selection logic. */\n selectionModel: SelectionModel<any>;\n\n /** The value of the select panel's transform-origin property. */\n transformOrigin: string = 'top';\n\n /** Emits when the panel element is finished transforming in. */\n panelDoneAnimatingStream = new Subject<string>();\n\n /** Strategy that will be used to handle scrolling while the select panel is open. */\n scrollStrategy = this.scrollStrategyFactory();\n\n /**\n * The y-offset of the overlay panel in relation to the trigger's top start corner.\n * This must be adjusted to align the selected option text over the trigger text.\n * when the panel opens. Will change based on the y-position of the selected option.\n */\n offsetY = 0;\n\n /**\n * This position config ensures that the top \"start\" corner of the overlay\n * is aligned with with the top \"start\" of the origin by default (overlapping\n * the trigger completely). If the panel cannot fit below the trigger, it\n * will fall back to a position above the trigger.\n */\n positions = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom'\n }\n ];\n\n options: QueryList<McTreeOption>;\n\n @ViewChild('trigger', { static: false }) trigger: ElementRef;\n\n @ViewChild('panel', { static: false }) panel: ElementRef;\n\n @ViewChild(CdkConnectedOverlay, { static: false }) overlayDir: CdkConnectedOverlay;\n\n @ViewChild('hiddenItemsCounter', { static: false }) hiddenItemsCounter: ElementRef;\n\n @ViewChildren(McTag) tags: QueryList<McTag>;\n\n @ContentChild('mcSelectCleaner', { static: true }) cleaner: McCleaner;\n\n /** User-supplied override of the trigger element. */\n @ContentChild(McTreeSelectTrigger, { static: false }) customTrigger: McTreeSelectTrigger;\n\n @ContentChild(McTreeSelection, { static: false }) tree: McTreeSelection<McTreeOption>;\n\n @Input() hiddenItemsText: string = '...ещё';\n\n /** Event emitted when the select panel has been toggled. */\n @Output() readonly openedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** Event emitted when the select has been opened. */\n @Output('opened') readonly openedStream: Observable<void> =\n this.openedChange.pipe(filter((o) => o), map(() => {}));\n\n /** Event emitted when the select has been closed. */\n @Output('closed') readonly closedStream: Observable<void> =\n this.openedChange.pipe(filter((o) => !o), map(() => {}));\n\n /** Event emitted when the selected value has been changed by the user. */\n @Output() readonly selectionChange = new EventEmitter<McTreeSelectChange>();\n\n /**\n * Event that emits whenever the raw value of the select changes. This is here primarily\n * to facilitate the two-way binding for the `value` input.\n * @docs-private\n */\n @Output() readonly valueChange: EventEmitter<any> = new EventEmitter<any>();\n\n /** Classes to be passed to the select panel. Supports the same syntax as `ngClass`. */\n @Input() panelClass: string | string[] | Set<string> | { [key: string]: any };\n\n @Input() backdropClass: string = 'cdk-overlay-transparent-backdrop';\n\n /** Object used to control when error messages are shown. */\n @Input() errorStateMatcher: ErrorStateMatcher;\n\n /**\n * Function used to sort the values in a select in multiple mode.\n * Follows the same logic as `Array.prototype.sort`.\n */\n @Input() sortComparator: (a: McTreeOption, b: McTreeOption, options: McTreeOption[]) => number;\n\n /** Combined stream of all of the child options' change events. */\n readonly optionSelectionChanges: Observable<McTreeSelectChange> = defer(() => {\n if (this.options) {\n return this.options.changes.pipe(\n startWith(this.options),\n switchMap(() => merge(...this.options.map((option) => option.onSelectionChange)))\n );\n }\n\n return this.ngZone.onStable\n .asObservable()\n .pipe(take(1), switchMap(() => this.optionSelectionChanges));\n }) as Observable<McTreeSelectChange>;\n\n @Input()\n get placeholder(): string {\n return this._placeholder;\n }\n\n set placeholder(value: string) {\n this._placeholder = value;\n\n this.stateChanges.next();\n }\n\n private _placeholder: string;\n\n @Input()\n get required(): boolean {\n return this._required;\n }\n\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n\n this.stateChanges.next();\n }\n\n private _required: boolean = false;\n\n @Input()\n get multiple(): boolean {\n return this._multiple;\n }\n\n set multiple(value: boolean) {\n if (this.selectionModel) {\n throw getMcSelectDynamicMultipleError();\n }\n\n this._multiple = coerceBooleanProperty(value);\n }\n\n private _multiple: boolean = false;\n\n @Input()\n get autoSelect(): boolean {\n if (this.multiple) { return false; }\n\n return this._autoSelect;\n }\n\n set autoSelect(value: boolean) {\n this._autoSelect = coerceBooleanProperty(value);\n }\n\n private _autoSelect: boolean = true;\n\n /**\n * Function to compare the option values with the selected values. The first argument\n * is a value from an option. The second is a value from the selection. A boolean\n * should be returned.\n */\n @Input()\n get compareWith() {\n return this._compareWith;\n }\n\n set compareWith(fn: (o1: any, o2: any) => boolean) {\n /* tslint:disable-next-line:strict-type-predicates */\n if (typeof fn !== 'function') {\n throw getMcSelectNonFunctionValueError();\n }\n\n this._compareWith = fn;\n\n if (this.selectionModel) {\n // A different comparator means the selection could change.\n this.initializeSelection();\n }\n }\n\n get value(): any {\n return this.multiple ? this.tree.getSelectedValues() : this.tree.getSelectedValues()[0];\n }\n\n private _value: any = null;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this.uid;\n this.stateChanges.next();\n }\n\n private _id: string;\n\n @Input()\n get hasBackdrop(): boolean {\n return this._hasBackdrop;\n }\n\n set hasBackdrop(value: boolean) {\n this._hasBackdrop = coerceBooleanProperty(value);\n }\n\n private _hasBackdrop: boolean = false;\n\n /** Whether the select is focused. */\n get focused(): boolean {\n return this._focused || this._panelOpen;\n }\n\n set focused(value: boolean) {\n this._focused = value;\n }\n\n private _focused = false;\n\n get panelOpen(): boolean {\n return this._panelOpen;\n }\n\n get canShowCleaner(): boolean {\n return this.cleaner && this.selectionModel.hasValue();\n }\n\n private closeSubscription = Subscription.EMPTY;\n\n private _panelOpen = false;\n\n private originalOnKeyDown: (event: KeyboardEvent) => void;\n\n /** The scroll position of the overlay panel, calculated to center the selected option. */\n private scrollTop = 0;\n\n /** Unique id for this input. */\n private readonly uid = `mc-select-${nextUniqueId++}`;\n\n /** Emits whenever the component is destroyed. */\n private readonly destroy = new Subject<void>();\n\n // Used for storing the values that were assigned before the options were initialized.\n private tempValues: string | string[] | null;\n\n constructor(\n elementRef: ElementRef,\n readonly changeDetectorRef: ChangeDetectorRef,\n private readonly viewportRuler: ViewportRuler,\n private readonly ngZone: NgZone,\n private readonly renderer: Renderer2,\n defaultErrorStateMatcher: ErrorStateMatcher,\n @Inject(MC_SELECT_SCROLL_STRATEGY) private readonly scrollStrategyFactory,\n @Optional() @Inject(NG_VALIDATORS) public rawValidators: Validator[],\n @Optional() @Inject(MC_VALIDATION) private mcValidation: McValidationOptions,\n @Optional() private readonly dir: Directionality,\n @Optional() parentForm: NgForm,\n @Optional() parentFormGroup: FormGroupDirective,\n @Optional() private readonly parentFormField: McFormField,\n @Optional() @Self() ngControl: NgControl,\n @Optional() @Self() public ngModel: NgModel,\n @Optional() @Self() public formControlName: FormControlName\n ) {\n super(elementRef, defaultErrorStateMatcher, parentForm, parentFormGroup, ngControl);\n\n if (this.ngControl) {\n // Note: we provide the value accessor through here, instead of\n // the `providers` to avoid running into a circular import.\n this.ngControl.valueAccessor = this;\n }\n\n // Force setter to be called in case id was not specified.\n this.id = this.id;\n }\n\n ngOnInit() {\n this.stateChanges.next();\n\n // We need `distinctUntilChanged` here, because some browsers will\n // fire the animation end event twice for the same animation. See:\n // https://github.com/angular/angular/issues/24084\n this.panelDoneAnimatingStream\n .pipe(distinctUntilChanged(), takeUntil(this.destroy))\n .subscribe(() => {\n if (this.panelOpen) {\n this.scrollTop = 0;\n this.openedChange.emit(true);\n } else {\n this.openedChange.emit(false);\n this.overlayDir.offsetX = 0;\n this.changeDetectorRef.markForCheck();\n }\n });\n }\n\n ngAfterContentInit() {\n if (!this.tree) { return; }\n\n if (this.mcValidation.useValidation) {\n setMosaicValidation(this);\n }\n\n this.tree.resetFocusedItemOnBlur = false;\n\n this.selectionModel = this.tree.selectionModel = new SelectionModel<any>(this.multiple);\n this.tree.ngAfterContentInit();\n\n this.initKeyManager();\n\n this.options = this.tree.renderedOptions;\n this.tree.autoSelect = this.autoSelect;\n\n if (this.tree.multipleMode === null) {\n this.tree.multipleMode = this.multiple ? MultipleMode.CHECKBOX : null;\n }\n\n if (this.multiple) {\n this.tree.noUnselectLast = false;\n }\n\n if (this.tempValues) {\n this.setSelectionByValue(this.tempValues);\n this.tempValues = null;\n }\n\n this.optionSelectionChanges\n .pipe(takeUntil(this.destroy))\n .subscribe((event) => {\n if (!this.multiple && this.panelOpen && event.isUserInput) {\n this.close();\n }\n });\n\n this.tree.selectionChange\n .pipe(takeUntil(this.destroy))\n .subscribe((event) => {\n this.onChange(this.selectedValues);\n\n this.selectionChange.emit(new McTreeSelectChange(this, event.option));\n });\n\n this.selectionModel.changed\n .pipe(takeUntil(this.destroy))\n .subscribe((event) => {\n if (event.added.length) {\n this.tree.keyManager.setFocusOrigin('program');\n this.tree.keyManager.setActiveItem(\n this.options.find((option) => option.data === event.added[0]) as any\n );\n }\n });\n }\n\n ngAfterViewInit() {\n if (!this.tree) { return; }\n\n this.tags.changes\n .subscribe(() => {\n setTimeout(() => this.calculateHiddenItems(), 0);\n });\n\n setTimeout(() => this.calculateHiddenItems(), 0);\n }\n\n ngDoCheck() {\n if (this.ngControl) { this.updateErrorState(); }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n // Updating the disabled state is handled by `mixinDisabled`, but we need to additionally let\n // the parent form field know to run change detection when the disabled state changes.\n if (changes.disabled) {\n this.stateChanges.next();\n }\n }\n\n ngOnDestroy() {\n this.destroy.next();\n this.destroy.complete();\n this.stateChanges.complete();\n this.closeSubscription.unsubscribe();\n }\n\n @Input()\n hiddenItemsTextFormatter(hiddenItemsText: string, hiddenItems: number): string {\n return `${hiddenItemsText} ${hiddenItems}`;\n }\n\n clearValue($event): void {\n $event.stopPropagation();\n\n this.selectionModel.clear();\n this.tree.keyManager.setActiveItem(-1);\n\n this.setSelectionByValue([]);\n\n this.onChange(this.selectedValues);\n }\n\n /** `View -> model callback called when value changes` */\n onChange: (value: any) => void = () => {};\n\n /** `View -> model callback called when select has been touched` */\n onTouched = () => {};\n\n toggle(): void {\n if (this.panelOpen) {\n this.close();\n } else {\n this.open();\n }\n }\n\n open(): void {\n if (this.disabled || !this.options || !this.options.length || this._panelOpen) { return; }\n\n this.triggerRect = this.trigger.nativeElement.getBoundingClientRect();\n // Note: The computed font-size will be a string pixel value (e.g. \"16px\").\n // `parseInt` ignores the trailing 'px' and converts this to a number.\n this.triggerFontSize = parseInt(getComputedStyle(this.trigger.nativeElement)['font-size']);\n\n this._panelOpen = true;\n\n setTimeout(() => this.highlightCorrectOption());\n\n this.changeDetectorRef.markForCheck();\n\n // Set the font size on the panel element once it exists.\n this.ngZone.onStable.asObservable()\n .pipe(take(1))\n .subscribe(() => {\n if (this.triggerFontSize && this.overlayDir.overlayRef && this.overlayDir.overlayRef.overlayElement) {\n this.overlayDir.overlayRef.overlayElement.style.fontSize = `${this.triggerFontSize}px`;\n }\n });\n }\n\n /** Closes the overlay panel and focuses the host element. */\n close(): void {\n if (!this._panelOpen) { return; }\n\n this._panelOpen = false;\n\n this.changeDetectorRef.markForCheck();\n this.onTouched();\n\n setTimeout(() => this.focus(), 0);\n }\n\n /**\n * Sets the select's value. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param value New value to be written to the model.\n */\n writeValue(value: any): void {\n if (this.tree) {\n this.setSelectionByValue(value);\n } else {\n this.tempValues = value;\n }\n }\n\n /**\n * Saves a callback function to be invoked when the select's value\n * changes from user input. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the value changes.\n */\n registerOnChange(fn: (value: any) => void) {\n this.onChange = fn;\n }\n\n /**\n * Saves a callback function to be invoked when the select is blurred\n * by the user. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the component has been touched.\n */\n registerOnTouched(fn: () => {}) {\n this.onTouched = fn;\n }\n\n /**\n * Disables the select. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param isDisabled Sets whether the component is disabled.\n */\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n this.changeDetectorRef.markForCheck();\n this.stateChanges.next();\n }\n\n get selected(): any {\n return this.multiple ? this.selectionModel.selected : this.selectionModel.selected[0];\n }\n\n get selectedValues(): any {\n const selectedValues = this.selectionModel.selected.map((value) => this.tree.treeControl.getValue(value));\n\n return this.multiple ? selectedValues : selectedValues[0];\n }\n\n get triggerValue(): string {\n if (this.empty) { return ''; }\n\n return this.tree.treeControl.getViewValue(this.selected);\n }\n\n get triggerValues(): McTreeOption[] {\n if (this.empty) { return []; }\n\n return this.selectedValues\n .map((value) => this.tree.renderedOptions.find((option) => option.value === value))\n .filter((option) => option);\n }\n\n get empty(): boolean {\n return !this.selectionModel || this.selectionModel.isEmpty();\n }\n\n isRtl(): boolean {\n return this.dir ? this.dir.value === 'rtl' : false;\n }\n\n handleKeydown(event: KeyboardEvent) {\n if (!this.disabled) {\n if (this.panelOpen) {\n this.handleOpenKeydown(event);\n } else {\n this.handleClosedKeydown(event);\n }\n }\n }\n\n onFocus() {\n if (!this.disabled) {\n this._focused = true;\n\n this.stateChanges.next();\n }\n }\n\n /**\n * Calls the touched callback only if the panel is closed. Otherwise, the trigger will\n * \"blur\" to the panel when it opens, causing a false positive.\n */\n onBlur() {\n this._focused = false;\n\n if (!this.disabled && !this.panelOpen) {\n this.onTouched();\n this.changeDetectorRef.markForCheck();\n this.stateChanges.next();\n }\n }\n\n /** Callback that is invoked when the overlay panel has been attached. */\n onAttached() {\n this.overlayDir.positionChange\n .pipe(take(1))\n .subscribe(() => {\n this.changeDetectorRef.detectChanges();\n this.calculateOverlayOffsetX();\n this.panel.nativeElement.scrollTop = this.scrollTop;\n\n this.tree.updateScrollSize();\n });\n\n this.closeSubscription = this.closingActions()\n .subscribe(() => this.close());\n }\n\n /** Returns the theme to be used on the panel. */\n getPanelTheme(): string {\n return this.parentFormField ? `mc-${this.parentFormField.color}` : '';\n }\n\n focus() {\n this.elementRef.nativeElement.focus();\n }\n\n /**\n * Implemented as part of McFormFieldControl.\n * @docs-private\n */\n onContainerClick() {\n this.focus();\n }\n\n /** Invoked when an option is clicked. */\n onRemoveSelectedOption(selectedOption: any, $event) {\n $event.stopPropagation();\n\n this.selectionModel\n .deselect(this.selected.find((value) => this.tree.treeControl.getValue(value) === selectedOption.value));\n\n this.onChange(this.selectedValues);\n }\n\n calculateHiddenItems() {\n if (this.customTrigger || this.empty || !this.multiple) { return; }\n\n let visibleItems: number = 0;\n const totalItemsWidth = this.getTotalItemsWidthInMatcher();\n let totalVisibleItemsWidth: number = 0;\n\n this.tags.forEach((tag) => {\n if (tag.nativeElement.offsetTop < tag.nativeElement.offsetHeight) {\n totalVisibleItemsWidth += this.getItemWidth(tag.nativeElement);\n visibleItems++;\n }\n });\n\n this.hiddenItems = this.selectionModel.selected.length - visibleItems;\n\n if (this.hiddenItems) {\n const itemsCounter = this.trigger.nativeElement.querySelector('.mc-tree-select__match-hidden-text');\n const matcherList = this.trigger.nativeElement.querySelector('.mc-tree-select__match-list');\n\n const itemsCounterShowed = itemsCounter.offsetTop < itemsCounter.offsetHeight;\n // const itemsCounterWidth: number = itemsCounter.getBoundingClientRect().width;\n const itemsCounterWidth: number = 86;\n\n const matcherListWidth: number = matcherList.getBoundingClientRect().width;\n const matcherWidth: number = matcherListWidth + itemsCounterWidth;\n\n if (itemsCounterShowed && (totalItemsWidth < matcherWidth)) { this.hiddenItems = 0; }\n\n if (\n totalVisibleItemsWidth === matcherListWidth ||\n (totalVisibleItemsWidth + itemsCounterWidth) < matcherListWidth\n ) {\n this.changeDetectorRef.markForCheck();\n\n return ;\n } else if (!itemsCounterShowed && (totalItemsWidth + itemsCounterWidth) > matcherWidth) {\n this.hiddenItems++;\n }\n }\n\n this.changeDetectorRef.markForCheck();\n }\n\n private closingActions() {\n const backdrop = this.overlayDir.overlayRef!.backdropClick();\n const outsidePointerEvents = this.overlayDir.overlayRef!.outsidePointerEvents();\n const detachments = this.overlayDir.overlayRef!.detachments();\n\n return merge(backdrop, outsidePointerEvents, detachments);\n }\n\n private getTotalItemsWidthInMatcher(): number {\n const triggerClone = this.trigger.nativeElement.cloneNode(true);\n triggerClone.querySelector('.mc-tree-select__match-hidden-text').remove();\n\n this.renderer.setStyle(triggerClone, 'position', 'absolute');\n this.renderer.setStyle(triggerClone, 'visibility', 'hidden');\n this.renderer.setStyle(triggerClone, 'top', '-100%');\n this.renderer.setStyle(triggerClone, 'left', '0');\n\n this.renderer.appendChild(this.trigger.nativeElement, triggerClone);\n\n let totalItemsWidth: number = 0;\n triggerClone.querySelectorAll('mc-tag').forEach((item) => {\n totalItemsWidth += this.getItemWidth(item);\n });\n\n triggerClone.remove();\n\n return totalItemsWidth;\n }\n\n private getItemWidth(element: HTMLElement): number {\n const computedStyle = window.getComputedStyle(element);\n\n const width: number = parseInt(computedStyle.width as string);\n const marginLeft: number = parseInt(computedStyle.marginLeft as string);\n const marginRight: number = parseInt(computedStyle.marginRight as string);\n\n return width + marginLeft + marginRight;\n }\n\n private handleClosedKeydown(event: KeyboardEvent) {\n // tslint:disable-next-line: deprecation\n const keyCode = event.keyCode;\n const isArrowKey = keyCode === DOWN_ARROW || keyCode === UP_ARROW ||\n keyCode === LEFT_ARROW || keyCode === RIGHT_ARROW;\n const isOpenKey = keyCode === ENTER || keyCode === SPACE;\n\n // Open the select on ALT + arrow key to match the native <select>\n if (isOpenKey || ((this.multiple || event.altKey) && isArrowKey)) {\n // prevents the page from scrolling down when pressing space\n event.preventDefault();\n\n this.open();\n } else if (!this.multiple && this.tree.keyManager && this.tree.keyManager.onKeydown) {\n this.tree.keyManager.onKeydown(event);\n }\n }\n\n private handleOpenKeydown(event: KeyboardEvent) {\n /* tslint:disable-next-line */\n const keyCode = event.keyCode;\n const isArrowKey = keyCode === DOWN_ARROW || keyCode === UP_ARROW;\n\n if (isArrowKey && event.altKey) {\n // Close the select on ALT + arrow key to match the native <select>\n event.preventDefault();\n\n this.close();\n } else if (keyCode === LEFT_ARROW || keyCode === RIGHT_ARROW) {\n return this.originalOnKeyDown.call(this.tree, event);\n } else if (keyCode === HOME) {\n event.preventDefault();\n\n this.tree.keyManager.setFirstItemActive();\n } else if (keyCode === END) {\n event.preventDefault();\n\n this.tree.keyManager.setLastItemActive();\n } else if (keyCode === PAGE_UP) {\n event.preventDefault();\n\n this.tree.keyManager.setPreviousPageItemActive();\n } else if (keyCode === PAGE_DOWN) {\n event.preventDefault();\n\n this.tree.keyManager.setNextPageItemActive();\n } else if ((keyCode === ENTER || keyCode === SPACE) && this.tree.keyManager.activeItem) {\n event.preventDefault();\n\n if (!this.autoSelect) {\n this.selectionModel.toggle(this.tree.keyManager.activeItem.data);\n } else {\n this.close();\n }\n } else if (this.multiple && keyCode === A && event.ctrlKey) {\n event.preventDefault();\n\n const hasDeselectedOptions = this.options.some((option) => !option.selected);\n\n this.options.forEach((option) => {\n if (hasDeselectedOptions && !option.disabled) {\n option.select();\n } else {\n option.deselect();\n }\n });\n } else {\n const previouslyFocusedIndex = this.tree.keyManager.activeItemIndex;\n\n this.tree.keyManager.setFocusOrigin('keyboard');\n this.tree.keyManager.onKeydown(event);\n\n if (\n this.multiple && isArrowKey && event.shiftKey && this.tree.keyManager.activeItem &&\n this.tree.keyManager.activeItemIndex !== previouslyFocusedIndex\n ) {\n this.tree.keyManager.activeItem.selectViaInteraction(event);\n }\n\n if (this.autoSelect && this.tree.keyManager.activeItem) {\n this.tree.setSelectedOptionsByKey(\n this.tree.keyManager.activeItem, hasModifierKey(event, 'shiftKey'), hasModifierKey(event, 'ctrlKey')\n );\n }\n }\n }\n\n private initializeSelection() {\n // Defer setting the value in order to avoid the \"Expression\n // has changed after it was checked\" errors from Angular.\n Promise.resolve().then(() => {\n this.setSelectionByValue(this.ngControl ? this.ngControl.value : this._value);\n });\n }\n\n /**\n * Sets the selected option based on a value. If no option can be\n * found with the designated value, the select trigger is cleared.\n */\n private setSelectionByValue(value: any | any[]) {\n if (this.multiple && value) {\n if (!Array.isArray(value)) { throw getMcSelectNonArrayValueError(); }\n\n this.tree.setOptionsFromValues(value);\n\n this.sortValues();\n } else {\n this.tree.setOptionsFromValues([value]);\n }\n\n this.changeDetectorRef.detectChanges();\n }\n\n private initKeyManager() {\n this.originalOnKeyDown = this.tree.onKeyDown;\n\n this.tree.onKeyDown = () => {};\n\n this.tree.keyManager.tabOut\n .pipe(takeUntil(this.destroy))\n .subscribe(() => {\n // Restore focus to the trigger before closing. Ensures that the focus\n // position won't be lost if the user got focus into the overlay.\n this.focus();\n this.close();\n });\n\n this.tree.keyManager.change\n .pipe(takeUntil(this.destroy))\n .subscribe(() => {\n if (this._panelOpen && this.panel) {\n this.scrollActiveOptionIntoView();\n } else if (!this._panelOpen && !this.multiple && this.tree.keyManager.activeItem) {\n this.tree.keyManager.activeItem.selectViaInteraction();\n }\n });\n }\n\n /** Sorts the selected values in the selected based on their order in the panel. */\n private sortValues() {\n if (this.multiple) {\n const options = this.options.toArray();\n\n this.selectionModel.sort((a, b) => {\n return this.sortComparator ? this.sortComparator(a, b, options) :\n options.indexOf(a) - options.indexOf(b);\n });\n\n this.stateChanges.next();\n }\n }\n\n /**\n * Highlights the selected item. If no option is selected, it will highlight\n * the first item instead.\n */\n private highlightCorrectOption() {\n if (this.empty || !this.tree.keyManager) { return; }\n\n const firstSelectedValue = this.multiple ? this.selectedValues[0] : this.selectedValues;\n\n const selectedOption = this.options.find((option) => option.value === firstSelectedValue);\n\n if (selectedOption) {\n this.tree.keyManager.setActiveItem(selectedOption);\n }\n }\n\n /** Scrolls the active option into view. */\n private scrollActiveOptionIntoView() {\n const activeOptionIndex = this.tree.keyManager.activeItemIndex || 0;\n\n this.panel.nativeElement.scrollTop = getOptionScrollPosition(\n activeOptionIndex,\n this.tree.getItemHeight(),\n this.panel.nativeElement.scrollTop,\n SELECT_PANEL_MAX_HEIGHT\n );\n }\n\n /**\n * Sets the x-offset of the overlay panel in relation to the trigger's top start corner.\n * This must be adjusted to align the selected option text over the trigger text when\n * the panel opens. Will change based on LTR or RTL text direction. Note that the offset\n * can't be calculated until the panel has been attached, because we need to know the\n * content width in order to constrain the panel within the viewport.\n */\n private calculateOverlayOffsetX() {\n const overlayRect = this.overlayDir.overlayRef.overlayElement.getBoundingClientRect();\n const viewportSize = this.viewportRuler.getViewportSize();\n const isRtl = this.isRtl();\n /* tslint:disable-next-line:no-magic-numbers */\n const paddingWidth = SELECT_PANEL_PADDING_X * 2;\n let offsetX: number = SELECT_PANEL_PADDING_X;\n\n // Invert the offset in LTR.\n if (!isRtl) { offsetX *= -1; }\n\n // Determine how much the select overflows on each side.\n const leftOverflow = 0 - (overlayRect.left + offsetX - (isRtl ? paddingWidth : 0));\n const rightOverflow = overlayRect.right + offsetX - viewportSize.width\n + (isRtl ? 0 : paddingWidth);\n\n // If the element overflows on either side, reduce the offset to allow it to fit.\n if (leftOverflow > 0) {\n offsetX += leftOverflow + SELECT_PANEL_VIEWPORT_PADDING;\n } else if (rightOverflow > 0) {\n offsetX -= rightOverflow + SELECT_PANEL_VIEWPORT_PADDING;\n }\n\n // Set the offset directly in order to avoid having to go through change detection and\n // potentially triggering \"changed after it was checked\" errors. Round the value to avoid\n // blurry content in some browsers.\n this.overlayDir.offsetX = Math.round(offsetX);\n this.overlayDir.overlayRef.updatePosition();\n }\n\n /** Comparison function to specify which option is displayed. Defaults to object equality. */\n private _compareWith = (o1: any, o2: any) => o1 === o2;\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { CdkTreeModule } from '@ptsecurity/cdk/tree';\nimport { MC_SELECT_SCROLL_STRATEGY_PROVIDER, McPseudoCheckboxModule } from '@ptsecurity/mosaic/core';\nimport { McIconModule } from '@ptsecurity/mosaic/icon';\nimport { McTagsModule } from '@ptsecurity/mosaic/tags';\nimport { McTreeModule } from '@ptsecurity/mosaic/tree';\n\nimport { McTreeSelect, McTreeSelectTrigger } from './tree-select.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n OverlayModule,\n CdkTreeModule,\n McTreeModule,\n McIconModule,\n McTagsModule,\n McPseudoCheckboxModule\n ],\n exports: [McTreeSelect, McTreeSelectTrigger, CommonModule],\n declarations: [McTreeSelect, McTreeSelectTrigger],\n providers: [MC_SELECT_SCROLL_STRATEGY_PROVIDER]\n})\nexport class McTreeSelectModule {}\n"]}
@@ -1,16 +0,0 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/common"),require("@angular/core"),require("@ptsecurity/cdk/tree"),require("@ptsecurity/mosaic/core"),require("rxjs/operators"),require("@angular/cdk/coercion"),require("@ptsecurity/cdk/keycodes"),require("rxjs"),require("@angular/cdk/collections"),require("@angular/forms"),require("@ptsecurity/cdk/a11y")):"function"==typeof define&&define.amd?define("@ptsecurity/mosaic/tree",["exports","@angular/common","@angular/core","@ptsecurity/cdk/tree","@ptsecurity/mosaic/core","rxjs/operators","@angular/cdk/coercion","@ptsecurity/cdk/keycodes","rxjs","@angular/cdk/collections","@angular/forms","@ptsecurity/cdk/a11y"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).ptsecurity=e.ptsecurity||{},e.ptsecurity.mosaic=e.ptsecurity.mosaic||{},e.ptsecurity.mosaic.tree={}),e.ng.common,e.ng.core,e.mc.cdk.tree,e.ptsecurity.mosaic.core,e.rxjs.operators,e.ng.cdk.coercion,e.mc.cdk.keycodes,e.rxjs,e.ng.cdk.collections,e.ng.forms,e.mc.cdk.a11y)}(this,(function(e,t,n,o,r,i,s,c,a,u,l,d){"use strict";
2
- /*! *****************************************************************************
3
- Copyright (c) Microsoft Corporation.
4
-
5
- Permission to use, copy, modify, and/or distribute this software for any
6
- purpose with or without fee is hereby granted.
7
-
8
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
9
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
10
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
11
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
12
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
13
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
14
- PERFORMANCE OF THIS SOFTWARE.
15
- ***************************************************************************** */var p=function(e,t){return(p=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)};function h(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}p(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}Object.create;function f(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var o,r,i=n.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(o=i.next()).done;)s.push(o.value)}catch(e){r={error:e}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(r)throw r.error}}return s}function g(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(f(arguments[t]));return e}Object.create;var y=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return h(t,e),t}(o.CdkTreeNodeDef);y.decorators=[{type:n.Directive,args:[{selector:"[mcTreeNodeDef]",inputs:["when: mcTreeNodeDefWhen"],providers:[{provide:o.CdkTreeNodeDef,useExisting:y}]}]}],y.propDecorators={data:[{type:n.Input,args:["mcTreeNode"]}]};var m=function(e){function t(){var t=e.apply(this,g(arguments))||this;return t.baseLeftPadding=12,t.iconWidth=20,t}return h(t,e),Object.defineProperty(t.prototype,"level",{get:function(){return this._level},set:function(e){this.setLevelInput(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"indent",{get:function(){return this._indent},set:function(e){this.setIndentInput(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"leftPadding",{get:function(){return(this.withIcon?0:this.iconWidth)+this.baseLeftPadding},enumerable:!1,configurable:!0}),t.prototype.paddingIndent=function(){var e=this.treeNode.data&&this.tree.treeControl.getLevel?this.tree.treeControl.getLevel(this.treeNode.data):0,t=this.level||e;return t>0?t*this._indent+this.leftPadding+"px":this.leftPadding+"px"},t.prototype.ngOnInit=function(){this.withIcon=this.tree.treeControl.isExpandable(this.treeNode.data),this.setPadding()},t}(o.CdkTreeNodePadding);m.decorators=[{type:n.Directive,args:[{selector:"[mcTreeNodePadding]",providers:[{provide:o.CdkTreeNodePadding,useExisting:m}]}]}],m.propDecorators={level:[{type:n.Input,args:["mcTreeNodePadding"]}],indent:[{type:n.Input,args:["mcTreeNodePaddingIndent"]}]};var b=function(){function e(e,t){var n=this;this.tree=e,this.treeNode=t,this.disabled=!1,this._recursive=!1,this.tree.treeControl.filterValue.pipe(i.map((function(e){return(null==e?void 0:e.length)>0}))).subscribe((function(e){return n.disabled=e}))}return Object.defineProperty(e.prototype,"recursive",{get:function(){return this._recursive},set:function(e){this._recursive=e},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"iconState",{get:function(){return this.disabled||this.tree.treeControl.isExpanded(this.node)},enumerable:!1,configurable:!0}),e.prototype.toggle=function(e){this.recursive?this.tree.treeControl.toggleDescendants(this.treeNode.data):this.tree.treeControl.toggle(this.treeNode.data),e.stopPropagation()},e}();b.decorators=[{type:n.Component,args:[{selector:"mc-tree-node-toggle",template:'\n <i class="mc mc-icon mc-angle-down-S_16"></i>\n ',host:{class:"mc-tree-node-toggle","[class.mc-opened]":"iconState","[attr.disabled]":"disabled || null","(click)":"toggle($event)"},encapsulation:n.ViewEncapsulation.None}]}],b.ctorParameters=function(){return[{type:o.CdkTree},{type:o.CdkTreeNode}]},b.propDecorators={node:[{type:n.Input}],recursive:[{type:n.Input,args:["cdkTreeNodeToggleRecursive"]}]};var v=function(){function e(e,t){var n=this;this.tree=e,this.treeNode=t,this.disabled=!1,this._recursive=!1,this.tree.treeControl.filterValue.pipe(i.map((function(e){return e.length>0}))).subscribe((function(e){return n.disabled=e}))}return Object.defineProperty(e.prototype,"recursive",{get:function(){return this._recursive},set:function(e){this._recursive=e},enumerable:!1,configurable:!0}),e.prototype.toggle=function(e){this.recursive?this.tree.treeControl.toggleDescendants(this.treeNode.data):this.tree.treeControl.toggle(this.treeNode.data),e.stopPropagation()},e}();v.decorators=[{type:n.Directive,args:[{selector:"[mcTreeNodeToggle]",host:{"[attr.disabled]":"disabled || null","(click)":"toggle($event)"}}]}],v.ctorParameters=function(){return[{type:o.CdkTree},{type:o.CdkTreeNode}]},v.propDecorators={recursive:[{type:n.Input,args:["cdkTreeNodeToggleRecursive"]}]};var C=new n.InjectionToken("MC_TREE_OPTION_PARENT_COMPONENT"),O=function(e,t){void 0===t&&(t=!1),this.source=e,this.isUserInput=t},k=0,M=function(e){function t(t,o,r,i){var s=e.call(this,t,i)||this;return s.changeDetectorRef=o,s.ngZone=r,s.tree=i,s.onFocus=new a.Subject,s.onBlur=new a.Subject,s._disabled=!1,s.onSelectionChange=new n.EventEmitter,s._selected=!1,s._id="mc-tree-option-"+k++,s.hasFocus=!1,s}return h(t,e),Object.defineProperty(t.prototype,"value",{get:function(){return this._value},set:function(e){this._value=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"disabled",{get:function(){return this._disabled||this.tree&&this.tree.disabled},set:function(e){var t=s.coerceBooleanProperty(e);t!==this._disabled&&(this._disabled=t)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"showCheckbox",{get:function(){return void 0!==this._showCheckbox?this._showCheckbox:this.tree.showCheckbox},set:function(e){this._showCheckbox=s.coerceBooleanProperty(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"selected",{get:function(){return this._selected},set:function(e){var t=s.coerceBooleanProperty(e);t!==this._selected&&this.setSelected(t)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"id",{get:function(){return this._id},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"multiple",{get:function(){return this.tree.multiple},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"viewValue",{get:function(){return(this.getHostElement().textContent||"").trim()},enumerable:!1,configurable:!0}),t.prototype.ngAfterContentInit=function(){this.value=this.tree.treeControl.getValue(this.data)},t.prototype.toggle=function(){this.selected=!this.selected},t.prototype.setSelected=function(e){this._selected!==e&&this.tree.selectionModel&&(this._selected=e,e?this.tree.selectionModel.select(this.data):this.tree.selectionModel.deselect(this.data),this.changeDetectorRef.markForCheck())},t.prototype.focus=function(e){var t=this;"program"!==e&&(this.disabled||this.hasFocus||(this.elementRef.nativeElement.focus(),this.onFocus.next({option:this}),Promise.resolve().then((function(){t.hasFocus=!0,t.changeDetectorRef.markForCheck()}))))},t.prototype.blur=function(){var e=this;this.ngZone.onStable.asObservable().pipe(i.take(1)).subscribe((function(){e.ngZone.run((function(){e.hasFocus=!1,e.onBlur.next({option:e})}))}))},t.prototype.getHeight=function(){var e=this.elementRef.nativeElement.getClientRects();return e.length?e[0].height:0},t.prototype.select=function(){this._selected||(this._selected=!0,this.changeDetectorRef.markForCheck(),this.emitSelectionChangeEvent())},t.prototype.deselect=function(){this._selected&&(this._selected=!1,this.changeDetectorRef.markForCheck())},t.prototype.selectViaInteraction=function(e){if(!this.disabled){this.changeDetectorRef.markForCheck(),this.emitSelectionChangeEvent(!0);var t=!!e&&c.hasModifierKey(e,"shiftKey"),n=!!e&&c.hasModifierKey(e,"ctrlKey");this.tree.setSelectedOptionsByClick(this,t,n)}},t.prototype.emitSelectionChangeEvent=function(e){void 0===e&&(e=!1),this.onSelectionChange.emit(new O(this,e))},t.prototype.getHostElement=function(){return this.elementRef.nativeElement},t.prototype.markForCheck=function(){this.changeDetectorRef.markForCheck()},t}(o.CdkTreeNode);M.decorators=[{type:n.Component,args:[{selector:"mc-tree-option",exportAs:"mcTreeOption",template:'<ng-content select="[mc-icon]"></ng-content>\n\n<ng-content select="mc-tree-node-toggle"></ng-content>\n\n<mc-pseudo-checkbox\n *ngIf="showCheckbox"\n [state]="selected ? \'checked\' : \'unchecked\'"\n [disabled]="disabled">\n</mc-pseudo-checkbox>\n\n<span class="mc-option-text mc-no-select"><ng-content></ng-content></span>\n\n<div class="mc-option-overlay"></div>\n',host:{"[attr.id]":"id","[attr.tabindex]":"-1","[attr.disabled]":"disabled || null",class:"mc-tree-option","[class.mc-selected]":"selected","[class.mc-focused]":"hasFocus","(focusin)":"focus()","(blur)":"blur()","(click)":"selectViaInteraction($event)"},changeDetection:n.ChangeDetectionStrategy.OnPush,encapsulation:n.ViewEncapsulation.None,providers:[{provide:o.CdkTreeNode,useExisting:M}]}]}],M.ctorParameters=function(){return[{type:n.ElementRef},{type:n.ChangeDetectorRef},{type:n.NgZone},{type:void 0,decorators:[{type:n.Inject,args:[C]}]}]},M.propDecorators={disabled:[{type:n.Input}],showCheckbox:[{type:n.Input}],onSelectionChange:[{type:n.Output}]};var x={provide:l.NG_VALUE_ACCESSOR,useExisting:n.forwardRef((function(){return I})),multi:!0},_=function(e,t){this.source=e,this.option=t},E=function(e,t){this.source=e,this.option=t},I=function(e){function t(t,o,i,s){var c=e.call(this,o,i)||this;return c.elementRef=t,c.renderedOptions=new n.QueryList,c.resetFocusedItemOnBlur=!0,c.navigationChange=new n.EventEmitter,c.selectionChange=new n.EventEmitter,c.multipleMode=null,c.userTabIndex=null,c.sortedNodes=[],c._autoSelect=!0,c._noUnselectLast=!0,c._disabled=!1,c._tabIndex=0,c.destroy=new a.Subject,c.onChange=function(){},c.onTouched=function(){},c.updateRenderedOptions=function(){var e=[];c.sortedNodes.forEach((function(t){var n=c.unorderedOptions.find((function(e){return e.value===c.treeControl.getValue(t)}));n&&e.push(n)})),c.renderedOptions.reset(e),c.renderedOptions.notifyOnChanges()},s===r.MultipleMode.CHECKBOX||s===r.MultipleMode.KEYBOARD?c.multipleMode=s:null!==s&&(c.multipleMode=r.MultipleMode.CHECKBOX),c.multipleMode===r.MultipleMode.CHECKBOX&&(c.autoSelect=!1,c.noUnselectLast=!1),c.selectionModel=new u.SelectionModel(c.multiple),c}return h(t,e),Object.defineProperty(t.prototype,"autoSelect",{get:function(){return this._autoSelect},set:function(e){this._autoSelect=s.coerceBooleanProperty(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"optionFocusChanges",{get:function(){return a.merge.apply(void 0,g(this.renderedOptions.map((function(e){return e.onFocus}))))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"optionBlurChanges",{get:function(){return a.merge.apply(void 0,g(this.renderedOptions.map((function(e){return e.onBlur}))))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"multiple",{get:function(){return!!this.multipleMode},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"noUnselectLast",{get:function(){return this._noUnselectLast},set:function(e){this._noUnselectLast=s.coerceBooleanProperty(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"disabled",{get:function(){return this._disabled},set:function(e){var t=s.coerceBooleanProperty(e);this._disabled!==t&&(this._disabled=t,this.markOptionsForCheck())},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"tabIndex",{get:function(){return this.disabled?-1:this._tabIndex},set:function(e){this._tabIndex=e,this.userTabIndex=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"showCheckbox",{get:function(){return this.multipleMode===r.MultipleMode.CHECKBOX},enumerable:!1,configurable:!0}),t.prototype.ngAfterContentInit=function(){var e=this;this.unorderedOptions.changes.subscribe(this.updateRenderedOptions),this.keyManager=new d.FocusKeyManager(this.renderedOptions).withVerticalOrientation(!0).withHorizontalOrientation(null),this.keyManager.change.pipe(i.takeUntil(this.destroy)).subscribe((function(){e.keyManager.activeItem&&(e.emitNavigationEvent(e.keyManager.activeItem),e.autoSelect&&!e.keyManager.activeItem.disabled&&e.updateOptionsFocus())})),this.keyManager.tabOut.pipe(i.takeUntil(this.destroy)).subscribe((function(){return e.allowFocusEscape()})),this.selectionModel.changed.pipe(i.takeUntil(this.destroy)).subscribe((function(){e.onChange(e.getSelectedValues()),e.renderedOptions.notifyOnChanges()})),this.renderedOptions.changes.pipe(i.takeUntil(this.destroy)).subscribe((function(t){e.resetOptions(),e.updateTabIndex(),t.forEach((function(t){t.deselect(),e.getSelectedValues().forEach((function(e){t.value===e&&t.select()})),t.changeDetectorRef.detectChanges()}))}))},t.prototype.ngOnDestroy=function(){this.destroy.next(),this.destroy.complete()},t.prototype.focus=function(e){0===this.renderedOptions.length||this.isFocusReceivedFromNestedOption(e)||this.keyManager.setFirstItemActive()},t.prototype.blur=function(){!this.hasFocusedOption()&&this.resetFocusedItemOnBlur&&this.keyManager.setActiveItem(-1),this.onTouched(),this.changeDetectorRef.markForCheck()},t.prototype.onKeyDown=function(e){switch(this.keyManager.setFocusOrigin("keyboard"),e.keyCode){case c.DOWN_ARROW:this.keyManager.setNextItemActive();break;case c.UP_ARROW:this.keyManager.setPreviousItemActive();break;case c.LEFT_ARROW:return this.keyManager.activeItem&&this.treeControl.collapse(this.keyManager.activeItem.data),void e.preventDefault();case c.RIGHT_ARROW:return this.keyManager.activeItem&&this.treeControl.expand(this.keyManager.activeItem.data),void e.preventDefault();case c.SPACE:case c.ENTER:this.toggleFocusedOption(),e.preventDefault();break;case c.HOME:this.keyManager.setFirstItemActive(),e.preventDefault();break;case c.END:this.keyManager.setLastItemActive(),e.preventDefault();break;case c.PAGE_UP:this.keyManager.setPreviousPageItemActive(),e.preventDefault();break;case c.PAGE_DOWN:this.keyManager.setNextPageItemActive(),e.preventDefault();break;default:return}this.keyManager.activeItem&&this.setSelectedOptionsByKey(this.keyManager.activeItem,c.hasModifierKey(e,"shiftKey"),c.hasModifierKey(e,"ctrlKey"))},t.prototype.updateScrollSize=function(){this.renderedOptions.first&&this.keyManager.withScrollSize(Math.floor(this.getHeight()/this.renderedOptions.first.getHeight()))},t.prototype.setSelectedOptionsByKey=function(e,t,n){if(t&&this.multiple)this.setSelectedOptions(e);else if(n){if(!this.canDeselectLast(e))return}else this.autoSelect&&(this.selectionModel.clear(),this.selectionModel.toggle(e.data));this.emitChangeEvent(e)},t.prototype.setSelectedOptionsByClick=function(e,t,n){if(t||n||this.keyManager.setActiveItem(e),t&&this.multiple)this.setSelectedOptions(e);else if(n){if(!this.canDeselectLast(e))return;this.selectionModel.toggle(e.data)}else this.autoSelect?(this.selectionModel.clear(),this.selectionModel.toggle(e.data)):this.selectionModel.toggle(e.data);this.emitChangeEvent(e)},t.prototype.setSelectedOptions=function(e){var t,n=this,o=e.selected,r=this.keyManager.previousActiveItemIndex,i=this.keyManager.previousActiveItemIndex=this.keyManager.activeItemIndex;i!==r&&(r>i&&(r=(t=f([i,r],2))[0],i=t[1]),this.renderedOptions.toArray().slice(r,i+1).filter((function(e){return!e.disabled})).forEach((function(e){e===n.keyManager.activeItem&&e.selected&&n.noUnselectLast||e.setSelected(!o)})))},t.prototype.setFocusedOption=function(e){this.keyManager.setActiveItem(e)},t.prototype.toggleFocusedOption=function(){var e=this.keyManager.activeItem;!e||e.selected&&!this.canDeselectLast(e)||(e.toggle(),this.emitChangeEvent(e))},t.prototype.renderNodeChanges=function(t,n,o,r){void 0===n&&(n=this.dataDiffer),void 0===o&&(o=this.nodeOutlet.viewContainer),e.prototype.renderNodeChanges.call(this,t,n,o,r),this.sortedNodes=this.getSortedNodes(o),this.updateScrollSize(),this.nodeOutlet.changeDetectorRef.detectChanges()},t.prototype.getHeight=function(){var e=this.elementRef.nativeElement.getClientRects();return e.length?e[0].height:0},t.prototype.getItemHeight=function(){return this.renderedOptions.first?this.renderedOptions.first.getHeight():0},t.prototype.emitNavigationEvent=function(e){this.navigationChange.emit(new _(this,e))},t.prototype.emitChangeEvent=function(e){this.selectionChange.emit(new _(this,e))},t.prototype.writeValue=function(e){if(this.multiple&&e&&!Array.isArray(e))throw r.getMcSelectNonArrayValueError();e?this.setOptionsFromValues(this.multiple?e:[e]):this.selectionModel.clear()},t.prototype.registerOnChange=function(e){this.onChange=e},t.prototype.registerOnTouched=function(e){this.onTouched=e},t.prototype.setDisabledState=function(e){this._disabled=e,this.changeDetectorRef.markForCheck()},t.prototype.setOptionsFromValues=function(e){var t,n=this;this.selectionModel.clear();var o=e.reduce((function(e,t){return n.treeControl.hasValue(t)?g(e,[n.treeControl.hasValue(t)]):g(e)}),[]);(t=this.selectionModel).select.apply(t,g(o))},t.prototype.getSelectedValues=function(){var e=this;return this.selectionModel.selected.map((function(t){return e.treeControl.getValue(t)}))},t.prototype.updateTabIndex=function(){this._tabIndex=0===this.renderedOptions.length?-1:0},t.prototype.getSortedNodes=function(e){for(var t=[],n=0;n<e.length;n++){var o=e.get(n);t.push(o.context.$implicit)}return t},t.prototype.allowFocusEscape=function(){var e=this;-1!==this._tabIndex&&(this._tabIndex=-1,setTimeout((function(){e._tabIndex=e.userTabIndex||0,e.changeDetectorRef.markForCheck()})))},t.prototype.resetOptions=function(){this.dropSubscriptions(),this.listenToOptionsFocus()},t.prototype.dropSubscriptions=function(){this.optionFocusSubscription&&(this.optionFocusSubscription.unsubscribe(),this.optionFocusSubscription=null),this.optionBlurSubscription&&(this.optionBlurSubscription.unsubscribe(),this.optionBlurSubscription=null)},t.prototype.listenToOptionsFocus=function(){var e=this;this.optionFocusSubscription=this.optionFocusChanges.subscribe((function(t){var n=e.renderedOptions.toArray().indexOf(t.option);e.renderedOptions.filter((function(e){return e.hasFocus})).forEach((function(e){return e.hasFocus=!1})),e.isValidIndex(n)&&e.keyManager.updateActiveItem(n)})),this.optionBlurSubscription=this.optionBlurChanges.subscribe((function(){return e.blur()}))},t.prototype.isValidIndex=function(e){return e>=0&&e<this.renderedOptions.length},t.prototype.hasFocusedOption=function(){return this.renderedOptions.some((function(e){return e.hasFocus}))},t.prototype.markOptionsForCheck=function(){this.renderedOptions.forEach((function(e){return e.markForCheck()}))},t.prototype.updateOptionsFocus=function(){this.renderedOptions.filter((function(e){return e.hasFocus})).forEach((function(e){return e.hasFocus=!1}))},t.prototype.canDeselectLast=function(e){return!(this.noUnselectLast&&1===this.selectionModel.selected.length&&e.selected)},t.prototype.isFocusReceivedFromNestedOption=function(e){return!(!e||!e.relatedTarget)&&e.relatedTarget.classList.contains("mc-tree-option")},t}(o.CdkTree);I.decorators=[{type:n.Component,args:[{selector:"mc-tree-selection",exportAs:"mcTreeSelection",template:"<ng-container cdkTreeNodeOutlet></ng-container>",host:{class:"mc-tree-selection","[attr.tabindex]":"tabIndex","[attr.disabled]":"disabled || null","(blur)":"blur()","(focus)":"focus($event)","(keydown)":"onKeyDown($event)","(window:resize)":"updateScrollSize()"},encapsulation:n.ViewEncapsulation.None,changeDetection:n.ChangeDetectionStrategy.OnPush,providers:[x,{provide:C,useExisting:I},{provide:o.CdkTree,useExisting:I}],styles:[".mc-tree-selection{display:block}.mc-tree-option{display:flex;align-items:center;padding-right:var(--mc-tree-size-padding-right,16px);height:var(--mc-tree-size-node-height,28px);word-wrap:break-word;border:var(--mc-tree-size-border-width,2px) solid transparent}.mc-tree-option>.mc-icon{margin-right:4px;cursor:pointer}.mc-tree-option:focus{outline:none}.mc-tree-option:not([disabled]){cursor:pointer}.mc-tree-option .mc-pseudo-checkbox{margin-right:8px}.mc-tree-node-toggle{margin-right:4px;cursor:pointer}.mc-tree-node-toggle .mc-icon{transform:rotate(-90deg)}.mc-tree-node-toggle.mc-opened .mc-icon{transform:rotate(0)}.mc-tree-node-toggle[disabled]{cursor:default}"]}]}],I.ctorParameters=function(){return[{type:n.ElementRef},{type:n.IterableDiffers},{type:n.ChangeDetectorRef},{type:r.MultipleMode,decorators:[{type:n.Attribute,args:["multiple"]}]}]},I.propDecorators={nodeOutlet:[{type:n.ViewChild,args:[o.CdkTreeNodeOutlet,{static:!0}]}],unorderedOptions:[{type:n.ContentChildren,args:[M]}],treeControl:[{type:n.Input}],navigationChange:[{type:n.Output}],selectionChange:[{type:n.Output}],autoSelect:[{type:n.Input}],noUnselectLast:[{type:n.Input}],disabled:[{type:n.Input}],tabIndex:[{type:n.Input}]};var S=[I,M,y,m,b,v],N=function(){};N.decorators=[{type:n.NgModule,args:[{imports:[t.CommonModule,o.CdkTreeModule,r.McPseudoCheckboxModule],exports:S,declarations:S}]}];var T,D=function(){function e(e,t,n,o){this.transformFunction=e,this.getLevel=t,this.isExpandable=n,this.getChildren=o}return e.prototype.flattenNode=function(e,t,n,o){var r=this,s=this.transformFunction(e,t,o);if(n.push(s),this.isExpandable(s)){var c=this.getChildren(e);c&&(Array.isArray(c)?this.flattenChildren(c,t,n,s):c.pipe(i.take(1)).subscribe((function(e){r.flattenChildren(e,t,n,s)})))}return n},e.prototype.flattenChildren=function(e,t,n,o){var r=this;e.forEach((function(e){r.flattenNode(e,t+1,n,o)}))},e.prototype.flattenNodes=function(e){var t=this,n=[];return e.forEach((function(e){return t.flattenNode(e,0,n,null)})),n},e.prototype.expandFlattenedNodes=function(e,t){var n=this,o=[],r=[];return r[0]=!0,e.forEach((function(e){for(var i=!0,s=0;s<=n.getLevel(e);s++)i=i&&r[s];i&&o.push(e),n.isExpandable(e)&&(r[n.getLevel(e)+1]=t.isExpanded(e))})),o},e}();!function(e){e.Expansion="expansion",e.Filter="filter"}(T||(T={}));var P=function(e){function t(t,n,o){void 0===o&&(o=[]);var r=e.call(this)||this;return r.treeControl=t,r.treeFlattener=n,r.flattenedData=new a.BehaviorSubject([]),r.expandedData=new a.BehaviorSubject([]),r.filteredData=new a.BehaviorSubject([]),r._data=new a.BehaviorSubject(o),r}return h(t,e),Object.defineProperty(t.prototype,"data",{get:function(){return this._data.value},set:function(e){this._data.next(e),this.flattenedData.next(this.treeFlattener.flattenNodes(this.data)),this.treeControl.dataNodes=this.flattenedData.value},enumerable:!1,configurable:!0}),t.prototype.connect=function(e){var t=this;return a.merge(e.viewChange,this.treeControl.expansionModel.changed.pipe(i.map((function(e){return{type:T.Expansion,value:e}}))),this.treeControl.filterValue.pipe(i.map((function(e){return{type:T.Filter,value:e}}))),this.flattenedData).pipe(i.map((function(e){return e.type===T.Filter&&e.value&&e.value.length>0?t.filterHandler():t.expansionHandler()})))},t.prototype.filterHandler=function(){return this.filteredData.next(this.treeControl.filterModel.selected),this.filteredData.value},t.prototype.expansionHandler=function(){var e=this.treeFlattener.expandFlattenedNodes(this.flattenedData.value,this.treeControl);return this.expandedData.next(e),this.expandedData.value},t.prototype.disconnect=function(){},t}(u.DataSource),F=function(e){function t(){var t=e.apply(this,g(arguments))||this;return t._data=new a.BehaviorSubject([]),t}return h(t,e),Object.defineProperty(t.prototype,"data",{get:function(){return this._data.value},set:function(e){this._data.next(e)},enumerable:!1,configurable:!0}),t.prototype.connect=function(e){var t=this;return a.merge.apply(void 0,g([e.viewChange,this._data])).pipe(i.map((function(){return t.data})))},t.prototype.disconnect=function(){},t}(u.DataSource);e.MC_SELECTION_TREE_VALUE_ACCESSOR=x,e.MC_TREE_OPTION_PARENT_COMPONENT=C,e.McTreeFlatDataSource=P,e.McTreeFlattener=D,e.McTreeModule=N,e.McTreeNavigationChange=_,e.McTreeNestedDataSource=F,e.McTreeNodeDef=y,e.McTreeNodePadding=m,e.McTreeNodeToggleComponent=b,e.McTreeNodeToggleDirective=v,e.McTreeOption=M,e.McTreeOptionChange=O,e.McTreeSelection=I,e.McTreeSelectionChange=E,Object.defineProperty(e,"__esModule",{value:!0})}));
16
- //# sourceMappingURL=ptsecurity-mosaic-tree.umd.min.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","../../../packages/mosaic/tree/node.directive.ts","../../../packages/mosaic/tree/padding.directive.ts","../../../packages/mosaic/tree/toggle.ts","../../../packages/mosaic/tree/tree-option.component.ts","../../../packages/mosaic/tree/tree-selection.component.ts","../../../packages/mosaic/tree/tree.module.ts","../../../packages/mosaic/tree/data-source/flat-data-source.ts","../../../packages/mosaic/tree/data-source/nested-data-source.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","this","constructor","create","__read","o","n","m","Symbol","iterator","r","e","i","ar","next","done","push","value","error","__spread","arguments","length","concat","McTreeNodeDef","_super","CdkTreeNodeDef","Directive","args","selector","inputs","providers","provide","useExisting","Input","McTreeNodePadding","_this","apply","baseLeftPadding","iconWidth","defineProperty","_level","setLevelInput","_indent","indent","setIndentInput","withIcon","paddingIndent","nodeLevel","treeNode","data","tree","treeControl","getLevel","level","leftPadding","ngOnInit","isExpandable","setPadding","CdkTreeNodePadding","McTreeNodeToggleComponent","disabled","_recursive","filterValue","pipe","map","subscribe","state","isExpanded","node","toggle","event","recursive","toggleDescendants","stopPropagation","Component","template","host","class","[class.mc-opened]","[attr.disabled]","(click)","encapsulation","ViewEncapsulation","None","CdkTree","CdkTreeNode","McTreeNodeToggleDirective","MC_TREE_OPTION_PARENT_COMPONENT","InjectionToken","source","isUserInput","uniqueIdCounter","McTreeOption","elementRef","changeDetectorRef","ngZone","onFocus","Subject","onBlur","_disabled","onSelectionChange","EventEmitter","_selected","_id","hasFocus","_value","newValue","coerceBooleanProperty","undefined","_showCheckbox","showCheckbox","isSelected","setSelected","multiple","getHostElement","textContent","trim","ngAfterContentInit","getValue","selected","selectionModel","select","deselect","markForCheck","focus","focusOrigin","nativeElement","option","Promise","resolve","then","blur","onStable","asObservable","take","run","getHeight","clientRects","getClientRects","height","emitSelectionChangeEvent","selectViaInteraction","$event","shiftKey","hasModifierKey","ctrlKey","setSelectedOptionsByClick","emit","McTreeOptionChange","exportAs","[attr.id]","[attr.tabindex]","[class.mc-selected]","[class.mc-focused]","(focusin)","(blur)","changeDetection","ChangeDetectionStrategy","OnPush","ElementRef","ChangeDetectorRef","NgZone","Inject","Output","MC_SELECTION_TREE_VALUE_ACCESSOR","NG_VALUE_ACCESSOR","forwardRef","McTreeSelection","multi","differs","renderedOptions","QueryList","resetFocusedItemOnBlur","navigationChange","selectionChange","multipleMode","userTabIndex","sortedNodes","_autoSelect","_noUnselectLast","_tabIndex","destroy","onChange","onTouched","updateRenderedOptions","orderedOptions","forEach","found","unorderedOptions","find","reset","notifyOnChanges","MultipleMode","CHECKBOX","KEYBOARD","autoSelect","noUnselectLast","SelectionModel","merge","rawValue","markOptionsForCheck","changes","keyManager","FocusKeyManager","withVerticalOrientation","withHorizontalOrientation","change","takeUntil","activeItem","emitNavigationEvent","updateOptionsFocus","tabOut","allowFocusEscape","changed","getSelectedValues","options","resetOptions","updateTabIndex","selectedValue","detectChanges","ngOnDestroy","complete","isFocusReceivedFromNestedOption","setFirstItemActive","hasFocusedOption","setActiveItem","onKeyDown","setFocusOrigin","keyCode","DOWN_ARROW","setNextItemActive","UP_ARROW","setPreviousItemActive","LEFT_ARROW","collapse","preventDefault","RIGHT_ARROW","expand","SPACE","ENTER","toggleFocusedOption","HOME","END","setLastItemActive","PAGE_UP","setPreviousPageItemActive","PAGE_DOWN","setNextPageItemActive","setSelectedOptionsByKey","updateScrollSize","first","withScrollSize","Math","floor","setSelectedOptions","canDeselectLast","clear","emitChangeEvent","selectedOptionState","fromIndex","previousActiveItemIndex","toIndex","activeItemIndex","_a","toArray","slice","filter","item","renderedOption","setFocusedOption","focusedOption","renderNodeChanges","dataDiffer","viewContainer","parentData","nodeOutlet","getSortedNodes","getItemHeight","McTreeNavigationChange","writeValue","isArray","getMcSelectNonArrayValueError","setOptionsFromValues","registerOnChange","fn","registerOnTouched","setDisabledState","isDisabled","values","valuesToSelect","reduce","result","hasValue","array","viewRef","get","context","$implicit","setTimeout","dropSubscriptions","listenToOptionsFocus","optionFocusSubscription","unsubscribe","optionBlurSubscription","optionFocusChanges","index","indexOf","isValidIndex","updateActiveItem","optionBlurChanges","some","relatedTarget","classList","contains","(focus)","(keydown)","(window:resize)","IterableDiffers","decorators","type","Attribute","ViewChild","CdkTreeNodeOutlet","static","ContentChildren","MC_TREE_DIRECTIVES","NgModule","imports","CommonModule","CdkTreeModule","McPseudoCheckboxModule","exports","declarations","McTreeDataSourceChangeTypes","McTreeFlattener","transformFunction","getChildren","flattenNode","resultNodes","parent","flatNode","childrenNodes","flattenChildren","children","child","flattenNodes","structuredData","expandFlattenedNodes","nodes","results","currentExpand","McTreeFlatDataSource","treeFlattener","initialData","flattenedData","BehaviorSubject","expandedData","filteredData","_data","dataNodes","connect","collectionViewer","viewChange","expansionModel","Expansion","Filter","changeObj","filterHandler","expansionHandler","filterModel","expandedNodes","disconnect","DataSource","McTreeNestedDataSource"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { Directive, Input } from '@angular/core';\nimport { CdkTreeNodeDef } from '@ptsecurity/cdk/tree';\n\n\n@Directive({\n selector: '[mcTreeNodeDef]',\n inputs: ['when: mcTreeNodeDefWhen'],\n providers: [{ provide: CdkTreeNodeDef, useExisting: McTreeNodeDef }]\n})\nexport class McTreeNodeDef<T> extends CdkTreeNodeDef<T> {\n @Input('mcTreeNode') data: T;\n}\n","import { Directive, Input, OnInit } from '@angular/core';\nimport { CdkTreeNodePadding } from '@ptsecurity/cdk/tree';\n\n\n@Directive({\n selector: '[mcTreeNodePadding]',\n providers: [{ provide: CdkTreeNodePadding, useExisting: McTreeNodePadding }]\n})\nexport class McTreeNodePadding<T> extends CdkTreeNodePadding<T> implements OnInit {\n\n @Input('mcTreeNodePadding')\n get level(): number { return this._level; }\n set level(value: number) { this.setLevelInput(value); }\n\n @Input('mcTreeNodePaddingIndent')\n get indent(): number | string { return this._indent; }\n set indent(indent: number | string) { this.setIndentInput(indent); }\n\n baseLeftPadding: number = 12;\n\n withIcon: boolean;\n iconWidth: number = 20;\n\n get leftPadding(): number {\n return (this.withIcon ? 0 : this.iconWidth) + this.baseLeftPadding;\n }\n\n paddingIndent(): string | null {\n const nodeLevel = (this.treeNode.data && this.tree.treeControl.getLevel)\n ? this.tree.treeControl.getLevel(this.treeNode.data)\n : 0;\n\n const level = this.level || nodeLevel;\n\n return level > 0 ? `${(level * this._indent) + this.leftPadding}px` : `${this.leftPadding}px`;\n }\n\n ngOnInit(): void {\n this.withIcon = this.tree.treeControl.isExpandable(this.treeNode.data);\n\n this.setPadding();\n }\n}\n","import { Component, Directive, Input, ViewEncapsulation } from '@angular/core';\nimport { CdkTree, CdkTreeNode } from '@ptsecurity/cdk/tree';\nimport { map } from 'rxjs/operators';\n\n\n@Component({\n selector: 'mc-tree-node-toggle',\n template: `\n <i class=\"mc mc-icon mc-angle-down-S_16\"></i>\n `,\n host: {\n class: 'mc-tree-node-toggle',\n '[class.mc-opened]': 'iconState',\n '[attr.disabled]': 'disabled || null',\n '(click)': 'toggle($event)'\n },\n encapsulation: ViewEncapsulation.None\n})\nexport class McTreeNodeToggleComponent<T> {\n disabled: boolean = false;\n\n @Input() node: T;\n\n @Input('cdkTreeNodeToggleRecursive')\n get recursive(): boolean {\n return this._recursive;\n }\n\n set recursive(value: boolean) {\n this._recursive = value;\n }\n\n private _recursive = false;\n\n get iconState(): any {\n return this.disabled || this.tree.treeControl.isExpanded(this.node);\n }\n\n constructor(private tree: CdkTree<T>, private treeNode: CdkTreeNode<T>) {\n this.tree.treeControl.filterValue\n .pipe(map((value) => value?.length > 0))\n .subscribe((state: boolean) => this.disabled = state);\n }\n\n toggle(event: Event): void {\n this.recursive\n ? this.tree.treeControl.toggleDescendants(this.treeNode.data)\n : this.tree.treeControl.toggle(this.treeNode.data);\n\n event.stopPropagation();\n }\n}\n\n@Directive({\n selector: '[mcTreeNodeToggle]',\n host: {\n '[attr.disabled]': 'disabled || null',\n '(click)': 'toggle($event)'\n }\n})\nexport class McTreeNodeToggleDirective<T> {\n disabled: boolean = false;\n\n @Input('cdkTreeNodeToggleRecursive')\n get recursive(): boolean {\n return this._recursive;\n }\n\n set recursive(value: boolean) {\n this._recursive = value;\n }\n\n private _recursive = false;\n\n constructor(private tree: CdkTree<T>, private treeNode: CdkTreeNode<T>) {\n\n this.tree.treeControl.filterValue\n .pipe(map((value) => value.length > 0))\n .subscribe((state: boolean) => this.disabled = state);\n }\n\n toggle(event: Event): void {\n this.recursive\n ? this.tree.treeControl.toggleDescendants(this.treeNode.data)\n : this.tree.treeControl.toggle(this.treeNode.data);\n\n event.stopPropagation();\n }\n}\n","import { FocusOrigin } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n Output,\n ElementRef,\n Inject,\n InjectionToken,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n AfterContentInit,\n NgZone\n} from '@angular/core';\nimport { hasModifierKey } from '@ptsecurity/cdk/keycodes';\nimport { CdkTreeNode } from '@ptsecurity/cdk/tree';\nimport { CanDisable } from '@ptsecurity/mosaic/core';\nimport { Subject } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\n\n// tslint:disable-next-line:naming-convention\nexport interface McTreeOptionEvent {\n option: McTreeOption;\n}\n\n/**\n * Injection token used to provide the parent component to options.\n */\nexport const MC_TREE_OPTION_PARENT_COMPONENT = new InjectionToken<any>('MC_TREE_OPTION_PARENT_COMPONENT');\n\nexport class McTreeOptionChange {\n constructor(public source: McTreeOption, public isUserInput = false) {}\n}\n\nlet uniqueIdCounter: number = 0;\n\n@Component({\n selector: 'mc-tree-option',\n exportAs: 'mcTreeOption',\n templateUrl: './tree-option.html',\n host: {\n '[attr.id]': 'id',\n '[attr.tabindex]': '-1',\n\n '[attr.disabled]': 'disabled || null',\n\n class: 'mc-tree-option',\n '[class.mc-selected]': 'selected',\n '[class.mc-focused]': 'hasFocus',\n\n '(focusin)': 'focus()',\n '(blur)': 'blur()',\n\n '(click)': 'selectViaInteraction($event)'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: CdkTreeNode, useExisting: McTreeOption }]\n})\nexport class McTreeOption extends CdkTreeNode<McTreeOption> implements CanDisable, AfterContentInit {\n readonly onFocus = new Subject<McTreeOptionEvent>();\n\n readonly onBlur = new Subject<McTreeOptionEvent>();\n\n get value(): any {\n return this._value;\n }\n\n set value(value: any) {\n this._value = value;\n }\n\n private _value: any;\n\n @Input()\n get disabled() {\n return this._disabled || (this.tree && this.tree.disabled);\n }\n\n set disabled(value: any) {\n const newValue = coerceBooleanProperty(value);\n\n if (newValue !== this._disabled) {\n this._disabled = newValue;\n }\n }\n\n private _disabled: boolean = false;\n\n @Input()\n get showCheckbox() {\n return this._showCheckbox !== undefined ? this._showCheckbox : this.tree.showCheckbox;\n }\n\n set showCheckbox(value: any) {\n this._showCheckbox = coerceBooleanProperty(value);\n }\n\n private _showCheckbox: boolean;\n\n @Output() readonly onSelectionChange = new EventEmitter<McTreeOptionChange>();\n\n get selected(): boolean {\n return this._selected;\n }\n\n set selected(value: boolean) {\n const isSelected = coerceBooleanProperty(value);\n\n if (isSelected !== this._selected) {\n this.setSelected(isSelected);\n }\n }\n\n private _selected: boolean = false;\n\n get id(): string {\n return this._id;\n }\n\n private _id = `mc-tree-option-${uniqueIdCounter++}`;\n\n get multiple(): boolean {\n return this.tree.multiple;\n }\n\n get viewValue(): string {\n // TODO: Add input property alternative for node envs.\n return (this.getHostElement().textContent || '').trim();\n }\n\n hasFocus: boolean = false;\n\n constructor(\n elementRef: ElementRef,\n private changeDetectorRef: ChangeDetectorRef,\n private ngZone: NgZone,\n @Inject(MC_TREE_OPTION_PARENT_COMPONENT) public tree: any\n ) {\n super(elementRef, tree);\n }\n\n ngAfterContentInit(): void {\n this.value = this.tree.treeControl.getValue(this.data);\n }\n\n toggle(): void {\n this.selected = !this.selected;\n }\n\n setSelected(selected: boolean): void {\n if (this._selected === selected || !this.tree.selectionModel) { return; }\n\n this._selected = selected;\n\n if (selected) {\n this.tree.selectionModel.select(this.data);\n } else {\n this.tree.selectionModel.deselect(this.data);\n }\n\n this.changeDetectorRef.markForCheck();\n }\n\n focus(focusOrigin?: FocusOrigin) {\n if (focusOrigin === 'program') { return; }\n\n if (this.disabled || this.hasFocus) { return; }\n\n this.elementRef.nativeElement.focus();\n\n this.onFocus.next({ option: this });\n\n Promise.resolve().then(() => {\n this.hasFocus = true;\n\n this.changeDetectorRef.markForCheck();\n });\n }\n\n blur(): void {\n // When animations are enabled, Angular may end up removing the option from the DOM a little\n // earlier than usual, causing it to be blurred and throwing off the logic in the tree\n // that moves focus not the next item. To work around the issue, we defer marking the option\n // as not focused until the next time the zone stabilizes.\n this.ngZone.onStable\n .asObservable()\n .pipe(take(1))\n .subscribe(() => {\n this.ngZone.run(() => {\n this.hasFocus = false;\n\n this.onBlur.next({ option: this });\n });\n });\n }\n\n getHeight(): number {\n const clientRects = this.elementRef.nativeElement.getClientRects();\n\n if (clientRects.length) {\n return clientRects[0].height;\n }\n\n return 0;\n }\n\n select(): void {\n if (!this._selected) {\n this._selected = true;\n\n this.changeDetectorRef.markForCheck();\n this.emitSelectionChangeEvent();\n }\n }\n\n deselect(): void {\n if (this._selected) {\n this._selected = false;\n\n this.changeDetectorRef.markForCheck();\n }\n }\n\n selectViaInteraction($event?: KeyboardEvent): void {\n if (!this.disabled) {\n this.changeDetectorRef.markForCheck();\n this.emitSelectionChangeEvent(true);\n\n const shiftKey = $event ? hasModifierKey($event, 'shiftKey') : false;\n const ctrlKey = $event ? hasModifierKey($event, 'ctrlKey') : false;\n\n this.tree.setSelectedOptionsByClick(this, shiftKey, ctrlKey);\n }\n }\n\n emitSelectionChangeEvent(isUserInput = false): void {\n this.onSelectionChange.emit(new McTreeOptionChange(this, isUserInput));\n }\n\n getHostElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n markForCheck() {\n this.changeDetectorRef.markForCheck();\n }\n}\n","/* tslint:disable:no-empty */\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport {\n AfterContentInit,\n Attribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n IterableDiffer,\n IterableDiffers,\n Output,\n QueryList,\n ViewChild, ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FocusKeyManager } from '@ptsecurity/cdk/a11y';\nimport {\n hasModifierKey,\n END,\n ENTER,\n HOME,\n LEFT_ARROW,\n PAGE_DOWN,\n PAGE_UP,\n RIGHT_ARROW,\n SPACE,\n DOWN_ARROW,\n UP_ARROW\n} from '@ptsecurity/cdk/keycodes';\nimport { CdkTree, CdkTreeNodeOutlet, FlatTreeControl } from '@ptsecurity/cdk/tree';\nimport {\n CanDisable,\n getMcSelectNonArrayValueError,\n HasTabIndex,\n MultipleMode\n} from '@ptsecurity/mosaic/core';\nimport { merge, Observable, Subject, Subscription } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { MC_TREE_OPTION_PARENT_COMPONENT, McTreeOption, McTreeOptionEvent } from './tree-option.component';\n\n\nexport const MC_SELECTION_TREE_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => McTreeSelection),\n multi: true\n};\n\nexport class McTreeNavigationChange<T> {\n constructor(public source: McTreeSelection<any>, public option: T) {}\n}\n\nexport class McTreeSelectionChange<T> {\n constructor(public source: McTreeSelection<any>, public option: T) {}\n}\n\n// tslint:disable-next-line:naming-convention\ninterface SelectionModelOption {\n id: number | string;\n value: string;\n}\n\n\n@Component({\n selector: 'mc-tree-selection',\n exportAs: 'mcTreeSelection',\n template: '<ng-container cdkTreeNodeOutlet></ng-container>',\n styleUrls: ['./tree.scss'],\n host: {\n class: 'mc-tree-selection',\n\n '[attr.tabindex]': 'tabIndex',\n '[attr.disabled]': 'disabled || null',\n\n '(blur)': 'blur()',\n '(focus)': 'focus($event)',\n\n '(keydown)': 'onKeyDown($event)',\n '(window:resize)': 'updateScrollSize()'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n MC_SELECTION_TREE_VALUE_ACCESSOR,\n { provide: MC_TREE_OPTION_PARENT_COMPONENT, useExisting: McTreeSelection },\n { provide: CdkTree, useExisting: McTreeSelection }\n ]\n})\nexport class McTreeSelection<T extends McTreeOption> extends CdkTree<T>\n implements ControlValueAccessor, AfterContentInit, CanDisable, HasTabIndex {\n\n @ViewChild(CdkTreeNodeOutlet, { static: true }) nodeOutlet: CdkTreeNodeOutlet;\n\n @ContentChildren(McTreeOption) unorderedOptions: QueryList<T>;\n\n renderedOptions = new QueryList<T>();\n\n keyManager: FocusKeyManager<T>;\n\n selectionModel: SelectionModel<SelectionModelOption>;\n\n resetFocusedItemOnBlur: boolean = true;\n\n @Input() treeControl: FlatTreeControl<T>;\n\n @Output() readonly navigationChange = new EventEmitter<McTreeNavigationChange<T>>();\n\n @Output() readonly selectionChange = new EventEmitter<McTreeSelectionChange<T>>();\n\n multipleMode: MultipleMode | null = null;\n\n userTabIndex: number | null = null;\n\n private sortedNodes: T[] = [];\n\n @Input()\n get autoSelect(): boolean {\n return this._autoSelect;\n }\n\n set autoSelect(value: boolean) {\n this._autoSelect = coerceBooleanProperty(value);\n }\n\n private _autoSelect: boolean = true;\n\n get optionFocusChanges(): Observable<McTreeOptionEvent> {\n return merge(...this.renderedOptions.map((option) => option.onFocus));\n }\n\n get optionBlurChanges(): Observable<McTreeOptionEvent> {\n return merge(...this.renderedOptions.map((option) => option.onBlur));\n }\n\n get multiple(): boolean {\n return !!this.multipleMode;\n }\n\n @Input()\n get noUnselectLast(): boolean {\n return this._noUnselectLast;\n }\n\n set noUnselectLast(value: boolean) {\n this._noUnselectLast = coerceBooleanProperty(value);\n }\n\n private _noUnselectLast: boolean = true;\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(rawValue: boolean) {\n const value = coerceBooleanProperty(rawValue);\n\n if (this._disabled !== value) {\n this._disabled = value;\n\n this.markOptionsForCheck();\n }\n }\n\n private _disabled: boolean = false;\n\n @Input()\n get tabIndex(): any {\n return this.disabled ? -1 : this._tabIndex;\n }\n\n set tabIndex(value: any) {\n this._tabIndex = value;\n this.userTabIndex = value;\n }\n\n private _tabIndex = 0;\n\n get showCheckbox(): boolean {\n return this.multipleMode === MultipleMode.CHECKBOX;\n }\n\n private readonly destroy = new Subject<void>();\n\n private optionFocusSubscription: Subscription | null;\n\n private optionBlurSubscription: Subscription | null;\n\n constructor(\n private elementRef: ElementRef,\n differs: IterableDiffers,\n changeDetectorRef: ChangeDetectorRef,\n @Attribute('multiple') multiple: MultipleMode\n ) {\n super(differs, changeDetectorRef);\n\n if (multiple === MultipleMode.CHECKBOX || multiple === MultipleMode.KEYBOARD) {\n this.multipleMode = multiple;\n } else if (multiple !== null) {\n this.multipleMode = MultipleMode.CHECKBOX;\n }\n\n if (this.multipleMode === MultipleMode.CHECKBOX) {\n this.autoSelect = false;\n this.noUnselectLast = false;\n }\n\n this.selectionModel = new SelectionModel<SelectionModelOption>(this.multiple);\n }\n\n ngAfterContentInit(): void {\n this.unorderedOptions.changes.subscribe(this.updateRenderedOptions);\n\n this.keyManager = new FocusKeyManager<T>(this.renderedOptions)\n .withVerticalOrientation(true)\n .withHorizontalOrientation(null);\n\n this.keyManager.change\n .pipe(takeUntil(this.destroy))\n .subscribe(() => {\n if (this.keyManager.activeItem) {\n this.emitNavigationEvent(this.keyManager.activeItem);\n\n // todo need check this logic\n if (this.autoSelect && !this.keyManager.activeItem.disabled) {\n this.updateOptionsFocus();\n }\n }\n });\n\n this.keyManager.tabOut\n .pipe(takeUntil(this.destroy))\n .subscribe(() => this.allowFocusEscape());\n\n this.selectionModel.changed\n .pipe(takeUntil(this.destroy))\n .subscribe(() => {\n this.onChange(this.getSelectedValues());\n\n this.renderedOptions.notifyOnChanges();\n });\n\n this.renderedOptions.changes\n .pipe(takeUntil(this.destroy))\n .subscribe((options) => {\n this.resetOptions();\n\n // Check to see if we need to update our tab index\n this.updateTabIndex();\n\n // todo need to do optimisation\n options.forEach((option) => {\n option.deselect();\n\n this.getSelectedValues().forEach((selectedValue) => {\n if (option.value === selectedValue) {\n option.select();\n }\n });\n\n option.changeDetectorRef.detectChanges();\n });\n });\n }\n\n ngOnDestroy(): void {\n this.destroy.next();\n this.destroy.complete();\n }\n\n focus($event): void {\n if (this.renderedOptions.length === 0 || this.isFocusReceivedFromNestedOption($event)) { return; }\n\n this.keyManager.setFirstItemActive();\n }\n\n blur() {\n if (!this.hasFocusedOption() && this.resetFocusedItemOnBlur) {\n this.keyManager.setActiveItem(-1);\n }\n\n this.onTouched();\n this.changeDetectorRef.markForCheck();\n }\n\n onKeyDown(event: KeyboardEvent): void {\n this.keyManager.setFocusOrigin('keyboard');\n // tslint:disable-next-line: deprecation\n const keyCode = event.keyCode;\n\n switch (keyCode) {\n case DOWN_ARROW:\n this.keyManager.setNextItemActive();\n\n break;\n case UP_ARROW:\n this.keyManager.setPreviousItemActive();\n\n break;\n case LEFT_ARROW:\n if (this.keyManager.activeItem) {\n this.treeControl.collapse(this.keyManager.activeItem.data as T);\n }\n\n event.preventDefault();\n\n return;\n case RIGHT_ARROW:\n if (this.keyManager.activeItem) {\n this.treeControl.expand(this.keyManager.activeItem.data as T);\n }\n\n event.preventDefault();\n\n return;\n case SPACE:\n case ENTER:\n this.toggleFocusedOption();\n event.preventDefault();\n\n break;\n case HOME:\n this.keyManager.setFirstItemActive();\n event.preventDefault();\n\n break;\n case END:\n this.keyManager.setLastItemActive();\n event.preventDefault();\n\n break;\n case PAGE_UP:\n this.keyManager.setPreviousPageItemActive();\n event.preventDefault();\n\n break;\n case PAGE_DOWN:\n this.keyManager.setNextPageItemActive();\n event.preventDefault();\n\n break;\n default:\n return;\n }\n\n if (this.keyManager.activeItem) {\n this.setSelectedOptionsByKey(\n this.keyManager.activeItem, hasModifierKey(event, 'shiftKey'), hasModifierKey(event, 'ctrlKey')\n );\n }\n }\n\n updateScrollSize(): void {\n if (!this.renderedOptions.first) { return; }\n\n this.keyManager.withScrollSize(Math.floor(this.getHeight() / this.renderedOptions.first.getHeight()));\n }\n\n setSelectedOptionsByKey(option: T, shiftKey: boolean, ctrlKey: boolean): void {\n if (shiftKey && this.multiple) {\n this.setSelectedOptions(option);\n } else if (ctrlKey) {\n if (!this.canDeselectLast(option)) { return; }\n } else if (this.autoSelect) {\n this.selectionModel.clear();\n this.selectionModel.toggle(option.data);\n }\n\n this.emitChangeEvent(option);\n }\n\n setSelectedOptionsByClick(option: T, shiftKey: boolean, ctrlKey: boolean): void {\n if (!shiftKey && !ctrlKey) {\n this.keyManager.setActiveItem(option);\n }\n\n if (shiftKey && this.multiple) {\n this.setSelectedOptions(option);\n } else if (ctrlKey) {\n if (!this.canDeselectLast(option)) { return; }\n\n this.selectionModel.toggle(option.data);\n } else if (this.autoSelect) {\n this.selectionModel.clear();\n this.selectionModel.toggle(option.data);\n } else {\n this.selectionModel.toggle(option.data);\n }\n\n this.emitChangeEvent(option);\n }\n\n setSelectedOptions(option: T): void {\n const selectedOptionState = option.selected;\n\n let fromIndex = this.keyManager.previousActiveItemIndex;\n let toIndex = this.keyManager.previousActiveItemIndex = this.keyManager.activeItemIndex;\n\n if (toIndex === fromIndex) { return; }\n\n if (fromIndex > toIndex) {\n [fromIndex, toIndex] = [toIndex, fromIndex];\n }\n\n this.renderedOptions\n .toArray()\n .slice(fromIndex, toIndex + 1)\n .filter((item) => !item.disabled)\n .forEach((renderedOption) => {\n const isLastRenderedOption = renderedOption === this.keyManager.activeItem;\n\n if (isLastRenderedOption && renderedOption.selected && this.noUnselectLast) { return; }\n\n renderedOption.setSelected(!selectedOptionState);\n });\n }\n\n setFocusedOption(option: T): void {\n this.keyManager.setActiveItem(option);\n }\n\n toggleFocusedOption(): void {\n const focusedOption = this.keyManager.activeItem;\n\n if (focusedOption && (!focusedOption.selected || this.canDeselectLast(focusedOption))) {\n focusedOption.toggle();\n this.emitChangeEvent(focusedOption);\n }\n }\n\n renderNodeChanges(\n data: T[],\n dataDiffer: IterableDiffer<T> = this.dataDiffer,\n viewContainer: ViewContainerRef = this.nodeOutlet.viewContainer,\n parentData?: T\n ): void {\n super.renderNodeChanges(data, dataDiffer, viewContainer, parentData);\n\n this.sortedNodes = this.getSortedNodes(viewContainer);\n\n this.updateScrollSize();\n\n this.nodeOutlet.changeDetectorRef.detectChanges();\n }\n\n getHeight(): number {\n const clientRects = this.elementRef.nativeElement.getClientRects();\n\n if (clientRects.length) {\n return clientRects[0].height;\n }\n\n return 0;\n }\n\n getItemHeight(): number {\n return this.renderedOptions.first ? this.renderedOptions.first.getHeight() : 0;\n }\n\n emitNavigationEvent(option: T): void {\n this.navigationChange.emit(new McTreeNavigationChange(this, option));\n }\n\n emitChangeEvent(option: T): void {\n this.selectionChange.emit(new McTreeNavigationChange(this, option));\n }\n\n writeValue(value: any): void {\n if (this.multiple && value && !Array.isArray(value)) {\n throw getMcSelectNonArrayValueError();\n }\n\n if (value) {\n this.setOptionsFromValues(this.multiple ? value : [value]);\n } else {\n this.selectionModel.clear();\n }\n }\n\n /** `View -> model callback called when value changes` */\n onChange: (value: any) => void = () => {};\n\n registerOnChange(fn: (value: any) => void): void {\n this.onChange = fn;\n }\n\n /** `View -> model callback called when select has been touched` */\n onTouched = () => {};\n\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n\n /**\n * Sets the disabled state of the control. Implemented as a part of ControlValueAccessor.\n */\n setDisabledState(isDisabled: boolean): void {\n this._disabled = isDisabled;\n this.changeDetectorRef.markForCheck();\n }\n\n setOptionsFromValues(values: any[]): void {\n this.selectionModel.clear();\n\n const valuesToSelect = values.reduce(\n (result, value) => {\n return this.treeControl.hasValue(value) ? [...result, this.treeControl.hasValue(value)] : [...result];\n },\n []\n );\n\n this.selectionModel.select(...valuesToSelect);\n }\n\n getSelectedValues(): any[] {\n return this.selectionModel.selected.map((selected) => this.treeControl.getValue(selected));\n }\n\n protected updateTabIndex(): void {\n this._tabIndex = this.renderedOptions.length === 0 ? -1 : 0;\n }\n\n private updateRenderedOptions = () => {\n const orderedOptions: T[] = [];\n\n this.sortedNodes.forEach((node) => {\n const found = this.unorderedOptions.find((option) => option.value === this.treeControl.getValue(node));\n\n if (found) {\n orderedOptions.push(found);\n }\n });\n\n this.renderedOptions.reset(orderedOptions);\n this.renderedOptions.notifyOnChanges();\n }\n\n private getSortedNodes(viewContainer: ViewContainerRef) {\n const array: T[] = [];\n\n for (let i = 0; i < viewContainer.length; i++) {\n const viewRef = viewContainer.get(i) as any;\n\n array.push(viewRef.context.$implicit);\n }\n\n return array;\n }\n\n private allowFocusEscape() {\n if (this._tabIndex !== -1) {\n this._tabIndex = -1;\n\n setTimeout(() => {\n this._tabIndex = this.userTabIndex || 0;\n this.changeDetectorRef.markForCheck();\n });\n }\n }\n\n private resetOptions() {\n this.dropSubscriptions();\n this.listenToOptionsFocus();\n }\n\n private dropSubscriptions() {\n if (this.optionFocusSubscription) {\n this.optionFocusSubscription.unsubscribe();\n this.optionFocusSubscription = null;\n }\n\n if (this.optionBlurSubscription) {\n this.optionBlurSubscription.unsubscribe();\n this.optionBlurSubscription = null;\n }\n }\n\n private listenToOptionsFocus(): void {\n this.optionFocusSubscription = this.optionFocusChanges\n .subscribe((event) => {\n const index: number = this.renderedOptions.toArray().indexOf(event.option as T);\n\n this.renderedOptions\n .filter((option) => option.hasFocus)\n .forEach((option) => option.hasFocus = false);\n\n if (this.isValidIndex(index)) {\n this.keyManager.updateActiveItem(index);\n }\n });\n\n this.optionBlurSubscription = this.optionBlurChanges\n .subscribe(() => this.blur());\n }\n\n /**\n * Utility to ensure all indexes are valid.\n * @param index The index to be checked.\n * @returns True if the index is valid for our list of options.\n */\n private isValidIndex(index: number): boolean {\n return index >= 0 && index < this.renderedOptions.length;\n }\n\n /** Checks whether any of the options is focused. */\n private hasFocusedOption() {\n return this.renderedOptions.some((option) => option.hasFocus);\n }\n\n private markOptionsForCheck() {\n this.renderedOptions.forEach((option) => option.markForCheck());\n }\n\n private updateOptionsFocus() {\n this.renderedOptions\n .filter((option) => option.hasFocus)\n .forEach((option) => option.hasFocus = false);\n }\n\n private canDeselectLast(option: McTreeOption): boolean {\n return !(this.noUnselectLast && this.selectionModel.selected.length === 1 && option.selected);\n }\n\n private isFocusReceivedFromNestedOption($event: FocusEvent) {\n if (!$event || !$event.relatedTarget) { return false; }\n\n return ($event.relatedTarget as HTMLElement).classList.contains('mc-tree-option');\n }\n}\n\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { CdkTreeModule } from '@ptsecurity/cdk/tree';\nimport { McPseudoCheckboxModule } from '@ptsecurity/mosaic/core';\n\nimport { McTreeNodeDef } from './node.directive';\nimport { McTreeNodePadding } from './padding.directive';\nimport { McTreeNodeToggleDirective, McTreeNodeToggleComponent } from './toggle';\nimport { McTreeOption } from './tree-option.component';\nimport { McTreeSelection } from './tree-selection.component';\n\n\nconst MC_TREE_DIRECTIVES = [\n McTreeSelection,\n McTreeOption,\n McTreeNodeDef,\n McTreeNodePadding,\n McTreeNodeToggleComponent,\n McTreeNodeToggleDirective\n];\n\n@NgModule({\n imports: [CommonModule, CdkTreeModule, McPseudoCheckboxModule],\n exports: MC_TREE_DIRECTIVES,\n declarations: MC_TREE_DIRECTIVES\n})\nexport class McTreeModule {}\n","import { CollectionViewer, DataSource } from '@angular/cdk/collections';\nimport { FlatTreeControl, TreeControl } from '@ptsecurity/cdk/tree';\nimport { BehaviorSubject, merge, Observable } from 'rxjs';\nimport { map, take } from 'rxjs/operators';\n\n\n/**\n * Tree flattener to convert a normal type of node to node with children & level information.\n * Transform nested nodes of type `T` to flattened nodes of type `F`.\n *\n * For example, the input data of type `T` is nested, and contains its children data:\n * SomeNode: {\n * key: 'Fruits',\n * children: [\n * NodeOne: {\n * key: 'Apple',\n * },\n * NodeTwo: {\n * key: 'Pear',\n * }\n * ]\n * }\n * After flattener flatten the tree, the structure will become\n * SomeNode: {\n * key: 'Fruits',\n * expandable: true,\n * level: 1\n * },\n * NodeOne: {\n * key: 'Apple',\n * expandable: false,\n * level: 2\n * },\n * NodeTwo: {\n * key: 'Pear',\n * expandable: false,\n * level: 2\n * }\n * and the output flattened type is `F` with additional information.\n */\nexport class McTreeFlattener<T, F> {\n constructor(\n public transformFunction: (node: T, level: number, parent: F | null) => F,\n public getLevel: (node: F) => number,\n public isExpandable: (node: F) => boolean,\n public getChildren: (node: T) => Observable<T[]> | T[] | undefined | null\n ) {}\n\n flattenNode(node: T, level: number, resultNodes: F[], parent: F | null): F[] {\n const flatNode = this.transformFunction(node, level, parent);\n resultNodes.push(flatNode);\n\n if (this.isExpandable(flatNode)) {\n const childrenNodes = this.getChildren(node);\n\n if (childrenNodes) {\n if (Array.isArray(childrenNodes)) {\n this.flattenChildren(childrenNodes, level, resultNodes, flatNode);\n } else {\n childrenNodes\n .pipe(take(1))\n .subscribe((children) => {\n this.flattenChildren(children, level, resultNodes, flatNode);\n });\n }\n }\n }\n\n return resultNodes;\n }\n\n flattenChildren(children: T[], level: number, resultNodes: F[], parent: F | null): void {\n children.forEach((child) => {\n this.flattenNode(child, level + 1, resultNodes, parent);\n });\n }\n\n /**\n * Flatten a list of node type T to flattened version of node F.\n * Please note that type T may be nested, and the length of `structuredData` may be different\n * from that of returned list `F[]`.\n */\n flattenNodes(structuredData: T[]): F[] {\n const resultNodes: F[] = [];\n structuredData.forEach((node) => this.flattenNode(node, 0, resultNodes, null));\n\n return resultNodes;\n }\n\n /**\n * Expand flattened node with current expansion status.\n * The returned list may have different length.\n */\n expandFlattenedNodes(nodes: F[], treeControl: TreeControl<F>): F[] {\n const results: F[] = [];\n const currentExpand: boolean[] = [];\n currentExpand[0] = true;\n\n nodes.forEach((node) => {\n let expand = true;\n for (let i = 0; i <= this.getLevel(node); i++) {\n expand = expand && currentExpand[i];\n }\n\n if (expand) { results.push(node); }\n\n if (this.isExpandable(node)) {\n currentExpand[this.getLevel(node) + 1] = treeControl.isExpanded(node);\n }\n });\n\n return results;\n }\n}\n\nenum McTreeDataSourceChangeTypes {\n Expansion = 'expansion',\n Filter = 'filter'\n}\n\n/**\n * Data source for flat tree.\n * The data source need to handle expansion/collapsion of the tree node and change the data feed\n * to `McTree`.\n * The nested tree nodes of type `T` are flattened through `MсTreeFlattener`, and converted\n * to type `F` for `McTree` to consume.\n */\nexport class McTreeFlatDataSource<T, F> extends DataSource<F> {\n flattenedData = new BehaviorSubject<F[]>([]);\n\n expandedData = new BehaviorSubject<F[]>([]);\n\n filteredData = new BehaviorSubject<F[]>([]);\n\n get data() {\n return this._data.value;\n }\n\n set data(value: T[]) {\n this._data.next(value);\n\n this.flattenedData.next(this.treeFlattener.flattenNodes(this.data));\n this.treeControl.dataNodes = this.flattenedData.value;\n }\n\n private _data: BehaviorSubject<T[]>;\n\n constructor(\n private treeControl: FlatTreeControl<F>,\n private treeFlattener: McTreeFlattener<T, F>,\n initialData: T[] = []\n ) {\n super();\n\n this._data = new BehaviorSubject<T[]>(initialData);\n }\n\n connect(collectionViewer: CollectionViewer): Observable<F[]> {\n return merge(\n collectionViewer.viewChange,\n this.treeControl.expansionModel.changed\n .pipe(map((value) => ({ type: McTreeDataSourceChangeTypes.Expansion, value }))),\n this.treeControl.filterValue\n .pipe(map((value) => ({ type: McTreeDataSourceChangeTypes.Filter, value }))),\n this.flattenedData\n )\n .pipe(map((changeObj: any): any => {\n if (changeObj.type === McTreeDataSourceChangeTypes.Filter) {\n if (changeObj.value && changeObj.value.length > 0) {\n return this.filterHandler();\n } else {\n return this.expansionHandler();\n }\n }\n\n return this.expansionHandler();\n }));\n }\n\n filterHandler(): F[] {\n this.filteredData.next(this.treeControl.filterModel.selected);\n\n return this.filteredData.value;\n }\n\n expansionHandler(): F[] {\n const expandedNodes = this.treeFlattener.expandFlattenedNodes(this.flattenedData.value, this.treeControl);\n this.expandedData.next(expandedNodes);\n\n return this.expandedData.value;\n }\n\n disconnect() {\n // no op\n }\n}\n\n","import { CollectionViewer, DataSource } from '@angular/cdk/collections';\nimport { BehaviorSubject, merge, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n\n/**\n * Data source for nested tree.\n *\n * The data source for nested tree doesn't have to consider node flattener, or the way to expand\n * or collapse. The expansion/collapsion will be handled by TreeControl and each non-leaf node.\n */\nexport class McTreeNestedDataSource<T> extends DataSource<T> {\n\n get data() {\n return this._data.value;\n }\n\n set data(value: T[]) {\n this._data.next(value);\n }\n\n /* tslint:disable-next-line:naming-convention */\n private _data = new BehaviorSubject<T[]>([]);\n\n connect(collectionViewer: CollectionViewer): Observable<T[]> {\n return merge(...[collectionViewer.viewChange, this._data])\n .pipe(map(() => this.data));\n }\n\n disconnect() {\n // no op\n }\n}\n\n"]}
@@ -1,2 +0,0 @@
1
- !function(n){"function"==typeof define&&define.amd?define("@ptsecurity/mosaic",n):n()}((function(){}));
2
- //# sourceMappingURL=ptsecurity-mosaic.umd.min.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
@@ -1 +0,0 @@
1
- {"__symbolic":"module","version":4,"metadata":{"McButtonModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":12,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":14,"character":8},{"__symbolic":"reference","module":"@angular/cdk/a11y","name":"A11yModule","line":15,"character":8},{"__symbolic":"reference","module":"@angular/cdk/platform","name":"PlatformModule","line":16,"character":8}],"exports":[{"__symbolic":"reference","name":"McButton"},{"__symbolic":"reference","name":"McAnchor"},{"__symbolic":"reference","name":"McButtonCssStyler"}],"declarations":[{"__symbolic":"reference","name":"McButton"},{"__symbolic":"reference","name":"McAnchor"},{"__symbolic":"reference","name":"McButtonCssStyler"}]}]}],"members":{}},"McButtonCssStyler":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":26,"character":1},"arguments":[{"selector":"button[mc-button], a[mc-button]","host":{"[class.mc-button]":"!isIconButton","[class.mc-icon-button]":"isIconButton","$quoted$":["[class.mc-button]","[class.mc-icon-button]"]}}]}],"members":{"icons":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":34,"character":5},"arguments":[{"__symbolic":"reference","module":"@ptsecurity/mosaic/icon","name":"McIcon","line":34,"character":21},{"descendants":true}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":42,"character":28},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":42,"character":58}]}],"ngAfterContentInit":[{"__symbolic":"method"}],"updateClassModifierForIcons":[{"__symbolic":"method"}]}},"McButtonBase":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":42,"character":28}]}]}},"McButtonMixinBase":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ptsecurity/mosaic/core","name":"mixinTabIndex","line":85,"character":26},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ptsecurity/mosaic/core","name":"mixinColor","line":85,"character":40},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@ptsecurity/mosaic/core","name":"mixinDisabled","line":85,"character":51},"arguments":[{"__symbolic":"reference","name":"McButtonBase"}]}]}]},"McButton":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"McButtonMixinBase"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":88,"character":1},"arguments":[{"selector":"button[mc-button]","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":92,"character":21},"member":"OnPush"},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":93,"character":19},"member":"None"},"inputs":["disabled","color"],"host":{"[attr.disabled]":"disabled || null","$quoted$":["[attr.disabled]"]},"template":"<div class=\"mc-button-wrapper\">\n <ng-content></ng-content>\n</div>\n<div class=\"mc-button-overlay\"></div>\n","styles":[".mc-button,.mc-icon-button,.mc-light-button{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;position:relative;box-sizing:border-box;display:inline-block;white-space:nowrap;text-decoration:none;text-align:center;vertical-align:baseline;border:var(--mc-button-size-border-width,1px) solid transparent;border-radius:var(--mc-button-size-border-radius,3px)}.mc-button::-moz-focus-inner,.mc-icon-button::-moz-focus-inner,.mc-light-button::-moz-focus-inner{border:0}.mc-button:focus,.mc-icon-button:focus,.mc-light-button:focus{outline:none}[disabled].mc-button,[disabled].mc-icon-button,[disabled].mc-light-button{pointer-events:none;cursor:default}.cdk-focused.mc-button,.cdk-focused.mc-icon-button,.cdk-focused.mc-light-button{z-index:1}.mc-button{padding:calc(var(--mc-button-size-vertical-padding, 6px) - var(--mc-button-size-border-width, 1px)) calc(var(--mc-button-size-horizontal-padding, 16px) - var(--mc-button-size-border-width, 1px))}.mc-icon-button{padding:calc(var(--mc-icon-button-size-vertical-padding, 6px) - var(--mc-button-size-border-width, 1px)) calc(var(--mc-icon-button-size-horizontal-padding, 8px) - var(--mc-button-size-border-width, 1px))}.mc-icon-button.mc-icon-button_left{padding-right:calc(var(--mc-icon-button-size-icon-horizontal-padding, 16px) - var(--mc-button-size-border-width, 1px))}.mc-icon-button.mc-icon-button_right{padding-left:calc(var(--mc-icon-button-size-icon-horizontal-padding, 16px) - var(--mc-button-size-border-width, 1px))}.mc-icon-button .mc-button-wrapper{display:flex}.mc-icon-button .mc-button-wrapper .mc-icon{margin:auto;line-height:20px}.mc-icon-button .mc-button-wrapper .mc-icon_left{margin-right:var(--mc-icon-button-size-icon-padding,8px)}.mc-icon-button .mc-button-wrapper .mc-icon_right{margin-left:var(--mc-icon-button-size-icon-padding,8px)}.mc-button-overlay{position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;pointer-events:none;border-radius:inherit}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":42,"character":28},{"__symbolic":"reference","module":"@angular/cdk/a11y","name":"FocusMonitor","line":100,"character":63}]}],"ngOnDestroy":[{"__symbolic":"method"}],"focus":[{"__symbolic":"method"}],"focusViaKeyboard":[{"__symbolic":"method"}],"getHostElement":[{"__symbolic":"method"}]}},"McAnchor":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"McButton"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":124,"character":1},"arguments":[{"selector":"a[mc-button]","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":128,"character":21},"member":"OnPush"},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":129,"character":19},"member":"None"},"inputs":["disabled","color","tabIndex"],"host":{"[attr.tabindex]":"tabIndex","[attr.disabled]":"disabled || null","(click)":"haltDisabledEvents($event)","$quoted$":["[attr.tabindex]","[attr.disabled]","(click)"]},"template":"<div class=\"mc-button-wrapper\">\n <ng-content></ng-content>\n</div>\n<div class=\"mc-button-overlay\"></div>\n","styles":[".mc-button,.mc-icon-button,.mc-light-button{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;position:relative;box-sizing:border-box;display:inline-block;white-space:nowrap;text-decoration:none;text-align:center;vertical-align:baseline;border:var(--mc-button-size-border-width,1px) solid transparent;border-radius:var(--mc-button-size-border-radius,3px)}.mc-button::-moz-focus-inner,.mc-icon-button::-moz-focus-inner,.mc-light-button::-moz-focus-inner{border:0}.mc-button:focus,.mc-icon-button:focus,.mc-light-button:focus{outline:none}[disabled].mc-button,[disabled].mc-icon-button,[disabled].mc-light-button{pointer-events:none;cursor:default}.cdk-focused.mc-button,.cdk-focused.mc-icon-button,.cdk-focused.mc-light-button{z-index:1}.mc-button{padding:calc(var(--mc-button-size-vertical-padding, 6px) - var(--mc-button-size-border-width, 1px)) calc(var(--mc-button-size-horizontal-padding, 16px) - var(--mc-button-size-border-width, 1px))}.mc-icon-button{padding:calc(var(--mc-icon-button-size-vertical-padding, 6px) - var(--mc-button-size-border-width, 1px)) calc(var(--mc-icon-button-size-horizontal-padding, 8px) - var(--mc-button-size-border-width, 1px))}.mc-icon-button.mc-icon-button_left{padding-right:calc(var(--mc-icon-button-size-icon-horizontal-padding, 16px) - var(--mc-button-size-border-width, 1px))}.mc-icon-button.mc-icon-button_right{padding-left:calc(var(--mc-icon-button-size-icon-horizontal-padding, 16px) - var(--mc-button-size-border-width, 1px))}.mc-icon-button .mc-button-wrapper{display:flex}.mc-icon-button .mc-button-wrapper .mc-icon{margin:auto;line-height:20px}.mc-icon-button .mc-button-wrapper .mc-icon_left{margin-right:var(--mc-icon-button-size-icon-padding,8px)}.mc-icon-button .mc-button-wrapper .mc-icon_right{margin-left:var(--mc-icon-button-size-icon-padding,8px)}.mc-button-overlay{position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;pointer-events:none;border-radius:inherit}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/cdk/a11y","name":"FocusMonitor","line":100,"character":63},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":42,"character":28}]}],"haltDisabledEvents":[{"__symbolic":"method"}]}}},"origins":{"McButtonModule":"./button.module","McButtonCssStyler":"./button.component","McButtonBase":"./button.component","McButtonMixinBase":"./button.component","McButton":"./button.component","McAnchor":"./button.component"},"importAs":"@ptsecurity/mosaic/button"}