@openziti/ziti-console-lib 0.12.10 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (445) hide show
  1. package/assets/fonts/icomoon.eot +0 -0
  2. package/assets/fonts/icomoon.svg +6 -1
  3. package/assets/fonts/icomoon.ttf +0 -0
  4. package/assets/fonts/icomoon.woff +0 -0
  5. package/assets/fonts/icomoon.woff2 +0 -0
  6. package/assets/styles/global.scss +431 -24
  7. package/assets/styles/icons.scss +644 -0
  8. package/assets/svgs/Icon_Log_Logout.svg +43 -0
  9. package/assets/svgs/clients.svg +6 -0
  10. package/assets/svgs/identity-marker.svg +8 -0
  11. package/assets/svgs/router-marker.svg +7 -0
  12. package/assets/svgs/ziti-logo.svg +23 -0
  13. package/esm2022/lib/ZAC_VERSION.mjs +4 -0
  14. package/esm2022/lib/default-app-config.mjs +5 -0
  15. package/esm2022/lib/features/card/card.component.mjs +4 -5
  16. package/esm2022/lib/features/card-list/card-list.component.mjs +2 -4
  17. package/esm2022/lib/features/config-editor/config-editor.component.mjs +2 -3
  18. package/esm2022/lib/features/confirm/confirm.component.mjs +4 -5
  19. package/esm2022/lib/features/creation-summary-dialog/creation-summary-dialog.component.mjs +2 -3
  20. package/esm2022/lib/features/custom-tags/custom-tags.component.mjs +4 -5
  21. package/esm2022/lib/features/data-table/cells/table-cell-menu/table-cell-menu.component.mjs +2 -3
  22. package/esm2022/lib/features/data-table/cells/table-cell-name/table-cell-name.component.mjs +2 -3
  23. package/esm2022/lib/features/data-table/cells/table-cell-select/table-cell-select.component.mjs +4 -5
  24. package/esm2022/lib/features/data-table/cells/table-cell-token/table-cell-token.component.mjs +2 -3
  25. package/esm2022/lib/features/data-table/column-headers/table-column-default/table-column-default.component.mjs +2 -3
  26. package/esm2022/lib/features/data-table/column-headers/table-column-filter/table-column-filter.component.mjs +2 -3
  27. package/esm2022/lib/features/data-table/column-headers/table-column-menu/table-column-menu.component.mjs +2 -3
  28. package/esm2022/lib/features/data-table/column-headers/table-column-select/table-column-select.component.mjs +4 -5
  29. package/esm2022/lib/features/data-table/data-table-filter.service.mjs +2 -3
  30. package/esm2022/lib/features/data-table/data-table.component.mjs +4 -5
  31. package/esm2022/lib/features/data-table/data-table.service.mjs +2 -3
  32. package/esm2022/lib/features/data-table/table-filter-bar/filter-bar.component.mjs +4 -5
  33. package/esm2022/lib/features/data-table/table-hidden-columns-bar/hidden-columns-bar.component.mjs +2 -3
  34. package/esm2022/lib/features/data-table/tooltips/os-tooltip.component.mjs +2 -3
  35. package/esm2022/lib/features/data-table/tooltips/sdk-tooltip.component.mjs +2 -3
  36. package/esm2022/lib/features/dynamic-widgets/boolean/boolean-toggle-input.component.mjs +2 -3
  37. package/esm2022/lib/features/dynamic-widgets/checkbox-list/checkbox-list-input.component.mjs +2 -3
  38. package/esm2022/lib/features/dynamic-widgets/forwarding-config/forwarding-config.component.mjs +2 -3
  39. package/esm2022/lib/features/dynamic-widgets/forwarding-config/forwarding-config.service.mjs +2 -3
  40. package/esm2022/lib/features/dynamic-widgets/number/number-input.component.mjs +2 -3
  41. package/esm2022/lib/features/dynamic-widgets/object/object.component.mjs +4 -5
  42. package/esm2022/lib/features/dynamic-widgets/password/password-input.component.mjs +2 -3
  43. package/esm2022/lib/features/dynamic-widgets/port-ranges/port-ranges.component.mjs +2 -3
  44. package/esm2022/lib/features/dynamic-widgets/protocol-address-port/protocol-address-port-input.component.mjs +2 -3
  45. package/esm2022/lib/features/dynamic-widgets/selector/selector-input.component.mjs +2 -3
  46. package/esm2022/lib/features/dynamic-widgets/string/string-input.component.mjs +2 -3
  47. package/esm2022/lib/features/dynamic-widgets/text-list/text-list-input.component.mjs +2 -3
  48. package/esm2022/lib/features/extendable/extendable.component.mjs +2 -3
  49. package/esm2022/lib/features/extendable/extensions-noop.service.mjs +3 -3
  50. package/esm2022/lib/features/header-bar/header-bar.component.mjs +105 -0
  51. package/esm2022/lib/features/json-view/json-view.component.mjs +4 -5
  52. package/esm2022/lib/features/list-page-features/list-page-form/list-page-form.component.mjs +2 -3
  53. package/esm2022/lib/features/list-page-features/list-page-header/list-page-header.component.mjs +4 -5
  54. package/esm2022/lib/features/loading-indicator/loading-indicator.component.mjs +2 -3
  55. package/esm2022/lib/features/login/login-dialog.component.mjs +10 -12
  56. package/esm2022/lib/features/messaging/growler.component.mjs +4 -5
  57. package/esm2022/lib/features/messaging/growler.module.mjs +2 -3
  58. package/esm2022/lib/features/messaging/growler.service.mjs +2 -3
  59. package/esm2022/lib/features/messaging/logger.service.mjs +2 -3
  60. package/esm2022/lib/features/multi-action-button/multi-action-button.component.mjs +2 -3
  61. package/esm2022/lib/features/no-items/no-items.component.mjs +2 -3
  62. package/esm2022/lib/features/overrides/overrides.component.mjs +2 -3
  63. package/esm2022/lib/features/overrides/overrides.service.mjs +2 -3
  64. package/esm2022/lib/features/preview-list/preview-list.component.mjs +4 -5
  65. package/esm2022/lib/features/preview-selections/preview-selections.component.mjs +2 -3
  66. package/esm2022/lib/features/progress-meter/progress-meter.component.mjs +2 -3
  67. package/esm2022/lib/features/progress-wizard/progress-wizard.component.mjs +2 -3
  68. package/esm2022/lib/features/projectable-forms/api-session/api-session-form.component.mjs +5 -9
  69. package/esm2022/lib/features/projectable-forms/api-session/api-session-form.service.mjs +2 -3
  70. package/esm2022/lib/features/projectable-forms/auth-policy/auth-policy-form.component.mjs +5 -9
  71. package/esm2022/lib/features/projectable-forms/auth-policy/auth-policy-form.service.mjs +2 -3
  72. package/esm2022/lib/features/projectable-forms/certificate-authority/certificate-authority-form.component.mjs +5 -9
  73. package/esm2022/lib/features/projectable-forms/certificate-authority/certificate-authority-form.service.mjs +2 -3
  74. package/esm2022/lib/features/projectable-forms/certificate-authority/verify-certificate/verify-certificate.component.mjs +4 -8
  75. package/esm2022/lib/features/projectable-forms/certificate-authority/verify-certificate/verify-certificate.service.mjs +2 -3
  76. package/esm2022/lib/features/projectable-forms/config-type/config-type-form.component.mjs +5 -9
  77. package/esm2022/lib/features/projectable-forms/config-type/config-type-form.service.mjs +2 -3
  78. package/esm2022/lib/features/projectable-forms/configuration/configuration-form.component.mjs +5 -9
  79. package/esm2022/lib/features/projectable-forms/configuration/configuration.service.mjs +2 -3
  80. package/esm2022/lib/features/projectable-forms/edge-router/edge-router-form.component.mjs +34 -26
  81. package/esm2022/lib/features/projectable-forms/edge-router/edge-router-form.service.mjs +2 -3
  82. package/esm2022/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.component.mjs +8 -12
  83. package/esm2022/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.service.mjs +2 -3
  84. package/esm2022/lib/features/projectable-forms/form-field-container/form-field-container.component.mjs +4 -5
  85. package/esm2022/lib/features/projectable-forms/form-field-toggle/form-field-toggle.component.mjs +4 -5
  86. package/esm2022/lib/features/projectable-forms/form-header/form-header.component.mjs +4 -5
  87. package/esm2022/lib/features/projectable-forms/identity/identity-form.component.mjs +25 -21
  88. package/esm2022/lib/features/projectable-forms/identity/identity-form.service.mjs +2 -3
  89. package/esm2022/lib/features/projectable-forms/jwt-signer/jwt-signer-form.component.mjs +5 -12
  90. package/esm2022/lib/features/projectable-forms/jwt-signer/jwt-signer-form.service.mjs +2 -3
  91. package/esm2022/lib/features/projectable-forms/posture-check/posture-check-form.component.mjs +5 -9
  92. package/esm2022/lib/features/projectable-forms/posture-check/posture-check-form.service.mjs +2 -3
  93. package/esm2022/lib/features/projectable-forms/projectable-form.class.mjs +36 -74
  94. package/esm2022/lib/features/projectable-forms/service/service-form.component.mjs +6 -9
  95. package/esm2022/lib/features/projectable-forms/service/service-form.service.mjs +2 -3
  96. package/esm2022/lib/features/projectable-forms/service/simple-service/simple-service.component.mjs +57 -19
  97. package/esm2022/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.component.mjs +8 -12
  98. package/esm2022/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.service.mjs +2 -3
  99. package/esm2022/lib/features/projectable-forms/service-policy/service-policy-form.component.mjs +8 -12
  100. package/esm2022/lib/features/projectable-forms/service-policy/service-policy-form.service.mjs +3 -4
  101. package/esm2022/lib/features/projectable-forms/session/session-form.component.mjs +5 -9
  102. package/esm2022/lib/features/projectable-forms/session/session-form.service.mjs +2 -3
  103. package/esm2022/lib/features/projectable-forms/terminator/terminator-form.component.mjs +4 -8
  104. package/esm2022/lib/features/projectable-forms/terminator/terminator-form.service.mjs +2 -3
  105. package/esm2022/lib/features/projectable-forms/transit-router/transit-router-form.component.mjs +7 -11
  106. package/esm2022/lib/features/projectable-forms/transit-router/transit-router-form.service.mjs +2 -3
  107. package/esm2022/lib/features/qr-code/qr-code.component.mjs +4 -5
  108. package/esm2022/lib/features/quick-add/quick-add.component.mjs +50 -0
  109. package/esm2022/lib/features/reset-enrollment/reset-enrollment.component.mjs +4 -5
  110. package/esm2022/lib/features/reset-enrollment/reset-enrollment.service.mjs +2 -3
  111. package/esm2022/lib/features/side-modal/side-modal.component.mjs +2 -3
  112. package/esm2022/lib/features/side-navigator/side-navigator.component.mjs +127 -0
  113. package/esm2022/lib/features/sidebars/side-navbar/side-navbar.component.mjs +4 -5
  114. package/esm2022/lib/features/tag-selector/tag-selector.component.mjs +2 -3
  115. package/esm2022/lib/features/visualizer/identity-service-path/identity-service-path.component.mjs +2 -3
  116. package/esm2022/lib/features/visualizer/identity-service-path/identity-service-path.helper.mjs +2 -3
  117. package/esm2022/lib/features/visualizer/network-visualizer/network-visualizer.component.mjs +2 -3
  118. package/esm2022/lib/features/visualizer/network-visualizer/network-visualizer.helper.mjs +2 -3
  119. package/esm2022/lib/features/visualizer/network-visualizer/network-visualizer.treenodeprocessor.mjs +2 -3
  120. package/esm2022/lib/features/visualizer/visualizer-service.class.mjs +2 -3
  121. package/esm2022/lib/pages/api-sessions/api-sessions-page.component.mjs +2 -3
  122. package/esm2022/lib/pages/api-sessions/api-sessions-page.service.mjs +2 -3
  123. package/esm2022/lib/pages/attributes/attributes.component.mjs +104 -0
  124. package/esm2022/lib/pages/auth-policies/auth-policies-page.component.mjs +2 -3
  125. package/esm2022/lib/pages/auth-policies/auth-policies-page.service.mjs +6 -6
  126. package/esm2022/lib/pages/callback/callback.component.mjs +2 -3
  127. package/esm2022/lib/pages/certificate-authorities/certificate-authorities-page.component.mjs +2 -3
  128. package/esm2022/lib/pages/certificate-authorities/certificate-authorities-page.service.mjs +2 -3
  129. package/esm2022/lib/pages/config-types/config-types-page.component.mjs +2 -3
  130. package/esm2022/lib/pages/config-types/config-types-page.service.mjs +2 -3
  131. package/esm2022/lib/pages/configurations/configurations-page.component.mjs +2 -3
  132. package/esm2022/lib/pages/configurations/configurations-page.service.mjs +2 -3
  133. package/esm2022/lib/pages/edge-router-policies/edge-router-policies-page.component.mjs +6 -13
  134. package/esm2022/lib/pages/edge-router-policies/edge-router-policies-page.service.mjs +2 -3
  135. package/esm2022/lib/pages/edge-routers/edge-routers-page.component.mjs +5 -16
  136. package/esm2022/lib/pages/edge-routers/edge-routers-page.service.mjs +2 -4
  137. package/esm2022/lib/pages/geolocate/geolocate.component.mjs +130 -0
  138. package/esm2022/lib/pages/identities/identities-page.component.mjs +5 -16
  139. package/esm2022/lib/pages/identities/identities-page.service.mjs +2 -3
  140. package/esm2022/lib/pages/jwt-signers/jwt-signers-page.component.mjs +2 -3
  141. package/esm2022/lib/pages/jwt-signers/jwt-signers-page.service.mjs +2 -3
  142. package/esm2022/lib/pages/posture-checks/posture-checks-page.component.mjs +3 -4
  143. package/esm2022/lib/pages/posture-checks/posture-checks-page.service.mjs +2 -3
  144. package/esm2022/lib/pages/profile/profile.component.mjs +58 -0
  145. package/esm2022/lib/pages/service-edge-router-policies/service-edge-router-policies-page.component.mjs +6 -13
  146. package/esm2022/lib/pages/service-edge-router-policies/service-edge-router-policies-page.service.mjs +2 -3
  147. package/esm2022/lib/pages/service-policies/service-policies-page.component.mjs +6 -13
  148. package/esm2022/lib/pages/service-policies/service-policies-page.service.mjs +2 -3
  149. package/esm2022/lib/pages/services/services-page.component.mjs +6 -13
  150. package/esm2022/lib/pages/services/services-page.service.mjs +2 -3
  151. package/esm2022/lib/pages/sessions/sessions-page.component.mjs +2 -3
  152. package/esm2022/lib/pages/sessions/sessions-page.service.mjs +2 -3
  153. package/esm2022/lib/pages/settings/settings.component.mjs +61 -0
  154. package/esm2022/lib/pages/terminators/terminators-page.component.mjs +3 -4
  155. package/esm2022/lib/pages/terminators/terminators-page.service.mjs +2 -3
  156. package/esm2022/lib/pages/transit-routers/transit-routers-page.component.mjs +5 -16
  157. package/esm2022/lib/pages/transit-routers/transit-routers-page.service.mjs +2 -3
  158. package/esm2022/lib/safe.pipe.mjs +2 -3
  159. package/esm2022/lib/services/auth.service.mjs +2 -3
  160. package/esm2022/lib/services/console-events.service.mjs +2 -14
  161. package/esm2022/lib/services/csv-download.service.mjs +2 -3
  162. package/esm2022/lib/services/deactivate-guard.service.mjs +2 -3
  163. package/esm2022/lib/services/login-service.class.mjs +2 -3
  164. package/esm2022/lib/services/node-data.service.mjs +24 -3
  165. package/esm2022/lib/services/noop-login.service.mjs +2 -3
  166. package/esm2022/lib/services/schema.service.mjs +2 -3
  167. package/esm2022/lib/services/settings-service.class.mjs +5 -18
  168. package/esm2022/lib/services/settings.service.mjs +14 -11
  169. package/esm2022/lib/services/tab-name.service.mjs +9 -6
  170. package/esm2022/lib/services/validation.service.mjs +2 -3
  171. package/esm2022/lib/services/ziti-controller-data.service.mjs +18 -3
  172. package/esm2022/lib/services/ziti-data.service.mjs +2 -3
  173. package/esm2022/lib/shared/list-page-component.class.mjs +6 -3
  174. package/esm2022/lib/shared/list-page-service.class.mjs +2 -3
  175. package/esm2022/lib/zac-routing.module.mjs +3 -10
  176. package/esm2022/lib/ziti-console-lib.module.mjs +43 -24
  177. package/esm2022/lib/ziti-console.constants.mjs +2 -1
  178. package/esm2022/public-api.mjs +9 -8
  179. package/fesm2022/openziti-ziti-console-lib.mjs +3535 -4325
  180. package/fesm2022/openziti-ziti-console-lib.mjs.map +1 -1
  181. package/lib/ZAC_VERSION.d.ts +4 -0
  182. package/lib/ZAC_VERSION.d.ts.map +1 -0
  183. package/lib/default-app-config.d.ts +9 -0
  184. package/lib/default-app-config.d.ts.map +1 -0
  185. package/lib/features/card-list/card-list.component.d.ts +0 -1
  186. package/lib/features/card-list/card-list.component.d.ts.map +1 -1
  187. package/lib/features/extendable/extensions-noop.service.d.ts +2 -0
  188. package/lib/features/extendable/extensions-noop.service.d.ts.map +1 -1
  189. package/lib/features/header-bar/header-bar.component.d.ts +29 -0
  190. package/lib/features/header-bar/header-bar.component.d.ts.map +1 -0
  191. package/lib/features/login/login-dialog.component.d.ts +2 -1
  192. package/lib/features/login/login-dialog.component.d.ts.map +1 -1
  193. package/lib/features/projectable-forms/api-session/api-session-form.component.d.ts +1 -2
  194. package/lib/features/projectable-forms/api-session/api-session-form.component.d.ts.map +1 -1
  195. package/lib/features/projectable-forms/auth-policy/auth-policy-form.component.d.ts +1 -2
  196. package/lib/features/projectable-forms/auth-policy/auth-policy-form.component.d.ts.map +1 -1
  197. package/lib/features/projectable-forms/certificate-authority/certificate-authority-form.component.d.ts +1 -2
  198. package/lib/features/projectable-forms/certificate-authority/certificate-authority-form.component.d.ts.map +1 -1
  199. package/lib/features/projectable-forms/certificate-authority/verify-certificate/verify-certificate.component.d.ts +1 -2
  200. package/lib/features/projectable-forms/certificate-authority/verify-certificate/verify-certificate.component.d.ts.map +1 -1
  201. package/lib/features/projectable-forms/config-type/config-type-form.component.d.ts +1 -2
  202. package/lib/features/projectable-forms/config-type/config-type-form.component.d.ts.map +1 -1
  203. package/lib/features/projectable-forms/configuration/configuration-form.component.d.ts +1 -2
  204. package/lib/features/projectable-forms/configuration/configuration-form.component.d.ts.map +1 -1
  205. package/lib/features/projectable-forms/edge-router/edge-router-form.component.d.ts +6 -3
  206. package/lib/features/projectable-forms/edge-router/edge-router-form.component.d.ts.map +1 -1
  207. package/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.component.d.ts +1 -2
  208. package/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.component.d.ts.map +1 -1
  209. package/lib/features/projectable-forms/identity/identity-form.component.d.ts +2 -2
  210. package/lib/features/projectable-forms/identity/identity-form.component.d.ts.map +1 -1
  211. package/lib/features/projectable-forms/jwt-signer/jwt-signer-form.component.d.ts +1 -2
  212. package/lib/features/projectable-forms/jwt-signer/jwt-signer-form.component.d.ts.map +1 -1
  213. package/lib/features/projectable-forms/posture-check/posture-check-form.component.d.ts +1 -2
  214. package/lib/features/projectable-forms/posture-check/posture-check-form.component.d.ts.map +1 -1
  215. package/lib/features/projectable-forms/projectable-form.class.d.ts +11 -7
  216. package/lib/features/projectable-forms/projectable-form.class.d.ts.map +1 -1
  217. package/lib/features/projectable-forms/service/service-form.component.d.ts +0 -1
  218. package/lib/features/projectable-forms/service/service-form.component.d.ts.map +1 -1
  219. package/lib/features/projectable-forms/service/simple-service/simple-service.component.d.ts +9 -2
  220. package/lib/features/projectable-forms/service/simple-service/simple-service.component.d.ts.map +1 -1
  221. package/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.component.d.ts +1 -2
  222. package/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.component.d.ts.map +1 -1
  223. package/lib/features/projectable-forms/service-policy/service-policy-form.component.d.ts +1 -2
  224. package/lib/features/projectable-forms/service-policy/service-policy-form.component.d.ts.map +1 -1
  225. package/lib/features/projectable-forms/session/session-form.component.d.ts +1 -2
  226. package/lib/features/projectable-forms/session/session-form.component.d.ts.map +1 -1
  227. package/lib/features/projectable-forms/terminator/terminator-form.component.d.ts +1 -2
  228. package/lib/features/projectable-forms/terminator/terminator-form.component.d.ts.map +1 -1
  229. package/lib/features/projectable-forms/transit-router/transit-router-form.component.d.ts +1 -2
  230. package/lib/features/projectable-forms/transit-router/transit-router-form.component.d.ts.map +1 -1
  231. package/lib/features/quick-add/quick-add.component.d.ts +15 -0
  232. package/lib/features/quick-add/quick-add.component.d.ts.map +1 -0
  233. package/lib/features/side-navigator/side-navigator.component.d.ts +33 -0
  234. package/lib/features/side-navigator/side-navigator.component.d.ts.map +1 -0
  235. package/lib/pages/attributes/attributes.component.d.ts +31 -0
  236. package/lib/pages/attributes/attributes.component.d.ts.map +1 -0
  237. package/lib/pages/auth-policies/auth-policies-page.service.d.ts.map +1 -1
  238. package/lib/pages/edge-router-policies/edge-router-policies-page.component.d.ts +1 -3
  239. package/lib/pages/edge-router-policies/edge-router-policies-page.component.d.ts.map +1 -1
  240. package/lib/pages/edge-routers/edge-routers-page.component.d.ts +1 -3
  241. package/lib/pages/edge-routers/edge-routers-page.component.d.ts.map +1 -1
  242. package/lib/pages/edge-routers/edge-routers-page.service.d.ts.map +1 -1
  243. package/lib/pages/geolocate/geolocate.component.d.ts +32 -0
  244. package/lib/pages/geolocate/geolocate.component.d.ts.map +1 -0
  245. package/lib/pages/identities/identities-page.component.d.ts +1 -3
  246. package/lib/pages/identities/identities-page.component.d.ts.map +1 -1
  247. package/lib/pages/profile/profile.component.d.ts +17 -0
  248. package/lib/pages/profile/profile.component.d.ts.map +1 -0
  249. package/lib/pages/service-edge-router-policies/service-edge-router-policies-page.component.d.ts +1 -3
  250. package/lib/pages/service-edge-router-policies/service-edge-router-policies-page.component.d.ts.map +1 -1
  251. package/lib/pages/service-policies/service-policies-page.component.d.ts +1 -3
  252. package/lib/pages/service-policies/service-policies-page.component.d.ts.map +1 -1
  253. package/lib/pages/services/services-page.component.d.ts +1 -3
  254. package/lib/pages/services/services-page.component.d.ts.map +1 -1
  255. package/lib/pages/settings/settings.component.d.ts +23 -0
  256. package/lib/pages/settings/settings.component.d.ts.map +1 -0
  257. package/lib/pages/transit-routers/transit-routers-page.component.d.ts +1 -3
  258. package/lib/pages/transit-routers/transit-routers-page.component.d.ts.map +1 -1
  259. package/lib/services/console-events.service.d.ts.map +1 -1
  260. package/lib/services/node-data.service.d.ts +1 -0
  261. package/lib/services/node-data.service.d.ts.map +1 -1
  262. package/lib/services/settings-service.class.d.ts +0 -2
  263. package/lib/services/settings-service.class.d.ts.map +1 -1
  264. package/lib/services/settings.service.d.ts.map +1 -1
  265. package/lib/services/tab-name.service.d.ts.map +1 -1
  266. package/lib/services/ziti-controller-data.service.d.ts +1 -0
  267. package/lib/services/ziti-controller-data.service.d.ts.map +1 -1
  268. package/lib/services/ziti-data.service.d.ts +1 -0
  269. package/lib/services/ziti-data.service.d.ts.map +1 -1
  270. package/lib/shared/list-page-component.class.d.ts.map +1 -1
  271. package/lib/zac-routing.module.d.ts.map +1 -1
  272. package/lib/ziti-console-lib.module.d.ts +114 -110
  273. package/lib/ziti-console-lib.module.d.ts.map +1 -1
  274. package/lib/ziti-console.constants.d.ts +1 -0
  275. package/lib/ziti-console.constants.d.ts.map +1 -1
  276. package/package.json +1 -1
  277. package/public-api.d.ts +8 -7
  278. package/public-api.d.ts.map +1 -1
  279. package/assets/components/add.html +0 -1
  280. package/assets/components/api.html +0 -12
  281. package/assets/components/customtags.html +0 -4
  282. package/assets/components/line.html +0 -1
  283. package/assets/components/noitems.html +0 -1
  284. package/assets/components/save.html +0 -4
  285. package/assets/components/search.html +0 -8
  286. package/assets/components/tabIdentities.html +0 -5
  287. package/assets/components/tabPolicies.html +0 -7
  288. package/assets/components/tabRouters.html +0 -5
  289. package/assets/components/tabServers.html +0 -4
  290. package/assets/components/tabServices.html +0 -6
  291. package/assets/components/tabSessions.html +0 -4
  292. package/assets/data/mail.json +0 -0
  293. package/assets/data/services.json +0 -6
  294. package/assets/data/site.json +0 -31
  295. package/assets/data/tags.json +0 -7
  296. package/assets/data/templates.json +0 -1
  297. package/assets/fonts/zac.eot +0 -0
  298. package/assets/fonts/zac.svg +0 -57
  299. package/assets/fonts/zac.ttf +0 -0
  300. package/assets/fonts/zac.woff +0 -0
  301. package/assets/fonts/zac.woff2 +0 -0
  302. package/assets/html/api-sessions.htm +0 -152
  303. package/assets/html/attributes.htm +0 -260
  304. package/assets/html/auth-policies.htm +0 -410
  305. package/assets/html/cas.htm +0 -439
  306. package/assets/html/config-types.htm +0 -167
  307. package/assets/html/configs.htm +0 -238
  308. package/assets/html/deprecated/fabric-links.htm +0 -336
  309. package/assets/html/deprecated/fabric-routers.htm +0 -72
  310. package/assets/html/deprecated/fabric-services.htm +0 -494
  311. package/assets/html/identities.htm +0 -934
  312. package/assets/html/index.htm +0 -179
  313. package/assets/html/jwt-signers.htm +0 -260
  314. package/assets/html/known.htm +0 -115
  315. package/assets/html/login.htm +0 -131
  316. package/assets/html/organization.htm +0 -223
  317. package/assets/html/posture-checks.htm +0 -393
  318. package/assets/html/profile.htm +0 -52
  319. package/assets/html/recipes.htm +0 -455
  320. package/assets/html/router-policies.htm +0 -168
  321. package/assets/html/routers.htm +0 -323
  322. package/assets/html/servers.htm +0 -236
  323. package/assets/html/service-policies.htm +0 -197
  324. package/assets/html/service-router-policies.htm +0 -170
  325. package/assets/html/services.htm +0 -634
  326. package/assets/html/sessions.htm +0 -157
  327. package/assets/html/settings.htm +0 -146
  328. package/assets/html/terminators.htm +0 -244
  329. package/assets/html/transit-routers.htm +0 -173
  330. package/assets/resources/avatar/man.svg +0 -78
  331. package/assets/resources/avatar/woman.svg +0 -96
  332. package/assets/resources/icon/analysis.svg +0 -104
  333. package/assets/resources/icon/appwans.svg +0 -20
  334. package/assets/resources/icon/architecture.svg +0 -1
  335. package/assets/resources/icon/bike.svg +0 -94
  336. package/assets/resources/icon/bus.svg +0 -64
  337. package/assets/resources/icon/cas.svg +0 -46
  338. package/assets/resources/icon/clusters.svg +0 -28
  339. package/assets/resources/icon/computer.svg +0 -1
  340. package/assets/resources/icon/data.svg +0 -1
  341. package/assets/resources/icon/delivery-truck.svg +0 -1
  342. package/assets/resources/icon/explosion.svg +0 -81
  343. package/assets/resources/icon/fabricServices.svg +0 -31
  344. package/assets/resources/icon/fabrics.svg +0 -136
  345. package/assets/resources/icon/front.svg +0 -83
  346. package/assets/resources/icon/gateway.svg +0 -49
  347. package/assets/resources/icon/gear.svg +0 -122
  348. package/assets/resources/icon/house.svg +0 -72
  349. package/assets/resources/icon/language.svg +0 -1
  350. package/assets/resources/icon/objective.svg +0 -55
  351. package/assets/resources/icon/route.svg +0 -97
  352. package/assets/resources/icon/routers.svg +0 -27
  353. package/assets/resources/icon/startup.svg +0 -112
  354. package/assets/resources/icon/switch.svg +0 -101
  355. package/assets/scripts/chart.min.js +0 -7
  356. package/assets/scripts/commands.js +0 -112
  357. package/assets/scripts/components/codemirror/codemirror.css +0 -356
  358. package/assets/scripts/components/codemirror/codemirror.js +0 -9741
  359. package/assets/scripts/components/codemirror/modes/addons/closetags.js +0 -200
  360. package/assets/scripts/components/codemirror/modes/addons/colorize.js +0 -40
  361. package/assets/scripts/components/codemirror/modes/addons/css-hint.js +0 -66
  362. package/assets/scripts/components/codemirror/modes/addons/formatting.js +0 -124
  363. package/assets/scripts/components/codemirror/modes/addons/html-hint.js +0 -366
  364. package/assets/scripts/components/codemirror/modes/addons/javascript-hint.js +0 -159
  365. package/assets/scripts/components/codemirror/modes/addons/show-hint.css +0 -36
  366. package/assets/scripts/components/codemirror/modes/addons/show-hint.js +0 -482
  367. package/assets/scripts/components/codemirror/modes/css.js +0 -831
  368. package/assets/scripts/components/codemirror/modes/htmlmixed.js +0 -152
  369. package/assets/scripts/components/codemirror/modes/javascript.js +0 -930
  370. package/assets/scripts/components/codemirror/modes/xml.js +0 -413
  371. package/assets/scripts/components/column.css +0 -184
  372. package/assets/scripts/components/column.js +0 -165
  373. package/assets/scripts/components/flows.css +0 -0
  374. package/assets/scripts/components/flows.js +0 -48
  375. package/assets/scripts/components/moment.js +0 -4602
  376. package/assets/scripts/components/multiselect.js +0 -333
  377. package/assets/scripts/components/resources.js +0 -26
  378. package/assets/scripts/components/selector-new.js +0 -300
  379. package/assets/scripts/components/selector.js +0 -300
  380. package/assets/scripts/components/spectrum.js +0 -2323
  381. package/assets/scripts/components/timezone.js +0 -1545
  382. package/assets/scripts/context.js +0 -177
  383. package/assets/scripts/dragging.js +0 -58
  384. package/assets/scripts/forms/forms.js +0 -74
  385. package/assets/scripts/forms/host.v1.htm +0 -43
  386. package/assets/scripts/forms/intercept.v1.htm +0 -0
  387. package/assets/scripts/forms/schema.js +0 -693
  388. package/assets/scripts/growler.js +0 -137
  389. package/assets/scripts/header.js +0 -163
  390. package/assets/scripts/jquery-3.6.3.min.js +0 -2
  391. package/assets/scripts/jquery.datetimepicker.js +0 -2930
  392. package/assets/scripts/locale.js +0 -47
  393. package/assets/scripts/modal.js +0 -65
  394. package/assets/scripts/model/data.js +0 -558
  395. package/assets/scripts/model/fabric.js +0 -55
  396. package/assets/scripts/model/fabricServices.js +0 -45
  397. package/assets/scripts/model/known.js +0 -43
  398. package/assets/scripts/model/links.js +0 -44
  399. package/assets/scripts/model/routers.js +0 -51
  400. package/assets/scripts/model/series.js +0 -70
  401. package/assets/scripts/model/sessions.js +0 -61
  402. package/assets/scripts/model/settings.js +0 -60
  403. package/assets/scripts/model/summary.js +0 -49
  404. package/assets/scripts/model/tags.js +0 -310
  405. package/assets/scripts/model/templates.js +0 -42
  406. package/assets/scripts/model/user.js +0 -40
  407. package/assets/scripts/restrictions.js +0 -34
  408. package/assets/scripts/service.js +0 -76
  409. package/assets/scripts/validation-tools.js +0 -5119
  410. package/assets/scripts/ziti.js +0 -372
  411. package/assets/styles/chart.min.css +0 -1
  412. package/assets/styles/datetimepicker.css +0 -1
  413. package/assets/styles/forms.css +0 -521
  414. package/assets/styles/growler.css +0 -190
  415. package/assets/styles/header.css +0 -232
  416. package/assets/styles/icons.css +0 -182
  417. package/assets/styles/navigation.css +0 -183
  418. package/assets/styles/select2.css +0 -481
  419. package/assets/styles/spectrum.css +0 -507
  420. package/assets/styles/tables.css +0 -449
  421. package/assets/styles/tooltip.css +0 -134
  422. package/assets/styles/ziti.css +0 -3271
  423. package/assets/templates/footer.htm +0 -183
  424. package/assets/templates/header.htm +0 -297
  425. package/esm2022/lib/features/sidebars/side-banner/side-banner.component.mjs +0 -17
  426. package/esm2022/lib/features/sidebars/side-toolbar/side-toolbar.component.mjs +0 -129
  427. package/esm2022/lib/features/wrappers/node-wrapper.service.mjs +0 -51
  428. package/esm2022/lib/features/wrappers/zac-wrapper-service.class.mjs +0 -95
  429. package/esm2022/lib/features/wrappers/zac-wrapper.component.mjs +0 -148
  430. package/esm2022/lib/features/wrappers/zac-wrapper.service.mjs +0 -981
  431. package/esm2022/lib/version.mjs +0 -4
  432. package/lib/features/sidebars/side-banner/side-banner.component.d.ts +0 -7
  433. package/lib/features/sidebars/side-banner/side-banner.component.d.ts.map +0 -1
  434. package/lib/features/sidebars/side-toolbar/side-toolbar.component.d.ts +0 -34
  435. package/lib/features/sidebars/side-toolbar/side-toolbar.component.d.ts.map +0 -1
  436. package/lib/features/wrappers/node-wrapper.service.d.ts +0 -24
  437. package/lib/features/wrappers/node-wrapper.service.d.ts.map +0 -1
  438. package/lib/features/wrappers/zac-wrapper-service.class.d.ts +0 -38
  439. package/lib/features/wrappers/zac-wrapper-service.class.d.ts.map +0 -1
  440. package/lib/features/wrappers/zac-wrapper.component.d.ts +0 -31
  441. package/lib/features/wrappers/zac-wrapper.component.d.ts.map +0 -1
  442. package/lib/features/wrappers/zac-wrapper.service.d.ts +0 -58
  443. package/lib/features/wrappers/zac-wrapper.service.d.ts.map +0 -1
  444. package/lib/version.d.ts +0 -4
  445. package/lib/version.d.ts.map +0 -1
