@alauda-fe/common 1.4.0 → 1.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api/auth-api.service.d.ts +14 -0
- package/api/platform-ui.service.d.ts +1 -0
- package/api/public-api.d.ts +1 -0
- package/array-form-table/form/component.d.ts +7 -3
- package/assets/icons/icon-refresh-drag.svg +1 -0
- package/authorization/authorization.d.ts +27 -0
- package/authorization/constants.d.ts +11 -0
- package/authorization/interceptor.service.d.ts +2 -0
- package/authorization/public-api.d.ts +3 -0
- package/authorization/session-manage.service.d.ts +2 -4
- package/authorization/state.service.d.ts +6 -30
- package/authorization/storage-token.d.ts +4 -10
- package/business/resource-select/exports/project-selector/component.d.ts +1 -0
- package/core/abstract/base-nested-form-control.d.ts +1 -1
- package/core/directives/feature-gate.directive.d.ts +2 -1
- package/core/pipes/minimum-format.pipe.d.ts +1 -1
- package/core/services/feature-gate.service.d.ts +1 -0
- package/core/types/commons.d.ts +2 -0
- package/core/types/k8s/crd.d.ts +64 -0
- package/core/types/resource-definitions.d.ts +3 -3
- package/core/utils/cache-store.d.ts +15 -13
- package/core/utils/common.d.ts +1 -0
- package/core/utils/version.d.ts +1 -1
- package/effect-directive/event.directive.d.ts +36 -0
- package/esm2022/api/auth-api.service.mjs +34 -0
- package/esm2022/api/platform-ui.service.mjs +2 -1
- package/esm2022/api/public-api.mjs +2 -1
- package/esm2022/array-form-table/form/component.mjs +30 -15
- package/esm2022/authorization/authorization.mjs +157 -0
- package/esm2022/authorization/constants.mjs +15 -0
- package/esm2022/authorization/interceptor.service.mjs +32 -10
- package/esm2022/authorization/public-api.mjs +4 -1
- package/esm2022/authorization/session-manage.service.mjs +11 -24
- package/esm2022/authorization/state.service.mjs +46 -140
- package/esm2022/authorization/storage-token.mjs +12 -88
- package/esm2022/business/resource-select/exports/project-selector/component.mjs +14 -6
- package/esm2022/business/resource-select/internals/data-grid/component.mjs +2 -2
- package/esm2022/core/directives/feature-gate.directive.mjs +7 -4
- package/esm2022/core/guards/feature.guard.mjs +3 -2
- package/esm2022/core/pipes/minimum-format.pipe.mjs +4 -3
- package/esm2022/core/services/feature-gate.service.mjs +4 -3
- package/esm2022/core/types/commons.mjs +1 -1
- package/esm2022/core/types/k8s/crd.mjs +8 -1
- package/esm2022/core/types/resource-definitions.mjs +2 -2
- package/esm2022/core/utils/cache-store.mjs +56 -29
- package/esm2022/core/utils/common.mjs +9 -1
- package/esm2022/effect-directive/event.directive.mjs +79 -4
- package/esm2022/k8s-resource-list/footer/component.mjs +7 -5
- package/esm2022/multi-search/multi-search-tags/component.mjs +2 -2
- package/esm2022/multi-search/types.mjs +1 -1
- package/esm2022/page-scaffold/navigation/navconfig-loader/navconfig-loader.service.mjs +2 -2
- package/esm2022/page-scaffold/page-header/account-menu/component/component.mjs +3 -8
- package/esm2022/page-scaffold/page-header/common-layout/product-select/component.mjs +2 -2
- package/esm2022/pod-status/component.mjs +34 -55
- package/esm2022/searchable-selector/component.mjs +2 -2
- package/esm2022/widget/date-range-picker/component.mjs +1 -2
- package/esm2022/widget/status-icon/status-icon.component.mjs +1 -1
- package/multi-search/types.d.ts +1 -0
- package/package.json +1 -1
- package/page-scaffold/page/notices/notice.component.d.ts +1 -1
- package/pod-status/component.d.ts +1 -3
- package/styles/tailwind-preset.scss +1 -1
- package/table/helper.d.ts +1 -1
- package/table/module.d.ts +1 -1
|
@@ -114,23 +114,32 @@ function ArrayFormTableComponent_ng_container_3_tr_2_Template(rf, ctx) { if (rf
|
|
|
114
114
|
i0.ɵɵadvance(5);
|
|
115
115
|
i0.ɵɵproperty("ngTemplateOutlet", ctx_r0.rowErrorTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction2(15, _c0, row_r3, index_r4));
|
|
116
116
|
} }
|
|
117
|
-
function
|
|
117
|
+
function ArrayFormTableComponent_ng_container_3_ng_container_3_Conditional_3_ng_container_0_Template(rf, ctx) { if (rf & 1) {
|
|
118
118
|
i0.ɵɵelementContainer(0);
|
|
119
119
|
} }
|
|
120
|
+
function ArrayFormTableComponent_ng_container_3_ng_container_3_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
121
|
+
i0.ɵɵtemplate(0, ArrayFormTableComponent_ng_container_3_ng_container_3_Conditional_3_ng_container_0_Template, 1, 0, "ng-container", 4);
|
|
122
|
+
} if (rf & 2) {
|
|
123
|
+
const ctx_r0 = i0.ɵɵnextContext(3);
|
|
124
|
+
i0.ɵɵproperty("ngTemplateOutlet", ctx_r0.separatorTemplate);
|
|
125
|
+
} }
|
|
126
|
+
function ArrayFormTableComponent_ng_container_3_ng_container_3_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
127
|
+
i0.ɵɵelement(0, "div", 18);
|
|
128
|
+
} }
|
|
120
129
|
function ArrayFormTableComponent_ng_container_3_ng_container_3_Template(rf, ctx) { if (rf & 1) {
|
|
121
130
|
i0.ɵɵelementContainerStart(0);
|
|
122
131
|
i0.ɵɵelementStart(1, "tr", 16)(2, "td", 17);
|
|
123
|
-
i0.ɵɵtemplate(3,
|
|
132
|
+
i0.ɵɵtemplate(3, ArrayFormTableComponent_ng_container_3_ng_container_3_Conditional_3_Template, 1, 1, "ng-container")(4, ArrayFormTableComponent_ng_container_3_ng_container_3_Conditional_4_Template, 1, 0, "div", 18);
|
|
124
133
|
i0.ɵɵelementEnd()();
|
|
125
134
|
i0.ɵɵelementContainerEnd();
|
|
126
135
|
} if (rf & 2) {
|
|
127
136
|
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
128
137
|
i0.ɵɵadvance(3);
|
|
129
|
-
i0.ɵɵ
|
|
138
|
+
i0.ɵɵconditional(ctx_r0.separatorTemplate ? 3 : 4);
|
|
130
139
|
} }
|
|
131
140
|
function ArrayFormTableComponent_ng_container_3_Template(rf, ctx) { if (rf & 1) {
|
|
132
141
|
i0.ɵɵelementContainerStart(0);
|
|
133
|
-
i0.ɵɵtemplate(1, ArrayFormTableComponent_ng_container_3_tr_1_Template, 5, 14, "tr", 7)(2, ArrayFormTableComponent_ng_container_3_tr_2_Template, 6, 18, "tr", 8)(3, ArrayFormTableComponent_ng_container_3_ng_container_3_Template,
|
|
142
|
+
i0.ɵɵtemplate(1, ArrayFormTableComponent_ng_container_3_tr_1_Template, 5, 14, "tr", 7)(2, ArrayFormTableComponent_ng_container_3_tr_2_Template, 6, 18, "tr", 8)(3, ArrayFormTableComponent_ng_container_3_ng_container_3_Template, 5, 1, "ng-container", 1);
|
|
134
143
|
i0.ɵɵelementContainerEnd();
|
|
135
144
|
} if (rf & 2) {
|
|
136
145
|
const index_r4 = ctx.index;
|
|
@@ -140,10 +149,10 @@ function ArrayFormTableComponent_ng_container_3_Template(rf, ctx) { if (rf & 1)
|
|
|
140
149
|
i0.ɵɵadvance();
|
|
141
150
|
i0.ɵɵproperty("ngIf", ctx_r0.rowErrorTemplate && !ctx_r0.readonly);
|
|
142
151
|
i0.ɵɵadvance();
|
|
143
|
-
i0.ɵɵproperty("ngIf", ctx_r0.separatorTemplate && (ctx_r0.rows == null ? null : ctx_r0.rows.length) > 1 && index_r4 !== (ctx_r0.rows == null ? null : ctx_r0.rows.length) - 1);
|
|
152
|
+
i0.ɵɵproperty("ngIf", (ctx_r0.rowSeparator || ctx_r0.separatorTemplate) && (ctx_r0.rows == null ? null : ctx_r0.rows.length) > 1 && index_r4 !== (ctx_r0.rows == null ? null : ctx_r0.rows.length) - 1);
|
|
144
153
|
} }
|
|
145
154
|
function ArrayFormTableComponent_tr_4_acl_zero_state_2_Template(rf, ctx) { if (rf & 1) {
|
|
146
|
-
i0.ɵɵelement(0, "acl-zero-state",
|
|
155
|
+
i0.ɵɵelement(0, "acl-zero-state", 21);
|
|
147
156
|
} if (rf & 2) {
|
|
148
157
|
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
149
158
|
i0.ɵɵproperty("zeroState", true)("resourceName", ctx_r0.resourceName)("resourceNameTranslated", ctx_r0.resourceNameTranslated)("minHeight", 48);
|
|
@@ -161,8 +170,8 @@ function ArrayFormTableComponent_tr_4_ng_container_3_Template(rf, ctx) { if (rf
|
|
|
161
170
|
i0.ɵɵproperty("ngTemplateOutlet", ctx_r0.zeroStateTemplate);
|
|
162
171
|
} }
|
|
163
172
|
function ArrayFormTableComponent_tr_4_Template(rf, ctx) { if (rf & 1) {
|
|
164
|
-
i0.ɵɵelementStart(0, "tr")(1, "td",
|
|
165
|
-
i0.ɵɵtemplate(2, ArrayFormTableComponent_tr_4_acl_zero_state_2_Template, 1, 4, "acl-zero-state",
|
|
173
|
+
i0.ɵɵelementStart(0, "tr")(1, "td", 19);
|
|
174
|
+
i0.ɵɵtemplate(2, ArrayFormTableComponent_tr_4_acl_zero_state_2_Template, 1, 4, "acl-zero-state", 20)(3, ArrayFormTableComponent_tr_4_ng_container_3_Template, 2, 1, "ng-container", 1);
|
|
166
175
|
i0.ɵɵelementEnd()();
|
|
167
176
|
} if (rf & 2) {
|
|
168
177
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
@@ -185,9 +194,9 @@ function ArrayFormTableComponent_tr_5_ng_container_3_Template(rf, ctx) { if (rf
|
|
|
185
194
|
} }
|
|
186
195
|
function ArrayFormTableComponent_tr_5_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
187
196
|
const _r8 = i0.ɵɵgetCurrentView();
|
|
188
|
-
i0.ɵɵelementStart(0, "div",
|
|
197
|
+
i0.ɵɵelementStart(0, "div", 25)(1, "button", 26);
|
|
189
198
|
i0.ɵɵlistener("click", function ArrayFormTableComponent_tr_5_div_4_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r8); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.add.emit()); });
|
|
190
|
-
i0.ɵɵelement(2, "aui-icon",
|
|
199
|
+
i0.ɵɵelement(2, "aui-icon", 27);
|
|
191
200
|
i0.ɵɵtext(3);
|
|
192
201
|
i0.ɵɵpipe(4, "translate");
|
|
193
202
|
i0.ɵɵelementEnd()();
|
|
@@ -200,8 +209,8 @@ function ArrayFormTableComponent_tr_5_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
|
200
209
|
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(4, 5, "add"), " ");
|
|
201
210
|
} }
|
|
202
211
|
function ArrayFormTableComponent_tr_5_Template(rf, ctx) { if (rf & 1) {
|
|
203
|
-
i0.ɵɵelementStart(0, "tr",
|
|
204
|
-
i0.ɵɵtemplate(3, ArrayFormTableComponent_tr_5_ng_container_3_Template, 2, 1, "ng-container", 1)(4, ArrayFormTableComponent_tr_5_div_4_Template, 5, 7, "div",
|
|
212
|
+
i0.ɵɵelementStart(0, "tr", 22)(1, "td", 17)(2, "div", 23);
|
|
213
|
+
i0.ɵɵtemplate(3, ArrayFormTableComponent_tr_5_ng_container_3_Template, 2, 1, "ng-container", 1)(4, ArrayFormTableComponent_tr_5_div_4_Template, 5, 7, "div", 24);
|
|
205
214
|
i0.ɵɵelementEnd()()();
|
|
206
215
|
} if (rf & 2) {
|
|
207
216
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
@@ -345,6 +354,10 @@ export class ArrayFormTableComponent {
|
|
|
345
354
|
}
|
|
346
355
|
constructor(injector) {
|
|
347
356
|
this.injector = injector;
|
|
357
|
+
/**
|
|
358
|
+
* 行之间的分隔区域,默认关闭
|
|
359
|
+
*/
|
|
360
|
+
this.rowSeparator = false;
|
|
348
361
|
this.resourceName = null;
|
|
349
362
|
this.add = new EventEmitter();
|
|
350
363
|
this.remove = new EventEmitter(); // Returns the index to be removed
|
|
@@ -389,7 +402,7 @@ export class ArrayFormTableComponent {
|
|
|
389
402
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.separatorTemplate = _t.first);
|
|
390
403
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.ngFormGroupDirective = _t.first);
|
|
391
404
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.rowTemplates = _t);
|
|
392
|
-
} }, inputs: { rows: "rows", resourceName: "resourceName", resourceNameTranslated: "resourceNameTranslated", readonly: "readonly", addDisabled: "addDisabled", actionColumnDivider: "actionColumnDivider", showZeroState: "showZeroState", showRowError: "showRowError", rowBackgroundColorFn: "rowBackgroundColorFn", minRow: "minRow", minRowTooltip: "minRowTooltip", maxRow: "maxRow", maxRowTooltip: "maxRowTooltip" }, outputs: { add: "add", remove: "remove" }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 6, vars: 6, consts: [[1, "acl-array-form-table"], [4, "ngIf"], [4, "ngFor", "ngForOf"], ["class", "acl-array-form-table--row-action", 4, "ngIf"], [4, "ngTemplateOutlet"], ["class", "acl-array-form-table__action-col", 4, "ngIf"], [1, "acl-array-form-table__action-col"], [3, "acl-array-form-table__row-error", 4, "ngFor", "ngForOf"], [3, "acl-array-form-table__row-error", "hidden", 4, "ngIf"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], ["class", "acl-array-form-table__action-col", 3, "acl-array-form-table__action-col-divider", 4, "ngIf"], [3, "auiTooltip", "auiTooltipDisabled"], ["aui-button", "text", "type", "button", 3, "disabled", "square", "plain", "click", 4, "ngIf"], ["aui-button", "text", "type", "button", 3, "click", "disabled", "square", "plain"], ["icon", "minus_circle"], [3, "hidden"], [1, "acl-array-form-table__separator"], ["colspan", "100"], ["colspan", "100", 2, "padding", "unset"], [3, "zeroState", "resourceName", "resourceNameTranslated", "minHeight", 4, "ngIf"], [3, "zeroState", "resourceName", "resourceNameTranslated", "minHeight"], [1, "acl-array-form-table--row-action"], [1, "acl-array-form-table__bottom-control-buttons"], ["class", "tw-flex tw-w-full", 3, "auiTooltip", "auiTooltipDisabled", 4, "ngIf"], [1, "tw-flex", "tw-w-full", 3, "auiTooltip", "auiTooltipDisabled"], ["aui-button", "primary", "type", "button", "size", "mini", 3, "click", "plain", "disabled"], ["icon", "plus_circle"]], template: function ArrayFormTableComponent_Template(rf, ctx) { if (rf & 1) {
|
|
405
|
+
} }, inputs: { rowSeparator: "rowSeparator", rows: "rows", resourceName: "resourceName", resourceNameTranslated: "resourceNameTranslated", readonly: "readonly", addDisabled: "addDisabled", actionColumnDivider: "actionColumnDivider", showZeroState: "showZeroState", showRowError: "showRowError", rowBackgroundColorFn: "rowBackgroundColorFn", minRow: "minRow", minRowTooltip: "minRowTooltip", maxRow: "maxRow", maxRowTooltip: "maxRowTooltip" }, outputs: { add: "add", remove: "remove" }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 6, vars: 6, consts: [[1, "acl-array-form-table"], [4, "ngIf"], [4, "ngFor", "ngForOf"], ["class", "acl-array-form-table--row-action", 4, "ngIf"], [4, "ngTemplateOutlet"], ["class", "acl-array-form-table__action-col", 4, "ngIf"], [1, "acl-array-form-table__action-col"], [3, "acl-array-form-table__row-error", 4, "ngFor", "ngForOf"], [3, "acl-array-form-table__row-error", "hidden", 4, "ngIf"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], ["class", "acl-array-form-table__action-col", 3, "acl-array-form-table__action-col-divider", 4, "ngIf"], [3, "auiTooltip", "auiTooltipDisabled"], ["aui-button", "text", "type", "button", 3, "disabled", "square", "plain", "click", 4, "ngIf"], ["aui-button", "text", "type", "button", 3, "click", "disabled", "square", "plain"], ["icon", "minus_circle"], [3, "hidden"], [1, "acl-array-form-table__separator"], ["colspan", "100"], [1, "tw-h-[8px]"], ["colspan", "100", 2, "padding", "unset"], [3, "zeroState", "resourceName", "resourceNameTranslated", "minHeight", 4, "ngIf"], [3, "zeroState", "resourceName", "resourceNameTranslated", "minHeight"], [1, "acl-array-form-table--row-action"], [1, "acl-array-form-table__bottom-control-buttons"], ["class", "tw-flex tw-w-full", 3, "auiTooltip", "auiTooltipDisabled", 4, "ngIf"], [1, "tw-flex", "tw-w-full", 3, "auiTooltip", "auiTooltipDisabled"], ["aui-button", "primary", "type", "button", "size", "mini", 3, "click", "plain", "disabled"], ["icon", "plus_circle"]], template: function ArrayFormTableComponent_Template(rf, ctx) { if (rf & 1) {
|
|
393
406
|
i0.ɵɵelementStart(0, "table", 0);
|
|
394
407
|
i0.ɵɵtemplate(1, ArrayFormTableComponent_thead_1_Template, 4, 2, "thead", 1);
|
|
395
408
|
i0.ɵɵelementStart(2, "tbody");
|
|
@@ -427,7 +440,7 @@ export class ArrayFormTableComponent {
|
|
|
427
440
|
AsyncPipe,
|
|
428
441
|
TranslateModule,
|
|
429
442
|
...EFFECT_DIRECTIVE_MODULE,
|
|
430
|
-
], standalone: true, template: "<table\n class=\"acl-array-form-table\"\n [class.acl-array-form-table__readonly-mode]=\"readonly\"\n>\n <thead *ngIf=\"headerTemplate\">\n <tr>\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n <th\n *ngIf=\"!readonly && minRow !== maxRow\"\n class=\"acl-array-form-table__action-col\"\n ></th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let row of rows; let index = index\">\n <tr\n *ngFor=\"let rowTemplate of rowTemplates; let templateIndex = index\"\n [class.acl-array-form-table__row-error]=\"\n row | pure: shouldShowRowError | async\n \"\n [attr.rowtemplateindex]=\"templateIndex\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n rowTemplate;\n context: { $implicit: row, index: index }\n \"\n ></ng-container>\n <td\n *ngIf=\"templateIndex === 0 && !readonly && minRow !== maxRow\"\n class=\"acl-array-form-table__action-col\"\n [class.acl-array-form-table__action-col-divider]=\"actionColumnDivider\"\n >\n <ng-container *ngIf=\"rowControlTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n rowControlTemplate;\n context: { $implicit: row, index: index }\n \"\n ></ng-container>\n </ng-container>\n <div\n [auiTooltip]=\"minRowTooltip\"\n [auiTooltipDisabled]=\"rows?.length > minRow || !minRowTooltip\"\n >\n <button\n *ngIf=\"!rowControlTemplate\"\n aui-button=\"text\"\n type=\"button\"\n [disabled]=\"rows?.length <= minRow\"\n [square]=\"true\"\n [plain]=\"true\"\n (click)=\"remove.emit(index)\"\n >\n <aui-icon icon=\"minus_circle\"></aui-icon>\n </button>\n </div>\n </td>\n </tr>\n\n <tr\n *ngIf=\"rowErrorTemplate && !readonly\"\n [class.acl-array-form-table__row-error]=\"\n row | pure: shouldShowRowError | async\n \"\n [hidden]=\"!(row | pure: shouldShowRowError | async)\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n rowErrorTemplate;\n context: { $implicit: row, index: index }\n \"\n ></ng-container>\n </tr>\n <ng-container\n *ngIf=\"\n separatorTemplate
|
|
443
|
+
], standalone: true, template: "<table\n class=\"acl-array-form-table\"\n [class.acl-array-form-table__readonly-mode]=\"readonly\"\n>\n <thead *ngIf=\"headerTemplate\">\n <tr>\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n <th\n *ngIf=\"!readonly && minRow !== maxRow\"\n class=\"acl-array-form-table__action-col\"\n ></th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let row of rows; let index = index\">\n <tr\n *ngFor=\"let rowTemplate of rowTemplates; let templateIndex = index\"\n [class.acl-array-form-table__row-error]=\"\n row | pure: shouldShowRowError | async\n \"\n [attr.rowtemplateindex]=\"templateIndex\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n rowTemplate;\n context: { $implicit: row, index: index }\n \"\n ></ng-container>\n <td\n *ngIf=\"templateIndex === 0 && !readonly && minRow !== maxRow\"\n class=\"acl-array-form-table__action-col\"\n [class.acl-array-form-table__action-col-divider]=\"actionColumnDivider\"\n >\n <ng-container *ngIf=\"rowControlTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n rowControlTemplate;\n context: { $implicit: row, index: index }\n \"\n ></ng-container>\n </ng-container>\n <div\n [auiTooltip]=\"minRowTooltip\"\n [auiTooltipDisabled]=\"rows?.length > minRow || !minRowTooltip\"\n >\n <button\n *ngIf=\"!rowControlTemplate\"\n aui-button=\"text\"\n type=\"button\"\n [disabled]=\"rows?.length <= minRow\"\n [square]=\"true\"\n [plain]=\"true\"\n (click)=\"remove.emit(index)\"\n >\n <aui-icon icon=\"minus_circle\"></aui-icon>\n </button>\n </div>\n </td>\n </tr>\n\n <tr\n *ngIf=\"rowErrorTemplate && !readonly\"\n [class.acl-array-form-table__row-error]=\"\n row | pure: shouldShowRowError | async\n \"\n [hidden]=\"!(row | pure: shouldShowRowError | async)\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n rowErrorTemplate;\n context: { $implicit: row, index: index }\n \"\n ></ng-container>\n </tr>\n <ng-container\n *ngIf=\"\n (rowSeparator || separatorTemplate) &&\n rows?.length > 1 &&\n index !== rows?.length - 1\n \"\n >\n <tr class=\"acl-array-form-table__separator\">\n <td colspan=\"100\">\n @if (separatorTemplate) {\n <ng-container\n *ngTemplateOutlet=\"separatorTemplate\"\n ></ng-container>\n } @else {\n <div class=\"tw-h-[8px]\"></div>\n }\n </td>\n </tr>\n </ng-container>\n </ng-container>\n\n <tr *ngIf=\"(!rows || rows.length === 0) && showZeroState\">\n <td\n colspan=\"100\"\n style=\"padding: unset\"\n >\n <acl-zero-state\n *ngIf=\"!zeroStateTemplate\"\n [zeroState]=\"true\"\n [resourceName]=\"resourceName\"\n [resourceNameTranslated]=\"resourceNameTranslated\"\n [minHeight]=\"48\"\n ></acl-zero-state>\n\n <ng-container *ngIf=\"zeroStateTemplate\">\n <ng-container *ngTemplateOutlet=\"zeroStateTemplate\"></ng-container>\n </ng-container>\n </td>\n </tr>\n\n <tr\n *ngIf=\"!readonly && minRow !== maxRow\"\n class=\"acl-array-form-table--row-action\"\n >\n <td colspan=\"100\">\n <div class=\"acl-array-form-table__bottom-control-buttons\">\n <ng-container *ngIf=\"footerTemplate\">\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </ng-container>\n <div\n *ngIf=\"!footerTemplate\"\n class=\"tw-flex tw-w-full\"\n [auiTooltip]=\"maxRowTooltip\"\n [auiTooltipDisabled]=\"rows?.length < maxRow || !maxRowTooltip\"\n >\n <button\n aui-button=\"primary\"\n type=\"button\"\n [plain]=\"true\"\n size=\"mini\"\n (click)=\"add.emit()\"\n [disabled]=\"rows?.length >= maxRow || addDisabled\"\n >\n <aui-icon icon=\"plus_circle\"></aui-icon>\n {{ 'add' | translate }}\n </button>\n </div>\n </div>\n </td>\n </tr>\n </tbody>\n</table>\n" }]
|
|
431
444
|
}], () => [{ type: i0.Injector }], { headerTemplate: [{
|
|
432
445
|
type: ContentChild,
|
|
433
446
|
args: [ArrayFormTableHeaderDirective, {
|
|
@@ -464,6 +477,8 @@ export class ArrayFormTableComponent {
|
|
|
464
477
|
read: TemplateRef,
|
|
465
478
|
static: false,
|
|
466
479
|
}]
|
|
480
|
+
}], rowSeparator: [{
|
|
481
|
+
type: Input
|
|
467
482
|
}], ngFormGroupDirective: [{
|
|
468
483
|
type: ContentChild,
|
|
469
484
|
args: [FormGroupDirective, { static: false }]
|
|
@@ -499,4 +514,4 @@ export class ArrayFormTableComponent {
|
|
|
499
514
|
type: Input
|
|
500
515
|
}] }); })();
|
|
501
516
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ArrayFormTableComponent, { className: "ArrayFormTableComponent" }); })();
|
|
502
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2FycmF5LWZvcm0tdGFibGUvZm9ybS9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvYXJyYXktZm9ybS10YWJsZS9mb3JtL3RlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMvRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixTQUFTLEVBQ1QsWUFBWSxFQUNaLFFBQVEsRUFDUixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxXQUFXLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVMLFNBQVMsRUFDVCxTQUFTLEVBQ1Qsa0JBQWtCLEVBQ2xCLE1BQU0sR0FDUCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7Ozs7O0lDdkI1RSx3QkFBZ0U7OztJQUNo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LE1BQU0sRUFBRSxLQUFLO2lCQUNkO1lBVUQsaUJBQWlCO2tCQUpoQixZQUFZO21CQUFDLG1DQUFtQyxFQUFFO29CQUNqRCxJQUFJLEVBQUUsV0FBVztvQkFDakIsTUFBTSxFQUFFLEtBQUs7aUJBQ2Q7WUFJRCxvQkFBb0I7a0JBRG5CLFlBQVk7bUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1lBS25ELElBQUk7a0JBREgsS0FBSztZQUlOLFlBQVk7a0JBRFgsS0FBSztZQUlOLHNCQUFzQjtrQkFEckIsS0FBSztZQUlOLEdBQUc7a0JBREYsTUFBTTtZQUlQLE1BQU07a0JBREwsTUFBTTtZQUlQLFFBQVE7a0JBRFAsS0FBSztZQUlOLFdBQVc7a0JBRFYsS0FBSztZQUlOLG1CQUFtQjtrQkFEbEIsS0FBSztZQUlOLGFBQWE7a0JBRFosS0FBSztZQWVOLFlBQVk7a0JBRFgsS0FBSztZQW1CTixvQkFBb0I7a0JBRG5CLEtBQUs7WUFXTixNQUFNO2tCQURMLEtBQUs7WUFJTixhQUFhO2tCQURaLEtBQUs7WUFJTixNQUFNO2tCQURMLEtBQUs7WUFJTixhQUFhO2tCQURaLEtBQUs7O2tGQWpJSyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCdXR0b25Nb2R1bGUsIEljb25Nb2R1bGUsIHJnYkNvbG9yLCBUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFsYXVkYS91aSc7XG5pbXBvcnQgeyBBc3luY1BpcGUsIE5nRm9yT2YsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBEaXJlY3RpdmUsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIEZvcm1BcnJheSxcbiAgRm9ybUdyb3VwLFxuICBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gIE5nRm9ybSxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBFTVBUWSwgbWFwLCBtZXJnZSwgc3RhcnRXaXRoLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFB1cmVQaXBlIH0gZnJvbSAnLi4vLi4vY29yZS9waXBlcy9wdXJlLnBpcGUnO1xuaW1wb3J0IHsgRUZGRUNUX0RJUkVDVElWRV9NT0RVTEUgfSBmcm9tICcuLi8uLi9lZmZlY3QtZGlyZWN0aXZlL21vZHVsZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICcuLi8uLi90cmFuc2xhdGUvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBaZXJvU3RhdGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi93aWRnZXQvemVyby1zdGF0ZS96ZXJvLXN0YXRlLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBjb25zdCBBUlJBWV9UQUJMRV9GT1JNX0VSUk9SX0JHID0gcmdiQ29sb3IoJ3ItNicpO1xuXG5leHBvcnQgY29uc3Qgcm93QmFja2dyb3VuZENvbG9yRm4gPSA8VCBleHRlbmRzIEFic3RyYWN0Q29udHJvbD4oe1xuICBpbnZhbGlkLFxufTogVCk6IHN0cmluZyA9PiAoaW52YWxpZCA/IEFSUkFZX1RBQkxFX0ZPUk1fRVJST1JfQkcgOiAnJyk7XG5cbmV4cG9ydCBjb25zdCBub1Nob3dSb3dFcnJvciA9ICgpID0+IGZhbHNlO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYWNsQXJyYXlGb3JtVGFibGVIZWFkZXJdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQXJyYXlGb3JtVGFibGVIZWFkZXJEaXJlY3RpdmUge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4pIHt9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thY2xBcnJheUZvcm1UYWJsZVJvd0Vycm9yXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEFycmF5Rm9ybVRhYmxlUm93RXJyb3JEaXJlY3RpdmUge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4pIHt9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thY2xBcnJheUZvcm1UYWJsZVJvd10nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBBcnJheUZvcm1UYWJsZVJvd0RpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55Pikge31cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2FjbEFycmF5Rm9ybVRhYmxlWmVyb1N0YXRlXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEFycmF5Rm9ybVRhYmxlWmVyb1N0YXRlRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+KSB7fVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYWNsQXJyYXlGb3JtVGFibGVSb3dDb250cm9sXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEFycmF5Rm9ybVRhYmxlUm93Q29udHJvbERpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55Pikge31cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2FjbEFycmF5Rm9ybVRhYmxlUm93U2VwYXJhdG9yXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEFycmF5Rm9ybVRhYmxlUm93U2VwYXJhdG9yRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+KSB7fVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYWNsQXJyYXlGb3JtVGFibGVGb290ZXJdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQXJyYXlGb3JtVGFibGVGb290ZXJEaXJlY3RpdmUge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4pIHt9XG59XG5cbi8vIOmAkuW9kumqjOivgSBjb250cm9sIOaYr+WQpuaciemXrumimO+8jGdyb3VwIOWGhemDqOWPr+iDveS8muacieW1jOWll+eahOaDheWGtVxuZnVuY3Rpb24gX2lzRm9ybUNvbnRyb2xJbnZhbGlkKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkge1xuICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Hcm91cCB8fCBjb250cm9sIGluc3RhbmNlb2YgRm9ybUFycmF5KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIChjb250cm9sLmRpcnR5ICYmICEhY29udHJvbC5lcnJvcnMpIHx8XG4gICAgICBPYmplY3QudmFsdWVzKGNvbnRyb2wuY29udHJvbHMpLnNvbWUoX2lzRm9ybUNvbnRyb2xJbnZhbGlkKVxuICAgICk7XG4gIH1cbiAgcmV0dXJuIGNvbnRyb2wuZGlydHkgJiYgY29udHJvbC5pbnZhbGlkO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2wtYXJyYXktZm9ybS10YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi90ZW1wbGF0ZS5odG1sJyxcbiAgLy8gU2luY2Ugcm93cyBtYXliZSB1cGRhdGVkIHdpdGhvdXQgY2hhbmdpbmcgcmVmZXJlbmNlLCB3ZSB1c2UgRGVmYXVsdCBoZXJlOlxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L3ByZWZlci1vbi1wdXNoLWNvbXBvbmVudC1jaGFuZ2UtZGV0ZWN0aW9uXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcbiAgaW1wb3J0czogW1xuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgVG9vbHRpcE1vZHVsZSxcbiAgICBaZXJvU3RhdGVDb21wb25lbnQsXG4gICAgQnV0dG9uTW9kdWxlLFxuICAgIEljb25Nb2R1bGUsXG4gICAgTmdJZixcbiAgICBOZ0Zvck9mLFxuICAgIFB1cmVQaXBlLFxuICAgIEFzeW5jUGlwZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgLi4uRUZGRUNUX0RJUkVDVElWRV9NT0RVTEUsXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEFycmF5Rm9ybVRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQENvbnRlbnRDaGlsZChBcnJheUZvcm1UYWJsZUhlYWRlckRpcmVjdGl2ZSwge1xuICAgIHJlYWQ6IFRlbXBsYXRlUmVmLFxuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgaGVhZGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgLy8g55So5oi35Y+v5Lul5o+Q5L6b5aSa6KGM5qih5p2/LCDkvYblj6rmnInnrKzkuIDooYzmnInmjqfliLbmjInplK4uXG4gIEBDb250ZW50Q2hpbGRyZW4oQXJyYXlGb3JtVGFibGVSb3dEaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgcm93VGVtcGxhdGVzOiBRdWVyeUxpc3Q8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgQENvbnRlbnRDaGlsZChBcnJheUZvcm1UYWJsZVJvd0Vycm9yRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIHJvd0Vycm9yVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgLyoqXG4gICAqIOihqOWNlem7mOiupOaPkOS+m+WIoOmZpOaMiemUrjsg5YGH5aaC55So5oi35o+Q5L6b5qih5p2/LCDlsIbkvb/nlKjnlKjmiLfnmoTmqKHmnb9cbiAgICovXG4gIEBDb250ZW50Q2hpbGQoQXJyYXlGb3JtVGFibGVSb3dDb250cm9sRGlyZWN0aXZlLCB7XG4gICAgcmVhZDogVGVtcGxhdGVSZWYsXG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICByb3dDb250cm9sVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgLyoqXG4gICAqIOihqOWNlem7mOiupOaPkOS+m+a3u+WKoOaMiemUrjsg5YGH5aaC55So5oi35o+Q5L6b5qih5p2/LCDlsIbkvb/nlKjnlKjmiLfnmoTmqKHmnb9cbiAgICovXG4gIEBDb250ZW50Q2hpbGQoQXJyYXlGb3JtVGFibGVGb290ZXJEaXJlY3RpdmUsIHtcbiAgICByZWFkOiBUZW1wbGF0ZVJlZixcbiAgICBzdGF0aWM6IHRydWUsXG4gIH0pXG4gIGZvb3RlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8qKlxuICAgKiDooajljZXpu5jorqTkuLrnqbrmlbDmja7mj5Dkvpvml6B4eHjnmoTmqKHmnb87IOWBh+WmgueUqOaIt+aPkOS+m+aooeadvywg5bCG5L2/55So55So5oi355qE5qih5p2/XG4gICAqL1xuICBAQ29udGVudENoaWxkKEFycmF5Rm9ybVRhYmxlWmVyb1N0YXRlRGlyZWN0aXZlLCB7XG4gICAgcmVhZDogVGVtcGxhdGVSZWYsXG4gICAgc3RhdGljOiBmYWxzZSxcbiAgfSlcbiAgemVyb1N0YXRlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgLyoqXG4gICAqIOihjOS5i+mXtOeahOWIhumalOWMuuWfn1xuICAgKi9cbiAgQENvbnRlbnRDaGlsZChBcnJheUZvcm1UYWJsZVJvd1NlcGFyYXRvckRpcmVjdGl2ZSwge1xuICAgIHJlYWQ6IFRlbXBsYXRlUmVmLFxuICAgIHN0YXRpYzogZmFsc2UsXG4gIH0pXG4gIHNlcGFyYXRvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBDb250ZW50Q2hpbGQoRm9ybUdyb3VwRGlyZWN0aXZlLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgbmdGb3JtR3JvdXBEaXJlY3RpdmU6IEZvcm1Hcm91cERpcmVjdGl2ZTtcblxuICAvLyBEYXRhIGNvbnRleHQgZm9yIHJvd3MuXG4gIEBJbnB1dCgpXG4gIHJvd3M6IGFueVtdO1xuXG4gIEBJbnB1dCgpXG4gIHJlc291cmNlTmFtZSA9IG51bGwgYXMgc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHJlc291cmNlTmFtZVRyYW5zbGF0ZWQ6IHN0cmluZztcblxuICBAT3V0cHV0KClcbiAgYWRkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBPdXRwdXQoKVxuICByZW1vdmUgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTsgLy8gUmV0dXJucyB0aGUgaW5kZXggdG8gYmUgcmVtb3ZlZFxuXG4gIEBJbnB1dCgpXG4gIHJlYWRvbmx5OiBib29sZWFuIHwgJycgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBhZGREaXNhYmxlZDogYm9vbGVhbiB8ICcnID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgYWN0aW9uQ29sdW1uRGl2aWRlcjogYm9vbGVhbiB8ICcnID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgc2hvd1plcm9TdGF0ZSA9IHRydWU7XG5cbiAgZ2V0IGZvcm1EaXJlY3RpdmUoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuaW5qZWN0b3IuZ2V0KEZvcm1Hcm91cERpcmVjdGl2ZSwgbnVsbCkgfHxcbiAgICAgIHRoaXMuaW5qZWN0b3IuZ2V0KE5nRm9ybSwgbnVsbClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIOiHquWumuS5ieaYr+WQpuWxleekuumUmeivr+WGheWuuVxuICAgKiDkvovlpoIgY29udHJvbCDmmK8gRm9ybUdyb3Vw77yM5Y+q5pyJ5Zyo5YaF6YOo5a2QIGNvbnRyb2wg6ZSZ6K+v5pe25omN6ZyA6KaB5bGV56S66ZSZ6K+v5YaF5a65XG4gICAqL1xuICBASW5wdXQoKVxuICBzaG93Um93RXJyb3I8VCBleHRlbmRzIEFic3RyYWN0Q29udHJvbD4oXG4gICAgY29udHJvbDogVCxcbiAgICBmb3JtRGlyZWN0aXZlPzogTmdGb3JtIHwgRm9ybUdyb3VwRGlyZWN0aXZlLFxuICApOiBib29sZWFuIHtcbiAgICBpZiAoZm9ybURpcmVjdGl2ZSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgY29udHJvbC5pbnZhbGlkICYmXG4gICAgICAgIChmb3JtRGlyZWN0aXZlLnN1Ym1pdHRlZCB8fCBfaXNGb3JtQ29udHJvbEludmFsaWQoY29udHJvbCkpXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCB1c2Uge0BsaW5rIHNob3dSb3dFcnJvcn0gaW5zdGVhZFxuICAgKi9cbiAgQElucHV0KClcbiAgcm93QmFja2dyb3VuZENvbG9yRm48VCBleHRlbmRzIEFic3RyYWN0Q29udHJvbD4oXG4gICAgY29udHJvbDogVCxcbiAgICBmb3JtRGlyZWN0aXZlPzogTmdGb3JtIHwgRm9ybUdyb3VwRGlyZWN0aXZlLFxuICApOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnNob3dSb3dFcnJvcihjb250cm9sLCBmb3JtRGlyZWN0aXZlKVxuICAgICAgPyBBUlJBWV9UQUJMRV9GT1JNX0VSUk9SX0JHXG4gICAgICA6IG51bGw7XG4gIH1cblxuICBASW5wdXQoKVxuICBtaW5Sb3cgPSAwO1xuXG4gIEBJbnB1dCgpXG4gIG1pblJvd1Rvb2x0aXAgPSAnJztcblxuICBASW5wdXQoKVxuICBtYXhSb3cgPSBJbmZpbml0eTtcblxuICBASW5wdXQoKVxuICBtYXhSb3dUb29sdGlwID0gJyc7XG5cbiAgZGVzdHJveSQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjZHIgPSB0aGlzLmluamVjdG9yLmdldChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGluamVjdG9yOiBJbmplY3Rvcikge31cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JCQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHNob3VsZFNob3dSb3dFcnJvciA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IHtcbiAgICBjb25zdCB7IHN0YXR1c0NoYW5nZXMgPSBFTVBUWSwgc3RhdHVzIH0gPSBjb250cm9sO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuZm9ybURpcmVjdGl2ZVxuICAgICAgICA/IG1lcmdlKHN0YXR1c0NoYW5nZXMsIHRoaXMuZm9ybURpcmVjdGl2ZS5uZ1N1Ym1pdClcbiAgICAgICAgOiBzdGF0dXNDaGFuZ2VzXG4gICAgKS5waXBlKFxuICAgICAgc3RhcnRXaXRoKHN0YXR1cyksXG4gICAgICBkZWJvdW5jZVRpbWUoMCksXG4gICAgICBtYXAoKCkgPT4gdGhpcy5zaG93Um93RXJyb3IoY29udHJvbCwgdGhpcy5mb3JtRGlyZWN0aXZlKSksXG4gICAgKTtcbiAgfTtcbn1cbiIsIjx0YWJsZVxuICBjbGFzcz1cImFjbC1hcnJheS1mb3JtLXRhYmxlXCJcbiAgW2NsYXNzLmFjbC1hcnJheS1mb3JtLXRhYmxlX19yZWFkb25seS1tb2RlXT1cInJlYWRvbmx5XCJcbj5cbiAgPHRoZWFkICpuZ0lmPVwiaGVhZGVyVGVtcGxhdGVcIj5cbiAgICA8dHI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDx0aFxuICAgICAgICAqbmdJZj1cIiFyZWFkb25seSAmJiBtaW5Sb3cgIT09IG1heFJvd1wiXG4gICAgICAgIGNsYXNzPVwiYWNsLWFycmF5LWZvcm0tdGFibGVfX2FjdGlvbi1jb2xcIlxuICAgICAgPjwvdGg+XG4gICAgPC90cj5cbiAgPC90aGVhZD5cbiAgPHRib2R5PlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHJvdyBvZiByb3dzOyBsZXQgaW5kZXggPSBpbmRleFwiPlxuICAgICAgPHRyXG4gICAgICAgICpuZ0Zvcj1cImxldCByb3dUZW1wbGF0ZSBvZiByb3dUZW1wbGF0ZXM7IGxldCB0ZW1wbGF0ZUluZGV4ID0gaW5kZXhcIlxuICAgICAgICBbY2xhc3MuYWNsLWFycmF5LWZvcm0tdGFibGVfX3Jvdy1lcnJvcl09XCJcbiAgICAgICAgICByb3cgfCBwdXJlOiBzaG91bGRTaG93Um93RXJyb3IgfCBhc3luY1xuICAgICAgICBcIlxuICAgICAgICBbYXR0ci5yb3d0ZW1wbGF0ZWluZGV4XT1cInRlbXBsYXRlSW5kZXhcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgIHJvd1RlbXBsYXRlO1xuICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IHJvdywgaW5kZXg6IGluZGV4IH1cbiAgICAgICAgICBcIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDx0ZFxuICAgICAgICAgICpuZ0lmPVwidGVtcGxhdGVJbmRleCA9PT0gMCAmJiAhcmVhZG9ubHkgJiYgbWluUm93ICE9PSBtYXhSb3dcIlxuICAgICAgICAgIGNsYXNzPVwiYWNsLWFycmF5LWZvcm0tdGFibGVfX2FjdGlvbi1jb2xcIlxuICAgICAgICAgIFtjbGFzcy5hY2wtYXJyYXktZm9ybS10YWJsZV9fYWN0aW9uLWNvbC1kaXZpZGVyXT1cImFjdGlvbkNvbHVtbkRpdmlkZXJcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJvd0NvbnRyb2xUZW1wbGF0ZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgIHJvd0NvbnRyb2xUZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogcm93LCBpbmRleDogaW5kZXggfVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIFthdWlUb29sdGlwXT1cIm1pblJvd1Rvb2x0aXBcIlxuICAgICAgICAgICAgW2F1aVRvb2x0aXBEaXNhYmxlZF09XCJyb3dzPy5sZW5ndGggPiBtaW5Sb3cgfHwgIW1pblJvd1Rvb2x0aXBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgKm5nSWY9XCIhcm93Q29udHJvbFRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgYXVpLWJ1dHRvbj1cInRleHRcIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInJvd3M/Lmxlbmd0aCA8PSBtaW5Sb3dcIlxuICAgICAgICAgICAgICBbc3F1YXJlXT1cInRydWVcIlxuICAgICAgICAgICAgICBbcGxhaW5dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmUuZW1pdChpbmRleClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8YXVpLWljb24gaWNvbj1cIm1pbnVzX2NpcmNsZVwiPjwvYXVpLWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvdHI+XG5cbiAgICAgIDx0clxuICAgICAgICAqbmdJZj1cInJvd0Vycm9yVGVtcGxhdGUgJiYgIXJlYWRvbmx5XCJcbiAgICAgICAgW2NsYXNzLmFjbC1hcnJheS1mb3JtLXRhYmxlX19yb3ctZXJyb3JdPVwiXG4gICAgICAgICAgcm93IHwgcHVyZTogc2hvdWxkU2hvd1Jvd0Vycm9yIHwgYXN5bmNcbiAgICAgICAgXCJcbiAgICAgICAgW2hpZGRlbl09XCIhKHJvdyB8IHB1cmU6IHNob3VsZFNob3dSb3dFcnJvciB8IGFzeW5jKVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgcm93RXJyb3JUZW1wbGF0ZTtcbiAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiByb3csIGluZGV4OiBpbmRleCB9XG4gICAgICAgICAgXCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgPC90cj5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICBzZXBhcmF0b3JUZW1wbGF0ZSAmJiByb3dzPy5sZW5ndGggPiAxICYmIGluZGV4ICE9PSByb3dzPy5sZW5ndGggLSAxXG4gICAgICAgIFwiXG4gICAgICA+XG4gICAgICAgIDx0ciBjbGFzcz1cImFjbC1hcnJheS1mb3JtLXRhYmxlX19zZXBhcmF0b3JcIj5cbiAgICAgICAgICA8dGQgY29sc3Bhbj1cIjEwMFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNlcGFyYXRvclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPHRyICpuZ0lmPVwiKCFyb3dzIHx8IHJvd3MubGVuZ3RoID09PSAwKSAmJiBzaG93WmVyb1N0YXRlXCI+XG4gICAgICA8dGRcbiAgICAgICAgY29sc3Bhbj1cIjEwMFwiXG4gICAgICAgIHN0eWxlPVwicGFkZGluZzogdW5zZXRcIlxuICAgICAgPlxuICAgICAgICA8YWNsLXplcm8tc3RhdGVcbiAgICAgICAgICAqbmdJZj1cIiF6ZXJvU3RhdGVUZW1wbGF0ZVwiXG4gICAgICAgICAgW3plcm9TdGF0ZV09XCJ0cnVlXCJcbiAgICAgICAgICBbcmVzb3VyY2VOYW1lXT1cInJlc291cmNlTmFtZVwiXG4gICAgICAgICAgW3Jlc291cmNlTmFtZVRyYW5zbGF0ZWRdPVwicmVzb3VyY2VOYW1lVHJhbnNsYXRlZFwiXG4gICAgICAgICAgW21pbkhlaWdodF09XCI0OFwiXG4gICAgICAgID48L2FjbC16ZXJvLXN0YXRlPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ6ZXJvU3RhdGVUZW1wbGF0ZVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ6ZXJvU3RhdGVUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvdGQ+XG4gICAgPC90cj5cblxuICAgIDx0clxuICAgICAgKm5nSWY9XCIhcmVhZG9ubHkgJiYgbWluUm93ICE9PSBtYXhSb3dcIlxuICAgICAgY2xhc3M9XCJhY2wtYXJyYXktZm9ybS10YWJsZS0tcm93LWFjdGlvblwiXG4gICAgPlxuICAgICAgPHRkIGNvbHNwYW49XCIxMDBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFjbC1hcnJheS1mb3JtLXRhYmxlX19ib3R0b20tY29udHJvbC1idXR0b25zXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZvb3RlclRlbXBsYXRlXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZm9vdGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cIiFmb290ZXJUZW1wbGF0ZVwiXG4gICAgICAgICAgICBjbGFzcz1cInR3LWZsZXggdHctdy1mdWxsXCJcbiAgICAgICAgICAgIFthdWlUb29sdGlwXT1cIm1heFJvd1Rvb2x0aXBcIlxuICAgICAgICAgICAgW2F1aVRvb2x0aXBEaXNhYmxlZF09XCJyb3dzPy5sZW5ndGggPCBtYXhSb3cgfHwgIW1heFJvd1Rvb2x0aXBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgYXVpLWJ1dHRvbj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgW3BsYWluXT1cInRydWVcIlxuICAgICAgICAgICAgICBzaXplPVwibWluaVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJhZGQuZW1pdCgpXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInJvd3M/Lmxlbmd0aCA+PSBtYXhSb3cgfHwgYWRkRGlzYWJsZWRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8YXVpLWljb24gaWNvbj1cInBsdXNfY2lyY2xlXCI+PC9hdWktaWNvbj5cbiAgICAgICAgICAgICAge3sgJ2FkZCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvdGQ+XG4gICAgPC90cj5cbiAgPC90Ym9keT5cbjwvdGFibGU+XG4iXX0=
|
|
517
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2FycmF5LWZvcm0tdGFibGUvZm9ybS9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvYXJyYXktZm9ybS10YWJsZS9mb3JtL3RlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMvRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixTQUFTLEVBQ1QsWUFBWSxFQUNaLFFBQVEsRUFDUixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxXQUFXLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVMLFNBQVMsRUFDVCxTQUFTLEVBQ1Qsa0JBQWtCLEVBQ2xCLE1BQU0sR0FDUCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7Ozs7O0lDdkI1RSx3QkFBZ0U7OztJQUNo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TSxFQUFFLElBQUk7aUJBQ2I7WUFVRCxpQkFBaUI7a0JBSmhCLFlBQVk7bUJBQUMsZ0NBQWdDLEVBQUU7b0JBQzlDLElBQUksRUFBRSxXQUFXO29CQUNqQixNQUFNLEVBQUUsS0FBSztpQkFDZDtZQVVELGlCQUFpQjtrQkFKaEIsWUFBWTttQkFBQyxtQ0FBbUMsRUFBRTtvQkFDakQsSUFBSSxFQUFFLFdBQVc7b0JBQ2pCLE1BQU0sRUFBRSxLQUFLO2lCQUNkO1lBT0QsWUFBWTtrQkFEWCxLQUFLO1lBSU4sb0JBQW9CO2tCQURuQixZQUFZO21CQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUtuRCxJQUFJO2tCQURILEtBQUs7WUFJTixZQUFZO2tCQURYLEtBQUs7WUFJTixzQkFBc0I7a0JBRHJCLEtBQUs7WUFJTixHQUFHO2tCQURGLE1BQU07WUFJUCxNQUFNO2tCQURMLE1BQU07WUFJUCxRQUFRO2tCQURQLEtBQUs7WUFJTixXQUFXO2tCQURWLEtBQUs7WUFJTixtQkFBbUI7a0JBRGxCLEtBQUs7WUFJTixhQUFhO2tCQURaLEtBQUs7WUFlTixZQUFZO2tCQURYLEtBQUs7WUFtQk4sb0JBQW9CO2tCQURuQixLQUFLO1lBV04sTUFBTTtrQkFETCxLQUFLO1lBSU4sYUFBYTtrQkFEWixLQUFLO1lBSU4sTUFBTTtrQkFETCxLQUFLO1lBSU4sYUFBYTtrQkFEWixLQUFLOztrRkF2SUssdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnV0dG9uTW9kdWxlLCBJY29uTW9kdWxlLCByZ2JDb2xvciwgVG9vbHRpcE1vZHVsZSB9IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0Zvck9mLCBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRGlyZWN0aXZlLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVGVtcGxhdGVSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBGb3JtQXJyYXksXG4gIEZvcm1Hcm91cCxcbiAgRm9ybUdyb3VwRGlyZWN0aXZlLFxuICBOZ0Zvcm0sXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgRU1QVFksIG1hcCwgbWVyZ2UsIHN0YXJ0V2l0aCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBQdXJlUGlwZSB9IGZyb20gJy4uLy4uL2NvcmUvcGlwZXMvcHVyZS5waXBlJztcbmltcG9ydCB7IEVGRkVDVF9ESVJFQ1RJVkVfTU9EVUxFIH0gZnJvbSAnLi4vLi4vZWZmZWN0LWRpcmVjdGl2ZS9tb2R1bGUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnLi4vLi4vdHJhbnNsYXRlL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgWmVyb1N0YXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vd2lkZ2V0L3plcm8tc3RhdGUvemVyby1zdGF0ZS5jb21wb25lbnQnO1xuXG5leHBvcnQgY29uc3QgQVJSQVlfVEFCTEVfRk9STV9FUlJPUl9CRyA9IHJnYkNvbG9yKCdyLTYnKTtcblxuZXhwb3J0IGNvbnN0IHJvd0JhY2tncm91bmRDb2xvckZuID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnRyb2w+KHtcbiAgaW52YWxpZCxcbn06IFQpOiBzdHJpbmcgPT4gKGludmFsaWQgPyBBUlJBWV9UQUJMRV9GT1JNX0VSUk9SX0JHIDogJycpO1xuXG5leHBvcnQgY29uc3Qgbm9TaG93Um93RXJyb3IgPSAoKSA9PiBmYWxzZTtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2FjbEFycmF5Rm9ybVRhYmxlSGVhZGVyXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEFycmF5Rm9ybVRhYmxlSGVhZGVyRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+KSB7fVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYWNsQXJyYXlGb3JtVGFibGVSb3dFcnJvcl0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBBcnJheUZvcm1UYWJsZVJvd0Vycm9yRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+KSB7fVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYWNsQXJyYXlGb3JtVGFibGVSb3ddJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQXJyYXlGb3JtVGFibGVSb3dEaXJlY3RpdmUge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4pIHt9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thY2xBcnJheUZvcm1UYWJsZVplcm9TdGF0ZV0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBBcnJheUZvcm1UYWJsZVplcm9TdGF0ZURpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55Pikge31cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2FjbEFycmF5Rm9ybVRhYmxlUm93Q29udHJvbF0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBBcnJheUZvcm1UYWJsZVJvd0NvbnRyb2xEaXJlY3RpdmUge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4pIHt9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thY2xBcnJheUZvcm1UYWJsZVJvd1NlcGFyYXRvcl0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBBcnJheUZvcm1UYWJsZVJvd1NlcGFyYXRvckRpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55Pikge31cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2FjbEFycmF5Rm9ybVRhYmxlRm9vdGVyXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEFycmF5Rm9ybVRhYmxlRm9vdGVyRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+KSB7fVxufVxuXG4vLyDpgJLlvZLpqozor4EgY29udHJvbCDmmK/lkKbmnInpl67popjvvIxncm91cCDlhoXpg6jlj6/og73kvJrmnInltYzlpZfnmoTmg4XlhrVcbmZ1bmN0aW9uIF9pc0Zvcm1Db250cm9sSW52YWxpZChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpIHtcbiAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtR3JvdXAgfHwgY29udHJvbCBpbnN0YW5jZW9mIEZvcm1BcnJheSkge1xuICAgIHJldHVybiAoXG4gICAgICAoY29udHJvbC5kaXJ0eSAmJiAhIWNvbnRyb2wuZXJyb3JzKSB8fFxuICAgICAgT2JqZWN0LnZhbHVlcyhjb250cm9sLmNvbnRyb2xzKS5zb21lKF9pc0Zvcm1Db250cm9sSW52YWxpZClcbiAgICApO1xuICB9XG4gIHJldHVybiBjb250cm9sLmRpcnR5ICYmIGNvbnRyb2wuaW52YWxpZDtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLWFycmF5LWZvcm0tdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVtcGxhdGUuaHRtbCcsXG4gIC8vIFNpbmNlIHJvd3MgbWF5YmUgdXBkYXRlZCB3aXRob3V0IGNoYW5naW5nIHJlZmVyZW5jZSwgd2UgdXNlIERlZmF1bHQgaGVyZTpcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9wcmVmZXItb24tcHVzaC1jb21wb25lbnQtY2hhbmdlLWRldGVjdGlvblxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXG4gIGltcG9ydHM6IFtcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIFRvb2x0aXBNb2R1bGUsXG4gICAgWmVyb1N0YXRlQ29tcG9uZW50LFxuICAgIEJ1dHRvbk1vZHVsZSxcbiAgICBJY29uTW9kdWxlLFxuICAgIE5nSWYsXG4gICAgTmdGb3JPZixcbiAgICBQdXJlUGlwZSxcbiAgICBBc3luY1BpcGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIC4uLkVGRkVDVF9ESVJFQ1RJVkVfTU9EVUxFLFxuICBdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBBcnJheUZvcm1UYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBDb250ZW50Q2hpbGQoQXJyYXlGb3JtVGFibGVIZWFkZXJEaXJlY3RpdmUsIHtcbiAgICByZWFkOiBUZW1wbGF0ZVJlZixcbiAgICBzdGF0aWM6IHRydWUsXG4gIH0pXG4gIGhlYWRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8vIOeUqOaIt+WPr+S7peaPkOS+m+WkmuihjOaooeadvywg5L2G5Y+q5pyJ56ys5LiA6KGM5pyJ5o6n5Yi25oyJ6ZSuLlxuICBAQ29udGVudENoaWxkcmVuKEFycmF5Rm9ybVRhYmxlUm93RGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIHJvd1RlbXBsYXRlczogUXVlcnlMaXN0PFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gIEBDb250ZW50Q2hpbGQoQXJyYXlGb3JtVGFibGVSb3dFcnJvckRpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICByb3dFcnJvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8qKlxuICAgKiDooajljZXpu5jorqTmj5DkvpvliKDpmaTmjInplK47IOWBh+WmgueUqOaIt+aPkOS+m+aooeadvywg5bCG5L2/55So55So5oi355qE5qih5p2/XG4gICAqL1xuICBAQ29udGVudENoaWxkKEFycmF5Rm9ybVRhYmxlUm93Q29udHJvbERpcmVjdGl2ZSwge1xuICAgIHJlYWQ6IFRlbXBsYXRlUmVmLFxuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgcm93Q29udHJvbFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8qKlxuICAgKiDooajljZXpu5jorqTmj5Dkvpvmt7vliqDmjInplK47IOWBh+WmgueUqOaIt+aPkOS+m+aooeadvywg5bCG5L2/55So55So5oi355qE5qih5p2/XG4gICAqL1xuICBAQ29udGVudENoaWxkKEFycmF5Rm9ybVRhYmxlRm9vdGVyRGlyZWN0aXZlLCB7XG4gICAgcmVhZDogVGVtcGxhdGVSZWYsXG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBmb290ZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAvKipcbiAgICog6KGo5Y2V6buY6K6k5Li656m65pWw5o2u5o+Q5L6b5pegeHh455qE5qih5p2/OyDlgYflpoLnlKjmiLfmj5DkvpvmqKHmnb8sIOWwhuS9v+eUqOeUqOaIt+eahOaooeadv1xuICAgKi9cbiAgQENvbnRlbnRDaGlsZChBcnJheUZvcm1UYWJsZVplcm9TdGF0ZURpcmVjdGl2ZSwge1xuICAgIHJlYWQ6IFRlbXBsYXRlUmVmLFxuICAgIHN0YXRpYzogZmFsc2UsXG4gIH0pXG4gIHplcm9TdGF0ZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8qKlxuICAgKiDooYzkuYvpl7TnmoTliIbpmpTljLrln5/oh6rlrprkuYnmqKHmnb9cbiAgICovXG4gIEBDb250ZW50Q2hpbGQoQXJyYXlGb3JtVGFibGVSb3dTZXBhcmF0b3JEaXJlY3RpdmUsIHtcbiAgICByZWFkOiBUZW1wbGF0ZVJlZixcbiAgICBzdGF0aWM6IGZhbHNlLFxuICB9KVxuICBzZXBhcmF0b3JUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAvKipcbiAgICog6KGM5LmL6Ze055qE5YiG6ZqU5Yy65Z+f77yM6buY6K6k5YWz6ZetXG4gICAqL1xuICBASW5wdXQoKVxuICByb3dTZXBhcmF0b3IgPSBmYWxzZTtcblxuICBAQ29udGVudENoaWxkKEZvcm1Hcm91cERpcmVjdGl2ZSwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIG5nRm9ybUdyb3VwRGlyZWN0aXZlOiBGb3JtR3JvdXBEaXJlY3RpdmU7XG5cbiAgLy8gRGF0YSBjb250ZXh0IGZvciByb3dzLlxuICBASW5wdXQoKVxuICByb3dzOiBhbnlbXTtcblxuICBASW5wdXQoKVxuICByZXNvdXJjZU5hbWUgPSBudWxsIGFzIHN0cmluZztcblxuICBASW5wdXQoKVxuICByZXNvdXJjZU5hbWVUcmFuc2xhdGVkOiBzdHJpbmc7XG5cbiAgQE91dHB1dCgpXG4gIGFkZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAT3V0cHV0KClcbiAgcmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7IC8vIFJldHVybnMgdGhlIGluZGV4IHRvIGJlIHJlbW92ZWRcblxuICBASW5wdXQoKVxuICByZWFkb25seTogYm9vbGVhbiB8ICcnID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgYWRkRGlzYWJsZWQ6IGJvb2xlYW4gfCAnJyA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGFjdGlvbkNvbHVtbkRpdmlkZXI6IGJvb2xlYW4gfCAnJyA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHNob3daZXJvU3RhdGUgPSB0cnVlO1xuXG4gIGdldCBmb3JtRGlyZWN0aXZlKCkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmluamVjdG9yLmdldChGb3JtR3JvdXBEaXJlY3RpdmUsIG51bGwpIHx8XG4gICAgICB0aGlzLmluamVjdG9yLmdldChOZ0Zvcm0sIG51bGwpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDoh6rlrprkuYnmmK/lkKblsZXnpLrplJnor6/lhoXlrrlcbiAgICog5L6L5aaCIGNvbnRyb2wg5pivIEZvcm1Hcm91cO+8jOWPquacieWcqOWGhemDqOWtkCBjb250cm9sIOmUmeivr+aXtuaJjemcgOimgeWxleekuumUmeivr+WGheWuuVxuICAgKi9cbiAgQElucHV0KClcbiAgc2hvd1Jvd0Vycm9yPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnRyb2w+KFxuICAgIGNvbnRyb2w6IFQsXG4gICAgZm9ybURpcmVjdGl2ZT86IE5nRm9ybSB8IEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKGZvcm1EaXJlY3RpdmUpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGNvbnRyb2wuaW52YWxpZCAmJlxuICAgICAgICAoZm9ybURpcmVjdGl2ZS5zdWJtaXR0ZWQgfHwgX2lzRm9ybUNvbnRyb2xJbnZhbGlkKGNvbnRyb2wpKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlIHtAbGluayBzaG93Um93RXJyb3J9IGluc3RlYWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHJvd0JhY2tncm91bmRDb2xvckZuPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnRyb2w+KFxuICAgIGNvbnRyb2w6IFQsXG4gICAgZm9ybURpcmVjdGl2ZT86IE5nRm9ybSB8IEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zaG93Um93RXJyb3IoY29udHJvbCwgZm9ybURpcmVjdGl2ZSlcbiAgICAgID8gQVJSQVlfVEFCTEVfRk9STV9FUlJPUl9CR1xuICAgICAgOiBudWxsO1xuICB9XG5cbiAgQElucHV0KClcbiAgbWluUm93ID0gMDtcblxuICBASW5wdXQoKVxuICBtaW5Sb3dUb29sdGlwID0gJyc7XG5cbiAgQElucHV0KClcbiAgbWF4Um93ID0gSW5maW5pdHk7XG5cbiAgQElucHV0KClcbiAgbWF4Um93VG9vbHRpcCA9ICcnO1xuXG4gIGRlc3Ryb3kkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY2RyID0gdGhpcy5pbmplY3Rvci5nZXQoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBpbmplY3RvcjogSW5qZWN0b3IpIHt9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JCQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBzaG91bGRTaG93Um93RXJyb3IgPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XG4gICAgY29uc3QgeyBzdGF0dXNDaGFuZ2VzID0gRU1QVFksIHN0YXR1cyB9ID0gY29udHJvbDtcblxuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmZvcm1EaXJlY3RpdmVcbiAgICAgICAgPyBtZXJnZShzdGF0dXNDaGFuZ2VzLCB0aGlzLmZvcm1EaXJlY3RpdmUubmdTdWJtaXQpXG4gICAgICAgIDogc3RhdHVzQ2hhbmdlc1xuICAgICkucGlwZShcbiAgICAgIHN0YXJ0V2l0aChzdGF0dXMpLFxuICAgICAgZGVib3VuY2VUaW1lKDApLFxuICAgICAgbWFwKCgpID0+IHRoaXMuc2hvd1Jvd0Vycm9yKGNvbnRyb2wsIHRoaXMuZm9ybURpcmVjdGl2ZSkpLFxuICAgICk7XG4gIH07XG59XG4iLCI8dGFibGVcbiAgY2xhc3M9XCJhY2wtYXJyYXktZm9ybS10YWJsZVwiXG4gIFtjbGFzcy5hY2wtYXJyYXktZm9ybS10YWJsZV9fcmVhZG9ubHktbW9kZV09XCJyZWFkb25seVwiXG4+XG4gIDx0aGVhZCAqbmdJZj1cImhlYWRlclRlbXBsYXRlXCI+XG4gICAgPHRyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhlYWRlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8dGhcbiAgICAgICAgKm5nSWY9XCIhcmVhZG9ubHkgJiYgbWluUm93ICE9PSBtYXhSb3dcIlxuICAgICAgICBjbGFzcz1cImFjbC1hcnJheS1mb3JtLXRhYmxlX19hY3Rpb24tY29sXCJcbiAgICAgID48L3RoPlxuICAgIDwvdHI+XG4gIDwvdGhlYWQ+XG4gIDx0Ym9keT5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCByb3cgb2Ygcm93czsgbGV0IGluZGV4ID0gaW5kZXhcIj5cbiAgICAgIDx0clxuICAgICAgICAqbmdGb3I9XCJsZXQgcm93VGVtcGxhdGUgb2Ygcm93VGVtcGxhdGVzOyBsZXQgdGVtcGxhdGVJbmRleCA9IGluZGV4XCJcbiAgICAgICAgW2NsYXNzLmFjbC1hcnJheS1mb3JtLXRhYmxlX19yb3ctZXJyb3JdPVwiXG4gICAgICAgICAgcm93IHwgcHVyZTogc2hvdWxkU2hvd1Jvd0Vycm9yIHwgYXN5bmNcbiAgICAgICAgXCJcbiAgICAgICAgW2F0dHIucm93dGVtcGxhdGVpbmRleF09XCJ0ZW1wbGF0ZUluZGV4XCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICByb3dUZW1wbGF0ZTtcbiAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiByb3csIGluZGV4OiBpbmRleCB9XG4gICAgICAgICAgXCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8dGRcbiAgICAgICAgICAqbmdJZj1cInRlbXBsYXRlSW5kZXggPT09IDAgJiYgIXJlYWRvbmx5ICYmIG1pblJvdyAhPT0gbWF4Um93XCJcbiAgICAgICAgICBjbGFzcz1cImFjbC1hcnJheS1mb3JtLXRhYmxlX19hY3Rpb24tY29sXCJcbiAgICAgICAgICBbY2xhc3MuYWNsLWFycmF5LWZvcm0tdGFibGVfX2FjdGlvbi1jb2wtZGl2aWRlcl09XCJhY3Rpb25Db2x1bW5EaXZpZGVyXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyb3dDb250cm9sVGVtcGxhdGVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICByb3dDb250cm9sVGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IHJvdywgaW5kZXg6IGluZGV4IH1cbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBbYXVpVG9vbHRpcF09XCJtaW5Sb3dUb29sdGlwXCJcbiAgICAgICAgICAgIFthdWlUb29sdGlwRGlzYWJsZWRdPVwicm93cz8ubGVuZ3RoID4gbWluUm93IHx8ICFtaW5Sb3dUb29sdGlwXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICpuZ0lmPVwiIXJvd0NvbnRyb2xUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgIGF1aS1idXR0b249XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJyb3dzPy5sZW5ndGggPD0gbWluUm93XCJcbiAgICAgICAgICAgICAgW3NxdWFyZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgW3BsYWluXT1cInRydWVcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlLmVtaXQoaW5kZXgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGF1aS1pY29uIGljb249XCJtaW51c19jaXJjbGVcIj48L2F1aS1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L3RyPlxuXG4gICAgICA8dHJcbiAgICAgICAgKm5nSWY9XCJyb3dFcnJvclRlbXBsYXRlICYmICFyZWFkb25seVwiXG4gICAgICAgIFtjbGFzcy5hY2wtYXJyYXktZm9ybS10YWJsZV9fcm93LWVycm9yXT1cIlxuICAgICAgICAgIHJvdyB8IHB1cmU6IHNob3VsZFNob3dSb3dFcnJvciB8IGFzeW5jXG4gICAgICAgIFwiXG4gICAgICAgIFtoaWRkZW5dPVwiIShyb3cgfCBwdXJlOiBzaG91bGRTaG93Um93RXJyb3IgfCBhc3luYylcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgIHJvd0Vycm9yVGVtcGxhdGU7XG4gICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogcm93LCBpbmRleDogaW5kZXggfVxuICAgICAgICAgIFwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvdHI+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgKHJvd1NlcGFyYXRvciB8fCBzZXBhcmF0b3JUZW1wbGF0ZSkgJiZcbiAgICAgICAgICByb3dzPy5sZW5ndGggPiAxICYmXG4gICAgICAgICAgaW5kZXggIT09IHJvd3M/Lmxlbmd0aCAtIDFcbiAgICAgICAgXCJcbiAgICAgID5cbiAgICAgICAgPHRyIGNsYXNzPVwiYWNsLWFycmF5LWZvcm0tdGFibGVfX3NlcGFyYXRvclwiPlxuICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiMTAwXCI+XG4gICAgICAgICAgICBAaWYgKHNlcGFyYXRvclRlbXBsYXRlKSB7XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInNlcGFyYXRvclRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0dy1oLVs4cHhdXCI+PC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPHRyICpuZ0lmPVwiKCFyb3dzIHx8IHJvd3MubGVuZ3RoID09PSAwKSAmJiBzaG93WmVyb1N0YXRlXCI+XG4gICAgICA8dGRcbiAgICAgICAgY29sc3Bhbj1cIjEwMFwiXG4gICAgICAgIHN0eWxlPVwicGFkZGluZzogdW5zZXRcIlxuICAgICAgPlxuICAgICAgICA8YWNsLXplcm8tc3RhdGVcbiAgICAgICAgICAqbmdJZj1cIiF6ZXJvU3RhdGVUZW1wbGF0ZVwiXG4gICAgICAgICAgW3plcm9TdGF0ZV09XCJ0cnVlXCJcbiAgICAgICAgICBbcmVzb3VyY2VOYW1lXT1cInJlc291cmNlTmFtZVwiXG4gICAgICAgICAgW3Jlc291cmNlTmFtZVRyYW5zbGF0ZWRdPVwicmVzb3VyY2VOYW1lVHJhbnNsYXRlZFwiXG4gICAgICAgICAgW21pbkhlaWdodF09XCI0OFwiXG4gICAgICAgID48L2FjbC16ZXJvLXN0YXRlPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ6ZXJvU3RhdGVUZW1wbGF0ZVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ6ZXJvU3RhdGVUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvdGQ+XG4gICAgPC90cj5cblxuICAgIDx0clxuICAgICAgKm5nSWY9XCIhcmVhZG9ubHkgJiYgbWluUm93ICE9PSBtYXhSb3dcIlxuICAgICAgY2xhc3M9XCJhY2wtYXJyYXktZm9ybS10YWJsZS0tcm93LWFjdGlvblwiXG4gICAgPlxuICAgICAgPHRkIGNvbHNwYW49XCIxMDBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFjbC1hcnJheS1mb3JtLXRhYmxlX19ib3R0b20tY29udHJvbC1idXR0b25zXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZvb3RlclRlbXBsYXRlXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZm9vdGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cIiFmb290ZXJUZW1wbGF0ZVwiXG4gICAgICAgICAgICBjbGFzcz1cInR3LWZsZXggdHctdy1mdWxsXCJcbiAgICAgICAgICAgIFthdWlUb29sdGlwXT1cIm1heFJvd1Rvb2x0aXBcIlxuICAgICAgICAgICAgW2F1aVRvb2x0aXBEaXNhYmxlZF09XCJyb3dzPy5sZW5ndGggPCBtYXhSb3cgfHwgIW1heFJvd1Rvb2x0aXBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgYXVpLWJ1dHRvbj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgW3BsYWluXT1cInRydWVcIlxuICAgICAgICAgICAgICBzaXplPVwibWluaVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJhZGQuZW1pdCgpXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInJvd3M/Lmxlbmd0aCA+PSBtYXhSb3cgfHwgYWRkRGlzYWJsZWRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8YXVpLWljb24gaWNvbj1cInBsdXNfY2lyY2xlXCI+PC9hdWktaWNvbj5cbiAgICAgICAgICAgICAge3sgJ2FkZCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvdGQ+XG4gICAgPC90cj5cbiAgPC90Ym9keT5cbjwvdGFibGU+XG4iXX0=
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { getTopWindow, NOT_NOTIFY_ON_ERROR_HEADERS, } from '../core/public-api';
|
|
2
|
+
import { getInitUrl, recordInitUrl } from './app-init-url';
|
|
3
|
+
import { CALLBACK_API, CODE_KEY, EXTERNAL_REDIRECT_API, ID_TOKEN_KEY, LOGIN_API, LOGOUT_API, REDIRECT_URIS, } from './constants';
|
|
4
|
+
import { cleanStorageToken, readStorageToken, refreshStorageAliveRecord, writeStorageToken, } from './storage-token';
|
|
5
|
+
let AUTHORIZATION_STATE;
|
|
6
|
+
export async function fetchAuthorizationState() {
|
|
7
|
+
if (AUTHORIZATION_STATE !== undefined) {
|
|
8
|
+
return AUTHORIZATION_STATE;
|
|
9
|
+
}
|
|
10
|
+
recordInitUrl();
|
|
11
|
+
const config = await getAuthConfiguration();
|
|
12
|
+
const state = await getExistedToken(config);
|
|
13
|
+
const authorizationState = { ...config, ...state };
|
|
14
|
+
initAuthorizationState(authorizationState);
|
|
15
|
+
return authorizationState;
|
|
16
|
+
}
|
|
17
|
+
export function getAuthorizationState() {
|
|
18
|
+
if (AUTHORIZATION_STATE === undefined) {
|
|
19
|
+
throw new Error('AuthorizationState have not been initialized');
|
|
20
|
+
}
|
|
21
|
+
return AUTHORIZATION_STATE;
|
|
22
|
+
}
|
|
23
|
+
export function initAuthorizationState(state) {
|
|
24
|
+
if (AUTHORIZATION_STATE !== undefined &&
|
|
25
|
+
// @ts-expect-error -- webpack specific
|
|
26
|
+
!module.hot) {
|
|
27
|
+
throw new Error('authorizationState have been initialized');
|
|
28
|
+
}
|
|
29
|
+
AUTHORIZATION_STATE = state;
|
|
30
|
+
}
|
|
31
|
+
export function attachAuthorizationHeader() {
|
|
32
|
+
const idToken = readStorageToken();
|
|
33
|
+
return idToken
|
|
34
|
+
? {
|
|
35
|
+
Authorization: `Bearer ${idToken}`,
|
|
36
|
+
}
|
|
37
|
+
: {};
|
|
38
|
+
}
|
|
39
|
+
export async function logoutAudit() {
|
|
40
|
+
return fetch(LOGOUT_API, {
|
|
41
|
+
headers: {
|
|
42
|
+
...attachAuthorizationHeader(),
|
|
43
|
+
...NOT_NOTIFY_ON_ERROR_HEADERS,
|
|
44
|
+
},
|
|
45
|
+
})
|
|
46
|
+
.then(res => res?.json())
|
|
47
|
+
.catch(() => null); // logout API 未指定 logout_redirect_url 时 res?.json() 会失败
|
|
48
|
+
}
|
|
49
|
+
export function logout(returnCurrentPage = false) {
|
|
50
|
+
cleanStorageToken();
|
|
51
|
+
const logoutUrl = typeof returnCurrentPage === 'string' && returnCurrentPage !== ''
|
|
52
|
+
? returnCurrentPage
|
|
53
|
+
: dexLogoutUrl(!!returnCurrentPage);
|
|
54
|
+
try {
|
|
55
|
+
getTopWindow().location.href = logoutUrl;
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
// should never happen, just for robustness in case of cross-origin iframe
|
|
59
|
+
location.href = logoutUrl;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
export function redirectSSOEntry(entry) {
|
|
63
|
+
const hasQuery = entry.includes('?');
|
|
64
|
+
if (hasQuery) {
|
|
65
|
+
const [url, query] = entry.split('?');
|
|
66
|
+
return `${EXTERNAL_REDIRECT_API}?redirect_url=${url}&${query}`;
|
|
67
|
+
}
|
|
68
|
+
return `${EXTERNAL_REDIRECT_API}?redirect_url=${entry}`;
|
|
69
|
+
}
|
|
70
|
+
function dexLogoutUrl(returnCurrentPage = false) {
|
|
71
|
+
const { authUrl } = getAuthorizationState();
|
|
72
|
+
return replaceRedirectUrl(authUrl,
|
|
73
|
+
// authUrl 中的 redirectUrl 是根路由,根路由二次重定向回 portal 时会丢失 code 导致登录失败
|
|
74
|
+
// 如果后期有定制化要求默认首页不是 portal,可以改回之前的方案,使用浏览器导航打开 logoutUrl,然后 dex 重定向到根路由,根路由重定向到默认首页,首页再将 authUrl 中的 redirectUrl 替换为当前 url 跳转到 dex 进行登录;
|
|
75
|
+
// 最好环境变量增加默认首页地址或者 dex redirectUrl 直接是正确地址
|
|
76
|
+
returnCurrentPage ? location.href : location.origin + '/console-portal');
|
|
77
|
+
}
|
|
78
|
+
function replaceRedirectUrl(dexUrl, redirectUrl) {
|
|
79
|
+
const [path, queryParams] = dexUrl.split('?');
|
|
80
|
+
const replacedQueryParams = queryParams
|
|
81
|
+
.split('&')
|
|
82
|
+
.map(pair => {
|
|
83
|
+
const [key, value] = pair.split('=');
|
|
84
|
+
return REDIRECT_URIS.has(key)
|
|
85
|
+
? `${key}=${encodeURIComponent(redirectUrl)}`
|
|
86
|
+
: `${key}=${value}`;
|
|
87
|
+
})
|
|
88
|
+
.join('&');
|
|
89
|
+
return `${path}?${replacedQueryParams}`;
|
|
90
|
+
}
|
|
91
|
+
async function getAuthConfiguration() {
|
|
92
|
+
return fetch(LOGIN_API)
|
|
93
|
+
.then(res => res.json())
|
|
94
|
+
.then(({ auth_url: authUrl, state, logout_url: logoutUrl, }) => ({
|
|
95
|
+
authUrl,
|
|
96
|
+
state,
|
|
97
|
+
logoutUrl,
|
|
98
|
+
}));
|
|
99
|
+
}
|
|
100
|
+
async function getExistedToken(config) {
|
|
101
|
+
try {
|
|
102
|
+
return getTokenFromLocal(config);
|
|
103
|
+
}
|
|
104
|
+
catch {
|
|
105
|
+
return {};
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
async function getTokenFromLocal(config) {
|
|
109
|
+
const { queryParams, hashParams } = getParams();
|
|
110
|
+
const code = queryParams[CODE_KEY] || hashParams[CODE_KEY];
|
|
111
|
+
const idToken = queryParams[ID_TOKEN_KEY] || hashParams[ID_TOKEN_KEY];
|
|
112
|
+
if (!code && !idToken) {
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
115
|
+
refreshStorageAliveRecord();
|
|
116
|
+
return code ? setCookieByCode(code, config.state) : setCookieByToken(idToken);
|
|
117
|
+
}
|
|
118
|
+
async function setCookieByCode(code, state) {
|
|
119
|
+
const queryParams = new URLSearchParams({ code, state });
|
|
120
|
+
const tokenResponse = await fetch(`${CALLBACK_API}?${queryParams.toString()}`).then(res => res.json());
|
|
121
|
+
return mapTokenResponse(tokenResponse);
|
|
122
|
+
}
|
|
123
|
+
async function setCookieByToken(idToken) {
|
|
124
|
+
const queryParams = new URLSearchParams({ id_token: idToken });
|
|
125
|
+
const tokenResponse = await fetch(`${CALLBACK_API}?${queryParams.toString()}`).then(res => res.json());
|
|
126
|
+
return mapTokenResponse(tokenResponse);
|
|
127
|
+
}
|
|
128
|
+
function mapTokenResponse(response) {
|
|
129
|
+
const { id_token: idToken, token_type, token_storage, expire_at, issued_at, } = response;
|
|
130
|
+
writeStorageToken(idToken);
|
|
131
|
+
return {
|
|
132
|
+
storageType: token_storage,
|
|
133
|
+
tokenType: token_type,
|
|
134
|
+
expireAt: expire_at,
|
|
135
|
+
issuedAt: issued_at,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
function getParams() {
|
|
139
|
+
const initUrl = getInitUrl();
|
|
140
|
+
const initLocation = new URL(initUrl);
|
|
141
|
+
const queryParams = parseParams(initLocation.search ? initLocation.search.slice(1) : '');
|
|
142
|
+
const hashParams = parseParams(initLocation.hash ? initLocation.hash.slice(1) : '');
|
|
143
|
+
return { queryParams, hashParams };
|
|
144
|
+
}
|
|
145
|
+
function parseParams(query) {
|
|
146
|
+
if (!query) {
|
|
147
|
+
return {};
|
|
148
|
+
}
|
|
149
|
+
return query.split('&').reduce((acc, param) => {
|
|
150
|
+
const [key, value] = param.split('=');
|
|
151
|
+
return {
|
|
152
|
+
...acc,
|
|
153
|
+
[key]: value,
|
|
154
|
+
};
|
|
155
|
+
}, {});
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXphdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9hdXRob3JpemF0aW9uL2F1dGhvcml6YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFlBQVksRUFDWiwyQkFBMkIsR0FFNUIsTUFBTSxvQkFBb0IsQ0FBQztBQUc1QixPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNELE9BQU8sRUFDTCxZQUFZLEVBQ1osUUFBUSxFQUNSLHFCQUFxQixFQUNyQixZQUFZLEVBQ1osU0FBUyxFQUNULFVBQVUsRUFDVixhQUFhLEdBQ2QsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIseUJBQXlCLEVBQ3pCLGlCQUFpQixHQUNsQixNQUFNLGlCQUFpQixDQUFDO0FBbUJ6QixJQUFJLG1CQUF1QyxDQUFDO0FBRTVDLE1BQU0sQ0FBQyxLQUFLLFVBQVUsdUJBQXVCO0lBQzNDLElBQUksbUJBQW1CLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDdEMsT0FBTyxtQkFBbUIsQ0FBQztJQUM3QixDQUFDO0lBRUQsYUFBYSxFQUFFLENBQUM7SUFFaEIsTUFBTSxNQUFNLEdBQUcsTUFBTSxvQkFBb0IsRUFBRSxDQUFDO0lBRTVDLE1BQU0sS0FBSyxHQUFHLE1BQU0sZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRTVDLE1BQU0sa0JBQWtCLEdBQUcsRUFBRSxHQUFHLE1BQU0sRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDO0lBRW5ELHNCQUFzQixDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFFM0MsT0FBTyxrQkFBa0IsQ0FBQztBQUM1QixDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQjtJQUNuQyxJQUFJLG1CQUFtQixLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3RDLE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsT0FBTyxtQkFBbUIsQ0FBQztBQUM3QixDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUFDLEtBQXlCO0lBQzlELElBQ0UsbUJBQW1CLEtBQUssU0FBUztRQUNqQyx1Q0FBdUM7UUFDdkMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUNYLENBQUM7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELG1CQUFtQixHQUFHLEtBQUssQ0FBQztBQUM5QixDQUFDO0FBRUQsTUFBTSxVQUFVLHlCQUF5QjtJQUN2QyxNQUFNLE9BQU8sR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ25DLE9BQU8sT0FBTztRQUNaLENBQUMsQ0FBQztZQUNFLGFBQWEsRUFBRSxVQUFVLE9BQU8sRUFBRTtTQUNuQztRQUNILENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDVCxDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxXQUFXO0lBQy9CLE9BQU8sS0FBSyxDQUFDLFVBQVUsRUFBRTtRQUN2QixPQUFPLEVBQUU7WUFDUCxHQUFHLHlCQUF5QixFQUFFO1lBQzlCLEdBQUcsMkJBQTJCO1NBQy9CO0tBQ0YsQ0FBQztTQUNDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQztTQUN4QixLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyx1REFBdUQ7QUFDL0UsQ0FBQztBQUVELE1BQU0sVUFBVSxNQUFNLENBQUMsb0JBQXNDLEtBQUs7SUFDaEUsaUJBQWlCLEVBQUUsQ0FBQztJQUVwQixNQUFNLFNBQVMsR0FDYixPQUFPLGlCQUFpQixLQUFLLFFBQVEsSUFBSSxpQkFBaUIsS0FBSyxFQUFFO1FBQy9ELENBQUMsQ0FBQyxpQkFBaUI7UUFDbkIsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUV4QyxJQUFJLENBQUM7UUFDSCxZQUFZLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztJQUMzQyxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsMEVBQTBFO1FBQzFFLFFBQVEsQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDO0lBQzVCLENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEtBQWE7SUFDNUMsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUVyQyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ2IsTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sR0FBRyxxQkFBcUIsaUJBQWlCLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztJQUNqRSxDQUFDO0lBRUQsT0FBTyxHQUFHLHFCQUFxQixpQkFBaUIsS0FBSyxFQUFFLENBQUM7QUFDMUQsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLGlCQUFpQixHQUFHLEtBQUs7SUFDN0MsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLHFCQUFxQixFQUFFLENBQUM7SUFDNUMsT0FBTyxrQkFBa0IsQ0FDdkIsT0FBTztJQUNQLGdFQUFnRTtJQUNoRSx1SUFBdUk7SUFDdkksMkNBQTJDO0lBQzNDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLGlCQUFpQixDQUN4RSxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUMsTUFBYyxFQUFFLFdBQW1CO0lBQzdELE1BQU0sQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUU5QyxNQUFNLG1CQUFtQixHQUFHLFdBQVc7U0FDcEMsS0FBSyxDQUFDLEdBQUcsQ0FBQztTQUNWLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNWLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQyxPQUFPLGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO1lBQzNCLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUM3QyxDQUFDLENBQUMsR0FBRyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7SUFDeEIsQ0FBQyxDQUFDO1NBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRWIsT0FBTyxHQUFHLElBQUksSUFBSSxtQkFBbUIsRUFBRSxDQUFDO0FBQzFDLENBQUM7QUFFRCxLQUFLLFVBQVUsb0JBQW9CO0lBQ2pDLE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQztTQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDdkIsSUFBSSxDQUNILENBQUMsRUFDQyxRQUFRLEVBQUUsT0FBTyxFQUNqQixLQUFLLEVBQ0wsVUFBVSxFQUFFLFNBQVMsR0FLdEIsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNMLE9BQU87UUFDUCxLQUFLO1FBQ0wsU0FBUztLQUNWLENBQUMsQ0FDSCxDQUFDO0FBQ04sQ0FBQztBQUVELEtBQUssVUFBVSxlQUFlLENBQUMsTUFBMEI7SUFDdkQsSUFBSSxDQUFDO1FBQ0gsT0FBTyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxFQUF3QixDQUFDO0lBQ2xDLENBQUM7QUFDSCxDQUFDO0FBRUQsS0FBSyxVQUFVLGlCQUFpQixDQUM5QixNQUEwQjtJQUUxQixNQUFNLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxHQUFHLFNBQVMsRUFBRSxDQUFDO0lBRWhELE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0QsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUV0RSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDdEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQseUJBQXlCLEVBQUUsQ0FBQztJQUU1QixPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ2hGLENBQUM7QUFFRCxLQUFLLFVBQVUsZUFBZSxDQUFDLElBQVksRUFBRSxLQUFhO0lBQ3hELE1BQU0sV0FBVyxHQUFHLElBQUksZUFBZSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFFekQsTUFBTSxhQUFhLEdBQWtCLE1BQU0sS0FBSyxDQUM5QyxHQUFHLFlBQVksSUFBSSxXQUFXLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FDNUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUUxQixPQUFPLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRCxLQUFLLFVBQVUsZ0JBQWdCLENBQUMsT0FBZTtJQUM3QyxNQUFNLFdBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBRS9ELE1BQU0sYUFBYSxHQUFrQixNQUFNLEtBQUssQ0FDOUMsR0FBRyxZQUFZLElBQUksV0FBVyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQzVDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFFMUIsT0FBTyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxRQUF1QjtJQUMvQyxNQUFNLEVBQ0osUUFBUSxFQUFFLE9BQU8sRUFDakIsVUFBVSxFQUNWLGFBQWEsRUFDYixTQUFTLEVBQ1QsU0FBUyxHQUNWLEdBQUcsUUFBUSxDQUFDO0lBRWIsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFM0IsT0FBTztRQUNMLFdBQVcsRUFBRSxhQUFhO1FBQzFCLFNBQVMsRUFBRSxVQUFVO1FBQ3JCLFFBQVEsRUFBRSxTQUFTO1FBQ25CLFFBQVEsRUFBRSxTQUFTO0tBQ3BCLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxTQUFTO0lBQ2hCLE1BQU0sT0FBTyxHQUFHLFVBQVUsRUFBRSxDQUFDO0lBRTdCLE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRXRDLE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FDN0IsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDeEQsQ0FBQztJQUVGLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FDNUIsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDcEQsQ0FBQztJQUVGLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLENBQUM7QUFDckMsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLEtBQWE7SUFDaEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1gsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUM1QyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFdEMsT0FBTztZQUNMLEdBQUcsR0FBRztZQUNOLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSztTQUNiLENBQUM7SUFDSixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDVCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgZ2V0VG9wV2luZG93LFxuICBOT1RfTk9USUZZX09OX0VSUk9SX0hFQURFUlMsXG4gIFN0cmluZ01hcCxcbn0gZnJvbSAnLi4vY29yZS9wdWJsaWMtYXBpJztcbmltcG9ydCB7IEFjY291bnRJbmZvIH0gZnJvbSAnLi4vcGFnZS1zY2FmZm9sZC9wdWJsaWMtYXBpJztcblxuaW1wb3J0IHsgZ2V0SW5pdFVybCwgcmVjb3JkSW5pdFVybCB9IGZyb20gJy4vYXBwLWluaXQtdXJsJztcbmltcG9ydCB7XG4gIENBTExCQUNLX0FQSSxcbiAgQ09ERV9LRVksXG4gIEVYVEVSTkFMX1JFRElSRUNUX0FQSSxcbiAgSURfVE9LRU5fS0VZLFxuICBMT0dJTl9BUEksXG4gIExPR09VVF9BUEksXG4gIFJFRElSRUNUX1VSSVMsXG59IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7XG4gIGNsZWFuU3RvcmFnZVRva2VuLFxuICByZWFkU3RvcmFnZVRva2VuLFxuICByZWZyZXNoU3RvcmFnZUFsaXZlUmVjb3JkLFxuICB3cml0ZVN0b3JhZ2VUb2tlbixcbn0gZnJvbSAnLi9zdG9yYWdlLXRva2VuJztcblxuZXhwb3J0IGludGVyZmFjZSBBdXRob3JpemF0aW9uU3RhdGUge1xuICBleHBpcmVBdD86IHN0cmluZztcbiAgaXNzdWVkQXQ/OiBzdHJpbmc7XG4gIHN0YXRlPzogc3RyaW5nO1xuICBhdXRoVXJsPzogc3RyaW5nO1xuICBsb2dvdXRVcmw/OiBzdHJpbmc7XG4gIGluZm8/OiBBY2NvdW50SW5mbztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUb2tlblJlc3BvbnNlIHtcbiAgdG9rZW5fc3RvcmFnZTogc3RyaW5nO1xuICB0b2tlbl90eXBlOiBzdHJpbmc7XG4gIGV4cGlyZV9hdDogc3RyaW5nO1xuICBpc3N1ZWRfYXQ6IHN0cmluZztcbiAgaWRfdG9rZW4/OiBzdHJpbmc7XG59XG5cbmxldCBBVVRIT1JJWkFUSU9OX1NUQVRFOiBBdXRob3JpemF0aW9uU3RhdGU7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmZXRjaEF1dGhvcml6YXRpb25TdGF0ZSgpIHtcbiAgaWYgKEFVVEhPUklaQVRJT05fU1RBVEUgIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBBVVRIT1JJWkFUSU9OX1NUQVRFO1xuICB9XG5cbiAgcmVjb3JkSW5pdFVybCgpO1xuXG4gIGNvbnN0IGNvbmZpZyA9IGF3YWl0IGdldEF1dGhDb25maWd1cmF0aW9uKCk7XG5cbiAgY29uc3Qgc3RhdGUgPSBhd2FpdCBnZXRFeGlzdGVkVG9rZW4oY29uZmlnKTtcblxuICBjb25zdCBhdXRob3JpemF0aW9uU3RhdGUgPSB7IC4uLmNvbmZpZywgLi4uc3RhdGUgfTtcblxuICBpbml0QXV0aG9yaXphdGlvblN0YXRlKGF1dGhvcml6YXRpb25TdGF0ZSk7XG5cbiAgcmV0dXJuIGF1dGhvcml6YXRpb25TdGF0ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEF1dGhvcml6YXRpb25TdGF0ZSgpIHtcbiAgaWYgKEFVVEhPUklaQVRJT05fU1RBVEUgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignQXV0aG9yaXphdGlvblN0YXRlIGhhdmUgbm90IGJlZW4gaW5pdGlhbGl6ZWQnKTtcbiAgfVxuXG4gIHJldHVybiBBVVRIT1JJWkFUSU9OX1NUQVRFO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5pdEF1dGhvcml6YXRpb25TdGF0ZShzdGF0ZTogQXV0aG9yaXphdGlvblN0YXRlKTogdm9pZCB7XG4gIGlmIChcbiAgICBBVVRIT1JJWkFUSU9OX1NUQVRFICE9PSB1bmRlZmluZWQgJiZcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIC0tIHdlYnBhY2sgc3BlY2lmaWNcbiAgICAhbW9kdWxlLmhvdFxuICApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2F1dGhvcml6YXRpb25TdGF0ZSBoYXZlIGJlZW4gaW5pdGlhbGl6ZWQnKTtcbiAgfVxuXG4gIEFVVEhPUklaQVRJT05fU1RBVEUgPSBzdGF0ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGF0dGFjaEF1dGhvcml6YXRpb25IZWFkZXIoKTogeyBBdXRob3JpemF0aW9uPzogc3RyaW5nIH0ge1xuICBjb25zdCBpZFRva2VuID0gcmVhZFN0b3JhZ2VUb2tlbigpO1xuICByZXR1cm4gaWRUb2tlblxuICAgID8ge1xuICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7aWRUb2tlbn1gLFxuICAgICAgfVxuICAgIDoge307XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsb2dvdXRBdWRpdCgpOiBQcm9taXNlPHsgbG9nb3V0X3JlZGlyZWN0X3VybD86IHN0cmluZyB9PiB7XG4gIHJldHVybiBmZXRjaChMT0dPVVRfQVBJLCB7XG4gICAgaGVhZGVyczoge1xuICAgICAgLi4uYXR0YWNoQXV0aG9yaXphdGlvbkhlYWRlcigpLFxuICAgICAgLi4uTk9UX05PVElGWV9PTl9FUlJPUl9IRUFERVJTLFxuICAgIH0sXG4gIH0pXG4gICAgLnRoZW4ocmVzID0+IHJlcz8uanNvbigpKVxuICAgIC5jYXRjaCgoKSA9PiBudWxsKTsgLy8gbG9nb3V0IEFQSSDmnKrmjIflrpogbG9nb3V0X3JlZGlyZWN0X3VybCDml7YgcmVzPy5qc29uKCkg5Lya5aSx6LSlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2dvdXQocmV0dXJuQ3VycmVudFBhZ2U6IGJvb2xlYW4gfCBzdHJpbmcgPSBmYWxzZSkge1xuICBjbGVhblN0b3JhZ2VUb2tlbigpO1xuXG4gIGNvbnN0IGxvZ291dFVybCA9XG4gICAgdHlwZW9mIHJldHVybkN1cnJlbnRQYWdlID09PSAnc3RyaW5nJyAmJiByZXR1cm5DdXJyZW50UGFnZSAhPT0gJydcbiAgICAgID8gcmV0dXJuQ3VycmVudFBhZ2VcbiAgICAgIDogZGV4TG9nb3V0VXJsKCEhcmV0dXJuQ3VycmVudFBhZ2UpO1xuXG4gIHRyeSB7XG4gICAgZ2V0VG9wV2luZG93KCkubG9jYXRpb24uaHJlZiA9IGxvZ291dFVybDtcbiAgfSBjYXRjaCB7XG4gICAgLy8gc2hvdWxkIG5ldmVyIGhhcHBlbiwganVzdCBmb3Igcm9idXN0bmVzcyBpbiBjYXNlIG9mIGNyb3NzLW9yaWdpbiBpZnJhbWVcbiAgICBsb2NhdGlvbi5ocmVmID0gbG9nb3V0VXJsO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWRpcmVjdFNTT0VudHJ5KGVudHJ5OiBzdHJpbmcpIHtcbiAgY29uc3QgaGFzUXVlcnkgPSBlbnRyeS5pbmNsdWRlcygnPycpO1xuXG4gIGlmIChoYXNRdWVyeSkge1xuICAgIGNvbnN0IFt1cmwsIHF1ZXJ5XSA9IGVudHJ5LnNwbGl0KCc/Jyk7XG4gICAgcmV0dXJuIGAke0VYVEVSTkFMX1JFRElSRUNUX0FQSX0/cmVkaXJlY3RfdXJsPSR7dXJsfSYke3F1ZXJ5fWA7XG4gIH1cblxuICByZXR1cm4gYCR7RVhURVJOQUxfUkVESVJFQ1RfQVBJfT9yZWRpcmVjdF91cmw9JHtlbnRyeX1gO1xufVxuXG5mdW5jdGlvbiBkZXhMb2dvdXRVcmwocmV0dXJuQ3VycmVudFBhZ2UgPSBmYWxzZSkge1xuICBjb25zdCB7IGF1dGhVcmwgfSA9IGdldEF1dGhvcml6YXRpb25TdGF0ZSgpO1xuICByZXR1cm4gcmVwbGFjZVJlZGlyZWN0VXJsKFxuICAgIGF1dGhVcmwsXG4gICAgLy8gYXV0aFVybCDkuK3nmoQgcmVkaXJlY3RVcmwg5piv5qC56Lev55Sx77yM5qC56Lev55Sx5LqM5qyh6YeN5a6a5ZCR5ZueIHBvcnRhbCDml7bkvJrkuKLlpLEgY29kZSDlr7zoh7TnmbvlvZXlpLHotKVcbiAgICAvLyDlpoLmnpzlkI7mnJ/mnInlrprliLbljJbopoHmsYLpu5jorqTpppbpobXkuI3mmK8gcG9ydGFs77yM5Y+v5Lul5pS55Zue5LmL5YmN55qE5pa55qGI77yM5L2/55So5rWP6KeI5Zmo5a+86Iiq5omT5byAIGxvZ291dFVybO+8jOeEtuWQjiBkZXgg6YeN5a6a5ZCR5Yiw5qC56Lev55Sx77yM5qC56Lev55Sx6YeN5a6a5ZCR5Yiw6buY6K6k6aaW6aG177yM6aaW6aG15YaN5bCGIGF1dGhVcmwg5Lit55qEIHJlZGlyZWN0VXJsIOabv+aNouS4uuW9k+WJjSB1cmwg6Lez6L2s5YiwIGRleCDov5vooYznmbvlvZXvvJtcbiAgICAvLyDmnIDlpb3njq/looPlj5jph4/lop7liqDpu5jorqTpppbpobXlnLDlnYDmiJbogIUgZGV4IHJlZGlyZWN0VXJsIOebtOaOpeaYr+ato+ehruWcsOWdgFxuICAgIHJldHVybkN1cnJlbnRQYWdlID8gbG9jYXRpb24uaHJlZiA6IGxvY2F0aW9uLm9yaWdpbiArICcvY29uc29sZS1wb3J0YWwnLFxuICApO1xufVxuXG5mdW5jdGlvbiByZXBsYWNlUmVkaXJlY3RVcmwoZGV4VXJsOiBzdHJpbmcsIHJlZGlyZWN0VXJsOiBzdHJpbmcpIHtcbiAgY29uc3QgW3BhdGgsIHF1ZXJ5UGFyYW1zXSA9IGRleFVybC5zcGxpdCgnPycpO1xuXG4gIGNvbnN0IHJlcGxhY2VkUXVlcnlQYXJhbXMgPSBxdWVyeVBhcmFtc1xuICAgIC5zcGxpdCgnJicpXG4gICAgLm1hcChwYWlyID0+IHtcbiAgICAgIGNvbnN0IFtrZXksIHZhbHVlXSA9IHBhaXIuc3BsaXQoJz0nKTtcbiAgICAgIHJldHVybiBSRURJUkVDVF9VUklTLmhhcyhrZXkpXG4gICAgICAgID8gYCR7a2V5fT0ke2VuY29kZVVSSUNvbXBvbmVudChyZWRpcmVjdFVybCl9YFxuICAgICAgICA6IGAke2tleX09JHt2YWx1ZX1gO1xuICAgIH0pXG4gICAgLmpvaW4oJyYnKTtcblxuICByZXR1cm4gYCR7cGF0aH0/JHtyZXBsYWNlZFF1ZXJ5UGFyYW1zfWA7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEF1dGhDb25maWd1cmF0aW9uKCkge1xuICByZXR1cm4gZmV0Y2goTE9HSU5fQVBJKVxuICAgIC50aGVuKHJlcyA9PiByZXMuanNvbigpKVxuICAgIC50aGVuKFxuICAgICAgKHtcbiAgICAgICAgYXV0aF91cmw6IGF1dGhVcmwsXG4gICAgICAgIHN0YXRlLFxuICAgICAgICBsb2dvdXRfdXJsOiBsb2dvdXRVcmwsXG4gICAgICB9OiB7XG4gICAgICAgIGF1dGhfdXJsOiBzdHJpbmc7XG4gICAgICAgIHN0YXRlOiBzdHJpbmc7XG4gICAgICAgIGxvZ291dF91cmw6IHN0cmluZztcbiAgICAgIH0pID0+ICh7XG4gICAgICAgIGF1dGhVcmwsXG4gICAgICAgIHN0YXRlLFxuICAgICAgICBsb2dvdXRVcmwsXG4gICAgICB9KSxcbiAgICApO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRFeGlzdGVkVG9rZW4oY29uZmlnOiBBdXRob3JpemF0aW9uU3RhdGUpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gZ2V0VG9rZW5Gcm9tTG9jYWwoY29uZmlnKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHt9IGFzIEF1dGhvcml6YXRpb25TdGF0ZTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRUb2tlbkZyb21Mb2NhbChcbiAgY29uZmlnOiBBdXRob3JpemF0aW9uU3RhdGUsXG4pOiBQcm9taXNlPEF1dGhvcml6YXRpb25TdGF0ZT4ge1xuICBjb25zdCB7IHF1ZXJ5UGFyYW1zLCBoYXNoUGFyYW1zIH0gPSBnZXRQYXJhbXMoKTtcblxuICBjb25zdCBjb2RlID0gcXVlcnlQYXJhbXNbQ09ERV9LRVldIHx8IGhhc2hQYXJhbXNbQ09ERV9LRVldO1xuICBjb25zdCBpZFRva2VuID0gcXVlcnlQYXJhbXNbSURfVE9LRU5fS0VZXSB8fCBoYXNoUGFyYW1zW0lEX1RPS0VOX0tFWV07XG5cbiAgaWYgKCFjb2RlICYmICFpZFRva2VuKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZWZyZXNoU3RvcmFnZUFsaXZlUmVjb3JkKCk7XG5cbiAgcmV0dXJuIGNvZGUgPyBzZXRDb29raWVCeUNvZGUoY29kZSwgY29uZmlnLnN0YXRlKSA6IHNldENvb2tpZUJ5VG9rZW4oaWRUb2tlbik7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNldENvb2tpZUJ5Q29kZShjb2RlOiBzdHJpbmcsIHN0YXRlOiBzdHJpbmcpIHtcbiAgY29uc3QgcXVlcnlQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHsgY29kZSwgc3RhdGUgfSk7XG5cbiAgY29uc3QgdG9rZW5SZXNwb25zZTogVG9rZW5SZXNwb25zZSA9IGF3YWl0IGZldGNoKFxuICAgIGAke0NBTExCQUNLX0FQSX0/JHtxdWVyeVBhcmFtcy50b1N0cmluZygpfWAsXG4gICkudGhlbihyZXMgPT4gcmVzLmpzb24oKSk7XG5cbiAgcmV0dXJuIG1hcFRva2VuUmVzcG9uc2UodG9rZW5SZXNwb25zZSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNldENvb2tpZUJ5VG9rZW4oaWRUb2tlbjogc3RyaW5nKSB7XG4gIGNvbnN0IHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh7IGlkX3Rva2VuOiBpZFRva2VuIH0pO1xuXG4gIGNvbnN0IHRva2VuUmVzcG9uc2U6IFRva2VuUmVzcG9uc2UgPSBhd2FpdCBmZXRjaChcbiAgICBgJHtDQUxMQkFDS19BUEl9PyR7cXVlcnlQYXJhbXMudG9TdHJpbmcoKX1gLFxuICApLnRoZW4ocmVzID0+IHJlcy5qc29uKCkpO1xuXG4gIHJldHVybiBtYXBUb2tlblJlc3BvbnNlKHRva2VuUmVzcG9uc2UpO1xufVxuXG5mdW5jdGlvbiBtYXBUb2tlblJlc3BvbnNlKHJlc3BvbnNlOiBUb2tlblJlc3BvbnNlKSB7XG4gIGNvbnN0IHtcbiAgICBpZF90b2tlbjogaWRUb2tlbixcbiAgICB0b2tlbl90eXBlLFxuICAgIHRva2VuX3N0b3JhZ2UsXG4gICAgZXhwaXJlX2F0LFxuICAgIGlzc3VlZF9hdCxcbiAgfSA9IHJlc3BvbnNlO1xuXG4gIHdyaXRlU3RvcmFnZVRva2VuKGlkVG9rZW4pO1xuXG4gIHJldHVybiB7XG4gICAgc3RvcmFnZVR5cGU6IHRva2VuX3N0b3JhZ2UsXG4gICAgdG9rZW5UeXBlOiB0b2tlbl90eXBlLFxuICAgIGV4cGlyZUF0OiBleHBpcmVfYXQsXG4gICAgaXNzdWVkQXQ6IGlzc3VlZF9hdCxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0UGFyYW1zKCkge1xuICBjb25zdCBpbml0VXJsID0gZ2V0SW5pdFVybCgpO1xuXG4gIGNvbnN0IGluaXRMb2NhdGlvbiA9IG5ldyBVUkwoaW5pdFVybCk7XG5cbiAgY29uc3QgcXVlcnlQYXJhbXMgPSBwYXJzZVBhcmFtcyhcbiAgICBpbml0TG9jYXRpb24uc2VhcmNoID8gaW5pdExvY2F0aW9uLnNlYXJjaC5zbGljZSgxKSA6ICcnLFxuICApO1xuXG4gIGNvbnN0IGhhc2hQYXJhbXMgPSBwYXJzZVBhcmFtcyhcbiAgICBpbml0TG9jYXRpb24uaGFzaCA/IGluaXRMb2NhdGlvbi5oYXNoLnNsaWNlKDEpIDogJycsXG4gICk7XG5cbiAgcmV0dXJuIHsgcXVlcnlQYXJhbXMsIGhhc2hQYXJhbXMgfTtcbn1cblxuZnVuY3Rpb24gcGFyc2VQYXJhbXMocXVlcnk6IHN0cmluZyk6IFN0cmluZ01hcCB7XG4gIGlmICghcXVlcnkpIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICByZXR1cm4gcXVlcnkuc3BsaXQoJyYnKS5yZWR1Y2UoKGFjYywgcGFyYW0pID0+IHtcbiAgICBjb25zdCBba2V5LCB2YWx1ZV0gPSBwYXJhbS5zcGxpdCgnPScpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmFjYyxcbiAgICAgIFtrZXldOiB2YWx1ZSxcbiAgICB9O1xuICB9LCB7fSk7XG59XG4iXX0=
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export const STORAGE_TYPE_KEY = 'token_storage';
|
|
2
|
+
export const CODE_KEY = 'code';
|
|
3
|
+
export const ID_TOKEN_KEY = 'id_token';
|
|
4
|
+
export const LOADING_CACHE = 15_000;
|
|
5
|
+
export const LOGIN_API = '/console/api/v2/token/login';
|
|
6
|
+
export const LOGOUT_API = '/console/api/v2/token/logout';
|
|
7
|
+
export const CALLBACK_API = '/console/api/v2/token/callback';
|
|
8
|
+
export const TOKEN_REFRESH_API = '/console/api/v2/token/refresh';
|
|
9
|
+
export const TOKEN_INFO_API = '/console/api/v2/token/info';
|
|
10
|
+
export const EXTERNAL_REDIRECT_API = '/console/api/v2/token/redirect';
|
|
11
|
+
export const REDIRECT_URIS = new Set([
|
|
12
|
+
'redirect_uri',
|
|
13
|
+
'post_logout_redirect_uri',
|
|
14
|
+
]);
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2F1dGhvcml6YXRpb24vY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLGVBQWUsQ0FBQztBQUNoRCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDO0FBQy9CLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUM7QUFFdkMsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQztBQUVwQyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsNkJBQTZCLENBQUM7QUFDdkQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLDhCQUE4QixDQUFDO0FBQ3pELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxnQ0FBZ0MsQ0FBQztBQUM3RCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRywrQkFBK0IsQ0FBQztBQUNqRSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsNEJBQTRCLENBQUM7QUFDM0QsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsZ0NBQWdDLENBQUM7QUFFdEUsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksR0FBRyxDQUFDO0lBQ25DLGNBQWM7SUFDZCwwQkFBMEI7Q0FDM0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFNUT1JBR0VfVFlQRV9LRVkgPSAndG9rZW5fc3RvcmFnZSc7XG5leHBvcnQgY29uc3QgQ09ERV9LRVkgPSAnY29kZSc7XG5leHBvcnQgY29uc3QgSURfVE9LRU5fS0VZID0gJ2lkX3Rva2VuJztcblxuZXhwb3J0IGNvbnN0IExPQURJTkdfQ0FDSEUgPSAxNV8wMDA7XG5cbmV4cG9ydCBjb25zdCBMT0dJTl9BUEkgPSAnL2NvbnNvbGUvYXBpL3YyL3Rva2VuL2xvZ2luJztcbmV4cG9ydCBjb25zdCBMT0dPVVRfQVBJID0gJy9jb25zb2xlL2FwaS92Mi90b2tlbi9sb2dvdXQnO1xuZXhwb3J0IGNvbnN0IENBTExCQUNLX0FQSSA9ICcvY29uc29sZS9hcGkvdjIvdG9rZW4vY2FsbGJhY2snO1xuZXhwb3J0IGNvbnN0IFRPS0VOX1JFRlJFU0hfQVBJID0gJy9jb25zb2xlL2FwaS92Mi90b2tlbi9yZWZyZXNoJztcbmV4cG9ydCBjb25zdCBUT0tFTl9JTkZPX0FQSSA9ICcvY29uc29sZS9hcGkvdjIvdG9rZW4vaW5mbyc7XG5leHBvcnQgY29uc3QgRVhURVJOQUxfUkVESVJFQ1RfQVBJID0gJy9jb25zb2xlL2FwaS92Mi90b2tlbi9yZWRpcmVjdCc7XG5cbmV4cG9ydCBjb25zdCBSRURJUkVDVF9VUklTID0gbmV3IFNldChbXG4gICdyZWRpcmVjdF91cmknLFxuICAncG9zdF9sb2dvdXRfcmVkaXJlY3RfdXJpJyxcbl0pO1xuIl19
|