@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colijnit-product.mjs","sources":["../../src/app/product-version.ts","../../src/app/model/settings-options.ts","../../src/app/model/render-modes.ts","../../src/app/model/render-parameters.ts","../../src/app/model/productSettings.ts","../../src/app/service/product-event.service.ts","../../src/app/service/product-connector-adapter.service.ts","../../src/app/utils/json-utils.service.ts","../../src/app/enum/language-code.enum.ts","../../src/assets/dictionary/text.properties.ts","../../src/app/service/dictionary.service.ts","../../src/app/service/product-settings.service.ts","../../src/app/service/product-connector.service.ts","../../src/app/bundle/service/local-storage.service.ts","../../src/app/model/stock-and-delivery.ts","../../src/app/enum/selector-type.enum.ts","../../src/app/enum/icon.enum.ts","../../src/app/model/icon.ts","../../src/app/service/icon-cache.service.ts","../../src/app/pipe/localize.pipe.ts","../../src/app/components/product-selector-type/product-selector-type.component.ts","../../src/app/components/image-carousel/image-carousel.component.ts","../../src/app/components/product-description/product-description.component.ts","../../src/app/utils/bit-utils.ts","../../src/app/components/product-additional-description/product-additional-description.component.ts","../../src/app/pipe/price-display.pipe.ts","../../src/app/components/product-price/product-price.component.ts","../../src/app/components/product-addtocart/product-addtocart.component.ts","../../src/app/components/core/header/header.component.ts","../../src/app/components/product-related/product-related.component.ts","../../src/app/components/product-stock/product-stock.component.ts","../../src/app/components/product-delivery/product-delivery.component.ts","../../src/app/components/product-additional-info/product-additional-info.component.ts","../../src/app/components/product-properties/product-properties.component.ts","../../src/app/components/product-documents/product-documents.component.ts","../../src/app/components/product-symbols/product-symbols.component.ts","../../src/app/components/product-info-tabs/product-info-tabs.component.ts","../../src/app/components/product-dialog/product-dialog.component.ts","../../src/app/components/render-carousel/render-carousel.component.ts","../../src/app/components/product-page/product-page.component.ts","../../src/app/ione-product.component.ts","../../src/app/pipe/pipe.module.ts","../../src/app/components/product-selector-type/product-selector-type.module.ts","../../src/app/components/image-carousel/image-carousel.module.ts","../../src/app/components/product-description/product-description.module.ts","../../src/app/components/product-additional-description/product-additional-description.module.ts","../../src/app/components/product-price/product-price.module.ts","../../src/app/components/product-addtocart/product-addtocart.module.ts","../../src/app/components/core/header/header.module.ts","../../src/app/components/product-related/product-related.module.ts","../../src/app/components/product-stock/product-stock.module.ts","../../src/app/components/product-delivery/product-delivery.module.ts","../../src/app/components/product-additional-info/product-additional-info.module.ts","../../src/app/components/product-properties/product-properties.module.ts","../../src/app/components/product-documents/product-document.module.ts","../../src/app/components/product-symbols/product-symbols.module.ts","../../src/app/components/product-info-tabs/product-info-tabs.module.ts","../../src/app/components/product-dialog/product-dialog.module.ts","../../src/app/components/render-carousel/render-carousel.module.ts","../../src/app/components/product-page/product-page.module.ts","../../src/app/service/product-script-loader.service.ts","../../src/app/components/product-hd/product-hd.component.ts","../../src/app/components/product-hd/product-hd.module.ts","../../src/app/components/product-external-source/product-external-source.component.ts","../../src/app/components/product-external-source/product-external-source.module.ts","../../src/app/ione-product.module.ts","../../src/colijnit-product.ts"],"sourcesContent":["// this file is dynamically created, do not change this\nexport class Version {\n public name = \"@colijnit/product\";\n public description = \"Product detail page project for iOne\";\n public symVer = \"261.20.0\";\n public publishDate = \"23-1-2026, 15:54:32\";\n}","export class SettingsOptions {\r\n public showStockStatus: boolean = false;\r\n public showZoomButton: boolean = false;\r\n public showTagFilter: boolean = false;\r\n public showAsConfigured: boolean = false;\r\n public inlineAnswers: boolean = false;\r\n public showArButton: boolean = false;\r\n\r\n public arEnabled: boolean = false;\r\n public vrEnabled: boolean = false;\r\n}\r\n","export enum RenderModes {\r\n RenderRoom = 'render_room',\r\n RenderShop = 'render_shop',\r\n RenderIone = 'render_ione'\r\n}\r\n","import { RenderModes } from './render-modes';\r\n\r\nexport class RenderParameters {\r\n public host: string = \"\";\r\n public port: number = 0;\r\n public secure: boolean = false;\r\n public renderMode: RenderModes = RenderModes.RenderShop;\r\n}\r\n","import { SettingsOptions } from './settings-options';\r\nimport { RenderParameters } from './render-parameters';\r\nimport {LanguageCode} from '@colijnit/ioneconnector/build/enum/language-code.enum';\r\nimport {GetAccessTokenFunction, Options} from '@colijnit/ioneconnector/build/model/options';\r\n\r\nexport class ProductSettings extends Options {\r\n public currency: number;\r\n public session: any = undefined;\r\n public createWebOrder: boolean = true;\r\n public assetPath: string;\r\n public assetIndex: string;\r\n public currencySymbol: string = '€';\r\n public threeDAssetPath: string;\r\n public lightPresetsIndex: string;\r\n public additionalTranslationFile: string;\r\n public gtm: string;\r\n public client: string;\r\n public options: SettingsOptions = new SettingsOptions();\r\n public renderParameters: RenderParameters = new RenderParameters();\r\n}\r\n","import {Directive, Injectable, Output} from '@angular/core';\r\nimport {Subject} from 'rxjs';\r\nimport {ArticleListObject} from '@colijnit/articleapi/build/model/article-list-object';\r\nimport {Selection} from '@colijnit/articleapi/build/model/selection';\r\nimport {ArticleQuickSel} from '@colijnit/articleapi/build/model/article-quick-sel';\r\nimport {ArticleExtended} from '@colijnit/articleapi/build/model/article-extended.bo';\r\nimport {ArticleListObjectExtended} from '@colijnit/articleapi/build/model/article-list-object-extended.bo';\r\nimport {ValidationMessage} from '@colijnit/ioneconnector/build/model/validation-message';\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class ProductEventService {\r\n\r\n public onAddToCart: Subject<{ article: string | ArticleListObjectExtended, quantity: number }> = new Subject<{ article: string | ArticleListObjectExtended, quantity: number }>();\r\n public onAlternativeClick: Subject<ArticleListObject> = new Subject<ArticleListObject>();\r\n public onAddToQuote: Subject<string> = new Subject<string>();\r\n public onForceRenderImage: Subject<void> = new Subject<void>();\r\n public onArticleReceived: Subject<ArticleQuickSel> = new Subject<ArticleQuickSel>();\r\n public onSelectionsReceived: Subject<Selection[]> = new Subject<Selection[]>();\r\n public onImageReceived: Subject<string> = new Subject<string>();\r\n public onRenderStarted: Subject<void> = new Subject<void>();\r\n public onRenderImageReceived: Subject<string> = new Subject<string>();\r\n public onDraftRenderImageReceived: Subject<CustomEvent> = new Subject<CustomEvent>();\r\n public onArticleInfoReceived: Subject<string> = new Subject<string>();\r\n public onAnswersAvailable: Subject<boolean> = new Subject<boolean>();\r\n public onReadyToRender: Subject<boolean> = new Subject<boolean>();\r\n public onUpdateProductInfoTab: Subject<number> = new Subject<number>();\r\n public errorMessage: Subject<ValidationMessage[]> = new Subject<ValidationMessage[]>();\r\n public onGetRenderForRenderCarousel: Subject<any> = new Subject<any>();\r\n}\r\n","import {Injectable, OnDestroy} from '@angular/core';\r\nimport {Subject, Subscription} from 'rxjs';\r\nimport {ArticleFullObject} from '@colijnit/articleapi/build/model/article-full-object';\r\nimport {SuperArticle} from '@colijnit/articleapi/build/model/super-article';\r\nimport {ConfiguratorStatisticsEnvironment} from '@colijnit/articleapi/build/model/configurator-statistics-environment';\r\nimport {Articles} from '@colijnit/articleapi/build/articles';\r\nimport {Options} from '@colijnit/ioneconnector/build/model/options';\r\nimport {DataServiceResponseData} from '@colijnit/ioneconnector/build/model/data-service-response-data';\r\nimport {DeliveryPrognosis} from '@colijnit/articleapi/build/model/delivery-prognosis';\r\nimport {DocumentContent} from '@colijnit/articleapi/build/model/document-content';\r\nimport {BusinessObjectFactory} from '@colijnit/ioneconnector/build/service/business-object-factory';\r\nimport {Transaction} from '@colijnit/transactionapi/build/transaction';\r\nimport {ProductSettings} from '../model/productSettings';\r\nimport {MainApi} from '@colijnit/mainapi';\r\nimport {TransactionInfoResponse} from '@colijnit/transactionapi/build/model/transaction-info-response.bo';\r\nimport {ArticleListObjectExtended} from '@colijnit/articleapi/build/model/article-list-object-extended.bo';\r\nimport {ProductEventService} from './product-event.service';\r\nimport {ValidationMessage} from '@colijnit/ioneconnector/build/model/validation-message';\r\nimport {CoDocument} from '@colijnit/mainapi/build/model/co-document.bo';\r\nimport {ImageContent} from '@colijnit/mainapi/build/model/image-content.bo';\r\n\r\n// Sole responsibility is simply to wrap around a colijn.Connector to create a stable inner interface to the library in a 1:1 method way.\r\n// Only to be used by the IOneControllerService.\r\n@Injectable()\r\nexport class ProductConnectorAdapterService implements OnDestroy {\r\n\r\n public readonly showLoader: Subject<boolean> = new Subject<boolean>();\r\n\r\n public articleConnector?: Articles;\r\n public transactionConnector: Transaction;\r\n public mainConnector: MainApi;\r\n\r\n private _boFactory: BusinessObjectFactory = new BusinessObjectFactory();\r\n private _subs: Subscription[] = [];\r\n\r\n constructor(\r\n private _eventService: ProductEventService\r\n ) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._subs.forEach(s => s.unsubscribe());\r\n }\r\n\r\n public async initConnector(options: Options): Promise<void> {\r\n this.articleConnector = new Articles(options);\r\n await this.articleConnector.connect();\r\n this.transactionConnector = new Transaction(options);\r\n this.mainConnector = new MainApi(options);\r\n this._subs.push(\r\n // @ts-ignore\r\n this.articleConnector.showLoader.subscribe(value => this.showLoader.next(value))\r\n )\r\n }\r\n\r\n public setInstance(instanceId: string): void {\r\n // this.articleConnector.setInstanceToConfigure(instanceId, false);\r\n }\r\n\r\n public async getProductBundleSettings(url: string, upId: number): Promise<string> {\r\n const tempSettings: ProductSettings = new ProductSettings();\r\n tempSettings.url = url;\r\n tempSettings.schema = upId.toString();\r\n const tempMainConnector = new MainApi(tempSettings);\r\n const response: any = await tempMainConnector.getPublicParams(upId);\r\n if (response) {\r\n return response.productSettings;\r\n }\r\n return \"\";\r\n }\r\n\r\n public convertArticleFullObjectToArticleExtended(article: ArticleFullObject): ArticleListObjectExtended {\r\n if (article) {\r\n return this._boFactory.makeWithRawBackendData(ArticleListObjectExtended, article) as ArticleListObjectExtended;\r\n }\r\n }\r\n\r\n public async getDeliveryPrognosis(goodId: number, branchNr?: string): Promise<any> {\r\n const deliveryPrognosis: DeliveryPrognosis = await this.getSelectorDeliveryDate();\r\n if (!deliveryPrognosis || !deliveryPrognosis.returnValue) {\r\n return this.getDeliveryDate2(goodId);\r\n }\r\n return deliveryPrognosis;\r\n }\r\n\r\n public async getSelectorDeliveryDate(): Promise<DeliveryPrognosis> {\r\n const response: DataServiceResponseData = await this.articleConnector.getSelectorDeliveryDate();\r\n if (response && response.validationResult && response.validationResult.success) {\r\n return this._boFactory.makeWithRawBackendData(DeliveryPrognosis, response.resultObject) as unknown as DeliveryPrognosis;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n public async getArtStockStatus(goodId: number): Promise<number> {\r\n const response: DataServiceResponseData = await this.articleConnector.getArtStockStatus(goodId);\r\n if (response && response.validationResult && response.validationResult.success) {\r\n return response.resultObject;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n public async getDeliveryDate2(goodId: number): Promise<DeliveryPrognosis> {\r\n const response: DataServiceResponseData = await this.articleConnector.getDeliveryDate2(goodId);\r\n if (response && response.validationResult && response.validationResult.success) {\r\n return this._boFactory.makeWithRawBackendData(DeliveryPrognosis, response.resultObject) as unknown as DeliveryPrognosis;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n public async getJsonConfiguredArticles(configuratorStatistics?: ConfiguratorStatisticsEnvironment): Promise<string> {\r\n const response: DataServiceResponseData = await this.articleConnector.getJsonConfiguredArticles(configuratorStatistics);\r\n if (response && response.validationResult && response.validationResult.success) {\r\n return response.resultObject;\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n public async getJsonArticleFlatTree(\r\n goodId: number,\r\n goodType: string,\r\n quantity: number,\r\n externalSource: boolean = false,\r\n showLoader: boolean = true,\r\n instanceId?: any,\r\n configuratorStatistics?: ConfiguratorStatisticsEnvironment\r\n ): Promise<string> {\r\n return this.articleConnector.getJsonArticleFlatTree(goodId, goodType, quantity, externalSource, showLoader, instanceId, configuratorStatistics).catch((messages: ValidationMessage[]) => {\r\n this._eventService.errorMessage.next(messages);\r\n return null;\r\n });\r\n }\r\n\r\n public async getGeneratedArtDirectly(goodId: number, showLoader: boolean): Promise<number> {\r\n return this.articleConnector.getGeneratedArtDirectly(goodId, showLoader).catch((messages: ValidationMessage[]) => {\r\n this._eventService.errorMessage.next(messages);\r\n return null;\r\n });\r\n }\r\n\r\n\r\n\r\n public async getGoodIdFromArticleNr(sku: string): Promise<number> {\r\n const response: DataServiceResponseData = await this.articleConnector.getGoodIdFromArticleNr(sku);\r\n if (response && response.validationResult && response.validationResult.success) {\r\n return response.resultObject;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n public async getArticleFullObject(goodId: number, showLoader: boolean = true): Promise<ArticleFullObject> {\r\n const response: DataServiceResponseData = await this.articleConnector.getArticleFullObject(goodId, showLoader);\r\n if (response && response.validationResult && response.validationResult.success) {\r\n return this._boFactory.makeWithRawBackendData(ArticleFullObject, response.resultObject) as ArticleFullObject;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n public async getSuperArticle(id: string, branch?: string): Promise<SuperArticle> {\r\n const response: DataServiceResponseData = await this.articleConnector.getSuperArticleQuickSel(id, branch);\r\n if (response && response.validationResult && response.validationResult.success) {\r\n return this._boFactory.makeWithRawBackendData(SuperArticle, response.resultObject) as SuperArticle;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n public async getDocumentContent(docId: number, thumbnail: boolean = true): Promise<DocumentContent> {\r\n const response: DataServiceResponseData = await this.articleConnector.getDocumentContent(docId, thumbnail);\r\n if (response && response.validationResult && response.validationResult.success) {\r\n return this._boFactory.makeWithRawBackendData(DocumentContent, response.resultObject) as unknown as DocumentContent;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n public async addWebSessionTransactionLine(transactionUuid: string, sku: string, quantity: number): Promise<string> {\r\n const response: DataServiceResponseData = await this.transactionConnector.addWebSessionTransactionLine(transactionUuid, sku, quantity);\r\n if (response && response.validationResult && response.validationResult.success) {\r\n const infoResponse: TransactionInfoResponse = this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject) as TransactionInfoResponse;\r\n return infoResponse.transactionInfo.uuid;\r\n }\r\n return \"\";\r\n }\r\n\r\n public async getImageForCoDocument(document: CoDocument, thumb: boolean): Promise<ImageContent> {\r\n const response: DataServiceResponseData = await this.mainConnector.getImageForCoDocument(document, thumb);\r\n if (response && response.validationResult && response.validationResult.success) {\r\n return this._boFactory.makeWithRawBackendData(ImageContent, response.resultObject) as unknown as ImageContent;\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class JsonUtilsService {\r\n\r\n public async readJsonFile(filePath: string): Promise<any> {\r\n try {\r\n const response = await fetch(filePath);\r\n if (!response.ok) {\r\n return null;\r\n } else {\r\n return response.json();\r\n }\r\n } catch (e) {\r\n console.error('Error getting file:', e.message);\r\n return '';\r\n }\r\n }\r\n}\r\n","export enum LanguageCode {\r\n Dutch = \"nl-NL\",\r\n English = \"en-GB\",\r\n German = \"de-DE\",\r\n French = \"fr-FR\",\r\n}\r\n","export class Dictionary {\r\n\r\n public strings: {} = {\r\n \"en\": {\r\n \"ADDITIONAL_DATA\": \"Additional information\",\r\n \"ALTERNATIVE_PRODUCTS\": \"Alternative products\",\r\n \"ARTICLE_NUMBER\": \"Productnumber\",\r\n \"AS_CONFIGURED\": \"As configured\",\r\n \"CATEGORY\": \"Category\",\r\n \"CATEGORY_TYPE\": \"Category type\",\r\n \"CONFIGURE\": \"Configure\",\r\n \"DELIVERY_TIME_PERIOD\": \"Delivery time\",\r\n \"DESCRIPTION\": \"Description\",\r\n \"DOCUMENTS\": \"Documents\",\r\n \"DOWNLOADS\": \"Downloads\",\r\n \"FEATURES\": \"Features\",\r\n \"HEIGHT\": \"Height\",\r\n \"MATERIAL\": \"Material\",\r\n \"PRODUCT_IN_STOCK\": \"In stock\",\r\n \"PRODUCT_LIMITED_STOCK\": \"Limited stock\",\r\n \"PRODUCT_NOT_IN_STOCK\": \"Not in stock\",\r\n \"PROPERTIES\": \"Characteristics\",\r\n \"QUOTATION\": \"Quotation\",\r\n \"READ_MORE\": \"Read more\",\r\n \"RELATED_PRODUCTS\": \"Related products\",\r\n \"SHOPPING_CART_IN\": \"In Shopping Cart\",\r\n \"SHOW_IN\": \"Show in\",\r\n \"STOCK\": \"Stock\",\r\n \"SYMBOLS\": \"Symbols\",\r\n \"TITLE\": \"Title\",\r\n \"TURNOVERGROUP\": \"Turnover group\",\r\n \"VARIANTS\": \"Variations\",\r\n \"WIDTH\": \"Width\",\r\n \"SUGGESTION\": \"Suggestion\",\r\n },\r\n \"nl\": {\r\n \"ADDITIONAL_DATA\": \"Extra informatie\",\r\n \"ALTERNATIVE_PRODUCTS\": \"Alternatieve producten\",\r\n \"ARTICLE_NUMBER\": \"Artikel nummer\",\r\n \"AS_CONFIGURED\": \"Zoals samengesteld\",\r\n \"CATEGORY\": \"Categorie\",\r\n \"CATEGORY_TYPE\": \"Categorie type\",\r\n \"CONFIGURE\": \"Configureren\",\r\n \"DELIVERY_TIME_PERIOD\": \"Levertijd\",\r\n \"DESCRIPTION\": \"Omschrijving\",\r\n \"DOCUMENTS\": \"Documenten\",\r\n \"DOWNLOADS\": \"Downloads\",\r\n \"FEATURES\": \"Kenmerken\",\r\n \"HEIGHT\": \"Hoogte\",\r\n \"MATERIAL\": \"Materiaal\",\r\n \"PRODUCT_IN_STOCK\": \"Op voorraad\",\r\n \"PRODUCT_LIMITED_STOCK\": \"Beperkt op voorraad\",\r\n \"PRODUCT_NOT_IN_STOCK\": \"Niet op voorraad\",\r\n \"PROPERTIES\": \"Eigenschappen\",\r\n \"QUOTATION\": \"Quotatie\",\r\n \"READ_MORE\": \"Lees meer\",\r\n \"RELATED_PRODUCTS\": \"Gerelateerde producten\",\r\n \"SHOPPING_CART_IN\": \"In winkelwagen\",\r\n \"SHOW_IN\": \"Laat zien\",\r\n \"STOCK\": \"Voorraad\",\r\n \"SYMBOLS\": \"Symbolen\",\r\n \"TITLE\": \"Titel\",\r\n \"TURNOVERGROUP\": \"Omzetgroep\",\r\n \"VARIANTS\": \"Varianten\",\r\n \"WIDTH\": \"Breedte\",\r\n \"SUGGESTION\": \"Suggesties bij\",\r\n },\r\n \"de\": {\r\n \"ADDITIONAL_DATA\": \"Extra informatie\",\r\n \"ALTERNATIVE_PRODUCTS\": \"Alternative Produkte\",\r\n \"ARTICLE_NUMBER\": \"Artikelnummer\",\r\n \"CATEGORY\": \"Kategorie\",\r\n \"CATEGORY_TYPE\": \"Kategorietype\",\r\n \"CONFIGURE\": \"Konfigurieren\",\r\n \"DELIVERY_TIME_PERIOD\": \"Lieferzeit\",\r\n \"DESCRIPTION\": \"Beschreibung\",\r\n \"DOCUMENTS\": \"Dateien\",\r\n \"DOWNLOADS\": \"Downloads\",\r\n \"FEATURES\": \"Eigenschaften\",\r\n \"HEIGHT\": \"Höhe\",\r\n \"MATERIAL\": \"Material\",\r\n \"PRODUCT_IN_STOCK\": \"Auf lager\",\r\n \"PRODUCT_LIMITED_STOCK\": \"Begrentzt auf lager\",\r\n \"PRODUCT_NOT_IN_STOCK\": \"Nicht auf lager\",\r\n \"PROPERTIES\": \"Eigenschaften\",\r\n \"QUOTATION\": \"Angebot\",\r\n \"READ_MORE\": \"Lesen Sie mehr\",\r\n \"RELATED_PRODUCTS\": \"Verwandte Produkte\",\r\n \"SHOPPING_CART_IN\": \"Im Einkaufswagen\",\r\n \"SHOW_IN\": \"Zeigen\",\r\n \"STOCK\": \"Vorrat\",\r\n \"SYMBOLS\": \"Symbole\",\r\n \"TITLE\": \"Titulatur\",\r\n \"TURNOVERGROUP\": \"Umsatzgruppe\",\r\n \"VARIANTS\": \"Varianten\",\r\n \"WIDTH\": \"Breite\",\r\n \"SUGGESTION\": \"Suggesties bij\",\r\n }\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { LanguageCode } from '../enum/language-code.enum';\r\nimport { JsonUtilsService } from '../utils/json-utils.service';\r\nimport { Dictionary } from '../../assets/dictionary/text.properties';\r\nimport {StringUtils} from '@colijnit/ioneconnector/build/utils/string-utils';\r\n\r\n// The localization service, providing peers with text translation functionality.\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DictionaryService {\r\n private readonly dictionaryUrl: string = 'js/browser/res/dictionary/';\r\n\r\n public get language(): string {\r\n return this._language;\r\n }\r\n\r\n public set rootUrl(value: string) {\r\n this._rootUrl = value;\r\n this._dictBasePath = this._rootUrl + '/' + this.dictionaryUrl;\r\n }\r\n\r\n // public dictionaryLoaded: Subject<void> = new Subject();\r\n\r\n private _dictBasePath: string;\r\n private _rootUrl: string;\r\n // private _dictionaryPromise: Map<LanguageCode, Promise<{ [key: string]: string }>> = new Map<LanguageCode, Promise<{ [key: string]: string }>>();\r\n private _dictionaries: Map<string, { [key: string]: string }> = new Map<string, { [key: string]: string }>();\r\n private _language: string;\r\n\r\n // Some dictionary values have one or more '|~' texts in them, meant to be replaced with client-side given texts.\r\n private readonly _placeholder: string = '|~';\r\n\r\n constructor(\r\n private _jsonUtils: JsonUtilsService\r\n ) {\r\n }\r\n\r\n // Loads the dictionary for given language in memory.\r\n public async setDictionary(language: string): Promise<void> {\r\n this._language = language || LanguageCode.Dutch;\r\n if (!this._dictionaries.has(this._language)) {\r\n const dictionary = new Dictionary();\r\n if (dictionary.strings[this._language.substr(0, 2).toLowerCase()] !== undefined) {\r\n this._dictionaries.set(this._language, dictionary.strings[this._language.substr(0, 2).toLowerCase()]);\r\n }\r\n }\r\n // if (!this._dictionaryPromise.has(language)) {\r\n // this._dictionaryPromise.set(language,\r\n // this._jsonUtils.readJsonFile(this._dictBasePath + 'text_' + language.substr(0, 2).toLowerCase() + '.properties.json')\r\n // .then((data: { [key: string]: string }) => {\r\n // this._dictionaries.set(language, data);\r\n // this.dictionaryLoaded.next();\r\n // return data;\r\n // })\r\n // // this._http.get(this._dictBasePath + 'text_' + language.substr(0, 2).toLowerCase() + '.properties.json')\r\n // // .toPromise().then((data: { [key: string]: string }) => {\r\n // // this._dictionaries.set(language, data);\r\n // // return data;\r\n // // })\r\n // );\r\n // } else {\r\n // this.dictionaryLoaded.next();\r\n // }\r\n // await this._dictionaryPromise.get(language);\r\n }\r\n\r\n /**\r\n * Returns the localized text for the given dictionary key.\r\n * @param {string} key\r\n * @param {boolean} [upperCaseFirst = true] False for first letter lowercase, true for first letter uppercase for returned dict val\r\n * @param {string[]} replacementTexts Rest params for replacement of '|~' in returned dict value\r\n * @returns {string} The translated text for given dictionary key\r\n */\r\n public get(key: string, upperCaseFirst: boolean = true, ...replacementTexts: string[]): string {\r\n if (!StringUtils.IsStringWithLength(key)) {\r\n return key || '';\r\n }\r\n\r\n let text: string = this._dictionaries.get(this.language)[key];\r\n text = StringUtils.IsStringWithLength(text) ? text : key;\r\n\r\n if (upperCaseFirst) {\r\n text = text.charAt(0).toUpperCase() + text.slice(1);\r\n } else {\r\n text = text.charAt(0).toLowerCase() + text.slice(1);\r\n }\r\n\r\n if (replacementTexts.length > 0) {\r\n text = StringUtils.ReplaceOccurrencesIn(text, this._placeholder, ...replacementTexts);\r\n }\r\n\r\n return text;\r\n }\r\n\r\n // private _dictionaryLoaded(language: LanguageCode): boolean {\r\n // return this._dictionaries.has(language);\r\n // }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { JsonUtilsService } from '../utils/json-utils.service';\r\nimport { DictionaryService } from './dictionary.service';\r\nimport { ProductSettings } from '../model/productSettings';\r\nimport { SettingsOptions } from '../model/settings-options';\r\n\r\ndeclare let settings: any;\r\n\r\n@Injectable()\r\nexport class ProductSettingsService {\r\n\r\n public set settings(value: ProductSettings) {\r\n this._settings = value;\r\n }\r\n\r\n public get settings(): ProductSettings {\r\n return this._settings;\r\n }\r\n\r\n public settingsLoaded: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n\r\n private _settings: ProductSettings;\r\n\r\n constructor(\r\n private _jsonUtilsService: JsonUtilsService,\r\n private _dictionaryService: DictionaryService\r\n ) {\r\n }\r\n\r\n public async initializeSettings(finish: boolean = true): Promise<void> {\r\n // see if there's a json file for application settings\r\n if (typeof settings === 'undefined') {\r\n const jsonSettings = await this._jsonUtilsService.readJsonFile('product-settings.json');\r\n if (jsonSettings) {\r\n this.settings = Object.assign(new ProductSettings(), jsonSettings);\r\n this.settings.options = Object.assign(new SettingsOptions(), this.settings.options);\r\n if (finish) {\r\n this.settingsFinished();\r\n }\r\n }\r\n } else {\r\n this.settings = Object.assign(new ProductSettings(), settings);\r\n this.settings.options = Object.assign(new SettingsOptions(), this.settings.options);\r\n if (finish) {\r\n this.settingsFinished();\r\n }\r\n }\r\n }\r\n\r\n public async createSettingsFromObject(obj: any): Promise<void> {\r\n if (!this.settings) {\r\n this.settings = new ProductSettings();\r\n }\r\n const ownOptions = Object.assign({}, this.settings.options);\r\n const ownRenderParameters = Object.assign({}, this.settings.renderParameters);\r\n this.settings = Object.assign({}, this.settings, obj);\r\n if (obj.renderParameters) {\r\n this.settings.renderParameters = Object.assign({}, ownRenderParameters, obj.renderParameters);\r\n }\r\n if (obj.options) {\r\n this.settings.options = Object.assign({}, ownOptions, obj.options);\r\n }\r\n if (obj.hasOwnProperty('assetPath')) {\r\n this.settings.assetPath = obj['assetPath'];\r\n if (this.settings.assetPath[this.settings.assetPath.length - 1] !== '/') {\r\n this.settings.assetPath += '/';\r\n }\r\n this.settings.threeDAssetPath = this.settings.assetPath;\r\n }\r\n if (obj.hasOwnProperty('threeDAssetPath')) {\r\n this.settings.threeDAssetPath = obj['threeDAssetPath'];\r\n if (this.settings.threeDAssetPath[this.settings.threeDAssetPath.length - 1] !== '/') {\r\n this.settings.threeDAssetPath += '/';\r\n }\r\n }\r\n this.settingsFinished();\r\n }\r\n\r\n public async settingsFinished(): Promise<void> {\r\n await this._dictionaryService.setDictionary(this.settings.languageCode);\r\n this.settingsLoaded.next(true);\r\n }\r\n}\r\n","import {Injectable, OnDestroy} from '@angular/core';\r\nimport {BehaviorSubject, Subscription} from 'rxjs';\r\nimport {Options} from '@colijnit/ioneconnector/build/model/options';\r\nimport {ProductConnectorAdapterService} from './product-connector-adapter.service';\r\nimport {ArticleFullObject} from '@colijnit/articleapi/build/model/article-full-object';\r\nimport {SuperArticle} from '@colijnit/articleapi/build/model/super-article';\r\nimport {ProductSettingsService} from './product-settings.service';\r\nimport {ProductSettings} from '../model/productSettings';\r\nimport {ConfiguratorStatisticsEnvironment} from '@colijnit/articleapi/build/model/configurator-statistics-environment';\r\nimport {DeliveryPrognosis} from '@colijnit/articleapi/build/model/delivery-prognosis';\r\nimport {DocumentContent} from '@colijnit/articleapi/build/model/document-content';\r\nimport {ArticleListObjectExtended} from '@colijnit/articleapi/build/model/article-list-object-extended.bo';\r\nimport {CoDocument} from '@colijnit/mainapi/build/model/co-document.bo';\r\nimport {ImageContent} from '@colijnit/mainapi/build/model/image-content.bo';\r\n\r\n\r\n// Holds all iONE backend related state and methods for a running HomeDecorator. To be used anywhere internally.\r\n@Injectable()\r\nexport class ProductConnectorService implements OnDestroy {\r\n\r\n public get shouldShowLoader(): boolean {\r\n return this._shouldShowLoader;\r\n }\r\n\r\n public controllerInitialized: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\r\n public articleLoaded: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\r\n\r\n private _shouldShowLoader: boolean;\r\n private _initializing = false;\r\n private _initialized = false;\r\n private _instanceId: string;\r\n\r\n private connectorOptions: Options = new Options();\r\n\r\n private readonly subs: Subscription[] = [];\r\n\r\n constructor(\r\n private _adapterService: ProductConnectorAdapterService,\r\n private _settingsService: ProductSettingsService\r\n ) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subs.forEach(sub => sub.unsubscribe());\r\n }\r\n\r\n public async initConnection(): Promise<void> {\r\n if (this._initialized || this._initializing) {\r\n return;\r\n }\r\n this._initializing = true;\r\n try {\r\n const settings: ProductSettings = this._settingsService.settings;\r\n if (!settings) {\r\n throw Error('Settings are not defined!');\r\n }\r\n this.connectorOptions = Object.assign(new Options(), settings);\r\n\r\n await this._adapterService.initConnector(this.connectorOptions);\r\n this.controllerInitialized.next(true);\r\n this._initialized = true;\r\n this._initializing = false;\r\n } catch (e) {\r\n this._initializing = false;\r\n }\r\n }\r\n\r\n public async getProductBundleSettings(url: string, upId: number): Promise<string> {\r\n return this._adapterService.getProductBundleSettings(url, upId);\r\n }\r\n\r\n public setInstance(instanceId: string): void {\r\n this._instanceId = instanceId;\r\n this._adapterService.setInstance(instanceId);\r\n }\r\n\r\n public convertArticleFullObjectToArticleExtended(article: ArticleFullObject): ArticleListObjectExtended {\r\n return this._adapterService.convertArticleFullObjectToArticleExtended(article);\r\n }\r\n\r\n public async getFullArticle(sku: string): Promise<ArticleFullObject> {\r\n const goodId: number = await this._adapterService.getGoodIdFromArticleNr(sku);\r\n if (goodId) {\r\n return this._adapterService.getArticleFullObject(goodId);\r\n }\r\n return null;\r\n }\r\n\r\n public getDocumentContent(docId: number, thumbnail: boolean = true): Promise<DocumentContent> {\r\n return this._adapterService.getDocumentContent(docId, thumbnail);\r\n }\r\n\r\n public getDeliveryPrognosis(goodId: number): Promise<DeliveryPrognosis> {\r\n return this._adapterService.getDeliveryPrognosis(goodId);\r\n }\r\n\r\n public async getSelectorDeliveryDate(): Promise<DeliveryPrognosis> {\r\n return this._adapterService.getSelectorDeliveryDate();\r\n }\r\n\r\n public getArtStockStatus(goodId: number): Promise<number> {\r\n return this._adapterService.getArtStockStatus(goodId);\r\n }\r\n\r\n public getDeliveryDate2(goodId: number): Promise<DeliveryPrognosis> {\r\n return this._adapterService.getDeliveryDate2(goodId);\r\n }\r\n\r\n public getSuperArticle(id: string): Promise<SuperArticle> {\r\n return this._adapterService.getSuperArticle(id);\r\n }\r\n\r\n public getJsonArticleFlatTree(\r\n goodId: number,\r\n goodType: string,\r\n quantity: number,\r\n externalSource: boolean = false,\r\n showLoader: boolean = true,\r\n configuratorStatistics?: ConfiguratorStatisticsEnvironment): Promise<string> {\r\n return this._adapterService.getJsonArticleFlatTree(goodId, goodType, quantity, externalSource, showLoader, this._instanceId, configuratorStatistics);\r\n }\r\n\r\n public getGeneratedArtDirectly(goodId: number, showLoader: boolean = true): Promise<number> {\r\n return this._adapterService.getGeneratedArtDirectly(goodId, showLoader);\r\n }\r\n\r\n public async addWebSessionTransactionLine(transactionUuid: string, sku: string, quantity: number): Promise<string> {\r\n return await this._adapterService.addWebSessionTransactionLine(transactionUuid, sku, quantity);\r\n }\r\n\r\n public async getImageForCoDocument(document: CoDocument, thumb: boolean = false): Promise<ImageContent> {\r\n return this._adapterService.getImageForCoDocument(document, thumb);\r\n }\r\n\r\n\r\n public onShowLoaderChange(showLoader: boolean): void {\r\n this._shouldShowLoader = showLoader;\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\n\r\nexport class RootStorageObject {\r\n public id: string;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LocalStorageService {\r\n public readonly storage: Storage = localStorage;\r\n\r\n protected _appRoot: string = \"web-order\";\r\n\r\n protected _storageObj: RootStorageObject = new RootStorageObject();\r\n\r\n constructor() {\r\n this._initLocalStorageObj();\r\n }\r\n\r\n public save(): void {\r\n this.storage.setItem(this._appRoot, JSON.stringify(this._storageObj));\r\n }\r\n\r\n public clear(): void {\r\n this.storage.clear();\r\n }\r\n\r\n public set id(id: string) {\r\n this._storageObj.id = id;\r\n this.save();\r\n }\r\n\r\n public get id(): string {\r\n return this._storageObj ? this._storageObj.id : \"\";\r\n }\r\n\r\n protected _initLocalStorageObj(): void {\r\n this._storageObj = JSON.parse(this.storage.getItem(this._appRoot)) || this._storageObj;\r\n this.save();\r\n }\r\n}\r\n","export class StockAndDelivery {\r\n\r\n public stock: number = 0;\r\n public deliveryDescription: string;\r\n\r\n constructor(stock?: any, deliveryDescription?: string) {\r\n this.stock = stock;\r\n this.deliveryDescription = deliveryDescription;\r\n }\r\n}\r\n","export enum SelectorType {\r\n TwoD = '2D',\r\n ThreeD = '3D',\r\n Omni = 'Omni'\r\n}\r\n","/** AUTO GENERATED FILE. DO NOT CHANGE.. **/\r\n\r\nexport enum IconEnum {\r\n AddToCartDrop = \"add_to_cart_drop\",\r\n ArrowPointLeft = \"arrow_point_left\",\r\n ArrowPointRight = \"arrow_point_right\",\r\n CrossSkinny = \"cross_skinny\",\r\n DeliveryTruck = \"delivery_truck\",\r\n Download = \"download\",\r\n FullScreen = \"full_screen\",\r\n LinkSimpleRegular = \"link_simple_regular\",\r\n Location = \"location\",\r\n Logo = \"logo\",\r\n MagicWand = \"magic_wand\",\r\n NormalScreen = \"normal_screen\",\r\n Quote = \"quote\",\r\n Refresh = \"refresh\",\r\n SaveSkinny = \"save_skinny\",\r\n ThreeD = \"three_d\",\r\n Truck = \"truck\",\r\n TwoD = \"two_d\",\r\n Warehouse = \"warehouse\"\r\n}\r\n","/** AUTO GENERATED FILE. DO NOT CHANGE.. **/\r\n\r\nexport const IconSvg: {[iconName: string]: string} = {\r\n \"add_to_cart_drop\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M16.58,34.84a1.8,1.8,0,1,0,1.8,1.8A1.79,1.79,0,0,0,16.58,34.84Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M31.49,34.84a1.8,1.8,0,1,0,1.8,1.8A1.79,1.79,0,0,0,31.49,34.84Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M35.6,17.9l-1.51.18L31.88,20.3l1.31-.17a.88.88,0,0,1,1,1.08L32.35,29.5a1.52,1.52,0,0,1-1.44,1.2H16.51a1.75,1.75,0,0,1-1.57-1.17l-2.31-5.6a1,1,0,0,1,.85-1.29l4.43-.56-1.86-1.86-5.13.61a1,1,0,0,0-.87,1.28l3.34,9.44A1.73,1.73,0,0,0,15,32.72H32.64a1.51,1.51,0,0,0,1.43-1.2L36.6,19A.89.89,0,0,0,35.6,17.9Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M39,17a1.87,1.87,0,0,0-1.36,1.46l-.42,2.89c-.1.67.31,1,.9.7a2.75,2.75,0,0,0,1.33-1.7L40,18A.73.73,0,0,0,39,17Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"24 25.35 32.04 17.3 27.04 17.3 27.04 10 20.95 10 20.95 17.3 15.96 17.3 24 25.35\\\" fill=\\\"#484f60\\\"/></svg>\",\r\n \"arrow_point_left\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 51 51\\\" enable-background=\\\"new 0 0 51 51\\\" ><path fill=\\\"#484F5F\\\" d=\\\"M31.9,36.7l-14.7-9.6C17.1,27,17,26.9,17,26.7v-2.4c0-0.2,0.1-0.3,0.2-0.4l14.7-9.6c0.2-0.2,0.5-0.1,0.7,0.1l1.4,2.1c0.2,0.2,0.1,0.5-0.1,0.7l-12,7.8c-0.3,0.2-0.3,0.6,0,0.8l12,7.8c0.2,0.2,0.3,0.5,0.1,0.7l-1.4,2.1C32.4,36.8,32.1,36.8,31.9,36.7z\\\"/></svg>\",\r\n \"arrow_point_right\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 51 51\\\" enable-background=\\\"new 0 0 51 51\\\" ><path fill=\\\"#484F5F\\\" d=\\\"M19.1,14.3l14.7,9.6c0.1,0.1,0.2,0.2,0.2,0.4v2.4c0,0.2-0.1,0.3-0.2,0.4l-14.7,9.6c-0.2,0.2-0.5,0.1-0.7-0.1l-1.4-2.1c-0.2-0.2-0.1-0.5,0.1-0.7l12-7.8c0.3-0.2,0.3-0.6,0-0.8l-12-7.8c-0.2-0.2-0.3-0.5-0.1-0.7l1.4-2.1C18.6,14.2,18.9,14.2,19.1,14.3z\\\"/></svg>\",\r\n \"cross_skinny\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 30 30\\\"><g ><polygon points=\\\"25.35 5.52 24.65 4.81 15 14.46 5.35 4.81 4.65 5.52 14.29 15.17 4.65 24.81 5.35 25.52 15 15.87 24.65 25.52 25.35 24.81 15.71 15.17 25.35 5.52\\\" fill=\\\"#484f60\\\"/></g></svg>\",\r\n \"delivery_truck\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M25,45A20,20,0,1,1,45,25,20,20,0,0,1,25,45ZM25,6.29A18.71,18.71,0,1,0,43.71,25,18.73,18.73,0,0,0,25,6.29Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M21.86,24.09a7.14,7.14,0,0,1,.72-3.24,6.94,6.94,0,0,1,1.18-1.66H13v10.1h8.51a3.25,3.25,0,0,1,3.27-3.07A3.33,3.33,0,0,1,27,27V25.75H21.9Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M21.65,30.47h-.48a3.51,3.51,0,0,1,1.13,2.19h1.57a3.22,3.22,0,0,1-1.41-.83A3.13,3.13,0,0,1,21.65,30.47Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M34.63,21.89H28.87c-.3.25-.5.43-.63.56v8H28a3.19,3.19,0,0,1-.82,1.37,3.3,3.3,0,0,1-1.41.82H29a3.53,3.53,0,0,1,7,0h1V27.1Zm-.2,5.38H30.8a.47.47,0,0,1-.46-.46V23.36a.46.46,0,0,1,.46-.46h2.1a.45.45,0,0,1,.42.27l1.53,3.45A.46.46,0,0,1,34.43,27.27Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M16.42,30.47a3.51,3.51,0,0,0-1.13,2.19H14.6l-1.6-1V30.47Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M30,33.08a2.53,2.53,0,1,0,2.53-2.53A2.52,2.52,0,0,0,30,33.08Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M16.27,33.08a2.53,2.53,0,1,0,2.53-2.53A2.52,2.52,0,0,0,16.27,33.08Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M22.45,17.27h-3.2a4.29,4.29,0,0,1,1.61-3.49,6.45,6.45,0,0,1,4.31-1.38,6.79,6.79,0,0,1,2.92.57A4.72,4.72,0,0,1,30,14.62a4,4,0,0,1,.72,2.26,3.74,3.74,0,0,1-.23,1.27,5.31,5.31,0,0,1-.73,1.29,12,12,0,0,1-1.4,1.29A8.74,8.74,0,0,0,27.06,22a3.17,3.17,0,0,0-.46.94,7.56,7.56,0,0,0-.23,1.65h-3.3v-.49a6,6,0,0,1,.59-2.68,6.8,6.8,0,0,1,1.94-2.25,9.44,9.44,0,0,0,1.56-1.41,1.5,1.5,0,0,0,.27-.9,1.47,1.47,0,0,0-.65-1.19A2.9,2.9,0,0,0,25,15.14a2.77,2.77,0,0,0-1.84.6A1.91,1.91,0,0,0,22.45,17.27Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M24.78,27.42a2.06,2.06,0,0,1,1.51.61,2,2,0,0,1,.63,1.47A2,2,0,0,1,26.3,31a2.08,2.08,0,0,1-1.5.62A2,2,0,0,1,23.31,31a2.08,2.08,0,0,1,0-2.95A2,2,0,0,1,24.78,27.42Z\\\" fill=\\\"#484f60\\\"/></svg>\",\r\n \"download\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\" version=\\\"1.1\\\" sodipodi:docname=\\\"download.svg\\\" inkscape:version=\\\"0.92.4 (5da689c313, 2019-01-14)\\\"><metadata ><rdf:RDF><cc:Work rdf:about=\\\"\\\"><dc:format>image/svg+xml</dc:format><dc:type rdf:resource=\\\"http://purl.org/dc/dcmitype/StillImage\\\" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs /><sodipodi:namedview pagecolor=\\\"#ffffff\\\" bordercolor=\\\"#666666\\\" borderopacity=\\\"1\\\" objecttolerance=\\\"10\\\" gridtolerance=\\\"10\\\" guidetolerance=\\\"10\\\" inkscape:pageopacity=\\\"0\\\" inkscape:pageshadow=\\\"2\\\" inkscape:window-width=\\\"1920\\\" inkscape:window-height=\\\"1017\\\" showgr inkscape:zoom=\\\"6.675088\\\" inkscape:cx=\\\"-14.056273\\\" inkscape:cy=\\\"29.806579\\\" inkscape:window-x=\\\"-8\\\" inkscape:window-y=\\\"-8\\\" inkscape:window-maximized=\\\"1\\\" inkscape:current-layer=\\\"svg8\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"m 498.966,339.946 c -7.197,0 -13.034,5.837 -13.034,13.034 v 49.804 c 0,28.747 -23.388,52.135 -52.135,52.135 H 78.203 c -28.747,0 -52.135,-23.388 -52.135,-52.135 V 352.98 c 0,-7.197 -5.835,-13.034 -13.034,-13.034 C 5.835,339.946 0,345.782 0,352.98 v 49.804 c 0,43.121 35.082,78.203 78.203,78.203 h 355.594 c 43.121,0 78.203,-35.082 78.203,-78.203 V 352.98 c 0,-7.198 -5.835,-13.034 -13.034,-13.034 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"M 419.833,391.3 H 92.167 c -7.197,0 -13.034,5.837 -13.034,13.034 0,7.197 5.835,13.034 13.034,13.034 h 327.665 c 7.199,0 13.034,-5.835 13.034,-13.034 0,-7.197 -5.835,-13.034 -13.033,-13.034 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"m 387.919,207.93 c -4.795,-5.367 -13.034,-5.834 -18.404,-1.038 L 269.033,296.657 V 44.048 c 0,-7.197 -5.835,-13.034 -13.034,-13.034 -7.197,0 -13.034,5.835 -13.034,13.034 V 296.657 L 142.483,206.893 c -5.367,-4.796 -13.607,-4.328 -18.404,1.038 -4.794,5.369 -4.331,13.609 1.037,18.404 l 109.174,97.527 c 6.187,5.529 13.946,8.292 21.708,8.292 7.759,0 15.519,-2.763 21.708,-8.289 l 109.174,-97.53 c 5.37,-4.798 5.834,-13.038 1.039,-18.405 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></svg>\",\r\n \"full_screen\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M38,38.17H12v-26H38ZM13.24,36.93H36.76V13.4H13.24Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"17.35 32.81 17.35 26.75 19.46 28.86 28.69 19.63 26.59 17.52 32.65 17.52 32.65 23.58 30.54 21.47 21.31 30.71 23.41 32.81 17.35 32.81\\\" fill=\\\"#484f60\\\"/></svg>\",\r\n \"link_simple_regular\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M0 256C0 167.6 71.6 96 160 96l72 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-72 0C98.1 144 48 194.1 48 256s50.1 112 112 112l72 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-72 0C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160l-72 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0c61.9 0 112-50.1 112-112s-50.1-112-112-112l-72 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0c88.4 0 160 71.6 160 160zM184 232l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\\\"/></svg>\",\r\n \"location\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M25,12.67A8.33,8.33,0,0,0,16.67,21c0,4.6,8.33,16.67,8.33,16.67S33.33,25.6,33.33,21A8.33,8.33,0,0,0,25,12.67Zm0,10.41A2.08,2.08,0,1,1,27.08,21,2.08,2.08,0,0,1,25,23.08Z\\\" fill=\\\"#484f60\\\"/></svg>\",\r\n \"logo\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"10\\\" y=\\\"21.19\\\" width=\\\"2.04\\\" height=\\\"6.32\\\" fill=\\\"#484f60\\\"/><path d=\\\"M18.66,29.24a3.84,3.84,0,0,1-2.85-1.19,4.19,4.19,0,0,1,0-5.77,4,4,0,0,1,5.71,0,4.19,4.19,0,0,1,0,5.77A3.85,3.85,0,0,1,18.66,29.24Zm0-6.16a1.79,1.79,0,0,0-1.38.58,2.12,2.12,0,0,0-.57,1.51,2,2,0,0,0,.57,1.49,1.94,1.94,0,0,0,2.76,0,2.08,2.08,0,0,0,.56-1.5,2.15,2.15,0,0,0-.56-1.51A1.76,1.76,0,0,0,18.67,23.08Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"31.05 29.18 27.33 25.02 27.33 29.14 25.29 29.14 25.29 21.15 26.57 21.15 30.29 25.33 30.29 21.19 32.33 21.19 32.33 29.18 31.05 29.18\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"35.34 29.14 35.34 21.19 39.9 21.19 39.9 23.17 37.38 23.17 37.38 23.9 39.66 23.9 39.66 25.87 37.38 25.87 37.38 27.14 40 27.14 40 29.14 35.34 29.14\\\" fill=\\\"#484f60\\\"/></svg>\",\r\n \"magic_wand\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><title>magic_wand</title><g style=\\\"isolation:isolate\\\"><path d=\\\"M20.45,10.71a.28.28,0,0,1,.49-.19l1.4,1.25a.93.93,0,0,0,.83.23L25,11.62a.29.29,0,0,1,.34.41l-.76,1.71a.93.93,0,0,0,0,.86l.93,1.62c.12.26,0,.45-.29.45l-1.86-.2a1,1,0,0,0-.81.32l-1.26,1.38a.28.28,0,0,1-.5-.14l-.39-1.83a1,1,0,0,0-.55-.67l-1.71-.77a.28.28,0,0,1,0-.52l1.62-.94a1,1,0,0,0,.48-.73Z\\\" fill=\\\"#484f60\\\"/><g style=\\\"mix-blend-mode:lighten\\\"><path d=\\\"M23.3,16.21a1,1,0,0,0-.8.31l-1,1.13a.29.29,0,0,1-.51-.14L20.66,16a1,1,0,0,0-.55-.68l-1.39-.62a.28.28,0,0,1,0-.52L20,13.45a1,1,0,0,0,.48-.73l.16-1.5a.29.29,0,0,1,.49-.2l1.13,1a.93.93,0,0,0,.83.23L24.58,12a.29.29,0,0,1,.34.41l-.62,1.38a.91.91,0,0,0,.05.86l.75,1.32a.29.29,0,0,1-.29.44Z\\\" fill=\\\"#484f60\\\"/></g><path d=\\\"M33.57,36.76a.53.53,0,0,1,0,.72l-2.37,2.18a.48.48,0,0,1-.7,0L18,25.34a.51.51,0,0,1,0-.71l2.36-2.19a.49.49,0,0,1,.7,0Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M18.6,19.94a.51.51,0,0,1,0,.71L16.2,22.84a.48.48,0,0,1-.7,0l-2.76-3.13a.51.51,0,0,1,0-.71l2.37-2.19a.48.48,0,0,1,.7,0Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M30.67,10.55a.29.29,0,0,1,.47.24v1.12a1,1,0,0,0,.4.77l.9.66a.29.29,0,0,1-.08.52l-1.07.35a1,1,0,0,0-.61.61l-.35,1.06a.28.28,0,0,1-.51.09l-.67-.91a1,1,0,0,0-.77-.4H27.27a.29.29,0,0,1-.25-.47l.66-.9a.93.93,0,0,0,.14-.85l-.35-1.07a.29.29,0,0,1,.38-.38l1.07.35a1,1,0,0,0,.85-.13Z\\\" fill=\\\"#484f60\\\"/><g style=\\\"mix-blend-mode:lighten\\\"><path d=\\\"M29.25,14.88a1,1,0,0,0-.77-.4h-.86a.29.29,0,0,1-.24-.47l.5-.69a.93.93,0,0,0,.14-.85l-.26-.82c-.07-.27.1-.44.37-.37l.82.26a1,1,0,0,0,.85-.13l.69-.51a.29.29,0,0,1,.47.25V12a.94.94,0,0,0,.39.76l.7.51a.29.29,0,0,1-.09.52l-.81.26a1,1,0,0,0-.62.61l-.26.82a.29.29,0,0,1-.52.08Z\\\" fill=\\\"#484f60\\\"/></g><path d=\\\"M37,15.81a.29.29,0,0,1,.32.43l-.13.26a.91.91,0,0,0,0,.85l.15.26A.29.29,0,0,1,37,18l-.29,0a.93.93,0,0,0-.81.27l-.2.21a.28.28,0,0,1-.5-.16l0-.29a1,1,0,0,0-.52-.69l-.27-.13a.28.28,0,0,1,0-.52l.26-.13a.93.93,0,0,0,.5-.71l0-.29a.29.29,0,0,1,.5-.17l.21.21a.92.92,0,0,0,.82.26Z\\\" fill=\\\"#484f60\\\"/><g style=\\\"mix-blend-mode:lighten\\\"><path d=\\\"M35.25,18a1,1,0,0,0-.52-.7l-.12-.05a.28.28,0,0,1,0-.52l.12-.06a1,1,0,0,0,.51-.7V15.8a.29.29,0,0,1,.5-.18l.09.1a.92.92,0,0,0,.82.26l.13,0a.29.29,0,0,1,.32.42L37,16.5a.91.91,0,0,0,0,.85l.07.12a.29.29,0,0,1-.31.43l-.13,0a1,1,0,0,0-.82.28l-.09.1a.28.28,0,0,1-.5-.16Z\\\" fill=\\\"#484f60\\\"/></g></g></svg>\",\r\n \"normal_screen\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M38,38.17H12v-26H38ZM13.24,36.93H36.76V13.4H13.24Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"22.18 29.83 24.29 31.93 24.29 25.87 18.23 25.87 20.34 27.98 16.43 31.89 18.28 33.73 22.18 29.83\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"33.57 18.44 31.73 16.6 27.82 20.51 25.71 18.4 25.71 24.46 31.77 24.46 29.66 22.35 33.57 18.44\\\" fill=\\\"#484f60\\\"/></svg>\",\r\n \"quote\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M14.5,31.51V12a.5.5,0,0,1,.5-.5H35a.5.5,0,0,1,.5.5V38a.5.5,0,0,1-.5.5H21.27V40H35a2,2,0,0,0,2-2V12a2,2,0,0,0-2-2H15a2,2,0,0,0-2,2V31.51Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M21.27,40V33.56c0-1.78-.27-2.05-2.05-2.05H13Z\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17.5\\\" y=\\\"18.5\\\" width=\\\"6\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"25.5\\\" y=\\\"21.5\\\" width=\\\"7\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"25.5\\\" y=\\\"18.5\\\" width=\\\"7\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"26.5\\\" y=\\\"25.5\\\" width=\\\"6\\\" height=\\\"4\\\" transform=\\\"translate(59 55) rotate(-180)\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17.5\\\" y=\\\"28.5\\\" width=\\\"7\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17.5\\\" y=\\\"25.5\\\" width=\\\"7\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17.5\\\" y=\\\"14.5\\\" width=\\\"6\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"26.5\\\" y=\\\"34.5\\\" width=\\\"6\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/></svg>\",\r\n \"refresh\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\" version=\\\"1.1\\\" sodipodi:docname=\\\"refresh.svg\\\" inkscape:version=\\\"0.92.4 (5da689c313, 2019-01-14)\\\"><metadata ><rdf:RDF><cc:Work rdf:about=\\\"\\\"><dc:format>image/svg+xml</dc:format><dc:type rdf:resource=\\\"http://purl.org/dc/dcmitype/StillImage\\\" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs /><sodipodi:namedview pagecolor=\\\"#ffffff\\\" bordercolor=\\\"#666666\\\" borderopacity=\\\"1\\\" objecttolerance=\\\"10\\\" gridtolerance=\\\"10\\\" guidetolerance=\\\"10\\\" inkscape:pageopacity=\\\"0\\\" inkscape:pageshadow=\\\"2\\\" inkscape:window-width=\\\"1920\\\" inkscape:window-height=\\\"1017\\\" showgr inkscape:zoom=\\\"9.44\\\" inkscape:cx=\\\"13.990693\\\" inkscape:cy=\\\"13.961336\\\" inkscape:window-x=\\\"-8\\\" inkscape:window-y=\\\"-8\\\" inkscape:window-maximized=\\\"1\\\" inkscape:current-layer=\\\"svg6\\\" /><g transform=\\\"matrix(0.05356365,0,0,0.05356365,11.44076,11.82465)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"M 414.32892,173.53368 397.86852,58.29997 c -1.3534,-9.447409 -12.96516,-13.373353 -19.75699,-6.581524 l -23.97472,23.97472 C 323.3074,57.095569 288.30682,47.308258 252.3168,47.308258 c -108.23157,0 -195.126154,84.711612 -197.8314,192.852392 -0.147446,5.91103 4.149441,10.98085 9.992183,11.82206 l 46.516107,6.64982 c 6.93462,1.01194 13.38577,-4.43269 13.28954,-11.68548 -0.9646,-71.37163 56.68057,-129.79595 128.03357,-129.79595 17.27835,0 34.3526,3.51232 50.13165,10.23043 l -23.11022,23.11022 c -6.74915,6.74915 -2.91866,18.3966 6.58152,19.75699 l 115.23371,16.4604 c 7.59269,1.14465 14.26423,-5.4586 13.17546,-13.17546 z\\\" style=\\\"fill:#484f60;fill-opacity:1;stroke-width:0.77603161\\\" /></g></g><path inkscape:connector-curvature=\\\"0\\\" d=\\\"m 35.105827,24.725982 -2.489742,-0.355606 c -0.321647,-0.04073 -0.711797,0.234897 -0.711797,0.671018 0,3.781814 -3.076753,6.858567 -6.858567,6.858567 -0.920628,0 -1.830946,-0.186303 -2.673013,-0.542533 l 1.198298,-1.198297 c 0.361507,-0.361507 0.156331,-0.985389 -0.352533,-1.058254 l -6.172336,-0.882302 c -0.405403,-0.05792 -0.764422,0.289765 -0.705726,0.705725 l 0.881637,6.172381 c 0.07258,0.506577 0.694003,0.71545 1.058254,0.352527 l 1.315225,-1.314599 c 1.643397,0.987012 3.516951,1.506391 5.450194,1.506391 5.769264,0 10.423029,-4.514936 10.595325,-10.27871 0.0091,-0.317237 -0.221012,-0.591248 -0.535219,-0.636308 z\\\" style=\\\"fill:#484f60;fill-opacity:1;stroke-width:0.04156709\\\" /></svg>\",\r\n \"save_skinny\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><polygon points=\\\"23.8 38.1 14.9 25.6 15.7 25 23.6 36.2 35.2 12.9 36.1 13.4 23.8 38.1\\\" fill=\\\"#fff\\\"/></svg>\",\r\n \"three_d\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M16.08,30.77a4.85,4.85,0,0,1-3-.8,4,4,0,0,0-2.49-.15,6.21,6.21,0,0,0,2.53,1.09,12.84,12.84,0,0,0,2.93-.14\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M14.27,19.68A4.71,4.71,0,0,0,11,20.78l2,.14c.31,0,1.2-.69,1.55-.81a3.88,3.88,0,0,1,1.65-.24l-1.94-.19\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M21.64,28.79a4.13,4.13,0,0,0-3.1-4c.89-.7,1.77-1.09,2.26-2.21a5.12,5.12,0,0,0,.35-1.9c-.13-3.24-2.64-3.73-5.29-4.15a4,4,0,0,1,3.44,3.7,4.61,4.61,0,0,1-.83,3.12,9.7,9.7,0,0,1-1.82,1.43,4.3,4.3,0,0,1,3.17,4.34,4.9,4.9,0,0,1-4.21,5c2.09-.34,4.37-.64,5.46-2.69a5,5,0,0,0,.57-2.58\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M28.44,18.88l.38-.07.48-.06.57,0h.75l.36,0,.35.05c-.2,0-.42-.08-1.57-.25l-.36-.05-.37,0h-.77l-.59,0-.49.07a3.08,3.08,0,0,0-.39.07l-.3.07V31.38H27l.13,0h1.63l.21,0h.2l.2,0h.05l1.55-.24h0l-.34.05-.33,0H29.12l-.36,0-.33,0a1.15,1.15,0,0,1-.28-.06V19Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M40,24.34a9,9,0,0,0-3-7.1,11.06,11.06,0,0,0-4.47-1.86c4.38,1.13,6.23,5.31,6.13,9.54-.12,4.5-2.27,8.55-6.86,9.66,2.59-.63,5-1.41,6.52-3.78A12,12,0,0,0,40,24.34\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M35.38,16.71A7.32,7.32,0,0,1,36.74,18a7.82,7.82,0,0,1,1,1.73,10.32,10.32,0,0,1,.68,2.16,13.86,13.86,0,0,1,.23,2.59,15,15,0,0,1-.25,2.78,11.39,11.39,0,0,1-.68,2.31,9.34,9.34,0,0,1-1,1.85,8.23,8.23,0,0,1-1.28,1.4,7.76,7.76,0,0,1-1.7,1.07,9.07,9.07,0,0,1-2,.69,13.36,13.36,0,0,1-2.26.33,18.25,18.25,0,0,1-2.45,0c-.5,0-1-.08-1.39-.12l-1.17-.14c-.36,0-.68-.11-1-.16l-.77-.15V15.86c.34-.09.71-.18,1.09-.26s.81-.15,1.24-.21.88-.12,1.34-.17.95-.1,1.44-.13a20.57,20.57,0,0,1,2.33,0,12,12,0,0,1,2,.24,8.24,8.24,0,0,1,1.72.55A7.1,7.1,0,0,1,35.38,16.71ZM27.92,31.53a6.53,6.53,0,0,0,2.46-.32A4.81,4.81,0,0,0,32.32,30a5.82,5.82,0,0,0,1.27-2.18A10.11,10.11,0,0,0,34,24.67a8.65,8.65,0,0,0-.42-2.85,4.94,4.94,0,0,0-1.18-2,4.45,4.45,0,0,0-1.83-1.11,6.55,6.55,0,0,0-2.35-.28l-.59,0-.49.07a3.08,3.08,0,0,0-.39.07l-.3.07V31.38a2.11,2.11,0,0,0,.29.06l.34,0,.37,0,.36,0h.07\\\" fill=\\\"#484f60\\\"/><path d=\\\"M14.57,16.47a5.49,5.49,0,0,1,2,.22,3.89,3.89,0,0,1,1.49.84A3.66,3.66,0,0,1,19,18.89a4.29,4.29,0,0,1,.33,1.7,5.29,5.29,0,0,1-.17,1.34,4.29,4.29,0,0,1-.5,1.16,4.17,4.17,0,0,1-.84.94,4.88,4.88,0,0,1-1.16.69v.05a3.7,3.7,0,0,1,1.22.5,4,4,0,0,1,1,.92,4.61,4.61,0,0,1,.69,1.3,5.24,5.24,0,0,1,.25,1.62,5.36,5.36,0,0,1-.42,2.15,4.44,4.44,0,0,1-1.2,1.64,4.84,4.84,0,0,1-1.86,1,6.78,6.78,0,0,1-2.39.23,7.69,7.69,0,0,1-2.36-.52,6.89,6.89,0,0,1-.9-.42,4.36,4.36,0,0,1-.69-.47l.62-2.9a4.12,4.12,0,0,0,.53.34,6.21,6.21,0,0,0,.73.36,5.69,5.69,0,0,0,.88.31,5.19,5.19,0,0,0,1,.15,3.11,3.11,0,0,0,1.1-.13,2,2,0,0,0,.8-.45,1.93,1.93,0,0,0,.49-.71,2.35,2.35,0,0,0,.17-.89A2.48,2.48,0,0,0,16,27.67a2.23,2.23,0,0,0-.63-.79,2.9,2.9,0,0,0-.89-.46,3.5,3.5,0,0,0-1-.15H12.2V23.44l1.23,0a3.44,3.44,0,0,0,.83-.11,2.83,2.83,0,0,0,.79-.36,2,2,0,0,0,.6-.62,2,2,0,0,0,.23-.94,1.8,1.8,0,0,0-.13-.71,1.36,1.36,0,0,0-.38-.56,1.58,1.58,0,0,0-.64-.35,2.79,2.79,0,0,0-.9-.1,4.07,4.07,0,0,0-.84.13c-.27.08-.53.18-.78.28a6.56,6.56,0,0,0-1.17.7L10.42,18a5,5,0,0,1,.72-.51,7.82,7.82,0,0,1,2.12-.82A8,8,0,0,1,14.57,16.47Z\\\" fill=\\\"#484f60\\\"/></svg>\",\r\n \"truck\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\" version=\\\"1.1\\\" sodipodi:docname=\\\"truck.svg\\\" inkscape:version=\\\"0.92.4 (5da689c313, 2019-01-14)\\\"><metadata ><rdf:RDF><cc:Work rdf:about=\\\"\\\"><dc:format>image/svg+xml</dc:format><dc:type rdf:resource=\\\"http://purl.org/dc/dcmitype/StillImage\\\" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs /><sodipodi:namedview pagecolor=\\\"#ffffff\\\" bordercolor=\\\"#666666\\\" borderopacity=\\\"1\\\" objecttolerance=\\\"10\\\" gridtolerance=\\\"10\\\" guidetolerance=\\\"10\\\" inkscape:pageopacity=\\\"0\\\" inkscape:pageshadow=\\\"2\\\" inkscape:window-width=\\\"1920\\\" inkscape:window-height=\\\"1017\\\" showgr inkscape:zoom=\\\"9.44\\\" inkscape:cx=\\\"31.555563\\\" inkscape:cy=\\\"21.585628\\\" inkscape:window-x=\\\"-8\\\" inkscape:window-y=\\\"-8\\\" inkscape:window-maximized=\\\"1\\\" inkscape:current-layer=\\\"svg8\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"m 119.467,337.067 c -28.237,0 -51.2,22.963 -51.2,51.2 0,28.237 22.963,51.2 51.2,51.2 28.237,0 51.2,-22.963 51.2,-51.2 0,-28.237 -22.964,-51.2 -51.2,-51.2 z m 0,85.333 c -18.825,0 -34.133,-15.309 -34.133,-34.133 0,-18.825 15.309,-34.133 34.133,-34.133 18.824,0 34.133,15.309 34.133,34.133 0,18.824 -15.309,34.133 -34.133,34.133 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"m 409.6,337.067 c -28.237,0 -51.2,22.963 -51.2,51.2 0,28.237 22.963,51.2 51.2,51.2 28.237,0 51.2,-22.963 51.2,-51.2 0,-28.237 -22.963,-51.2 -51.2,-51.2 z m 0,85.333 c -18.825,0 -34.133,-15.309 -34.133,-34.133 0,-18.825 15.309,-34.133 34.133,-34.133 18.825,0 34.133,15.309 34.133,34.133 0,18.824 -15.308,34.133 -34.133,34.133 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"m 510.643,289.784 -76.8,-119.467 c -1.57,-2.441 -4.275,-3.917 -7.177,-3.917 H 332.8 c -4.719,0 -8.533,3.823 -8.533,8.533 v 213.333 c 0,4.719 3.814,8.533 8.533,8.533 h 34.133 v -17.067 h -25.6 V 183.467 h 80.674 l 72.926,113.442 v 82.825 H 452.266 V 396.8 h 51.2 c 4.719,0 8.533,-3.814 8.533,-8.533 V 294.4 c 10e-4,-1.63 -0.468,-3.243 -1.356,-4.616 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"M 375.467,277.333 V 217.6 h 68.267 v -17.067 h -76.8 c -4.719,0 -8.533,3.823 -8.533,8.533 v 76.8 c 0,4.719 3.814,8.533 8.533,8.533 h 128 V 277.332 H 375.467 Z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"M 332.8,106.667 H 8.533 C 3.823,106.667 0,110.49 0,115.2 v 273.067 c 0,4.719 3.823,8.533 8.533,8.533 H 76.8 V 379.733 H 17.067 v -256 h 307.2 v 256 H 162.133 V 396.8 H 332.8 c 4.719,0 8.533,-3.814 8.533,-8.533 V 115.2 c 0,-4.71 -3.814,-8.533 -8.533,-8.533 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><rect x=\\\"8.533\\\" y=\\\"345.60001\\\" width=\\\"51.200001\\\" height=\\\"17.066999\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><rect x=\\\"179.2\\\" y=\\\"345.60001\\\" width=\\\"145.067\\\" height=\\\"17.066999\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><rect x=\\\"469.33301\\\" y=\\\"345.60001\\\" width=\\\"34.132999\\\" height=\\\"17.066999\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><rect x=\\\"34.132999\\\" y=\\\"140.8\\\" width=\\\"298.66699\\\" height=\\\"17.066999\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><rect x=\\\"110.933\\\" y=\\\"379.733\\\" width=\\\"17.066999\\\" height=\\\"17.066999\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><rect x=\\\"401.06699\\\" y=\\\"379.733\\\" width=\\\"17.066999\\\" height=\\\"17.066999\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></svg>\",\r\n \"two_d\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M22.41,33.89H11V31c.87-.76,1.75-1.56,2.62-2.41S15.2,27,15.73,26.39A11.84,11.84,0,0,0,17.4,24a4.45,4.45,0,0,0,.5-2,2.52,2.52,0,0,0-.64-1.85,2.47,2.47,0,0,0-1.84-.65,4.57,4.57,0,0,0-1.89.45,8.17,8.17,0,0,0-1.84,1.14h-.31V17.2a10.26,10.26,0,0,1,2-.73,10.46,10.46,0,0,1,2.71-.36,5.79,5.79,0,0,1,4.16,1.37,5.15,5.15,0,0,1,1.44,3.9,7.37,7.37,0,0,1-.69,3.14A12.94,12.94,0,0,1,19,27.59c-.6.66-1.19,1.26-1.79,1.81s-1,.93-1.28,1.15h6.53Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M38.14,20.79a7.49,7.49,0,0,0-2.37-3,6.52,6.52,0,0,0-2.17-1,11.93,11.93,0,0,0-3.06-.35H25.26V33.89h5.13a13.25,13.25,0,0,0,3-.3,6.61,6.61,0,0,0,2.33-1.08,7.71,7.71,0,0,0,2.34-3A9.9,9.9,0,0,0,39,25.19,10.47,10.47,0,0,0,38.14,20.79Zm-3.49,7.27a4,4,0,0,1-1.51,1.88,3.77,3.77,0,0,1-1.22.54,10.07,10.07,0,0,1-2,.14H29V19.7H30a9.8,9.8,0,0,1,1.81.13,3.75,3.75,0,0,1,1.18.46,4.07,4.07,0,0,1,1.65,1.92,7.4,7.4,0,0,1,.52,2.94A7.92,7.92,0,0,1,34.65,28.06Z\\\" fill=\\\"#484f60\\\"/></svg>\",\r\n \"warehouse\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\" version=\\\"1.1\\\" sodipodi:docname=\\\"warehouse.svg\\\" inkscape:version=\\\"0.92.4 (5da689c313, 2019-01-14)\\\"><metadata ><rdf:RDF><cc:Work rdf:about=\\\"\\\"><dc:format>image/svg+xml</dc:format><dc:type rdf:resource=\\\"http://purl.org/dc/dcmitype/StillImage\\\" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs /><sodipodi:namedview pagecolor=\\\"#ffffff\\\" bordercolor=\\\"#666666\\\" borderopacity=\\\"1\\\" objecttolerance=\\\"10\\\" gridtolerance=\\\"10\\\" guidetolerance=\\\"10\\\" inkscape:pageopacity=\\\"0\\\" inkscape:pageshadow=\\\"2\\\" inkscape:window-width=\\\"1920\\\" inkscape:window-height=\\\"1017\\\" showgr inkscape:zoom=\\\"6.675088\\\" inkscape:cx=\\\"9.6569985\\\" inkscape:cy=\\\"12.384637\\\" inkscape:window-x=\\\"-8\\\" inkscape:window-y=\\\"-8\\\" inkscape:window-maximized=\\\"1\\\" inkscape:current-layer=\\\"svg8\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"M 507.785,146.242 260.318,1.175 c -2.603,-1.519 -5.803,-1.57 -8.439,-0.111 L 4.412,137.598 C 1.69,139.091 0,141.958 0,145.064 v 358.4 c 0,4.719 3.823,8.533 8.533,8.533 H 51.2 c 4.71,0 8.533,-3.814 8.533,-8.533 V 204.798 h 392.533 v 298.667 c 0,4.719 3.814,8.533 8.533,8.533 h 42.667 c 4.719,0 8.533,-3.814 8.533,-8.533 V 153.598 c 10e-4,-3.03 -1.603,-5.829 -4.214,-7.356 z m -12.852,348.689 h -25.6 V 196.264 c 0,-4.71 -3.814,-8.533 -8.533,-8.533 H 51.2 c -4.71,0 -8.533,3.823 -8.533,8.533 v 298.667 h -25.6 V 150.099 L 255.872,18.344 494.933,158.487 Z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"m 426.667,392.531 h -102.4 c -4.719,0 -8.533,3.814 -8.533,8.533 v 102.4 c 0,4.719 3.814,8.533 8.533,8.533 h 102.4 c 4.719,0 8.533,-3.814 8.533,-8.533 v -102.4 c 0,-4.719 -3.814,-8.533 -8.533,-8.533 z m -8.534,102.4 H 332.8 v -85.333 h 85.333 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"m 384,401.064 v 25.6 h -17.067 v -25.6 h -17.067 v 34.133 c 0,4.719 3.814,8.533 8.533,8.533 h 34.133 c 4.719,0 8.533,-3.814 8.533,-8.533 v -34.133 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"m 324.267,392.531 h -102.4 c -4.71,0 -8.533,3.814 -8.533,8.533 v 102.4 c 0,4.719 3.823,8.533 8.533,8.533 h 102.4 c 4.719,0 8.533,-3.814 8.533,-8.533 v -102.4 c 0,-4.719 -3.814,-8.533 -8.533,-8.533 z m -8.534,102.4 H 230.4 v -85.333 h 85.333 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"m 281.6,401.064 v 25.6 h -17.067 v -25.6 h -17.067 v 34.133 c 0,4.719 3.823,8.533 8.533,8.533 h 34.133 c 4.719,0 8.533,-3.814 8.533,-8.533 v -34.133 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"m 426.667,290.131 h -102.4 c -4.719,0 -8.533,3.814 -8.533,8.533 v 102.4 c 0,4.719 3.814,8.533 8.533,8.533 h 102.4 c 4.719,0 8.533,-3.814 8.533,-8.533 v -102.4 c 0,-4.719 -3.814,-8.533 -8.533,-8.533 z m -8.534,102.4 H 332.8 v -85.333 h 85.333 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"m 384,298.664 v 25.6 h -17.067 v -25.6 h -17.067 v 34.133 c 0,4.719 3.814,8.533 8.533,8.533 h 34.133 c 4.719,0 8.533,-3.814 8.533,-8.533 v -34.133 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><rect x=\\\"51.200001\\\" y=\\\"255.998\\\" width=\\\"409.60001\\\" height=\\\"17.066999\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><rect x=\\\"51.200001\\\" y=\\\"221.864\\\" width=\\\"409.60001\\\" height=\\\"17.066999\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"m 298.667,119.464 h -85.333 c -4.71,0 -8.533,3.823 -8.533,8.533 v 34.133 c 0,4.71 3.823,8.533 8.533,8.533 h 85.333 c 4.719,0 8.533,-3.823 8.533,-8.533 v -34.133 c 0,-4.71 -3.814,-8.533 -8.533,-8.533 z m -8.534,34.134 h -68.267 v -17.067 h 68.267 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></svg>\"\r\n};\r\n","import { Injectable } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\nimport { IconSvg } from '../model/icon';\r\nimport { IconEnum } from '../enum/icon.enum';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class IconCacheService {\r\n /**\r\n * All the icons as a large JSON object, from the all-icons.json file.\r\n * The object has property keys that are the icon names, and property values with the data string of the actual svg icon.\r\n */\r\n public get iconCache(): { [iconName: string]: SafeHtml } {\r\n return this._iconCache;\r\n }\r\n\r\n private _iconCache: { [iconName: string]: SafeHtml } = {};\r\n\r\n private _allIcons: any;\r\n\r\n constructor(private _sanitizer: DomSanitizer) {\r\n this._allIcons = IconSvg;\r\n this.setIconCache();\r\n }\r\n\r\n public getIcon(iconName: IconEnum): SafeHtml {\r\n return this._iconCache[iconName.toLowerCase()];\r\n }\r\n\r\n public setIconCache(): void {\r\n for (const key in this._allIcons) {\r\n if (this._allIcons.hasOwnProperty(key)) {\r\n this._iconCache[key.toLowerCase()] = this._sanitizer.bypassSecurityTrustHtml(this._allIcons[key]);\r\n }\r\n }\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport { DictionaryService } from '../service/dictionary.service';\r\n\r\n@Pipe({\n name: 'localize',\n standalone: false\n})\r\n// A pipe for localizing string values in view templates.\r\nexport class LocalizePipe implements PipeTransform {\r\n\r\n constructor(private _dictionaryService: DictionaryService) {}\r\n\r\n transform(value: string, upperCaseFirst: boolean = true, replace: string|string[] = []): string {\r\n if (!value) {\r\n return '';\r\n }\r\n replace = replace ? replace : [];\r\n if (!Array.isArray(replace)) {\r\n replace = [replace];\r\n }\r\n return this._dictionaryService.get(value, upperCaseFirst, ...replace);\r\n }\r\n}\r\n","import {ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport {SafeHtml} from '@angular/platform-browser';\r\nimport {IconCacheService} from '../../service/icon-cache.service';\r\nimport {IconEnum} from '../../enum/icon.enum';\r\nimport {SelectorType} from '../../enum/selector-type.enum';\r\n\r\n@Component({\r\n selector: 'app-product-selector-type',\r\n template: `\r\n @if (show2D || show3D) {\r\n <div class=\"show-in\" [textContent]=\"'SHOW_IN' | localize\"></div>\r\n }\r\n @if (show2D && !showRenderCarousel) {\r\n <co-icon class=\"selector-type-icon\"\r\n [class.active]=\"currentType === type.TwoD\"\r\n [iconData]=\"twoDIcon\"\r\n (click)=\"handleIconClick(type.TwoD)\"\r\n ></co-icon>\r\n }\r\n \r\n @if (show2D && showRenderCarousel) {\r\n <co-icon class=\"selector-type-icon\"\r\n [class.active]=\"currentType === type.TwoD\"\r\n [iconData]=\"twoDIcon\"\r\n (click)=\"handleIconClick(type.TwoD)\"\r\n ></co-icon>\r\n }\r\n \r\n @if (show3D) {\r\n <co-icon class=\"selector-type-icon\"\r\n [class.active]=\"currentType === type.ThreeD\"\r\n [iconData]=\"threeDIcon\"\r\n (click)=\"handleIconClick(type.ThreeD)\"\r\n ></co-icon>\r\n }\r\n `,\r\n styleUrls: ['./product-selector-type.component.scss'],\r\n standalone: false\r\n})\r\nexport class ProductSelectorTypeComponent implements OnInit {\r\n\r\n public readonly type: typeof SelectorType = SelectorType;\r\n public readonly icons: typeof IconEnum = IconEnum;\r\n\r\n @Input()\r\n public show2D: boolean;\r\n\r\n @Input()\r\n public show3D: boolean;\r\n\r\n @Input()\r\n public showRenderCarousel: boolean;\r\n\r\n @Input()\r\n public currentType: SelectorType;\r\n\r\n @Output()\r\n public onIconClick: EventEmitter<SelectorType> = new EventEmitter();\r\n\r\n @Output()\r\n public currentTypeChange: EventEmitter<SelectorType> = new EventEmitter();\r\n\r\n public twoDIcon: SafeHtml | null;\r\n public threeDIcon: SafeHtml | null;\r\n\r\n constructor(\r\n private _iconCache: IconCacheService,\r\n private _changeDetector: ChangeDetectorRef\r\n ) {\r\n this.twoDIcon = this._iconCache.getIcon(this.icons.TwoD);\r\n this.threeDIcon = this._iconCache.getIcon(this.icons.ThreeD);\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n public handleIconClick(type: SelectorType): void {\r\n this.currentType = type;\r\n this.currentTypeChange.emit(this.currentType);\r\n this.onIconClick.emit(this.currentType);\r\n this._changeDetector.detectChanges();\r\n }\r\n\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n HostBinding,\r\n HostListener,\r\n Input,\r\n OnDestroy,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {CoDocument} from '@colijnit/mainapi/build/model/co-document.bo';\r\nimport {ProductConnectorService} from '../../service/product-connector.service';\r\nimport {ProductEventService} from '../../service/product-event.service';\r\nimport {Subscription} from 'rxjs';\r\nimport {IconEnum} from '../../enum/icon.enum';\r\nimport {DomSanitizer, SafeUrl} from '@angular/platform-browser';\r\nimport {DocumentContent} from '@colijnit/articleapi/build/model/document-content';\r\n\r\nexport class ImageViewModel {\r\n public image: CoDocument | string;\r\n public source: SafeUrl;\r\n public originalSource: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-image-carousel',\r\n template: `\r\n <div id=\"product_page_carousel\">\r\n <div id=\"product_page_carousel_items\">\r\n @if (showLoader) {\r\n <co-loader></co-loader>\r\n }\r\n <div #carousel class=\"inner-carousel\">\r\n <!-- This has been taken out of the for loop to prevent flashing images when updating. -->\r\n @if (imageViewModels[0]) {\r\n <div class=\"carousel-item\" [id]=\"'slide-0'\" [class.active]=\"isCurrentIndex(0)\" (click)=\"handleShowImage(imageViewModels[0])\">\r\n <img [src]=\"imageViewModels[0].source\">\r\n </div>\r\n }\r\n @for (imageViewModel of imageViewModels.slice(1); track imageViewModel; let index = $index) {\r\n <div class=\"carousel-item\"\r\n [id]=\"'slide-' + (index + 1)\" [class.active]=\"isCurrentIndex((index + 1))\" (click)=\"handleShowImage(imageViewModel)\">\r\n <img [src]=\"imageViewModel.source\">\r\n </div>\r\n }\r\n @if (imageViewModels && imageViewModels.length > 1) {\r\n <div class=\"carousel-scroller-layer\">\r\n @if (currentIndex > 0) {\r\n <div class=\"carousel-item-scroller prev\" (click)=\"gotoPrevSlide()\"></div>\r\n }\r\n @if (currentIndex < images.length - 1) {\r\n <div class=\"carousel-item-scroller next\" (click)=\"gotoNextSlide()\"></div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n \r\n <div id=\"product_page_carousel_thumbs\">\r\n @if (imageViewModels && imageViewModels.length > 1) {\r\n <co-scroll-container class=\"scroll-container\">\r\n @for (imageViewModel of imageViewModels; track imageViewModel; let index = $index) {\r\n <div class=\"carousel-thumb\"\r\n [class.active]=\"index === currentIndex\">\r\n <img [src]=\"imageViewModel.source\" (click)=\"handleThumbClick(index)\"/>\r\n </div>\r\n }\r\n </co-scroll-container>\r\n }\r\n </div>\r\n </div>\r\n <!-- Modal (real popup) -->\r\n @if (isPopupOpen) {\r\n <div\r\n class=\"image-modal\"\r\n (click)=\"closePopup()\"\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-label=\"Image preview\"\r\n >\r\n <div class=\"image-modal__content\" (click)=\"$event.stopPropagation()\">\r\n <button\r\n class=\"image-modal__close\"\r\n type=\"button\"\r\n aria-label=\"Close\"\r\n (click)=\"closePopup()\"\r\n >\r\n ×\r\n </button>\r\n <img [src]=\"selectedImage?.originalSource\" alt=\"Image preview\" />\r\n </div>\r\n </div>\r\n }\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n styleUrls: ['./image-carousel.component.scss'],\r\n standalone: false\r\n})\r\nexport class ImageCarouselComponent implements OnDestroy {\r\n @ViewChild('carousel', {read: ElementRef})\r\n public carousel: ElementRef;\r\n\r\n public isPopupOpen = false;\r\n public selectedImage?: ImageViewModel;\r\n\r\n // Close on ESC\r\n @HostListener('document:keydown.escape')\r\n onEsc(): void {\r\n if (this.isPopupOpen) {\r\n this.closePopup();\r\n }\r\n }\r\n\r\n @Input()\r\n public showRefresh: boolean = false;\r\n\r\n @Input()\r\n public set images(value: (CoDocument | string)[]) {\r\n if (value && value.length > 0) {\r\n this._images = this._filterValidImages(value);\r\n this._loadAndRescaleImages();\r\n this._changeDetector.detectChanges();\r\n }\r\n }\r\n\r\n public get images(): (CoDocument | string)[] {\r\n return this._images;\r\n }\r\n\r\n @HostListener('window:resize')\r\n public handleWindowResize(): void {\r\n this.resizing = true;\r\n this._scrollCarouselToIndex();\r\n clearTimeout(this._resizeTimer);\r\n this._resizeTimer = setTimeout(() => {\r\n this.resizing = false;\r\n }, 200);\r\n }\r\n\r\n @HostListener('swipeleft')\r\n public gotoNextSlide(): void {\r\n this.currentIndex++;\r\n }\r\n\r\n @HostListener('swiperight')\r\n public gotoPrevSlide(): void {\r\n this.currentIndex--;\r\n }\r\n\r\n public isCurrentIndex(index: number): boolean {\r\n return this.currentIndex === index;\r\n }\r\n\r\n public get currentIndex(): number {\r\n return this._currentIndex;\r\n }\r\n\r\n public set currentIndex(value: number) {\r\n this._currentIndex = value;\r\n this._scrollCarouselToIndex();\r\n }\r\n\r\n @HostBinding('class.resizing')\r\n public resizing = false;\r\n\r\n public imageViewModels: ImageViewModel[] = [];\r\n public showLoader: boolean = false;\r\n\r\n private _resizeTimer: any;\r\n private _currentIndex = 0;\r\n private _images: (CoDocument | string)[] = [];\r\n private _subs: Subscription[] = [];\r\n\r\n private _resizeCanvasHeight: number = 500;\r\n\r\n constructor(\r\n private _ione: ProductConnectorService,\r\n private _appEventService: ProductEventService,\r\n private _changeDetector: ChangeDetectorRef,\r\n private _domSanitizer: DomSanitizer\r\n ) {\r\n this._subs.push(\r\n this._appEventService.onRenderStarted.subscribe(() => {\r\n this.showLoader = true;\r\n this._changeDetector.detectChanges();\r\n setTimeout(() => {\r\n this.showLoader = false;\r\n this._changeDetector.detectChanges();\r\n }, 10000);\r\n }),\r\n this._appEventService.onDraftRenderImageReceived.subscribe((event: CustomEvent) => {\r\n if (event && event.detail) {\r\n if (this._images[0] instanceof CoDocument) {\r\n this._images.unshift(event.detail);\r\n } else {\r\n this._images[0] = event.detail;\r\n }\r\n this._loadAndRescaleImages();\r\n }\r\n this.showLoader = false;\r\n this._changeDetector.detectChanges();\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.carousel = undefined;\r\n this._subs.forEach(s => s.unsubscribe());\r\n }\r\n\r\n public handleThumbClick(index: number): void {\r\n this.currentIndex = index;\r\n }\r\n\r\n public onForceRenderImage(): void {\r\n this._appEventService.onForceRenderImage.next();\r\n }\r\n\r\n public handleShowImage(imageViewModel: ImageViewModel): void {\r\n if (imageViewModel && imageViewModel.originalSource) {\r\n this.selectedImage = imageViewModel;\r\n this.isPopupOpen = true;\r\n this._changeDetector.markForCheck();\r\n }\r\n }\r\n\r\n public closePopup(): void {\r\n this.isPopupOpen = false;\r\n this.selectedImage = undefined;\r\n this._changeDetector.markForCheck();\r\n }\r\n\r\n private _filterValidImages(value: (CoDocument | string)[]): (CoDocument | string)[] {\r\n if (!value) {\r\n return [];\r\n }\r\n return value.filter((doc: CoDocument | string) => {\r\n const pattern = /\\.(jpg|jpeg|png|gif|bmp|tiff|webp)$/i;\r\n return typeof doc === 'string' || (pattern.test(doc.fileName) || !!doc.filePath);\r\n });\r\n }\r\n\r\n private _loadAndRescaleImages(): void {\r\n this.imageViewModels.length = 0;\r\n if (this._images) {\r\n this._images.forEach((i: CoDocument | string) => {\r\n let imageViewModel = new ImageViewModel();\r\n imageViewModel.image = i;\r\n if (typeof i === 'string') { // is a rendered image coming from configurator\r\n this._resizeAndSanitizeSource(i, imageViewModel);\r\n } else {\r\n if (i.filePath) {\r\n this._resizeAndSanitizeSource(i.filePath, imageViewModel);\r\n } else if (i.documentBody) {\r\n this._resizeAndSanitizeSource(i.documentBodyAsDataUri, imageViewModel);\r\n } else {\r\n this._ione.getDocumentContent(i.documentId, false).then((content: DocumentContent) => {\r\n if (content) {\r\n i.documentBody = content.documentContent;\r\n this._resizeAndSanitizeSource(i.documentBodyAsDataUri, imageViewModel);\r\n this._changeDetector.detectChanges();\r\n }\r\n });\r\n }\r\n }\r\n this.imageViewModels.push(imageViewModel);\r\n this._changeDetector.detectChanges();\r\n });\r\n }\r\n }\r\n\r\n private _resizeAndSanitizeSource(source: string, imageViewModel: ImageViewModel): void {\r\n const resizeCanvas: HTMLCanvasElement = document.createElement('canvas');\r\n const ctx = resizeCanvas.getContext('2d')!;\r\n const img: HTMLImageElement = document.createElement('img');\r\n img.crossOrigin = 'anonymous';\r\n\r\n img.onload = () => {\r\n ctx.imageSmoothingEnabled = true;\r\n ctx.imageSmoothingQuality = 'high';\r\n\r\n const ow = img.width;\r\n const oh = img.height;\r\n const aspect = ow / oh;\r\n\r\n let newW = this._resizeCanvasHeight;\r\n let newH = this._resizeCanvasHeight;\r\n if (ow > oh) {\r\n newH = this._resizeCanvasHeight / aspect;\r\n } else {\r\n newW = this._resizeCanvasHeight * aspect;\r\n }\r\n\r\n resizeCanvas.width = Math.round(newW);\r\n resizeCanvas.height = Math.round(newH);\r\n\r\n // Ensure transparent background before drawing\r\n ctx.clearRect(0, 0, resizeCanvas.width, resizeCanvas.height);\r\n\r\n ctx.drawImage(img, 0, 0, resizeCanvas.width, resizeCanvas.height);\r\n\r\n const mime = this._detectPreferredMime(source);\r\n const resizedSource =\r\n mime === 'image/jpeg'\r\n ? resizeCanvas.toDataURL('image/jpeg', 0.92) // only if original was JPEG\r\n : resizeCanvas.toDataURL(mime); // PNG/WebP keep alpha\r\n\r\n imageViewModel.source = this._domSanitizer.bypassSecurityTrustUrl(resizedSource);\r\n imageViewModel.originalSource = source;\r\n this._changeDetector.detectChanges();\r\n };\r\n\r\n img.src = source;\r\n }\r\n\r\n private _detectPreferredMime(source: string): 'image/png' | 'image/webp' | 'image/jpeg' {\r\n // Data URI check\r\n const m = source.match(/^data:(image\\/[a-zA-Z+.-]+);base64,/);\r\n if (m) {\r\n const t = m[1].toLowerCase();\r\n if (t === 'image/png' || t === 'image/webp' || t === 'image/jpeg') return t as any;\r\n }\r\n\r\n const lower = source.toLowerCase();\r\n if (lower.endsWith('.png')) return 'image/png';\r\n if (lower.endsWith('.webp')) return 'image/webp';\r\n if (lower.endsWith('.jpg') || lower.endsWith('.jpeg')) return 'image/jpeg';\r\n\r\n return 'image/png';\r\n }\r\n\r\n private _scrollCarouselToIndex(): void {\r\n if (this.currentIndex > -1 && this.currentIndex <= this.images.length) {\r\n const movePx: number = this.currentIndex * this.carousel.nativeElement.clientWidth;\r\n if (this.carousel && this.carousel.nativeElement) {\r\n this.carousel.nativeElement.scrollLeft = movePx;\r\n // this.carousel.nativeElement.scrollTo({\r\n // left: movePx,\r\n // behavior: 'smooth'\r\n // });\r\n }\r\n }\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ArticleFullObject } from '@colijnit/articleapi/build/model/article-full-object';\r\n\r\n@Component({\r\n selector: 'app-product-description',\r\n template: `\r\n <div class=\"pd-title-wrapper\">\r\n @if (article?.descriptionRetail) {\r\n <span class=\"pd-description\" [textContent]=\"article?.descriptionRetail\"></span>\r\n }\r\n @if (article?.articleNr) {\r\n <span class=\"pd-sku\" [textContent]=\"article?.articleNr\"></span>\r\n }\r\n </div>\r\n `,\r\n styleUrls: ['./product-description.component.scss'],\r\n standalone: false\r\n})\r\nexport class ProductDescriptionComponent implements OnInit {\r\n\r\n @Input()\r\n public article: ArticleFullObject;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","export class BitUtils {\r\n\r\n public static IsShortDescription(bit: number): boolean {\r\n return (1 & bit) > 0;\r\n }\r\n\r\n public static IsFullDescription(bit: number): boolean {\r\n return (2 & bit) > 0;\r\n }\r\n\r\n public static IsMetaTitle(bit: number): boolean {\r\n return (4 & bit) > 0;\r\n }\r\n\r\n public static IsMetaDescription(bit: number): boolean {\r\n return (8 & bit) > 0;\r\n }\r\n\r\n public static IsMetaKeys(bit: number): boolean {\r\n return (16 & bit) > 0;\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ArticleFullObject } from '@colijnit/articleapi/build/model/article-full-object';\r\nimport { CoText } from '@colijnit/mainapi/build/model/co-text';\r\nimport { ProductEventService } from '../../service/product-event.service';\r\nimport { BitUtils } from '../../utils/bit-utils';\r\n\r\n@Component({\r\n selector: 'app-product-additional-description',\r\n template: `\r\n @if (description !== '') {\r\n <div class=\"pd-additional-description\">\r\n <p [innerHTML]=\"description\"></p>\r\n <button class=\"pd-read-more-btn\" [textContent]=\"'READ_MORE' | localize\" (click)=\"onReadMore()\"></button>\r\n </div>\r\n }\r\n `,\r\n styleUrls: ['./product-additional-description.component.scss'],\r\n standalone: false\r\n})\r\nexport class ProductAdditionalDescriptionComponent implements OnInit {\r\n\r\n @Input()\r\n public set article(value: ArticleFullObject) {\r\n this._article = value;\r\n if (this._article) {\r\n this.description = this.article.additionalDescription;\r\n this._prepareDescription();\r\n }\r\n }\r\n\r\n public get article(): ArticleFullObject {\r\n return this._article;\r\n }\r\n\r\n public description: string;\r\n\r\n private _article: ArticleFullObject;\r\n\r\n constructor(\r\n private _appEventService: ProductEventService\r\n ) {}\r\n\r\n ngOnInit() {\r\n }\r\n\r\n public onReadMore(): void {\r\n this._appEventService.onUpdateProductInfoTab.next(0);\r\n }\r\n\r\n private _prepareDescription(): void {\r\n\r\n this.description = '';\r\n\r\n if (this.article.texts && this.article.texts.length > 0) {\r\n this.article.texts.forEach((txt: CoText) => {\r\n if (BitUtils.IsShortDescription(txt.publication)) {\r\n this.description += txt.text;\r\n }\r\n });\r\n\r\n this.description = this.description.replace(/<[^>]*>?/gm, '');\r\n if (this.description.length > 250) {\r\n this.description = this.description.substr(0, 250) + ' [..]';\r\n }\r\n }\r\n\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport NumberFormatOptions = Intl.NumberFormatOptions;\r\n\r\n@Pipe({\r\n name: \"priceDisplay\",\r\n standalone: false\r\n})\r\nexport class PriceDisplayPipe implements PipeTransform {\r\n transform(value: number | string, valutaSymbol: string): string {\r\n let valueToFormat: number = typeof value === 'string' ? parseFloat(value) : value;\r\n const options: NumberFormatOptions = {\r\n minimumFractionDigits: 2,\r\n maximumFractionDigits: 2\r\n };\r\n if (valutaSymbol) {\r\n return `${valutaSymbol} ${valueToFormat.toLocaleString(undefined, options)}`;\r\n } else {\r\n return valueToFormat.toLocaleString(undefined, options);\r\n }\r\n\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component, Input, OnInit } from '@angular/core';\r\nimport { ArticlePricing } from '@colijnit/articleapi/build/model/article-pricing';\r\n\r\n@Component({\r\n selector: 'app-product-price',\r\n template: `\r\n @if (toPrice) {\r\n <div>\r\n @if (fromPrice > toPrice) {\r\n <div class=\"price-wrapper\">\r\n <div class=\"from-price-label\" [textContent]=\"fromLabel | localize\"></div>\r\n <div class=\"from-price\" [textContent]=\"fromPrice | priceDisplay: valutaSign\"></div>\r\n </div>\r\n }\r\n <div class=\"price-wrapper\">\r\n <div class=\"to-price-label\" [textContent]=\"toLabel | localize\"></div>\r\n <div class=\"to-price\" [textContent]=\"toPrice | priceDisplay: valutaSign\"></div>\r\n </div>\r\n </div>\r\n }\r\n `,\r\n styleUrls: ['./product-price.component.scss'],\r\n standalone: false\r\n})\r\nexport class ProductPriceComponent implements OnInit {\r\n\r\n @Input()\r\n public set pricing(value: any) {\r\n this._pricing = value;\r\n this._setPrices();\r\n }\r\n\r\n public get pricing(): any {\r\n return this._pricing;\r\n }\r\n\r\n @Input()\r\n public set configurable(value: boolean) {\r\n this._configurable = value;\r\n this._setPrices();\r\n }\r\n\r\n public fromPrice: number;\r\n public toPrice: number;\r\n public valutaSign: string;\r\n public fromLabel: string;\r\n public toLabel: string;\r\n public showFromPrice: boolean = false;\r\n\r\n private _pricing: ArticlePricing;\r\n private _configurable: boolean = false;\r\n\r\n constructor(private _changeDetector: ChangeDetectorRef) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n private _setPrices(): void {\r\n if (this._pricing) {\r\n this.valutaSign = this._getSign(this._pricing.retailCurrency);\r\n if (this._configurable) {\r\n this.fromPrice = this._pricing.retailBasePrice ? this._pricing.retailBasePrice : this._pricing.priceBaseline;\r\n this.fromLabel = this._pricing.retailBasePrice ? 'PRICE' : 'FROM';\r\n this.toPrice = undefined;\r\n this.toLabel = '';\r\n } else {\r\n const hasSuggested: boolean = this._pricing.retailSuggestedPrice !== undefined && this._pricing.retailSuggestedPrice !== null;\r\n this.fromPrice = hasSuggested ? this._pricing.retailSuggestedPrice : this._pricing.retailBasePrice;\r\n this.fromLabel = hasSuggested ? 'Was' : 'PRICE';\r\n // Always set toPrice to base price\r\n this.toPrice = this._pricing.retailBasePrice;\r\n this.toLabel = hasSuggested ? 'IS_NOW' : 'PRICE';\r\n }\r\n this._changeDetector.detectChanges();\r\n }\r\n }\r\n\r\n private _getSign(currency: string): string {\r\n switch (currency) {\r\n case 'EUR':\r\n return '€';\r\n default:\r\n return '€';\r\n }\r\n }\r\n\r\n}\r\n","import { Component, ElementRef, EventEmitter, HostBinding, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { IconCacheService } from '../../service/icon-cache.service';\r\nimport { IconEnum } from '../../enum/icon.enum';\r\nimport { ArticleQuantity } from '../../model/article-quantity.model';\r\nimport { ProductConnectorService } from '../../service/product-connector.service';\r\nimport { ProductEventService } from '../../service/product-event.service';\r\nimport { ArticleFullObject } from '@colijnit/articleapi/build/model/article-full-object';\r\nimport {ConfiguratorStatisticsEnvironment} from '@colijnit/articleapi/build/model/configurator-statistics-environment';\r\nimport {ProductSettingsService} from '../../service/product-settings.service';\r\nimport {ArticleListObjectExtended} from '@colijnit/articleapi/build/model/article-list-object-extended.bo';\r\nimport {ExternalSource} from '@colijnit/articleapi/build/model/external-source.bo';\r\nimport {ProductConnectorAdapterService} from '../../service/product-connector-adapter.service';\r\n\r\n@Component({\r\n selector: 'app-product-addtocart',\r\n template: `\r\n <div class=\"atc-wrapper\">\r\n @if (isReturn) {\r\n @if (!configurable && !configuring) {\r\n <co-input-number-picker class=\"quantity-select\" [(model)]=\"quantity\" [min]=\"-100\"></co-input-number-picker>\r\n }\r\n }\r\n \r\n @if (!isReturn) {\r\n @if (!configurable && !configuring) {\r\n <co-input-number-picker class=\"quantity-select\" [(model)]=\"quantity\" [min]=\"1\"></co-input-number-picker>\r\n }\r\n }\r\n \r\n @if (configurable) {\r\n <div class=\"button-wrapper\">\r\n <co-button class=\"configure-button\"\r\n [iconData]=\"iconCache.getIcon(icon.MagicWand)\"\r\n [label]=\"'CONFIGURE' | localize\"\r\n (onClick)=\"startConfiguration.emit()\"\r\n ></co-button>\r\n </div>\r\n }\r\n @if (showAddToCart && !configurable) {\r\n <div class=\"button-wrapper\">\r\n <co-button #addtocartbutton class=\"cart-button\"\r\n [iconData]=\"iconCache.getIcon(icon.AddToCartDrop)\"\r\n [label]=\"'SHOPPING_CART_IN' | localize\"\r\n (onClick)=\"handleAddToCartClick(quantity)\"\r\n ></co-button>\r\n @if (showQuoteButton) {\r\n <co-button class=\"cart-button quote\"\r\n [iconData]=\"iconCache.getIcon(icon.Quote)\"\r\n [label]=\"'QUOTATION' | localize\"\r\n (onClick)=\"handleAddToQuoteClick(quantity)\"\r\n ></co-button>\r\n }\r\n </div>\r\n }\r\n </div>\r\n `,\r\n styleUrls: ['./product-addtocart.component.scss'],\r\n standalone: false\r\n})\r\nexport class ProductAddtocartComponent implements OnInit, OnDestroy {\r\n\r\n public readonly icon: typeof IconEnum = IconEnum;\r\n\r\n @ViewChild('addtocartbutton', { read: ElementRef })\r\n public addToCartButton: ElementRef;\r\n\r\n @Input()\r\n public article: ArticleFullObject;\r\n\r\n @Input()\r\n public externalSource: ExternalSource;\r\n\r\n @Input()\r\n public createFrozenArticle: boolean = true;\r\n\r\n @Input()\r\n public configurable: boolean = false;\r\n\r\n @Input()\r\n public configuring: boolean = false;\r\n\r\n @Input()\r\n public showAddToCart: boolean = false;\r\n\r\n @Input()\r\n public isReturn: boolean = false;\r\n\r\n @HostBinding('class.full-screen')\r\n @Input()\r\n public fullscreen: boolean = false;\r\n\r\n @Input()\r\n public set quantity(value: number) {\r\n if (this.isReturn) {\r\n if (this._quantity === 1) {\r\n this._quantity = -1;\r\n } else {\r\n this._quantity = value\r\n }\r\n } else {\r\n this._quantity = Math.max(1, value);\r\n }\r\n }\r\n\r\n public get quantity(): number {\r\n return this._quantity;\r\n }\r\n\r\n @Output()\r\n public startConfiguration: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n @Output()\r\n public addToCartClick: EventEmitter<number> = new EventEmitter<number>();\r\n\r\n @Output()\r\n public addToQuoteClick: EventEmitter<number> = new EventEmitter<number>();\r\n\r\n @Output()\r\n public showRelatedPopup: EventEmitter<boolean> = new EventEmitter<boolean>()\r\n\r\n public showQuoteButton: boolean = false;\r\n\r\n private _quantity = 1;\r\n\r\n constructor(\r\n public iconCache: IconCacheService,\r\n private _ioneControllerService: ProductConnectorService,\r\n private _appEventService: ProductEventService,\r\n private _settingsService: ProductSettingsService,\r\n private _productConnectorAdapterService: ProductConnectorAdapterService\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.addToCartButton = undefined;\r\n }\r\n\r\n public async handleAddToCartClick(quantity: number): Promise<void> {\r\n if (this.createFrozenArticle) {\r\n if (this.article.goodType === 'B') {\r\n\r\n if (this.article.isConfigurable) {\r\n const article = await this._getJSONFromArticleObject({article: this.article, quantity: quantity});\r\n if (article) {\r\n this._appEventService.onAddToCart.next({article: article, quantity: quantity});\r\n }\r\n } else {\r\n await this._handleGeneratedArticleDirectly(quantity);\r\n }\r\n } else {\r\n let article: ArticleListObjectExtended | string;\r\n if (!!this.externalSource) {\r\n article = await this._getJSONFromArticleObject({article: this.article, quantity: quantity});\r\n } else {\r\n article = this._ioneControllerService.convertArticleFullObjectToArticleExtended(this.article);\r\n }\r\n if (article) {\r\n this._appEventService.onAddToCart.next({article: article, quantity: quantity});\r\n }\r\n }\r\n } else {\r\n if (this.article.goodType === 'B') {\r\n if (!this.article.isConfigurable) {\r\n await this._handleGeneratedArticleDirectly(quantity);\r\n }\r\n } else {\r\n const article: ArticleListObjectExtended = this._ioneControllerService.convertArticleFullObjectToArticleExtended(this.article);\r\n this._appEventService.onAddToCart.next({ article: article, quantity: quantity });\r\n }\r\n }\r\n }\r\n\r\n public async handleAddToQuoteClick(quantity: number): Promise<void> {\r\n this._appEventService.onAddToQuote.next(await this._getJSONFromArticleObject({article: this.article, quantity: quantity}));\r\n }\r\n\r\n private async _getJSONFromArticleObject(article: ArticleQuantity): Promise<string> {\r\n const configuratorStatistics = new ConfiguratorStatisticsEnvironment();\r\n configuratorStatistics.userType = 'iOneProductPage';\r\n configuratorStatistics.transactionType = 'Sales';\r\n configuratorStatistics.actionDomain = 'bundle';\r\n configuratorStatistics.sessionId = this._settingsService.settings.session ? this._settingsService.settings.session.sessionId : 'unknown';\r\n configuratorStatistics.webHost = window.location.host;\r\n configuratorStatistics.bundleHost = window.location.host;\r\n return await this._ioneControllerService.getJsonArticleFlatTree(\r\n article.article.goodId, article.article.goodType, article.quantity, !!this.externalSource, true, configuratorStatistics);\r\n }\r\n\r\n private async _handleGeneratedArticleDirectly(quantity: number): Promise<void> {\r\n const generatedGoodId: number = await this._getGeneratedArtDirectly(this.article.goodId);\r\n if (generatedGoodId) {\r\n const articleFull: ArticleFullObject = await this._productConnectorAdapterService.getArticleFullObject(generatedGoodId, true);\r\n const article: ArticleListObjectExtended = this._ioneControllerService.convertArticleFullObjectToArticleExtended(articleFull);\r\n this._appEventService.onAddToCart.next({article: article, quantity: quantity});\r\n }\r\n }\r\n\r\n private async _getGeneratedArtDirectly(goodId: number): Promise<number> {\r\n return await this._ioneControllerService.getGeneratedArtDirectly(goodId, true);\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-header',\r\n template: `\r\n @if (label) {\r\n <div class=\"header-wrapper\">\r\n <h3 [textContent]=\"label\"></h3>\r\n @if (amount) {\r\n <span class=\"amount\" [textContent]=\"'(' + amount + ')'\"></span>\r\n }\r\n </div>\r\n }\r\n `,\r\n styleUrls: ['./header.component.scss'],\r\n standalone: false\r\n})\r\nexport class HeaderComponent implements OnInit {\r\n\r\n @Input()\r\n public label: string;\r\n\r\n @Input()\r\n public amount: number;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {ArticleListObject} from '@colijnit/articleapi/build/model/article-list-object';\r\nimport {ProductConnectorService} from '../../service/product-connector.service';\r\nimport {ProductEventService} from '../../service/product-event.service';\r\nimport {ProductConnectorAdapterService} from '../../service/product-connector-adapter.service';\r\nimport {ArticleQuantity} from '../../model/article-quantity.model';\r\nimport {ConfiguratorStatisticsEnvironment} from '@colijnit/articleapi/build/model/configurator-statistics-environment';\r\nimport {ProductSettingsService} from '../../service/product-settings.service';\r\nimport {ArticleFullObject} from '@colijnit/articleapi/build/model/article-full-object';\r\nimport {ArticleListObjectExtended} from '@colijnit/articleapi/build/model/article-list-object-extended.bo';\r\nimport {ExternalSource} from '@colijnit/articleapi/build/model/external-source.bo';\r\n\r\nexport class ArticleViewModel {\r\n public article: ArticleListObject;\r\n public imageData: string;\r\n constructor(article: ArticleListObject, imageData?: string) {\r\n this.article = article;\r\n if (imageData) {\r\n this.imageData = imageData;\r\n }\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'app-product-related',\r\n template: `\r\n @if (articles && articles.length > 0) {\r\n <div>\r\n @if (label) {\r\n <app-header [label]=\"label\" [amount]=\"articles?.length\"></app-header>\r\n }\r\n <co-scroll-container>\r\n @for (articleViewModel of articleViewModels; track articleViewModel) {\r\n <div class=\"article-wrapper\">\r\n <co-article-tile\r\n [imageData]=\"articleViewModel.imageData\"\r\n [description]=\"articleViewModel.article.description\"\r\n [price]=\"articleViewModel.article.price\"\r\n [level]=\"articleViewModel.article.stockStatus\"\r\n [hasCartButton]=\"true\"\r\n [isSmallModus]=\"isSmallModus\"\r\n [hasConfigureButton]=\"articleViewModel.article.goodType === 'B'\"\r\n (contentClick)=\"handleContentClick(articleViewModel.article)\"\r\n (cartButtonClick)=\"handleAddToCartClick(articleViewModel.article)\"\r\n (configureButtonClick)=\"handleContentClick(articleViewModel.article)\"\r\n (threeDButtonClick)=\"handleThreeDButtonClick(articleViewModel.article)\"\r\n ></co-article-tile>\r\n </div>\r\n }\r\n </co-scroll-container>\r\n </div>\r\n }\r\n `,\r\n styleUrls: ['./product-related.component.scss'],\r\n standalone: false\r\n})\r\nexport class ProductRelatedComponent {\r\n\r\n @Input()\r\n public refType: number;\r\n\r\n @Input()\r\n public label: string;\r\n\r\n @Input()\r\n public externalSource: ExternalSource;\r\n\r\n @Input()\r\n public isSmallModus: boolean = true;\r\n\r\n @Input()\r\n public createFrozenArticle: boolean = true;\r\n\r\n @Input()\r\n public set articles(value: ArticleListObject[]) {\r\n if (value) {\r\n if (this.refType && this.refType !== undefined) {\r\n if (value.length > 0) {\r\n value.forEach((x: ArticleListObject) => {\r\n if (x.refType === this.refType) {\r\n this._articles.push(x);\r\n }\r\n });\r\n }\r\n } else {\r\n this._articles = value;\r\n }\r\n this.articleViewModels.length = 0;\r\n this._articles.forEach(a => this.articleViewModels.push(new ArticleViewModel(a)));\r\n this._loadImages();\r\n }\r\n }\r\n\r\n public get articles(): ArticleListObject[] {\r\n return this._articles;\r\n }\r\n\r\n public articleViewModels: ArticleViewModel[] = [];\r\n private _articles: ArticleListObject[] = [];\r\n\r\n constructor(\r\n private _iOne: ProductConnectorService,\r\n private _appEventService: ProductEventService,\r\n private _productConnectorAdapterService: ProductConnectorAdapterService,\r\n private _settingsService: ProductSettingsService\r\n ) {\r\n }\r\n\r\n public handleContentClick(article: ArticleListObject): void {\r\n this._appEventService.onAlternativeClick.next(article);\r\n }\r\n\r\n public async handleAddToCartClick(article: ArticleListObject): Promise<void> {\r\n const quantity: number = 1;\r\n const articleFull: ArticleFullObject = await this._productConnectorAdapterService.getArticleFullObject(article.goodId, true);\r\n if (articleFull) {\r\n if (this.createFrozenArticle) {\r\n const article: ArticleListObjectExtended = this._iOne.convertArticleFullObjectToArticleExtended(articleFull);\r\n this._appEventService.onAddToCart.next({article: article, quantity: quantity});\r\n // this._appEventService.onAddToCart.next({ article: await this._getJSONFromArticleObject({article: articleFull, quantity: quantity}), quantity: quantity });\r\n } else {\r\n const article: ArticleListObjectExtended = this._iOne.convertArticleFullObjectToArticleExtended(articleFull);\r\n this._appEventService.onAddToCart.next({article: article, quantity: quantity});\r\n }\r\n }\r\n }\r\n\r\n public handleConfigureButtonClick(article: ArticleListObject): void {\r\n\r\n }\r\n\r\n public handleThreeDButtonClick(article: ArticleListObject): void {\r\n\r\n }\r\n\r\n private async _getJSONFromArticleObject(article: ArticleQuantity): Promise<string> {\r\n const configuratorStatistics = new ConfiguratorStatisticsEnvironment();\r\n configuratorStatistics.userType = 'iOneProductPage';\r\n configuratorStatistics.transactionType = 'Sales';\r\n configuratorStatistics.actionDomain = 'bundle';\r\n configuratorStatistics.sessionId = this._settingsService.settings.session ? this._settingsService.settings.session.sessionId : 'unknown';\r\n configuratorStatistics.webHost = window.location.host;\r\n configuratorStatistics.bundleHost = window.location.host;\r\n return await this._iOne.getJsonArticleFlatTree(\r\n article.article.goodId, article.article.goodType, article.quantity, !!this.externalSource, true, configuratorStatistics);\r\n }\r\n\r\n private async _loadImages(): Promise<void> {\r\n this.articleViewModels.forEach(avm => {\r\n if (avm.article.image) {\r\n this._iOne.getImageForCoDocument(avm.article.image, false).then(imageContent => avm.imageData = imageContent.image);\r\n }\r\n })\r\n }\r\n}\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport { SafeHtml } from '@angular/platform-browser';\r\nimport { ProductConnectorService } from '../../service/product-connector.service';\r\nimport { IconCacheService } from '../../service/icon-cache.service';\r\nimport { IconEnum } from '../../enum/icon.enum';\r\nimport { StockAndDelivery } from '../../model/stock-and-delivery';\r\n\r\n@Component({\r\n selector: 'app-product-stock',\r\n template: `\r\n <!--<app-header [label]=\"'STOCK' | localize\"></app-header>-->\r\n <!--<co-level-indicator [model]=\"'medium'\"></co-level-indicator>-->\r\n <div class=\"product-stock-wrapper\">\r\n <co-icon class=\"stock-icon\" [iconData]=\"iconData\"></co-icon>\r\n <div class=\"product-stock-fields\" (click)=\"openStock()\">\r\n <div class=\"pp-default-label\" [class.in-stock]=\"inStock\" [textContent]=\"stockLabel | localize\"></div>\r\n </div>\r\n </div>\r\n `,\r\n styleUrls: ['./product-stock.component.scss'],\r\n standalone: false\r\n})\r\nexport class ProductStockComponent {\r\n public readonly icon: typeof IconEnum = IconEnum;\r\n\r\n @Input()\r\n public set goodId(value: number) {\r\n this._goodId = value;\r\n this._getStockStatus();\r\n }\r\n\r\n public get goodId(): number {\r\n return this._goodId;\r\n }\r\n\r\n @Output()\r\n public openStockEvent: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n public inStock: boolean = false;\r\n public stockLabel: string;\r\n public iconData: SafeHtml;\r\n\r\n private _goodId: number;\r\n\r\n constructor(\r\n private _iOne: ProductConnectorService,\r\n private _iconCache: IconCacheService\r\n ) {\r\n this.iconData = this._iconCache.getIcon(this.icon.Warehouse);\r\n }\r\n\r\n public openStock() {\r\n this.openStockEvent.emit();\r\n }\r\n\r\n private _getStockStatus(): void {\r\n if (this.goodId) {\r\n this._iOne.getArtStockStatus(this.goodId).then((result: any) => {\r\n switch (result) {\r\n case 1: // niet op voorraad\r\n this.stockLabel = 'PRODUCT_LIMITED_STOCK';\r\n this.inStock = true;\r\n break;\r\n case 2:\r\n this.stockLabel = 'PRODUCT_IN_STOCK';\r\n this.inStock = true;\r\n break;\r\n default:\r\n this.stockLabel = 'PRODUCT_NOT_IN_STOCK';\r\n this.inStock = false;\r\n break;\r\n }\r\n })\r\n }\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ProductConnectorService } from '../../service/product-connector.service';\r\nimport { IconCacheService } from '../../service/icon-cache.service';\r\nimport { SafeHtml } from '@angular/platform-browser';\r\nimport { IconEnum } from '../../enum/icon.enum';\r\nimport { StockAndDelivery } from '../../model/stock-and-delivery';\r\nimport { LocalizePipe } from '../../pipe/localize.pipe';\r\n\r\n@Component({\r\n selector: 'app-product-delivery',\r\n template: `\r\n <!--<app-header [label]=\"'DELIVERY_TIME_PERIOD' | localize\"></app-header>-->\r\n <div class=\"product-delivery-wrapper\">\r\n <co-icon class=\"delivery-icon\" [iconData]=\"iconData\"></co-icon>\r\n <div class=\"product-delivery-fields\">\r\n <div class=\"pp-default-label\" [textContent]=\"'DELIVERY_TIME_PERIOD' | localize\"></div>\r\n <div class=\"pp-default-description\" [textContent]=\"deliveryDescription | date:'dd MMMM yyyy'\"></div>\r\n </div>\r\n </div>\r\n `,\r\n styleUrls: ['./product-delivery.component.scss'],\r\n standalone: false\r\n})\r\nexport class ProductDeliveryComponent implements OnInit {\r\n\r\n public readonly icon: typeof IconEnum = IconEnum;\r\n\r\n @Input()\r\n public set stockAndDelivery(value: StockAndDelivery) {\r\n if (value) {\r\n this.deliveryDescription = value.deliveryDescription;\r\n if (this.deliveryDescription.length > 0 && this.deliveryDescription[0] === ' ') {\r\n this.deliveryDescription = this._localizePipe.transform('ASK_FOR_INFORMATION');\r\n }\r\n }\r\n }\r\n\r\n public deliveryDescription: string;\r\n public iconData: SafeHtml;\r\n\r\n constructor(\r\n private _localizePipe: LocalizePipe,\r\n private _iOne: ProductConnectorService,\r\n private _iconCache: IconCacheService\r\n ) {\r\n this.iconData = this._iconCache.getIcon(this.icon.Truck);\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component, Input, OnInit, SecurityContext } from '@angular/core';\r\nimport { CoText } from '@colijnit/mainapi/build/model/co-text';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\nimport { ArticleFullObject } from '@colijnit/articleapi/build/model/article-full-object';\r\nimport { SuperArticle } from '@colijnit/articleapi/build/model/super-article';\r\nimport { BitUtils } from '../../utils/bit-utils';\r\nimport {ProductConnectorService} from '../../service/product-connector.service';\r\n\r\n@Component({\r\n selector: 'app-product-additional-info',\r\n template: `\r\n @if (showLabel) {\r\n <h3 [textContent]=\"'ADDITIONAL_DATA' | localize\"></h3>\r\n }\r\n @if (textParts && textParts.length > 0) {\r\n @for (text of textParts; track text) {\r\n <div class=\"additional-info-parts\" [innerHTML]=\"text\"></div>\r\n }\r\n }\r\n `,\r\n styleUrls: ['./product-additional-info.component.scss'],\r\n standalone: false\r\n})\r\nexport class ProductAdditionalInfoComponent implements OnInit {\r\n\r\n @Input()\r\n public set article(value: ArticleFullObject) {\r\n if (value) {\r\n this._article = value;\r\n this._buildInfo().then(() => {\r\n this._changeDetector.detectChanges();\r\n });\r\n }\r\n }\r\n\r\n public get article(): ArticleFullObject {\r\n return this._article;\r\n }\r\n\r\n @Input()\r\n public showLabel: boolean = false;\r\n\r\n public textParts: SafeHtml[] = [];\r\n public info: string;\r\n\r\n private _article: ArticleFullObject;\r\n private _superArticles: Map<string, SuperArticle> = new Map();\r\n\r\n constructor(\r\n private _sanitizer: DomSanitizer,\r\n private _connectorService: ProductConnectorService,\r\n private _changeDetector: ChangeDetectorRef\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n private async _getTextsSuperArticle(): Promise<SafeHtml[]> {\r\n return new Promise(async (resolve: Function, reject: Function) => {\r\n const texts: SafeHtml[] = [];\r\n if (this.article.superArticleNr) {\r\n let mainArticle;\r\n if (this._superArticles.has(this.article.superArticleNr)) {\r\n mainArticle = this._superArticles.get(this.article.superArticleNr);\r\n } else {\r\n mainArticle = await this._connectorService.getSuperArticle(this.article.superArticleNr);\r\n this._superArticles.set(this.article.superArticleNr, mainArticle);\r\n }\r\n mainArticle.texts.forEach((txt: CoText) => {\r\n if (BitUtils.IsFullDescription(txt.publication)) {\r\n const safeTxt: SafeHtml = this._sanitizer.sanitize(SecurityContext.HTML, txt.text);\r\n texts.push(safeTxt);\r\n }\r\n });\r\n resolve(texts);\r\n } else {\r\n resolve(texts);\r\n }\r\n });\r\n }\r\n\r\n private async _prepareArticleTexts(): Promise<void> {\r\n const texts: SafeHtml[] = await this._getTextsSuperArticle();\r\n if (texts.length > 0) {\r\n this.textParts.push(...texts);\r\n }\r\n if (this.article.texts) {\r\n this.article.texts.forEach((txt: CoText) => {\r\n if (BitUtils.IsFullDescription(txt.publication)) {\r\n const safeTxt: SafeHtml = this._sanitizer.sanitize(SecurityContext.HTML, txt.text);\r\n this.textParts.push(safeTxt);\r\n }\r\n });\r\n }\r\n }\r\n\r\n private async _buildInfo(): Promise<void> {\r\n this.textParts.length = 0;\r\n await this._prepareArticleTexts();\r\n if (this.textParts.length === 0) {\r\n if (this.article.additionalDescription) {\r\n this.textParts.push(this.article.additionalDescription);\r\n } else if (this.article.description) {\r\n this.textParts.push(this.article.description);\r\n }\r\n }\r\n return;\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ArticleFullObject } from '@colijnit/articleapi/build/model/article-full-object';\r\n\r\nexport const propertyMap: Map<string, string> = new Map([\r\n ['articleNr', 'ARTICLE_NUMBER'],\r\n ['catExtra', 'CATEGORY'],\r\n ['catType', 'CATEGORY_TYPE'],\r\n ['description', 'DESCRIPTION'],\r\n ['material', 'MATERIAL'],\r\n ['title', 'TITLE'],\r\n ['turnOverGroup', 'TURNOVERGROUP'],\r\n ['height', 'HEIGHT'],\r\n ['width', 'WIDTH']\r\n]);\r\n\r\n@Component({\r\n selector: 'app-product-properties',\r\n template: `\r\n <div class=\"article-properties-wrapper\">\r\n @if (showLabel) {\r\n <h3 [textContent]=\"'PROPERTIES' | localize\"></h3>\r\n }\r\n @for (property of properties; track property) {\r\n <div class=\"article-property\">\r\n <div class=\"article-property-key\" [textContent]=\"property.key | localize\"></div>\r\n <div class=\"article-property-value\" [textContent]=\"property.value\"></div>\r\n </div>\r\n }\r\n </div>\r\n `,\r\n styleUrls: ['./product-properties.component.scss'],\r\n standalone: false\r\n})\r\nexport class ProductPropertiesComponent implements OnInit {\r\n\r\n @Input()\r\n public set article(value: ArticleFullObject) {\r\n this._article = value;\r\n this._prepareProperties();\r\n }\r\n\r\n public get article(): ArticleFullObject {\r\n return this._article;\r\n }\r\n\r\n @Input()\r\n public showLabel: boolean = false;\r\n\r\n public properties: {key: string, value: string}[] = [];\r\n\r\n private _article: ArticleFullObject;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n private _prepareProperties(): void {\r\n this.properties.length = 0;\r\n if (!this._article) {\r\n return;\r\n }\r\n propertyMap.forEach((value: string, key: string) => {\r\n if (this.article.hasOwnProperty(key)) {\r\n this.properties.push({key: value, value: this.article[key]});\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { CoDocument } from '@colijnit/mainapi/build/model/co-document.bo';\r\nimport { IconEnum } from '../../enum/icon.enum';\r\nimport { ProductConnectorService } from '../../service/product-connector.service';\r\nimport { IconCacheService } from '../../service/icon-cache.service';\r\n\r\n@Component({\r\n selector: 'app-product-documents',\r\n template: `\r\n @if (showLabel) {\r\n <app-header [label]=\"'DOCUMENTS' | localize\" [amount]=\"documents?.length\"></app-header>\r\n }\r\n @if (documents && documents.length > 0) {\r\n <div>\r\n <co-files-upload [documents]=\"documents\" [canAdd]=\"false\" [readonly]=\"true\"></co-files-upload>\r\n </div>\r\n }\r\n `,\r\n styleUrls: ['./product-documents.component.css'],\r\n standalone: false\r\n})\r\nexport class ProductDocumentsComponent {\r\n\r\n public readonly icon: typeof IconEnum = IconEnum;\r\n\r\n @Input()\r\n public showLabel: boolean = false;\r\n\r\n @Input()\r\n public documents: CoDocument[] = [];\r\n\r\n constructor(public iconCache: IconCacheService) { }\r\n\r\n}\r\n","import { Component, HostBinding, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-product-symbols',\r\n template: `\r\n @if (symbols && symbols.length > 0) {\r\n <div>\r\n <app-header [label]=\"'SYMBOLS' | localize\" [amount]=\"symbols?.length\"></app-header>\r\n <co-scroll-container>\r\n @for (symbol of symbolStrings; track symbol) {\r\n <co-tile small noImagePlaceholder>\r\n <ng-container tile-over-image>\r\n <div class=\"symbol\" [textContent]=\"symbol\"></div>\r\n </ng-container>\r\n <ng-container tile-extra-bottom-content>\r\n <div class=\"symbol-name\" [textContent]=\"'Wat moet hier?'\"></div>\r\n </ng-container>\r\n </co-tile>\r\n }\r\n </co-scroll-container>\r\n </div>\r\n }\r\n `,\r\n styleUrls: ['./product-symbols.component.scss'],\r\n standalone: false\r\n})\r\nexport class ProductSymbolsComponent implements OnInit {\r\n\r\n @Input()\r\n public set symbols(value: any) {\r\n this._symbols = value;\r\n if (this._symbols && this._symbols.hasOwnProperty('fontCode')) {\r\n this._className = this._symbols['fontCode'] === 'VLOER' ? 'floor' : (this._className === 'WAS' ? 'ginetex' : '');\r\n }\r\n if (this._symbols && this._symbols.hasOwnProperty('symbolString')) {\r\n for (let i = 0; i < this._symbols['symbolString'].length; i++) {\r\n this.symbolStrings.push(this._symbols['symbolString'][i]);\r\n }\r\n }\r\n }\r\n\r\n public get symbols(): any {\r\n return this._symbols;\r\n }\r\n\r\n @HostBinding('class')\r\n public _className: string;\r\n\r\n public symbolStrings: string[] = [];\r\n\r\n private _symbols: any;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { ChangeDetectorRef, Component, ElementRef, Input, OnDestroy, ViewChild } from '@angular/core';\r\nimport { ArticleFullObject } from '@colijnit/articleapi/build/model/article-full-object';\r\nimport { Subscription } from 'rxjs';\r\nimport { ProductEventService } from '../../service/product-event.service';\r\n\r\n@Component({\r\n selector: 'app-product-info-tabs',\r\n template: `\r\n <div class=\"tab-container\">\r\n <div class=\"tab-header\">\r\n @for (tab of tabs; track tab; let i = $index) {\r\n <button class=\"tab-header-button\" [class.active]=\"activeTab === i\" [textContent]=\"tab.title | localize\" (click)=\"updateTab(i)\"></button>\r\n }\r\n </div>\r\n <div class=\"tab-content\" #tabContent [style.height.px]=\"(activeTabHeight > 0 ? activeTabHeight : '')\">\r\n @for (tab of tabs; track tab; let i = $index) {\r\n <div class=\"tab-content-item\" [class.active]=\"activeTab === i\">\r\n @if (i === 0) {\r\n <app-product-additional-info class=\"\" [article]=\"articleObject\" [showLabel]=\"false\"></app-product-additional-info>\r\n }\r\n @if (i === 1) {\r\n <app-product-properties class=\"\" [article]=\"articleObject\" [showLabel]=\"false\"></app-product-properties>\r\n }\r\n @if (i === 2) {\r\n @if (articleObject?.documents && articleObject?.documents.length > 0) {\r\n <app-product-documents [showLabel]=\"false\" class=\"\" [documents]=\"articleObject?.documents\"></app-product-documents>\r\n }\r\n }\r\n @if (i === 3) {\r\n @if (articleObject?.symbols && articleObject?.symbols.length > 0) {\r\n <app-product-symbols class=\"\" [symbols]=\"articleObject?.symbols\"></app-product-symbols>\r\n }\r\n }\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n `,\r\n styleUrls: ['./product-info-tabs.component.scss'],\r\n standalone: false\r\n})\r\nexport class ProductInfoTabsComponent implements OnDestroy {\r\n\r\n public activeTab: number;\r\n public activeTabHeight: number = 0;\r\n\r\n @ViewChild('tabContent')\r\n public tabContent: ElementRef;\r\n\r\n public tabs: any[] = [];\r\n\r\n public articleObject: ArticleFullObject;\r\n\r\n @Input ()\r\n set article(value: ArticleFullObject) {\r\n if (value) {\r\n this.articleObject = value;\r\n this._setupTabs();\r\n this.updateTab(0);\r\n }\r\n }\r\n\r\n private _subs: Subscription[] = [];\r\n\r\n constructor(\r\n private _appEventService: ProductEventService\r\n ) {\r\n this._subs.push(\r\n this._appEventService.onUpdateProductInfoTab.subscribe((index: number) => {\r\n this.updateTab(index);\r\n this.tabContent.nativeElement.scrollIntoView({ behavior: 'smooth' });\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._subs.forEach(s => s.unsubscribe());\r\n }\r\n\r\n public updateTab(tabIndex: number) {\r\n this.activeTab = tabIndex;\r\n this.updateHeight(tabIndex);\r\n }\r\n\r\n public updateHeight(tabIndex: number): void {\r\n if (this.tabContent && this.tabContent.nativeElement.children.length > 0) {\r\n if (this.tabContent.nativeElement.children[tabIndex] !== undefined) {\r\n this.activeTabHeight = this.tabContent.nativeElement.children[tabIndex].offsetHeight;\r\n }\r\n }\r\n }\r\n\r\n private _setupTabs(): void {\r\n this.tabs.push({ title: 'DESCRIPTION' });\r\n this.tabs.push({ title: 'FEATURES' });\r\n\r\n if (this.articleObject.documents !== undefined && this.articleObject.documents.length > 0) {\r\n this.tabs.push({ title: 'DOWNLOADS' });\r\n }\r\n\r\n if (this.articleObject.symbols !== undefined && this.articleObject.symbols.length > 0) {\r\n this.tabs.push({ title: 'SYMBOLS' });\r\n }\r\n\r\n }\r\n\r\n}\r\n","import {Component, EventEmitter, HostBinding, Input, OnInit, Output, ViewEncapsulation} from '@angular/core';\r\nimport {DomSanitizer} from '@angular/platform-browser';\r\nimport {ProductConnectorService} from '../../service/product-connector.service';\r\nimport {ArticleListObject} from '@colijnit/articleapi/build/model/article-list-object';\r\nimport {ProductEventService} from '../../service/product-event.service';\r\nimport {ProductSettingsService} from '../../service/product-settings.service';\r\nimport {ProductConnectorAdapterService} from '../../service/product-connector-adapter.service';\r\nimport {ArticleFullObject} from \"@colijnit/articleapi/build/model/article-full-object\";\r\nimport {IconEnum} from \"../../enum/icon.enum\";\r\nimport {IconCacheService} from \"../../service/icon-cache.service\";\r\nimport {SelectorType} from \"../../enum/selector-type.enum\";\r\n\r\n\r\n@Component({\n selector: 'co-product-dialog',\n template: `\n <div class=\"product-dialog-wrap\">\n <div class=\"product-dialog-container\">\n <div class=\"container-header\">\n <div class=\"header-info\">\n <h3>\n <co-icon [iconData]=\"iconCache.getIcon(icon.LinkSimpleRegular)\"\n (click)=\"closeCatalog()\"></co-icon>{{ 'SUGGESTION' | localize }} <b>{{ mainArticle.name }}</b> ({{ mainArticle.articleNr }})\n </h3>\n </div>\n <div class=\"close-icon\" (click)=\"closeCatalog()\">\n <co-icon class=\"fullscreen-button\"\n [iconData]=\"iconCache.getIcon(icon.CrossSkinny)\"\n (click)=\"closeCatalog()\"></co-icon>\n </div>\n </div>\n <div class=\"related-product-container\">\n @if (articles) {\n <app-product-related\n class=\"no-padding\"\n [articles]=\"articles\">\n </app-product-related>\n }\n </div>\n <div class=\"close-button-container\">\n <button class=\"ok-button\" (click)=\"closeCatalog()\">\n <co-icon [iconData]=\"iconCache.getIcon(icon.SaveSkinny)\"\n (click)=\"closeCatalog()\"></co-icon>\n </button>\n <button class=\"close-button\" (click)=\"closeCatalog()\">\n <co-icon [iconData]=\"iconCache.getIcon(icon.CrossSkinny)\"\n (click)=\"closeCatalog()\"></co-icon>\n </button>\n </div>\n </div>\n </div>\n `,\n styleUrls: ['./product-dialog.component.scss'],\n standalone: false\n})\r\nexport class ProductDialogComponent implements OnInit {\r\n public readonly icon: typeof IconEnum = IconEnum;\r\n @Input()\r\n public refType: number;\r\n\r\n @Input()\r\n public mainArticle: ArticleFullObject;\r\n\r\n @Input()\r\n public articles: ArticleListObject[];\r\n\r\n @Output()\r\n public closeRelatedPopup: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n @HostBinding('class.co-product-dialog')\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n constructor(\r\n public iconCache: IconCacheService,\r\n private _sanitizer: DomSanitizer,\r\n private _productConnectorService: ProductConnectorService,\r\n private _productConnectorAdapterService: ProductConnectorAdapterService,\r\n private _appEventService: ProductEventService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n public closeCatalog() {\r\n // need to emit close\r\n this.closeRelatedPopup.emit(false);\r\n }\r\n\r\n protected readonly type = SelectorType;\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n HostBinding,\r\n HostListener,\r\n Input, OnChanges,\r\n OnDestroy,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {ProductEventService} from '../../service/product-event.service';\r\nimport {Subscription} from 'rxjs';\r\nimport {ArticleFullObject} from \"@colijnit/articleapi/build/model/article-full-object\";\r\nimport {IconCacheService} from \"../../service/icon-cache.service\";\r\nimport {IconEnum} from \"../../enum/icon.enum\";\r\n\r\nexport class VectorObject {\r\n public x: number;\r\n public y: number;\r\n public z: number;\r\n}\r\n\r\nexport class RenderParameters {\r\n public objectRotation: VectorObject;\r\n public margin: number;\r\n}\r\n\r\n@Component({\r\n selector: 'app-render-carousel',\r\n template: `\r\n <div id=\"product_page_carousel\">\r\n <div id=\"product_page_carousel_render_items\">\r\n <co-loader></co-loader>\r\n <div #carousel class=\"inner-carousel\">\r\n <div class=\"inner-carousel-render\">\r\n <img\r\n [src]=\"renderedImage\"\r\n [class.loaded]=\"renderedImageLoaded\"\r\n (load)=\"onRenderLoaded()\"\r\n class=\"fade-image\"\r\n alt=\"\">\r\n </div>\r\n <div class=\"carousel-scroller-layer\">\r\n <div class=\"carousel-item-scroller prev\" (click)=\"gotoPrevSlide()\">\r\n <co-icon [iconData]=\"iconCache.getIcon(icon.ArrowPointLeft)\"></co-icon>\r\n </div>\r\n <div class=\"carousel-item-scroller next\" (click)=\"gotoNextSlide()\">\r\n <co-icon [iconData]=\"iconCache.getIcon(icon.ArrowPointRight)\"></co-icon>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n styleUrls: ['./render-carousel.component.scss'],\r\n standalone: false\r\n})\r\nexport class RenderCarouselComponent implements OnDestroy, OnChanges {\r\n @ViewChild('carousel', {read: ElementRef})\r\n public carousel: ElementRef;\r\n\r\n @Input()\r\n public showRefresh: boolean = false;\r\n\r\n @Input()\r\n public article: ArticleFullObject;\r\n\r\n @HostListener('window:resize')\r\n public handleWindowResize(): void {\r\n this.resizing = true;\r\n clearTimeout(this._resizeTimer);\r\n this._resizeTimer = setTimeout(() => {\r\n this.resizing = false;\r\n }, 200);\r\n }\r\n\r\n @HostListener('swipeleft')\r\n public gotoNextSlide(): void {\r\n this.showLoader = true;\r\n this.currentRenderAngleIndex = (this.currentRenderAngleIndex + 1) % this.renderAngles.length;\r\n this._createNewRender();\r\n }\r\n\r\n @HostListener('swiperight')\r\n public gotoPrevSlide(): void {\r\n this.showLoader = true;\r\n this.currentRenderAngleIndex = ( this.currentRenderAngleIndex - 1 + this.renderAngles.length) % this.renderAngles.length;\r\n this._createNewRender();\r\n }\r\n\r\n @HostBinding('class.resizing')\r\n public resizing = false;\r\n\r\n public showLoader: boolean = true;\r\n public renderedImage: string;\r\n public renderedImageLoaded: boolean = false;\r\n\r\n // For now we will just use mock data\r\n public renderAngles: any = [0, -45, -90, -135, -180, -225, -270, -315];\r\n public currentRenderAngleIndex: number = 0;\r\n public readonly icon: typeof IconEnum = IconEnum;\r\n private _resizeTimer: any;\r\n private _subs: Subscription[] = [];\r\n\r\n constructor(\r\n public iconCache: IconCacheService,\r\n private _appEventService: ProductEventService,\r\n private _changeDetector: ChangeDetectorRef,\r\n ) {\r\n this._subs.push(\r\n this._appEventService.onReadyToRender.subscribe((readyToRender: boolean) => {\r\n if (readyToRender) {\r\n this.showLoader = true;\r\n this._createNewRender();\r\n }\r\n }),\r\n this._appEventService.onRenderStarted.subscribe(()=> {\r\n this.showLoader = true;\r\n this._changeDetector.detectChanges();\r\n }),\r\n this._appEventService.onRenderImageReceived.subscribe((image: string) => {\r\n this.renderedImage = image;\r\n this.showLoader = false;\r\n this._changeDetector.detectChanges();\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.carousel = undefined;\r\n this._subs.forEach(s => s.unsubscribe());\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.renderedImageLoaded = false;\r\n }\r\n\r\n public onRenderLoaded(): void {\r\n this.renderedImageLoaded = true;\r\n }\r\n\r\n private _getRenderSettings(): RenderParameters {\r\n const settings: RenderParameters = new RenderParameters();\r\n const rotation: VectorObject = new VectorObject();\r\n rotation.x = 0;\r\n rotation.y = this.renderAngles[this.currentRenderAngleIndex];\r\n rotation.z = 0\r\n settings.objectRotation = rotation;\r\n settings.margin = 15;\r\n return settings\r\n }\r\n\r\n private _createNewRender(): void {\r\n this.showLoader = true;\r\n this.renderedImageLoaded = false;\r\n const renderParams: RenderParameters = this._getRenderSettings();\r\n this._appEventService.onGetRenderForRenderCarousel.next(renderParams);\r\n }\r\n}\r\n","import {AfterViewInit, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, Renderer2, ViewChild} from '@angular/core';\r\nimport {ProductConnectorService} from '../../service/product-connector.service';\r\nimport {ArticleFullObject} from '@colijnit/articleapi/build/model/article-full-object';\r\nimport {combineLatest, Subscription} from 'rxjs';\r\nimport {StockAndDelivery} from '../../model/stock-and-delivery';\r\nimport {SelectorType} from '../../enum/selector-type.enum';\r\nimport {animate, state, style, transition, trigger} from '@angular/animations';\r\nimport {IconEnum} from '../../enum/icon.enum';\r\nimport {IconCacheService} from '../../service/icon-cache.service';\r\nimport {ProductSettingsService} from '../../service/product-settings.service';\r\nimport {ProductEventService} from '../../service/product-event.service';\r\nimport {DeliveryPrognosis} from '@colijnit/articleapi/build/model/delivery-prognosis';\r\nimport {ExternalSource} from '@colijnit/articleapi/build/model/external-source.bo';\r\n\r\n@Component({\r\n selector: 'app-product-page',\r\n template: `\r\n @if (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 @if (!enableRenderCarousel) {\r\n <app-image-carousel\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 @if (enableRenderCarousel) {\r\n <app-render-carousel\r\n [@toggleVisibilityByState]=\"show2D ? 'show' : 'hide'\"\r\n [article]=\"article\">\r\n </app-render-carousel>\r\n }\r\n @if (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 }\r\n @if (show3D) {\r\n <co-icon #fullscreenbutton class=\"fullscreen-button\"\r\n [@toggleTopLeft]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n [iconData]=\"iconCache.getIcon(fullScreenIcon)\"\r\n (click)=\"showFullScreen()\"></co-icon>\r\n }\r\n @if (show3D && fullScreen) {\r\n <co-icon class=\"threed-watermark\"\r\n [iconData]=\"iconCache.getIcon(icon.Logo)\"></co-icon>\r\n }\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 @if (!configuring) {\r\n <app-product-price class=\"s-padding\"\r\n [pricing]=\"article?.pricing\"\r\n [configurable]=\"configurable\"\r\n ></app-product-price>\r\n }\r\n @if (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 }\r\n </div>\r\n @if (!configuring) {\r\n <div class=\"product-page-block-addtocart no-padding product-action-buttons\" [@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 }\r\n @if (configuring) {\r\n <div class=\"addtocart-reserved product-action-buttons\" [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 }\r\n <div class=\"product-page-block-variants\">\r\n @if (article?.relatedArticles && article?.relatedArticles.length > 0) {\r\n <app-product-related class=\"no-padding\"\r\n [externalSource]=\"externalSource\"\r\n [articles]=\"article?.relatedArticles\" [refType]=\"64\" [label]=\"'VARIANTS' | localize\"></app-product-related>\r\n }\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 @if (article) {\r\n <div class=\"page-wrapper-left\">\r\n <app-product-info-tabs class=\"no-padding\" [article]=\"article\"></app-product-info-tabs>\r\n </div>\r\n }\r\n <div class=\"page-wrapper-right\">\r\n <div class=\"product-page-block-related s-padding\">\r\n @if (article?.relatedArticles && article?.relatedArticles.length > 0) {\r\n <app-product-related\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 }\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 @if (article?.relatedArticles && article?.relatedArticles.length > 0) {\r\n <app-product-related\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 }\r\n </div>\r\n </div>\r\n </div>\r\n @if (showRelatedProductsPopup) {\r\n <div>\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 </div>\r\n }\r\n </div>\r\n }\r\n `,\r\n styleUrls: ['./product-page.component.scss'],\r\n animations: [\r\n trigger('toggleFullScreen', [\r\n state('fullscreen', style({ 'position': 'fixed', 'top': '0', 'left': '0', 'width': '100%', 'height': '100%' })),\r\n state('halfscreen', style({ 'position': '*', 'top': '*', 'left': '*', 'width': '*', 'height': '*' })),\r\n transition('halfscreen <=> fullscreen', animate('200ms ease-in-out'))\r\n ]),\r\n trigger('toggleTopLeft', [\r\n state('fullscreen', style({ 'position': 'fixed', 'top': '0', 'left': '0' })),\r\n state('halfscreen', style({ 'position': 'absolute', 'top': '*', 'left': '*' })),\r\n transition('halfscreen <=> fullscreen', animate('200ms ease-in-out'))\r\n ]),\r\n trigger('toggleTopRight', [\r\n state('fullscreen', style({ 'position': 'fixed', 'top': '0', 'right': '0' })),\r\n state('halfscreen', style({ 'position': '*', 'top': '*', 'right': '*' })),\r\n transition('halfscreen <=> fullscreen', animate('200ms ease-in-out'))\r\n ]),\r\n trigger('toggleFullScreenRight', [\r\n state('fullscreen', style({ 'position': 'fixed', 'width': '400px', 'top': '0', 'right': '0' })),\r\n state('halfscreen', style({ 'position': '*', 'width': '*', 'top': '*', 'right': '*' })),\r\n transition('halfscreen <=> fullscreen', animate('200ms ease-in-out'))\r\n ]),\r\n trigger('toggleVisibilityByState', [\r\n state('hide', style({ 'opacity': '0', 'display': 'none' })),\r\n state('show', style({ 'display': 'block', 'opacity': '1' })),\r\n transition('hide <=> show', animate('200ms 100ms ease-in-out'))\r\n ]),\r\n trigger('toggleVisibility', [\r\n state('void', style({ 'opacity': '0' })),\r\n state('*', style({ 'opacity': '1' })),\r\n transition('void => *', animate('200ms ease-in-out'))\r\n ])\r\n ],\r\n standalone: false\r\n})\r\nexport class ProductPageComponent implements OnInit, OnDestroy, AfterViewInit {\r\n public readonly icon: typeof IconEnum = IconEnum;\r\n\r\n @ViewChild('configurator', {read: ElementRef})\r\n public configurator: ElementRef;\r\n\r\n @ViewChild('selections', {read: ElementRef})\r\n public selections: ElementRef;\r\n\r\n @ViewChild('fullscreenbutton', {read: ElementRef})\r\n public fullscreenbutton: ElementRef;\r\n\r\n @Input()\r\n public set sku(value: string) {\r\n if (value) {\r\n if (this.configuring) {\r\n this.show3D = false;\r\n this.fullScreen = false;\r\n this.configuring = false;\r\n this._changeDetector.detectChanges();\r\n }\r\n this._sku = value;\r\n this._getArticle();\r\n }\r\n }\r\n\r\n public get sku(): string {\r\n return this._sku;\r\n }\r\n\r\n @Input()\r\n public set settings(value: any) {\r\n if (value) {\r\n if (typeof value === 'string') {\r\n this._settings = JSON.parse(value);\r\n } else {\r\n this._settings = value;\r\n }\r\n }\r\n }\r\n\r\n @Input()\r\n public externalSource: ExternalSource;\r\n\r\n @Input()\r\n public createFrozenArticle: boolean = true;\r\n\r\n @Input()\r\n public isReturn: boolean = false;\r\n\r\n @Input()\r\n public showRelatedProductsPopup: boolean = false;\r\n\r\n @Input()\r\n public enableRenderCarousel: boolean;\r\n\r\n @Output()\r\n public openStockEvent: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n public get settings(): any {\r\n return this._settings;\r\n }\r\n\r\n public set fullScreen(value: boolean) {\r\n this._fullScreen = value;\r\n this.fullscreenAnimationEnd = true;\r\n this._changeDetector.detectChanges();\r\n // setTimeout(() => {\r\n // this.fullscreenAnimationEnd = true;\r\n // }, 400)\r\n }\r\n\r\n public get fullScreen(): boolean {\r\n return this._fullScreen;\r\n }\r\n\r\n public get fullScreenIcon(): IconEnum {\r\n return this.fullScreen ? this.icon.NormalScreen : this.icon.FullScreen;\r\n }\r\n\r\n public set currentView(value: SelectorType) {\r\n this._currentView = value;\r\n this.show2D = this._currentView === SelectorType.TwoD;\r\n this.show3D = this._currentView === SelectorType.ThreeD;\r\n this._changeDetector.detectChanges();\r\n }\r\n\r\n public get currentView(): SelectorType {\r\n return this._currentView;\r\n }\r\n\r\n public article: ArticleFullObject;\r\n public stockAndDelivery: StockAndDelivery;\r\n public configurable: boolean = true;\r\n public threeD: boolean = false;\r\n public selectorType: SelectorType;\r\n public show2D: boolean = true;\r\n public show3D: boolean = false;\r\n public configuring: boolean = false;\r\n public showAddToCart: boolean = false;\r\n public fullscreenAnimationEnd: boolean = false;\r\n public settingsLoaded: boolean = false;\r\n private _sku: string;\r\n private _initializedSub: Subscription;\r\n private _fullScreen: boolean = false;\r\n private _currentView: SelectorType;\r\n private _subs: Subscription[] = [];\r\n private _settings: any;\r\n private _pageLoadedSubscription: Subscription;\r\n\r\n constructor(private _ione: ProductConnectorService,\r\n private _renderer: Renderer2,\r\n private _changeDetector: ChangeDetectorRef,\r\n public iconCache: IconCacheService,\r\n public settingsService: ProductSettingsService,\r\n public appEventService: ProductEventService\r\n ) {\r\n this._subs.push(\r\n this.appEventService.onForceRenderImage.subscribe((x) => {\r\n if (this.selections.nativeElement) {\r\n this.selections.nativeElement.forceRenderImage();\r\n }\r\n }),\r\n this.settingsService.settingsLoaded.subscribe(loaded => this._handleSettingsLoaded(loaded)),\r\n this._pageLoadedSubscription = combineLatest([\r\n this._ione.controllerInitialized,\r\n this._ione.articleLoaded\r\n ]).subscribe(([initialized, articleLoaded]) => {\r\n if (initialized && articleLoaded) {\r\n this.settingsLoaded = initialized;\r\n }\r\n }),\r\n // this._ione.controllerInitialized.subscribe((initialized: boolean) => {\r\n // this.settingsLoaded = initialized;\r\n // }),\r\n this.appEventService.onAnswersAvailable.subscribe((answers) => {\r\n if (answers && this.configurable) {\r\n this.showAddToCart = false;\r\n } else {\r\n this.showAddToCart = true;\r\n }\r\n }),\r\n this.appEventService.onGetRenderForRenderCarousel.subscribe((renderParameters: any) => {\r\n if (this.selections.nativeElement) {\r\n this.selections.nativeElement.getRenderForRenderCarousel(renderParameters);\r\n }\r\n })\r\n );\r\n\r\n }\r\n\r\n ngOnInit() {\r\n if (this._settings) {\r\n this.settingsService.settings = undefined;\r\n this.settingsService.createSettingsFromObject(this._settings);\r\n } else {\r\n this._settings = this.settingsService.settings;\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._subs.forEach(s => s.unsubscribe());\r\n if (this._initializedSub) {\r\n this._initializedSub.unsubscribe();\r\n }\r\n this._pageLoadedSubscription.unsubscribe();\r\n this.configurator = undefined;\r\n this.selections = undefined;\r\n this.fullscreenbutton = undefined;\r\n }\r\n\r\n public setInstance(event: CustomEvent): void {\r\n if (event.detail) {\r\n this._ione.setInstance(event.detail);\r\n }\r\n }\r\n\r\n public handleStartConfiguration(): void {\r\n this.configuring = true;\r\n this._changeDetector.detectChanges();\r\n }\r\n\r\n public showFullScreen(): void {\r\n this.fullScreen = !this.fullScreen;\r\n }\r\n\r\n private _handleSettingsLoaded(loaded: boolean): void {\r\n if (loaded) {\r\n this._ione.initConnection();\r\n }\r\n }\r\n\r\n private async _getArticle(): Promise<void> {\r\n if (this._initializedSub) {\r\n this._initializedSub.unsubscribe();\r\n }\r\n this._initializedSub = this._ione.controllerInitialized.subscribe(async (init: boolean) => {\r\n if (init) {\r\n this._ione.getFullArticle(this._sku).then((article: ArticleFullObject) => {\r\n this.article = article;\r\n if (this.article) {\r\n this.configurable = this.article.goodType === 'B' && (this.article.isConfigurable || this.article.isConfigurable === undefined);\r\n // this.configurable = this.article.goodType === 'B';\r\n if (this.configurable) {\r\n this.showAddToCart = false;\r\n this.currentView = SelectorType.TwoD;\r\n } else {\r\n this.showAddToCart = true;\r\n }\r\n this.threeD = this.article.is3D;\r\n this.selectorType = this.article.selectorTypeCustomer;\r\n this._ione.getDeliveryPrognosis(this.article.goodId).then((stockInfo: DeliveryPrognosis) => {\r\n const stockAndDelivery: DeliveryPrognosis = stockInfo;\r\n this.stockAndDelivery = new StockAndDelivery(0, stockAndDelivery.returnValue ? stockAndDelivery.returnValue : ' ');\r\n this._changeDetector.detectChanges();\r\n });\r\n this._changeDetector.detectChanges();\r\n }\r\n this._ione.articleLoaded.next(true);\r\n });\r\n }\r\n });\r\n this.showRelatedProductsPopup = false;\r\n }\r\n\r\n public openStock() {\r\n this.openStockEvent.emit();\r\n }\r\n\r\n public handlePopUpChange(event: boolean) {\r\n this.showRelatedProductsPopup = event;\r\n }\r\n}\r\n","import {Component, EventEmitter, Inject, Input, OnDestroy, OnInit, Output, ViewEncapsulation} from '@angular/core';\r\nimport {ProductConnectorService} from './service/product-connector.service';\r\nimport {Subscription} from 'rxjs';\r\nimport {ProductEventService} from './service/product-event.service';\r\nimport {ArticleListObject} from '@colijnit/articleapi/build/model/article-list-object';\r\nimport {ProductSettingsService} from './service/product-settings.service';\r\nimport {Selection} from '@colijnit/articleapi/build/model/selection';\r\nimport {ArticleQuickSel} from '@colijnit/articleapi/build/model/article-quick-sel';\r\nimport {ArticleListObjectExtended} from '@colijnit/articleapi/build/model/article-list-object-extended.bo';\r\nimport {ProductConnectorAdapterService} from './service/product-connector-adapter.service';\r\nimport {LocalStorageService} from \"./bundle/service/local-storage.service\";\r\n\r\n@Component({\r\n selector: 'app-ione-product',\r\n template: `\r\n @if (settingsLoaded) {\r\n <app-product-page\r\n [createFrozenArticle]=\"handleAddArticleInternally\"\r\n [isReturn]=\"isReturn\"\r\n [sku]=\"sku\"\r\n [showRelatedProductsPopup]=\"showRelatedProductsPopup\"\r\n [enableRenderCarousel]=\"enableRenderCarousel\"\r\n (openStockEvent)=\"openStock()\"\r\n ></app-product-page>\r\n }\r\n `,\r\n providers: [\r\n ProductSettingsService,\r\n ProductConnectorService,\r\n ProductEventService,\r\n ProductConnectorAdapterService\r\n ],\r\n encapsulation: ViewEncapsulation.Emulated,\r\n styleUrls: ['./ione-product.component.css'],\r\n standalone: false\r\n})\r\nexport class IoneProductComponent implements OnInit, OnDestroy {\r\n\r\n @Input()\r\n public sku: string;\r\n\r\n @Input()\r\n public isReturn: boolean;\r\n\r\n @Input()\r\n public showRelatedProductsPopup: boolean;\r\n\r\n @Input()\r\n public enableRenderCarousel: boolean = false;\r\n\r\n @Input()\r\n public set settings(value: any) {\r\n if (value) {\r\n if (typeof value === 'string') {\r\n this._settings = JSON.parse(value);\r\n } else {\r\n this._settings = value;\r\n }\r\n }\r\n }\r\n\r\n public get settings(): any {\r\n return this._settings;\r\n }\r\n\r\n @Input()\r\n public handleAddArticleInternally: boolean = true;\r\n\r\n @Input()\r\n public handleAddToCartInternally: boolean = false;\r\n\r\n @Output()\r\n public onAddToCart: EventEmitter<{ article: string | ArticleListObjectExtended, quantity: number }> = new EventEmitter<{ article: string | ArticleListObjectExtended, quantity: number }>();\r\n\r\n @Output()\r\n public forceRenderImage: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n @Output()\r\n public getRenderForRenderCarousel: EventEmitter<any> = new EventEmitter<void>();\r\n\r\n @Output()\r\n public onAlternativeClick: EventEmitter<ArticleListObject> = new EventEmitter<ArticleListObject>();\r\n\r\n @Output()\r\n public onArticleInfoReceived: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n @Output()\r\n public onArticleReceived: EventEmitter<ArticleQuickSel> = new EventEmitter<ArticleQuickSel>();\r\n\r\n @Output()\r\n public onSelectionsReceived: EventEmitter<Selection[]> = new EventEmitter<Selection[]>();\r\n\r\n @Output()\r\n public onAddToQuote: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n @Output()\r\n public openStockEvent: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n @Output()\r\n public onAnswersAvailable: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n public settingsLoaded: boolean = false;\r\n public showHD: boolean = false;\r\n\r\n private _settings: any;\r\n private _subs: Subscription[] = [];\r\n\r\n constructor (\r\n private _appEventService: ProductEventService,\r\n private _settingsService: ProductSettingsService,\r\n private _productConnectorService: ProductConnectorService,\r\n private _localStorageService: LocalStorageService\r\n ) {\r\n // this.sku = 'CF-HILL';\r\n // this.sku = 'CF-ALMADA';\r\n // this.sku = 'CF-39904ANT';\r\n // this.sku = 'CF-22346001';\r\n // this.sku = '104';\r\n // this.sku = '1000561986';\r\n // this.sku = '1000567768';\r\n // this.sku = '1000567767';\r\n // this.sku = '1066';\r\n // this.sku = '104';\r\n // this.sku = \"70000107\";\r\n // this.sku = \"grover\";\r\n // this.sku = \"1000610952\";\r\n // this.sku = \"4387\";\r\n // this.sku = \"1000612725\";\r\n // this.sku = '1000610952'; // elix = 1000234793\r\n this.sku = '1000234793';\r\n }\r\n\r\n async ngOnInit(): Promise<void> {\r\n this._subs.push(\r\n this._appEventService.onAddToCart.subscribe((data: { article: string | ArticleListObjectExtended, quantity: number }) => {\r\n this._handleAddToCart(data);\r\n }),\r\n this._appEventService.onAddToQuote.subscribe(json => this.onAddToQuote.emit(json)),\r\n this._appEventService.onAlternativeClick.subscribe(article => this.onAlternativeClick.emit(article)),\r\n this._appEventService.onArticleInfoReceived.subscribe(info => this._handleAnswerInfoReceived(info)),\r\n this._appEventService.onArticleReceived.subscribe(article => this.onArticleReceived.emit(article)),\r\n this._appEventService.onSelectionsReceived.subscribe(selections => this.onSelectionsReceived.emit(selections)),\r\n this._appEventService.onAnswersAvailable.subscribe(answers => this._handleAnswersAvailable(answers)),\r\n this._settingsService.settingsLoaded.subscribe(loaded => {\r\n this.settingsLoaded = loaded;\r\n }),\r\n );\r\n await this._settingsService.initializeSettings(this._settings === undefined);\r\n if (this._settings) {\r\n this._settingsService.createSettingsFromObject(this._settings);\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._subs.forEach(s => s.unsubscribe());\r\n }\r\n\r\n private _handleAnswerInfoReceived(info: string): void {\r\n this.onArticleInfoReceived.emit(info);\r\n }\r\n\r\n private _handleAnswersAvailable(answers: boolean): void {\r\n this.onAnswersAvailable.emit(answers);\r\n }\r\n\r\n private async _handleAddToCart(data: { article: string | ArticleListObjectExtended, quantity: number }): Promise<void> {\r\n if (this.handleAddToCartInternally) {\r\n if (data && data.article) {\r\n if (typeof data.article === 'string') {\r\n const article = JSON.parse(data.article as string);\r\n if (article.selectorData && article.selectorData.compositions) { // configured (frozen) article\r\n const transactionId: string =\r\n await this._productConnectorService.addWebSessionTransactionLine(\r\n this._localStorageService.id, article.selectorData.compositions[0].compositionArticleNo, data.quantity);\r\n if (transactionId) {\r\n this._localStorageService.id = transactionId;\r\n }\r\n }\r\n } else { // flat (simple) article\r\n if (data.article.hasOwnProperty('articleNr')) {\r\n const transactionId: string =\r\n await this._productConnectorService.addWebSessionTransactionLine(this._localStorageService.id, data.article['articleNr'], data.quantity);\r\n if (transactionId) {\r\n this._localStorageService.id = transactionId;\r\n }\r\n }\r\n }\r\n this.onAddToCart.emit(data);\r\n }\r\n } else {\r\n this.onAddToCart.emit(data);\r\n }\r\n }\r\n\r\n public openStock() {\r\n this.openStockEvent.emit();\r\n }\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {LocalizePipe} from './localize.pipe';\r\nimport {PriceDisplayPipe} from './price-display.pipe';\r\n\r\n@NgModule({\r\n declarations: [\r\n LocalizePipe,\r\n PriceDisplayPipe\r\n ],\r\n providers: [\r\n LocalizePipe\r\n ],\r\n exports: [\r\n LocalizePipe,\r\n PriceDisplayPipe\r\n ]\r\n})\r\nexport class PipeModule {\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductSelectorTypeComponent} from './product-selector-type.component';\r\nimport {PipeModule} from '../../pipe/pipe.module';\r\nimport {IconModule} from '@colijnit/corecomponents_v12';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n PipeModule,\r\n IconModule\r\n ],\r\n declarations: [\r\n ProductSelectorTypeComponent\r\n ],\r\n exports: [\r\n ProductSelectorTypeComponent\r\n ]\r\n})\r\nexport class ProductSelectorTypeModule {\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ImageCarouselComponent} from './image-carousel.component';\r\nimport {LoaderModule, ScrollContainerModule} from '@colijnit/corecomponents_v12';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n LoaderModule,\r\n ScrollContainerModule\r\n ],\r\n declarations: [\r\n ImageCarouselComponent\r\n ],\r\n exports: [\r\n ImageCarouselComponent\r\n ]\r\n})\r\nexport class ImageCarouselModule {\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductDescriptionComponent} from './product-description.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n ProductDescriptionComponent\r\n ],\r\n exports: [\r\n ProductDescriptionComponent\r\n ]\r\n})\r\nexport class ProductDescriptionModule {\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductAdditionalDescriptionComponent} from './product-additional-description.component';\r\nimport {PipeModule} from '../../pipe/pipe.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n PipeModule\r\n ],\r\n declarations: [\r\n ProductAdditionalDescriptionComponent\r\n ],\r\n exports: [\r\n ProductAdditionalDescriptionComponent\r\n ]\r\n})\r\nexport class ProductAdditionalDescriptionModule {\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductPriceComponent} from './product-price.component';\r\nimport {PipeModule} from '../../pipe/pipe.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n PipeModule\r\n ],\r\n declarations: [\r\n ProductPriceComponent\r\n ],\r\n exports: [\r\n ProductPriceComponent\r\n ]\r\n})\r\nexport class ProductPriceModule {\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductAddtocartComponent} from './product-addtocart.component';\r\nimport {ButtonModule, InputNumberPickerModule} from '@colijnit/corecomponents_v12';\r\nimport {PipeModule} from '../../pipe/pipe.module';\r\nimport {LoaderModule} from \"@colijnit/corecomponents_v12\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n InputNumberPickerModule,\r\n ButtonModule,\r\n PipeModule,\r\n LoaderModule\r\n ],\r\n declarations: [\r\n ProductAddtocartComponent\r\n ],\r\n exports: [\r\n ProductAddtocartComponent\r\n ]\r\n})\r\nexport class ProductAddtocartModule {\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {HeaderComponent} from './header.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n HeaderComponent\r\n ],\r\n exports: [\r\n HeaderComponent\r\n ]\r\n})\r\nexport class HeaderModule {\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductRelatedComponent} from './product-related.component';\r\nimport {HeaderModule} from '../core/header/header.module';\r\nimport {ArticleTileModule, ScrollContainerModule} from '@colijnit/corecomponents_v12';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n HeaderModule,\r\n ScrollContainerModule,\r\n ArticleTileModule\r\n ],\r\n declarations: [\r\n ProductRelatedComponent\r\n ],\r\n exports: [\r\n ProductRelatedComponent\r\n ]\r\n})\r\nexport class ProductRelatedModule {\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductStockComponent} from './product-stock.component';\r\nimport {IconModule} from '@colijnit/corecomponents_v12';\r\nimport {PipeModule} from '../../pipe/pipe.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IconModule,\r\n PipeModule\r\n ],\r\n declarations: [\r\n ProductStockComponent\r\n ],\r\n exports: [\r\n ProductStockComponent\r\n ]\r\n})\r\nexport class ProductStockModule {\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductDeliveryComponent} from './product-delivery.component';\r\nimport {IconModule} from '@colijnit/corecomponents_v12';\r\nimport {PipeModule} from '../../pipe/pipe.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IconModule,\r\n PipeModule\r\n ],\r\n declarations: [\r\n ProductDeliveryComponent\r\n ],\r\n exports: [\r\n ProductDeliveryComponent\r\n ]\r\n})\r\nexport class ProductDeliveryModule {\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductAdditionalInfoComponent} from './product-additional-info.component';\r\nimport {PipeModule} from '../../pipe/pipe.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n PipeModule\r\n ],\r\n declarations: [\r\n ProductAdditionalInfoComponent\r\n ],\r\n exports: [\r\n ProductAdditionalInfoComponent\r\n ]\r\n})\r\nexport class ProductAdditionalInfoModule {\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductPropertiesComponent} from './product-properties.component';\r\nimport {PipeModule} from '../../pipe/pipe.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n PipeModule\r\n ],\r\n declarations: [\r\n ProductPropertiesComponent\r\n ],\r\n exports: [\r\n ProductPropertiesComponent\r\n ]\r\n})\r\nexport class ProductPropertiesModule {\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductDocumentsComponent} from './product-documents.component';\r\nimport {HeaderModule} from '../core/header/header.module';\r\nimport {PipeModule} from '../../pipe/pipe.module';\r\nimport {FilesUploadModule} from '@colijnit/sharedcomponents';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n HeaderModule,\r\n PipeModule,\r\n FilesUploadModule\r\n ],\r\n declarations: [\r\n ProductDocumentsComponent\r\n ],\r\n exports: [\r\n ProductDocumentsComponent\r\n ]\r\n})\r\nexport class ProductDocumentModule {\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductSymbolsComponent} from './product-symbols.component';\r\nimport {HeaderModule} from '../core/header/header.module';\r\nimport {PipeModule} from '../../pipe/pipe.module';\r\nimport {ScrollContainerModule, TileModule} from '@colijnit/corecomponents_v12';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n HeaderModule,\r\n PipeModule,\r\n ScrollContainerModule,\r\n TileModule\r\n ],\r\n declarations: [\r\n ProductSymbolsComponent\r\n ],\r\n exports: [\r\n ProductSymbolsComponent\r\n ]\r\n})\r\nexport class ProductSymbolsModule {\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductInfoTabsComponent} from './product-info-tabs.component';\r\nimport {PipeModule} from '../../pipe/pipe.module';\r\nimport {ProductAdditionalInfoModule} from '../product-additional-info/product-additional-info.module';\r\nimport {ProductPropertiesModule} from '../product-properties/product-properties.module';\r\nimport {ProductDocumentModule} from '../product-documents/product-document.module';\r\nimport {ProductSymbolsModule} from '../product-symbols/product-symbols.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n PipeModule,\r\n ProductAdditionalInfoModule,\r\n ProductPropertiesModule,\r\n ProductDocumentModule,\r\n ProductSymbolsModule\r\n ],\r\n declarations: [\r\n ProductInfoTabsComponent\r\n ],\r\n exports: [\r\n ProductInfoTabsComponent\r\n ]\r\n})\r\nexport class ProductInfoTabsModule {\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductDialogComponent} from \"./product-dialog.component\";\r\nimport {PipeModule} from \"../../pipe/pipe.module\";\r\nimport {ProductRelatedModule} from \"../product-related/product-related.module\";\r\nimport {IconModule} from \"@colijnit/corecomponents_v12\";\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n PipeModule,\r\n ProductRelatedModule,\r\n IconModule\r\n ],\r\n declarations: [\r\n ProductDialogComponent\r\n ],\r\n exports: [\r\n ProductDialogComponent\r\n ]\r\n})\r\nexport class ProductDialogModule {\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {RenderCarouselComponent} from \"./render-carousel.component\";\r\nimport {IconCollapseHandleModule, IconModule, LoaderModule, ScrollContainerModule} from \"@colijnit/corecomponents_v12\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n LoaderModule,\r\n ScrollContainerModule,\r\n IconModule,\r\n IconCollapseHandleModule\r\n ],\r\n declarations: [\r\n RenderCarouselComponent\r\n ],\r\n exports: [\r\n RenderCarouselComponent\r\n ]\r\n})\r\nexport class RenderCarouselModule {\r\n}\r\n","import {CUSTOM_ELEMENTS_SCHEMA, NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductPageComponent} from './product-page.component';\r\nimport {ProductSelectorTypeModule} from '../product-selector-type/product-selector-type.module';\r\nimport {ImageCarouselModule} from '../image-carousel/image-carousel.module';\r\nimport {ProductDescriptionModule} from '../product-description/product-description.module';\r\nimport {ProductAdditionalDescriptionModule} from '../product-additional-description/product-additional-description.module';\r\nimport {ProductPriceModule} from '../product-price/product-price.module';\r\nimport {ProductAddtocartModule} from '../product-addtocart/product-addtocart.module';\r\nimport {ProductRelatedModule} from '../product-related/product-related.module';\r\nimport {ProductStockModule} from '../product-stock/product-stock.module';\r\nimport {ProductDeliveryModule} from '../product-delivery/product-delivery.module';\r\nimport {ProductInfoTabsModule} from '../product-info-tabs/product-info-tabs.module';\r\nimport {PipeModule} from '../../pipe/pipe.module';\r\nimport {ProductDialogModule} from \"../product-dialog/product-dialog.module\";\r\nimport {LoaderModule, IconModule} from \"@colijnit/corecomponents_v12\";\r\nimport {RenderCarouselModule} from \"../render-carousel/render-carousel.module\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ProductSelectorTypeModule,\r\n ImageCarouselModule,\r\n IconModule,\r\n ProductDescriptionModule,\r\n ProductAdditionalDescriptionModule,\r\n ProductPriceModule,\r\n ProductAddtocartModule,\r\n ProductRelatedModule,\r\n ProductStockModule,\r\n ProductDeliveryModule,\r\n ProductInfoTabsModule,\r\n PipeModule,\r\n ProductDialogModule,\r\n LoaderModule,\r\n RenderCarouselModule\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n declarations: [\r\n ProductPageComponent\r\n ],\r\n exports: [\r\n ProductPageComponent\r\n ]\r\n})\r\nexport class ProductPageModule {\r\n}\r\n","import {Inject, Injectable, PLATFORM_ID, Renderer2} from '@angular/core';\r\nimport {isPlatformBrowser} from '@angular/common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProductScriptLoaderService {\r\n\r\n private _scriptsOrLinksElements: any[] = [];\r\n\r\n constructor(\r\n @Inject(PLATFORM_ID)\r\n private platformId: any\r\n ) {\r\n\r\n }\r\n\r\n public loadScript(url: string, renderer: Renderer2): Promise<void> {\r\n return new Promise((resolve, reject) => {\r\n if (!isPlatformBrowser(this.platformId)) {\r\n reject('Not in browser environment');\r\n return;\r\n }\r\n\r\n const existingScript = document.getElementById(url);\r\n if (existingScript) {\r\n resolve(); // Script already loaded\r\n return;\r\n }\r\n\r\n const script = renderer.createElement('script');\r\n\r\n script.id = url;\r\n script.src = url;\r\n script.type = 'text/javascript';\r\n script.async = true;\r\n\r\n script.onload = () => resolve();\r\n script.onerror = (error) => reject(`Error loading script: ${url}`);\r\n\r\n renderer.appendChild(document.head, script);\r\n this._scriptsOrLinksElements.push(script);\r\n });\r\n }\r\n\r\n public unloadScripts(renderer: Renderer2): void {\r\n for (let i = this._scriptsOrLinksElements.length - 1; i >= 0; i--) {\r\n renderer.removeChild(document.head, this._scriptsOrLinksElements[i]);\r\n this._scriptsOrLinksElements.pop();\r\n }\r\n }\r\n\r\n public addStyleSheet(url: string, renderer: Renderer2): Promise<void> {\r\n return new Promise((resolve, reject) => {\r\n if (!isPlatformBrowser(this.platformId)) {\r\n reject('Not in browser environment');\r\n return;\r\n }\r\n\r\n const existingStyleSheet = document.getElementById(url);\r\n if (existingStyleSheet) {\r\n resolve(); // Script already loaded\r\n return;\r\n }\r\n\r\n const link = renderer.createElement('link');\r\n link.id = url;\r\n link.href = url;\r\n link.rel = 'stylesheet';\r\n\r\n link.onload = () => resolve();\r\n link.onerror = (error) => reject(`Error loading styleSheet: ${url}`);\r\n\r\n renderer.appendChild(document.head, link);\r\n this._scriptsOrLinksElements.push(link);\r\n });\r\n }\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n OnDestroy,\r\n Output,\r\n Renderer2,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {ProductScriptLoaderService} from '../../service/product-script-loader.service';\r\nimport {ExternalSourceParameter} from '@colijnit/articleapi/build/model/external-source-parameter.bo';\r\n\r\n@Component({\n selector: 'co-product-hd',\n template: `\r\n <hde-configurator #hdeConfigurator\r\n language=\"nl\"\r\n localizationFileExtension=\".json\"\r\n (configurationFinished)=\"handleConfigurationFinished($event)\"\r\n (configurationFailed)=\"handleError($event)\"\r\n >\r\n <hde-progress-bar></hde-progress-bar>\r\n </hde-configurator>\r\n `,\n encapsulation: ViewEncapsulation.None,\n standalone: false\n})\r\nexport class ProductHdComponent implements OnDestroy {\r\n @ViewChild('hdeConfigurator', {read: ElementRef}) set content(child) {\r\n this.hdeConfigurator = child;\r\n this._prepareAttributes();\r\n }\r\n\r\n @Input()\r\n public set sku(value: string) {\r\n this._sku = value;\r\n this._prepareAttributes();\r\n }\r\n\r\n public get sku(): string {\r\n return this._sku;\r\n }\r\n\r\n @Input()\r\n public token: string; //= \"eyJhbGciOiJSUzI1NiIsImtpZCI6IkYxOThERkVEOEUwQTQ1MzY3M0M1MUE2Rjk1QUVDQzU3RTM0NjM4RkRSUzI1NiIsInR5cCI6ImF0K2p3dCIsIng1dCI6IjhaamY3WTRLUlRaenhScHZsYTdNVi1OR09QMCJ9.eyJuYmYiOjE3MzcxMjQ2NDQsImV4cCI6MTczNzEyODI0NCwiaXNzIjoiaHR0cHM6Ly9ibXNpZGVudGl0eS1hY2NlcHRhbmNlLmF6dXJld2Vic2l0ZXMubmV0IiwiYXVkIjpbImNhdGFsb2dxdWVyeWFwaSIsImNvbmZpZ3VyYXRvcmFwaSIsInByb2R1Y3R2YXJpYW50Y29tbWFuZGFwaSIsInByb2R1Y3R2YXJpYW50cXVlcnlhcGkiXSwiY2xpZW50X2lkIjoiaW1wZXJzb25hdGlvbi5jbGllbnQiLCJzdWIiOiIwOTMwZDI4Mi05NGU4LTQ5MGEtOGI2NC1mYTk1YmIyYzE1ODIiLCJhdXRoX3RpbWUiOjE3MzcxMjQ2NDQsImlkcCI6ImxvY2FsIiwiZW52aXJvbm1lbnQiOiJNU0wiLCJzZWxsZXIiOiJTRTAwMDA5NiIsInNlbGxlcmd1aWQiOiIxMDk1MWJjNS1hZmMzLTQ1MGEtNmVkMS0wOGQ4NDNlNmE5OTQiLCJwZXJtaXNzaW9uIjpbInNhbGVzLmV4cG9ydHRlbXBsYXRlcy5yZWFkIiwiZG9jdW1lbnRsaWJyYXJ5LnRhZy5yZWFkIiwiZG9jdW1lbnRsaWJyYXJ5LmRvY3VtZW50LnJlYWQiLCJkb2N1bWVudGxpYnJhcnkudGFnZ3JvdXAucmVhZCIsInNhbGVzLm9yZGVyLndyaXRlIiwic2FsZXMuY3VzdG9tZXIucmVhZCIsInNhbGVzLm9yZGVyLmRlbGl2ZXJ5YWRkcmVzcy53cml0ZSIsInNlcnZpY2UucmVxdWVzdC5yZWFkIiwiY2F0YWxvZy50YWcucmVhZCIsInNhbGVzLm9yZGVyLnJlYWQiLCJzYWxlcy5jdXN0b21lci53cml0ZSIsInJlcXVlc3Rmb3JxdW90ZS53cml0ZSIsInNhbGVzLm9yZGVyLmJvb2siLCJyZXF1ZXN0Zm9ycXVvdGUucmVhZCIsInNhbGVzLmxlYWQucmVhZCIsInB1cmNoYXNlLm9yZGVyLnJlYWQiLCJzYWxlcy5xdW90ZS5yZWFkIiwic2FsZXMucXVvdGUud3JpdGUiLCJjYXRhbG9nLml0ZW0ucmVhZCIsInNhbGVzLmxlYWQud3JpdGUiLCJzZXJ2aWNlLnJlcXVlc3Quc3VibWl0Iiwic2FsZXMub3JkZXIuZGVsaXZlcnlhZGRyZXNzLnJlYWQiLCJwdXJjaGFzZS5vcmRlci53cml0ZSIsInB1cmNoYXNlLm9yZGVyLnByaWNlcy53cml0ZSIsInB1cmNoYXNlLm9yZGVyLnByaWNlcy5yZWFkIiwic2VydmljZS5yZXF1ZXN0LndyaXRlIiwiY2F0YWxvZy5jYXRhbG9nLnJlYWQiLCJjYXRhbG9nLmNhdGFsb2cud3JpdGUiLCJjYXRhbG9nLmN1cnJlbmN5LnJlYWQiLCJjYXRhbG9nLmN1cnJlbmN5LndyaXRlIiwiY2F0YWxvZy5pdGVtLndyaXRlIiwiY2F0YWxvZy5sb2NhbGl6YXRpb24ucmVhZCIsImNhdGFsb2cubG9jYWxpemF0aW9uLndyaXRlIiwiY2F0YWxvZy5wcm9kdWN0LnJlYWQiLCJjYXRhbG9nLnByb2R1Y3Qud3JpdGUiLCJjYXRhbG9nLnByb2R1Y3RzZXR0aW5nLnJlYWQiLCJjYXRhbG9nLnByb2R1Y3RzZXR0aW5nLndyaXRlIiwiY2F0YWxvZy5zZWxsZXIucmVhZCIsImNhdGFsb2cuc2VsbGVyLndyaXRlIiwiY2F0YWxvZy50YWcud3JpdGUiLCJjYXRhbG9nLnVvbS5yZWFkIiwiY2F0YWxvZy51b20ud3JpdGUiLCJjYXRhbG9nLnZhdGNhdGVnb3J5LnJlYWQiLCJjYXRhbG9nLnZhdGNhdGVnb3J5LndyaXRlIiwiY2F0YWxvZy52ZW5kb3IucmVhZCIsImNhdGFsb2cudmVuZG9yLndyaXRlIiwicHVyY2hhc2Uuc2VsbGVyLnJlYWQiLCJwdXJjaGFzZS5zZWxsZXIud3JpdGUiLCJjYXRhbG9nLmFydGljbGUucmVhZCIsImNhdGFsb2cuYXJ0aWNsZS53cml0ZSIsInNhbGVzLnF1b3RlLmxpbmVzLnJlYWQiLCJzYWxlcy5xdW90ZS5saW5lcy53cml0ZSIsInNhbGVzLnNlbGxlci5yZWFkIiwic2FsZXMuc2VsbGVyLndyaXRlIiwiYWNjb3VudGluZy52ZW5kb3JpbnZvaWNlLnJlYWQiLCJpZGVudGl0eS51c2VyLnJlYWQiLCJpZGVudGl0eS51c2VyLndyaXRlIiwiaWRlbnRpdHkucm9sZS5yZWFkIiwic2VsbGVyLnByb2R1Y3RwcmljZS5zZXR0aW5ncy5yZWFkIiwic2VsbGVyLnByb2R1Y3RwcmljZS5zZXR0aW5ncy53cml0ZSIsImNvbmZpZ3VyYXRvci5wdXJjaGFzZXByaWNlLnJlYWQiLCJzdG9jay5mYWJyaWMucmVhZCIsInNhbGVzLm9yZGVyLnBsYWNlIl0sIm5hbWUiOiJSb2JpbiIsImZhbWlseV9uYW1lIjoiZGUgV2ludGVyIChDb2xpam4tSVQpIiwicm9sZSI6WyJzZWxsZXIiLCJkZWFsZXJfbWFuYWdlciJdLCJpYXQiOjE3MzcxMjQ2NDQsInNjb3BlIjpbImNhdGFsb2dxdWVyeWFwaSIsImNvbmZpZ3VyYXRvcmFwaSIsInByb2R1Y3R2YXJpYW50Y29tbWFuZGFwaSIsInByb2R1Y3R2YXJpYW50cXVlcnlhcGkiXSwiYW1yIjpbImltcGVyc29uYXRpb24iXX0.IrmgJbyPrWwNYO1xgyFcV3OsmQ7qF5nbhux8opLz8VW4za3co4aXUE4E9HYBzJFpurcv9T7oL0AhbQq4zbjNSW973GYAFI_euIMZobtzXHK_coBuTxWXnfDC8MmFAJhduIt1HXgYVX6dtY_RWwaHfEIy4J5YBjxzWgHgDrRG_Edn5_QKfC6PuTzLUoHkIaulehGk8ptlRKwNoHiGAxkHt-grefBjPlyeW98O9PqPzl4_wR6P_c8wJQiFCjAPpADvkKuwdN06BJ2Q9mXQasYOom5M6f-B51PBRyajX-f20rA3jj16bRLnIqvWRZ-p-U2zxfWUKwBAXa-aEcLH6LHTAQ\";\r\n\r\n @Input()\r\n public variant: string = '';\r\n\r\n @Input()\r\n public urlParams: ExternalSourceParameter[] = [];\r\n\r\n @Output()\r\n public configuratorFinished: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n @Output()\r\n public configurationError: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n\r\n @HostBinding('class.co-product-hd')\r\n public showClass: boolean = true;\r\n\r\n public hdeConfigurator: ElementRef;\r\n\r\n private _sku: string;\r\n\r\n constructor(\r\n private _scriptLoader: ProductScriptLoaderService,\r\n private _renderer: Renderer2\r\n ) {\r\n }\r\n\r\n ngOnDestroy() {\r\n this._scriptLoader.unloadScripts(this._renderer);\r\n }\r\n\r\n public handleConfigurationFinished(event: CustomEvent): void {\r\n if (event.detail.variant && typeof event.detail.variant === 'string') {\r\n this.configuratorFinished.emit(event.detail.variant);\r\n } else {\r\n this.configuratorFinished.emit(this.variant);\r\n }\r\n }\r\n\r\n public handleError(event: CustomEvent): void {\r\n this.configurationError.emit(event.detail.status);\r\n }\r\n\r\n private _prepareAttributes(): void {\r\n if (this.hdeConfigurator && this.hdeConfigurator.nativeElement && this.urlParams && this.token && (this.sku || this.variant)) {\r\n //for local testing please turn off for packing and publishing!\r\n //this.prepareTestingUrlparams();\r\n\r\n this._prepareConfiguratorUrls();\r\n this.hdeConfigurator.nativeElement.setAttribute('bearerToken', this.token);\r\n if (this._sku) {\r\n this.hdeConfigurator.nativeElement.setAttribute('data-productId', this._sku);\r\n }\r\n if (this.variant) {\r\n this.hdeConfigurator.nativeElement.setAttribute('data-productVariantId', this.variant);\r\n }\r\n this._loadTheScripts();\r\n }\r\n }\r\n\r\n //set necessary references to configurator.\r\n private _prepareConfiguratorUrls(): void {\r\n //fetch the setting from the external source\r\n let apiurl: string = this.urlParams.find((item: ExternalSourceParameter) => item.key === 'apiurl').value;\r\n let productVariantCommandApiUrl: string = this.urlParams.find((item: ExternalSourceParameter) => item.key === 'productVariantCommandApiUrl').value;\r\n let productVariantQueryApiUrl: string = this.urlParams.find((item: ExternalSourceParameter) => item.key === 'productVariantQueryApiUrl').value;\r\n let localizationApiUrl: string = this.urlParams.find((item: ExternalSourceParameter) => item.key === 'localizationApiUrl').value;\r\n\r\n //apply to configurator\r\n this.hdeConfigurator.nativeElement.setAttribute('apiurl', apiurl);\r\n this.hdeConfigurator.nativeElement.setAttribute('productVariantCommandApiUrl', productVariantCommandApiUrl);\r\n this.hdeConfigurator.nativeElement.setAttribute('productVariantQueryApiUrl', productVariantQueryApiUrl);\r\n this.hdeConfigurator.nativeElement.setAttribute('localizationApiUrl', localizationApiUrl)\r\n }\r\n\r\n // load external scripts into client\r\n private async _loadTheScripts(): Promise<void> {\r\n let headerUrls: string = this.urlParams.find((item: ExternalSourceParameter) => item.key === 'header').value;\r\n let headerArray: string[] = headerUrls.replace(/\\s+/g, '').split(',');\r\n for (let i = 0; i < headerArray.length; i++) {\r\n await this._scriptLoader.loadScript(headerArray[i], this._renderer).catch((error) => console.error(error));\r\n }\r\n\r\n let styles: string = this.urlParams.find((item: ExternalSourceParameter) => item.key === 'stylesheet').value;\r\n let stylesArray: string[] = styles.replace(/\\s+/g, '').split(',');\r\n for (let j = 0; j < stylesArray.length; j++) {\r\n await this._scriptLoader.addStyleSheet(stylesArray[j], this._renderer);\r\n }\r\n\r\n //for local testing please turn off for packing and publishing!\r\n /*const scripts: string[] = [\r\n // hard-coded for now, should come from the external source\r\n 'https://hde-cdn.azureedge.net/libs/components/Configurator/1.0.33/polyfills.js',\r\n 'https://hde-cdn.azureedge.net/libs/components/Configurator/1.0.33/runtime.js',\r\n 'https://hde-cdn.azureedge.net/libs/components/Configurator/1.0.33/main.js'\r\n ]\r\n for (let i = 0; i < scripts.length; i++) {\r\n await this._scriptLoader.loadScript(scripts[i], this._renderer).catch((error) => console.error(error));\r\n }\r\n await this._scriptLoader.addStyleSheet('https://hde-cdn.azureedge.net/libs/components/Configurator/1.0.33/styles.css', this._renderer);*/\r\n }\r\n\r\n\r\n\r\n //for local testing please turn off for packing and publishing!\r\n /*private prepareTestingUrlparams(): void {\r\n let headers: ExternalSourceParameter = new ExternalSourceParameter();\r\n headers.id = 1;\r\n headers.key = 'header';\r\n headers.value = 'https://hde-cdn.azureedge.net/libs/components/Configurator/1.0.33/polyfills.js,https://hde-cdn.azureedge.net/libs/components/Configurator/1.0.33/runtime.js,https://hde-cdn.azureedge.net/libs/components/Configurator/1.0.33/main.js';\r\n let styles: ExternalSourceParameter = new ExternalSourceParameter();\r\n styles.id = 2;\r\n styles.key = 'stylesheet';\r\n styles.value = 'https://hde-cdn.azureedge.net/libs/components/Configurator/1.0.33/styles.css';\r\n this.urlParams.push(headers);\r\n this.urlParams.push(styles);\r\n let aurl: ExternalSourceParameter = new ExternalSourceParameter();\r\n aurl.id = 3;\r\n aurl.key = 'apiurl';\r\n aurl.value = 'https://bmsproductconfigurator-acceptance.azurewebsites.net/api/configurator/';\r\n let purl: ExternalSourceParameter = new ExternalSourceParameter();\r\n purl.id = 4;\r\n purl.key = 'productVariantCommandApiUrl';\r\n purl.value = 'https://bmsproductvariantcommand-acceptance.azurewebsites.net/';\r\n let qurl: ExternalSourceParameter = new ExternalSourceParameter();\r\n qurl.id = 5;\r\n qurl.key = 'productVariantQueryApiUrl';\r\n qurl.value = 'https://bmsproductvariantquery-acceptance.azurewebsites.net/';\r\n let lurl: ExternalSourceParameter = new ExternalSourceParameter();\r\n lurl.id = 6;\r\n lurl.key = 'localizationApiUrl';\r\n lurl.value = 'https://hde-cdn.azureedge.net/libs/BMS.DST.Localization/';\r\n this.urlParams.push(headers);\r\n this.urlParams.push(styles);\r\n this.urlParams.push(aurl);\r\n this.urlParams.push(purl);\r\n this.urlParams.push(qurl);\r\n this.urlParams.push(lurl);\r\n }*/\r\n}\r\n","import {CUSTOM_ELEMENTS_SCHEMA, NgModule, NO_ERRORS_SCHEMA} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductHdComponent} from './product-hd.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n ProductHdComponent\r\n ],\r\n schemas: [\r\n CUSTOM_ELEMENTS_SCHEMA,\r\n NO_ERRORS_SCHEMA\r\n ],\r\n exports: [\r\n ProductHdComponent\r\n ]\r\n})\r\nexport class ProductHdModule {\r\n}\r\n","import {Component, EventEmitter, HostBinding, Input, OnDestroy, OnInit, Output, ViewEncapsulation} from '@angular/core';\r\nimport {DomSanitizer, SafeResourceUrl} from '@angular/platform-browser';\r\nimport {ExternalSource} from '@colijnit/articleapi/build/model/external-source.bo';\r\nimport {ProductConnectorService} from '../../service/product-connector.service';\r\nimport {ArticleListObject} from '@colijnit/articleapi/build/model/article-list-object';\r\nimport {ProductEventService} from '../../service/product-event.service';\r\nimport {Subscription} from 'rxjs';\r\nimport {ProductSettingsService} from '../../service/product-settings.service';\r\nimport {ProductConnectorAdapterService} from '../../service/product-connector-adapter.service';\r\nimport {CatalogDefinition} from '@colijnit/articleapi/build/model/catalog-definition.bo';\r\nimport {ExternalSourceArticleAddInterface} from '@colijnit/articleapi/build/interface/external-source-article-add.interface';\r\nimport {ArticleListObjectExtended} from '@colijnit/articleapi/build/model/article-list-object-extended.bo';\r\nimport {ExternalCatalogStartupInfo} from '@colijnit/articleapi/build/model/external-catalog-startup-info';\r\nimport {ExternalSourceParameter} from '@colijnit/articleapi/build/model/external-source-parameter.bo';\r\n\r\n@Component({\r\n selector: 'co-product-external-source',\r\n template: `\r\n @if (loaded) {\r\n @if (showProduct) {\r\n <app-product-page\r\n [sku]=\"sku\"\r\n [settings]=\"externalSettings\"\r\n [externalSource]=\"externalSource\"\r\n ></app-product-page>\r\n }\r\n @if (showSource) {\r\n <iframe width=\"100%\" height=\"100%\" [src]=\"safeUrl\" frameborder=\"0\" allowfullscreen></iframe>\r\n }\r\n @if (showConfigurator) {\r\n <co-product-hd width=\"100%\" height=\"100%\"\r\n [sku]=\"sku\"\r\n [variant]=\"variant\"\r\n [token]=\"token\"\r\n [urlParams]=\"urlParams\"\r\n (configuratorFinished)=\"handleConfigurationFinished($event)\"></co-product-hd>\r\n }\r\n }\r\n `,\r\n providers: [\r\n ProductSettingsService,\r\n ProductConnectorAdapterService,\r\n ProductConnectorService\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n standalone: false\r\n})\r\nexport class ProductExternalSourceComponent implements OnInit, OnDestroy {\r\n\r\n @Input()\r\n public sku: string;\r\n\r\n @Input()\r\n public catalogDefinition: CatalogDefinition;\r\n\r\n @Input()\r\n public set externalSource(value: ExternalSource) {\r\n this._externalSource = value;\r\n this.loaded = false;\r\n this._prepareExternalSource();\r\n }\r\n\r\n public get externalSource(): ExternalSource {\r\n return this._externalSource;\r\n }\r\n\r\n @Input()\r\n public set externalCatalogStartupInfo(value: ExternalCatalogStartupInfo) {\r\n if (value) {\r\n this._externalCatalogStartupInfo = value;\r\n this.externalSource = value.externalSource;\r\n this.loaded = false;\r\n this._prepareExternalSource();\r\n }\r\n }\r\n\r\n public get externalCatalogStartupInfo(): ExternalCatalogStartupInfo {\r\n return this._externalCatalogStartupInfo;\r\n }\r\n\r\n @Input()\r\n public options: {};\r\n\r\n @Output()\r\n public addToCart: EventEmitter<ExternalSourceArticleAddInterface> = new EventEmitter<ExternalSourceArticleAddInterface>();\r\n\r\n @Output()\r\n public addToQuote: EventEmitter<ExternalSourceArticleAddInterface> = new EventEmitter<ExternalSourceArticleAddInterface>();\r\n\r\n @Output()\r\n public alternativeClick: EventEmitter<ArticleListObject> = new EventEmitter<ArticleListObject>();\r\n\r\n @Output()\r\n public configuratorFinished: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n @HostBinding('class.co-product-external-source')\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n public showProduct: boolean = false;\r\n public showConfigurator: boolean = false;\r\n public showSource: boolean = false;\r\n public safeUrl: SafeResourceUrl;\r\n public loaded: boolean = false;\r\n public externalUrl: string;\r\n public externalSettings: any = {};\r\n\r\n public token: string = \"\";//= \"eyJhbGciOiJSUzI1NiIsImtpZCI6IkYxOThERkVEOEUwQTQ1MzY3M0M1MUE2Rjk1QUVDQzU3RTM0NjM4RkRSUzI1NiIsInR5cCI6ImF0K2p3dCIsIng1dCI6IjhaamY3WTRLUlRaenhScHZsYTdNVi1OR09QMCJ9.eyJuYmYiOjE3MzIxOTkyOTUsImV4cCI6MTczMjIwMjg5NSwiaXNzIjoiaHR0cHM6Ly9ibXNpZGVudGl0eS1hY2NlcHRhbmNlLmF6dXJld2Vic2l0ZXMubmV0IiwiYXVkIjpbImNhdGFsb2dxdWVyeWFwaSIsImNvbmZpZ3VyYXRvcmFwaSIsInByb2R1Y3R2YXJpYW50Y29tbWFuZGFwaSIsInByb2R1Y3R2YXJpYW50cXVlcnlhcGkiXSwiY2xpZW50X2lkIjoiaW1wZXJzb25hdGlvbi5jbGllbnQiLCJzdWIiOiIwOTMwZDI4Mi05NGU4LTQ5MGEtOGI2NC1mYTk1YmIyYzE1ODIiLCJhdXRoX3RpbWUiOjE3MzIxOTkyOTUsImlkcCI6ImxvY2FsIiwiZW52aXJvbm1lbnQiOiJNU0wiLCJzZWxsZXIiOiJTRTAwMDA5NiIsInNlbGxlcmd1aWQiOiIxMDk1MWJjNS1hZmMzLTQ1MGEtNmVkMS0wOGQ4NDNlNmE5OTQiLCJwZXJtaXNzaW9uIjpbInNhbGVzLmV4cG9ydHRlbXBsYXRlcy5yZWFkIiwiZG9jdW1lbnRsaWJyYXJ5LnRhZy5yZWFkIiwiZG9jdW1lbnRsaWJyYXJ5LmRvY3VtZW50LnJlYWQiLCJkb2N1bWVudGxpYnJhcnkudGFnZ3JvdXAucmVhZCIsInNhbGVzLm9yZGVyLndyaXRlIiwic2FsZXMuY3VzdG9tZXIucmVhZCIsInNhbGVzLm9yZGVyLmRlbGl2ZXJ5YWRkcmVzcy53cml0ZSIsInNlcnZpY2UucmVxdWVzdC5yZWFkIiwiY2F0YWxvZy50YWcucmVhZCIsInNhbGVzLm9yZGVyLnJlYWQiLCJzYWxlcy5jdXN0b21lci53cml0ZSIsInJlcXVlc3Rmb3JxdW90ZS53cml0ZSIsInNhbGVzLm9yZGVyLmJvb2siLCJyZXF1ZXN0Zm9ycXVvdGUucmVhZCIsInNhbGVzLmxlYWQucmVhZCIsInB1cmNoYXNlLm9yZGVyLnJlYWQiLCJzYWxlcy5xdW90ZS5yZWFkIiwic2FsZXMucXVvdGUud3JpdGUiLCJjYXRhbG9nLml0ZW0ucmVhZCIsInNhbGVzLmxlYWQud3JpdGUiLCJzZXJ2aWNlLnJlcXVlc3Quc3VibWl0Iiwic2FsZXMub3JkZXIuZGVsaXZlcnlhZGRyZXNzLnJlYWQiLCJwdXJjaGFzZS5vcmRlci53cml0ZSIsInB1cmNoYXNlLm9yZGVyLnByaWNlcy53cml0ZSIsInB1cmNoYXNlLm9yZGVyLnByaWNlcy5yZWFkIiwic2VydmljZS5yZXF1ZXN0LndyaXRlIiwiY2F0YWxvZy5jYXRhbG9nLnJlYWQiLCJjYXRhbG9nLmNhdGFsb2cud3JpdGUiLCJjYXRhbG9nLmN1cnJlbmN5LnJlYWQiLCJjYXRhbG9nLmN1cnJlbmN5LndyaXRlIiwiY2F0YWxvZy5pdGVtLndyaXRlIiwiY2F0YWxvZy5sb2NhbGl6YXRpb24ucmVhZCIsImNhdGFsb2cubG9jYWxpemF0aW9uLndyaXRlIiwiY2F0YWxvZy5wcm9kdWN0LnJlYWQiLCJjYXRhbG9nLnByb2R1Y3Qud3JpdGUiLCJjYXRhbG9nLnByb2R1Y3RzZXR0aW5nLnJlYWQiLCJjYXRhbG9nLnByb2R1Y3RzZXR0aW5nLndyaXRlIiwiY2F0YWxvZy5zZWxsZXIucmVhZCIsImNhdGFsb2cuc2VsbGVyLndyaXRlIiwiY2F0YWxvZy50YWcud3JpdGUiLCJjYXRhbG9nLnVvbS5yZWFkIiwiY2F0YWxvZy51b20ud3JpdGUiLCJjYXRhbG9nLnZhdGNhdGVnb3J5LnJlYWQiLCJjYXRhbG9nLnZhdGNhdGVnb3J5LndyaXRlIiwiY2F0YWxvZy52ZW5kb3IucmVhZCIsImNhdGFsb2cudmVuZG9yLndyaXRlIiwicHVyY2hhc2Uuc2VsbGVyLnJlYWQiLCJwdXJjaGFzZS5zZWxsZXIud3JpdGUiLCJjYXRhbG9nLmFydGljbGUucmVhZCIsImNhdGFsb2cuYXJ0aWNsZS53cml0ZSIsInNhbGVzLnF1b3RlLmxpbmVzLnJlYWQiLCJzYWxlcy5xdW90ZS5saW5lcy53cml0ZSIsInNhbGVzLnNlbGxlci5yZWFkIiwic2FsZXMuc2VsbGVyLndyaXRlIiwiYWNjb3VudGluZy52ZW5kb3JpbnZvaWNlLnJlYWQiLCJpZGVudGl0eS51c2VyLnJlYWQiLCJpZGVudGl0eS51c2VyLndyaXRlIiwiaWRlbnRpdHkucm9sZS5yZWFkIiwic2VsbGVyLnByb2R1Y3RwcmljZS5zZXR0aW5ncy5yZWFkIiwic2VsbGVyLnByb2R1Y3RwcmljZS5zZXR0aW5ncy53cml0ZSIsImNvbmZpZ3VyYXRvci5wdXJjaGFzZXByaWNlLnJlYWQiLCJzdG9jay5mYWJyaWMucmVhZCJdLCJuYW1lIjoiUm9iaW4iLCJmYW1pbHlfbmFtZSI6ImRlIFdpbnRlciAoQ29saWpuLUlUKSIsInJvbGUiOlsic2VsbGVyIiwiZGVhbGVyX21hbmFnZXIiXSwiaWF0IjoxNzMyMTk5Mjk1LCJzY29wZSI6WyJjYXRhbG9ncXVlcnlhcGkiLCJjb25maWd1cmF0b3JhcGkiLCJwcm9kdWN0dmFyaWFudGNvbW1hbmRhcGkiLCJwcm9kdWN0dmFyaWFudHF1ZXJ5YXBpIl0sImFtciI6WyJpbXBlcnNvbmF0aW9uIl19.rbguVPnkXXDzsM6QKgXulhrF41jIjCuGDV13ig1GC8MewLCJ7wA038OSwT26sx2mCexjvuGYt45YScfPwfTkDy3ErPmHRods64X1dJWZnf-23NTP2iI32K_1vMZH5GOGbMzuFtbKAFQv4hgFAxoyWqFVWyJvuOtQcWyZStROyPHwjAnpnj-x1cVQpOhbO-kQUFvy_VUrPpF3aYVCcO2cFirQTXR6kxSGcYGGcsPY-_eiAd93UdG2EM6xLAocDLaFV72CQI6XEs0WQG1f4SqvH52v3OTkgWBLgYV35gpyIe0-2nazGL0R8pTNuDqrOb7OGmuTRMoTIiRi67-wTxx8cQ\";\r\n public variant: string = \"\";\r\n public urlParams: ExternalSourceParameter[] = [];\r\n\r\n\r\n\r\n private _externalSource: ExternalSource;\r\n private _externalCatalogStartupInfo: ExternalCatalogStartupInfo;\r\n private _subs: Subscription[] = [];\r\n\r\n constructor(\r\n private _sanitizer: DomSanitizer,\r\n private _productConnectorService: ProductConnectorService,\r\n private _appEventService: ProductEventService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this._subs.push(\r\n this._appEventService.onAddToCart.subscribe((data: { article: string | ArticleListObjectExtended, quantity: number }) => {\r\n this.addToCart.emit({\r\n article: data.article,\r\n quantity: data.quantity,\r\n catalogDefinition: this.catalogDefinition,\r\n externalSource: this._externalSource\r\n });\r\n }),\r\n this._appEventService.onAddToQuote.subscribe(json => {\r\n this.addToQuote.emit({\r\n article: json,\r\n quantity: 1,\r\n catalogDefinition: this.catalogDefinition,\r\n externalSource: this._externalSource\r\n });\r\n }),\r\n this._appEventService.onAlternativeClick.subscribe(article => this.alternativeClick.emit(article))\r\n )\r\n }\r\n\r\n ngOnDestroy() {\r\n this._subs.forEach(s => s.unsubscribe());\r\n }\r\n\r\n public handleConfigurationFinished(variantString: string) {\r\n this.configuratorFinished.emit(variantString);\r\n }\r\n\r\n private async _prepareExternalSource(): Promise<void> {\r\n if (!this._externalSource) {\r\n return;\r\n }\r\n this.externalUrl = undefined;\r\n this.externalSettings = {};\r\n if (this.externalSource.type === 'CATF') {\r\n await this._prepareCatFarm();\r\n } else if (this.externalSource.type === 'HTDL'){\r\n this._prepareConfigurator();\r\n } else {\r\n this._prepareSource();\r\n }\r\n }\r\n\r\n private async _prepareCatFarm(): Promise<void> {\r\n // get bundle settings from external source\r\n const bundleSettings: string = await this._productConnectorService.getProductBundleSettings(this.externalSource.url, parseInt(this.externalSource.schema, 0));\r\n this.externalSettings = JSON.parse(bundleSettings);\r\n if (this.options) {\r\n this.externalSettings.options = this.options;\r\n }\r\n // this.externalSettings.assetPath = \"https://cdn1.colijn-it.nl/content43\";\r\n // this.externalSettings.threeDAssetPath = \"https://cdn1.colijn-it.nl/content43\";\r\n if (this.externalSource.username && this.externalSource.password) {\r\n this.externalSettings.useLoginEncryption = true;\r\n this.externalSettings.username = this.externalSource.username;\r\n this.externalSettings.password = this.externalSource.password;\r\n }\r\n // finally show the catalog\r\n this.switchToProduct();\r\n this.loaded = true;\r\n }\r\n\r\n private _prepareConfigurator(): void {\r\n if(this.externalCatalogStartupInfo) {\r\n this.token = this.externalCatalogStartupInfo.token;\r\n this.sku = this.externalCatalogStartupInfo.externalGoodId;\r\n this.variant = this.externalCatalogStartupInfo.flattenedGoodId;\r\n this.urlParams = this.externalCatalogStartupInfo.externalSource.parameters;\r\n this.switchToConfigurator();\r\n this.loaded = true;\r\n }\r\n }\r\n\r\n private _prepareSource(): void {\r\n this.externalUrl = this.externalSource.url;\r\n this.safeUrl = this._sanitizer.bypassSecurityTrustResourceUrl(this.externalUrl);\r\n this.switchToSource();\r\n this.loaded = true;\r\n }\r\n\r\n private switchToProduct():void {\r\n this.showProduct = true;\r\n this.showConfigurator = false;\r\n this.showSource = false;\r\n }\r\n\r\n private switchToConfigurator():void {\r\n this.showProduct = false;\r\n this.showConfigurator = true;\r\n this.showSource = false;\r\n }\r\n\r\n private switchToSource():void {\r\n this.showProduct = false;\r\n this.showConfigurator = false;\r\n this.showSource = true;\r\n }\r\n\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductExternalSourceComponent} from './product-external-source.component';\r\nimport {ProductPageModule} from '../product-page/product-page.module';\r\nimport {ProductHdModule} from '../product-hd/product-hd.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ProductPageModule,\r\n ProductHdModule\r\n ],\r\n declarations: [\r\n ProductExternalSourceComponent\r\n ],\r\n exports: [\r\n ProductExternalSourceComponent\r\n ]\r\n})\r\nexport class ProductExternalSourceModule {\r\n}\r\n","import {CUSTOM_ELEMENTS_SCHEMA, NgModule, NO_ERRORS_SCHEMA} from '@angular/core';\r\nimport {IoneProductComponent} from './ione-product.component';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductPageModule} from './components/product-page/product-page.module';\r\nimport {ProductHdModule} from './components/product-hd/product-hd.module';\r\nimport {ProductExternalSourceModule} from './components/product-external-source/product-external-source.module';\r\nimport {ButtonModule} from '@colijnit/corecomponents_v12';\r\n// import {BrowserAnimationsModule} from '@angular/platform-browser/animations';\r\n\r\n@NgModule({\r\n imports: [\r\n // BrowserAnimationsModule,\r\n CommonModule,\r\n ProductPageModule,\r\n ProductHdModule,\r\n ProductExternalSourceModule,\r\n ButtonModule\r\n ],\r\n declarations: [\r\n IoneProductComponent\r\n ],\r\n exports: [\r\n IoneProductComponent\r\n ],\r\n schemas: [\r\n CUSTOM_ELEMENTS_SCHEMA,\r\n NO_ERRORS_SCHEMA\r\n ],\r\n bootstrap: [\r\n IoneProductComponent\r\n ]\r\n})\r\nexport class IoneProductModule {\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["RenderParameters","i1.ProductEventService","i1.JsonUtilsService","i2.DictionaryService","i1.ProductConnectorAdapterService","i2.ProductSettingsService","i1.DictionaryService","i1.IconCacheService","i2","i3.LocalizePipe","i1.ProductConnectorService","i2.ProductEventService","i3","i4","i2.LocalizePipe","i1.LocalizePipe","i2.PriceDisplayPipe","i2.ProductConnectorService","i3.ProductEventService","i4.ProductSettingsService","i5.ProductConnectorAdapterService","i7.LocalizePipe","i3.ProductConnectorAdapterService","i5.HeaderComponent","i2.IconCacheService","i4.LocalizePipe","i3.IconCacheService","i2.HeaderComponent","i1.HeaderComponent","i2.ProductAdditionalInfoComponent","i3.ProductPropertiesComponent","i4.ProductDocumentsComponent","i5.ProductSymbolsComponent","i6.LocalizePipe","i3.ProductConnectorService","i4.ProductConnectorAdapterService","i5.ProductEventService","i6.ProductRelatedComponent","i7","i8.LocalizePipe","i3.ProductSettingsService","i4.ProductEventService","i5.ProductSelectorTypeComponent","i6.ImageCarouselComponent","i8.ProductDescriptionComponent","i9.ProductAdditionalDescriptionComponent","i10.ProductPriceComponent","i11.ProductAddtocartComponent","i12.ProductRelatedComponent","i13.ProductStockComponent","i14.ProductDeliveryComponent","i15.ProductInfoTabsComponent","i16.ProductDialogComponent","i17.RenderCarouselComponent","i18.LocalizePipe","i4.LocalStorageService","i5.ProductPageComponent","i1.ProductScriptLoaderService","i4.ProductPageComponent","i5.ProductHdComponent"],"mappings":"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"}