@alauda-fe/common 1.4.28-beta.6 → 1.4.28
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/array-form-table/form/component.d.ts +1 -1
- package/code/code-editor-configs.d.ts +2 -0
- package/code/managed-fields-folder.util.d.ts +35 -0
- package/code/public-api.d.ts +4 -0
- package/code/resource-yaml-display/component.d.ts +64 -6
- package/code/resource-yaml-editor/component.d.ts +95 -0
- package/code/yaml-examples.d.ts +8 -0
- package/code/yaml-sidebar/component.d.ts +57 -0
- package/code/yaml-sidebar/types.d.ts +21 -0
- package/core/abstract/base-nested-form-control.d.ts +1 -1
- package/core/services/kubernetes-schema.service.d.ts +44 -0
- package/core/services/public-api.d.ts +1 -0
- package/core/types/openapi.d.ts +37 -0
- package/core/types/public-api.d.ts +1 -0
- package/esm2022/abnormal-page/abnormal-page.component.mjs +1 -1
- package/esm2022/array-form-table/form/component.mjs +1 -1
- package/esm2022/array-form-table/key-value-form/component.mjs +1 -1
- package/esm2022/array-form-table/key-value-table/component.mjs +1 -1
- package/esm2022/array-form-table/string-array-form/component.mjs +1 -1
- package/esm2022/async-data/error-page/component.mjs +1 -1
- package/esm2022/async-data/page-state/component.mjs +1 -1
- package/esm2022/business/notification-disabled-container/component.mjs +1 -1
- package/esm2022/business/resource-select/exports/cluster-list/component.mjs +1 -1
- package/esm2022/business/resource-select/exports/cluster-selector/component.mjs +1 -1
- package/esm2022/business/resource-select/exports/icon/component.mjs +1 -1
- package/esm2022/business/resource-select/exports/mesh-group-selector/component.mjs +1 -1
- package/esm2022/business/resource-select/exports/namespace-list/component.mjs +1 -1
- package/esm2022/business/resource-select/exports/namespace-page/component.mjs +1 -1
- package/esm2022/business/resource-select/exports/namespace-selector/component.mjs +1 -1
- package/esm2022/business/resource-select/exports/project-list/component.mjs +1 -1
- package/esm2022/business/resource-select/exports/project-page/component.mjs +1 -1
- package/esm2022/business/resource-select/exports/project-selector/component.mjs +1 -1
- package/esm2022/business/resource-select/internals/data-grid/component.mjs +1 -1
- package/esm2022/business/resource-select/internals/meshgroup-list/component.mjs +1 -1
- package/esm2022/business/resource-select/internals/no-data/component.mjs +1 -1
- package/esm2022/business/resource-select/internals/resource-dashboard/component.mjs +1 -1
- package/esm2022/business/resource-select/internals/selector-popup/component.mjs +1 -1
- package/esm2022/chart/common/axis/axis-label.component.mjs +1 -1
- package/esm2022/chart/common/axis/x-axis-ticks.component.mjs +1 -1
- package/esm2022/chart/common/axis/x-axis.component.mjs +1 -1
- package/esm2022/chart/common/axis/x-plot-lines.component.mjs +1 -1
- package/esm2022/chart/common/axis/y-axis-ticks.component.mjs +1 -1
- package/esm2022/chart/common/axis/y-axis.component.mjs +1 -1
- package/esm2022/chart/common/axis/y-plot-lines.component.mjs +1 -1
- package/esm2022/chart/common/chart/chart.component.mjs +1 -1
- package/esm2022/chart/common/legend/legend.component.mjs +1 -1
- package/esm2022/chart/common/range-area/range-area.component.mjs +1 -1
- package/esm2022/chart/common/reference-area/reference-area.component.mjs +1 -1
- package/esm2022/chart/common/series/area-series.component.mjs +1 -1
- package/esm2022/chart/common/series/bar-path.component.mjs +1 -1
- package/esm2022/chart/common/series/bar-series.component.mjs +1 -1
- package/esm2022/chart/common/series/line-series.component.mjs +1 -1
- package/esm2022/chart/common/tooltip/tooltip.component.mjs +1 -1
- package/esm2022/chart/custom-template/dropdown-legend.mjs +1 -1
- package/esm2022/code/code-display-dialog/component.mjs +1 -1
- package/esm2022/code/code-editor-configs.mjs +12 -2
- package/esm2022/code/k8s-yaml-display-dialog/component.mjs +1 -1
- package/esm2022/code/managed-fields-folder.util.mjs +147 -0
- package/esm2022/code/public-api.mjs +5 -1
- package/esm2022/code/resource-yaml-display/component.mjs +257 -43
- package/esm2022/code/resource-yaml-editor/component.mjs +392 -0
- package/esm2022/code/yaml-examples.mjs +337 -0
- package/esm2022/code/yaml-sidebar/component.mjs +482 -0
- package/esm2022/code/yaml-sidebar/types.mjs +2 -0
- package/esm2022/core/components/tree/node/component.mjs +1 -1
- package/esm2022/core/components/tree/tree/component.mjs +1 -1
- package/esm2022/core/directives/readonly-field.directive.mjs +1 -1
- package/esm2022/core/services/kubernetes-schema.service.mjs +129 -0
- package/esm2022/core/services/public-api.mjs +2 -1
- package/esm2022/core/services/workspace-helper.service.mjs +4 -3
- package/esm2022/core/types/openapi.mjs +2 -0
- package/esm2022/core/types/public-api.mjs +2 -1
- package/esm2022/custom-columns-setting/component.mjs +1 -1
- package/esm2022/disabled-container/disabled-container.component.mjs +1 -1
- package/esm2022/editable/editable.component.mjs +1 -1
- package/esm2022/editable-text/component.mjs +1 -1
- package/esm2022/exec/placeholder/component.mjs +1 -1
- package/esm2022/exec/terminal/component.mjs +1 -1
- package/esm2022/exec/terminal-group/component.mjs +3 -3
- package/esm2022/feature-gate-forbidden/component/component.mjs +1 -1
- package/esm2022/form/errors-mapper/errors-mapper-component/component.mjs +1 -1
- package/esm2022/form/errors-mapper/errors-mapper.directive.mjs +1 -1
- package/esm2022/form/labels-editor/component.mjs +1 -1
- package/esm2022/form/taints-editor/component.mjs +1 -1
- package/esm2022/form/upload-file/component.mjs +1 -1
- package/esm2022/form/validators/strong-password/strong-password-tooltip/component.mjs +1 -1
- package/esm2022/graph-canvas/components/graph-actions.component.mjs +1 -1
- package/esm2022/graph-canvas/components/graph-canvas.component.mjs +1 -1
- package/esm2022/graph-canvas/components/graph-link.component.mjs +1 -1
- package/esm2022/graph-canvas/components/graph-links.component.mjs +1 -1
- package/esm2022/grid-layout/components/grid/component.mjs +1 -1
- package/esm2022/grid-layout/components/grid-items/component.mjs +1 -1
- package/esm2022/help-document/component.mjs +1 -1
- package/esm2022/k8s-resource-list/footer/component.mjs +1 -1
- package/esm2022/k8s-shared/resource-mark/k8s-resource-mark.component.mjs +1 -1
- package/esm2022/k8s-shared/update-description-dialog/component.mjs +1 -1
- package/esm2022/k8s-shared/update-display-name-dialog/component.mjs +1 -1
- package/esm2022/k8s-shared/update-key-value-dialog/component.mjs +1 -1
- package/esm2022/lazy-component/lazy-load-component.mjs +1 -1
- package/esm2022/license/license-error/component.mjs +1 -1
- package/esm2022/list-display/component.mjs +1 -1
- package/esm2022/metric-chart/metric-chart.component.mjs +1 -1
- package/esm2022/metric-chart/metric-time-pick.mjs +1 -1
- package/esm2022/multi-search/action-input/component.mjs +1 -1
- package/esm2022/multi-search/form/component.mjs +1 -1
- package/esm2022/multi-search/multi-search-tags/component.mjs +1 -1
- package/esm2022/mutable/mosaic/mosaic.component.mjs +1 -1
- package/esm2022/notification/feedback-notification/component.mjs +1 -1
- package/esm2022/overview-banner/overview-banner.component.mjs +1 -1
- package/esm2022/page-guard/component/component.mjs +1 -1
- package/esm2022/page-scaffold/navigation/breadcrumb/breadcrumb.component.mjs +1 -1
- package/esm2022/page-scaffold/navigation/nav-menu/nav-item-li/nav-item-li.component.mjs +1 -1
- package/esm2022/page-scaffold/navigation/nav-menu/nav-item-ul/nav-item-ul.component.mjs +1 -1
- package/esm2022/page-scaffold/navigation/nav-menu/nav-menu.component.mjs +1 -1
- package/esm2022/page-scaffold/page/notices/maintenance.component.mjs +1 -1
- package/esm2022/page-scaffold/page/notices/notice.component.mjs +1 -1
- package/esm2022/page-scaffold/page/page.component.mjs +1 -1
- package/esm2022/page-scaffold/page-header/account-menu/component/component.mjs +1 -1
- package/esm2022/page-scaffold/page-header/common-layout/namespace-select/component.mjs +1 -1
- package/esm2022/page-scaffold/page-header/common-layout/product-select/component.mjs +1 -1
- package/esm2022/page-scaffold/page-header/component.mjs +1 -1
- package/esm2022/page-scaffold/page-header/enterprise-support-status/component.mjs +1 -1
- package/esm2022/page-scaffold/page-header/header-notify/component/header-notify.component.mjs +1 -1
- package/esm2022/page-scaffold/page-header/header-notify/component/notification-list/notification-list.component.mjs +1 -1
- package/esm2022/page-scaffold/page-header/help-menu/component/component.mjs +1 -1
- package/esm2022/pie-derivative-chart/donut-status/component.mjs +1 -1
- package/esm2022/pie-derivative-chart/radial-bar/radial-bar-chart.component.mjs +1 -1
- package/esm2022/pod-status/component.mjs +1 -1
- package/esm2022/searchable-selector/component.mjs +1 -1
- package/esm2022/skeleton/item/component.mjs +1 -1
- package/esm2022/skeleton/nav-skeleton/component.mjs +1 -1
- package/esm2022/table/component.mjs +1 -1
- package/esm2022/view-chart/custom-template/dropdown-legend.mjs +1 -1
- package/esm2022/view-chart/legend/legend.component.mjs +1 -1
- package/esm2022/view-chart/view-chart.component.mjs +1 -1
- package/esm2022/view-zchart/custom-template/dropdown-legend.mjs +1 -1
- package/esm2022/view-zchart/legend/legend.component.mjs +1 -1
- package/esm2022/view-zchart/view-zchart.component.mjs +1 -1
- package/esm2022/widget/card-section/card-section.component.mjs +1 -1
- package/esm2022/widget/confirm-delete/confirm-delete.component.mjs +1 -1
- package/esm2022/widget/current-time/component.mjs +1 -1
- package/esm2022/widget/date-range-picker/component.mjs +1 -1
- package/esm2022/widget/field-set/column/component.mjs +2 -2
- package/esm2022/widget/field-set/group/component.mjs +1 -1
- package/esm2022/widget/field-set/item/component.mjs +1 -1
- package/esm2022/widget/foldable-block/component.mjs +1 -1
- package/esm2022/widget/foldable-item-in-table/component.mjs +1 -1
- package/esm2022/widget/loading-mask/loading-mask.component.mjs +1 -1
- package/esm2022/widget/password-input/component.mjs +1 -1
- package/esm2022/widget/relative-time/component.mjs +1 -1
- package/esm2022/widget/resource-label/component.mjs +1 -1
- package/esm2022/widget/resource-multi-select/component.mjs +1 -1
- package/esm2022/widget/search-panel/component.mjs +1 -1
- package/esm2022/widget/search-panel/search-item/component.mjs +1 -1
- package/esm2022/widget/status-icon/status-icon.component.mjs +1 -1
- package/esm2022/widget/tags-label/component.mjs +1 -1
- package/esm2022/widget/terminating-tag/component.mjs +1 -1
- package/esm2022/widget/text-ellipsis/component.mjs +1 -1
- package/esm2022/widget/text-with-url/component.mjs +1 -1
- package/esm2022/widget/zero-state/zero-state.component.mjs +1 -1
- package/esm2022/workload-status-icon/component.mjs +1 -1
- package/esm2022/xterm/xterm-terminal/xterm-terminal.component.mjs +1 -1
- package/esm2022/xterm/xterm.component.mjs +1 -1
- package/package.json +1 -1
- package/styles/global.scss +4 -0
|
@@ -0,0 +1,482 @@
|
|
|
1
|
+
import { IconModule, TabsModule, ButtonModule } from '@alauda/ui';
|
|
2
|
+
import { NgIf, NgForOf, KeyValuePipe } from '@angular/common';
|
|
3
|
+
import { HttpClient } from '@angular/common/http';
|
|
4
|
+
import { Component, Input, ChangeDetectionStrategy, Output, EventEmitter, ChangeDetectorRef, } from '@angular/core';
|
|
5
|
+
import { of, map, catchError } from 'rxjs';
|
|
6
|
+
import { ParseJsonTranslatePipe } from '../../core/pipes/parse-json-translate.pipe';
|
|
7
|
+
import { KubernetesSchemaService } from '../../core/services/kubernetes-schema.service';
|
|
8
|
+
import { TRANSLATE_MODULE } from '../../translate/translate.module';
|
|
9
|
+
import { BUILT_IN_YAML_EXAMPLES } from '../yaml-examples';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "../../core/services/kubernetes-schema.service";
|
|
12
|
+
import * as i2 from "@angular/common/http";
|
|
13
|
+
import * as i3 from "../../translate/translate.pipe";
|
|
14
|
+
import * as i4 from "@alauda/ui";
|
|
15
|
+
function ResourceYamlSidebarComponent_aui_tab_5_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
16
|
+
i0.ɵɵelementContainerStart(0);
|
|
17
|
+
i0.ɵɵtext(1, " Schema ");
|
|
18
|
+
i0.ɵɵelementContainerEnd();
|
|
19
|
+
} }
|
|
20
|
+
function ResourceYamlSidebarComponent_aui_tab_5_ng_container_2_div_1_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
21
|
+
i0.ɵɵelement(0, "div", 13);
|
|
22
|
+
i0.ɵɵpipe(1, "aclParseJsonTranslate");
|
|
23
|
+
} if (rf & 2) {
|
|
24
|
+
const ctx_r0 = i0.ɵɵnextContext(4);
|
|
25
|
+
i0.ɵɵproperty("innerHTML", ctx_r0.processDescription(i0.ɵɵpipeBind1(1, 1, ctx_r0.schema.description)), i0.ɵɵsanitizeHtml);
|
|
26
|
+
} }
|
|
27
|
+
function ResourceYamlSidebarComponent_aui_tab_5_ng_container_2_div_1_ng_container_3_Template(rf, ctx) { if (rf & 1) {
|
|
28
|
+
const _r2 = i0.ɵɵgetCurrentView();
|
|
29
|
+
i0.ɵɵelementContainerStart(0);
|
|
30
|
+
i0.ɵɵelementStart(1, "a", 14);
|
|
31
|
+
i0.ɵɵlistener("click", function ResourceYamlSidebarComponent_aui_tab_5_ng_container_2_div_1_ng_container_3_Template_a_click_1_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r0.refresh()); });
|
|
32
|
+
i0.ɵɵtext(2);
|
|
33
|
+
i0.ɵɵelementEnd();
|
|
34
|
+
i0.ɵɵelementContainerEnd();
|
|
35
|
+
} if (rf & 2) {
|
|
36
|
+
const ctx_r0 = i0.ɵɵnextContext(4);
|
|
37
|
+
i0.ɵɵadvance(2);
|
|
38
|
+
i0.ɵɵtextInterpolate(ctx_r0.resourceKind);
|
|
39
|
+
} }
|
|
40
|
+
function ResourceYamlSidebarComponent_aui_tab_5_ng_container_2_div_1_ng_container_4_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
41
|
+
const _r3 = i0.ɵɵgetCurrentView();
|
|
42
|
+
i0.ɵɵelementContainerStart(0);
|
|
43
|
+
i0.ɵɵelementStart(1, "span", 15);
|
|
44
|
+
i0.ɵɵtext(2, ">");
|
|
45
|
+
i0.ɵɵelementEnd();
|
|
46
|
+
i0.ɵɵelementStart(3, "a", 14);
|
|
47
|
+
i0.ɵɵlistener("click", function ResourceYamlSidebarComponent_aui_tab_5_ng_container_2_div_1_ng_container_4_ng_container_1_Template_a_click_3_listener() { i0.ɵɵrestoreView(_r3); const i_r4 = i0.ɵɵnextContext().index; const ctx_r0 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r0.navigateToPath(i_r4)); });
|
|
48
|
+
i0.ɵɵtext(4);
|
|
49
|
+
i0.ɵɵelementEnd();
|
|
50
|
+
i0.ɵɵelementContainerEnd();
|
|
51
|
+
} if (rf & 2) {
|
|
52
|
+
const p_r5 = i0.ɵɵnextContext().$implicit;
|
|
53
|
+
i0.ɵɵadvance(4);
|
|
54
|
+
i0.ɵɵtextInterpolate(p_r5);
|
|
55
|
+
} }
|
|
56
|
+
function ResourceYamlSidebarComponent_aui_tab_5_ng_container_2_div_1_ng_container_4_ng_container_2_Template(rf, ctx) { if (rf & 1) {
|
|
57
|
+
i0.ɵɵelementContainerStart(0);
|
|
58
|
+
i0.ɵɵelementStart(1, "span", 15);
|
|
59
|
+
i0.ɵɵtext(2, ">");
|
|
60
|
+
i0.ɵɵelementEnd();
|
|
61
|
+
i0.ɵɵelementStart(3, "span");
|
|
62
|
+
i0.ɵɵtext(4);
|
|
63
|
+
i0.ɵɵelementEnd();
|
|
64
|
+
i0.ɵɵelementContainerEnd();
|
|
65
|
+
} if (rf & 2) {
|
|
66
|
+
const p_r5 = i0.ɵɵnextContext().$implicit;
|
|
67
|
+
i0.ɵɵadvance(4);
|
|
68
|
+
i0.ɵɵtextInterpolate(p_r5);
|
|
69
|
+
} }
|
|
70
|
+
function ResourceYamlSidebarComponent_aui_tab_5_ng_container_2_div_1_ng_container_4_Template(rf, ctx) { if (rf & 1) {
|
|
71
|
+
i0.ɵɵelementContainerStart(0);
|
|
72
|
+
i0.ɵɵtemplate(1, ResourceYamlSidebarComponent_aui_tab_5_ng_container_2_div_1_ng_container_4_ng_container_1_Template, 5, 1, "ng-container", 3)(2, ResourceYamlSidebarComponent_aui_tab_5_ng_container_2_div_1_ng_container_4_ng_container_2_Template, 5, 1, "ng-container", 3);
|
|
73
|
+
i0.ɵɵelementContainerEnd();
|
|
74
|
+
} if (rf & 2) {
|
|
75
|
+
const isLast_r6 = ctx.last;
|
|
76
|
+
i0.ɵɵadvance();
|
|
77
|
+
i0.ɵɵproperty("ngIf", !isLast_r6);
|
|
78
|
+
i0.ɵɵadvance();
|
|
79
|
+
i0.ɵɵproperty("ngIf", isLast_r6);
|
|
80
|
+
} }
|
|
81
|
+
function ResourceYamlSidebarComponent_aui_tab_5_ng_container_2_div_1_div_6_p_7_Template(rf, ctx) { if (rf & 1) {
|
|
82
|
+
const _r7 = i0.ɵɵgetCurrentView();
|
|
83
|
+
i0.ɵɵelementStart(0, "p")(1, "a", 14);
|
|
84
|
+
i0.ɵɵlistener("click", function ResourceYamlSidebarComponent_aui_tab_5_ng_container_2_div_1_div_6_p_7_Template_a_click_1_listener() { i0.ɵɵrestoreView(_r7); const item_r8 = i0.ɵɵnextContext().$implicit; const ctx_r0 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r0.drillDownToProperty(item_r8.key)); });
|
|
85
|
+
i0.ɵɵtext(2);
|
|
86
|
+
i0.ɵɵpipe(3, "translate");
|
|
87
|
+
i0.ɵɵelementEnd()();
|
|
88
|
+
} if (rf & 2) {
|
|
89
|
+
i0.ɵɵadvance(2);
|
|
90
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 1, "view_detail"), " ");
|
|
91
|
+
} }
|
|
92
|
+
function ResourceYamlSidebarComponent_aui_tab_5_ng_container_2_div_1_div_6_Template(rf, ctx) { if (rf & 1) {
|
|
93
|
+
i0.ɵɵelementStart(0, "div", 16)(1, "h3")(2, "span");
|
|
94
|
+
i0.ɵɵtext(3);
|
|
95
|
+
i0.ɵɵelementEnd();
|
|
96
|
+
i0.ɵɵelementStart(4, "span", 17);
|
|
97
|
+
i0.ɵɵtext(5);
|
|
98
|
+
i0.ɵɵelementEnd()();
|
|
99
|
+
i0.ɵɵelement(6, "p", 18);
|
|
100
|
+
i0.ɵɵtemplate(7, ResourceYamlSidebarComponent_aui_tab_5_ng_container_2_div_1_div_6_p_7_Template, 4, 3, "p", 3);
|
|
101
|
+
i0.ɵɵelementEnd();
|
|
102
|
+
} if (rf & 2) {
|
|
103
|
+
const item_r8 = ctx.$implicit;
|
|
104
|
+
const ctx_r0 = i0.ɵɵnextContext(4);
|
|
105
|
+
i0.ɵɵadvance(3);
|
|
106
|
+
i0.ɵɵtextInterpolate(item_r8.key);
|
|
107
|
+
i0.ɵɵadvance(2);
|
|
108
|
+
i0.ɵɵtextInterpolate(item_r8.value.type);
|
|
109
|
+
i0.ɵɵadvance();
|
|
110
|
+
i0.ɵɵproperty("innerHTML", ctx_r0.processDescription(item_r8.value.description), i0.ɵɵsanitizeHtml);
|
|
111
|
+
i0.ɵɵadvance();
|
|
112
|
+
i0.ɵɵproperty("ngIf", ctx_r0.hasViewableContent(item_r8.value));
|
|
113
|
+
} }
|
|
114
|
+
function ResourceYamlSidebarComponent_aui_tab_5_ng_container_2_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
115
|
+
i0.ɵɵelementStart(0, "div", 7);
|
|
116
|
+
i0.ɵɵtemplate(1, ResourceYamlSidebarComponent_aui_tab_5_ng_container_2_div_1_div_1_Template, 2, 3, "div", 8);
|
|
117
|
+
i0.ɵɵelementStart(2, "div", 9);
|
|
118
|
+
i0.ɵɵtemplate(3, ResourceYamlSidebarComponent_aui_tab_5_ng_container_2_div_1_ng_container_3_Template, 3, 1, "ng-container", 3)(4, ResourceYamlSidebarComponent_aui_tab_5_ng_container_2_div_1_ng_container_4_Template, 3, 2, "ng-container", 10);
|
|
119
|
+
i0.ɵɵelementEnd();
|
|
120
|
+
i0.ɵɵelementStart(5, "div", 11);
|
|
121
|
+
i0.ɵɵtemplate(6, ResourceYamlSidebarComponent_aui_tab_5_ng_container_2_div_1_div_6_Template, 8, 4, "div", 12);
|
|
122
|
+
i0.ɵɵpipe(7, "keyvalue");
|
|
123
|
+
i0.ɵɵelementEnd()();
|
|
124
|
+
} if (rf & 2) {
|
|
125
|
+
const ctx_r0 = i0.ɵɵnextContext(3);
|
|
126
|
+
i0.ɵɵadvance();
|
|
127
|
+
i0.ɵɵproperty("ngIf", ctx_r0.schema.description);
|
|
128
|
+
i0.ɵɵadvance(2);
|
|
129
|
+
i0.ɵɵproperty("ngIf", ctx_r0.path.length);
|
|
130
|
+
i0.ɵɵadvance();
|
|
131
|
+
i0.ɵɵproperty("ngForOf", ctx_r0.path);
|
|
132
|
+
i0.ɵɵadvance(2);
|
|
133
|
+
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(7, 4, ctx_r0.properties));
|
|
134
|
+
} }
|
|
135
|
+
function ResourceYamlSidebarComponent_aui_tab_5_ng_container_2_Template(rf, ctx) { if (rf & 1) {
|
|
136
|
+
i0.ɵɵelementContainerStart(0);
|
|
137
|
+
i0.ɵɵtemplate(1, ResourceYamlSidebarComponent_aui_tab_5_ng_container_2_div_1_Template, 8, 6, "div", 6);
|
|
138
|
+
i0.ɵɵelementContainerEnd();
|
|
139
|
+
} if (rf & 2) {
|
|
140
|
+
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
141
|
+
i0.ɵɵadvance();
|
|
142
|
+
i0.ɵɵproperty("ngIf", ctx_r0.schema);
|
|
143
|
+
} }
|
|
144
|
+
function ResourceYamlSidebarComponent_aui_tab_5_Template(rf, ctx) { if (rf & 1) {
|
|
145
|
+
i0.ɵɵelementStart(0, "aui-tab");
|
|
146
|
+
i0.ɵɵtemplate(1, ResourceYamlSidebarComponent_aui_tab_5_ng_container_1_Template, 2, 0, "ng-container", 4)(2, ResourceYamlSidebarComponent_aui_tab_5_ng_container_2_Template, 2, 1, "ng-container", 5);
|
|
147
|
+
i0.ɵɵelementEnd();
|
|
148
|
+
} }
|
|
149
|
+
function ResourceYamlSidebarComponent_aui_tab_6_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
150
|
+
i0.ɵɵelementContainerStart(0);
|
|
151
|
+
i0.ɵɵtext(1, " Examples ");
|
|
152
|
+
i0.ɵɵelementContainerEnd();
|
|
153
|
+
} }
|
|
154
|
+
function ResourceYamlSidebarComponent_aui_tab_6_ng_container_2_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
155
|
+
const _r9 = i0.ɵɵgetCurrentView();
|
|
156
|
+
i0.ɵɵelementStart(0, "div", 21)(1, "h3");
|
|
157
|
+
i0.ɵɵtext(2);
|
|
158
|
+
i0.ɵɵelementStart(3, "span");
|
|
159
|
+
i0.ɵɵtext(4);
|
|
160
|
+
i0.ɵɵelementEnd()();
|
|
161
|
+
i0.ɵɵelement(5, "p", 18);
|
|
162
|
+
i0.ɵɵelementStart(6, "p", 22)(7, "a", 14);
|
|
163
|
+
i0.ɵɵlistener("click", function ResourceYamlSidebarComponent_aui_tab_6_ng_container_2_div_2_Template_a_click_7_listener() { const example_r10 = i0.ɵɵrestoreView(_r9).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.tryExample(example_r10)); });
|
|
164
|
+
i0.ɵɵelement(8, "aui-icon", 23);
|
|
165
|
+
i0.ɵɵelementStart(9, "span");
|
|
166
|
+
i0.ɵɵtext(10, "Try it");
|
|
167
|
+
i0.ɵɵelementEnd()();
|
|
168
|
+
i0.ɵɵelementStart(11, "a", 14);
|
|
169
|
+
i0.ɵɵlistener("click", function ResourceYamlSidebarComponent_aui_tab_6_ng_container_2_div_2_Template_a_click_11_listener() { const example_r10 = i0.ɵɵrestoreView(_r9).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.downloadYaml(example_r10)); });
|
|
170
|
+
i0.ɵɵelement(12, "aui-icon", 24);
|
|
171
|
+
i0.ɵɵelementStart(13, "span");
|
|
172
|
+
i0.ɵɵtext(14, "Download YAML");
|
|
173
|
+
i0.ɵɵelementEnd()()()();
|
|
174
|
+
} if (rf & 2) {
|
|
175
|
+
const example_r10 = ctx.$implicit;
|
|
176
|
+
const i_r11 = ctx.index;
|
|
177
|
+
const ctx_r0 = i0.ɵɵnextContext(3);
|
|
178
|
+
i0.ɵɵadvance(2);
|
|
179
|
+
i0.ɵɵtextInterpolate1(" ", i_r11 + 1, ". ");
|
|
180
|
+
i0.ɵɵadvance(2);
|
|
181
|
+
i0.ɵɵtextInterpolate(example_r10.title);
|
|
182
|
+
i0.ɵɵadvance();
|
|
183
|
+
i0.ɵɵproperty("innerHTML", ctx_r0.processDescription(example_r10.description), i0.ɵɵsanitizeHtml);
|
|
184
|
+
} }
|
|
185
|
+
function ResourceYamlSidebarComponent_aui_tab_6_ng_container_2_Template(rf, ctx) { if (rf & 1) {
|
|
186
|
+
i0.ɵɵelementContainerStart(0);
|
|
187
|
+
i0.ɵɵelementStart(1, "div", 19);
|
|
188
|
+
i0.ɵɵtemplate(2, ResourceYamlSidebarComponent_aui_tab_6_ng_container_2_div_2_Template, 15, 3, "div", 20);
|
|
189
|
+
i0.ɵɵelementEnd();
|
|
190
|
+
i0.ɵɵelementContainerEnd();
|
|
191
|
+
} if (rf & 2) {
|
|
192
|
+
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
193
|
+
i0.ɵɵadvance(2);
|
|
194
|
+
i0.ɵɵproperty("ngForOf", ctx_r0.examples);
|
|
195
|
+
} }
|
|
196
|
+
function ResourceYamlSidebarComponent_aui_tab_6_Template(rf, ctx) { if (rf & 1) {
|
|
197
|
+
i0.ɵɵelementStart(0, "aui-tab");
|
|
198
|
+
i0.ɵɵtemplate(1, ResourceYamlSidebarComponent_aui_tab_6_ng_container_1_Template, 2, 0, "ng-container", 4)(2, ResourceYamlSidebarComponent_aui_tab_6_ng_container_2_Template, 3, 1, "ng-container", 5);
|
|
199
|
+
i0.ɵɵelementEnd();
|
|
200
|
+
} }
|
|
201
|
+
export class ResourceYamlSidebarComponent {
|
|
202
|
+
constructor(schemaService, http, cdr) {
|
|
203
|
+
this.schemaService = schemaService;
|
|
204
|
+
this.http = http;
|
|
205
|
+
this.cdr = cdr;
|
|
206
|
+
this.close = new EventEmitter();
|
|
207
|
+
this.tryYaml = new EventEmitter();
|
|
208
|
+
this.schemaEnable = true;
|
|
209
|
+
this.exampleEnable = true;
|
|
210
|
+
this.DEFINITIONS_PREFIX = '#/definitions/';
|
|
211
|
+
this.path = [];
|
|
212
|
+
this.examples = [];
|
|
213
|
+
this.hasSchema = false;
|
|
214
|
+
this.hasExamples = false;
|
|
215
|
+
}
|
|
216
|
+
ngOnInit() {
|
|
217
|
+
this.refresh();
|
|
218
|
+
this.loadExamples();
|
|
219
|
+
}
|
|
220
|
+
ngOnChanges(changes) {
|
|
221
|
+
if (changes.schema || changes.resource) {
|
|
222
|
+
this.refresh();
|
|
223
|
+
this.loadExamples();
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
refresh() {
|
|
227
|
+
if (this.schema) {
|
|
228
|
+
this.currentSchema = this.schema;
|
|
229
|
+
this.properties = this.schema.properties || {};
|
|
230
|
+
this.path = [];
|
|
231
|
+
this.hasSchema = true;
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
this.hasSchema = false;
|
|
235
|
+
}
|
|
236
|
+
if (this.resource) {
|
|
237
|
+
this.resourceKind = this.resource.kind || 'Resource';
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
loadExamples() {
|
|
241
|
+
if (!this.resource) {
|
|
242
|
+
this.examples = [];
|
|
243
|
+
this.hasExamples = false;
|
|
244
|
+
this.cdr.markForCheck();
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
247
|
+
const resourceKey = `${this.resource.apiVersion}.${this.resource.kind}`;
|
|
248
|
+
const builtInExamples = BUILT_IN_YAML_EXAMPLES[resourceKey] || [];
|
|
249
|
+
// 加载 ConsoleYAMLSample CRD 中的示例
|
|
250
|
+
this.loadConsoleYAMLSamples().subscribe({
|
|
251
|
+
next: crdExamples => {
|
|
252
|
+
this.examples = [
|
|
253
|
+
...builtInExamples,
|
|
254
|
+
...(this.extraExamples || []),
|
|
255
|
+
...crdExamples,
|
|
256
|
+
];
|
|
257
|
+
this.hasExamples = this.examples.length > 0;
|
|
258
|
+
this.cdr.markForCheck();
|
|
259
|
+
},
|
|
260
|
+
error: () => {
|
|
261
|
+
// 如果加载 CRD 示例失败,只使用内置示例
|
|
262
|
+
this.examples = builtInExamples;
|
|
263
|
+
this.hasExamples = this.examples.length > 0;
|
|
264
|
+
this.cdr.markForCheck();
|
|
265
|
+
},
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
loadConsoleYAMLSamples() {
|
|
269
|
+
if (!this.resource) {
|
|
270
|
+
return of([]);
|
|
271
|
+
}
|
|
272
|
+
// 构建查询 ConsoleYAMLSample 的 API 路径
|
|
273
|
+
const apiPath = '/apis/console.alauda.io/v1/consoleyamlsamples';
|
|
274
|
+
return this.http.get(apiPath).pipe(map(response => {
|
|
275
|
+
return response.items
|
|
276
|
+
.filter(sample => {
|
|
277
|
+
const target = sample.spec.targetResource;
|
|
278
|
+
return (target.apiVersion === this.resource.apiVersion &&
|
|
279
|
+
target.kind === this.resource.kind);
|
|
280
|
+
})
|
|
281
|
+
.map(sample => ({
|
|
282
|
+
title: sample.spec.title,
|
|
283
|
+
description: sample.spec.description,
|
|
284
|
+
yaml: sample.spec.yaml,
|
|
285
|
+
snippet: sample.spec.snippet,
|
|
286
|
+
}));
|
|
287
|
+
}), catchError(() => of([])));
|
|
288
|
+
}
|
|
289
|
+
drillDownToProperty(name) {
|
|
290
|
+
const property = this.currentSchema.properties?.[name];
|
|
291
|
+
if (property) {
|
|
292
|
+
let targetSchema = null;
|
|
293
|
+
// 处理 $ref 引用
|
|
294
|
+
if (property.$ref) {
|
|
295
|
+
const ref = property.$ref;
|
|
296
|
+
if (ref.startsWith(this.DEFINITIONS_PREFIX)) {
|
|
297
|
+
const definitionName = ref.replace(this.DEFINITIONS_PREFIX, '');
|
|
298
|
+
// 从根 schema 的 definitions 中获取定义
|
|
299
|
+
const rootDefinitions = this.schemaService.definitions;
|
|
300
|
+
targetSchema = rootDefinitions?.[definitionName] || null;
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
// 处理普通的嵌套属性
|
|
304
|
+
else if (property.properties || property.items?.properties) {
|
|
305
|
+
targetSchema = property.items?.properties ? property.items : property;
|
|
306
|
+
}
|
|
307
|
+
if (targetSchema) {
|
|
308
|
+
this.currentSchema = targetSchema;
|
|
309
|
+
this.path.push(name);
|
|
310
|
+
this.properties = targetSchema.properties || {};
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
navigateToPath(index) {
|
|
315
|
+
const targetPath = this.path.slice(0, index + 1);
|
|
316
|
+
this.path = [...targetPath];
|
|
317
|
+
let currentObj = this.schema;
|
|
318
|
+
for (const pathSegment of targetPath) {
|
|
319
|
+
const property = currentObj.properties?.[pathSegment];
|
|
320
|
+
if (property) {
|
|
321
|
+
// 处理 $ref 引用
|
|
322
|
+
if (property.$ref) {
|
|
323
|
+
const ref = property.$ref;
|
|
324
|
+
if (ref.startsWith(this.DEFINITIONS_PREFIX)) {
|
|
325
|
+
const definitionName = ref.replace(this.DEFINITIONS_PREFIX, '');
|
|
326
|
+
const rootDefinitions = this.schema?.definitions;
|
|
327
|
+
const definition = rootDefinitions?.[definitionName];
|
|
328
|
+
if (definition) {
|
|
329
|
+
currentObj = definition;
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
// 处理普通的嵌套属性
|
|
334
|
+
else {
|
|
335
|
+
currentObj = property.items?.properties ? property.items : property;
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
this.currentSchema = currentObj;
|
|
340
|
+
this.properties = currentObj.properties || {};
|
|
341
|
+
}
|
|
342
|
+
hasNestedProperties(property) {
|
|
343
|
+
return ((property.type === 'object' &&
|
|
344
|
+
property.properties &&
|
|
345
|
+
Object.keys(property.properties).length > 0) ||
|
|
346
|
+
(property.type === 'array' &&
|
|
347
|
+
property.items &&
|
|
348
|
+
typeof property.items === 'object' &&
|
|
349
|
+
property.items.properties &&
|
|
350
|
+
Object.keys(property.items.properties || {})
|
|
351
|
+
.length > 0));
|
|
352
|
+
}
|
|
353
|
+
getPropertyType(property) {
|
|
354
|
+
if (property.type) {
|
|
355
|
+
if (Array.isArray(property.type)) {
|
|
356
|
+
return property.type.join(' | ');
|
|
357
|
+
}
|
|
358
|
+
return property.type;
|
|
359
|
+
}
|
|
360
|
+
return 'unknown';
|
|
361
|
+
}
|
|
362
|
+
isRequired(propertyName) {
|
|
363
|
+
return this.currentSchema?.required?.includes(propertyName) || false;
|
|
364
|
+
}
|
|
365
|
+
/**
|
|
366
|
+
* 检查属性是否有 $ref 引用或嵌套属性
|
|
367
|
+
*/
|
|
368
|
+
hasViewableContent(property) {
|
|
369
|
+
return (
|
|
370
|
+
// 有 properties 的对象
|
|
371
|
+
(property.type === 'object' &&
|
|
372
|
+
property.properties &&
|
|
373
|
+
Object.keys(property.properties).length > 0) ||
|
|
374
|
+
// 有 properties 的数组项
|
|
375
|
+
(property.type === 'array' &&
|
|
376
|
+
property.items &&
|
|
377
|
+
typeof property.items === 'object' &&
|
|
378
|
+
property.items.properties &&
|
|
379
|
+
Object.keys(property.items.properties || {})
|
|
380
|
+
.length > 0) ||
|
|
381
|
+
// 有 $ref 引用
|
|
382
|
+
!!property.$ref);
|
|
383
|
+
}
|
|
384
|
+
/**
|
|
385
|
+
* 检查属性是否有 $ref 引用
|
|
386
|
+
*/
|
|
387
|
+
hasRefProperty(property) {
|
|
388
|
+
return !!property.$ref;
|
|
389
|
+
}
|
|
390
|
+
/**
|
|
391
|
+
* 获取 $ref 引用的定义名称
|
|
392
|
+
*/
|
|
393
|
+
getRefDefinitionName(property) {
|
|
394
|
+
const ref = property.$ref;
|
|
395
|
+
if (ref && typeof ref === 'string') {
|
|
396
|
+
// 从 "#/definitions/io.k8s.api.apps.v1.DeploymentSpec" 中提取定义名称
|
|
397
|
+
if (ref.startsWith(this.DEFINITIONS_PREFIX)) {
|
|
398
|
+
return ref.replace(this.DEFINITIONS_PREFIX, '');
|
|
399
|
+
}
|
|
400
|
+
const parts = ref.split('/');
|
|
401
|
+
return parts[parts.length - 1] || ref;
|
|
402
|
+
}
|
|
403
|
+
return '';
|
|
404
|
+
}
|
|
405
|
+
// Examples 相关方法
|
|
406
|
+
tryExample(example) {
|
|
407
|
+
// 触发事件,让父组件处理 try it 功能,将 YAML 内容发送给父组件
|
|
408
|
+
this.tryYaml.emit(example.yaml);
|
|
409
|
+
}
|
|
410
|
+
downloadYaml(example) {
|
|
411
|
+
const blob = new Blob([example.yaml], { type: 'text/yaml' });
|
|
412
|
+
const url = window.URL.createObjectURL(blob);
|
|
413
|
+
const link = document.createElement('a');
|
|
414
|
+
link.href = url;
|
|
415
|
+
link.download = `${example.title.toLowerCase().replace(/\s+/g, '-')}.yaml`;
|
|
416
|
+
document.body.appendChild(link);
|
|
417
|
+
link.click();
|
|
418
|
+
document.body.removeChild(link);
|
|
419
|
+
window.URL.revokeObjectURL(url);
|
|
420
|
+
}
|
|
421
|
+
// 处理描述中的链接
|
|
422
|
+
processDescription(description) {
|
|
423
|
+
if (!description)
|
|
424
|
+
return '';
|
|
425
|
+
// 将 URL 转换为可点击的链接
|
|
426
|
+
const urlRegex = /(https?:\/\/[^\s]+)/g;
|
|
427
|
+
return description.replace(urlRegex, '<a href="$1" target="_blank" rel="noopener noreferrer">$1</a>');
|
|
428
|
+
}
|
|
429
|
+
static { this.ɵfac = function ResourceYamlSidebarComponent_Factory(t) { return new (t || ResourceYamlSidebarComponent)(i0.ɵɵdirectiveInject(i1.KubernetesSchemaService), i0.ɵɵdirectiveInject(i2.HttpClient), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); }; }
|
|
430
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ResourceYamlSidebarComponent, selectors: [["acl-resource-yaml-sidebar"]], inputs: { resource: "resource", schema: "schema", schemaEnable: "schemaEnable", exampleEnable: "exampleEnable", extraExamples: "extraExamples" }, outputs: { close: "close", tryYaml: "tryYaml" }, standalone: true, features: [i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature], decls: 7, vars: 3, consts: [[1, "schema-header"], ["icon", "xmark", 3, "click"], ["type", "card"], [4, "ngIf"], [4, "auiTabLabel"], [4, "auiTabContent"], ["class", "schema-content", 4, "ngIf"], [1, "schema-content"], ["class", "schema-desc", 3, "innerHTML", 4, "ngIf"], [1, "schema-path"], [4, "ngFor", "ngForOf"], [1, "schema-list"], ["class", "schema-item", 4, "ngFor", "ngForOf"], [1, "schema-desc", 3, "innerHTML"], ["href", "javascript:", 3, "click"], [1, "path-mark"], [1, "schema-item"], [1, "obj-type"], [3, "innerHTML"], [1, "example-list"], ["class", "example-item", 4, "ngFor", "ngForOf"], [1, "example-item"], [1, "tw-flex", "tw-justify-between"], ["icon", "arrow_turn_up", "size", "14", "margin", "right"], ["icon", "download", "size", "14", "margin", "right"]], template: function ResourceYamlSidebarComponent_Template(rf, ctx) { if (rf & 1) {
|
|
431
|
+
i0.ɵɵelementStart(0, "div", 0)(1, "span");
|
|
432
|
+
i0.ɵɵtext(2);
|
|
433
|
+
i0.ɵɵelementEnd();
|
|
434
|
+
i0.ɵɵelementStart(3, "aui-icon", 1);
|
|
435
|
+
i0.ɵɵlistener("click", function ResourceYamlSidebarComponent_Template_aui_icon_click_3_listener() { return ctx.close.next(); });
|
|
436
|
+
i0.ɵɵelementEnd()();
|
|
437
|
+
i0.ɵɵelementStart(4, "aui-tab-group", 2);
|
|
438
|
+
i0.ɵɵtemplate(5, ResourceYamlSidebarComponent_aui_tab_5_Template, 3, 0, "aui-tab", 3)(6, ResourceYamlSidebarComponent_aui_tab_6_Template, 3, 0, "aui-tab", 3);
|
|
439
|
+
i0.ɵɵelementEnd();
|
|
440
|
+
} if (rf & 2) {
|
|
441
|
+
i0.ɵɵadvance(2);
|
|
442
|
+
i0.ɵɵtextInterpolate(ctx.resourceKind);
|
|
443
|
+
i0.ɵɵadvance(3);
|
|
444
|
+
i0.ɵɵproperty("ngIf", ctx.schemaEnable && ctx.hasSchema);
|
|
445
|
+
i0.ɵɵadvance();
|
|
446
|
+
i0.ɵɵproperty("ngIf", ctx.exampleEnable && ctx.hasExamples);
|
|
447
|
+
} }, dependencies: [NgIf,
|
|
448
|
+
NgForOf,
|
|
449
|
+
KeyValuePipe, i3.TranslatePipe, ParseJsonTranslatePipe,
|
|
450
|
+
IconModule, i4.IconComponent, TabsModule, i4.TabGroupComponent, i4.TabComponent, i4.TabLabelDirective, i4.TabContentDirective, ButtonModule], styles: ["[_nghost-%COMP%]{display:block;box-sizing:border-box;min-width:360px;padding:16px;background-color:rgb(var(--aui-color-n-10));box-shadow:0 0 4px rgba(var(--aui-color-n-1),.16);margin-left:12px;overflow-y:scroll}[_nghost-%COMP%]::-webkit-scrollbar{width:8px;height:4px}[_nghost-%COMP%]::-webkit-scrollbar-thumb{border-radius:4px;background-color:rgb(var(--aui-color-n-7))}[_nghost-%COMP%]::-webkit-scrollbar-thumb:hover{background-color:rgb(var(--aui-color-n-5))}[_nghost-%COMP%]::-webkit-scrollbar-corner{background-color:transparent}aui-tab-group[_ngcontent-%COMP%]{display:block;margin-top:5px}.schema-header[_ngcontent-%COMP%]{height:40px;display:flex;justify-content:space-between;align-items:center;font-size:18px}.schema-header[_ngcontent-%COMP%] aui-icon[_ngcontent-%COMP%]{font-size:16px;color:rgb(var(--aui-color-n-6));cursor:pointer}.schema-header[_ngcontent-%COMP%] aui-icon[_ngcontent-%COMP%]:hover{color:rgb(var(--aui-color-primary))}.schema-content[_ngcontent-%COMP%]{line-height:20px;overflow-y:auto;height:calc(100% - 40px)}.schema-content[_ngcontent-%COMP%]::-webkit-scrollbar{width:8px;height:4px}.schema-content[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{border-radius:4px;background-color:rgb(var(--aui-color-n-7))}.schema-content[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover{background-color:rgb(var(--aui-color-n-5))}.schema-content[_ngcontent-%COMP%]::-webkit-scrollbar-corner{background-color:transparent}.schema-desc[_ngcontent-%COMP%]{margin-bottom:12px}.schema-desc[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:#007bff;text-decoration:none}.schema-desc[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{text-decoration:underline}.schema-path[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;margin-bottom:12px}.schema-path[_ngcontent-%COMP%] *[_ngcontent-%COMP%]{margin-left:2px;word-break:break-all}.schema-path[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:first-child{margin-right:2px}.schema-path[_ngcontent-%COMP%] .path-mark[_ngcontent-%COMP%]{margin:0 4px;color:rgb(var(--aui-color-n-6))}.schema-list[_ngcontent-%COMP%] .schema-item[_ngcontent-%COMP%], .schema-list[_ngcontent-%COMP%] .example-item[_ngcontent-%COMP%], .example-list[_ngcontent-%COMP%] .schema-item[_ngcontent-%COMP%], .example-list[_ngcontent-%COMP%] .example-item[_ngcontent-%COMP%]{padding-left:16px}.schema-list[_ngcontent-%COMP%] .schema-item[_ngcontent-%COMP%]:not(:last-of-type), .schema-list[_ngcontent-%COMP%] .example-item[_ngcontent-%COMP%]:not(:last-of-type), .example-list[_ngcontent-%COMP%] .schema-item[_ngcontent-%COMP%]:not(:last-of-type), .example-list[_ngcontent-%COMP%] .example-item[_ngcontent-%COMP%]:not(:last-of-type){border-bottom:1px solid rgb(var(--aui-color-border));margin-bottom:12px}.schema-list[_ngcontent-%COMP%] .schema-item[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]:before, .example-list[_ngcontent-%COMP%] .schema-item[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]:before{content:\"\";display:block;width:6px;height:6px;border-radius:50%;background-color:rgb(var(--aui-color-n-6));position:absolute;left:-12px;top:8px}.schema-list[_ngcontent-%COMP%] h3[_ngcontent-%COMP%], .example-list[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{position:relative;font-weight:500;margin-bottom:12px;word-break:break-word}.schema-list[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .example-list[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{margin-right:4px}.schema-list[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] .obj-type[_ngcontent-%COMP%], .example-list[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] .obj-type[_ngcontent-%COMP%]{color:rgb(var(--aui-color-n-4))}.schema-list[_ngcontent-%COMP%] p[_ngcontent-%COMP%], .example-list[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin-bottom:12px;word-break:break-word}.schema-list[_ngcontent-%COMP%] p[_ngcontent-%COMP%] a[_ngcontent-%COMP%], .example-list[_ngcontent-%COMP%] p[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:#007bff;text-decoration:none}.schema-list[_ngcontent-%COMP%] p[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover, .example-list[_ngcontent-%COMP%] p[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{text-decoration:underline}.schema-examples[_ngcontent-%COMP%]{padding:16px}.examples-header[_ngcontent-%COMP%]{margin-bottom:16px}.examples-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:0;font-size:18px;font-weight:600;color:#333}.examples-content[_ngcontent-%COMP%] .examples-list[_ngcontent-%COMP%] .example-item[_ngcontent-%COMP%]{margin-bottom:24px;border:1px solid #e1e5e9;border-radius:6px;overflow:hidden}.examples-content[_ngcontent-%COMP%] .examples-list[_ngcontent-%COMP%] .example-item[_ngcontent-%COMP%]:last-child{margin-bottom:0}.examples-content[_ngcontent-%COMP%] .examples-list[_ngcontent-%COMP%] .example-item[_ngcontent-%COMP%] .example-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background-color:#f8f9fa;border-bottom:1px solid #e1e5e9}.examples-content[_ngcontent-%COMP%] .examples-list[_ngcontent-%COMP%] .example-item[_ngcontent-%COMP%] .example-header[_ngcontent-%COMP%] .example-title[_ngcontent-%COMP%]{margin:0;font-size:16px;font-weight:600;color:#333}.examples-content[_ngcontent-%COMP%] .examples-list[_ngcontent-%COMP%] .example-item[_ngcontent-%COMP%] .example-header[_ngcontent-%COMP%] .example-actions[_ngcontent-%COMP%]{display:flex;gap:8px}.examples-content[_ngcontent-%COMP%] .examples-list[_ngcontent-%COMP%] .example-item[_ngcontent-%COMP%] .example-header[_ngcontent-%COMP%] .example-actions[_ngcontent-%COMP%] .btn[_ngcontent-%COMP%]{padding:4px 12px;font-size:12px;border-radius:4px;cursor:pointer;transition:all .2s ease}.examples-content[_ngcontent-%COMP%] .examples-list[_ngcontent-%COMP%] .example-item[_ngcontent-%COMP%] .example-header[_ngcontent-%COMP%] .example-actions[_ngcontent-%COMP%] .btn.btn-outline-primary[_ngcontent-%COMP%]{color:#007bff;border:1px solid #007bff;background-color:transparent}.examples-content[_ngcontent-%COMP%] .examples-list[_ngcontent-%COMP%] .example-item[_ngcontent-%COMP%] .example-header[_ngcontent-%COMP%] .example-actions[_ngcontent-%COMP%] .btn.btn-outline-primary[_ngcontent-%COMP%]:hover{color:#fff;background-color:#007bff}.examples-content[_ngcontent-%COMP%] .examples-list[_ngcontent-%COMP%] .example-item[_ngcontent-%COMP%] .example-header[_ngcontent-%COMP%] .example-actions[_ngcontent-%COMP%] .btn.btn-outline-secondary[_ngcontent-%COMP%]{color:#6c757d;border:1px solid #6c757d;background-color:transparent}.examples-content[_ngcontent-%COMP%] .examples-list[_ngcontent-%COMP%] .example-item[_ngcontent-%COMP%] .example-header[_ngcontent-%COMP%] .example-actions[_ngcontent-%COMP%] .btn.btn-outline-secondary[_ngcontent-%COMP%]:hover{color:#fff;background-color:#6c757d}.examples-content[_ngcontent-%COMP%] .examples-list[_ngcontent-%COMP%] .example-item[_ngcontent-%COMP%] .example-description[_ngcontent-%COMP%]{padding:12px 16px;color:#666;font-size:14px;line-height:1.5;border-bottom:1px solid #e1e5e9}.examples-content[_ngcontent-%COMP%] .examples-list[_ngcontent-%COMP%] .example-item[_ngcontent-%COMP%] .example-description[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:#007bff;text-decoration:none}.examples-content[_ngcontent-%COMP%] .examples-list[_ngcontent-%COMP%] .example-item[_ngcontent-%COMP%] .example-description[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{text-decoration:underline}.examples-content[_ngcontent-%COMP%] .examples-list[_ngcontent-%COMP%] .example-item[_ngcontent-%COMP%] .example-yaml[_ngcontent-%COMP%]{background-color:#f8f9fa}.examples-content[_ngcontent-%COMP%] .examples-list[_ngcontent-%COMP%] .example-item[_ngcontent-%COMP%] .example-yaml[_ngcontent-%COMP%] pre[_ngcontent-%COMP%]{margin:0;padding:16px;background-color:transparent;border:none;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px;line-height:1.4;color:#333;overflow-x:auto}.examples-content[_ngcontent-%COMP%] .examples-list[_ngcontent-%COMP%] .example-item[_ngcontent-%COMP%] .example-yaml[_ngcontent-%COMP%] pre[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{background-color:transparent;padding:0;color:inherit}"], changeDetection: 0 }); }
|
|
451
|
+
}
|
|
452
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ResourceYamlSidebarComponent, [{
|
|
453
|
+
type: Component,
|
|
454
|
+
args: [{ selector: 'acl-resource-yaml-sidebar', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
455
|
+
NgIf,
|
|
456
|
+
NgForOf,
|
|
457
|
+
KeyValuePipe,
|
|
458
|
+
TRANSLATE_MODULE,
|
|
459
|
+
ParseJsonTranslatePipe,
|
|
460
|
+
IconModule,
|
|
461
|
+
TabsModule,
|
|
462
|
+
ButtonModule,
|
|
463
|
+
], template: "<div class=\"schema-header\">\n <span>{{ resourceKind }}</span>\n <aui-icon\n icon=\"xmark\"\n (click)=\"close.next()\"\n ></aui-icon>\n</div>\n<aui-tab-group type=\"card\">\n <aui-tab *ngIf=\"schemaEnable && hasSchema\">\n <ng-container *auiTabLabel> Schema </ng-container>\n <ng-container *auiTabContent>\n <div\n *ngIf=\"schema\"\n class=\"schema-content\"\n >\n <div\n *ngIf=\"schema.description\"\n class=\"schema-desc\"\n [innerHTML]=\"\n processDescription(schema.description | aclParseJsonTranslate)\n \"\n ></div>\n <div class=\"schema-path\">\n <ng-container *ngIf=\"path.length\">\n <a\n href=\"javascript:\"\n (click)=\"refresh()\"\n >{{ resourceKind }}</a\n >\n </ng-container>\n\n <ng-container *ngFor=\"let p of path; index as i; last as isLast\">\n <ng-container *ngIf=\"!isLast\">\n <span class=\"path-mark\">></span>\n <a\n href=\"javascript:\"\n (click)=\"navigateToPath(i)\"\n >{{ p }}</a\n >\n </ng-container>\n <ng-container *ngIf=\"isLast\">\n <span class=\"path-mark\">></span>\n <span>{{ p }}</span>\n </ng-container>\n </ng-container>\n </div>\n <div class=\"schema-list\">\n <div\n *ngFor=\"let item of properties | keyvalue\"\n class=\"schema-item\"\n >\n <h3>\n <span>{{ item.key }}</span>\n <span class=\"obj-type\">{{ item.value.type }}</span>\n </h3>\n <p [innerHTML]=\"processDescription(item.value.description)\"></p>\n <p *ngIf=\"hasViewableContent(item.value)\">\n <a\n href=\"javascript:\"\n (click)=\"drillDownToProperty(item.key)\"\n >\n {{ 'view_detail' | translate }}\n </a>\n </p>\n </div>\n </div>\n </div>\n </ng-container>\n </aui-tab>\n <aui-tab *ngIf=\"exampleEnable && hasExamples\">\n <ng-container *auiTabLabel> Examples </ng-container>\n <ng-container *auiTabContent>\n <div class=\"example-list\">\n <div\n *ngFor=\"let example of examples; let i = index\"\n class=\"example-item\"\n >\n <h3>\n {{ i + 1 }}. <span>{{ example.title }}</span>\n </h3>\n <p [innerHTML]=\"processDescription(example.description)\"></p>\n <p class=\"tw-flex tw-justify-between\">\n <a\n href=\"javascript:\"\n (click)=\"tryExample(example)\"\n >\n <aui-icon\n icon=\"arrow_turn_up\"\n size=\"14\"\n margin=\"right\"\n ></aui-icon>\n <span>Try it</span>\n </a>\n <a\n href=\"javascript:\"\n (click)=\"downloadYaml(example)\"\n >\n <aui-icon\n icon=\"download\"\n size=\"14\"\n margin=\"right\"\n ></aui-icon>\n <span>Download YAML</span>\n </a>\n </p>\n </div>\n </div>\n </ng-container>\n </aui-tab>\n</aui-tab-group>\n", styles: [":host{display:block;box-sizing:border-box;min-width:360px;padding:16px;background-color:rgb(var(--aui-color-n-10));box-shadow:0 0 4px rgba(var(--aui-color-n-1),.16);margin-left:12px;overflow-y:scroll}:host::-webkit-scrollbar{width:8px;height:4px}:host::-webkit-scrollbar-thumb{border-radius:4px;background-color:rgb(var(--aui-color-n-7))}:host::-webkit-scrollbar-thumb:hover{background-color:rgb(var(--aui-color-n-5))}:host::-webkit-scrollbar-corner{background-color:transparent}aui-tab-group{display:block;margin-top:5px}.schema-header{height:40px;display:flex;justify-content:space-between;align-items:center;font-size:18px}.schema-header aui-icon{font-size:16px;color:rgb(var(--aui-color-n-6));cursor:pointer}.schema-header aui-icon:hover{color:rgb(var(--aui-color-primary))}.schema-content{line-height:20px;overflow-y:auto;height:calc(100% - 40px)}.schema-content::-webkit-scrollbar{width:8px;height:4px}.schema-content::-webkit-scrollbar-thumb{border-radius:4px;background-color:rgb(var(--aui-color-n-7))}.schema-content::-webkit-scrollbar-thumb:hover{background-color:rgb(var(--aui-color-n-5))}.schema-content::-webkit-scrollbar-corner{background-color:transparent}.schema-desc{margin-bottom:12px}.schema-desc a{color:#007bff;text-decoration:none}.schema-desc a:hover{text-decoration:underline}.schema-path{display:flex;flex-wrap:wrap;margin-bottom:12px}.schema-path *{margin-left:2px;word-break:break-all}.schema-path span:first-child{margin-right:2px}.schema-path .path-mark{margin:0 4px;color:rgb(var(--aui-color-n-6))}.schema-list .schema-item,.schema-list .example-item,.example-list .schema-item,.example-list .example-item{padding-left:16px}.schema-list .schema-item:not(:last-of-type),.schema-list .example-item:not(:last-of-type),.example-list .schema-item:not(:last-of-type),.example-list .example-item:not(:last-of-type){border-bottom:1px solid rgb(var(--aui-color-border));margin-bottom:12px}.schema-list .schema-item h3:before,.example-list .schema-item h3:before{content:\"\";display:block;width:6px;height:6px;border-radius:50%;background-color:rgb(var(--aui-color-n-6));position:absolute;left:-12px;top:8px}.schema-list h3,.example-list h3{position:relative;font-weight:500;margin-bottom:12px;word-break:break-word}.schema-list h3 span,.example-list h3 span{margin-right:4px}.schema-list h3 .obj-type,.example-list h3 .obj-type{color:rgb(var(--aui-color-n-4))}.schema-list p,.example-list p{margin-bottom:12px;word-break:break-word}.schema-list p a,.example-list p a{color:#007bff;text-decoration:none}.schema-list p a:hover,.example-list p a:hover{text-decoration:underline}.schema-examples{padding:16px}.examples-header{margin-bottom:16px}.examples-header h3{margin:0;font-size:18px;font-weight:600;color:#333}.examples-content .examples-list .example-item{margin-bottom:24px;border:1px solid #e1e5e9;border-radius:6px;overflow:hidden}.examples-content .examples-list .example-item:last-child{margin-bottom:0}.examples-content .examples-list .example-item .example-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background-color:#f8f9fa;border-bottom:1px solid #e1e5e9}.examples-content .examples-list .example-item .example-header .example-title{margin:0;font-size:16px;font-weight:600;color:#333}.examples-content .examples-list .example-item .example-header .example-actions{display:flex;gap:8px}.examples-content .examples-list .example-item .example-header .example-actions .btn{padding:4px 12px;font-size:12px;border-radius:4px;cursor:pointer;transition:all .2s ease}.examples-content .examples-list .example-item .example-header .example-actions .btn.btn-outline-primary{color:#007bff;border:1px solid #007bff;background-color:transparent}.examples-content .examples-list .example-item .example-header .example-actions .btn.btn-outline-primary:hover{color:#fff;background-color:#007bff}.examples-content .examples-list .example-item .example-header .example-actions .btn.btn-outline-secondary{color:#6c757d;border:1px solid #6c757d;background-color:transparent}.examples-content .examples-list .example-item .example-header .example-actions .btn.btn-outline-secondary:hover{color:#fff;background-color:#6c757d}.examples-content .examples-list .example-item .example-description{padding:12px 16px;color:#666;font-size:14px;line-height:1.5;border-bottom:1px solid #e1e5e9}.examples-content .examples-list .example-item .example-description a{color:#007bff;text-decoration:none}.examples-content .examples-list .example-item .example-description a:hover{text-decoration:underline}.examples-content .examples-list .example-item .example-yaml{background-color:#f8f9fa}.examples-content .examples-list .example-item .example-yaml pre{margin:0;padding:16px;background-color:transparent;border:none;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px;line-height:1.4;color:#333;overflow-x:auto}.examples-content .examples-list .example-item .example-yaml pre code{background-color:transparent;padding:0;color:inherit}\n"] }]
|
|
464
|
+
}], () => [{ type: i1.KubernetesSchemaService }, { type: i2.HttpClient }, { type: i0.ChangeDetectorRef }], { resource: [{
|
|
465
|
+
type: Input
|
|
466
|
+
}], schema: [{
|
|
467
|
+
type: Input
|
|
468
|
+
}],
|
|
469
|
+
// eslint-disable-next-line @angular-eslint/no-output-native
|
|
470
|
+
close: [{
|
|
471
|
+
type: Output
|
|
472
|
+
}], tryYaml: [{
|
|
473
|
+
type: Output
|
|
474
|
+
}], schemaEnable: [{
|
|
475
|
+
type: Input
|
|
476
|
+
}], exampleEnable: [{
|
|
477
|
+
type: Input
|
|
478
|
+
}], extraExamples: [{
|
|
479
|
+
type: Input
|
|
480
|
+
}] }); })();
|
|
481
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ResourceYamlSidebarComponent, { className: "ResourceYamlSidebarComponent", filePath: "code/yaml-sidebar/component.ts", lineNumber: 43 }); })();
|
|
482
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2NvZGUveWFtbC1zaWRlYmFyL2NvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9jb2RlL3lhbWwtc2lkZWJhci90ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNsRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBSUwsdUJBQXVCLEVBQ3ZCLE1BQU0sRUFDTixZQUFZLEVBQ1osaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBYyxFQUFFLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV2RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNwRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUd4RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7OztJQ1p0RCw2QkFBMkI7SUFBQyx3QkFBTzs7OztJQU0vQiwwQkFNTzs7OztJQUhMLHlIQUVDOzs7O0lBR0QsNkJBQWtDO0lBQ2hDLDZCQUdHO0lBREQsNE5BQVMsZ0JBQVMsS0FBQztJQUNsQixZQUFrQjtJQUFBLGlCQUNwQjs7OztJQURFLGVBQWtCO0lBQWxCLHlDQUFrQjs7OztJQUtyQiw2QkFBOEI7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QTJCO1lBOER6QixBQTdEQSxxRkFBMkMsd0VBNkRHO1lBd0NoRCxpQkFBZ0I7O1lBNUdSLGVBQWtCO1lBQWxCLHNDQUFrQjtZQU9kLGVBQStCO1lBQS9CLHdEQUErQjtZQTZEL0IsY0FBa0M7WUFBbEMsMkRBQWtDOzRCRHJDMUMsSUFBSTtZQUNKLE9BQU87WUFDUCxZQUFZLG9CQUVaLHNCQUFzQjtZQUN0QixVQUFVLG9CQUNWLFVBQVUsdUZBQ1YsWUFBWTs7aUZBR0gsNEJBQTRCO2NBakJ4QyxTQUFTOzJCQUNFLDJCQUEyQixtQkFHcEIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7b0JBQ1AsSUFBSTtvQkFDSixPQUFPO29CQUNQLFlBQVk7b0JBQ1osZ0JBQWdCO29CQUNoQixzQkFBc0I7b0JBQ3RCLFVBQVU7b0JBQ1YsVUFBVTtvQkFDVixZQUFZO2lCQUNiO2lIQUlELFFBQVE7a0JBRFAsS0FBSztZQUlOLE1BQU07a0JBREwsS0FBSzs7SUFJTiw0REFBNEQ7SUFDNUQsS0FBSztrQkFGSixNQUFNO1lBS1AsT0FBTztrQkFETixNQUFNO1lBSVAsWUFBWTtrQkFEWCxLQUFLO1lBSU4sYUFBYTtrQkFEWixLQUFLO1lBSU4sYUFBYTtrQkFEWixLQUFLOztrRkFwQkssNEJBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSWNvbk1vZHVsZSwgVGFic01vZHVsZSwgQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFsYXVkYS91aSc7XG5pbXBvcnQgeyBOZ0lmLCBOZ0Zvck9mLCBLZXlWYWx1ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT25DaGFuZ2VzLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIENoYW5nZURldGVjdG9yUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBtYXAsIGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgUGFyc2VKc29uVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uL2NvcmUvcGlwZXMvcGFyc2UtanNvbi10cmFuc2xhdGUucGlwZSc7XG5pbXBvcnQgeyBLdWJlcm5ldGVzU2NoZW1hU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMva3ViZXJuZXRlcy1zY2hlbWEuc2VydmljZSc7XG5pbXBvcnQgeyBLdWJlcm5ldGVzUmVzb3VyY2UgfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL2s4cy9jb3JlJztcbmltcG9ydCB7IE9wZW5BUElWM1NjaGVtYU9iamVjdCB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvc2NoZW1hJztcbmltcG9ydCB7IFRSQU5TTEFURV9NT0RVTEUgfSBmcm9tICcuLi8uLi90cmFuc2xhdGUvdHJhbnNsYXRlLm1vZHVsZSc7XG5pbXBvcnQgeyBCVUlMVF9JTl9ZQU1MX0VYQU1QTEVTIH0gZnJvbSAnLi4veWFtbC1leGFtcGxlcyc7XG5cbmltcG9ydCB7IFlhbWxFeGFtcGxlLCBDb25zb2xlWUFNTFNhbXBsZSB9IGZyb20gJy4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2wtcmVzb3VyY2UteWFtbC1zaWRlYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICd0ZW1wbGF0ZS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ3N0eWxlcy5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdJZixcbiAgICBOZ0Zvck9mLFxuICAgIEtleVZhbHVlUGlwZSxcbiAgICBUUkFOU0xBVEVfTU9EVUxFLFxuICAgIFBhcnNlSnNvblRyYW5zbGF0ZVBpcGUsXG4gICAgSWNvbk1vZHVsZSxcbiAgICBUYWJzTW9kdWxlLFxuICAgIEJ1dHRvbk1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VZYW1sU2lkZWJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KClcbiAgcmVzb3VyY2U6IEt1YmVybmV0ZXNSZXNvdXJjZTtcblxuICBASW5wdXQoKVxuICBzY2hlbWE6IE9wZW5BUElWM1NjaGVtYU9iamVjdDtcblxuICBAT3V0cHV0KClcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG4gIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBPdXRwdXQoKVxuICB0cnlZYW1sID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgQElucHV0KClcbiAgc2NoZW1hRW5hYmxlID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBleGFtcGxlRW5hYmxlID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBleHRyYUV4YW1wbGVzOiBZYW1sRXhhbXBsZVtdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgREVGSU5JVElPTlNfUFJFRklYID0gJyMvZGVmaW5pdGlvbnMvJztcblxuICBjdXJyZW50U2NoZW1hOiBPcGVuQVBJVjNTY2hlbWFPYmplY3Q7XG4gIHByb3BlcnRpZXM6IHsgW2tleTogc3RyaW5nXTogT3BlbkFQSVYzU2NoZW1hT2JqZWN0IH07XG4gIHBhdGg6IHN0cmluZ1tdID0gW107XG4gIHJlc291cmNlS2luZDogc3RyaW5nO1xuICBleGFtcGxlczogWWFtbEV4YW1wbGVbXSA9IFtdO1xuICBoYXNTY2hlbWEgPSBmYWxzZTtcbiAgaGFzRXhhbXBsZXMgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNjaGVtYVNlcnZpY2U6IEt1YmVybmV0ZXNTY2hlbWFTZXJ2aWNlLFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnJlZnJlc2goKTtcbiAgICB0aGlzLmxvYWRFeGFtcGxlcygpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzLnNjaGVtYSB8fCBjaGFuZ2VzLnJlc291cmNlKSB7XG4gICAgICB0aGlzLnJlZnJlc2goKTtcbiAgICAgIHRoaXMubG9hZEV4YW1wbGVzKCk7XG4gICAgfVxuICB9XG5cbiAgcmVmcmVzaCgpIHtcbiAgICBpZiAodGhpcy5zY2hlbWEpIHtcbiAgICAgIHRoaXMuY3VycmVudFNjaGVtYSA9IHRoaXMuc2NoZW1hO1xuICAgICAgdGhpcy5wcm9wZXJ0aWVzID0gdGhpcy5zY2hlbWEucHJvcGVydGllcyB8fCB7fTtcbiAgICAgIHRoaXMucGF0aCA9IFtdO1xuICAgICAgdGhpcy5oYXNTY2hlbWEgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhhc1NjaGVtYSA9IGZhbHNlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnJlc291cmNlKSB7XG4gICAgICB0aGlzLnJlc291cmNlS2luZCA9IHRoaXMucmVzb3VyY2Uua2luZCB8fCAnUmVzb3VyY2UnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbG9hZEV4YW1wbGVzKCkge1xuICAgIGlmICghdGhpcy5yZXNvdXJjZSkge1xuICAgICAgdGhpcy5leGFtcGxlcyA9IFtdO1xuICAgICAgdGhpcy5oYXNFeGFtcGxlcyA9IGZhbHNlO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcmVzb3VyY2VLZXkgPSBgJHt0aGlzLnJlc291cmNlLmFwaVZlcnNpb259LiR7dGhpcy5yZXNvdXJjZS5raW5kfWA7XG4gICAgY29uc3QgYnVpbHRJbkV4YW1wbGVzID0gQlVJTFRfSU5fWUFNTF9FWEFNUExFU1tyZXNvdXJjZUtleV0gfHwgW107XG5cbiAgICAvLyDliqDovb0gQ29uc29sZVlBTUxTYW1wbGUgQ1JEIOS4reeahOekuuS+i1xuICAgIHRoaXMubG9hZENvbnNvbGVZQU1MU2FtcGxlcygpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiBjcmRFeGFtcGxlcyA9PiB7XG4gICAgICAgIHRoaXMuZXhhbXBsZXMgPSBbXG4gICAgICAgICAgLi4uYnVpbHRJbkV4YW1wbGVzLFxuICAgICAgICAgIC4uLih0aGlzLmV4dHJhRXhhbXBsZXMgfHwgW10pLFxuICAgICAgICAgIC4uLmNyZEV4YW1wbGVzLFxuICAgICAgICBdO1xuICAgICAgICB0aGlzLmhhc0V4YW1wbGVzID0gdGhpcy5leGFtcGxlcy5sZW5ndGggPiAwO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICAvLyDlpoLmnpzliqDovb0gQ1JEIOekuuS+i+Wksei0pe+8jOWPquS9v+eUqOWGhee9ruekuuS+i1xuICAgICAgICB0aGlzLmV4YW1wbGVzID0gYnVpbHRJbkV4YW1wbGVzO1xuICAgICAgICB0aGlzLmhhc0V4YW1wbGVzID0gdGhpcy5leGFtcGxlcy5sZW5ndGggPiAwO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRDb25zb2xlWUFNTFNhbXBsZXMoKTogT2JzZXJ2YWJsZTxZYW1sRXhhbXBsZVtdPiB7XG4gICAgaWYgKCF0aGlzLnJlc291cmNlKSB7XG4gICAgICByZXR1cm4gb2YoW10pO1xuICAgIH1cblxuICAgIC8vIOaehOW7uuafpeivoiBDb25zb2xlWUFNTFNhbXBsZSDnmoQgQVBJIOi3r+W+hFxuICAgIGNvbnN0IGFwaVBhdGggPSAnL2FwaXMvY29uc29sZS5hbGF1ZGEuaW8vdjEvY29uc29sZXlhbWxzYW1wbGVzJztcblxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PHsgaXRlbXM6IENvbnNvbGVZQU1MU2FtcGxlW10gfT4oYXBpUGF0aCkucGlwZShcbiAgICAgIG1hcChyZXNwb25zZSA9PiB7XG4gICAgICAgIHJldHVybiByZXNwb25zZS5pdGVtc1xuICAgICAgICAgIC5maWx0ZXIoc2FtcGxlID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IHNhbXBsZS5zcGVjLnRhcmdldFJlc291cmNlO1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgdGFyZ2V0LmFwaVZlcnNpb24gPT09IHRoaXMucmVzb3VyY2UuYXBpVmVyc2lvbiAmJlxuICAgICAgICAgICAgICB0YXJnZXQua2luZCA9PT0gdGhpcy5yZXNvdXJjZS5raW5kXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLm1hcChzYW1wbGUgPT4gKHtcbiAgICAgICAgICAgIHRpdGxlOiBzYW1wbGUuc3BlYy50aXRsZSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBzYW1wbGUuc3BlYy5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgIHlhbWw6IHNhbXBsZS5zcGVjLnlhbWwsXG4gICAgICAgICAgICBzbmlwcGV0OiBzYW1wbGUuc3BlYy5zbmlwcGV0LFxuICAgICAgICAgIH0pKTtcbiAgICAgIH0pLFxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZihbXSkpLFxuICAgICk7XG4gIH1cblxuICBkcmlsbERvd25Ub1Byb3BlcnR5KG5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IHByb3BlcnR5ID0gdGhpcy5jdXJyZW50U2NoZW1hLnByb3BlcnRpZXM/LltuYW1lXTtcbiAgICBpZiAocHJvcGVydHkpIHtcbiAgICAgIGxldCB0YXJnZXRTY2hlbWE6IE9wZW5BUElWM1NjaGVtYU9iamVjdCB8IG51bGwgPSBudWxsO1xuICAgICAgLy8g5aSE55CGICRyZWYg5byV55SoXG4gICAgICBpZiAoKHByb3BlcnR5IGFzIGFueSkuJHJlZikge1xuICAgICAgICBjb25zdCByZWYgPSAocHJvcGVydHkgYXMgYW55KS4kcmVmIGFzIHN0cmluZztcblxuICAgICAgICBpZiAocmVmLnN0YXJ0c1dpdGgodGhpcy5ERUZJTklUSU9OU19QUkVGSVgpKSB7XG4gICAgICAgICAgY29uc3QgZGVmaW5pdGlvbk5hbWUgPSByZWYucmVwbGFjZSh0aGlzLkRFRklOSVRJT05TX1BSRUZJWCwgJycpO1xuICAgICAgICAgIC8vIOS7juaguSBzY2hlbWEg55qEIGRlZmluaXRpb25zIOS4reiOt+WPluWumuS5iVxuICAgICAgICAgIGNvbnN0IHJvb3REZWZpbml0aW9ucyA9IHRoaXMuc2NoZW1hU2VydmljZS5kZWZpbml0aW9ucztcbiAgICAgICAgICB0YXJnZXRTY2hlbWEgPSByb290RGVmaW5pdGlvbnM/LltkZWZpbml0aW9uTmFtZV0gfHwgbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8g5aSE55CG5pmu6YCa55qE5bWM5aWX5bGe5oCnXG4gICAgICBlbHNlIGlmIChwcm9wZXJ0eS5wcm9wZXJ0aWVzIHx8IHByb3BlcnR5Lml0ZW1zPy5wcm9wZXJ0aWVzKSB7XG4gICAgICAgIHRhcmdldFNjaGVtYSA9IHByb3BlcnR5Lml0ZW1zPy5wcm9wZXJ0aWVzID8gcHJvcGVydHkuaXRlbXMgOiBwcm9wZXJ0eTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRhcmdldFNjaGVtYSkge1xuICAgICAgICB0aGlzLmN1cnJlbnRTY2hlbWEgPSB0YXJnZXRTY2hlbWE7XG4gICAgICAgIHRoaXMucGF0aC5wdXNoKG5hbWUpO1xuICAgICAgICB0aGlzLnByb3BlcnRpZXMgPSB0YXJnZXRTY2hlbWEucHJvcGVydGllcyB8fCB7fTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuYXZpZ2F0ZVRvUGF0aChpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgdGFyZ2V0UGF0aCA9IHRoaXMucGF0aC5zbGljZSgwLCBpbmRleCArIDEpO1xuICAgIHRoaXMucGF0aCA9IFsuLi50YXJnZXRQYXRoXTtcblxuICAgIGxldCBjdXJyZW50T2JqID0gdGhpcy5zY2hlbWE7XG4gICAgZm9yIChjb25zdCBwYXRoU2VnbWVudCBvZiB0YXJnZXRQYXRoKSB7XG4gICAgICBjb25zdCBwcm9wZXJ0eSA9IGN1cnJlbnRPYmoucHJvcGVydGllcz8uW3BhdGhTZWdtZW50XTtcbiAgICAgIGlmIChwcm9wZXJ0eSkge1xuICAgICAgICAvLyDlpITnkIYgJHJlZiDlvJXnlKhcbiAgICAgICAgaWYgKChwcm9wZXJ0eSBhcyBhbnkpLiRyZWYpIHtcbiAgICAgICAgICBjb25zdCByZWYgPSAocHJvcGVydHkgYXMgYW55KS4kcmVmIGFzIHN0cmluZztcbiAgICAgICAgICBpZiAocmVmLnN0YXJ0c1dpdGgodGhpcy5ERUZJTklUSU9OU19QUkVGSVgpKSB7XG4gICAgICAgICAgICBjb25zdCBkZWZpbml0aW9uTmFtZSA9IHJlZi5yZXBsYWNlKHRoaXMuREVGSU5JVElPTlNfUFJFRklYLCAnJyk7XG4gICAgICAgICAgICBjb25zdCByb290RGVmaW5pdGlvbnMgPSAodGhpcy5zY2hlbWEgYXMgYW55KT8uZGVmaW5pdGlvbnM7XG4gICAgICAgICAgICBjb25zdCBkZWZpbml0aW9uID0gcm9vdERlZmluaXRpb25zPy5bZGVmaW5pdGlvbk5hbWVdO1xuICAgICAgICAgICAgaWYgKGRlZmluaXRpb24pIHtcbiAgICAgICAgICAgICAgY3VycmVudE9iaiA9IGRlZmluaXRpb247XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIOWkhOeQhuaZrumAmueahOW1jOWll+WxnuaAp1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBjdXJyZW50T2JqID0gcHJvcGVydHkuaXRlbXM/LnByb3BlcnRpZXMgPyBwcm9wZXJ0eS5pdGVtcyA6IHByb3BlcnR5O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5jdXJyZW50U2NoZW1hID0gY3VycmVudE9iajtcbiAgICB0aGlzLnByb3BlcnRpZXMgPSBjdXJyZW50T2JqLnByb3BlcnRpZXMgfHwge307XG4gIH1cblxuICBoYXNOZXN0ZWRQcm9wZXJ0aWVzKHByb3BlcnR5OiBPcGVuQVBJVjNTY2hlbWFPYmplY3QpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgKHByb3BlcnR5LnR5cGUgPT09ICdvYmplY3QnICYmXG4gICAgICAgIHByb3BlcnR5LnByb3BlcnRpZXMgJiZcbiAgICAgICAgT2JqZWN0LmtleXMocHJvcGVydHkucHJvcGVydGllcykubGVuZ3RoID4gMCkgfHxcbiAgICAgIChwcm9wZXJ0eS50eXBlID09PSAnYXJyYXknICYmXG4gICAgICAgIHByb3BlcnR5Lml0ZW1zICYmXG4gICAgICAgIHR5cGVvZiBwcm9wZXJ0eS5pdGVtcyA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgKHByb3BlcnR5Lml0ZW1zIGFzIE9wZW5BUElWM1NjaGVtYU9iamVjdCkucHJvcGVydGllcyAmJlxuICAgICAgICBPYmplY3Qua2V5cygocHJvcGVydHkuaXRlbXMgYXMgT3BlbkFQSVYzU2NoZW1hT2JqZWN0KS5wcm9wZXJ0aWVzIHx8IHt9KVxuICAgICAgICAgIC5sZW5ndGggPiAwKVxuICAgICk7XG4gIH1cblxuICBnZXRQcm9wZXJ0eVR5cGUocHJvcGVydHk6IE9wZW5BUElWM1NjaGVtYU9iamVjdCk6IHN0cmluZyB7XG4gICAgaWYgKHByb3BlcnR5LnR5cGUpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHByb3BlcnR5LnR5cGUpKSB7XG4gICAgICAgIHJldHVybiBwcm9wZXJ0eS50eXBlLmpvaW4oJyB8ICcpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHByb3BlcnR5LnR5cGU7XG4gICAgfVxuICAgIHJldHVybiAndW5rbm93bic7XG4gIH1cblxuICBpc1JlcXVpcmVkKHByb3BlcnR5TmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFNjaGVtYT8ucmVxdWlyZWQ/LmluY2x1ZGVzKHByb3BlcnR5TmFtZSkgfHwgZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICog5qOA5p+l5bGe5oCn5piv5ZCm5pyJICRyZWYg5byV55So5oiW5bWM5aWX5bGe5oCnXG4gICAqL1xuICBoYXNWaWV3YWJsZUNvbnRlbnQocHJvcGVydHk6IE9wZW5BUElWM1NjaGVtYU9iamVjdCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICAvLyDmnIkgcHJvcGVydGllcyDnmoTlr7nosaFcbiAgICAgIChwcm9wZXJ0eS50eXBlID09PSAnb2JqZWN0JyAmJlxuICAgICAgICBwcm9wZXJ0eS5wcm9wZXJ0aWVzICYmXG4gICAgICAgIE9iamVjdC5rZXlzKHByb3BlcnR5LnByb3BlcnRpZXMpLmxlbmd0aCA+IDApIHx8XG4gICAgICAvLyDmnIkgcHJvcGVydGllcyDnmoTmlbDnu4TpoblcbiAgICAgIChwcm9wZXJ0eS50eXBlID09PSAnYXJyYXknICYmXG4gICAgICAgIHByb3BlcnR5Lml0ZW1zICYmXG4gICAgICAgIHR5cGVvZiBwcm9wZXJ0eS5pdGVtcyA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgKHByb3BlcnR5Lml0ZW1zIGFzIE9wZW5BUElWM1NjaGVtYU9iamVjdCkucHJvcGVydGllcyAmJlxuICAgICAgICBPYmplY3Qua2V5cygocHJvcGVydHkuaXRlbXMgYXMgT3BlbkFQSVYzU2NoZW1hT2JqZWN0KS5wcm9wZXJ0aWVzIHx8IHt9KVxuICAgICAgICAgIC5sZW5ndGggPiAwKSB8fFxuICAgICAgLy8g5pyJICRyZWYg5byV55SoXG4gICAgICAhIShwcm9wZXJ0eSBhcyBhbnkpLiRyZWZcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIOajgOafpeWxnuaAp+aYr+WQpuaciSAkcmVmIOW8leeUqFxuICAgKi9cbiAgaGFzUmVmUHJvcGVydHkocHJvcGVydHk6IE9wZW5BUElWM1NjaGVtYU9iamVjdCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIShwcm9wZXJ0eSBhcyBhbnkpLiRyZWY7XG4gIH1cblxuICAvKipcbiAgICog6I635Y+WICRyZWYg5byV55So55qE5a6a5LmJ5ZCN56ewXG4gICAqL1xuICBnZXRSZWZEZWZpbml0aW9uTmFtZShwcm9wZXJ0eTogT3BlbkFQSVYzU2NoZW1hT2JqZWN0KTogc3RyaW5nIHtcbiAgICBjb25zdCByZWYgPSAocHJvcGVydHkgYXMgYW55KS4kcmVmO1xuICAgIGlmIChyZWYgJiYgdHlwZW9mIHJlZiA9PT0gJ3N0cmluZycpIHtcbiAgICAgIC8vIOS7jiBcIiMvZGVmaW5pdGlvbnMvaW8uazhzLmFwaS5hcHBzLnYxLkRlcGxveW1lbnRTcGVjXCIg5Lit5o+Q5Y+W5a6a5LmJ5ZCN56ewXG4gICAgICBpZiAocmVmLnN0YXJ0c1dpdGgodGhpcy5ERUZJTklUSU9OU19QUkVGSVgpKSB7XG4gICAgICAgIHJldHVybiByZWYucmVwbGFjZSh0aGlzLkRFRklOSVRJT05TX1BSRUZJWCwgJycpO1xuICAgICAgfVxuICAgICAgY29uc3QgcGFydHMgPSByZWYuc3BsaXQoJy8nKTtcbiAgICAgIHJldHVybiBwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXSB8fCByZWY7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIC8vIEV4YW1wbGVzIOebuOWFs+aWueazlVxuICB0cnlFeGFtcGxlKGV4YW1wbGU6IFlhbWxFeGFtcGxlKSB7XG4gICAgLy8g6Kem5Y+R5LqL5Lu277yM6K6p54i257uE5Lu25aSE55CGIHRyeSBpdCDlip/og73vvIzlsIYgWUFNTCDlhoXlrrnlj5HpgIHnu5nniLbnu4Tku7ZcbiAgICB0aGlzLnRyeVlhbWwuZW1pdChleGFtcGxlLnlhbWwpO1xuICB9XG5cbiAgZG93bmxvYWRZYW1sKGV4YW1wbGU6IFlhbWxFeGFtcGxlKSB7XG4gICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtleGFtcGxlLnlhbWxdLCB7IHR5cGU6ICd0ZXh0L3lhbWwnIH0pO1xuICAgIGNvbnN0IHVybCA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgbGluay5ocmVmID0gdXJsO1xuICAgIGxpbmsuZG93bmxvYWQgPSBgJHtleGFtcGxlLnRpdGxlLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXFxzKy9nLCAnLScpfS55YW1sYDtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspO1xuICAgIGxpbmsuY2xpY2soKTtcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGxpbmspO1xuICAgIHdpbmRvdy5VUkwucmV2b2tlT2JqZWN0VVJMKHVybCk7XG4gIH1cblxuICAvLyDlpITnkIbmj4/ov7DkuK3nmoTpk77mjqVcbiAgcHJvY2Vzc0Rlc2NyaXB0aW9uKGRlc2NyaXB0aW9uOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghZGVzY3JpcHRpb24pIHJldHVybiAnJztcblxuICAgIC8vIOWwhiBVUkwg6L2s5o2i5Li65Y+v54K55Ye755qE6ZO+5o6lXG4gICAgY29uc3QgdXJsUmVnZXggPSAvKGh0dHBzPzpcXC9cXC9bXlxcc10rKS9nO1xuICAgIHJldHVybiBkZXNjcmlwdGlvbi5yZXBsYWNlKFxuICAgICAgdXJsUmVnZXgsXG4gICAgICAnPGEgaHJlZj1cIiQxXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiPiQxPC9hPicsXG4gICAgKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNjaGVtYS1oZWFkZXJcIj5cbiAgPHNwYW4+e3sgcmVzb3VyY2VLaW5kIH19PC9zcGFuPlxuICA8YXVpLWljb25cbiAgICBpY29uPVwieG1hcmtcIlxuICAgIChjbGljayk9XCJjbG9zZS5uZXh0KClcIlxuICA+PC9hdWktaWNvbj5cbjwvZGl2PlxuPGF1aS10YWItZ3JvdXAgdHlwZT1cImNhcmRcIj5cbiAgPGF1aS10YWIgKm5nSWY9XCJzY2hlbWFFbmFibGUgJiYgaGFzU2NoZW1hXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqYXVpVGFiTGFiZWw+IFNjaGVtYSA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICphdWlUYWJDb250ZW50PlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cInNjaGVtYVwiXG4gICAgICAgIGNsYXNzPVwic2NoZW1hLWNvbnRlbnRcIlxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgKm5nSWY9XCJzY2hlbWEuZGVzY3JpcHRpb25cIlxuICAgICAgICAgIGNsYXNzPVwic2NoZW1hLWRlc2NcIlxuICAgICAgICAgIFtpbm5lckhUTUxdPVwiXG4gICAgICAgICAgICBwcm9jZXNzRGVzY3JpcHRpb24oc2NoZW1hLmRlc2NyaXB0aW9uIHwgYWNsUGFyc2VKc29uVHJhbnNsYXRlKVxuICAgICAgICAgIFwiXG4gICAgICAgID48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNjaGVtYS1wYXRoXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhdGgubGVuZ3RoXCI+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICBocmVmPVwiamF2YXNjcmlwdDpcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwicmVmcmVzaCgpXCJcbiAgICAgICAgICAgICAgPnt7IHJlc291cmNlS2luZCB9fTwvYVxuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcCBvZiBwYXRoOyBpbmRleCBhcyBpOyBsYXN0IGFzIGlzTGFzdFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0xhc3RcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwYXRoLW1hcmtcIj4+PC9zcGFuPlxuICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIGhyZWY9XCJqYXZhc2NyaXB0OlwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlVG9QYXRoKGkpXCJcbiAgICAgICAgICAgICAgICA+e3sgcCB9fTwvYVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0xhc3RcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwYXRoLW1hcmtcIj4+PC9zcGFuPlxuICAgICAgICAgICAgICA8c3Bhbj57eyBwIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZW1hLWxpc3RcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBwcm9wZXJ0aWVzIHwga2V5dmFsdWVcIlxuICAgICAgICAgICAgY2xhc3M9XCJzY2hlbWEtaXRlbVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGgzPlxuICAgICAgICAgICAgICA8c3Bhbj57eyBpdGVtLmtleSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJvYmotdHlwZVwiPnt7IGl0ZW0udmFsdWUudHlwZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgICA8cCBbaW5uZXJIVE1MXT1cInByb2Nlc3NEZXNjcmlwdGlvbihpdGVtLnZhbHVlLmRlc2NyaXB0aW9uKVwiPjwvcD5cbiAgICAgICAgICAgIDxwICpuZ0lmPVwiaGFzVmlld2FibGVDb250ZW50KGl0ZW0udmFsdWUpXCI+XG4gICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgaHJlZj1cImphdmFzY3JpcHQ6XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZHJpbGxEb3duVG9Qcm9wZXJ0eShpdGVtLmtleSlcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgJ3ZpZXdfZGV0YWlsJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvYXVpLXRhYj5cbiAgPGF1aS10YWIgKm5nSWY9XCJleGFtcGxlRW5hYmxlICYmIGhhc0V4YW1wbGVzXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqYXVpVGFiTGFiZWw+IEV4YW1wbGVzIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKmF1aVRhYkNvbnRlbnQ+XG4gICAgICA8ZGl2IGNsYXNzPVwiZXhhbXBsZS1saXN0XCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgZXhhbXBsZSBvZiBleGFtcGxlczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgY2xhc3M9XCJleGFtcGxlLWl0ZW1cIlxuICAgICAgICA+XG4gICAgICAgICAgPGgzPlxuICAgICAgICAgICAge3sgaSArIDEgfX0uIDxzcGFuPnt7IGV4YW1wbGUudGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgPC9oMz5cbiAgICAgICAgICA8cCBbaW5uZXJIVE1MXT1cInByb2Nlc3NEZXNjcmlwdGlvbihleGFtcGxlLmRlc2NyaXB0aW9uKVwiPjwvcD5cbiAgICAgICAgICA8cCBjbGFzcz1cInR3LWZsZXggdHctanVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICBocmVmPVwiamF2YXNjcmlwdDpcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwidHJ5RXhhbXBsZShleGFtcGxlKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxhdWktaWNvblxuICAgICAgICAgICAgICAgIGljb249XCJhcnJvd190dXJuX3VwXCJcbiAgICAgICAgICAgICAgICBzaXplPVwiMTRcIlxuICAgICAgICAgICAgICAgIG1hcmdpbj1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgPjwvYXVpLWljb24+XG4gICAgICAgICAgICAgIDxzcGFuPlRyeSBpdDwvc3Bhbj5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgIGhyZWY9XCJqYXZhc2NyaXB0OlwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJkb3dubG9hZFlhbWwoZXhhbXBsZSlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8YXVpLWljb25cbiAgICAgICAgICAgICAgICBpY29uPVwiZG93bmxvYWRcIlxuICAgICAgICAgICAgICAgIHNpemU9XCIxNFwiXG4gICAgICAgICAgICAgICAgbWFyZ2luPVwicmlnaHRcIlxuICAgICAgICAgICAgICA+PC9hdWktaWNvbj5cbiAgICAgICAgICAgICAgPHNwYW4+RG93bmxvYWQgWUFNTDwvc3Bhbj5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvYXVpLXRhYj5cbjwvYXVpLXRhYi1ncm91cD5cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvY29kZS95YW1sLXNpZGViYXIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgWWFtbEV4YW1wbGUge1xuICB0aXRsZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICB5YW1sOiBzdHJpbmc7XG4gIHNuaXBwZXQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnNvbGVZQU1MU2FtcGxlIHtcbiAgbWV0YWRhdGE6IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gIH07XG4gIHNwZWM6IHtcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgeWFtbDogc3RyaW5nO1xuICAgIHNuaXBwZXQ/OiBib29sZWFuO1xuICAgIHRhcmdldFJlc291cmNlOiB7XG4gICAgICBhcGlWZXJzaW9uOiBzdHJpbmc7XG4gICAgICBraW5kOiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -30,7 +30,7 @@ export class NestedTreeNodeComponent extends CdkNestedTreeNode {
|
|
|
30
30
|
},
|
|
31
31
|
], changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block}\n"] }]
|
|
32
32
|
}], null, null); })();
|
|
33
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(NestedTreeNodeComponent, { className: "NestedTreeNodeComponent" }); })();
|
|
33
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(NestedTreeNodeComponent, { className: "NestedTreeNodeComponent", filePath: "core/components/tree/node/component.ts", lineNumber: 35 }); })();
|
|
34
34
|
export class TreeNodeDefDirective extends CdkTreeNodeDef {
|
|
35
35
|
static { this.ɵfac = /*@__PURE__*/ (() => { let ɵTreeNodeDefDirective_BaseFactory; return function TreeNodeDefDirective_Factory(t) { return (ɵTreeNodeDefDirective_BaseFactory || (ɵTreeNodeDefDirective_BaseFactory = i0.ɵɵgetInheritedFactory(TreeNodeDefDirective)))(t || TreeNodeDefDirective); }; })(); }
|
|
36
36
|
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: TreeNodeDefDirective, selectors: [["", "aclTreeNodeDef", ""]], inputs: { when: [0, "aclTreeNodeDefWhen", "when"] }, features: [i0.ɵɵProvidersFeature([{ provide: CdkTreeNodeDef, useExisting: TreeNodeDefDirective }]), i0.ɵɵInheritDefinitionFeature] }); }
|
|
@@ -24,5 +24,5 @@ export class TreeComponent extends CdkTree {
|
|
|
24
24
|
type: ViewChild,
|
|
25
25
|
args: [TreeNodeOutletDirective, { static: true }]
|
|
26
26
|
}] }); })();
|
|
27
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TreeComponent, { className: "TreeComponent" }); })();
|
|
27
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TreeComponent, { className: "TreeComponent", filePath: "core/components/tree/tree/component.ts", lineNumber: 20 }); })();
|
|
28
28
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2NvcmUvY29tcG9uZW50cy90cmVlL3RyZWUvY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2NvcmUvY29tcG9uZW50cy90cmVlL3RyZWUvdGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4RUFBOEU7QUFDOUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzVDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFVcEQsTUFBTSxPQUFPLGFBQW9CLFNBQVEsT0FBYTt3TkFBekMsYUFBYSxTQUFiLGFBQWE7b0VBQWIsYUFBYTsyQkFDYix1QkFBdUI7Ozs7cUVBSHZCLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsQ0FBQztZQ2pCL0QsOEJBQXVCO1lBQ3JCLDJCQUErQztZQUNqRCxpQkFBTTs7O2lGRGlCTyxhQUFhO2NBUnpCLFNBQVM7MkJBQ0UsVUFBVSxZQUNWLFNBQVMsaUJBRUosaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsT0FBTyxhQUNyQyxDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXLGVBQWUsRUFBRSxDQUFDO2dCQUlwRCxXQUFXO2tCQURuQixTQUFTO21CQUFDLHVCQUF1QixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTs7a0ZBRHpDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvcHJlZmVyLW9uLXB1c2gtY29tcG9uZW50LWNoYW5nZS1kZXRlY3Rpb24gKi9cbmltcG9ydCB7IENka1RyZWUgfSBmcm9tICdAYW5ndWxhci9jZGsvdHJlZSc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgVHJlZU5vZGVPdXRsZXREaXJlY3RpdmUgfSBmcm9tICcuLi9vdXRsZXQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2wtdHJlZScsXG4gIGV4cG9ydEFzOiAnYWNsVHJlZScsXG4gIHRlbXBsYXRlVXJsOiAndGVtcGxhdGUuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBDZGtUcmVlLCB1c2VFeGlzdGluZzogVHJlZUNvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgVHJlZUNvbXBvbmVudDxULCBLPiBleHRlbmRzIENka1RyZWU8VCwgSz4ge1xuICBAVmlld0NoaWxkKFRyZWVOb2RlT3V0bGV0RGlyZWN0aXZlLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBvdmVycmlkZSBfbm9kZU91dGxldDogVHJlZU5vZGVPdXRsZXREaXJlY3RpdmU7XG59XG4iLCI8ZGl2IGNsYXNzPVwidHJlZS1saXN0XCI+XG4gIDxuZy1jb250YWluZXIgYWNsVHJlZU5vZGVPdXRsZXQ+PC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
|