@openziti/ziti-console-lib 1.0.3 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/styles/global.scss +70 -0
- package/fesm2022/openziti-ziti-console-lib.mjs +2136 -1324
- package/fesm2022/openziti-ziti-console-lib.mjs.map +1 -1
- package/index.d.ts +5689 -6
- package/index.d.ts.map +1 -0
- package/package.json +11 -13
- package/esm2022/lib/ZAC_VERSION.mjs +0 -4
- package/esm2022/lib/app.initializer.mjs +0 -24
- package/esm2022/lib/default-app-config.mjs +0 -5
- package/esm2022/lib/features/card/card.component.mjs +0 -34
- package/esm2022/lib/features/card-list/card-list.component.mjs +0 -55
- package/esm2022/lib/features/config-editor/config-editor.component.mjs +0 -337
- package/esm2022/lib/features/confirm/confirm.component.mjs +0 -77
- package/esm2022/lib/features/creation-summary-dialog/creation-summary-dialog.component.mjs +0 -93
- package/esm2022/lib/features/custom-tags/custom-tags.component.mjs +0 -111
- package/esm2022/lib/features/data-table/cells/table-cell-menu/table-cell-menu.component.mjs +0 -46
- package/esm2022/lib/features/data-table/cells/table-cell-name/table-cell-name.component.mjs +0 -49
- package/esm2022/lib/features/data-table/cells/table-cell-select/table-cell-select.component.mjs +0 -58
- package/esm2022/lib/features/data-table/cells/table-cell-token/table-cell-token.component.mjs +0 -123
- package/esm2022/lib/features/data-table/column-headers/table-column-default/table-column-default.component.mjs +0 -268
- package/esm2022/lib/features/data-table/column-headers/table-column-filter/table-column-filter.component.mjs +0 -93
- package/esm2022/lib/features/data-table/column-headers/table-column-menu/table-column-menu.component.mjs +0 -37
- package/esm2022/lib/features/data-table/column-headers/table-column-select/table-column-select.component.mjs +0 -33
- package/esm2022/lib/features/data-table/data-table-filter.service.mjs +0 -138
- package/esm2022/lib/features/data-table/data-table.component.mjs +0 -918
- package/esm2022/lib/features/data-table/data-table.service.mjs +0 -98
- package/esm2022/lib/features/data-table/table-filter-bar/filter-bar.component.mjs +0 -108
- package/esm2022/lib/features/data-table/table-hidden-columns-bar/hidden-columns-bar.component.mjs +0 -26
- package/esm2022/lib/features/data-table/tooltips/os-tooltip.component.mjs +0 -29
- package/esm2022/lib/features/data-table/tooltips/sdk-tooltip.component.mjs +0 -34
- package/esm2022/lib/features/dynamic-widgets/boolean/boolean-toggle-input.component.mjs +0 -72
- package/esm2022/lib/features/dynamic-widgets/checkbox-list/checkbox-list-input.component.mjs +0 -134
- package/esm2022/lib/features/dynamic-widgets/forwarding-config/forwarding-config.component.mjs +0 -189
- package/esm2022/lib/features/dynamic-widgets/forwarding-config/forwarding-config.service.mjs +0 -50
- package/esm2022/lib/features/dynamic-widgets/number/number-input.component.mjs +0 -95
- package/esm2022/lib/features/dynamic-widgets/object/object.component.mjs +0 -121
- package/esm2022/lib/features/dynamic-widgets/password/password-input.component.mjs +0 -83
- package/esm2022/lib/features/dynamic-widgets/port-ranges/port-ranges.component.mjs +0 -100
- package/esm2022/lib/features/dynamic-widgets/protocol-address-port/protocol-address-port-input.component.mjs +0 -201
- package/esm2022/lib/features/dynamic-widgets/selector/selector-input.component.mjs +0 -166
- package/esm2022/lib/features/dynamic-widgets/string/string-input.component.mjs +0 -108
- package/esm2022/lib/features/dynamic-widgets/text-list/text-list-input.component.mjs +0 -126
- package/esm2022/lib/features/extendable/extendable.component.mjs +0 -55
- package/esm2022/lib/features/extendable/extensions-noop.service.mjs +0 -52
- package/esm2022/lib/features/header-bar/header-bar.component.mjs +0 -105
- package/esm2022/lib/features/json-view/json-view.component.mjs +0 -212
- package/esm2022/lib/features/list-page-features/list-page-form/list-page-form.component.mjs +0 -138
- package/esm2022/lib/features/list-page-features/list-page-header/list-page-header.component.mjs +0 -66
- package/esm2022/lib/features/loading-indicator/loading-indicator.component.mjs +0 -29
- package/esm2022/lib/features/login/login-dialog.component.mjs +0 -121
- package/esm2022/lib/features/messaging/growler.component.mjs +0 -62
- package/esm2022/lib/features/messaging/growler.model.mjs +0 -24
- package/esm2022/lib/features/messaging/growler.module.mjs +0 -34
- package/esm2022/lib/features/messaging/growler.service.mjs +0 -71
- package/esm2022/lib/features/messaging/logger.service.mjs +0 -174
- package/esm2022/lib/features/multi-action-button/multi-action-button.component.mjs +0 -30
- package/esm2022/lib/features/no-items/no-items.component.mjs +0 -46
- package/esm2022/lib/features/overrides/overrides.component.mjs +0 -118
- package/esm2022/lib/features/overrides/overrides.service.mjs +0 -114
- package/esm2022/lib/features/preview-list/preview-list.component.mjs +0 -151
- package/esm2022/lib/features/preview-selections/preview-selections.component.mjs +0 -114
- package/esm2022/lib/features/progress-meter/progress-meter.component.mjs +0 -43
- package/esm2022/lib/features/progress-wizard/progress-wizard.component.mjs +0 -90
- package/esm2022/lib/features/projectable-forms/api-session/api-session-form.component.mjs +0 -143
- package/esm2022/lib/features/projectable-forms/api-session/api-session-form.service.mjs +0 -118
- package/esm2022/lib/features/projectable-forms/auth-policy/auth-policy-form.component.mjs +0 -337
- package/esm2022/lib/features/projectable-forms/auth-policy/auth-policy-form.service.mjs +0 -114
- package/esm2022/lib/features/projectable-forms/certificate-authority/certificate-authority-form.component.mjs +0 -399
- package/esm2022/lib/features/projectable-forms/certificate-authority/certificate-authority-form.service.mjs +0 -95
- package/esm2022/lib/features/projectable-forms/certificate-authority/verify-certificate/verify-certificate.component.mjs +0 -217
- package/esm2022/lib/features/projectable-forms/certificate-authority/verify-certificate/verify-certificate.service.mjs +0 -54
- package/esm2022/lib/features/projectable-forms/config-type/config-type-form.component.mjs +0 -244
- package/esm2022/lib/features/projectable-forms/config-type/config-type-form.service.mjs +0 -92
- package/esm2022/lib/features/projectable-forms/configuration/configuration-form.component.mjs +0 -275
- package/esm2022/lib/features/projectable-forms/configuration/configuration.service.mjs +0 -137
- package/esm2022/lib/features/projectable-forms/edge-router/edge-router-form.component.mjs +0 -231
- package/esm2022/lib/features/projectable-forms/edge-router/edge-router-form.service.mjs +0 -118
- package/esm2022/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.component.mjs +0 -277
- package/esm2022/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.service.mjs +0 -188
- package/esm2022/lib/features/projectable-forms/form-field-container/form-field-container.component.mjs +0 -101
- package/esm2022/lib/features/projectable-forms/form-field-toggle/form-field-toggle.component.mjs +0 -54
- package/esm2022/lib/features/projectable-forms/form-header/form-header.component.mjs +0 -135
- package/esm2022/lib/features/projectable-forms/identity/identity-form.component.mjs +0 -471
- package/esm2022/lib/features/projectable-forms/identity/identity-form.service.mjs +0 -131
- package/esm2022/lib/features/projectable-forms/jwt-signer/jwt-signer-form.component.mjs +0 -533
- package/esm2022/lib/features/projectable-forms/jwt-signer/jwt-signer-form.service.mjs +0 -79
- package/esm2022/lib/features/projectable-forms/posture-check/posture-check-form.component.mjs +0 -437
- package/esm2022/lib/features/projectable-forms/posture-check/posture-check-form.service.mjs +0 -81
- package/esm2022/lib/features/projectable-forms/projectable-form.class.mjs +0 -315
- package/esm2022/lib/features/projectable-forms/service/service-form.component.mjs +0 -330
- package/esm2022/lib/features/projectable-forms/service/service-form.service.mjs +0 -591
- package/esm2022/lib/features/projectable-forms/service/simple-service/simple-service.component.mjs +0 -1036
- package/esm2022/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.component.mjs +0 -275
- package/esm2022/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.service.mjs +0 -172
- package/esm2022/lib/features/projectable-forms/service-policy/service-policy-form.component.mjs +0 -279
- package/esm2022/lib/features/projectable-forms/service-policy/service-policy-form.service.mjs +0 -230
- package/esm2022/lib/features/projectable-forms/session/session-form.component.mjs +0 -213
- package/esm2022/lib/features/projectable-forms/session/session-form.service.mjs +0 -84
- package/esm2022/lib/features/projectable-forms/terminator/terminator-form.component.mjs +0 -244
- package/esm2022/lib/features/projectable-forms/terminator/terminator-form.service.mjs +0 -130
- package/esm2022/lib/features/projectable-forms/transit-router/transit-router-form.component.mjs +0 -224
- package/esm2022/lib/features/projectable-forms/transit-router/transit-router-form.service.mjs +0 -118
- package/esm2022/lib/features/qr-code/qr-code.component.mjs +0 -166
- package/esm2022/lib/features/quick-add/quick-add.component.mjs +0 -50
- package/esm2022/lib/features/reset-enrollment/reset-enrollment.component.mjs +0 -86
- package/esm2022/lib/features/reset-enrollment/reset-enrollment.service.mjs +0 -61
- package/esm2022/lib/features/side-modal/side-modal.component.mjs +0 -45
- package/esm2022/lib/features/side-navigator/side-navigator.component.mjs +0 -127
- package/esm2022/lib/features/sidebars/side-navbar/side-navbar.component.mjs +0 -54
- package/esm2022/lib/features/tag-selector/tag-selector.component.mjs +0 -291
- package/esm2022/lib/features/visualizer/identity-service-path/identity-service-path.component.mjs +0 -586
- package/esm2022/lib/features/visualizer/identity-service-path/identity-service-path.helper.mjs +0 -373
- package/esm2022/lib/features/visualizer/network-visualizer/network-visualizer.component.mjs +0 -1706
- package/esm2022/lib/features/visualizer/network-visualizer/network-visualizer.helper.mjs +0 -591
- package/esm2022/lib/features/visualizer/network-visualizer/network-visualizer.treenodeprocessor.mjs +0 -883
- package/esm2022/lib/features/visualizer/visualizer-service.class.mjs +0 -32
- package/esm2022/lib/models/api-session.mjs +0 -7
- package/esm2022/lib/models/auth-policy.mjs +0 -31
- package/esm2022/lib/models/certificate-authority.mjs +0 -16
- package/esm2022/lib/models/config-type.mjs +0 -10
- package/esm2022/lib/models/config.mjs +0 -10
- package/esm2022/lib/models/edge-router-policy.mjs +0 -11
- package/esm2022/lib/models/edge-router.mjs +0 -13
- package/esm2022/lib/models/identity.mjs +0 -34
- package/esm2022/lib/models/jwt-signer.mjs +0 -20
- package/esm2022/lib/models/posture-check.mjs +0 -29
- package/esm2022/lib/models/service-edge-router-policy.mjs +0 -11
- package/esm2022/lib/models/service-policy.mjs +0 -13
- package/esm2022/lib/models/service.mjs +0 -12
- package/esm2022/lib/models/session.mjs +0 -7
- package/esm2022/lib/models/terminator.mjs +0 -14
- package/esm2022/lib/pages/api-sessions/api-sessions-page.component.mjs +0 -112
- package/esm2022/lib/pages/api-sessions/api-sessions-page.service.mjs +0 -235
- package/esm2022/lib/pages/attributes/attributes.component.mjs +0 -104
- package/esm2022/lib/pages/auth-policies/auth-policies-page.component.mjs +0 -120
- package/esm2022/lib/pages/auth-policies/auth-policies-page.service.mjs +0 -215
- package/esm2022/lib/pages/callback/callback.component.mjs +0 -155
- package/esm2022/lib/pages/certificate-authorities/certificate-authorities-page.component.mjs +0 -119
- package/esm2022/lib/pages/certificate-authorities/certificate-authorities-page.service.mjs +0 -240
- package/esm2022/lib/pages/config-types/config-types-page.component.mjs +0 -130
- package/esm2022/lib/pages/config-types/config-types-page.service.mjs +0 -134
- package/esm2022/lib/pages/configurations/configurations-page.component.mjs +0 -134
- package/esm2022/lib/pages/configurations/configurations-page.service.mjs +0 -251
- package/esm2022/lib/pages/edge-router-policies/edge-router-policies-page.component.mjs +0 -128
- package/esm2022/lib/pages/edge-router-policies/edge-router-policies-page.service.mjs +0 -407
- package/esm2022/lib/pages/edge-routers/edge-routers-page.component.mjs +0 -136
- package/esm2022/lib/pages/edge-routers/edge-routers-page.service.mjs +0 -354
- package/esm2022/lib/pages/geolocate/geolocate.component.mjs +0 -130
- package/esm2022/lib/pages/identities/identities-page.component.mjs +0 -221
- package/esm2022/lib/pages/identities/identities-page.service.mjs +0 -591
- package/esm2022/lib/pages/jwt-signers/jwt-signers-page.component.mjs +0 -160
- package/esm2022/lib/pages/jwt-signers/jwt-signers-page.service.mjs +0 -177
- package/esm2022/lib/pages/posture-checks/posture-checks-page.component.mjs +0 -103
- package/esm2022/lib/pages/posture-checks/posture-checks-page.service.mjs +0 -200
- package/esm2022/lib/pages/profile/profile.component.mjs +0 -58
- package/esm2022/lib/pages/service-edge-router-policies/service-edge-router-policies-page.component.mjs +0 -122
- package/esm2022/lib/pages/service-edge-router-policies/service-edge-router-policies-page.service.mjs +0 -367
- package/esm2022/lib/pages/service-policies/service-policies-page.component.mjs +0 -124
- package/esm2022/lib/pages/service-policies/service-policies-page.service.mjs +0 -446
- package/esm2022/lib/pages/services/services-page.component.mjs +0 -218
- package/esm2022/lib/pages/services/services-page.service.mjs +0 -378
- package/esm2022/lib/pages/sessions/sessions-page.component.mjs +0 -112
- package/esm2022/lib/pages/sessions/sessions-page.service.mjs +0 -228
- package/esm2022/lib/pages/settings/settings.component.mjs +0 -61
- package/esm2022/lib/pages/terminators/terminators-page.component.mjs +0 -97
- package/esm2022/lib/pages/terminators/terminators-page.service.mjs +0 -235
- package/esm2022/lib/pages/transit-routers/transit-routers-page.component.mjs +0 -129
- package/esm2022/lib/pages/transit-routers/transit-routers-page.service.mjs +0 -248
- package/esm2022/lib/safe.pipe.mjs +0 -18
- package/esm2022/lib/services/auth.service.mjs +0 -94
- package/esm2022/lib/services/console-events.service.mjs +0 -20
- package/esm2022/lib/services/csv-download.service.mjs +0 -91
- package/esm2022/lib/services/deactivate-guard.service.mjs +0 -17
- package/esm2022/lib/services/login-service.class.mjs +0 -47
- package/esm2022/lib/services/node-data.service.mjs +0 -397
- package/esm2022/lib/services/noop-login.service.mjs +0 -41
- package/esm2022/lib/services/schema.service.mjs +0 -807
- package/esm2022/lib/services/settings-service.class.mjs +0 -120
- package/esm2022/lib/services/settings.service.mjs +0 -203
- package/esm2022/lib/services/tab-name.service.mjs +0 -73
- package/esm2022/lib/services/validation.service.mjs +0 -156
- package/esm2022/lib/services/ziti-controller-data.service.mjs +0 -340
- package/esm2022/lib/services/ziti-data.service.mjs +0 -100
- package/esm2022/lib/services/ziti-domain-controller.service.mjs +0 -3
- package/esm2022/lib/shared/list-page-component.class.mjs +0 -186
- package/esm2022/lib/shared/list-page-service.class.mjs +0 -244
- package/esm2022/lib/urls.mjs +0 -34
- package/esm2022/lib/zac-routing.module.mjs +0 -34
- package/esm2022/lib/ziti-console-lib.module.mjs +0 -538
- package/esm2022/lib/ziti-console.constants.mjs +0 -20
- package/esm2022/openziti-ziti-console-lib.mjs +0 -5
- package/esm2022/public-api.mjs +0 -130
- package/lib/ZAC_VERSION.d.ts +0 -4
- package/lib/ZAC_VERSION.d.ts.map +0 -1
- package/lib/app.initializer.d.ts +0 -3
- package/lib/app.initializer.d.ts.map +0 -1
- package/lib/default-app-config.d.ts +0 -9
- package/lib/default-app-config.d.ts.map +0 -1
- package/lib/features/card/card.component.d.ts +0 -13
- package/lib/features/card/card.component.d.ts.map +0 -1
- package/lib/features/card-list/card-list.component.d.ts +0 -27
- package/lib/features/card-list/card-list.component.d.ts.map +0 -1
- package/lib/features/config-editor/config-editor.component.d.ts +0 -50
- package/lib/features/config-editor/config-editor.component.d.ts.map +0 -1
- package/lib/features/confirm/confirm.component.d.ts +0 -34
- package/lib/features/confirm/confirm.component.d.ts.map +0 -1
- package/lib/features/creation-summary-dialog/creation-summary-dialog.component.d.ts +0 -32
- package/lib/features/creation-summary-dialog/creation-summary-dialog.component.d.ts.map +0 -1
- package/lib/features/custom-tags/custom-tags.component.d.ts +0 -37
- package/lib/features/custom-tags/custom-tags.component.d.ts.map +0 -1
- package/lib/features/data-table/cells/table-cell-menu/table-cell-menu.component.d.ts +0 -16
- package/lib/features/data-table/cells/table-cell-menu/table-cell-menu.component.d.ts.map +0 -1
- package/lib/features/data-table/cells/table-cell-name/table-cell-name.component.d.ts +0 -20
- package/lib/features/data-table/cells/table-cell-name/table-cell-name.component.d.ts.map +0 -1
- package/lib/features/data-table/cells/table-cell-select/table-cell-select.component.d.ts +0 -15
- package/lib/features/data-table/cells/table-cell-select/table-cell-select.component.d.ts.map +0 -1
- package/lib/features/data-table/cells/table-cell-token/table-cell-token.component.d.ts +0 -22
- package/lib/features/data-table/cells/table-cell-token/table-cell-token.component.d.ts.map +0 -1
- package/lib/features/data-table/column-headers/table-column-default/table-column-default.component.d.ts +0 -52
- package/lib/features/data-table/column-headers/table-column-default/table-column-default.component.d.ts.map +0 -1
- package/lib/features/data-table/column-headers/table-column-filter/table-column-filter.component.d.ts +0 -27
- package/lib/features/data-table/column-headers/table-column-filter/table-column-filter.component.d.ts.map +0 -1
- package/lib/features/data-table/column-headers/table-column-menu/table-column-menu.component.d.ts +0 -19
- package/lib/features/data-table/column-headers/table-column-menu/table-column-menu.component.d.ts.map +0 -1
- package/lib/features/data-table/column-headers/table-column-select/table-column-select.component.d.ts +0 -15
- package/lib/features/data-table/column-headers/table-column-select/table-column-select.component.d.ts.map +0 -1
- package/lib/features/data-table/data-table-filter.service.d.ts +0 -37
- package/lib/features/data-table/data-table-filter.service.d.ts.map +0 -1
- package/lib/features/data-table/data-table.component.d.ts +0 -164
- package/lib/features/data-table/data-table.component.d.ts.map +0 -1
- package/lib/features/data-table/data-table.service.d.ts +0 -20
- package/lib/features/data-table/data-table.service.d.ts.map +0 -1
- package/lib/features/data-table/table-filter-bar/filter-bar.component.d.ts +0 -25
- package/lib/features/data-table/table-filter-bar/filter-bar.component.d.ts.map +0 -1
- package/lib/features/data-table/table-hidden-columns-bar/hidden-columns-bar.component.d.ts +0 -10
- package/lib/features/data-table/table-hidden-columns-bar/hidden-columns-bar.component.d.ts.map +0 -1
- package/lib/features/data-table/tooltips/os-tooltip.component.d.ts +0 -15
- package/lib/features/data-table/tooltips/os-tooltip.component.d.ts.map +0 -1
- package/lib/features/data-table/tooltips/sdk-tooltip.component.d.ts +0 -15
- package/lib/features/data-table/tooltips/sdk-tooltip.component.d.ts.map +0 -1
- package/lib/features/dynamic-widgets/boolean/boolean-toggle-input.component.d.ts +0 -19
- package/lib/features/dynamic-widgets/boolean/boolean-toggle-input.component.d.ts.map +0 -1
- package/lib/features/dynamic-widgets/checkbox-list/checkbox-list-input.component.d.ts +0 -28
- package/lib/features/dynamic-widgets/checkbox-list/checkbox-list-input.component.d.ts.map +0 -1
- package/lib/features/dynamic-widgets/forwarding-config/forwarding-config.component.d.ts +0 -50
- package/lib/features/dynamic-widgets/forwarding-config/forwarding-config.component.d.ts.map +0 -1
- package/lib/features/dynamic-widgets/forwarding-config/forwarding-config.service.d.ts +0 -14
- package/lib/features/dynamic-widgets/forwarding-config/forwarding-config.service.d.ts.map +0 -1
- package/lib/features/dynamic-widgets/number/number-input.component.d.ts +0 -23
- package/lib/features/dynamic-widgets/number/number-input.component.d.ts.map +0 -1
- package/lib/features/dynamic-widgets/object/object.component.d.ts +0 -26
- package/lib/features/dynamic-widgets/object/object.component.d.ts.map +0 -1
- package/lib/features/dynamic-widgets/password/password-input.component.d.ts +0 -24
- package/lib/features/dynamic-widgets/password/password-input.component.d.ts.map +0 -1
- package/lib/features/dynamic-widgets/port-ranges/port-ranges.component.d.ts +0 -22
- package/lib/features/dynamic-widgets/port-ranges/port-ranges.component.d.ts.map +0 -1
- package/lib/features/dynamic-widgets/protocol-address-port/protocol-address-port-input.component.d.ts +0 -60
- package/lib/features/dynamic-widgets/protocol-address-port/protocol-address-port-input.component.d.ts.map +0 -1
- package/lib/features/dynamic-widgets/selector/selector-input.component.d.ts +0 -30
- package/lib/features/dynamic-widgets/selector/selector-input.component.d.ts.map +0 -1
- package/lib/features/dynamic-widgets/string/string-input.component.d.ts +0 -27
- package/lib/features/dynamic-widgets/string/string-input.component.d.ts.map +0 -1
- package/lib/features/dynamic-widgets/text-list/text-list-input.component.d.ts +0 -26
- package/lib/features/dynamic-widgets/text-list/text-list-input.component.d.ts.map +0 -1
- package/lib/features/extendable/extendable.component.d.ts +0 -15
- package/lib/features/extendable/extendable.component.d.ts.map +0 -1
- package/lib/features/extendable/extensions-noop.service.d.ts +0 -35
- package/lib/features/extendable/extensions-noop.service.d.ts.map +0 -1
- package/lib/features/header-bar/header-bar.component.d.ts +0 -29
- package/lib/features/header-bar/header-bar.component.d.ts.map +0 -1
- package/lib/features/json-view/json-view.component.d.ts +0 -40
- package/lib/features/json-view/json-view.component.d.ts.map +0 -1
- package/lib/features/list-page-features/list-page-form/list-page-form.component.d.ts +0 -35
- package/lib/features/list-page-features/list-page-form/list-page-form.component.d.ts.map +0 -1
- package/lib/features/list-page-features/list-page-header/list-page-header.component.d.ts +0 -14
- package/lib/features/list-page-features/list-page-header/list-page-header.component.d.ts.map +0 -1
- package/lib/features/loading-indicator/loading-indicator.component.d.ts +0 -11
- package/lib/features/loading-indicator/loading-indicator.component.d.ts.map +0 -1
- package/lib/features/login/login-dialog.component.d.ts +0 -30
- package/lib/features/login/login-dialog.component.d.ts.map +0 -1
- package/lib/features/messaging/growler.component.d.ts +0 -19
- package/lib/features/messaging/growler.component.d.ts.map +0 -1
- package/lib/features/messaging/growler.model.d.ts +0 -8
- package/lib/features/messaging/growler.model.d.ts.map +0 -1
- package/lib/features/messaging/growler.module.d.ts +0 -10
- package/lib/features/messaging/growler.module.d.ts.map +0 -1
- package/lib/features/messaging/growler.service.d.ts +0 -18
- package/lib/features/messaging/growler.service.d.ts.map +0 -1
- package/lib/features/messaging/logger.service.d.ts +0 -27
- package/lib/features/messaging/logger.service.d.ts.map +0 -1
- package/lib/features/multi-action-button/multi-action-button.component.d.ts +0 -13
- package/lib/features/multi-action-button/multi-action-button.component.d.ts.map +0 -1
- package/lib/features/no-items/no-items.component.d.ts +0 -19
- package/lib/features/no-items/no-items.component.d.ts.map +0 -1
- package/lib/features/overrides/overrides.component.d.ts +0 -33
- package/lib/features/overrides/overrides.component.d.ts.map +0 -1
- package/lib/features/overrides/overrides.service.d.ts +0 -18
- package/lib/features/overrides/overrides.service.d.ts.map +0 -1
- package/lib/features/preview-list/preview-list.component.d.ts +0 -34
- package/lib/features/preview-list/preview-list.component.d.ts.map +0 -1
- package/lib/features/preview-selections/preview-selections.component.d.ts +0 -39
- package/lib/features/preview-selections/preview-selections.component.d.ts.map +0 -1
- package/lib/features/progress-meter/progress-meter.component.d.ts +0 -19
- package/lib/features/progress-meter/progress-meter.component.d.ts.map +0 -1
- package/lib/features/progress-wizard/progress-wizard.component.d.ts +0 -31
- package/lib/features/progress-wizard/progress-wizard.component.d.ts.map +0 -1
- package/lib/features/projectable-forms/api-session/api-session-form.component.d.ts +0 -50
- package/lib/features/projectable-forms/api-session/api-session-form.component.d.ts.map +0 -1
- package/lib/features/projectable-forms/api-session/api-session-form.service.d.ts +0 -27
- package/lib/features/projectable-forms/api-session/api-session-form.service.d.ts.map +0 -1
- package/lib/features/projectable-forms/auth-policy/auth-policy-form.component.d.ts +0 -74
- package/lib/features/projectable-forms/auth-policy/auth-policy-form.component.d.ts.map +0 -1
- package/lib/features/projectable-forms/auth-policy/auth-policy-form.service.d.ts +0 -38
- package/lib/features/projectable-forms/auth-policy/auth-policy-form.service.d.ts.map +0 -1
- package/lib/features/projectable-forms/certificate-authority/certificate-authority-form.component.d.ts +0 -80
- package/lib/features/projectable-forms/certificate-authority/certificate-authority-form.component.d.ts.map +0 -1
- package/lib/features/projectable-forms/certificate-authority/certificate-authority-form.service.d.ts +0 -37
- package/lib/features/projectable-forms/certificate-authority/certificate-authority-form.service.d.ts.map +0 -1
- package/lib/features/projectable-forms/certificate-authority/verify-certificate/verify-certificate.component.d.ts +0 -62
- package/lib/features/projectable-forms/certificate-authority/verify-certificate/verify-certificate.component.d.ts.map +0 -1
- package/lib/features/projectable-forms/certificate-authority/verify-certificate/verify-certificate.service.d.ts +0 -28
- package/lib/features/projectable-forms/certificate-authority/verify-certificate/verify-certificate.service.d.ts.map +0 -1
- package/lib/features/projectable-forms/config-type/config-type-form.component.d.ts +0 -63
- package/lib/features/projectable-forms/config-type/config-type-form.component.d.ts.map +0 -1
- package/lib/features/projectable-forms/config-type/config-type-form.service.d.ts +0 -27
- package/lib/features/projectable-forms/config-type/config-type-form.service.d.ts.map +0 -1
- package/lib/features/projectable-forms/configuration/configuration-form.component.d.ts +0 -62
- package/lib/features/projectable-forms/configuration/configuration-form.component.d.ts.map +0 -1
- package/lib/features/projectable-forms/configuration/configuration.service.d.ts +0 -33
- package/lib/features/projectable-forms/configuration/configuration.service.d.ts.map +0 -1
- package/lib/features/projectable-forms/edge-router/edge-router-form.component.d.ts +0 -53
- package/lib/features/projectable-forms/edge-router/edge-router-form.component.d.ts.map +0 -1
- package/lib/features/projectable-forms/edge-router/edge-router-form.service.d.ts +0 -29
- package/lib/features/projectable-forms/edge-router/edge-router-form.service.d.ts.map +0 -1
- package/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.component.d.ts +0 -54
- package/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.component.d.ts.map +0 -1
- package/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.service.d.ts +0 -40
- package/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.service.d.ts.map +0 -1
- package/lib/features/projectable-forms/form-field-container/form-field-container.component.d.ts +0 -29
- package/lib/features/projectable-forms/form-field-container/form-field-container.component.d.ts.map +0 -1
- package/lib/features/projectable-forms/form-field-toggle/form-field-toggle.component.d.ts +0 -15
- package/lib/features/projectable-forms/form-field-toggle/form-field-toggle.component.d.ts.map +0 -1
- package/lib/features/projectable-forms/form-header/form-header.component.d.ts +0 -38
- package/lib/features/projectable-forms/form-header/form-header.component.d.ts.map +0 -1
- package/lib/features/projectable-forms/identity/identity-form.component.d.ts +0 -93
- package/lib/features/projectable-forms/identity/identity-form.component.d.ts.map +0 -1
- package/lib/features/projectable-forms/identity/identity-form.service.d.ts +0 -20
- package/lib/features/projectable-forms/identity/identity-form.service.d.ts.map +0 -1
- package/lib/features/projectable-forms/jwt-signer/jwt-signer-form.component.d.ts +0 -97
- package/lib/features/projectable-forms/jwt-signer/jwt-signer-form.component.d.ts.map +0 -1
- package/lib/features/projectable-forms/jwt-signer/jwt-signer-form.service.d.ts +0 -21
- package/lib/features/projectable-forms/jwt-signer/jwt-signer-form.service.d.ts.map +0 -1
- package/lib/features/projectable-forms/posture-check/posture-check-form.component.d.ts +0 -134
- package/lib/features/projectable-forms/posture-check/posture-check-form.component.d.ts.map +0 -1
- package/lib/features/projectable-forms/posture-check/posture-check-form.service.d.ts +0 -23
- package/lib/features/projectable-forms/posture-check/posture-check-form.service.d.ts.map +0 -1
- package/lib/features/projectable-forms/projectable-form.class.d.ts +0 -92
- package/lib/features/projectable-forms/projectable-form.class.d.ts.map +0 -1
- package/lib/features/projectable-forms/service/service-form.component.d.ts +0 -70
- package/lib/features/projectable-forms/service/service-form.component.d.ts.map +0 -1
- package/lib/features/projectable-forms/service/service-form.service.d.ts +0 -123
- package/lib/features/projectable-forms/service/service-form.service.d.ts.map +0 -1
- package/lib/features/projectable-forms/service/simple-service/simple-service.component.d.ts +0 -173
- package/lib/features/projectable-forms/service/simple-service/simple-service.component.d.ts.map +0 -1
- package/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.component.d.ts +0 -53
- package/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.component.d.ts.map +0 -1
- package/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.service.d.ts +0 -38
- package/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.service.d.ts.map +0 -1
- package/lib/features/projectable-forms/service-policy/service-policy-form.component.d.ts +0 -55
- package/lib/features/projectable-forms/service-policy/service-policy-form.component.d.ts.map +0 -1
- package/lib/features/projectable-forms/service-policy/service-policy-form.service.d.ts +0 -48
- package/lib/features/projectable-forms/service-policy/service-policy-form.service.d.ts.map +0 -1
- package/lib/features/projectable-forms/session/session-form.component.d.ts +0 -63
- package/lib/features/projectable-forms/session/session-form.component.d.ts.map +0 -1
- package/lib/features/projectable-forms/session/session-form.service.d.ts +0 -23
- package/lib/features/projectable-forms/session/session-form.service.d.ts.map +0 -1
- package/lib/features/projectable-forms/terminator/terminator-form.component.d.ts +0 -58
- package/lib/features/projectable-forms/terminator/terminator-form.component.d.ts.map +0 -1
- package/lib/features/projectable-forms/terminator/terminator-form.service.d.ts +0 -33
- package/lib/features/projectable-forms/terminator/terminator-form.service.d.ts.map +0 -1
- package/lib/features/projectable-forms/transit-router/transit-router-form.component.d.ts +0 -50
- package/lib/features/projectable-forms/transit-router/transit-router-form.component.d.ts.map +0 -1
- package/lib/features/projectable-forms/transit-router/transit-router-form.service.d.ts +0 -27
- package/lib/features/projectable-forms/transit-router/transit-router-form.service.d.ts.map +0 -1
- package/lib/features/qr-code/qr-code.component.d.ts +0 -45
- package/lib/features/qr-code/qr-code.component.d.ts.map +0 -1
- package/lib/features/quick-add/quick-add.component.d.ts +0 -15
- package/lib/features/quick-add/quick-add.component.d.ts.map +0 -1
- package/lib/features/reset-enrollment/reset-enrollment.component.d.ts +0 -27
- package/lib/features/reset-enrollment/reset-enrollment.component.d.ts.map +0 -1
- package/lib/features/reset-enrollment/reset-enrollment.service.d.ts +0 -13
- package/lib/features/reset-enrollment/reset-enrollment.service.d.ts.map +0 -1
- package/lib/features/side-modal/side-modal.component.d.ts +0 -15
- package/lib/features/side-modal/side-modal.component.d.ts.map +0 -1
- package/lib/features/side-navigator/side-navigator.component.d.ts +0 -33
- package/lib/features/side-navigator/side-navigator.component.d.ts.map +0 -1
- package/lib/features/sidebars/side-navbar/side-navbar.component.d.ts +0 -16
- package/lib/features/sidebars/side-navbar/side-navbar.component.d.ts.map +0 -1
- package/lib/features/tag-selector/tag-selector.component.d.ts +0 -59
- package/lib/features/tag-selector/tag-selector.component.d.ts.map +0 -1
- package/lib/features/visualizer/identity-service-path/identity-service-path.component.d.ts +0 -54
- package/lib/features/visualizer/identity-service-path/identity-service-path.component.d.ts.map +0 -1
- package/lib/features/visualizer/identity-service-path/identity-service-path.helper.d.ts +0 -21
- package/lib/features/visualizer/identity-service-path/identity-service-path.helper.d.ts.map +0 -1
- package/lib/features/visualizer/network-visualizer/network-visualizer.component.d.ts +0 -146
- package/lib/features/visualizer/network-visualizer/network-visualizer.component.d.ts.map +0 -1
- package/lib/features/visualizer/network-visualizer/network-visualizer.helper.d.ts +0 -172
- package/lib/features/visualizer/network-visualizer/network-visualizer.helper.d.ts.map +0 -1
- package/lib/features/visualizer/network-visualizer/network-visualizer.treenodeprocessor.d.ts +0 -35
- package/lib/features/visualizer/network-visualizer/network-visualizer.treenodeprocessor.d.ts.map +0 -1
- package/lib/features/visualizer/visualizer-service.class.d.ts +0 -10
- package/lib/features/visualizer/visualizer-service.class.d.ts.map +0 -1
- package/lib/models/api-session.d.ts +0 -18
- package/lib/models/api-session.d.ts.map +0 -1
- package/lib/models/auth-policy.d.ts +0 -8
- package/lib/models/auth-policy.d.ts.map +0 -1
- package/lib/models/certificate-authority.d.ts +0 -14
- package/lib/models/certificate-authority.d.ts.map +0 -1
- package/lib/models/config-type.d.ts +0 -7
- package/lib/models/config-type.d.ts.map +0 -1
- package/lib/models/config.d.ts +0 -7
- package/lib/models/config.d.ts.map +0 -1
- package/lib/models/edge-router-policy.d.ts +0 -8
- package/lib/models/edge-router-policy.d.ts.map +0 -1
- package/lib/models/edge-router.d.ts +0 -10
- package/lib/models/edge-router.d.ts.map +0 -1
- package/lib/models/identity.d.ts +0 -16
- package/lib/models/identity.d.ts.map +0 -1
- package/lib/models/jwt-signer.d.ts +0 -17
- package/lib/models/jwt-signer.d.ts.map +0 -1
- package/lib/models/posture-check.d.ts +0 -17
- package/lib/models/posture-check.d.ts.map +0 -1
- package/lib/models/service-edge-router-policy.d.ts +0 -8
- package/lib/models/service-edge-router-policy.d.ts.map +0 -1
- package/lib/models/service-policy.d.ts +0 -10
- package/lib/models/service-policy.d.ts.map +0 -1
- package/lib/models/service.d.ts +0 -9
- package/lib/models/service.d.ts.map +0 -1
- package/lib/models/session.d.ts +0 -17
- package/lib/models/session.d.ts.map +0 -1
- package/lib/models/terminator.d.ts +0 -11
- package/lib/models/terminator.d.ts.map +0 -1
- package/lib/pages/api-sessions/api-sessions-page.component.d.ts +0 -30
- package/lib/pages/api-sessions/api-sessions-page.component.d.ts.map +0 -1
- package/lib/pages/api-sessions/api-sessions-page.service.d.ts +0 -31
- package/lib/pages/api-sessions/api-sessions-page.service.d.ts.map +0 -1
- package/lib/pages/attributes/attributes.component.d.ts +0 -31
- package/lib/pages/attributes/attributes.component.d.ts.map +0 -1
- package/lib/pages/auth-policies/auth-policies-page.component.d.ts +0 -29
- package/lib/pages/auth-policies/auth-policies-page.component.d.ts.map +0 -1
- package/lib/pages/auth-policies/auth-policies-page.service.d.ts +0 -34
- package/lib/pages/auth-policies/auth-policies-page.service.d.ts.map +0 -1
- package/lib/pages/callback/callback.component.d.ts +0 -22
- package/lib/pages/callback/callback.component.d.ts.map +0 -1
- package/lib/pages/certificate-authorities/certificate-authorities-page.component.d.ts +0 -30
- package/lib/pages/certificate-authorities/certificate-authorities-page.component.d.ts.map +0 -1
- package/lib/pages/certificate-authorities/certificate-authorities-page.service.d.ts +0 -35
- package/lib/pages/certificate-authorities/certificate-authorities-page.service.d.ts.map +0 -1
- package/lib/pages/config-types/config-types-page.component.d.ts +0 -31
- package/lib/pages/config-types/config-types-page.component.d.ts.map +0 -1
- package/lib/pages/config-types/config-types-page.service.d.ts +0 -29
- package/lib/pages/config-types/config-types-page.service.d.ts.map +0 -1
- package/lib/pages/configurations/configurations-page.component.d.ts +0 -30
- package/lib/pages/configurations/configurations-page.component.d.ts.map +0 -1
- package/lib/pages/configurations/configurations-page.service.d.ts +0 -80
- package/lib/pages/configurations/configurations-page.service.d.ts.map +0 -1
- package/lib/pages/edge-router-policies/edge-router-policies-page.component.d.ts +0 -33
- package/lib/pages/edge-router-policies/edge-router-policies-page.component.d.ts.map +0 -1
- package/lib/pages/edge-router-policies/edge-router-policies-page.service.d.ts +0 -63
- package/lib/pages/edge-router-policies/edge-router-policies-page.service.d.ts.map +0 -1
- package/lib/pages/edge-routers/edge-routers-page.component.d.ts +0 -36
- package/lib/pages/edge-routers/edge-routers-page.component.d.ts.map +0 -1
- package/lib/pages/edge-routers/edge-routers-page.service.d.ts +0 -51
- package/lib/pages/edge-routers/edge-routers-page.service.d.ts.map +0 -1
- package/lib/pages/geolocate/geolocate.component.d.ts +0 -32
- package/lib/pages/geolocate/geolocate.component.d.ts.map +0 -1
- package/lib/pages/identities/identities-page.component.d.ts +0 -40
- package/lib/pages/identities/identities-page.component.d.ts.map +0 -1
- package/lib/pages/identities/identities-page.service.d.ts +0 -64
- package/lib/pages/identities/identities-page.service.d.ts.map +0 -1
- package/lib/pages/jwt-signers/jwt-signers-page.component.d.ts +0 -34
- package/lib/pages/jwt-signers/jwt-signers-page.component.d.ts.map +0 -1
- package/lib/pages/jwt-signers/jwt-signers-page.service.d.ts +0 -31
- package/lib/pages/jwt-signers/jwt-signers-page.service.d.ts.map +0 -1
- package/lib/pages/posture-checks/posture-checks-page.component.d.ts +0 -29
- package/lib/pages/posture-checks/posture-checks-page.component.d.ts.map +0 -1
- package/lib/pages/posture-checks/posture-checks-page.service.d.ts +0 -28
- package/lib/pages/posture-checks/posture-checks-page.service.d.ts.map +0 -1
- package/lib/pages/profile/profile.component.d.ts +0 -17
- package/lib/pages/profile/profile.component.d.ts.map +0 -1
- package/lib/pages/service-edge-router-policies/service-edge-router-policies-page.component.d.ts +0 -33
- package/lib/pages/service-edge-router-policies/service-edge-router-policies-page.component.d.ts.map +0 -1
- package/lib/pages/service-edge-router-policies/service-edge-router-policies-page.service.d.ts +0 -57
- package/lib/pages/service-edge-router-policies/service-edge-router-policies-page.service.d.ts.map +0 -1
- package/lib/pages/service-policies/service-policies-page.component.d.ts +0 -34
- package/lib/pages/service-policies/service-policies-page.component.d.ts.map +0 -1
- package/lib/pages/service-policies/service-policies-page.service.d.ts +0 -63
- package/lib/pages/service-policies/service-policies-page.service.d.ts.map +0 -1
- package/lib/pages/services/services-page.component.d.ts +0 -42
- package/lib/pages/services/services-page.component.d.ts.map +0 -1
- package/lib/pages/services/services-page.service.d.ts +0 -69
- package/lib/pages/services/services-page.service.d.ts.map +0 -1
- package/lib/pages/sessions/sessions-page.component.d.ts +0 -30
- package/lib/pages/sessions/sessions-page.component.d.ts.map +0 -1
- package/lib/pages/sessions/sessions-page.service.d.ts +0 -30
- package/lib/pages/sessions/sessions-page.service.d.ts.map +0 -1
- package/lib/pages/settings/settings.component.d.ts +0 -23
- package/lib/pages/settings/settings.component.d.ts.map +0 -1
- package/lib/pages/terminators/terminators-page.component.d.ts +0 -29
- package/lib/pages/terminators/terminators-page.component.d.ts.map +0 -1
- package/lib/pages/terminators/terminators-page.service.d.ts +0 -32
- package/lib/pages/terminators/terminators-page.service.d.ts.map +0 -1
- package/lib/pages/transit-routers/transit-routers-page.component.d.ts +0 -35
- package/lib/pages/transit-routers/transit-routers-page.component.d.ts.map +0 -1
- package/lib/pages/transit-routers/transit-routers-page.service.d.ts +0 -50
- package/lib/pages/transit-routers/transit-routers-page.service.d.ts.map +0 -1
- package/lib/safe.pipe.d.ts +0 -11
- package/lib/safe.pipe.d.ts.map +0 -1
- package/lib/services/auth.service.d.ts +0 -21
- package/lib/services/auth.service.d.ts.map +0 -1
- package/lib/services/console-events.service.d.ts +0 -12
- package/lib/services/console-events.service.d.ts.map +0 -1
- package/lib/services/csv-download.service.d.ts +0 -11
- package/lib/services/csv-download.service.d.ts.map +0 -1
- package/lib/services/deactivate-guard.service.d.ts +0 -14
- package/lib/services/deactivate-guard.service.d.ts.map +0 -1
- package/lib/services/login-service.class.d.ts +0 -30
- package/lib/services/login-service.class.d.ts.map +0 -1
- package/lib/services/node-data.service.d.ts +0 -38
- package/lib/services/node-data.service.d.ts.map +0 -1
- package/lib/services/noop-login.service.d.ts +0 -22
- package/lib/services/noop-login.service.d.ts.map +0 -1
- package/lib/services/schema.service.d.ts +0 -63
- package/lib/services/schema.service.d.ts.map +0 -1
- package/lib/services/settings-service.class.d.ts +0 -36
- package/lib/services/settings-service.class.d.ts.map +0 -1
- package/lib/services/settings.service.d.ts +0 -20
- package/lib/services/settings.service.d.ts.map +0 -1
- package/lib/services/tab-name.service.d.ts +0 -20
- package/lib/services/tab-name.service.d.ts.map +0 -1
- package/lib/services/validation.service.d.ts +0 -20
- package/lib/services/validation.service.d.ts.map +0 -1
- package/lib/services/ziti-controller-data.service.d.ts +0 -36
- package/lib/services/ziti-controller-data.service.d.ts.map +0 -1
- package/lib/services/ziti-data.service.d.ts +0 -49
- package/lib/services/ziti-data.service.d.ts.map +0 -1
- package/lib/services/ziti-domain-controller.service.d.ts +0 -13
- package/lib/services/ziti-domain-controller.service.d.ts.map +0 -1
- package/lib/shared/list-page-component.class.d.ts +0 -57
- package/lib/shared/list-page-component.class.d.ts.map +0 -1
- package/lib/shared/list-page-service.class.d.ts +0 -81
- package/lib/shared/list-page-service.class.d.ts.map +0 -1
- package/lib/urls.d.ts +0 -34
- package/lib/urls.d.ts.map +0 -1
- package/lib/zac-routing.module.d.ts +0 -8
- package/lib/zac-routing.module.d.ts.map +0 -1
- package/lib/ziti-console-lib.module.d.ts +0 -121
- package/lib/ziti-console-lib.module.d.ts.map +0 -1
- package/lib/ziti-console.constants.d.ts +0 -5
- package/lib/ziti-console.constants.d.ts.map +0 -1
- package/openziti-ziti-console-lib.d.ts.map +0 -1
- package/public-api.d.ts +0 -127
- package/public-api.d.ts.map +0 -1
|
@@ -1,337 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output, ViewChild, ViewContainerRef } from '@angular/core';
|
|
2
|
-
import { JsonEditorComponent } from "ang-jsoneditor";
|
|
3
|
-
import { debounce, defer, isBoolean, isEmpty, isNil, keys } from "lodash";
|
|
4
|
-
import Ajv from 'ajv';
|
|
5
|
-
import addFormats from 'ajv-formats';
|
|
6
|
-
import { GrowlerModel } from "../messaging/growler.model";
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "../../services/schema.service";
|
|
9
|
-
import * as i2 from "../messaging/growler.service";
|
|
10
|
-
import * as i3 from "@angular/common";
|
|
11
|
-
import * as i4 from "ng-click-outside";
|
|
12
|
-
import * as i5 from "../json-view/json-view.component";
|
|
13
|
-
export class ConfigEditorComponent {
|
|
14
|
-
set configData(data) {
|
|
15
|
-
this._configData = data;
|
|
16
|
-
this.initFormData();
|
|
17
|
-
}
|
|
18
|
-
;
|
|
19
|
-
get configData() {
|
|
20
|
-
return this._configData;
|
|
21
|
-
}
|
|
22
|
-
set showJsonView(showJsonView) {
|
|
23
|
-
this._showJsonView = showJsonView;
|
|
24
|
-
this.updateConfigData();
|
|
25
|
-
}
|
|
26
|
-
get showJsonView() {
|
|
27
|
-
return this._showJsonView;
|
|
28
|
-
}
|
|
29
|
-
set schema(schema) {
|
|
30
|
-
this._schema = schema;
|
|
31
|
-
this.initFormData();
|
|
32
|
-
this.createForm();
|
|
33
|
-
this.updateConfigData();
|
|
34
|
-
}
|
|
35
|
-
get schema() {
|
|
36
|
-
return this._schema;
|
|
37
|
-
}
|
|
38
|
-
constructor(schemaSvc, growlerService) {
|
|
39
|
-
this.schemaSvc = schemaSvc;
|
|
40
|
-
this.growlerService = growlerService;
|
|
41
|
-
this.configDataInit = false;
|
|
42
|
-
this.items = [];
|
|
43
|
-
this.lColorArray = [
|
|
44
|
-
'white',
|
|
45
|
-
'white',
|
|
46
|
-
];
|
|
47
|
-
this.bColorArray = [
|
|
48
|
-
'var(--formGroup)',
|
|
49
|
-
'var(--formSubGroup)'
|
|
50
|
-
];
|
|
51
|
-
this.hideConfigJSON = false;
|
|
52
|
-
this.configErrors = {};
|
|
53
|
-
this.configErrorsChange = new EventEmitter();
|
|
54
|
-
this._configData = {};
|
|
55
|
-
this.configDataChange = new EventEmitter();
|
|
56
|
-
this._showJsonView = false;
|
|
57
|
-
this._schema = false;
|
|
58
|
-
this.formDataChangedDebounced = debounce(this.formDataChanged.bind(this), 350);
|
|
59
|
-
this.jsonDataChangedDebounced = debounce(this.jsonDataChanged.bind(this), 350);
|
|
60
|
-
}
|
|
61
|
-
ngOnInit() {
|
|
62
|
-
this.createForm();
|
|
63
|
-
}
|
|
64
|
-
createForm() {
|
|
65
|
-
this.clearForm();
|
|
66
|
-
if (this.dynamicForm && this.schema) {
|
|
67
|
-
this.renderSchema(this.schema);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
clearForm() {
|
|
71
|
-
this.items.forEach((item) => {
|
|
72
|
-
if (item?.component)
|
|
73
|
-
item.component.destroy();
|
|
74
|
-
});
|
|
75
|
-
this.configErrors = {};
|
|
76
|
-
this.items = [];
|
|
77
|
-
}
|
|
78
|
-
renderSchema(schema) {
|
|
79
|
-
if (schema.properties) {
|
|
80
|
-
this.items = this.schemaSvc.render(schema, this.dynamicForm, this.lColorArray, this.bColorArray);
|
|
81
|
-
for (let obj of this.items) {
|
|
82
|
-
const cRef = obj.component;
|
|
83
|
-
cRef.instance.errors = this.configErrors;
|
|
84
|
-
if (cRef?.instance.valueChange) {
|
|
85
|
-
const pName = cRef.instance.parentage;
|
|
86
|
-
let parentKey;
|
|
87
|
-
if (pName)
|
|
88
|
-
parentKey = pName.join('.');
|
|
89
|
-
//if (parentKey && !this.formData[parentKey]) this.formData[parentKey] = {};
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
updateConfigData() {
|
|
95
|
-
if (!this.showJsonView) {
|
|
96
|
-
this.updateFormView(this.items, this.configData);
|
|
97
|
-
}
|
|
98
|
-
else {
|
|
99
|
-
this.hideConfigJSON = true;
|
|
100
|
-
defer(() => {
|
|
101
|
-
this.getConfigDataFromForm();
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
updateFormView(items, data = {}) {
|
|
106
|
-
items.forEach((item) => {
|
|
107
|
-
if (item.items) {
|
|
108
|
-
if (item.type === 'array') {
|
|
109
|
-
if (item?.component?.instance?.addedItems) {
|
|
110
|
-
item.addedItems = data[item.key] || [];
|
|
111
|
-
item.component.instance.addedItems = data[item.key] || [];
|
|
112
|
-
}
|
|
113
|
-
this.updateFormView(item.items, {});
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
this.updateFormView(item.items, data[item.key]);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
else if (item?.component?.instance?.setProperties) {
|
|
120
|
-
let val;
|
|
121
|
-
switch (item.key) {
|
|
122
|
-
case 'forwardingconfig':
|
|
123
|
-
val = {
|
|
124
|
-
protocol: data.protocol,
|
|
125
|
-
address: data.address,
|
|
126
|
-
port: data.port,
|
|
127
|
-
forwardProtocol: data.forwardProtocol,
|
|
128
|
-
forwardAddress: data.forwardAddress,
|
|
129
|
-
forwardPort: data.forwardPort,
|
|
130
|
-
allowedProtocols: data.allowedProtocols,
|
|
131
|
-
allowedAddresses: data.allowedAddresses,
|
|
132
|
-
allowedPortRanges: data.allowedPortRanges
|
|
133
|
-
};
|
|
134
|
-
break;
|
|
135
|
-
case 'pap':
|
|
136
|
-
val = {
|
|
137
|
-
protocol: data.protocol,
|
|
138
|
-
address: data.address,
|
|
139
|
-
port: data.port,
|
|
140
|
-
hostname: data.hostname,
|
|
141
|
-
};
|
|
142
|
-
break;
|
|
143
|
-
default:
|
|
144
|
-
val = data[item.key];
|
|
145
|
-
break;
|
|
146
|
-
}
|
|
147
|
-
item?.component?.instance?.setProperties(val);
|
|
148
|
-
}
|
|
149
|
-
else if (item?.component?.setInput) {
|
|
150
|
-
item.component.setInput('fieldValue', data[item.key]);
|
|
151
|
-
}
|
|
152
|
-
});
|
|
153
|
-
return data;
|
|
154
|
-
}
|
|
155
|
-
getConfigDataFromForm() {
|
|
156
|
-
const data = {};
|
|
157
|
-
this.addItemsToConfig(this.items, data);
|
|
158
|
-
this._configData = data;
|
|
159
|
-
this.hideConfigJSON = false;
|
|
160
|
-
this.configDataChange.emit(this.configData);
|
|
161
|
-
}
|
|
162
|
-
addItemsToConfig(items, data = {}, parentType = 'object') {
|
|
163
|
-
items.forEach((item) => {
|
|
164
|
-
if (item.type === 'array') {
|
|
165
|
-
if (item.addedItems) {
|
|
166
|
-
data[item.key] = item.addedItems;
|
|
167
|
-
}
|
|
168
|
-
else {
|
|
169
|
-
data[item.key] = [];
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
else if (item.type === 'object') {
|
|
173
|
-
const val = this.addItemsToConfig(item.items, {}, item.type);
|
|
174
|
-
let hasDefinition = false;
|
|
175
|
-
keys(val).forEach((key) => {
|
|
176
|
-
if (isBoolean(val[key]) || (!isEmpty(val[key]) && !isNil(val[key]))) {
|
|
177
|
-
hasDefinition = true;
|
|
178
|
-
}
|
|
179
|
-
});
|
|
180
|
-
data[item.key] = hasDefinition ? val : undefined;
|
|
181
|
-
}
|
|
182
|
-
else {
|
|
183
|
-
let props = [];
|
|
184
|
-
if (item?.component?.instance?.getProperties) {
|
|
185
|
-
props = item?.component?.instance?.getProperties();
|
|
186
|
-
}
|
|
187
|
-
else if (item?.component?.instance) {
|
|
188
|
-
let val = item.component.instance.fieldValue;
|
|
189
|
-
if (Array.isArray(val) && val[0] && typeof val[0] === 'string') {
|
|
190
|
-
val = val?.map(item => item.trim());
|
|
191
|
-
}
|
|
192
|
-
props = [{ key: item.key, value: val }];
|
|
193
|
-
}
|
|
194
|
-
props.forEach((prop) => {
|
|
195
|
-
data[prop.key] = prop.value;
|
|
196
|
-
});
|
|
197
|
-
}
|
|
198
|
-
});
|
|
199
|
-
return data;
|
|
200
|
-
}
|
|
201
|
-
validateConfig(schema, showGrowler = true) {
|
|
202
|
-
this.configData = this.removeUndefinedProperties(this.configData);
|
|
203
|
-
let validationErrors;
|
|
204
|
-
let valid = true;
|
|
205
|
-
if (schema) {
|
|
206
|
-
// Initialize Ajv
|
|
207
|
-
const ajv = new Ajv({ allErrors: true });
|
|
208
|
-
addFormats(ajv);
|
|
209
|
-
ajv.addFormat('idn-hostname', /^.+$/);
|
|
210
|
-
const validate = ajv.compile(schema);
|
|
211
|
-
valid = validate(this.configData);
|
|
212
|
-
validationErrors = validate.errors;
|
|
213
|
-
}
|
|
214
|
-
this.configErrors = {};
|
|
215
|
-
const propertyValidationMap = {};
|
|
216
|
-
this.validateConfigItems(this.items, undefined, '', validationErrors);
|
|
217
|
-
this.buildPropertyValidationMap(validationErrors, propertyValidationMap);
|
|
218
|
-
if (!valid) {
|
|
219
|
-
this.configErrors['configData'] = true;
|
|
220
|
-
if (showGrowler) {
|
|
221
|
-
this.displayConfigErrors(propertyValidationMap);
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
this.configErrorsChange.emit(this.configErrors);
|
|
225
|
-
return isEmpty(this.configErrors);
|
|
226
|
-
}
|
|
227
|
-
buildPropertyValidationMap(validationErrors, propertyValidationMap) {
|
|
228
|
-
validationErrors?.forEach((error) => {
|
|
229
|
-
let path = error.instancePath;
|
|
230
|
-
if (!isEmpty(error?.params?.missingProperty)) {
|
|
231
|
-
path += '/' + error?.params?.missingProperty;
|
|
232
|
-
}
|
|
233
|
-
if (!isEmpty(path)) {
|
|
234
|
-
propertyValidationMap[path] = `<b>${path}</b>: ${error.message}`;
|
|
235
|
-
}
|
|
236
|
-
});
|
|
237
|
-
}
|
|
238
|
-
validateConfigItems(items, parentType = 'object', path = '', validationErrors = []) {
|
|
239
|
-
let isValid = true;
|
|
240
|
-
items.forEach((item) => {
|
|
241
|
-
if (item.type === 'object') {
|
|
242
|
-
if (!this.validateConfigItems(item.items, item.type, path + '/' + item.key, validationErrors)) {
|
|
243
|
-
isValid = false;
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
else if (item?.component?.instance?.setValidationErrors) {
|
|
247
|
-
item?.component?.instance?.setValidationErrors(path, validationErrors);
|
|
248
|
-
}
|
|
249
|
-
else {
|
|
250
|
-
const hasValidationError = validationErrors?.some((error) => {
|
|
251
|
-
let pathToMach = error.instancePath;
|
|
252
|
-
if (!isEmpty(error?.params?.missingProperty)) {
|
|
253
|
-
pathToMach += '/' + error?.params?.missingProperty;
|
|
254
|
-
}
|
|
255
|
-
const matched = pathToMach === (path + '/' + item.key);
|
|
256
|
-
return matched;
|
|
257
|
-
});
|
|
258
|
-
if (item?.component?.instance?.setIsValid) {
|
|
259
|
-
item?.component?.instance?.setIsValid(!hasValidationError);
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
});
|
|
263
|
-
return isValid;
|
|
264
|
-
}
|
|
265
|
-
displayConfigErrors(propertyValidationMap) {
|
|
266
|
-
let validationMessage = '';
|
|
267
|
-
if (!isEmpty(propertyValidationMap)) {
|
|
268
|
-
const props = keys(propertyValidationMap);
|
|
269
|
-
props.forEach((key, index) => {
|
|
270
|
-
validationMessage += `<li>${propertyValidationMap[key]}</li>`;
|
|
271
|
-
});
|
|
272
|
-
}
|
|
273
|
-
if (isEmpty(validationMessage)) {
|
|
274
|
-
validationMessage = 'The entered configuration is invalid. Please update missing/invalid fields and try again.';
|
|
275
|
-
}
|
|
276
|
-
else {
|
|
277
|
-
validationMessage = `<ul style="margin-top: 5px;">${validationMessage}</ul>`;
|
|
278
|
-
}
|
|
279
|
-
const growlerData = new GrowlerModel('error', 'Error', `Error Validating Config`, validationMessage);
|
|
280
|
-
this.growlerService.show(growlerData);
|
|
281
|
-
}
|
|
282
|
-
initFormData() {
|
|
283
|
-
if (!this.configDataInit && !isEmpty(this._configData) && !isEmpty(this.schema)) {
|
|
284
|
-
this.configDataInit = true;
|
|
285
|
-
this.formDataChanged();
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
formDataChanged() {
|
|
289
|
-
defer(() => {
|
|
290
|
-
this.getConfigDataFromForm();
|
|
291
|
-
});
|
|
292
|
-
}
|
|
293
|
-
jsonDataChanged(event) {
|
|
294
|
-
defer(() => {
|
|
295
|
-
this.configDataChange.emit(this.configData);
|
|
296
|
-
this.updateFormView(this.items, this.configData);
|
|
297
|
-
});
|
|
298
|
-
}
|
|
299
|
-
removeUndefinedProperties(data) {
|
|
300
|
-
if (Array.isArray(data)) {
|
|
301
|
-
return data
|
|
302
|
-
.map(item => this.removeUndefinedProperties(item))
|
|
303
|
-
.filter(item => item !== undefined);
|
|
304
|
-
}
|
|
305
|
-
else if (typeof data === 'object' && data !== null) {
|
|
306
|
-
return Object.fromEntries(Object.entries(data)
|
|
307
|
-
.filter(([_, value]) => value !== undefined)
|
|
308
|
-
.map(([key, value]) => [key, this.removeUndefinedProperties(value)]));
|
|
309
|
-
}
|
|
310
|
-
return data;
|
|
311
|
-
}
|
|
312
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigEditorComponent, deps: [{ token: i1.SchemaService }, { token: i2.GrowlerService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
313
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ConfigEditorComponent, selector: "lib-config-editor", inputs: { configErrors: "configErrors", configData: "configData", showJsonView: "showJsonView", schema: "schema" }, outputs: { configErrorsChange: "configErrorsChange", configDataChange: "configDataChange" }, viewQueries: [{ propertyName: "dynamicForm", first: true, predicate: ["dynamicform"], descendants: true, read: ViewContainerRef }, { propertyName: "editor", first: true, predicate: JsonEditorComponent, descendants: true }], ngImport: i0, template: "<div class=\"form-field-extended-fields\" [hidden]=\"showJsonView\" (mouseup)=\"formDataChangedDebounced($event)\" (keyup)=\"formDataChangedDebounced($event)\" (clickOutside)=\"formDataChangedDebounced($event)\">\n <ng-container #dynamicform></ng-container>\n</div>\n<lib-json-view *ngIf=\"showJsonView && !hideConfigJSON\" (dataChange)=\"jsonDataChangedDebounced($event)\" [(data)]=\"configData\"></lib-json-view>\n<lib-json-view *ngIf=\"showJsonView && hideConfigJSON\" [(data)]=\"configData\"></lib-json-view>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }, { kind: "component", type: i5.JsonViewComponent, selector: "lib-json-view", inputs: ["data", "schema", "readOnly", "jsonInvalid", "showCopy", "showLineNumbers"], outputs: ["dataChange", "jsonChange", "jsonInvalidChange"] }] }); }
|
|
314
|
-
}
|
|
315
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigEditorComponent, decorators: [{
|
|
316
|
-
type: Component,
|
|
317
|
-
args: [{ selector: 'lib-config-editor', template: "<div class=\"form-field-extended-fields\" [hidden]=\"showJsonView\" (mouseup)=\"formDataChangedDebounced($event)\" (keyup)=\"formDataChangedDebounced($event)\" (clickOutside)=\"formDataChangedDebounced($event)\">\n <ng-container #dynamicform></ng-container>\n</div>\n<lib-json-view *ngIf=\"showJsonView && !hideConfigJSON\" (dataChange)=\"jsonDataChangedDebounced($event)\" [(data)]=\"configData\"></lib-json-view>\n<lib-json-view *ngIf=\"showJsonView && hideConfigJSON\" [(data)]=\"configData\"></lib-json-view>" }]
|
|
318
|
-
}], ctorParameters: function () { return [{ type: i1.SchemaService }, { type: i2.GrowlerService }]; }, propDecorators: { configErrors: [{
|
|
319
|
-
type: Input
|
|
320
|
-
}], configErrorsChange: [{
|
|
321
|
-
type: Output
|
|
322
|
-
}], configData: [{
|
|
323
|
-
type: Input
|
|
324
|
-
}], configDataChange: [{
|
|
325
|
-
type: Output
|
|
326
|
-
}], showJsonView: [{
|
|
327
|
-
type: Input
|
|
328
|
-
}], schema: [{
|
|
329
|
-
type: Input
|
|
330
|
-
}], dynamicForm: [{
|
|
331
|
-
type: ViewChild,
|
|
332
|
-
args: ["dynamicform", { read: ViewContainerRef }]
|
|
333
|
-
}], editor: [{
|
|
334
|
-
type: ViewChild,
|
|
335
|
-
args: [JsonEditorComponent, { static: false }]
|
|
336
|
-
}] } });
|
|
337
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96aXRpLWNvbnNvbGUtbGliL3NyYy9saWIvZmVhdHVyZXMvY29uZmlnLWVkaXRvci9jb25maWctZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ppdGktY29uc29sZS1saWIvc3JjL2xpYi9mZWF0dXJlcy9jb25maWctZWRpdG9yL2NvbmZpZy1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBZ0IsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hILE9BQU8sRUFBQyxtQkFBbUIsRUFBb0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLEVBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFFeEUsT0FBTyxHQUFHLE1BQU0sS0FBSyxDQUFDO0FBQ3RCLE9BQU8sVUFBVSxNQUFNLGFBQWEsQ0FBQztBQUNyQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7QUFReEQsTUFBTSxPQUFPLHFCQUFxQjtJQXFCaEMsSUFBYSxVQUFVLENBQUMsSUFBSTtRQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUFBLENBQUM7SUFHRixJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUdELElBQWEsWUFBWSxDQUFDLFlBQXFCO1FBQzdDLElBQUksQ0FBQyxhQUFhLEdBQUcsWUFB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QUFZO3NCQUF4QixLQUFLO2dCQVNPLE1BQU07c0JBQWxCLEtBQUs7Z0JBYThDLFdBQVc7c0JBQTlELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFDO2dCQUNELE1BQU07c0JBQXRELFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIENvbXBvbmVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0pzb25FZGl0b3JDb21wb25lbnQsIEpzb25FZGl0b3JPcHRpb25zfSBmcm9tIFwiYW5nLWpzb25lZGl0b3JcIjtcbmltcG9ydCB7ZGVib3VuY2UsIGRlZmVyLCBpc0Jvb2xlYW4sIGlzRW1wdHksIGlzTmlsLCBrZXlzfSBmcm9tIFwibG9kYXNoXCI7XG5pbXBvcnQge1NjaGVtYVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9zY2hlbWEuc2VydmljZVwiO1xuaW1wb3J0IEFqdiBmcm9tICdhanYnO1xuaW1wb3J0IGFkZEZvcm1hdHMgZnJvbSAnYWp2LWZvcm1hdHMnO1xuaW1wb3J0IHtHcm93bGVyTW9kZWx9IGZyb20gXCIuLi9tZXNzYWdpbmcvZ3Jvd2xlci5tb2RlbFwiO1xuaW1wb3J0IHtHcm93bGVyU2VydmljZX0gZnJvbSBcIi4uL21lc3NhZ2luZy9ncm93bGVyLnNlcnZpY2VcIjsgIC8vIEltcG9ydCBhanYtZm9ybWF0c1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItY29uZmlnLWVkaXRvcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb25maWctZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29uZmlnLWVkaXRvci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIENvbmZpZ0VkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgY29uZmlnRGF0YUluaXQgPSBmYWxzZTtcblxuICBpdGVtczogYW55W10gPSBbXTtcblxuICBsQ29sb3JBcnJheSA9IFtcbiAgICAnd2hpdGUnLFxuICAgICd3aGl0ZScsXG4gIF1cblxuICBiQ29sb3JBcnJheSA9IFtcbiAgICAndmFyKC0tZm9ybUdyb3VwKScsXG4gICAgJ3ZhcigtLWZvcm1TdWJHcm91cCknXG4gIF1cbiAgaGlkZUNvbmZpZ0pTT04gPSBmYWxzZTtcblxuICBASW5wdXQoKSBjb25maWdFcnJvcnM6IGFueSA9IHt9O1xuICBAT3V0cHV0KCkgY29uZmlnRXJyb3JzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgX2NvbmZpZ0RhdGE6IGFueSA9IHt9O1xuICBASW5wdXQoKSBzZXQgY29uZmlnRGF0YShkYXRhKSB7XG4gICAgdGhpcy5fY29uZmlnRGF0YSA9IGRhdGE7XG4gICAgdGhpcy5pbml0Rm9ybURhdGEoKTtcbiAgfTtcblxuICBAT3V0cHV0KCkgY29uZmlnRGF0YUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBnZXQgY29uZmlnRGF0YSgpIHtcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnRGF0YTtcbiAgfVxuXG4gIF9zaG93SnNvblZpZXcgPSBmYWxzZTtcbiAgQElucHV0KCkgc2V0IHNob3dKc29uVmlldyhzaG93SnNvblZpZXc6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zaG93SnNvblZpZXcgPSBzaG93SnNvblZpZXc7XG4gICAgdGhpcy51cGRhdGVDb25maWdEYXRhKCk7XG4gIH1cbiAgZ2V0IHNob3dKc29uVmlldygpIHtcbiAgICByZXR1cm4gdGhpcy5fc2hvd0pzb25WaWV3O1xuICB9XG5cbiAgX3NjaGVtYSA9IGZhbHNlO1xuICBASW5wdXQoKSBzZXQgc2NoZW1hKHNjaGVtYTogYW55KSB7XG4gICAgdGhpcy5fc2NoZW1hID0gc2NoZW1hO1xuICAgIHRoaXMuaW5pdEZvcm1EYXRhKCk7XG4gICAgdGhpcy5jcmVhdGVGb3JtKCk7XG4gICAgdGhpcy51cGRhdGVDb25maWdEYXRhKCk7XG4gIH1cblxuICBnZXQgc2NoZW1hKCkge1xuICAgIHJldHVybiB0aGlzLl9zY2hlbWE7XG4gIH1cblxuICBmb3JtRGF0YUNoYW5nZWREZWJvdW5jZWQ6IGFueSA9IGRlYm91bmNlKHRoaXMuZm9ybURhdGFDaGFuZ2VkLmJpbmQodGhpcyksIDM1MCk7XG4gIGpzb25EYXRhQ2hhbmdlZERlYm91bmNlZDogYW55ID0gZGVib3VuY2UodGhpcy5qc29uRGF0YUNoYW5nZWQuYmluZCh0aGlzKSwgMzUwKTtcbiAgQFZpZXdDaGlsZChcImR5bmFtaWNmb3JtXCIsIHtyZWFkOiBWaWV3Q29udGFpbmVyUmVmfSkgZHluYW1pY0Zvcm0hOiBWaWV3Q29udGFpbmVyUmVmO1xuICBAVmlld0NoaWxkKEpzb25FZGl0b3JDb21wb25lbnQsIHtzdGF0aWM6IGZhbHNlfSkgZWRpdG9yITogSnNvbkVkaXRvckNvbXBvbmVudDtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzY2hlbWFTdmM6IFNjaGVtYVNlcnZpY2UsIHByaXZhdGUgZ3Jvd2xlclNlcnZpY2U6IEdyb3dsZXJTZXJ2aWNlKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNyZWF0ZUZvcm0oKTtcbiAgfVxuXG4gIGNyZWF0ZUZvcm0oKSB7XG4gICAgdGhpcy5jbGVhckZvcm0oKTtcbiAgICBpZiAodGhpcy5keW5hbWljRm9ybSAmJiB0aGlzLnNjaGVtYSkge1xuICAgICAgdGhpcy5yZW5kZXJTY2hlbWEodGhpcy5zY2hlbWEpO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFyRm9ybSgpIHtcbiAgICB0aGlzLml0ZW1zLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xuICAgICAgaWYgKGl0ZW0/LmNvbXBvbmVudCkgaXRlbS5jb21wb25lbnQuZGVzdHJveSgpO1xuICAgIH0pO1xuICAgIHRoaXMuY29uZmlnRXJyb3JzID0ge307XG4gICAgdGhpcy5pdGVtcyA9IFtdO1xuICB9XG5cbiAgcmVuZGVyU2NoZW1hKHNjaGVtYTogYW55KSB7XG4gICAgaWYgKHNjaGVtYS5wcm9wZXJ0aWVzKSB7XG4gICAgICB0aGlzLml0ZW1zID0gdGhpcy5zY2hlbWFTdmMucmVuZGVyKHNjaGVtYSwgdGhpcy5keW5hbWljRm9ybSwgdGhpcy5sQ29sb3JBcnJheSwgdGhpcy5iQ29sb3JBcnJheSk7XG4gICAgICBmb3IgKGxldCBvYmogb2YgdGhpcy5pdGVtcykge1xuICAgICAgICBjb25zdCBjUmVmID0gb2JqLmNvbXBvbmVudDtcbiAgICAgICAgY1JlZi5pbnN0YW5jZS5lcnJvcnMgPSB0aGlzLmNvbmZpZ0Vycm9ycztcbiAgICAgICAgaWYgKGNSZWY/Lmluc3RhbmNlLnZhbHVlQ2hhbmdlKSB7XG4gICAgICAgICAgY29uc3QgcE5hbWU6IHN0cmluZ1tdICA9IGNSZWYuaW5zdGFuY2UucGFyZW50YWdlO1xuICAgICAgICAgIGxldCBwYXJlbnRLZXk7XG4gICAgICAgICAgaWYocE5hbWUpIHBhcmVudEtleSA9IHBOYW1lLmpvaW4oJy4nKTtcbiAgICAgICAgICAvL2lmIChwYXJlbnRLZXkgJiYgIXRoaXMuZm9ybURhdGFbcGFyZW50S2V5XSkgdGhpcy5mb3JtRGF0YVtwYXJlbnRLZXldID0ge307XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB1cGRhdGVDb25maWdEYXRhKCkge1xuICAgIGlmICghdGhpcy5zaG93SnNvblZpZXcpIHtcbiAgICAgIHRoaXMudXBkYXRlRm9ybVZpZXcodGhpcy5pdGVtcywgdGhpcy5jb25maWdEYXRhKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oaWRlQ29uZmlnSlNPTiA9IHRydWU7XG4gICAgICBkZWZlcigoKSA9PiB7XG4gICAgICAgIHRoaXMuZ2V0Q29uZmlnRGF0YUZyb21Gb3JtKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVGb3JtVmlldyhpdGVtcywgZGF0YTogYW55ID0ge30pIHtcbiAgICBpdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBpZiAoaXRlbS5pdGVtcykge1xuICAgICAgICBpZiAoaXRlbS50eXBlID09PSAnYXJyYXknKSB7XG4gICAgICAgICAgaWYgKGl0ZW0/LmNvbXBvbmVudD8uaW5zdGFuY2U/LmFkZGVkSXRlbXMpIHtcbiAgICAgICAgICAgIGl0ZW0uYWRkZWRJdGVtcyA9IGRhdGFbaXRlbS5rZXldIHx8IFtdO1xuICAgICAgICAgICAgaXRlbS5jb21wb25lbnQuaW5zdGFuY2UuYWRkZWRJdGVtcyA9IGRhdGFbaXRlbS5rZXldIHx8IFtdO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnVwZGF0ZUZvcm1WaWV3KGl0ZW0uaXRlbXMsIHt9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUZvcm1WaWV3KGl0ZW0uaXRlbXMsIGRhdGFbaXRlbS5rZXldKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChpdGVtPy5jb21wb25lbnQ/Lmluc3RhbmNlPy5zZXRQcm9wZXJ0aWVzKSB7XG4gICAgICAgIGxldCB2YWw7XG4gICAgICAgIHN3aXRjaCAoaXRlbS5rZXkpIHtcbiAgICAgICAgICBjYXNlICdmb3J3YXJkaW5nY29uZmlnJzpcbiAgICAgICAgICAgIHZhbCA9IHtcbiAgICAgICAgICAgICAgcHJvdG9jb2w6IGRhdGEucHJvdG9jb2wsXG4gICAgICAgICAgICAgIGFkZHJlc3M6IGRhdGEuYWRkcmVzcyxcbiAgICAgICAgICAgICAgcG9ydDogZGF0YS5wb3J0LFxuICAgICAgICAgICAgICBmb3J3YXJkUHJvdG9jb2w6IGRhdGEuZm9yd2FyZFByb3RvY29sLFxuICAgICAgICAgICAgICBmb3J3YXJkQWRkcmVzczogZGF0YS5mb3J3YXJkQWRkcmVzcyxcbiAgICAgICAgICAgICAgZm9yd2FyZFBvcnQ6IGRhdGEuZm9yd2FyZFBvcnQsXG4gICAgICAgICAgICAgIGFsbG93ZWRQcm90b2NvbHM6IGRhdGEuYWxsb3dlZFByb3RvY29scyxcbiAgICAgICAgICAgICAgYWxsb3dlZEFkZHJlc3NlczogZGF0YS5hbGxvd2VkQWRkcmVzc2VzLFxuICAgICAgICAgICAgICBhbGxvd2VkUG9ydFJhbmdlczogZGF0YS5hbGxvd2VkUG9ydFJhbmdlc1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAncGFwJzpcbiAgICAgICAgICAgIHZhbCA9IHtcbiAgICAgICAgICAgICAgcHJvdG9jb2w6IGRhdGEucHJvdG9jb2wsXG4gICAgICAgICAgICAgIGFkZHJlc3M6IGRhdGEuYWRkcmVzcyxcbiAgICAgICAgICAgICAgcG9ydDogZGF0YS5wb3J0LFxuICAgICAgICAgICAgICBob3N0bmFtZTogZGF0YS5ob3N0bmFtZSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB2YWwgPSBkYXRhW2l0ZW0ua2V5XTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGl0ZW0/LmNvbXBvbmVudD8uaW5zdGFuY2U/LnNldFByb3BlcnRpZXModmFsKTtcbiAgICAgIH0gZWxzZSBpZiAoaXRlbT8uY29tcG9uZW50Py5zZXRJbnB1dCkge1xuICAgICAgICBpdGVtLmNvbXBvbmVudC5zZXRJbnB1dCgnZmllbGRWYWx1ZScsIGRhdGFbaXRlbS5rZXldKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIGdldENvbmZpZ0RhdGFGcm9tRm9ybSgpIHtcbiAgICBjb25zdCBkYXRhID0ge307XG4gICAgdGhpcy5hZGRJdGVtc1RvQ29uZmlnKHRoaXMuaXRlbXMsIGRhdGEpO1xuICAgIHRoaXMuX2NvbmZpZ0RhdGEgPSBkYXRhO1xuICAgIHRoaXMuaGlkZUNvbmZpZ0pTT04gPSBmYWxzZTtcbiAgICB0aGlzLmNvbmZpZ0RhdGFDaGFuZ2UuZW1pdCh0aGlzLmNvbmZpZ0RhdGEpO1xuICB9XG5cbiAgYWRkSXRlbXNUb0NvbmZpZyhpdGVtcywgZGF0YTogYW55ID0ge30sIHBhcmVudFR5cGUgPSAnb2JqZWN0Jykge1xuICAgIGl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGlmIChpdGVtLnR5cGUgPT09ICdhcnJheScpIHtcbiAgICAgICAgaWYgKGl0ZW0uYWRkZWRJdGVtcykge1xuICAgICAgICAgIGRhdGFbaXRlbS5rZXldID0gaXRlbS5hZGRlZEl0ZW1zO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRhdGFbaXRlbS5rZXldID0gW107XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoaXRlbS50eXBlID09PSAnb2JqZWN0Jykge1xuICAgICAgICBjb25zdCB2YWwgPSB0aGlzLmFkZEl0ZW1zVG9Db25maWcoaXRlbS5pdGVtcywge30sIGl0ZW0udHlwZSk7XG4gICAgICAgIGxldCBoYXNEZWZpbml0aW9uID0gZmFsc2U7XG4gICAgICAgIGtleXModmFsKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICBpZiAoaXNCb29sZWFuKHZhbFtrZXldKSB8fCAoIWlzRW1wdHkodmFsW2tleV0pICYmICFpc05pbCh2YWxba2V5XSkpKSB7XG4gICAgICAgICAgICBoYXNEZWZpbml0aW9uID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBkYXRhW2l0ZW0ua2V5XSA9IGhhc0RlZmluaXRpb24gPyB2YWwgOiB1bmRlZmluZWQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgcHJvcHMgPSBbXTtcbiAgICAgICAgaWYgKGl0ZW0/LmNvbXBvbmVudD8uaW5zdGFuY2U/LmdldFByb3BlcnRpZXMpIHtcbiAgICAgICAgICBwcm9wcyA9IGl0ZW0/LmNvbXBvbmVudD8uaW5zdGFuY2U/LmdldFByb3BlcnRpZXMoKTtcbiAgICAgICAgfSBlbHNlIGlmIChpdGVtPy5jb21wb25lbnQ/Lmluc3RhbmNlKSB7XG4gICAgICAgICAgbGV0IHZhbCA9IGl0ZW0uY29tcG9uZW50Lmluc3RhbmNlLmZpZWxkVmFsdWU7XG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsKSAmJiB2YWxbMF0gJiYgdHlwZW9mIHZhbFswXSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHZhbCA9IHZhbD8ubWFwKGl0ZW0gPT4gaXRlbS50cmltKCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBwcm9wcyA9IFt7a2V5OiBpdGVtLmtleSwgdmFsdWU6IHZhbH1dO1xuICAgICAgICB9XG4gICAgICAgIHByb3BzLmZvckVhY2goKHByb3ApID0+IHtcbiAgICAgICAgICBkYXRhW3Byb3Aua2V5XSA9IHByb3AudmFsdWU7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgdmFsaWRhdGVDb25maWcoc2NoZW1hPywgc2hvd0dyb3dsZXIgPSB0cnVlKSB7XG4gICAgdGhpcy5jb25maWdEYXRhID0gdGhpcy5yZW1vdmVVbmRlZmluZWRQcm9wZXJ0aWVzKHRoaXMuY29uZmlnRGF0YSk7XG4gICAgbGV0IHZhbGlkYXRpb25FcnJvcnM7XG4gICAgbGV0IHZhbGlkID0gdHJ1ZTtcbiAgICBpZiAoc2NoZW1hKSB7XG4gICAgICAvLyBJbml0aWFsaXplIEFqdlxuICAgICAgY29uc3QgYWp2ID0gbmV3IEFqdih7YWxsRXJyb3JzOiB0cnVlfSk7XG4gICAgICBhZGRGb3JtYXRzKGFqdik7XG4gICAgICBhanYuYWRkRm9ybWF0KCdpZG4taG9zdG5hbWUnLCAvXi4rJC8pO1xuICAgICAgY29uc3QgdmFsaWRhdGUgPSBhanYuY29tcGlsZShzY2hlbWEpO1xuICAgICAgdmFsaWQgPSB2YWxpZGF0ZSh0aGlzLmNvbmZpZ0RhdGEpO1xuICAgICAgdmFsaWRhdGlvbkVycm9ycyA9IHZhbGlkYXRlLmVycm9ycztcbiAgICB9XG4gICAgdGhpcy5jb25maWdFcnJvcnMgPSB7fTtcbiAgICBjb25zdCBwcm9wZXJ0eVZhbGlkYXRpb25NYXAgPSB7fTtcbiAgICB0aGlzLnZhbGlkYXRlQ29uZmlnSXRlbXModGhpcy5pdGVtcywgdW5kZWZpbmVkLCAnJywgdmFsaWRhdGlvbkVycm9ycyk7XG4gICAgdGhpcy5idWlsZFByb3BlcnR5VmFsaWRhdGlvbk1hcCh2YWxpZGF0aW9uRXJyb3JzLCBwcm9wZXJ0eVZhbGlkYXRpb25NYXApO1xuICAgIGlmICghdmFsaWQpIHtcbiAgICAgIHRoaXMuY29uZmlnRXJyb3JzWydjb25maWdEYXRhJ10gPSB0cnVlO1xuICAgICAgaWYgKHNob3dHcm93bGVyKSB7XG4gICAgICAgIHRoaXMuZGlzcGxheUNvbmZpZ0Vycm9ycyhwcm9wZXJ0eVZhbGlkYXRpb25NYXApO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmNvbmZpZ0Vycm9yc0NoYW5nZS5lbWl0KHRoaXMuY29uZmlnRXJyb3JzKTtcbiAgICByZXR1cm4gaXNFbXB0eSh0aGlzLmNvbmZpZ0Vycm9ycyk7XG4gIH1cblxuICBidWlsZFByb3BlcnR5VmFsaWRhdGlvbk1hcCh2YWxpZGF0aW9uRXJyb3JzLCBwcm9wZXJ0eVZhbGlkYXRpb25NYXApIHtcbiAgICB2YWxpZGF0aW9uRXJyb3JzPy5mb3JFYWNoKChlcnJvcikgPT4ge1xuICAgICAgbGV0IHBhdGggPSBlcnJvci5pbnN0YW5jZVBhdGg7XG4gICAgICBpZiAoIWlzRW1wdHkoZXJyb3I/LnBhcmFtcz8ubWlzc2luZ1Byb3BlcnR5KSkge1xuICAgICAgICBwYXRoICs9ICcvJyArIGVycm9yPy5wYXJhbXM/Lm1pc3NpbmdQcm9wZXJ0eTtcbiAgICAgIH1cbiAgICAgIGlmICghaXNFbXB0eShwYXRoKSkge1xuICAgICAgICBwcm9wZXJ0eVZhbGlkYXRpb25NYXBbcGF0aF0gPSBgPGI+JHtwYXRofTwvYj46ICR7ZXJyb3IubWVzc2FnZX1gO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgdmFsaWRhdGVDb25maWdJdGVtcyhpdGVtcywgcGFyZW50VHlwZSA9ICdvYmplY3QnLCBwYXRoID0gJycsIHZhbGlkYXRpb25FcnJvcnMgPSBbXSkge1xuICAgIGxldCBpc1ZhbGlkID0gdHJ1ZTtcbiAgICBpdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBpZiAoaXRlbS50eXBlID09PSAnb2JqZWN0Jykge1xuICAgICAgICBpZiAoIXRoaXMudmFsaWRhdGVDb25maWdJdGVtcyhpdGVtLml0ZW1zLCBpdGVtLnR5cGUsIHBhdGggKyAnLycgKyBpdGVtLmtleSwgdmFsaWRhdGlvbkVycm9ycykpIHtcbiAgICAgICAgICBpc1ZhbGlkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoaXRlbT8uY29tcG9uZW50Py5pbnN0YW5jZT8uc2V0VmFsaWRhdGlvbkVycm9ycykge1xuICAgICAgICBpdGVtPy5jb21wb25lbnQ/Lmluc3RhbmNlPy5zZXRWYWxpZGF0aW9uRXJyb3JzKHBhdGgsIHZhbGlkYXRpb25FcnJvcnMpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBoYXNWYWxpZGF0aW9uRXJyb3I6IGFueSA9IHZhbGlkYXRpb25FcnJvcnM/LnNvbWUoKGVycm9yKSA9PiB7XG4gICAgICAgICAgbGV0IHBhdGhUb01hY2ggPSBlcnJvci5pbnN0YW5jZVBhdGg7XG4gICAgICAgICAgaWYgKCFpc0VtcHR5KGVycm9yPy5wYXJhbXM/Lm1pc3NpbmdQcm9wZXJ0eSkpIHtcbiAgICAgICAgICAgIHBhdGhUb01hY2ggKz0gJy8nICsgZXJyb3I/LnBhcmFtcz8ubWlzc2luZ1Byb3BlcnR5O1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBtYXRjaGVkID0gcGF0aFRvTWFjaCA9PT0gKHBhdGggKyAnLycgKyBpdGVtLmtleSk7XG4gICAgICAgICAgcmV0dXJuIG1hdGNoZWQ7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoaXRlbT8uY29tcG9uZW50Py5pbnN0YW5jZT8uc2V0SXNWYWxpZCkge1xuICAgICAgICAgIGl0ZW0/LmNvbXBvbmVudD8uaW5zdGFuY2U/LnNldElzVmFsaWQoIWhhc1ZhbGlkYXRpb25FcnJvcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gaXNWYWxpZDtcbiAgfVxuXG4gIGRpc3BsYXlDb25maWdFcnJvcnMocHJvcGVydHlWYWxpZGF0aW9uTWFwKSB7XG4gICAgbGV0IHZhbGlkYXRpb25NZXNzYWdlID0gJyc7XG4gICAgaWYgKCFpc0VtcHR5KHByb3BlcnR5VmFsaWRhdGlvbk1hcCkpIHtcbiAgICAgIGNvbnN0IHByb3BzID0ga2V5cyhwcm9wZXJ0eVZhbGlkYXRpb25NYXApO1xuICAgICAgcHJvcHMuZm9yRWFjaCgoa2V5LCBpbmRleCkgPT4ge1xuICAgICAgICB2YWxpZGF0aW9uTWVzc2FnZSArPSBgPGxpPiR7cHJvcGVydHlWYWxpZGF0aW9uTWFwW2tleV19PC9saT5gO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChpc0VtcHR5KHZhbGlkYXRpb25NZXNzYWdlKSkge1xuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2UgPSAnVGhlIGVudGVyZWQgY29uZmlndXJhdGlvbiBpcyBpbnZhbGlkLiBQbGVhc2UgdXBkYXRlIG1pc3NpbmcvaW52YWxpZCBmaWVsZHMgYW5kIHRyeSBhZ2Fpbi4nO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZSA9IGA8dWwgc3R5bGU9XCJtYXJnaW4tdG9wOiA1cHg7XCI+JHt2YWxpZGF0aW9uTWVzc2FnZX08L3VsPmA7XG4gICAgfVxuICAgIGNvbnN0IGdyb3dsZXJEYXRhID0gbmV3IEdyb3dsZXJNb2RlbChcbiAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgJ0Vycm9yJyxcbiAgICAgICAgYEVycm9yIFZhbGlkYXRpbmcgQ29uZmlnYCxcbiAgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2UsXG4gICAgKTtcbiAgICB0aGlzLmdyb3dsZXJTZXJ2aWNlLnNob3coZ3Jvd2xlckRhdGEpO1xuICB9XG5cbiAgaW5pdEZvcm1EYXRhKCkge1xuICAgIGlmICghdGhpcy5jb25maWdEYXRhSW5pdCAmJiAhaXNFbXB0eSh0aGlzLl9jb25maWdEYXRhKSAmJiAhaXNFbXB0eSh0aGlzLnNjaGVtYSkpIHtcbiAgICAgIHRoaXMuY29uZmlnRGF0YUluaXQgPSB0cnVlO1xuICAgICAgdGhpcy5mb3JtRGF0YUNoYW5nZWQoKTtcbiAgICB9XG4gIH1cblxuICBmb3JtRGF0YUNoYW5nZWQoKSB7XG4gICAgICBkZWZlcigoKSA9PiB7XG4gICAgICAgIHRoaXMuZ2V0Q29uZmlnRGF0YUZyb21Gb3JtKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIGpzb25EYXRhQ2hhbmdlZChldmVudCkge1xuICAgIGRlZmVyKCgpID0+IHtcbiAgICAgIHRoaXMuY29uZmlnRGF0YUNoYW5nZS5lbWl0KHRoaXMuY29uZmlnRGF0YSk7XG4gICAgICB0aGlzLnVwZGF0ZUZvcm1WaWV3KHRoaXMuaXRlbXMsIHRoaXMuY29uZmlnRGF0YSk7XG4gICAgfSk7XG4gIH1cblxuICByZW1vdmVVbmRlZmluZWRQcm9wZXJ0aWVzKGRhdGEpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgICAgcmV0dXJuIGRhdGFcbiAgICAgICAgICAubWFwKGl0ZW0gPT4gdGhpcy5yZW1vdmVVbmRlZmluZWRQcm9wZXJ0aWVzKGl0ZW0pKVxuICAgICAgICAgIC5maWx0ZXIoaXRlbSA9PiBpdGVtICE9PSB1bmRlZmluZWQpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGRhdGEgPT09ICdvYmplY3QnICYmIGRhdGEgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICAgICAgT2JqZWN0LmVudHJpZXMoZGF0YSlcbiAgICAgICAgICAgICAgLmZpbHRlcigoW18sIHZhbHVlXSkgPT4gdmFsdWUgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgLm1hcCgoW2tleSwgdmFsdWVdKSA9PiBba2V5LCB0aGlzLnJlbW92ZVVuZGVmaW5lZFByb3BlcnRpZXModmFsdWUpXSlcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBkYXRhO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZC1leHRlbmRlZC1maWVsZHNcIiBbaGlkZGVuXT1cInNob3dKc29uVmlld1wiIChtb3VzZXVwKT1cImZvcm1EYXRhQ2hhbmdlZERlYm91bmNlZCgkZXZlbnQpXCIgKGtleXVwKT1cImZvcm1EYXRhQ2hhbmdlZERlYm91bmNlZCgkZXZlbnQpXCIgKGNsaWNrT3V0c2lkZSk9XCJmb3JtRGF0YUNoYW5nZWREZWJvdW5jZWQoJGV2ZW50KVwiPlxuICAgIDxuZy1jb250YWluZXIgI2R5bmFtaWNmb3JtPjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG48bGliLWpzb24tdmlldyAqbmdJZj1cInNob3dKc29uVmlldyAmJiAhaGlkZUNvbmZpZ0pTT05cIiAoZGF0YUNoYW5nZSk9XCJqc29uRGF0YUNoYW5nZWREZWJvdW5jZWQoJGV2ZW50KVwiIFsoZGF0YSldPVwiY29uZmlnRGF0YVwiPjwvbGliLWpzb24tdmlldz5cbjxsaWItanNvbi12aWV3ICpuZ0lmPVwic2hvd0pzb25WaWV3ICYmIGhpZGVDb25maWdKU09OXCIgWyhkYXRhKV09XCJjb25maWdEYXRhXCI+PC9saWItanNvbi12aWV3PiJdfQ==
|
|
@@ -1,77 +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, Inject } from '@angular/core';
|
|
17
|
-
import { MAT_DIALOG_DATA } from "@angular/material/dialog";
|
|
18
|
-
import { isEmpty, isNil } from "lodash";
|
|
19
|
-
import * as i0 from "@angular/core";
|
|
20
|
-
import * as i1 from "@angular/material/dialog";
|
|
21
|
-
import * as i2 from "@angular/common";
|
|
22
|
-
import * as i3 from "@angular/material/tooltip";
|
|
23
|
-
export class ConfirmComponent {
|
|
24
|
-
constructor(dialogRef, data) {
|
|
25
|
-
this.dialogRef = dialogRef;
|
|
26
|
-
this.data = data;
|
|
27
|
-
this.dataObj = {
|
|
28
|
-
appendId: '',
|
|
29
|
-
title: '',
|
|
30
|
-
subtitle: '',
|
|
31
|
-
message: '',
|
|
32
|
-
confirmLabel: '',
|
|
33
|
-
confirmLabelAlt: undefined,
|
|
34
|
-
cancelLabel: '',
|
|
35
|
-
bulletList: [],
|
|
36
|
-
submessage: '',
|
|
37
|
-
showCancelButton: false,
|
|
38
|
-
showCancelLink: false,
|
|
39
|
-
showSecondaryConfirm: false,
|
|
40
|
-
secondaryConfirmLabel: '',
|
|
41
|
-
secondaryConfirmed: false,
|
|
42
|
-
secondaryActionLabel: undefined,
|
|
43
|
-
secondaryInfoLabel: undefined,
|
|
44
|
-
secondaryAction: undefined,
|
|
45
|
-
imageUrl: '../../assets/svgs/Confirm_Trash.svg'
|
|
46
|
-
};
|
|
47
|
-
this.dataObj = data;
|
|
48
|
-
if (isNil(this.dataObj?.cancelLabel) || isEmpty(this.dataObj?.cancelLabel)) {
|
|
49
|
-
this.dataObj.cancelLabel = 'Oops, no get me out of here';
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
confirm() {
|
|
53
|
-
this.dialogRef.close({ confirmed: true, secondaryConfirmed: this.dataObj.secondaryConfirmed });
|
|
54
|
-
}
|
|
55
|
-
secondaryAction() {
|
|
56
|
-
if (!this.dataObj.secondaryAction) {
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
this.dataObj.secondaryAction();
|
|
60
|
-
}
|
|
61
|
-
cancel() {
|
|
62
|
-
this.dialogRef.close({ confirmed: false, secondaryConfirmed: false });
|
|
63
|
-
}
|
|
64
|
-
toggleSecondary(event) {
|
|
65
|
-
this.dataObj.secondaryConfirmed = !this.dataObj.secondaryConfirmed;
|
|
66
|
-
}
|
|
67
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfirmComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
68
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ConfirmComponent, selector: "lib-confirm", ngImport: i0, template: "<div class=\"confirm-modal-container\" id=\"ConfirmModal_{{dataObj.appendId || 'Default'}}\">\n <div class=\"close icon-close\" (click)=\"cancel()\"></div>\n <div class=\"confirm-model-body\">\n <div class=\"confirm-modal-content\">\n <div class=\"confirm-title-container\">\n <span class=\"confirm-title\">{{dataObj.title}}</span>\n <span class=\"confirm-subtitle\">{{dataObj.subtitle}}</span>\n </div>\n <div class=\"confirm-modal-main\">\n <div class=\"confirm-modal-icon\" style=\"background-image: url({{dataObj.imageUrl}})\"></div>\n <div>\n <div class=\"confirm-message-content\">\n <span [innerHTML]=\"dataObj.message\"></span>\n </div>\n <div class=\"confirm-message-bullet-list\">\n <ul>\n <li *ngFor=\"let item of dataObj.bulletList\" class=\"confirm-item-name\">{{item}}</li>\n </ul>\n </div>\n <div *ngIf=\"dataObj.submessage && dataObj.submessage.length > 0\" class=\"confirm-message-sub-content\">\n <span [innerHTML]=\"dataObj.submessage\"></span>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"secondary-confirm-container\" *ngIf=\"dataObj.showSecondaryConfirm\">\n <div class=\"cSelect\" [ngClass]=\"{'selected': dataObj.secondaryConfirmed}\" (click)=\"toggleSecondary($event)\"></div>\n <div class=\"secondary-confirm-label\">{{dataObj.secondaryConfirmLabel}}</div>\n <div\n *ngIf=\"dataObj.secondaryInfoLabel\"\n class=\"form-field-info infoicon\"\n matTooltip=\"{{dataObj.secondaryInfoLabel}}\"\n matTooltipPosition=\"above\"\n ></div>\n </div>\n <div class=\"confirm-buttons-container\">\n <div class=\"linkButton cancel\" (click)=\"cancel()\" *ngIf=\"dataObj.showCancelLink\">{{dataObj.cancelLabel}}</div>\n <button class=\"button save secondary-button\" (click)=\"secondaryAction()\" *ngIf=\"dataObj.secondaryActionLabel && dataObj.secondaryConfirmed\">{{dataObj.secondaryActionLabel}}</button>\n <button class=\"button save cancel\" (click)=\"cancel()\" *ngIf=\"dataObj.showCancelButton\">{{dataObj.cancelLabel}}</button>\n <button class=\"button save confirm\" (click)=\"confirm()\">{{dataObj.confirmLabelAlt && dataObj.secondaryConfirmed ? dataObj.confirmLabelAlt : dataObj.confirmLabel}}</button>\n </div>\n</div>\n", styles: [".confirm-modal-container{display:flex;flex-direction:column;background-color:var(--background);border-radius:var(--formFieldBorderRadius);width:37.5rem}.confirm-modal-container .confirm-model-body{display:flex;flex-direction:row;align-items:center}.confirm-modal-container .confirm-model-body .confirm-modal-content{display:flex;flex-direction:column}.confirm-modal-container .confirm-model-body .confirm-modal-main{display:flex;flex-direction:row;align-items:center}.confirm-modal-container .confirm-model-body .confirm-modal-icon{width:7.5rem;height:7.5rem;background-size:contain;z-index:20;box-sizing:var(--shadow);margin-left:var(--marginXXL)}.confirm-modal-container .confirm-title-container{width:100%;display:flex;flex-direction:column}.confirm-modal-container .confirm-title-container .confirm-title{color:var(--primaryColor);font-size:1.875rem;position:relative;padding-left:0;width:25rem;background:none;text-transform:none;height:auto;font-family:Russo One;margin-top:1.875rem;margin-left:9.375rem;filter:brightness(50%)}.confirm-modal-container .confirm-message-sub-content,.confirm-modal-container .confirm-message-content{color:var(--text);font-size:.875rem;position:relative;margin:.3125rem .9375rem .9375rem;padding:0;font-weight:600;font-family:Open Sans;overflow:auto;display:flex;align-items:center;justify-content:flex-start;color:var(--tableText);max-width:25rem}.confirm-modal-container .confirm-message-bullet-list{margin-left:1.25rem;margin-bottom:.9375rem;margin-right:1.25rem;max-height:12.5rem;overflow:auto}.confirm-modal-container .confirm-message-bullet-list .confirm-item-name{color:var(--primaryColor);text-decoration:none;transition:.5s ease}.confirm-modal-container .confirm-message-bullet-list .confirm-item-name::marker{color:var(--tableText)}.confirm-modal-container .confirm-message-bullet-list ul{margin:0}.confirm-modal-container .secondary-confirm-container{height:2.1875rem;width:100%;position:relative;display:flex;flex-direction:row;align-items:center;padding-left:2.1875rem;padding-top:2.1875rem;padding-bottom:1.5625rem}.confirm-modal-container .secondary-confirm-container.disabled{opacity:.5;filter:grayscale(1);cursor:not-allowed}.confirm-modal-container .secondary-confirm-container.disabled .cSelect{cursor:not-allowed}.confirm-modal-container .secondary-confirm-container.disabled .cSelect:hover,.confirm-modal-container .secondary-confirm-container.disabled .cSelect:active{transform:none;border:.125rem var(--inputBorder) solid}.confirm-modal-container .secondary-confirm-container .cSelect{position:relative;top:initial;left:initial;height:1.5625rem;width:1.5625rem}.confirm-modal-container .secondary-confirm-container .secondary-confirm-label{font-size:.875rem;font-weight:600;color:var(--tableText);margin-left:.4375rem}.confirm-modal-container .secondary-confirm-container .infoicon{filter:brightness(.8)}.confirm-modal-container .confirm-buttons-container{display:flex;justify-content:flex-end;flex-direction:row;width:100%;padding-right:1.25rem;padding-bottom:1.25rem;align-items:flex-end}.confirm-modal-container .confirm-buttons-container .linkButton{position:absolute;left:1.5625rem;color:var(--subText);font-weight:600}.confirm-modal-container .confirm-buttons-container .secondary-button{margin-right:.625rem;background-color:var(--primary)}.confirm-modal-container button{width:6.25rem;height:2.5rem;color:var(--white);display:flex;align-items:center;justify-content:center;font-size:.75rem}.confirm-modal-container button.confirm{background-color:var(--secondary)}.confirm-modal-container button.cancel{background-color:var(--primary)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] }); }
|
|
69
|
-
}
|
|
70
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfirmComponent, decorators: [{
|
|
71
|
-
type: Component,
|
|
72
|
-
args: [{ selector: 'lib-confirm', template: "<div class=\"confirm-modal-container\" id=\"ConfirmModal_{{dataObj.appendId || 'Default'}}\">\n <div class=\"close icon-close\" (click)=\"cancel()\"></div>\n <div class=\"confirm-model-body\">\n <div class=\"confirm-modal-content\">\n <div class=\"confirm-title-container\">\n <span class=\"confirm-title\">{{dataObj.title}}</span>\n <span class=\"confirm-subtitle\">{{dataObj.subtitle}}</span>\n </div>\n <div class=\"confirm-modal-main\">\n <div class=\"confirm-modal-icon\" style=\"background-image: url({{dataObj.imageUrl}})\"></div>\n <div>\n <div class=\"confirm-message-content\">\n <span [innerHTML]=\"dataObj.message\"></span>\n </div>\n <div class=\"confirm-message-bullet-list\">\n <ul>\n <li *ngFor=\"let item of dataObj.bulletList\" class=\"confirm-item-name\">{{item}}</li>\n </ul>\n </div>\n <div *ngIf=\"dataObj.submessage && dataObj.submessage.length > 0\" class=\"confirm-message-sub-content\">\n <span [innerHTML]=\"dataObj.submessage\"></span>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"secondary-confirm-container\" *ngIf=\"dataObj.showSecondaryConfirm\">\n <div class=\"cSelect\" [ngClass]=\"{'selected': dataObj.secondaryConfirmed}\" (click)=\"toggleSecondary($event)\"></div>\n <div class=\"secondary-confirm-label\">{{dataObj.secondaryConfirmLabel}}</div>\n <div\n *ngIf=\"dataObj.secondaryInfoLabel\"\n class=\"form-field-info infoicon\"\n matTooltip=\"{{dataObj.secondaryInfoLabel}}\"\n matTooltipPosition=\"above\"\n ></div>\n </div>\n <div class=\"confirm-buttons-container\">\n <div class=\"linkButton cancel\" (click)=\"cancel()\" *ngIf=\"dataObj.showCancelLink\">{{dataObj.cancelLabel}}</div>\n <button class=\"button save secondary-button\" (click)=\"secondaryAction()\" *ngIf=\"dataObj.secondaryActionLabel && dataObj.secondaryConfirmed\">{{dataObj.secondaryActionLabel}}</button>\n <button class=\"button save cancel\" (click)=\"cancel()\" *ngIf=\"dataObj.showCancelButton\">{{dataObj.cancelLabel}}</button>\n <button class=\"button save confirm\" (click)=\"confirm()\">{{dataObj.confirmLabelAlt && dataObj.secondaryConfirmed ? dataObj.confirmLabelAlt : dataObj.confirmLabel}}</button>\n </div>\n</div>\n", styles: [".confirm-modal-container{display:flex;flex-direction:column;background-color:var(--background);border-radius:var(--formFieldBorderRadius);width:37.5rem}.confirm-modal-container .confirm-model-body{display:flex;flex-direction:row;align-items:center}.confirm-modal-container .confirm-model-body .confirm-modal-content{display:flex;flex-direction:column}.confirm-modal-container .confirm-model-body .confirm-modal-main{display:flex;flex-direction:row;align-items:center}.confirm-modal-container .confirm-model-body .confirm-modal-icon{width:7.5rem;height:7.5rem;background-size:contain;z-index:20;box-sizing:var(--shadow);margin-left:var(--marginXXL)}.confirm-modal-container .confirm-title-container{width:100%;display:flex;flex-direction:column}.confirm-modal-container .confirm-title-container .confirm-title{color:var(--primaryColor);font-size:1.875rem;position:relative;padding-left:0;width:25rem;background:none;text-transform:none;height:auto;font-family:Russo One;margin-top:1.875rem;margin-left:9.375rem;filter:brightness(50%)}.confirm-modal-container .confirm-message-sub-content,.confirm-modal-container .confirm-message-content{color:var(--text);font-size:.875rem;position:relative;margin:.3125rem .9375rem .9375rem;padding:0;font-weight:600;font-family:Open Sans;overflow:auto;display:flex;align-items:center;justify-content:flex-start;color:var(--tableText);max-width:25rem}.confirm-modal-container .confirm-message-bullet-list{margin-left:1.25rem;margin-bottom:.9375rem;margin-right:1.25rem;max-height:12.5rem;overflow:auto}.confirm-modal-container .confirm-message-bullet-list .confirm-item-name{color:var(--primaryColor);text-decoration:none;transition:.5s ease}.confirm-modal-container .confirm-message-bullet-list .confirm-item-name::marker{color:var(--tableText)}.confirm-modal-container .confirm-message-bullet-list ul{margin:0}.confirm-modal-container .secondary-confirm-container{height:2.1875rem;width:100%;position:relative;display:flex;flex-direction:row;align-items:center;padding-left:2.1875rem;padding-top:2.1875rem;padding-bottom:1.5625rem}.confirm-modal-container .secondary-confirm-container.disabled{opacity:.5;filter:grayscale(1);cursor:not-allowed}.confirm-modal-container .secondary-confirm-container.disabled .cSelect{cursor:not-allowed}.confirm-modal-container .secondary-confirm-container.disabled .cSelect:hover,.confirm-modal-container .secondary-confirm-container.disabled .cSelect:active{transform:none;border:.125rem var(--inputBorder) solid}.confirm-modal-container .secondary-confirm-container .cSelect{position:relative;top:initial;left:initial;height:1.5625rem;width:1.5625rem}.confirm-modal-container .secondary-confirm-container .secondary-confirm-label{font-size:.875rem;font-weight:600;color:var(--tableText);margin-left:.4375rem}.confirm-modal-container .secondary-confirm-container .infoicon{filter:brightness(.8)}.confirm-modal-container .confirm-buttons-container{display:flex;justify-content:flex-end;flex-direction:row;width:100%;padding-right:1.25rem;padding-bottom:1.25rem;align-items:flex-end}.confirm-modal-container .confirm-buttons-container .linkButton{position:absolute;left:1.5625rem;color:var(--subText);font-weight:600}.confirm-modal-container .confirm-buttons-container .secondary-button{margin-right:.625rem;background-color:var(--primary)}.confirm-modal-container button{width:6.25rem;height:2.5rem;color:var(--white);display:flex;align-items:center;justify-content:center;font-size:.75rem}.confirm-modal-container button.confirm{background-color:var(--secondary)}.confirm-modal-container button.cancel{background-color:var(--primary)}\n"] }]
|
|
73
|
-
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
74
|
-
type: Inject,
|
|
75
|
-
args: [MAT_DIALOG_DATA]
|
|
76
|
-
}] }]; } });
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96aXRpLWNvbnNvbGUtbGliL3NyYy9saWIvZmVhdHVyZXMvY29uZmlybS9jb25maXJtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ppdGktY29uc29sZS1saWIvc3JjL2xpYi9mZWF0dXJlcy9jb25maXJtL2NvbmZpcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRixPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVoRCxPQUFPLEVBQUMsZUFBZSxFQUFlLE1BQU0sMEJBQTBCLENBQUM7QUFFdkUsT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUMsTUFBTSxRQUFRLENBQUM7Ozs7O0FBT3RDLE1BQU0sT0FBTyxnQkFBZ0I7SUF1QjNCLFlBQW9CLFNBQXlDLEVBQWtDLElBQVM7UUFBcEYsY0FBUyxHQUFULFNBQVMsQ0FBZ0M7UUFBa0MsU0FBSSxHQUFKLElBQUksQ0FBSztRQXJCeEcsWUFBTyxHQUFHO1lBQ1IsUUFBUSxFQUFFLEVBQUU7WUFDWixLQUFLLEVBQUUsRUFBRTtZQUNULFFBQVEsRUFBRSxFQUFFO1lBQ1osT0FBTyxFQUFFLEVBQUU7WUFDWCxZQUFZLEVBQUUsRUFBRTtZQUNoQixlQUFlLEVBQUUsU0FBUztZQUMxQixXQUFXLEVBQUUsRUFBRTtZQUNmLFVBQVUsRUFBRSxFQUFFO1lBQ2QsVUFBVSxFQUFFLEVBQUU7WUFDZCxnQkFBZ0IsRUFBRSxLQUFLO1lBQ3ZCLGNBQWMsRUFBRSxLQUFLO1lBQ3JCLG9CQUFvQixFQUFFLEtBQUs7WUFDM0IscUJBQXFCLEVBQUUsRUFBRTtZQUN6QixrQkFBa0IsRUFBRSxLQUFLO1lBQ3pCLG9CQUFvQixFQUFFLFNBQVM7WUFDL0Isa0JBQWtCLEVBQUUsU0FBUztZQUM3QixlQUFlLEVBQUUsU0FBUztZQUMxQixRQUFRLEVBQUUscUNBQXFDO1NBQ2hELENBQUE7UUFHQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxFQUFFO1lBQzFFLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLDZCQUE2QixDQUFDO1NBQzFEO0lBQ0gsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBQyxDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUU7WUFDakMsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBSztRQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQztJQUNyRSxDQUFDOytHQS9DVSxnQkFBZ0IsOENBdUI0QyxlQUFlO21HQXZCM0UsZ0JBQWdCLG1EQzNCN0IscWxGQTJDQTs7NEZEaEJhLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDRSxhQUFhOzswQkEyQnlDLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gICAgQ29weXJpZ2h0IE5ldEZvdW5kcnkgSW5jLlxuXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cbiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBJbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtEaWFsb2dSZWZ9IGZyb20gXCJAYW5ndWxhci9jZGsvZGlhbG9nXCI7XG5pbXBvcnQge01BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XG5cbmltcG9ydCB7aXNFbXB0eSwgaXNOaWx9IGZyb20gXCJsb2Rhc2hcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWNvbmZpcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vY29uZmlybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbmZpcm0uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDb25maXJtQ29tcG9uZW50IHtcblxuICBkYXRhT2JqID0ge1xuICAgIGFwcGVuZElkOiAnJyxcbiAgICB0aXRsZTogJycsXG4gICAgc3VidGl0bGU6ICcnLFxuICAgIG1lc3NhZ2U6ICcnLFxuICAgIGNvbmZpcm1MYWJlbDogJycsXG4gICAgY29uZmlybUxhYmVsQWx0OiB1bmRlZmluZWQsXG4gICAgY2FuY2VsTGFiZWw6ICcnLFxuICAgIGJ1bGxldExpc3Q6IFtdLFxuICAgIHN1Ym1lc3NhZ2U6ICcnLFxuICAgIHNob3dDYW5jZWxCdXR0b246IGZhbHNlLFxuICAgIHNob3dDYW5jZWxMaW5rOiBmYWxzZSxcbiAgICBzaG93U2Vjb25kYXJ5Q29uZmlybTogZmFsc2UsXG4gICAgc2Vjb25kYXJ5Q29uZmlybUxhYmVsOiAnJyxcbiAgICBzZWNvbmRhcnlDb25maXJtZWQ6IGZhbHNlLFxuICAgIHNlY29uZGFyeUFjdGlvbkxhYmVsOiB1bmRlZmluZWQsXG4gICAgc2Vjb25kYXJ5SW5mb0xhYmVsOiB1bmRlZmluZWQsXG4gICAgc2Vjb25kYXJ5QWN0aW9uOiB1bmRlZmluZWQsXG4gICAgaW1hZ2VVcmw6ICcuLi8uLi9hc3NldHMvc3Zncy9Db25maXJtX1RyYXNoLnN2ZydcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8Q29uZmlybUNvbXBvbmVudD4sIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogYW55KSB7XG4gICAgdGhpcy5kYXRhT2JqID0gZGF0YTtcbiAgICBpZiAoaXNOaWwodGhpcy5kYXRhT2JqPy5jYW5jZWxMYWJlbCkgfHwgaXNFbXB0eSh0aGlzLmRhdGFPYmo/LmNhbmNlbExhYmVsKSkge1xuICAgICAgdGhpcy5kYXRhT2JqLmNhbmNlbExhYmVsID0gJ09vcHMsIG5vIGdldCBtZSBvdXQgb2YgaGVyZSc7XG4gICAgfVxuICB9XG5cbiAgY29uZmlybSgpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh7Y29uZmlybWVkOiB0cnVlLCBzZWNvbmRhcnlDb25maXJtZWQ6IHRoaXMuZGF0YU9iai5zZWNvbmRhcnlDb25maXJtZWR9KTtcbiAgfVxuXG4gIHNlY29uZGFyeUFjdGlvbigpIHtcbiAgICBpZiAoIXRoaXMuZGF0YU9iai5zZWNvbmRhcnlBY3Rpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5kYXRhT2JqLnNlY29uZGFyeUFjdGlvbigpO1xuICB9XG5cbiAgY2FuY2VsKCkge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHtjb25maXJtZWQ6IGZhbHNlLCBzZWNvbmRhcnlDb25maXJtZWQ6IGZhbHNlfSk7XG4gIH1cblxuICB0b2dnbGVTZWNvbmRhcnkoZXZlbnQpIHtcbiAgICB0aGlzLmRhdGFPYmouc2Vjb25kYXJ5Q29uZmlybWVkID0gIXRoaXMuZGF0YU9iai5zZWNvbmRhcnlDb25maXJtZWQ7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjb25maXJtLW1vZGFsLWNvbnRhaW5lclwiIGlkPVwiQ29uZmlybU1vZGFsX3t7ZGF0YU9iai5hcHBlbmRJZCB8fCAnRGVmYXVsdCd9fVwiPlxuICAgIDxkaXYgY2xhc3M9XCJjbG9zZSBpY29uLWNsb3NlXCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbmZpcm0tbW9kZWwtYm9keVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZmlybS1tb2RhbC1jb250ZW50XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZmlybS10aXRsZS1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvbmZpcm0tdGl0bGVcIj57e2RhdGFPYmoudGl0bGV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvbmZpcm0tc3VidGl0bGVcIj57e2RhdGFPYmouc3VidGl0bGV9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbmZpcm0tbW9kYWwtbWFpblwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb25maXJtLW1vZGFsLWljb25cIiBzdHlsZT1cImJhY2tncm91bmQtaW1hZ2U6IHVybCh7e2RhdGFPYmouaW1hZ2VVcmx9fSlcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZmlybS1tZXNzYWdlLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwiZGF0YU9iai5tZXNzYWdlXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbmZpcm0tbWVzc2FnZS1idWxsZXQtbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkYXRhT2JqLmJ1bGxldExpc3RcIiBjbGFzcz1cImNvbmZpcm0taXRlbS1uYW1lXCI+e3tpdGVtfX08L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJkYXRhT2JqLnN1Ym1lc3NhZ2UgJiYgZGF0YU9iai5zdWJtZXNzYWdlLmxlbmd0aCA+IDBcIiBjbGFzcz1cImNvbmZpcm0tbWVzc2FnZS1zdWItY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJkYXRhT2JqLnN1Ym1lc3NhZ2VcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzZWNvbmRhcnktY29uZmlybS1jb250YWluZXJcIiAqbmdJZj1cImRhdGFPYmouc2hvd1NlY29uZGFyeUNvbmZpcm1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNTZWxlY3RcIiBbbmdDbGFzc109XCJ7J3NlbGVjdGVkJzogZGF0YU9iai5zZWNvbmRhcnlDb25maXJtZWR9XCIgKGNsaWNrKT1cInRvZ2dsZVNlY29uZGFyeSgkZXZlbnQpXCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWNvbmRhcnktY29uZmlybS1sYWJlbFwiPnt7ZGF0YU9iai5zZWNvbmRhcnlDb25maXJtTGFiZWx9fTwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cImRhdGFPYmouc2Vjb25kYXJ5SW5mb0xhYmVsXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1maWVsZC1pbmZvIGluZm9pY29uXCJcbiAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJ7e2RhdGFPYmouc2Vjb25kYXJ5SW5mb0xhYmVsfX1cIlxuICAgICAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxuICAgICAgICA+PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbmZpcm0tYnV0dG9ucy1jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxpbmtCdXR0b24gY2FuY2VsXCIgKGNsaWNrKT1cImNhbmNlbCgpXCIgKm5nSWY9XCJkYXRhT2JqLnNob3dDYW5jZWxMaW5rXCI+e3tkYXRhT2JqLmNhbmNlbExhYmVsfX08L2Rpdj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBzYXZlIHNlY29uZGFyeS1idXR0b25cIiAoY2xpY2spPVwic2Vjb25kYXJ5QWN0aW9uKClcIiAqbmdJZj1cImRhdGFPYmouc2Vjb25kYXJ5QWN0aW9uTGFiZWwgJiYgZGF0YU9iai5zZWNvbmRhcnlDb25maXJtZWRcIj57e2RhdGFPYmouc2Vjb25kYXJ5QWN0aW9uTGFiZWx9fTwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uIHNhdmUgY2FuY2VsXCIgKGNsaWNrKT1cImNhbmNlbCgpXCIgKm5nSWY9XCJkYXRhT2JqLnNob3dDYW5jZWxCdXR0b25cIj57e2RhdGFPYmouY2FuY2VsTGFiZWx9fTwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uIHNhdmUgY29uZmlybVwiIChjbGljayk9XCJjb25maXJtKClcIj57e2RhdGFPYmouY29uZmlybUxhYmVsQWx0ICYmIGRhdGFPYmouc2Vjb25kYXJ5Q29uZmlybWVkID8gZGF0YU9iai5jb25maXJtTGFiZWxBbHQgOiBkYXRhT2JqLmNvbmZpcm1MYWJlbH19PC9idXR0b24+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|