@@ -21,7 +21,7 @@ import * as i1 from "../../data-table-filter.service";
21
21
  import * as i2 from "@angular/common";
22
22
  import * as i3 from "ng-click-outside";
23
23
  import * as i4 from "../table-column-filter/table-column-filter.component";
24
- class TableColumnDefaultComponent {
24
+ export class TableColumnDefaultComponent {
25
25
  constructor(filterService) {
26
26
  this.filterService = filterService;
27
27
  this.headerParams = {
@@ -258,7 +258,6 @@ class TableColumnDefaultComponent {
258
258
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableColumnDefaultComponent, deps: [{ token: i1.DataTableFilterService }], target: i0.ɵɵFactoryTarget.Component }); }
259
259
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TableColumnDefaultComponent, selector: "app-table-column-default", viewQueries: [{ propertyName: "menuButton", first: true, predicate: ["menuButton"], descendants: true }], ngImport: i0, template: "<div\n (click)=\"sort($event)\"\n [ngClass]=\"{ 'nf-can-sort': enableSorting }\"\n class=\"ag-cell-label-container ag-header-cell-sorted-none\"\n id=\"TableHeaderContainer_{{ columnDef.colId }}\"\n>\n <span\n #menuButton\n (click)=\"openGridMenu()\"\n *ngIf=\"false\"\n class=\"ag-header-icon ag-header-cell-menu-button\"\n id=\"HeaderMenu_{{ columnDef.colId }}\"\n ref=\"eMenu\"\n >\n <span class=\"ag-icon ag-icon-menu\" unselectable=\"on\"></span>\n </span>\n <span\n (click)=\"pin()\"\n class=\"ag-header-icon ag-header-col-pin-button\"\n id=\"HeaderPin_{{ columnDef.colId }}\"\n title=\"{{ pinned ? 'Unpin Column' : 'Pin Column' }}\"\n >\n <span class=\"ag-icon ag-icon-pin\"></span>\n </span>\n <span\n (click)=\"hide()\"\n class=\"ag-header-icon ag-header-col-hide-button\"\n id=\"HeaderHide_{{ columnDef.colId }}\"\n title=\"Hide Column\"\n >\n <span class=\"ag-icon ag-icon-eye-slash\"></span>\n </span>\n <div class=\"ag-header-cell-label\" ref=\"eLabel\" unselectable=\"on\">\n <span\n *ngIf=\"!headerParams.filterType\"\n [ngClass]=\"{ 'ag-filter-applied': filterApplied }\"\n class=\"ag-header-icon ag-header-col-filter-button\"\n id=\"HeaderFilterSpacer_{{ columnDef.colId }}\"\n >\n <span class=\"ag-icon ag-icon-filter\" id=\"HeaderFilterSpace_{{ columnDef.colId }}\" style=\"opacity: 0\"></span>\n </span>\n <span\n (click)=\"toggleFilter($event)\"\n *ngIf=\"headerParams.filterType\"\n [ngClass]=\"{ 'ag-filter-applied': filterApplied }\"\n class=\"ag-header-icon ag-header-col-filter-button\"\n id=\"HeaderFilterButton_{{ columnDef.colId }}\"\n >\n <span class=\"ag-icon ag-icon-filter\" id=\"HeaderFilterIcon_{{ columnDef.colId }}\"></span>\n </span>\n <div\n (clickOutside)=\"hideFilter($event)\"\n [ngClass]=\"{ 'show-input-filter': showFilter }\"\n class=\"header-text-container text-input-filter\"\n >\n <span\n (click)=\"toggleSecondaryFilter($event)\"\n *ngIf=\"showBubble\"\n [ngClass]=\"statusClass\"\n class=\"bubble\"\n id=\"HeaderStatus_{{ columnDef.colId }}\"\n >\n <svg *ngIf=\"showLoader\" class=\"circular\" viewBox=\"25 25 50 50\">\n <circle\n class=\"path\"\n cx=\"50\"\n cy=\"50\"\n fill=\"none\"\n r=\"20\"\n stroke-miterlimit=\"10\"\n stroke-width=\"3\"\n ></circle>\n </svg>\n </span>\n <app-table-column-filter\n *ngIf=\"((showFilter || comboActive) && !(filterType === 'COMBO' && !comboActive)) && filterType !== 'SELECT' && filterType !== 'CUSTOM'\"\n [columnDef]=\"columnDef\"\n [filterName]=\"headerName\"\n [filterString]=\"''\"\n [openStatusMenu]=\"toggleSecondaryFilter.bind(this)\"\n [type]=\"filterType\"\n ></app-table-column-filter>\n <span\n *ngIf=\"((!showFilter && !comboActive) || (filterType === 'COMBO' && !comboActive)) || filterType === 'SELECT' || filterType === 'CUSTOM'\"\n [title]=\"headerName\"\n class=\"ag-header-cell-text\"\n id=\"HeaderName_{{ columnDef.colId }}\"\n unselectable=\"on\"\n >{{ headerName }}</span\n >\n </div>\n <span\n *ngIf=\"enableSorting && !showFilter\"\n [ngClass]=\"{ 'ag-hidden': sortDir !== 'desc' }\"\n class=\"ag-header-icon ag-header-label-icon ag-sort-ascending-icon\"\n id=\"HeaderSortAsc_{{ columnDef.colId }}\"\n >\n <span class=\"ag-icon ag-icon-asc\" unselectable=\"on\"></span>\n </span>\n <span\n *ngIf=\"enableSorting && !showFilter\"\n [ngClass]=\"{ 'ag-hidden': sortDir !== 'asc' }\"\n class=\"ag-header-icon ag-header-label-icon ag-sort-descending-icon\"\n id=\"HeaderSortDesc_{{ columnDef.colId }}\"\n >\n <span class=\"ag-icon ag-icon-desc\" unselectable=\"on\"></span>\n </span>\n </div>\n</div>\n", styles: [".ag-header-sort-click-space{display:flex;height:100%;position:relative;width:100%}.ag-header-col-filter-button.ag-filter-applied{opacity:1!important}.Online,.v7Online,.v7Offline{margin-right:.5rem!important;height:.875rem!important;width:.875rem!important}.Online:hover,.v7Online:hover,.v7Offline:hover{border-color:var(--primaryColor)!important;border-style:solid;border-width:var(--inputBorderWidth);height:.625rem!important;width:.625rem!important}.header-text-container{white-space:nowrap;overflow-x:hidden;text-overflow:ellipsis}.text-input-filter{display:flex;flex-direction:row;align-items:center}.text-input-filter .bubble{margin-top:.5rem;margin-left:.0625rem;margin-right:.5rem;width:.875rem;height:.875rem;flex-shrink:0}.ag-header-col-filter-button{margin-top:.5rem}.ag-header-cell-text{margin-top:.125rem;width:100%}.ag-header-cell-label .ag-sort-descending-icon{margin-top:1.25rem!important}.show-input-filter{width:100%}.filterButton{background-image:none}.filterButton .options{position:fixed}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }, { kind: "component", type: i4.TableColumnFilterComponent, selector: "app-table-column-filter", inputs: ["type", "filterString", "filterName", "columnDef", "openStatusMenu", "dateFilter"] }] }); }
260
260
  }
261
- export { TableColumnDefaultComponent };
262
261
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableColumnDefaultComponent, decorators: [{
263
262
  type: Component,
264
263
  args: [{ selector: 'app-table-column-default', template: "<div\n (click)=\"sort($event)\"\n [ngClass]=\"{ 'nf-can-sort': enableSorting }\"\n class=\"ag-cell-label-container ag-header-cell-sorted-none\"\n id=\"TableHeaderContainer_{{ columnDef.colId }}\"\n>\n <span\n #menuButton\n (click)=\"openGridMenu()\"\n *ngIf=\"false\"\n class=\"ag-header-icon ag-header-cell-menu-button\"\n id=\"HeaderMenu_{{ columnDef.colId }}\"\n ref=\"eMenu\"\n >\n <span class=\"ag-icon ag-icon-menu\" unselectable=\"on\"></span>\n </span>\n <span\n (click)=\"pin()\"\n class=\"ag-header-icon ag-header-col-pin-button\"\n id=\"HeaderPin_{{ columnDef.colId }}\"\n title=\"{{ pinned ? 'Unpin Column' : 'Pin Column' }}\"\n >\n <span class=\"ag-icon ag-icon-pin\"></span>\n </span>\n <span\n (click)=\"hide()\"\n class=\"ag-header-icon ag-header-col-hide-button\"\n id=\"HeaderHide_{{ columnDef.colId }}\"\n title=\"Hide Column\"\n >\n <span class=\"ag-icon ag-icon-eye-slash\"></span>\n </span>\n <div class=\"ag-header-cell-label\" ref=\"eLabel\" unselectable=\"on\">\n <span\n *ngIf=\"!headerParams.filterType\"\n [ngClass]=\"{ 'ag-filter-applied': filterApplied }\"\n class=\"ag-header-icon ag-header-col-filter-button\"\n id=\"HeaderFilterSpacer_{{ columnDef.colId }}\"\n >\n <span class=\"ag-icon ag-icon-filter\" id=\"HeaderFilterSpace_{{ columnDef.colId }}\" style=\"opacity: 0\"></span>\n </span>\n <span\n (click)=\"toggleFilter($event)\"\n *ngIf=\"headerParams.filterType\"\n [ngClass]=\"{ 'ag-filter-applied': filterApplied }\"\n class=\"ag-header-icon ag-header-col-filter-button\"\n id=\"HeaderFilterButton_{{ columnDef.colId }}\"\n >\n <span class=\"ag-icon ag-icon-filter\" id=\"HeaderFilterIcon_{{ columnDef.colId }}\"></span>\n </span>\n <div\n (clickOutside)=\"hideFilter($event)\"\n [ngClass]=\"{ 'show-input-filter': showFilter }\"\n class=\"header-text-container text-input-filter\"\n >\n <span\n (click)=\"toggleSecondaryFilter($event)\"\n *ngIf=\"showBubble\"\n [ngClass]=\"statusClass\"\n class=\"bubble\"\n id=\"HeaderStatus_{{ columnDef.colId }}\"\n >\n <svg *ngIf=\"showLoader\" class=\"circular\" viewBox=\"25 25 50 50\">\n <circle\n class=\"path\"\n cx=\"50\"\n cy=\"50\"\n fill=\"none\"\n r=\"20\"\n stroke-miterlimit=\"10\"\n stroke-width=\"3\"\n ></circle>\n </svg>\n </span>\n <app-table-column-filter\n *ngIf=\"((showFilter || comboActive) && !(filterType === 'COMBO' && !comboActive)) && filterType !== 'SELECT' && filterType !== 'CUSTOM'\"\n [columnDef]=\"columnDef\"\n [filterName]=\"headerName\"\n [filterString]=\"''\"\n [openStatusMenu]=\"toggleSecondaryFilter.bind(this)\"\n [type]=\"filterType\"\n ></app-table-column-filter>\n <span\n *ngIf=\"((!showFilter && !comboActive) || (filterType === 'COMBO' && !comboActive)) || filterType === 'SELECT' || filterType === 'CUSTOM'\"\n [title]=\"headerName\"\n class=\"ag-header-cell-text\"\n id=\"HeaderName_{{ columnDef.colId }}\"\n unselectable=\"on\"\n >{{ headerName }}</span\n >\n </div>\n <span\n *ngIf=\"enableSorting && !showFilter\"\n [ngClass]=\"{ 'ag-hidden': sortDir !== 'desc' }\"\n class=\"ag-header-icon ag-header-label-icon ag-sort-ascending-icon\"\n id=\"HeaderSortAsc_{{ columnDef.colId }}\"\n >\n <span class=\"ag-icon ag-icon-asc\" unselectable=\"on\"></span>\n </span>\n <span\n *ngIf=\"enableSorting && !showFilter\"\n [ngClass]=\"{ 'ag-hidden': sortDir !== 'asc' }\"\n class=\"ag-header-icon ag-header-label-icon ag-sort-descending-icon\"\n id=\"HeaderSortDesc_{{ columnDef.colId }}\"\n >\n <span class=\"ag-icon ag-icon-desc\" unselectable=\"on\"></span>\n </span>\n </div>\n</div>\n", styles: [".ag-header-sort-click-space{display:flex;height:100%;position:relative;width:100%}.ag-header-col-filter-button.ag-filter-applied{opacity:1!important}.Online,.v7Online,.v7Offline{margin-right:.5rem!important;height:.875rem!important;width:.875rem!important}.Online:hover,.v7Online:hover,.v7Offline:hover{border-color:var(--primaryColor)!important;border-style:solid;border-width:var(--inputBorderWidth);height:.625rem!important;width:.625rem!important}.header-text-container{white-space:nowrap;overflow-x:hidden;text-overflow:ellipsis}.text-input-filter{display:flex;flex-direction:row;align-items:center}.text-input-filter .bubble{margin-top:.5rem;margin-left:.0625rem;margin-right:.5rem;width:.875rem;height:.875rem;flex-shrink:0}.ag-header-col-filter-button{margin-top:.5rem}.ag-header-cell-text{margin-top:.125rem;width:100%}.ag-header-cell-label .ag-sort-descending-icon{margin-top:1.25rem!important}.show-input-filter{width:100%}.filterButton{background-image:none}.filterButton .options{position:fixed}\n"] }]
@@ -266,4 +265,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
266
265
  type: ViewChild,
267
266
  args: ['menuButton']
268
267
  }] } });
