@openziti/ziti-console-lib 1.0.2 → 1.1.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 (563) hide show
  1. package/assets/styles/global.scss +70 -0
  2. package/fesm2022/openziti-ziti-console-lib.mjs +2136 -1327
  3. package/fesm2022/openziti-ziti-console-lib.mjs.map +1 -1
  4. package/index.d.ts +5689 -6
  5. package/index.d.ts.map +1 -0
  6. package/package.json +10 -12
  7. package/esm2022/lib/ZAC_VERSION.mjs +0 -4
  8. package/esm2022/lib/app.initializer.mjs +0 -24
  9. package/esm2022/lib/default-app-config.mjs +0 -5
  10. package/esm2022/lib/features/card/card.component.mjs +0 -34
  11. package/esm2022/lib/features/card-list/card-list.component.mjs +0 -55
  12. package/esm2022/lib/features/config-editor/config-editor.component.mjs +0 -337
  13. package/esm2022/lib/features/confirm/confirm.component.mjs +0 -77
  14. package/esm2022/lib/features/creation-summary-dialog/creation-summary-dialog.component.mjs +0 -93
  15. package/esm2022/lib/features/custom-tags/custom-tags.component.mjs +0 -111
  16. package/esm2022/lib/features/data-table/cells/table-cell-menu/table-cell-menu.component.mjs +0 -46
  17. package/esm2022/lib/features/data-table/cells/table-cell-name/table-cell-name.component.mjs +0 -49
  18. package/esm2022/lib/features/data-table/cells/table-cell-select/table-cell-select.component.mjs +0 -58
  19. package/esm2022/lib/features/data-table/cells/table-cell-token/table-cell-token.component.mjs +0 -123
  20. package/esm2022/lib/features/data-table/column-headers/table-column-default/table-column-default.component.mjs +0 -268
  21. package/esm2022/lib/features/data-table/column-headers/table-column-filter/table-column-filter.component.mjs +0 -93
  22. package/esm2022/lib/features/data-table/column-headers/table-column-menu/table-column-menu.component.mjs +0 -37
  23. package/esm2022/lib/features/data-table/column-headers/table-column-select/table-column-select.component.mjs +0 -33
  24. package/esm2022/lib/features/data-table/data-table-filter.service.mjs +0 -138
  25. package/esm2022/lib/features/data-table/data-table.component.mjs +0 -918
  26. package/esm2022/lib/features/data-table/data-table.service.mjs +0 -98
  27. package/esm2022/lib/features/data-table/table-filter-bar/filter-bar.component.mjs +0 -108
  28. package/esm2022/lib/features/data-table/table-hidden-columns-bar/hidden-columns-bar.component.mjs +0 -26
  29. package/esm2022/lib/features/data-table/tooltips/os-tooltip.component.mjs +0 -29
  30. package/esm2022/lib/features/data-table/tooltips/sdk-tooltip.component.mjs +0 -34
  31. package/esm2022/lib/features/dynamic-widgets/boolean/boolean-toggle-input.component.mjs +0 -72
  32. package/esm2022/lib/features/dynamic-widgets/checkbox-list/checkbox-list-input.component.mjs +0 -134
  33. package/esm2022/lib/features/dynamic-widgets/forwarding-config/forwarding-config.component.mjs +0 -189
  34. package/esm2022/lib/features/dynamic-widgets/forwarding-config/forwarding-config.service.mjs +0 -50
  35. package/esm2022/lib/features/dynamic-widgets/number/number-input.component.mjs +0 -95
  36. package/esm2022/lib/features/dynamic-widgets/object/object.component.mjs +0 -121
  37. package/esm2022/lib/features/dynamic-widgets/password/password-input.component.mjs +0 -83
  38. package/esm2022/lib/features/dynamic-widgets/port-ranges/port-ranges.component.mjs +0 -100
  39. package/esm2022/lib/features/dynamic-widgets/protocol-address-port/protocol-address-port-input.component.mjs +0 -201
  40. package/esm2022/lib/features/dynamic-widgets/selector/selector-input.component.mjs +0 -166
  41. package/esm2022/lib/features/dynamic-widgets/string/string-input.component.mjs +0 -108
  42. package/esm2022/lib/features/dynamic-widgets/text-list/text-list-input.component.mjs +0 -126
  43. package/esm2022/lib/features/extendable/extendable.component.mjs +0 -55
  44. package/esm2022/lib/features/extendable/extensions-noop.service.mjs +0 -52
  45. package/esm2022/lib/features/header-bar/header-bar.component.mjs +0 -105
  46. package/esm2022/lib/features/json-view/json-view.component.mjs +0 -212
  47. package/esm2022/lib/features/list-page-features/list-page-form/list-page-form.component.mjs +0 -138
  48. package/esm2022/lib/features/list-page-features/list-page-header/list-page-header.component.mjs +0 -66
  49. package/esm2022/lib/features/loading-indicator/loading-indicator.component.mjs +0 -29
  50. package/esm2022/lib/features/login/login-dialog.component.mjs +0 -121
  51. package/esm2022/lib/features/messaging/growler.component.mjs +0 -62
  52. package/esm2022/lib/features/messaging/growler.model.mjs +0 -24
  53. package/esm2022/lib/features/messaging/growler.module.mjs +0 -34
  54. package/esm2022/lib/features/messaging/growler.service.mjs +0 -71
  55. package/esm2022/lib/features/messaging/logger.service.mjs +0 -174
  56. package/esm2022/lib/features/multi-action-button/multi-action-button.component.mjs +0 -30
  57. package/esm2022/lib/features/no-items/no-items.component.mjs +0 -46
  58. package/esm2022/lib/features/overrides/overrides.component.mjs +0 -118
  59. package/esm2022/lib/features/overrides/overrides.service.mjs +0 -114
  60. package/esm2022/lib/features/preview-list/preview-list.component.mjs +0 -151
  61. package/esm2022/lib/features/preview-selections/preview-selections.component.mjs +0 -114
  62. package/esm2022/lib/features/progress-meter/progress-meter.component.mjs +0 -43
  63. package/esm2022/lib/features/progress-wizard/progress-wizard.component.mjs +0 -90
  64. package/esm2022/lib/features/projectable-forms/api-session/api-session-form.component.mjs +0 -143
  65. package/esm2022/lib/features/projectable-forms/api-session/api-session-form.service.mjs +0 -118
  66. package/esm2022/lib/features/projectable-forms/auth-policy/auth-policy-form.component.mjs +0 -337
  67. package/esm2022/lib/features/projectable-forms/auth-policy/auth-policy-form.service.mjs +0 -114
  68. package/esm2022/lib/features/projectable-forms/certificate-authority/certificate-authority-form.component.mjs +0 -399
  69. package/esm2022/lib/features/projectable-forms/certificate-authority/certificate-authority-form.service.mjs +0 -95
  70. package/esm2022/lib/features/projectable-forms/certificate-authority/verify-certificate/verify-certificate.component.mjs +0 -217
  71. package/esm2022/lib/features/projectable-forms/certificate-authority/verify-certificate/verify-certificate.service.mjs +0 -54
  72. package/esm2022/lib/features/projectable-forms/config-type/config-type-form.component.mjs +0 -244
  73. package/esm2022/lib/features/projectable-forms/config-type/config-type-form.service.mjs +0 -92
  74. package/esm2022/lib/features/projectable-forms/configuration/configuration-form.component.mjs +0 -275
  75. package/esm2022/lib/features/projectable-forms/configuration/configuration.service.mjs +0 -137
  76. package/esm2022/lib/features/projectable-forms/edge-router/edge-router-form.component.mjs +0 -231
  77. package/esm2022/lib/features/projectable-forms/edge-router/edge-router-form.service.mjs +0 -118
  78. package/esm2022/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.component.mjs +0 -277
  79. package/esm2022/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.service.mjs +0 -188
  80. package/esm2022/lib/features/projectable-forms/form-field-container/form-field-container.component.mjs +0 -101
  81. package/esm2022/lib/features/projectable-forms/form-field-toggle/form-field-toggle.component.mjs +0 -54
  82. package/esm2022/lib/features/projectable-forms/form-header/form-header.component.mjs +0 -135
  83. package/esm2022/lib/features/projectable-forms/identity/identity-form.component.mjs +0 -471
  84. package/esm2022/lib/features/projectable-forms/identity/identity-form.service.mjs +0 -131
  85. package/esm2022/lib/features/projectable-forms/jwt-signer/jwt-signer-form.component.mjs +0 -533
  86. package/esm2022/lib/features/projectable-forms/jwt-signer/jwt-signer-form.service.mjs +0 -79
  87. package/esm2022/lib/features/projectable-forms/posture-check/posture-check-form.component.mjs +0 -437
  88. package/esm2022/lib/features/projectable-forms/posture-check/posture-check-form.service.mjs +0 -81
  89. package/esm2022/lib/features/projectable-forms/projectable-form.class.mjs +0 -315
  90. package/esm2022/lib/features/projectable-forms/service/service-form.component.mjs +0 -330
  91. package/esm2022/lib/features/projectable-forms/service/service-form.service.mjs +0 -591
  92. package/esm2022/lib/features/projectable-forms/service/simple-service/simple-service.component.mjs +0 -1036
  93. package/esm2022/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.component.mjs +0 -275
  94. package/esm2022/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.service.mjs +0 -172
  95. package/esm2022/lib/features/projectable-forms/service-policy/service-policy-form.component.mjs +0 -279
  96. package/esm2022/lib/features/projectable-forms/service-policy/service-policy-form.service.mjs +0 -230
  97. package/esm2022/lib/features/projectable-forms/session/session-form.component.mjs +0 -213
  98. package/esm2022/lib/features/projectable-forms/session/session-form.service.mjs +0 -84
  99. package/esm2022/lib/features/projectable-forms/terminator/terminator-form.component.mjs +0 -244
  100. package/esm2022/lib/features/projectable-forms/terminator/terminator-form.service.mjs +0 -130
  101. package/esm2022/lib/features/projectable-forms/transit-router/transit-router-form.component.mjs +0 -224
  102. package/esm2022/lib/features/projectable-forms/transit-router/transit-router-form.service.mjs +0 -118
  103. package/esm2022/lib/features/qr-code/qr-code.component.mjs +0 -166
  104. package/esm2022/lib/features/quick-add/quick-add.component.mjs +0 -50
  105. package/esm2022/lib/features/reset-enrollment/reset-enrollment.component.mjs +0 -86
  106. package/esm2022/lib/features/reset-enrollment/reset-enrollment.service.mjs +0 -61
  107. package/esm2022/lib/features/side-modal/side-modal.component.mjs +0 -45
  108. package/esm2022/lib/features/side-navigator/side-navigator.component.mjs +0 -127
  109. package/esm2022/lib/features/sidebars/side-navbar/side-navbar.component.mjs +0 -54
  110. package/esm2022/lib/features/tag-selector/tag-selector.component.mjs +0 -291
  111. package/esm2022/lib/features/visualizer/identity-service-path/identity-service-path.component.mjs +0 -586
  112. package/esm2022/lib/features/visualizer/identity-service-path/identity-service-path.helper.mjs +0 -373
  113. package/esm2022/lib/features/visualizer/network-visualizer/network-visualizer.component.mjs +0 -1706
  114. package/esm2022/lib/features/visualizer/network-visualizer/network-visualizer.helper.mjs +0 -591
  115. package/esm2022/lib/features/visualizer/network-visualizer/network-visualizer.treenodeprocessor.mjs +0 -883
  116. package/esm2022/lib/features/visualizer/visualizer-service.class.mjs +0 -32
  117. package/esm2022/lib/models/api-session.mjs +0 -7
  118. package/esm2022/lib/models/auth-policy.mjs +0 -31
  119. package/esm2022/lib/models/certificate-authority.mjs +0 -16
  120. package/esm2022/lib/models/config-type.mjs +0 -10
  121. package/esm2022/lib/models/config.mjs +0 -10
  122. package/esm2022/lib/models/edge-router-policy.mjs +0 -11
  123. package/esm2022/lib/models/edge-router.mjs +0 -13
  124. package/esm2022/lib/models/identity.mjs +0 -34
  125. package/esm2022/lib/models/jwt-signer.mjs +0 -20
  126. package/esm2022/lib/models/posture-check.mjs +0 -29
  127. package/esm2022/lib/models/service-edge-router-policy.mjs +0 -11
  128. package/esm2022/lib/models/service-policy.mjs +0 -13
  129. package/esm2022/lib/models/service.mjs +0 -12
  130. package/esm2022/lib/models/session.mjs +0 -7
  131. package/esm2022/lib/models/terminator.mjs +0 -14
  132. package/esm2022/lib/pages/api-sessions/api-sessions-page.component.mjs +0 -112
  133. package/esm2022/lib/pages/api-sessions/api-sessions-page.service.mjs +0 -235
  134. package/esm2022/lib/pages/attributes/attributes.component.mjs +0 -104
  135. package/esm2022/lib/pages/auth-policies/auth-policies-page.component.mjs +0 -120
  136. package/esm2022/lib/pages/auth-policies/auth-policies-page.service.mjs +0 -215
  137. package/esm2022/lib/pages/callback/callback.component.mjs +0 -155
  138. package/esm2022/lib/pages/certificate-authorities/certificate-authorities-page.component.mjs +0 -119
  139. package/esm2022/lib/pages/certificate-authorities/certificate-authorities-page.service.mjs +0 -240
  140. package/esm2022/lib/pages/config-types/config-types-page.component.mjs +0 -130
  141. package/esm2022/lib/pages/config-types/config-types-page.service.mjs +0 -134
  142. package/esm2022/lib/pages/configurations/configurations-page.component.mjs +0 -134
  143. package/esm2022/lib/pages/configurations/configurations-page.service.mjs +0 -251
  144. package/esm2022/lib/pages/edge-router-policies/edge-router-policies-page.component.mjs +0 -128
  145. package/esm2022/lib/pages/edge-router-policies/edge-router-policies-page.service.mjs +0 -407
  146. package/esm2022/lib/pages/edge-routers/edge-routers-page.component.mjs +0 -136
  147. package/esm2022/lib/pages/edge-routers/edge-routers-page.service.mjs +0 -354
  148. package/esm2022/lib/pages/geolocate/geolocate.component.mjs +0 -130
  149. package/esm2022/lib/pages/identities/identities-page.component.mjs +0 -221
  150. package/esm2022/lib/pages/identities/identities-page.service.mjs +0 -591
  151. package/esm2022/lib/pages/jwt-signers/jwt-signers-page.component.mjs +0 -160
  152. package/esm2022/lib/pages/jwt-signers/jwt-signers-page.service.mjs +0 -177
  153. package/esm2022/lib/pages/posture-checks/posture-checks-page.component.mjs +0 -103
  154. package/esm2022/lib/pages/posture-checks/posture-checks-page.service.mjs +0 -200
  155. package/esm2022/lib/pages/profile/profile.component.mjs +0 -58
  156. package/esm2022/lib/pages/service-edge-router-policies/service-edge-router-policies-page.component.mjs +0 -122
  157. package/esm2022/lib/pages/service-edge-router-policies/service-edge-router-policies-page.service.mjs +0 -367
  158. package/esm2022/lib/pages/service-policies/service-policies-page.component.mjs +0 -124
  159. package/esm2022/lib/pages/service-policies/service-policies-page.service.mjs +0 -446
  160. package/esm2022/lib/pages/services/services-page.component.mjs +0 -218
  161. package/esm2022/lib/pages/services/services-page.service.mjs +0 -378
  162. package/esm2022/lib/pages/sessions/sessions-page.component.mjs +0 -112
  163. package/esm2022/lib/pages/sessions/sessions-page.service.mjs +0 -228
  164. package/esm2022/lib/pages/settings/settings.component.mjs +0 -61
  165. package/esm2022/lib/pages/terminators/terminators-page.component.mjs +0 -97
  166. package/esm2022/lib/pages/terminators/terminators-page.service.mjs +0 -235
  167. package/esm2022/lib/pages/transit-routers/transit-routers-page.component.mjs +0 -129
  168. package/esm2022/lib/pages/transit-routers/transit-routers-page.service.mjs +0 -248
  169. package/esm2022/lib/safe.pipe.mjs +0 -18
  170. package/esm2022/lib/services/auth.service.mjs +0 -94
  171. package/esm2022/lib/services/console-events.service.mjs +0 -20
  172. package/esm2022/lib/services/csv-download.service.mjs +0 -91
  173. package/esm2022/lib/services/deactivate-guard.service.mjs +0 -17
  174. package/esm2022/lib/services/login-service.class.mjs +0 -47
  175. package/esm2022/lib/services/node-data.service.mjs +0 -397
  176. package/esm2022/lib/services/noop-login.service.mjs +0 -41
  177. package/esm2022/lib/services/schema.service.mjs +0 -807
  178. package/esm2022/lib/services/settings-service.class.mjs +0 -120
  179. package/esm2022/lib/services/settings.service.mjs +0 -203
  180. package/esm2022/lib/services/tab-name.service.mjs +0 -76
  181. package/esm2022/lib/services/validation.service.mjs +0 -156
  182. package/esm2022/lib/services/ziti-controller-data.service.mjs +0 -340
  183. package/esm2022/lib/services/ziti-data.service.mjs +0 -100
  184. package/esm2022/lib/services/ziti-domain-controller.service.mjs +0 -3
  185. package/esm2022/lib/shared/list-page-component.class.mjs +0 -186
  186. package/esm2022/lib/shared/list-page-service.class.mjs +0 -244
  187. package/esm2022/lib/urls.mjs +0 -34
  188. package/esm2022/lib/zac-routing.module.mjs +0 -34
  189. package/esm2022/lib/ziti-console-lib.module.mjs +0 -538
  190. package/esm2022/lib/ziti-console.constants.mjs +0 -20
  191. package/esm2022/openziti-ziti-console-lib.mjs +0 -5
  192. package/esm2022/public-api.mjs +0 -130
  193. package/lib/ZAC_VERSION.d.ts +0 -4
  194. package/lib/ZAC_VERSION.d.ts.map +0 -1
  195. package/lib/app.initializer.d.ts +0 -3
  196. package/lib/app.initializer.d.ts.map +0 -1
  197. package/lib/default-app-config.d.ts +0 -9
  198. package/lib/default-app-config.d.ts.map +0 -1
  199. package/lib/features/card/card.component.d.ts +0 -13
  200. package/lib/features/card/card.component.d.ts.map +0 -1
  201. package/lib/features/card-list/card-list.component.d.ts +0 -27
  202. package/lib/features/card-list/card-list.component.d.ts.map +0 -1
  203. package/lib/features/config-editor/config-editor.component.d.ts +0 -50
  204. package/lib/features/config-editor/config-editor.component.d.ts.map +0 -1
  205. package/lib/features/confirm/confirm.component.d.ts +0 -34
  206. package/lib/features/confirm/confirm.component.d.ts.map +0 -1
  207. package/lib/features/creation-summary-dialog/creation-summary-dialog.component.d.ts +0 -32
  208. package/lib/features/creation-summary-dialog/creation-summary-dialog.component.d.ts.map +0 -1
  209. package/lib/features/custom-tags/custom-tags.component.d.ts +0 -37
  210. package/lib/features/custom-tags/custom-tags.component.d.ts.map +0 -1
  211. package/lib/features/data-table/cells/table-cell-menu/table-cell-menu.component.d.ts +0 -16
  212. package/lib/features/data-table/cells/table-cell-menu/table-cell-menu.component.d.ts.map +0 -1
  213. package/lib/features/data-table/cells/table-cell-name/table-cell-name.component.d.ts +0 -20
  214. package/lib/features/data-table/cells/table-cell-name/table-cell-name.component.d.ts.map +0 -1
  215. package/lib/features/data-table/cells/table-cell-select/table-cell-select.component.d.ts +0 -15
  216. package/lib/features/data-table/cells/table-cell-select/table-cell-select.component.d.ts.map +0 -1
  217. package/lib/features/data-table/cells/table-cell-token/table-cell-token.component.d.ts +0 -22
  218. package/lib/features/data-table/cells/table-cell-token/table-cell-token.component.d.ts.map +0 -1
  219. package/lib/features/data-table/column-headers/table-column-default/table-column-default.component.d.ts +0 -52
  220. package/lib/features/data-table/column-headers/table-column-default/table-column-default.component.d.ts.map +0 -1
  221. package/lib/features/data-table/column-headers/table-column-filter/table-column-filter.component.d.ts +0 -27
  222. package/lib/features/data-table/column-headers/table-column-filter/table-column-filter.component.d.ts.map +0 -1
  223. package/lib/features/data-table/column-headers/table-column-menu/table-column-menu.component.d.ts +0 -19
  224. package/lib/features/data-table/column-headers/table-column-menu/table-column-menu.component.d.ts.map +0 -1
  225. package/lib/features/data-table/column-headers/table-column-select/table-column-select.component.d.ts +0 -15
  226. package/lib/features/data-table/column-headers/table-column-select/table-column-select.component.d.ts.map +0 -1
  227. package/lib/features/data-table/data-table-filter.service.d.ts +0 -37
  228. package/lib/features/data-table/data-table-filter.service.d.ts.map +0 -1
  229. package/lib/features/data-table/data-table.component.d.ts +0 -164
  230. package/lib/features/data-table/data-table.component.d.ts.map +0 -1
  231. package/lib/features/data-table/data-table.service.d.ts +0 -20
  232. package/lib/features/data-table/data-table.service.d.ts.map +0 -1
  233. package/lib/features/data-table/table-filter-bar/filter-bar.component.d.ts +0 -25
  234. package/lib/features/data-table/table-filter-bar/filter-bar.component.d.ts.map +0 -1
  235. package/lib/features/data-table/table-hidden-columns-bar/hidden-columns-bar.component.d.ts +0 -10
  236. package/lib/features/data-table/table-hidden-columns-bar/hidden-columns-bar.component.d.ts.map +0 -1
  237. package/lib/features/data-table/tooltips/os-tooltip.component.d.ts +0 -15
  238. package/lib/features/data-table/tooltips/os-tooltip.component.d.ts.map +0 -1
  239. package/lib/features/data-table/tooltips/sdk-tooltip.component.d.ts +0 -15
  240. package/lib/features/data-table/tooltips/sdk-tooltip.component.d.ts.map +0 -1
  241. package/lib/features/dynamic-widgets/boolean/boolean-toggle-input.component.d.ts +0 -19
  242. package/lib/features/dynamic-widgets/boolean/boolean-toggle-input.component.d.ts.map +0 -1
  243. package/lib/features/dynamic-widgets/checkbox-list/checkbox-list-input.component.d.ts +0 -28
  244. package/lib/features/dynamic-widgets/checkbox-list/checkbox-list-input.component.d.ts.map +0 -1
  245. package/lib/features/dynamic-widgets/forwarding-config/forwarding-config.component.d.ts +0 -50
  246. package/lib/features/dynamic-widgets/forwarding-config/forwarding-config.component.d.ts.map +0 -1
  247. package/lib/features/dynamic-widgets/forwarding-config/forwarding-config.service.d.ts +0 -14
  248. package/lib/features/dynamic-widgets/forwarding-config/forwarding-config.service.d.ts.map +0 -1
  249. package/lib/features/dynamic-widgets/number/number-input.component.d.ts +0 -23
  250. package/lib/features/dynamic-widgets/number/number-input.component.d.ts.map +0 -1
  251. package/lib/features/dynamic-widgets/object/object.component.d.ts +0 -26
  252. package/lib/features/dynamic-widgets/object/object.component.d.ts.map +0 -1
  253. package/lib/features/dynamic-widgets/password/password-input.component.d.ts +0 -24
  254. package/lib/features/dynamic-widgets/password/password-input.component.d.ts.map +0 -1
  255. package/lib/features/dynamic-widgets/port-ranges/port-ranges.component.d.ts +0 -22
  256. package/lib/features/dynamic-widgets/port-ranges/port-ranges.component.d.ts.map +0 -1
  257. package/lib/features/dynamic-widgets/protocol-address-port/protocol-address-port-input.component.d.ts +0 -60
  258. package/lib/features/dynamic-widgets/protocol-address-port/protocol-address-port-input.component.d.ts.map +0 -1
  259. package/lib/features/dynamic-widgets/selector/selector-input.component.d.ts +0 -30
  260. package/lib/features/dynamic-widgets/selector/selector-input.component.d.ts.map +0 -1
  261. package/lib/features/dynamic-widgets/string/string-input.component.d.ts +0 -27
  262. package/lib/features/dynamic-widgets/string/string-input.component.d.ts.map +0 -1
  263. package/lib/features/dynamic-widgets/text-list/text-list-input.component.d.ts +0 -26
  264. package/lib/features/dynamic-widgets/text-list/text-list-input.component.d.ts.map +0 -1
  265. package/lib/features/extendable/extendable.component.d.ts +0 -15
  266. package/lib/features/extendable/extendable.component.d.ts.map +0 -1
  267. package/lib/features/extendable/extensions-noop.service.d.ts +0 -35
  268. package/lib/features/extendable/extensions-noop.service.d.ts.map +0 -1
  269. package/lib/features/header-bar/header-bar.component.d.ts +0 -29
  270. package/lib/features/header-bar/header-bar.component.d.ts.map +0 -1
  271. package/lib/features/json-view/json-view.component.d.ts +0 -40
  272. package/lib/features/json-view/json-view.component.d.ts.map +0 -1
  273. package/lib/features/list-page-features/list-page-form/list-page-form.component.d.ts +0 -35
  274. package/lib/features/list-page-features/list-page-form/list-page-form.component.d.ts.map +0 -1
  275. package/lib/features/list-page-features/list-page-header/list-page-header.component.d.ts +0 -14
  276. package/lib/features/list-page-features/list-page-header/list-page-header.component.d.ts.map +0 -1
  277. package/lib/features/loading-indicator/loading-indicator.component.d.ts +0 -11
  278. package/lib/features/loading-indicator/loading-indicator.component.d.ts.map +0 -1
  279. package/lib/features/login/login-dialog.component.d.ts +0 -30
  280. package/lib/features/login/login-dialog.component.d.ts.map +0 -1
  281. package/lib/features/messaging/growler.component.d.ts +0 -19
  282. package/lib/features/messaging/growler.component.d.ts.map +0 -1
  283. package/lib/features/messaging/growler.model.d.ts +0 -8
  284. package/lib/features/messaging/growler.model.d.ts.map +0 -1
  285. package/lib/features/messaging/growler.module.d.ts +0 -10
  286. package/lib/features/messaging/growler.module.d.ts.map +0 -1
  287. package/lib/features/messaging/growler.service.d.ts +0 -18
  288. package/lib/features/messaging/growler.service.d.ts.map +0 -1
  289. package/lib/features/messaging/logger.service.d.ts +0 -27
  290. package/lib/features/messaging/logger.service.d.ts.map +0 -1
  291. package/lib/features/multi-action-button/multi-action-button.component.d.ts +0 -13
  292. package/lib/features/multi-action-button/multi-action-button.component.d.ts.map +0 -1
  293. package/lib/features/no-items/no-items.component.d.ts +0 -19
  294. package/lib/features/no-items/no-items.component.d.ts.map +0 -1
  295. package/lib/features/overrides/overrides.component.d.ts +0 -33
  296. package/lib/features/overrides/overrides.component.d.ts.map +0 -1
  297. package/lib/features/overrides/overrides.service.d.ts +0 -18
  298. package/lib/features/overrides/overrides.service.d.ts.map +0 -1
  299. package/lib/features/preview-list/preview-list.component.d.ts +0 -34
  300. package/lib/features/preview-list/preview-list.component.d.ts.map +0 -1
  301. package/lib/features/preview-selections/preview-selections.component.d.ts +0 -39
  302. package/lib/features/preview-selections/preview-selections.component.d.ts.map +0 -1
  303. package/lib/features/progress-meter/progress-meter.component.d.ts +0 -19
  304. package/lib/features/progress-meter/progress-meter.component.d.ts.map +0 -1
  305. package/lib/features/progress-wizard/progress-wizard.component.d.ts +0 -31
  306. package/lib/features/progress-wizard/progress-wizard.component.d.ts.map +0 -1
  307. package/lib/features/projectable-forms/api-session/api-session-form.component.d.ts +0 -50
  308. package/lib/features/projectable-forms/api-session/api-session-form.component.d.ts.map +0 -1
  309. package/lib/features/projectable-forms/api-session/api-session-form.service.d.ts +0 -27
  310. package/lib/features/projectable-forms/api-session/api-session-form.service.d.ts.map +0 -1
  311. package/lib/features/projectable-forms/auth-policy/auth-policy-form.component.d.ts +0 -74
  312. package/lib/features/projectable-forms/auth-policy/auth-policy-form.component.d.ts.map +0 -1
  313. package/lib/features/projectable-forms/auth-policy/auth-policy-form.service.d.ts +0 -38
  314. package/lib/features/projectable-forms/auth-policy/auth-policy-form.service.d.ts.map +0 -1
  315. package/lib/features/projectable-forms/certificate-authority/certificate-authority-form.component.d.ts +0 -80
  316. package/lib/features/projectable-forms/certificate-authority/certificate-authority-form.component.d.ts.map +0 -1
  317. package/lib/features/projectable-forms/certificate-authority/certificate-authority-form.service.d.ts +0 -37
  318. package/lib/features/projectable-forms/certificate-authority/certificate-authority-form.service.d.ts.map +0 -1
  319. package/lib/features/projectable-forms/certificate-authority/verify-certificate/verify-certificate.component.d.ts +0 -62
  320. package/lib/features/projectable-forms/certificate-authority/verify-certificate/verify-certificate.component.d.ts.map +0 -1
  321. package/lib/features/projectable-forms/certificate-authority/verify-certificate/verify-certificate.service.d.ts +0 -28
  322. package/lib/features/projectable-forms/certificate-authority/verify-certificate/verify-certificate.service.d.ts.map +0 -1
  323. package/lib/features/projectable-forms/config-type/config-type-form.component.d.ts +0 -63
  324. package/lib/features/projectable-forms/config-type/config-type-form.component.d.ts.map +0 -1
  325. package/lib/features/projectable-forms/config-type/config-type-form.service.d.ts +0 -27
  326. package/lib/features/projectable-forms/config-type/config-type-form.service.d.ts.map +0 -1
  327. package/lib/features/projectable-forms/configuration/configuration-form.component.d.ts +0 -62
  328. package/lib/features/projectable-forms/configuration/configuration-form.component.d.ts.map +0 -1
  329. package/lib/features/projectable-forms/configuration/configuration.service.d.ts +0 -33
  330. package/lib/features/projectable-forms/configuration/configuration.service.d.ts.map +0 -1
  331. package/lib/features/projectable-forms/edge-router/edge-router-form.component.d.ts +0 -53
  332. package/lib/features/projectable-forms/edge-router/edge-router-form.component.d.ts.map +0 -1
  333. package/lib/features/projectable-forms/edge-router/edge-router-form.service.d.ts +0 -29
  334. package/lib/features/projectable-forms/edge-router/edge-router-form.service.d.ts.map +0 -1
  335. package/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.component.d.ts +0 -54
  336. package/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.component.d.ts.map +0 -1
  337. package/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.service.d.ts +0 -40
  338. package/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.service.d.ts.map +0 -1
  339. package/lib/features/projectable-forms/form-field-container/form-field-container.component.d.ts +0 -29
  340. package/lib/features/projectable-forms/form-field-container/form-field-container.component.d.ts.map +0 -1
  341. package/lib/features/projectable-forms/form-field-toggle/form-field-toggle.component.d.ts +0 -15
  342. package/lib/features/projectable-forms/form-field-toggle/form-field-toggle.component.d.ts.map +0 -1
  343. package/lib/features/projectable-forms/form-header/form-header.component.d.ts +0 -38
  344. package/lib/features/projectable-forms/form-header/form-header.component.d.ts.map +0 -1
  345. package/lib/features/projectable-forms/identity/identity-form.component.d.ts +0 -93
  346. package/lib/features/projectable-forms/identity/identity-form.component.d.ts.map +0 -1
  347. package/lib/features/projectable-forms/identity/identity-form.service.d.ts +0 -20
  348. package/lib/features/projectable-forms/identity/identity-form.service.d.ts.map +0 -1
  349. package/lib/features/projectable-forms/jwt-signer/jwt-signer-form.component.d.ts +0 -97
  350. package/lib/features/projectable-forms/jwt-signer/jwt-signer-form.component.d.ts.map +0 -1
  351. package/lib/features/projectable-forms/jwt-signer/jwt-signer-form.service.d.ts +0 -21
  352. package/lib/features/projectable-forms/jwt-signer/jwt-signer-form.service.d.ts.map +0 -1
  353. package/lib/features/projectable-forms/posture-check/posture-check-form.component.d.ts +0 -134
  354. package/lib/features/projectable-forms/posture-check/posture-check-form.component.d.ts.map +0 -1
  355. package/lib/features/projectable-forms/posture-check/posture-check-form.service.d.ts +0 -23
  356. package/lib/features/projectable-forms/posture-check/posture-check-form.service.d.ts.map +0 -1
  357. package/lib/features/projectable-forms/projectable-form.class.d.ts +0 -92
  358. package/lib/features/projectable-forms/projectable-form.class.d.ts.map +0 -1
  359. package/lib/features/projectable-forms/service/service-form.component.d.ts +0 -70
  360. package/lib/features/projectable-forms/service/service-form.component.d.ts.map +0 -1
  361. package/lib/features/projectable-forms/service/service-form.service.d.ts +0 -123
  362. package/lib/features/projectable-forms/service/service-form.service.d.ts.map +0 -1
  363. package/lib/features/projectable-forms/service/simple-service/simple-service.component.d.ts +0 -173
  364. package/lib/features/projectable-forms/service/simple-service/simple-service.component.d.ts.map +0 -1
  365. package/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.component.d.ts +0 -53
  366. package/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.component.d.ts.map +0 -1
  367. package/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.service.d.ts +0 -38
  368. package/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.service.d.ts.map +0 -1
  369. package/lib/features/projectable-forms/service-policy/service-policy-form.component.d.ts +0 -55
  370. package/lib/features/projectable-forms/service-policy/service-policy-form.component.d.ts.map +0 -1
  371. package/lib/features/projectable-forms/service-policy/service-policy-form.service.d.ts +0 -48
  372. package/lib/features/projectable-forms/service-policy/service-policy-form.service.d.ts.map +0 -1
  373. package/lib/features/projectable-forms/session/session-form.component.d.ts +0 -63
  374. package/lib/features/projectable-forms/session/session-form.component.d.ts.map +0 -1
  375. package/lib/features/projectable-forms/session/session-form.service.d.ts +0 -23
  376. package/lib/features/projectable-forms/session/session-form.service.d.ts.map +0 -1
  377. package/lib/features/projectable-forms/terminator/terminator-form.component.d.ts +0 -58
  378. package/lib/features/projectable-forms/terminator/terminator-form.component.d.ts.map +0 -1
  379. package/lib/features/projectable-forms/terminator/terminator-form.service.d.ts +0 -33
  380. package/lib/features/projectable-forms/terminator/terminator-form.service.d.ts.map +0 -1
  381. package/lib/features/projectable-forms/transit-router/transit-router-form.component.d.ts +0 -50
  382. package/lib/features/projectable-forms/transit-router/transit-router-form.component.d.ts.map +0 -1
  383. package/lib/features/projectable-forms/transit-router/transit-router-form.service.d.ts +0 -27
  384. package/lib/features/projectable-forms/transit-router/transit-router-form.service.d.ts.map +0 -1
  385. package/lib/features/qr-code/qr-code.component.d.ts +0 -45
  386. package/lib/features/qr-code/qr-code.component.d.ts.map +0 -1
  387. package/lib/features/quick-add/quick-add.component.d.ts +0 -15
  388. package/lib/features/quick-add/quick-add.component.d.ts.map +0 -1
  389. package/lib/features/reset-enrollment/reset-enrollment.component.d.ts +0 -27
  390. package/lib/features/reset-enrollment/reset-enrollment.component.d.ts.map +0 -1
  391. package/lib/features/reset-enrollment/reset-enrollment.service.d.ts +0 -13
  392. package/lib/features/reset-enrollment/reset-enrollment.service.d.ts.map +0 -1
  393. package/lib/features/side-modal/side-modal.component.d.ts +0 -15
  394. package/lib/features/side-modal/side-modal.component.d.ts.map +0 -1
  395. package/lib/features/side-navigator/side-navigator.component.d.ts +0 -33
  396. package/lib/features/side-navigator/side-navigator.component.d.ts.map +0 -1
  397. package/lib/features/sidebars/side-navbar/side-navbar.component.d.ts +0 -16
  398. package/lib/features/sidebars/side-navbar/side-navbar.component.d.ts.map +0 -1
  399. package/lib/features/tag-selector/tag-selector.component.d.ts +0 -59
  400. package/lib/features/tag-selector/tag-selector.component.d.ts.map +0 -1
  401. package/lib/features/visualizer/identity-service-path/identity-service-path.component.d.ts +0 -54
  402. package/lib/features/visualizer/identity-service-path/identity-service-path.component.d.ts.map +0 -1
  403. package/lib/features/visualizer/identity-service-path/identity-service-path.helper.d.ts +0 -21
  404. package/lib/features/visualizer/identity-service-path/identity-service-path.helper.d.ts.map +0 -1
  405. package/lib/features/visualizer/network-visualizer/network-visualizer.component.d.ts +0 -146
  406. package/lib/features/visualizer/network-visualizer/network-visualizer.component.d.ts.map +0 -1
  407. package/lib/features/visualizer/network-visualizer/network-visualizer.helper.d.ts +0 -172
  408. package/lib/features/visualizer/network-visualizer/network-visualizer.helper.d.ts.map +0 -1
  409. package/lib/features/visualizer/network-visualizer/network-visualizer.treenodeprocessor.d.ts +0 -35
  410. package/lib/features/visualizer/network-visualizer/network-visualizer.treenodeprocessor.d.ts.map +0 -1
  411. package/lib/features/visualizer/visualizer-service.class.d.ts +0 -10
  412. package/lib/features/visualizer/visualizer-service.class.d.ts.map +0 -1
  413. package/lib/models/api-session.d.ts +0 -18
  414. package/lib/models/api-session.d.ts.map +0 -1
  415. package/lib/models/auth-policy.d.ts +0 -8
  416. package/lib/models/auth-policy.d.ts.map +0 -1
  417. package/lib/models/certificate-authority.d.ts +0 -14
  418. package/lib/models/certificate-authority.d.ts.map +0 -1
  419. package/lib/models/config-type.d.ts +0 -7
  420. package/lib/models/config-type.d.ts.map +0 -1
  421. package/lib/models/config.d.ts +0 -7
  422. package/lib/models/config.d.ts.map +0 -1
  423. package/lib/models/edge-router-policy.d.ts +0 -8
  424. package/lib/models/edge-router-policy.d.ts.map +0 -1
  425. package/lib/models/edge-router.d.ts +0 -10
  426. package/lib/models/edge-router.d.ts.map +0 -1
  427. package/lib/models/identity.d.ts +0 -16
  428. package/lib/models/identity.d.ts.map +0 -1
  429. package/lib/models/jwt-signer.d.ts +0 -17
  430. package/lib/models/jwt-signer.d.ts.map +0 -1
  431. package/lib/models/posture-check.d.ts +0 -17
  432. package/lib/models/posture-check.d.ts.map +0 -1
  433. package/lib/models/service-edge-router-policy.d.ts +0 -8
  434. package/lib/models/service-edge-router-policy.d.ts.map +0 -1
  435. package/lib/models/service-policy.d.ts +0 -10
  436. package/lib/models/service-policy.d.ts.map +0 -1
  437. package/lib/models/service.d.ts +0 -9
  438. package/lib/models/service.d.ts.map +0 -1
  439. package/lib/models/session.d.ts +0 -17
  440. package/lib/models/session.d.ts.map +0 -1
  441. package/lib/models/terminator.d.ts +0 -11
  442. package/lib/models/terminator.d.ts.map +0 -1
  443. package/lib/pages/api-sessions/api-sessions-page.component.d.ts +0 -30
  444. package/lib/pages/api-sessions/api-sessions-page.component.d.ts.map +0 -1
  445. package/lib/pages/api-sessions/api-sessions-page.service.d.ts +0 -31
  446. package/lib/pages/api-sessions/api-sessions-page.service.d.ts.map +0 -1
  447. package/lib/pages/attributes/attributes.component.d.ts +0 -31
  448. package/lib/pages/attributes/attributes.component.d.ts.map +0 -1
  449. package/lib/pages/auth-policies/auth-policies-page.component.d.ts +0 -29
  450. package/lib/pages/auth-policies/auth-policies-page.component.d.ts.map +0 -1
  451. package/lib/pages/auth-policies/auth-policies-page.service.d.ts +0 -34
  452. package/lib/pages/auth-policies/auth-policies-page.service.d.ts.map +0 -1
  453. package/lib/pages/callback/callback.component.d.ts +0 -22
  454. package/lib/pages/callback/callback.component.d.ts.map +0 -1
  455. package/lib/pages/certificate-authorities/certificate-authorities-page.component.d.ts +0 -30
  456. package/lib/pages/certificate-authorities/certificate-authorities-page.component.d.ts.map +0 -1
  457. package/lib/pages/certificate-authorities/certificate-authorities-page.service.d.ts +0 -35
  458. package/lib/pages/certificate-authorities/certificate-authorities-page.service.d.ts.map +0 -1
  459. package/lib/pages/config-types/config-types-page.component.d.ts +0 -31
  460. package/lib/pages/config-types/config-types-page.component.d.ts.map +0 -1
  461. package/lib/pages/config-types/config-types-page.service.d.ts +0 -29
  462. package/lib/pages/config-types/config-types-page.service.d.ts.map +0 -1
  463. package/lib/pages/configurations/configurations-page.component.d.ts +0 -30
  464. package/lib/pages/configurations/configurations-page.component.d.ts.map +0 -1
  465. package/lib/pages/configurations/configurations-page.service.d.ts +0 -80
  466. package/lib/pages/configurations/configurations-page.service.d.ts.map +0 -1
  467. package/lib/pages/edge-router-policies/edge-router-policies-page.component.d.ts +0 -33
  468. package/lib/pages/edge-router-policies/edge-router-policies-page.component.d.ts.map +0 -1
  469. package/lib/pages/edge-router-policies/edge-router-policies-page.service.d.ts +0 -63
  470. package/lib/pages/edge-router-policies/edge-router-policies-page.service.d.ts.map +0 -1
  471. package/lib/pages/edge-routers/edge-routers-page.component.d.ts +0 -36
  472. package/lib/pages/edge-routers/edge-routers-page.component.d.ts.map +0 -1
  473. package/lib/pages/edge-routers/edge-routers-page.service.d.ts +0 -51
  474. package/lib/pages/edge-routers/edge-routers-page.service.d.ts.map +0 -1
  475. package/lib/pages/geolocate/geolocate.component.d.ts +0 -32
  476. package/lib/pages/geolocate/geolocate.component.d.ts.map +0 -1
  477. package/lib/pages/identities/identities-page.component.d.ts +0 -40
  478. package/lib/pages/identities/identities-page.component.d.ts.map +0 -1
  479. package/lib/pages/identities/identities-page.service.d.ts +0 -64
  480. package/lib/pages/identities/identities-page.service.d.ts.map +0 -1
  481. package/lib/pages/jwt-signers/jwt-signers-page.component.d.ts +0 -34
  482. package/lib/pages/jwt-signers/jwt-signers-page.component.d.ts.map +0 -1
  483. package/lib/pages/jwt-signers/jwt-signers-page.service.d.ts +0 -31
  484. package/lib/pages/jwt-signers/jwt-signers-page.service.d.ts.map +0 -1
  485. package/lib/pages/posture-checks/posture-checks-page.component.d.ts +0 -29
  486. package/lib/pages/posture-checks/posture-checks-page.component.d.ts.map +0 -1
  487. package/lib/pages/posture-checks/posture-checks-page.service.d.ts +0 -28
  488. package/lib/pages/posture-checks/posture-checks-page.service.d.ts.map +0 -1
  489. package/lib/pages/profile/profile.component.d.ts +0 -17
  490. package/lib/pages/profile/profile.component.d.ts.map +0 -1
  491. package/lib/pages/service-edge-router-policies/service-edge-router-policies-page.component.d.ts +0 -33
  492. package/lib/pages/service-edge-router-policies/service-edge-router-policies-page.component.d.ts.map +0 -1
  493. package/lib/pages/service-edge-router-policies/service-edge-router-policies-page.service.d.ts +0 -57
  494. package/lib/pages/service-edge-router-policies/service-edge-router-policies-page.service.d.ts.map +0 -1
  495. package/lib/pages/service-policies/service-policies-page.component.d.ts +0 -34
  496. package/lib/pages/service-policies/service-policies-page.component.d.ts.map +0 -1
  497. package/lib/pages/service-policies/service-policies-page.service.d.ts +0 -63
  498. package/lib/pages/service-policies/service-policies-page.service.d.ts.map +0 -1
  499. package/lib/pages/services/services-page.component.d.ts +0 -42
  500. package/lib/pages/services/services-page.component.d.ts.map +0 -1
  501. package/lib/pages/services/services-page.service.d.ts +0 -69
  502. package/lib/pages/services/services-page.service.d.ts.map +0 -1
  503. package/lib/pages/sessions/sessions-page.component.d.ts +0 -30
  504. package/lib/pages/sessions/sessions-page.component.d.ts.map +0 -1
  505. package/lib/pages/sessions/sessions-page.service.d.ts +0 -30
  506. package/lib/pages/sessions/sessions-page.service.d.ts.map +0 -1
  507. package/lib/pages/settings/settings.component.d.ts +0 -23
  508. package/lib/pages/settings/settings.component.d.ts.map +0 -1
  509. package/lib/pages/terminators/terminators-page.component.d.ts +0 -29
  510. package/lib/pages/terminators/terminators-page.component.d.ts.map +0 -1
  511. package/lib/pages/terminators/terminators-page.service.d.ts +0 -32
  512. package/lib/pages/terminators/terminators-page.service.d.ts.map +0 -1
  513. package/lib/pages/transit-routers/transit-routers-page.component.d.ts +0 -35
  514. package/lib/pages/transit-routers/transit-routers-page.component.d.ts.map +0 -1
  515. package/lib/pages/transit-routers/transit-routers-page.service.d.ts +0 -50
  516. package/lib/pages/transit-routers/transit-routers-page.service.d.ts.map +0 -1
  517. package/lib/safe.pipe.d.ts +0 -11
  518. package/lib/safe.pipe.d.ts.map +0 -1
  519. package/lib/services/auth.service.d.ts +0 -21
  520. package/lib/services/auth.service.d.ts.map +0 -1
  521. package/lib/services/console-events.service.d.ts +0 -12
  522. package/lib/services/console-events.service.d.ts.map +0 -1
  523. package/lib/services/csv-download.service.d.ts +0 -11
  524. package/lib/services/csv-download.service.d.ts.map +0 -1
  525. package/lib/services/deactivate-guard.service.d.ts +0 -14
  526. package/lib/services/deactivate-guard.service.d.ts.map +0 -1
  527. package/lib/services/login-service.class.d.ts +0 -30
  528. package/lib/services/login-service.class.d.ts.map +0 -1
  529. package/lib/services/node-data.service.d.ts +0 -38
  530. package/lib/services/node-data.service.d.ts.map +0 -1
  531. package/lib/services/noop-login.service.d.ts +0 -22
  532. package/lib/services/noop-login.service.d.ts.map +0 -1
  533. package/lib/services/schema.service.d.ts +0 -63
  534. package/lib/services/schema.service.d.ts.map +0 -1
  535. package/lib/services/settings-service.class.d.ts +0 -36
  536. package/lib/services/settings-service.class.d.ts.map +0 -1
  537. package/lib/services/settings.service.d.ts +0 -20
  538. package/lib/services/settings.service.d.ts.map +0 -1
  539. package/lib/services/tab-name.service.d.ts +0 -20
  540. package/lib/services/tab-name.service.d.ts.map +0 -1
  541. package/lib/services/validation.service.d.ts +0 -20
  542. package/lib/services/validation.service.d.ts.map +0 -1
  543. package/lib/services/ziti-controller-data.service.d.ts +0 -36
  544. package/lib/services/ziti-controller-data.service.d.ts.map +0 -1
  545. package/lib/services/ziti-data.service.d.ts +0 -49
  546. package/lib/services/ziti-data.service.d.ts.map +0 -1
  547. package/lib/services/ziti-domain-controller.service.d.ts +0 -13
  548. package/lib/services/ziti-domain-controller.service.d.ts.map +0 -1
  549. package/lib/shared/list-page-component.class.d.ts +0 -57
  550. package/lib/shared/list-page-component.class.d.ts.map +0 -1
  551. package/lib/shared/list-page-service.class.d.ts +0 -81
  552. package/lib/shared/list-page-service.class.d.ts.map +0 -1
  553. package/lib/urls.d.ts +0 -34
  554. package/lib/urls.d.ts.map +0 -1
  555. package/lib/zac-routing.module.d.ts +0 -8
  556. package/lib/zac-routing.module.d.ts.map +0 -1
  557. package/lib/ziti-console-lib.module.d.ts +0 -121
  558. package/lib/ziti-console-lib.module.d.ts.map +0 -1
  559. package/lib/ziti-console.constants.d.ts +0 -5
  560. package/lib/ziti-console.constants.d.ts.map +0 -1
  561. package/openziti-ziti-console-lib.d.ts.map +0 -1
  562. package/public-api.d.ts +0 -127
  563. package/public-api.d.ts.map +0 -1
