@veloceapps/sdk 5.0.14-8 → 5.0.14-GOOGLE
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/bundles/{veloceapps-sdk-cms.umd.js → veloce-sdk-cms.umd.js} +15 -16
- package/bundles/veloce-sdk-cms.umd.js.map +1 -0
- package/bundles/{veloceapps-sdk-core.umd.js → veloce-sdk-core.umd.js} +42 -197
- package/bundles/veloce-sdk-core.umd.js.map +1 -0
- package/bundles/{veloceapps-sdk-runtime.umd.js → veloce-sdk-runtime.umd.js} +4 -4
- package/bundles/veloce-sdk-runtime.umd.js.map +1 -0
- package/bundles/{veloceapps-sdk.umd.js → veloce-sdk.umd.js} +23 -27
- package/bundles/veloce-sdk.umd.js.map +1 -0
- package/cms/cms.default.d.ts +1 -1
- package/cms/components/element-renderer/element-renderer.component.d.ts +1 -1
- package/cms/components/preview/preview.component.d.ts +1 -1
- package/cms/components/preview/preview.module.d.ts +1 -1
- package/cms/injection-tokens.d.ts +1 -1
- package/cms/launcher.module.d.ts +3 -3
- package/cms/modules/federated/federated.module.d.ts +1 -1
- package/cms/package.json +7 -7
- package/cms/services/launcher.service.d.ts +1 -1
- package/cms/types/configuration.types.d.ts +1 -1
- package/cms/utils/element.utils.d.ts +1 -1
- package/cms/utils/elements-resolver.d.ts +1 -1
- package/{veloceapps-sdk.d.ts → cms/veloce-sdk-cms.d.ts} +1 -1
- package/cms/vendor-map.d.ts +70 -71
- package/core/modules/configuration/configuration.module.d.ts +1 -1
- package/core/modules/configuration/helpers.d.ts +1 -1
- package/core/modules/configuration/services/configuration-runtime.service.d.ts +2 -2
- package/core/modules/configuration/services/configuration.service.d.ts +2 -2
- package/core/modules/configuration/services/runtime-context.service.d.ts +1 -1
- package/core/modules/configuration/types/configuration-runtime.types.d.ts +1 -1
- package/core/modules/flow-configuration/services/flow-configuration.service.d.ts +2 -2
- package/core/modules/flow-configuration/services/flow-update.service.d.ts +1 -1
- package/core/package.json +7 -7
- package/core/services/context.service.d.ts +2 -2
- package/core/services/index.d.ts +0 -1
- package/core/services/product-images.service.d.ts +1 -1
- package/core/services/quote-draft.service.d.ts +3 -5
- package/core/types/quote-states.types.d.ts +1 -1
- package/core/types/runtime.types.d.ts +1 -1
- package/core/utils/line-item.utils.d.ts +1 -2
- package/core/utils/line-item.worker.d.ts +1 -1
- package/{cms/veloceapps-sdk-cms.d.ts → core/veloce-sdk-core.d.ts} +1 -1
- package/esm2015/cms/cms.default.js +1 -1
- package/esm2015/cms/components/element-renderer/element-renderer.component.js +3 -3
- package/esm2015/cms/components/preview/preview.component.js +3 -3
- package/esm2015/cms/components/preview/preview.module.js +2 -2
- package/esm2015/cms/injection-tokens.js +1 -1
- package/esm2015/cms/launcher.module.js +4 -4
- package/esm2015/cms/modules/federated/federated.component.js +1 -1
- package/esm2015/cms/modules/federated/federated.module.js +2 -2
- package/esm2015/cms/plugins/configuration.plugin.js +2 -2
- package/esm2015/cms/plugins/script.plugin.js +2 -2
- package/esm2015/cms/services/launcher.service.js +2 -3
- package/esm2015/cms/types/configuration.types.js +1 -1
- package/esm2015/cms/utils/element.utils.js +1 -1
- package/esm2015/cms/utils/elements-resolver.js +1 -1
- package/esm2015/cms/veloce-sdk-cms.js +5 -0
- package/esm2015/cms/vendor-map.js +12 -9
- package/esm2015/core/core.module.js +4 -4
- package/esm2015/core/modules/configuration/configuration.module.js +3 -3
- package/esm2015/core/modules/configuration/helpers.js +2 -2
- package/esm2015/core/modules/configuration/services/configuration-runtime.service.js +3 -3
- package/esm2015/core/modules/configuration/services/configuration.service.js +4 -4
- package/esm2015/core/modules/configuration/services/runtime-context.service.js +3 -3
- package/esm2015/core/modules/configuration/types/configuration-runtime.types.js +1 -1
- package/esm2015/core/modules/flow-configuration/flow-configuration.module.js +2 -2
- package/esm2015/core/modules/flow-configuration/services/flow-configuration.service.js +3 -10
- package/esm2015/core/modules/flow-configuration/services/flow-update.service.js +2 -2
- package/esm2015/core/services/context.service.js +3 -3
- package/esm2015/core/services/index.js +1 -2
- package/esm2015/core/services/product-images.service.js +2 -2
- package/esm2015/core/services/quote-draft.service.js +7 -17
- package/esm2015/core/types/quote-states.types.js +1 -1
- package/esm2015/core/types/runtime.types.js +1 -1
- package/esm2015/core/utils/line-item.utils.js +3 -14
- package/esm2015/core/utils/line-item.worker.js +1 -1
- package/esm2015/core/veloce-sdk-core.js +5 -0
- package/esm2015/runtime/components/component-preview/component-preview.component.js +3 -3
- package/esm2015/runtime/components/section-renderer/section-renderer.component.js +1 -1
- package/esm2015/runtime/components/ui-runtime/runtime.component.js +5 -5
- package/esm2015/runtime/components/ui-runtime-preview/runtime-preview.component.js +5 -5
- package/esm2015/runtime/execution/components/children-placeholder/children-placeholder.component.js +2 -2
- package/esm2015/runtime/execution/components/context-provider/context-provider.component.js +2 -2
- package/esm2015/runtime/execution/components/execution-section-renderer/execution-section-renderer.component.js +1 -1
- package/esm2015/runtime/execution/components/federated/federated.component.js +1 -1
- package/esm2015/runtime/execution/components/velo-port-checkbox/velo-port-checkbox.component.js +1 -1
- package/esm2015/runtime/execution/components/velo-port-dropdown/velo-port-dropdown.component.js +3 -3
- package/esm2015/runtime/execution/components/velo-port-radio/velo-port-radio.component.js +1 -1
- package/esm2015/runtime/execution/components/velo-type/velo-type.component.js +2 -2
- package/esm2015/runtime/execution/directives/section-script.directive.js +3 -3
- package/esm2015/runtime/execution/directives/sf-query.directive.js +2 -2
- package/esm2015/runtime/execution/directives/velo-attribute.directive.js +2 -2
- package/esm2015/runtime/execution/directives/velo-port.directive.js +3 -3
- package/esm2015/runtime/execution/directives/vl-approval.directive.js +2 -2
- package/esm2015/runtime/execution/directives/vl-document-attachments.directive.js +2 -2
- package/esm2015/runtime/execution/directives/vl-document-templates.directive.js +2 -2
- package/esm2015/runtime/execution/directives/vl-quote.directive.js +3 -3
- package/esm2015/runtime/execution/directives/vl-ramp.directive.js +3 -3
- package/esm2015/runtime/execution/runtime-execution.module.js +6 -6
- package/esm2015/runtime/runtime.module.js +6 -6
- package/esm2015/runtime/services/cart.service.js +3 -3
- package/esm2015/runtime/services/configuration.service.js +6 -6
- package/esm2015/runtime/services/current-state.service.js +1 -1
- package/esm2015/runtime/services/product-model-cache.service.js +2 -2
- package/esm2015/runtime/services/runtime-context.service.js +5 -5
- package/esm2015/runtime/services/runtime-form.service.js +2 -2
- package/esm2015/runtime/services/runtime.service.js +3 -3
- package/esm2015/runtime/services/section-helper.service.js +2 -2
- package/esm2015/runtime/services/section-scope.service.js +1 -1
- package/esm2015/runtime/services/section-store.service.js +1 -1
- package/esm2015/runtime/services/section.service.js +3 -3
- package/esm2015/runtime/types/bound-data.types.js +1 -1
- package/esm2015/runtime/types/runtime.types.js +1 -1
- package/esm2015/runtime/types/script-registry.types.js +2 -2
- package/esm2015/runtime/utils/line-item.util.js +2 -2
- package/esm2015/runtime/utils/section.utils.js +2 -2
- package/esm2015/runtime/utils/sections-binder.helper.js +2 -2
- package/esm2015/runtime/veloce-sdk-runtime.js +5 -0
- package/esm2015/src/components/doc-gen/doc-gen.component.js +8 -8
- package/esm2015/src/components/doc-gen/doc-gen.module.js +2 -2
- package/esm2015/src/components/header/cart-overlay/cart-preview.component.js +3 -3
- package/esm2015/src/components/header/cart-overlay/cart-preview.module.js +2 -2
- package/esm2015/src/components/header/header.component.js +7 -7
- package/esm2015/src/components/header/header.module.js +2 -2
- package/esm2015/src/components/header/metrics/metrics.component.js +15 -19
- package/esm2015/src/components/header/metrics/metrics.definitions.js +6 -6
- package/esm2015/src/components/header/metrics/metrics.module.js +2 -2
- package/esm2015/src/flow.component.js +4 -4
- package/esm2015/src/flow.module.js +5 -5
- package/esm2015/src/guards/context.guard.js +3 -3
- package/esm2015/src/guards/product-unload.guard.js +2 -2
- package/esm2015/src/pages/catalog/catalog.component.js +7 -7
- package/esm2015/src/pages/catalog/catalog.module.js +3 -3
- package/esm2015/src/pages/debug/debug.component.js +3 -3
- package/esm2015/src/pages/empty-account/empty-account.component.js +1 -1
- package/esm2015/src/pages/empty-account/empty-account.module.js +3 -3
- package/esm2015/src/pages/legacy-product/legacy-product.component.js +6 -6
- package/esm2015/src/pages/legacy-product/legacy-product.module.js +2 -2
- package/esm2015/src/pages/product/product.component.js +4 -4
- package/esm2015/src/pages/product/product.module.js +3 -3
- package/esm2015/src/pages/remote/remote.component.js +7 -7
- package/esm2015/src/pages/remote/remote.module.js +3 -3
- package/esm2015/src/pages/remote/remote.types.js +1 -1
- package/esm2015/src/pages/shopping-cart/shopping-cart.component.js +7 -7
- package/esm2015/src/pages/shopping-cart/shopping-cart.module.js +3 -3
- package/esm2015/src/resolvers/flow.resolver.js +3 -3
- package/esm2015/src/resolvers/quote.resolver.js +11 -11
- package/esm2015/src/services/doc-gen.service.js +3 -3
- package/esm2015/src/services/flow-dialog.service.js +2 -2
- package/esm2015/src/services/flow-router.service.js +3 -3
- package/esm2015/src/services/flow.service.js +4 -4
- package/esm2015/src/types/context-route.types.js +1 -1
- package/esm2015/src/types/flow-customization.types.js +1 -1
- package/esm2015/src/utils/flow.utils.js +2 -2
- package/esm2015/veloce-sdk.js +5 -0
- package/fesm2015/{veloceapps-sdk-cms.js → veloce-sdk-cms.js} +17 -15
- package/fesm2015/veloce-sdk-cms.js.map +1 -0
- package/fesm2015/{veloceapps-sdk-core.js → veloce-sdk-core.js} +38 -174
- package/fesm2015/veloce-sdk-core.js.map +1 -0
- package/fesm2015/{veloceapps-sdk-runtime.js → veloce-sdk-runtime.js} +10 -10
- package/fesm2015/veloce-sdk-runtime.js.map +1 -0
- package/fesm2015/{veloceapps-sdk.js → veloce-sdk.js} +32 -36
- package/fesm2015/veloce-sdk.js.map +1 -0
- package/package.json +13 -14
- package/runtime/components/component-preview/component-preview.component.d.ts +1 -1
- package/runtime/components/section-renderer/section-renderer.component.d.ts +1 -1
- package/runtime/components/ui-runtime/runtime.component.d.ts +2 -2
- package/runtime/components/ui-runtime-preview/runtime-preview.component.d.ts +3 -3
- package/runtime/execution/components/children-placeholder/children-placeholder.component.d.ts +1 -1
- package/runtime/execution/components/context-provider/context-provider.component.d.ts +2 -2
- package/runtime/execution/components/execution-section-renderer/execution-section-renderer.component.d.ts +1 -1
- package/runtime/execution/components/federated/federated.component.d.ts +1 -1
- package/runtime/execution/components/velo-port-checkbox/velo-port-checkbox.component.d.ts +1 -1
- package/runtime/execution/components/velo-port-dropdown/velo-port-dropdown.component.d.ts +1 -1
- package/runtime/execution/components/velo-port-radio/velo-port-radio.component.d.ts +1 -1
- package/runtime/execution/components/velo-type/velo-type.component.d.ts +1 -1
- package/runtime/execution/directives/section-script.directive.d.ts +1 -1
- package/runtime/execution/directives/sf-query.directive.d.ts +2 -2
- package/runtime/execution/directives/velo-attribute.directive.d.ts +1 -1
- package/runtime/execution/directives/velo-port.directive.d.ts +1 -1
- package/runtime/execution/directives/vl-approval.directive.d.ts +2 -2
- package/runtime/execution/directives/vl-document-attachments.directive.d.ts +2 -2
- package/runtime/execution/directives/vl-document-templates.directive.d.ts +2 -2
- package/runtime/execution/directives/vl-quote.directive.d.ts +2 -2
- package/runtime/execution/directives/vl-ramp.directive.d.ts +3 -3
- package/runtime/execution/runtime-execution.module.d.ts +5 -5
- package/runtime/package.json +7 -7
- package/runtime/runtime.module.d.ts +5 -5
- package/runtime/services/cart.service.d.ts +3 -3
- package/runtime/services/configuration.service.d.ts +3 -3
- package/runtime/services/current-state.service.d.ts +1 -1
- package/runtime/services/product-model-cache.service.d.ts +2 -2
- package/runtime/services/runtime-context.service.d.ts +2 -2
- package/runtime/services/runtime-form.service.d.ts +1 -1
- package/runtime/services/runtime.service.d.ts +2 -2
- package/runtime/services/section-helper.service.d.ts +1 -1
- package/runtime/services/section-scope.service.d.ts +1 -1
- package/runtime/services/section-store.service.d.ts +1 -1
- package/runtime/services/section.service.d.ts +1 -1
- package/runtime/types/bound-data.types.d.ts +1 -1
- package/runtime/types/runtime.types.d.ts +2 -2
- package/runtime/utils/line-item.util.d.ts +1 -1
- package/runtime/utils/section.utils.d.ts +1 -1
- package/runtime/utils/sections-binder.helper.d.ts +1 -1
- package/{core/veloceapps-sdk-core.d.ts → runtime/veloce-sdk-runtime.d.ts} +1 -1
- package/src/components/doc-gen/doc-gen.component.d.ts +3 -3
- package/src/components/doc-gen/doc-gen.module.d.ts +1 -1
- package/src/components/header/cart-overlay/cart-preview.component.d.ts +1 -1
- package/src/components/header/cart-overlay/cart-preview.module.d.ts +1 -1
- package/src/components/header/header.component.d.ts +4 -4
- package/src/components/header/header.module.d.ts +1 -1
- package/src/components/header/metrics/metrics.component.d.ts +4 -5
- package/src/components/header/metrics/metrics.definitions.d.ts +1 -1
- package/src/components/header/metrics/metrics.module.d.ts +1 -1
- package/src/flow.component.d.ts +2 -2
- package/src/flow.module.d.ts +4 -4
- package/src/guards/context.guard.d.ts +1 -1
- package/src/guards/product-unload.guard.d.ts +1 -1
- package/src/pages/catalog/catalog.component.d.ts +3 -3
- package/src/pages/catalog/catalog.module.d.ts +2 -2
- package/src/pages/debug/debug.component.d.ts +3 -3
- package/src/pages/empty-account/empty-account.module.d.ts +2 -2
- package/src/pages/legacy-product/legacy-product.component.d.ts +4 -4
- package/src/pages/legacy-product/legacy-product.module.d.ts +1 -1
- package/src/pages/product/product.component.d.ts +1 -1
- package/src/pages/product/product.module.d.ts +2 -2
- package/src/pages/remote/remote.component.d.ts +3 -3
- package/src/pages/remote/remote.module.d.ts +2 -2
- package/src/pages/remote/remote.types.d.ts +1 -1
- package/src/pages/shopping-cart/shopping-cart.component.d.ts +3 -3
- package/src/pages/shopping-cart/shopping-cart.module.d.ts +2 -2
- package/src/resolvers/flow.resolver.d.ts +2 -2
- package/src/resolvers/quote.resolver.d.ts +1 -1
- package/src/services/doc-gen.service.d.ts +1 -1
- package/src/services/flow-dialog.service.d.ts +1 -1
- package/src/services/flow-router.service.d.ts +1 -1
- package/src/services/flow.service.d.ts +2 -2
- package/src/types/context-route.types.d.ts +1 -1
- package/src/types/flow-customization.types.d.ts +2 -2
- package/src/utils/flow.utils.d.ts +1 -1
- package/{runtime/veloceapps-sdk-runtime.d.ts → veloce-sdk.d.ts} +1 -1
- package/bundles/veloceapps-sdk-cms.umd.js.map +0 -1
- package/bundles/veloceapps-sdk-core.umd.js.map +0 -1
- package/bundles/veloceapps-sdk-runtime.umd.js.map +0 -1
- package/bundles/veloceapps-sdk.umd.js.map +0 -1
- package/core/services/metric-calculation/metric-calculation.service.d.ts +0 -21
- package/core/services/metric-calculation/metric-calculation.types.d.ts +0 -1
- package/core/services/metric-calculation/metric-calculation.utils.d.ts +0 -5
- package/esm2015/cms/veloceapps-sdk-cms.js +0 -5
- package/esm2015/core/services/metric-calculation/metric-calculation.service.js +0 -74
- package/esm2015/core/services/metric-calculation/metric-calculation.types.js +0 -2
- package/esm2015/core/services/metric-calculation/metric-calculation.utils.js +0 -42
- package/esm2015/core/veloceapps-sdk-core.js +0 -5
- package/esm2015/runtime/veloceapps-sdk-runtime.js +0 -5
- package/esm2015/veloceapps-sdk.js +0 -5
- package/fesm2015/veloceapps-sdk-cms.js.map +0 -1
- package/fesm2015/veloceapps-sdk-core.js.map +0 -1
- package/fesm2015/veloceapps-sdk-runtime.js.map +0 -1
- package/fesm2015/veloceapps-sdk.js.map +0 -1
package/cms/cms.default.d.ts
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
import { ChangeDetectorRef, ElementRef, Injector, OnDestroy, OnInit, ViewContainerRef } from '@angular/core';
|
2
|
-
import { ConfigurationService } from '@
|
2
|
+
import { ConfigurationService } from '@veloce/sdk/core';
|
3
3
|
import { DynamicModuleService } from '../../services/dynamic-module.service';
|
4
4
|
import { ElementContextService } from '../../services/element-context.service';
|
5
5
|
import { IOProviderService } from '../../services/io-provider.service';
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { OnDestroy, OnInit } from '@angular/core';
|
2
|
-
import { ConfigurationRuntimeService, ConfigurationService, UIDefinition } from '@
|
2
|
+
import { ConfigurationRuntimeService, ConfigurationService, UIDefinition } from '@veloce/sdk/core';
|
3
3
|
import { MessageService } from 'primeng/api';
|
4
4
|
import { BehaviorSubject } from 'rxjs';
|
5
5
|
import { IntegrationState } from '../../services';
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import * as i0 from "@angular/core";
|
2
2
|
import * as i1 from "./preview.component";
|
3
3
|
import * as i2 from "@angular/common";
|
4
|
-
import * as i3 from "@
|
4
|
+
import * as i3 from "@veloce/components";
|
5
5
|
import * as i4 from "../element-renderer/element-renderer.module";
|
6
6
|
import * as i5 from "../element-children/element-children.module";
|
7
7
|
export declare class PreviewModule {
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { InjectionToken } from '@angular/core';
|
2
|
-
import { UIDefinitionMetadata } from '@
|
2
|
+
import { UIDefinitionMetadata } from '@veloce/sdk/core';
|
3
3
|
import { Dictionary } from 'lodash';
|
4
4
|
import { Plugin } from './engine/models/plugin';
|
5
5
|
import { ElementConfig, ElementMetadata } from './types/common.types';
|
package/cms/launcher.module.d.ts
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
import * as i0 from "@angular/core";
|
2
2
|
import * as i1 from "@angular/common";
|
3
|
-
import * as i2 from "@
|
4
|
-
import * as i3 from "@
|
5
|
-
import * as i4 from "@
|
3
|
+
import * as i2 from "@veloce/core";
|
4
|
+
import * as i3 from "@veloce/api";
|
5
|
+
import * as i4 from "@veloce/sdk/core";
|
6
6
|
export declare class LauncherModule {
|
7
7
|
static ɵfac: i0.ɵɵFactoryDeclaration<LauncherModule, never>;
|
8
8
|
static ɵmod: i0.ɵɵNgModuleDeclaration<LauncherModule, never, [typeof i1.CommonModule, typeof i2.CoreModule, typeof i3.ApiModule, typeof i4.SdkCoreModule], never>;
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import * as i0 from "@angular/core";
|
2
2
|
import * as i1 from "./federated.component";
|
3
3
|
import * as i2 from "@angular/common";
|
4
|
-
import * as i3 from "@
|
4
|
+
import * as i3 from "@veloce/components";
|
5
5
|
export declare class FederatedModule {
|
6
6
|
static ɵfac: i0.ɵɵFactoryDeclaration<FederatedModule, never>;
|
7
7
|
static ɵmod: i0.ɵɵNgModuleDeclaration<FederatedModule, [typeof i1.FederatedComponent], [typeof i2.CommonModule, typeof i3.LoaderModule], [typeof i1.FederatedComponent]>;
|
package/cms/package.json
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
{
|
2
|
-
"name": "@
|
2
|
+
"name": "@veloce/sdk/cms",
|
3
3
|
"sideEffects": false,
|
4
|
-
"main": "../bundles/
|
5
|
-
"module": "../fesm2015/
|
6
|
-
"es2015": "../fesm2015/
|
7
|
-
"esm2015": "../esm2015/cms/
|
8
|
-
"fesm2015": "../fesm2015/
|
9
|
-
"typings": "
|
4
|
+
"main": "../bundles/veloce-sdk-cms.umd.js",
|
5
|
+
"module": "../fesm2015/veloce-sdk-cms.js",
|
6
|
+
"es2015": "../fesm2015/veloce-sdk-cms.js",
|
7
|
+
"esm2015": "../esm2015/cms/veloce-sdk-cms.js",
|
8
|
+
"fesm2015": "../fesm2015/veloce-sdk-cms.js",
|
9
|
+
"typings": "veloce-sdk-cms.d.ts"
|
10
10
|
}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { Compiler } from '@angular/core';
|
2
|
-
import { UIDefinitionMetadata } from '@
|
2
|
+
import { UIDefinitionMetadata } from '@veloce/sdk/core';
|
3
3
|
import { Observable } from 'rxjs';
|
4
4
|
import { CompilationResult, ElementMetadata } from '../types';
|
5
5
|
import { DynamicModuleService } from './dynamic-module.service';
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { UIElement } from '@
|
1
|
+
import { UIElement } from '@veloce/sdk/core';
|
2
2
|
import { ElementConfig, ElementDefaultMetadata, ElementMetadata, ELEMENT_TYPE } from '../types';
|
3
3
|
export declare class UiBuildError extends Error {
|
4
4
|
affectedMetadata: ElementMetadata;
|
package/cms/vendor-map.d.ts
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
import * as angularCore from '@angular/core';
|
2
2
|
import * as angularForms from '@angular/forms';
|
3
|
-
import { CatalogApiService, DeltaApiService, DocumentAttachmentApiService, DocumentTemplatesApiService, PicklistsApiService, PriceApiService, QuoteApiService, RampApiService, SalesforceApiService } from '@
|
4
|
-
import { ConfigurationService, FlowConfigurationService, LineItemWorker, ProductImagesService, QuoteDraftService } from '@
|
3
|
+
import { CatalogApiService, DeltaApiService, DocumentAttachmentApiService, DocumentTemplatesApiService, PicklistsApiService, PriceApiService, QuoteApiService, RampApiService, SalesforceApiService } from '@veloce/api';
|
4
|
+
import { ConfigurationService, FlowConfigurationService, LineItemWorker, ProductImagesService, QuoteDraftService } from '@veloce/sdk/core';
|
5
5
|
import * as lodash from 'lodash';
|
6
6
|
import * as rxjs from 'rxjs';
|
7
7
|
import * as rxjsOperators from 'rxjs/operators';
|
@@ -9,6 +9,74 @@ import * as cmsActions from './cms.actions';
|
|
9
9
|
import { IntegrationState } from './services/integration.state';
|
10
10
|
import { TemplatesService } from './services/templates.service';
|
11
11
|
export declare const vendorMap: {
|
12
|
+
'@veloce/sdk/core': {
|
13
|
+
findLineItem: (id: string, lineItems: import("@veloce/core").LineItem[]) => import("@veloce/core").LineItem | undefined;
|
14
|
+
findLineItemWithComparator: (lineItems: import("@veloce/core").LineItem[], comparator: (li: import("@veloce/core").LineItem) => boolean) => import("@veloce/core").LineItem | undefined;
|
15
|
+
insertLineItem: (lineItem: import("@veloce/core").LineItem, parentId: string, toInsert: import("@veloce/core").LineItem) => import("@veloce/core").LineItem;
|
16
|
+
removeLineItem: (lineItem: import("@veloce/core").LineItem, idToRemove: string) => import("@veloce/core").LineItem;
|
17
|
+
replaceLineItem: (lineItem: import("@veloce/core").LineItem, replaceTo: import("@veloce/core").LineItem) => import("@veloce/core").LineItem;
|
18
|
+
mapAttributes: (attributes: import("@veloce/core").Attribute[]) => lodash.Dictionary<any>;
|
19
|
+
getAttributes: (attributes: import("@veloce/core").Attribute[], names?: string[] | undefined) => import("@veloce/core").Attribute[];
|
20
|
+
upsertAttributes: (originalAttributes: import("@veloce/core").Attribute[], attributesToUpsert: {
|
21
|
+
name: string;
|
22
|
+
value: any;
|
23
|
+
}[]) => import("@veloce/core").Attribute[];
|
24
|
+
patchAttributes: (rootLineItem: import("@veloce/core").LineItem, id: string, attrs: {
|
25
|
+
name: string;
|
26
|
+
value: any;
|
27
|
+
}[]) => import("@veloce/core").LineItem;
|
28
|
+
getAttributeValue: (attributes: import("@veloce/core").Attribute[], name: string) => any;
|
29
|
+
generateLineItem: (port: string, type: string, parentId: string, attributes?: {
|
30
|
+
name: string;
|
31
|
+
value: any;
|
32
|
+
}[] | undefined, lineItems?: import("@veloce/core").LineItem[] | undefined) => import("@veloce/core").LineItem;
|
33
|
+
getRecommendedPrices: (portDomain: import("@veloce/core").PortDomain, type: string) => {
|
34
|
+
net: number;
|
35
|
+
list: number;
|
36
|
+
};
|
37
|
+
ConfigurationService: typeof ConfigurationService;
|
38
|
+
QuoteDraftService: typeof QuoteDraftService;
|
39
|
+
FlowConfigurationService: typeof FlowConfigurationService;
|
40
|
+
LineItemWorker: typeof LineItemWorker;
|
41
|
+
ProductImagesService: typeof ProductImagesService;
|
42
|
+
};
|
43
|
+
'@veloce/sdk/cms': {
|
44
|
+
TemplatesService: typeof TemplatesService;
|
45
|
+
IntegrationState: typeof IntegrationState;
|
46
|
+
FlowAction: typeof cmsActions.FlowAction;
|
47
|
+
ConfigureProductAction: ({ lineItemId, productId, }: {
|
48
|
+
lineItemId?: string | undefined;
|
49
|
+
productId?: string | undefined;
|
50
|
+
}) => import("@veloce/sdk/cms").IntegrationAction<any>;
|
51
|
+
NavigateBackAction: () => import("@veloce/sdk/cms").IntegrationAction<any>;
|
52
|
+
NavigateToCatalogAction: () => import("@veloce/sdk/cms").IntegrationAction<any>;
|
53
|
+
ApplyProductConfigurationAction: () => import("@veloce/sdk/cms").IntegrationAction<any>;
|
54
|
+
OpenDocGenAction: () => import("@veloce/sdk/cms").IntegrationAction<any>;
|
55
|
+
CloseDocGenAction: () => import("@veloce/sdk/cms").IntegrationAction<any>;
|
56
|
+
RemoteApplyAction: () => import("@veloce/sdk/cms").IntegrationAction<any>;
|
57
|
+
RemoteCancelAction: () => import("@veloce/sdk/cms").IntegrationAction<any>;
|
58
|
+
SwitchObjectAction: (payload: {
|
59
|
+
id: string;
|
60
|
+
}) => import("@veloce/sdk/cms").IntegrationAction<any>;
|
61
|
+
SetDefaultMetrics: (metrics: import("@veloce/sdk/cms").Metric[]) => import("@veloce/sdk/cms").IntegrationAction<any>;
|
62
|
+
DEFAULT_PLUGINS_TOKEN: angularCore.InjectionToken<typeof import("./engine/models/plugin").Plugin[]>;
|
63
|
+
UI_DEFINITION_METADATA: angularCore.InjectionToken<import("@veloce/sdk/core").UIDefinitionMetadata>;
|
64
|
+
ELEMENT_METADATA: angularCore.InjectionToken<import("@veloce/sdk/cms").ElementMetadata>;
|
65
|
+
SHARED_ELEMENT_METADATA: angularCore.InjectionToken<import("@veloce/sdk/cms").ElementMetadata>;
|
66
|
+
ELEMENT_CONFIG: angularCore.InjectionToken<import("@veloce/sdk/cms").ElementConfig>;
|
67
|
+
VENDOR_MAP: angularCore.InjectionToken<lodash.Dictionary<any>>;
|
68
|
+
};
|
69
|
+
'@veloce/api': {
|
70
|
+
SalesforceApiService: typeof SalesforceApiService;
|
71
|
+
QuoteApiService: typeof QuoteApiService;
|
72
|
+
DocumentTemplatesApiService: typeof DocumentTemplatesApiService;
|
73
|
+
DocumentAttachmentApiService: typeof DocumentAttachmentApiService;
|
74
|
+
RampApiService: typeof RampApiService;
|
75
|
+
CatalogApiService: typeof CatalogApiService;
|
76
|
+
DeltaApiService: typeof DeltaApiService;
|
77
|
+
PicklistsApiService: typeof PicklistsApiService;
|
78
|
+
PriceApiService: typeof PriceApiService;
|
79
|
+
};
|
12
80
|
'@angular/core': typeof angularCore;
|
13
81
|
'@angular/forms': typeof angularForms;
|
14
82
|
rxjs: typeof rxjs;
|
@@ -636,74 +704,5 @@ export declare const vendorMap: {
|
|
636
704
|
toPath(value: any): string[];
|
637
705
|
uniqueId(prefix?: string | undefined): string;
|
638
706
|
};
|
639
|
-
'@veloceapps/sdk/core': {
|
640
|
-
findLineItem: (id: string, lineItems: import("@veloceapps/core").LineItem[]) => import("@veloceapps/core").LineItem | undefined;
|
641
|
-
findLineItemWithComparator: (lineItems: import("@veloceapps/core").LineItem[], comparator: (li: import("@veloceapps/core").LineItem) => boolean) => import("@veloceapps/core").LineItem | undefined;
|
642
|
-
insertLineItem: (lineItem: import("@veloceapps/core").LineItem, parentId: string, toInsert: import("@veloceapps/core").LineItem) => import("@veloceapps/core").LineItem;
|
643
|
-
removeLineItem: (lineItem: import("@veloceapps/core").LineItem, idToRemove: string) => import("@veloceapps/core").LineItem;
|
644
|
-
replaceLineItem: (lineItem: import("@veloceapps/core").LineItem, replaceTo: import("@veloceapps/core").LineItem) => import("@veloceapps/core").LineItem;
|
645
|
-
mapAttributes: (attributes: import("@veloceapps/core").Attribute[]) => lodash.Dictionary<any>;
|
646
|
-
getAttributes: (attributes: import("@veloceapps/core").Attribute[], names?: string[] | undefined) => import("@veloceapps/core").Attribute[];
|
647
|
-
upsertAttributes: (originalAttributes: import("@veloceapps/core").Attribute[], attributesToUpsert: {
|
648
|
-
name: string;
|
649
|
-
value: any;
|
650
|
-
}[]) => import("@veloceapps/core").Attribute[];
|
651
|
-
patchAttributes: (rootLineItem: import("@veloceapps/core").LineItem, id: string, attrs: {
|
652
|
-
name: string;
|
653
|
-
value: any;
|
654
|
-
}[]) => import("@veloceapps/core").LineItem;
|
655
|
-
getAttributeValue: (attributes: import("@veloceapps/core").Attribute[], name: string) => any;
|
656
|
-
generateLineItem: (port: string, type: string, parentId: string, attributes?: {
|
657
|
-
name: string;
|
658
|
-
value: any;
|
659
|
-
}[] | undefined, lineItems?: import("@veloceapps/core").LineItem[] | undefined) => import("@veloceapps/core").LineItem;
|
660
|
-
getRecommendedPrices: (portDomain: import("@veloceapps/core").PortDomain, type: string) => {
|
661
|
-
net: number;
|
662
|
-
list: number;
|
663
|
-
};
|
664
|
-
multiplyLineItems: (lineItem: import("@veloceapps/core").LineItem, qty: number, split: boolean) => import("@veloceapps/core").LineItem[];
|
665
|
-
ConfigurationService: typeof ConfigurationService;
|
666
|
-
QuoteDraftService: typeof QuoteDraftService;
|
667
|
-
FlowConfigurationService: typeof FlowConfigurationService;
|
668
|
-
LineItemWorker: typeof LineItemWorker;
|
669
|
-
ProductImagesService: typeof ProductImagesService;
|
670
|
-
};
|
671
|
-
'@veloceapps/sdk/cms': {
|
672
|
-
TemplatesService: typeof TemplatesService;
|
673
|
-
IntegrationState: typeof IntegrationState;
|
674
|
-
FlowAction: typeof cmsActions.FlowAction;
|
675
|
-
ConfigureProductAction: ({ lineItemId, productId, }: {
|
676
|
-
lineItemId?: string | undefined;
|
677
|
-
productId?: string | undefined;
|
678
|
-
}) => import("@veloceapps/sdk/cms").IntegrationAction<any>;
|
679
|
-
NavigateBackAction: () => import("@veloceapps/sdk/cms").IntegrationAction<any>;
|
680
|
-
NavigateToCatalogAction: () => import("@veloceapps/sdk/cms").IntegrationAction<any>;
|
681
|
-
ApplyProductConfigurationAction: () => import("@veloceapps/sdk/cms").IntegrationAction<any>;
|
682
|
-
OpenDocGenAction: () => import("@veloceapps/sdk/cms").IntegrationAction<any>;
|
683
|
-
CloseDocGenAction: () => import("@veloceapps/sdk/cms").IntegrationAction<any>;
|
684
|
-
RemoteApplyAction: () => import("@veloceapps/sdk/cms").IntegrationAction<any>;
|
685
|
-
RemoteCancelAction: () => import("@veloceapps/sdk/cms").IntegrationAction<any>;
|
686
|
-
SwitchObjectAction: (payload: {
|
687
|
-
id: string;
|
688
|
-
}) => import("@veloceapps/sdk/cms").IntegrationAction<any>;
|
689
|
-
SetDefaultMetrics: (metrics: import("@veloceapps/sdk/cms").Metric[]) => import("@veloceapps/sdk/cms").IntegrationAction<any>;
|
690
|
-
DEFAULT_PLUGINS_TOKEN: angularCore.InjectionToken<typeof import("./engine/models/plugin").Plugin[]>;
|
691
|
-
UI_DEFINITION_METADATA: angularCore.InjectionToken<import("@veloceapps/sdk/core").UIDefinitionMetadata>;
|
692
|
-
ELEMENT_METADATA: angularCore.InjectionToken<import("@veloceapps/sdk/cms").ElementMetadata>;
|
693
|
-
SHARED_ELEMENT_METADATA: angularCore.InjectionToken<import("@veloceapps/sdk/cms").ElementMetadata>;
|
694
|
-
ELEMENT_CONFIG: angularCore.InjectionToken<import("@veloceapps/sdk/cms").ElementConfig>;
|
695
|
-
VENDOR_MAP: angularCore.InjectionToken<lodash.Dictionary<any>>;
|
696
|
-
};
|
697
|
-
'@veloceapps/api': {
|
698
|
-
SalesforceApiService: typeof SalesforceApiService;
|
699
|
-
QuoteApiService: typeof QuoteApiService;
|
700
|
-
DocumentTemplatesApiService: typeof DocumentTemplatesApiService;
|
701
|
-
DocumentAttachmentApiService: typeof DocumentAttachmentApiService;
|
702
|
-
RampApiService: typeof RampApiService;
|
703
|
-
CatalogApiService: typeof CatalogApiService;
|
704
|
-
DeltaApiService: typeof DeltaApiService;
|
705
|
-
PicklistsApiService: typeof PicklistsApiService;
|
706
|
-
PriceApiService: typeof PriceApiService;
|
707
|
-
};
|
708
707
|
};
|
709
708
|
export declare type VendorMap = typeof vendorMap;
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import * as i0 from "@angular/core";
|
2
|
-
import * as i1 from "@
|
2
|
+
import * as i1 from "@veloce/components";
|
3
3
|
export declare class ConfigurationModule {
|
4
4
|
static ɵfac: i0.ɵɵFactoryDeclaration<ConfigurationModule, never>;
|
5
5
|
static ɵmod: i0.ɵɵNgModuleDeclaration<ConfigurationModule, never, [typeof i1.ConfirmationDialogModule], never>;
|
@@ -1,3 +1,3 @@
|
|
1
|
-
import { LineItem } from '@
|
1
|
+
import { LineItem } from '@veloce/core';
|
2
2
|
import { RuntimeContext, UIDefinitionProps } from '../../types';
|
3
3
|
export declare const getDefaultLineItem: (context: RuntimeContext, uiDefinitionProperties: UIDefinitionProps, qty?: number) => LineItem;
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import { ConfigurationApiService } from '@
|
2
|
-
import { LineItem, RuntimeModel } from '@
|
1
|
+
import { ConfigurationApiService } from '@veloce/api';
|
2
|
+
import { LineItem, RuntimeModel } from '@veloce/core';
|
3
3
|
import { Observable } from 'rxjs';
|
4
4
|
import { ContextService } from '../../../services';
|
5
5
|
import { RuntimeContext, UIDefinition, UIDefinitionProps } from '../../../types';
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import { ConfigurationApiService } from '@
|
2
|
-
import { Charge, CompiledPricePlan, ConfigurationContext, LineItem, RuntimeModel } from '@
|
1
|
+
import { ConfigurationApiService } from '@veloce/api';
|
2
|
+
import { Charge, CompiledPricePlan, ConfigurationContext, LineItem, RuntimeModel } from '@veloce/core';
|
3
3
|
import { Dictionary } from 'lodash';
|
4
4
|
import { MessageService } from 'primeng/api';
|
5
5
|
import { DialogService } from 'primeng/dynamicdialog';
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import { ProceduresApiService } from '@
|
2
|
-
import { Charge, CompiledPricePlan, ConfigurationContext, LineItem, QuoteDraft } from '@
|
1
|
+
import { ProceduresApiService } from '@veloce/api';
|
2
|
+
import { Charge, CompiledPricePlan, ConfigurationContext, LineItem, QuoteDraft } from '@veloce/core';
|
3
3
|
import { Dictionary } from 'lodash';
|
4
4
|
import { Observable } from 'rxjs';
|
5
5
|
import { ContextService, QuoteDraftService } from '../../../services';
|
package/core/package.json
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
{
|
2
|
-
"name": "@
|
2
|
+
"name": "@veloce/sdk/core",
|
3
3
|
"sideEffects": false,
|
4
|
-
"main": "../bundles/
|
5
|
-
"module": "../fesm2015/
|
6
|
-
"es2015": "../fesm2015/
|
7
|
-
"esm2015": "../esm2015/core/
|
8
|
-
"fesm2015": "../fesm2015/
|
9
|
-
"typings": "
|
4
|
+
"main": "../bundles/veloce-sdk-core.umd.js",
|
5
|
+
"module": "../fesm2015/veloce-sdk-core.js",
|
6
|
+
"es2015": "../fesm2015/veloce-sdk-core.js",
|
7
|
+
"esm2015": "../esm2015/core/veloce-sdk-core.js",
|
8
|
+
"fesm2015": "../fesm2015/veloce-sdk-core.js",
|
9
|
+
"typings": "veloce-sdk-core.d.ts"
|
10
10
|
}
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import { ContextApiService } from '@
|
2
|
-
import { ConfigurationContext, ConfigurationContextMode } from '@
|
1
|
+
import { ContextApiService } from '@veloce/api';
|
2
|
+
import { ConfigurationContext, ConfigurationContextMode } from '@veloce/core';
|
3
3
|
import { Observable } from 'rxjs';
|
4
4
|
import * as i0 from "@angular/core";
|
5
5
|
export declare class ContextService {
|
package/core/services/index.d.ts
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
import { PriceApiService, QuoteApiService } from '@
|
2
|
-
import { LineItem, PriceList, PriceSummary, QuoteDraft } from '@
|
1
|
+
import { PriceApiService, QuoteApiService } from '@veloce/api';
|
2
|
+
import { LineItem, PriceList, PriceSummary, QuoteDraft } from '@veloce/core';
|
3
3
|
import { Dictionary } from 'lodash';
|
4
4
|
import { Observable } from 'rxjs';
|
5
5
|
import { ContextService } from './context.service';
|
@@ -12,15 +12,13 @@ export declare class QuoteDraftService {
|
|
12
12
|
private resetSubj$;
|
13
13
|
private isInitializedSubj$;
|
14
14
|
private initialCurrentState;
|
15
|
-
private _hasUnsavedChanges;
|
16
15
|
get isInitialized(): boolean;
|
17
16
|
set isInitialized(value: boolean);
|
18
|
-
get hasUnsavedChanges(): boolean;
|
19
|
-
set hasUnsavedChanges(value: boolean);
|
20
17
|
get hasAssets$(): Observable<boolean>;
|
21
18
|
get hasAssets(): boolean;
|
22
19
|
allPriceLists: PriceList[];
|
23
20
|
assetPriceLists: PriceList[];
|
21
|
+
hasUnsavedChanges: boolean;
|
24
22
|
reset$: Observable<boolean>;
|
25
23
|
activePriceList$: Observable<PriceList | null>;
|
26
24
|
constructor(context: ContextService, quoteApiService: QuoteApiService, priceApiService: PriceApiService);
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { Attribute, LineItem, PortDomain } from '@
|
1
|
+
import { Attribute, LineItem, PortDomain } from '@veloce/core';
|
2
2
|
import { Dictionary } from 'lodash';
|
3
3
|
export declare const findLineItem: (id: string, lineItems: LineItem[]) => LineItem | undefined;
|
4
4
|
export declare const findLineItemWithComparator: (lineItems: LineItem[], comparator: (li: LineItem) => boolean) => LineItem | undefined;
|
@@ -24,4 +24,3 @@ export declare const getRecommendedPrices: (portDomain: PortDomain, type: string
|
|
24
24
|
net: number;
|
25
25
|
list: number;
|
26
26
|
};
|
27
|
-
export declare const multiplyLineItems: (lineItem: LineItem, qty: number, split: boolean) => LineItem[];
|
@@ -3,4 +3,4 @@ export const DEFAULT_PLUGINS = {
|
|
3
3
|
CONFIGURATION: [ConfigurationPlugin],
|
4
4
|
DEFAULT: [],
|
5
5
|
};
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21zLmRlZmF1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvY21zLmRlZmF1bHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFckUsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFtRDtJQUM3RSxhQUFhLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztJQUNwQyxPQUFPLEVBQUUsRUFBRTtDQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVSURlZmluaXRpb25UeXBlIH0gZnJvbSAnQHZlbG9jZS9zZGsvY29yZSc7XG5pbXBvcnQgeyBQbHVnaW4gfSBmcm9tICcuL2VuZ2luZS9tb2RlbHMvcGx1Z2luJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25QbHVnaW4gfSBmcm9tICcuL3BsdWdpbnMvY29uZmlndXJhdGlvbi5wbHVnaW4nO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9QTFVHSU5TOiB7IFtrZXkgaW4gVUlEZWZpbml0aW9uVHlwZV06IHR5cGVvZiBQbHVnaW5bXSB9ID0ge1xuICBDT05GSUdVUkFUSU9OOiBbQ29uZmlndXJhdGlvblBsdWdpbl0sXG4gIERFRkFVTFQ6IFtdLFxufTtcbiJdfQ==
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { ChangeDetectionStrategy, Component, Input, SkipSelf, ViewChild, ViewContainerRef, } from '@angular/core';
|
2
|
-
import { UUID } from '@
|
2
|
+
import { UUID } from '@veloce/core';
|
3
3
|
import { isArray, pull } from 'lodash';
|
4
4
|
import { map, Subject, takeUntil } from 'rxjs';
|
5
5
|
import { ElementContextService } from '../../services/element-context.service';
|
@@ -8,7 +8,7 @@ import * as i0 from "@angular/core";
|
|
8
8
|
import * as i1 from "../../services/dynamic-module.service";
|
9
9
|
import * as i2 from "../../services/element-context.service";
|
10
10
|
import * as i3 from "../../services/io-provider.service";
|
11
|
-
import * as i4 from "@
|
11
|
+
import * as i4 from "@veloce/sdk/core";
|
12
12
|
export class ElementRendererComponent {
|
13
13
|
constructor(parentInjector, dynamicModuleService, elementContext, ioProviderService, configurationService, elementRef, cdr) {
|
14
14
|
this.parentInjector = parentInjector;
|
@@ -166,4 +166,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImpo
|
|
166
166
|
}], meta: [{
|
167
167
|
type: Input
|
168
168
|
}] } });
|
169
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1yZW5kZXJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvY29tcG9uZW50cy9lbGVtZW50LXJlbmRlcmVyL2VsZW1lbnQtcmVuZGVyZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY21zL2NvbXBvbmVudHMvZWxlbWVudC1yZW5kZXJlci9lbGVtZW50LXJlbmRlcmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUtULEtBQUssRUFHTCxRQUFRLEVBQ1IsU0FBUyxFQUNULGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQVksSUFBSSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFbEQsT0FBTyxFQUFjLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDbkQsT0FBTyxFQUFFLEdBQUcsRUFBYyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRy9FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7O0FBU3hELE1BQU0sT0FBTyx3QkFBd0I7SUFTbkMsWUFDc0IsY0FBd0IsRUFDcEMsb0JBQTBDLEVBQzFDLGNBQXFDLEVBQ3JDLGlCQUFvQyxFQUNwQyxvQkFBMEMsRUFDMUMsVUFBc0IsRUFDdEIsR0FBc0I7UUFOVixtQkFBYyxHQUFkLGNBQWMsQ0FBVTtRQUNwQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUNyQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FB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ImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb21wb25lbnRGYWN0b3J5LFxuICBDb21wb25lbnRSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFNraXBTZWxmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTGluZUl0ZW0sIFVVSUQgfSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZWFwcHMvc2RrL2NvcmUnO1xuaW1wb3J0IHsgRGljdGlvbmFyeSwgaXNBcnJheSwgcHVsbCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRHluYW1pY01vZHVsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9keW5hbWljLW1vZHVsZS5zZXJ2aWNlJztcbmltcG9ydCB7IEVsZW1lbnRDb250ZXh0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2VsZW1lbnQtY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7IElPUHJvdmlkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaW8tcHJvdmlkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBFbGVtZW50TWV0YWRhdGEgfSBmcm9tICcuLi8uLi90eXBlcy9jb21tb24udHlwZXMnO1xuaW1wb3J0IHsgcGFyc2VCb3VuZFBhdGggfSBmcm9tICcuLi8uLi91dGlscy9wYXRoLnV0aWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmwtY21zLWVsZW1lbnQtcmVuZGVyZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZWxlbWVudC1yZW5kZXJlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VsZW1lbnQtcmVuZGVyZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW0VsZW1lbnRDb250ZXh0U2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIEVsZW1lbnRSZW5kZXJlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZCgnZWwnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZSB9KSBwdWJsaWMgZWw/OiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBtZXRhITogRWxlbWVudE1ldGFkYXRhO1xuXG4gIHByaXZhdGUgZmFjdG9yeT86IENvbXBvbmVudEZhY3Rvcnk8YW55PjtcbiAgcHJpdmF0ZSByZWZzOiBEaWN0aW9uYXJ5PENvbXBvbmVudFJlZjxhbnk+IHwgdW5kZWZpbmVkPiA9IHt9O1xuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAU2tpcFNlbGYoKSBwcml2YXRlIHBhcmVudEluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIGR5bmFtaWNNb2R1bGVTZXJ2aWNlOiBEeW5hbWljTW9kdWxlU2VydmljZSxcbiAgICBwcml2YXRlIGVsZW1lbnRDb250ZXh0OiBFbGVtZW50Q29udGV4dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpb1Byb3ZpZGVyU2VydmljZTogSU9Qcm92aWRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb25maWd1cmF0aW9uU2VydmljZTogQ29uZmlndXJhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmVsZW1lbnRDb250ZXh0Lm1ldGFkYXRhID0gdGhpcy5tZXRhO1xuICAgIHRoaXMuZmFjdG9yeSA9IHRoaXMuZHluYW1pY01vZHVsZVNlcnZpY2UuZ2V0Q29tcG9uZW50RmFjdG9yeSh0aGlzLm1ldGEpO1xuXG4gICAgdGhpcy5jcmVhdGVDb21wb25lbnRzKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95Q29tcG9uZW50cygpO1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ29tcG9uZW50cygpOiB2b2lkIHtcbiAgICBjb25zdCBtb2RlbE1ldGEgPSB0aGlzLm1ldGEubW9kZWw7XG5cbiAgICBpZiAoIW1vZGVsTWV0YSkge1xuICAgICAgdGhpcy5yZWZzW1VVSUQuVVVJRCgpXSA9IHRoaXMuY3JlYXRlQ29tcG9uZW50KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKG1vZGVsTWV0YS5saW5lSXRlbSkge1xuICAgICAgdGhpcy5jcmVhdGVGcm9tTGluZUl0ZW0obW9kZWxNZXRhLmxpbmVJdGVtKTtcbiAgICB9IGVsc2UgaWYgKG1vZGVsTWV0YS5wYXRoKSB7XG4gICAgICB0aGlzLmNyZWF0ZUZyb21QYXRoKG1vZGVsTWV0YS5wYXRoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUZyb21QYXRoKHBhdGg6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGFycmF5JCA9IHRoaXMuaW9Qcm92aWRlclNlcnZpY2UuY29ubmVjdCh0aGlzLm1ldGEsICdjaGlsZHJlbiQnLCBwYXRoKTtcblxuICAgIGFycmF5JD8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZShjaGlsZHJlbiA9PiB7XG4gICAgICBpZiAoIWlzQXJyYXkoY2hpbGRyZW4pKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5wcm9jZXNzQ2hpbGRyZW4oY2hpbGRyZW4pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRNb2RlbENvbXBvbmVudCgpOiBFbGVtZW50UmVuZGVyZXJDb21wb25lbnQgfCBudWxsIHtcbiAgICBsZXQgY29tcG9uZW50OiBFbGVtZW50UmVuZGVyZXJDb21wb25lbnQgfCBudWxsID0gbnVsbDtcbiAgICBsZXQgaW5qZWN0b3IgPSB0aGlzLnBhcmVudEluamVjdG9yO1xuXG4gICAgd2hpbGUgKCFjb21wb25lbnQpIHtcbiAgICAgIGNvbnN0IHBhcmVudENvbXAgPSBpbmplY3Rvci5nZXQoRWxlbWVudFJlbmRlcmVyQ29tcG9uZW50LCBudWxsKTtcblxuICAgICAgaWYgKHBhcmVudENvbXA/Lm1ldGEubW9kZWwpIHtcbiAgICAgICAgY29tcG9uZW50ID0gcGFyZW50Q29tcDtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGlmIChwYXJlbnRDb21wKSB7XG4gICAgICAgIGluamVjdG9yID0gcGFyZW50Q29tcC5wYXJlbnRJbmplY3RvcjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjb21wb25lbnQ7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUZyb21MaW5lSXRlbShwYXRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBwYXJlbnRDb21wID0gdGhpcy5nZXRNb2RlbENvbXBvbmVudCgpO1xuICAgIGNvbnN0IHBhcmVudFBhdGggPSBwYXJlbnRDb21wPy5tZXRhLm1vZGVsPy5saW5lSXRlbTtcblxuICAgIGNvbnN0IHBhdGhCbG9ja3MgPSBwYXJzZUJvdW5kUGF0aChwYXRoKS5yZXZlcnNlKCk7XG4gICAgY29uc3QgeyBwcm9wZXJ0eSwgbmFtZSB9ID0gcGF0aEJsb2Nrc1sxXSA/PyB7fTtcbiAgICBjb25zdCBmaW5hbFBhdGggPSBwYXRoQmxvY2tzWzBdO1xuXG4gICAgY29uc3QgY2hpbGRyZW4kID0gdGhpcy5nZXRQYXJlbnRMaW5lSXRlbSQocGFyZW50Q29tcCkucGlwZShcbiAgICAgIG1hcChtb2RlbCA9PiB7XG4gICAgICAgIGlmICghbW9kZWwpIHtcbiAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocHJvcGVydHkgPT09ICdwb3J0cycgJiYgIWZpbmFsUGF0aC5wcm9wZXJ0eSAmJiBwYXJlbnRQYXRoICE9PSBwYXRoKSB7XG4gICAgICAgICAgcmV0dXJuIG1vZGVsLmxpbmVJdGVtcy5maWx0ZXIoKHsgcG9ydCB9KSA9PiBwb3J0ID09PSBuYW1lKSA/PyBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBbbW9kZWxdO1xuICAgICAgfSksXG4gICAgKTtcblxuICAgIGNoaWxkcmVuJC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKGNoaWxkcmVuID0+IHtcbiAgICAgIHRoaXMucHJvY2Vzc0NoaWxkcmVuKGNoaWxkcmVuKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcHJvY2Vzc0NoaWxkcmVuKGNoaWxkcmVuOiBhbnlbXSk6IHZvaWQge1xuICAgIGNvbnN0IHJlZnMgPSBjaGlsZHJlbi5yZWR1Y2UoKGFjYywgZGF0YSwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IGtleSA9IFN0cmluZyhkYXRhPy5pZCA/PyBVVUlELlVVSUQoKSk7XG4gICAgICBjb25zdCBleGlzdGluZ1JlZiA9IHRoaXMucmVmc1trZXldO1xuXG4gICAgICBjb25zdCByZWYgPSBleGlzdGluZ1JlZiA/PyB0aGlzLmNyZWF0ZUNvbXBvbmVudChkYXRhLCBpbmRleCk7XG4gICAgICBpZiAoZXhpc3RpbmdSZWYpIHtcbiAgICAgICAgdGhpcy51cGRhdGVDb21wb25lbnQoZXhpc3RpbmdSZWYsIGRhdGEsIGluZGV4KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlZiA/IHsgLi4uYWNjLCBba2V5XTogcmVmIH0gOiBhY2M7XG4gICAgfSwge30gYXMgRGljdGlvbmFyeTxDb21wb25lbnRSZWY8YW55Pj4pO1xuXG4gICAgY29uc3QgZXhpc3RpbmdLZXlzID0gT2JqZWN0LmtleXModGhpcy5yZWZzKTtcbiAgICBjb25zdCBuZXdLZXlzID0gT2JqZWN0LmtleXMocmVmcyk7XG5cbiAgICBwdWxsKGV4aXN0aW5nS2V5cywgLi4ubmV3S2V5cykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgdGhpcy5kZXN0cm95Q29tcG9uZW50KGtleSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnJlZnMgPSByZWZzO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UGFyZW50TGluZUl0ZW0kKHBhcmVudENvbXA6IEVsZW1lbnRSZW5kZXJlckNvbXBvbmVudCB8IG51bGwpOiBPYnNlcnZhYmxlPExpbmVJdGVtIHwgdW5kZWZpbmVkPiB7XG4gICAgY29uc3QgcGFyZW50UmVmcyA9IE9iamVjdC52YWx1ZXMocGFyZW50Q29tcD8ucmVmcyA/PyB7fSk7XG4gICAgY29uc3QgcGFyZW50UmVmID0gcGFyZW50UmVmcy5maW5kKHJlZiA9PlxuICAgICAgKHJlZj8ubG9jYXRpb24ubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCk/LmNvbnRhaW5zKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KSxcbiAgICApO1xuXG4gICAgY29uc3QgcGFyZW50TW9kZWwkID0gcGFyZW50UmVmPy5pbnN0YW5jZS5tb2RlbCQ7XG5cbiAgICByZXR1cm4gcGFyZW50TW9kZWwkID8/IHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UuZ2V0KCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUNvbXBvbmVudChkYXRhPzogYW55LCBpbmRleD86IG51bWJlcik6IENvbXBvbmVudFJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXRoaXMuZmFjdG9yeSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuZWw/LmNyZWF0ZUNvbXBvbmVudCh0aGlzLmZhY3RvcnksIGluZGV4KTtcblxuICAgIGlmIChjb21wb25lbnRSZWYpIHtcbiAgICAgIGNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgnbmFtZScsIHRoaXMubWV0YS5uYW1lKTtcbiAgICAgIGNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgncGF0aCcsIHRoaXMubWV0YS5wYXRoKTtcbiAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZT8ubW9kZWwkLm5leHQoZGF0YSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbXBvbmVudFJlZjtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ29tcG9uZW50KHJlZjogQ29tcG9uZW50UmVmPGFueT4sIGRhdGE6IGFueSwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHJlZi5pbnN0YW5jZS5tb2RlbCQubmV4dChkYXRhKTtcblxuICAgIGlmICh0aGlzLmVsICYmIHRoaXMuZWwuaW5kZXhPZihyZWYuaG9zdFZpZXcpICE9PSBpbmRleCkge1xuICAgICAgdGhpcy5lbC5tb3ZlKHJlZi5ob3N0VmlldywgaW5kZXgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZGVzdHJveUNvbXBvbmVudChrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucmVmc1trZXldPy5kZXN0cm95KCk7XG4gICAgZGVsZXRlIHRoaXMucmVmc1trZXldO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXN0cm95Q29tcG9uZW50cygpOiB2b2lkIHtcbiAgICBPYmplY3QudmFsdWVzKHRoaXMucmVmcykuZm9yRWFjaChyZWYgPT4gcmVmPy5kZXN0cm95KCkpO1xuICAgIHRoaXMucmVmcyA9IHt9O1xuICB9XG59XG4iLCI8bmctdGVtcGxhdGUgI2VsPjwvbmctdGVtcGxhdGU+XG4iXX0=
|
169
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1yZW5kZXJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvY29tcG9uZW50cy9lbGVtZW50LXJlbmRlcmVyL2VsZW1lbnQtcmVuZGVyZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY21zL2NvbXBvbmVudHMvZWxlbWVudC1yZW5kZXJlci9lbGVtZW50LXJlbmRlcmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUtULEtBQUssRUFHTCxRQUFRLEVBQ1IsU0FBUyxFQUNULGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQVksSUFBSSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTlDLE9BQU8sRUFBYyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxHQUFHLEVBQWMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUcvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7OztBQVN4RCxNQUFNLE9BQU8sd0JBQXdCO0lBU25DLFlBQ3NCLGNBQXdCLEVBQ3BDLG9CQUEwQyxFQUMxQyxjQUFxQyxFQUNyQyxpQkFBb0MsRUFDcEMsb0JBQTBDLEVBQzFDLFVBQXNCLEVBQ3RCLEdBQXNCO1FBTlYsbUJBQWMsR0FBZCxjQUFjLENBQVU7UUFDcEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyxtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFDckMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNC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bXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29tcG9uZW50RmFjdG9yeSxcbiAgQ29tcG9uZW50UmVmLFxuICBFbGVtZW50UmVmLFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBTa2lwU2VsZixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExpbmVJdGVtLCBVVUlEIH0gZnJvbSAnQHZlbG9jZS9jb3JlJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZS9zZGsvY29yZSc7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5LCBpc0FycmF5LCBwdWxsIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEeW5hbWljTW9kdWxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2R5bmFtaWMtbW9kdWxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRWxlbWVudENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZWxlbWVudC1jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgSU9Qcm92aWRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9pby1wcm92aWRlci5zZXJ2aWNlJztcbmltcG9ydCB7IEVsZW1lbnRNZXRhZGF0YSB9IGZyb20gJy4uLy4uL3R5cGVzL2NvbW1vbi50eXBlcyc7XG5pbXBvcnQgeyBwYXJzZUJvdW5kUGF0aCB9IGZyb20gJy4uLy4uL3V0aWxzL3BhdGgudXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2bC1jbXMtZWxlbWVudC1yZW5kZXJlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9lbGVtZW50LXJlbmRlcmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWxlbWVudC1yZW5kZXJlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbRWxlbWVudENvbnRleHRTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgRWxlbWVudFJlbmRlcmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKCdlbCcsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pIHB1YmxpYyBlbD86IFZpZXdDb250YWluZXJSZWY7XG5cbiAgQElucHV0KCkgcHVibGljIG1ldGEhOiBFbGVtZW50TWV0YWRhdGE7XG5cbiAgcHJpdmF0ZSBmYWN0b3J5PzogQ29tcG9uZW50RmFjdG9yeTxhbnk+O1xuICBwcml2YXRlIHJlZnM6IERpY3Rpb25hcnk8Q29tcG9uZW50UmVmPGFueT4gfCB1bmRlZmluZWQ+ID0ge307XG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBTa2lwU2VsZigpIHByaXZhdGUgcGFyZW50SW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgZHluYW1pY01vZHVsZVNlcnZpY2U6IER5bmFtaWNNb2R1bGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgZWxlbWVudENvbnRleHQ6IEVsZW1lbnRDb250ZXh0U2VydmljZSxcbiAgICBwcml2YXRlIGlvUHJvdmlkZXJTZXJ2aWNlOiBJT1Byb3ZpZGVyU2VydmljZSxcbiAgICBwcml2YXRlIGNvbmZpZ3VyYXRpb25TZXJ2aWNlOiBDb25maWd1cmF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZWxlbWVudENvbnRleHQubWV0YWRhdGEgPSB0aGlzLm1ldGE7XG4gICAgdGhpcy5mYWN0b3J5ID0gdGhpcy5keW5hbWljTW9kdWxlU2VydmljZS5nZXRDb21wb25lbnRGYWN0b3J5KHRoaXMubWV0YSk7XG5cbiAgICB0aGlzLmNyZWF0ZUNvbXBvbmVudHMoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3lDb21wb25lbnRzKCk7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDb21wb25lbnRzKCk6IHZvaWQge1xuICAgIGNvbnN0IG1vZGVsTWV0YSA9IHRoaXMubWV0YS5tb2RlbDtcblxuICAgIGlmICghbW9kZWxNZXRhKSB7XG4gICAgICB0aGlzLnJlZnNbVVVJRC5VVUlEKCldID0gdGhpcy5jcmVhdGVDb21wb25lbnQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAobW9kZWxNZXRhLmxpbmVJdGVtKSB7XG4gICAgICB0aGlzLmNyZWF0ZUZyb21MaW5lSXRlbShtb2RlbE1ldGEubGluZUl0ZW0pO1xuICAgIH0gZWxzZSBpZiAobW9kZWxNZXRhLnBhdGgpIHtcbiAgICAgIHRoaXMuY3JlYXRlRnJvbVBhdGgobW9kZWxNZXRhLnBhdGgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRnJvbVBhdGgocGF0aDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgYXJyYXkkID0gdGhpcy5pb1Byb3ZpZGVyU2VydmljZS5jb25uZWN0KHRoaXMubWV0YSwgJ2NoaWxkcmVuJCcsIHBhdGgpO1xuXG4gICAgYXJyYXkkPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKGNoaWxkcmVuID0+IHtcbiAgICAgIGlmICghaXNBcnJheShjaGlsZHJlbikpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnByb2Nlc3NDaGlsZHJlbihjaGlsZHJlbik7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldE1vZGVsQ29tcG9uZW50KCk6IEVsZW1lbnRSZW5kZXJlckNvbXBvbmVudCB8IG51bGwge1xuICAgIGxldCBjb21wb25lbnQ6IEVsZW1lbnRSZW5kZXJlckNvbXBvbmVudCB8IG51bGwgPSBudWxsO1xuICAgIGxldCBpbmplY3RvciA9IHRoaXMucGFyZW50SW5qZWN0b3I7XG5cbiAgICB3aGlsZSAoIWNvbXBvbmVudCkge1xuICAgICAgY29uc3QgcGFyZW50Q29tcCA9IGluamVjdG9yLmdldChFbGVtZW50UmVuZGVyZXJDb21wb25lbnQsIG51bGwpO1xuXG4gICAgICBpZiAocGFyZW50Q29tcD8ubWV0YS5tb2RlbCkge1xuICAgICAgICBjb21wb25lbnQgPSBwYXJlbnRDb21wO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgaWYgKHBhcmVudENvbXApIHtcbiAgICAgICAgaW5qZWN0b3IgPSBwYXJlbnRDb21wLnBhcmVudEluamVjdG9yO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbXBvbmVudDtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRnJvbUxpbmVJdGVtKHBhdGg6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHBhcmVudENvbXAgPSB0aGlzLmdldE1vZGVsQ29tcG9uZW50KCk7XG4gICAgY29uc3QgcGFyZW50UGF0aCA9IHBhcmVudENvbXA/Lm1ldGEubW9kZWw/LmxpbmVJdGVtO1xuXG4gICAgY29uc3QgcGF0aEJsb2NrcyA9IHBhcnNlQm91bmRQYXRoKHBhdGgpLnJldmVyc2UoKTtcbiAgICBjb25zdCB7IHByb3BlcnR5LCBuYW1lIH0gPSBwYXRoQmxvY2tzWzFdID8/IHt9O1xuICAgIGNvbnN0IGZpbmFsUGF0aCA9IHBhdGhCbG9ja3NbMF07XG5cbiAgICBjb25zdCBjaGlsZHJlbiQgPSB0aGlzLmdldFBhcmVudExpbmVJdGVtJChwYXJlbnRDb21wKS5waXBlKFxuICAgICAgbWFwKG1vZGVsID0+IHtcbiAgICAgICAgaWYgKCFtb2RlbCkge1xuICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwcm9wZXJ0eSA9PT0gJ3BvcnRzJyAmJiAhZmluYWxQYXRoLnByb3BlcnR5ICYmIHBhcmVudFBhdGggIT09IHBhdGgpIHtcbiAgICAgICAgICByZXR1cm4gbW9kZWwubGluZUl0ZW1zLmZpbHRlcigoeyBwb3J0IH0pID0+IHBvcnQgPT09IG5hbWUpID8/IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFttb2RlbF07XG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgY2hpbGRyZW4kLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoY2hpbGRyZW4gPT4ge1xuICAgICAgdGhpcy5wcm9jZXNzQ2hpbGRyZW4oY2hpbGRyZW4pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9jZXNzQ2hpbGRyZW4oY2hpbGRyZW46IGFueVtdKTogdm9pZCB7XG4gICAgY29uc3QgcmVmcyA9IGNoaWxkcmVuLnJlZHVjZSgoYWNjLCBkYXRhLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3Qga2V5ID0gU3RyaW5nKGRhdGE/LmlkID8/IFVVSUQuVVVJRCgpKTtcbiAgICAgIGNvbnN0IGV4aXN0aW5nUmVmID0gdGhpcy5yZWZzW2tleV07XG5cbiAgICAgIGNvbnN0IHJlZiA9IGV4aXN0aW5nUmVmID8/IHRoaXMuY3JlYXRlQ29tcG9uZW50KGRhdGEsIGluZGV4KTtcbiAgICAgIGlmIChleGlzdGluZ1JlZikge1xuICAgICAgICB0aGlzLnVwZGF0ZUNvbXBvbmVudChleGlzdGluZ1JlZiwgZGF0YSwgaW5kZXgpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVmID8geyAuLi5hY2MsIFtrZXldOiByZWYgfSA6IGFjYztcbiAgICB9LCB7fSBhcyBEaWN0aW9uYXJ5PENvbXBvbmVudFJlZjxhbnk+Pik7XG5cbiAgICBjb25zdCBleGlzdGluZ0tleXMgPSBPYmplY3Qua2V5cyh0aGlzLnJlZnMpO1xuICAgIGNvbnN0IG5ld0tleXMgPSBPYmplY3Qua2V5cyhyZWZzKTtcblxuICAgIHB1bGwoZXhpc3RpbmdLZXlzLCAuLi5uZXdLZXlzKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICB0aGlzLmRlc3Ryb3lDb21wb25lbnQoa2V5KTtcbiAgICB9KTtcblxuICAgIHRoaXMucmVmcyA9IHJlZnM7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQYXJlbnRMaW5lSXRlbSQocGFyZW50Q29tcDogRWxlbWVudFJlbmRlcmVyQ29tcG9uZW50IHwgbnVsbCk6IE9ic2VydmFibGU8TGluZUl0ZW0gfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBwYXJlbnRSZWZzID0gT2JqZWN0LnZhbHVlcyhwYXJlbnRDb21wPy5yZWZzID8/IHt9KTtcbiAgICBjb25zdCBwYXJlbnRSZWYgPSBwYXJlbnRSZWZzLmZpbmQocmVmID0+XG4gICAgICAocmVmPy5sb2NhdGlvbi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KT8uY29udGFpbnModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpLFxuICAgICk7XG5cbiAgICBjb25zdCBwYXJlbnRNb2RlbCQgPSBwYXJlbnRSZWY/Lmluc3RhbmNlLm1vZGVsJDtcblxuICAgIHJldHVybiBwYXJlbnRNb2RlbCQgPz8gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5nZXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ29tcG9uZW50KGRhdGE/OiBhbnksIGluZGV4PzogbnVtYmVyKTogQ29tcG9uZW50UmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy5mYWN0b3J5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5lbD8uY3JlYXRlQ29tcG9uZW50KHRoaXMuZmFjdG9yeSwgaW5kZXgpO1xuXG4gICAgaWYgKGNvbXBvbmVudFJlZikge1xuICAgICAgY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCduYW1lJywgdGhpcy5tZXRhLm5hbWUpO1xuICAgICAgY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCdwYXRoJywgdGhpcy5tZXRhLnBhdGgpO1xuICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlPy5tb2RlbCQubmV4dChkYXRhKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29tcG9uZW50UmVmO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb21wb25lbnQocmVmOiBDb21wb25lbnRSZWY8YW55PiwgZGF0YTogYW55LCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgcmVmLmluc3RhbmNlLm1vZGVsJC5uZXh0KGRhdGEpO1xuXG4gICAgaWYgKHRoaXMuZWwgJiYgdGhpcy5lbC5pbmRleE9mKHJlZi5ob3N0VmlldykgIT09IGluZGV4KSB7XG4gICAgICB0aGlzLmVsLm1vdmUocmVmLmhvc3RWaWV3LCBpbmRleCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkZXN0cm95Q29tcG9uZW50KGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5yZWZzW2tleV0/LmRlc3Ryb3koKTtcbiAgICBkZWxldGUgdGhpcy5yZWZzW2tleV07XG4gIH1cblxuICBwcml2YXRlIGRlc3Ryb3lDb21wb25lbnRzKCk6IHZvaWQge1xuICAgIE9iamVjdC52YWx1ZXModGhpcy5yZWZzKS5mb3JFYWNoKHJlZiA9PiByZWY/LmRlc3Ryb3koKSk7XG4gICAgdGhpcy5yZWZzID0ge307XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjZWw+PC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|