@colijnit/homedecorator 258.1.1 → 258.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/app/core/enum/icon.enum.d.ts +1 -0
  2. package/app/core/enum/message-type.enum.d.ts +2 -1
  3. package/app/core/interface/message-with-payload.interface.d.ts +1 -0
  4. package/app/core/model/homedecorator-settings-options.d.ts +1 -1
  5. package/app/core/model/homedecorator-settings.d.ts +3 -0
  6. package/app/core/service/3dm-api.d.ts +2 -2
  7. package/app/core/service/homedecorator-app-event.service.d.ts +1 -0
  8. package/app/core/service/homedecorator-connector-adapter.service.d.ts +9 -1
  9. package/app/core/service/homedecorator-connector.service.d.ts +15 -2
  10. package/app/core/service/utils.service.d.ts +1 -1
  11. package/app/core/utils/object.utils.d.ts +2 -0
  12. package/app/homedecorator.module.d.ts +2 -1
  13. package/app/plugins/core3d/service/wall-measurements.service.d.ts +2 -0
  14. package/app/plugins/model-uploader/model-previewer/model-preview.component.d.ts +3 -0
  15. package/app/plugins/product-catalog/product-catalog/product-catalog.component.d.ts +2 -0
  16. package/app/plugins/product-configurator/product-configurator-selector-list-of-values.component.scss +28 -0
  17. package/app/plugins/product-configurator/product-configurator-selector-option-button.component.d.ts +19 -0
  18. package/app/plugins/product-configurator/product-configurator-selector-option-button.component.scss +38 -0
  19. package/app/plugins/product-configurator/product-configurator-selector-option-dropdown.component.d.ts +20 -0
  20. package/app/plugins/product-configurator/product-configurator-selector-option-dropdown.component.scss +0 -0
  21. package/app/plugins/product-configurator/product-configurator-selector-option-list-of-values.component.d.ts +19 -0
  22. package/app/plugins/product-configurator/product-configurator-selector-option-tile.component.scss +56 -0
  23. package/app/plugins/product-configurator/product-configurator-selector-option-tile.compontent.d.ts +20 -0
  24. package/app/plugins/product-configurator/product-configurator-selector.component.d.ts +26 -0
  25. package/app/plugins/product-configurator/product-configurator-selector.component.scss +46 -0
  26. package/app/plugins/product-configurator/product-configurator.component.d.ts +38 -0
  27. package/app/plugins/product-configurator/product-configurator.component.scss +35 -0
  28. package/app/plugins/product-configurator/product-configurator.module.d.ts +18 -0
  29. package/app/plugins/product-configurator/template_variables.scss +13 -0
  30. package/app/plugins/render/model/blender-render-settings.d.ts +10 -0
  31. package/app/plugins/render/model/blender-scene-settings.d.ts +18 -0
  32. package/app/plugins/render/render-controls/render-controls.component.d.ts +19 -7
  33. package/app/plugins/render/service/new-render.service.d.ts +21 -4
  34. package/app/plugins/room-planner/components/floor-catalog/floor-catalog.component.scss +1 -1
  35. package/app/plugins/threedselector/threedselector/service/build-furniture.service.d.ts +5 -0
  36. package/app/plugins/threedselector/threedselector/threedselector.component.d.ts +4 -0
  37. package/app/plugins/threedselector/threedselector/threedselector.component.scss +17 -0
  38. package/app/plugins/threedselector/threedselector.module.d.ts +2 -1
  39. package/app/plugins/toolbar/draw-dialog/draw-dialog.component.scss +1 -1
  40. package/assets/icons/circle_regular.svg +0 -0
  41. package/bundles/colijnit-homedecorator.umd.js +1986 -835
  42. package/bundles/colijnit-homedecorator.umd.js.map +1 -1
  43. package/esm2015/app/app.version.js +3 -3
  44. package/esm2015/app/core/enum/icon.enum.js +2 -1
  45. package/esm2015/app/core/enum/message-type.enum.js +2 -1
  46. package/esm2015/app/core/interface/message-with-payload.interface.js +1 -1
  47. package/esm2015/app/core/model/homedecorator-settings-options.js +2 -2
  48. package/esm2015/app/core/model/homedecorator-settings.js +3 -1
  49. package/esm2015/app/core/model/icon.js +2 -1
  50. package/esm2015/app/core/service/3dm-api.js +15 -22
  51. package/esm2015/app/core/service/homedecorator-app-event.service.js +3 -2
  52. package/esm2015/app/core/service/homedecorator-connector-adapter.service.js +65 -7
  53. package/esm2015/app/core/service/homedecorator-connector.service.js +150 -6
  54. package/esm2015/app/core/service/homedecorator-settings.service.js +8 -1
  55. package/esm2015/app/core/service/utils.service.js +116 -93
  56. package/esm2015/app/core/utils/object.utils.js +13 -1
  57. package/esm2015/app/homedecorator.component.js +1 -2
  58. package/esm2015/app/homedecorator.module.js +8 -4
  59. package/esm2015/app/plugins/core3d/core3d/core3d.component.js +2 -2
  60. package/esm2015/app/plugins/core3d/service/wall-measurements.service.js +7 -1
  61. package/esm2015/app/plugins/model-uploader/model-previewer/model-preview.component.js +98 -50
  62. package/esm2015/app/plugins/model-uploader/model-uploader/model-uploader.component.js +4 -4
  63. package/esm2015/app/plugins/product-catalog/product-catalog/product-catalog.component.js +21 -11
  64. package/esm2015/app/plugins/product-configurator/product-configurator-selector-option-button.component.js +67 -0
  65. package/esm2015/app/plugins/product-configurator/product-configurator-selector-option-dropdown.component.js +57 -0
  66. package/esm2015/app/plugins/product-configurator/product-configurator-selector-option-list-of-values.component.js +75 -0
  67. package/esm2015/app/plugins/product-configurator/product-configurator-selector-option-tile.compontent.js +90 -0
  68. package/esm2015/app/plugins/product-configurator/product-configurator-selector.component.js +253 -0
  69. package/esm2015/app/plugins/product-configurator/product-configurator.component.js +151 -0
  70. package/esm2015/app/plugins/product-configurator/product-configurator.module.js +115 -0
  71. package/esm2015/app/plugins/render/model/blender-render-settings.js +3 -0
  72. package/esm2015/app/plugins/render/model/blender-scene-settings.js +10 -0
  73. package/esm2015/app/plugins/render/model/render-parameters.js +3 -3
  74. package/esm2015/app/plugins/render/render-controls/render-controls.component.js +532 -446
  75. package/esm2015/app/plugins/render/render-dialog/render-dialog.component.js +6 -40
  76. package/esm2015/app/plugins/render/service/new-render.service.js +212 -44
  77. package/esm2015/app/plugins/render/service/render.service.js +6 -9
  78. package/esm2015/app/plugins/room-planner/components/floor-catalog/floor-catalog.component.js +1 -1
  79. package/esm2015/app/plugins/room-planner/components/texture-picker/texture-picker.component.js +1 -1
  80. package/esm2015/app/plugins/room-planner/room-planner/room-planner.component.js +12 -10
  81. package/esm2015/app/plugins/threedselector/element-buttons/element-buttons.component.js +2 -2
  82. package/esm2015/app/plugins/threedselector/threedselector/service/build-furniture.service.js +55 -1
  83. package/esm2015/app/plugins/threedselector/threedselector/service/load-furniture.service.js +3 -3
  84. package/esm2015/app/plugins/threedselector/threedselector/threedselector.component.js +64 -15
  85. package/esm2015/app/plugins/threedselector/threedselector/utils/asset.utils.js +1 -1
  86. package/esm2015/app/plugins/threedselector/threedselector.module.js +8 -4
  87. package/esm2015/app/plugins/toolbar/draw-dialog/draw-dialog.component.js +1 -1
  88. package/esm2015/app/shared/category-library/category-library.component.js +1 -1
  89. package/fesm2015/colijnit-homedecorator.js +2522 -1149
  90. package/fesm2015/colijnit-homedecorator.js.map +1 -1
  91. package/package.json +4 -4
  92. package/styles.scss +1 -1
