@veloceapps/sdk 8.0.0-99 → 9.0.0-1
Sign up to get free protection for your applications and to get access to all the features.
- package/cms/README.md +0 -20
- package/cms/cms.actions.d.ts +9 -1
- package/cms/components/preview/preview.component.d.ts +2 -3
- package/cms/components/preview/preview.types.d.ts +4 -0
- package/cms/index.d.ts +1 -0
- package/cms/modules/runtime/services/runtime.service.d.ts +1 -1
- package/cms/services/index.d.ts +0 -1
- package/cms/services/resources.service.d.ts +2 -0
- package/cms/types/index.d.ts +0 -1
- package/cms/utils/element-metadata-worker.d.ts +11 -0
- package/cms/utils/elements-resolver.d.ts +0 -2
- package/cms/utils/index.d.ts +3 -0
- package/cms/utils/transpilation-worker.d.ts +13 -0
- package/cms/vendor-map.d.ts +21 -18
- package/core/README.md +20 -0
- package/core/modules/configuration/configuration.module.d.ts +2 -1
- package/core/modules/configuration/helpers.d.ts +2 -1
- package/core/modules/configuration/index.d.ts +1 -1
- package/core/modules/configuration/services/configuration-state.service.d.ts +54 -0
- package/core/modules/configuration/services/configuration.service.d.ts +6 -6
- package/core/modules/configuration/types/configuration.types.d.ts +4 -0
- package/core/modules/flow-configuration/flow-configuration.module.d.ts +2 -1
- package/core/modules/flow-configuration/services/flow-configuration.service.d.ts +5 -0
- package/core/services/context.service.d.ts +2 -0
- package/core/services/flow-info.service.d.ts +29 -0
- package/core/services/flow-state-configuration.service.d.ts +19 -0
- package/core/services/flow-state.service.d.ts +80 -0
- package/core/services/index.d.ts +4 -1
- package/core/services/quote-draft.service.d.ts +12 -28
- package/core/types/flow-customization.types.d.ts +22 -0
- package/core/types/flow-state.types.d.ts +11 -0
- package/core/types/index.d.ts +3 -1
- package/{cms → core}/types/integration.types.d.ts +0 -1
- package/core/utils/line-item.utils.d.ts +1 -3
- package/esm2020/cms/cms.actions.mjs +11 -1
- package/esm2020/cms/components/element-renderer/element-renderer.component.mjs +3 -3
- package/esm2020/cms/components/element-tools-panel/element-tools-panel.component.mjs +3 -3
- package/esm2020/cms/components/preview/preview.component.mjs +10 -10
- package/esm2020/cms/components/preview/preview.module.mjs +2 -2
- package/esm2020/cms/components/preview/preview.types.mjs +1 -1
- package/esm2020/cms/index.mjs +2 -1
- package/esm2020/cms/launcher.module.mjs +4 -4
- package/esm2020/cms/modules/migrations/migrations.mjs +2 -2
- package/esm2020/cms/modules/migrations/services/migrations.service.mjs +6 -2
- package/esm2020/cms/modules/runtime/services/compilation.service.mjs +8 -8
- package/esm2020/cms/modules/runtime/services/runtime.service.mjs +4 -4
- package/esm2020/cms/plugins/configuration.plugin.mjs +8 -4
- package/esm2020/cms/services/index.mjs +1 -2
- package/esm2020/cms/services/io-provider.service.mjs +10 -9
- package/esm2020/cms/services/resources.service.mjs +10 -6
- package/esm2020/cms/services/templates.service.mjs +10 -9
- package/esm2020/cms/types/index.mjs +1 -2
- package/esm2020/cms/utils/element-metadata-worker.mjs +31 -0
- package/esm2020/cms/utils/elements-resolver.mjs +13 -27
- package/esm2020/cms/utils/encoding.utils.mjs +3 -2
- package/esm2020/cms/utils/index.mjs +4 -1
- package/esm2020/cms/utils/path.utils.mjs +3 -3
- package/esm2020/cms/utils/script.utils.mjs +19 -15
- package/esm2020/cms/utils/transpilation-worker.mjs +52 -0
- package/esm2020/cms/vendor-map.mjs +10 -5
- package/esm2020/core/core.module.mjs +19 -3
- package/esm2020/core/modules/configuration/configuration.module.mjs +7 -23
- package/esm2020/core/modules/configuration/helpers.mjs +21 -1
- package/esm2020/core/modules/configuration/index.mjs +2 -2
- package/esm2020/core/modules/configuration/services/configuration-state.service.mjs +335 -0
- package/esm2020/core/modules/configuration/services/configuration.service.mjs +56 -50
- package/esm2020/core/modules/configuration/types/configuration.types.mjs +1 -1
- package/esm2020/core/modules/flow-configuration/flow-configuration.module.mjs +6 -6
- package/esm2020/core/modules/flow-configuration/services/flow-configuration.service.mjs +12 -9
- package/esm2020/core/services/context.service.mjs +17 -5
- package/esm2020/core/services/flow-info.service.mjs +99 -0
- package/esm2020/core/services/flow-state-configuration.service.mjs +53 -0
- package/esm2020/core/services/flow-state.service.mjs +512 -0
- package/esm2020/core/services/index.mjs +5 -2
- package/esm2020/core/services/integration.state.mjs +36 -0
- package/esm2020/core/services/product-images.service.mjs +4 -5
- package/esm2020/core/services/quote-draft.service.mjs +39 -91
- package/esm2020/core/services/runtime-settings.service.mjs +7 -5
- package/esm2020/core/types/flow-customization.types.mjs +3 -0
- package/esm2020/core/types/flow-state.types.mjs +2 -0
- package/esm2020/core/types/index.mjs +4 -2
- package/esm2020/core/types/integration.types.mjs +2 -0
- package/esm2020/core/utils/line-item.utils.mjs +33 -32
- package/esm2020/src/components/doc-gen/doc-gen.component.mjs +44 -51
- package/esm2020/src/components/flow-header/flow-header.component.mjs +36 -47
- package/esm2020/src/components/guided-selling/guided-selling.component.mjs +35 -46
- package/esm2020/src/flow-routing.module.mjs +5 -18
- package/esm2020/src/flow.component.mjs +22 -37
- package/esm2020/src/guards/context.guard.mjs +6 -11
- package/esm2020/src/guards/flow.guard.mjs +23 -9
- package/esm2020/src/pages/assets/assets.component.mjs +30 -34
- package/esm2020/src/pages/catalog/catalog.component.mjs +30 -34
- package/esm2020/src/pages/debug/debug.component.mjs +2 -2
- package/esm2020/src/pages/product/product.component.mjs +34 -20
- package/esm2020/src/pages/record-not-found/record-not-found.component.mjs +6 -3
- package/esm2020/src/pages/remote/remote.component.mjs +15 -14
- package/esm2020/src/pages/shopping-cart/shopping-cart.component.mjs +31 -35
- package/esm2020/src/resolvers/flow.resolver.mjs +37 -55
- package/esm2020/src/resolvers/quote.resolver.mjs +55 -67
- package/esm2020/src/services/doc-gen.service.mjs +4 -3
- package/esm2020/src/services/flow-dialog.service.mjs +17 -6
- package/esm2020/src/services/flow-router.service.mjs +42 -15
- package/esm2020/src/services/flow.service.mjs +67 -52
- package/esm2020/src/services/guided-selling.service.mjs +5 -4
- package/esm2020/src/types/index.mjs +1 -2
- package/fesm2015/veloceapps-sdk-cms.mjs +270 -191
- package/fesm2015/veloceapps-sdk-cms.mjs.map +1 -1
- package/fesm2015/veloceapps-sdk-core.mjs +1195 -427
- package/fesm2015/veloceapps-sdk-core.mjs.map +1 -1
- package/fesm2015/veloceapps-sdk.mjs +776 -826
- package/fesm2015/veloceapps-sdk.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk-cms.mjs +275 -206
- package/fesm2020/veloceapps-sdk-cms.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk-core.mjs +1176 -454
- package/fesm2020/veloceapps-sdk-core.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk.mjs +899 -945
- package/fesm2020/veloceapps-sdk.mjs.map +1 -1
- package/package.json +8 -7
- package/src/components/doc-gen/doc-gen.component.d.ts +7 -10
- package/src/components/flow-header/flow-header.component.d.ts +6 -9
- package/src/components/guided-selling/guided-selling.component.d.ts +6 -9
- package/src/flow-routing.module.d.ts +1 -2
- package/src/flow.component.d.ts +7 -12
- package/src/guards/context.guard.d.ts +0 -1
- package/src/guards/flow.guard.d.ts +1 -1
- package/src/pages/assets/assets.component.d.ts +5 -7
- package/src/pages/catalog/catalog.component.d.ts +5 -7
- package/src/pages/product/product.component.d.ts +8 -7
- package/src/pages/record-not-found/record-not-found.component.d.ts +2 -0
- package/src/pages/remote/remote.component.d.ts +2 -3
- package/src/pages/shopping-cart/shopping-cart.component.d.ts +5 -7
- package/src/resolvers/flow.resolver.d.ts +6 -9
- package/src/resolvers/quote.resolver.d.ts +7 -14
- package/src/services/doc-gen.service.d.ts +1 -1
- package/src/services/flow-dialog.service.d.ts +4 -2
- package/src/services/flow-router.service.d.ts +6 -3
- package/src/services/flow.service.d.ts +10 -14
- package/src/services/guided-selling.service.d.ts +1 -1
- package/src/types/index.d.ts +0 -1
- package/core/modules/configuration/services/configuration.state.d.ts +0 -30
- package/core/services/metric-calculation/metric-calculation.service.d.ts +0 -25
- 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/esm2020/cms/services/integration.state.mjs +0 -37
- package/esm2020/cms/types/integration.types.mjs +0 -2
- package/esm2020/core/modules/configuration/services/configuration.state.mjs +0 -142
- package/esm2020/core/services/metric-calculation/metric-calculation.service.mjs +0 -85
- package/esm2020/core/services/metric-calculation/metric-calculation.types.mjs +0 -2
- package/esm2020/core/services/metric-calculation/metric-calculation.utils.mjs +0 -42
- package/esm2020/src/pages/empty-account/empty-account.component.mjs +0 -12
- package/esm2020/src/pages/empty-account/empty-account.module.mjs +0 -20
- package/esm2020/src/types/flow-customization.types.mjs +0 -3
- package/src/pages/empty-account/empty-account.component.d.ts +0 -5
- package/src/pages/empty-account/empty-account.module.d.ts +0 -10
- package/src/types/flow-customization.types.d.ts +0 -12
- /package/{cms → core}/services/integration.state.d.ts +0 -0
@@ -1,4 +1,4 @@
|
|
1
|
-
import { Injectable } from '@angular/core';
|
1
|
+
import { ElementRef, Injectable } from '@angular/core';
|
2
2
|
import { filter, noop, Observable, of, ReplaySubject, take } from 'rxjs';
|
3
3
|
import * as i0 from "@angular/core";
|
4
4
|
export class ResourcesService {
|
@@ -27,9 +27,13 @@ export class ResourcesService {
|
|
27
27
|
}
|
28
28
|
return this.loaded$.pipe(filter(() => this.scripts.get(url) === true), take(1));
|
29
29
|
}
|
30
|
-
loadStyles(
|
31
|
-
const
|
32
|
-
const
|
30
|
+
loadStyles(first, second) {
|
31
|
+
const url = typeof first === 'string' ? first : typeof second === 'string' ? second : '';
|
32
|
+
const host = typeof first !== 'string' ? first : null;
|
33
|
+
let el = host?.injector.get(ElementRef)?.nativeElement ?? document.body;
|
34
|
+
while (el.parentNode) {
|
35
|
+
el = el.parentNode;
|
36
|
+
}
|
33
37
|
return new Observable(subscriber => {
|
34
38
|
const link = document.createElement('link');
|
35
39
|
link.rel = 'stylesheet';
|
@@ -40,7 +44,7 @@ export class ResourcesService {
|
|
40
44
|
subscriber.next();
|
41
45
|
subscriber.complete();
|
42
46
|
};
|
43
|
-
|
47
|
+
el.appendChild(link);
|
44
48
|
});
|
45
49
|
}
|
46
50
|
persistAMDLoader() {
|
@@ -64,4 +68,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
64
68
|
type: Injectable,
|
65
69
|
args: [{ providedIn: 'root' }]
|
66
70
|
}] });
|
67
|
-
//# sourceMappingURL=data:application/json;base64,
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2VzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvc2VydmljZXMvcmVzb3VyY2VzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQVV6RSxNQUFNLE9BQU8sZ0JBQWdCO0lBRDdCO1FBRVUsWUFBTyxHQUFHLElBQUksR0FBRyxFQUFtQixDQUFDO1FBQ3JDLFlBQU8sR0FBRyxJQUFJLGFBQWEsRUFBUSxDQUFDO0tBbUY3QztJQXpFUSxVQUFVLENBQUMsR0FBVztRQUMzQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQyxJQUFJLE1BQU0sS0FBSyxJQUFJLEVBQUU7WUFDbkIsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUNuQjtRQUVELElBQUksTUFBTSxJQUFJLElBQUksRUFBRTtZQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFFN0IsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNoRCxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztZQUVqQixZQUFZO1lBQ1osSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFFeEIsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7Z0JBQ25CLFlBQVk7Z0JBQ1osSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7Z0JBRXhCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN0QixDQUFDLENBQUM7WUFDRixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNuQztRQUVELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ3RCLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLENBQUMsRUFDNUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUNSLENBQUM7SUFDSixDQUFDO0lBS00sVUFBVSxDQUFDLEtBQTBCLEVBQUUsTUFBZTtRQUMzRCxNQUFNLEdBQUcsR0FBRyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN6RixNQUFNLElBQUksR0FBRyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBRXRELElBQUksRUFBRSxHQUFHLElBQUksRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFhLFVBQVUsQ0FBQyxFQUFFLGFBQWEsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQ3BGLE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRTtZQUNwQixFQUFFLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQztTQUNwQjtRQUVELE9BQU8sSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDakMsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsR0FBRyxHQUFHLFlBQVksQ0FBQztZQUN4QixJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQztZQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztZQUNoQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRTtnQkFDakIsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNsQixVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEIsQ0FBQyxDQUFDO1lBQ0YsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsMENBQTBDO1FBQzFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRTtZQUN2QixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1FBQzdCLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLFNBQVMsQ0FBQztJQUNoQyxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQzdCLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDN0IsSUFBSSxDQUFDLEdBQUcsR0FBRyxTQUFTLENBQUM7U0FDdEI7SUFDSCxDQUFDOzs2R0FwRlUsZ0JBQWdCO2lIQUFoQixnQkFBZ0IsY0FESCxNQUFNOzJGQUNuQixnQkFBZ0I7a0JBRDVCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmxXaW5kb3cgfSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcbmltcG9ydCB7IGZpbHRlciwgbm9vcCwgT2JzZXJ2YWJsZSwgb2YsIFJlcGxheVN1YmplY3QsIHRha2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFNjcmlwdEhvc3QgfSBmcm9tICcuLi90eXBlcyc7XG5cbmRlY2xhcmUgY29uc3Qgd2luZG93OiBWbFdpbmRvdyAmIHtcbiAgZGVmaW5lPzoge1xuICAgIGFtZD86IHVua25vd247XG4gIH07XG59O1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFJlc291cmNlc1NlcnZpY2Uge1xuICBwcml2YXRlIHNjcmlwdHMgPSBuZXcgTWFwPHN0cmluZywgYm9vbGVhbj4oKTtcbiAgcHJpdmF0ZSBsb2FkZWQkID0gbmV3IFJlcGxheVN1YmplY3Q8dm9pZD4oKTtcblxuICAvKipcbiAgICogbmd4LW1vbmFjby1lZGl0b3IgYWRkcyBhbWQtbG9hZGVyIGxpYnJhcnkgZm9yIGxvYWRpbmcgcmVzb3VyY2VzIHdoZW4gZmlyc3QgdGltZSBpbml0aWFsaXplZFxuICAgKiBXaGljaCBicmVha3MgZnVydGhlciBsb2FkaW5nIG9mIDNyZCBwYXJ0eSBsaWJhcmllcy5cbiAgICpcbiAgICogVG8gaGFuZGxlIHRoaXMgaXNzdWUsIGluIGNhc2UgJ2FtZCcgaXMgZGVmaW5lZCwgd2UgY2xlYXIgaXQsIGFuZCB0aGVuIHJlc3RvcmUgd2hlbiB0aGUgc2NyaXB0IGlzIGxvYWRlZFxuICAgKi9cbiAgcHJpdmF0ZSBhbWQ6IHVua25vd247XG5cbiAgcHVibGljIGxvYWRTY3JpcHQodXJsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBjb25zdCBsb2FkZWQgPSB0aGlzLnNjcmlwdHMuZ2V0KHVybCk7XG4gICAgaWYgKGxvYWRlZCA9PT0gdHJ1ZSkge1xuICAgICAgcmV0dXJuIG9mKG5vb3AoKSk7XG4gICAgfVxuXG4gICAgaWYgKGxvYWRlZCA9PSBudWxsKSB7XG4gICAgICB0aGlzLnNjcmlwdHMuc2V0KHVybCwgZmFsc2UpO1xuXG4gICAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgIHNjcmlwdC5zcmMgPSB1cmw7XG5cbiAgICAgIC8vIEhhY2t5IGZpeFxuICAgICAgdGhpcy5wZXJzaXN0QU1ETG9hZGVyKCk7XG5cbiAgICAgIHNjcmlwdC5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIC8vIEhhY2t5IGZpeFxuICAgICAgICB0aGlzLnJlc3RvcmVBTURMb2FkZXIoKTtcblxuICAgICAgICB0aGlzLnNjcmlwdHMuc2V0KHVybCwgdHJ1ZSk7XG4gICAgICAgIHRoaXMubG9hZGVkJC5uZXh0KCk7XG4gICAgICB9O1xuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmxvYWRlZCQucGlwZShcbiAgICAgIGZpbHRlcigoKSA9PiB0aGlzLnNjcmlwdHMuZ2V0KHVybCkgPT09IHRydWUpLFxuICAgICAgdGFrZSgxKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGxvYWRTdHlsZXModXJsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHZvaWQ+O1xuICBwdWJsaWMgbG9hZFN0eWxlcyhob3N0OiBTY3JpcHRIb3N0LCB1cmw6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD47XG5cbiAgcHVibGljIGxvYWRTdHlsZXMoZmlyc3Q6IHN0cmluZyB8IFNjcmlwdEhvc3QsIHNlY29uZD86IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGNvbnN0IHVybCA9IHR5cGVvZiBmaXJzdCA9PT0gJ3N0cmluZycgPyBmaXJzdCA6IHR5cGVvZiBzZWNvbmQgPT09ICdzdHJpbmcnID8gc2Vjb25kIDogJyc7XG4gICAgY29uc3QgaG9zdCA9IHR5cGVvZiBmaXJzdCAhPT0gJ3N0cmluZycgPyBmaXJzdCA6IG51bGw7XG5cbiAgICBsZXQgZWwgPSBob3N0Py5pbmplY3Rvci5nZXQ8RWxlbWVudFJlZj4oRWxlbWVudFJlZik/Lm5hdGl2ZUVsZW1lbnQgPz8gZG9jdW1lbnQuYm9keTtcbiAgICB3aGlsZSAoZWwucGFyZW50Tm9kZSkge1xuICAgICAgZWwgPSBlbC5wYXJlbnROb2RlO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShzdWJzY3JpYmVyID0+IHtcbiAgICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XG4gICAgICBsaW5rLnJlbCA9ICdzdHlsZXNoZWV0JztcbiAgICAgIGxpbmsudHlwZSA9ICd0ZXh0L2Nzcyc7XG4gICAgICBsaW5rLmhyZWYgPSB1cmw7XG4gICAgICBsaW5rLm1lZGlhID0gJ2FsbCc7XG4gICAgICBsaW5rLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgc3Vic2NyaWJlci5uZXh0KCk7XG4gICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICAgIH07XG4gICAgICBlbC5hcHBlbmRDaGlsZChsaW5rKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcGVyc2lzdEFNRExvYWRlcigpOiB2b2lkIHtcbiAgICAvLyBEbyBub3RoaW5nIGlmIEFNRCBsb2FkZXIgaXMgbm90IGRlZmluZWRcbiAgICBpZiAoIXdpbmRvdy5kZWZpbmU/LmFtZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuYW1kID0gd2luZG93LmRlZmluZS5hbWQ7XG4gICAgd2luZG93LmRlZmluZS5hbWQgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIHJlc3RvcmVBTURMb2FkZXIoKTogdm9pZCB7XG4gICAgaWYgKHdpbmRvdy5kZWZpbmUgJiYgdGhpcy5hbWQpIHtcbiAgICAgIHdpbmRvdy5kZWZpbmUuYW1kID0gdGhpcy5hbWQ7XG4gICAgICB0aGlzLmFtZCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
@@ -6,21 +6,22 @@ export class TemplatesService {
|
|
6
6
|
this.templates = {};
|
7
7
|
}
|
8
8
|
register(name, templateRef) {
|
9
|
-
this.ensureStorage(name);
|
10
|
-
this.templates[name].next(templateRef);
|
9
|
+
this.ensureStorage(name).next(templateRef);
|
11
10
|
}
|
12
11
|
get(name) {
|
13
|
-
this.ensureStorage(name);
|
14
|
-
return this.templates[name].value;
|
12
|
+
return this.ensureStorage(name).value;
|
15
13
|
}
|
16
14
|
get$(name) {
|
17
|
-
this.ensureStorage(name);
|
18
|
-
return this.templates[name].asObservable();
|
15
|
+
return this.ensureStorage(name).asObservable();
|
19
16
|
}
|
20
17
|
ensureStorage(name) {
|
21
|
-
|
22
|
-
|
18
|
+
const storage = this.templates[name];
|
19
|
+
if (storage) {
|
20
|
+
return storage;
|
23
21
|
}
|
22
|
+
const newStorage = new BehaviorSubject(undefined);
|
23
|
+
this.templates[name] = newStorage;
|
24
|
+
return newStorage;
|
24
25
|
}
|
25
26
|
}
|
26
27
|
TemplatesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TemplatesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
@@ -28,4 +29,4 @@ TemplatesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", ver
|
|
28
29
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TemplatesService, decorators: [{
|
29
30
|
type: Injectable
|
30
31
|
}] });
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvc2VydmljZXMvdGVtcGxhdGVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUV4RCxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDOztBQUtuRCxNQUFNLE9BQU8sZ0JBQWdCO0lBRDdCO1FBRVUsY0FBUyxHQUEwQyxFQUFFLENBQUM7S0F3Qi9EO0lBdEJRLFFBQVEsQ0FBQyxJQUFZLEVBQUUsV0FBNkI7UUFDekQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVNLEdBQUcsQ0FBQyxJQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDeEMsQ0FBQztJQUVNLElBQUksQ0FBQyxJQUFZO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRU8sYUFBYSxDQUFDLElBQVk7UUFDaEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxJQUFJLE9BQU8sRUFBRTtZQUNYLE9BQU8sT0FBTyxDQUFDO1NBQ2hCO1FBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxlQUFlLENBQVcsU0FBUyxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUM7UUFDbEMsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQzs7NkdBeEJVLGdCQUFnQjtpSEFBaEIsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxudHlwZSBUZW1wbGF0ZSA9IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZXNTZXJ2aWNlIHtcbiAgcHJpdmF0ZSB0ZW1wbGF0ZXM6IERpY3Rpb25hcnk8QmVoYXZpb3JTdWJqZWN0PFRlbXBsYXRlPj4gPSB7fTtcblxuICBwdWJsaWMgcmVnaXN0ZXIobmFtZTogc3RyaW5nLCB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55Pik6IHZvaWQge1xuICAgIHRoaXMuZW5zdXJlU3RvcmFnZShuYW1lKS5uZXh0KHRlbXBsYXRlUmVmKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQobmFtZTogc3RyaW5nKTogVGVtcGxhdGUge1xuICAgIHJldHVybiB0aGlzLmVuc3VyZVN0b3JhZ2UobmFtZSkudmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0JChuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFRlbXBsYXRlPiB7XG4gICAgcmV0dXJuIHRoaXMuZW5zdXJlU3RvcmFnZShuYW1lKS5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZW5zdXJlU3RvcmFnZShuYW1lOiBzdHJpbmcpOiBCZWhhdmlvclN1YmplY3Q8VGVtcGxhdGU+IHtcbiAgICBjb25zdCBzdG9yYWdlID0gdGhpcy50ZW1wbGF0ZXNbbmFtZV07XG4gICAgaWYgKHN0b3JhZ2UpIHtcbiAgICAgIHJldHVybiBzdG9yYWdlO1xuICAgIH1cblxuICAgIGNvbnN0IG5ld1N0b3JhZ2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRlbXBsYXRlPih1bmRlZmluZWQpO1xuICAgIHRoaXMudGVtcGxhdGVzW25hbWVdID0gbmV3U3RvcmFnZTtcbiAgICByZXR1cm4gbmV3U3RvcmFnZTtcbiAgfVxufVxuIl19
|
@@ -2,8 +2,7 @@ export * from '../modules/runtime/types/compilation.types';
|
|
2
2
|
export * from './common.types';
|
3
3
|
export * from './configuration.types';
|
4
4
|
export * from './elements.types';
|
5
|
-
export * from './integration.types';
|
6
5
|
export * from './layouts.types';
|
7
6
|
export * from './pages.types';
|
8
7
|
export * from './path.types';
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi4vbW9kdWxlcy9ydW50aW1lL3R5cGVzL2NvbXBpbGF0aW9uLnR5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vY29tbW9uLnR5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vY29uZmlndXJhdGlvbi50eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2VsZW1lbnRzLnR5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGF5b3V0cy50eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3BhZ2VzLnR5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vcGF0aC50eXBlcyc7XG4iXX0=
|
@@ -0,0 +1,31 @@
|
|
1
|
+
import { from } from 'rxjs';
|
2
|
+
import { elementToMetadata } from './element.utils';
|
3
|
+
export class ElementMetadataWorker {
|
4
|
+
constructor(elements) {
|
5
|
+
this.elements = elements;
|
6
|
+
}
|
7
|
+
get$() {
|
8
|
+
return from((async () => this.processAsync(this.elements))());
|
9
|
+
}
|
10
|
+
async processAsync(elements) {
|
11
|
+
const result = [];
|
12
|
+
await this.processLevelAsync(elements, result);
|
13
|
+
return result;
|
14
|
+
}
|
15
|
+
async processLevelAsync(elements, metadata, parentPath) {
|
16
|
+
for (const el of elements) {
|
17
|
+
const elMetadata = await this.elementToMetadataAsync(el, parentPath);
|
18
|
+
metadata.push(elMetadata);
|
19
|
+
await this.processLevelAsync(el.children, elMetadata.children, elMetadata.path);
|
20
|
+
}
|
21
|
+
}
|
22
|
+
elementToMetadataAsync(el, parentPath) {
|
23
|
+
return new Promise(resolve => {
|
24
|
+
setTimeout(() => {
|
25
|
+
const metadata = elementToMetadata({ script: el.script, template: el.template, styles: el.styles, children: [] }, parentPath);
|
26
|
+
resolve(metadata);
|
27
|
+
});
|
28
|
+
});
|
29
|
+
}
|
30
|
+
}
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1tZXRhZGF0YS13b3JrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvdXRpbHMvZWxlbWVudC1tZXRhZGF0YS13b3JrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFjLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV4QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVwRCxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLFlBQW9CLFFBQXFCO1FBQXJCLGFBQVEsR0FBUixRQUFRLENBQWE7SUFBRyxDQUFDO0lBRXRDLElBQUk7UUFDVCxPQUFPLElBQUksQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVPLEtBQUssQ0FBQyxZQUFZLENBQUMsUUFBcUI7UUFDOUMsTUFBTSxNQUFNLEdBQXNCLEVBQUUsQ0FBQztRQUNyQyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDL0MsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVPLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxRQUFxQixFQUFFLFFBQTJCLEVBQUUsVUFBbUI7UUFDckcsS0FBSyxNQUFNLEVBQUUsSUFBSSxRQUFRLEVBQUU7WUFDekIsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ3JFLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDMUIsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNqRjtJQUNILENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxFQUFhLEVBQUUsVUFBbUI7UUFDL0QsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUMzQixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLE1BQU0sUUFBUSxHQUFHLGlCQUFpQixDQUNoQyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFDN0UsVUFBVSxDQUNYLENBQUM7Z0JBQ0YsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3BCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVSUVsZW1lbnQgfSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEVsZW1lbnRNZXRhZGF0YSB9IGZyb20gJy4uL3R5cGVzL2NvbW1vbi50eXBlcyc7XG5pbXBvcnQgeyBlbGVtZW50VG9NZXRhZGF0YSB9IGZyb20gJy4vZWxlbWVudC51dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBFbGVtZW50TWV0YWRhdGFXb3JrZXIge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRzOiBVSUVsZW1lbnRbXSkge31cblxuICBwdWJsaWMgZ2V0JCgpOiBPYnNlcnZhYmxlPEVsZW1lbnRNZXRhZGF0YVtdPiB7XG4gICAgcmV0dXJuIGZyb20oKGFzeW5jICgpID0+IHRoaXMucHJvY2Vzc0FzeW5jKHRoaXMuZWxlbWVudHMpKSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcHJvY2Vzc0FzeW5jKGVsZW1lbnRzOiBVSUVsZW1lbnRbXSk6IFByb21pc2U8RWxlbWVudE1ldGFkYXRhW10+IHtcbiAgICBjb25zdCByZXN1bHQ6IEVsZW1lbnRNZXRhZGF0YVtdID0gW107XG4gICAgYXdhaXQgdGhpcy5wcm9jZXNzTGV2ZWxBc3luYyhlbGVtZW50cywgcmVzdWx0KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBwcm9jZXNzTGV2ZWxBc3luYyhlbGVtZW50czogVUlFbGVtZW50W10sIG1ldGFkYXRhOiBFbGVtZW50TWV0YWRhdGFbXSwgcGFyZW50UGF0aD86IHN0cmluZykge1xuICAgIGZvciAoY29uc3QgZWwgb2YgZWxlbWVudHMpIHtcbiAgICAgIGNvbnN0IGVsTWV0YWRhdGEgPSBhd2FpdCB0aGlzLmVsZW1lbnRUb01ldGFkYXRhQXN5bmMoZWwsIHBhcmVudFBhdGgpO1xuICAgICAgbWV0YWRhdGEucHVzaChlbE1ldGFkYXRhKTtcbiAgICAgIGF3YWl0IHRoaXMucHJvY2Vzc0xldmVsQXN5bmMoZWwuY2hpbGRyZW4sIGVsTWV0YWRhdGEuY2hpbGRyZW4sIGVsTWV0YWRhdGEucGF0aCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBlbGVtZW50VG9NZXRhZGF0YUFzeW5jKGVsOiBVSUVsZW1lbnQsIHBhcmVudFBhdGg/OiBzdHJpbmcpOiBQcm9taXNlPEVsZW1lbnRNZXRhZGF0YT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBjb25zdCBtZXRhZGF0YSA9IGVsZW1lbnRUb01ldGFkYXRhKFxuICAgICAgICAgIHsgc2NyaXB0OiBlbC5zY3JpcHQsIHRlbXBsYXRlOiBlbC50ZW1wbGF0ZSwgc3R5bGVzOiBlbC5zdHlsZXMsIGNoaWxkcmVuOiBbXSB9LFxuICAgICAgICAgIHBhcmVudFBhdGgsXG4gICAgICAgICk7XG4gICAgICAgIHJlc29sdmUobWV0YWRhdGEpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
@@ -1,25 +1,24 @@
|
|
1
1
|
import { Component } from '@angular/core';
|
2
|
-
import { transform } from '@babel/standalone';
|
3
2
|
import { isDefined } from '@veloceapps/core';
|
4
3
|
import { flatten, kebabCase, set } from 'lodash';
|
4
|
+
import * as sass from 'sass';
|
5
5
|
import { DEFAULT_PLUGINS } from '../cms.default';
|
6
6
|
import { CONFIG } from '../cms.elements';
|
7
7
|
import { LAYOUT } from '../cms.layouts';
|
8
8
|
import { DEFAULT_PLUGINS_TOKEN, ELEMENT_CONFIG, ELEMENT_METADATA, SHARED_ELEMENT_METADATA, UI_DEFINITION_METADATA, } from '../injection-tokens';
|
9
9
|
import { getElementAngularIOs } from './element.utils';
|
10
10
|
import { getScriptClass } from './script.utils';
|
11
|
+
import { TranspilationWorker } from './transpilation-worker';
|
11
12
|
export class ElementsResolver {
|
12
13
|
constructor(uiDef, elements, sharedElements = [], config) {
|
13
14
|
this.uiDef = uiDef;
|
14
15
|
this.config = config;
|
15
16
|
this.renderableElements = [];
|
16
17
|
this.sharedElements = [];
|
17
|
-
|
18
|
-
const transpiledSharedElements = this.transpileScripts(sharedElements);
|
19
|
-
this.sharedElements = this.flattenElements(transpiledElements)
|
18
|
+
this.sharedElements = this.flattenElements(elements)
|
20
19
|
.filter(el => this.isSharedElement(el))
|
21
|
-
.concat(
|
22
|
-
this.elements =
|
20
|
+
.concat(sharedElements);
|
21
|
+
this.elements = elements.map(el => this.processElementMetadata(el)).filter(isDefined);
|
23
22
|
this.renderableElements = this.getRenderableElements(this.elements);
|
24
23
|
this.uiDefMetadata = {
|
25
24
|
...this.uiDef,
|
@@ -30,7 +29,7 @@ export class ElementsResolver {
|
|
30
29
|
if (element.isShared) {
|
31
30
|
return;
|
32
31
|
}
|
33
|
-
const transpiledElements =
|
32
|
+
const transpiledElements = new TranspilationWorker([element]).get();
|
34
33
|
this.elements = transpiledElements.map(el => this.processElementMetadata(el)).filter(isDefined);
|
35
34
|
this.renderableElements = this.getRenderableElements(this.elements);
|
36
35
|
}
|
@@ -40,24 +39,6 @@ export class ElementsResolver {
|
|
40
39
|
[el.path]: this.resolveElement(el),
|
41
40
|
}), {});
|
42
41
|
}
|
43
|
-
transpile(el) {
|
44
|
-
if (!el.script) {
|
45
|
-
return;
|
46
|
-
}
|
47
|
-
const transformed = transform(el.script, {
|
48
|
-
filename: el.name + '.ts',
|
49
|
-
presets: ['typescript'],
|
50
|
-
sourceMaps: 'inline',
|
51
|
-
});
|
52
|
-
return transformed.code ?? undefined;
|
53
|
-
}
|
54
|
-
transpileScripts(elements) {
|
55
|
-
return elements.map(el => ({
|
56
|
-
...el,
|
57
|
-
script: this.transpile(el),
|
58
|
-
children: this.transpileScripts(el.children),
|
59
|
-
}));
|
60
|
-
}
|
61
42
|
flattenElements(elements) {
|
62
43
|
return flatten(elements.map(el => [el, ...this.flattenElements(el.children)]));
|
63
44
|
}
|
@@ -181,7 +162,12 @@ export class ElementsResolver {
|
|
181
162
|
result += configuredStyles;
|
182
163
|
}
|
183
164
|
if (element.styles) {
|
184
|
-
|
165
|
+
try {
|
166
|
+
result += sass.compileString(element.styles).css;
|
167
|
+
}
|
168
|
+
catch (_) {
|
169
|
+
result += element.styles;
|
170
|
+
}
|
185
171
|
}
|
186
172
|
return result || undefined;
|
187
173
|
}
|
@@ -206,4 +192,4 @@ export class ElementsResolver {
|
|
206
192
|
return c && 'default' in c ? c.default : undefined;
|
207
193
|
}
|
208
194
|
}
|
209
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudHMtcmVzb2x2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvdXRpbHMvZWxlbWVudHMtcmVzb2x2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUFFLFNBQVMsRUFBd0IsTUFBTSxrQkFBa0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEMsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixjQUFjLEVBQ2QsZ0JBQWdCLEVBQ2hCLHVCQUF1QixFQUN2QixzQkFBc0IsR0FDdkIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEQsTUFBTSxPQUFPLGdCQUFnQjtJQU8zQixZQUNVLEtBQTJCLEVBQ25DLFFBQTJCLEVBQzNCLGlCQUFvQyxFQUFFLEVBQzlCLE1BQXlCO1FBSHpCLFVBQUssR0FBTCxLQUFLLENBQXNCO1FBRzNCLFdBQU0sR0FBTixNQUFNLENBQW1CO1FBUjNCLHVCQUFrQixHQUFzQixFQUFFLENBQUM7UUFDM0MsbUJBQWMsR0FBc0IsRUFBRSxDQUFDO1FBUzdDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FB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QUFJLGdCQUFnQixDQUFDO1NBQzVCO1FBRUQsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQ2xCLE1BQU0sSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDO1NBQzFCO1FBRUQsT0FBTyxNQUFNLElBQUksU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFFTyx3QkFBd0IsQ0FBQyxNQUFnQztRQUMvRCxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUVELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkMsSUFBSSxNQUFNLEdBQUcsV0FBVyxDQUFDO1FBRXpCLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO1lBQ2pDLE1BQU0sSUFBSSxLQUFLLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQztRQUNoRCxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sSUFBSSxLQUFLLENBQUM7UUFFaEIsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVPLDRCQUE0QjtRQUNsQyxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3JGLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLEVBQUU7WUFDOUIsT0FBTztTQUNSO1FBRUQsTUFBTSxDQUFDLEdBQUcsY0FBYyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDNUMsT0FBTyxDQUFDLElBQUksU0FBUyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3JELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdHJhbnNmb3JtIH0gZnJvbSAnQGJhYmVsL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgaXNEZWZpbmVkLCBVSURlZmluaXRpb25NZXRhZGF0YSB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgZmxhdHRlbiwga2ViYWJDYXNlLCBzZXQgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgREVGQVVMVF9QTFVHSU5TIH0gZnJvbSAnLi4vY21zLmRlZmF1bHQnO1xuaW1wb3J0IHsgQ09ORklHIH0gZnJvbSAnLi4vY21zLmVsZW1lbnRzJztcbmltcG9ydCB7IExBWU9VVCB9IGZyb20gJy4uL2Ntcy5sYXlvdXRzJztcbmltcG9ydCB7IENNU1ByZXZpZXdDb25maWcgfSBmcm9tICcuLi9jb21wb25lbnRzL3ByZXZpZXcnO1xuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSAnLi4vZW5naW5lL21vZGVscy9lbnRpdHknO1xuaW1wb3J0IHtcbiAgREVGQVVMVF9QTFVHSU5TX1RPS0VOLFxuICBFTEVNRU5UX0NPTkZJRyxcbiAgRUxFTUVOVF9NRVRBREFUQSxcbiAgU0hBUkVEX0VMRU1FTlRfTUVUQURBVEEsXG4gIFVJX0RFRklOSVRJT05fTUVUQURBVEEsXG59IGZyb20gJy4uL2luamVjdGlvbi10b2tlbnMnO1xuaW1wb3J0IHsgRWxlbWVudE1ldGFkYXRhLCBFbGVtZW50U3R5bGVEZWNsYXJhdGlvbiB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGdldEVsZW1lbnRBbmd1bGFySU9zIH0gZnJvbSAnLi9lbGVtZW50LnV0aWxzJztcbmltcG9ydCB7IGdldFNjcmlwdENsYXNzIH0gZnJvbSAnLi9zY3JpcHQudXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgRWxlbWVudHNSZXNvbHZlciB7XG4gIHB1YmxpYyBlbGVtZW50czogRWxlbWVudE1ldGFkYXRhW107XG5cbiAgcHJpdmF0ZSByZW5kZXJhYmxlRWxlbWVudHM6IEVsZW1lbnRNZXRhZGF0YVtdID0gW107XG4gIHByaXZhdGUgc2hhcmVkRWxlbWVudHM6IEVsZW1lbnRNZXRhZGF0YVtdID0gW107XG4gIHByaXZhdGUgdWlEZWZNZXRhZGF0YTogVUlEZWZpbml0aW9uTWV0YWRhdGE7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB1aURlZjogVUlEZWZpbml0aW9uTWV0YWRhdGEsXG4gICAgZWxlbWVudHM6IEVsZW1lbnRNZXRhZGF0YVtdLFxuICAgIHNoYXJlZEVsZW1lbnRzOiBFbGVtZW50TWV0YWRhdGFbXSA9IFtdLFxuICAgIHByaXZhdGUgY29uZmlnPzogQ01TUHJldmlld0NvbmZpZyxcbiAgKSB7XG4gICAgY29uc3QgdHJhbnNwaWxlZEVsZW1lbnRzID0gdGhpcy50cmFuc3BpbGVTY3JpcHRzKGVsZW1lbnRzKTtcbiAgICBjb25zdCB0cmFuc3BpbGVkU2hhcmVkRWxlbWVudHMgPSB0aGlzLnRyYW5zcGlsZVNjcmlwdHMoc2hhcmVkRWxlbWVudHMpO1xuXG4gICAgdGhpcy5zaGFyZWRFbGVtZW50cyA9IHRoaXMuZmxhdHRlbkVsZW1lbnRzKHRyYW5zcGlsZWRFbGVtZW50cylcbiAgICAgIC5maWx0ZXIoZWwgPT4gdGhpcy5pc1NoYXJlZEVsZW1lbnQoZWwpKVxuICAgICAgLmNvbmNhdCh0cmFuc3BpbGVkU2hhcmVkRWxlbWVudHMpO1xuXG4gICAgdGhpcy5lbGVtZW50cyA9IHRyYW5zcGlsZWRFbGVtZW50cy5tYXAoZWwgPT4gdGhpcy5wcm9jZXNzRWxlbWVudE1ldGFkYXRhKGVsKSkuZmlsdGVyKGlzRGVmaW5lZCk7XG5cbiAgICB0aGlzLnJlbmRlcmFibGVFbGVtZW50cyA9IHRoaXMuZ2V0UmVuZGVyYWJsZUVsZW1lbnRzKHRoaXMuZWxlbWVudHMpO1xuXG4gICAgdGhpcy51aURlZk1ldGFkYXRhID0ge1xuICAgICAgLi4udGhpcy51aURlZixcbiAgICAgIGN1c3RvbWl6YXRpb246IHRoaXMudWlEZWYuY3VzdG9taXphdGlvbiA/PyB0aGlzLmdldERlZmF1bHRDdXN0b21pemF0aW9uU3RhdGUoKSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGFkZEVsZW1lbnQoZWxlbWVudDogRWxlbWVudE1ldGFkYXRhKTogdm9pZCB7XG4gICAgaWYgKGVsZW1lbnQuaXNTaGFyZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB0cmFuc3BpbGVkRWxlbWVudHMgPSB0aGlzLnRyYW5zcGlsZVNjcmlwdHMoW2VsZW1lbnRdKTtcbiAgICB0aGlzLmVsZW1lbnRzID0gdHJhbnNwaWxlZEVsZW1lbnRzLm1hcChlbCA9PiB0aGlzLnByb2Nlc3NFbGVtZW50TWV0YWRhdGEoZWwpKS5maWx0ZXIoaXNEZWZpbmVkKTtcbiAgICB0aGlzLnJlbmRlcmFibGVFbGVtZW50cyA9IHRoaXMuZ2V0UmVuZGVyYWJsZUVsZW1lbnRzKHRoaXMuZWxlbWVudHMpO1xuICB9XG5cbiAgcHVibGljIGdldE5nQ29tcG9uZW50cygpOiBSZWNvcmQ8c3RyaW5nLCBUeXBlPEVudGl0eT4+IHtcbiAgICByZXR1cm4gWy4uLnRoaXMucmVuZGVyYWJsZUVsZW1lbnRzLCAuLi50aGlzLnNoYXJlZEVsZW1lbnRzXS5maWx0ZXIoaXNEZWZpbmVkKS5yZWR1Y2UoXG4gICAgICAodHJ1bmssIGVsKSA9PiAoe1xuICAgICAgICAuLi50cnVuayxcbiAgICAgICAgW2VsLnBhdGhdOiB0aGlzLnJlc29sdmVFbGVtZW50KGVsKSxcbiAgICAgIH0pLFxuICAgICAge30sXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgdHJhbnNwaWxlKGVsOiBFbGVtZW50TWV0YWRhdGEpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmICghZWwuc2NyaXB0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdHJhbnNmb3JtZWQgPSB0cmFuc2Zvcm0oZWwuc2NyaXB0LCB7XG4gICAgICBmaWxlbmFtZTogZWwubmFtZSArICcudHMnLFxuICAgICAgcHJlc2V0czogWyd0eXBlc2NyaXB0J10sXG4gICAgICBzb3VyY2VNYXBzOiAnaW5saW5lJyxcbiAgICB9KTtcblxuICAgIHJldHVybiB0cmFuc2Zvcm1lZC5jb2RlID8/IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgdHJhbnNwaWxlU2NyaXB0cyhlbGVtZW50czogRWxlbWVudE1ldGFkYXRhW10pOiBFbGVtZW50TWV0YWRhdGFbXSB7XG4gICAgcmV0dXJuIGVsZW1lbnRzLm1hcChlbCA9PiAoe1xuICAgICAgLi4uZWwsXG4gICAgICBzY3JpcHQ6IHRoaXMudHJhbnNwaWxlKGVsKSxcbiAgICAgIGNoaWxkcmVuOiB0aGlzLnRyYW5zcGlsZVNjcmlwdHMoZWwuY2hpbGRyZW4pLFxuICAgIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgZmxhdHRlbkVsZW1lbnRzKGVsZW1lbnRzOiBFbGVtZW50TWV0YWRhdGFbXSk6IEVsZW1lbnRNZXRhZGF0YVtdIHtcbiAgICByZXR1cm4gZmxhdHRlbihlbGVtZW50cy5tYXAoZWwgPT4gW2VsLCAuLi50aGlzLmZsYXR0ZW5FbGVtZW50cyhlbC5jaGlsZHJlbildKSk7XG4gIH1cblxuICBwcml2YXRlIGlzU2hhcmVkRWxlbWVudChlbDogRWxlbWVudE1ldGFkYXRhKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEJvb2xlYW4oZWwuaXNTaGFyZWQpICYmIGVsLnR5cGUgIT09ICdSRUZFUkVOQ0UnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRSZW5kZXJhYmxlRWxlbWVudHMoZWxlbWVudHM6IEVsZW1lbnRNZXRhZGF0YVtdKTogRWxlbWVudE1ldGFkYXRhW10ge1xuICAgIGNvbnN0IHJlbmRlcmFibGU6IEVsZW1lbnRNZXRhZGF0YVtdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGVsIG9mIGVsZW1lbnRzKSB7XG4gICAgICAvLyBJbiBgY3VzdG9taXphdGlvbk1vZGVgIHJlbmRlciBvbmx5IGVsZW1lbnQgd2l0aCBDVVNUT01JWkFUSU9OX1BBR0UgdHlwZVxuICAgICAgY29uc3QgdHlwZVBlck1vZGUgPSBCb29sZWFuKHRoaXMuY29uZmlnPy5jdXN0b21pemF0aW9uTW9kZSkgPT09IChlbC50eXBlID09PSAnQ1VTVE9NSVpBVElPTl9QQUdFJyk7XG4gICAgICBpZiAoIXRoaXMuaXNTaGFyZWRFbGVtZW50KGVsKSAmJiB0eXBlUGVyTW9kZSkge1xuICAgICAgICBjb25zdCBjaGlsZHJlbiA9IGVsLmNoaWxkcmVuLmZpbHRlcihjaGlsZCA9PiAhdGhpcy5pc1NoYXJlZEVsZW1lbnQoY2hpbGQpKTtcbiAgICAgICAgY29uc3QgcmVuZGVyYWJsZUNoaWxkcmVuID0gdGhpcy5nZXRSZW5kZXJhYmxlRWxlbWVudHMoY2hpbGRyZW4pO1xuICAgICAgICByZW5kZXJhYmxlLnB1c2goeyAuLi5lbCwgY2hpbGRyZW4gfSwgLi4ucmVuZGVyYWJsZUNoaWxkcmVuKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVuZGVyYWJsZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2hhcmVkRWxlbWVudChlbGVtZW50OiBFbGVtZW50TWV0YWRhdGEpOiBFbGVtZW50TWV0YWRhdGEgfCB1bmRlZmluZWQge1xuICAgIGlmICghZWxlbWVudC5yZWZlcmVuY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zaGFyZWRFbGVtZW50cy5maW5kKGVsID0+IGVsZW1lbnQucmVmZXJlbmNlID09PSBlbC5uYW1lKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZUVsZW1lbnRUZW1wbGF0ZShlbGVtZW50OiBFbGVtZW50TWV0YWRhdGEpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvbmZpZyA9IENPTkZJR1tlbGVtZW50LnR5cGVdO1xuICAgIGNvbnN0IHRlbXBsYXRlID0gIWNvbmZpZy5zdXBwcmVzc1RlbXBsYXRlID8gZWxlbWVudC50ZW1wbGF0ZSA6ICcnO1xuXG4gICAgcmV0dXJuIHRlbXBsYXRlIHx8IGNvbmZpZy5kZWZhdWx0VGVtcGxhdGUgfHwgJyc7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVFbGVtZW50U3R5bGVzKGVsZW1lbnQ6IEVsZW1lbnRNZXRhZGF0YSk6IHN0cmluZyB7XG4gICAgY29uc3QgY29uZmlnID0gQ09ORklHW2VsZW1lbnQudHlwZV07XG4gICAgbGV0IHN0eWxlcyA9ICFjb25maWcuc3VwcHJlc3NTdHlsZXMgPyBlbGVtZW50LnN0eWxlcyA/PyAnJyA6ICcnO1xuXG4gICAgY29uc3QgbGF5b3V0ID0gZWxlbWVudC5sYXlvdXQgJiYgTEFZT1VUW2VsZW1lbnQubGF5b3V0XTtcbiAgICBpZiAobGF5b3V0Py5zdHlsZXMpIHtcbiAgICAgIHN0eWxlcyArPSBsYXlvdXQuc3R5bGVzO1xuICAgIH1cblxuICAgIHJldHVybiBzdHlsZXM7XG4gIH1cblxuICBwcml2YXRlIHByb2Nlc3NFbGVtZW50TWV0YWRhdGEoc291cmNlRWxlbWVudDogRWxlbWVudE1ldGFkYXRhKTogRWxlbWVudE1ldGFkYXRhIHwgdW5kZWZpbmVkIHtcbiAgICBsZXQgZmluYWxFbGVtZW50OiBFbGVtZW50TWV0YWRhdGE7XG5cbiAgICBpZiAoc291cmNlRWxlbWVudC50eXBlID09PSAnUkVGRVJFTkNFJykge1xuICAgICAgY29uc3Qgc2hhcmVkRWxlbWVudCA9IHRoaXMuZ2V0U2hhcmVkRWxlbWVudChzb3VyY2VFbGVtZW50KTtcblxuICAgICAgaWYgKCFzaGFyZWRFbGVtZW50KSB7XG4gICAgICAgIGNvbnNvbGUud2FybihgU2hhcmVkIGVsZW1lbnQgXCIke3NvdXJjZUVsZW1lbnQucmVmZXJlbmNlfVwiIG5vdCBmb3VuZGApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGZpbmFsRWxlbWVudCA9IHtcbiAgICAgICAgLi4uc291cmNlRWxlbWVudCxcbiAgICAgICAgY2hpbGRyZW46IHRoaXMuZ2V0U2hhcmVkQ2hpbGRyZW4oc2hhcmVkRWxlbWVudC5jaGlsZHJlbiwgc291cmNlRWxlbWVudC5wYXRoKSxcbiAgICAgICAgdHlwZTogc2hhcmVkRWxlbWVudC50eXBlLFxuICAgICAgICB0ZW1wbGF0ZTogc2hhcmVkRWxlbWVudC50ZW1wbGF0ZSxcbiAgICAgICAgc3R5bGVzOiAoc2hhcmVkRWxlbWVudC5zdHlsZXMgPz8gJycpICsgJ1xcbicgKyAoc291cmNlRWxlbWVudC5zdHlsZXMgPz8gJycpLFxuICAgICAgICBpbnB1dHM6IHtcbiAgICAgICAgICAuLi5zaGFyZWRFbGVtZW50LmlucHV0cyxcbiAgICAgICAgICAuLi5zb3VyY2VFbGVtZW50LmlucHV0cyxcbiAgICAgICAgfSxcbiAgICAgICAgb3V0cHV0czoge1xuICAgICAgICAgIC4uLnNoYXJlZEVsZW1lbnQub3V0cHV0cyxcbiAgICAgICAgICAuLi5zb3VyY2VFbGVtZW50Lm91dHB1dHMsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBmaW5hbEVsZW1lbnQgPSBzb3VyY2VFbGVtZW50O1xuICAgICAgZGVsZXRlIHNvdXJjZUVsZW1lbnQucmVmZXJlbmNlO1xuICAgIH1cblxuICAgIGZpbmFsRWxlbWVudC50ZW1wbGF0ZSA9IHRoaXMucmVzb2x2ZUVsZW1lbnRUZW1wbGF0ZShmaW5hbEVsZW1lbnQpO1xuICAgIGZpbmFsRWxlbWVudC5zdHlsZXMgPSB0aGlzLnJlc29sdmVFbGVtZW50U3R5bGVzKGZpbmFsRWxlbWVudCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uZmluYWxFbGVtZW50LFxuICAgICAgY2hpbGRyZW46IGZpbmFsRWxlbWVudC5jaGlsZHJlbi5tYXAoY2hpbGQgPT4gdGhpcy5wcm9jZXNzRWxlbWVudE1ldGFkYXRhKGNoaWxkKSkuZmlsdGVyKGlzRGVmaW5lZCksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2hhcmVkQ2hpbGRyZW4oY2hpbGRyZW46IEVsZW1lbnRNZXRhZGF0YVtdLCBwYXJlbnRQYXRoPzogc3RyaW5nKTogRWxlbWVudE1ldGFkYXRhW10ge1xuICAgIHJldHVybiBjaGlsZHJlbi5tYXAoYyA9PiB7XG4gICAgICBpZiAoIWMucGF0aCkge1xuICAgICAgICByZXR1cm4gYztcbiAgICAgIH1cblxuICAgICAgY29uc3QgW2VsTmFtZV0gPSBjLnBhdGguc3BsaXQoJy8nKS5yZXZlcnNlKCk7XG4gICAgICBjb25zdCBwYXRoID0gcGFyZW50UGF0aCArICcvJyArIGVsTmFtZTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uYyxcbiAgICAgICAgcGF0aCxcbiAgICAgICAgY2hpbGRyZW46IHRoaXMuZ2V0U2hhcmVkQ2hpbGRyZW4oYy5jaGlsZHJlbiwgcGF0aCksXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlRWxlbWVudChlbGVtZW50OiBFbGVtZW50TWV0YWRhdGEpOiBUeXBlPEVudGl0eT4gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGNvbmZpZyA9IENPTkZJR1tlbGVtZW50LnR5cGVdO1xuICAgIGNvbnN0IGRlZmF1bHRQbHVnaW5zID0gREVGQVVMVF9QTFVHSU5TW3RoaXMudWlEZWZNZXRhZGF0YS50eXBlXSA/PyBbXTtcblxuICAgIGlmICghY29uZmlnKSB7XG4gICAgICBjb25zb2xlLndhcm4oYFVua25vd24gZWxlbWVudCB0eXBlIFwiJHtlbGVtZW50LnR5cGV9XCJgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzdHlsZXMgPSB0aGlzLmdldEVsZW1lbnRTdHlsZXMoZWxlbWVudCk7XG5cbiAgICBjb25zdCBjb21wb25lbnQ6IENvbXBvbmVudCA9IHtcbiAgICAgIHNlbGVjdG9yOiBlbGVtZW50LmlzU2hhcmVkID8gYHZsYy0ke2tlYmFiQ2FzZShlbGVtZW50Lm5hbWUpfWAgOiAndmwtZWxlbWVudCcsXG4gICAgICB0ZW1wbGF0ZTogZWxlbWVudC50ZW1wbGF0ZSxcbiAgICAgIC4uLihzdHlsZXMgPyB7IHN0eWxlczogW3N0eWxlc10gfSA6IHt9KSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IERFRkFVTFRfUExVR0lOU19UT0tFTiwgdXNlVmFsdWU6IGRlZmF1bHRQbHVnaW5zIH0sXG4gICAgICAgIHsgcHJvdmlkZTogVUlfREVGSU5JVElPTl9NRVRBREFUQSwgdXNlVmFsdWU6IHRoaXMudWlEZWZNZXRhZGF0YSB9LFxuICAgICAgICB7IHByb3ZpZGU6IEVMRU1FTlRfTUVUQURBVEEsIHVzZVZhbHVlOiBlbGVtZW50IH0sXG4gICAgICAgIHsgcHJvdmlkZTogU0hBUkVEX0VMRU1FTlRfTUVUQURBVEEsIHVzZVZhbHVlOiB0aGlzLmdldFNoYXJlZEVsZW1lbnQoZWxlbWVudCkgfSxcbiAgICAgICAgeyBwcm92aWRlOiBFTEVNRU5UX0NPTkZJRywgdXNlVmFsdWU6IGNvbmZpZyB9LFxuICAgICAgXSxcbiAgICAgIGlucHV0czogZ2V0RWxlbWVudEFuZ3VsYXJJT3MoT2JqZWN0LmtleXMoZWxlbWVudC5pbnB1dHMgPz8ge30pKSxcbiAgICAgIG91dHB1dHM6IGdldEVsZW1lbnRBbmd1bGFySU9zKE9iamVjdC5rZXlzKGVsZW1lbnQub3V0cHV0cyA/PyB7fSkpLFxuICAgIH07XG5cbiAgICBjb25zdCBjbXAgPSBDb21wb25lbnQoY29tcG9uZW50KShjbGFzcyBDIGV4dGVuZHMgY29uZmlnLmNvbXBvbmVudCB7fSk7XG5cbiAgICBzZXQoY21wLCAncGF0aCcsIGVsZW1lbnQucGF0aCk7XG5cbiAgICByZXR1cm4gY21wO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRFbGVtZW50U3R5bGVzKGVsZW1lbnQ6IEVsZW1lbnRNZXRhZGF0YSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IHJlc3VsdCA9ICcnO1xuXG4gICAgY29uc3QgY29uZmlndXJlZFN0eWxlcyA9IHRoaXMuY29udmVydElubGluZVN0eWxlc1RvQ1NTKGVsZW1lbnQuY29uZmlndXJlZFN0eWxlcyk7XG4gICAgaWYgKGNvbmZpZ3VyZWRTdHlsZXMpIHtcbiAgICAgIC8vIG9yZGVyIGlzIGltcG9ydGFudDogc3R5bGVzIHdyaXR0ZW4gYnkgdXNlciBpbiBDU1MgY29kZSBzaG91bGQgaGFzIGhpZ2hlciBwcmlvcml0eVxuICAgICAgcmVzdWx0ICs9IGNvbmZpZ3VyZWRTdHlsZXM7XG4gICAgfVxuXG4gICAgaWYgKGVsZW1lbnQuc3R5bGVzKSB7XG4gICAgICByZXN1bHQgKz0gZWxlbWVudC5zdHlsZXM7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdCB8fCB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIGNvbnZlcnRJbmxpbmVTdHlsZXNUb0NTUyhzdHlsZXM/OiBFbGVtZW50U3R5bGVEZWNsYXJhdGlvbik6IHN0cmluZyB7XG4gICAgaWYgKCFzdHlsZXMpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBjb25zdCBlbnRyaWVzID0gT2JqZWN0LmVudHJpZXMoc3R5bGVzKTtcbiAgICBsZXQgcmVzdWx0ID0gJzpob3N0IHtcXG4nO1xuXG4gICAgZW50cmllcy5mb3JFYWNoKChbc3R5bGUsIHZhbHVlXSkgPT4ge1xuICAgICAgcmVzdWx0ICs9IGAgICR7a2ViYWJDYXNlKHN0eWxlKX06JHt2YWx1ZX07XFxuYDtcbiAgICB9KTtcblxuICAgIHJlc3VsdCArPSAnfVxcbic7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREZWZhdWx0Q3VzdG9taXphdGlvblN0YXRlKCk6IHVua25vd24ge1xuICAgIGNvbnN0IGN1c3RvbWl6YXRpb25QYWdlID0gdGhpcy5lbGVtZW50cy5maW5kKGVsID0+IGVsLnR5cGUgPT09ICdDVVNUT01JWkFUSU9OX1BBR0UnKTtcbiAgICBpZiAoIWN1c3RvbWl6YXRpb25QYWdlPy5zY3JpcHQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjID0gZ2V0U2NyaXB0Q2xhc3MoY3VzdG9taXphdGlvblBhZ2UpO1xuICAgIHJldHVybiBjICYmICdkZWZhdWx0JyBpbiBjID8gYy5kZWZhdWx0IDogdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
|
195
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudHMtcmVzb2x2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvdXRpbHMvZWxlbWVudHMtcmVzb2x2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQXdCLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNqRCxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4QyxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLHNCQUFzQixHQUN2QixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU3RCxNQUFNLE9BQU8sZ0JBQWdCO0lBTzNCLFlBQ1UsS0FBMkIsRUFDbkMsUUFBMkIsRUFDM0IsaUJBQW9DLEVBQUUsRUFDOUIsTUFBeUI7UUFIekIsVUFBSyxHQUFMLEtBQUssQ0FBc0I7UUFHM0IsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFSM0IsdUJBQWtCLEdBQXNCLEVBQUUsQ0FBQztRQUMzQyxtQkFBYyxHQUFzQixFQUFFLENBQUM7UUFTN0MsSUFBSSxDQUFD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QU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTyw0QkFBNEI7UUFDbEMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssb0JBQW9CLENBQUMsQ0FBQztRQUNyRixJQUFJLENBQUMsaUJBQWlCLEVBQUUsTUFBTSxFQUFFO1lBQzlCLE9BQU87U0FDUjtRQUVELE1BQU0sQ0FBQyxHQUFHLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzVDLE9BQU8sQ0FBQyxJQUFJLFNBQVMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNyRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVJRGVmaW5pdGlvbk1ldGFkYXRhLCBpc0RlZmluZWQgfSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcbmltcG9ydCB7IGZsYXR0ZW4sIGtlYmFiQ2FzZSwgc2V0IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCAqIGFzIHNhc3MgZnJvbSAnc2Fzcyc7XG5pbXBvcnQgeyBERUZBVUxUX1BMVUdJTlMgfSBmcm9tICcuLi9jbXMuZGVmYXVsdCc7XG5pbXBvcnQgeyBDT05GSUcgfSBmcm9tICcuLi9jbXMuZWxlbWVudHMnO1xuaW1wb3J0IHsgTEFZT1VUIH0gZnJvbSAnLi4vY21zLmxheW91dHMnO1xuaW1wb3J0IHsgQ01TUHJldmlld0NvbmZpZyB9IGZyb20gJy4uL2NvbXBvbmVudHMvcHJldmlldyc7XG5pbXBvcnQgeyBFbnRpdHkgfSBmcm9tICcuLi9lbmdpbmUvbW9kZWxzL2VudGl0eSc7XG5pbXBvcnQge1xuICBERUZBVUxUX1BMVUdJTlNfVE9LRU4sXG4gIEVMRU1FTlRfQ09ORklHLFxuICBFTEVNRU5UX01FVEFEQVRBLFxuICBTSEFSRURfRUxFTUVOVF9NRVRBREFUQSxcbiAgVUlfREVGSU5JVElPTl9NRVRBREFUQSxcbn0gZnJvbSAnLi4vaW5qZWN0aW9uLXRva2Vucyc7XG5pbXBvcnQgeyBFbGVtZW50TWV0YWRhdGEsIEVsZW1lbnRTdHlsZURlY2xhcmF0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgZ2V0RWxlbWVudEFuZ3VsYXJJT3MgfSBmcm9tICcuL2VsZW1lbnQudXRpbHMnO1xuaW1wb3J0IHsgZ2V0U2NyaXB0Q2xhc3MgfSBmcm9tICcuL3NjcmlwdC51dGlscyc7XG5pbXBvcnQgeyBUcmFuc3BpbGF0aW9uV29ya2VyIH0gZnJvbSAnLi90cmFuc3BpbGF0aW9uLXdvcmtlcic7XG5cbmV4cG9ydCBjbGFzcyBFbGVtZW50c1Jlc29sdmVyIHtcbiAgcHVibGljIGVsZW1lbnRzOiBFbGVtZW50TWV0YWRhdGFbXTtcblxuICBwcml2YXRlIHJlbmRlcmFibGVFbGVtZW50czogRWxlbWVudE1ldGFkYXRhW10gPSBbXTtcbiAgcHJpdmF0ZSBzaGFyZWRFbGVtZW50czogRWxlbWVudE1ldGFkYXRhW10gPSBbXTtcbiAgcHJpdmF0ZSB1aURlZk1ldGFkYXRhOiBVSURlZmluaXRpb25NZXRhZGF0YTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHVpRGVmOiBVSURlZmluaXRpb25NZXRhZGF0YSxcbiAgICBlbGVtZW50czogRWxlbWVudE1ldGFkYXRhW10sXG4gICAgc2hhcmVkRWxlbWVudHM6IEVsZW1lbnRNZXRhZGF0YVtdID0gW10sXG4gICAgcHJpdmF0ZSBjb25maWc/OiBDTVNQcmV2aWV3Q29uZmlnLFxuICApIHtcbiAgICB0aGlzLnNoYXJlZEVsZW1lbnRzID0gdGhpcy5mbGF0dGVuRWxlbWVudHMoZWxlbWVudHMpXG4gICAgICAuZmlsdGVyKGVsID0+IHRoaXMuaXNTaGFyZWRFbGVtZW50KGVsKSlcbiAgICAgIC5jb25jYXQoc2hhcmVkRWxlbWVudHMpO1xuXG4gICAgdGhpcy5lbGVtZW50cyA9IGVsZW1lbnRzLm1hcChlbCA9PiB0aGlzLnByb2Nlc3NFbGVtZW50TWV0YWRhdGEoZWwpKS5maWx0ZXIoaXNEZWZpbmVkKTtcblxuICAgIHRoaXMucmVuZGVyYWJsZUVsZW1lbnRzID0gdGhpcy5nZXRSZW5kZXJhYmxlRWxlbWVudHModGhpcy5lbGVtZW50cyk7XG5cbiAgICB0aGlzLnVpRGVmTWV0YWRhdGEgPSB7XG4gICAgICAuLi50aGlzLnVpRGVmLFxuICAgICAgY3VzdG9taXphdGlvbjogdGhpcy51aURlZi5jdXN0b21pemF0aW9uID8/IHRoaXMuZ2V0RGVmYXVsdEN1c3RvbWl6YXRpb25TdGF0ZSgpLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgYWRkRWxlbWVudChlbGVtZW50OiBFbGVtZW50TWV0YWRhdGEpOiB2b2lkIHtcbiAgICBpZiAoZWxlbWVudC5pc1NoYXJlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHRyYW5zcGlsZWRFbGVtZW50cyA9IG5ldyBUcmFuc3BpbGF0aW9uV29ya2VyKFtlbGVtZW50XSkuZ2V0KCk7XG4gICAgdGhpcy5lbGVtZW50cyA9IHRyYW5zcGlsZWRFbGVtZW50cy5tYXAoZWwgPT4gdGhpcy5wcm9jZXNzRWxlbWVudE1ldGFkYXRhKGVsKSkuZmlsdGVyKGlzRGVmaW5lZCk7XG4gICAgdGhpcy5yZW5kZXJhYmxlRWxlbWVudHMgPSB0aGlzLmdldFJlbmRlcmFibGVFbGVtZW50cyh0aGlzLmVsZW1lbnRzKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXROZ0NvbXBvbmVudHMoKTogUmVjb3JkPHN0cmluZywgVHlwZTxFbnRpdHk+PiB7XG4gICAgcmV0dXJuIFsuLi50aGlzLnJlbmRlcmFibGVFbGVtZW50cywgLi4udGhpcy5zaGFyZWRFbGVtZW50c10uZmlsdGVyKGlzRGVmaW5lZCkucmVkdWNlKFxuICAgICAgKHRydW5rLCBlbCkgPT4gKHtcbiAgICAgICAgLi4udHJ1bmssXG4gICAgICAgIFtlbC5wYXRoXTogdGhpcy5yZXNvbHZlRWxlbWVudChlbCksXG4gICAgICB9KSxcbiAgICAgIHt9LFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGZsYXR0ZW5FbGVtZW50cyhlbGVtZW50czogRWxlbWVudE1ldGFkYXRhW10pOiBFbGVtZW50TWV0YWRhdGFbXSB7XG4gICAgcmV0dXJuIGZsYXR0ZW4oZWxlbWVudHMubWFwKGVsID0+IFtlbCwgLi4udGhpcy5mbGF0dGVuRWxlbWVudHMoZWwuY2hpbGRyZW4pXSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1NoYXJlZEVsZW1lbnQoZWw6IEVsZW1lbnRNZXRhZGF0YSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBCb29sZWFuKGVsLmlzU2hhcmVkKSAmJiBlbC50eXBlICE9PSAnUkVGRVJFTkNFJztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UmVuZGVyYWJsZUVsZW1lbnRzKGVsZW1lbnRzOiBFbGVtZW50TWV0YWRhdGFbXSk6IEVsZW1lbnRNZXRhZGF0YVtdIHtcbiAgICBjb25zdCByZW5kZXJhYmxlOiBFbGVtZW50TWV0YWRhdGFbXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBlbCBvZiBlbGVtZW50cykge1xuICAgICAgLy8gSW4gYGN1c3RvbWl6YXRpb25Nb2RlYCByZW5kZXIgb25seSBlbGVtZW50IHdpdGggQ1VTVE9NSVpBVElPTl9QQUdFIHR5cGVcbiAgICAgIGNvbnN0IHR5cGVQZXJNb2RlID0gQm9vbGVhbih0aGlzLmNvbmZpZz8uY3VzdG9taXphdGlvbk1vZGUpID09PSAoZWwudHlwZSA9PT0gJ0NVU1RPTUlaQVRJT05fUEFHRScpO1xuICAgICAgaWYgKCF0aGlzLmlzU2hhcmVkRWxlbWVudChlbCkgJiYgdHlwZVBlck1vZGUpIHtcbiAgICAgICAgY29uc3QgY2hpbGRyZW4gPSBlbC5jaGlsZHJlbi5maWx0ZXIoY2hpbGQgPT4gIXRoaXMuaXNTaGFyZWRFbGVtZW50KGNoaWxkKSk7XG4gICAgICAgIGNvbnN0IHJlbmRlcmFibGVDaGlsZHJlbiA9IHRoaXMuZ2V0UmVuZGVyYWJsZUVsZW1lbnRzKGNoaWxkcmVuKTtcbiAgICAgICAgcmVuZGVyYWJsZS5wdXNoKHsgLi4uZWwsIGNoaWxkcmVuIH0sIC4uLnJlbmRlcmFibGVDaGlsZHJlbik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlbmRlcmFibGU7XG4gIH1cblxuICBwcml2YXRlIGdldFNoYXJlZEVsZW1lbnQoZWxlbWVudDogRWxlbWVudE1ldGFkYXRhKTogRWxlbWVudE1ldGFkYXRhIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIWVsZW1lbnQucmVmZXJlbmNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc2hhcmVkRWxlbWVudHMuZmluZChlbCA9PiBlbGVtZW50LnJlZmVyZW5jZSA9PT0gZWwubmFtZSk7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVFbGVtZW50VGVtcGxhdGUoZWxlbWVudDogRWxlbWVudE1ldGFkYXRhKTogc3RyaW5nIHtcbiAgICBjb25zdCBjb25maWcgPSBDT05GSUdbZWxlbWVudC50eXBlXTtcbiAgICBjb25zdCB0ZW1wbGF0ZSA9ICFjb25maWcuc3VwcHJlc3NUZW1wbGF0ZSA/IGVsZW1lbnQudGVtcGxhdGUgOiAnJztcblxuICAgIHJldHVybiB0ZW1wbGF0ZSB8fCBjb25maWcuZGVmYXVsdFRlbXBsYXRlIHx8ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlRWxlbWVudFN0eWxlcyhlbGVtZW50OiBFbGVtZW50TWV0YWRhdGEpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvbmZpZyA9IENPTkZJR1tlbGVtZW50LnR5cGVdO1xuICAgIGxldCBzdHlsZXMgPSAhY29uZmlnLnN1cHByZXNzU3R5bGVzID8gZWxlbWVudC5zdHlsZXMgPz8gJycgOiAnJztcblxuICAgIGNvbnN0IGxheW91dCA9IGVsZW1lbnQubGF5b3V0ICYmIExBWU9VVFtlbGVtZW50LmxheW91dF07XG4gICAgaWYgKGxheW91dD8uc3R5bGVzKSB7XG4gICAgICBzdHlsZXMgKz0gbGF5b3V0LnN0eWxlcztcbiAgICB9XG5cbiAgICByZXR1cm4gc3R5bGVzO1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9jZXNzRWxlbWVudE1ldGFkYXRhKHNvdXJjZUVsZW1lbnQ6IEVsZW1lbnRNZXRhZGF0YSk6IEVsZW1lbnRNZXRhZGF0YSB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IGZpbmFsRWxlbWVudDogRWxlbWVudE1ldGFkYXRhO1xuXG4gICAgaWYgKHNvdXJjZUVsZW1lbnQudHlwZSA9PT0gJ1JFRkVSRU5DRScpIHtcbiAgICAgIGNvbnN0IHNoYXJlZEVsZW1lbnQgPSB0aGlzLmdldFNoYXJlZEVsZW1lbnQoc291cmNlRWxlbWVudCk7XG5cbiAgICAgIGlmICghc2hhcmVkRWxlbWVudCkge1xuICAgICAgICBjb25zb2xlLndhcm4oYFNoYXJlZCBlbGVtZW50IFwiJHtzb3VyY2VFbGVtZW50LnJlZmVyZW5jZX1cIiBub3QgZm91bmRgKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBmaW5hbEVsZW1lbnQgPSB7XG4gICAgICAgIC4uLnNvdXJjZUVsZW1lbnQsXG4gICAgICAgIGNoaWxkcmVuOiB0aGlzLmdldFNoYXJlZENoaWxkcmVuKHNoYXJlZEVsZW1lbnQuY2hpbGRyZW4sIHNvdXJjZUVsZW1lbnQucGF0aCksXG4gICAgICAgIHR5cGU6IHNoYXJlZEVsZW1lbnQudHlwZSxcbiAgICAgICAgdGVtcGxhdGU6IHNoYXJlZEVsZW1lbnQudGVtcGxhdGUsXG4gICAgICAgIHN0eWxlczogKHNoYXJlZEVsZW1lbnQuc3R5bGVzID8/ICcnKSArICdcXG4nICsgKHNvdXJjZUVsZW1lbnQuc3R5bGVzID8/ICcnKSxcbiAgICAgICAgaW5wdXRzOiB7XG4gICAgICAgICAgLi4uc2hhcmVkRWxlbWVudC5pbnB1dHMsXG4gICAgICAgICAgLi4uc291cmNlRWxlbWVudC5pbnB1dHMsXG4gICAgICAgIH0sXG4gICAgICAgIG91dHB1dHM6IHtcbiAgICAgICAgICAuLi5zaGFyZWRFbGVtZW50Lm91dHB1dHMsXG4gICAgICAgICAgLi4uc291cmNlRWxlbWVudC5vdXRwdXRzLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgZmluYWxFbGVtZW50ID0gc291cmNlRWxlbWVudDtcbiAgICAgIGRlbGV0ZSBzb3VyY2VFbGVtZW50LnJlZmVyZW5jZTtcbiAgICB9XG5cbiAgICBmaW5hbEVsZW1lbnQudGVtcGxhdGUgPSB0aGlzLnJlc29sdmVFbGVtZW50VGVtcGxhdGUoZmluYWxFbGVtZW50KTtcbiAgICBmaW5hbEVsZW1lbnQuc3R5bGVzID0gdGhpcy5yZXNvbHZlRWxlbWVudFN0eWxlcyhmaW5hbEVsZW1lbnQpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmZpbmFsRWxlbWVudCxcbiAgICAgIGNoaWxkcmVuOiBmaW5hbEVsZW1lbnQuY2hpbGRyZW4ubWFwKGNoaWxkID0+IHRoaXMucHJvY2Vzc0VsZW1lbnRNZXRhZGF0YShjaGlsZCkpLmZpbHRlcihpc0RlZmluZWQpLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldFNoYXJlZENoaWxkcmVuKGNoaWxkcmVuOiBFbGVtZW50TWV0YWRhdGFbXSwgcGFyZW50UGF0aD86IHN0cmluZyk6IEVsZW1lbnRNZXRhZGF0YVtdIHtcbiAgICByZXR1cm4gY2hpbGRyZW4ubWFwKGMgPT4ge1xuICAgICAgaWYgKCFjLnBhdGgpIHtcbiAgICAgICAgcmV0dXJuIGM7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IFtlbE5hbWVdID0gYy5wYXRoLnNwbGl0KCcvJykucmV2ZXJzZSgpO1xuICAgICAgY29uc3QgcGF0aCA9IHBhcmVudFBhdGggKyAnLycgKyBlbE5hbWU7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmMsXG4gICAgICAgIHBhdGgsXG4gICAgICAgIGNoaWxkcmVuOiB0aGlzLmdldFNoYXJlZENoaWxkcmVuKGMuY2hpbGRyZW4sIHBhdGgpLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZUVsZW1lbnQoZWxlbWVudDogRWxlbWVudE1ldGFkYXRhKTogVHlwZTxFbnRpdHk+IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBjb25maWcgPSBDT05GSUdbZWxlbWVudC50eXBlXTtcbiAgICBjb25zdCBkZWZhdWx0UGx1Z2lucyA9IERFRkFVTFRfUExVR0lOU1t0aGlzLnVpRGVmTWV0YWRhdGEudHlwZV0gPz8gW107XG5cbiAgICBpZiAoIWNvbmZpZykge1xuICAgICAgY29uc29sZS53YXJuKGBVbmtub3duIGVsZW1lbnQgdHlwZSBcIiR7ZWxlbWVudC50eXBlfVwiYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc3R5bGVzID0gdGhpcy5nZXRFbGVtZW50U3R5bGVzKGVsZW1lbnQpO1xuXG4gICAgY29uc3QgY29tcG9uZW50OiBDb21wb25lbnQgPSB7XG4gICAgICBzZWxlY3RvcjogZWxlbWVudC5pc1NoYXJlZCA/IGB2bGMtJHtrZWJhYkNhc2UoZWxlbWVudC5uYW1lKX1gIDogJ3ZsLWVsZW1lbnQnLFxuICAgICAgdGVtcGxhdGU6IGVsZW1lbnQudGVtcGxhdGUsXG4gICAgICAuLi4oc3R5bGVzID8geyBzdHlsZXM6IFtzdHlsZXNdIH0gOiB7fSksXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBERUZBVUxUX1BMVUdJTlNfVE9LRU4sIHVzZVZhbHVlOiBkZWZhdWx0UGx1Z2lucyB9LFxuICAgICAgICB7IHByb3ZpZGU6IFVJX0RFRklOSVRJT05fTUVUQURBVEEsIHVzZVZhbHVlOiB0aGlzLnVpRGVmTWV0YWRhdGEgfSxcbiAgICAgICAgeyBwcm92aWRlOiBFTEVNRU5UX01FVEFEQVRBLCB1c2VWYWx1ZTogZWxlbWVudCB9LFxuICAgICAgICB7IHByb3ZpZGU6IFNIQVJFRF9FTEVNRU5UX01FVEFEQVRBLCB1c2VWYWx1ZTogdGhpcy5nZXRTaGFyZWRFbGVtZW50KGVsZW1lbnQpIH0sXG4gICAgICAgIHsgcHJvdmlkZTogRUxFTUVOVF9DT05GSUcsIHVzZVZhbHVlOiBjb25maWcgfSxcbiAgICAgIF0sXG4gICAgICBpbnB1dHM6IGdldEVsZW1lbnRBbmd1bGFySU9zKE9iamVjdC5rZXlzKGVsZW1lbnQuaW5wdXRzID8/IHt9KSksXG4gICAgICBvdXRwdXRzOiBnZXRFbGVtZW50QW5ndWxhcklPcyhPYmplY3Qua2V5cyhlbGVtZW50Lm91dHB1dHMgPz8ge30pKSxcbiAgICB9O1xuXG4gICAgY29uc3QgY21wID0gQ29tcG9uZW50KGNvbXBvbmVudCkoY2xhc3MgQyBleHRlbmRzIGNvbmZpZy5jb21wb25lbnQge30pO1xuXG4gICAgc2V0KGNtcCwgJ3BhdGgnLCBlbGVtZW50LnBhdGgpO1xuXG4gICAgcmV0dXJuIGNtcDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RWxlbWVudFN0eWxlcyhlbGVtZW50OiBFbGVtZW50TWV0YWRhdGEpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGxldCByZXN1bHQgPSAnJztcblxuICAgIGNvbnN0IGNvbmZpZ3VyZWRTdHlsZXMgPSB0aGlzLmNvbnZlcnRJbmxpbmVTdHlsZXNUb0NTUyhlbGVtZW50LmNvbmZpZ3VyZWRTdHlsZXMpO1xuICAgIGlmIChjb25maWd1cmVkU3R5bGVzKSB7XG4gICAgICAvLyBvcmRlciBpcyBpbXBvcnRhbnQ6IHN0eWxlcyB3cml0dGVuIGJ5IHVzZXIgaW4gQ1NTIGNvZGUgc2hvdWxkIGhhcyBoaWdoZXIgcHJpb3JpdHlcbiAgICAgIHJlc3VsdCArPSBjb25maWd1cmVkU3R5bGVzO1xuICAgIH1cblxuICAgIGlmIChlbGVtZW50LnN0eWxlcykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmVzdWx0ICs9IHNhc3MuY29tcGlsZVN0cmluZyhlbGVtZW50LnN0eWxlcykuY3NzO1xuICAgICAgfSBjYXRjaCAoXykge1xuICAgICAgICByZXN1bHQgKz0gZWxlbWVudC5zdHlsZXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdCB8fCB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIGNvbnZlcnRJbmxpbmVTdHlsZXNUb0NTUyhzdHlsZXM/OiBFbGVtZW50U3R5bGVEZWNsYXJhdGlvbik6IHN0cmluZyB7XG4gICAgaWYgKCFzdHlsZXMpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBjb25zdCBlbnRyaWVzID0gT2JqZWN0LmVudHJpZXMoc3R5bGVzKTtcbiAgICBsZXQgcmVzdWx0ID0gJzpob3N0IHtcXG4nO1xuXG4gICAgZW50cmllcy5mb3JFYWNoKChbc3R5bGUsIHZhbHVlXSkgPT4ge1xuICAgICAgcmVzdWx0ICs9IGAgICR7a2ViYWJDYXNlKHN0eWxlKX06JHt2YWx1ZX07XFxuYDtcbiAgICB9KTtcblxuICAgIHJlc3VsdCArPSAnfVxcbic7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREZWZhdWx0Q3VzdG9taXphdGlvblN0YXRlKCk6IHVua25vd24ge1xuICAgIGNvbnN0IGN1c3RvbWl6YXRpb25QYWdlID0gdGhpcy5lbGVtZW50cy5maW5kKGVsID0+IGVsLnR5cGUgPT09ICdDVVNUT01JWkFUSU9OX1BBR0UnKTtcbiAgICBpZiAoIWN1c3RvbWl6YXRpb25QYWdlPy5zY3JpcHQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjID0gZ2V0U2NyaXB0Q2xhc3MoY3VzdG9taXphdGlvblBhZ2UpO1xuICAgIHJldHVybiBjICYmICdkZWZhdWx0JyBpbiBjID8gYy5kZWZhdWx0IDogdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
|
@@ -5,7 +5,8 @@ export function btoaSafe(str) {
|
|
5
5
|
try {
|
6
6
|
const encoder = new TextEncoder();
|
7
7
|
const charCodes = encoder.encode(str);
|
8
|
-
|
8
|
+
const convertedString = charCodes.reduce((r, charCode) => r + String.fromCharCode(charCode), '');
|
9
|
+
return window.btoa(convertedString) || '';
|
9
10
|
}
|
10
11
|
catch (e) {
|
11
12
|
return '';
|
@@ -25,4 +26,4 @@ export function atobSafe(str) {
|
|
25
26
|
return '';
|
26
27
|
}
|
27
28
|
}
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jb2RpbmcudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvdXRpbHMvZW5jb2RpbmcudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLFFBQVEsQ0FBQyxHQUFZO0lBQ25DLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDUixPQUFPLEVBQUUsQ0FBQztLQUNYO0lBQ0QsSUFBSTtRQUNGLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDbEMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxNQUFNLGVBQWUsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakcsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztLQUMzQztJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxFQUFFLENBQUM7S0FDWDtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsUUFBUSxDQUFDLEdBQVk7SUFDbkMsSUFBSSxDQUFDLEdBQUcsRUFBRTtRQUNSLE9BQU8sRUFBRSxDQUFDO0tBQ1g7SUFDRCxJQUFJO1FBQ0YsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNoQyxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNqRyxNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6QyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDOUI7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sRUFBRSxDQUFDO0tBQ1g7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGJ0b2FTYWZlKHN0cj86IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICghc3RyKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG4gIHRyeSB7XG4gICAgY29uc3QgZW5jb2RlciA9IG5ldyBUZXh0RW5jb2RlcigpO1xuICAgIGNvbnN0IGNoYXJDb2RlcyA9IGVuY29kZXIuZW5jb2RlKHN0cik7XG4gICAgY29uc3QgY29udmVydGVkU3RyaW5nID0gY2hhckNvZGVzLnJlZHVjZSgociwgY2hhckNvZGUpID0+IHIgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGNoYXJDb2RlKSwgJycpO1xuICAgIHJldHVybiB3aW5kb3cuYnRvYShjb252ZXJ0ZWRTdHJpbmcpIHx8ICcnO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhdG9iU2FmZShzdHI/OiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoIXN0cikge1xuICAgIHJldHVybiAnJztcbiAgfVxuICB0cnkge1xuICAgIGNvbnN0IGJpbmFyeSA9IHdpbmRvdy5hdG9iKHN0cik7XG4gICAgY29uc3QgYnl0ZXMgPSBVaW50OEFycmF5LmZyb20oeyBsZW5ndGg6IGJpbmFyeS5sZW5ndGggfSwgKF8sIGluZGV4KSA9PiBiaW5hcnkuY2hhckNvZGVBdChpbmRleCkpO1xuICAgIGNvbnN0IGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoJ3V0Zi04Jyk7XG4gICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlKGJ5dGVzKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiAnJztcbiAgfVxufVxuIl19
|
@@ -1,6 +1,9 @@
|
|
1
|
+
export * from './element-metadata-worker';
|
1
2
|
export * from './element.utils';
|
2
3
|
export * from './elements-resolver';
|
4
|
+
export * from './encoding.utils';
|
3
5
|
export * from './path.utils';
|
6
|
+
export * from './transpilation-worker';
|
4
7
|
export * from './ui-builder-layout.utils';
|
5
8
|
export * from './ui-definition.utils';
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZWxlbWVudC1tZXRhZGF0YS13b3JrZXInO1xuZXhwb3J0ICogZnJvbSAnLi9lbGVtZW50LnV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vZWxlbWVudHMtcmVzb2x2ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9lbmNvZGluZy51dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL3BhdGgudXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi90cmFuc3BpbGF0aW9uLXdvcmtlcic7XG5leHBvcnQgKiBmcm9tICcuL3VpLWJ1aWxkZXItbGF5b3V0LnV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vdWktZGVmaW5pdGlvbi51dGlscyc7XG4iXX0=
|
@@ -4,7 +4,7 @@ export const parseBoundPath = (path) => {
|
|
4
4
|
const regexp = new RegExp(`(?:\\/)(?:\\w+)(?:\\/)(?:ports|attributes)(?:\\/)(?:\\w+)|(?:\\/)(?:\\w+)`, 'g');
|
5
5
|
const blocks = path.match(regexp)?.map(match => {
|
6
6
|
const [type, property, name] = compact(match.split('/'));
|
7
|
-
return { type, property, name };
|
7
|
+
return { type: type ?? '', property, name };
|
8
8
|
}) ?? [];
|
9
9
|
return blocks;
|
10
10
|
};
|
@@ -32,7 +32,7 @@ export const parsePath = (path) => {
|
|
32
32
|
};
|
33
33
|
export const getAbsolutePath = (elements, subject, path) => {
|
34
34
|
if (path.module) {
|
35
|
-
return findElementByModule(elements, path.module, path.segments[0])?.path;
|
35
|
+
return findElementByModule(elements, path.module, path.segments[0] ?? '')?.path;
|
36
36
|
}
|
37
37
|
const subjectSegments = subject.path?.split('/') ?? [];
|
38
38
|
const segments = [...path.segments];
|
@@ -50,4 +50,4 @@ export const getAbsolutePath = (elements, subject, path) => {
|
|
50
50
|
}
|
51
51
|
return subjectSegments.join('/');
|
52
52
|
};
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0aC51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2Ntcy91dGlscy9wYXRoLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFakMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFNUQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsSUFBWSxFQUFlLEVBQUU7SUFDMUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsMkVBQTJFLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDNUcsTUFBTSxNQUFNLEdBQ1YsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDOUIsTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN6RCxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzlDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUVYLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLElBQVksRUFBZSxFQUFFO0lBQ3JELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsSUFBSSxNQUEwQixDQUFDO0lBQy9CLElBQUksUUFBNEIsQ0FBQztJQUVqQyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDaEMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDekM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFO1FBQzlDLFFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3pDO0lBRUQsTUFBTSxVQUFVLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEMsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRWxELElBQUksQ0FBQyxVQUFVLElBQUksZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFO1FBQzlDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO0tBQzFCO0lBRUQsT0FBTztRQUNMLFVBQVU7UUFDVixRQUFRLEVBQUUsZ0JBQWdCO1FBQzFCLE1BQU07UUFDTixRQUFRO0tBQ1QsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUM3QixRQUEyQixFQUMzQixPQUF3QixFQUN4QixJQUFpQixFQUNHLEVBQUU7SUFDdEIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1FBQ2YsT0FBTyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQztLQUNqRjtJQUVELE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2RCxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRXBDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtRQUNuQixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDM0I7SUFFRCxPQUFPLFFBQVEsQ0FBQyxNQUFNLEVBQUU7UUFDdEIsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRWpDLElBQUksT0FBTyxLQUFLLElBQUksRUFBRTtZQUNwQixlQUFlLENBQUMsR0FBRyxFQUFFLENBQUM7U0FDdkI7YUFBTSxJQUFJLE9BQU8sRUFBRTtZQUNsQixlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQy9CO0tBQ0Y7SUFFRCxPQUFPLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDbkMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcGFjdCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBFbGVtZW50TWV0YWRhdGEsIEVsZW1lbnRQYXRoLCBQYXRoQmxvY2sgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBmaW5kRWxlbWVudEJ5TW9kdWxlIH0gZnJvbSAnLi91aS1kZWZpbml0aW9uLnV0aWxzJztcblxuZXhwb3J0IGNvbnN0IHBhcnNlQm91bmRQYXRoID0gKHBhdGg6IHN0cmluZyk6IFBhdGhCbG9ja1tdID0+IHtcbiAgY29uc3QgcmVnZXhwID0gbmV3IFJlZ0V4cChgKD86XFxcXC8pKD86XFxcXHcrKSg/OlxcXFwvKSg/OnBvcnRzfGF0dHJpYnV0ZXMpKD86XFxcXC8pKD86XFxcXHcrKXwoPzpcXFxcLykoPzpcXFxcdyspYCwgJ2cnKTtcbiAgY29uc3QgYmxvY2tzOiBQYXRoQmxvY2tbXSA9XG4gICAgcGF0aC5tYXRjaChyZWdleHApPy5tYXAobWF0Y2ggPT4ge1xuICAgICAgY29uc3QgW3R5cGUsIHByb3BlcnR5LCBuYW1lXSA9IGNvbXBhY3QobWF0Y2guc3BsaXQoJy8nKSk7XG4gICAgICByZXR1cm4geyB0eXBlOiB0eXBlID8/ICcnLCBwcm9wZXJ0eSwgbmFtZSB9O1xuICAgIH0pID8/IFtdO1xuXG4gIHJldHVybiBibG9ja3M7XG59O1xuXG5leHBvcnQgY29uc3QgcGFyc2VQYXRoID0gKHBhdGg6IHN0cmluZyk6IEVsZW1lbnRQYXRoID0+IHtcbiAgY29uc3Qgc2VnbWVudHMgPSBwYXRoLnNwbGl0KCcvJyk7XG4gIGxldCBtb2R1bGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgbGV0IHZhcmlhYmxlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgaWYgKHNlZ21lbnRzWzBdPy5zdGFydHNXaXRoKCdAJykpIHtcbiAgICBtb2R1bGUgPSBzZWdtZW50cy5zaGlmdCgpPy5zdWJzdHJpbmcoMSk7XG4gIH1cblxuICBpZiAoc2VnbWVudHNbc2VnbWVudHMubGVuZ3RoIC0gMV0/LlswXSA9PT0gJzonKSB7XG4gICAgdmFyaWFibGUgPSBzZWdtZW50cy5wb3AoKT8uc3Vic3RyaW5nKDEpO1xuICB9XG5cbiAgY29uc3QgaXNBYnNvbHV0ZSA9ICFzZWdtZW50c1swXTtcbiAgY29uc3Qgbm9uRW1wdHlTZWdtZW50cyA9IHNlZ21lbnRzLmZpbHRlcihCb29sZWFuKTtcblxuICBpZiAoIWlzQWJzb2x1dGUgJiYgbm9uRW1wdHlTZWdtZW50c1swXSA9PT0gJy4nKSB7XG4gICAgbm9uRW1wdHlTZWdtZW50cy5zaGlmdCgpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBpc0Fic29sdXRlLFxuICAgIHNlZ21lbnRzOiBub25FbXB0eVNlZ21lbnRzLFxuICAgIG1vZHVsZSxcbiAgICB2YXJpYWJsZSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRBYnNvbHV0ZVBhdGggPSAoXG4gIGVsZW1lbnRzOiBFbGVtZW50TWV0YWRhdGFbXSxcbiAgc3ViamVjdDogRWxlbWVudE1ldGFkYXRhLFxuICBwYXRoOiBFbGVtZW50UGF0aCxcbik6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4gIGlmIChwYXRoLm1vZHVsZSkge1xuICAgIHJldHVybiBmaW5kRWxlbWVudEJ5TW9kdWxlKGVsZW1lbnRzLCBwYXRoLm1vZHVsZSwgcGF0aC5zZWdtZW50c1swXSA/PyAnJyk/LnBhdGg7XG4gIH1cblxuICBjb25zdCBzdWJqZWN0U2VnbWVudHMgPSBzdWJqZWN0LnBhdGg/LnNwbGl0KCcvJykgPz8gW107XG4gIGNvbnN0IHNlZ21lbnRzID0gWy4uLnBhdGguc2VnbWVudHNdO1xuXG4gIGlmIChwYXRoLmlzQWJzb2x1dGUpIHtcbiAgICByZXR1cm4gc2VnbWVudHMuam9pbignLycpO1xuICB9XG5cbiAgd2hpbGUgKHNlZ21lbnRzLmxlbmd0aCkge1xuICAgIGNvbnN0IHNlZ21lbnQgPSBzZWdtZW50cy5zaGlmdCgpO1xuXG4gICAgaWYgKHNlZ21lbnQgPT09ICcuLicpIHtcbiAgICAgIHN1YmplY3RTZWdtZW50cy5wb3AoKTtcbiAgICB9IGVsc2UgaWYgKHNlZ21lbnQpIHtcbiAgICAgIHN1YmplY3RTZWdtZW50cy5wdXNoKHNlZ21lbnQpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdWJqZWN0U2VnbWVudHMuam9pbignLycpO1xufTtcbiJdfQ==
|
@@ -1,21 +1,25 @@
|
|
1
|
-
import { UUID } from '@veloceapps/core';
|
1
|
+
import { isDefined, UUID } from '@veloceapps/core';
|
2
2
|
import { vendorMap } from '../vendor-map';
|
3
|
-
const importRegexp = new RegExp(`import
|
3
|
+
const importRegexp = new RegExp(`import\\s+(?:{[^{}]+}|.*?)\\s*(?:from)?\\s*['"].*?['"]|import\\(.*?\\)`, 'g');
|
4
|
+
const importPartsRegexp = new RegExp(`import ([\\n\\t]*(?:[^ \\n\\t\\{\\}]+[ \\n\\t]*,?)?(?:[ \\n\\t]*\\{(?:[ \\n\\t]*[^ \\n\\t"'\\{\\}]+[ \\n\\t]*,?)+\\})?[\\n\\t]*) from[ \\n\\t]*(['"])([^'"\\n]+)(?:['"])`, 'g');
|
4
5
|
const normalizeImports = (script, elementPath) => {
|
5
|
-
|
6
|
-
|
7
|
-
.trim()
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
6
|
+
return script.replace(importRegexp, match => {
|
7
|
+
return match.replace(importPartsRegexp, (_, g1, __, src) => {
|
8
|
+
const strObj = g1.replace(/ as /g, ': ').trim();
|
9
|
+
const imports = strObj
|
10
|
+
.slice(1, -1)
|
11
|
+
.split(',')
|
12
|
+
.map(item => item.split(':')[0])
|
13
|
+
.filter(isDefined)
|
14
|
+
.map(item => item.trim());
|
15
|
+
imports.forEach(item => {
|
16
|
+
if (!vendorMap[src]?.[item]) {
|
17
|
+
throw new Error(`Failed to import ${item} from '${src}' in ${elementPath}/script.ts`);
|
18
|
+
}
|
19
|
+
});
|
20
|
+
return `const ${strObj} = vendor['${src}'];`;
|
15
21
|
});
|
16
|
-
return `const ${g1} = vendor['${src}'];`;
|
17
22
|
});
|
18
|
-
return result;
|
19
23
|
};
|
20
24
|
export const getScriptClass = (metadata) => {
|
21
25
|
if (!metadata?.script) {
|
@@ -39,4 +43,4 @@ export const getScriptClass = (metadata) => {
|
|
39
43
|
document.body.removeChild(script);
|
40
44
|
return ScriptClass;
|
41
45
|
};
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyaXB0LnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY21zL3V0aWxzL3NjcmlwdC51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxNQUFNLENBQUMsd0VBQXdFLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDL0csTUFBTSxpQkFBaUIsR0FBRyxJQUFJLE1BQU0sQ0FDbEMsMEtBQTBLLEVBQzFLLEdBQUcsQ0FDSixDQUFDO0FBRUYsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLE1BQWMsRUFBRSxXQUFtQixFQUFVLEVBQUU7SUFDdkUsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsRUFBRTtRQUMxQyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUN6RCxNQUFNLE1BQU0sR0FBSSxFQUFhLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM1RCxNQUFNLE9BQU8sR0FBRyxNQUFNO2lCQUNuQixLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2lCQUNaLEtBQUssQ0FBQyxHQUFHLENBQUM7aUJBQ1YsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDL0IsTUFBTSxDQUFDLFNBQVMsQ0FBQztpQkFDakIsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7WUFFNUIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDckIsSUFBSSxDQUFFLFNBQWlDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDcEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsSUFBSSxVQUFVLEdBQUcsUUFBUSxXQUFXLFlBQVksQ0FBQyxDQUFDO2lCQUN2RjtZQUNILENBQUMsQ0FBQyxDQUFDO1lBRUgsT0FBTyxTQUFTLE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQztRQUMvQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsUUFBMEIsRUFBc0IsRUFBRTtJQUMvRSxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRTtRQUNyQixPQUFPO0tBQ1I7SUFFRCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDN0IsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoRCxNQUFNLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFDO0lBRWhDLElBQUksYUFBYSxHQUFHLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXJFLE1BQU0sVUFBVSxHQUFHLG9CQUFvQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM1RCxNQUFNLFNBQVMsR0FBRyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVsQyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsU0FBUyxFQUFFO1FBQzdCLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQztRQUNwRCxPQUFPO0tBQ1I7SUFFRCxhQUFhLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBRTNFLE1BQU0sQ0FBQyxJQUFJLEdBQUcsT0FBTyxFQUFFLHdCQUF3QixhQUFhO2VBQy9DLFNBQVMsTUFBTSxDQUFDO0lBRTdCLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRWxDLE1BQU0sV0FBVyxHQUFJLE1BQWMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFdkQsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFbEMsT0FBTyxXQUFXLENBQUM7QUFDckIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNEZWZpbmVkLCBVVUlEIH0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5pbXBvcnQgeyBFbGVtZW50TWV0YWRhdGEgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyB2ZW5kb3JNYXAgfSBmcm9tICcuLi92ZW5kb3ItbWFwJztcblxuY29uc3QgaW1wb3J0UmVnZXhwID0gbmV3IFJlZ0V4cChgaW1wb3J0XFxcXHMrKD86e1tee31dK318Lio/KVxcXFxzKig/OmZyb20pP1xcXFxzKlsnXCJdLio/WydcIl18aW1wb3J0XFxcXCguKj9cXFxcKWAsICdnJyk7XG5jb25zdCBpbXBvcnRQYXJ0c1JlZ2V4cCA9IG5ldyBSZWdFeHAoXG4gIGBpbXBvcnQgKFtcXFxcblxcXFx0XSooPzpbXiBcXFxcblxcXFx0XFxcXHtcXFxcfV0rWyBcXFxcblxcXFx0XSosPyk/KD86WyBcXFxcblxcXFx0XSpcXFxceyg/OlsgXFxcXG5cXFxcdF0qW14gXFxcXG5cXFxcdFwiJ1xcXFx7XFxcXH1dK1sgXFxcXG5cXFxcdF0qLD8pK1xcXFx9KT9bXFxcXG5cXFxcdF0qKSBmcm9tWyBcXFxcblxcXFx0XSooWydcIl0pKFteJ1wiXFxcXG5dKykoPzpbJ1wiXSlgLFxuICAnZycsXG4pO1xuXG5jb25zdCBub3JtYWxpemVJbXBvcnRzID0gKHNjcmlwdDogc3RyaW5nLCBlbGVtZW50UGF0aDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgcmV0dXJuIHNjcmlwdC5yZXBsYWNlKGltcG9ydFJlZ2V4cCwgbWF0Y2ggPT4ge1xuICAgIHJldHVybiBtYXRjaC5yZXBsYWNlKGltcG9ydFBhcnRzUmVnZXhwLCAoXywgZzEsIF9fLCBzcmMpID0+IHtcbiAgICAgIGNvbnN0IHN0ck9iaiA9IChnMSBhcyBzdHJpbmcpLnJlcGxhY2UoLyBhcyAvZywgJzogJykudHJpbSgpO1xuICAgICAgY29uc3QgaW1wb3J0cyA9IHN0ck9ialxuICAgICAgICAuc2xpY2UoMSwgLTEpXG4gICAgICAgIC5zcGxpdCgnLCcpXG4gICAgICAgIC5tYXAoaXRlbSA9PiBpdGVtLnNwbGl0KCc6JylbMF0pXG4gICAgICAgIC5maWx0ZXIoaXNEZWZpbmVkKVxuICAgICAgICAubWFwKGl0ZW0gPT4gaXRlbS50cmltKCkpO1xuXG4gICAgICBpbXBvcnRzLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIGlmICghKHZlbmRvck1hcCBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+KVtzcmNdPy5baXRlbV0pIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBpbXBvcnQgJHtpdGVtfSBmcm9tICcke3NyY30nIGluICR7ZWxlbWVudFBhdGh9L3NjcmlwdC50c2ApO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIGBjb25zdCAke3N0ck9ian0gPSB2ZW5kb3JbJyR7c3JjfSddO2A7XG4gICAgfSk7XG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFNjcmlwdENsYXNzID0gKG1ldGFkYXRhPzogRWxlbWVudE1ldGFkYXRhKTogb2JqZWN0IHwgdW5kZWZpbmVkID0+IHtcbiAgaWYgKCFtZXRhZGF0YT8uc2NyaXB0KSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgaWQgPSBidG9hKFVVSUQuVVVJRCgpKTtcbiAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gIHNjcmlwdC50eXBlID0gYHRleHQvamF2YXNjcmlwdGA7XG5cbiAgbGV0IHNjcmlwdENvbnRlbnQgPSBub3JtYWxpemVJbXBvcnRzKG1ldGFkYXRhLnNjcmlwdCwgbWV0YWRhdGEucGF0aCk7XG5cbiAgY29uc3QgY2xhc3NNYXRjaCA9IC9leHBvcnQgY2xhc3MgKFxcUyspLy5leGVjKHNjcmlwdENvbnRlbnQpO1xuICBjb25zdCBjbGFzc05hbWUgPSBjbGFzc01hdGNoPy5bMV07XG5cbiAgaWYgKCFjbGFzc01hdGNoIHx8ICFjbGFzc05hbWUpIHtcbiAgICBjb25zb2xlLmVycm9yKFwiU2NyaXB0IGRvZXNuJ3QgaGF2ZSBleHBvcnRlZCBjbGFzc1wiKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBzY3JpcHRDb250ZW50ID0gc2NyaXB0Q29udGVudC5yZXBsYWNlKGNsYXNzTWF0Y2hbMF0sIGBjbGFzcyAke2NsYXNzTmFtZX1gKTtcblxuICBzY3JpcHQudGV4dCA9IGB2YXIgJHtpZH0gPSBmdW5jdGlvbih2ZW5kb3IpIHske3NjcmlwdENvbnRlbnR9XG4gICAgICByZXR1cm4gJHtjbGFzc05hbWV9OyB9O2A7XG5cbiAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQpO1xuXG4gIGNvbnN0IFNjcmlwdENsYXNzID0gKHdpbmRvdyBhcyBhbnkpPy5baWRdPy4odmVuZG9yTWFwKTtcblxuICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHNjcmlwdCk7XG5cbiAgcmV0dXJuIFNjcmlwdENsYXNzO1xufTtcbiJdfQ==
|
@@ -0,0 +1,52 @@
|
|
1
|
+
import { transform } from '@babel/standalone';
|
2
|
+
import { from } from 'rxjs';
|
3
|
+
export class TranspilationWorker {
|
4
|
+
constructor(elements) {
|
5
|
+
this.elements = elements;
|
6
|
+
}
|
7
|
+
get$() {
|
8
|
+
return from((async () => this.transpileScriptsAsync(this.elements))());
|
9
|
+
}
|
10
|
+
get() {
|
11
|
+
return this.transpileScripts(this.elements);
|
12
|
+
}
|
13
|
+
transpileScripts(elements) {
|
14
|
+
return elements.map(el => ({
|
15
|
+
...el,
|
16
|
+
script: this.transpile(el),
|
17
|
+
children: this.transpileScripts(el.children),
|
18
|
+
}));
|
19
|
+
}
|
20
|
+
async transpileScriptsAsync(elements) {
|
21
|
+
const result = [];
|
22
|
+
await this.processLevelAsync(elements, result);
|
23
|
+
return result;
|
24
|
+
}
|
25
|
+
async processLevelAsync(elements, result) {
|
26
|
+
for (const el of elements) {
|
27
|
+
const elMetadata = await this.transpileMetadataAsync(el);
|
28
|
+
result.push(elMetadata);
|
29
|
+
await this.processLevelAsync(el.children, elMetadata.children);
|
30
|
+
}
|
31
|
+
}
|
32
|
+
transpileMetadataAsync(el) {
|
33
|
+
return new Promise(resolve => {
|
34
|
+
setTimeout(() => {
|
35
|
+
const result = { ...el, script: this.transpile(el), children: [] };
|
36
|
+
resolve(result);
|
37
|
+
});
|
38
|
+
});
|
39
|
+
}
|
40
|
+
transpile(el) {
|
41
|
+
if (!el.script) {
|
42
|
+
return;
|
43
|
+
}
|
44
|
+
const transformed = transform(el.script, {
|
45
|
+
filename: el.name + '.ts',
|
46
|
+
presets: ['typescript'],
|
47
|
+
sourceMaps: 'inline',
|
48
|
+
});
|
49
|
+
return transformed.code ?? undefined;
|
50
|
+
}
|
51
|
+
}
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNwaWxhdGlvbi13b3JrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvdXRpbHMvdHJhbnNwaWxhdGlvbi13b3JrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sRUFBYyxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHeEMsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixZQUFvQixRQUEyQjtRQUEzQixhQUFRLEdBQVIsUUFBUSxDQUFtQjtJQUFHLENBQUM7SUFFNUMsSUFBSTtRQUNULE9BQU8sSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFTSxHQUFHO1FBQ1IsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxRQUEyQjtRQUNsRCxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3pCLEdBQUcsRUFBRTtZQUNMLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUMxQixRQUFRLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUM7U0FDN0MsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRU8sS0FBSyxDQUFDLHFCQUFxQixDQUFDLFFBQTJCO1FBQzdELE1BQU0sTUFBTSxHQUFzQixFQUFFLENBQUM7UUFDckMsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxLQUFLLENBQUMsaUJBQWlCLENBQUMsUUFBMkIsRUFBRSxNQUF5QjtRQUNwRixLQUFLLE1BQU0sRUFBRSxJQUFJLFFBQVEsRUFBRTtZQUN6QixNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN6RCxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3hCLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ2hFO0lBQ0gsQ0FBQztJQUVPLHNCQUFzQixDQUFDLEVBQW1CO1FBQ2hELE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDM0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxNQUFNLE1BQU0sR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQztnQkFDbkUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2xCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sU0FBUyxDQUFDLEVBQW1CO1FBQ25DLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFO1lBQ2QsT0FBTztTQUNSO1FBRUQsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUU7WUFDdkMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEdBQUcsS0FBSztZQUN6QixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7WUFDdkIsVUFBVSxFQUFFLFFBQVE7U0FDckIsQ0FBQyxDQUFDO1FBRUgsT0FBTyxXQUFXLENBQUMsSUFBSSxJQUFJLFNBQVMsQ0FBQztJQUN2QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0cmFuc2Zvcm0gfSBmcm9tICdAYmFiZWwvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFbGVtZW50TWV0YWRhdGEgfSBmcm9tICcuLi90eXBlcy9jb21tb24udHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNwaWxhdGlvbldvcmtlciB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudHM6IEVsZW1lbnRNZXRhZGF0YVtdKSB7fVxuXG4gIHB1YmxpYyBnZXQkKCk6IE9ic2VydmFibGU8RWxlbWVudE1ldGFkYXRhW10+IHtcbiAgICByZXR1cm4gZnJvbSgoYXN5bmMgKCkgPT4gdGhpcy50cmFuc3BpbGVTY3JpcHRzQXN5bmModGhpcy5lbGVtZW50cykpKCkpO1xuICB9XG5cbiAgcHVibGljIGdldCgpOiBFbGVtZW50TWV0YWRhdGFbXSB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNwaWxlU2NyaXB0cyh0aGlzLmVsZW1lbnRzKTtcbiAgfVxuXG4gIHByaXZhdGUgdHJhbnNwaWxlU2NyaXB0cyhlbGVtZW50czogRWxlbWVudE1ldGFkYXRhW10pOiBFbGVtZW50TWV0YWRhdGFbXSB7XG4gICAgcmV0dXJuIGVsZW1lbnRzLm1hcChlbCA9PiAoe1xuICAgICAgLi4uZWwsXG4gICAgICBzY3JpcHQ6IHRoaXMudHJhbnNwaWxlKGVsKSxcbiAgICAgIGNoaWxkcmVuOiB0aGlzLnRyYW5zcGlsZVNjcmlwdHMoZWwuY2hpbGRyZW4pLFxuICAgIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdHJhbnNwaWxlU2NyaXB0c0FzeW5jKGVsZW1lbnRzOiBFbGVtZW50TWV0YWRhdGFbXSk6IFByb21pc2U8RWxlbWVudE1ldGFkYXRhW10+IHtcbiAgICBjb25zdCByZXN1bHQ6IEVsZW1lbnRNZXRhZGF0YVtdID0gW107XG4gICAgYXdhaXQgdGhpcy5wcm9jZXNzTGV2ZWxBc3luYyhlbGVtZW50cywgcmVzdWx0KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBwcm9jZXNzTGV2ZWxBc3luYyhlbGVtZW50czogRWxlbWVudE1ldGFkYXRhW10sIHJlc3VsdDogRWxlbWVudE1ldGFkYXRhW10pIHtcbiAgICBmb3IgKGNvbnN0IGVsIG9mIGVsZW1lbnRzKSB7XG4gICAgICBjb25zdCBlbE1ldGFkYXRhID0gYXdhaXQgdGhpcy50cmFuc3BpbGVNZXRhZGF0YUFzeW5jKGVsKTtcbiAgICAgIHJlc3VsdC5wdXNoKGVsTWV0YWRhdGEpO1xuICAgICAgYXdhaXQgdGhpcy5wcm9jZXNzTGV2ZWxBc3luYyhlbC5jaGlsZHJlbiwgZWxNZXRhZGF0YS5jaGlsZHJlbik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB0cmFuc3BpbGVNZXRhZGF0YUFzeW5jKGVsOiBFbGVtZW50TWV0YWRhdGEpOiBQcm9taXNlPEVsZW1lbnRNZXRhZGF0YT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSB7IC4uLmVsLCBzY3JpcHQ6IHRoaXMudHJhbnNwaWxlKGVsKSwgY2hpbGRyZW46IFtdIH07XG4gICAgICAgIHJlc29sdmUocmVzdWx0KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB0cmFuc3BpbGUoZWw6IEVsZW1lbnRNZXRhZGF0YSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCFlbC5zY3JpcHQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB0cmFuc2Zvcm1lZCA9IHRyYW5zZm9ybShlbC5zY3JpcHQsIHtcbiAgICAgIGZpbGVuYW1lOiBlbC5uYW1lICsgJy50cycsXG4gICAgICBwcmVzZXRzOiBbJ3R5cGVzY3JpcHQnXSxcbiAgICAgIHNvdXJjZU1hcHM6ICdpbmxpbmUnLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRyYW5zZm9ybWVkLmNvZGUgPz8gdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
|