@openziti/ziti-console-lib 1.1.1 → 1.1.2

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.
@@ -129,6 +129,7 @@ class ExtensionsNoopService {
129
129
  constructor() {
130
130
  this.formDataChanged = new BehaviorSubject({ isEmpty: true });
131
131
  this.closed = new EventEmitter();
132
+ this.consoleActionTriggered = new EventEmitter();
132
133
  this.closeAfterSave = true;
133
134
  this.moreActions = [];
134
135
  this.disabledComponents = [];
@@ -5817,7 +5818,6 @@ class IdentitiesPageService extends ListPageServiceClass {
5817
5818
  ];
5818
5819
  this.tableHeaderActions = [
5819
5820
  { name: 'Download All', action: 'download-all' },
5820
- { name: 'Download Selected', action: 'download-selected' },
5821
5821
  ];
5822
5822
  this.resourceType = 'identities';
5823
5823
  this.validate = (formData) => {
@@ -6471,6 +6471,8 @@ class EdgeRoutersPageService extends ListPageServiceClass {
6471
6471
  { label: 'Version', path: 'versionInfo.version' },
6472
6472
  { label: 'Revision', path: 'versionInfo.revision' },
6473
6473
  { label: 'Fingerprint', path: 'fingerprint' },
6474
+ { label: 'Advertise TLS Address', path: 'supportedProtocols.tls' },
6475
+ { label: 'Advertise WSS Address', path: 'supportedProtocols.wss' },
6474
6476
  { label: 'ID', path: 'id' },
6475
6477
  ];
6476
6478
  this.selectedEdgeRouter = new EdgeRouter();
@@ -6655,6 +6657,46 @@ class EdgeRoutersPageService extends ListPageServiceClass {
6655
6657
  resizable: true,
6656
6658
  cellClass: 'nf-cell-vert-align tCol',
6657
6659
  },
6660
+ {
6661
+ colId: 'hostname',
6662
+ field: 'hostname',
6663
+ headerName: 'Host Name',
6664
+ headerComponent: TableColumnDefaultComponent,
6665
+ resizable: true,
6666
+ cellClass: 'nf-cell-vert-align tCol',
6667
+ sortable: false,
6668
+ filter: false,
6669
+ tooltipValueGetter: (params) => {
6670
+ return params.value || '';
6671
+ }
6672
+ },
6673
+ {
6674
+ colId: 'version',
6675
+ field: 'versionInfo.version',
6676
+ headerName: 'Router Version',
6677
+ headerComponent: TableColumnDefaultComponent,
6678
+ resizable: true,
6679
+ cellClass: 'nf-cell-vert-align tCol',
6680
+ sortable: false,
6681
+ filter: false,
6682
+ },
6683
+ {
6684
+ colId: 'supportedProtocols',
6685
+ headerName: 'Advertise Address',
6686
+ headerComponent: TableColumnDefaultComponent,
6687
+ resizable: true,
6688
+ sortable: false,
6689
+ filter: false,
6690
+ valueGetter: (params) => {
6691
+ const protocols = params.data?.supportedProtocols;
6692
+ if (!protocols)
6693
+ return '';
6694
+ return Object.values(protocols).filter(Boolean).join(' | ');
6695
+ },
6696
+ tooltipValueGetter: (params) => params.value,
6697
+ tooltipShowMode: 'whenTruncated',
6698
+ cellStyle: { whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis' }
6699
+ },
6658
6700
  this.ID_COLUMN_DEF
6659
6701
  ];
6660
6702
  if (this.extService.processTableColumns) {
@@ -8567,10 +8609,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
8567
8609
  limitations under the License.
8568
8610
  */
8569
8611
  class ConfigurationsPageComponent extends ListPageComponent {
8570
- constructor(svc, filterService, tabNames, consoleEvents, dialogForm) {
8571
- super(filterService, svc, consoleEvents, dialogForm);
8612
+ constructor(svc, filterService, tabNames, consoleEvents, dialogForm, extService) {
8613
+ super(filterService, svc, consoleEvents, dialogForm, extService);
8572
8614
  this.svc = svc;
8573
8615
  this.tabNames = tabNames;
8616
+ this.extService = extService;
8574
8617
  this.title = 'Configurations';
8575
8618
  this.formDataChanged = false;
8576
8619
  }
@@ -8605,6 +8648,7 @@ class ConfigurationsPageComponent extends ListPageComponent {
8605
8648
  }
8606
8649
  }
8607
8650
  tableAction(event) {
8651
+ this.trackMenuAction(event?.action, event?.item);
8608
8652
  switch (event?.action) {
8609
8653
  case 'toggleAll':
8610
8654
  case 'toggleItem':
@@ -8629,6 +8673,14 @@ class ConfigurationsPageComponent extends ListPageComponent {
8629
8673
  break;
8630
8674
  }
8631
8675
  }
8676
+ trackMenuAction(action, item) {
8677
+ this.extService?.consoleActionTriggered?.emit({
8678
+ action,
8679
+ page: 'config',
8680
+ item,
8681
+ type: 'menu-action'
8682
+ });
8683
+ }
8632
8684
  deleteItem(item) {
8633
8685
  this.openBulkDelete([item], 'config');
8634
8686
  }
@@ -8666,13 +8718,16 @@ class ConfigurationsPageComponent extends ListPageComponent {
8666
8718
  }
8667
8719
  });
8668
8720
  }
8669
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: ConfigurationsPageComponent, deps: [{ token: ConfigurationsPageService }, { token: DataTableFilterService }, { token: TabNameService }, { token: ConsoleEventsService }, { token: i5.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
8721
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: ConfigurationsPageComponent, deps: [{ token: ConfigurationsPageService }, { token: DataTableFilterService }, { token: TabNameService }, { token: ConsoleEventsService }, { token: i5.MatDialog }, { token: SHAREDZ_EXTENSION }], target: i0.ɵɵFactoryTarget.Component }); }
8670
8722
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: ConfigurationsPageComponent, isStandalone: false, selector: "lib-configurations", usesInheritance: true, ngImport: i0, template: "<div class=\"ziti-page-container ziti-configs-container\">\n <lib-list-page-header [title]=\"title\"\n [tabs]=\"tabs\"\n [showAdd]=\"!itemsSelected\"\n (actionClicked)=\"headerActionClicked($event)\"></lib-list-page-header>\n\n <lib-data-table [tableId]=\"'configurations'\"\n [rowData]=\"rowData\"\n [columnDefinitions]=\"columnDefs\"\n (actionRequested)=\"tableAction($event)\"\n [startCount]=\"startCount\"\n [endCount]=\"endCount\"\n [totalCount]=\"totalCount\"\n [emptyMsg]=\"'No Configurations defined, Click the plus to add a Configuration.'\"\n [filterApplied]=\"filterApplied\"\n [menuItems]=\"svc.menuItems\"\n (gridReady)=\"gridReady($event)\"\n >\n </lib-data-table>\n</div>\n", styles: [".configurations{width:100%;height:100%;display:flex;flex-direction:column;position:relative;flex:1 1 auto}\n"], dependencies: [{ kind: "component", type: ListPageHeaderComponent, selector: "lib-list-page-header", inputs: ["title", "tabs", "showAdd", "hideAction"], outputs: ["actionClicked"] }, { kind: "component", type: DataTableComponent, selector: "lib-data-table", inputs: ["rowData", "expandRowData", "collapseRowData", "rowValidation", "isTimeSearchAvailable", "isLoading", "tableId", "options", "validateService", "rowsToggled", "tableRefreshCount", "view", "serverSideDataSource", "allowDownload", "startCount", "endCount", "totalCount", "emptyMsg", "filterApplied", "menuItems", "headerActions", "noItemsClass", "entityTypeName", "showNoItemsAdd", "currentPage", "noItemsImage", "rowHeight", "filterName", "filterColumn", "columnDefinitions", "refreshCount"], outputs: ["actionRequested", "gridReady", "dragStart", "dragLeave", "pageChanged"] }] }); }
8671
8723
  }
8672
8724
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: ConfigurationsPageComponent, decorators: [{
8673
8725
  type: Component,
8674
8726
  args: [{ selector: 'lib-configurations', standalone: false, template: "<div class=\"ziti-page-container ziti-configs-container\">\n <lib-list-page-header [title]=\"title\"\n [tabs]=\"tabs\"\n [showAdd]=\"!itemsSelected\"\n (actionClicked)=\"headerActionClicked($event)\"></lib-list-page-header>\n\n <lib-data-table [tableId]=\"'configurations'\"\n [rowData]=\"rowData\"\n [columnDefinitions]=\"columnDefs\"\n (actionRequested)=\"tableAction($event)\"\n [startCount]=\"startCount\"\n [endCount]=\"endCount\"\n [totalCount]=\"totalCount\"\n [emptyMsg]=\"'No Configurations defined, Click the plus to add a Configuration.'\"\n [filterApplied]=\"filterApplied\"\n [menuItems]=\"svc.menuItems\"\n (gridReady)=\"gridReady($event)\"\n >\n </lib-data-table>\n</div>\n", styles: [".configurations{width:100%;height:100%;display:flex;flex-direction:column;position:relative;flex:1 1 auto}\n"] }]
8675
- }], ctorParameters: () => [{ type: ConfigurationsPageService }, { type: DataTableFilterService }, { type: TabNameService }, { type: ConsoleEventsService }, { type: i5.MatDialog }] });
8727
+ }], ctorParameters: () => [{ type: ConfigurationsPageService }, { type: DataTableFilterService }, { type: TabNameService }, { type: ConsoleEventsService }, { type: i5.MatDialog }, { type: undefined, decorators: [{
8728
+ type: Inject,
8729
+ args: [SHAREDZ_EXTENSION]
8730
+ }] }] });
8676
8731
 
