@sitecore-jss/sitecore-jss-angular 16.0.0-canary.8 → 16.0.1

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.
Files changed (61) hide show
  1. package/LICENSE.txt +202 -202
  2. package/README.md +5 -5
  3. package/dist/README.md +5 -5
  4. package/dist/bundles/sitecore-jss-sitecore-jss-angular.umd.js +1385 -1389
  5. package/dist/bundles/sitecore-jss-sitecore-jss-angular.umd.js.map +1 -1
  6. package/dist/bundles/sitecore-jss-sitecore-jss-angular.umd.min.js +1 -1
  7. package/dist/bundles/sitecore-jss-sitecore-jss-angular.umd.min.js.map +1 -1
  8. package/dist/components/date.directive.d.ts +17 -17
  9. package/dist/components/file.directive.d.ts +14 -14
  10. package/dist/components/generic-link.directive.d.ts +14 -14
  11. package/dist/components/image.directive.d.ts +28 -28
  12. package/dist/components/link.directive.d.ts +18 -18
  13. package/dist/components/missing-component.component.d.ts +3 -3
  14. package/dist/components/placeholder-loading.directive.d.ts +5 -5
  15. package/dist/components/placeholder.component.d.ts +45 -45
  16. package/dist/components/placeholder.token.d.ts +30 -24
  17. package/dist/components/raw.component.d.ts +9 -9
  18. package/dist/components/render-component.component.d.ts +29 -29
  19. package/dist/components/render-each.directive.d.ts +5 -5
  20. package/dist/components/render-empty.directive.d.ts +5 -5
  21. package/dist/components/rendering-field.d.ts +20 -20
  22. package/dist/components/rendering.d.ts +5 -2
  23. package/dist/components/rich-text.directive.d.ts +12 -12
  24. package/dist/components/router-link.directive.d.ts +12 -12
  25. package/dist/components/text.directive.d.ts +13 -13
  26. package/dist/esm2015/components/date.directive.js +53 -54
  27. package/dist/esm2015/components/file.directive.js +43 -43
  28. package/dist/esm2015/components/generic-link.directive.js +58 -60
  29. package/dist/esm2015/components/image.directive.js +123 -126
  30. package/dist/esm2015/components/link.directive.js +99 -101
  31. package/dist/esm2015/components/missing-component.component.js +19 -16
  32. package/dist/esm2015/components/placeholder-loading.directive.js +15 -15
  33. package/dist/esm2015/components/placeholder.component.js +196 -186
  34. package/dist/esm2015/components/placeholder.token.js +21 -15
  35. package/dist/esm2015/components/raw.component.js +37 -36
  36. package/dist/esm2015/components/render-component.component.js +89 -85
  37. package/dist/esm2015/components/render-each.directive.js +15 -16
  38. package/dist/esm2015/components/render-empty.directive.js +15 -16
  39. package/dist/esm2015/components/rendering-field.js +1 -1
  40. package/dist/esm2015/components/rendering.js +8 -4
  41. package/dist/esm2015/components/rich-text.directive.js +41 -42
  42. package/dist/esm2015/components/router-link.directive.js +44 -46
  43. package/dist/esm2015/components/text.directive.js +54 -56
  44. package/dist/esm2015/jss-component-factory.service.js +87 -94
  45. package/dist/esm2015/layout-service-error.js +3 -3
  46. package/dist/esm2015/layout.service.js +28 -30
  47. package/dist/esm2015/lib.module.js +112 -113
  48. package/dist/esm2015/public_api.js +16 -16
  49. package/dist/esm2015/sitecore-jss-sitecore-jss-angular.js +13 -13
  50. package/dist/fesm2015/sitecore-jss-sitecore-jss-angular.js +1053 -1050
  51. package/dist/fesm2015/sitecore-jss-sitecore-jss-angular.js.map +1 -1
  52. package/dist/jss-component-factory.service.d.ts +21 -21
  53. package/dist/layout-service-error.d.ts +8 -8
  54. package/dist/layout.service.d.ts +8 -8
  55. package/dist/lib.module.d.ts +24 -16
  56. package/dist/package.json +2 -2
  57. package/dist/public_api.d.ts +16 -16
  58. package/dist/sitecore-jss-sitecore-jss-angular.d.ts +12 -12
  59. package/dist/sitecore-jss-sitecore-jss-angular.metadata.json +1 -1
  60. package/package.json +6 -4
  61. package/typings/README.md +2 -2
