@openziti/ziti-console-lib 0.4.2 → 0.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/features/config-editor/config-editor.component.mjs +19 -4
- package/esm2022/lib/features/data-table/cells/table-cell-name/table-cell-name.component.mjs +4 -4
- package/esm2022/lib/features/json-view/json-view.component.mjs +6 -3
- package/esm2022/lib/features/projectable-forms/configuration/configuration-form.component.mjs +8 -4
- package/esm2022/lib/features/projectable-forms/projectable-form.class.mjs +14 -16
- package/esm2022/lib/pages/configurations/configurations-page.service.mjs +2 -2
- package/esm2022/lib/pages/edge-router-policies/edge-router-policies-page.service.mjs +2 -2
- package/esm2022/lib/pages/edge-routers/edge-routers-page.service.mjs +2 -2
- package/esm2022/lib/pages/identities/identities-page.service.mjs +2 -2
- package/esm2022/lib/pages/service-edge-router-policies/service-edge-router-policies-page.service.mjs +2 -2
- package/esm2022/lib/pages/service-policies/service-policies-page.service.mjs +2 -2
- package/esm2022/lib/pages/services/services-page.service.mjs +3 -2
- package/esm2022/lib/shared/list-page-service.class.mjs +15 -14
- package/esm2022/lib/version.mjs +2 -2
- package/fesm2022/openziti-ziti-console-lib.mjs +66 -46
- package/fesm2022/openziti-ziti-console-lib.mjs.map +1 -1
- package/lib/features/config-editor/config-editor.component.d.ts +4 -0
- package/lib/features/config-editor/config-editor.component.d.ts.map +1 -1
- package/lib/features/json-view/json-view.component.d.ts +1 -0
- package/lib/features/json-view/json-view.component.d.ts.map +1 -1
- package/lib/features/projectable-forms/configuration/configuration-form.component.d.ts +2 -1
- package/lib/features/projectable-forms/configuration/configuration-form.component.d.ts.map +1 -1
- package/lib/features/projectable-forms/projectable-form.class.d.ts +1 -1
- package/lib/features/projectable-forms/projectable-form.class.d.ts.map +1 -1
- package/lib/pages/services/services-page.service.d.ts +1 -0
- package/lib/pages/services/services-page.service.d.ts.map +1 -1
- package/lib/shared/list-page-service.class.d.ts +2 -2
- package/lib/shared/list-page-service.class.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -8,7 +8,7 @@ import * as i1$1 from '@angular/common/http';
|
|
|
8
8
|
import { HttpClient, HttpClientModule } from '@angular/common/http';
|
|
9
9
|
import * as i1 from 'ngx-logger';
|
|
10
10
|
import { NgxLoggerLevel } from 'ngx-logger';
|
|
11
|
-
import _, { isNumber, includes, isNil, defer, set, invoke, get, debounce, isEmpty, isNaN as isNaN$1, cloneDeep, unset, isBoolean, keys, forEach, isEqual,
|
|
11
|
+
import _, { isNumber, includes, isNil, defer, set, invoke, get, debounce, isEmpty, isNaN as isNaN$1, cloneDeep, unset, isBoolean, keys, forEach, isEqual, delay, isFunction, map as map$1, forOwn, isString, some, filter, sortedUniq, invert, isArray } from 'lodash';
|
|
12
12
|
import { __decorate, __param } from 'tslib';
|
|
13
13
|
import * as i1$4 from '@angular/common';
|
|
14
14
|
import { CommonModule } from '@angular/common';
|
|
@@ -2421,6 +2421,7 @@ let ListPageServiceClass = class ListPageServiceClass {
|
|
|
2421
2421
|
this.csvDownloadService = csvDownloadService;
|
|
2422
2422
|
this.extensionService = extensionService;
|
|
2423
2423
|
this.router = router;
|
|
2424
|
+
this.basePath = '';
|
|
2424
2425
|
this.headerComponentParams = {
|
|
2425
2426
|
filterType: 'TEXTINPUT',
|
|
2426
2427
|
enableSorting: true
|
|
@@ -2483,6 +2484,15 @@ let ListPageServiceClass = class ListPageServiceClass {
|
|
|
2483
2484
|
}
|
|
2484
2485
|
}
|
|
2485
2486
|
});
|
|
2487
|
+
router.events.subscribe((event) => {
|
|
2488
|
+
if (event => event instanceof NavigationEnd) {
|
|
2489
|
+
if (!event?.snapshot?.routeConfig?.path) {
|
|
2490
|
+
return;
|
|
2491
|
+
}
|
|
2492
|
+
const pathSegments = event.snapshot.routeConfig.path.split('/');
|
|
2493
|
+
this.basePath = pathSegments[0];
|
|
2494
|
+
}
|
|
2495
|
+
});
|
|
2486
2496
|
}
|
|
2487
2497
|
initMenuActions() {
|
|
2488
2498
|
if (this.extensionService.listActions) {
|
|
@@ -2544,22 +2554,12 @@ let ListPageServiceClass = class ListPageServiceClass {
|
|
|
2544
2554
|
}
|
|
2545
2555
|
return text?.length > 0;
|
|
2546
2556
|
}
|
|
2547
|
-
openEditForm(itemId = '',
|
|
2557
|
+
openEditForm(itemId = '', basePath) {
|
|
2548
2558
|
if (isEmpty(itemId)) {
|
|
2549
2559
|
itemId = 'create';
|
|
2550
2560
|
}
|
|
2551
|
-
|
|
2552
|
-
this.router?.navigateByUrl(`${
|
|
2553
|
-
}
|
|
2554
|
-
getBaseURLPath() {
|
|
2555
|
-
let path = '';
|
|
2556
|
-
window.location.pathname.split('/').forEach(segment => {
|
|
2557
|
-
if (isEmpty(segment)) {
|
|
2558
|
-
return;
|
|
2559
|
-
}
|
|
2560
|
-
path += `${segment}/`;
|
|
2561
|
-
});
|
|
2562
|
-
return path;
|
|
2561
|
+
basePath = basePath ? basePath : this.basePath;
|
|
2562
|
+
this.router?.navigateByUrl(`${basePath}${itemId}`);
|
|
2563
2563
|
}
|
|
2564
2564
|
};
|
|
2565
2565
|
ListPageServiceClass = __decorate([
|
|
@@ -3075,16 +3075,16 @@ class TableCellNameComponent {
|
|
|
3075
3075
|
return true;
|
|
3076
3076
|
}
|
|
3077
3077
|
linkClicked(event) {
|
|
3078
|
-
this.router.navigateByUrl(`${this.cellParams.pathRoot}
|
|
3078
|
+
this.router.navigateByUrl(`${this.cellParams.pathRoot}/${this.item.id}`);
|
|
3079
3079
|
event.stopPropagation();
|
|
3080
3080
|
event.preventDefault();
|
|
3081
3081
|
}
|
|
3082
3082
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableCellNameComponent, deps: [{ token: i3$2.MatDialog }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3083
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TableCellNameComponent, selector: "lib-table-cell-name", ngImport: i0, template: "<span class=\"cell-name-container\">\n <a href=\"./{{cellParams.pathRoot}}{{item.id}}\" (click)=\"linkClicked($event)\">\n <div class=\"col cell-name-renderer\" data-id=\"{{item.id}}\">\n <div *ngIf=\"cellParams.showIdentityIcons\" class=\"cell-status-container\">\n <span class=\"circle {{item.hasApiSession}}\" title=\"Api Session\"></span>\n <span class=\"circle {{item.hasEdgeRouterConnection}}\" title=\"Edge Router Connected\"></span>\n </div>\n <div *ngIf=\"cellParams.showRouterIcons\" class=\"cell-status-container\">\n <span class=\"circle {{item.isVerified}}\" title=\"Api Session\"></span>\n <span class=\"circle {{item.isOnline}}\" title=\"Edge Router Connected\"></span>\n </div>\n <strong>{{item.name}}</strong>\n </div>\n </a>\n</span>\n", styles: [".cell-name-renderer{display:flex;flex-direction:row;gap:5px}.cell-name-container{display:flex;flex-direction:row;flex-wrap:nowrap}.cell-status-container{position:relative;display:flex;align-items:center;justify-content:center;gap:4px}\n"], dependencies: [{ kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
3083
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TableCellNameComponent, selector: "lib-table-cell-name", ngImport: i0, template: "<span class=\"cell-name-container\">\n <a href=\"./{{cellParams.pathRoot}}/{{item.id}}\" (click)=\"linkClicked($event)\">\n <div class=\"col cell-name-renderer\" data-id=\"{{item.id}}\">\n <div *ngIf=\"cellParams.showIdentityIcons\" class=\"cell-status-container\">\n <span class=\"circle {{item.hasApiSession}}\" title=\"Api Session\"></span>\n <span class=\"circle {{item.hasEdgeRouterConnection}}\" title=\"Edge Router Connected\"></span>\n </div>\n <div *ngIf=\"cellParams.showRouterIcons\" class=\"cell-status-container\">\n <span class=\"circle {{item.isVerified}}\" title=\"Api Session\"></span>\n <span class=\"circle {{item.isOnline}}\" title=\"Edge Router Connected\"></span>\n </div>\n <strong>{{item.name}}</strong>\n </div>\n </a>\n</span>\n", styles: [".cell-name-renderer{display:flex;flex-direction:row;gap:5px}.cell-name-container{display:flex;flex-direction:row;flex-wrap:nowrap}.cell-status-container{position:relative;display:flex;align-items:center;justify-content:center;gap:4px}\n"], dependencies: [{ kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
3084
3084
|
}
|
|
3085
3085
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableCellNameComponent, decorators: [{
|
|
3086
3086
|
type: Component,
|
|
3087
|
-
args: [{ selector: 'lib-table-cell-name', template: "<span class=\"cell-name-container\">\n <a href=\"./{{cellParams.pathRoot}}{{item.id}}\" (click)=\"linkClicked($event)\">\n <div class=\"col cell-name-renderer\" data-id=\"{{item.id}}\">\n <div *ngIf=\"cellParams.showIdentityIcons\" class=\"cell-status-container\">\n <span class=\"circle {{item.hasApiSession}}\" title=\"Api Session\"></span>\n <span class=\"circle {{item.hasEdgeRouterConnection}}\" title=\"Edge Router Connected\"></span>\n </div>\n <div *ngIf=\"cellParams.showRouterIcons\" class=\"cell-status-container\">\n <span class=\"circle {{item.isVerified}}\" title=\"Api Session\"></span>\n <span class=\"circle {{item.isOnline}}\" title=\"Edge Router Connected\"></span>\n </div>\n <strong>{{item.name}}</strong>\n </div>\n </a>\n</span>\n", styles: [".cell-name-renderer{display:flex;flex-direction:row;gap:5px}.cell-name-container{display:flex;flex-direction:row;flex-wrap:nowrap}.cell-status-container{position:relative;display:flex;align-items:center;justify-content:center;gap:4px}\n"] }]
|
|
3087
|
+
args: [{ selector: 'lib-table-cell-name', template: "<span class=\"cell-name-container\">\n <a href=\"./{{cellParams.pathRoot}}/{{item.id}}\" (click)=\"linkClicked($event)\">\n <div class=\"col cell-name-renderer\" data-id=\"{{item.id}}\">\n <div *ngIf=\"cellParams.showIdentityIcons\" class=\"cell-status-container\">\n <span class=\"circle {{item.hasApiSession}}\" title=\"Api Session\"></span>\n <span class=\"circle {{item.hasEdgeRouterConnection}}\" title=\"Edge Router Connected\"></span>\n </div>\n <div *ngIf=\"cellParams.showRouterIcons\" class=\"cell-status-container\">\n <span class=\"circle {{item.isVerified}}\" title=\"Api Session\"></span>\n <span class=\"circle {{item.isOnline}}\" title=\"Edge Router Connected\"></span>\n </div>\n <strong>{{item.name}}</strong>\n </div>\n </a>\n</span>\n", styles: [".cell-name-renderer{display:flex;flex-direction:row;gap:5px}.cell-name-container{display:flex;flex-direction:row;flex-wrap:nowrap}.cell-status-container{position:relative;display:flex;align-items:center;justify-content:center;gap:4px}\n"] }]
|
|
3088
3088
|
}], ctorParameters: function () { return [{ type: i3$2.MatDialog }, { type: i3.Router }]; } });
|
|
3089
3089
|
|
|
3090
3090
|
/*
|
|
@@ -4325,7 +4325,7 @@ class ConfigurationsPageService extends ListPageServiceClass {
|
|
|
4325
4325
|
headerComponent: TableColumnDefaultComponent,
|
|
4326
4326
|
headerComponentParams: this.headerComponentParams,
|
|
4327
4327
|
cellRenderer: TableCellNameComponent,
|
|
4328
|
-
cellRendererParams: { pathRoot:
|
|
4328
|
+
cellRendererParams: { pathRoot: this.basePath },
|
|
4329
4329
|
onCellClicked: (data) => {
|
|
4330
4330
|
if (this.hasSelectedText()) {
|
|
4331
4331
|
return;
|
|
@@ -5245,7 +5245,7 @@ class IdentitiesPageService extends ListPageServiceClass {
|
|
|
5245
5245
|
headerComponent: TableColumnDefaultComponent,
|
|
5246
5246
|
headerComponentParams: this.headerComponentParams,
|
|
5247
5247
|
cellRenderer: TableCellNameComponent,
|
|
5248
|
-
cellRendererParams: { pathRoot: this.
|
|
5248
|
+
cellRendererParams: { pathRoot: this.basePath, showIdentityIcons: true },
|
|
5249
5249
|
onCellClicked: (data) => {
|
|
5250
5250
|
if (this.hasSelectedText()) {
|
|
5251
5251
|
return;
|
|
@@ -5804,7 +5804,7 @@ class EdgeRoutersPageService extends ListPageServiceClass {
|
|
|
5804
5804
|
headerComponent: TableColumnDefaultComponent,
|
|
5805
5805
|
headerComponentParams: this.headerComponentParams,
|
|
5806
5806
|
cellRenderer: TableCellNameComponent,
|
|
5807
|
-
cellRendererParams: { pathRoot: this.
|
|
5807
|
+
cellRendererParams: { pathRoot: this.basePath, showRouterIcons: true },
|
|
5808
5808
|
onCellClicked: (data) => {
|
|
5809
5809
|
if (this.hasSelectedText()) {
|
|
5810
5810
|
return;
|
|
@@ -7755,6 +7755,7 @@ class ProjectableForm extends ExtendableComponent {
|
|
|
7755
7755
|
this.initData = {};
|
|
7756
7756
|
this._dataChange = false;
|
|
7757
7757
|
this.apiOptions = [{ id: 'cli', label: 'Copy as CLI' }, { id: 'curl', label: 'Copy as CURL' }];
|
|
7758
|
+
this.basePath = '';
|
|
7758
7759
|
this.checkDataChangeDebounced = debounce(this.checkDataChange, 100, { maxWait: 100 });
|
|
7759
7760
|
this.subscription = new Subscription();
|
|
7760
7761
|
this.subscription.add(this.route?.params?.subscribe(params => {
|
|
@@ -7763,6 +7764,15 @@ class ProjectableForm extends ExtendableComponent {
|
|
|
7763
7764
|
this.entityId = id;
|
|
7764
7765
|
}
|
|
7765
7766
|
}));
|
|
7767
|
+
this.subscription.add(router.events.subscribe((event) => {
|
|
7768
|
+
if (event => event instanceof NavigationEnd) {
|
|
7769
|
+
if (!event?.snapshot?.routeConfig?.path) {
|
|
7770
|
+
return;
|
|
7771
|
+
}
|
|
7772
|
+
const pathSegments = event.snapshot.routeConfig.path.split('/');
|
|
7773
|
+
this.basePath = pathSegments[0];
|
|
7774
|
+
}
|
|
7775
|
+
}));
|
|
7766
7776
|
}
|
|
7767
7777
|
ngAfterViewInit() {
|
|
7768
7778
|
super.ngAfterViewInit();
|
|
@@ -7886,8 +7896,7 @@ class ProjectableForm extends ExtendableComponent {
|
|
|
7886
7896
|
}
|
|
7887
7897
|
}
|
|
7888
7898
|
returnToListPage() {
|
|
7889
|
-
|
|
7890
|
-
this.router?.navigateByUrl(`${baseUrl}`);
|
|
7899
|
+
this.router?.navigateByUrl(`${this.basePath}`);
|
|
7891
7900
|
}
|
|
7892
7901
|
ngDoCheck() {
|
|
7893
7902
|
this.checkDataChangeDebounced();
|
|
@@ -7940,18 +7949,6 @@ class ProjectableForm extends ExtendableComponent {
|
|
|
7940
7949
|
return results.data;
|
|
7941
7950
|
});
|
|
7942
7951
|
}
|
|
7943
|
-
getBaseURLPath() {
|
|
7944
|
-
let path = '';
|
|
7945
|
-
const urlSegments = window.location.pathname.split('/');
|
|
7946
|
-
const baseSegments = slice(urlSegments, 0, urlSegments.length - 1);
|
|
7947
|
-
baseSegments.forEach(segment => {
|
|
7948
|
-
if (isEmpty(segment)) {
|
|
7949
|
-
return;
|
|
7950
|
-
}
|
|
7951
|
-
path += `/${segment}`;
|
|
7952
|
-
});
|
|
7953
|
-
return path;
|
|
7954
|
-
}
|
|
7955
7952
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProjectableForm, deps: [{ token: GrowlerService }, { token: SHAREDZ_EXTENSION }, { token: ZITI_DATA_SERVICE }, { token: i3.Router }, { token: i3.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7956
7953
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ProjectableForm, selector: "ng-component", inputs: { isModal: "isModal", entityId: "entityId", formData: "formData" }, outputs: { close: "close", dataChange: "dataChange" }, viewQueries: [{ propertyName: "nameFieldInput", first: true, predicate: ["nameFieldInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true, styles: [""] }); }
|
|
7957
7954
|
}
|
|
@@ -8135,6 +8132,9 @@ class JsonViewComponent {
|
|
|
8135
8132
|
event.stopPropagation();
|
|
8136
8133
|
event.preventDefault();
|
|
8137
8134
|
}
|
|
8135
|
+
jsonChanged(event) {
|
|
8136
|
+
this.dataChange.emit(this.data);
|
|
8137
|
+
}
|
|
8138
8138
|
copyToClipboad() {
|
|
8139
8139
|
var clipData = JSON.stringify(JSON.parse(JSON.stringify(this.data)), null, 2);
|
|
8140
8140
|
navigator.clipboard.writeText(clipData);
|
|
@@ -8142,11 +8142,11 @@ class JsonViewComponent {
|
|
|
8142
8142
|
this.growlerService.show(growlerData);
|
|
8143
8143
|
}
|
|
8144
8144
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: JsonViewComponent, deps: [{ token: GrowlerService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8145
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: JsonViewComponent, selector: "lib-json-view", inputs: { data: "data", schema: "schema", readOnly: "readOnly", jsonInvalid: "jsonInvalid", showCopy: "showCopy" }, outputs: { dataChange: "dataChange", jsonChange: "jsonChange", jsonInvalidChange: "jsonInvalidChange" }, viewQueries: [{ propertyName: "editorDiv", first: true, predicate: ["editor"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div id=\"jsoneditor\" [ngClass]=\"{'read-only': readOnly}\" #editor (keyup.enter)=\"enterKeyPressed($event)\"></div>\n<div *ngIf=\"showCopy\" class=\"icon-copy copy\" (click)=\"copyToClipboad()\"></div>", styles: [":host{display:flex;width:100%;height:100%;flex-direction:column;position:relative}#jsoneditor{height:100%;min-height:200px;border-color:var(--inputBorder);border-style:solid;border-radius:7px;overflow:hidden}#jsoneditor.read-only .jse-menu{display:none}.copy.icon-copy{position:absolute;top:10px;right:10px;background:transparent}::ng-deep #jsoneditor .jse-json-node.svelte-1wlxti1 .jse-insert-area.svelte-1wlxti1.svelte-1wlxti1.svelte-1wlxti1{display:none}\n"], dependencies: [{ kind: "directive", type: i1$4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
8145
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: JsonViewComponent, selector: "lib-json-view", inputs: { data: "data", schema: "schema", readOnly: "readOnly", jsonInvalid: "jsonInvalid", showCopy: "showCopy" }, outputs: { dataChange: "dataChange", jsonChange: "jsonChange", jsonInvalidChange: "jsonInvalidChange" }, viewQueries: [{ propertyName: "editorDiv", first: true, predicate: ["editor"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div id=\"jsoneditor\" [ngClass]=\"{'read-only': readOnly}\" #editor (keyup.enter)=\"enterKeyPressed($event)\" (keyup)=\"jsonChanged($event)\"></div>\n<div *ngIf=\"showCopy\" class=\"icon-copy copy\" (click)=\"copyToClipboad()\"></div>", styles: [":host{display:flex;width:100%;height:100%;flex-direction:column;position:relative}#jsoneditor{height:100%;min-height:200px;border-color:var(--inputBorder);border-style:solid;border-radius:7px;overflow:hidden}#jsoneditor.read-only .jse-menu{display:none}.copy.icon-copy{position:absolute;top:10px;right:10px;background:transparent}::ng-deep #jsoneditor .jse-json-node.svelte-1wlxti1 .jse-insert-area.svelte-1wlxti1.svelte-1wlxti1.svelte-1wlxti1{display:none}\n"], dependencies: [{ kind: "directive", type: i1$4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
8146
8146
|
}
|
|
8147
8147
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: JsonViewComponent, decorators: [{
|
|
8148
8148
|
type: Component,
|
|
8149
|
-
args: [{ selector: 'lib-json-view', template: "<div id=\"jsoneditor\" [ngClass]=\"{'read-only': readOnly}\" #editor (keyup.enter)=\"enterKeyPressed($event)\"></div>\n<div *ngIf=\"showCopy\" class=\"icon-copy copy\" (click)=\"copyToClipboad()\"></div>", styles: [":host{display:flex;width:100%;height:100%;flex-direction:column;position:relative}#jsoneditor{height:100%;min-height:200px;border-color:var(--inputBorder);border-style:solid;border-radius:7px;overflow:hidden}#jsoneditor.read-only .jse-menu{display:none}.copy.icon-copy{position:absolute;top:10px;right:10px;background:transparent}::ng-deep #jsoneditor .jse-json-node.svelte-1wlxti1 .jse-insert-area.svelte-1wlxti1.svelte-1wlxti1.svelte-1wlxti1{display:none}\n"] }]
|
|
8149
|
+
args: [{ selector: 'lib-json-view', template: "<div id=\"jsoneditor\" [ngClass]=\"{'read-only': readOnly}\" #editor (keyup.enter)=\"enterKeyPressed($event)\" (keyup)=\"jsonChanged($event)\"></div>\n<div *ngIf=\"showCopy\" class=\"icon-copy copy\" (click)=\"copyToClipboad()\"></div>", styles: [":host{display:flex;width:100%;height:100%;flex-direction:column;position:relative}#jsoneditor{height:100%;min-height:200px;border-color:var(--inputBorder);border-style:solid;border-radius:7px;overflow:hidden}#jsoneditor.read-only .jse-menu{display:none}.copy.icon-copy{position:absolute;top:10px;right:10px;background:transparent}::ng-deep #jsoneditor .jse-json-node.svelte-1wlxti1 .jse-insert-area.svelte-1wlxti1.svelte-1wlxti1.svelte-1wlxti1{display:none}\n"] }]
|
|
8150
8150
|
}], ctorParameters: function () { return [{ type: GrowlerService }]; }, propDecorators: { data: [{
|
|
8151
8151
|
type: Input
|
|
8152
8152
|
}], schema: [{
|
|
@@ -8211,9 +8211,14 @@ class ConfigEditorComponent {
|
|
|
8211
8211
|
this.configDataChange = new EventEmitter();
|
|
8212
8212
|
this._showJsonView = false;
|
|
8213
8213
|
this._schema = false;
|
|
8214
|
+
this.formDataChangedDebounced = debounce(this.formDataChanged.bind(this), 350);
|
|
8215
|
+
this.jsonDataChangedDebounced = debounce(this.jsonDataChanged.bind(this), 350);
|
|
8214
8216
|
}
|
|
8215
8217
|
ngOnInit() {
|
|
8216
8218
|
this.createForm();
|
|
8219
|
+
defer(() => {
|
|
8220
|
+
this.formDataChanged();
|
|
8221
|
+
});
|
|
8217
8222
|
}
|
|
8218
8223
|
createForm() {
|
|
8219
8224
|
this.clearForm();
|
|
@@ -8373,12 +8378,22 @@ class ConfigEditorComponent {
|
|
|
8373
8378
|
});
|
|
8374
8379
|
return isValid;
|
|
8375
8380
|
}
|
|
8381
|
+
formDataChanged() {
|
|
8382
|
+
delay(() => {
|
|
8383
|
+
this.getConfigDataFromForm();
|
|
8384
|
+
}, 200);
|
|
8385
|
+
}
|
|
8386
|
+
jsonDataChanged(event) {
|
|
8387
|
+
defer(() => {
|
|
8388
|
+
this.configDataChange.emit(this.configData);
|
|
8389
|
+
});
|
|
8390
|
+
}
|
|
8376
8391
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigEditorComponent, deps: [{ token: SchemaService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8377
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ConfigEditorComponent, selector: "lib-config-editor", inputs: { configErrors: "configErrors", configData: "configData", showJsonView: "showJsonView", schema: "schema" }, outputs: { configErrorsChange: "configErrorsChange", configDataChange: "configDataChange" }, viewQueries: [{ propertyName: "dynamicForm", first: true, predicate: ["dynamicform"], descendants: true, read: ViewContainerRef }, { propertyName: "editor", first: true, predicate: JsonEditorComponent, descendants: true }], ngImport: i0, template: "<div class=\"form-field-extended-fields\" [hidden]=\"showJsonView\">\n <ng-container #dynamicform></ng-container>\n</div>\n<lib-json-view *ngIf=\"showJsonView && !hideConfigJSON\" [(data)]=\"configData\"></lib-json-view>\n<lib-json-view *ngIf=\"showJsonView && hideConfigJSON\" [(data)]=\"configData\"></lib-json-view>", styles: [""], dependencies: [{ kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: JsonViewComponent, selector: "lib-json-view", inputs: ["data", "schema", "readOnly", "jsonInvalid", "showCopy"], outputs: ["dataChange", "jsonChange", "jsonInvalidChange"] }] }); }
|
|
8392
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ConfigEditorComponent, selector: "lib-config-editor", inputs: { configErrors: "configErrors", configData: "configData", showJsonView: "showJsonView", schema: "schema" }, outputs: { configErrorsChange: "configErrorsChange", configDataChange: "configDataChange" }, viewQueries: [{ propertyName: "dynamicForm", first: true, predicate: ["dynamicform"], descendants: true, read: ViewContainerRef }, { propertyName: "editor", first: true, predicate: JsonEditorComponent, descendants: true }], ngImport: i0, template: "<div class=\"form-field-extended-fields\" [hidden]=\"showJsonView\" (mouseup)=\"formDataChangedDebounced($event)\" (keyup)=\"formDataChangedDebounced($event)\">\n <ng-container #dynamicform></ng-container>\n</div>\n<lib-json-view *ngIf=\"showJsonView && !hideConfigJSON\" (dataChange)=\"jsonDataChangedDebounced($event)\" [(data)]=\"configData\"></lib-json-view>\n<lib-json-view *ngIf=\"showJsonView && hideConfigJSON\" [(data)]=\"configData\"></lib-json-view>", styles: [""], dependencies: [{ kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: JsonViewComponent, selector: "lib-json-view", inputs: ["data", "schema", "readOnly", "jsonInvalid", "showCopy"], outputs: ["dataChange", "jsonChange", "jsonInvalidChange"] }] }); }
|
|
8378
8393
|
}
|
|
8379
8394
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigEditorComponent, decorators: [{
|
|
8380
8395
|
type: Component,
|
|
8381
|
-
args: [{ selector: 'lib-config-editor', template: "<div class=\"form-field-extended-fields\" [hidden]=\"showJsonView\">\n <ng-container #dynamicform></ng-container>\n</div>\n<lib-json-view *ngIf=\"showJsonView && !hideConfigJSON\" [(data)]=\"configData\"></lib-json-view>\n<lib-json-view *ngIf=\"showJsonView && hideConfigJSON\" [(data)]=\"configData\"></lib-json-view>" }]
|
|
8396
|
+
args: [{ selector: 'lib-config-editor', template: "<div class=\"form-field-extended-fields\" [hidden]=\"showJsonView\" (mouseup)=\"formDataChangedDebounced($event)\" (keyup)=\"formDataChangedDebounced($event)\">\n <ng-container #dynamicform></ng-container>\n</div>\n<lib-json-view *ngIf=\"showJsonView && !hideConfigJSON\" (dataChange)=\"jsonDataChangedDebounced($event)\" [(data)]=\"configData\"></lib-json-view>\n<lib-json-view *ngIf=\"showJsonView && hideConfigJSON\" [(data)]=\"configData\"></lib-json-view>" }]
|
|
8382
8397
|
}], ctorParameters: function () { return [{ type: SchemaService }]; }, propDecorators: { configErrors: [{
|
|
8383
8398
|
type: Input
|
|
8384
8399
|
}], configErrorsChange: [{
|
|
@@ -8913,17 +8928,21 @@ class ConfigurationFormComponent extends ProjectableForm {
|
|
|
8913
8928
|
configTypeId: this.formData?.configTypeId || '',
|
|
8914
8929
|
data: this.formData?.data || {},
|
|
8915
8930
|
};
|
|
8916
|
-
|
|
8931
|
+
this._apiData = data;
|
|
8932
|
+
return this._apiData;
|
|
8917
8933
|
}
|
|
8918
8934
|
set apiData(data) {
|
|
8919
8935
|
this._apiData = data;
|
|
8920
8936
|
}
|
|
8937
|
+
dataChanged(event) {
|
|
8938
|
+
this._apiData = cloneDeep(this.apiData);
|
|
8939
|
+
}
|
|
8921
8940
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigurationFormComponent, deps: [{ token: ConfigurationService }, { token: SchemaService }, { token: GrowlerService }, { token: SHAREDZ_EXTENSION }, { token: SETTINGS_SERVICE }, { token: ZITI_DATA_SERVICE }, { token: i3.Router }, { token: i3.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8922
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ConfigurationFormComponent, selector: "lib-configuration", inputs: { formData: "formData", errors: "errors" }, outputs: { close: "close" }, viewQueries: [{ propertyName: "configEditor", first: true, predicate: ["configEditor"], descendants: true, read: ConfigEditorComponent }], usesInheritance: true, ngImport: i0, template: "<div class=\"projectable-form-wrapper\"\n (keyup.enter)=\"save($event)\"\n (keyup.escape)=\"closeModal(false)\"\n tabindex=\"0\"\n>\n <lib-form-header\n [data]=\"formData\"\n [title]=\"(formData.id ? 'Edit Config' : 'Create Config')\"\n [moreActions]=\"formData.moreActions\"\n (actionRequested)=\"headerActionRequested($event)\"\n [(formView)]=\"formView\"\n [saveDisabled]=\"svc.saveDisabled || formDataInvalid\"\n [saveTooltip]=\"saveButtonTooltip\"\n ></lib-form-header>\n <div class=\"config-form-container projectable-form-container\">\n <div class=\"projectable-form-main-column form-group-row\" [hidden]=\"formView !== 'simple'\">\n <div class=\"form-group-column three-fifths\">\n <lib-form-field-container [title]=\"'Config Name'\" [label]=\"'Required'\">\n <input\n id=\"ConfigName\"\n type=\"text\"\n maxlength=\"500\"\n placeholder=\"Name this config\"\n [ngClass]=\"{error: errors['name']}\"\n [(ngModel)]=\"formData.name\"\n >\n </lib-form-field-container>\n <lib-form-field-container [showHeader]=\"false\">\n <div class=\"config-title-row\">\n <span class=\"form-field-title\">Configuration Data</span>\n <div class=\"form-header-toggle-container\">\n <span\n class=\"toggle-option-text\"\n [ngClass]=\"{'toggle-option-selected': !svc.configJsonView}\"\n (click)=\"svc.toggleJSONView()\"\n >\n FORM\n </span>\n <div class=\"form-header-toggle\" (click)=\"svc.toggleJSONView()\">\n <div\n class=\"form-toggle-switch\"\n [ngClass]=\"{'toggle-left': !svc.configJsonView, 'toggle-right': svc.configJsonView}\"\n >\n <div class=\"form-toggle-indicator\"></div>\n <div class=\"form-toggle-indicator\"></div>\n </div>\n </div>\n <span\n class=\"toggle-option-text\"\n [ngClass]=\"{'toggle-option-selected': svc.configJsonView}\"\n (click)=\"svc.toggleJSONView()\"\n >\n JSON\n </span>\n </div>\n </div>\n <div class=\"form-field-input-group\">\n <div class=\"config-title-row\">\n <span class=\"form-field-title\">{{isEditing ? 'Config Type' : 'Select a Config Type'}}</span>\n </div>\n <select\n id=\"ConfigTypes\"\n class=\"config-type-select\"\n [(ngModel)]=\"formData.configTypeId\"\n (change)=\"getSchema()\"\n [ngClass]=\"{disabled: isEditing, error: errors['configTypeId']}\"\n >\n <option value=\"\">Select A Type...</option>\n <option *ngFor=\"let config of options\"\n [value]=\"config.id\">{{config.name}}\n </option>\n </select>\n <lib-config-editor\n [hidden]=\"configTypeEmpty\"\n [schema]=\"selectedSchema\"\n [(configData)]=\"formData.data\"\n [showJsonView]=\"svc.configJsonView\"\n [(configErrors)]=\"errors\"\n #configEditor\n ></lib-config-editor>\n </div>\n </lib-form-field-container>\n </div>\n <div class=\"form-group-column two-fifths\">\n <lib-form-field-container\n [title]=\"'API Calls'\"\n [label]=\"''\"\n >\n <div class=\"form-row\">\n <input class=\"form-field-input\" [value]=\"apiCallURL\" readonly/>\n <div class=\"url-copy icon-copy copy\" (click)=\"copyToClipboard(apiCallURL)\"></div>\n </div>\n <lib-json-view *ngIf=\"formData\" [(data)]=\"
|
|
8941
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ConfigurationFormComponent, selector: "lib-configuration", inputs: { formData: "formData", errors: "errors" }, outputs: { close: "close" }, viewQueries: [{ propertyName: "configEditor", first: true, predicate: ["configEditor"], descendants: true, read: ConfigEditorComponent }], usesInheritance: true, ngImport: i0, template: "<div class=\"projectable-form-wrapper\"\n (keyup.enter)=\"save($event)\"\n (keyup.escape)=\"closeModal(false)\"\n tabindex=\"0\"\n>\n <lib-form-header\n [data]=\"formData\"\n [title]=\"(formData.id ? 'Edit Config' : 'Create Config')\"\n [moreActions]=\"formData.moreActions\"\n (actionRequested)=\"headerActionRequested($event)\"\n [(formView)]=\"formView\"\n [saveDisabled]=\"svc.saveDisabled || formDataInvalid\"\n [saveTooltip]=\"saveButtonTooltip\"\n ></lib-form-header>\n <div class=\"config-form-container projectable-form-container\">\n <div class=\"projectable-form-main-column form-group-row\" [hidden]=\"formView !== 'simple'\">\n <div class=\"form-group-column three-fifths\">\n <lib-form-field-container [title]=\"'Config Name'\" [label]=\"'Required'\">\n <input\n id=\"ConfigName\"\n type=\"text\"\n maxlength=\"500\"\n placeholder=\"Name this config\"\n [ngClass]=\"{error: errors['name']}\"\n [(ngModel)]=\"formData.name\"\n (keyup)=\"apiData()\"\n >\n </lib-form-field-container>\n <lib-form-field-container [showHeader]=\"false\">\n <div class=\"config-title-row\">\n <span class=\"form-field-title\">Configuration Data</span>\n <div class=\"form-header-toggle-container\">\n <span\n class=\"toggle-option-text\"\n [ngClass]=\"{'toggle-option-selected': !svc.configJsonView}\"\n (click)=\"svc.toggleJSONView()\"\n >\n FORM\n </span>\n <div class=\"form-header-toggle\" (click)=\"svc.toggleJSONView()\">\n <div\n class=\"form-toggle-switch\"\n [ngClass]=\"{'toggle-left': !svc.configJsonView, 'toggle-right': svc.configJsonView}\"\n >\n <div class=\"form-toggle-indicator\"></div>\n <div class=\"form-toggle-indicator\"></div>\n </div>\n </div>\n <span\n class=\"toggle-option-text\"\n [ngClass]=\"{'toggle-option-selected': svc.configJsonView}\"\n (click)=\"svc.toggleJSONView()\"\n >\n JSON\n </span>\n </div>\n </div>\n <div class=\"form-field-input-group\">\n <div class=\"config-title-row\">\n <span class=\"form-field-title\">{{isEditing ? 'Config Type' : 'Select a Config Type'}}</span>\n </div>\n <select\n id=\"ConfigTypes\"\n class=\"config-type-select\"\n [(ngModel)]=\"formData.configTypeId\"\n (change)=\"getSchema()\"\n [ngClass]=\"{disabled: isEditing, error: errors['configTypeId']}\"\n >\n <option value=\"\">Select A Type...</option>\n <option *ngFor=\"let config of options\"\n [value]=\"config.id\">{{config.name}}\n </option>\n </select>\n <lib-config-editor\n [hidden]=\"configTypeEmpty\"\n [schema]=\"selectedSchema\"\n [(configData)]=\"formData.data\"\n [showJsonView]=\"svc.configJsonView\"\n [(configErrors)]=\"errors\"\n (configDataChange)=\"dataChanged($event)\"\n #configEditor\n ></lib-config-editor>\n </div>\n </lib-form-field-container>\n </div>\n <div class=\"form-group-column two-fifths\">\n <lib-form-field-container\n [title]=\"'API Calls'\"\n [label]=\"''\"\n >\n <div class=\"form-row\">\n <input class=\"form-field-input\" [value]=\"apiCallURL\" readonly/>\n <div class=\"url-copy icon-copy copy\" (click)=\"copyToClipboard(apiCallURL)\"></div>\n </div>\n <lib-json-view *ngIf=\"formData\" [(data)]=\"_apiData\" [readOnly]=\"true\" [showCopy]=\"true\"></lib-json-view>\n </lib-form-field-container>\n </div>\n </div>\n <div class=\"form-group-column\" *ngIf=\"formView === 'raw'\">\n <lib-json-view *ngIf=\"formData\" [(data)]=\"formData\"></lib-json-view>\n </div>\n </div>\n</div>\n<lib-loading-indicator *ngIf=\"isLoading\" [isLoading]=\"isLoading\"></lib-loading-indicator>\n", styles: [".config-form-container{display:flex;flex-direction:column;height:100%;width:100%;align-items:center;gap:var(--gapXL)}.config-type-select.disabled{opacity:.7;pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i1$4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.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: i5.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: FormHeaderComponent, selector: "lib-form-header", inputs: ["data", "title", "moreActions", "formView", "saveDisabled", "saveTooltip", "actionButtonText", "moreActionsText"], outputs: ["formViewChange", "actionRequested"] }, { kind: "component", type: FormFieldContainerComponent, selector: "lib-form-field-container", inputs: ["title", "title2", "layout", "helpText", "helpText2", "label", "count", "action", "actionLabel", "class", "contentStyle", "showHeader", "headerActions"], outputs: ["actionRequested"] }, { kind: "component", type: LoadingIndicatorComponent, selector: "lib-loading-indicator", inputs: ["isLoading"] }, { kind: "component", type: JsonViewComponent, selector: "lib-json-view", inputs: ["data", "schema", "readOnly", "jsonInvalid", "showCopy"], outputs: ["dataChange", "jsonChange", "jsonInvalidChange"] }, { kind: "component", type: ConfigEditorComponent, selector: "lib-config-editor", inputs: ["configErrors", "configData", "showJsonView", "schema"], outputs: ["configErrorsChange", "configDataChange"] }] }); }
|
|
8923
8942
|
}
|
|
8924
8943
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfigurationFormComponent, decorators: [{
|
|
8925
8944
|
type: Component,
|
|
8926
|
-
args: [{ selector: 'lib-configuration', template: "<div class=\"projectable-form-wrapper\"\n (keyup.enter)=\"save($event)\"\n (keyup.escape)=\"closeModal(false)\"\n tabindex=\"0\"\n>\n <lib-form-header\n [data]=\"formData\"\n [title]=\"(formData.id ? 'Edit Config' : 'Create Config')\"\n [moreActions]=\"formData.moreActions\"\n (actionRequested)=\"headerActionRequested($event)\"\n [(formView)]=\"formView\"\n [saveDisabled]=\"svc.saveDisabled || formDataInvalid\"\n [saveTooltip]=\"saveButtonTooltip\"\n ></lib-form-header>\n <div class=\"config-form-container projectable-form-container\">\n <div class=\"projectable-form-main-column form-group-row\" [hidden]=\"formView !== 'simple'\">\n <div class=\"form-group-column three-fifths\">\n <lib-form-field-container [title]=\"'Config Name'\" [label]=\"'Required'\">\n <input\n id=\"ConfigName\"\n type=\"text\"\n maxlength=\"500\"\n placeholder=\"Name this config\"\n [ngClass]=\"{error: errors['name']}\"\n [(ngModel)]=\"formData.name\"\n >\n </lib-form-field-container>\n <lib-form-field-container [showHeader]=\"false\">\n <div class=\"config-title-row\">\n <span class=\"form-field-title\">Configuration Data</span>\n <div class=\"form-header-toggle-container\">\n <span\n class=\"toggle-option-text\"\n [ngClass]=\"{'toggle-option-selected': !svc.configJsonView}\"\n (click)=\"svc.toggleJSONView()\"\n >\n FORM\n </span>\n <div class=\"form-header-toggle\" (click)=\"svc.toggleJSONView()\">\n <div\n class=\"form-toggle-switch\"\n [ngClass]=\"{'toggle-left': !svc.configJsonView, 'toggle-right': svc.configJsonView}\"\n >\n <div class=\"form-toggle-indicator\"></div>\n <div class=\"form-toggle-indicator\"></div>\n </div>\n </div>\n <span\n class=\"toggle-option-text\"\n [ngClass]=\"{'toggle-option-selected': svc.configJsonView}\"\n (click)=\"svc.toggleJSONView()\"\n >\n JSON\n </span>\n </div>\n </div>\n <div class=\"form-field-input-group\">\n <div class=\"config-title-row\">\n <span class=\"form-field-title\">{{isEditing ? 'Config Type' : 'Select a Config Type'}}</span>\n </div>\n <select\n id=\"ConfigTypes\"\n class=\"config-type-select\"\n [(ngModel)]=\"formData.configTypeId\"\n (change)=\"getSchema()\"\n [ngClass]=\"{disabled: isEditing, error: errors['configTypeId']}\"\n >\n <option value=\"\">Select A Type...</option>\n <option *ngFor=\"let config of options\"\n [value]=\"config.id\">{{config.name}}\n </option>\n </select>\n <lib-config-editor\n [hidden]=\"configTypeEmpty\"\n [schema]=\"selectedSchema\"\n [(configData)]=\"formData.data\"\n [showJsonView]=\"svc.configJsonView\"\n [(configErrors)]=\"errors\"\n #configEditor\n ></lib-config-editor>\n </div>\n </lib-form-field-container>\n </div>\n <div class=\"form-group-column two-fifths\">\n <lib-form-field-container\n [title]=\"'API Calls'\"\n [label]=\"''\"\n >\n <div class=\"form-row\">\n <input class=\"form-field-input\" [value]=\"apiCallURL\" readonly/>\n <div class=\"url-copy icon-copy copy\" (click)=\"copyToClipboard(apiCallURL)\"></div>\n </div>\n <lib-json-view *ngIf=\"formData\" [(data)]=\"
|
|
8945
|
+
args: [{ selector: 'lib-configuration', template: "<div class=\"projectable-form-wrapper\"\n (keyup.enter)=\"save($event)\"\n (keyup.escape)=\"closeModal(false)\"\n tabindex=\"0\"\n>\n <lib-form-header\n [data]=\"formData\"\n [title]=\"(formData.id ? 'Edit Config' : 'Create Config')\"\n [moreActions]=\"formData.moreActions\"\n (actionRequested)=\"headerActionRequested($event)\"\n [(formView)]=\"formView\"\n [saveDisabled]=\"svc.saveDisabled || formDataInvalid\"\n [saveTooltip]=\"saveButtonTooltip\"\n ></lib-form-header>\n <div class=\"config-form-container projectable-form-container\">\n <div class=\"projectable-form-main-column form-group-row\" [hidden]=\"formView !== 'simple'\">\n <div class=\"form-group-column three-fifths\">\n <lib-form-field-container [title]=\"'Config Name'\" [label]=\"'Required'\">\n <input\n id=\"ConfigName\"\n type=\"text\"\n maxlength=\"500\"\n placeholder=\"Name this config\"\n [ngClass]=\"{error: errors['name']}\"\n [(ngModel)]=\"formData.name\"\n (keyup)=\"apiData()\"\n >\n </lib-form-field-container>\n <lib-form-field-container [showHeader]=\"false\">\n <div class=\"config-title-row\">\n <span class=\"form-field-title\">Configuration Data</span>\n <div class=\"form-header-toggle-container\">\n <span\n class=\"toggle-option-text\"\n [ngClass]=\"{'toggle-option-selected': !svc.configJsonView}\"\n (click)=\"svc.toggleJSONView()\"\n >\n FORM\n </span>\n <div class=\"form-header-toggle\" (click)=\"svc.toggleJSONView()\">\n <div\n class=\"form-toggle-switch\"\n [ngClass]=\"{'toggle-left': !svc.configJsonView, 'toggle-right': svc.configJsonView}\"\n >\n <div class=\"form-toggle-indicator\"></div>\n <div class=\"form-toggle-indicator\"></div>\n </div>\n </div>\n <span\n class=\"toggle-option-text\"\n [ngClass]=\"{'toggle-option-selected': svc.configJsonView}\"\n (click)=\"svc.toggleJSONView()\"\n >\n JSON\n </span>\n </div>\n </div>\n <div class=\"form-field-input-group\">\n <div class=\"config-title-row\">\n <span class=\"form-field-title\">{{isEditing ? 'Config Type' : 'Select a Config Type'}}</span>\n </div>\n <select\n id=\"ConfigTypes\"\n class=\"config-type-select\"\n [(ngModel)]=\"formData.configTypeId\"\n (change)=\"getSchema()\"\n [ngClass]=\"{disabled: isEditing, error: errors['configTypeId']}\"\n >\n <option value=\"\">Select A Type...</option>\n <option *ngFor=\"let config of options\"\n [value]=\"config.id\">{{config.name}}\n </option>\n </select>\n <lib-config-editor\n [hidden]=\"configTypeEmpty\"\n [schema]=\"selectedSchema\"\n [(configData)]=\"formData.data\"\n [showJsonView]=\"svc.configJsonView\"\n [(configErrors)]=\"errors\"\n (configDataChange)=\"dataChanged($event)\"\n #configEditor\n ></lib-config-editor>\n </div>\n </lib-form-field-container>\n </div>\n <div class=\"form-group-column two-fifths\">\n <lib-form-field-container\n [title]=\"'API Calls'\"\n [label]=\"''\"\n >\n <div class=\"form-row\">\n <input class=\"form-field-input\" [value]=\"apiCallURL\" readonly/>\n <div class=\"url-copy icon-copy copy\" (click)=\"copyToClipboard(apiCallURL)\"></div>\n </div>\n <lib-json-view *ngIf=\"formData\" [(data)]=\"_apiData\" [readOnly]=\"true\" [showCopy]=\"true\"></lib-json-view>\n </lib-form-field-container>\n </div>\n </div>\n <div class=\"form-group-column\" *ngIf=\"formView === 'raw'\">\n <lib-json-view *ngIf=\"formData\" [(data)]=\"formData\"></lib-json-view>\n </div>\n </div>\n</div>\n<lib-loading-indicator *ngIf=\"isLoading\" [isLoading]=\"isLoading\"></lib-loading-indicator>\n", styles: [".config-form-container{display:flex;flex-direction:column;height:100%;width:100%;align-items:center;gap:var(--gapXL)}.config-type-select.disabled{opacity:.7;pointer-events:none}\n"] }]
|
|
8927
8946
|
}], ctorParameters: function () { return [{ type: ConfigurationService }, { type: SchemaService }, { type: GrowlerService }, { type: undefined, decorators: [{
|
|
8928
8947
|
type: Inject,
|
|
8929
8948
|
args: [SHAREDZ_EXTENSION]
|
|
@@ -10660,6 +10679,7 @@ class ServicesPageService extends ListPageServiceClass {
|
|
|
10660
10679
|
{ name: 'Download Selected', action: 'download-selected' },
|
|
10661
10680
|
];
|
|
10662
10681
|
this.resourceType = 'services';
|
|
10682
|
+
this.basePath = '/services/advanced';
|
|
10663
10683
|
this.validate = (formData) => {
|
|
10664
10684
|
return Promise.resolve({ passed: true });
|
|
10665
10685
|
};
|
|
@@ -10680,7 +10700,7 @@ class ServicesPageService extends ListPageServiceClass {
|
|
|
10680
10700
|
headerComponent: TableColumnDefaultComponent,
|
|
10681
10701
|
headerComponentParams: this.headerComponentParams,
|
|
10682
10702
|
cellRenderer: TableCellNameComponent,
|
|
10683
|
-
cellRendererParams: { pathRoot: 'services/advanced
|
|
10703
|
+
cellRendererParams: { pathRoot: '/services/advanced' },
|
|
10684
10704
|
onCellClicked: (data) => {
|
|
10685
10705
|
if (this.hasSelectedText()) {
|
|
10686
10706
|
return;
|
|
@@ -16257,7 +16277,7 @@ class EdgeRouterPoliciesPageService extends ListPageServiceClass {
|
|
|
16257
16277
|
headerComponent: TableColumnDefaultComponent,
|
|
16258
16278
|
headerComponentParams: this.headerComponentParams,
|
|
16259
16279
|
cellRenderer: TableCellNameComponent,
|
|
16260
|
-
cellRendererParams: { pathRoot:
|
|
16280
|
+
cellRendererParams: { pathRoot: this.basePath },
|
|
16261
16281
|
onCellClicked: (data) => {
|
|
16262
16282
|
if (this.hasSelectedText()) {
|
|
16263
16283
|
return;
|
|
@@ -16775,7 +16795,7 @@ class ServicePoliciesPageService extends ListPageServiceClass {
|
|
|
16775
16795
|
headerComponent: TableColumnDefaultComponent,
|
|
16776
16796
|
headerComponentParams: this.headerComponentParams,
|
|
16777
16797
|
cellRenderer: TableCellNameComponent,
|
|
16778
|
-
cellRendererParams: { pathRoot:
|
|
16798
|
+
cellRendererParams: { pathRoot: this.basePath },
|
|
16779
16799
|
onCellClicked: (data) => {
|
|
16780
16800
|
if (this.hasSelectedText()) {
|
|
16781
16801
|
return;
|
|
@@ -18270,7 +18290,7 @@ class ServiceEdgeRouterPoliciesPageService extends ListPageServiceClass {
|
|
|
18270
18290
|
headerComponent: TableColumnDefaultComponent,
|
|
18271
18291
|
headerComponentParams: this.headerComponentParams,
|
|
18272
18292
|
cellRenderer: TableCellNameComponent,
|
|
18273
|
-
cellRendererParams: { pathRoot:
|
|
18293
|
+
cellRendererParams: { pathRoot: this.basePath },
|
|
18274
18294
|
onCellClicked: (data) => {
|
|
18275
18295
|
if (this.hasSelectedText()) {
|
|
18276
18296
|
return;
|
|
@@ -19323,7 +19343,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
19323
19343
|
}] });
|
|
19324
19344
|
|
|
19325
19345
|
const VERSION = {
|
|
19326
|
-
"version": "3.4.
|
|
19346
|
+
"version": "3.4.3"
|
|
19327
19347
|
};
|
|
19328
19348
|
|
|
19329
19349
|
/*
|