8677
8732
  /*
8678
8733
  Copyright NetFoundry Inc.
@@ -11457,6 +11512,7 @@ class IdentitiesPageComponent extends ListPageComponent {
11457
11512
  }
11458
11513
  tableAction(event) {
11459
11514
  const extensionActionFound = this.handleExtensionActions(event);
11515
+ this.trackMenuAction(event?.action, event?.item);
11460
11516
  if (extensionActionFound) {
11461
11517
  return;
11462
11518
  }
@@ -11533,6 +11589,14 @@ class IdentitiesPageComponent extends ListPageComponent {
11533
11589
  autoFocus: false,
11534
11590
  });
11535
11591
  }
11592
+ trackMenuAction(action, item) {
11593
+ this.extService?.consoleActionTriggered?.emit({
11594
+ action,
11595
+ page: 'identity',
11596
+ item,
11597
+ type: 'menu-action'
11598
+ });
11599
+ }
11536
11600
  deleteItem(item) {
11537
11601
  this.openBulkDelete([item], 'identity');
11538
11602
  }
@@ -11642,6 +11706,7 @@ class EdgeRoutersPageComponent extends ListPageComponent {
11642
11706
  this.formDataChanged = event;
11643
11707
  }
11644
11708
  tableAction(event) {
11709
+ this.trackMenuAction(event?.action, event?.item);
11645
11710
  if (this.extService?.listActions?.length > 0) {
11646
11711
  let extensionFound = false;
11647
11712
  this.extService?.listActions?.forEach((extAction) => {
@@ -11686,6 +11751,14 @@ class EdgeRoutersPageComponent extends ListPageComponent {
11686
11751
  break;
11687
11752
  }
11688
11753
  }
11754
+ trackMenuAction(action, item) {
11755
+ this.extService?.consoleActionTriggered?.emit({
11756
+ action,
11757
+ page: 'edge-router',
11758
+ item,
11759
+ type: 'menu-action'
11760
+ });
11761
+ }
11689
11762
  downloadJWT(item) {
11690
11763
  const jwt = this.svc.getJWT(item);
11691
11764
  this.svc.downloadJWT(jwt, item.name);
@@ -11991,6 +12064,7 @@ class TransitRoutersPageComponent extends ListPageComponent {
11991
12064
  this.formDataChanged = event;
11992
12065
  }
11993
12066
  tableAction(event) {
12067
+ this.trackMenuAction(event?.action, event?.item);
11994
12068
  if (this.extService?.listActions?.length > 0) {
11995
12069
  let extensionFound = false;
11996
12070
  this.extService?.listActions?.forEach((extAction) => {
@@ -12035,6 +12109,14 @@ class TransitRoutersPageComponent extends ListPageComponent {
12035
12109
  break;
12036
12110
  }
12037
12111
  }
12112
+ trackMenuAction(action, item) {
12113
+ this.extService?.consoleActionTriggered?.emit({
12114
+ action,
12115
+ page: 'transit-router',
12116
+ item,
12117
+ type: 'menu-action'
12118
+ });
12119
+ }
12038
12120
  downloadJWT(item) {
12039
12121
  const jwt = this.svc.getJWT(item);
12040
12122
  this.svc.downloadJWT(jwt, item.name);
@@ -13525,6 +13607,7 @@ class ServicesPageComponent extends ListPageComponent {
13525
13607
  }
13526
13608
  }
13527
13609
  tableAction(event) {
13610
+ this.trackMenuAction(event?.action, event?.item);
13528
13611
  const extensionActionFound = this.handleExtensionActions(event);
13529
13612
  if (extensionActionFound) {
13530
13613
  return;
@@ -13553,6 +13636,14 @@ class ServicesPageComponent extends ListPageComponent {
13553
13636
  break;
13554
13637
  }
13555
13638
  }
13639
+ trackMenuAction(action, item) {
13640
+ this.extensionService?.consoleActionTriggered?.emit({
13641
+ action,
13642
+ page: 'service',
13643
+ item,
13644
+ type: 'menu-action'
13645
+ });
13646
+ }
13556
13647
  deleteItem(item) {
13557
13648
  this.openBulkDelete([item], 'service');
13558
13649
  }
@@ -17646,6 +17737,10 @@ class EdgeRouterFormComponent extends ProjectableForm {
17646
17737
  if (!this.formData.isVerified) {
17647
17738
  this.formData.badges.push({ label: 'Unverified', class: 'unreg' });
17648
17739
  }
17740
+ if (this.formData.versionInfo?.version) {
17741
+ const version = this.formData.versionInfo?.version.replace(/^v/, '').trim();
17742
+ this.formData.badges.push({ label: `Version: ${version}`, class: 'offline' });
17743
+ }
17649
17744
  }
17650
17745
  this.getEdgeRouterRoleAttributes();
17651
17746
  this.svc.getAssociatedServices(this.formData.id);
@@ -17773,7 +17868,7 @@ class EdgeRouterFormComponent extends ProjectableForm {
17773
17868
  provide: MatDialogRef,
17774
17869
  useValue: {}
17775
17870
  }
17776
- ], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"projectable-form-wrapper\"\n (keyup.enter)=\"save($event)\"\n (keyup.escape)=\"closeModal(false)\"\n [class.projectable-form-hidden]=\"!dataInit\"\n >\n <lib-form-header\n [data]=\"formData\"\n [title]=\"formData.id ? 'Edit Edge Router: ' : 'Create New Edge Router'\"\n [moreActions]=\"moreActions\"\n (actionRequested)=\"headerActionRequested($event)\"\n [(formView)]=\"formView\"\n [class.is-scrolled]=\"isScrolled\"\n ></lib-form-header>\n <div class=\"edge-router-form-container projectable-form-container\" #formContainer>\n @if (formView === 'simple') {\n <div class=\"projectable-form-main-column form-group-row\">\n <div class=\"form-group-column three-fifths\">\n <lib-form-field-container [title]=\"'Edge Router Name'\" [label]=\"'REQUIRED'\">\n <input\n class=\"form-field-input\"\n placeholder=\"Name this edge router\"\n [ngClass]=\"{error: errors['name']}\"\n [(ngModel)]=\"formData.name\"\n autofocus\n #nameFieldInput\n />\n </lib-form-field-container>\n <lib-form-field-container\n [title]=\"'Select or create Edge Router attributes'\"\n [label]=\"'OPTIONAL'\"\n [contentStyle]=\"'z-index: 99999999'\"\n [helpText]=\"'Attributes are tags applied to an resource. Apply the same tag to other Edge Routers to form a group of Edge Routers.'\"\n >\n <lib-tag-selector\n [(selectedRoleAttributes)]=\"formData.roleAttributes\"\n [availableRoleAttributes]=\"edgeRouterRoleAttributes\"\n [placeholder]=\"'Add attributes to group Edge Routers'\"\n ></lib-tag-selector>\n </lib-form-field-container>\n <ng-content select=\"[slot=column-1-slot-1]\"></ng-content>\n <lib-form-field-toggle [(toggleOn)]=\"showMore\" style=\"margin: 0px 10px\"></lib-form-field-toggle>\n @if (showMore) {\n <div class=\"form-group-column\">\n <lib-form-field-container\n [title]=\"'TUNNELER'\"\n [title2]=\"'TRAVERSAL'\"\n [layout]=\"'row'\"\n class=\"form-field-advanced\"\n >\n <div class=\"config-item\" [class.disabled]=\"!tunnelerEnabledReadOnly\">\n <div class=\"config-container toggle-container\">\n <div class=\"config-container-label\">TUNNELER ENABLED</div>\n <div (click)=\"tunnelerEnabledReadOnly && toggleTunnelerEnabled()\"\n [ngClass]=\"{ on: formData.isTunnelerEnabled,disabled: !tunnelerEnabledReadOnly }\" class=\"toggle\"\n [matTooltip]=\"!tunnelerEnabledReadOnly ? 'Disabled because already hosted by netfoundry ' : ''\"\n matTooltipPosition=\"above\" style=\"pointer-events: auto;\">\n <span [hidden]=\"!formData.isTunnelerEnabled\" class=\"on-label\">YES</span>\n <span [hidden]=\"formData.isTunnelerEnabled\" class=\"off-label\">NO</span>\n <div class=\"switch\"></div>\n </div>\n </div>\n </div>\n <div class=\"config-item\">\n <div class=\"config-container toggle-container\">\n <div class=\"config-container-label\">ALLOW TRAVERSAL</div>\n <div\n (click)=\"toggleNoTraversal()\"\n [ngClass]=\"{ on: !formData.noTraversal }\"\n class=\"toggle\"\n >\n <span [hidden]=\"formData.noTraversal\" class=\"on-label\">YES</span>\n <span [hidden]=\"!formData.noTraversal\" class=\"off-label\">NO</span>\n <div class=\"switch\"></div>\n </div>\n </div>\n </div>\n </lib-form-field-container>\n <lib-form-field-container\n [title]=\"'Custom Tags'\"\n [label]=\"'OPTIONAL'\"\n class=\"form-field-advanced\"\n >\n <lib-custom-tags [(tags)]=\"formData.tags\"></lib-custom-tags>\n </lib-form-field-container>\n <lib-form-field-container\n [title]=\"'App Data'\"\n [label]=\"'OPTIONAL'\"\n class=\"form-field-advanced\"\n >\n <lib-json-view [(data)]=\"formData.appData\"></lib-json-view>\n </lib-form-field-container>\n </div>\n }\n </div>\n <div class=\"form-group-column two-fifths\">\n <ng-content select=\"[slot=column-2-slot-1]\"></ng-content>\n @if (hasEnrolmentToken && !extService['hideZitiRegistration']) {\n <lib-form-field-container\n [showHeader]=\"false\"\n >\n <lib-qr-code\n [identity]=\"formData\"\n [jwt]=\"formData.enrollmentJwt\"\n [token]=\"formData.enrollmentToken\"\n [expiration]=\"formData.enrollmentExpiresAt\"\n (doRefresh)=\"refreshEdgeRouter()\"\n [type]=\"'router'\"\n ></lib-qr-code>\n </lib-form-field-container>\n }\n @if (formData.id) {\n <lib-form-field-container\n [title]=\"'Associated Services'\"\n [count]=\"svc.associatedServices.length\"\n [class]=\"'hide-overflow'\"\n [helpText]=\"'Preview list of all services that this Edge Router is associated with.'\"\n >\n <lib-preview-list\n [clickable]=\"false\"\n [isLoading]=\"servicesLoading\"\n [allNames]=\"svc.associatedServiceNames\"\n ></lib-preview-list>\n </lib-form-field-container>\n }\n @if (formData.id) {\n <lib-form-field-container\n [title]=\"'Associated Identities'\"\n [count]=\"svc.associatedIdentities.length\"\n [helpText]=\"'Preview list of all Identities that this Edge Router is associated with.'\"\n >\n <lib-preview-list\n [clickable]=\"false\"\n [isLoading]=\"identitiesLoading\"\n [allNames]=\"svc.associatedIdentityNames\"\n ></lib-preview-list>\n </lib-form-field-container>\n }\n <lib-form-field-container\n [title]=\"'API Calls'\"\n [label]=\"'OPTIONAL'\"\n >\n <div class=\"form-row\">\n <input class=\"form-field-input\" [value]=\"apiCallURL\"/>\n <div class=\"icon-copy copy-text\" (click)=\"copyToClipboard(apiCallURL)\"></div>\n </div>\n @if (formData) {\n <lib-json-view [(data)]=\"apiData\" [readOnly]=\"true\" [showCopy]=\"true\"></lib-json-view>\n }\n </lib-form-field-container>\n </div>\n </div>\n }\n @if (formView === 'raw') {\n <div class=\"form-group-column\">\n @if (formData) {\n <lib-json-view [(data)]=\"formData\"></lib-json-view>\n }\n </div>\n }\n </div>\n</div>\n@if (isLoading || !dataInit) {\n <lib-loading-indicator [isLoading]=\"isLoading || !dataInit\"></lib-loading-indicator>\n}\n", styles: [".edge-router-form-container{display:flex;flex-direction:column;height:100%;width:100%;align-items:center;gap:.9375rem}.form-field-dropdown{background-image:url(/assets/svgs/ArrowDown.svg);background-position:center right .625rem;background-repeat:no-repeat;background-size:1.125rem;padding-right:1.75rem}.disabled{opacity:.5;pointer-events:none}.toggle.disabled{cursor:not-allowed}::ng-deep .admin-toggle{width:100%;width:35%;display:flex}::ng-deep .admin-toggle .form-field-line{display:none}::ng-deep .admin-toggle .toggle{width:100%}::ng-deep .is-admin-container .form-field-title-container.title-container-2{width:35%!important}.svc-test-result{position:absolute;transition:var(--transition);height:0;width:100%;background-color:var(--background);bottom:0;font-weight:600;padding-left:.625rem;padding-right:.625rem;border-color:var(--inputBorder);border-style:solid;border-width:var(--inputBorderWidth);border-bottom-right-radius:var(--inputBorderRadius);border-bottom-left-radius:var(--inputBorderRadius);border-top-style:none}.svc-test-result.test-result-open{height:fit-content;box-shadow:0 -.125rem .6875rem 0 var(--boxShadow);padding-bottom:.9375rem;padding-top:.9375rem}.svc-test-result .close.icon-close{top:.625rem;right:.625rem;font-size:1.125rem;height:1.125rem;width:1.125rem;line-height:1.125rem}::ng-deep .admin-toggle .form-field-toggle-container:focus .form-field-label{color:var(--primaryColor)}::ng-deep .admin-toggle .form-field-toggle-container:focus .form-field-line{border-color:var(--primaryColor)}::ng-deep .admin-toggle .form-field-toggle-container:focus .toggle{border-color:var(--primaryColor);border-style:solid;border-width:var(--inputBorderWidth)}::ng-deep .admin-toggle .form-field-toggle-container:focus .toggle .switch{top:.0625rem}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: FormHeaderComponent, selector: "lib-form-header", inputs: ["data", "badges", "title", "moreActions", "formView", "saveDisabled", "saveTooltip", "actionButtonText", "moreActionsText", "showHeaderToggle", "showHeaderButton", "multiActions"], outputs: ["formViewChange", "actionRequested", "multiActionRequested"] }, { kind: "component", type: FormFieldContainerComponent, selector: "lib-form-field-container", inputs: ["title", "title2", "titleIcon", "layout", "helpText", "helpText2", "label", "count", "action", "actionLabel", "class", "contentStyle", "contentClass", "showHeader", "showToggle", "headerActions", "headerToggle"], outputs: ["actionRequested", "headerToggleChange"] }, { kind: "component", type: PreviewListComponent, selector: "lib-preview-list", inputs: ["label", "clickable", "isLoading", "allNames", "items", "allowRemove", "tooltip", "showfilter", "localFilter"], outputs: ["itemSelected", "itemRemoved", "filterChanged"] }, { kind: "component", type: LoadingIndicatorComponent, selector: "lib-loading-indicator", inputs: ["isLoading"] }, { kind: "component", type: FormFieldToggleComponent, selector: "lib-form-field-toggle", inputs: ["label", "orientation", "labelOn", "labelOff", "toggleOn"], outputs: ["toggleOnChange"] }, { kind: "component", type: JsonViewComponent, selector: "lib-json-view", inputs: ["data", "schema", "readOnly", "jsonInvalid", "showCopy", "showLineNumbers"], outputs: ["dataChange", "jsonChange", "jsonInvalidChange"] }, { kind: "component", type: TagSelectorComponent, selector: "lib-tag-selector", inputs: ["placeholder", "disableField", "disableCreate", "hideOption", "isLoading", "errorMessage", "focusOnInit", "selectedRoleAttributes", "selectedNamedAttributes", "hasError", "availableRoleAttributes", "availableNamedAttributes"], outputs: ["addRoleAttribute", "addNamedAttribute", "roleAttributeRemoved", "namedAttributeRemoved", "selectedRoleAttributesChange", "selectedNamedAttributesChange", "filterChange"] }, { kind: "component", type: QrCodeComponent, selector: "lib-qr-code", inputs: ["jwt", "token", "expiration", "identity", "type", "authenticators", "qrOnly", "canExpand"], outputs: ["doRefresh"] }, { kind: "component", type: CustomTagsComponent, selector: "lib-custom-tags", inputs: ["tags"], outputs: ["tagsChange"] }] }); }
17871
+ ], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"projectable-form-wrapper\"\n (keyup.enter)=\"save($event)\"\n (keyup.escape)=\"closeModal(false)\"\n [class.projectable-form-hidden]=\"!dataInit\"\n >\n <lib-form-header\n [data]=\"formData\"\n [title]=\"formData.id ? 'Edit Edge Router: ' : 'Create New Edge Router'\"\n [moreActions]=\"moreActions\"\n (actionRequested)=\"headerActionRequested($event)\"\n [(formView)]=\"formView\"\n [class.is-scrolled]=\"isScrolled\"\n ></lib-form-header>\n <div class=\"edge-router-form-container projectable-form-container\" #formContainer>\n @if (formView === 'simple') {\n <div class=\"projectable-form-main-column form-group-row\">\n <div class=\"form-group-column three-fifths\">\n <lib-form-field-container [title]=\"'Edge Router Name'\" [label]=\"'REQUIRED'\">\n <input\n class=\"form-field-input\"\n placeholder=\"Name this edge router\"\n [ngClass]=\"{error: errors['name']}\"\n [(ngModel)]=\"formData.name\"\n autofocus\n #nameFieldInput\n />\n </lib-form-field-container>\n <lib-form-field-container\n [title]=\"'Select or create Edge Router attributes'\"\n [label]=\"'OPTIONAL'\"\n [contentStyle]=\"'z-index: 99999999'\"\n [helpText]=\"'Attributes are tags applied to an resource. Apply the same tag to other Edge Routers to form a group of Edge Routers.'\"\n >\n <lib-tag-selector\n [(selectedRoleAttributes)]=\"formData.roleAttributes\"\n [availableRoleAttributes]=\"edgeRouterRoleAttributes\"\n [placeholder]=\"'Add attributes to group Edge Routers'\"\n ></lib-tag-selector>\n </lib-form-field-container>\n <ng-content select=\"[slot=column-1-slot-1]\"></ng-content>\n <lib-form-field-toggle [(toggleOn)]=\"showMore\" style=\"margin: 0px 10px\"></lib-form-field-toggle>\n @if (showMore) {\n <div class=\"form-group-column\">\n <lib-form-field-container\n [title]=\"'TUNNELER'\"\n [title2]=\"'TRAVERSAL'\"\n [layout]=\"'row'\"\n class=\"form-field-advanced\"\n >\n <div class=\"config-item\" [class.disabled]=\"!tunnelerEnabledReadOnly\">\n <div class=\"config-container toggle-container\">\n <div class=\"config-container-label\">TUNNELER ENABLED</div>\n <div (click)=\"tunnelerEnabledReadOnly && toggleTunnelerEnabled()\"\n [ngClass]=\"{ on: formData.isTunnelerEnabled,disabled: !tunnelerEnabledReadOnly }\" class=\"toggle\"\n [matTooltip]=\"!tunnelerEnabledReadOnly ? 'Disabled because already hosted by netfoundry ' : ''\"\n matTooltipPosition=\"above\" style=\"pointer-events: auto;\">\n <span [hidden]=\"!formData.isTunnelerEnabled\" class=\"on-label\">YES</span>\n <span [hidden]=\"formData.isTunnelerEnabled\" class=\"off-label\">NO</span>\n <div class=\"switch\"></div>\n </div>\n </div>\n </div>\n <div class=\"config-item\">\n <div class=\"config-container toggle-container\">\n <div class=\"config-container-label\">ALLOW TRAVERSAL</div>\n <div\n (click)=\"toggleNoTraversal()\"\n [ngClass]=\"{ on: !formData.noTraversal }\"\n class=\"toggle\"\n >\n <span [hidden]=\"formData.noTraversal\" class=\"on-label\">YES</span>\n <span [hidden]=\"!formData.noTraversal\" class=\"off-label\">NO</span>\n <div class=\"switch\"></div>\n </div>\n </div>\n </div>\n </lib-form-field-container>\n @if (formData?.hostname || formData?.supportedProtocols?.tls || formData?.supportedProtocols?.wss) {\n <lib-form-field-container [showHeader]=\"false\">\n @if (formData?.hostname) {\n <div class=\"config-item\">\n <div class=\"config-item-label-container\">\n <span class=\"config-title\">Domain Name</span>\n </div>\n <div class=\"config-container domain-container\">\n <div class=\"config-container-label domain-label\">\n {{ formData?.hostname }}\n </div>\n </div>\n </div>\n }\n @if (formData?.supportedProtocols?.tls || formData?.supportedProtocols?.wss) {\n <div class=\"config-item\">\n <div class=\"config-item-label-container\">\n <span class=\"config-title\">ADVERTISE ADDRESS</span>\n </div>\n <div class=\"config-container advertise-address-container\">\n <div class=\"config-container-label advertise-address-label\">\n {{ formData?.supportedProtocols?.tls }}\n <br />\n {{ formData?.supportedProtocols?.wss }}\n </div>\n </div>\n </div>\n }\n </lib-form-field-container>\n }\n <lib-form-field-container\n [title]=\"'Custom Tags'\"\n [label]=\"'OPTIONAL'\"\n class=\"form-field-advanced\"\n >\n <lib-custom-tags [(tags)]=\"formData.tags\"></lib-custom-tags>\n </lib-form-field-container>\n <lib-form-field-container\n [title]=\"'App Data'\"\n [label]=\"'OPTIONAL'\"\n class=\"form-field-advanced\"\n >\n <lib-json-view [(data)]=\"formData.appData\"></lib-json-view>\n </lib-form-field-container>\n </div>\n }\n </div>\n <div class=\"form-group-column two-fifths\">\n <ng-content select=\"[slot=column-2-slot-1]\"></ng-content>\n @if (hasEnrolmentToken && !extService['hideZitiRegistration']) {\n <lib-form-field-container\n [showHeader]=\"false\"\n >\n <lib-qr-code\n [identity]=\"formData\"\n [jwt]=\"formData.enrollmentJwt\"\n [token]=\"formData.enrollmentToken\"\n [expiration]=\"formData.enrollmentExpiresAt\"\n (doRefresh)=\"refreshEdgeRouter()\"\n [type]=\"'router'\"\n ></lib-qr-code>\n </lib-form-field-container>\n }\n @if (formData.id) {\n <lib-form-field-container\n [title]=\"'Associated Services'\"\n [count]=\"svc.associatedServices.length\"\n [class]=\"'hide-overflow'\"\n [helpText]=\"'Preview list of all services that this Edge Router is associated with.'\"\n >\n <lib-preview-list\n [clickable]=\"false\"\n [isLoading]=\"servicesLoading\"\n [allNames]=\"svc.associatedServiceNames\"\n ></lib-preview-list>\n </lib-form-field-container>\n }\n @if (formData.id) {\n <lib-form-field-container\n [title]=\"'Associated Identities'\"\n [count]=\"svc.associatedIdentities.length\"\n [helpText]=\"'Preview list of all Identities that this Edge Router is associated with.'\"\n >\n <lib-preview-list\n [clickable]=\"false\"\n [isLoading]=\"identitiesLoading\"\n [allNames]=\"svc.associatedIdentityNames\"\n ></lib-preview-list>\n </lib-form-field-container>\n }\n <lib-form-field-container\n [title]=\"'API Calls'\"\n [label]=\"'OPTIONAL'\"\n >\n <div class=\"form-row\">\n <input class=\"form-field-input\" [value]=\"apiCallURL\"/>\n <div class=\"icon-copy copy-text\" (click)=\"copyToClipboard(apiCallURL)\"></div>\n </div>\n @if (formData) {\n <lib-json-view [(data)]=\"apiData\" [readOnly]=\"true\" [showCopy]=\"true\"></lib-json-view>\n }\n </lib-form-field-container>\n </div>\n </div>\n }\n @if (formView === 'raw') {\n <div class=\"form-group-column\">\n @if (formData) {\n <lib-json-view [(data)]=\"formData\"></lib-json-view>\n }\n </div>\n }\n </div>\n</div>\n@if (isLoading || !dataInit) {\n <lib-loading-indicator [isLoading]=\"isLoading || !dataInit\"></lib-loading-indicator>\n}\n", styles: [".edge-router-form-container{display:flex;flex-direction:column;height:100%;width:100%;align-items:center;gap:.9375rem}.form-field-dropdown{background-image:url(/assets/svgs/ArrowDown.svg);background-position:center right .625rem;background-repeat:no-repeat;background-size:1.125rem;padding-right:1.75rem}.disabled{opacity:.5;pointer-events:none}.toggle.disabled{cursor:not-allowed}::ng-deep .admin-toggle{width:100%;width:35%;display:flex}::ng-deep .admin-toggle .form-field-line{display:none}::ng-deep .admin-toggle .toggle{width:100%}::ng-deep .is-admin-container .form-field-title-container.title-container-2{width:35%!important}.svc-test-result{position:absolute;transition:var(--transition);height:0;width:100%;background-color:var(--background);bottom:0;font-weight:600;padding-left:.625rem;padding-right:.625rem;border-color:var(--inputBorder);border-style:solid;border-width:var(--inputBorderWidth);border-bottom-right-radius:var(--inputBorderRadius);border-bottom-left-radius:var(--inputBorderRadius);border-top-style:none}.svc-test-result.test-result-open{height:fit-content;box-shadow:0 -.125rem .6875rem 0 var(--boxShadow);padding-bottom:.9375rem;padding-top:.9375rem}.svc-test-result .close.icon-close{top:.625rem;right:.625rem;font-size:1.125rem;height:1.125rem;width:1.125rem;line-height:1.125rem}::ng-deep .admin-toggle .form-field-toggle-container:focus .form-field-label{color:var(--primaryColor)}::ng-deep .admin-toggle .form-field-toggle-container:focus .form-field-line{border-color:var(--primaryColor)}::ng-deep .admin-toggle .form-field-toggle-container:focus .toggle{border-color:var(--primaryColor);border-style:solid;border-width:var(--inputBorderWidth)}::ng-deep .admin-toggle .form-field-toggle-container:focus .toggle .switch{top:.0625rem}.config-container-label.domain-label,.config-container-label.advertise-address-label{text-transform:lowercase}.config-container.domain-container,.config-container.advertise-address-container{background-color:var(--stroke)}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: FormHeaderComponent, selector: "lib-form-header", inputs: ["data", "badges", "title", "moreActions", "formView", "saveDisabled", "saveTooltip", "actionButtonText", "moreActionsText", "showHeaderToggle", "showHeaderButton", "multiActions"], outputs: ["formViewChange", "actionRequested", "multiActionRequested"] }, { kind: "component", type: FormFieldContainerComponent, selector: "lib-form-field-container", inputs: ["title", "title2", "titleIcon", "layout", "helpText", "helpText2", "label", "count", "action", "actionLabel", "class", "contentStyle", "contentClass", "showHeader", "showToggle", "headerActions", "headerToggle"], outputs: ["actionRequested", "headerToggleChange"] }, { kind: "component", type: PreviewListComponent, selector: "lib-preview-list", inputs: ["label", "clickable", "isLoading", "allNames", "items", "allowRemove", "tooltip", "showfilter", "localFilter"], outputs: ["itemSelected", "itemRemoved", "filterChanged"] }, { kind: "component", type: LoadingIndicatorComponent, selector: "lib-loading-indicator", inputs: ["isLoading"] }, { kind: "component", type: FormFieldToggleComponent, selector: "lib-form-field-toggle", inputs: ["label", "orientation", "labelOn", "labelOff", "toggleOn"], outputs: ["toggleOnChange"] }, { kind: "component", type: JsonViewComponent, selector: "lib-json-view", inputs: ["data", "schema", "readOnly", "jsonInvalid", "showCopy", "showLineNumbers"], outputs: ["dataChange", "jsonChange", "jsonInvalidChange"] }, { kind: "component", type: TagSelectorComponent, selector: "lib-tag-selector", inputs: ["placeholder", "disableField", "disableCreate", "hideOption", "isLoading", "errorMessage", "focusOnInit", "selectedRoleAttributes", "selectedNamedAttributes", "hasError", "availableRoleAttributes", "availableNamedAttributes"], outputs: ["addRoleAttribute", "addNamedAttribute", "roleAttributeRemoved", "namedAttributeRemoved", "selectedRoleAttributesChange", "selectedNamedAttributesChange", "filterChange"] }, { kind: "component", type: QrCodeComponent, selector: "lib-qr-code", inputs: ["jwt", "token", "expiration", "identity", "type", "authenticators", "qrOnly", "canExpand"], outputs: ["doRefresh"] }, { kind: "component", type: CustomTagsComponent, selector: "lib-custom-tags", inputs: ["tags"], outputs: ["tagsChange"] }] }); }
17777
17872
  }
17778
17873
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: EdgeRouterFormComponent, decorators: [{
17779
17874
  type: Component,
@@ -17782,7 +17877,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
17782
17877
  provide: MatDialogRef,
17783
17878
  useValue: {}
17784
17879
  }
17785
- ], standalone: false, template: "<div class=\"projectable-form-wrapper\"\n (keyup.enter)=\"save($event)\"\n (keyup.escape)=\"closeModal(false)\"\n [class.projectable-form-hidden]=\"!dataInit\"\n >\n <lib-form-header\n [data]=\"formData\"\n [title]=\"formData.id ? 'Edit Edge Router: ' : 'Create New Edge Router'\"\n [moreActions]=\"moreActions\"\n (actionRequested)=\"headerActionRequested($event)\"\n [(formView)]=\"formView\"\n [class.is-scrolled]=\"isScrolled\"\n ></lib-form-header>\n <div class=\"edge-router-form-container projectable-form-container\" #formContainer>\n @if (formView === 'simple') {\n <div class=\"projectable-form-main-column form-group-row\">\n <div class=\"form-group-column three-fifths\">\n <lib-form-field-container [title]=\"'Edge Router Name'\" [label]=\"'REQUIRED'\">\n <input\n class=\"form-field-input\"\n placeholder=\"Name this edge router\"\n [ngClass]=\"{error: errors['name']}\"\n [(ngModel)]=\"formData.name\"\n autofocus\n #nameFieldInput\n />\n </lib-form-field-container>\n <lib-form-field-container\n [title]=\"'Select or create Edge Router attributes'\"\n [label]=\"'OPTIONAL'\"\n [contentStyle]=\"'z-index: 99999999'\"\n [helpText]=\"'Attributes are tags applied to an resource. Apply the same tag to other Edge Routers to form a group of Edge Routers.'\"\n >\n <lib-tag-selector\n [(selectedRoleAttributes)]=\"formData.roleAttributes\"\n [availableRoleAttributes]=\"edgeRouterRoleAttributes\"\n [placeholder]=\"'Add attributes to group Edge Routers'\"\n ></lib-tag-selector>\n </lib-form-field-container>\n <ng-content select=\"[slot=column-1-slot-1]\"></ng-content>\n <lib-form-field-toggle [(toggleOn)]=\"showMore\" style=\"margin: 0px 10px\"></lib-form-field-toggle>\n @if (showMore) {\n <div class=\"form-group-column\">\n <lib-form-field-container\n [title]=\"'TUNNELER'\"\n [title2]=\"'TRAVERSAL'\"\n [layout]=\"'row'\"\n class=\"form-field-advanced\"\n >\n <div class=\"config-item\" [class.disabled]=\"!tunnelerEnabledReadOnly\">\n <div class=\"config-container toggle-container\">\n <div class=\"config-container-label\">TUNNELER ENABLED</div>\n <div (click)=\"tunnelerEnabledReadOnly && toggleTunnelerEnabled()\"\n [ngClass]=\"{ on: formData.isTunnelerEnabled,disabled: !tunnelerEnabledReadOnly }\" class=\"toggle\"\n [matTooltip]=\"!tunnelerEnabledReadOnly ? 'Disabled because already hosted by netfoundry ' : ''\"\n matTooltipPosition=\"above\" style=\"pointer-events: auto;\">\n <span [hidden]=\"!formData.isTunnelerEnabled\" class=\"on-label\">YES</span>\n <span [hidden]=\"formData.isTunnelerEnabled\" class=\"off-label\">NO</span>\n <div class=\"switch\"></div>\n </div>\n </div>\n </div>\n <div class=\"config-item\">\n <div class=\"config-container toggle-container\">\n <div class=\"config-container-label\">ALLOW TRAVERSAL</div>\n <div\n (click)=\"toggleNoTraversal()\"\n [ngClass]=\"{ on: !formData.noTraversal }\"\n class=\"toggle\"\n >\n <span [hidden]=\"formData.noTraversal\" class=\"on-label\">YES</span>\n <span [hidden]=\"!formData.noTraversal\" class=\"off-label\">NO</span>\n <div class=\"switch\"></div>\n </div>\n </div>\n </div>\n </lib-form-field-container>\n <lib-form-field-container\n [title]=\"'Custom Tags'\"\n [label]=\"'OPTIONAL'\"\n class=\"form-field-advanced\"\n >\n <lib-custom-tags [(tags)]=\"formData.tags\"></lib-custom-tags>\n </lib-form-field-container>\n <lib-form-field-container\n [title]=\"'App Data'\"\n [label]=\"'OPTIONAL'\"\n class=\"form-field-advanced\"\n >\n <lib-json-view [(data)]=\"formData.appData\"></lib-json-view>\n </lib-form-field-container>\n </div>\n }\n </div>\n <div class=\"form-group-column two-fifths\">\n <ng-content select=\"[slot=column-2-slot-1]\"></ng-content>\n @if (hasEnrolmentToken && !extService['hideZitiRegistration']) {\n <lib-form-field-container\n [showHeader]=\"false\"\n >\n <lib-qr-code\n [identity]=\"formData\"\n [jwt]=\"formData.enrollmentJwt\"\n [token]=\"formData.enrollmentToken\"\n [expiration]=\"formData.enrollmentExpiresAt\"\n (doRefresh)=\"refreshEdgeRouter()\"\n [type]=\"'router'\"\n ></lib-qr-code>\n </lib-form-field-container>\n }\n @if (formData.id) {\n <lib-form-field-container\n [title]=\"'Associated Services'\"\n [count]=\"svc.associatedServices.length\"\n [class]=\"'hide-overflow'\"\n [helpText]=\"'Preview list of all services that this Edge Router is associated with.'\"\n >\n <lib-preview-list\n [clickable]=\"false\"\n [isLoading]=\"servicesLoading\"\n [allNames]=\"svc.associatedServiceNames\"\n ></lib-preview-list>\n </lib-form-field-container>\n }\n @if (formData.id) {\n <lib-form-field-container\n [title]=\"'Associated Identities'\"\n [count]=\"svc.associatedIdentities.length\"\n [helpText]=\"'Preview list of all Identities that this Edge Router is associated with.'\"\n >\n <lib-preview-list\n [clickable]=\"false\"\n [isLoading]=\"identitiesLoading\"\n [allNames]=\"svc.associatedIdentityNames\"\n ></lib-preview-list>\n </lib-form-field-container>\n }\n <lib-form-field-container\n [title]=\"'API Calls'\"\n [label]=\"'OPTIONAL'\"\n >\n <div class=\"form-row\">\n <input class=\"form-field-input\" [value]=\"apiCallURL\"/>\n <div class=\"icon-copy copy-text\" (click)=\"copyToClipboard(apiCallURL)\"></div>\n </div>\n @if (formData) {\n <lib-json-view [(data)]=\"apiData\" [readOnly]=\"true\" [showCopy]=\"true\"></lib-json-view>\n }\n </lib-form-field-container>\n </div>\n </div>\n }\n @if (formView === 'raw') {\n <div class=\"form-group-column\">\n @if (formData) {\n <lib-json-view [(data)]=\"formData\"></lib-json-view>\n }\n </div>\n }\n </div>\n</div>\n@if (isLoading || !dataInit) {\n <lib-loading-indicator [isLoading]=\"isLoading || !dataInit\"></lib-loading-indicator>\n}\n", styles: [".edge-router-form-container{display:flex;flex-direction:column;height:100%;width:100%;align-items:center;gap:.9375rem}.form-field-dropdown{background-image:url(/assets/svgs/ArrowDown.svg);background-position:center right .625rem;background-repeat:no-repeat;background-size:1.125rem;padding-right:1.75rem}.disabled{opacity:.5;pointer-events:none}.toggle.disabled{cursor:not-allowed}::ng-deep .admin-toggle{width:100%;width:35%;display:flex}::ng-deep .admin-toggle .form-field-line{display:none}::ng-deep .admin-toggle .toggle{width:100%}::ng-deep .is-admin-container .form-field-title-container.title-container-2{width:35%!important}.svc-test-result{position:absolute;transition:var(--transition);height:0;width:100%;background-color:var(--background);bottom:0;font-weight:600;padding-left:.625rem;padding-right:.625rem;border-color:var(--inputBorder);border-style:solid;border-width:var(--inputBorderWidth);border-bottom-right-radius:var(--inputBorderRadius);border-bottom-left-radius:var(--inputBorderRadius);border-top-style:none}.svc-test-result.test-result-open{height:fit-content;box-shadow:0 -.125rem .6875rem 0 var(--boxShadow);padding-bottom:.9375rem;padding-top:.9375rem}.svc-test-result .close.icon-close{top:.625rem;right:.625rem;font-size:1.125rem;height:1.125rem;width:1.125rem;line-height:1.125rem}::ng-deep .admin-toggle .form-field-toggle-container:focus .form-field-label{color:var(--primaryColor)}::ng-deep .admin-toggle .form-field-toggle-container:focus .form-field-line{border-color:var(--primaryColor)}::ng-deep .admin-toggle .form-field-toggle-container:focus .toggle{border-color:var(--primaryColor);border-style:solid;border-width:var(--inputBorderWidth)}::ng-deep .admin-toggle .form-field-toggle-container:focus .toggle .switch{top:.0625rem}\n"] }]
17880
+ ], standalone: false, template: "<div class=\"projectable-form-wrapper\"\n (keyup.enter)=\"save($event)\"\n (keyup.escape)=\"closeModal(false)\"\n [class.projectable-form-hidden]=\"!dataInit\"\n >\n <lib-form-header\n [data]=\"formData\"\n [title]=\"formData.id ? 'Edit Edge Router: ' : 'Create New Edge Router'\"\n [moreActions]=\"moreActions\"\n (actionRequested)=\"headerActionRequested($event)\"\n [(formView)]=\"formView\"\n [class.is-scrolled]=\"isScrolled\"\n ></lib-form-header>\n <div class=\"edge-router-form-container projectable-form-container\" #formContainer>\n @if (formView === 'simple') {\n <div class=\"projectable-form-main-column form-group-row\">\n <div class=\"form-group-column three-fifths\">\n <lib-form-field-container [title]=\"'Edge Router Name'\" [label]=\"'REQUIRED'\">\n <input\n class=\"form-field-input\"\n placeholder=\"Name this edge router\"\n [ngClass]=\"{error: errors['name']}\"\n [(ngModel)]=\"formData.name\"\n autofocus\n #nameFieldInput\n />\n </lib-form-field-container>\n <lib-form-field-container\n [title]=\"'Select or create Edge Router attributes'\"\n [label]=\"'OPTIONAL'\"\n [contentStyle]=\"'z-index: 99999999'\"\n [helpText]=\"'Attributes are tags applied to an resource. Apply the same tag to other Edge Routers to form a group of Edge Routers.'\"\n >\n <lib-tag-selector\n [(selectedRoleAttributes)]=\"formData.roleAttributes\"\n [availableRoleAttributes]=\"edgeRouterRoleAttributes\"\n [placeholder]=\"'Add attributes to group Edge Routers'\"\n ></lib-tag-selector>\n </lib-form-field-container>\n <ng-content select=\"[slot=column-1-slot-1]\"></ng-content>\n <lib-form-field-toggle [(toggleOn)]=\"showMore\" style=\"margin: 0px 10px\"></lib-form-field-toggle>\n @if (showMore) {\n <div class=\"form-group-column\">\n <lib-form-field-container\n [title]=\"'TUNNELER'\"\n [title2]=\"'TRAVERSAL'\"\n [layout]=\"'row'\"\n class=\"form-field-advanced\"\n >\n <div class=\"config-item\" [class.disabled]=\"!tunnelerEnabledReadOnly\">\n <div class=\"config-container toggle-container\">\n <div class=\"config-container-label\">TUNNELER ENABLED</div>\n <div (click)=\"tunnelerEnabledReadOnly && toggleTunnelerEnabled()\"\n [ngClass]=\"{ on: formData.isTunnelerEnabled,disabled: !tunnelerEnabledReadOnly }\" class=\"toggle\"\n [matTooltip]=\"!tunnelerEnabledReadOnly ? 'Disabled because already hosted by netfoundry ' : ''\"\n matTooltipPosition=\"above\" style=\"pointer-events: auto;\">\n <span [hidden]=\"!formData.isTunnelerEnabled\" class=\"on-label\">YES</span>\n <span [hidden]=\"formData.isTunnelerEnabled\" class=\"off-label\">NO</span>\n <div class=\"switch\"></div>\n </div>\n </div>\n </div>\n <div class=\"config-item\">\n <div class=\"config-container toggle-container\">\n <div class=\"config-container-label\">ALLOW TRAVERSAL</div>\n <div\n (click)=\"toggleNoTraversal()\"\n [ngClass]=\"{ on: !formData.noTraversal }\"\n class=\"toggle\"\n >\n <span [hidden]=\"formData.noTraversal\" class=\"on-label\">YES</span>\n <span [hidden]=\"!formData.noTraversal\" class=\"off-label\">NO</span>\n <div class=\"switch\"></div>\n </div>\n </div>\n </div>\n </lib-form-field-container>\n @if (formData?.hostname || formData?.supportedProtocols?.tls || formData?.supportedProtocols?.wss) {\n <lib-form-field-container [showHeader]=\"false\">\n @if (formData?.hostname) {\n <div class=\"config-item\">\n <div class=\"config-item-label-container\">\n <span class=\"config-title\">Domain Name</span>\n </div>\n <div class=\"config-container domain-container\">\n <div class=\"config-container-label domain-label\">\n {{ formData?.hostname }}\n </div>\n </div>\n </div>\n }\n @if (formData?.supportedProtocols?.tls || formData?.supportedProtocols?.wss) {\n <div class=\"config-item\">\n <div class=\"config-item-label-container\">\n <span class=\"config-title\">ADVERTISE ADDRESS</span>\n </div>\n <div class=\"config-container advertise-address-container\">\n <div class=\"config-container-label advertise-address-label\">\n {{ formData?.supportedProtocols?.tls }}\n <br />\n {{ formData?.supportedProtocols?.wss }}\n </div>\n </div>\n </div>\n }\n </lib-form-field-container>\n }\n <lib-form-field-container\n [title]=\"'Custom Tags'\"\n [label]=\"'OPTIONAL'\"\n class=\"form-field-advanced\"\n >\n <lib-custom-tags [(tags)]=\"formData.tags\"></lib-custom-tags>\n </lib-form-field-container>\n <lib-form-field-container\n [title]=\"'App Data'\"\n [label]=\"'OPTIONAL'\"\n class=\"form-field-advanced\"\n >\n <lib-json-view [(data)]=\"formData.appData\"></lib-json-view>\n </lib-form-field-container>\n </div>\n }\n </div>\n <div class=\"form-group-column two-fifths\">\n <ng-content select=\"[slot=column-2-slot-1]\"></ng-content>\n @if (hasEnrolmentToken && !extService['hideZitiRegistration']) {\n <lib-form-field-container\n [showHeader]=\"false\"\n >\n <lib-qr-code\n [identity]=\"formData\"\n [jwt]=\"formData.enrollmentJwt\"\n [token]=\"formData.enrollmentToken\"\n [expiration]=\"formData.enrollmentExpiresAt\"\n (doRefresh)=\"refreshEdgeRouter()\"\n [type]=\"'router'\"\n ></lib-qr-code>\n </lib-form-field-container>\n }\n @if (formData.id) {\n <lib-form-field-container\n [title]=\"'Associated Services'\"\n [count]=\"svc.associatedServices.length\"\n [class]=\"'hide-overflow'\"\n [helpText]=\"'Preview list of all services that this Edge Router is associated with.'\"\n >\n <lib-preview-list\n [clickable]=\"false\"\n [isLoading]=\"servicesLoading\"\n [allNames]=\"svc.associatedServiceNames\"\n ></lib-preview-list>\n </lib-form-field-container>\n }\n @if (formData.id) {\n <lib-form-field-container\n [title]=\"'Associated Identities'\"\n [count]=\"svc.associatedIdentities.length\"\n [helpText]=\"'Preview list of all Identities that this Edge Router is associated with.'\"\n >\n <lib-preview-list\n [clickable]=\"false\"\n [isLoading]=\"identitiesLoading\"\n [allNames]=\"svc.associatedIdentityNames\"\n ></lib-preview-list>\n </lib-form-field-container>\n }\n <lib-form-field-container\n [title]=\"'API Calls'\"\n [label]=\"'OPTIONAL'\"\n >\n <div class=\"form-row\">\n <input class=\"form-field-input\" [value]=\"apiCallURL\"/>\n <div class=\"icon-copy copy-text\" (click)=\"copyToClipboard(apiCallURL)\"></div>\n </div>\n @if (formData) {\n <lib-json-view [(data)]=\"apiData\" [readOnly]=\"true\" [showCopy]=\"true\"></lib-json-view>\n }\n </lib-form-field-container>\n </div>\n </div>\n }\n @if (formView === 'raw') {\n <div class=\"form-group-column\">\n @if (formData) {\n <lib-json-view [(data)]=\"formData\"></lib-json-view>\n }\n </div>\n }\n </div>\n</div>\n@if (isLoading || !dataInit) {\n <lib-loading-indicator [isLoading]=\"isLoading || !dataInit\"></lib-loading-indicator>\n}\n", styles: [".edge-router-form-container{display:flex;flex-direction:column;height:100%;width:100%;align-items:center;gap:.9375rem}.form-field-dropdown{background-image:url(/assets/svgs/ArrowDown.svg);background-position:center right .625rem;background-repeat:no-repeat;background-size:1.125rem;padding-right:1.75rem}.disabled{opacity:.5;pointer-events:none}.toggle.disabled{cursor:not-allowed}::ng-deep .admin-toggle{width:100%;width:35%;display:flex}::ng-deep .admin-toggle .form-field-line{display:none}::ng-deep .admin-toggle .toggle{width:100%}::ng-deep .is-admin-container .form-field-title-container.title-container-2{width:35%!important}.svc-test-result{position:absolute;transition:var(--transition);height:0;width:100%;background-color:var(--background);bottom:0;font-weight:600;padding-left:.625rem;padding-right:.625rem;border-color:var(--inputBorder);border-style:solid;border-width:var(--inputBorderWidth);border-bottom-right-radius:var(--inputBorderRadius);border-bottom-left-radius:var(--inputBorderRadius);border-top-style:none}.svc-test-result.test-result-open{height:fit-content;box-shadow:0 -.125rem .6875rem 0 var(--boxShadow);padding-bottom:.9375rem;padding-top:.9375rem}.svc-test-result .close.icon-close{top:.625rem;right:.625rem;font-size:1.125rem;height:1.125rem;width:1.125rem;line-height:1.125rem}::ng-deep .admin-toggle .form-field-toggle-container:focus .form-field-label{color:var(--primaryColor)}::ng-deep .admin-toggle .form-field-toggle-container:focus .form-field-line{border-color:var(--primaryColor)}::ng-deep .admin-toggle .form-field-toggle-container:focus .toggle{border-color:var(--primaryColor);border-style:solid;border-width:var(--inputBorderWidth)}::ng-deep .admin-toggle .form-field-toggle-container:focus .toggle .switch{top:.0625rem}.config-container-label.domain-label,.config-container-label.advertise-address-label{text-transform:lowercase}.config-container.domain-container,.config-container.advertise-address-container{background-color:var(--stroke)}\n"] }]
17786
17881
  }], ctorParameters: () => [{ type: SettingsService, decorators: [{
17787
17882
  type: Inject,
17788
17883
  args: [SETTINGS_SERVICE]
@@ -18111,8 +18206,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
18111
18206
 
18112
18207
  class ConfigEditorComponent {
18113
18208
  set configData(data) {
18209
+ if (this._configData === data) {
18210
+ return;
18211
+ }
18114
18212
  this._configData = data;
18115
18213
  this.initFormData();
18214
+ defer(() => {
18215
+ this.updateConfigData();
18216
+ });
18116
18217
  }
18117
18218
  ;
18118
18219
  get configData() {
@@ -18160,6 +18261,16 @@ class ConfigEditorComponent {
18160
18261
  ngOnInit() {
18161
18262
  this.createForm();
18162
18263
  }
18264
+ ngAfterViewInit() {
18265
+ if (this.schema && this.dynamicForm) {
18266
+ this.createForm();
18267
+ if (this._configData && !isEmpty(this._configData)) {
18268
+ defer(() => {
18269
+ this.updateConfigData();
18270
+ });
18271
+ }
18272
+ }
18273
+ }
18163
18274
  createForm() {
18164
18275
  this.clearForm();
18165
18276
  if (this.dynamicForm && this.schema) {
@@ -18185,20 +18296,18 @@ class ConfigEditorComponent {
18185
18296
  let parentKey;
18186
18297
  if (pName)
18187
18298
  parentKey = pName.join('.');
18188
- //if (parentKey && !this.formData[parentKey]) this.formData[parentKey] = {};
18189
18299
  }
18190
18300
  }
18191
18301
  }
18192
18302
  }
18193
18303
  updateConfigData() {
18194
18304
  if (!this.showJsonView) {
18195
- this.updateFormView(this.items, this.configData);
18196
- }
18197
- else {
18198
- this.hideConfigJSON = true;
18199
- defer(() => {
18200
- this.getConfigDataFromForm();
18201
- });
18305
+ if (this.items && this.items.length > 0) {
18306
+ this.updateFormView(this.items, this.configData);
18307
+ if (!isEmpty(this.configData)) {
18308
+ this.configDataChange.emit(this.configData);
18309
+ }
18310
+ }
18202
18311
  }
18203
18312
  }
18204
18313
  updateFormView(items, data = {}) {
@@ -18252,6 +18361,9 @@ class ConfigEditorComponent {
18252
18361
  return data;
18253
18362
  }
18254
18363
  getConfigDataFromForm() {
18364
+ if (!this.items || this.items.length === 0) {
18365
+ return;
18366
+ }
18255
18367
  const data = {};
18256
18368
  this.addItemsToConfig(this.items, data);
18257
18369
  this._configData = data;
@@ -18381,7 +18493,6 @@ class ConfigEditorComponent {
18381
18493
  initFormData() {
18382
18494
  if (!this.configDataInit && !isEmpty(this._configData) && !isEmpty(this.schema)) {
18383
18495
  this.configDataInit = true;
18384
- this.formDataChanged();
18385
18496
  }
18386
18497
  }
18387
18498
  formDataChanged() {
@@ -18390,10 +18501,7 @@ class ConfigEditorComponent {
18390
18501
  });
18391
18502
  }
18392
18503
  jsonDataChanged(event) {
18393
- defer(() => {
18394
- this.configDataChange.emit(this.configData);
18395
- this.updateFormView(this.items, this.configData);
18396
- });
18504
+ this.configDataChange.emit(this.configData);
18397
18505
  }
18398
18506
  removeUndefinedProperties(data) {
18399
18507
  if (Array.isArray(data)) {
@@ -20298,10 +20406,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
20298
20406
  limitations under the License.
20299
20407
  */
