@alauda-fe/network 1.0.5 → 1.0.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.
Files changed (52) hide show
  1. package/esm2022/index.mjs +1 -15
  2. package/esm2022/lib/types/k8s-exports.mjs +24 -2
  3. package/index.d.ts +0 -14
  4. package/lib/types/k8s-exports.d.ts +152 -1
  5. package/package.json +1 -1
  6. package/styles.css +1 -1
  7. package/esm2022/lib/components/loadbalancer-spec-form/component.mjs +0 -251
  8. package/esm2022/lib/components/service-annotations-form/annotations.component.mjs +0 -675
  9. package/esm2022/lib/components/service-annotations-form-item/annotations.component.mjs +0 -105
  10. package/esm2022/lib/features/network-policy/components/add-peer-rule-handler/component.mjs +0 -69
  11. package/esm2022/lib/features/network-policy/components/ip-block-display/component.mjs +0 -54
  12. package/esm2022/lib/features/network-policy/components/label-selector-display/component.mjs +0 -117
  13. package/esm2022/lib/features/network-policy/components/peer-container/component.mjs +0 -81
  14. package/esm2022/lib/features/network-policy/components/pod-review/component.mjs +0 -250
  15. package/esm2022/lib/features/network-policy/components/rule-table/component.mjs +0 -269
  16. package/esm2022/lib/features/network-policy/form/network-policy/component.mjs +0 -429
  17. package/esm2022/lib/features/network-policy/form/network-policy-ip-block/component.mjs +0 -102
  18. package/esm2022/lib/features/network-policy/form/network-policy-peer/component.mjs +0 -247
  19. package/esm2022/lib/features/network-policy/form/network-policy-ports/component.mjs +0 -161
  20. package/esm2022/lib/features/network-policy/form/network-policy-remote-except-input/component.mjs +0 -128
  21. package/esm2022/lib/features/network-policy/form/network-policy-rule/component.mjs +0 -142
  22. package/esm2022/lib/services/alb-api.service.mjs +0 -68
  23. package/esm2022/lib/services/subnet-util.service.mjs +0 -118
  24. package/esm2022/lib/types/alb-exports.mjs +0 -14
  25. package/esm2022/lib/types/metallb-exports.mjs +0 -2
  26. package/esm2022/lib/utils/alb-exports.mjs +0 -108
  27. package/esm2022/lib/utils/alb-internals.mjs +0 -2
  28. package/esm2022/lib/utils/common-exports.mjs +0 -22
  29. package/esm2022/lib/utils/validators-exports.mjs +0 -44
  30. package/lib/components/loadbalancer-spec-form/component.d.ts +0 -34
  31. package/lib/components/service-annotations-form/annotations.component.d.ts +0 -74
  32. package/lib/components/service-annotations-form-item/annotations.component.d.ts +0 -14
  33. package/lib/features/network-policy/components/add-peer-rule-handler/component.d.ts +0 -8
  34. package/lib/features/network-policy/components/ip-block-display/component.d.ts +0 -7
  35. package/lib/features/network-policy/components/label-selector-display/component.d.ts +0 -13
  36. package/lib/features/network-policy/components/peer-container/component.d.ts +0 -18
  37. package/lib/features/network-policy/components/pod-review/component.d.ts +0 -37
  38. package/lib/features/network-policy/components/rule-table/component.d.ts +0 -21
  39. package/lib/features/network-policy/form/network-policy/component.d.ts +0 -70
  40. package/lib/features/network-policy/form/network-policy-ip-block/component.d.ts +0 -23
  41. package/lib/features/network-policy/form/network-policy-peer/component.d.ts +0 -43
  42. package/lib/features/network-policy/form/network-policy-ports/component.d.ts +0 -17
  43. package/lib/features/network-policy/form/network-policy-remote-except-input/component.d.ts +0 -23
  44. package/lib/features/network-policy/form/network-policy-rule/component.d.ts +0 -28
  45. package/lib/services/alb-api.service.d.ts +0 -18
  46. package/lib/services/subnet-util.service.d.ts +0 -26
  47. package/lib/types/alb-exports.d.ts +0 -52
  48. package/lib/types/metallb-exports.d.ts +0 -65
  49. package/lib/utils/alb-exports.d.ts +0 -16
  50. package/lib/utils/alb-internals.d.ts +0 -10
  51. package/lib/utils/common-exports.d.ts +0 -5
  52. package/lib/utils/validators-exports.d.ts +0 -16