269
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLWRlZmF1bHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMveml0aS1jb25zb2xlLWxpYi9zcmMvbGliL2ZlYXR1cmVzL2RhdGEtdGFibGUvY29sdW1uLWhlYWRlcnMvdGFibGUtY29sdW1uLWRlZmF1bHQvdGFibGUtY29sdW1uLWRlZmF1bHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMveml0aS1jb25zb2xlLWxpYi9zcmMvbGliL2ZlYXR1cmVzL2RhdGEtdGFibGUvY29sdW1uLWhlYWRlcnMvdGFibGUtY29sdW1uLWRlZmF1bHQvdGFibGUtY29sdW1uLWRlZmF1bHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRixPQUFPLEVBQWdCLFNBQVMsRUFBc0IsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBR3RGLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUN2QixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUFHbEMsTUFLYSwyQkFBMkI7SUFrQ3RDLFlBQW9CLGFBQXFDO1FBQXJDLGtCQUFhLEdBQWIsYUFBYSxDQUF3QjtRQTlCekQsaUJBQVksR0FBUTtZQUNsQixHQUFHLEVBQUUsRUFBRTtTQUNSLENBQUM7UUFNRixjQUFTLEdBQVE7WUFDZixPQUFPLEVBQUUsU0FBUztZQUNsQixLQUFLLEVBQUUsU0FBUztZQUNoQixTQUFTLEVBQUUsU0FBUztZQUNwQixVQUFVLEVBQUUsU0FBUztTQUN0QixDQUFDO1FBQ0YsZUFBVSxHQUFHLFdBQVcsQ0FBQztRQUN6QixrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQUNuQixrQkFBYSxHQUFRLEVBQUUsQ0FBQztRQUN4QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRWxCLGVBQVUs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RSwwQkFBMEI7NkdBb0NYLFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gICAgQ29weXJpZ2h0IE5ldEZvdW5kcnkgSW5jLlxuXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cbiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiovXG5cbmltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkluaXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0lIZWFkZXJBbmd1bGFyQ29tcH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcbmltcG9ydCB7SUhlYWRlclBhcmFtc30gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtEYXRhVGFibGVGaWx0ZXJTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vZGF0YS10YWJsZS1maWx0ZXIuc2VydmljZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdGFibGUtY29sdW1uLWRlZmF1bHQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtY29sdW1uLWRlZmF1bHQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YWJsZS1jb2x1bW4tZGVmYXVsdC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQgaW1wbGVtZW50cyBJSGVhZGVyQW5ndWxhckNvbXAsIEFmdGVyVmlld0luaXQsIE9uSW5pdCB7XG4gIGl0ZW06IHtcbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgfTtcbiAgaGVhZGVyUGFyYW1zOiBhbnkgPSB7XG4gICAgYXBpOiB7fSxcbiAgfTtcbiAgaGVhZGVyTmFtZTtcbiAgZW5hYmxlU29ydGluZztcbiAgc29ydERpcjtcbiAgc29ydENvbDtcbiAgY29sdW1uT2JqO1xuICBjb2x1bW5EZWY6IGFueSA9IHtcbiAgICBzb3J0RGlyOiB1bmRlZmluZWQsXG4gICAgY29sSWQ6IHVuZGVmaW5lZCxcbiAgICBwaW5Db2x1bW46IHVuZGVmaW5lZCxcbiAgICBzb3J0Q29sdW1uOiB1bmRlZmluZWQsXG4gIH07XG4gIGZpbHRlclR5cGUgPSAnVEVYVElOUFVUJztcbiAgZmlsdGVyT3B0aW9ucyA9IFtdO1xuICBjb2x1bW5GaWx0ZXJzOiBhbnkgPSB7fTtcbiAgZmlsdGVyaW5nID0gZmFsc2U7XG4gIHBpbm5lZDtcbiAgc2hvd0ZpbHRlciA9IGZhbHNlO1xuICBjb21ib0FjdGl2ZSA9IGZhbHNlO1xuICBzaG93U2Vjb25kYXJ5RmlsdGVyID0gZmFsc2U7XG4gIF9zaG93Q29sdW1uTWVudTtcblxuICBvbmxpbmVTdGF0dXNGaWx0ZXI7XG4gIHNob3dCdWJibGUgPSBmYWxzZTtcbiAgc2hvd0xvYWRlciA9IGZhbHNlO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgQFZpZXdDaGlsZCgnbWVudUJ1dHRvbicpIG1lbnVCdXR0b246IEVsZW1lbnRSZWY7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmaWx0ZXJTZXJ2aWNlOiBEYXRhVGFibGVGaWx0ZXJTZXJ2aWNlKSB7XG4gICAgaWYgKCF0aGlzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaXRlbSA9IHtcbiAgICAgIHNlbGVjdGVkOiBmYWxzZSxcbiAgICB9O1xuICB9XG5cbiAgX3N0YXR1c0NsYXNzID0gJ3Y3T2ZmbGluZSc7XG5cbiAgZ2V0IHN0YXR1c0NsYXNzKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLnNob3dCdWJibGUpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgY29uc3Qgc3RhdHVzID0gXy5nZXQoXG4gICAgICB0aGlzLmNvbHVtbk9iaixcbiAgICAgICdncmlkQXBpLmNvbHVtbkZpbHRlcnMuaGFzQXBpU2Vzc2lvbicsXG4gICAgICBfLmdldCh0aGlzLmNvbHVtbk9iaiwgJ2dyaWRBcGkuY29sdW1uRmlsdGVycy5vbmxpbmUnKVxuICAgICk7XG4gICAgc3dpdGNoIChzdGF0dXMpIHtcbiAgICAgIGNhc2UgJ2FsbCc6XG4gICAgICAgIHRoaXMuX3N0YXR1c0NsYXNzID0gJ3Y3T25saW5lT2ZmbGluZSc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZmFsc2UnOlxuICAgICAgICB0aGlzLl9zdGF0dXNDbGFzcyA9ICd2N09mZmxpbmUnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3RydWUnOlxuICAgICAgICB0aGlzLl9zdGF0dXNDbGFzcyA9ICd2N09ubGluZSc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncHJvdmlzaW9uaW5nJzpcbiAgICAgICAgdGhpcy5fc3RhdHVzQ2xhc3MgPSAnJztcbiAgICAgICAgdGhpcy5zaG93TG9hZGVyID0gdHJ1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdlcnJvcic6XG4gICAgICAgIHRoaXMuX3N0YXR1c0NsYXNzID0gJ3Y3RXJyb3InO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMuX3N0YXR1c0NsYXNzID0gJ3Y3T25saW5lT2ZmbGluZSc7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fc3RhdHVzQ2xhc3M7XG4gIH1cblxuICBnZXQgZmlsdGVyQXBwbGllZCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBjb2x1bW5JZCA9IF8uZ2V0KHRoaXMuY29sdW1uRGVmLCAnY29sSWQnKTtcbiAgICBjb25zdCBmaWx0ZXJWYWwgPSBfLmdldCh0aGlzLmhlYWRlclBhcmFtcywgYGFwaS5jb2x1bW5GaWx0ZXJzLiR7Y29sdW1uSWR9YCk7XG4gICAgcmV0dXJuICFfLmlzRW1wdHkoZmlsdGVyVmFsKSB8fCB0aGlzLnNob3dGaWx0ZXIgfHwgdGhpcy5maWx0ZXJpbmc7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcblxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKVxuICB9XG5cbiAgYWdJbml0KGhlYWRlclBhcmFtczogYW55ID0ge30pOiB2b2lkIHtcbiAgICBpZiAoIWhlYWRlclBhcmFtcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmhlYWRlclBhcmFtcyA9IGhlYWRlclBhcmFtcztcbiAgICB0aGlzLmVuYWJsZVNvcnRpbmcgPSBoZWFkZXJQYXJhbXMuZW5hYmxlU29ydGluZztcbiAgICB0aGlzLmhlYWRlck5hbWUgPSBoZWFkZXJQYXJhbXMuZGlzcGxheU5hbWU7XG4gICAgdGhpcy5jb2x1bW5PYmogPSBoZWFkZXJQYXJhbXMuY29sdW1uO1xuICAgIHRoaXMuZmlsdGVyVHlwZSA9IGhlYWRlclBhcmFtcy5maWx0ZXJUeXBlIHx8ICdURVhUSU5QVVQnO1xuICAgIHRoaXMuY29sdW1uRmlsdGVycyA9IGhlYWRlclBhcmFtcy5jb2x1bW5GaWx0ZXJzO1xuICAgIHRoaXMuY29sdW1uRGVmID0gdGhpcy5jb2x1bW5PYmouY29sRGVmO1xuICAgIHRoaXMucGlubmVkID0gdGhpcy5jb2x1bW5PYmoucGlubmVkID09PSAnbGVmdCc7XG4gICAgdGhpcy5zb3J0RGlyID0gdGhpcy5jb2x1bW5EZWYuc29ydERpciB8fCAnbm9uZSc7XG4gICAgdGhpcy5vbmxpbmVTdGF0dXNGaWx0ZXIgPSBfLmhhcyh0aGlzLmNvbHVtbkZpbHRlcnMsICdoYXNBcGlTZXNzaW9uJykgPyAnaGFzQXBpU2Vzc2lvbicgOiAnb25saW5lJztcbiAgICB0aGlzLnNob3dCdWJibGUgPVxuICAgICAgdGhpcy5jb2x1bW5EZWYuY29sSWQgPT09ICduYW1lJyAmJlxuICAgICAgKF8uaGFzKHRoaXMuY29sdW1uRmlsdGVycywgJ2hhc0FwaVNlc3Npb24nKSB8fCBfLmhhcyh0aGlzLmNvbHVtbkZpbHRlcnMsICdvbmxpbmUnKSk7XG4gICAgdGhpcy5fc2hvd0NvbHVtbk1lbnUgPSBoZWFkZXJQYXJhbXMuc2hvd0NvbHVtbk1lbnU7XG4gICAgdGhpcy51cGRhdGVGaWx0ZXJPcHRpb25zKCk7XG4gICAgaGVhZGVyUGFyYW1zLmFwaS5hZGRFdmVudExpc3RlbmVyKCdzb3J0Q2hhbmdlZCcsIChldmVudCkgPT4ge1xuICAgICAgY29uc3QgY29sSWQgPSBfLmdldChldmVudCwgJ2NvbHVtbkRlZi5jb2xJZCcsICcnKTtcbiAgICAgIGlmIChjb2xJZCAhPT0gdGhpcy5jb2x1bW5EZWYuY29sSWQpIHtcbiAgICAgICAgdGhpcy5zb3J0RGlyID0gdW5kZWZpbmVkO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zb3J0RGlyID0gXy5nZXQoZXZlbnQsICdzb3J0RGlyJyk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaGVhZGVyUGFyYW1zLmFwaS5hZGRFdmVudExpc3RlbmVyKCdjb2x1bW5FdmVyeXRoaW5nQ2hhbmdlZCcsIChldmVudCkgPT4ge1xuICAgICAgXy5mb3JFYWNoKGV2ZW50LmFwaT8uY29sdW1uTW9kZWw/LmNvbHVtbkRlZnMsIGNvbERlZiA9PiB7XG4gICAgICAgIGlmICh0aGlzLmNvbHVtbkRlZi5jb2xJZCA9PT0gY29sRGVmLmNvbElkICYmIGNvbERlZi5oZWFkZXJDb21wb25lbnRQYXJhbXM/LmZpbHRlck9wdGlvbnMpIHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUZpbHRlck9wdGlvbnMoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKHRoaXMuc2hvd0J1YmJsZSkge1xuICAgICAgLy8gdGhpcy51cGRhdGVTdGF0dXNDbGFzcygpO1xuICAgIH1cbiAgfVxuXG4gIHBpbigpOiB2b2lkIHtcbiAgICB0aGlzLmNvbHVtbkRlZi5waW5Db2x1bW4odGhpcy5jb2x1bW5PYmosIHRoaXMucGlubmVkID8gZmFsc2UgOiAnbGVmdCcpO1xuICAgIHRoaXMucGlubmVkID0gIXRoaXMucGlubmVkO1xuICB9XG5cbiAgaGlkZSgpOiB2b2lkIHtcbiAgICB0aGlzLmhlYWRlclBhcmFtcy5hcGkueml0aUhpZGVDb2x1bW4odGhpcy5jb2x1bW5PYmosIGZhbHNlKTtcbiAgfVxuXG4gIHNvcnQoZXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY29sdW1uRGVmLnNvcnRhYmxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHRhcmdldElkID0gXy5nZXQoZXZlbnQsICd0YXJnZXQuaWQnKTtcbiAgICBpZiAoXG4gICAgICBfLmluY2x1ZGVzKFxuICAgICAgICBbYEhlYWRlclN0YXR1c18ke3RoaXMuY29sdW1uRGVmLmNvbElkfWAsICdTZWFyY2hGaWx0ZXInLCBgSGVhZGVyRmlsdGVySWNvbl8ke3RoaXMuY29sdW1uRGVmLmNvbElkfWBdLFxuICAgICAgICB0YXJnZXRJZFxuICAgICAgKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoXy5pc0VtcHR5KHRoaXMuc29ydERpcikpIHtcbiAgICAgIHRoaXMuc29ydERpciA9ICdhc2MnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zb3J0RGlyID09PSAnYXNjJykge1xuICAgICAgdGhpcy5zb3J0RGlyID0gJ2Rlc2MnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNvcnREaXIgPSAnYXNjJztcbiAgICB9XG4gICAgXy5zZXQodGhpcy5oZWFkZXJQYXJhbXMsICdhcGkuc29ydERpcicsIHRoaXMuc29ydERpcik7XG4gICAgXy5zZXQodGhpcy5oZWFkZXJQYXJhbXMsICdhcGkuc29ydERpcicsIHRoaXMuY29sdW1uRGVmLmNvbElkKTtcbiAgICBpZiAodGhpcy5jb2x1bW5EZWYuc29ydENvbHVtbikge1xuICAgICAgdGhpcy5jb2x1bW5EZWYuc29ydENvbHVtbih0aGlzLmNvbHVtbkRlZi5jb2xJZCwgdGhpcy5zb3J0RGlyLCB0aGlzLmhlYWRlclBhcmFtcy5hcGkpO1xuICAgICAgdGhpcy5oZWFkZXJQYXJhbXMuYXBpLmRpc3BhdGNoRXZlbnQoe1xuICAgICAgICB0eXBlOiAnc29ydENoYW5nZWQnLFxuICAgICAgICBjb2x1bW5EZWY6IHRoaXMuY29sdW1uRGVmLFxuICAgICAgICBzb3J0RGlyOiB0aGlzLnNvcnREaXIsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGVGaWx0ZXIoZXZlbnQpIHtcbiAgICB0aGlzLnNob3dGaWx0ZXIgPSAhdGhpcy5zaG93RmlsdGVyO1xuICAgIGlmICh0aGlzLmZpbHRlclR5cGUgPT09ICdTRUxFQ1QnIHx8IHRoaXMuZmlsdGVyVHlwZSA9PT0gJ0NPTUJPJyB8fCB0aGlzLmZpbHRlclR5cGUgPT09ICdEQVRFVElNRSd8fCB0aGlzLmZpbHRlclR5cGUgPT09ICdBVFRSSUJVVEUnKSB7XG4gICAgICBpZiAodGhpcy5zaG93RmlsdGVyKSB7XG4gICAgICAgIHRoaXMudXBkYXRlRmlsdGVyT3B0aW9ucygpO1xuICAgICAgICBfLmludm9rZSh0aGlzLmhlYWRlclBhcmFtcywgJ2FwaS5vcGVuSGVhZGVyRmlsdGVyJywgZXZlbnQsIHRoaXMuZmlsdGVyT3B0aW9ucywgdGhpcy5maWx0ZXJUeXBlLCB0aGlzLmNvbHVtbkRlZj8uY29sSWQsIHRoaXMuaGVhZGVyTmFtZSwgdGhpcy5jb2x1bW5EZWY/LmhlYWRlckNvbXBvbmVudFBhcmFtcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBfLmludm9rZSh0aGlzLmhlYWRlclBhcmFtcywgJ2FwaS5jbG9zZUhlYWRlckZpbHRlcicsIGV2ZW50KTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMuZmlsdGVyVHlwZSA9PT0gJ0NVU1RPTScpIHtcbiAgICAgIGlmICh0aGlzLnNob3dGaWx0ZXIpIHtcbiAgICAgICAgdGhpcy51cGRhdGVGaWx0ZXJPcHRpb25zKCk7XG4gICAgICAgIF8uaW52b2tlKHRoaXMuaGVhZGVyUGFyYW1zLCAnY29sdW1uLmNvbERlZi5oZWFkZXJDb21wb25lbnRQYXJhbXMub3BlbkhlYWRlckZpbHRlcicsIGV2ZW50LCB0aGlzLmZpbHRlck9wdGlvbnMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgXy5pbnZva2UodGhpcy5oZWFkZXJQYXJhbXMsICdjb2x1bW4uY29sRGVmLmhlYWRlckNvbXBvbmVudFBhcmFtcy5jbG9zZUhlYWRlckZpbHRlcicsIGV2ZW50KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0b2dnbGVTZWNvbmRhcnlGaWx0ZXIoZXZlbnQpIHtcbiAgICB0aGlzLnNob3dTZWNvbmRhcnlGaWx0ZXIgPSAhdGhpcy5zaG93U2Vjb25kYXJ5RmlsdGVyO1xuICAgIGlmICh0aGlzLnNob3dTZWNvbmRhcnlGaWx0ZXIpIHtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICBsYWJlbDogJ0FueScsXG4gICAgICAgICAgY29sdW1uSWQ6IHRoaXMub25saW5lU3RhdHVzRmlsdGVyLFxuICAgICAgICAgIGZpbHRlck5hbWU6ICdTdGF0dXMnLFxuICAgICAgICAgIHZhbHVlOiB1bmRlZmluZWQsXG4gICAgICAgICAgYnViYmxlQ2xhc3M6ICd2N09ubGluZU9mZmxpbmUnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbGFiZWw6ICdPbmxpbmUnLFxuICAgICAgICAgIGNvbHVtbklkOiB0aGlzLm9ubGluZVN0YXR1c0ZpbHRlcixcbiAgICAgICAgICBmaWx0ZXJOYW1lOiAnU3RhdHVzJyxcbiAgICAgICAgICB2YWx1ZTogJ3RydWUnLFxuICAgICAgICAgIGJ1YmJsZUNsYXNzOiAndjdPbmxpbmUnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbGFiZWw6ICdPZmZsaW5lJyxcbiAgICAgICAgICBjb2x1bW5JZDogdGhpcy5vbmxpbmVTdGF0dXNGaWx0ZXIsXG4gICAgICAgICAgZmlsdGVyTmFtZTogJ1N0YXR1cycsXG4gICAgICAgICAgdmFsdWU6ICdmYWxzZScsXG4gICAgICAgICAgYnViYmxlQ2xhc3M6ICd2N09mZmxpbmUnLFxuICAgICAgICB9LFxuICAgICAgXTtcbiAgICAgIF8uaW52b2tlKHRoaXMuaGVhZGVyUGFyYW1zLCAnYXBpLm9wZW5IZWFkZXJGaWx0ZXInLCBldmVudCwgb3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIF8uaW52b2tlKHRoaXMuaGVhZGVyUGFyYW1zLCAnYXBpLmNsb3NlSGVhZGVyRmlsdGVyJywgZXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIGhpZGVGaWx0ZXIoZXZlbnQpIHtcbiAgICBjb25zdCB0YXJnZXRJZCA9IF8uZ2V0KGV2ZW50LCAndGFyZ2V0LmlkJyk7XG4gICAgaWYgKFxuICAgICAgXy5pbmNsdWRlcyhcbiAgICAgICAgW2BIZWFkZXJGaWx0ZXJCdXR0b25fJHt0aGlzLmNvbHVtbkRlZi5jb2xJZH1gLCBgSGVhZGVyRmlsdGVySWNvbl8ke3RoaXMuY29sdW1uRGVmLmNvbElkfWBdLFxuICAgICAgICB0YXJnZXRJZFxuICAgICAgKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSBpZiAodGFyZ2V0SWQgPT09IHRoaXMuY29sdW1uRGVmPy5jb2xJZCAmJiB0aGlzLmZpbHRlclR5cGUgPT09ICdDT01CTycpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXy5pbnZva2UodGhpcy5oZWFkZXJQYXJhbXMsICdhcGkuY2xvc2VIZWFkZXJGaWx0ZXInLCBldmVudCk7XG5cbiAgICB0aGlzLmNvbWJvQWN0aXZlID0gZmFsc2U7XG4gICAgdGhpcy5zaG93RmlsdGVyID0gZmFsc2U7XG4gICAgdGhpcy5zaG93U2Vjb25kYXJ5RmlsdGVyID0gZmFsc2U7XG4gIH1cblxuICByZWZyZXNoKHBhcmFtczogSUhlYWRlclBhcmFtcyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgb3BlbkdyaWRNZW51KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fc2hvd0NvbHVtbk1lbnUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fc2hvd0NvbHVtbk1lbnUodGhpcy5tZW51QnV0dG9uLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgdXBkYXRlRmlsdGVyT3B0aW9ucygpIHtcbiAgICBsZXQgb3B0aW9ucyA9IFtdO1xuICAgIGlmICh0aGlzLmhlYWRlclBhcmFtcy5nZXRGaWx0ZXJPcHRpb25zKSB7XG4gICAgICBvcHRpb25zID0gdGhpcy5oZWFkZXJQYXJhbXMuZ2V0RmlsdGVyT3B0aW9ucygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBvcHRpb25zID0gdGhpcy5oZWFkZXJQYXJhbXMuZmlsdGVyT3B0aW9ucztcbiAgICB9XG4gICAgdGhpcy5maWx0ZXJPcHRpb25zID0gXy5tYXAob3B0aW9ucywgKG9wdGlvbikgPT4ge1xuICAgICAgb3B0aW9uLmNvbHVtbklkID0gdGhpcy5jb2x1bW5EZWYuY29sSWQ7XG4gICAgICBvcHRpb24uZmlsdGVyTmFtZSA9IHRoaXMuaGVhZGVyTmFtZTtcbiAgICAgIG9wdGlvbi50eXBlID0gdGhpcy5maWx0ZXJUeXBlO1xuICAgICAgcmV0dXJuIG9wdGlvbjtcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdlxuICAoY2xpY2spPVwic29ydCgkZXZlbnQpXCJcbiAgW25nQ2xhc3NdPVwieyAnbmYtY2FuLXNvcnQnOiBlbmFibGVTb3J0aW5nIH1cIlxuICBjbGFzcz1cImFnLWNlbGwtbGFiZWwtY29udGFpbmVyIGFnLWhlYWRlci1jZWxsLXNvcnRlZC1ub25lXCJcbiAgaWQ9XCJUYWJsZUhlYWRlckNvbnRhaW5lcl97eyBjb2x1bW5EZWYuY29sSWQgfX1cIlxuPlxuICAgIDxzcGFuXG4gICAgICAjbWVudUJ1dHRvblxuICAgICAgKGNsaWNrKT1cIm9wZW5HcmlkTWVudSgpXCJcbiAgICAgICpuZ0lmPVwiZmFsc2VcIlxuICAgICAgY2xhc3M9XCJhZy1oZWFkZXItaWNvbiBhZy1oZWFkZXItY2VsbC1tZW51LWJ1dHRvblwiXG4gICAgICBpZD1cIkhlYWRlck1lbnVfe3sgY29sdW1uRGVmLmNvbElkIH19XCJcbiAgICAgIHJlZj1cImVNZW51XCJcbiAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYWctaWNvbiBhZy1pY29uLW1lbnVcIiB1bnNlbGVjdGFibGU9XCJvblwiPjwvc3Bhbj5cbiAgICA8L3NwYW4+XG4gIDxzcGFuXG4gICAgKGNsaWNrKT1cInBpbigpXCJcbiAgICBjbGFzcz1cImFnLWhlYWRlci1pY29uIGFnLWhlYWRlci1jb2wtcGluLWJ1dHRvblwiXG4gICAgaWQ9XCJIZWFkZXJQaW5fe3sgY29sdW1uRGVmLmNvbElkIH19XCJcbiAgICB0aXRsZT1cInt7IHBpbm5lZCA/ICdVbnBpbiBDb2x1bW4nIDogJ1BpbiBDb2x1bW4nIH19XCJcbiAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImFnLWljb24gYWctaWNvbi1waW5cIj48L3NwYW4+XG4gICAgPC9zcGFuPlxuICA8c3BhblxuICAgIChjbGljayk9XCJoaWRlKClcIlxuICAgIGNsYXNzPVwiYWctaGVhZGVyLWljb24gYWctaGVhZGVyLWNvbC1oaWRlLWJ1dHRvblwiXG4gICAgaWQ9XCJIZWFkZXJIaWRlX3t7IGNvbHVtbkRlZi5jb2xJZCB9fVwiXG4gICAgdGl0bGU9XCJIaWRlIENvbHVtblwiXG4gID5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJhZy1pY29uIGFnLWljb24tZXllLXNsYXNoXCI+PC9zcGFuPlxuICAgIDwvc3Bhbj5cbiAgPGRpdiBjbGFzcz1cImFnLWhlYWRlci1jZWxsLWxhYmVsXCIgcmVmPVwiZUxhYmVsXCIgdW5zZWxlY3RhYmxlPVwib25cIj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAqbmdJZj1cIiFoZWFkZXJQYXJhbXMuZmlsdGVyVHlwZVwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwieyAnYWctZmlsdGVyLWFwcGxpZWQnOiBmaWx0ZXJBcHBsaWVkIH1cIlxuICAgICAgICAgIGNsYXNzPVwiYWctaGVhZGVyLWljb24gYWctaGVhZGVyLWNvbC1maWx0ZXItYnV0dG9uXCJcbiAgICAgICAgICBpZD1cIkhlYWRlckZpbHRlclNwYWNlcl97eyBjb2x1bW5EZWYuY29sSWQgfX1cIlxuICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFnLWljb24gYWctaWNvbi1maWx0ZXJcIiBpZD1cIkhlYWRlckZpbHRlclNwYWNlX3t7IGNvbHVtbkRlZi5jb2xJZCB9fVwiIHN0eWxlPVwib3BhY2l0eTogMFwiPjwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuICAgIDxzcGFuXG4gICAgICAoY2xpY2spPVwidG9nZ2xlRmlsdGVyKCRldmVudClcIlxuICAgICAgKm5nSWY9XCJoZWFkZXJQYXJhbXMuZmlsdGVyVHlwZVwiXG4gICAgICBbbmdDbGFzc109XCJ7ICdhZy1maWx0ZXItYXBwbGllZCc6IGZpbHRlckFwcGxpZWQgfVwiXG4gICAgICBjbGFzcz1cImFnLWhlYWRlci1pY29uIGFnLWhlYWRlci1jb2wtZmlsdGVyLWJ1dHRvblwiXG4gICAgICBpZD1cIkhlYWRlckZpbHRlckJ1dHRvbl97eyBjb2x1bW5EZWYuY29sSWQgfX1cIlxuICAgID5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWctaWNvbiBhZy1pY29uLWZpbHRlclwiIGlkPVwiSGVhZGVyRmlsdGVySWNvbl97eyBjb2x1bW5EZWYuY29sSWQgfX1cIj48L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cbiAgICA8ZGl2XG4gICAgICAoY2xpY2tPdXRzaWRlKT1cImhpZGVGaWx0ZXIoJGV2ZW50KVwiXG4gICAgICBbbmdDbGFzc109XCJ7ICdzaG93LWlucHV0LWZpbHRlcic6IHNob3dGaWx0ZXIgfVwiXG4gICAgICBjbGFzcz1cImhlYWRlci10ZXh0LWNvbnRhaW5lciB0ZXh0LWlucHV0LWZpbHRlclwiXG4gICAgPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVNlY29uZGFyeUZpbHRlcigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJzaG93QnViYmxlXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwic3RhdHVzQ2xhc3NcIlxuICAgICAgICAgICAgICBjbGFzcz1cImJ1YmJsZVwiXG4gICAgICAgICAgICAgIGlkPVwiSGVhZGVyU3RhdHVzX3t7IGNvbHVtbkRlZi5jb2xJZCB9fVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHN2ZyAqbmdJZj1cInNob3dMb2FkZXJcIiBjbGFzcz1cImNpcmN1bGFyXCIgdmlld0JveD1cIjI1IDI1IDUwIDUwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxjaXJjbGVcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBhdGhcIlxuICAgICAgICAgICAgICAgICAgICAgIGN4PVwiNTBcIlxuICAgICAgICAgICAgICAgICAgICAgIGN5PVwiNTBcIlxuICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICByPVwiMjBcIlxuICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1taXRlcmxpbWl0PVwiMTBcIlxuICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjNcIlxuICAgICAgICAgICAgICAgICAgICA+PC9jaXJjbGU+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICA8YXBwLXRhYmxlLWNvbHVtbi1maWx0ZXJcbiAgICAgICAgKm5nSWY9XCIoKHNob3dGaWx0ZXIgfHwgY29tYm9BY3RpdmUpICYmICEoZmlsdGVyVHlwZSA9PT0gJ0NPTUJPJyAmJiAhY29tYm9BY3RpdmUpKSAmJiBmaWx0ZXJUeXBlICE9PSAnU0VMRUNUJyAmJiBmaWx0ZXJUeXBlICE9PSAnQ1VTVE9NJ1wiXG4gICAgICAgIFtjb2x1bW5EZWZdPVwiY29sdW1uRGVmXCJcbiAgICAgICAgW2ZpbHRlck5hbWVdPVwiaGVhZGVyTmFtZVwiXG4gICAgICAgIFtmaWx0ZXJTdHJpbmddPVwiJydcIlxuICAgICAgICBbb3BlblN0YXR1c01lbnVdPVwidG9nZ2xlU2Vjb25kYXJ5RmlsdGVyLmJpbmQodGhpcylcIlxuICAgICAgICBbdHlwZV09XCJmaWx0ZXJUeXBlXCJcbiAgICAgID48L2FwcC10YWJsZS1jb2x1bW4tZmlsdGVyPlxuICAgICAgPHNwYW5cbiAgICAgICAgKm5nSWY9XCIoKCFzaG93RmlsdGVyICYmICFjb21ib0FjdGl2ZSkgfHwgKGZpbHRlclR5cGUgPT09ICdDT01CTycgJiYgIWNvbWJvQWN0aXZlKSkgfHwgZmlsdGVyVHlwZSA9PT0gJ1NFTEVDVCcgfHwgZmlsdGVyVHlwZSA9PT0gJ0NVU1RPTSdcIlxuICAgICAgICBbdGl0bGVdPVwiaGVhZGVyTmFtZVwiXG4gICAgICAgIGNsYXNzPVwiYWctaGVhZGVyLWNlbGwtdGV4dFwiXG4gICAgICAgIGlkPVwiSGVhZGVyTmFtZV97eyBjb2x1bW5EZWYuY29sSWQgfX1cIlxuICAgICAgICB1bnNlbGVjdGFibGU9XCJvblwiXG4gICAgICA+e3sgaGVhZGVyTmFtZSB9fTwvc3BhblxuICAgICAgPlxuICAgIDwvZGl2PlxuICAgIDxzcGFuXG4gICAgICAqbmdJZj1cImVuYWJsZVNvcnRpbmcgJiYgIXNob3dGaWx0ZXJcIlxuICAgICAgW25nQ2xhc3NdPVwieyAnYWctaGlkZGVuJzogc29ydERpciAhPT0gJ2Rlc2MnIH1cIlxuICAgICAgY2xhc3M9XCJhZy1oZWFkZXItaWNvbiBhZy1oZWFkZXItbGFiZWwtaWNvbiBhZy1zb3J0LWFzY2VuZGluZy1pY29uXCJcbiAgICAgIGlkPVwiSGVhZGVyU29ydEFzY197eyBjb2x1bW5EZWYuY29sSWQgfX1cIlxuICAgID5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWctaWNvbiBhZy1pY29uLWFzY1wiIHVuc2VsZWN0YWJsZT1cIm9uXCI+PC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG4gICAgPHNwYW5cbiAgICAgICpuZ0lmPVwiZW5hYmxlU29ydGluZyAmJiAhc2hvd0ZpbHRlclwiXG4gICAgICBbbmdDbGFzc109XCJ7ICdhZy1oaWRkZW4nOiBzb3J0RGlyICE9PSAnYXNjJyB9XCJcbiAgICAgIGNsYXNzPVwiYWctaGVhZGVyLWljb24gYWctaGVhZGVyLWxhYmVsLWljb24gYWctc29ydC1kZXNjZW5kaW5nLWljb25cIlxuICAgICAgaWQ9XCJIZWFkZXJTb3J0RGVzY197eyBjb2x1bW5EZWYuY29sSWQgfX1cIlxuICAgID5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWctaWNvbiBhZy1pY29uLWRlc2NcIiB1bnNlbGVjdGFibGU9XCJvblwiPjwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
268
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLWRlZmF1bHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMveml0aS1jb25zb2xlLWxpYi9zcmMvbGliL2ZlYXR1cmVzL2RhdGEtdGFibGUvY29sdW1uLWhlYWRlcnMvdGFibGUtY29sdW1uLWRlZmF1bHQvdGFibGUtY29sdW1uLWRlZmF1bHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMveml0aS1jb25zb2xlLWxpYi9zcmMvbGliL2ZlYXR1cmVzL2RhdGEtdGFibGUvY29sdW1uLWhlYWRlcnMvdGFibGUtY29sdW1uLWRlZmF1bHQvdGFibGUtY29sdW1uLWRlZmF1bHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRixPQUFPLEVBQWdCLFNBQVMsRUFBc0IsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBR3RGLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUN2QixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUFRbEMsTUFBTSxPQUFPLDJCQUEyQjtJQWtDdEMsWUFBb0IsYUFBcUM7UUFBckMsa0JBQWEsR0FBYixhQUFhLENBQXdCO1FBOUJ6RCxpQkFBWSxHQUFRO1lBQ2xCLEdBQUcsRUFBRSxFQUFFO1NBQ1IsQ0FBQztRQU1GLGNBQVMsR0FBUTtZQUNmLE9BQU8sRUFBRSxTQUFTO1lBQ2xCLEtBQUssRUFBRSxTQUFTO1lBQ2hCLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLFVBQVUsRUFBRSxTQUFTO1NBQ3RCLENBQUM7UUFDRixlQUFVLEdBQUcsV0FBVyxDQUFDO1FBQ3pCLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLGtCQUFhLEdBQVEsRUFBRSxDQUFDO1FBQ3hCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFbEIs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OzZHQW9DWCxVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICAgIENvcHlyaWdodCBOZXRGb3VuZHJ5IEluYy5cblxuICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG4gICAgaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG4gICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4qL1xuXG5pbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25Jbml0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtJSGVhZGVyQW5ndWxhckNvbXB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQge0lIZWFkZXJQYXJhbXN9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7RGF0YVRhYmxlRmlsdGVyU2VydmljZX0gZnJvbSBcIi4uLy4uL2RhdGEtdGFibGUtZmlsdGVyLnNlcnZpY2VcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXRhYmxlLWNvbHVtbi1kZWZhdWx0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLWNvbHVtbi1kZWZhdWx0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUtY29sdW1uLWRlZmF1bHQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDb2x1bW5EZWZhdWx0Q29tcG9uZW50IGltcGxlbWVudHMgSUhlYWRlckFuZ3VsYXJDb21wLCBBZnRlclZpZXdJbml0LCBPbkluaXQge1xuICBpdGVtOiB7XG4gICAgc2VsZWN0ZWQ6IGJvb2xlYW47XG4gIH07XG4gIGhlYWRlclBhcmFtczogYW55ID0ge1xuICAgIGFwaToge30sXG4gIH07XG4gIGhlYWRlck5hbWU7XG4gIGVuYWJsZVNvcnRpbmc7XG4gIHNvcnREaXI7XG4gIHNvcnRDb2w7XG4gIGNvbHVtbk9iajtcbiAgY29sdW1uRGVmOiBhbnkgPSB7XG4gICAgc29ydERpcjogdW5kZWZpbmVkLFxuICAgIGNvbElkOiB1bmRlZmluZWQsXG4gICAgcGluQ29sdW1uOiB1bmRlZmluZWQsXG4gICAgc29ydENvbHVtbjogdW5kZWZpbmVkLFxuICB9O1xuICBmaWx0ZXJUeXBlID0gJ1RFWFRJTlBVVCc7XG4gIGZpbHRlck9wdGlvbnMgPSBbXTtcbiAgY29sdW1uRmlsdGVyczogYW55ID0ge307XG4gIGZpbHRlcmluZyA9IGZhbHNlO1xuICBwaW5uZWQ7XG4gIHNob3dGaWx0ZXIgPSBmYWxzZTtcbiAgY29tYm9BY3RpdmUgPSBmYWxzZTtcbiAgc2hvd1NlY29uZGFyeUZpbHRlciA9IGZhbHNlO1xuICBfc2hvd0NvbHVtbk1lbnU7XG5cbiAgb25saW5lU3RhdHVzRmlsdGVyO1xuICBzaG93QnViYmxlID0gZmFsc2U7XG4gIHNob3dMb2FkZXIgPSBmYWxzZTtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIEBWaWV3Q2hpbGQoJ21lbnVCdXR0b24nKSBtZW51QnV0dG9uOiBFbGVtZW50UmVmO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmlsdGVyU2VydmljZTogRGF0YVRhYmxlRmlsdGVyU2VydmljZSkge1xuICAgIGlmICghdGhpcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLml0ZW0gPSB7XG4gICAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgfTtcbiAgfVxuXG4gIF9zdGF0dXNDbGFzcyA9ICd2N09mZmxpbmUnO1xuXG4gIGdldCBzdGF0dXNDbGFzcygpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5zaG93QnViYmxlKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGNvbnN0IHN0YXR1cyA9IF8uZ2V0KFxuICAgICAgdGhpcy5jb2x1bW5PYmosXG4gICAgICAnZ3JpZEFwaS5jb2x1bW5GaWx0ZXJzLmhhc0FwaVNlc3Npb24nLFxuICAgICAgXy5nZXQodGhpcy5jb2x1bW5PYmosICdncmlkQXBpLmNvbHVtbkZpbHRlcnMub25saW5lJylcbiAgICApO1xuICAgIHN3aXRjaCAoc3RhdHVzKSB7XG4gICAgICBjYXNlICdhbGwnOlxuICAgICAgICB0aGlzLl9zdGF0dXNDbGFzcyA9ICd2N09ubGluZU9mZmxpbmUnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2ZhbHNlJzpcbiAgICAgICAgdGhpcy5fc3RhdHVzQ2xhc3MgPSAndjdPZmZsaW5lJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd0cnVlJzpcbiAgICAgICAgdGhpcy5fc3RhdHVzQ2xhc3MgPSAndjdPbmxpbmUnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3Byb3Zpc2lvbmluZyc6XG4gICAgICAgIHRoaXMuX3N0YXR1c0NsYXNzID0gJyc7XG4gICAgICAgIHRoaXMuc2hvd0xvYWRlciA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZXJyb3InOlxuICAgICAgICB0aGlzLl9zdGF0dXNDbGFzcyA9ICd2N0Vycm9yJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLl9zdGF0dXNDbGFzcyA9ICd2N09ubGluZU9mZmxpbmUnO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3N0YXR1c0NsYXNzO1xuICB9XG5cbiAgZ2V0IGZpbHRlckFwcGxpZWQoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgY29sdW1uSWQgPSBfLmdldCh0aGlzLmNvbHVtbkRlZiwgJ2NvbElkJyk7XG4gICAgY29uc3QgZmlsdGVyVmFsID0gXy5nZXQodGhpcy5oZWFkZXJQYXJhbXMsIGBhcGkuY29sdW1uRmlsdGVycy4ke2NvbHVtbklkfWApO1xuICAgIHJldHVybiAhXy5pc0VtcHR5KGZpbHRlclZhbCkgfHwgdGhpcy5zaG93RmlsdGVyIHx8IHRoaXMuZmlsdGVyaW5nO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG5cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKClcbiAgfVxuXG4gIGFnSW5pdChoZWFkZXJQYXJhbXM6IGFueSA9IHt9KTogdm9pZCB7XG4gICAgaWYgKCFoZWFkZXJQYXJhbXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5oZWFkZXJQYXJhbXMgPSBoZWFkZXJQYXJhbXM7XG4gICAgdGhpcy5lbmFibGVTb3J0aW5nID0gaGVhZGVyUGFyYW1zLmVuYWJsZVNvcnRpbmc7XG4gICAgdGhpcy5oZWFkZXJOYW1lID0gaGVhZGVyUGFyYW1zLmRpc3BsYXlOYW1lO1xuICAgIHRoaXMuY29sdW1uT2JqID0gaGVhZGVyUGFyYW1zLmNvbHVtbjtcbiAgICB0aGlzLmZpbHRlclR5cGUgPSBoZWFkZXJQYXJhbXMuZmlsdGVyVHlwZSB8fCAnVEVYVElOUFVUJztcbiAgICB0aGlzLmNvbHVtbkZpbHRlcnMgPSBoZWFkZXJQYXJhbXMuY29sdW1uRmlsdGVycztcbiAgICB0aGlzLmNvbHVtbkRlZiA9IHRoaXMuY29sdW1uT2JqLmNvbERlZjtcbiAgICB0aGlzLnBpbm5lZCA9IHRoaXMuY29sdW1uT2JqLnBpbm5lZCA9PT0gJ2xlZnQnO1xuICAgIHRoaXMuc29ydERpciA9IHRoaXMuY29sdW1uRGVmLnNvcnREaXIgfHwgJ25vbmUnO1xuICAgIHRoaXMub25saW5lU3RhdHVzRmlsdGVyID0gXy5oYXModGhpcy5jb2x1bW5GaWx0ZXJzLCAnaGFzQXBpU2Vzc2lvbicpID8gJ2hhc0FwaVNlc3Npb24nIDogJ29ubGluZSc7XG4gICAgdGhpcy5zaG93QnViYmxlID1cbiAgICAgIHRoaXMuY29sdW1uRGVmLmNvbElkID09PSAnbmFtZScgJiZcbiAgICAgIChfLmhhcyh0aGlzLmNvbHVtbkZpbHRlcnMsICdoYXNBcGlTZXNzaW9uJykgfHwgXy5oYXModGhpcy5jb2x1bW5GaWx0ZXJzLCAnb25saW5lJykpO1xuICAgIHRoaXMuX3Nob3dDb2x1bW5NZW51ID0gaGVhZGVyUGFyYW1zLnNob3dDb2x1bW5NZW51O1xuICAgIHRoaXMudXBkYXRlRmlsdGVyT3B0aW9ucygpO1xuICAgIGhlYWRlclBhcmFtcy5hcGkuYWRkRXZlbnRMaXN0ZW5lcignc29ydENoYW5nZWQnLCAoZXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IGNvbElkID0gXy5nZXQoZXZlbnQsICdjb2x1bW5EZWYuY29sSWQnLCAnJyk7XG4gICAgICBpZiAoY29sSWQgIT09IHRoaXMuY29sdW1uRGVmLmNvbElkKSB7XG4gICAgICAgIHRoaXMuc29ydERpciA9IHVuZGVmaW5lZDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc29ydERpciA9IF8uZ2V0KGV2ZW50LCAnc29ydERpcicpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGhlYWRlclBhcmFtcy5hcGkuYWRkRXZlbnRMaXN0ZW5lcignY29sdW1uRXZlcnl0aGluZ0NoYW5nZWQnLCAoZXZlbnQpID0+IHtcbiAgICAgIF8uZm9yRWFjaChldmVudC5hcGk/LmNvbHVtbk1vZGVsPy5jb2x1bW5EZWZzLCBjb2xEZWYgPT4ge1xuICAgICAgICBpZiAodGhpcy5jb2x1bW5EZWYuY29sSWQgPT09IGNvbERlZi5jb2xJZCAmJiBjb2xEZWYuaGVhZGVyQ29tcG9uZW50UGFyYW1zPy5maWx0ZXJPcHRpb25zKSB7XG4gICAgICAgICAgdGhpcy51cGRhdGVGaWx0ZXJPcHRpb25zKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLnNob3dCdWJibGUpIHtcbiAgICAgIC8vIHRoaXMudXBkYXRlU3RhdHVzQ2xhc3MoKTtcbiAgICB9XG4gIH1cblxuICBwaW4oKTogdm9pZCB7XG4gICAgdGhpcy5jb2x1bW5EZWYucGluQ29sdW1uKHRoaXMuY29sdW1uT2JqLCB0aGlzLnBpbm5lZCA/IGZhbHNlIDogJ2xlZnQnKTtcbiAgICB0aGlzLnBpbm5lZCA9ICF0aGlzLnBpbm5lZDtcbiAgfVxuXG4gIGhpZGUoKTogdm9pZCB7XG4gICAgdGhpcy5oZWFkZXJQYXJhbXMuYXBpLnppdGlIaWRlQ29sdW1uKHRoaXMuY29sdW1uT2JqLCBmYWxzZSk7XG4gIH1cblxuICBzb3J0KGV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNvbHVtbkRlZi5zb3J0YWJsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB0YXJnZXRJZCA9IF8uZ2V0KGV2ZW50LCAndGFyZ2V0LmlkJyk7XG4gICAgaWYgKFxuICAgICAgXy5pbmNsdWRlcyhcbiAgICAgICAgW2BIZWFkZXJTdGF0dXNfJHt0aGlzLmNvbHVtbkRlZi5jb2xJZH1gLCAnU2VhcmNoRmlsdGVyJywgYEhlYWRlckZpbHRlckljb25fJHt0aGlzLmNvbHVtbkRlZi5jb2xJZH1gXSxcbiAgICAgICAgdGFyZ2V0SWRcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKF8uaXNFbXB0eSh0aGlzLnNvcnREaXIpKSB7XG4gICAgICB0aGlzLnNvcnREaXIgPSAnYXNjJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuc29ydERpciA9PT0gJ2FzYycpIHtcbiAgICAgIHRoaXMuc29ydERpciA9ICdkZXNjJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zb3J0RGlyID0gJ2FzYyc7XG4gICAgfVxuICAgIF8uc2V0KHRoaXMuaGVhZGVyUGFyYW1zLCAnYXBpLnNvcnREaXInLCB0aGlzLnNvcnREaXIpO1xuICAgIF8uc2V0KHRoaXMuaGVhZGVyUGFyYW1zLCAnYXBpLnNvcnREaXInLCB0aGlzLmNvbHVtbkRlZi5jb2xJZCk7XG4gICAgaWYgKHRoaXMuY29sdW1uRGVmLnNvcnRDb2x1bW4pIHtcbiAgICAgIHRoaXMuY29sdW1uRGVmLnNvcnRDb2x1bW4odGhpcy5jb2x1bW5EZWYuY29sSWQsIHRoaXMuc29ydERpciwgdGhpcy5oZWFkZXJQYXJhbXMuYXBpKTtcbiAgICAgIHRoaXMuaGVhZGVyUGFyYW1zLmFwaS5kaXNwYXRjaEV2ZW50KHtcbiAgICAgICAgdHlwZTogJ3NvcnRDaGFuZ2VkJyxcbiAgICAgICAgY29sdW1uRGVmOiB0aGlzLmNvbHVtbkRlZixcbiAgICAgICAgc29ydERpcjogdGhpcy5zb3J0RGlyLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlRmlsdGVyKGV2ZW50KSB7XG4gICAgdGhpcy5zaG93RmlsdGVyID0gIXRoaXMuc2hvd0ZpbHRlcjtcbiAgICBpZiAodGhpcy5maWx0ZXJUeXBlID09PSAnU0VMRUNUJyB8fCB0aGlzLmZpbHRlclR5cGUgPT09ICdDT01CTycgfHwgdGhpcy5maWx0ZXJUeXBlID09PSAnREFURVRJTUUnfHwgdGhpcy5maWx0ZXJUeXBlID09PSAnQVRUUklCVVRFJykge1xuICAgICAgaWYgKHRoaXMuc2hvd0ZpbHRlcikge1xuICAgICAgICB0aGlzLnVwZGF0ZUZpbHRlck9wdGlvbnMoKTtcbiAgICAgICAgXy5pbnZva2UodGhpcy5oZWFkZXJQYXJhbXMsICdhcGkub3BlbkhlYWRlckZpbHRlcicsIGV2ZW50LCB0aGlzLmZpbHRlck9wdGlvbnMsIHRoaXMuZmlsdGVyVHlwZSwgdGhpcy5jb2x1bW5EZWY/LmNvbElkLCB0aGlzLmhlYWRlck5hbWUsIHRoaXMuY29sdW1uRGVmPy5oZWFkZXJDb21wb25lbnRQYXJhbXMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgXy5pbnZva2UodGhpcy5oZWFkZXJQYXJhbXMsICdhcGkuY2xvc2VIZWFkZXJGaWx0ZXInLCBldmVudCk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLmZpbHRlclR5cGUgPT09ICdDVVNUT00nKSB7XG4gICAgICBpZiAodGhpcy5zaG93RmlsdGVyKSB7XG4gICAgICAgIHRoaXMudXBkYXRlRmlsdGVyT3B0aW9ucygpO1xuICAgICAgICBfLmludm9rZSh0aGlzLmhlYWRlclBhcmFtcywgJ2NvbHVtbi5jb2xEZWYuaGVhZGVyQ29tcG9uZW50UGFyYW1zLm9wZW5IZWFkZXJGaWx0ZXInLCBldmVudCwgdGhpcy5maWx0ZXJPcHRpb25zKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIF8uaW52b2tlKHRoaXMuaGVhZGVyUGFyYW1zLCAnY29sdW1uLmNvbERlZi5oZWFkZXJDb21wb25lbnRQYXJhbXMuY2xvc2VIZWFkZXJGaWx0ZXInLCBldmVudCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlU2Vjb25kYXJ5RmlsdGVyKGV2ZW50KSB7XG4gICAgdGhpcy5zaG93U2Vjb25kYXJ5RmlsdGVyID0gIXRoaXMuc2hvd1NlY29uZGFyeUZpbHRlcjtcbiAgICBpZiAodGhpcy5zaG93U2Vjb25kYXJ5RmlsdGVyKSB7XG4gICAgICBjb25zdCBvcHRpb25zID0gW1xuICAgICAgICB7XG4gICAgICAgICAgbGFiZWw6ICdBbnknLFxuICAgICAgICAgIGNvbHVtbklkOiB0aGlzLm9ubGluZVN0YXR1c0ZpbHRlcixcbiAgICAgICAgICBmaWx0ZXJOYW1lOiAnU3RhdHVzJyxcbiAgICAgICAgICB2YWx1ZTogdW5kZWZpbmVkLFxuICAgICAgICAgIGJ1YmJsZUNsYXNzOiAndjdPbmxpbmVPZmZsaW5lJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGxhYmVsOiAnT25saW5lJyxcbiAgICAgICAgICBjb2x1bW5JZDogdGhpcy5vbmxpbmVTdGF0dXNGaWx0ZXIsXG4gICAgICAgICAgZmlsdGVyTmFtZTogJ1N0YXR1cycsXG4gICAgICAgICAgdmFsdWU6ICd0cnVlJyxcbiAgICAgICAgICBidWJibGVDbGFzczogJ3Y3T25saW5lJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGxhYmVsOiAnT2ZmbGluZScsXG4gICAgICAgICAgY29sdW1uSWQ6IHRoaXMub25saW5lU3RhdHVzRmlsdGVyLFxuICAgICAgICAgIGZpbHRlck5hbWU6ICdTdGF0dXMnLFxuICAgICAgICAgIHZhbHVlOiAnZmFsc2UnLFxuICAgICAgICAgIGJ1YmJsZUNsYXNzOiAndjdPZmZsaW5lJyxcbiAgICAgICAgfSxcbiAgICAgIF07XG4gICAgICBfLmludm9rZSh0aGlzLmhlYWRlclBhcmFtcywgJ2FwaS5vcGVuSGVhZGVyRmlsdGVyJywgZXZlbnQsIG9wdGlvbnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBfLmludm9rZSh0aGlzLmhlYWRlclBhcmFtcywgJ2FwaS5jbG9zZUhlYWRlckZpbHRlcicsIGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBoaWRlRmlsdGVyKGV2ZW50KSB7XG4gICAgY29uc3QgdGFyZ2V0SWQgPSBfLmdldChldmVudCwgJ3RhcmdldC5pZCcpO1xuICAgIGlmIChcbiAgICAgIF8uaW5jbHVkZXMoXG4gICAgICAgIFtgSGVhZGVyRmlsdGVyQnV0dG9uXyR7dGhpcy5jb2x1bW5EZWYuY29sSWR9YCwgYEhlYWRlckZpbHRlckljb25fJHt0aGlzLmNvbHVtbkRlZi5jb2xJZH1gXSxcbiAgICAgICAgdGFyZ2V0SWRcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKHRhcmdldElkID09PSB0aGlzLmNvbHVtbkRlZj8uY29sSWQgJiYgdGhpcy5maWx0ZXJUeXBlID09PSAnQ09NQk8nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIF8uaW52b2tlKHRoaXMuaGVhZGVyUGFyYW1zLCAnYXBpLmNsb3NlSGVhZGVyRmlsdGVyJywgZXZlbnQpO1xuXG4gICAgdGhpcy5jb21ib0FjdGl2ZSA9IGZhbHNlO1xuICAgIHRoaXMuc2hvd0ZpbHRlciA9IGZhbHNlO1xuICAgIHRoaXMuc2hvd1NlY29uZGFyeUZpbHRlciA9IGZhbHNlO1xuICB9XG5cbiAgcmVmcmVzaChwYXJhbXM6IElIZWFkZXJQYXJhbXMpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIG9wZW5HcmlkTWVudSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3Nob3dDb2x1bW5NZW51KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX3Nob3dDb2x1bW5NZW51KHRoaXMubWVudUJ1dHRvbi5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIHVwZGF0ZUZpbHRlck9wdGlvbnMoKSB7XG4gICAgbGV0IG9wdGlvbnMgPSBbXTtcbiAgICBpZiAodGhpcy5oZWFkZXJQYXJhbXMuZ2V0RmlsdGVyT3B0aW9ucykge1xuICAgICAgb3B0aW9ucyA9IHRoaXMuaGVhZGVyUGFyYW1zLmdldEZpbHRlck9wdGlvbnMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgb3B0aW9ucyA9IHRoaXMuaGVhZGVyUGFyYW1zLmZpbHRlck9wdGlvbnM7XG4gICAgfVxuICAgIHRoaXMuZmlsdGVyT3B0aW9ucyA9IF8ubWFwKG9wdGlvbnMsIChvcHRpb24pID0+IHtcbiAgICAgIG9wdGlvbi5jb2x1bW5JZCA9IHRoaXMuY29sdW1uRGVmLmNvbElkO1xuICAgICAgb3B0aW9uLmZpbHRlck5hbWUgPSB0aGlzLmhlYWRlck5hbWU7XG4gICAgICBvcHRpb24udHlwZSA9IHRoaXMuZmlsdGVyVHlwZTtcbiAgICAgIHJldHVybiBvcHRpb247XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgKGNsaWNrKT1cInNvcnQoJGV2ZW50KVwiXG4gIFtuZ0NsYXNzXT1cInsgJ25mLWNhbi1zb3J0JzogZW5hYmxlU29ydGluZyB9XCJcbiAgY2xhc3M9XCJhZy1jZWxsLWxhYmVsLWNvbnRhaW5lciBhZy1oZWFkZXItY2VsbC1zb3J0ZWQtbm9uZVwiXG4gIGlkPVwiVGFibGVIZWFkZXJDb250YWluZXJfe3sgY29sdW1uRGVmLmNvbElkIH19XCJcbj5cbiAgICA8c3BhblxuICAgICAgI21lbnVCdXR0b25cbiAgICAgIChjbGljayk9XCJvcGVuR3JpZE1lbnUoKVwiXG4gICAgICAqbmdJZj1cImZhbHNlXCJcbiAgICAgIGNsYXNzPVwiYWctaGVhZGVyLWljb24gYWctaGVhZGVyLWNlbGwtbWVudS1idXR0b25cIlxuICAgICAgaWQ9XCJIZWFkZXJNZW51X3t7IGNvbHVtbkRlZi5jb2xJZCB9fVwiXG4gICAgICByZWY9XCJlTWVudVwiXG4gICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImFnLWljb24gYWctaWNvbi1tZW51XCIgdW5zZWxlY3RhYmxlPVwib25cIj48L3NwYW4+XG4gICAgPC9zcGFuPlxuICA8c3BhblxuICAgIChjbGljayk9XCJwaW4oKVwiXG4gICAgY2xhc3M9XCJhZy1oZWFkZXItaWNvbiBhZy1oZWFkZXItY29sLXBpbi1idXR0b25cIlxuICAgIGlkPVwiSGVhZGVyUGluX3t7IGNvbHVtbkRlZi5jb2xJZCB9fVwiXG4gICAgdGl0bGU9XCJ7eyBwaW5uZWQgPyAnVW5waW4gQ29sdW1uJyA6ICdQaW4gQ29sdW1uJyB9fVwiXG4gID5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJhZy1pY29uIGFnLWljb24tcGluXCI+PC9zcGFuPlxuICAgIDwvc3Bhbj5cbiAgPHNwYW5cbiAgICAoY2xpY2spPVwiaGlkZSgpXCJcbiAgICBjbGFzcz1cImFnLWhlYWRlci1pY29uIGFnLWhlYWRlci1jb2wtaGlkZS1idXR0b25cIlxuICAgIGlkPVwiSGVhZGVySGlkZV97eyBjb2x1bW5EZWYuY29sSWQgfX1cIlxuICAgIHRpdGxlPVwiSGlkZSBDb2x1bW5cIlxuICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYWctaWNvbiBhZy1pY29uLWV5ZS1zbGFzaFwiPjwvc3Bhbj5cbiAgICA8L3NwYW4+XG4gIDxkaXYgY2xhc3M9XCJhZy1oZWFkZXItY2VsbC1sYWJlbFwiIHJlZj1cImVMYWJlbFwiIHVuc2VsZWN0YWJsZT1cIm9uXCI+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgKm5nSWY9XCIhaGVhZGVyUGFyYW1zLmZpbHRlclR5cGVcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2FnLWZpbHRlci1hcHBsaWVkJzogZmlsdGVyQXBwbGllZCB9XCJcbiAgICAgICAgICBjbGFzcz1cImFnLWhlYWRlci1pY29uIGFnLWhlYWRlci1jb2wtZmlsdGVyLWJ1dHRvblwiXG4gICAgICAgICAgaWQ9XCJIZWFkZXJGaWx0ZXJTcGFjZXJfe3sgY29sdW1uRGVmLmNvbElkIH19XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhZy1pY29uIGFnLWljb24tZmlsdGVyXCIgaWQ9XCJIZWFkZXJGaWx0ZXJTcGFjZV97eyBjb2x1bW5EZWYuY29sSWQgfX1cIiBzdHlsZT1cIm9wYWNpdHk6IDBcIj48L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cbiAgICA8c3BhblxuICAgICAgKGNsaWNrKT1cInRvZ2dsZUZpbHRlcigkZXZlbnQpXCJcbiAgICAgICpuZ0lmPVwiaGVhZGVyUGFyYW1zLmZpbHRlclR5cGVcIlxuICAgICAgW25nQ2xhc3NdPVwieyAnYWctZmlsdGVyLWFwcGxpZWQnOiBmaWx0ZXJBcHBsaWVkIH1cIlxuICAgICAgY2xhc3M9XCJhZy1oZWFkZXItaWNvbiBhZy1oZWFkZXItY29sLWZpbHRlci1idXR0b25cIlxuICAgICAgaWQ9XCJIZWFkZXJGaWx0ZXJCdXR0b25fe3sgY29sdW1uRGVmLmNvbElkIH19XCJcbiAgICA+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFnLWljb24gYWctaWNvbi1maWx0ZXJcIiBpZD1cIkhlYWRlckZpbHRlckljb25fe3sgY29sdW1uRGVmLmNvbElkIH19XCI+PC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG4gICAgPGRpdlxuICAgICAgKGNsaWNrT3V0c2lkZSk9XCJoaWRlRmlsdGVyKCRldmVudClcIlxuICAgICAgW25nQ2xhc3NdPVwieyAnc2hvdy1pbnB1dC1maWx0ZXInOiBzaG93RmlsdGVyIH1cIlxuICAgICAgY2xhc3M9XCJoZWFkZXItdGV4dC1jb250YWluZXIgdGV4dC1pbnB1dC1maWx0ZXJcIlxuICAgID5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVTZWNvbmRhcnlGaWx0ZXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICpuZ0lmPVwic2hvd0J1YmJsZVwiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInN0YXR1c0NsYXNzXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJidWJibGVcIlxuICAgICAgICAgICAgICBpZD1cIkhlYWRlclN0YXR1c197eyBjb2x1bW5EZWYuY29sSWQgfX1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzdmcgKm5nSWY9XCJzaG93TG9hZGVyXCIgY2xhc3M9XCJjaXJjdWxhclwiIHZpZXdCb3g9XCIyNSAyNSA1MCA1MFwiPlxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwYXRoXCJcbiAgICAgICAgICAgICAgICAgICAgICBjeD1cIjUwXCJcbiAgICAgICAgICAgICAgICAgICAgICBjeT1cIjUwXCJcbiAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgcj1cIjIwXCJcbiAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbWl0ZXJsaW1pdD1cIjEwXCJcbiAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIzXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvY2lyY2xlPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgPGFwcC10YWJsZS1jb2x1bW4tZmlsdGVyXG4gICAgICAgICpuZ0lmPVwiKChzaG93RmlsdGVyIHx8IGNvbWJvQWN0aXZlKSAmJiAhKGZpbHRlclR5cGUgPT09ICdDT01CTycgJiYgIWNvbWJvQWN0aXZlKSkgJiYgZmlsdGVyVHlwZSAhPT0gJ1NFTEVDVCcgJiYgZmlsdGVyVHlwZSAhPT0gJ0NVU1RPTSdcIlxuICAgICAgICBbY29sdW1uRGVmXT1cImNvbHVtbkRlZlwiXG4gICAgICAgIFtmaWx0ZXJOYW1lXT1cImhlYWRlck5hbWVcIlxuICAgICAgICBbZmlsdGVyU3RyaW5nXT1cIicnXCJcbiAgICAgICAgW29wZW5TdGF0dXNNZW51XT1cInRvZ2dsZVNlY29uZGFyeUZpbHRlci5iaW5kKHRoaXMpXCJcbiAgICAgICAgW3R5cGVdPVwiZmlsdGVyVHlwZVwiXG4gICAgICA+PC9hcHAtdGFibGUtY29sdW1uLWZpbHRlcj5cbiAgICAgIDxzcGFuXG4gICAgICAgICpuZ0lmPVwiKCghc2hvd0ZpbHRlciAmJiAhY29tYm9BY3RpdmUpIHx8IChmaWx0ZXJUeXBlID09PSAnQ09NQk8nICYmICFjb21ib0FjdGl2ZSkpIHx8IGZpbHRlclR5cGUgPT09ICdTRUxFQ1QnIHx8IGZpbHRlclR5cGUgPT09ICdDVVNUT00nXCJcbiAgICAgICAgW3RpdGxlXT1cImhlYWRlck5hbWVcIlxuICAgICAgICBjbGFzcz1cImFnLWhlYWRlci1jZWxsLXRleHRcIlxuICAgICAgICBpZD1cIkhlYWRlck5hbWVfe3sgY29sdW1uRGVmLmNvbElkIH19XCJcbiAgICAgICAgdW5zZWxlY3RhYmxlPVwib25cIlxuICAgICAgPnt7IGhlYWRlck5hbWUgfX08L3NwYW5cbiAgICAgID5cbiAgICA8L2Rpdj5cbiAgICA8c3BhblxuICAgICAgKm5nSWY9XCJlbmFibGVTb3J0aW5nICYmICFzaG93RmlsdGVyXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgJ2FnLWhpZGRlbic6IHNvcnREaXIgIT09ICdkZXNjJyB9XCJcbiAgICAgIGNsYXNzPVwiYWctaGVhZGVyLWljb24gYWctaGVhZGVyLWxhYmVsLWljb24gYWctc29ydC1hc2NlbmRpbmctaWNvblwiXG4gICAgICBpZD1cIkhlYWRlclNvcnRBc2Nfe3sgY29sdW1uRGVmLmNvbElkIH19XCJcbiAgICA+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFnLWljb24gYWctaWNvbi1hc2NcIiB1bnNlbGVjdGFibGU9XCJvblwiPjwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuICAgIDxzcGFuXG4gICAgICAqbmdJZj1cImVuYWJsZVNvcnRpbmcgJiYgIXNob3dGaWx0ZXJcIlxuICAgICAgW25nQ2xhc3NdPVwieyAnYWctaGlkZGVuJzogc29ydERpciAhPT0gJ2FzYycgfVwiXG4gICAgICBjbGFzcz1cImFnLWhlYWRlci1pY29uIGFnLWhlYWRlci1sYWJlbC1pY29uIGFnLXNvcnQtZGVzY2VuZGluZy1pY29uXCJcbiAgICAgIGlkPVwiSGVhZGVyU29ydERlc2Nfe3sgY29sdW1uRGVmLmNvbElkIH19XCJcbiAgICA+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFnLWljb24gYWctaWNvbi1kZXNjXCIgdW5zZWxlY3RhYmxlPVwib25cIj48L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -20,7 +20,7 @@ import * as i0 from "@angular/core";
20
20
  import * as i1 from "../../data-table-filter.service";
