@colijnit/configurator 1.0.21 → 1.0.22

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 (158) hide show
  1. package/app/builder.d.ts +53 -0
  2. package/app/components/answers/answer/answer.component.d.ts +11 -0
  3. package/app/components/answers/answers.component.d.ts +8 -0
  4. package/app/components/answers/answers.module.d.ts +2 -0
  5. package/app/components/selections/selections.component.d.ts +22 -0
  6. package/app/components/selections/selections.module.d.ts +2 -0
  7. package/app/components/shared/loader/loader.component.d.ts +2 -0
  8. package/app/components/shared/shared.module.d.ts +2 -0
  9. package/app/directives/visibility-observer-master.directive.d.ts +9 -0
  10. package/app/directives/visibility-observer.directive.d.ts +13 -0
  11. package/app/services/configurator.service.d.ts +22 -0
  12. package/app/services/image-cache.service.d.ts +10 -0
  13. package/app/services/locator.service.d.ts +4 -0
  14. package/bundles/colijnit-configurator.umd.js +2745 -0
  15. package/bundles/colijnit-configurator.umd.js.map +1 -0
  16. package/bundles/colijnit-configurator.umd.min.js +17 -0
  17. package/bundles/colijnit-configurator.umd.min.js.map +1 -0
  18. package/colijnit-configurator.d.ts +10 -0
  19. package/colijnit-configurator.metadata.json +1 -0
  20. package/esm2015/app/builder.js +477 -0
  21. package/esm2015/app/components/answers/answer/answer.component.js +69 -0
  22. package/esm2015/app/components/answers/answers.component.js +43 -0
  23. package/esm2015/app/components/answers/answers.module.js +29 -0
  24. package/esm2015/app/components/selections/selections.component.js +134 -0
  25. package/esm2015/app/components/selections/selections.module.js +23 -0
  26. package/esm2015/app/components/shared/loader/loader.component.js +24 -0
  27. package/esm2015/app/components/shared/shared.module.js +21 -0
  28. package/esm2015/app/directives/visibility-observer-master.directive.js +51 -0
  29. package/esm2015/app/directives/visibility-observer.directive.js +57 -0
  30. package/esm2015/app/services/configurator.service.js +94 -0
  31. package/esm2015/app/services/image-cache.service.js +66 -0
  32. package/esm2015/app/services/locator.service.js +10 -0
  33. package/esm2015/colijnit-configurator.js +11 -0
  34. package/esm2015/helper/variation-helper.js +216 -0
  35. package/esm2015/model/material.js +11 -0
  36. package/esm2015/model/variation-settings.js +6 -0
  37. package/esm2015/model/variation.js +3 -0
  38. package/esm2015/public_api.js +7 -0
  39. package/esm2015/utils/asset.utils.js +74 -0
  40. package/esm2015/utils/file.utils.js +139 -0
  41. package/esm2015/utils/image.utils.js +52 -0
  42. package/esm2015/utils/object.utils.js +49 -0
  43. package/esm2015/utils/scene-utils.js +94 -0
  44. package/esm2015/utils/threed.utils.js +222 -0
  45. package/esm2015/utils/variation-utils.js +224 -0
  46. package/esm5/app/builder.js +591 -0
  47. package/esm5/app/components/answers/answer/answer.component.js +64 -0
  48. package/esm5/app/components/answers/answers.component.js +27 -0
  49. package/esm5/app/components/answers/answers.module.js +32 -0
  50. package/esm5/app/components/selections/selections.component.js +104 -0
  51. package/esm5/app/components/selections/selections.module.js +26 -0
  52. package/esm5/app/components/shared/loader/loader.component.js +16 -0
  53. package/esm5/app/components/shared/shared.module.js +24 -0
  54. package/esm5/app/directives/visibility-observer-master.directive.js +64 -0
  55. package/esm5/app/directives/visibility-observer.directive.js +59 -0
  56. package/esm5/app/services/configurator.service.js +160 -0
  57. package/esm5/app/services/image-cache.service.js +69 -0
  58. package/esm5/app/services/locator.service.js +13 -0
  59. package/esm5/colijnit-configurator.js +11 -0
  60. package/esm5/helper/variation-helper.js +268 -0
  61. package/esm5/model/material.js +13 -0
  62. package/esm5/model/variation-settings.js +8 -0
  63. package/esm5/model/variation.js +7 -0
  64. package/esm5/public_api.js +7 -0
  65. package/esm5/utils/asset.utils.js +106 -0
  66. package/esm5/utils/file.utils.js +151 -0
  67. package/esm5/utils/image.utils.js +56 -0
  68. package/esm5/utils/object.utils.js +56 -0
  69. package/esm5/utils/scene-utils.js +98 -0
  70. package/esm5/utils/threed.utils.js +279 -0
  71. package/esm5/utils/variation-utils.js +327 -0
  72. package/fesm2015/colijnit-configurator.js +2109 -0
  73. package/fesm2015/colijnit-configurator.js.map +1 -0
  74. package/fesm5/colijnit-configurator.js +2527 -0
  75. package/fesm5/colijnit-configurator.js.map +1 -0
  76. package/helper/variation-helper.d.ts +14 -0
  77. package/model/material.d.ts +17 -0
  78. package/model/variation-settings.d.ts +14 -0
  79. package/model/variation.d.ts +10 -0
  80. package/package.json +12 -45
  81. package/{src/public_api.ts → public_api.d.ts} +6 -6
  82. package/utils/asset.utils.d.ts +13 -0
  83. package/utils/file.utils.d.ts +27 -0
  84. package/utils/image.utils.d.ts +8 -0
  85. package/utils/object.utils.d.ts +7 -0
  86. package/utils/scene-utils.d.ts +7 -0
  87. package/utils/threed.utils.d.ts +16 -0
  88. package/utils/variation-utils.d.ts +12 -0
  89. package/.idea/Configurator.iml +0 -12
  90. package/.idea/codeStyles/Project.xml +0 -21
  91. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  92. package/.idea/inspectionProfiles/Project_Default.xml +0 -6
  93. package/.idea/misc.xml +0 -9
  94. package/.idea/modules.xml +0 -8
  95. package/.idea/vcs.xml +0 -6
  96. package/angular.json +0 -193
  97. package/configurator.iml +0 -11
  98. package/dist/configurator/index.html +0 -14
  99. package/dist/configurator/main-es2015.js +0 -3129
  100. package/dist/configurator/main-es2015.js.map +0 -1
  101. package/dist/configurator/main-es5.js +0 -5482
  102. package/dist/configurator/main-es5.js.map +0 -1
  103. package/dist/configurator/polyfills-es2015.js +0 -4520
  104. package/dist/configurator/polyfills-es2015.js.map +0 -1
  105. package/dist/configurator/polyfills-es5.js +0 -18375
  106. package/dist/configurator/polyfills-es5.js.map +0 -1
  107. package/dist/configurator/runtime-es2015.js +0 -155
  108. package/dist/configurator/runtime-es2015.js.map +0 -1
  109. package/dist/configurator/runtime-es5.js +0 -155
  110. package/dist/configurator/runtime-es5.js.map +0 -1
  111. package/dist/configurator/styles-es2015.js +0 -450
  112. package/dist/configurator/styles-es2015.js.map +0 -1
  113. package/dist/configurator/styles-es5.js +0 -432
  114. package/dist/configurator/styles-es5.js.map +0 -1
  115. package/dist/configurator/vendor-es2015.js +0 -155551
  116. package/dist/configurator/vendor-es2015.js.map +0 -1
  117. package/dist/configurator/vendor-es5.js +0 -183588
  118. package/dist/configurator/vendor-es5.js.map +0 -1
  119. package/ng-package.json +0 -9
  120. package/src/app/app.component.ts +0 -222
  121. package/src/app/app.module.ts +0 -34
  122. package/src/app/builder.ts +0 -480
  123. package/src/app/components/answers/answer/answer.component.ts +0 -61
  124. package/src/app/components/answers/answers.component.ts +0 -41
  125. package/src/app/components/answers/answers.module.ts +0 -26
  126. package/src/app/components/selections/selections.component.ts +0 -131
  127. package/src/app/components/selections/selections.module.ts +0 -20
  128. package/src/app/components/shared/loader/loader.component.scss +0 -33
  129. package/src/app/components/shared/loader/loader.component.ts +0 -20
  130. package/src/app/components/shared/shared.module.ts +0 -16
  131. package/src/app/directives/visibility-observer-master.directive.ts +0 -71
  132. package/src/app/directives/visibility-observer.directive.ts +0 -74
  133. package/src/app/services/configurator.service.ts +0 -86
  134. package/src/app/services/image-cache.service.ts +0 -56
  135. package/src/app/services/locator.service.ts +0 -6
  136. package/src/environments/environment.prod.ts +0 -3
  137. package/src/environments/environment.ts +0 -8
  138. package/src/helper/variation-helper.ts +0 -220
  139. package/src/index.html +0 -14
  140. package/src/main.ts +0 -11
  141. package/src/model/material.ts +0 -22
  142. package/src/model/variation-settings.ts +0 -14
  143. package/src/model/variation.ts +0 -11
  144. package/src/polyfills.ts +0 -73
  145. package/src/style/shared.scss +0 -173
  146. package/src/style/styles.scss +0 -45
  147. package/src/tsconfig.app.json +0 -16
  148. package/src/tsconfig.spec.json +0 -19
  149. package/src/utils/asset.utils.ts +0 -88
  150. package/src/utils/file.utils.ts +0 -156
  151. package/src/utils/file.utils.unit.test.ts +0 -8
  152. package/src/utils/image.utils.ts +0 -54
  153. package/src/utils/object.utils.ts +0 -52
  154. package/src/utils/scene-utils.ts +0 -119
  155. package/src/utils/threed.utils.ts +0 -219
  156. package/src/utils/variation-utils.ts +0 -216
  157. package/tsconfig.json +0 -23
  158. package/tslint.json +0 -132
