@lenne.tech/ng-base 0.2.2 → 0.3.3

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 (32) hide show
  1. package/bundles/lenne.tech-ng-base-src-lib-base.umd.js +308 -159
  2. package/bundles/lenne.tech-ng-base-src-lib-base.umd.js.map +1 -1
  3. package/bundles/lenne.tech-ng-base.umd.js +308 -159
  4. package/bundles/lenne.tech-ng-base.umd.js.map +1 -1
  5. package/esm2015/lib/base/directives/match-height.directive.js +45 -29
  6. package/esm2015/lib/base/factories/apollo-options.factory.js +3 -2
  7. package/esm2015/lib/base/public-api.js +2 -1
  8. package/esm2015/lib/base/services/image.service.js +113 -0
  9. package/esm2015/lib/base/services/scroll.service.js +9 -84
  10. package/esm2015/lib/base/services/seo.service.js +70 -14
  11. package/esm2015/src/lib/base/directives/match-height.directive.js +45 -29
  12. package/esm2015/src/lib/base/factories/apollo-options.factory.js +3 -2
  13. package/esm2015/src/lib/base/public-api.js +2 -1
  14. package/esm2015/src/lib/base/services/image.service.js +113 -0
  15. package/esm2015/src/lib/base/services/scroll.service.js +9 -84
  16. package/esm2015/src/lib/base/services/seo.service.js +70 -14
  17. package/fesm2015/lenne.tech-ng-base-src-lib-base.js +231 -127
  18. package/fesm2015/lenne.tech-ng-base-src-lib-base.js.map +1 -1
  19. package/fesm2015/lenne.tech-ng-base.js +231 -127
  20. package/fesm2015/lenne.tech-ng-base.js.map +1 -1
  21. package/lib/base/directives/match-height.directive.d.ts +7 -3
  22. package/lib/base/public-api.d.ts +1 -0
  23. package/lib/base/services/image.service.d.ts +25 -0
  24. package/lib/base/services/scroll.service.d.ts +5 -21
  25. package/lib/base/services/seo.service.d.ts +36 -3
  26. package/package.json +12 -11
  27. package/src/lib/base/directives/match-height.directive.d.ts +7 -3
  28. package/src/lib/base/lenne.tech-ng-base-src-lib-base.metadata.json +1 -1
  29. package/src/lib/base/public-api.d.ts +1 -0
  30. package/src/lib/base/services/image.service.d.ts +25 -0
  31. package/src/lib/base/services/scroll.service.d.ts +5 -21
  32. package/src/lib/base/services/seo.service.d.ts +36 -3
@@ -10,23 +10,79 @@ export class SEOService {
10
10
  this.titleService = titleService;
11
11
  this.metaTagService = metaTagService;
12
12
  }
