@openziti/ziti-console-lib 0.12.4 → 0.12.6
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/progress-meter/progress-meter.component.mjs +44 -0
- package/esm2022/lib/features/progress-wizard/progress-wizard.component.mjs +91 -0
- package/esm2022/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.service.mjs +4 -2
- package/esm2022/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.service.mjs +4 -2
- package/esm2022/lib/features/projectable-forms/service-policy/service-policy-form.service.mjs +4 -2
- package/esm2022/lib/features/visualizer/identity-service-path/identity-service-path.component.mjs +19 -19
- package/esm2022/lib/features/visualizer/identity-service-path/identity-service-path.helper.mjs +10 -4
- package/esm2022/lib/pages/auth-policies/auth-policies-page.service.mjs +3 -2
- package/esm2022/lib/pages/certificate-authorities/certificate-authorities-page.service.mjs +3 -2
- package/esm2022/lib/pages/config-types/config-types-page.service.mjs +3 -2
- package/esm2022/lib/pages/configurations/configurations-page.service.mjs +3 -2
- package/esm2022/lib/pages/edge-router-policies/edge-router-policies-page.service.mjs +3 -2
- package/esm2022/lib/pages/edge-routers/edge-routers-page.service.mjs +3 -2
- package/esm2022/lib/pages/identities/identities-page.service.mjs +3 -2
- package/esm2022/lib/pages/jwt-signers/jwt-signers-page.service.mjs +3 -2
- package/esm2022/lib/pages/posture-checks/posture-checks-page.service.mjs +3 -2
- package/esm2022/lib/pages/service-edge-router-policies/service-edge-router-policies-page.service.mjs +3 -2
- package/esm2022/lib/pages/service-policies/service-policies-page.service.mjs +3 -2
- package/esm2022/lib/pages/services/services-page.service.mjs +3 -2
- package/esm2022/lib/pages/terminators/terminators-page.service.mjs +3 -2
- package/esm2022/lib/pages/transit-routers/transit-routers-page.service.mjs +3 -2
- package/esm2022/lib/shared/list-page-service.class.mjs +21 -1
- package/esm2022/lib/version.mjs +2 -2
- package/esm2022/lib/ziti-console-lib.module.mjs +19 -5
- package/esm2022/public-api.mjs +5 -1
- package/fesm2022/openziti-ziti-console-lib.mjs +727 -544
- package/fesm2022/openziti-ziti-console-lib.mjs.map +1 -1
- package/lib/features/progress-meter/progress-meter.component.d.ts +19 -0
- package/lib/features/progress-meter/progress-meter.component.d.ts.map +1 -0
- package/lib/features/progress-wizard/progress-wizard.component.d.ts +31 -0
- package/lib/features/progress-wizard/progress-wizard.component.d.ts.map +1 -0
- package/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.service.d.ts.map +1 -1
- package/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.service.d.ts.map +1 -1
- package/lib/features/projectable-forms/service-policy/service-policy-form.service.d.ts.map +1 -1
- package/lib/features/visualizer/identity-service-path/identity-service-path.component.d.ts +1 -0
- package/lib/features/visualizer/identity-service-path/identity-service-path.component.d.ts.map +1 -1
- package/lib/features/visualizer/identity-service-path/identity-service-path.helper.d.ts.map +1 -1
- package/lib/features/visualizer/network-visualizer/network-visualizer.component.d.ts +1 -1
- package/lib/pages/auth-policies/auth-policies-page.service.d.ts.map +1 -1
- package/lib/pages/certificate-authorities/certificate-authorities-page.service.d.ts.map +1 -1
- package/lib/pages/config-types/config-types-page.service.d.ts.map +1 -1
- package/lib/pages/configurations/configurations-page.service.d.ts.map +1 -1
- package/lib/pages/edge-router-policies/edge-router-policies-page.service.d.ts.map +1 -1
- package/lib/pages/edge-routers/edge-routers-page.service.d.ts.map +1 -1
- package/lib/pages/identities/identities-page.service.d.ts.map +1 -1
- package/lib/pages/jwt-signers/jwt-signers-page.service.d.ts.map +1 -1
- package/lib/pages/posture-checks/posture-checks-page.service.d.ts.map +1 -1
- package/lib/pages/service-edge-router-policies/service-edge-router-policies-page.service.d.ts.map +1 -1
- package/lib/pages/service-policies/service-policies-page.service.d.ts.map +1 -1
- package/lib/pages/services/services-page.service.d.ts.map +1 -1
- package/lib/pages/terminators/terminators-page.service.d.ts.map +1 -1
- package/lib/pages/transit-routers/transit-routers-page.service.d.ts.map +1 -1
- package/lib/shared/list-page-service.class.d.ts +21 -0
- package/lib/shared/list-page-service.class.d.ts.map +1 -1
- package/lib/ziti-console-lib.module.d.ts +20 -18
- package/lib/ziti-console-lib.module.d.ts.map +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +4 -0
- package/public-api.d.ts.map +1 -1
|
@@ -4,7 +4,7 @@ import * as i4 from '@angular/router';
|
|
|
4
4
|
import { NavigationEnd, RouterModule } from '@angular/router';
|
|
5
5
|
import { Subject, BehaviorSubject, firstValueFrom, tap, map, Subscription } from 'rxjs';
|
|
6
6
|
import { catchError } from 'rxjs/operators';
|
|
7
|
-
import _, { isEmpty, isNumber, includes, isNil, defer, cloneDeep, set, invoke, get, debounce, isNaN as isNaN$1, forEach, isString, isFunction, unset, isBoolean, keys, isEqual, isObject, isArray, forOwn, invert, some, filter, sortedUniq, map as map$1, trim, delay } from 'lodash';
|
|
7
|
+
import _, { isEmpty, isNumber, includes, isNil, defer, cloneDeep, set, invoke, get, debounce, isNaN as isNaN$1, forEach, isString, isFunction, unset, isBoolean, keys, isEqual, isObject, isArray, forOwn, invert, some, filter, sortBy, sortedUniq, map as map$1, trim, delay } from 'lodash';
|
|
8
8
|
import * as i1$1 from '@angular/common/http';
|
|
9
9
|
import { HttpClient, HttpParams, HttpClientModule, HttpHeaders } from '@angular/common/http';
|
|
10
10
|
import * as i1 from 'ngx-logger';
|
|
@@ -2777,387 +2777,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
2777
2777
|
}]
|
|
2778
2778
|
}], ctorParameters: function () { return [{ type: LoggerService }, { type: GrowlerService }, { type: SettingsServiceClass }, { type: i1$1.HttpClient }, { type: i4.Router }]; } });
|
|
2779
2779
|
|
|
2780
|
-
/*
|
|
2781
|
-
Copyright NetFoundry Inc.
|
|
2782
|
-
|
|
2783
|
-
Licensed under the Apache License, Version 2.0 (the "License");
|
|
2784
|
-
you may not use this file except in compliance with the License.
|
|
2785
|
-
You may obtain a copy of the License at
|
|
2786
|
-
|
|
2787
|
-
https://www.apache.org/licenses/LICENSE-2.0
|
|
2788
|
-
|
|
2789
|
-
Unless required by applicable law or agreed to in writing, software
|
|
2790
|
-
distributed under the License is distributed on an "AS IS" BASIS,
|
|
2791
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2792
|
-
See the License for the specific language governing permissions and
|
|
2793
|
-
limitations under the License.
|
|
2794
|
-
*/
|
|
2795
|
-
let ListPageServiceClass = class ListPageServiceClass {
|
|
2796
|
-
constructor(settings, filterService, csvDownloadService, extensionService, router) {
|
|
2797
|
-
this.settings = settings;
|
|
2798
|
-
this.filterService = filterService;
|
|
2799
|
-
this.csvDownloadService = csvDownloadService;
|
|
2800
|
-
this.extensionService = extensionService;
|
|
2801
|
-
this.router = router;
|
|
2802
|
-
this.CSV_COLUMNS = [
|
|
2803
|
-
{ label: 'Name', path: 'name' },
|
|
2804
|
-
{ label: 'ID', path: 'id' },
|
|
2805
|
-
{ label: 'Created At', path: 'createdAt' }
|
|
2806
|
-
];
|
|
2807
|
-
this.basePath = '';
|
|
2808
|
-
this.headerComponentParams = {
|
|
2809
|
-
filterType: 'TEXTINPUT',
|
|
2810
|
-
enableSorting: true
|
|
2811
|
-
};
|
|
2812
|
-
this.DEFAULT_PAGING = {
|
|
2813
|
-
filter: "",
|
|
2814
|
-
noSearch: false,
|
|
2815
|
-
order: "asc",
|
|
2816
|
-
page: 1,
|
|
2817
|
-
searchOn: "name",
|
|
2818
|
-
sort: "name",
|
|
2819
|
-
total: 50
|
|
2820
|
-
};
|
|
2821
|
-
this.totalCount = 0;
|
|
2822
|
-
this.menuItems = [];
|
|
2823
|
-
this.tableHeaderActions = [];
|
|
2824
|
-
this.currentSettings = {};
|
|
2825
|
-
this.sideModalOpen = false;
|
|
2826
|
-
this.currentSort = {
|
|
2827
|
-
sortBy: 'name',
|
|
2828
|
-
ordering: 'asc'
|
|
2829
|
-
};
|
|
2830
|
-
this.nameColumnRenderer = (row) => {
|
|
2831
|
-
return `<div class="col cell-name-renderer" data-id="${row?.data?.id}">
|
|
2832
|
-
<strong>${row?.data?.name}</strong>
|
|
2833
|
-
</div>`;
|
|
2834
|
-
};
|
|
2835
|
-
this.rolesRenderer = (row) => {
|
|
2836
|
-
const colId = row.column.colId;
|
|
2837
|
-
let roles = '';
|
|
2838
|
-
if (row?.data?.[colId + 'Display']) {
|
|
2839
|
-
row?.data?.[colId + 'Display'].forEach((attr) => {
|
|
2840
|
-
const className = attr?.name?.indexOf('@') === 0 ? 'attag' : 'hashtag';
|
|
2841
|
-
roles += `<div>
|
|
2842
|
-
<div class="${className}">${attr.name}</div>
|
|
2843
|
-
<div class="tag-name">${attr.name}</div>
|
|
2844
|
-
</div>`;
|
|
2845
|
-
});
|
|
2846
|
-
}
|
|
2847
|
-
else {
|
|
2848
|
-
row?.data?.[colId]?.forEach((attr) => {
|
|
2849
|
-
const className = attr.indexOf('@') === 0 ? 'attag' : 'hashtag';
|
|
2850
|
-
roles += `<div>
|
|
2851
|
-
<div class="${className}">${attr}</div>
|
|
2852
|
-
<div class="tag-name">${attr}</div>
|
|
2853
|
-
</div>`;
|
|
2854
|
-
});
|
|
2855
|
-
}
|
|
2856
|
-
return roles;
|
|
2857
|
-
};
|
|
2858
|
-
this.createdAtFormatter = (row) => {
|
|
2859
|
-
return moment(row?.data?.createdAt).local().format('M/D/YYYY HH:mm A');
|
|
2860
|
-
};
|
|
2861
|
-
this.dataService = inject(ZITI_DATA_SERVICE);
|
|
2862
|
-
this.settings.settingsChange.subscribe((settings) => {
|
|
2863
|
-
if (!isEmpty(this.settings?.settings?.session?.id) || this.dataService.dataServiceType === ZitiDataService.NODE_DATA_SERVICE_TYPE) {
|
|
2864
|
-
if ((this.currentSettings?.session?.id !== settings?.session?.id || this.dataService.dataServiceType === ZitiDataService.NODE_DATA_SERVICE_TYPE) && this.refreshData) {
|
|
2865
|
-
this.refreshData();
|
|
2866
|
-
}
|
|
2867
|
-
}
|
|
2868
|
-
this.currentSettings = settings;
|
|
2869
|
-
});
|
|
2870
|
-
router.events.subscribe((event) => {
|
|
2871
|
-
if (event => event instanceof NavigationEnd) {
|
|
2872
|
-
if (!event?.snapshot?.routeConfig?.path) {
|
|
2873
|
-
return;
|
|
2874
|
-
}
|
|
2875
|
-
const pathSegments = event.snapshot.routeConfig.path.split('/');
|
|
2876
|
-
this.basePath = pathSegments[0];
|
|
2877
|
-
}
|
|
2878
|
-
});
|
|
2879
|
-
}
|
|
2880
|
-
initMenuActions() {
|
|
2881
|
-
if (this.extensionService.listActions) {
|
|
2882
|
-
this.menuItems = this.menuItems.map((item) => {
|
|
2883
|
-
this.extensionService.listActions.forEach((extItem) => {
|
|
2884
|
-
if (item.action === extItem.action) {
|
|
2885
|
-
item = extItem;
|
|
2886
|
-
}
|
|
2887
|
-
});
|
|
2888
|
-
return item;
|
|
2889
|
-
});
|
|
2890
|
-
let filteredActions = this.extensionService.listActions.filter((extItem) => {
|
|
2891
|
-
return !this.menuItems.some((item) => {
|
|
2892
|
-
return item.action === extItem.action;
|
|
2893
|
-
});
|
|
2894
|
-
});
|
|
2895
|
-
this.menuItems = [...this.menuItems, ...filteredActions];
|
|
2896
|
-
}
|
|
2897
|
-
}
|
|
2898
|
-
addListItemExtensionActions(row) {
|
|
2899
|
-
if (this.extensionService.listActions) {
|
|
2900
|
-
const keys = this.extensionService.listActions.map((action) => {
|
|
2901
|
-
return action.action;
|
|
2902
|
-
});
|
|
2903
|
-
row.actionList = [...row.actionList, ...keys];
|
|
2904
|
-
}
|
|
2905
|
-
}
|
|
2906
|
-
downloadItems(selectedItems) {
|
|
2907
|
-
this.csvDownloadService.download(this.resourceType, selectedItems, this.CSV_COLUMNS, false, false, undefined, false);
|
|
2908
|
-
}
|
|
2909
|
-
downloadAllItems() {
|
|
2910
|
-
const paging = cloneDeep(this.DEFAULT_PAGING);
|
|
2911
|
-
paging.total = -1;
|
|
2912
|
-
return this.getTableData(this.resourceType, paging, undefined, undefined)
|
|
2913
|
-
.then((results) => {
|
|
2914
|
-
return this.downloadItems(results?.data);
|
|
2915
|
-
});
|
|
2916
|
-
}
|
|
2917
|
-
getTableData(resourceType, paging, filters, sort) {
|
|
2918
|
-
if (!paging) {
|
|
2919
|
-
paging = { ...this.DEFAULT_PAGING };
|
|
2920
|
-
}
|
|
2921
|
-
if (sort) {
|
|
2922
|
-
paging.sort = sort.sortBy;
|
|
2923
|
-
paging.order = sort.ordering;
|
|
2924
|
-
}
|
|
2925
|
-
for (let idx = 0; idx < filters?.length; idx++) {
|
|
2926
|
-
paging.noSearch = false;
|
|
2927
|
-
paging.searchOn = filters[idx].columnId;
|
|
2928
|
-
paging.filter = filters[idx].value;
|
|
2929
|
-
paging.rawFilter = true;
|
|
2930
|
-
}
|
|
2931
|
-
this.filterService.filtering.next(true);
|
|
2932
|
-
return this.dataService.get(resourceType, paging, filters).finally(() => {
|
|
2933
|
-
this.filterService.filtering.next(false);
|
|
2934
|
-
});
|
|
2935
|
-
}
|
|
2936
|
-
checkForAssociatedEntities(items, type, associatedType) {
|
|
2937
|
-
const itemsWithAssociations = [];
|
|
2938
|
-
const promises = [];
|
|
2939
|
-
items.forEach((config) => {
|
|
2940
|
-
const prom = this.dataService.getSubdata(type, config.id, associatedType).then((result) => {
|
|
2941
|
-
const services = result.data || [];
|
|
2942
|
-
if (services.length > 0) {
|
|
2943
|
-
itemsWithAssociations.push(config);
|
|
2944
|
-
}
|
|
2945
|
-
});
|
|
2946
|
-
promises.push(prom);
|
|
2947
|
-
});
|
|
2948
|
-
return Promise.all(promises).then(() => {
|
|
2949
|
-
return itemsWithAssociations;
|
|
2950
|
-
});
|
|
2951
|
-
}
|
|
2952
|
-
removeItems(ids) {
|
|
2953
|
-
const promises = [];
|
|
2954
|
-
ids.forEach((id) => {
|
|
2955
|
-
const prom = this.dataService.delete(this.resourceType, id);
|
|
2956
|
-
promises.push(prom);
|
|
2957
|
-
});
|
|
2958
|
-
return Promise.all(promises);
|
|
2959
|
-
}
|
|
2960
|
-
sort(sortBy, ordering = 'asc') {
|
|
2961
|
-
this.currentSort = { sortBy, ordering };
|
|
2962
|
-
if (this.refreshData)
|
|
2963
|
-
this.refreshData({ sortBy, ordering });
|
|
2964
|
-
}
|
|
2965
|
-
hasSelectedText() {
|
|
2966
|
-
let text = '';
|
|
2967
|
-
if (window.getSelection) {
|
|
2968
|
-
text = window.getSelection().toString();
|
|
2969
|
-
}
|
|
2970
|
-
return text?.length > 0;
|
|
2971
|
-
}
|
|
2972
|
-
getNetworkJwt() {
|
|
2973
|
-
return this.dataService.get('network-jwts', {}, []);
|
|
2974
|
-
}
|
|
2975
|
-
openEditForm(itemId = '', basePath) {
|
|
2976
|
-
if (isEmpty(itemId)) {
|
|
2977
|
-
itemId = 'create';
|
|
2978
|
-
}
|
|
2979
|
-
basePath = basePath ? basePath : this.basePath;
|
|
2980
|
-
this.router?.navigateByUrl(`${basePath}/${itemId}`);
|
|
2981
|
-
}
|
|
2982
|
-
remToPx(remValue) {
|
|
2983
|
-
const rootFontSize = parseFloat(window.getComputedStyle(document.documentElement).fontSize);
|
|
2984
|
-
return remValue * rootFontSize;
|
|
2985
|
-
}
|
|
2986
|
-
;
|
|
2987
|
-
};
|
|
2988
|
-
ListPageServiceClass = __decorate([
|
|
2989
|
-
__param(0, Inject(SETTINGS_SERVICE)),
|
|
2990
|
-
__param(3, Inject(SHAREDZ_EXTENSION))
|
|
2991
|
-
], ListPageServiceClass);
|
|
2992
|
-
|
|
2993
|
-
class ListPageComponent {
|
|
2994
|
-
constructor(filterService, svc, consoleEvents, dialogForm, extensionService) {
|
|
2995
|
-
this.filterService = filterService;
|
|
2996
|
-
this.svc = svc;
|
|
2997
|
-
this.consoleEvents = consoleEvents;
|
|
2998
|
-
this.dialogForm = dialogForm;
|
|
2999
|
-
this.extensionService = extensionService;
|
|
3000
|
-
this.startCount = '-';
|
|
3001
|
-
this.endCount = '-';
|
|
3002
|
-
this.totalCount = '-';
|
|
3003
|
-
this.itemsSelected = false;
|
|
3004
|
-
this.selectedItems = [];
|
|
3005
|
-
this.columnDefs = [];
|
|
3006
|
-
this.rowData = [];
|
|
3007
|
-
this.reservedNames = [];
|
|
3008
|
-
this.filterApplied = false;
|
|
3009
|
-
this.modalOpen = false;
|
|
3010
|
-
this.gridObj = {};
|
|
3011
|
-
this.subscription = new Subscription();
|
|
3012
|
-
this.growlerSvc = inject(GrowlerService);
|
|
3013
|
-
}
|
|
3014
|
-
ngOnInit() {
|
|
3015
|
-
this.filterService.currentPage = 1;
|
|
3016
|
-
this.svc.sideModalOpen = false;
|
|
3017
|
-
this.svc.refreshData = this.refreshData.bind(this);
|
|
3018
|
-
this.svc.initMenuActions();
|
|
3019
|
-
this.columnDefs = this.svc.initTableColumns();
|
|
3020
|
-
this.filterService.clearFilters();
|
|
3021
|
-
this.extensionService?.extendOnInit();
|
|
3022
|
-
this.subscription.add(this.filterService.filtersChanged.subscribe(filters => {
|
|
3023
|
-
this.filterApplied = filters && filters.length > 0;
|
|
3024
|
-
this.refreshData();
|
|
3025
|
-
}));
|
|
3026
|
-
this.filterService.pageChanged.subscribe(page => {
|
|
3027
|
-
this.refreshData();
|
|
3028
|
-
});
|
|
3029
|
-
this.subscription.add(this.consoleEvents.closeSideModal.subscribe((event) => {
|
|
3030
|
-
this.closeModal();
|
|
3031
|
-
}));
|
|
3032
|
-
this.subscription.add(this.consoleEvents.refreshData.subscribe((event) => {
|
|
3033
|
-
this.refreshData();
|
|
3034
|
-
}));
|
|
3035
|
-
this.consoleEvents.enableZACEvents();
|
|
3036
|
-
}
|
|
3037
|
-
ngOnDestroy() {
|
|
3038
|
-
this.subscription.unsubscribe();
|
|
3039
|
-
}
|
|
3040
|
-
itemToggled(item) {
|
|
3041
|
-
this.updateSelectedItems(item);
|
|
3042
|
-
}
|
|
3043
|
-
updateSelectedItems(toggledItem) {
|
|
3044
|
-
let itemSelected = false;
|
|
3045
|
-
this.selectedItems = [];
|
|
3046
|
-
this.rowData.forEach((item) => {
|
|
3047
|
-
const reserved = this.reservedNames?.includes(item.name);
|
|
3048
|
-
if (reserved) {
|
|
3049
|
-
item.selected = false;
|
|
3050
|
-
}
|
|
3051
|
-
else if (toggledItem?.id && toggledItem?.id === item?.id) {
|
|
3052
|
-
item.selected = toggledItem.selected;
|
|
3053
|
-
}
|
|
3054
|
-
if (item.selected) {
|
|
3055
|
-
itemSelected = true;
|
|
3056
|
-
this.selectedItems.push(item);
|
|
3057
|
-
}
|
|
3058
|
-
});
|
|
3059
|
-
this.itemsSelected = itemSelected;
|
|
3060
|
-
}
|
|
3061
|
-
refreshData(sort, hardRefresh = false) {
|
|
3062
|
-
this.isLoading = true;
|
|
3063
|
-
sort = sort ? sort : this.svc.currentSort;
|
|
3064
|
-
this.svc.getData(this.filterService.filters, sort, this.filterService.currentPage)
|
|
3065
|
-
.then((data) => {
|
|
3066
|
-
this.rowData = [];
|
|
3067
|
-
if (hardRefresh) {
|
|
3068
|
-
defer(() => {
|
|
3069
|
-
this.rowData = data.data;
|
|
3070
|
-
});
|
|
3071
|
-
}
|
|
3072
|
-
else {
|
|
3073
|
-
this.rowData = data.data;
|
|
3074
|
-
}
|
|
3075
|
-
this.totalCount = data.meta.pagination.totalCount;
|
|
3076
|
-
this.startCount = (data.meta.pagination.offset + 1);
|
|
3077
|
-
if (this.startCount + data.meta.pagination.limit > this.totalCount) {
|
|
3078
|
-
this.endCount = this.totalCount;
|
|
3079
|
-
}
|
|
3080
|
-
else {
|
|
3081
|
-
this.endCount = data.meta.pagination.offset + data.meta.pagination.limit;
|
|
3082
|
-
}
|
|
3083
|
-
this.updateSelectedItems();
|
|
3084
|
-
this.refreshCells();
|
|
3085
|
-
}).finally(() => {
|
|
3086
|
-
this.isLoading = false;
|
|
3087
|
-
});
|
|
3088
|
-
}
|
|
3089
|
-
downloadAllItems() {
|
|
3090
|
-
this.isLoading = true;
|
|
3091
|
-
this.svc.downloadAllItems().then(() => {
|
|
3092
|
-
const growlerData = new GrowlerModel('success', 'Success', `Download Finished`, `The requested items have been downloaded`);
|
|
3093
|
-
this.growlerSvc.show(growlerData);
|
|
3094
|
-
}).catch(() => {
|
|
3095
|
-
const growlerData = new GrowlerModel('error', 'Error', `Download Failed`, `Failed to retrieve items for download`);
|
|
3096
|
-
this.growlerSvc.show(growlerData);
|
|
3097
|
-
}).finally(() => {
|
|
3098
|
-
this.isLoading = false;
|
|
3099
|
-
});
|
|
3100
|
-
}
|
|
3101
|
-
openBulkDelete(selectedItems, entityTypeLabel = 'item(s)') {
|
|
3102
|
-
const selectedIds = selectedItems.map((row) => {
|
|
3103
|
-
return row.id;
|
|
3104
|
-
});
|
|
3105
|
-
const selectedNames = selectedItems.map((item) => {
|
|
3106
|
-
return item.name;
|
|
3107
|
-
});
|
|
3108
|
-
const countLabel = selectedItems.length > 1 ? selectedItems.length : '';
|
|
3109
|
-
const data = {
|
|
3110
|
-
appendId: 'DeleteServices',
|
|
3111
|
-
title: 'Delete',
|
|
3112
|
-
message: `Are you sure you would like to delete the following ${countLabel} ${entityTypeLabel}?`,
|
|
3113
|
-
bulletList: selectedNames,
|
|
3114
|
-
confirmLabel: 'Yes',
|
|
3115
|
-
cancelLabel: 'Oops, no get me out of here',
|
|
3116
|
-
imageUrl: '../../assets/svgs/Confirm_Trash.svg',
|
|
3117
|
-
showCancelLink: true
|
|
3118
|
-
};
|
|
3119
|
-
this.dialogRef = this.dialogForm.open(ConfirmComponent, {
|
|
3120
|
-
data: data,
|
|
3121
|
-
autoFocus: false,
|
|
3122
|
-
});
|
|
3123
|
-
this.dialogRef.afterClosed().subscribe((result) => {
|
|
3124
|
-
if (result?.confirmed) {
|
|
3125
|
-
this.svc.removeItems(selectedIds).then(() => {
|
|
3126
|
-
this.refreshData(this.svc.currentSort);
|
|
3127
|
-
});
|
|
3128
|
-
}
|
|
3129
|
-
});
|
|
3130
|
-
}
|
|
3131
|
-
handleExtensionActions(event) {
|
|
3132
|
-
let extensionFound = false;
|
|
3133
|
-
if (this.extensionService?.listActions?.length > 0) {
|
|
3134
|
-
this.extensionService?.listActions?.forEach((extAction) => {
|
|
3135
|
-
if (extAction?.action === event?.action) {
|
|
3136
|
-
extAction.callback(event.item);
|
|
3137
|
-
extensionFound = true;
|
|
3138
|
-
}
|
|
3139
|
-
});
|
|
3140
|
-
}
|
|
3141
|
-
return extensionFound;
|
|
3142
|
-
}
|
|
3143
|
-
gridReady(event) {
|
|
3144
|
-
this.gridObj = event;
|
|
3145
|
-
}
|
|
3146
|
-
refreshCells() {
|
|
3147
|
-
defer(() => {
|
|
3148
|
-
var params = {
|
|
3149
|
-
force: true,
|
|
3150
|
-
};
|
|
3151
|
-
this.gridObj?.api?.refreshCells(params);
|
|
3152
|
-
});
|
|
3153
|
-
}
|
|
3154
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ListPageComponent, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3155
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ListPageComponent }); }
|
|
3156
|
-
}
|
|
3157
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ListPageComponent, decorators: [{
|
|
3158
|
-
type: Injectable
|
|
3159
|
-
}], ctorParameters: function () { return [{ type: DataTableFilterService }, { type: ListPageServiceClass }, { type: ConsoleEventsService }, { type: i5$1.MatDialog }, { type: undefined }]; } });
|
|
3160
|
-
|
|
3161
2780
|
/*
|
|
3162
2781
|
Copyright NetFoundry Inc.
|
|
3163
2782
|
|
|
@@ -3352,157 +2971,557 @@ class TableColumnDefaultComponent {
|
|
|
3352
2971
|
this.sortDir = undefined;
|
|
3353
2972
|
}
|
|
3354
2973
|
else {
|
|
3355
|
-
this.sortDir = _.get(event, 'sortDir');
|
|
2974
|
+
this.sortDir = _.get(event, 'sortDir');
|
|
2975
|
+
}
|
|
2976
|
+
});
|
|
2977
|
+
headerParams.api.addEventListener('columnEverythingChanged', (event) => {
|
|
2978
|
+
_.forEach(event.api?.columnModel?.columnDefs, colDef => {
|
|
2979
|
+
if (this.columnDef.colId === colDef.colId && colDef.headerComponentParams?.filterOptions) {
|
|
2980
|
+
this.updateFilterOptions();
|
|
2981
|
+
}
|
|
2982
|
+
});
|
|
2983
|
+
});
|
|
2984
|
+
}
|
|
2985
|
+
ngAfterViewInit() {
|
|
2986
|
+
if (this.showBubble) {
|
|
2987
|
+
// this.updateStatusClass();
|
|
2988
|
+
}
|
|
2989
|
+
}
|
|
2990
|
+
pin() {
|
|
2991
|
+
this.columnDef.pinColumn(this.columnObj, this.pinned ? false : 'left');
|
|
2992
|
+
this.pinned = !this.pinned;
|
|
2993
|
+
}
|
|
2994
|
+
hide() {
|
|
2995
|
+
this.headerParams.api.zitiHideColumn(this.columnObj, false);
|
|
2996
|
+
}
|
|
2997
|
+
sort(event) {
|
|
2998
|
+
if (!this.columnDef.sortable) {
|
|
2999
|
+
return;
|
|
3000
|
+
}
|
|
3001
|
+
const targetId = _.get(event, 'target.id');
|
|
3002
|
+
if (_.includes([`HeaderStatus_${this.columnDef.colId}`, 'SearchFilter', `HeaderFilterIcon_${this.columnDef.colId}`], targetId)) {
|
|
3003
|
+
return;
|
|
3004
|
+
}
|
|
3005
|
+
if (_.isEmpty(this.sortDir)) {
|
|
3006
|
+
this.sortDir = 'asc';
|
|
3007
|
+
}
|
|
3008
|
+
else if (this.sortDir === 'asc') {
|
|
3009
|
+
this.sortDir = 'desc';
|
|
3010
|
+
}
|
|
3011
|
+
else {
|
|
3012
|
+
this.sortDir = 'asc';
|
|
3013
|
+
}
|
|
3014
|
+
_.set(this.headerParams, 'api.sortDir', this.sortDir);
|
|
3015
|
+
_.set(this.headerParams, 'api.sortDir', this.columnDef.colId);
|
|
3016
|
+
if (this.columnDef.sortColumn) {
|
|
3017
|
+
this.columnDef.sortColumn(this.columnDef.colId, this.sortDir, this.headerParams.api);
|
|
3018
|
+
this.headerParams.api.dispatchEvent({
|
|
3019
|
+
type: 'sortChanged',
|
|
3020
|
+
columnDef: this.columnDef,
|
|
3021
|
+
sortDir: this.sortDir,
|
|
3022
|
+
});
|
|
3023
|
+
}
|
|
3024
|
+
}
|
|
3025
|
+
toggleFilter(event) {
|
|
3026
|
+
this.showFilter = !this.showFilter;
|
|
3027
|
+
if (this.filterType === 'SELECT' || this.filterType === 'COMBO' || this.filterType === 'DATETIME' || this.filterType === 'ATTRIBUTE') {
|
|
3028
|
+
if (this.showFilter) {
|
|
3029
|
+
this.updateFilterOptions();
|
|
3030
|
+
_.invoke(this.headerParams, 'api.openHeaderFilter', event, this.filterOptions, this.filterType, this.columnDef?.colId, this.headerName, this.columnDef?.headerComponentParams);
|
|
3031
|
+
}
|
|
3032
|
+
else {
|
|
3033
|
+
_.invoke(this.headerParams, 'api.closeHeaderFilter', event);
|
|
3034
|
+
}
|
|
3035
|
+
}
|
|
3036
|
+
else if (this.filterType === 'CUSTOM') {
|
|
3037
|
+
if (this.showFilter) {
|
|
3038
|
+
this.updateFilterOptions();
|
|
3039
|
+
_.invoke(this.headerParams, 'column.colDef.headerComponentParams.openHeaderFilter', event, this.filterOptions);
|
|
3040
|
+
}
|
|
3041
|
+
else {
|
|
3042
|
+
_.invoke(this.headerParams, 'column.colDef.headerComponentParams.closeHeaderFilter', event);
|
|
3043
|
+
}
|
|
3044
|
+
}
|
|
3045
|
+
}
|
|
3046
|
+
toggleSecondaryFilter(event) {
|
|
3047
|
+
this.showSecondaryFilter = !this.showSecondaryFilter;
|
|
3048
|
+
if (this.showSecondaryFilter) {
|
|
3049
|
+
const options = [
|
|
3050
|
+
{
|
|
3051
|
+
label: 'Any',
|
|
3052
|
+
columnId: this.onlineStatusFilter,
|
|
3053
|
+
filterName: 'Status',
|
|
3054
|
+
value: undefined,
|
|
3055
|
+
bubbleClass: 'v7OnlineOffline',
|
|
3056
|
+
},
|
|
3057
|
+
{
|
|
3058
|
+
label: 'Online',
|
|
3059
|
+
columnId: this.onlineStatusFilter,
|
|
3060
|
+
filterName: 'Status',
|
|
3061
|
+
value: 'true',
|
|
3062
|
+
bubbleClass: 'v7Online',
|
|
3063
|
+
},
|
|
3064
|
+
{
|
|
3065
|
+
label: 'Offline',
|
|
3066
|
+
columnId: this.onlineStatusFilter,
|
|
3067
|
+
filterName: 'Status',
|
|
3068
|
+
value: 'false',
|
|
3069
|
+
bubbleClass: 'v7Offline',
|
|
3070
|
+
},
|
|
3071
|
+
];
|
|
3072
|
+
_.invoke(this.headerParams, 'api.openHeaderFilter', event, options);
|
|
3073
|
+
}
|
|
3074
|
+
else {
|
|
3075
|
+
_.invoke(this.headerParams, 'api.closeHeaderFilter', event);
|
|
3076
|
+
}
|
|
3077
|
+
}
|
|
3078
|
+
hideFilter(event) {
|
|
3079
|
+
const targetId = _.get(event, 'target.id');
|
|
3080
|
+
if (_.includes([`HeaderFilterButton_${this.columnDef.colId}`, `HeaderFilterIcon_${this.columnDef.colId}`], targetId)) {
|
|
3081
|
+
return;
|
|
3082
|
+
}
|
|
3083
|
+
else if (targetId === this.columnDef?.colId && this.filterType === 'COMBO') {
|
|
3084
|
+
return;
|
|
3085
|
+
}
|
|
3086
|
+
_.invoke(this.headerParams, 'api.closeHeaderFilter', event);
|
|
3087
|
+
this.comboActive = false;
|
|
3088
|
+
this.showFilter = false;
|
|
3089
|
+
this.showSecondaryFilter = false;
|
|
3090
|
+
}
|
|
3091
|
+
refresh(params) {
|
|
3092
|
+
return true;
|
|
3093
|
+
}
|
|
3094
|
+
openGridMenu() {
|
|
3095
|
+
if (!this._showColumnMenu) {
|
|
3096
|
+
return;
|
|
3097
|
+
}
|
|
3098
|
+
this._showColumnMenu(this.menuButton.nativeElement);
|
|
3099
|
+
}
|
|
3100
|
+
updateFilterOptions() {
|
|
3101
|
+
let options = [];
|
|
3102
|
+
if (this.headerParams.getFilterOptions) {
|
|
3103
|
+
options = this.headerParams.getFilterOptions();
|
|
3104
|
+
}
|
|
3105
|
+
else {
|
|
3106
|
+
options = this.headerParams.filterOptions;
|
|
3107
|
+
}
|
|
3108
|
+
this.filterOptions = _.map(options, (option) => {
|
|
3109
|
+
option.columnId = this.columnDef.colId;
|
|
3110
|
+
option.filterName = this.headerName;
|
|
3111
|
+
option.type = this.filterType;
|
|
3112
|
+
return option;
|
|
3113
|
+
});
|
|
3114
|
+
}
|
|
3115
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableColumnDefaultComponent, deps: [{ token: DataTableFilterService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3116
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TableColumnDefaultComponent, selector: "app-table-column-default", viewQueries: [{ propertyName: "menuButton", first: true, predicate: ["menuButton"], descendants: true }], ngImport: i0, template: "<div\n (click)=\"sort($event)\"\n [ngClass]=\"{ 'nf-can-sort': enableSorting }\"\n class=\"ag-cell-label-container ag-header-cell-sorted-none\"\n id=\"TableHeaderContainer_{{ columnDef.colId }}\"\n>\n <span\n #menuButton\n (click)=\"openGridMenu()\"\n *ngIf=\"false\"\n class=\"ag-header-icon ag-header-cell-menu-button\"\n id=\"HeaderMenu_{{ columnDef.colId }}\"\n ref=\"eMenu\"\n >\n <span class=\"ag-icon ag-icon-menu\" unselectable=\"on\"></span>\n </span>\n <span\n (click)=\"pin()\"\n class=\"ag-header-icon ag-header-col-pin-button\"\n id=\"HeaderPin_{{ columnDef.colId }}\"\n title=\"{{ pinned ? 'Unpin Column' : 'Pin Column' }}\"\n >\n <span class=\"ag-icon ag-icon-pin\"></span>\n </span>\n <span\n (click)=\"hide()\"\n class=\"ag-header-icon ag-header-col-hide-button\"\n id=\"HeaderHide_{{ columnDef.colId }}\"\n title=\"Hide Column\"\n >\n <span class=\"ag-icon ag-icon-eye-slash\"></span>\n </span>\n <div class=\"ag-header-cell-label\" ref=\"eLabel\" unselectable=\"on\">\n <span\n *ngIf=\"!headerParams.filterType\"\n [ngClass]=\"{ 'ag-filter-applied': filterApplied }\"\n class=\"ag-header-icon ag-header-col-filter-button\"\n id=\"HeaderFilterSpacer_{{ columnDef.colId }}\"\n >\n <span class=\"ag-icon ag-icon-filter\" id=\"HeaderFilterSpace_{{ columnDef.colId }}\" style=\"opacity: 0\"></span>\n </span>\n <span\n (click)=\"toggleFilter($event)\"\n *ngIf=\"headerParams.filterType\"\n [ngClass]=\"{ 'ag-filter-applied': filterApplied }\"\n class=\"ag-header-icon ag-header-col-filter-button\"\n id=\"HeaderFilterButton_{{ columnDef.colId }}\"\n >\n <span class=\"ag-icon ag-icon-filter\" id=\"HeaderFilterIcon_{{ columnDef.colId }}\"></span>\n </span>\n <div\n (clickOutside)=\"hideFilter($event)\"\n [ngClass]=\"{ 'show-input-filter': showFilter }\"\n class=\"header-text-container text-input-filter\"\n >\n <span\n (click)=\"toggleSecondaryFilter($event)\"\n *ngIf=\"showBubble\"\n [ngClass]=\"statusClass\"\n class=\"bubble\"\n id=\"HeaderStatus_{{ columnDef.colId }}\"\n >\n <svg *ngIf=\"showLoader\" class=\"circular\" viewBox=\"25 25 50 50\">\n <circle\n class=\"path\"\n cx=\"50\"\n cy=\"50\"\n fill=\"none\"\n r=\"20\"\n stroke-miterlimit=\"10\"\n stroke-width=\"3\"\n ></circle>\n </svg>\n </span>\n <app-table-column-filter\n *ngIf=\"((showFilter || comboActive) && !(filterType === 'COMBO' && !comboActive)) && filterType !== 'SELECT' && filterType !== 'CUSTOM'\"\n [columnDef]=\"columnDef\"\n [filterName]=\"headerName\"\n [filterString]=\"''\"\n [openStatusMenu]=\"toggleSecondaryFilter.bind(this)\"\n [type]=\"filterType\"\n ></app-table-column-filter>\n <span\n *ngIf=\"((!showFilter && !comboActive) || (filterType === 'COMBO' && !comboActive)) || filterType === 'SELECT' || filterType === 'CUSTOM'\"\n [title]=\"headerName\"\n class=\"ag-header-cell-text\"\n id=\"HeaderName_{{ columnDef.colId }}\"\n unselectable=\"on\"\n >{{ headerName }}</span\n >\n </div>\n <span\n *ngIf=\"enableSorting && !showFilter\"\n [ngClass]=\"{ 'ag-hidden': sortDir !== 'desc' }\"\n class=\"ag-header-icon ag-header-label-icon ag-sort-ascending-icon\"\n id=\"HeaderSortAsc_{{ columnDef.colId }}\"\n >\n <span class=\"ag-icon ag-icon-asc\" unselectable=\"on\"></span>\n </span>\n <span\n *ngIf=\"enableSorting && !showFilter\"\n [ngClass]=\"{ 'ag-hidden': sortDir !== 'asc' }\"\n class=\"ag-header-icon ag-header-label-icon ag-sort-descending-icon\"\n id=\"HeaderSortDesc_{{ columnDef.colId }}\"\n >\n <span class=\"ag-icon ag-icon-desc\" unselectable=\"on\"></span>\n </span>\n </div>\n</div>\n", styles: [".ag-header-sort-click-space{display:flex;height:100%;position:relative;width:100%}.ag-header-col-filter-button.ag-filter-applied{opacity:1!important}.Online,.v7Online,.v7Offline{margin-right:.5rem!important;height:.875rem!important;width:.875rem!important}.Online:hover,.v7Online:hover,.v7Offline:hover{border-color:var(--primaryColor)!important;border-style:solid;border-width:var(--inputBorderWidth);height:.625rem!important;width:.625rem!important}.header-text-container{white-space:nowrap;overflow-x:hidden;text-overflow:ellipsis}.text-input-filter{display:flex;flex-direction:row;align-items:center}.text-input-filter .bubble{margin-top:.5rem;margin-left:.0625rem;margin-right:.5rem;width:.875rem;height:.875rem;flex-shrink:0}.ag-header-col-filter-button{margin-top:.5rem}.ag-header-cell-text{margin-top:.125rem;width:100%}.ag-header-cell-label .ag-sort-descending-icon{margin-top:1.25rem!important}.show-input-filter{width:100%}.filterButton{background-image:none}.filterButton .options{position:fixed}\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"] }, { kind: "directive", type: i2.ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }, { kind: "component", type: TableColumnFilterComponent, selector: "app-table-column-filter", inputs: ["type", "filterString", "filterName", "columnDef", "openStatusMenu", "dateFilter"] }] }); }
|
|
3117
|
+
}
|
|
3118
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableColumnDefaultComponent, decorators: [{
|
|
3119
|
+
type: Component,
|
|
3120
|
+
args: [{ selector: 'app-table-column-default', template: "<div\n (click)=\"sort($event)\"\n [ngClass]=\"{ 'nf-can-sort': enableSorting }\"\n class=\"ag-cell-label-container ag-header-cell-sorted-none\"\n id=\"TableHeaderContainer_{{ columnDef.colId }}\"\n>\n <span\n #menuButton\n (click)=\"openGridMenu()\"\n *ngIf=\"false\"\n class=\"ag-header-icon ag-header-cell-menu-button\"\n id=\"HeaderMenu_{{ columnDef.colId }}\"\n ref=\"eMenu\"\n >\n <span class=\"ag-icon ag-icon-menu\" unselectable=\"on\"></span>\n </span>\n <span\n (click)=\"pin()\"\n class=\"ag-header-icon ag-header-col-pin-button\"\n id=\"HeaderPin_{{ columnDef.colId }}\"\n title=\"{{ pinned ? 'Unpin Column' : 'Pin Column' }}\"\n >\n <span class=\"ag-icon ag-icon-pin\"></span>\n </span>\n <span\n (click)=\"hide()\"\n class=\"ag-header-icon ag-header-col-hide-button\"\n id=\"HeaderHide_{{ columnDef.colId }}\"\n title=\"Hide Column\"\n >\n <span class=\"ag-icon ag-icon-eye-slash\"></span>\n </span>\n <div class=\"ag-header-cell-label\" ref=\"eLabel\" unselectable=\"on\">\n <span\n *ngIf=\"!headerParams.filterType\"\n [ngClass]=\"{ 'ag-filter-applied': filterApplied }\"\n class=\"ag-header-icon ag-header-col-filter-button\"\n id=\"HeaderFilterSpacer_{{ columnDef.colId }}\"\n >\n <span class=\"ag-icon ag-icon-filter\" id=\"HeaderFilterSpace_{{ columnDef.colId }}\" style=\"opacity: 0\"></span>\n </span>\n <span\n (click)=\"toggleFilter($event)\"\n *ngIf=\"headerParams.filterType\"\n [ngClass]=\"{ 'ag-filter-applied': filterApplied }\"\n class=\"ag-header-icon ag-header-col-filter-button\"\n id=\"HeaderFilterButton_{{ columnDef.colId }}\"\n >\n <span class=\"ag-icon ag-icon-filter\" id=\"HeaderFilterIcon_{{ columnDef.colId }}\"></span>\n </span>\n <div\n (clickOutside)=\"hideFilter($event)\"\n [ngClass]=\"{ 'show-input-filter': showFilter }\"\n class=\"header-text-container text-input-filter\"\n >\n <span\n (click)=\"toggleSecondaryFilter($event)\"\n *ngIf=\"showBubble\"\n [ngClass]=\"statusClass\"\n class=\"bubble\"\n id=\"HeaderStatus_{{ columnDef.colId }}\"\n >\n <svg *ngIf=\"showLoader\" class=\"circular\" viewBox=\"25 25 50 50\">\n <circle\n class=\"path\"\n cx=\"50\"\n cy=\"50\"\n fill=\"none\"\n r=\"20\"\n stroke-miterlimit=\"10\"\n stroke-width=\"3\"\n ></circle>\n </svg>\n </span>\n <app-table-column-filter\n *ngIf=\"((showFilter || comboActive) && !(filterType === 'COMBO' && !comboActive)) && filterType !== 'SELECT' && filterType !== 'CUSTOM'\"\n [columnDef]=\"columnDef\"\n [filterName]=\"headerName\"\n [filterString]=\"''\"\n [openStatusMenu]=\"toggleSecondaryFilter.bind(this)\"\n [type]=\"filterType\"\n ></app-table-column-filter>\n <span\n *ngIf=\"((!showFilter && !comboActive) || (filterType === 'COMBO' && !comboActive)) || filterType === 'SELECT' || filterType === 'CUSTOM'\"\n [title]=\"headerName\"\n class=\"ag-header-cell-text\"\n id=\"HeaderName_{{ columnDef.colId }}\"\n unselectable=\"on\"\n >{{ headerName }}</span\n >\n </div>\n <span\n *ngIf=\"enableSorting && !showFilter\"\n [ngClass]=\"{ 'ag-hidden': sortDir !== 'desc' }\"\n class=\"ag-header-icon ag-header-label-icon ag-sort-ascending-icon\"\n id=\"HeaderSortAsc_{{ columnDef.colId }}\"\n >\n <span class=\"ag-icon ag-icon-asc\" unselectable=\"on\"></span>\n </span>\n <span\n *ngIf=\"enableSorting && !showFilter\"\n [ngClass]=\"{ 'ag-hidden': sortDir !== 'asc' }\"\n class=\"ag-header-icon ag-header-label-icon ag-sort-descending-icon\"\n id=\"HeaderSortDesc_{{ columnDef.colId }}\"\n >\n <span class=\"ag-icon ag-icon-desc\" unselectable=\"on\"></span>\n </span>\n </div>\n</div>\n", styles: [".ag-header-sort-click-space{display:flex;height:100%;position:relative;width:100%}.ag-header-col-filter-button.ag-filter-applied{opacity:1!important}.Online,.v7Online,.v7Offline{margin-right:.5rem!important;height:.875rem!important;width:.875rem!important}.Online:hover,.v7Online:hover,.v7Offline:hover{border-color:var(--primaryColor)!important;border-style:solid;border-width:var(--inputBorderWidth);height:.625rem!important;width:.625rem!important}.header-text-container{white-space:nowrap;overflow-x:hidden;text-overflow:ellipsis}.text-input-filter{display:flex;flex-direction:row;align-items:center}.text-input-filter .bubble{margin-top:.5rem;margin-left:.0625rem;margin-right:.5rem;width:.875rem;height:.875rem;flex-shrink:0}.ag-header-col-filter-button{margin-top:.5rem}.ag-header-cell-text{margin-top:.125rem;width:100%}.ag-header-cell-label .ag-sort-descending-icon{margin-top:1.25rem!important}.show-input-filter{width:100%}.filterButton{background-image:none}.filterButton .options{position:fixed}\n"] }]
|
|
3121
|
+
}], ctorParameters: function () { return [{ type: DataTableFilterService }]; }, propDecorators: { menuButton: [{
|
|
3122
|
+
type: ViewChild,
|
|
3123
|
+
args: ['menuButton']
|
|
3124
|
+
}] } });
|
|
3125
|
+
|
|
3126
|
+
/*
|
|
3127
|
+
Copyright NetFoundry Inc.
|
|
3128
|
+
|
|
3129
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
3130
|
+
you may not use this file except in compliance with the License.
|
|
3131
|
+
You may obtain a copy of the License at
|
|
3132
|
+
|
|
3133
|
+
https://www.apache.org/licenses/LICENSE-2.0
|
|
3134
|
+
|
|
3135
|
+
Unless required by applicable law or agreed to in writing, software
|
|
3136
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
3137
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
3138
|
+
See the License for the specific language governing permissions and
|
|
3139
|
+
limitations under the License.
|
|
3140
|
+
*/
|
|
3141
|
+
let ListPageServiceClass = class ListPageServiceClass {
|
|
3142
|
+
constructor(settings, filterService, csvDownloadService, extensionService, router) {
|
|
3143
|
+
this.settings = settings;
|
|
3144
|
+
this.filterService = filterService;
|
|
3145
|
+
this.csvDownloadService = csvDownloadService;
|
|
3146
|
+
this.extensionService = extensionService;
|
|
3147
|
+
this.router = router;
|
|
3148
|
+
this.CSV_COLUMNS = [
|
|
3149
|
+
{ label: 'Name', path: 'name' },
|
|
3150
|
+
{ label: 'ID', path: 'id' },
|
|
3151
|
+
{ label: 'Created At', path: 'createdAt' }
|
|
3152
|
+
];
|
|
3153
|
+
this.basePath = '';
|
|
3154
|
+
this.headerComponentParams = {
|
|
3155
|
+
filterType: 'TEXTINPUT',
|
|
3156
|
+
enableSorting: true
|
|
3157
|
+
};
|
|
3158
|
+
this.ID_COLUMN_DEF = {
|
|
3159
|
+
colId: 'id',
|
|
3160
|
+
field: 'id',
|
|
3161
|
+
headerName: 'ID',
|
|
3162
|
+
headerComponent: TableColumnDefaultComponent,
|
|
3163
|
+
headerComponentParams: this.headerComponentParams,
|
|
3164
|
+
cellRendererParams: { pathRoot: this.basePath, showIdentityIcons: true },
|
|
3165
|
+
onCellClicked: (data) => {
|
|
3166
|
+
if (this.hasSelectedText()) {
|
|
3167
|
+
return;
|
|
3168
|
+
}
|
|
3169
|
+
this.openEditForm(data?.data?.id);
|
|
3170
|
+
},
|
|
3171
|
+
resizable: true,
|
|
3172
|
+
cellClass: 'nf-cell-vert-align tCol',
|
|
3173
|
+
sortable: true,
|
|
3174
|
+
filter: true,
|
|
3175
|
+
hide: true,
|
|
3176
|
+
};
|
|
3177
|
+
this.DEFAULT_PAGING = {
|
|
3178
|
+
filter: "",
|
|
3179
|
+
noSearch: false,
|
|
3180
|
+
order: "asc",
|
|
3181
|
+
page: 1,
|
|
3182
|
+
searchOn: "name",
|
|
3183
|
+
sort: "name",
|
|
3184
|
+
total: 50
|
|
3185
|
+
};
|
|
3186
|
+
this.totalCount = 0;
|
|
3187
|
+
this.menuItems = [];
|
|
3188
|
+
this.tableHeaderActions = [];
|
|
3189
|
+
this.currentSettings = {};
|
|
3190
|
+
this.sideModalOpen = false;
|
|
3191
|
+
this.currentSort = {
|
|
3192
|
+
sortBy: 'name',
|
|
3193
|
+
ordering: 'asc'
|
|
3194
|
+
};
|
|
3195
|
+
this.nameColumnRenderer = (row) => {
|
|
3196
|
+
return `<div class="col cell-name-renderer" data-id="${row?.data?.id}">
|
|
3197
|
+
<strong>${row?.data?.name}</strong>
|
|
3198
|
+
</div>`;
|
|
3199
|
+
};
|
|
3200
|
+
this.rolesRenderer = (row) => {
|
|
3201
|
+
const colId = row.column.colId;
|
|
3202
|
+
let roles = '';
|
|
3203
|
+
if (row?.data?.[colId + 'Display']) {
|
|
3204
|
+
row?.data?.[colId + 'Display'].forEach((attr) => {
|
|
3205
|
+
const className = attr?.name?.indexOf('@') === 0 ? 'attag' : 'hashtag';
|
|
3206
|
+
roles += `<div>
|
|
3207
|
+
<div class="${className}">${attr.name}</div>
|
|
3208
|
+
<div class="tag-name">${attr.name}</div>
|
|
3209
|
+
</div>`;
|
|
3210
|
+
});
|
|
3211
|
+
}
|
|
3212
|
+
else {
|
|
3213
|
+
row?.data?.[colId]?.forEach((attr) => {
|
|
3214
|
+
const className = attr.indexOf('@') === 0 ? 'attag' : 'hashtag';
|
|
3215
|
+
roles += `<div>
|
|
3216
|
+
<div class="${className}">${attr}</div>
|
|
3217
|
+
<div class="tag-name">${attr}</div>
|
|
3218
|
+
</div>`;
|
|
3219
|
+
});
|
|
3220
|
+
}
|
|
3221
|
+
return roles;
|
|
3222
|
+
};
|
|
3223
|
+
this.createdAtFormatter = (row) => {
|
|
3224
|
+
return moment(row?.data?.createdAt).local().format('M/D/YYYY HH:mm A');
|
|
3225
|
+
};
|
|
3226
|
+
this.dataService = inject(ZITI_DATA_SERVICE);
|
|
3227
|
+
this.settings.settingsChange.subscribe((settings) => {
|
|
3228
|
+
if (!isEmpty(this.settings?.settings?.session?.id) || this.dataService.dataServiceType === ZitiDataService.NODE_DATA_SERVICE_TYPE) {
|
|
3229
|
+
if ((this.currentSettings?.session?.id !== settings?.session?.id || this.dataService.dataServiceType === ZitiDataService.NODE_DATA_SERVICE_TYPE) && this.refreshData) {
|
|
3230
|
+
this.refreshData();
|
|
3231
|
+
}
|
|
3356
3232
|
}
|
|
3233
|
+
this.currentSettings = settings;
|
|
3357
3234
|
});
|
|
3358
|
-
|
|
3359
|
-
|
|
3360
|
-
if (
|
|
3361
|
-
|
|
3235
|
+
router.events.subscribe((event) => {
|
|
3236
|
+
if (event => event instanceof NavigationEnd) {
|
|
3237
|
+
if (!event?.snapshot?.routeConfig?.path) {
|
|
3238
|
+
return;
|
|
3362
3239
|
}
|
|
3363
|
-
|
|
3240
|
+
const pathSegments = event.snapshot.routeConfig.path.split('/');
|
|
3241
|
+
this.basePath = pathSegments[0];
|
|
3242
|
+
}
|
|
3364
3243
|
});
|
|
3365
3244
|
}
|
|
3366
|
-
|
|
3367
|
-
if (this.
|
|
3368
|
-
|
|
3245
|
+
initMenuActions() {
|
|
3246
|
+
if (this.extensionService.listActions) {
|
|
3247
|
+
this.menuItems = this.menuItems.map((item) => {
|
|
3248
|
+
this.extensionService.listActions.forEach((extItem) => {
|
|
3249
|
+
if (item.action === extItem.action) {
|
|
3250
|
+
item = extItem;
|
|
3251
|
+
}
|
|
3252
|
+
});
|
|
3253
|
+
return item;
|
|
3254
|
+
});
|
|
3255
|
+
let filteredActions = this.extensionService.listActions.filter((extItem) => {
|
|
3256
|
+
return !this.menuItems.some((item) => {
|
|
3257
|
+
return item.action === extItem.action;
|
|
3258
|
+
});
|
|
3259
|
+
});
|
|
3260
|
+
this.menuItems = [...this.menuItems, ...filteredActions];
|
|
3369
3261
|
}
|
|
3370
3262
|
}
|
|
3371
|
-
|
|
3372
|
-
|
|
3373
|
-
|
|
3263
|
+
addListItemExtensionActions(row) {
|
|
3264
|
+
if (this.extensionService.listActions) {
|
|
3265
|
+
const keys = this.extensionService.listActions.map((action) => {
|
|
3266
|
+
return action.action;
|
|
3267
|
+
});
|
|
3268
|
+
row.actionList = [...row.actionList, ...keys];
|
|
3269
|
+
}
|
|
3374
3270
|
}
|
|
3375
|
-
|
|
3376
|
-
this.
|
|
3271
|
+
downloadItems(selectedItems) {
|
|
3272
|
+
this.csvDownloadService.download(this.resourceType, selectedItems, this.CSV_COLUMNS, false, false, undefined, false);
|
|
3377
3273
|
}
|
|
3378
|
-
|
|
3379
|
-
|
|
3380
|
-
|
|
3381
|
-
|
|
3382
|
-
|
|
3383
|
-
|
|
3384
|
-
|
|
3385
|
-
|
|
3386
|
-
|
|
3387
|
-
|
|
3274
|
+
downloadAllItems() {
|
|
3275
|
+
const paging = cloneDeep(this.DEFAULT_PAGING);
|
|
3276
|
+
paging.total = -1;
|
|
3277
|
+
return this.getTableData(this.resourceType, paging, undefined, undefined)
|
|
3278
|
+
.then((results) => {
|
|
3279
|
+
return this.downloadItems(results?.data);
|
|
3280
|
+
});
|
|
3281
|
+
}
|
|
3282
|
+
getTableData(resourceType, paging, filters, sort) {
|
|
3283
|
+
if (!paging) {
|
|
3284
|
+
paging = { ...this.DEFAULT_PAGING };
|
|
3388
3285
|
}
|
|
3389
|
-
|
|
3390
|
-
|
|
3286
|
+
if (sort) {
|
|
3287
|
+
paging.sort = sort.sortBy;
|
|
3288
|
+
paging.order = sort.ordering;
|
|
3391
3289
|
}
|
|
3392
|
-
|
|
3393
|
-
|
|
3290
|
+
for (let idx = 0; idx < filters?.length; idx++) {
|
|
3291
|
+
paging.noSearch = false;
|
|
3292
|
+
paging.searchOn = filters[idx].columnId;
|
|
3293
|
+
paging.filter = filters[idx].value;
|
|
3294
|
+
paging.rawFilter = true;
|
|
3394
3295
|
}
|
|
3395
|
-
|
|
3396
|
-
|
|
3397
|
-
|
|
3398
|
-
|
|
3399
|
-
|
|
3400
|
-
|
|
3401
|
-
|
|
3402
|
-
|
|
3296
|
+
this.filterService.filtering.next(true);
|
|
3297
|
+
return this.dataService.get(resourceType, paging, filters).finally(() => {
|
|
3298
|
+
this.filterService.filtering.next(false);
|
|
3299
|
+
});
|
|
3300
|
+
}
|
|
3301
|
+
checkForAssociatedEntities(items, type, associatedType) {
|
|
3302
|
+
const itemsWithAssociations = [];
|
|
3303
|
+
const promises = [];
|
|
3304
|
+
items.forEach((config) => {
|
|
3305
|
+
const prom = this.dataService.getSubdata(type, config.id, associatedType).then((result) => {
|
|
3306
|
+
const services = result.data || [];
|
|
3307
|
+
if (services.length > 0) {
|
|
3308
|
+
itemsWithAssociations.push(config);
|
|
3309
|
+
}
|
|
3403
3310
|
});
|
|
3311
|
+
promises.push(prom);
|
|
3312
|
+
});
|
|
3313
|
+
return Promise.all(promises).then(() => {
|
|
3314
|
+
return itemsWithAssociations;
|
|
3315
|
+
});
|
|
3316
|
+
}
|
|
3317
|
+
removeItems(ids) {
|
|
3318
|
+
const promises = [];
|
|
3319
|
+
ids.forEach((id) => {
|
|
3320
|
+
const prom = this.dataService.delete(this.resourceType, id);
|
|
3321
|
+
promises.push(prom);
|
|
3322
|
+
});
|
|
3323
|
+
return Promise.all(promises);
|
|
3324
|
+
}
|
|
3325
|
+
sort(sortBy, ordering = 'asc') {
|
|
3326
|
+
this.currentSort = { sortBy, ordering };
|
|
3327
|
+
if (this.refreshData)
|
|
3328
|
+
this.refreshData({ sortBy, ordering });
|
|
3329
|
+
}
|
|
3330
|
+
hasSelectedText() {
|
|
3331
|
+
let text = '';
|
|
3332
|
+
if (window.getSelection) {
|
|
3333
|
+
text = window.getSelection().toString();
|
|
3404
3334
|
}
|
|
3335
|
+
return text?.length > 0;
|
|
3405
3336
|
}
|
|
3406
|
-
|
|
3407
|
-
this.
|
|
3408
|
-
|
|
3409
|
-
|
|
3410
|
-
|
|
3411
|
-
|
|
3337
|
+
getNetworkJwt() {
|
|
3338
|
+
return this.dataService.get('network-jwts', {}, []);
|
|
3339
|
+
}
|
|
3340
|
+
openEditForm(itemId = '', basePath) {
|
|
3341
|
+
if (isEmpty(itemId)) {
|
|
3342
|
+
itemId = 'create';
|
|
3343
|
+
}
|
|
3344
|
+
basePath = basePath ? basePath : this.basePath;
|
|
3345
|
+
this.router?.navigateByUrl(`${basePath}/${itemId}`);
|
|
3346
|
+
}
|
|
3347
|
+
remToPx(remValue) {
|
|
3348
|
+
const rootFontSize = parseFloat(window.getComputedStyle(document.documentElement).fontSize);
|
|
3349
|
+
return remValue * rootFontSize;
|
|
3350
|
+
}
|
|
3351
|
+
;
|
|
3352
|
+
};
|
|
3353
|
+
ListPageServiceClass = __decorate([
|
|
3354
|
+
__param(0, Inject(SETTINGS_SERVICE)),
|
|
3355
|
+
__param(3, Inject(SHAREDZ_EXTENSION))
|
|
3356
|
+
], ListPageServiceClass);
|
|
3357
|
+
|
|
3358
|
+
class ListPageComponent {
|
|
3359
|
+
constructor(filterService, svc, consoleEvents, dialogForm, extensionService) {
|
|
3360
|
+
this.filterService = filterService;
|
|
3361
|
+
this.svc = svc;
|
|
3362
|
+
this.consoleEvents = consoleEvents;
|
|
3363
|
+
this.dialogForm = dialogForm;
|
|
3364
|
+
this.extensionService = extensionService;
|
|
3365
|
+
this.startCount = '-';
|
|
3366
|
+
this.endCount = '-';
|
|
3367
|
+
this.totalCount = '-';
|
|
3368
|
+
this.itemsSelected = false;
|
|
3369
|
+
this.selectedItems = [];
|
|
3370
|
+
this.columnDefs = [];
|
|
3371
|
+
this.rowData = [];
|
|
3372
|
+
this.reservedNames = [];
|
|
3373
|
+
this.filterApplied = false;
|
|
3374
|
+
this.modalOpen = false;
|
|
3375
|
+
this.gridObj = {};
|
|
3376
|
+
this.subscription = new Subscription();
|
|
3377
|
+
this.growlerSvc = inject(GrowlerService);
|
|
3378
|
+
}
|
|
3379
|
+
ngOnInit() {
|
|
3380
|
+
this.filterService.currentPage = 1;
|
|
3381
|
+
this.svc.sideModalOpen = false;
|
|
3382
|
+
this.svc.refreshData = this.refreshData.bind(this);
|
|
3383
|
+
this.svc.initMenuActions();
|
|
3384
|
+
this.columnDefs = this.svc.initTableColumns();
|
|
3385
|
+
this.filterService.clearFilters();
|
|
3386
|
+
this.extensionService?.extendOnInit();
|
|
3387
|
+
this.subscription.add(this.filterService.filtersChanged.subscribe(filters => {
|
|
3388
|
+
this.filterApplied = filters && filters.length > 0;
|
|
3389
|
+
this.refreshData();
|
|
3390
|
+
}));
|
|
3391
|
+
this.filterService.pageChanged.subscribe(page => {
|
|
3392
|
+
this.refreshData();
|
|
3393
|
+
});
|
|
3394
|
+
this.subscription.add(this.consoleEvents.closeSideModal.subscribe((event) => {
|
|
3395
|
+
this.closeModal();
|
|
3396
|
+
}));
|
|
3397
|
+
this.subscription.add(this.consoleEvents.refreshData.subscribe((event) => {
|
|
3398
|
+
this.refreshData();
|
|
3399
|
+
}));
|
|
3400
|
+
this.consoleEvents.enableZACEvents();
|
|
3401
|
+
}
|
|
3402
|
+
ngOnDestroy() {
|
|
3403
|
+
this.subscription.unsubscribe();
|
|
3404
|
+
}
|
|
3405
|
+
itemToggled(item) {
|
|
3406
|
+
this.updateSelectedItems(item);
|
|
3407
|
+
}
|
|
3408
|
+
updateSelectedItems(toggledItem) {
|
|
3409
|
+
let itemSelected = false;
|
|
3410
|
+
this.selectedItems = [];
|
|
3411
|
+
this.rowData.forEach((item) => {
|
|
3412
|
+
const reserved = this.reservedNames?.includes(item.name);
|
|
3413
|
+
if (reserved) {
|
|
3414
|
+
item.selected = false;
|
|
3415
|
+
}
|
|
3416
|
+
else if (toggledItem?.id && toggledItem?.id === item?.id) {
|
|
3417
|
+
item.selected = toggledItem.selected;
|
|
3418
|
+
}
|
|
3419
|
+
if (item.selected) {
|
|
3420
|
+
itemSelected = true;
|
|
3421
|
+
this.selectedItems.push(item);
|
|
3422
|
+
}
|
|
3423
|
+
});
|
|
3424
|
+
this.itemsSelected = itemSelected;
|
|
3425
|
+
}
|
|
3426
|
+
refreshData(sort, hardRefresh = false) {
|
|
3427
|
+
this.isLoading = true;
|
|
3428
|
+
sort = sort ? sort : this.svc.currentSort;
|
|
3429
|
+
this.svc.getData(this.filterService.filters, sort, this.filterService.currentPage)
|
|
3430
|
+
.then((data) => {
|
|
3431
|
+
this.rowData = [];
|
|
3432
|
+
if (hardRefresh) {
|
|
3433
|
+
defer(() => {
|
|
3434
|
+
this.rowData = data.data;
|
|
3435
|
+
});
|
|
3412
3436
|
}
|
|
3413
3437
|
else {
|
|
3414
|
-
|
|
3438
|
+
this.rowData = data.data;
|
|
3415
3439
|
}
|
|
3416
|
-
|
|
3417
|
-
|
|
3418
|
-
if (this.
|
|
3419
|
-
this.
|
|
3420
|
-
_.invoke(this.headerParams, 'column.colDef.headerComponentParams.openHeaderFilter', event, this.filterOptions);
|
|
3440
|
+
this.totalCount = data.meta.pagination.totalCount;
|
|
3441
|
+
this.startCount = (data.meta.pagination.offset + 1);
|
|
3442
|
+
if (this.startCount + data.meta.pagination.limit > this.totalCount) {
|
|
3443
|
+
this.endCount = this.totalCount;
|
|
3421
3444
|
}
|
|
3422
3445
|
else {
|
|
3423
|
-
|
|
3446
|
+
this.endCount = data.meta.pagination.offset + data.meta.pagination.limit;
|
|
3424
3447
|
}
|
|
3425
|
-
|
|
3426
|
-
|
|
3427
|
-
|
|
3428
|
-
|
|
3429
|
-
|
|
3430
|
-
const options = [
|
|
3431
|
-
{
|
|
3432
|
-
label: 'Any',
|
|
3433
|
-
columnId: this.onlineStatusFilter,
|
|
3434
|
-
filterName: 'Status',
|
|
3435
|
-
value: undefined,
|
|
3436
|
-
bubbleClass: 'v7OnlineOffline',
|
|
3437
|
-
},
|
|
3438
|
-
{
|
|
3439
|
-
label: 'Online',
|
|
3440
|
-
columnId: this.onlineStatusFilter,
|
|
3441
|
-
filterName: 'Status',
|
|
3442
|
-
value: 'true',
|
|
3443
|
-
bubbleClass: 'v7Online',
|
|
3444
|
-
},
|
|
3445
|
-
{
|
|
3446
|
-
label: 'Offline',
|
|
3447
|
-
columnId: this.onlineStatusFilter,
|
|
3448
|
-
filterName: 'Status',
|
|
3449
|
-
value: 'false',
|
|
3450
|
-
bubbleClass: 'v7Offline',
|
|
3451
|
-
},
|
|
3452
|
-
];
|
|
3453
|
-
_.invoke(this.headerParams, 'api.openHeaderFilter', event, options);
|
|
3454
|
-
}
|
|
3455
|
-
else {
|
|
3456
|
-
_.invoke(this.headerParams, 'api.closeHeaderFilter', event);
|
|
3457
|
-
}
|
|
3448
|
+
this.updateSelectedItems();
|
|
3449
|
+
this.refreshCells();
|
|
3450
|
+
}).finally(() => {
|
|
3451
|
+
this.isLoading = false;
|
|
3452
|
+
});
|
|
3458
3453
|
}
|
|
3459
|
-
|
|
3460
|
-
|
|
3461
|
-
|
|
3462
|
-
|
|
3463
|
-
|
|
3464
|
-
|
|
3465
|
-
|
|
3466
|
-
|
|
3467
|
-
|
|
3468
|
-
|
|
3469
|
-
|
|
3470
|
-
this.showSecondaryFilter = false;
|
|
3454
|
+
downloadAllItems() {
|
|
3455
|
+
this.isLoading = true;
|
|
3456
|
+
this.svc.downloadAllItems().then(() => {
|
|
3457
|
+
const growlerData = new GrowlerModel('success', 'Success', `Download Finished`, `The requested items have been downloaded`);
|
|
3458
|
+
this.growlerSvc.show(growlerData);
|
|
3459
|
+
}).catch(() => {
|
|
3460
|
+
const growlerData = new GrowlerModel('error', 'Error', `Download Failed`, `Failed to retrieve items for download`);
|
|
3461
|
+
this.growlerSvc.show(growlerData);
|
|
3462
|
+
}).finally(() => {
|
|
3463
|
+
this.isLoading = false;
|
|
3464
|
+
});
|
|
3471
3465
|
}
|
|
3472
|
-
|
|
3473
|
-
|
|
3466
|
+
openBulkDelete(selectedItems, entityTypeLabel = 'item(s)') {
|
|
3467
|
+
const selectedIds = selectedItems.map((row) => {
|
|
3468
|
+
return row.id;
|
|
3469
|
+
});
|
|
3470
|
+
const selectedNames = selectedItems.map((item) => {
|
|
3471
|
+
return item.name;
|
|
3472
|
+
});
|
|
3473
|
+
const countLabel = selectedItems.length > 1 ? selectedItems.length : '';
|
|
3474
|
+
const data = {
|
|
3475
|
+
appendId: 'DeleteServices',
|
|
3476
|
+
title: 'Delete',
|
|
3477
|
+
message: `Are you sure you would like to delete the following ${countLabel} ${entityTypeLabel}?`,
|
|
3478
|
+
bulletList: selectedNames,
|
|
3479
|
+
confirmLabel: 'Yes',
|
|
3480
|
+
cancelLabel: 'Oops, no get me out of here',
|
|
3481
|
+
imageUrl: '../../assets/svgs/Confirm_Trash.svg',
|
|
3482
|
+
showCancelLink: true
|
|
3483
|
+
};
|
|
3484
|
+
this.dialogRef = this.dialogForm.open(ConfirmComponent, {
|
|
3485
|
+
data: data,
|
|
3486
|
+
autoFocus: false,
|
|
3487
|
+
});
|
|
3488
|
+
this.dialogRef.afterClosed().subscribe((result) => {
|
|
3489
|
+
if (result?.confirmed) {
|
|
3490
|
+
this.svc.removeItems(selectedIds).then(() => {
|
|
3491
|
+
this.refreshData(this.svc.currentSort);
|
|
3492
|
+
});
|
|
3493
|
+
}
|
|
3494
|
+
});
|
|
3474
3495
|
}
|
|
3475
|
-
|
|
3476
|
-
|
|
3477
|
-
|
|
3496
|
+
handleExtensionActions(event) {
|
|
3497
|
+
let extensionFound = false;
|
|
3498
|
+
if (this.extensionService?.listActions?.length > 0) {
|
|
3499
|
+
this.extensionService?.listActions?.forEach((extAction) => {
|
|
3500
|
+
if (extAction?.action === event?.action) {
|
|
3501
|
+
extAction.callback(event.item);
|
|
3502
|
+
extensionFound = true;
|
|
3503
|
+
}
|
|
3504
|
+
});
|
|
3478
3505
|
}
|
|
3479
|
-
|
|
3506
|
+
return extensionFound;
|
|
3480
3507
|
}
|
|
3481
|
-
|
|
3482
|
-
|
|
3483
|
-
|
|
3484
|
-
|
|
3485
|
-
|
|
3486
|
-
|
|
3487
|
-
|
|
3488
|
-
|
|
3489
|
-
|
|
3490
|
-
option.columnId = this.columnDef.colId;
|
|
3491
|
-
option.filterName = this.headerName;
|
|
3492
|
-
option.type = this.filterType;
|
|
3493
|
-
return option;
|
|
3508
|
+
gridReady(event) {
|
|
3509
|
+
this.gridObj = event;
|
|
3510
|
+
}
|
|
3511
|
+
refreshCells() {
|
|
3512
|
+
defer(() => {
|
|
3513
|
+
var params = {
|
|
3514
|
+
force: true,
|
|
3515
|
+
};
|
|
3516
|
+
this.gridObj?.api?.refreshCells(params);
|
|
3494
3517
|
});
|
|
3495
3518
|
}
|
|
3496
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type:
|
|
3497
|
-
static { this.ɵ
|
|
3519
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ListPageComponent, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3520
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ListPageComponent }); }
|
|
3498
3521
|
}
|
|
3499
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type:
|
|
3500
|
-
type:
|
|
3501
|
-
|
|
3502
|
-
}], ctorParameters: function () { return [{ type: DataTableFilterService }]; }, propDecorators: { menuButton: [{
|
|
3503
|
-
type: ViewChild,
|
|
3504
|
-
args: ['menuButton']
|
|
3505
|
-
}] } });
|
|
3522
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ListPageComponent, decorators: [{
|
|
3523
|
+
type: Injectable
|
|
3524
|
+
}], ctorParameters: function () { return [{ type: DataTableFilterService }, { type: ListPageServiceClass }, { type: ConsoleEventsService }, { type: i5$1.MatDialog }, { type: undefined }]; } });
|
|
3506
3525
|
|
|
3507
3526
|
let Service$1 = class Service {
|
|
3508
3527
|
constructor() {
|
|
@@ -4857,7 +4876,8 @@ class ConfigurationsPageService extends ListPageServiceClass {
|
|
|
4857
4876
|
valueFormatter: this.createdAtFormatter,
|
|
4858
4877
|
resizable: true,
|
|
4859
4878
|
cellClass: 'nf-cell-vert-align tCol',
|
|
4860
|
-
}
|
|
4879
|
+
},
|
|
4880
|
+
this.ID_COLUMN_DEF
|
|
4861
4881
|
];
|
|
4862
4882
|
}
|
|
4863
4883
|
get typeHeaderComponentParams() {
|
|
@@ -5874,7 +5894,8 @@ class IdentitiesPageService extends ListPageServiceClass {
|
|
|
5874
5894
|
resizable: true,
|
|
5875
5895
|
cellClass: 'nf-cell-vert-align tCol',
|
|
5876
5896
|
width: 100,
|
|
5877
|
-
}
|
|
5897
|
+
},
|
|
5898
|
+
this.ID_COLUMN_DEF
|
|
5878
5899
|
];
|
|
5879
5900
|
}
|
|
5880
5901
|
getData(filters, sort, page) {
|
|
@@ -6408,7 +6429,8 @@ class EdgeRoutersPageService extends ListPageServiceClass {
|
|
|
6408
6429
|
cellRenderer: 'cellTokenComponent',
|
|
6409
6430
|
resizable: true,
|
|
6410
6431
|
cellClass: 'nf-cell-vert-align tCol',
|
|
6411
|
-
}
|
|
6432
|
+
},
|
|
6433
|
+
this.ID_COLUMN_DEF
|
|
6412
6434
|
];
|
|
6413
6435
|
if (this.extService.processTableColumns) {
|
|
6414
6436
|
tableColumns = this.extService.processTableColumns(tableColumns);
|
|
@@ -9873,8 +9895,14 @@ class IdentityServicePathHelper {
|
|
|
9873
9895
|
node.id = ePoint.id;
|
|
9874
9896
|
node.name = ePoint.name;
|
|
9875
9897
|
node.type = 'Identity';
|
|
9876
|
-
|
|
9877
|
-
|
|
9898
|
+
if (_.has(ePoint, 'edgeRouterConnectionStatus')) {
|
|
9899
|
+
node.routerConnection = ePoint.edgeRouterConnectionStatus === 'offline' ? 'No' : 'Yes';
|
|
9900
|
+
node.apiSession = node.routerConnection;
|
|
9901
|
+
}
|
|
9902
|
+
else {
|
|
9903
|
+
node.routerConnection = ePoint['hasEdgeRouterConnection'] === false ? 'No' : 'Yes';
|
|
9904
|
+
node.apiSession = ePoint['hasApiSession'] === false ? 'No' : 'Yes';
|
|
9905
|
+
}
|
|
9878
9906
|
node.os = ePoint.envInfo ? ePoint.envInfo.os : '';
|
|
9879
9907
|
node.mfaEnabled = ePoint.isMfaEnabled;
|
|
9880
9908
|
node.status = ePoint.envInfo && ePoint.envInfo.os !== null ? 'Registered' : 'Un-Registered';
|
|
@@ -9933,7 +9961,7 @@ class IdentityServicePathHelper {
|
|
|
9933
9961
|
else if (endpointNode.apiSession === 'No') {
|
|
9934
9962
|
linkstate = 0;
|
|
9935
9963
|
}
|
|
9936
|
-
else if (endpointNode.status === 'Registered' && endpointNode.
|
|
9964
|
+
else if (endpointNode.status === 'Registered' && endpointNode.routerConnection === 'Yes') {
|
|
9937
9965
|
linkstate = 1;
|
|
9938
9966
|
}
|
|
9939
9967
|
else {
|
|
@@ -9994,6 +10022,7 @@ class IdentityServicePathComponent {
|
|
|
9994
10022
|
this.router = router;
|
|
9995
10023
|
this.dialogRef = dialogRef;
|
|
9996
10024
|
this.data = data;
|
|
10025
|
+
this.isDarkMode = false;
|
|
9997
10026
|
this.refreshRotate = false;
|
|
9998
10027
|
this.closeRotate = true;
|
|
9999
10028
|
this.filterText = 'fetching services..';
|
|
@@ -10014,6 +10043,8 @@ class IdentityServicePathComponent {
|
|
|
10014
10043
|
this.getEndpointNetworkAsCode();
|
|
10015
10044
|
this.autocompleteOptions = [];
|
|
10016
10045
|
this.isLoading = true;
|
|
10046
|
+
const bgCol = d3.color(d3.select('body').style("background-color")).formatHex();
|
|
10047
|
+
this.isDarkMode = bgCol == '#18191d' ? true : false;
|
|
10017
10048
|
}
|
|
10018
10049
|
getEndpointNetworkAsCode() {
|
|
10019
10050
|
const pagesize = 500;
|
|
@@ -10273,16 +10304,15 @@ class IdentityServicePathComponent {
|
|
|
10273
10304
|
link.each(function (d, i) {
|
|
10274
10305
|
const _this = d3.select(this);
|
|
10275
10306
|
if (d.status === 1) {
|
|
10276
|
-
let doInUsage = true;
|
|
10307
|
+
let doInUsage = true;
|
|
10277
10308
|
_this
|
|
10278
10309
|
.append('text')
|
|
10279
|
-
// .text(d.netspeed)
|
|
10280
10310
|
.style('fill', 'rgb(255,198,22)')
|
|
10281
10311
|
.style('font-size', '11');
|
|
10282
10312
|
_this
|
|
10283
10313
|
.append('rect')
|
|
10284
10314
|
.attr('fill', function (d) {
|
|
10285
|
-
return '
|
|
10315
|
+
return 'white';
|
|
10286
10316
|
})
|
|
10287
10317
|
.attr('width', function (d) {
|
|
10288
10318
|
if (doInUsage) {
|
|
@@ -10364,14 +10394,12 @@ class IdentityServicePathComponent {
|
|
|
10364
10394
|
.attr('y', -25)
|
|
10365
10395
|
.attr('width', '40')
|
|
10366
10396
|
.attr('height', '40');
|
|
10367
|
-
// node.append('title') .text(function (d) {return d.name;});
|
|
10368
10397
|
node
|
|
10369
10398
|
.append('text')
|
|
10370
10399
|
.attr('x', 10)
|
|
10371
10400
|
.attr('y', 12)
|
|
10372
|
-
.
|
|
10401
|
+
.attr('fill', 'var(--tableText)')
|
|
10373
10402
|
.text(function (d) {
|
|
10374
|
-
// const name = d.type.includes('Service') ? d.alias : d.name;
|
|
10375
10403
|
return d.name;
|
|
10376
10404
|
});
|
|
10377
10405
|
simulation.nodes(nodes).on('tick', ticked);
|
|
@@ -10462,7 +10490,7 @@ class IdentityServicePathComponent {
|
|
|
10462
10490
|
}
|
|
10463
10491
|
}
|
|
10464
10492
|
function drawTooltip(event, d, endpointUtlizationJson) {
|
|
10465
|
-
document.getElementById('epTooltip').innerHTML = readKeyValues(d, endpointUtlizationJson);
|
|
10493
|
+
document.getElementById('epTooltip').innerHTML = readKeyValues(d, endpointUtlizationJson);
|
|
10466
10494
|
tooltip.style('display', 'block');
|
|
10467
10495
|
tooltip.style('white-space', 'pre-wrap');
|
|
10468
10496
|
const x = event.pageX + 'px';
|
|
@@ -10495,35 +10523,35 @@ class IdentityServicePathComponent {
|
|
|
10495
10523
|
else if (k === 'children') {
|
|
10496
10524
|
const kVal = d[k];
|
|
10497
10525
|
if (kVal && kVal !== '') {
|
|
10498
|
-
info = info + '<div class="prop-row"
|
|
10526
|
+
info = info + '<div class="prop-row">' + k + ': ' + kVal.length + '</div>';
|
|
10499
10527
|
}
|
|
10500
10528
|
}
|
|
10501
10529
|
else {
|
|
10502
10530
|
if (isAnObject(d[k])) {
|
|
10503
10531
|
const kVal = d[k];
|
|
10504
10532
|
if (kVal && kVal !== '') {
|
|
10505
|
-
info = info + '<div class="prop-row"
|
|
10533
|
+
info = info + '<div class="prop-row">' + k + ': ' + kVal.name + '</div>';
|
|
10506
10534
|
}
|
|
10507
10535
|
}
|
|
10508
10536
|
else if (d[k] instanceof Array) {
|
|
10509
10537
|
info =
|
|
10510
10538
|
info +
|
|
10511
|
-
'<div class="prop-row"
|
|
10539
|
+
'<div class="prop-row">' +
|
|
10512
10540
|
k +
|
|
10513
|
-
'
|
|
10541
|
+
': ' +
|
|
10514
10542
|
d[k].join('<br> ') +
|
|
10515
|
-
'</div
|
|
10543
|
+
'</div>';
|
|
10516
10544
|
}
|
|
10517
10545
|
else {
|
|
10518
10546
|
const vo = d[k];
|
|
10519
10547
|
if (vo && vo !== '') {
|
|
10520
10548
|
info =
|
|
10521
10549
|
info +
|
|
10522
|
-
'<div class="prop-row"
|
|
10550
|
+
'<div class="prop-row">' +
|
|
10523
10551
|
k +
|
|
10524
|
-
'
|
|
10552
|
+
': ' +
|
|
10525
10553
|
(vo !== null || vo !== '' ? d[k] : 'N/A') +
|
|
10526
|
-
'</div
|
|
10554
|
+
'</div>';
|
|
10527
10555
|
}
|
|
10528
10556
|
}
|
|
10529
10557
|
}
|
|
@@ -10536,11 +10564,11 @@ class IdentityServicePathComponent {
|
|
|
10536
10564
|
this.refreshRotate = false;
|
|
10537
10565
|
} // end of initTopoView
|
|
10538
10566
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IdentityServicePathComponent, deps: [{ token: IdentityServicePathHelper }, { token: SETTINGS_SERVICE }, { token: ZITI_DATA_SERVICE }, { token: i4.Router }, { token: i5$1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10539
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: IdentityServicePathComponent, selector: "app-identity-visualizer", ngImport: i0, template: "<div [ngClass]=\"{ 'full-screen': fullScreen }\" class=\"modal solid\" id=\"IdentityVisualizerDataModal\">\n <div class=\"tp-data-header\">\n <div class=\"modaltitle\">Identity Service Path</div>\n <div (click)=\"hide()\" class=\"buttonBall icon-close\" id=\"EscZEndpointClose\"></div>\n <div (click)=\"toggleModalSize()\" class=\"buttonBall resize\" id=\"ResizeModalButton\"></div>\n </div>\n\n <div class=\"identity-topology-container\">\n\n <div style=\"width: 100%; height: 80px; float: left\">\n <div class=\"ep-topology-filter-container listBox row\">\n <input\n (keyup)=\"filterSearchArray()\"\n [(ngModel)]=\"selectedService\"\n [matAutocomplete]=\"auto\"\n class=\"topology-filter-input\"\n id=\"filterText\"\n matInput\n placeholder=\"Type to search identity accessible services.\"\n />\n\n <div\n (click)=\"clearSearchFilter()\"\n *ngIf=\"filterText\"\n class=\"clear-svc-icon icon-close\"\n id=\"ClearSearchFilter\"\n ></div>\n <div [hidden]=\"!noSearchResults\" class=\"no-results-warning\">No Results Found</div>\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"autocompleteSearch($event)\">\n <mat-option *ngFor=\"let option of autocompleteOptions\" [value]=\"option.name\">\n {{ option.name }}\n </mat-option>\n </mat-autocomplete>\n </div>\n </div>\n\n <div class=\"topotip\" id=\"epTooltip\"></div>\n\n <svg style='pointer-events:all' height=\"1000\" id=\"IdentityTopology\" width=\"1200\">\n </svg>\n <lib-loading-indicator *ngIf=\"isLoading\" [isLoading]=\"isLoading\"></lib-loading-indicator>\n\n <div class=\"topology-legendA\">\n <div class=\"legend-item-head\">\n <div class=\"legend-text-heading\">Component Status</div>\n </div>\n <div class=\"legend-item\">\n <div class=\"legend-circle unregistered\"></div>\n <div class=\"legend-text\">Unregistered / Offline</div>\n </div>\n <div class=\"legend-item\">\n <div class=\"legend-circle registered_in_use\"></div>\n <div class=\"legend-text\">Registered, Online</div>\n </div>\n <div class=\"legend-item\">\n <div class=\"legend-circle errored\"></div>\n <div class=\"legend-text\">Errored</div>\n </div>\n </div>\n\n <div class=\"topology-legendB\">\n <div class=\"legend-item-head\">\n <div class=\"legend-text-heading\">Link Status</div>\n </div>\n <div class=\"legend-item\">\n <div class=\"legend-circle unregistered\"></div>\n <div class=\"legend-text\">Offline</div>\n </div>\n <div class=\"legend-item\">\n <div class=\"legend-circle registered_in_use\"></div>\n <div class=\"legend-text\">In Usage</div>\n </div>\n <div class=\"legend-item\">\n <div class=\"legend-circle registered_not_in_use\"></div>\n <div class=\"legend-text\">Usage Date N/A</div>\n </div>\n <div class=\"legend-item\">\n <div class=\"legend-circle linkerrored\"></div>\n <div class=\"legend-text\">Errored</div>\n </div>\n </div>\n\n </div>\n</div>\n", styles: ["#IdentityVisualizerDataModal{overflow:hidden;width:75%;height:85%;background-color:var(--background);border-radius:1.5625rem;z-index:1001;margin:auto;inset:0rem;position:fixed}#IdentityVisualizerDataModal .buttonBall{cursor:pointer;font-weight:600}#IdentityVisualizerDataModal .buttonBall.icon-close{position:absolute;top:1.25rem;right:1.25rem;font-size:1.4375rem;color:var(--icon)}#IdentityVisualizerDataModal .buttonBall:hover{filter:brightness(50%)}#IdentityVisualizerDataModal .clear-svc-icon{font-size:1.4375rem;font-weight:600;position:absolute;top:.9375rem;right:2.5rem;color:var(--icon);cursor:pointer}#IdentityVisualizerDataModal .clear-svc-icon:hover{filter:brightness(50%)}#IdentityVisualizerDataModal.full-screen{width:100%;height:100%;border-radius:0}#IdentityVisualizerDataModal .ep-topology-filter-container{width:37%;display:flex;flex-direction:row;position:absolute;margin:1.25rem;padding:0}#IdentityVisualizerDataModal .buttonBall.resize{top:1.25rem;width:1.4375rem;height:1.4375rem;right:3.4375rem;background-image:url(/assets/svgs/Resize.svg);background-size:1.4375rem 1.4375rem;position:absolute;cursor:pointer}#IdentityVisualizerDataModal .identity-topology-container{display:flex;margin-left:-.3125rem;margin-top:.625rem;flex-direction:column;cursor:grab;background:#f5e9f2;background-image:linear-gradient(#ecd3e6 .125rem,transparent 0),linear-gradient(90deg,#ecd3e6 .125rem,transparent 0),linear-gradient(#ecd3e6 .0625rem,transparent 0),linear-gradient(90deg,#ecd3e6 .0625rem,transparent 0);background-size:2.5rem 2.5rem,2.5rem 2.5rem,.625rem .625rem,.625rem .625rem}#IdentityVisualizerDataModal .tp-data-header{height:2.5rem;font-size:1.5625rem;font-weight:600;margin-left:1.25rem;margin-top:.625rem;margin-bottom:.3125rem;font-family:Russo One;color:var(--primaryColor);font-size:1.875rem;text-transform:uppercase;font-weight:400}#IdentityVisualizerDataModal .node text{font:.75rem Open Sans,Arial,sans-serif}#IdentityVisualizerDataModal .modaltitle{filter:brightness(50%);padding-top:.375rem;padding-left:.3125rem}#IdentityVisualizerDataModal .modalbuttons{padding-right:1.25rem}#IdentityVisualizerDataModal .listBox.row .close{position:fixed;display:flex;flex-direction:column;font-family:icomoon!important;font-style:normal;font-weight:600;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--icon);text-align:center;font-size:2.1875rem;line-height:2.5rem;left:35%;top:17%;width:2.5rem;height:2.5rem;background-image:url(/assets/svgs/close.svg);z-index:600;background-position:center center;background-size:75%;cursor:pointer;transition:.3s;justify-content:end;align-items:center}#IdentityVisualizerDataModal .tp-topo-data-header{border:0rem solid black;height:75rem;font-size:.75rem;font-weight:400;margin-left:.75rem;margin-top:.1875rem;color:var(--primaryColor)}#IdentityVisualizerDataModal .services-select{width:25rem;flex-shrink:0;border-radius:1.6875rem;height:3.1875rem;margin-left:1.375rem;margin-top:.625rem;background-color:#fff;border-color:var(--navigation);box-shadow:0 1.25rem 1.4375rem 0 var(--shadow);color:var(--tableText);padding-left:1.25rem}#IdentityVisualizerDataModal select{background-image:url(/assets/svgs/ArrowDown.svg);background-position:center right .9375rem;background-repeat:no-repeat;background-size:1.125rem;padding-right:2.9375rem}#IdentityVisualizerDataModal .topology-filter-input{height:3.125rem;width:95%;border-radius:1.5625rem;border-color:var(--navigation);background-color:var(--navigation);box-shadow:0 1.25rem 1.4375rem 0 var(--shadow);padding-left:1.25rem}#IdentityVisualizerDataModal .topotip{display:none;position:fixed;background:var(--navigation);border:0rem;border-radius:.75rem;pointer-events:none;box-shadow:0 1.25rem 1.4375rem 0 var(--shadow);transition:background-color .3s;padding:.3125rem 0;font-size:1.0625rem;font-weight:700;color:var(--tableText);z-index:2000;opacity:1;max-width:28.125rem}#IdentityVisualizerDataModal .topology-legendA{border:0rem solid blue;width:12.5rem;border-radius:.75rem;margin-bottom:.625rem;margin-right:.625rem;position:absolute;display:inline-block;top:4.6875rem;right:0rem;background:var(--navigation);box-shadow:0 1.25rem 1.4375rem 0 var(--shadow);padding:0rem .625rem .3125rem;margin-top:0}#IdentityVisualizerDataModal .topology-legendB{width:12.5rem;border:0rem solid blue;border-radius:.75rem;margin-bottom:.625rem;margin-right:.625rem;position:absolute;top:12.5rem;right:0rem;background:var(--navigation);display:inline-block;box-shadow:0 1.25rem 1.4375rem 0 var(--shadow);padding:0rem .625rem .3125rem;margin-left:.625rem}#IdentityVisualizerDataModal .legend-item{width:100%;height:100%;display:inline-block}#IdentityVisualizerDataModal .legend-item-head{width:105%;height:100%;display:inline-block;border:0rem solid blue;left:-.1875rem}#IdentityVisualizerDataModal .legend-circle{height:.75rem;width:.75rem;border-radius:.9375rem;display:inline-block;margin-top:.4375rem}#IdentityVisualizerDataModal .legend-circle.unregistered{background-color:#d8dce7}#IdentityVisualizerDataModal .legend-circle.registered_not_in_use{border:.0625rem solid #08dc5a;background-color:#fff}#IdentityVisualizerDataModal .legend-circle.registered_in_use{background-color:#08dc5a}#IdentityVisualizerDataModal .legend-circle.errored{background-color:#fb0d3d}#IdentityVisualizerDataModal .legend-circle.linkerrored{background-image:url(/assets/images/visualizer/link-cut.png);background-size:contain}#IdentityVisualizerDataModal .legend-text{display:inline-block;font-size:.9375rem;font-weight:600;color:var(--tableText);padding-left:.4375rem;padding-bottom:.25rem}#IdentityVisualizerDataModal .legend-text-heading{text-align:center;display:inline-block;font-size:.875rem;font-weight:600;color:var(--tableText);padding-left:.625rem;padding-top:.125rem;padding-bottom:.125rem;color:#8a2be2}#IdentityVisualizerDataModal .legend-text2{display:inline-block;font-size:.625rem;font-weight:400;color:var(--tableText);padding-left:.125rem;padding-bottom:.25rem}#IdentityVisualizerDataModal .filters-area{display:flex;flex-direction:row;align-items:center;justify-content:flex-end;margin-top:.625rem}#IdentityVisualizerDataModal .dateTimeField input{height:2.5rem;vertical-align:middle;margin-right:.0625rem}#IdentityVisualizerDataModal .p-datepicker table td{padding:0rem}#IdentityVisualizerDataModal .p-datepicker table td>span{padding:0rem}#IdentityVisualizerDataModal .p-timepicker{padding:.0625rem}#IdentityVisualizerDataModal .p-datepicker-header,#IdentityVisualizerDataModal .p-datepicker-header-group{padding:0rem}#IdentityVisualizerDataModal .p-datepicker .p-timepicker button:last-child{height:.9375rem}#IdentityVisualizerDataModal .p-datepicker .p-timepicker button{height:.9375rem}#IdentityVisualizerDataModal .ng-tns-c15-3{font-size:.9375rem;font-weight:700}#IdentityVisualizerDataModal .p-datepicker .p-datepicker-buttonbar{padding:0rem}#IdentityVisualizerDataModal .reset-button{height:3.125rem;width:3.125rem;margin-top:-7%;margin-left:70%;border-radius:3.125rem;margin-right:.625rem;background-size:contain;--background-image: url(/assets/svgs/refresh.svg);cursor:pointer;overflow:hidden;z-index:24;box-shadow:0 1.25rem 1.4375rem 0 var(--shadow);transition:.3s}#IdentityVisualizerDataModal .refresh-button{position:absolute;display:inline-block;height:2.6875rem;width:7.625rem;margin-top:-5.3125rem;margin-left:65%;border-radius:.625rem;margin-right:.625rem;font-color:blue;font-weight:700}#IdentityVisualizerDataModal .reset-button:hover{filter:brightness(90%);transform:scale(.97);transition:.3s}#IdentityVisualizerDataModal .reset-button:active{transform:scale(.9);transition:.3s}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}#IdentityVisualizerDataModal .rotating{animation:rotating 2s linear infinite}.tool-tip-container .prop-row{display:grid;grid-template-columns:2fr 3fr;grid-gap:.625rem;grid-template-areas:\"propName propVal\";height:-moz-fit-content;height:fit-content;min-height:1.5625rem;align-items:center;padding:0 .625rem}.tool-tip-container .prop-row:nth-child(2n){background-color:var(--formBackground)}.tool-tip-container .prop-row .prop-name{grid-area:propName;font-weight:700}.tool-tip-container .prop-row .prop-val{grid-area:propVal}\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.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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple", "hideSingleSelectionIndicator"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i7$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i6.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: LoadingIndicatorComponent, selector: "lib-loading-indicator", inputs: ["isLoading"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
10567
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: IdentityServicePathComponent, selector: "app-identity-visualizer", ngImport: i0, template: "<div [ngClass]=\"{ 'full-screen': fullScreen }\" class=\"modal solid\" id=\"IdentityVisualizer\">\n <div class=\"tp-data-header\">\n <div class=\"modaltitle\">Identity Service Path</div>\n <div (click)=\"hide()\" class=\"buttonBall icon-close\" id=\"EscZEndpointClose\"></div>\n <div (click)=\"toggleModalSize()\" class=\"buttonBall resize\" id=\"ResizeModalButton\"></div>\n </div>\n <div [ngClass]=\"isDarkMode==true?'darkMode':'lightMode'\" class=\"identity-topology-container\">\n <div style=\"width: 100%; height: 80px; float: left\">\n <div class=\"ep-topology-filter-container listBox row\">\n <input\n (keyup)=\"filterSearchArray()\"\n [(ngModel)]=\"selectedService\"\n [matAutocomplete]=\"auto\"\n class=\"topology-filter-input\"\n id=\"filterText\"\n matInput\n placeholder=\"Type to search identity accessible services.\"\n />\n\n <div\n (click)=\"clearSearchFilter()\"\n *ngIf=\"filterText\"\n class=\"clear-svc-icon icon-close\"\n id=\"ClearSearchFilter\"\n ></div>\n <div [hidden]=\"!noSearchResults\" class=\"no-results-warning\">No Results Found</div>\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"autocompleteSearch($event)\">\n <mat-option *ngFor=\"let option of autocompleteOptions\" [value]=\"option.name\">\n {{ option.name }}\n </mat-option>\n </mat-autocomplete>\n </div>\n </div>\n\n <div class=\"topotip\" id=\"epTooltip\"></div>\n\n <svg style='pointer-events:all' height=\"1000\" id=\"IdentityTopology\" width=\"1200\">\n </svg>\n <lib-loading-indicator *ngIf=\"isLoading\" [isLoading]=\"isLoading\"></lib-loading-indicator>\n\n <div class=\"topology-legendA\">\n <div class=\"legend-item-head\">\n <div class=\"legend-text-heading\">Component Status</div>\n </div>\n <div class=\"legend-item\">\n <div class=\"legend-circle unregistered\"></div>\n <div class=\"legend-text\">Unregistered / Offline</div>\n </div>\n <div class=\"legend-item\">\n <div class=\"legend-circle registered_in_use\"></div>\n <div class=\"legend-text\">Registered, Online</div>\n </div>\n <div class=\"legend-item\">\n <div class=\"legend-circle errored\"></div>\n <div class=\"legend-text\">Errored</div>\n </div>\n </div>\n\n <div class=\"topology-legendB\">\n <div class=\"legend-item-head\">\n <div class=\"legend-text-heading\">Link Status</div>\n </div>\n <div class=\"legend-item\">\n <div class=\"legend-circle unregistered\"></div>\n <div class=\"legend-text\">Offline</div>\n </div>\n <div class=\"legend-item\">\n <div class=\"legend-circle registered_in_use\"></div>\n <div class=\"legend-text\">In Usage</div>\n </div>\n <div class=\"legend-item\">\n <div class=\"legend-circle registered_not_in_use\"></div>\n <div class=\"legend-text\">Usage Date N/A</div>\n </div>\n <div class=\"legend-item\">\n <div class=\"legend-circle linkerrored\"></div>\n <div class=\"legend-text\">Errored</div>\n </div>\n </div>\n\n </div>\n</div>\n", styles: ["#IdentityVisualizer{overflow:hidden;width:75%;height:85%;background-color:var(--background);border-radius:1.5625rem;z-index:1001;margin:auto;inset:0rem;position:fixed}#IdentityVisualizer .buttonBall{cursor:pointer;font-weight:600}#IdentityVisualizer .buttonBall.icon-close{position:absolute;top:1.25rem;right:1.25rem;font-size:1.4375rem;color:var(--icon)}#IdentityVisualizer .buttonBall:hover{filter:brightness(50%)}#IdentityVisualizer .clear-svc-icon{font-size:1.4375rem;font-weight:600;position:relative;top:.9375rem;right:2.5rem;color:var(--icon);cursor:pointer}#IdentityVisualizer .clear-svc-icon:hover{filter:brightness(50%)}#IdentityVisualizer.full-screen{width:100%;height:100%;border-radius:0}.ep-topology-filter-container{width:37%;display:flex;flex-direction:row;position:absolute;margin:1.25rem;padding:0}.buttonBall.resize{top:1.25rem;width:1.4375rem;height:1.4375rem;right:3.4375rem;background-image:url(/assets/svgs/Resize.svg);background-size:1.4375rem 1.4375rem;position:absolute;cursor:pointer}.identity-topology-container{display:flex;margin-left:-.3125rem;margin-top:.625rem;flex-direction:column;cursor:grab}.lightMode{background:#f5e9f2;background-image:linear-gradient(#ecd3e6 .125rem,transparent 0),linear-gradient(90deg,#ecd3e6 .125rem,transparent 0),linear-gradient(#ecd3e6 .0625rem,transparent 0),linear-gradient(90deg,#ecd3e6 .0625rem,transparent 0);background-size:2.5rem 2.5rem,2.5rem 2.5rem,.625rem .625rem,.625rem .625rem}.darkMode{background:#000a17;background-image:linear-gradient(#001127 .125rem,transparent 0),linear-gradient(90deg,#001127 .125rem,transparent 0),linear-gradient(#001127 1px,transparent 0),linear-gradient(90deg,#001127 1px,transparent 0);background-size:2.5rem 2.5rem,2.5rem 2.5rem,.625rem .625rem,.625rem .625rem}.tp-data-header{height:2.5rem;font-size:1.5625rem;font-weight:600;margin-left:1.25rem;margin-top:.625rem;margin-bottom:.3125rem;font-family:Russo One;color:var(--primaryColor);font-size:1.875rem;text-transform:uppercase;font-weight:400}.node text{font:.75rem Open Sans,Arial,sans-serif}.modaltitle{padding-top:.375rem;padding-left:.3125rem;color:var(--primaryColor)}.modalbuttons{padding-right:1.25rem}.listBox.row .close{position:fixed;display:flex;flex-direction:column;font-family:icomoon!important;font-style:normal;font-weight:600;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--icon);text-align:center;font-size:2.1875rem;line-height:2.5rem;left:35%;top:17%;width:2.5rem;height:2.5rem;background-image:url(/assets/svgs/close.svg);z-index:600;background-position:center center;background-size:75%;cursor:pointer;transition:.3s;justify-content:end;align-items:center}.tp-topo-data-header{border:0rem solid black;height:75rem;font-size:.75rem;font-weight:400;margin-left:.75rem;margin-top:.1875rem;color:var(--primaryColor)}.services-select{width:25rem;flex-shrink:0;border-radius:1.6875rem;height:3.1875rem;margin-left:1.375rem;margin-top:.625rem;background-color:#fff;border-color:var(--navigation);box-shadow:0 1.25rem 1.4375rem 0 var(--shadow);color:var(--tableText);padding-left:1.25rem}select{background-image:url(/assets/svgs/ArrowDown.svg);background-position:center right .9375rem;background-repeat:no-repeat;background-size:1.125rem;padding-right:2.9375rem}.topology-filter-input{height:3.125rem;width:95%;border-radius:1.5625rem;border-color:var(--navigation);background-color:var(--navigation);box-shadow:0 1.25rem 1.4375rem 0 var(--shadow);padding-left:1.25rem}.topotip{display:none;position:fixed;background:var(--navigation);border:.1rem;border-radius:.75rem;pointer-events:none;box-shadow:0 1.25rem 1.4375rem 0 var(--shadow);transition:background-color .3s;padding:.3125rem 0;font-size:1.0625rem;font-weight:700;color:var(--tableText);z-index:2000;opacity:1;padding:1rem}.topology-legendA{border:0rem solid blue;width:12.5rem;border-radius:.75rem;margin-bottom:.625rem;margin-right:.625rem;position:absolute;display:inline-block;top:4.6875rem;right:0rem;background:var(--navigation);box-shadow:0 1.25rem 1.4375rem 0 var(--shadow);padding:0rem .625rem .3125rem;margin-top:0}.topology-legendB{width:12.5rem;border:0rem solid blue;border-radius:.75rem;margin-bottom:.625rem;margin-right:.625rem;position:absolute;top:12.5rem;right:0rem;background:var(--navigation);display:inline-block;box-shadow:0 1.25rem 1.4375rem 0 var(--shadow);padding:0rem .625rem .3125rem;margin-left:.625rem}.legend-item{width:100%;height:100%;display:inline-block}.legend-item-head{width:105%;height:100%;display:inline-block;border:0rem solid blue;left:-.1875rem}.legend-circle{height:.75rem;width:.75rem;border-radius:.9375rem;display:inline-block;margin-top:.4375rem}.legend-circle.unregistered{background-color:#d8dce7}.legend-circle.registered_not_in_use{border:.0625rem solid #08dc5a;background-color:#fff}.legend-circle.registered_in_use{background-color:#08dc5a}.legend-circle.errored{background-color:#fb0d3d}.legend-circle.linkerrored{background-image:url(/assets/images/visualizer/link-cut.png);background-size:contain}.legend-text{display:inline-block;font-size:.9375rem;font-weight:600;color:var(--tableText);padding-left:.4375rem;padding-bottom:.25rem}.legend-text-heading{text-align:center;display:inline-block;font-size:.875rem;font-weight:600;color:var(--tableText);padding-left:.625rem;padding-top:.125rem;padding-bottom:.125rem;color:#8a2be2}.legend-text2{display:inline-block;font-size:.625rem;font-weight:400;color:var(--tableText);padding-left:.125rem;padding-bottom:.25rem}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.rotating{animation:rotating 2s linear infinite}.tool-tip-container .prop-row{display:grid;grid-template-columns:auto auto;grid-gap:.625rem;height:-moz-fit-content;height:fit-content;width:-moz-fit-content;width:fit-content;min-height:1.5625rem;align-items:center;padding:.5rem}.tool-tip-container .prop-row:nth-child(2n){background-color:var(--formBackground)}::ng-deep .cdk-overlay-pane:not(.mat-mdc-autocomplete-panel-above) div.mat-mdc-autocomplete-panel{border-radius:14px;background:var(--background);color:var(--tableText)}::ng-deep .mat-mdc-option.mdc-list-item{align-items:center;color:var(--tableText)}::ng-deep .mat-mdc-option.mdc-list-item:hover:not(.mat-option-disabled),::ng-deep .mat-mdc-option.mdc-list-item:focus:not(.mat-option-disabled){border-color:var(--primaryColor);border-radius:14px;border:.01rem solid var(--primaryColor)}::ng-deep .mat-mdc-raised-button .mdc-button__ripple{border:.1rem solid var(--primaryColor)}::ng-deep .p-button.p-button-icon-only{width:1.357rem}\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.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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple", "hideSingleSelectionIndicator"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i7$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i6.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: LoadingIndicatorComponent, selector: "lib-loading-indicator", inputs: ["isLoading"] }] }); }
|
|
10540
10568
|
}
|
|
10541
10569
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IdentityServicePathComponent, decorators: [{
|
|
10542
10570
|
type: Component,
|
|
10543
|
-
args: [{ selector: 'app-identity-visualizer', encapsulation: ViewEncapsulation.None, template: "<div [ngClass]=\"{ 'full-screen': fullScreen }\" class=\"modal solid\" id=\"IdentityVisualizerDataModal\">\n <div class=\"tp-data-header\">\n <div class=\"modaltitle\">Identity Service Path</div>\n <div (click)=\"hide()\" class=\"buttonBall icon-close\" id=\"EscZEndpointClose\"></div>\n <div (click)=\"toggleModalSize()\" class=\"buttonBall resize\" id=\"ResizeModalButton\"></div>\n </div>\n\n <div class=\"identity-topology-container\">\n\n <div style=\"width: 100%; height: 80px; float: left\">\n <div class=\"ep-topology-filter-container listBox row\">\n <input\n (keyup)=\"filterSearchArray()\"\n [(ngModel)]=\"selectedService\"\n [matAutocomplete]=\"auto\"\n class=\"topology-filter-input\"\n id=\"filterText\"\n matInput\n placeholder=\"Type to search identity accessible services.\"\n />\n\n <div\n (click)=\"clearSearchFilter()\"\n *ngIf=\"filterText\"\n class=\"clear-svc-icon icon-close\"\n id=\"ClearSearchFilter\"\n ></div>\n <div [hidden]=\"!noSearchResults\" class=\"no-results-warning\">No Results Found</div>\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"autocompleteSearch($event)\">\n <mat-option *ngFor=\"let option of autocompleteOptions\" [value]=\"option.name\">\n {{ option.name }}\n </mat-option>\n </mat-autocomplete>\n </div>\n </div>\n\n <div class=\"topotip\" id=\"epTooltip\"></div>\n\n <svg style='pointer-events:all' height=\"1000\" id=\"IdentityTopology\" width=\"1200\">\n </svg>\n <lib-loading-indicator *ngIf=\"isLoading\" [isLoading]=\"isLoading\"></lib-loading-indicator>\n\n <div class=\"topology-legendA\">\n <div class=\"legend-item-head\">\n <div class=\"legend-text-heading\">Component Status</div>\n </div>\n <div class=\"legend-item\">\n <div class=\"legend-circle unregistered\"></div>\n <div class=\"legend-text\">Unregistered / Offline</div>\n </div>\n <div class=\"legend-item\">\n <div class=\"legend-circle registered_in_use\"></div>\n <div class=\"legend-text\">Registered, Online</div>\n </div>\n <div class=\"legend-item\">\n <div class=\"legend-circle errored\"></div>\n <div class=\"legend-text\">Errored</div>\n </div>\n </div>\n\n <div class=\"topology-legendB\">\n <div class=\"legend-item-head\">\n <div class=\"legend-text-heading\">Link Status</div>\n </div>\n <div class=\"legend-item\">\n <div class=\"legend-circle unregistered\"></div>\n <div class=\"legend-text\">Offline</div>\n </div>\n <div class=\"legend-item\">\n <div class=\"legend-circle registered_in_use\"></div>\n <div class=\"legend-text\">In Usage</div>\n </div>\n <div class=\"legend-item\">\n <div class=\"legend-circle registered_not_in_use\"></div>\n <div class=\"legend-text\">Usage Date N/A</div>\n </div>\n <div class=\"legend-item\">\n <div class=\"legend-circle linkerrored\"></div>\n <div class=\"legend-text\">Errored</div>\n </div>\n </div>\n\n </div>\n</div>\n", styles: ["#IdentityVisualizerDataModal{overflow:hidden;width:75%;height:85%;background-color:var(--background);border-radius:1.5625rem;z-index:1001;margin:auto;inset:0rem;position:fixed}#IdentityVisualizerDataModal .buttonBall{cursor:pointer;font-weight:600}#IdentityVisualizerDataModal .buttonBall.icon-close{position:absolute;top:1.25rem;right:1.25rem;font-size:1.4375rem;color:var(--icon)}#IdentityVisualizerDataModal .buttonBall:hover{filter:brightness(50%)}#IdentityVisualizerDataModal .clear-svc-icon{font-size:1.4375rem;font-weight:600;position:absolute;top:.9375rem;right:2.5rem;color:var(--icon);cursor:pointer}#IdentityVisualizerDataModal .clear-svc-icon:hover{filter:brightness(50%)}#IdentityVisualizerDataModal.full-screen{width:100%;height:100%;border-radius:0}#IdentityVisualizerDataModal .ep-topology-filter-container{width:37%;display:flex;flex-direction:row;position:absolute;margin:1.25rem;padding:0}#IdentityVisualizerDataModal .buttonBall.resize{top:1.25rem;width:1.4375rem;height:1.4375rem;right:3.4375rem;background-image:url(/assets/svgs/Resize.svg);background-size:1.4375rem 1.4375rem;position:absolute;cursor:pointer}#IdentityVisualizerDataModal .identity-topology-container{display:flex;margin-left:-.3125rem;margin-top:.625rem;flex-direction:column;cursor:grab;background:#f5e9f2;background-image:linear-gradient(#ecd3e6 .125rem,transparent 0),linear-gradient(90deg,#ecd3e6 .125rem,transparent 0),linear-gradient(#ecd3e6 .0625rem,transparent 0),linear-gradient(90deg,#ecd3e6 .0625rem,transparent 0);background-size:2.5rem 2.5rem,2.5rem 2.5rem,.625rem .625rem,.625rem .625rem}#IdentityVisualizerDataModal .tp-data-header{height:2.5rem;font-size:1.5625rem;font-weight:600;margin-left:1.25rem;margin-top:.625rem;margin-bottom:.3125rem;font-family:Russo One;color:var(--primaryColor);font-size:1.875rem;text-transform:uppercase;font-weight:400}#IdentityVisualizerDataModal .node text{font:.75rem Open Sans,Arial,sans-serif}#IdentityVisualizerDataModal .modaltitle{filter:brightness(50%);padding-top:.375rem;padding-left:.3125rem}#IdentityVisualizerDataModal .modalbuttons{padding-right:1.25rem}#IdentityVisualizerDataModal .listBox.row .close{position:fixed;display:flex;flex-direction:column;font-family:icomoon!important;font-style:normal;font-weight:600;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--icon);text-align:center;font-size:2.1875rem;line-height:2.5rem;left:35%;top:17%;width:2.5rem;height:2.5rem;background-image:url(/assets/svgs/close.svg);z-index:600;background-position:center center;background-size:75%;cursor:pointer;transition:.3s;justify-content:end;align-items:center}#IdentityVisualizerDataModal .tp-topo-data-header{border:0rem solid black;height:75rem;font-size:.75rem;font-weight:400;margin-left:.75rem;margin-top:.1875rem;color:var(--primaryColor)}#IdentityVisualizerDataModal .services-select{width:25rem;flex-shrink:0;border-radius:1.6875rem;height:3.1875rem;margin-left:1.375rem;margin-top:.625rem;background-color:#fff;border-color:var(--navigation);box-shadow:0 1.25rem 1.4375rem 0 var(--shadow);color:var(--tableText);padding-left:1.25rem}#IdentityVisualizerDataModal select{background-image:url(/assets/svgs/ArrowDown.svg);background-position:center right .9375rem;background-repeat:no-repeat;background-size:1.125rem;padding-right:2.9375rem}#IdentityVisualizerDataModal .topology-filter-input{height:3.125rem;width:95%;border-radius:1.5625rem;border-color:var(--navigation);background-color:var(--navigation);box-shadow:0 1.25rem 1.4375rem 0 var(--shadow);padding-left:1.25rem}#IdentityVisualizerDataModal .topotip{display:none;position:fixed;background:var(--navigation);border:0rem;border-radius:.75rem;pointer-events:none;box-shadow:0 1.25rem 1.4375rem 0 var(--shadow);transition:background-color .3s;padding:.3125rem 0;font-size:1.0625rem;font-weight:700;color:var(--tableText);z-index:2000;opacity:1;max-width:28.125rem}#IdentityVisualizerDataModal .topology-legendA{border:0rem solid blue;width:12.5rem;border-radius:.75rem;margin-bottom:.625rem;margin-right:.625rem;position:absolute;display:inline-block;top:4.6875rem;right:0rem;background:var(--navigation);box-shadow:0 1.25rem 1.4375rem 0 var(--shadow);padding:0rem .625rem .3125rem;margin-top:0}#IdentityVisualizerDataModal .topology-legendB{width:12.5rem;border:0rem solid blue;border-radius:.75rem;margin-bottom:.625rem;margin-right:.625rem;position:absolute;top:12.5rem;right:0rem;background:var(--navigation);display:inline-block;box-shadow:0 1.25rem 1.4375rem 0 var(--shadow);padding:0rem .625rem .3125rem;margin-left:.625rem}#IdentityVisualizerDataModal .legend-item{width:100%;height:100%;display:inline-block}#IdentityVisualizerDataModal .legend-item-head{width:105%;height:100%;display:inline-block;border:0rem solid blue;left:-.1875rem}#IdentityVisualizerDataModal .legend-circle{height:.75rem;width:.75rem;border-radius:.9375rem;display:inline-block;margin-top:.4375rem}#IdentityVisualizerDataModal .legend-circle.unregistered{background-color:#d8dce7}#IdentityVisualizerDataModal .legend-circle.registered_not_in_use{border:.0625rem solid #08dc5a;background-color:#fff}#IdentityVisualizerDataModal .legend-circle.registered_in_use{background-color:#08dc5a}#IdentityVisualizerDataModal .legend-circle.errored{background-color:#fb0d3d}#IdentityVisualizerDataModal .legend-circle.linkerrored{background-image:url(/assets/images/visualizer/link-cut.png);background-size:contain}#IdentityVisualizerDataModal .legend-text{display:inline-block;font-size:.9375rem;font-weight:600;color:var(--tableText);padding-left:.4375rem;padding-bottom:.25rem}#IdentityVisualizerDataModal .legend-text-heading{text-align:center;display:inline-block;font-size:.875rem;font-weight:600;color:var(--tableText);padding-left:.625rem;padding-top:.125rem;padding-bottom:.125rem;color:#8a2be2}#IdentityVisualizerDataModal .legend-text2{display:inline-block;font-size:.625rem;font-weight:400;color:var(--tableText);padding-left:.125rem;padding-bottom:.25rem}#IdentityVisualizerDataModal .filters-area{display:flex;flex-direction:row;align-items:center;justify-content:flex-end;margin-top:.625rem}#IdentityVisualizerDataModal .dateTimeField input{height:2.5rem;vertical-align:middle;margin-right:.0625rem}#IdentityVisualizerDataModal .p-datepicker table td{padding:0rem}#IdentityVisualizerDataModal .p-datepicker table td>span{padding:0rem}#IdentityVisualizerDataModal .p-timepicker{padding:.0625rem}#IdentityVisualizerDataModal .p-datepicker-header,#IdentityVisualizerDataModal .p-datepicker-header-group{padding:0rem}#IdentityVisualizerDataModal .p-datepicker .p-timepicker button:last-child{height:.9375rem}#IdentityVisualizerDataModal .p-datepicker .p-timepicker button{height:.9375rem}#IdentityVisualizerDataModal .ng-tns-c15-3{font-size:.9375rem;font-weight:700}#IdentityVisualizerDataModal .p-datepicker .p-datepicker-buttonbar{padding:0rem}#IdentityVisualizerDataModal .reset-button{height:3.125rem;width:3.125rem;margin-top:-7%;margin-left:70%;border-radius:3.125rem;margin-right:.625rem;background-size:contain;--background-image: url(/assets/svgs/refresh.svg);cursor:pointer;overflow:hidden;z-index:24;box-shadow:0 1.25rem 1.4375rem 0 var(--shadow);transition:.3s}#IdentityVisualizerDataModal .refresh-button{position:absolute;display:inline-block;height:2.6875rem;width:7.625rem;margin-top:-5.3125rem;margin-left:65%;border-radius:.625rem;margin-right:.625rem;font-color:blue;font-weight:700}#IdentityVisualizerDataModal .reset-button:hover{filter:brightness(90%);transform:scale(.97);transition:.3s}#IdentityVisualizerDataModal .reset-button:active{transform:scale(.9);transition:.3s}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}#IdentityVisualizerDataModal .rotating{animation:rotating 2s linear infinite}.tool-tip-container .prop-row{display:grid;grid-template-columns:2fr 3fr;grid-gap:.625rem;grid-template-areas:\"propName propVal\";height:-moz-fit-content;height:fit-content;min-height:1.5625rem;align-items:center;padding:0 .625rem}.tool-tip-container .prop-row:nth-child(2n){background-color:var(--formBackground)}.tool-tip-container .prop-row .prop-name{grid-area:propName;font-weight:700}.tool-tip-container .prop-row .prop-val{grid-area:propVal}\n"] }]
|
|
10571
|
+
args: [{ selector: 'app-identity-visualizer', template: "<div [ngClass]=\"{ 'full-screen': fullScreen }\" class=\"modal solid\" id=\"IdentityVisualizer\">\n <div class=\"tp-data-header\">\n <div class=\"modaltitle\">Identity Service Path</div>\n <div (click)=\"hide()\" class=\"buttonBall icon-close\" id=\"EscZEndpointClose\"></div>\n <div (click)=\"toggleModalSize()\" class=\"buttonBall resize\" id=\"ResizeModalButton\"></div>\n </div>\n <div [ngClass]=\"isDarkMode==true?'darkMode':'lightMode'\" class=\"identity-topology-container\">\n <div style=\"width: 100%; height: 80px; float: left\">\n <div class=\"ep-topology-filter-container listBox row\">\n <input\n (keyup)=\"filterSearchArray()\"\n [(ngModel)]=\"selectedService\"\n [matAutocomplete]=\"auto\"\n class=\"topology-filter-input\"\n id=\"filterText\"\n matInput\n placeholder=\"Type to search identity accessible services.\"\n />\n\n <div\n (click)=\"clearSearchFilter()\"\n *ngIf=\"filterText\"\n class=\"clear-svc-icon icon-close\"\n id=\"ClearSearchFilter\"\n ></div>\n <div [hidden]=\"!noSearchResults\" class=\"no-results-warning\">No Results Found</div>\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"autocompleteSearch($event)\">\n <mat-option *ngFor=\"let option of autocompleteOptions\" [value]=\"option.name\">\n {{ option.name }}\n </mat-option>\n </mat-autocomplete>\n </div>\n </div>\n\n <div class=\"topotip\" id=\"epTooltip\"></div>\n\n <svg style='pointer-events:all' height=\"1000\" id=\"IdentityTopology\" width=\"1200\">\n </svg>\n <lib-loading-indicator *ngIf=\"isLoading\" [isLoading]=\"isLoading\"></lib-loading-indicator>\n\n <div class=\"topology-legendA\">\n <div class=\"legend-item-head\">\n <div class=\"legend-text-heading\">Component Status</div>\n </div>\n <div class=\"legend-item\">\n <div class=\"legend-circle unregistered\"></div>\n <div class=\"legend-text\">Unregistered / Offline</div>\n </div>\n <div class=\"legend-item\">\n <div class=\"legend-circle registered_in_use\"></div>\n <div class=\"legend-text\">Registered, Online</div>\n </div>\n <div class=\"legend-item\">\n <div class=\"legend-circle errored\"></div>\n <div class=\"legend-text\">Errored</div>\n </div>\n </div>\n\n <div class=\"topology-legendB\">\n <div class=\"legend-item-head\">\n <div class=\"legend-text-heading\">Link Status</div>\n </div>\n <div class=\"legend-item\">\n <div class=\"legend-circle unregistered\"></div>\n <div class=\"legend-text\">Offline</div>\n </div>\n <div class=\"legend-item\">\n <div class=\"legend-circle registered_in_use\"></div>\n <div class=\"legend-text\">In Usage</div>\n </div>\n <div class=\"legend-item\">\n <div class=\"legend-circle registered_not_in_use\"></div>\n <div class=\"legend-text\">Usage Date N/A</div>\n </div>\n <div class=\"legend-item\">\n <div class=\"legend-circle linkerrored\"></div>\n <div class=\"legend-text\">Errored</div>\n </div>\n </div>\n\n </div>\n</div>\n", styles: ["#IdentityVisualizer{overflow:hidden;width:75%;height:85%;background-color:var(--background);border-radius:1.5625rem;z-index:1001;margin:auto;inset:0rem;position:fixed}#IdentityVisualizer .buttonBall{cursor:pointer;font-weight:600}#IdentityVisualizer .buttonBall.icon-close{position:absolute;top:1.25rem;right:1.25rem;font-size:1.4375rem;color:var(--icon)}#IdentityVisualizer .buttonBall:hover{filter:brightness(50%)}#IdentityVisualizer .clear-svc-icon{font-size:1.4375rem;font-weight:600;position:relative;top:.9375rem;right:2.5rem;color:var(--icon);cursor:pointer}#IdentityVisualizer .clear-svc-icon:hover{filter:brightness(50%)}#IdentityVisualizer.full-screen{width:100%;height:100%;border-radius:0}.ep-topology-filter-container{width:37%;display:flex;flex-direction:row;position:absolute;margin:1.25rem;padding:0}.buttonBall.resize{top:1.25rem;width:1.4375rem;height:1.4375rem;right:3.4375rem;background-image:url(/assets/svgs/Resize.svg);background-size:1.4375rem 1.4375rem;position:absolute;cursor:pointer}.identity-topology-container{display:flex;margin-left:-.3125rem;margin-top:.625rem;flex-direction:column;cursor:grab}.lightMode{background:#f5e9f2;background-image:linear-gradient(#ecd3e6 .125rem,transparent 0),linear-gradient(90deg,#ecd3e6 .125rem,transparent 0),linear-gradient(#ecd3e6 .0625rem,transparent 0),linear-gradient(90deg,#ecd3e6 .0625rem,transparent 0);background-size:2.5rem 2.5rem,2.5rem 2.5rem,.625rem .625rem,.625rem .625rem}.darkMode{background:#000a17;background-image:linear-gradient(#001127 .125rem,transparent 0),linear-gradient(90deg,#001127 .125rem,transparent 0),linear-gradient(#001127 1px,transparent 0),linear-gradient(90deg,#001127 1px,transparent 0);background-size:2.5rem 2.5rem,2.5rem 2.5rem,.625rem .625rem,.625rem .625rem}.tp-data-header{height:2.5rem;font-size:1.5625rem;font-weight:600;margin-left:1.25rem;margin-top:.625rem;margin-bottom:.3125rem;font-family:Russo One;color:var(--primaryColor);font-size:1.875rem;text-transform:uppercase;font-weight:400}.node text{font:.75rem Open Sans,Arial,sans-serif}.modaltitle{padding-top:.375rem;padding-left:.3125rem;color:var(--primaryColor)}.modalbuttons{padding-right:1.25rem}.listBox.row .close{position:fixed;display:flex;flex-direction:column;font-family:icomoon!important;font-style:normal;font-weight:600;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--icon);text-align:center;font-size:2.1875rem;line-height:2.5rem;left:35%;top:17%;width:2.5rem;height:2.5rem;background-image:url(/assets/svgs/close.svg);z-index:600;background-position:center center;background-size:75%;cursor:pointer;transition:.3s;justify-content:end;align-items:center}.tp-topo-data-header{border:0rem solid black;height:75rem;font-size:.75rem;font-weight:400;margin-left:.75rem;margin-top:.1875rem;color:var(--primaryColor)}.services-select{width:25rem;flex-shrink:0;border-radius:1.6875rem;height:3.1875rem;margin-left:1.375rem;margin-top:.625rem;background-color:#fff;border-color:var(--navigation);box-shadow:0 1.25rem 1.4375rem 0 var(--shadow);color:var(--tableText);padding-left:1.25rem}select{background-image:url(/assets/svgs/ArrowDown.svg);background-position:center right .9375rem;background-repeat:no-repeat;background-size:1.125rem;padding-right:2.9375rem}.topology-filter-input{height:3.125rem;width:95%;border-radius:1.5625rem;border-color:var(--navigation);background-color:var(--navigation);box-shadow:0 1.25rem 1.4375rem 0 var(--shadow);padding-left:1.25rem}.topotip{display:none;position:fixed;background:var(--navigation);border:.1rem;border-radius:.75rem;pointer-events:none;box-shadow:0 1.25rem 1.4375rem 0 var(--shadow);transition:background-color .3s;padding:.3125rem 0;font-size:1.0625rem;font-weight:700;color:var(--tableText);z-index:2000;opacity:1;padding:1rem}.topology-legendA{border:0rem solid blue;width:12.5rem;border-radius:.75rem;margin-bottom:.625rem;margin-right:.625rem;position:absolute;display:inline-block;top:4.6875rem;right:0rem;background:var(--navigation);box-shadow:0 1.25rem 1.4375rem 0 var(--shadow);padding:0rem .625rem .3125rem;margin-top:0}.topology-legendB{width:12.5rem;border:0rem solid blue;border-radius:.75rem;margin-bottom:.625rem;margin-right:.625rem;position:absolute;top:12.5rem;right:0rem;background:var(--navigation);display:inline-block;box-shadow:0 1.25rem 1.4375rem 0 var(--shadow);padding:0rem .625rem .3125rem;margin-left:.625rem}.legend-item{width:100%;height:100%;display:inline-block}.legend-item-head{width:105%;height:100%;display:inline-block;border:0rem solid blue;left:-.1875rem}.legend-circle{height:.75rem;width:.75rem;border-radius:.9375rem;display:inline-block;margin-top:.4375rem}.legend-circle.unregistered{background-color:#d8dce7}.legend-circle.registered_not_in_use{border:.0625rem solid #08dc5a;background-color:#fff}.legend-circle.registered_in_use{background-color:#08dc5a}.legend-circle.errored{background-color:#fb0d3d}.legend-circle.linkerrored{background-image:url(/assets/images/visualizer/link-cut.png);background-size:contain}.legend-text{display:inline-block;font-size:.9375rem;font-weight:600;color:var(--tableText);padding-left:.4375rem;padding-bottom:.25rem}.legend-text-heading{text-align:center;display:inline-block;font-size:.875rem;font-weight:600;color:var(--tableText);padding-left:.625rem;padding-top:.125rem;padding-bottom:.125rem;color:#8a2be2}.legend-text2{display:inline-block;font-size:.625rem;font-weight:400;color:var(--tableText);padding-left:.125rem;padding-bottom:.25rem}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.rotating{animation:rotating 2s linear infinite}.tool-tip-container .prop-row{display:grid;grid-template-columns:auto auto;grid-gap:.625rem;height:-moz-fit-content;height:fit-content;width:-moz-fit-content;width:fit-content;min-height:1.5625rem;align-items:center;padding:.5rem}.tool-tip-container .prop-row:nth-child(2n){background-color:var(--formBackground)}::ng-deep .cdk-overlay-pane:not(.mat-mdc-autocomplete-panel-above) div.mat-mdc-autocomplete-panel{border-radius:14px;background:var(--background);color:var(--tableText)}::ng-deep .mat-mdc-option.mdc-list-item{align-items:center;color:var(--tableText)}::ng-deep .mat-mdc-option.mdc-list-item:hover:not(.mat-option-disabled),::ng-deep .mat-mdc-option.mdc-list-item:focus:not(.mat-option-disabled){border-color:var(--primaryColor);border-radius:14px;border:.01rem solid var(--primaryColor)}::ng-deep .mat-mdc-raised-button .mdc-button__ripple{border:.1rem solid var(--primaryColor)}::ng-deep .p-button.p-button-icon-only{width:1.357rem}\n"] }]
|
|
10544
10572
|
}], ctorParameters: function () { return [{ type: IdentityServicePathHelper }, { type: SettingsService, decorators: [{
|
|
10545
10573
|
type: Inject,
|
|
10546
10574
|
args: [SETTINGS_SERVICE]
|
|
@@ -11293,7 +11321,8 @@ class TransitRoutersPageService extends ListPageServiceClass {
|
|
|
11293
11321
|
cellRenderer: 'cellTokenComponent',
|
|
11294
11322
|
resizable: true,
|
|
11295
11323
|
cellClass: 'nf-cell-vert-align tCol',
|
|
11296
|
-
}
|
|
11324
|
+
},
|
|
11325
|
+
this.ID_COLUMN_DEF
|
|
11297
11326
|
];
|
|
11298
11327
|
if (this.extService.processTableColumns) {
|
|
11299
11328
|
tableColumns = this.extService.processTableColumns(tableColumns);
|
|
@@ -12151,6 +12180,7 @@ class ServicePolicyFormService {
|
|
|
12151
12180
|
return svc.name;
|
|
12152
12181
|
});
|
|
12153
12182
|
this.associatedServiceNames = [...this.associatedServiceNames, ...namedAttributes];
|
|
12183
|
+
this.associatedServiceNames = sortBy(this.associatedServices);
|
|
12154
12184
|
this.associatedServiceNames = sortedUniq(this.associatedServiceNames);
|
|
12155
12185
|
return this.associatedServices;
|
|
12156
12186
|
});
|
|
@@ -12170,6 +12200,7 @@ class ServicePolicyFormService {
|
|
|
12170
12200
|
return svc.name;
|
|
12171
12201
|
});
|
|
12172
12202
|
this.associatedIdentityNames = [...this.associatedIdentityNames, ...namedAttributes];
|
|
12203
|
+
this.associatedIdentityNames = sortBy(this.associatedIdentityNames);
|
|
12173
12204
|
this.associatedIdentityNames = sortedUniq(this.associatedIdentityNames);
|
|
12174
12205
|
});
|
|
12175
12206
|
}
|
|
@@ -12399,7 +12430,8 @@ class ServicesPageService extends ListPageServiceClass {
|
|
|
12399
12430
|
this.serviceType = '';
|
|
12400
12431
|
this.openAdvanced(data.data.id);
|
|
12401
12432
|
},
|
|
12402
|
-
}
|
|
12433
|
+
},
|
|
12434
|
+
this.ID_COLUMN_DEF
|
|
12403
12435
|
];
|
|
12404
12436
|
}
|
|
12405
12437
|
getData(filters, sort, page) {
|
|
@@ -19131,7 +19163,8 @@ class EdgeRouterPoliciesPageService extends ListPageServiceClass {
|
|
|
19131
19163
|
this.openEditForm(data.data.id);
|
|
19132
19164
|
},
|
|
19133
19165
|
hide: true
|
|
19134
|
-
}
|
|
19166
|
+
},
|
|
19167
|
+
this.ID_COLUMN_DEF
|
|
19135
19168
|
];
|
|
19136
19169
|
}
|
|
19137
19170
|
getData(filters, sort, page) {
|
|
@@ -19673,7 +19706,8 @@ class ServicePoliciesPageService extends ListPageServiceClass {
|
|
|
19673
19706
|
this.openEditForm(data.data.id);
|
|
19674
19707
|
},
|
|
19675
19708
|
hide: true
|
|
19676
|
-
}
|
|
19709
|
+
},
|
|
19710
|
+
this.ID_COLUMN_DEF
|
|
19677
19711
|
];
|
|
19678
19712
|
}
|
|
19679
19713
|
getData(filters, sort, page) {
|
|
@@ -20219,6 +20253,7 @@ class EdgeRouterPolicyFormService {
|
|
|
20219
20253
|
return svc.name;
|
|
20220
20254
|
});
|
|
20221
20255
|
this.associatedEdgeRouterNames = [...this.associatedEdgeRouterNames, ...namedAttributes];
|
|
20256
|
+
this.associatedEdgeRouterNames = sortBy(this.associatedEdgeRouterNames);
|
|
20222
20257
|
this.associatedEdgeRouterNames = sortedUniq(this.associatedEdgeRouterNames);
|
|
20223
20258
|
});
|
|
20224
20259
|
}
|
|
@@ -20237,6 +20272,7 @@ class EdgeRouterPolicyFormService {
|
|
|
20237
20272
|
return svc.name;
|
|
20238
20273
|
});
|
|
20239
20274
|
this.associatedIdentityNames = [...this.associatedIdentityNames, ...namedAttributes];
|
|
20275
|
+
this.associatedIdentityNames = sortBy(this.associatedIdentityNames);
|
|
20240
20276
|
this.associatedIdentityNames = sortedUniq(this.associatedIdentityNames);
|
|
20241
20277
|
});
|
|
20242
20278
|
}
|
|
@@ -20826,7 +20862,8 @@ class ServiceEdgeRouterPoliciesPageService extends ListPageServiceClass {
|
|
|
20826
20862
|
this.openEditForm(data.data.id);
|
|
20827
20863
|
},
|
|
20828
20864
|
hide: true
|
|
20829
|
-
}
|
|
20865
|
+
},
|
|
20866
|
+
this.ID_COLUMN_DEF
|
|
20830
20867
|
];
|
|
20831
20868
|
}
|
|
20832
20869
|
getData(filters, sort, page) {
|
|
@@ -21101,6 +21138,7 @@ class ServiceEdgeRouterPolicyFormService {
|
|
|
21101
21138
|
return svc.name;
|
|
21102
21139
|
});
|
|
21103
21140
|
this.associatedEdgeRouterNames = [...this.associatedEdgeRouterNames, ...namedAttributes];
|
|
21141
|
+
this.associatedEdgeRouterNames = sortBy(this.associatedEdgeRouterNames);
|
|
21104
21142
|
this.associatedEdgeRouterNames = sortedUniq(this.associatedEdgeRouterNames);
|
|
21105
21143
|
});
|
|
21106
21144
|
}
|
|
@@ -21119,6 +21157,7 @@ class ServiceEdgeRouterPolicyFormService {
|
|
|
21119
21157
|
return svc.name;
|
|
21120
21158
|
});
|
|
21121
21159
|
this.associatedServiceNames = [...this.associatedServiceNames, ...namedAttributes];
|
|
21160
|
+
this.associatedServiceNames = sortBy(this.associatedServiceNames);
|
|
21122
21161
|
this.associatedServiceNames = sortedUniq(this.associatedServiceNames);
|
|
21123
21162
|
});
|
|
21124
21163
|
}
|
|
@@ -21615,7 +21654,8 @@ class TerminatorsPageService extends ListPageServiceClass {
|
|
|
21615
21654
|
this.openEditForm(data.data.id);
|
|
21616
21655
|
},
|
|
21617
21656
|
hide: false
|
|
21618
|
-
}
|
|
21657
|
+
},
|
|
21658
|
+
this.ID_COLUMN_DEF
|
|
21619
21659
|
];
|
|
21620
21660
|
}
|
|
21621
21661
|
getData(filters, sort) {
|
|
@@ -22252,7 +22292,8 @@ class JwtSignersPageService extends ListPageServiceClass {
|
|
|
22252
22292
|
valueFormatter: this.createdAtFormatter,
|
|
22253
22293
|
resizable: true,
|
|
22254
22294
|
cellClass: 'nf-cell-vert-align tCol',
|
|
22255
|
-
}
|
|
22295
|
+
},
|
|
22296
|
+
this.ID_COLUMN_DEF
|
|
22256
22297
|
];
|
|
22257
22298
|
}
|
|
22258
22299
|
getData(filters, sort) {
|
|
@@ -23255,7 +23296,8 @@ class AuthPoliciesPageService extends ListPageServiceClass {
|
|
|
23255
23296
|
valueFormatter: this.createdAtFormatter,
|
|
23256
23297
|
resizable: true,
|
|
23257
23298
|
cellClass: 'nf-cell-vert-align tCol',
|
|
23258
|
-
}
|
|
23299
|
+
},
|
|
23300
|
+
this.ID_COLUMN_DEF
|
|
23259
23301
|
];
|
|
23260
23302
|
}
|
|
23261
23303
|
checkDefaultAuthPolicy(authPolicy) {
|
|
@@ -24036,7 +24078,8 @@ class CertificateAuthoritiesPageService extends ListPageServiceClass {
|
|
|
24036
24078
|
valueFormatter: this.createdAtFormatter,
|
|
24037
24079
|
resizable: true,
|
|
24038
24080
|
cellClass: 'nf-cell-vert-align tCol',
|
|
24039
|
-
}
|
|
24081
|
+
},
|
|
24082
|
+
this.ID_COLUMN_DEF
|
|
24040
24083
|
];
|
|
24041
24084
|
}
|
|
24042
24085
|
getData(filters, sort) {
|
|
@@ -25105,7 +25148,8 @@ class ConfigTypesPageService extends ListPageServiceClass {
|
|
|
25105
25148
|
resizable: true,
|
|
25106
25149
|
cellClass: 'nf-cell-vert-align tCol',
|
|
25107
25150
|
width: this.remToPx(10),
|
|
25108
|
-
}
|
|
25151
|
+
},
|
|
25152
|
+
this.ID_COLUMN_DEF
|
|
25109
25153
|
];
|
|
25110
25154
|
}
|
|
25111
25155
|
getData(filters, sort) {
|
|
@@ -25734,7 +25778,8 @@ class PostureChecksPageService extends ListPageServiceClass {
|
|
|
25734
25778
|
resizable: true,
|
|
25735
25779
|
cellClass: 'nf-cell-vert-align tCol',
|
|
25736
25780
|
width: this.remToPx(10),
|
|
25737
|
-
}
|
|
25781
|
+
},
|
|
25782
|
+
this.ID_COLUMN_DEF
|
|
25738
25783
|
];
|
|
25739
25784
|
}
|
|
25740
25785
|
getData(filters, sort) {
|
|
@@ -27668,6 +27713,132 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
27668
27713
|
args: [SETTINGS_SERVICE]
|
|
27669
27714
|
}] }]; } });
|
|
27670
27715
|
|
|
27716
|
+
class ProgressMeterStep {
|
|
27717
|
+
constructor() {
|
|
27718
|
+
this.index = 0;
|
|
27719
|
+
this.label = '';
|
|
27720
|
+
this.state = '';
|
|
27721
|
+
}
|
|
27722
|
+
}
|
|
27723
|
+
;
|
|
27724
|
+
class ProgressMeterComponent {
|
|
27725
|
+
constructor() {
|
|
27726
|
+
this.errors = {};
|
|
27727
|
+
this.title = '';
|
|
27728
|
+
this.steps = [];
|
|
27729
|
+
this.currentStepIndex = 0;
|
|
27730
|
+
this.currentStepChange = new EventEmitter;
|
|
27731
|
+
}
|
|
27732
|
+
getProgressBarStyle(index) {
|
|
27733
|
+
const step = this.steps[index];
|
|
27734
|
+
const nextStep = this.steps[index + 1];
|
|
27735
|
+
if (step?.state === 'COMPLETE' && nextStep?.state === 'COMPLETE') {
|
|
27736
|
+
return true;
|
|
27737
|
+
}
|
|
27738
|
+
return false;
|
|
27739
|
+
}
|
|
27740
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProgressMeterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27741
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ProgressMeterComponent, selector: "lib-progress-meter", inputs: { title: "title", steps: "steps", currentStepIndex: "currentStepIndex" }, outputs: { currentStepChange: "currentStepChange" }, ngImport: i0, template: "<div class=\"progress-meter-wrapper\">\n <div class=\"progress-meter-container\">\n <div\n *ngFor=\"let step of steps; let index = index\"\n [ngClass]=\"{ 'last-step': index === steps.length - 1 }\"\n class=\"progress-meter-step-container\"\n >\n <div class=\"progress-step-item\" [ngClass]=\"{'in-progress': currentStepIndex === step.index}\">\n <div class=\"progress-step-ball\" [ngClass]=\"{'progress-step-complete': step.state === 'COMPLETE', 'step-in-progress': step.state === 'IN_PROGRESS'}\">\n </div>\n <div *ngIf=\"step.state === 'IN_PROGRESS'\" class=\"spinner\"></div>\n <div class=\"progress-step-label\" [ngClass]=\"{'step-in-progress': step.state === 'IN_PROGRESS'}\">{{ step.label }}</div>\n </div>\n <div *ngIf=\"index !== steps.length - 1\">\n <div class=\"progress-step-bar\"\n [ngClass]=\"{\n 'progress-step-complete': getProgressBarStyle(index),\n 'step-in-progress': currentStepIndex === index + 1\n }\"\n >\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [".progress-meter-wrapper{display:flex;align-items:flex-start;font-size:1rem;gap:1rem;width:100%;height:6rem}.progress-meter-wrapper .progress-meter-container{display:flex;flex-direction:row;align-items:center;justify-content:center;position:relative;width:100%;height:3.4375rem;z-index:999999999}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container{display:flex;flex-direction:row;align-items:center;justify-content:center;width:18rem;height:100%}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container.last-step{width:1.875rem}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container .progress-step-item{display:flex;flex-direction:row;align-items:center;justify-content:center;height:100%;width:1.875rem}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container .progress-step-item .progress-step-ball{width:1.875rem;height:1.875rem;border-radius:1.875rem;border:none;background-size:45%;background-position:center center;background-color:var(--placeholder);opacity:.35}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container .progress-step-item .progress-step-ball.progress-step-complete{background-color:var(--green);background-image:url(/assets/images/Icon_Check.png);border:none;opacity:1}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container .progress-step-item .progress-step-ball.step-in-progress{opacity:.35}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container .progress-step-item .spinner{display:inline-block;width:2rem;height:2rem;border-radius:50%;background:transparent;border-top:.25rem solid var(--stroke);border-right:.25rem solid var(--stroke);border-bottom:.25rem solid transparent;border-left:.25rem solid transparent;animation:loading .5s infinite linear;margin-left:-.125rem;margin-top:-.125rem;position:absolute}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container .progress-step-item .progress-step-label{height:1.25rem;font-size:.9375rem;margin-top:.3125rem;display:flex;align-items:center;justify-content:center;position:absolute;top:3.4375rem;color:var(--tableText);text-align:center;width:9.5rem;font-weight:600;opacity:.5}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container .progress-step-item .progress-step-label.step-in-progress{opacity:1}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container .progress-step-bar{background-color:var(--placeholder);border:none;width:16.2rem;height:.5rem;opacity:.35}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container .progress-step-bar.progress-step-complete{background-color:var(--green);opacity:1}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container .progress-step-bar.step-in-progress{opacity:1}\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"] }] }); }
|
|
27742
|
+
}
|
|
27743
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProgressMeterComponent, decorators: [{
|
|
27744
|
+
type: Component,
|
|
27745
|
+
args: [{ selector: 'lib-progress-meter', template: "<div class=\"progress-meter-wrapper\">\n <div class=\"progress-meter-container\">\n <div\n *ngFor=\"let step of steps; let index = index\"\n [ngClass]=\"{ 'last-step': index === steps.length - 1 }\"\n class=\"progress-meter-step-container\"\n >\n <div class=\"progress-step-item\" [ngClass]=\"{'in-progress': currentStepIndex === step.index}\">\n <div class=\"progress-step-ball\" [ngClass]=\"{'progress-step-complete': step.state === 'COMPLETE', 'step-in-progress': step.state === 'IN_PROGRESS'}\">\n </div>\n <div *ngIf=\"step.state === 'IN_PROGRESS'\" class=\"spinner\"></div>\n <div class=\"progress-step-label\" [ngClass]=\"{'step-in-progress': step.state === 'IN_PROGRESS'}\">{{ step.label }}</div>\n </div>\n <div *ngIf=\"index !== steps.length - 1\">\n <div class=\"progress-step-bar\"\n [ngClass]=\"{\n 'progress-step-complete': getProgressBarStyle(index),\n 'step-in-progress': currentStepIndex === index + 1\n }\"\n >\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [".progress-meter-wrapper{display:flex;align-items:flex-start;font-size:1rem;gap:1rem;width:100%;height:6rem}.progress-meter-wrapper .progress-meter-container{display:flex;flex-direction:row;align-items:center;justify-content:center;position:relative;width:100%;height:3.4375rem;z-index:999999999}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container{display:flex;flex-direction:row;align-items:center;justify-content:center;width:18rem;height:100%}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container.last-step{width:1.875rem}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container .progress-step-item{display:flex;flex-direction:row;align-items:center;justify-content:center;height:100%;width:1.875rem}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container .progress-step-item .progress-step-ball{width:1.875rem;height:1.875rem;border-radius:1.875rem;border:none;background-size:45%;background-position:center center;background-color:var(--placeholder);opacity:.35}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container .progress-step-item .progress-step-ball.progress-step-complete{background-color:var(--green);background-image:url(/assets/images/Icon_Check.png);border:none;opacity:1}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container .progress-step-item .progress-step-ball.step-in-progress{opacity:.35}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container .progress-step-item .spinner{display:inline-block;width:2rem;height:2rem;border-radius:50%;background:transparent;border-top:.25rem solid var(--stroke);border-right:.25rem solid var(--stroke);border-bottom:.25rem solid transparent;border-left:.25rem solid transparent;animation:loading .5s infinite linear;margin-left:-.125rem;margin-top:-.125rem;position:absolute}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container .progress-step-item .progress-step-label{height:1.25rem;font-size:.9375rem;margin-top:.3125rem;display:flex;align-items:center;justify-content:center;position:absolute;top:3.4375rem;color:var(--tableText);text-align:center;width:9.5rem;font-weight:600;opacity:.5}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container .progress-step-item .progress-step-label.step-in-progress{opacity:1}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container .progress-step-bar{background-color:var(--placeholder);border:none;width:16.2rem;height:.5rem;opacity:.35}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container .progress-step-bar.progress-step-complete{background-color:var(--green);opacity:1}.progress-meter-wrapper .progress-meter-container .progress-meter-step-container .progress-step-bar.step-in-progress{opacity:1}\n"] }]
|
|
27746
|
+
}], ctorParameters: function () { return []; }, propDecorators: { title: [{
|
|
27747
|
+
type: Input
|
|
27748
|
+
}], steps: [{
|
|
27749
|
+
type: Input
|
|
27750
|
+
}], currentStepIndex: [{
|
|
27751
|
+
type: Input
|
|
27752
|
+
}], currentStepChange: [{
|
|
27753
|
+
type: Output
|
|
27754
|
+
}] } });
|
|
27755
|
+
|
|
27756
|
+
class ProgressWizardStep {
|
|
27757
|
+
constructor() {
|
|
27758
|
+
this.index = 0;
|
|
27759
|
+
this.label = '';
|
|
27760
|
+
}
|
|
27761
|
+
}
|
|
27762
|
+
;
|
|
27763
|
+
class ProgressWizardComponent {
|
|
27764
|
+
constructor() {
|
|
27765
|
+
this.errors = {};
|
|
27766
|
+
this.title = '';
|
|
27767
|
+
this.steps = [];
|
|
27768
|
+
this.backButtonLabel = 'Back';
|
|
27769
|
+
this.nextButtonLabel = 'Next';
|
|
27770
|
+
this.nextButtonDisabled = false;
|
|
27771
|
+
this.titleImageSrc = '';
|
|
27772
|
+
this.showCloseButton = true;
|
|
27773
|
+
this.currentStepIndex = 0;
|
|
27774
|
+
this.currentStepIndexChange = new EventEmitter;
|
|
27775
|
+
this.close = new EventEmitter;
|
|
27776
|
+
this.done = new EventEmitter;
|
|
27777
|
+
this.stepChanged = new EventEmitter;
|
|
27778
|
+
}
|
|
27779
|
+
cancel() {
|
|
27780
|
+
this.close.emit();
|
|
27781
|
+
}
|
|
27782
|
+
confirm() {
|
|
27783
|
+
this.close.emit();
|
|
27784
|
+
}
|
|
27785
|
+
nextStep() {
|
|
27786
|
+
if (this.currentStepIndex >= (this.steps.length - 1)) {
|
|
27787
|
+
this.done.emit();
|
|
27788
|
+
return;
|
|
27789
|
+
}
|
|
27790
|
+
this.currentStepIndex++;
|
|
27791
|
+
this.currentStepIndexChange.emit(this.currentStepIndex);
|
|
27792
|
+
this.stepChanged.emit(this.steps[this.currentStepIndex]);
|
|
27793
|
+
}
|
|
27794
|
+
goToStep(stepNum) {
|
|
27795
|
+
this.currentStepIndex = stepNum.index;
|
|
27796
|
+
this.currentStepIndexChange.emit(this.currentStepIndex);
|
|
27797
|
+
this.stepChanged.emit(this.steps[this.currentStepIndex]);
|
|
27798
|
+
}
|
|
27799
|
+
prevStep() {
|
|
27800
|
+
this.currentStepIndex--;
|
|
27801
|
+
this.currentStepIndexChange.emit(this.currentStepIndex);
|
|
27802
|
+
this.stepChanged.emit(this.steps[this.currentStepIndex]);
|
|
27803
|
+
}
|
|
27804
|
+
get progressTrackHeight() {
|
|
27805
|
+
const heightfactor = 8.333;
|
|
27806
|
+
const trackNumber = ((this.steps ? this.steps.length : 1) - 1);
|
|
27807
|
+
const trackHeight = heightfactor * trackNumber;
|
|
27808
|
+
return trackHeight + 'rem';
|
|
27809
|
+
}
|
|
27810
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProgressWizardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27811
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ProgressWizardComponent, selector: "lib-progress-wizard", inputs: { title: "title", steps: "steps", backButtonLabel: "backButtonLabel", nextButtonLabel: "nextButtonLabel", nextButtonDisabled: "nextButtonDisabled", titleImageSrc: "titleImageSrc", showCloseButton: "showCloseButton", currentStepIndex: "currentStepIndex" }, outputs: { currentStepIndexChange: "currentStepIndexChange", close: "close", done: "done", stepChanged: "stepChanged" }, ngImport: i0, template: "<div class=\"progress-wizard-wrapper\">\n <div class=\"progress-wizard-container\">\n <div *ngIf=\"showCloseButton\" (click)=\"cancel()\" class=\"close cancel\"></div>\n <div class=\"side-progress-bar\">\n <div class=\"progress-steps\">\n <div class=\"progress-track\" style=\"height: {{progressTrackHeight}}\"></div>\n <div *ngFor=\"let step of steps\" class=\"progress-step\" [ngClass]=\"{'step-active': step.index === currentStepIndex}\" (click)=\"goToStep(step)\">\n <div class=\"progress-step-number\">{{step.index}}</div>\n <div class=\"progress-step-number-background\"></div>\n <div class=\"progress-step-label\">{{step.label}}</div>\n </div>\n </div>\n </div>\n <div>\n <div class=\"center-content-container\">\n <div class=\"center-content\">\n <div class=\"header-title-container\" style=\"display: flex; flex-direction: row; gap: var(--gapSmall);align-items: center;\">\n <div class=\"header-title-image\" style=\"background-image: url({{titleImageSrc}});\"></div>\n <div class=\"header-title-container\">\n <div class=\"header-title\">{{title}}</div>\n </div>\n </div>\n <form name=\"form\" class=\"step-content-form\">\n <div class=\"step-content-wrapper\">\n <ng-content></ng-content>\n </div>\n <div class=\"buttons-container\">\n <div *ngIf=\"currentStepIndex === 0\">\n </div>\n <button *ngIf=\"currentStepIndex > 0\" name=\"action\" type=\"submit\" class=\"btn-primary\" (click)=\"prevStep()\">\n {{backButtonLabel}}\n </button>\n <button name=\"action\" type=\"submit\" class=\"btn-primary\" (click)=\"nextStep()\" [disabled]=\"nextButtonDisabled\">\n {{nextButtonLabel}}\n </button>\n </div>\n </form>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [".progress-wizard-wrapper{width:-moz-fit-content;width:fit-content;height:-moz-fit-content;height:fit-content;box-shadow:-1px 1rem 1.5625rem #0003}.progress-wizard-wrapper .progress-wizard-container{width:-moz-fit-content;width:fit-content;height:-moz-fit-content;height:fit-content;display:flex;flex-direction:row;position:relative}.progress-wizard-wrapper .progress-wizard-container .center-content-container{-webkit-backdrop-filter:saturate(180%) blur(1.25rem);backdrop-filter:saturate(180%) blur(1.25rem);background-color:#eceef2;padding:2.1875rem;border-radius:.5rem;box-shadow:0 0 1.5625rem #0003;display:flex;flex-direction:column;height:100%;max-width:52rem}.progress-wizard-wrapper .progress-wizard-container .center-content-container .center-content{display:flex;flex-direction:column;height:100%}.header-title{color:var(--primaryColor)!important;filter:brightness(var(--brightnessDark));opacity:1;font-family:Russo One,Arial,sans-serif;font-size:2.35rem!important;line-height:unset;font-weight:400!important;margin:0!important;text-align:center;height:100%}.header-title-container{display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;overflow:visible}.step-content-container{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;margin-top:var(--marginXL);padding:0!important;width:100%}.step-content-container .step-label-text{text-transform:none;font-size:1.125rem;width:100%;margin-bottom:var(--marginSmall);font-weight:600}.step-content-container .step-label-text.list-instructions{font-size:1rem;font-weight:600}.header-title-image{background-image:url(/assets/svgs/zlan-logo.svg);background-size:4.25rem;height:4.25rem;width:4.25rem}.buttons-container{display:flex;flex-direction:row;justify-content:space-between;align-items:center;margin-top:var(--marginXXL)}.buttons-container button{box-shadow:0 .1875rem .5625rem 0 var(--primaryColorOpaque)!important;color:#fff!important;line-height:2.5rem!important;height:3.125rem!important;border:none!important;vertical-align:middle!important;text-align:center!important;position:relative!important;z-index:1!important;display:inline-block!important;padding:0rem;margin-top:1.5625rem!important;transition:color .2s!important;font-size:.875rem!important;font-weight:600!important;font-family:Open Sans!important;text-transform:uppercase!important;border-radius:.5rem!important;min-width:10rem;background:var(--primaryColor)!important;cursor:pointer}.buttons-container button:hover{outline:0!important;box-shadow:0 .3125rem 1.25rem #0000000d!important}.buttons-container button:active{filter:brightness(95%)!important;box-shadow:none!important;transform:translateY(1px)!important}.buttons-container button.btn-primary{position:relative;width:10rem;margin-top:0!important}.buttons-container button.btn-primary:disabled{filter:grayscale(1);opacity:.5;pointer-events:none}.buttons-container .saving-button,.buttons-container .saving-button:hover{filter:grayscale(1)!important;opacity:.5!important}.side-progress-bar{display:flex;flex-direction:row;width:20rem;margin-right:-1rem;position:relative;border-top-left-radius:.5rem;border-bottom-left-radius:.5rem;background-color:#eceef2f4;align-items:flex-start}.side-progress-bar .progress-steps{display:flex;flex-direction:column;height:100%;width:100%;justify-content:flex-start;align-items:flex-start;gap:5.5rem;cursor:pointer;padding:var(--paddingXXL) 0}.side-progress-bar .progress-steps .progress-track{position:absolute;width:.175rem;background-color:var(--stroke);left:2.175rem;height:23rem;opacity:.4}.side-progress-bar .progress-steps .progress-step{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;width:100%;height:2.5rem;filter:grayscale(1)}.side-progress-bar .progress-steps .progress-step.step-active{filter:none}.side-progress-bar .progress-steps .progress-step.step-active .progress-step-number{opacity:1;box-shadow:1px 0 .8rem #0003}.side-progress-bar .progress-steps .progress-step.step-active .progress-step-label{opacity:1}.side-progress-bar .progress-steps .progress-step-number{width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;font-size:1.125rem;font-weight:600;background-color:var(--primary);border-style:solid;border-radius:2rem;border-color:#fff;color:var(--white);margin-left:1rem;border-width:.25rem;z-index:999999;opacity:.4}.side-progress-bar .progress-steps .progress-step-label{font-size:1.125rem;font-weight:600;margin-left:var(--marginSmall);opacity:.4}.side-progress-bar .progress-steps .progress-step-number-background{position:absolute;width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;font-size:1.125rem;font-weight:600;background-color:#eceef2;border-style:solid;border-radius:2rem;border-color:#fff;color:var(--white);margin-left:1rem;border-width:.25rem;z-index:999}.step-content-form{display:flex;flex-direction:column;background-color:transparent;font-family:Open Sans;height:100%}.step-content-form .step-content-wrapper{height:100%;display:flex;flex-direction:column;justify-content:center}\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.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] }); }
|
|
27812
|
+
}
|
|
27813
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProgressWizardComponent, decorators: [{
|
|
27814
|
+
type: Component,
|
|
27815
|
+
args: [{ selector: 'lib-progress-wizard', template: "<div class=\"progress-wizard-wrapper\">\n <div class=\"progress-wizard-container\">\n <div *ngIf=\"showCloseButton\" (click)=\"cancel()\" class=\"close cancel\"></div>\n <div class=\"side-progress-bar\">\n <div class=\"progress-steps\">\n <div class=\"progress-track\" style=\"height: {{progressTrackHeight}}\"></div>\n <div *ngFor=\"let step of steps\" class=\"progress-step\" [ngClass]=\"{'step-active': step.index === currentStepIndex}\" (click)=\"goToStep(step)\">\n <div class=\"progress-step-number\">{{step.index}}</div>\n <div class=\"progress-step-number-background\"></div>\n <div class=\"progress-step-label\">{{step.label}}</div>\n </div>\n </div>\n </div>\n <div>\n <div class=\"center-content-container\">\n <div class=\"center-content\">\n <div class=\"header-title-container\" style=\"display: flex; flex-direction: row; gap: var(--gapSmall);align-items: center;\">\n <div class=\"header-title-image\" style=\"background-image: url({{titleImageSrc}});\"></div>\n <div class=\"header-title-container\">\n <div class=\"header-title\">{{title}}</div>\n </div>\n </div>\n <form name=\"form\" class=\"step-content-form\">\n <div class=\"step-content-wrapper\">\n <ng-content></ng-content>\n </div>\n <div class=\"buttons-container\">\n <div *ngIf=\"currentStepIndex === 0\">\n </div>\n <button *ngIf=\"currentStepIndex > 0\" name=\"action\" type=\"submit\" class=\"btn-primary\" (click)=\"prevStep()\">\n {{backButtonLabel}}\n </button>\n <button name=\"action\" type=\"submit\" class=\"btn-primary\" (click)=\"nextStep()\" [disabled]=\"nextButtonDisabled\">\n {{nextButtonLabel}}\n </button>\n </div>\n </form>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [".progress-wizard-wrapper{width:-moz-fit-content;width:fit-content;height:-moz-fit-content;height:fit-content;box-shadow:-1px 1rem 1.5625rem #0003}.progress-wizard-wrapper .progress-wizard-container{width:-moz-fit-content;width:fit-content;height:-moz-fit-content;height:fit-content;display:flex;flex-direction:row;position:relative}.progress-wizard-wrapper .progress-wizard-container .center-content-container{-webkit-backdrop-filter:saturate(180%) blur(1.25rem);backdrop-filter:saturate(180%) blur(1.25rem);background-color:#eceef2;padding:2.1875rem;border-radius:.5rem;box-shadow:0 0 1.5625rem #0003;display:flex;flex-direction:column;height:100%;max-width:52rem}.progress-wizard-wrapper .progress-wizard-container .center-content-container .center-content{display:flex;flex-direction:column;height:100%}.header-title{color:var(--primaryColor)!important;filter:brightness(var(--brightnessDark));opacity:1;font-family:Russo One,Arial,sans-serif;font-size:2.35rem!important;line-height:unset;font-weight:400!important;margin:0!important;text-align:center;height:100%}.header-title-container{display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;overflow:visible}.step-content-container{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;margin-top:var(--marginXL);padding:0!important;width:100%}.step-content-container .step-label-text{text-transform:none;font-size:1.125rem;width:100%;margin-bottom:var(--marginSmall);font-weight:600}.step-content-container .step-label-text.list-instructions{font-size:1rem;font-weight:600}.header-title-image{background-image:url(/assets/svgs/zlan-logo.svg);background-size:4.25rem;height:4.25rem;width:4.25rem}.buttons-container{display:flex;flex-direction:row;justify-content:space-between;align-items:center;margin-top:var(--marginXXL)}.buttons-container button{box-shadow:0 .1875rem .5625rem 0 var(--primaryColorOpaque)!important;color:#fff!important;line-height:2.5rem!important;height:3.125rem!important;border:none!important;vertical-align:middle!important;text-align:center!important;position:relative!important;z-index:1!important;display:inline-block!important;padding:0rem;margin-top:1.5625rem!important;transition:color .2s!important;font-size:.875rem!important;font-weight:600!important;font-family:Open Sans!important;text-transform:uppercase!important;border-radius:.5rem!important;min-width:10rem;background:var(--primaryColor)!important;cursor:pointer}.buttons-container button:hover{outline:0!important;box-shadow:0 .3125rem 1.25rem #0000000d!important}.buttons-container button:active{filter:brightness(95%)!important;box-shadow:none!important;transform:translateY(1px)!important}.buttons-container button.btn-primary{position:relative;width:10rem;margin-top:0!important}.buttons-container button.btn-primary:disabled{filter:grayscale(1);opacity:.5;pointer-events:none}.buttons-container .saving-button,.buttons-container .saving-button:hover{filter:grayscale(1)!important;opacity:.5!important}.side-progress-bar{display:flex;flex-direction:row;width:20rem;margin-right:-1rem;position:relative;border-top-left-radius:.5rem;border-bottom-left-radius:.5rem;background-color:#eceef2f4;align-items:flex-start}.side-progress-bar .progress-steps{display:flex;flex-direction:column;height:100%;width:100%;justify-content:flex-start;align-items:flex-start;gap:5.5rem;cursor:pointer;padding:var(--paddingXXL) 0}.side-progress-bar .progress-steps .progress-track{position:absolute;width:.175rem;background-color:var(--stroke);left:2.175rem;height:23rem;opacity:.4}.side-progress-bar .progress-steps .progress-step{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;width:100%;height:2.5rem;filter:grayscale(1)}.side-progress-bar .progress-steps .progress-step.step-active{filter:none}.side-progress-bar .progress-steps .progress-step.step-active .progress-step-number{opacity:1;box-shadow:1px 0 .8rem #0003}.side-progress-bar .progress-steps .progress-step.step-active .progress-step-label{opacity:1}.side-progress-bar .progress-steps .progress-step-number{width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;font-size:1.125rem;font-weight:600;background-color:var(--primary);border-style:solid;border-radius:2rem;border-color:#fff;color:var(--white);margin-left:1rem;border-width:.25rem;z-index:999999;opacity:.4}.side-progress-bar .progress-steps .progress-step-label{font-size:1.125rem;font-weight:600;margin-left:var(--marginSmall);opacity:.4}.side-progress-bar .progress-steps .progress-step-number-background{position:absolute;width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;font-size:1.125rem;font-weight:600;background-color:#eceef2;border-style:solid;border-radius:2rem;border-color:#fff;color:var(--white);margin-left:1rem;border-width:.25rem;z-index:999}.step-content-form{display:flex;flex-direction:column;background-color:transparent;font-family:Open Sans;height:100%}.step-content-form .step-content-wrapper{height:100%;display:flex;flex-direction:column;justify-content:center}\n"] }]
|
|
27816
|
+
}], ctorParameters: function () { return []; }, propDecorators: { title: [{
|
|
27817
|
+
type: Input
|
|
27818
|
+
}], steps: [{
|
|
27819
|
+
type: Input
|
|
27820
|
+
}], backButtonLabel: [{
|
|
27821
|
+
type: Input
|
|
27822
|
+
}], nextButtonLabel: [{
|
|
27823
|
+
type: Input
|
|
27824
|
+
}], nextButtonDisabled: [{
|
|
27825
|
+
type: Input
|
|
27826
|
+
}], titleImageSrc: [{
|
|
27827
|
+
type: Input
|
|
27828
|
+
}], showCloseButton: [{
|
|
27829
|
+
type: Input
|
|
27830
|
+
}], currentStepIndex: [{
|
|
27831
|
+
type: Input
|
|
27832
|
+
}], currentStepIndexChange: [{
|
|
27833
|
+
type: Output
|
|
27834
|
+
}], close: [{
|
|
27835
|
+
type: Output
|
|
27836
|
+
}], done: [{
|
|
27837
|
+
type: Output
|
|
27838
|
+
}], stepChanged: [{
|
|
27839
|
+
type: Output
|
|
27840
|
+
}] } });
|
|
27841
|
+
|
|
27671
27842
|
/*
|
|
27672
27843
|
Copyright NetFoundry Inc.
|
|
27673
27844
|
|
|
@@ -27780,7 +27951,9 @@ class OpenZitiConsoleLibModule {
|
|
|
27780
27951
|
SessionFormComponent,
|
|
27781
27952
|
APISessionsPageComponent,
|
|
27782
27953
|
APISessionFormComponent,
|
|
27783
|
-
CallbackComponent
|
|
27954
|
+
CallbackComponent,
|
|
27955
|
+
ProgressMeterComponent,
|
|
27956
|
+
ProgressWizardComponent], imports: [CommonModule,
|
|
27784
27957
|
FormsModule,
|
|
27785
27958
|
MatDialogModule,
|
|
27786
27959
|
MatRadioModule,
|
|
@@ -27845,7 +28018,11 @@ class OpenZitiConsoleLibModule {
|
|
|
27845
28018
|
APISessionFormComponent,
|
|
27846
28019
|
CallbackComponent,
|
|
27847
28020
|
FormHeaderComponent,
|
|
27848
|
-
JsonViewComponent
|
|
28021
|
+
JsonViewComponent,
|
|
28022
|
+
PreviewListComponent,
|
|
28023
|
+
TagSelectorComponent,
|
|
28024
|
+
ProgressMeterComponent,
|
|
28025
|
+
ProgressWizardComponent] }); }
|
|
27849
28026
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OpenZitiConsoleLibModule, providers: [
|
|
27850
28027
|
{ provide: SHAREDZ_EXTENSION, useClass: ExtensionsNoopService },
|
|
27851
28028
|
{ provide: ZITI_NAVIGATOR, useValue: {} },
|
|
@@ -27969,7 +28146,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
27969
28146
|
SessionFormComponent,
|
|
27970
28147
|
APISessionsPageComponent,
|
|
27971
28148
|
APISessionFormComponent,
|
|
27972
|
-
CallbackComponent
|
|
28149
|
+
CallbackComponent,
|
|
28150
|
+
ProgressMeterComponent,
|
|
28151
|
+
ProgressWizardComponent
|
|
27973
28152
|
],
|
|
27974
28153
|
imports: [
|
|
27975
28154
|
CommonModule,
|
|
@@ -28042,7 +28221,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
28042
28221
|
APISessionFormComponent,
|
|
28043
28222
|
CallbackComponent,
|
|
28044
28223
|
FormHeaderComponent,
|
|
28045
|
-
JsonViewComponent
|
|
28224
|
+
JsonViewComponent,
|
|
28225
|
+
PreviewListComponent,
|
|
28226
|
+
TagSelectorComponent,
|
|
28227
|
+
ProgressMeterComponent,
|
|
28228
|
+
ProgressWizardComponent
|
|
28046
28229
|
],
|
|
28047
28230
|
providers: [
|
|
28048
28231
|
{ provide: SHAREDZ_EXTENSION, useClass: ExtensionsNoopService },
|
|
@@ -28058,7 +28241,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
28058
28241
|
}] });
|
|
28059
28242
|
|
|
28060
28243
|
const VERSION = {
|
|
28061
|
-
"version": "3.12.
|
|
28244
|
+
"version": "3.12.5"
|
|
28062
28245
|
};
|
|
28063
28246
|
|
|
28064
28247
|
/*
|
|
@@ -29758,5 +29941,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
29758
29941
|
* Generated bundle index. Do not edit.
|
|
29759
29942
|
*/
|
|
29760
29943
|
|
|
29761
|
-
export { APISessionFormComponent, APISessionsPageComponent, ApiSessionsPageService, AuthPoliciesPageComponent, AuthPoliciesPageService, AuthPolicyFormComponent, AuthPolicyFormService, AuthService, BooleanToggleInputComponent, COMPONENTS, CallbackComponent, CardListComponent, CertificateAuthoritiesPageComponent, CertificateAuthoritiesPageService, CertificateAuthorityFormComponent, CertificateAuthorityFormService, CheckboxListInputComponent, ConfigTypeFormComponent, ConfigTypesPageComponent, ConfigurationFormComponent, ConfigurationService, ConfigurationsPageComponent, CsvDownloadService, DEACTIVATE_GUARD, DataTableFilterService, DeactivateGuardService, EDGE_ROUTER_EXTENSION_SERVICE, EDGE_ROUTER_POLICY_EXTENSION_SERVICE, EdgeRouter, EdgeRouterFormComponent, EdgeRouterFormService, EdgeRouterPoliciesPageComponent, EdgeRouterPoliciesPageService, EdgeRouterPolicyFormComponent, EdgeRouterPolicyFormService, EdgeRoutersPageComponent, EdgeRoutersPageService, Entity, ExtendableComponent, ExtensionsNoopService, FormFieldContainerComponent, FormFieldToggleComponent, FormHeaderComponent, GrowlerComponent, GrowlerModel, GrowlerModule, GrowlerService, IDENTITY_EXTENSION_SERVICE, IdentitiesPageComponent, IdentitiesPageService, Identity$1 as Identity, IdentityFormComponent, IdentityFormService, IdentityServicePathComponent, JsonViewComponent, JwtSignerFormComponent, JwtSignerFormService, JwtSignersPageComponent, JwtSignersPageService, KEY_CODES, ListPageComponent, ListPageServiceClass, LoadingIndicatorComponent, LoggerService, LoginDialogComponent, LoginServiceClass, NetworkVisualizerComponent, NodeDataService, NodeWrapperService, NoopLoginService, NoopTabInterceptorService, NumberInputComponent, ObjectComponent, OpenZitiConsoleLibModule, PasswordInputComponent, PostureCheckFormComponent, PostureChecksPageComponent, PostureChecksPageService, ProjectableForm, ProtocolAddressPortInputComponent, ResetEnrollmentService, SERVICE_EDGE_ROUTER_POLICY_EXTENSION_SERVICE, SERVICE_EXTENSION_SERVICE, SERVICE_POLICY_EXTENSION_SERVICE, SETTINGS_SERVICE, SHAREDZ_EXTENSION, SelectorInputComponent, ServiceEdgeRouterPoliciesPageComponent, ServiceEdgeRouterPoliciesPageService, ServiceEdgeRouterPolicyFormComponent, ServiceEdgeRouterPolicyFormService, ServiceFormComponent, ServiceFormService, ServicePoliciesPageComponent, ServicePoliciesPageService, ServicePolicyFormComponent, ServicePolicyFormService, ServicesPageComponent, ServicesPageService, Session, SessionFormComponent, SessionsPageComponent, SessionsPageService, SettingsService, SettingsServiceClass, SideBannerComponent, SideModalComponent, SideNavbarComponent, SideToolbarComponent, SimpleServiceComponent, StringInputComponent, TabNameService, TerminatorFormComponent, TerminatorFormService, TerminatorsPageComponent, TerminatorsPageService, TextListInputComponent, TransitRouterFormComponent, TransitRouterFormService, TransitRoutersPageComponent, TransitRoutersPageService, VERSION, ValidationService, VerifyCertificateComponent, VisualizerServiceClass, ZAC_LOGIN_SERVICE, ZAC_WRAPPER_SERVICE, ZITI_DATA_SERVICE, ZITI_DOMAIN_CONTROLLER, ZITI_NAVIGATOR, ZITI_TAB_OVERRIDES, ZITI_URLS, ZacRoutingModule, ZacWrapperComponent, ZacWrapperService, ZacWrapperServiceClass, ZitiControllerDataService, ZitiDataService, playerFactory };
|
|
29944
|
+
export { APISessionFormComponent, APISessionsPageComponent, ApiSessionsPageService, AuthPoliciesPageComponent, AuthPoliciesPageService, AuthPolicyFormComponent, AuthPolicyFormService, AuthService, BooleanToggleInputComponent, COMPONENTS, CallbackComponent, CardListComponent, CertificateAuthoritiesPageComponent, CertificateAuthoritiesPageService, CertificateAuthorityFormComponent, CertificateAuthorityFormService, CheckboxListInputComponent, ConfigTypeFormComponent, ConfigTypesPageComponent, ConfigurationFormComponent, ConfigurationService, ConfigurationsPageComponent, CsvDownloadService, DEACTIVATE_GUARD, DataTableFilterService, DeactivateGuardService, EDGE_ROUTER_EXTENSION_SERVICE, EDGE_ROUTER_POLICY_EXTENSION_SERVICE, EdgeRouter, EdgeRouterFormComponent, EdgeRouterFormService, EdgeRouterPoliciesPageComponent, EdgeRouterPoliciesPageService, EdgeRouterPolicyFormComponent, EdgeRouterPolicyFormService, EdgeRoutersPageComponent, EdgeRoutersPageService, Entity, ExtendableComponent, ExtensionsNoopService, FormFieldContainerComponent, FormFieldToggleComponent, FormHeaderComponent, GrowlerComponent, GrowlerModel, GrowlerModule, GrowlerService, IDENTITY_EXTENSION_SERVICE, IdentitiesPageComponent, IdentitiesPageService, Identity$1 as Identity, IdentityFormComponent, IdentityFormService, IdentityServicePathComponent, JsonViewComponent, JwtSignerFormComponent, JwtSignerFormService, JwtSignersPageComponent, JwtSignersPageService, KEY_CODES, ListPageComponent, ListPageServiceClass, LoadingIndicatorComponent, LoggerService, LoginDialogComponent, LoginServiceClass, NetworkVisualizerComponent, NodeDataService, NodeWrapperService, NoopLoginService, NoopTabInterceptorService, NumberInputComponent, ObjectComponent, OpenZitiConsoleLibModule, PasswordInputComponent, PostureCheckFormComponent, PostureChecksPageComponent, PostureChecksPageService, PreviewListComponent, ProgressMeterComponent, ProgressMeterStep, ProgressWizardComponent, ProgressWizardStep, ProjectableForm, ProtocolAddressPortInputComponent, ResetEnrollmentService, SERVICE_EDGE_ROUTER_POLICY_EXTENSION_SERVICE, SERVICE_EXTENSION_SERVICE, SERVICE_POLICY_EXTENSION_SERVICE, SETTINGS_SERVICE, SHAREDZ_EXTENSION, SelectorInputComponent, ServiceEdgeRouterPoliciesPageComponent, ServiceEdgeRouterPoliciesPageService, ServiceEdgeRouterPolicyFormComponent, ServiceEdgeRouterPolicyFormService, ServiceFormComponent, ServiceFormService, ServicePoliciesPageComponent, ServicePoliciesPageService, ServicePolicyFormComponent, ServicePolicyFormService, ServicesPageComponent, ServicesPageService, Session, SessionFormComponent, SessionsPageComponent, SessionsPageService, SettingsService, SettingsServiceClass, SideBannerComponent, SideModalComponent, SideNavbarComponent, SideToolbarComponent, SimpleServiceComponent, StringInputComponent, TabNameService, TagSelectorComponent, TerminatorFormComponent, TerminatorFormService, TerminatorsPageComponent, TerminatorsPageService, TextListInputComponent, TransitRouterFormComponent, TransitRouterFormService, TransitRoutersPageComponent, TransitRoutersPageService, VERSION, ValidationService, VerifyCertificateComponent, VisualizerServiceClass, ZAC_LOGIN_SERVICE, ZAC_WRAPPER_SERVICE, ZITI_DATA_SERVICE, ZITI_DOMAIN_CONTROLLER, ZITI_NAVIGATOR, ZITI_TAB_OVERRIDES, ZITI_URLS, ZacRoutingModule, ZacWrapperComponent, ZacWrapperService, ZacWrapperServiceClass, ZitiControllerDataService, ZitiDataService, playerFactory };
|
|
29762
29945
|
//# sourceMappingURL=openziti-ziti-console-lib.mjs.map
|