@@ -1,250 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { ButtonModule, DropdownDirective, IconModule, MenuComponent, TagModule, } from '@alauda/ui';
3
- import { K8S_UTIL_PIPES_MODULE, K8sApiService, K8sUtilService, LoadingMaskComponent, ObservableInput, RESOURCE_TYPES, TRANSLATE_MODULE, publishRef, skipError, } from '@alauda-fe/common';
4
- import { CommonModule, JsonPipe } from '@angular/common';
5
- import { HttpClient } from '@angular/common/http';
6
- import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
7
- import { isEmpty } from 'lodash-es';
8
- import { Observable, catchError, combineLatest, from, map, mergeMap, of, reduce, switchMap, tap, } from 'rxjs';
9
- import { matchLabelsToString } from '../label-selector-display/component';
10
- import * as i0 from "@angular/core";
11
- import * as i1 from "@alauda-fe/common";
12
- import * as i2 from "@angular/common/http";
13
- import * as i3 from "@angular/common";
14
- import * as i4 from "@alauda/ui";
15
- function PodPreviewComponent_ng_template_6_div_0_ul_3_li_1_li_8_Template(rf, ctx) { if (rf & 1) {
16
- i0.ɵɵelementStart(0, "li", 19)(1, "aui-tag", 20);
17
- i0.ɵɵtext(2);
18
- i0.ɵɵelementEnd();
19
- i0.ɵɵelementStart(3, "span");
20
- i0.ɵɵtext(4);
21
- i0.ɵɵpipe(5, "aclName");
22
- i0.ɵɵelementEnd()();
23
- } if (rf & 2) {
24
- const pod_r5 = ctx.$implicit;
25
- i0.ɵɵadvance();
26
- i0.ɵɵproperty("border", true);
27
- i0.ɵɵadvance();
28
- i0.ɵɵtextInterpolate("Pod");
29
- i0.ɵɵadvance(2);
30
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 3, pod_r5));
31
- } }
32
- function PodPreviewComponent_ng_template_6_div_0_ul_3_li_1_Template(rf, ctx) { if (rf & 1) {
33
- const _r2 = i0.ɵɵgetCurrentView();
34
- i0.ɵɵelementStart(0, "li", 12)(1, "div", 13)(2, "aui-icon", 14);
35
- i0.ɵɵlistener("click", function PodPreviewComponent_ng_template_6_div_0_ul_3_li_1_Template_aui_icon_click_2_listener() { const group_r3 = i0.ɵɵrestoreView(_r2).$implicit; const ctx_r3 = i0.ɵɵnextContext(4); return i0.ɵɵresetView((ctx_r3.podMapExpandState[group_r3.key] = !ctx_r3.podMapExpandState[group_r3.key])); });
36
- i0.ɵɵelementEnd();
37
- i0.ɵɵelementStart(3, "aui-tag", 15);
38
- i0.ɵɵtext(4);
39
- i0.ɵɵelementEnd();
40
- i0.ɵɵelementStart(5, "span", 16);
41
- i0.ɵɵtext(6);
42
- i0.ɵɵelementEnd()();
43
- i0.ɵɵelementStart(7, "ul", 17);
44
- i0.ɵɵtemplate(8, PodPreviewComponent_ng_template_6_div_0_ul_3_li_1_li_8_Template, 6, 5, "li", 18);
45
- i0.ɵɵelementEnd()();
46
- } if (rf & 2) {
47
- const group_r3 = ctx.$implicit;
48
- const ctx_r3 = i0.ɵɵnextContext(4);
49
- i0.ɵɵadvance(2);
50
- i0.ɵɵproperty("icon", ctx_r3.podMapExpandState[group_r3.key] ? "angle_down" : "angle_right");
51
- i0.ɵɵadvance();
52
- i0.ɵɵproperty("border", true);
53
- i0.ɵɵadvance();
54
- i0.ɵɵtextInterpolate("NS");
55
- i0.ɵɵadvance(2);
56
- i0.ɵɵtextInterpolate(group_r3.key);
57
- i0.ɵɵadvance();
58
- i0.ɵɵproperty("hidden", !ctx_r3.podMapExpandState[group_r3.key]);
59
- i0.ɵɵadvance();
60
- i0.ɵɵproperty("ngForOf", group_r3.value);
61
- } }
62
- function PodPreviewComponent_ng_template_6_div_0_ul_3_Template(rf, ctx) { if (rf & 1) {
63
- const _r1 = i0.ɵɵgetCurrentView();
64
- i0.ɵɵelementStart(0, "ul", 10);
65
- i0.ɵɵlistener("click", function PodPreviewComponent_ng_template_6_div_0_ul_3_Template_ul_click_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView($event.stopPropagation()); });
66
- i0.ɵɵtemplate(1, PodPreviewComponent_ng_template_6_div_0_ul_3_li_1_Template, 9, 6, "li", 11);
67
- i0.ɵɵpipe(2, "keyvalue");
68
- i0.ɵɵelementEnd();
69
- } if (rf & 2) {
70
- const podMap_r6 = i0.ɵɵnextContext().ngIf;
71
- i0.ɵɵadvance();
72
- i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(2, 1, podMap_r6));
73
- } }
74
- function PodPreviewComponent_ng_template_6_div_0_Template(rf, ctx) { if (rf & 1) {
75
- i0.ɵɵelementStart(0, "div", 6)(1, "aui-menu", 7)(2, "div", 8);
76
- i0.ɵɵtemplate(3, PodPreviewComponent_ng_template_6_div_0_ul_3_Template, 3, 3, "ul", 9);
77
- i0.ɵɵelementEnd()()();
78
- } if (rf & 2) {
79
- const podMap_r6 = ctx.ngIf;
80
- const ctx_r3 = i0.ɵɵnextContext(2);
81
- const empty_r7 = i0.ɵɵreference(11);
82
- i0.ɵɵadvance(3);
83
- i0.ɵɵproperty("ngIf", !ctx_r3.isEmpty(podMap_r6))("ngIfElse", empty_r7);
84
- } }
85
- function PodPreviewComponent_ng_template_6_Template(rf, ctx) { if (rf & 1) {
86
- i0.ɵɵtemplate(0, PodPreviewComponent_ng_template_6_div_0_Template, 4, 2, "div", 5);
87
- i0.ɵɵpipe(1, "async");
88
- } if (rf & 2) {
89
- const ctx_r3 = i0.ɵɵnextContext();
90
- const loading_r8 = i0.ɵɵreference(9);
91
- i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(1, 2, ctx_r3.podMap$))("ngIfElse", loading_r8);
92
- } }
93
- function PodPreviewComponent_ng_template_8_Template(rf, ctx) { if (rf & 1) {
94
- i0.ɵɵelementStart(0, "aui-menu", 7);
95
- i0.ɵɵelement(1, "acl-loading-mask", 21);
96
- i0.ɵɵelementEnd();
97
- } if (rf & 2) {
98
- i0.ɵɵadvance();
99
- i0.ɵɵproperty("loading", true);
100
- } }
101
- function PodPreviewComponent_ng_template_10_Template(rf, ctx) { if (rf & 1) {
102
- i0.ɵɵelementStart(0, "span", 22);
103
- i0.ɵɵtext(1);
104
- i0.ɵɵpipe(2, "translate");
105
- i0.ɵɵelementEnd();
106
- } if (rf & 2) {
107
- const ctx_r3 = i0.ɵɵnextContext();
108
- i0.ɵɵadvance();
109
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, ctx_r3.baseParams.namespace ? "network.no_ns_pod_selector_tip" : "network.no_cluster_pod_selector_tip"));
110
- } }
111
- export class PodPreviewComponent {
112
- constructor(k8sApi, k8sUtil, http) {
113
- this.k8sApi = k8sApi;
114
- this.k8sUtil = k8sUtil;
115
- this.http = http;
116
- this.podMapExpandState = {};
117
- this.isEmpty = isEmpty;
118
- this.projects$ = this.baseParams$.pipe(switchMap(({ cluster }) => this.getClusterProjects(cluster)), publishRef());
119
- this.namespaces$ = combineLatest([
120
- this.baseParams$,
121
- this.projects$,
122
- ]).pipe(switchMap(([{ cluster }, projects]) => from(projects).pipe(mergeMap(project => this.getClusterNamespaces(this.k8sUtil.getName(project), cluster, matchLabelsToString(this.namespaceLabelSelector || {}))), reduce((acc, val) => acc.concat(val), []))), skipError([]), publishRef());
123
- this.pods$ = this.baseParams$.pipe(switchMap(({ cluster, namespace }) => this.getPods(cluster, namespace)), catchError(error => {
124
- // 无权限时通过有权限 nsList 获取对应 pods
125
- if (error.code === 403) {
126
- return combineLatest([this.namespaces$, this.baseParams$]).pipe(switchMap(([namespaces, { cluster }]) => namespaces.length
127
- ? from(namespaces).pipe(mergeMap(ns => this.getPods(cluster, this.k8sUtil.getName(ns))), reduce((acc, val) => acc.concat(val), []))
128
- : of([])));
129
- }
130
- }), publishRef());
131
- this.podMap$ = this.baseParams$.pipe(switchMap(({ namespace }) => {
132
- return combineLatest([
133
- this.pods$,
134
- namespace ? of([]) : this.namespaces$,
135
- ]).pipe(map(([pods, namespaces]) => {
136
- if (!pods.length) {
137
- return {};
138
- }
139
- if (!namespace) {
140
- return namespaces.reduce((prev, acc) => {
141
- const namespace = this.k8sUtil.getName(acc);
142
- const ownerPods = pods.filter(pod => this.k8sUtil.getNamespace(pod) === namespace);
143
- if (ownerPods.length) {
144
- prev[namespace] = ownerPods;
145
- }
146
- return prev;
147
- }, {});
148
- }
149
- const namespaceName = this.k8sUtil.getNamespace(pods[0]);
150
- return {
151
- [namespaceName]: pods,
152
- };
153
- }), tap(podMap => {
154
- Object.keys(podMap).forEach(key => {
155
- this.podMapExpandState[key] = true;
156
- });
157
- }), skipError({}));
158
- }));
159
- }
160
- getPods(cluster, namespace) {
161
- const labelSelectorText = matchLabelsToString(this.podLabelSelector || {});
162
- return this.k8sApi
163
- .getResourceList({
164
- type: RESOURCE_TYPES.POD,
165
- cluster,
166
- ...(namespace ? { namespace } : null),
167
- queryParams: {
168
- ...(labelSelectorText && {
169
- labelSelector: labelSelectorText,
170
- }),
171
- limit: '0',
172
- },
173
- })
174
- .pipe(map(res => res.items));
175
- }
176
- getClusterNamespaces(project, cluster, labelSelectorsText) {
177
- return this.http
178
- .get(`{{API_GATEWAY}}/auth/v1/projects/${project}/clusters/${cluster}/namespaces`, {
179
- params: {
180
- ...(labelSelectorsText && {
181
- labelSelector: labelSelectorsText,
182
- }),
183
- },
184
- })
185
- .pipe(map(res => res.items), skipError([]));
186
- }
187
- getClusterProjects(clusterName) {
188
- return this.http
189
- .get(`{{API_GATEWAY}}/auth/v1/projects/`, {
190
- params: {
191
- limit: '0',
192
- },
193
- })
194
- .pipe(map(res => res.items.filter(project => project.spec?.clusters?.some(cluster => cluster.name === clusterName))), skipError([]));
195
- }
196
- static { this.ɵfac = function PodPreviewComponent_Factory(t) { return new (t || PodPreviewComponent)(i0.ɵɵdirectiveInject(i1.K8sApiService), i0.ɵɵdirectiveInject(i1.K8sUtilService), i0.ɵɵdirectiveInject(i2.HttpClient)); }; }
197
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PodPreviewComponent, selectors: [["acl-pod-preview"]], inputs: { hint: "hint", podLabelSelector: "podLabelSelector", namespaceLabelSelector: "namespaceLabelSelector", baseParams: "baseParams" }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 12, vars: 5, consts: [["list", ""], ["loading", ""], ["empty", ""], [1, "tw-text-s", "tw-mr-4"], ["aui-button", "inline", "size", "mini", "type", "button", "auiDropdownPosition", "bottom start", 3, "auiDropdown"], ["class", "pod-menu", 4, "ngIf", "ngIfElse"], [1, "pod-menu"], ["size", "large"], [1, "tw-px-8", "tw-py-4"], ["class", "container", 3, "click", 4, "ngIf", "ngIfElse"], [1, "container", 3, "click"], ["class", "list-item", 4, "ngFor", "ngForOf"], [1, "list-item"], [1, "tw-flex"], ["margin", "right", 1, "tw-cursor-pointer", 3, "click", "icon"], ["type", "success", "size", "mini", 1, "tw-mr-8", 3, "border"], [1, "tw-break-all"], [1, "tw-ml-[34px]", "tw-mt-8", 3, "hidden"], ["class", "list-item tw-flex tw-break-all", 4, "ngFor", "ngForOf"], [1, "list-item", "tw-flex", "tw-break-all"], ["type", "primary", "size", "mini", 1, "tw-mr-8", 3, "border"], [3, "loading"], [1, "tw-text-n-4"]], template: function PodPreviewComponent_Template(rf, ctx) { if (rf & 1) {
198
- i0.ɵɵelementContainerStart(0);
199
- i0.ɵɵelementStart(1, "span", 3);
200
- i0.ɵɵtext(2);
201
- i0.ɵɵelementEnd();
202
- i0.ɵɵelementStart(3, "button", 4);
203
- i0.ɵɵtext(4);
204
- i0.ɵɵpipe(5, "translate");
205
- i0.ɵɵelementEnd();
206
- i0.ɵɵelementContainerEnd();
207
- i0.ɵɵtemplate(6, PodPreviewComponent_ng_template_6_Template, 2, 4, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor)(8, PodPreviewComponent_ng_template_8_Template, 2, 1, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor)(10, PodPreviewComponent_ng_template_10_Template, 3, 3, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
208
- } if (rf & 2) {
209
- const list_r9 = i0.ɵɵreference(7);
210
- i0.ɵɵadvance(2);
211
- i0.ɵɵtextInterpolate(ctx.hint);
212
- i0.ɵɵadvance();
213
- i0.ɵɵproperty("auiDropdown", list_r9);
214
- i0.ɵɵadvance();
215
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(5, 3, "network.preview"), " ");
216
- } }, dependencies: [CommonModule, i3.NgForOf, i3.NgIf, i3.AsyncPipe, i3.KeyValuePipe, i1.TranslatePipe, ButtonModule, i4.ButtonComponent, IconModule, i4.IconComponent, i1.K8sNamePipe, TagModule, i4.TagComponent, DropdownDirective,
217
- MenuComponent,
218
- LoadingMaskComponent], styles: [".pod-menu[_ngcontent-%COMP%] .aui-menu{max-width:400px}.pod-menu[_ngcontent-%COMP%] .acl-loading-mask{font-size:var(--aui-font-size-s)}.pod-menu[_ngcontent-%COMP%] .container[_ngcontent-%COMP%]{overflow-y:auto;max-height:400px}.pod-menu[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%]:not(:first-of-type){margin-top:8px}"], changeDetection: 0 }); }
219
- }
220
- __decorate([
221
- ObservableInput(),
222
- __metadata("design:type", Observable)
223
- ], PodPreviewComponent.prototype, "baseParams$", void 0);
224
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PodPreviewComponent, [{
225
- type: Component,
226
- args: [{ standalone: true, selector: 'acl-pod-preview', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
227
- CommonModule,
228
- TRANSLATE_MODULE,
229
- ButtonModule,
230
- IconModule,
231
- K8S_UTIL_PIPES_MODULE,
232
- TagModule,
233
- DropdownDirective,
234
- MenuComponent,
235
- LoadingMaskComponent,
236
- JsonPipe,
237
- ], template: "<ng-container>\n <span class=\"tw-text-s tw-mr-4\">{{ hint }}</span>\n <button\n aui-button=\"inline\"\n size=\"mini\"\n type=\"button\"\n [auiDropdown]=\"list\"\n auiDropdownPosition=\"bottom start\"\n >\n {{ 'network.preview' | translate }}\n </button>\n</ng-container>\n\n<ng-template #list>\n <div\n class=\"pod-menu\"\n *ngIf=\"podMap$ | async as podMap; else loading\"\n >\n <aui-menu size=\"large\">\n <div class=\"tw-px-8 tw-py-4\">\n <ul\n class=\"container\"\n *ngIf=\"!isEmpty(podMap); else empty\"\n (click)=\"$event.stopPropagation()\"\n >\n <li\n class=\"list-item\"\n *ngFor=\"let group of podMap | keyvalue\"\n >\n <div class=\"tw-flex\">\n <aui-icon\n [icon]=\"\n podMapExpandState[group.key] ? 'angle_down' : 'angle_right'\n \"\n class=\"tw-cursor-pointer\"\n margin=\"right\"\n (click)=\"\n podMapExpandState[group.key] = !podMapExpandState[group.key]\n \"\n ></aui-icon>\n <aui-tag\n type=\"success\"\n class=\"tw-mr-8\"\n size=\"mini\"\n [border]=\"true\"\n >{{ 'NS' }}</aui-tag\n >\n <span class=\"tw-break-all\">{{ group.key }}</span>\n </div>\n <ul\n class=\"tw-ml-[34px] tw-mt-8\"\n [hidden]=\"!podMapExpandState[group.key]\"\n >\n <li\n class=\"list-item tw-flex tw-break-all\"\n *ngFor=\"let pod of group.value\"\n >\n <aui-tag\n class=\"tw-mr-8\"\n type=\"primary\"\n [border]=\"true\"\n size=\"mini\"\n >{{ 'Pod' }}</aui-tag\n >\n <span>{{ pod | aclName }}</span>\n </li>\n </ul>\n </li>\n </ul>\n </div>\n </aui-menu>\n </div>\n</ng-template>\n\n<ng-template #loading>\n <aui-menu size=\"large\">\n <acl-loading-mask [loading]=\"true\"></acl-loading-mask>\n </aui-menu>\n</ng-template>\n\n<ng-template #empty>\n <span class=\"tw-text-n-4\">{{\n (baseParams.namespace\n ? 'network.no_ns_pod_selector_tip'\n : 'network.no_cluster_pod_selector_tip'\n ) | translate\n }}</span>\n</ng-template>\n", styles: [".pod-menu ::ng-deep .aui-menu{max-width:400px}.pod-menu ::ng-deep .acl-loading-mask{font-size:var(--aui-font-size-s)}.pod-menu .container{overflow-y:auto;max-height:400px}.pod-menu .list-item:not(:first-of-type){margin-top:8px}\n"] }]
238
- }], () => [{ type: i1.K8sApiService }, { type: i1.K8sUtilService }, { type: i2.HttpClient }], { hint: [{
239
- type: Input,
240
- args: [{ required: true }]
241
- }], podLabelSelector: [{
242
- type: Input
243
- }], namespaceLabelSelector: [{
244
- type: Input
245
- }], baseParams: [{
246
- type: Input,
247
- args: [{ required: true }]
248
- }], baseParams$: [] }); })();
249
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PodPreviewComponent, { className: "PodPreviewComponent", filePath: "lib/features/network-policy/components/pod-review/component.ts", lineNumber: 65 }); })();
250
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9uZXR3b3JrL3NyYy9saWIvZmVhdHVyZXMvbmV0d29yay1wb2xpY3kvY29tcG9uZW50cy9wb2QtcmV2aWV3L2NvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvbmV0d29yay9zcmMvbGliL2ZlYXR1cmVzL25ldHdvcmstcG9saWN5L2NvbXBvbmVudHMvcG9kLXJldmlldy90ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsWUFBWSxFQUNaLGlCQUFpQixFQUNqQixVQUFVLEVBQ1YsYUFBYSxFQUNiLFNBQVMsR0FDVixNQUFNLFlBQVksQ0FBQztBQUNwQixPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLGFBQWEsRUFDYixjQUFjLEVBRWQsb0JBQW9CLEVBRXBCLGVBQWUsRUFFZixjQUFjLEVBRWQsZ0JBQWdCLEVBRWhCLFVBQVUsRUFDVixTQUFTLEdBRVYsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFDTCxVQUFVLEVBQ1YsVUFBVSxFQUNWLGFBQWEsRUFDYixJQUFJLEVBQ0osR0FBRyxFQUNILFFBQVEsRUFDUixFQUFFLEVBQ0YsTUFBTSxFQUNOLFNBQVMsRUFDVCxHQUFHLEdBQ0osTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FB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YixvQkFBb0I7b0JBQ3BCLFFBQVE7aUJBQ1Q7b0dBSUQsSUFBSTtrQkFESCxLQUFLO21CQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtZQUl6QixnQkFBZ0I7a0JBRGYsS0FBSztZQUlOLHNCQUFzQjtrQkFEckIsS0FBSztZQUlOLFVBQVU7a0JBRFQsS0FBSzttQkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7WUFJekIsV0FBVztrRkFkQSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCdXR0b25Nb2R1bGUsXG4gIERyb3Bkb3duRGlyZWN0aXZlLFxuICBJY29uTW9kdWxlLFxuICBNZW51Q29tcG9uZW50LFxuICBUYWdNb2R1bGUsXG59IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHtcbiAgSzhTX1VUSUxfUElQRVNfTU9EVUxFLFxuICBLOHNBcGlTZXJ2aWNlLFxuICBLOHNVdGlsU2VydmljZSxcbiAgS3ViZXJuZXRlc1Jlc291cmNlTGlzdCxcbiAgTG9hZGluZ01hc2tDb21wb25lbnQsXG4gIE5hbWVzcGFjZSxcbiAgT2JzZXJ2YWJsZUlucHV0LFxuICBQb2QsXG4gIFJFU09VUkNFX1RZUEVTLFxuICBTdHJpbmdNYXAsXG4gIFRSQU5TTEFURV9NT0RVTEUsXG4gIFdvcmtzcGFjZVBhcmFtcyxcbiAgcHVibGlzaFJlZixcbiAgc2tpcEVycm9yLFxuICBQcm9qZWN0LFxufSBmcm9tICdAYWxhdWRhLWZlL2NvbW1vbic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIEpzb25QaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNFbXB0eSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQge1xuICBPYnNlcnZhYmxlLFxuICBjYXRjaEVycm9yLFxuICBjb21iaW5lTGF0ZXN0LFxuICBmcm9tLFxuICBtYXAsXG4gIG1lcmdlTWFwLFxuICBvZixcbiAgcmVkdWNlLFxuICBzd2l0Y2hNYXAsXG4gIHRhcCxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IG1hdGNoTGFiZWxzVG9TdHJpbmcgfSBmcm9tICcuLi9sYWJlbC1zZWxlY3Rvci1kaXNwbGF5L2NvbXBvbmVudCc7XG5cbnR5cGUgUG9kTWFwID0gUmVjb3JkPHN0cmluZywgUG9kW10+O1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdhY2wtcG9kLXByZXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJ3RlbXBsYXRlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdHlsZS5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFRSQU5TTEFURV9NT0RVTEUsXG4gICAgQnV0dG9uTW9kdWxlLFxuICAgIEljb25Nb2R1bGUsXG4gICAgSzhTX1VUSUxfUElQRVNfTU9EVUxFLFxuICAgIFRhZ01vZHVsZSxcbiAgICBEcm9wZG93bkRpcmVjdGl2ZSxcbiAgICBNZW51Q29tcG9uZW50LFxuICAgIExvYWRpbmdNYXNrQ29tcG9uZW50LFxuICAgIEpzb25QaXBlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBQb2RQcmV2aWV3Q29tcG9uZW50IHtcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgaGludDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHBvZExhYmVsU2VsZWN0b3I6IFN0cmluZ01hcDtcblxuICBASW5wdXQoKVxuICBuYW1lc3BhY2VMYWJlbFNlbGVjdG9yOiBTdHJpbmdNYXA7XG5cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgYmFzZVBhcmFtczogV29ya3NwYWNlUGFyYW1zO1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBiYXNlUGFyYW1zJCE6IE9ic2VydmFibGU8V29ya3NwYWNlUGFyYW1zPjtcblxuICBwb2RNYXBFeHBhbmRTdGF0ZTogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7fTtcbiAgaXNFbXB0eSA9IGlzRW1wdHk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBwcm9qZWN0cyQgPSB0aGlzLmJhc2VQYXJhbXMkLnBpcGUoXG4gICAgc3dpdGNoTWFwKCh7IGNsdXN0ZXIgfSkgPT4gdGhpcy5nZXRDbHVzdGVyUHJvamVjdHMoY2x1c3RlcikpLFxuICAgIHB1Ymxpc2hSZWYoKSxcbiAgKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IG5hbWVzcGFjZXMkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5iYXNlUGFyYW1zJCxcbiAgICB0aGlzLnByb2plY3RzJCxcbiAgXSkucGlwZShcbiAgICBzd2l0Y2hNYXAoKFt7IGNsdXN0ZXIgfSwgcHJvamVjdHNdKSA9PlxuICAgICAgZnJvbShwcm9qZWN0cykucGlwZShcbiAgICAgICAgbWVyZ2VNYXAocHJvamVjdCA9PlxuICAgICAgICAgIHRoaXMuZ2V0Q2x1c3Rlck5hbWVzcGFjZXMoXG4gICAgICAgICAgICB0aGlzLms4c1V0aWwuZ2V0TmFtZShwcm9qZWN0KSxcbiAgICAgICAgICAgIGNsdXN0ZXIsXG4gICAgICAgICAgICBtYXRjaExhYmVsc1RvU3RyaW5nKHRoaXMubmFtZXNwYWNlTGFiZWxTZWxlY3RvciB8fCB7fSksXG4gICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICAgICAgcmVkdWNlKChhY2MsIHZhbCkgPT4gYWNjLmNvbmNhdCh2YWwpLCBbXSBhcyBOYW1lc3BhY2VbXSksXG4gICAgICApLFxuICAgICksXG4gICAgc2tpcEVycm9yKFtdIGFzIE5hbWVzcGFjZVtdKSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBwb2RzJCA9IHRoaXMuYmFzZVBhcmFtcyQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHsgY2x1c3RlciwgbmFtZXNwYWNlIH0pID0+IHRoaXMuZ2V0UG9kcyhjbHVzdGVyLCBuYW1lc3BhY2UpKSxcbiAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgIC8vIOaXoOadg+mZkOaXtumAmui/h+acieadg+mZkCBuc0xpc3Qg6I635Y+W5a+55bqUIHBvZHNcbiAgICAgIGlmIChlcnJvci5jb2RlID09PSA0MDMpIHtcbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW3RoaXMubmFtZXNwYWNlcyQsIHRoaXMuYmFzZVBhcmFtcyRdKS5waXBlKFxuICAgICAgICAgIHN3aXRjaE1hcCgoW25hbWVzcGFjZXMsIHsgY2x1c3RlciB9XSkgPT5cbiAgICAgICAgICAgIG5hbWVzcGFjZXMubGVuZ3RoXG4gICAgICAgICAgICAgID8gZnJvbShuYW1lc3BhY2VzKS5waXBlKFxuICAgICAgICAgICAgICAgICAgbWVyZ2VNYXAobnMgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRQb2RzKGNsdXN0ZXIsIHRoaXMuazhzVXRpbC5nZXROYW1lKG5zKSksXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgcmVkdWNlKChhY2MsIHZhbCkgPT4gYWNjLmNvbmNhdCh2YWwpLCBbXSBhcyBQb2RbXSksXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICA6IG9mKFtdIGFzIFBvZFtdKSxcbiAgICAgICAgICApLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pLFxuICAgIHB1Ymxpc2hSZWYoKSxcbiAgKTtcblxuICBwb2RNYXAkID0gdGhpcy5iYXNlUGFyYW1zJC5waXBlKFxuICAgIHN3aXRjaE1hcCgoeyBuYW1lc3BhY2UgfSkgPT4ge1xuICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICB0aGlzLnBvZHMkLFxuICAgICAgICBuYW1lc3BhY2UgPyBvZihbXSBhcyBOYW1lc3BhY2VbXSkgOiB0aGlzLm5hbWVzcGFjZXMkLFxuICAgICAgXSkucGlwZShcbiAgICAgICAgbWFwKChbcG9kcywgbmFtZXNwYWNlc10pID0+IHtcbiAgICAgICAgICBpZiAoIXBvZHMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4ge30gYXMgUG9kTWFwO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICghbmFtZXNwYWNlKSB7XG4gICAgICAgICAgICByZXR1cm4gbmFtZXNwYWNlcy5yZWR1Y2UoKHByZXYsIGFjYykgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBuYW1lc3BhY2UgPSB0aGlzLms4c1V0aWwuZ2V0TmFtZShhY2MpO1xuICAgICAgICAgICAgICBjb25zdCBvd25lclBvZHMgPSBwb2RzLmZpbHRlcihcbiAgICAgICAgICAgICAgICBwb2QgPT4gdGhpcy5rOHNVdGlsLmdldE5hbWVzcGFjZShwb2QpID09PSBuYW1lc3BhY2UsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGlmIChvd25lclBvZHMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcHJldltuYW1lc3BhY2VdID0gb3duZXJQb2RzO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgICAgICAgfSwge30gYXMgUG9kTWFwKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBuYW1lc3BhY2VOYW1lID0gdGhpcy5rOHNVdGlsLmdldE5hbWVzcGFjZShwb2RzWzBdKTtcblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBbbmFtZXNwYWNlTmFtZV06IHBvZHMsXG4gICAgICAgICAgfSBhcyBQb2RNYXA7XG4gICAgICAgIH0pLFxuICAgICAgICB0YXAocG9kTWFwID0+IHtcbiAgICAgICAgICBPYmplY3Qua2V5cyhwb2RNYXApLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgIHRoaXMucG9kTWFwRXhwYW5kU3RhdGVba2V5XSA9IHRydWU7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pLFxuICAgICAgICBza2lwRXJyb3Ioe30gYXMgUG9kTWFwKSxcbiAgICAgICk7XG4gICAgfSksXG4gICk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBrOHNBcGk6IEs4c0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBrOHNVdGlsOiBLOHNVdGlsU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQsXG4gICkge31cblxuICBwcml2YXRlIGdldFBvZHMoY2x1c3Rlcjogc3RyaW5nLCBuYW1lc3BhY2U6IHN0cmluZykge1xuICAgIGNvbnN0IGxhYmVsU2VsZWN0b3JUZXh0ID0gbWF0Y2hMYWJlbHNUb1N0cmluZyh0aGlzLnBvZExhYmVsU2VsZWN0b3IgfHwge30pO1xuXG4gICAgcmV0dXJuIHRoaXMuazhzQXBpXG4gICAgICAuZ2V0UmVzb3VyY2VMaXN0PFBvZD4oe1xuICAgICAgICB0eXBlOiBSRVNPVVJDRV9UWVBFUy5QT0QsXG4gICAgICAgIGNsdXN0ZXIsXG4gICAgICAgIC4uLihuYW1lc3BhY2UgPyB7IG5hbWVzcGFjZSB9IDogbnVsbCksXG4gICAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgICAgLi4uKGxhYmVsU2VsZWN0b3JUZXh0ICYmIHtcbiAgICAgICAgICAgIGxhYmVsU2VsZWN0b3I6IGxhYmVsU2VsZWN0b3JUZXh0LFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIGxpbWl0OiAnMCcsXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICAgLnBpcGUobWFwKHJlcyA9PiByZXMuaXRlbXMpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2x1c3Rlck5hbWVzcGFjZXMoXG4gICAgcHJvamVjdDogc3RyaW5nLFxuICAgIGNsdXN0ZXI6IHN0cmluZyxcbiAgICBsYWJlbFNlbGVjdG9yc1RleHQ6IHN0cmluZyxcbiAgKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxLdWJlcm5ldGVzUmVzb3VyY2VMaXN0PE5hbWVzcGFjZT4+KFxuICAgICAgICBge3tBUElfR0FURVdBWX19L2F1dGgvdjEvcHJvamVjdHMvJHtwcm9qZWN0fS9jbHVzdGVycy8ke2NsdXN0ZXJ9L25hbWVzcGFjZXNgLFxuICAgICAgICB7XG4gICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICAuLi4obGFiZWxTZWxlY3RvcnNUZXh0ICYmIHtcbiAgICAgICAgICAgICAgbGFiZWxTZWxlY3RvcjogbGFiZWxTZWxlY3RvcnNUZXh0LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAocmVzID0+IHJlcy5pdGVtcyksXG4gICAgICAgIHNraXBFcnJvcihbXSBhcyBOYW1lc3BhY2VbXSksXG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDbHVzdGVyUHJvamVjdHMoY2x1c3Rlck5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8S3ViZXJuZXRlc1Jlc291cmNlTGlzdDxQcm9qZWN0Pj4oXG4gICAgICAgIGB7e0FQSV9HQVRFV0FZfX0vYXV0aC92MS9wcm9qZWN0cy9gLFxuICAgICAgICB7XG4gICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICBsaW1pdDogJzAnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHJlcyA9PlxuICAgICAgICAgIHJlcy5pdGVtcy5maWx0ZXIocHJvamVjdCA9PlxuICAgICAgICAgICAgcHJvamVjdC5zcGVjPy5jbHVzdGVycz8uc29tZShcbiAgICAgICAgICAgICAgY2x1c3RlciA9PiBjbHVzdGVyLm5hbWUgPT09IGNsdXN0ZXJOYW1lLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgICBza2lwRXJyb3IoW10gYXMgUHJvamVjdFtdKSxcbiAgICAgICk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXI+XG4gIDxzcGFuIGNsYXNzPVwidHctdGV4dC1zIHR3LW1yLTRcIj57eyBoaW50IH19PC9zcGFuPlxuICA8YnV0dG9uXG4gICAgYXVpLWJ1dHRvbj1cImlubGluZVwiXG4gICAgc2l6ZT1cIm1pbmlcIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIFthdWlEcm9wZG93bl09XCJsaXN0XCJcbiAgICBhdWlEcm9wZG93blBvc2l0aW9uPVwiYm90dG9tIHN0YXJ0XCJcbiAgPlxuICAgIHt7ICduZXR3b3JrLnByZXZpZXcnIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjbGlzdD5cbiAgPGRpdlxuICAgIGNsYXNzPVwicG9kLW1lbnVcIlxuICAgICpuZ0lmPVwicG9kTWFwJCB8IGFzeW5jIGFzIHBvZE1hcDsgZWxzZSBsb2FkaW5nXCJcbiAgPlxuICAgIDxhdWktbWVudSBzaXplPVwibGFyZ2VcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0dy1weC04IHR3LXB5LTRcIj5cbiAgICAgICAgPHVsXG4gICAgICAgICAgY2xhc3M9XCJjb250YWluZXJcIlxuICAgICAgICAgICpuZ0lmPVwiIWlzRW1wdHkocG9kTWFwKTsgZWxzZSBlbXB0eVwiXG4gICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bGlcbiAgICAgICAgICAgIGNsYXNzPVwibGlzdC1pdGVtXCJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBncm91cCBvZiBwb2RNYXAgfCBrZXl2YWx1ZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR3LWZsZXhcIj5cbiAgICAgICAgICAgICAgPGF1aS1pY29uXG4gICAgICAgICAgICAgICAgW2ljb25dPVwiXG4gICAgICAgICAgICAgICAgICBwb2RNYXBFeHBhbmRTdGF0ZVtncm91cC5rZXldID8gJ2FuZ2xlX2Rvd24nIDogJ2FuZ2xlX3JpZ2h0J1xuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0dy1jdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgICAgICAgbWFyZ2luPVwicmlnaHRcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICAgIHBvZE1hcEV4cGFuZFN0YXRlW2dyb3VwLmtleV0gPSAhcG9kTWFwRXhwYW5kU3RhdGVbZ3JvdXAua2V5XVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgID48L2F1aS1pY29uPlxuICAgICAgICAgICAgICA8YXVpLXRhZ1xuICAgICAgICAgICAgICAgIHR5cGU9XCJzdWNjZXNzXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInR3LW1yLThcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJtaW5pXCJcbiAgICAgICAgICAgICAgICBbYm9yZGVyXT1cInRydWVcIlxuICAgICAgICAgICAgICAgID57eyAnTlMnIH19PC9hdWktdGFnXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0dy1icmVhay1hbGxcIj57eyBncm91cC5rZXkgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDx1bFxuICAgICAgICAgICAgICBjbGFzcz1cInR3LW1sLVszNHB4XSB0dy1tdC04XCJcbiAgICAgICAgICAgICAgW2hpZGRlbl09XCIhcG9kTWFwRXhwYW5kU3RhdGVbZ3JvdXAua2V5XVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1pdGVtIHR3LWZsZXggdHctYnJlYWstYWxsXCJcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgcG9kIG9mIGdyb3VwLnZhbHVlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxhdWktdGFnXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInR3LW1yLThcIlxuICAgICAgICAgICAgICAgICAgdHlwZT1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgW2JvcmRlcl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgIHNpemU9XCJtaW5pXCJcbiAgICAgICAgICAgICAgICAgID57eyAnUG9kJyB9fTwvYXVpLXRhZ1xuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eyBwb2QgfCBhY2xOYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICA8L3VsPlxuICAgICAgPC9kaXY+XG4gICAgPC9hdWktbWVudT5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2xvYWRpbmc+XG4gIDxhdWktbWVudSBzaXplPVwibGFyZ2VcIj5cbiAgICA8YWNsLWxvYWRpbmctbWFzayBbbG9hZGluZ109XCJ0cnVlXCI+PC9hY2wtbG9hZGluZy1tYXNrPlxuICA8L2F1aS1tZW51PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNlbXB0eT5cbiAgPHNwYW4gY2xhc3M9XCJ0dy10ZXh0LW4tNFwiPnt7XG4gICAgKGJhc2VQYXJhbXMubmFtZXNwYWNlXG4gICAgICA/ICduZXR3b3JrLm5vX25zX3BvZF9zZWxlY3Rvcl90aXAnXG4gICAgICA6ICduZXR3b3JrLm5vX2NsdXN0ZXJfcG9kX3NlbGVjdG9yX3RpcCdcbiAgICApIHwgdHJhbnNsYXRlXG4gIH19PC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -1,269 +0,0 @@
1
- import { PurePipe, TRANSLATE_MODULE, TableModule, } from '@alauda-fe/common';
2
- import { NgFor, NgIf, NgSwitch, NgSwitchCase, NgSwitchDefault, NgTemplateOutlet, } from '@angular/common';
3
- import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
4
- import { getPeerType } from '../../form/network-policy-peer/component';
5
- import { LabelSelectorDisplayComponent } from '../label-selector-display/component';
6
- import { IPBlockDisplayComponent } from './../ip-block-display/component';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@alauda-fe/common";
9
- const _c0 = (a0, a1, a2) => ({ podSelector: a0, namespaceSelector: a1, ipBlock: a2 });
10
- const _c1 = a0 => ({ $implicit: a0 });
11
- function NetworkPolicyRuleTableComponent_ng_container_1_div_2_Template(rf, ctx) { if (rf & 1) {
12
- i0.ɵɵelementStart(0, "div");
13
- i0.ɵɵtext(1);
14
- i0.ɵɵpipe(2, "translate");
15
- i0.ɵɵelementEnd();
16
- } if (rf & 2) {
17
- i0.ɵɵadvance();
18
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, "network.pod_in_current_cluster"), " ");
19
- } }
20
- function NetworkPolicyRuleTableComponent_ng_container_1_div_3_Template(rf, ctx) { if (rf & 1) {
21
- i0.ɵɵelementStart(0, "div");
22
- i0.ɵɵtext(1);
23
- i0.ɵɵpipe(2, "translate");
24
- i0.ɵɵelementEnd();
25
- } if (rf & 2) {
26
- i0.ɵɵadvance();
27
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, "network.pod_in_current_namespace"), " ");
28
- } }
29
- function NetworkPolicyRuleTableComponent_ng_container_1_div_4_Template(rf, ctx) { if (rf & 1) {
30
- i0.ɵɵelementStart(0, "div");
31
- i0.ɵɵtext(1);
32
- i0.ɵɵpipe(2, "translate");
33
- i0.ɵɵelementEnd();
34
- } if (rf & 2) {
35
- i0.ɵɵadvance();
36
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, "network.ip_segment"), " ");
37
- } }
38
- function NetworkPolicyRuleTableComponent_ng_container_1_div_5_Template(rf, ctx) { if (rf & 1) {
39
- i0.ɵɵelementStart(0, "div");
40
- i0.ɵɵtext(1, "-");
41
- i0.ɵɵelementEnd();
42
- } }
43
- function NetworkPolicyRuleTableComponent_ng_container_1_Template(rf, ctx) { if (rf & 1) {
44
- i0.ɵɵelementContainerStart(0);
45
- i0.ɵɵelementStart(1, "div", 6);
46
- i0.ɵɵtemplate(2, NetworkPolicyRuleTableComponent_ng_container_1_div_2_Template, 3, 3, "div", 7)(3, NetworkPolicyRuleTableComponent_ng_container_1_div_3_Template, 3, 3, "div", 7)(4, NetworkPolicyRuleTableComponent_ng_container_1_div_4_Template, 3, 3, "div", 7)(5, NetworkPolicyRuleTableComponent_ng_container_1_div_5_Template, 2, 0, "div", 8);
47
- i0.ɵɵelementEnd();
48
- i0.ɵɵelementContainerEnd();
49
- } if (rf & 2) {
50
- const rowData_r1 = ctx.$implicit;
51
- i0.ɵɵadvance();
52
- i0.ɵɵproperty("ngSwitch", rowData_r1.peerType);
53
- i0.ɵɵadvance();
54
- i0.ɵɵproperty("ngSwitchCase", "clusterLevel");
55
- i0.ɵɵadvance();
56
- i0.ɵɵproperty("ngSwitchCase", "namespaceLevel");
57
- i0.ɵɵadvance();
58
- i0.ɵɵproperty("ngSwitchCase", "ipBlock");
59
- } }
60
- function NetworkPolicyRuleTableComponent_ng_container_2_ng_container_1_ng_template_1_Template(rf, ctx) { }
61
- function NetworkPolicyRuleTableComponent_ng_container_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {
62
- i0.ɵɵelementContainerStart(0);
63
- i0.ɵɵtemplate(1, NetworkPolicyRuleTableComponent_ng_container_2_ng_container_1_ng_template_1_Template, 0, 0, "ng-template", 10);
64
- i0.ɵɵelementContainerEnd();
65
- } if (rf & 2) {
66
- const rowData_r2 = i0.ɵɵnextContext().$implicit;
67
- i0.ɵɵnextContext();
68
- const ruleTemp_r3 = i0.ɵɵreference(5);
69
- i0.ɵɵadvance();
70
- i0.ɵɵproperty("ngTemplateOutlet", ruleTemp_r3)("ngTemplateOutletContext", i0.ɵɵpureFunction3(2, _c0, rowData_r2.podSelector, rowData_r2.namespaceSelector, rowData_r2.ipBlock));
71
- } }
72
- function NetworkPolicyRuleTableComponent_ng_container_2_ng_template_2_Template(rf, ctx) { if (rf & 1) {
73
- i0.ɵɵtext(0);
74
- i0.ɵɵpipe(1, "translate");
75
- } if (rf & 2) {
76
- const ctx_r3 = i0.ɵɵnextContext(2);
77
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(1, 1, "network.unlimited_" + ctx_r3.policyType + "_traffic"), " ");
78
- } }
79
- function NetworkPolicyRuleTableComponent_ng_container_2_Template(rf, ctx) { if (rf & 1) {
80
- i0.ɵɵelementContainerStart(0);
81
- i0.ɵɵtemplate(1, NetworkPolicyRuleTableComponent_ng_container_2_ng_container_1_Template, 2, 6, "ng-container", 9)(2, NetworkPolicyRuleTableComponent_ng_container_2_ng_template_2_Template, 2, 3, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
82
- i0.ɵɵelementContainerEnd();
83
- } if (rf & 2) {
84
- const rowData_r2 = ctx.$implicit;
85
- const emptyRule_r5 = i0.ɵɵreference(3);
86
- i0.ɵɵadvance();
87
- i0.ɵɵproperty("ngIf", rowData_r2.podSelector || rowData_r2.namespaceSelector || rowData_r2.ipBlock)("ngIfElse", emptyRule_r5);
88
- } }
89
- function NetworkPolicyRuleTableComponent_ng_container_3_ng_template_1_Template(rf, ctx) { }
90
- function NetworkPolicyRuleTableComponent_ng_container_3_Template(rf, ctx) { if (rf & 1) {
91
- i0.ɵɵelementContainerStart(0);
92
- i0.ɵɵtemplate(1, NetworkPolicyRuleTableComponent_ng_container_3_ng_template_1_Template, 0, 0, "ng-template", 10);
93
- i0.ɵɵelementContainerEnd();
94
- } if (rf & 2) {
95
- const rowData_r6 = ctx.$implicit;
96
- i0.ɵɵnextContext();
97
- const portTemplate_r7 = i0.ɵɵreference(7);
98
- i0.ɵɵadvance();
99
- i0.ɵɵproperty("ngTemplateOutlet", portTemplate_r7)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c1, rowData_r6.ports));
100
- } }
101
- function NetworkPolicyRuleTableComponent_ng_template_4_ng_container_1_Template(rf, ctx) { if (rf & 1) {
102
- i0.ɵɵelementContainerStart(0);
103
- i0.ɵɵelement(1, "acl-label-selector-display", 14);
104
- i0.ɵɵpipe(2, "translate");
105
- i0.ɵɵelementContainerEnd();
106
- } if (rf & 2) {
107
- const podSelector_r8 = i0.ɵɵnextContext().podSelector;
108
- i0.ɵɵadvance();
109
- i0.ɵɵproperty("showTitle", true)("type", "podSelector")("selector", podSelector_r8)("emptyPlaceholder", i0.ɵɵpipeBind1(2, 4, "network.any_pod"));
110
- } }
111
- function NetworkPolicyRuleTableComponent_ng_template_4_div_2_Template(rf, ctx) { if (rf & 1) {
112
- i0.ɵɵelementStart(0, "div", 15);
113
- i0.ɵɵtext(1);
114
- i0.ɵɵpipe(2, "translate");
115
- i0.ɵɵelementEnd();
116
- } if (rf & 2) {
117
- i0.ɵɵadvance();
118
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, "network.and"), " ");
119
- } }
120
- function NetworkPolicyRuleTableComponent_ng_template_4_ng_container_3_Template(rf, ctx) { if (rf & 1) {
121
- i0.ɵɵelementContainerStart(0);
122
- i0.ɵɵelement(1, "acl-label-selector-display", 14);
123
- i0.ɵɵpipe(2, "translate");
124
- i0.ɵɵelementContainerEnd();
125
- } if (rf & 2) {
126
- const namespaceSelector_r9 = i0.ɵɵnextContext().namespaceSelector;
127
- i0.ɵɵadvance();
128
- i0.ɵɵproperty("showTitle", true)("type", "namespaceSelector")("selector", namespaceSelector_r9)("emptyPlaceholder", i0.ɵɵpipeBind1(2, 4, "network.any_namespace"));
129
- } }
130
- function NetworkPolicyRuleTableComponent_ng_template_4_ng_container_4_Template(rf, ctx) { if (rf & 1) {
131
- i0.ɵɵelementContainerStart(0);
132
- i0.ɵɵelement(1, "acl-ip-block-display", 16);
133
- i0.ɵɵelementContainerEnd();
134
- } if (rf & 2) {
135
- const ipBlock_r10 = i0.ɵɵnextContext().ipBlock;
136
- i0.ɵɵadvance();
137
- i0.ɵɵproperty("ipBlock", ipBlock_r10);
138
- } }
139
- function NetworkPolicyRuleTableComponent_ng_template_4_Template(rf, ctx) { if (rf & 1) {
140
- i0.ɵɵelementStart(0, "div", 11);
141
- i0.ɵɵtemplate(1, NetworkPolicyRuleTableComponent_ng_template_4_ng_container_1_Template, 3, 6, "ng-container", 12)(2, NetworkPolicyRuleTableComponent_ng_template_4_div_2_Template, 3, 3, "div", 13)(3, NetworkPolicyRuleTableComponent_ng_template_4_ng_container_3_Template, 3, 6, "ng-container", 12);
142
- i0.ɵɵelementEnd();
143
- i0.ɵɵtemplate(4, NetworkPolicyRuleTableComponent_ng_template_4_ng_container_4_Template, 2, 1, "ng-container", 12);
144
- } if (rf & 2) {
145
- const podSelector_r8 = ctx.podSelector;
146
- const namespaceSelector_r9 = ctx.namespaceSelector;
147
- const ipBlock_r10 = ctx.ipBlock;
148
- i0.ɵɵadvance();
149
- i0.ɵɵproperty("ngIf", podSelector_r8);
150
- i0.ɵɵadvance();
151
- i0.ɵɵproperty("ngIf", podSelector_r8 && namespaceSelector_r9);
152
- i0.ɵɵadvance();
153
- i0.ɵɵproperty("ngIf", namespaceSelector_r9);
154
- i0.ɵɵadvance();
155
- i0.ɵɵproperty("ngIf", ipBlock_r10);
156
- } }
157
- function NetworkPolicyRuleTableComponent_ng_template_6_ul_0_li_1_span_2_Template(rf, ctx) { if (rf & 1) {
158
- i0.ɵɵelementStart(0, "span");
159
- i0.ɵɵtext(1);
160
- i0.ɵɵelementEnd();
161
- } if (rf & 2) {
162
- const item_r11 = i0.ɵɵnextContext().$implicit;
163
- i0.ɵɵadvance();
164
- i0.ɵɵtextInterpolate1(" ~ ", item_r11.endPort, " ");
165
- } }
166
- function NetworkPolicyRuleTableComponent_ng_template_6_ul_0_li_1_Template(rf, ctx) { if (rf & 1) {
167
- i0.ɵɵelementStart(0, "li", 18);
168
- i0.ɵɵtext(1);
169
- i0.ɵɵtemplate(2, NetworkPolicyRuleTableComponent_ng_template_6_ul_0_li_1_span_2_Template, 2, 1, "span", 12);
170
- i0.ɵɵelementEnd();
171
- } if (rf & 2) {
172
- const item_r11 = ctx.$implicit;
173
- i0.ɵɵadvance();
174
- i0.ɵɵtextInterpolate2(" ", item_r11.protocol, "/", item_r11.port, " ");
175
- i0.ɵɵadvance();
176
- i0.ɵɵproperty("ngIf", item_r11.endPort);
177
- } }
178
- function NetworkPolicyRuleTableComponent_ng_template_6_ul_0_Template(rf, ctx) { if (rf & 1) {
179
- i0.ɵɵelementStart(0, "ul");
180
- i0.ɵɵtemplate(1, NetworkPolicyRuleTableComponent_ng_template_6_ul_0_li_1_Template, 3, 3, "li", 17);
181
- i0.ɵɵelementEnd();
182
- } if (rf & 2) {
183
- const ports_r12 = i0.ɵɵnextContext().$implicit;
184
- i0.ɵɵadvance();
185
- i0.ɵɵproperty("ngForOf", ports_r12);
186
- } }
187
- function NetworkPolicyRuleTableComponent_ng_template_6_ng_template_1_Template(rf, ctx) { if (rf & 1) {
188
- i0.ɵɵtext(0);
189
- i0.ɵɵpipe(1, "translate");
190
- } if (rf & 2) {
191
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(1, 1, "network.any_port"), " ");
192
- } }
193
- function NetworkPolicyRuleTableComponent_ng_template_6_Template(rf, ctx) { if (rf & 1) {
194
- i0.ɵɵtemplate(0, NetworkPolicyRuleTableComponent_ng_template_6_ul_0_Template, 2, 1, "ul", 9)(1, NetworkPolicyRuleTableComponent_ng_template_6_ng_template_1_Template, 2, 3, "ng-template", null, 3, i0.ɵɵtemplateRefExtractor);
195
- } if (rf & 2) {
196
- const ports_r12 = ctx.$implicit;
197
- const empty_r13 = i0.ɵɵreference(2);
198
- i0.ɵɵproperty("ngIf", ports_r12 == null ? null : ports_r12.length)("ngIfElse", empty_r13);
199
- } }
200
- const COLUMNS = ['network.source_peer', 'network.rule', 'network.port'];
201
- const toRuleList = (rules) => {
202
- return rules.flatMap(rule => {
203
- const ports = rule.ports;
204
- const rules = rule.from ||
205
- rule.to;
206
- return (rules?.map(peer => {
207
- return {
208
- ...peer,
209
- peerType: getPeerType(peer),
210
- ports,
211
- };
212
- }) || [{ ports }]);
213
- });
214
- };
215
- export class NetworkPolicyRuleTableComponent {
216
- constructor() {
217
- this.rules = [{}];
218
- this.COLUMNS = COLUMNS;
219
- }
220
- static { this.ɵfac = function NetworkPolicyRuleTableComponent_Factory(t) { return new (t || NetworkPolicyRuleTableComponent)(); }; }
221
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NetworkPolicyRuleTableComponent, selectors: [["acl-network-policy-rule-table"]], inputs: { rules: [2, "rules", "rules", (rules) => toRuleList(rules)], policyType: "policyType" }, standalone: true, features: [i0.ɵɵInputTransformsFeature, i0.ɵɵStandaloneFeature], decls: 8, vars: 5, consts: [["ruleTemp", ""], ["portTemplate", ""], ["emptyRule", ""], ["empty", ""], [3, "dataSource", "columns"], [4, "aclTableCellDef"], [3, "ngSwitch"], [4, "ngSwitchCase"], [4, "ngSwitchDefault"], [4, "ngIf", "ngIfElse"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "tw-flex", "tw-flex-col"], [4, "ngIf"], ["class", "tw-rounded-[50%] tw-w-fit tw-px-4 tw-my-4 tw-bg-n-6 tw-text-s", 4, "ngIf"], [3, "showTitle", "type", "selector", "emptyPlaceholder"], [1, "tw-rounded-[50%]", "tw-w-fit", "tw-px-4", "tw-my-4", "tw-bg-n-6", "tw-text-s"], [3, "ipBlock"], ["class", "tw-mb-2", 4, "ngFor", "ngForOf"], [1, "tw-mb-2"]], template: function NetworkPolicyRuleTableComponent_Template(rf, ctx) { if (rf & 1) {
222
- i0.ɵɵelementStart(0, "acl-table", 4);
223
- i0.ɵɵtemplate(1, NetworkPolicyRuleTableComponent_ng_container_1_Template, 6, 4, "ng-container", 5)(2, NetworkPolicyRuleTableComponent_ng_container_2_Template, 4, 2, "ng-container", 5)(3, NetworkPolicyRuleTableComponent_ng_container_3_Template, 2, 4, "ng-container", 5);
224
- i0.ɵɵelementEnd();
225
- i0.ɵɵtemplate(4, NetworkPolicyRuleTableComponent_ng_template_4_Template, 5, 4, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor)(6, NetworkPolicyRuleTableComponent_ng_template_6_Template, 3, 2, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
226
- } if (rf & 2) {
227
- i0.ɵɵproperty("dataSource", ctx.rules)("columns", ctx.COLUMNS);
228
- i0.ɵɵadvance();
229
- i0.ɵɵproperty("aclTableCellDef", "network.source_peer");
230
- i0.ɵɵadvance();
231
- i0.ɵɵproperty("aclTableCellDef", "network.rule");
232
- i0.ɵɵadvance();
233
- i0.ɵɵproperty("aclTableCellDef", "network.port");
234
- } }, dependencies: [TableModule, i1.TableComponent, i1.TableCellDefDirective, i1.TranslatePipe, NgIf,
235
- NgFor,
236
- NgTemplateOutlet,
237
- NgSwitch,
238
- NgSwitchCase,
239
- NgSwitchDefault,
240
- LabelSelectorDisplayComponent,
241
- IPBlockDisplayComponent], encapsulation: 2, changeDetection: 0 }); }
242
- }
243
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NetworkPolicyRuleTableComponent, [{
244
- type: Component,
245
- args: [{ standalone: true, selector: 'acl-network-policy-rule-table', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
246
- TableModule,
247
- TRANSLATE_MODULE,
248
- NgIf,
249
- NgFor,
250
- NgTemplateOutlet,
251
- PurePipe,
252
- NgSwitch,
253
- NgSwitchCase,
254
- NgSwitchDefault,
255
- LabelSelectorDisplayComponent,
256
- IPBlockDisplayComponent,
257
- ], template: "<acl-table\n [dataSource]=\"rules\"\n [columns]=\"COLUMNS\"\n>\n <ng-container *aclTableCellDef=\"'network.source_peer'; let rowData\">\n <div [ngSwitch]=\"rowData.peerType\">\n <div *ngSwitchCase=\"'clusterLevel'\">\n {{ 'network.pod_in_current_cluster' | translate }}\n </div>\n <div *ngSwitchCase=\"'namespaceLevel'\">\n {{ 'network.pod_in_current_namespace' | translate }}\n </div>\n <div *ngSwitchCase=\"'ipBlock'\">\n {{ 'network.ip_segment' | translate }}\n </div>\n <div *ngSwitchDefault>-</div>\n </div>\n </ng-container>\n <ng-container *aclTableCellDef=\"'network.rule'; let rowData\">\n <ng-container\n *ngIf=\"\n rowData.podSelector || rowData.namespaceSelector || rowData.ipBlock;\n else emptyRule\n \"\n >\n <ng-template\n [ngTemplateOutlet]=\"ruleTemp\"\n [ngTemplateOutletContext]=\"{\n podSelector: rowData.podSelector,\n namespaceSelector: rowData.namespaceSelector,\n ipBlock: rowData.ipBlock,\n }\"\n ></ng-template>\n </ng-container>\n <ng-template #emptyRule>\n {{ 'network.unlimited_' + policyType + '_traffic' | translate }}\n </ng-template>\n </ng-container>\n <ng-container *aclTableCellDef=\"'network.port'; let rowData\">\n <ng-template\n [ngTemplateOutlet]=\"portTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: rowData.ports,\n }\"\n ></ng-template>\n </ng-container>\n</acl-table>\n\n<ng-template\n #ruleTemp\n let-podSelector=\"podSelector\"\n let-namespaceSelector=\"namespaceSelector\"\n let-ipBlock=\"ipBlock\"\n>\n <div class=\"tw-flex tw-flex-col\">\n <ng-container *ngIf=\"podSelector\">\n <acl-label-selector-display\n [showTitle]=\"true\"\n [type]=\"'podSelector'\"\n [selector]=\"podSelector\"\n [emptyPlaceholder]=\"'network.any_pod' | translate\"\n ></acl-label-selector-display>\n </ng-container>\n <div\n *ngIf=\"podSelector && namespaceSelector\"\n class=\"tw-rounded-[50%] tw-w-fit tw-px-4 tw-my-4 tw-bg-n-6 tw-text-s\"\n >\n {{ 'network.and' | translate }}\n </div>\n <ng-container *ngIf=\"namespaceSelector\">\n <acl-label-selector-display\n [showTitle]=\"true\"\n [type]=\"'namespaceSelector'\"\n [selector]=\"namespaceSelector\"\n [emptyPlaceholder]=\"'network.any_namespace' | translate\"\n ></acl-label-selector-display>\n </ng-container>\n </div>\n\n <ng-container *ngIf=\"ipBlock\">\n <acl-ip-block-display [ipBlock]=\"ipBlock\"></acl-ip-block-display>\n </ng-container>\n</ng-template>\n\n<ng-template\n #portTemplate\n let-ports\n>\n <ul *ngIf=\"ports?.length; else empty\">\n <li\n class=\"tw-mb-2\"\n *ngFor=\"let item of ports\"\n >\n {{ item.protocol }}/{{ item.port }}\n <span *ngIf=\"item.endPort\"> ~ {{ item.endPort }} </span>\n </li>\n </ul>\n <ng-template #empty>\n {{ 'network.any_port' | translate }}\n </ng-template>\n</ng-template>\n" }]
258
- }], null, { rules: [{
259
- type: Input,
260
- args: [{
261
- required: true,
262
- transform: (rules) => toRuleList(rules),
263
- }]
264
- }], policyType: [{
265
- type: Input,
266
- args: [{ required: true }]
267
- }] }); })();
268
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(NetworkPolicyRuleTableComponent, { className: "NetworkPolicyRuleTableComponent", filePath: "lib/features/network-policy/components/rule-table/component.ts", lineNumber: 80 }); })();
269
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9uZXR3b3JrL3NyYy9saWIvZmVhdHVyZXMvbmV0d29yay1wb2xpY3kvY29tcG9uZW50cy9ydWxlLXRhYmxlL2NvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvbmV0d29yay9zcmMvbGliL2ZlYXR1cmVzL25ldHdvcmstcG9saWN5L2NvbXBvbmVudHMvcnVsZS10YWJsZS90ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxRQUFRLEVBQ1IsZ0JBQWdCLEVBQ2hCLFdBQVcsR0FDWixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFDTCxLQUFLLEVBQ0wsSUFBSSxFQUNKLFFBQVEsRUFDUixZQUFZLEVBQ1osZUFBZSxFQUNmLGdCQUFnQixHQUNqQixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUzFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUV2RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUVwRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7O0lDckJwRSwyQkFBb0M7SUFDbEMsWUFDRjs7SUFBQSxpQkFBTTs7SUFESixjQUNGO0lBREUsdUZBQ0Y7OztJQUNBLDJCQUFzQztJQUNwQyxZQUNGOztJQUFBLGlCQUFNOztJQURKLGNBQ0Y7SUFERSx5RkFDRjs7O0lBQ0EsMkJBQStCO0lBQzdCLFlBQ0Y7O0lBQUEsaUJBQU07O0lBREosY0FDRjtJQURFLDJFQUNGOzs7SUFDQSwyQkFBc0I7SUFBQSxpQkFBQztJQUFBLGlCQUFNOzs7SUFYakMsNkJBQW9F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QUc3QixDQUNULEtBQTZELEVBQzdELEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO1lDcEYxQixvQ0FHQztZQW1DQyxBQXBCQSxBQWRBLGtHQUFvRSxxRkFjUCxxRkFvQkE7WUFRL0QsaUJBQVk7WUFzQ1osQUFwQ0EsaUlBS0Msb0hBa0NBOztZQXJGQyxBQURBLHNDQUFvQix3QkFDRDtZQUVKLGNBQXdDO1lBQXhDLHVEQUF3QztZQWN4QyxjQUFpQztZQUFqQyxnREFBaUM7WUFvQmpDLGNBQWlDO1lBQWpDLGdEQUFpQzs0QkQ0QjlDLFdBQVcsaUVBRVgsSUFBSTtZQUNKLEtBQUs7WUFDTCxnQkFBZ0I7WUFFaEIsUUFBUTtZQUNSLFlBQVk7WUFDWixlQUFlO1lBQ2YsNkJBQTZCO1lBQzdCLHVCQUF1Qjs7aUZBR2QsK0JBQStCO2NBbkIzQyxTQUFTOzZCQUNJLElBQUksWUFDTiwrQkFBK0IsbUJBRXhCLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7b0JBQ1AsV0FBVztvQkFDWCxnQkFBZ0I7b0JBQ2hCLElBQUk7b0JBQ0osS0FBSztvQkFDTCxnQkFBZ0I7b0JBQ2hCLFFBQVE7b0JBQ1IsUUFBUTtvQkFDUixZQUFZO29CQUNaLGVBQWU7b0JBQ2YsNkJBQTZCO29CQUM3Qix1QkFBdUI7aUJBQ3hCO2dCQVNELEtBQUs7a0JBTkosS0FBSzttQkFBQztvQkFDTCxRQUFRLEVBQUUsSUFBSTtvQkFDZCxTQUFTLEVBQUUsQ0FDVCxLQUE2RCxFQUM3RCxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztpQkFDdkI7WUFJRCxVQUFVO2tCQURULEtBQUs7bUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFOztrRkFUZCwrQkFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBMYWJlbFNlbGVjdG9yLFxuICBQdXJlUGlwZSxcbiAgVFJBTlNMQVRFX01PRFVMRSxcbiAgVGFibGVNb2R1bGUsXG59IGZyb20gJ0BhbGF1ZGEtZmUvY29tbW9uJztcbmltcG9ydCB7XG4gIE5nRm9yLFxuICBOZ0lmLFxuICBOZ1N3aXRjaCxcbiAgTmdTd2l0Y2hDYXNlLFxuICBOZ1N3aXRjaERlZmF1bHQsXG4gIE5nVGVtcGxhdGVPdXRsZXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBJUEJsb2NrLFxuICBOZXR3b3JrUG9saWN5RWdyZXNzUnVsZSxcbiAgTmV0d29ya1BvbGljeUluZ3Jlc3NSdWxlLFxuICBOZXR3b3JrUG9saWN5UG9ydCxcbiAgUG9saWN5VHlwZSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vdHlwZXMvazhzLWV4cG9ydHMnO1xuaW1wb3J0IHsgZ2V0UGVlclR5cGUgfSBmcm9tICcuLi8uLi9mb3JtL25ldHdvcmstcG9saWN5LXBlZXIvY29tcG9uZW50JztcbmltcG9ydCB7IE5ldHdvcmtQb2xpY3lQZWVyVHlwZSB9IGZyb20gJy4uL2FkZC1wZWVyLXJ1bGUtaGFuZGxlci9jb21wb25lbnQnO1xuaW1wb3J0IHsgTGFiZWxTZWxlY3RvckRpc3BsYXlDb21wb25lbnQgfSBmcm9tICcuLi9sYWJlbC1zZWxlY3Rvci1kaXNwbGF5L2NvbXBvbmVudCc7XG5cbmltcG9ydCB7IElQQmxvY2tEaXNwbGF5Q29tcG9uZW50IH0gZnJvbSAnLi8uLi9pcC1ibG9jay1kaXNwbGF5L2NvbXBvbmVudCc7XG5cbmNvbnN0IENPTFVNTlMgPSBbJ25ldHdvcmsuc291cmNlX3BlZXInLCAnbmV0d29yay5ydWxlJywgJ25ldHdvcmsucG9ydCddO1xuXG5pbnRlcmZhY2UgUnVsZUxpc3RNb2RlbCB7XG4gIHBlZXJUeXBlPzogTmV0d29ya1BvbGljeVBlZXJUeXBlO1xuICBuYW1lc3BhY2VTZWxlY3Rvcj86IExhYmVsU2VsZWN0b3I7XG4gIHBvZFNlbGVjdG9yPzogTGFiZWxTZWxlY3RvcjtcbiAgaXBCbG9jaz86IElQQmxvY2s7XG4gIHBvcnRzPzogTmV0d29ya1BvbGljeVBvcnRbXTtcbn1cblxuY29uc3QgdG9SdWxlTGlzdCA9IChcbiAgcnVsZXM6IE5ldHdvcmtQb2xpY3lJbmdyZXNzUnVsZVtdIHwgTmV0d29ya1BvbGljeUVncmVzc1J1bGVbXSxcbikgPT4ge1xuICByZXR1cm4gcnVsZXMuZmxhdE1hcChydWxlID0+IHtcbiAgICBjb25zdCBwb3J0cyA9IHJ1bGUucG9ydHM7XG4gICAgY29uc3QgcnVsZXMgPVxuICAgICAgKHJ1bGUgYXMgTmV0d29ya1BvbGljeUluZ3Jlc3NSdWxlKS5mcm9tIHx8XG4gICAgICAocnVsZSBhcyBOZXR3b3JrUG9saWN5RWdyZXNzUnVsZSkudG87XG5cbiAgICByZXR1cm4gKFxuICAgICAgcnVsZXM/Lm1hcChwZWVyID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5wZWVyLFxuICAgICAgICAgIHBlZXJUeXBlOiBnZXRQZWVyVHlwZShwZWVyKSxcbiAgICAgICAgICBwb3J0cyxcbiAgICAgICAgfSBhcyBSdWxlTGlzdE1vZGVsO1xuICAgICAgfSkgfHwgW3sgcG9ydHMgfV1cbiAgICApO1xuICB9KTtcbn07XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2FjbC1uZXR3b3JrLXBvbGljeS1ydWxlLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICd0ZW1wbGF0ZS5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBUYWJsZU1vZHVsZSxcbiAgICBUUkFOU0xBVEVfTU9EVUxFLFxuICAgIE5nSWYsXG4gICAgTmdGb3IsXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBQdXJlUGlwZSxcbiAgICBOZ1N3aXRjaCxcbiAgICBOZ1N3aXRjaENhc2UsXG4gICAgTmdTd2l0Y2hEZWZhdWx0LFxuICAgIExhYmVsU2VsZWN0b3JEaXNwbGF5Q29tcG9uZW50LFxuICAgIElQQmxvY2tEaXNwbGF5Q29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOZXR3b3JrUG9saWN5UnVsZVRhYmxlQ29tcG9uZW50IHtcbiAgQElucHV0KHtcbiAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB0cmFuc2Zvcm06IChcbiAgICAgIHJ1bGVzOiBOZXR3b3JrUG9saWN5SW5ncmVzc1J1bGVbXSB8IE5ldHdvcmtQb2xpY3lFZ3Jlc3NSdWxlW10sXG4gICAgKSA9PiB0b1J1bGVMaXN0KHJ1bGVzKSxcbiAgfSlcbiAgcnVsZXM6IFJ1bGVMaXN0TW9kZWxbXSA9IFt7fV07XG5cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgcG9saWN5VHlwZTogTG93ZXJjYXNlPFBvbGljeVR5cGU+O1xuXG4gIENPTFVNTlMgPSBDT0xVTU5TO1xufVxuIiwiPGFjbC10YWJsZVxuICBbZGF0YVNvdXJjZV09XCJydWxlc1wiXG4gIFtjb2x1bW5zXT1cIkNPTFVNTlNcIlxuPlxuICA8bmctY29udGFpbmVyICphY2xUYWJsZUNlbGxEZWY9XCInbmV0d29yay5zb3VyY2VfcGVlcic7IGxldCByb3dEYXRhXCI+XG4gICAgPGRpdiBbbmdTd2l0Y2hdPVwicm93RGF0YS5wZWVyVHlwZVwiPlxuICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ2NsdXN0ZXJMZXZlbCdcIj5cbiAgICAgICAge3sgJ25ldHdvcmsucG9kX2luX2N1cnJlbnRfY2x1c3RlcicgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ25hbWVzcGFjZUxldmVsJ1wiPlxuICAgICAgICB7eyAnbmV0d29yay5wb2RfaW5fY3VycmVudF9uYW1lc3BhY2UnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidpcEJsb2NrJ1wiPlxuICAgICAgICB7eyAnbmV0d29yay5pcF9zZWdtZW50JyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ1N3aXRjaERlZmF1bHQ+LTwvZGl2PlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqYWNsVGFibGVDZWxsRGVmPVwiJ25ldHdvcmsucnVsZSc7IGxldCByb3dEYXRhXCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nSWY9XCJcbiAgICAgICAgcm93RGF0YS5wb2RTZWxlY3RvciB8fCByb3dEYXRhLm5hbWVzcGFjZVNlbGVjdG9yIHx8IHJvd0RhdGEuaXBCbG9jaztcbiAgICAgICAgZWxzZSBlbXB0eVJ1bGVcbiAgICAgIFwiXG4gICAgPlxuICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInJ1bGVUZW1wXCJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICBwb2RTZWxlY3Rvcjogcm93RGF0YS5wb2RTZWxlY3RvcixcbiAgICAgICAgICBuYW1lc3BhY2VTZWxlY3Rvcjogcm93RGF0YS5uYW1lc3BhY2VTZWxlY3RvcixcbiAgICAgICAgICBpcEJsb2NrOiByb3dEYXRhLmlwQmxvY2ssXG4gICAgICAgIH1cIlxuICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNlbXB0eVJ1bGU+XG4gICAgICB7eyAnbmV0d29yay51bmxpbWl0ZWRfJyArIHBvbGljeVR5cGUgKyAnX3RyYWZmaWMnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKmFjbFRhYmxlQ2VsbERlZj1cIiduZXR3b3JrLnBvcnQnOyBsZXQgcm93RGF0YVwiPlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwicG9ydFRlbXBsYXRlXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICRpbXBsaWNpdDogcm93RGF0YS5wb3J0cyxcbiAgICAgIH1cIlxuICAgID48L25nLXRlbXBsYXRlPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvYWNsLXRhYmxlPlxuXG48bmctdGVtcGxhdGVcbiAgI3J1bGVUZW1wXG4gIGxldC1wb2RTZWxlY3Rvcj1cInBvZFNlbGVjdG9yXCJcbiAgbGV0LW5hbWVzcGFjZVNlbGVjdG9yPVwibmFtZXNwYWNlU2VsZWN0b3JcIlxuICBsZXQtaXBCbG9jaz1cImlwQmxvY2tcIlxuPlxuICA8ZGl2IGNsYXNzPVwidHctZmxleCB0dy1mbGV4LWNvbFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwb2RTZWxlY3RvclwiPlxuICAgICAgPGFjbC1sYWJlbC1zZWxlY3Rvci1kaXNwbGF5XG4gICAgICAgIFtzaG93VGl0bGVdPVwidHJ1ZVwiXG4gICAgICAgIFt0eXBlXT1cIidwb2RTZWxlY3RvcidcIlxuICAgICAgICBbc2VsZWN0b3JdPVwicG9kU2VsZWN0b3JcIlxuICAgICAgICBbZW1wdHlQbGFjZWhvbGRlcl09XCInbmV0d29yay5hbnlfcG9kJyB8IHRyYW5zbGF0ZVwiXG4gICAgICA+PC9hY2wtbGFiZWwtc2VsZWN0b3ItZGlzcGxheT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cInBvZFNlbGVjdG9yICYmIG5hbWVzcGFjZVNlbGVjdG9yXCJcbiAgICAgIGNsYXNzPVwidHctcm91bmRlZC1bNTAlXSB0dy13LWZpdCB0dy1weC00IHR3LW15LTQgdHctYmctbi02IHR3LXRleHQtc1wiXG4gICAgPlxuICAgICAge3sgJ25ldHdvcmsuYW5kJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJuYW1lc3BhY2VTZWxlY3RvclwiPlxuICAgICAgPGFjbC1sYWJlbC1zZWxlY3Rvci1kaXNwbGF5XG4gICAgICAgIFtzaG93VGl0bGVdPVwidHJ1ZVwiXG4gICAgICAgIFt0eXBlXT1cIiduYW1lc3BhY2VTZWxlY3RvcidcIlxuICAgICAgICBbc2VsZWN0b3JdPVwibmFtZXNwYWNlU2VsZWN0b3JcIlxuICAgICAgICBbZW1wdHlQbGFjZWhvbGRlcl09XCInbmV0d29yay5hbnlfbmFtZXNwYWNlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICA+PC9hY2wtbGFiZWwtc2VsZWN0b3ItZGlzcGxheT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlwQmxvY2tcIj5cbiAgICA8YWNsLWlwLWJsb2NrLWRpc3BsYXkgW2lwQmxvY2tdPVwiaXBCbG9ja1wiPjwvYWNsLWlwLWJsb2NrLWRpc3BsYXk+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlXG4gICNwb3J0VGVtcGxhdGVcbiAgbGV0LXBvcnRzXG4+XG4gIDx1bCAqbmdJZj1cInBvcnRzPy5sZW5ndGg7IGVsc2UgZW1wdHlcIj5cbiAgICA8bGlcbiAgICAgIGNsYXNzPVwidHctbWItMlwiXG4gICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBwb3J0c1wiXG4gICAgPlxuICAgICAge3sgaXRlbS5wcm90b2NvbCB9fS97eyBpdGVtLnBvcnQgfX1cbiAgICAgIDxzcGFuICpuZ0lmPVwiaXRlbS5lbmRQb3J0XCI+IH4ge3sgaXRlbS5lbmRQb3J0IH19IDwvc3Bhbj5cbiAgICA8L2xpPlxuICA8L3VsPlxuICA8bmctdGVtcGxhdGUgI2VtcHR5PlxuICAgIHt7ICduZXR3b3JrLmFueV9wb3J0JyB8IHRyYW5zbGF0ZSB9fVxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==