@mozaic-ds/angular 0.23.2-beta.4 → 0.24.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (551) hide show
  1. package/adeo/README.md +0 -0
  2. package/adeo/assets/special-icons/checkbox-checked-disabled.svg +3 -0
  3. package/adeo/assets/special-icons/checkbox-checked.svg +3 -0
  4. package/adeo/assets/special-icons/checkbox-indeterminate-disabled.svg +3 -0
  5. package/adeo/assets/special-icons/checkbox-indeterminate.svg +3 -0
  6. package/adeo/assets/special-icons/invalid-cross.svg +3 -0
  7. package/adeo/assets/special-icons/layer-cross.svg +3 -0
  8. package/adeo/assets/special-icons/notification-danger-m.svg +4 -0
  9. package/adeo/assets/special-icons/notification-danger-s.svg +4 -0
  10. package/adeo/assets/special-icons/notification-information-m.svg +5 -0
  11. package/adeo/assets/special-icons/notification-information-s.svg +5 -0
  12. package/adeo/assets/special-icons/notification-success-m.svg +4 -0
  13. package/adeo/assets/special-icons/notification-success-s.svg +4 -0
  14. package/adeo/assets/special-icons/notification-warning-m.svg +5 -0
  15. package/adeo/assets/special-icons/notification-warning-s.svg +5 -0
  16. package/adeo/assets/special-icons/remove-tag.svg +3 -0
  17. package/adeo/assets/special-icons/toggle-checked-disabled.svg +3 -0
  18. package/adeo/assets/special-icons/toggle-checked.svg +3 -0
  19. package/adeo/assets/special-icons/toggle-cross-disabled.svg +3 -0
  20. package/adeo/assets/special-icons/toggle-cross.svg +3 -0
  21. package/adeo/assets/special-icons/tooltip-triangle.svg +3 -0
  22. package/adeo/assets/special-icons/valid-check-mark.svg +11 -0
  23. package/adeo/assets/tokens/adeo/android/colors.xml +491 -0
  24. package/adeo/assets/tokens/adeo/android/font_dimens.xml +18 -0
  25. package/adeo/assets/tokens/adeo/css/_variables.scss +635 -0
  26. package/adeo/assets/tokens/adeo/css/root.scss +487 -0
  27. package/adeo/assets/tokens/adeo/ios/StyleDictionaryColor.h +499 -0
  28. package/adeo/assets/tokens/adeo/ios/StyleDictionaryColor.m +511 -0
  29. package/adeo/assets/tokens/adeo/ios/StyleDictionaryColor.swift +494 -0
  30. package/adeo/assets/tokens/adeo/ios/StyleDictionarySize.h +69 -0
  31. package/adeo/assets/tokens/adeo/ios/StyleDictionarySize.m +70 -0
  32. package/adeo/assets/tokens/adeo/ios/StyleDictionarySize.swift +71 -0
  33. package/adeo/assets/tokens/adeo/js/tokens.js +583 -0
  34. package/adeo/assets/tokens/adeo/js/tokensObject.js +9787 -0
  35. package/adeo/assets/tokens/adeo/scss/_tokens.scss +1645 -0
  36. package/adeo/common/global-events/global-events.module.d.ts +6 -0
  37. package/adeo/common/global-events/global-events.service.d.ts +11 -0
  38. package/adeo/common/global-events/public-api.d.ts +2 -0
  39. package/adeo/common/index.d.ts +2 -0
  40. package/adeo/common/utils/boolean-property.d.ts +1 -0
  41. package/adeo/common/utils/generate-id.d.ts +1 -0
  42. package/adeo/common/utils/get-random-number.d.ts +1 -0
  43. package/adeo/common/utils/index.d.ts +4 -0
  44. package/adeo/common/utils/overwrite-style.d.ts +2 -0
  45. package/adeo/common/utils/public-api.d.ts +1 -0
  46. package/adeo/components/autocomplete/autocomplete.component.d.ts +60 -0
  47. package/adeo/components/autocomplete/autocomplete.module.d.ts +15 -0
  48. package/adeo/components/autocomplete/index.d.ts +2 -0
  49. package/adeo/components/autocomplete/public-api.d.ts +1 -0
  50. package/adeo/components/badge/badge.component.d.ts +8 -0
  51. package/adeo/components/badge/badge.d.ts +3 -0
  52. package/adeo/components/badge/badge.module.d.ts +8 -0
  53. package/adeo/components/badge/index.d.ts +2 -0
  54. package/adeo/components/badge/public-api.d.ts +1 -0
  55. package/adeo/components/built-it-menu/built-it-menu.component.d.ts +12 -0
  56. package/adeo/components/built-it-menu/built-it-menu.module.d.ts +9 -0
  57. package/adeo/components/built-it-menu/index.d.ts +2 -0
  58. package/adeo/components/built-it-menu/model/built-it-menu.d.ts +9 -0
  59. package/adeo/components/built-it-menu/public-api.d.ts +1 -0
  60. package/adeo/components/button/button.component.d.ts +16 -0
  61. package/adeo/components/button/button.d.ts +7 -0
  62. package/adeo/components/button/button.module.d.ts +8 -0
  63. package/adeo/components/button/index.d.ts +2 -0
  64. package/adeo/components/button/public-api.d.ts +1 -0
  65. package/adeo/components/checkbox/checkbox.component.d.ts +21 -0
  66. package/adeo/components/checkbox/checkbox.module.d.ts +8 -0
  67. package/adeo/components/checkbox/public-api.d.ts +2 -0
  68. package/adeo/components/datatable/components/caption/moz-datatable-caption.component.d.ts +11 -0
  69. package/adeo/components/datatable/components/content/moz-datatable-content-cell.component.d.ts +8 -0
  70. package/adeo/components/datatable/components/footer/moz-datatable-footer.component.d.ts +18 -0
  71. package/adeo/components/datatable/components/header/moz-datatable-header-cell.component.d.ts +8 -0
  72. package/adeo/components/datatable/components/row/moz-datatable-row-expansion-content.component.d.ts +7 -0
  73. package/adeo/components/datatable/components/selection/moz-datatable-selection.component.d.ts +26 -0
  74. package/adeo/components/datatable/directives/moz-datatable-sort.directive.d.ts +15 -0
  75. package/adeo/components/datatable/model/column-def.d.ts +11 -0
  76. package/adeo/components/datatable/model/datatable-settings.d.ts +29 -0
  77. package/adeo/components/datatable/model/footer-settings.d.ts +17 -0
  78. package/adeo/components/datatable/model/row-data.d.ts +5 -0
  79. package/adeo/components/datatable/model/selection-settings.d.ts +16 -0
  80. package/adeo/components/datatable/moz-datatable.component.d.ts +53 -0
  81. package/adeo/components/datatable/moz-datatable.module.d.ts +22 -0
  82. package/adeo/components/datatable/public-api.d.ts +13 -0
  83. package/adeo/components/datatable-management/components/moz-datatable-management-content/moz-datatable-management-content.component.d.ts +29 -0
  84. package/adeo/components/datatable-management/moz-datatable-management.component.d.ts +16 -0
  85. package/adeo/components/datatable-management/moz-datatable-management.module.d.ts +15 -0
  86. package/adeo/components/datatable-management/public-api.d.ts +3 -0
  87. package/adeo/components/dialog/classes/dialog-config.d.ts +9 -0
  88. package/adeo/components/dialog/classes/dialog-injector.d.ts +10 -0
  89. package/adeo/components/dialog/classes/dialog-ref.d.ts +25 -0
  90. package/adeo/components/dialog/classes/index.d.ts +3 -0
  91. package/adeo/components/dialog/dialog-animation.d.ts +1 -0
  92. package/adeo/components/dialog/dialog.component.d.ts +23 -0
  93. package/adeo/components/dialog/dialog.module.d.ts +8 -0
  94. package/adeo/components/dialog/dialog.service.d.ts +20 -0
  95. package/adeo/components/dialog/interfaces/dialog-config.d.ts +7 -0
  96. package/adeo/components/dialog/interfaces/dialog-di-params.d.ts +6 -0
  97. package/adeo/components/dialog/interfaces/dialog-ref.d.ts +18 -0
  98. package/adeo/components/dialog/interfaces/index.d.ts +3 -0
  99. package/adeo/components/dialog/public-api.d.ts +5 -0
  100. package/adeo/components/dialog/tokens/dialog-config.token.d.ts +2 -0
  101. package/adeo/components/dialog/tokens/dialog-data.token.d.ts +2 -0
  102. package/adeo/components/dialog/tokens/dialog-ref.token.d.ts +2 -0
  103. package/adeo/components/dialog/tokens/index.d.ts +3 -0
  104. package/adeo/components/dropdown/dropdown.component.d.ts +54 -0
  105. package/adeo/components/dropdown/dropdown.module.d.ts +14 -0
  106. package/adeo/components/dropdown/index.d.ts +2 -0
  107. package/adeo/components/dropdown/public-api.d.ts +1 -0
  108. package/adeo/components/field/directives/input-icon.directive.d.ts +7 -0
  109. package/adeo/components/field/field-error.component.d.ts +5 -0
  110. package/adeo/components/field/field.component.d.ts +16 -0
  111. package/adeo/components/field/field.module.d.ts +10 -0
  112. package/adeo/components/field/index.d.ts +4 -0
  113. package/adeo/components/field/public-api.d.ts +1 -0
  114. package/adeo/components/file-uploader/components/uploaded-files/uploaded-files.component.d.ts +17 -0
  115. package/adeo/components/file-uploader/directives/moz-drag-n-drop.directive.d.ts +11 -0
  116. package/adeo/components/file-uploader/file-uploader.component.d.ts +34 -0
  117. package/adeo/components/file-uploader/file-uploader.module.d.ts +11 -0
  118. package/adeo/components/file-uploader/index.d.ts +4 -0
  119. package/adeo/components/file-uploader/public-api.d.ts +1 -0
  120. package/adeo/components/heading/heading-alignment.d.ts +1 -0
  121. package/adeo/components/heading/heading-weight-type.d.ts +1 -0
  122. package/adeo/components/heading/heading.component.d.ts +14 -0
  123. package/adeo/components/heading/heading.module.d.ts +8 -0
  124. package/adeo/components/heading/index.d.ts +4 -0
  125. package/adeo/components/heading/public-api.d.ts +1 -0
  126. package/adeo/components/icon/icon-size.d.ts +6 -0
  127. package/adeo/components/icon/icon.component.d.ts +15 -0
  128. package/adeo/components/icon/icon.module.d.ts +8 -0
  129. package/adeo/components/icon/icon.service.d.ts +13 -0
  130. package/adeo/components/icon/index.d.ts +3 -0
  131. package/adeo/components/icon/public-api.d.ts +1 -0
  132. package/adeo/components/layer/classes/layer-injector.d.ts +10 -0
  133. package/adeo/components/layer/classes/layer-ref.d.ts +21 -0
  134. package/adeo/components/layer/index.d.ts +5 -0
  135. package/adeo/components/layer/interfaces/index.d.ts +3 -0
  136. package/adeo/components/layer/interfaces/layer-config.d.ts +5 -0
  137. package/adeo/components/layer/interfaces/layer-di-params.d.ts +6 -0
  138. package/adeo/components/layer/interfaces/layer-ref.d.ts +15 -0
  139. package/adeo/components/layer/layer-animation.d.ts +1 -0
  140. package/adeo/components/layer/layer.component.d.ts +20 -0
  141. package/adeo/components/layer/layer.module.d.ts +9 -0
  142. package/adeo/components/layer/layer.service.d.ts +19 -0
  143. package/adeo/components/layer/public-api.d.ts +1 -0
  144. package/adeo/components/layer/tokens/index.d.ts +3 -0
  145. package/adeo/components/layer/tokens/layer-config.token.d.ts +2 -0
  146. package/adeo/components/layer/tokens/layer-data.token.d.ts +2 -0
  147. package/adeo/components/layer/tokens/layer-ref.token.d.ts +2 -0
  148. package/adeo/components/listbox/index.d.ts +3 -0
  149. package/adeo/components/listbox/listbox.component.d.ts +18 -0
  150. package/adeo/components/listbox/listbox.module.d.ts +10 -0
  151. package/adeo/components/listbox/model/listbox-item.d.ts +6 -0
  152. package/adeo/components/listbox/public-api.d.ts +1 -0
  153. package/adeo/components/loader/index.d.ts +3 -0
  154. package/adeo/components/loader/loader.component.d.ts +25 -0
  155. package/adeo/components/loader/loader.d.ts +16 -0
  156. package/adeo/components/loader/loader.module.d.ts +8 -0
  157. package/adeo/components/loader/loader.service.d.ts +18 -0
  158. package/adeo/components/loader/public-api.d.ts +1 -0
  159. package/adeo/components/notification/index.d.ts +8 -0
  160. package/adeo/components/notification/notification-animation.d.ts +1 -0
  161. package/adeo/components/notification/notification-container.component.d.ts +12 -0
  162. package/adeo/components/notification/notification-footer.d.ts +5 -0
  163. package/adeo/components/notification/notification-message.d.ts +5 -0
  164. package/adeo/components/notification/notification-title.d.ts +5 -0
  165. package/adeo/components/notification/notification.component.d.ts +9 -0
  166. package/adeo/components/notification/notification.d.ts +15 -0
  167. package/adeo/components/notification/notification.module.d.ts +15 -0
  168. package/adeo/components/notification/notification.service.d.ts +16 -0
  169. package/adeo/components/notification/public-api.d.ts +1 -0
  170. package/adeo/components/pagination/index.d.ts +2 -0
  171. package/adeo/components/pagination/pagination.component.d.ts +48 -0
  172. package/adeo/components/pagination/pagination.d.ts +7 -0
  173. package/adeo/components/pagination/pagination.module.d.ts +13 -0
  174. package/adeo/components/pagination/public-api.d.ts +1 -0
  175. package/adeo/components/progress-bar/index.d.ts +2 -0
  176. package/adeo/components/progress-bar/progress-bar-size.d.ts +1 -0
  177. package/adeo/components/progress-bar/progress-bar-theme.d.ts +1 -0
  178. package/adeo/components/progress-bar/progress-bar.component.d.ts +15 -0
  179. package/adeo/components/progress-bar/progress-bar.module.d.ts +8 -0
  180. package/adeo/components/progress-bar/public-api.d.ts +1 -0
  181. package/adeo/components/public-api.d.ts +28 -0
  182. package/adeo/components/select/index.d.ts +2 -0
  183. package/adeo/components/select/public-api.d.ts +1 -0
  184. package/adeo/components/select/select-size.d.ts +5 -0
  185. package/adeo/components/select/select.component.d.ts +8 -0
  186. package/adeo/components/select/select.module.d.ts +8 -0
  187. package/adeo/components/stepper/index.d.ts +3 -0
  188. package/adeo/components/stepper/public-api.d.ts +1 -0
  189. package/adeo/components/stepper/step-state.d.ts +1 -0
  190. package/adeo/components/stepper/step.component.d.ts +20 -0
  191. package/adeo/components/stepper/stepper.component.d.ts +20 -0
  192. package/adeo/components/stepper/stepper.module.d.ts +10 -0
  193. package/adeo/components/tabs/index.d.ts +3 -0
  194. package/adeo/components/tabs/public-api.d.ts +1 -0
  195. package/adeo/components/tabs/tab-selectors.d.ts +2 -0
  196. package/adeo/components/tabs/tab.component.d.ts +16 -0
  197. package/adeo/components/tabs/tabs.component.d.ts +36 -0
  198. package/adeo/components/tabs/tabs.module.d.ts +9 -0
  199. package/adeo/components/tag/index.d.ts +2 -0
  200. package/adeo/components/tag/public-api.d.ts +1 -0
  201. package/adeo/components/tag/tag-type.d.ts +5 -0
  202. package/adeo/components/tag/tag.component.d.ts +23 -0
  203. package/adeo/components/tag/tag.module.d.ts +9 -0
  204. package/adeo/components/taglist/components/taglist-layer-content/taglist-layer-content.component.d.ts +14 -0
  205. package/adeo/components/taglist/index.d.ts +3 -0
  206. package/adeo/components/taglist/public-api.d.ts +1 -0
  207. package/adeo/components/taglist/taglist.component.d.ts +26 -0
  208. package/adeo/components/taglist/taglist.module.d.ts +11 -0
  209. package/adeo/components/text-area/index.d.ts +2 -0
  210. package/adeo/components/text-area/public-api.d.ts +1 -0
  211. package/adeo/components/text-area/text-area.component.d.ts +12 -0
  212. package/adeo/components/text-area/text-area.module.d.ts +7 -0
  213. package/adeo/components/text-input/public-api.d.ts +2 -0
  214. package/adeo/components/text-input/text-input.component.d.ts +21 -0
  215. package/adeo/components/text-input/text-input.d.ts +1 -0
  216. package/adeo/components/text-input/text-input.module.d.ts +10 -0
  217. package/adeo/components/toggle/index.d.ts +2 -0
  218. package/adeo/components/toggle/public-api.d.ts +1 -0
  219. package/adeo/components/toggle/toggle-size.d.ts +1 -0
  220. package/adeo/components/toggle/toggle.component.d.ts +22 -0
  221. package/adeo/components/toggle/toggle.module.d.ts +8 -0
  222. package/adeo/components/tooltip/directive/tooltip.directive.d.ts +18 -0
  223. package/adeo/components/tooltip/index.d.ts +3 -0
  224. package/adeo/components/tooltip/public-api.d.ts +1 -0
  225. package/adeo/components/tooltip/tooltip-position.d.ts +1 -0
  226. package/adeo/components/tooltip/tooltip.component.d.ts +8 -0
  227. package/adeo/components/tooltip/tooltip.module.d.ts +9 -0
  228. package/adeo/esm2020/common/global-events/global-events.module.mjs +15 -0
  229. package/adeo/esm2020/common/global-events/global-events.service.mjs +30 -0
  230. package/adeo/esm2020/common/global-events/public-api.mjs +3 -0
  231. package/adeo/esm2020/common/index.mjs +3 -0
  232. package/adeo/esm2020/common/utils/boolean-property.mjs +4 -0
  233. package/adeo/esm2020/common/utils/generate-id.mjs +7 -0
  234. package/adeo/esm2020/common/utils/get-random-number.mjs +6 -0
  235. package/adeo/esm2020/common/utils/index.mjs +5 -0
  236. package/adeo/esm2020/common/utils/overwrite-style.mjs +5 -0
  237. package/adeo/esm2020/common/utils/public-api.mjs +2 -0
  238. package/adeo/esm2020/components/autocomplete/autocomplete.component.mjs +261 -0
  239. package/adeo/esm2020/components/autocomplete/autocomplete.module.mjs +48 -0
  240. package/adeo/esm2020/components/autocomplete/index.mjs +3 -0
  241. package/adeo/esm2020/components/autocomplete/public-api.mjs +2 -0
  242. package/adeo/esm2020/components/badge/badge.component.mjs +30 -0
  243. package/adeo/esm2020/components/badge/badge.mjs +2 -0
  244. package/adeo/esm2020/components/badge/badge.module.mjs +18 -0
  245. package/adeo/esm2020/components/badge/index.mjs +3 -0
  246. package/adeo/esm2020/components/badge/public-api.mjs +2 -0
  247. package/adeo/esm2020/components/built-it-menu/built-it-menu.component.mjs +34 -0
  248. package/adeo/esm2020/components/built-it-menu/built-it-menu.module.mjs +19 -0
  249. package/adeo/esm2020/components/built-it-menu/index.mjs +3 -0
  250. package/adeo/esm2020/components/built-it-menu/model/built-it-menu.mjs +2 -0
  251. package/adeo/esm2020/components/built-it-menu/public-api.mjs +2 -0
  252. package/adeo/esm2020/components/button/button.component.mjs +53 -0
  253. package/adeo/esm2020/components/button/button.mjs +2 -0
  254. package/adeo/esm2020/components/button/button.module.mjs +18 -0
  255. package/adeo/esm2020/components/button/index.mjs +3 -0
  256. package/adeo/esm2020/components/button/public-api.mjs +2 -0
  257. package/adeo/esm2020/components/checkbox/checkbox.component.mjs +58 -0
  258. package/adeo/esm2020/components/checkbox/checkbox.module.mjs +21 -0
  259. package/adeo/esm2020/components/checkbox/public-api.mjs +3 -0
  260. package/adeo/esm2020/components/datatable/components/caption/moz-datatable-caption.component.mjs +26 -0
  261. package/adeo/esm2020/components/datatable/components/content/moz-datatable-content-cell.component.mjs +16 -0
  262. package/adeo/esm2020/components/datatable/components/footer/moz-datatable-footer.component.mjs +58 -0
  263. package/adeo/esm2020/components/datatable/components/header/moz-datatable-header-cell.component.mjs +16 -0
  264. package/adeo/esm2020/components/datatable/components/row/moz-datatable-row-expansion-content.component.mjs +14 -0
  265. package/adeo/esm2020/components/datatable/components/selection/moz-datatable-selection.component.mjs +289 -0
  266. package/adeo/esm2020/components/datatable/directives/moz-datatable-sort.directive.mjs +65 -0
  267. package/adeo/esm2020/components/datatable/model/column-def.mjs +2 -0
  268. package/adeo/esm2020/components/datatable/model/datatable-settings.mjs +2 -0
  269. package/adeo/esm2020/components/datatable/model/footer-settings.mjs +2 -0
  270. package/adeo/esm2020/components/datatable/model/row-data.mjs +2 -0
  271. package/adeo/esm2020/components/datatable/model/selection-settings.mjs +2 -0
  272. package/adeo/esm2020/components/datatable/moz-datatable.component.mjs +161 -0
  273. package/adeo/esm2020/components/datatable/moz-datatable.module.mjs +87 -0
  274. package/adeo/esm2020/components/datatable/public-api.mjs +14 -0
  275. package/adeo/esm2020/components/datatable-management/components/moz-datatable-management-content/moz-datatable-management-content.component.mjs +80 -0
  276. package/adeo/esm2020/components/datatable-management/moz-datatable-management.component.mjs +45 -0
  277. package/adeo/esm2020/components/datatable-management/moz-datatable-management.module.mjs +45 -0
  278. package/adeo/esm2020/components/datatable-management/public-api.mjs +4 -0
  279. package/adeo/esm2020/components/dialog/classes/dialog-config.mjs +9 -0
  280. package/adeo/esm2020/components/dialog/classes/dialog-injector.mjs +22 -0
  281. package/adeo/esm2020/components/dialog/classes/dialog-ref.mjs +49 -0
  282. package/adeo/esm2020/components/dialog/classes/index.mjs +4 -0
  283. package/adeo/esm2020/components/dialog/dialog-animation.mjs +18 -0
  284. package/adeo/esm2020/components/dialog/dialog.component.mjs +57 -0
  285. package/adeo/esm2020/components/dialog/dialog.module.mjs +20 -0
  286. package/adeo/esm2020/components/dialog/dialog.service.mjs +67 -0
  287. package/adeo/esm2020/components/dialog/interfaces/dialog-config.mjs +2 -0
  288. package/adeo/esm2020/components/dialog/interfaces/dialog-di-params.mjs +2 -0
  289. package/adeo/esm2020/components/dialog/interfaces/dialog-ref.mjs +2 -0
  290. package/adeo/esm2020/components/dialog/interfaces/index.mjs +4 -0
  291. package/adeo/esm2020/components/dialog/public-api.mjs +6 -0
  292. package/adeo/esm2020/components/dialog/tokens/dialog-config.token.mjs +3 -0
  293. package/adeo/esm2020/components/dialog/tokens/dialog-data.token.mjs +3 -0
  294. package/adeo/esm2020/components/dialog/tokens/dialog-ref.token.mjs +3 -0
  295. package/adeo/esm2020/components/dialog/tokens/index.mjs +4 -0
  296. package/adeo/esm2020/components/dropdown/dropdown.component.mjs +217 -0
  297. package/adeo/esm2020/components/dropdown/dropdown.module.mjs +44 -0
  298. package/adeo/esm2020/components/dropdown/index.mjs +3 -0
  299. package/adeo/esm2020/components/dropdown/public-api.mjs +2 -0
  300. package/adeo/esm2020/components/field/directives/input-icon.directive.mjs +15 -0
  301. package/adeo/esm2020/components/field/field-error.component.mjs +13 -0
  302. package/adeo/esm2020/components/field/field.component.mjs +40 -0
  303. package/adeo/esm2020/components/field/field.module.mjs +20 -0
  304. package/adeo/esm2020/components/field/index.mjs +5 -0
  305. package/adeo/esm2020/components/field/public-api.mjs +2 -0
  306. package/adeo/esm2020/components/file-uploader/components/uploaded-files/uploaded-files.component.mjs +50 -0
  307. package/adeo/esm2020/components/file-uploader/directives/moz-drag-n-drop.directive.mjs +53 -0
  308. package/adeo/esm2020/components/file-uploader/file-uploader.component.mjs +106 -0
  309. package/adeo/esm2020/components/file-uploader/file-uploader.module.mjs +21 -0
  310. package/adeo/esm2020/components/file-uploader/index.mjs +5 -0
  311. package/adeo/esm2020/components/file-uploader/public-api.mjs +2 -0
  312. package/adeo/esm2020/components/heading/heading-alignment.mjs +2 -0
  313. package/adeo/esm2020/components/heading/heading-weight-type.mjs +2 -0
  314. package/adeo/esm2020/components/heading/heading.component.mjs +32 -0
  315. package/adeo/esm2020/components/heading/heading.module.mjs +18 -0
  316. package/adeo/esm2020/components/heading/index.mjs +5 -0
  317. package/adeo/esm2020/components/heading/public-api.mjs +2 -0
  318. package/adeo/esm2020/components/icon/icon-size.mjs +8 -0
  319. package/adeo/esm2020/components/icon/icon.component.mjs +49 -0
  320. package/adeo/esm2020/components/icon/icon.module.mjs +18 -0
  321. package/adeo/esm2020/components/icon/icon.service.mjs +42 -0
  322. package/adeo/esm2020/components/icon/index.mjs +4 -0
  323. package/adeo/esm2020/components/icon/public-api.mjs +2 -0
  324. package/adeo/esm2020/components/layer/classes/layer-injector.mjs +22 -0
  325. package/adeo/esm2020/components/layer/classes/layer-ref.mjs +38 -0
  326. package/adeo/esm2020/components/layer/index.mjs +6 -0
  327. package/adeo/esm2020/components/layer/interfaces/index.mjs +4 -0
  328. package/adeo/esm2020/components/layer/interfaces/layer-config.mjs +2 -0
  329. package/adeo/esm2020/components/layer/interfaces/layer-di-params.mjs +2 -0
  330. package/adeo/esm2020/components/layer/interfaces/layer-ref.mjs +2 -0
  331. package/adeo/esm2020/components/layer/layer-animation.mjs +18 -0
  332. package/adeo/esm2020/components/layer/layer.component.mjs +45 -0
  333. package/adeo/esm2020/components/layer/layer.module.mjs +21 -0
  334. package/adeo/esm2020/components/layer/layer.service.mjs +56 -0
  335. package/adeo/esm2020/components/layer/public-api.mjs +2 -0
  336. package/adeo/esm2020/components/layer/tokens/index.mjs +4 -0
  337. package/adeo/esm2020/components/layer/tokens/layer-config.token.mjs +3 -0
  338. package/adeo/esm2020/components/layer/tokens/layer-data.token.mjs +3 -0
  339. package/adeo/esm2020/components/layer/tokens/layer-ref.token.mjs +3 -0
  340. package/adeo/esm2020/components/listbox/index.mjs +4 -0
  341. package/adeo/esm2020/components/listbox/listbox.component.mjs +68 -0
  342. package/adeo/esm2020/components/listbox/listbox.module.mjs +20 -0
  343. package/adeo/esm2020/components/listbox/model/listbox-item.mjs +2 -0
  344. package/adeo/esm2020/components/listbox/public-api.mjs +2 -0
  345. package/adeo/esm2020/components/loader/index.mjs +4 -0
  346. package/adeo/esm2020/components/loader/loader.component.mjs +53 -0
  347. package/adeo/esm2020/components/loader/loader.mjs +11 -0
  348. package/adeo/esm2020/components/loader/loader.module.mjs +20 -0
  349. package/adeo/esm2020/components/loader/loader.service.mjs +53 -0
  350. package/adeo/esm2020/components/loader/public-api.mjs +2 -0
  351. package/adeo/esm2020/components/notification/index.mjs +9 -0
  352. package/adeo/esm2020/components/notification/notification-animation.mjs +21 -0
  353. package/adeo/esm2020/components/notification/notification-container.component.mjs +38 -0
  354. package/adeo/esm2020/components/notification/notification-footer.mjs +11 -0
  355. package/adeo/esm2020/components/notification/notification-message.mjs +11 -0
  356. package/adeo/esm2020/components/notification/notification-title.mjs +11 -0
  357. package/adeo/esm2020/components/notification/notification.component.mjs +29 -0
  358. package/adeo/esm2020/components/notification/notification.mjs +8 -0
  359. package/adeo/esm2020/components/notification/notification.module.mjs +66 -0
  360. package/adeo/esm2020/components/notification/notification.service.mjs +40 -0
  361. package/adeo/esm2020/components/notification/public-api.mjs +2 -0
  362. package/adeo/esm2020/components/pagination/index.mjs +3 -0
  363. package/adeo/esm2020/components/pagination/pagination.component.mjs +140 -0
  364. package/adeo/esm2020/components/pagination/pagination.mjs +4 -0
  365. package/adeo/esm2020/components/pagination/pagination.module.mjs +23 -0
  366. package/adeo/esm2020/components/pagination/public-api.mjs +2 -0
  367. package/adeo/esm2020/components/progress-bar/index.mjs +3 -0
  368. package/adeo/esm2020/components/progress-bar/progress-bar-size.mjs +2 -0
  369. package/adeo/esm2020/components/progress-bar/progress-bar-theme.mjs +2 -0
  370. package/adeo/esm2020/components/progress-bar/progress-bar.component.mjs +38 -0
  371. package/adeo/esm2020/components/progress-bar/progress-bar.module.mjs +18 -0
  372. package/adeo/esm2020/components/progress-bar/public-api.mjs +2 -0
  373. package/adeo/esm2020/components/public-api.mjs +29 -0
  374. package/adeo/esm2020/components/select/index.mjs +3 -0
  375. package/adeo/esm2020/components/select/public-api.mjs +2 -0
  376. package/adeo/esm2020/components/select/select-size.mjs +6 -0
  377. package/adeo/esm2020/components/select/select.component.mjs +25 -0
  378. package/adeo/esm2020/components/select/select.module.mjs +18 -0
  379. package/adeo/esm2020/components/stepper/index.mjs +4 -0
  380. package/adeo/esm2020/components/stepper/public-api.mjs +2 -0
  381. package/adeo/esm2020/components/stepper/step-state.mjs +2 -0
  382. package/adeo/esm2020/components/stepper/step.component.mjs +51 -0
  383. package/adeo/esm2020/components/stepper/stepper.component.mjs +79 -0
  384. package/adeo/esm2020/components/stepper/stepper.module.mjs +20 -0
  385. package/adeo/esm2020/components/tabs/index.mjs +4 -0
  386. package/adeo/esm2020/components/tabs/public-api.mjs +2 -0
  387. package/adeo/esm2020/components/tabs/tab-selectors.mjs +3 -0
  388. package/adeo/esm2020/components/tabs/tab.component.mjs +53 -0
  389. package/adeo/esm2020/components/tabs/tabs.component.mjs +128 -0
  390. package/adeo/esm2020/components/tabs/tabs.module.mjs +19 -0
  391. package/adeo/esm2020/components/tag/index.mjs +3 -0
  392. package/adeo/esm2020/components/tag/public-api.mjs +2 -0
  393. package/adeo/esm2020/components/tag/tag-type.mjs +2 -0
  394. package/adeo/esm2020/components/tag/tag.component.mjs +61 -0
  395. package/adeo/esm2020/components/tag/tag.module.mjs +19 -0
  396. package/adeo/esm2020/components/taglist/components/taglist-layer-content/taglist-layer-content.component.mjs +35 -0
  397. package/adeo/esm2020/components/taglist/index.mjs +4 -0
  398. package/adeo/esm2020/components/taglist/public-api.mjs +2 -0
  399. package/adeo/esm2020/components/taglist/taglist.component.mjs +76 -0
  400. package/adeo/esm2020/components/taglist/taglist.module.mjs +21 -0
  401. package/adeo/esm2020/components/text-area/index.mjs +3 -0
  402. package/adeo/esm2020/components/text-area/public-api.mjs +2 -0
  403. package/adeo/esm2020/components/text-area/text-area.component.mjs +43 -0
  404. package/adeo/esm2020/components/text-area/text-area.module.mjs +16 -0
  405. package/adeo/esm2020/components/text-input/public-api.mjs +3 -0
  406. package/adeo/esm2020/components/text-input/text-input.component.mjs +64 -0
  407. package/adeo/esm2020/components/text-input/text-input.mjs +2 -0
  408. package/adeo/esm2020/components/text-input/text-input.module.mjs +20 -0
  409. package/adeo/esm2020/components/toggle/index.mjs +3 -0
  410. package/adeo/esm2020/components/toggle/public-api.mjs +2 -0
  411. package/adeo/esm2020/components/toggle/toggle-size.mjs +2 -0
  412. package/adeo/esm2020/components/toggle/toggle.component.mjs +59 -0
  413. package/adeo/esm2020/components/toggle/toggle.module.mjs +18 -0
  414. package/adeo/esm2020/components/tooltip/directive/tooltip.directive.mjs +85 -0
  415. package/adeo/esm2020/components/tooltip/index.mjs +4 -0
  416. package/adeo/esm2020/components/tooltip/public-api.mjs +2 -0
  417. package/adeo/esm2020/components/tooltip/tooltip-position.mjs +2 -0
  418. package/adeo/esm2020/components/tooltip/tooltip.component.mjs +20 -0
  419. package/adeo/esm2020/components/tooltip/tooltip.module.mjs +19 -0
  420. package/adeo/esm2020/mozaic-ds-angular.mjs +5 -0
  421. package/adeo/esm2020/public-api.mjs +3 -0
  422. package/adeo/fesm2015/mozaic-ds-angular.mjs +4001 -0
  423. package/adeo/fesm2015/mozaic-ds-angular.mjs.map +1 -0
  424. package/adeo/fesm2020/mozaic-ds-angular.mjs +3954 -0
  425. package/adeo/fesm2020/mozaic-ds-angular.mjs.map +1 -0
  426. package/adeo/index.d.ts +5 -0
  427. package/adeo/package.json +40 -0
  428. package/adeo/public-api.d.ts +2 -0
  429. package/assets/tokens/adeo/android/colors.xml +11 -2
  430. package/assets/tokens/adeo/css/_variables.scss +11 -2
  431. package/assets/tokens/adeo/css/root.scss +12 -3
  432. package/assets/tokens/adeo/ios/StyleDictionaryColor.h +10 -1
  433. package/assets/tokens/adeo/ios/StyleDictionaryColor.m +11 -2
  434. package/assets/tokens/adeo/ios/StyleDictionaryColor.swift +11 -2
  435. package/assets/tokens/adeo/js/tokens.js +11 -2
  436. package/assets/tokens/adeo/js/tokensObject.js +165 -15
  437. package/assets/tokens/adeo/scss/_tokens.scss +31 -3
  438. package/components/autocomplete/autocomplete.component.d.ts +5 -4
  439. package/components/badge/public-api.d.ts +1 -0
  440. package/components/built-it-menu/built-it-menu.component.d.ts +12 -0
  441. package/components/built-it-menu/built-it-menu.module.d.ts +9 -0
  442. package/components/built-it-menu/index.d.ts +2 -0
  443. package/components/built-it-menu/model/built-it-menu.d.ts +9 -0
  444. package/components/built-it-menu/public-api.d.ts +1 -0
  445. package/components/button/public-api.d.ts +1 -0
  446. package/components/datatable/components/footer/moz-datatable-footer.component.d.ts +3 -3
  447. package/components/dropdown/dropdown.component.d.ts +1 -1
  448. package/components/field/index.d.ts +4 -0
  449. package/components/field/public-api.d.ts +1 -4
  450. package/components/file-uploader/components/uploaded-files/uploaded-files.component.d.ts +17 -0
  451. package/components/file-uploader/directives/moz-drag-n-drop.directive.d.ts +11 -0
  452. package/components/file-uploader/file-uploader.component.d.ts +34 -0
  453. package/components/file-uploader/file-uploader.module.d.ts +11 -0
  454. package/components/file-uploader/index.d.ts +4 -0
  455. package/components/file-uploader/public-api.d.ts +1 -0
  456. package/components/heading/heading-alignment.d.ts +1 -0
  457. package/components/heading/heading-weight-type.d.ts +1 -0
  458. package/components/heading/heading.component.d.ts +14 -0
  459. package/components/heading/heading.module.d.ts +8 -0
  460. package/components/heading/index.d.ts +4 -0
  461. package/components/heading/public-api.d.ts +1 -0
  462. package/components/icon/index.d.ts +3 -0
  463. package/components/icon/public-api.d.ts +1 -3
  464. package/components/layer/index.d.ts +5 -0
  465. package/components/layer/public-api.d.ts +1 -5
  466. package/components/loader/index.d.ts +3 -0
  467. package/components/loader/loader.component.d.ts +2 -2
  468. package/components/loader/public-api.d.ts +1 -3
  469. package/components/notification/index.d.ts +8 -0
  470. package/components/notification/public-api.d.ts +1 -8
  471. package/components/pagination/index.d.ts +2 -0
  472. package/components/pagination/public-api.d.ts +1 -2
  473. package/components/progress-bar/index.d.ts +2 -0
  474. package/components/progress-bar/public-api.d.ts +1 -2
  475. package/components/public-api.d.ts +5 -2
  476. package/components/select/index.d.ts +2 -0
  477. package/components/select/public-api.d.ts +1 -2
  478. package/components/stepper/index.d.ts +3 -0
  479. package/components/stepper/public-api.d.ts +1 -3
  480. package/components/tabs/index.d.ts +3 -0
  481. package/components/tabs/public-api.d.ts +1 -3
  482. package/components/tag/index.d.ts +2 -0
  483. package/components/tag/public-api.d.ts +1 -2
  484. package/components/text-area/index.d.ts +2 -0
  485. package/components/text-area/public-api.d.ts +1 -2
  486. package/components/toggle/index.d.ts +2 -0
  487. package/components/toggle/public-api.d.ts +1 -2
  488. package/esm2020/components/autocomplete/autocomplete.component.mjs +45 -36
  489. package/esm2020/components/badge/public-api.mjs +2 -0
  490. package/esm2020/components/built-it-menu/built-it-menu.component.mjs +34 -0
  491. package/esm2020/components/built-it-menu/built-it-menu.module.mjs +19 -0
  492. package/esm2020/components/built-it-menu/index.mjs +3 -0
  493. package/esm2020/components/built-it-menu/model/built-it-menu.mjs +2 -0
  494. package/esm2020/components/built-it-menu/public-api.mjs +2 -0
  495. package/esm2020/components/button/public-api.mjs +2 -0
  496. package/esm2020/components/datatable/components/footer/moz-datatable-footer.component.mjs +8 -6
  497. package/esm2020/components/dropdown/dropdown.component.mjs +6 -6
  498. package/esm2020/components/dropdown/dropdown.module.mjs +1 -1
  499. package/esm2020/components/field/index.mjs +5 -0
  500. package/esm2020/components/field/public-api.mjs +2 -5
  501. package/esm2020/components/file-uploader/components/uploaded-files/uploaded-files.component.mjs +50 -0
  502. package/esm2020/components/file-uploader/directives/moz-drag-n-drop.directive.mjs +53 -0
  503. package/esm2020/components/file-uploader/file-uploader.component.mjs +106 -0
  504. package/esm2020/components/file-uploader/file-uploader.module.mjs +21 -0
  505. package/esm2020/components/file-uploader/index.mjs +5 -0
  506. package/esm2020/components/file-uploader/public-api.mjs +2 -0
  507. package/esm2020/components/heading/heading-alignment.mjs +2 -0
  508. package/esm2020/components/heading/heading-weight-type.mjs +2 -0
  509. package/esm2020/components/heading/heading.component.mjs +32 -0
  510. package/esm2020/components/heading/heading.module.mjs +18 -0
  511. package/esm2020/components/heading/index.mjs +5 -0
  512. package/esm2020/components/heading/public-api.mjs +2 -0
  513. package/esm2020/components/icon/icon.service.mjs +1 -1
  514. package/esm2020/components/icon/index.mjs +4 -0
  515. package/esm2020/components/icon/public-api.mjs +2 -4
  516. package/esm2020/components/layer/index.mjs +6 -0
  517. package/esm2020/components/layer/layer.module.mjs +2 -2
  518. package/esm2020/components/layer/public-api.mjs +2 -6
  519. package/esm2020/components/listbox/listbox.component.mjs +2 -2
  520. package/esm2020/components/loader/index.mjs +4 -0
  521. package/esm2020/components/loader/loader.component.mjs +9 -3
  522. package/esm2020/components/loader/public-api.mjs +2 -4
  523. package/esm2020/components/notification/index.mjs +9 -0
  524. package/esm2020/components/notification/public-api.mjs +2 -9
  525. package/esm2020/components/pagination/index.mjs +3 -0
  526. package/esm2020/components/pagination/public-api.mjs +2 -3
  527. package/esm2020/components/progress-bar/index.mjs +3 -0
  528. package/esm2020/components/progress-bar/public-api.mjs +2 -3
  529. package/esm2020/components/public-api.mjs +6 -3
  530. package/esm2020/components/select/index.mjs +3 -0
  531. package/esm2020/components/select/public-api.mjs +2 -3
  532. package/esm2020/components/select/select.component.mjs +2 -2
  533. package/esm2020/components/stepper/index.mjs +4 -0
  534. package/esm2020/components/stepper/public-api.mjs +2 -4
  535. package/esm2020/components/stepper/stepper.module.mjs +2 -2
  536. package/esm2020/components/tabs/index.mjs +4 -0
  537. package/esm2020/components/tabs/public-api.mjs +2 -4
  538. package/esm2020/components/tag/index.mjs +3 -0
  539. package/esm2020/components/tag/public-api.mjs +2 -3
  540. package/esm2020/components/tag/tag.component.mjs +2 -2
  541. package/esm2020/components/text-area/index.mjs +3 -0
  542. package/esm2020/components/text-area/public-api.mjs +2 -3
  543. package/esm2020/components/text-input/text-input.module.mjs +2 -2
  544. package/esm2020/components/toggle/index.mjs +3 -0
  545. package/esm2020/components/toggle/public-api.mjs +2 -3
  546. package/esm2020/components/tooltip/tooltip.component.mjs +2 -2
  547. package/fesm2015/mozaic-ds-angular.mjs +378 -56
  548. package/fesm2015/mozaic-ds-angular.mjs.map +1 -1
  549. package/fesm2020/mozaic-ds-angular.mjs +372 -56
  550. package/fesm2020/mozaic-ds-angular.mjs.map +1 -1
  551. package/package.json +2 -2