21
21
  import * as i2 from "@angular/common";
22
22
  import * as i3 from "@angular/forms";
23
- class TableColumnFilterComponent {
23
+ export class TableColumnFilterComponent {
24
24
  constructor(filterService) {
25
25
  this.filterService = filterService;
26
26
  this.type = 'TEXTINPUT';
@@ -71,7 +71,6 @@ class TableColumnFilterComponent {
71
71
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableColumnFilterComponent, deps: [{ token: i1.DataTableFilterService }], target: i0.ɵɵFactoryTarget.Component }); }
72
72
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TableColumnFilterComponent, selector: "app-table-column-filter", inputs: { type: "type", filterString: "filterString", filterName: "filterName", columnDef: "columnDef", openStatusMenu: "openStatusMenu", dateFilter: "dateFilter" }, viewQueries: [{ propertyName: "filterInput", first: true, predicate: ["filterInput"], descendants: true }], ngImport: i0, template: "<div class=\"header-filter-container\">\n <div *ngIf=\"type === 'TEXTINPUT' || type === 'COMBO'\" class=\"text-input-filter\">\n <input\n #filterInput\n (keyup)=\"setFilterDebounced()\"\n [(ngModel)]=\"filterString\"\n class=\"search\"\n id=\"SearchFilter\"\n placeholder=\"Type to Filter\"\n type=\"text\"\n />\n </div>\n <div *ngIf=\"type === 'SELECT'\"></div>\n</div>\n", styles: [".header-filter-container .search{height:2.5rem;border-width:0;font-size:.875rem;box-shadow:none;padding-left:0rem;margin-top:.9375rem}#TimeSearch{position:relative;float:left;display:inline-block;margin-left:.625rem;width:3.125rem;height:2.5rem;background-color:var(--primary)}#TimeSearch #TimeSearchList{width:2.75rem;height:0rem;position:absolute;top:0rem;left:-.125rem;overflow:hidden;transition:var(--transition);background-color:var(--menu);border-radius:.5rem;z-index:30}#TimeSearch #TimeSearchList .time{width:2.5rem;background-color:var(--background);padding-left:.5rem;padding-right:.5rem;border-radius:.5rem;line-height:1.625rem;font-size:.75rem;font-weight:700;text-align:center;margin-top:.125rem;margin-left:.125rem;left:-.125rem;top:-3.1875rem;cursor:pointer;transition:var(--transition)}#TimeSearch #TimeSearchList.open{top:-3.1875rem;width:2.75rem;height:14.125rem}#TimeSearch #TimeSelectButton{width:2.5rem;background-color:var(--background);padding-left:.5rem;padding-right:.5rem;border-radius:.5rem;line-height:1.625rem;text-align:center;font-size:.75rem;font-weight:700;margin-top:.4375rem;cursor:pointer;transition:var(--transition)}#TimeSearch #TimeSelectButton:hover,#TimeSearch #TimeSearchList .time:hover{background-color:var(--primaryColor);color:var(--white)}::ng-deep .tag-selector-filter .select2-selection{border:none!important}::ng-deep .tag-selector-filter .select2-selection .select2-search__field{height:2.1875rem!important}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
73
73
  }
74
- export { TableColumnFilterComponent };
75
74
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableColumnFilterComponent, decorators: [{
76
75
  type: Component,
77
76
  args: [{ selector: 'app-table-column-filter', template: "<div class=\"header-filter-container\">\n <div *ngIf=\"type === 'TEXTINPUT' || type === 'COMBO'\" class=\"text-input-filter\">\n <input\n #filterInput\n (keyup)=\"setFilterDebounced()\"\n [(ngModel)]=\"filterString\"\n class=\"search\"\n id=\"SearchFilter\"\n placeholder=\"Type to Filter\"\n type=\"text\"\n />\n </div>\n <div *ngIf=\"type === 'SELECT'\"></div>\n</div>\n", styles: [".header-filter-container .search{height:2.5rem;border-width:0;font-size:.875rem;box-shadow:none;padding-left:0rem;margin-top:.9375rem}#TimeSearch{position:relative;float:left;display:inline-block;margin-left:.625rem;width:3.125rem;height:2.5rem;background-color:var(--primary)}#TimeSearch #TimeSearchList{width:2.75rem;height:0rem;position:absolute;top:0rem;left:-.125rem;overflow:hidden;transition:var(--transition);background-color:var(--menu);border-radius:.5rem;z-index:30}#TimeSearch #TimeSearchList .time{width:2.5rem;background-color:var(--background);padding-left:.5rem;padding-right:.5rem;border-radius:.5rem;line-height:1.625rem;font-size:.75rem;font-weight:700;text-align:center;margin-top:.125rem;margin-left:.125rem;left:-.125rem;top:-3.1875rem;cursor:pointer;transition:var(--transition)}#TimeSearch #TimeSearchList.open{top:-3.1875rem;width:2.75rem;height:14.125rem}#TimeSearch #TimeSelectButton{width:2.5rem;background-color:var(--background);padding-left:.5rem;padding-right:.5rem;border-radius:.5rem;line-height:1.625rem;text-align:center;font-size:.75rem;font-weight:700;margin-top:.4375rem;cursor:pointer;transition:var(--transition)}#TimeSearch #TimeSelectButton:hover,#TimeSearch #TimeSearchList .time:hover{background-color:var(--primaryColor);color:var(--white)}::ng-deep .tag-selector-filter .select2-selection{border:none!important}::ng-deep .tag-selector-filter .select2-selection .select2-search__field{height:2.1875rem!important}\n"] }]
@@ -91,4 +90,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
91
90
  type: ViewChild,
92
91
  args: ['filterInput']
93
92
  }] } });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96aXRpLWNvbnNvbGUtbGliL3NyYy9saWIvZmVhdHVyZXMvZGF0YS10YWJsZS9jb2x1bW4taGVhZGVycy90YWJsZS1jb2x1bW4tZmlsdGVyL3RhYmxlLWNvbHVtbi1maWx0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMveml0aS1jb25zb2xlLWxpYi9zcmMvbGliL2ZlYXR1cmVzL2RhdGEtdGFibGUvY29sdW1uLWhlYWRlcnMvdGFibGUtY29sdW1uLWZpbHRlci90YWJsZS1jb2x1bW4tZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBRUYsT0FBTyxFQUFnQixTQUFTLEVBQWMsS0FBSyxFQUFxQixTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEcsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7O0FBRWxDLE1BS2EsMEJBQTBCO0lBYW5DLFlBQW1CLGFBQXFDO1FBQXJDLGtCQUFhLEdBQWIsYUFBYSxDQUF3QjtRQVovQyxTQUFJLEdBQUcsV0FBVyxDQUFDO1FBQ25CLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFHaEIsZUFBVSxHQUFRLEtBQUssQ0FBQztRQUVqQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbEMsdUJBQWtCLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBS3JELENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQ2pCLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3BELElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUNiLEtBQUssSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFO2dCQUMzQyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUU7b0JBQ2pELEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO29CQUN6QixNQUFNO2lCQUNUO2FBQ0o7WUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ1osQ0FBQztJQUVELFNBQVM7UUFDTCxNQUFNLFNBQVMsR0FBRztZQUNkLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLO1lBQy9CLEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWTtZQUN4QixLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDeEIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1NBQ2xCLENBQUM7UUFDRixJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUM5QyxDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksQ0FBQyxXQUFXLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBSztRQUNmLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDOUIsS0FBSyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDMUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM5QjtJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBRyxJQUFJLENBQUMsWUFBWTtZQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDMUQsQ0FBQztJQUVELElBQUksdUJBQXVCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSxjQUFjLENBQUM7SUFDakUsQ0FBQzsrR0ExRFEsMEJBQTBCO21HQUExQiwwQkFBMEIsaVZDMUJ2QyxrYUFjQTs7U0RZYSwwQkFBMEI7NEZBQTFCLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDSSx5QkFBeUI7NkdBSzFCLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBS29CLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gICAgQ29weXJpZ2h0IE5ldEZvdW5kcnkgSW5jLlxuXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cbiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiovXG5cbmltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHtEYXRhVGFibGVGaWx0ZXJTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vZGF0YS10YWJsZS1maWx0ZXIuc2VydmljZVwiO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gXCJyeGpzXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLXRhYmxlLWNvbHVtbi1maWx0ZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1jb2x1bW4tZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90YWJsZS1jb2x1bW4tZmlsdGVyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ29sdW1uRmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpIHR5cGUgPSAnVEVYVElOUFVUJztcbiAgICBASW5wdXQoKSBmaWx0ZXJTdHJpbmcgPSAnJztcbiAgICBASW5wdXQoKSBmaWx0ZXJOYW1lID0gJyc7XG4gICAgQElucHV0KCkgY29sdW1uRGVmO1xuICAgIEBJbnB1dCgpIG9wZW5TdGF0dXNNZW51O1xuICAgIEBJbnB1dCgpIGRhdGVGaWx0ZXI6IGFueSA9ICcyNGgnO1xuXG4gICAgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgIHNldEZpbHRlckRlYm91bmNlZCA9IF8uZGVib3VuY2UodGhpcy5zZXRGaWx0ZXIsIDUwMCk7XG5cbiAgICBAVmlld0NoaWxkKCdmaWx0ZXJJbnB1dCcpIGZpbHRlcklucHV0OiBFbGVtZW50UmVmO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGZpbHRlclNlcnZpY2U6IERhdGFUYWJsZUZpbHRlclNlcnZpY2UpIHtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgICAgICAgdGhpcy5maWx0ZXJTZXJ2aWNlLmZpbHRlcnNDaGFuZ2VkLnN1YnNjcmliZSgoZmlsdGVycykgPT4ge1xuICAgICAgICAgICAgICAgIGxldCB0bXAgPSAnJztcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCBmaWx0ZXJzLmxlbmd0aDsgaWR4KyspIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpbHRlcnNbaWR4XS5jb2x1bW5JZCA9PT0gdGhpcy5jb2x1bW5EZWY/LmNvbElkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBmaWx0ZXJzW2lkeF0udmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmZpbHRlclN0cmluZyA9IHRtcDtcbiAgICAgICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBzZXRGaWx0ZXIoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGZpbHRlck9iaiA9IHtcbiAgICAgICAgICAgIGZpbHRlck5hbWU6IHRoaXMuZmlsdGVyTmFtZSxcbiAgICAgICAgICAgIGNvbHVtbklkOiB0aGlzLmNvbHVtbkRlZj8uY29sSWQsXG4gICAgICAgICAgICB2YWx1ZTogdGhpcy5maWx0ZXJTdHJpbmcsXG4gICAgICAgICAgICBsYWJlbDogdGhpcy5maWx0ZXJTdHJpbmcsXG4gICAgICAgICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuZmlsdGVyU2VydmljZS51cGRhdGVGaWx0ZXIoZmlsdGVyT2JqKVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJJbnB1dD8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcbiAgICB9XG5cbiAgICBzdGF0dXNDbGlja2VkKGV2ZW50KSB7XG4gICAgICAgIGlmIChldmVudCAmJiB0aGlzLm9wZW5TdGF0dXNNZW51KSB7XG4gICAgICAgICAgICBldmVudC5zdGF0dXNGaWx0ZXIgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5vcGVuU3RhdHVzTWVudShldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYodGhpcy5zdWJzY3JpcHRpb24pIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgZ2V0IGF2YWlsYWJsZVJvbGVBdHRyaWJ1dGVzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2x1bW5EZWY/LmhlYWRlckNvbXBvbmVudFBhcmFtcz8ucm9sZUF0dHJpYnV0ZXM7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImhlYWRlci1maWx0ZXItY29udGFpbmVyXCI+XG4gIDxkaXYgKm5nSWY9XCJ0eXBlID09PSAnVEVYVElOUFVUJyB8fCB0eXBlID09PSAnQ09NQk8nXCIgY2xhc3M9XCJ0ZXh0LWlucHV0LWZpbHRlclwiPlxuICAgIDxpbnB1dFxuICAgICAgI2ZpbHRlcklucHV0XG4gICAgICAoa2V5dXApPVwic2V0RmlsdGVyRGVib3VuY2VkKClcIlxuICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJTdHJpbmdcIlxuICAgICAgY2xhc3M9XCJzZWFyY2hcIlxuICAgICAgaWQ9XCJTZWFyY2hGaWx0ZXJcIlxuICAgICAgcGxhY2Vob2xkZXI9XCJUeXBlIHRvIEZpbHRlclwiXG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgLz5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJ0eXBlID09PSAnU0VMRUNUJ1wiPjwvZGl2PlxuPC9kaXY+XG4iXX0=
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96aXRpLWNvbnNvbGUtbGliL3NyYy9saWIvZmVhdHVyZXMvZGF0YS10YWJsZS9jb2x1bW4taGVhZGVycy90YWJsZS1jb2x1bW4tZmlsdGVyL3RhYmxlLWNvbHVtbi1maWx0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMveml0aS1jb25zb2xlLWxpYi9zcmMvbGliL2ZlYXR1cmVzL2RhdGEtdGFibGUvY29sdW1uLWhlYWRlcnMvdGFibGUtY29sdW1uLWZpbHRlci90YWJsZS1jb2x1bW4tZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBRUYsT0FBTyxFQUFnQixTQUFTLEVBQWMsS0FBSyxFQUFxQixTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEcsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7O0FBT2xDLE1BQU0sT0FBTywwQkFBMEI7SUFhbkMsWUFBbUIsYUFBcUM7UUFBckMsa0JBQWEsR0FBYixhQUFhLENBQXdCO1FBWi9DLFNBQUksR0FBRyxXQUFXLENBQUM7UUFDbkIsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFDbEIsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUdoQixlQUFVLEdBQVEsS0FBSyxDQUFDO1FBRWpDLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsQyx1QkFBa0IsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFLckQsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FDakIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDcEQsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ2IsS0FBSyxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUU7Z0JBQzNDLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRTtvQkFDakQsR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7b0JBQ3pCLE1BQU07aUJBQ1Q7YUFDSjtZQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDWixDQUFDO0lBRUQsU0FBUztRQUNMLE1BQU0sU0FBUyxHQUFHO1lBQ2QsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUs7WUFDL0IsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQ3hCLEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWTtZQUN4QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7U0FDbEIsQ0FBQztRQUNGLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQzlDLENBQUM7SUFFRCxlQUFlO1FBQ1gsSUFBSSxDQUFDLFdBQVcsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFLO1FBQ2YsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUM5QixLQUFLLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztZQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzlCO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFHLElBQUksQ0FBQyxZQUFZO1lBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMxRCxDQUFDO0lBRUQsSUFBSSx1QkFBdUI7UUFDdkIsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLHFCQUFxQixFQUFFLGNBQWMsQ0FBQztJQUNqRSxDQUFDOytHQTFEUSwwQkFBMEI7bUdBQTFCLDBCQUEwQixpVkMxQnZDLGthQWNBOzs0RkRZYSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0kseUJBQXlCOzZHQUsxQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUtvQixXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICAgIENvcHlyaWdodCBOZXRGb3VuZHJ5IEluYy5cblxuICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG4gICAgaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG4gICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4qL1xuXG5pbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7RGF0YVRhYmxlRmlsdGVyU2VydmljZX0gZnJvbSBcIi4uLy4uL2RhdGEtdGFibGUtZmlsdGVyLnNlcnZpY2VcIjtcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC10YWJsZS1jb2x1bW4tZmlsdGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtY29sdW1uLWZpbHRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdGFibGUtY29sdW1uLWZpbHRlci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbHVtbkZpbHRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSB0eXBlID0gJ1RFWFRJTlBVVCc7XG4gICAgQElucHV0KCkgZmlsdGVyU3RyaW5nID0gJyc7XG4gICAgQElucHV0KCkgZmlsdGVyTmFtZSA9ICcnO1xuICAgIEBJbnB1dCgpIGNvbHVtbkRlZjtcbiAgICBASW5wdXQoKSBvcGVuU3RhdHVzTWVudTtcbiAgICBASW5wdXQoKSBkYXRlRmlsdGVyOiBhbnkgPSAnMjRoJztcblxuICAgIHN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgICBzZXRGaWx0ZXJEZWJvdW5jZWQgPSBfLmRlYm91bmNlKHRoaXMuc2V0RmlsdGVyLCA1MDApO1xuXG4gICAgQFZpZXdDaGlsZCgnZmlsdGVySW5wdXQnKSBmaWx0ZXJJbnB1dDogRWxlbWVudFJlZjtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBmaWx0ZXJTZXJ2aWNlOiBEYXRhVGFibGVGaWx0ZXJTZXJ2aWNlKSB7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyU2VydmljZS5maWx0ZXJzQ2hhbmdlZC5zdWJzY3JpYmUoKGZpbHRlcnMpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgdG1wID0gJyc7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgZmlsdGVycy5sZW5ndGg7IGlkeCsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJzW2lkeF0uY29sdW1uSWQgPT09IHRoaXMuY29sdW1uRGVmPy5jb2xJZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gZmlsdGVyc1tpZHhdLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJTdHJpbmcgPSB0bXA7XG4gICAgICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgc2V0RmlsdGVyKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBmaWx0ZXJPYmogPSB7XG4gICAgICAgICAgICBmaWx0ZXJOYW1lOiB0aGlzLmZpbHRlck5hbWUsXG4gICAgICAgICAgICBjb2x1bW5JZDogdGhpcy5jb2x1bW5EZWY/LmNvbElkLFxuICAgICAgICAgICAgdmFsdWU6IHRoaXMuZmlsdGVyU3RyaW5nLFxuICAgICAgICAgICAgbGFiZWw6IHRoaXMuZmlsdGVyU3RyaW5nLFxuICAgICAgICAgICAgdHlwZTogdGhpcy50eXBlLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmZpbHRlclNlcnZpY2UudXBkYXRlRmlsdGVyKGZpbHRlck9iailcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMuZmlsdGVySW5wdXQ/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgc3RhdHVzQ2xpY2tlZChldmVudCkge1xuICAgICAgICBpZiAoZXZlbnQgJiYgdGhpcy5vcGVuU3RhdHVzTWVudSkge1xuICAgICAgICAgICAgZXZlbnQuc3RhdHVzRmlsdGVyID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMub3BlblN0YXR1c01lbnUoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmKHRoaXMuc3Vic2NyaXB0aW9uKSB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIGdldCBhdmFpbGFibGVSb2xlQXR0cmlidXRlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29sdW1uRGVmPy5oZWFkZXJDb21wb25lbnRQYXJhbXM/LnJvbGVBdHRyaWJ1dGVzO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJoZWFkZXItZmlsdGVyLWNvbnRhaW5lclwiPlxuICA8ZGl2ICpuZ0lmPVwidHlwZSA9PT0gJ1RFWFRJTlBVVCcgfHwgdHlwZSA9PT0gJ0NPTUJPJ1wiIGNsYXNzPVwidGV4dC1pbnB1dC1maWx0ZXJcIj5cbiAgICA8aW5wdXRcbiAgICAgICNmaWx0ZXJJbnB1dFxuICAgICAgKGtleXVwKT1cInNldEZpbHRlckRlYm91bmNlZCgpXCJcbiAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVyU3RyaW5nXCJcbiAgICAgIGNsYXNzPVwic2VhcmNoXCJcbiAgICAgIGlkPVwiU2VhcmNoRmlsdGVyXCJcbiAgICAgIHBsYWNlaG9sZGVyPVwiVHlwZSB0byBGaWx0ZXJcIlxuICAgICAgdHlwZT1cInRleHRcIlxuICAgIC8+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwidHlwZSA9PT0gJ1NFTEVDVCdcIj48L2Rpdj5cbjwvZGl2PlxuIl19
@@ -2,7 +2,7 @@ import { Component } from '@angular/core';
2
2
  import _ from 'lodash';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "ng-click-outside";
