@c8y/ngx-components 1021.4.3 → 1021.7.0
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/branding/shared/lazy/add-branding-modal/add-branding-modal.component.d.ts +14 -1
- package/branding/shared/lazy/add-branding-modal/add-branding-modal.component.d.ts.map +1 -1
- package/context-dashboard/context-dashboard.component.d.ts +3 -3
- package/context-dashboard/context-dashboard.component.d.ts.map +1 -1
- package/core/dashboard/dashboard.model.d.ts +11 -0
- package/core/dashboard/dashboard.model.d.ts.map +1 -1
- package/core/dashboard/dashboard.module.d.ts +2 -1
- package/core/dashboard/dashboard.module.d.ts.map +1 -1
- package/core/dashboard/widgets-dashboard.component.d.ts +6 -4
- package/core/dashboard/widgets-dashboard.component.d.ts.map +1 -1
- package/core/properties-list/properties-list.component.d.ts +6 -9
- package/core/properties-list/properties-list.component.d.ts.map +1 -1
- package/core/provider-configuration/provider-configuration.component.d.ts.map +1 -1
- package/esm2022/branding/shared/lazy/add-branding-modal/add-branding-modal.component.mjs +49 -5
- package/esm2022/context-dashboard/context-dashboard.component.mjs +12 -7
- package/esm2022/core/dashboard/dashboard.model.mjs +5 -1
- package/esm2022/core/dashboard/dashboard.module.mjs +8 -4
- package/esm2022/core/dashboard/widgets-dashboard.component.mjs +33 -15
- package/esm2022/core/properties-list/properties-list.component.mjs +32 -42
- package/esm2022/core/provider-configuration/provider-configuration.component.mjs +8 -3
- package/esm2022/protocol-lwm2m/ng1/plugin-checker.service.mjs +2 -2
- package/fesm2022/c8y-ngx-components-branding-shared-lazy-add-branding-modal.mjs +48 -4
- package/fesm2022/c8y-ngx-components-branding-shared-lazy-add-branding-modal.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs +11 -6
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-protocol-lwm2m.mjs +1 -1
- package/fesm2022/c8y-ngx-components-protocol-lwm2m.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components.mjs +72 -53
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/locales/de.po +27 -18
- package/locales/es.po +173 -170
- package/locales/fr.po +140 -128
- package/locales/ja_JP.po +176 -135
- package/locales/ko.po +543 -49
- package/locales/locales.pot +20 -2
- package/locales/nl.po +140 -128
- package/locales/pl.po +144 -135
- package/locales/pt_BR.po +150 -141
- package/locales/zh_CN.po +524 -30
- package/locales/zh_TW.po +524 -30
- package/package.json +1 -1
|
@@ -11,7 +11,19 @@ export declare class AddBrandingModalComponent {
|
|
|
11
11
|
result: Promise<Partial<{
|
|
12
12
|
brandingName: string;
|
|
13
13
|
}>>;
|
|
14
|
-
|
|
14
|
+
messages: readonly [{
|
|
15
|
+
readonly name: "nameAlreadyTaken";
|
|
16
|
+
readonly text: "The provided name is already taken.";
|
|
17
|
+
}, {
|
|
18
|
+
readonly name: "onlyLowerCaseCharacters";
|
|
19
|
+
readonly text: "Only lower case characters are allowed.";
|
|
20
|
+
}, {
|
|
21
|
+
readonly name: "shouldStartWithLowerCaseLetterOrNumber";
|
|
22
|
+
readonly text: "Should start with a lower case letter or a number.";
|
|
23
|
+
}, {
|
|
24
|
+
readonly name: "invalidCharacters";
|
|
25
|
+
readonly text: "Invalid character \"{{ invalidCharacter }}\". Only a-z, 0-9 and - are allowed.";
|
|
26
|
+
}];
|
|
15
27
|
private _resovle;
|
|
16
28
|
private _reject;
|
|
17
29
|
constructor(branding: StoreBrandingService, formBuilder: FormBuilder);
|
|
@@ -22,6 +34,7 @@ export declare class AddBrandingModalComponent {
|
|
|
22
34
|
cancel(): void;
|
|
23
35
|
save(): void;
|
|
24
36
|
private ensureNotExistingName;
|
|
37
|
+
private ensureProperVariantName;
|
|
25
38
|
static ɵfac: i0.ɵɵFactoryDeclaration<AddBrandingModalComponent, never>;
|
|
26
39
|
static ɵcmp: i0.ɵɵComponentDeclaration<AddBrandingModalComponent, "c8y-add-branding-modal", never, { "duplicateBranding": { "alias": "duplicateBranding"; "required": false; }; }, {}, never, never, true, never>;
|
|
27
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-branding-modal.component.d.ts","sourceRoot":"","sources":["../../../../../branding/shared/lazy/add-branding-modal/add-branding-modal.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,EAEL,WAAW,EAIZ,MAAM,gBAAgB,CAAC;;AAIxB,qBAMa,yBAAyB;
|
|
1
|
+
{"version":3,"file":"add-branding-modal.component.d.ts","sourceRoot":"","sources":["../../../../../branding/shared/lazy/add-branding-modal/add-branding-modal.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,EAEL,WAAW,EAIZ,MAAM,gBAAgB,CAAC;;AAIxB,qBAMa,yBAAyB;IAkClC,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,WAAW;IAlCZ,iBAAiB,UAAS;IACnC,IAAI,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvC,iBAAiB,EAAE,MAAM,EAAE,CAAM;IACjC,OAAO,UAAQ;IAEf,MAAM;;QAGH;IAEH,QAAQ;;;;;;;;;;;;OAiBG;IAEX,OAAO,CAAC,QAAQ,CAA6D;IAC7E,OAAO,CAAC,OAAO,CAAyB;gBAG9B,QAAQ,EAAE,oBAAoB,EAC9B,WAAW,EAAE,WAAW;IAM5B,2BAA2B;IAUjC,QAAQ;;;IASR,MAAM;IAIN,IAAI;IAIJ,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,uBAAuB;yCAnFpB,yBAAyB;2CAAzB,yBAAyB;CA8GrC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { OnDestroy, OnInit, Renderer2 } from '@angular/core';
|
|
2
2
|
import { ActivatedRoute, Router } from '@angular/router';
|
|
3
|
-
import { ActionBarService, AlertService, BreadcrumbItem, DashboardChange, DashboardChildChange, DynamicComponentDefinition, GainsightService, ModalService, RevertChangeType, Widget, WidgetChange, WidgetsDashboardComponent } from '@c8y/ngx-components';
|
|
3
|
+
import { ActionBarService, AlertService, BreadcrumbItem, DashboardChange, DashboardChildChange, DashboardCopyPermission, DynamicComponentDefinition, GainsightService, ModalService, RevertChangeType, Widget, WidgetChange, WidgetsDashboardComponent } from '@c8y/ngx-components';
|
|
4
4
|
import { TranslateService } from '@ngx-translate/core';
|
|
5
5
|
import { BsModalService } from 'ngx-bootstrap/modal';
|
|
6
6
|
import { CanDeactivateComponent, ContextDashboard, ContextDashboardConfig, ContextDashboardManagedObject, DashboardChildrenState, DashboardHistoryDescription } from './context-dashboard.model';
|
|
@@ -52,7 +52,7 @@ export declare class ContextDashboardComponent implements OnInit, OnDestroy, Can
|
|
|
52
52
|
mo: ContextDashboardManagedObject;
|
|
53
53
|
dashboard: ContextDashboard;
|
|
54
54
|
title: string;
|
|
55
|
-
isCopyDisabled:
|
|
55
|
+
isCopyDisabled: DashboardCopyPermission;
|
|
56
56
|
isReport: boolean;
|
|
57
57
|
readonly dashboardTypeLabel: "Dashboard for \"{{ dashboardType }}\"";
|
|
58
58
|
readonly dashboardTypePopover: "\n The layout and configuration of this dashboard is used by all other assets of model type\n <strong>{{ dashboardType }}</strong>. Any changes made to this dashboard instance will be applied to all\n other instances.";
|
|
@@ -154,7 +154,7 @@ export declare class ContextDashboardComponent implements OnInit, OnDestroy, Can
|
|
|
154
154
|
private mergeWidgetClasses;
|
|
155
155
|
private componentToWidget;
|
|
156
156
|
private addReportDashboardSettings;
|
|
157
|
-
private
|
|
157
|
+
private getDashboardCopyPermissionState;
|
|
158
158
|
private setNewState;
|
|
159
159
|
private getDescriptionForNewState;
|
|
160
160
|
private mapStateToHistoryDescription;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-dashboard.component.d.ts","sourceRoot":"","sources":["../../context-dashboard/context-dashboard.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,SAAS,EACT,MAAM,EACN,SAAS,EAEV,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,cAAc,
|
|
1
|
+
{"version":3,"file":"context-dashboard.component.d.ts","sourceRoot":"","sources":["../../context-dashboard/context-dashboard.component.ts"],"names":[],"mappings":"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"}
|
|
@@ -166,5 +166,16 @@ export interface WidgetChange {
|
|
|
166
166
|
dashboard: DashboardComponent;
|
|
167
167
|
source: DashboardChildComponent;
|
|
168
168
|
}
|
|
169
|
+
export declare const CopyDashboardDisabledReason: {
|
|
170
|
+
readonly PERMISSIONS: "PERMISSIONS";
|
|
171
|
+
readonly WRONG_REFERENCE: "WRONG_REFERENCE";
|
|
172
|
+
};
|
|
173
|
+
export type DashboardCopyPermission = {
|
|
174
|
+
state: true;
|
|
175
|
+
reason?: never;
|
|
176
|
+
} | {
|
|
177
|
+
state: false;
|
|
178
|
+
reason: (typeof CopyDashboardDisabledReason)[keyof typeof CopyDashboardDisabledReason];
|
|
179
|
+
};
|
|
169
180
|
export declare const NEW_DASHBOARD_QUERY_PARAM = "newDashboard";
|
|
170
181
|
//# sourceMappingURL=dashboard.model.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.model.d.ts","sourceRoot":"","sources":["../../../core/dashboard/dashboard.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,0BAA0B,CAAC,EAAE,MAAM,IAAI,CAAC;CACzC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,MAAO,SAAQ,YAAY;IAC1C;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,MAAM,EAAE,GAAG,CAAC;IAEZ;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,UAAU,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAC9B;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,eAAe,EAAE,OAAO,CAAC;IACzB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE;QACP,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC;IACF,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,uBAAuB,CAAC;IACjC,IAAI,EAAE,uBAAuB,EAAE,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,uBAAuB,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,uBAAuB,CAAC;IAChC,QAAQ,EAAE,uBAAuB,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,kBAAkB,CAAC;IAC9B,MAAM,EAAE,uBAAuB,CAAC;CACjC;AAED,eAAO,MAAM,yBAAyB,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"dashboard.model.d.ts","sourceRoot":"","sources":["../../../core/dashboard/dashboard.model.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,9 +23,10 @@ import * as i21 from "ngx-bootstrap/datepicker";
|
|
|
23
23
|
import * as i22 from "../dynamic-forms/dynamic-forms.module";
|
|
24
24
|
import * as i23 from "../help/help.module";
|
|
25
25
|
import * as i24 from "../date-time-picker/date-time-picker.module";
|
|
26
|
+
import * as i25 from "ngx-bootstrap/popover";
|
|
26
27
|
export declare class DashboardModule {
|
|
27
28
|
static ɵfac: i0.ɵɵFactoryDeclaration<DashboardModule, never>;
|
|
28
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<DashboardModule, [typeof i1.DashboardChildComponent, typeof i2.DashboardComponent, typeof i3.DashboardChildTitleComponent, typeof i4.DashboardChildActionComponent, typeof i5.WidgetsDashboardComponent, typeof i6.WidgetTimeContextComponent, typeof i7.IntervalPickerComponent, typeof i8.RealtimeControlComponent, typeof i9.AggregationPickerComponent, typeof i10.WidgetTimeContextIconBar], [typeof i11.CommonModule, typeof i12.ActionBarModule, typeof i13.DynamicComponentModule, typeof i14.DragDropModule, typeof i15.BsDropdownModule, typeof i16.TooltipModule, typeof i17.HeaderModule, typeof i18.DocsModule, typeof i19.BreadcrumbModule, typeof i20.FormsModule, typeof i21.BsDatepickerModule, typeof i22.DynamicFormsModule, typeof i23.HelpModule, typeof i24.DateTimePickerModule], [typeof i2.DashboardComponent, typeof i1.DashboardChildComponent, typeof i3.DashboardChildTitleComponent, typeof i4.DashboardChildActionComponent, typeof i5.WidgetsDashboardComponent, typeof i6.WidgetTimeContextComponent]>;
|
|
29
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<DashboardModule, [typeof i1.DashboardChildComponent, typeof i2.DashboardComponent, typeof i3.DashboardChildTitleComponent, typeof i4.DashboardChildActionComponent, typeof i5.WidgetsDashboardComponent, typeof i6.WidgetTimeContextComponent, typeof i7.IntervalPickerComponent, typeof i8.RealtimeControlComponent, typeof i9.AggregationPickerComponent, typeof i10.WidgetTimeContextIconBar], [typeof i11.CommonModule, typeof i12.ActionBarModule, typeof i13.DynamicComponentModule, typeof i14.DragDropModule, typeof i15.BsDropdownModule, typeof i16.TooltipModule, typeof i17.HeaderModule, typeof i18.DocsModule, typeof i19.BreadcrumbModule, typeof i20.FormsModule, typeof i21.BsDatepickerModule, typeof i22.DynamicFormsModule, typeof i23.HelpModule, typeof i24.DateTimePickerModule, typeof i25.PopoverModule], [typeof i2.DashboardComponent, typeof i1.DashboardChildComponent, typeof i3.DashboardChildTitleComponent, typeof i4.DashboardChildActionComponent, typeof i5.WidgetsDashboardComponent, typeof i6.WidgetTimeContextComponent]>;
|
|
29
30
|
static ɵinj: i0.ɵɵInjectorDeclaration<DashboardModule>;
|
|
30
31
|
}
|
|
31
32
|
//# sourceMappingURL=dashboard.module.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.module.d.ts","sourceRoot":"","sources":["../../../core/dashboard/dashboard.module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dashboard.module.d.ts","sourceRoot":"","sources":["../../../core/dashboard/dashboard.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,qBAuCa,eAAe;yCAAf,eAAe;0CAAf,eAAe;0CAAf,eAAe;CAAG"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
|
1
|
+
import { EventEmitter, SimpleChanges } from '@angular/core';
|
|
2
2
|
import { ActivatedRoute } from '@angular/router';
|
|
3
3
|
import { BreadcrumbItem } from '../breadcrumb/breadcrumb.model';
|
|
4
4
|
import { DashboardComponent } from './dashboard.component';
|
|
5
|
-
import { DashboardChange, DashboardSettings, Widget, WidgetChange } from './dashboard.model';
|
|
5
|
+
import { DashboardChange, DashboardSettings, Widget, WidgetChange, DashboardCopyPermission } from './dashboard.model';
|
|
6
6
|
import { DynamicComponentService } from '../dynamic-component/dynamic-component.service';
|
|
7
7
|
import { Observable } from 'rxjs';
|
|
8
8
|
import { DashboardChildComponent } from './dashboard-child.component';
|
|
@@ -23,7 +23,7 @@ export declare class WidgetsDashboardComponent {
|
|
|
23
23
|
*/
|
|
24
24
|
contextDashboard: any;
|
|
25
25
|
set _settings(settings: Partial<DashboardSettings>);
|
|
26
|
-
isCopyDisabled: boolean;
|
|
26
|
+
isCopyDisabled: DashboardCopyPermission | boolean;
|
|
27
27
|
breadcrumb: BreadcrumbItem;
|
|
28
28
|
editModeButtons: {
|
|
29
29
|
undoButtonDisabled: boolean;
|
|
@@ -47,7 +47,7 @@ export declare class WidgetsDashboardComponent {
|
|
|
47
47
|
revertChange: EventEmitter<RevertChangeType>;
|
|
48
48
|
resolvedWidgets$: Observable<Widget[]>;
|
|
49
49
|
isLoadingWidgets$: Observable<boolean>;
|
|
50
|
-
|
|
50
|
+
copyDisabledPopoverMsg: string;
|
|
51
51
|
editMode: boolean;
|
|
52
52
|
widgetInFullscreenMode: boolean;
|
|
53
53
|
inFullScreen$: Observable<boolean>;
|
|
@@ -58,6 +58,7 @@ export declare class WidgetsDashboardComponent {
|
|
|
58
58
|
private isLoading$;
|
|
59
59
|
private isExecutingResolvers$;
|
|
60
60
|
constructor(dynamic: DynamicComponentService, translateService: TranslateService, route: ActivatedRoute, modal: ModalService);
|
|
61
|
+
ngOnChanges({ isCopyDisabled }: SimpleChanges): void;
|
|
61
62
|
canDeactivate(omitConfirm?: boolean): Promise<boolean>;
|
|
62
63
|
toggleFullscreen(hasWidget?: boolean): void;
|
|
63
64
|
fullScreen(): boolean;
|
|
@@ -67,6 +68,7 @@ export declare class WidgetsDashboardComponent {
|
|
|
67
68
|
cancelDashboardSave(): Promise<void>;
|
|
68
69
|
saveDashboard(): void;
|
|
69
70
|
enableEditMode(): void;
|
|
71
|
+
private setCopyDisabledPopoverMsg;
|
|
70
72
|
private confirmClosing;
|
|
71
73
|
private executeResolversOfWidgets;
|
|
72
74
|
static ɵfac: i0.ɵɵFactoryDeclaration<WidgetsDashboardComponent, never>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"widgets-dashboard.component.d.ts","sourceRoot":"","sources":["../../../core/dashboard/widgets-dashboard.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAAiB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"widgets-dashboard.component.d.ts","sourceRoot":"","sources":["../../../core/dashboard/widgets-dashboard.component.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { OnChanges, SimpleChanges } from '@angular/core';
|
|
1
2
|
import { PropertiesListItem } from './properties-list.model';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
/**
|
|
@@ -13,15 +14,11 @@ import * as i0 from "@angular/core";
|
|
|
13
14
|
* ></c8y-properties-list>
|
|
14
15
|
* ```
|
|
15
16
|
*/
|
|
16
|
-
export declare class PropertiesListComponent {
|
|
17
|
+
export declare class PropertiesListComponent implements OnChanges {
|
|
17
18
|
/**
|
|
18
19
|
* The properties that this list should display.
|
|
19
20
|
*/
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* @ignore
|
|
23
|
-
*/
|
|
24
|
-
get properties(): PropertiesListItem[];
|
|
21
|
+
properties: PropertiesListItem[];
|
|
25
22
|
/**
|
|
26
23
|
* A title for the list.
|
|
27
24
|
*/
|
|
@@ -33,7 +30,7 @@ export declare class PropertiesListComponent {
|
|
|
33
30
|
/**
|
|
34
31
|
* An object where the properties keys are resolved from.
|
|
35
32
|
*/
|
|
36
|
-
|
|
33
|
+
data: object;
|
|
37
34
|
/**
|
|
38
35
|
* A string array of groups that are shown. If noParse is set to false,
|
|
39
36
|
* each complex key will form a group.
|
|
@@ -50,8 +47,7 @@ export declare class PropertiesListComponent {
|
|
|
50
47
|
* defaults to 'c8ydontshow' and it not rendered
|
|
51
48
|
*/
|
|
52
49
|
emptyLabel: string;
|
|
53
|
-
private
|
|
54
|
-
private _data;
|
|
50
|
+
private originalProperties;
|
|
55
51
|
/**
|
|
56
52
|
* Checks if a certain property has an group associated.
|
|
57
53
|
* @param item The property to verify.
|
|
@@ -61,6 +57,7 @@ export declare class PropertiesListComponent {
|
|
|
61
57
|
* @ignore
|
|
62
58
|
*/
|
|
63
59
|
ngOnInit(): void;
|
|
60
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
64
61
|
/**
|
|
65
62
|
* Used in trackBy to avoid recalculation all the time.
|
|
66
63
|
* @ignore
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"properties-list.component.d.ts","sourceRoot":"","sources":["../../../core/properties-list/properties-list.component.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"properties-list.component.d.ts","sourceRoot":"","sources":["../../../core/properties-list/properties-list.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;;AAE7D;;;;;;;;;;;;GAYG;AACH,qBAIa,uBAAwB,YAAW,SAAS;IACvD;;OAEG;IACM,UAAU,EAAE,kBAAkB,EAAE,CAAM;IAE/C;;OAEG;IAEH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IAEH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACM,IAAI,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IAEH,MAAM,EAAE,MAAM,EAAE,CAAM;IAEtB;;;OAGG;IAEH,OAAO,UAAS;IAEhB;;;;OAIG;IAEH,UAAU,EAAE,MAAM,CAAQ;IAE1B,OAAO,CAAC,kBAAkB,CAAuB;IAEjD;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,kBAAkB;IAQjC;;OAEG;IACH,QAAQ,IAAI,IAAI;IAKhB,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAOzC;;;OAGG;IACH,QAAQ,CAAC,KAAK,KAAA,EAAE,IAAI,KAAA;IAIpB,OAAO,CAAC,eAAe;IAwBvB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,gBAAgB;yCAlIb,uBAAuB;2CAAvB,uBAAuB;CAwInC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-configuration.component.d.ts","sourceRoot":"","sources":["../../../core/provider-configuration/provider-configuration.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAqB,MAAM,kBAAkB,CAAC;AAE3F,OAAO,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"provider-configuration.component.d.ts","sourceRoot":"","sources":["../../../core/provider-configuration/provider-configuration.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAqB,MAAM,kBAAkB,CAAC;AAE3F,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,OAAO,EAAkC,MAAM,MAAM,CAAC;AAE5F,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAU,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,sDAAsD,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAEL,2BAA2B,EAC5B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,4BAA4B,EAAE,MAAM,0CAA0C,CAAC;AACxF,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;;AAEpF,qBAKa,8BAA8B;IAyChC,WAAW,EAAE,WAAW;IAC/B,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,0BAA0B;IAClC,OAAO,CAAC,4BAA4B;IACpC,OAAO,CAAC,UAAU;IA9CpB,OAAO,EAAE,UAAU,CAAC,2BAA2B,CAAC,CAO9C;IAEF,SAAS,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAK7B;IAEF,UAAU,EAAE,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAC7C,iBAAiB,EAAE,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAClD,eAAe,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAA6B;IACzE,cAAc,EAAE,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAC/C,cAAc,0BAAmC;IAEjD,IAAI,gBAAqB;IACzB,KAAK,EAAE,kBAAkB,CAAC;IAC1B,MAAM,EAAE,iBAAiB,EAAE,CAAM;IACjC,OAAO,EAAE,iBAAiB,CAIxB;IAEF,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,qBAAqB,CAAqC;IAClE,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,cAAc,CAGgC;gBAG7C,WAAW,EAAE,WAAW,EACvB,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,0BAA0B,EAAE,0BAA0B,EACtD,4BAA4B,EAAE,4BAA4B,EAC1D,UAAU,EAAE,aAAa;IAGnC,QAAQ;IA6EF,yBAAyB;IA2BzB,2BAA2B;IAqBjC,OAAO,CAAC,qBAAqB;yCA/KlB,8BAA8B;2CAA9B,8BAA8B;CAkL1C"}
|
|
@@ -7,6 +7,7 @@ import * as i0 from "@angular/core";
|
|
|
7
7
|
import * as i1 from "@c8y/ngx-components/branding/shared/data";
|
|
8
8
|
import * as i2 from "@angular/forms";
|
|
9
9
|
import * as i3 from "@c8y/ngx-components";
|
|
10
|
+
import * as i4 from "@angular/common";
|
|
10
11
|
export class AddBrandingModalComponent {
|
|
11
12
|
constructor(branding, formBuilder) {
|
|
12
13
|
this.branding = branding;
|
|
@@ -18,7 +19,24 @@ export class AddBrandingModalComponent {
|
|
|
18
19
|
this._resovle = resolve;
|
|
19
20
|
this._reject = reject;
|
|
20
21
|
});
|
|
21
|
-
this.
|
|
22
|
+
this.messages = [
|
|
23
|
+
{
|
|
24
|
+
name: 'nameAlreadyTaken',
|
|
25
|
+
text: gettext('The provided name is already taken.')
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
name: 'onlyLowerCaseCharacters',
|
|
29
|
+
text: gettext('Only lower case characters are allowed.')
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
name: 'shouldStartWithLowerCaseLetterOrNumber',
|
|
33
|
+
text: gettext('Should start with a lower case letter or a number.')
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
name: 'invalidCharacters',
|
|
37
|
+
text: gettext('Invalid character "{{ invalidCharacter }}". Only a-z, 0-9 and - are allowed.')
|
|
38
|
+
}
|
|
39
|
+
];
|
|
22
40
|
this.form = this.initForm();
|
|
23
41
|
this.getExistingBrandingVersions();
|
|
24
42
|
}
|
|
@@ -36,7 +54,7 @@ export class AddBrandingModalComponent {
|
|
|
36
54
|
return this.formBuilder.group({
|
|
37
55
|
brandingName: [
|
|
38
56
|
'',
|
|
39
|
-
[Validators.required,
|
|
57
|
+
[Validators.required, this.ensureProperVariantName(), this.ensureNotExistingName()]
|
|
40
58
|
]
|
|
41
59
|
});
|
|
42
60
|
}
|
|
@@ -58,13 +76,39 @@ export class AddBrandingModalComponent {
|
|
|
58
76
|
return null;
|
|
59
77
|
};
|
|
60
78
|
}
|
|
79
|
+
ensureProperVariantName() {
|
|
80
|
+
return (control) => {
|
|
81
|
+
if (typeof control.value === 'string') {
|
|
82
|
+
const value = control.value;
|
|
83
|
+
if (/[A-Z]/.test(value)) {
|
|
84
|
+
return {
|
|
85
|
+
onlyLowerCaseCharacters: {}
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
if (!/^[a-z0-9]+/.test(value)) {
|
|
89
|
+
return {
|
|
90
|
+
shouldStartWithLowerCaseLetterOrNumber: {}
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
const matches = /[^a-z0-9-]/.exec(value);
|
|
94
|
+
if (matches) {
|
|
95
|
+
return {
|
|
96
|
+
invalidCharacters: {
|
|
97
|
+
invalidCharacter: matches[0]
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return null;
|
|
103
|
+
};
|
|
104
|
+
}
|
|
61
105
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AddBrandingModalComponent, deps: [{ token: i1.StoreBrandingService }, { token: i2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
62
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: AddBrandingModalComponent, isStandalone: true, selector: "c8y-add-branding-modal", inputs: { duplicateBranding: "duplicateBranding" }, ngImport: i0, template: "<c8y-modal\n [title]=\"duplicateBranding ? 'Duplicate Branding' : 'Create Branding'\"\n [headerClasses]=\"'dialog-header'\"\n (onDismiss)=\"cancel()\"\n (onClose)=\"save()\"\n [disabled]=\"form.invalid\"\n [labels]=\"{ cancel: 'Cancel', ok: 'Save' }\"\n>\n<ng-container c8y-modal-title>\n <span [c8yIcon]=\"'palette'\"></span>\n</ng-container>\n <div [formGroup]=\"form\" class=\"p-24\">\n <c8y-form-group>\n <label\n for=\"brandingName\"\n translate\n >\n Branding name\n </label>\n <input\n class=\"form-control\"\n name=\"brandingName\"\n id=\"brandingName\"\n type=\"text\"\n formControlName=\"brandingName\"\n placeholder=\"{{'e.g. {{ example }}' | translate : { example: '
|
|
106
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: AddBrandingModalComponent, isStandalone: true, selector: "c8y-add-branding-modal", inputs: { duplicateBranding: "duplicateBranding" }, ngImport: i0, template: "<c8y-modal\n [title]=\"duplicateBranding ? 'Duplicate Branding' : 'Create Branding'\"\n [headerClasses]=\"'dialog-header'\"\n (onDismiss)=\"cancel()\"\n (onClose)=\"save()\"\n [disabled]=\"form.invalid\"\n [labels]=\"{ cancel: 'Cancel', ok: 'Save' }\"\n>\n<ng-container c8y-modal-title>\n <span [c8yIcon]=\"'palette'\"></span>\n</ng-container>\n <div [formGroup]=\"form\" class=\"p-24\">\n <c8y-form-group>\n <label\n for=\"brandingName\"\n translate\n >\n Branding name\n </label>\n <input\n class=\"form-control\"\n name=\"brandingName\"\n id=\"brandingName\"\n type=\"text\"\n formControlName=\"brandingName\"\n placeholder=\"{{'e.g. {{ example }}' | translate : { example: 'main-branding' } }}\"\n />\n <c8y-messages [helpMessage]=\"'Upper case letters not allowed' | translate\">\n <c8y-message *ngFor=\"let message of messages\"\n [name]=\"message.name\"\n [text]=\"message.text | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n</c8y-modal>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }, { kind: "directive", type: i3.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.ModalComponent, selector: "c8y-modal", inputs: ["disabled", "close", "dismiss", "title", "body", "customFooter", "headerClasses", "labels"], outputs: ["onDismiss", "onClose"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i3.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i3.MessageDirective, selector: "c8y-message", inputs: ["name", "text"] }, { kind: "component", type: i3.MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults", "helpMessage"] }, { kind: "directive", type: i3.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }] }); }
|
|
63
107
|
}
|
|
64
108
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AddBrandingModalComponent, decorators: [{
|
|
65
109
|
type: Component,
|
|
66
|
-
args: [{ selector: 'c8y-add-branding-modal', standalone: true, imports: [CoreModule, NgIf, ReactiveFormsModule], template: "<c8y-modal\n [title]=\"duplicateBranding ? 'Duplicate Branding' : 'Create Branding'\"\n [headerClasses]=\"'dialog-header'\"\n (onDismiss)=\"cancel()\"\n (onClose)=\"save()\"\n [disabled]=\"form.invalid\"\n [labels]=\"{ cancel: 'Cancel', ok: 'Save' }\"\n>\n<ng-container c8y-modal-title>\n <span [c8yIcon]=\"'palette'\"></span>\n</ng-container>\n <div [formGroup]=\"form\" class=\"p-24\">\n <c8y-form-group>\n <label\n for=\"brandingName\"\n translate\n >\n Branding name\n </label>\n <input\n class=\"form-control\"\n name=\"brandingName\"\n id=\"brandingName\"\n type=\"text\"\n formControlName=\"brandingName\"\n placeholder=\"{{'e.g. {{ example }}' | translate : { example: '
|
|
110
|
+
args: [{ selector: 'c8y-add-branding-modal', standalone: true, imports: [CoreModule, NgIf, ReactiveFormsModule], template: "<c8y-modal\n [title]=\"duplicateBranding ? 'Duplicate Branding' : 'Create Branding'\"\n [headerClasses]=\"'dialog-header'\"\n (onDismiss)=\"cancel()\"\n (onClose)=\"save()\"\n [disabled]=\"form.invalid\"\n [labels]=\"{ cancel: 'Cancel', ok: 'Save' }\"\n>\n<ng-container c8y-modal-title>\n <span [c8yIcon]=\"'palette'\"></span>\n</ng-container>\n <div [formGroup]=\"form\" class=\"p-24\">\n <c8y-form-group>\n <label\n for=\"brandingName\"\n translate\n >\n Branding name\n </label>\n <input\n class=\"form-control\"\n name=\"brandingName\"\n id=\"brandingName\"\n type=\"text\"\n formControlName=\"brandingName\"\n placeholder=\"{{'e.g. {{ example }}' | translate : { example: 'main-branding' } }}\"\n />\n <c8y-messages [helpMessage]=\"'Upper case letters not allowed' | translate\">\n <c8y-message *ngFor=\"let message of messages\"\n [name]=\"message.name\"\n [text]=\"message.text | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n</c8y-modal>\n" }]
|
|
67
111
|
}], ctorParameters: () => [{ type: i1.StoreBrandingService }, { type: i2.FormBuilder }], propDecorators: { duplicateBranding: [{
|
|
68
112
|
type: Input
|
|
69
113
|
}] } });
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWJyYW5kaW5nLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2JyYW5kaW5nL3NoYXJlZC9sYXp5L2FkZC1icmFuZGluZy1tb2RhbC9hZGQtYnJhbmRpbmctbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vYnJhbmRpbmcvc2hhcmVkL2xhenkvYWRkLWJyYW5kaW5nLW1vZGFsL2FkZC1icmFuZGluZy1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNoRixPQUFPLEVBRUwsV0FBVyxFQUNYLG1CQUFtQixFQUVuQixVQUFVLEVBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7QUFRdkMsTUFBTSxPQUFPLHlCQUF5QjtJQWdCcEMsWUFDVSxRQUE4QixFQUM5QixXQUF3QjtRQUR4QixhQUFRLEdBQVIsUUFBUSxDQUFzQjtRQUM5QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQWpCekIsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBRW5DLHNCQUFpQixHQUFhLEVBQUUsQ0FBQztRQUNqQyxZQUFPLEdBQUcsSUFBSSxDQUFDO1FBRWYsV0FBTSxHQUFHLElBQUksT0FBTyxDQUE0QyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNsRixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztZQUN4QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztRQUVILG9CQUFlLEdBQUcsT0FBTyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7UUFTL0QsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVELEtBQUssQ0FBQywyQkFBMkI7UUFDL0IsSUFBSSxDQUFDO1lBQ0gsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQ2hFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BFLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsQixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQzVCLFlBQVksRUFBRTtnQkFDWixFQUFFO2dCQUNGLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO2FBQ3ZGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVPLHFCQUFxQjtRQUMzQixPQUFPLENBQUMsT0FBd0IsRUFBRSxFQUFFO1lBQ2xDLElBQUksT0FBTyxPQUFPLENBQUMsS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUN0QyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNsRCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDMUQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEdBQUcsR0FBRyxDQUFDLENBQ25ELENBQUM7Z0JBQ0YsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO29CQUNyQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxFQUFFLENBQUM7Z0JBQ2xDLENBQUM7WUFDSCxDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUM7SUFDSixDQUFDOzhHQWhFVSx5QkFBeUI7a0dBQXpCLHlCQUF5QixzSUNsQnRDLHdrQ0FvQ0EsMkNEcEJZLFVBQVUsaXlEQUFRLG1CQUFtQjs7MkZBRXBDLHlCQUF5QjtrQkFOckMsU0FBUzsrQkFDRSx3QkFBd0IsY0FFdEIsSUFBSSxXQUNQLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxtQkFBbUIsQ0FBQzttSEFHdkMsaUJBQWlCO3NCQUF6QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmVCcmFuZGluZ1NlcnZpY2UgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2JyYW5kaW5nL3NoYXJlZC9kYXRhJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgRm9ybUJ1aWxkZXIsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIFZhbGlkYXRvckZuLFxuICBWYWxpZGF0b3JzXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvcmVNb2R1bGUsIGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktYWRkLWJyYW5kaW5nLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC1icmFuZGluZy1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb3JlTW9kdWxlLCBOZ0lmLCBSZWFjdGl2ZUZvcm1zTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBBZGRCcmFuZGluZ01vZGFsQ29tcG9uZW50IHtcbiAgQElucHV0KCkgZHVwbGljYXRlQnJhbmRpbmcgPSBmYWxzZTtcbiAgZm9ybTogUmV0dXJuVHlwZTx0eXBlb2YgdGhpcy5pbml0Rm9ybT47XG4gIG5hbWVzQWxyZWFkeVRha2VuOiBzdHJpbmdbXSA9IFtdO1xuICBsb2FkaW5nID0gdHJ1ZTtcblxuICByZXN1bHQgPSBuZXcgUHJvbWlzZTxSZXR1cm5UeXBlPHR5cGVvZiB0aGlzLmluaXRGb3JtPlsndmFsdWUnXT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIHRoaXMuX3Jlc292bGUgPSByZXNvbHZlO1xuICAgIHRoaXMuX3JlamVjdCA9IHJlamVjdDtcbiAgfSk7XG5cbiAgYWxyZWFkeVRha2VuTXNnID0gZ2V0dGV4dCgnVGhlIHByb3ZpZGVkIG5hbWUgaXMgYWxyZWFkeSB0YWtlbi4nKTtcblxuICBwcml2YXRlIF9yZXNvdmxlOiAodmFsdWU6IFJldHVyblR5cGU8dHlwZW9mIHRoaXMuaW5pdEZvcm0+Wyd2YWx1ZSddKSA9PiB2b2lkO1xuICBwcml2YXRlIF9yZWplY3Q6IChyZWFzb24/OiBhbnkpID0+IHZvaWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBicmFuZGluZzogU3RvcmVCcmFuZGluZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXJcbiAgKSB7XG4gICAgdGhpcy5mb3JtID0gdGhpcy5pbml0Rm9ybSgpO1xuICAgIHRoaXMuZ2V0RXhpc3RpbmdCcmFuZGluZ1ZlcnNpb25zKCk7XG4gIH1cblxuICBhc3luYyBnZXRFeGlzdGluZ0JyYW5kaW5nVmVyc2lvbnMoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgdmFyaWFudHMgfSA9IGF3YWl0IHRoaXMuYnJhbmRpbmcubG9hZEJyYW5kaW5nVmFyaWFudHMoKTtcbiAgICAgIHRoaXMubmFtZXNBbHJlYWR5VGFrZW4gPSB2YXJpYW50cy5tYXAodmFyaWFudCA9PiB2YXJpYW50LnZlcnNpb24pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUud2FybihlKTtcbiAgICB9XG4gICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gIH1cblxuICBpbml0Rm9ybSgpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICBicmFuZGluZ05hbWU6IFtcbiAgICAgICAgJycsXG4gICAgICAgIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oL15bYS16MC05XSskLyksIHRoaXMuZW5zdXJlTm90RXhpc3RpbmdOYW1lKCldXG4gICAgICBdXG4gICAgfSk7XG4gIH1cblxuICBjYW5jZWwoKSB7XG4gICAgdGhpcy5fcmVqZWN0KCk7XG4gIH1cblxuICBzYXZlKCkge1xuICAgIHRoaXMuX3Jlc292bGUodGhpcy5mb3JtLnZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgZW5zdXJlTm90RXhpc3RpbmdOYW1lKCk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBjb250cm9sLnZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb25zdCBsb3dlcmNhc2VOYW1lID0gY29udHJvbC52YWx1ZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBjb25zdCBuYW1lQWxyZWFkeVRha2VuID0gdGhpcy5uYW1lc0FscmVhZHlUYWtlbi5zb21lKG5hbWUgPT5cbiAgICAgICAgICBuYW1lLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChsb3dlcmNhc2VOYW1lICsgJy0nKVxuICAgICAgICApO1xuICAgICAgICBpZiAobmFtZUFscmVhZHlUYWtlbikge1xuICAgICAgICAgIHJldHVybiB7IG5hbWVBbHJlYWR5VGFrZW46IHt9IH07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gIH1cbn1cbiIsIjxjOHktbW9kYWxcbiAgW3RpdGxlXT1cImR1cGxpY2F0ZUJyYW5kaW5nID8gJ0R1cGxpY2F0ZSBCcmFuZGluZycgOiAnQ3JlYXRlIEJyYW5kaW5nJ1wiXG4gIFtoZWFkZXJDbGFzc2VzXT1cIidkaWFsb2ctaGVhZGVyJ1wiXG4gIChvbkRpc21pc3MpPVwiY2FuY2VsKClcIlxuICAob25DbG9zZSk9XCJzYXZlKClcIlxuICBbZGlzYWJsZWRdPVwiZm9ybS5pbnZhbGlkXCJcbiAgW2xhYmVsc109XCJ7IGNhbmNlbDogJ0NhbmNlbCcsIG9rOiAnU2F2ZScgfVwiXG4+XG48bmctY29udGFpbmVyIGM4eS1tb2RhbC10aXRsZT5cbiAgPHNwYW4gW2M4eUljb25dPVwiJ3BhbGV0dGUnXCI+PC9zcGFuPlxuPC9uZy1jb250YWluZXI+XG4gIDxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJwLTI0XCI+XG4gICAgPGM4eS1mb3JtLWdyb3VwPlxuICAgICAgPGxhYmVsXG4gICAgICAgIGZvcj1cImJyYW5kaW5nTmFtZVwiXG4gICAgICAgIHRyYW5zbGF0ZVxuICAgICAgPlxuICAgICAgICBCcmFuZGluZyBuYW1lXG4gICAgICA8L2xhYmVsPlxuICAgICAgPGlucHV0XG4gICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgbmFtZT1cImJyYW5kaW5nTmFtZVwiXG4gICAgICAgIGlkPVwiYnJhbmRpbmdOYW1lXCJcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJicmFuZGluZ05hbWVcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7J2UuZy4ge3sgZXhhbXBsZSB9fScgfCB0cmFuc2xhdGUgOiB7IGV4YW1wbGU6ICdtYWluX2JyYW5kaW5nJyB9IH19XCJcbiAgICAgIC8+XG4gICAgICA8Yzh5LW1lc3NhZ2VzIFtoZWxwTWVzc2FnZV09XCInVXBwZXIgY2FzZSBsZXR0ZXJzIG5vdCBhbGxvd2VkJyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICA8Yzh5LW1lc3NhZ2VcbiAgICAgICAgICBuYW1lPVwibmFtZUFscmVhZHlUYWtlblwiXG4gICAgICAgICAgW3RleHRdPVwiYWxyZWFkeVRha2VuTXNnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgPjwvYzh5LW1lc3NhZ2U+XG4gICAgICA8L2M4eS1tZXNzYWdlcz5cbiAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICA8L2Rpdj5cbjwvYzh5LW1vZGFsPlxuIl19
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWJyYW5kaW5nLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2JyYW5kaW5nL3NoYXJlZC9sYXp5L2FkZC1icmFuZGluZy1tb2RhbC9hZGQtYnJhbmRpbmctbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vYnJhbmRpbmcvc2hhcmVkL2xhenkvYWRkLWJyYW5kaW5nLW1vZGFsL2FkZC1icmFuZGluZy1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNoRixPQUFPLEVBRUwsV0FBVyxFQUNYLG1CQUFtQixFQUVuQixVQUFVLEVBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7O0FBUXZDLE1BQU0sT0FBTyx5QkFBeUI7SUFpQ3BDLFlBQ1UsUUFBOEIsRUFDOUIsV0FBd0I7UUFEeEIsYUFBUSxHQUFSLFFBQVEsQ0FBc0I7UUFDOUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFsQ3pCLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUVuQyxzQkFBaUIsR0FBYSxFQUFFLENBQUM7UUFDakMsWUFBTyxHQUFHLElBQUksQ0FBQztRQUVmLFdBQU0sR0FBRyxJQUFJLE9BQU8sQ0FBNEMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDbEYsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7WUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7UUFF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LENBQUM7b0JBQzlCLE9BQU87d0JBQ0wsc0NBQXNDLEVBQUUsRUFBRTtxQkFDM0MsQ0FBQztnQkFDSixDQUFDO2dCQUVELE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3pDLElBQUksT0FBTyxFQUFFLENBQUM7b0JBQ1osT0FBTzt3QkFDTCxpQkFBaUIsRUFBRTs0QkFDakIsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQzt5QkFDN0I7cUJBQ0YsQ0FBQztnQkFDSixDQUFDO1lBQ0gsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs4R0E3R1UseUJBQXlCO2tHQUF6Qix5QkFBeUIsc0lDbEJ0QyxzbUNBb0NBLDJDRHBCWSxVQUFVLDg1REFBUSxtQkFBbUI7OzJGQUVwQyx5QkFBeUI7a0JBTnJDLFNBQVM7K0JBQ0Usd0JBQXdCLGNBRXRCLElBQUksV0FDUCxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLENBQUM7bUhBR3ZDLGlCQUFpQjtzQkFBekIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlQnJhbmRpbmdTZXJ2aWNlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9icmFuZGluZy9zaGFyZWQvZGF0YSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIEZvcm1CdWlsZGVyLFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICBWYWxpZGF0b3JGbixcbiAgVmFsaWRhdG9yc1xufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb3JlTW9kdWxlLCBnZXR0ZXh0IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWFkZC1icmFuZGluZy1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZGQtYnJhbmRpbmctbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29yZU1vZHVsZSwgTmdJZiwgUmVhY3RpdmVGb3Jtc01vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgQWRkQnJhbmRpbmdNb2RhbENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGR1cGxpY2F0ZUJyYW5kaW5nID0gZmFsc2U7XG4gIGZvcm06IFJldHVyblR5cGU8dHlwZW9mIHRoaXMuaW5pdEZvcm0+O1xuICBuYW1lc0FscmVhZHlUYWtlbjogc3RyaW5nW10gPSBbXTtcbiAgbG9hZGluZyA9IHRydWU7XG5cbiAgcmVzdWx0ID0gbmV3IFByb21pc2U8UmV0dXJuVHlwZTx0eXBlb2YgdGhpcy5pbml0Rm9ybT5bJ3ZhbHVlJ10+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICB0aGlzLl9yZXNvdmxlID0gcmVzb2x2ZTtcbiAgICB0aGlzLl9yZWplY3QgPSByZWplY3Q7XG4gIH0pO1xuXG4gIG1lc3NhZ2VzID0gW1xuICAgIHtcbiAgICAgIG5hbWU6ICduYW1lQWxyZWFkeVRha2VuJyxcbiAgICAgIHRleHQ6IGdldHRleHQoJ1RoZSBwcm92aWRlZCBuYW1lIGlzIGFscmVhZHkgdGFrZW4uJylcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdvbmx5TG93ZXJDYXNlQ2hhcmFjdGVycycsXG4gICAgICB0ZXh0OiBnZXR0ZXh0KCdPbmx5IGxvd2VyIGNhc2UgY2hhcmFjdGVycyBhcmUgYWxsb3dlZC4nKVxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ3Nob3VsZFN0YXJ0V2l0aExvd2VyQ2FzZUxldHRlck9yTnVtYmVyJyxcbiAgICAgIHRleHQ6IGdldHRleHQoJ1Nob3VsZCBzdGFydCB3aXRoIGEgbG93ZXIgY2FzZSBsZXR0ZXIgb3IgYSBudW1iZXIuJylcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdpbnZhbGlkQ2hhcmFjdGVycycsXG4gICAgICB0ZXh0OiBnZXR0ZXh0KCdJbnZhbGlkIGNoYXJhY3RlciBcInt7IGludmFsaWRDaGFyYWN0ZXIgfX1cIi4gT25seSBhLXosIDAtOSBhbmQgLSBhcmUgYWxsb3dlZC4nKVxuICAgIH1cbiAgXSBhcyBjb25zdDtcblxuICBwcml2YXRlIF9yZXNvdmxlOiAodmFsdWU6IFJldHVyblR5cGU8dHlwZW9mIHRoaXMuaW5pdEZvcm0+Wyd2YWx1ZSddKSA9PiB2b2lkO1xuICBwcml2YXRlIF9yZWplY3Q6IChyZWFzb24/OiBhbnkpID0+IHZvaWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBicmFuZGluZzogU3RvcmVCcmFuZGluZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXJcbiAgKSB7XG4gICAgdGhpcy5mb3JtID0gdGhpcy5pbml0Rm9ybSgpO1xuICAgIHRoaXMuZ2V0RXhpc3RpbmdCcmFuZGluZ1ZlcnNpb25zKCk7XG4gIH1cblxuICBhc3luYyBnZXRFeGlzdGluZ0JyYW5kaW5nVmVyc2lvbnMoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgdmFyaWFudHMgfSA9IGF3YWl0IHRoaXMuYnJhbmRpbmcubG9hZEJyYW5kaW5nVmFyaWFudHMoKTtcbiAgICAgIHRoaXMubmFtZXNBbHJlYWR5VGFrZW4gPSB2YXJpYW50cy5tYXAodmFyaWFudCA9PiB2YXJpYW50LnZlcnNpb24pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUud2FybihlKTtcbiAgICB9XG4gICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gIH1cblxuICBpbml0Rm9ybSgpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICBicmFuZGluZ05hbWU6IFtcbiAgICAgICAgJycsXG4gICAgICAgIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCB0aGlzLmVuc3VyZVByb3BlclZhcmlhbnROYW1lKCksIHRoaXMuZW5zdXJlTm90RXhpc3RpbmdOYW1lKCldXG4gICAgICBdXG4gICAgfSk7XG4gIH1cblxuICBjYW5jZWwoKSB7XG4gICAgdGhpcy5fcmVqZWN0KCk7XG4gIH1cblxuICBzYXZlKCkge1xuICAgIHRoaXMuX3Jlc292bGUodGhpcy5mb3JtLnZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgZW5zdXJlTm90RXhpc3RpbmdOYW1lKCk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBjb250cm9sLnZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb25zdCBsb3dlcmNhc2VOYW1lID0gY29udHJvbC52YWx1ZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBjb25zdCBuYW1lQWxyZWFkeVRha2VuID0gdGhpcy5uYW1lc0FscmVhZHlUYWtlbi5zb21lKG5hbWUgPT5cbiAgICAgICAgICBuYW1lLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChsb3dlcmNhc2VOYW1lICsgJy0nKVxuICAgICAgICApO1xuICAgICAgICBpZiAobmFtZUFscmVhZHlUYWtlbikge1xuICAgICAgICAgIHJldHVybiB7IG5hbWVBbHJlYWR5VGFrZW46IHt9IH07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGVuc3VyZVByb3BlclZhcmlhbnROYW1lKCk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBjb250cm9sLnZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2wudmFsdWU7XG4gICAgICAgIGlmICgvW0EtWl0vLnRlc3QodmFsdWUpKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG9ubHlMb3dlckNhc2VDaGFyYWN0ZXJzOiB7fVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCEvXlthLXowLTldKy8udGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc2hvdWxkU3RhcnRXaXRoTG93ZXJDYXNlTGV0dGVyT3JOdW1iZXI6IHt9XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1hdGNoZXMgPSAvW15hLXowLTktXS8uZXhlYyh2YWx1ZSk7XG4gICAgICAgIGlmIChtYXRjaGVzKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGludmFsaWRDaGFyYWN0ZXJzOiB7XG4gICAgICAgICAgICAgIGludmFsaWRDaGFyYWN0ZXI6IG1hdGNoZXNbMF1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuICB9XG59XG4iLCI8Yzh5LW1vZGFsXG4gIFt0aXRsZV09XCJkdXBsaWNhdGVCcmFuZGluZyA/ICdEdXBsaWNhdGUgQnJhbmRpbmcnIDogJ0NyZWF0ZSBCcmFuZGluZydcIlxuICBbaGVhZGVyQ2xhc3Nlc109XCInZGlhbG9nLWhlYWRlcidcIlxuICAob25EaXNtaXNzKT1cImNhbmNlbCgpXCJcbiAgKG9uQ2xvc2UpPVwic2F2ZSgpXCJcbiAgW2Rpc2FibGVkXT1cImZvcm0uaW52YWxpZFwiXG4gIFtsYWJlbHNdPVwieyBjYW5jZWw6ICdDYW5jZWwnLCBvazogJ1NhdmUnIH1cIlxuPlxuPG5nLWNvbnRhaW5lciBjOHktbW9kYWwtdGl0bGU+XG4gIDxzcGFuIFtjOHlJY29uXT1cIidwYWxldHRlJ1wiPjwvc3Bhbj5cbjwvbmctY29udGFpbmVyPlxuICA8ZGl2IFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwicC0yNFwiPlxuICAgIDxjOHktZm9ybS1ncm91cD5cbiAgICAgIDxsYWJlbFxuICAgICAgICBmb3I9XCJicmFuZGluZ05hbWVcIlxuICAgICAgICB0cmFuc2xhdGVcbiAgICAgID5cbiAgICAgICAgQnJhbmRpbmcgbmFtZVxuICAgICAgPC9sYWJlbD5cbiAgICAgIDxpbnB1dFxuICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgIG5hbWU9XCJicmFuZGluZ05hbWVcIlxuICAgICAgICBpZD1cImJyYW5kaW5nTmFtZVwiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYnJhbmRpbmdOYW1lXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eydlLmcuIHt7IGV4YW1wbGUgfX0nIHwgdHJhbnNsYXRlIDogeyBleGFtcGxlOiAnbWFpbi1icmFuZGluZycgfSB9fVwiXG4gICAgICAvPlxuICAgICAgPGM4eS1tZXNzYWdlcyBbaGVscE1lc3NhZ2VdPVwiJ1VwcGVyIGNhc2UgbGV0dGVycyBub3QgYWxsb3dlZCcgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgPGM4eS1tZXNzYWdlICpuZ0Zvcj1cImxldCBtZXNzYWdlIG9mIG1lc3NhZ2VzXCJcbiAgICAgICAgICBbbmFtZV09XCJtZXNzYWdlLm5hbWVcIlxuICAgICAgICAgIFt0ZXh0XT1cIm1lc3NhZ2UudGV4dCB8IHRyYW5zbGF0ZVwiXG4gICAgICAgID48L2M4eS1tZXNzYWdlPlxuICAgICAgPC9jOHktbWVzc2FnZXM+XG4gICAgPC9jOHktZm9ybS1ncm91cD5cbiAgPC9kaXY+XG48L2M4eS1tb2RhbD5cbiJdfQ==
|