@sitecore-jss/sitecore-jss-angular 13.2.4 → 13.2.5-canary.2

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 (79) 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 +1158 -1158
  5. package/dist/components/date.directive.d.ts +17 -17
  6. package/dist/components/file.directive.d.ts +14 -14
  7. package/dist/components/generic-link.directive.d.ts +14 -14
  8. package/dist/components/image.directive.d.ts +20 -20
  9. package/dist/components/link.directive.d.ts +18 -18
  10. package/dist/components/missing-component.component.d.ts +3 -3
  11. package/dist/components/placeholder-loading.directive.d.ts +5 -5
  12. package/dist/components/placeholder.component.d.ts +45 -45
  13. package/dist/components/placeholder.token.d.ts +24 -24
  14. package/dist/components/raw.component.d.ts +9 -9
  15. package/dist/components/render-component.component.d.ts +29 -29
  16. package/dist/components/render-each.directive.d.ts +5 -5
  17. package/dist/components/render-empty.directive.d.ts +5 -5
  18. package/dist/components/rendering-field.d.ts +20 -20
  19. package/dist/components/rendering.d.ts +2 -2
  20. package/dist/components/rich-text.directive.d.ts +12 -12
  21. package/dist/components/router-link.directive.d.ts +12 -12
  22. package/dist/components/text.directive.d.ts +13 -13
  23. package/dist/esm2015/components/date.directive.js +63 -63
  24. package/dist/esm2015/components/file.directive.js +44 -44
  25. package/dist/esm2015/components/generic-link.directive.js +67 -67
  26. package/dist/esm2015/components/image.directive.js +131 -131
  27. package/dist/esm2015/components/link.directive.js +92 -92
  28. package/dist/esm2015/components/missing-component.component.js +14 -14
  29. package/dist/esm2015/components/placeholder-loading.directive.js +16 -16
  30. package/dist/esm2015/components/placeholder.component.js +205 -205
  31. package/dist/esm2015/components/placeholder.token.js +14 -14
  32. package/dist/esm2015/components/raw.component.js +37 -37
  33. package/dist/esm2015/components/render-component.component.js +93 -93
  34. package/dist/esm2015/components/render-each.directive.js +17 -17
  35. package/dist/esm2015/components/render-empty.directive.js +17 -17
  36. package/dist/esm2015/components/rendering.js +3 -3
  37. package/dist/esm2015/components/rich-text.directive.js +45 -45
  38. package/dist/esm2015/components/router-link.directive.js +51 -51
  39. package/dist/esm2015/components/text.directive.js +61 -61
  40. package/dist/esm2015/jss-component-factory.service.js +85 -85
  41. package/dist/esm2015/layout-service-error.js +2 -2
  42. package/dist/esm2015/layout.service.js +32 -32
  43. package/dist/esm2015/lib.module.js +115 -115
  44. package/dist/esm2015/public_api.js +15 -15
  45. package/dist/esm2015/sitecore-jss-sitecore-jss-angular.js +12 -12
  46. package/dist/esm5/components/date.directive.js +65 -65
  47. package/dist/esm5/components/file.directive.js +45 -45
  48. package/dist/esm5/components/generic-link.directive.js +72 -72
  49. package/dist/esm5/components/image.directive.js +139 -139
  50. package/dist/esm5/components/link.directive.js +101 -101
  51. package/dist/esm5/components/missing-component.component.js +17 -17
  52. package/dist/esm5/components/placeholder-loading.directive.js +17 -17
  53. package/dist/esm5/components/placeholder.component.js +216 -216
  54. package/dist/esm5/components/placeholder.token.js +18 -18
  55. package/dist/esm5/components/raw.component.js +38 -38
  56. package/dist/esm5/components/render-component.component.js +103 -103
  57. package/dist/esm5/components/render-each.directive.js +18 -18
  58. package/dist/esm5/components/render-empty.directive.js +18 -18
  59. package/dist/esm5/components/rendering.js +3 -3
  60. package/dist/esm5/components/rich-text.directive.js +46 -46
  61. package/dist/esm5/components/router-link.directive.js +56 -56
  62. package/dist/esm5/components/text.directive.js +62 -62
  63. package/dist/esm5/jss-component-factory.service.js +89 -89
  64. package/dist/esm5/layout-service-error.js +6 -6
  65. package/dist/esm5/layout.service.js +36 -36
  66. package/dist/esm5/lib.module.js +118 -118
  67. package/dist/esm5/public_api.js +15 -15
  68. package/dist/esm5/sitecore-jss-sitecore-jss-angular.js +12 -12
  69. package/dist/fesm2015/sitecore-jss-sitecore-jss-angular.js +1083 -1083
  70. package/dist/fesm5/sitecore-jss-sitecore-jss-angular.js +1160 -1160
  71. package/dist/jss-component-factory.service.d.ts +19 -19
  72. package/dist/layout-service-error.d.ts +8 -8
  73. package/dist/layout.service.d.ts +8 -8
  74. package/dist/lib.module.d.ts +16 -16
  75. package/dist/package.json +2 -2
  76. package/dist/public_api.d.ts +16 -16
  77. package/dist/sitecore-jss-sitecore-jss-angular.d.ts +12 -12
  78. package/package.json +3 -3
  79. package/typings/README.md +2 -2