20300
20408
  class EdgeRouterPoliciesPageComponent extends ListPageComponent {
20301
- constructor(svc, filterService, dialogForm, tabNames, consoleEvents) {
20302
- super(filterService, svc, consoleEvents, dialogForm);
20409
+ constructor(svc, filterService, dialogForm, tabNames, consoleEvents, extService) {
20410
+ super(filterService, svc, consoleEvents, dialogForm, extService);
20303
20411
  this.svc = svc;
20304
20412
  this.tabNames = tabNames;
20413
+ this.extService = extService;
20305
20414
  this.routerRoleAttributes = [];
20306
20415
  this.identityRoleAttributes = [];
20307
20416
  this.formDataChanged = false;
@@ -20334,6 +20443,7 @@ class EdgeRouterPoliciesPageComponent extends ListPageComponent {
20334
20443
  }
20335
20444
  }
20336
20445
  tableAction(event) {
20446
+ this.trackMenuAction(event?.action, event?.item);
20337
20447
  switch (event?.action) {
20338
20448
  case 'toggleAll':
20339
20449
  case 'toggleItem':
@@ -20364,6 +20474,14 @@ class EdgeRouterPoliciesPageComponent extends ListPageComponent {
20364
20474
  break;
20365
20475
  }
20366
20476
  }
20477
+ trackMenuAction(action, item) {
20478
+ this.extService?.consoleActionTriggered?.emit({
20479
+ action,
20480
+ page: 'edge-router-policy',
20481
+ item,
20482
+ type: 'menu-action'
20483
+ });
20484
+ }
20367
20485
  getRoleAttributes() {
20368
20486
  this.svc.getEdgeRouterRoleAttributes().then((result) => {
20369
20487
  this.routerRoleAttributes = result.data;
@@ -20390,13 +20508,16 @@ class EdgeRouterPoliciesPageComponent extends ListPageComponent {
20390
20508
  serviceTypeSelected(event) {
20391
20509
  this.svc.serviceType = event;
20392
20510
  }
20393
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: EdgeRouterPoliciesPageComponent, deps: [{ token: EdgeRouterPoliciesPageService }, { token: DataTableFilterService }, { token: i5.MatDialog }, { token: TabNameService }, { token: ConsoleEventsService }], target: i0.ɵɵFactoryTarget.Component }); }
20511
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: EdgeRouterPoliciesPageComponent, deps: [{ token: EdgeRouterPoliciesPageService }, { token: DataTableFilterService }, { token: i5.MatDialog }, { token: TabNameService }, { token: ConsoleEventsService }, { token: SHAREDZ_EXTENSION }], target: i0.ɵɵFactoryTarget.Component }); }
20394
20512
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.17", type: EdgeRouterPoliciesPageComponent, isStandalone: false, selector: "lib-edge-router-policies-page", usesInheritance: true, ngImport: i0, template: "<div class=\"ziti-page-container edge-router-policies-container\">\n <lib-list-page-header [title]=\"title\"\n [tabs]=\"tabs\"\n [showAdd]=\"!itemsSelected\"\n (actionClicked)=\"headerActionClicked($event)\"></lib-list-page-header>\n\n <lib-data-table [tableId]=\"'edge-router-policies'\"\n [rowData]=\"rowData\"\n [columnDefinitions]=\"columnDefs\"\n (actionRequested)=\"tableAction($event)\"\n [startCount]=\"startCount\"\n [endCount]=\"endCount\"\n [totalCount]=\"totalCount\"\n [emptyMsg]=\"'No Edge Router Policies defined, Click the plus to add a Edge Router Policy.'\"\n [filterApplied]=\"filterApplied\"\n [menuItems]=\"svc.menuItems\"\n (gridReady)=\"gridReady($event)\"\n >\n </lib-data-table>\n</div>\n@if (isLoading) {\n <lib-loading-indicator [isLoading]=\"isLoading\"></lib-loading-indicator>\n}\n", styles: [""], dependencies: [{ kind: "component", type: ListPageHeaderComponent, selector: "lib-list-page-header", inputs: ["title", "tabs", "showAdd", "hideAction"], outputs: ["actionClicked"] }, { kind: "component", type: DataTableComponent, selector: "lib-data-table", inputs: ["rowData", "expandRowData", "collapseRowData", "rowValidation", "isTimeSearchAvailable", "isLoading", "tableId", "options", "validateService", "rowsToggled", "tableRefreshCount", "view", "serverSideDataSource", "allowDownload", "startCount", "endCount", "totalCount", "emptyMsg", "filterApplied", "menuItems", "headerActions", "noItemsClass", "entityTypeName", "showNoItemsAdd", "currentPage", "noItemsImage", "rowHeight", "filterName", "filterColumn", "columnDefinitions", "refreshCount"], outputs: ["actionRequested", "gridReady", "dragStart", "dragLeave", "pageChanged"] }, { kind: "component", type: LoadingIndicatorComponent, selector: "lib-loading-indicator", inputs: ["isLoading"] }] }); }
20395
20513
  }