5
- class TableColumnMenuComponent {
5
+ export class TableColumnMenuComponent {
6
6
  constructor() {
7
7
  this.item = {
8
8
  selected: false,
@@ -30,9 +30,8 @@ class TableColumnMenuComponent {
30
30
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableColumnMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
31
31
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TableColumnMenuComponent, selector: "app-table-column-menu", ngImport: i0, template: "<div (clickOutside)=\"closeActionMenu($event)\" class=\"cell-menu-container\">\n <div (click)=\"toggleMenu($event)\" class=\"dots\" id=\"Dots_Bulk\">\n <div (click)=\"toggleMenu($event)\" class=\"dots\" id=\"HeaderRowDots\">...</div>\n </div>\n</div>", styles: [".cell-menu-container .dots{width:1.875rem;right:.625rem;height:1.875rem;position:absolute;top:.625rem;font-size:1.5rem;text-align:center;cursor:pointer;background-color:transparent;transition:var(--transition);line-height:.8125rem;border-radius:var(--inputBorderRadius)}\n"], dependencies: [{ kind: "directive", type: i1.ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }] }); }
32
32
  }
33
- export { TableColumnMenuComponent };
34
33
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableColumnMenuComponent, decorators: [{
35
34
  type: Component,
36
35
  args: [{ selector: 'app-table-column-menu', template: "<div (clickOutside)=\"closeActionMenu($event)\" class=\"cell-menu-container\">\n <div (click)=\"toggleMenu($event)\" class=\"dots\" id=\"Dots_Bulk\">\n <div (click)=\"toggleMenu($event)\" class=\"dots\" id=\"HeaderRowDots\">...</div>\n </div>\n</div>", styles: [".cell-menu-container .dots{width:1.875rem;right:.625rem;height:1.875rem;position:absolute;top:.625rem;font-size:1.5rem;text-align:center;cursor:pointer;background-color:transparent;transition:var(--transition);line-height:.8125rem;border-radius:var(--inputBorderRadius)}\n"] }]
37
36
  }] });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMveml0aS1jb25zb2xlLWxpYi9zcmMvbGliL2ZlYXR1cmVzL2RhdGEtdGFibGUvY29sdW1uLWhlYWRlcnMvdGFibGUtY29sdW1uLW1lbnUvdGFibGUtY29sdW1uLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMveml0aS1jb25zb2xlLWxpYi9zcmMvbGliL2ZlYXR1cmVzL2RhdGEtdGFibGUvY29sdW1uLWhlYWRlcnMvdGFibGUtY29sdW1uLW1lbnUvdGFibGUtY29sdW1uLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUd4QyxPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7OztBQUV2QixNQUthLHdCQUF3QjtJQUxyQztRQU1FLFNBQUksR0FBRztZQUNMLFFBQVEsRUFBRSxLQUFLO1lBQ2YsRUFBRSxFQUFFLEVBQUU7WUFDTixVQUFVLEVBQUUsRUFBRTtTQUNmLENBQUM7UUFFRixTQUFJLEdBQUcsS0FBSyxDQUFDO0tBcUJkO0lBbkJDLE1BQU0sQ0FBQyxZQUEyQjtRQUNoQyxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxPQUFPLENBQUMsWUFBMkI7UUFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQUs7UUFDZCxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtZQUNYLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFLO1FBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLENBQUM7K0dBM0JVLHdCQUF3QjttR0FBeEIsd0JBQXdCLDZEQ1ZyQyxpUUFJTTs7U0RNTyx3QkFBd0I7NEZBQXhCLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDRSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0lIZWFkZXJBbmd1bGFyQ29tcH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcbmltcG9ydCB7SUhlYWRlclBhcmFtc30gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXRhYmxlLWNvbHVtbi1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLWNvbHVtbi1tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUtY29sdW1uLW1lbnUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDb2x1bW5NZW51Q29tcG9uZW50IGltcGxlbWVudHMgSUhlYWRlckFuZ3VsYXJDb21wIHtcbiAgaXRlbSA9IHtcbiAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgaWQ6ICcnLFxuICAgIGFjdGlvbkxpc3Q6IFtdLFxuICB9O1xuICBoZWFkZXJQYXJhbXM7XG4gIG9wZW4gPSBmYWxzZTtcblxuICBhZ0luaXQoaGVhZGVyUGFyYW1zOiBJSGVhZGVyUGFyYW1zKTogdm9pZCB7XG4gICAgdGhpcy5oZWFkZXJQYXJhbXMgPSBoZWFkZXJQYXJhbXM7XG4gICAgdGhpcy5pdGVtID0gXy5nZXQoaGVhZGVyUGFyYW1zLCAnZGF0YScpO1xuICB9XG5cbiAgcmVmcmVzaChoZWFkZXJQYXJhbXM6IElIZWFkZXJQYXJhbXMpOiBib29sZWFuIHtcbiAgICB0aGlzLmhlYWRlclBhcmFtcyA9IGhlYWRlclBhcmFtcztcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHRvZ2dsZU1lbnUoZXZlbnQpOiB2b2lkIHtcbiAgICBfLmRlZmVyKCgpID0+IHtcbiAgICAgIHRoaXMuaGVhZGVyUGFyYW1zLm9wZW5IZWFkZXJNZW51KGV2ZW50KTtcbiAgICB9KTtcbiAgfVxuXG4gIGNsb3NlQWN0aW9uTWVudShldmVudCk6IHZvaWQge1xuICAgIHRoaXMuaGVhZGVyUGFyYW1zLmNsb3NlTWVudShldmVudCk7XG4gIH1cbn1cbiIsIjxkaXYgKGNsaWNrT3V0c2lkZSk9XCJjbG9zZUFjdGlvbk1lbnUoJGV2ZW50KVwiIGNsYXNzPVwiY2VsbC1tZW51LWNvbnRhaW5lclwiPlxuICA8ZGl2IChjbGljayk9XCJ0b2dnbGVNZW51KCRldmVudClcIiBjbGFzcz1cImRvdHNcIiBpZD1cIkRvdHNfQnVsa1wiPlxuICAgIDxkaXYgKGNsaWNrKT1cInRvZ2dsZU1lbnUoJGV2ZW50KVwiIGNsYXNzPVwiZG90c1wiIGlkPVwiSGVhZGVyUm93RG90c1wiPi4uLjwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMveml0aS1jb25zb2xlLWxpYi9zcmMvbGliL2ZlYXR1cmVzL2RhdGEtdGFibGUvY29sdW1uLWhlYWRlcnMvdGFibGUtY29sdW1uLW1lbnUvdGFibGUtY29sdW1uLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMveml0aS1jb25zb2xlLWxpYi9zcmMvbGliL2ZlYXR1cmVzL2RhdGEtdGFibGUvY29sdW1uLWhlYWRlcnMvdGFibGUtY29sdW1uLW1lbnUvdGFibGUtY29sdW1uLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUd4QyxPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7OztBQU92QixNQUFNLE9BQU8sd0JBQXdCO0lBTHJDO1FBTUUsU0FBSSxHQUFHO1lBQ0wsUUFBUSxFQUFFLEtBQUs7WUFDZixFQUFFLEVBQUUsRUFBRTtZQUNOLFVBQVUsRUFBRSxFQUFFO1NBQ2YsQ0FBQztRQUVGLFNBQUksR0FBRyxLQUFLLENBQUM7S0FxQmQ7SUFuQkMsTUFBTSxDQUFDLFlBQTJCO1FBQ2hDLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELE9BQU8sQ0FBQyxZQUEyQjtRQUNqQyxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBSztRQUNkLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFO1lBQ1gsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQUs7UUFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQzsrR0EzQlUsd0JBQXdCO21HQUF4Qix3QkFBd0IsNkRDVnJDLGlRQUlNOzs0RkRNTyx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0UsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtJSGVhZGVyQW5ndWxhckNvbXB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5pbXBvcnQge0lIZWFkZXJQYXJhbXN9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC10YWJsZS1jb2x1bW4tbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1jb2x1bW4tbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLWNvbHVtbi1tZW51LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ29sdW1uTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIElIZWFkZXJBbmd1bGFyQ29tcCB7XG4gIGl0ZW0gPSB7XG4gICAgc2VsZWN0ZWQ6IGZhbHNlLFxuICAgIGlkOiAnJyxcbiAgICBhY3Rpb25MaXN0OiBbXSxcbiAgfTtcbiAgaGVhZGVyUGFyYW1zO1xuICBvcGVuID0gZmFsc2U7XG5cbiAgYWdJbml0KGhlYWRlclBhcmFtczogSUhlYWRlclBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMuaGVhZGVyUGFyYW1zID0gaGVhZGVyUGFyYW1zO1xuICAgIHRoaXMuaXRlbSA9IF8uZ2V0KGhlYWRlclBhcmFtcywgJ2RhdGEnKTtcbiAgfVxuXG4gIHJlZnJlc2goaGVhZGVyUGFyYW1zOiBJSGVhZGVyUGFyYW1zKTogYm9vbGVhbiB7XG4gICAgdGhpcy5oZWFkZXJQYXJhbXMgPSBoZWFkZXJQYXJhbXM7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICB0b2dnbGVNZW51KGV2ZW50KTogdm9pZCB7XG4gICAgXy5kZWZlcigoKSA9PiB7XG4gICAgICB0aGlzLmhlYWRlclBhcmFtcy5vcGVuSGVhZGVyTWVudShldmVudCk7XG4gICAgfSk7XG4gIH1cblxuICBjbG9zZUFjdGlvbk1lbnUoZXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmhlYWRlclBhcmFtcy5jbG9zZU1lbnUoZXZlbnQpO1xuICB9XG59XG4iLCI8ZGl2IChjbGlja091dHNpZGUpPVwiY2xvc2VBY3Rpb25NZW51KCRldmVudClcIiBjbGFzcz1cImNlbGwtbWVudS1jb250YWluZXJcIj5cbiAgPGRpdiAoY2xpY2spPVwidG9nZ2xlTWVudSgkZXZlbnQpXCIgY2xhc3M9XCJkb3RzXCIgaWQ9XCJEb3RzX0J1bGtcIj5cbiAgICA8ZGl2IChjbGljayk9XCJ0b2dnbGVNZW51KCRldmVudClcIiBjbGFzcz1cImRvdHNcIiBpZD1cIkhlYWRlclJvd0RvdHNcIj4uLi48L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