@@ -1,212 +1,212 @@
1
- import * as tslib_1 from "tslib";
2
- import { ChangeDetectorRef, Component, ComponentFactoryResolver, ContentChild, DoCheck, ElementRef, EventEmitter, Inject, Input, KeyValueDiffer, KeyValueDiffers, OnChanges, OnDestroy, OnInit, Output, Renderer2, SimpleChanges, Type, ViewChild, ViewContainerRef, } from '@angular/core';
3
- import { Observable } from 'rxjs';
4
- import { takeWhile } from 'rxjs/operators';
5
- import { ComponentFactoryResult, JssComponentFactoryService } from '../jss-component-factory.service';
6
- import { PlaceholderLoadingDirective } from './placeholder-loading.directive';
7
- import { PLACEHOLDER_MISSING_COMPONENT_COMPONENT } from './placeholder.token';
8
- import { RenderEachDirective } from './render-each.directive';
9
- import { RenderEmptyDirective } from './render-empty.directive';
10
- import { isRawRendering } from './rendering';
11
- function getPlaceholder(rendering, name) {
12
- if (rendering && rendering.placeholders && Object.keys(rendering.placeholders).length > 0) {
13
- return rendering.placeholders[name];
14
- }
15
- return null;
16
- }
17
- let PlaceholderComponent = class PlaceholderComponent {
18
- constructor(componentFactoryResolver, differs, componentFactory, changeDetectorRef, elementRef, renderer, missingComponentComponent) {
19
- this.componentFactoryResolver = componentFactoryResolver;
20
- this.differs = differs;
21
- this.componentFactory = componentFactory;
22
- this.changeDetectorRef = changeDetectorRef;
23
- this.elementRef = elementRef;
24
- this.renderer = renderer;
25
- this.missingComponentComponent = missingComponentComponent;
26
- this._componentInstances = [];
27
- this.destroyed = false;
28
- this.parentStyleAttribute = '';
29
- this.isLoading = true;
30
- this.loaded = new EventEmitter();
31
- }
32
- set inputs(value) {
33
- this._inputs = value;
34
- if (!this._differ && value) {
35
- this._differ = this.differs.find(value).create();
36
- }
37
- }
38
- ngOnInit() {
39
- // just to ensure the element exists
40
- const elem = this.elementRef.nativeElement;
41
- if (elem) {
42
- const attributes = elem.attributes;
43
- for (let i = 0; i < attributes.length; i++) {
44
- const attr = attributes.item(i);
45
- if (attr && attr.name.indexOf('_ngcontent') !== -1) {
46
- this.parentStyleAttribute = attr.name;
47
- }
48
- }
49
- }
50
- }
51
- ngOnDestroy() {
52
- this.destroyed = true;
53
- this._componentInstances = [];
54
- }
55
- ngOnChanges(changes) {
56
- if (changes['rendering'] || changes['renderings']) {
57
- this._render();
58
- }
59
- }
60
- ngDoCheck() {
61
- if (!this._differ || !this._inputs || this._componentInstances.length === 0) {
62
- return;
63
- }
64
- const changes = this._differ.diff(this._inputs);
65
- if (!changes) {
66
- return;
67
- }
68
- const updates = {};
69
- changes.forEachRemovedItem((change) => updates[change.key] = null);
70
- changes.forEachAddedItem((change) => updates[change.key] = change.currentValue);
71
- changes.forEachChangedItem((change) => updates[change.key] = change.currentValue);
72
- this._componentInstances.forEach((componentInstance) => this._setComponentInputs(componentInstance, updates));
73
- }
74
- _setComponentInputs(componentInstance, inputs) {
75
- Object.entries(inputs).forEach(([input, inputValue]) => componentInstance[input] = inputValue);
76
- }
77
- _subscribeComponentOutputs(componentInstance, outputs) {
78
- Object.keys(outputs)
79
- .filter((output) => componentInstance[output] && componentInstance[output] instanceof Observable)
80
- .forEach((output) => componentInstance[output]
81
- .pipe(takeWhile(() => !this.destroyed))
82
- .subscribe(outputs[output]));
83
- }
84
- _render() {
85
- this._componentInstances = [];
86
- this.view.clear();
87
- if (!this.rendering && !this.renderings) {
88
- return;
89
- }
90
- if (!this.name && !this.renderings) {
91
- // tslint:disable-next-line:max-line-length
92
- console.warn(`Placeholder name was not specified, and explicit renderings array was not passed. Placeholder requires either name and rendering, or renderings.`);
93
- this.isLoading = false;
94
- return;
95
- }
96
- const placeholder = this.renderings || getPlaceholder(this.rendering, this.name || '');
97
- if (!placeholder) {
98
- console.warn(`Placeholder '${this.name}' was not found in the current rendering data`, JSON.stringify(this.rendering, null, 2));
99
- this.isLoading = false;
100
- return;
101
- }
102
- // if the placeholder is empty (contains only raw renderings), then we may need to use the empty template if it's defined
103
- const placeholderIsEmpty = placeholder.every((rendering) => isRawRendering(rendering));
104
- if (this.renderEmptyTemplate && placeholderIsEmpty) {
105
- this.view.createEmbeddedView(this.renderEmptyTemplate.templateRef, {
106
- renderings: placeholder,
107
- });
108
- this.isLoading = false;
109
- }
110
- else {
111
- this.componentFactory.getComponents(placeholder)
112
- .then((components) => components.forEach((rendering, index) => {
113
- if (this.renderEachTemplate && !isRawRendering(rendering.componentDefinition)) {
114
- this._renderTemplatedComponent(rendering.componentDefinition, index);
115
- }
116
- else {
117
- this._renderEmbeddedComponent(rendering, index);
118
- }
119
- this.isLoading = false;
120
- })).then(() => {
121
- this.changeDetectorRef.markForCheck();
122
- this.loaded.emit(this.name);
123
- });
124
- }
125
- }
126
- _renderTemplatedComponent(rendering, index) {
127
- // the render-each template takes care of all component mapping etc
128
- // generally using <sc-render-component> which is about like _renderEmbeddedComponent()
129
- // as a separate component
130
- this.view.createEmbeddedView(this.renderEachTemplate.templateRef, {
131
- rendering,
132
- index,
133
- });
134
- }
135
- _renderEmbeddedComponent(rendering, index) {
136
- if (!rendering.componentImplementation) {
137
- const componentName = rendering.componentDefinition.componentName;
1
+ import * as tslib_1 from "tslib";
2
+ import { ChangeDetectorRef, Component, ComponentFactoryResolver, ContentChild, DoCheck, ElementRef, EventEmitter, Inject, Input, KeyValueDiffer, KeyValueDiffers, OnChanges, OnDestroy, OnInit, Output, Renderer2, SimpleChanges, Type, ViewChild, ViewContainerRef, } from '@angular/core';
3
+ import { Observable } from 'rxjs';
4
+ import { takeWhile } from 'rxjs/operators';
5
+ import { ComponentFactoryResult, JssComponentFactoryService } from '../jss-component-factory.service';
6
+ import { PlaceholderLoadingDirective } from './placeholder-loading.directive';
7
+ import { PLACEHOLDER_MISSING_COMPONENT_COMPONENT } from './placeholder.token';
8
+ import { RenderEachDirective } from './render-each.directive';
9
+ import { RenderEmptyDirective } from './render-empty.directive';
10
+ import { isRawRendering } from './rendering';
11
+ function getPlaceholder(rendering, name) {
12
+ if (rendering && rendering.placeholders && Object.keys(rendering.placeholders).length > 0) {
13
+ return rendering.placeholders[name];
14
+ }
15
+ return null;
16
+ }
17
+ let PlaceholderComponent = class PlaceholderComponent {
18
+ constructor(componentFactoryResolver, differs, componentFactory, changeDetectorRef, elementRef, renderer, missingComponentComponent) {
19
+ this.componentFactoryResolver = componentFactoryResolver;
20
+ this.differs = differs;
21
+ this.componentFactory = componentFactory;
22
+ this.changeDetectorRef = changeDetectorRef;
23
+ this.elementRef = elementRef;
24
+ this.renderer = renderer;
25
+ this.missingComponentComponent = missingComponentComponent;
26
+ this._componentInstances = [];
27
+ this.destroyed = false;
28
+ this.parentStyleAttribute = '';
29
+ this.isLoading = true;
30
+ this.loaded = new EventEmitter();
31
+ }
32
+ set inputs(value) {
33
+ this._inputs = value;
34
+ if (!this._differ && value) {
35
+ this._differ = this.differs.find(value).create();
36
+ }
37
+ }
38
+ ngOnInit() {
39
+ // just to ensure the element exists
40
+ const elem = this.elementRef.nativeElement;
41
+ if (elem) {
42
+ const attributes = elem.attributes;
43
+ for (let i = 0; i < attributes.length; i++) {
44
+ const attr = attributes.item(i);
45
+ if (attr && attr.name.indexOf('_ngcontent') !== -1) {
46
+ this.parentStyleAttribute = attr.name;
47
+ }
48
+ }
49
+ }
50
+ }
51
+ ngOnDestroy() {
52
+ this.destroyed = true;
53
+ this._componentInstances = [];
54
+ }
55
+ ngOnChanges(changes) {
56
+ if (changes['rendering'] || changes['renderings']) {
57
+ this._render();
58
+ }
59
+ }
60
+ ngDoCheck() {
61
+ if (!this._differ || !this._inputs || this._componentInstances.length === 0) {
62
+ return;
63
+ }
64
+ const changes = this._differ.diff(this._inputs);
65
+ if (!changes) {
66
+ return;
67
+ }
68
+ const updates = {};
69
+ changes.forEachRemovedItem((change) => updates[change.key] = null);
70
+ changes.forEachAddedItem((change) => updates[change.key] = change.currentValue);
71
+ changes.forEachChangedItem((change) => updates[change.key] = change.currentValue);
72
+ this._componentInstances.forEach((componentInstance) => this._setComponentInputs(componentInstance, updates));
73
+ }
74
+ _setComponentInputs(componentInstance, inputs) {
75
+ Object.entries(inputs).forEach(([input, inputValue]) => componentInstance[input] = inputValue);
76
+ }
77
+ _subscribeComponentOutputs(componentInstance, outputs) {
78
+ Object.keys(outputs)
79
+ .filter((output) => componentInstance[output] && componentInstance[output] instanceof Observable)
80
+ .forEach((output) => componentInstance[output]
81
+ .pipe(takeWhile(() => !this.destroyed))
82
+ .subscribe(outputs[output]));
83
+ }
84
+ _render() {
85
+ this._componentInstances = [];
86
+ this.view.clear();
87
+ if (!this.rendering && !this.renderings) {
88
+ return;
89
+ }
90
+ if (!this.name && !this.renderings) {
91
+ // tslint:disable-next-line:max-line-length
92
+ console.warn(`Placeholder name was not specified, and explicit renderings array was not passed. Placeholder requires either name and rendering, or renderings.`);
93
+ this.isLoading = false;
94
+ return;
95
+ }
96
+ const placeholder = this.renderings || getPlaceholder(this.rendering, this.name || '');
97
+ if (!placeholder) {
98
+ console.warn(`Placeholder '${this.name}' was not found in the current rendering data`, JSON.stringify(this.rendering, null, 2));
99
+ this.isLoading = false;
100
+ return;
101
+ }
102
+ // if the placeholder is empty (contains only raw renderings), then we may need to use the empty template if it's defined
103
+ const placeholderIsEmpty = placeholder.every((rendering) => isRawRendering(rendering));
104
+ if (this.renderEmptyTemplate && placeholderIsEmpty) {
105
+ this.view.createEmbeddedView(this.renderEmptyTemplate.templateRef, {
106
+ renderings: placeholder,
107
+ });
108
+ this.isLoading = false;
109
+ }
110
+ else {
111
+ this.componentFactory.getComponents(placeholder)
112
+ .then((components) => components.forEach((rendering, index) => {
113
+ if (this.renderEachTemplate && !isRawRendering(rendering.componentDefinition)) {
114
+ this._renderTemplatedComponent(rendering.componentDefinition, index);
115
+ }
116
+ else {
117
+ this._renderEmbeddedComponent(rendering, index);
118
+ }
119
+ this.isLoading = false;
120
+ })).then(() => {
121
+ this.changeDetectorRef.markForCheck();
122
+ this.loaded.emit(this.name);
123
+ });
124
+ }
125
+ }
126
+ _renderTemplatedComponent(rendering, index) {
127
+ // the render-each template takes care of all component mapping etc
128
+ // generally using <sc-render-component> which is about like _renderEmbeddedComponent()
129
+ // as a separate component
130
+ this.view.createEmbeddedView(this.renderEachTemplate.templateRef, {
131
+ rendering,
132
+ index,
133
+ });
134
+ }
135
+ _renderEmbeddedComponent(rendering, index) {
136
+ if (!rendering.componentImplementation) {
137
+ const componentName = rendering.componentDefinition.componentName;
138
138
  console.error(`Placeholder ${this.name} contains unknown component ${componentName}.`, `Ensure component is mapped, like:
139
139
  JssModule.withComponents([
140
140
  { name: '${componentName}', type: ${componentName}Component }
141
- ])`);
142
- rendering.componentImplementation = this.missingComponentComponent;
143
- }
144
- const componentFactory = rendering.componentFactory || this.componentFactoryResolver.resolveComponentFactory(rendering.componentImplementation);
145
- // apply the parent style attribute _ngcontent
146
- // work-around for https://github.com/angular/angular/issues/12215
147
- const createdComponentRef = this.view.createComponent(componentFactory, index);
148
- if (this.parentStyleAttribute) {
149
- this.renderer.setAttribute(createdComponentRef.location.nativeElement, this.parentStyleAttribute, '');
150
- }
151
- const componentInstance = createdComponentRef.instance;
152
- componentInstance.rendering = rendering.componentDefinition;
153
- if (this._inputs) {
154
- this._setComponentInputs(componentInstance, this._inputs);
155
- }
156
- if (this.outputs) {
157
- this._subscribeComponentOutputs(componentInstance, this.outputs);
158
- }
159
- this._componentInstances.push(componentInstance);
160
- }
161
- };
162
- PlaceholderComponent.ctorParameters = () => [
163
- { type: ComponentFactoryResolver },
164
- { type: KeyValueDiffers },
165
- { type: JssComponentFactoryService },
166
- { type: ChangeDetectorRef },
167
- { type: ElementRef },
168
- { type: Renderer2 },
169
- { type: Type, decorators: [{ type: Inject, args: [PLACEHOLDER_MISSING_COMPONENT_COMPONENT,] }] }
170
- ];
171
- tslib_1.__decorate([
172
- Input()
173
- ], PlaceholderComponent.prototype, "name", void 0);
174
- tslib_1.__decorate([
175
- Input()
176
- ], PlaceholderComponent.prototype, "rendering", void 0);
177
- tslib_1.__decorate([
178
- Input()
179
- ], PlaceholderComponent.prototype, "renderings", void 0);
180
- tslib_1.__decorate([
181
- Input()
182
- ], PlaceholderComponent.prototype, "outputs", void 0);
183
- tslib_1.__decorate([
184
- Output()
185
- ], PlaceholderComponent.prototype, "loaded", void 0);
186
- tslib_1.__decorate([
187
- ViewChild('view', { read: ViewContainerRef, static: true })
188
- ], PlaceholderComponent.prototype, "view", void 0);
189
- tslib_1.__decorate([
190
- ContentChild(RenderEachDirective, { static: true })
191
- ], PlaceholderComponent.prototype, "renderEachTemplate", void 0);
192
- tslib_1.__decorate([
193
- ContentChild(RenderEmptyDirective, { static: true })
194
- ], PlaceholderComponent.prototype, "renderEmptyTemplate", void 0);
195
- tslib_1.__decorate([
196
- ContentChild(PlaceholderLoadingDirective, { static: true })
197
- ], PlaceholderComponent.prototype, "placeholderLoading", void 0);
198
- tslib_1.__decorate([
199
- Input()
200
- ], PlaceholderComponent.prototype, "inputs", null);
201
- PlaceholderComponent = tslib_1.__decorate([
202
- Component({
203
- selector: 'sc-placeholder,[sc-placeholder]',
141
+ ])`);
142
+ rendering.componentImplementation = this.missingComponentComponent;
143
+ }
144
+ const componentFactory = rendering.componentFactory || this.componentFactoryResolver.resolveComponentFactory(rendering.componentImplementation);
145
+ // apply the parent style attribute _ngcontent
146
+ // work-around for https://github.com/angular/angular/issues/12215
147
+ const createdComponentRef = this.view.createComponent(componentFactory, index);
148
+ if (this.parentStyleAttribute) {
149
+ this.renderer.setAttribute(createdComponentRef.location.nativeElement, this.parentStyleAttribute, '');
150
+ }
151
+ const componentInstance = createdComponentRef.instance;
152
+ componentInstance.rendering = rendering.componentDefinition;
153
+ if (this._inputs) {
154
+ this._setComponentInputs(componentInstance, this._inputs);
155
+ }
156
+ if (this.outputs) {
157
+ this._subscribeComponentOutputs(componentInstance, this.outputs);
158
+ }
159
+ this._componentInstances.push(componentInstance);
160
+ }
161
+ };
162
+ PlaceholderComponent.ctorParameters = () => [
163
+ { type: ComponentFactoryResolver },
164
+ { type: KeyValueDiffers },
165
+ { type: JssComponentFactoryService },
166
+ { type: ChangeDetectorRef },
167
+ { type: ElementRef },
168
+ { type: Renderer2 },
169
+ { type: Type, decorators: [{ type: Inject, args: [PLACEHOLDER_MISSING_COMPONENT_COMPONENT,] }] }
170
+ ];
171
+ tslib_1.__decorate([
172
+ Input()
173
+ ], PlaceholderComponent.prototype, "name", void 0);
174
+ tslib_1.__decorate([
175
+ Input()
176
+ ], PlaceholderComponent.prototype, "rendering", void 0);
177
+ tslib_1.__decorate([
178
+ Input()
179
+ ], PlaceholderComponent.prototype, "renderings", void 0);
180
+ tslib_1.__decorate([
181
+ Input()
182
+ ], PlaceholderComponent.prototype, "outputs", void 0);
183
+ tslib_1.__decorate([
184
+ Output()
185
+ ], PlaceholderComponent.prototype, "loaded", void 0);
186
+ tslib_1.__decorate([
187
+ ViewChild('view', { read: ViewContainerRef, static: true })
188
+ ], PlaceholderComponent.prototype, "view", void 0);
189
+ tslib_1.__decorate([
190
+ ContentChild(RenderEachDirective, { static: true })
191
+ ], PlaceholderComponent.prototype, "renderEachTemplate", void 0);
192
+ tslib_1.__decorate([
193
+ ContentChild(RenderEmptyDirective, { static: true })
194
+ ], PlaceholderComponent.prototype, "renderEmptyTemplate", void 0);
195
+ tslib_1.__decorate([
196
+ ContentChild(PlaceholderLoadingDirective, { static: true })
197
+ ], PlaceholderComponent.prototype, "placeholderLoading", void 0);
198
+ tslib_1.__decorate([
199
+ Input()
200
+ ], PlaceholderComponent.prototype, "inputs", null);
201
+ PlaceholderComponent = tslib_1.__decorate([
202
+ Component({
203
+ selector: 'sc-placeholder,[sc-placeholder]',
204
204
  template: `
205
205
  <ng-template *ngIf="isLoading" [ngTemplateOutlet]="placeholderLoading?.templateRef"></ng-template>
206
206
  <ng-template #view></ng-template>
207
- `
208
- }),
209
- tslib_1.__param(6, Inject(PLACEHOLDER_MISSING_COMPONENT_COMPONENT))
210
- ], PlaceholderComponent);
211
- export { PlaceholderComponent };
207
+ `
208
+ }),
209
+ tslib_1.__param(6, Inject(PLACEHOLDER_MISSING_COMPONENT_COMPONENT))
210
+ ], PlaceholderComponent);
211
+ export { PlaceholderComponent };
212
212
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Vob2xkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNpdGVjb3JlLWpzcy9zaXRlY29yZS1qc3MtYW5ndWxhci8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvcGxhY2Vob2xkZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCx3QkFBd0IsRUFDeEIsWUFBWSxFQUNaLE9BQU8sRUFDUCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsY0FBYyxFQUNkLGVBQWUsRUFDZixTQUFTLEVBQ1QsU0FBUyxFQUNULE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxFQUNULGFBQWEsRUFDYixJQUFJLEVBQ0osU0FBUyxFQUNULGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RSxPQUFPLEVBQ0wsdUNBQXVDLEVBQ3hDLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU3QyxTQUFTLGNBQWMsQ0FBQyxTQUE2QixFQUFFLElBQVk7SUFDakUsSUFBSSxTQUFTLElBQUksU0FBUyxDQUFDLFlBQVksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FB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QUMsQ0FBQztTQUNsRTtRQUNELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNuRCxDQUFDO0NBQ0YsQ0FBQTs7WUFqS3FDLHdCQUF3QjtZQUN6QyxlQUFlO1lBQ04sMEJBQTBCO1lBQ3pCLGlCQUFpQjtZQUN4QixVQUFVO1lBQ1osU0FBUztZQUN5RCxJQUFJLHVCQUF2RixNQUFNLFNBQUMsdUNBQXVDOztBQTVCeEM7SUFBUixLQUFLLEVBQUU7a0RBQWU7QUFDZDtJQUFSLEtBQUssRUFBRTt1REFBK0I7QUFDOUI7SUFBUixLQUFLLEVBQUU7d0RBQStEO0FBQzlEO0lBQVIsS0FBSyxFQUFFO3FEQUFvRDtBQUc1RDtJQURDLE1BQU0sRUFBRTtvREFDdUM7QUFFYTtJQUE1RCxTQUFTLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztrREFBZ0M7QUFDdkM7SUFBcEQsWUFBWSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDO2dFQUF5QztBQUN2QztJQUFyRCxZQUFZLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUM7aUVBQTJDO0FBQ25DO0lBQTVELFlBQVksQ0FBQywyQkFBMkIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztnRUFBa0Q7QUFHOUc7SUFEQyxLQUFLLEVBQUU7a0RBTVA7QUEzQlUsb0JBQW9CO0lBUGhDLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSxpQ0FBaUM7UUFDM0MsUUFBUSxFQUFFOzs7R0FHVDtLQUNGLENBQUM7SUFxQ0csbUJBQUEsTUFBTSxDQUFDLHVDQUF1QyxDQUFDLENBQUE7R0FwQ3ZDLG9CQUFvQixDQStMaEM7U0EvTFksb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gIENvbnRlbnRDaGlsZCxcclxuICBEb0NoZWNrLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEluamVjdCxcclxuICBJbnB1dCxcclxuICBLZXlWYWx1ZURpZmZlcixcclxuICBLZXlWYWx1ZURpZmZlcnMsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFJlbmRlcmVyMixcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFR5cGUsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdDb250YWluZXJSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudFJlbmRlcmluZywgSHRtbEVsZW1lbnRSZW5kZXJpbmcgfSBmcm9tICdAc2l0ZWNvcmUtanNzL3NpdGVjb3JlLWpzcyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVdoaWxlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRGYWN0b3J5UmVzdWx0LCBKc3NDb21wb25lbnRGYWN0b3J5U2VydmljZSB9IGZyb20gJy4uL2pzcy1jb21wb25lbnQtZmFjdG9yeS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUGxhY2Vob2xkZXJMb2FkaW5nRGlyZWN0aXZlIH0gZnJvbSAnLi9wbGFjZWhvbGRlci1sb2FkaW5nLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7XHJcbiAgUExBQ0VIT0xERVJfTUlTU0lOR19DT01QT05FTlRfQ09NUE9ORU5UXHJcbn0gZnJvbSAnLi9wbGFjZWhvbGRlci50b2tlbic7XHJcbmltcG9ydCB7IFJlbmRlckVhY2hEaXJlY3RpdmUgfSBmcm9tICcuL3JlbmRlci1lYWNoLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFJlbmRlckVtcHR5RGlyZWN0aXZlIH0gZnJvbSAnLi9yZW5kZXItZW1wdHkuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgaXNSYXdSZW5kZXJpbmcgfSBmcm9tICcuL3JlbmRlcmluZyc7XHJcblxyXG5mdW5jdGlvbiBnZXRQbGFjZWhvbGRlcihyZW5kZXJpbmc6IENvbXBvbmVudFJlbmRlcmluZywgbmFtZTogc3RyaW5nKSB7XHJcbiAgaWYgKHJlbmRlcmluZyAmJiByZW5kZXJpbmcucGxhY2Vob2xkZXJzICYmIE9iamVjdC5rZXlzKHJlbmRlcmluZy5wbGFjZWhvbGRlcnMpLmxlbmd0aCA+IDApIHtcclxuICAgIHJldHVybiByZW5kZXJpbmcucGxhY2Vob2xkZXJzW25hbWVdO1xyXG4gIH1cclxuICByZXR1cm4gbnVsbDtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzYy1wbGFjZWhvbGRlcixbc2MtcGxhY2Vob2xkZXJdJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwiaXNMb2FkaW5nXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwicGxhY2Vob2xkZXJMb2FkaW5nPy50ZW1wbGF0ZVJlZlwiPjwvbmctdGVtcGxhdGU+XHJcbiAgICA8bmctdGVtcGxhdGUgI3ZpZXc+PC9uZy10ZW1wbGF0ZT5cclxuICBgLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGxhY2Vob2xkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgRG9DaGVjaywgT25EZXN0cm95IHtcclxuICBwcml2YXRlIF9pbnB1dHM6IHsgW2tleTogc3RyaW5nXTogYW55IH07XHJcbiAgcHJpdmF0ZSBfZGlmZmVyOiBLZXlWYWx1ZURpZmZlcjxzdHJpbmcsIGFueT47XHJcbiAgcHJpdmF0ZSBfY29tcG9uZW50SW5zdGFuY2VzOiBhbnlbXSA9IFtdO1xyXG4gIHByaXZhdGUgZGVzdHJveWVkID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBwYXJlbnRTdHlsZUF0dHJpYnV0ZTogc3RyaW5nID0gJyc7XHJcbiAgcHVibGljIGlzTG9hZGluZyA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpIG5hbWU/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcmVuZGVyaW5nOiBDb21wb25lbnRSZW5kZXJpbmc7XHJcbiAgQElucHV0KCkgcmVuZGVyaW5ncz86IEFycmF5PENvbXBvbmVudFJlbmRlcmluZyB8IEh0bWxFbGVtZW50UmVuZGVyaW5nPjtcclxuICBASW5wdXQoKSBvdXRwdXRzOiB7IFtrOiBzdHJpbmddOiAoZXZlbnRUeXBlOiBhbnkpID0+IHZvaWQgfTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgbG9hZGVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCB1bmRlZmluZWQ+KCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3ZpZXcnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZSB9KSBwcml2YXRlIHZpZXc6IFZpZXdDb250YWluZXJSZWY7XHJcbiAgQENvbnRlbnRDaGlsZChSZW5kZXJFYWNoRGlyZWN0aXZlLCB7IHN0YXRpYzogdHJ1ZSB9KSByZW5kZXJFYWNoVGVtcGxhdGU6IFJlbmRlckVhY2hEaXJlY3RpdmU7XHJcbiAgQENvbnRlbnRDaGlsZChSZW5kZXJFbXB0eURpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUgfSkgcmVuZGVyRW1wdHlUZW1wbGF0ZTogUmVuZGVyRW1wdHlEaXJlY3RpdmU7XHJcbiAgQENvbnRlbnRDaGlsZChQbGFjZWhvbGRlckxvYWRpbmdEaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pIHBsYWNlaG9sZGVyTG9hZGluZz86IFBsYWNlaG9sZGVyTG9hZGluZ0RpcmVjdGl2ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgaW5wdXRzKHZhbHVlOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KSB7XHJcbiAgICB0aGlzLl9pbnB1dHMgPSB2YWx1ZTtcclxuICAgIGlmICghdGhpcy5fZGlmZmVyICYmIHZhbHVlKSB7XHJcbiAgICAgIHRoaXMuX2RpZmZlciA9IHRoaXMuZGlmZmVycy5maW5kKHZhbHVlKS5jcmVhdGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIHByaXZhdGUgZGlmZmVyczogS2V5VmFsdWVEaWZmZXJzLFxyXG4gICAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5OiBKc3NDb21wb25lbnRGYWN0b3J5U2VydmljZSxcclxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgQEluamVjdChQTEFDRUhPTERFUl9NSVNTSU5HX0NPTVBPTkVOVF9DT01QT05FTlQpIHByaXZhdGUgbWlzc2luZ0NvbXBvbmVudENvbXBvbmVudDogVHlwZTxhbnk+XHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICAvLyBqdXN0IHRvIGVuc3VyZSB0aGUgZWxlbWVudCBleGlzdHNcclxuICAgIGNvbnN0IGVsZW0gPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcclxuXHJcbiAgICBpZiAoZWxlbSkge1xyXG4gICAgICBjb25zdCBhdHRyaWJ1dGVzOiBOYW1lZE5vZGVNYXAgPSBlbGVtLmF0dHJpYnV0ZXM7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXR0cmlidXRlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGNvbnN0IGF0dHI6IEF0dHIgfCBudWxsID0gYXR0cmlidXRlcy5pdGVtKGkpO1xyXG4gICAgICAgIGlmIChhdHRyICYmIGF0dHIubmFtZS5pbmRleE9mKCdfbmdjb250ZW50JykgIT09IC0xKSB7XHJcbiAgICAgICAgICAgIHRoaXMucGFyZW50U3R5bGVBdHRyaWJ1dGUgPSBhdHRyLm5hbWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuZGVzdHJveWVkID0gdHJ1ZTtcclxuICAgIHRoaXMuX2NvbXBvbmVudEluc3RhbmNlcyA9IFtdO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgaWYgKGNoYW5nZXNbJ3JlbmRlcmluZyddIHx8IGNoYW5nZXNbJ3JlbmRlcmluZ3MnXSkge1xyXG4gICAgICB0aGlzLl9yZW5kZXIoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nRG9DaGVjaygpIHtcclxuICAgIGlmICghdGhpcy5fZGlmZmVyIHx8ICF0aGlzLl9pbnB1dHMgfHwgdGhpcy5fY29tcG9uZW50SW5zdGFuY2VzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgY2hhbmdlcyA9IHRoaXMuX2RpZmZlci5kaWZmKHRoaXMuX2lucHV0cyk7XHJcbiAgICBpZiAoIWNoYW5nZXMpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgdXBkYXRlczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xyXG4gICAgY2hhbmdlcy5mb3JFYWNoUmVtb3ZlZEl0ZW0oKGNoYW5nZSkgPT4gdXBkYXRlc1tjaGFuZ2Uua2V5XSA9IG51bGwpO1xyXG4gICAgY2hhbmdlcy5mb3JFYWNoQWRkZWRJdGVtKChjaGFuZ2UpID0+IHVwZGF0ZXNbY2hhbmdlLmtleV0gPSBjaGFuZ2UuY3VycmVudFZhbHVlKTtcclxuICAgIGNoYW5nZXMuZm9yRWFjaENoYW5nZWRJdGVtKChjaGFuZ2UpID0+IHVwZGF0ZXNbY2hhbmdlLmtleV0gPSBjaGFuZ2UuY3VycmVudFZhbHVlKTtcclxuICAgIHRoaXMuX2NvbXBvbmVudEluc3RhbmNlcy5mb3JFYWNoKChjb21wb25lbnRJbnN0YW5jZSkgPT4gdGhpcy5fc2V0Q29tcG9uZW50SW5wdXRzKGNvbXBvbmVudEluc3RhbmNlLCB1cGRhdGVzKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zZXRDb21wb25lbnRJbnB1dHMoY29tcG9uZW50SW5zdGFuY2U6IGFueSwgaW5wdXRzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KSB7XHJcbiAgICBPYmplY3QuZW50cmllcyhpbnB1dHMpLmZvckVhY2goKFtpbnB1dCwgaW5wdXRWYWx1ZV0pID0+IGNvbXBvbmVudEluc3RhbmNlW2lucHV0XSA9IGlucHV0VmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc3Vic2NyaWJlQ29tcG9uZW50T3V0cHV0cyhjb21wb25lbnRJbnN0YW5jZTogYW55LCBvdXRwdXRzOiB7IFtrOiBzdHJpbmddOiAoZXZlbnRUeXBlOiBhbnkpID0+IHZvaWQgfSkge1xyXG4gICAgT2JqZWN0LmtleXMob3V0cHV0cylcclxuICAgICAgLmZpbHRlcigob3V0cHV0KSA9PiBjb21wb25lbnRJbnN0YW5jZVtvdXRwdXRdICYmIGNvbXBvbmVudEluc3RhbmNlW291dHB1dF0gaW5zdGFuY2VvZiBPYnNlcnZhYmxlKVxyXG4gICAgICAuZm9yRWFjaCgob3V0cHV0KSA9PiAoY29tcG9uZW50SW5zdGFuY2Vbb3V0cHV0XSBhcyBPYnNlcnZhYmxlPGFueT4pXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICB0YWtlV2hpbGUoKCkgPT4gIXRoaXMuZGVzdHJveWVkKVxyXG4gICAgICAgIClcclxuICAgICAgICAuc3Vic2NyaWJlKG91dHB1dHNbb3V0cHV0XSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcmVuZGVyKCkge1xyXG4gICAgdGhpcy5fY29tcG9uZW50SW5zdGFuY2VzID0gW107XHJcbiAgICB0aGlzLnZpZXcuY2xlYXIoKTtcclxuXHJcbiAgICBpZiAoIXRoaXMucmVuZGVyaW5nICYmICF0aGlzLnJlbmRlcmluZ3MpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGhpcy5uYW1lICYmICF0aGlzLnJlbmRlcmluZ3MpIHtcclxuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm1heC1saW5lLWxlbmd0aFxyXG4gICAgICBjb25zb2xlLndhcm4oYFBsYWNlaG9sZGVyIG5hbWUgd2FzIG5vdCBzcGVjaWZpZWQsIGFuZCBleHBsaWNpdCByZW5kZXJpbmdzIGFycmF5IHdhcyBub3QgcGFzc2VkLiBQbGFjZWhvbGRlciByZXF1aXJlcyBlaXRoZXIgbmFtZSBhbmQgcmVuZGVyaW5nLCBvciByZW5kZXJpbmdzLmApO1xyXG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcGxhY2Vob2xkZXIgPSB0aGlzLnJlbmRlcmluZ3MgfHwgZ2V0UGxhY2Vob2xkZXIodGhpcy5yZW5kZXJpbmcsIHRoaXMubmFtZSB8fCAnJyk7XHJcblxyXG4gICAgaWYgKCFwbGFjZWhvbGRlcikge1xyXG4gICAgICBjb25zb2xlLndhcm4oYFBsYWNlaG9sZGVyICcke3RoaXMubmFtZX0nIHdhcyBub3QgZm91bmQgaW4gdGhlIGN1cnJlbnQgcmVuZGVyaW5nIGRhdGFgLCBKU09OLnN0cmluZ2lmeSh0aGlzLnJlbmRlcmluZywgbnVsbCwgMikpO1xyXG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gaWYgdGhlIHBsYWNlaG9sZGVyIGlzIGVtcHR5IChjb250YWlucyBvbmx5IHJhdyByZW5kZXJpbmdzKSwgdGhlbiB3ZSBtYXkgbmVlZCB0byB1c2UgdGhlIGVtcHR5IHRlbXBsYXRlIGlmIGl0J3MgZGVmaW5lZFxyXG4gICAgY29uc3QgcGxhY2Vob2xkZXJJc0VtcHR5ID0gcGxhY2Vob2xkZXIuZXZlcnkoKHJlbmRlcmluZzogQ29tcG9uZW50UmVuZGVyaW5nIHwgSHRtbEVsZW1lbnRSZW5kZXJpbmcpID0+IGlzUmF3UmVuZGVyaW5nKHJlbmRlcmluZykpO1xyXG5cclxuICAgIGlmICh0aGlzLnJlbmRlckVtcHR5VGVtcGxhdGUgJiYgcGxhY2Vob2xkZXJJc0VtcHR5KSB7XHJcbiAgICAgIHRoaXMudmlldy5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5yZW5kZXJFbXB0eVRlbXBsYXRlLnRlbXBsYXRlUmVmLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHJlbmRlcmluZ3M6IHBsYWNlaG9sZGVyLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jb21wb25lbnRGYWN0b3J5LmdldENvbXBvbmVudHMocGxhY2Vob2xkZXIpXHJcbiAgICAgICAgLnRoZW4oKGNvbXBvbmVudHMpID0+IGNvbXBvbmVudHMuZm9yRWFjaCgocmVuZGVyaW5nLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMucmVuZGVyRWFjaFRlbXBsYXRlICYmICFpc1Jhd1JlbmRlcmluZyhyZW5kZXJpbmcuY29tcG9uZW50RGVmaW5pdGlvbikpIHtcclxuICAgICAgICAgICAgdGhpcy5fcmVuZGVyVGVtcGxhdGVkQ29tcG9uZW50KHJlbmRlcmluZy5jb21wb25lbnREZWZpbml0aW9uLCBpbmRleCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJFbWJlZGRlZENvbXBvbmVudChyZW5kZXJpbmcsIGluZGV4KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfSkpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAgIHRoaXMubG9hZGVkLmVtaXQodGhpcy5uYW1lKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3JlbmRlclRlbXBsYXRlZENvbXBvbmVudChcclxuICAgIHJlbmRlcmluZzogQ29tcG9uZW50UmVuZGVyaW5nIHwgSHRtbEVsZW1lbnRSZW5kZXJpbmcsXHJcbiAgICBpbmRleDogbnVtYmVyXHJcbiAgKSB7XHJcbiAgICAvLyB0aGUgcmVuZGVyLWVhY2ggdGVtcGxhdGUgdGFrZXMgY2FyZSBvZiBhbGwgY29tcG9uZW50IG1hcHBpbmcgZXRjXHJcbiAgICAvLyBnZW5lcmFsbHkgdXNpbmcgPHNjLXJlbmRlci1jb21wb25lbnQ+IHdoaWNoIGlzIGFib3V0IGxpa2UgX3JlbmRlckVtYmVkZGVkQ29tcG9uZW50KClcclxuICAgIC8vIGFzIGEgc2VwYXJhdGUgY29tcG9uZW50XHJcbiAgICB0aGlzLnZpZXcuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMucmVuZGVyRWFjaFRlbXBsYXRlLnRlbXBsYXRlUmVmLFxyXG4gICAgICB7XHJcbiAgICAgICAgcmVuZGVyaW5nLFxyXG4gICAgICAgIGluZGV4LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3JlbmRlckVtYmVkZGVkQ29tcG9uZW50KHJlbmRlcmluZzogQ29tcG9uZW50RmFjdG9yeVJlc3VsdCwgaW5kZXg6IG51bWJlcikge1xyXG4gICAgaWYgKCFyZW5kZXJpbmcuY29tcG9uZW50SW1wbGVtZW50YXRpb24pIHtcclxuICAgICAgY29uc3QgY29tcG9uZW50TmFtZSA9IChyZW5kZXJpbmcuY29tcG9uZW50RGVmaW5pdGlvbiBhcyBDb21wb25lbnRSZW5kZXJpbmcpLmNvbXBvbmVudE5hbWU7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXHJcbiAgICAgICAgYFBsYWNlaG9sZGVyICR7dGhpcy5uYW1lfSBjb250YWlucyB1bmtub3duIGNvbXBvbmVudCAke2NvbXBvbmVudE5hbWV9LmAsXHJcbiAgICAgICAgYEVuc3VyZSBjb21wb25lbnQgaXMgbWFwcGVkLCBsaWtlOlxyXG4gICAgICAgIEpzc01vZHVsZS53aXRoQ29tcG9uZW50cyhbXHJcbiAgICAgICAgICB7IG5hbWU6ICcke2NvbXBvbmVudE5hbWV9JywgdHlwZTogJHtjb21wb25lbnROYW1lfUNvbXBvbmVudCB9XHJcbiAgICAgICAgXSlgXHJcbiAgICAgICk7XHJcblxyXG4gICAgICByZW5kZXJpbmcuY29tcG9uZW50SW1wbGVtZW50YXRpb24gPSB0aGlzLm1pc3NpbmdDb21wb25lbnRDb21wb25lbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgY29tcG9uZW50RmFjdG9yeSA9XHJcbiAgICAgIHJlbmRlcmluZy5jb21wb25lbnRGYWN0b3J5IHx8IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KHJlbmRlcmluZy5jb21wb25lbnRJbXBsZW1lbnRhdGlvbik7XHJcblxyXG4gICAgLy8gYXBwbHkgdGhlIHBhcmVudCBzdHlsZSBhdHRyaWJ1dGUgX25nY29udGVudFxyXG4gICAgLy8gd29yay1hcm91bmQgZm9yIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzEyMjE1XHJcbiAgICBjb25zdCBjcmVhdGVkQ29tcG9uZW50UmVmID0gdGhpcy52aWV3LmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRGYWN0b3J5LCBpbmRleCk7XHJcbiAgICBpZiAodGhpcy5wYXJlbnRTdHlsZUF0dHJpYnV0ZSkge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShjcmVhdGVkQ29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQsIHRoaXMucGFyZW50U3R5bGVBdHRyaWJ1dGUsICcnKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjb21wb25lbnRJbnN0YW5jZSA9IGNyZWF0ZWRDb21wb25lbnRSZWYuaW5zdGFuY2U7XHJcbiAgICBjb21wb25lbnRJbnN0YW5jZS5yZW5kZXJpbmcgPSByZW5kZXJpbmcuY29tcG9uZW50RGVmaW5pdGlvbjtcclxuICAgIGlmICh0aGlzLl9pbnB1dHMpIHtcclxuICAgICAgdGhpcy5fc2V0Q29tcG9uZW50SW5wdXRzKGNvbXBvbmVudEluc3RhbmNlLCB0aGlzLl9pbnB1dHMpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMub3V0cHV0cykge1xyXG4gICAgICB0aGlzLl9zdWJzY3JpYmVDb21wb25lbnRPdXRwdXRzKGNvbXBvbmVudEluc3RhbmNlLCB0aGlzLm91dHB1dHMpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fY29tcG9uZW50SW5zdGFuY2VzLnB1c2goY29tcG9uZW50SW5zdGFuY2UpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,15 +1,15 @@
1
- import { InjectionToken } from '@angular/core';
2
- /** Registers a statically loaded component */
3
- export class ComponentNameAndType {
4
- }
5
- export function instanceOfComponentNameAndType(object) {
6
- return 'type' in object;
7
- }
8
- export function instanceOfComponentNameAndModule(object) {
9
- return 'module' in object;
10
- }
11
- export const PLACEHOLDER_COMPONENTS = new InjectionToken('Sc.placeholder.components');
12
- export const PLACEHOLDER_LAZY_COMPONENTS = new InjectionToken('Sc.placeholder.lazyComponents');
13
- export const PLACEHOLDER_MISSING_COMPONENT_COMPONENT = new InjectionToken('Sc.placeholder.missingComponentComponent');
14
- export const DYNAMIC_COMPONENT = new InjectionToken('Sc.placeholder.dynamicComponent');
1
+ import { InjectionToken } from '@angular/core';
2
+ /** Registers a statically loaded component */
3
+ export class ComponentNameAndType {
4
+ }
5
+ export function instanceOfComponentNameAndType(object) {
6
+ return 'type' in object;
7
+ }
8
+ export function instanceOfComponentNameAndModule(object) {
9
+ return 'module' in object;
10
+ }
11
+ export const PLACEHOLDER_COMPONENTS = new InjectionToken('Sc.placeholder.components');
12
+ export const PLACEHOLDER_LAZY_COMPONENTS = new InjectionToken('Sc.placeholder.lazyComponents');
13
+ export const PLACEHOLDER_MISSING_COMPONENT_COMPONENT = new InjectionToken('Sc.placeholder.missingComponentComponent');
14
+ export const DYNAMIC_COMPONENT = new InjectionToken('Sc.placeholder.dynamicComponent');
15
15
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Vob2xkZXIudG9rZW4uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2l0ZWNvcmUtanNzL3NpdGVjb3JlLWpzcy1hbmd1bGFyLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9wbGFjZWhvbGRlci50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBRXJELDhDQUE4QztBQUM5QyxNQUFNLE9BQU8sb0JBQW9CO0NBR2hDO0FBYUQsTUFBTSxVQUFVLDhCQUE4QixDQUFDLE1BQVc7SUFDeEQsT0FBTyxNQUFNLElBQUksTUFBTSxDQUFDO0FBQzFCLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0NBQWdDLENBQUMsTUFBVztJQUMxRCxPQUFPLFFBQVEsSUFBSSxNQUFNLENBQUM7QUFDNUIsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksY0FBYyxDQUF5QiwyQkFBMkIsQ0FBQyxDQUFDO0FBQzlHLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLElBQUksY0FBYyxDQUF5QiwrQkFBK0IsQ0FBQyxDQUFDO0FBQ3ZILE1BQU0sQ0FBQyxNQUFNLHVDQUF1QyxHQUFHLElBQUksY0FBYyxDQUFZLDBDQUEwQyxDQUFDLENBQUM7QUFDakksTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQWtDLGlDQUFpQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuLyoqIFJlZ2lzdGVycyBhIHN0YXRpY2FsbHkgbG9hZGVkIGNvbXBvbmVudCAqL1xyXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50TmFtZUFuZFR5cGUge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0eXBlOiBUeXBlPGFueT47XHJcbn1cclxuXHJcbi8qKiBSZWdpc3RlcnMgYSBsYXppbHkgbG9hZGVkIGNvbXBvbmVudCBieSBuYW1lIGFuZCBtb2R1bGUgdG8gbGF6eSBsb2FkIHdoZW4gaXQncyBuZWVkZWQgKi9cclxuZXhwb3J0IGludGVyZmFjZSBDb21wb25lbnROYW1lQW5kTW9kdWxlIHtcclxuICAvKiogTmFtZSBvZiB0aGUgY29tcG9uZW50ICovXHJcbiAgcGF0aDogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIER5bmFtaWMgaW1wb3J0IG9mIHRoZSBjb21wb25lbnQsXHJcbiAgICogZS5nLiAoKSA9PiBpbXBvcnQoJy4vcGF0aC90by9sYXp5bG9hZGVkY29tcG9uZW50Lm1vZHVsZScpLnRoZW4obSA9PiBtLkxhenlMb2FkZWRDb21wb25lbnRNb2R1bGVFeHBvcnROYW1lKVxyXG4gICAqL1xyXG4gIGxvYWRDaGlsZHJlbjogKCkgPT4gUHJvbWlzZTxhbnk+O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFuY2VPZkNvbXBvbmVudE5hbWVBbmRUeXBlKG9iamVjdDogYW55KTogb2JqZWN0IGlzIENvbXBvbmVudE5hbWVBbmRUeXBlIHtcclxuICByZXR1cm4gJ3R5cGUnIGluIG9iamVjdDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbmNlT2ZDb21wb25lbnROYW1lQW5kTW9kdWxlKG9iamVjdDogYW55KTogb2JqZWN0IGlzIENvbXBvbmVudE5hbWVBbmRNb2R1bGUge1xyXG4gIHJldHVybiAnbW9kdWxlJyBpbiBvYmplY3Q7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBQTEFDRUhPTERFUl9DT01QT05FTlRTID0gbmV3IEluamVjdGlvblRva2VuPENvbXBvbmVudE5hbWVBbmRUeXBlW10+KCdTYy5wbGFjZWhvbGRlci5jb21wb25lbnRzJyk7XHJcbmV4cG9ydCBjb25zdCBQTEFDRUhPTERFUl9MQVpZX0NPTVBPTkVOVFMgPSBuZXcgSW5qZWN0aW9uVG9rZW48Q29tcG9uZW50TmFtZUFuZFR5cGVbXT4oJ1NjLnBsYWNlaG9sZGVyLmxhenlDb21wb25lbnRzJyk7XHJcbmV4cG9ydCBjb25zdCBQTEFDRUhPTERFUl9NSVNTSU5HX0NPTVBPTkVOVF9DT01QT05FTlQgPSBuZXcgSW5qZWN0aW9uVG9rZW48VHlwZTxhbnk+PignU2MucGxhY2Vob2xkZXIubWlzc2luZ0NvbXBvbmVudENvbXBvbmVudCcpO1xyXG5leHBvcnQgY29uc3QgRFlOQU1JQ19DT01QT05FTlQgPSBuZXcgSW5qZWN0aW9uVG9rZW48VHlwZTxhbnk+IHwge1tzOiBzdHJpbmddOiBhbnl9PiAoJ1NjLnBsYWNlaG9sZGVyLmR5bmFtaWNDb21wb25lbnQnKTtcclxuIl19
@@ -1,38 +1,38 @@
1
- import * as tslib_1 from "tslib";
2
- import { Component, ElementRef, Input, OnInit, Renderer2 } from '@angular/core';
3
- let RawComponent = class RawComponent {
4
- constructor(renderer, elementRef) {
5
- this.renderer = renderer;
6
- this.elementRef = elementRef;
7
- }
8
- ngOnInit() {
9
- const el = this.renderer.createElement(this.rendering.name);
10
- const contents = this.renderer.createText(this.rendering.contents || '');
11
- const attributes = this.rendering.attributes;
12
- for (const attr in attributes) {
13
- if (attributes.hasOwnProperty(attr)) {
14
- const value = attributes[attr];
15
- this.renderer.setAttribute(el, attr, value || '');
16
- }
17
- }
18
- this.renderer.appendChild(el, contents);
19
- const parentNode = this.renderer.parentNode(this.elementRef.nativeElement);
20
- this.renderer.insertBefore(parentNode, el, this.elementRef.nativeElement);
21
- parentNode.removeChild(this.elementRef.nativeElement);
22
- }
23
- };
24
- RawComponent.ctorParameters = () => [
25
- { type: Renderer2 },
26
- { type: ElementRef }
27
- ];
28
- tslib_1.__decorate([
29
- Input()
30
- ], RawComponent.prototype, "rendering", void 0);
31
- RawComponent = tslib_1.__decorate([
32
- Component({
33
- selector: 'sc-raw',
34
- template: ``
35
- })
36
- ], RawComponent);
37
- export { RawComponent };
1
+ import * as tslib_1 from "tslib";
2
+ import { Component, ElementRef, Input, OnInit, Renderer2 } from '@angular/core';
3
+ let RawComponent = class RawComponent {
4
+ constructor(renderer, elementRef) {
5
+ this.renderer = renderer;
6
+ this.elementRef = elementRef;
7
+ }
8
+ ngOnInit() {
9
+ const el = this.renderer.createElement(this.rendering.name);
10
+ const contents = this.renderer.createText(this.rendering.contents || '');
11
+ const attributes = this.rendering.attributes;
12
+ for (const attr in attributes) {
13
+ if (attributes.hasOwnProperty(attr)) {
14
+ const value = attributes[attr];
15
+ this.renderer.setAttribute(el, attr, value || '');
16
+ }
17
+ }
18
+ this.renderer.appendChild(el, contents);
19
+ const parentNode = this.renderer.parentNode(this.elementRef.nativeElement);
20
+ this.renderer.insertBefore(parentNode, el, this.elementRef.nativeElement);
21
+ parentNode.removeChild(this.elementRef.nativeElement);
22
+ }
23
+ };
24
+ RawComponent.ctorParameters = () => [
25
+ { type: Renderer2 },
26
+ { type: ElementRef }
27
+ ];
28
+ tslib_1.__decorate([
29
+ Input()
30
+ ], RawComponent.prototype, "rendering", void 0);
31
+ RawComponent = tslib_1.__decorate([
32
+ Component({
33
+ selector: 'sc-raw',
34
+ template: ``
35
+ })
36
+ ], RawComponent);
37
+ export { RawComponent };
38
38
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzaXRlY29yZS1qc3Mvc2l0ZWNvcmUtanNzLWFuZ3VsYXIvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3Jhdy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBT2hGLElBQWEsWUFBWSxHQUF6QixNQUFhLFlBQVk7SUFHdkIsWUFDVSxRQUFtQixFQUNuQixVQUFzQjtRQUR0QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQVk7SUFDNUIsQ0FBQztJQUVMLFFBQVE7UUFDTixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDO1FBQzdDLEtBQUssTUFBTSxJQUFJLElBQUksVUFBVSxFQUFFO1lBQzdCLElBQUssVUFBa0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQzVDLE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7YUFDbkQ7U0FDRjtRQUVELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN4QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMxRSxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDeEQsQ0FBQztDQUNGLENBQUE7O1lBcEJxQixTQUFTO1lBQ1AsVUFBVTs7QUFKdkI7SUFBUixLQUFLLEVBQUU7K0NBQWlDO0FBRDlCLFlBQVk7SUFKeEIsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLFFBQVE7UUFDbEIsUUFBUSxFQUFFLEVBQUU7S0FDYixDQUFDO0dBQ1csWUFBWSxDQXdCeEI7U0F4QlksWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0bWxFbGVtZW50UmVuZGVyaW5nIH0gZnJvbSAnQHNpdGVjb3JlLWpzcy9zaXRlY29yZS1qc3MnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzYy1yYXcnLFxyXG4gIHRlbXBsYXRlOiBgYCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFJhd0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgcmVuZGVyaW5nOiBIdG1sRWxlbWVudFJlbmRlcmluZztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWZcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGNvbnN0IGVsID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KHRoaXMucmVuZGVyaW5nLm5hbWUpO1xyXG4gICAgY29uc3QgY29udGVudHMgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZVRleHQodGhpcy5yZW5kZXJpbmcuY29udGVudHMgfHwgJycpO1xyXG4gICAgY29uc3QgYXR0cmlidXRlcyA9IHRoaXMucmVuZGVyaW5nLmF0dHJpYnV0ZXM7XHJcbiAgICBmb3IgKGNvbnN0IGF0dHIgaW4gYXR0cmlidXRlcykge1xyXG4gICAgICBpZiAoKGF0dHJpYnV0ZXMgYXMgYW55KS5oYXNPd25Qcm9wZXJ0eShhdHRyKSkge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gYXR0cmlidXRlc1thdHRyXTtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShlbCwgYXR0ciwgdmFsdWUgfHwgJycpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChlbCwgY29udGVudHMpO1xyXG4gICAgY29uc3QgcGFyZW50Tm9kZSA9IHRoaXMucmVuZGVyZXIucGFyZW50Tm9kZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLmluc2VydEJlZm9yZShwYXJlbnROb2RlLCBlbCwgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgcGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==