@colijnit/product 260.1.2 → 261.20.0

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 (145) hide show
  1. package/fesm2022/colijnit-product.mjs +4534 -0
  2. package/fesm2022/colijnit-product.mjs.map +1 -0
  3. package/index.d.ts +948 -0
  4. package/package.json +32 -33
  5. package/app/bundle/service/local-storage.service.d.ts +0 -14
  6. package/app/components/core/header/header.component.d.ts +0 -7
  7. package/app/components/core/header/header.module.d.ts +0 -2
  8. package/app/components/image-carousel/image-carousel.component.d.ts +0 -48
  9. package/app/components/image-carousel/image-carousel.module.d.ts +0 -2
  10. package/app/components/product-additional-description/product-additional-description.component.d.ts +0 -14
  11. package/app/components/product-additional-description/product-additional-description.module.d.ts +0 -2
  12. package/app/components/product-additional-info/product-additional-info.component.d.ts +0 -21
  13. package/app/components/product-additional-info/product-additional-info.module.d.ts +0 -2
  14. package/app/components/product-addtocart/product-addtocart.component.d.ts +0 -42
  15. package/app/components/product-addtocart/product-addtocart.module.d.ts +0 -2
  16. package/app/components/product-delivery/product-delivery.component.d.ts +0 -18
  17. package/app/components/product-delivery/product-delivery.module.d.ts +0 -2
  18. package/app/components/product-description/product-description.component.d.ts +0 -7
  19. package/app/components/product-description/product-description.module.d.ts +0 -2
  20. package/app/components/product-dialog/product-dialog.component.d.ts +0 -27
  21. package/app/components/product-dialog/product-dialog.module.d.ts +0 -2
  22. package/app/components/product-documents/product-document.module.d.ts +0 -2
  23. package/app/components/product-documents/product-documents.component.d.ts +0 -10
  24. package/app/components/product-external-source/product-external-source.component.d.ts +0 -51
  25. package/app/components/product-external-source/product-external-source.module.d.ts +0 -2
  26. package/app/components/product-hd/product-hd.component.d.ts +0 -25
  27. package/app/components/product-hd/product-hd.module.d.ts +0 -2
  28. package/app/components/product-info-tabs/product-info-tabs.component.d.ts +0 -18
  29. package/app/components/product-info-tabs/product-info-tabs.module.d.ts +0 -2
  30. package/app/components/product-page/product-page.component.d.ts +0 -66
  31. package/app/components/product-page/product-page.module.d.ts +0 -2
  32. package/app/components/product-price/product-price.component.d.ts +0 -19
  33. package/app/components/product-price/product-price.module.d.ts +0 -2
  34. package/app/components/product-properties/product-properties.component.d.ts +0 -16
  35. package/app/components/product-properties/product-properties.module.d.ts +0 -2
  36. package/app/components/product-related/product-related.component.d.ts +0 -33
  37. package/app/components/product-related/product-related.module.d.ts +0 -2
  38. package/app/components/product-selector-type/product-selector-type.component.d.ts +0 -22
  39. package/app/components/product-selector-type/product-selector-type.module.d.ts +0 -2
  40. package/app/components/product-stock/product-stock.component.d.ts +0 -20
  41. package/app/components/product-stock/product-stock.module.d.ts +0 -2
  42. package/app/components/product-symbols/product-symbols.component.d.ts +0 -10
  43. package/app/components/product-symbols/product-symbols.module.d.ts +0 -2
  44. package/app/components/render-carousel/render-carousel.component.d.ts +0 -40
  45. package/app/components/render-carousel/render-carousel.module.d.ts +0 -2
  46. package/app/enum/icon.enum.d.ts +0 -22
  47. package/app/enum/language-code.enum.d.ts +0 -6
  48. package/app/enum/selector-type.enum.d.ts +0 -5
  49. package/app/ione-product.component.d.ts +0 -47
  50. package/app/ione-product.module.d.ts +0 -2
  51. package/app/model/article-quantity.model.d.ts +0 -5
  52. package/app/model/icon.d.ts +0 -4
  53. package/app/model/productSettings.d.ts +0 -18
  54. package/app/model/render-modes.d.ts +0 -5
  55. package/app/model/render-parameters.d.ts +0 -7
  56. package/app/model/settings-options.d.ts +0 -10
  57. package/app/model/stock-and-delivery.d.ts +0 -5
  58. package/app/pipe/localize.pipe.d.ts +0 -7
  59. package/app/pipe/pipe.module.d.ts +0 -2
  60. package/app/product-version.d.ts +0 -6
  61. package/app/service/dictionary.service.d.ts +0 -24
  62. package/app/service/icon-cache.service.d.ts +0 -17
  63. package/app/service/product-connector-adapter.service.d.ts +0 -43
  64. package/app/service/product-connector.service.d.ts +0 -43
  65. package/app/service/product-event.service.d.ts +0 -27
  66. package/app/service/product-script-loader.service.d.ts +0 -9
  67. package/app/service/product-settings.service.d.ts +0 -16
  68. package/app/utils/bit-utils.d.ts +0 -7
  69. package/app/utils/json-utils.service.d.ts +0 -3
  70. package/assets/dictionary/text.properties.d.ts +0 -3
  71. package/bundles/colijnit-product.umd.js +0 -4317
  72. package/bundles/colijnit-product.umd.js.map +0 -1
  73. package/colijnit-product.d.ts +0 -49
  74. package/colijnit-product.metadata.json +0 -1
  75. package/esm2015/app/bundle/service/local-storage.service.js +0 -37
  76. package/esm2015/app/components/core/header/header.component.js +0 -26
  77. package/esm2015/app/components/core/header/header.module.js +0 -19
  78. package/esm2015/app/components/image-carousel/image-carousel.component.js +0 -288
  79. package/esm2015/app/components/image-carousel/image-carousel.module.js +0 -23
  80. package/esm2015/app/components/product-additional-description/product-additional-description.component.js +0 -58
  81. package/esm2015/app/components/product-additional-description/product-additional-description.module.js +0 -21
  82. package/esm2015/app/components/product-additional-info/product-additional-info.component.js +0 -108
  83. package/esm2015/app/components/product-additional-info/product-additional-info.module.js +0 -21
  84. package/esm2015/app/components/product-addtocart/product-addtocart.component.js +0 -185
  85. package/esm2015/app/components/product-addtocart/product-addtocart.module.js +0 -26
  86. package/esm2015/app/components/product-delivery/product-delivery.component.js +0 -49
  87. package/esm2015/app/components/product-delivery/product-delivery.module.js +0 -23
  88. package/esm2015/app/components/product-description/product-description.component.js +0 -23
  89. package/esm2015/app/components/product-description/product-description.module.js +0 -19
  90. package/esm2015/app/components/product-dialog/product-dialog.component.js +0 -86
  91. package/esm2015/app/components/product-dialog/product-dialog.module.js +0 -25
  92. package/esm2015/app/components/product-documents/product-document.module.js +0 -25
  93. package/esm2015/app/components/product-documents/product-documents.component.js +0 -31
  94. package/esm2015/app/components/product-external-source/product-external-source.component.js +0 -192
  95. package/esm2015/app/components/product-external-source/product-external-source.module.js +0 -23
  96. package/esm2015/app/components/product-hd/product-hd.component.js +0 -124
  97. package/esm2015/app/components/product-hd/product-hd.module.js +0 -23
  98. package/esm2015/app/components/product-info-tabs/product-info-tabs.component.js +0 -82
  99. package/esm2015/app/components/product-info-tabs/product-info-tabs.module.js +0 -29
  100. package/esm2015/app/components/product-page/product-page.component.js +0 -254
  101. package/esm2015/app/components/product-page/product-page.module.js +0 -50
  102. package/esm2015/app/components/product-price/product-price.component.js +0 -75
  103. package/esm2015/app/components/product-price/product-price.module.js +0 -23
  104. package/esm2015/app/components/product-properties/product-properties.component.js +0 -61
  105. package/esm2015/app/components/product-properties/product-properties.module.js +0 -21
  106. package/esm2015/app/components/product-related/product-related.component.js +0 -137
  107. package/esm2015/app/components/product-related/product-related.module.js +0 -25
  108. package/esm2015/app/components/product-selector-type/product-selector-type.component.js +0 -63
  109. package/esm2015/app/components/product-selector-type/product-selector-type.module.js +0 -26
  110. package/esm2015/app/components/product-stock/product-stock.component.js +0 -69
  111. package/esm2015/app/components/product-stock/product-stock.module.js +0 -23
  112. package/esm2015/app/components/product-symbols/product-symbols.component.js +0 -49
  113. package/esm2015/app/components/product-symbols/product-symbols.module.js +0 -26
  114. package/esm2015/app/components/render-carousel/render-carousel.component.js +0 -127
  115. package/esm2015/app/components/render-carousel/render-carousel.module.js +0 -25
  116. package/esm2015/app/enum/icon.enum.js +0 -24
  117. package/esm2015/app/enum/language-code.enum.js +0 -8
  118. package/esm2015/app/enum/selector-type.enum.js +0 -7
  119. package/esm2015/app/ione-product.component.js +0 -165
  120. package/esm2015/app/ione-product.module.js +0 -36
  121. package/esm2015/app/model/article-quantity.model.js +0 -3
  122. package/esm2015/app/model/icon.js +0 -23
  123. package/esm2015/app/model/productSettings.js +0 -14
  124. package/esm2015/app/model/render-modes.js +0 -7
  125. package/esm2015/app/model/render-parameters.js +0 -10
  126. package/esm2015/app/model/settings-options.js +0 -13
  127. package/esm2015/app/model/stock-and-delivery.js +0 -8
  128. package/esm2015/app/pipe/localize.pipe.js +0 -27
  129. package/esm2015/app/pipe/pipe.module.js +0 -18
  130. package/esm2015/app/product-version.js +0 -10
  131. package/esm2015/app/service/dictionary.service.js +0 -94
  132. package/esm2015/app/service/icon-cache.service.js +0 -40
  133. package/esm2015/app/service/product-connector-adapter.service.js +0 -199
  134. package/esm2015/app/service/product-connector.service.js +0 -115
  135. package/esm2015/app/service/product-event.service.js +0 -27
  136. package/esm2015/app/service/product-script-loader.service.js +0 -68
  137. package/esm2015/app/service/product-settings.service.js +0 -86
  138. package/esm2015/app/utils/bit-utils.js +0 -18
  139. package/esm2015/app/utils/json-utils.service.js +0 -29
  140. package/esm2015/assets/dictionary/text.properties.js +0 -102
  141. package/esm2015/colijnit-product.js +0 -50
  142. package/esm2015/public_api.js +0 -10
  143. package/fesm2015/colijnit-product.js +0 -3529
  144. package/fesm2015/colijnit-product.js.map +0 -1
  145. package/public_api.d.ts +0 -9
