@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,69 @@
1
+ import { __awaiter, __decorate } 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
+ let AnswerComponent = class AnswerComponent {
6
+ constructor(_imageCacheService) {
7
+ this._imageCacheService = _imageCacheService;
8
+ }
9
+ set showing(value) {
10
+ this.answer.imageData = '';
11
+ if (value && this.answer.answer !== 'Skip / Cancel') {
12
+ this._loadThumbnail(this.answer);
13
+ }
14
+ else {
15
+ this.answer.imageData = null;
16
+ }
17
+ }
18
+ ngOnInit() {
19
+ }
20
+ _loadThumbnail(answer) {
21
+ return __awaiter(this, void 0, void 0, function* () {
22
+ yield this._imageCacheService.getImageForSelectionOrAnswer(answer).then((imageSrc) => {
23
+ answer.imageData = imageSrc === "" ? null : imageSrc;
24
+ });
25
+ });
26
+ }
27
+ };
28
+ AnswerComponent.ctorParameters = () => [
29
+ { type: ImageCacheService }
30
+ ];
31
+ __decorate([
32
+ Input()
33
+ ], AnswerComponent.prototype, "answer", void 0);
34
+ __decorate([
35
+ Input()
36
+ ], AnswerComponent.prototype, "showing", null);
37
+ AnswerComponent = __decorate([
38
+ Component({
39
+ selector: 'answer',
40
+ template: `
41
+ <div class="ione-configurator">
42
+ <div class="answer-wrapper">
43
+ <div class="answer-content" @answerAppear>
44
+ <div class="answer-thumbnail">
45
+ <rp-loader *ngIf="answer.imageData === ''"></rp-loader>
46
+ <img *ngIf="answer.imageData !== '' && answer.imageData !== null" class="answer-img" [src]="answer.imageData">
47
+ </div>
48
+ <div class="answer-title-wrapper">
49
+ <span class="answer-title" [textContent]="answer.commercialAnswer"></span>
50
+ </div>
51
+ <div class="price">
52
+ <span class="price-value"></span>
53
+ </div>
54
+ </div>
55
+ </div>
56
+ </div>
57
+ `,
58
+ animations: [
59
+ trigger('answerAppear', [
60
+ state('void', style({ 'background': '#dbdbdb' })),
61
+ state('white', style({ 'background': 'white' })),
62
+ transition('void <=> *', animate(500))
63
+ ])
64
+ ],
65
+ 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}"]
66
+ })
67
+ ], AnswerComponent);
68
+ export { AnswerComponent };
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5zd2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb2xpam5pdC9jb25maWd1cmF0b3IvIiwic291cmNlcyI6WyJhcHAvY29tcG9uZW50cy9hbnN3ZXJzL2Fuc3dlci9hbnN3ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUV4RSxPQUFPLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBaUMvRSxJQUFhLGVBQWUsR0FBNUIsTUFBYSxlQUFlO0lBYzFCLFlBQW9CLGtCQUFxQztRQUFyQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO0lBQUksQ0FBQztJQVQ5RCxJQUFXLE9BQU8sQ0FBQyxLQUFjO1FBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUMzQixJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxlQUFlLEVBQUU7WUFDbkQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDbEM7YUFBTTtZQUNMLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztTQUM5QjtJQUNILENBQUM7SUFJTSxRQUFRO0lBQ2YsQ0FBQztJQUVhLGNBQWMsQ0FBQyxNQUFjOztZQUN6QyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyw0QkFBNEIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFnQixFQUFFLEVBQUU7Z0JBQzNGLE1BQU0sQ0FBQyxTQUFTLEdBQUcsUUFBUSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7WUFDdkQsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0tBQUE7Q0FDRixDQUFBOztZQVZ5QyxpQkFBaUI7O0FBWnpEO0lBREMsS0FBSyxFQUFFOytDQUNjO0FBR3RCO0lBREMsS0FBSyxFQUFFOzhDQVFQO0FBWlUsZUFBZTtJQS9CM0IsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLFFBQVE7UUFDbEIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCVDtRQUlELFVBQVUsRUFBRTtZQUNWLE9BQU8sQ0FBQyxjQUFjLEVBQUU7Z0JBQ3RCLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUMsWUFBWSxFQUFFLFNBQVMsRUFBQyxDQUFDLENBQUM7Z0JBQy9DLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQUMsWUFBWSxFQUFFLE9BQU8sRUFBQyxDQUFDLENBQUM7Z0JBQzlDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3ZDLENBQUM7U0FDSDs7S0FDRixDQUFDO0dBQ1csZUFBZSxDQXdCM0I7U0F4QlksZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SW1hZ2VDYWNoZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ltYWdlLWNhY2hlLnNlcnZpY2UnO1xuaW1wb3J0IHtBbnN3ZXJ9IGZyb20gJ0Bjb2xpam5pdC9jb25maWd1cmF0b3JhcGkvYnVpbGQvbW9kZWwvYW5zd2VyJztcbmltcG9ydCB7YW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYW5zd2VyJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiaW9uZS1jb25maWd1cmF0b3JcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJhbnN3ZXItd3JhcHBlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYW5zd2VyLWNvbnRlbnRcIiBAYW5zd2VyQXBwZWFyPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbnN3ZXItdGh1bWJuYWlsXCI+XG4gICAgICAgICAgICA8cnAtbG9hZGVyICpuZ0lmPVwiYW5zd2VyLmltYWdlRGF0YSA9PT0gJydcIj48L3JwLWxvYWRlcj5cbiAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJhbnN3ZXIuaW1hZ2VEYXRhICE9PSAnJyAmJiBhbnN3ZXIuaW1hZ2VEYXRhICE9PSBudWxsXCIgY2xhc3M9XCJhbnN3ZXItaW1nXCIgW3NyY109XCJhbnN3ZXIuaW1hZ2VEYXRhXCI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFuc3dlci10aXRsZS13cmFwcGVyXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFuc3dlci10aXRsZVwiIFt0ZXh0Q29udGVudF09XCJhbnN3ZXIuY29tbWVyY2lhbEFuc3dlclwiPjwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2VcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHJpY2UtdmFsdWVcIj48L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogW1xuICAgICcuLi8uLi8uLi8uLi9zdHlsZS9zaGFyZWQuc2NzcydcbiAgXSxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ2Fuc3dlckFwcGVhcicsIFtcbiAgICAgIHN0YXRlKCd2b2lkJywgc3R5bGUoeydiYWNrZ3JvdW5kJzogJyNkYmRiZGInfSkpLFxuICAgICAgc3RhdGUoJ3doaXRlJywgc3R5bGUoeydiYWNrZ3JvdW5kJzogJ3doaXRlJ30pKSxcbiAgICAgIHRyYW5zaXRpb24oJ3ZvaWQgPD0+IConLCBhbmltYXRlKDUwMCkpXG4gICAgXSlcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBBbnN3ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKVxuICBwdWJsaWMgYW5zd2VyOiBBbnN3ZXI7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzaG93aW5nKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5hbnN3ZXIuaW1hZ2VEYXRhID0gJyc7XG4gICAgaWYgKHZhbHVlICYmIHRoaXMuYW5zd2VyLmFuc3dlciAhPT0gJ1NraXAgLyBDYW5jZWwnKSB7XG4gICAgICB0aGlzLl9sb2FkVGh1bWJuYWlsKHRoaXMuYW5zd2VyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hbnN3ZXIuaW1hZ2VEYXRhID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9pbWFnZUNhY2hlU2VydmljZTogSW1hZ2VDYWNoZVNlcnZpY2UpIHsgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2xvYWRUaHVtYm5haWwoYW5zd2VyOiBBbnN3ZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLl9pbWFnZUNhY2hlU2VydmljZS5nZXRJbWFnZUZvclNlbGVjdGlvbk9yQW5zd2VyKGFuc3dlcikudGhlbigoaW1hZ2VTcmM6IHN0cmluZykgPT4ge1xuICAgICAgYW5zd2VyLmltYWdlRGF0YSA9IGltYWdlU3JjID09PSBcIlwiID8gbnVsbCA6IGltYWdlU3JjO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,43 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
3
+ let AnswersComponent = class AnswersComponent {
4
+ constructor() {
5
+ this.answers = [];
6
+ this.answerClick = new EventEmitter();
7
+ }
8
+ };
9
+ __decorate([
10
+ Input()
11
+ ], AnswersComponent.prototype, "answers", void 0);
12
+ __decorate([
13
+ Input()
14
+ ], AnswersComponent.prototype, "selectionTitle", void 0);
15
+ __decorate([
16
+ Output()
17
+ ], AnswersComponent.prototype, "answerClick", void 0);
18
+ AnswersComponent = __decorate([
19
+ Component({
20
+ selector: "answers",
21
+ template: `
22
+ <div class="ione-configurator">
23
+ <div class="rp-answers-slideout">
24
+ <h2 class="answers-title" [textContent]="selectionTitle"></h2>
25
+ <div class="answers-container" visibilityObserverMaster>
26
+ <answer *ngFor="let answer of answers"
27
+ (click)="answerClick.emit(answer)"
28
+ [answer]="answer"
29
+ visibilityObserver
30
+ #intersection="intersection"
31
+ [observerEnabled]="true"
32
+ [showing]="intersection.isIntersecting"
33
+ ></answer>
34
+ </div>
35
+
36
+ </div>
37
+ </div>
38
+ `,
39
+ 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}"]
40
+ })
41
+ ], AnswersComponent);
42
+ export { AnswersComponent };
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5zd2Vycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29saWpuaXQvY29uZmlndXJhdG9yLyIsInNvdXJjZXMiOlsiYXBwL2NvbXBvbmVudHMvYW5zd2Vycy9hbnN3ZXJzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQTRCckUsSUFBYSxnQkFBZ0IsR0FBN0IsTUFBYSxnQkFBZ0I7SUFVekI7UUFSTyxZQUFPLEdBQWEsRUFBRSxDQUFDO1FBTXZCLGdCQUFXLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7SUFFdkQsQ0FBQztDQUVuQixDQUFBO0FBVkc7SUFEQyxLQUFLLEVBQUU7aURBQ3NCO0FBRzlCO0lBREMsS0FBSyxFQUFFO3dEQUNzQjtBQUc5QjtJQURDLE1BQU0sRUFBRTtxREFDNkQ7QUFSN0QsZ0JBQWdCO0lBekI1QixTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsU0FBUztRQUNuQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBaUJUOztLQUlKLENBQUM7R0FFVyxnQkFBZ0IsQ0FZNUI7U0FaWSxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtBbnN3ZXJ9IGZyb20gXCJAY29saWpuaXQvY29uZmlndXJhdG9yYXBpL2J1aWxkL21vZGVsL2Fuc3dlclwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJhbnN3ZXJzXCIsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpb25lLWNvbmZpZ3VyYXRvclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicnAtYW5zd2Vycy1zbGlkZW91dFwiPlxyXG4gICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwiYW5zd2Vycy10aXRsZVwiIFt0ZXh0Q29udGVudF09XCJzZWxlY3Rpb25UaXRsZVwiPjwvaDI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYW5zd2Vycy1jb250YWluZXJcIiB2aXNpYmlsaXR5T2JzZXJ2ZXJNYXN0ZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGFuc3dlciAqbmdGb3I9XCJsZXQgYW5zd2VyIG9mIGFuc3dlcnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFuc3dlckNsaWNrLmVtaXQoYW5zd2VyKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYW5zd2VyXT1cImFuc3dlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5T2JzZXJ2ZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICNpbnRlcnNlY3Rpb249XCJpbnRlcnNlY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW29ic2VydmVyRW5hYmxlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93aW5nXT1cImludGVyc2VjdGlvbi5pc0ludGVyc2VjdGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvYW5zd2VyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICBgLFxyXG4gICAgc3R5bGVVcmxzOiBbXHJcbiAgICAgICAgJy4uLy4uLy4uL3N0eWxlL3NoYXJlZC5zY3NzJ1xyXG4gICAgXVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEFuc3dlcnNDb21wb25lbnQge1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBhbnN3ZXJzOiBBbnN3ZXJbXSA9IFtdO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2VsZWN0aW9uVGl0bGU6IHN0cmluZztcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBhbnN3ZXJDbGljazogRXZlbnRFbWl0dGVyPEFuc3dlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPEFuc3dlcj4oKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG59XHJcbiJdfQ==
@@ -0,0 +1,29 @@
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
+ let AnswersModule = class AnswersModule {
10
+ };
11
+ AnswersModule = __decorate([
12
+ NgModule({
13
+ imports: [
14
+ CommonModule,
15
+ SharedModule
16
+ ],
17
+ declarations: [
18
+ AnswersComponent,
19
+ AnswerComponent,
20
+ VisibilityObserverDirective,
21
+ VisibilityObserverMasterDirective
22
+ ],
23
+ exports: [
24
+ AnswersComponent
25
+ ]
26
+ })
27
+ ], AnswersModule);
28
+ export { AnswersModule };
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5zd2Vycy5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29saWpuaXQvY29uZmlndXJhdG9yLyIsInNvdXJjZXMiOlsiYXBwL2NvbXBvbmVudHMvYW5zd2Vycy9hbnN3ZXJzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQzNGLE9BQU8sRUFBQyxpQ0FBaUMsRUFBQyxNQUFNLHVEQUF1RCxDQUFDO0FBQ3hHLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQWlCckQsSUFBYSxhQUFhLEdBQTFCLE1BQWEsYUFBYTtDQUV6QixDQUFBO0FBRlksYUFBYTtJQWZ6QixRQUFRLENBQUM7UUFDTixPQUFPLEVBQUU7WUFDTCxZQUFZO1lBQ1osWUFBWTtTQUNmO1FBQ0QsWUFBWSxFQUFFO1lBQ1YsZ0JBQWdCO1lBQ2hCLGVBQWU7WUFDZiwyQkFBMkI7WUFDM0IsaUNBQWlDO1NBQ3BDO1FBQ0QsT0FBTyxFQUFFO1lBQ0wsZ0JBQWdCO1NBQ25CO0tBQ0osQ0FBQztHQUNXLGFBQWEsQ0FFekI7U0FGWSxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtBbnN3ZXJzQ29tcG9uZW50fSBmcm9tIFwiLi9hbnN3ZXJzLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBBbnN3ZXJDb21wb25lbnQgfSBmcm9tICcuL2Fuc3dlci9hbnN3ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHtWaXNpYmlsaXR5T2JzZXJ2ZXJEaXJlY3RpdmV9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvdmlzaWJpbGl0eS1vYnNlcnZlci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQge1Zpc2liaWxpdHlPYnNlcnZlck1hc3RlckRpcmVjdGl2ZX0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy92aXNpYmlsaXR5LW9ic2VydmVyLW1hc3Rlci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQge1NoYXJlZE1vZHVsZX0gZnJvbSAnLi4vc2hhcmVkL3NoYXJlZC5tb2R1bGUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgICAgU2hhcmVkTW9kdWxlXHJcbiAgICBdLFxyXG4gICAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICAgICAgQW5zd2Vyc0NvbXBvbmVudCxcclxuICAgICAgICBBbnN3ZXJDb21wb25lbnQsXHJcbiAgICAgICAgVmlzaWJpbGl0eU9ic2VydmVyRGlyZWN0aXZlLFxyXG4gICAgICAgIFZpc2liaWxpdHlPYnNlcnZlck1hc3RlckRpcmVjdGl2ZVxyXG4gICAgXSxcclxuICAgIGV4cG9ydHM6IFtcclxuICAgICAgICBBbnN3ZXJzQ29tcG9uZW50XHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBbnN3ZXJzTW9kdWxlIHtcclxuXHJcbn1cclxuIl19
@@ -0,0 +1,134 @@
1
+ import { __awaiter, __decorate } 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
+ class SelectionViewModel {
6
+ constructor() {
7
+ this.children = [];
8
+ this.expanded = false;
9
+ this.thumbnail = '';
10
+ }
11
+ }
12
+ let SelectionsComponent = class SelectionsComponent {
13
+ constructor(_imageCacheService) {
14
+ this._imageCacheService = _imageCacheService;
15
+ this.selectionViewModels = [];
16
+ this.selectionClick = new EventEmitter();
17
+ }
18
+ set selections(value) {
19
+ this._prepareSelections(value);
20
+ this._loadThumbnails();
21
+ }
22
+ ngOnInit() {
23
+ }
24
+ expandClicked(selectionViewModel, mouseEvent) {
25
+ mouseEvent.preventDefault();
26
+ mouseEvent.stopImmediatePropagation();
27
+ selectionViewModel.expanded = !selectionViewModel.expanded;
28
+ }
29
+ selectSelection(selection, mouseEvent) {
30
+ mouseEvent.preventDefault();
31
+ mouseEvent.stopImmediatePropagation();
32
+ this.selectionClick.next(selection);
33
+ }
34
+ _loadThumbnails() {
35
+ return __awaiter(this, void 0, void 0, function* () {
36
+ if (this.selectionViewModels.length > 0) {
37
+ this.selectionViewModels.forEach((viewModel) => __awaiter(this, void 0, void 0, function* () {
38
+ yield this._imageCacheService.getImageForSelectionOrAnswer(viewModel.selection).then((imageSrc) => {
39
+ viewModel.thumbnail = imageSrc === "" ? null : imageSrc;
40
+ });
41
+ }));
42
+ }
43
+ });
44
+ }
45
+ _prepareSelections(value) {
46
+ this.selectionViewModels.length = 0;
47
+ let selectionViewModel;
48
+ value.forEach(s => {
49
+ if (s.presentationLevel === 1) {
50
+ selectionViewModel = new SelectionViewModel();
51
+ selectionViewModel.selection = s;
52
+ this.selectionViewModels.push(selectionViewModel);
53
+ }
54
+ else if (s.presentationLevel > 1) {
55
+ if (selectionViewModel) {
56
+ selectionViewModel.children.push(s);
57
+ }
58
+ }
59
+ });
60
+ }
61
+ };
62
+ SelectionsComponent.ctorParameters = () => [
63
+ { type: ImageCacheService }
64
+ ];
65
+ __decorate([
66
+ Input()
67
+ ], SelectionsComponent.prototype, "selections", null);
68
+ __decorate([
69
+ Output()
70
+ ], SelectionsComponent.prototype, "selectionClick", void 0);
71
+ SelectionsComponent = __decorate([
72
+ Component({
73
+ selector: "selections",
74
+ template: `
75
+ <div class="ione-configurator">
76
+ <div class="rp-selections-summary">
77
+ <header class="drawer__header">
78
+ <h2 class="mat-title" [textContent]="'Configuratie'"></h2>
79
+ <!--<button>-->
80
+ <!---->
81
+ <!--</button>-->
82
+ </header>
83
+ <div class="selections-content">
84
+ <ng-container *ngFor="let selectionViewModel of selectionViewModels">
85
+
86
+ <div class="co-summary-line" (click)="selectSelection(selectionViewModel.selection, $event)">
87
+ <div class="selection-thumbnail">
88
+ <rp-loader *ngIf="selectionViewModel.thumbnail === ''"></rp-loader>
89
+ <img visibilityObserver *ngIf="selectionViewModel.thumbnail !== '' && selectionViewModel.thumbnail !== null" class="selection-img" [src]="selectionViewModel.thumbnail">
90
+ </div>
91
+ <div class="titles">
92
+ <div class="title-wrapper">
93
+ <label class="question" [textContent]="selectionViewModel.selection.question"></label>
94
+ <span class="answer" [textContent]="selectionViewModel.selection.answer"></span>
95
+ <div *ngIf="selectionViewModel.children.length > 0 && selectionViewModel.expanded" @showHideChildren>
96
+ <div class="child-selection" *ngFor="let selection of selectionViewModel.children"
97
+ (click)="selectSelection(selection, $event)"
98
+ >
99
+ <label class="question" [textContent]="selection.commercialQuestion"></label>
100
+ <span class="answer" [textContent]="selection.answer"></span>
101
+ </div>
102
+ </div>
103
+ </div>
104
+ </div>
105
+
106
+ <div class="price-wrapper">
107
+ <span class="price-value"></span>
108
+ </div>
109
+
110
+ <div class="collapse-wrapper">
111
+ <div class="collapse-content">
112
+ <div class="collapse-handle" [class.expanded]="selectionViewModel.expanded"
113
+ *ngIf="selectionViewModel.children.length > 0" (click)="expandClicked(selectionViewModel, $event)"></div>
114
+ </div>
115
+ </div>
116
+ </div>
117
+
118
+ </ng-container>
119
+ </div>
120
+ </div>
121
+ </div>
122
+ `,
123
+ animations: [
124
+ trigger('showHideChildren', [
125
+ state('void', style({ 'height': '0' })),
126
+ state('*', style({ 'height': '*' })),
127
+ transition('void <=> *', animate(200))
128
+ ])
129
+ ],
130
+ 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}"]
131
+ })
132
+ ], SelectionsComponent);
133
+ export { SelectionsComponent };
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29saWpuaXQvY29uZmlndXJhdG9yLyIsInNvdXJjZXMiOlsiYXBwL2NvbXBvbmVudHMvc2VsZWN0aW9ucy9zZWxlY3Rpb25zLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU3RSxPQUFPLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQy9FLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBRXJFLE1BQU0sa0JBQWtCO0lBQXhCO1FBRVcsYUFBUSxHQUFnQixFQUFFLENBQUM7UUFDM0IsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixjQUFTLEdBQVcsRUFBRSxDQUFDO0lBQ2xDLENBQUM7Q0FBQTtBQWlFRCxJQUFhLG1CQUFtQixHQUFoQyxNQUFhLG1CQUFtQjtJQVk1QixZQUFvQixrQkFBcUM7UUFBckMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUxsRCx3QkFBbUIsR0FBeUIsRUFBRSxDQUFDO1FBRy9DLG1CQUFjLEdBQTRCLElBQUksWUFBWSxFQUFhLENBQUM7SUFFbkIsQ0FBQztJQVY3RCxJQUFXLFVBQVUsQ0FBQyxLQUFrQjtRQUNwQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFTTSxRQUFRO0lBRWYsQ0FBQztJQUVNLGFBQWEsQ0FBQyxrQkFBc0MsRUFBRSxVQUFzQjtRQUMvRSxVQUFVLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDNUIsVUFBVSxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFDdEMsa0JBQWtCLENBQUMsUUFBUSxHQUFHLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDO0lBQy9ELENBQUM7SUFFTSxlQUFlLENBQUMsU0FBb0IsRUFBRSxVQUFzQjtRQUMvRCxVQUFVLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDNUIsVUFBVSxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFDdEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVhLGVBQWU7O1lBQ3pCLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ3JDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBTyxTQUE2QixFQUFFLEVBQUU7b0JBQ3JFLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLDRCQUE0QixDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFnQixFQUFFLEVBQUU7d0JBQ3RHLFNBQVMsQ0FBQyxTQUFTLEdBQUcsUUFBUSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7b0JBQzVELENBQUMsQ0FBQyxDQUFDO2dCQUNQLENBQUMsQ0FBQSxDQUFDLENBQUM7YUFDTjtRQUNMLENBQUM7S0FBQTtJQUVPLGtCQUFrQixDQUFDLEtBQWtCO1FBQ3pDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLElBQUksa0JBQXNDLENBQUM7UUFDM0MsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNkLElBQUksQ0FBQyxDQUFDLGlCQUFpQixLQUFLLENBQUMsRUFBRTtnQkFDM0Isa0JBQWtCLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO2dCQUM5QyxrQkFBa0IsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO2dCQUNqQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7YUFDckQ7aUJBQU0sSUFBSSxDQUFDLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxFQUFFO2dCQUNoQyxJQUFJLGtCQUFrQixFQUFFO29CQUNwQixrQkFBa0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUN2QzthQUNKO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0osQ0FBQTs7WUEzQzJDLGlCQUFpQjs7QUFWekQ7SUFEQyxLQUFLLEVBQUU7cURBSVA7QUFLRDtJQURDLE1BQU0sRUFBRTsyREFDc0U7QUFWdEUsbUJBQW1CO0lBL0QvQixTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsWUFBWTtRQUN0QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQWdEVDtRQUlELFVBQVUsRUFBRTtZQUNSLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRTtnQkFDeEIsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBQyxRQUFRLEVBQUUsR0FBRyxFQUFDLENBQUMsQ0FBQztnQkFDckMsS0FBSyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBQyxRQUFRLEVBQUUsR0FBRyxFQUFDLENBQUMsQ0FBQztnQkFDbEMsVUFBVSxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDekMsQ0FBQztTQUNMOztLQUNKLENBQUM7R0FFVyxtQkFBbUIsQ0F1RC9CO1NBdkRZLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7U2VsZWN0aW9ufSBmcm9tIFwiQGNvbGlqbml0L2NvbmZpZ3VyYXRvcmFwaS9idWlsZC9tb2RlbC9zZWxlY3Rpb25cIjtcclxuaW1wb3J0IHthbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXJ9IGZyb20gXCJAYW5ndWxhci9hbmltYXRpb25zXCI7XHJcbmltcG9ydCB7SW1hZ2VDYWNoZVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ltYWdlLWNhY2hlLnNlcnZpY2UnO1xyXG5cclxuY2xhc3MgU2VsZWN0aW9uVmlld01vZGVsIHtcclxuICAgIHB1YmxpYyBzZWxlY3Rpb246IFNlbGVjdGlvbjtcclxuICAgIHB1YmxpYyBjaGlsZHJlbjogU2VsZWN0aW9uW10gPSBbXTtcclxuICAgIHB1YmxpYyBleHBhbmRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIHRodW1ibmFpbDogc3RyaW5nID0gJyc7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwic2VsZWN0aW9uc1wiLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW9uZS1jb25maWd1cmF0b3JcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJwLXNlbGVjdGlvbnMtc3VtbWFyeVwiPlxyXG4gICAgICAgICAgICAgICAgPGhlYWRlciBjbGFzcz1cImRyYXdlcl9faGVhZGVyXCI+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,23 @@
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
+ let SelectionsModule = class SelectionsModule {
7
+ };
8
+ SelectionsModule = __decorate([
9
+ NgModule({
10
+ imports: [
11
+ CommonModule,
12
+ SharedModule
13
+ ],
14
+ declarations: [
15
+ SelectionsComponent
16
+ ],
17
+ exports: [
18
+ SelectionsComponent
19
+ ]
20
+ })
21
+ ], SelectionsModule);
22
+ export { SelectionsModule };
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9ucy5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29saWpuaXQvY29uZmlndXJhdG9yLyIsInNvdXJjZXMiOlsiYXBwL2NvbXBvbmVudHMvc2VsZWN0aW9ucy9zZWxlY3Rpb25zLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBY3JELElBQWEsZ0JBQWdCLEdBQTdCLE1BQWEsZ0JBQWdCO0NBRTVCLENBQUE7QUFGWSxnQkFBZ0I7SUFaNUIsUUFBUSxDQUFDO1FBQ04sT0FBTyxFQUFFO1lBQ0wsWUFBWTtZQUNaLFlBQVk7U0FDZjtRQUNELFlBQVksRUFBRTtZQUNWLG1CQUFtQjtTQUN0QjtRQUNELE9BQU8sRUFBRTtZQUNMLG1CQUFtQjtTQUN0QjtLQUNKLENBQUM7R0FDVyxnQkFBZ0IsQ0FFNUI7U0FGWSxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQge1NlbGVjdGlvbnNDb21wb25lbnR9IGZyb20gXCIuL3NlbGVjdGlvbnMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7U2hhcmVkTW9kdWxlfSBmcm9tICcuLi9zaGFyZWQvc2hhcmVkLm1vZHVsZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZSxcclxuICAgICAgICBTaGFyZWRNb2R1bGVcclxuICAgIF0sXHJcbiAgICBkZWNsYXJhdGlvbnM6IFtcclxuICAgICAgICBTZWxlY3Rpb25zQ29tcG9uZW50XHJcbiAgICBdLFxyXG4gICAgZXhwb3J0czogW1xyXG4gICAgICAgIFNlbGVjdGlvbnNDb21wb25lbnRcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNlbGVjdGlvbnNNb2R1bGUge1xyXG5cclxufVxyXG4iXX0=
@@ -0,0 +1,24 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component } from '@angular/core';
3
+ let LoaderComponent = class LoaderComponent {
4
+ };
5
+ LoaderComponent = __decorate([
6
+ Component({
7
+ selector: 'rp-loader',
8
+ template: `
9
+ <div class="loader-wrapper">
10
+ <svg xmlns="http://www.w3.org/2000/svg" width="44" height="44" viewBox="0 0 44 44" stroke="#3760a1">
11
+ <g fill="none" fill-rule="evenodd" stroke-width="3">
12
+ <circle class="ripple1" cx="22" cy="22" r="19">
13
+ </circle>
14
+ <circle class="ripple2" cx="22" cy="22" r="19">
15
+ </circle>
16
+ </g>
17
+ </svg>
18
+ </div>
19
+ `,
20
+ 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}}"]
21
+ })
22
+ ], LoaderComponent);
23
+ export { LoaderComponent };
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb2xpam5pdC9jb25maWd1cmF0b3IvIiwic291cmNlcyI6WyJhcHAvY29tcG9uZW50cy9zaGFyZWQvbG9hZGVyL2xvYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFrQnhDLElBQWEsZUFBZSxHQUE1QixNQUFhLGVBQWU7Q0FDM0IsQ0FBQTtBQURZLGVBQWU7SUFoQjNCLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSxXQUFXO1FBQ3JCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7R0FXVDs7S0FFRixDQUFDO0dBQ1csZUFBZSxDQUMzQjtTQURZLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JwLWxvYWRlcicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImxvYWRlci13cmFwcGVyXCI+XG4gICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjQ0XCIgaGVpZ2h0PVwiNDRcIiB2aWV3Qm94PVwiMCAwIDQ0IDQ0XCIgc3Ryb2tlPVwiIzM3NjBhMVwiPlxuICAgICAgICA8ZyBmaWxsPVwibm9uZVwiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBzdHJva2Utd2lkdGg9XCIzXCI+XG4gICAgICAgICAgPGNpcmNsZSBjbGFzcz1cInJpcHBsZTFcIiBjeD1cIjIyXCIgY3k9XCIyMlwiIHI9XCIxOVwiPlxuICAgICAgICAgIDwvY2lyY2xlPlxuICAgICAgICAgIDxjaXJjbGUgY2xhc3M9XCJyaXBwbGUyXCIgY3g9XCIyMlwiIGN5PVwiMjJcIiByPVwiMTlcIj5cbiAgICAgICAgICA8L2NpcmNsZT5cbiAgICAgICAgPC9nPlxuICAgICAgPC9zdmc+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2xvYWRlci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIExvYWRlckNvbXBvbmVudCB7XG59XG4iXX0=
@@ -0,0 +1,21 @@
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
+ let SharedModule = class SharedModule {
6
+ };
7
+ SharedModule = __decorate([
8
+ NgModule({
9
+ imports: [
10
+ CommonModule
11
+ ],
12
+ declarations: [
13
+ LoaderComponent
14
+ ],
15
+ exports: [
16
+ LoaderComponent
17
+ ]
18
+ })
19
+ ], SharedModule);
20
+ export { SharedModule };
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb2xpam5pdC9jb25maWd1cmF0b3IvIiwic291cmNlcyI6WyJhcHAvY29tcG9uZW50cy9zaGFyZWQvc2hhcmVkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBYTFELElBQWEsWUFBWSxHQUF6QixNQUFhLFlBQVk7Q0FBSSxDQUFBO0FBQWhCLFlBQVk7SUFYeEIsUUFBUSxDQUFDO1FBQ1IsT0FBTyxFQUFFO1lBQ1AsWUFBWTtTQUNiO1FBQ0QsWUFBWSxFQUFFO1lBQ1osZUFBZTtTQUNoQjtRQUNELE9BQU8sRUFBRTtZQUNQLGVBQWU7U0FDaEI7S0FDRixDQUFDO0dBQ1csWUFBWSxDQUFJO1NBQWhCLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TG9hZGVyQ29tcG9uZW50fSBmcm9tICcuL2xvYWRlci9sb2FkZXIuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBMb2FkZXJDb21wb25lbnRcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIExvYWRlckNvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFNoYXJlZE1vZHVsZSB7IH1cbiJdfQ==
@@ -0,0 +1,51 @@
1
+ import { __decorate } from "tslib";
2
+ // Import the core angular services.
3
+ import { Directive } from '@angular/core';
4
+ let VisibilityObserverMasterDirective = class VisibilityObserverMasterDirective {
5
+ // I initialize the intersection observer parent directive.
6
+ constructor() {
7
+ // As each observable child attaches itself to the parent observer, we need to
8
+ // map Elements to Callbacks so that when an Element's intersection changes,
9
+ // we'll know which callback to invoke. For this, we'll use an ES6 Map.
10
+ this._mapping = new Map();
11
+ this._observer = new IntersectionObserver((entries) => {
12
+ for (const entry of entries) {
13
+ const callback = this._mapping.get(entry.target);
14
+ if (callback) {
15
+ callback(entry.isIntersecting);
16
+ }
17
+ }
18
+ }, {
19
+ // This classifies the "intersection" as being a bit outside the
20
+ // viewport. The intent here is give the elements a little time to react
21
+ // to the change before the element is actually visible to the user.
22
+ rootMargin: '300px 0px 300px 0px'
23
+ });
24
+ }
25
+ // I get called once when the host element is being destroyed.
26
+ ngOnDestroy() {
27
+ this._mapping.clear();
28
+ this._observer.disconnect();
29
+ }
30
+ // ---
31
+ // PUBLIC METHODS.
32
+ // ---
33
+ // I add the given Element for intersection observation. When the intersection status
34
+ // changes, the given callback is invoked with the new status.
35
+ add(element, callback) {
36
+ this._mapping.set(element, callback);
37
+ this._observer.observe(element);
38
+ }
39
+ // I remove the given Element from intersection observation.
40
+ remove(element) {
41
+ this._mapping.delete(element);
42
+ this._observer.unobserve(element);
43
+ }
44
+ };
45
+ VisibilityObserverMasterDirective = __decorate([
46
+ Directive({
47
+ selector: '[visibilityObserverMaster]'
48
+ })
49
+ ], VisibilityObserverMasterDirective);
50
+ export { VisibilityObserverMasterDirective };
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaWJpbGl0eS1vYnNlcnZlci1tYXN0ZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvbGlqbml0L2NvbmZpZ3VyYXRvci8iLCJzb3VyY2VzIjpbImFwcC9kaXJlY3RpdmVzL3Zpc2liaWxpdHktb2JzZXJ2ZXItbWFzdGVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0NBQW9DO0FBQ3BDLE9BQU8sRUFBQyxTQUFTLEVBQVksTUFBTSxlQUFlLENBQUM7QUFLbkQsSUFBYSxpQ0FBaUMsR0FBOUMsTUFBYSxpQ0FBaUM7SUFLNUMsMkRBQTJEO0lBQzNEO1FBRUUsOEVBQThFO1FBQzlFLDRFQUE0RTtRQUM1RSx1RUFBdUU7UUFDdkUsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRTFCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxvQkFBb0IsQ0FDckMsQ0FBQyxPQUFvQyxFQUFFLEVBQUU7WUFFdkMsS0FBSyxNQUFNLEtBQUssSUFBSSxPQUFPLEVBQUU7Z0JBRTNCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDakQsSUFBSSxRQUFRLEVBQUU7b0JBQ1osUUFBUSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztpQkFDaEM7YUFDRjtRQUVILENBQUMsRUFDRDtZQUNFLGdFQUFnRTtZQUNoRSx3RUFBd0U7WUFDeEUsb0VBQW9FO1lBQ3BFLFVBQVUsRUFBRSxxQkFBcUI7U0FDbEMsQ0FDSixDQUFDO0lBRUosQ0FBQztJQUVELDhEQUE4RDtJQUN2RCxXQUFXO1FBRWhCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUU5QixDQUFDO0lBRUQsTUFBTTtJQUNOLGtCQUFrQjtJQUNsQixNQUFNO0lBRU4scUZBQXFGO0lBQ3JGLDhEQUE4RDtJQUN2RCxHQUFHLENBQUMsT0FBb0IsRUFBRSxRQUFrQjtRQUVqRCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFbEMsQ0FBQztJQUVELDREQUE0RDtJQUNyRCxNQUFNLENBQUMsT0FBb0I7UUFFaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFcEMsQ0FBQztDQUVGLENBQUE7QUFoRVksaUNBQWlDO0lBSDdDLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSw0QkFBNEI7S0FDdkMsQ0FBQztHQUNXLGlDQUFpQyxDQWdFN0M7U0FoRVksaUNBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gSW1wb3J0IHRoZSBjb3JlIGFuZ3VsYXIgc2VydmljZXMuXG5pbXBvcnQge0RpcmVjdGl2ZSwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3Zpc2liaWxpdHlPYnNlcnZlck1hc3Rlcl0nXG59KVxuZXhwb3J0IGNsYXNzIFZpc2liaWxpdHlPYnNlcnZlck1hc3RlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSBfbWFwcGluZzogTWFwPEVsZW1lbnQsIEZ1bmN0aW9uPjtcbiAgcHJpdmF0ZSBfb2JzZXJ2ZXI6IEludGVyc2VjdGlvbk9ic2VydmVyO1xuXG4gIC8vIEkgaW5pdGlhbGl6ZSB0aGUgaW50ZXJzZWN0aW9uIG9ic2VydmVyIHBhcmVudCBkaXJlY3RpdmUuXG4gIGNvbnN0cnVjdG9yKCkge1xuXG4gICAgLy8gQXMgZWFjaCBvYnNlcnZhYmxlIGNoaWxkIGF0dGFjaGVzIGl0c2VsZiB0byB0aGUgcGFyZW50IG9ic2VydmVyLCB3ZSBuZWVkIHRvXG4gICAgLy8gbWFwIEVsZW1lbnRzIHRvIENhbGxiYWNrcyBzbyB0aGF0IHdoZW4gYW4gRWxlbWVudCdzIGludGVyc2VjdGlvbiBjaGFuZ2VzLFxuICAgIC8vIHdlJ2xsIGtub3cgd2hpY2ggY2FsbGJhY2sgdG8gaW52b2tlLiBGb3IgdGhpcywgd2UnbGwgdXNlIGFuIEVTNiBNYXAuXG4gICAgdGhpcy5fbWFwcGluZyA9IG5ldyBNYXAoKTtcblxuICAgIHRoaXMuX29ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKFxuICAgICAgICAoZW50cmllczogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeVtdKSA9PiB7XG5cbiAgICAgICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcblxuICAgICAgICAgICAgY29uc3QgY2FsbGJhY2sgPSB0aGlzLl9tYXBwaW5nLmdldChlbnRyeS50YXJnZXQpO1xuICAgICAgICAgICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICAgICAgICAgIGNhbGxiYWNrKGVudHJ5LmlzSW50ZXJzZWN0aW5nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIC8vIFRoaXMgY2xhc3NpZmllcyB0aGUgXCJpbnRlcnNlY3Rpb25cIiBhcyBiZWluZyBhIGJpdCBvdXRzaWRlIHRoZVxuICAgICAgICAgIC8vIHZpZXdwb3J0LiBUaGUgaW50ZW50IGhlcmUgaXMgZ2l2ZSB0aGUgZWxlbWVudHMgYSBsaXR0bGUgdGltZSB0byByZWFjdFxuICAgICAgICAgIC8vIHRvIHRoZSBjaGFuZ2UgYmVmb3JlIHRoZSBlbGVtZW50IGlzIGFjdHVhbGx5IHZpc2libGUgdG8gdGhlIHVzZXIuXG4gICAgICAgICAgcm9vdE1hcmdpbjogJzMwMHB4IDBweCAzMDBweCAwcHgnXG4gICAgICAgIH1cbiAgICApO1xuXG4gIH1cblxuICAvLyBJIGdldCBjYWxsZWQgb25jZSB3aGVuIHRoZSBob3N0IGVsZW1lbnQgaXMgYmVpbmcgZGVzdHJveWVkLlxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG5cbiAgICB0aGlzLl9tYXBwaW5nLmNsZWFyKCk7XG4gICAgdGhpcy5fb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuXG4gIH1cblxuICAvLyAtLS1cbiAgLy8gUFVCTElDIE1FVEhPRFMuXG4gIC8vIC0tLVxuXG4gIC8vIEkgYWRkIHRoZSBnaXZlbiBFbGVtZW50IGZvciBpbnRlcnNlY3Rpb24gb2JzZXJ2YXRpb24uIFdoZW4gdGhlIGludGVyc2VjdGlvbiBzdGF0dXNcbiAgLy8gY2hhbmdlcywgdGhlIGdpdmVuIGNhbGxiYWNrIGlzIGludm9rZWQgd2l0aCB0aGUgbmV3IHN0YXR1cy5cbiAgcHVibGljIGFkZChlbGVtZW50OiBIVE1MRWxlbWVudCwgY2FsbGJhY2s6IEZ1bmN0aW9uKTogdm9pZCB7XG5cbiAgICB0aGlzLl9tYXBwaW5nLnNldChlbGVtZW50LCBjYWxsYmFjayk7XG4gICAgdGhpcy5fb2JzZXJ2ZXIub2JzZXJ2ZShlbGVtZW50KTtcblxuICB9XG5cbiAgLy8gSSByZW1vdmUgdGhlIGdpdmVuIEVsZW1lbnQgZnJvbSBpbnRlcnNlY3Rpb24gb2JzZXJ2YXRpb24uXG4gIHB1YmxpYyByZW1vdmUoZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcblxuICAgIHRoaXMuX21hcHBpbmcuZGVsZXRlKGVsZW1lbnQpO1xuICAgIHRoaXMuX29ic2VydmVyLnVub2JzZXJ2ZShlbGVtZW50KTtcblxuICB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,57 @@
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
+ let VisibilityObserverDirective = class VisibilityObserverDirective {
5
+ // I initialize the intersection observer directive.
6
+ constructor(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
+ ngOnDestroy() {
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
+ ngOnInit() {
29
+ // In this demo, instead of using an IntersectionObserver per Element, we're
30
+ // going to use a shared observer in the parent element. However, we're still
31
+ // going to use a CALLBACK style approach so that we're only reducing the number
32
+ // of IntersectionObserver instances, not the number of Function calls.
33
+ if (this.observerEnabled) {
34
+ this._parent.add(this._elementRef.nativeElement, (isIntersecting) => {
35
+ this.isIntersecting = isIntersecting;
36
+ if (this.isIntersecting) {
37
+ this._parent.remove(this._elementRef.nativeElement);
38
+ }
39
+ });
40
+ }
41
+ }
42
+ };
43
+ VisibilityObserverDirective.ctorParameters = () => [
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
+ export { VisibilityObserverDirective };
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaWJpbGl0eS1vYnNlcnZlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY29saWpuaXQvY29uZmlndXJhdG9yLyIsInNvdXJjZXMiOlsiYXBwL2RpcmVjdGl2ZXMvdmlzaWJpbGl0eS1vYnNlcnZlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDcEcsT0FBTyxFQUFDLGlDQUFpQyxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFNekYsSUFBYSwyQkFBMkIsR0FBeEMsTUFBYSwyQkFBMkI7SUFjdEMsb0RBQW9EO0lBQ3BELFlBQ0ksTUFBeUMsRUFDekMsVUFBc0I7UUFkbkIsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFHeEMsb0ZBQW9GO1FBQ3BGLGlFQUFpRTtRQUMxRCxvQkFBZSxHQUFZLElBQUksQ0FBQztRQUNoQyx3QkFBbUIsR0FBWSxLQUFLLENBQUM7UUFXMUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7UUFFOUIsK0VBQStFO1FBQy9FLCtFQUErRTtRQUMvRSwwQkFBMEI7UUFDMUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7SUFFOUIsQ0FBQztJQUVELE1BQU07SUFDTixrQkFBa0I7SUFDbEIsTUFBTTtJQUVOLDhEQUE4RDtJQUN2RCxXQUFXO1FBRWhCLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUM7SUFFL0IsQ0FBQztJQUdELHlFQUF5RTtJQUNsRSxRQUFRO1FBRWIsNEVBQTRFO1FBQzVFLDZFQUE2RTtRQUM3RSxnRkFBZ0Y7UUFDaEYsdUVBQXVFO1FBQ3ZFLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FDWixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFDOUIsQ0FBQyxjQUF1QixFQUFFLEVBQUU7Z0JBRTFCLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO2dCQUNyQyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7b0JBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7aUJBQ3JEO1lBRUgsQ0FBQyxDQUNKLENBQUM7U0FDSDtJQUVILENBQUM7Q0FFRixDQUFBOztZQWxEYSxpQ0FBaUM7WUFDN0IsVUFBVTs7QUFkMUI7SUFEQyxLQUFLLEVBQUU7b0VBQ2dDO0FBSDdCLDJCQUEyQjtJQUp2QyxTQUFTLENBQUM7UUFDVCxRQUFRLEVBQUUsc0JBQXNCO1FBQ2hDLFFBQVEsRUFBRSxjQUFjO0tBQ3pCLENBQUM7R0FDVywyQkFBMkIsQ0FrRXZDO1NBbEVZLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VmlzaWJpbGl0eU9ic2VydmVyTWFzdGVyRGlyZWN0aXZlfSBmcm9tICcuL3Zpc2liaWxpdHktb2JzZXJ2ZXItbWFzdGVyLmRpcmVjdGl2ZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t2aXNpYmlsaXR5T2JzZXJ2ZXJdJyxcbiAgZXhwb3J0QXM6ICdpbnRlcnNlY3Rpb24nXG59KVxuZXhwb3J0IGNsYXNzIFZpc2liaWxpdHlPYnNlcnZlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0IHtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgb2JzZXJ2ZXJFbmFibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIGlzSW50ZXJzZWN0aW5nOiBib29sZWFuO1xuICAvLyBUaGVzZSBhcmUganVzdCBzb21lIGh1bWFuLWZyaWVuZGx5IGNvbnN0YW50cyB0byBtYWtlIHRoZSBIVE1MIHRlbXBsYXRlIGEgYml0IG1vcmVcbiAgLy8gcmVhZGFibGUgd2hlbiBiZWluZyBjb25zdW1lZCBhcyBwYXJ0IG9mIFNXVENIL0NBU0Ugc3RhdGVtZW50cy5cbiAgcHVibGljIElTX0lOVEVSU0VDVElORzogYm9vbGVhbiA9IHRydWU7XG4gIHB1YmxpYyBJU19OT1RfSU5URVJTRUNUSU5HOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjtcbiAgcHJpdmF0ZSBfcGFyZW50OiBWaXNpYmlsaXR5T2JzZXJ2ZXJNYXN0ZXJEaXJlY3RpdmU7XG5cbiAgLy8gSSBpbml0aWFsaXplIHRoZSBpbnRlcnNlY3Rpb24gb2JzZXJ2ZXIgZGlyZWN0aXZlLlxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHBhcmVudDogVmlzaWJpbGl0eU9ic2VydmVyTWFzdGVyRGlyZWN0aXZlLFxuICAgICAgZWxlbWVudFJlZjogRWxlbWVudFJlZlxuICApIHtcblxuICAgIHRoaXMuX3BhcmVudCA9IHBhcmVudDtcbiAgICB0aGlzLl9lbGVtZW50UmVmID0gZWxlbWVudFJlZjtcblxuICAgIC8vIEJ5IGRlZmF1bHQsIHdlJ3JlIGdvaW5nIHRvIGFzc3VtZSB0aGF0IHRoZSBob3N0IGVsZW1lbnQgaXMgTk9UIGludGVyc2VjdGluZy5cbiAgICAvLyBUaGVuLCB3ZSdsbCB1c2UgdGhlIEludGVyc2VjdGlvbk9ic2VydmVyIHRvIGFzeW5jaHJvbm91c2x5IGNoZWNrIGZvciBjaGFuZ2VzXG4gICAgLy8gaW4gdmlld3BvcnQgdmlzaWJpbGl0eS5cbiAgICB0aGlzLmlzSW50ZXJzZWN0aW5nID0gZmFsc2U7XG5cbiAgfVxuXG4gIC8vIC0tLVxuICAvLyBQVUJMSUMgTUVUSE9EUy5cbiAgLy8gLS0tXG5cbiAgLy8gSSBnZXQgY2FsbGVkIG9uY2Ugd2hlbiB0aGUgaG9zdCBlbGVtZW50IGlzIGJlaW5nIGRlc3Ryb3llZC5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuXG4gICAgdGhpcy5fcGFyZW50LnJlbW92ZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgIHRoaXMuX2VsZW1lbnRSZWYgPSB1bmRlZmluZWQ7XG5cbiAgfVxuXG5cbiAgLy8gSSBnZXQgY2FsbGVkIG9uY2UgYWZ0ZXIgdGhlIGlucHV0cyBoYXZlIGJlZW4gYm91bmQgZm9yIHRoZSBmaXJzdCB0aW1lLlxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG5cbiAgICAvLyBJbiB0aGlzIGRlbW8sIGluc3RlYWQgb2YgdXNpbmcgYW4gSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgcGVyIEVsZW1lbnQsIHdlJ3JlXG4gICAgLy8gZ29pbmcgdG8gdXNlIGEgc2hhcmVkIG9ic2VydmVyIGluIHRoZSBwYXJlbnQgZWxlbWVudC4gSG93ZXZlciwgd2UncmUgc3RpbGxcbiAgICAvLyBnb2luZyB0byB1c2UgYSBDQUxMQkFDSyBzdHlsZSBhcHByb2FjaCBzbyB0aGF0IHdlJ3JlIG9ubHkgcmVkdWNpbmcgdGhlIG51bWJlclxuICAgIC8vIG9mIEludGVyc2VjdGlvbk9ic2VydmVyIGluc3RhbmNlcywgbm90IHRoZSBudW1iZXIgb2YgRnVuY3Rpb24gY2FsbHMuXG4gICAgaWYgKHRoaXMub2JzZXJ2ZXJFbmFibGVkKSB7XG4gICAgICB0aGlzLl9wYXJlbnQuYWRkKFxuICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAoaXNJbnRlcnNlY3Rpbmc6IGJvb2xlYW4pID0+IHtcblxuICAgICAgICAgICAgdGhpcy5pc0ludGVyc2VjdGluZyA9IGlzSW50ZXJzZWN0aW5nO1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNJbnRlcnNlY3RpbmcpIHtcbiAgICAgICAgICAgICAgdGhpcy5fcGFyZW50LnJlbW92ZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG5cbiAgfVxuXG59XG4iXX0=