@@ -0,0 +1,90 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { IconEnum } from '../../core/enum/icon.enum';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../core/service/homedecorator-connector.service";
5
+ import * as i2 from "../../core/service/homedecorator-icon-cache.service";
6
+ import * as i3 from "../../core/service/homedecorator-settings.service";
7
+ import * as i4 from "@colijnit/corecomponents";
8
+ import * as i5 from "@angular/common";
9
+ export class ProductConfiguratorSelectorOptionTileComponent {
10
+ constructor(iOne, iconService, settingsService) {
11
+ this.iOne = iOne;
12
+ this.iconService = iconService;
13
+ this.settingsService = settingsService;
14
+ this.tileClass = 'small';
15
+ this.selectionClicked = new EventEmitter();
16
+ this.icons = IconEnum;
17
+ }
18
+ changeSelection() {
19
+ this.selectionClicked.emit();
20
+ }
21
+ }
22
+ ProductConfiguratorSelectorOptionTileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ProductConfiguratorSelectorOptionTileComponent, deps: [{ token: i1.HomedecoratorConnectorService }, { token: i2.HomedecoratorIconCacheService }, { token: i3.HomedecoratorSettingsService }], target: i0.ɵɵFactoryTarget.Component });
23
+ ProductConfiguratorSelectorOptionTileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ProductConfiguratorSelectorOptionTileComponent, selector: "rp-product-configurator-selector-option-tile", inputs: { option: "option", tileClass: "tileClass" }, outputs: { selectionClicked: "selectionClicked" }, ngImport: i0, template: `
24
+ <!-- When selected show checkmark -->
25
+ <div
26
+ class="configurator-selector-option-tile-container configurator-selector-option-tile-container-{{this.tileClass}}"
27
+ (click)="changeSelection()">
28
+ <div class="product-configurator-selector-option-tile-checkmark">
29
+ <co-icon class="product-configurator-selector-option-tile-selected"
30
+ *ngIf="option.selected ==='F'"
31
+ [iconData]="iconService.getIcon(icons.CircleCheck)">
32
+ </co-icon>
33
+ </div>
34
+ <!-- Image -->
35
+ <div class="product-configurator-selector-option-tile-image">
36
+ <img *ngIf="option.imageData" [src]="option.imageData" [alt]="option.artNodeId">
37
+ <co-icon class="product-configurator-selector-option-button-no-image"
38
+ *ngIf="!option.imageData"
39
+ [iconData]="iconService.getIcon(icons.ImageSlashRegular)">
40
+ </co-icon>
41
+ </div>
42
+ <!-- Answer text -->
43
+ <div class="product-configurator-selector-option-tile-description">
44
+ <p *ngIf="option.nodeText" [textContent]="option.nodeText"></p>
45
+ <p *ngIf="!option.nodeText" [textContent]="'Skip / Cancel'"></p>
46
+ </div>
47
+ </div>
48
+
49
+ `, isInline: true, styles: [".configurator-selector-option-tile-container{position:relative}.configurator-selector-option-tile-container .product-configurator-selector-option-tile-checkmark{position:absolute;top:5px;right:5px;fill:#da9803}.configurator-selector-option-tile-container .product-configurator-selector-option-tile-image{min-width:90px;min-height:60px;border-radius:5px;display:flex;justify-content:space-evenly;align-items:center}.configurator-selector-option-tile-container .product-configurator-selector-option-tile-image img{display:block;max-width:100%;border-radius:3px;max-height:max-content}.configurator-selector-option-tile-container .product-configurator-selector-option-tile-description{text-align:center}.configurator-selector-option-tile-container-small .product-configurator-selector-option-tile-image{min-width:55px;min-height:40px}.configurator-selector-option-tile-container-small .product-configurator-selector-option-tile-description{font-size:12px}\n"], components: [{ type: i4.ɵb, selector: "co-icon", inputs: ["icon", "iconData"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ProductConfiguratorSelectorOptionTileComponent, decorators: [{
51
+ type: Component,
52
+ args: [{
53
+ selector: 'rp-product-configurator-selector-option-tile',
54
+ template: `
55
+ <!-- When selected show checkmark -->
56
+ <div
57
+ class="configurator-selector-option-tile-container configurator-selector-option-tile-container-{{this.tileClass}}"
58
+ (click)="changeSelection()">
59
+ <div class="product-configurator-selector-option-tile-checkmark">
60
+ <co-icon class="product-configurator-selector-option-tile-selected"
61
+ *ngIf="option.selected ==='F'"
62
+ [iconData]="iconService.getIcon(icons.CircleCheck)">
63
+ </co-icon>
64
+ </div>
65
+ <!-- Image -->
66
+ <div class="product-configurator-selector-option-tile-image">
67
+ <img *ngIf="option.imageData" [src]="option.imageData" [alt]="option.artNodeId">
68
+ <co-icon class="product-configurator-selector-option-button-no-image"
69
+ *ngIf="!option.imageData"
70
+ [iconData]="iconService.getIcon(icons.ImageSlashRegular)">
71
+ </co-icon>
72
+ </div>
73
+ <!-- Answer text -->
74
+ <div class="product-configurator-selector-option-tile-description">
75
+ <p *ngIf="option.nodeText" [textContent]="option.nodeText"></p>
76
+ <p *ngIf="!option.nodeText" [textContent]="'Skip / Cancel'"></p>
77
+ </div>
78
+ </div>
79
+
80
+ `,
81
+ styleUrls: ['product-configurator-selector-option-tile.component.scss']
82
+ }]
83
+ }], ctorParameters: function () { return [{ type: i1.HomedecoratorConnectorService }, { type: i2.HomedecoratorIconCacheService }, { type: i3.HomedecoratorSettingsService }]; }, propDecorators: { option: [{
84
+ type: Input
85
+ }], tileClass: [{
86
+ type: Input
87
+ }], selectionClicked: [{
88
+ type: Output
89
+ }] } });
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1jb25maWd1cmF0b3Itc2VsZWN0b3Itb3B0aW9uLXRpbGUuY29tcG9udGVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jbGllbnQvYXBwL3BsdWdpbnMvcHJvZHVjdC1jb25maWd1cmF0b3IvcHJvZHVjdC1jb25maWd1cmF0b3Itc2VsZWN0b3Itb3B0aW9uLXRpbGUuY29tcG9udGVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBSXJFLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7OztBQXFDbkQsTUFBTSxPQUFPLDhDQUE4QztJQWF2RCxZQUNXLElBQW1DLEVBQ25DLFdBQTBDLEVBQzFDLGVBQTZDO1FBRjdDLFNBQUksR0FBSixJQUFJLENBQStCO1FBQ25DLGdCQUFXLEdBQVgsV0FBVyxDQUErQjtRQUMxQyxvQkFBZSxHQUFmLGVBQWUsQ0FBOEI7UUFWakQsY0FBUyxHQUFXLE9BQU8sQ0FBQztRQUc1QixxQkFBZ0IsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV2RCxVQUFLLEdBQUcsUUFBUSxDQUFDO0lBT2pDLENBQUM7SUFFTSxlQUFlO1FBQ2xCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNqQyxDQUFDOzs0SUF0QlEsOENBQThDO2dJQUE5Qyw4Q0FBOEMsNkxBN0I3Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0EwQlQ7NEZBR1EsOENBQThDO2tCQS9CMUQsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsOENBQThDO29CQUN4RCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBMEJUO29CQUNELFNBQVMsRUFBRSxDQUFDLDBEQUEwRCxDQUFDO2lCQUMxRTsyTUFJVSxNQUFNO3NCQURaLEtBQUs7Z0JBSUMsU0FBUztzQkFEZixLQUFLO2dCQUlDLGdCQUFnQjtzQkFEdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1NlbGVjdGlvbn0gZnJvbSAnQGNvbGlqbml0L2NvbmZpZ3VyYXRvcmFwaS9idWlsZC9tb2RlbC9zZWxlY3Rpb24nO1xyXG5pbXBvcnQge0hvbWVkZWNvcmF0b3JDb25uZWN0b3JTZXJ2aWNlfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2UvaG9tZWRlY29yYXRvci1jb25uZWN0b3Iuc2VydmljZSc7XHJcbmltcG9ydCB7SG9tZWRlY29yYXRvclNldHRpbmdzU2VydmljZX0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlL2hvbWVkZWNvcmF0b3Itc2V0dGluZ3Muc2VydmljZSc7XHJcbmltcG9ydCB7SWNvbkVudW19IGZyb20gJy4uLy4uL2NvcmUvZW51bS9pY29uLmVudW0nO1xyXG5pbXBvcnQge0hvbWVkZWNvcmF0b3JJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2UvaG9tZWRlY29yYXRvci1pY29uLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1NlbGVjdG9yU3RydWN0dXJlfSBmcm9tICdAY29saWpuaXQvY29uZmlndXJhdG9yYXBpL2J1aWxkL21vZGVsL3NlbGVjdG9yLXN0cnVjdHVyZS5ibyc7XHJcblxyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdycC1wcm9kdWN0LWNvbmZpZ3VyYXRvci1zZWxlY3Rvci1vcHRpb24tdGlsZScsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgICAgIDwhLS0gV2hlbiBzZWxlY3RlZCBzaG93IGNoZWNrbWFyayAtLT5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiY29uZmlndXJhdG9yLXNlbGVjdG9yLW9wdGlvbi10aWxlLWNvbnRhaW5lciBjb25maWd1cmF0b3Itc2VsZWN0b3Itb3B0aW9uLXRpbGUtY29udGFpbmVyLXt7dGhpcy50aWxlQ2xhc3N9fVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJjaGFuZ2VTZWxlY3Rpb24oKVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZHVjdC1jb25maWd1cmF0b3Itc2VsZWN0b3Itb3B0aW9uLXRpbGUtY2hlY2ttYXJrXCI+XHJcbiAgICAgICAgICAgICAgICA8Y28taWNvbiBjbGFzcz1cInByb2R1Y3QtY29uZmlndXJhdG9yLXNlbGVjdG9yLW9wdGlvbi10aWxlLXNlbGVjdGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwib3B0aW9uLnNlbGVjdGVkID09PSdGJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvblNlcnZpY2UuZ2V0SWNvbihpY29ucy5DaXJjbGVDaGVjaylcIj5cclxuICAgICAgICAgICAgICAgIDwvY28taWNvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwhLS0gSW1hZ2UgIC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZHVjdC1jb25maWd1cmF0b3Itc2VsZWN0b3Itb3B0aW9uLXRpbGUtaW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJvcHRpb24uaW1hZ2VEYXRhXCIgW3NyY109XCJvcHRpb24uaW1hZ2VEYXRhXCIgW2FsdF09XCJvcHRpb24uYXJ0Tm9kZUlkXCI+XHJcbiAgICAgICAgICAgICAgICA8Y28taWNvbiBjbGFzcz1cInByb2R1Y3QtY29uZmlndXJhdG9yLXNlbGVjdG9yLW9wdGlvbi1idXR0b24tbm8taW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhb3B0aW9uLmltYWdlRGF0YVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvblNlcnZpY2UuZ2V0SWNvbihpY29ucy5JbWFnZVNsYXNoUmVndWxhcilcIj5cclxuICAgICAgICAgICAgICAgIDwvY28taWNvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwhLS0gQW5zd2VyIHRleHQgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0LWNvbmZpZ3VyYXRvci1zZWxlY3Rvci1vcHRpb24tdGlsZS1kZXNjcmlwdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgPHAgKm5nSWY9XCJvcHRpb24ubm9kZVRleHRcIiBbdGV4dENvbnRlbnRdPVwib3B0aW9uLm5vZGVUZXh0XCI+PC9wPlxyXG4gICAgICAgICAgICAgICAgPHAgKm5nSWY9XCIhb3B0aW9uLm5vZGVUZXh0XCIgW3RleHRDb250ZW50XT1cIidTa2lwIC8gQ2FuY2VsJ1wiPjwvcD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgYCxcclxuICAgIHN0eWxlVXJsczogWydwcm9kdWN0LWNvbmZpZ3VyYXRvci1zZWxlY3Rvci1vcHRpb24tdGlsZS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcm9kdWN0Q29uZmlndXJhdG9yU2VsZWN0b3JPcHRpb25UaWxlQ29tcG9uZW50IHtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIG9wdGlvbjogU2VsZWN0b3JTdHJ1Y3R1cmU7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyB0aWxlQ2xhc3M6IHN0cmluZyA9ICdzbWFsbCc7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgc2VsZWN0aW9uQ2xpY2tlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIHB1YmxpYyByZWFkb25seSBpY29ucyA9IEljb25FbnVtO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyBpT25lOiBIb21lZGVjb3JhdG9yQ29ubmVjdG9yU2VydmljZSxcclxuICAgICAgICBwdWJsaWMgaWNvblNlcnZpY2U6IEhvbWVkZWNvcmF0b3JJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgICAgIHB1YmxpYyBzZXR0aW5nc1NlcnZpY2U6IEhvbWVkZWNvcmF0b3JTZXR0aW5nc1NlcnZpY2UsXHJcbiAgICApIHtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2hhbmdlU2VsZWN0aW9uKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQ2xpY2tlZC5lbWl0KCk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -0,0 +1,253 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { animate, state, style, transition, trigger } from '@angular/animations';
3
+ import { ConfigurationDisplayOption } from '@colijnit/configuratorapi/build/enum/refcode/configuration-display-option.enum';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../core/service/homedecorator-connector.service";
6
+ import * as i2 from "../threedselector/threedselector/service/build-furniture.service";
7
+ import * as i3 from "../../core/service/homedecorator-settings.service";
8
+ import * as i4 from "./product-configurator-selector-option-button.component";
9
+ import * as i5 from "./product-configurator-selector-option-list-of-values.component";
10
+ import * as i6 from "./product-configurator-selector-option-tile.compontent";
11
+ import * as i7 from "./product-configurator-selector-option-dropdown.component";
12
+ import * as i8 from "@angular/common";
13
+ export class ProductConfiguratorSelectorComponent {
14
+ constructor(iOne, buildFurnitureService, settingsService, _settingsService) {
15
+ this.iOne = iOne;
16
+ this.buildFurnitureService = buildFurnitureService;
17
+ this.settingsService = settingsService;
18
+ this._settingsService = _settingsService;
19
+ this.showChange = new EventEmitter();
20
+ this.answerChosen = new EventEmitter();
21
+ this.selectSelection = new EventEmitter();
22
+ this.configurationDisplayOption = ConfigurationDisplayOption;
23
+ this.selectionClass = '';
24
+ }
25
+ ngOnInit() {
26
+ this.selectionClass = 'selection-container-' + this.selection.displayOptionControl;
27
+ }
28
+ selectionClicked(answer) {
29
+ this.selectSelection.emit(answer);
30
+ }
31
+ }
32
+ ProductConfiguratorSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ProductConfiguratorSelectorComponent, deps: [{ token: i1.HomedecoratorConnectorService }, { token: i2.BuildFurnitureService }, { token: i3.HomedecoratorSettingsService }, { token: i3.HomedecoratorSettingsService }], target: i0.ɵɵFactoryTarget.Component });
33
+ ProductConfiguratorSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ProductConfiguratorSelectorComponent, selector: "rp-product-configurator-selector", inputs: { selection: "selection", answers: "answers" }, outputs: { showChange: "showChange", answerChosen: "answerChosen", selectSelection: "selectSelection" }, ngImport: i0, template: `
34
+ <div class="selector-container">
35
+ <h2 class="selector-option-header">{{ selection.optionText }}</h2>
36
+ <div class="selector-wrapper {{this.selectionClass}}">
37
+ <!--
38
+ We should have a meeting about how each displayOptionControl should be styled and then create components
39
+ Toggle = "00",
40
+ Button = "01",
41
+ ListOfValues = "02",
42
+ Tab = "03",
43
+ Card = "04",
44
+ DropDown = "05",
45
+ TileSmall = "06",
46
+ TileLarge = "07",
47
+ TileRounded = "08",
48
+ HorizontalTiles = "09",
49
+ SlideOut = "10",
50
+ OnPage = "11"
51
+
52
+
53
+ for simple options like buttons and tiles we can just loop through the list and just the components
54
+ For things like dropdowns, we can't
55
+ -->
56
+
57
+ <ng-container *ngIf="this.selection.displayOptionControl !== configurationDisplayOption.DropDown">
58
+ <ng-container *ngFor="let answer of answers">
59
+ <div class="selector-option-wrapper">
60
+ <ng-container
61
+ *ngIf="this.selection.displayOptionControl === configurationDisplayOption.Toggle">
62
+ <p>todo Toggle</p>
63
+ </ng-container>
64
+ <rp-product-configurator-selector-option-button
65
+ *ngIf="this.selection.displayOptionControl === configurationDisplayOption.Button"
66
+ [option]="answer"
67
+ (selectionClicked)="selectionClicked(answer)">
68
+ </rp-product-configurator-selector-option-button>
69
+
70
+ <!-- TODO make sure these match the options in ioneAS, ListOfValues is called checkbox in ioneAS...-->
71
+ <rp-product-configurator-option-list-of-values
72
+ *ngIf="this.selection.displayOptionControl === configurationDisplayOption.ListOfValues"
73
+ [option]="answer"
74
+ (selectionClicked)="selectionClicked(answer)">
75
+ </rp-product-configurator-option-list-of-values>
76
+
77
+ <ng-container
78
+ *ngIf="this.selection.displayOptionControl === configurationDisplayOption.Tab">
79
+ <p>todo Tab</p>
80
+ </ng-container>
81
+
82
+ <ng-container
83
+ *ngIf="this.selection.displayOptionControl === configurationDisplayOption.Card">
84
+ <p>todo Card</p>
85
+ </ng-container>
86
+
87
+ <rp-product-configurator-selector-option-tile
88
+ *ngIf="this.selection.displayOptionControl === configurationDisplayOption.TileSmall"
89
+ [option]="answer"
90
+ [tileClass]="'small'"
91
+ (selectionClicked)="selectionClicked(answer)">
92
+ </rp-product-configurator-selector-option-tile>
93
+ <rp-product-configurator-selector-option-tile
94
+ *ngIf="this.selection.displayOptionControl === configurationDisplayOption.TileLarge"
95
+ [option]="answer"
96
+ [tileClass]="'large'"
97
+ (selectionClicked)="selectionClicked(answer)">
98
+ </rp-product-configurator-selector-option-tile>
99
+ <rp-product-configurator-selector-option-tile
100
+ *ngIf="this.selection.displayOptionControl === configurationDisplayOption.TileRounded"
101
+ [option]="answer"
102
+ [tileClass]="'rounded'"
103
+ (selectionClicked)="selectionClicked(answer)">
104
+ </rp-product-configurator-selector-option-tile>
105
+ <rp-product-configurator-selector-option-tile
106
+ *ngIf="this.selection.displayOptionControl === configurationDisplayOption.HorizontalTiles"
107
+ [option]="answer"
108
+ [tileClass]="'horizontal'"
109
+ (selectionClicked)="selectionClicked(answer)">
110
+ </rp-product-configurator-selector-option-tile>
111
+ </div>
112
+ </ng-container>
113
+ </ng-container>
114
+
115
+
116
+ <ng-container *ngIf="this.selection.displayOptionControl === configurationDisplayOption.DropDown">
117
+ <rp-product-configurator-selector-option-dropdown
118
+ *ngIf="this.selection.displayOptionControl === configurationDisplayOption.DropDown"
119
+ [options]="answers"
120
+ (selectionClicked)="selectionClicked($event)"
121
+ ></rp-product-configurator-selector-option-dropdown>
122
+ </ng-container>
123
+
124
+
125
+ </div>
126
+ </div>
127
+ `, isInline: true, styles: [".selector-container{margin:10px auto;background-color:#fff;box-sizing:border-box;padding:10px}.selector-container .selector-option-header{font-size:16px}.selector-container .selector-wrapper{display:grid;grid-gap:10px;gap:10px;padding:0;z-index:1}.selector-container .selector-wrapper .selector-option-wrapper{border:1px solid #eee;border-radius:3px;background-color:#eee;font-size:14px;padding:5px;cursor:pointer}.selector-container .selection-container-01{grid-template-columns:repeat(auto-fill,minmax(100px,.5fr))}.selector-container .selection-container-02{grid-template-columns:repeat(auto-fill,minmax(150px,.5fr))}.selector-container .selection-container-06{grid-template-columns:repeat(auto-fill,minmax(70px,.5fr))}.selector-container .selection-container-07,.selector-container .selection-container-08{grid-template-columns:repeat(auto-fill,minmax(90px,.5fr))}\n"], components: [{ type: i4.ProductConfiguratorSelectorOptionButtonComponent, selector: "rp-product-configurator-selector-option-button", inputs: ["option"], outputs: ["selectionClicked"] }, { type: i5.ProductConfiguratorOptionListOfValuesComponent, selector: "rp-product-configurator-option-list-of-values", inputs: ["option"], outputs: ["selectionClicked"] }, { type: i6.ProductConfiguratorSelectorOptionTileComponent, selector: "rp-product-configurator-selector-option-tile", inputs: ["option", "tileClass"], outputs: ["selectionClicked"] }, { type: i7.ProductConfiguratorSelectorOptionDropDownComponent, selector: "rp-product-configurator-selector-option-dropdown", inputs: ["options", "tileClass"], outputs: ["selectionClicked"] }], directives: [{ type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], animations: [
128
+ trigger('showSelections', [
129
+ state('void', style({ 'transform': 'translateX(100%)', opacity: 0 })),
130
+ state('*', style({ 'transform': 'translateX(0%)', opacity: 1 })),
131
+ transition('void <=> *', animate(200))
132
+ ])
133
+ ] });
134
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ProductConfiguratorSelectorComponent, decorators: [{
135
+ type: Component,
136
+ args: [{
137
+ selector: 'rp-product-configurator-selector',
138
+ template: `
139
+ <div class="selector-container">
140
+ <h2 class="selector-option-header">{{ selection.optionText }}</h2>
141
+ <div class="selector-wrapper {{this.selectionClass}}">
142
+ <!--
143
+ We should have a meeting about how each displayOptionControl should be styled and then create components
144
+ Toggle = "00",
145
+ Button = "01",
146
+ ListOfValues = "02",
147
+ Tab = "03",
148
+ Card = "04",
149
+ DropDown = "05",
150
+ TileSmall = "06",
151
+ TileLarge = "07",
152
+ TileRounded = "08",
153
+ HorizontalTiles = "09",
154
+ SlideOut = "10",
155
+ OnPage = "11"
156
+
157
+
158
+ for simple options like buttons and tiles we can just loop through the list and just the components
159
+ For things like dropdowns, we can't
160
+ -->
161
+
162
+ <ng-container *ngIf="this.selection.displayOptionControl !== configurationDisplayOption.DropDown">
163
+ <ng-container *ngFor="let answer of answers">
164
+ <div class="selector-option-wrapper">
165
+ <ng-container
166
+ *ngIf="this.selection.displayOptionControl === configurationDisplayOption.Toggle">
167
+ <p>todo Toggle</p>
168
+ </ng-container>
169
+ <rp-product-configurator-selector-option-button
170
+ *ngIf="this.selection.displayOptionControl === configurationDisplayOption.Button"
171
+ [option]="answer"
172
+ (selectionClicked)="selectionClicked(answer)">
173
+ </rp-product-configurator-selector-option-button>
174
+
175
+ <!-- TODO make sure these match the options in ioneAS, ListOfValues is called checkbox in ioneAS...-->
176
+ <rp-product-configurator-option-list-of-values
177
+ *ngIf="this.selection.displayOptionControl === configurationDisplayOption.ListOfValues"
178
+ [option]="answer"
179
+ (selectionClicked)="selectionClicked(answer)">
180
+ </rp-product-configurator-option-list-of-values>
181
+
182
+ <ng-container
183
+ *ngIf="this.selection.displayOptionControl === configurationDisplayOption.Tab">
184
+ <p>todo Tab</p>
185
+ </ng-container>
186
+
187
+ <ng-container
188
+ *ngIf="this.selection.displayOptionControl === configurationDisplayOption.Card">
189
+ <p>todo Card</p>
190
+ </ng-container>
191
+
192
+ <rp-product-configurator-selector-option-tile
193
+ *ngIf="this.selection.displayOptionControl === configurationDisplayOption.TileSmall"
194
+ [option]="answer"
195
+ [tileClass]="'small'"
196
+ (selectionClicked)="selectionClicked(answer)">
197
+ </rp-product-configurator-selector-option-tile>
198
+ <rp-product-configurator-selector-option-tile
199
+ *ngIf="this.selection.displayOptionControl === configurationDisplayOption.TileLarge"
200
+ [option]="answer"
201
+ [tileClass]="'large'"
202
+ (selectionClicked)="selectionClicked(answer)">
203
+ </rp-product-configurator-selector-option-tile>
204
+ <rp-product-configurator-selector-option-tile
205
+ *ngIf="this.selection.displayOptionControl === configurationDisplayOption.TileRounded"
206
+ [option]="answer"
207
+ [tileClass]="'rounded'"
208
+ (selectionClicked)="selectionClicked(answer)">
209
+ </rp-product-configurator-selector-option-tile>
210
+ <rp-product-configurator-selector-option-tile
211
+ *ngIf="this.selection.displayOptionControl === configurationDisplayOption.HorizontalTiles"
212
+ [option]="answer"
213
+ [tileClass]="'horizontal'"
214
+ (selectionClicked)="selectionClicked(answer)">
215
+ </rp-product-configurator-selector-option-tile>
216
+ </div>
217
+ </ng-container>
218
+ </ng-container>
219
+
220
+
221
+ <ng-container *ngIf="this.selection.displayOptionControl === configurationDisplayOption.DropDown">
222
+ <rp-product-configurator-selector-option-dropdown
223
+ *ngIf="this.selection.displayOptionControl === configurationDisplayOption.DropDown"
224
+ [options]="answers"
225
+ (selectionClicked)="selectionClicked($event)"
226
+ ></rp-product-configurator-selector-option-dropdown>
227
+ </ng-container>
228
+
229
+
230
+ </div>
231
+ </div>
232
+ `,
233
+ styleUrls: ['product-configurator-selector.component.scss'],
234
+ animations: [
235
+ trigger('showSelections', [
236
+ state('void', style({ 'transform': 'translateX(100%)', opacity: 0 })),
237
+ state('*', style({ 'transform': 'translateX(0%)', opacity: 1 })),
238
+ transition('void <=> *', animate(200))
239
+ ])
240
+ ]
241
+ }]
242
+ }], ctorParameters: function () { return [{ type: i1.HomedecoratorConnectorService }, { type: i2.BuildFurnitureService }, { type: i3.HomedecoratorSettingsService }, { type: i3.HomedecoratorSettingsService }]; }, propDecorators: { selection: [{
243
+ type: Input
244
+ }], answers: [{
245
+ type: Input
246
+ }], showChange: [{
247
+ type: Output
248
+ }], answerChosen: [{
249
+ type: Output
250
+ }], selectSelection: [{
251
+ type: Output
252
+ }] } });
253
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1jb25maWd1cmF0b3Itc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NsaWVudC9hcHAvcGx1Z2lucy9wcm9kdWN0LWNvbmZpZ3VyYXRvci9wcm9kdWN0LWNvbmZpZ3VyYXRvci1zZWxlY3Rvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU3RSxPQUFPLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBSy9FLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGdGQUFnRixDQUFDOzs7Ozs7Ozs7O0FBNEcxSCxNQUFNLE9BQU8sb0NBQW9DO0lBRTdDLFlBQ1csSUFBbUMsRUFDbkMscUJBQTRDLEVBQzVDLGVBQTZDLEVBQzVDLGdCQUE4QztRQUgvQyxTQUFJLEdBQUosSUFBSSxDQUErQjtRQUNuQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLG9CQUFlLEdBQWYsZUFBZSxDQUE4QjtRQUM1QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQThCO1FBVTFDLGVBQVUsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUdoRSxpQkFBWSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBR2hFLG9CQUFlLEdBQW9DLElBQUksWUFBWSxFQUFxQixDQUFDO1FBRWxHLCtCQUEwQixHQUFHLDBCQUEwQixDQUFDO1FBRXhELG1CQUFjLEdBQVcsRUFBRSxDQUFDO0lBbEJuQyxDQUFDO0lBb0JELFFBQVE7UUFDSixJQUFJLENBQUMsY0FBYyxHQUFHLHNCQUFzQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUM7SUFDdkYsQ0FBQztJQUVNLGdCQUFnQixDQUFDLE1BQXlCO1FBQzdDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7O2tJQWxDUSxvQ0FBb0M7c0hBQXBDLG9DQUFvQyx5T0F4R25DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBOEZULHl6REFFVztRQUNSLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRTtZQUN0QixLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFDLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQztZQUNuRSxLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFDLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQztZQUM5RCxVQUFVLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN6QyxDQUFDO0tBQ0w7NEZBRVEsb0NBQW9DO2tCQTFHaEQsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0NBQWtDO29CQUM1QyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0E4RlQ7b0JBQ0QsU0FBUyxFQUFFLENBQUMsOENBQThDLENBQUM7b0JBQzNELFVBQVUsRUFBRTt3QkFDUixPQUFPLENBQUMsZ0JBQWdCLEVBQUU7NEJBQ3RCLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUMsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDOzRCQUNuRSxLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFDLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQzs0QkFDOUQsVUFBVSxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7eUJBQ3pDLENBQUM7cUJBQ0w7aUJBQ0o7OE9BV1UsU0FBUztzQkFEZixLQUFLO2dCQUlDLE9BQU87c0JBRGIsS0FBSztnQkFJVSxVQUFVO3NCQUR6QixNQUFNO2dCQUlTLFlBQVk7c0JBRDNCLE1BQU07Z0JBSVMsZUFBZTtzQkFEOUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QW5zd2VyfSBmcm9tICdAY29saWpuaXQvY29uZmlndXJhdG9yYXBpL2J1aWxkL21vZGVsL2Fuc3dlcic7XHJcbmltcG9ydCB7YW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuaW1wb3J0IHtIb21lZGVjb3JhdG9yQ29ubmVjdG9yU2VydmljZX0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlL2hvbWVkZWNvcmF0b3ItY29ubmVjdG9yLnNlcnZpY2UnO1xyXG5pbXBvcnQge0J1aWxkRnVybml0dXJlU2VydmljZX0gZnJvbSAnLi4vdGhyZWVkc2VsZWN0b3IvdGhyZWVkc2VsZWN0b3Ivc2VydmljZS9idWlsZC1mdXJuaXR1cmUuc2VydmljZSc7XHJcbmltcG9ydCB7SG9tZWRlY29yYXRvclNldHRpbmdzU2VydmljZX0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlL2hvbWVkZWNvcmF0b3Itc2V0dGluZ3Muc2VydmljZSc7XHJcbmltcG9ydCB7U2VsZWN0b3JTdHJ1Y3R1cmV9IGZyb20gJ0Bjb2xpam5pdC9jb25maWd1cmF0b3JhcGkvYnVpbGQvbW9kZWwvc2VsZWN0b3Itc3RydWN0dXJlLmJvJztcclxuaW1wb3J0IHtDb25maWd1cmF0aW9uRGlzcGxheU9wdGlvbn0gZnJvbSAnQGNvbGlqbml0L2NvbmZpZ3VyYXRvcmFwaS9idWlsZC9lbnVtL3JlZmNvZGUvY29uZmlndXJhdGlvbi1kaXNwbGF5LW9wdGlvbi5lbnVtJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdycC1wcm9kdWN0LWNvbmZpZ3VyYXRvci1zZWxlY3RvcicsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3Rvci1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPGgyIGNsYXNzPVwic2VsZWN0b3Itb3B0aW9uLWhlYWRlclwiPnt7IHNlbGVjdGlvbi5vcHRpb25UZXh0IH19PC9oMj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdG9yLXdyYXBwZXIge3t0aGlzLnNlbGVjdGlvbkNsYXNzfX1cIj5cclxuICAgICAgICAgICAgICAgIDwhLS1cclxuICAgICAgICAgICAgICAgICAgICAgICBXZSBzaG91bGQgaGF2ZSBhIG1lZXRpbmcgYWJvdXQgaG93IGVhY2ggZGlzcGxheU9wdGlvbkNvbnRyb2wgc2hvdWxkIGJlIHN0eWxlZCBhbmQgdGhlbiBjcmVhdGUgY29tcG9uZW50c1xyXG4gICAgICAgICAgICAgICAgICAgICAgIFRvZ2dsZSA9IFwiMDBcIixcclxuICAgICAgICAgICAgICAgICAgICAgICBCdXR0b24gPSBcIjAxXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgTGlzdE9mVmFsdWVzID0gXCIwMlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgIFRhYiA9IFwiMDNcIixcclxuICAgICAgICAgICAgICAgICAgICAgICBDYXJkID0gXCIwNFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgIERyb3BEb3duID0gXCIwNVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgIFRpbGVTbWFsbCA9IFwiMDZcIixcclxuICAgICAgICAgICAgICAgICAgICAgICBUaWxlTGFyZ2UgPSBcIjA3XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgVGlsZVJvdW5kZWQgPSBcIjA4XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgSG9yaXpvbnRhbFRpbGVzID0gXCIwOVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgIFNsaWRlT3V0ID0gXCIxMFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgIE9uUGFnZSA9IFwiMTFcIlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgZm9yIHNpbXBsZSBvcHRpb25zIGxpa2UgYnV0dG9ucyBhbmQgdGlsZXMgd2UgY2FuIGp1c3QgbG9vcCB0aHJvdWdoIHRoZSBsaXN0IGFuZCBqdXN0IHRoZSBjb21wb25lbnRzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgRm9yIHRoaW5ncyBsaWtlIGRyb3Bkb3ducywgd2UgY2FuJ3RcclxuICAgICAgICAgICAgICAgICAgIC0tPlxyXG5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0aGlzLnNlbGVjdGlvbi5kaXNwbGF5T3B0aW9uQ29udHJvbCAhPT0gY29uZmlndXJhdGlvbkRpc3BsYXlPcHRpb24uRHJvcERvd25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhbnN3ZXIgb2YgYW5zd2Vyc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0b3Itb3B0aW9uLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRoaXMuc2VsZWN0aW9uLmRpc3BsYXlPcHRpb25Db250cm9sID09PSBjb25maWd1cmF0aW9uRGlzcGxheU9wdGlvbi5Ub2dnbGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD50b2RvIFRvZ2dsZTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJwLXByb2R1Y3QtY29uZmlndXJhdG9yLXNlbGVjdG9yLW9wdGlvbi1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRoaXMuc2VsZWN0aW9uLmRpc3BsYXlPcHRpb25Db250cm9sID09PSBjb25maWd1cmF0aW9uRGlzcGxheU9wdGlvbi5CdXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcHRpb25dPVwiYW5zd2VyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2xpY2tlZCk9XCJzZWxlY3Rpb25DbGlja2VkKGFuc3dlcilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcnAtcHJvZHVjdC1jb25maWd1cmF0b3Itc2VsZWN0b3Itb3B0aW9uLWJ1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFRPRE8gbWFrZSBzdXJlIHRoZXNlIG1hdGNoIHRoZSBvcHRpb25zIGluIGlvbmVBUywgTGlzdE9mVmFsdWVzIGlzIGNhbGxlZCBjaGVja2JveCBpbiBpb25lQVMuLi4tLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxycC1wcm9kdWN0LWNvbmZpZ3VyYXRvci1vcHRpb24tbGlzdC1vZi12YWx1ZXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRoaXMuc2VsZWN0aW9uLmRpc3BsYXlPcHRpb25Db250cm9sID09PSBjb25maWd1cmF0aW9uRGlzcGxheU9wdGlvbi5MaXN0T2ZWYWx1ZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcHRpb25dPVwiYW5zd2VyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2xpY2tlZCk9XCJzZWxlY3Rpb25DbGlja2VkKGFuc3dlcilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcnAtcHJvZHVjdC1jb25maWd1cmF0b3Itb3B0aW9uLWxpc3Qtb2YtdmFsdWVzPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRoaXMuc2VsZWN0aW9uLmRpc3BsYXlPcHRpb25Db250cm9sID09PSBjb25maWd1cmF0aW9uRGlzcGxheU9wdGlvbi5UYWJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD50b2RvIFRhYjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRoaXMuc2VsZWN0aW9uLmRpc3BsYXlPcHRpb25Db250cm9sID09PSBjb25maWd1cmF0aW9uRGlzcGxheU9wdGlvbi5DYXJkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+dG9kbyBDYXJkPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJwLXByb2R1Y3QtY29uZmlndXJhdG9yLXNlbGVjdG9yLW9wdGlvbi10aWxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0aGlzLnNlbGVjdGlvbi5kaXNwbGF5T3B0aW9uQ29udHJvbCA9PT0gY29uZmlndXJhdGlvbkRpc3BsYXlPcHRpb24uVGlsZVNtYWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb3B0aW9uXT1cImFuc3dlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RpbGVDbGFzc109XCInc21hbGwnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2xpY2tlZCk9XCJzZWxlY3Rpb25DbGlja2VkKGFuc3dlcilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcnAtcHJvZHVjdC1jb25maWd1cmF0b3Itc2VsZWN0b3Itb3B0aW9uLXRpbGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cnAtcHJvZHVjdC1jb25maWd1cmF0b3Itc2VsZWN0b3Itb3B0aW9uLXRpbGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRoaXMuc2VsZWN0aW9uLmRpc3BsYXlPcHRpb25Db250cm9sID09PSBjb25maWd1cmF0aW9uRGlzcGxheU9wdGlvbi5UaWxlTGFyZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcHRpb25dPVwiYW5zd2VyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGlsZUNsYXNzXT1cIidsYXJnZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3Rpb25DbGlja2VkKT1cInNlbGVjdGlvbkNsaWNrZWQoYW5zd2VyKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9ycC1wcm9kdWN0LWNvbmZpZ3VyYXRvci1zZWxlY3Rvci1vcHRpb24tdGlsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxycC1wcm9kdWN0LWNvbmZpZ3VyYXRvci1zZWxlY3Rvci1vcHRpb24tdGlsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidGhpcy5zZWxlY3Rpb24uZGlzcGxheU9wdGlvbkNvbnRyb2wgPT09IGNvbmZpZ3VyYXRpb25EaXNwbGF5T3B0aW9uLlRpbGVSb3VuZGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb3B0aW9uXT1cImFuc3dlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RpbGVDbGFzc109XCIncm91bmRlZCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3Rpb25DbGlja2VkKT1cInNlbGVjdGlvbkNsaWNrZWQoYW5zd2VyKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9ycC1wcm9kdWN0LWNvbmZpZ3VyYXRvci1zZWxlY3Rvci1vcHRpb24tdGlsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxycC1wcm9kdWN0LWNvbmZpZ3VyYXRvci1zZWxlY3Rvci1vcHRpb24tdGlsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidGhpcy5zZWxlY3Rpb24uZGlzcGxheU9wdGlvbkNvbnRyb2wgPT09IGNvbmZpZ3VyYXRpb25EaXNwbGF5T3B0aW9uLkhvcml6b250YWxUaWxlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW29wdGlvbl09XCJhbnN3ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aWxlQ2xhc3NdPVwiJ2hvcml6b250YWwnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2xpY2tlZCk9XCJzZWxlY3Rpb25DbGlja2VkKGFuc3dlcilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcnAtcHJvZHVjdC1jb25maWd1cmF0b3Itc2VsZWN0b3Itb3B0aW9uLXRpbGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0aGlzLnNlbGVjdGlvbi5kaXNwbGF5T3B0aW9uQ29udHJvbCA9PT0gY29uZmlndXJhdGlvbkRpc3BsYXlPcHRpb24uRHJvcERvd25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8cnAtcHJvZHVjdC1jb25maWd1cmF0b3Itc2VsZWN0b3Itb3B0aW9uLWRyb3Bkb3duXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidGhpcy5zZWxlY3Rpb24uZGlzcGxheU9wdGlvbkNvbnRyb2wgPT09IGNvbmZpZ3VyYXRpb25EaXNwbGF5T3B0aW9uLkRyb3BEb3duXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW29wdGlvbnNdPVwiYW5zd2Vyc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3Rpb25DbGlja2VkKT1cInNlbGVjdGlvbkNsaWNrZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvcnAtcHJvZHVjdC1jb25maWd1cmF0b3Itc2VsZWN0b3Itb3B0aW9uLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICBgLFxyXG4gICAgc3R5bGVVcmxzOiBbJ3Byb2R1Y3QtY29uZmlndXJhdG9yLXNlbGVjdG9yLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBhbmltYXRpb25zOiBbXHJcbiAgICAgICAgdHJpZ2dlcignc2hvd1NlbGVjdGlvbnMnLCBbXHJcbiAgICAgICAgICAgIHN0YXRlKCd2b2lkJywgc3R5bGUoeyd0cmFuc2Zvcm0nOiAndHJhbnNsYXRlWCgxMDAlKScsIG9wYWNpdHk6IDB9KSksXHJcbiAgICAgICAgICAgIHN0YXRlKCcqJywgc3R5bGUoeyd0cmFuc2Zvcm0nOiAndHJhbnNsYXRlWCgwJSknLCBvcGFjaXR5OiAxfSkpLFxyXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCd2b2lkIDw9PiAqJywgYW5pbWF0ZSgyMDApKVxyXG4gICAgICAgIF0pXHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcm9kdWN0Q29uZmlndXJhdG9yU2VsZWN0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyBpT25lOiBIb21lZGVjb3JhdG9yQ29ubmVjdG9yU2VydmljZSxcclxuICAgICAgICBwdWJsaWMgYnVpbGRGdXJuaXR1cmVTZXJ2aWNlOiBCdWlsZEZ1cm5pdHVyZVNlcnZpY2UsXHJcbiAgICAgICAgcHVibGljIHNldHRpbmdzU2VydmljZTogSG9tZWRlY29yYXRvclNldHRpbmdzU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9zZXR0aW5nc1NlcnZpY2U6IEhvbWVkZWNvcmF0b3JTZXR0aW5nc1NlcnZpY2VcclxuICAgICkge1xyXG4gICAgfVxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZWxlY3Rpb246IFNlbGVjdG9yU3RydWN0dXJlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgYW5zd2VyczogU2VsZWN0b3JTdHJ1Y3R1cmVbXTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyByZWFkb25seSBzaG93Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgYW5zd2VyQ2hvc2VuOiBFdmVudEVtaXR0ZXI8QW5zd2VyPiA9IG5ldyBFdmVudEVtaXR0ZXI8QW5zd2VyPigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHJlYWRvbmx5IHNlbGVjdFNlbGVjdGlvbjogRXZlbnRFbWl0dGVyPFNlbGVjdG9yU3RydWN0dXJlPiA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0b3JTdHJ1Y3R1cmU+KCk7XHJcblxyXG4gICAgcHVibGljIGNvbmZpZ3VyYXRpb25EaXNwbGF5T3B0aW9uID0gQ29uZmlndXJhdGlvbkRpc3BsYXlPcHRpb247XHJcblxyXG4gICAgcHVibGljIHNlbGVjdGlvbkNsYXNzOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGlvbkNsYXNzID0gJ3NlbGVjdGlvbi1jb250YWluZXItJyArIHRoaXMuc2VsZWN0aW9uLmRpc3BsYXlPcHRpb25Db250cm9sO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZWxlY3Rpb25DbGlja2VkKGFuc3dlcjogU2VsZWN0b3JTdHJ1Y3R1cmUpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNlbGVjdFNlbGVjdGlvbi5lbWl0KGFuc3dlcik7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -0,0 +1,151 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "../../core/service/homedecorator-connector.service";
13
+ import * as i2 from "../threedselector/threedselector/service/build-furniture.service";
14
+ import * as i3 from "../../core/service/homedecorator-settings.service";
15
+ import * as i4 from "@angular/material/icon";
16
+ import * as i5 from "./product-configurator-selector.component";
17
+ import * as i6 from "@angular/common";
18
+ import * as i7 from "../../core/pipe/localize.pipe";
19
+ import * as i8 from "@colijnit/corecomponents";
20
+ export class ProductConfiguratorComponent {
21
+ constructor(iOne, buildFurnitureService, settingsService) {
22
+ this.iOne = iOne;
23
+ this.buildFurnitureService = buildFurnitureService;
24
+ this.settingsService = settingsService;
25
+ this.showHeaderInformation = true;
26
+ this.showLabel = true;
27
+ this.canClose = true;
28
+ this.customDimensions = false;
29
+ this.showChange = new EventEmitter();
30
+ this.answerChosen = new EventEmitter();
31
+ this.valutaSymbol = '€';
32
+ this.selectionList = [];
33
+ this._showSelections = false;
34
+ this._subs = [];
35
+ this._subs.push(this.settingsService.settingsLoaded.subscribe((loaded) => {
36
+ if (loaded && this.settingsService.settings.currencySymbol) {
37
+ this.valutaSymbol = this.settingsService.settings.currencySymbol;
38
+ }
39
+ }));
40
+ }
41
+ set showSelections(value) {
42
+ this._showSelections = value;
43
+ }
44
+ get showSelections() {
45
+ return this._showSelections;
46
+ }
47
+ ngOnInit() {
48
+ this.article = this.iOne.article;
49
+ this.selectionList = this.iOne.selectionWithAnswers;
50
+ }
51
+ ngOnDestroy() {
52
+ this._subs.forEach(s => s.unsubscribe());
53
+ }
54
+ onCloseLiteSelectorButtonClick() {
55
+ this.show = false;
56
+ this.showChange.emit(false);
57
+ }
58
+ onSelectionsSummarySelectSelection(chosenOption) {
59
+ return __awaiter(this, void 0, void 0, function* () {
60
+ yield this.iOne.navigateTo(chosenOption, true);
61
+ yield this.buildFurnitureService.selectSelectionAsAnswer(chosenOption, this.metadata);
62
+ });
63
+ }
64
+ }
65
+ ProductConfiguratorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ProductConfiguratorComponent, deps: [{ token: i1.HomedecoratorConnectorService }, { token: i2.BuildFurnitureService }, { token: i3.HomedecoratorSettingsService }], target: i0.ɵɵFactoryTarget.Component });
66
+ ProductConfiguratorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ProductConfiguratorComponent, selector: "rp-product-configurator", inputs: { show: "show", showHeaderInformation: "showHeaderInformation", showSelections: "showSelections", showLabel: "showLabel", canClose: "canClose", metadata: "metadata", customDimensions: "customDimensions" }, outputs: { showChange: "showChange", answerChosen: "answerChosen" }, ngImport: i0, template: `
67
+ <ng-container *ngIf="show">
68
+ <div class="product-configurator-container">
69
+ <div class="product-configurator-header" *ngIf="showHeaderInformation">
70
+ <div>
71
+ <h2>{{ article.name }}</h2>
72
+ <p>{{ article.description }}</p>
73
+ </div>
74
+ <div class="product-configurator-close" (click)="show = false">
75
+ <mat-icon class="homedecorator-material-icons">cancel</mat-icon>
76
+ </div>
77
+ </div>
78
+ <div class="product-configurator-details">
79
+ <ng-container *ngFor="let displaySelection of iOne.selectionWithAnswers let index = index">
80
+ <rp-product-configurator-selector
81
+ [selection]="displaySelection.selector"
82
+ [answers]="displaySelection.selectorOptions"
83
+ (selectSelection)="onSelectionsSummarySelectSelection($event)">
84
+ </rp-product-configurator-selector>
85
+ </ng-container>
86
+ </div>
87
+ <div class="product-configurator-summary">
88
+ <div class="sum" *ngIf="settingsService.settings.options.showAsConfigured">
89
+ <label [textContent]="'AS_CONFIGURED' | localize"></label><span class="total-price"></span>
90
+ <div class="price"> {{ iOne.totalPrice | priceDisplay: valutaSymbol }}</div>
91
+ </div>
92
+ </div>
93
+ </div>
94
+ </ng-container>
95
+ `, isInline: true, styles: [":host.floating ::ng-deep .product-configurator-container{position:absolute;right:0;max-height:calc(100vh - 120px)}:host:not(.custom-dimensions).floating ::ng-deep .product-configurator-container{top:64px;height:calc(100vh - 184px);padding:5px 10px 10px;border-radius:10px;right:10px;width:505px;background:#fff}.product-configurator-header{display:flex;justify-content:space-between;box-sizing:border-box;padding-bottom:10px}.product-configurator-header .product-configurator-close{cursor:pointer}.product-configurator-details{max-height:calc(100vh - 360px);overflow-y:scroll}.product-configurator-summary{box-sizing:border-box;padding:10px 0}\n"], components: [{ type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5.ProductConfiguratorSelectorComponent, selector: "rp-product-configurator-selector", inputs: ["selection", "answers"], outputs: ["showChange", "answerChosen", "selectSelection"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "localize": i7.LocalizePipe, "priceDisplay": i8.ɵn } });
96
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ProductConfiguratorComponent, decorators: [{
97
+ type: Component,
98
+ args: [{
99
+ selector: 'rp-product-configurator',
100
+ template: `
101
+ <ng-container *ngIf="show">
102
+ <div class="product-configurator-container">
103
+ <div class="product-configurator-header" *ngIf="showHeaderInformation">
104
+ <div>
105
+ <h2>{{ article.name }}</h2>
106
+ <p>{{ article.description }}</p>
107
+ </div>
108
+ <div class="product-configurator-close" (click)="show = false">
109
+ <mat-icon class="homedecorator-material-icons">cancel</mat-icon>
110
+ </div>
111
+ </div>
112
+ <div class="product-configurator-details">
113
+ <ng-container *ngFor="let displaySelection of iOne.selectionWithAnswers let index = index">
114
+ <rp-product-configurator-selector
115
+ [selection]="displaySelection.selector"
116
+ [answers]="displaySelection.selectorOptions"
117
+ (selectSelection)="onSelectionsSummarySelectSelection($event)">
118
+ </rp-product-configurator-selector>
119
+ </ng-container>
120
+ </div>
121
+ <div class="product-configurator-summary">
122
+ <div class="sum" *ngIf="settingsService.settings.options.showAsConfigured">
123
+ <label [textContent]="'AS_CONFIGURED' | localize"></label><span class="total-price"></span>
124
+ <div class="price"> {{ iOne.totalPrice | priceDisplay: valutaSymbol }}</div>
125
+ </div>
126
+ </div>
127
+ </div>
128
+ </ng-container>
129
+ `,
130
+ styleUrls: ['product-configurator.component.scss']
131
+ }]
132
+ }], ctorParameters: function () { return [{ type: i1.HomedecoratorConnectorService }, { type: i2.BuildFurnitureService }, { type: i3.HomedecoratorSettingsService }]; }, propDecorators: { show: [{
133
+ type: Input
134
+ }], showHeaderInformation: [{
135
+ type: Input
136
+ }], showSelections: [{
137
+ type: Input
138
+ }], showLabel: [{
139
+ type: Input
140
+ }], canClose: [{
141
+ type: Input
142
+ }], metadata: [{
143
+ type: Input
144
+ }], customDimensions: [{
145
+ type: Input
146
+ }], showChange: [{
147
+ type: Output
148
+ }], answerChosen: [{
149
+ type: Output
150
+ }] } });
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1jb25maWd1cmF0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NsaWVudC9hcHAvcGx1Z2lucy9wcm9kdWN0LWNvbmZpZ3VyYXRvci9wcm9kdWN0LWNvbmZpZ3VyYXRvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7QUErQ3hGLE1BQU0sT0FBTyw0QkFBNEI7SUEyQ3JDLFlBQ1csSUFBbUMsRUFDbkMscUJBQTRDLEVBQzVDLGVBQTZDO1FBRjdDLFNBQUksR0FBSixJQUFJLENBQStCO1FBQ25DLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDNUMsb0JBQWUsR0FBZixlQUFlLENBQThCO1FBekNqRCwwQkFBcUIsR0FBWSxJQUFJLENBQUM7UUFZdEMsY0FBUyxHQUFZLElBQUksQ0FBQztRQUcxQixhQUFRLEdBQVksSUFBSSxDQUFDO1FBTXpCLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUd6QixlQUFVLEdBQTBCLElBQUksWUFBWSxFQUFXLENBQUM7UUFHaEUsaUJBQVksR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUV6RSxpQkFBWSxHQUFXLEdBQUcsQ0FBQztRQUczQixrQkFBYSxHQUEwQixFQUFFLENBQUM7UUFFekMsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFFakMsVUFBSyxHQUFtQixFQUFFLENBQUM7UUFPL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQ1gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBZSxFQUFFLEVBQUU7WUFDOUQsSUFBSSxNQUFNLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFO2dCQUN4RCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQzthQUNwRTtRQUNMLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBaERELElBQ1csY0FBYyxDQUFDLEtBQWM7UUFDcEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDakMsQ0FBQztJQUVELElBQVcsY0FBYztRQUNyQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDaEMsQ0FBQztJQTJDRCxRQUFRO1FBQ0osSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUNqQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUM7SUFDeEQsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTSw4QkFBOEI7UUFDakMsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDbEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVZLGtDQUFrQyxDQUFDLFlBQStCOztZQUMzRSxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztZQUMvQyxNQUFNLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFGLENBQUM7S0FBQTs7MEhBMUVRLDRCQUE0Qjs4R0FBNUIsNEJBQTRCLDBWQWhDM0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBNkJUOzRGQUdRLDRCQUE0QjtrQkFsQ3hDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQTZCVDtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxxQ0FBcUMsQ0FBQztpQkFDckQ7bU1BR1UsSUFBSTtzQkFEVixLQUFLO2dCQUlDLHFCQUFxQjtzQkFEM0IsS0FBSztnQkFJSyxjQUFjO3NCQUR4QixLQUFLO2dCQVVDLFNBQVM7c0JBRGYsS0FBSztnQkFJQyxRQUFRO3NCQURkLEtBQUs7Z0JBSUMsUUFBUTtzQkFEZCxLQUFLO2dCQUlDLGdCQUFnQjtzQkFEdEIsS0FBSztnQkFJVSxVQUFVO3NCQUR6QixNQUFNO2dCQUlTLFlBQVk7c0JBRDNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7U2VsZWN0aW9ufSBmcm9tICdAY29saWpuaXQvY29uZmlndXJhdG9yYXBpL2J1aWxkL21vZGVsL3NlbGVjdGlvbic7XHJcbmltcG9ydCB7QW5zd2VyfSBmcm9tICdAY29saWpuaXQvY29uZmlndXJhdG9yYXBpL2J1aWxkL21vZGVsL2Fuc3dlcic7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtNZXRhZGF0YX0gZnJvbSAnLi4vY29yZTNkL2l0ZW1zL21ldGFkYXRhJztcclxuaW1wb3J0IHtIb21lZGVjb3JhdG9yQ29ubmVjdG9yU2VydmljZX0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlL2hvbWVkZWNvcmF0b3ItY29ubmVjdG9yLnNlcnZpY2UnO1xyXG5pbXBvcnQge0J1aWxkRnVybml0dXJlU2VydmljZX0gZnJvbSAnLi4vdGhyZWVkc2VsZWN0b3IvdGhyZWVkc2VsZWN0b3Ivc2VydmljZS9idWlsZC1mdXJuaXR1cmUuc2VydmljZSc7XHJcbmltcG9ydCB7SG9tZWRlY29yYXRvclNldHRpbmdzU2VydmljZX0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlL2hvbWVkZWNvcmF0b3Itc2V0dGluZ3Muc2VydmljZSc7XHJcbmltcG9ydCB7U2VsZWN0b3JTdHJ1Y3R1cmV9IGZyb20gJ0Bjb2xpam5pdC9jb25maWd1cmF0b3JhcGkvYnVpbGQvbW9kZWwvc2VsZWN0b3Itc3RydWN0dXJlLmJvJztcclxuaW1wb3J0IHtBcnRpY2xlfSBmcm9tICdAY29saWpuaXQvY29uZmlndXJhdG9yYXBpL2J1aWxkL21vZGVsL2FydGljbGUnO1xyXG5pbXBvcnQge1NlbGVjdG9yV2l0aE9wdGlvbnN9IGZyb20gJ0Bjb2xpam5pdC9jb25maWd1cmF0b3JhcGkvYnVpbGQvbW9kZWwvc2VsZWN0b3Itd2l0aC1vcHRpb25zJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAncnAtcHJvZHVjdC1jb25maWd1cmF0b3InLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZHVjdC1jb25maWd1cmF0b3ItY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZHVjdC1jb25maWd1cmF0b3ItaGVhZGVyXCIgKm5nSWY9XCJzaG93SGVhZGVySW5mb3JtYXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDI+e3sgYXJ0aWNsZS5uYW1lIH19PC9oMj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+e3sgYXJ0aWNsZS5kZXNjcmlwdGlvbiB9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZHVjdC1jb25maWd1cmF0b3ItY2xvc2VcIiAoY2xpY2spPVwic2hvdyA9IGZhbHNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImhvbWVkZWNvcmF0b3ItbWF0ZXJpYWwtaWNvbnNcIj5jYW5jZWw8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZHVjdC1jb25maWd1cmF0b3ItZGV0YWlsc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGRpc3BsYXlTZWxlY3Rpb24gb2YgaU9uZS5zZWxlY3Rpb25XaXRoQW5zd2VycyBsZXQgaW5kZXggPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cnAtcHJvZHVjdC1jb25maWd1cmF0b3Itc2VsZWN0b3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3Rpb25dPVwiZGlzcGxheVNlbGVjdGlvbi5zZWxlY3RvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYW5zd2Vyc109XCJkaXNwbGF5U2VsZWN0aW9uLnNlbGVjdG9yT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0U2VsZWN0aW9uKT1cIm9uU2VsZWN0aW9uc1N1bW1hcnlTZWxlY3RTZWxlY3Rpb24oJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3JwLXByb2R1Y3QtY29uZmlndXJhdG9yLXNlbGVjdG9yPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZHVjdC1jb25maWd1cmF0b3Itc3VtbWFyeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdW1cIiAqbmdJZj1cInNldHRpbmdzU2VydmljZS5zZXR0aW5ncy5vcHRpb25zLnNob3dBc0NvbmZpZ3VyZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIFt0ZXh0Q29udGVudF09XCInQVNfQ09ORklHVVJFRCcgfCBsb2NhbGl6ZVwiPjwvbGFiZWw+PHNwYW4gY2xhc3M9XCJ0b3RhbC1wcmljZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlXCI+IHt7IGlPbmUudG90YWxQcmljZSB8IHByaWNlRGlzcGxheTogdmFsdXRhU3ltYm9sIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICBgLFxyXG4gICAgc3R5bGVVcmxzOiBbJ3Byb2R1Y3QtY29uZmlndXJhdG9yLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFByb2R1Y3RDb25maWd1cmF0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNob3c6IGJvb2xlYW47XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzaG93SGVhZGVySW5mb3JtYXRpb246IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IHNob3dTZWxlY3Rpb25zKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fc2hvd1NlbGVjdGlvbnMgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHNob3dTZWxlY3Rpb25zKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zaG93U2VsZWN0aW9ucztcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNob3dMYWJlbDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBjYW5DbG9zZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBtZXRhZGF0YTogTWV0YWRhdGE7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBjdXN0b21EaW1lbnNpb25zOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgc2hvd0NoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHJlYWRvbmx5IGFuc3dlckNob3NlbjogRXZlbnRFbWl0dGVyPEFuc3dlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPEFuc3dlcj4oKTtcclxuXHJcbiAgICBwdWJsaWMgdmFsdXRhU3ltYm9sOiBzdHJpbmcgPSAn4oKsJztcclxuICAgIHB1YmxpYyBhcnRpY2xlOiBBcnRpY2xlO1xyXG5cclxuICAgIHB1YmxpYyBzZWxlY3Rpb25MaXN0OiBTZWxlY3RvcldpdGhPcHRpb25zW10gPSBbXTtcclxuXHJcbiAgICBwcml2YXRlIF9zaG93U2VsZWN0aW9uczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHJpdmF0ZSBfc2VsZWN0aW9uU2VsZWN0ZWQ6IFNlbGVjdGlvbjtcclxuICAgIHByaXZhdGUgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIGlPbmU6IEhvbWVkZWNvcmF0b3JDb25uZWN0b3JTZXJ2aWNlLFxyXG4gICAgICAgIHB1YmxpYyBidWlsZEZ1cm5pdHVyZVNlcnZpY2U6IEJ1aWxkRnVybml0dXJlU2VydmljZSxcclxuICAgICAgICBwdWJsaWMgc2V0dGluZ3NTZXJ2aWNlOiBIb21lZGVjb3JhdG9yU2V0dGluZ3NTZXJ2aWNlLFxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5fc3Vicy5wdXNoKFxyXG4gICAgICAgICAgICB0aGlzLnNldHRpbmdzU2VydmljZS5zZXR0aW5nc0xvYWRlZC5zdWJzY3JpYmUoKGxvYWRlZDogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGxvYWRlZCAmJiB0aGlzLnNldHRpbmdzU2VydmljZS5zZXR0aW5ncy5jdXJyZW5jeVN5bWJvbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdXRhU3ltYm9sID0gdGhpcy5zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3MuY3VycmVuY3lTeW1ib2w7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLmFydGljbGUgPSB0aGlzLmlPbmUuYXJ0aWNsZTtcclxuICAgICAgICB0aGlzLnNlbGVjdGlvbkxpc3QgPSB0aGlzLmlPbmUuc2VsZWN0aW9uV2l0aEFuc3dlcnM7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25DbG9zZUxpdGVTZWxlY3RvckJ1dHRvbkNsaWNrKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2hvdyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2hvd0NoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgb25TZWxlY3Rpb25zU3VtbWFyeVNlbGVjdFNlbGVjdGlvbihjaG9zZW5PcHRpb246IFNlbGVjdG9yU3RydWN0dXJlKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5pT25lLm5hdmlnYXRlVG8oY2hvc2VuT3B0aW9uLCB0cnVlKTtcclxuICAgICAgICBhd2FpdCB0aGlzLmJ1aWxkRnVybml0dXJlU2VydmljZS5zZWxlY3RTZWxlY3Rpb25Bc0Fuc3dlcihjaG9zZW5PcHRpb24sIHRoaXMubWV0YWRhdGEpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==