@@ -1,7 +1,7 @@
1
1
  import { Component, ViewChild } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/common";
4
- class TableColumnSelectComponent {
4
+ export class TableColumnSelectComponent {
5
5
  constructor() {
6
6
  this.gridApi = {
7
7
  zitiAllToggled: undefined,
@@ -21,14 +21,13 @@ class TableColumnSelectComponent {
21
21
  }
22
22
  }
23
23
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableColumnSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
24
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TableColumnSelectComponent, selector: "app-table-column-select", viewQueries: [{ propertyName: "toggleButton", first: true, predicate: ["toggleButton"], descendants: true }], ngImport: i0, template: "<div\n #toggleButton\n (click)=\"toggleAll()\"\n [ngClass]=\"{ selected: gridApi.zitiAllToggled }\"\n class=\"tSelect tSelectHeader\"\n id=\"RowSelect_Header\"\n></div>\n", styles: [".tSelectHeader.tSelect{width:1.5625rem;height:1.5625rem;border:.1rem var(--stroke) solid;border-radius:.9375rem;cursor:pointer;transition:background-color .5s;position:absolute;top:.8125rem;left:.625rem;background-color:var(--offWhite);transition:var(--transition)}.tSelectHeader.tSelect.selected{background-color:var(--green);background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAYCAYAAAD+vg1LAAABdElEQVRIia3UPWsUURSH8f9GRRvtFKtIgoKggo2CYO0XsLKzsbARbNKJYGPndxEEO8VGRRvBF6xFBAkplPiyb/lZzAx7d9jE3ewcmOLOPTyc85x7bw/pKI4keZ7kUpIHQVffIwxU0e91VPHlJK+T9Or19y7Ah5N8TLJeg3eSXO9CwcNCwQCPkWWhFzE2iZ84viz4ED4X4DFuNPvLgO8XCoZ4Wu7vF3oeo0LBL5xcFnwA7wsFI9xs5+0HvFG33ih4NitvUejZAgp/sLoseAVvC7dD3NotfxHw3ZaCl+jtBT6qOn+n94CuoV8o+Fv/27WQ4E3dXh9XZyT18Kql4M7/OozJsdnBb1xoJd0uFIxqzyvzgJ+Y3KAxtrBeJ6yqJt/EEGfmmUlwDB9aVX3FCbwwPbCNeaANOKoX6UvL41axHuOd6tYtBA5OYdP0a9XECOfmhbbBUT0u26pBNjHAvUWgs8DBFdPD/ISDXYCDa/iBb3UXC0GRf9rA4qSLGyBIAAAAAElFTkSuQmCC);background-size:45%;background-position:center center;border:none}.tSelectHeader.tSelect.disabled{opacity:.6;cursor:not-allowed;transform:initial!important}.tSelectHeader.tSelect.disabled:hover{width:1.5625rem;height:1.5625rem;border:.125rem var(--offWhite) solid;border-radius:.9375rem;transition:background-color .5s;position:absolute;top:.8125rem;left:1.0625rem;background-color:var(--background)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
24
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TableColumnSelectComponent, selector: "app-table-column-select", viewQueries: [{ propertyName: "toggleButton", first: true, predicate: ["toggleButton"], descendants: true }], ngImport: i0, template: "<div\n #toggleButton\n (click)=\"toggleAll()\"\n [ngClass]=\"{ selected: gridApi.zitiAllToggled }\"\n class=\"tSelect tSelectHeader\"\n id=\"RowSelect_Header\"\n></div>\n", styles: [".tSelectHeader.tSelect{width:var(--checkboxHeightWidth);height:var(--checkboxHeightWidth);border:.1rem var(--inputBorder) solid;border-radius:var(--inputBorderRadius);cursor:pointer;transition:background-color .5s;position:absolute;top:.8125rem;left:.625rem;background-color:var(--offWhite);transition:var(--transition)}.tSelectHeader.tSelect.selected{background-color:var(--green);background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAYCAYAAAD+vg1LAAABdElEQVRIia3UPWsUURSH8f9GRRvtFKtIgoKggo2CYO0XsLKzsbARbNKJYGPndxEEO8VGRRvBF6xFBAkplPiyb/lZzAx7d9jE3ewcmOLOPTyc85x7bw/pKI4keZ7kUpIHQVffIwxU0e91VPHlJK+T9Or19y7Ah5N8TLJeg3eSXO9CwcNCwQCPkWWhFzE2iZ84viz4ED4X4DFuNPvLgO8XCoZ4Wu7vF3oeo0LBL5xcFnwA7wsFI9xs5+0HvFG33ih4NitvUejZAgp/sLoseAVvC7dD3NotfxHw3ZaCl+jtBT6qOn+n94CuoV8o+Fv/27WQ4E3dXh9XZyT18Kql4M7/OozJsdnBb1xoJd0uFIxqzyvzgJ+Y3KAxtrBeJ6yqJt/EEGfmmUlwDB9aVX3FCbwwPbCNeaANOKoX6UvL41axHuOd6tYtBA5OYdP0a9XECOfmhbbBUT0u26pBNjHAvUWgs8DBFdPD/ISDXYCDa/iBb3UXC0GRf9rA4qSLGyBIAAAAAElFTkSuQmCC);background-size:45%;background-position:center center;border:none}.tSelectHeader.tSelect.disabled{opacity:.6;cursor:not-allowed;transform:initial!important}.tSelectHeader.tSelect.disabled:hover{width:1.5625rem;height:1.5625rem;border:.125rem var(--offWhite) solid;border-radius:.9375rem;transition:background-color .5s;position:absolute;top:.8125rem;left:1.0625rem;background-color:var(--background)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
25
25
  }
26
- export { TableColumnSelectComponent };
27
26
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableColumnSelectComponent, decorators: [{
28
27
  type: Component,
29
- args: [{ selector: 'app-table-column-select', template: "<div\n #toggleButton\n (click)=\"toggleAll()\"\n [ngClass]=\"{ selected: gridApi.zitiAllToggled }\"\n class=\"tSelect tSelectHeader\"\n id=\"RowSelect_Header\"\n></div>\n", styles: [".tSelectHeader.tSelect{width:1.5625rem;height:1.5625rem;border:.1rem var(--stroke) solid;border-radius:.9375rem;cursor:pointer;transition:background-color .5s;position:absolute;top:.8125rem;left:.625rem;background-color:var(--offWhite);transition:var(--transition)}.tSelectHeader.tSelect.selected{background-color:var(--green);background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAYCAYAAAD+vg1LAAABdElEQVRIia3UPWsUURSH8f9GRRvtFKtIgoKggo2CYO0XsLKzsbARbNKJYGPndxEEO8VGRRvBF6xFBAkplPiyb/lZzAx7d9jE3ewcmOLOPTyc85x7bw/pKI4keZ7kUpIHQVffIwxU0e91VPHlJK+T9Or19y7Ah5N8TLJeg3eSXO9CwcNCwQCPkWWhFzE2iZ84viz4ED4X4DFuNPvLgO8XCoZ4Wu7vF3oeo0LBL5xcFnwA7wsFI9xs5+0HvFG33ih4NitvUejZAgp/sLoseAVvC7dD3NotfxHw3ZaCl+jtBT6qOn+n94CuoV8o+Fv/27WQ4E3dXh9XZyT18Kql4M7/OozJsdnBb1xoJd0uFIxqzyvzgJ+Y3KAxtrBeJ6yqJt/EEGfmmUlwDB9aVX3FCbwwPbCNeaANOKoX6UvL41axHuOd6tYtBA5OYdP0a9XECOfmhbbBUT0u26pBNjHAvUWgs8DBFdPD/ISDXYCDa/iBb3UXC0GRf9rA4qSLGyBIAAAAAElFTkSuQmCC);background-size:45%;background-position:center center;border:none}.tSelectHeader.tSelect.disabled{opacity:.6;cursor:not-allowed;transform:initial!important}.tSelectHeader.tSelect.disabled:hover{width:1.5625rem;height:1.5625rem;border:.125rem var(--offWhite) solid;border-radius:.9375rem;transition:background-color .5s;position:absolute;top:.8125rem;left:1.0625rem;background-color:var(--background)}\n"] }]
28
+ args: [{ selector: 'app-table-column-select', template: "<div\n #toggleButton\n (click)=\"toggleAll()\"\n [ngClass]=\"{ selected: gridApi.zitiAllToggled }\"\n class=\"tSelect tSelectHeader\"\n id=\"RowSelect_Header\"\n></div>\n", styles: [".tSelectHeader.tSelect{width:var(--checkboxHeightWidth);height:var(--checkboxHeightWidth);border:.1rem var(--inputBorder) solid;border-radius:var(--inputBorderRadius);cursor:pointer;transition:background-color .5s;position:absolute;top:.8125rem;left:.625rem;background-color:var(--offWhite);transition:var(--transition)}.tSelectHeader.tSelect.selected{background-color:var(--green);background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAYCAYAAAD+vg1LAAABdElEQVRIia3UPWsUURSH8f9GRRvtFKtIgoKggo2CYO0XsLKzsbARbNKJYGPndxEEO8VGRRvBF6xFBAkplPiyb/lZzAx7d9jE3ewcmOLOPTyc85x7bw/pKI4keZ7kUpIHQVffIwxU0e91VPHlJK+T9Or19y7Ah5N8TLJeg3eSXO9CwcNCwQCPkWWhFzE2iZ84viz4ED4X4DFuNPvLgO8XCoZ4Wu7vF3oeo0LBL5xcFnwA7wsFI9xs5+0HvFG33ih4NitvUejZAgp/sLoseAVvC7dD3NotfxHw3ZaCl+jtBT6qOn+n94CuoV8o+Fv/27WQ4E3dXh9XZyT18Kql4M7/OozJsdnBb1xoJd0uFIxqzyvzgJ+Y3KAxtrBeJ6yqJt/EEGfmmUlwDB9aVX3FCbwwPbCNeaANOKoX6UvL41axHuOd6tYtBA5OYdP0a9XECOfmhbbBUT0u26pBNjHAvUWgs8DBFdPD/ISDXYCDa/iBb3UXC0GRf9rA4qSLGyBIAAAAAElFTkSuQmCC);background-size:45%;background-position:center center;border:none}.tSelectHeader.tSelect.disabled{opacity:.6;cursor:not-allowed;transform:initial!important}.tSelectHeader.tSelect.disabled:hover{width:1.5625rem;height:1.5625rem;border:.125rem var(--offWhite) solid;border-radius:.9375rem;transition:background-color .5s;position:absolute;top:.8125rem;left:1.0625rem;background-color:var(--background)}\n"] }]
30
29
  }], propDecorators: { toggleButton: [{
31
30
  type: ViewChild,
32
31
  args: ['toggleButton']
33
32
  }] } });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96aXRpLWNvbnNvbGUtbGliL3NyYy9saWIvZmVhdHVyZXMvZGF0YS10YWJsZS9jb2x1bW4taGVhZGVycy90YWJsZS1jb2x1bW4tc2VsZWN0L3RhYmxlLWNvbHVtbi1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMveml0aS1jb25zb2xlLWxpYi9zcmMvbGliL2ZlYXR1cmVzL2RhdGEtdGFibGUvY29sdW1uLWhlYWRlcnMvdGFibGUtY29sdW1uLXNlbGVjdC90YWJsZS1jb2x1bW4tc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWMsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7QUFJL0QsTUFLYSwwQkFBMEI7SUFMdkM7UUFPRSxZQUFPLEdBQVE7WUFDYixjQUFjLEVBQUUsU0FBUztTQUMxQixDQUFDO0tBbUJIO0lBZkMsTUFBTSxDQUFDLFlBQTJCO1FBQ2hDLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxPQUFPLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQztJQUNsQyxDQUFDO0lBRUQsT0FBTyxDQUFDLE1BQXFCO1FBQzNCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDO1FBQzNELElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUU7WUFDL0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQzdFO0lBQ0gsQ0FBQzsrR0F0QlUsMEJBQTBCO21HQUExQiwwQkFBMEIsNktDVHZDLGlMQU9BOztTREVhLDBCQUEwQjs0RkFBMUIsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLHlCQUF5Qjs4QkFVUixZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SUhlYWRlckFuZ3VsYXJDb21wfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHtJSGVhZGVyUGFyYW1zfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC10YWJsZS1jb2x1bW4tc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLWNvbHVtbi1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YWJsZS1jb2x1bW4tc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ29sdW1uU2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgSUhlYWRlckFuZ3VsYXJDb21wIHtcbiAgaGVhZGVyUGFyYW1zOiBhbnk7XG4gIGdyaWRBcGk6IGFueSA9IHtcbiAgICB6aXRpQWxsVG9nZ2xlZDogdW5kZWZpbmVkLFxuICB9O1xuXG4gIEBWaWV3Q2hpbGQoJ3RvZ2dsZUJ1dHRvbicpIHRvZ2dsZUJ1dHRvbjogRWxlbWVudFJlZjtcblxuICBhZ0luaXQoaGVhZGVyUGFyYW1zOiBJSGVhZGVyUGFyYW1zKTogdm9pZCB7XG4gICAgdGhpcy5oZWFkZXJQYXJhbXMgPSBoZWFkZXJQYXJhbXM7XG4gICAgdGhpcy5ncmlkQXBpID0gaGVhZGVyUGFyYW1zLmFwaTtcbiAgfVxuXG4gIHJlZnJlc2gocGFyYW1zOiBJSGVhZGVyUGFyYW1zKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICB0b2dnbGVBbGwoKTogdm9pZCB7XG4gICAgdGhpcy5ncmlkQXBpLnppdGlBbGxUb2dnbGVkID0gIXRoaXMuZ3JpZEFwaS56aXRpQWxsVG9nZ2xlZDtcbiAgICBpZiAodGhpcy5oZWFkZXJQYXJhbXMudG9nZ2xlQWxsKSB7XG4gICAgICB0aGlzLmhlYWRlclBhcmFtcy50b2dnbGVBbGwodGhpcy5ncmlkQXBpLnppdGlBbGxUb2dnbGVkLCB0aGlzLmhlYWRlclBhcmFtcyk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gICN0b2dnbGVCdXR0b25cbiAgKGNsaWNrKT1cInRvZ2dsZUFsbCgpXCJcbiAgW25nQ2xhc3NdPVwieyBzZWxlY3RlZDogZ3JpZEFwaS56aXRpQWxsVG9nZ2xlZCB9XCJcbiAgY2xhc3M9XCJ0U2VsZWN0IHRTZWxlY3RIZWFkZXJcIlxuICBpZD1cIlJvd1NlbGVjdF9IZWFkZXJcIlxuPjwvZGl2PlxuIl19
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96aXRpLWNvbnNvbGUtbGliL3NyYy9saWIvZmVhdHVyZXMvZGF0YS10YWJsZS9jb2x1bW4taGVhZGVycy90YWJsZS1jb2x1bW4tc2VsZWN0L3RhYmxlLWNvbHVtbi1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMveml0aS1jb25zb2xlLWxpYi9zcmMvbGliL2ZlYXR1cmVzL2RhdGEtdGFibGUvY29sdW1uLWhlYWRlcnMvdGFibGUtY29sdW1uLXNlbGVjdC90YWJsZS1jb2x1bW4tc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWMsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7QUFTL0QsTUFBTSxPQUFPLDBCQUEwQjtJQUx2QztRQU9FLFlBQU8sR0FBUTtZQUNiLGNBQWMsRUFBRSxTQUFTO1NBQzFCLENBQUM7S0FtQkg7SUFmQyxNQUFNLENBQUMsWUFBMkI7UUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsSUFBSSxDQUFDLE9BQU8sR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxPQUFPLENBQUMsTUFBcUI7UUFDM0IsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7UUFDM0QsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRTtZQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDN0U7SUFDSCxDQUFDOytHQXRCVSwwQkFBMEI7bUdBQTFCLDBCQUEwQiw2S0NUdkMsaUxBT0E7OzRGREVhLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDRSx5QkFBeUI7OEJBVVIsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0lIZWFkZXJBbmd1bGFyQ29tcH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcbmltcG9ydCB7SUhlYWRlclBhcmFtc30gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdGFibGUtY29sdW1uLXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1jb2x1bW4tc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUtY29sdW1uLXNlbGVjdC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbHVtblNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIElIZWFkZXJBbmd1bGFyQ29tcCB7XG4gIGhlYWRlclBhcmFtczogYW55O1xuICBncmlkQXBpOiBhbnkgPSB7XG4gICAgeml0aUFsbFRvZ2dsZWQ6IHVuZGVmaW5lZCxcbiAgfTtcblxuICBAVmlld0NoaWxkKCd0b2dnbGVCdXR0b24nKSB0b2dnbGVCdXR0b246IEVsZW1lbnRSZWY7XG5cbiAgYWdJbml0KGhlYWRlclBhcmFtczogSUhlYWRlclBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMuaGVhZGVyUGFyYW1zID0gaGVhZGVyUGFyYW1zO1xuICAgIHRoaXMuZ3JpZEFwaSA9IGhlYWRlclBhcmFtcy5hcGk7XG4gIH1cblxuICByZWZyZXNoKHBhcmFtczogSUhlYWRlclBhcmFtcyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgdG9nZ2xlQWxsKCk6IHZvaWQge1xuICAgIHRoaXMuZ3JpZEFwaS56aXRpQWxsVG9nZ2xlZCA9ICF0aGlzLmdyaWRBcGkueml0aUFsbFRvZ2dsZWQ7XG4gICAgaWYgKHRoaXMuaGVhZGVyUGFyYW1zLnRvZ2dsZUFsbCkge1xuICAgICAgdGhpcy5oZWFkZXJQYXJhbXMudG9nZ2xlQWxsKHRoaXMuZ3JpZEFwaS56aXRpQWxsVG9nZ2xlZCwgdGhpcy5oZWFkZXJQYXJhbXMpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdlxuICAjdG9nZ2xlQnV0dG9uXG4gIChjbGljayk9XCJ0b2dnbGVBbGwoKVwiXG4gIFtuZ0NsYXNzXT1cInsgc2VsZWN0ZWQ6IGdyaWRBcGkueml0aUFsbFRvZ2dsZWQgfVwiXG4gIGNsYXNzPVwidFNlbGVjdCB0U2VsZWN0SGVhZGVyXCJcbiAgaWQ9XCJSb3dTZWxlY3RfSGVhZGVyXCJcbj48L2Rpdj5cbiJdfQ==
@@ -5,7 +5,7 @@ import { HttpParams } from "@angular/common/http";
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@angular/common";
7
7
  import * as i2 from "@angular/router";
8
- class DataTableFilterService {
8
+ export class DataTableFilterService {
9
9
  constructor(location, router, activatedRoute) {
10
10
  this.location = location;
11
11
  this.router = router;
@@ -129,11 +129,10 @@ class DataTableFilterService {
129
129
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataTableFilterService, deps: [{ token: i1.Location }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Injectable }); }
130
130
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataTableFilterService, providedIn: 'root' }); }
131
131
  }