20396
20514
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: EdgeRouterPoliciesPageComponent, decorators: [{
20397
20515
  type: Component,
20398
20516
  args: [{ selector: 'lib-edge-router-policies-page', standalone: false, template: "<div class=\"ziti-page-container edge-router-policies-container\">\n <lib-list-page-header [title]=\"title\"\n [tabs]=\"tabs\"\n [showAdd]=\"!itemsSelected\"\n (actionClicked)=\"headerActionClicked($event)\"></lib-list-page-header>\n\n <lib-data-table [tableId]=\"'edge-router-policies'\"\n [rowData]=\"rowData\"\n [columnDefinitions]=\"columnDefs\"\n (actionRequested)=\"tableAction($event)\"\n [startCount]=\"startCount\"\n [endCount]=\"endCount\"\n [totalCount]=\"totalCount\"\n [emptyMsg]=\"'No Edge Router Policies defined, Click the plus to add a Edge Router Policy.'\"\n [filterApplied]=\"filterApplied\"\n [menuItems]=\"svc.menuItems\"\n (gridReady)=\"gridReady($event)\"\n >\n </lib-data-table>\n</div>\n@if (isLoading) {\n <lib-loading-indicator [isLoading]=\"isLoading\"></lib-loading-indicator>\n}\n" }]
20399
- }], ctorParameters: () => [{ type: EdgeRouterPoliciesPageService }, { type: DataTableFilterService }, { type: i5.MatDialog }, { type: TabNameService }, { type: ConsoleEventsService }] });
20517
+ }], ctorParameters: () => [{ type: EdgeRouterPoliciesPageService }, { type: DataTableFilterService }, { type: i5.MatDialog }, { type: TabNameService }, { type: ConsoleEventsService }, { type: undefined, decorators: [{
20518
+ type: Inject,
20519
+ args: [SHAREDZ_EXTENSION]
20520
+ }] }] });
20400
20521
 
20401
20522
  /*
20402
20523
  Copyright NetFoundry Inc.
@@ -20842,10 +20963,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
20842
20963
  limitations under the License.
20843
20964
  */