@@ -0,0 +1,289 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ export class MozDatatableSelectionComponent {
5
+ constructor(ref) {
6
+ this.ref = ref;
7
+ this.updateSelectionAllEmitter = new EventEmitter();
8
+ this.isIndeterminate = false;
9
+ }
10
+ ngOnChanges(changes) {
11
+ if (changes['rowData']) {
12
+ this.updateSelection();
13
+ }
14
+ }
15
+ updateSelection() {
16
+ if (this.selectionSettings && this.rowData) {
17
+ this.rowData
18
+ ?.filter((row) => !row.disableSelection &&
19
+ row.selected &&
20
+ this.selectionSettings?.selectedIds.filter((selectedRow) => {
21
+ return (!this.selectionSettings?.allSelected &&
22
+ this.selectionSettings &&
23
+ selectedRow === row[this.selectionSettings.selectionIdentifierFieldKey]);
24
+ }).length === 0)
25
+ .forEach((row) => {
26
+ this.selectionSettings?.selectedIds.push(row[this.selectionSettings.selectionIdentifierFieldKey]);
27
+ });
28
+ if ((this.selectionSettings?.selectedIds || []).length ===
29
+ this.selectionSettings.totalSelectableItems) {
30
+ this.selectionSettings.allSelected = true;
31
+ this.selectionSettings.selectedIds = [];
32
+ this.selectionSettings.excludedIds = [];
33
+ }
34
+ this.isIndeterminate = this.isSelectionIndeterminate();
35
+ this.selectionSettings.allSelected = this.isAllPageRowAreSelected();
36
+ this.ref.markForCheck();
37
+ }
38
+ }
39
+ selectAll() {
40
+ if (this.selectionSettings) {
41
+ this.selectionSettings.excludedIds = [];
42
+ this.selectionSettings.selectedIds = [];
43
+ this.selectionSettings.allSelected = true;
44
+ this.updateSelectedValueOnRowData(true);
45
+ this.isIndeterminate = this.isSelectionIndeterminate();
46
+ this.selectionSettings.allSelected = this.isAllPageRowAreSelected();
47
+ this.updateSelectionAllEmitter.emit(this.selectionSettings);
48
+ this.ref.markForCheck();
49
+ }
50
+ }
51
+ clearAll() {
52
+ if (this.selectionSettings) {
53
+ this.selectionSettings.excludedIds = [];
54
+ this.selectionSettings.selectedIds = [];
55
+ this.selectionSettings.allSelected = false;
56
+ this.updateSelectedValueOnRowData(false);
57
+ this.isIndeterminate = this.isSelectionIndeterminate();
58
+ this.selectionSettings.allSelected = this.isAllPageRowAreSelected();
59
+ this.updateSelectionAllEmitter.emit(this.selectionSettings);
60
+ this.ref.markForCheck();
61
+ }
62
+ }
63
+ isAllPageRowAreSelected() {
64
+ if (this.rowData) {
65
+ const selectedRows = this.rowData.filter((row) => !row.disableSelection && row.selected === true);
66
+ return (selectedRows.length === this.rowData.filter((row) => !row.disableSelection).length &&
67
+ this.rowData.filter((row) => !row.disableSelection).length > 0);
68
+ }
69
+ return false;
70
+ }
71
+ onUdpateSelectionRow(row) {
72
+ this.handleCountItemSelection(row);
73
+ }
74
+ onUdpateSelectionAllPageRows($event) {
75
+ this.updateSelectedValueOnRowData($event.target.checked);
76
+ this.handleCountAllSelection(this.isAllPageRowAreSelected());
77
+ }
78
+ handleCountItemSelection(row) {
79
+ if (this.selectionSettings != null) {
80
+ const selectionIdentifierFieldKey = this.selectionSettings.selectionIdentifierFieldKey;
81
+ if (this.selectionSettings.allSelected) {
82
+ if (row.selected) {
83
+ this.selectionSettings.excludedIds = [
84
+ ...this.selectionSettings.excludedIds.filter((deselectedId) => {
85
+ return deselectedId !== row[selectionIdentifierFieldKey];
86
+ }),
87
+ ];
88
+ }
89
+ else {
90
+ if (this.paginationEnabled) {
91
+ this.selectionSettings.excludedIds = [
92
+ ...this.selectionSettings.excludedIds,
93
+ row[selectionIdentifierFieldKey],
94
+ ];
95
+ }
96
+ else {
97
+ this.selectionSettings.selectedIds = [
98
+ ...this.selectionSettings.selectedIds.filter((selectedId) => selectedId !== row[selectionIdentifierFieldKey]),
99
+ ];
100
+ this.selectionSettings.allSelected = false;
101
+ }
102
+ if (this.selectionSettings.excludedIds.length ===
103
+ this.selectionSettings.totalSelectableItems) {
104
+ this.selectionSettings.excludedIds = [];
105
+ this.selectionSettings.allSelected = false;
106
+ }
107
+ }
108
+ }
109
+ else {
110
+ if (row.selected) {
111
+ this.selectionSettings.selectedIds = [
112
+ ...this.selectionSettings.selectedIds,
113
+ row[selectionIdentifierFieldKey],
114
+ ];
115
+ if (this.selectionSettings.selectedIds.length ===
116
+ this.selectionSettings.totalSelectableItems) {
117
+ if (this.paginationEnabled) {
118
+ this.selectionSettings.selectedIds = [];
119
+ }
120
+ this.selectionSettings.allSelected = true;
121
+ }
122
+ }
123
+ else {
124
+ this.selectionSettings.selectedIds = [
125
+ ...this.selectionSettings.selectedIds.filter((selectedId) => {
126
+ return selectedId !== row[selectionIdentifierFieldKey];
127
+ }),
128
+ ];
129
+ }
130
+ }
131
+ this.isIndeterminate = this.isSelectionIndeterminate();
132
+ this.ref.markForCheck();
133
+ }
134
+ }
135
+ handleCountAllSelection(allPageRowsSelected) {
136
+ if (this.selectionSettings) {
137
+ const selectionIdentifierFieldKey = this.selectionSettings.selectionIdentifierFieldKey;
138
+ if (this.selectionSettings?.allSelected) {
139
+ if (this.isIndeterminate && this.rowData) {
140
+ this.rowData
141
+ .filter((row) => !row.disableSelection)
142
+ .filter((row) => !(this.selectionSettings?.selectedIds || []).includes(row[selectionIdentifierFieldKey]))
143
+ .forEach((row) => {
144
+ if (this.selectionSettings) {
145
+ this.selectionSettings.selectedIds = [
146
+ ...this.selectionSettings.selectedIds,
147
+ row[selectionIdentifierFieldKey],
148
+ ];
149
+ }
150
+ });
151
+ this.rowData
152
+ .filter((row) => !row.disableSelection)
153
+ .forEach((row) => {
154
+ if (this.selectionSettings) {
155
+ const index = this.selectionSettings.excludedIds.indexOf(row[selectionIdentifierFieldKey], 0);
156
+ if (index > -1) {
157
+ this.selectionSettings.excludedIds.splice(index, 1);
158
+ this.selectionSettings.excludedIds = [...this.selectionSettings.excludedIds];
159
+ }
160
+ }
161
+ });
162
+ if (this.selectionSettings.selectedIds.length ===
163
+ this.selectionSettings.totalSelectableItems) {
164
+ this.selectionSettings.allSelected = true;
165
+ this.selectionSettings.selectedIds = [];
166
+ this.rowData = this.rowData
167
+ ?.filter((row) => !row.disableSelection)
168
+ .map((row) => {
169
+ row.selected = true;
170
+ return row;
171
+ });
172
+ }
173
+ }
174
+ else {
175
+ if (this.rowData) {
176
+ this.selectionSettings.excludedIds = [
177
+ ...this.selectionSettings.excludedIds,
178
+ ...this.rowData
179
+ .filter((row) => !row.disableSelection)
180
+ .map((row) => row[selectionIdentifierFieldKey]),
181
+ ];
182
+ if (this.selectionSettings.excludedIds.length ===
183
+ this.selectionSettings.totalSelectableItems) {
184
+ this.selectionSettings.allSelected = false;
185
+ this.selectionSettings.selectedIds = [];
186
+ this.selectionSettings.excludedIds = [];
187
+ this.rowData = this.rowData
188
+ ?.filter((row) => !row.disableSelection)
189
+ .map((row) => {
190
+ row.selected = false;
191
+ return row;
192
+ });
193
+ }
194
+ }
195
+ }
196
+ }
197
+ else {
198
+ if (allPageRowsSelected && this.rowData) {
199
+ this.rowData
200
+ .filter((row) => !row.disableSelection)
201
+ .filter((row) => !(this.selectionSettings?.selectedIds || []).includes(row[selectionIdentifierFieldKey]))
202
+ .forEach((row) => {
203
+ if (this.selectionSettings) {
204
+ this.selectionSettings.selectedIds = [
205
+ ...this.selectionSettings.selectedIds,
206
+ row[selectionIdentifierFieldKey],
207
+ ];
208
+ }
209
+ });
210
+ if (this.selectionSettings.selectedIds.length ===
211
+ this.selectionSettings.totalSelectableItems) {
212
+ if (this.paginationEnabled) {
213
+ this.selectionSettings.selectedIds = [];
214
+ }
215
+ this.selectionSettings.allSelected = true;
216
+ }
217
+ }
218
+ else {
219
+ if (this.rowData) {
220
+ this.rowData
221
+ .filter((row) => !row.disableSelection)
222
+ .forEach((row) => {
223
+ if (this.selectionSettings) {
224
+ this.selectionSettings.selectedIds = [
225
+ ...this.selectionSettings.selectedIds.filter((selectedId) => {
226
+ return selectedId !== row[selectionIdentifierFieldKey];
227
+ }),
228
+ ];
229
+ }
230
+ });
231
+ }
232
+ }
233
+ }
234
+ }
235
+ this.isIndeterminate = this.isSelectionIndeterminate();
236
+ this.ref.markForCheck();
237
+ }
238
+ updateSelectedValueOnRowData(selected) {
239
+ this.rowData = this.rowData
240
+ ?.filter((row) => !row.disableSelection)
241
+ .map((row) => {
242
+ row.selected = selected;
243
+ return row;
244
+ });
245
+ }
246
+ isSelectionIndeterminate() {
247
+ if (this.selectionSettings) {
248
+ if ((!this.selectionSettings.allSelected &&
249
+ this.rowData
250
+ ?.filter((row) => !row.disableSelection)
251
+ .map((row) => {
252
+ if (this.selectionSettings) {
253
+ return row[this.selectionSettings.selectionIdentifierFieldKey];
254
+ }
255
+ })
256
+ .every((item) => (this.selectionSettings?.selectedIds || []).includes(item))) ||
257
+ (!this.selectionSettings.allSelected && this.selectionSettings.selectedIds.length === 0) ||
258
+ (this.selectionSettings.allSelected &&
259
+ this.rowData &&
260
+ !this.rowData
261
+ .map((row) => {
262
+ if (this.selectionSettings) {
263
+ return row[this.selectionSettings.selectionIdentifierFieldKey];
264
+ }
265
+ })
266
+ .some((id) => (this.selectionSettings?.excludedIds || []).includes(id))) ||
267
+ (this.selectionSettings.allSelected && this.selectionSettings.excludedIds.length === 0)) {
268
+ return false;
269
+ }
270
+ return true;
271
+ }
272
+ return false;
273
+ }
274
+ }
275
+ MozDatatableSelectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MozDatatableSelectionComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
276
+ MozDatatableSelectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: MozDatatableSelectionComponent, selector: "moz-datatable-selection", inputs: { selectionSettings: "selectionSettings", paginationEnabled: "paginationEnabled", rowData: "rowData" }, outputs: { updateSelectionAllEmitter: "updateSelectionAllEmitter" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"mc-datatable__selection\">\n <ng-container *ngIf=\"selectionSettings && selectionSettings.labels && paginationEnabled\">\n <div class=\"mc-datatable__topbar-selection\">\n <ng-container *ngIf=\"selectionSettings.selectedIds.length || selectionSettings.allSelected\">\n <div class=\"center-selection-label\">\n <div *ngIf=\"selectionSettings.allSelected; else notAllSelected\">\n <ng-container *ngIf=\"selectionSettings.excludedIds.length > 0; else exludedIdsEmpty\">\n <span>\n <b\n >{{\n selectionSettings.totalSelectableItems - selectionSettings.excludedIds.length\n }}\n {{ selectionSettings.labels.selectedLabel || 'selected' }}</b\n >\n <ng-container\n *ngIf=\"\n selectionSettings.totalSelectableItems -\n selectionSettings.excludedIds.length ===\n 1;\n else plurialAllSelected\n \"\n >\n {{ selectionSettings.labels.rowOnPageLabel || 'row on the page. ' }}-\n </ng-container>\n <ng-template #plurialAllSelected>\n {{ selectionSettings.labels.rowsOnPageLabel || 'rows on the page. ' }}-\n </ng-template>\n\n {{ selectionSettings.labels.rowsOnPageLabel || 'rows on the page. ' }}-\n <a href=\"/\" (click)=\"selectAll(); $event.preventDefault()\">\n {{ selectionSettings.labels.selectAllLabel || 'Select all' }}\n {{ selectionSettings.totalSelectableItems }}\n {{ selectionSettings.labels.rowsOfTableLabel || 'rows of the table' }}\n </a>\n </span>\n </ng-container>\n <ng-template #exludedIdsEmpty>\n <span>\n {{\n selectionSettings.labels.rowsSelectedLabel ||\n 'All rows are selected in the table.'\n }}\n -\n <a href=\"/\" (click)=\"clearAll(); $event.preventDefault()\">\n {{ selectionSettings.labels.clearSelectionLabel || 'Clear selection' }}\n </a>\n </span>\n </ng-template>\n </div>\n <ng-template #notAllSelected>\n <span>\n <b\n >{{ selectionSettings.selectedIds.length }}\n {{ selectionSettings.labels.selectedLabel || 'selected' }}</b\n >\n <ng-container\n *ngIf=\"selectionSettings.selectedIds && selectionSettings.selectedIds.length > 0\"\n >\n <ng-container\n *ngIf=\"\n selectionSettings.selectedIds && selectionSettings.selectedIds.length === 1;\n else plurialNotAllSelected\n \"\n >\n {{ selectionSettings.labels.rowOnPageLabel || 'row on the page. ' }}-\n </ng-container>\n <ng-template #plurialNotAllSelected>\n {{ selectionSettings.labels.rowsOnPageLabel || 'rows on the page. ' }}-\n </ng-template>\n <a href=\"/\" (click)=\"selectAll(); $event.preventDefault()\">\n {{ selectionSettings.labels.selectAllLabel || 'Select all' }}\n {{ selectionSettings.totalSelectableItems }}\n {{ selectionSettings.labels.rowsOfTableLabel || 'rows of the table' }}\n </a>\n </ng-container>\n </span>\n </ng-template>\n </div>\n </ng-container>\n </div>\n </ng-container>\n</div>\n", styles: [".center-selection-label{text-align:center;margin-bottom:.5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
277
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MozDatatableSelectionComponent, decorators: [{
278
+ type: Component,
279
+ args: [{ selector: 'moz-datatable-selection', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"mc-datatable__selection\">\n <ng-container *ngIf=\"selectionSettings && selectionSettings.labels && paginationEnabled\">\n <div class=\"mc-datatable__topbar-selection\">\n <ng-container *ngIf=\"selectionSettings.selectedIds.length || selectionSettings.allSelected\">\n <div class=\"center-selection-label\">\n <div *ngIf=\"selectionSettings.allSelected; else notAllSelected\">\n <ng-container *ngIf=\"selectionSettings.excludedIds.length > 0; else exludedIdsEmpty\">\n <span>\n <b\n >{{\n selectionSettings.totalSelectableItems - selectionSettings.excludedIds.length\n }}\n {{ selectionSettings.labels.selectedLabel || 'selected' }}</b\n >\n <ng-container\n *ngIf=\"\n selectionSettings.totalSelectableItems -\n selectionSettings.excludedIds.length ===\n 1;\n else plurialAllSelected\n \"\n >\n {{ selectionSettings.labels.rowOnPageLabel || 'row on the page. ' }}-\n </ng-container>\n <ng-template #plurialAllSelected>\n {{ selectionSettings.labels.rowsOnPageLabel || 'rows on the page. ' }}-\n </ng-template>\n\n {{ selectionSettings.labels.rowsOnPageLabel || 'rows on the page. ' }}-\n <a href=\"/\" (click)=\"selectAll(); $event.preventDefault()\">\n {{ selectionSettings.labels.selectAllLabel || 'Select all' }}\n {{ selectionSettings.totalSelectableItems }}\n {{ selectionSettings.labels.rowsOfTableLabel || 'rows of the table' }}\n </a>\n </span>\n </ng-container>\n <ng-template #exludedIdsEmpty>\n <span>\n {{\n selectionSettings.labels.rowsSelectedLabel ||\n 'All rows are selected in the table.'\n }}\n -\n <a href=\"/\" (click)=\"clearAll(); $event.preventDefault()\">\n {{ selectionSettings.labels.clearSelectionLabel || 'Clear selection' }}\n </a>\n </span>\n </ng-template>\n </div>\n <ng-template #notAllSelected>\n <span>\n <b\n >{{ selectionSettings.selectedIds.length }}\n {{ selectionSettings.labels.selectedLabel || 'selected' }}</b\n >\n <ng-container\n *ngIf=\"selectionSettings.selectedIds && selectionSettings.selectedIds.length > 0\"\n >\n <ng-container\n *ngIf=\"\n selectionSettings.selectedIds && selectionSettings.selectedIds.length === 1;\n else plurialNotAllSelected\n \"\n >\n {{ selectionSettings.labels.rowOnPageLabel || 'row on the page. ' }}-\n </ng-container>\n <ng-template #plurialNotAllSelected>\n {{ selectionSettings.labels.rowsOnPageLabel || 'rows on the page. ' }}-\n </ng-template>\n <a href=\"/\" (click)=\"selectAll(); $event.preventDefault()\">\n {{ selectionSettings.labels.selectAllLabel || 'Select all' }}\n {{ selectionSettings.totalSelectableItems }}\n {{ selectionSettings.labels.rowsOfTableLabel || 'rows of the table' }}\n </a>\n </ng-container>\n </span>\n </ng-template>\n </div>\n </ng-container>\n </div>\n </ng-container>\n</div>\n", styles: [".center-selection-label{text-align:center;margin-bottom:.5rem}\n"] }]
280
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { selectionSettings: [{
281
+ type: Input
282
+ }], paginationEnabled: [{
283
+ type: Input
284
+ }], rowData: [{
285
+ type: Input
286
+ }], updateSelectionAllEmitter: [{
287
+ type: Output
288
+ }] } });
289
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW96LWRhdGF0YWJsZS1zZWxlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvZGF0YXRhYmxlL2NvbXBvbmVudHMvc2VsZWN0aW9uL21vei1kYXRhdGFibGUtc2VsZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL2RhdGF0YWJsZS9jb21wb25lbnRzL3NlbGVjdGlvbi9tb3otZGF0YXRhYmxlLXNlbGVjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQzs7O0FBVXZCLE1BQU0sT0FBTyw4QkFBOEI7SUFRekMsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFKekIsOEJBQXlCLEdBQUcsSUFBSSxZQUFZLEVBQXFCLENBQUM7UUFFNUUsb0JBQWUsR0FBWSxLQUFLLENBQUM7SUFFSyxDQUFDO0lBRTlDLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUN0QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDeEI7SUFDSCxDQUFDO0lBRU8sZUFBZTtRQUNyQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQzFDLElBQUksQ0FBQyxPQUFPO2dCQUNWLEVBQUUsTUFBTSxDQUNOLENBQUMsR0FBWSxFQUFFLEVBQUUsQ0FDZixDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7Z0JBQ3JCLEdBQUcsQ0FBQyxRQUFRO2dCQUNaLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7b0JBQ3pELE9BQU8sQ0FDTCxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxXQUFXO3dCQUNwQyxJQUFJLENBQUMsaUJBQWlCO3dCQUN0QixXQUFXLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQywyQkFBMkIsQ0FBQyxDQUN4RSxDQUFDO2dCQUNKLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQ2xCO2lCQUNBLE9BQU8sQ0FBQyxDQUFDLEdBQVksRUFBRSxFQUFFO2dCQUN4QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FDdEMsR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQywyQkFBMkIsQ0FBQyxDQUN4RCxDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7WUFDTCxJQUNFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFdBQVcsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNO2dCQUNsRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsb0JBQW9CLEVBQzNDO2dCQUNBLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2dCQUMxQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7YUFDekM7WUFDRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1lBQ3ZELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7WUFDcEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUN6QjtJQUNILENBQUM7SUFFTSxTQUFTO1FBQ2QsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDMUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7WUFDMUMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7WUFDdkQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztZQUNwRSxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQzVELElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDekI7SUFDSCxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzFCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1lBQzNDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN6QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1lBQ3ZELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7WUFDcEUsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUM1RCxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUVNLHVCQUF1QjtRQUM1QixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQ3RDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsSUFBSSxHQUFHLENBQUMsUUFBUSxLQUFLLElBQUksQ0FDeEQsQ0FBQztZQUNGLE9BQU8sQ0FDTCxZQUFZLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE1BQU07Z0JBQ2xGLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQy9ELENBQUM7U0FDSDtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVNLG9CQUFvQixDQUFDLEdBQVk7UUFDdEMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFTSw0QkFBNEIsQ0FBQyxNQUFXO1FBQzdDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFTSx3QkFBd0IsQ0FBQyxHQUFZO1FBQzFDLElBQUksSUFBSSxDQUFDLGlCQUFpQixJQUFJLElBQUksRUFBRTtZQUNsQyxNQUFNLDJCQUEyQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQywyQkFBMkIsQ0FBQztZQUN2RixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUU7Z0JBQ3RDLElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRTtvQkFDaEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsR0FBRzt3QkFDbkMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFOzRCQUM1RCxPQUFPLFlBQVksS0FBSyxHQUFHLENBQUMsMkJBQTJCLENBQUMsQ0FBQzt3QkFDM0QsQ0FBQyxDQUFDO3FCQUNILENBQUM7aUJBQ0g7cUJBQU07b0JBQ0wsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7d0JBQzFCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEdBQUc7NEJBQ25DLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVc7NEJBQ3JDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQzt5QkFDakMsQ0FBQztxQkFDSDt5QkFBTTt3QkFDTCxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxHQUFHOzRCQUNuQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUMxQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsVUFBVSxLQUFLLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxDQUNoRTt5QkFDRixDQUFDO3dCQUNGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO3FCQUM1QztvQkFDRCxJQUNFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsTUFBTTt3QkFDekMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLG9CQUFvQixFQUMzQzt3QkFDQSxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQzt3QkFDeEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7cUJBQzVDO2lCQUNGO2FBQ0Y7aUJBQU07Z0JBQ0wsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFO29CQUNoQixJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxHQUFHO3dCQUNuQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXO3dCQUNyQyxHQUFHLENBQUMsMkJBQTJCLENBQUM7cUJBQ2pDLENBQUM7b0JBQ0YsSUFDRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLE1BQU07d0JBQ3pDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsRUFDM0M7d0JBQ0EsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7NEJBQzFCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO3lCQUN6Qzt3QkFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztxQkFDM0M7aUJBQ0Y7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsR0FBRzt3QkFDbkMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFOzRCQUMxRCxPQUFPLFVBQVUsS0FBSyxHQUFHLENBQUMsMkJBQTJCLENBQUMsQ0FBQzt3QkFDekQsQ0FBQyxDQUFDO3FCQUNILENBQUM7aUJBQ0g7YUFDRjtZQUNELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7WUFDdkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUN6QjtJQUNILENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxtQkFBNEI7UUFDMUQsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDMUIsTUFBTSwyQkFBMkIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsMkJBQTJCLENBQUM7WUFDdkYsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxFQUFFO2dCQUN2QyxJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtvQkFDeEMsSUFBSSxDQUFDLE9BQU87eUJBQ1QsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQzt5QkFDdEMsTUFBTSxDQUNMLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FDTixDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFdBQVcsSUFBSSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQ25ELEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxDQUNqQyxDQUNKO3lCQUNBLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO3dCQUNmLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFOzRCQUMxQixJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxHQUFHO2dDQUNuQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXO2dDQUNyQyxHQUFHLENBQUMsMkJBQTJCLENBQUM7NkJBQ2pDLENBQUM7eUJBQ0g7b0JBQ0gsQ0FBQyxDQUFDLENBQUM7b0JBQ0wsSUFBSSxDQUFDLE9BQU87eUJBQ1QsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQzt5QkFDdEMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7d0JBQ2YsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7NEJBQzFCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUN0RCxHQUFHLENBQUMsMkJBQTJCLENBQUMsRUFDaEMsQ0FBQyxDQUNGLENBQUM7NEJBQ0YsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0NBQ2QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dDQUNwRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUM7NkJBQzlFO3lCQUNGO29CQUNILENBQUMsQ0FBQyxDQUFDO29CQUNMLElBQ0UsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxNQUFNO3dCQUN6QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsb0JBQW9CLEVBQzNDO3dCQUNBLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO3dCQUMxQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQzt3QkFDeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTzs0QkFDekIsRUFBRSxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDOzZCQUN2QyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTs0QkFDWCxHQUFHLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQzs0QkFDcEIsT0FBTyxHQUFHLENBQUM7d0JBQ2IsQ0FBQyxDQUFDLENBQUM7cUJBQ047aUJBQ0Y7cUJBQU07b0JBQ0wsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO3dCQUNoQixJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxHQUFHOzRCQUNuQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXOzRCQUNyQyxHQUFHLElBQUksQ0FBQyxPQUFPO2lDQUNaLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUM7aUNBQ3RDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLENBQUM7eUJBQ2xELENBQUM7d0JBQ0YsSUFDRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLE1BQU07NEJBQ3pDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsRUFDM0M7NEJBQ0EsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7NEJBQzNDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDOzRCQUN4QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQzs0QkFDeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTztnQ0FDekIsRUFBRSxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDO2lDQUN2QyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQ0FDWCxHQUFHLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztnQ0FDckIsT0FBTyxHQUFHLENBQUM7NEJBQ2IsQ0FBQyxDQUFDLENBQUM7eUJBQ047cUJBQ0Y7aUJBQ0Y7YUFDRjtpQkFBTTtnQkFDTCxJQUFJLG1CQUFtQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7b0JBQ3ZDLElBQUksQ0FBQyxPQUFPO3lCQUNULE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUM7eUJBQ3RDLE1BQU0sQ0FDTCxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQ04sQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxXQUFXLElBQUksRUFBRSxDQUFDLENBQUMsUUFBUSxDQUNuRCxHQUFHLENBQUMsMkJBQTJCLENBQUMsQ0FDakMsQ0FDSjt5QkFDQSxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTt3QkFDZixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTs0QkFDMUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsR0FBRztnQ0FDbkMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVztnQ0FDckMsR0FBRyxDQUFDLDJCQUEyQixDQUFDOzZCQUNqQyxDQUFDO3lCQUNIO29CQUNILENBQUMsQ0FBQyxDQUFDO29CQUNMLElBQ0UsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxNQUFNO3dCQUN6QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsb0JBQW9CLEVBQzNDO3dCQUNBLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFOzRCQUMxQixJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQzt5QkFDekM7d0JBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7cUJBQzNDO2lCQUNGO3FCQUFNO29CQUNMLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTt3QkFDaEIsSUFBSSxDQUFDLE9BQU87NkJBQ1QsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQzs2QkFDdEMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7NEJBQ2YsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7Z0NBQzFCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEdBQUc7b0NBQ25DLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTt3Q0FDMUQsT0FBTyxVQUFVLEtBQUssR0FBRyxDQUFDLDJCQUEyQixDQUFDLENBQUM7b0NBQ3pELENBQUMsQ0FBQztpQ0FDSCxDQUFDOzZCQUNIO3dCQUNILENBQUMsQ0FBQyxDQUFDO3FCQUNOO2lCQUNGO2FBQ0Y7U0FDRjtRQUNELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFDdkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU8sNEJBQTRCLENBQUMsUUFBaUI7UUFDcEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTztZQUN6QixFQUFFLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUM7YUFDdkMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDWCxHQUFHLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztZQUN4QixPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLHdCQUF3QjtRQUM5QixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixJQUNFLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVztnQkFDbEMsSUFBSSxDQUFDLE9BQU87b0JBQ1YsRUFBRSxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDO3FCQUN2QyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtvQkFDWCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTt3QkFDMUIsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLDJCQUEyQixDQUFDLENBQUM7cUJBQ2hFO2dCQUNILENBQUMsQ0FBQztxQkFDRCxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFdBQVcsSUFBSSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDakYsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO2dCQUN4RixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXO29CQUNqQyxJQUFJLENBQUMsT0FBTztvQkFDWixDQUFDLElBQUksQ0FBQyxPQUFPO3lCQUNWLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO3dCQUNYLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFOzRCQUMxQixPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsMkJBQTJCLENBQUMsQ0FBQzt5QkFDaEU7b0JBQ0gsQ0FBQyxDQUFDO3lCQUNELElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUM1RSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLEVBQ3ZGO2dCQUNBLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7WUFDRCxPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzsySEE1VFUsOEJBQThCOytHQUE5Qiw4QkFBOEIseVFDbkIzQyxvdUhBa0ZBOzJGRC9EYSw4QkFBOEI7a0JBTjFDLFNBQVM7K0JBQ0UseUJBQXlCLG1CQUdsQix1QkFBdUIsQ0FBQyxNQUFNO3dHQUcvQixpQkFBaUI7c0JBQWhDLEtBQUs7Z0JBQ1UsaUJBQWlCO3NCQUFoQyxLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1cseUJBQXlCO3NCQUF6QyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvd0RhdGEgfSBmcm9tICcuLi8uLi9tb2RlbC9yb3ctZGF0YSc7XG5pbXBvcnQgeyBTZWxlY3Rpb25TZXR0aW5ncyB9IGZyb20gJy4uLy4uL21vZGVsL3NlbGVjdGlvbi1zZXR0aW5ncyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vei1kYXRhdGFibGUtc2VsZWN0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vei1kYXRhdGFibGUtc2VsZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW96LWRhdGF0YWJsZS1zZWxlY3Rpb24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE1vekRhdGF0YWJsZVNlbGVjdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3Rpb25TZXR0aW5ncz86IFNlbGVjdGlvblNldHRpbmdzO1xuICBASW5wdXQoKSBwdWJsaWMgcGFnaW5hdGlvbkVuYWJsZWQ/OiBib29sZWFuO1xuICBASW5wdXQoKSBwdWJsaWMgcm93RGF0YT86IFJvd0RhdGFbXTtcbiAgQE91dHB1dCgpIHB1YmxpYyB1cGRhdGVTZWxlY3Rpb25BbGxFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3Rpb25TZXR0aW5ncz4oKTtcblxuICBwdWJsaWMgaXNJbmRldGVybWluYXRlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1sncm93RGF0YSddKSB7XG4gICAgICB0aGlzLnVwZGF0ZVNlbGVjdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNlbGVjdGlvblNldHRpbmdzICYmIHRoaXMucm93RGF0YSkge1xuICAgICAgdGhpcy5yb3dEYXRhXG4gICAgICAgID8uZmlsdGVyKFxuICAgICAgICAgIChyb3c6IFJvd0RhdGEpID0+XG4gICAgICAgICAgICAhcm93LmRpc2FibGVTZWxlY3Rpb24gJiZcbiAgICAgICAgICAgIHJvdy5zZWxlY3RlZCAmJlxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25TZXR0aW5ncz8uc2VsZWN0ZWRJZHMuZmlsdGVyKChzZWxlY3RlZFJvdykgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICF0aGlzLnNlbGVjdGlvblNldHRpbmdzPy5hbGxTZWxlY3RlZCAmJlxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uU2V0dGluZ3MgJiZcbiAgICAgICAgICAgICAgICBzZWxlY3RlZFJvdyA9PT0gcm93W3RoaXMuc2VsZWN0aW9uU2V0dGluZ3Muc2VsZWN0aW9uSWRlbnRpZmllckZpZWxkS2V5XVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSkubGVuZ3RoID09PSAwXG4gICAgICAgIClcbiAgICAgICAgLmZvckVhY2goKHJvdzogUm93RGF0YSkgPT4ge1xuICAgICAgICAgIHRoaXMuc2VsZWN0aW9uU2V0dGluZ3M/LnNlbGVjdGVkSWRzLnB1c2goXG4gICAgICAgICAgICByb3dbdGhpcy5zZWxlY3Rpb25TZXR0aW5ncy5zZWxlY3Rpb25JZGVudGlmaWVyRmllbGRLZXldXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICBpZiAoXG4gICAgICAgICh0aGlzLnNlbGVjdGlvblNldHRpbmdzPy5zZWxlY3RlZElkcyB8fCBbXSkubGVuZ3RoID09PVxuICAgICAgICB0aGlzLnNlbGVjdGlvblNldHRpbmdzLnRvdGFsU2VsZWN0YWJsZUl0ZW1zXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25TZXR0aW5ncy5hbGxTZWxlY3RlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uU2V0dGluZ3Muc2VsZWN0ZWRJZHMgPSBbXTtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25TZXR0aW5ncy5leGNsdWRlZElkcyA9IFtdO1xuICAgICAgfVxuICAgICAgdGhpcy5pc0luZGV0ZXJtaW5hdGUgPSB0aGlzLmlzU2VsZWN0aW9uSW5kZXRlcm1pbmF0ZSgpO1xuICAgICAgdGhpcy5zZWxlY3Rpb25TZXR0aW5ncy5hbGxTZWxlY3RlZCA9IHRoaXMuaXNBbGxQYWdlUm93QXJlU2VsZWN0ZWQoKTtcbiAgICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RBbGwoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uU2V0dGluZ3MpIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uU2V0dGluZ3MuZXhjbHVkZWRJZHMgPSBbXTtcbiAgICAgIHRoaXMuc2VsZWN0aW9uU2V0dGluZ3Muc2VsZWN0ZWRJZHMgPSBbXTtcbiAgICAgIHRoaXMuc2VsZWN0aW9uU2V0dGluZ3MuYWxsU2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZFZhbHVlT25Sb3dEYXRhKHRydWUpO1xuICAgICAgdGhpcy5pc0luZGV0ZXJtaW5hdGUgPSB0aGlzLmlzU2VsZWN0aW9uSW5kZXRlcm1pbmF0ZSgpO1xuICAgICAgdGhpcy5zZWxlY3Rpb25TZXR0aW5ncy5hbGxTZWxlY3RlZCA9IHRoaXMuaXNBbGxQYWdlUm93QXJlU2VsZWN0ZWQoKTtcbiAgICAgIHRoaXMudXBkYXRlU2VsZWN0aW9uQWxsRW1pdHRlci5lbWl0KHRoaXMuc2VsZWN0aW9uU2V0dGluZ3MpO1xuICAgICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNsZWFyQWxsKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNlbGVjdGlvblNldHRpbmdzKSB7XG4gICAgICB0aGlzLnNlbGVjdGlvblNldHRpbmdzLmV4Y2x1ZGVkSWRzID0gW107XG4gICAgICB0aGlzLnNlbGVjdGlvblNldHRpbmdzLnNlbGVjdGVkSWRzID0gW107XG4gICAgICB0aGlzLnNlbGVjdGlvblNldHRpbmdzLmFsbFNlbGVjdGVkID0gZmFsc2U7XG4gICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkVmFsdWVPblJvd0RhdGEoZmFsc2UpO1xuICAgICAgdGhpcy5pc0luZGV0ZXJtaW5hdGUgPSB0aGlzLmlzU2VsZWN0aW9uSW5kZXRlcm1pbmF0ZSgpO1xuICAgICAgdGhpcy5zZWxlY3Rpb25TZXR0aW5ncy5hbGxTZWxlY3RlZCA9IHRoaXMuaXNBbGxQYWdlUm93QXJlU2VsZWN0ZWQoKTtcbiAgICAgIHRoaXMudXBkYXRlU2VsZWN0aW9uQWxsRW1pdHRlci5lbWl0KHRoaXMuc2VsZWN0aW9uU2V0dGluZ3MpO1xuICAgICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGlzQWxsUGFnZVJvd0FyZVNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLnJvd0RhdGEpIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkUm93cyA9IHRoaXMucm93RGF0YS5maWx0ZXIoXG4gICAgICAgIChyb3cpID0+ICFyb3cuZGlzYWJsZVNlbGVjdGlvbiAmJiByb3cuc2VsZWN0ZWQgPT09IHRydWVcbiAgICAgICk7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBzZWxlY3RlZFJvd3MubGVuZ3RoID09PSB0aGlzLnJvd0RhdGEuZmlsdGVyKChyb3cpID0+ICFyb3cuZGlzYWJsZVNlbGVjdGlvbikubGVuZ3RoICYmXG4gICAgICAgIHRoaXMucm93RGF0YS5maWx0ZXIoKHJvdykgPT4gIXJvdy5kaXNhYmxlU2VsZWN0aW9uKS5sZW5ndGggPiAwXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgb25VZHBhdGVTZWxlY3Rpb25Sb3cocm93OiBSb3dEYXRhKTogdm9pZCB7XG4gICAgdGhpcy5oYW5kbGVDb3VudEl0ZW1TZWxlY3Rpb24ocm93KTtcbiAgfVxuXG4gIHB1YmxpYyBvblVkcGF0ZVNlbGVjdGlvbkFsbFBhZ2VSb3dzKCRldmVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVTZWxlY3RlZFZhbHVlT25Sb3dEYXRhKCRldmVudC50YXJnZXQuY2hlY2tlZCk7XG4gICAgdGhpcy5oYW5kbGVDb3VudEFsbFNlbGVjdGlvbih0aGlzLmlzQWxsUGFnZVJvd0FyZVNlbGVjdGVkKCkpO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZUNvdW50SXRlbVNlbGVjdGlvbihyb3c6IFJvd0RhdGEpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWxlY3Rpb25TZXR0aW5ncyAhPSBudWxsKSB7XG4gICAgICBjb25zdCBzZWxlY3Rpb25JZGVudGlmaWVyRmllbGRLZXkgPSB0aGlzLnNlbGVjdGlvblNldHRpbmdzLnNlbGVjdGlvbklkZW50aWZpZXJGaWVsZEtleTtcbiAgICAgIGlmICh0aGlzLnNlbGVjdGlvblNldHRpbmdzLmFsbFNlbGVjdGVkKSB7XG4gICAgICAgIGlmIChyb3cuc2VsZWN0ZWQpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGlvblNldHRpbmdzLmV4Y2x1ZGVkSWRzID0gW1xuICAgICAgICAgICAgLi4udGhpcy5zZWxlY3Rpb25TZXR0aW5ncy5leGNsdWRlZElkcy5maWx0ZXIoKGRlc2VsZWN0ZWRJZCkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gZGVzZWxlY3RlZElkICE9PSByb3dbc2VsZWN0aW9uSWRlbnRpZmllckZpZWxkS2V5XTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKHRoaXMucGFnaW5hdGlvbkVuYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uU2V0dGluZ3MuZXhjbHVkZWRJZHMgPSBbXG4gICAgICAgICAgICAgIC4uLnRoaXMuc2VsZWN0aW9uU2V0dGluZ3MuZXhjbHVkZWRJZHMsXG4gICAgICAgICAgICAgIHJvd1tzZWxlY3Rpb25JZGVudGlmaWVyRmllbGRLZXldLFxuICAgICAgICAgICAgXTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25TZXR0aW5ncy5zZWxlY3RlZElkcyA9IFtcbiAgICAgICAgICAgICAgLi4udGhpcy5zZWxlY3Rpb25TZXR0aW5ncy5zZWxlY3RlZElkcy5maWx0ZXIoXG4gICAgICAgICAgICAgICAgKHNlbGVjdGVkSWQpID0+IHNlbGVjdGVkSWQgIT09IHJvd1tzZWxlY3Rpb25JZGVudGlmaWVyRmllbGRLZXldXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICBdO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25TZXR0aW5ncy5hbGxTZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvblNldHRpbmdzLmV4Y2x1ZGVkSWRzLmxlbmd0aCA9PT1cbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uU2V0dGluZ3MudG90YWxTZWxlY3RhYmxlSXRlbXNcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uU2V0dGluZ3MuZXhjbHVkZWRJZHMgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uU2V0dGluZ3MuYWxsU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChyb3cuc2VsZWN0ZWQpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGlvblNldHRpbmdzLnNlbGVjdGVkSWRzID0gW1xuICAgICAgICAgICAgLi4udGhpcy5zZWxlY3Rpb25TZXR0aW5ncy5zZWxlY3RlZElkcyxcbiAgICAgICAgICAgIHJvd1tzZWxlY3Rpb25JZGVudGlmaWVyRmllbGRLZXldLFxuICAgICAgICAgIF07XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25TZXR0aW5ncy5zZWxlY3RlZElkcy5sZW5ndGggPT09XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvblNldHRpbmdzLnRvdGFsU2VsZWN0YWJsZUl0ZW1zXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5wYWdpbmF0aW9uRW5hYmxlZCkge1xuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvblNldHRpbmdzLnNlbGVjdGVkSWRzID0gW107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvblNldHRpbmdzLmFsbFNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3Rpb25TZXR0aW5ncy5zZWxlY3RlZElkcyA9IFtcbiAgICAgICAgICAgIC4uLnRoaXMuc2VsZWN0aW9uU2V0dGluZ3Muc2VsZWN0ZWRJZHMuZmlsdGVyKChzZWxlY3RlZElkKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBzZWxlY3RlZElkICE9PSByb3dbc2VsZWN0aW9uSWRlbnRpZmllckZpZWxkS2V5XTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIF07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMuaXNJbmRldGVybWluYXRlID0gdGhpcy5pc1NlbGVjdGlvbkluZGV0ZXJtaW5hdGUoKTtcbiAgICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQ291bnRBbGxTZWxlY3Rpb24oYWxsUGFnZVJvd3NTZWxlY3RlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICh0aGlzLnNlbGVjdGlvblNldHRpbmdzKSB7XG4gICAgICBjb25zdCBzZWxlY3Rpb25JZGVudGlmaWVyRmllbGRLZXkgPSB0aGlzLnNlbGVjdGlvblNldHRpbmdzLnNlbGVjdGlvbklkZW50aWZpZXJGaWVsZEtleTtcbiAgICAgIGlmICh0aGlzLnNlbGVjdGlvblNldHRpbmdzPy5hbGxTZWxlY3RlZCkge1xuICAgICAgICBpZiAodGhpcy5pc0luZGV0ZXJtaW5hdGUgJiYgdGhpcy5yb3dEYXRhKSB7XG4gICAgICAgICAgdGhpcy5yb3dEYXRhXG4gICAgICAgICAgICAuZmlsdGVyKChyb3cpID0+ICFyb3cuZGlzYWJsZVNlbGVjdGlvbilcbiAgICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICAgIChyb3cpID0+XG4gICAgICAgICAgICAgICAgISh0aGlzLnNlbGVjdGlvblNldHRpbmdzPy5zZWxlY3RlZElkcyB8fCBbXSkuaW5jbHVkZXMoXG4gICAgICAgICAgICAgICAgICByb3dbc2VsZWN0aW9uSWRlbnRpZmllckZpZWxkS2V5XVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5mb3JFYWNoKChyb3cpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uU2V0dGluZ3MpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvblNldHRpbmdzLnNlbGVjdGVkSWRzID0gW1xuICAgICAgICAgICAgICAgICAgLi4udGhpcy5zZWxlY3Rpb25TZXR0aW5ncy5zZWxlY3RlZElkcyxcbiAgICAgICAgICAgICAgICAgIHJvd1tzZWxlY3Rpb25JZGVudGlmaWVyRmllbGRLZXldLFxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMucm93RGF0YVxuICAgICAgICAgICAgLmZpbHRlcigocm93KSA9PiAhcm93LmRpc2FibGVTZWxlY3Rpb24pXG4gICAgICAgICAgICAuZm9yRWFjaCgocm93KSA9PiB7XG4gICAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGlvblNldHRpbmdzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnNlbGVjdGlvblNldHRpbmdzLmV4Y2x1ZGVkSWRzLmluZGV4T2YoXG4gICAgICAgICAgICAgICAgICByb3dbc2VsZWN0aW9uSWRlbnRpZmllckZpZWxkS2V5XSxcbiAgICAgICAgICAgICAgICAgIDBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvblNldHRpbmdzLmV4Y2x1ZGVkSWRzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvblNldHRpbmdzLmV4Y2x1ZGVkSWRzID0gWy4uLnRoaXMuc2VsZWN0aW9uU2V0dGluZ3MuZXhjbHVkZWRJZHNdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25TZXR0aW5ncy5zZWxlY3RlZElkcy5sZW5ndGggPT09XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvblNldHRpbmdzLnRvdGFsU2VsZWN0YWJsZUl0ZW1zXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvblNldHRpbmdzLmFsbFNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uU2V0dGluZ3Muc2VsZWN0ZWRJZHMgPSBbXTtcbiAgICAgICAgICAgIHRoaXMucm93RGF0YSA9IHRoaXMucm93RGF0YVxuICAgICAgICAgICAgICA/LmZpbHRlcigocm93KSA9PiAhcm93LmRpc2FibGVTZWxlY3Rpb24pXG4gICAgICAgICAgICAgIC5tYXAoKHJvdykgPT4ge1xuICAgICAgICAgICAgICAgIHJvdy5zZWxlY3RlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJvdztcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICh0aGlzLnJvd0RhdGEpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uU2V0dGluZ3MuZXhjbHVkZWRJZHMgPSBbXG4gICAgICAgICAgICAgIC4uLnRoaXMuc2VsZWN0aW9uU2V0dGluZ3MuZXhjbHVkZWRJZHMsXG4gICAgICAgICAgICAgIC4uLnRoaXMucm93RGF0YVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKHJvdykgPT4gIXJvdy5kaXNhYmxlU2VsZWN0aW9uKVxuICAgICAgICAgICAgICAgIC5tYXAoKHJvdykgPT4gcm93W3NlbGVjdGlvbklkZW50aWZpZXJGaWVsZEtleV0pLFxuICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25TZXR0aW5ncy5leGNsdWRlZElkcy5sZW5ndGggPT09XG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uU2V0dGluZ3MudG90YWxTZWxlY3RhYmxlSXRlbXNcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvblNldHRpbmdzLmFsbFNlbGVjdGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uU2V0dGluZ3Muc2VsZWN0ZWRJZHMgPSBbXTtcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25TZXR0aW5ncy5leGNsdWRlZElkcyA9IFtdO1xuICAgICAgICAgICAgICB0aGlzLnJvd0RhdGEgPSB0aGlzLnJvd0RhdGFcbiAgICAgICAgICAgICAgICA/LmZpbHRlcigocm93KSA9PiAhcm93LmRpc2FibGVTZWxlY3Rpb24pXG4gICAgICAgICAgICAgICAgLm1hcCgocm93KSA9PiB7XG4gICAgICAgICAgICAgICAgICByb3cuc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgIHJldHVybiByb3c7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoYWxsUGFnZVJvd3NTZWxlY3RlZCAmJiB0aGlzLnJvd0RhdGEpIHtcbiAgICAgICAgICB0aGlzLnJvd0RhdGFcbiAgICAgICAgICAgIC5maWx0ZXIoKHJvdykgPT4gIXJvdy5kaXNhYmxlU2VsZWN0aW9uKVxuICAgICAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAgICAgKHJvdykgPT5cbiAgICAgICAgICAgICAgICAhKHRoaXMuc2VsZWN0aW9uU2V0dGluZ3M/LnNlbGVjdGVkSWRzIHx8IFtdKS5pbmNsdWRlcyhcbiAgICAgICAgICAgICAgICAgIHJvd1tzZWxlY3Rpb25JZGVudGlmaWVyRmllbGRLZXldXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmZvckVhY2goKHJvdykgPT4ge1xuICAgICAgICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb25TZXR0aW5ncykge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uU2V0dGluZ3Muc2VsZWN0ZWRJZHMgPSBbXG4gICAgICAgICAgICAgICAgICAuLi50aGlzLnNlbGVjdGlvblNldHRpbmdzLnNlbGVjdGVkSWRzLFxuICAgICAgICAgICAgICAgICAgcm93W3NlbGVjdGlvbklkZW50aWZpZXJGaWVsZEtleV0sXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25TZXR0aW5ncy5zZWxlY3RlZElkcy5sZW5ndGggPT09XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvblNldHRpbmdzLnRvdGFsU2VsZWN0YWJsZUl0ZW1zXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5wYWdpbmF0aW9uRW5hYmxlZCkge1xuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvblNldHRpbmdzLnNlbGVjdGVkSWRzID0gW107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvblNldHRpbmdzLmFsbFNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKHRoaXMucm93RGF0YSkge1xuICAgICAgICAgICAgdGhpcy5yb3dEYXRhXG4gICAgICAgICAgICAgIC5maWx0ZXIoKHJvdykgPT4gIXJvdy5kaXNhYmxlU2VsZWN0aW9uKVxuICAgICAgICAgICAgICAuZm9yRWFjaCgocm93KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uU2V0dGluZ3MpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uU2V0dGluZ3Muc2VsZWN0ZWRJZHMgPSBbXG4gICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuc2VsZWN0aW9uU2V0dGluZ3Muc2VsZWN0ZWRJZHMuZmlsdGVyKChzZWxlY3RlZElkKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGVjdGVkSWQgIT09IHJvd1tzZWxlY3Rpb25JZGVudGlmaWVyRmllbGRLZXldO1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5pc0luZGV0ZXJtaW5hdGUgPSB0aGlzLmlzU2VsZWN0aW9uSW5kZXRlcm1pbmF0ZSgpO1xuICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTZWxlY3RlZFZhbHVlT25Sb3dEYXRhKHNlbGVjdGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5yb3dEYXRhID0gdGhpcy5yb3dEYXRhXG4gICAgICA/LmZpbHRlcigocm93KSA9PiAhcm93LmRpc2FibGVTZWxlY3Rpb24pXG4gICAgICAubWFwKChyb3cpID0+IHtcbiAgICAgICAgcm93LnNlbGVjdGVkID0gc2VsZWN0ZWQ7XG4gICAgICAgIHJldHVybiByb3c7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaXNTZWxlY3Rpb25JbmRldGVybWluYXRlKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLnNlbGVjdGlvblNldHRpbmdzKSB7XG4gICAgICBpZiAoXG4gICAgICAgICghdGhpcy5zZWxlY3Rpb25TZXR0aW5ncy5hbGxTZWxlY3RlZCAmJlxuICAgICAgICAgIHRoaXMucm93RGF0YVxuICAgICAgICAgICAgPy5maWx0ZXIoKHJvdykgPT4gIXJvdy5kaXNhYmxlU2VsZWN0aW9uKVxuICAgICAgICAgICAgLm1hcCgocm93KSA9PiB7XG4gICAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGlvblNldHRpbmdzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJvd1t0aGlzLnNlbGVjdGlvblNldHRpbmdzLnNlbGVjdGlvbklkZW50aWZpZXJGaWVsZEtleV07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuZXZlcnkoKGl0ZW0pID0+ICh0aGlzLnNlbGVjdGlvblNldHRpbmdzPy5zZWxlY3RlZElkcyB8fCBbXSkuaW5jbHVkZXMoaXRlbSkpKSB8fFxuICAgICAgICAoIXRoaXMuc2VsZWN0aW9uU2V0dGluZ3MuYWxsU2VsZWN0ZWQgJiYgdGhpcy5zZWxlY3Rpb25TZXR0aW5ncy5zZWxlY3RlZElkcy5sZW5ndGggPT09IDApIHx8XG4gICAgICAgICh0aGlzLnNlbGVjdGlvblNldHRpbmdzLmFsbFNlbGVjdGVkICYmXG4gICAgICAgICAgdGhpcy5yb3dEYXRhICYmXG4gICAgICAgICAgIXRoaXMucm93RGF0YVxuICAgICAgICAgICAgLm1hcCgocm93KSA9PiB7XG4gICAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGlvblNldHRpbmdzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJvd1t0aGlzLnNlbGVjdGlvblNldHRpbmdzLnNlbGVjdGlvbklkZW50aWZpZXJGaWVsZEtleV07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuc29tZSgoaWQpID0+ICh0aGlzLnNlbGVjdGlvblNldHRpbmdzPy5leGNsdWRlZElkcyB8fCBbXSkuaW5jbHVkZXMoaWQpKSkgfHxcbiAgICAgICAgKHRoaXMuc2VsZWN0aW9uU2V0dGluZ3MuYWxsU2VsZWN0ZWQgJiYgdGhpcy5zZWxlY3Rpb25TZXR0aW5ncy5leGNsdWRlZElkcy5sZW5ndGggPT09IDApXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1jLWRhdGF0YWJsZV9fc2VsZWN0aW9uXCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3Rpb25TZXR0aW5ncyAmJiBzZWxlY3Rpb25TZXR0aW5ncy5sYWJlbHMgJiYgcGFnaW5hdGlvbkVuYWJsZWRcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWMtZGF0YXRhYmxlX190b3BiYXItc2VsZWN0aW9uXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0aW9uU2V0dGluZ3Muc2VsZWN0ZWRJZHMubGVuZ3RoIHx8IHNlbGVjdGlvblNldHRpbmdzLmFsbFNlbGVjdGVkXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjZW50ZXItc2VsZWN0aW9uLWxhYmVsXCI+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cInNlbGVjdGlvblNldHRpbmdzLmFsbFNlbGVjdGVkOyBlbHNlIG5vdEFsbFNlbGVjdGVkXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0aW9uU2V0dGluZ3MuZXhjbHVkZWRJZHMubGVuZ3RoID4gMDsgZWxzZSBleGx1ZGVkSWRzRW1wdHlcIj5cbiAgICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAgPGJcbiAgICAgICAgICAgICAgICAgID57e1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25TZXR0aW5ncy50b3RhbFNlbGVjdGFibGVJdGVtcyAtIHNlbGVjdGlvblNldHRpbmdzLmV4Y2x1ZGVkSWRzLmxlbmd0aFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIHt7IHNlbGVjdGlvblNldHRpbmdzLmxhYmVscy5zZWxlY3RlZExhYmVsIHx8ICdzZWxlY3RlZCcgfX08L2JcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uU2V0dGluZ3MudG90YWxTZWxlY3RhYmxlSXRlbXMgLVxuICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvblNldHRpbmdzLmV4Y2x1ZGVkSWRzLmxlbmd0aCA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAxO1xuICAgICAgICAgICAgICAgICAgICBlbHNlIHBsdXJpYWxBbGxTZWxlY3RlZFxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyBzZWxlY3Rpb25TZXR0aW5ncy5sYWJlbHMucm93T25QYWdlTGFiZWwgfHwgJ3JvdyBvbiB0aGUgcGFnZS4gJyB9fS1cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3BsdXJpYWxBbGxTZWxlY3RlZD5cbiAgICAgICAgICAgICAgICAgIHt7IHNlbGVjdGlvblNldHRpbmdzLmxhYmVscy5yb3dzT25QYWdlTGFiZWwgfHwgJ3Jvd3Mgb24gdGhlIHBhZ2UuICcgfX0tXG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgICAgIHt7IHNlbGVjdGlvblNldHRpbmdzLmxhYmVscy5yb3dzT25QYWdlTGFiZWwgfHwgJ3Jvd3Mgb24gdGhlIHBhZ2UuICcgfX0tXG4gICAgICAgICAgICAgICAgPGEgaHJlZj1cIi9cIiAoY2xpY2spPVwic2VsZWN0QWxsKCk7ICRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCI+XG4gICAgICAgICAgICAgICAgICB7eyBzZWxlY3Rpb25TZXR0aW5ncy5sYWJlbHMuc2VsZWN0QWxsTGFiZWwgfHwgJ1NlbGVjdCBhbGwnIH19XG4gICAgICAgICAgICAgICAgICB7eyBzZWxlY3Rpb25TZXR0aW5ncy50b3RhbFNlbGVjdGFibGVJdGVtcyB9fVxuICAgICAgICAgICAgICAgICAge3sgc2VsZWN0aW9uU2V0dGluZ3MubGFiZWxzLnJvd3NPZlRhYmxlTGFiZWwgfHwgJ3Jvd3Mgb2YgdGhlIHRhYmxlJyB9fVxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2V4bHVkZWRJZHNFbXB0eT5cbiAgICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgIHNlbGVjdGlvblNldHRpbmdzLmxhYmVscy5yb3dzU2VsZWN0ZWRMYWJlbCB8fFxuICAgICAgICAgICAgICAgICAgICAnQWxsIHJvd3MgYXJlIHNlbGVjdGVkIGluIHRoZSB0YWJsZS4nXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAtXG4gICAgICAgICAgICAgICAgPGEgaHJlZj1cIi9cIiAoY2xpY2spPVwiY2xlYXJBbGwoKTsgJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIj5cbiAgICAgICAgICAgICAgICAgIHt7IHNlbGVjdGlvblNldHRpbmdzLmxhYmVscy5jbGVhclNlbGVjdGlvbkxhYmVsIHx8ICdDbGVhciBzZWxlY3Rpb24nIH19XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm90QWxsU2VsZWN0ZWQ+XG4gICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgPGJcbiAgICAgICAgICAgICAgICA+e3sgc2VsZWN0aW9uU2V0dGluZ3Muc2VsZWN0ZWRJZHMubGVuZ3RoIH19XG4gICAgICAgICAgICAgICAge3sgc2VsZWN0aW9uU2V0dGluZ3MubGFiZWxzLnNlbGVjdGVkTGFiZWwgfHwgJ3NlbGVjdGVkJyB9fTwvYlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInNlbGVjdGlvblNldHRpbmdzLnNlbGVjdGVkSWRzICYmIHNlbGVjdGlvblNldHRpbmdzLnNlbGVjdGVkSWRzLmxlbmd0aCA+IDBcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uU2V0dGluZ3Muc2VsZWN0ZWRJZHMgJiYgc2VsZWN0aW9uU2V0dGluZ3Muc2VsZWN0ZWRJZHMubGVuZ3RoID09PSAxO1xuICAgICAgICAgICAgICAgICAgICBlbHNlIHBsdXJpYWxOb3RBbGxTZWxlY3RlZFxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyBzZWxlY3Rpb25TZXR0aW5ncy5sYWJlbHMucm93T25QYWdlTGFiZWwgfHwgJ3JvdyBvbiB0aGUgcGFnZS4gJyB9fS1cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3BsdXJpYWxOb3RBbGxTZWxlY3RlZD5cbiAgICAgICAgICAgICAgICAgIHt7IHNlbGVjdGlvblNldHRpbmdzLmxhYmVscy5yb3dzT25QYWdlTGFiZWwgfHwgJ3Jvd3Mgb24gdGhlIHBhZ2UuICcgfX0tXG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8YSBocmVmPVwiL1wiIChjbGljayk9XCJzZWxlY3RBbGwoKTsgJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIj5cbiAgICAgICAgICAgICAgICAgIHt7IHNlbGVjdGlvblNldHRpbmdzLmxhYmVscy5zZWxlY3RBbGxMYWJlbCB8fCAnU2VsZWN0IGFsbCcgfX1cbiAgICAgICAgICAgICAgICAgIHt7IHNlbGVjdGlvblNldHRpbmdzLnRvdGFsU2VsZWN0YWJsZUl0ZW1zIH19XG4gICAgICAgICAgICAgICAgICB7eyBzZWxlY3Rpb25TZXR0aW5ncy5sYWJlbHMucm93c09mVGFibGVMYWJlbCB8fCAncm93cyBvZiB0aGUgdGFibGUnIH19XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,65 @@
1
+ import { Directive, EventEmitter, HostListener, Input, Output, } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class MozDatatableSortDirective {
4
+ constructor(elementRef, renderer) {
5
+ this.elementRef = elementRef;
6
+ this.renderer = renderer;
7
+ this.sortEmitter = new EventEmitter();
8
+ }
9
+ ngOnInit() {
10
+ if (this.columnDef?.sort) {
11
+ const sortIcon = this.renderer.createElement('span');
12
+ this.renderer.addClass(sortIcon, 'mc-datatable__sort-arrow');
13
+ this.updateSortDirection(sortIcon);
14
+ this.renderer.appendChild(this.elementRef.nativeElement, sortIcon);
15
+ }
16
+ }
17
+ onSortClick($event) {
18
+ this.updateSortDirection($event.target);
19
+ }
20
+ updateSortDirection(htmlSpanElement) {
21
+ if (this.columnDef?.sort) {
22
+ if (htmlSpanElement.classList.contains('mc-datatable__sort-arrow')) {
23
+ this.columnDef.sort.direction =
24
+ this.columnDef.sort.direction == undefined
25
+ ? 'ASC'
26
+ : this.columnDef.sort.direction === 'ASC'
27
+ ? 'DESC'
28
+ : undefined;
29
+ if (this.columnDef.sort.direction === 'ASC') {
30
+ this.renderer.addClass(htmlSpanElement, 'is-sorted-asc');
31
+ this.renderer.removeClass(htmlSpanElement, 'is-sorted-desc');
32
+ }
33
+ else if (this.columnDef.sort.direction === 'DESC') {
34
+ this.renderer.addClass(htmlSpanElement, 'is-sorted-desc');
35
+ this.renderer.removeClass(htmlSpanElement, 'is-sorted-asc');
36
+ }
37
+ else {
38
+ this.renderer.removeClass(htmlSpanElement, 'is-sorted-desc');
39
+ this.renderer.removeClass(htmlSpanElement, 'is-sorted-asc');
40
+ }
41
+ this.sortEmitter.emit({
42
+ direction: this.columnDef.sort.direction,
43
+ field: this.columnDef.field,
44
+ });
45
+ }
46
+ }
47
+ }
48
+ }
49
+ MozDatatableSortDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MozDatatableSortDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
50
+ MozDatatableSortDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: MozDatatableSortDirective, selector: "[mozDatatableSort]", inputs: { columnDef: ["mozDatatableSort", "columnDef"] }, outputs: { sortEmitter: "sortEmitter" }, host: { listeners: { "click": "onSortClick($event)" } }, ngImport: i0 });
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MozDatatableSortDirective, decorators: [{
52
+ type: Directive,
53
+ args: [{
54
+ selector: '[mozDatatableSort]',
55
+ }]
56
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { columnDef: [{
57
+ type: Input,
58
+ args: ['mozDatatableSort']
59
+ }], sortEmitter: [{
60
+ type: Output
61
+ }], onSortClick: [{
62
+ type: HostListener,
63
+ args: ['click', ['$event']]
64
+ }] } });
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW96LWRhdGF0YWJsZS1zb3J0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL2RhdGF0YWJsZS9kaXJlY3RpdmVzL21vei1kYXRhdGFibGUtc29ydC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7O0FBTXZCLE1BQU0sT0FBTyx5QkFBeUI7SUFJcEMsWUFBb0IsVUFBc0IsRUFBVSxRQUFtQjtRQUFuRCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUY3RCxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7SUFFc0IsQ0FBQztJQUUzRSxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRTtZQUN4QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNyRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztZQUM3RCxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDcEU7SUFDSCxDQUFDO0lBR0QsV0FBVyxDQUFDLE1BQVc7UUFDckIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU8sbUJBQW1CLENBQUMsZUFBZ0M7UUFDMUQsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRTtZQUN4QixJQUFJLGVBQWUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLDBCQUEwQixDQUFDLEVBQUU7Z0JBQ2xFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVM7b0JBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxTQUFTO3dCQUN4QyxDQUFDLENBQUMsS0FBSzt3QkFDUCxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUs7NEJBQ3pDLENBQUMsQ0FBQyxNQUFNOzRCQUNSLENBQUMsQ0FBQyxTQUFTLENBQUM7Z0JBQ2hCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUssRUFBRTtvQkFDM0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLGVBQWUsQ0FBQyxDQUFDO29CQUN6RCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztpQkFDOUQ7cUJBQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLEtBQUssTUFBTSxFQUFFO29CQUNuRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztvQkFDMUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLGVBQWUsQ0FBQyxDQUFDO2lCQUM3RDtxQkFBTTtvQkFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztvQkFDN0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLGVBQWUsQ0FBQyxDQUFDO2lCQUM3RDtnQkFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztvQkFDcEIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVM7b0JBQ3hDLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUs7aUJBQzVCLENBQUMsQ0FBQzthQUNKO1NBQ0Y7SUFDSCxDQUFDOztzSEE3Q1UseUJBQXlCOzBHQUF6Qix5QkFBeUI7MkZBQXpCLHlCQUF5QjtrQkFIckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO2lCQUMvQjt5SEFFNEIsU0FBUztzQkFBbkMsS0FBSzt1QkFBQyxrQkFBa0I7Z0JBQ2YsV0FBVztzQkFBcEIsTUFBTTtnQkFjUCxXQUFXO3NCQURWLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29sdW1uRGVmIH0gZnJvbSAnLi4vbW9kZWwvY29sdW1uLWRlZic7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1ttb3pEYXRhdGFibGVTb3J0XScsXG59KVxuZXhwb3J0IGNsYXNzIE1vekRhdGF0YWJsZVNvcnREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoJ21vekRhdGF0YWJsZVNvcnQnKSBjb2x1bW5EZWY/OiBDb2x1bW5EZWY7XG4gIEBPdXRwdXQoKSBzb3J0RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8dW5rbm93bj4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5jb2x1bW5EZWY/LnNvcnQpIHtcbiAgICAgIGNvbnN0IHNvcnRJY29uID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHNvcnRJY29uLCAnbWMtZGF0YXRhYmxlX19zb3J0LWFycm93Jyk7XG4gICAgICB0aGlzLnVwZGF0ZVNvcnREaXJlY3Rpb24oc29ydEljb24pO1xuICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgc29ydEljb24pO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgb25Tb3J0Q2xpY2soJGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnVwZGF0ZVNvcnREaXJlY3Rpb24oJGV2ZW50LnRhcmdldCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVNvcnREaXJlY3Rpb24oaHRtbFNwYW5FbGVtZW50OiBIVE1MU3BhbkVsZW1lbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb2x1bW5EZWY/LnNvcnQpIHtcbiAgICAgIGlmIChodG1sU3BhbkVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdtYy1kYXRhdGFibGVfX3NvcnQtYXJyb3cnKSkge1xuICAgICAgICB0aGlzLmNvbHVtbkRlZi5zb3J0LmRpcmVjdGlvbiA9XG4gICAgICAgICAgdGhpcy5jb2x1bW5EZWYuc29ydC5kaXJlY3Rpb24gPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICA/ICdBU0MnXG4gICAgICAgICAgICA6IHRoaXMuY29sdW1uRGVmLnNvcnQuZGlyZWN0aW9uID09PSAnQVNDJ1xuICAgICAgICAgICAgPyAnREVTQydcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICBpZiAodGhpcy5jb2x1bW5EZWYuc29ydC5kaXJlY3Rpb24gPT09ICdBU0MnKSB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhodG1sU3BhbkVsZW1lbnQsICdpcy1zb3J0ZWQtYXNjJyk7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhodG1sU3BhbkVsZW1lbnQsICdpcy1zb3J0ZWQtZGVzYycpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY29sdW1uRGVmLnNvcnQuZGlyZWN0aW9uID09PSAnREVTQycpIHtcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGh0bWxTcGFuRWxlbWVudCwgJ2lzLXNvcnRlZC1kZXNjJyk7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhodG1sU3BhbkVsZW1lbnQsICdpcy1zb3J0ZWQtYXNjJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhodG1sU3BhbkVsZW1lbnQsICdpcy1zb3J0ZWQtZGVzYycpO1xuICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoaHRtbFNwYW5FbGVtZW50LCAnaXMtc29ydGVkLWFzYycpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc29ydEVtaXR0ZXIuZW1pdCh7XG4gICAgICAgICAgZGlyZWN0aW9uOiB0aGlzLmNvbHVtbkRlZi5zb3J0LmRpcmVjdGlvbixcbiAgICAgICAgICBmaWVsZDogdGhpcy5jb2x1bW5EZWYuZmllbGQsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWRlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL2RhdGF0YWJsZS9tb2RlbC9jb2x1bW4tZGVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIENvbHVtbkRlZiB7XG4gIGZpZWxkOiBzdHJpbmc7XG4gIGhlYWRlck5hbWU6IHN0cmluZztcbiAgc29ydD86IFNvcnQ7XG4gIHdpZHRoPzogc3RyaW5nO1xuICBoaWRlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTb3J0IHtcbiAgYWN0aXZhdGU6IGJvb2xlYW47XG4gIGRpcmVjdGlvbj86ICdBU0MnIHwgJ0RFU0MnIHwgdW5kZWZpbmVkO1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLXNldHRpbmdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvZGF0YXRhYmxlL21vZGVsL2RhdGF0YWJsZS1zZXR0aW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sdW1uRGVmIH0gZnJvbSAnLi9jb2x1bW4tZGVmJztcbmltcG9ydCB7IFJvd0RhdGEgfSBmcm9tICcuL3Jvdy1kYXRhJztcblxuZXhwb3J0IGludGVyZmFjZSBEYXRhdGFibGVTZXR0aW5ncyB7XG4gIGFjdGl2YXRlUGFnaW5hdGlvbj86IGJvb2xlYW47XG4gIGFjdGl2YXRlU2VsZWN0aW9uPzogYm9vbGVhbjtcbiAgYWN0aXZhdGVTZXR0aW5ncz86IGJvb2xlYW47XG4gIGFjdGl2YXRlRW1wdHlCb2R5QnV0dG9uPzogYm9vbGVhbjtcbiAgY29sdW1uRGVmczogQ29sdW1uRGVmW107XG4gIHJvd0RhdGE6IFJvd0RhdGFbXTtcbiAgZml4SGVhZGVyUm93PzogYm9vbGVhbjtcbiAgZml4Rmlyc3RDb2x1bW4/OiBib29sZWFuO1xuICBpc0xvYWRpbmc/OiBib29sZWFuO1xuICBsYWJlbHM/OiB7XG4gICAgc2V0dGluZ3M/OiB7XG4gICAgICBsYXllclRpdGxlPzogc3RyaW5nO1xuICAgICAgZml4Rmlyc3RDb2x1bW5UaXRsZT86IHN0cmluZztcbiAgICAgIGNvbHVtbnNMb2NrVGl0bGU/OiBzdHJpbmc7XG4gICAgICBjb2x1bW5zRGlzcGxheVRpdGxlPzogc3RyaW5nO1xuICAgICAgYXBwbHlCdXR0b25UaXRsZT86IHN0cmluZztcbiAgICAgIHJlc2V0QnV0dG9uVGl0bGU/OiBzdHJpbmc7XG4gICAgfTtcbiAgICBlbXB0eUJvZHlUaXRsZT86IHN0cmluZztcbiAgICBlbXB0eUJvZHlEZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICBlbXB0eUJvZHlCdXR0b25UaXRsZT86IHN0cmluZztcbiAgfTtcbiAgaWNvbnM/OiB7XG4gICAgZW1wdHlCb2R5QnV0dG9uSWNvbj86IHN0cmluZztcbiAgfTtcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLXNldHRpbmdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvZGF0YXRhYmxlL21vZGVsL2Zvb3Rlci1zZXR0aW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBGb290ZXJTZXR0aW5ncyB7XG4gIHBhZ2luYXRpb246IHtcbiAgICB0b3RhbEl0ZW1zOiBudW1iZXI7XG4gICAgaXRlbXNQZXJQYWdlOiBudW1iZXI7XG4gICAgY3VycmVudFBhZ2U6IG51bWJlcjtcbiAgICByb3dQZXJQYWdlOiB7IG9wdGlvbnM6IG51bWJlcltdOyBzZWxlY3RlZDogbnVtYmVyIH07XG4gIH07XG4gIGxhYmVsczoge1xuICAgIHJvd1BlclBhZ2U/OiBzdHJpbmc7XG4gICAgaXRlbXM/OiBzdHJpbmc7XG4gICAgcGFnZT86IHN0cmluZztcbiAgICBvZj86IHN0cmluZztcbiAgfTtcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9kYXRhdGFibGUvbW9kZWwvcm93LWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgUm93RGF0YSB7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbiAgc2VsZWN0ZWQ/OiBib29sZWFuO1xuICBkaXNhYmxlU2VsZWN0aW9uPzogYm9vbGVhbjtcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLXNldHRpbmdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvZGF0YXRhYmxlL21vZGVsL3NlbGVjdGlvbi1zZXR0aW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBTZWxlY3Rpb25TZXR0aW5ncyB7XG4gIHNlbGVjdGlvbklkZW50aWZpZXJGaWVsZEtleTogc3RyaW5nO1xuICB0b3RhbFNlbGVjdGFibGVJdGVtczogbnVtYmVyO1xuICBleGNsdWRlZElkczogc3RyaW5nW107XG4gIHNlbGVjdGVkSWRzOiBzdHJpbmdbXTtcbiAgYWxsU2VsZWN0ZWQ6IGJvb2xlYW47XG4gIGxhYmVscz86IHtcbiAgICBzZWxlY3RlZExhYmVsPzogc3RyaW5nO1xuICAgIHJvd09uUGFnZUxhYmVsPzogc3RyaW5nO1xuICAgIHJvd3NPblBhZ2VMYWJlbD86IHN0cmluZztcbiAgICByb3dzT2ZUYWJsZUxhYmVsPzogc3RyaW5nO1xuICAgIHNlbGVjdEFsbExhYmVsPzogc3RyaW5nO1xuICAgIHJvd3NTZWxlY3RlZExhYmVsPzogc3RyaW5nO1xuICAgIGNsZWFyU2VsZWN0aW9uTGFiZWw/OiBzdHJpbmc7XG4gIH07XG59XG4iXX0=