132
- export { DataTableFilterService };
133
132
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataTableFilterService, decorators: [{
134
133
  type: Injectable,
135
134
  args: [{
136
135
  providedIn: 'root'
137
136
  }]
138
137
  }], ctorParameters: function () { return [{ type: i1.Location }, { type: i2.Router }, { type: i2.ActivatedRoute }]; } });
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS1maWx0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ppdGktY29uc29sZS1saWIvc3JjL2xpYi9mZWF0dXJlcy9kYXRhLXRhYmxlL2RhdGEtdGFibGUtZmlsdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBQyxPQUFPLEVBQUUsT0FBTyxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3hDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQWNoRCxNQUdhLHNCQUFzQjtJQVcvQixZQUFvQixRQUFrQixFQUFVLE1BQWMsRUFBVSxjQUE4QjtRQUFsRixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQVR0RyxZQUFPLEdBQWdCLEVBQUUsQ0FBQztRQUMxQixnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUNoQixtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFjLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6RCxjQUFTLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFdkQsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBTSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFekQsdUJBQWtCLEdBQUcsRUFBRSxDQUFDO0lBR3hCLENBQUM7SUFFRCxZQUFZLENBQUMsU0FBb0I7UUFDN0IsSUFBRyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxTQUFTLENBQUMsS0FBSyxLQUFLLEVB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QkFDVixLQUFLLEVBQUUsa0JBQWtCLENBQUMsS0FBSyxDQUFDO29CQUNoQyxVQUFVLEVBQUUsR0FBRztvQkFDZixJQUFJLEVBQUUsSUFBSTtpQkFDYixDQUFDO2FBQ0w7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8saUJBQWlCLENBQUM7SUFDN0IsQ0FBQzsrR0FqSVEsc0JBQXNCO21IQUF0QixzQkFBc0IsY0FGbkIsTUFBTTs7U0FFVCxzQkFBc0I7NEZBQXRCLHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3R9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge2ZvckVhY2gsIGlzRW1wdHl9IGZyb20gXCJsb2Rhc2hcIjtcbmltcG9ydCB7SHR0cFBhcmFtc30gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXJ9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7TG9jYXRpb259IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcblxuZXhwb3J0IHR5cGUgRmlsdGVyT2JqID0ge1xuICAgIGZpbHRlck5hbWU6IHN0cmluZztcbiAgICBjb2x1bW5JZDogc3RyaW5nO1xuICAgIHZhbHVlOiBhbnk7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICB0eXBlPzogc3RyaW5nO1xuICAgIGhpZGRlbj86IGJvb2xlYW47XG4gICAgdmVyYj86IHN0cmluZ1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIERhdGFUYWJsZUZpbHRlclNlcnZpY2Uge1xuXG4gICAgZmlsdGVyczogRmlsdGVyT2JqW10gPSBbXTtcbiAgICBjdXJyZW50UGFnZSA9IDE7XG4gICAgZmlsdGVyc0NoYW5nZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEZpbHRlck9ialtdPih0aGlzLmZpbHRlcnMpO1xuICAgIHB1YmxpYyBmaWx0ZXJpbmcgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICAgIHBhZ2VDaGFuZ2VkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KHRoaXMuY3VycmVudFBhZ2UpO1xuXG4gICAgY3VycmVudFF1ZXJ5UGFyYW1zID0gW107XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbiwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUpIHtcbiAgICB9XG5cbiAgICB1cGRhdGVGaWx0ZXIoZmlsdGVyT2JqOiBGaWx0ZXJPYmopIHtcbiAgICAgICAgaWYoaXNFbXB0eShmaWx0ZXJPYmoudmFsdWUpICYmIChpc05hTihmaWx0ZXJPYmoudmFsdWUpIHx8IGZpbHRlck9iai52YWx1ZSA9PT0gJycpKSB0aGlzLnJlbW92ZUZpbHRlcihmaWx0ZXJPYmopO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGxldCBpc0ZvdW5kID0gZmFsc2U7XG4gICAgICAgICAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCB0aGlzLmZpbHRlcnMubGVuZ3RoOyBpZHgrKykge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmZpbHRlcnNbaWR4XS5jb2x1bW5JZCA9PT0gZmlsdGVyT2JqLmNvbHVtbklkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyc1tpZHhdID0gZmlsdGVyT2JqO1xuICAgICAgICAgICAgICAgICAgICBpc0ZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFpc0ZvdW5kKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJzLnB1c2goZmlsdGVyT2JqKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZVVybFBhcmFtZXRlcnMoKTtcbiAgICAgICAgdGhpcy5maWx0ZXJzQ2hhbmdlZC5uZXh0KHRoaXMuZmlsdGVycyk7XG4gICAgfVxuXG4gICAgcmVtb3ZlRmlsdGVyKGZpbHRlck9iajogRmlsdGVyT2JqKSB7XG4gICAgICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IHRoaXMuZmlsdGVycy5sZW5ndGg7IGlkeCsrKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5maWx0ZXJzW2lkeF0uY29sdW1uSWQgPT09IGZpbHRlck9iai5jb2x1bW5JZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVycy5zcGxpY2UoaWR4LCAxKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZVVybFBhcmFtZXRlcnMoW2ZpbHRlck9ial0pO1xuICAgICAgICB0aGlzLmZpbHRlcnNDaGFuZ2VkLm5leHQodGhpcy5maWx0ZXJzKTtcbiAgICB9XG5cbiAgICBnZXRGaWx0ZXJTdHJpbmcoa2V5OiBzdHJpbmcpIHtcbiAgICAgICAgbGV0IHZhbHVlID0gJyc7XG4gICAgICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IHRoaXMuZmlsdGVycy5sZW5ndGg7IGlkeCsrKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5maWx0ZXJzW2lkeF0uY29sdW1uSWQgPT09IGtleSkge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gdGhpcy5maWx0ZXJzW2lkeF0udmFsdWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIGNoYW5nZVBhZ2UocGFnZTogYW55KSB7XG4gICAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSBwYWdlO1xuICAgICAgICB0aGlzLnBhZ2VDaGFuZ2VkLm5leHQocGFnZSk7XG4gICAgfVxuXG4gICAgY2xlYXJGaWx0ZXJzKCkge1xuICAgICAgICB0aGlzLmZpbHRlcnMgPSBbXTtcbiAgICAgICAgdGhpcy51cGRhdGVVcmxQYXJhbWV0ZXJzKCk7XG4gICAgICAgIHRoaXMuZmlsdGVyc0NoYW5nZWQubmV4dCh0aGlzLmZpbHRlcnMpO1xuICAgIH1cblxuICAgIHN0b3JlRmlsdGVycygpIHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3NlYXJjaF9maWx0ZXJzJywgSlNPTi5zdHJpbmdpZnkodGhpcy5maWx0ZXJzKSk7XG4gICAgfVxuXG4gICAgZ2V0U3RvcmVkRmlsdGVycygpIHtcbiAgICAgICAgY29uc3Qgc3RvcmFnZUl0ZW0gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnc2VhcmNoX2ZpbHRlcnMnKTtcbiAgICAgICAgY29uc3QgZmlsdGVycyA9IHN0b3JhZ2VJdGVtID8gSlNPTi5wYXJzZShzdG9yYWdlSXRlbSkgOiBbXTtcbiAgICAgICAgcmV0dXJuIGZpbHRlcnM7XG4gICAgfVxuXG4gICAgdXBkYXRlVXJsUGFyYW1ldGVycyhmaWx0ZXJzVG9SZW1vdmU6IGFueVtdID0gW10pIHtcbiAgICAgICAgY29uc3QgdXJsRmlsdGVyc01hcCA9IHRoaXMuZ2V0VXJsRmlsdGVyc01hcCgpO1xuICAgICAgICBsZXQgcGFyYW1zOiBIdHRwUGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICAgICAgdGhpcy5maWx0ZXJzLmZvckVhY2goZmlsdGVyID0+IHtcbiAgICAgICAgICAgIHVybEZpbHRlcnNNYXBbZmlsdGVyLmNvbHVtbklkXSA9IGZpbHRlcjtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IG5ld0ZpbHRlcnMgPSBbXTtcbiAgICAgICAgZm9yRWFjaCh1cmxGaWx0ZXJzTWFwLCAodmFsdWUsIGtleSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyUmVtb3ZlZCA9IGZpbHRlcnNUb1JlbW92ZS5zb21lKChyZW1vdmVkKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlbW92ZWQuY29sdW1uSWQgPT09IGtleTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBpZiAoIWZpbHRlclJlbW92ZWQpIHtcbiAgICAgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKGtleSwgdmFsdWUudmFsdWUpO1xuICAgICAgICAgICAgICAgIG5ld0ZpbHRlcnMucHVzaCh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmZpbHRlcnMgPSBuZXdGaWx0ZXJzO1xuICAgICAgICBjb25zdCBwYXRoID0gdGhpcy5yb3V0ZXIudXJsLnNwbGl0KFwiP1wiKVswXTtcbiAgICAgICAgdGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUocGF0aCwgcGFyYW1zLnRvU3RyaW5nKCkpO1xuICAgICAgICB0aGlzLnN0b3JlRmlsdGVycygpO1xuICAgIH1cblxuICAgIGdldFVybEZpbHRlcnNNYXAoKTogYW55IHtcbiAgICAgICAgY29uc3QgcGFyYW1TdHJpbmcgPSB3aW5kb3cubG9jYXRpb24uaHJlZi5zcGxpdChcIj9cIilbMV07XG4gICAgICAgIGNvbnN0IHBhcmFtczogSHR0cFBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKHsgZnJvbVN0cmluZzogcGFyYW1TdHJpbmcgfSk7XG4gICAgICAgIGNvbnN0IHN0b3JlZEZpbHRlcnMgPSB0aGlzLmdldFN0b3JlZEZpbHRlcnMoKTtcbiAgICAgICAgY29uc3QgYXBwbGllZEZpbHRlcnNNYXAgPSB7fTtcblxuICAgICAgICBwYXJhbXMua2V5cygpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3RvcmVkRmlsdGVyID0gc3RvcmVkRmlsdGVycy5maW5kKChmaWx0ZXIpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmlsdGVyLmNvbHVtbklkID09PSBrZXk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChzdG9yZWRGaWx0ZXIpIHtcbiAgICAgICAgICAgICAgICBhcHBsaWVkRmlsdGVyc01hcFtrZXldID0gc3RvcmVkRmlsdGVyO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsZXQgdmFsOiBhbnkgPSBwYXJhbXMuZ2V0KGtleSk7XG4gICAgICAgICAgICAgICAgbGV0IHR5cGUgPSAnVEVYVElOUFVUJ1xuICAgICAgICAgICAgICAgIGxldCBsYWJlbCA9IHZhbDtcbiAgICAgICAgICAgICAgICBpZiAodmFsPy5zcGxpdCgnLCcpPy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbCA9IHZhbD8uc3BsaXQoJywnKTtcbiAgICAgICAgICAgICAgICAgICAgbGFiZWwgPSB2YWxbMF07XG4gICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnQVRUUklCVVRFJ1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhcHBsaWVkRmlsdGVyc01hcFtrZXldID0ge1xuICAgICAgICAgICAgICAgICAgICBjb2x1bW5JZDoga2V5LFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdmFsLFxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogZGVjb2RlVVJJQ29tcG9uZW50KGxhYmVsKSxcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyTmFtZToga2V5LFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiB0eXBlXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBhcHBsaWVkRmlsdGVyc01hcDtcbiAgICB9XG5cbn1cbiJdfQ==
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS1maWx0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ppdGktY29uc29sZS1saWIvc3JjL2xpYi9mZWF0dXJlcy9kYXRhLXRhYmxlL2RhdGEtdGFibGUtZmlsdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBQyxPQUFPLEVBQUUsT0FBTyxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3hDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQWlCaEQsTUFBTSxPQUFPLHNCQUFzQjtJQVcvQixZQUFvQixRQUFrQixFQUFVLE1BQWMsRUFBVSxjQUE4QjtRQUFsRixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQVR0RyxZQUFPLEdBQWdCLEVBQUUsQ0FBQztRQUMxQixnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUNoQixtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFjLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6RCxjQUFTLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFdkQsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBTSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFekQsdUJBQWtCLEdBQUcsRUFBRSxDQUFDO0lBR3hCLENBQUM7SUFFRCxZQUFZLENBQUMsU0FBb0I7UUFDN0IsSUFBRyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxTQUFTLENBQUMsS0FBSyxL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R0FBRztvQkFDVixLQUFLLEVBQUUsa0JBQWtCLENBQUMsS0FBSyxDQUFDO29CQUNoQyxVQUFVLEVBQUUsR0FBRztvQkFDZixJQUFJLEVBQUUsSUFBSTtpQkFDYixDQUFDO2FBQ0w7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8saUJBQWlCLENBQUM7SUFDN0IsQ0FBQzsrR0FqSVEsc0JBQXNCO21IQUF0QixzQkFBc0IsY0FGbkIsTUFBTTs7NEZBRVQsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7Zm9yRWFjaCwgaXNFbXB0eX0gZnJvbSBcImxvZGFzaFwiO1xuaW1wb3J0IHtIdHRwUGFyYW1zfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlcn0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHtMb2NhdGlvbn0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuXG5leHBvcnQgdHlwZSBGaWx0ZXJPYmogPSB7XG4gICAgZmlsdGVyTmFtZTogc3RyaW5nO1xuICAgIGNvbHVtbklkOiBzdHJpbmc7XG4gICAgdmFsdWU6IGFueTtcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIHR5cGU/OiBzdHJpbmc7XG4gICAgaGlkZGVuPzogYm9vbGVhbjtcbiAgICB2ZXJiPzogc3RyaW5nXG59XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRGF0YVRhYmxlRmlsdGVyU2VydmljZSB7XG5cbiAgICBmaWx0ZXJzOiBGaWx0ZXJPYmpbXSA9IFtdO1xuICAgIGN1cnJlbnRQYWdlID0gMTtcbiAgICBmaWx0ZXJzQ2hhbmdlZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RmlsdGVyT2JqW10+KHRoaXMuZmlsdGVycyk7XG4gICAgcHVibGljIGZpbHRlcmluZyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgcGFnZUNoYW5nZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4odGhpcy5jdXJyZW50UGFnZSk7XG5cbiAgICBjdXJyZW50UXVlcnlQYXJhbXMgPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uLCBwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSkge1xuICAgIH1cblxuICAgIHVwZGF0ZUZpbHRlcihmaWx0ZXJPYmo6IEZpbHRlck9iaikge1xuICAgICAgICBpZihpc0VtcHR5KGZpbHRlck9iai52YWx1ZSkgJiYgKGlzTmFOKGZpbHRlck9iai52YWx1ZSkgfHwgZmlsdGVyT2JqLnZhbHVlID09PSAnJykpIHRoaXMucmVtb3ZlRmlsdGVyKGZpbHRlck9iaik7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbGV0IGlzRm91bmQgPSBmYWxzZTtcbiAgICAgICAgICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IHRoaXMuZmlsdGVycy5sZW5ndGg7IGlkeCsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZmlsdGVyc1tpZHhdLmNvbHVtbklkID09PSBmaWx0ZXJPYmouY29sdW1uSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJzW2lkeF0gPSBmaWx0ZXJPYmo7XG4gICAgICAgICAgICAgICAgICAgIGlzRm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWlzRm91bmQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZpbHRlcnMucHVzaChmaWx0ZXJPYmopO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMudXBkYXRlVXJsUGFyYW1ldGVycygpO1xuICAgICAgICB0aGlzLmZpbHRlcnNDaGFuZ2VkLm5leHQodGhpcy5maWx0ZXJzKTtcbiAgICB9XG5cbiAgICByZW1vdmVGaWx0ZXIoZmlsdGVyT2JqOiBGaWx0ZXJPYmopIHtcbiAgICAgICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgdGhpcy5maWx0ZXJzLmxlbmd0aDsgaWR4KyspIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZpbHRlcnNbaWR4XS5jb2x1bW5JZCA9PT0gZmlsdGVyT2JqLmNvbHVtbklkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJzLnNwbGljZShpZHgsIDEpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMudXBkYXRlVXJsUGFyYW1ldGVycyhbZmlsdGVyT2JqXSk7XG4gICAgICAgIHRoaXMuZmlsdGVyc0NoYW5nZWQubmV4dCh0aGlzLmZpbHRlcnMpO1xuICAgIH1cblxuICAgIGdldEZpbHRlclN0cmluZyhrZXk6IHN0cmluZykge1xuICAgICAgICBsZXQgdmFsdWUgPSAnJztcbiAgICAgICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgdGhpcy5maWx0ZXJzLmxlbmd0aDsgaWR4KyspIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZpbHRlcnNbaWR4XS5jb2x1bW5JZCA9PT0ga2V5KSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSB0aGlzLmZpbHRlcnNbaWR4XS52YWx1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgY2hhbmdlUGFnZShwYWdlOiBhbnkpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IHBhZ2U7XG4gICAgICAgIHRoaXMucGFnZUNoYW5nZWQubmV4dChwYWdlKTtcbiAgICB9XG5cbiAgICBjbGVhckZpbHRlcnMoKSB7XG4gICAgICAgIHRoaXMuZmlsdGVycyA9IFtdO1xuICAgICAgICB0aGlzLnVwZGF0ZVVybFBhcmFtZXRlcnMoKTtcbiAgICAgICAgdGhpcy5maWx0ZXJzQ2hhbmdlZC5uZXh0KHRoaXMuZmlsdGVycyk7XG4gICAgfVxuXG4gICAgc3RvcmVGaWx0ZXJzKCkge1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc2VhcmNoX2ZpbHRlcnMnLCBKU09OLnN0cmluZ2lmeSh0aGlzLmZpbHRlcnMpKTtcbiAgICB9XG5cbiAgICBnZXRTdG9yZWRGaWx0ZXJzKCkge1xuICAgICAgICBjb25zdCBzdG9yYWdlSXRlbSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdzZWFyY2hfZmlsdGVycycpO1xuICAgICAgICBjb25zdCBmaWx0ZXJzID0gc3RvcmFnZUl0ZW0gPyBKU09OLnBhcnNlKHN0b3JhZ2VJdGVtKSA6IFtdO1xuICAgICAgICByZXR1cm4gZmlsdGVycztcbiAgICB9XG5cbiAgICB1cGRhdGVVcmxQYXJhbWV0ZXJzKGZpbHRlcnNUb1JlbW92ZTogYW55W10gPSBbXSkge1xuICAgICAgICBjb25zdCB1cmxGaWx0ZXJzTWFwID0gdGhpcy5nZXRVcmxGaWx0ZXJzTWFwKCk7XG4gICAgICAgIGxldCBwYXJhbXM6IEh0dHBQYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuICAgICAgICB0aGlzLmZpbHRlcnMuZm9yRWFjaChmaWx0ZXIgPT4ge1xuICAgICAgICAgICAgdXJsRmlsdGVyc01hcFtmaWx0ZXIuY29sdW1uSWRdID0gZmlsdGVyO1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgbmV3RmlsdGVycyA9IFtdO1xuICAgICAgICBmb3JFYWNoKHVybEZpbHRlcnNNYXAsICh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJSZW1vdmVkID0gZmlsdGVyc1RvUmVtb3ZlLnNvbWUoKHJlbW92ZWQpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVtb3ZlZC5jb2x1bW5JZCA9PT0ga2V5O1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIGlmICghZmlsdGVyUmVtb3ZlZCkge1xuICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoa2V5LCB2YWx1ZS52YWx1ZSk7XG4gICAgICAgICAgICAgICAgbmV3RmlsdGVycy5wdXNoKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZmlsdGVycyA9IG5ld0ZpbHRlcnM7XG4gICAgICAgIGNvbnN0IHBhdGggPSB0aGlzLnJvdXRlci51cmwuc3BsaXQoXCI/XCIpWzBdO1xuICAgICAgICB0aGlzLmxvY2F0aW9uLnJlcGxhY2VTdGF0ZShwYXRoLCBwYXJhbXMudG9TdHJpbmcoKSk7XG4gICAgICAgIHRoaXMuc3RvcmVGaWx0ZXJzKCk7XG4gICAgfVxuXG4gICAgZ2V0VXJsRmlsdGVyc01hcCgpOiBhbnkge1xuICAgICAgICBjb25zdCBwYXJhbVN0cmluZyA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmLnNwbGl0KFwiP1wiKVsxXTtcbiAgICAgICAgY29uc3QgcGFyYW1zOiBIdHRwUGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoeyBmcm9tU3RyaW5nOiBwYXJhbVN0cmluZyB9KTtcbiAgICAgICAgY29uc3Qgc3RvcmVkRmlsdGVycyA9IHRoaXMuZ2V0U3RvcmVkRmlsdGVycygpO1xuICAgICAgICBjb25zdCBhcHBsaWVkRmlsdGVyc01hcCA9IHt9O1xuXG4gICAgICAgIHBhcmFtcy5rZXlzKCkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzdG9yZWRGaWx0ZXIgPSBzdG9yZWRGaWx0ZXJzLmZpbmQoKGZpbHRlcikgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBmaWx0ZXIuY29sdW1uSWQgPT09IGtleTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKHN0b3JlZEZpbHRlcikge1xuICAgICAgICAgICAgICAgIGFwcGxpZWRGaWx0ZXJzTWFwW2tleV0gPSBzdG9yZWRGaWx0ZXI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGxldCB2YWw6IGFueSA9IHBhcmFtcy5nZXQoa2V5KTtcbiAgICAgICAgICAgICAgICBsZXQgdHlwZSA9ICdURVhUSU5QVVQnXG4gICAgICAgICAgICAgICAgbGV0IGxhYmVsID0gdmFsO1xuICAgICAgICAgICAgICAgIGlmICh2YWw/LnNwbGl0KCcsJyk/Lmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsID0gdmFsPy5zcGxpdCgnLCcpO1xuICAgICAgICAgICAgICAgICAgICBsYWJlbCA9IHZhbFswXTtcbiAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdBVFRSSUJVVEUnXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGFwcGxpZWRGaWx0ZXJzTWFwW2tleV0gPSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbklkOiBrZXksXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiB2YWwsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBkZWNvZGVVUklDb21wb25lbnQobGFiZWwpLFxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJOYW1lOiBrZXksXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IHR5cGVcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGFwcGxpZWRGaWx0ZXJzTWFwO1xuICAgIH1cblxufVxuIl19