20844
20965
  class ServicePoliciesPageComponent extends ListPageComponent {
20845
- constructor(svc, filterService, dialogForm, tabNames, consoleEvents) {
20846
- super(filterService, svc, consoleEvents, dialogForm);
20966
+ constructor(svc, filterService, dialogForm, tabNames, consoleEvents, extService) {
20967
+ super(filterService, svc, consoleEvents, dialogForm, extService);
20847
20968
  this.svc = svc;
20848
20969
  this.tabNames = tabNames;
20970
+ this.extService = extService;
20849
20971
  this.serviceType = '';
20850
20972
  this.serviceRoleAttributes = [];
20851
20973
  this.identityRoleAttributes = [];
@@ -20879,6 +21001,7 @@ class ServicePoliciesPageComponent extends ListPageComponent {
20879
21001
  }
20880
21002
  }
20881
21003
  tableAction(event) {
21004
+ this.trackMenuAction(event?.action, event?.item);
20882
21005
  switch (event?.action) {
20883
21006
  case 'toggleAll':
20884
21007
  case 'toggleItem':
@@ -20904,6 +21027,14 @@ class ServicePoliciesPageComponent extends ListPageComponent {
20904
21027
  break;
20905
21028
  }
20906
21029
  }
21030
+ trackMenuAction(action, item) {
21031
+ this.extService?.consoleActionTriggered?.emit({
21032
+ action,
21033
+ page: 'service-policy',
21034
+ item,
21035
+ type: 'menu-action'
21036
+ });
21037
+ }
20907
21038
  getRoleAttributes() {
20908
21039
  this.svc.getServiceRoleAttributes().then((result) => {
20909
21040
  this.serviceRoleAttributes = result.data;
@@ -20930,13 +21061,16 @@ class ServicePoliciesPageComponent extends ListPageComponent {
20930
21061
  serviceTypeSelected(event) {
20931
21062
  this.svc.serviceType = event;
20932
21063
  }
20933
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: ServicePoliciesPageComponent, deps: [{ token: ServicePoliciesPageService }, { token: DataTableFilterService }, { token: i5.MatDialog }, { token: TabNameService }, { token: ConsoleEventsService }], target: i0.ɵɵFactoryTarget.Component }); }
21064
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: ServicePoliciesPageComponent, deps: [{ token: ServicePoliciesPageService }, { token: DataTableFilterService }, { token: i5.MatDialog }, { token: TabNameService }, { token: ConsoleEventsService }, { token: SHAREDZ_EXTENSION }], target: i0.ɵɵFactoryTarget.Component }); }
20934
21065
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.17", type: ServicePoliciesPageComponent, isStandalone: false, selector: "lib-service-policies-page", usesInheritance: true, ngImport: i0, template: "<div class=\"ziti-page-container ziti-service-policies-container\">\n <lib-list-page-header [title]=\"title\"\n [tabs]=\"tabs\"\n [showAdd]=\"!itemsSelected\"\n (actionClicked)=\"headerActionClicked($event)\"></lib-list-page-header>\n\n <lib-data-table [tableId]=\"'service-policies'\"\n [rowData]=\"rowData\"\n [columnDefinitions]=\"columnDefs\"\n (actionRequested)=\"tableAction($event)\"\n [startCount]=\"startCount\"\n [endCount]=\"endCount\"\n [totalCount]=\"totalCount\"\n [emptyMsg]=\"'No Service Policies defined, Click the plus to add a Service Policy.'\"\n [filterApplied]=\"filterApplied\"\n [menuItems]=\"svc.menuItems\"\n (gridReady)=\"gridReady($event)\"\n >\n </lib-data-table>\n</div>\n@if (isLoading) {\n <lib-loading-indicator [isLoading]=\"isLoading\"></lib-loading-indicator>\n}\n", styles: [""], dependencies: [{ kind: "component", type: ListPageHeaderComponent, selector: "lib-list-page-header", inputs: ["title", "tabs", "showAdd", "hideAction"], outputs: ["actionClicked"] }, { kind: "component", type: DataTableComponent, selector: "lib-data-table", inputs: ["rowData", "expandRowData", "collapseRowData", "rowValidation", "isTimeSearchAvailable", "isLoading", "tableId", "options", "validateService", "rowsToggled", "tableRefreshCount", "view", "serverSideDataSource", "allowDownload", "startCount", "endCount", "totalCount", "emptyMsg", "filterApplied", "menuItems", "headerActions", "noItemsClass", "entityTypeName", "showNoItemsAdd", "currentPage", "noItemsImage", "rowHeight", "filterName", "filterColumn", "columnDefinitions", "refreshCount"], outputs: ["actionRequested", "gridReady", "dragStart", "dragLeave", "pageChanged"] }, { kind: "component", type: LoadingIndicatorComponent, selector: "lib-loading-indicator", inputs: ["isLoading"] }] }); }
20935
21066
  }
20936
21067
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: ServicePoliciesPageComponent, decorators: [{
20937
21068
  type: Component,
20938
21069
  args: [{ selector: 'lib-service-policies-page', standalone: false, template: "<div class=\"ziti-page-container ziti-service-policies-container\">\n <lib-list-page-header [title]=\"title\"\n [tabs]=\"tabs\"\n [showAdd]=\"!itemsSelected\"\n (actionClicked)=\"headerActionClicked($event)\"></lib-list-page-header>\n\n <lib-data-table [tableId]=\"'service-policies'\"\n [rowData]=\"rowData\"\n [columnDefinitions]=\"columnDefs\"\n (actionRequested)=\"tableAction($event)\"\n [startCount]=\"startCount\"\n [endCount]=\"endCount\"\n [totalCount]=\"totalCount\"\n [emptyMsg]=\"'No Service Policies defined, Click the plus to add a Service Policy.'\"\n [filterApplied]=\"filterApplied\"\n [menuItems]=\"svc.menuItems\"\n (gridReady)=\"gridReady($event)\"\n >\n </lib-data-table>\n</div>\n@if (isLoading) {\n <lib-loading-indicator [isLoading]=\"isLoading\"></lib-loading-indicator>\n}\n" }]
20939
- }], ctorParameters: () => [{ type: ServicePoliciesPageService }, { type: DataTableFilterService }, { type: i5.MatDialog }, { type: TabNameService }, { type: ConsoleEventsService }] });
21070
+ }], ctorParameters: () => [{ type: ServicePoliciesPageService }, { type: DataTableFilterService }, { type: i5.MatDialog }, { type: TabNameService }, { type: ConsoleEventsService }, { type: undefined, decorators: [{
21071
+ type: Inject,
21072
+ args: [SHAREDZ_EXTENSION]
21073
+ }] }] });
20940
21074
 
20941
21075
  class ServicePolicyFormComponent extends ProjectableForm {
20942
21076
  constructor(settingsService, svc, zitiService, growlerService, extService, router, route, location) {
@@ -21986,10 +22120,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
21986
22120
  limitations under the License.
21987
22121
  */
21988
22122
  class ServiceEdgeRouterPoliciesPageComponent extends ListPageComponent {
21989
- constructor(svc, filterService, dialogForm, tabNames, consoleEvents) {
21990
- super(filterService, svc, consoleEvents, dialogForm);
22123
+ constructor(svc, filterService, dialogForm, tabNames, consoleEvents, extService) {
22124
+ super(filterService, svc, consoleEvents, dialogForm, extService);
21991
22125
  this.svc = svc;
21992
22126
  this.tabNames = tabNames;
22127
+ this.extService = extService;
21993
22128
  this.routerRoleAttributes = [];
21994
22129
  this.serviceRoleAttributes = [];
21995
22130
  this.formDataChanged = false;
@@ -22022,6 +22157,7 @@ class ServiceEdgeRouterPoliciesPageComponent extends ListPageComponent {
22022
22157
  }
22023
22158
  }
22024
22159
  tableAction(event) {
22160
+ this.trackMenuAction(event?.action, event?.item);
22025
22161
  switch (event?.action) {
22026
22162
  case 'toggleAll':
22027
22163
  case 'toggleItem':
@@ -22047,6 +22183,14 @@ class ServiceEdgeRouterPoliciesPageComponent extends ListPageComponent {
22047
22183
  break;
22048
22184
  }
22049
22185
  }
22186
+ trackMenuAction(action, item) {
22187
+ this.extService?.consoleActionTriggered?.emit({
22188
+ action,
22189
+ page: 'service-edge-router-policy',
22190
+ item,
22191
+ type: 'menu-action'
22192
+ });
22193
+ }
22050
22194
  getRoleAttributes() {
22051
22195
  this.svc.getEdgeRouterRoleAttributes().then((result) => {
22052
22196
  this.routerRoleAttributes = result.data;
@@ -22072,13 +22216,16 @@ class ServiceEdgeRouterPoliciesPageComponent extends ListPageComponent {
22072
22216
  serviceTypeSelected(event) {
22073
22217
  this.svc.serviceType = event;
22074
22218
  }
22075
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: ServiceEdgeRouterPoliciesPageComponent, deps: [{ token: ServiceEdgeRouterPoliciesPageService }, { token: DataTableFilterService }, { token: i5.MatDialog }, { token: TabNameService }, { token: ConsoleEventsService }], target: i0.ɵɵFactoryTarget.Component }); }
22219
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: ServiceEdgeRouterPoliciesPageComponent, deps: [{ token: ServiceEdgeRouterPoliciesPageService }, { token: DataTableFilterService }, { token: i5.MatDialog }, { token: TabNameService }, { token: ConsoleEventsService }, { token: SHAREDZ_EXTENSION }], target: i0.ɵɵFactoryTarget.Component }); }
22076
22220
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.17", type: ServiceEdgeRouterPoliciesPageComponent, isStandalone: false, selector: "lib-service-edge-router-policies-page", usesInheritance: true, ngImport: i0, template: "<div class=\"ziti-page-container service-edge-router-policies-container\">\n <lib-list-page-header [title]=\"title\"\n [tabs]=\"tabs\"\n [showAdd]=\"!itemsSelected\"\n (actionClicked)=\"headerActionClicked($event)\"></lib-list-page-header>\n\n <lib-data-table [tableId]=\"'service-edge-router-policies'\"\n [rowData]=\"rowData\"\n [columnDefinitions]=\"columnDefs\"\n (actionRequested)=\"tableAction($event)\"\n [startCount]=\"startCount\"\n [endCount]=\"endCount\"\n [totalCount]=\"totalCount\"\n [emptyMsg]=\"'No Service Edge Router Policies defined, Click the plus to add a Service Edge Router Policy.'\"\n [filterApplied]=\"filterApplied\"\n [menuItems]=\"svc.menuItems\"\n (gridReady)=\"gridReady($event)\"\n >\n </lib-data-table>\n</div>\n@if (isLoading) {\n <lib-loading-indicator [isLoading]=\"isLoading\"></lib-loading-indicator>\n}\n", styles: [""], dependencies: [{ kind: "component", type: ListPageHeaderComponent, selector: "lib-list-page-header", inputs: ["title", "tabs", "showAdd", "hideAction"], outputs: ["actionClicked"] }, { kind: "component", type: DataTableComponent, selector: "lib-data-table", inputs: ["rowData", "expandRowData", "collapseRowData", "rowValidation", "isTimeSearchAvailable", "isLoading", "tableId", "options", "validateService", "rowsToggled", "tableRefreshCount", "view", "serverSideDataSource", "allowDownload", "startCount", "endCount", "totalCount", "emptyMsg", "filterApplied", "menuItems", "headerActions", "noItemsClass", "entityTypeName", "showNoItemsAdd", "currentPage", "noItemsImage", "rowHeight", "filterName", "filterColumn", "columnDefinitions", "refreshCount"], outputs: ["actionRequested", "gridReady", "dragStart", "dragLeave", "pageChanged"] }, { kind: "component", type: LoadingIndicatorComponent, selector: "lib-loading-indicator", inputs: ["isLoading"] }] }); }
22077
22221
  }
22078
22222
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: ServiceEdgeRouterPoliciesPageComponent, decorators: [{
22079
22223
  type: Component,
22080
22224
  args: [{ selector: 'lib-service-edge-router-policies-page', standalone: false, template: "<div class=\"ziti-page-container service-edge-router-policies-container\">\n <lib-list-page-header [title]=\"title\"\n [tabs]=\"tabs\"\n [showAdd]=\"!itemsSelected\"\n (actionClicked)=\"headerActionClicked($event)\"></lib-list-page-header>\n\n <lib-data-table [tableId]=\"'service-edge-router-policies'\"\n [rowData]=\"rowData\"\n [columnDefinitions]=\"columnDefs\"\n (actionRequested)=\"tableAction($event)\"\n [startCount]=\"startCount\"\n [endCount]=\"endCount\"\n [totalCount]=\"totalCount\"\n [emptyMsg]=\"'No Service Edge Router Policies defined, Click the plus to add a Service Edge Router Policy.'\"\n [filterApplied]=\"filterApplied\"\n [menuItems]=\"svc.menuItems\"\n (gridReady)=\"gridReady($event)\"\n >\n </lib-data-table>\n</div>\n@if (isLoading) {\n <lib-loading-indicator [isLoading]=\"isLoading\"></lib-loading-indicator>\n}\n" }]
22081
- }], ctorParameters: () => [{ type: ServiceEdgeRouterPoliciesPageService }, { type: DataTableFilterService }, { type: i5.MatDialog }, { type: TabNameService }, { type: ConsoleEventsService }] });
22225
+ }], ctorParameters: () => [{ type: ServiceEdgeRouterPoliciesPageService }, { type: DataTableFilterService }, { type: i5.MatDialog }, { type: TabNameService }, { type: ConsoleEventsService }, { type: undefined, decorators: [{
22226
+ type: Inject,
22227
+ args: [SHAREDZ_EXTENSION]
22228
+ }] }] });
22082
22229
 
22083
22230
  class ServiceEdgeRouterPolicy {
22084
22231
  constructor() {
@@ -22739,10 +22886,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
22739
22886
  limitations under the License.
22740
22887
  */
22741
22888
  class TerminatorsPageComponent extends ListPageComponent {
22742
- constructor(svc, filterService, tabNames, consoleEvents, dialogForm) {
22743
- super(filterService, svc, consoleEvents, dialogForm);
22889
+ constructor(svc, filterService, tabNames, consoleEvents, dialogForm, extService) {
22890
+ super(filterService, svc, consoleEvents, dialogForm, extService);
22744
22891
  this.svc = svc;
22745
22892
  this.tabNames = tabNames;
22893
+ this.extService = extService;
22746
22894
  this.title = 'Terminators';
22747
22895
  this.formDataChanged = false;
22748
22896
  }
@@ -22770,6 +22918,7 @@ class TerminatorsPageComponent extends ListPageComponent {
22770
22918
  }
22771
22919
  }
22772
22920
  tableAction(event) {
22921
+ this.trackMenuAction(event?.action, event?.item);
22773
22922
  switch (event?.action) {
22774
22923
  case 'toggleAll':
22775
22924
  case 'toggleItem':
@@ -22788,6 +22937,14 @@ class TerminatorsPageComponent extends ListPageComponent {
22788
22937
  break;
22789
22938
  }
22790
22939
  }
22940
+ trackMenuAction(action, item) {
22941
+ this.extService?.consoleActionTriggered?.emit({
22942
+ action,
22943
+ page: 'terminator',
22944
+ item,
22945
+ type: 'menu-action'
22946
+ });
22947
+ }
22791
22948
  deleteItem(item) {
22792
22949
  this.openBulkDelete([item], 'terminator');
22793
22950
  }
@@ -22800,13 +22957,16 @@ class TerminatorsPageComponent extends ListPageComponent {
22800
22957
  dataChanged(event) {
22801
22958
  this.formDataChanged = event;
22802
22959
  }
22803
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: TerminatorsPageComponent, deps: [{ token: TerminatorsPageService }, { token: DataTableFilterService }, { token: TabNameService }, { token: ConsoleEventsService }, { token: i5.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
22960
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: TerminatorsPageComponent, deps: [{ token: TerminatorsPageService }, { token: DataTableFilterService }, { token: TabNameService }, { token: ConsoleEventsService }, { token: i5.MatDialog }, { token: SHAREDZ_EXTENSION }], target: i0.ɵɵFactoryTarget.Component }); }
22804
22961
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.17", type: TerminatorsPageComponent, isStandalone: false, selector: "lib-configurations", usesInheritance: true, ngImport: i0, template: "<div class=\"ziti-page-container ziti-terminators-container\">\n <lib-list-page-header [title]=\"title\"\n [tabs]=\"tabs\"\n [hideAction]=\"true\"\n (actionClicked)=\"headerActionClicked($event)\"></lib-list-page-header>\n <lib-data-table [tableId]=\"'terminators'\"\n [rowData]=\"rowData\"\n [columnDefinitions]=\"columnDefs\"\n (actionRequested)=\"tableAction($event)\"\n [startCount]=\"startCount\"\n [endCount]=\"endCount\"\n [totalCount]=\"totalCount\"\n [emptyMsg]=\"'No terminators defined, Click the plus to add a terminator.'\"\n [filterApplied]=\"filterApplied\"\n [filterName]=\"'Address'\"\n [filterColumn]=\"'address'\"\n [menuItems]=\"svc.menuItems\"\n (gridReady)=\"gridReady($event)\"\n [options]=\"{noSelect: true, noMenu: false}\"\n >\n </lib-data-table>\n</div>\n@if (isLoading) {\n <lib-loading-indicator [isLoading]=\"isLoading\"></lib-loading-indicator>\n}\n", styles: [""], dependencies: [{ kind: "component", type: ListPageHeaderComponent, selector: "lib-list-page-header", inputs: ["title", "tabs", "showAdd", "hideAction"], outputs: ["actionClicked"] }, { kind: "component", type: DataTableComponent, selector: "lib-data-table", inputs: ["rowData", "expandRowData", "collapseRowData", "rowValidation", "isTimeSearchAvailable", "isLoading", "tableId", "options", "validateService", "rowsToggled", "tableRefreshCount", "view", "serverSideDataSource", "allowDownload", "startCount", "endCount", "totalCount", "emptyMsg", "filterApplied", "menuItems", "headerActions", "noItemsClass", "entityTypeName", "showNoItemsAdd", "currentPage", "noItemsImage", "rowHeight", "filterName", "filterColumn", "columnDefinitions", "refreshCount"], outputs: ["actionRequested", "gridReady", "dragStart", "dragLeave", "pageChanged"] }, { kind: "component", type: LoadingIndicatorComponent, selector: "lib-loading-indicator", inputs: ["isLoading"] }] }); }
22805
22962
  }