@@ -1,56 +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
- // tslint:disable-next-line:no-input-rename
7
- this.editable = true;
8
- // tslint:disable-next-line:no-input-rename
9
- this.encode = true;
10
- }
11
- ngOnChanges(changes) {
12
- if (changes['field'] || changes['editable'] || changes['encode']) {
13
- if (!this.viewRef) {
14
- this.viewContainer.clear();
15
- this.viewRef = this.viewContainer.createEmbeddedView(this.templateRef);
16
- }
17
- this.updateView();
18
- }
19
- }
20
- updateView() {
21
- const field = this.field;
22
- let editable = this.editable;
23
- if (!field || (!field.editable && !field.value)) {
24
- return;
25
- }
26
- // can't use editable value if we want to output unencoded
27
- if (!this.encode) {
28
- editable = false;
29
- }
30
- const html = field.editable && editable ? field.editable : field.value;
31
- const setDangerously = field.editable && editable || !this.encode;
32
- this.viewRef.rootNodes.forEach((node) => {
33
- if (setDangerously) {
34
- node.innerHTML = html;
35
- }
36
- else {
37
- node.textContent = html;
38
- }
39
- });
40
- }
41
- }
42
- TextDirective.decorators = [
43
- { type: Directive, args: [{
44
- selector: '[scText]',
45
- },] }
46
- ];
47
- TextDirective.ctorParameters = () => [
48
- { type: ViewContainerRef },
49
- { type: TemplateRef }
50
- ];
51
- TextDirective.propDecorators = {
52
- editable: [{ type: Input, args: ['scTextEditable',] }],
53
- encode: [{ type: Input, args: ['scTextEncode',] }],
54
- field: [{ type: Input, args: ['scText',] }]
55
- };
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvdnN0cy93b3JrLzEvcy9wYWNrYWdlcy9zaXRlY29yZS1qc3MtYW5ndWxhci9zcmMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3RleHQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW1CLEtBQUssRUFBNEIsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTTNILE1BQU0sT0FBTyxhQUFhO0lBWXhCLFlBQ1UsYUFBK0IsRUFDL0IsV0FBNkI7UUFEN0Isa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBQy9CLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQVh2QywyQ0FBMkM7UUFDbEIsYUFBUSxHQUFHLElBQUksQ0FBQztRQUV6QywyQ0FBMkM7UUFDcEIsV0FBTSxHQUFHLElBQUksQ0FBQztJQVFqQyxDQUFDO0lBRUwsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDaEUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDeEU7WUFFRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDbkI7SUFDSCxDQUFDO0lBRU8sVUFBVTtRQUNoQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3pCLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFFN0IsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMvQyxPQUFPO1NBQ1I7UUFFRCwwREFBMEQ7UUFDMUQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEIsUUFBUSxHQUFHLEtBQUssQ0FBQztTQUNsQjtRQUVELE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3ZFLE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxRQUFRLElBQUksUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUVsRSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN0QyxJQUFJLGNBQWMsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7YUFDdkI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7YUFDekI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OztZQXRERixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFVBQVU7YUFDckI7OztZQUxrRixnQkFBZ0I7WUFBN0IsV0FBVzs7O3VCQVU5RSxLQUFLLFNBQUMsZ0JBQWdCO3FCQUd0QixLQUFLLFNBQUMsY0FBYztvQkFHcEIsS0FBSyxTQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVtYmVkZGVkVmlld1JlZiwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVGV4dEZpZWxkIH0gZnJvbSAnLi9yZW5kZXJpbmctZmllbGQnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbc2NUZXh0XScsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZXh0RGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBwcml2YXRlIHZpZXdSZWY6IEVtYmVkZGVkVmlld1JlZjxhbnk+O1xyXG5cclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXHJcbiAgQElucHV0KCdzY1RleHRFZGl0YWJsZScpIGVkaXRhYmxlID0gdHJ1ZTtcclxuXHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnc2NUZXh0RW5jb2RlJykgZW5jb2RlID0gdHJ1ZTtcclxuXHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnc2NUZXh0JykgZmllbGQ6IFRleHRGaWVsZDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBwcml2YXRlIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+XHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgaWYgKGNoYW5nZXNbJ2ZpZWxkJ10gfHwgY2hhbmdlc1snZWRpdGFibGUnXSB8fCBjaGFuZ2VzWydlbmNvZGUnXSkge1xyXG4gICAgICBpZiAoIXRoaXMudmlld1JlZikge1xyXG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lci5jbGVhcigpO1xyXG4gICAgICAgIHRoaXMudmlld1JlZiA9IHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZVJlZik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMudXBkYXRlVmlldygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVWaWV3KCkge1xyXG4gICAgY29uc3QgZmllbGQgPSB0aGlzLmZpZWxkO1xyXG4gICAgbGV0IGVkaXRhYmxlID0gdGhpcy5lZGl0YWJsZTtcclxuXHJcbiAgICBpZiAoIWZpZWxkIHx8ICghZmllbGQuZWRpdGFibGUgJiYgIWZpZWxkLnZhbHVlKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gY2FuJ3QgdXNlIGVkaXRhYmxlIHZhbHVlIGlmIHdlIHdhbnQgdG8gb3V0cHV0IHVuZW5jb2RlZFxyXG4gICAgaWYgKCF0aGlzLmVuY29kZSkge1xyXG4gICAgICBlZGl0YWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGh0bWwgPSBmaWVsZC5lZGl0YWJsZSAmJiBlZGl0YWJsZSA/IGZpZWxkLmVkaXRhYmxlIDogZmllbGQudmFsdWU7XHJcbiAgICBjb25zdCBzZXREYW5nZXJvdXNseSA9IGZpZWxkLmVkaXRhYmxlICYmIGVkaXRhYmxlIHx8ICF0aGlzLmVuY29kZTtcclxuXHJcbiAgICB0aGlzLnZpZXdSZWYucm9vdE5vZGVzLmZvckVhY2goKG5vZGUpID0+IHtcclxuICAgICAgaWYgKHNldERhbmdlcm91c2x5KSB7XHJcbiAgICAgICAgbm9kZS5pbm5lckhUTUwgPSBodG1sO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG5vZGUudGV4dENvbnRlbnQgPSBodG1sO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvYWRpcC9EZXNrdG9wL1NpdGVjb3JlL2pzcy9wYWNrYWdlcy9zaXRlY29yZS1qc3MtYW5ndWxhci9zcmMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3RleHQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsS0FBSyxFQUdMLFdBQVcsRUFDWCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFNdkIsTUFBTSxPQUFPLGFBQWE7SUFTeEIsWUFBb0IsYUFBK0IsRUFBVSxXQUE2QjtRQUF0RSxrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFOakUsYUFBUSxHQUFHLElBQUksQ0FBQztRQUVsQixXQUFNLEdBQUcsSUFBSSxDQUFDO0lBSXdELENBQUM7SUFFOUYsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDdkQsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDeEU7WUFFRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDbkI7SUFDSCxDQUFDO0lBRU8sVUFBVTtRQUNoQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3pCLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFFN0IsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMvQyxPQUFPO1NBQ1I7UUFFRCwwREFBMEQ7UUFDMUQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEIsUUFBUSxHQUFHLEtBQUssQ0FBQztTQUNsQjtRQUVELE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3ZFLE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFFcEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDdEMsSUFBSSxjQUFjLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2FBQ3ZCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2FBQ3pCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs7WUFoREYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxVQUFVO2FBQ3JCOzs7WUFOQyxnQkFBZ0I7WUFEaEIsV0FBVzs7O3VCQVdWLEtBQUssU0FBQyxnQkFBZ0I7cUJBRXRCLEtBQUssU0FBQyxjQUFjO29CQUVwQixLQUFLLFNBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgRGlyZWN0aXZlLFxyXG4gIEVtYmVkZGVkVmlld1JlZixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBUZW1wbGF0ZVJlZixcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUZXh0RmllbGQgfSBmcm9tICcuL3JlbmRlcmluZy1maWVsZCc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tzY1RleHRdJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRleHREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIHByaXZhdGUgdmlld1JlZjogRW1iZWRkZWRWaWV3UmVmPGFueT47XHJcblxyXG4gIEBJbnB1dCgnc2NUZXh0RWRpdGFibGUnKSBlZGl0YWJsZSA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgnc2NUZXh0RW5jb2RlJykgZW5jb2RlID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KCdzY1RleHQnKSBmaWVsZDogVGV4dEZpZWxkO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsIHByaXZhdGUgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4pIHt9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGlmIChjaGFuZ2VzLmZpZWxkIHx8IGNoYW5nZXMuZWRpdGFibGUgfHwgY2hhbmdlcy5lbmNvZGUpIHtcclxuICAgICAgaWYgKCF0aGlzLnZpZXdSZWYpIHtcclxuICAgICAgICB0aGlzLnZpZXdDb250YWluZXIuY2xlYXIoKTtcclxuICAgICAgICB0aGlzLnZpZXdSZWYgPSB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGVSZWYpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnVwZGF0ZVZpZXcoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlVmlldygpIHtcclxuICAgIGNvbnN0IGZpZWxkID0gdGhpcy5maWVsZDtcclxuICAgIGxldCBlZGl0YWJsZSA9IHRoaXMuZWRpdGFibGU7XHJcblxyXG4gICAgaWYgKCFmaWVsZCB8fCAoIWZpZWxkLmVkaXRhYmxlICYmICFmaWVsZC52YWx1ZSkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGNhbid0IHVzZSBlZGl0YWJsZSB2YWx1ZSBpZiB3ZSB3YW50IHRvIG91dHB1dCB1bmVuY29kZWRcclxuICAgIGlmICghdGhpcy5lbmNvZGUpIHtcclxuICAgICAgZWRpdGFibGUgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBodG1sID0gZmllbGQuZWRpdGFibGUgJiYgZWRpdGFibGUgPyBmaWVsZC5lZGl0YWJsZSA6IGZpZWxkLnZhbHVlO1xyXG4gICAgY29uc3Qgc2V0RGFuZ2Vyb3VzbHkgPSAoZmllbGQuZWRpdGFibGUgJiYgZWRpdGFibGUpIHx8ICF0aGlzLmVuY29kZTtcclxuXHJcbiAgICB0aGlzLnZpZXdSZWYucm9vdE5vZGVzLmZvckVhY2goKG5vZGUpID0+IHtcclxuICAgICAgaWYgKHNldERhbmdlcm91c2x5KSB7XHJcbiAgICAgICAgbm9kZS5pbm5lckhUTUwgPSBodG1sO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG5vZGUudGV4dENvbnRlbnQgPSBodG1sO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,94 +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)
39
- .then((ngModuleFactory) => {
40
- let componentType = null;
41
- const moduleRef = ngModuleFactory.create(this.injector);
42
- const dynamicComponentType = moduleRef.injector.get(DYNAMIC_COMPONENT);
43
- if (!dynamicComponentType) {
44
- throw new Error(
45
- // tslint:disable-next-line:max-line-length
46
- `JssComponentFactoryService: Lazy load module for component "${lazyComponent.path}" missing DYNAMIC_COMPONENT provider. Missing JssModule.forChild()?`);
47
- }
48
- if (component.componentName in dynamicComponentType) {
49
- componentType = dynamicComponentType[component.componentName];
50
- }
51
- else {
52
- if (typeof dynamicComponentType === 'function') {
53
- componentType = dynamicComponentType;
54
- }
55
- else {
56
- throw new Error(
57
- // tslint:disable-next-line:max-line-length
58
- `JssComponentFactoryService: Lazy load module for component "${lazyComponent.path}" missing DYNAMIC_COMPONENT provider. Missing JssModule.forChild()?`);
59
- }
60
- }
61
- return {
62
- componentDefinition: component,
63
- componentImplementation: componentType,
64
- componentFactory: moduleRef.componentFactoryResolver.resolveComponentFactory(componentType),
65
- };
66
- });
67
- }
68
- return Promise.resolve({
69
- componentDefinition: component,
70
- });
71
- }
72
- getComponents(components) {
73
- // acquire all components and keep them in order while handling their potential async-ness
74
- return Promise.all(components.map((component) => isRawRendering(component)
75
- ? this.getRawComponent(component)
76
- : this.getComponent(component)));
77
- }
78
- getRawComponent(component) {
79
- return Promise.resolve({
80
- componentImplementation: RawComponent,
81
- componentDefinition: component,
82
- });
83
- }
84
- }
85
- JssComponentFactoryService.decorators = [
86
- { type: Injectable }
87
- ];
88
- JssComponentFactoryService.ctorParameters = () => [
89
- { type: Injector },
90
- { type: Compiler },
91
- { type: Array, decorators: [{ type: Inject, args: [PLACEHOLDER_COMPONENTS,] }] },
92
- { type: Array, decorators: [{ type: Inject, args: [PLACEHOLDER_LAZY_COMPONENTS,] }] }
93
- ];
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNzLWNvbXBvbmVudC1mYWN0b3J5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvdnN0cy93b3JrLzEvcy9wYWNrYWdlcy9zaXRlY29yZS1qc3MtYW5ndWxhci9zcmMvIiwic291cmNlcyI6WyJqc3MtY29tcG9uZW50LWZhY3Rvcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsTUFBTSxFQUNOLFVBQVUsRUFDVixRQUFRLEVBRVIsUUFBUSxFQUNSLGVBQWUsRUFDaEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUdMLGlCQUFpQixFQUNqQixzQkFBc0IsRUFDdEIsMkJBQTJCLEVBQzVCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQVN4RCxNQUFNLE9BQU8sMEJBQTBCO0lBSXJDLFlBQ1UsUUFBa0IsRUFDbEIsUUFBa0IsRUFDYyxVQUFrQyxFQUM3QixjQUF3QztRQUg3RSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDYyxlQUFVLEdBQVYsVUFBVSxDQUF3QjtRQUM3QixtQkFBYyxHQUFkLGNBQWMsQ0FBMEI7UUFFbkYsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRWxDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRXRFLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixJQUFJLENBQUMsY0FB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akMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FDbEMsQ0FBQztJQUNKLENBQUM7SUFFTyxlQUFlLENBQUMsU0FBK0I7UUFDckQsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDO1lBQ3JCLHVCQUF1QixFQUFFLFlBQVk7WUFDckMsbUJBQW1CLEVBQUUsU0FBUztTQUMvQixDQUFDLENBQUM7SUFDTCxDQUFDOzs7WUFoR0YsVUFBVTs7O1lBdEJULFFBQVE7WUFFUixRQUFRO3dDQTRCTCxNQUFNLFNBQUMsc0JBQXNCO3dDQUM3QixNQUFNLFNBQUMsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnRGYWN0b3J5LFxyXG4gIEluamVjdCxcclxuICBJbmplY3RhYmxlLFxyXG4gIEluamVjdG9yLFxyXG4gIFR5cGUsXHJcbiAgQ29tcGlsZXIsXHJcbiAgTmdNb2R1bGVGYWN0b3J5XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudFJlbmRlcmluZywgSHRtbEVsZW1lbnRSZW5kZXJpbmcgfSBmcm9tICdAc2l0ZWNvcmUtanNzL3NpdGVjb3JlLWpzcyc7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50TmFtZUFuZE1vZHVsZSxcclxuICBDb21wb25lbnROYW1lQW5kVHlwZSxcclxuICBEWU5BTUlDX0NPTVBPTkVOVCxcclxuICBQTEFDRUhPTERFUl9DT01QT05FTlRTLFxyXG4gIFBMQUNFSE9MREVSX0xBWllfQ09NUE9ORU5UU1xyXG59IGZyb20gJy4vY29tcG9uZW50cy9wbGFjZWhvbGRlci50b2tlbic7XHJcbmltcG9ydCB7IFJhd0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yYXcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgaXNSYXdSZW5kZXJpbmcgfSBmcm9tICcuL2NvbXBvbmVudHMvcmVuZGVyaW5nJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50RmFjdG9yeVJlc3VsdCB7XHJcbiAgY29tcG9uZW50SW1wbGVtZW50YXRpb24/OiBUeXBlPGFueT47XHJcbiAgY29tcG9uZW50RGVmaW5pdGlvbjogQ29tcG9uZW50UmVuZGVyaW5nIHwgSHRtbEVsZW1lbnRSZW5kZXJpbmc7XHJcbiAgY29tcG9uZW50RmFjdG9yeT86IENvbXBvbmVudEZhY3Rvcnk8YW55PjtcclxufVxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgSnNzQ29tcG9uZW50RmFjdG9yeVNlcnZpY2Uge1xyXG4gIHByaXZhdGUgY29tcG9uZW50TWFwOiBNYXA8c3RyaW5nLCBUeXBlPGFueT4+O1xyXG4gIHByaXZhdGUgbGF6eUNvbXBvbmVudE1hcDogTWFwPHN0cmluZywgQ29tcG9uZW50TmFtZUFuZE1vZHVsZT47XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIGNvbXBpbGVyOiBDb21waWxlcixcclxuICAgIEBJbmplY3QoUExBQ0VIT0xERVJfQ09NUE9ORU5UUykgcHJpdmF0ZSBjb21wb25lbnRzOiBDb21wb25lbnROYW1lQW5kVHlwZVtdLFxyXG4gICAgQEluamVjdChQTEFDRUhPTERFUl9MQVpZX0NPTVBPTkVOVFMpIHByaXZhdGUgbGF6eUNvbXBvbmVudHM6IENvbXBvbmVudE5hbWVBbmRNb2R1bGVbXVxyXG4gICkge1xyXG4gICAgICB0aGlzLmNvbXBvbmVudE1hcCA9IG5ldyBNYXAoKTtcclxuICAgICAgdGhpcy5sYXp5Q29tcG9uZW50TWFwID0gbmV3IE1hcCgpO1xyXG5cclxuICAgICAgdGhpcy5jb21wb25lbnRzLmZvckVhY2goKGMpID0+IHRoaXMuY29tcG9uZW50TWFwLnNldChjLm5hbWUsIGMudHlwZSkpO1xyXG5cclxuICAgICAgaWYgKHRoaXMubGF6eUNvbXBvbmVudHMpIHtcclxuICAgICAgICB0aGlzLmxhenlDb21wb25lbnRzLmZvckVhY2goKGMpID0+IHRoaXMubGF6eUNvbXBvbmVudE1hcC5zZXQoYy5wYXRoLCBjKSk7XHJcbiAgICAgIH1cclxuICAgfVxyXG5cclxuICBwcml2YXRlIGxvYWRNb2R1bGVGYWN0b3J5KGxhenlDb21wb25lbnQ6IENvbXBvbmVudE5hbWVBbmRNb2R1bGUpOiBQcm9taXNlPE5nTW9kdWxlRmFjdG9yeTxhbnk+PiB7XHJcbiAgICByZXR1cm4gbGF6eUNvbXBvbmVudC5sb2FkQ2hpbGRyZW4oKS50aGVuKGxvYWRlZCA9PiB7XHJcbiAgICAgIGlmIChsb2FkZWQgaW5zdGFuY2VvZiBOZ01vZHVsZUZhY3RvcnkpIHtcclxuICAgICAgICByZXR1cm4gbG9hZGVkXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGlsZXIuY29tcGlsZU1vZHVsZUFzeW5jKGxvYWRlZClcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGdldENvbXBvbmVudChjb21wb25lbnQ6IENvbXBvbmVudFJlbmRlcmluZyk6IFByb21pc2U8Q29tcG9uZW50RmFjdG9yeVJlc3VsdD4ge1xyXG4gICAgY29uc3QgbG9hZGVkQ29tcG9uZW50ID0gdGhpcy5jb21wb25lbnRNYXAuZ2V0KGNvbXBvbmVudC5jb21wb25lbnROYW1lKTtcclxuXHJcbiAgICBpZiAobG9hZGVkQ29tcG9uZW50KSB7XHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xyXG4gICAgICAgIGNvbXBvbmVudERlZmluaXRpb246IGNvbXBvbmVudCxcclxuICAgICAgICBjb21wb25lbnRJbXBsZW1lbnRhdGlvbjogdGhpcy5jb21wb25lbnRNYXAuZ2V0KGNvbXBvbmVudC5jb21wb25lbnROYW1lKSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgbGF6eUNvbXBvbmVudCA9IHRoaXMubGF6eUNvbXBvbmVudE1hcC5nZXQoY29tcG9uZW50LmNvbXBvbmVudE5hbWUpO1xyXG5cclxuICAgIGlmIChsYXp5Q29tcG9uZW50KSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxvYWRNb2R1bGVGYWN0b3J5KGxhenlDb21wb25lbnQpXHJcbiAgICAgIC50aGVuKChuZ01vZHVsZUZhY3RvcnkpID0+IHtcclxuICAgICAgICBsZXQgY29tcG9uZW50VHlwZSA9IG51bGw7XHJcbiAgICAgICAgY29uc3QgbW9kdWxlUmVmID0gbmdNb2R1bGVGYWN0b3J5LmNyZWF0ZSh0aGlzLmluamVjdG9yKTtcclxuICAgICAgICBjb25zdCBkeW5hbWljQ29tcG9uZW50VHlwZSA9IG1vZHVsZVJlZi5pbmplY3Rvci5nZXQoRFlOQU1JQ19DT01QT05FTlQpO1xyXG4gICAgICAgIGlmICghZHluYW1pY0NvbXBvbmVudFR5cGUpIHtcclxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm1heC1saW5lLWxlbmd0aFxyXG4gICAgICAgICAgICBgSnNzQ29tcG9uZW50RmFjdG9yeVNlcnZpY2U6IExhenkgbG9hZCBtb2R1bGUgZm9yIGNvbXBvbmVudCBcIiR7bGF6eUNvbXBvbmVudC5wYXRofVwiIG1pc3NpbmcgRFlOQU1JQ19DT01QT05FTlQgcHJvdmlkZXIuIE1pc3NpbmcgSnNzTW9kdWxlLmZvckNoaWxkKCk/YFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChjb21wb25lbnQuY29tcG9uZW50TmFtZSBpbiBkeW5hbWljQ29tcG9uZW50VHlwZSkge1xyXG4gICAgICAgICAgY29tcG9uZW50VHlwZSA9IChkeW5hbWljQ29tcG9uZW50VHlwZSBhcyB7W3M6IHN0cmluZ106IGFueX0pW2NvbXBvbmVudC5jb21wb25lbnROYW1lXTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKHR5cGVvZiBkeW5hbWljQ29tcG9uZW50VHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICBjb21wb25lbnRUeXBlID0gZHluYW1pY0NvbXBvbmVudFR5cGU7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm1heC1saW5lLWxlbmd0aFxyXG4gICAgICAgICAgICAgIGBKc3NDb21wb25lbnRGYWN0b3J5U2VydmljZTogTGF6eSBsb2FkIG1vZHVsZSBmb3IgY29tcG9uZW50IFwiJHtsYXp5Q29tcG9uZW50LnBhdGh9XCIgbWlzc2luZyBEWU5BTUlDX0NPTVBPTkVOVCBwcm92aWRlci4gTWlzc2luZyBKc3NNb2R1bGUuZm9yQ2hpbGQoKT9gXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgY29tcG9uZW50RGVmaW5pdGlvbjogY29tcG9uZW50LFxyXG4gICAgICAgICAgY29tcG9uZW50SW1wbGVtZW50YXRpb246IGNvbXBvbmVudFR5cGUsXHJcbiAgICAgICAgICBjb21wb25lbnRGYWN0b3J5OiBtb2R1bGVSZWYuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudFR5cGUpLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xyXG4gICAgICBjb21wb25lbnREZWZpbml0aW9uOiBjb21wb25lbnQsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldENvbXBvbmVudHMoY29tcG9uZW50czogQXJyYXk8Q29tcG9uZW50UmVuZGVyaW5nIHwgSHRtbEVsZW1lbnRSZW5kZXJpbmc+KTogUHJvbWlzZTxDb21wb25lbnRGYWN0b3J5UmVzdWx0W10+IHtcclxuICAgIC8vIGFjcXVpcmUgYWxsIGNvbXBvbmVudHMgYW5kIGtlZXAgdGhlbSBpbiBvcmRlciB3aGlsZSBoYW5kbGluZyB0aGVpciBwb3RlbnRpYWwgYXN5bmMtbmVzc1xyXG4gICAgcmV0dXJuIFByb21pc2UuYWxsKFxyXG4gICAgICBjb21wb25lbnRzLm1hcCgoY29tcG9uZW50KSA9PiBpc1Jhd1JlbmRlcmluZyhjb21wb25lbnQpXHJcbiAgICAgICAgPyB0aGlzLmdldFJhd0NvbXBvbmVudChjb21wb25lbnQpXHJcbiAgICAgICAgOiB0aGlzLmdldENvbXBvbmVudChjb21wb25lbnQpKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0UmF3Q29tcG9uZW50KGNvbXBvbmVudDogSHRtbEVsZW1lbnRSZW5kZXJpbmcpOiBQcm9taXNlPENvbXBvbmVudEZhY3RvcnlSZXN1bHQ+IHtcclxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xyXG4gICAgICBjb21wb25lbnRJbXBsZW1lbnRhdGlvbjogUmF3Q29tcG9uZW50LFxyXG4gICAgICBjb21wb25lbnREZWZpbml0aW9uOiBjb21wb25lbnQsXHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
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,3 +1,3 @@
1
- export class LayoutServiceError {
2
- }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LXNlcnZpY2UtZXJyb3IuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvdnN0cy93b3JrLzEvcy9wYWNrYWdlcy9zaXRlY29yZS1qc3MtYW5ndWxhci9zcmMvIiwic291cmNlcyI6WyJsYXlvdXQtc2VydmljZS1lcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sa0JBQWtCO0NBSTlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGF5b3V0U2VydmljZUNvbnRleHREYXRhIH0gZnJvbSAnQHNpdGVjb3JlLWpzcy9zaXRlY29yZS1qc3MnO1xyXG5cclxuZXhwb3J0IGNsYXNzIExheW91dFNlcnZpY2VFcnJvciB7XHJcbiAgc3RhdHVzOiBudW1iZXI7XHJcbiAgc3RhdHVzVGV4dDogc3RyaW5nO1xyXG4gIGRhdGE/OiB7IHNpdGVjb3JlPzogTGF5b3V0U2VydmljZUNvbnRleHREYXRhIH07XHJcbn1cclxuIl19
1
+ export class LayoutServiceError {
2
+ }
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LXNlcnZpY2UtZXJyb3IuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvYWRpcC9EZXNrdG9wL1NpdGVjb3JlL2pzcy9wYWNrYWdlcy9zaXRlY29yZS1qc3MtYW5ndWxhci9zcmMvIiwic291cmNlcyI6WyJsYXlvdXQtc2VydmljZS1lcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sa0JBQWtCO0NBSTlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGF5b3V0U2VydmljZUNvbnRleHREYXRhIH0gZnJvbSAnQHNpdGVjb3JlLWpzcy9zaXRlY29yZS1qc3MnO1xyXG5cclxuZXhwb3J0IGNsYXNzIExheW91dFNlcnZpY2VFcnJvciB7XHJcbiAgc3RhdHVzOiBudW1iZXI7XHJcbiAgc3RhdHVzVGV4dDogc3RyaW5nO1xyXG4gIGRhdGE/OiB7IHNpdGVjb3JlPzogTGF5b3V0U2VydmljZUNvbnRleHREYXRhIH07XHJcbn1cclxuIl19
@@ -1,30 +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))
20
- .pipe(catchError(LayoutService.getLayoutServiceError));
21
- }
22
- getPlaceholderData(route, placeholderName, options) {
23
- return fromPromise(fetchPlaceholderData(placeholderName, route, options))
24
- .pipe(catchError(LayoutService.getLayoutServiceError));
25
- }
26
- }
27
- LayoutService.decorators = [
28
- { type: Injectable }
29
- ];
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvdnN0cy93b3JrLzEvcy9wYWNrYWdlcy9zaXRlY29yZS1qc3MtYW5ndWxhci9zcmMvIiwic291cmNlcyI6WyJsYXlvdXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQW1FLE1BQU0sNEJBQTRCLENBQUM7QUFDdEgsT0FBTyxFQUFFLElBQUksSUFBSSxXQUFXLEVBQWMsVUFBVSxJQUFJLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFNUQsTUFBTSxFQUFFLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLE9BQU8sQ0FBQztBQUd6RCxNQUFNLE9BQU8sYUFBYTtJQUNoQixNQUFNLENBQUMscUJBQXFCLENBQUMsS0FBVTtRQUM3QyxNQUFNLGtCQUFrQixHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUNwRCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO1FBQ2hDLElBQUksUUFBUSxFQUFFO1lBQ1osa0JBQWtCLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDNUMsa0JBQWtCLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUM7WUFDcEQsa0JBQWtCLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7U0FDekM7UUFFRCxPQUFPLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBYSxFQUFFLE9BQXVEO1FBQ2pGLE9BQU8sV0FBVyxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7YUFDL0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxrQkFBa0IsQ0FDaEIsS0FBYSxFQUNiLGVBQXVCLEVBQ3ZCLE9BQXFEO1FBRXJELE9BQU8sV0FBVyxDQUFDLG9CQUFvQixDQUFDLGVBQWUsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7YUFDdEUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7OztZQTFCRixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBkYXRhQXBpLCBMYXlvdXRTZXJ2aWNlRGF0YSwgTGF5b3V0U2VydmljZVJlcXVlc3RPcHRpb25zLCBQbGFjZWhvbGRlckRhdGEgfSBmcm9tICdAc2l0ZWNvcmUtanNzL3NpdGVjb3JlLWpzcyc7XHJcbmltcG9ydCB7IGZyb20gYXMgZnJvbVByb21pc2UsIE9ic2VydmFibGUsIHRocm93RXJyb3IgYXMgb2JzZXJ2YWJsZVRocm93IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IExheW91dFNlcnZpY2VFcnJvciB9IGZyb20gJy4vbGF5b3V0LXNlcnZpY2UtZXJyb3InO1xyXG5cclxuY29uc3QgeyBmZXRjaFJvdXRlRGF0YSwgZmV0Y2hQbGFjZWhvbGRlckRhdGEgfSA9IGRhdGFBcGk7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBMYXlvdXRTZXJ2aWNlIHtcclxuICBwcml2YXRlIHN0YXRpYyBnZXRMYXlvdXRTZXJ2aWNlRXJyb3IoZXJyb3I6IGFueSk6IE9ic2VydmFibGU8TGF5b3V0U2VydmljZUVycm9yPiB7XHJcbiAgICBjb25zdCBsYXlvdXRTZXJ2aWNlRXJyb3IgPSBuZXcgTGF5b3V0U2VydmljZUVycm9yKCk7XHJcbiAgICBjb25zdCByZXNwb25zZSA9IGVycm9yLnJlc3BvbnNlO1xyXG4gICAgaWYgKHJlc3BvbnNlKSB7XHJcbiAgICAgIGxheW91dFNlcnZpY2VFcnJvci5zdGF0dXMgPSByZXNwb25zZS5zdGF0dXM7XHJcbiAgICAgIGxheW91dFNlcnZpY2VFcnJvci5zdGF0dXNUZXh0ID0gcmVzcG9uc2Uuc3RhdHVzVGV4dDtcclxuICAgICAgbGF5b3V0U2VydmljZUVycm9yLmRhdGEgPSByZXNwb25zZS5kYXRhO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBvYnNlcnZhYmxlVGhyb3cobGF5b3V0U2VydmljZUVycm9yKTtcclxuICB9XHJcblxyXG4gIGdldFJvdXRlRGF0YShyb3V0ZTogc3RyaW5nLCBvcHRpb25zOiBMYXlvdXRTZXJ2aWNlUmVxdWVzdE9wdGlvbnM8TGF5b3V0U2VydmljZURhdGE+KTogT2JzZXJ2YWJsZTxMYXlvdXRTZXJ2aWNlRGF0YSB8IExheW91dFNlcnZpY2VFcnJvcj4ge1xyXG4gICAgcmV0dXJuIGZyb21Qcm9taXNlKGZldGNoUm91dGVEYXRhKHJvdXRlLCBvcHRpb25zKSlcclxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcihMYXlvdXRTZXJ2aWNlLmdldExheW91dFNlcnZpY2VFcnJvcikpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGxhY2Vob2xkZXJEYXRhKFxyXG4gICAgcm91dGU6IHN0cmluZyxcclxuICAgIHBsYWNlaG9sZGVyTmFtZTogc3RyaW5nLFxyXG4gICAgb3B0aW9uczogTGF5b3V0U2VydmljZVJlcXVlc3RPcHRpb25zPFBsYWNlaG9sZGVyRGF0YT5cclxuICApOiBPYnNlcnZhYmxlPFBsYWNlaG9sZGVyRGF0YSB8IExheW91dFNlcnZpY2VFcnJvcj4ge1xyXG4gICAgcmV0dXJuIGZyb21Qcm9taXNlKGZldGNoUGxhY2Vob2xkZXJEYXRhKHBsYWNlaG9sZGVyTmFtZSwgcm91dGUsIG9wdGlvbnMpKVxyXG4gICAgICAucGlwZShjYXRjaEVycm9yKExheW91dFNlcnZpY2UuZ2V0TGF5b3V0U2VydmljZUVycm9yKSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvYWRpcC9EZXNrdG9wL1NpdGVjb3JlL2pzcy9wYWNrYWdlcy9zaXRlY29yZS1qc3MtYW5ndWxhci9zcmMvIiwic291cmNlcyI6WyJsYXlvdXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFDTCxPQUFPLEdBSVIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsSUFBSSxJQUFJLFdBQVcsRUFBYyxVQUFVLElBQUksZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU1RCxNQUFNLEVBQUUsY0FBYyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsT0FBTyxDQUFDO0FBR3pELE1BQU0sT0FBTyxhQUFhO0lBQ2hCLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxLQUFVO1FBQzdDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQ3BELE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7UUFDaEMsSUFBSSxRQUFRLEVBQUU7WUFDWixrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUM1QyxrQkFBa0IsQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQztZQUNwRCxrQkFBa0IsQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztTQUN6QztRQUVELE9BQU8sZUFBZSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELFlBQVksQ0FDVixLQUFhLEVBQ2IsT0FBdUQ7UUFFdkQsT0FBTyxXQUFXLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDckQsVUFBVSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUNoRCxDQUFDO0lBQ0osQ0FBQztJQUVELGtCQUFrQixDQUNoQixLQUFhLEVBQ2IsZUFBdUIsRUFDdkIsT0FBcUQ7UUFFckQsT0FBTyxXQUFXLENBQUMsb0JBQW9CLENBQUMsZUFBZSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDNUUsVUFBVSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUNoRCxDQUFDO0lBQ0osQ0FBQzs7O1lBL0JGLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgZGF0YUFwaSxcclxuICBMYXlvdXRTZXJ2aWNlRGF0YSxcclxuICBMYXlvdXRTZXJ2aWNlUmVxdWVzdE9wdGlvbnMsXHJcbiAgUGxhY2Vob2xkZXJEYXRhLFxyXG59IGZyb20gJ0BzaXRlY29yZS1qc3Mvc2l0ZWNvcmUtanNzJztcclxuaW1wb3J0IHsgZnJvbSBhcyBmcm9tUHJvbWlzZSwgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciBhcyBvYnNlcnZhYmxlVGhyb3cgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgTGF5b3V0U2VydmljZUVycm9yIH0gZnJvbSAnLi9sYXlvdXQtc2VydmljZS1lcnJvcic7XHJcblxyXG5jb25zdCB7IGZldGNoUm91dGVEYXRhLCBmZXRjaFBsYWNlaG9sZGVyRGF0YSB9ID0gZGF0YUFwaTtcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIExheW91dFNlcnZpY2Uge1xyXG4gIHByaXZhdGUgc3RhdGljIGdldExheW91dFNlcnZpY2VFcnJvcihlcnJvcjogYW55KTogT2JzZXJ2YWJsZTxMYXlvdXRTZXJ2aWNlRXJyb3I+IHtcclxuICAgIGNvbnN0IGxheW91dFNlcnZpY2VFcnJvciA9IG5ldyBMYXlvdXRTZXJ2aWNlRXJyb3IoKTtcclxuICAgIGNvbnN0IHJlc3BvbnNlID0gZXJyb3IucmVzcG9uc2U7XHJcbiAgICBpZiAocmVzcG9uc2UpIHtcclxuICAgICAgbGF5b3V0U2VydmljZUVycm9yLnN0YXR1cyA9IHJlc3BvbnNlLnN0YXR1cztcclxuICAgICAgbGF5b3V0U2VydmljZUVycm9yLnN0YXR1c1RleHQgPSByZXNwb25zZS5zdGF0dXNUZXh0O1xyXG4gICAgICBsYXlvdXRTZXJ2aWNlRXJyb3IuZGF0YSA9IHJlc3BvbnNlLmRhdGE7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG9ic2VydmFibGVUaHJvdyhsYXlvdXRTZXJ2aWNlRXJyb3IpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Um91dGVEYXRhKFxyXG4gICAgcm91dGU6IHN0cmluZyxcclxuICAgIG9wdGlvbnM6IExheW91dFNlcnZpY2VSZXF1ZXN0T3B0aW9uczxMYXlvdXRTZXJ2aWNlRGF0YT5cclxuICApOiBPYnNlcnZhYmxlPExheW91dFNlcnZpY2VEYXRhIHwgTGF5b3V0U2VydmljZUVycm9yPiB7XHJcbiAgICByZXR1cm4gZnJvbVByb21pc2UoZmV0Y2hSb3V0ZURhdGEocm91dGUsIG9wdGlvbnMpKS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKExheW91dFNlcnZpY2UuZ2V0TGF5b3V0U2VydmljZUVycm9yKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFBsYWNlaG9sZGVyRGF0YShcclxuICAgIHJvdXRlOiBzdHJpbmcsXHJcbiAgICBwbGFjZWhvbGRlck5hbWU6IHN0cmluZyxcclxuICAgIG9wdGlvbnM6IExheW91dFNlcnZpY2VSZXF1ZXN0T3B0aW9uczxQbGFjZWhvbGRlckRhdGE+XHJcbiAgKTogT2JzZXJ2YWJsZTxQbGFjZWhvbGRlckRhdGEgfCBMYXlvdXRTZXJ2aWNlRXJyb3I+IHtcclxuICAgIHJldHVybiBmcm9tUHJvbWlzZShmZXRjaFBsYWNlaG9sZGVyRGF0YShwbGFjZWhvbGRlck5hbWUsIHJvdXRlLCBvcHRpb25zKSkucGlwZShcclxuICAgICAgY2F0Y2hFcnJvcihMYXlvdXRTZXJ2aWNlLmdldExheW91dFNlcnZpY2VFcnJvcilcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==