@veloceapps/sdk 7.0.2-3 → 7.0.2-31
Sign up to get free protection for your applications and to get access to all the features.
- package/cms/cms.actions.d.ts +30 -1
- package/cms/components/element-children/element-children.component.d.ts +3 -1
- package/cms/components/element-tools-panel/element-tools-panel.component.d.ts +14 -0
- package/cms/components/preview/preview.component.d.ts +1 -0
- package/cms/components/preview/preview.module.d.ts +2 -1
- package/cms/components/preview/preview.types.d.ts +4 -0
- package/cms/injection-tokens.d.ts +1 -3
- package/cms/modules/runtime/index.d.ts +1 -0
- package/cms/modules/runtime/services/compilation.service.d.ts +2 -1
- package/cms/modules/runtime/services/runtime-editor.service.d.ts +6 -4
- package/cms/modules/runtime/services/runtime.service.d.ts +5 -1
- package/cms/modules/runtime/types/runtime.actions.d.ts +5 -2
- package/cms/plugins/element-hover.plugin.d.ts +32 -0
- package/cms/plugins/page.plugin.d.ts +15 -0
- package/cms/plugins/script.plugin.d.ts +0 -3
- package/cms/types/common.types.d.ts +11 -1
- package/cms/types/index.d.ts +2 -0
- package/cms/types/layouts.types.d.ts +28 -2
- package/cms/types/pages.types.d.ts +1 -0
- package/cms/utils/elements-resolver.d.ts +5 -1
- package/cms/utils/script.utils.d.ts +2 -0
- package/cms/vendor-map.d.ts +9 -6
- package/core/modules/configuration/services/configuration.service.d.ts +3 -3
- package/core/services/index.d.ts +1 -0
- package/core/services/runtime-settings.service.d.ts +18 -0
- package/core/types/ui-definition.types.d.ts +7 -2
- package/core/utils/line-item.utils.d.ts +4 -2
- package/core/utils/line-item.worker.d.ts +2 -2
- package/esm2020/cms/cms.actions.mjs +42 -2
- package/esm2020/cms/cms.elements.mjs +16 -4
- package/esm2020/cms/cms.layouts.mjs +53 -1
- package/esm2020/cms/components/element-children/element-children.component.mjs +11 -6
- package/esm2020/cms/components/element-drop-handle/element-drop-handle.component.mjs +2 -2
- package/esm2020/cms/components/element-tools-panel/element-tools-panel.component.mjs +35 -0
- package/esm2020/cms/components/preview/preview.component.mjs +11 -7
- package/esm2020/cms/components/preview/preview.module.mjs +22 -4
- package/esm2020/cms/components/preview/preview.types.mjs +1 -1
- package/esm2020/cms/injection-tokens.mjs +1 -2
- package/esm2020/cms/modules/runtime/index.mjs +2 -1
- package/esm2020/cms/modules/runtime/services/compilation.service.mjs +3 -3
- package/esm2020/cms/modules/runtime/services/runtime-editor.service.mjs +5 -3
- package/esm2020/cms/modules/runtime/services/runtime.service.mjs +39 -5
- package/esm2020/cms/modules/runtime/types/runtime.actions.mjs +1 -1
- package/esm2020/cms/plugins/element-hover.plugin.mjs +112 -0
- package/esm2020/cms/plugins/page.plugin.mjs +37 -0
- package/esm2020/cms/plugins/script.plugin.mjs +6 -40
- package/esm2020/cms/services/integration.state.mjs +3 -6
- package/esm2020/cms/services/io-provider.service.mjs +7 -5
- package/esm2020/cms/types/common.types.mjs +1 -1
- package/esm2020/cms/types/index.mjs +3 -1
- package/esm2020/cms/types/layouts.types.mjs +70 -1
- package/esm2020/cms/types/pages.types.mjs +2 -0
- package/esm2020/cms/utils/elements-resolver.mjs +22 -8
- package/esm2020/cms/utils/script.utils.mjs +42 -0
- package/esm2020/cms/vendor-map.mjs +5 -3
- package/esm2020/core/core.module.mjs +16 -4
- package/esm2020/core/modules/configuration/services/configuration.service.mjs +6 -5
- package/esm2020/core/services/index.mjs +2 -1
- package/esm2020/core/services/runtime-settings.service.mjs +62 -0
- package/esm2020/core/types/ui-definition.types.mjs +1 -1
- package/esm2020/core/utils/line-item.utils.mjs +35 -16
- package/esm2020/core/utils/line-item.worker.mjs +5 -5
- package/esm2020/src/components/header/header.component.mjs +15 -3
- package/esm2020/src/components/header/metrics/metrics.component.mjs +9 -7
- package/esm2020/src/flow-routing.module.mjs +1 -1
- package/esm2020/src/guards/context.guard.mjs +11 -8
- package/fesm2015/veloceapps-sdk-cms.mjs +497 -150
- package/fesm2015/veloceapps-sdk-cms.mjs.map +1 -1
- package/fesm2015/veloceapps-sdk-core.mjs +117 -27
- package/fesm2015/veloceapps-sdk-core.mjs.map +1 -1
- package/fesm2015/veloceapps-sdk.mjs +31 -13
- package/fesm2015/veloceapps-sdk.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk-cms.mjs +578 -164
- package/fesm2020/veloceapps-sdk-cms.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk-core.mjs +117 -27
- package/fesm2020/veloceapps-sdk-core.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk.mjs +30 -13
- package/fesm2020/veloceapps-sdk.mjs.map +1 -1
- package/package.json +1 -1
- package/src/components/header/metrics/metrics.component.d.ts +4 -2
- package/src/guards/context.guard.d.ts +3 -2
@@ -1,18 +1,30 @@
|
|
1
1
|
import { NgModule } from '@angular/core';
|
2
2
|
import { FlowConfigurationModule } from './modules';
|
3
3
|
import { ConfigurationModule } from './modules/configuration/configuration.module';
|
4
|
-
import { ContextService, MetricsCalculationService, ProductImagesService, QuoteDraftService } from './services';
|
4
|
+
import { ContextService, MetricsCalculationService, ProductImagesService, QuoteDraftService, RuntimeSettingsService, } from './services';
|
5
5
|
import * as i0 from "@angular/core";
|
6
6
|
export class SdkCoreModule {
|
7
7
|
}
|
8
8
|
SdkCoreModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SdkCoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
9
9
|
SdkCoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: SdkCoreModule, imports: [ConfigurationModule, FlowConfigurationModule] });
|
10
|
-
SdkCoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SdkCoreModule, providers: [
|
10
|
+
SdkCoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SdkCoreModule, providers: [
|
11
|
+
ContextService,
|
12
|
+
QuoteDraftService,
|
13
|
+
ProductImagesService,
|
14
|
+
MetricsCalculationService,
|
15
|
+
RuntimeSettingsService,
|
16
|
+
], imports: [ConfigurationModule, FlowConfigurationModule] });
|
11
17
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SdkCoreModule, decorators: [{
|
12
18
|
type: NgModule,
|
13
19
|
args: [{
|
14
20
|
imports: [ConfigurationModule, FlowConfigurationModule],
|
15
|
-
providers: [
|
21
|
+
providers: [
|
22
|
+
ContextService,
|
23
|
+
QuoteDraftService,
|
24
|
+
ProductImagesService,
|
25
|
+
MetricsCalculationService,
|
26
|
+
RuntimeSettingsService,
|
27
|
+
],
|
16
28
|
}]
|
17
29
|
}] });
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jb3JlL2NvcmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ25GLE9BQU8sRUFDTCxjQUFjLEVBQ2QseUJBQXlCLEVBQ3pCLG9CQUFvQixFQUNwQixpQkFBaUIsRUFDakIsc0JBQXNCLEdBQ3ZCLE1BQU0sWUFBWSxDQUFDOztBQVlwQixNQUFNLE9BQU8sYUFBYTs7MEdBQWIsYUFBYTsyR0FBYixhQUFhLFlBVGQsbUJBQW1CLEVBQUUsdUJBQXVCOzJHQVMzQyxhQUFhLGFBUmI7UUFDVCxjQUFjO1FBQ2QsaUJBQWlCO1FBQ2pCLG9CQUFvQjtRQUNwQix5QkFBeUI7UUFDekIsc0JBQXNCO0tBQ3ZCLFlBUFMsbUJBQW1CLEVBQUUsdUJBQXVCOzJGQVMzQyxhQUFhO2tCQVZ6QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixFQUFFLHVCQUF1QixDQUFDO29CQUN2RCxTQUFTLEVBQUU7d0JBQ1QsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLG9CQUFvQjt3QkFDcEIseUJBQXlCO3dCQUN6QixzQkFBc0I7cUJBQ3ZCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZsb3dDb25maWd1cmF0aW9uTW9kdWxlIH0gZnJvbSAnLi9tb2R1bGVzJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25Nb2R1bGUgfSBmcm9tICcuL21vZHVsZXMvY29uZmlndXJhdGlvbi9jb25maWd1cmF0aW9uLm1vZHVsZSc7XG5pbXBvcnQge1xuICBDb250ZXh0U2VydmljZSxcbiAgTWV0cmljc0NhbGN1bGF0aW9uU2VydmljZSxcbiAgUHJvZHVjdEltYWdlc1NlcnZpY2UsXG4gIFF1b3RlRHJhZnRTZXJ2aWNlLFxuICBSdW50aW1lU2V0dGluZ3NTZXJ2aWNlLFxufSBmcm9tICcuL3NlcnZpY2VzJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbmZpZ3VyYXRpb25Nb2R1bGUsIEZsb3dDb25maWd1cmF0aW9uTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgQ29udGV4dFNlcnZpY2UsXG4gICAgUXVvdGVEcmFmdFNlcnZpY2UsXG4gICAgUHJvZHVjdEltYWdlc1NlcnZpY2UsXG4gICAgTWV0cmljc0NhbGN1bGF0aW9uU2VydmljZSxcbiAgICBSdW50aW1lU2V0dGluZ3NTZXJ2aWNlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTZGtDb3JlTW9kdWxlIHt9XG4iXX0=
|
@@ -41,11 +41,12 @@ export class ConfigurationService {
|
|
41
41
|
this.charges.next({});
|
42
42
|
this.pricePlans.next({});
|
43
43
|
}
|
44
|
-
patch$(lineItem) {
|
44
|
+
patch$(lineItem, options) {
|
45
45
|
if (!this.lineItem.value) {
|
46
46
|
return throwError(() => new Error(`Source LineItem not found`));
|
47
47
|
}
|
48
|
-
|
48
|
+
const skipCardinalityCalculation = options?.skipCardinalityCalculation || this.contextSnapshot.properties['#skipCardinalityCalculation'] === 'true';
|
49
|
+
this.configurableRamp = new LineItemWorker(this.lineItem.value).replace(lineItem, skipCardinalityCalculation).li;
|
49
50
|
return this.configure().pipe(catchError(error => {
|
50
51
|
console.error(error);
|
51
52
|
if (!this.runtimeService.uiDefinitionProperties.suppressToastMessages) {
|
@@ -60,8 +61,8 @@ export class ConfigurationService {
|
|
60
61
|
}
|
61
62
|
}));
|
62
63
|
}
|
63
|
-
patch(lineItem) {
|
64
|
-
this.patch$(lineItem).subscribe();
|
64
|
+
patch(lineItem, options) {
|
65
|
+
this.patch$(lineItem, options).subscribe();
|
65
66
|
}
|
66
67
|
setConfigurableRamp(lineItem) {
|
67
68
|
this.configurableRamp = lineItem;
|
@@ -180,4 +181,4 @@ ConfigurationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0",
|
|
180
181
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ConfigurationService, decorators: [{
|
181
182
|
type: Injectable
|
182
183
|
}], ctorParameters: function () { return [{ type: i1.QuoteDraftService }, { type: i2.ConfigurationRuntimeService }, { type: i3.ContextService }, { type: i4.ConfigurationApiService }, { type: i5.MessageService }, { type: i6.DialogService }]; } });
|
183
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY29yZS9tb2R1bGVzL2NvbmZpZ3VyYXRpb24vc2VydmljZXMvY29uZmlndXJhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHFCQUFxQixFQUFzQixTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RixPQUFPLEVBSUwsaUJBQWlCLEVBRWpCLDRCQUE0QixHQUk3QixNQUFNLGtCQUFrQixDQUFDO0FBRTFCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQWMsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDMUUsT0FBTyxFQUFrQixXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7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UyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzFCLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ1gsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDOUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQzthQUN4RDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLFFBQVE7UUFDZCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDdkMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNiLE9BQU87U0FDUjtRQUVELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsSUFBSSxDQUN6RCxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssUUFBUSxDQUFDLG1CQUFtQixJQUFJLENBQUMsQ0FBQyxFQUFFLEtBQUssUUFBUSxDQUFDLE9BQU8sQ0FDeEUsQ0FBQztJQUNKLENBQUM7O2lIQS9NVSxvQkFBb0I7cUhBQXBCLG9CQUFvQjsyRkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbkFwaVNlcnZpY2UgfSBmcm9tICdAdmVsb2NlYXBwcy9hcGknO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uQ29tcG9uZW50LCBDb25maXJtYXRpb25Db25maWcsIFRvYXN0VHlwZSB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgQ2hhcmdlLFxuICBDb21waWxlZFByaWNlUGxhbixcbiAgQ29uZmlndXJhdGlvbkNvbnRleHQsXG4gIENvbmZpZ3VyYXRpb25Nb2RlLFxuICBDb25maWd1cmF0aW9uUmVxdWVzdCxcbiAgQ29uZmlndXJhdGlvblRyYW5zbGF0b3JVdGlscyxcbiAgTGluZUl0ZW0sXG4gIFJ1bnRpbWVNb2RlbCxcbiAgVmxXaW5kb3csXG59IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBzaGFyZVJlcGxheSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmluYWxpemUsIGZpcnN0LCBtYXAsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgUXVvdGVEcmFmdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9xdW90ZS1kcmFmdC5zZXJ2aWNlJztcbmltcG9ydCB7IFJ1bnRpbWVDb250ZXh0LCBSdW50aW1lU3RlcCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IExpbmVJdGVtV29ya2VyIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvbGluZS1pdGVtLndvcmtlcic7XG5pbXBvcnQgeyBnZXREZWZhdWx0TGluZUl0ZW0gfSBmcm9tICcuLi9oZWxwZXJzJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25SdW50aW1lU2VydmljZSB9IGZyb20gJy4vY29uZmlndXJhdGlvbi1ydW50aW1lLnNlcnZpY2UnO1xuXG5kZWNsYXJlIGNvbnN0IHdpbmRvdzogVmxXaW5kb3c7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDb25maWd1cmF0aW9uU2VydmljZSB7XG4gIHByaXZhdGUgbW9kZSA9IENvbmZpZ3VyYXRpb25Nb2RlLlNFQVJDSDtcbiAgcHJpdmF0ZSBjb25maWd1cmFibGVSYW1wOiBMaW5lSXRlbSB8IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIGxpbmVJdGVtID0gbmV3IEJlaGF2aW9yU3ViamVjdDxMaW5lSXRlbSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSBjaGFyZ2VzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEaWN0aW9uYXJ5PENoYXJnZT4+KHt9KTtcbiAgcHJpdmF0ZSBwcmljZVBsYW5zID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEaWN0aW9uYXJ5PENvbXBpbGVkUHJpY2VQbGFuPj4oe30pO1xuXG4gIHB1YmxpYyBoYXNVbnNhdmVkQ2hhbmdlcyA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcXVvdGVEcmFmdFNlcnZpY2U6IFF1b3RlRHJhZnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcnVudGltZVNlcnZpY2U6IENvbmZpZ3VyYXRpb25SdW50aW1lU2VydmljZSxcbiAgICBwcml2YXRlIGNvbnRleHRTZXJ2aWNlOiBDb250ZXh0U2VydmljZSxcbiAgICBwcml2YXRlIGNvbmZpZ3VyYXRpb25BcGlTZXJ2aWNlOiBDb25maWd1cmF0aW9uQXBpU2VydmljZSxcbiAgICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICBwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXG4gICkge31cblxuICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5oYXNVbnNhdmVkQ2hhbmdlcyA9IGZhbHNlO1xuICAgIHRoaXMucnVudGltZVNlcnZpY2UucmVzZXQoKTtcblxuICAgIHRoaXMuY29uZmlndXJhYmxlUmFtcCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmxpbmVJdGVtLm5leHQodW5kZWZpbmVkKTtcbiAgICB0aGlzLmNoYXJnZXMubmV4dCh7fSk7XG4gICAgdGhpcy5wcmljZVBsYW5zLm5leHQoe30pO1xuICB9XG5cbiAgcHVibGljIHBhdGNoJChsaW5lSXRlbTogTGluZUl0ZW0pOiBPYnNlcnZhYmxlPExpbmVJdGVtPiB7XG4gICAgaWYgKCF0aGlzLmxpbmVJdGVtLnZhbHVlKSB7XG4gICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoYFNvdXJjZSBMaW5lSXRlbSBub3QgZm91bmRgKSk7XG4gICAgfVxuXG4gICAgdGhpcy5jb25maWd1cmFibGVSYW1wID0gbmV3IExpbmVJdGVtV29ya2VyKHRoaXMubGluZUl0ZW0udmFsdWUpLnJlcGxhY2UobGluZUl0ZW0pLmxpO1xuXG4gICAgcmV0dXJuIHRoaXMuY29uZmlndXJlKCkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcblxuICAgICAgICBpZiAoIXRoaXMucnVudGltZVNlcnZpY2UudWlEZWZpbml0aW9uUHJvcGVydGllcy5zdXBwcmVzc1RvYXN0TWVzc2FnZXMpIHtcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiBlcnJvciB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGJvdW5jZSBiYWNrIGlmIGNvbmZpZ3VyYXRpb24gY2FsbCBoYXMgZmFpbGVkXG4gICAgICAgIHRoaXMubGluZUl0ZW0ubmV4dCh0aGlzLmxpbmVJdGVtLnZhbHVlID8geyAuLi50aGlzLmxpbmVJdGVtLnZhbHVlIH0gOiB1bmRlZmluZWQpO1xuXG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKTtcbiAgICAgIH0pLFxuICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmhhc1Vuc2F2ZWRDaGFuZ2VzKSB7XG4gICAgICAgICAgdGhpcy5oYXNVbnNhdmVkQ2hhbmdlcyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgcGF0Y2gobGluZUl0ZW06IExpbmVJdGVtKTogdm9pZCB7XG4gICAgdGhpcy5wYXRjaCQobGluZUl0ZW0pLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIHNldENvbmZpZ3VyYWJsZVJhbXAobGluZUl0ZW06IExpbmVJdGVtKTogdm9pZCB7XG4gICAgdGhpcy5jb25maWd1cmFibGVSYW1wID0gbGluZUl0ZW07XG4gIH1cblxuICBwdWJsaWMgZ2V0KCk6IE9ic2VydmFibGU8TGluZUl0ZW0gfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdGhpcy5saW5lSXRlbS5hc09ic2VydmFibGUoKS5waXBlKHNoYXJlUmVwbGF5KCkpO1xuICB9XG5cbiAgcHVibGljIGdldFNuYXBzaG90KCk6IExpbmVJdGVtIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5saW5lSXRlbS52YWx1ZSA/IHsgLi4udGhpcy5saW5lSXRlbS52YWx1ZSB9IDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIGdldFJ1bnRpbWVNb2RlbCgpOiBSdW50aW1lTW9kZWwgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnJ1bnRpbWVTZXJ2aWNlLnJ1bnRpbWVNb2RlbDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRSdW50aW1lQ29udGV4dCgpOiBSdW50aW1lQ29udGV4dCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMucnVudGltZVNlcnZpY2UucnVudGltZUNvbnRleHQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvbnRleHRTbmFwc2hvdCgpOiBDb25maWd1cmF0aW9uQ29udGV4dCB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dFNlcnZpY2UucmVzb2x2ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBjb250ZXh0JCgpOiBPYnNlcnZhYmxlPENvbmZpZ3VyYXRpb25Db250ZXh0PiB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dFNlcnZpY2UucmVzb2x2ZSQoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2hhcmdlcyQoKTogT2JzZXJ2YWJsZTxEaWN0aW9uYXJ5PENoYXJnZT4+IHtcbiAgICByZXR1cm4gdGhpcy5jaGFyZ2VzLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBjaGFyZ2VzU25hcHNob3QoKTogRGljdGlvbmFyeTxDaGFyZ2U+IHtcbiAgICByZXR1cm4gdGhpcy5jaGFyZ2VzLnZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBwcmljZVBsYW5zJCgpOiBPYnNlcnZhYmxlPERpY3Rpb25hcnk8Q29tcGlsZWRQcmljZVBsYW4+PiB7XG4gICAgcmV0dXJuIHRoaXMucHJpY2VQbGFucy5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcHJpY2VQbGFuc1NuYXBzaG90KCk6IERpY3Rpb25hcnk8Q29tcGlsZWRQcmljZVBsYW4+IHtcbiAgICByZXR1cm4gdGhpcy5wcmljZVBsYW5zLnZhbHVlO1xuICB9XG5cbiAgcHVibGljIGNvbmZpZ3VyZSgpOiBPYnNlcnZhYmxlPExpbmVJdGVtPiB7XG4gICAgY29uc3QgcnVudGltZUNvbnRleHQgPSB0aGlzLmdldFJ1bnRpbWVDb250ZXh0KCk7XG4gICAgY29uc3QgcnVudGltZU1vZGVsID0gdGhpcy5nZXRSdW50aW1lTW9kZWwoKTtcbiAgICBpZiAoIXJ1bnRpbWVDb250ZXh0IHx8ICFydW50aW1lTW9kZWwpIHtcbiAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcignUnVudGltZSBjb250ZXh0L21vZGVsIG5vdCBpbml0aWFsaXplZCcpKTtcbiAgICB9XG5cbiAgICBjb25zdCB1aURlZmluaXRpb25Qcm9wZXJ0aWVzID0ge1xuICAgICAgLi4uKHJ1bnRpbWVDb250ZXh0LnVpRGVmaW5pdGlvbj8ucHJvcGVydGllcyA/PyB7fSksXG4gICAgICAuLi4odGhpcy5ydW50aW1lU2VydmljZS51aURlZmluaXRpb25Qcm9wZXJ0aWVzID8/IHt9KSxcbiAgICB9O1xuICAgIGNvbnN0IHF0eSA9IHRoaXMucnVudGltZVNlcnZpY2UuaW5pdGlhbGl6YXRpb25Qcm9wcz8uZGVmYXVsdFF0eTtcbiAgICBjb25zdCBsaW5lSXRlbSA9IHRoaXMuY29uZmlndXJhYmxlUmFtcCA/PyBnZXREZWZhdWx0TGluZUl0ZW0ocnVudGltZUNvbnRleHQsIHVpRGVmaW5pdGlvblByb3BlcnRpZXMsIHF0eSk7XG4gICAgY29uc3QgY29uZmlndXJhdGlvblJlcXVlc3QgPSB0aGlzLmNyZWF0ZVJlcXVlc3QobGluZUl0ZW0pO1xuXG4gICAgY29uc3QgbWFpblByaWNpbmdFbmFibGVkID0gcnVudGltZUNvbnRleHQucHJvcGVydGllcz8uUHJpY2luZ0VuYWJsZWQ7XG4gICAgY29uc3QgcHJpY2luZ0VuYWJsZWQgPSBtYWluUHJpY2luZ0VuYWJsZWQgPyBtYWluUHJpY2luZ0VuYWJsZWQgPT09ICd0cnVlJyA6IHVpRGVmaW5pdGlvblByb3BlcnRpZXMucHJpY2luZ0VuYWJsZWQ7XG5cbiAgICByZXR1cm4gdGhpcy5jb25maWd1cmF0aW9uQXBpU2VydmljZVxuICAgICAgLmNvbmZpZ3VyZUxpbmVJdGVtKHsgY29uZmlndXJhdGlvblJlcXVlc3QsIHJ1bnRpbWVNb2RlbCwgcHJpY2luZ0VuYWJsZWQgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHsgbGluZUl0ZW0sIGNvbnRleHQsIGNoYXJnZXMsIHByaWNlUGxhbnMsIGRlbGV0ZWRMaW5lSXRlbXMgfSkgPT4ge1xuICAgICAgICAgIHRoaXMuY29udGV4dFNlcnZpY2UudXBkYXRlKGNvbnRleHQgPz8ge30pO1xuICAgICAgICAgIHRoaXMuY2hhcmdlcy5uZXh0KGNoYXJnZXMgPz8ge30pO1xuICAgICAgICAgIHRoaXMucHJpY2VQbGFucy5uZXh0KHByaWNlUGxhbnMgPz8ge30pO1xuICAgICAgICAgIGlmIChkZWxldGVkTGluZUl0ZW1zPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd0luYWN0aXZlUHJvZHVjdHNDb25maXJtYXRpb24oKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGxpbmVJdGVtO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAobGluZUl0ZW0gPT4gbGluZUl0ZW0gJiYgdGhpcy5saW5lSXRlbS5uZXh0KGxpbmVJdGVtKSksXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT5cbiAgICAgICAgICB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcihlcnJvci5lcnJvcj8ubWVzc2FnZSB8fCBlcnJvci5tZXNzYWdlIHx8IEpTT04uc3RyaW5naWZ5KGVycm9yKSkpLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBjb25maWd1cmVFeHRlcm5hbCQocHJvZHVjdElkOiBzdHJpbmcsIHF0eT86IG51bWJlcik6IE9ic2VydmFibGU8TGluZUl0ZW0+IHtcbiAgICByZXR1cm4gdGhpcy5ydW50aW1lU2VydmljZS5pbml0KHsgcHJvZHVjdElkLCBkZWZhdWx0UXR5OiBxdHkgfSkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmNvbmZpZ3VyZSgpKSxcbiAgICAgIGZpcnN0KCksXG4gICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogVG9hc3RUeXBlLmVycm9yLCBzdW1tYXJ5OiBlcnJvciB9KTtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9KSxcbiAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMucmVzZXQoKSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUmVxdWVzdChsaW5lSXRlbTogTGluZUl0ZW0pOiBDb25maWd1cmF0aW9uUmVxdWVzdCB7XG4gICAgbGV0IHJlcXVlc3Q6IENvbmZpZ3VyYXRpb25SZXF1ZXN0ID0ge1xuICAgICAgbGluZUl0ZW0sXG4gICAgICBtb2RlOiB0aGlzLm1vZGUsXG4gICAgICBzdGVwOiAhdGhpcy5saW5lSXRlbS52YWx1ZSA/IFJ1bnRpbWVTdGVwLlNUQVJUIDogUnVudGltZVN0ZXAuVVBEQVRFLFxuICAgICAgYXR0cmlidXRlRG9tYWluTW9kZTogJ0FMTCcsXG4gICAgICBjb250ZXh0OiB0aGlzLmNvbnRleHRTZXJ2aWNlLnJlc29sdmUoKSxcbiAgICAgIGxpbmVJdGVtczogdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0Py5jdXJyZW50U3RhdGUgfHwgW10sXG4gICAgICBhc3NldDogdGhpcy5nZXRBc3NldCgpLFxuICAgIH07XG5cbiAgICByZXF1ZXN0ID0gQ29uZmlndXJhdGlvblRyYW5zbGF0b3JVdGlscy5saWdodGVuQ29uZmlndXJhdGlvblJlcXVlc3QocmVxdWVzdCk7XG5cbiAgICByZXR1cm4gcmVxdWVzdDtcbiAgfVxuXG4gIHByaXZhdGUgc2hvd0luYWN0aXZlUHJvZHVjdHNDb25maXJtYXRpb24oKTogdm9pZCB7XG4gICAgY29uc3QgY29uZmlybWF0aW9uQ29uZmlnOiBDb25maXJtYXRpb25Db25maWcgPSB7XG4gICAgICB0aXRsZTogJyAnLFxuICAgICAgZGVzY3JpcHRpb246ICdUaGlzIHF1b3RlIGNvbnRhaW5zIGluYWN0aXZlIHByb2R1Y3RzLiBEbyB5b3Ugd2FudCB0byByZW1vdmUgdGhlbT8nLFxuICAgICAgcHJpbWFyeUJ1dHRvbkxhYmVsOiAnUmVtb3ZlIHByb2R1Y3RzJyxcbiAgICAgIHNlY29uZGFyeUJ1dHRvbkxhYmVsOiAnQmFjayB0byBRdW90ZScsXG4gICAgfTtcblxuICAgIHRoaXMuZGlhbG9nU2VydmljZVxuICAgICAgLm9wZW4oQ29uZmlybWF0aW9uQ29tcG9uZW50LCB7XG4gICAgICAgIGRpc21pc3NhYmxlTWFzazogZmFsc2UsXG4gICAgICAgIGNsb3NlT25Fc2NhcGU6IGZhbHNlLFxuICAgICAgICBjbG9zYWJsZTogZmFsc2UsXG4gICAgICAgIHNob3dIZWFkZXI6IHRydWUsXG4gICAgICAgIGhlYWRlcjogYEluYWN0aXZlIFByb2R1Y3RzIGluIFF1b3RlYCxcbiAgICAgICAgd2lkdGg6ICc0NDBweCcsXG4gICAgICAgIGRhdGE6IHsgY29uZmlybWF0aW9uQ29uZmlnIH0sXG4gICAgICB9KVxuICAgICAgLm9uQ2xvc2Uuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgICAgY29uc3QgY29udGV4dCA9IHRoaXMuY29udGV4dFNlcnZpY2UucmVzb2x2ZSgpO1xuICAgICAgICAgIHdpbmRvd1snVkVMT19CQUNLX0ZOJ10uYXBwbHkobnVsbCwgW2NvbnRleHQuaGVhZGVySWRdKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldEFzc2V0KCk6IExpbmVJdGVtIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBsaW5lSXRlbSA9IHRoaXMuY29uZmlndXJhYmxlUmFtcDtcbiAgICBpZiAoIWxpbmVJdGVtKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdD8uaW5pdGlhbFN0YXRlLmZpbmQoXG4gICAgICBhID0+IGEuaWQgPT09IGxpbmVJdGVtLm9wZW5PcmRlckxpbmVJdGVtSWQgfHwgYS5pZCA9PT0gbGluZUl0ZW0uYXNzZXRJZCxcbiAgICApO1xuICB9XG59XG4iXX0=
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY29yZS9tb2R1bGVzL2NvbmZpZ3VyYXRpb24vc2VydmljZXMvY29uZmlndXJhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHFCQUFxQixFQUFzQixTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RixPQUFPLEVBSUwsaUJBQWlCLEVBRWpCLDRCQUE0QixHQUs3QixNQUFNLGtCQUFrQixDQUFDO0FBRTFCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQWMsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDMUUsT0FBTyxFQUFrQixXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7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O1lBQ3BCLFFBQVEsRUFBRSxLQUFLO1lBQ2YsVUFBVSxFQUFFLElBQUk7WUFDaEIsTUFBTSxFQUFFLDRCQUE0QjtZQUNwQyxLQUFLLEVBQUUsT0FBTztZQUNkLElBQUksRUFBRSxFQUFFLGtCQUFrQixFQUFFO1NBQzdCLENBQUM7YUFDRCxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzFCLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ1gsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDOUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQzthQUN4RDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLFFBQVE7UUFDZCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDdkMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNiLE9BQU87U0FDUjtRQUVELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsSUFBSSxDQUN6RCxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssUUFBUSxDQUFDLG1CQUFtQixJQUFJLENBQUMsQ0FBQyxFQUFFLEtBQUssUUFBUSxDQUFDLE9BQU8sQ0FDeEUsQ0FBQztJQUNKLENBQUM7O2lIQWxOVSxvQkFBb0I7cUhBQXBCLG9CQUFvQjsyRkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbkFwaVNlcnZpY2UgfSBmcm9tICdAdmVsb2NlYXBwcy9hcGknO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uQ29tcG9uZW50LCBDb25maXJtYXRpb25Db25maWcsIFRvYXN0VHlwZSB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgQ2hhcmdlLFxuICBDb21waWxlZFByaWNlUGxhbixcbiAgQ29uZmlndXJhdGlvbkNvbnRleHQsXG4gIENvbmZpZ3VyYXRpb25Nb2RlLFxuICBDb25maWd1cmF0aW9uUmVxdWVzdCxcbiAgQ29uZmlndXJhdGlvblRyYW5zbGF0b3JVdGlscyxcbiAgTGluZUl0ZW0sXG4gIFBhdGNoTGluZUl0ZW1PcHRpb25zLFxuICBSdW50aW1lTW9kZWwsXG4gIFZsV2luZG93LFxufSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcbmltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgc2hhcmVSZXBsYXksIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbmFsaXplLCBmaXJzdCwgbWFwLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7IFF1b3RlRHJhZnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcXVvdGUtZHJhZnQuc2VydmljZSc7XG5pbXBvcnQgeyBSdW50aW1lQ29udGV4dCwgUnVudGltZVN0ZXAgfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBMaW5lSXRlbVdvcmtlciB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2xpbmUtaXRlbS53b3JrZXInO1xuaW1wb3J0IHsgZ2V0RGVmYXVsdExpbmVJdGVtIH0gZnJvbSAnLi4vaGVscGVycyc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uUnVudGltZVNlcnZpY2UgfSBmcm9tICcuL2NvbmZpZ3VyYXRpb24tcnVudGltZS5zZXJ2aWNlJztcblxuZGVjbGFyZSBjb25zdCB3aW5kb3c6IFZsV2luZG93O1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ29uZmlndXJhdGlvblNlcnZpY2Uge1xuICBwcml2YXRlIG1vZGUgPSBDb25maWd1cmF0aW9uTW9kZS5TRUFSQ0g7XG4gIHByaXZhdGUgY29uZmlndXJhYmxlUmFtcDogTGluZUl0ZW0gfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBsaW5lSXRlbSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TGluZUl0ZW0gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHByaXZhdGUgY2hhcmdlcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGljdGlvbmFyeTxDaGFyZ2U+Pih7fSk7XG4gIHByaXZhdGUgcHJpY2VQbGFucyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGljdGlvbmFyeTxDb21waWxlZFByaWNlUGxhbj4+KHt9KTtcblxuICBwdWJsaWMgaGFzVW5zYXZlZENoYW5nZXMgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHF1b3RlRHJhZnRTZXJ2aWNlOiBRdW90ZURyYWZ0U2VydmljZSxcbiAgICBwcml2YXRlIHJ1bnRpbWVTZXJ2aWNlOiBDb25maWd1cmF0aW9uUnVudGltZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb250ZXh0U2VydmljZTogQ29udGV4dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb25maWd1cmF0aW9uQXBpU2VydmljZTogQ29uZmlndXJhdGlvbkFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxuICApIHt9XG5cbiAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuaGFzVW5zYXZlZENoYW5nZXMgPSBmYWxzZTtcbiAgICB0aGlzLnJ1bnRpbWVTZXJ2aWNlLnJlc2V0KCk7XG5cbiAgICB0aGlzLmNvbmZpZ3VyYWJsZVJhbXAgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5saW5lSXRlbS5uZXh0KHVuZGVmaW5lZCk7XG4gICAgdGhpcy5jaGFyZ2VzLm5leHQoe30pO1xuICAgIHRoaXMucHJpY2VQbGFucy5uZXh0KHt9KTtcbiAgfVxuXG4gIHB1YmxpYyBwYXRjaCQobGluZUl0ZW06IExpbmVJdGVtLCBvcHRpb25zPzogUGF0Y2hMaW5lSXRlbU9wdGlvbnMpOiBPYnNlcnZhYmxlPExpbmVJdGVtPiB7XG4gICAgaWYgKCF0aGlzLmxpbmVJdGVtLnZhbHVlKSB7XG4gICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoYFNvdXJjZSBMaW5lSXRlbSBub3QgZm91bmRgKSk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2tpcENhcmRpbmFsaXR5Q2FsY3VsYXRpb24gPVxuICAgICAgb3B0aW9ucz8uc2tpcENhcmRpbmFsaXR5Q2FsY3VsYXRpb24gfHwgdGhpcy5jb250ZXh0U25hcHNob3QucHJvcGVydGllc1snI3NraXBDYXJkaW5hbGl0eUNhbGN1bGF0aW9uJ10gPT09ICd0cnVlJztcblxuICAgIHRoaXMuY29uZmlndXJhYmxlUmFtcCA9IG5ldyBMaW5lSXRlbVdvcmtlcih0aGlzLmxpbmVJdGVtLnZhbHVlKS5yZXBsYWNlKGxpbmVJdGVtLCBza2lwQ2FyZGluYWxpdHlDYWxjdWxhdGlvbikubGk7XG5cbiAgICByZXR1cm4gdGhpcy5jb25maWd1cmUoKS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuXG4gICAgICAgIGlmICghdGhpcy5ydW50aW1lU2VydmljZS51aURlZmluaXRpb25Qcm9wZXJ0aWVzLnN1cHByZXNzVG9hc3RNZXNzYWdlcykge1xuICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdlcnJvcicsIHN1bW1hcnk6IGVycm9yIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gYm91bmNlIGJhY2sgaWYgY29uZmlndXJhdGlvbiBjYWxsIGhhcyBmYWlsZWRcbiAgICAgICAgdGhpcy5saW5lSXRlbS5uZXh0KHRoaXMubGluZUl0ZW0udmFsdWUgPyB7IC4uLnRoaXMubGluZUl0ZW0udmFsdWUgfSA6IHVuZGVmaW5lZCk7XG5cbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpO1xuICAgICAgfSksXG4gICAgICB0YXAoKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuaGFzVW5zYXZlZENoYW5nZXMpIHtcbiAgICAgICAgICB0aGlzLmhhc1Vuc2F2ZWRDaGFuZ2VzID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBwYXRjaChsaW5lSXRlbTogTGluZUl0ZW0sIG9wdGlvbnM/OiBQYXRjaExpbmVJdGVtT3B0aW9ucyk6IHZvaWQge1xuICAgIHRoaXMucGF0Y2gkKGxpbmVJdGVtLCBvcHRpb25zKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRDb25maWd1cmFibGVSYW1wKGxpbmVJdGVtOiBMaW5lSXRlbSk6IHZvaWQge1xuICAgIHRoaXMuY29uZmlndXJhYmxlUmFtcCA9IGxpbmVJdGVtO1xuICB9XG5cbiAgcHVibGljIGdldCgpOiBPYnNlcnZhYmxlPExpbmVJdGVtIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIHRoaXMubGluZUl0ZW0uYXNPYnNlcnZhYmxlKCkucGlwZShzaGFyZVJlcGxheSgpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTbmFwc2hvdCgpOiBMaW5lSXRlbSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMubGluZUl0ZW0udmFsdWUgPyB7IC4uLnRoaXMubGluZUl0ZW0udmFsdWUgfSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRSdW50aW1lTW9kZWwoKTogUnVudGltZU1vZGVsIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5ydW50aW1lU2VydmljZS5ydW50aW1lTW9kZWw7XG4gIH1cblxuICBwdWJsaWMgZ2V0UnVudGltZUNvbnRleHQoKTogUnVudGltZUNvbnRleHQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnJ1bnRpbWVTZXJ2aWNlLnJ1bnRpbWVDb250ZXh0O1xuICB9XG5cbiAgcHVibGljIGdldCBjb250ZXh0U25hcHNob3QoKTogQ29uZmlndXJhdGlvbkNvbnRleHQge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHRTZXJ2aWNlLnJlc29sdmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY29udGV4dCQoKTogT2JzZXJ2YWJsZTxDb25maWd1cmF0aW9uQ29udGV4dD4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHRTZXJ2aWNlLnJlc29sdmUkKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNoYXJnZXMkKCk6IE9ic2VydmFibGU8RGljdGlvbmFyeTxDaGFyZ2U+PiB7XG4gICAgcmV0dXJuIHRoaXMuY2hhcmdlcy5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2hhcmdlc1NuYXBzaG90KCk6IERpY3Rpb25hcnk8Q2hhcmdlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2hhcmdlcy52YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcHJpY2VQbGFucyQoKTogT2JzZXJ2YWJsZTxEaWN0aW9uYXJ5PENvbXBpbGVkUHJpY2VQbGFuPj4ge1xuICAgIHJldHVybiB0aGlzLnByaWNlUGxhbnMuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHByaWNlUGxhbnNTbmFwc2hvdCgpOiBEaWN0aW9uYXJ5PENvbXBpbGVkUHJpY2VQbGFuPiB7XG4gICAgcmV0dXJuIHRoaXMucHJpY2VQbGFucy52YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBjb25maWd1cmUoKTogT2JzZXJ2YWJsZTxMaW5lSXRlbT4ge1xuICAgIGNvbnN0IHJ1bnRpbWVDb250ZXh0ID0gdGhpcy5nZXRSdW50aW1lQ29udGV4dCgpO1xuICAgIGNvbnN0IHJ1bnRpbWVNb2RlbCA9IHRoaXMuZ2V0UnVudGltZU1vZGVsKCk7XG4gICAgaWYgKCFydW50aW1lQ29udGV4dCB8fCAhcnVudGltZU1vZGVsKSB7XG4gICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ1J1bnRpbWUgY29udGV4dC9tb2RlbCBub3QgaW5pdGlhbGl6ZWQnKSk7XG4gICAgfVxuXG4gICAgY29uc3QgdWlEZWZpbml0aW9uUHJvcGVydGllcyA9IHtcbiAgICAgIC4uLihydW50aW1lQ29udGV4dC51aURlZmluaXRpb24/LnByb3BlcnRpZXMgPz8ge30pLFxuICAgICAgLi4uKHRoaXMucnVudGltZVNlcnZpY2UudWlEZWZpbml0aW9uUHJvcGVydGllcyA/PyB7fSksXG4gICAgfTtcbiAgICBjb25zdCBxdHkgPSB0aGlzLnJ1bnRpbWVTZXJ2aWNlLmluaXRpYWxpemF0aW9uUHJvcHM/LmRlZmF1bHRRdHk7XG4gICAgY29uc3QgbGluZUl0ZW0gPSB0aGlzLmNvbmZpZ3VyYWJsZVJhbXAgPz8gZ2V0RGVmYXVsdExpbmVJdGVtKHJ1bnRpbWVDb250ZXh0LCB1aURlZmluaXRpb25Qcm9wZXJ0aWVzLCBxdHkpO1xuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb25SZXF1ZXN0ID0gdGhpcy5jcmVhdGVSZXF1ZXN0KGxpbmVJdGVtKTtcblxuICAgIGNvbnN0IG1haW5QcmljaW5nRW5hYmxlZCA9IHJ1bnRpbWVDb250ZXh0LnByb3BlcnRpZXM/LlByaWNpbmdFbmFibGVkO1xuICAgIGNvbnN0IHByaWNpbmdFbmFibGVkID0gbWFpblByaWNpbmdFbmFibGVkID8gbWFpblByaWNpbmdFbmFibGVkID09PSAndHJ1ZScgOiB1aURlZmluaXRpb25Qcm9wZXJ0aWVzLnByaWNpbmdFbmFibGVkO1xuXG4gICAgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvbkFwaVNlcnZpY2VcbiAgICAgIC5jb25maWd1cmVMaW5lSXRlbSh7IGNvbmZpZ3VyYXRpb25SZXF1ZXN0LCBydW50aW1lTW9kZWwsIHByaWNpbmdFbmFibGVkIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCh7IGxpbmVJdGVtLCBjb250ZXh0LCBjaGFyZ2VzLCBwcmljZVBsYW5zLCBkZWxldGVkTGluZUl0ZW1zIH0pID0+IHtcbiAgICAgICAgICB0aGlzLmNvbnRleHRTZXJ2aWNlLnVwZGF0ZShjb250ZXh0ID8/IHt9KTtcbiAgICAgICAgICB0aGlzLmNoYXJnZXMubmV4dChjaGFyZ2VzID8/IHt9KTtcbiAgICAgICAgICB0aGlzLnByaWNlUGxhbnMubmV4dChwcmljZVBsYW5zID8/IHt9KTtcbiAgICAgICAgICBpZiAoZGVsZXRlZExpbmVJdGVtcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLnNob3dJbmFjdGl2ZVByb2R1Y3RzQ29uZmlybWF0aW9uKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBsaW5lSXRlbTtcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKGxpbmVJdGVtID0+IGxpbmVJdGVtICYmIHRoaXMubGluZUl0ZW0ubmV4dChsaW5lSXRlbSkpLFxuICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+XG4gICAgICAgICAgdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoZXJyb3IuZXJyb3I/Lm1lc3NhZ2UgfHwgZXJyb3IubWVzc2FnZSB8fCBKU09OLnN0cmluZ2lmeShlcnJvcikpKSxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgY29uZmlndXJlRXh0ZXJuYWwkKHByb2R1Y3RJZDogc3RyaW5nLCBxdHk/OiBudW1iZXIpOiBPYnNlcnZhYmxlPExpbmVJdGVtPiB7XG4gICAgcmV0dXJuIHRoaXMucnVudGltZVNlcnZpY2UuaW5pdCh7IHByb2R1Y3RJZCwgZGVmYXVsdFF0eTogcXR5IH0pLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5jb25maWd1cmUoKSksXG4gICAgICBmaXJzdCgpLFxuICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6IFRvYXN0VHlwZS5lcnJvciwgc3VtbWFyeTogZXJyb3IgfSk7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfSksXG4gICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLnJlc2V0KCkpLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVJlcXVlc3QobGluZUl0ZW06IExpbmVJdGVtKTogQ29uZmlndXJhdGlvblJlcXVlc3Qge1xuICAgIGxldCByZXF1ZXN0OiBDb25maWd1cmF0aW9uUmVxdWVzdCA9IHtcbiAgICAgIGxpbmVJdGVtLFxuICAgICAgbW9kZTogdGhpcy5tb2RlLFxuICAgICAgc3RlcDogIXRoaXMubGluZUl0ZW0udmFsdWUgPyBSdW50aW1lU3RlcC5TVEFSVCA6IFJ1bnRpbWVTdGVwLlVQREFURSxcbiAgICAgIGF0dHJpYnV0ZURvbWFpbk1vZGU6ICdBTEwnLFxuICAgICAgY29udGV4dDogdGhpcy5jb250ZXh0U2VydmljZS5yZXNvbHZlKCksXG4gICAgICBsaW5lSXRlbXM6IHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdD8uY3VycmVudFN0YXRlIHx8IFtdLFxuICAgICAgYXNzZXQ6IHRoaXMuZ2V0QXNzZXQoKSxcbiAgICB9O1xuXG4gICAgcmVxdWVzdCA9IENvbmZpZ3VyYXRpb25UcmFuc2xhdG9yVXRpbHMubGlnaHRlbkNvbmZpZ3VyYXRpb25SZXF1ZXN0KHJlcXVlc3QpO1xuXG4gICAgcmV0dXJuIHJlcXVlc3Q7XG4gIH1cblxuICBwcml2YXRlIHNob3dJbmFjdGl2ZVByb2R1Y3RzQ29uZmlybWF0aW9uKCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbmZpcm1hdGlvbkNvbmZpZzogQ29uZmlybWF0aW9uQ29uZmlnID0ge1xuICAgICAgdGl0bGU6ICcgJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnVGhpcyBxdW90ZSBjb250YWlucyBpbmFjdGl2ZSBwcm9kdWN0cy4gRG8geW91IHdhbnQgdG8gcmVtb3ZlIHRoZW0/JyxcbiAgICAgIHByaW1hcnlCdXR0b25MYWJlbDogJ1JlbW92ZSBwcm9kdWN0cycsXG4gICAgICBzZWNvbmRhcnlCdXR0b25MYWJlbDogJ0JhY2sgdG8gUXVvdGUnLFxuICAgIH07XG5cbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2VcbiAgICAgIC5vcGVuKENvbmZpcm1hdGlvbkNvbXBvbmVudCwge1xuICAgICAgICBkaXNtaXNzYWJsZU1hc2s6IGZhbHNlLFxuICAgICAgICBjbG9zZU9uRXNjYXBlOiBmYWxzZSxcbiAgICAgICAgY2xvc2FibGU6IGZhbHNlLFxuICAgICAgICBzaG93SGVhZGVyOiB0cnVlLFxuICAgICAgICBoZWFkZXI6IGBJbmFjdGl2ZSBQcm9kdWN0cyBpbiBRdW90ZWAsXG4gICAgICAgIHdpZHRoOiAnNDQwcHgnLFxuICAgICAgICBkYXRhOiB7IGNvbmZpcm1hdGlvbkNvbmZpZyB9LFxuICAgICAgfSlcbiAgICAgIC5vbkNsb3NlLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLnJlc29sdmUoKTtcbiAgICAgICAgICB3aW5kb3dbJ1ZFTE9fQkFDS19GTiddLmFwcGx5KG51bGwsIFtjb250ZXh0LmhlYWRlcklkXSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBc3NldCgpOiBMaW5lSXRlbSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgbGluZUl0ZW0gPSB0aGlzLmNvbmZpZ3VyYWJsZVJhbXA7XG4gICAgaWYgKCFsaW5lSXRlbSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQ/LmluaXRpYWxTdGF0ZS5maW5kKFxuICAgICAgYSA9PiBhLmlkID09PSBsaW5lSXRlbS5vcGVuT3JkZXJMaW5lSXRlbUlkIHx8IGEuaWQgPT09IGxpbmVJdGVtLmFzc2V0SWQsXG4gICAgKTtcbiAgfVxufVxuIl19
|
@@ -2,4 +2,5 @@ export * from './context.service';
|
|
2
2
|
export * from './metric-calculation/metric-calculation.service';
|
3
3
|
export * from './product-images.service';
|
4
4
|
export * from './quote-draft.service';
|
5
|
-
|
5
|
+
export * from './runtime-settings.service';
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jb3JlL3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29udGV4dC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbWV0cmljLWNhbGN1bGF0aW9uL21ldHJpYy1jYWxjdWxhdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vcHJvZHVjdC1pbWFnZXMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3F1b3RlLWRyYWZ0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9ydW50aW1lLXNldHRpbmdzLnNlcnZpY2UnO1xuIl19
|
@@ -0,0 +1,62 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import { ConfigurationSettingsApiService } from '@veloceapps/api';
|
3
|
+
import { parseJsonSafely, } from '@veloceapps/core';
|
4
|
+
import { BehaviorSubject, map, tap } from 'rxjs';
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
import * as i1 from "@veloceapps/api";
|
7
|
+
export class RuntimeSettingsService {
|
8
|
+
constructor(configurationSettingsApiService) {
|
9
|
+
this.configurationSettingsApiService = configurationSettingsApiService;
|
10
|
+
this.configurationSettings$ = new BehaviorSubject({});
|
11
|
+
this.currencySettings$ = new BehaviorSubject({
|
12
|
+
iso: 'USD',
|
13
|
+
symbol: '$',
|
14
|
+
});
|
15
|
+
this.getCurrencySymbol = (locale, currency) => {
|
16
|
+
return (0)
|
17
|
+
.toLocaleString(locale, { style: 'currency', currency, minimumFractionDigits: 0, maximumFractionDigits: 0 })
|
18
|
+
.replace(/\d/g, '')
|
19
|
+
.trim();
|
20
|
+
};
|
21
|
+
}
|
22
|
+
create() {
|
23
|
+
return this.configurationSettingsApiService.fetchSettings().pipe(map(settings => this.parseConfigurationSettings(settings)), tap(configurationSettings => this.configurationSettings$.next(configurationSettings)), map(() => undefined));
|
24
|
+
}
|
25
|
+
initCurrency(iso) {
|
26
|
+
if (iso) {
|
27
|
+
const symbol = this.getCurrencySymbol('en-US', iso);
|
28
|
+
this.currencySettings$.next({ iso, symbol });
|
29
|
+
}
|
30
|
+
}
|
31
|
+
getConfigurationSettings() {
|
32
|
+
return this.configurationSettings$.value;
|
33
|
+
}
|
34
|
+
getCurrencySettings() {
|
35
|
+
return this.currencySettings$.value;
|
36
|
+
}
|
37
|
+
parseConfigurationSettings(settings) {
|
38
|
+
return settings.reduce((acc, setting) => {
|
39
|
+
switch (setting.key) {
|
40
|
+
case 'shopping-cart':
|
41
|
+
acc['shopping-cart'] = parseJsonSafely(setting.value, []);
|
42
|
+
break;
|
43
|
+
case 'navigation':
|
44
|
+
acc.navigation = parseJsonSafely(setting.value, {});
|
45
|
+
break;
|
46
|
+
case 'flows':
|
47
|
+
acc.flows = parseJsonSafely(setting.value, []);
|
48
|
+
break;
|
49
|
+
default:
|
50
|
+
acc[setting.key] = setting.value;
|
51
|
+
}
|
52
|
+
return acc;
|
53
|
+
}, {});
|
54
|
+
}
|
55
|
+
}
|
56
|
+
RuntimeSettingsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: RuntimeSettingsService, deps: [{ token: i1.ConfigurationSettingsApiService }], target: i0.ɵɵFactoryTarget.Injectable });
|
57
|
+
RuntimeSettingsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: RuntimeSettingsService, providedIn: 'root' });
|
58
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: RuntimeSettingsService, decorators: [{
|
59
|
+
type: Injectable,
|
60
|
+
args: [{ providedIn: 'root' }]
|
61
|
+
}], ctorParameters: function () { return [{ type: i1.ConfigurationSettingsApiService }]; } });
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1zZXR0aW5ncy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY29yZS9zZXJ2aWNlcy9ydW50aW1lLXNldHRpbmdzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBTUwsZUFBZSxHQUNoQixNQUFNLGtCQUFrQixDQUFDO0FBRTFCLE9BQU8sRUFBRSxlQUFlLEVBQWMsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBRzdELE1BQU0sT0FBTyxzQkFBc0I7SUFPakMsWUFBb0IsK0JBQWdFO1FBQWhFLG9DQUErQixHQUEvQiwrQkFBK0IsQ0FBaUM7UUFONUUsMkJBQXNCLEdBQUcsSUFBSSxlQUFlLENBQStCLEVBQUUsQ0FBQyxDQUFDO1FBQy9FLHNCQUFpQixHQUFHLElBQUksZUFBZSxDQUEwQjtZQUN2RSxHQUFHLEVBQUUsS0FBSztZQUNWLE1BQU0sRUFBRSxHQUFHO1NBQ1osQ0FBQyxDQUFDO1FBK0NLLHNCQUFpQixHQUFHLENBQUMsTUFBYyxFQUFFLFFBQWdCLEVBQUUsRUFBRTtZQUMvRCxPQUFPLENBQUMsQ0FBQyxDQUFDO2lCQUNQLGNBQWMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyxFQUFFLENBQUM7aUJBQzNHLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO2lCQUNsQixJQUFJLEVBQUUsQ0FBQztRQUNaLENBQUMsQ0FBQztJQWxEcUYsQ0FBQztJQUVqRixNQUFNO1FBQ1gsT0FBTyxJQUFJLENBQUMsK0JBQStCLENBQUMsYUFBYSxFQUFFLENBQUMsSUFBSSxDQUM5RCxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsUUFBUSxDQUFDLENBQUMsRUFDMUQsR0FBRyxDQUFDLHFCQUFxQixDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsRUFDckYsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUNyQixDQUFDO0lBQ0osQ0FBQztJQUVNLFlBQVksQ0FBQyxHQUFZO1FBQzlCLElBQUksR0FBRyxFQUFFO1lBQ1AsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNwRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7U0FDOUM7SUFDSCxDQUFDO0lBRU0sd0JBQXdCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQztJQUMzQyxDQUFDO0lBRU0sbUJBQW1CO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQztJQUN0QyxDQUFDO0lBRU8sMEJBQTBCLENBQUMsUUFBaUM7UUFDbEUsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBaUMsRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUNwRSxRQUFRLE9BQU8sQ0FBQyxHQUFHLEVBQUU7Z0JBQ25CLEtBQUssZUFBZTtvQkFDbEIsR0FBRyxDQUFDLGVBQWUsQ0FBQyxHQUFHLGVBQWUsQ0FBd0IsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDakYsTUFBTTtnQkFDUixLQUFLLFlBQVk7b0JBQ2YsR0FBRyxDQUFDLFVBQVUsR0FBRyxlQUFlLENBQXNCLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQ3pFLE1BQU07Z0JBQ1IsS0FBSyxPQUFPO29CQUNWLEdBQUcsQ0FBQyxLQUFLLEdBQUcsZUFBZSxDQUFTLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQ3ZELE1BQU07Z0JBQ1I7b0JBQ0UsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO2FBQ3BDO1lBRUQsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDVCxDQUFDOzttSEFsRFUsc0JBQXNCO3VIQUF0QixzQkFBc0IsY0FEVCxNQUFNOzJGQUNuQixzQkFBc0I7a0JBRGxDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvblNldHRpbmdzQXBpU2VydmljZSB9IGZyb20gJ0B2ZWxvY2VhcHBzL2FwaSc7XG5pbXBvcnQge1xuICBDb25maWd1cmF0aW9uU2V0dGluZ3MsXG4gIEZsb3csXG4gIFJ1bnRpbWVDb25maWd1cmF0aW9uU2V0dGluZ3MsXG4gIFJ1bnRpbWVDdXJyZW5jeVNldHRpbmdzLFxuICBTaG9wcGluZ0NhcnRTZXR0aW5nLFxuICBwYXJzZUpzb25TYWZlbHksXG59IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG1hcCwgdGFwIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgUnVudGltZVNldHRpbmdzU2VydmljZSB7XG4gIHByaXZhdGUgY29uZmlndXJhdGlvblNldHRpbmdzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UnVudGltZUNvbmZpZ3VyYXRpb25TZXR0aW5ncz4oe30pO1xuICBwcml2YXRlIGN1cnJlbmN5U2V0dGluZ3MkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSdW50aW1lQ3VycmVuY3lTZXR0aW5ncz4oe1xuICAgIGlzbzogJ1VTRCcsXG4gICAgc3ltYm9sOiAnJCcsXG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29uZmlndXJhdGlvblNldHRpbmdzQXBpU2VydmljZTogQ29uZmlndXJhdGlvblNldHRpbmdzQXBpU2VydmljZSkge31cblxuICBwdWJsaWMgY3JlYXRlKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZ3VyYXRpb25TZXR0aW5nc0FwaVNlcnZpY2UuZmV0Y2hTZXR0aW5ncygpLnBpcGUoXG4gICAgICBtYXAoc2V0dGluZ3MgPT4gdGhpcy5wYXJzZUNvbmZpZ3VyYXRpb25TZXR0aW5ncyhzZXR0aW5ncykpLFxuICAgICAgdGFwKGNvbmZpZ3VyYXRpb25TZXR0aW5ncyA9PiB0aGlzLmNvbmZpZ3VyYXRpb25TZXR0aW5ncyQubmV4dChjb25maWd1cmF0aW9uU2V0dGluZ3MpKSxcbiAgICAgIG1hcCgoKSA9PiB1bmRlZmluZWQpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgaW5pdEN1cnJlbmN5KGlzbz86IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChpc28pIHtcbiAgICAgIGNvbnN0IHN5bWJvbCA9IHRoaXMuZ2V0Q3VycmVuY3lTeW1ib2woJ2VuLVVTJywgaXNvKTtcbiAgICAgIHRoaXMuY3VycmVuY3lTZXR0aW5ncyQubmV4dCh7IGlzbywgc3ltYm9sIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRDb25maWd1cmF0aW9uU2V0dGluZ3MoKTogUnVudGltZUNvbmZpZ3VyYXRpb25TZXR0aW5ncyB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvblNldHRpbmdzJC52YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDdXJyZW5jeVNldHRpbmdzKCk6IFJ1bnRpbWVDdXJyZW5jeVNldHRpbmdzIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW5jeVNldHRpbmdzJC52YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VDb25maWd1cmF0aW9uU2V0dGluZ3Moc2V0dGluZ3M6IENvbmZpZ3VyYXRpb25TZXR0aW5nc1tdKTogUnVudGltZUNvbmZpZ3VyYXRpb25TZXR0aW5ncyB7XG4gICAgcmV0dXJuIHNldHRpbmdzLnJlZHVjZSgoYWNjOiBSdW50aW1lQ29uZmlndXJhdGlvblNldHRpbmdzLCBzZXR0aW5nKSA9PiB7XG4gICAgICBzd2l0Y2ggKHNldHRpbmcua2V5KSB7XG4gICAgICAgIGNhc2UgJ3Nob3BwaW5nLWNhcnQnOlxuICAgICAgICAgIGFjY1snc2hvcHBpbmctY2FydCddID0gcGFyc2VKc29uU2FmZWx5PFNob3BwaW5nQ2FydFNldHRpbmdbXT4oc2V0dGluZy52YWx1ZSwgW10pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICduYXZpZ2F0aW9uJzpcbiAgICAgICAgICBhY2MubmF2aWdhdGlvbiA9IHBhcnNlSnNvblNhZmVseTxEaWN0aW9uYXJ5PGJvb2xlYW4+PihzZXR0aW5nLnZhbHVlLCB7fSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2Zsb3dzJzpcbiAgICAgICAgICBhY2MuZmxvd3MgPSBwYXJzZUpzb25TYWZlbHk8Rmxvd1tdPihzZXR0aW5nLnZhbHVlLCBbXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYWNjW3NldHRpbmcua2V5XSA9IHNldHRpbmcudmFsdWU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDdXJyZW5jeVN5bWJvbCA9IChsb2NhbGU6IHN0cmluZywgY3VycmVuY3k6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiAoMClcbiAgICAgIC50b0xvY2FsZVN0cmluZyhsb2NhbGUsIHsgc3R5bGU6ICdjdXJyZW5jeScsIGN1cnJlbmN5LCBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IDAsIG1heGltdW1GcmFjdGlvbkRpZ2l0czogMCB9KVxuICAgICAgLnJlcGxhY2UoL1xcZC9nLCAnJylcbiAgICAgIC50cmltKCk7XG4gIH07XG59XG4iXX0=
|
@@ -1,2 +1,2 @@
|
|
1
1
|
export const UI_DEFINITION_VERSION = 3;
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktZGVmaW5pdGlvbi50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2NvcmUvdHlwZXMvdWktZGVmaW5pdGlvbi50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBVSURlZmluaXRpb25UeXBlID0gJ0RFRkFVTFQnIHwgJ0NPTkZJR1VSQVRJT04nO1xuXG5leHBvcnQgY29uc3QgVUlfREVGSU5JVElPTl9WRVJTSU9OID0gMztcblxuZXhwb3J0IHR5cGUgVUlFeHRlcm5hbHNUeXBlID0gUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbj47XG5cbmV4cG9ydCBpbnRlcmZhY2UgVUlEZWZpbml0aW9uUHJvcHMge1xuICAvLyBHRU5FUkFMXG4gIHN1cHByZXNzVG9hc3RNZXNzYWdlcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZW4gJ3RydWUnLCB0aGUgU3RydWN0dXJlIG1vZHVsZSBpbiBVSSBCdWlsZGVyIGlzIGhpZGRlblxuICAgKi9cbiAgc2ltcGxpZmllZEVkaXRvck1vZGU/OiBib29sZWFuO1xuXG4gIC8vIENPTkZJR1VSQVRJT05cbiAgcm9vdFR5cGU/OiBzdHJpbmc7XG4gIHByaWNpbmdFbmFibGVkPzogYm9vbGVhbjtcbiAgcHJpY2VMaXN0Pzogc3RyaW5nO1xuICBwcm9kdWN0SWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVUlEZWZpbml0aW9uTWV0YWRhdGEge1xuICBuYW1lOiBzdHJpbmc7XG4gIHR5cGU6IFVJRGVmaW5pdGlvblR5cGU7XG4gIHByaW1hcnk6IGJvb2xlYW47XG4gIHZlcnNpb246IG51bWJlcjtcbiAgY3JlYXRlZFRpbWVzdGFtcDogbnVtYmVyO1xuXG4gIHByb3BlcnRpZXM/OiBVSURlZmluaXRpb25Qcm9wcztcbiAgZXh0ZXJuYWxzPzogVUlFeHRlcm5hbHNUeXBlO1xuICBjdXN0b21pemF0aW9uPzogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVJRGVmaW5pdGlvbiBleHRlbmRzIFVJRGVmaW5pdGlvbk1ldGFkYXRhIHtcbiAgLyoqXG4gICAqIGBjaGlsZHJlbmAgaXMgZm9yIHNpbXBsZSBwcmV2aWV3cyBvbmx5LlxuICAgKiBGb3IgYXBwbGljYXRpb25zIHVzZSBgcGFnZXNgIHByb3BlcnR5IGluc3RlYWRcbiAgICovXG4gIGNoaWxkcmVuPzogVUlFbGVtZW50W107XG5cbiAgLyoqXG4gICAqIFRoZSBwYWdlIGlzIGFuIEVsZW1lbnQgd2l0aCBgdHlwZTogJ1BBR0UnYFxuICAgKi9cbiAgcGFnZXM/OiBVSUVsZW1lbnRbXTtcblxuICAvKipcbiAgICogU2hhcmVkIGNvbXBvbmVudHNcbiAgICogVGhlc2UgYXJlIG5vdCByZW5kZXJlZCBvbiB0aGUgc2NyZWVuLCBhbmQgb25seSB1c2VkIGJ5IFJFRkVSRU5DRSB0eXBlIGVsZW1lbnRzXG4gICAqL1xuICBjb21wb25lbnRzPzogVUlFbGVtZW50W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVUlFbGVtZW50IHtcbiAgY2hpbGRyZW46IFVJRWxlbWVudFtdO1xuICB0ZW1wbGF0ZT86IHN0cmluZztcbiAgc2NyaXB0Pzogc3RyaW5nO1xuICBzdHlsZXM/OiBzdHJpbmc7XG59XG4iXX0=
|
@@ -42,18 +42,25 @@ export const removeLineItem = (lineItem, idToRemove) => {
|
|
42
42
|
.filter(r => !!r),
|
43
43
|
};
|
44
44
|
};
|
45
|
-
export const replaceLineItem = (lineItem, replaceTo) => {
|
45
|
+
export const replaceLineItem = (lineItem, replaceTo, skipCardinalityCalculation = false) => {
|
46
46
|
if (lineItem.id === replaceTo.id) {
|
47
|
-
|
47
|
+
if (!skipCardinalityCalculation) {
|
48
|
+
return { ...recalculateCardinalityVariables(lineItem, replaceTo) };
|
49
|
+
}
|
50
|
+
else {
|
51
|
+
return { ...replaceTo };
|
52
|
+
}
|
48
53
|
}
|
49
54
|
return {
|
50
55
|
...lineItem,
|
51
|
-
lineItems: lineItem.lineItems.map(li => replaceLineItem(li, replaceTo)),
|
56
|
+
lineItems: lineItem.lineItems.map(li => replaceLineItem(li, replaceTo, skipCardinalityCalculation)),
|
52
57
|
};
|
53
58
|
};
|
54
59
|
export const calculateCardinalityVariables = (lineItems) => {
|
55
60
|
const cardVars = new Map();
|
56
|
-
lineItems
|
61
|
+
lineItems
|
62
|
+
.filter(({ port, type }) => !!port && !!type)
|
63
|
+
.forEach(li => {
|
57
64
|
const cardinalityVariableName = `#CV-${li.type}@${li.port}`;
|
58
65
|
cardVars.set(cardinalityVariableName, (cardVars.get(cardinalityVariableName) ?? 0) + li.qty);
|
59
66
|
});
|
@@ -93,13 +100,13 @@ export const upsertAttributes = (originalAttributes, attributesToUpsert) => {
|
|
93
100
|
];
|
94
101
|
}, originalAttributes);
|
95
102
|
};
|
96
|
-
export const patchAttributes = (rootLineItem, id, attrs) => {
|
103
|
+
export const patchAttributes = (rootLineItem, id, attrs, skipCardinalityCalculation = false) => {
|
97
104
|
const lineItem = findLineItem(id, [rootLineItem]);
|
98
105
|
if (!lineItem) {
|
99
106
|
return rootLineItem;
|
100
107
|
}
|
101
108
|
const attributes = upsertAttributes(lineItem.attributes, attrs);
|
102
|
-
return replaceLineItem(rootLineItem, { ...lineItem, attributes });
|
109
|
+
return replaceLineItem(rootLineItem, { ...lineItem, attributes }, skipCardinalityCalculation);
|
103
110
|
};
|
104
111
|
export const getAttributeValue = (attributes, name) => attributes.find(attr => attr.name === name)?.value;
|
105
112
|
export const generateLineItem = (port, type, parentId, attributes = [], lineItems = []) => {
|
@@ -127,19 +134,31 @@ export const getRecommendedPrices = (portDomain, type) => {
|
|
127
134
|
};
|
128
135
|
export const generateModifiedAssetsMap = (lineItems) => {
|
129
136
|
return lineItems.reduce((acc, li) => {
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
}
|
137
|
+
const isModified = isLineItemModified(li);
|
138
|
+
if (!isModified) {
|
139
|
+
return acc;
|
140
|
+
}
|
141
|
+
const target = getOriginParent(lineItems, li);
|
142
|
+
const id = target?.assetId ?? target?.openOrderLineItemId;
|
143
|
+
if (id) {
|
144
|
+
acc[id] = true;
|
139
145
|
}
|
140
146
|
return acc;
|
141
147
|
}, {});
|
142
148
|
};
|
149
|
+
export const getOriginParent = (lineItems, currentLineItem) => {
|
150
|
+
let target = currentLineItem;
|
151
|
+
while (target && target.rampInstanceId) {
|
152
|
+
target = lineItems.find(sub => sub.id === currentLineItem.rampInstanceId);
|
153
|
+
}
|
154
|
+
return target;
|
155
|
+
};
|
156
|
+
export const isLineItemModified = (lineItem) => {
|
157
|
+
if (lineItem.actionCode === 'EXIST' && lineItem.status === 'PENDING') {
|
158
|
+
return false;
|
159
|
+
}
|
160
|
+
return lineItem.actionCode !== 'EXIST';
|
161
|
+
};
|
143
162
|
export const multiplyLineItems = (lineItem, qty, split) => {
|
144
163
|
if (split) {
|
145
164
|
const unifyIds = (lineItem) => ({
|
@@ -158,4 +177,4 @@ export const multiplyLineItems = (lineItem, qty, split) => {
|
|
158
177
|
];
|
159
178
|
}
|
160
179
|
};
|
161
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1pdGVtLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY29yZS91dGlscy9saW5lLWl0ZW0udXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE4QyxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRixPQUFPLEVBQWMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFMUQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsRUFBVSxFQUFFLFNBQXFCLEVBQXdCLEVBQUU7SUFDdEYsT0FBTywwQkFBMEIsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFZLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7QUFDL0UsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsQ0FDeEMsU0FBcUIsRUFDckIsVUFBcUMsRUFDZixFQUFFO0lBQ3hCLElBQUksWUFBWSxHQUFHLFNBQVMsQ0FBQztJQUU3QixPQUFPLFlBQVksQ0FBQyxNQUFNLEVBQUU7UUFDMUIsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUU1QyxJQUFJLEtBQUssRUFBRTtZQUNULE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztLQUN0RTtJQUVELE9BQU87QUFDVCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxRQUFrQixFQUFFLFFBQWdCLEVBQUUsUUFBa0IsRUFBWSxFQUFFO0lBQ25HLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxFQUFFLEtBQUssUUFB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QUM7WUFDbEQsR0FBRyxRQUFRO1lBQ1gsRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDZixTQUFTLEVBQUUsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1NBQzVDLENBQUMsQ0FBQztRQUVILE9BQU8sR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0tBQ3REO1NBQU07UUFDTCxPQUFPO1lBQ0w7Z0JBQ0UsR0FBRyxRQUFRO2dCQUNYLEdBQUcsRUFBRSxHQUFHO2FBQ1Q7U0FDRixDQUFDO0tBQ0g7QUFDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdHRyaWJ1dGUsIENmZ1N0YXR1cywgTGluZUl0ZW0sIFBvcnREb21haW4sIFVVSUQgfSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcbmltcG9ydCB7IERpY3Rpb25hcnksIGZsYXR0ZW4sIG1hcCwgc29ydEJ5IH0gZnJvbSAnbG9kYXNoJztcblxuZXhwb3J0IGNvbnN0IGZpbmRMaW5lSXRlbSA9IChpZDogc3RyaW5nLCBsaW5lSXRlbXM6IExpbmVJdGVtW10pOiBMaW5lSXRlbSB8IHVuZGVmaW5lZCA9PiB7XG4gIHJldHVybiBmaW5kTGluZUl0ZW1XaXRoQ29tcGFyYXRvcihsaW5lSXRlbXMsIChsaTogTGluZUl0ZW0pID0+IGxpLmlkID09PSBpZCk7XG59O1xuXG5leHBvcnQgY29uc3QgZmluZExpbmVJdGVtV2l0aENvbXBhcmF0b3IgPSAoXG4gIGxpbmVJdGVtczogTGluZUl0ZW1bXSxcbiAgY29tcGFyYXRvcjogKGxpOiBMaW5lSXRlbSkgPT4gYm9vbGVhbixcbik6IExpbmVJdGVtIHwgdW5kZWZpbmVkID0+IHtcbiAgbGV0IGN1cnJlbnRMZXZlbCA9IGxpbmVJdGVtcztcblxuICB3aGlsZSAoY3VycmVudExldmVsLmxlbmd0aCkge1xuICAgIGNvbnN0IGZvdW5kID0gY3VycmVudExldmVsLmZpbmQoY29tcGFyYXRvcik7XG5cbiAgICBpZiAoZm91bmQpIHtcbiAgICAgIHJldHVybiBmb3VuZDtcbiAgICB9XG5cbiAgICBjdXJyZW50TGV2ZWwgPSBmbGF0dGVuKGN1cnJlbnRMZXZlbC5tYXAocGFyZW50ID0+IHBhcmVudC5saW5lSXRlbXMpKTtcbiAgfVxuXG4gIHJldHVybjtcbn07XG5cbmV4cG9ydCBjb25zdCBpbnNlcnRMaW5lSXRlbSA9IChsaW5lSXRlbTogTGluZUl0ZW0sIHBhcmVudElkOiBzdHJpbmcsIHRvSW5zZXJ0OiBMaW5lSXRlbSk6IExpbmVJdGVtID0+IHtcbiAgY29uc3QgaW5zZXJ0RGF0YSA9IGxpbmVJdGVtLmlkID09PSBwYXJlbnRJZCA/IFt0b0luc2VydF0gOiBbXTtcbiAgcmV0dXJuIHtcbiAgICAuLi5saW5lSXRlbSxcbiAgICBsaW5lSXRlbXM6IFtcbiAgICAgIC4uLmluc2VydERhdGEsXG4gICAgICAuLi5saW5lSXRlbS5saW5lSXRlbXMubWFwKGxpID0+IHtcbiAgICAgICAgcmV0dXJuIGluc2VydExpbmVJdGVtKGxpLCBwYXJlbnRJZCwgdG9JbnNlcnQpO1xuICAgICAgfSksXG4gICAgXSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCByZW1vdmVMaW5lSXRlbSA9IChsaW5lSXRlbTogTGluZUl0ZW0sIGlkVG9SZW1vdmU6IHN0cmluZyk6IExpbmVJdGVtID0+IHtcbiAgcmV0dXJuIHtcbiAgICAuLi5saW5lSXRlbSxcbiAgICBsaW5lSXRlbXM6IGxpbmVJdGVtLmxpbmVJdGVtc1xuICAgICAgLm1hcChsaSA9PiB7XG4gICAgICAgIGlmIChsaS5pZCA9PT0gaWRUb1JlbW92ZSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIGlmIChsaS5saW5lSXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgcmV0dXJuIHJlbW92ZUxpbmVJdGVtKGxpLCBpZFRvUmVtb3ZlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbGk7XG4gICAgICB9KVxuICAgICAgLmZpbHRlcihyID0+ICEhcikgYXMgTGluZUl0ZW1bXSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCByZXBsYWNlTGluZUl0ZW0gPSAobGluZUl0ZW06IExpbmVJdGVtLCByZXBsYWNlVG86IExpbmVJdGVtKTogTGluZUl0ZW0gPT4ge1xuICBpZiAobGluZUl0ZW0uaWQgPT09IHJlcGxhY2VUby5pZCkge1xuICAgIHJldHVybiB7IC4uLnJlY2FsY3VsYXRlQ2FyZGluYWxpdHlWYXJpYWJsZXMobGluZUl0ZW0sIHJlcGxhY2VUbykgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4ubGluZUl0ZW0sXG4gICAgbGluZUl0ZW1zOiBsaW5lSXRlbS5saW5lSXRlbXMubWFwKGxpID0+IHJlcGxhY2VMaW5lSXRlbShsaSwgcmVwbGFjZVRvKSksXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgY2FsY3VsYXRlQ2FyZGluYWxpdHlWYXJpYWJsZXMgPSAobGluZUl0ZW1zOiBMaW5lSXRlbVtdKTogTWFwPHN0cmluZywgbnVtYmVyPiA9PiB7XG4gIGNvbnN0IGNhcmRWYXJzID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTtcbiAgbGluZUl0ZW1zLmZvckVhY2gobGkgPT4ge1xuICAgIGNvbnN0IGNhcmRpbmFsaXR5VmFyaWFibGVOYW1lID0gYCNDVi0ke2xpLnR5cGV9QCR7bGkucG9ydH1gO1xuICAgIGNhcmRWYXJzLnNldChjYXJkaW5hbGl0eVZhcmlhYmxlTmFtZSwgKGNhcmRWYXJzLmdldChjYXJkaW5hbGl0eVZhcmlhYmxlTmFtZSkgPz8gMCkgKyBsaS5xdHkpO1xuICB9KTtcbiAgcmV0dXJuIGNhcmRWYXJzO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlY2FsY3VsYXRlQ2FyZGluYWxpdHlWYXJpYWJsZXMgPSAob3JpZ2luYWw6IExpbmVJdGVtLCB1cGRhdGVkOiBMaW5lSXRlbSk6IExpbmVJdGVtID0+IHtcbiAgY29uc3QgY2FyZGluYWxpdHlWYXJpYWJsZXMgPSBjYWxjdWxhdGVDYXJkaW5hbGl0eVZhcmlhYmxlcyh1cGRhdGVkLmxpbmVJdGVtcyk7XG4gIGNvbnN0IG9yaWdpbmFsQ2FyZGluYWxpdHlWYXJpYWJsZXMgPSBjYWxjdWxhdGVDYXJkaW5hbGl0eVZhcmlhYmxlcyhvcmlnaW5hbC5saW5lSXRlbXMpO1xuXG4gIG9yaWdpbmFsQ2FyZGluYWxpdHlWYXJpYWJsZXMuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgIGlmIChjYXJkaW5hbGl0eVZhcmlhYmxlcy5nZXQoa2V5KSA9PT0gdmFsdWUpIHtcbiAgICAgIC8vIG5vIG5lZWQgdG8gdXBkYXRlIGNhcmRpbmFsaXR5IGlmIG5vIGNoYW5nZXNcbiAgICAgIGNhcmRpbmFsaXR5VmFyaWFibGVzLmRlbGV0ZShrZXkpO1xuICAgIH0gZWxzZSBpZiAoIWNhcmRpbmFsaXR5VmFyaWFibGVzLmhhcyhrZXkpKSB7XG4gICAgICAvLyByZW1vdmUgbGFzdCBpdGVtIGZyb20gcG9ydFxuICAgICAgY2FyZGluYWxpdHlWYXJpYWJsZXMuc2V0KGtleSwgMCk7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4ge1xuICAgIC4uLnVwZGF0ZWQsXG4gICAgYXR0cmlidXRlczogdXBzZXJ0QXR0cmlidXRlcyhcbiAgICAgIHVwZGF0ZWQuYXR0cmlidXRlcyxcbiAgICAgIFsuLi5jYXJkaW5hbGl0eVZhcmlhYmxlc10ubWFwKChbbmFtZSwgdmFsdWVdKSA9PiAoeyBuYW1lLCB2YWx1ZSB9KSksXG4gICAgKSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBtYXBBdHRyaWJ1dGVzID0gKGF0dHJpYnV0ZXM6IEF0dHJpYnV0ZVtdKTogRGljdGlvbmFyeTxhbnk+ID0+IHtcbiAgcmV0dXJuIGF0dHJpYnV0ZXMucmVkdWNlKChhY2MsIHsgbmFtZSwgdmFsdWUgfSkgPT4gKHsgLi4uYWNjLCBbbmFtZV06IHZhbHVlIH0pLCB7fSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0QXR0cmlidXRlcyA9IChhdHRyaWJ1dGVzOiBBdHRyaWJ1dGVbXSwgbmFtZXM6IHN0cmluZ1tdID0gW10pOiBBdHRyaWJ1dGVbXSA9PiB7XG4gIGNvbnN0IGZpbHRlcmVkID0gYXR0cmlidXRlcy5maWx0ZXIoKHsgbmFtZSB9KSA9PiBuYW1lcy5pbmNsdWRlcyhuYW1lKSk7XG4gIHJldHVybiBzb3J0QnkoZmlsdGVyZWQsIFsoeyBuYW1lIH0pOiBudW1iZXIgPT4gbmFtZXMuaW5kZXhPZihuYW1lKV0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHVwc2VydEF0dHJpYnV0ZXMgPSAoXG4gIG9yaWdpbmFsQXR0cmlidXRlczogQXR0cmlidXRlW10sXG4gIGF0dHJpYnV0ZXNUb1Vwc2VydDogeyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBhbnkgfVtdLFxuKTogQXR0cmlidXRlW10gPT4ge1xuICByZXR1cm4gYXR0cmlidXRlc1RvVXBzZXJ0LnJlZHVjZSgoYWNjLCB7IG5hbWUsIHZhbHVlIH0pID0+IHtcbiAgICBjb25zdCBbb3JpZ0F0dHJdID0gZ2V0QXR0cmlidXRlcyhhY2MsIFtuYW1lXSk7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLmFjYy5maWx0ZXIoYXR0ciA9PiBhdHRyLm5hbWUgIT09IG5hbWUpLFxuICAgICAgeyAuLi4ob3JpZ0F0dHIgPz8geyBuYW1lIH0pLCBjZmdTdGF0dXM6ICdVc2VyJyBhcyBDZmdTdGF0dXMsIHZhbHVlIH0sXG4gICAgXTtcbiAgfSwgb3JpZ2luYWxBdHRyaWJ1dGVzKTtcbn07XG5cbmV4cG9ydCBjb25zdCBwYXRjaEF0dHJpYnV0ZXMgPSAoXG4gIHJvb3RMaW5lSXRlbTogTGluZUl0ZW0sXG4gIGlkOiBzdHJpbmcsXG4gIGF0dHJzOiB7IG5hbWU6IHN0cmluZzsgdmFsdWU6IGFueSB9W10sXG4pOiBMaW5lSXRlbSA9PiB7XG4gIGNvbnN0IGxpbmVJdGVtID0gZmluZExpbmVJdGVtKGlkLCBbcm9vdExpbmVJdGVtXSk7XG5cbiAgaWYgKCFsaW5lSXRlbSkge1xuICAgIHJldHVybiByb290TGluZUl0ZW07XG4gIH1cblxuICBjb25zdCBhdHRyaWJ1dGVzID0gdXBzZXJ0QXR0cmlidXRlcyhsaW5lSXRlbS5hdHRyaWJ1dGVzLCBhdHRycyk7XG4gIHJldHVybiByZXBsYWNlTGluZUl0ZW0ocm9vdExpbmVJdGVtLCB7IC4uLmxpbmVJdGVtLCBhdHRyaWJ1dGVzIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEF0dHJpYnV0ZVZhbHVlID0gKGF0dHJpYnV0ZXM6IEF0dHJpYnV0ZVtdLCBuYW1lOiBzdHJpbmcpOiBhbnkgPT5cbiAgYXR0cmlidXRlcy5maW5kKGF0dHIgPT4gYXR0ci5uYW1lID09PSBuYW1lKT8udmFsdWU7XG5cbmV4cG9ydCBjb25zdCBnZW5lcmF0ZUxpbmVJdGVtID0gKFxuICBwb3J0OiBzdHJpbmcsXG4gIHR5cGU6IHN0cmluZyxcbiAgcGFyZW50SWQ6IHN0cmluZyxcbiAgYXR0cmlidXRlczogeyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBhbnkgfVtdID0gW10sXG4gIGxpbmVJdGVtczogTGluZUl0ZW1bXSA9IFtdLFxuKTogTGluZUl0ZW0gPT4ge1xuICByZXR1cm4ge1xuICAgIGlkOiBVVUlELlVVSUQoKSxcbiAgICBwb3J0LFxuICAgIHR5cGUsXG4gICAgYWN0aW9uQ29kZTogJ0FERCcsXG4gICAgY2ZnU3RhdHVzOiAnTmV3JyxcbiAgICBhdHRyaWJ1dGVzOiBhdHRyaWJ1dGVzLm1hcCgoeyBuYW1lLCB2YWx1ZSB9KSA9PiAoeyBjZmdTdGF0dXM6ICdVc2VyJywgbmFtZSwgdmFsdWUgfSkpLFxuICAgIGxpbmVJdGVtcyxcbiAgICBwYXJlbnRJZCxcbiAgICBxdHk6IDEsXG4gIH0gYXMgTGluZUl0ZW07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UmVjb21tZW5kZWRQcmljZXMgPSAocG9ydERvbWFpbjogUG9ydERvbWFpbiwgdHlwZTogc3RyaW5nKTogeyBuZXQ6IG51bWJlcjsgbGlzdDogbnVtYmVyIH0gPT4ge1xuICBjb25zdCBkb21haW5UeXBlID0gcG9ydERvbWFpbi5kb21haW5UeXBlcy5maW5kKCh7IG5hbWUgfSkgPT4gbmFtZSA9PT0gdHlwZSk7XG5cbiAgY29uc3QgW25ldCwgbGlzdF0gPSBkb21haW5UeXBlPy5yZWNvbW1lbmRlZFByaWNlc1xuICAgID8uZmlsdGVyKCh7IGNoYXJnZU1ldGhvZCB9KSA9PiBjaGFyZ2VNZXRob2QgPT09ICdPTkVfVElNRScpXG4gICAgLnJlZHVjZShcbiAgICAgIChhY2MsIHJwKSA9PiB7XG4gICAgICAgIGNvbnN0IFtuZXRQcmljZSwgbGlzdFByaWNlXSA9IGFjYztcbiAgICAgICAgcmV0dXJuIFtuZXRQcmljZSArIHJwLm5ldFByaWNlLCBsaXN0UHJpY2UgKyBycC5saXN0UHJpY2VdO1xuICAgICAgfSxcbiAgICAgIFswLCAwXSxcbiAgICApID8/IFswLCAwXTtcblxuICByZXR1cm4geyBuZXQsIGxpc3QgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZW5lcmF0ZU1vZGlmaWVkQXNzZXRzTWFwID0gKGxpbmVJdGVtczogTGluZUl0ZW1bXSk6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+ID0+IHtcbiAgcmV0dXJuIGxpbmVJdGVtcy5yZWR1Y2UoKGFjYzogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4sIGxpKSA9PiB7XG4gICAgaWYgKGxpLnJhbXBJbnN0YW5jZUlkICYmIGxpLnN0YXR1cyAhPT0gJ0VYSVNUJykge1xuICAgICAgbGV0IHRhcmdldDogTGluZUl0ZW0gfCB1bmRlZmluZWQgPSBsaTtcbiAgICAgIHdoaWxlICh0YXJnZXQgJiYgdGFyZ2V0LnJhbXBJbnN0YW5jZUlkKSB7XG4gICAgICAgIHRhcmdldCA9IGxpbmVJdGVtcy5maW5kKHN1YiA9PiBzdWIuaWQgPT09IGxpLnJhbXBJbnN0YW5jZUlkKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgaWQgPSB0YXJnZXQ/LmFzc2V0SWQgPz8gdGFyZ2V0Py5vcGVuT3JkZXJMaW5lSXRlbUlkO1xuICAgICAgaWYgKGlkKSB7XG4gICAgICAgIGFjY1tpZF0gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBhY2M7XG4gIH0sIHt9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBtdWx0aXBseUxpbmVJdGVtcyA9IChsaW5lSXRlbTogTGluZUl0ZW0sIHF0eTogbnVtYmVyLCBzcGxpdDogYm9vbGVhbik6IExpbmVJdGVtW10gPT4ge1xuICBpZiAoc3BsaXQpIHtcbiAgICBjb25zdCB1bmlmeUlkcyA9IChsaW5lSXRlbTogTGluZUl0ZW0pOiBMaW5lSXRlbSA9PiAoe1xuICAgICAgLi4ubGluZUl0ZW0sXG4gICAgICBpZDogVVVJRC5VVUlEKCksXG4gICAgICBsaW5lSXRlbXM6IGxpbmVJdGVtLmxpbmVJdGVtcy5tYXAodW5pZnlJZHMpLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1hcChuZXcgQXJyYXkocXR5KSwgKCkgPT4gdW5pZnlJZHMobGluZUl0ZW0pKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICAuLi5saW5lSXRlbSxcbiAgICAgICAgcXR5OiBxdHksXG4gICAgICB9LFxuICAgIF07XG4gIH1cbn07XG4iXX0=
|
180
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1pdGVtLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY29yZS91dGlscy9saW5lLWl0ZW0udXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE4QyxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRixPQUFPLEVBQWMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFMUQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsRUFBVSxFQUFFLFNBQXFCLEVBQXdCLEVBQUU7SUFDdEYsT0FBTywwQkFBMEIsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFZLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7QUFDL0UsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsQ0FDeEMsU0FBcUIsRUFDckIsVUFBcUMsRUFDZixFQUFFO0lBQ3hCLElBQUksWUFBWSxHQUFHLFNBQVMsQ0FBQztJQUU3QixPQUFPLFlBQVksQ0FBQyxNQUFNLEVBQUU7UUFDMUIsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUU1QyxJQUFJLEtBQUssRUFBRTtZQUNULE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztLQUN0RTtJQUVELE9BQU87QUFDVCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxRQUFrQixFQUFFLFFBQWdCLEVBQUUsUUFBa0IsRUFBWSxFQUFFO0lBQ25HLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxFQUFFLEtBQUssUUFB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LEdBQUcsRUFBRSxHQUFHO2FBQ1Q7U0FDRixDQUFDO0tBQ0g7QUFDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdHRyaWJ1dGUsIENmZ1N0YXR1cywgTGluZUl0ZW0sIFBvcnREb21haW4sIFVVSUQgfSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcbmltcG9ydCB7IERpY3Rpb25hcnksIGZsYXR0ZW4sIG1hcCwgc29ydEJ5IH0gZnJvbSAnbG9kYXNoJztcblxuZXhwb3J0IGNvbnN0IGZpbmRMaW5lSXRlbSA9IChpZDogc3RyaW5nLCBsaW5lSXRlbXM6IExpbmVJdGVtW10pOiBMaW5lSXRlbSB8IHVuZGVmaW5lZCA9PiB7XG4gIHJldHVybiBmaW5kTGluZUl0ZW1XaXRoQ29tcGFyYXRvcihsaW5lSXRlbXMsIChsaTogTGluZUl0ZW0pID0+IGxpLmlkID09PSBpZCk7XG59O1xuXG5leHBvcnQgY29uc3QgZmluZExpbmVJdGVtV2l0aENvbXBhcmF0b3IgPSAoXG4gIGxpbmVJdGVtczogTGluZUl0ZW1bXSxcbiAgY29tcGFyYXRvcjogKGxpOiBMaW5lSXRlbSkgPT4gYm9vbGVhbixcbik6IExpbmVJdGVtIHwgdW5kZWZpbmVkID0+IHtcbiAgbGV0IGN1cnJlbnRMZXZlbCA9IGxpbmVJdGVtcztcblxuICB3aGlsZSAoY3VycmVudExldmVsLmxlbmd0aCkge1xuICAgIGNvbnN0IGZvdW5kID0gY3VycmVudExldmVsLmZpbmQoY29tcGFyYXRvcik7XG5cbiAgICBpZiAoZm91bmQpIHtcbiAgICAgIHJldHVybiBmb3VuZDtcbiAgICB9XG5cbiAgICBjdXJyZW50TGV2ZWwgPSBmbGF0dGVuKGN1cnJlbnRMZXZlbC5tYXAocGFyZW50ID0+IHBhcmVudC5saW5lSXRlbXMpKTtcbiAgfVxuXG4gIHJldHVybjtcbn07XG5cbmV4cG9ydCBjb25zdCBpbnNlcnRMaW5lSXRlbSA9IChsaW5lSXRlbTogTGluZUl0ZW0sIHBhcmVudElkOiBzdHJpbmcsIHRvSW5zZXJ0OiBMaW5lSXRlbSk6IExpbmVJdGVtID0+IHtcbiAgY29uc3QgaW5zZXJ0RGF0YSA9IGxpbmVJdGVtLmlkID09PSBwYXJlbnRJZCA/IFt0b0luc2VydF0gOiBbXTtcbiAgcmV0dXJuIHtcbiAgICAuLi5saW5lSXRlbSxcbiAgICBsaW5lSXRlbXM6IFtcbiAgICAgIC4uLmluc2VydERhdGEsXG4gICAgICAuLi5saW5lSXRlbS5saW5lSXRlbXMubWFwKGxpID0+IHtcbiAgICAgICAgcmV0dXJuIGluc2VydExpbmVJdGVtKGxpLCBwYXJlbnRJZCwgdG9JbnNlcnQpO1xuICAgICAgfSksXG4gICAgXSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCByZW1vdmVMaW5lSXRlbSA9IChsaW5lSXRlbTogTGluZUl0ZW0sIGlkVG9SZW1vdmU6IHN0cmluZyk6IExpbmVJdGVtID0+IHtcbiAgcmV0dXJuIHtcbiAgICAuLi5saW5lSXRlbSxcbiAgICBsaW5lSXRlbXM6IGxpbmVJdGVtLmxpbmVJdGVtc1xuICAgICAgLm1hcChsaSA9PiB7XG4gICAgICAgIGlmIChsaS5pZCA9PT0gaWRUb1JlbW92ZSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIGlmIChsaS5saW5lSXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgcmV0dXJuIHJlbW92ZUxpbmVJdGVtKGxpLCBpZFRvUmVtb3ZlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbGk7XG4gICAgICB9KVxuICAgICAgLmZpbHRlcihyID0+ICEhcikgYXMgTGluZUl0ZW1bXSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCByZXBsYWNlTGluZUl0ZW0gPSAoXG4gIGxpbmVJdGVtOiBMaW5lSXRlbSxcbiAgcmVwbGFjZVRvOiBMaW5lSXRlbSxcbiAgc2tpcENhcmRpbmFsaXR5Q2FsY3VsYXRpb246IGJvb2xlYW4gPSBmYWxzZSxcbik6IExpbmVJdGVtID0+IHtcbiAgaWYgKGxpbmVJdGVtLmlkID09PSByZXBsYWNlVG8uaWQpIHtcbiAgICBpZiAoIXNraXBDYXJkaW5hbGl0eUNhbGN1bGF0aW9uKSB7XG4gICAgICByZXR1cm4geyAuLi5yZWNhbGN1bGF0ZUNhcmRpbmFsaXR5VmFyaWFibGVzKGxpbmVJdGVtLCByZXBsYWNlVG8pIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7IC4uLnJlcGxhY2VUbyB9O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4ubGluZUl0ZW0sXG4gICAgbGluZUl0ZW1zOiBsaW5lSXRlbS5saW5lSXRlbXMubWFwKGxpID0+IHJlcGxhY2VMaW5lSXRlbShsaSwgcmVwbGFjZVRvLCBza2lwQ2FyZGluYWxpdHlDYWxjdWxhdGlvbikpLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGNhbGN1bGF0ZUNhcmRpbmFsaXR5VmFyaWFibGVzID0gKGxpbmVJdGVtczogTGluZUl0ZW1bXSk6IE1hcDxzdHJpbmcsIG51bWJlcj4gPT4ge1xuICBjb25zdCBjYXJkVmFycyA9IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCk7XG4gIGxpbmVJdGVtc1xuICAgIC5maWx0ZXIoKHsgcG9ydCwgdHlwZSB9KSA9PiAhIXBvcnQgJiYgISF0eXBlKVxuICAgIC5mb3JFYWNoKGxpID0+IHtcbiAgICAgIGNvbnN0IGNhcmRpbmFsaXR5VmFyaWFibGVOYW1lID0gYCNDVi0ke2xpLnR5cGV9QCR7bGkucG9ydH1gO1xuICAgICAgY2FyZFZhcnMuc2V0KGNhcmRpbmFsaXR5VmFyaWFibGVOYW1lLCAoY2FyZFZhcnMuZ2V0KGNhcmRpbmFsaXR5VmFyaWFibGVOYW1lKSA/PyAwKSArIGxpLnF0eSk7XG4gICAgfSk7XG4gIHJldHVybiBjYXJkVmFycztcbn07XG5cbmV4cG9ydCBjb25zdCByZWNhbGN1bGF0ZUNhcmRpbmFsaXR5VmFyaWFibGVzID0gKG9yaWdpbmFsOiBMaW5lSXRlbSwgdXBkYXRlZDogTGluZUl0ZW0pOiBMaW5lSXRlbSA9PiB7XG4gIGNvbnN0IGNhcmRpbmFsaXR5VmFyaWFibGVzID0gY2FsY3VsYXRlQ2FyZGluYWxpdHlWYXJpYWJsZXModXBkYXRlZC5saW5lSXRlbXMpO1xuICBjb25zdCBvcmlnaW5hbENhcmRpbmFsaXR5VmFyaWFibGVzID0gY2FsY3VsYXRlQ2FyZGluYWxpdHlWYXJpYWJsZXMob3JpZ2luYWwubGluZUl0ZW1zKTtcblxuICBvcmlnaW5hbENhcmRpbmFsaXR5VmFyaWFibGVzLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICBpZiAoY2FyZGluYWxpdHlWYXJpYWJsZXMuZ2V0KGtleSkgPT09IHZhbHVlKSB7XG4gICAgICAvLyBubyBuZWVkIHRvIHVwZGF0ZSBjYXJkaW5hbGl0eSBpZiBubyBjaGFuZ2VzXG4gICAgICBjYXJkaW5hbGl0eVZhcmlhYmxlcy5kZWxldGUoa2V5KTtcbiAgICB9IGVsc2UgaWYgKCFjYXJkaW5hbGl0eVZhcmlhYmxlcy5oYXMoa2V5KSkge1xuICAgICAgLy8gcmVtb3ZlIGxhc3QgaXRlbSBmcm9tIHBvcnRcbiAgICAgIGNhcmRpbmFsaXR5VmFyaWFibGVzLnNldChrZXksIDApO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICAuLi51cGRhdGVkLFxuICAgIGF0dHJpYnV0ZXM6IHVwc2VydEF0dHJpYnV0ZXMoXG4gICAgICB1cGRhdGVkLmF0dHJpYnV0ZXMsXG4gICAgICBbLi4uY2FyZGluYWxpdHlWYXJpYWJsZXNdLm1hcCgoW25hbWUsIHZhbHVlXSkgPT4gKHsgbmFtZSwgdmFsdWUgfSkpLFxuICAgICksXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgbWFwQXR0cmlidXRlcyA9IChhdHRyaWJ1dGVzOiBBdHRyaWJ1dGVbXSk6IERpY3Rpb25hcnk8YW55PiA9PiB7XG4gIHJldHVybiBhdHRyaWJ1dGVzLnJlZHVjZSgoYWNjLCB7IG5hbWUsIHZhbHVlIH0pID0+ICh7IC4uLmFjYywgW25hbWVdOiB2YWx1ZSB9KSwge30pO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEF0dHJpYnV0ZXMgPSAoYXR0cmlidXRlczogQXR0cmlidXRlW10sIG5hbWVzOiBzdHJpbmdbXSA9IFtdKTogQXR0cmlidXRlW10gPT4ge1xuICBjb25zdCBmaWx0ZXJlZCA9IGF0dHJpYnV0ZXMuZmlsdGVyKCh7IG5hbWUgfSkgPT4gbmFtZXMuaW5jbHVkZXMobmFtZSkpO1xuICByZXR1cm4gc29ydEJ5KGZpbHRlcmVkLCBbKHsgbmFtZSB9KTogbnVtYmVyID0+IG5hbWVzLmluZGV4T2YobmFtZSldKTtcbn07XG5cbmV4cG9ydCBjb25zdCB1cHNlcnRBdHRyaWJ1dGVzID0gKFxuICBvcmlnaW5hbEF0dHJpYnV0ZXM6IEF0dHJpYnV0ZVtdLFxuICBhdHRyaWJ1dGVzVG9VcHNlcnQ6IHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogYW55IH1bXSxcbik6IEF0dHJpYnV0ZVtdID0+IHtcbiAgcmV0dXJuIGF0dHJpYnV0ZXNUb1Vwc2VydC5yZWR1Y2UoKGFjYywgeyBuYW1lLCB2YWx1ZSB9KSA9PiB7XG4gICAgY29uc3QgW29yaWdBdHRyXSA9IGdldEF0dHJpYnV0ZXMoYWNjLCBbbmFtZV0pO1xuICAgIHJldHVybiBbXG4gICAgICAuLi5hY2MuZmlsdGVyKGF0dHIgPT4gYXR0ci5uYW1lICE9PSBuYW1lKSxcbiAgICAgIHsgLi4uKG9yaWdBdHRyID8/IHsgbmFtZSB9KSwgY2ZnU3RhdHVzOiAnVXNlcicgYXMgQ2ZnU3RhdHVzLCB2YWx1ZSB9LFxuICAgIF07XG4gIH0sIG9yaWdpbmFsQXR0cmlidXRlcyk7XG59O1xuXG5leHBvcnQgY29uc3QgcGF0Y2hBdHRyaWJ1dGVzID0gKFxuICByb290TGluZUl0ZW06IExpbmVJdGVtLFxuICBpZDogc3RyaW5nLFxuICBhdHRyczogeyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBhbnkgfVtdLFxuICBza2lwQ2FyZGluYWxpdHlDYWxjdWxhdGlvbjogYm9vbGVhbiA9IGZhbHNlLFxuKTogTGluZUl0ZW0gPT4ge1xuICBjb25zdCBsaW5lSXRlbSA9IGZpbmRMaW5lSXRlbShpZCwgW3Jvb3RMaW5lSXRlbV0pO1xuXG4gIGlmICghbGluZUl0ZW0pIHtcbiAgICByZXR1cm4gcm9vdExpbmVJdGVtO1xuICB9XG5cbiAgY29uc3QgYXR0cmlidXRlcyA9IHVwc2VydEF0dHJpYnV0ZXMobGluZUl0ZW0uYXR0cmlidXRlcywgYXR0cnMpO1xuICByZXR1cm4gcmVwbGFjZUxpbmVJdGVtKHJvb3RMaW5lSXRlbSwgeyAuLi5saW5lSXRlbSwgYXR0cmlidXRlcyB9LCBza2lwQ2FyZGluYWxpdHlDYWxjdWxhdGlvbik7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0QXR0cmlidXRlVmFsdWUgPSAoYXR0cmlidXRlczogQXR0cmlidXRlW10sIG5hbWU6IHN0cmluZyk6IGFueSA9PlxuICBhdHRyaWJ1dGVzLmZpbmQoYXR0ciA9PiBhdHRyLm5hbWUgPT09IG5hbWUpPy52YWx1ZTtcblxuZXhwb3J0IGNvbnN0IGdlbmVyYXRlTGluZUl0ZW0gPSAoXG4gIHBvcnQ6IHN0cmluZyxcbiAgdHlwZTogc3RyaW5nLFxuICBwYXJlbnRJZDogc3RyaW5nLFxuICBhdHRyaWJ1dGVzOiB7IG5hbWU6IHN0cmluZzsgdmFsdWU6IGFueSB9W10gPSBbXSxcbiAgbGluZUl0ZW1zOiBMaW5lSXRlbVtdID0gW10sXG4pOiBMaW5lSXRlbSA9PiB7XG4gIHJldHVybiB7XG4gICAgaWQ6IFVVSUQuVVVJRCgpLFxuICAgIHBvcnQsXG4gICAgdHlwZSxcbiAgICBhY3Rpb25Db2RlOiAnQUREJyxcbiAgICBjZmdTdGF0dXM6ICdOZXcnLFxuICAgIGF0dHJpYnV0ZXM6IGF0dHJpYnV0ZXMubWFwKCh7IG5hbWUsIHZhbHVlIH0pID0+ICh7IGNmZ1N0YXR1czogJ1VzZXInLCBuYW1lLCB2YWx1ZSB9KSksXG4gICAgbGluZUl0ZW1zLFxuICAgIHBhcmVudElkLFxuICAgIHF0eTogMSxcbiAgfSBhcyBMaW5lSXRlbTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRSZWNvbW1lbmRlZFByaWNlcyA9IChwb3J0RG9tYWluOiBQb3J0RG9tYWluLCB0eXBlOiBzdHJpbmcpOiB7IG5ldDogbnVtYmVyOyBsaXN0OiBudW1iZXIgfSA9PiB7XG4gIGNvbnN0IGRvbWFpblR5cGUgPSBwb3J0RG9tYWluLmRvbWFpblR5cGVzLmZpbmQoKHsgbmFtZSB9KSA9PiBuYW1lID09PSB0eXBlKTtcblxuICBjb25zdCBbbmV0LCBsaXN0XSA9IGRvbWFpblR5cGU/LnJlY29tbWVuZGVkUHJpY2VzXG4gICAgPy5maWx0ZXIoKHsgY2hhcmdlTWV0aG9kIH0pID0+IGNoYXJnZU1ldGhvZCA9PT0gJ09ORV9USU1FJylcbiAgICAucmVkdWNlKFxuICAgICAgKGFjYywgcnApID0+IHtcbiAgICAgICAgY29uc3QgW25ldFByaWNlLCBsaXN0UHJpY2VdID0gYWNjO1xuICAgICAgICByZXR1cm4gW25ldFByaWNlICsgcnAubmV0UHJpY2UsIGxpc3RQcmljZSArIHJwLmxpc3RQcmljZV07XG4gICAgICB9LFxuICAgICAgWzAsIDBdLFxuICAgICkgPz8gWzAsIDBdO1xuXG4gIHJldHVybiB7IG5ldCwgbGlzdCB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGdlbmVyYXRlTW9kaWZpZWRBc3NldHNNYXAgPSAobGluZUl0ZW1zOiBMaW5lSXRlbVtdKTogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPT4ge1xuICByZXR1cm4gbGluZUl0ZW1zLnJlZHVjZSgoYWNjOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiwgbGkpID0+IHtcbiAgICBjb25zdCBpc01vZGlmaWVkID0gaXNMaW5lSXRlbU1vZGlmaWVkKGxpKTtcblxuICAgIGlmICghaXNNb2RpZmllZCkge1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9XG5cbiAgICBjb25zdCB0YXJnZXQgPSBnZXRPcmlnaW5QYXJlbnQobGluZUl0ZW1zLCBsaSk7XG5cbiAgICBjb25zdCBpZCA9IHRhcmdldD8uYXNzZXRJZCA/PyB0YXJnZXQ/Lm9wZW5PcmRlckxpbmVJdGVtSWQ7XG4gICAgaWYgKGlkKSB7XG4gICAgICBhY2NbaWRdID0gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0T3JpZ2luUGFyZW50ID0gKGxpbmVJdGVtczogTGluZUl0ZW1bXSwgY3VycmVudExpbmVJdGVtOiBMaW5lSXRlbSk6IExpbmVJdGVtIHwgdW5kZWZpbmVkID0+IHtcbiAgbGV0IHRhcmdldDogTGluZUl0ZW0gfCB1bmRlZmluZWQgPSBjdXJyZW50TGluZUl0ZW07XG4gIHdoaWxlICh0YXJnZXQgJiYgdGFyZ2V0LnJhbXBJbnN0YW5jZUlkKSB7XG4gICAgdGFyZ2V0ID0gbGluZUl0ZW1zLmZpbmQoc3ViID0+IHN1Yi5pZCA9PT0gY3VycmVudExpbmVJdGVtLnJhbXBJbnN0YW5jZUlkKTtcbiAgfVxuICByZXR1cm4gdGFyZ2V0O1xufTtcblxuZXhwb3J0IGNvbnN0IGlzTGluZUl0ZW1Nb2RpZmllZCA9IDxUIGV4dGVuZHMgUGljazxMaW5lSXRlbSwgJ2FjdGlvbkNvZGUnIHwgJ3N0YXR1cyc+PihsaW5lSXRlbTogVCk6IGJvb2xlYW4gPT4ge1xuICBpZiAobGluZUl0ZW0uYWN0aW9uQ29kZSA9PT0gJ0VYSVNUJyAmJiBsaW5lSXRlbS5zdGF0dXMgPT09ICdQRU5ESU5HJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBsaW5lSXRlbS5hY3Rpb25Db2RlICE9PSAnRVhJU1QnO1xufTtcblxuZXhwb3J0IGNvbnN0IG11bHRpcGx5TGluZUl0ZW1zID0gKGxpbmVJdGVtOiBMaW5lSXRlbSwgcXR5OiBudW1iZXIsIHNwbGl0OiBib29sZWFuKTogTGluZUl0ZW1bXSA9PiB7XG4gIGlmIChzcGxpdCkge1xuICAgIGNvbnN0IHVuaWZ5SWRzID0gKGxpbmVJdGVtOiBMaW5lSXRlbSk6IExpbmVJdGVtID0+ICh7XG4gICAgICAuLi5saW5lSXRlbSxcbiAgICAgIGlkOiBVVUlELlVVSUQoKSxcbiAgICAgIGxpbmVJdGVtczogbGluZUl0ZW0ubGluZUl0ZW1zLm1hcCh1bmlmeUlkcyksXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbWFwKG5ldyBBcnJheShxdHkpLCAoKSA9PiB1bmlmeUlkcyhsaW5lSXRlbSkpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIC4uLmxpbmVJdGVtLFxuICAgICAgICBxdHk6IHF0eSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfVxufTtcbiJdfQ==
|
@@ -9,11 +9,11 @@ export class LineItemWorker {
|
|
9
9
|
remove(id) {
|
10
10
|
return new LineItemWorker(removeLineItem(this.li, id));
|
11
11
|
}
|
12
|
-
replace(toReplace) {
|
13
|
-
return new LineItemWorker(replaceLineItem(this.li, toReplace));
|
12
|
+
replace(toReplace, skipCardinalityCalculation = false) {
|
13
|
+
return new LineItemWorker(replaceLineItem(this.li, toReplace, skipCardinalityCalculation));
|
14
14
|
}
|
15
|
-
patchAttribute(attrs, id) {
|
16
|
-
return new LineItemWorker(patchAttributes(this.li, id ?? this.li.id, attrs));
|
15
|
+
patchAttribute(attrs, id, skipCardinalityCalculation = false) {
|
16
|
+
return new LineItemWorker(patchAttributes(this.li, id ?? this.li.id, attrs, skipCardinalityCalculation));
|
17
17
|
}
|
18
18
|
}
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1pdGVtLndvcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2NvcmUvdXRpbHMvbGluZS1pdGVtLndvcmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFckcsTUFBTSxPQUFPLGNBQWM7SUFHekIsWUFBWSxHQUFhO1FBQ3ZCLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxNQUFNLENBQUMsUUFBZ0IsRUFBRSxRQUFrQjtRQUNoRCxPQUFPLElBQUksY0FBYyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFTSxNQUFNLENBQUMsRUFBVTtRQUN0QixPQUFPLElBQUksY0FBYyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVNLE9BQU8sQ0FBQyxTQUFtQixFQUFFLDZCQUFzQyxLQUFLO1FBQzdFLE9BQU8sSUFBSSxjQUFjLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLDBCQUEwQixDQUFDLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBRU0sY0FBYyxDQUNuQixLQUFxQyxFQUNyQyxFQUFXLEVBQ1gsNkJBQXNDLEtBQUs7UUFFM0MsT0FBTyxJQUFJLGNBQWMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLDBCQUEwQixDQUFDLENBQUMsQ0FBQztJQUMzRyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMaW5lSXRlbSB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgaW5zZXJ0TGluZUl0ZW0sIHBhdGNoQXR0cmlidXRlcywgcmVtb3ZlTGluZUl0ZW0sIHJlcGxhY2VMaW5lSXRlbSB9IGZyb20gJy4vbGluZS1pdGVtLnV0aWxzJztcblxuZXhwb3J0IGNsYXNzIExpbmVJdGVtV29ya2VyIHtcbiAgcHVibGljIGxpOiBMaW5lSXRlbTtcblxuICBjb25zdHJ1Y3RvcihzcmM6IExpbmVJdGVtKSB7XG4gICAgdGhpcy5saSA9IHsgLi4uc3JjIH07XG4gIH1cblxuICBwdWJsaWMgaW5zZXJ0KHBhcmVudElkOiBzdHJpbmcsIHRvSW5zZXJ0OiBMaW5lSXRlbSk6IExpbmVJdGVtV29ya2VyIHtcbiAgICByZXR1cm4gbmV3IExpbmVJdGVtV29ya2VyKGluc2VydExpbmVJdGVtKHRoaXMubGksIHBhcmVudElkLCB0b0luc2VydCkpO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZShpZDogc3RyaW5nKTogTGluZUl0ZW1Xb3JrZXIge1xuICAgIHJldHVybiBuZXcgTGluZUl0ZW1Xb3JrZXIocmVtb3ZlTGluZUl0ZW0odGhpcy5saSwgaWQpKTtcbiAgfVxuXG4gIHB1YmxpYyByZXBsYWNlKHRvUmVwbGFjZTogTGluZUl0ZW0sIHNraXBDYXJkaW5hbGl0eUNhbGN1bGF0aW9uOiBib29sZWFuID0gZmFsc2UpOiBMaW5lSXRlbVdvcmtlciB7XG4gICAgcmV0dXJuIG5ldyBMaW5lSXRlbVdvcmtlcihyZXBsYWNlTGluZUl0ZW0odGhpcy5saSwgdG9SZXBsYWNlLCBza2lwQ2FyZGluYWxpdHlDYWxjdWxhdGlvbikpO1xuICB9XG5cbiAgcHVibGljIHBhdGNoQXR0cmlidXRlKFxuICAgIGF0dHJzOiB7IG5hbWU6IHN0cmluZzsgdmFsdWU6IGFueSB9W10sXG4gICAgaWQ/OiBzdHJpbmcsXG4gICAgc2tpcENhcmRpbmFsaXR5Q2FsY3VsYXRpb246IGJvb2xlYW4gPSBmYWxzZSxcbiAgKTogTGluZUl0ZW1Xb3JrZXIge1xuICAgIHJldHVybiBuZXcgTGluZUl0ZW1Xb3JrZXIocGF0Y2hBdHRyaWJ1dGVzKHRoaXMubGksIGlkID8/IHRoaXMubGkuaWQsIGF0dHJzLCBza2lwQ2FyZGluYWxpdHlDYWxjdWxhdGlvbikpO1xuICB9XG59XG4iXX0=
|