22806
22963
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: TerminatorsPageComponent, decorators: [{
22807
22964
  type: Component,
22808
22965
  args: [{ selector: 'lib-configurations', standalone: false, template: "<div class=\"ziti-page-container ziti-terminators-container\">\n <lib-list-page-header [title]=\"title\"\n [tabs]=\"tabs\"\n [hideAction]=\"true\"\n (actionClicked)=\"headerActionClicked($event)\"></lib-list-page-header>\n <lib-data-table [tableId]=\"'terminators'\"\n [rowData]=\"rowData\"\n [columnDefinitions]=\"columnDefs\"\n (actionRequested)=\"tableAction($event)\"\n [startCount]=\"startCount\"\n [endCount]=\"endCount\"\n [totalCount]=\"totalCount\"\n [emptyMsg]=\"'No terminators defined, Click the plus to add a terminator.'\"\n [filterApplied]=\"filterApplied\"\n [filterName]=\"'Address'\"\n [filterColumn]=\"'address'\"\n [menuItems]=\"svc.menuItems\"\n (gridReady)=\"gridReady($event)\"\n [options]=\"{noSelect: true, noMenu: false}\"\n >\n </lib-data-table>\n</div>\n@if (isLoading) {\n <lib-loading-indicator [isLoading]=\"isLoading\"></lib-loading-indicator>\n}\n" }]
22809
- }], ctorParameters: () => [{ type: TerminatorsPageService }, { type: DataTableFilterService }, { type: TabNameService }, { type: ConsoleEventsService }, { type: i5.MatDialog }] });
22966
+ }], ctorParameters: () => [{ type: TerminatorsPageService }, { type: DataTableFilterService }, { type: TabNameService }, { type: ConsoleEventsService }, { type: i5.MatDialog }, { type: undefined, decorators: [{
22967
+ type: Inject,
22968
+ args: [SHAREDZ_EXTENSION]
22969
+ }] }] });
22810
22970
 
22811
22971
  class Config {
22812
22972
  constructor() {
@@ -23372,10 +23532,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
23372
23532
  limitations under the License.
23373
23533
  */
23374
23534
  class JwtSignersPageComponent extends ListPageComponent {
23375
- constructor(svc, filterService, tabNames, consoleEvents, dialogForm) {
23376
- super(filterService, svc, consoleEvents, dialogForm);
23535
+ constructor(svc, filterService, tabNames, consoleEvents, dialogForm, extService) {
23536
+ super(filterService, svc, consoleEvents, dialogForm, extService);
23377
23537
  this.svc = svc;
23378
23538
  this.tabNames = tabNames;
23539
+ this.extService = extService;
23379
23540
  this.title = 'JWT Signers';
23380
23541
  this.formDataChanged = false;
23381
23542
  }
@@ -23430,6 +23591,7 @@ class JwtSignersPageComponent extends ListPageComponent {
23430
23591
  });
23431
23592
  }
23432
23593
  tableAction(event) {
23594
+ this.trackMenuAction(event?.action, event?.item);
23433
23595
  switch (event?.action) {
23434
23596
  case 'toggleAll':
23435
23597
  case 'toggleItem':
@@ -23449,6 +23611,14 @@ class JwtSignersPageComponent extends ListPageComponent {
23449
23611
  break;
23450
23612
  }
23451
23613
  }
23614
+ trackMenuAction(action, item) {
23615
+ this.extService?.consoleActionTriggered?.emit({
23616
+ action,
23617
+ page: 'jwt-signer',
23618
+ item,
23619
+ type: 'menu-action'
23620
+ });
23621
+ }
23452
23622
  checkForAssociatedEntities(selectedItems) {
23453
23623
  this.svc.getTableData('auth-policies', this.svc.DEFAULT_PAGING).then((policies) => {
23454
23624
  const signersWithAssociations = [];
@@ -23494,13 +23664,16 @@ class JwtSignersPageComponent extends ListPageComponent {
23494
23664
  }
23495
23665
  return filename;
23496
23666
  }
23497
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: JwtSignersPageComponent, deps: [{ token: JwtSignersPageService }, { token: DataTableFilterService }, { token: TabNameService }, { token: ConsoleEventsService }, { token: i5.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
23667
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: JwtSignersPageComponent, deps: [{ token: JwtSignersPageService }, { token: DataTableFilterService }, { token: TabNameService }, { token: ConsoleEventsService }, { token: i5.MatDialog }, { token: SHAREDZ_EXTENSION }], target: i0.ɵɵFactoryTarget.Component }); }
23498
23668
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.17", type: JwtSignersPageComponent, isStandalone: false, selector: "lib-jwt-signers", usesInheritance: true, ngImport: i0, template: "<div class=\"ziti-page-container ziti-configs-container\">\n @if (_networkJwt) {\n <a\n class=\"network-jwt-link save-button\"\n href=\"data:application/ziti-jwt;charset=utf-8,{{networkJwt}}\"\n download=\"{{networkJwtFilename}}.jwt\"\n >\n Download Network JWT\n </a>\n }\n <lib-list-page-header [title]=\"title\"\n [tabs]=\"tabs\"\n [showAdd]=\"!itemsSelected\"\n (actionClicked)=\"headerActionClicked($event)\"></lib-list-page-header>\n\n <lib-data-table [tableId]=\"'ext-jwt-signers'\"\n [rowData]=\"rowData\"\n [columnDefinitions]=\"columnDefs\"\n (actionRequested)=\"tableAction($event)\"\n [startCount]=\"startCount\"\n [endCount]=\"endCount\"\n [totalCount]=\"totalCount\"\n [emptyMsg]=\"'No Configurations defined, Click the plus to add a Configuration.'\"\n [filterApplied]=\"filterApplied\"\n [menuItems]=\"svc.menuItems\"\n (gridReady)=\"gridReady($event)\"\n >\n </lib-data-table>\n</div>\n@if (isLoading) {\n <lib-loading-indicator [isLoading]=\"isLoading\"></lib-loading-indicator>\n}\n", styles: [".configurations{width:100%;height:100%;display:flex;flex-direction:column;position:relative;flex:1 1 auto}.network-jwt-link{position:absolute;right:5.625rem;top:1.5625rem;z-index:10001;height:var(--buttonHeightSmall);padding-left:var(--buttonImagePaddingSmall);background-position:var(--buttonImagePositionSmall);background-image:url(/assets/svgs/DownloadKey.svg);background-repeat:no-repeat;background-size:var(--buttonImageSizeSmall);color:var(--white)}\n"], dependencies: [{ kind: "component", type: ListPageHeaderComponent, selector: "lib-list-page-header", inputs: ["title", "tabs", "showAdd", "hideAction"], outputs: ["actionClicked"] }, { kind: "component", type: DataTableComponent, selector: "lib-data-table", inputs: ["rowData", "expandRowData", "collapseRowData", "rowValidation", "isTimeSearchAvailable", "isLoading", "tableId", "options", "validateService", "rowsToggled", "tableRefreshCount", "view", "serverSideDataSource", "allowDownload", "startCount", "endCount", "totalCount", "emptyMsg", "filterApplied", "menuItems", "headerActions", "noItemsClass", "entityTypeName", "showNoItemsAdd", "currentPage", "noItemsImage", "rowHeight", "filterName", "filterColumn", "columnDefinitions", "refreshCount"], outputs: ["actionRequested", "gridReady", "dragStart", "dragLeave", "pageChanged"] }, { kind: "component", type: LoadingIndicatorComponent, selector: "lib-loading-indicator", inputs: ["isLoading"] }] }); }
23499
23669
  }
23500
23670
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: JwtSignersPageComponent, decorators: [{
23501
23671
  type: Component,
23502
23672
  args: [{ selector: 'lib-jwt-signers', standalone: false, template: "<div class=\"ziti-page-container ziti-configs-container\">\n @if (_networkJwt) {\n <a\n class=\"network-jwt-link save-button\"\n href=\"data:application/ziti-jwt;charset=utf-8,{{networkJwt}}\"\n download=\"{{networkJwtFilename}}.jwt\"\n >\n Download Network JWT\n </a>\n }\n <lib-list-page-header [title]=\"title\"\n [tabs]=\"tabs\"\n [showAdd]=\"!itemsSelected\"\n (actionClicked)=\"headerActionClicked($event)\"></lib-list-page-header>\n\n <lib-data-table [tableId]=\"'ext-jwt-signers'\"\n [rowData]=\"rowData\"\n [columnDefinitions]=\"columnDefs\"\n (actionRequested)=\"tableAction($event)\"\n [startCount]=\"startCount\"\n [endCount]=\"endCount\"\n [totalCount]=\"totalCount\"\n [emptyMsg]=\"'No Configurations defined, Click the plus to add a Configuration.'\"\n [filterApplied]=\"filterApplied\"\n [menuItems]=\"svc.menuItems\"\n (gridReady)=\"gridReady($event)\"\n >\n </lib-data-table>\n</div>\n@if (isLoading) {\n <lib-loading-indicator [isLoading]=\"isLoading\"></lib-loading-indicator>\n}\n", styles: [".configurations{width:100%;height:100%;display:flex;flex-direction:column;position:relative;flex:1 1 auto}.network-jwt-link{position:absolute;right:5.625rem;top:1.5625rem;z-index:10001;height:var(--buttonHeightSmall);padding-left:var(--buttonImagePaddingSmall);background-position:var(--buttonImagePositionSmall);background-image:url(/assets/svgs/DownloadKey.svg);background-repeat:no-repeat;background-size:var(--buttonImageSizeSmall);color:var(--white)}\n"] }]
23503
- }], ctorParameters: () => [{ type: JwtSignersPageService }, { type: DataTableFilterService }, { type: TabNameService }, { type: ConsoleEventsService }, { type: i5.MatDialog }] });
23673
+ }], ctorParameters: () => [{ type: JwtSignersPageService }, { type: DataTableFilterService }, { type: TabNameService }, { type: ConsoleEventsService }, { type: i5.MatDialog }, { type: undefined, decorators: [{
23674
+ type: Inject,
23675
+ args: [SHAREDZ_EXTENSION]
23676
+ }] }] });
23504
23677
 
23505
23678
  class JwtSigner {
23506
23679
  constructor() {
@@ -24394,10 +24567,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
24394
24567
  limitations under the License.
24395
24568
  */
24396
24569
  class AuthPoliciesPageComponent extends ListPageComponent {
24397
- constructor(svc, filterService, tabNames, consoleEvents, dialogForm) {
24398
- super(filterService, svc, consoleEvents, dialogForm);
24570
+ constructor(svc, filterService, tabNames, consoleEvents, dialogForm, extService) {
24571
+ super(filterService, svc, consoleEvents, dialogForm, extService);
24399
24572
  this.svc = svc;
24400
24573
  this.tabNames = tabNames;
24574
+ this.extService = extService;
24401
24575
  this.title = 'Auth Policies';
24402
24576
  this.formDataChanged = false;
24403
24577
  }
@@ -24434,6 +24608,7 @@ class AuthPoliciesPageComponent extends ListPageComponent {
24434
24608
  }
24435
24609
  }
24436
24610
  tableAction(event) {
24611
+ this.trackMenuAction(event?.action, event?.item);
24437
24612
  switch (event?.action) {
24438
24613
  case 'toggleAll':
24439
24614
  case 'toggleItem':
@@ -24468,6 +24643,14 @@ class AuthPoliciesPageComponent extends ListPageComponent {
24468
24643
  break;
24469
24644
  }
24470
24645
  }
24646
+ trackMenuAction(action, item) {
24647
+ this.extService?.consoleActionTriggered?.emit({
24648
+ action,
24649
+ page: 'auth-policy',
24650
+ item,
24651
+ type: 'menu-action'
24652
+ });
24653
+ }
24471
24654
  deleteItem(item) {
24472
24655
  this.openBulkDelete([item], 'auth-policy');
24473
24656
  }
@@ -24480,13 +24663,16 @@ class AuthPoliciesPageComponent extends ListPageComponent {
24480
24663
  dataChanged(event) {
24481
24664
  this.formDataChanged = event;
24482
24665
  }
24483
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AuthPoliciesPageComponent, deps: [{ token: AuthPoliciesPageService }, { token: DataTableFilterService }, { token: TabNameService }, { token: ConsoleEventsService }, { token: i5.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
24666
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AuthPoliciesPageComponent, deps: [{ token: AuthPoliciesPageService }, { token: DataTableFilterService }, { token: TabNameService }, { token: ConsoleEventsService }, { token: i5.MatDialog }, { token: SHAREDZ_EXTENSION }], target: i0.ɵɵFactoryTarget.Component }); }
24484
24667
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: AuthPoliciesPageComponent, isStandalone: false, selector: "lib-auth-policies", usesInheritance: true, ngImport: i0, template: "<div class=\"ziti-page-container ziti-auth-policies-container\">\n <lib-list-page-header [title]=\"title\"\n [tabs]=\"tabs\"\n [showAdd]=\"!itemsSelected\"\n (actionClicked)=\"headerActionClicked($event)\"></lib-list-page-header>\n\n <lib-data-table [tableId]=\"'auth-policies'\"\n [rowData]=\"rowData\"\n [columnDefinitions]=\"columnDefs\"\n (actionRequested)=\"tableAction($event)\"\n [startCount]=\"startCount\"\n [endCount]=\"endCount\"\n [totalCount]=\"totalCount\"\n [emptyMsg]=\"'No Auth Policies defined, Click the plus to add a Configuration.'\"\n [filterApplied]=\"filterApplied\"\n [menuItems]=\"svc.menuItems\"\n (gridReady)=\"gridReady($event)\"\n >\n </lib-data-table>\n</div>\n", styles: [".configurations{width:100%;height:100%;display:flex;flex-direction:column;position:relative;flex:1 1 auto}\n"], dependencies: [{ kind: "component", type: ListPageHeaderComponent, selector: "lib-list-page-header", inputs: ["title", "tabs", "showAdd", "hideAction"], outputs: ["actionClicked"] }, { kind: "component", type: DataTableComponent, selector: "lib-data-table", inputs: ["rowData", "expandRowData", "collapseRowData", "rowValidation", "isTimeSearchAvailable", "isLoading", "tableId", "options", "validateService", "rowsToggled", "tableRefreshCount", "view", "serverSideDataSource", "allowDownload", "startCount", "endCount", "totalCount", "emptyMsg", "filterApplied", "menuItems", "headerActions", "noItemsClass", "entityTypeName", "showNoItemsAdd", "currentPage", "noItemsImage", "rowHeight", "filterName", "filterColumn", "columnDefinitions", "refreshCount"], outputs: ["actionRequested", "gridReady", "dragStart", "dragLeave", "pageChanged"] }] }); }
24485
24668
  }
24486
24669
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: AuthPoliciesPageComponent, decorators: [{
24487
24670
  type: Component,
24488
24671
  args: [{ selector: 'lib-auth-policies', standalone: false, template: "<div class=\"ziti-page-container ziti-auth-policies-container\">\n <lib-list-page-header [title]=\"title\"\n [tabs]=\"tabs\"\n [showAdd]=\"!itemsSelected\"\n (actionClicked)=\"headerActionClicked($event)\"></lib-list-page-header>\n\n <lib-data-table [tableId]=\"'auth-policies'\"\n [rowData]=\"rowData\"\n [columnDefinitions]=\"columnDefs\"\n (actionRequested)=\"tableAction($event)\"\n [startCount]=\"startCount\"\n [endCount]=\"endCount\"\n [totalCount]=\"totalCount\"\n [emptyMsg]=\"'No Auth Policies defined, Click the plus to add a Configuration.'\"\n [filterApplied]=\"filterApplied\"\n [menuItems]=\"svc.menuItems\"\n (gridReady)=\"gridReady($event)\"\n >\n </lib-data-table>\n</div>\n", styles: [".configurations{width:100%;height:100%;display:flex;flex-direction:column;position:relative;flex:1 1 auto}\n"] }]
24489
- }], ctorParameters: () => [{ type: AuthPoliciesPageService }, { type: DataTableFilterService }, { type: TabNameService }, { type: ConsoleEventsService }, { type: i5.MatDialog }] });
24672
+ }], ctorParameters: () => [{ type: AuthPoliciesPageService }, { type: DataTableFilterService }, { type: TabNameService }, { type: ConsoleEventsService }, { type: i5.MatDialog }, { type: undefined, decorators: [{
24673
+ type: Inject,
24674
+ args: [SHAREDZ_EXTENSION]
24675
+ }] }] });
24490
24676
 