@@ -1,254 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, Renderer2, ViewChild } from '@angular/core';
3
- import { ProductConnectorService } from '../../service/product-connector.service';
4
- import { combineLatest } from 'rxjs';
5
- import { StockAndDelivery } from '../../model/stock-and-delivery';
6
- import { SelectorType } from '../../enum/selector-type.enum';
7
- import { animate, state, style, transition, trigger } from '@angular/animations';
8
- import { IconEnum } from '../../enum/icon.enum';
9
- import { IconCacheService } from '../../service/icon-cache.service';
10
- import { ProductSettingsService } from '../../service/product-settings.service';
11
- import { ProductEventService } from '../../service/product-event.service';
12
- export class ProductPageComponent {
13
- constructor(_ione, _renderer, _changeDetector, iconCache, settingsService, appEventService) {
14
- this._ione = _ione;
15
- this._renderer = _renderer;
16
- this._changeDetector = _changeDetector;
17
- this.iconCache = iconCache;
18
- this.settingsService = settingsService;
19
- this.appEventService = appEventService;
20
- this.icon = IconEnum;
21
- this.createFrozenArticle = true;
22
- this.isReturn = false;
23
- this.showRelatedProductsPopup = false;
24
- this.openStockEvent = new EventEmitter();
25
- this.configurable = true;
26
- this.threeD = false;
27
- this.show2D = true;
28
- this.show3D = false;
29
- this.configuring = false;
30
- this.showAddToCart = false;
31
- this.fullscreenAnimationEnd = false;
32
- this.settingsLoaded = false;
33
- this._fullScreen = false;
34
- this._subs = [];
35
- this._subs.push(this.appEventService.onForceRenderImage.subscribe((x) => {
36
- if (this.selections.nativeElement) {
37
- this.selections.nativeElement.forceRenderImage();
38
- }
39
- }), this.settingsService.settingsLoaded.subscribe(loaded => this._handleSettingsLoaded(loaded)), this._pageLoadedSubscription = combineLatest([
40
- this._ione.controllerInitialized,
41
- this._ione.articleLoaded
42
- ]).subscribe(([initialized, articleLoaded]) => {
43
- if (initialized && articleLoaded) {
44
- this.settingsLoaded = initialized;
45
- }
46
- }),
47
- // this._ione.controllerInitialized.subscribe((initialized: boolean) => {
48
- // this.settingsLoaded = initialized;
49
- // }),
50
- this.appEventService.onAnswersAvailable.subscribe((answers) => {
51
- if (answers && this.configurable) {
52
- this.showAddToCart = false;
53
- }
54
- else {
55
- this.showAddToCart = true;
56
- }
57
- }), this.appEventService.onGetRenderForRenderCarousel.subscribe((renderParameters) => {
58
- if (this.selections.nativeElement) {
59
- this.selections.nativeElement.getRenderForRenderCarousel(renderParameters);
60
- }
61
- }));
62
- }
63
- set sku(value) {
64
- if (value) {
65
- if (this.configuring) {
66
- this.show3D = false;
67
- this.fullScreen = false;
68
- this.configuring = false;
69
- this._changeDetector.detectChanges();
70
- }
71
- this._sku = value;
72
- this._getArticle();
73
- }
74
- }
75
- get sku() {
76
- return this._sku;
77
- }
78
- set settings(value) {
79
- if (value) {
80
- if (typeof value === 'string') {
81
- this._settings = JSON.parse(value);
82
- }
83
- else {
84
- this._settings = value;
85
- }
86
- }
87
- }
88
- get settings() {
89
- return this._settings;
90
- }
91
- set fullScreen(value) {
92
- this._fullScreen = value;
93
- this.fullscreenAnimationEnd = true;
94
- this._changeDetector.detectChanges();
95
- // setTimeout(() => {
96
- // this.fullscreenAnimationEnd = true;
97
- // }, 400)
98
- }
99
- get fullScreen() {
100
- return this._fullScreen;
101
- }
102
- get fullScreenIcon() {
103
- return this.fullScreen ? this.icon.NormalScreen : this.icon.FullScreen;
104
- }
105
- set currentView(value) {
106
- this._currentView = value;
107
- this.show2D = this._currentView === SelectorType.TwoD;
108
- this.show3D = this._currentView === SelectorType.ThreeD;
109
- this._changeDetector.detectChanges();
110
- }
111
- get currentView() {
112
- return this._currentView;
113
- }
114
- ngOnInit() {
115
- if (this._settings) {
116
- this.settingsService.settings = undefined;
117
- this.settingsService.createSettingsFromObject(this._settings);
118
- }
119
- else {
120
- this._settings = this.settingsService.settings;
121
- }
122
- }
123
- ngAfterViewInit() {
124
- }
125
- ngOnDestroy() {
126
- this._subs.forEach(s => s.unsubscribe());
127
- if (this._initializedSub) {
128
- this._initializedSub.unsubscribe();
129
- }
130
- this._pageLoadedSubscription.unsubscribe();
131
- this.configurator = undefined;
132
- this.selections = undefined;
133
- this.fullscreenbutton = undefined;
134
- }
135
- setInstance(event) {
136
- if (event.detail) {
137
- this._ione.setInstance(event.detail);
138
- }
139
- }
140
- handleStartConfiguration() {
141
- this.configuring = true;
142
- this._changeDetector.detectChanges();
143
- }
144
- showFullScreen() {
145
- this.fullScreen = !this.fullScreen;
146
- }
147
- _handleSettingsLoaded(loaded) {
148
- if (loaded) {
149
- this._ione.initConnection();
150
- }
151
- }
152
- _getArticle() {
153
- return __awaiter(this, void 0, void 0, function* () {
154
- if (this._initializedSub) {
155
- this._initializedSub.unsubscribe();
156
- }
157
- this._initializedSub = this._ione.controllerInitialized.subscribe((init) => __awaiter(this, void 0, void 0, function* () {
158
- if (init) {
159
- this._ione.getFullArticle(this._sku).then((article) => {
160
- this.article = article;
161
- if (this.article) {
162
- this.configurable = this.article.goodType === 'B' && (this.article.isConfigurable || this.article.isConfigurable === undefined);
163
- // this.configurable = this.article.goodType === 'B';
164
- if (this.configurable) {
165
- this.showAddToCart = false;
166
- this.currentView = SelectorType.TwoD;
167
- }
168
- else {
169
- this.showAddToCart = true;
170
- }
171
- this.threeD = this.article.is3D;
172
- this.selectorType = this.article.selectorTypeCustomer;
173
- this._ione.getDeliveryPrognosis(this.article.goodId).then((stockInfo) => {
174
- const stockAndDelivery = stockInfo;
175
- this.stockAndDelivery = new StockAndDelivery(0, stockAndDelivery.returnValue ? stockAndDelivery.returnValue : ' ');
176
- this._changeDetector.detectChanges();
177
- });
178
- this._changeDetector.detectChanges();
179
- }
180
- this._ione.articleLoaded.next(true);
181
- });
182
- }
183
- }));
184
- this.showRelatedProductsPopup = false;
185
- });
186
- }
187
- openStock() {
188
- this.openStockEvent.emit();
189
- }
190
- handlePopUpChange(event) {
191
- this.showRelatedProductsPopup = event;
192
- }
193
- }
194
- ProductPageComponent.decorators = [
195
- { type: Component, args: [{
196
- selector: 'app-product-page',
197
- template: "<ng-container *ngIf=\"settingsLoaded\">\r\n <div class=\"page-wrapper\">\r\n <div class=\"page-wrapper-content\">\r\n <div class=\"page-wrapper-left\">\r\n <div class=\"product-image-container\">\r\n <div class=\"product-page-block-selector-type\">\r\n <app-product-selector-type class=\"default-padding\"\r\n [(currentType)]=\"currentView\"\r\n [show2D]=\"configurable\"\r\n [show3D]=\"threeD\"\r\n ></app-product-selector-type>\r\n </div>\r\n <div class=\"product-page-block-image default-padding\" [class.full]=\"fullScreen\">\r\n\r\n <app-image-carousel\r\n *ngIf=\"!enableRenderCarousel\"\r\n [@toggleVisibilityByState]=\"show2D ? 'show' : 'hide'\"\r\n [images]=\"article?.images\"\r\n [showRefresh]=\"configurable && threeD\">\r\n </app-image-carousel>\r\n\r\n <app-render-carousel\r\n *ngIf=\"enableRenderCarousel\"\r\n [@toggleVisibilityByState]=\"show2D ? 'show' : 'hide'\"\r\n [article]=\"article\">\r\n </app-render-carousel>\r\n\r\n <ng-container *ngIf=\"settingsLoaded && this.configurable\">\r\n <threed-configurator\r\n #configurator\r\n class=\"threed-configurator\"\r\n [class.configurator-full-screen]=\"fullScreen\"\r\n [@toggleVisibilityByState]=\"show3D ? 'show' : 'hide'\"\r\n [@toggleFullScreen]=\"fullScreen ? 'fullscreen' : 'halfscreen'\">\r\n </threed-configurator>\r\n </ng-container>\r\n\r\n <co-icon #fullscreenbutton class=\"fullscreen-button\" *ngIf=\"show3D\"\r\n [@toggleTopLeft]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n [iconData]=\"iconCache.getIcon(fullScreenIcon)\"\r\n (click)=\"showFullScreen()\"></co-icon>\r\n <co-icon class=\"threed-watermark\" *ngIf=\"show3D && fullScreen\"\r\n [iconData]=\"iconCache.getIcon(icon.Logo)\"></co-icon>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-right\">\r\n <div class=\"product-page-block-description\">\r\n <app-product-description class=\"default-padding\" [article]=\"article\"></app-product-description>\r\n </div>\r\n <div class=\"product-page-block-additional\">\r\n <div class=\"product-page-block-additional-description\">\r\n <app-product-additional-description class=\"default-padding\" [article]=\"article\"></app-product-additional-description>\r\n </div>\r\n <div class=\"product-page-block-price\" [class.full]=\"configuring\">\r\n <app-product-price class=\"s-padding\" *ngIf=\"!configuring\"\r\n [pricing]=\"article?.pricing\"\r\n [configurable]=\"configurable\"\r\n ></app-product-price>\r\n <ng-container *ngIf=\"settingsLoaded\">\r\n <threed-selections #selections class=\"threed-selections\"\r\n [class.show-selections]=\"configuring\"\r\n [@toggleFullScreenRight]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n [class.default-padding]=\"!fullScreen\"\r\n [class.show-full-screen]=\"fullScreen\"\r\n [class.mini-scrollbar]=\"fullScreen\"\r\n [sku]=\"sku\"\r\n [settings]=\"settings\"\r\n (onUserActionFromThreeD)=\"configuring = true\"\r\n (instanceSet)=\"setInstance($event)\"\r\n (onImageReceived)=\"appEventService.onImageReceived.next($event)\"\r\n (onRenderStarted)=\"appEventService.onRenderStarted.next()\"\r\n (onDraftRenderImageReceived)=\"appEventService.onDraftRenderImageReceived.next($event)\"\r\n (onArticleReceived)=\"appEventService.onArticleReceived.next($event.detail)\"\r\n (onSelectionsReceived)=\"appEventService.onSelectionsReceived.next($event.detail)\"\r\n (onArticleInfoReceived)=\"appEventService.onArticleInfoReceived.next($event.detail)\"\r\n (onAnswersAvailable)=\"appEventService.onAnswersAvailable.next($event.detail)\"\r\n (onReadyToRender)=\"appEventService.onReadyToRender.next($event.detail)\"\r\n (onRenderImageReceived)=\"appEventService.onRenderImageReceived.next($event.detail)\"\r\n ></threed-selections>\r\n </ng-container>\r\n </div>\r\n <div class=\"product-page-block-addtocart no-padding product-action-buttons\" *ngIf=\"!configuring\" [@toggleTopRight]=\"fullScreen ? 'fullscreen' : 'halfscreen'\">\r\n <app-product-addtocart\r\n [configurable]=\"configurable\"\r\n [createFrozenArticle]=\"createFrozenArticle\"\r\n [configuring]=\"configuring\"\r\n [showAddToCart]=\"showAddToCart\"\r\n [article]=\"article\"\r\n [externalSource]=\"externalSource\"\r\n [isReturn]=\"isReturn\"\r\n (startConfiguration)=\"handleStartConfiguration()\"\r\n (showRelatedPopup)=\"handlePopUpChange($event)\"\r\n ></app-product-addtocart>\r\n </div>\r\n <div class=\"addtocart-reserved product-action-buttons\" *ngIf=\"configuring\" [class.full-screen]=\"fullScreen\">\r\n <app-product-addtocart class=\"default-padding\"\r\n [configurable]=\"false\"\r\n [fullscreen]=\"fullScreen\"\r\n [showAddToCart]=\"showAddToCart\"\r\n [configuring]=\"configuring\"\r\n [article]=\"article\"\r\n [externalSource]=\"externalSource\"\r\n [isReturn]=\"isReturn\"\r\n (startConfiguration)=\"handleStartConfiguration()\"\r\n ></app-product-addtocart>\r\n </div>\r\n <div class=\"product-page-block-variants\">\r\n <app-product-related class=\"no-padding\" *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [externalSource]=\"externalSource\"\r\n [articles]=\"article?.relatedArticles\" [refType]=\"64\" [label]=\"'VARIANTS' | localize\"></app-product-related>\r\n </div>\r\n <div class=\"product-page-block-stock\">\r\n <app-product-stock class=\"no-padding\" [goodId]=\"article?.goodId\" (openStockEvent)=\"openStock()\"></app-product-stock>\r\n </div>\r\n <div class=\"product-page-block-delivery\">\r\n <app-product-delivery class=\"no-padding\" [stockAndDelivery]=\"stockAndDelivery\"></app-product-delivery>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-content\">\r\n <div class=\"page-wrapper-left\" *ngIf=\"article\">\r\n <app-product-info-tabs class=\"no-padding\" [article]=\"article\"></app-product-info-tabs>\r\n </div>\r\n <div class=\"page-wrapper-right\">\r\n <div class=\"product-page-block-related s-padding\">\r\n <app-product-related\r\n *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [externalSource]=\"externalSource\"\r\n [articles]=\"article?.relatedArticles\"\r\n [refType]=\"1\"\r\n [label]=\"'RELATED_PRODUCTS' | localize\">\r\n </app-product-related>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-content no-top-margin\">\r\n <div class=\"page-wrapper-full\">\r\n <div class=\"product-page-block-alternatives s-padding\">\r\n <app-product-related\r\n *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [externalSource]=\"externalSource\"\r\n [articles]=\"article?.relatedArticles\"\r\n [refType]=\"4\"\r\n [isSmallModus]=\"false\"\r\n [label]=\"'ALTERNATIVE_PRODUCTS' | localize\">\r\n </app-product-related>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div *ngIf=\"showRelatedProductsPopup\">\r\n <co-product-dialog\r\n [mainArticle]=\"article\"\r\n [articles]=\"article?.relatedArticles\"\r\n [refType]=\"1\"\r\n (closeRelatedPopup)=\"handlePopUpChange($event)\"\r\n >\r\n </co-product-dialog>\r\n\r\n <!-- <app-product-related class=\"no-padding\" *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"-->\r\n <!-- [articles]=\"article?.relatedArticles\" [refType]=\"64\" [label]=\"'VARIANTS' | localize\"></app-product-related>-->\r\n </div>\r\n\r\n\r\n </div>\r\n</ng-container>\r\n",
198
- animations: [
199
- trigger('toggleFullScreen', [
200
- state('fullscreen', style({ 'position': 'fixed', 'top': '0', 'left': '0', 'width': '100%', 'height': '100%' })),
201
- state('halfscreen', style({ 'position': '*', 'top': '*', 'left': '*', 'width': '*', 'height': '*' })),
202
- transition('halfscreen <=> fullscreen', animate('200ms ease-in-out'))
203
- ]),
204
- trigger('toggleTopLeft', [
205
- state('fullscreen', style({ 'position': 'fixed', 'top': '0', 'left': '0' })),
206
- state('halfscreen', style({ 'position': 'absolute', 'top': '*', 'left': '*' })),
207
- transition('halfscreen <=> fullscreen', animate('200ms ease-in-out'))
208
- ]),
209
- trigger('toggleTopRight', [
210
- state('fullscreen', style({ 'position': 'fixed', 'top': '0', 'right': '0' })),
211
- state('halfscreen', style({ 'position': '*', 'top': '*', 'right': '*' })),
212
- transition('halfscreen <=> fullscreen', animate('200ms ease-in-out'))
213
- ]),
214
- trigger('toggleFullScreenRight', [
215
- state('fullscreen', style({ 'position': 'fixed', 'width': '400px', 'top': '0', 'right': '0' })),
216
- state('halfscreen', style({ 'position': '*', 'width': '*', 'top': '*', 'right': '*' })),
217
- transition('halfscreen <=> fullscreen', animate('200ms ease-in-out'))
218
- ]),
219
- trigger('toggleVisibilityByState', [
220
- state('hide', style({ 'opacity': '0', 'display': 'none' })),
221
- state('show', style({ 'display': 'block', 'opacity': '1' })),
222
- transition('hide <=> show', animate('200ms 100ms ease-in-out'))
223
- ]),
224
- trigger('toggleVisibility', [
225
- state('void', style({ 'opacity': '0' })),
226
- state('*', style({ 'opacity': '1' })),
227
- transition('void => *', animate('200ms ease-in-out'))
228
- ])
229
- ],
230
- styles: [".page-wrapper{font-family:iOneMontserrat;font-size:12px;display:flex;flex-direction:column;max-width:100%;padding:0 15px;margin:0 auto}.page-wrapper-content{display:flex;flex-direction:row;margin:40px 0}.page-wrapper-content:first-child{margin-top:0}.page-wrapper-content.no-top-margin{margin-top:0}.page-wrapper-left{display:flex;width:65%;flex-direction:column}.page-wrapper-right{display:flex;width:35%;flex-direction:column}.page-wrapper-full{display:flex;width:100%;flex-direction:column}.page-wrapper-66{display:flex;width:60%;flex-direction:column}.page-wrapper-33{display:flex;width:40%;flex-direction:column}.threed-selections{display:none}.threed-selections.show-selections{display:block}.threed-selections ::ng-deep .rp-lite-selector .rp-answers-slideout ::ng-deep co-slideout{width:480px;z-index:3}.threed-selections ::ng-deep .co-summary-line{cursor:pointer}.product-action-buttons{position:relative}.product-action-buttons.full-screen{z-index:10}.product-image-container{grid-column:1/7;grid-row:1/6;position:relative}.product-page-block-selector-type{width:auto;position:absolute;top:10px;right:10px;z-index:2}.product-page-block-image{box-sizing:border-box;width:100%;z-index:1;position:relative}.product-page-block-image .threed-configurator{border:none}.product-page-block-image .threed-configurator .layer .viewer canvas{height:100%;width:100%}.product-page-block-image .threed-configurator ::ng-deep .rp-element-toolbar{top:30px}.product-page-block-image app-image-carousel.show-animated,.product-page-block-image threed-configurator.show-animated{opacity:1;z-index:0;transition:all .2s ease-in-out}.product-page-block-image .fullscreen-button{cursor:pointer;height:50px;width:50px;position:absolute;left:30px;z-index:100;top:30px}.product-page-block-image.full{grid-column:1/11;grid-row:2/span 10;z-index:3}.product-page-block-description{grid-column:7/12;grid-row:1/1}.product-page-block-additional{width:100%}.product-page-block-additional-description{width:100%}.product-page-block-price{grid-column:1/3;grid-row:2/2;align-self:center}.product-page-block-price.full{grid-column:1/5}.product-page-block-addtocart{grid-column:3/5;grid-row:2/2;align-self:center;padding-top:30px!important}.product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button{cursor:pointer}.product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button:hover div.rippler{background:#f6f5f4}.product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button ::ng-deep co-icon{position:relative;z-index:2}.product-page-block-addtocart ::ng-deep co-button.cart-button{cursor:pointer}.product-page-block-addtocart ::ng-deep co-button.cart-button:hover{background:#74B77F}.addtocart-reserved{grid-column:1/3;grid-row:3/3}.product-page-block-stock{grid-column:1/3;grid-row:4/4}.product-page-block-delivery{grid-column:3/5;grid-row:4/4}::ng-deep co-scroll-container{overflow:hidden;position:relative}::ng-deep co-scroll-container .content-wrapper{padding:0}::ng-deep co-scroll-container .scroll-layer{left:0;top:0}::ng-deep co-scroll-container .scroll-layer .scroller{width:34px;height:34px;border-radius:36px;background:#fff;cursor:pointer;box-shadow:0 0 5px #0003}::ng-deep co-scroll-container .scroll-layer .scroller:hover{background:#f6f5f4}::ng-deep co-scroll-container .scroll-layer .scroller.left-scroll{left:5px}::ng-deep co-scroll-container .scroll-layer .scroller.left-scroll:before{border-width:0 3px 3px 0;padding:4px;margin-left:13px;margin-top:11px}::ng-deep co-scroll-container .scroll-layer .scroller.right-scroll{right:5px}::ng-deep co-scroll-container .scroll-layer .scroller.right-scroll:after{border-width:0 3px 3px 0;padding:4px;margin-left:9px;margin-top:11px}.product-page-block-variants{margin:20px 0 0}.product-page-block-variants ::ng-deep app-product-related>div{display:flex;grid-gap:15px;gap:15px;align-items:center;border-top:1px solid #f6f5f4;padding:5px 0 7px 15px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep app-header h3{font-size:14px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container{width:320px;max-width:100%;padding:0 16px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller{width:26px;height:26px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller.left-scroll{left:5px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller.left-scroll:before{border-width:0 2px 2px 0;margin-left:9px;margin-top:9px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller.right-scroll{right:5px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller.right-scroll:after{border-width:0 2px 2px 0;margin-left:6px;margin-top:9px}.product-page-block-variants ::ng-deep co-tile.small{min-width:50px!important;max-width:50px!important;border:1px solid #f6f5f4;margin:0 10px 0 0;border-radius:4px}.product-page-block-variants ::ng-deep co-tile.small:hover{border-color:#22313c}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper{padding:0}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .tile-top{display:none}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .image{height:40px!important;padding:5px;margin-bottom:10px}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .image .no-image-wrapper .no-image{width:40px;height:40px}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .image .no-image-wrapper span{display:none!important}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .tile-bottom{display:none}.product-page-block-variants ::ng-deep co-tile.small .tile-extra-bottom{display:none}.product-page-block-alternatives ::ng-deep .article-wrapper{margin:0 20px 0 0}.product-page-block-alternatives ::ng-deep .article-wrapper:last-child{margin:0}.product-page-block-alternatives ::ng-deep co-tile{cursor:pointer;transition:all .14s ease-out;border:1px solid transparent;border-bottom-color:#f6f5f4;padding:15px 10px 0;width:319px;max-width:none;min-width:0;box-sizing:border-box}.product-page-block-alternatives ::ng-deep co-tile:hover{box-shadow:none;border-color:#f6f5f4}.product-page-block-alternatives ::ng-deep co-tile:hover .tile-wrapper div.image co-image{transform:scale(1.05)}.product-page-block-alternatives ::ng-deep co-tile:hover .tile-wrapper .tile-bottom{margin:0}.product-page-block-alternatives ::ng-deep co-tile:hover .tile-extra-bottom .main .description{text-decoration:underline}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper{padding:0;position:relative;outline:none;overflow:hidden}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper .tile-top{position:absolute;left:0;top:0;width:100%}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper div.image{position:relative;padding:1px;display:flex;align-items:center;justify-content:center;overflow:hidden;max-width:250px;margin:0 auto 10px;height:auto}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper div.image:after{content:\"\";padding:100% 0 0;float:left;width:100%}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper div.image co-image{position:absolute;left:0;top:0;overflow:hidden;width:100%;height:100%;-o-object-fit:contain;object-fit:contain;z-index:-1;transition:all .2s ease}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper div.image .no-image-wrapper{position:absolute;display:flex;left:50%;top:50%;margin:-48px 0 0 -54px;flex-direction:column;align-items:center;opacity:.25}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper .tile-bottom{transition:all .2s ease;height:auto}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper .tile-bottom ::ng-deep co-button{margin:0 0 5px!important;width:36px;height:36px;border:1px solid #22313C;cursor:pointer;border-radius:4px;padding:0!important;font-size:0}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper .tile-bottom ::ng-deep co-button co-icon{width:32px;height:32px;margin:0 2px}.product-page-block-alternatives ::ng-deep co-tile .tile-extra-bottom{outline:none;padding:15px 0;background:transparent!important;min-height:60px}.product-page-block-alternatives ::ng-deep co-tile .tile-extra-bottom .main{padding:0 10px}.product-page-block-alternatives ::ng-deep co-tile .tile-extra-bottom .main .description{font-size:15px;font-weight:bold;margin:0 0 2px}.product-page-block-alternatives ::ng-deep co-tile .tile-extra-bottom .main .price{font-size:16px;margin:15px 0 0;font-weight:bold;color:#2b60a7}.product-page-block-additional-information{grid-column:1/6;grid-row:4/4}.product-page-block-properties{grid-column:7/10;grid-row:3/3}.product-page-block-related-articles{grid-column:2/6;grid-row:4/4}.product-page-block-alternative-articles{grid-column:6/10;grid-row:4/4}.product-page-block-documents{grid-column:2/6;grid-row:5/5}.product-page-block-symbols{grid-column:6/10;grid-row:5/5}@media screen and (max-width: 950px){.default-padding{padding-top:20px;padding-bottom:20px}.m-padding{padding-top:15px;padding-bottom:15px}.s-padding{padding-top:5px;padding-bottom:5px}.page-wrapper{max-width:650px}.page-wrapper .page-wrapper-content{flex-direction:column;margin:30px 0}.page-wrapper .page-wrapper-content .page-wrapper-left{width:100%}.page-wrapper .page-wrapper-content .page-wrapper-right{width:100%}.product-page-block-alternatives ::ng-deep co-tile{width:284px!important}}@media screen and (max-width: 650px){[class*=-padding]{padding-left:0!important;padding-right:0!important}.product-page-block-addtocart ::ng-deep co-number-picker co-button{height:38px!important}.product-page-block-addtocart ::ng-deep co-number-picker co-input-text{height:38px!important;width:36px!important}.product-page-block-addtocart ::ng-deep co-button.cart-button{height:40px;font-size:13px}}\n"]
231
- },] }
232
- ];
233
- ProductPageComponent.ctorParameters = () => [
234
- { type: ProductConnectorService },
235
- { type: Renderer2 },
236
- { type: ChangeDetectorRef },
237
- { type: IconCacheService },
238
- { type: ProductSettingsService },
239
- { type: ProductEventService }
240
- ];
241
- ProductPageComponent.propDecorators = {
242
- configurator: [{ type: ViewChild, args: ['configurator', { read: ElementRef },] }],
243
- selections: [{ type: ViewChild, args: ['selections', { read: ElementRef },] }],
244
- fullscreenbutton: [{ type: ViewChild, args: ['fullscreenbutton', { read: ElementRef },] }],
245
- sku: [{ type: Input }],
246
- settings: [{ type: Input }],
247
- externalSource: [{ type: Input }],
248
- createFrozenArticle: [{ type: Input }],
249
- isReturn: [{ type: Input }],
250
- showRelatedProductsPopup: [{ type: Input }],
251
- enableRenderCarousel: [{ type: Input }],
252
- openStockEvent: [{ type: Output }]
253
- };
254
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1wYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9wcm9kdWN0LXBhZ2UvcHJvZHVjdC1wYWdlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFnQixpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVKLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBRWhGLE9BQU8sRUFBQyxhQUFhLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDL0UsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBMEN4RSxNQUFNLE9BQU8sb0JBQW9CO0lBOEcvQixZQUFvQixLQUE4QixFQUN4QyxTQUFvQixFQUNwQixlQUFrQyxFQUNuQyxTQUEyQixFQUMzQixlQUF1QyxFQUN2QyxlQUFvQztRQUx6QixVQUFLLEdBQUwsS0FBSyxDQUF5QjtRQUN4QyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLG9CQUFlLEdBQWYsZUFB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QUMsQ0FBQzt3QkFDdEMsS0FBSyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBQyxTQUFTLEVBQUUsR0FBRyxFQUFDLENBQUMsQ0FBQzt3QkFDbkMsVUFBVSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztxQkFDdEQsQ0FBQztpQkFDSDs7YUFFRjs7O1lBbERPLHVCQUF1QjtZQURrRixTQUFTO1lBQW5HLGlCQUFpQjtZQVFoQyxnQkFBZ0I7WUFDaEIsc0JBQXNCO1lBQ3RCLG1CQUFtQjs7OzJCQTZDeEIsU0FBUyxTQUFDLGNBQWMsRUFBRSxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUM7eUJBRzVDLFNBQVMsU0FBQyxZQUFZLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDOytCQUcxQyxTQUFTLFNBQUMsa0JBQWtCLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDO2tCQUdoRCxLQUFLO3VCQWtCTCxLQUFLOzZCQVdMLEtBQUs7a0NBR0wsS0FBSzt1QkFHTCxLQUFLO3VDQUdMLEtBQUs7bUNBR0wsS0FBSzs2QkFHTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBSZW5kZXJlcjIsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7UHJvZHVjdENvbm5lY3RvclNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvcHJvZHVjdC1jb25uZWN0b3Iuc2VydmljZSc7XHJcbmltcG9ydCB7QXJ0aWNsZUZ1bGxPYmplY3R9IGZyb20gJ0Bjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtZnVsbC1vYmplY3QnO1xyXG5pbXBvcnQge2NvbWJpbmVMYXRlc3QsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7U3RvY2tBbmREZWxpdmVyeX0gZnJvbSAnLi4vLi4vbW9kZWwvc3RvY2stYW5kLWRlbGl2ZXJ5JztcclxuaW1wb3J0IHtTZWxlY3RvclR5cGV9IGZyb20gJy4uLy4uL2VudW0vc2VsZWN0b3ItdHlwZS5lbnVtJztcclxuaW1wb3J0IHthbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXJ9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQge0ljb25FbnVtfSBmcm9tICcuLi8uLi9lbnVtL2ljb24uZW51bSc7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1Byb2R1Y3RTZXR0aW5nc1NlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvcHJvZHVjdC1zZXR0aW5ncy5zZXJ2aWNlJztcclxuaW1wb3J0IHtQcm9kdWN0RXZlbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3Byb2R1Y3QtZXZlbnQuc2VydmljZSc7XHJcbmltcG9ydCB7RGVsaXZlcnlQcm9nbm9zaXN9IGZyb20gJ0Bjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2RlbGl2ZXJ5LXByb2dub3Npcyc7XHJcbmltcG9ydCB7RXh0ZXJuYWxTb3VyY2V9IGZyb20gJ0Bjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2V4dGVybmFsLXNvdXJjZS5ibyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1wcm9kdWN0LXBhZ2UnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9kdWN0LXBhZ2UuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3Byb2R1Y3QtcGFnZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIHRyaWdnZXIoJ3RvZ2dsZUZ1bGxTY3JlZW4nLCBbXHJcbiAgICAgIHN0YXRlKCdmdWxsc2NyZWVuJywgc3R5bGUoeydwb3NpdGlvbic6ICdmaXhlZCcsICd0b3AnOiAnMCcsICdsZWZ0JzogJzAnLCAnd2lkdGgnOiAnMTAwJScsICdoZWlnaHQnOiAnMTAwJSd9KSksXHJcbiAgICAgIHN0YXRlKCdoYWxmc2NyZWVuJywgc3R5bGUoeydwb3NpdGlvbic6ICcqJywgJ3RvcCc6ICcqJywgJ2xlZnQnOiAnKicsICd3aWR0aCc6ICcqJywgJ2hlaWdodCc6ICcqJ30pKSxcclxuICAgICAgdHJhbnNpdGlvbignaGFsZnNjcmVlbiA8PT4gZnVsbHNjcmVlbicsIGFuaW1hdGUoJzIwMG1zIGVhc2UtaW4tb3V0JykpXHJcbiAgICBdKSxcclxuICAgIHRyaWdnZXIoJ3RvZ2dsZVRvcExlZnQnLCBbXHJcbiAgICAgIHN0YXRlKCdmdWxsc2NyZWVuJywgc3R5bGUoeydwb3NpdGlvbic6ICdmaXhlZCcsICd0b3AnOiAnMCcsICdsZWZ0JzogJzAnfSkpLFxyXG4gICAgICBzdGF0ZSgnaGFsZnNjcmVlbicsIHN0eWxlKHsncG9zaXRpb24nOiAnYWJzb2x1dGUnLCAndG9wJzogJyonLCAnbGVmdCc6ICcqJ30pKSxcclxuICAgICAgdHJhbnNpdGlvbignaGFsZnNjcmVlbiA8PT4gZnVsbHNjcmVlbicsIGFuaW1hdGUoJzIwMG1zIGVhc2UtaW4tb3V0JykpXHJcbiAgICBdKSxcclxuICAgIHRyaWdnZXIoJ3RvZ2dsZVRvcFJpZ2h0JywgW1xyXG4gICAgICBzdGF0ZSgnZnVsbHNjcmVlbicsIHN0eWxlKHsncG9zaXRpb24nOiAnZml4ZWQnLCAndG9wJzogJzAnLCAncmlnaHQnOiAnMCd9KSksXHJcbiAgICAgIHN0YXRlKCdoYWxmc2NyZWVuJywgc3R5bGUoeydwb3NpdGlvbic6ICcqJywgJ3RvcCc6ICcqJywgJ3JpZ2h0JzogJyonfSkpLFxyXG4gICAgICB0cmFuc2l0aW9uKCdoYWxmc2NyZWVuIDw9PiBmdWxsc2NyZWVuJywgYW5pbWF0ZSgnMjAwbXMgZWFzZS1pbi1vdXQnKSlcclxuICAgIF0pLFxyXG4gICAgdHJpZ2dlcigndG9nZ2xlRnVsbFNjcmVlblJpZ2h0JywgW1xyXG4gICAgICBzdGF0ZSgnZnVsbHNjcmVlbicsIHN0eWxlKHsncG9zaXRpb24nOiAnZml4ZWQnLCAnd2lkdGgnOiAnNDAwcHgnLCAndG9wJzogJzAnLCAncmlnaHQnOiAnMCd9KSksXHJcbiAgICAgIHN0YXRlKCdoYWxmc2NyZWVuJywgc3R5bGUoeydwb3NpdGlvbic6ICcqJywgJ3dpZHRoJzogJyonLCAndG9wJzogJyonLCAncmlnaHQnOiAnKid9KSksXHJcbiAgICAgIHRyYW5zaXRpb24oJ2hhbGZzY3JlZW4gPD0+IGZ1bGxzY3JlZW4nLCBhbmltYXRlKCcyMDBtcyBlYXNlLWluLW91dCcpKVxyXG4gICAgXSksXHJcbiAgICB0cmlnZ2VyKCd0b2dnbGVWaXNpYmlsaXR5QnlTdGF0ZScsIFtcclxuICAgICAgc3RhdGUoJ2hpZGUnLCBzdHlsZSh7J29wYWNpdHknOiAnMCcsICdkaXNwbGF5JzogJ25vbmUnfSkpLFxyXG4gICAgICBzdGF0ZSgnc2hvdycsIHN0eWxlKHsnZGlzcGxheSc6ICdibG9jaycsICdvcGFjaXR5JzogJzEnfSkpLFxyXG4gICAgICB0cmFuc2l0aW9uKCdoaWRlIDw9PiBzaG93JywgYW5pbWF0ZSgnMjAwbXMgMTAwbXMgZWFzZS1pbi1vdXQnKSlcclxuICAgIF0pLFxyXG4gICAgdHJpZ2dlcigndG9nZ2xlVmlzaWJpbGl0eScsIFtcclxuICAgICAgc3RhdGUoJ3ZvaWQnLCBzdHlsZSh7J29wYWNpdHknOiAnMCd9KSksXHJcbiAgICAgIHN0YXRlKCcqJywgc3R5bGUoeydvcGFjaXR5JzogJzEnfSkpLFxyXG4gICAgICB0cmFuc2l0aW9uKCd2b2lkID0+IConLCBhbmltYXRlKCcyMDBtcyBlYXNlLWluLW91dCcpKVxyXG4gICAgXSlcclxuICBdXHJcblxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvZHVjdFBhZ2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGljb246IHR5cGVvZiBJY29uRW51bSA9IEljb25FbnVtO1xyXG5cclxuICBAVmlld0NoaWxkKCdjb25maWd1cmF0b3InLCB7cmVhZDogRWxlbWVudFJlZn0pXHJcbiAgcHVibGljIGNvbmZpZ3VyYXRvcjogRWxlbWVudFJlZjtcclxuXHJcbiAgQFZpZXdDaGlsZCgnc2VsZWN0aW9ucycsIHtyZWFkOiBFbGVtZW50UmVmfSlcclxuICBwdWJsaWMgc2VsZWN0aW9uczogRWxlbWVudFJlZjtcclxuXHJcbiAgQFZpZXdDaGlsZCgnZnVsbHNjcmVlbmJ1dHRvbicsIHtyZWFkOiBFbGVtZW50UmVmfSlcclxuICBwdWJsaWMgZnVsbHNjcmVlbmJ1dHRvbjogRWxlbWVudFJlZjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHNrdSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgaWYgKHRoaXMuY29uZmlndXJpbmcpIHtcclxuICAgICAgICB0aGlzLnNob3czRCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZnVsbFNjcmVlbiA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY29uZmlndXJpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5fc2t1ID0gdmFsdWU7XHJcbiAgICAgIHRoaXMuX2dldEFydGljbGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2t1KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2t1O1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHNldHRpbmdzKHZhbHVlOiBhbnkpIHtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgIHRoaXMuX3NldHRpbmdzID0gSlNPTi5wYXJzZSh2YWx1ZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5fc2V0dGluZ3MgPSB2YWx1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZXh0ZXJuYWxTb3VyY2U6IEV4dGVybmFsU291cmNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBjcmVhdGVGcm96ZW5BcnRpY2xlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgaXNSZXR1cm46IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd1JlbGF0ZWRQcm9kdWN0c1BvcHVwOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGVuYWJsZVJlbmRlckNhcm91c2VsOiBib29sZWFuO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgb3BlblN0b2NrRXZlbnQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgcHVibGljIGdldCBzZXR0aW5ncygpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NldHRpbmdzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldCBmdWxsU2NyZWVuKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9mdWxsU2NyZWVuID0gdmFsdWU7XHJcbiAgICB0aGlzLmZ1bGxzY3JlZW5BbmltYXRpb25FbmQgPSB0cnVlO1xyXG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgLy8gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAvLyAgIHRoaXMuZnVsbHNjcmVlbkFuaW1hdGlvbkVuZCA9IHRydWU7XHJcbiAgICAvLyB9LCA0MDApXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGZ1bGxTY3JlZW4oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZnVsbFNjcmVlbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZnVsbFNjcmVlbkljb24oKTogSWNvbkVudW0ge1xyXG4gICAgcmV0dXJuIHRoaXMuZnVsbFNjcmVlbiA/IHRoaXMuaWNvbi5Ob3JtYWxTY3JlZW4gOiB0aGlzLmljb24uRnVsbFNjcmVlbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXQgY3VycmVudFZpZXcodmFsdWU6IFNlbGVjdG9yVHlwZSkge1xyXG4gICAgdGhpcy5fY3VycmVudFZpZXcgPSB2YWx1ZTtcclxuICAgIHRoaXMuc2hvdzJEID0gdGhpcy5fY3VycmVudFZpZXcgPT09IFNlbGVjdG9yVHlwZS5Ud29EO1xyXG4gICAgdGhpcy5zaG93M0QgPSB0aGlzLl9jdXJyZW50VmlldyA9PT0gU2VsZWN0b3JUeXBlLlRocmVlRDtcclxuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY3VycmVudFZpZXcoKTogU2VsZWN0b3JUeXBlIHtcclxuICAgIHJldHVybiB0aGlzLl9jdXJyZW50VmlldztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhcnRpY2xlOiBBcnRpY2xlRnVsbE9iamVjdDtcclxuICBwdWJsaWMgc3RvY2tBbmREZWxpdmVyeTogU3RvY2tBbmREZWxpdmVyeTtcclxuICBwdWJsaWMgY29uZmlndXJhYmxlOiBib29sZWFuID0gdHJ1ZTtcclxuICBwdWJsaWMgdGhyZWVEOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNlbGVjdG9yVHlwZTogU2VsZWN0b3JUeXBlO1xyXG4gIHB1YmxpYyBzaG93MkQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHB1YmxpYyBzaG93M0Q6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgY29uZmlndXJpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd0FkZFRvQ2FydDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBmdWxsc2NyZWVuQW5pbWF0aW9uRW5kOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNldHRpbmdzTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfc2t1OiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfaW5pdGlhbGl6ZWRTdWI6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIF9mdWxsU2NyZWVuOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfY3VycmVudFZpZXc6IFNlbGVjdG9yVHlwZTtcclxuICBwcml2YXRlIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG4gIHByaXZhdGUgX3NldHRpbmdzOiBhbnk7XHJcbiAgcHJpdmF0ZSBfcGFnZUxvYWRlZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9pb25lOiBQcm9kdWN0Q29ubmVjdG9yU2VydmljZSxcclxuICAgIHByaXZhdGUgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwdWJsaWMgaWNvbkNhY2hlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHVibGljIHNldHRpbmdzU2VydmljZTogUHJvZHVjdFNldHRpbmdzU2VydmljZSxcclxuICAgIHB1YmxpYyBhcHBFdmVudFNlcnZpY2U6IFByb2R1Y3RFdmVudFNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMuX3N1YnMucHVzaChcclxuICAgICAgdGhpcy5hcHBFdmVudFNlcnZpY2Uub25Gb3JjZVJlbmRlckltYWdlLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbnMubmF0aXZlRWxlbWVudCkge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3Rpb25zLm5hdGl2ZUVsZW1lbnQuZm9yY2VSZW5kZXJJbWFnZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICAgIHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzTG9hZGVkLnN1YnNjcmliZShsb2FkZWQgPT4gdGhpcy5faGFuZGxlU2V0dGluZ3NMb2FkZWQobG9hZGVkKSksXHJcbiAgICAgIHRoaXMuX3BhZ2VMb2FkZWRTdWJzY3JpcHRpb24gPSBjb21iaW5lTGF0ZXN0KFtcclxuICAgICAgICB0aGlzLl9pb25lLmNvbnRyb2xsZXJJbml0aWFsaXplZCxcclxuICAgICAgICB0aGlzLl9pb25lLmFydGljbGVMb2FkZWRcclxuICAgICAgXSkuc3Vic2NyaWJlKChbaW5pdGlhbGl6ZWQsIGFydGljbGVMb2FkZWRdKSA9PiB7XHJcbiAgICAgICAgaWYgKGluaXRpYWxpemVkICYmIGFydGljbGVMb2FkZWQpIHtcclxuICAgICAgICAgIHRoaXMuc2V0dGluZ3NMb2FkZWQgPSBpbml0aWFsaXplZDtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICAvLyB0aGlzLl9pb25lLmNvbnRyb2xsZXJJbml0aWFsaXplZC5zdWJzY3JpYmUoKGluaXRpYWxpemVkOiBib29sZWFuKSA9PiB7XHJcbiAgICAgIC8vICAgdGhpcy5zZXR0aW5nc0xvYWRlZCA9IGluaXRpYWxpemVkO1xyXG4gICAgICAvLyB9KSxcclxuICAgICAgdGhpcy5hcHBFdmVudFNlcnZpY2Uub25BbnN3ZXJzQXZhaWxhYmxlLnN1YnNjcmliZSgoYW5zd2VycykgPT4ge1xyXG4gICAgICAgIGlmIChhbnN3ZXJzICYmIHRoaXMuY29uZmlndXJhYmxlKSB7XHJcbiAgICAgICAgICB0aGlzLnNob3dBZGRUb0NhcnQgPSBmYWxzZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zaG93QWRkVG9DYXJ0ID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICB0aGlzLmFwcEV2ZW50U2VydmljZS5vbkdldFJlbmRlckZvclJlbmRlckNhcm91c2VsLnN1YnNjcmliZSgocmVuZGVyUGFyYW1ldGVyczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9ucy5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGlvbnMubmF0aXZlRWxlbWVudC5nZXRSZW5kZXJGb3JSZW5kZXJDYXJvdXNlbChyZW5kZXJQYXJhbWV0ZXJzKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG5cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMuX3NldHRpbmdzKSB7XHJcbiAgICAgIHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzID0gdW5kZWZpbmVkO1xyXG4gICAgICB0aGlzLnNldHRpbmdzU2VydmljZS5jcmVhdGVTZXR0aW5nc0Zyb21PYmplY3QodGhpcy5fc2V0dGluZ3MpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fc2V0dGluZ3MgPSB0aGlzLnNldHRpbmdzU2VydmljZS5zZXR0aW5ncztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICAgIGlmICh0aGlzLl9pbml0aWFsaXplZFN1Yikge1xyXG4gICAgICB0aGlzLl9pbml0aWFsaXplZFN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fcGFnZUxvYWRlZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5jb25maWd1cmF0b3IgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnNlbGVjdGlvbnMgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLmZ1bGxzY3JlZW5idXR0b24gPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0SW5zdGFuY2UoZXZlbnQ6IEN1c3RvbUV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAoZXZlbnQuZGV0YWlsKSB7XHJcbiAgICAgIHRoaXMuX2lvbmUuc2V0SW5zdGFuY2UoZXZlbnQuZGV0YWlsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTdGFydENvbmZpZ3VyYXRpb24oKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbmZpZ3VyaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzaG93RnVsbFNjcmVlbigpOiB2b2lkIHtcclxuICAgIHRoaXMuZnVsbFNjcmVlbiA9ICF0aGlzLmZ1bGxTY3JlZW47XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9oYW5kbGVTZXR0aW5nc0xvYWRlZChsb2FkZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGlmIChsb2FkZWQpIHtcclxuICAgICAgdGhpcy5faW9uZS5pbml0Q29ubmVjdGlvbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfZ2V0QXJ0aWNsZSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICh0aGlzLl9pbml0aWFsaXplZFN1Yikge1xyXG4gICAgICB0aGlzLl9pbml0aWFsaXplZFN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5faW5pdGlhbGl6ZWRTdWIgPSB0aGlzLl9pb25lLmNvbnRyb2xsZXJJbml0aWFsaXplZC5zdWJzY3JpYmUoYXN5bmMgKGluaXQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgaWYgKGluaXQpIHtcclxuICAgICAgICB0aGlzLl9pb25lLmdldEZ1bGxBcnRpY2xlKHRoaXMuX3NrdSkudGhlbigoYXJ0aWNsZTogQXJ0aWNsZUZ1bGxPYmplY3QpID0+IHtcclxuICAgICAgICAgIHRoaXMuYXJ0aWNsZSA9IGFydGljbGU7XHJcbiAgICAgICAgICBpZiAodGhpcy5hcnRpY2xlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlndXJhYmxlID0gdGhpcy5hcnRpY2xlLmdvb2RUeXBlID09PSAnQicgJiYgKHRoaXMuYXJ0aWNsZS5pc0NvbmZpZ3VyYWJsZSB8fCB0aGlzLmFydGljbGUuaXNDb25maWd1cmFibGUgPT09IHVuZGVmaW5lZCk7XHJcbiAgICAgICAgICAgIC8vIHRoaXMuY29uZmlndXJhYmxlID0gdGhpcy5hcnRpY2xlLmdvb2RUeXBlID09PSAnQic7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbmZpZ3VyYWJsZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2hvd0FkZFRvQ2FydCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHRoaXMuY3VycmVudFZpZXcgPSBTZWxlY3RvclR5cGUuVHdvRDtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnNob3dBZGRUb0NhcnQgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMudGhyZWVEID0gdGhpcy5hcnRpY2xlLmlzM0Q7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0b3JUeXBlID0gdGhpcy5hcnRpY2xlLnNlbGVjdG9yVHlwZUN1c3RvbWVyO1xyXG4gICAgICAgICAgICB0aGlzLl9pb25lLmdldERlbGl2ZXJ5UHJvZ25vc2lzKHRoaXMuYXJ0aWNsZS5nb29kSWQpLnRoZW4oKHN0b2NrSW5mbzogRGVsaXZlcnlQcm9nbm9zaXMpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBzdG9ja0FuZERlbGl2ZXJ5OiBEZWxpdmVyeVByb2dub3NpcyA9IHN0b2NrSW5mbztcclxuICAgICAgICAgICAgICB0aGlzLnN0b2NrQW5kRGVsaXZlcnkgPSBuZXcgU3RvY2tBbmREZWxpdmVyeSgwLCBzdG9ja0FuZERlbGl2ZXJ5LnJldHVyblZhbHVlID8gc3RvY2tBbmREZWxpdmVyeS5yZXR1cm5WYWx1ZSA6ICcgJyk7XHJcbiAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5faW9uZS5hcnRpY2xlTG9hZGVkLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5zaG93UmVsYXRlZFByb2R1Y3RzUG9wdXAgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvcGVuU3RvY2soKSB7XHJcbiAgICB0aGlzLm9wZW5TdG9ja0V2ZW50LmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVQb3BVcENoYW5nZShldmVudDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5zaG93UmVsYXRlZFByb2R1Y3RzUG9wdXAgPSBldmVudDtcclxuICB9XHJcbn1cclxuIl19
@@ -1,50 +0,0 @@
1
- import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { ProductPageComponent } from './product-page.component';
4
- import { ProductSelectorTypeModule } from '../product-selector-type/product-selector-type.module';
5
- import { ImageCarouselModule } from '../image-carousel/image-carousel.module';
6
- import { IconModule } from '@colijnit/corecomponents';
7
- import { ProductDescriptionModule } from '../product-description/product-description.module';
8
- import { ProductAdditionalDescriptionModule } from '../product-additional-description/product-additional-description.module';
9
- import { ProductPriceModule } from '../product-price/product-price.module';
10
- import { ProductAddtocartModule } from '../product-addtocart/product-addtocart.module';
11
- import { ProductRelatedModule } from '../product-related/product-related.module';
12
- import { ProductStockModule } from '../product-stock/product-stock.module';
13
- import { ProductDeliveryModule } from '../product-delivery/product-delivery.module';
14
- import { ProductInfoTabsModule } from '../product-info-tabs/product-info-tabs.module';
15
- import { PipeModule } from '../../pipe/pipe.module';
16
- import { ProductDialogModule } from "../product-dialog/product-dialog.module";
17
- import { LoaderModule } from "@colijnit/corecomponents_v12";
18
- import { RenderCarouselModule } from "../render-carousel/render-carousel.module";
19
- export class ProductPageModule {
20
- }
21
- ProductPageModule.decorators = [
22
- { type: NgModule, args: [{
23
- imports: [
24
- CommonModule,
25
- ProductSelectorTypeModule,
26
- ImageCarouselModule,
27
- IconModule,
28
- ProductDescriptionModule,
29
- ProductAdditionalDescriptionModule,
30
- ProductPriceModule,
31
- ProductAddtocartModule,
32
- ProductRelatedModule,
33
- ProductStockModule,
34
- ProductDeliveryModule,
35
- ProductInfoTabsModule,
36
- PipeModule,
37
- ProductDialogModule,
38
- LoaderModule,
39
- RenderCarouselModule
40
- ],
41
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
42
- declarations: [
43
- ProductPageComponent
44
- ],
45
- exports: [
46
- ProductPageComponent
47
- ]
48
- },] }
49
- ];
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1wYWdlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9wcm9kdWN0LXBhZ2UvcHJvZHVjdC1wYWdlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsc0JBQXNCLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSx1REFBdUQsQ0FBQztBQUNoRyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUM1RSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDcEQsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDM0YsT0FBTyxFQUFDLGtDQUFrQyxFQUFDLE1BQU0seUVBQXlFLENBQUM7QUFDM0gsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDckYsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDbEYsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDcEYsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ2xELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQTZCL0UsTUFBTSxPQUFPLGlCQUFpQjs7O1lBM0I3QixRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1oseUJBQXlCO29CQUN6QixtQkFBbUI7b0JBQ25CLFVBQVU7b0JBQ1Ysd0JBQXdCO29CQUN4QixrQ0FBa0M7b0JBQ2xDLGtCQUFrQjtvQkFDbEIsc0JBQXNCO29CQUN0QixvQkFBb0I7b0JBQ3BCLGtCQUFrQjtvQkFDbEIscUJBQXFCO29CQUNyQixxQkFBcUI7b0JBQ3JCLFVBQVU7b0JBQ1YsbUJBQW1CO29CQUNuQixZQUFZO29CQUNaLG9CQUFvQjtpQkFDckI7Z0JBQ0MsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7Z0JBQ2pDLFlBQVksRUFBRTtvQkFDVixvQkFBb0I7aUJBQ3ZCO2dCQUNELE9BQU8sRUFBRTtvQkFDTCxvQkFBb0I7aUJBQ3ZCO2FBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIE5nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7UHJvZHVjdFBhZ2VDb21wb25lbnR9IGZyb20gJy4vcHJvZHVjdC1wYWdlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7UHJvZHVjdFNlbGVjdG9yVHlwZU1vZHVsZX0gZnJvbSAnLi4vcHJvZHVjdC1zZWxlY3Rvci10eXBlL3Byb2R1Y3Qtc2VsZWN0b3ItdHlwZS5tb2R1bGUnO1xyXG5pbXBvcnQge0ltYWdlQ2Fyb3VzZWxNb2R1bGV9IGZyb20gJy4uL2ltYWdlLWNhcm91c2VsL2ltYWdlLWNhcm91c2VsLm1vZHVsZSc7XHJcbmltcG9ydCB7SWNvbk1vZHVsZX0gZnJvbSAnQGNvbGlqbml0L2NvcmVjb21wb25lbnRzJztcclxuaW1wb3J0IHtQcm9kdWN0RGVzY3JpcHRpb25Nb2R1bGV9IGZyb20gJy4uL3Byb2R1Y3QtZGVzY3JpcHRpb24vcHJvZHVjdC1kZXNjcmlwdGlvbi5tb2R1bGUnO1xyXG5pbXBvcnQge1Byb2R1Y3RBZGRpdGlvbmFsRGVzY3JpcHRpb25Nb2R1bGV9IGZyb20gJy4uL3Byb2R1Y3QtYWRkaXRpb25hbC1kZXNjcmlwdGlvbi9wcm9kdWN0LWFkZGl0aW9uYWwtZGVzY3JpcHRpb24ubW9kdWxlJztcclxuaW1wb3J0IHtQcm9kdWN0UHJpY2VNb2R1bGV9IGZyb20gJy4uL3Byb2R1Y3QtcHJpY2UvcHJvZHVjdC1wcmljZS5tb2R1bGUnO1xyXG5pbXBvcnQge1Byb2R1Y3RBZGR0b2NhcnRNb2R1bGV9IGZyb20gJy4uL3Byb2R1Y3QtYWRkdG9jYXJ0L3Byb2R1Y3QtYWRkdG9jYXJ0Lm1vZHVsZSc7XHJcbmltcG9ydCB7UHJvZHVjdFJlbGF0ZWRNb2R1bGV9IGZyb20gJy4uL3Byb2R1Y3QtcmVsYXRlZC9wcm9kdWN0LXJlbGF0ZWQubW9kdWxlJztcclxuaW1wb3J0IHtQcm9kdWN0U3RvY2tNb2R1bGV9IGZyb20gJy4uL3Byb2R1Y3Qtc3RvY2svcHJvZHVjdC1zdG9jay5tb2R1bGUnO1xyXG5pbXBvcnQge1Byb2R1Y3REZWxpdmVyeU1vZHVsZX0gZnJvbSAnLi4vcHJvZHVjdC1kZWxpdmVyeS9wcm9kdWN0LWRlbGl2ZXJ5Lm1vZHVsZSc7XHJcbmltcG9ydCB7UHJvZHVjdEluZm9UYWJzTW9kdWxlfSBmcm9tICcuLi9wcm9kdWN0LWluZm8tdGFicy9wcm9kdWN0LWluZm8tdGFicy5tb2R1bGUnO1xyXG5pbXBvcnQge1BpcGVNb2R1bGV9IGZyb20gJy4uLy4uL3BpcGUvcGlwZS5tb2R1bGUnO1xyXG5pbXBvcnQge1Byb2R1Y3REaWFsb2dNb2R1bGV9IGZyb20gXCIuLi9wcm9kdWN0LWRpYWxvZy9wcm9kdWN0LWRpYWxvZy5tb2R1bGVcIjtcclxuaW1wb3J0IHtMb2FkZXJNb2R1bGV9IGZyb20gXCJAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyXCI7XHJcbmltcG9ydCB7UmVuZGVyQ2Fyb3VzZWxNb2R1bGV9IGZyb20gXCIuLi9yZW5kZXItY2Fyb3VzZWwvcmVuZGVyLWNhcm91c2VsLm1vZHVsZVwiO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBQcm9kdWN0U2VsZWN0b3JUeXBlTW9kdWxlLFxyXG4gICAgSW1hZ2VDYXJvdXNlbE1vZHVsZSxcclxuICAgIEljb25Nb2R1bGUsXHJcbiAgICBQcm9kdWN0RGVzY3JpcHRpb25Nb2R1bGUsXHJcbiAgICBQcm9kdWN0QWRkaXRpb25hbERlc2NyaXB0aW9uTW9kdWxlLFxyXG4gICAgUHJvZHVjdFByaWNlTW9kdWxlLFxyXG4gICAgUHJvZHVjdEFkZHRvY2FydE1vZHVsZSxcclxuICAgIFByb2R1Y3RSZWxhdGVkTW9kdWxlLFxyXG4gICAgUHJvZHVjdFN0b2NrTW9kdWxlLFxyXG4gICAgUHJvZHVjdERlbGl2ZXJ5TW9kdWxlLFxyXG4gICAgUHJvZHVjdEluZm9UYWJzTW9kdWxlLFxyXG4gICAgUGlwZU1vZHVsZSxcclxuICAgIFByb2R1Y3REaWFsb2dNb2R1bGUsXHJcbiAgICBMb2FkZXJNb2R1bGUsXHJcbiAgICBSZW5kZXJDYXJvdXNlbE1vZHVsZVxyXG4gIF0sXHJcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXHJcbiAgICBkZWNsYXJhdGlvbnM6IFtcclxuICAgICAgICBQcm9kdWN0UGFnZUNvbXBvbmVudFxyXG4gICAgXSxcclxuICAgIGV4cG9ydHM6IFtcclxuICAgICAgICBQcm9kdWN0UGFnZUNvbXBvbmVudFxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvZHVjdFBhZ2VNb2R1bGUge1xyXG59XHJcbiJdfQ==
@@ -1,75 +0,0 @@
1
- import { ChangeDetectorRef, Component, Input } from '@angular/core';
2
- export class ProductPriceComponent {
3
- constructor(_changeDetector) {
4
- this._changeDetector = _changeDetector;
5
- this.showFromPrice = false;
6
- this._configurable = false;
7
- }
8
- set pricing(value) {
9
- this._pricing = value;
10
- this._setPrices();
11
- }
12
- get pricing() {
13
- return this._pricing;
14
- }
15
- set configurable(value) {
16
- this._configurable = value;
17
- this._setPrices();
18
- }
19
- ngOnInit() {
20
- }
21
- _setPrices() {
22
- if (this._pricing) {
23
- this.valutaSign = this._getSign(this._pricing.retailCurrency);
24
- if (this._configurable) {
25
- this.fromPrice = this._pricing.retailBasePrice ? this._pricing.retailBasePrice : this._pricing.priceBaseline;
26
- this.fromLabel = this._pricing.retailBasePrice ? 'PRICE' : 'FROM';
27
- this.toPrice = undefined;
28
- this.toLabel = '';
29
- }
30
- else {
31
- const hasSuggested = this._pricing.retailSuggestedPrice !== undefined && this._pricing.retailSuggestedPrice !== null;
32
- this.fromPrice = hasSuggested ? this._pricing.retailSuggestedPrice : this._pricing.retailBasePrice;
33
- this.fromLabel = hasSuggested ? 'Was' : 'PRICE';
34
- // Always set toPrice to base price
35
- this.toPrice = this._pricing.retailBasePrice;
36
- this.toLabel = hasSuggested ? 'IS_NOW' : 'PRICE';
37
- }
38
- this._changeDetector.detectChanges();
39
- }
40
- }
41
- _getSign(currency) {
42
- switch (currency) {
43
- case 'EUR':
44
- return '€';
45
- default:
46
- return '€';
47
- }
48
- }
49
- }
50
- ProductPriceComponent.decorators = [
51
- { type: Component, args: [{
52
- selector: 'app-product-price',
53
- template: `
54
- <div *ngIf="toPrice">
55
- <div class="price-wrapper" *ngIf="fromPrice > toPrice">
56
- <div class="from-price-label" [textContent]="fromLabel | localize"></div>
57
- <div class="from-price" [textContent]="fromPrice | priceDisplay: valutaSign"></div>
58
- </div>
59
- <div class="price-wrapper">
60
- <div class="to-price-label" [textContent]="toLabel | localize"></div>
61
- <div class="to-price" [textContent]="toPrice | priceDisplay: valutaSign"></div>
62
- </div>
63
- </div>
64
- `,
65
- styles: [":host{display:flex;flex-direction:column}.price-wrapper{width:100%;font-size:15px;margin:0 0 5px;display:inline-block}.price-wrapper:last-child{margin:0}.from-price-label,.to-price-label{color:#5b6875;display:none}.from-price{font-size:16px;font-weight:bold;text-decoration:line-through;color:#5b6875}.to-price{font-size:25px;font-weight:bold;color:#74b77f}@media screen and (max-width: 650px){.from-price{font-size:13px}.to-price{font-size:21px}}\n"]
66
- },] }
67
- ];
68
- ProductPriceComponent.ctorParameters = () => [
69
- { type: ChangeDetectorRef }
70
- ];
71
- ProductPriceComponent.propDecorators = {
72
- pricing: [{ type: Input }],
73
- configurable: [{ type: Input }]
74
- };
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1wcmljZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvcHJvZHVjdC1wcmljZS9wcm9kdWN0LXByaWNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQW1CNUUsTUFBTSxPQUFPLHFCQUFxQjtJQTRCaEMsWUFBb0IsZUFBa0M7UUFBbEMsb0JBQWUsR0FBZixlQUFlLENBQW1CO1FBTC9DLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBRzlCLGtCQUFhLEdBQVksS0FBSyxDQUFDO0lBRW1CLENBQUM7SUExQjNELElBQ1csT0FBTyxDQUFDLEtBQVU7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUNXLFlBQVksQ0FBQyxLQUFjO1FBQ3BDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBQzNCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBY0QsUUFBUTtJQUNSLENBQUM7SUFFTyxVQUFVO1FBQ2hCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUM5RCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQztnQkFDN0csSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7Z0JBQ2xFLElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDO2dCQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQzthQUNuQjtpQkFBTTtnQkFDTCxNQUFNLFlBQVksR0FBWSxJQUFJLENBQUMsUUFBUSxDQUFDLG9CQUFvQixLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLG9CQUFvQixLQUFLLElBQUksQ0FBQztnQkFDOUgsSUFBSSxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDO2dCQUNuRyxJQUFJLENBQUMsU0FBUyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7Z0JBQ2hELG1DQUFtQztnQkFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQztnQkFDN0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO2FBQ2xEO1lBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN0QztJQUNILENBQUM7SUFFTyxRQUFRLENBQUMsUUFBZ0I7UUFDL0IsUUFBUSxRQUFRLEVBQUU7WUFDaEIsS0FBSyxLQUFLO2dCQUNSLE9BQU8sR0FBRyxDQUFDO1lBQ2I7Z0JBQ0UsT0FBTyxHQUFHLENBQUM7U0FDZDtJQUNILENBQUM7OztZQTVFRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsUUFBUSxFQUFFOzs7Ozs7Ozs7OztHQVdUOzthQUVGOzs7WUFsQlEsaUJBQWlCOzs7c0JBcUJ2QixLQUFLOzJCQVVMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFydGljbGVQcmljaW5nIH0gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1wcmljaW5nJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXByb2R1Y3QtcHJpY2UnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2ICpuZ0lmPVwidG9QcmljZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicHJpY2Utd3JhcHBlclwiICpuZ0lmPVwiZnJvbVByaWNlID4gdG9QcmljZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmcm9tLXByaWNlLWxhYmVsXCIgW3RleHRDb250ZW50XT1cImZyb21MYWJlbCB8IGxvY2FsaXplXCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZyb20tcHJpY2VcIiBbdGV4dENvbnRlbnRdPVwiZnJvbVByaWNlIHwgcHJpY2VEaXNwbGF5OiB2YWx1dGFTaWduXCI+PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicHJpY2Utd3JhcHBlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0by1wcmljZS1sYWJlbFwiIFt0ZXh0Q29udGVudF09XCJ0b0xhYmVsIHwgbG9jYWxpemVcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidG8tcHJpY2VcIiBbdGV4dENvbnRlbnRdPVwidG9QcmljZSB8IHByaWNlRGlzcGxheTogdmFsdXRhU2lnblwiPjwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcHJvZHVjdC1wcmljZS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcm9kdWN0UHJpY2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgcHJpY2luZyh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLl9wcmljaW5nID0gdmFsdWU7XHJcbiAgICB0aGlzLl9zZXRQcmljZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgcHJpY2luZygpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ByaWNpbmc7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgY29uZmlndXJhYmxlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9jb25maWd1cmFibGUgPSB2YWx1ZTtcclxuICAgIHRoaXMuX3NldFByaWNlcygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGZyb21QcmljZTogbnVtYmVyO1xyXG4gIHB1YmxpYyB0b1ByaWNlOiBudW1iZXI7XHJcbiAgcHVibGljIHZhbHV0YVNpZ246IHN0cmluZztcclxuICBwdWJsaWMgZnJvbUxhYmVsOiBzdHJpbmc7XHJcbiAgcHVibGljIHRvTGFiZWw6IHN0cmluZztcclxuICBwdWJsaWMgc2hvd0Zyb21QcmljZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIF9wcmljaW5nOiBBcnRpY2xlUHJpY2luZztcclxuICBwcml2YXRlIF9jb25maWd1cmFibGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zZXRQcmljZXMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fcHJpY2luZykge1xyXG4gICAgICB0aGlzLnZhbHV0YVNpZ24gPSB0aGlzLl9nZXRTaWduKHRoaXMuX3ByaWNpbmcucmV0YWlsQ3VycmVuY3kpO1xyXG4gICAgICBpZiAodGhpcy5fY29uZmlndXJhYmxlKSB7XHJcbiAgICAgICAgdGhpcy5mcm9tUHJpY2UgPSB0aGlzLl9wcmljaW5nLnJldGFpbEJhc2VQcmljZSA/IHRoaXMuX3ByaWNpbmcucmV0YWlsQmFzZVByaWNlIDogdGhpcy5fcHJpY2luZy5wcmljZUJhc2VsaW5lO1xyXG4gICAgICAgIHRoaXMuZnJvbUxhYmVsID0gdGhpcy5fcHJpY2luZy5yZXRhaWxCYXNlUHJpY2UgPyAnUFJJQ0UnIDogJ0ZST00nO1xyXG4gICAgICAgIHRoaXMudG9QcmljZSA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLnRvTGFiZWwgPSAnJztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBoYXNTdWdnZXN0ZWQ6IGJvb2xlYW4gPSB0aGlzLl9wcmljaW5nLnJldGFpbFN1Z2dlc3RlZFByaWNlICE9PSB1bmRlZmluZWQgJiYgdGhpcy5fcHJpY2luZy5yZXRhaWxTdWdnZXN0ZWRQcmljZSAhPT0gbnVsbDtcclxuICAgICAgICB0aGlzLmZyb21QcmljZSA9IGhhc1N1Z2dlc3RlZCA/IHRoaXMuX3ByaWNpbmcucmV0YWlsU3VnZ2VzdGVkUHJpY2UgOiB0aGlzLl9wcmljaW5nLnJldGFpbEJhc2VQcmljZTtcclxuICAgICAgICB0aGlzLmZyb21MYWJlbCA9IGhhc1N1Z2dlc3RlZCA/ICdXYXMnIDogJ1BSSUNFJztcclxuICAgICAgICAvLyBBbHdheXMgc2V0IHRvUHJpY2UgdG8gYmFzZSBwcmljZVxyXG4gICAgICAgIHRoaXMudG9QcmljZSA9IHRoaXMuX3ByaWNpbmcucmV0YWlsQmFzZVByaWNlO1xyXG4gICAgICAgIHRoaXMudG9MYWJlbCA9IGhhc1N1Z2dlc3RlZCA/ICdJU19OT1cnIDogJ1BSSUNFJztcclxuICAgICAgfVxyXG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXRTaWduKGN1cnJlbmN5OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgc3dpdGNoIChjdXJyZW5jeSkge1xyXG4gICAgICBjYXNlICdFVVInOlxyXG4gICAgICAgIHJldHVybiAn4oKsJztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gJ+KCrCc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
@@ -1,23 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { ProductPriceComponent } from './product-price.component';
4
- import { PipeModule } from '../../pipe/pipe.module';
5
- import { PriceDisplayPipeModule } from '@colijnit/corecomponents';
6
- export class ProductPriceModule {
7
- }
8
- ProductPriceModule.decorators = [
9
- { type: NgModule, args: [{
10
- imports: [
11
- CommonModule,
12
- PipeModule,
13
- PriceDisplayPipeModule
14
- ],
15
- declarations: [
16
- ProductPriceComponent
17
- ],
18
- exports: [
19
- ProductPriceComponent
20
- ]
21
- },] }
22
- ];
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1wcmljZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvcHJvZHVjdC1wcmljZS9wcm9kdWN0LXByaWNlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDbEQsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFlaEUsTUFBTSxPQUFPLGtCQUFrQjs7O1lBYjlCLFFBQVEsU0FBQztnQkFDTixPQUFPLEVBQUU7b0JBQ0wsWUFBWTtvQkFDWixVQUFVO29CQUNWLHNCQUFzQjtpQkFDekI7Z0JBQ0QsWUFBWSxFQUFFO29CQUNWLHFCQUFxQjtpQkFDeEI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNMLHFCQUFxQjtpQkFDeEI7YUFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtQcm9kdWN0UHJpY2VDb21wb25lbnR9IGZyb20gJy4vcHJvZHVjdC1wcmljZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge1BpcGVNb2R1bGV9IGZyb20gJy4uLy4uL3BpcGUvcGlwZS5tb2R1bGUnO1xyXG5pbXBvcnQge1ByaWNlRGlzcGxheVBpcGVNb2R1bGV9IGZyb20gJ0Bjb2xpam5pdC9jb3JlY29tcG9uZW50cyc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZSxcclxuICAgICAgICBQaXBlTW9kdWxlLFxyXG4gICAgICAgIFByaWNlRGlzcGxheVBpcGVNb2R1bGVcclxuICAgIF0sXHJcbiAgICBkZWNsYXJhdGlvbnM6IFtcclxuICAgICAgICBQcm9kdWN0UHJpY2VDb21wb25lbnRcclxuICAgIF0sXHJcbiAgICBleHBvcnRzOiBbXHJcbiAgICAgICAgUHJvZHVjdFByaWNlQ29tcG9uZW50XHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcm9kdWN0UHJpY2VNb2R1bGUge1xyXG59XHJcbiJdfQ==
@@ -1,61 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- export const propertyMap = new Map([
3
- ['articleNr', 'ARTICLE_NUMBER'],
4
- ['catExtra', 'CATEGORY'],
5
- ['catType', 'CATEGORY_TYPE'],
6
- ['description', 'DESCRIPTION'],
7
- ['material', 'MATERIAL'],
8
- ['title', 'TITLE'],
9
- ['turnOverGroup', 'TURNOVERGROUP'],
10
- ['height', 'HEIGHT'],
11
- ['width', 'WIDTH']
12
- ]);
13
- export class ProductPropertiesComponent {
14
- constructor() {
15
- this.showLabel = false;
16
- this.properties = [];
17
- }
18
- set article(value) {
19
- this._article = value;
20
- this._prepareProperties();
21
- }
22
- get article() {
23
- return this._article;
24
- }
25
- ngOnInit() {
26
- }
27
- _prepareProperties() {
28
- this.properties.length = 0;
29
- if (!this._article) {
30
- return;
31
- }
32
- propertyMap.forEach((value, key) => {
33
- if (this.article.hasOwnProperty(key)) {
34
- this.properties.push({ key: value, value: this.article[key] });
35
- }
36
- });
37
- }
38
- }
39
- ProductPropertiesComponent.decorators = [
40
- { type: Component, args: [{
41
- selector: 'app-product-properties',
42
- template: `
43
- <div class="article-properties-wrapper">
44
- <h3 *ngIf="showLabel" [textContent]="'PROPERTIES' | localize"></h3>
45
- <ng-container *ngFor="let property of properties">
46
- <div class="article-property">
47
- <div class="article-property-key" [textContent]="property.key | localize"></div>
48
- <div class="article-property-value" [textContent]="property.value"></div>
49
- </div>
50
- </ng-container>
51
- </div>
52
- `,
53
- styles: [":host{display:block}.article-properties-wrapper{display:flex;flex-direction:column}.article-property{display:flex;flex-direction:row;border-bottom:1px solid #f6f5f4;padding:11px 0;font-size:13px}.article-property:first-child{border-top:1px solid #f6f5f4}.article-property-key{flex-basis:200px;flex-shrink:0;color:#5b6875}@media screen and (max-width: 450px){.article-property-key{flex-basis:130px}}\n"]
54
- },] }
55
- ];
56
- ProductPropertiesComponent.ctorParameters = () => [];
57
- ProductPropertiesComponent.propDecorators = {
58
- article: [{ type: Input }],
59
- showLabel: [{ type: Input }]
60
- };
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1wcm9wZXJ0aWVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9wcm9kdWN0LXByb3BlcnRpZXMvcHJvZHVjdC1wcm9wZXJ0aWVzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUd6RCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQXdCLElBQUksR0FBRyxDQUFDO0lBQ3RELENBQUMsV0FBVyxFQUFFLGdCQUFnQixDQUFDO0lBQy9CLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQztJQUN4QixDQUFDLFNBQVMsRUFBRSxlQUFlLENBQUM7SUFDNUIsQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDO0lBQzlCLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQztJQUN4QixDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUM7SUFDbEIsQ0FBQyxlQUFlLEVBQUUsZUFBZSxDQUFDO0lBQ2xDLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQztJQUNwQixDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUM7Q0FDbkIsQ0FBQyxDQUFDO0FBaUJILE1BQU0sT0FBTywwQkFBMEI7SUFtQnJDO1FBTk8sY0FBUyxHQUFZLEtBQUssQ0FBQztRQUUzQixlQUFVLEdBQW1DLEVBQUUsQ0FBQztJQUl2QyxDQUFDO0lBakJqQixJQUNXLE9BQU8sQ0FBQyxLQUF3QjtRQUN6QyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBV0QsUUFBUTtJQUNSLENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLE9BQU87U0FDUjtRQUNELFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFhLEVBQUUsR0FBVyxFQUFFLEVBQUU7WUFDakQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDcEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFDLENBQUMsQ0FBQzthQUM5RDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7O1lBakRGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsd0JBQXdCO2dCQUNsQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7R0FVVDs7YUFFRjs7OztzQkFHRSxLQUFLO3dCQVVMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXJ0aWNsZUZ1bGxPYmplY3QgfSBmcm9tICdAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLWZ1bGwtb2JqZWN0JztcclxuXHJcbmV4cG9ydCBjb25zdCBwcm9wZXJ0eU1hcDogTWFwPHN0cmluZywgc3RyaW5nPiA9IG5ldyBNYXAoW1xyXG4gIFsnYXJ0aWNsZU5yJywgJ0FSVElDTEVfTlVNQkVSJ10sXHJcbiAgWydjYXRFeHRyYScsICdDQVRFR09SWSddLFxyXG4gIFsnY2F0VHlwZScsICdDQVRFR09SWV9UWVBFJ10sXHJcbiAgWydkZXNjcmlwdGlvbicsICdERVNDUklQVElPTiddLFxyXG4gIFsnbWF0ZXJpYWwnLCAnTUFURVJJQUwnXSxcclxuICBbJ3RpdGxlJywgJ1RJVExFJ10sXHJcbiAgWyd0dXJuT3Zlckdyb3VwJywgJ1RVUk5PVkVSR1JPVVAnXSxcclxuICBbJ2hlaWdodCcsICdIRUlHSFQnXSxcclxuICBbJ3dpZHRoJywgJ1dJRFRIJ11cclxuXSk7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1wcm9kdWN0LXByb3BlcnRpZXMnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwiYXJ0aWNsZS1wcm9wZXJ0aWVzLXdyYXBwZXJcIj5cclxuICAgICAgPGgzICpuZ0lmPVwic2hvd0xhYmVsXCIgW3RleHRDb250ZW50XT1cIidQUk9QRVJUSUVTJyB8IGxvY2FsaXplXCI+PC9oMz5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcHJvcGVydHkgb2YgcHJvcGVydGllc1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhcnRpY2xlLXByb3BlcnR5XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJ0aWNsZS1wcm9wZXJ0eS1rZXlcIiBbdGV4dENvbnRlbnRdPVwicHJvcGVydHkua2V5IHwgbG9jYWxpemVcIj48L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcnRpY2xlLXByb3BlcnR5LXZhbHVlXCIgW3RleHRDb250ZW50XT1cInByb3BlcnR5LnZhbHVlXCI+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBzdHlsZVVybHM6IFsnLi9wcm9kdWN0LXByb3BlcnRpZXMuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvZHVjdFByb3BlcnRpZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgYXJ0aWNsZSh2YWx1ZTogQXJ0aWNsZUZ1bGxPYmplY3QpIHtcclxuICAgIHRoaXMuX2FydGljbGUgPSB2YWx1ZTtcclxuICAgIHRoaXMuX3ByZXBhcmVQcm9wZXJ0aWVzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGFydGljbGUoKTogQXJ0aWNsZUZ1bGxPYmplY3Qge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FydGljbGU7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93TGFiZWw6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHVibGljIHByb3BlcnRpZXM6IHtrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZ31bXSA9IFtdO1xyXG5cclxuICBwcml2YXRlIF9hcnRpY2xlOiBBcnRpY2xlRnVsbE9iamVjdDtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9wcmVwYXJlUHJvcGVydGllcygpOiB2b2lkIHtcclxuICAgIHRoaXMucHJvcGVydGllcy5sZW5ndGggPSAwO1xyXG4gICAgaWYgKCF0aGlzLl9hcnRpY2xlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHByb3BlcnR5TWFwLmZvckVhY2goKHZhbHVlOiBzdHJpbmcsIGtleTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmFydGljbGUuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICAgIHRoaXMucHJvcGVydGllcy5wdXNoKHtrZXk6IHZhbHVlLCB2YWx1ZTogdGhpcy5hcnRpY2xlW2tleV19KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
@@ -1,21 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { ProductPropertiesComponent } from './product-properties.component';
4
- import { PipeModule } from '../../pipe/pipe.module';
5
- export class ProductPropertiesModule {
6
- }
7
- ProductPropertiesModule.decorators = [
8
- { type: NgModule, args: [{
9
- imports: [
10
- CommonModule,
11
- PipeModule
12
- ],
13
- declarations: [
14
- ProductPropertiesComponent
15
- ],
16
- exports: [
17
- ProductPropertiesComponent
18
- ]
19
- },] }
20
- ];
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1wcm9wZXJ0aWVzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9wcm9kdWN0LXByb3BlcnRpZXMvcHJvZHVjdC1wcm9wZXJ0aWVzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMxRSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFjbEQsTUFBTSxPQUFPLHVCQUF1Qjs7O1lBWm5DLFFBQVEsU0FBQztnQkFDTixPQUFPLEVBQUU7b0JBQ0wsWUFBWTtvQkFDWixVQUFVO2lCQUNiO2dCQUNELFlBQVksRUFBRTtvQkFDViwwQkFBMEI7aUJBQzdCO2dCQUNELE9BQU8sRUFBRTtvQkFDTCwwQkFBMEI7aUJBQzdCO2FBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7UHJvZHVjdFByb3BlcnRpZXNDb21wb25lbnR9IGZyb20gJy4vcHJvZHVjdC1wcm9wZXJ0aWVzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7UGlwZU1vZHVsZX0gZnJvbSAnLi4vLi4vcGlwZS9waXBlLm1vZHVsZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZSxcclxuICAgICAgICBQaXBlTW9kdWxlXHJcbiAgICBdLFxyXG4gICAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICAgICAgUHJvZHVjdFByb3BlcnRpZXNDb21wb25lbnRcclxuICAgIF0sXHJcbiAgICBleHBvcnRzOiBbXHJcbiAgICAgICAgUHJvZHVjdFByb3BlcnRpZXNDb21wb25lbnRcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFByb2R1Y3RQcm9wZXJ0aWVzTW9kdWxlIHtcclxufVxyXG4iXX0=