@@ -0,0 +1,64 @@
1
+ import { __awaiter, __decorate, __generator } from "tslib";
2
+ import { Component, Input } from '@angular/core';
3
+ import { ImageCacheService } from '../../../services/image-cache.service';
4
+ import { animate, state, style, transition, trigger } from '@angular/animations';
5
+ var AnswerComponent = /** @class */ (function () {
6
+ function AnswerComponent(_imageCacheService) {
7
+ this._imageCacheService = _imageCacheService;
8
+ }
9
+ Object.defineProperty(AnswerComponent.prototype, "showing", {
10
+ set: function (value) {
11
+ this.answer.imageData = '';
12
+ if (value && this.answer.answer !== 'Skip / Cancel') {
13
+ this._loadThumbnail(this.answer);
14
+ }
15
+ else {
16
+ this.answer.imageData = null;
17
+ }
18
+ },
19
+ enumerable: true,
20
+ configurable: true
21
+ });
22
+ AnswerComponent.prototype.ngOnInit = function () {
23
+ };
24
+ AnswerComponent.prototype._loadThumbnail = function (answer) {
25
+ return __awaiter(this, void 0, void 0, function () {
26
+ return __generator(this, function (_a) {
27
+ switch (_a.label) {
28
+ case 0: return [4 /*yield*/, this._imageCacheService.getImageForSelectionOrAnswer(answer).then(function (imageSrc) {
29
+ answer.imageData = imageSrc === "" ? null : imageSrc;
30
+ })];
31
+ case 1:
32
+ _a.sent();
33
+ return [2 /*return*/];
34
+ }
35
+ });
36
+ });
37
+ };
38
+ AnswerComponent.ctorParameters = function () { return [
39
+ { type: ImageCacheService }
40
+ ]; };
41
+ __decorate([
42
+ Input()
43
+ ], AnswerComponent.prototype, "answer", void 0);
44
+ __decorate([
45
+ Input()
46
+ ], AnswerComponent.prototype, "showing", null);
47
+ AnswerComponent = __decorate([
48
+ Component({
49
+ selector: 'answer',
50
+ template: "\n <div class=\"ione-configurator\">\n <div class=\"answer-wrapper\">\n <div class=\"answer-content\" @answerAppear>\n <div class=\"answer-thumbnail\">\n <rp-loader *ngIf=\"answer.imageData === ''\"></rp-loader>\n <img *ngIf=\"answer.imageData !== '' && answer.imageData !== null\" class=\"answer-img\" [src]=\"answer.imageData\">\n </div>\n <div class=\"answer-title-wrapper\">\n <span class=\"answer-title\" [textContent]=\"answer.commercialAnswer\"></span>\n </div>\n <div class=\"price\">\n <span class=\"price-value\"></span>\n </div>\n </div>\n </div>\n </div>\n ",
51
+ animations: [
52
+ trigger('answerAppear', [
53
+ state('void', style({ 'background': '#dbdbdb' })),
54
+ state('white', style({ 'background': 'white' })),
55
+ transition('void <=> *', animate(500))
56
+ ])
57
+ ],
58
+ styles: [".ione-configurator .rp-answers-slideout{position:absolute;top:0;right:0;width:400px;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}.ione-configurator .answers-title{margin-left:10px;color:#1a1a1a}.ione-configurator .answers-container{height:100vh;overflow-y:scroll}.ione-configurator .answer-content{position:relative;overflow:hidden;cursor:pointer;font-size:12px;border:1px solid #d3d3d3;padding:10px;display:flex;flex-direction:row;border-radius:3px;margin-bottom:3px;box-shadow:2px 1px rgba(211,211,211,.5);background:#fff}.ione-configurator .thumbnail{width:54px;min-width:54px;height:54px;min-height:54px;border:1px solid #d3d3d3;border-radius:5px}.ione-configurator .img-size{width:54px;min-width:54px;height:54px;min-height:54px;border-radius:5px}.ione-configurator .answer-wrapper{display:block}.ione-configurator .answer-title{font-size:12px;position:relative;overflow:hidden;cursor:pointer}.ione-configurator .question{font-weight:700;color:#1a1a1a}.ione-configurator .answer{font-size:12px;font-style:italic;margin-top:3px}.ione-configurator .collapse-content,.ione-configurator .collapse-wrapper{display:block}.ione-configurator .collapse-handle{position:absolute;top:10px;right:12px;border:solid #000;border-width:0 3px 3px 0;display:inline-block;padding:3px;transform:rotate(45deg);-webkit-transform:rotate(45deg)}.ione-configurator .collapse-handle.expanded{transform:rotate(-135deg);-webkit-transform:rotate(-135deg)}.ione-configurator .child-selection{margin-left:10px;display:flex;flex-direction:column;margin-top:5px}.ione-configurator .mat-title{margin-left:10px;color:#1a1a1a}.ione-configurator .drawer__header{height:48px}.ione-configurator .rp-selections-summary{height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;background:0 0;overflow:auto;position:absolute;top:0;right:0;width:400px}.ione-configurator .selections-content{overflow-y:auto}.ione-configurator .co-summary-line{position:relative;overflow:hidden;cursor:pointer;font-size:12px;border:1px solid #d3d3d3;padding:10px;display:flex;flex-direction:row;border-radius:3px;margin-bottom:3px;box-shadow:2px 1px rgba(211,211,211,.5);background:#fff}.ione-configurator .selection-thumbnail{width:54px;min-width:54px;height:54px;min-height:54px;border:1px solid #d3d3d3;border-radius:5px}.ione-configurator .selection-img{width:54px;min-width:54px;height:54px;min-height:54px;border-radius:5px}.ione-configurator .answer-thumbnail{width:54px;min-width:54px;height:54px;min-height:54px;border:1px solid #d3d3d3;border-radius:5px}.ione-configurator .answer-img{width:54px;min-width:54px;height:54px;min-height:54px;border-radius:5px}.ione-configurator .unloaded{background-color:#d3d3d3}.ione-configurator .titles{margin-left:14px;-ms-grid-row-align:center;align-self:center}.ione-configurator .title-wrapper{display:flex;flex-direction:column}.ione-configurator .answer-title-wrapper{text-align:center;-ms-grid-row-align:center;align-self:center;margin-left:14px}"]
59
+ })
60
+ ], AnswerComponent);
61
+ return AnswerComponent;
62
+ }());
63
+ export { AnswerComponent };
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5zd2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb2xpam5pdC9jb25maWd1cmF0b3IvIiwic291cmNlcyI6WyJhcHAvY29tcG9uZW50cy9hbnN3ZXJzL2Fuc3dlci9hbnN3ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUV4RSxPQUFPLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBaUMvRTtJQWNFLHlCQUFvQixrQkFBcUM7UUFBckMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtJQUFJLENBQUM7SUFUOUQsc0JBQVcsb0NBQU87YUFBbEIsVUFBbUIsS0FBYztZQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7WUFDM0IsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssZUFBZSxFQUFFO2dCQUNuRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNsQztpQkFBTTtnQkFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7YUFDOUI7UUFDSCxDQUFDOzs7T0FBQTtJQUlNLGtDQUFRLEdBQWY7SUFDQSxDQUFDO0lBRWEsd0NBQWMsR0FBNUIsVUFBNkIsTUFBYzs7Ozs0QkFDekMscUJBQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLDRCQUE0QixDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFDLFFBQWdCOzRCQUN2RixNQUFNLENBQUMsU0FBUyxHQUFHLFFBQVEsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO3dCQUN2RCxDQUFDLENBQUMsRUFBQTs7d0JBRkYsU0FFRSxDQUFDOzs7OztLQUNKOztnQkFUdUMsaUJBQWlCOztJQVp6RDtRQURDLEtBQUssRUFBRTttREFDYztJQUd0QjtRQURDLEtBQUssRUFBRTtrREFRUDtJQVpVLGVBQWU7UUEvQjNCLFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSxRQUFRO1lBQ2xCLFFBQVEsRUFBRSw0ckJBaUJUO1lBSUQsVUFBVSxFQUFFO2dCQUNWLE9BQU8sQ0FBQyxjQUFjLEVBQUU7b0JBQ3RCLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUMsWUFBWSxFQUFFLFNBQVMsRUFBQyxDQUFDLENBQUM7b0JBQy9DLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQUMsWUFBWSxFQUFFLE9BQU8sRUFBQyxDQUFDLENBQUM7b0JBQzlDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUN2QyxDQUFDO2FBQ0g7O1NBQ0YsQ0FBQztPQUNXLGVBQWUsQ0F3QjNCO0lBQUQsc0JBQUM7Q0FBQSxBQXhCRCxJQXdCQztTQXhCWSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtJbWFnZUNhY2hlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaW1hZ2UtY2FjaGUuc2VydmljZSc7XG5pbXBvcnQge0Fuc3dlcn0gZnJvbSAnQGNvbGlqbml0L2NvbmZpZ3VyYXRvcmFwaS9idWlsZC9tb2RlbC9hbnN3ZXInO1xuaW1wb3J0IHthbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXJ9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhbnN3ZXInLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJpb25lLWNvbmZpZ3VyYXRvclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImFuc3dlci13cmFwcGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhbnN3ZXItY29udGVudFwiIEBhbnN3ZXJBcHBlYXI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFuc3dlci10aHVtYm5haWxcIj5cbiAgICAgICAgICAgIDxycC1sb2FkZXIgKm5nSWY9XCJhbnN3ZXIuaW1hZ2VEYXRhID09PSAnJ1wiPjwvcnAtbG9hZGVyPlxuICAgICAgICAgICAgPGltZyAqbmdJZj1cImFuc3dlci5pbWFnZURhdGEgIT09ICcnICYmIGFuc3dlci5pbWFnZURhdGEgIT09IG51bGxcIiBjbGFzcz1cImFuc3dlci1pbWdcIiBbc3JjXT1cImFuc3dlci5pbWFnZURhdGFcIj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYW5zd2VyLXRpdGxlLXdyYXBwZXJcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYW5zd2VyLXRpdGxlXCIgW3RleHRDb250ZW50XT1cImFuc3dlci5jb21tZXJjaWFsQW5zd2VyXCI+PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwcmljZS12YWx1ZVwiPjwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbXG4gICAgJy4uLy4uLy4uLy4uL3N0eWxlL3NoYXJlZC5zY3NzJ1xuICBdLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcignYW5zd2VyQXBwZWFyJywgW1xuICAgICAgc3RhdGUoJ3ZvaWQnLCBzdHlsZSh7J2JhY2tncm91bmQnOiAnI2RiZGJkYid9KSksXG4gICAgICBzdGF0ZSgnd2hpdGUnLCBzdHlsZSh7J2JhY2tncm91bmQnOiAnd2hpdGUnfSkpLFxuICAgICAgdHJhbnNpdGlvbigndm9pZCA8PT4gKicsIGFuaW1hdGUoNTAwKSlcbiAgICBdKVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEFuc3dlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhbnN3ZXI6IEFuc3dlcjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNob3dpbmcodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmFuc3dlci5pbWFnZURhdGEgPSAnJztcbiAgICBpZiAodmFsdWUgJiYgdGhpcy5hbnN3ZXIuYW5zd2VyICE9PSAnU2tpcCAvIENhbmNlbCcpIHtcbiAgICAgIHRoaXMuX2xvYWRUaHVtYm5haWwodGhpcy5hbnN3ZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFuc3dlci5pbWFnZURhdGEgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2ltYWdlQ2FjaGVTZXJ2aWNlOiBJbWFnZUNhY2hlU2VydmljZSkgeyB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfbG9hZFRodW1ibmFpbChhbnN3ZXI6IEFuc3dlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuX2ltYWdlQ2FjaGVTZXJ2aWNlLmdldEltYWdlRm9yU2VsZWN0aW9uT3JBbnN3ZXIoYW5zd2VyKS50aGVuKChpbWFnZVNyYzogc3RyaW5nKSA9PiB7XG4gICAgICBhbnN3ZXIuaW1hZ2VEYXRhID0gaW1hZ2VTcmMgPT09IFwiXCIgPyBudWxsIDogaW1hZ2VTcmM7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,27 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
3
+ var AnswersComponent = /** @class */ (function () {
4
+ function AnswersComponent() {
5
+ this.answers = [];
6
+ this.answerClick = new EventEmitter();
7
+ }
8
+ __decorate([
9
+ Input()
10
+ ], AnswersComponent.prototype, "answers", void 0);
11
+ __decorate([
12
+ Input()
13
+ ], AnswersComponent.prototype, "selectionTitle", void 0);
14
+ __decorate([
15
+ Output()
16
+ ], AnswersComponent.prototype, "answerClick", void 0);
17
+ AnswersComponent = __decorate([
18
+ Component({
19
+ selector: "answers",
20
+ template: "\n <div class=\"ione-configurator\">\n <div class=\"rp-answers-slideout\">\n <h2 class=\"answers-title\" [textContent]=\"selectionTitle\"></h2>\n <div class=\"answers-container\" visibilityObserverMaster>\n <answer *ngFor=\"let answer of answers\"\n (click)=\"answerClick.emit(answer)\"\n [answer]=\"answer\"\n visibilityObserver\n #intersection=\"intersection\"\n [observerEnabled]=\"true\"\n [showing]=\"intersection.isIntersecting\"\n ></answer>\n </div>\n \n </div>\n </div>\n ",
21
+ styles: [".ione-configurator .rp-answers-slideout{position:absolute;top:0;right:0;width:400px;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}.ione-configurator .answers-title{margin-left:10px;color:#1a1a1a}.ione-configurator .answers-container{height:100vh;overflow-y:scroll}.ione-configurator .answer-content{position:relative;overflow:hidden;cursor:pointer;font-size:12px;border:1px solid #d3d3d3;padding:10px;display:flex;flex-direction:row;border-radius:3px;margin-bottom:3px;box-shadow:2px 1px rgba(211,211,211,.5);background:#fff}.ione-configurator .thumbnail{width:54px;min-width:54px;height:54px;min-height:54px;border:1px solid #d3d3d3;border-radius:5px}.ione-configurator .img-size{width:54px;min-width:54px;height:54px;min-height:54px;border-radius:5px}.ione-configurator .answer-wrapper{display:block}.ione-configurator .answer-title{font-size:12px;position:relative;overflow:hidden;cursor:pointer}.ione-configurator .question{font-weight:700;color:#1a1a1a}.ione-configurator .answer{font-size:12px;font-style:italic;margin-top:3px}.ione-configurator .collapse-content,.ione-configurator .collapse-wrapper{display:block}.ione-configurator .collapse-handle{position:absolute;top:10px;right:12px;border:solid #000;border-width:0 3px 3px 0;display:inline-block;padding:3px;transform:rotate(45deg);-webkit-transform:rotate(45deg)}.ione-configurator .collapse-handle.expanded{transform:rotate(-135deg);-webkit-transform:rotate(-135deg)}.ione-configurator .child-selection{margin-left:10px;display:flex;flex-direction:column;margin-top:5px}.ione-configurator .mat-title{margin-left:10px;color:#1a1a1a}.ione-configurator .drawer__header{height:48px}.ione-configurator .rp-selections-summary{height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;background:0 0;overflow:auto;position:absolute;top:0;right:0;width:400px}.ione-configurator .selections-content{overflow-y:auto}.ione-configurator .co-summary-line{position:relative;overflow:hidden;cursor:pointer;font-size:12px;border:1px solid #d3d3d3;padding:10px;display:flex;flex-direction:row;border-radius:3px;margin-bottom:3px;box-shadow:2px 1px rgba(211,211,211,.5);background:#fff}.ione-configurator .selection-thumbnail{width:54px;min-width:54px;height:54px;min-height:54px;border:1px solid #d3d3d3;border-radius:5px}.ione-configurator .selection-img{width:54px;min-width:54px;height:54px;min-height:54px;border-radius:5px}.ione-configurator .answer-thumbnail{width:54px;min-width:54px;height:54px;min-height:54px;border:1px solid #d3d3d3;border-radius:5px}.ione-configurator .answer-img{width:54px;min-width:54px;height:54px;min-height:54px;border-radius:5px}.ione-configurator .unloaded{background-color:#d3d3d3}.ione-configurator .titles{margin-left:14px;-ms-grid-row-align:center;align-self:center}.ione-configurator .title-wrapper{display:flex;flex-direction:column}.ione-configurator .answer-title-wrapper{text-align:center;-ms-grid-row-align:center;align-self:center;margin-left:14px}"]
22
+ })
23
+ ], AnswersComponent);
24
+ return AnswersComponent;
25
+ }());
26
+ export { AnswersComponent };
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5zd2Vycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29saWpuaXQvY29uZmlndXJhdG9yLyIsInNvdXJjZXMiOlsiYXBwL2NvbXBvbmVudHMvYW5zd2Vycy9hbnN3ZXJzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQTRCckU7SUFVSTtRQVJPLFlBQU8sR0FBYSxFQUFFLENBQUM7UUFNdkIsZ0JBQVcsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUV2RCxDQUFDO0lBUmhCO1FBREMsS0FBSyxFQUFFO3FEQUNzQjtJQUc5QjtRQURDLEtBQUssRUFBRTs0REFDc0I7SUFHOUI7UUFEQyxNQUFNLEVBQUU7eURBQzZEO0lBUjdELGdCQUFnQjtRQXpCNUIsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLFNBQVM7WUFDbkIsUUFBUSxFQUFFLDh3QkFpQlQ7O1NBSUosQ0FBQztPQUVXLGdCQUFnQixDQVk1QjtJQUFELHVCQUFDO0NBQUEsQUFaRCxJQVlDO1NBWlksZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QW5zd2VyfSBmcm9tIFwiQGNvbGlqbml0L2NvbmZpZ3VyYXRvcmFwaS9idWlsZC9tb2RlbC9hbnN3ZXJcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiYW5zd2Vyc1wiLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW9uZS1jb25maWd1cmF0b3JcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJwLWFuc3dlcnMtc2xpZGVvdXRcIj5cclxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cImFuc3dlcnMtdGl0bGVcIiBbdGV4dENvbnRlbnRdPVwic2VsZWN0aW9uVGl0bGVcIj48L2gyPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFuc3dlcnMtY29udGFpbmVyXCIgdmlzaWJpbGl0eU9ic2VydmVyTWFzdGVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhbnN3ZXIgKm5nRm9yPVwibGV0IGFuc3dlciBvZiBhbnN3ZXJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhbnN3ZXJDbGljay5lbWl0KGFuc3dlcilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Fuc3dlcl09XCJhbnN3ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlzaWJpbGl0eU9ic2VydmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjaW50ZXJzZWN0aW9uPVwiaW50ZXJzZWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvYnNlcnZlckVuYWJsZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd2luZ109XCJpbnRlcnNlY3Rpb24uaXNJbnRlcnNlY3RpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L2Fuc3dlcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgYCxcclxuICAgIHN0eWxlVXJsczogW1xyXG4gICAgICAgICcuLi8uLi8uLi9zdHlsZS9zaGFyZWQuc2NzcydcclxuICAgIF1cclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBBbnN3ZXJzQ29tcG9uZW50IHtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgYW5zd2VyczogQW5zd2VyW10gPSBbXTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNlbGVjdGlvblRpdGxlOiBzdHJpbmc7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgYW5zd2VyQ2xpY2s6IEV2ZW50RW1pdHRlcjxBbnN3ZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxBbnN3ZXI+KCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxufVxyXG4iXX0=
@@ -0,0 +1,32 @@
1
+ import { __decorate } from "tslib";
2
+ import { NgModule } from "@angular/core";
3
+ import { CommonModule } from "@angular/common";
4
+ import { AnswersComponent } from "./answers.component";
5
+ import { AnswerComponent } from './answer/answer.component';
6
+ import { VisibilityObserverDirective } from '../../directives/visibility-observer.directive';
7
+ import { VisibilityObserverMasterDirective } from '../../directives/visibility-observer-master.directive';
8
+ import { SharedModule } from '../shared/shared.module';
9
+ var AnswersModule = /** @class */ (function () {
10
+ function AnswersModule() {
11
+ }
12
+ AnswersModule = __decorate([
13
+ NgModule({
14
+ imports: [
15
+ CommonModule,
16
+ SharedModule
17
+ ],
18
+ declarations: [
19
+ AnswersComponent,
20
+ AnswerComponent,
21
+ VisibilityObserverDirective,
22
+ VisibilityObserverMasterDirective
23
+ ],
24
+ exports: [
25
+ AnswersComponent
26
+ ]
27
+ })
28
+ ], AnswersModule);
29
+ return AnswersModule;
30
+ }());
31
+ export { AnswersModule };
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5zd2Vycy5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29saWpuaXQvY29uZmlndXJhdG9yLyIsInNvdXJjZXMiOlsiYXBwL2NvbXBvbmVudHMvYW5zd2Vycy9hbnN3ZXJzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQzNGLE9BQU8sRUFBQyxpQ0FBaUMsRUFBQyxNQUFNLHVEQUF1RCxDQUFDO0FBQ3hHLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQWlCckQ7SUFBQTtJQUVBLENBQUM7SUFGWSxhQUFhO1FBZnpCLFFBQVEsQ0FBQztZQUNOLE9BQU8sRUFBRTtnQkFDTCxZQUFZO2dCQUNaLFlBQVk7YUFDZjtZQUNELFlBQVksRUFBRTtnQkFDVixnQkFBZ0I7Z0JBQ2hCLGVBQWU7Z0JBQ2YsMkJBQTJCO2dCQUMzQixpQ0FBaUM7YUFDcEM7WUFDRCxPQUFPLEVBQUU7Z0JBQ0wsZ0JBQWdCO2FBQ25CO1NBQ0osQ0FBQztPQUNXLGFBQWEsQ0FFekI7SUFBRCxvQkFBQztDQUFBLEFBRkQsSUFFQztTQUZZLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQge0Fuc3dlcnNDb21wb25lbnR9IGZyb20gXCIuL2Fuc3dlcnMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEFuc3dlckNvbXBvbmVudCB9IGZyb20gJy4vYW5zd2VyL2Fuc3dlci5jb21wb25lbnQnO1xyXG5pbXBvcnQge1Zpc2liaWxpdHlPYnNlcnZlckRpcmVjdGl2ZX0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy92aXNpYmlsaXR5LW9ic2VydmVyLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7VmlzaWJpbGl0eU9ic2VydmVyTWFzdGVyRGlyZWN0aXZlfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3Zpc2liaWxpdHktb2JzZXJ2ZXItbWFzdGVyLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7U2hhcmVkTW9kdWxlfSBmcm9tICcuLi9zaGFyZWQvc2hhcmVkLm1vZHVsZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZSxcclxuICAgICAgICBTaGFyZWRNb2R1bGVcclxuICAgIF0sXHJcbiAgICBkZWNsYXJhdGlvbnM6IFtcclxuICAgICAgICBBbnN3ZXJzQ29tcG9uZW50LFxyXG4gICAgICAgIEFuc3dlckNvbXBvbmVudCxcclxuICAgICAgICBWaXNpYmlsaXR5T2JzZXJ2ZXJEaXJlY3RpdmUsXHJcbiAgICAgICAgVmlzaWJpbGl0eU9ic2VydmVyTWFzdGVyRGlyZWN0aXZlXHJcbiAgICBdLFxyXG4gICAgZXhwb3J0czogW1xyXG4gICAgICAgIEFuc3dlcnNDb21wb25lbnRcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFuc3dlcnNNb2R1bGUge1xyXG5cclxufVxyXG4iXX0=
@@ -0,0 +1,104 @@
1
+ import { __awaiter, __decorate, __generator } from "tslib";
2
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
3
+ import { animate, state, style, transition, trigger } from "@angular/animations";
4
+ import { ImageCacheService } from '../../services/image-cache.service';
5
+ var SelectionViewModel = /** @class */ (function () {
6
+ function SelectionViewModel() {
7
+ this.children = [];
8
+ this.expanded = false;
9
+ this.thumbnail = '';
10
+ }
11
+ return SelectionViewModel;
12
+ }());
13
+ var SelectionsComponent = /** @class */ (function () {
14
+ function SelectionsComponent(_imageCacheService) {
15
+ this._imageCacheService = _imageCacheService;
16
+ this.selectionViewModels = [];
17
+ this.selectionClick = new EventEmitter();
18
+ }
19
+ Object.defineProperty(SelectionsComponent.prototype, "selections", {
20
+ set: function (value) {
21
+ this._prepareSelections(value);
22
+ this._loadThumbnails();
23
+ },
24
+ enumerable: true,
25
+ configurable: true
26
+ });
27
+ SelectionsComponent.prototype.ngOnInit = function () {
28
+ };
29
+ SelectionsComponent.prototype.expandClicked = function (selectionViewModel, mouseEvent) {
30
+ mouseEvent.preventDefault();
31
+ mouseEvent.stopImmediatePropagation();
32
+ selectionViewModel.expanded = !selectionViewModel.expanded;
33
+ };
34
+ SelectionsComponent.prototype.selectSelection = function (selection, mouseEvent) {
35
+ mouseEvent.preventDefault();
36
+ mouseEvent.stopImmediatePropagation();
37
+ this.selectionClick.next(selection);
38
+ };
39
+ SelectionsComponent.prototype._loadThumbnails = function () {
40
+ return __awaiter(this, void 0, void 0, function () {
41
+ var _this = this;
42
+ return __generator(this, function (_a) {
43
+ if (this.selectionViewModels.length > 0) {
44
+ this.selectionViewModels.forEach(function (viewModel) { return __awaiter(_this, void 0, void 0, function () {
45
+ return __generator(this, function (_a) {
46
+ switch (_a.label) {
47
+ case 0: return [4 /*yield*/, this._imageCacheService.getImageForSelectionOrAnswer(viewModel.selection).then(function (imageSrc) {
48
+ viewModel.thumbnail = imageSrc === "" ? null : imageSrc;
49
+ })];
50
+ case 1:
51
+ _a.sent();
52
+ return [2 /*return*/];
53
+ }
54
+ });
55
+ }); });
56
+ }
57
+ return [2 /*return*/];
58
+ });
59
+ });
60
+ };
61
+ SelectionsComponent.prototype._prepareSelections = function (value) {
62
+ var _this = this;
63
+ this.selectionViewModels.length = 0;
64
+ var selectionViewModel;
65
+ value.forEach(function (s) {
66
+ if (s.presentationLevel === 1) {
67
+ selectionViewModel = new SelectionViewModel();
68
+ selectionViewModel.selection = s;
69
+ _this.selectionViewModels.push(selectionViewModel);
70
+ }
71
+ else if (s.presentationLevel > 1) {
72
+ if (selectionViewModel) {
73
+ selectionViewModel.children.push(s);
74
+ }
75
+ }
76
+ });
77
+ };
78
+ SelectionsComponent.ctorParameters = function () { return [
79
+ { type: ImageCacheService }
80
+ ]; };
81
+ __decorate([
82
+ Input()
83
+ ], SelectionsComponent.prototype, "selections", null);
84
+ __decorate([
85
+ Output()
86
+ ], SelectionsComponent.prototype, "selectionClick", void 0);
87
+ SelectionsComponent = __decorate([
88
+ Component({
89
+ selector: "selections",
90
+ template: "\n <div class=\"ione-configurator\">\n <div class=\"rp-selections-summary\">\n <header class=\"drawer__header\">\n <h2 class=\"mat-title\" [textContent]=\"'Configuratie'\"></h2>\n <!--<button>-->\n <!---->\n <!--</button>-->\n </header>\n <div class=\"selections-content\">\n <ng-container *ngFor=\"let selectionViewModel of selectionViewModels\">\n\n <div class=\"co-summary-line\" (click)=\"selectSelection(selectionViewModel.selection, $event)\">\n <div class=\"selection-thumbnail\">\n <rp-loader *ngIf=\"selectionViewModel.thumbnail === ''\"></rp-loader>\n <img visibilityObserver *ngIf=\"selectionViewModel.thumbnail !== '' && selectionViewModel.thumbnail !== null\" class=\"selection-img\" [src]=\"selectionViewModel.thumbnail\">\n </div>\n <div class=\"titles\">\n <div class=\"title-wrapper\">\n <label class=\"question\" [textContent]=\"selectionViewModel.selection.question\"></label>\n <span class=\"answer\" [textContent]=\"selectionViewModel.selection.answer\"></span>\n <div *ngIf=\"selectionViewModel.children.length > 0 && selectionViewModel.expanded\" @showHideChildren>\n <div class=\"child-selection\" *ngFor=\"let selection of selectionViewModel.children\"\n (click)=\"selectSelection(selection, $event)\"\n >\n <label class=\"question\" [textContent]=\"selection.commercialQuestion\"></label>\n <span class=\"answer\" [textContent]=\"selection.answer\"></span>\n </div>\n </div>\n </div>\n </div>\n \n <div class=\"price-wrapper\">\n <span class=\"price-value\"></span>\n </div>\n\n <div class=\"collapse-wrapper\">\n <div class=\"collapse-content\">\n <div class=\"collapse-handle\" [class.expanded]=\"selectionViewModel.expanded\"\n *ngIf=\"selectionViewModel.children.length > 0\" (click)=\"expandClicked(selectionViewModel, $event)\"></div>\n </div>\n </div>\n </div>\n\n </ng-container>\n </div>\n </div>\n </div>\n ",
91
+ animations: [
92
+ trigger('showHideChildren', [
93
+ state('void', style({ 'height': '0' })),
94
+ state('*', style({ 'height': '*' })),
95
+ transition('void <=> *', animate(200))
96
+ ])
97
+ ],
98
+ styles: [".ione-configurator .rp-answers-slideout{position:absolute;top:0;right:0;width:400px;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}.ione-configurator .answers-title{margin-left:10px;color:#1a1a1a}.ione-configurator .answers-container{height:100vh;overflow-y:scroll}.ione-configurator .answer-content{position:relative;overflow:hidden;cursor:pointer;font-size:12px;border:1px solid #d3d3d3;padding:10px;display:flex;flex-direction:row;border-radius:3px;margin-bottom:3px;box-shadow:2px 1px rgba(211,211,211,.5);background:#fff}.ione-configurator .thumbnail{width:54px;min-width:54px;height:54px;min-height:54px;border:1px solid #d3d3d3;border-radius:5px}.ione-configurator .img-size{width:54px;min-width:54px;height:54px;min-height:54px;border-radius:5px}.ione-configurator .answer-wrapper{display:block}.ione-configurator .answer-title{font-size:12px;position:relative;overflow:hidden;cursor:pointer}.ione-configurator .question{font-weight:700;color:#1a1a1a}.ione-configurator .answer{font-size:12px;font-style:italic;margin-top:3px}.ione-configurator .collapse-content,.ione-configurator .collapse-wrapper{display:block}.ione-configurator .collapse-handle{position:absolute;top:10px;right:12px;border:solid #000;border-width:0 3px 3px 0;display:inline-block;padding:3px;transform:rotate(45deg);-webkit-transform:rotate(45deg)}.ione-configurator .collapse-handle.expanded{transform:rotate(-135deg);-webkit-transform:rotate(-135deg)}.ione-configurator .child-selection{margin-left:10px;display:flex;flex-direction:column;margin-top:5px}.ione-configurator .mat-title{margin-left:10px;color:#1a1a1a}.ione-configurator .drawer__header{height:48px}.ione-configurator .rp-selections-summary{height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;background:0 0;overflow:auto;position:absolute;top:0;right:0;width:400px}.ione-configurator .selections-content{overflow-y:auto}.ione-configurator .co-summary-line{position:relative;overflow:hidden;cursor:pointer;font-size:12px;border:1px solid #d3d3d3;padding:10px;display:flex;flex-direction:row;border-radius:3px;margin-bottom:3px;box-shadow:2px 1px rgba(211,211,211,.5);background:#fff}.ione-configurator .selection-thumbnail{width:54px;min-width:54px;height:54px;min-height:54px;border:1px solid #d3d3d3;border-radius:5px}.ione-configurator .selection-img{width:54px;min-width:54px;height:54px;min-height:54px;border-radius:5px}.ione-configurator .answer-thumbnail{width:54px;min-width:54px;height:54px;min-height:54px;border:1px solid #d3d3d3;border-radius:5px}.ione-configurator .answer-img{width:54px;min-width:54px;height:54px;min-height:54px;border-radius:5px}.ione-configurator .unloaded{background-color:#d3d3d3}.ione-configurator .titles{margin-left:14px;-ms-grid-row-align:center;align-self:center}.ione-configurator .title-wrapper{display:flex;flex-direction:column}.ione-configurator .answer-title-wrapper{text-align:center;-ms-grid-row-align:center;align-self:center;margin-left:14px}"]
99
+ })
100
+ ], SelectionsComponent);
101
+ return SelectionsComponent;
102
+ }());
103
+ export { SelectionsComponent };
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29saWpuaXQvY29uZmlndXJhdG9yLyIsInNvdXJjZXMiOlsiYXBwL2NvbXBvbmVudHMvc2VsZWN0aW9ucy9zZWxlY3Rpb25zLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU3RSxPQUFPLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQy9FLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBRXJFO0lBQUE7UUFFVyxhQUFRLEdBQWdCLEVBQUUsQ0FBQztRQUMzQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGNBQVMsR0FBVyxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUFELHlCQUFDO0FBQUQsQ0FBQyxBQUxELElBS0M7QUFpRUQ7SUFZSSw2QkFBb0Isa0JBQXFDO1FBQXJDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFMbEQsd0JBQW1CLEdBQXlCLEVBQUUsQ0FBQztRQUcvQyxtQkFBYyxHQUE0QixJQUFJLFlBQVksRUFBYSxDQUFDO0lBRW5CLENBQUM7SUFWN0Qsc0JBQVcsMkNBQVU7YUFBckIsVUFBc0IsS0FBa0I7WUFDcEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMzQixDQUFDOzs7T0FBQTtJQVNNLHNDQUFRLEdBQWY7SUFFQSxDQUFDO0lBRU0sMkNBQWEsR0FBcEIsVUFBcUIsa0JBQXNDLEVBQUUsVUFBc0I7UUFDL0UsVUFBVSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzVCLFVBQVUsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQ3RDLGtCQUFrQixDQUFDLFFBQVEsR0FBRyxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQztJQUMvRCxDQUFDO0lBRU0sNkNBQWUsR0FBdEIsVUFBdUIsU0FBb0IsRUFBRSxVQUFzQjtRQUMvRCxVQUFVLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDNUIsVUFBVSxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFDdEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVhLDZDQUFlLEdBQTdCOzs7O2dCQUNJLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0JBQ3JDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsVUFBTyxTQUE2Qjs7O3dDQUNqRSxxQkFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsNEJBQTRCLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFDLFFBQWdCO3dDQUNsRyxTQUFTLENBQUMsU0FBUyxHQUFHLFFBQVEsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO29DQUM1RCxDQUFDLENBQUMsRUFBQTs7b0NBRkYsU0FFRSxDQUFDOzs7O3lCQUNOLENBQUMsQ0FBQztpQkFDTjs7OztLQUNKO0lBRU8sZ0RBQWtCLEdBQTFCLFVBQTJCLEtBQWtCO1FBQTdDLGlCQWNDO1FBYkcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDcEMsSUFBSSxrQkFBc0MsQ0FBQztRQUMzQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQUEsQ0FBQztZQUNYLElBQUksQ0FBQyxDQUFDLGlCQUFpQixLQUFLLENBQUMsRUFBRTtnQkFDM0Isa0JBQWtCLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO2dCQUM5QyxrQkFBa0IsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO2dCQUNqQyxLQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7YUFDckQ7aUJBQU0sSUFBSSxDQUFDLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxFQUFFO2dCQUNoQyxJQUFJLGtCQUFrQixFQUFFO29CQUNwQixrQkFBa0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUN2QzthQUNKO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOztnQkExQ3VDLGlCQUFpQjs7SUFWekQ7UUFEQyxLQUFLLEVBQUU7eURBSVA7SUFLRDtRQURDLE1BQU0sRUFBRTsrREFDc0U7SUFWdEUsbUJBQW1CO1FBL0QvQixTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsWUFBWTtZQUN0QixRQUFRLEVBQUUsazlGQWdEVDtZQUlELFVBQVUsRUFBRTtnQkFDUixPQUFPLENBQUMsa0JBQWtCLEVBQUU7b0JBQ3hCLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUMsUUFBUSxFQUFFLEdBQUcsRUFBQyxDQUFDLENBQUM7b0JBQ3JDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUMsUUFBUSxFQUFFLEdBQUcsRUFBQyxDQUFDLENBQUM7b0JBQ2xDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUN6QyxDQUFDO2FBQ0w7O1NBQ0osQ0FBQztPQUVXLG1CQUFtQixDQXVEL0I7SUFBRCwwQkFBQztDQUFBLEFBdkRELElBdURDO1NBdkRZLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7U2VsZWN0aW9ufSBmcm9tIFwiQGNvbGlqbml0L2NvbmZpZ3VyYXRvcmFwaS9idWlsZC9tb2RlbC9zZWxlY3Rpb25cIjtcclxuaW1wb3J0IHthbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXJ9IGZyb20gXCJAYW5ndWxhci9hbmltYXRpb25zXCI7XHJcbmltcG9ydCB7SW1hZ2VDYWNoZVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ltYWdlLWNhY2hlLnNlcnZpY2UnO1xyXG5cclxuY2xhc3MgU2VsZWN0aW9uVmlld01vZGVsIHtcclxuICAgIHB1YmxpYyBzZWxlY3Rpb246IFNlbGVjdGlvbjtcclxuICAgIHB1YmxpYyBjaGlsZHJlbjogU2VsZWN0aW9uW10gPSBbXTtcclxuICAgIHB1YmxpYyBleHBhbmRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIHRodW1ibmFpbDogc3RyaW5nID0gJyc7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwic2VsZWN0aW9uc1wiLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW9uZS1jb25maWd1cmF0b3JcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJwLXNlbGVjdGlvbnMtc3VtbWFyeVwiPlxyXG4gICAgICAgICAgICAgICAgPGhlYWRlciBjbGFzcz1cImRyYXdlcl9faGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwibWF0LXRpdGxlXCIgW3RleHRDb250ZW50XT1cIidDb25maWd1cmF0aWUnXCI+PC9oMj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tPGJ1dHRvbj4tLT5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLTwvYnV0dG9uPi0tPlxyXG4gICAgICAgICAgICAgICAgPC9oZWFkZXI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0aW9ucy1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc2VsZWN0aW9uVmlld01vZGVsIG9mIHNlbGVjdGlvblZpZXdNb2RlbHNcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjby1zdW1tYXJ5LWxpbmVcIiAoY2xpY2spPVwic2VsZWN0U2VsZWN0aW9uKHNlbGVjdGlvblZpZXdNb2RlbC5zZWxlY3Rpb24sICRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3Rpb24tdGh1bWJuYWlsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJwLWxvYWRlciAqbmdJZj1cInNlbGVjdGlvblZpZXdNb2RlbC50aHVtYm5haWwgPT09ICcnXCI+PC9ycC1sb2FkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyB2aXNpYmlsaXR5T2JzZXJ2ZXIgKm5nSWY9XCJzZWxlY3Rpb25WaWV3TW9kZWwudGh1bWJuYWlsICE9PSAnJyAmJiBzZWxlY3Rpb25WaWV3TW9kZWwudGh1bWJuYWlsICE9PSBudWxsXCIgY2xhc3M9XCJzZWxlY3Rpb24taW1nXCIgW3NyY109XCJzZWxlY3Rpb25WaWV3TW9kZWwudGh1bWJuYWlsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZXNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJxdWVzdGlvblwiIFt0ZXh0Q29udGVudF09XCJzZWxlY3Rpb25WaWV3TW9kZWwuc2VsZWN0aW9uLnF1ZXN0aW9uXCI+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhbnN3ZXJcIiBbdGV4dENvbnRlbnRdPVwic2VsZWN0aW9uVmlld01vZGVsLnNlbGVjdGlvbi5hbnN3ZXJcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzZWxlY3Rpb25WaWV3TW9kZWwuY2hpbGRyZW4ubGVuZ3RoID4gMCAmJiBzZWxlY3Rpb25WaWV3TW9kZWwuZXhwYW5kZWRcIiBAc2hvd0hpZGVDaGlsZHJlbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlsZC1zZWxlY3Rpb25cIiAqbmdGb3I9XCJsZXQgc2VsZWN0aW9uIG9mIHNlbGVjdGlvblZpZXdNb2RlbC5jaGlsZHJlblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RTZWxlY3Rpb24oc2VsZWN0aW9uLCAkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJxdWVzdGlvblwiIFt0ZXh0Q29udGVudF09XCJzZWxlY3Rpb24uY29tbWVyY2lhbFF1ZXN0aW9uXCI+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFuc3dlclwiIFt0ZXh0Q29udGVudF09XCJzZWxlY3Rpb24uYW5zd2VyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwcmljZS12YWx1ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYXBzZS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhcHNlLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhcHNlLWhhbmRsZVwiIFtjbGFzcy5leHBhbmRlZF09XCJzZWxlY3Rpb25WaWV3TW9kZWwuZXhwYW5kZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2VsZWN0aW9uVmlld01vZGVsLmNoaWxkcmVuLmxlbmd0aCA+IDBcIiAoY2xpY2spPVwiZXhwYW5kQ2xpY2tlZChzZWxlY3Rpb25WaWV3TW9kZWwsICRldmVudClcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICBgLFxyXG4gICAgc3R5bGVVcmxzOiBbXHJcbiAgICAgICAgJy4uLy4uLy4uL3N0eWxlL3NoYXJlZC5zY3NzJ1xyXG4gICAgXSxcclxuICAgIGFuaW1hdGlvbnM6IFtcclxuICAgICAgICB0cmlnZ2VyKCdzaG93SGlkZUNoaWxkcmVuJywgW1xyXG4gICAgICAgICAgICBzdGF0ZSgndm9pZCcsIHN0eWxlKHsnaGVpZ2h0JzogJzAnfSkpLFxyXG4gICAgICAgICAgICBzdGF0ZSgnKicsIHN0eWxlKHsnaGVpZ2h0JzogJyonfSkpLFxyXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCd2b2lkIDw9PiAqJywgYW5pbWF0ZSgyMDApKVxyXG4gICAgICAgIF0pXHJcbiAgICBdXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgU2VsZWN0aW9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCBzZWxlY3Rpb25zKHZhbHVlOiBTZWxlY3Rpb25bXSkge1xyXG4gICAgICAgIHRoaXMuX3ByZXBhcmVTZWxlY3Rpb25zKHZhbHVlKTtcclxuICAgICAgICB0aGlzLl9sb2FkVGh1bWJuYWlscygpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZWxlY3Rpb25WaWV3TW9kZWxzOiBTZWxlY3Rpb25WaWV3TW9kZWxbXSA9IFtdO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHNlbGVjdGlvbkNsaWNrOiBFdmVudEVtaXR0ZXI8U2VsZWN0aW9uPiA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0aW9uPigpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2ltYWdlQ2FjaGVTZXJ2aWNlOiBJbWFnZUNhY2hlU2VydmljZSkge31cclxuXHJcbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBleHBhbmRDbGlja2VkKHNlbGVjdGlvblZpZXdNb2RlbDogU2VsZWN0aW9uVmlld01vZGVsLCBtb3VzZUV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgbW91c2VFdmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIG1vdXNlRXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgc2VsZWN0aW9uVmlld01vZGVsLmV4cGFuZGVkID0gIXNlbGVjdGlvblZpZXdNb2RlbC5leHBhbmRlZDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2VsZWN0U2VsZWN0aW9uKHNlbGVjdGlvbjogU2VsZWN0aW9uLCBtb3VzZUV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgbW91c2VFdmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIG1vdXNlRXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25DbGljay5uZXh0KHNlbGVjdGlvbik7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBhc3luYyBfbG9hZFRodW1ibmFpbHMoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uVmlld01vZGVscy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uVmlld01vZGVscy5mb3JFYWNoKGFzeW5jICh2aWV3TW9kZWw6IFNlbGVjdGlvblZpZXdNb2RlbCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5faW1hZ2VDYWNoZVNlcnZpY2UuZ2V0SW1hZ2VGb3JTZWxlY3Rpb25PckFuc3dlcih2aWV3TW9kZWwuc2VsZWN0aW9uKS50aGVuKChpbWFnZVNyYzogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmlld01vZGVsLnRodW1ibmFpbCA9IGltYWdlU3JjID09PSBcIlwiID8gbnVsbCA6IGltYWdlU3JjO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9wcmVwYXJlU2VsZWN0aW9ucyh2YWx1ZTogU2VsZWN0aW9uW10pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGlvblZpZXdNb2RlbHMubGVuZ3RoID0gMDtcclxuICAgICAgICBsZXQgc2VsZWN0aW9uVmlld01vZGVsOiBTZWxlY3Rpb25WaWV3TW9kZWw7XHJcbiAgICAgICAgdmFsdWUuZm9yRWFjaChzID0+IHtcclxuICAgICAgICAgICAgaWYgKHMucHJlc2VudGF0aW9uTGV2ZWwgPT09IDEpIHtcclxuICAgICAgICAgICAgICAgIHNlbGVjdGlvblZpZXdNb2RlbCA9IG5ldyBTZWxlY3Rpb25WaWV3TW9kZWwoKTtcclxuICAgICAgICAgICAgICAgIHNlbGVjdGlvblZpZXdNb2RlbC5zZWxlY3Rpb24gPSBzO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25WaWV3TW9kZWxzLnB1c2goc2VsZWN0aW9uVmlld01vZGVsKTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChzLnByZXNlbnRhdGlvbkxldmVsID4gMSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGlvblZpZXdNb2RlbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvblZpZXdNb2RlbC5jaGlsZHJlbi5wdXNoKHMpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -0,0 +1,26 @@
1
+ import { __decorate } from "tslib";
2
+ import { NgModule } from "@angular/core";
3
+ import { CommonModule } from "@angular/common";
4
+ import { SelectionsComponent } from "./selections.component";
5
+ import { SharedModule } from '../shared/shared.module';
6
+ var SelectionsModule = /** @class */ (function () {
7
+ function SelectionsModule() {
8
+ }
9
+ SelectionsModule = __decorate([
10
+ NgModule({
11
+ imports: [
12
+ CommonModule,
13
+ SharedModule
14
+ ],
15
+ declarations: [
16
+ SelectionsComponent
17
+ ],
18
+ exports: [
19
+ SelectionsComponent
20
+ ]
21
+ })
22
+ ], SelectionsModule);
23
+ return SelectionsModule;
24
+ }());
25
+ export { SelectionsModule };
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9ucy5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29saWpuaXQvY29uZmlndXJhdG9yLyIsInNvdXJjZXMiOlsiYXBwL2NvbXBvbmVudHMvc2VsZWN0aW9ucy9zZWxlY3Rpb25zLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBY3JEO0lBQUE7SUFFQSxDQUFDO0lBRlksZ0JBQWdCO1FBWjVCLFFBQVEsQ0FBQztZQUNOLE9BQU8sRUFBRTtnQkFDTCxZQUFZO2dCQUNaLFlBQVk7YUFDZjtZQUNELFlBQVksRUFBRTtnQkFDVixtQkFBbUI7YUFDdEI7WUFDRCxPQUFPLEVBQUU7Z0JBQ0wsbUJBQW1CO2FBQ3RCO1NBQ0osQ0FBQztPQUNXLGdCQUFnQixDQUU1QjtJQUFELHVCQUFDO0NBQUEsQUFGRCxJQUVDO1NBRlksZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtTZWxlY3Rpb25zQ29tcG9uZW50fSBmcm9tIFwiLi9zZWxlY3Rpb25zLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1NoYXJlZE1vZHVsZX0gZnJvbSAnLi4vc2hhcmVkL3NoYXJlZC5tb2R1bGUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgICAgU2hhcmVkTW9kdWxlXHJcbiAgICBdLFxyXG4gICAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICAgICAgU2VsZWN0aW9uc0NvbXBvbmVudFxyXG4gICAgXSxcclxuICAgIGV4cG9ydHM6IFtcclxuICAgICAgICBTZWxlY3Rpb25zQ29tcG9uZW50XHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZWxlY3Rpb25zTW9kdWxlIHtcclxuXHJcbn1cclxuIl19
@@ -0,0 +1,16 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component } from '@angular/core';
3
+ var LoaderComponent = /** @class */ (function () {
4
+ function LoaderComponent() {
5
+ }
6
+ LoaderComponent = __decorate([
7
+ Component({
8
+ selector: 'rp-loader',
9
+ template: "\n <div class=\"loader-wrapper\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"44\" height=\"44\" viewBox=\"0 0 44 44\" stroke=\"#3760a1\">\n <g fill=\"none\" fill-rule=\"evenodd\" stroke-width=\"3\">\n <circle class=\"ripple1\" cx=\"22\" cy=\"22\" r=\"19\">\n </circle>\n <circle class=\"ripple2\" cx=\"22\" cy=\"22\" r=\"19\">\n </circle>\n </g>\n </svg>\n </div>\n ",
10
+ styles: [":host{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none}:host .loader-wrapper{z-index:1100;position:absolute;width:54px;height:54px}:host .loader-wrapper svg{width:100%;height:100%}:host .loader-wrapper svg .ripple1{transform-origin:center;-webkit-animation:1.5s infinite ripple;animation:1.5s infinite ripple}:host .loader-wrapper svg .ripple2{transform-origin:center;-webkit-animation:1.5s .4s infinite ripple;animation:1.5s .4s infinite ripple}@-webkit-keyframes ripple{0%{transform:scale(0);opacity:1}100%{transform:scale(1);opacity:0}}@keyframes ripple{0%{transform:scale(0);opacity:1}100%{transform:scale(1);opacity:0}}"]
11
+ })
12
+ ], LoaderComponent);
13
+ return LoaderComponent;
14
+ }());
15
+ export { LoaderComponent };
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb2xpam5pdC9jb25maWd1cmF0b3IvIiwic291cmNlcyI6WyJhcHAvY29tcG9uZW50cy9zaGFyZWQvbG9hZGVyL2xvYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFrQnhDO0lBQUE7SUFDQSxDQUFDO0lBRFksZUFBZTtRQWhCM0IsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLFdBQVc7WUFDckIsUUFBUSxFQUFFLDRiQVdUOztTQUVGLENBQUM7T0FDVyxlQUFlLENBQzNCO0lBQUQsc0JBQUM7Q0FBQSxBQURELElBQ0M7U0FEWSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdycC1sb2FkZXInLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJsb2FkZXItd3JhcHBlclwiPlxuICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI0NFwiIGhlaWdodD1cIjQ0XCIgdmlld0JveD1cIjAgMCA0NCA0NFwiIHN0cm9rZT1cIiMzNzYwYTFcIj5cbiAgICAgICAgPGcgZmlsbD1cIm5vbmVcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCIgc3Ryb2tlLXdpZHRoPVwiM1wiPlxuICAgICAgICAgIDxjaXJjbGUgY2xhc3M9XCJyaXBwbGUxXCIgY3g9XCIyMlwiIGN5PVwiMjJcIiByPVwiMTlcIj5cbiAgICAgICAgICA8L2NpcmNsZT5cbiAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwicmlwcGxlMlwiIGN4PVwiMjJcIiBjeT1cIjIyXCIgcj1cIjE5XCI+XG4gICAgICAgICAgPC9jaXJjbGU+XG4gICAgICAgIDwvZz5cbiAgICAgIDwvc3ZnPlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9sb2FkZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBMb2FkZXJDb21wb25lbnQge1xufVxuIl19
@@ -0,0 +1,24 @@
1
+ import { __decorate } from "tslib";
2
+ import { NgModule } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
+ import { LoaderComponent } from './loader/loader.component';
5
+ var SharedModule = /** @class */ (function () {
6
+ function SharedModule() {
7
+ }
8
+ SharedModule = __decorate([
9
+ NgModule({
10
+ imports: [
11
+ CommonModule
12
+ ],
13
+ declarations: [
14
+ LoaderComponent
15
+ ],
16
+ exports: [
17
+ LoaderComponent
18
+ ]
19
+ })
20
+ ], SharedModule);
21
+ return SharedModule;
22
+ }());
23
+ export { SharedModule };
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb2xpam5pdC9jb25maWd1cmF0b3IvIiwic291cmNlcyI6WyJhcHAvY29tcG9uZW50cy9zaGFyZWQvc2hhcmVkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBYTFEO0lBQUE7SUFBNEIsQ0FBQztJQUFoQixZQUFZO1FBWHhCLFFBQVEsQ0FBQztZQUNSLE9BQU8sRUFBRTtnQkFDUCxZQUFZO2FBQ2I7WUFDRCxZQUFZLEVBQUU7Z0JBQ1osZUFBZTthQUNoQjtZQUNELE9BQU8sRUFBRTtnQkFDUCxlQUFlO2FBQ2hCO1NBQ0YsQ0FBQztPQUNXLFlBQVksQ0FBSTtJQUFELG1CQUFDO0NBQUEsQUFBN0IsSUFBNkI7U0FBaEIsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtMb2FkZXJDb21wb25lbnR9IGZyb20gJy4vbG9hZGVyL2xvYWRlci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIExvYWRlckNvbXBvbmVudFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgTG9hZGVyQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgU2hhcmVkTW9kdWxlIHsgfVxuIl19
@@ -0,0 +1,64 @@
1
+ import { __decorate, __values } from "tslib";
2
+ // Import the core angular services.
3
+ import { Directive } from '@angular/core';
4
+ var VisibilityObserverMasterDirective = /** @class */ (function () {
5
+ // I initialize the intersection observer parent directive.
6
+ function VisibilityObserverMasterDirective() {
7
+ var _this = this;
8
+ // As each observable child attaches itself to the parent observer, we need to
9
+ // map Elements to Callbacks so that when an Element's intersection changes,
10
+ // we'll know which callback to invoke. For this, we'll use an ES6 Map.
11
+ this._mapping = new Map();
12
+ this._observer = new IntersectionObserver(function (entries) {
13
+ var e_1, _a;
14
+ try {
15
+ for (var entries_1 = __values(entries), entries_1_1 = entries_1.next(); !entries_1_1.done; entries_1_1 = entries_1.next()) {
16
+ var entry = entries_1_1.value;
17
+ var callback = _this._mapping.get(entry.target);
18
+ if (callback) {
19
+ callback(entry.isIntersecting);
20
+ }
21
+ }
22
+ }
23
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
24
+ finally {
25
+ try {
26
+ if (entries_1_1 && !entries_1_1.done && (_a = entries_1.return)) _a.call(entries_1);
27
+ }
28
+ finally { if (e_1) throw e_1.error; }
29
+ }
30
+ }, {
31
+ // This classifies the "intersection" as being a bit outside the
32
+ // viewport. The intent here is give the elements a little time to react
33
+ // to the change before the element is actually visible to the user.
34
+ rootMargin: '300px 0px 300px 0px'
35
+ });
36
+ }
37
+ // I get called once when the host element is being destroyed.
38
+ VisibilityObserverMasterDirective.prototype.ngOnDestroy = function () {
39
+ this._mapping.clear();
40
+ this._observer.disconnect();
41
+ };
42
+ // ---
43
+ // PUBLIC METHODS.
44
+ // ---
45
+ // I add the given Element for intersection observation. When the intersection status
46
+ // changes, the given callback is invoked with the new status.
47
+ VisibilityObserverMasterDirective.prototype.add = function (element, callback) {
48
+ this._mapping.set(element, callback);
49
+ this._observer.observe(element);
50
+ };
51
+ // I remove the given Element from intersection observation.
52
+ VisibilityObserverMasterDirective.prototype.remove = function (element) {
53
+ this._mapping.delete(element);
54
+ this._observer.unobserve(element);
55
+ };
56
+ VisibilityObserverMasterDirective = __decorate([
57
+ Directive({
58
+ selector: '[visibilityObserverMaster]'
59
+ })
60
+ ], VisibilityObserverMasterDirective);
61
+ return VisibilityObserverMasterDirective;
62
+ }());
63
+ export { VisibilityObserverMasterDirective };
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaWJpbGl0eS1vYnNlcnZlci1tYXN0ZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvbGlqbml0L2NvbmZpZ3VyYXRvci8iLCJzb3VyY2VzIjpbImFwcC9kaXJlY3RpdmVzL3Zpc2liaWxpdHktb2JzZXJ2ZXItbWFzdGVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0NBQW9DO0FBQ3BDLE9BQU8sRUFBQyxTQUFTLEVBQVksTUFBTSxlQUFlLENBQUM7QUFLbkQ7SUFLRSwyREFBMkQ7SUFDM0Q7UUFBQSxpQkEyQkM7UUF6QkMsOEVBQThFO1FBQzlFLDRFQUE0RTtRQUM1RSx1RUFBdUU7UUFDdkUsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRTFCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxvQkFBb0IsQ0FDckMsVUFBQyxPQUFvQzs7O2dCQUVuQyxLQUFvQixJQUFBLFlBQUEsU0FBQSxPQUFPLENBQUEsZ0NBQUEscURBQUU7b0JBQXhCLElBQU0sS0FBSyxvQkFBQTtvQkFFZCxJQUFNLFFBQVEsR0FBRyxLQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ2pELElBQUksUUFBUSxFQUFFO3dCQUNaLFFBQVEsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7cUJBQ2hDO2lCQUNGOzs7Ozs7Ozs7UUFFSCxDQUFDLEVBQ0Q7WUFDRSxnRUFBZ0U7WUFDaEUsd0VBQXdFO1lBQ3hFLG9FQUFvRTtZQUNwRSxVQUFVLEVBQUUscUJBQXFCO1NBQ2xDLENBQ0osQ0FBQztJQUVKLENBQUM7SUFFRCw4REFBOEQ7SUFDdkQsdURBQVcsR0FBbEI7UUFFRSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUM7SUFFOUIsQ0FBQztJQUVELE1BQU07SUFDTixrQkFBa0I7SUFDbEIsTUFBTTtJQUVOLHFGQUFxRjtJQUNyRiw4REFBOEQ7SUFDdkQsK0NBQUcsR0FBVixVQUFXLE9BQW9CLEVBQUUsUUFBa0I7UUFFakQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRWxDLENBQUM7SUFFRCw0REFBNEQ7SUFDckQsa0RBQU0sR0FBYixVQUFjLE9BQW9CO1FBRWhDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRXBDLENBQUM7SUE5RFUsaUNBQWlDO1FBSDdDLFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSw0QkFBNEI7U0FDdkMsQ0FBQztPQUNXLGlDQUFpQyxDQWdFN0M7SUFBRCx3Q0FBQztDQUFBLEFBaEVELElBZ0VDO1NBaEVZLGlDQUFpQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEltcG9ydCB0aGUgY29yZSBhbmd1bGFyIHNlcnZpY2VzLlxuaW1wb3J0IHtEaXJlY3RpdmUsIE9uRGVzdHJveX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t2aXNpYmlsaXR5T2JzZXJ2ZXJNYXN0ZXJdJ1xufSlcbmV4cG9ydCBjbGFzcyBWaXNpYmlsaXR5T2JzZXJ2ZXJNYXN0ZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgX21hcHBpbmc6IE1hcDxFbGVtZW50LCBGdW5jdGlvbj47XG4gIHByaXZhdGUgX29ic2VydmVyOiBJbnRlcnNlY3Rpb25PYnNlcnZlcjtcblxuICAvLyBJIGluaXRpYWxpemUgdGhlIGludGVyc2VjdGlvbiBvYnNlcnZlciBwYXJlbnQgZGlyZWN0aXZlLlxuICBjb25zdHJ1Y3RvcigpIHtcblxuICAgIC8vIEFzIGVhY2ggb2JzZXJ2YWJsZSBjaGlsZCBhdHRhY2hlcyBpdHNlbGYgdG8gdGhlIHBhcmVudCBvYnNlcnZlciwgd2UgbmVlZCB0b1xuICAgIC8vIG1hcCBFbGVtZW50cyB0byBDYWxsYmFja3Mgc28gdGhhdCB3aGVuIGFuIEVsZW1lbnQncyBpbnRlcnNlY3Rpb24gY2hhbmdlcyxcbiAgICAvLyB3ZSdsbCBrbm93IHdoaWNoIGNhbGxiYWNrIHRvIGludm9rZS4gRm9yIHRoaXMsIHdlJ2xsIHVzZSBhbiBFUzYgTWFwLlxuICAgIHRoaXMuX21hcHBpbmcgPSBuZXcgTWFwKCk7XG5cbiAgICB0aGlzLl9vYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihcbiAgICAgICAgKGVudHJpZXM6IEludGVyc2VjdGlvbk9ic2VydmVyRW50cnlbXSkgPT4ge1xuXG4gICAgICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG5cbiAgICAgICAgICAgIGNvbnN0IGNhbGxiYWNrID0gdGhpcy5fbWFwcGluZy5nZXQoZW50cnkudGFyZ2V0KTtcbiAgICAgICAgICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICAgICAgICBjYWxsYmFjayhlbnRyeS5pc0ludGVyc2VjdGluZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAvLyBUaGlzIGNsYXNzaWZpZXMgdGhlIFwiaW50ZXJzZWN0aW9uXCIgYXMgYmVpbmcgYSBiaXQgb3V0c2lkZSB0aGVcbiAgICAgICAgICAvLyB2aWV3cG9ydC4gVGhlIGludGVudCBoZXJlIGlzIGdpdmUgdGhlIGVsZW1lbnRzIGEgbGl0dGxlIHRpbWUgdG8gcmVhY3RcbiAgICAgICAgICAvLyB0byB0aGUgY2hhbmdlIGJlZm9yZSB0aGUgZWxlbWVudCBpcyBhY3R1YWxseSB2aXNpYmxlIHRvIHRoZSB1c2VyLlxuICAgICAgICAgIHJvb3RNYXJnaW46ICczMDBweCAwcHggMzAwcHggMHB4J1xuICAgICAgICB9XG4gICAgKTtcblxuICB9XG5cbiAgLy8gSSBnZXQgY2FsbGVkIG9uY2Ugd2hlbiB0aGUgaG9zdCBlbGVtZW50IGlzIGJlaW5nIGRlc3Ryb3llZC5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuXG4gICAgdGhpcy5fbWFwcGluZy5jbGVhcigpO1xuICAgIHRoaXMuX29ic2VydmVyLmRpc2Nvbm5lY3QoKTtcblxuICB9XG5cbiAgLy8gLS0tXG4gIC8vIFBVQkxJQyBNRVRIT0RTLlxuICAvLyAtLS1cblxuICAvLyBJIGFkZCB0aGUgZ2l2ZW4gRWxlbWVudCBmb3IgaW50ZXJzZWN0aW9uIG9ic2VydmF0aW9uLiBXaGVuIHRoZSBpbnRlcnNlY3Rpb24gc3RhdHVzXG4gIC8vIGNoYW5nZXMsIHRoZSBnaXZlbiBjYWxsYmFjayBpcyBpbnZva2VkIHdpdGggdGhlIG5ldyBzdGF0dXMuXG4gIHB1YmxpYyBhZGQoZWxlbWVudDogSFRNTEVsZW1lbnQsIGNhbGxiYWNrOiBGdW5jdGlvbik6IHZvaWQge1xuXG4gICAgdGhpcy5fbWFwcGluZy5zZXQoZWxlbWVudCwgY2FsbGJhY2spO1xuICAgIHRoaXMuX29ic2VydmVyLm9ic2VydmUoZWxlbWVudCk7XG5cbiAgfVxuXG4gIC8vIEkgcmVtb3ZlIHRoZSBnaXZlbiBFbGVtZW50IGZyb20gaW50ZXJzZWN0aW9uIG9ic2VydmF0aW9uLlxuICBwdWJsaWMgcmVtb3ZlKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG5cbiAgICB0aGlzLl9tYXBwaW5nLmRlbGV0ZShlbGVtZW50KTtcbiAgICB0aGlzLl9vYnNlcnZlci51bm9ic2VydmUoZWxlbWVudCk7XG5cbiAgfVxuXG59XG4iXX0=
@@ -0,0 +1,59 @@
1
+ import { __decorate } from "tslib";
2
+ import { Directive, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';
3
+ import { VisibilityObserverMasterDirective } from './visibility-observer-master.directive';
4
+ var VisibilityObserverDirective = /** @class */ (function () {
5
+ // I initialize the intersection observer directive.
6
+ function VisibilityObserverDirective(parent, elementRef) {
7
+ this.observerEnabled = false;
8
+ // These are just some human-friendly constants to make the HTML template a bit more
9
+ // readable when being consumed as part of SWTCH/CASE statements.
10
+ this.IS_INTERSECTING = true;
11
+ this.IS_NOT_INTERSECTING = false;
12
+ this._parent = parent;
13
+ this._elementRef = elementRef;
14
+ // By default, we're going to assume that the host element is NOT intersecting.
15
+ // Then, we'll use the IntersectionObserver to asynchronously check for changes
16
+ // in viewport visibility.
17
+ this.isIntersecting = false;
18
+ }
19
+ // ---
20
+ // PUBLIC METHODS.
21
+ // ---
22
+ // I get called once when the host element is being destroyed.
23
+ VisibilityObserverDirective.prototype.ngOnDestroy = function () {
24
+ this._parent.remove(this._elementRef.nativeElement);
25
+ this._elementRef = undefined;
26
+ };
27
+ // I get called once after the inputs have been bound for the first time.
28
+ VisibilityObserverDirective.prototype.ngOnInit = function () {
29
+ var _this = this;
30
+ // In this demo, instead of using an IntersectionObserver per Element, we're
31
+ // going to use a shared observer in the parent element. However, we're still
32
+ // going to use a CALLBACK style approach so that we're only reducing the number
33
+ // of IntersectionObserver instances, not the number of Function calls.
34
+ if (this.observerEnabled) {
35
+ this._parent.add(this._elementRef.nativeElement, function (isIntersecting) {
36
+ _this.isIntersecting = isIntersecting;
37
+ if (_this.isIntersecting) {
38
+ _this._parent.remove(_this._elementRef.nativeElement);
39
+ }
40
+ });
41
+ }
42
+ };
43
+ VisibilityObserverDirective.ctorParameters = function () { return [
44
+ { type: VisibilityObserverMasterDirective },
45
+ { type: ElementRef }
46
+ ]; };
47
+ __decorate([
48
+ Input()
49
+ ], VisibilityObserverDirective.prototype, "observerEnabled", void 0);
50
+ VisibilityObserverDirective = __decorate([
51
+ Directive({
52
+ selector: '[visibilityObserver]',
53
+ exportAs: 'intersection'
54
+ })
55
+ ], VisibilityObserverDirective);
56
+ return VisibilityObserverDirective;
57
+ }());
58
+ export { VisibilityObserverDirective };
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaWJpbGl0eS1vYnNlcnZlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29saWpuaXQvY29uZmlndXJhdG9yLyIsInNvdXJjZXMiOlsiYXBwL2RpcmVjdGl2ZXMvdmlzaWJpbGl0eS1vYnNlcnZlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDcEcsT0FBTyxFQUFDLGlDQUFpQyxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFNekY7SUFjRSxvREFBb0Q7SUFDcEQscUNBQ0ksTUFBeUMsRUFDekMsVUFBc0I7UUFkbkIsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFHeEMsb0ZBQW9GO1FBQ3BGLGlFQUFpRTtRQUMxRCxvQkFBZSxHQUFZLElBQUksQ0FBQztRQUNoQyx3QkFBbUIsR0FBWSxLQUFLLENBQUM7UUFXMUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7UUFFOUIsK0VBQStFO1FBQy9FLCtFQUErRTtRQUMvRSwwQkFBMEI7UUFDMUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7SUFFOUIsQ0FBQztJQUVELE1BQU07SUFDTixrQkFBa0I7SUFDbEIsTUFBTTtJQUVOLDhEQUE4RDtJQUN2RCxpREFBVyxHQUFsQjtRQUVFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUM7SUFFL0IsQ0FBQztJQUdELHlFQUF5RTtJQUNsRSw4Q0FBUSxHQUFmO1FBQUEsaUJBb0JDO1FBbEJDLDRFQUE0RTtRQUM1RSw2RUFBNkU7UUFDN0UsZ0ZBQWdGO1FBQ2hGLHVFQUF1RTtRQUN2RSxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQ1osSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQzlCLFVBQUMsY0FBdUI7Z0JBRXRCLEtBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO2dCQUNyQyxJQUFJLEtBQUksQ0FBQyxjQUFjLEVBQUU7b0JBQ3ZCLEtBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7aUJBQ3JEO1lBRUgsQ0FBQyxDQUNKLENBQUM7U0FDSDtJQUVILENBQUM7O2dCQWhEVyxpQ0FBaUM7Z0JBQzdCLFVBQVU7O0lBZDFCO1FBREMsS0FBSyxFQUFFO3dFQUNnQztJQUg3QiwyQkFBMkI7UUFKdkMsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLHNCQUFzQjtZQUNoQyxRQUFRLEVBQUUsY0FBYztTQUN6QixDQUFDO09BQ1csMkJBQTJCLENBa0V2QztJQUFELGtDQUFDO0NBQUEsQUFsRUQsSUFrRUM7U0FsRVksMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtWaXNpYmlsaXR5T2JzZXJ2ZXJNYXN0ZXJEaXJlY3RpdmV9IGZyb20gJy4vdmlzaWJpbGl0eS1vYnNlcnZlci1tYXN0ZXIuZGlyZWN0aXZlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3Zpc2liaWxpdHlPYnNlcnZlcl0nLFxuICBleHBvcnRBczogJ2ludGVyc2VjdGlvbidcbn0pXG5leHBvcnQgY2xhc3MgVmlzaWJpbGl0eU9ic2VydmVyRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQge1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvYnNlcnZlckVuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgaXNJbnRlcnNlY3Rpbmc6IGJvb2xlYW47XG4gIC8vIFRoZXNlIGFyZSBqdXN0IHNvbWUgaHVtYW4tZnJpZW5kbHkgY29uc3RhbnRzIHRvIG1ha2UgdGhlIEhUTUwgdGVtcGxhdGUgYSBiaXQgbW9yZVxuICAvLyByZWFkYWJsZSB3aGVuIGJlaW5nIGNvbnN1bWVkIGFzIHBhcnQgb2YgU1dUQ0gvQ0FTRSBzdGF0ZW1lbnRzLlxuICBwdWJsaWMgSVNfSU5URVJTRUNUSU5HOiBib29sZWFuID0gdHJ1ZTtcbiAgcHVibGljIElTX05PVF9JTlRFUlNFQ1RJTkc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmO1xuICBwcml2YXRlIF9wYXJlbnQ6IFZpc2liaWxpdHlPYnNlcnZlck1hc3RlckRpcmVjdGl2ZTtcblxuICAvLyBJIGluaXRpYWxpemUgdGhlIGludGVyc2VjdGlvbiBvYnNlcnZlciBkaXJlY3RpdmUuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcGFyZW50OiBWaXNpYmlsaXR5T2JzZXJ2ZXJNYXN0ZXJEaXJlY3RpdmUsXG4gICAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmXG4gICkge1xuXG4gICAgdGhpcy5fcGFyZW50ID0gcGFyZW50O1xuICAgIHRoaXMuX2VsZW1lbnRSZWYgPSBlbGVtZW50UmVmO1xuXG4gICAgLy8gQnkgZGVmYXVsdCwgd2UncmUgZ29pbmcgdG8gYXNzdW1lIHRoYXQgdGhlIGhvc3QgZWxlbWVudCBpcyBOT1QgaW50ZXJzZWN0aW5nLlxuICAgIC8vIFRoZW4sIHdlJ2xsIHVzZSB0aGUgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgdG8gYXN5bmNocm9ub3VzbHkgY2hlY2sgZm9yIGNoYW5nZXNcbiAgICAvLyBpbiB2aWV3cG9ydCB2aXNpYmlsaXR5LlxuICAgIHRoaXMuaXNJbnRlcnNlY3RpbmcgPSBmYWxzZTtcblxuICB9XG5cbiAgLy8gLS0tXG4gIC8vIFBVQkxJQyBNRVRIT0RTLlxuICAvLyAtLS1cblxuICAvLyBJIGdldCBjYWxsZWQgb25jZSB3aGVuIHRoZSBob3N0IGVsZW1lbnQgaXMgYmVpbmcgZGVzdHJveWVkLlxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG5cbiAgICB0aGlzLl9wYXJlbnQucmVtb3ZlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgdGhpcy5fZWxlbWVudFJlZiA9IHVuZGVmaW5lZDtcblxuICB9XG5cblxuICAvLyBJIGdldCBjYWxsZWQgb25jZSBhZnRlciB0aGUgaW5wdXRzIGhhdmUgYmVlbiBib3VuZCBmb3IgdGhlIGZpcnN0IHRpbWUuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcblxuICAgIC8vIEluIHRoaXMgZGVtbywgaW5zdGVhZCBvZiB1c2luZyBhbiBJbnRlcnNlY3Rpb25PYnNlcnZlciBwZXIgRWxlbWVudCwgd2UncmVcbiAgICAvLyBnb2luZyB0byB1c2UgYSBzaGFyZWQgb2JzZXJ2ZXIgaW4gdGhlIHBhcmVudCBlbGVtZW50LiBIb3dldmVyLCB3ZSdyZSBzdGlsbFxuICAgIC8vIGdvaW5nIHRvIHVzZSBhIENBTExCQUNLIHN0eWxlIGFwcHJvYWNoIHNvIHRoYXQgd2UncmUgb25seSByZWR1Y2luZyB0aGUgbnVtYmVyXG4gICAgLy8gb2YgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgaW5zdGFuY2VzLCBub3QgdGhlIG51bWJlciBvZiBGdW5jdGlvbiBjYWxscy5cbiAgICBpZiAodGhpcy5vYnNlcnZlckVuYWJsZWQpIHtcbiAgICAgIHRoaXMuX3BhcmVudC5hZGQoXG4gICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgIChpc0ludGVyc2VjdGluZzogYm9vbGVhbikgPT4ge1xuXG4gICAgICAgICAgICB0aGlzLmlzSW50ZXJzZWN0aW5nID0gaXNJbnRlcnNlY3Rpbmc7XG4gICAgICAgICAgICBpZiAodGhpcy5pc0ludGVyc2VjdGluZykge1xuICAgICAgICAgICAgICB0aGlzLl9wYXJlbnQucmVtb3ZlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICB9XG4gICAgICApO1xuICAgIH1cblxuICB9XG5cbn1cbiJdfQ==