@openziti/ziti-console-lib 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -0
- package/assets/animations/ConstructionZiggy.json +15233 -0
- package/assets/animations/HelloZiggy.json +10008 -0
- package/assets/animations/SmartZiggy.json +9488 -0
- package/assets/components/add.html +1 -0
- package/assets/components/api.html +12 -0
- package/assets/components/customtags.html +4 -0
- package/assets/components/line.html +1 -0
- package/assets/components/noitems.html +1 -0
- package/assets/components/save.html +4 -0
- package/assets/components/search.html +8 -0
- package/assets/components/tabIdentities.html +6 -0
- package/assets/components/tabPolicies.html +7 -0
- package/assets/components/tabRouters.html +5 -0
- package/assets/components/tabServers.html +4 -0
- package/assets/components/tabServices.html +5 -0
- package/assets/components/tabSessions.html +4 -0
- package/assets/data/mail.json +0 -0
- package/assets/data/services.json +6 -0
- package/assets/data/settings.json +25 -0
- package/assets/data/site.json +31 -0
- package/assets/data/tags.json +7 -0
- package/assets/data/templates.json +1 -0
- package/assets/fonts/OpenSans-Regular.ttf +0 -0
- package/assets/fonts/OpenSans-Regular.woff +0 -0
- package/assets/fonts/OpenSans-Regular.woff2 +0 -0
- package/assets/fonts/RussoOne-Regular.ttf +0 -0
- package/assets/fonts/RussoOne-Regular.woff +0 -0
- package/assets/fonts/RussoOne-Regular.woff2 +0 -0
- package/assets/fonts/zac.eot +0 -0
- package/assets/fonts/zac.svg +55 -0
- package/assets/fonts/zac.ttf +0 -0
- package/assets/fonts/zac.woff +0 -0
- package/assets/fonts/zac.woff2 +0 -0
- package/assets/html/api-sessions.htm +153 -0
- package/assets/html/attributes.htm +260 -0
- package/assets/html/auth-policies.htm +410 -0
- package/assets/html/cas.htm +445 -0
- package/assets/html/config-types.htm +168 -0
- package/assets/html/configs.htm +238 -0
- package/assets/html/deprecated/fabric-links.htm +336 -0
- package/assets/html/deprecated/fabric-routers.htm +72 -0
- package/assets/html/deprecated/fabric-services.htm +494 -0
- package/assets/html/identities.htm +934 -0
- package/assets/html/index.htm +161 -0
- package/assets/html/jwt-signers.htm +260 -0
- package/assets/html/known.htm +115 -0
- package/assets/html/login.htm +131 -0
- package/assets/html/organization.htm +223 -0
- package/assets/html/posture-checks.htm +393 -0
- package/assets/html/profile.htm +52 -0
- package/assets/html/recipes.htm +455 -0
- package/assets/html/router-policies.htm +168 -0
- package/assets/html/routers.htm +323 -0
- package/assets/html/servers.htm +236 -0
- package/assets/html/service-policies.htm +197 -0
- package/assets/html/service-router-policies.htm +170 -0
- package/assets/html/services.htm +634 -0
- package/assets/html/sessions.htm +157 -0
- package/assets/html/settings.htm +146 -0
- package/assets/html/terminators.htm +244 -0
- package/assets/html/transit-routers.htm +173 -0
- package/assets/icons/android-icon-192x192.png +0 -0
- package/assets/icons/apple-icon-114x114.png +0 -0
- package/assets/icons/apple-icon-120x120.png +0 -0
- package/assets/icons/apple-icon-144x144.png +0 -0
- package/assets/icons/apple-icon-152x152.png +0 -0
- package/assets/icons/apple-icon-180x180.png +0 -0
- package/assets/icons/apple-icon-57x57.png +0 -0
- package/assets/icons/apple-icon-60x60.png +0 -0
- package/assets/icons/apple-icon-72x72.png +0 -0
- package/assets/icons/apple-icon-76x76.png +0 -0
- package/assets/icons/apple-icon-precomposed.png +0 -0
- package/assets/icons/favicon-16x16.png +0 -0
- package/assets/icons/favicon-32x32.png +0 -0
- package/assets/icons/favicon-96x96.png +0 -0
- package/assets/icons/favicon.ico +0 -0
- package/assets/icons/ms-icon-144x144.png +0 -0
- package/assets/images/Filter.png +0 -0
- package/assets/images/Login.jpg +0 -0
- package/assets/images/SortDown.png +0 -0
- package/assets/images/SortUp.png +0 -0
- package/assets/images/android.png +0 -0
- package/assets/images/anywhere.png +0 -0
- package/assets/images/apple.png +0 -0
- package/assets/images/bug.png +0 -0
- package/assets/images/check.png +0 -0
- package/assets/images/error.png +0 -0
- package/assets/images/info.png +0 -0
- package/assets/images/linux.png +0 -0
- package/assets/images/other.png +0 -0
- package/assets/images/scrollbar.png +0 -0
- package/assets/images/select.png +0 -0
- package/assets/images/success.png +0 -0
- package/assets/images/visualizer/ER.png +0 -0
- package/assets/images/visualizer/Routers.png +0 -0
- package/assets/images/visualizer/er_error.png +0 -0
- package/assets/images/visualizer/error_er.png +0 -0
- package/assets/images/visualizer/host-error.png +0 -0
- package/assets/images/visualizer/host.png +0 -0
- package/assets/images/visualizer/host_unregistered.png +0 -0
- package/assets/images/visualizer/link-cut.png +0 -0
- package/assets/images/visualizer/service.png +0 -0
- package/assets/images/visualizer/unregistered.png +0 -0
- package/assets/images/warning.png +0 -0
- package/assets/images/windows.png +0 -0
- package/assets/languages/en-us.json +330 -0
- package/assets/resources/avatar/man.svg +78 -0
- package/assets/resources/avatar/woman.svg +96 -0
- package/assets/resources/icon/analysis.svg +104 -0
- package/assets/resources/icon/appwans.svg +20 -0
- package/assets/resources/icon/architecture.svg +1 -0
- package/assets/resources/icon/bike.svg +94 -0
- package/assets/resources/icon/bus.svg +64 -0
- package/assets/resources/icon/cas.svg +46 -0
- package/assets/resources/icon/clusters.svg +28 -0
- package/assets/resources/icon/computer.svg +1 -0
- package/assets/resources/icon/data.svg +1 -0
- package/assets/resources/icon/delivery-truck.svg +1 -0
- package/assets/resources/icon/explosion.svg +81 -0
- package/assets/resources/icon/fabricServices.svg +31 -0
- package/assets/resources/icon/fabrics.svg +136 -0
- package/assets/resources/icon/front.svg +83 -0
- package/assets/resources/icon/gateway.svg +49 -0
- package/assets/resources/icon/gear.svg +122 -0
- package/assets/resources/icon/house.svg +72 -0
- package/assets/resources/icon/language.svg +1 -0
- package/assets/resources/icon/objective.svg +55 -0
- package/assets/resources/icon/route.svg +97 -0
- package/assets/resources/icon/routers.svg +27 -0
- package/assets/resources/icon/startup.svg +112 -0
- package/assets/resources/icon/switch.svg +101 -0
- package/assets/scripts/chart.min.js +7 -0
- package/assets/scripts/commands.js +112 -0
- package/assets/scripts/components/codemirror/codemirror.css +356 -0
- package/assets/scripts/components/codemirror/codemirror.js +9741 -0
- package/assets/scripts/components/codemirror/modes/addons/closetags.js +200 -0
- package/assets/scripts/components/codemirror/modes/addons/colorize.js +40 -0
- package/assets/scripts/components/codemirror/modes/addons/css-hint.js +66 -0
- package/assets/scripts/components/codemirror/modes/addons/formatting.js +124 -0
- package/assets/scripts/components/codemirror/modes/addons/html-hint.js +366 -0
- package/assets/scripts/components/codemirror/modes/addons/javascript-hint.js +159 -0
- package/assets/scripts/components/codemirror/modes/addons/show-hint.css +36 -0
- package/assets/scripts/components/codemirror/modes/addons/show-hint.js +482 -0
- package/assets/scripts/components/codemirror/modes/css.js +831 -0
- package/assets/scripts/components/codemirror/modes/htmlmixed.js +152 -0
- package/assets/scripts/components/codemirror/modes/javascript.js +930 -0
- package/assets/scripts/components/codemirror/modes/xml.js +413 -0
- package/assets/scripts/components/column.css +184 -0
- package/assets/scripts/components/column.js +165 -0
- package/assets/scripts/components/flows.css +0 -0
- package/assets/scripts/components/flows.js +48 -0
- package/assets/scripts/components/leaflet/images/layers-2x.png +0 -0
- package/assets/scripts/components/leaflet/images/layers.png +0 -0
- package/assets/scripts/components/leaflet/images/marker-icon-2x.png +0 -0
- package/assets/scripts/components/leaflet/images/marker-icon.png +0 -0
- package/assets/scripts/components/leaflet/images/marker-shadow.png +0 -0
- package/assets/scripts/components/leaflet/leaflet-src.esm.js +13926 -0
- package/assets/scripts/components/leaflet/leaflet-src.esm.js.map +1 -0
- package/assets/scripts/components/leaflet/leaflet-src.js +14020 -0
- package/assets/scripts/components/leaflet/leaflet-src.js.map +1 -0
- package/assets/scripts/components/leaflet/leaflet.css +640 -0
- package/assets/scripts/components/leaflet/leaflet.js +5 -0
- package/assets/scripts/components/leaflet/leaflet.js.map +1 -0
- package/assets/scripts/components/moment.js +4602 -0
- package/assets/scripts/components/multiselect.js +333 -0
- package/assets/scripts/components/network/img/network/acceptDeleteIcon.png +0 -0
- package/assets/scripts/components/network/img/network/addNodeIcon.png +0 -0
- package/assets/scripts/components/network/img/network/backIcon.png +0 -0
- package/assets/scripts/components/network/img/network/connectIcon.png +0 -0
- package/assets/scripts/components/network/img/network/cross.png +0 -0
- package/assets/scripts/components/network/img/network/cross2.png +0 -0
- package/assets/scripts/components/network/img/network/deleteIcon.png +0 -0
- package/assets/scripts/components/network/img/network/downArrow.png +0 -0
- package/assets/scripts/components/network/img/network/editIcon.png +0 -0
- package/assets/scripts/components/network/img/network/leftArrow.png +0 -0
- package/assets/scripts/components/network/img/network/minus.png +0 -0
- package/assets/scripts/components/network/img/network/plus.png +0 -0
- package/assets/scripts/components/network/img/network/rightArrow.png +0 -0
- package/assets/scripts/components/network/img/network/upArrow.png +0 -0
- package/assets/scripts/components/network/img/network/zoomExtends.png +0 -0
- package/assets/scripts/components/network/types/DOMutil.d.ts +99 -0
- package/assets/scripts/components/network/types/index-legacy-bundle.d.ts +4 -0
- package/assets/scripts/components/network/types/index-legacy-bundle.d.ts.map +1 -0
- package/assets/scripts/components/network/types/index-legacy.d.ts +24 -0
- package/assets/scripts/components/network/types/index-legacy.d.ts.map +1 -0
- package/assets/scripts/components/network/types/index-peer.d.ts +11 -0
- package/assets/scripts/components/network/types/index-peer.d.ts.map +1 -0
- package/assets/scripts/components/network/types/index-standalone.d.ts +7 -0
- package/assets/scripts/components/network/types/index-standalone.d.ts.map +1 -0
- package/assets/scripts/components/network/types/module/hammer.d.ts +2 -0
- package/assets/scripts/components/network/types/module/moment.d.ts +2 -0
- package/assets/scripts/components/network/types/network/Images.d.ts +2 -0
- package/assets/scripts/components/network/types/network/Network.d.ts +1030 -0
- package/assets/scripts/components/network/types/network/dotparser.d.ts +2 -0
- package/assets/scripts/components/network/types/network/gephiParser.d.ts +80 -0
- package/assets/scripts/components/network/types/network/gephiParser.d.ts.map +1 -0
- package/assets/scripts/components/network/types/network/modules/components/edges/bezier-edge-dynamic.d.ts +55 -0
- package/assets/scripts/components/network/types/network/modules/components/edges/bezier-edge-dynamic.d.ts.map +1 -0
- package/assets/scripts/components/network/types/network/modules/components/edges/bezier-edge-static.d.ts +37 -0
- package/assets/scripts/components/network/types/network/modules/components/edges/bezier-edge-static.d.ts.map +1 -0
- package/assets/scripts/components/network/types/network/modules/components/edges/cubic-bezier-edge.d.ts +32 -0
- package/assets/scripts/components/network/types/network/modules/components/edges/cubic-bezier-edge.d.ts.map +1 -0
- package/assets/scripts/components/network/types/network/modules/components/edges/index.d.ts +10 -0
- package/assets/scripts/components/network/types/network/modules/components/edges/index.d.ts.map +1 -0
- package/assets/scripts/components/network/types/network/modules/components/edges/straight-edge.d.ts +26 -0
- package/assets/scripts/components/network/types/network/modules/components/edges/straight-edge.d.ts.map +1 -0
- package/assets/scripts/components/network/types/network/modules/components/edges/util/bezier-edge-base.d.ts +68 -0
- package/assets/scripts/components/network/types/network/modules/components/edges/util/bezier-edge-base.d.ts.map +1 -0
- package/assets/scripts/components/network/types/network/modules/components/edges/util/cubic-bezier-edge-base.d.ts +38 -0
- package/assets/scripts/components/network/types/network/modules/components/edges/util/cubic-bezier-edge-base.d.ts.map +1 -0
- package/assets/scripts/components/network/types/network/modules/components/edges/util/edge-base.d.ts +248 -0
- package/assets/scripts/components/network/types/network/modules/components/edges/util/edge-base.d.ts.map +1 -0
- package/assets/scripts/components/network/types/network/modules/components/edges/util/end-points.d.ts +58 -0
- package/assets/scripts/components/network/types/network/modules/components/edges/util/end-points.d.ts.map +1 -0
- package/assets/scripts/components/network/types/network/modules/components/edges/util/types.d.ts +196 -0
- package/assets/scripts/components/network/types/network/modules/components/edges/util/types.d.ts.map +1 -0
- package/assets/scripts/components/network/types/network/modules/layout-engine/index.d.ts +32 -0
- package/assets/scripts/components/network/types/network/modules/layout-engine/index.d.ts.map +1 -0
- package/assets/scripts/components/network/types/network/options.d.ts +2 -0
- package/assets/scripts/components/network/types/network/shapes.d.ts +122 -0
- package/assets/scripts/components/network/types/network/shapes.d.ts.map +1 -0
- package/assets/scripts/components/network/vis-network.css +716 -0
- package/assets/scripts/components/network/vis-network.esm.js +58974 -0
- package/assets/scripts/components/network/vis-network.esm.js.map +1 -0
- package/assets/scripts/components/network/vis-network.esm.min.js +53 -0
- package/assets/scripts/components/network/vis-network.esm.min.js.map +1 -0
- package/assets/scripts/components/network/vis-network.js +58994 -0
- package/assets/scripts/components/network/vis-network.js.map +1 -0
- package/assets/scripts/components/network/vis-network.min.css +1 -0
- package/assets/scripts/components/network/vis-network.min.js +53 -0
- package/assets/scripts/components/network/vis-network.min.js.map +1 -0
- package/assets/scripts/components/qrcode.min.js +1 -0
- package/assets/scripts/components/resources.js +26 -0
- package/assets/scripts/components/selector-new.js +300 -0
- package/assets/scripts/components/selector.js +300 -0
- package/assets/scripts/components/spectrum.js +2323 -0
- package/assets/scripts/components/timezone.js +1545 -0
- package/assets/scripts/components/uploader.js +74 -0
- package/assets/scripts/context.js +177 -0
- package/assets/scripts/dragging.js +58 -0
- package/assets/scripts/forms/forms.js +74 -0
- package/assets/scripts/forms/host.v1.htm +43 -0
- package/assets/scripts/forms/intercept.v1.htm +0 -0
- package/assets/scripts/forms/schema.js +693 -0
- package/assets/scripts/growler.js +133 -0
- package/assets/scripts/header.js +163 -0
- package/assets/scripts/jquery-3.6.3.min.js +2 -0
- package/assets/scripts/jquery.datetimepicker.js +2930 -0
- package/assets/scripts/locale.js +47 -0
- package/assets/scripts/modal.js +65 -0
- package/assets/scripts/model/data.js +558 -0
- package/assets/scripts/model/fabric.js +55 -0
- package/assets/scripts/model/fabricServices.js +45 -0
- package/assets/scripts/model/known.js +43 -0
- package/assets/scripts/model/links.js +44 -0
- package/assets/scripts/model/routers.js +51 -0
- package/assets/scripts/model/series.js +70 -0
- package/assets/scripts/model/sessions.js +61 -0
- package/assets/scripts/model/settings.js +60 -0
- package/assets/scripts/model/summary.js +49 -0
- package/assets/scripts/model/tags.js +330 -0
- package/assets/scripts/model/templates.js +42 -0
- package/assets/scripts/model/user.js +40 -0
- package/assets/scripts/restrictions.js +34 -0
- package/assets/scripts/service.js +76 -0
- package/assets/scripts/validation-tools.js +5119 -0
- package/assets/scripts/ziti.js +372 -0
- package/assets/styles/chart.min.css +1 -0
- package/assets/styles/dark.css +52 -0
- package/assets/styles/datetimepicker.css +1 -0
- package/assets/styles/forms.css +521 -0
- package/assets/styles/global.scss +890 -0
- package/assets/styles/growler.css +190 -0
- package/assets/styles/header.css +232 -0
- package/assets/styles/icons.css +160 -0
- package/assets/styles/navigation.css +183 -0
- package/assets/styles/select2.css +481 -0
- package/assets/styles/spectrum.css +507 -0
- package/assets/styles/tables.css +424 -0
- package/assets/styles/tooltip.css +134 -0
- package/assets/styles/ziti.css +3216 -0
- package/assets/svgs/Advanced.svg +89 -0
- package/assets/svgs/ArrowDown.svg +15 -0
- package/assets/svgs/ArrowDownDark.svg +15 -0
- package/assets/svgs/Confirm_Trash.svg +42 -0
- package/assets/svgs/DownloadKey.svg +50 -0
- package/assets/svgs/Filter.svg +13 -0
- package/assets/svgs/Growl_Bug.svg +47 -0
- package/assets/svgs/Growl_Error.svg +41 -0
- package/assets/svgs/Growl_Info.svg +45 -0
- package/assets/svgs/Growl_Success.svg +34 -0
- package/assets/svgs/Growl_Warning.svg +44 -0
- package/assets/svgs/MainMenuBlankUser.svg +14 -0
- package/assets/svgs/MainMenuNetworks.svg +37 -0
- package/assets/svgs/MainMenuNotifications.svg +32 -0
- package/assets/svgs/MainMenuOrg.svg +68 -0
- package/assets/svgs/MainMenuPlus.svg +13 -0
- package/assets/svgs/MainMenuSearch.svg +22 -0
- package/assets/svgs/MainMenuSupport.svg +417 -0
- package/assets/svgs/No_Clients.svg +94 -0
- package/assets/svgs/No_Plus.svg +30 -0
- package/assets/svgs/No_Routers.svg +56 -0
- package/assets/svgs/Resize.svg +33 -0
- package/assets/svgs/Simple.svg +62 -0
- package/assets/svgs/appwans.svg +20 -0
- package/assets/svgs/cas.svg +46 -0
- package/assets/svgs/cert.svg +69 -0
- package/assets/svgs/clear.svg +13 -0
- package/assets/svgs/close.svg +14 -0
- package/assets/svgs/clusters.svg +28 -0
- package/assets/svgs/copy.svg +64 -0
- package/assets/svgs/dashboard.svg +32 -0
- package/assets/svgs/dial.svg +83 -0
- package/assets/svgs/docs.svg +95 -0
- package/assets/svgs/downloads.svg +74 -0
- package/assets/svgs/fabricServices.svg +31 -0
- package/assets/svgs/fabrics.svg +134 -0
- package/assets/svgs/gateways.svg +49 -0
- package/assets/svgs/heart.svg +1 -0
- package/assets/svgs/ids.svg +20 -0
- package/assets/svgs/infoicon.svg +14 -0
- package/assets/svgs/lock.svg +12 -0
- package/assets/svgs/minus.svg +11 -0
- package/assets/svgs/nodata.svg +27 -0
- package/assets/svgs/qr.svg +56 -0
- package/assets/svgs/refresh.svg +24 -0
- package/assets/svgs/routers.svg +31 -0
- package/assets/svgs/select.svg +18 -0
- package/assets/svgs/services.svg +19 -0
- package/assets/svgs/settings.svg +1 -0
- package/assets/svgs/upload.svg +55 -0
- package/assets/templates/footer.htm +183 -0
- package/assets/templates/header.htm +298 -0
- package/assets/vectors/certificates.svg +1 -0
- package/assets/vectors/change.svg +1 -0
- package/assets/vectors/configuration.svg +2 -0
- package/assets/vectors/customize.svg +1 -0
- package/assets/vectors/dashboard.svg +1 -0
- package/assets/vectors/edgepolicies.svg +2 -0
- package/assets/vectors/globe.svg +63 -0
- package/assets/vectors/help.svg +48 -0
- package/assets/vectors/identity.svg +1 -0
- package/assets/vectors/notify.svg +1 -0
- package/assets/vectors/plus.svg +1 -0
- package/assets/vectors/posture.svg +1 -0
- package/assets/vectors/profile.svg +1 -0
- package/assets/vectors/router.svg +1 -0
- package/assets/vectors/routerpolicies.svg +1 -0
- package/assets/vectors/schema.svg +1 -0
- package/assets/vectors/server (1).svg +293 -0
- package/assets/vectors/servers.svg +103 -0
- package/assets/vectors/servicepolicy.svg +1 -0
- package/assets/vectors/services.svg +126 -0
- package/assets/vectors/settings.svg +130 -0
- package/assets/vectors/terminators.svg +1 -0
- package/assets/vectors/transitrouter.svg +1 -0
- package/esm2022/lib/app.initializer.mjs +24 -0
- package/esm2022/lib/features/card/card.component.mjs +29 -0
- package/esm2022/lib/features/card-list/card-list.component.mjs +50 -0
- package/esm2022/lib/features/config-editor/config-editor.component.mjs +239 -0
- package/esm2022/lib/features/confirm/confirm.component.mjs +59 -0
- package/esm2022/lib/features/creation-summary-dialog/creation-summary-dialog.component.mjs +92 -0
- package/esm2022/lib/features/custom-tags/custom-tags.component.mjs +77 -0
- package/esm2022/lib/features/data-table/cells/table-cell-menu/table-cell-menu.component.mjs +47 -0
- package/esm2022/lib/features/data-table/cells/table-cell-select/table-cell-select.component.mjs +46 -0
- package/esm2022/lib/features/data-table/cells/table-cell-token/table-cell-token.component.mjs +124 -0
- package/esm2022/lib/features/data-table/column-headers/table-column-default/table-column-default.component.mjs +269 -0
- package/esm2022/lib/features/data-table/column-headers/table-column-filter/table-column-filter.component.mjs +94 -0
- package/esm2022/lib/features/data-table/column-headers/table-column-menu/table-column-menu.component.mjs +38 -0
- package/esm2022/lib/features/data-table/column-headers/table-column-select/table-column-select.component.mjs +34 -0
- package/esm2022/lib/features/data-table/data-table-filter.service.mjs +66 -0
- package/esm2022/lib/features/data-table/data-table.component.mjs +848 -0
- package/esm2022/lib/features/data-table/data-table.service.mjs +99 -0
- package/esm2022/lib/features/data-table/table-filter-bar/filter-bar.component.mjs +95 -0
- package/esm2022/lib/features/data-table/table-hidden-columns-bar/hidden-columns-bar.component.mjs +27 -0
- package/esm2022/lib/features/data-table/tooltips/os-tooltip.component.mjs +30 -0
- package/esm2022/lib/features/data-table/tooltips/sdk-tooltip.component.mjs +35 -0
- package/esm2022/lib/features/dynamic-widgets/boolean/boolean-toggle-input.component.mjs +73 -0
- package/esm2022/lib/features/dynamic-widgets/checkbox-list/checkbox-list-input.component.mjs +131 -0
- package/esm2022/lib/features/dynamic-widgets/forwarding-config/forwarding-config.component.mjs +169 -0
- package/esm2022/lib/features/dynamic-widgets/forwarding-config/forwarding-config.service.mjs +51 -0
- package/esm2022/lib/features/dynamic-widgets/number/number-input.component.mjs +74 -0
- package/esm2022/lib/features/dynamic-widgets/object/object.component.mjs +122 -0
- package/esm2022/lib/features/dynamic-widgets/password/password-input.component.mjs +72 -0
- package/esm2022/lib/features/dynamic-widgets/port-ranges/port-ranges.component.mjs +98 -0
- package/esm2022/lib/features/dynamic-widgets/protocol-address-port/protocol-address-port-input.component.mjs +180 -0
- package/esm2022/lib/features/dynamic-widgets/selector/selector-input.component.mjs +104 -0
- package/esm2022/lib/features/dynamic-widgets/string/string-input.component.mjs +72 -0
- package/esm2022/lib/features/dynamic-widgets/text-list/text-list-input.component.mjs +119 -0
- package/esm2022/lib/features/extendable/extendable.component.mjs +56 -0
- package/esm2022/lib/features/extendable/extensions-noop.service.mjs +50 -0
- package/esm2022/lib/features/json-view/json-view.component.mjs +197 -0
- package/esm2022/lib/features/list-page-features/list-page-form/list-page-form.component.mjs +139 -0
- package/esm2022/lib/features/list-page-features/list-page-header/list-page-header.component.mjs +48 -0
- package/esm2022/lib/features/loading-indicator/loading-indicator.component.mjs +21 -0
- package/esm2022/lib/features/messaging/growler.component.mjs +63 -0
- package/esm2022/lib/features/messaging/growler.model.mjs +24 -0
- package/esm2022/lib/features/messaging/growler.module.mjs +35 -0
- package/esm2022/lib/features/messaging/growler.service.mjs +72 -0
- package/esm2022/lib/features/messaging/logger.service.mjs +175 -0
- package/esm2022/lib/features/no-items/no-items.component.mjs +47 -0
- package/esm2022/lib/features/overrides/overrides.component.mjs +119 -0
- package/esm2022/lib/features/overrides/overrides.service.mjs +115 -0
- package/esm2022/lib/features/preview-list/preview-list.component.mjs +91 -0
- package/esm2022/lib/features/projectable-forms/configuration/configuration-form.component.mjs +223 -0
- package/esm2022/lib/features/projectable-forms/configuration/configuration.service.mjs +150 -0
- package/esm2022/lib/features/projectable-forms/edge-router/edge-router-form.component.mjs +188 -0
- package/esm2022/lib/features/projectable-forms/edge-router/edge-router-form.service.mjs +131 -0
- package/esm2022/lib/features/projectable-forms/form-field-container/form-field-container.component.mjs +72 -0
- package/esm2022/lib/features/projectable-forms/form-field-toggle/form-field-toggle.component.mjs +55 -0
- package/esm2022/lib/features/projectable-forms/form-header/form-header.component.mjs +96 -0
- package/esm2022/lib/features/projectable-forms/identity/identity-form.component.mjs +322 -0
- package/esm2022/lib/features/projectable-forms/identity/identity-form.service.mjs +144 -0
- package/esm2022/lib/features/projectable-forms/projectable-form.class.mjs +172 -0
- package/esm2022/lib/features/projectable-forms/service/service-form.component.mjs +240 -0
- package/esm2022/lib/features/projectable-forms/service/service-form.service.mjs +453 -0
- package/esm2022/lib/features/projectable-forms/service/simple-service/simple-service.component.mjs +680 -0
- package/esm2022/lib/features/projectable-forms/service-policy/service-policy-form.component.mjs +252 -0
- package/esm2022/lib/features/projectable-forms/service-policy/service-policy-form.service.mjs +214 -0
- package/esm2022/lib/features/qr-code/qr-code.component.mjs +143 -0
- package/esm2022/lib/features/reset-enrollment/reset-enrollment.component.mjs +87 -0
- package/esm2022/lib/features/reset-enrollment/reset-enrollment.service.mjs +62 -0
- package/esm2022/lib/features/side-modal/side-modal.component.mjs +46 -0
- package/esm2022/lib/features/sidebars/side-banner/side-banner.component.mjs +17 -0
- package/esm2022/lib/features/sidebars/side-navbar/side-navbar.component.mjs +55 -0
- package/esm2022/lib/features/sidebars/side-toolbar/side-toolbar.component.mjs +128 -0
- package/esm2022/lib/features/tag-selector/tag-selector.component.mjs +292 -0
- package/esm2022/lib/features/visualizer/identity-service-path/identity-service-path.component.mjs +588 -0
- package/esm2022/lib/features/visualizer/identity-service-path/identity-service-path.helper.mjs +370 -0
- package/esm2022/lib/features/wrappers/node-wrapper.service.mjs +51 -0
- package/esm2022/lib/features/wrappers/zac-wrapper-service.class.mjs +92 -0
- package/esm2022/lib/features/wrappers/zac-wrapper.component.mjs +147 -0
- package/esm2022/lib/features/wrappers/zac-wrapper.service.mjs +937 -0
- package/esm2022/lib/models/config.mjs +9 -0
- package/esm2022/lib/models/edge-router.mjs +13 -0
- package/esm2022/lib/models/identity.mjs +34 -0
- package/esm2022/lib/models/service-policy.mjs +12 -0
- package/esm2022/lib/models/service.mjs +12 -0
- package/esm2022/lib/pages/configurations/configurations-page.component.mjs +102 -0
- package/esm2022/lib/pages/configurations/configurations-page.service.mjs +246 -0
- package/esm2022/lib/pages/edge-routers/edge-routers-page.component.mjs +149 -0
- package/esm2022/lib/pages/edge-routers/edge-routers-page.service.mjs +361 -0
- package/esm2022/lib/pages/identities/identities-page.component.mjs +233 -0
- package/esm2022/lib/pages/identities/identities-page.service.mjs +498 -0
- package/esm2022/lib/pages/service-policies/service-policies-page.component.mjs +132 -0
- package/esm2022/lib/pages/service-policies/service-policies-page.service.mjs +457 -0
- package/esm2022/lib/pages/services/services-page.component.mjs +141 -0
- package/esm2022/lib/pages/services/services-page.service.mjs +215 -0
- package/esm2022/lib/safe.pipe.mjs +19 -0
- package/esm2022/lib/services/console-events.service.mjs +32 -0
- package/esm2022/lib/services/csv-download.service.mjs +92 -0
- package/esm2022/lib/services/deactivate-guard.service.mjs +18 -0
- package/esm2022/lib/services/login-service.class.mjs +28 -0
- package/esm2022/lib/services/node-data.service.mjs +292 -0
- package/esm2022/lib/services/noop-login.service.mjs +45 -0
- package/esm2022/lib/services/schema.service.mjs +808 -0
- package/esm2022/lib/services/settings-service.class.mjs +131 -0
- package/esm2022/lib/services/settings.service.mjs +193 -0
- package/esm2022/lib/services/tab-name.service.mjs +65 -0
- package/esm2022/lib/services/validation.service.mjs +124 -0
- package/esm2022/lib/services/ziti-controller-data.service.mjs +260 -0
- package/esm2022/lib/services/ziti-data.service.mjs +54 -0
- package/esm2022/lib/services/ziti-domain-controller.service.mjs +3 -0
- package/esm2022/lib/shared/list-page-component.class.mjs +145 -0
- package/esm2022/lib/shared/list-page-service.class.mjs +151 -0
- package/esm2022/lib/version.mjs +4 -0
- package/esm2022/lib/zac-routing.module.mjs +41 -0
- package/esm2022/lib/ziti-console-lib.module.mjs +364 -0
- package/esm2022/lib/ziti-console.constants.mjs +19 -0
- package/esm2022/openziti-ziti-console-lib.mjs +5 -0
- package/esm2022/public-api.mjs +71 -0
- package/fesm2022/openziti-ziti-console-lib.mjs +15813 -0
- package/fesm2022/openziti-ziti-console-lib.mjs.map +1 -0
- package/index.d.ts +6 -0
- package/lib/app.initializer.d.ts +3 -0
- package/lib/app.initializer.d.ts.map +1 -0
- package/lib/features/card/card.component.d.ts +11 -0
- package/lib/features/card/card.component.d.ts.map +1 -0
- package/lib/features/card-list/card-list.component.d.ts +23 -0
- package/lib/features/card-list/card-list.component.d.ts.map +1 -0
- package/lib/features/config-editor/config-editor.component.d.ts +39 -0
- package/lib/features/config-editor/config-editor.component.d.ts.map +1 -0
- package/lib/features/confirm/confirm.component.d.ts +23 -0
- package/lib/features/confirm/confirm.component.d.ts.map +1 -0
- package/lib/features/creation-summary-dialog/creation-summary-dialog.component.d.ts +31 -0
- package/lib/features/creation-summary-dialog/creation-summary-dialog.component.d.ts.map +1 -0
- package/lib/features/custom-tags/custom-tags.component.d.ts +20 -0
- package/lib/features/custom-tags/custom-tags.component.d.ts.map +1 -0
- package/lib/features/data-table/cells/table-cell-menu/table-cell-menu.component.d.ts +16 -0
- package/lib/features/data-table/cells/table-cell-menu/table-cell-menu.component.d.ts.map +1 -0
- package/lib/features/data-table/cells/table-cell-select/table-cell-select.component.d.ts +19 -0
- package/lib/features/data-table/cells/table-cell-select/table-cell-select.component.d.ts.map +1 -0
- package/lib/features/data-table/cells/table-cell-token/table-cell-token.component.d.ts +22 -0
- package/lib/features/data-table/cells/table-cell-token/table-cell-token.component.d.ts.map +1 -0
- package/lib/features/data-table/column-headers/table-column-default/table-column-default.component.d.ts +52 -0
- package/lib/features/data-table/column-headers/table-column-default/table-column-default.component.d.ts.map +1 -0
- package/lib/features/data-table/column-headers/table-column-filter/table-column-filter.component.d.ts +27 -0
- package/lib/features/data-table/column-headers/table-column-filter/table-column-filter.component.d.ts.map +1 -0
- package/lib/features/data-table/column-headers/table-column-menu/table-column-menu.component.d.ts +19 -0
- package/lib/features/data-table/column-headers/table-column-menu/table-column-menu.component.d.ts.map +1 -0
- package/lib/features/data-table/column-headers/table-column-select/table-column-select.component.d.ts +15 -0
- package/lib/features/data-table/column-headers/table-column-select/table-column-select.component.d.ts.map +1 -0
- package/lib/features/data-table/data-table-filter.service.d.ts +24 -0
- package/lib/features/data-table/data-table-filter.service.d.ts.map +1 -0
- package/lib/features/data-table/data-table.component.d.ts +154 -0
- package/lib/features/data-table/data-table.component.d.ts.map +1 -0
- package/lib/features/data-table/data-table.service.d.ts +20 -0
- package/lib/features/data-table/data-table.service.d.ts.map +1 -0
- package/lib/features/data-table/table-filter-bar/filter-bar.component.d.ts +22 -0
- package/lib/features/data-table/table-filter-bar/filter-bar.component.d.ts.map +1 -0
- package/lib/features/data-table/table-hidden-columns-bar/hidden-columns-bar.component.d.ts +10 -0
- package/lib/features/data-table/table-hidden-columns-bar/hidden-columns-bar.component.d.ts.map +1 -0
- package/lib/features/data-table/tooltips/os-tooltip.component.d.ts +15 -0
- package/lib/features/data-table/tooltips/os-tooltip.component.d.ts.map +1 -0
- package/lib/features/data-table/tooltips/sdk-tooltip.component.d.ts +15 -0
- package/lib/features/data-table/tooltips/sdk-tooltip.component.d.ts.map +1 -0
- package/lib/features/dynamic-widgets/boolean/boolean-toggle-input.component.d.ts +19 -0
- package/lib/features/dynamic-widgets/boolean/boolean-toggle-input.component.d.ts.map +1 -0
- package/lib/features/dynamic-widgets/checkbox-list/checkbox-list-input.component.d.ts +26 -0
- package/lib/features/dynamic-widgets/checkbox-list/checkbox-list-input.component.d.ts.map +1 -0
- package/lib/features/dynamic-widgets/forwarding-config/forwarding-config.component.d.ts +45 -0
- package/lib/features/dynamic-widgets/forwarding-config/forwarding-config.component.d.ts.map +1 -0
- package/lib/features/dynamic-widgets/forwarding-config/forwarding-config.service.d.ts +14 -0
- package/lib/features/dynamic-widgets/forwarding-config/forwarding-config.service.d.ts.map +1 -0
- package/lib/features/dynamic-widgets/number/number-input.component.d.ts +20 -0
- package/lib/features/dynamic-widgets/number/number-input.component.d.ts.map +1 -0
- package/lib/features/dynamic-widgets/object/object.component.d.ts +26 -0
- package/lib/features/dynamic-widgets/object/object.component.d.ts.map +1 -0
- package/lib/features/dynamic-widgets/password/password-input.component.d.ts +20 -0
- package/lib/features/dynamic-widgets/password/password-input.component.d.ts.map +1 -0
- package/lib/features/dynamic-widgets/port-ranges/port-ranges.component.d.ts +21 -0
- package/lib/features/dynamic-widgets/port-ranges/port-ranges.component.d.ts.map +1 -0
- package/lib/features/dynamic-widgets/protocol-address-port/protocol-address-port-input.component.d.ts +58 -0
- package/lib/features/dynamic-widgets/protocol-address-port/protocol-address-port-input.component.d.ts.map +1 -0
- package/lib/features/dynamic-widgets/selector/selector-input.component.d.ts +23 -0
- package/lib/features/dynamic-widgets/selector/selector-input.component.d.ts.map +1 -0
- package/lib/features/dynamic-widgets/string/string-input.component.d.ts +20 -0
- package/lib/features/dynamic-widgets/string/string-input.component.d.ts.map +1 -0
- package/lib/features/dynamic-widgets/text-list/text-list-input.component.d.ts +23 -0
- package/lib/features/dynamic-widgets/text-list/text-list-input.component.d.ts.map +1 -0
- package/lib/features/extendable/extendable.component.d.ts +15 -0
- package/lib/features/extendable/extendable.component.d.ts.map +1 -0
- package/lib/features/extendable/extensions-noop.service.d.ts +31 -0
- package/lib/features/extendable/extensions-noop.service.d.ts.map +1 -0
- package/lib/features/json-view/json-view.component.d.ts +37 -0
- package/lib/features/json-view/json-view.component.d.ts.map +1 -0
- package/lib/features/list-page-features/list-page-form/list-page-form.component.d.ts +35 -0
- package/lib/features/list-page-features/list-page-form/list-page-form.component.d.ts.map +1 -0
- package/lib/features/list-page-features/list-page-header/list-page-header.component.d.ts +13 -0
- package/lib/features/list-page-features/list-page-header/list-page-header.component.d.ts.map +1 -0
- package/lib/features/loading-indicator/loading-indicator.component.d.ts +9 -0
- package/lib/features/loading-indicator/loading-indicator.component.d.ts.map +1 -0
- package/lib/features/messaging/growler.component.d.ts +19 -0
- package/lib/features/messaging/growler.component.d.ts.map +1 -0
- package/lib/features/messaging/growler.model.d.ts +8 -0
- package/lib/features/messaging/growler.model.d.ts.map +1 -0
- package/lib/features/messaging/growler.module.d.ts +10 -0
- package/lib/features/messaging/growler.module.d.ts.map +1 -0
- package/lib/features/messaging/growler.service.d.ts +18 -0
- package/lib/features/messaging/growler.service.d.ts.map +1 -0
- package/lib/features/messaging/logger.service.d.ts +27 -0
- package/lib/features/messaging/logger.service.d.ts.map +1 -0
- package/lib/features/no-items/no-items.component.d.ts +19 -0
- package/lib/features/no-items/no-items.component.d.ts.map +1 -0
- package/lib/features/overrides/overrides.component.d.ts +33 -0
- package/lib/features/overrides/overrides.component.d.ts.map +1 -0
- package/lib/features/overrides/overrides.service.d.ts +18 -0
- package/lib/features/overrides/overrides.service.d.ts.map +1 -0
- package/lib/features/preview-list/preview-list.component.d.ts +24 -0
- package/lib/features/preview-list/preview-list.component.d.ts.map +1 -0
- package/lib/features/projectable-forms/configuration/configuration-form.component.d.ts +52 -0
- package/lib/features/projectable-forms/configuration/configuration-form.component.d.ts.map +1 -0
- package/lib/features/projectable-forms/configuration/configuration.service.d.ts +33 -0
- package/lib/features/projectable-forms/configuration/configuration.service.d.ts.map +1 -0
- package/lib/features/projectable-forms/edge-router/edge-router-form.component.d.ts +45 -0
- package/lib/features/projectable-forms/edge-router/edge-router-form.component.d.ts.map +1 -0
- package/lib/features/projectable-forms/edge-router/edge-router-form.service.d.ts +29 -0
- package/lib/features/projectable-forms/edge-router/edge-router-form.service.d.ts.map +1 -0
- package/lib/features/projectable-forms/form-field-container/form-field-container.component.d.ts +22 -0
- package/lib/features/projectable-forms/form-field-container/form-field-container.component.d.ts.map +1 -0
- package/lib/features/projectable-forms/form-field-toggle/form-field-toggle.component.d.ts +15 -0
- package/lib/features/projectable-forms/form-field-toggle/form-field-toggle.component.d.ts.map +1 -0
- package/lib/features/projectable-forms/form-header/form-header.component.d.ts +23 -0
- package/lib/features/projectable-forms/form-header/form-header.component.d.ts.map +1 -0
- package/lib/features/projectable-forms/identity/identity-form.component.d.ts +70 -0
- package/lib/features/projectable-forms/identity/identity-form.component.d.ts.map +1 -0
- package/lib/features/projectable-forms/identity/identity-form.service.d.ts +20 -0
- package/lib/features/projectable-forms/identity/identity-form.service.d.ts.map +1 -0
- package/lib/features/projectable-forms/projectable-form.class.d.ts +39 -0
- package/lib/features/projectable-forms/projectable-form.class.d.ts.map +1 -0
- package/lib/features/projectable-forms/service/service-form.component.d.ts +62 -0
- package/lib/features/projectable-forms/service/service-form.component.d.ts.map +1 -0
- package/lib/features/projectable-forms/service/service-form.service.d.ts +96 -0
- package/lib/features/projectable-forms/service/service-form.service.d.ts.map +1 -0
- package/lib/features/projectable-forms/service/simple-service/simple-service.component.d.ts +140 -0
- package/lib/features/projectable-forms/service/simple-service/simple-service.component.d.ts.map +1 -0
- package/lib/features/projectable-forms/service-policy/service-policy-form.component.d.ts +58 -0
- package/lib/features/projectable-forms/service-policy/service-policy-form.component.d.ts.map +1 -0
- package/lib/features/projectable-forms/service-policy/service-policy-form.service.d.ts +37 -0
- package/lib/features/projectable-forms/service-policy/service-policy-form.service.d.ts.map +1 -0
- package/lib/features/qr-code/qr-code.component.d.ts +40 -0
- package/lib/features/qr-code/qr-code.component.d.ts.map +1 -0
- package/lib/features/reset-enrollment/reset-enrollment.component.d.ts +27 -0
- package/lib/features/reset-enrollment/reset-enrollment.component.d.ts.map +1 -0
- package/lib/features/reset-enrollment/reset-enrollment.service.d.ts +13 -0
- package/lib/features/reset-enrollment/reset-enrollment.service.d.ts.map +1 -0
- package/lib/features/side-modal/side-modal.component.d.ts +15 -0
- package/lib/features/side-modal/side-modal.component.d.ts.map +1 -0
- package/lib/features/sidebars/side-banner/side-banner.component.d.ts +7 -0
- package/lib/features/sidebars/side-banner/side-banner.component.d.ts.map +1 -0
- package/lib/features/sidebars/side-navbar/side-navbar.component.d.ts +16 -0
- package/lib/features/sidebars/side-navbar/side-navbar.component.d.ts.map +1 -0
- package/lib/features/sidebars/side-toolbar/side-toolbar.component.d.ts +34 -0
- package/lib/features/sidebars/side-toolbar/side-toolbar.component.d.ts.map +1 -0
- package/lib/features/tag-selector/tag-selector.component.d.ts +59 -0
- package/lib/features/tag-selector/tag-selector.component.d.ts.map +1 -0
- package/lib/features/visualizer/identity-service-path/identity-service-path.component.d.ts +53 -0
- package/lib/features/visualizer/identity-service-path/identity-service-path.component.d.ts.map +1 -0
- package/lib/features/visualizer/identity-service-path/identity-service-path.helper.d.ts +21 -0
- package/lib/features/visualizer/identity-service-path/identity-service-path.helper.d.ts.map +1 -0
- package/lib/features/wrappers/node-wrapper.service.d.ts +24 -0
- package/lib/features/wrappers/node-wrapper.service.d.ts.map +1 -0
- package/lib/features/wrappers/zac-wrapper-service.class.d.ts +38 -0
- package/lib/features/wrappers/zac-wrapper-service.class.d.ts.map +1 -0
- package/lib/features/wrappers/zac-wrapper.component.d.ts +31 -0
- package/lib/features/wrappers/zac-wrapper.component.d.ts.map +1 -0
- package/lib/features/wrappers/zac-wrapper.service.d.ts +56 -0
- package/lib/features/wrappers/zac-wrapper.service.d.ts.map +1 -0
- package/lib/models/config.d.ts +6 -0
- package/lib/models/config.d.ts.map +1 -0
- package/lib/models/edge-router.d.ts +10 -0
- package/lib/models/edge-router.d.ts.map +1 -0
- package/lib/models/identity.d.ts +16 -0
- package/lib/models/identity.d.ts.map +1 -0
- package/lib/models/service-policy.d.ts +9 -0
- package/lib/models/service-policy.d.ts.map +1 -0
- package/lib/models/service.d.ts +9 -0
- package/lib/models/service.d.ts.map +1 -0
- package/lib/pages/configurations/configurations-page.component.d.ts +29 -0
- package/lib/pages/configurations/configurations-page.component.d.ts.map +1 -0
- package/lib/pages/configurations/configurations-page.service.d.ts +78 -0
- package/lib/pages/configurations/configurations-page.service.d.ts.map +1 -0
- package/lib/pages/edge-routers/edge-routers-page.component.d.ts +38 -0
- package/lib/pages/edge-routers/edge-routers-page.component.d.ts.map +1 -0
- package/lib/pages/edge-routers/edge-routers-page.service.d.ts +47 -0
- package/lib/pages/edge-routers/edge-routers-page.service.d.ts.map +1 -0
- package/lib/pages/identities/identities-page.component.d.ts +44 -0
- package/lib/pages/identities/identities-page.component.d.ts.map +1 -0
- package/lib/pages/identities/identities-page.service.d.ts +54 -0
- package/lib/pages/identities/identities-page.service.d.ts.map +1 -0
- package/lib/pages/service-policies/service-policies-page.component.d.ts +36 -0
- package/lib/pages/service-policies/service-policies-page.component.d.ts.map +1 -0
- package/lib/pages/service-policies/service-policies-page.service.d.ts +63 -0
- package/lib/pages/service-policies/service-policies-page.service.d.ts.map +1 -0
- package/lib/pages/services/services-page.component.d.ts +37 -0
- package/lib/pages/services/services-page.component.d.ts.map +1 -0
- package/lib/pages/services/services-page.service.d.ts +46 -0
- package/lib/pages/services/services-page.service.d.ts.map +1 -0
- package/lib/safe.pipe.d.ts +11 -0
- package/lib/safe.pipe.d.ts.map +1 -0
- package/lib/services/console-events.service.d.ts +12 -0
- package/lib/services/console-events.service.d.ts.map +1 -0
- package/lib/services/csv-download.service.d.ts +11 -0
- package/lib/services/csv-download.service.d.ts.map +1 -0
- package/lib/services/deactivate-guard.service.d.ts +14 -0
- package/lib/services/deactivate-guard.service.d.ts.map +1 -0
- package/lib/services/login-service.class.d.ts +22 -0
- package/lib/services/login-service.class.d.ts.map +1 -0
- package/lib/services/node-data.service.d.ts +32 -0
- package/lib/services/node-data.service.d.ts.map +1 -0
- package/lib/services/noop-login.service.d.ts +23 -0
- package/lib/services/noop-login.service.d.ts.map +1 -0
- package/lib/services/schema.service.d.ts +63 -0
- package/lib/services/schema.service.d.ts.map +1 -0
- package/lib/services/settings-service.class.d.ts +35 -0
- package/lib/services/settings-service.class.d.ts.map +1 -0
- package/lib/services/settings.service.d.ts +18 -0
- package/lib/services/settings.service.d.ts.map +1 -0
- package/lib/services/tab-name.service.d.ts +20 -0
- package/lib/services/tab-name.service.d.ts.map +1 -0
- package/lib/services/validation.service.d.ts +13 -0
- package/lib/services/validation.service.d.ts.map +1 -0
- package/lib/services/ziti-controller-data.service.d.ts +32 -0
- package/lib/services/ziti-controller-data.service.d.ts.map +1 -0
- package/lib/services/ziti-data.service.d.ts +40 -0
- package/lib/services/ziti-data.service.d.ts.map +1 -0
- package/lib/services/ziti-domain-controller.service.d.ts +13 -0
- package/lib/services/ziti-domain-controller.service.d.ts.map +1 -0
- package/lib/shared/list-page-component.class.d.ts +52 -0
- package/lib/shared/list-page-component.class.d.ts.map +1 -0
- package/lib/shared/list-page-service.class.d.ts +47 -0
- package/lib/shared/list-page-service.class.d.ts.map +1 -0
- package/lib/version.d.ts +4 -0
- package/lib/version.d.ts.map +1 -0
- package/lib/zac-routing.module.d.ts +8 -0
- package/lib/zac-routing.module.d.ts.map +1 -0
- package/lib/ziti-console-lib.module.d.ts +85 -0
- package/lib/ziti-console-lib.module.d.ts.map +1 -0
- package/lib/ziti-console.constants.d.ts +4 -0
- package/lib/ziti-console.constants.d.ts.map +1 -0
- package/openziti-ziti-console-lib.d.ts.map +1 -0
- package/package.json +48 -0
- package/public-api.d.ts +68 -0
- package/public-api.d.ts.map +1 -0
|
@@ -0,0 +1,457 @@
|
|
|
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 { Injectable, Inject } from "@angular/core";
|
|
17
|
+
import { cloneDeep, isEmpty } from 'lodash';
|
|
18
|
+
import { ListPageServiceClass } from "../../shared/list-page-service.class";
|
|
19
|
+
import { TableColumnDefaultComponent } from "../../features/data-table/column-headers/table-column-default/table-column-default.component";
|
|
20
|
+
import { SETTINGS_SERVICE } from "../../services/settings.service";
|
|
21
|
+
import { ZITI_DATA_SERVICE } from "../../services/ziti-data.service";
|
|
22
|
+
import { Service } from "../../models/service";
|
|
23
|
+
import { unset } from "lodash";
|
|
24
|
+
import { SHAREDZ_EXTENSION } from "../../features/extendable/extensions-noop.service";
|
|
25
|
+
import * as i0 from "@angular/core";
|
|
26
|
+
import * as i1 from "../../features/data-table/data-table-filter.service";
|
|
27
|
+
import * as i2 from "../../services/csv-download.service";
|
|
28
|
+
import * as i3 from "../../features/messaging/growler.service";
|
|
29
|
+
import * as i4 from "@angular/material/dialog";
|
|
30
|
+
import * as i5 from "../../services/settings-service.class";
|
|
31
|
+
import * as i6 from "../../services/ziti-data.service";
|
|
32
|
+
const CSV_COLUMNS = [
|
|
33
|
+
{ label: 'Name', path: 'name' },
|
|
34
|
+
{ label: 'Created At', path: 'createdAt' }
|
|
35
|
+
];
|
|
36
|
+
class ServicePoliciesPageService extends ListPageServiceClass {
|
|
37
|
+
constructor(settings, filterService, zitiService, csvDownloadService, growlerService, dialogForm, extService) {
|
|
38
|
+
super(settings, filterService, csvDownloadService, extService);
|
|
39
|
+
this.zitiService = zitiService;
|
|
40
|
+
this.csvDownloadService = csvDownloadService;
|
|
41
|
+
this.growlerService = growlerService;
|
|
42
|
+
this.dialogForm = dialogForm;
|
|
43
|
+
this.extService = extService;
|
|
44
|
+
this.paging = this.DEFAULT_PAGING;
|
|
45
|
+
this.modalType = 'service-policy';
|
|
46
|
+
this.serviceType = '';
|
|
47
|
+
this.selectedServicePolicy = new Service();
|
|
48
|
+
this.serviceRoleAttributes = [];
|
|
49
|
+
this.serviceNamedAttributes = [];
|
|
50
|
+
this.serviceNamedAttributesMap = {};
|
|
51
|
+
this.selectedServiceRoleAttributes = [];
|
|
52
|
+
this.selectedServiceNamedAttributes = [];
|
|
53
|
+
this.identityRoleAttributes = [];
|
|
54
|
+
this.identityNamedAttributes = [];
|
|
55
|
+
this.identityNamedAttributesMap = {};
|
|
56
|
+
this.selectedIdentityRoleAttributes = [];
|
|
57
|
+
this.selectedIdentityNamedAttributes = [];
|
|
58
|
+
this.postureRoleAttributes = [];
|
|
59
|
+
this.postureNamedAttributes = [];
|
|
60
|
+
this.postureNamedAttributesMap = {};
|
|
61
|
+
this.selectedPostureRoleAttributes = [];
|
|
62
|
+
this.selectedPostureNamedAttributes = [];
|
|
63
|
+
this.columnFilters = {
|
|
64
|
+
name: '',
|
|
65
|
+
os: '',
|
|
66
|
+
createdAt: '',
|
|
67
|
+
};
|
|
68
|
+
this.menuItems = [
|
|
69
|
+
{ name: 'Edit', action: 'update' },
|
|
70
|
+
{ name: 'Delete', action: 'delete' },
|
|
71
|
+
];
|
|
72
|
+
this.tableHeaderActions = [
|
|
73
|
+
{ name: 'Download All', action: 'download-all' },
|
|
74
|
+
{ name: 'Download Selected', action: 'download-selected' },
|
|
75
|
+
];
|
|
76
|
+
this.resourceType = 'service-policies';
|
|
77
|
+
this.validate = (formData) => {
|
|
78
|
+
return Promise.resolve({ passed: true });
|
|
79
|
+
};
|
|
80
|
+
this.filterService.filtersChanged.subscribe(filters => {
|
|
81
|
+
let serviceFilter, identityFilter, postureFilter;
|
|
82
|
+
filters.forEach((filter) => {
|
|
83
|
+
switch (filter.columnId) {
|
|
84
|
+
case 'serviceRoles':
|
|
85
|
+
serviceFilter = true;
|
|
86
|
+
break;
|
|
87
|
+
case 'identityRoles':
|
|
88
|
+
identityFilter = true;
|
|
89
|
+
break;
|
|
90
|
+
case 'postureRoles':
|
|
91
|
+
postureFilter = true;
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
if (!serviceFilter) {
|
|
96
|
+
this.selectedServiceRoleAttributes = [];
|
|
97
|
+
this.selectedServiceNamedAttributes = [];
|
|
98
|
+
}
|
|
99
|
+
if (!identityFilter) {
|
|
100
|
+
this.selectedIdentityRoleAttributes = [];
|
|
101
|
+
this.selectedIdentityNamedAttributes = [];
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
initTableColumns() {
|
|
106
|
+
const createdAtHeaderComponentParams = {
|
|
107
|
+
filterType: 'DATETIME',
|
|
108
|
+
};
|
|
109
|
+
const self = this;
|
|
110
|
+
const serviceRolesHeaderComponentParams = {
|
|
111
|
+
filterType: 'ATTRIBUTE',
|
|
112
|
+
enableSorting: true,
|
|
113
|
+
getRoleAttributes: () => {
|
|
114
|
+
return self.serviceRoleAttributes;
|
|
115
|
+
},
|
|
116
|
+
getNamedAttributes: () => {
|
|
117
|
+
return self.serviceNamedAttributes;
|
|
118
|
+
},
|
|
119
|
+
getSelectedRoleAttributes: () => {
|
|
120
|
+
return self.selectedServiceRoleAttributes;
|
|
121
|
+
},
|
|
122
|
+
getSelectedNamedAttributes: () => {
|
|
123
|
+
return self.selectedServiceNamedAttributes;
|
|
124
|
+
},
|
|
125
|
+
setSelectedRoleAttributes: (attributes) => {
|
|
126
|
+
self.selectedServiceRoleAttributes = attributes;
|
|
127
|
+
},
|
|
128
|
+
setSelectedNamedAttributes: (attributes) => {
|
|
129
|
+
self.selectedServiceNamedAttributes = attributes;
|
|
130
|
+
},
|
|
131
|
+
getNamedAttributesMap: () => {
|
|
132
|
+
return self.serviceNamedAttributesMap;
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
const identityRolesHeaderComponentParams = {
|
|
136
|
+
filterType: 'ATTRIBUTE',
|
|
137
|
+
enableSorting: true,
|
|
138
|
+
getRoleAttributes: () => {
|
|
139
|
+
return self.identityRoleAttributes;
|
|
140
|
+
},
|
|
141
|
+
getNamedAttributes: () => {
|
|
142
|
+
return self.identityNamedAttributes;
|
|
143
|
+
},
|
|
144
|
+
getSelectedRoleAttributes: () => {
|
|
145
|
+
return self.selectedIdentityRoleAttributes;
|
|
146
|
+
},
|
|
147
|
+
getSelectedNamedAttributes: () => {
|
|
148
|
+
return self.selectedIdentityNamedAttributes;
|
|
149
|
+
},
|
|
150
|
+
setSelectedRoleAttributes: (attributes) => {
|
|
151
|
+
self.selectedIdentityRoleAttributes = attributes;
|
|
152
|
+
},
|
|
153
|
+
setSelectedNamedAttributes: (attributes) => {
|
|
154
|
+
self.selectedIdentityNamedAttributes = attributes;
|
|
155
|
+
},
|
|
156
|
+
getNamedAttributesMap: () => {
|
|
157
|
+
return self.identityNamedAttributesMap;
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
const postureRolesHeaderComponentParams = {
|
|
161
|
+
filterType: 'ATTRIBUTE',
|
|
162
|
+
enableSorting: true,
|
|
163
|
+
getRoleAttributes: () => {
|
|
164
|
+
return self.postureRoleAttributes;
|
|
165
|
+
},
|
|
166
|
+
getNamedAttributes: () => {
|
|
167
|
+
return self.postureNamedAttributes;
|
|
168
|
+
},
|
|
169
|
+
getSelectedRoleAttributes: () => {
|
|
170
|
+
return self.selectedPostureRoleAttributes;
|
|
171
|
+
},
|
|
172
|
+
getSelectedNamedAttributes: () => {
|
|
173
|
+
return self.selectedPostureNamedAttributes;
|
|
174
|
+
},
|
|
175
|
+
setSelectedRoleAttributes: (attributes) => {
|
|
176
|
+
self.selectedPostureRoleAttributes = attributes;
|
|
177
|
+
},
|
|
178
|
+
setSelectedNamedAttributes: (attributes) => {
|
|
179
|
+
self.selectedPostureNamedAttributes = attributes;
|
|
180
|
+
},
|
|
181
|
+
getNamedAttributesMap: () => {
|
|
182
|
+
return self.postureNamedAttributesMap;
|
|
183
|
+
}
|
|
184
|
+
};
|
|
185
|
+
const semanticHeaderComponentParams = {
|
|
186
|
+
filterType: 'SELECT',
|
|
187
|
+
enableSorting: true,
|
|
188
|
+
filterOptions: [
|
|
189
|
+
{ label: 'Any Of', value: 'AnyOf', columnId: 'semantic' },
|
|
190
|
+
{ label: 'All Of', value: 'AllOf', columnId: 'semantic' },
|
|
191
|
+
],
|
|
192
|
+
getFilterOptions: () => {
|
|
193
|
+
return semanticHeaderComponentParams.filterOptions;
|
|
194
|
+
}
|
|
195
|
+
};
|
|
196
|
+
const typeHeaderComponentParams = {
|
|
197
|
+
filterType: 'SELECT',
|
|
198
|
+
enableSorting: true,
|
|
199
|
+
filterOptions: [
|
|
200
|
+
{ label: 'Dial', value: 'Dial', columnId: 'type' },
|
|
201
|
+
{ label: 'Bind', value: 'Bind', columnId: 'type' },
|
|
202
|
+
],
|
|
203
|
+
getFilterOptions: () => {
|
|
204
|
+
return typeHeaderComponentParams.filterOptions;
|
|
205
|
+
}
|
|
206
|
+
};
|
|
207
|
+
return [
|
|
208
|
+
{
|
|
209
|
+
colId: 'name',
|
|
210
|
+
field: 'name',
|
|
211
|
+
headerName: 'Name',
|
|
212
|
+
headerComponent: TableColumnDefaultComponent,
|
|
213
|
+
headerComponentParams: this.headerComponentParams,
|
|
214
|
+
onCellClicked: (data) => {
|
|
215
|
+
if (this.hasSelectedText()) {
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
this.serviceType = 'advanced';
|
|
219
|
+
this.openUpdate(data.data);
|
|
220
|
+
},
|
|
221
|
+
resizable: true,
|
|
222
|
+
cellRenderer: this.nameColumnRenderer,
|
|
223
|
+
cellClass: 'nf-cell-vert-align tCol',
|
|
224
|
+
sortable: true,
|
|
225
|
+
filter: true,
|
|
226
|
+
sortColumn: this.sort.bind(this),
|
|
227
|
+
sortDir: 'asc',
|
|
228
|
+
width: 300,
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
colId: 'serviceRoles',
|
|
232
|
+
field: 'serviceRoles',
|
|
233
|
+
headerName: 'Service Attributes',
|
|
234
|
+
headerComponent: TableColumnDefaultComponent,
|
|
235
|
+
headerComponentParams: serviceRolesHeaderComponentParams,
|
|
236
|
+
onCellClicked: (data) => {
|
|
237
|
+
if (this.hasSelectedText()) {
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
240
|
+
this.serviceType = '';
|
|
241
|
+
this.openUpdate(data.data);
|
|
242
|
+
},
|
|
243
|
+
resizable: true,
|
|
244
|
+
cellRenderer: this.rolesRenderer,
|
|
245
|
+
cellClass: 'nf-cell-vert-align tCol',
|
|
246
|
+
sortable: false,
|
|
247
|
+
filter: false,
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
colId: 'identityRoles',
|
|
251
|
+
field: 'identityRoles',
|
|
252
|
+
headerName: 'Identity Attributes',
|
|
253
|
+
headerComponent: TableColumnDefaultComponent,
|
|
254
|
+
headerComponentParams: identityRolesHeaderComponentParams,
|
|
255
|
+
onCellClicked: (data) => {
|
|
256
|
+
if (this.hasSelectedText()) {
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
259
|
+
this.serviceType = '';
|
|
260
|
+
this.openUpdate(data.data);
|
|
261
|
+
},
|
|
262
|
+
resizable: true,
|
|
263
|
+
cellRenderer: this.rolesRenderer,
|
|
264
|
+
cellClass: 'nf-cell-vert-align tCol',
|
|
265
|
+
sortable: false,
|
|
266
|
+
filter: false,
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
colId: 'postureCheckRoles',
|
|
270
|
+
field: 'postureCheckRoles',
|
|
271
|
+
headerName: 'Posture Check Attributes',
|
|
272
|
+
headerComponent: TableColumnDefaultComponent,
|
|
273
|
+
headerComponentParams: postureRolesHeaderComponentParams,
|
|
274
|
+
onCellClicked: (data) => {
|
|
275
|
+
if (this.hasSelectedText()) {
|
|
276
|
+
return;
|
|
277
|
+
}
|
|
278
|
+
this.serviceType = '';
|
|
279
|
+
this.openUpdate(data.data);
|
|
280
|
+
},
|
|
281
|
+
resizable: true,
|
|
282
|
+
cellRenderer: this.rolesRenderer,
|
|
283
|
+
cellClass: 'nf-cell-vert-align tCol',
|
|
284
|
+
sortable: false,
|
|
285
|
+
filter: false,
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
colId: 'semantic',
|
|
289
|
+
field: 'semantic',
|
|
290
|
+
headerName: 'Semantic',
|
|
291
|
+
headerComponent: TableColumnDefaultComponent,
|
|
292
|
+
headerComponentParams: semanticHeaderComponentParams,
|
|
293
|
+
onCellClicked: (data) => {
|
|
294
|
+
if (this.hasSelectedText()) {
|
|
295
|
+
return;
|
|
296
|
+
}
|
|
297
|
+
this.serviceType = '';
|
|
298
|
+
this.openUpdate(data.data);
|
|
299
|
+
},
|
|
300
|
+
resizable: true,
|
|
301
|
+
cellRenderer: (row) => {
|
|
302
|
+
return row.data?.semantic === 'AnyOf' ? 'Any Of' : 'All Of';
|
|
303
|
+
},
|
|
304
|
+
cellClass: 'nf-cell-vert-align tCol',
|
|
305
|
+
width: 100,
|
|
306
|
+
},
|
|
307
|
+
{
|
|
308
|
+
colId: 'type',
|
|
309
|
+
field: 'type',
|
|
310
|
+
headerName: 'Type',
|
|
311
|
+
headerComponent: TableColumnDefaultComponent,
|
|
312
|
+
//headerComponentParams: typeHeaderComponentParams,
|
|
313
|
+
onCellClicked: (data) => {
|
|
314
|
+
if (this.hasSelectedText()) {
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
317
|
+
this.serviceType = '';
|
|
318
|
+
this.openUpdate(data.data);
|
|
319
|
+
},
|
|
320
|
+
resizable: true,
|
|
321
|
+
cellRenderer: (row) => {
|
|
322
|
+
return row.data?.type;
|
|
323
|
+
},
|
|
324
|
+
cellClass: 'nf-cell-vert-align tCol',
|
|
325
|
+
width: 100,
|
|
326
|
+
},
|
|
327
|
+
{
|
|
328
|
+
colId: 'createdAt',
|
|
329
|
+
field: 'createdAt',
|
|
330
|
+
headerName: 'Created At',
|
|
331
|
+
headerComponent: TableColumnDefaultComponent,
|
|
332
|
+
headerComponentParams: createdAtHeaderComponentParams,
|
|
333
|
+
valueFormatter: this.createdAtFormatter,
|
|
334
|
+
resizable: true,
|
|
335
|
+
sortable: true,
|
|
336
|
+
sortColumn: this.sort.bind(this),
|
|
337
|
+
cellClass: 'nf-cell-vert-align tCol',
|
|
338
|
+
onCellClicked: (data) => {
|
|
339
|
+
if (this.hasSelectedText()) {
|
|
340
|
+
return;
|
|
341
|
+
}
|
|
342
|
+
this.serviceType = '';
|
|
343
|
+
this.openUpdate(data.data);
|
|
344
|
+
},
|
|
345
|
+
hide: true
|
|
346
|
+
}
|
|
347
|
+
];
|
|
348
|
+
}
|
|
349
|
+
getData(filters, sort, page) {
|
|
350
|
+
// we can customize filters or sorting here before moving on...
|
|
351
|
+
this.paging.page = page || this.paging.page;
|
|
352
|
+
return super.getTableData('service-policies', this.paging, filters, sort)
|
|
353
|
+
.then((results) => {
|
|
354
|
+
return this.processData(results);
|
|
355
|
+
});
|
|
356
|
+
}
|
|
357
|
+
processData(results) {
|
|
358
|
+
if (!isEmpty(results?.data)) {
|
|
359
|
+
//pre-process data before rendering
|
|
360
|
+
results.data = this.addActionsPerRow(results);
|
|
361
|
+
}
|
|
362
|
+
if (!isEmpty(results?.meta?.pagination)) {
|
|
363
|
+
this.totalCount = results.meta?.pagination.totalCount;
|
|
364
|
+
}
|
|
365
|
+
return results;
|
|
366
|
+
}
|
|
367
|
+
addActionsPerRow(results) {
|
|
368
|
+
return results.data.map((row) => {
|
|
369
|
+
row.actionList = ['update', 'delete'];
|
|
370
|
+
return row;
|
|
371
|
+
});
|
|
372
|
+
}
|
|
373
|
+
getServiceRoleAttributes() {
|
|
374
|
+
return this.zitiService.get('service-role-attributes', {}, []).then((result) => {
|
|
375
|
+
this.serviceRoleAttributes = result.data;
|
|
376
|
+
return result;
|
|
377
|
+
});
|
|
378
|
+
}
|
|
379
|
+
getIdentityNamedAttributes() {
|
|
380
|
+
return this.zitiService.get('identities', {}, []).then((result) => {
|
|
381
|
+
const namedAttributes = result.data.map((identity) => {
|
|
382
|
+
this.identityNamedAttributesMap[identity.name] = identity.id;
|
|
383
|
+
return identity.name;
|
|
384
|
+
});
|
|
385
|
+
this.identityNamedAttributes = namedAttributes;
|
|
386
|
+
return namedAttributes;
|
|
387
|
+
});
|
|
388
|
+
}
|
|
389
|
+
getServiceNamedAttributes() {
|
|
390
|
+
return this.zitiService.get('services', {}, []).then((result) => {
|
|
391
|
+
const namedAttributes = result.data.map((service) => {
|
|
392
|
+
this.serviceNamedAttributesMap[service.name] = service.id;
|
|
393
|
+
return service.name;
|
|
394
|
+
});
|
|
395
|
+
this.serviceNamedAttributes = namedAttributes;
|
|
396
|
+
return namedAttributes;
|
|
397
|
+
});
|
|
398
|
+
}
|
|
399
|
+
getIdentityRoleAttributes() {
|
|
400
|
+
return this.zitiService.get('identity-role-attributes', {}, []).then((result) => {
|
|
401
|
+
this.identityRoleAttributes = result.data;
|
|
402
|
+
return result;
|
|
403
|
+
});
|
|
404
|
+
}
|
|
405
|
+
getPostureNamedAttributes() {
|
|
406
|
+
return this.zitiService.get('posture-checks', {}, []).then((result) => {
|
|
407
|
+
const namedAttributes = result.data.map((postureCheck) => {
|
|
408
|
+
this.postureNamedAttributesMap[postureCheck.name] = postureCheck.id;
|
|
409
|
+
return postureCheck.name;
|
|
410
|
+
});
|
|
411
|
+
this.postureNamedAttributes = namedAttributes;
|
|
412
|
+
return namedAttributes;
|
|
413
|
+
});
|
|
414
|
+
}
|
|
415
|
+
downloadAllItems() {
|
|
416
|
+
const paging = cloneDeep(this.paging);
|
|
417
|
+
paging.total = this.totalCount;
|
|
418
|
+
super.getTableData('service-policies', paging, undefined, undefined)
|
|
419
|
+
.then((results) => {
|
|
420
|
+
return this.downloadItems(results?.data);
|
|
421
|
+
});
|
|
422
|
+
}
|
|
423
|
+
downloadItems(selectedItems) {
|
|
424
|
+
this.csvDownloadService.download('service-policies', selectedItems, CSV_COLUMNS, false, false, undefined, false);
|
|
425
|
+
}
|
|
426
|
+
openUpdate(item) {
|
|
427
|
+
this.modalType = 'service-policies';
|
|
428
|
+
if (item) {
|
|
429
|
+
this.selectedServicePolicy = item;
|
|
430
|
+
this.selectedServicePolicy.badges = [];
|
|
431
|
+
unset(this.selectedServicePolicy, '_links');
|
|
432
|
+
}
|
|
433
|
+
else {
|
|
434
|
+
this.selectedServicePolicy = new Service();
|
|
435
|
+
}
|
|
436
|
+
this.sideModalOpen = true;
|
|
437
|
+
}
|
|
438
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ServicePoliciesPageService, deps: [{ token: SETTINGS_SERVICE }, { token: i1.DataTableFilterService }, { token: ZITI_DATA_SERVICE }, { token: i2.CsvDownloadService }, { token: i3.GrowlerService }, { token: i4.MatDialog }, { token: SHAREDZ_EXTENSION }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
439
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ServicePoliciesPageService, providedIn: 'root' }); }
|
|
440
|
+
}
|
|
441
|
+
export { ServicePoliciesPageService };
|
|
442
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ServicePoliciesPageService, decorators: [{
|
|
443
|
+
type: Injectable,
|
|
444
|
+
args: [{
|
|
445
|
+
providedIn: 'root'
|
|
446
|
+
}]
|
|
447
|
+
}], ctorParameters: function () { return [{ type: i5.SettingsServiceClass, decorators: [{
|
|
448
|
+
type: Inject,
|
|
449
|
+
args: [SETTINGS_SERVICE]
|
|
450
|
+
}] }, { type: i1.DataTableFilterService }, { type: i6.ZitiDataService, decorators: [{
|
|
451
|
+
type: Inject,
|
|
452
|
+
args: [ZITI_DATA_SERVICE]
|
|
453
|
+
}] }, { type: i2.CsvDownloadService }, { type: i3.GrowlerService }, { type: i4.MatDialog }, { type: undefined, decorators: [{
|
|
454
|
+
type: Inject,
|
|
455
|
+
args: [SHAREDZ_EXTENSION]
|
|
456
|
+
}] }]; } });
|
|
457
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1wb2xpY2llcy1wYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96aXRpLWNvbnNvbGUtbGliL3NyYy9saWIvcGFnZXMvc2VydmljZS1wb2xpY2llcy9zZXJ2aWNlLXBvbGljaWVzLXBhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7RUFjRTtBQUVGLE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBQyxTQUFTLEVBQUUsT0FBTyxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBRzFDLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQzFFLE9BQU8sRUFDSCwyQkFBMkIsRUFDOUIsTUFBTSw4RkFBOEYsQ0FBQztBQUV0RyxPQUFPLEVBQUMsZ0JBQWdCLEVBQWtCLE1BQU0saUNBQWlDLENBQUM7QUFDbEYsT0FBTyxFQUFDLGlCQUFpQixFQUFrQixNQUFNLGtDQUFrQyxDQUFDO0FBRXBGLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM3QyxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBSzdCLE9BQU8sRUFBbUIsaUJBQWlCLEVBQUMsTUFBTSxtREFBbUQsQ0FBQzs7Ozs7Ozs7QUFFdEcsTUFBTSxXQUFXLEdBQUc7SUFDaEIsRUFBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUM7SUFDN0IsRUFBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUM7Q0FDM0MsQ0FBQztBQUVGLE1BR2EsMEJBQTJCLFNBQVEsb0JBQW9CO0lBMkNoRSxZQUM4QixRQUE4QixFQUN4RCxhQUFxQyxFQUNGLFdBQTRCLEVBQ3RELGtCQUFzQyxFQUN2QyxjQUE4QixFQUM5QixVQUFx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UUFDcEMsSUFBSSxJQUFJLEVBQUU7WUFDTixJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1lBQ3ZDLEtBQUssQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDL0M7YUFBTTtZQUNILElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1NBQzlDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDOUIsQ0FBQzsrR0FyYlEsMEJBQTBCLGtCQTRDdkIsZ0JBQWdCLG1EQUVoQixpQkFBaUIsc0dBSWpCLGlCQUFpQjttSEFsRHBCLDBCQUEwQixjQUZ2QixNQUFNOztTQUVULDBCQUEwQjs0RkFBMUIsMEJBQTBCO2tCQUh0QyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBNkNRLE1BQU07MkJBQUMsZ0JBQWdCOzswQkFFdkIsTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUl4QixNQUFNOzJCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gICAgQ29weXJpZ2h0IE5ldEZvdW5kcnkgSW5jLlxuXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cbiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiovXG5cbmltcG9ydCB7SW5qZWN0YWJsZSwgSW5qZWN0fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtjbG9uZURlZXAsIGlzRW1wdHl9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQge0RhdGFUYWJsZUZpbHRlclNlcnZpY2UsIEZpbHRlck9ian0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL2RhdGEtdGFibGUvZGF0YS10YWJsZS1maWx0ZXIuc2VydmljZVwiO1xuaW1wb3J0IHtMaXN0UGFnZVNlcnZpY2VDbGFzc30gZnJvbSBcIi4uLy4uL3NoYXJlZC9saXN0LXBhZ2Utc2VydmljZS5jbGFzc1wiO1xuaW1wb3J0IHtcbiAgICBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnRcbn0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL2RhdGEtdGFibGUvY29sdW1uLWhlYWRlcnMvdGFibGUtY29sdW1uLWRlZmF1bHQvdGFibGUtY29sdW1uLWRlZmF1bHQuY29tcG9uZW50XCI7XG5pbXBvcnQge0NhbGxiYWNrUmVzdWx0c30gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL2xpc3QtcGFnZS1mZWF0dXJlcy9saXN0LXBhZ2UtZm9ybS9saXN0LXBhZ2UtZm9ybS5jb21wb25lbnRcIjtcbmltcG9ydCB7U0VUVElOR1NfU0VSVklDRSwgU2V0dGluZ3NTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvc2V0dGluZ3Muc2VydmljZVwiO1xuaW1wb3J0IHtaSVRJX0RBVEFfU0VSVklDRSwgWml0aURhdGFTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZXMveml0aS1kYXRhLnNlcnZpY2VcIjtcbmltcG9ydCB7Q3N2RG93bmxvYWRTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvY3N2LWRvd25sb2FkLnNlcnZpY2VcIjtcbmltcG9ydCB7U2VydmljZX0gZnJvbSBcIi4uLy4uL21vZGVscy9zZXJ2aWNlXCI7XG5pbXBvcnQge3Vuc2V0fSBmcm9tIFwibG9kYXNoXCI7XG5pbXBvcnQge0dyb3dsZXJNb2RlbH0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL21lc3NhZ2luZy9ncm93bGVyLm1vZGVsXCI7XG5pbXBvcnQge0dyb3dsZXJTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvbWVzc2FnaW5nL2dyb3dsZXIuc2VydmljZVwiO1xuaW1wb3J0IHtNYXREaWFsb2d9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcbmltcG9ydCB7U2V0dGluZ3NTZXJ2aWNlQ2xhc3N9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9zZXR0aW5ncy1zZXJ2aWNlLmNsYXNzXCI7XG5pbXBvcnQge0V4dGVuc2lvblNlcnZpY2UsIFNIQVJFRFpfRVhURU5TSU9OfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZXh0ZW5kYWJsZS9leHRlbnNpb25zLW5vb3Auc2VydmljZVwiO1xuXG5jb25zdCBDU1ZfQ09MVU1OUyA9IFtcbiAgICB7bGFiZWw6ICdOYW1lJywgcGF0aDogJ25hbWUnfSxcbiAgICB7bGFiZWw6ICdDcmVhdGVkIEF0JywgcGF0aDogJ2NyZWF0ZWRBdCd9XG5dO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFNlcnZpY2VQb2xpY2llc1BhZ2VTZXJ2aWNlIGV4dGVuZHMgTGlzdFBhZ2VTZXJ2aWNlQ2xhc3Mge1xuXG4gICAgcHJpdmF0ZSBwYWdpbmcgPSB0aGlzLkRFRkFVTFRfUEFHSU5HO1xuICAgIHB1YmxpYyBtb2RhbFR5cGUgPSAnc2VydmljZS1wb2xpY3knO1xuXG4gICAgc2VydmljZVR5cGUgPSAnJztcbiAgICBzZWxlY3RlZFNlcnZpY2VQb2xpY3k6IGFueSA9IG5ldyBTZXJ2aWNlKCk7XG5cbiAgICBzZXJ2aWNlUm9sZUF0dHJpYnV0ZXMgPSBbXTtcbiAgICBzZXJ2aWNlTmFtZWRBdHRyaWJ1dGVzID0gW107XG4gICAgc2VydmljZU5hbWVkQXR0cmlidXRlc01hcCA9IHt9O1xuICAgIHNlbGVjdGVkU2VydmljZVJvbGVBdHRyaWJ1dGVzID0gW107XG4gICAgc2VsZWN0ZWRTZXJ2aWNlTmFtZWRBdHRyaWJ1dGVzID0gW107XG5cbiAgICBpZGVudGl0eVJvbGVBdHRyaWJ1dGVzID0gW107XG4gICAgaWRlbnRpdHlOYW1lZEF0dHJpYnV0ZXMgPSBbXTtcbiAgICBpZGVudGl0eU5hbWVkQXR0cmlidXRlc01hcCA9IHt9O1xuICAgIHNlbGVjdGVkSWRlbnRpdHlSb2xlQXR0cmlidXRlcyA9IFtdO1xuICAgIHNlbGVjdGVkSWRlbnRpdHlOYW1lZEF0dHJpYnV0ZXMgPSBbXTtcblxuICAgIHBvc3R1cmVSb2xlQXR0cmlidXRlcyA9IFtdO1xuICAgIHBvc3R1cmVOYW1lZEF0dHJpYnV0ZXMgPSBbXTtcbiAgICBwb3N0dXJlTmFtZWRBdHRyaWJ1dGVzTWFwID0ge307XG4gICAgc2VsZWN0ZWRQb3N0dXJlUm9sZUF0dHJpYnV0ZXMgPSBbXTtcbiAgICBzZWxlY3RlZFBvc3R1cmVOYW1lZEF0dHJpYnV0ZXMgPSBbXTtcblxuICAgIGNvbHVtbkZpbHRlcnM6IGFueSA9IHtcbiAgICAgICAgbmFtZTogJycsXG4gICAgICAgIG9zOiAnJyxcbiAgICAgICAgY3JlYXRlZEF0OiAnJyxcbiAgICB9O1xuXG4gICAgb3ZlcnJpZGUgbWVudUl0ZW1zID0gW1xuICAgICAgICB7bmFtZTogJ0VkaXQnLCBhY3Rpb246ICd1cGRhdGUnfSxcbiAgICAgICAge25hbWU6ICdEZWxldGUnLCBhY3Rpb246ICdkZWxldGUnfSxcbiAgICBdXG5cbiAgICBvdmVycmlkZSB0YWJsZUhlYWRlckFjdGlvbnMgPSBbXG4gICAgICAgIHtuYW1lOiAnRG93bmxvYWQgQWxsJywgYWN0aW9uOiAnZG93bmxvYWQtYWxsJ30sXG4gICAgICAgIHtuYW1lOiAnRG93bmxvYWQgU2VsZWN0ZWQnLCBhY3Rpb246ICdkb3dubG9hZC1zZWxlY3RlZCd9LFxuICAgIF1cblxuICAgIHJlc291cmNlVHlwZSA9ICdzZXJ2aWNlLXBvbGljaWVzJztcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChTRVRUSU5HU19TRVJWSUNFKSBzZXR0aW5nczogU2V0dGluZ3NTZXJ2aWNlQ2xhc3MsXG4gICAgICAgIGZpbHRlclNlcnZpY2U6IERhdGFUYWJsZUZpbHRlclNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoWklUSV9EQVRBX1NFUlZJQ0UpIHByaXZhdGUgeml0aVNlcnZpY2U6IFppdGlEYXRhU2VydmljZSxcbiAgICAgICAgb3ZlcnJpZGUgY3N2RG93bmxvYWRTZXJ2aWNlOiBDc3ZEb3dubG9hZFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZ3Jvd2xlclNlcnZpY2U6IEdyb3dsZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGRpYWxvZ0Zvcm06IE1hdERpYWxvZyxcbiAgICAgICAgQEluamVjdChTSEFSRURaX0VYVEVOU0lPTikgcHJpdmF0ZSBleHRTZXJ2aWNlOiBFeHRlbnNpb25TZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKHNldHRpbmdzLCBmaWx0ZXJTZXJ2aWNlLCBjc3ZEb3dubG9hZFNlcnZpY2UsIGV4dFNlcnZpY2UpO1xuICAgICAgICB0aGlzLmZpbHRlclNlcnZpY2UuZmlsdGVyc0NoYW5nZWQuc3Vic2NyaWJlKGZpbHRlcnMgPT4ge1xuICAgICAgICAgICAgbGV0IHNlcnZpY2VGaWx0ZXIsIGlkZW50aXR5RmlsdGVyLCBwb3N0dXJlRmlsdGVyO1xuICAgICAgICAgICAgZmlsdGVycy5mb3JFYWNoKChmaWx0ZXIpID0+IHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGZpbHRlci5jb2x1bW5JZCkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdzZXJ2aWNlUm9sZXMnOlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VydmljZUZpbHRlciA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnaWRlbnRpdHlSb2xlcyc6XG4gICAgICAgICAgICAgICAgICAgICAgICBpZGVudGl0eUZpbHRlciA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAncG9zdHVyZVJvbGVzJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc3R1cmVGaWx0ZXIgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoIXNlcnZpY2VGaWx0ZXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkU2VydmljZVJvbGVBdHRyaWJ1dGVzID0gW107XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFNlcnZpY2VOYW1lZEF0dHJpYnV0ZXMgPSBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghaWRlbnRpdHlGaWx0ZXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSWRlbnRpdHlSb2xlQXR0cmlidXRlcyA9IFtdO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJZGVudGl0eU5hbWVkQXR0cmlidXRlcyA9IFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB2YWxpZGF0ZSA9IChmb3JtRGF0YSk6IFByb21pc2U8Q2FsbGJhY2tSZXN1bHRzPiA9PiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoeyBwYXNzZWQ6IHRydWV9KTtcbiAgICB9XG5cbiAgICBpbml0VGFibGVDb2x1bW5zKCk6IGFueSB7XG4gICAgICAgIGNvbnN0IGNyZWF0ZWRBdEhlYWRlckNvbXBvbmVudFBhcmFtcyA9IHtcbiAgICAgICAgICAgIGZpbHRlclR5cGU6ICdEQVRFVElNRScsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgICAgICBjb25zdCBzZXJ2aWNlUm9sZXNIZWFkZXJDb21wb25lbnRQYXJhbXMgPSB7XG4gICAgICAgICAgICBmaWx0ZXJUeXBlOiAnQVRUUklCVVRFJyxcbiAgICAgICAgICAgIGVuYWJsZVNvcnRpbmc6IHRydWUsXG4gICAgICAgICAgICBnZXRSb2xlQXR0cmlidXRlczogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnNlcnZpY2VSb2xlQXR0cmlidXRlcztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXROYW1lZEF0dHJpYnV0ZXM6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5zZXJ2aWNlTmFtZWRBdHRyaWJ1dGVzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldFNlbGVjdGVkUm9sZUF0dHJpYnV0ZXM6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5zZWxlY3RlZFNlcnZpY2VSb2xlQXR0cmlidXRlcztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRTZWxlY3RlZE5hbWVkQXR0cmlidXRlczogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnNlbGVjdGVkU2VydmljZU5hbWVkQXR0cmlidXRlcztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXRTZWxlY3RlZFJvbGVBdHRyaWJ1dGVzOiAoYXR0cmlidXRlcykgPT4ge1xuICAgICAgICAgICAgICAgIHNlbGYuc2VsZWN0ZWRTZXJ2aWNlUm9sZUF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldFNlbGVjdGVkTmFtZWRBdHRyaWJ1dGVzOiAoYXR0cmlidXRlcykgPT4ge1xuICAgICAgICAgICAgICAgIHNlbGYuc2VsZWN0ZWRTZXJ2aWNlTmFtZWRBdHRyaWJ1dGVzID0gYXR0cmlidXRlcztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXROYW1lZEF0dHJpYnV0ZXNNYXA6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5zZXJ2aWNlTmFtZWRBdHRyaWJ1dGVzTWFwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBpZGVudGl0eVJvbGVzSGVhZGVyQ29tcG9uZW50UGFyYW1zID0ge1xuICAgICAgICAgICAgZmlsdGVyVHlwZTogJ0FUVFJJQlVURScsXG4gICAgICAgICAgICBlbmFibGVTb3J0aW5nOiB0cnVlLFxuICAgICAgICAgICAgZ2V0Um9sZUF0dHJpYnV0ZXM6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5pZGVudGl0eVJvbGVBdHRyaWJ1dGVzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldE5hbWVkQXR0cmlidXRlczogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmlkZW50aXR5TmFtZWRBdHRyaWJ1dGVzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldFNlbGVjdGVkUm9sZUF0dHJpYnV0ZXM6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5zZWxlY3RlZElkZW50aXR5Um9sZUF0dHJpYnV0ZXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0U2VsZWN0ZWROYW1lZEF0dHJpYnV0ZXM6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5zZWxlY3RlZElkZW50aXR5TmFtZWRBdHRyaWJ1dGVzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldFNlbGVjdGVkUm9sZUF0dHJpYnV0ZXM6IChhdHRyaWJ1dGVzKSA9PiB7XG4gICAgICAgICAgICAgICAgc2VsZi5zZWxlY3RlZElkZW50aXR5Um9sZUF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldFNlbGVjdGVkTmFtZWRBdHRyaWJ1dGVzOiAoYXR0cmlidXRlcykgPT4ge1xuICAgICAgICAgICAgICAgIHNlbGYuc2VsZWN0ZWRJZGVudGl0eU5hbWVkQXR0cmlidXRlcyA9IGF0dHJpYnV0ZXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0TmFtZWRBdHRyaWJ1dGVzTWFwOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuaWRlbnRpdHlOYW1lZEF0dHJpYnV0ZXNNYXA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgcG9zdHVyZVJvbGVzSGVhZGVyQ29tcG9uZW50UGFyYW1zID0ge1xuICAgICAgICAgICAgZmlsdGVyVHlwZTogJ0FUVFJJQlVURScsXG4gICAgICAgICAgICBlbmFibGVTb3J0aW5nOiB0cnVlLFxuICAgICAgICAgICAgZ2V0Um9sZUF0dHJpYnV0ZXM6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5wb3N0dXJlUm9sZUF0dHJpYnV0ZXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0TmFtZWRBdHRyaWJ1dGVzOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYucG9zdHVyZU5hbWVkQXR0cmlidXRlcztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRTZWxlY3RlZFJvbGVBdHRyaWJ1dGVzOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuc2VsZWN0ZWRQb3N0dXJlUm9sZUF0dHJpYnV0ZXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0U2VsZWN0ZWROYW1lZEF0dHJpYnV0ZXM6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5zZWxlY3RlZFBvc3R1cmVOYW1lZEF0dHJpYnV0ZXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0U2VsZWN0ZWRSb2xlQXR0cmlidXRlczogKGF0dHJpYnV0ZXMpID0+IHtcbiAgICAgICAgICAgICAgICBzZWxmLnNlbGVjdGVkUG9zdHVyZVJvbGVBdHRyaWJ1dGVzID0gYXR0cmlidXRlcztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXRTZWxlY3RlZE5hbWVkQXR0cmlidXRlczogKGF0dHJpYnV0ZXMpID0+IHtcbiAgICAgICAgICAgICAgICBzZWxmLnNlbGVjdGVkUG9zdHVyZU5hbWVkQXR0cmlidXRlcyA9IGF0dHJpYnV0ZXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0TmFtZWRBdHRyaWJ1dGVzTWFwOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYucG9zdHVyZU5hbWVkQXR0cmlidXRlc01hcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBzZW1hbnRpY0hlYWRlckNvbXBvbmVudFBhcmFtcyA9IHtcbiAgICAgICAgICAgIGZpbHRlclR5cGU6ICdTRUxFQ1QnLFxuICAgICAgICAgICAgZW5hYmxlU29ydGluZzogdHJ1ZSxcbiAgICAgICAgICAgIGZpbHRlck9wdGlvbnM6IFtcbiAgICAgICAgICAgICAgICB7IGxhYmVsOiAnQW55IE9mJywgdmFsdWU6ICdBbnlPZicsIGNvbHVtbklkOiAnc2VtYW50aWMnfSxcbiAgICAgICAgICAgICAgICB7IGxhYmVsOiAnQWxsIE9mJywgdmFsdWU6ICdBbGxPZicsIGNvbHVtbklkOiAnc2VtYW50aWMnIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgZ2V0RmlsdGVyT3B0aW9uczogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBzZW1hbnRpY0hlYWRlckNvbXBvbmVudFBhcmFtcy5maWx0ZXJPcHRpb25zO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHR5cGVIZWFkZXJDb21wb25lbnRQYXJhbXMgPSB7XG4gICAgICAgICAgICBmaWx0ZXJUeXBlOiAnU0VMRUNUJyxcbiAgICAgICAgICAgIGVuYWJsZVNvcnRpbmc6IHRydWUsXG4gICAgICAgICAgICBmaWx0ZXJPcHRpb25zOiBbXG4gICAgICAgICAgICAgICAgeyBsYWJlbDogJ0RpYWwnLCB2YWx1ZTogJ0RpYWwnLCBjb2x1bW5JZDogJ3R5cGUnIH0sXG4gICAgICAgICAgICAgICAgeyBsYWJlbDogJ0JpbmQnLCB2YWx1ZTogJ0JpbmQnLCBjb2x1bW5JZDogJ3R5cGUnIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgZ2V0RmlsdGVyT3B0aW9uczogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0eXBlSGVhZGVyQ29tcG9uZW50UGFyYW1zLmZpbHRlck9wdGlvbnM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ25hbWUnLFxuICAgICAgICAgICAgICAgIGZpZWxkOiAnbmFtZScsXG4gICAgICAgICAgICAgICAgaGVhZGVyTmFtZTogJ05hbWUnLFxuICAgICAgICAgICAgICAgIGhlYWRlckNvbXBvbmVudDogVGFibGVDb2x1bW5EZWZhdWx0Q29tcG9uZW50LFxuICAgICAgICAgICAgICAgIGhlYWRlckNvbXBvbmVudFBhcmFtczogdGhpcy5oZWFkZXJDb21wb25lbnRQYXJhbXMsXG4gICAgICAgICAgICAgICAgb25DZWxsQ2xpY2tlZDogKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaGFzU2VsZWN0ZWRUZXh0KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2VUeXBlID0gJ2FkdmFuY2VkJztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuVXBkYXRlKGRhdGEuZGF0YSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY2VsbFJlbmRlcmVyOiB0aGlzLm5hbWVDb2x1bW5SZW5kZXJlcixcbiAgICAgICAgICAgICAgICBjZWxsQ2xhc3M6ICduZi1jZWxsLXZlcnQtYWxpZ24gdENvbCcsXG4gICAgICAgICAgICAgICAgc29ydGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgZmlsdGVyOiB0cnVlLFxuICAgICAgICAgICAgICAgIHNvcnRDb2x1bW46IHRoaXMuc29ydC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICAgIHNvcnREaXI6ICdhc2MnLFxuICAgICAgICAgICAgICAgIHdpZHRoOiAzMDAsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbElkOiAnc2VydmljZVJvbGVzJyxcbiAgICAgICAgICAgICAgICBmaWVsZDogJ3NlcnZpY2VSb2xlcycsXG4gICAgICAgICAgICAgICAgaGVhZGVyTmFtZTogJ1NlcnZpY2UgQXR0cmlidXRlcycsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50UGFyYW1zOiBzZXJ2aWNlUm9sZXNIZWFkZXJDb21wb25lbnRQYXJhbXMsXG4gICAgICAgICAgICAgICAgb25DZWxsQ2xpY2tlZDogKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaGFzU2VsZWN0ZWRUZXh0KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2VUeXBlID0gJyc7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlblVwZGF0ZShkYXRhLmRhdGEpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNlbGxSZW5kZXJlcjogdGhpcy5yb2xlc1JlbmRlcmVyLFxuICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ25mLWNlbGwtdmVydC1hbGlnbiB0Q29sJyxcbiAgICAgICAgICAgICAgICBzb3J0YWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgZmlsdGVyOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29sSWQ6ICdpZGVudGl0eVJvbGVzJyxcbiAgICAgICAgICAgICAgICBmaWVsZDogJ2lkZW50aXR5Um9sZXMnLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdJZGVudGl0eSBBdHRyaWJ1dGVzJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnRQYXJhbXM6IGlkZW50aXR5Um9sZXNIZWFkZXJDb21wb25lbnRQYXJhbXMsXG4gICAgICAgICAgICAgICAgb25DZWxsQ2xpY2tlZDogKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaGFzU2VsZWN0ZWRUZXh0KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2VUeXBlID0gJyc7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlblVwZGF0ZShkYXRhLmRhdGEpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNlbGxSZW5kZXJlcjogdGhpcy5yb2xlc1JlbmRlcmVyLFxuICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ25mLWNlbGwtdmVydC1hbGlnbiB0Q29sJyxcbiAgICAgICAgICAgICAgICBzb3J0YWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgZmlsdGVyOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29sSWQ6ICdwb3N0dXJlQ2hlY2tSb2xlcycsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdwb3N0dXJlQ2hlY2tSb2xlcycsXG4gICAgICAgICAgICAgICAgaGVhZGVyTmFtZTogJ1Bvc3R1cmUgQ2hlY2sgQXR0cmlidXRlcycsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50UGFyYW1zOiBwb3N0dXJlUm9sZXNIZWFkZXJDb21wb25lbnRQYXJhbXMsXG4gICAgICAgICAgICAgICAgb25DZWxsQ2xpY2tlZDogKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaGFzU2VsZWN0ZWRUZXh0KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2VUeXBlID0gJyc7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlblVwZGF0ZShkYXRhLmRhdGEpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNlbGxSZW5kZXJlcjogdGhpcy5yb2xlc1JlbmRlcmVyLFxuICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ25mLWNlbGwtdmVydC1hbGlnbiB0Q29sJyxcbiAgICAgICAgICAgICAgICBzb3J0YWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgZmlsdGVyOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29sSWQ6ICdzZW1hbnRpYycsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdzZW1hbnRpYycsXG4gICAgICAgICAgICAgICAgaGVhZGVyTmFtZTogJ1NlbWFudGljJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnRQYXJhbXM6IHNlbWFudGljSGVhZGVyQ29tcG9uZW50UGFyYW1zLFxuICAgICAgICAgICAgICAgIG9uQ2VsbENsaWNrZWQ6IChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmhhc1NlbGVjdGVkVGV4dCgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXJ2aWNlVHlwZSA9ICcnO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5VcGRhdGUoZGF0YS5kYXRhKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjZWxsUmVuZGVyZXI6IChyb3cpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJvdy5kYXRhPy5zZW1hbnRpYyA9PT0gJ0FueU9mJyA/ICdBbnkgT2YnIDogJ0FsbCBPZic7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBjZWxsQ2xhc3M6ICduZi1jZWxsLXZlcnQtYWxpZ24gdENvbCcsXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29sSWQ6ICd0eXBlJyxcbiAgICAgICAgICAgICAgICBmaWVsZDogJ3R5cGUnLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdUeXBlJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICAvL2hlYWRlckNvbXBvbmVudFBhcmFtczogdHlwZUhlYWRlckNvbXBvbmVudFBhcmFtcyxcbiAgICAgICAgICAgICAgICBvbkNlbGxDbGlja2VkOiAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5oYXNTZWxlY3RlZFRleHQoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VydmljZVR5cGUgPSAnJztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuVXBkYXRlKGRhdGEuZGF0YSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY2VsbFJlbmRlcmVyOiAocm93KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByb3cuZGF0YT8udHlwZTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ25mLWNlbGwtdmVydC1hbGlnbiB0Q29sJyxcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ2NyZWF0ZWRBdCcsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdjcmVhdGVkQXQnLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdDcmVhdGVkIEF0JyxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnRQYXJhbXM6IGNyZWF0ZWRBdEhlYWRlckNvbXBvbmVudFBhcmFtcyxcbiAgICAgICAgICAgICAgICB2YWx1ZUZvcm1hdHRlcjogdGhpcy5jcmVhdGVkQXRGb3JtYXR0ZXIsXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIHNvcnRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIHNvcnRDb2x1bW46IHRoaXMuc29ydC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ25mLWNlbGwtdmVydC1hbGlnbiB0Q29sJyxcbiAgICAgICAgICAgICAgICBvbkNlbGxDbGlja2VkOiAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5oYXNTZWxlY3RlZFRleHQoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VydmljZVR5cGUgPSAnJztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuVXBkYXRlKGRhdGEuZGF0YSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBoaWRlOiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgZ2V0RGF0YShmaWx0ZXJzPzogRmlsdGVyT2JqW10sIHNvcnQ/OiBhbnksIHBhZ2U/OiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICAvLyB3ZSBjYW4gY3VzdG9taXplIGZpbHRlcnMgb3Igc29ydGluZyBoZXJlIGJlZm9yZSBtb3Zpbmcgb24uLi5cbiAgICAgICAgdGhpcy5wYWdpbmcucGFnZSA9IHBhZ2UgfHwgdGhpcy5wYWdpbmcucGFnZTtcbiAgICAgICAgcmV0dXJuIHN1cGVyLmdldFRhYmxlRGF0YSgnc2VydmljZS1wb2xpY2llcycsIHRoaXMucGFnaW5nLCBmaWx0ZXJzLCBzb3J0KVxuICAgICAgICAgICAgLnRoZW4oKHJlc3VsdHM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NEYXRhKHJlc3VsdHMpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwcm9jZXNzRGF0YShyZXN1bHRzOiBhbnkpIHtcbiAgICAgICAgaWYgKCFpc0VtcHR5KHJlc3VsdHM/LmRhdGEpKSB7XG4gICAgICAgICAgICAvL3ByZS1wcm9jZXNzIGRhdGEgYmVmb3JlIHJlbmRlcmluZ1xuICAgICAgICAgICAgcmVzdWx0cy5kYXRhID0gdGhpcy5hZGRBY3Rpb25zUGVyUm93KHJlc3VsdHMpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNFbXB0eShyZXN1bHRzPy5tZXRhPy5wYWdpbmF0aW9uKSkge1xuICAgICAgICAgICAgdGhpcy50b3RhbENvdW50ID0gcmVzdWx0cy5tZXRhPy5wYWdpbmF0aW9uLnRvdGFsQ291bnQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRBY3Rpb25zUGVyUm93KHJlc3VsdHM6IGFueSk6IGFueVtdIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdHMuZGF0YS5tYXAoKHJvdykgPT4ge1xuICAgICAgICAgICAgcm93LmFjdGlvbkxpc3QgPSBbJ3VwZGF0ZScsICdkZWxldGUnXTtcbiAgICAgICAgICAgIHJldHVybiByb3c7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTZXJ2aWNlUm9sZUF0dHJpYnV0ZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnppdGlTZXJ2aWNlLmdldCgnc2VydmljZS1yb2xlLWF0dHJpYnV0ZXMnLCB7fSwgW10pLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlUm9sZUF0dHJpYnV0ZXMgPSByZXN1bHQuZGF0YTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRJZGVudGl0eU5hbWVkQXR0cmlidXRlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMueml0aVNlcnZpY2UuZ2V0KCdpZGVudGl0aWVzJywge30sIFtdKS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5hbWVkQXR0cmlidXRlcyA9IHJlc3VsdC5kYXRhLm1hcCgoaWRlbnRpdHkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlkZW50aXR5TmFtZWRBdHRyaWJ1dGVzTWFwW2lkZW50aXR5Lm5hbWVdID0gaWRlbnRpdHkuaWQ7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlkZW50aXR5Lm5hbWU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuaWRlbnRpdHlOYW1lZEF0dHJpYnV0ZXMgPSBuYW1lZEF0dHJpYnV0ZXM7XG4gICAgICAgICAgICByZXR1cm4gbmFtZWRBdHRyaWJ1dGVzO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U2VydmljZU5hbWVkQXR0cmlidXRlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMueml0aVNlcnZpY2UuZ2V0KCdzZXJ2aWNlcycsIHt9LCBbXSkudGhlbigocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBuYW1lZEF0dHJpYnV0ZXMgPSByZXN1bHQuZGF0YS5tYXAoKHNlcnZpY2UpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2VOYW1lZEF0dHJpYnV0ZXNNYXBbc2VydmljZS5uYW1lXSA9IHNlcnZpY2UuaWQ7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2UubmFtZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlTmFtZWRBdHRyaWJ1dGVzID0gbmFtZWRBdHRyaWJ1dGVzO1xuICAgICAgICAgICAgcmV0dXJuIG5hbWVkQXR0cmlidXRlcztcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldElkZW50aXR5Um9sZUF0dHJpYnV0ZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnppdGlTZXJ2aWNlLmdldCgnaWRlbnRpdHktcm9sZS1hdHRyaWJ1dGVzJywge30sIFtdKS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaWRlbnRpdHlSb2xlQXR0cmlidXRlcyA9IHJlc3VsdC5kYXRhO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFBvc3R1cmVOYW1lZEF0dHJpYnV0ZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnppdGlTZXJ2aWNlLmdldCgncG9zdHVyZS1jaGVja3MnLCB7fSwgW10pLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmFtZWRBdHRyaWJ1dGVzID0gcmVzdWx0LmRhdGEubWFwKChwb3N0dXJlQ2hlY2spID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnBvc3R1cmVOYW1lZEF0dHJpYnV0ZXNNYXBbcG9zdHVyZUNoZWNrLm5hbWVdID0gcG9zdHVyZUNoZWNrLmlkO1xuICAgICAgICAgICAgICAgIHJldHVybiBwb3N0dXJlQ2hlY2submFtZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5wb3N0dXJlTmFtZWRBdHRyaWJ1dGVzID0gbmFtZWRBdHRyaWJ1dGVzO1xuICAgICAgICAgICAgcmV0dXJuIG5hbWVkQXR0cmlidXRlcztcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZG93bmxvYWRBbGxJdGVtcygpIHtcbiAgICAgICAgY29uc3QgcGFnaW5nID0gY2xvbmVEZWVwKHRoaXMucGFnaW5nKTtcbiAgICAgICAgcGFnaW5nLnRvdGFsID0gdGhpcy50b3RhbENvdW50O1xuICAgICAgICBzdXBlci5nZXRUYWJsZURhdGEoJ3NlcnZpY2UtcG9saWNpZXMnLCBwYWdpbmcsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKVxuICAgICAgICAgICAgLnRoZW4oKHJlc3VsdHM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRvd25sb2FkSXRlbXMocmVzdWx0cz8uZGF0YSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBkb3dubG9hZEl0ZW1zKHNlbGVjdGVkSXRlbXMpIHtcbiAgICAgICAgdGhpcy5jc3ZEb3dubG9hZFNlcnZpY2UuZG93bmxvYWQoXG4gICAgICAgICAgICAnc2VydmljZS1wb2xpY2llcycsXG4gICAgICAgICAgICBzZWxlY3RlZEl0ZW1zLFxuICAgICAgICAgICAgQ1NWX0NPTFVNTlMsXG4gICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3BlblVwZGF0ZShpdGVtPzogYW55KSB7XG4gICAgICAgIHRoaXMubW9kYWxUeXBlID0gJ3NlcnZpY2UtcG9saWNpZXMnO1xuICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFNlcnZpY2VQb2xpY3kgPSBpdGVtO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFNlcnZpY2VQb2xpY3kuYmFkZ2VzID0gW107XG4gICAgICAgICAgICB1bnNldCh0aGlzLnNlbGVjdGVkU2VydmljZVBvbGljeSwgJ19saW5rcycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFNlcnZpY2VQb2xpY3kgPSBuZXcgU2VydmljZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2lkZU1vZGFsT3BlbiA9IHRydWU7XG4gICAgfVxufVxuIl19
|