13
- initPageForSEO(title, description, keywords) {
14
- this.setPageTitle(title);
15
- this.setPageDescription(description);
16
- if (keywords) {
17
- this.setPageKeywords(keywords);
13
+ initPageForSEO(input) {
14
+ this.setGeneralData(input);
15
+ this.setTwitterData(input);
16
+ this.setTwitterData(input);
17
+ this.setFacebookData(input);
18
+ if (input.keywords) {
19
+ this.setPageKeywords(input.keywords);
18
20
  }
19
21
  }
20
- setPageTitle(title) {
21
- this.titleService.setTitle(title);
22
- this.metaTagService.updateTag({ property: 'og:title', content: title });
23
- this.metaTagService.updateTag({ name: 'twitter:title', content: title });
22
+ /**
23
+ * Set general metadata
24
+ *
25
+ * @param data
26
+ * @private
27
+ */
28
+ setGeneralData(data) {
29
+ this.titleService.setTitle(data.title);
30
+ this.metaTagService.updateTag({ name: 'description', content: data.description });
24
31
  }
25
- setPageDescription(description) {
26
- this.metaTagService.updateTag({ name: 'description', content: description });
27
- this.metaTagService.updateTag({ property: 'og:description', content: description });
28
- this.metaTagService.updateTag({ name: 'twitter:description', content: description });
32
+ /**
33
+ * Set metadata for twitter
34
+ *
35
+ * @param data
36
+ * @private
37
+ */
38
+ setTwitterData(data) {
39
+ this.metaTagService.updateTag({ name: 'twitter:title', content: data.title });
40
+ this.metaTagService.updateTag({ name: 'twitter:description', content: data.description });
41
+ this.metaTagService.updateTag({
42
+ property: 'twitter:url',
43
+ content: data.url ? data.url : window.location.href,
44
+ });
45
+ if (data.image) {
46
+ this.metaTagService.updateTag({
47
+ property: 'twitter:image',
48
+ content: data.image,
49
+ });
50
+ this.metaTagService.updateTag({
51
+ property: 'twitter:card',
52
+ content: 'summary_large_image',
53
+ });
54
+ }
55
+ }
56
+ /**
57
+ * Set metadata for facebook
58
+ *
59
+ * @param data
60
+ * @private
61
+ */
62
+ setFacebookData(data) {
63
+ this.metaTagService.updateTag({ property: 'og:title', content: data.title });
64
+ this.metaTagService.updateTag({ property: 'og:description', content: data.description });
65
+ this.metaTagService.updateTag({
66
+ property: 'og:type',
67
+ content: 'website',
68
+ });
69
+ this.metaTagService.updateTag({
70
+ property: 'og:url',
71
+ content: data.url ? data.url : window.location.href,
72
+ });
73
+ if (data.image) {
74
+ this.metaTagService.updateTag({
75
+ property: 'og:image',
76
+ content: data.image,
77
+ });
78
+ }
29
79
  }
80
+ /**
81
+ * Set page keywords
82
+ *
83
+ * @param keywords
84
+ * @private
85
+ */
30
86
  setPageKeywords(keywords) {
31
87
  this.metaTagService.updateTag({ name: 'keywords', content: keywords });
32
88
  }
@@ -41,4 +97,4 @@ SEOService.ctorParameters = () => [
41
97
  { type: Title },
42
98
  { type: Meta }
43
99
  ];
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL3NyYy9saWIvYmFzZS9zZXJ2aWNlcy9zZW8uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7OztBQUV4RDs7R0FFRztBQUlILE1BQU0sT0FBTyxVQUFVO0lBQ3JCLFlBQW9CLFlBQW1CLEVBQVUsY0FBb0I7UUFBakQsaUJBQVksR0FBWixZQUFZLENBQU87UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBTTtJQUFHLENBQUM7SUFFbEUsY0FBYyxDQUFDLEtBQWEsRUFBRSxXQUFtQixFQUFFLFFBQWlCO1FBQ3pFLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXJDLElBQUksUUFBUSxFQUFFO1lBQ1osSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNoQztJQUNILENBQUM7SUFFTyxZQUFZLENBQUMsS0FBYTtRQUNoQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxFQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsRUFBQyxJQUFJLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxXQUFtQjtRQUM1QyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxFQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBQyxDQUFDLENBQUM7UUFDM0UsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsRUFBQyxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBQyxDQUFDLENBQUM7UUFDbEYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsRUFBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBQyxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVPLGVBQWUsQ0FBQyxRQUFnQjtRQUN0QyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQzs7OztZQTdCRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQVBjLEtBQUs7WUFBWCxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWV0YSwgVGl0bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuLyoqXG4gKiBTRU8gc2VydmljZSBmb3Igc2V0dGluZyBIVE1MIG1ldGEgZGF0YVxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU0VPU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdGl0bGVTZXJ2aWNlOiBUaXRsZSwgcHJpdmF0ZSBtZXRhVGFnU2VydmljZTogTWV0YSkge31cblxuICBwdWJsaWMgaW5pdFBhZ2VGb3JTRU8odGl0bGU6IHN0cmluZywgZGVzY3JpcHRpb246IHN0cmluZywga2V5d29yZHM/OiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldFBhZ2VUaXRsZSh0aXRsZSk7XG4gICAgdGhpcy5zZXRQYWdlRGVzY3JpcHRpb24oZGVzY3JpcHRpb24pO1xuXG4gICAgaWYgKGtleXdvcmRzKSB7XG4gICAgICB0aGlzLnNldFBhZ2VLZXl3b3JkcyhrZXl3b3Jkcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRQYWdlVGl0bGUodGl0bGU6IHN0cmluZykge1xuICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldFRpdGxlKHRpdGxlKTtcbiAgICB0aGlzLm1ldGFUYWdTZXJ2aWNlLnVwZGF0ZVRhZyh7cHJvcGVydHk6ICdvZzp0aXRsZScsIGNvbnRlbnQ6IHRpdGxlfSk7XG4gICAgdGhpcy5tZXRhVGFnU2VydmljZS51cGRhdGVUYWcoe25hbWU6ICd0d2l0dGVyOnRpdGxlJywgY29udGVudDogdGl0bGV9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0UGFnZURlc2NyaXB0aW9uKGRlc2NyaXB0aW9uOiBzdHJpbmcpIHtcbiAgICB0aGlzLm1ldGFUYWdTZXJ2aWNlLnVwZGF0ZVRhZyh7bmFtZTogJ2Rlc2NyaXB0aW9uJywgY29udGVudDogZGVzY3JpcHRpb259KTtcbiAgICB0aGlzLm1ldGFUYWdTZXJ2aWNlLnVwZGF0ZVRhZyh7cHJvcGVydHk6ICdvZzpkZXNjcmlwdGlvbicsIGNvbnRlbnQ6IGRlc2NyaXB0aW9ufSk7XG4gICAgdGhpcy5tZXRhVGFnU2VydmljZS51cGRhdGVUYWcoe25hbWU6ICd0d2l0dGVyOmRlc2NyaXB0aW9uJywgY29udGVudDogZGVzY3JpcHRpb259KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0UGFnZUtleXdvcmRzKGtleXdvcmRzOiBzdHJpbmcpIHtcbiAgICB0aGlzLm1ldGFUYWdTZXJ2aWNlLnVwZGF0ZVRhZyh7bmFtZTogJ2tleXdvcmRzJywgY29udGVudDoga2V5d29yZHN9KTtcbiAgfVxufVxuIl19
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL3NyYy9saWIvYmFzZS9zZXJ2aWNlcy9zZW8uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7OztBQVV4RDs7R0FFRztBQUlILE1BQU0sT0FBTyxVQUFVO0lBQ3JCLFlBQW9CLFlBQW1CLEVBQVUsY0FBb0I7UUFBakQsaUJBQVksR0FBWixZQUFZLENBQU87UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBTTtJQUFHLENBQUM7SUFFbEUsY0FBYyxDQUFDLEtBQWM7UUFDbEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU1QixJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDdEM7SUFDSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxjQUFjLENBQUMsSUFBYTtRQUNsQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxjQUFjLENBQUMsSUFBYTtRQUNsQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzlFLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxFQUFFLHFCQUFxQixFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUMxRixJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQztZQUM1QixRQUFRLEVBQUUsYUFBYTtZQUN2QixPQUFPLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJO1NBQ3BELENBQUMsQ0FBQztRQUVILElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO2dCQUM1QixRQUFRLEVBQUUsZUFBZTtnQkFDekIsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLO2FBQ3BCLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO2dCQUM1QixRQUFRLEVBQUUsY0FBYztnQkFDeEIsT0FBTyxFQUFFLHFCQUFxQjthQUMvQixDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLGVBQWUsQ0FBQyxJQUFhO1FBQ25DLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDN0UsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3pGLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO1lBQzVCLFFBQVEsRUFBRSxTQUFTO1lBQ25CLE9BQU8sRUFBRSxTQUFTO1NBQ25CLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO1lBQzVCLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLE9BQU8sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUk7U0FDcEQsQ0FBQyxDQUFDO1FBRUgsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUM7Z0JBQzVCLFFBQVEsRUFBRSxVQUFVO2dCQUNwQixPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUs7YUFDcEIsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxlQUFlLENBQUMsUUFBZ0I7UUFDdEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7Ozs7WUF6RkYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFmYyxLQUFLO1lBQVgsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1ldGEsIFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbmludGVyZmFjZSBTRU9EYXRhIHtcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgaW1hZ2U/OiBzdHJpbmc7XG4gIHVybD86IHN0cmluZztcbiAga2V5d29yZHM/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogU0VPIHNlcnZpY2UgZm9yIHNldHRpbmcgSFRNTCBtZXRhIGRhdGFcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNFT1NlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRpdGxlU2VydmljZTogVGl0bGUsIHByaXZhdGUgbWV0YVRhZ1NlcnZpY2U6IE1ldGEpIHt9XG5cbiAgcHVibGljIGluaXRQYWdlRm9yU0VPKGlucHV0OiBTRU9EYXRhKSB7XG4gICAgdGhpcy5zZXRHZW5lcmFsRGF0YShpbnB1dCk7XG4gICAgdGhpcy5zZXRUd2l0dGVyRGF0YShpbnB1dCk7XG4gICAgdGhpcy5zZXRUd2l0dGVyRGF0YShpbnB1dCk7XG4gICAgdGhpcy5zZXRGYWNlYm9va0RhdGEoaW5wdXQpO1xuXG4gICAgaWYgKGlucHV0LmtleXdvcmRzKSB7XG4gICAgICB0aGlzLnNldFBhZ2VLZXl3b3JkcyhpbnB1dC5rZXl3b3Jkcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCBnZW5lcmFsIG1ldGFkYXRhXG4gICAqXG4gICAqIEBwYXJhbSBkYXRhXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHNldEdlbmVyYWxEYXRhKGRhdGE6IFNFT0RhdGEpIHtcbiAgICB0aGlzLnRpdGxlU2VydmljZS5zZXRUaXRsZShkYXRhLnRpdGxlKTtcbiAgICB0aGlzLm1ldGFUYWdTZXJ2aWNlLnVwZGF0ZVRhZyh7IG5hbWU6ICdkZXNjcmlwdGlvbicsIGNvbnRlbnQ6IGRhdGEuZGVzY3JpcHRpb24gfSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IG1ldGFkYXRhIGZvciB0d2l0dGVyXG4gICAqXG4gICAqIEBwYXJhbSBkYXRhXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHNldFR3aXR0ZXJEYXRhKGRhdGE6IFNFT0RhdGEpIHtcbiAgICB0aGlzLm1ldGFUYWdTZXJ2aWNlLnVwZGF0ZVRhZyh7IG5hbWU6ICd0d2l0dGVyOnRpdGxlJywgY29udGVudDogZGF0YS50aXRsZSB9KTtcbiAgICB0aGlzLm1ldGFUYWdTZXJ2aWNlLnVwZGF0ZVRhZyh7IG5hbWU6ICd0d2l0dGVyOmRlc2NyaXB0aW9uJywgY29udGVudDogZGF0YS5kZXNjcmlwdGlvbiB9KTtcbiAgICB0aGlzLm1ldGFUYWdTZXJ2aWNlLnVwZGF0ZVRhZyh7XG4gICAgICBwcm9wZXJ0eTogJ3R3aXR0ZXI6dXJsJyxcbiAgICAgIGNvbnRlbnQ6IGRhdGEudXJsID8gZGF0YS51cmwgOiB3aW5kb3cubG9jYXRpb24uaHJlZixcbiAgICB9KTtcblxuICAgIGlmIChkYXRhLmltYWdlKSB7XG4gICAgICB0aGlzLm1ldGFUYWdTZXJ2aWNlLnVwZGF0ZVRhZyh7XG4gICAgICAgIHByb3BlcnR5OiAndHdpdHRlcjppbWFnZScsXG4gICAgICAgIGNvbnRlbnQ6IGRhdGEuaW1hZ2UsXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5tZXRhVGFnU2VydmljZS51cGRhdGVUYWcoe1xuICAgICAgICBwcm9wZXJ0eTogJ3R3aXR0ZXI6Y2FyZCcsXG4gICAgICAgIGNvbnRlbnQ6ICdzdW1tYXJ5X2xhcmdlX2ltYWdlJyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgbWV0YWRhdGEgZm9yIGZhY2Vib29rXG4gICAqXG4gICAqIEBwYXJhbSBkYXRhXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHNldEZhY2Vib29rRGF0YShkYXRhOiBTRU9EYXRhKSB7XG4gICAgdGhpcy5tZXRhVGFnU2VydmljZS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOnRpdGxlJywgY29udGVudDogZGF0YS50aXRsZSB9KTtcbiAgICB0aGlzLm1ldGFUYWdTZXJ2aWNlLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6ZGVzY3JpcHRpb24nLCBjb250ZW50OiBkYXRhLmRlc2NyaXB0aW9uIH0pO1xuICAgIHRoaXMubWV0YVRhZ1NlcnZpY2UudXBkYXRlVGFnKHtcbiAgICAgIHByb3BlcnR5OiAnb2c6dHlwZScsXG4gICAgICBjb250ZW50OiAnd2Vic2l0ZScsXG4gICAgfSk7XG4gICAgdGhpcy5tZXRhVGFnU2VydmljZS51cGRhdGVUYWcoe1xuICAgICAgcHJvcGVydHk6ICdvZzp1cmwnLFxuICAgICAgY29udGVudDogZGF0YS51cmwgPyBkYXRhLnVybCA6IHdpbmRvdy5sb2NhdGlvbi5ocmVmLFxuICAgIH0pO1xuXG4gICAgaWYgKGRhdGEuaW1hZ2UpIHtcbiAgICAgIHRoaXMubWV0YVRhZ1NlcnZpY2UudXBkYXRlVGFnKHtcbiAgICAgICAgcHJvcGVydHk6ICdvZzppbWFnZScsXG4gICAgICAgIGNvbnRlbnQ6IGRhdGEuaW1hZ2UsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0IHBhZ2Uga2V5d29yZHNcbiAgICpcbiAgICogQHBhcmFtIGtleXdvcmRzXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHNldFBhZ2VLZXl3b3JkcyhrZXl3b3Jkczogc3RyaW5nKSB7XG4gICAgdGhpcy5tZXRhVGFnU2VydmljZS51cGRhdGVUYWcoeyBuYW1lOiAna2V5d29yZHMnLCBjb250ZW50OiBrZXl3b3JkcyB9KTtcbiAgfVxufVxuIl19
@@ -1,10 +1,15 @@
1
- import { Directive, ElementRef, HostListener, Input } from '@angular/core';
1
+ import { __awaiter } from "tslib";
2
+ import { Directive, ElementRef, HostListener, Input, NgZone } from '@angular/core';
3
+ import { ImageService } from '../services/image.service';
2
4
  /**
3
5
  * Set same height (maximum) to different elements
4
6
  */
5
7
  export class MatchHeightDirective {
6
- constructor(el) {
8
+ constructor(el, imageService, zone) {
7
9
  this.el = el;
10
+ this.imageService = imageService;
11
+ this.zone = zone;
12
+ this.loadLazyImages = true;
8
13
  }
9
14
  onResize() {
10
15
  this.matchHeight(this.el.nativeElement, this.ltMatchHeight);
@@ -13,33 +18,41 @@ export class MatchHeightDirective {
13
18
  this.matchHeight(this.el.nativeElement, this.ltMatchHeight);
14
19
  }
15
20
  matchHeight(parent, target) {
16
- if (!parent) {
17
- return;
18
- }
19
- let classNames;
20
- if (!Array.isArray(target)) {
21
- classNames = [target];
22
- }
23
- else {
24
- classNames = target;
25
- }
26
- classNames.forEach((className) => {
27
- // find all child structureElements with the selected class name
28
- const children = parent.getElementsByClassName(className);
29
- if (!children) {
21
+ // Timeout is set to force Angular to wait for all actions and only continue once the process has run through.
22
+ // Otherwise, an infinite loop will occur.
23
+ setTimeout(() => __awaiter(this, void 0, void 0, function* () {
24
+ if (!parent) {
30
25
  return;
31
26
  }
32
- // reset all children height
33
- Array.from(children).forEach((x) => {
34
- x.style.height = 'initial';
35
- });
36
- // get all the child structureElements heights
37
- const itemHeights = Array.from(children).map((x) => x.getBoundingClientRect().height);
38
- // find out the tallest one
39
- const maxHeight = itemHeights.reduce((prev, curr) => (curr > prev ? curr : prev), 0);
40
- // update the child structureElements height to the tallest one
41
- Array.from(children).forEach((x) => (x.style.height = `${maxHeight}px`));
42
- });
27
+ let classNames;
28
+ if (!Array.isArray(target)) {
29
+ classNames = [target];
30
+ }
31
+ else {
32
+ classNames = target;
33
+ }
34
+ for (const className of classNames) {
35
+ // find all child structureElements with the selected class name
36
+ const children = parent.getElementsByClassName(className);
37
+ if (!children || children.length < 2) {
38
+ continue;
39
+ }
40
+ // Load images of children
41
+ if (this.loadLazyImages) {
42
+ yield this.imageService.preLoadImages({ elements: children });
43
+ }
44
+ // reset all children height
45
+ Array.from(children).forEach((element) => {
46
+ element.style.height = 'initial';
47
+ });
48
+ // get all the child structureElements heights
49
+ const itemHeights = Array.from(children).map((x) => x.getBoundingClientRect().height);
50
+ // find out the tallest one
51
+ const maxHeight = itemHeights.reduce((prev, curr) => (curr > prev ? curr : prev), 0);
52
+ // update the child structureElements height to the tallest one
53
+ Array.from(children).forEach((element) => (element.style.height = `${maxHeight}px`));
54
+ }
55
+ }), 1);
43
56
  }
44
57
  }
45
58
  MatchHeightDirective.decorators = [
@@ -48,10 +61,13 @@ MatchHeightDirective.decorators = [
48
61
  },] }
49
62
  ];
50
63
  MatchHeightDirective.ctorParameters = () => [
51
- { type: ElementRef }
64
+ { type: ElementRef },
65
+ { type: ImageService },
66
+ { type: NgZone }
52
67
  ];
53
68
  MatchHeightDirective.propDecorators = {
54
69
  ltMatchHeight: [{ type: Input }],
70
+ loadLazyImages: [{ type: Input }],
55
71
  onResize: [{ type: HostListener, args: ['window:resize',] }]
56
72
  };
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2gtaGVpZ2h0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2Uvc3JjL2xpYi9iYXNlL2RpcmVjdGl2ZXMvbWF0Y2gtaGVpZ2h0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3Rjs7R0FFRztBQUlILE1BQU0sT0FBTyxvQkFBb0I7SUFLL0IsWUFBb0IsRUFBYztRQUFkLE9BQUUsR0FBRixFQUFFLENBQVk7SUFBRyxDQUFDO0lBR3RDLFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxXQUFXLENBQUMsTUFBbUIsRUFBRSxNQUF5QjtRQUN4RCxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsT0FBTztTQUNSO1FBRUQsSUFBSSxVQUFVLENBQUM7UUFDZixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUMxQixVQUFVLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN2QjthQUFNO1lBQ0wsVUFBVSxHQUFHLE1BQU0sQ0FBQztTQUNyQjtRQUVELFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUMvQixnRUFBZ0U7WUFDaEUsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRTFELElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2IsT0FBTzthQUNSO1lBRUQsNEJBQTRCO1lBQzVCLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBYyxFQUFFLEVBQUU7Z0JBQzlDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztZQUM3QixDQUFDLENBQUMsQ0FBQztZQUVILDhDQUE4QztZQUM5QyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFdEYsMkJBQTJCO1lBQzNCLE1BQU0sU0FBUyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFFckYsK0RBQStEO1lBQy9ELEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEdBQUcsU0FBUyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3hGLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7O1lBckRGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2FBQzVCOzs7WUFQcUMsVUFBVTs7OzRCQVU3QyxLQUFLO3VCQUtMLFlBQVksU0FBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3Q2hlY2tlZCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogU2V0IHNhbWUgaGVpZ2h0IChtYXhpbXVtKSB0byBkaWZmZXJlbnQgZWxlbWVudHNcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2x0TWF0Y2hIZWlnaHRdJyxcbn0pXG5leHBvcnQgY2xhc3MgTWF0Y2hIZWlnaHREaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdDaGVja2VkIHtcbiAgLy8gY2xhc3MgbmFtZSB0byBtYXRjaCBoZWlnaHRcbiAgQElucHV0KClcbiAgbHRNYXRjaEhlaWdodDogc3RyaW5nIHwgc3RyaW5nW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZikge31cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcbiAgb25SZXNpemUoKSB7XG4gICAgdGhpcy5tYXRjaEhlaWdodCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIHRoaXMubHRNYXRjaEhlaWdodCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XG4gICAgdGhpcy5tYXRjaEhlaWdodCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIHRoaXMubHRNYXRjaEhlaWdodCk7XG4gIH1cblxuICBtYXRjaEhlaWdodChwYXJlbnQ6IEhUTUxFbGVtZW50LCB0YXJnZXQ6IHN0cmluZyB8IHN0cmluZ1tdKSB7XG4gICAgaWYgKCFwYXJlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgY2xhc3NOYW1lcztcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodGFyZ2V0KSkge1xuICAgICAgY2xhc3NOYW1lcyA9IFt0YXJnZXRdO1xuICAgIH0gZWxzZSB7XG4gICAgICBjbGFzc05hbWVzID0gdGFyZ2V0O1xuICAgIH1cblxuICAgIGNsYXNzTmFtZXMuZm9yRWFjaCgoY2xhc3NOYW1lKSA9PiB7XG4gICAgICAvLyBmaW5kIGFsbCBjaGlsZCBzdHJ1Y3R1cmVFbGVtZW50cyB3aXRoIHRoZSBzZWxlY3RlZCBjbGFzcyBuYW1lXG4gICAgICBjb25zdCBjaGlsZHJlbiA9IHBhcmVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGNsYXNzTmFtZSk7XG5cbiAgICAgIGlmICghY2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyByZXNldCBhbGwgY2hpbGRyZW4gaGVpZ2h0XG4gICAgICBBcnJheS5mcm9tKGNoaWxkcmVuKS5mb3JFYWNoKCh4OiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgICB4LnN0eWxlLmhlaWdodCA9ICdpbml0aWFsJztcbiAgICAgIH0pO1xuXG4gICAgICAvLyBnZXQgYWxsIHRoZSBjaGlsZCBzdHJ1Y3R1cmVFbGVtZW50cyBoZWlnaHRzXG4gICAgICBjb25zdCBpdGVtSGVpZ2h0cyA9IEFycmF5LmZyb20oY2hpbGRyZW4pLm1hcCgoeCkgPT4geC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQpO1xuXG4gICAgICAvLyBmaW5kIG91dCB0aGUgdGFsbGVzdCBvbmVcbiAgICAgIGNvbnN0IG1heEhlaWdodCA9IGl0ZW1IZWlnaHRzLnJlZHVjZSgocHJldiwgY3VycikgPT4gKGN1cnIgPiBwcmV2ID8gY3VyciA6IHByZXYpLCAwKTtcblxuICAgICAgLy8gdXBkYXRlIHRoZSBjaGlsZCBzdHJ1Y3R1cmVFbGVtZW50cyBoZWlnaHQgdG8gdGhlIHRhbGxlc3Qgb25lXG4gICAgICBBcnJheS5mcm9tKGNoaWxkcmVuKS5mb3JFYWNoKCh4OiBIVE1MRWxlbWVudCkgPT4gKHguc3R5bGUuaGVpZ2h0ID0gYCR7bWF4SGVpZ2h0fXB4YCkpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2gtaGVpZ2h0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2Uvc3JjL2xpYi9iYXNlL2RpcmVjdGl2ZXMvbWF0Y2gtaGVpZ2h0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFvQixTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RDs7R0FFRztBQUlILE1BQU0sT0FBTyxvQkFBb0I7SUFRL0IsWUFBc0IsRUFBYyxFQUFZLFlBQTBCLEVBQVUsSUFBWTtRQUExRSxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQVksaUJBQVksR0FBWixZQUFZLENBQWM7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFRO1FBRmhHLG1CQUFjLEdBQUcsSUFBSSxDQUFDO0lBRTZFLENBQUM7SUFHcEcsUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFtQixFQUFFLE1BQXlCO1FBQ3hELDhHQUE4RztRQUM5RywwQ0FBMEM7UUFDMUMsVUFBVSxDQUFDLEdBQVMsRUFBRTtZQUNwQixJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUNYLE9BQU87YUFDUjtZQUVELElBQUksVUFBVSxDQUFDO1lBQ2YsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQzFCLFVBQVUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3ZCO2lCQUFNO2dCQUNMLFVBQVUsR0FBRyxNQUFNLENBQUM7YUFDckI7WUFFRCxLQUFLLE1BQU0sU0FBUyxJQUFJLFVBQVUsRUFBRTtnQkFDbEMsZ0VBQWdFO2dCQUNoRSxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBRTFELElBQUksQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0JBQ3BDLFNBQVM7aUJBQ1Y7Z0JBRUQsMEJBQTBCO2dCQUMxQixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7b0JBQ3ZCLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztpQkFDL0Q7Z0JBRUQsNEJBQTRCO2dCQUM1QixLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQW9CLEVBQUUsRUFBRTtvQkFDcEQsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO2dCQUNuQyxDQUFDLENBQUMsQ0FBQztnQkFFSCw4Q0FBOEM7Z0JBQzlDLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFFdEYsMkJBQTJCO2dCQUMzQixNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUVyRiwrREFBK0Q7Z0JBQy9ELEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBb0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLFNBQVMsSUFBSSxDQUFDLENBQUMsQ0FBQzthQUNuRztRQUNILENBQUMsQ0FBQSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQzs7O1lBakVGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2FBQzVCOzs7WUFScUMsVUFBVTtZQUN2QyxZQUFZO1lBRGtELE1BQU07Ozs0QkFXMUUsS0FBSzs2QkFHTCxLQUFLO3VCQUtMLFlBQVksU0FBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3Q2hlY2tlZCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEltYWdlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2ltYWdlLnNlcnZpY2UnO1xuXG4vKipcbiAqIFNldCBzYW1lIGhlaWdodCAobWF4aW11bSkgdG8gZGlmZmVyZW50IGVsZW1lbnRzXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tsdE1hdGNoSGVpZ2h0XScsXG59KVxuZXhwb3J0IGNsYXNzIE1hdGNoSGVpZ2h0RGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3Q2hlY2tlZCB7XG4gIC8vIGNsYXNzIG5hbWUgdG8gbWF0Y2ggaGVpZ2h0XG4gIEBJbnB1dCgpXG4gIGx0TWF0Y2hIZWlnaHQ6IHN0cmluZyB8IHN0cmluZ1tdO1xuXG4gIEBJbnB1dCgpXG4gIGxvYWRMYXp5SW1hZ2VzID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZWw6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCBpbWFnZVNlcnZpY2U6IEltYWdlU2VydmljZSwgcHJpdmF0ZSB6b25lOiBOZ1pvbmUpIHt9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXG4gIG9uUmVzaXplKCkge1xuICAgIHRoaXMubWF0Y2hIZWlnaHQodGhpcy5lbC5uYXRpdmVFbGVtZW50LCB0aGlzLmx0TWF0Y2hIZWlnaHQpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdDaGVja2VkKCkge1xuICAgIHRoaXMubWF0Y2hIZWlnaHQodGhpcy5lbC5uYXRpdmVFbGVtZW50LCB0aGlzLmx0TWF0Y2hIZWlnaHQpO1xuICB9XG5cbiAgbWF0Y2hIZWlnaHQocGFyZW50OiBIVE1MRWxlbWVudCwgdGFyZ2V0OiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuICAgIC8vIFRpbWVvdXQgaXMgc2V0IHRvIGZvcmNlIEFuZ3VsYXIgdG8gd2FpdCBmb3IgYWxsIGFjdGlvbnMgYW5kIG9ubHkgY29udGludWUgb25jZSB0aGUgcHJvY2VzcyBoYXMgcnVuIHRocm91Z2guXG4gICAgLy8gT3RoZXJ3aXNlLCBhbiBpbmZpbml0ZSBsb29wIHdpbGwgb2NjdXIuXG4gICAgc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICBpZiAoIXBhcmVudCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGxldCBjbGFzc05hbWVzO1xuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHRhcmdldCkpIHtcbiAgICAgICAgY2xhc3NOYW1lcyA9IFt0YXJnZXRdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xhc3NOYW1lcyA9IHRhcmdldDtcbiAgICAgIH1cblxuICAgICAgZm9yIChjb25zdCBjbGFzc05hbWUgb2YgY2xhc3NOYW1lcykge1xuICAgICAgICAvLyBmaW5kIGFsbCBjaGlsZCBzdHJ1Y3R1cmVFbGVtZW50cyB3aXRoIHRoZSBzZWxlY3RlZCBjbGFzcyBuYW1lXG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gcGFyZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoY2xhc3NOYW1lKTtcblxuICAgICAgICBpZiAoIWNoaWxkcmVuIHx8IGNoaWxkcmVuLmxlbmd0aCA8IDIpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIExvYWQgaW1hZ2VzIG9mIGNoaWxkcmVuXG4gICAgICAgIGlmICh0aGlzLmxvYWRMYXp5SW1hZ2VzKSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5pbWFnZVNlcnZpY2UucHJlTG9hZEltYWdlcyh7IGVsZW1lbnRzOiBjaGlsZHJlbiB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHJlc2V0IGFsbCBjaGlsZHJlbiBoZWlnaHRcbiAgICAgICAgQXJyYXkuZnJvbShjaGlsZHJlbikuZm9yRWFjaCgoZWxlbWVudDogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgICAgICBlbGVtZW50LnN0eWxlLmhlaWdodCA9ICdpbml0aWFsJztcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gZ2V0IGFsbCB0aGUgY2hpbGQgc3RydWN0dXJlRWxlbWVudHMgaGVpZ2h0c1xuICAgICAgICBjb25zdCBpdGVtSGVpZ2h0cyA9IEFycmF5LmZyb20oY2hpbGRyZW4pLm1hcCgoeCkgPT4geC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQpO1xuXG4gICAgICAgIC8vIGZpbmQgb3V0IHRoZSB0YWxsZXN0IG9uZVxuICAgICAgICBjb25zdCBtYXhIZWlnaHQgPSBpdGVtSGVpZ2h0cy5yZWR1Y2UoKHByZXYsIGN1cnIpID0+IChjdXJyID4gcHJldiA/IGN1cnIgOiBwcmV2KSwgMCk7XG5cbiAgICAgICAgLy8gdXBkYXRlIHRoZSBjaGlsZCBzdHJ1Y3R1cmVFbGVtZW50cyBoZWlnaHQgdG8gdGhlIHRhbGxlc3Qgb25lXG4gICAgICAgIEFycmF5LmZyb20oY2hpbGRyZW4pLmZvckVhY2goKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSA9PiAoZWxlbWVudC5zdHlsZS5oZWlnaHQgPSBgJHttYXhIZWlnaHR9cHhgKSk7XG4gICAgICB9XG4gICAgfSwgMSk7XG4gIH1cbn1cbiJdfQ==
@@ -7,8 +7,9 @@ import { getMainDefinition } from '@apollo/client/utilities';
7
7
  */
8
8
  export function apolloOptionsFactory(baseModuleConfig, httpLink, authService) {
9
9
  const links = [];
10
+ const defaultUrl = 'api.' + window.location.href + '/graphql';
10
11
  const http = httpLink.create({
11
- uri: baseModuleConfig.apiUrl,
12
+ uri: baseModuleConfig.apiUrl ? baseModuleConfig.apiUrl : 'https://' + defaultUrl,
12
13
  });
13
14
  const authMiddleware = new ApolloLink((operation, forward) => {
14
15
  const headers = {};
@@ -67,4 +68,4 @@ export function apolloOptionsFactory(baseModuleConfig, httpLink, authService) {
67
68
  },
68
69
  };
69
70
  }
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBvbGxvLW9wdGlvbnMuZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2Uvc3JjL2xpYi9iYXNlL2ZhY3Rvcmllcy9hcG9sbG8tb3B0aW9ucy5mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFN0Q7O0dBRUc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsZ0JBQWtDLEVBQUUsUUFBa0IsRUFBRSxXQUF3QjtJQUNuSCxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7SUFFakIsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUMzQixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsTUFBTTtLQUM3QixDQUFDLENBQUM7SUFFSCxNQUFNLGNBQWMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUMzRCxNQUFNLE9BQU8sR0FBUSxFQUFFLENBQUM7UUFDeEIsSUFBSSxZQUFZLEVBQUU7WUFDaEIsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUM7WUFDeEMsSUFBSSxLQUFLLEVBQUU7Z0JBQ1QsT0FBTyxDQUFDLGFBQWEsR0FBRyxTQUFTLEdBQUcsS0FBSyxDQUFDO2FBQzNDO1lBQ0QsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQzNDO1FBQ0QsT0FBTyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLGdCQUFnQixDQUFDLEtBQUssRUFBRTtRQUMxQixJQUFJLFFBQVEsQ0FBQztRQUViLElBQUksWUFBWSxFQUFFO1lBQ2hCLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDO1lBQ3hDLFFBQVEsR0FBRyxJQUFJLGFBQWEsQ0FBQztnQkFDM0IsR0FBRyxFQUFFLGdCQUFnQixDQUFDLEtBQUs7Z0JBQzNCLE9BQU8sRUFBRTtvQkFDUCxTQUFTLEVBQUUsSUFBSTtvQkFDZixnQkFBZ0IsRUFBRTt3QkFDaEIsU0FBUyxFQUFFLEtBQUs7cUJBQ2pCO2lCQUNGO2FBQ0YsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLFFBQVEsR0FBRyxJQUFJLGFBQWEsQ0FBQztnQkFDM0IsR0FBRyxFQUFFLGdCQUFnQixDQUFDLEtBQUs7Z0JBQzNCLE9BQU8sRUFBRTtvQkFDUCxTQUFTLEVBQUUsSUFBSTtpQkFDaEI7YUFDRixDQUFDLENBQUM7U0FDSjtRQUVELG1FQUFtRTtRQUNuRSxvREFBb0Q7UUFDcEQsS0FBSyxDQUFDLElBQUksQ0FDUixLQUFLO1FBQ0gsZ0NBQWdDO1FBQ2hDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ1osYUFBYTtZQUNiLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckQsT0FBTyxJQUFJLEtBQUsscUJBQXFCLElBQUksU0FBUyxLQUFLLGNBQWMsQ0FBQztRQUN4RSxDQUFDLEVBQ0QsUUFBUSxFQUNSLE1BQU0sQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQzdCLENBQ0YsQ0FBQztLQUNIO1NBQU07UUFDTCxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pCLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7S0FDNUI7SUFFRCxPQUFPO1FBQ0wsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzVCLEtBQUssRUFBRSxJQUFJLGFBQWEsRUFBRTtRQUMxQixjQUFjLEVBQUU7WUFDZCxLQUFLLEVBQUU7Z0JBQ0wsV0FBVyxFQUFFLGNBQWM7YUFDNUI7U0FDRjtLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cExpbmsgfSBmcm9tICdhcG9sbG8tYW5ndWxhci9odHRwJztcbmltcG9ydCB7IEJhc2VNb2R1bGVDb25maWcgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2Jhc2UtbW9kdWxlLWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBvbGxvTGluaywgY29uY2F0LCBzcGxpdCB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnO1xuaW1wb3J0IHsgSW5NZW1vcnlDYWNoZSB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NhY2hlJztcbmltcG9ydCB7IFdlYlNvY2tldExpbmsgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9saW5rL3dzJztcbmltcG9ydCB7IGdldE1haW5EZWZpbml0aW9uIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvdXRpbGl0aWVzJztcblxuLyoqXG4gKiBGYWN0b3J5IGZvciBhcG9sbG8tYW5ndWxhciBvcHRpb25zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcG9sbG9PcHRpb25zRmFjdG9yeShiYXNlTW9kdWxlQ29uZmlnOiBCYXNlTW9kdWxlQ29uZmlnLCBodHRwTGluazogSHR0cExpbmssIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSkge1xuICBjb25zdCBsaW5rcyA9IFtdO1xuXG4gIGNvbnN0IGh0dHAgPSBodHRwTGluay5jcmVhdGUoe1xuICAgIHVyaTogYmFzZU1vZHVsZUNvbmZpZy5hcGlVcmwsXG4gIH0pO1xuXG4gIGNvbnN0IGF1dGhNaWRkbGV3YXJlID0gbmV3IEFwb2xsb0xpbmsoKG9wZXJhdGlvbiwgZm9yd2FyZCkgPT4ge1xuICAgIGNvbnN0IGhlYWRlcnM6IGFueSA9IHt9O1xuICAgIGlmIChsb2NhbFN0b3JhZ2UpIHtcbiAgICAgIGNvbnN0IHRva2VuID0gYXV0aFNlcnZpY2UudG9rZW4gfHwgbnVsbDtcbiAgICAgIGlmICh0b2tlbikge1xuICAgICAgICBoZWFkZXJzLkF1dGhvcml6YXRpb24gPSAnQmVhcmVyICcgKyB0b2tlbjtcbiAgICAgIH1cbiAgICAgIG9wZXJhdGlvbi5zZXRDb250ZXh0KCgpID0+ICh7IGhlYWRlcnMgfSkpO1xuICAgIH1cbiAgICByZXR1cm4gZm9yd2FyZChvcGVyYXRpb24pO1xuICB9KTtcblxuICBpZiAoYmFzZU1vZHVsZUNvbmZpZy53c1VybCkge1xuICAgIGxldCB3c0NsaWVudDtcblxuICAgIGlmIChsb2NhbFN0b3JhZ2UpIHtcbiAgICAgIGNvbnN0IHRva2VuID0gYXV0aFNlcnZpY2UudG9rZW4gfHwgbnVsbDtcbiAgICAgIHdzQ2xpZW50ID0gbmV3IFdlYlNvY2tldExpbmsoe1xuICAgICAgICB1cmk6IGJhc2VNb2R1bGVDb25maWcud3NVcmwsXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICByZWNvbm5lY3Q6IHRydWUsXG4gICAgICAgICAgY29ubmVjdGlvblBhcmFtczoge1xuICAgICAgICAgICAgYXV0aFRva2VuOiB0b2tlbixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHdzQ2xpZW50ID0gbmV3IFdlYlNvY2tldExpbmsoe1xuICAgICAgICB1cmk6IGJhc2VNb2R1bGVDb25maWcud3NVcmwsXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICByZWNvbm5lY3Q6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyB1c2luZyB0aGUgYWJpbGl0eSB0byBzcGxpdCBsaW5rcywgeW91IGNhbiBzZW5kIGRhdGEgdG8gZWFjaCBsaW5rXG4gICAgLy8gZGVwZW5kaW5nIG9uIHdoYXQga2luZCBvZiBvcGVyYXRpb24gaXMgYmVpbmcgc2VudFxuICAgIGxpbmtzLnB1c2goXG4gICAgICBzcGxpdChcbiAgICAgICAgLy8gc3BsaXQgYmFzZWQgb24gb3BlcmF0aW9uIHR5cGVcbiAgICAgICAgKHsgcXVlcnkgfSkgPT4ge1xuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICBjb25zdCB7IGtpbmQsIG9wZXJhdGlvbiB9ID0gZ2V0TWFpbkRlZmluaXRpb24ocXVlcnkpO1xuICAgICAgICAgIHJldHVybiBraW5kID09PSAnT3BlcmF0aW9uRGVmaW5pdGlvbicgJiYgb3BlcmF0aW9uID09PSAnc3Vic2NyaXB0aW9uJztcbiAgICAgICAgfSxcbiAgICAgICAgd3NDbGllbnQsXG4gICAgICAgIGNvbmNhdChhdXRoTWlkZGxld2FyZSwgaHR0cClcbiAgICAgIClcbiAgICApO1xuICB9IGVsc2Uge1xuICAgIGxpbmtzLnB1c2goaHR0cCk7XG4gICAgbGlua3MucHVzaChhdXRoTWlkZGxld2FyZSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGxpbms6IEFwb2xsb0xpbmsuZnJvbShsaW5rcyksXG4gICAgY2FjaGU6IG5ldyBJbk1lbW9yeUNhY2hlKCksXG4gICAgZGVmYXVsdE9wdGlvbnM6IHtcbiAgICAgIHF1ZXJ5OiB7XG4gICAgICAgIGZldGNoUG9saWN5OiAnbmV0d29yay1vbmx5JyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcbn1cbiJdfQ==
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBvbGxvLW9wdGlvbnMuZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2Uvc3JjL2xpYi9iYXNlL2ZhY3Rvcmllcy9hcG9sbG8tb3B0aW9ucy5mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFN0Q7O0dBRUc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsZ0JBQWtDLEVBQUUsUUFBa0IsRUFBRSxXQUF3QjtJQUNuSCxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDakIsTUFBTSxVQUFVLEdBQUcsTUFBTSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQztJQUU5RCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBQzNCLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLFVBQVU7S0FDakYsQ0FBQyxDQUFDO0lBRUgsTUFBTSxjQUFjLEdBQUcsSUFBSSxVQUFVLENBQUMsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLEVBQUU7UUFDM0QsTUFBTSxPQUFPLEdBQVEsRUFBRSxDQUFDO1FBQ3hCLElBQUksWUFBWSxFQUFFO1lBQ2hCLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDO1lBQ3hDLElBQUksS0FBSyxFQUFFO2dCQUNULE9BQU8sQ0FBQyxhQUFhLEdBQUcsU0FBUyxHQUFHLEtBQUssQ0FBQzthQUMzQztZQUNELFNBQVMsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztTQUMzQztRQUNELE9BQU8sT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVCLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUU7UUFDMUIsSUFBSSxRQUFRLENBQUM7UUFFYixJQUFJLFlBQVksRUFBRTtZQUNoQixNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQztZQUN4QyxRQUFRLEdBQUcsSUFBSSxhQUFhLENBQUM7Z0JBQzNCLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLO2dCQUMzQixPQUFPLEVBQUU7b0JBQ1AsU0FBUyxFQUFFLElBQUk7b0JBQ2YsZ0JBQWdCLEVBQUU7d0JBQ2hCLFNBQVMsRUFBRSxLQUFLO3FCQUNqQjtpQkFDRjthQUNGLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxRQUFRLEdBQUcsSUFBSSxhQUFhLENBQUM7Z0JBQzNCLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLO2dCQUMzQixPQUFPLEVBQUU7b0JBQ1AsU0FBUyxFQUFFLElBQUk7aUJBQ2hCO2FBQ0YsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxtRUFBbUU7UUFDbkUsb0RBQW9EO1FBQ3BELEtBQUssQ0FBQyxJQUFJLENBQ1IsS0FBSztRQUNILGdDQUFnQztRQUNoQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNaLGFBQWE7WUFDYixNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JELE9BQU8sSUFBSSxLQUFLLHFCQUFxQixJQUFJLFNBQVMsS0FBSyxjQUFjLENBQUM7UUFDeEUsQ0FBQyxFQUNELFFBQVEsRUFDUixNQUFNLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUM3QixDQUNGLENBQUM7S0FDSDtTQUFNO1FBQ0wsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQixLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0tBQzVCO0lBRUQsT0FBTztRQUNMLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUM1QixLQUFLLEVBQUUsSUFBSSxhQUFhLEVBQUU7UUFDMUIsY0FBYyxFQUFFO1lBQ2QsS0FBSyxFQUFFO2dCQUNMLFdBQVcsRUFBRSxjQUFjO2FBQzVCO1NBQ0Y7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBMaW5rIH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXIvaHR0cCc7XG5pbXBvcnQgeyBCYXNlTW9kdWxlQ29uZmlnIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9iYXNlLW1vZHVsZS1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEFwb2xsb0xpbmssIGNvbmNhdCwgc3BsaXQgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9jb3JlJztcbmltcG9ydCB7IEluTWVtb3J5Q2FjaGUgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9jYWNoZSc7XG5pbXBvcnQgeyBXZWJTb2NrZXRMaW5rIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvbGluay93cyc7XG5pbXBvcnQgeyBnZXRNYWluRGVmaW5pdGlvbiB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L3V0aWxpdGllcyc7XG5cbi8qKlxuICogRmFjdG9yeSBmb3IgYXBvbGxvLWFuZ3VsYXIgb3B0aW9uc1xuICovXG5leHBvcnQgZnVuY3Rpb24gYXBvbGxvT3B0aW9uc0ZhY3RvcnkoYmFzZU1vZHVsZUNvbmZpZzogQmFzZU1vZHVsZUNvbmZpZywgaHR0cExpbms6IEh0dHBMaW5rLCBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UpIHtcbiAgY29uc3QgbGlua3MgPSBbXTtcbiAgY29uc3QgZGVmYXVsdFVybCA9ICdhcGkuJyArIHdpbmRvdy5sb2NhdGlvbi5ocmVmICsgJy9ncmFwaHFsJztcblxuICBjb25zdCBodHRwID0gaHR0cExpbmsuY3JlYXRlKHtcbiAgICB1cmk6IGJhc2VNb2R1bGVDb25maWcuYXBpVXJsID8gYmFzZU1vZHVsZUNvbmZpZy5hcGlVcmwgOiAnaHR0cHM6Ly8nICsgZGVmYXVsdFVybCxcbiAgfSk7XG5cbiAgY29uc3QgYXV0aE1pZGRsZXdhcmUgPSBuZXcgQXBvbGxvTGluaygob3BlcmF0aW9uLCBmb3J3YXJkKSA9PiB7XG4gICAgY29uc3QgaGVhZGVyczogYW55ID0ge307XG4gICAgaWYgKGxvY2FsU3RvcmFnZSkge1xuICAgICAgY29uc3QgdG9rZW4gPSBhdXRoU2VydmljZS50b2tlbiB8fCBudWxsO1xuICAgICAgaWYgKHRva2VuKSB7XG4gICAgICAgIGhlYWRlcnMuQXV0aG9yaXphdGlvbiA9ICdCZWFyZXIgJyArIHRva2VuO1xuICAgICAgfVxuICAgICAgb3BlcmF0aW9uLnNldENvbnRleHQoKCkgPT4gKHsgaGVhZGVycyB9KSk7XG4gICAgfVxuICAgIHJldHVybiBmb3J3YXJkKG9wZXJhdGlvbik7XG4gIH0pO1xuXG4gIGlmIChiYXNlTW9kdWxlQ29uZmlnLndzVXJsKSB7XG4gICAgbGV0IHdzQ2xpZW50O1xuXG4gICAgaWYgKGxvY2FsU3RvcmFnZSkge1xuICAgICAgY29uc3QgdG9rZW4gPSBhdXRoU2VydmljZS50b2tlbiB8fCBudWxsO1xuICAgICAgd3NDbGllbnQgPSBuZXcgV2ViU29ja2V0TGluayh7XG4gICAgICAgIHVyaTogYmFzZU1vZHVsZUNvbmZpZy53c1VybCxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIHJlY29ubmVjdDogdHJ1ZSxcbiAgICAgICAgICBjb25uZWN0aW9uUGFyYW1zOiB7XG4gICAgICAgICAgICBhdXRoVG9rZW46IHRva2VuLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgd3NDbGllbnQgPSBuZXcgV2ViU29ja2V0TGluayh7XG4gICAgICAgIHVyaTogYmFzZU1vZHVsZUNvbmZpZy53c1VybCxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIHJlY29ubmVjdDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIHVzaW5nIHRoZSBhYmlsaXR5IHRvIHNwbGl0IGxpbmtzLCB5b3UgY2FuIHNlbmQgZGF0YSB0byBlYWNoIGxpbmtcbiAgICAvLyBkZXBlbmRpbmcgb24gd2hhdCBraW5kIG9mIG9wZXJhdGlvbiBpcyBiZWluZyBzZW50XG4gICAgbGlua3MucHVzaChcbiAgICAgIHNwbGl0KFxuICAgICAgICAvLyBzcGxpdCBiYXNlZCBvbiBvcGVyYXRpb24gdHlwZVxuICAgICAgICAoeyBxdWVyeSB9KSA9PiB7XG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIGNvbnN0IHsga2luZCwgb3BlcmF0aW9uIH0gPSBnZXRNYWluRGVmaW5pdGlvbihxdWVyeSk7XG4gICAgICAgICAgcmV0dXJuIGtpbmQgPT09ICdPcGVyYXRpb25EZWZpbml0aW9uJyAmJiBvcGVyYXRpb24gPT09ICdzdWJzY3JpcHRpb24nO1xuICAgICAgICB9LFxuICAgICAgICB3c0NsaWVudCxcbiAgICAgICAgY29uY2F0KGF1dGhNaWRkbGV3YXJlLCBodHRwKVxuICAgICAgKVxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgbGlua3MucHVzaChodHRwKTtcbiAgICBsaW5rcy5wdXNoKGF1dGhNaWRkbGV3YXJlKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbGluazogQXBvbGxvTGluay5mcm9tKGxpbmtzKSxcbiAgICBjYWNoZTogbmV3IEluTWVtb3J5Q2FjaGUoKSxcbiAgICBkZWZhdWx0T3B0aW9uczoge1xuICAgICAgcXVlcnk6IHtcbiAgICAgICAgZmV0Y2hQb2xpY3k6ICduZXR3b3JrLW9ubHknLFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xufVxuIl19
@@ -48,6 +48,7 @@ export * from './services/fullscreen.service';
48
48
  export * from './services/graphql.service';
49
49
  export * from './services/graphql-meta.service';
50
50
  export * from './services/graphql-plus.service';
51
+ export * from './services/image.service';
51
52
  export * from './services/loader.service';
52
53
  export * from './services/scroll.service';
53
54
  export * from './services/seo.service';
@@ -56,4 +57,4 @@ export * from './services/storage.service';
56
57
  export * from './types/storage.type';
57
58
  // Validators
58
59
  export * from './validators/must-match.validator';
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2Uvc3JjL2xpYi9iYXNlL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxTQUFTO0FBQ1QsY0FBYyxlQUFlLENBQUM7QUFFOUIsVUFBVTtBQUNWLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLDBCQUEwQixDQUFDO0FBRXpDLGFBQWE7QUFDYixjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLGtDQUFrQyxDQUFDO0FBRWpELFlBQVk7QUFDWixjQUFjLG9DQUFvQyxDQUFDO0FBRW5ELFNBQVM7QUFDVCxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx1QkFBdUIsQ0FBQztBQUV0QyxRQUFRO0FBQ1IsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx5QkFBeUIsQ0FBQztBQUV4QyxhQUFhO0FBQ2IsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsa0NBQWtDLENBQUM7QUFFakQsUUFBUTtBQUNSLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx3QkFBd0IsQ0FBQztBQUV2QyxXQUFXO0FBQ1gsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsUUFBUTtBQUNSLGNBQWMsc0JBQXNCLENBQUM7QUFFckMsYUFBYTtBQUNiLGNBQWMsbUNBQW1DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEV4cG9ydHMgZm9yIHB1YmxpYyBBUElcbiAqL1xuXG4vLyBNb2R1bGVcbmV4cG9ydCAqIGZyb20gJy4vYmFzZS5tb2R1bGUnO1xuXG4vLyBDbGFzc2VzXG5leHBvcnQgKiBmcm9tICcuL2NsYXNzZXMvYmFzaWMtdXNlci5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL2NsYXNzZXMvZ3JhcGhxbC1lbnVtLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vY2xhc3Nlcy9ncmFwaHFsLW1ldGEuY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9jbGFzc2VzL2dyYXBocWwtdHlwZS5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL2NsYXNzZXMvaGVscGVyLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vY2xhc3Nlcy9zdGFuZGFyZC5jbGFzcyc7XG5cbi8vIERpcmVjdGl2ZXNcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9jb250ZXh0LW1lbnUuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9sYXp5LWxvYWQuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9tYXRjaC1oZWlnaHQuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9yZXNpemFibGUuZGlyZWN0aXZlJztcblxuLy8gRmFjdG9yaWVzXG5leHBvcnQgKiBmcm9tICcuL2ZhY3Rvcmllcy9hcG9sbG8tb3B0aW9ucy5mYWN0b3J5JztcblxuLy8gR3VhcmRzXG5leHBvcnQgKiBmcm9tICcuL2d1YXJkcy9hdXRoLmd1YXJkJztcbmV4cG9ydCAqIGZyb20gJy4vZ3VhcmRzL2Nhbi1kZWFjdGl2YXRlLmd1YXJkJztcbmV4cG9ydCAqIGZyb20gJy4vZ3VhcmRzL2xvZ291dC5ndWFyZCc7XG5cbi8vIEVudW1zXG5leHBvcnQgKiBmcm9tICcuL2VudW1zL2NvbXBhcmlzb24tb3BlcmF0b3IuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2VudW1zL2dyYXBocWwtcmVxdWVzdC10eXBlLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9lbnVtcy9sb2dpY2FsLW9wZXJhdG9yLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9lbnVtcy9zb3J0LW9yZGVyLmVudW0nO1xuXG4vLyBJbnRlcmZhY2VzXG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvYmFzZS1tb2R1bGUtY29uZmlnLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvY2FuLWNvbXBvbmVudC1kZWFjdGl2YXRlLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvY29tYmluZWQtZmlsdGVyLWlucHV0LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvZmllbGQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9maWVsZC1vYmplY3QuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9maWx0ZXItaW5wdXQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9ncmFwaHFsLW9wdGlvbnMuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9ncmFwaHFsLXBsdXMtb3B0aW9ucy5pbnRlcmZhY2VuJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9ncmFwaHFsLXR5cGUtY29sbGVjdGlvbi5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL3NpbmdsZS1maWx0ZXItaW5wdXQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9zb3J0LWlucHV0LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvZmluZC1hcmdzLmludGVyZmFjZSc7XG5cbi8vIFBpcGVzXG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL2VsbGlwc2VzLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9zYWZlLWh0bWwucGlwZSc7XG5cbi8vIFNlcnZpY2VzXG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2Z1bGxzY3JlZW4uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2dyYXBocWwuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2dyYXBocWwtbWV0YS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvZ3JhcGhxbC1wbHVzLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9sb2FkZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3Njcm9sbC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvc2VvLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9zdG9yYWdlLnNlcnZpY2UnO1xuXG4vLyBUeXBlc1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcy9zdG9yYWdlLnR5cGUnO1xuXG4vLyBWYWxpZGF0b3JzXG5leHBvcnQgKiBmcm9tICcuL3ZhbGlkYXRvcnMvbXVzdC1tYXRjaC52YWxpZGF0b3InO1xuIl19
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2Uvc3JjL2xpYi9iYXNlL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxTQUFTO0FBQ1QsY0FBYyxlQUFlLENBQUM7QUFFOUIsVUFBVTtBQUNWLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLDBCQUEwQixDQUFDO0FBRXpDLGFBQWE7QUFDYixjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLGtDQUFrQyxDQUFDO0FBRWpELFlBQVk7QUFDWixjQUFjLG9DQUFvQyxDQUFDO0FBRW5ELFNBQVM7QUFDVCxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx1QkFBdUIsQ0FBQztBQUV0QyxRQUFRO0FBQ1IsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx5QkFBeUIsQ0FBQztBQUV4QyxhQUFhO0FBQ2IsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsa0NBQWtDLENBQUM7QUFFakQsUUFBUTtBQUNSLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx3QkFBd0IsQ0FBQztBQUV2QyxXQUFXO0FBQ1gsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyw0QkFBNEIsQ0FBQztBQUUzQyxRQUFRO0FBQ1IsY0FBYyxzQkFBc0IsQ0FBQztBQUVyQyxhQUFhO0FBQ2IsY0FBYyxtQ0FBbUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRXhwb3J0cyBmb3IgcHVibGljIEFQSVxuICovXG5cbi8vIE1vZHVsZVxuZXhwb3J0ICogZnJvbSAnLi9iYXNlLm1vZHVsZSc7XG5cbi8vIENsYXNzZXNcbmV4cG9ydCAqIGZyb20gJy4vY2xhc3Nlcy9iYXNpYy11c2VyLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vY2xhc3Nlcy9ncmFwaHFsLWVudW0uY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9jbGFzc2VzL2dyYXBocWwtbWV0YS5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL2NsYXNzZXMvZ3JhcGhxbC10eXBlLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vY2xhc3Nlcy9oZWxwZXIuY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9jbGFzc2VzL3N0YW5kYXJkLmNsYXNzJztcblxuLy8gRGlyZWN0aXZlc1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL2NvbnRleHQtbWVudS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL2xhenktbG9hZC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL21hdGNoLWhlaWdodC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL3Jlc2l6YWJsZS5kaXJlY3RpdmUnO1xuXG4vLyBGYWN0b3JpZXNcbmV4cG9ydCAqIGZyb20gJy4vZmFjdG9yaWVzL2Fwb2xsby1vcHRpb25zLmZhY3RvcnknO1xuXG4vLyBHdWFyZHNcbmV4cG9ydCAqIGZyb20gJy4vZ3VhcmRzL2F1dGguZ3VhcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9ndWFyZHMvY2FuLWRlYWN0aXZhdGUuZ3VhcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9ndWFyZHMvbG9nb3V0Lmd1YXJkJztcblxuLy8gRW51bXNcbmV4cG9ydCAqIGZyb20gJy4vZW51bXMvY29tcGFyaXNvbi1vcGVyYXRvci5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vZW51bXMvZ3JhcGhxbC1yZXF1ZXN0LXR5cGUuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2VudW1zL2xvZ2ljYWwtb3BlcmF0b3IuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2VudW1zL3NvcnQtb3JkZXIuZW51bSc7XG5cbi8vIEludGVyZmFjZXNcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9iYXNlLW1vZHVsZS1jb25maWcuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9jYW4tY29tcG9uZW50LWRlYWN0aXZhdGUuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9jb21iaW5lZC1maWx0ZXItaW5wdXQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9maWVsZC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL2ZpZWxkLW9iamVjdC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL2ZpbHRlci1pbnB1dC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL2dyYXBocWwtb3B0aW9ucy5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL2dyYXBocWwtcGx1cy1vcHRpb25zLmludGVyZmFjZW4nO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL2dyYXBocWwtdHlwZS1jb2xsZWN0aW9uLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvc2luZ2xlLWZpbHRlci1pbnB1dC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL3NvcnQtaW5wdXQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9maW5kLWFyZ3MuaW50ZXJmYWNlJztcblxuLy8gUGlwZXNcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvZWxsaXBzZXMucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL3NhZmUtaHRtbC5waXBlJztcblxuLy8gU2VydmljZXNcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvZnVsbHNjcmVlbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvZ3JhcGhxbC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvZ3JhcGhxbC1tZXRhLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9ncmFwaHFsLXBsdXMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2ltYWdlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9sb2FkZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3Njcm9sbC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvc2VvLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9zdG9yYWdlLnNlcnZpY2UnO1xuXG4vLyBUeXBlc1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcy9zdG9yYWdlLnR5cGUnO1xuXG4vLyBWYWxpZGF0b3JzXG5leHBvcnQgKiBmcm9tICcuL3ZhbGlkYXRvcnMvbXVzdC1tYXRjaC52YWxpZGF0b3InO1xuIl19
@@ -0,0 +1,113 @@
1
+ import { __awaiter } from "tslib";
2
+ import { Injectable } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Image service
6
+ */
7
+ export class ImageService {
8
+ /**
9
+ * Preaload images (for lazy handling)
10
+ *
11
+ * @param options
12
+ * @protected
13
+ */
14
+ preLoadImages(options) {
15
+ // Init configuration
16
+ const config = Object.assign({ doneFunnction: undefined, elements: document, regExp: undefined, timeout: undefined }, options);
17
+ return new Promise((resolve) => {
18
+ var _a;
19
+ // Init variables
20
+ let resolved = false;
21
+ let timeoutId;
22
+ // HTMLCollection to array
23
+ if (config.elements instanceof HTMLCollection) {
24
+ config.elements = Array.from(config.elements);
25
+ }
26
+ // Single element to array
27
+ if (!Array.isArray(config.elements)) {
28
+ config.elements = [config.elements];
29
+ }
30
+ // Init loading
31
+ const promises = [];
32
+ // Get all images
33
+ let images = [];
34
+ config.elements.forEach((element) => {
35
+ images = images.concat(Array.from(element.getElementsByTagName('img')));
36
+ });
37
+ // Prepare images
38
+ for (const image of images) {
39
+ const src = image.getAttribute('src');
40
+ // Check if changes are necessary and possible
41
+ if ((image.complete && image.naturalHeight !== 0) || // already laoded
42
+ image.getAttribute('loading') !== 'lazy' || // loading attribute !== lazy
43
+ !src || // Image has no src
44
+ ((_a = config.regExp) === null || _a === void 0 ? void 0 : _a.test(src)) // Test if src matches regular expression
45
+ ) {
46
+ continue;
47
+ }
48
+ // Replace lazy loading image with immediately loading image
49
+ const newImage = document.createElement('img');
50
+ Array.from(image.attributes).forEach((attr) => {
51
+ if (attr.name !== 'loading' && attr.name !== 'src') {
52
+ newImage.setAttribute(attr.name, attr.value);
53
+ }
54
+ });
55
+ image.replaceWith(newImage);
56
+ // Wait for laoding
57
+ promises.push(this.loadImage(newImage, src));
58
+ }
59
+ if (config.timeout) {
60
+ timeoutId = setTimeout(() => __awaiter(this, void 0, void 0, function* () {
61
+ resolved = true;
62
+ if (config.doneFunnction) {
63
+ yield config.doneFunction();
64
+ }
65
+ resolve(undefined);
66
+ }));
67
+ }
68
+ // Wait until all images loaded
69
+ Promise.all(promises)
70
+ .catch((e) => console.error('Error during image loading', e))
71
+ .finally(() => __awaiter(this, void 0, void 0, function* () {
72
+ // Check if already resolved
73
+ if (resolved) {
74
+ return;
75
+ }
76
+ // Stop timeout
77
+ if (timeoutId) {
78
+ clearTimeout(timeoutId);
79
+ }
80
+ // Return result
81
+ let result;
82
+ if (config.doneFunnction) {
83
+ result = yield config.doneFunction();
84
+ }
85
+ resolve(result);
86
+ }));
87
+ });
88
+ }
89
+ /**
90
+ * Load image for image element
91
+ *
92
+ * @param imageElement
93
+ * @param src
94
+ * @protected
95
+ */
96
+ loadImage(imageElement, src) {
97
+ return __awaiter(this, void 0, void 0, function* () {
98
+ src = src || imageElement.src;
99
+ return new Promise((resolve, reject) => {
100
+ imageElement.onload = () => resolve(imageElement);
101
+ imageElement.onerror = reject;
102
+ imageElement.src = src;
103
+ });
104
+ });
105
+ }
106
+ }
107
+ ImageService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ImageService_Factory() { return new ImageService(); }, token: ImageService, providedIn: "root" });
108
+ ImageService.decorators = [
109
+ { type: Injectable, args: [{
110
+ providedIn: 'root',
111
+ },] }
112
+ ];
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2Uvc3JjL2xpYi9iYXNlL3NlcnZpY2VzL2ltYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTNDOztHQUVHO0FBSUgsTUFBTSxPQUFPLFlBQVk7SUFDdkI7Ozs7O09BS0c7SUFDSSxhQUFhLENBQUMsT0FLcEI7UUFDQyxxQkFBcUI7UUFDckIsTUFBTSxNQUFNLG1CQUNWLGFBQWEsRUFBRSxTQUFTLEVBQ3hCLFFBQVEsRUFBRSxRQUFRLEVBQ2xCLE1BQU0sRUFBRSxTQUFTLEVBQ2pCLE9BQU8sRUFBRSxTQUFTLElBQ2YsT0FBTyxDQUNYLENBQUM7UUFFRixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7O1lBQzdCLGlCQUFpQjtZQUNqQixJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDckIsSUFBSSxTQUFTLENBQUM7WUFFZCwwQkFBMEI7WUFDMUIsSUFBSSxNQUFNLENBQUMsUUFBUSxZQUFZLGNBQWMsRUFBRTtnQkFDN0MsTUFBTSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUMvQztZQUVELDBCQUEwQjtZQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ25DLE1BQU0sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFjLENBQUM7YUFDbEQ7WUFFRCxlQUFlO1lBQ2YsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDO1lBRXBCLGlCQUFpQjtZQUNqQixJQUFJLE1BQU0sR0FBdUIsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ2xDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMxRSxDQUFDLENBQUMsQ0FBQztZQUVILGlCQUFpQjtZQUNqQixLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRTtnQkFDMUIsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFFdEMsOENBQThDO2dCQUM5QyxJQUNFLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsYUFBYSxLQUFLLENBQUMsQ0FBQyxJQUFJLGlCQUFpQjtvQkFDbEUsS0FBSyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsS0FBSyxNQUFNLElBQUksNkJBQTZCO29CQUN6RSxDQUFDLEdBQUcsSUFBSSxtQkFBbUI7cUJBQzNCLE1BQUEsTUFBTSxDQUFDLE1BQU0sMENBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBLENBQUMseUNBQXlDO2tCQUNsRTtvQkFDQSxTQUFTO2lCQUNWO2dCQUVELDREQUE0RDtnQkFDNUQsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDL0MsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7b0JBQzVDLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLLEVBQUU7d0JBQ2xELFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7cUJBQzlDO2dCQUNILENBQUMsQ0FBQyxDQUFDO2dCQUNILEtBQUssQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBRTVCLG1CQUFtQjtnQkFDbkIsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQzlDO1lBRUQsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFO2dCQUNsQixTQUFTLEdBQUcsVUFBVSxDQUFDLEdBQVMsRUFBRTtvQkFDaEMsUUFBUSxHQUFHLElBQUksQ0FBQztvQkFDaEIsSUFBSSxNQUFNLENBQUMsYUFBYSxFQUFFO3dCQUN4QixNQUFNLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztxQkFDN0I7b0JBQ0QsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNyQixDQUFDLENBQUEsQ0FBQyxDQUFDO2FBQ0o7WUFFRCwrQkFBK0I7WUFDL0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7aUJBQ2xCLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsRUFBRSxDQUFDLENBQUMsQ0FBQztpQkFDNUQsT0FBTyxDQUFDLEdBQVMsRUFBRTtnQkFDbEIsNEJBQTRCO2dCQUM1QixJQUFJLFFBQVEsRUFBRTtvQkFDWixPQUFPO2lCQUNSO2dCQUVELGVBQWU7Z0JBQ2YsSUFBSSxTQUFTLEVBQUU7b0JBQ2IsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2lCQUN6QjtnQkFFRCxnQkFBZ0I7Z0JBQ2hCLElBQUksTUFBTSxDQUFDO2dCQUNYLElBQUksTUFBTSxDQUFDLGFBQWEsRUFBRTtvQkFDeEIsTUFBTSxHQUFHLE1BQU0sTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO2lCQUN0QztnQkFDRCxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEIsQ0FBQyxDQUFBLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNVLFNBQVMsQ0FBQyxZQUE4QixFQUFFLEdBQVk7O1lBQ2pFLEdBQUcsR0FBRyxHQUFHLElBQUksWUFBWSxDQUFDLEdBQUcsQ0FBQztZQUM5QixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUNyQyxZQUFZLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDbEQsWUFBWSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7Z0JBQzlCLFlBQVksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1lBQ3pCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBOzs7O1lBNUhGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBJbWFnZSBzZXJ2aWNlXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBJbWFnZVNlcnZpY2Uge1xuICAvKipcbiAgICogUHJlYWxvYWQgaW1hZ2VzIChmb3IgbGF6eSBoYW5kbGluZylcbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHVibGljIHByZUxvYWRJbWFnZXMob3B0aW9ucz86IHtcbiAgICBkb25lRnVuY3Rpb24/OiAoKSA9PiBQcm9taXNlPGFueT4gfCBhbnkgfCB2b2lkO1xuICAgIGVsZW1lbnRzPzogRWxlbWVudCB8IEVsZW1lbnRbXSB8IEhUTUxDb2xsZWN0aW9uT2Y8RWxlbWVudD4gfCBEb2N1bWVudCB8IEhUTUxFbGVtZW50IHwgSFRNTEVsZW1lbnRbXTtcbiAgICByZWdFeHA/OiBSZWdFeHA7XG4gICAgdGltZW91dD86IG51bWJlcjtcbiAgfSk6IFByb21pc2U8YW55PiB7XG4gICAgLy8gSW5pdCBjb25maWd1cmF0aW9uXG4gICAgY29uc3QgY29uZmlnID0ge1xuICAgICAgZG9uZUZ1bm5jdGlvbjogdW5kZWZpbmVkLFxuICAgICAgZWxlbWVudHM6IGRvY3VtZW50LFxuICAgICAgcmVnRXhwOiB1bmRlZmluZWQsXG4gICAgICB0aW1lb3V0OiB1bmRlZmluZWQsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIC8vIEluaXQgdmFyaWFibGVzXG4gICAgICBsZXQgcmVzb2x2ZWQgPSBmYWxzZTtcbiAgICAgIGxldCB0aW1lb3V0SWQ7XG5cbiAgICAgIC8vIEhUTUxDb2xsZWN0aW9uIHRvIGFycmF5XG4gICAgICBpZiAoY29uZmlnLmVsZW1lbnRzIGluc3RhbmNlb2YgSFRNTENvbGxlY3Rpb24pIHtcbiAgICAgICAgY29uZmlnLmVsZW1lbnRzID0gQXJyYXkuZnJvbShjb25maWcuZWxlbWVudHMpO1xuICAgICAgfVxuXG4gICAgICAvLyBTaW5nbGUgZWxlbWVudCB0byBhcnJheVxuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGNvbmZpZy5lbGVtZW50cykpIHtcbiAgICAgICAgY29uZmlnLmVsZW1lbnRzID0gW2NvbmZpZy5lbGVtZW50c10gYXMgRWxlbWVudFtdO1xuICAgICAgfVxuXG4gICAgICAvLyBJbml0IGxvYWRpbmdcbiAgICAgIGNvbnN0IHByb21pc2VzID0gW107XG5cbiAgICAgIC8vIEdldCBhbGwgaW1hZ2VzXG4gICAgICBsZXQgaW1hZ2VzOiBIVE1MSW1hZ2VFbGVtZW50W10gPSBbXTtcbiAgICAgIGNvbmZpZy5lbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICAgIGltYWdlcyA9IGltYWdlcy5jb25jYXQoQXJyYXkuZnJvbShlbGVtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpbWcnKSkpO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIFByZXBhcmUgaW1hZ2VzXG4gICAgICBmb3IgKGNvbnN0IGltYWdlIG9mIGltYWdlcykge1xuICAgICAgICBjb25zdCBzcmMgPSBpbWFnZS5nZXRBdHRyaWJ1dGUoJ3NyYycpO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIGNoYW5nZXMgYXJlIG5lY2Vzc2FyeSBhbmQgcG9zc2libGVcbiAgICAgICAgaWYgKFxuICAgICAgICAgIChpbWFnZS5jb21wbGV0ZSAmJiBpbWFnZS5uYXR1cmFsSGVpZ2h0ICE9PSAwKSB8fCAvLyBhbHJlYWR5IGxhb2RlZFxuICAgICAgICAgIGltYWdlLmdldEF0dHJpYnV0ZSgnbG9hZGluZycpICE9PSAnbGF6eScgfHwgLy8gbG9hZGluZyBhdHRyaWJ1dGUgIT09IGxhenlcbiAgICAgICAgICAhc3JjIHx8IC8vIEltYWdlIGhhcyBubyBzcmNcbiAgICAgICAgICBjb25maWcucmVnRXhwPy50ZXN0KHNyYykgLy8gVGVzdCBpZiBzcmMgbWF0Y2hlcyByZWd1bGFyIGV4cHJlc3Npb25cbiAgICAgICAgKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZXBsYWNlIGxhenkgbG9hZGluZyBpbWFnZSB3aXRoIGltbWVkaWF0ZWx5IGxvYWRpbmcgaW1hZ2VcbiAgICAgICAgY29uc3QgbmV3SW1hZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbWcnKTtcbiAgICAgICAgQXJyYXkuZnJvbShpbWFnZS5hdHRyaWJ1dGVzKS5mb3JFYWNoKChhdHRyKSA9PiB7XG4gICAgICAgICAgaWYgKGF0dHIubmFtZSAhPT0gJ2xvYWRpbmcnICYmIGF0dHIubmFtZSAhPT0gJ3NyYycpIHtcbiAgICAgICAgICAgIG5ld0ltYWdlLnNldEF0dHJpYnV0ZShhdHRyLm5hbWUsIGF0dHIudmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGltYWdlLnJlcGxhY2VXaXRoKG5ld0ltYWdlKTtcblxuICAgICAgICAvLyBXYWl0IGZvciBsYW9kaW5nXG4gICAgICAgIHByb21pc2VzLnB1c2godGhpcy5sb2FkSW1hZ2UobmV3SW1hZ2UsIHNyYykpO1xuICAgICAgfVxuXG4gICAgICBpZiAoY29uZmlnLnRpbWVvdXQpIHtcbiAgICAgICAgdGltZW91dElkID0gc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgcmVzb2x2ZWQgPSB0cnVlO1xuICAgICAgICAgIGlmIChjb25maWcuZG9uZUZ1bm5jdGlvbikge1xuICAgICAgICAgICAgYXdhaXQgY29uZmlnLmRvbmVGdW5jdGlvbigpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXNvbHZlKHVuZGVmaW5lZCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICAvLyBXYWl0IHVudGlsIGFsbCBpbWFnZXMgbG9hZGVkXG4gICAgICBQcm9taXNlLmFsbChwcm9taXNlcylcbiAgICAgICAgLmNhdGNoKChlKSA9PiBjb25zb2xlLmVycm9yKCdFcnJvciBkdXJpbmcgaW1hZ2UgbG9hZGluZycsIGUpKVxuICAgICAgICAuZmluYWxseShhc3luYyAoKSA9PiB7XG4gICAgICAgICAgLy8gQ2hlY2sgaWYgYWxyZWFkeSByZXNvbHZlZFxuICAgICAgICAgIGlmIChyZXNvbHZlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIFN0b3AgdGltZW91dFxuICAgICAgICAgIGlmICh0aW1lb3V0SWQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIFJldHVybiByZXN1bHRcbiAgICAgICAgICBsZXQgcmVzdWx0O1xuICAgICAgICAgIGlmIChjb25maWcuZG9uZUZ1bm5jdGlvbikge1xuICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgY29uZmlnLmRvbmVGdW5jdGlvbigpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgaW1hZ2UgZm9yIGltYWdlIGVsZW1lbnRcbiAgICpcbiAgICogQHBhcmFtIGltYWdlRWxlbWVudFxuICAgKiBAcGFyYW0gc3JjXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHB1YmxpYyBhc3luYyBsb2FkSW1hZ2UoaW1hZ2VFbGVtZW50OiBIVE1MSW1hZ2VFbGVtZW50LCBzcmM/OiBzdHJpbmcpIHtcbiAgICBzcmMgPSBzcmMgfHwgaW1hZ2VFbGVtZW50LnNyYztcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaW1hZ2VFbGVtZW50Lm9ubG9hZCA9ICgpID0+IHJlc29sdmUoaW1hZ2VFbGVtZW50KTtcbiAgICAgIGltYWdlRWxlbWVudC5vbmVycm9yID0gcmVqZWN0O1xuICAgICAgaW1hZ2VFbGVtZW50LnNyYyA9IHNyYztcbiAgICB9KTtcbiAgfVxufVxuIl19