24491
24677
  class AuthPolicy {
24492
24678
  constructor() {
@@ -25164,10 +25350,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
25164
25350
  limitations under the License.
25165
25351
  */
25166
25352
  class CertificateAuthoritiesPageComponent extends ListPageComponent {
25167
- constructor(svc, filterService, tabNames, consoleEvents, dialogForm) {
25168
- super(filterService, svc, consoleEvents, dialogForm);
25353
+ constructor(svc, filterService, tabNames, consoleEvents, dialogForm, extService) {
25354
+ super(filterService, svc, consoleEvents, dialogForm, extService);
25169
25355
  this.svc = svc;
25170
25356
  this.tabNames = tabNames;
25357
+ this.extService = extService;
25171
25358
  this.title = 'Certificate Authorities';
25172
25359
  this.formDataChanged = false;
25173
25360
  }
@@ -25195,6 +25382,7 @@ class CertificateAuthoritiesPageComponent extends ListPageComponent {
25195
25382
  }
25196
25383
  }
25197
25384
  tableAction(event) {
25385
+ this.trackMenuAction(event?.action, event?.item);
25198
25386
  switch (event?.action) {
25199
25387
  case 'toggleAll':
25200
25388
  case 'toggleItem':
@@ -25222,6 +25410,14 @@ class CertificateAuthoritiesPageComponent extends ListPageComponent {
25222
25410
  break;
25223
25411
  }
25224
25412
  }
25413
+ trackMenuAction(action, item) {
25414
+ this.extService?.consoleActionTriggered?.emit({
25415
+ action,
25416
+ page: 'certificate-authority',
25417
+ item,
25418
+ type: 'menu-action'
25419
+ });
25420
+ }
25225
25421
  deleteItem(item) {
25226
25422
  this.openBulkDelete([item], 'certificate authority');
25227
25423
  }
@@ -25247,13 +25443,16 @@ class CertificateAuthoritiesPageComponent extends ListPageComponent {
25247
25443
  });
25248
25444
  super.gridReady(event);
25249
25445
  }
25250
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: CertificateAuthoritiesPageComponent, deps: [{ token: CertificateAuthoritiesPageService }, { token: DataTableFilterService }, { token: TabNameService }, { token: ConsoleEventsService }, { token: i5.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
25446
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: CertificateAuthoritiesPageComponent, deps: [{ token: CertificateAuthoritiesPageService }, { token: DataTableFilterService }, { token: TabNameService }, { token: ConsoleEventsService }, { token: i5.MatDialog }, { token: SHAREDZ_EXTENSION }], target: i0.ɵɵFactoryTarget.Component }); }
25251
25447
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.17", type: CertificateAuthoritiesPageComponent, isStandalone: false, selector: "lib-auth-policies", usesInheritance: true, ngImport: i0, template: "<div class=\"ziti-page-container ziti-cert-authorities-container\">\n <lib-list-page-header [title]=\"title\"\n [tabs]=\"tabs\"\n [showAdd]=\"!itemsSelected\"\n (actionClicked)=\"headerActionClicked($event)\"></lib-list-page-header>\n\n <lib-data-table [tableId]=\"'certificate-authorities'\"\n [rowData]=\"rowData\"\n [columnDefinitions]=\"columnDefs\"\n (actionRequested)=\"tableAction($event)\"\n [startCount]=\"startCount\"\n [endCount]=\"endCount\"\n [totalCount]=\"totalCount\"\n [emptyMsg]=\"'No Certificate Authorities defined, Click the plus to add a Configuration.'\"\n [filterApplied]=\"filterApplied\"\n [menuItems]=\"svc.menuItems\"\n (gridReady)=\"gridReady($event)\"\n >\n </lib-data-table>\n</div>\n@if (isLoading) {\n <lib-loading-indicator [isLoading]=\"isLoading\"></lib-loading-indicator>\n}\n", styles: [".certificate-authorities{width:100%;height:100%;display:flex;flex-direction:column;position:relative;flex:1 1 auto}\n"], dependencies: [{ kind: "component", type: ListPageHeaderComponent, selector: "lib-list-page-header", inputs: ["title", "tabs", "showAdd", "hideAction"], outputs: ["actionClicked"] }, { kind: "component", type: DataTableComponent, selector: "lib-data-table", inputs: ["rowData", "expandRowData", "collapseRowData", "rowValidation", "isTimeSearchAvailable", "isLoading", "tableId", "options", "validateService", "rowsToggled", "tableRefreshCount", "view", "serverSideDataSource", "allowDownload", "startCount", "endCount", "totalCount", "emptyMsg", "filterApplied", "menuItems", "headerActions", "noItemsClass", "entityTypeName", "showNoItemsAdd", "currentPage", "noItemsImage", "rowHeight", "filterName", "filterColumn", "columnDefinitions", "refreshCount"], outputs: ["actionRequested", "gridReady", "dragStart", "dragLeave", "pageChanged"] }, { kind: "component", type: LoadingIndicatorComponent, selector: "lib-loading-indicator", inputs: ["isLoading"] }] }); }
25252
25448
  }
25253
25449
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: CertificateAuthoritiesPageComponent, decorators: [{
25254
25450
  type: Component,
25255
25451
  args: [{ selector: 'lib-auth-policies', standalone: false, template: "<div class=\"ziti-page-container ziti-cert-authorities-container\">\n <lib-list-page-header [title]=\"title\"\n [tabs]=\"tabs\"\n [showAdd]=\"!itemsSelected\"\n (actionClicked)=\"headerActionClicked($event)\"></lib-list-page-header>\n\n <lib-data-table [tableId]=\"'certificate-authorities'\"\n [rowData]=\"rowData\"\n [columnDefinitions]=\"columnDefs\"\n (actionRequested)=\"tableAction($event)\"\n [startCount]=\"startCount\"\n [endCount]=\"endCount\"\n [totalCount]=\"totalCount\"\n [emptyMsg]=\"'No Certificate Authorities defined, Click the plus to add a Configuration.'\"\n [filterApplied]=\"filterApplied\"\n [menuItems]=\"svc.menuItems\"\n (gridReady)=\"gridReady($event)\"\n >\n </lib-data-table>\n</div>\n@if (isLoading) {\n <lib-loading-indicator [isLoading]=\"isLoading\"></lib-loading-indicator>\n}\n", styles: [".certificate-authorities{width:100%;height:100%;display:flex;flex-direction:column;position:relative;flex:1 1 auto}\n"] }]
25256
- }], ctorParameters: () => [{ type: CertificateAuthoritiesPageService }, { type: DataTableFilterService }, { type: TabNameService }, { type: ConsoleEventsService }, { type: i5.MatDialog }] });
25452
+ }], ctorParameters: () => [{ type: CertificateAuthoritiesPageService }, { type: DataTableFilterService }, { type: TabNameService }, { type: ConsoleEventsService }, { type: i5.MatDialog }, { type: undefined, decorators: [{
25453
+ type: Inject,
25454
+ args: [SHAREDZ_EXTENSION]
25455
+ }] }] });
25257
25456
 
25258
25457
  class CertificateAuthority {
25259
25458
  constructor() {
@@ -26214,10 +26413,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
26214
26413
  limitations under the License.
26215
26414
  */
26216
26415
  class ConfigTypesPageComponent extends ListPageComponent {
26217
- constructor(svc, filterService, tabNames, consoleEvents, dialogForm) {
26218
- super(filterService, svc, consoleEvents, dialogForm);
26416
+ constructor(svc, filterService, tabNames, consoleEvents, dialogForm, extService) {
26417
+ super(filterService, svc, consoleEvents, dialogForm, extService);
26219
26418
  this.svc = svc;
26220
26419
  this.tabNames = tabNames;
26420
+ this.extService = extService;
26221
26421
  this.title = 'Config Types';
26222
26422
  this.formDataChanged = false;
26223
26423
  this.reservedNames = ['host.v1', 'host.v2', 'intercept.v1', 'ziti-tunneler-client.v1', 'ziti-tunneler-server.v1'];
@@ -26246,6 +26446,7 @@ class ConfigTypesPageComponent extends ListPageComponent {
26246
26446
  }
26247
26447
  }
26248
26448
  tableAction(event) {
26449
+ this.trackMenuAction(event?.action, event?.item);
26249
26450
  switch (event?.action) {
26250
26451
  case 'toggleAll':
26251
26452
  case 'toggleItem':
@@ -26270,6 +26471,14 @@ class ConfigTypesPageComponent extends ListPageComponent {
26270
26471
  break;
26271
26472
  }
26272
26473
  }
26474
+ trackMenuAction(action, item) {
26475
+ this.extService?.consoleActionTriggered?.emit({
26476
+ action,
26477
+ page: 'config-type',
26478
+ item,
26479
+ type: 'menu-action'
26480
+ });
26481
+ }
26273
26482
  deleteItem(item) {
26274
26483
  this.openBulkDelete([item], 'config type');
26275
26484
  }
@@ -26307,13 +26516,16 @@ class ConfigTypesPageComponent extends ListPageComponent {
26307
26516
  }
26308
26517
  });
26309
26518
  }
26310
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: ConfigTypesPageComponent, deps: [{ token: ConfigTypesPageService }, { token: DataTableFilterService }, { token: TabNameService }, { token: ConsoleEventsService }, { token: i5.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
26519
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: ConfigTypesPageComponent, deps: [{ token: ConfigTypesPageService }, { token: DataTableFilterService }, { token: TabNameService }, { token: ConsoleEventsService }, { token: i5.MatDialog }, { token: SHAREDZ_EXTENSION }], target: i0.ɵɵFactoryTarget.Component }); }
26311
26520
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.17", type: ConfigTypesPageComponent, isStandalone: false, selector: "lib-configurations", usesInheritance: true, ngImport: i0, template: "<div class=\"ziti-page-container ziti-config-types-container\">\n <lib-list-page-header [title]=\"title\"\n [tabs]=\"tabs\"\n [showAdd]=\"!itemsSelected\"\n (actionClicked)=\"headerActionClicked($event)\"></lib-list-page-header>\n\n <lib-data-table [tableId]=\"'config-types'\"\n [rowData]=\"rowData\"\n [columnDefinitions]=\"columnDefs\"\n (actionRequested)=\"tableAction($event)\"\n [startCount]=\"startCount\"\n [endCount]=\"endCount\"\n [totalCount]=\"totalCount\"\n [emptyMsg]=\"'No Config Types defined, Click the plus to add a Configuration.'\"\n [filterApplied]=\"filterApplied\"\n [menuItems]=\"svc.menuItems\"\n (gridReady)=\"gridReady($event)\"\n >\n </lib-data-table>\n</div>\n@if (isLoading) {\n <lib-loading-indicator [isLoading]=\"isLoading\"></lib-loading-indicator>\n}", styles: [""], dependencies: [{ kind: "component", type: ListPageHeaderComponent, selector: "lib-list-page-header", inputs: ["title", "tabs", "showAdd", "hideAction"], outputs: ["actionClicked"] }, { kind: "component", type: DataTableComponent, selector: "lib-data-table", inputs: ["rowData", "expandRowData", "collapseRowData", "rowValidation", "isTimeSearchAvailable", "isLoading", "tableId", "options", "validateService", "rowsToggled", "tableRefreshCount", "view", "serverSideDataSource", "allowDownload", "startCount", "endCount", "totalCount", "emptyMsg", "filterApplied", "menuItems", "headerActions", "noItemsClass", "entityTypeName", "showNoItemsAdd", "currentPage", "noItemsImage", "rowHeight", "filterName", "filterColumn", "columnDefinitions", "refreshCount"], outputs: ["actionRequested", "gridReady", "dragStart", "dragLeave", "pageChanged"] }, { kind: "component", type: LoadingIndicatorComponent, selector: "lib-loading-indicator", inputs: ["isLoading"] }] }); }
26312
26521
  }
26313
26522
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: ConfigTypesPageComponent, decorators: [{
26314
26523
  type: Component,
26315
26524
  args: [{ selector: 'lib-configurations', standalone: false, template: "<div class=\"ziti-page-container ziti-config-types-container\">\n <lib-list-page-header [title]=\"title\"\n [tabs]=\"tabs\"\n [showAdd]=\"!itemsSelected\"\n (actionClicked)=\"headerActionClicked($event)\"></lib-list-page-header>\n\n <lib-data-table [tableId]=\"'config-types'\"\n [rowData]=\"rowData\"\n [columnDefinitions]=\"columnDefs\"\n (actionRequested)=\"tableAction($event)\"\n [startCount]=\"startCount\"\n [endCount]=\"endCount\"\n [totalCount]=\"totalCount\"\n [emptyMsg]=\"'No Config Types defined, Click the plus to add a Configuration.'\"\n [filterApplied]=\"filterApplied\"\n [menuItems]=\"svc.menuItems\"\n (gridReady)=\"gridReady($event)\"\n >\n </lib-data-table>\n</div>\n@if (isLoading) {\n <lib-loading-indicator [isLoading]=\"isLoading\"></lib-loading-indicator>\n}" }]
26316
- }], ctorParameters: () => [{ type: ConfigTypesPageService }, { type: DataTableFilterService }, { type: TabNameService }, { type: ConsoleEventsService }, { type: i5.MatDialog }] });
26525
+ }], ctorParameters: () => [{ type: ConfigTypesPageService }, { type: DataTableFilterService }, { type: TabNameService }, { type: ConsoleEventsService }, { type: i5.MatDialog }, { type: undefined, decorators: [{
26526
+ type: Inject,
26527
+ args: [SHAREDZ_EXTENSION]
26528
+ }] }] });
26317
26529
 
26318
26530
  class ConfigType {
26319
26531
  constructor() {
@@ -26828,10 +27040,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
26828
27040
  limitations under the License.
26829
27041
  */
26830
27042
  class PostureChecksPageComponent extends ListPageComponent {
26831
- constructor(svc, filterService, tabNames, consoleEvents, dialogForm) {
26832
- super(filterService, svc, consoleEvents, dialogForm);
27043
+ constructor(svc, filterService, tabNames, consoleEvents, dialogForm, extService) {
27044
+ super(filterService, svc, consoleEvents, dialogForm, extService);
26833
27045
  this.svc = svc;
26834
27046
  this.tabNames = tabNames;
27047
+ this.extService = extService;
26835
27048
  this.title = 'Posture Checks';
26836
27049
  this.formDataChanged = false;
26837
27050
  }
@@ -26859,6 +27072,7 @@ class PostureChecksPageComponent extends ListPageComponent {
26859
27072
  }
26860
27073
  }
26861
27074
  tableAction(event) {
27075
+ this.trackMenuAction(event?.action, event?.item);
26862
27076
  switch (event?.action) {
26863
27077
  case 'toggleAll':
26864
27078
  case 'toggleItem':
@@ -26883,6 +27097,14 @@ class PostureChecksPageComponent extends ListPageComponent {
26883
27097
  break;
26884
27098
  }
26885
27099
  }
27100
+ trackMenuAction(action, item) {
27101
+ this.extService?.consoleActionTriggered?.emit({
27102
+ action,
27103
+ page: 'posture-check',
27104
+ item,
27105
+ type: 'menu-action'
27106
+ });
27107
+ }
26886
27108
  deleteItem(item) {
26887
27109
  this.openBulkDelete([item], 'posture check');
26888
27110
  }
@@ -26895,13 +27117,16 @@ class PostureChecksPageComponent extends ListPageComponent {
26895
27117
  dataChanged(event) {
26896
27118
  this.formDataChanged = event;
26897
27119
  }
26898
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: PostureChecksPageComponent, deps: [{ token: PostureChecksPageService }, { token: DataTableFilterService }, { token: TabNameService }, { token: ConsoleEventsService }, { token: i5.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
27120
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: PostureChecksPageComponent, deps: [{ token: PostureChecksPageService }, { token: DataTableFilterService }, { token: TabNameService }, { token: ConsoleEventsService }, { token: i5.MatDialog }, { token: SHAREDZ_EXTENSION }], target: i0.ɵɵFactoryTarget.Component }); }
26899
27121
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.17", type: PostureChecksPageComponent, isStandalone: false, selector: "lib-configurations", usesInheritance: true, ngImport: i0, template: "<div class=\"ziti-page-container ziti-posture-checks-container\">\n <lib-list-page-header [title]=\"title\"\n [tabs]=\"tabs\"\n [showAdd]=\"!itemsSelected\"\n (actionClicked)=\"headerActionClicked($event)\"></lib-list-page-header>\n\n <lib-data-table [tableId]=\"'posture-checks'\"\n [rowData]=\"rowData\"\n [columnDefinitions]=\"columnDefs\"\n (actionRequested)=\"tableAction($event)\"\n [startCount]=\"startCount\"\n [endCount]=\"endCount\"\n [totalCount]=\"totalCount\"\n [emptyMsg]=\"'No Posture Checks defined, Click the plus to add a Configuration.'\"\n [filterApplied]=\"filterApplied\"\n [menuItems]=\"svc.menuItems\"\n (gridReady)=\"gridReady($event)\"\n >\n </lib-data-table>\n</div>\n@if (isLoading) {\n <lib-loading-indicator [isLoading]=\"isLoading\"></lib-loading-indicator>\n}", styles: [""], dependencies: [{ kind: "component", type: ListPageHeaderComponent, selector: "lib-list-page-header", inputs: ["title", "tabs", "showAdd", "hideAction"], outputs: ["actionClicked"] }, { kind: "component", type: DataTableComponent, selector: "lib-data-table", inputs: ["rowData", "expandRowData", "collapseRowData", "rowValidation", "isTimeSearchAvailable", "isLoading", "tableId", "options", "validateService", "rowsToggled", "tableRefreshCount", "view", "serverSideDataSource", "allowDownload", "startCount", "endCount", "totalCount", "emptyMsg", "filterApplied", "menuItems", "headerActions", "noItemsClass", "entityTypeName", "showNoItemsAdd", "currentPage", "noItemsImage", "rowHeight", "filterName", "filterColumn", "columnDefinitions", "refreshCount"], outputs: ["actionRequested", "gridReady", "dragStart", "dragLeave", "pageChanged"] }, { kind: "component", type: LoadingIndicatorComponent, selector: "lib-loading-indicator", inputs: ["isLoading"] }] }); }
26900
27122
  }