@@ -1,918 +0,0 @@
1
- /*
2
- Copyright NetFoundry Inc.
3
-
4
- Licensed under the Apache License, Version 2.0 (the "License");
5
- you may not use this file except in compliance with the License.
6
- You may obtain a copy of the License at
7
-
8
- https://www.apache.org/licenses/LICENSE-2.0
9
-
10
- Unless required by applicable law or agreed to in writing, software
11
- distributed under the License is distributed on an "AS IS" BASIS,
12
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- See the License for the specific language governing permissions and
14
- limitations under the License.
15
- */
16
- import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
17
- // Import the resized event model
18
- import $ from 'jquery';
19
- import _ from 'lodash';
20
- import moment from 'moment';
21
- import { TableColumnDefaultComponent } from "./column-headers/table-column-default/table-column-default.component";
22
- import { TableColumnSelectComponent } from "./column-headers/table-column-select/table-column-select.component";
23
- import { TableColumnMenuComponent } from "./column-headers/table-column-menu/table-column-menu.component";
24
- import { TableCellSelectComponent } from "./cells/table-cell-select/table-cell-select.component";
25
- import { TableCellMenuComponent } from "./cells/table-cell-menu/table-cell-menu.component";
26
- import { TableCellTokenComponent } from "./cells/table-cell-token/table-cell-token.component";
27
- import { Subscription } from "rxjs";
28
- import * as i0 from "@angular/core";
29
- import * as i1 from "./data-table.service";
30
- import * as i2 from "./data-table-filter.service";
31
- import * as i3 from "@angular/common";
32
- import * as i4 from "@angular/forms";
33
- import * as i5 from "primeng/api";
34
- import * as i6 from "primeng/calendar";
35
- import * as i7 from "ag-grid-angular";
36
- import * as i8 from "ng-click-outside";
37
- import * as i9 from "./table-filter-bar/filter-bar.component";
38
- import * as i10 from "./table-hidden-columns-bar/hidden-columns-bar.component";
39
- import * as i11 from "../no-items/no-items.component";
40
- import * as i12 from "../tag-selector/tag-selector.component";
41
- export class DataTableComponent {
42
- set tableId(id) {
43
- this.svc.tableId = id;
44
- this.updateEntityTypeLabel();
45
- }
46
- set view(value) {
47
- this._view = value;
48
- }
49
- constructor(svc, tableFilterService) {
50
- this.svc = svc;
51
- this.tableFilterService = tableFilterService;
52
- this.options = { noSelect: false, noMenu: false };
53
- this.filterApplied = false;
54
- this.menuItems = [];
55
- this.headerActions = [];
56
- this.noItemsClass = 'background-image: url("/assets/svgs/No_Clients.svg")';
57
- this.entityTypeName = 'Identities';
58
- this.showNoItemsAdd = true;
59
- this.currentPage = 1;
60
- this.noItemsImage = 'nodata';
61
- this.rowHeight = this.remToPx(3.125);
62
- this.filterName = 'name';
63
- this.filterColumn = 'name';
64
- this.actionRequested = new EventEmitter();
65
- // @Output() filterChanged = new EventEmitter();
66
- this.gridReady = new EventEmitter();
67
- this.dragStart = new EventEmitter();
68
- this.dragLeave = new EventEmitter();
69
- this.pageChanged = new EventEmitter();
70
- this._view = 'list';
71
- this.filterOptions = [];
72
- this.appendAttributeHash = true;
73
- this.attributesColumn = '';
74
- this.dateTimeColumn = '';
75
- this.dateTimeFilterLabel = '';
76
- this.selectedRange = '';
77
- this.resizeHandlerInit = false;
78
- this.selectedItem = {
79
- actionList: [],
80
- };
81
- this.entityTypeLabel = '';
82
- this.columnFilters = {};
83
- this.roleAttributes = [];
84
- this.namedAttributes = [];
85
- this.selectedRoleAttributes = [];
86
- this.selectedNamedAttributes = [];
87
- this.currentHeaderComponentParams = {};
88
- this.subscription = new Subscription();
89
- this.menuColumnDefinition = {
90
- colId: 'ziti-ag-menu',
91
- field: 'ziti-ag-menu',
92
- resizable: false,
93
- width: this.remToPx(3.125),
94
- sortable: false,
95
- lockPosition: true,
96
- suppressMovable: true,
97
- headerClass: 'menuHeader',
98
- cellClass: 'tCol cellMenu',
99
- cellRenderer: 'cellMenuComponent',
100
- cellRendererParams: {
101
- openMenu: ($event, item) => {
102
- this.openActionMenu($event, item);
103
- },
104
- closeMenu: (event) => {
105
- this.closeActionMenu();
106
- },
107
- },
108
- suppressSizeToFit: true,
109
- pinned: 'right',
110
- headerComponent: TableColumnMenuComponent,
111
- headerComponentParams: {
112
- openHeaderMenu: ($event) => {
113
- this.openHeaderActionMenu($event);
114
- },
115
- closeMenu: (event) => {
116
- this.closeActionMenu();
117
- },
118
- },
119
- };
120
- this.selectColumnDefinition = {
121
- colId: 'ziti-ag-selected',
122
- field: 'ziti-ag-selected',
123
- suppressSizeToFit: true,
124
- lockPosition: true,
125
- suppressMovable: true,
126
- resizable: false,
127
- pinned: 'left',
128
- width: this.remToPx(3.75),
129
- sortable: false,
130
- headerClass: 'selectHeader',
131
- cellClass: 'tCol',
132
- cellRenderer: 'cellSelectComponent',
133
- cellRendererParams: {
134
- toggleItem: (item) => {
135
- item.selected = !item.selected;
136
- this.svc.gridObj.api.zitiAllToggled = _.every(this.rowData, { selected: true });
137
- _.defer(() => {
138
- this.svc.gridObj.api.refreshCells({ force: true });
139
- });
140
- this.actionRequested.emit({ action: 'toggleItem', item: item });
141
- },
142
- },
143
- headerComponent: TableColumnSelectComponent,
144
- headerComponentParams: {
145
- toggleAll: (selected) => {
146
- if (!this.svc.gridObj) {
147
- return;
148
- }
149
- _.forEach(this.rowData, (row) => {
150
- row.selected = selected;
151
- });
152
- this.actionRequested.emit({ action: 'toggleAll' });
153
- _.defer(() => {
154
- this.svc.gridObj.api.refreshCells({ force: true });
155
- });
156
- },
157
- },
158
- };
159
- this.resizeGridColumnsDebounced = _.debounce(this.svc.resizeGridColumns.bind(this.svc), 20, { leading: true });
160
- this._refreshCellsDebounced = _.debounce(this.svc.refreshCells.bind(this.svc), 50);
161
- this._onColumnsResizedDebounced = _.debounce(this.svc.onColumnsResized.bind(this.svc), 400);
162
- this._saveColumnStateDebounced = _.debounce(this.svc.saveColumnState.bind(this.svc), 400);
163
- }
164
- hideMenuItem(menuItem, selectedItem) {
165
- if (_.isFunction(menuItem.hidden)) {
166
- return menuItem.hidden(selectedItem);
167
- }
168
- else if (_.isBoolean(menuItem.hidden)) {
169
- return menuItem.hidden;
170
- }
171
- else {
172
- return !selectedItem.actionList.includes(menuItem.action);
173
- }
174
- }
175
- set columnDefinitions(value) {
176
- this._columnDefinitions = value;
177
- }
178
- get showFilterBar() {
179
- return this._view !== 'upload' && this._view !== 'process';
180
- }
181
- set refreshCount(value) {
182
- if (!this.svc.gridObj) {
183
- return;
184
- }
185
- _.defer(() => {
186
- this.svc.gridObj.api.redrawRows();
187
- this.svc.gridObj.api.refreshCells({ force: true });
188
- });
189
- }
190
- get showTable() {
191
- const _showTable = this.isLoading || this.filterApplied || this.rowData?.length > 0;
192
- if (_showTable && !this.resizeHandlerInit) {
193
- this._initGridResizeHandler();
194
- }
195
- return _showTable;
196
- }
197
- ngOnInit() {
198
- this.frameworkComponents = {
199
- cellSelectComponent: TableCellSelectComponent,
200
- cellMenuComponent: TableCellMenuComponent,
201
- cellTokenComponent: TableCellTokenComponent,
202
- headerCellSelectComponent: TableColumnSelectComponent,
203
- headerHeaderMenuComponent: TableColumnMenuComponent,
204
- headerDefaultComponent: TableColumnDefaultComponent,
205
- };
206
- this.autoGroupColumnDef = {
207
- field: 'processTree',
208
- headerName: 'Process Name',
209
- cellRenderer: 'cellResourceStatusComponent',
210
- resizable: true,
211
- cellRendererParams: { resourceType: 'process-execution' },
212
- headerComponentFramework: TableColumnDefaultComponent,
213
- };
214
- if (this._columnDefinitions) {
215
- this._addColumnEvents();
216
- this._addDefaultColumnDefs();
217
- this._storeInitialColumnDefs();
218
- this._setColumnWidths();
219
- this._setColumnOrderAndVisibility();
220
- this._initColumnVisibility();
221
- this._initGridOptions();
222
- }
223
- }
224
- ngOnChanges(changes) {
225
- if (this.svc.gridObj && changes.rowData) {
226
- this._refreshCellsDebounced(changes.rowData);
227
- }
228
- }
229
- columnVisibilityChanged(event) {
230
- this.setColumnVisibilityColumn(event?.column, event?.visible);
231
- }
232
- openActionMenu(event, item) {
233
- this.selectedItem = item;
234
- this.openMenu = true;
235
- _.delay(() => {
236
- const height = this.contextMenu?.nativeElement?.offsetHeight || 120;
237
- const windowOffset = window.innerHeight - event.clientY;
238
- const menuOffset = windowOffset <= height ? height - windowOffset : 0;
239
- this.menuLeft = event.clientX - 100;
240
- this.menuTop = event.clientY + 5 - menuOffset;
241
- }, 10);
242
- }
243
- onGridReady(params) {
244
- this.gridReady.emit(params);
245
- }
246
- resetTableColumns() {
247
- if (!this.svc.gridObj) {
248
- return;
249
- }
250
- this.mergedColumnDefinitions = _.cloneDeep(this._initialColumnDefs);
251
- this.svc.gridObj.api.setColumnDefs(this.mergedColumnDefinitions);
252
- this.svc.resetCookieConfig();
253
- this.svc.gridObj.api.resetColumnState();
254
- _.defer(() => {
255
- this._updateHiddenColumns();
256
- this.svc.resizeGridColumns();
257
- });
258
- }
259
- openHeaderActionMenu(event) {
260
- this.menuLeft = event.clientX - 150;
261
- this.menuTop = event.clientY + 5;
262
- _.delay(() => {
263
- this.openHeaderMenu = true;
264
- }, 100);
265
- }
266
- closeActionMenu() {
267
- this.selectedItem = {
268
- actionList: [],
269
- };
270
- this.openMenu = false;
271
- this.openHeaderMenu = false;
272
- }
273
- openHeaderFilter(event, options, type, columnId, filterLabel, headerComponentParams) {
274
- this.filterOptions = options;
275
- this.menuLeft = event.clientX;
276
- this.menuTop = event.clientY + 10;
277
- if (type === 'DATETIME') {
278
- this.dateTimeColumn = columnId;
279
- this.dateTimeFilterLabel = filterLabel || 'Date: ';
280
- _.delay(() => {
281
- this.showDateTimePicker = true;
282
- }, 10);
283
- _.delay(() => {
284
- this.calendar.toggle();
285
- }, 100);
286
- }
287
- else if (type === 'ATTRIBUTE') {
288
- this.appendAttributeHash = headerComponentParams.appendAttributeHash !== false;
289
- this.attributesColumn = columnId;
290
- this.roleAttributes = headerComponentParams?.getRoleAttributes();
291
- this.namedAttributes = headerComponentParams?.getNamedAttributes();
292
- this.selectedRoleAttributes = headerComponentParams.getSelectedRoleAttributes();
293
- this.selectedNamedAttributes = headerComponentParams.getSelectedNamedAttributes();
294
- this.dateTimeFilterLabel = filterLabel;
295
- this.currentHeaderComponentParams = headerComponentParams;
296
- _.delay(() => {
297
- this.showTagSelector = true;
298
- }, 100);
299
- }
300
- else {
301
- _.defer(() => {
302
- this.showFilterOptions = true;
303
- });
304
- }
305
- }
306
- setDateRangeFilter(range) {
307
- let startDate;
308
- let label;
309
- let endDate = moment();
310
- let closeCalendar = true;
311
- this.selectedRange = range;
312
- switch (range) {
313
- case 'hour':
314
- startDate = moment().subtract(1, 'hours');
315
- label = 'Last Hour';
316
- break;
317
- case 'day':
318
- startDate = moment().subtract(24, 'hours');
319
- label = 'Last Day';
320
- break;
321
- case 'week':
322
- startDate = moment().subtract(7, 'days');
323
- label = 'Last Week';
324
- break;
325
- case 'month':
326
- startDate = moment().subtract(1, 'month');
327
- label = 'Last Month';
328
- break;
329
- case 'custom':
330
- if (!this.dateValue) {
331
- return;
332
- }
333
- startDate = moment(this.dateValue[0]);
334
- if (this.dateValue[1] !== undefined && this.dateValue[1] !== null) {
335
- endDate = moment(this.dateValue[1]);
336
- }
337
- label = 'Custom';
338
- closeCalendar = false;
339
- break;
340
- default:
341
- startDate = moment().subtract(24, 'hours');
342
- label = 'Last Day';
343
- break;
344
- }
345
- const startDateRange = encodeURIComponent(startDate.toISOString());
346
- const endDateRange = encodeURIComponent(endDate.toISOString());
347
- this.columnFilters[this.dateTimeColumn] = [startDateRange, endDateRange];
348
- if (closeCalendar) {
349
- this.calendar.toggle();
350
- }
351
- if (range !== 'custom') {
352
- this.dateValue = [startDate.toDate(), endDate.toDate()];
353
- }
354
- const filterObj = {
355
- columnId: this.dateTimeColumn,
356
- value: [startDateRange, endDateRange],
357
- label: label,
358
- filterName: this.dateTimeFilterLabel,
359
- type: 'DATETIME'
360
- };
361
- this.tableFilterService.updateFilter(filterObj);
362
- }
363
- tagSelectionChanged(event, isRole) {
364
- let label = '';
365
- let value = '';
366
- if (isRole) {
367
- this.selectedNamedAttributes = [];
368
- if (this.selectedRoleAttributes.length > 1) {
369
- this.selectedRoleAttributes = [_.last(this.selectedRoleAttributes)];
370
- }
371
- this.selectedRoleAttributes.forEach((attr, index) => {
372
- if (index > 0) {
373
- label += ', ';
374
- value += ', ';
375
- }
376
- label += ((this.appendAttributeHash ? '#' : '') + attr);
377
- value += ((this.appendAttributeHash ? '%23' : '') + attr);
378
- });
379
- }
380
- else {
381
- this.selectedRoleAttributes = [];
382
- const attrIdMap = this.currentHeaderComponentParams.getNamedAttributesMap();
383
- if (this.selectedNamedAttributes.length > 1) {
384
- this.selectedNamedAttributes = [_.last(this.selectedNamedAttributes)];
385
- }
386
- this.selectedNamedAttributes.forEach((attr, index) => {
387
- if (index > 0) {
388
- label += ', ';
389
- value += ', ';
390
- }
391
- label += '@' + attr;
392
- value += '%40' + attrIdMap[attr];
393
- });
394
- }
395
- const filterObj = {
396
- columnId: this.attributesColumn,
397
- value: value,
398
- label: label,
399
- filterName: this.dateTimeFilterLabel,
400
- type: 'ATTRIBUTE'
401
- };
402
- this.currentHeaderComponentParams.setSelectedRoleAttributes(this.selectedRoleAttributes);
403
- this.currentHeaderComponentParams.setSelectedNamedAttributes(this.selectedNamedAttributes);
404
- this.tableFilterService.updateFilter(filterObj);
405
- }
406
- applyFilter(event, filter) {
407
- this.tableFilterService.updateFilter(filter);
408
- this.closeHeaderFilter(event);
409
- }
410
- closeHeaderFilter(event) {
411
- this.showFilterOptions = false;
412
- }
413
- closeDateTime(event) {
414
- this.showDateTimePicker = false;
415
- }
416
- closeTagSelector(event) {
417
- this.showTagSelector = false;
418
- }
419
- openCreate() {
420
- this.actionRequested.emit({ action: 'create' });
421
- }
422
- anySelected() {
423
- return _.some(this.rowData, { selected: true });
424
- }
425
- showDownload() {
426
- return this.allowDownload && this._view !== 'process';
427
- }
428
- _initGridResizeHandler() {
429
- if (!this.tableContainer) {
430
- return;
431
- }
432
- const observer = new ResizeObserver(entries => {
433
- this.resizeGridColumnsDebounced();
434
- });
435
- observer.observe(this.tableContainer.nativeElement);
436
- this.resizeHandlerInit = true;
437
- }
438
- _initGridOptions() {
439
- this.gridOptions = {
440
- pagination: false,
441
- rowSelection: 'single',
442
- rowClass: 'ziti-table-row',
443
- rowHeight: this.rowHeight,
444
- immutableData: true,
445
- suppressRowClickSelection: true,
446
- suppressHorizontalScroll: false,
447
- stopEditingWhenGridLosesFocus: true,
448
- suppressPropertyNamesCheck: true,
449
- animateRows: true,
450
- defaultColDef: {
451
- sortable: false,
452
- filter: false, // set filtering on for all columns
453
- },
454
- onRowDragMove: (params) => {
455
- this.dragStart.emit(params);
456
- },
457
- onRowDragLeave: (params) => {
458
- this.dragLeave.emit(params);
459
- },
460
- onRowDragEnd: () => {
461
- $('.attribute-item').show();
462
- $('.drag-hover').removeClass('drag-hover');
463
- $('#ColumnVisibilityHeader').trigger('click');
464
- $('.new-attribute-target').hide();
465
- },
466
- rowClassRules: {
467
- // row style function
468
- 'row-invalid': function (params) {
469
- return _.get(params, 'data.invalid');
470
- },
471
- 'row-copied': function (params) {
472
- return _.get(params, 'data.copied');
473
- },
474
- 'row-child-sub-process': function (params) {
475
- return (params.api.view === 'process' &&
476
- !_.get(params, 'data.isRoot') &&
477
- !_.isEmpty(_.get(params, 'data.subprocessId')));
478
- },
479
- 'row-child': function (params) {
480
- return ((params.api.view === 'process' || params.api.view === 'user-roles') &&
481
- !_.get(params, 'data.isRoot') &&
482
- !_.isEmpty(_.get(params, 'data.parentId')));
483
- },
484
- 'row-child-second': function (params) {
485
- return (params.api.view === 'process' &&
486
- !_.get(params, 'data.isRoot') &&
487
- _.get(params, 'data.isParallel'));
488
- },
489
- 'row-child-even': function (params) {
490
- return ((params.api.view === 'process' || params.api.view === 'user-roles') &&
491
- _.get(params, 'data.parentIndex') % 2 > 0);
492
- },
493
- 'row-child-odd': function (params) {
494
- return ((params.api.view === 'process' || params.api.view === 'user-roles') &&
495
- _.get(params, 'data.parentIndex') % 2 === 0);
496
- },
497
- 'row-child-warn': function (params) {
498
- return params.api.view === 'process' && _.get(params, 'data.state') === 'WARNING';
499
- },
500
- 'row-child-header': function (params) {
501
- return params.api.view === 'process' && _.get(params, 'data.rowType') === 'step-header';
502
- },
503
- 'row-role-item': function (params) {
504
- return _.get(params, 'data.roleItem');
505
- },
506
- },
507
- getRowHeight: (params) => {
508
- return this.remToPx(3.125);
509
- },
510
- onCellEditingStopped: (eventObj) => {
511
- if (!this.validateService) {
512
- return;
513
- }
514
- const field = _.get(eventObj, 'colDef.field', '');
515
- if (_.includes(field.toLowerCase(), 'attribute')) {
516
- const newVal = eventObj.newValue.split(',');
517
- _.set(eventObj, `data.${field}`, newVal);
518
- }
519
- else {
520
- _.set(eventObj, `data.${field}`, eventObj.newValue);
521
- }
522
- this._validateTable(eventObj);
523
- },
524
- getRowNodeId: (data) => data.name,
525
- onBodyScroll: (scroller) => {
526
- this._handleTableScroll(scroller);
527
- },
528
- onGridReady: (grid) => {
529
- grid.api.zitiAllToggled = false;
530
- grid.api.zitiHideColumn = this.setColumnVisibilityColumn.bind(this);
531
- grid.api.validateTable = this._validateTable.bind(this);
532
- grid.api.view = this._view;
533
- grid.api.zitiRowData = this.rowData;
534
- grid.api.openHeaderFilter = this.openHeaderFilter.bind(this);
535
- // eslint-disable-next-line @typescript-eslint/no-empty-function
536
- grid.api.rowsToggled = this.rowsToggled ? this.rowsToggled.bind(this) : () => { };
537
- if (this.serverSideDataSource) {
538
- grid.api.setServerSideDatasource(this.serverSideDataSource);
539
- }
540
- this.svc.gridObj = grid;
541
- _.defer(this._applyColumnState.bind(this));
542
- },
543
- onColumnVisible: (eventObj) => {
544
- if (!eventObj.column) {
545
- return;
546
- }
547
- this.updateColumnVisibility(eventObj.column.colDef.colId, eventObj.visible);
548
- if (eventObj.visible) {
549
- this.svc.gridObj.api.moveColumns([eventObj.column.colDef.colId], this.mergedColumnDefinitions.length - 1);
550
- _.defer(() => {
551
- this.svc.gridObj.api.ensureColumnVisible(eventObj.column.colDef.colId);
552
- });
553
- }
554
- this._updateGridColumns();
555
- this.svc.saveColumnState();
556
- },
557
- onFirstDataRendered: (eventObj) => {
558
- this.svc.resizeGridColumns();
559
- this.gridRendered = true;
560
- },
561
- onColumnPinned: (eventObj) => {
562
- if (!eventObj.column) {
563
- return;
564
- }
565
- const colId = eventObj.column.colDef.colId;
566
- const pinned = eventObj.pinned === 'left';
567
- this.mergedColumnDefinitions = _.map(this.mergedColumnDefinitions, (colDef) => {
568
- if (colDef.colId === colId) {
569
- colDef.lockPosition = pinned;
570
- colDef.suppressMovable = pinned;
571
- }
572
- return colDef;
573
- });
574
- this._updateGridColumns();
575
- this.svc.resizeGridColumns();
576
- this.svc.saveColumnState();
577
- },
578
- onColumnResized: (eventObj) => {
579
- if (!eventObj.column || eventObj.source === 'sizeColumnsToFit') {
580
- return;
581
- }
582
- this._onColumnsResizedDebounced(eventObj.column);
583
- },
584
- onColumnMoved: (eventObj) => {
585
- this._saveColumnStateDebounced();
586
- },
587
- };
588
- }
589
- _validateTable(eventObj) {
590
- this.rowData[eventObj.rowIndex] = eventObj.data;
591
- _.delay(() => {
592
- this.validateService(this.rowData);
593
- _.delay(() => {
594
- this.svc.gridObj.api.refreshCells({ force: true });
595
- this.svc.gridObj.api.redrawRows();
596
- }, 50);
597
- }, 50);
598
- }
599
- _applyColumnState() {
600
- const tableStateCookie = localStorage.getItem(`ziti_${this.svc.tableId}_table_state`);
601
- const tableState = JSON.parse(tableStateCookie);
602
- if (tableState) {
603
- this.svc.gridObj.api.applyColumnState({ state: tableState });
604
- this._updateHiddenColumns();
605
- }
606
- }
607
- _addColumnEvents() {
608
- this._columnDefinitions = _.map(this._columnDefinitions, (colDef) => {
609
- colDef.pinColumn = this.svc.pinColumn.bind(this.svc);
610
- colDef.cellClass = this._getCellStyle.bind(this);
611
- return colDef;
612
- });
613
- }
614
- _getCellStyle(params) {
615
- if (!this.rowValidation || this.rowValidation.length <= 0) {
616
- return '';
617
- }
618
- const validationResult = this.rowValidation[params.node.rowIndex];
619
- if (!validationResult || !validationResult.errors) {
620
- return '';
621
- }
622
- const field = _.get(params, 'colDef.field', '');
623
- if (validationResult.errors[field]) {
624
- return 'ziti-table-cell-error';
625
- }
626
- return '';
627
- }
628
- updateColumnVisibility(colId, visible) {
629
- this._columnDefinitions = _.map(this._columnDefinitions, (colDef) => {
630
- if (colDef.colId === colId) {
631
- colDef.hide = !visible;
632
- }
633
- return colDef;
634
- });
635
- for (const colDef of this.mergedColumnDefinitions) {
636
- if (colDef.colId === colId) {
637
- colDef.hide = !visible;
638
- }
639
- }
640
- this._updateHiddenColumns();
641
- this.svc.resizeGridColumns();
642
- }
643
- updateEntityTypeLabel() {
644
- switch (this.svc.tableId) {
645
- case 'api-sessions':
646
- this.entityTypeLabel = 'API Sessions';
647
- break;
648
- case 'auth-policies':
649
- this.entityTypeLabel = 'Auth Policies';
650
- break;
651
- case 'certificate-authorities':
652
- this.entityTypeLabel = 'Certificate Authorities';
653
- break;
654
- case 'ext-jwt-signers':
655
- this.entityTypeLabel = 'External JWT Signers';
656
- break;
657
- case 'identities':
658
- this.entityTypeLabel = 'Identities';
659
- break;
660
- case 'posture-checks':
661
- this.entityTypeLabel = 'Posture Checks';
662
- break;
663
- case 'edge-routers':
664
- this.entityTypeLabel = 'Edge Routers';
665
- break;
666
- case 'services':
667
- this.entityTypeLabel = 'Services';
668
- break;
669
- case 'configurations':
670
- this.entityTypeLabel = 'Configs';
671
- break;
672
- case 'config-types':
673
- this.entityTypeLabel = 'Config Types';
674
- break;
675
- case 'service-policies':
676
- this.entityTypeLabel = 'Service Policies';
677
- break;
678
- case 'edge-router-policies':
679
- this.entityTypeLabel = 'Edge Router Policies';
680
- break;
681
- case 'service-edge-router-policies':
682
- this.entityTypeLabel = 'Service Edge Router Policies';
683
- break;
684
- case 'sessions':
685
- this.entityTypeLabel = 'Sessions';
686
- break;
687
- case 'terminators':
688
- this.entityTypeLabel = 'Terminators';
689
- break;
690
- case 'transit-routers':
691
- this.entityTypeLabel = 'Transit Routers';
692
- break;
693
- }
694
- }
695
- setColumnVisibilityColumn(column, visible) {
696
- this.svc.gridObj.api.setColumnsVisible([column.colId], visible);
697
- this.svc.gridObj.api.refreshHeader();
698
- _.defer(() => {
699
- this.updateColumnVisibility(column.colId, visible);
700
- });
701
- }
702
- _updateHiddenColumns() {
703
- const gridColumnDefs = this.svc.gridObj?.api?.columnModel?.gridColumns;
704
- const visibleGridColumns = gridColumnDefs.filter((col) => col.visible);
705
- const hiddenGridColumns = gridColumnDefs.filter((col) => !col.visible);
706
- this.visibleColumns = _.map(visibleGridColumns, 'colDef');
707
- this.visibleColumnIds = _.map(this.visibleColumns, 'field');
708
- this.hiddenColumns = _.map(hiddenGridColumns, 'colDef');
709
- this.hiddenColumnIds = _.map(this.hiddenColumns, 'field');
710
- }
711
- addHeaderMenu(columnDefs = []) {
712
- columnDefs.forEach((columnDef) => {
713
- if (columnDef.useHeaderMenu) {
714
- columnDef.headerComponentParams = {
715
- openHeaderMenu: ($event) => {
716
- this.openHeaderActionMenu($event);
717
- },
718
- closeMenu: (event) => {
719
- this.closeActionMenu();
720
- },
721
- };
722
- }
723
- });
724
- }
725
- _addDefaultColumnDefs() {
726
- this.addHeaderMenu(this._columnDefinitions);
727
- this.mergedColumnDefinitions = _.cloneDeep(this._columnDefinitions);
728
- if (this._view === 'process') {
729
- const cellParams = _.cloneDeep(this.menuColumnDefinition.cellRendererParams);
730
- this.mergedColumnDefinitions[this.mergedColumnDefinitions.length - 1].cellRendererParams = _.merge(this.mergedColumnDefinitions[this.mergedColumnDefinitions.length - 1].cellRendererParams, cellParams);
731
- this.mergedColumnDefinitions[this.mergedColumnDefinitions.length - 1].headerComponentParams =
732
- this.menuColumnDefinition.headerComponentParams;
733
- }
734
- else if ((this.options.noSelect && this.options.noMenu)) {
735
- // Don't add any additional columns
736
- }
737
- else if ((this.options.noSelect && !this.options.noMenu)) {
738
- this.mergedColumnDefinitions.push(this.menuColumnDefinition);
739
- }
740
- else if (!this.options.noSelect && this.options.noMenu) {
741
- this.mergedColumnDefinitions.push(this.selectColumnDefinition);
742
- }
743
- else if (this._view !== 'upload') {
744
- this.mergedColumnDefinitions.splice(0, 0, this.selectColumnDefinition);
745
- this.mergedColumnDefinitions.push(this.menuColumnDefinition);
746
- }
747
- }
748
- _storeInitialColumnDefs() {
749
- this._initialColumnDefs = _.cloneDeep(this.mergedColumnDefinitions);
750
- }
751
- _initColumnVisibility() {
752
- this.visibleColumns = this._columnDefinitions.filter((col) => !col.hide);
753
- this.hiddenColumns = this._columnDefinitions.filter((col) => col.hide);
754
- this.visibleColumnIds = _.map(this.visibleColumns, 'field');
755
- }
756
- _updateGridColumns() {
757
- this._setColumnWidths();
758
- this.svc.gridObj.api.setColumnDefs(this.mergedColumnDefinitions);
759
- this.svc.gridObj.api.refreshHeader();
760
- }
761
- _setColumnWidths() {
762
- if (this._view === 'upload' || this._view === 'process') {
763
- return;
764
- }
765
- const colWidthsCookie = localStorage.getItem(`ziti_${this.svc.tableId}_column_widths`);
766
- if (!_.isEmpty(colWidthsCookie)) {
767
- const colWidths = JSON.parse(colWidthsCookie);
768
- _.forEach(colWidths, (colWidth, colId) => {
769
- _.forEach(this.mergedColumnDefinitions, (colDef) => {
770
- if (colDef.colId === colId) {
771
- colDef.width = colWidth;
772
- colDef.suppressSizeToFit = true;
773
- }
774
- });
775
- });
776
- }
777
- }
778
- _setColumnOrderAndVisibility() {
779
- if (this._view === 'upload' || this._view === 'process') {
780
- return;
781
- }
782
- const tableStateCookie = localStorage.getItem(`ziti_${this.svc.tableId}_table_state`);
783
- if (!_.isEmpty(tableStateCookie) || typeof tableStateCookie === 'undefined') {
784
- const colStates = JSON.parse(tableStateCookie);
785
- const columnIndexes = [];
786
- _.forEach(colStates, (colState) => {
787
- _.forEach(this.mergedColumnDefinitions, (colDef) => {
788
- if (colDef.colId === colState.colId) {
789
- columnIndexes.push(colDef);
790
- colDef.hide = colState.hide;
791
- }
792
- });
793
- });
794
- _.forEach(this.mergedColumnDefinitions, (colDef) => {
795
- let colFound = false;
796
- _.forEach(columnIndexes, (colIndex) => {
797
- if (colDef.colId === colIndex.colId) {
798
- colFound = true;
799
- }
800
- });
801
- if (!colFound) {
802
- columnIndexes.push(colDef);
803
- }
804
- });
805
- this.mergedColumnDefinitions = columnIndexes;
806
- }
807
- }
808
- _handleTableScroll(scroller) {
809
- const scrollWidth = $('.ag-center-cols-container').width();
810
- const viewWidth = $('.ag-center-cols-viewport').width();
811
- const scrollableWidth = scrollWidth - viewWidth;
812
- if (scroller.left > 0) {
813
- $('.ag-pinned-left-cols-container').addClass('ag-pinned-left-shadow');
814
- }
815
- else {
816
- $('.ag-pinned-left-cols-container').removeClass('ag-pinned-left-shadow');
817
- }
818
- if (scroller.left < scrollableWidth - 2) {
819
- $('.ag-pinned-right-cols-container').addClass('ag-pinned-right-shadow');
820
- }
821
- else {
822
- $('.ag-pinned-right-cols-container').removeClass('ag-pinned-right-shadow');
823
- }
824
- }
825
- remToPx(remValue) {
826
- const rootFontSize = parseFloat(window.getComputedStyle(document.documentElement).fontSize);
827
- return remValue * rootFontSize;
828
- }
829
- ;
830
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataTableComponent, deps: [{ token: i1.DataTableService }, { token: i2.DataTableFilterService }], target: i0.ɵɵFactoryTarget.Component }); }
831
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DataTableComponent, selector: "lib-data-table", inputs: { rowData: "rowData", expandRowData: "expandRowData", collapseRowData: "collapseRowData", rowValidation: "rowValidation", isTimeSearchAvailable: "isTimeSearchAvailable", isLoading: "isLoading", tableId: "tableId", options: "options", validateService: "validateService", rowsToggled: "rowsToggled", tableRefreshCount: "tableRefreshCount", view: "view", serverSideDataSource: "serverSideDataSource", allowDownload: "allowDownload", startCount: "startCount", endCount: "endCount", totalCount: "totalCount", emptyMsg: "emptyMsg", filterApplied: "filterApplied", menuItems: "menuItems", headerActions: "headerActions", noItemsClass: "noItemsClass", entityTypeName: "entityTypeName", showNoItemsAdd: "showNoItemsAdd", currentPage: "currentPage", noItemsImage: "noItemsImage", rowHeight: "rowHeight", filterName: "filterName", filterColumn: "filterColumn", columnDefinitions: "columnDefinitions", refreshCount: "refreshCount" }, outputs: { actionRequested: "actionRequested", gridReady: "gridReady", dragStart: "dragStart", dragLeave: "dragLeave", pageChanged: "pageChanged" }, viewQueries: [{ propertyName: "calendar", first: true, predicate: ["calendar"], descendants: true }, { propertyName: "contextMenu", first: true, predicate: ["contextMenu"], descendants: true }, { propertyName: "tableContainer", first: true, predicate: ["tableContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #tableContainer class=\"data-table-container\" *ngIf=\"showTable;else nodata\">\n <lib-table-filter-bar\n [startCount]=\"startCount\"\n [endCount]=\"endCount\"\n [totalCount]=\"totalCount\"\n [currentPage]=\"currentPage\"\n [filterName]=\"filterName\"\n [filterColumn]=\"filterColumn\"\n ></lib-table-filter-bar>\n <lib-table-hidden-columns-bar\n *ngIf=\"gridRendered && showFilterBar\"\n [hiddenColumns]=\"hiddenColumns\"\n (columnVisibilityChanged)=\"columnVisibilityChanged($event)\"\n ></lib-table-hidden-columns-bar>\n <div (resize)=\"resizeGridColumnsDebounced($event)\" class=\"ziti-ag-grid\" id=\"ItemTable\">\n <ag-grid-angular\n #nfAgGrid\n [columnDefs]=\"mergedColumnDefinitions\"\n [components]=\"frameworkComponents\"\n [getDataPath]=\"svc.getDataPath\"\n [getRowId]=\"svc.getRowNodeId\"\n [gridOptions]=\"gridOptions\"\n [modules]=\"gridModules\"\n [rowData]=\"rowData\"\n [tooltipHideDelay]=\"20000\"\n [tooltipShowDelay]=\"0\"\n (gridReady)=\"onGridReady($event)\"\n class=\"ziti-ag-grid-table ag-theme-alpine rows\"\n id=\"ItemGrid\"\n >\n </ag-grid-angular>\n </div>\n <div\n [ngClass]=\"{ open: openHeaderMenu }\"\n [ngStyle]=\"{ left: menuLeft + 'px', top: menuTop + 'px' }\"\n class=\"tMenu action-menu header-menu\"\n id=\"HeaderActionMenu\"\n >\n <div (click)=\"resetTableColumns()\" class=\"tActionRow\" id=\"ResetTableButton\">Restore Default Table</div>\n <div\n *ngFor=\"let headerAction of headerActions\"\n (click)=\"actionRequested.emit({ action: headerAction.action })\"\n class=\"tActionRow\"\n id=\"ResetTableButton\"\n >\n {{headerAction.name || headerAction.label}}\n </div>\n </div>\n <div\n [ngClass]=\"{ open: openMenu }\"\n [ngStyle]=\"{ left: menuLeft + 'px', top: menuTop + 'px' }\"\n class=\"tMenu action-menu item-menu\"\n id=\"RowActionMenu\"\n #contextMenu\n >\n <div\n *ngFor=\"let menuItem of menuItems\"\n (click)=\"actionRequested.emit({ action: menuItem.action, item: selectedItem })\"\n [ngClass]=\"{'menu-item-hidden': hideMenuItem(menuItem, selectedItem) }\"\n class=\"tActionRow\"\n id=\"TableActionButton_{{menuItem.action}}\"\n >\n {{menuItem.name || menuItem.label}}\n </div>\n </div>\n <div\n (clickOutside)=\"closeHeaderFilter($event)\"\n [ngClass]=\"{ open: showFilterOptions }\"\n [ngStyle]=\"{ left: menuLeft + 'px', top: menuTop + 'px' }\"\n class=\"tMenu action-menu header-menu\"\n id=\"HeaderFilterOptions\"\n >\n <div (click)=\"applyFilter($event, filter)\" *ngFor=\"let filter of filterOptions\" class=\"tActionRow\" [ngClass]=\"{'has-icon': filter.icon}\" [id]=\"filter.columnId\">\n <span *ngIf=\"filter.bubbleClass\" [ngClass]=\"filter.bubbleClass\" class=\"bubble\">\n <svg *ngIf=\"filter.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 <span *ngIf=\"filter.icon\" class=\"os-icon {{filter.icon}}\"></span>\n {{ filter.label }}\n </div>\n </div>\n</div>\n\n<div *ngIf=\"showDateTimePicker\" class=\"date-time-container data-table-date-time\" [ngStyle]=\"{ left: menuLeft + 'px', top: menuTop + 'px' }\" (clickOutside)=\"closeDateTime($event)\">\n <p-calendar\n [(ngModel)]=\"dateValue\"\n (onSelect)=\"setDateRangeFilter('custom')\"\n dateFormat=\"mm/dd/yy\"\n selectionMode=\"range\"\n placeholder=\"Select Time Range\"\n #calendar\n >\n <ng-template pTemplate=\"header\">\n <div class=\"filter-button-container\">\n <div\n class=\"toggleButton\"\n [ngClass]=\"{selected: selectedRange === 'hour'}\"\n (click)=\"setDateRangeFilter('hour')\"\n >\n Last Hour\n </div>\n <div\n class=\"toggleButton\"\n (click)=\"setDateRangeFilter('day')\"\n [ngClass]=\"{selected: selectedRange === 'day'}\"\n >\n Last Day\n </div>\n <div\n class=\"toggleButton\"\n (click)=\"setDateRangeFilter('week')\"\n [ngClass]=\"{selected: selectedRange === 'week'}\"\n >\n Last Week\n </div>\n <div\n class=\"toggleButton\"\n (click)=\"setDateRangeFilter('month')\"\n [ngClass]=\"{selected: selectedRange === 'month'}\"\n >\n Last Month\n </div>\n </div>\n </ng-template>\n </p-calendar>\n</div>\n\n<div *ngIf=\"showTagSelector\" class=\"tag-selector-container data-table-tag-selector\" [ngStyle]=\"{ left: menuLeft + 'px', top: menuTop + 'px' }\" (clickOutside)=\"closeTagSelector($event)\">\n <div class=\"buttonBall icon-close\" (click)=\"closeTagSelector($event)\"></div>\n <div class=\"tag-selector-label\">\n <span>Select an Attribute:</span>\n </div>\n <lib-tag-selector\n [focusOnInit]=\"true\"\n [availableRoleAttributes]=\"roleAttributes\"\n [availableNamedAttributes]=\"namedAttributes\"\n [(selectedRoleAttributes)]=\"selectedRoleAttributes\"\n [(selectedNamedAttributes)]=\"selectedNamedAttributes\"\n (selectedNamedAttributesChange)=\"tagSelectionChanged($event, false)\"\n (selectedRoleAttributesChange)=\"tagSelectionChanged($event, true)\"\n ></lib-tag-selector>\n</div>\n<ng-template #nodata>\n <lib-no-items\n (clickEmit)=\"openCreate()\"\n [image]=\"noItemsImage\"\n [isEmpty]=\"!rowData || rowData.length === 0\"\n [typeName]=\"this.entityTypeLabel\"\n [hasAdd]=\"showNoItemsAdd\"\n ></lib-no-items>\n</ng-template>\n", styles: [".data-table-container{display:flex;position:relative;height:calc(100% - 5.625rem);width:100%;flex-direction:column}.data-table-container .ziti-ag-grid{position:relative;width:100%;height:100%;display:flex;clear:both;align-items:center;justify-content:center}.data-table-container .ziti-ag-grid .ziti-ag-grid-table{height:100%;width:100%}.data-table-container .tMenu.action-menu.header-menu,.data-table-container .tMenu.action-menu.item-menu{position:fixed;height:unset;width:12.5rem;transition-property:opacity}.data-table-container .tMenu.action-menu.header-menu .tActionRow,.data-table-container .tMenu.action-menu.item-menu .tActionRow{display:flex;color:var(--offWhite_ALWAYS)}.data-table-container .tMenu.action-menu.header-menu .tActionRow.menu-item-hidden,.data-table-container .tMenu.action-menu.item-menu .tActionRow.menu-item-hidden{display:none}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper{border:none}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-body-vertical-scroll-viewport{background-color:var(--formBackground)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row{border:none;background-color:var(--formBackground);color:var(--text)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.row-invalid{background-color:var(--invalid)!important}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.row-invalid.row-copied{background-color:var(--copiedRow)!important}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.row-copied{background-color:var(--copiedRow)!important}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-selected{background-color:var(--formBackground)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-selected.ag-row-hover{background-color:#2196f31a}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-odd{background:var(--white)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-odd.ag-row-selected{background-color:var(--shaded)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-odd.ag-row-selected.ag-row-hover{background-color:#2196f31a}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-odd.ag-row-hover{background-color:#2196f31a}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-hover{background-color:#2196f31a}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row .dots{right:1.5625rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.row-role-item .tCol{font-size:.8125rem;height:2.1875rem;line-height:2.1875rem;font-weight:600}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell{border:none}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell.ag-cell-value.ziti-table-cell-error{outline:.125rem var(--red) solid;outline-offset:-.1875rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell.ag-cell-value.ag-cell-inline-editing{width:100%;height:100%;padding-left:0}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-header-cell:focus:after{border:none}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-pinned-left-header{border:none}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-pinned-left-header .ag-icon-pin{margin-top:.9375rem;transform:rotate(-45deg)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-pinned-left-header .ag-header-cell-text{cursor:default}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-pinned-left-header .ag-header-col-pin-button:hover .ag-icon-pin{animation-name:unpinColumn;animation-duration:.5s;animation-delay:.1s;animation-iteration-count:1;animation-fill-mode:forwards}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-header-col-pin-button:hover .ag-icon-pin{animation-name:pinColumn;animation-duration:.6s;animation-delay:.1s;animation-iteration-count:1;animation-fill-mode:forwards}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row-level-1 app-table-cell-resource-status app-resource-status{margin-left:2.5rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row-level-1 app-table-cell-resource-status app-resource-status .bubble{height:.6875rem;width:.6875rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row-level-1 app-table-cell-resource-status app-resource-status .bubble .circular{margin-left:2.5rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-icon-eye-slash{margin-top:.75rem;margin-right:.3125rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-icon-pin{margin-top:.75rem}@keyframes pinColumn{0%{transform:rotate(0);margin-top:.75rem}15%{transform:rotate(-10deg);margin-top:.75rem}30%{transform:rotate(-20deg);margin-top:.75rem}45%{transform:rotate(-30deg);margin-top:.8125rem}60%{transform:rotate(-40deg);margin-top:.875rem}75%{transform:rotate(-45deg);margin-top:.9375rem}to{transform:rotate(-45deg);margin-top:1rem}}@keyframes unpinColumn{0%{transform:rotate(-45deg);margin-top:.9375rem}15%{transform:rotate(-45deg);margin-top:.875rem}30%{transform:rotate(-45deg);margin-top:.8125rem}45%{transform:rotate(-40deg);margin-top:.75rem}60%{transform:rotate(-30deg);margin-top:.6875rem}75%{transform:rotate(-20deg);margin-top:.625rem}90%{transform:rotate(-10deg);margin-top:.5625rem}to{transform:rotate(0);margin-top:.5rem}}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-pinned-right-header{border:none}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .selectHeader{background-image:none}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .menuHeader{background-image:none}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-pinned-right-header .ag-header-row:after{height:0}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-horizontal-left-spacer{border:none}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-horizontal-right-spacer{border:none}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-header-cell-resize{margin-top:.125rem;border-left-color:#d4d9e2;border-right-color:#d4d9e2;border-left-width:.0625rem;border-right-width:.0625rem;border-left-style:solid;border-right-style:solid;width:.1875rem;height:.875rem;position:absolute;right:.125rem;top:1.1875rem;cursor:col-resize}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-header-cell-resize:after{display:none}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-header-cell-text{height:3rem;cursor:move;color:var(--text);line-height:3.4375rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-icon-menu{margin-top:.25rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-menu{margin-left:-2.8125rem;z-index:99999999}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-header-cell{padding-right:.3125rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-input-field-input{height:100%;margin-right:0;width:100%;box-shadow:0 0 .3125rem 0 var(--primary);border:solid .125rem var(--primary);overflow:visible}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-checkbox-input-wrapper .ag-input-field-input{border:none}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-header-viewport{box-sizing:border-box;border-bottom:.25rem solid var(--primary);background-color:var(--formBackground);padding-left:.25rem;line-height:3.4375rem;position:sticky!important;top:0;z-index:10;transition:all .15s linear;opacity:.97}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container{cursor:default}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container.nf-can-sort{cursor:pointer}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-header{background-color:var(--navigation);border-bottom:solid .0625rem;border-bottom-color:var(--navigation)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-header-icon{color:var(--icon)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-icon-pin{font-weight:800;margin-right:.3125rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-icon-menu{font-weight:800}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-icon-eye-slash{font-weight:800;color:var(--icon)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-header-cell-resize{border-left-color:var(--stroke);border-right-color:var(--stroke);border-left-width:var(--inputBorderWidth);border-right-width:var(--inputBorderWidth);border-left-style:solid;border-right-style:solid;width:.3125rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-header-cell-resize:hover{border-left-color:var(--icon);border-right-color:var(--icon)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-header-viewport,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-floating-top-viewport,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-body-viewport,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-center-cols-viewport,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-floating-bottom-viewport,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-body-horizontal-scroll-viewport,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-virtual-list-viewport{background-color:var(--navigation)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-theme-alpine .ag-row{background-color:var(--navigation)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .tSelect{left:1.25rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-pinned-left-shadow{box-shadow:.5rem 0 .3125rem -.25rem #dddd;z-index:40}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-pinned-right-shadow{box-shadow:-.5rem 0 .3125rem -.25rem #dddd;z-index:40}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-pinned-left-header .ag-header-row-column{border-bottom-style:solid;border-bottom-width:.25rem;border-bottom-color:var(--stroke)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-pinned-right-header .ag-header-row-column{border-bottom-style:solid;border-bottom-width:.25rem;border-bottom-color:var(--stroke)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-pinned-right-header .dots{right:.25rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell{-webkit-user-select:text;user-select:text}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-body-viewport .ag-cell{padding-left:1.25rem;text-align:left;line-height:3.0625rem!important}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-pinned-left-cols-container .ag-row{border-left:.25rem solid transparent}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-pinned-left-cols-container .ag-row-hover{border-left:.25rem solid var(--primary)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-pinned-left-cols-container .tSelect{margin-left:-.25rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-hide-button,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-pin-button,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-filter-button{margin-top:.3125rem;opacity:0;transition:opacity .2s;height:2.5rem;cursor:pointer}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-hide-button.nf-ag-col-pinned,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-pin-button.nf-ag-col-pinned,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-filter-button.nf-ag-col-pinned{opacity:1}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-hide-button:hover .ag-icon-eye-slash,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-hide-button:hover .ag-icon-pin,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-hide-button:hover .ag-icon-filter,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-pin-button:hover .ag-icon-eye-slash,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-pin-button:hover .ag-icon-pin,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-pin-button:hover .ag-icon-filter,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-filter-button:hover .ag-icon-eye-slash,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-filter-button:hover .ag-icon-pin,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-filter-button:hover .ag-icon-filter{color:var(--ag-alpine-active-color, var(--primary))}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-hide-button .ag-icon-filter,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-pin-button .ag-icon-filter,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-filter-button .ag-icon-filter{font-weight:700;margin-top:.8125rem;margin-right:0rem;margin-left:-.0625rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-hide-button,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-pin-button{position:absolute;margin-top:.625rem!important}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-hide-button{margin-right:1.3125rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container:hover .ag-header-col-hide-button,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container:hover .ag-header-col-pin-button,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container:hover .ag-header-col-filter-button{position:relative;display:block;opacity:1}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container:hover .ag-header-col-hide-button{margin-right:0rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .tSelectHeader{top:1.25rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-header-cell{padding-left:0rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-sort-descending-icon{margin-top:.9375rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .nf-ag-main-col .ag-cell-label-container{margin-left:-.5rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .nf-ag-main-col .ag-cell-label-container .ag-header-cell-text{padding-left:.1875rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ziti-ag-grid .ag-root-wrapper .ag-row.row-child{background-color:#fff;border-bottom:solid var(--stroke) .0625rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper app-table-column-default{width:100%}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper app-table-cell-registration{width:100%}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper app-table-cell-registration .tcol{width:100%}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-even.row-child.row-child-odd,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-odd.row-child.row-child-odd{background-color:var(--table)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-even.row-child.row-child-odd.row-role-item,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-odd.row-child.row-child-odd.row-role-item{background-color:var(--shaded);border:none}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-even.row-child.row-child-odd.row-role-item.ag-row-hover,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-odd.row-child.row-child-odd.row-role-item.ag-row-hover{background-color:#2196f31a}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-even.row-child.row-child-odd.row-child-second,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-odd.row-child.row-child-odd.row-child-second{background-color:var(--shaded)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-even.row-child.row-child-odd.row-child-second.row-child-header,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-odd.row-child.row-child-odd.row-child-second.row-child-header{background-color:var(--shaded)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-even.row-child.row-child-odd.row-child-warn,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-odd.row-child.row-child-odd.row-child-warn{background-color:var(--copiedRow)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-even.row-child.row-child-odd.row-child-header,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-odd.row-child.row-child-odd.row-child-header{background-color:var(--shaded)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-even.row-child.row-child-even,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-odd.row-child.row-child-even{background-color:var(--shaded)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-even.row-child.row-child-even.row-role-item,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-odd.row-child.row-child-even.row-role-item{background-color:var(--table);border:none}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-even.row-child.row-child-even.row-role-item.ag-row-hover,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-odd.row-child.row-child-even.row-role-item.ag-row-hover{background-color:#2196f31a}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-even.row-child.row-child-even.row-child-second,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-odd.row-child.row-child-even.row-child-second{background-color:var(--table)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-even.row-child.row-child-even.row-child-second.row-child-header,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-odd.row-child.row-child-even.row-child-second.row-child-header{background-color:var(--table)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-even.row-child.row-child-even.row-child-warn,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-odd.row-child.row-child-even.row-child-warn{background-color:var(--copiedRow)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-even.row-child.row-child-even.row-child-header,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-odd.row-child.row-child-even.row-child-header{background-color:var(--table)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .row-child{border-top:solid var(--stroke) .0625rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .row-child.row-child-second{border-top:transparent}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .row-child.row-child-second .ag-cell{font-size:.6875rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .row-child .bubble{width:.5rem;height:.5625rem;margin-left:.3125rem;margin-bottom:.0625rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .row-child .ag-cell{font-size:.8125rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .row-child app-resource-status{margin-left:1.4375rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .row-child app-resource-status .circular{height:.75rem;margin-left:1.125rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .row-child app-resource-status>span{font-size:.8125rem;margin-left:.25rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .row-child.row-child-second app-resource-status{margin-left:1.625rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .row-child.row-child-second app-resource-status .circular{margin-left:1.625rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .row-child.row-child-second app-resource-status>span{font-size:.8125rem;margin-left:.25rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .row-child-second .step-header-container .step-content{position:relative;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex-grow:1;flex-shrink:0;padding-right:.3125rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .row-child-second .step-header-container .step-label{padding-left:3.4375rem;margin-left:1.25rem;width:calc(20% + 1.25rem)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .row-child-second .step-header-container .step-label.step-content{padding-left:0}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .row-child-second .step-header-container .started-label{width:calc(20% + 1.25rem);overflow:hidden;flex-grow:1;flex-shrink:0}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .row-child-second .step-header-container .finished-label{width:calc(20% + 1.25rem);overflow:hidden;flex-grow:1;flex-shrink:0}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .row-child-second .step-header-container .duration-label{width:calc(20% + 1.25rem);overflow:hidden;flex-grow:1;flex-shrink:0}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .row-child-second .step-header-container .state-label{width:calc(20% + 1.25rem);overflow:hidden;flex-grow:1;flex-shrink:0}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .process-info-container app-resource-status .circular{margin-left:.8125rem;margin-top:-.0625rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper app-table-cell-resource-status{width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;margin-left:-.625rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper app-table-cell-resource-status .bubble{margin-left:.125rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper app-table-cell-resource-status .bubble .circular{left:0;top:1rem}.data-table-container ::ng-deep body{overflow-x:auto!important}.data-table-container ::ng-deep body .ag-theme-alpine.ag-dnd-ghost{height:2.1875rem!important;line-height:2.1875rem!important}.data-table-container ::ng-deep body .ag-header-row{box-sizing:border-box;border-bottom:.25rem solid var(--primary);background-color:var(--formBackground);padding-left:.25rem;line-height:3.4375rem;position:sticky!important;top:0;z-index:10;transition:all .15s linear;opacity:.97;color:var(--text)}.data-table-container ::ng-deep body .ag-header-cell-text{position:relative;float:left;color:var(--tableText);font-size:.875rem;font-weight:600;font-family:Open Sans;height:3.4375rem;transition:.5s;white-space:nowrap;color:var(--text)}.data-table-container ::ng-deep body .ag-header-cell-resize:after{display:none}.data-table-container ::ng-deep body .ag-header-cell-menu-button{height:1rem;width:1rem}.data-table-container ::ng-deep body .ag-icon{font-family:agGridAlpine;font-size:1rem;line-height:1rem;font-style:normal;font-weight:800;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.data-table-container ::ng-deep body .ag-icon-menu:before{content:\"\\f11b\"}.data-table-container ::ng-deep body .ag-icon-menu:hover{color:var(--primary)}.data-table-container ::ng-deep body .ag-icon-asc{margin-top:.4375rem;font-weight:800}.data-table-container ::ng-deep body .ag-icon-desc{margin-top:-.4375rem;font-weight:800}.data-table-container ::ng-deep body .tSelectHeader{left:1.3125rem;top:.625rem}.data-table-container ::ng-deep body .cellMenu{overflow:visible}.data-table-container ::ng-deep body .ag-theme-alpine{-webkit-font-smoothing:antialiased;color:var(--tableText)!important;color:var(--ag-foreground-color, var(--tableText))!important;font-family:Open Sans,sans-serif;font-size:.8125rem;line-height:normal}.data-table-container ::ng-deep body .ag-theme-alpine .ag-row{color:var(--tableText)!important;color:var(--ag-foreground-color, var(--tableText))!important}.data-table-container ::ng-deep body .ag-theme-alpine .ag-header-cell,.data-table-container ::ng-deep body .ag-theme-alpine .ag-header-group-cell{padding-left:.3125rem;padding-right:.9375rem}.os-icon{width:1.4375rem;height:1.4375rem;background-size:1.4375rem 1.4375rem;display:inline-flex;margin-right:.5rem;margin-top:.3125rem;margin-bottom:.3125rem}.os-icon.empty{background:transparent}.os-icon.apple{background-image:url(data:image/png;base64,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)}.os-icon.windows{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAApdSURBVHic7dsxbttYGEZRylCfZAfpvYys23uYxuvI7EDTTBdJRCRTj3z3HECdDf+N9V0I1OlyuSwAQMvb6AMAgNcTAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCzqMPAAC+3unj8/uyLD9vvQQAABzQ2sAvy/Lt3u8LAADYoWcHfo0AAIABth74NQIAADYweuDXCAAAeMDeB36NAACAK44+8GsEAABJsw/8GgEAwJTqA79GAABwSAb+OQIAgF0y8NsSAAAMYeDHEgAAbMLA75sAAOAhBv7YBAAAVxn4uQkAgCgD3yYAACZl4LlHAAAclIHnGQIAYKcMPFsSAACDGHhGEgAAGzHw7JkAAHiQgefIBADADQaemQkAIMvAUyYAgGkZeLhNAACHZeDhcQIA2C0DD9sRAMAwBh7GEQDAZgw87JcAAB5m4OG4BABwk4GHeQkACDPw0CUAoO336AOAMd5GHwAAvJ4AAIAgAQAAQZ4BgA2tPWR3+fX+fchhQJ4AgCd4ih44KgEAdxh4YFYCgDQDD1QJAKZm4AGuEwAcmoEHeIwAYNcMPMA2BABDGXiAMQQAmzLwAPskAHiKgQc4JgHAXQYeYE4CIM7AAzQJgMkZeACuEQAHZ+ABeIQA2DkDD8AWBMBgBh6AEQTAxgw8AHskAJ5k4AE4IgGwwsADMKN8ABh4AIqmDwADDwB/OnwAGHgA+Hu7DwADDwBfb3gAGHgAeL3NA8DAA8D+PB0ABh4Ajmc1AAw8AMznbOABoOe8LMvv0UcAAK/1NvoAAOD1BAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAoNPlchl9AwDwYj4BAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAg6Hz6+LyMPgKqLr/eTyP/vv9/6PIJAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQedlWX4sy/Lzzuvb688CALZ0vvx6/3dZln/+f/3h9PH5fREIADCV89oPCAQAmM9qAKwRCABwPE8HwBqBAAD7s3kArBEIAPB6wwNgjUAAgK+3+wBYIxAA4O8dPgDWCAQA+NP0AbBGIABQlA+ANQIBgBkJgCcJBACOSABsTCAAsEcCYDCBAMAIAmDnBAIAWxAABycQAHiEAJicQADgGgEQJxAAmgQAdwkEgDkJAJ4iEACOSQCwKYEAsE8CgKEEAsAYAoBdEwgA2xAAHJpAAHiMAGBqAgHgOgFAmkAAqgQA3CEQgFkJAHjCFwQCwBCny+Uy+gZgkNPHpzcAiHobfQAA8HoCAACCBAAABHkIENp+LL7FAEkeAgRu8jVHmJcAAB4mEOC4BACwGYEA+yUAgGEEAowjAIDdEgiwHQEAHJZAgMcJAGBaAgFuEwBAlkCgTAAA3CAQmJkAAHiQQODIBADARgQCeyYAAAYRCIwkAAB2SiCwJQEAcFACgWcIAIBJCQTuEQAAUQKhTQAAcJVAmJsAAOAhAuHYBAAAmxAI+yYAABhCIIwlAADYJYGwLQEAwCEJhOcIAACmJBDuEwAAJNUDQQAAwBWzB4IAAIAHHD0QBAAAbGDvgSAAAGCA0YEgAABgh7YOBAEAAAf0bCAIAACY0FogCAAACHobfQAA8HoCAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAEDQf5pXFokUyDSTAAAAAElFTkSuQmCC)}.os-icon.linux{background-image:url(data:image/png;base64,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)}.os-icon.android{background-image:url(data:image/png;base64,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)}.os-icon.other{background-image:url(data:image/png;base64,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)}::ng-deep .date-time-container.data-table-date-time{position:fixed;z-index:9999}::ng-deep .date-time-container.data-table-date-time .p-calendar .p-inputtext{height:.0625rem;width:.0625rem;padding:0}::ng-deep .date-time-container.data-table-date-time .filter-button-container{height:3.125rem;display:flex;flex-direction:row;justify-content:center;align-items:center}::ng-deep .date-time-container.data-table-date-time .filter-button-container .toggleButton{padding-left:var(--paddingSmall);padding-right:var(--paddingSmall);text-align:center;background-color:var(--inputBorder);color:var(--tableText);width:unset;height:1.4375rem;line-height:1.4375rem;font-size:.875rem;font-weight:600;position:relative;float:left;cursor:pointer;border-radius:.25rem;margin-right:var(--marginSmall);transition:.3s}::ng-deep .date-time-container.data-table-date-time .filter-button-container .toggleButton:hover{filter:brightness(90%);transition:.3s}::ng-deep .date-time-container.data-table-date-time .p-calendar .p-inputtext{border-top-left-radius:1.25rem;border-bottom-left-radius:1.25rem;text-indent:.3125rem}::ng-deep .date-time-container.data-table-date-time .p-calendar .p-button-icon-only{border-top-right-radius:1.25rem;border-bottom-right-radius:1.25rem}::ng-deep .tag-selector-container.data-table-tag-selector{position:fixed;z-index:9999;width:21.875rem;height:-moz-fit-content;height:fit-content;background:var(--formBackground);display:flex;flex-direction:column;justify-content:flex-end;padding:.625rem;border-radius:var(--inputBorderRadius);box-shadow:var(--shadowLarge);margin-top:-1.25rem;border-color:var(--stroke);border-style:solid}::ng-deep .tag-selector-container.data-table-tag-selector .tag-selector-label{margin-bottom:.3125rem;margin-left:.125rem;font-weight:600;color:var(--menu)}::ng-deep .tag-selector-container.data-table-tag-selector .select2-search__field{height:2.1875rem}::ng-deep .tag-selector-container.data-table-tag-selector .nf-select2-dropdown{width:calc(100% - 1.25rem)!important}::ng-deep .tag-selector-container .icon-close{position:absolute;top:.5rem;right:.5rem;cursor:pointer;color:var(--icon);font-weight:600}::ng-deep .tag-selector-container .icon-close:hover{filter:brightness(50%)}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i6.Calendar, selector: "p-calendar", inputs: ["style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "component", type: i7.AgGridAngular, selector: "ag-grid-angular", inputs: ["gridOptions", "modules", "statusBar", "sideBar", "suppressContextMenu", "preventDefaultOnContextMenu", "allowContextMenuWithControlKey", "columnMenu", "suppressMenuHide", "enableBrowserTooltips", "tooltipTrigger", "tooltipShowDelay", "tooltipHideDelay", "tooltipMouseTrack", "tooltipShowMode", "tooltipInteraction", "popupParent", "copyHeadersToClipboard", "copyGroupHeadersToClipboard", "clipboardDelimiter", "suppressCopyRowsToClipboard", "suppressCopySingleCellRanges", "suppressLastEmptyLineOnPaste", "suppressClipboardPaste", "suppressClipboardApi", "suppressCutToClipboard", "columnDefs", "defaultColDef", "defaultColGroupDef", "columnTypes", "dataTypeDefinitions", "maintainColumnOrder", "suppressFieldDotNotation", "headerHeight", "groupHeaderHeight", "floatingFiltersHeight", "pivotHeaderHeight", "pivotGroupHeaderHeight", "allowDragFromColumnsToolPanel", "suppressMovableColumns", "suppressColumnMoveAnimation", "suppressDragLeaveHidesColumns", "suppressRowGroupHidesColumns", "colResizeDefault", "suppressAutoSize", "autoSizePadding", "skipHeaderOnAutoSize", "autoSizeStrategy", "components", "editType", "singleClickEdit", "suppressClickEdit", "readOnlyEdit", "stopEditingWhenCellsLoseFocus", "enterMovesDown", "enterMovesDownAfterEdit", "enterNavigatesVertically", "enterNavigatesVerticallyAfterEdit", "enableCellEditingOnBackspace", "undoRedoCellEditing", "undoRedoCellEditingLimit", "defaultCsvExportParams", "suppressCsvExport", "defaultExcelExportParams", "suppressExcelExport", "excelStyles", "quickFilterText", "cacheQuickFilter", "excludeHiddenColumnsFromQuickFilter", "includeHiddenColumnsInQuickFilter", "quickFilterParser", "quickFilterMatcher", "applyQuickFilterBeforePivotOrAgg", "excludeChildrenWhenTreeDataFiltering", "enableAdvancedFilter", "advancedFilterModel", "includeHiddenColumnsInAdvancedFilter", "advancedFilterParent", "advancedFilterBuilderParams", "suppressAdvancedFilterEval", "enableCharts", "chartThemes", "customChartThemes", "chartThemeOverrides", "enableChartToolPanelsButton", "suppressChartToolPanelsButton", "chartToolPanelsDef", "chartMenuItems", "loadingCellRenderer", "loadingCellRendererParams", "loadingCellRendererSelector", "localeText", "masterDetail", "keepDetailRows", "keepDetailRowsCount", "detailCellRenderer", "detailCellRendererParams", "detailRowHeight", "detailRowAutoHeight", "context", "alignedGrids", "tabIndex", "rowBuffer", "valueCache", "valueCacheNeverExpires", "enableCellExpressions", "suppressParentsInRowNodes", "suppressTouch", "suppressFocusAfterRefresh", "suppressAsyncEvents", "suppressBrowserResizeObserver", "suppressPropertyNamesCheck", "suppressChangeDetection", "debug", "overlayLoadingTemplate", "loadingOverlayComponent", "loadingOverlayComponentParams", "suppressLoadingOverlay", "overlayNoRowsTemplate", "noRowsOverlayComponent", "noRowsOverlayComponentParams", "suppressNoRowsOverlay", "pagination", "paginationPageSize", "paginationPageSizeSelector", "paginationAutoPageSize", "paginateChildRows", "suppressPaginationPanel", "pivotMode", "pivotPanelShow", "pivotMaxGeneratedColumns", "pivotDefaultExpanded", "pivotColumnGroupTotals", "pivotRowTotals", "pivotSuppressAutoColumn", "suppressExpandablePivotGroups", "functionsReadOnly", "aggFuncs", "suppressAggFuncInHeader", "alwaysAggregateAtRootLevel", "suppressAggAtRootLevel", "aggregateOnlyChangedColumns", "suppressAggFilteredOnly", "removePivotHeaderRowWhenSingleValueColumn", "animateRows", "enableCellChangeFlash", "cellFlashDuration", "cellFlashDelay", "cellFadeDuration", "cellFadeDelay", "allowShowChangeAfterFilter", "domLayout", "ensureDomOrder", "enableRtl", "suppressColumnVirtualisation", "suppressMaxRenderedRowRestriction", "suppressRowVirtualisation", "rowDragManaged", "suppressRowDrag", "suppressMoveWhenRowDragging", "rowDragEntireRow", "rowDragMultiRow", "rowDragText", "fullWidthCellRenderer", "fullWidthCellRendererParams", "embedFullWidthRows", "suppressGroupMaintainValueType", "groupDisplayType", "groupDefaultExpanded", "autoGroupColumnDef", "groupMaintainOrder", "groupSelectsChildren", "groupLockGroupColumns", "groupAggFiltering", "groupIncludeFooter", "groupIncludeTotalFooter", "groupTotalRow", "grandTotalRow", "suppressStickyTotalRow", "groupSuppressBlankHeader", "groupSelectsFiltered", "showOpenedGroup", "groupRemoveSingleChildren", "groupRemoveLowestSingleChildren", "groupHideOpenParents", "groupAllowUnbalanced", "rowGroupPanelShow", "groupRowRenderer", "groupRowRendererParams", "suppressMakeColumnVisibleAfterUnGroup", "treeData", "rowGroupPanelSuppressSort", "suppressGroupRowsSticky", "pinnedTopRowData", "pinnedBottomRowData", "rowModelType", "rowData", "asyncTransactionWaitMillis", "suppressModelUpdateAfterUpdateTransaction", "datasource", "cacheOverflowSize", "infiniteInitialRowCount", "serverSideInitialRowCount", "suppressServerSideInfiniteScroll", "suppressServerSideFullWidthLoadingRow", "cacheBlockSize", "maxBlocksInCache", "maxConcurrentDatasourceRequests", "blockLoadDebounceMillis", "purgeClosedRowNodes", "serverSideDatasource", "serverSideSortAllLevels", "serverSideEnableClientSideSort", "serverSideOnlyRefreshFilteredGroups", "serverSideFilterAllLevels", "serverSideSortOnServer", "serverSideFilterOnServer", "serverSidePivotResultFieldSeparator", "viewportDatasource", "viewportRowModelPageSize", "viewportRowModelBufferSize", "alwaysShowHorizontalScroll", "alwaysShowVerticalScroll", "debounceVerticalScrollbar", "suppressHorizontalScroll", "suppressScrollOnNewData", "suppressScrollWhenPopupsAreOpen", "suppressAnimationFrame", "suppressMiddleClickScrolls", "suppressPreventDefaultOnMouseWheel", "scrollbarWidth", "rowSelection", "rowMultiSelectWithClick", "suppressRowDeselection", "suppressRowClickSelection", "suppressCellFocus", "suppressHeaderFocus", "suppressMultiRangeSelection", "enableCellTextSelection", "enableRangeSelection", "enableRangeHandle", "enableFillHandle", "fillHandleDirection", "suppressClearOnFillReduction", "sortingOrder", "accentedSort", "unSortIcon", "suppressMultiSort", "alwaysMultiSort", "multiSortKey", "suppressMaintainUnsortedOrder", "icons", "rowHeight", "rowStyle", "rowClass", "rowClassRules", "suppressRowHoverHighlight", "suppressRowTransform", "columnHoverHighlight", "gridId", "deltaSort", "treeDataDisplayType", "functionsPassive", "enableGroupEdit", "initialState", "getContextMenuItems", "getMainMenuItems", "postProcessPopup", "processUnpinnedColumns", "processCellForClipboard", "processHeaderForClipboard", "processGroupHeaderForClipboard", "processCellFromClipboard", "sendToClipboard", "processDataFromClipboard", "isExternalFilterPresent", "doesExternalFilterPass", "getChartToolbarItems", "createChartContainer", "navigateToNextHeader", "tabToNextHeader", "navigateToNextCell", "tabToNextCell", "getLocaleText", "getDocument", "paginationNumberFormatter", "getGroupRowAgg", "isGroupOpenByDefault", "initialGroupOrderComparator", "processPivotResultColDef", "processPivotResultColGroupDef", "getDataPath", "getChildCount", "getServerSideGroupLevelParams", "isServerSideGroupOpenByDefault", "isApplyServerSideTransaction", "isServerSideGroup", "getServerSideGroupKey", "getBusinessKeyForNode", "getRowId", "resetRowDataOnUpdate", "processRowPostCreate", "isRowSelectable", "isRowMaster", "fillOperation", "postSortRows", "getRowStyle", "getRowClass", "getRowHeight", "isFullWidthRow"], outputs: ["toolPanelVisibleChanged", "toolPanelSizeChanged", "columnMenuVisibleChanged", "contextMenuVisibleChanged", "cutStart", "cutEnd", "pasteStart", "pasteEnd", "columnVisible", "columnPinned", "columnResized", "columnMoved", "columnValueChanged", "columnPivotModeChanged", "columnPivotChanged", "columnGroupOpened", "newColumnsLoaded", "gridColumnsChanged", "displayedColumnsChanged", "virtualColumnsChanged", "columnEverythingChanged", "columnHeaderMouseOver", "columnHeaderMouseLeave", "columnHeaderClicked", "columnHeaderContextMenu", "componentStateChanged", "cellValueChanged", "cellEditRequest", "rowValueChanged", "cellEditingStarted", "cellEditingStopped", "rowEditingStarted", "rowEditingStopped", "undoStarted", "undoEnded", "redoStarted", "redoEnded", "rangeDeleteStart", "rangeDeleteEnd", "fillStart", "fillEnd", "filterOpened", "filterChanged", "filterModified", "advancedFilterBuilderVisibleChanged", "chartCreated", "chartRangeSelectionChanged", "chartOptionsChanged", "chartDestroyed", "cellKeyDown", "gridReady", "gridPreDestroyed", "firstDataRendered", "gridSizeChanged", "modelUpdated", "virtualRowRemoved", "viewportChanged", "bodyScroll", "bodyScrollEnd", "dragStarted", "dragStopped", "stateUpdated", "paginationChanged", "rowDragEnter", "rowDragMove", "rowDragLeave", "rowDragEnd", "columnRowGroupChanged", "rowGroupOpened", "expandOrCollapseAll", "pivotMaxColumnsExceeded", "pinnedRowDataChanged", "rowDataUpdated", "asyncTransactionsFlushed", "storeRefreshed", "cellClicked", "cellDoubleClicked", "cellFocused", "cellMouseOver", "cellMouseOut", "cellMouseDown", "rowClicked", "rowDoubleClicked", "rowSelected", "selectionChanged", "cellContextMenu", "rangeSelectionChanged", "tooltipShow", "tooltipHide", "sortChanged", "columnRowGroupChangeRequest", "columnPivotChangeRequest", "columnValueChangeRequest", "columnAggFuncChangeRequest"] }, { kind: "directive", type: i8.ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }, { kind: "component", type: i9.FilterBarComponent, selector: "lib-table-filter-bar", inputs: ["filterName", "filterColumn", "startCount", "endCount", "totalCount", "currentPage"] }, { kind: "component", type: i10.HiddenColumnsBarComponent, selector: "lib-table-hidden-columns-bar", inputs: ["hiddenColumns"], outputs: ["columnVisibilityChanged"] }, { kind: "component", type: i11.NoItemsComponent, selector: "lib-no-items", inputs: ["image", "typeName", "isEmpty", "hasAdd", "hiddenResults", "isLoading"], outputs: ["clickEmit", "refresh"] }, { kind: "component", type: i12.TagSelectorComponent, selector: "lib-tag-selector", inputs: ["placeholder", "disableField", "disableCreate", "hideOption", "isLoading", "errorMessage", "focusOnInit", "selectedRoleAttributes", "selectedNamedAttributes", "hasError", "availableRoleAttributes", "availableNamedAttributes"], outputs: ["addRoleAttribute", "addNamedAttribute", "roleAttributeRemoved", "namedAttributeRemoved", "selectedRoleAttributesChange", "selectedNamedAttributesChange", "filterChange"] }] }); }
832
- }
833
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataTableComponent, decorators: [{
834
- type: Component,
835
- args: [{ selector: 'lib-data-table', template: "<div #tableContainer class=\"data-table-container\" *ngIf=\"showTable;else nodata\">\n <lib-table-filter-bar\n [startCount]=\"startCount\"\n [endCount]=\"endCount\"\n [totalCount]=\"totalCount\"\n [currentPage]=\"currentPage\"\n [filterName]=\"filterName\"\n [filterColumn]=\"filterColumn\"\n ></lib-table-filter-bar>\n <lib-table-hidden-columns-bar\n *ngIf=\"gridRendered && showFilterBar\"\n [hiddenColumns]=\"hiddenColumns\"\n (columnVisibilityChanged)=\"columnVisibilityChanged($event)\"\n ></lib-table-hidden-columns-bar>\n <div (resize)=\"resizeGridColumnsDebounced($event)\" class=\"ziti-ag-grid\" id=\"ItemTable\">\n <ag-grid-angular\n #nfAgGrid\n [columnDefs]=\"mergedColumnDefinitions\"\n [components]=\"frameworkComponents\"\n [getDataPath]=\"svc.getDataPath\"\n [getRowId]=\"svc.getRowNodeId\"\n [gridOptions]=\"gridOptions\"\n [modules]=\"gridModules\"\n [rowData]=\"rowData\"\n [tooltipHideDelay]=\"20000\"\n [tooltipShowDelay]=\"0\"\n (gridReady)=\"onGridReady($event)\"\n class=\"ziti-ag-grid-table ag-theme-alpine rows\"\n id=\"ItemGrid\"\n >\n </ag-grid-angular>\n </div>\n <div\n [ngClass]=\"{ open: openHeaderMenu }\"\n [ngStyle]=\"{ left: menuLeft + 'px', top: menuTop + 'px' }\"\n class=\"tMenu action-menu header-menu\"\n id=\"HeaderActionMenu\"\n >\n <div (click)=\"resetTableColumns()\" class=\"tActionRow\" id=\"ResetTableButton\">Restore Default Table</div>\n <div\n *ngFor=\"let headerAction of headerActions\"\n (click)=\"actionRequested.emit({ action: headerAction.action })\"\n class=\"tActionRow\"\n id=\"ResetTableButton\"\n >\n {{headerAction.name || headerAction.label}}\n </div>\n </div>\n <div\n [ngClass]=\"{ open: openMenu }\"\n [ngStyle]=\"{ left: menuLeft + 'px', top: menuTop + 'px' }\"\n class=\"tMenu action-menu item-menu\"\n id=\"RowActionMenu\"\n #contextMenu\n >\n <div\n *ngFor=\"let menuItem of menuItems\"\n (click)=\"actionRequested.emit({ action: menuItem.action, item: selectedItem })\"\n [ngClass]=\"{'menu-item-hidden': hideMenuItem(menuItem, selectedItem) }\"\n class=\"tActionRow\"\n id=\"TableActionButton_{{menuItem.action}}\"\n >\n {{menuItem.name || menuItem.label}}\n </div>\n </div>\n <div\n (clickOutside)=\"closeHeaderFilter($event)\"\n [ngClass]=\"{ open: showFilterOptions }\"\n [ngStyle]=\"{ left: menuLeft + 'px', top: menuTop + 'px' }\"\n class=\"tMenu action-menu header-menu\"\n id=\"HeaderFilterOptions\"\n >\n <div (click)=\"applyFilter($event, filter)\" *ngFor=\"let filter of filterOptions\" class=\"tActionRow\" [ngClass]=\"{'has-icon': filter.icon}\" [id]=\"filter.columnId\">\n <span *ngIf=\"filter.bubbleClass\" [ngClass]=\"filter.bubbleClass\" class=\"bubble\">\n <svg *ngIf=\"filter.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 <span *ngIf=\"filter.icon\" class=\"os-icon {{filter.icon}}\"></span>\n {{ filter.label }}\n </div>\n </div>\n</div>\n\n<div *ngIf=\"showDateTimePicker\" class=\"date-time-container data-table-date-time\" [ngStyle]=\"{ left: menuLeft + 'px', top: menuTop + 'px' }\" (clickOutside)=\"closeDateTime($event)\">\n <p-calendar\n [(ngModel)]=\"dateValue\"\n (onSelect)=\"setDateRangeFilter('custom')\"\n dateFormat=\"mm/dd/yy\"\n selectionMode=\"range\"\n placeholder=\"Select Time Range\"\n #calendar\n >\n <ng-template pTemplate=\"header\">\n <div class=\"filter-button-container\">\n <div\n class=\"toggleButton\"\n [ngClass]=\"{selected: selectedRange === 'hour'}\"\n (click)=\"setDateRangeFilter('hour')\"\n >\n Last Hour\n </div>\n <div\n class=\"toggleButton\"\n (click)=\"setDateRangeFilter('day')\"\n [ngClass]=\"{selected: selectedRange === 'day'}\"\n >\n Last Day\n </div>\n <div\n class=\"toggleButton\"\n (click)=\"setDateRangeFilter('week')\"\n [ngClass]=\"{selected: selectedRange === 'week'}\"\n >\n Last Week\n </div>\n <div\n class=\"toggleButton\"\n (click)=\"setDateRangeFilter('month')\"\n [ngClass]=\"{selected: selectedRange === 'month'}\"\n >\n Last Month\n </div>\n </div>\n </ng-template>\n </p-calendar>\n</div>\n\n<div *ngIf=\"showTagSelector\" class=\"tag-selector-container data-table-tag-selector\" [ngStyle]=\"{ left: menuLeft + 'px', top: menuTop + 'px' }\" (clickOutside)=\"closeTagSelector($event)\">\n <div class=\"buttonBall icon-close\" (click)=\"closeTagSelector($event)\"></div>\n <div class=\"tag-selector-label\">\n <span>Select an Attribute:</span>\n </div>\n <lib-tag-selector\n [focusOnInit]=\"true\"\n [availableRoleAttributes]=\"roleAttributes\"\n [availableNamedAttributes]=\"namedAttributes\"\n [(selectedRoleAttributes)]=\"selectedRoleAttributes\"\n [(selectedNamedAttributes)]=\"selectedNamedAttributes\"\n (selectedNamedAttributesChange)=\"tagSelectionChanged($event, false)\"\n (selectedRoleAttributesChange)=\"tagSelectionChanged($event, true)\"\n ></lib-tag-selector>\n</div>\n<ng-template #nodata>\n <lib-no-items\n (clickEmit)=\"openCreate()\"\n [image]=\"noItemsImage\"\n [isEmpty]=\"!rowData || rowData.length === 0\"\n [typeName]=\"this.entityTypeLabel\"\n [hasAdd]=\"showNoItemsAdd\"\n ></lib-no-items>\n</ng-template>\n", styles: [".data-table-container{display:flex;position:relative;height:calc(100% - 5.625rem);width:100%;flex-direction:column}.data-table-container .ziti-ag-grid{position:relative;width:100%;height:100%;display:flex;clear:both;align-items:center;justify-content:center}.data-table-container .ziti-ag-grid .ziti-ag-grid-table{height:100%;width:100%}.data-table-container .tMenu.action-menu.header-menu,.data-table-container .tMenu.action-menu.item-menu{position:fixed;height:unset;width:12.5rem;transition-property:opacity}.data-table-container .tMenu.action-menu.header-menu .tActionRow,.data-table-container .tMenu.action-menu.item-menu .tActionRow{display:flex;color:var(--offWhite_ALWAYS)}.data-table-container .tMenu.action-menu.header-menu .tActionRow.menu-item-hidden,.data-table-container .tMenu.action-menu.item-menu .tActionRow.menu-item-hidden{display:none}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper{border:none}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-body-vertical-scroll-viewport{background-color:var(--formBackground)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row{border:none;background-color:var(--formBackground);color:var(--text)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.row-invalid{background-color:var(--invalid)!important}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.row-invalid.row-copied{background-color:var(--copiedRow)!important}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.row-copied{background-color:var(--copiedRow)!important}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-selected{background-color:var(--formBackground)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-selected.ag-row-hover{background-color:#2196f31a}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-odd{background:var(--white)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-odd.ag-row-selected{background-color:var(--shaded)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-odd.ag-row-selected.ag-row-hover{background-color:#2196f31a}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-odd.ag-row-hover{background-color:#2196f31a}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-hover{background-color:#2196f31a}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row .dots{right:1.5625rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.row-role-item .tCol{font-size:.8125rem;height:2.1875rem;line-height:2.1875rem;font-weight:600}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell{border:none}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell.ag-cell-value.ziti-table-cell-error{outline:.125rem var(--red) solid;outline-offset:-.1875rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell.ag-cell-value.ag-cell-inline-editing{width:100%;height:100%;padding-left:0}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-header-cell:focus:after{border:none}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-pinned-left-header{border:none}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-pinned-left-header .ag-icon-pin{margin-top:.9375rem;transform:rotate(-45deg)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-pinned-left-header .ag-header-cell-text{cursor:default}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-pinned-left-header .ag-header-col-pin-button:hover .ag-icon-pin{animation-name:unpinColumn;animation-duration:.5s;animation-delay:.1s;animation-iteration-count:1;animation-fill-mode:forwards}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-header-col-pin-button:hover .ag-icon-pin{animation-name:pinColumn;animation-duration:.6s;animation-delay:.1s;animation-iteration-count:1;animation-fill-mode:forwards}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row-level-1 app-table-cell-resource-status app-resource-status{margin-left:2.5rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row-level-1 app-table-cell-resource-status app-resource-status .bubble{height:.6875rem;width:.6875rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row-level-1 app-table-cell-resource-status app-resource-status .bubble .circular{margin-left:2.5rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-icon-eye-slash{margin-top:.75rem;margin-right:.3125rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-icon-pin{margin-top:.75rem}@keyframes pinColumn{0%{transform:rotate(0);margin-top:.75rem}15%{transform:rotate(-10deg);margin-top:.75rem}30%{transform:rotate(-20deg);margin-top:.75rem}45%{transform:rotate(-30deg);margin-top:.8125rem}60%{transform:rotate(-40deg);margin-top:.875rem}75%{transform:rotate(-45deg);margin-top:.9375rem}to{transform:rotate(-45deg);margin-top:1rem}}@keyframes unpinColumn{0%{transform:rotate(-45deg);margin-top:.9375rem}15%{transform:rotate(-45deg);margin-top:.875rem}30%{transform:rotate(-45deg);margin-top:.8125rem}45%{transform:rotate(-40deg);margin-top:.75rem}60%{transform:rotate(-30deg);margin-top:.6875rem}75%{transform:rotate(-20deg);margin-top:.625rem}90%{transform:rotate(-10deg);margin-top:.5625rem}to{transform:rotate(0);margin-top:.5rem}}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-pinned-right-header{border:none}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .selectHeader{background-image:none}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .menuHeader{background-image:none}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-pinned-right-header .ag-header-row:after{height:0}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-horizontal-left-spacer{border:none}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-horizontal-right-spacer{border:none}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-header-cell-resize{margin-top:.125rem;border-left-color:#d4d9e2;border-right-color:#d4d9e2;border-left-width:.0625rem;border-right-width:.0625rem;border-left-style:solid;border-right-style:solid;width:.1875rem;height:.875rem;position:absolute;right:.125rem;top:1.1875rem;cursor:col-resize}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-header-cell-resize:after{display:none}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-header-cell-text{height:3rem;cursor:move;color:var(--text);line-height:3.4375rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-icon-menu{margin-top:.25rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-menu{margin-left:-2.8125rem;z-index:99999999}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-header-cell{padding-right:.3125rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-input-field-input{height:100%;margin-right:0;width:100%;box-shadow:0 0 .3125rem 0 var(--primary);border:solid .125rem var(--primary);overflow:visible}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-checkbox-input-wrapper .ag-input-field-input{border:none}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-header-viewport{box-sizing:border-box;border-bottom:.25rem solid var(--primary);background-color:var(--formBackground);padding-left:.25rem;line-height:3.4375rem;position:sticky!important;top:0;z-index:10;transition:all .15s linear;opacity:.97}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container{cursor:default}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container.nf-can-sort{cursor:pointer}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-header{background-color:var(--navigation);border-bottom:solid .0625rem;border-bottom-color:var(--navigation)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-header-icon{color:var(--icon)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-icon-pin{font-weight:800;margin-right:.3125rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-icon-menu{font-weight:800}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-icon-eye-slash{font-weight:800;color:var(--icon)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-header-cell-resize{border-left-color:var(--stroke);border-right-color:var(--stroke);border-left-width:var(--inputBorderWidth);border-right-width:var(--inputBorderWidth);border-left-style:solid;border-right-style:solid;width:.3125rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-header-cell-resize:hover{border-left-color:var(--icon);border-right-color:var(--icon)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-header-viewport,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-floating-top-viewport,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-body-viewport,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-center-cols-viewport,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-floating-bottom-viewport,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-body-horizontal-scroll-viewport,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-virtual-list-viewport{background-color:var(--navigation)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-theme-alpine .ag-row{background-color:var(--navigation)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .tSelect{left:1.25rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-pinned-left-shadow{box-shadow:.5rem 0 .3125rem -.25rem #dddd;z-index:40}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-pinned-right-shadow{box-shadow:-.5rem 0 .3125rem -.25rem #dddd;z-index:40}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-pinned-left-header .ag-header-row-column{border-bottom-style:solid;border-bottom-width:.25rem;border-bottom-color:var(--stroke)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-pinned-right-header .ag-header-row-column{border-bottom-style:solid;border-bottom-width:.25rem;border-bottom-color:var(--stroke)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-pinned-right-header .dots{right:.25rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell{-webkit-user-select:text;user-select:text}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-body-viewport .ag-cell{padding-left:1.25rem;text-align:left;line-height:3.0625rem!important}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-pinned-left-cols-container .ag-row{border-left:.25rem solid transparent}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-pinned-left-cols-container .ag-row-hover{border-left:.25rem solid var(--primary)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-pinned-left-cols-container .tSelect{margin-left:-.25rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-hide-button,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-pin-button,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-filter-button{margin-top:.3125rem;opacity:0;transition:opacity .2s;height:2.5rem;cursor:pointer}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-hide-button.nf-ag-col-pinned,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-pin-button.nf-ag-col-pinned,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-filter-button.nf-ag-col-pinned{opacity:1}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-hide-button:hover .ag-icon-eye-slash,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-hide-button:hover .ag-icon-pin,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-hide-button:hover .ag-icon-filter,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-pin-button:hover .ag-icon-eye-slash,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-pin-button:hover .ag-icon-pin,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-pin-button:hover .ag-icon-filter,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-filter-button:hover .ag-icon-eye-slash,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-filter-button:hover .ag-icon-pin,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-filter-button:hover .ag-icon-filter{color:var(--ag-alpine-active-color, var(--primary))}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-hide-button .ag-icon-filter,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-pin-button .ag-icon-filter,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-filter-button .ag-icon-filter{font-weight:700;margin-top:.8125rem;margin-right:0rem;margin-left:-.0625rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-hide-button,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-pin-button{position:absolute;margin-top:.625rem!important}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container .ag-header-col-hide-button{margin-right:1.3125rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container:hover .ag-header-col-hide-button,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container:hover .ag-header-col-pin-button,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container:hover .ag-header-col-filter-button{position:relative;display:block;opacity:1}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-cell-label-container:hover .ag-header-col-hide-button{margin-right:0rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .tSelectHeader{top:1.25rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-header-cell{padding-left:0rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-sort-descending-icon{margin-top:.9375rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .nf-ag-main-col .ag-cell-label-container{margin-left:-.5rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .nf-ag-main-col .ag-cell-label-container .ag-header-cell-text{padding-left:.1875rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ziti-ag-grid .ag-root-wrapper .ag-row.row-child{background-color:#fff;border-bottom:solid var(--stroke) .0625rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper app-table-column-default{width:100%}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper app-table-cell-registration{width:100%}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper app-table-cell-registration .tcol{width:100%}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-even.row-child.row-child-odd,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-odd.row-child.row-child-odd{background-color:var(--table)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-even.row-child.row-child-odd.row-role-item,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-odd.row-child.row-child-odd.row-role-item{background-color:var(--shaded);border:none}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-even.row-child.row-child-odd.row-role-item.ag-row-hover,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-odd.row-child.row-child-odd.row-role-item.ag-row-hover{background-color:#2196f31a}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-even.row-child.row-child-odd.row-child-second,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-odd.row-child.row-child-odd.row-child-second{background-color:var(--shaded)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-even.row-child.row-child-odd.row-child-second.row-child-header,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-odd.row-child.row-child-odd.row-child-second.row-child-header{background-color:var(--shaded)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-even.row-child.row-child-odd.row-child-warn,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-odd.row-child.row-child-odd.row-child-warn{background-color:var(--copiedRow)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-even.row-child.row-child-odd.row-child-header,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-odd.row-child.row-child-odd.row-child-header{background-color:var(--shaded)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-even.row-child.row-child-even,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-odd.row-child.row-child-even{background-color:var(--shaded)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-even.row-child.row-child-even.row-role-item,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-odd.row-child.row-child-even.row-role-item{background-color:var(--table);border:none}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-even.row-child.row-child-even.row-role-item.ag-row-hover,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-odd.row-child.row-child-even.row-role-item.ag-row-hover{background-color:#2196f31a}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-even.row-child.row-child-even.row-child-second,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-odd.row-child.row-child-even.row-child-second{background-color:var(--table)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-even.row-child.row-child-even.row-child-second.row-child-header,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-odd.row-child.row-child-even.row-child-second.row-child-header{background-color:var(--table)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-even.row-child.row-child-even.row-child-warn,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-odd.row-child.row-child-even.row-child-warn{background-color:var(--copiedRow)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-even.row-child.row-child-even.row-child-header,.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .ag-row.ag-row-odd.row-child.row-child-even.row-child-header{background-color:var(--table)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .row-child{border-top:solid var(--stroke) .0625rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .row-child.row-child-second{border-top:transparent}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .row-child.row-child-second .ag-cell{font-size:.6875rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .row-child .bubble{width:.5rem;height:.5625rem;margin-left:.3125rem;margin-bottom:.0625rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .row-child .ag-cell{font-size:.8125rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .row-child app-resource-status{margin-left:1.4375rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .row-child app-resource-status .circular{height:.75rem;margin-left:1.125rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .row-child app-resource-status>span{font-size:.8125rem;margin-left:.25rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .row-child.row-child-second app-resource-status{margin-left:1.625rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .row-child.row-child-second app-resource-status .circular{margin-left:1.625rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .row-child.row-child-second app-resource-status>span{font-size:.8125rem;margin-left:.25rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .row-child-second .step-header-container .step-content{position:relative;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex-grow:1;flex-shrink:0;padding-right:.3125rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .row-child-second .step-header-container .step-label{padding-left:3.4375rem;margin-left:1.25rem;width:calc(20% + 1.25rem)}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .row-child-second .step-header-container .step-label.step-content{padding-left:0}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .row-child-second .step-header-container .started-label{width:calc(20% + 1.25rem);overflow:hidden;flex-grow:1;flex-shrink:0}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .row-child-second .step-header-container .finished-label{width:calc(20% + 1.25rem);overflow:hidden;flex-grow:1;flex-shrink:0}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .row-child-second .step-header-container .duration-label{width:calc(20% + 1.25rem);overflow:hidden;flex-grow:1;flex-shrink:0}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .row-child-second .step-header-container .state-label{width:calc(20% + 1.25rem);overflow:hidden;flex-grow:1;flex-shrink:0}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper .process-info-container app-resource-status .circular{margin-left:.8125rem;margin-top:-.0625rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper app-table-cell-resource-status{width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;margin-left:-.625rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper app-table-cell-resource-status .bubble{margin-left:.125rem}.data-table-container ::ng-deep #ItemTable.ziti-ag-grid .ag-root-wrapper app-table-cell-resource-status .bubble .circular{left:0;top:1rem}.data-table-container ::ng-deep body{overflow-x:auto!important}.data-table-container ::ng-deep body .ag-theme-alpine.ag-dnd-ghost{height:2.1875rem!important;line-height:2.1875rem!important}.data-table-container ::ng-deep body .ag-header-row{box-sizing:border-box;border-bottom:.25rem solid var(--primary);background-color:var(--formBackground);padding-left:.25rem;line-height:3.4375rem;position:sticky!important;top:0;z-index:10;transition:all .15s linear;opacity:.97;color:var(--text)}.data-table-container ::ng-deep body .ag-header-cell-text{position:relative;float:left;color:var(--tableText);font-size:.875rem;font-weight:600;font-family:Open Sans;height:3.4375rem;transition:.5s;white-space:nowrap;color:var(--text)}.data-table-container ::ng-deep body .ag-header-cell-resize:after{display:none}.data-table-container ::ng-deep body .ag-header-cell-menu-button{height:1rem;width:1rem}.data-table-container ::ng-deep body .ag-icon{font-family:agGridAlpine;font-size:1rem;line-height:1rem;font-style:normal;font-weight:800;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.data-table-container ::ng-deep body .ag-icon-menu:before{content:\"\\f11b\"}.data-table-container ::ng-deep body .ag-icon-menu:hover{color:var(--primary)}.data-table-container ::ng-deep body .ag-icon-asc{margin-top:.4375rem;font-weight:800}.data-table-container ::ng-deep body .ag-icon-desc{margin-top:-.4375rem;font-weight:800}.data-table-container ::ng-deep body .tSelectHeader{left:1.3125rem;top:.625rem}.data-table-container ::ng-deep body .cellMenu{overflow:visible}.data-table-container ::ng-deep body .ag-theme-alpine{-webkit-font-smoothing:antialiased;color:var(--tableText)!important;color:var(--ag-foreground-color, var(--tableText))!important;font-family:Open Sans,sans-serif;font-size:.8125rem;line-height:normal}.data-table-container ::ng-deep body .ag-theme-alpine .ag-row{color:var(--tableText)!important;color:var(--ag-foreground-color, var(--tableText))!important}.data-table-container ::ng-deep body .ag-theme-alpine .ag-header-cell,.data-table-container ::ng-deep body .ag-theme-alpine .ag-header-group-cell{padding-left:.3125rem;padding-right:.9375rem}.os-icon{width:1.4375rem;height:1.4375rem;background-size:1.4375rem 1.4375rem;display:inline-flex;margin-right:.5rem;margin-top:.3125rem;margin-bottom:.3125rem}.os-icon.empty{background:transparent}.os-icon.apple{background-image:url(data:image/png;base64,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)}.os-icon.windows{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAApdSURBVHic7dsxbttYGEZRylCfZAfpvYys23uYxuvI7EDTTBdJRCRTj3z3HECdDf+N9V0I1OlyuSwAQMvb6AMAgNcTAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCzqMPAAC+3unj8/uyLD9vvQQAABzQ2sAvy/Lt3u8LAADYoWcHfo0AAIABth74NQIAADYweuDXCAAAeMDeB36NAACAK44+8GsEAABJsw/8GgEAwJTqA79GAABwSAb+OQIAgF0y8NsSAAAMYeDHEgAAbMLA75sAAOAhBv7YBAAAVxn4uQkAgCgD3yYAACZl4LlHAAAclIHnGQIAYKcMPFsSAACDGHhGEgAAGzHw7JkAAHiQgefIBADADQaemQkAIMvAUyYAgGkZeLhNAACHZeDhcQIA2C0DD9sRAMAwBh7GEQDAZgw87JcAAB5m4OG4BABwk4GHeQkACDPw0CUAoO336AOAMd5GHwAAvJ4AAIAgAQAAQZ4BgA2tPWR3+fX+fchhQJ4AgCd4ih44KgEAdxh4YFYCgDQDD1QJAKZm4AGuEwAcmoEHeIwAYNcMPMA2BABDGXiAMQQAmzLwAPskAHiKgQc4JgHAXQYeYE4CIM7AAzQJgMkZeACuEQAHZ+ABeIQA2DkDD8AWBMBgBh6AEQTAxgw8AHskAJ5k4AE4IgGwwsADMKN8ABh4AIqmDwADDwB/OnwAGHgA+Hu7DwADDwBfb3gAGHgAeL3NA8DAA8D+PB0ABh4Ajmc1AAw8AMznbOABoOe8LMvv0UcAAK/1NvoAAOD1BAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAoNPlchl9AwDwYj4BAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAg6Hz6+LyMPgKqLr/eTyP/vv9/6PIJAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQQIAAIIEAAAECQAACBIAABAkAAAgSAAAQJAAAIAgAQAAQedlWX4sy/Lzzuvb688CALZ0vvx6/3dZln/+f/3h9PH5fREIADCV89oPCAQAmM9qAKwRCABwPE8HwBqBAAD7s3kArBEIAPB6wwNgjUAAgK+3+wBYIxAA4O8dPgDWCAQA+NP0AbBGIABQlA+ANQIBgBkJgCcJBACOSABsTCAAsEcCYDCBAMAIAmDnBAIAWxAABycQAHiEAJicQADgGgEQJxAAmgQAdwkEgDkJAJ4iEACOSQCwKYEAsE8CgKEEAsAYAoBdEwgA2xAAHJpAAHiMAGBqAgHgOgFAmkAAqgQA3CEQgFkJAHjCFwQCwBCny+Uy+gZgkNPHpzcAiHobfQAA8HoCAACCBAAABHkIENp+LL7FAEkeAgRu8jVHmJcAAB4mEOC4BACwGYEA+yUAgGEEAowjAIDdEgiwHQEAHJZAgMcJAGBaAgFuEwBAlkCgTAAA3CAQmJkAAHiQQODIBADARgQCeyYAAAYRCIwkAAB2SiCwJQEAcFACgWcIAIBJCQTuEQAAUQKhTQAAcJVAmJsAAOAhAuHYBAAAmxAI+yYAABhCIIwlAADYJYGwLQEAwCEJhOcIAACmJBDuEwAAJNUDQQAAwBWzB4IAAIAHHD0QBAAAbGDvgSAAAGCA0YEgAABgh7YOBAEAAAf0bCAIAACY0FogCAAACHobfQAA8HoCAACCBAAABAkAAAgSAAAQJAAAIEgAAECQAACAIAEAAEECAACCBAAABAkAAAgSAAAQJAAAIEgAAEDQf5pXFokUyDSTAAAAAElFTkSuQmCC)}.os-icon.linux{background-image:url(data:image/png;base64,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)}.os-icon.android{background-image:url(data:image/png;base64,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)}.os-icon.other{background-image:url(data:image/png;base64,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)}::ng-deep .date-time-container.data-table-date-time{position:fixed;z-index:9999}::ng-deep .date-time-container.data-table-date-time .p-calendar .p-inputtext{height:.0625rem;width:.0625rem;padding:0}::ng-deep .date-time-container.data-table-date-time .filter-button-container{height:3.125rem;display:flex;flex-direction:row;justify-content:center;align-items:center}::ng-deep .date-time-container.data-table-date-time .filter-button-container .toggleButton{padding-left:var(--paddingSmall);padding-right:var(--paddingSmall);text-align:center;background-color:var(--inputBorder);color:var(--tableText);width:unset;height:1.4375rem;line-height:1.4375rem;font-size:.875rem;font-weight:600;position:relative;float:left;cursor:pointer;border-radius:.25rem;margin-right:var(--marginSmall);transition:.3s}::ng-deep .date-time-container.data-table-date-time .filter-button-container .toggleButton:hover{filter:brightness(90%);transition:.3s}::ng-deep .date-time-container.data-table-date-time .p-calendar .p-inputtext{border-top-left-radius:1.25rem;border-bottom-left-radius:1.25rem;text-indent:.3125rem}::ng-deep .date-time-container.data-table-date-time .p-calendar .p-button-icon-only{border-top-right-radius:1.25rem;border-bottom-right-radius:1.25rem}::ng-deep .tag-selector-container.data-table-tag-selector{position:fixed;z-index:9999;width:21.875rem;height:-moz-fit-content;height:fit-content;background:var(--formBackground);display:flex;flex-direction:column;justify-content:flex-end;padding:.625rem;border-radius:var(--inputBorderRadius);box-shadow:var(--shadowLarge);margin-top:-1.25rem;border-color:var(--stroke);border-style:solid}::ng-deep .tag-selector-container.data-table-tag-selector .tag-selector-label{margin-bottom:.3125rem;margin-left:.125rem;font-weight:600;color:var(--menu)}::ng-deep .tag-selector-container.data-table-tag-selector .select2-search__field{height:2.1875rem}::ng-deep .tag-selector-container.data-table-tag-selector .nf-select2-dropdown{width:calc(100% - 1.25rem)!important}::ng-deep .tag-selector-container .icon-close{position:absolute;top:.5rem;right:.5rem;cursor:pointer;color:var(--icon);font-weight:600}::ng-deep .tag-selector-container .icon-close:hover{filter:brightness(50%)}\n"] }]
836
- }], ctorParameters: function () { return [{ type: i1.DataTableService }, { type: i2.DataTableFilterService }]; }, propDecorators: { rowData: [{
837
- type: Input
838
- }], expandRowData: [{
839
- type: Input
840
- }], collapseRowData: [{
841
- type: Input
842
- }], rowValidation: [{
843
- type: Input
844
- }], isTimeSearchAvailable: [{
845
- type: Input
846
- }], isLoading: [{
847
- type: Input
848
- }], tableId: [{
849
- type: Input
850
- }], options: [{
851
- type: Input
852
- }], validateService: [{
853
- type: Input
854
- }], rowsToggled: [{
855
- type: Input
856
- }], tableRefreshCount: [{
857
- type: Input
858
- }], view: [{
859
- type: Input
860
- }], serverSideDataSource: [{
861
- type: Input
862
- }], allowDownload: [{
863
- type: Input
864
- }], startCount: [{
865
- type: Input
866
- }], endCount: [{
867
- type: Input
868
- }], totalCount: [{
869
- type: Input
870
- }], emptyMsg: [{
871
- type: Input
872
- }], filterApplied: [{
873
- type: Input
874
- }], menuItems: [{
875
- type: Input
876
- }], headerActions: [{
877
- type: Input
878
- }], noItemsClass: [{
879
- type: Input
880
- }], entityTypeName: [{
881
- type: Input
882
- }], showNoItemsAdd: [{
883
- type: Input
884
- }], currentPage: [{
885
- type: Input
886
- }], noItemsImage: [{
887
- type: Input
888
- }], rowHeight: [{
889
- type: Input
890
- }], filterName: [{
891
- type: Input
892
- }], filterColumn: [{
893
- type: Input
894
- }], actionRequested: [{
895
- type: Output
896
- }], gridReady: [{
897
- type: Output
898
- }], dragStart: [{
899
- type: Output
900
- }], dragLeave: [{
901
- type: Output
902
- }], pageChanged: [{
903
- type: Output
904
- }], calendar: [{
905
- type: ViewChild,
906
- args: ['calendar', { static: false }]
907
- }], contextMenu: [{
908
- type: ViewChild,
909
- args: ['contextMenu']
910
- }], tableContainer: [{
911
- type: ViewChild,
912
- args: ['tableContainer']
913
- }], columnDefinitions: [{
914
- type: Input
915
- }], refreshCount: [{
916
- type: Input
917
- }] } });
918
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96aXRpLWNvbnNvbGUtbGliL3NyYy9saWIvZmVhdHVyZXMvZGF0YS10YWJsZS9kYXRhLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ppdGktY29uc29sZS1saWIvc3JjL2xpYi9mZWF0dXJlcy9kYXRhLXRhYmxlL2RhdGEtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRixPQUFPLEVBRUwsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixpQ0FBaUM7QUFDakMsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3ZCLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUN2QixPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUE7QUFFM0IsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sc0VBQXNFLENBQUM7QUFDakgsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sb0VBQW9FLENBQUM7QUFDOUcsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFDeEcsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sdURBQXVELENBQUM7QUFDL0YsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFFekYsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0scURBQXFELENBQUM7QUFFNUYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFPbEMsTUFBTSxPQUFPLGtCQUFrQjtJQVE3QixJQUFhLE9BQU8sQ0FBRSxFQUFVO1FBQzlCLElBQUksQ0FBQyxHQUFHLENB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QWM7c0JBQXRCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNJLGVBQWU7c0JBQXhCLE1BQU07Z0JBRUcsU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFzSG1DLFFBQVE7c0JBQWpELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDZCxXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWE7Z0JBQ0ssY0FBYztzQkFBMUMsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBcUJkLGlCQUFpQjtzQkFBN0IsS0FBSztnQkFTTyxZQUFZO3NCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAgICBDb3B5cmlnaHQgTmV0Rm91bmRyeSBJbmMuXG5cbiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcblxuICAgIGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuKi9cblxuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8vIEltcG9ydCB0aGUgcmVzaXplZCBldmVudCBtb2RlbFxuaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCdcblxuaW1wb3J0IHtUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnR9IGZyb20gXCIuL2NvbHVtbi1oZWFkZXJzL3RhYmxlLWNvbHVtbi1kZWZhdWx0L3RhYmxlLWNvbHVtbi1kZWZhdWx0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHtUYWJsZUNvbHVtblNlbGVjdENvbXBvbmVudH0gZnJvbSBcIi4vY29sdW1uLWhlYWRlcnMvdGFibGUtY29sdW1uLXNlbGVjdC90YWJsZS1jb2x1bW4tc2VsZWN0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHtUYWJsZUNvbHVtbk1lbnVDb21wb25lbnR9IGZyb20gXCIuL2NvbHVtbi1oZWFkZXJzL3RhYmxlLWNvbHVtbi1tZW51L3RhYmxlLWNvbHVtbi1tZW51LmNvbXBvbmVudFwiO1xuaW1wb3J0IHtUYWJsZUNlbGxTZWxlY3RDb21wb25lbnR9IGZyb20gXCIuL2NlbGxzL3RhYmxlLWNlbGwtc2VsZWN0L3RhYmxlLWNlbGwtc2VsZWN0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHtUYWJsZUNlbGxNZW51Q29tcG9uZW50fSBmcm9tIFwiLi9jZWxscy90YWJsZS1jZWxsLW1lbnUvdGFibGUtY2VsbC1tZW51LmNvbXBvbmVudFwiO1xuaW1wb3J0IHtEYXRhVGFibGVTZXJ2aWNlfSBmcm9tIFwiLi9kYXRhLXRhYmxlLnNlcnZpY2VcIjtcbmltcG9ydCB7VGFibGVDZWxsVG9rZW5Db21wb25lbnR9IGZyb20gXCIuL2NlbGxzL3RhYmxlLWNlbGwtdG9rZW4vdGFibGUtY2VsbC10b2tlbi5jb21wb25lbnRcIjtcbmltcG9ydCB7RGF0YVRhYmxlRmlsdGVyU2VydmljZSwgRmlsdGVyT2JqfSBmcm9tIFwiLi9kYXRhLXRhYmxlLWZpbHRlci5zZXJ2aWNlXCI7XG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWRhdGEtdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YS10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGEtdGFibGUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRGF0YVRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQge1xuICBASW5wdXQoKSByb3dEYXRhOiBhbnk7XG4gIEBJbnB1dCgpIGV4cGFuZFJvd0RhdGE6IGFueTtcbiAgQElucHV0KCkgY29sbGFwc2VSb3dEYXRhOiBhbnk7XG4gIEBJbnB1dCgpIHJvd1ZhbGlkYXRpb246IGFueTtcbiAgLy8gQElucHV0KCkgY29sdW1uRmlsdGVyczogYW55O1xuICBASW5wdXQoKSBpc1RpbWVTZWFyY2hBdmFpbGFibGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGlzTG9hZGluZzogYW55O1xuICBASW5wdXQoKSBzZXQgdGFibGVJZCggaWQ6IHN0cmluZykge1xuICAgIHRoaXMuc3ZjLnRhYmxlSWQgPSBpZDtcbiAgICB0aGlzLnVwZGF0ZUVudGl0eVR5cGVMYWJlbCgpXG4gIH1cbiAgQElucHV0KCkgb3B0aW9ucyA9IHtub1NlbGVjdDogZmFsc2UsIG5vTWVudTogZmFsc2V9O1xuICBASW5wdXQoKSB2YWxpZGF0ZVNlcnZpY2U6IGFueTtcbiAgQElucHV0KCkgcm93c1RvZ2dsZWQ6IGFueTtcbiAgQElucHV0KCkgdGFibGVSZWZyZXNoQ291bnQ6IGFueTtcbiAgQElucHV0KCkgc2V0IHZpZXcodmFsdWU6IGFueSkge1xuICAgIHRoaXMuX3ZpZXcgPSB2YWx1ZTtcbiAgfVxuICBASW5wdXQoKSBzZXJ2ZXJTaWRlRGF0YVNvdXJjZTogYW55O1xuICBASW5wdXQoKSBhbGxvd0Rvd25sb2FkOiBib29sZWFuO1xuICAvLyBASW5wdXQoKSBmaWx0ZXJzOiBhbnk7XG4gIEBJbnB1dCgpIHN0YXJ0Q291bnQ6IGFueTtcbiAgQElucHV0KCkgZW5kQ291bnQ6IGFueTtcbiAgQElucHV0KCkgdG90YWxDb3VudDogYW55O1xuICBASW5wdXQoKSBlbXB0eU1zZzogYW55O1xuICBASW5wdXQoKSBmaWx0ZXJBcHBsaWVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1lbnVJdGVtczogYW55ID0gW107XG4gIEBJbnB1dCgpIGhlYWRlckFjdGlvbnM6IGFueSA9IFtdO1xuICBASW5wdXQoKSBub0l0ZW1zQ2xhc3M6IGFueSA9ICdiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvYXNzZXRzL3N2Z3MvTm9fQ2xpZW50cy5zdmdcIiknO1xuICBASW5wdXQoKSBlbnRpdHlUeXBlTmFtZSA9ICdJZGVudGl0aWVzJztcbiAgQElucHV0KCkgc2hvd05vSXRlbXNBZGQgPSB0cnVlO1xuICBASW5wdXQoKSBjdXJyZW50UGFnZSA9IDE7XG4gIEBJbnB1dCgpIG5vSXRlbXNJbWFnZSA9ICdub2RhdGEnO1xuICBASW5wdXQoKSByb3dIZWlnaHQgPSB0aGlzLnJlbVRvUHgoMy4xMjUpO1xuICBASW5wdXQoKSBmaWx0ZXJOYW1lID0gJ25hbWUnO1xuICBASW5wdXQoKSBmaWx0ZXJDb2x1bW4gPSAnbmFtZSc7XG4gIEBPdXRwdXQoKSBhY3Rpb25SZXF1ZXN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHsgYWN0aW9uOiBzdHJpbmc7IGl0ZW0/OiBhbnkgfT4oKTtcbiAgLy8gQE91dHB1dCgpIGZpbHRlckNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBncmlkUmVhZHkgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBkcmFnU3RhcnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBkcmFnTGVhdmUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwYWdlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBfdmlldyA9ICdsaXN0JztcbiAgZnJhbWV3b3JrQ29tcG9uZW50cztcbiAgZ3JpZE1vZHVsZXM7XG4gIGdyaWRPcHRpb25zO1xuICB2aXNpYmxlQ29sdW1ucztcbiAgaGlkZGVuQ29sdW1ucztcbiAgdmlzaWJsZUNvbHVtbklkcztcbiAgaGlkZGVuQ29sdW1uSWRzO1xuICBtZXJnZWRDb2x1bW5EZWZpbml0aW9ucztcbiAgb3Blbk1lbnU7XG4gIG9wZW5IZWFkZXJNZW51O1xuICBmaWx0ZXJPcHRpb25zOiBhbnkgPSBbXTtcbiAgc2hvd0ZpbHRlck9wdGlvbnM7XG4gIHNob3dEYXRlVGltZVBpY2tlcjtcbiAgc2hvd1RhZ1NlbGVjdG9yO1xuICBhcHBlbmRBdHRyaWJ1dGVIYXNoID0gdHJ1ZTtcbiAgYXR0cmlidXRlc0NvbHVtbiA9ICcnO1xuICBkYXRlVGltZUNvbHVtbiA9ICcnO1xuICBkYXRlVGltZUZpbHRlckxhYmVsID0gJyc7XG4gIHNlbGVjdGVkUmFuZ2UgPSAnJztcbiAgZGF0ZVZhbHVlO1xuICBtZW51TGVmdDtcbiAgbWVudVRvcDtcbiAgZ3JpZFJlbmRlcmVkO1xuICByZXNpemVIYW5kbGVySW5pdCA9IGZhbHNlO1xuICByZXNpemVHcmlkQ29sdW1uc0RlYm91bmNlZDtcbiAgc2VsZWN0ZWRJdGVtOiBhbnkgPSB7XG4gICAgYWN0aW9uTGlzdDogW10sXG4gIH07XG4gIGVudGl0eVR5cGVMYWJlbCA9ICcnXG4gIGNvbHVtbkZpbHRlcnM6YW55ID0ge307XG4gIHJvbGVBdHRyaWJ1dGVzOiBhbnlbXSA9IFtdO1xuICBuYW1lZEF0dHJpYnV0ZXM6IGFueVtdID0gW107XG4gIHNlbGVjdGVkUm9sZUF0dHJpYnV0ZXM6IGFueVtdID0gW107XG4gIHNlbGVjdGVkTmFtZWRBdHRyaWJ1dGVzOiBhbnlbXSA9IFtdO1xuICAvLyBhcHBsaWVkRmlsdGVycyA9IFtdO1xuICBhdXRvR3JvdXBDb2x1bW5EZWY7XG4gIGN1cnJlbnRIZWFkZXJDb21wb25lbnRQYXJhbXM6IGFueSA9IHt9O1xuICBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBwdWJsaWMgbWVudUNvbHVtbkRlZmluaXRpb24gPSB7XG4gICAgY29sSWQ6ICd6aXRpLWFnLW1lbnUnLFxuICAgIGZpZWxkOiAneml0aS1hZy1tZW51JyxcbiAgICByZXNpemFibGU6IGZhbHNlLFxuICAgIHdpZHRoOiB0aGlzLnJlbVRvUHgoMy4xMjUpLFxuICAgIHNvcnRhYmxlOiBmYWxzZSxcbiAgICBsb2NrUG9zaXRpb246IHRydWUsXG4gICAgc3VwcHJlc3NNb3ZhYmxlOiB0cnVlLFxuICAgIGhlYWRlckNsYXNzOiAnbWVudUhlYWRlcicsXG4gICAgY2VsbENsYXNzOiAndENvbCBjZWxsTWVudScsXG4gICAgY2VsbFJlbmRlcmVyOiAnY2VsbE1lbnVDb21wb25lbnQnLFxuICAgIGNlbGxSZW5kZXJlclBhcmFtczoge1xuICAgICAgb3Blbk1lbnU6ICgkZXZlbnQsIGl0ZW0pID0+IHtcbiAgICAgICAgdGhpcy5vcGVuQWN0aW9uTWVudSgkZXZlbnQsIGl0ZW0pO1xuICAgICAgfSxcbiAgICAgIGNsb3NlTWVudTogKGV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMuY2xvc2VBY3Rpb25NZW51KCk7XG4gICAgICB9LFxuICAgIH0sXG4gICAgc3VwcHJlc3NTaXplVG9GaXQ6IHRydWUsXG4gICAgcGlubmVkOiAncmlnaHQnLFxuICAgIGhlYWRlckNvbXBvbmVudDogVGFibGVDb2x1bW5NZW51Q29tcG9uZW50LFxuICAgIGhlYWRlckNvbXBvbmVudFBhcmFtczoge1xuICAgICAgb3BlbkhlYWRlck1lbnU6ICgkZXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy5vcGVuSGVhZGVyQWN0aW9uTWVudSgkZXZlbnQpO1xuICAgICAgfSxcbiAgICAgIGNsb3NlTWVudTogKGV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMuY2xvc2VBY3Rpb25NZW51KCk7XG4gICAgICB9LFxuICAgIH0sXG4gIH07XG4gIHByaXZhdGUgX2luaXRpYWxDb2x1bW5EZWZzO1xuICBwcml2YXRlIF9yZWZyZXNoQ2VsbHNEZWJvdW5jZWQ7XG4gIHByaXZhdGUgX29uQ29sdW1uc1Jlc2l6ZWREZWJvdW5jZWQ7XG4gIHByaXZhdGUgX3NhdmVDb2x1bW5TdGF0ZURlYm91bmNlZDtcblxuICBwcml2YXRlIHNlbGVjdENvbHVtbkRlZmluaXRpb24gPSB7XG4gICAgY29sSWQ6ICd6aXRpLWFnLXNlbGVjdGVkJyxcbiAgICBmaWVsZDogJ3ppdGktYWctc2VsZWN0ZWQnLFxuICAgIHN1cHByZXNzU2l6ZVRvRml0OiB0cnVlLFxuICAgIGxvY2tQb3NpdGlvbjogdHJ1ZSxcbiAgICBzdXBwcmVzc01vdmFibGU6IHRydWUsXG4gICAgcmVzaXphYmxlOiBmYWxzZSxcbiAgICBwaW5uZWQ6ICdsZWZ0JyxcbiAgICB3aWR0aDogdGhpcy5yZW1Ub1B4KDMuNzUpLFxuICAgIHNvcnRhYmxlOiBmYWxzZSxcbiAgICBoZWFkZXJDbGFzczogJ3NlbGVjdEhlYWRlcicsXG4gICAgY2VsbENsYXNzOiAndENvbCcsXG4gICAgY2VsbFJlbmRlcmVyOiAnY2VsbFNlbGVjdENvbXBvbmVudCcsXG4gICAgY2VsbFJlbmRlcmVyUGFyYW1zOiB7XG4gICAgICB0b2dnbGVJdGVtOiAoaXRlbSkgPT4ge1xuICAgICAgICBpdGVtLnNlbGVjdGVkID0gIWl0ZW0uc2VsZWN0ZWQ7XG4gICAgICAgIHRoaXMuc3ZjLmdyaWRPYmouYXBpLnppdGlBbGxUb2dnbGVkID0gXy5ldmVyeSh0aGlzLnJvd0RhdGEsIHtzZWxlY3RlZDogdHJ1ZX0pO1xuICAgICAgICBfLmRlZmVyKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnN2Yy5ncmlkT2JqLmFwaS5yZWZyZXNoQ2VsbHMoe2ZvcmNlOiB0cnVlfSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmFjdGlvblJlcXVlc3RlZC5lbWl0KHthY3Rpb246ICd0b2dnbGVJdGVtJywgaXRlbTogaXRlbX0pO1xuICAgICAgfSxcbiAgICB9LFxuICAgIGhlYWRlckNvbXBvbmVudDogVGFibGVDb2x1bW5TZWxlY3RDb21wb25lbnQsXG4gICAgaGVhZGVyQ29tcG9uZW50UGFyYW1zOiB7XG4gICAgICB0b2dnbGVBbGw6IChzZWxlY3RlZDogYm9vbGVhbikgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuc3ZjLmdyaWRPYmopIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgXy5mb3JFYWNoKHRoaXMucm93RGF0YSwgKHJvdykgPT4ge1xuICAgICAgICAgIHJvdy5zZWxlY3RlZCA9IHNlbGVjdGVkO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5hY3Rpb25SZXF1ZXN0ZWQuZW1pdCh7YWN0aW9uOiAndG9nZ2xlQWxsJ30pO1xuICAgICAgICBfLmRlZmVyKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnN2Yy5ncmlkT2JqLmFwaS5yZWZyZXNoQ2VsbHMoe2ZvcmNlOiB0cnVlfSk7XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9LFxuICB9O1xuXG4gIEBWaWV3Q2hpbGQoJ2NhbGVuZGFyJywgeyBzdGF0aWM6IGZhbHNlIH0pIGNhbGVuZGFyOiBhbnk7XG4gIEBWaWV3Q2hpbGQoJ2NvbnRleHRNZW51JykgY29udGV4dE1lbnU7XG4gIEBWaWV3Q2hpbGQoJ3RhYmxlQ29udGFpbmVyJykgdGFibGVDb250YWluZXI6IEVsZW1lbnRSZWY7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHN2YzogRGF0YVRhYmxlU2VydmljZSwgcHJpdmF0ZSB0YWJsZUZpbHRlclNlcnZpY2U6IERhdGFUYWJsZUZpbHRlclNlcnZpY2UpIHtcbiAgICB0aGlzLnJlc2l6ZUdyaWRDb2x1bW5zRGVib3VuY2VkID0gXy5kZWJvdW5jZSh0aGlzLnN2Yy5yZXNpemVHcmlkQ29sdW1ucy5iaW5kKHRoaXMuc3ZjKSwgMjAsIHtsZWFkaW5nOiB0cnVlfSk7XG4gICAgdGhpcy5fcmVmcmVzaENlbGxzRGVib3VuY2VkID0gXy5kZWJvdW5jZSh0aGlzLnN2Yy5yZWZyZXNoQ2VsbHMuYmluZCh0aGlzLnN2YyksIDUwKTtcbiAgICB0aGlzLl9vbkNvbHVtbnNSZXNpemVkRGVib3VuY2VkID0gXy5kZWJvdW5jZSh0aGlzLnN2Yy5vbkNvbHVtbnNSZXNpemVkLmJpbmQodGhpcy5zdmMpLCA0MDApO1xuICAgIHRoaXMuX3NhdmVDb2x1bW5TdGF0ZURlYm91bmNlZCA9IF8uZGVib3VuY2UodGhpcy5zdmMuc2F2ZUNvbHVtblN0YXRlLmJpbmQodGhpcy5zdmMpLCA0MDApO1xuICB9XG5cbiAgaGlkZU1lbnVJdGVtKG1lbnVJdGVtLCBzZWxlY3RlZEl0ZW0pIHtcbiAgICAgIGlmIChfLmlzRnVuY3Rpb24obWVudUl0ZW0uaGlkZGVuKSkge1xuICAgICAgICAgIHJldHVybiBtZW51SXRlbS5oaWRkZW4oc2VsZWN0ZWRJdGVtKTtcbiAgICAgIH0gZWxzZSBpZiAoXy5pc0Jvb2xlYW4obWVudUl0ZW0uaGlkZGVuKSkge1xuICAgICAgICAgIHJldHVybiBtZW51SXRlbS5oaWRkZW47XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiAhc2VsZWN0ZWRJdGVtLmFjdGlvbkxpc3QuaW5jbHVkZXMobWVudUl0ZW0uYWN0aW9uKTtcbiAgICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NvbHVtbkRlZmluaXRpb25zO1xuXG4gIEBJbnB1dCgpIHNldCBjb2x1bW5EZWZpbml0aW9ucyh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5fY29sdW1uRGVmaW5pdGlvbnMgPSB2YWx1ZTtcblxuICB9XG5cbiAgZ2V0IHNob3dGaWx0ZXJCYXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3ZpZXcgIT09ICd1cGxvYWQnICYmIHRoaXMuX3ZpZXcgIT09ICdwcm9jZXNzJztcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCByZWZyZXNoQ291bnQodmFsdWU6IG51bWJlcikge1xuICAgIGlmICghdGhpcy5zdmMuZ3JpZE9iaikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBfLmRlZmVyKCgpID0+IHtcbiAgICAgIHRoaXMuc3ZjLmdyaWRPYmouYXBpLnJlZHJhd1Jvd3MoKTtcbiAgICAgIHRoaXMuc3ZjLmdyaWRPYmouYXBpLnJlZnJlc2hDZWxscyh7Zm9yY2U6IHRydWV9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBzaG93VGFibGUoKSB7XG4gICAgY29uc3QgX3Nob3dUYWJsZSA9IHRoaXMuaXNMb2FkaW5nIHx8IHRoaXMuZmlsdGVyQXBwbGllZCB8fCB0aGlzLnJvd0RhdGE/Lmxlbmd0aCA+IDA7XG4gICAgaWYgKF9zaG93VGFibGUgJiYgIXRoaXMucmVzaXplSGFuZGxlckluaXQpIHtcbiAgICAgIHRoaXMuX2luaXRHcmlkUmVzaXplSGFuZGxlcigpO1xuICAgIH1cbiAgICByZXR1cm4gX3Nob3dUYWJsZTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZnJhbWV3b3JrQ29tcG9uZW50cyA9IHtcbiAgICAgIGNlbGxTZWxlY3RDb21wb25lbnQ6IFRhYmxlQ2VsbFNlbGVjdENvbXBvbmVudCxcbiAgICAgIGNlbGxNZW51Q29tcG9uZW50OiBUYWJsZUNlbGxNZW51Q29tcG9uZW50LFxuICAgICAgY2VsbFRva2VuQ29tcG9uZW50OiBUYWJsZUNlbGxUb2tlbkNvbXBvbmVudCxcbiAgICAgIGhlYWRlckNlbGxTZWxlY3RDb21wb25lbnQ6IFRhYmxlQ29sdW1uU2VsZWN0Q29tcG9uZW50LFxuICAgICAgaGVhZGVySGVhZGVyTWVudUNvbXBvbmVudDogVGFibGVDb2x1bW5NZW51Q29tcG9uZW50LFxuICAgICAgaGVhZGVyRGVmYXVsdENvbXBvbmVudDogVGFibGVDb2x1bW5EZWZhdWx0Q29tcG9uZW50LFxuICAgIH07XG5cbiAgICB0aGlzLmF1dG9Hcm91cENvbHVtbkRlZiA9IHtcbiAgICAgIGZpZWxkOiAncHJvY2Vzc1RyZWUnLFxuICAgICAgaGVhZGVyTmFtZTogJ1Byb2Nlc3MgTmFtZScsXG4gICAgICBjZWxsUmVuZGVyZXI6ICdjZWxsUmVzb3VyY2VTdGF0dXNDb21wb25lbnQnLFxuICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgY2VsbFJlbmRlcmVyUGFyYW1zOiB7cmVzb3VyY2VUeXBlOiAncHJvY2Vzcy1leGVjdXRpb24nfSxcbiAgICAgIGhlYWRlckNvbXBvbmVudEZyYW1ld29yazogVGFibGVDb2x1bW5EZWZhdWx0Q29tcG9uZW50LFxuICAgIH07XG5cbiAgICBpZiAodGhpcy5fY29sdW1uRGVmaW5pdGlvbnMpIHtcbiAgICAgIHRoaXMuX2FkZENvbHVtbkV2ZW50cygpO1xuICAgICAgdGhpcy5fYWRkRGVmYXVsdENvbHVtbkRlZnMoKTtcbiAgICAgIHRoaXMuX3N0b3JlSW5pdGlhbENvbHVtbkRlZnMoKTtcbiAgICAgIHRoaXMuX3NldENvbHVtbldpZHRocygpO1xuICAgICAgdGhpcy5fc2V0Q29sdW1uT3JkZXJBbmRWaXNpYmlsaXR5KCk7XG4gICAgICB0aGlzLl9pbml0Q29sdW1uVmlzaWJpbGl0eSgpO1xuICAgICAgdGhpcy5faW5pdEdyaWRPcHRpb25zKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogYW55KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3ZjLmdyaWRPYmogJiYgY2hhbmdlcy5yb3dEYXRhKSB7XG4gICAgICB0aGlzLl9yZWZyZXNoQ2VsbHNEZWJvdW5jZWQoY2hhbmdlcy5yb3dEYXRhKTtcbiAgICB9XG4gIH1cblxuICBjb2x1bW5WaXNpYmlsaXR5Q2hhbmdlZChldmVudCkge1xuICAgIHRoaXMuc2V0Q29sdW1uVmlzaWJpbGl0eUNvbHVtbihldmVudD8uY29sdW1uLCBldmVudD8udmlzaWJsZSk7XG4gIH1cblxuICBvcGVuQWN0aW9uTWVudShldmVudCwgaXRlbSk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gaXRlbTtcbiAgICB0aGlzLm9wZW5NZW51ID0gdHJ1ZTtcbiAgICBfLmRlbGF5KCgpID0+IHtcbiAgICAgIGNvbnN0IGhlaWdodCA9IHRoaXMuY29udGV4dE1lbnU/Lm5hdGl2ZUVsZW1lbnQ/Lm9mZnNldEhlaWdodCB8fCAxMjA7XG4gICAgICBjb25zdCB3aW5kb3dPZmZzZXQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSBldmVudC5jbGllbnRZO1xuICAgICAgY29uc3QgbWVudU9mZnNldCA9IHdpbmRvd09mZnNldCA8PSBoZWlnaHQgPyBoZWlnaHQgLSB3aW5kb3dPZmZzZXQgOiAwO1xuICAgICAgdGhpcy5tZW51TGVmdCA9IGV2ZW50LmNsaWVudFggLSAxMDA7XG4gICAgICB0aGlzLm1lbnVUb3AgPSBldmVudC5jbGllbnRZICsgNSAtIG1lbnVPZmZzZXQ7XG4gICAgfSwgMTApO1xuICB9XG5cbiAgb25HcmlkUmVhZHkocGFyYW1zKSB7XG4gICAgdGhpcy5ncmlkUmVhZHkuZW1pdChwYXJhbXMpO1xuICB9XG5cbiAgcmVzZXRUYWJsZUNvbHVtbnMoKSB7XG4gICAgaWYgKCF0aGlzLnN2Yy5ncmlkT2JqKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMubWVyZ2VkQ29sdW1uRGVmaW5pdGlvbnMgPSBfLmNsb25lRGVlcCh0aGlzLl9pbml0aWFsQ29sdW1uRGVmcyk7XG4gICAgdGhpcy5zdmMuZ3JpZE9iai5hcGkuc2V0Q29sdW1uRGVmcyh0aGlzLm1lcmdlZENvbHVtbkRlZmluaXRpb25zKTtcbiAgICB0aGlzLnN2Yy5yZXNldENvb2tpZUNvbmZpZygpO1xuICAgIHRoaXMuc3ZjLmdyaWRPYmouYXBpLnJlc2V0Q29sdW1uU3RhdGUoKTtcbiAgICBfLmRlZmVyKCgpID0+IHtcbiAgICAgIHRoaXMuX3VwZGF0ZUhpZGRlbkNvbHVtbnMoKTtcbiAgICAgIHRoaXMuc3ZjLnJlc2l6ZUdyaWRDb2x1bW5zKCk7XG4gICAgfSk7XG4gIH1cblxuICBvcGVuSGVhZGVyQWN0aW9uTWVudShldmVudCk6IHZvaWQge1xuICAgIHRoaXMubWVudUxlZnQgPSBldmVudC5jbGllbnRYIC0gMTUwO1xuICAgIHRoaXMubWVudVRvcCA9IGV2ZW50LmNsaWVudFkgKyA1O1xuICAgIF8uZGVsYXkoKCkgPT4ge1xuICAgICAgdGhpcy5vcGVuSGVhZGVyTWVudSA9IHRydWU7XG4gICAgfSwgMTAwKTtcbiAgfVxuXG4gIGNsb3NlQWN0aW9uTWVudSgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IHtcbiAgICAgIGFjdGlvbkxpc3Q6IFtdLFxuICAgIH07XG4gICAgdGhpcy5vcGVuTWVudSA9IGZhbHNlO1xuICAgIHRoaXMub3BlbkhlYWRlck1lbnUgPSBmYWxzZTtcbiAgfVxuXG4gIG9wZW5IZWFkZXJGaWx0ZXIoZXZlbnQsIG9wdGlvbnMsIHR5cGUsIGNvbHVtbklkLCBmaWx0ZXJMYWJlbCwgaGVhZGVyQ29tcG9uZW50UGFyYW1zKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJPcHRpb25zID0gb3B0aW9ucztcbiAgICB0aGlzLm1lbnVMZWZ0ID0gZXZlbnQuY2xpZW50WDtcbiAgICB0aGlzLm1lbnVUb3AgPSBldmVudC5jbGllbnRZICsgMTA7XG4gICAgaWYgKHR5cGUgPT09ICdEQVRFVElNRScpIHtcbiAgICAgIHRoaXMuZGF0ZVRpbWVDb2x1bW4gPSBjb2x1bW5JZDtcbiAgICAgIHRoaXMuZGF0ZVRpbWVGaWx0ZXJMYWJlbCA9IGZpbHRlckxhYmVsIHx8ICdEYXRlOiAnO1xuICAgICAgXy5kZWxheSgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2hvd0RhdGVUaW1lUGlja2VyID0gdHJ1ZTtcbiAgICAgIH0sIDEwKTtcbiAgICAgIF8uZGVsYXkoKCkgPT4ge1xuICAgICAgICB0aGlzLmNhbGVuZGFyLnRvZ2dsZSgpO1xuICAgICAgfSwgMTAwKTtcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdBVFRSSUJVVEUnKSB7XG4gICAgICB0aGlzLmFwcGVuZEF0dHJpYnV0ZUhhc2ggPSBoZWFkZXJDb21wb25lbnRQYXJhbXMuYXBwZW5kQXR0cmlidXRlSGFzaCAhPT0gZmFsc2U7XG4gICAgICB0aGlzLmF0dHJpYnV0ZXNDb2x1bW4gPSBjb2x1bW5JZDtcbiAgICAgIHRoaXMucm9sZUF0dHJpYnV0ZXMgPSBoZWFkZXJDb21wb25lbnRQYXJhbXM/LmdldFJvbGVBdHRyaWJ1dGVzKCk7XG4gICAgICB0aGlzLm5hbWVkQXR0cmlidXRlcyA9IGhlYWRlckNvbXBvbmVudFBhcmFtcz8uZ2V0TmFtZWRBdHRyaWJ1dGVzKCk7XG4gICAgICB0aGlzLnNlbGVjdGVkUm9sZUF0dHJpYnV0ZXMgPSBoZWFkZXJDb21wb25lbnRQYXJhbXMuZ2V0U2VsZWN0ZWRSb2xlQXR0cmlidXRlcygpO1xuICAgICAgdGhpcy5zZWxlY3RlZE5hbWVkQXR0cmlidXRlcyA9IGhlYWRlckNvbXBvbmVudFBhcmFtcy5nZXRTZWxlY3RlZE5hbWVkQXR0cmlidXRlcygpO1xuICAgICAgdGhpcy5kYXRlVGltZUZpbHRlckxhYmVsID0gZmlsdGVyTGFiZWw7XG4gICAgICB0aGlzLmN1cnJlbnRIZWFkZXJDb21wb25lbnRQYXJhbXMgPSBoZWFkZXJDb21wb25lbnRQYXJhbXM7XG4gICAgICBfLmRlbGF5KCgpID0+IHtcbiAgICAgICAgdGhpcy5zaG93VGFnU2VsZWN0b3IgPSB0cnVlO1xuICAgICAgfSwgMTAwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgXy5kZWZlcigoKSA9PiB7XG4gICAgICAgIHRoaXMuc2hvd0ZpbHRlck9wdGlvbnMgPSB0cnVlO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgc2V0RGF0ZVJhbmdlRmlsdGVyKHJhbmdlKSB7XG4gICAgbGV0IHN0YXJ0RGF0ZTtcbiAgICBsZXQgbGFiZWw7XG4gICAgbGV0IGVuZERhdGUgPSBtb21lbnQoKTtcbiAgICBsZXQgY2xvc2VDYWxlbmRhciA9IHRydWU7XG4gICAgdGhpcy5zZWxlY3RlZFJhbmdlID0gcmFuZ2U7XG4gICAgc3dpdGNoIChyYW5nZSkge1xuICAgICAgY2FzZSAnaG91cic6XG4gICAgICAgIHN0YXJ0RGF0ZSA9IG1vbWVudCgpLnN1YnRyYWN0KDEsICdob3VycycpO1xuICAgICAgICBsYWJlbCA9ICdMYXN0IEhvdXInO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2RheSc6XG4gICAgICAgIHN0YXJ0RGF0ZSA9IG1vbWVudCgpLnN1YnRyYWN0KDI0LCAnaG91cnMnKTtcbiAgICAgICAgbGFiZWwgPSAnTGFzdCBEYXknO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3dlZWsnOlxuICAgICAgICBzdGFydERhdGUgPSBtb21lbnQoKS5zdWJ0cmFjdCg3LCAnZGF5cycpO1xuICAgICAgICBsYWJlbCA9ICdMYXN0IFdlZWsnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ21vbnRoJzpcbiAgICAgICAgc3RhcnREYXRlID0gbW9tZW50KCkuc3VidHJhY3QoMSwgJ21vbnRoJyk7XG4gICAgICAgIGxhYmVsID0gJ0xhc3QgTW9udGgnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2N1c3RvbSc6XG4gICAgICAgIGlmICghdGhpcy5kYXRlVmFsdWUpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3RhcnREYXRlID0gbW9tZW50KHRoaXMuZGF0ZVZhbHVlWzBdKTtcbiAgICAgICAgaWYgKHRoaXMuZGF0ZVZhbHVlWzFdICE9PSB1bmRlZmluZWQgJiYgdGhpcy5kYXRlVmFsdWVbMV0gIT09IG51bGwpIHtcbiAgICAgICAgICBlbmREYXRlID0gbW9tZW50KHRoaXMuZGF0ZVZhbHVlWzFdKTtcbiAgICAgICAgfVxuICAgICAgICBsYWJlbCA9ICdDdXN0b20nO1xuICAgICAgICBjbG9zZUNhbGVuZGFyID0gZmFsc2U7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgc3RhcnREYXRlID0gbW9tZW50KCkuc3VidHJhY3QoMjQsICdob3VycycpO1xuICAgICAgICBsYWJlbCA9ICdMYXN0IERheSc7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBjb25zdCBzdGFydERhdGVSYW5nZSA9IGVuY29kZVVSSUNvbXBvbmVudChzdGFydERhdGUudG9JU09TdHJpbmcoKSk7XG4gICAgY29uc3QgZW5kRGF0ZVJhbmdlID0gZW5jb2RlVVJJQ29tcG9uZW50KGVuZERhdGUudG9JU09TdHJpbmcoKSk7XG4gICAgdGhpcy5jb2x1bW5GaWx0ZXJzW3RoaXMuZGF0ZVRpbWVDb2x1bW5dID0gW3N0YXJ0RGF0ZVJhbmdlLCBlbmREYXRlUmFuZ2VdO1xuXG4gICAgaWYgKGNsb3NlQ2FsZW5kYXIpIHtcbiAgICAgIHRoaXMuY2FsZW5kYXIudG9nZ2xlKCk7XG4gICAgfVxuICAgIGlmIChyYW5nZSAhPT0gJ2N1c3RvbScpIHtcbiAgICAgIHRoaXMuZGF0ZVZhbHVlID0gW3N0YXJ0RGF0ZS50b0RhdGUoKSwgZW5kRGF0ZS50b0RhdGUoKV07XG4gICAgfVxuICAgIGNvbnN0IGZpbHRlck9iajogRmlsdGVyT2JqID0ge1xuICAgICAgY29sdW1uSWQ6IHRoaXMuZGF0ZVRpbWVDb2x1bW4sXG4gICAgICB2YWx1ZTogW3N0YXJ0RGF0ZVJhbmdlLCBlbmREYXRlUmFuZ2VdLFxuICAgICAgbGFiZWw6IGxhYmVsLFxuICAgICAgZmlsdGVyTmFtZTogdGhpcy5kYXRlVGltZUZpbHRlckxhYmVsLFxuICAgICAgdHlwZTogJ0RBVEVUSU1FJ1xuICAgIH07XG5cbiAgICB0aGlzLnRhYmxlRmlsdGVyU2VydmljZS51cGRhdGVGaWx0ZXIoZmlsdGVyT2JqKTtcbiAgfVxuXG4gIHRhZ1NlbGVjdGlvbkNoYW5nZWQoZXZlbnQsIGlzUm9sZSkge1xuICAgIGxldCBsYWJlbCA9ICcnO1xuICAgIGxldCB2YWx1ZSA9ICcnO1xuICAgIGlmIChpc1JvbGUpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWROYW1lZEF0dHJpYnV0ZXMgPSBbXTtcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkUm9sZUF0dHJpYnV0ZXMubGVuZ3RoID4gMSkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkUm9sZUF0dHJpYnV0ZXMgPSBbXy5sYXN0KHRoaXMuc2VsZWN0ZWRSb2xlQXR0cmlidXRlcyldO1xuICAgICAgfVxuICAgICAgdGhpcy5zZWxlY3RlZFJvbGVBdHRyaWJ1dGVzLmZvckVhY2goKGF0dHIsIGluZGV4KSA9PiB7XG4gICAgICAgIGlmIChpbmRleCA+IDApIHtcbiAgICAgICAgICBsYWJlbCArPSAnLCAnO1xuICAgICAgICAgIHZhbHVlICs9ICcsICc7XG4gICAgICAgIH1cbiAgICAgICAgbGFiZWwgKz0gKCh0aGlzLmFwcGVuZEF0dHJpYnV0ZUhhc2ggPyAnIycgOiAnJykgKyBhdHRyKTtcbiAgICAgICAgdmFsdWUgKz0gKCh0aGlzLmFwcGVuZEF0dHJpYnV0ZUhhc2ggPyAnJTIzJyA6ICcnKSArIGF0dHIpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRSb2xlQXR0cmlidXRlcyA9IFtdO1xuICAgICAgY29uc3QgYXR0cklkTWFwID0gdGhpcy5jdXJyZW50SGVhZGVyQ29tcG9uZW50UGFyYW1zLmdldE5hbWVkQXR0cmlidXRlc01hcCgpO1xuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWROYW1lZEF0dHJpYnV0ZXMubGVuZ3RoID4gMSkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkTmFtZWRBdHRyaWJ1dGVzID0gW18ubGFzdCh0aGlzLnNlbGVjdGVkTmFtZWRBdHRyaWJ1dGVzKV07XG4gICAgICB9XG4gICAgICB0aGlzLnNlbGVjdGVkTmFtZWRBdHRyaWJ1dGVzLmZvckVhY2goKGF0dHIsIGluZGV4KSA9PiB7XG4gICAgICAgIGlmIChpbmRleCA+IDApIHtcbiAgICAgICAgICBsYWJlbCArPSAnLCAnO1xuICAgICAgICAgIHZhbHVlICs9ICcsICc7XG4gICAgICAgIH1cbiAgICAgICAgbGFiZWwgKz0gJ0AnICsgYXR0cjtcbiAgICAgICAgdmFsdWUgKz0gJyU0MCcgKyBhdHRySWRNYXBbYXR0cl07XG4gICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgZmlsdGVyT2JqOiBGaWx0ZXJPYmogPSB7XG4gICAgICBjb2x1bW5JZDogdGhpcy5hdHRyaWJ1dGVzQ29sdW1uLFxuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgbGFiZWw6IGxhYmVsLFxuICAgICAgZmlsdGVyTmFtZTogdGhpcy5kYXRlVGltZUZpbHRlckxhYmVsLFxuICAgICAgdHlwZTogJ0FUVFJJQlVURSdcbiAgICB9O1xuICAgIHRoaXMuY3VycmVudEhlYWRlckNvbXBvbmVudFBhcmFtcy5zZXRTZWxlY3RlZFJvbGVBdHRyaWJ1dGVzKHRoaXMuc2VsZWN0ZWRSb2xlQXR0cmlidXRlcyk7XG4gICAgdGhpcy5jdXJyZW50SGVhZGVyQ29tcG9uZW50UGFyYW1zLnNldFNlbGVjdGVkTmFtZWRBdHRyaWJ1dGVzKHRoaXMuc2VsZWN0ZWROYW1lZEF0dHJpYnV0ZXMpO1xuICAgIHRoaXMudGFibGVGaWx0ZXJTZXJ2aWNlLnVwZGF0ZUZpbHRlcihmaWx0ZXJPYmopO1xuICB9XG5cbiAgYXBwbHlGaWx0ZXIoZXZlbnQsIGZpbHRlcikge1xuICAgIHRoaXMudGFibGVGaWx0ZXJTZXJ2aWNlLnVwZGF0ZUZpbHRlcihmaWx0ZXIpO1xuICAgIHRoaXMuY2xvc2VIZWFkZXJGaWx0ZXIoZXZlbnQpO1xuICB9XG5cbiAgY2xvc2VIZWFkZXJGaWx0ZXIoZXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dGaWx0ZXJPcHRpb25zID0gZmFsc2U7XG4gIH1cblxuICBjbG9zZURhdGVUaW1lKGV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5zaG93RGF0ZVRpbWVQaWNrZXIgPSBmYWxzZTtcbiAgfVxuXG4gIGNsb3NlVGFnU2VsZWN0b3IoZXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dUYWdTZWxlY3RvciA9IGZhbHNlO1xuICB9XG5cbiAgb3BlbkNyZWF0ZSgpIHtcbiAgICB0aGlzLmFjdGlvblJlcXVlc3RlZC5lbWl0KHthY3Rpb246ICdjcmVhdGUnfSk7XG4gIH1cblxuICBhbnlTZWxlY3RlZCgpIHtcbiAgICByZXR1cm4gXy5zb21lKHRoaXMucm93RGF0YSwge3NlbGVjdGVkOiB0cnVlfSk7XG4gIH1cblxuICBzaG93RG93bmxvYWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWxsb3dEb3dubG9hZCAmJiB0aGlzLl92aWV3ICE9PSAncHJvY2Vzcyc7XG4gIH1cblxuICBfaW5pdEdyaWRSZXNpemVIYW5kbGVyKCkge1xuICAgIGlmICghdGhpcy50YWJsZUNvbnRhaW5lcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcihlbnRyaWVzID0+IHtcbiAgICAgIHRoaXMucmVzaXplR3JpZENvbHVtbnNEZWJvdW5jZWQoKTtcbiAgICB9KTtcbiAgICBvYnNlcnZlci5vYnNlcnZlKHRoaXMudGFibGVDb250YWluZXIubmF0aXZlRWxlbWVudCk7XG4gICAgdGhpcy5yZXNpemVIYW5kbGVySW5pdCA9IHRydWU7XG4gIH1cblxuICBfaW5pdEdyaWRPcHRpb25zKCkge1xuICAgIHRoaXMuZ3JpZE9wdGlvbnMgPSB7XG4gICAgICBwYWdpbmF0aW9uOiBmYWxzZSxcbiAgICAgIHJvd1NlbGVjdGlvbjogJ3NpbmdsZScsXG4gICAgICByb3dDbGFzczogJ3ppdGktdGFibGUtcm93JyxcbiAgICAgIHJvd0hlaWdodDogdGhpcy5yb3dIZWlnaHQsXG4gICAgICBpbW11dGFibGVEYXRhOiB0cnVlLFxuICAgICAgc3VwcHJlc3NSb3dDbGlja1NlbGVjdGlvbjogdHJ1ZSxcbiAgICAgIHN1cHByZXNzSG9yaXpvbnRhbFNjcm9sbDogZmFsc2UsXG4gICAgICBzdG9wRWRpdGluZ1doZW5HcmlkTG9zZXNGb2N1czogdHJ1ZSxcbiAgICAgIHN1cHByZXNzUHJvcGVydHlOYW1lc0NoZWNrOiB0cnVlLFxuICAgICAgYW5pbWF0ZVJvd3M6IHRydWUsXG4gICAgICBkZWZhdWx0Q29sRGVmOiB7XG4gICAgICAgIHNvcnRhYmxlOiBmYWxzZSxcbiAgICAgICAgZmlsdGVyOiBmYWxzZSwgLy8gc2V0IGZpbHRlcmluZyBvbiBmb3IgYWxsIGNvbHVtbnNcbiAgICAgIH0sXG4gICAgICBvblJvd0RyYWdNb3ZlOiAocGFyYW1zKSA9PiB7XG4gICAgICAgIHRoaXMuZHJhZ1N0YXJ0LmVtaXQocGFyYW1zKTtcbiAgICAgIH0sXG4gICAgICBvblJvd0RyYWdMZWF2ZTogKHBhcmFtcykgPT4ge1xuICAgICAgICB0aGlzLmRyYWdMZWF2ZS5lbWl0KHBhcmFtcyk7XG4gICAgICB9LFxuICAgICAgb25Sb3dEcmFnRW5kOiAoKSA9PiB7XG4gICAgICAgICQoJy5hdHRyaWJ1dGUtaXRlbScpLnNob3coKTtcbiAgICAgICAgJCgnLmRyYWctaG92ZXInKS5yZW1vdmVDbGFzcygnZHJhZy1ob3ZlcicpO1xuICAgICAgICAkKCcjQ29sdW1uVmlzaWJpbGl0eUhlYWRlcicpLnRyaWdnZXIoJ2NsaWNrJyk7XG4gICAgICAgICQoJy5uZXctYXR0cmlidXRlLXRhcmdldCcpLmhpZGUoKTtcbiAgICAgIH0sXG4gICAgICByb3dDbGFzc1J1bGVzOiB7XG4gICAgICAgIC8vIHJvdyBzdHlsZSBmdW5jdGlvblxuICAgICAgICAncm93LWludmFsaWQnOiBmdW5jdGlvbiAocGFyYW1zKSB7XG4gICAgICAgICAgcmV0dXJuIF8uZ2V0KHBhcmFtcywgJ2RhdGEuaW52YWxpZCcpO1xuICAgICAgICB9LFxuICAgICAgICAncm93LWNvcGllZCc6IGZ1bmN0aW9uIChwYXJhbXMpIHtcbiAgICAgICAgICByZXR1cm4gXy5nZXQocGFyYW1zLCAnZGF0YS5jb3BpZWQnKTtcbiAgICAgICAgfSxcbiAgICAgICAgJ3Jvdy1jaGlsZC1zdWItcHJvY2Vzcyc6IGZ1bmN0aW9uIChwYXJhbXMpIHtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICBwYXJhbXMuYXBpLnZpZXcgPT09ICdwcm9jZXNzJyAmJlxuICAgICAgICAgICAgICAhXy5nZXQocGFyYW1zLCAnZGF0YS5pc1Jvb3QnKSAmJlxuICAgICAgICAgICAgICAhXy5pc0VtcHR5KF8uZ2V0KHBhcmFtcywgJ2RhdGEuc3VicHJvY2Vzc0lkJykpXG4gICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgICAgJ3Jvdy1jaGlsZCc6IGZ1bmN0aW9uIChwYXJhbXMpIHtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAocGFyYW1zLmFwaS52aWV3ID09PSAncHJvY2VzcycgfHwgcGFyYW1zLmFwaS52aWV3ID09PSAndXNlci1yb2xlcycpICYmXG4gICAgICAgICAgICAgICFfLmdldChwYXJhbXMsICdkYXRhLmlzUm9vdCcpICYmXG4gICAgICAgICAgICAgICFfLmlzRW1wdHkoXy5nZXQocGFyYW1zLCAnZGF0YS5wYXJlbnRJZCcpKVxuICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgICAgICdyb3ctY2hpbGQtc2Vjb25kJzogZnVuY3Rpb24gKHBhcmFtcykge1xuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIHBhcmFtcy5hcGkudmlldyA9PT0gJ3Byb2Nlc3MnICYmXG4gICAgICAgICAgICAgICFfLmdldChwYXJhbXMsICdkYXRhLmlzUm9vdCcpICYmXG4gICAgICAgICAgICAgIF8uZ2V0KHBhcmFtcywgJ2RhdGEuaXNQYXJhbGxlbCcpXG4gICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgICAgJ3Jvdy1jaGlsZC1ldmVuJzogZnVuY3Rpb24gKHBhcmFtcykge1xuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIChwYXJhbXMuYXBpLnZpZXcgPT09ICdwcm9jZXNzJyB8fCBwYXJhbXMuYXBpLnZpZXcgPT09ICd1c2VyLXJvbGVzJykgJiZcbiAgICAgICAgICAgICAgXy5nZXQocGFyYW1zLCAnZGF0YS5wYXJlbnRJbmRleCcpICUgMiA+IDBcbiAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgICAncm93LWNoaWxkLW9kZCc6IGZ1bmN0aW9uIChwYXJhbXMpIHtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAocGFyYW1zLmFwaS52aWV3ID09PSAncHJvY2VzcycgfHwgcGFyYW1zLmFwaS52aWV3ID09PSAndXNlci1yb2xlcycpICYmXG4gICAgICAgICAgICAgIF8uZ2V0KHBhcmFtcywgJ2RhdGEucGFyZW50SW5kZXgnKSAlIDIgPT09IDBcbiAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgICAncm93LWNoaWxkLXdhcm4nOiBmdW5jdGlvbiAocGFyYW1zKSB7XG4gICAgICAgICAgcmV0dXJuIHBhcmFtcy5hcGkudmlldyA9PT0gJ3Byb2Nlc3MnICYmIF8uZ2V0KHBhcmFtcywgJ2RhdGEuc3RhdGUnKSA9PT0gJ1dBUk5JTkcnO1xuICAgICAgICB9LFxuICAgICAgICAncm93LWNoaWxkLWhlYWRlcic6IGZ1bmN0aW9uIChwYXJhbXMpIHtcbiAgICAgICAgICByZXR1cm4gcGFyYW1zLmFwaS52aWV3ID09PSAncHJvY2VzcycgJiYgXy5nZXQocGFyYW1zLCAnZGF0YS5yb3dUeXBlJykgPT09ICdzdGVwLWhlYWRlcic7XG4gICAgICAgIH0sXG4gICAgICAgICdyb3ctcm9sZS1pdGVtJzogZnVuY3Rpb24gKHBhcmFtcykge1xuICAgICAgICAgIHJldHVybiBfLmdldChwYXJhbXMsICdkYXRhLnJvbGVJdGVtJyk7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgZ2V0Um93SGVpZ2h0OiAocGFyYW1zKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlbVRvUHgoMy4xMjUpO1xuICAgICAgfSxcbiAgICAgIG9uQ2VsbEVkaXRpbmdTdG9wcGVkOiAoZXZlbnRPYmopID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLnZhbGlkYXRlU2VydmljZSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmaWVsZCA9IF8uZ2V0KGV2ZW50T2JqLCAnY29sRGVmLmZpZWxkJywgJycpO1xuICAgICAgICBpZiAoXy5pbmNsdWRlcyhmaWVsZC50b0xvd2VyQ2FzZSgpLCAnYXR0cmlidXRlJykpIHtcbiAgICAgICAgICBjb25zdCBuZXdWYWwgPSBldmVudE9iai5uZXdWYWx1ZS5zcGxpdCgnLCcpO1xuICAgICAgICAgIF8uc2V0KGV2ZW50T2JqLCBgZGF0YS4ke2ZpZWxkfWAsIG5ld1ZhbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgXy5zZXQoZXZlbnRPYmosIGBkYXRhLiR7ZmllbGR9YCwgZXZlbnRPYmoubmV3VmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3ZhbGlkYXRlVGFibGUoZXZlbnRPYmopO1xuICAgICAgfSxcbiAgICAgIGdldFJvd05vZGVJZDogKGRhdGEpID0+IGRhdGEubmFtZSxcbiAgICAgIG9uQm9keVNjcm9sbDogKHNjcm9sbGVyKSA9PiB7XG4gICAgICAgIHRoaXMuX2hhbmRsZVRhYmxlU2Nyb2xsKHNjcm9sbGVyKTtcbiAgICAgIH0sXG4gICAgICBvbkdyaWRSZWFkeTogKGdyaWQpID0+IHtcbiAgICAgICAgZ3JpZC5hcGkueml0aUFsbFRvZ2dsZWQgPSBmYWxzZTtcbiAgICAgICAgZ3JpZC5hcGkueml0aUhpZGVDb2x1bW4gPSB0aGlzLnNldENvbHVtblZpc2liaWxpdHlDb2x1bW4uYmluZCh0aGlzKTtcbiAgICAgICAgZ3JpZC5hcGkudmFsaWRhdGVUYWJsZSA9IHRoaXMuX3ZhbGlkYXRlVGFibGUuYmluZCh0aGlzKTtcbiAgICAgICAgZ3JpZC5hcGkudmlldyA9IHRoaXMuX3ZpZXc7XG4gICAgICAgIGdyaWQuYXBpLnppdGlSb3dEYXRhID0gdGhpcy5yb3dEYXRhO1xuICAgICAgICBncmlkLmFwaS5vcGVuSGVhZGVyRmlsdGVyID0gdGhpcy5vcGVuSGVhZGVyRmlsdGVyLmJpbmQodGhpcyk7XG5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAgICAgICBncmlkLmFwaS5yb3dzVG9nZ2xlZCA9IHRoaXMucm93c1RvZ2dsZWQgPyB0aGlzLnJvd3NUb2dnbGVkLmJpbmQodGhpcykgOiAoKSA9PiB7fTtcbiAgICAgICAgaWYgKHRoaXMuc2VydmVyU2lkZURhdGFTb3VyY2UpIHtcbiAgICAgICAgICBncmlkLmFwaS5zZXRTZXJ2ZXJTaWRlRGF0YXNvdXJjZSh0aGlzLnNlcnZlclNpZGVEYXRhU291cmNlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN2Yy5ncmlkT2JqID0gZ3JpZDtcbiAgICAgICAgXy5kZWZlcih0aGlzLl9hcHBseUNvbHVtblN0YXRlLmJpbmQodGhpcykpO1xuICAgICAgfSxcbiAgICAgIG9uQ29sdW1uVmlzaWJsZTogKGV2ZW50T2JqKSA9PiB7XG4gICAgICAgIGlmICghZXZlbnRPYmouY29sdW1uKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXBkYXRlQ29sdW1uVmlzaWJpbGl0eShldmVudE9iai5jb2x1bW4uY29sRGVmLmNvbElkLCBldmVudE9iai52aXNpYmxlKTtcbiAgICAgICAgaWYgKGV2ZW50T2JqLnZpc2libGUpIHtcbiAgICAgICAgICB0aGlzLnN2Yy5ncmlkT2JqLmFwaS5tb3ZlQ29sdW1ucyhcbiAgICAgICAgICAgICAgW2V2ZW50T2JqLmNvbHVtbi5jb2xEZWYuY29sSWRdLFxuICAgICAgICAgICAgICB0aGlzLm1lcmdlZENvbHVtbkRlZmluaXRpb25zLmxlbmd0aCAtIDFcbiAgICAgICAgICApO1xuICAgICAgICAgIF8uZGVmZXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdmMuZ3JpZE9iai5hcGkuZW5zdXJlQ29sdW1uVmlzaWJsZShldmVudE9iai5jb2x1bW4uY29sRGVmLmNvbElkKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl91cGRhdGVHcmlkQ29sdW1ucygpO1xuICAgICAgICB0aGlzLnN2Yy5zYXZlQ29sdW1uU3RhdGUoKTtcbiAgICAgIH0sXG4gICAgICBvbkZpcnN0RGF0YVJlbmRlcmVkOiAoZXZlbnRPYmopID0+IHtcbiAgICAgICAgdGhpcy5zdmMucmVzaXplR3JpZENvbHVtbnMoKTtcbiAgICAgICAgdGhpcy5ncmlkUmVuZGVyZWQgPSB0cnVlO1xuICAgICAgfSxcbiAgICAgIG9uQ29sdW1uUGlubmVkOiAoZXZlbnRPYmopID0+IHtcbiAgICAgICAgaWYgKCFldmVudE9iai5jb2x1bW4pIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29sSWQgPSBldmVudE9iai5jb2x1bW4uY29sRGVmLmNvbElkO1xuICAgICAgICBjb25zdCBwaW5uZWQgPSBldmVudE9iai5waW5uZWQgPT09ICdsZWZ0JztcbiAgICAgICAgdGhpcy5tZXJnZWRDb2x1bW5EZWZpbml0aW9ucyA9IF8ubWFwKHRoaXMubWVyZ2VkQ29sdW1uRGVmaW5pdGlvbnMsIChjb2xEZWYpID0+IHtcbiAgICAgICAgICBpZiAoY29sRGVmLmNvbElkID09PSBjb2xJZCkge1xuICAgICAgICAgICAgY29sRGVmLmxvY2tQb3NpdGlvbiA9IHBpbm5lZDtcbiAgICAgICAgICAgIGNvbERlZi5zdXBwcmVzc01vdmFibGUgPSBwaW5uZWQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBjb2xEZWY7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl91cGRhdGVHcmlkQ29sdW1ucygpO1xuICAgICAgICB0aGlzLnN2Yy5yZXNpemVHcmlkQ29sdW1ucygpO1xuICAgICAgICB0aGlzLnN2Yy5zYXZlQ29sdW1uU3RhdGUoKTtcbiAgICAgIH0sXG4gICAgICBvbkNvbHVtblJlc2l6ZWQ6IChldmVudE9iaikgPT4ge1xuICAgICAgICBpZiAoIWV2ZW50T2JqLmNvbHVtbiB8fCBldmVudE9iai5zb3VyY2UgPT09ICdzaXplQ29sdW1uc1RvRml0Jykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9vbkNvbHVtbnNSZXNpemVkRGVib3VuY2VkKGV2ZW50T2JqLmNvbHVtbik7XG4gICAgICB9LFxuICAgICAgb25Db2x1bW5Nb3ZlZDogKGV2ZW50T2JqKSA9PiB7XG4gICAgICAgIHRoaXMuX3NhdmVDb2x1bW5TdGF0ZURlYm91bmNlZCgpO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgX3ZhbGlkYXRlVGFibGUoZXZlbnRPYmopIHtcbiAgICB0aGlzLnJvd0RhdGFbZXZlbnRPYmoucm93SW5kZXhdID0gZXZlbnRPYmouZGF0YTtcbiAgICBfLmRlbGF5KCgpID0+IHtcbiAgICAgIHRoaXMudmFsaWRhdGVTZXJ2aWNlKHRoaXMucm93RGF0YSk7XG4gICAgICBfLmRlbGF5KCgpID0+IHtcbiAgICAgICAgdGhpcy5zdmMuZ3JpZE9iai5hcGkucmVmcmVzaENlbGxzKHtmb3JjZTogdHJ1ZX0pO1xuICAgICAgICB0aGlzLnN2Yy5ncmlkT2JqLmFwaS5yZWRyYXdSb3dzKCk7XG4gICAgICB9LCA1MCk7XG4gICAgfSwgNTApO1xuICB9XG5cbiAgX2FwcGx5Q29sdW1uU3RhdGUoKSB7XG4gICAgY29uc3QgdGFibGVTdGF0ZUNvb2tpZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKGB6aXRpXyR7dGhpcy5zdmMudGFibGVJZH1fdGFibGVfc3RhdGVgKTtcbiAgICBjb25zdCB0YWJsZVN0YXRlID0gSlNPTi5wYXJzZSh0YWJsZVN0YXRlQ29va2llKTtcbiAgICBpZiAodGFibGVTdGF0ZSkge1xuICAgICAgdGhpcy5zdmMuZ3JpZE9iai5hcGkuYXBwbHlDb2x1bW5TdGF0ZSh7c3RhdGU6IHRhYmxlU3RhdGV9KTtcbiAgICAgIHRoaXMuX3VwZGF0ZUhpZGRlbkNvbHVtbnMoKTtcbiAgICB9XG4gIH1cblxuICBfYWRkQ29sdW1uRXZlbnRzKCkge1xuICAgIHRoaXMuX2NvbHVtbkRlZmluaXRpb25zID0gXy5tYXAodGhpcy5fY29sdW1uRGVmaW5pdGlvbnMsIChjb2xEZWYpID0+IHtcbiAgICAgIGNvbERlZi5waW5Db2x1bW4gPSB0aGlzLnN2Yy5waW5Db2x1bW4uYmluZCh0aGlzLnN2Yyk7XG4gICAgICBjb2xEZWYuY2VsbENsYXNzID0gdGhpcy5fZ2V0Q2VsbFN0eWxlLmJpbmQodGhpcyk7XG4gICAgICByZXR1cm4gY29sRGVmO1xuICAgIH0pO1xuICB9XG5cbiAgX2dldENlbGxTdHlsZShwYXJhbXMpIHtcbiAgICBpZiAoIXRoaXMucm93VmFsaWRhdGlvbiB8fCB0aGlzLnJvd1ZhbGlkYXRpb24ubGVuZ3RoIDw9IDApIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IHRoaXMucm93VmFsaWRhdGlvbltwYXJhbXMubm9kZS5yb3dJbmRleF07XG4gICAgaWYgKCF2YWxpZGF0aW9uUmVzdWx0IHx8ICF2YWxpZGF0aW9uUmVzdWx0LmVycm9ycykge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICBjb25zdCBmaWVsZCA9IF8uZ2V0KHBhcmFtcywgJ2NvbERlZi5maWVsZCcsICcnKTtcbiAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcnNbZmllbGRdKSB7XG4gICAgICByZXR1cm4gJ3ppdGktdGFibGUtY2VsbC1lcnJvcic7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuICB1cGRhdGVDb2x1bW5WaXNpYmlsaXR5KGNvbElkLCB2aXNpYmxlKSB7XG4gICAgdGhpcy5fY29sdW1uRGVmaW5pdGlvbnMgPSBfLm1hcCh0aGlzLl9jb2x1bW5EZWZpbml0aW9ucywgKGNvbERlZikgPT4ge1xuICAgICAgaWYgKGNvbERlZi5jb2xJZCA9PT0gY29sSWQpIHtcbiAgICAgICAgY29sRGVmLmhpZGUgPSAhdmlzaWJsZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjb2xEZWY7XG4gICAgfSk7XG4gICAgZm9yIChjb25zdCBjb2xEZWYgb2YgdGhpcy5tZXJnZWRDb2x1bW5EZWZpbml0aW9ucykge1xuICAgICAgaWYgKGNvbERlZi5jb2xJZCA9PT0gY29sSWQpIHtcbiAgICAgICAgY29sRGVmLmhpZGUgPSAhdmlzaWJsZTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5fdXBkYXRlSGlkZGVuQ29sdW1ucygpO1xuICAgIHRoaXMuc3ZjLnJlc2l6ZUdyaWRDb2x1bW5zKCk7XG4gIH1cblxuICB1cGRhdGVFbnRpdHlUeXBlTGFiZWwoKSB7XG4gICAgc3dpdGNoKHRoaXMuc3ZjLnRhYmxlSWQpIHtcbiAgICAgIGNhc2UgJ2FwaS1zZXNzaW9ucyc6XG4gICAgICAgIHRoaXMuZW50aXR5VHlwZUxhYmVsID0gJ0FQSSBTZXNzaW9ucyc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYXV0aC1wb2xpY2llcyc6XG4gICAgICAgIHRoaXMuZW50aXR5VHlwZUxhYmVsID0gJ0F1dGggUG9saWNpZXMnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2NlcnRpZmljYXRlLWF1dGhvcml0aWVzJzpcbiAgICAgICAgdGhpcy5lbnRpdHlUeXBlTGFiZWwgPSAnQ2VydGlmaWNhdGUgQXV0aG9yaXRpZXMnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2V4dC1qd3Qtc2lnbmVycyc6XG4gICAgICAgIHRoaXMuZW50aXR5VHlwZUxhYmVsID0gJ0V4dGVybmFsIEpXVCBTaWduZXJzJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdpZGVudGl0aWVzJzpcbiAgICAgICAgdGhpcy5lbnRpdHlUeXBlTGFiZWwgPSAnSWRlbnRpdGllcyc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncG9zdHVyZS1jaGVja3MnOlxuICAgICAgICB0aGlzLmVudGl0eVR5cGVMYWJlbCA9ICdQb3N0dXJlIENoZWNrcyc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZWRnZS1yb3V0ZXJzJzpcbiAgICAgICAgdGhpcy5lbnRpdHlUeXBlTGFiZWwgPSAnRWRnZSBSb3V0ZXJzJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzZXJ2aWNlcyc6XG4gICAgICAgIHRoaXMuZW50aXR5VHlwZUxhYmVsID0gJ1NlcnZpY2VzJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjb25maWd1cmF0aW9ucyc6XG4gICAgICAgIHRoaXMuZW50aXR5VHlwZUxhYmVsID0gJ0NvbmZpZ3MnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2NvbmZpZy10eXBlcyc6XG4gICAgICAgIHRoaXMuZW50aXR5VHlwZUxhYmVsID0gJ0NvbmZpZyBUeXBlcyc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc2VydmljZS1wb2xpY2llcyc6XG4gICAgICAgIHRoaXMuZW50aXR5VHlwZUxhYmVsID0gJ1NlcnZpY2UgUG9saWNpZXMnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2VkZ2Utcm91dGVyLXBvbGljaWVzJzpcbiAgICAgICAgdGhpcy5lbnRpdHlUeXBlTGFiZWwgPSAnRWRnZSBSb3V0ZXIgUG9saWNpZXMnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3NlcnZpY2UtZWRnZS1yb3V0ZXItcG9saWNpZXMnOlxuICAgICAgICB0aGlzLmVudGl0eVR5cGVMYWJlbCA9ICdTZXJ2aWNlIEVkZ2UgUm91dGVyIFBvbGljaWVzJztcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgJ3Nlc3Npb25zJzpcbiAgICAgICAgdGhpcy5lbnRpdHlUeXBlTGFiZWwgPSAnU2Vzc2lvbnMnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3Rlcm1pbmF0b3JzJzpcbiAgICAgICAgdGhpcy5lbnRpdHlUeXBlTGFiZWwgPSAnVGVybWluYXRvcnMnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3RyYW5zaXQtcm91dGVycyc6XG4gICAgICAgIHRoaXMuZW50aXR5VHlwZUxhYmVsID0gJ1RyYW5zaXQgUm91dGVycyc7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHNldENvbHVtblZpc2liaWxpdHlDb2x1bW4oY29sdW1uLCB2aXNpYmxlKSB7XG4gICAgdGhpcy5zdmMuZ3JpZE9iai5hcGkuc2V0Q29sdW1uc1Zpc2libGUoW2NvbHVtbi5jb2xJZF0sIHZpc2libGUpO1xuICAgIHRoaXMuc3ZjLmdyaWRPYmouYXBpLnJlZnJlc2hIZWFkZXIoKTtcbiAgICBfLmRlZmVyKCgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlQ29sdW1uVmlzaWJpbGl0eShjb2x1bW4uY29sSWQsIHZpc2libGUpO1xuICAgIH0pO1xuICB9XG5cbiAgX3VwZGF0ZUhpZGRlbkNvbHVtbnMoKSB7XG4gICAgY29uc3QgZ3JpZENvbHVtbkRlZnMgPSB0aGlzLnN2Yy5ncmlkT2JqPy5hcGk/LmNvbHVtbk1vZGVsPy5ncmlkQ29sdW1ucztcbiAgICBjb25zdCB2aXNpYmxlR3JpZENvbHVtbnMgPSBncmlkQ29sdW1uRGVmcy5maWx0ZXIoKGNvbCkgPT4gY29sLnZpc2libGUpO1xuICAgIGNvbnN0IGhpZGRlbkdyaWRDb2x1bW5zID0gZ3JpZENvbHVtbkRlZnMuZmlsdGVyKChjb2wpID0+ICFjb2wudmlzaWJsZSk7XG4gICAgdGhpcy52aXNpYmxlQ29sdW1ucyA9IF8ubWFwKHZpc2libGVHcmlkQ29sdW1ucywgJ2NvbERlZicpO1xuICAgIHRoaXMudmlzaWJsZUNvbHVtbklkcyA9IF8ubWFwKHRoaXMudmlzaWJsZUNvbHVtbnMsICdmaWVsZCcpO1xuICAgIHRoaXMuaGlkZGVuQ29sdW1ucyA9IF8ubWFwKGhpZGRlbkdyaWRDb2x1bW5zLCAnY29sRGVmJyk7XG4gICAgdGhpcy5oaWRkZW5Db2x1bW5JZHMgPSBfLm1hcCh0aGlzLmhpZGRlbkNvbHVtbnMsICdmaWVsZCcpO1xuICB9XG5cbiAgYWRkSGVhZGVyTWVudShjb2x1bW5EZWZzID0gW10pIHtcbiAgICBjb2x1bW5EZWZzLmZvckVhY2goKGNvbHVtbkRlZikgPT4ge1xuICAgICAgaWYgKGNvbHVtbkRlZi51c2VIZWFkZXJNZW51KSB7XG4gICAgICAgIGNvbHVtbkRlZi5oZWFkZXJDb21wb25lbnRQYXJhbXMgPSB7XG4gICAgICAgICAgb3BlbkhlYWRlck1lbnU6ICgkZXZlbnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMub3BlbkhlYWRlckFjdGlvbk1lbnUoJGV2ZW50KTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNsb3NlTWVudTogKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlQWN0aW9uTWVudSgpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBfYWRkRGVmYXVsdENvbHVtbkRlZnMoKSB7XG4gICAgdGhpcy5hZGRIZWFkZXJNZW51KHRoaXMuX2NvbHVtbkRlZmluaXRpb25zKTtcbiAgICB0aGlzLm1lcmdlZENvbHVtbkRlZmluaXRpb25zID0gXy5jbG9uZURlZXAodGhpcy5fY29sdW1uRGVmaW5pdGlvbnMpO1xuICAgIGlmICh0aGlzLl92aWV3ID09PSAncHJvY2VzcycpIHtcbiAgICAgIGNvbnN0IGNlbGxQYXJhbXMgPSBfLmNsb25lRGVlcCh0aGlzLm1lbnVDb2x1bW5EZWZpbml0aW9uLmNlbGxSZW5kZXJlclBhcmFtcyk7XG4gICAgICB0aGlzLm1lcmdlZENvbHVtbkRlZmluaXRpb25zW3RoaXMubWVyZ2VkQ29sdW1uRGVmaW5pdGlvbnMubGVuZ3RoIC0gMV0uY2VsbFJlbmRlcmVyUGFyYW1zID0gXy5tZXJnZShcbiAgICAgICAgICB0aGlzLm1lcmdlZENvbHVtbkRlZmluaXRpb25zW3RoaXMubWVyZ2VkQ29sdW1uRGVmaW5pdGlvbnMubGVuZ3RoIC0gMV0uY2VsbFJlbmRlcmVyUGFyYW1zLFxuICAgICAgICAgIGNlbGxQYXJhbXNcbiAgICAgICk7XG4gICAgICB0aGlzLm1lcmdlZENvbHVtbkRlZmluaXRpb25zW3RoaXMubWVyZ2VkQ29sdW1uRGVmaW5pdGlvbnMubGVuZ3RoIC0gMV0uaGVhZGVyQ29tcG9uZW50UGFyYW1zID1cbiAgICAgICAgICB0aGlzLm1lbnVDb2x1bW5EZWZpbml0aW9uLmhlYWRlckNvbXBvbmVudFBhcmFtcztcbiAgICB9IGVsc2UgaWYgKCAodGhpcy5vcHRpb25zLm5vU2VsZWN0ICYmIHRoaXMub3B0aW9ucy5ub01lbnUpKSB7XG4gICAgICAvLyBEb24ndCBhZGQgYW55IGFkZGl0aW9uYWwgY29sdW1uc1xuICAgIH0gZWxzZSBpZiAoICh0aGlzLm9wdGlvbnMubm9TZWxlY3QgJiYgIXRoaXMub3B0aW9ucy5ub01lbnUpKSB7XG4gICAgICB0aGlzLm1lcmdlZENvbHVtbkRlZmluaXRpb25zLnB1c2godGhpcy5tZW51Q29sdW1uRGVmaW5pdGlvbik7XG4gICAgfSBlbHNlIGlmICggIXRoaXMub3B0aW9ucy5ub1NlbGVjdCAmJiB0aGlzLm9wdGlvbnMubm9NZW51KSB7XG4gICAgICB0aGlzLm1lcmdlZENvbHVtbkRlZmluaXRpb25zLnB1c2godGhpcy5zZWxlY3RDb2x1bW5EZWZpbml0aW9uKTtcbiAgICB9ICBlbHNlIGlmICh0aGlzLl92aWV3ICE9PSAndXBsb2FkJykge1xuICAgICAgdGhpcy5tZXJnZWRDb2x1bW5EZWZpbml0aW9ucy5zcGxpY2UoMCwgMCwgdGhpcy5zZWxlY3RDb2x1bW5EZWZpbml0aW9uKTtcbiAgICAgIHRoaXMubWVyZ2VkQ29sdW1uRGVmaW5pdGlvbnMucHVzaCh0aGlzLm1lbnVDb2x1bW5EZWZpbml0aW9uKTtcbiAgICB9XG4gIH1cblxuICBfc3RvcmVJbml0aWFsQ29sdW1uRGVmcygpIHtcbiAgICB0aGlzLl9pbml0aWFsQ29sdW1uRGVmcyA9IF8uY2xvbmVEZWVwKHRoaXMubWVyZ2VkQ29sdW1uRGVmaW5pdGlvbnMpO1xuICB9XG5cbiAgX2luaXRDb2x1bW5WaXNpYmlsaXR5KCkge1xuICAgIHRoaXMudmlzaWJsZUNvbHVtbnMgPSB0aGlzLl9jb2x1bW5EZWZpbml0aW9ucy5maWx0ZXIoKGNvbCkgPT4gIWNvbC5oaWRlKTtcbiAgICB0aGlzLmhpZGRlbkNvbHVtbnMgPSB0aGlzLl9jb2x1bW5EZWZpbml0aW9ucy5maWx0ZXIoKGNvbCkgPT4gY29sLmhpZGUpO1xuICAgIHRoaXMudmlzaWJsZUNvbHVtbklkcyA9IF8ubWFwKHRoaXMudmlzaWJsZUNvbHVtbnMsICdmaWVsZCcpO1xuICB9XG5cbiAgX3VwZGF0ZUdyaWRDb2x1bW5zKCkge1xuICAgIHRoaXMuX3NldENvbHVtbldpZHRocygpO1xuICAgIHRoaXMuc3ZjLmdyaWRPYmouYXBpLnNldENvbHVtbkRlZnModGhpcy5tZXJnZWRDb2x1bW5EZWZpbml0aW9ucyk7XG4gICAgdGhpcy5zdmMuZ3JpZE9iai5hcGkucmVmcmVzaEhlYWRlcigpO1xuICB9XG5cbiAgX3NldENvbHVtbldpZHRocygpIHtcbiAgICBpZiAodGhpcy5fdmlldyA9PT0gJ3VwbG9hZCcgfHwgdGhpcy5fdmlldyA9PT0gJ3Byb2Nlc3MnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGNvbFdpZHRoc0Nvb2tpZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKGB6aXRpXyR7dGhpcy5zdmMudGFibGVJZH1fY29sdW1uX3dpZHRoc2ApO1xuICAgIGlmICghXy5pc0VtcHR5KGNvbFdpZHRoc0Nvb2tpZSkpIHtcbiAgICAgIGNvbnN0IGNvbFdpZHRocyA9IEpTT04ucGFyc2UoY29sV2lkdGhzQ29va2llKTtcbiAgICAgIF8uZm9yRWFjaChjb2xXaWR0aHMsIChjb2xXaWR0aCwgY29sSWQpID0+IHtcbiAgICAgICAgXy5mb3JFYWNoKHRoaXMubWVyZ2VkQ29sdW1uRGVmaW5pdGlvbnMsIChjb2xEZWYpID0+IHtcbiAgICAgICAgICBpZiAoY29sRGVmLmNvbElkID09PSBjb2xJZCkge1xuICAgICAgICAgICAgY29sRGVmLndpZHRoID0gY29sV2lkdGg7XG4gICAgICAgICAgICBjb2xEZWYuc3VwcHJlc3NTaXplVG9GaXQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBfc2V0Q29sdW1uT3JkZXJBbmRWaXNpYmlsaXR5KCkge1xuICAgIGlmICh0aGlzLl92aWV3ID09PSAndXBsb2FkJyB8fCB0aGlzLl92aWV3ID09PSAncHJvY2VzcycpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgdGFibGVTdGF0ZUNvb2tpZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKGB6aXRpXyR7dGhpcy5zdmMudGFibGVJZH1fdGFibGVfc3RhdGVgKTtcbiAgICBpZiAoIV8uaXNFbXB0eSh0YWJsZVN0YXRlQ29va2llKSB8fCB0eXBlb2YgdGFibGVTdGF0ZUNvb2tpZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGNvbnN0IGNvbFN0YXRlcyA9IEpTT04ucGFyc2UodGFibGVTdGF0ZUNvb2tpZSk7XG4gICAgICBjb25zdCBjb2x1bW5JbmRleGVzID0gW107XG4gICAgICBfLmZvckVhY2goY29sU3RhdGVzLCAoY29sU3RhdGUpID0+IHtcbiAgICAgICAgXy5mb3JFYWNoKHRoaXMubWVyZ2VkQ29sdW1uRGVmaW5pdGlvbnMsIChjb2xEZWYpID0+IHtcbiAgICAgICAgICBpZiAoY29sRGVmLmNvbElkID09PSBjb2xTdGF0ZS5jb2xJZCkge1xuICAgICAgICAgICAgY29sdW1uSW5kZXhlcy5wdXNoKGNvbERlZik7XG4gICAgICAgICAgICBjb2xEZWYuaGlkZSA9IGNvbFN0YXRlLmhpZGU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgXy5mb3JFYWNoKHRoaXMubWVyZ2VkQ29sdW1uRGVmaW5pdGlvbnMsIChjb2xEZWYpID0+IHtcbiAgICAgICAgbGV0IGNvbEZvdW5kID0gZmFsc2U7XG4gICAgICAgIF8uZm9yRWFjaChjb2x1bW5JbmRleGVzLCAoY29sSW5kZXgpID0+IHtcbiAgICAgICAgICBpZiAoY29sRGVmLmNvbElkID09PSBjb2xJbmRleC5jb2xJZCkge1xuICAgICAgICAgICAgY29sRm91bmQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGlmICghY29sRm91bmQpIHtcbiAgICAgICAgICBjb2x1bW5JbmRleGVzLnB1c2goY29sRGVmKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLm1lcmdlZENvbHVtbkRlZmluaXRpb25zID0gY29sdW1uSW5kZXhlcztcbiAgICB9XG4gIH1cblxuICBfaGFuZGxlVGFibGVTY3JvbGwoc2Nyb2xsZXIpOiB2b2lkIHtcbiAgICBjb25zdCBzY3JvbGxXaWR0aCA9ICQoJy5hZy1jZW50ZXItY29scy1jb250YWluZXInKS53aWR0aCgpO1xuICAgIGNvbnN0IHZpZXdXaWR0aCA9ICQoJy5hZy1jZW50ZXItY29scy12aWV3cG9ydCcpLndpZHRoKCk7XG4gICAgY29uc3Qgc2Nyb2xsYWJsZVdpZHRoID0gc2Nyb2xsV2lkdGggLSB2aWV3V2lkdGg7XG4gICAgaWYgKHNjcm9sbGVyLmxlZnQgPiAwKSB7XG4gICAgICAkKCcuYWctcGlubmVkLWxlZnQtY29scy1jb250YWluZXInKS5hZGRDbGFzcygnYWctcGlubmVkLWxlZnQtc2hhZG93Jyk7XG4gICAgfSBlbHNlIHtcbiAgICAgICQoJy5hZy1waW5uZWQtbGVmdC1jb2xzLWNvbnRhaW5lcicpLnJlbW92ZUNsYXNzKCdhZy1waW5uZWQtbGVmdC1zaGFkb3cnKTtcbiAgICB9XG4gICAgaWYgKHNjcm9sbGVyLmxlZnQgPCBzY3JvbGxhYmxlV2lkdGggLSAyKSB7XG4gICAgICAkKCcuYWctcGlubmVkLXJpZ2h0LWNvbHMtY29udGFpbmVyJykuYWRkQ2xhc3MoJ2FnLXBpbm5lZC1yaWdodC1zaGFkb3cnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgJCgnLmFnLXBpbm5lZC1yaWdodC1jb2xzLWNvbnRhaW5lcicpLnJlbW92ZUNsYXNzKCdhZy1waW5uZWQtcmlnaHQtc2hhZG93Jyk7XG4gICAgfVxuICB9XG5cbiAgcmVtVG9QeChyZW1WYWx1ZSkge1xuICAgIGNvbnN0IHJvb3RGb250U2l6ZTogYW55ID0gcGFyc2VGbG9hdCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLmZvbnRTaXplKTtcbiAgICByZXR1cm4gcmVtVmFsdWUgKiByb290Rm9udFNpemU7XG4gIH07XG59XG4iLCI8ZGl2ICN0YWJsZUNvbnRhaW5lciBjbGFzcz1cImRhdGEtdGFibGUtY29udGFpbmVyXCIgKm5nSWY9XCJzaG93VGFibGU7ZWxzZSBub2RhdGFcIj5cbiAgICA8bGliLXRhYmxlLWZpbHRlci1iYXJcbiAgICAgICAgICAgIFtzdGFydENvdW50XT1cInN0YXJ0Q291bnRcIlxuICAgICAgICAgICAgW2VuZENvdW50XT1cImVuZENvdW50XCJcbiAgICAgICAgICAgIFt0b3RhbENvdW50XT1cInRvdGFsQ291bnRcIlxuICAgICAgICAgICAgW2N1cnJlbnRQYWdlXT1cImN1cnJlbnRQYWdlXCJcbiAgICAgICAgICAgIFtmaWx0ZXJOYW1lXT1cImZpbHRlck5hbWVcIlxuICAgICAgICAgICAgW2ZpbHRlckNvbHVtbl09XCJmaWx0ZXJDb2x1bW5cIlxuICAgID48L2xpYi10YWJsZS1maWx0ZXItYmFyPlxuICAgIDxsaWItdGFibGUtaGlkZGVuLWNvbHVtbnMtYmFyXG4gICAgICAgICAgICAqbmdJZj1cImdyaWRSZW5kZXJlZCAmJiBzaG93RmlsdGVyQmFyXCJcbiAgICAgICAgICAgIFtoaWRkZW5Db2x1bW5zXT1cImhpZGRlbkNvbHVtbnNcIlxuICAgICAgICAgICAgKGNvbHVtblZpc2liaWxpdHlDaGFuZ2VkKT1cImNvbHVtblZpc2liaWxpdHlDaGFuZ2VkKCRldmVudClcIlxuICAgID48L2xpYi10YWJsZS1oaWRkZW4tY29sdW1ucy1iYXI+XG4gICAgPGRpdiAocmVzaXplKT1cInJlc2l6ZUdyaWRDb2x1bW5zRGVib3VuY2VkKCRldmVudClcIiBjbGFzcz1cInppdGktYWctZ3JpZFwiIGlkPVwiSXRlbVRhYmxlXCI+XG4gICAgICAgIDxhZy1ncmlkLWFuZ3VsYXJcbiAgICAgICAgICAgICNuZkFnR3JpZFxuICAgICAgICAgICAgW2NvbHVtbkRlZnNdPVwibWVyZ2VkQ29sdW1uRGVmaW5pdGlvbnNcIlxuICAgICAgICAgICAgW2NvbXBvbmVudHNdPVwiZnJhbWV3b3JrQ29tcG9uZW50c1wiXG4gICAgICAgICAgICBbZ2V0RGF0YVBhdGhdPVwic3ZjLmdldERhdGFQYXRoXCJcbiAgICAgICAgICAgIFtnZXRSb3dJZF09XCJzdmMuZ2V0Um93Tm9kZUlkXCJcbiAgICAgICAgICAgIFtncmlkT3B0aW9uc109XCJncmlkT3B0aW9uc1wiXG4gICAgICAgICAgICBbbW9kdWxlc109XCJncmlkTW9kdWxlc1wiXG4gICAgICAgICAgICBbcm93RGF0YV09XCJyb3dEYXRhXCJcbiAgICAgICAgICAgIFt0b29sdGlwSGlkZURlbGF5XT1cIjIwMDAwXCJcbiAgICAgICAgICAgIFt0b29sdGlwU2hvd0RlbGF5XT1cIjBcIlxuICAgICAgICAgICAgKGdyaWRSZWFkeSk9XCJvbkdyaWRSZWFkeSgkZXZlbnQpXCJcbiAgICAgICAgICAgIGNsYXNzPVwieml0aS1hZy1ncmlkLXRhYmxlIGFnLXRoZW1lLWFscGluZSByb3dzXCJcbiAgICAgICAgICAgIGlkPVwiSXRlbUdyaWRcIlxuICAgICAgICA+XG4gICAgICAgIDwvYWctZ3JpZC1hbmd1bGFyPlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgb3Blbjogb3BlbkhlYWRlck1lbnUgfVwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJ7IGxlZnQ6IG1lbnVMZWZ0ICsgJ3B4JywgdG9wOiBtZW51VG9wICsgJ3B4JyB9XCJcbiAgICAgICAgICAgIGNsYXNzPVwidE1lbnUgYWN0aW9uLW1lbnUgaGVhZGVyLW1lbnVcIlxuICAgICAgICAgICAgaWQ9XCJIZWFkZXJBY3Rpb25NZW51XCJcbiAgICA+XG4gICAgICAgIDxkaXYgKGNsaWNrKT1cInJlc2V0VGFibGVDb2x1bW5zKClcIiBjbGFzcz1cInRBY3Rpb25Sb3dcIiBpZD1cIlJlc2V0VGFibGVCdXR0b25cIj5SZXN0b3JlIERlZmF1bHQgVGFibGU8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGhlYWRlckFjdGlvbiBvZiBoZWFkZXJBY3Rpb25zXCJcbiAgICAgICAgICAgIChjbGljayk9XCJhY3Rpb25SZXF1ZXN0ZWQuZW1pdCh7IGFjdGlvbjogaGVhZGVyQWN0aW9uLmFjdGlvbiB9KVwiXG4gICAgICAgICAgICBjbGFzcz1cInRBY3Rpb25Sb3dcIlxuICAgICAgICAgICAgaWQ9XCJSZXNldFRhYmxlQnV0dG9uXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3toZWFkZXJBY3Rpb24ubmFtZSB8fCBoZWFkZXJBY3Rpb24ubGFiZWx9fVxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7IG9wZW46IG9wZW5NZW51IH1cIlxuICAgICAgICAgICAgW25nU3R5bGVdPVwieyBsZWZ0OiBtZW51TGVmdCArICdweCcsIHRvcDogbWVudVRvcCArICdweCcgfVwiXG4gICAgICAgICAgICBjbGFzcz1cInRNZW51IGFjdGlvbi1tZW51IGl0ZW0tbWVudVwiXG4gICAgICAgICAgICBpZD1cIlJvd0FjdGlvbk1lbnVcIlxuICAgICAgICAgICAgI2NvbnRleHRNZW51XG4gICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IG1lbnVJdGVtIG9mIG1lbnVJdGVtc1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImFjdGlvblJlcXVlc3RlZC5lbWl0KHsgYWN0aW9uOiBtZW51SXRlbS5hY3Rpb24sIGl0ZW06IHNlbGVjdGVkSXRlbSB9KVwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydtZW51LWl0ZW0taGlkZGVuJzogaGlkZU1lbnVJdGVtKG1lbnVJdGVtLCBzZWxlY3RlZEl0ZW0pIH1cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidEFjdGlvblJvd1wiXG4gICAgICAgICAgICAgICAgaWQ9XCJUYWJsZUFjdGlvbkJ1dHRvbl97e21lbnVJdGVtLmFjdGlvbn19XCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3ttZW51SXRlbS5uYW1lIHx8IG1lbnVJdGVtLmxhYmVsfX1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgICAgICAgKGNsaWNrT3V0c2lkZSk9XCJjbG9zZUhlYWRlckZpbHRlcigkZXZlbnQpXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgb3Blbjogc2hvd0ZpbHRlck9wdGlvbnMgfVwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJ7IGxlZnQ6IG1lbnVMZWZ0ICsgJ3B4JywgdG9wOiBtZW51VG9wICsgJ3B4JyB9XCJcbiAgICAgICAgICAgIGNsYXNzPVwidE1lbnUgYWN0aW9uLW1lbnUgaGVhZGVyLW1lbnVcIlxuICAgICAgICAgICAgaWQ9XCJIZWFkZXJGaWx0ZXJPcHRpb25zXCJcbiAgICA+XG4gICAgICAgIDxkaXYgKGNsaWNrKT1cImFwcGx5RmlsdGVyKCRldmVudCwgZmlsdGVyKVwiICpuZ0Zvcj1cImxldCBmaWx0ZXIgb2YgZmlsdGVyT3B0aW9uc1wiIGNsYXNzPVwidEFjdGlvblJvd1wiIFtuZ0NsYXNzXT1cInsnaGFzLWljb24nOiBmaWx0ZXIuaWNvbn1cIiBbaWRdPVwiZmlsdGVyLmNvbHVtbklkXCI+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImZpbHRlci5idWJibGVDbGFzc1wiIFtuZ0NsYXNzXT1cImZpbHRlci5idWJibGVDbGFzc1wiIGNsYXNzPVwiYnViYmxlXCI+XG4gICAgICAgICAgICAgICAgPHN2ZyAqbmdJZj1cImZpbHRlci5zaG93TG9hZGVyXCIgY2xhc3M9XCJjaXJjdWxhclwiIHZpZXdCb3g9XCIyNSAyNSA1MCA1MFwiPlxuICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwYXRoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjeD1cIjUwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjeT1cIjUwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcj1cIjIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbWl0ZXJsaW1pdD1cIjEwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIzXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvY2lyY2xlPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJmaWx0ZXIuaWNvblwiIGNsYXNzPVwib3MtaWNvbiB7e2ZpbHRlci5pY29ufX1cIj48L3NwYW4+XG4gICAgICAgICAgICB7eyBmaWx0ZXIubGFiZWwgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cInNob3dEYXRlVGltZVBpY2tlclwiIGNsYXNzPVwiZGF0ZS10aW1lLWNvbnRhaW5lciBkYXRhLXRhYmxlLWRhdGUtdGltZVwiIFtuZ1N0eWxlXT1cInsgbGVmdDogbWVudUxlZnQgKyAncHgnLCB0b3A6IG1lbnVUb3AgKyAncHgnIH1cIiAoY2xpY2tPdXRzaWRlKT1cImNsb3NlRGF0ZVRpbWUoJGV2ZW50KVwiPlxuICAgIDxwLWNhbGVuZGFyXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImRhdGVWYWx1ZVwiXG4gICAgICAgICAgICAob25TZWxlY3QpPVwic2V0RGF0ZVJhbmdlRmlsdGVyKCdjdXN0b20nKVwiXG4gICAgICAgICAgICBkYXRlRm9ybWF0PVwibW0vZGQveXlcIlxuICAgICAgICAgICAgc2VsZWN0aW9uTW9kZT1cInJhbmdlXCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IFRpbWUgUmFuZ2VcIlxuICAgICAgICAgICAgI2NhbGVuZGFyXG4gICAgPlxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWJ1dHRvbi1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRvZ2dsZUJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7c2VsZWN0ZWQ6IHNlbGVjdGVkUmFuZ2UgPT09ICdob3VyJ31cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldERhdGVSYW5nZUZpbHRlcignaG91cicpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIExhc3QgSG91clxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidG9nZ2xlQnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXREYXRlUmFuZ2VGaWx0ZXIoJ2RheScpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntzZWxlY3RlZDogc2VsZWN0ZWRSYW5nZSA9PT0gJ2RheSd9XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIExhc3QgRGF5XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0b2dnbGVCdXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldERhdGVSYW5nZUZpbHRlcignd2VlaycpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntzZWxlY3RlZDogc2VsZWN0ZWRSYW5nZSA9PT0gJ3dlZWsnfVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBMYXN0IFdlZWtcbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRvZ2dsZUJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0RGF0ZVJhbmdlRmlsdGVyKCdtb250aCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntzZWxlY3RlZDogc2VsZWN0ZWRSYW5nZSA9PT0gJ21vbnRoJ31cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgTGFzdCBNb250aFxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9wLWNhbGVuZGFyPlxuPC9kaXY+XG5cbjxkaXYgKm5nSWY9XCJzaG93VGFnU2VsZWN0b3JcIiBjbGFzcz1cInRhZy1zZWxlY3Rvci1jb250YWluZXIgZGF0YS10YWJsZS10YWctc2VsZWN0b3JcIiBbbmdTdHlsZV09XCJ7IGxlZnQ6IG1lbnVMZWZ0ICsgJ3B4JywgdG9wOiBtZW51VG9wICsgJ3B4JyB9XCIgKGNsaWNrT3V0c2lkZSk9XCJjbG9zZVRhZ1NlbGVjdG9yKCRldmVudClcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uQmFsbCBpY29uLWNsb3NlXCIgKGNsaWNrKT1cImNsb3NlVGFnU2VsZWN0b3IoJGV2ZW50KVwiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ0YWctc2VsZWN0b3ItbGFiZWxcIj5cbiAgICAgICAgPHNwYW4+U2VsZWN0IGFuIEF0dHJpYnV0ZTo8L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGxpYi10YWctc2VsZWN0b3JcbiAgICAgICAgW2ZvY3VzT25Jbml0XT1cInRydWVcIlxuICAgICAgICBbYXZhaWxhYmxlUm9sZUF0dHJpYnV0ZXNdPVwicm9sZUF0dHJpYnV0ZXNcIlxuICAgICAgICBbYXZhaWxhYmxlTmFtZWRBdHRyaWJ1dGVzXT1cIm5hbWVkQXR0cmlidXRlc1wiXG4gICAgICAgIFsoc2VsZWN0ZWRSb2xlQXR0cmlidXRlcyldPVwic2VsZWN0ZWRSb2xlQXR0cmlidXRlc1wiXG4gICAgICAgIFsoc2VsZWN0ZWROYW1lZEF0dHJpYnV0ZXMpXT1cInNlbGVjdGVkTmFtZWRBdHRyaWJ1dGVzXCJcbiAgICAgICAgKHNlbGVjdGVkTmFtZWRBdHRyaWJ1dGVzQ2hhbmdlKT1cInRhZ1NlbGVjdGlvbkNoYW5nZWQoJGV2ZW50LCBmYWxzZSlcIlxuICAgICAgICAoc2VsZWN0ZWRSb2xlQXR0cmlidXRlc0NoYW5nZSk9XCJ0YWdTZWxlY3Rpb25DaGFuZ2VkKCRldmVudCwgdHJ1ZSlcIlxuICAgID48L2xpYi10YWctc2VsZWN0b3I+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjbm9kYXRhPlxuICAgIDxsaWItbm8taXRlbXNcbiAgICAgICAgKGNsaWNrRW1pdCk9XCJvcGVuQ3JlYXRlKClcIlxuICAgICAgICBbaW1hZ2VdPVwibm9JdGVtc0ltYWdlXCJcbiAgICAgICAgW2lzRW1wdHldPVwiIXJvd0RhdGEgfHwgcm93RGF0YS5sZW5ndGggPT09IDBcIlxuICAgICAgICBbdHlwZU5hbWVdPVwidGhpcy5lbnRpdHlUeXBlTGFiZWxcIlxuICAgICAgICBbaGFzQWRkXT1cInNob3dOb0l0ZW1zQWRkXCJcbiAgICA+PC9saWItbm8taXRlbXM+XG48L25nLXRlbXBsYXRlPlxuIl19