@sitecore-jss/sitecore-jss-angular 16.0.2 → 16.0.3-canary.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.txt +202 -202
- package/README.md +5 -5
- package/dist/README.md +5 -5
- package/dist/bundles/sitecore-jss-sitecore-jss-angular.umd.js +1389 -1385
- package/dist/bundles/sitecore-jss-sitecore-jss-angular.umd.js.map +1 -1
- package/dist/bundles/sitecore-jss-sitecore-jss-angular.umd.min.js +1 -1
- package/dist/bundles/sitecore-jss-sitecore-jss-angular.umd.min.js.map +1 -1
- package/dist/components/date.directive.d.ts +17 -17
- package/dist/components/file.directive.d.ts +14 -14
- package/dist/components/generic-link.directive.d.ts +14 -14
- package/dist/components/image.directive.d.ts +28 -28
- package/dist/components/link.directive.d.ts +18 -18
- package/dist/components/missing-component.component.d.ts +3 -3
- package/dist/components/placeholder-loading.directive.d.ts +5 -5
- package/dist/components/placeholder.component.d.ts +45 -45
- package/dist/components/placeholder.token.d.ts +30 -30
- package/dist/components/raw.component.d.ts +9 -9
- package/dist/components/render-component.component.d.ts +29 -29
- package/dist/components/render-each.directive.d.ts +5 -5
- package/dist/components/render-empty.directive.d.ts +5 -5
- package/dist/components/rendering-field.d.ts +20 -20
- package/dist/components/rendering.d.ts +5 -5
- package/dist/components/rich-text.directive.d.ts +12 -12
- package/dist/components/router-link.directive.d.ts +12 -12
- package/dist/components/text.directive.d.ts +13 -13
- package/dist/esm2015/components/date.directive.js +53 -53
- package/dist/esm2015/components/file.directive.js +43 -43
- package/dist/esm2015/components/generic-link.directive.js +58 -58
- package/dist/esm2015/components/image.directive.js +125 -123
- package/dist/esm2015/components/link.directive.js +101 -99
- package/dist/esm2015/components/missing-component.component.js +13 -13
- package/dist/esm2015/components/placeholder-loading.directive.js +15 -15
- package/dist/esm2015/components/placeholder.component.js +192 -192
- package/dist/esm2015/components/placeholder.token.js +21 -21
- package/dist/esm2015/components/raw.component.js +37 -37
- package/dist/esm2015/components/render-component.component.js +89 -89
- package/dist/esm2015/components/render-each.directive.js +15 -15
- package/dist/esm2015/components/render-empty.directive.js +15 -15
- package/dist/esm2015/components/rendering-field.js +1 -1
- package/dist/esm2015/components/rendering.js +8 -8
- package/dist/esm2015/components/rich-text.directive.js +41 -41
- package/dist/esm2015/components/router-link.directive.js +44 -44
- package/dist/esm2015/components/text.directive.js +54 -54
- package/dist/esm2015/jss-component-factory.service.js +87 -87
- package/dist/esm2015/layout-service-error.js +3 -3
- package/dist/esm2015/layout.service.js +28 -28
- package/dist/esm2015/lib.module.js +112 -112
- package/dist/esm2015/public_api.js +16 -16
- package/dist/esm2015/sitecore-jss-sitecore-jss-angular.js +13 -13
- package/dist/fesm2015/sitecore-jss-sitecore-jss-angular.js +1047 -1043
- package/dist/fesm2015/sitecore-jss-sitecore-jss-angular.js.map +1 -1
- package/dist/jss-component-factory.service.d.ts +21 -21
- package/dist/layout-service-error.d.ts +8 -8
- package/dist/layout.service.d.ts +8 -8
- package/dist/lib.module.d.ts +24 -24
- package/dist/package.json +2 -2
- package/dist/public_api.d.ts +16 -16
- package/dist/sitecore-jss-sitecore-jss-angular.d.ts +12 -12
- package/package.json +3 -3
- package/typings/README.md +2 -2
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
import { Directive, Input, TemplateRef, ViewContainerRef, } from '@angular/core';
|
|
2
|
-
export class TextDirective {
|
|
3
|
-
constructor(viewContainer, templateRef) {
|
|
4
|
-
this.viewContainer = viewContainer;
|
|
5
|
-
this.templateRef = templateRef;
|
|
6
|
-
this.editable = true;
|
|
7
|
-
this.encode = true;
|
|
8
|
-
}
|
|
9
|
-
ngOnChanges(changes) {
|
|
10
|
-
if (changes.field || changes.editable || changes.encode) {
|
|
11
|
-
if (!this.viewRef) {
|
|
12
|
-
this.viewContainer.clear();
|
|
13
|
-
this.viewRef = this.viewContainer.createEmbeddedView(this.templateRef);
|
|
14
|
-
}
|
|
15
|
-
this.updateView();
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
updateView() {
|
|
19
|
-
const field = this.field;
|
|
20
|
-
let editable = this.editable;
|
|
21
|
-
if (!field || (!field.editable && !field.value)) {
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
// can't use editable value if we want to output unencoded
|
|
25
|
-
if (!this.encode) {
|
|
26
|
-
editable = false;
|
|
27
|
-
}
|
|
28
|
-
const html = field.editable && editable ? field.editable : field.value;
|
|
29
|
-
const setDangerously = (field.editable && editable) || !this.encode;
|
|
30
|
-
this.viewRef.rootNodes.forEach((node) => {
|
|
31
|
-
if (setDangerously) {
|
|
32
|
-
node.innerHTML = html;
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
node.textContent = html;
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
TextDirective.decorators = [
|
|
41
|
-
{ type: Directive, args: [{
|
|
42
|
-
selector: '[scText]',
|
|
43
|
-
},] }
|
|
44
|
-
];
|
|
45
|
-
TextDirective.ctorParameters = () => [
|
|
46
|
-
{ type: ViewContainerRef },
|
|
47
|
-
{ type: TemplateRef }
|
|
48
|
-
];
|
|
49
|
-
TextDirective.propDecorators = {
|
|
50
|
-
editable: [{ type: Input, args: ['scTextEditable',] }],
|
|
51
|
-
encode: [{ type: Input, args: ['scTextEncode',] }],
|
|
52
|
-
field: [{ type: Input, args: ['scText',] }]
|
|
53
|
-
};
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Directive, Input, TemplateRef, ViewContainerRef, } from '@angular/core';
|
|
2
|
+
export class TextDirective {
|
|
3
|
+
constructor(viewContainer, templateRef) {
|
|
4
|
+
this.viewContainer = viewContainer;
|
|
5
|
+
this.templateRef = templateRef;
|
|
6
|
+
this.editable = true;
|
|
7
|
+
this.encode = true;
|
|
8
|
+
}
|
|
9
|
+
ngOnChanges(changes) {
|
|
10
|
+
if (changes.field || changes.editable || changes.encode) {
|
|
11
|
+
if (!this.viewRef) {
|
|
12
|
+
this.viewContainer.clear();
|
|
13
|
+
this.viewRef = this.viewContainer.createEmbeddedView(this.templateRef);
|
|
14
|
+
}
|
|
15
|
+
this.updateView();
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
updateView() {
|
|
19
|
+
const field = this.field;
|
|
20
|
+
let editable = this.editable;
|
|
21
|
+
if (!field || (!field.editable && !field.value)) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
// can't use editable value if we want to output unencoded
|
|
25
|
+
if (!this.encode) {
|
|
26
|
+
editable = false;
|
|
27
|
+
}
|
|
28
|
+
const html = field.editable && editable ? field.editable : field.value;
|
|
29
|
+
const setDangerously = (field.editable && editable) || !this.encode;
|
|
30
|
+
this.viewRef.rootNodes.forEach((node) => {
|
|
31
|
+
if (setDangerously) {
|
|
32
|
+
node.innerHTML = html;
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
node.textContent = html;
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
TextDirective.decorators = [
|
|
41
|
+
{ type: Directive, args: [{
|
|
42
|
+
selector: '[scText]',
|
|
43
|
+
},] }
|
|
44
|
+
];
|
|
45
|
+
TextDirective.ctorParameters = () => [
|
|
46
|
+
{ type: ViewContainerRef },
|
|
47
|
+
{ type: TemplateRef }
|
|
48
|
+
];
|
|
49
|
+
TextDirective.propDecorators = {
|
|
50
|
+
editable: [{ type: Input, args: ['scTextEditable',] }],
|
|
51
|
+
encode: [{ type: Input, args: ['scTextEncode',] }],
|
|
52
|
+
field: [{ type: Input, args: ['scText',] }]
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvdnN0cy93b3JrLzEvcy9wYWNrYWdlcy9zaXRlY29yZS1qc3MtYW5ndWxhci9zcmMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3RleHQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsS0FBSyxFQUdMLFdBQVcsRUFDWCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFNdkIsTUFBTSxPQUFPLGFBQWE7SUFTeEIsWUFBb0IsYUFBK0IsRUFBVSxXQUE2QjtRQUF0RSxrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFOakUsYUFBUSxHQUFHLElBQUksQ0FBQztRQUVsQixXQUFNLEdBQUcsSUFBSSxDQUFDO0lBSXdELENBQUM7SUFFOUYsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDdkQsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDeEU7WUFFRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDbkI7SUFDSCxDQUFDO0lBRU8sVUFBVTtRQUNoQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3pCLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFFN0IsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMvQyxPQUFPO1NBQ1I7UUFFRCwwREFBMEQ7UUFDMUQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEIsUUFBUSxHQUFHLEtBQUssQ0FBQztTQUNsQjtRQUVELE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3ZFLE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFFcEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDdEMsSUFBSSxjQUFjLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2FBQ3ZCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2FBQ3pCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs7WUFoREYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxVQUFVO2FBQ3JCOzs7WUFOQyxnQkFBZ0I7WUFEaEIsV0FBVzs7O3VCQVdWLEtBQUssU0FBQyxnQkFBZ0I7cUJBRXRCLEtBQUssU0FBQyxjQUFjO29CQUVwQixLQUFLLFNBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgRGlyZWN0aXZlLFxyXG4gIEVtYmVkZGVkVmlld1JlZixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBUZW1wbGF0ZVJlZixcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUZXh0RmllbGQgfSBmcm9tICcuL3JlbmRlcmluZy1maWVsZCc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tzY1RleHRdJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRleHREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIHByaXZhdGUgdmlld1JlZjogRW1iZWRkZWRWaWV3UmVmPGFueT47XHJcblxyXG4gIEBJbnB1dCgnc2NUZXh0RWRpdGFibGUnKSBlZGl0YWJsZSA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgnc2NUZXh0RW5jb2RlJykgZW5jb2RlID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KCdzY1RleHQnKSBmaWVsZDogVGV4dEZpZWxkO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsIHByaXZhdGUgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4pIHt9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGlmIChjaGFuZ2VzLmZpZWxkIHx8IGNoYW5nZXMuZWRpdGFibGUgfHwgY2hhbmdlcy5lbmNvZGUpIHtcclxuICAgICAgaWYgKCF0aGlzLnZpZXdSZWYpIHtcclxuICAgICAgICB0aGlzLnZpZXdDb250YWluZXIuY2xlYXIoKTtcclxuICAgICAgICB0aGlzLnZpZXdSZWYgPSB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGVSZWYpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnVwZGF0ZVZpZXcoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlVmlldygpIHtcclxuICAgIGNvbnN0IGZpZWxkID0gdGhpcy5maWVsZDtcclxuICAgIGxldCBlZGl0YWJsZSA9IHRoaXMuZWRpdGFibGU7XHJcblxyXG4gICAgaWYgKCFmaWVsZCB8fCAoIWZpZWxkLmVkaXRhYmxlICYmICFmaWVsZC52YWx1ZSkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGNhbid0IHVzZSBlZGl0YWJsZSB2YWx1ZSBpZiB3ZSB3YW50IHRvIG91dHB1dCB1bmVuY29kZWRcclxuICAgIGlmICghdGhpcy5lbmNvZGUpIHtcclxuICAgICAgZWRpdGFibGUgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBodG1sID0gZmllbGQuZWRpdGFibGUgJiYgZWRpdGFibGUgPyBmaWVsZC5lZGl0YWJsZSA6IGZpZWxkLnZhbHVlO1xyXG4gICAgY29uc3Qgc2V0RGFuZ2Vyb3VzbHkgPSAoZmllbGQuZWRpdGFibGUgJiYgZWRpdGFibGUpIHx8ICF0aGlzLmVuY29kZTtcclxuXHJcbiAgICB0aGlzLnZpZXdSZWYucm9vdE5vZGVzLmZvckVhY2goKG5vZGUpID0+IHtcclxuICAgICAgaWYgKHNldERhbmdlcm91c2x5KSB7XHJcbiAgICAgICAgbm9kZS5pbm5lckhUTUwgPSBodG1sO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG5vZGUudGV4dENvbnRlbnQgPSBodG1sO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,87 +1,87 @@
|
|
|
1
|
-
import { Inject, Injectable, Injector, Compiler, NgModuleFactory, } from '@angular/core';
|
|
2
|
-
import { DYNAMIC_COMPONENT, PLACEHOLDER_COMPONENTS, PLACEHOLDER_LAZY_COMPONENTS, } from './components/placeholder.token';
|
|
3
|
-
import { RawComponent } from './components/raw.component';
|
|
4
|
-
import { isRawRendering } from './components/rendering';
|
|
5
|
-
export class JssComponentFactoryService {
|
|
6
|
-
constructor(injector, compiler, components, lazyComponents) {
|
|
7
|
-
this.injector = injector;
|
|
8
|
-
this.compiler = compiler;
|
|
9
|
-
this.components = components;
|
|
10
|
-
this.lazyComponents = lazyComponents;
|
|
11
|
-
this.componentMap = new Map();
|
|
12
|
-
this.lazyComponentMap = new Map();
|
|
13
|
-
this.components.forEach((c) => this.componentMap.set(c.name, c.type));
|
|
14
|
-
if (this.lazyComponents) {
|
|
15
|
-
this.lazyComponents.forEach((c) => this.lazyComponentMap.set(c.path, c));
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
loadModuleFactory(lazyComponent) {
|
|
19
|
-
return lazyComponent.loadChildren().then((loaded) => {
|
|
20
|
-
if (loaded instanceof NgModuleFactory) {
|
|
21
|
-
return loaded;
|
|
22
|
-
}
|
|
23
|
-
else {
|
|
24
|
-
return this.compiler.compileModuleAsync(loaded);
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
getComponent(component) {
|
|
29
|
-
const loadedComponent = this.componentMap.get(component.componentName);
|
|
30
|
-
if (loadedComponent) {
|
|
31
|
-
return Promise.resolve({
|
|
32
|
-
componentDefinition: component,
|
|
33
|
-
componentImplementation: this.componentMap.get(component.componentName),
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
const lazyComponent = this.lazyComponentMap.get(component.componentName);
|
|
37
|
-
if (lazyComponent) {
|
|
38
|
-
return this.loadModuleFactory(lazyComponent).then((ngModuleFactory) => {
|
|
39
|
-
let componentType = null;
|
|
40
|
-
const moduleRef = ngModuleFactory.create(this.injector);
|
|
41
|
-
const dynamicComponentType = moduleRef.injector.get(DYNAMIC_COMPONENT);
|
|
42
|
-
if (!dynamicComponentType) {
|
|
43
|
-
throw new Error(`JssComponentFactoryService: Lazy load module for component "${lazyComponent.path}" missing DYNAMIC_COMPONENT provider. Missing JssModule.forChild()?`);
|
|
44
|
-
}
|
|
45
|
-
if (component.componentName in dynamicComponentType) {
|
|
46
|
-
componentType = dynamicComponentType[component.componentName];
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
if (typeof dynamicComponentType === 'function') {
|
|
50
|
-
componentType = dynamicComponentType;
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
throw new Error(`JssComponentFactoryService: Lazy load module for component "${lazyComponent.path}" missing DYNAMIC_COMPONENT provider. Missing JssModule.forChild()?`);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
return {
|
|
57
|
-
componentDefinition: component,
|
|
58
|
-
componentImplementation: componentType,
|
|
59
|
-
componentFactory: moduleRef.componentFactoryResolver.resolveComponentFactory(componentType),
|
|
60
|
-
};
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
return Promise.resolve({
|
|
64
|
-
componentDefinition: component,
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
getComponents(components) {
|
|
68
|
-
// acquire all components and keep them in order while handling their potential async-ness
|
|
69
|
-
return Promise.all(components.map((component) => isRawRendering(component) ? this.getRawComponent(component) : this.getComponent(component)));
|
|
70
|
-
}
|
|
71
|
-
getRawComponent(component) {
|
|
72
|
-
return Promise.resolve({
|
|
73
|
-
componentImplementation: RawComponent,
|
|
74
|
-
componentDefinition: component,
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
JssComponentFactoryService.decorators = [
|
|
79
|
-
{ type: Injectable }
|
|
80
|
-
];
|
|
81
|
-
JssComponentFactoryService.ctorParameters = () => [
|
|
82
|
-
{ type: Injector },
|
|
83
|
-
{ type: Compiler },
|
|
84
|
-
{ type: Array, decorators: [{ type: Inject, args: [PLACEHOLDER_COMPONENTS,] }] },
|
|
85
|
-
{ type: Array, decorators: [{ type: Inject, args: [PLACEHOLDER_LAZY_COMPONENTS,] }] }
|
|
86
|
-
];
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNzLWNvbXBvbmVudC1mYWN0b3J5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvYWRpcC9EZXNrdG9wL1NpdGVjb3JlL2pzcy9wYWNrYWdlcy9zaXRlY29yZS1qc3MtYW5ndWxhci9zcmMvIiwic291cmNlcyI6WyJqc3MtY29tcG9uZW50LWZhY3Rvcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsTUFBTSxFQUNOLFVBQVUsRUFDVixRQUFRLEVBRVIsUUFBUSxFQUNSLGVBQWUsR0FDaEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUdMLGlCQUFpQixFQUNqQixzQkFBc0IsRUFDdEIsMkJBQTJCLEdBQzVCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQVN4RCxNQUFNLE9BQU8sMEJBQTBCO0lBSXJDLFlBQ1UsUUFBa0IsRUFDbEIsUUFBa0IsRUFDYyxVQUFrQyxFQUM3QixjQUF3QztRQUg3RSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDYyxlQUFVLEdBQVYsVUFBVSxDQUF3QjtRQUM3QixtQkFBYyxHQUFkLGNBQWMsQ0FBMEI7UUFFckYsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRWxDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRXRFLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2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SUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FDM0YsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVPLGVBQWUsQ0FBQyxTQUErQjtRQUNyRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFDckIsdUJBQXVCLEVBQUUsWUFBWTtZQUNyQyxtQkFBbUIsRUFBRSxTQUFTO1NBQy9CLENBQUMsQ0FBQztJQUNMLENBQUM7OztZQWpHRixVQUFVOzs7WUF0QlQsUUFBUTtZQUVSLFFBQVE7d0NBNEJMLE1BQU0sU0FBQyxzQkFBc0I7d0NBQzdCLE1BQU0sU0FBQywyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudEZhY3RvcnksXHJcbiAgSW5qZWN0LFxyXG4gIEluamVjdGFibGUsXHJcbiAgSW5qZWN0b3IsXHJcbiAgVHlwZSxcclxuICBDb21waWxlcixcclxuICBOZ01vZHVsZUZhY3RvcnksXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudFJlbmRlcmluZywgSHRtbEVsZW1lbnRSZW5kZXJpbmcgfSBmcm9tICdAc2l0ZWNvcmUtanNzL3NpdGVjb3JlLWpzcyc7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50TmFtZUFuZE1vZHVsZSxcclxuICBDb21wb25lbnROYW1lQW5kVHlwZSxcclxuICBEWU5BTUlDX0NPTVBPTkVOVCxcclxuICBQTEFDRUhPTERFUl9DT01QT05FTlRTLFxyXG4gIFBMQUNFSE9MREVSX0xBWllfQ09NUE9ORU5UUyxcclxufSBmcm9tICcuL2NvbXBvbmVudHMvcGxhY2Vob2xkZXIudG9rZW4nO1xyXG5pbXBvcnQgeyBSYXdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcmF3LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IGlzUmF3UmVuZGVyaW5nIH0gZnJvbSAnLi9jb21wb25lbnRzL3JlbmRlcmluZyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbXBvbmVudEZhY3RvcnlSZXN1bHQge1xyXG4gIGNvbXBvbmVudEltcGxlbWVudGF0aW9uPzogVHlwZTxhbnk+O1xyXG4gIGNvbXBvbmVudERlZmluaXRpb246IENvbXBvbmVudFJlbmRlcmluZyB8IEh0bWxFbGVtZW50UmVuZGVyaW5nO1xyXG4gIGNvbXBvbmVudEZhY3Rvcnk/OiBDb21wb25lbnRGYWN0b3J5PGFueT47XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEpzc0NvbXBvbmVudEZhY3RvcnlTZXJ2aWNlIHtcclxuICBwcml2YXRlIGNvbXBvbmVudE1hcDogTWFwPHN0cmluZywgVHlwZTxhbnk+PjtcclxuICBwcml2YXRlIGxhenlDb21wb25lbnRNYXA6IE1hcDxzdHJpbmcsIENvbXBvbmVudE5hbWVBbmRNb2R1bGU+O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSBjb21waWxlcjogQ29tcGlsZXIsXHJcbiAgICBASW5qZWN0KFBMQUNFSE9MREVSX0NPTVBPTkVOVFMpIHByaXZhdGUgY29tcG9uZW50czogQ29tcG9uZW50TmFtZUFuZFR5cGVbXSxcclxuICAgIEBJbmplY3QoUExBQ0VIT0xERVJfTEFaWV9DT01QT05FTlRTKSBwcml2YXRlIGxhenlDb21wb25lbnRzOiBDb21wb25lbnROYW1lQW5kTW9kdWxlW11cclxuICApIHtcclxuICAgIHRoaXMuY29tcG9uZW50TWFwID0gbmV3IE1hcCgpO1xyXG4gICAgdGhpcy5sYXp5Q29tcG9uZW50TWFwID0gbmV3IE1hcCgpO1xyXG5cclxuICAgIHRoaXMuY29tcG9uZW50cy5mb3JFYWNoKChjKSA9PiB0aGlzLmNvbXBvbmVudE1hcC5zZXQoYy5uYW1lLCBjLnR5cGUpKTtcclxuXHJcbiAgICBpZiAodGhpcy5sYXp5Q29tcG9uZW50cykge1xyXG4gICAgICB0aGlzLmxhenlDb21wb25lbnRzLmZvckVhY2goKGMpID0+IHRoaXMubGF6eUNvbXBvbmVudE1hcC5zZXQoYy5wYXRoLCBjKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvYWRNb2R1bGVGYWN0b3J5KGxhenlDb21wb25lbnQ6IENvbXBvbmVudE5hbWVBbmRNb2R1bGUpOiBQcm9taXNlPE5nTW9kdWxlRmFjdG9yeTxhbnk+PiB7XHJcbiAgICByZXR1cm4gbGF6eUNvbXBvbmVudC5sb2FkQ2hpbGRyZW4oKS50aGVuKChsb2FkZWQpID0+IHtcclxuICAgICAgaWYgKGxvYWRlZCBpbnN0YW5jZW9mIE5nTW9kdWxlRmFjdG9yeSkge1xyXG4gICAgICAgIHJldHVybiBsb2FkZWQ7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGlsZXIuY29tcGlsZU1vZHVsZUFzeW5jKGxvYWRlZCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29tcG9uZW50KGNvbXBvbmVudDogQ29tcG9uZW50UmVuZGVyaW5nKTogUHJvbWlzZTxDb21wb25lbnRGYWN0b3J5UmVzdWx0PiB7XHJcbiAgICBjb25zdCBsb2FkZWRDb21wb25lbnQgPSB0aGlzLmNvbXBvbmVudE1hcC5nZXQoY29tcG9uZW50LmNvbXBvbmVudE5hbWUpO1xyXG5cclxuICAgIGlmIChsb2FkZWRDb21wb25lbnQpIHtcclxuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7XHJcbiAgICAgICAgY29tcG9uZW50RGVmaW5pdGlvbjogY29tcG9uZW50LFxyXG4gICAgICAgIGNvbXBvbmVudEltcGxlbWVudGF0aW9uOiB0aGlzLmNvbXBvbmVudE1hcC5nZXQoY29tcG9uZW50LmNvbXBvbmVudE5hbWUpLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBsYXp5Q29tcG9uZW50ID0gdGhpcy5sYXp5Q29tcG9uZW50TWFwLmdldChjb21wb25lbnQuY29tcG9uZW50TmFtZSk7XHJcblxyXG4gICAgaWYgKGxhenlDb21wb25lbnQpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubG9hZE1vZHVsZUZhY3RvcnkobGF6eUNvbXBvbmVudCkudGhlbigobmdNb2R1bGVGYWN0b3J5KSA9PiB7XHJcbiAgICAgICAgbGV0IGNvbXBvbmVudFR5cGUgPSBudWxsO1xyXG4gICAgICAgIGNvbnN0IG1vZHVsZVJlZiA9IG5nTW9kdWxlRmFjdG9yeS5jcmVhdGUodGhpcy5pbmplY3Rvcik7XHJcbiAgICAgICAgY29uc3QgZHluYW1pY0NvbXBvbmVudFR5cGUgPSBtb2R1bGVSZWYuaW5qZWN0b3IuZ2V0KERZTkFNSUNfQ09NUE9ORU5UKTtcclxuICAgICAgICBpZiAoIWR5bmFtaWNDb21wb25lbnRUeXBlKSB7XHJcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgICAgIGBKc3NDb21wb25lbnRGYWN0b3J5U2VydmljZTogTGF6eSBsb2FkIG1vZHVsZSBmb3IgY29tcG9uZW50IFwiJHtsYXp5Q29tcG9uZW50LnBhdGh9XCIgbWlzc2luZyBEWU5BTUlDX0NPTVBPTkVOVCBwcm92aWRlci4gTWlzc2luZyBKc3NNb2R1bGUuZm9yQ2hpbGQoKT9gXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGNvbXBvbmVudC5jb21wb25lbnROYW1lIGluIGR5bmFtaWNDb21wb25lbnRUeXBlKSB7XHJcbiAgICAgICAgICBjb21wb25lbnRUeXBlID0gKGR5bmFtaWNDb21wb25lbnRUeXBlIGFzIHsgW3M6IHN0cmluZ106IGFueSB9KVtjb21wb25lbnQuY29tcG9uZW50TmFtZV07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmICh0eXBlb2YgZHluYW1pY0NvbXBvbmVudFR5cGUgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgY29tcG9uZW50VHlwZSA9IGR5bmFtaWNDb21wb25lbnRUeXBlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgICAgICAgIGBKc3NDb21wb25lbnRGYWN0b3J5U2VydmljZTogTGF6eSBsb2FkIG1vZHVsZSBmb3IgY29tcG9uZW50IFwiJHtsYXp5Q29tcG9uZW50LnBhdGh9XCIgbWlzc2luZyBEWU5BTUlDX0NPTVBPTkVOVCBwcm92aWRlci4gTWlzc2luZyBKc3NNb2R1bGUuZm9yQ2hpbGQoKT9gXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgY29tcG9uZW50RGVmaW5pdGlvbjogY29tcG9uZW50LFxyXG4gICAgICAgICAgY29tcG9uZW50SW1wbGVtZW50YXRpb246IGNvbXBvbmVudFR5cGUsXHJcbiAgICAgICAgICBjb21wb25lbnRGYWN0b3J5OiBtb2R1bGVSZWYuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KFxyXG4gICAgICAgICAgICBjb21wb25lbnRUeXBlXHJcbiAgICAgICAgICApLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xyXG4gICAgICBjb21wb25lbnREZWZpbml0aW9uOiBjb21wb25lbnQsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldENvbXBvbmVudHMoXHJcbiAgICBjb21wb25lbnRzOiBBcnJheTxDb21wb25lbnRSZW5kZXJpbmcgfCBIdG1sRWxlbWVudFJlbmRlcmluZz5cclxuICApOiBQcm9taXNlPENvbXBvbmVudEZhY3RvcnlSZXN1bHRbXT4ge1xyXG4gICAgLy8gYWNxdWlyZSBhbGwgY29tcG9uZW50cyBhbmQga2VlcCB0aGVtIGluIG9yZGVyIHdoaWxlIGhhbmRsaW5nIHRoZWlyIHBvdGVudGlhbCBhc3luYy1uZXNzXHJcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoXHJcbiAgICAgIGNvbXBvbmVudHMubWFwKChjb21wb25lbnQpID0+XHJcbiAgICAgICAgaXNSYXdSZW5kZXJpbmcoY29tcG9uZW50KSA/IHRoaXMuZ2V0UmF3Q29tcG9uZW50KGNvbXBvbmVudCkgOiB0aGlzLmdldENvbXBvbmVudChjb21wb25lbnQpXHJcbiAgICAgIClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFJhd0NvbXBvbmVudChjb21wb25lbnQ6IEh0bWxFbGVtZW50UmVuZGVyaW5nKTogUHJvbWlzZTxDb21wb25lbnRGYWN0b3J5UmVzdWx0PiB7XHJcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcclxuICAgICAgY29tcG9uZW50SW1wbGVtZW50YXRpb246IFJhd0NvbXBvbmVudCxcclxuICAgICAgY29tcG9uZW50RGVmaW5pdGlvbjogY29tcG9uZW50LFxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
1
|
+
import { Inject, Injectable, Injector, Compiler, NgModuleFactory, } from '@angular/core';
|
|
2
|
+
import { DYNAMIC_COMPONENT, PLACEHOLDER_COMPONENTS, PLACEHOLDER_LAZY_COMPONENTS, } from './components/placeholder.token';
|
|
3
|
+
import { RawComponent } from './components/raw.component';
|
|
4
|
+
import { isRawRendering } from './components/rendering';
|
|
5
|
+
export class JssComponentFactoryService {
|
|
6
|
+
constructor(injector, compiler, components, lazyComponents) {
|
|
7
|
+
this.injector = injector;
|
|
8
|
+
this.compiler = compiler;
|
|
9
|
+
this.components = components;
|
|
10
|
+
this.lazyComponents = lazyComponents;
|
|
11
|
+
this.componentMap = new Map();
|
|
12
|
+
this.lazyComponentMap = new Map();
|
|
13
|
+
this.components.forEach((c) => this.componentMap.set(c.name, c.type));
|
|
14
|
+
if (this.lazyComponents) {
|
|
15
|
+
this.lazyComponents.forEach((c) => this.lazyComponentMap.set(c.path, c));
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
loadModuleFactory(lazyComponent) {
|
|
19
|
+
return lazyComponent.loadChildren().then((loaded) => {
|
|
20
|
+
if (loaded instanceof NgModuleFactory) {
|
|
21
|
+
return loaded;
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
return this.compiler.compileModuleAsync(loaded);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
getComponent(component) {
|
|
29
|
+
const loadedComponent = this.componentMap.get(component.componentName);
|
|
30
|
+
if (loadedComponent) {
|
|
31
|
+
return Promise.resolve({
|
|
32
|
+
componentDefinition: component,
|
|
33
|
+
componentImplementation: this.componentMap.get(component.componentName),
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
const lazyComponent = this.lazyComponentMap.get(component.componentName);
|
|
37
|
+
if (lazyComponent) {
|
|
38
|
+
return this.loadModuleFactory(lazyComponent).then((ngModuleFactory) => {
|
|
39
|
+
let componentType = null;
|
|
40
|
+
const moduleRef = ngModuleFactory.create(this.injector);
|
|
41
|
+
const dynamicComponentType = moduleRef.injector.get(DYNAMIC_COMPONENT);
|
|
42
|
+
if (!dynamicComponentType) {
|
|
43
|
+
throw new Error(`JssComponentFactoryService: Lazy load module for component "${lazyComponent.path}" missing DYNAMIC_COMPONENT provider. Missing JssModule.forChild()?`);
|
|
44
|
+
}
|
|
45
|
+
if (component.componentName in dynamicComponentType) {
|
|
46
|
+
componentType = dynamicComponentType[component.componentName];
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
if (typeof dynamicComponentType === 'function') {
|
|
50
|
+
componentType = dynamicComponentType;
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
throw new Error(`JssComponentFactoryService: Lazy load module for component "${lazyComponent.path}" missing DYNAMIC_COMPONENT provider. Missing JssModule.forChild()?`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return {
|
|
57
|
+
componentDefinition: component,
|
|
58
|
+
componentImplementation: componentType,
|
|
59
|
+
componentFactory: moduleRef.componentFactoryResolver.resolveComponentFactory(componentType),
|
|
60
|
+
};
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
return Promise.resolve({
|
|
64
|
+
componentDefinition: component,
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
getComponents(components) {
|
|
68
|
+
// acquire all components and keep them in order while handling their potential async-ness
|
|
69
|
+
return Promise.all(components.map((component) => isRawRendering(component) ? this.getRawComponent(component) : this.getComponent(component)));
|
|
70
|
+
}
|
|
71
|
+
getRawComponent(component) {
|
|
72
|
+
return Promise.resolve({
|
|
73
|
+
componentImplementation: RawComponent,
|
|
74
|
+
componentDefinition: component,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
JssComponentFactoryService.decorators = [
|
|
79
|
+
{ type: Injectable }
|
|
80
|
+
];
|
|
81
|
+
JssComponentFactoryService.ctorParameters = () => [
|
|
82
|
+
{ type: Injector },
|
|
83
|
+
{ type: Compiler },
|
|
84
|
+
{ type: Array, decorators: [{ type: Inject, args: [PLACEHOLDER_COMPONENTS,] }] },
|
|
85
|
+
{ type: Array, decorators: [{ type: Inject, args: [PLACEHOLDER_LAZY_COMPONENTS,] }] }
|
|
86
|
+
];
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNzLWNvbXBvbmVudC1mYWN0b3J5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvdnN0cy93b3JrLzEvcy9wYWNrYWdlcy9zaXRlY29yZS1qc3MtYW5ndWxhci9zcmMvIiwic291cmNlcyI6WyJqc3MtY29tcG9uZW50LWZhY3Rvcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsTUFBTSxFQUNOLFVBQVUsRUFDVixRQUFRLEVBRVIsUUFBUSxFQUNSLGVBQWUsR0FDaEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUdMLGlCQUFpQixFQUNqQixzQkFBc0IsRUFDdEIsMkJBQTJCLEdBQzVCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQVN4RCxNQUFNLE9BQU8sMEJBQTBCO0lBSXJDLFlBQ1UsUUFBa0IsRUFDbEIsUUFBa0IsRUFDYyxVQUFrQyxFQUM3QixjQUF3QztRQUg3RSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDYyxlQUFVLEdBQVYsVUFBVSxDQUF3QjtRQUM3QixtQkFBYyxHQUFkLGNBQWMsQ0FBMEI7UUFFckYsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRWxDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRXRFLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixJQUFJLENBQUMsY0FB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Q0FBQyxTQUFTLENBQUMsQ0FDM0YsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVPLGVBQWUsQ0FBQyxTQUErQjtRQUNyRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFDckIsdUJBQXVCLEVBQUUsWUFBWTtZQUNyQyxtQkFBbUIsRUFBRSxTQUFTO1NBQy9CLENBQUMsQ0FBQztJQUNMLENBQUM7OztZQWpHRixVQUFVOzs7WUF0QlQsUUFBUTtZQUVSLFFBQVE7d0NBNEJMLE1BQU0sU0FBQyxzQkFBc0I7d0NBQzdCLE1BQU0sU0FBQywyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudEZhY3RvcnksXHJcbiAgSW5qZWN0LFxyXG4gIEluamVjdGFibGUsXHJcbiAgSW5qZWN0b3IsXHJcbiAgVHlwZSxcclxuICBDb21waWxlcixcclxuICBOZ01vZHVsZUZhY3RvcnksXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudFJlbmRlcmluZywgSHRtbEVsZW1lbnRSZW5kZXJpbmcgfSBmcm9tICdAc2l0ZWNvcmUtanNzL3NpdGVjb3JlLWpzcyc7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50TmFtZUFuZE1vZHVsZSxcclxuICBDb21wb25lbnROYW1lQW5kVHlwZSxcclxuICBEWU5BTUlDX0NPTVBPTkVOVCxcclxuICBQTEFDRUhPTERFUl9DT01QT05FTlRTLFxyXG4gIFBMQUNFSE9MREVSX0xBWllfQ09NUE9ORU5UUyxcclxufSBmcm9tICcuL2NvbXBvbmVudHMvcGxhY2Vob2xkZXIudG9rZW4nO1xyXG5pbXBvcnQgeyBSYXdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcmF3LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IGlzUmF3UmVuZGVyaW5nIH0gZnJvbSAnLi9jb21wb25lbnRzL3JlbmRlcmluZyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbXBvbmVudEZhY3RvcnlSZXN1bHQge1xyXG4gIGNvbXBvbmVudEltcGxlbWVudGF0aW9uPzogVHlwZTxhbnk+O1xyXG4gIGNvbXBvbmVudERlZmluaXRpb246IENvbXBvbmVudFJlbmRlcmluZyB8IEh0bWxFbGVtZW50UmVuZGVyaW5nO1xyXG4gIGNvbXBvbmVudEZhY3Rvcnk/OiBDb21wb25lbnRGYWN0b3J5PGFueT47XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEpzc0NvbXBvbmVudEZhY3RvcnlTZXJ2aWNlIHtcclxuICBwcml2YXRlIGNvbXBvbmVudE1hcDogTWFwPHN0cmluZywgVHlwZTxhbnk+PjtcclxuICBwcml2YXRlIGxhenlDb21wb25lbnRNYXA6IE1hcDxzdHJpbmcsIENvbXBvbmVudE5hbWVBbmRNb2R1bGU+O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSBjb21waWxlcjogQ29tcGlsZXIsXHJcbiAgICBASW5qZWN0KFBMQUNFSE9MREVSX0NPTVBPTkVOVFMpIHByaXZhdGUgY29tcG9uZW50czogQ29tcG9uZW50TmFtZUFuZFR5cGVbXSxcclxuICAgIEBJbmplY3QoUExBQ0VIT0xERVJfTEFaWV9DT01QT05FTlRTKSBwcml2YXRlIGxhenlDb21wb25lbnRzOiBDb21wb25lbnROYW1lQW5kTW9kdWxlW11cclxuICApIHtcclxuICAgIHRoaXMuY29tcG9uZW50TWFwID0gbmV3IE1hcCgpO1xyXG4gICAgdGhpcy5sYXp5Q29tcG9uZW50TWFwID0gbmV3IE1hcCgpO1xyXG5cclxuICAgIHRoaXMuY29tcG9uZW50cy5mb3JFYWNoKChjKSA9PiB0aGlzLmNvbXBvbmVudE1hcC5zZXQoYy5uYW1lLCBjLnR5cGUpKTtcclxuXHJcbiAgICBpZiAodGhpcy5sYXp5Q29tcG9uZW50cykge1xyXG4gICAgICB0aGlzLmxhenlDb21wb25lbnRzLmZvckVhY2goKGMpID0+IHRoaXMubGF6eUNvbXBvbmVudE1hcC5zZXQoYy5wYXRoLCBjKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvYWRNb2R1bGVGYWN0b3J5KGxhenlDb21wb25lbnQ6IENvbXBvbmVudE5hbWVBbmRNb2R1bGUpOiBQcm9taXNlPE5nTW9kdWxlRmFjdG9yeTxhbnk+PiB7XHJcbiAgICByZXR1cm4gbGF6eUNvbXBvbmVudC5sb2FkQ2hpbGRyZW4oKS50aGVuKChsb2FkZWQpID0+IHtcclxuICAgICAgaWYgKGxvYWRlZCBpbnN0YW5jZW9mIE5nTW9kdWxlRmFjdG9yeSkge1xyXG4gICAgICAgIHJldHVybiBsb2FkZWQ7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGlsZXIuY29tcGlsZU1vZHVsZUFzeW5jKGxvYWRlZCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29tcG9uZW50KGNvbXBvbmVudDogQ29tcG9uZW50UmVuZGVyaW5nKTogUHJvbWlzZTxDb21wb25lbnRGYWN0b3J5UmVzdWx0PiB7XHJcbiAgICBjb25zdCBsb2FkZWRDb21wb25lbnQgPSB0aGlzLmNvbXBvbmVudE1hcC5nZXQoY29tcG9uZW50LmNvbXBvbmVudE5hbWUpO1xyXG5cclxuICAgIGlmIChsb2FkZWRDb21wb25lbnQpIHtcclxuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7XHJcbiAgICAgICAgY29tcG9uZW50RGVmaW5pdGlvbjogY29tcG9uZW50LFxyXG4gICAgICAgIGNvbXBvbmVudEltcGxlbWVudGF0aW9uOiB0aGlzLmNvbXBvbmVudE1hcC5nZXQoY29tcG9uZW50LmNvbXBvbmVudE5hbWUpLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBsYXp5Q29tcG9uZW50ID0gdGhpcy5sYXp5Q29tcG9uZW50TWFwLmdldChjb21wb25lbnQuY29tcG9uZW50TmFtZSk7XHJcblxyXG4gICAgaWYgKGxhenlDb21wb25lbnQpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubG9hZE1vZHVsZUZhY3RvcnkobGF6eUNvbXBvbmVudCkudGhlbigobmdNb2R1bGVGYWN0b3J5KSA9PiB7XHJcbiAgICAgICAgbGV0IGNvbXBvbmVudFR5cGUgPSBudWxsO1xyXG4gICAgICAgIGNvbnN0IG1vZHVsZVJlZiA9IG5nTW9kdWxlRmFjdG9yeS5jcmVhdGUodGhpcy5pbmplY3Rvcik7XHJcbiAgICAgICAgY29uc3QgZHluYW1pY0NvbXBvbmVudFR5cGUgPSBtb2R1bGVSZWYuaW5qZWN0b3IuZ2V0KERZTkFNSUNfQ09NUE9ORU5UKTtcclxuICAgICAgICBpZiAoIWR5bmFtaWNDb21wb25lbnRUeXBlKSB7XHJcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgICAgIGBKc3NDb21wb25lbnRGYWN0b3J5U2VydmljZTogTGF6eSBsb2FkIG1vZHVsZSBmb3IgY29tcG9uZW50IFwiJHtsYXp5Q29tcG9uZW50LnBhdGh9XCIgbWlzc2luZyBEWU5BTUlDX0NPTVBPTkVOVCBwcm92aWRlci4gTWlzc2luZyBKc3NNb2R1bGUuZm9yQ2hpbGQoKT9gXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGNvbXBvbmVudC5jb21wb25lbnROYW1lIGluIGR5bmFtaWNDb21wb25lbnRUeXBlKSB7XHJcbiAgICAgICAgICBjb21wb25lbnRUeXBlID0gKGR5bmFtaWNDb21wb25lbnRUeXBlIGFzIHsgW3M6IHN0cmluZ106IGFueSB9KVtjb21wb25lbnQuY29tcG9uZW50TmFtZV07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmICh0eXBlb2YgZHluYW1pY0NvbXBvbmVudFR5cGUgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgY29tcG9uZW50VHlwZSA9IGR5bmFtaWNDb21wb25lbnRUeXBlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgICAgICAgIGBKc3NDb21wb25lbnRGYWN0b3J5U2VydmljZTogTGF6eSBsb2FkIG1vZHVsZSBmb3IgY29tcG9uZW50IFwiJHtsYXp5Q29tcG9uZW50LnBhdGh9XCIgbWlzc2luZyBEWU5BTUlDX0NPTVBPTkVOVCBwcm92aWRlci4gTWlzc2luZyBKc3NNb2R1bGUuZm9yQ2hpbGQoKT9gXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgY29tcG9uZW50RGVmaW5pdGlvbjogY29tcG9uZW50LFxyXG4gICAgICAgICAgY29tcG9uZW50SW1wbGVtZW50YXRpb246IGNvbXBvbmVudFR5cGUsXHJcbiAgICAgICAgICBjb21wb25lbnRGYWN0b3J5OiBtb2R1bGVSZWYuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KFxyXG4gICAgICAgICAgICBjb21wb25lbnRUeXBlXHJcbiAgICAgICAgICApLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xyXG4gICAgICBjb21wb25lbnREZWZpbml0aW9uOiBjb21wb25lbnQsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldENvbXBvbmVudHMoXHJcbiAgICBjb21wb25lbnRzOiBBcnJheTxDb21wb25lbnRSZW5kZXJpbmcgfCBIdG1sRWxlbWVudFJlbmRlcmluZz5cclxuICApOiBQcm9taXNlPENvbXBvbmVudEZhY3RvcnlSZXN1bHRbXT4ge1xyXG4gICAgLy8gYWNxdWlyZSBhbGwgY29tcG9uZW50cyBhbmQga2VlcCB0aGVtIGluIG9yZGVyIHdoaWxlIGhhbmRsaW5nIHRoZWlyIHBvdGVudGlhbCBhc3luYy1uZXNzXHJcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoXHJcbiAgICAgIGNvbXBvbmVudHMubWFwKChjb21wb25lbnQpID0+XHJcbiAgICAgICAgaXNSYXdSZW5kZXJpbmcoY29tcG9uZW50KSA/IHRoaXMuZ2V0UmF3Q29tcG9uZW50KGNvbXBvbmVudCkgOiB0aGlzLmdldENvbXBvbmVudChjb21wb25lbnQpXHJcbiAgICAgIClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFJhd0NvbXBvbmVudChjb21wb25lbnQ6IEh0bWxFbGVtZW50UmVuZGVyaW5nKTogUHJvbWlzZTxDb21wb25lbnRGYWN0b3J5UmVzdWx0PiB7XHJcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcclxuICAgICAgY29tcG9uZW50SW1wbGVtZW50YXRpb246IFJhd0NvbXBvbmVudCxcclxuICAgICAgY29tcG9uZW50RGVmaW5pdGlvbjogY29tcG9uZW50LFxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export class LayoutServiceError {
|
|
2
|
-
}
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export class LayoutServiceError {
|
|
2
|
+
}
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LXNlcnZpY2UtZXJyb3IuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvdnN0cy93b3JrLzEvcy9wYWNrYWdlcy9zaXRlY29yZS1qc3MtYW5ndWxhci9zcmMvIiwic291cmNlcyI6WyJsYXlvdXQtc2VydmljZS1lcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sa0JBQWtCO0NBSTlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGF5b3V0U2VydmljZUNvbnRleHREYXRhIH0gZnJvbSAnQHNpdGVjb3JlLWpzcy9zaXRlY29yZS1qc3MnO1xyXG5cclxuZXhwb3J0IGNsYXNzIExheW91dFNlcnZpY2VFcnJvciB7XHJcbiAgc3RhdHVzOiBudW1iZXI7XHJcbiAgc3RhdHVzVGV4dDogc3RyaW5nO1xyXG4gIGRhdGE/OiB7IHNpdGVjb3JlPzogTGF5b3V0U2VydmljZUNvbnRleHREYXRhIH07XHJcbn1cclxuIl19
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { dataApi, } from '@sitecore-jss/sitecore-jss';
|
|
3
|
-
import { from as fromPromise, throwError as observableThrow } from 'rxjs';
|
|
4
|
-
import { catchError } from 'rxjs/operators';
|
|
5
|
-
import { LayoutServiceError } from './layout-service-error';
|
|
6
|
-
const { fetchRouteData, fetchPlaceholderData } = dataApi;
|
|
7
|
-
export class LayoutService {
|
|
8
|
-
static getLayoutServiceError(error) {
|
|
9
|
-
const layoutServiceError = new LayoutServiceError();
|
|
10
|
-
const response = error.response;
|
|
11
|
-
if (response) {
|
|
12
|
-
layoutServiceError.status = response.status;
|
|
13
|
-
layoutServiceError.statusText = response.statusText;
|
|
14
|
-
layoutServiceError.data = response.data;
|
|
15
|
-
}
|
|
16
|
-
return observableThrow(layoutServiceError);
|
|
17
|
-
}
|
|
18
|
-
getRouteData(route, options) {
|
|
19
|
-
return fromPromise(fetchRouteData(route, options)).pipe(catchError(LayoutService.getLayoutServiceError));
|
|
20
|
-
}
|
|
21
|
-
getPlaceholderData(route, placeholderName, options) {
|
|
22
|
-
return fromPromise(fetchPlaceholderData(placeholderName, route, options)).pipe(catchError(LayoutService.getLayoutServiceError));
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
LayoutService.decorators = [
|
|
26
|
-
{ type: Injectable }
|
|
27
|
-
];
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { dataApi, } from '@sitecore-jss/sitecore-jss';
|
|
3
|
+
import { from as fromPromise, throwError as observableThrow } from 'rxjs';
|
|
4
|
+
import { catchError } from 'rxjs/operators';
|
|
5
|
+
import { LayoutServiceError } from './layout-service-error';
|
|
6
|
+
const { fetchRouteData, fetchPlaceholderData } = dataApi;
|
|
7
|
+
export class LayoutService {
|
|
8
|
+
static getLayoutServiceError(error) {
|
|
9
|
+
const layoutServiceError = new LayoutServiceError();
|
|
10
|
+
const response = error.response;
|
|
11
|
+
if (response) {
|
|
12
|
+
layoutServiceError.status = response.status;
|
|
13
|
+
layoutServiceError.statusText = response.statusText;
|
|
14
|
+
layoutServiceError.data = response.data;
|
|
15
|
+
}
|
|
16
|
+
return observableThrow(layoutServiceError);
|
|
17
|
+
}
|
|
18
|
+
getRouteData(route, options) {
|
|
19
|
+
return fromPromise(fetchRouteData(route, options)).pipe(catchError(LayoutService.getLayoutServiceError));
|
|
20
|
+
}
|
|
21
|
+
getPlaceholderData(route, placeholderName, options) {
|
|
22
|
+
return fromPromise(fetchPlaceholderData(placeholderName, route, options)).pipe(catchError(LayoutService.getLayoutServiceError));
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
LayoutService.decorators = [
|
|
26
|
+
{ type: Injectable }
|
|
27
|
+
];
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvdnN0cy93b3JrLzEvcy9wYWNrYWdlcy9zaXRlY29yZS1qc3MtYW5ndWxhci9zcmMvIiwic291cmNlcyI6WyJsYXlvdXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFDTCxPQUFPLEdBSVIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsSUFBSSxJQUFJLFdBQVcsRUFBYyxVQUFVLElBQUksZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU1RCxNQUFNLEVBQUUsY0FBYyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsT0FBTyxDQUFDO0FBR3pELE1BQU0sT0FBTyxhQUFhO0lBQ2hCLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxLQUFVO1FBQzdDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQ3BELE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7UUFDaEMsSUFBSSxRQUFRLEVBQUU7WUFDWixrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUM1QyxrQkFBa0IsQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQztZQUNwRCxrQkFBa0IsQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztTQUN6QztRQUVELE9BQU8sZUFBZSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELFlBQVksQ0FDVixLQUFhLEVBQ2IsT0FBdUQ7UUFFdkQsT0FBTyxXQUFXLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDckQsVUFBVSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUNoRCxDQUFDO0lBQ0osQ0FBQztJQUVELGtCQUFrQixDQUNoQixLQUFhLEVBQ2IsZUFBdUIsRUFDdkIsT0FBcUQ7UUFFckQsT0FBTyxXQUFXLENBQUMsb0JBQW9CLENBQUMsZUFBZSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDNUUsVUFBVSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUNoRCxDQUFDO0lBQ0osQ0FBQzs7O1lBL0JGLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgZGF0YUFwaSxcclxuICBMYXlvdXRTZXJ2aWNlRGF0YSxcclxuICBMYXlvdXRTZXJ2aWNlUmVxdWVzdE9wdGlvbnMsXHJcbiAgUGxhY2Vob2xkZXJEYXRhLFxyXG59IGZyb20gJ0BzaXRlY29yZS1qc3Mvc2l0ZWNvcmUtanNzJztcclxuaW1wb3J0IHsgZnJvbSBhcyBmcm9tUHJvbWlzZSwgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciBhcyBvYnNlcnZhYmxlVGhyb3cgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgTGF5b3V0U2VydmljZUVycm9yIH0gZnJvbSAnLi9sYXlvdXQtc2VydmljZS1lcnJvcic7XHJcblxyXG5jb25zdCB7IGZldGNoUm91dGVEYXRhLCBmZXRjaFBsYWNlaG9sZGVyRGF0YSB9ID0gZGF0YUFwaTtcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIExheW91dFNlcnZpY2Uge1xyXG4gIHByaXZhdGUgc3RhdGljIGdldExheW91dFNlcnZpY2VFcnJvcihlcnJvcjogYW55KTogT2JzZXJ2YWJsZTxMYXlvdXRTZXJ2aWNlRXJyb3I+IHtcclxuICAgIGNvbnN0IGxheW91dFNlcnZpY2VFcnJvciA9IG5ldyBMYXlvdXRTZXJ2aWNlRXJyb3IoKTtcclxuICAgIGNvbnN0IHJlc3BvbnNlID0gZXJyb3IucmVzcG9uc2U7XHJcbiAgICBpZiAocmVzcG9uc2UpIHtcclxuICAgICAgbGF5b3V0U2VydmljZUVycm9yLnN0YXR1cyA9IHJlc3BvbnNlLnN0YXR1cztcclxuICAgICAgbGF5b3V0U2VydmljZUVycm9yLnN0YXR1c1RleHQgPSByZXNwb25zZS5zdGF0dXNUZXh0O1xyXG4gICAgICBsYXlvdXRTZXJ2aWNlRXJyb3IuZGF0YSA9IHJlc3BvbnNlLmRhdGE7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG9ic2VydmFibGVUaHJvdyhsYXlvdXRTZXJ2aWNlRXJyb3IpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Um91dGVEYXRhKFxyXG4gICAgcm91dGU6IHN0cmluZyxcclxuICAgIG9wdGlvbnM6IExheW91dFNlcnZpY2VSZXF1ZXN0T3B0aW9uczxMYXlvdXRTZXJ2aWNlRGF0YT5cclxuICApOiBPYnNlcnZhYmxlPExheW91dFNlcnZpY2VEYXRhIHwgTGF5b3V0U2VydmljZUVycm9yPiB7XHJcbiAgICByZXR1cm4gZnJvbVByb21pc2UoZmV0Y2hSb3V0ZURhdGEocm91dGUsIG9wdGlvbnMpKS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKExheW91dFNlcnZpY2UuZ2V0TGF5b3V0U2VydmljZUVycm9yKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFBsYWNlaG9sZGVyRGF0YShcclxuICAgIHJvdXRlOiBzdHJpbmcsXHJcbiAgICBwbGFjZWhvbGRlck5hbWU6IHN0cmluZyxcclxuICAgIG9wdGlvbnM6IExheW91dFNlcnZpY2VSZXF1ZXN0T3B0aW9uczxQbGFjZWhvbGRlckRhdGE+XHJcbiAgKTogT2JzZXJ2YWJsZTxQbGFjZWhvbGRlckRhdGEgfCBMYXlvdXRTZXJ2aWNlRXJyb3I+IHtcclxuICAgIHJldHVybiBmcm9tUHJvbWlzZShmZXRjaFBsYWNlaG9sZGVyRGF0YShwbGFjZWhvbGRlck5hbWUsIHJvdXRlLCBvcHRpb25zKSkucGlwZShcclxuICAgICAgY2F0Y2hFcnJvcihMYXlvdXRTZXJ2aWNlLmdldExheW91dFNlcnZpY2VFcnJvcilcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|