26901
27123
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: PostureChecksPageComponent, decorators: [{
26902
27124
  type: Component,
26903
27125
  args: [{ selector: 'lib-configurations', standalone: false, template: "<div class=\"ziti-page-container ziti-posture-checks-container\">\n <lib-list-page-header [title]=\"title\"\n [tabs]=\"tabs\"\n [showAdd]=\"!itemsSelected\"\n (actionClicked)=\"headerActionClicked($event)\"></lib-list-page-header>\n\n <lib-data-table [tableId]=\"'posture-checks'\"\n [rowData]=\"rowData\"\n [columnDefinitions]=\"columnDefs\"\n (actionRequested)=\"tableAction($event)\"\n [startCount]=\"startCount\"\n [endCount]=\"endCount\"\n [totalCount]=\"totalCount\"\n [emptyMsg]=\"'No Posture Checks defined, Click the plus to add a Configuration.'\"\n [filterApplied]=\"filterApplied\"\n [menuItems]=\"svc.menuItems\"\n (gridReady)=\"gridReady($event)\"\n >\n </lib-data-table>\n</div>\n@if (isLoading) {\n <lib-loading-indicator [isLoading]=\"isLoading\"></lib-loading-indicator>\n}" }]
26904
- }], ctorParameters: () => [{ type: PostureChecksPageService }, { type: DataTableFilterService }, { type: TabNameService }, { type: ConsoleEventsService }, { type: i5.MatDialog }] });
27126
+ }], ctorParameters: () => [{ type: PostureChecksPageService }, { type: DataTableFilterService }, { type: TabNameService }, { type: ConsoleEventsService }, { type: i5.MatDialog }, { type: undefined, decorators: [{
27127
+ type: Inject,
27128
+ args: [SHAREDZ_EXTENSION]
27129
+ }] }] });
26905
27130
 
26906
27131
  class PostureCheck {
26907
27132
  constructor() {
@@ -27647,10 +27872,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
27647
27872
  limitations under the License.
27648
27873
  */
27649
27874
  class SessionsPageComponent extends ListPageComponent {
27650
- constructor(svc, filterService, tabNames, consoleEvents, dialogForm) {
27651
- super(filterService, svc, consoleEvents, dialogForm);
27875
+ constructor(svc, filterService, tabNames, consoleEvents, dialogForm, extService) {
27876
+ super(filterService, svc, consoleEvents, dialogForm, extService);
27652
27877
  this.svc = svc;
27653
27878
  this.tabNames = tabNames;
27879
+ this.extService = extService;
27654
27880
  this.title = 'Sessions';
27655
27881
  this.formDataChanged = false;
27656
27882
  }
@@ -27678,6 +27904,7 @@ class SessionsPageComponent extends ListPageComponent {
27678
27904
  }
27679
27905
  }
27680
27906
  tableAction(event) {
27907
+ this.trackMenuAction(event?.action, event?.item);
27681
27908
  switch (event?.action) {
27682
27909
  case 'toggleAll':
27683
27910
  case 'toggleItem':
@@ -27702,6 +27929,14 @@ class SessionsPageComponent extends ListPageComponent {
27702
27929
  break;
27703
27930
  }
27704
27931
  }
27932
+ trackMenuAction(action, item) {
27933
+ this.extService?.consoleActionTriggered?.emit({
27934
+ action,
27935
+ page: 'session',
27936
+ item,
27937
+ type: 'menu-action'
27938
+ });
27939
+ }
27705
27940
  openBulkDelete(selectedItems, label) {
27706
27941
  const updatedItems = selectedItems.map((item) => {
27707
27942
  return {
@@ -27723,13 +27958,16 @@ class SessionsPageComponent extends ListPageComponent {
27723
27958
  dataChanged(event) {
27724
27959
  this.formDataChanged = event;
27725
27960
  }
27726
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: SessionsPageComponent, deps: [{ token: SessionsPageService }, { token: DataTableFilterService }, { token: TabNameService }, { token: ConsoleEventsService }, { token: i5.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
27961
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: SessionsPageComponent, deps: [{ token: SessionsPageService }, { token: DataTableFilterService }, { token: TabNameService }, { token: ConsoleEventsService }, { token: i5.MatDialog }, { token: SHAREDZ_EXTENSION }], target: i0.ɵɵFactoryTarget.Component }); }
27727
27962
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.17", type: SessionsPageComponent, isStandalone: false, selector: "lib-sessions", usesInheritance: true, ngImport: i0, template: "<div class=\"ziti-page-container ziti-sessions-container\">\n <lib-list-page-header [title]=\"title\"\n [tabs]=\"tabs\"\n [hideAction]=\"true\"\n (actionClicked)=\"headerActionClicked($event)\"></lib-list-page-header>\n\n <lib-data-table [tableId]=\"'sessions'\"\n [rowData]=\"rowData\"\n [columnDefinitions]=\"columnDefs\"\n (actionRequested)=\"tableAction($event)\"\n [startCount]=\"startCount\"\n [endCount]=\"endCount\"\n [totalCount]=\"totalCount\"\n [emptyMsg]=\"'No Sessions defined'\"\n [filterApplied]=\"filterApplied\"\n [filterColumn]=\"'id'\"\n [filterName]=\"'id'\"\n [menuItems]=\"svc.menuItems\"\n [showNoItemsAdd]=\"false\"\n (gridReady)=\"gridReady($event)\"\n >\n </lib-data-table>\n</div>\n@if (isLoading) {\n <lib-loading-indicator [isLoading]=\"isLoading\"></lib-loading-indicator>\n}\n", styles: [""], dependencies: [{ kind: "component", type: ListPageHeaderComponent, selector: "lib-list-page-header", inputs: ["title", "tabs", "showAdd", "hideAction"], outputs: ["actionClicked"] }, { kind: "component", type: DataTableComponent, selector: "lib-data-table", inputs: ["rowData", "expandRowData", "collapseRowData", "rowValidation", "isTimeSearchAvailable", "isLoading", "tableId", "options", "validateService", "rowsToggled", "tableRefreshCount", "view", "serverSideDataSource", "allowDownload", "startCount", "endCount", "totalCount", "emptyMsg", "filterApplied", "menuItems", "headerActions", "noItemsClass", "entityTypeName", "showNoItemsAdd", "currentPage", "noItemsImage", "rowHeight", "filterName", "filterColumn", "columnDefinitions", "refreshCount"], outputs: ["actionRequested", "gridReady", "dragStart", "dragLeave", "pageChanged"] }, { kind: "component", type: LoadingIndicatorComponent, selector: "lib-loading-indicator", inputs: ["isLoading"] }] }); }
27728
27963
  }
27729
27964
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: SessionsPageComponent, decorators: [{
27730
27965
  type: Component,
27731
27966
  args: [{ selector: 'lib-sessions', standalone: false, template: "<div class=\"ziti-page-container ziti-sessions-container\">\n <lib-list-page-header [title]=\"title\"\n [tabs]=\"tabs\"\n [hideAction]=\"true\"\n (actionClicked)=\"headerActionClicked($event)\"></lib-list-page-header>\n\n <lib-data-table [tableId]=\"'sessions'\"\n [rowData]=\"rowData\"\n [columnDefinitions]=\"columnDefs\"\n (actionRequested)=\"tableAction($event)\"\n [startCount]=\"startCount\"\n [endCount]=\"endCount\"\n [totalCount]=\"totalCount\"\n [emptyMsg]=\"'No Sessions defined'\"\n [filterApplied]=\"filterApplied\"\n [filterColumn]=\"'id'\"\n [filterName]=\"'id'\"\n [menuItems]=\"svc.menuItems\"\n [showNoItemsAdd]=\"false\"\n (gridReady)=\"gridReady($event)\"\n >\n </lib-data-table>\n</div>\n@if (isLoading) {\n <lib-loading-indicator [isLoading]=\"isLoading\"></lib-loading-indicator>\n}\n" }]
27732
- }], ctorParameters: () => [{ type: SessionsPageService }, { type: DataTableFilterService }, { type: TabNameService }, { type: ConsoleEventsService }, { type: i5.MatDialog }] });
27967
+ }], ctorParameters: () => [{ type: SessionsPageService }, { type: DataTableFilterService }, { type: TabNameService }, { type: ConsoleEventsService }, { type: i5.MatDialog }, { type: undefined, decorators: [{
27968
+ type: Inject,
27969
+ args: [SHAREDZ_EXTENSION]
27970
+ }] }] });
27733
27971
 
27734
27972
  class SessionFormService {
27735
27973
  constructor(settingsService, zitiService, growlerService, extService) {
@@ -28240,10 +28478,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
28240
28478
  limitations under the License.
28241
28479
  */
28242
28480
  class APISessionsPageComponent extends ListPageComponent {
28243
- constructor(svc, filterService, tabNames, consoleEvents, dialogForm) {
28244
- super(filterService, svc, consoleEvents, dialogForm);
28481
+ constructor(svc, filterService, tabNames, consoleEvents, dialogForm, extService) {
28482
+ super(filterService, svc, consoleEvents, dialogForm, extService);
28245
28483
  this.svc = svc;
28246
28484
  this.tabNames = tabNames;
28485
+ this.extService = extService;
28247
28486
  this.title = 'API Sessions';
28248
28487
  this.formDataChanged = false;
28249
28488
  }
@@ -28271,6 +28510,7 @@ class APISessionsPageComponent extends ListPageComponent {
28271
28510
  }
28272
28511
  }
28273
28512
  tableAction(event) {
28513
+ this.trackMenuAction(event?.action, event?.item);
28274
28514
  switch (event?.action) {
28275
28515
  case 'toggleAll':
28276
28516
  case 'toggleItem':
@@ -28295,6 +28535,14 @@ class APISessionsPageComponent extends ListPageComponent {
28295
28535
  break;
28296
28536
  }
28297
28537
  }
28538
+ trackMenuAction(action, item) {
28539
+ this.extService?.consoleActionTriggered?.emit({
28540
+ action,
28541
+ page: 'api-session',
28542
+ item,
28543
+ type: 'menu-action'
28544
+ });
28545
+ }
28298
28546
  openBulkDelete(selectedItems, label) {
28299
28547
  const updatedItems = selectedItems.map((item) => {
28300
28548
  return {
@@ -28316,13 +28564,16 @@ class APISessionsPageComponent extends ListPageComponent {
28316
28564
  dataChanged(event) {
28317
28565
  this.formDataChanged = event;
28318
28566
  }
28319
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: APISessionsPageComponent, deps: [{ token: ApiSessionsPageService }, { token: DataTableFilterService }, { token: TabNameService }, { token: ConsoleEventsService }, { token: i5.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
28567
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: APISessionsPageComponent, deps: [{ token: ApiSessionsPageService }, { token: DataTableFilterService }, { token: TabNameService }, { token: ConsoleEventsService }, { token: i5.MatDialog }, { token: SHAREDZ_EXTENSION }], target: i0.ɵɵFactoryTarget.Component }); }
28320
28568
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.17", type: APISessionsPageComponent, isStandalone: false, selector: "lib-api-sessions", usesInheritance: true, ngImport: i0, template: "<div class=\"ziti-page-container ziti-api-sessions-container\">\n <lib-list-page-header [title]=\"title\"\n [tabs]=\"tabs\"\n [hideAction]=\"true\"\n (actionClicked)=\"headerActionClicked($event)\"></lib-list-page-header>\n\n <lib-data-table [tableId]=\"'api-sessions'\"\n [rowData]=\"rowData\"\n [columnDefinitions]=\"columnDefs\"\n (actionRequested)=\"tableAction($event)\"\n [startCount]=\"startCount\"\n [endCount]=\"endCount\"\n [totalCount]=\"totalCount\"\n [emptyMsg]=\"'No API Sessions defined'\"\n [filterApplied]=\"filterApplied\"\n [filterColumn]=\"'id'\"\n [filterName]=\"'ID'\"\n [menuItems]=\"svc.menuItems\"\n (gridReady)=\"gridReady($event)\"\n >\n </lib-data-table>\n</div>\n@if (isLoading) {\n <lib-loading-indicator [isLoading]=\"isLoading\"></lib-loading-indicator>\n}\n", styles: [""], dependencies: [{ kind: "component", type: ListPageHeaderComponent, selector: "lib-list-page-header", inputs: ["title", "tabs", "showAdd", "hideAction"], outputs: ["actionClicked"] }, { kind: "component", type: DataTableComponent, selector: "lib-data-table", inputs: ["rowData", "expandRowData", "collapseRowData", "rowValidation", "isTimeSearchAvailable", "isLoading", "tableId", "options", "validateService", "rowsToggled", "tableRefreshCount", "view", "serverSideDataSource", "allowDownload", "startCount", "endCount", "totalCount", "emptyMsg", "filterApplied", "menuItems", "headerActions", "noItemsClass", "entityTypeName", "showNoItemsAdd", "currentPage", "noItemsImage", "rowHeight", "filterName", "filterColumn", "columnDefinitions", "refreshCount"], outputs: ["actionRequested", "gridReady", "dragStart", "dragLeave", "pageChanged"] }, { kind: "component", type: LoadingIndicatorComponent, selector: "lib-loading-indicator", inputs: ["isLoading"] }] }); }
28321
28569
  }
28322
28570
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: APISessionsPageComponent, decorators: [{
28323
28571
  type: Component,
28324
28572
  args: [{ selector: 'lib-api-sessions', standalone: false, template: "<div class=\"ziti-page-container ziti-api-sessions-container\">\n <lib-list-page-header [title]=\"title\"\n [tabs]=\"tabs\"\n [hideAction]=\"true\"\n (actionClicked)=\"headerActionClicked($event)\"></lib-list-page-header>\n\n <lib-data-table [tableId]=\"'api-sessions'\"\n [rowData]=\"rowData\"\n [columnDefinitions]=\"columnDefs\"\n (actionRequested)=\"tableAction($event)\"\n [startCount]=\"startCount\"\n [endCount]=\"endCount\"\n [totalCount]=\"totalCount\"\n [emptyMsg]=\"'No API Sessions defined'\"\n [filterApplied]=\"filterApplied\"\n [filterColumn]=\"'id'\"\n [filterName]=\"'ID'\"\n [menuItems]=\"svc.menuItems\"\n (gridReady)=\"gridReady($event)\"\n >\n </lib-data-table>\n</div>\n@if (isLoading) {\n <lib-loading-indicator [isLoading]=\"isLoading\"></lib-loading-indicator>\n}\n" }]
28325
- }], ctorParameters: () => [{ type: ApiSessionsPageService }, { type: DataTableFilterService }, { type: TabNameService }, { type: ConsoleEventsService }, { type: i5.MatDialog }] });
28573
+ }], ctorParameters: () => [{ type: ApiSessionsPageService }, { type: DataTableFilterService }, { type: TabNameService }, { type: ConsoleEventsService }, { type: i5.MatDialog }, { type: undefined, decorators: [{
28574
+ type: Inject,
28575
+ args: [SHAREDZ_EXTENSION]
28576
+ }] }] });
28326
28577
 
28327
28578
  class APISessionFormService {
28328
28579
  constructor(settingsService, zitiService, growlerService, extService) {
@@ -30611,7 +30862,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
30611
30862
  }] });
30612
30863
 
30613
30864
  const ZAC_VERSION = {
30614
- "version": "4.1.1"
30865
+ "version": "4.1.2"
30615
30866
  };
30616
30867
 
30617
30868
  /*