@colijnit/product 1.9.5 → 2.9.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 (66) hide show
  1. package/app/components/product-additional-info/product-additional-info.component.d.ts +4 -3
  2. package/app/components/product-external-source/product-external-source.component.d.ts +30 -0
  3. package/app/components/product-external-source/product-external-source.module.d.ts +2 -0
  4. package/app/components/product-page/product-page.component.d.ts +4 -0
  5. package/app/components/product-page/product-page.module.d.ts +2 -0
  6. package/app/ione-product.component.d.ts +1 -3
  7. package/app/model/{settings.d.ts → productSettings.d.ts} +3 -2
  8. package/app/pipe/pipe.module.d.ts +2 -0
  9. package/app/service/product-connector-adapter.service.d.ts +8 -2
  10. package/app/service/product-connector.service.d.ts +10 -5
  11. package/app/service/product-settings.service.d.ts +3 -3
  12. package/bundles/colijnit-product.umd.js +1476 -1262
  13. package/bundles/colijnit-product.umd.js.map +1 -1
  14. package/bundles/colijnit-product.umd.min.js +2 -2
  15. package/bundles/colijnit-product.umd.min.js.map +1 -1
  16. package/colijnit-product.d.ts +29 -28
  17. package/colijnit-product.metadata.json +1 -1
  18. package/esm2015/app/components/product-additional-info/product-additional-info.component.js +23 -16
  19. package/esm2015/app/components/product-addtocart/product-addtocart.component.js +2 -2
  20. package/esm2015/app/components/product-delivery/product-delivery.component.js +1 -2
  21. package/esm2015/app/components/product-external-source/product-external-source.component.js +123 -0
  22. package/esm2015/app/components/product-external-source/product-external-source.module.js +23 -0
  23. package/esm2015/app/components/product-page/product-page.component.js +45 -15
  24. package/esm2015/app/components/product-page/product-page.module.js +66 -0
  25. package/esm2015/app/ione-product.component.js +38 -19
  26. package/esm2015/app/ione-product.module.js +8 -61
  27. package/esm2015/app/model/productSettings.js +16 -0
  28. package/esm2015/app/pipe/pipe.module.js +20 -0
  29. package/esm2015/app/product-version.js +3 -3
  30. package/esm2015/app/service/dictionary.service.js +1 -1
  31. package/esm2015/app/service/product-connector-adapter.service.js +34 -9
  32. package/esm2015/app/service/product-connector.service.js +33 -35
  33. package/esm2015/app/service/product-event.service.js +2 -6
  34. package/esm2015/app/service/product-settings.service.js +13 -74
  35. package/esm2015/colijnit-product.js +30 -29
  36. package/esm2015/public_api.js +3 -1
  37. package/esm5/app/components/product-additional-info/product-additional-info.component.js +43 -24
  38. package/esm5/app/components/product-addtocart/product-addtocart.component.js +2 -2
  39. package/esm5/app/components/product-delivery/product-delivery.component.js +1 -2
  40. package/esm5/app/components/product-external-source/product-external-source.component.js +126 -0
  41. package/esm5/app/components/product-external-source/product-external-source.module.js +26 -0
  42. package/esm5/app/components/product-page/product-page.component.js +49 -15
  43. package/esm5/app/components/product-page/product-page.module.js +69 -0
  44. package/esm5/app/ione-product.component.js +47 -20
  45. package/esm5/app/ione-product.module.js +8 -61
  46. package/esm5/app/model/productSettings.js +18 -0
  47. package/esm5/app/pipe/pipe.module.js +23 -0
  48. package/esm5/app/product-version.js +3 -3
  49. package/esm5/app/service/dictionary.service.js +1 -1
  50. package/esm5/app/service/product-connector-adapter.service.js +61 -10
  51. package/esm5/app/service/product-connector.service.js +65 -52
  52. package/esm5/app/service/product-event.service.js +2 -6
  53. package/esm5/app/service/product-settings.service.js +14 -74
  54. package/esm5/colijnit-product.js +30 -29
  55. package/esm5/public_api.js +3 -1
  56. package/fesm2015/colijnit-product.js +1189 -1043
  57. package/fesm2015/colijnit-product.js.map +1 -1
  58. package/fesm5/colijnit-product.js +1447 -1234
  59. package/fesm5/colijnit-product.js.map +1 -1
  60. package/package.json +5 -4
  61. package/public_api.d.ts +2 -0
  62. package/app/service/product-module.service.d.ts +0 -9
  63. package/esm2015/app/model/settings.js +0 -15
  64. package/esm2015/app/service/product-module.service.js +0 -39
  65. package/esm5/app/model/settings.js +0 -17
  66. package/esm5/app/service/product-module.service.js +0 -50
@@ -1 +1 @@
1
- {"version":3,"file":"colijnit-product.js","sources":["ng://@colijnit/product/app/product-version.ts","ng://@colijnit/product/app/components/product-description/product-description.component.ts","ng://@colijnit/product/app/service/product-connector-adapter.service.ts","ng://@colijnit/product/app/utils/json-utils.service.ts","ng://@colijnit/product/app/enum/language-code.enum.ts","ng://@colijnit/product/assets/dictionary/text.properties.ts","ng://@colijnit/product/app/service/dictionary.service.ts","ng://@colijnit/product/app/model/settings-options.ts","ng://@colijnit/product/app/model/render-modes.ts","ng://@colijnit/product/app/model/render-parameters.ts","ng://@colijnit/product/app/model/settings.ts","ng://@colijnit/product/app/service/product-settings.service.ts","ng://@colijnit/product/app/service/product-connector.service.ts","ng://@colijnit/product/app/service/product-event.service.ts","ng://@colijnit/product/app/enum/icon.enum.ts","ng://@colijnit/product/app/model/icon.ts","ng://@colijnit/product/app/service/icon-cache.service.ts","ng://@colijnit/product/app/components/image-carousel/image-carousel.component.ts","ng://@colijnit/product/app/model/stock-and-delivery.ts","ng://@colijnit/product/app/enum/selector-type.enum.ts","ng://@colijnit/product/app/components/product-page/product-page.component.ts","ng://@colijnit/product/app/components/product-documents/product-documents.component.ts","ng://@colijnit/product/app/components/product-related/product-related.component.ts","ng://@colijnit/product/app/components/core/header/header.component.ts","ng://@colijnit/product/app/components/product-info/product-info.component.ts","ng://@colijnit/product/app/service/product-module.service.ts","ng://@colijnit/product/app/utils/bit-utils.ts","ng://@colijnit/product/app/components/product-additional-info/product-additional-info.component.ts","ng://@colijnit/product/app/components/product-properties/product-properties.component.ts","ng://@colijnit/product/app/pipe/localize.pipe.ts","ng://@colijnit/product/app/components/product-delivery/product-delivery.component.ts","ng://@colijnit/product/app/components/product-stock/product-stock.component.ts","ng://@colijnit/product/app/components/product-symbols/product-symbols.component.ts","ng://@colijnit/product/app/components/product-price/product-price.component.ts","ng://@colijnit/product/app/components/product-addtocart/product-addtocart.component.ts","ng://@colijnit/product/app/components/product-selector-type/product-selector-type.component.ts","ng://@colijnit/product/app/ione-product.component.ts","ng://@colijnit/product/app/components/product-additional-description/product-additional-description.component.ts","ng://@colijnit/product/app/components/product-info-tabs/product-info-tabs.component.ts","ng://@colijnit/product/app/service/product-initializer.service.ts","ng://@colijnit/product/app/ione-product.module.ts","ng://@colijnit/product/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 = \"1.9.5\";\n public publishDate = \"21-6-2023 11:47:53\";\n}","import { Component, Input, OnInit } from '@angular/core';\nimport { ArticleFullObject } from '@colijnit/articleapi/build/model/article-full-object';\n\n@Component({\n selector: 'app-product-description',\n templateUrl: './product-description.component.html',\n styleUrls: ['./product-description.component.scss']\n})\nexport class ProductDescriptionComponent implements OnInit {\n\n @Input()\n public article: ArticleFullObject;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import {Injectable, OnDestroy} from '@angular/core';\r\nimport {Subject} 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\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\n providedIn: 'root'\r\n})\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\r\n private _boFactory: BusinessObjectFactory = new BusinessObjectFactory();\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.articleConnector.showLoader.unsubscribe();\r\n }\r\n\r\n public initConnector(options: Options): void {\r\n this.articleConnector = new Articles(options);\r\n options.session = this.articleConnector.session;\r\n this.articleConnector.showLoader.subscribe(value => this.showLoader.next(value));\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 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 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 showLoader: boolean = true,\r\n instanceId?: number,\r\n configuratorStatistics?: ConfiguratorStatisticsEnvironment\r\n ): Promise<string> {\r\n return this.articleConnector.getJsonArticleFlatTree(goodId, goodType, quantity, showLoader, instanceId, configuratorStatistics);\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): Promise<ArticleFullObject> {\r\n const response: DataServiceResponseData = await this.articleConnector.getArticleFullObject(goodId);\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}\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 \"nl\": {\r\n \"ADDITIONAL_DATA\": \"Extra informatie\",\r\n \"ALTERNATIVE_PRODUCTS\": \"Alternatieve producten\",\r\n \"ARTICLE_NUMBER\": \"Artikel nummer\",\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_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 },\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_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 }\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\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 _http: HttpClient,\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","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\n\r\nexport class Settings {\r\n\r\n public url: string;\r\n public schema: string;\r\n public version: string;\r\n public branch: string;\r\n public currency: number;\r\n public username: string;\r\n public password: string;\r\n public session: any = undefined;\r\n public useGroups: boolean = true;\r\n public useRenders: boolean = false;\r\n public useEncryption: boolean = true;\r\n public useMatch: boolean = false;\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 timeoutInMs: number;\r\n public languageCode: string;\r\n public options: SettingsOptions = new SettingsOptions();\r\n public renderParameters: RenderParameters = new RenderParameters();\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 { Settings } from '../model/settings';\r\nimport { SettingsOptions } from '../model/settings-options';\r\n\r\ndeclare let settings: any;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProductSettingsService {\r\n\r\n public set settings(value: Settings) {\r\n this._settings = value;\r\n }\r\n\r\n public get settings(): Settings {\r\n return this._settings;\r\n }\r\n\r\n public settingsLoaded: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n\r\n private _settings: Settings;\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(): 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 Settings(), jsonSettings);\r\n this.settings.options = Object.assign(new SettingsOptions(), this.settings.options);\r\n this.settingsFinished();\r\n }\r\n } else {\r\n this.settings = Object.assign(new Settings(), settings);\r\n this.settings.options = Object.assign(new SettingsOptions(), this.settings.options);\r\n this.settingsFinished();\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 Settings();\r\n }\r\n if (obj.hasOwnProperty('url')) {\r\n this.settings.url = obj['url'];\r\n this._dictionaryService.rootUrl = this.settings.url.replace('/ajaxservice', '');\r\n }\r\n if (obj.hasOwnProperty('schema')) {\r\n this.settings.schema = obj['schema'];\r\n }\r\n if (obj.hasOwnProperty('version')) {\r\n this.settings.version = obj['version'];\r\n }\r\n if (obj.hasOwnProperty('branch')) {\r\n this.settings.branch = obj['branch'];\r\n }\r\n if (obj.hasOwnProperty('currency')) {\r\n this.settings.currency = obj['currency'];\r\n }\r\n if (obj.hasOwnProperty('client')) {\r\n this.settings.client = obj['client'];\r\n }\r\n if (obj.hasOwnProperty('languageCode')) {\r\n this.settings.languageCode = obj['languageCode'];\r\n }\r\n if (obj.hasOwnProperty('username')) {\r\n this.settings.username = obj['username'];\r\n }\r\n if (obj.hasOwnProperty('password')) {\r\n this.settings.password = obj['password'];\r\n }\r\n if (obj.hasOwnProperty('timeoutInMs')) {\r\n this.settings.timeoutInMs = obj['timeoutInMs'];\r\n }\r\n if (obj.hasOwnProperty('session')) {\r\n this.settings.session = obj['session'];\r\n }\r\n if (obj.hasOwnProperty('useGroups')) {\r\n this.settings.useGroups = obj['useGroups'];\r\n }\r\n if (obj.hasOwnProperty('useEncryption')) {\r\n this.settings.useEncryption = obj['useEncryption'];\r\n }\r\n if (obj.hasOwnProperty('useMatch')) {\r\n this.settings.useMatch = obj['useMatch'];\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 if (obj.hasOwnProperty('currencySymbol')) {\r\n this.settings.currencySymbol = obj['currencySymbol'];\r\n }\r\n if (obj.hasOwnProperty('gtm')) {\r\n this.settings.gtm = obj['gtm'];\r\n }\r\n if (obj.hasOwnProperty('assetIndex')) {\r\n this.settings.assetIndex = obj['assetIndex'];\r\n }\r\n if (obj.hasOwnProperty('lightPresetsIndex')) {\r\n this.settings.lightPresetsIndex = obj['lightPresetsIndex'];\r\n }\r\n if (obj.hasOwnProperty('additionalTranslationFile')) {\r\n this.settings.additionalTranslationFile = obj['additionalTranslationFile'];\r\n }\r\n if (obj.hasOwnProperty('options')) {\r\n this.settings.options = obj['options'];\r\n }\r\n if (obj.hasOwnProperty('renderParameters')) {\r\n this.settings.renderParameters = obj['renderParameters'];\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\n\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 {Settings} from '../model/settings';\r\nimport {ConfiguratorStatisticsEnvironment} from '@colijnit/articleapi/build/model/configurator-statistics-environment';\r\nimport {DeliveryPrognosis} from '@colijnit/articleapi/build/model/delivery-prognosis';\r\nimport {DataServiceResponseData} from '@colijnit/ioneconnector/build/model/data-service-response-data';\r\nimport {DocumentContent} from '@colijnit/articleapi/build/model/document-content';\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\n providedIn: 'root'\r\n})\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\r\n private _shouldShowLoader: boolean;\r\n private _initializing = false;\r\n private _initialized = false;\r\n\r\n private readonly connectorOptions: Options = new Options();\r\n\r\n private readonly subs: Subscription[] = [];\r\n\r\n constructor(\r\n public connector: 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 initDefaultDevelopTestConnection(): 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: Settings = this._settingsService.settings;\r\n if (!settings) {\r\n throw Error('Settings are not defined!');\r\n }\r\n this.connectorOptions.url = settings.url;\r\n this.connectorOptions.schema = settings.schema;\r\n this.connectorOptions.version = settings.version;\r\n this.connectorOptions.branch = settings.branch;\r\n this.connectorOptions.username = settings.username;\r\n this.connectorOptions.password = settings.password;\r\n this.connectorOptions.session = settings.session;\r\n this.connectorOptions.currencyId = settings.currency;\r\n this.connectorOptions.useGroups = settings.useGroups;\r\n this.connectorOptions.useRenders = settings.useRenders;\r\n this.connectorOptions.useLoginEncryption = settings.useEncryption;\r\n this.connectorOptions.languageCode = settings.languageCode;\r\n\r\n this.connector.initConnector(this.connectorOptions);\r\n this._settingsService.settings.session = this.connectorOptions.session;\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 setInstance(instanceId: string): void {\r\n this.connector.setInstance(instanceId);\r\n }\r\n\r\n public async getFullArticle(sku: string): Promise<ArticleFullObject> {\r\n const goodId: number = await this.connector.getGoodIdFromArticleNr(sku);\r\n if (goodId) {\r\n return this.connector.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.connector.getDocumentContent(docId, thumbnail);\r\n }\r\n\r\n public getDeliveryPrognosis(goodId: number): Promise<DeliveryPrognosis> {\r\n return this.connector.getDeliveryPrognosis(goodId);\r\n }\r\n\r\n public async getSelectorDeliveryDate(): Promise<DeliveryPrognosis> {\r\n return this.connector.getSelectorDeliveryDate();\r\n }\r\n\r\n public getDeliveryDate2(goodId: number): Promise<DeliveryPrognosis> {\r\n return this.connector.getDeliveryDate2(goodId);\r\n }\r\n\r\n public getSuperArticle(id: string): Promise<SuperArticle> {\r\n return this.connector.getSuperArticle(id);\r\n }\r\n\r\n public getJsonArticleFlatTree(\r\n goodId: number,\r\n goodType: string,\r\n quantity: number,\r\n showLoader: boolean = true,\r\n instanceId?: number,\r\n configuratorStatistics?: ConfiguratorStatisticsEnvironment): Promise<string> {\r\n return this.connector.getJsonArticleFlatTree(goodId, goodType, quantity, showLoader, instanceId, configuratorStatistics);\r\n }\r\n\r\n public onShowLoaderChange(showLoader: boolean): void {\r\n this._shouldShowLoader = showLoader;\r\n }\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\n\r\n@Directive()\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProductEventService {\r\n\r\n @Output()\r\n public onAddToCart: Subject<string> = new Subject<string>();\r\n\r\n @Output()\r\n public onAlternativeClick: Subject<ArticleListObject> = new Subject<ArticleListObject>();\r\n\r\n @Output()\r\n public onAddToQuote: Subject<string> = new Subject<string>();\r\n\r\n @Output()\r\n public onForceRenderImage: Subject<void> = new Subject<void>();\r\n\r\n public onArticleReceived: Subject<ArticleQuickSel> = new Subject<ArticleQuickSel>();\r\n\r\n public onSelectionsReceived: Subject<Selection[]> = new Subject<Selection[]>();\r\n\r\n public onImageReceived: Subject<string> = new Subject<string>();\r\n\r\n public onRenderStarted: Subject<void> = new Subject<void>();\r\n\r\n public onRenderImageReceived: Subject<string> = new Subject<string>();\r\n\r\n public onDraftRenderImageReceived: Subject<string> = new Subject<string>();\r\n\r\n public onArticleInfoReceived: Subject<string> = new Subject<string>();\r\n\r\n public onUpdateProductInfoTab: Subject<number> = new Subject<number>();\r\n\r\n}\r\n","/** AUTO GENERATED FILE. DO NOT CHANGE.. **/\n\nexport enum IconEnum {\n AddToCartDrop = \"add_to_cart_drop\",\n DeliveryTruck = \"delivery_truck\",\n Download = \"download\",\n FullScreen = \"full_screen\",\n Location = \"location\",\n Logo = \"logo\",\n MagicWand = \"magic_wand\",\n NormalScreen = \"normal_screen\",\n Quote = \"quote\",\n Refresh = \"refresh\",\n ThreeD = \"three_d\",\n Truck = \"truck\",\n TwoD = \"two_d\",\n Warehouse = \"warehouse\"\n}","/** AUTO GENERATED FILE. DO NOT CHANGE.. **/\n\nexport const IconSvg: {[iconName: string]: string} = {\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>\",\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>\",\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>\",\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>\",\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>\",\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>\",\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>\",\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>\",\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>\",\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>\",\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>\",\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>\",\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>\",\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>\"\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 { ChangeDetectorRef, Component, ElementRef, HostBinding, HostListener, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { CoDocument } from '@colijnit/mainapi/build/model/co-document';\nimport { ProductConnectorService } from '../../service/product-connector.service';\nimport { ProductEventService } from '../../service/product-event.service';\nimport { Subscription } from 'rxjs';\nimport { IconEnum } from '../../enum/icon.enum';\nimport { IconCacheService } from '../../service/icon-cache.service';\nimport {DomSanitizer, SafeUrl} from '@angular/platform-browser';\nimport {DocumentContent} from '@colijnit/articleapi/build/model/document-content';\n\n@Component({\n selector: 'app-image-carousel',\n templateUrl: './image-carousel.component.html',\n styleUrls: ['./image-carousel.component.scss']\n})\nexport class ImageCarouselComponent implements OnInit, OnDestroy {\n\n public readonly icons: typeof IconEnum = IconEnum;\n\n public showLoader: boolean = false;\n\n @ViewChild('carousel', { read: ElementRef })\n public carousel: ElementRef;\n\n @Input()\n public showRefresh: boolean = false;\n\n @Input()\n public set images(value: CoDocument[]) {\n if (value && value.length > 0) {\n this._images = value;\n this._loadImages();\n this._changeDetector.detectChanges();\n }\n }\n\n @HostListener('window:resize')\n public handleWindowResize(): void {\n this.resizing = true;\n this._scrollCarouselToIndex();\n clearTimeout(this._resizeTimer);\n this._resizeTimer = setTimeout(() => {\n this.resizing = false;\n }, 200);\n }\n\n @HostListener('swipeleft')\n public gotoNextSlide(): void {\n this.currentIndex++;\n }\n\n @HostListener('swiperight')\n public gotoPrevSlide(): void {\n this.currentIndex--;\n }\n\n public isCurrentIndex(index: number): boolean {\n return this.currentIndex === index;\n }\n\n public get currentIndex(): number {\n return this._currentIndex;\n }\n\n public set currentIndex(value: number) {\n this._currentIndex = value;\n this._scrollCarouselToIndex();\n }\n\n @HostBinding('class.resizing')\n public resizing = false;\n\n public get images(): CoDocument[] {\n return this._images;\n }\n\n private _resizeTimer: any;\n\n private _currentIndex = 0;\n\n private _images = [];\n private _subs: Subscription[] = [];\n\n constructor(\n private _ione: ProductConnectorService,\n private _appEventService: ProductEventService,\n private _changeDetector: ChangeDetectorRef,\n private _domSanitizer: DomSanitizer,\n public iconCache: IconCacheService,\n ) {\n this._subs.push(\n this._appEventService.onRenderStarted.subscribe(() => {\n this.showLoader = true;\n }),\n this._appEventService.onDraftRenderImageReceived.subscribe((url: string) => {\n if (this._images[0] instanceof CoDocument) {\n this._images.unshift(url);\n } else {\n this._images[0] = url;\n }\n this.showLoader = false;\n }),\n );\n\n }\n\n ngOnInit() {\n }\n\n ngOnDestroy(): void {\n this.carousel = undefined;\n this._subs.forEach(s => s.unsubscribe());\n }\n\n public handleThumbClick(index: number): void {\n this.currentIndex = index;\n }\n\n public onForceRenderImage(): void {\n this._appEventService.onForceRenderImage.next();\n }\n\n public getImageSrc(image: CoDocument | CustomEvent): SafeUrl {\n let source = '';\n if (image instanceof CoDocument) {\n if (image.filePath) {\n source = image.filePath;\n } else {\n source = image.documentBodyAsDataUri;\n }\n } else if (image.detail !== undefined) {\n source = image.detail;\n }\n\n return this._domSanitizer.bypassSecurityTrustUrl(source);\n }\n\n private _loadImages(): void {\n if (this._images) {\n this._images.forEach((i: CoDocument) => {\n if (!i.documentBody && !i.filePath) {\n this._ione.getDocumentContent(i.documentId, false).then((content: DocumentContent) => {\n if (content) {\n i.documentBody = content.documentContent;\n }\n });\n }\n });\n }\n }\n\n private _scrollCarouselToIndex(): void {\n if (this.currentIndex > -1 && this.currentIndex <= this.images.length) {\n const movePx: number = this.currentIndex * this.carousel.nativeElement.clientWidth;\n if (this.carousel && this.carousel.nativeElement) {\n this.carousel.nativeElement.scrollLeft = movePx;\n // this.carousel.nativeElement.scrollTo({\n // left: movePx,\n // behavior: 'smooth'\n // });\n }\n }\n }\n\n}\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","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n Renderer2,\n ViewChild\n} from '@angular/core';\nimport { ProductConnectorService } from '../../service/product-connector.service';\nimport { ArticleFullObject } from '@colijnit/articleapi/build/model/article-full-object';\nimport { Subscription } from 'rxjs';\nimport { StockAndDelivery } from '../../model/stock-and-delivery';\nimport { SelectorType } from '../../enum/selector-type.enum';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { IconEnum } from '../../enum/icon.enum';\nimport { IconCacheService } from '../../service/icon-cache.service';\nimport { ProductSettingsService } from '../../service/product-settings.service';\nimport { ProductEventService } from '../../service/product-event.service';\nimport {DeliveryPrognosis} from '@colijnit/articleapi/build/model/delivery-prognosis';\n\n@Component({\n selector: 'app-product-page',\n templateUrl: './product-page.component.html',\n styleUrls: ['./product-page.component.scss'],\n animations: [\n trigger('toggleFullScreen', [\n state('fullscreen', style({'position': 'fixed', 'top': '0', 'left': '0', 'width': '100%', 'height': '100%'})),\n state('halfscreen', style({'position': '*', 'top': '*', 'left': '*', 'width': '*', 'height': '*'})),\n transition('halfscreen <=> fullscreen', animate('200ms ease-in-out')),\n ]),\n trigger('toggleTopLeft', [\n state('fullscreen', style({'position': 'fixed', 'top': '0', 'left': '0'})),\n state('halfscreen', style({'position': 'absolute', 'top': '*', 'left': '*'})),\n transition('halfscreen <=> fullscreen', animate('200ms ease-in-out')),\n ]),\n trigger('toggleTopRight', [\n state('fullscreen', style({'position': 'fixed', 'top': '0', 'right': '0'})),\n state('halfscreen', style({'position': '*', 'top': '*', 'right': '*'})),\n transition('halfscreen <=> fullscreen', animate('200ms ease-in-out')),\n ]),\n trigger('toggleFullScreenRight', [\n state('fullscreen', style({'position': 'fixed', 'width': '400px', 'top': '0', 'right': '0'})),\n state('halfscreen', style({'position': '*', 'width': '*', 'top': '*', 'right': '*'})),\n transition('halfscreen <=> fullscreen', animate('200ms ease-in-out')),\n ]),\n trigger('toggleVisibilityByState', [\n state('hide', style({'opacity': '0', 'display': 'none'})),\n state('show', style({'display': 'block', 'opacity': '1'})),\n transition('hide <=> show', animate('200ms 100ms ease-in-out')),\n ]),\n trigger('toggleVisibility', [\n state('void', style({'opacity': '0'})),\n state('*', style({'opacity': '1'})),\n transition('void => *', animate('200ms ease-in-out')),\n ])\n ]\n})\nexport class ProductPageComponent implements OnInit, OnDestroy, AfterViewInit {\n\n public readonly icon: typeof IconEnum = IconEnum;\n\n @ViewChild('configurator', { read: ElementRef })\n public configurator: ElementRef;\n\n @ViewChild('selections', { read: ElementRef })\n public selections: ElementRef;\n\n @ViewChild('fullscreenbutton', { read: ElementRef })\n public fullscreenbutton: ElementRef;\n\n @Input()\n public set sku(value: string) {\n if (value) {\n if (this.configuring) {\n this.show3D = false;\n this.fullScreen = false;\n this.configuring = false;\n this._changeDetector.detectChanges();\n }\n this._sku = value;\n this._getArticle();\n }\n }\n\n public get sku(): string {\n return this._sku;\n }\n\n public set fullScreen(value: boolean) {\n this._fullScreen = value;\n this.fullscreenAnimationEnd = true;\n this._changeDetector.detectChanges();\n // setTimeout(() => {\n // this.fullscreenAnimationEnd = true;\n // }, 400)\n }\n\n public get fullScreen(): boolean {\n return this._fullScreen;\n }\n\n public get fullScreenIcon(): IconEnum {\n return this.fullScreen ? this.icon.NormalScreen : this.icon.FullScreen;\n }\n\n public set currentView(value: SelectorType) {\n this._currentView = value;\n this.show2D = this._currentView === SelectorType.TwoD;\n this.show3D = this._currentView === SelectorType.ThreeD;\n this._changeDetector.detectChanges();\n }\n\n public get currentView(): SelectorType {\n return this._currentView;\n }\n\n public article: ArticleFullObject;\n public stockAndDelivery: StockAndDelivery;\n public configurable = false;\n public threeD = false;\n public selectorType: SelectorType;\n public show2D = true;\n public show3D = false;\n public configuring: boolean = false;\n public fullscreenAnimationEnd: boolean = false;\n public settingsLoaded: boolean = false;\n private _sku: string;\n private _initializedSub: Subscription;\n private _fullScreen: boolean = false;\n private _currentView: SelectorType;\n private _subs: Subscription[] = [];\n\n constructor(private _ione: ProductConnectorService,\n private _renderer: Renderer2,\n private _changeDetector: ChangeDetectorRef,\n public iconCache: IconCacheService,\n public settingsService: ProductSettingsService,\n public appEventService: ProductEventService\n ) {\n this._subs.push(\n this.appEventService.onForceRenderImage.subscribe((x) => {\n if (this.selections.nativeElement){\n this.selections.nativeElement.forceRenderImage();\n }\n }),\n this.settingsService.settingsLoaded.subscribe((loaded: boolean) => {\n this.settingsLoaded = loaded;\n })\n );\n\n }\n\n ngOnInit() {\n }\n\n ngAfterViewInit(): void {\n }\n\n ngOnDestroy(): void {\n this._subs.forEach(s => s.unsubscribe());\n if (this._initializedSub) {\n this._initializedSub.unsubscribe();\n }\n this.configurator = undefined;\n this.selections = undefined;\n this.fullscreenbutton = undefined;\n }\n\n public setInstance(event: CustomEvent): void {\n if (event.detail) {\n this._ione.setInstance(event.detail);\n }\n }\n\n public handleStartConfiguration(): void {\n this.configuring = true;\n this._changeDetector.detectChanges();\n }\n\n public showFullScreen(): void {\n this.fullScreen = !this.fullScreen;\n }\n\n private async _getArticle(): Promise<void> {\n if (this._initializedSub) {\n this._initializedSub.unsubscribe();\n }\n this._initializedSub = this._ione.controllerInitialized.subscribe(async (init: boolean) => {\n if (init) {\n this._ione.getFullArticle(this._sku).then((article: ArticleFullObject) => {\n this.article = article;\n this.configurable = this.article.goodType === 'B';\n if (this.configurable) {\n this.currentView = SelectorType.TwoD;\n }\n this.threeD = this.article.is3D;\n this.selectorType = this.article.selectorTypeCustomer;\n this._ione.getDeliveryPrognosis(this.article.goodId).then((stockInfo: DeliveryPrognosis) => {\n const stockAndDelivery: DeliveryPrognosis = stockInfo;\n this.stockAndDelivery = new StockAndDelivery(0, stockAndDelivery.returnValue ? stockAndDelivery.returnValue : ' ');\n this._changeDetector.detectChanges();\n });\n this._changeDetector.detectChanges();\n });\n }\n });\n }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { CoDocument } from '@colijnit/mainapi/build/model/co-document';\nimport { IconEnum } from '../../enum/icon.enum';\nimport { ProductConnectorService } from '../../service/product-connector.service';\nimport { IconCacheService } from '../../service/icon-cache.service';\n\n@Component({\n selector: 'app-product-documents',\n templateUrl: './product-documents.component.html',\n styleUrls: ['./product-documents.component.css']\n})\nexport class ProductDocumentsComponent {\n\n public readonly icon: typeof IconEnum = IconEnum;\n\n @Input()\n public showLabel: boolean = false;\n\n @Input()\n public documents: CoDocument[] = [];\n\n constructor(public iconCache: IconCacheService) { }\n\n}\n","import { Component, Input } from '@angular/core';\nimport { ArticleListObject } from '@colijnit/articleapi/build/model/article-list-object';\nimport { ProductConnectorService } from '../../service/product-connector.service';\nimport { ProductEventService } from '../../service/product-event.service';\nimport {DocumentContent} from '@colijnit/articleapi/build/model/document-content';\n\n@Component({\n selector: 'app-product-related',\n templateUrl: './product-related.component.html',\n styleUrls: ['./product-related.component.scss']\n})\nexport class ProductRelatedComponent {\n\n @Input()\n public refType: number;\n\n @Input()\n public label: string;\n\n @Input()\n public isSmallModus: boolean = true;\n\n @Input()\n public set articles(value: ArticleListObject[]) {\n if (value) {\n if (this.refType && this.refType !== undefined) {\n if (value.length > 0) {\n value.forEach((x: ArticleListObject) => {\n if (x.refType === this.refType) {\n this._articles.push(x);\n }\n });\n }\n } else {\n this._articles = value;\n }\n this._loadImages();\n }\n }\n\n public get articles(): ArticleListObject[] {\n return this._articles;\n }\n\n private _articles: ArticleListObject[] = [];\n\n constructor(\n private _iOne: ProductConnectorService,\n private _appEventService: ProductEventService\n ) { }\n\n public handleContentClick(article: ArticleListObject): void {\n this._appEventService.onAlternativeClick.next(article);\n }\n\n private _loadImages(): void {\n this._articles.forEach((a: ArticleListObject) => {\n if (!a.image.documentBody) {\n this._iOne.getDocumentContent(a.image.documentId).then((content: DocumentContent) => {\n if (content) {\n a.image.documentBody = content.documentContent;\n }\n });\n }\n });\n }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss']\n})\nexport class HeaderComponent implements OnInit {\n\n @Input()\n public label: string;\n\n @Input()\n public amount: number;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ArticleFullObject } from '@colijnit/articleapi/build/model/article-full-object';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\n\nexport enum TabType {\n Additional = 'additional',\n Properties = 'properties'\n}\n\n@Component({\n selector: 'app-product-info',\n templateUrl: './product-info.component.html',\n styleUrls: ['./product-info.component.scss'],\n animations: [\n trigger('showContent', [\n state('void', style({'opacity': '0'})),\n state('*', style({'opacity': '1'})),\n transition('void => *', animate('200ms 100ms ease-in-out')),\n ])\n ]\n})\nexport class ProductInfoComponent implements OnInit {\n\n public readonly tabType: typeof TabType = TabType;\n\n @Input()\n public article: ArticleFullObject;\n\n public currentTab: TabType = TabType.Additional;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n public switchTab(tab: TabType): void {\n this.currentTab = tab;\n }\n\n}\n","import { Injectable } from '@angular/core';\r\nimport { ProductConnectorService } from './product-connector.service';\r\nimport { SuperArticle } from '@colijnit/articleapi/build/model/super-article';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProductModuleService {\r\n\r\n private _superArticles: Map<string, SuperArticle> = new Map();\r\n\r\n constructor(\r\n private _iOneConnectorService: ProductConnectorService\r\n ) {}\r\n\r\n public async getArticle(id: string): Promise<SuperArticle> {\r\n return await this._getArticle(id);\r\n }\r\n\r\n private async _getArticle(id: string): Promise<SuperArticle> {\r\n if (this._superArticles.has(id)) {\r\n return this._superArticles.get(id);\r\n } else {\r\n const mainArticle = await this._iOneConnectorService.getSuperArticle(id);\r\n this._superArticles.set(id, mainArticle);\r\n return mainArticle;\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 { ChangeDetectorRef, Component, Input, OnInit, SecurityContext } from '@angular/core';\nimport { CoText } from '@colijnit/mainapi/build/model/co-text';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { ArticleFullObject } from '@colijnit/articleapi/build/model/article-full-object';\nimport { ProductModuleService } from '../../service/product-module.service';\nimport { SuperArticle } from '@colijnit/articleapi/build/model/super-article';\nimport { BitUtils } from '../../utils/bit-utils';\n\n@Component({\n selector: 'app-product-additional-info',\n templateUrl: './product-additional-info.component.html',\n styleUrls: ['./product-additional-info.component.scss']\n})\nexport class ProductAdditionalInfoComponent implements OnInit {\n\n @Input()\n public set article(value: ArticleFullObject) {\n if (value) {\n this._article = value;\n this._buildInfo().then(() => {\n this._changeDetector.detectChanges();\n });\n }\n }\n\n public get article(): ArticleFullObject {\n return this._article;\n }\n\n @Input()\n public showLabel: boolean = false;\n\n public textParts: SafeHtml[] = [];\n public info: string;\n\n private _article: ArticleFullObject;\n\n constructor(\n private _sanitizer: DomSanitizer,\n private _moduleService: ProductModuleService,\n private _changeDetector: ChangeDetectorRef\n ) {\n }\n\n ngOnInit() {\n }\n\n private _getTextsSuperArticle(): Promise<SafeHtml[]> {\n return new Promise((resolve: Function, reject: Function) => {\n const texts: SafeHtml[] = [];\n if (this.article.superArticleNr) {\n this._moduleService.getArticle(this.article.superArticleNr).then((mainArticle: SuperArticle) => {\n mainArticle.texts.forEach((txt: CoText) => {\n if (BitUtils.IsFullDescription(txt.publication)) {\n const safeTxt: SafeHtml = this._sanitizer.sanitize(SecurityContext.HTML, txt.text);\n texts.push(safeTxt);\n }\n });\n resolve(texts);\n }).catch(() => {\n resolve([]);\n });\n } else {\n resolve(texts);\n }\n });\n }\n\n private async _prepareArticleTexts(): Promise<void> {\n const texts: SafeHtml[] = await this._getTextsSuperArticle();\n if (texts.length > 0) {\n this.textParts.push(...texts);\n }\n if (this.article.texts) {\n this.article.texts.forEach((txt: CoText) => {\n if (BitUtils.IsFullDescription(txt.publication)) {\n const safeTxt: SafeHtml = this._sanitizer.sanitize(SecurityContext.HTML, txt.text);\n this.textParts.push(safeTxt);\n }\n });\n }\n }\n\n private async _buildInfo(): Promise<void> {\n this.textParts.length = 0;\n await this._prepareArticleTexts();\n if (this.textParts.length === 0) {\n if (this.article.additionalDescription) {\n this.textParts.push(this.article.additionalDescription);\n } else if (this.article.description) {\n this.textParts.push(this.article.description);\n }\n }\n return;\n }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ArticleFullObject } from '@colijnit/articleapi/build/model/article-full-object';\n\nexport const propertyMap: Map<string, string> = new Map([\n ['articleNr', 'ARTICLE_NUMBER'],\n ['catExtra', 'CATEGORY'],\n ['catType', 'CATEGORY_TYPE'],\n ['description', 'DESCRIPTION'],\n ['material', 'MATERIAL'],\n ['title', 'TITLE'],\n ['turnOverGroup', 'TURNOVERGROUP'],\n ['height', 'HEIGHT'],\n ['width', 'WIDTH']\n]);\n\n@Component({\n selector: 'app-product-properties',\n templateUrl: './product-properties.component.html',\n styleUrls: ['./product-properties.component.scss']\n})\nexport class ProductPropertiesComponent implements OnInit {\n\n @Input()\n public set article(value: ArticleFullObject) {\n this._article = value;\n this._prepareProperties();\n }\n\n public get article(): ArticleFullObject {\n return this._article;\n }\n\n @Input()\n public showLabel: boolean = false;\n\n public properties: {key: string, value: string}[] = [];\n\n private _article: ArticleFullObject;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n private _prepareProperties(): void {\n this.properties.length = 0;\n if (!this._article) {\n return;\n }\n propertyMap.forEach((value: string, key: string) => {\n if (this.article.hasOwnProperty(key)) {\n this.properties.push({key: value, value: this.article[key]});\n }\n });\n }\n\n}\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport { DictionaryService } from '../service/dictionary.service';\r\n\r\n@Pipe({\r\n name: 'localize'\r\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 { Component, Input, OnInit } from '@angular/core';\nimport { ProductConnectorService } from '../../service/product-connector.service';\nimport { IconCacheService } from '../../service/icon-cache.service';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { IconEnum } from '../../enum/icon.enum';\nimport { StockAndDelivery } from '../../model/stock-and-delivery';\nimport { LocalizePipe } from '../../pipe/localize.pipe';\n\n@Component({\n selector: 'app-product-delivery',\n templateUrl: './product-delivery.component.html',\n styleUrls: ['./product-delivery.component.scss'],\n providers: [ LocalizePipe ]\n})\nexport class ProductDeliveryComponent implements OnInit {\n\n public readonly icon: typeof IconEnum = IconEnum;\n\n @Input()\n public set stockAndDelivery(value: StockAndDelivery) {\n if (value) {\n this.deliveryDescription = value.deliveryDescription;\n if (this.deliveryDescription.length > 0 && this.deliveryDescription[0] === ' ') {\n this.deliveryDescription = this._localizePipe.transform('ASK_FOR_INFORMATION');\n }\n }\n }\n\n public deliveryDescription: string;\n public iconData: SafeHtml;\n\n constructor(\n private _localizePipe: LocalizePipe,\n private _iOne: ProductConnectorService,\n private _iconCache: IconCacheService\n ) {\n this.iconData = this._iconCache.getIcon(this.icon.Truck);\n }\n\n ngOnInit() {\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { ProductConnectorService } from '../../service/product-connector.service';\nimport { IconCacheService } from '../../service/icon-cache.service';\nimport { IconEnum } from '../../enum/icon.enum';\nimport { StockAndDelivery } from '../../model/stock-and-delivery';\n\n@Component({\n selector: 'app-product-stock',\n templateUrl: './product-stock.component.html',\n styleUrls: ['./product-stock.component.scss']\n})\nexport class ProductStockComponent implements OnInit {\n\n public readonly icon: typeof IconEnum = IconEnum;\n\n @Input()\n public set stockAndDelivery(value: StockAndDelivery) {\n if (value) {\n this.numberInStock = value.stock;\n }\n }\n\n public numberInStock: number;\n public iconData: SafeHtml;\n\n constructor(private _iOne: ProductConnectorService, private _iconCache: IconCacheService) {\n this.iconData = this._iconCache.getIcon(this.icon.Warehouse);\n }\n\n ngOnInit() {\n }\n\n}\n","import { Component, HostBinding, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-product-symbols',\n templateUrl: './product-symbols.component.html',\n styleUrls: ['./product-symbols.component.scss']\n})\nexport class ProductSymbolsComponent implements OnInit {\n\n @Input()\n public set symbols(value: any) {\n this._symbols = value;\n if (this._symbols && this._symbols.hasOwnProperty('fontCode')) {\n this._className = this._symbols['fontCode'] === 'VLOER' ? 'floor' : (this._className === 'WAS' ? 'ginetex' : '');\n }\n if (this._symbols && this._symbols.hasOwnProperty('symbolString')) {\n for (let i = 0; i < this._symbols['symbolString'].length; i++) {\n this.symbolStrings.push(this._symbols['symbolString'][i]);\n }\n }\n }\n\n public get symbols(): any {\n return this._symbols;\n }\n\n @HostBinding('class')\n public _className: string;\n\n public symbolStrings: string[] = [];\n\n private _symbols: any;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { ChangeDetectorRef, Component, Input, OnInit } from '@angular/core';\nimport { ArticlePricing } from '@colijnit/articleapi/build/model/article-pricing';\n\n@Component({\n selector: 'app-product-price',\n templateUrl: './product-price.component.html',\n styleUrls: ['./product-price.component.scss']\n})\nexport class ProductPriceComponent implements OnInit {\n\n @Input()\n public set pricing(value: any) {\n this._pricing = value;\n this._setPrices();\n }\n\n public get pricing(): any {\n return this._pricing;\n }\n\n @Input()\n public set configurable(value: boolean) {\n this._configurable = value;\n this._setPrices();\n }\n\n public fromPrice: number;\n public toPrice: number;\n public valutaSign: string;\n public fromLabel: string;\n public toLabel: string;\n public showFromPrice: boolean = false;\n\n private _pricing: ArticlePricing;\n private _configurable: boolean = false;\n\n constructor(private _changeDetector: ChangeDetectorRef) { }\n\n ngOnInit() {\n }\n\n private _setPrices(): void {\n if (this._pricing) {\n this.valutaSign = this._getSign(this._pricing.retailCurrency);\n if (this._configurable) {\n this.fromPrice = this._pricing.retailBasePrice ? this._pricing.retailBasePrice : this._pricing.priceBaseline;\n this.fromLabel = this._pricing.retailBasePrice ? 'PRICE' : 'FROM';\n this.toPrice = undefined;\n } else {\n this.fromPrice = this._pricing.retailSuggestedPrice ? this._pricing.retailSuggestedPrice : this._pricing.retailBasePrice;\n this.fromLabel = this._pricing.retailSuggestedPrice ? 'Was' : 'PRICE';\n this.toPrice = this._pricing.retailSuggestedPrice ? this._pricing.retailBasePrice : undefined;\n this.toLabel = this._pricing.retailSuggestedPrice ? 'IS_NOW' : '';\n }\n this._changeDetector.detectChanges();\n }\n }\n\n private _getSign(currency: string): string {\n switch (currency) {\n case 'EUR':\n return '€';\n default:\n return '€';\n }\n }\n\n}\n","import { Component, ElementRef, EventEmitter, HostBinding, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\nimport { IconCacheService } from '../../service/icon-cache.service';\nimport { IconEnum } from '../../enum/icon.enum';\nimport { ArticleQuantity } from '../../model/article-quantity.model';\nimport { ProductConnectorService } from '../../service/product-connector.service';\nimport { ProductEventService } from '../../service/product-event.service';\nimport { ArticleFullObject } from '@colijnit/articleapi/build/model/article-full-object';\nimport {ArticleExtended} from '@colijnit/articleapi/build/model/article-extended.bo';\nimport {ConfiguratorStatisticsEnvironment} from '@colijnit/articleapi/build/model/configurator-statistics-environment';\nimport {ProductSettingsService} from '../../service/product-settings.service';\n\n@Component({\n selector: 'app-product-addtocart',\n templateUrl: './product-addtocart.component.html',\n styleUrls: ['./product-addtocart.component.scss']\n})\nexport class ProductAddtocartComponent implements OnInit, OnDestroy {\n\n public readonly icon: typeof IconEnum = IconEnum;\n\n @ViewChild('addtocartbutton', { read: ElementRef })\n public addToCartButton: ElementRef;\n\n @Input()\n public article: ArticleFullObject;\n\n @Input()\n public configurable: boolean = false;\n\n @Input()\n public configuring: boolean = false;\n\n @HostBinding('class.full-screen')\n @Input()\n public fullscreen: boolean = false;\n\n @Input()\n public set quantity(value: number) {\n this._quantity = Math.max(1, value);\n }\n\n public get quantity(): number {\n return this._quantity;\n }\n\n @Output()\n public startConfiguration: EventEmitter<void> = new EventEmitter<void>();\n\n @Output()\n public addToCartClick: EventEmitter<number> = new EventEmitter<number>();\n\n @Output()\n public addToQuoteClick: EventEmitter<number> = new EventEmitter<number>();\n\n public showQuoteButton: boolean = false;\n\n private _quantity = 1;\n\n constructor(\n public iconCache: IconCacheService,\n private _ioneControllerService: ProductConnectorService,\n private _appEventService: ProductEventService,\n private _settingsService: ProductSettingsService\n ) { }\n\n ngOnInit() {\n }\n\n ngOnDestroy(): void {\n this.addToCartButton = undefined;\n }\n\n public async handleAddToCartClick(quantity: number): Promise<void> {\n this._appEventService.onAddToCart.next(await this._getJSONFromArticleObject({article: this.article, quantity: quantity}));\n }\n\n public async handleAddToQuoteClick(quantity: number): Promise<void> {\n this._appEventService.onAddToQuote.next(await this._getJSONFromArticleObject({article: this.article, quantity: quantity}));\n }\n\n private async _getJSONFromArticleObject(article: ArticleQuantity): Promise<string> {\n const configuratorStatistics = new ConfiguratorStatisticsEnvironment();\n configuratorStatistics.userType = 'iOneProductPage';\n configuratorStatistics.transactionType = 'Sales';\n configuratorStatistics.actionDomain = 'bundle';\n configuratorStatistics.sessionId = this._settingsService.settings.session ? this._settingsService.settings.session.sessionId : 'unknown';\n configuratorStatistics.webHost = window.location.host;\n configuratorStatistics.bundleHost = window.location.host;\n return await this._ioneControllerService.getJsonArticleFlatTree(\n article.article.goodId, article.article.goodType, article.quantity, true, undefined, configuratorStatistics);\n }\n}\n","import { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { IconCacheService } from '../../service/icon-cache.service';\nimport { IconEnum } from '../../enum/icon.enum';\nimport { SelectorType } from '../../enum/selector-type.enum';\n\n@Component({\n selector: 'app-product-selector-type',\n templateUrl: './product-selector-type.component.html',\n styleUrls: ['./product-selector-type.component.scss']\n})\nexport class ProductSelectorTypeComponent implements OnInit {\n\n public readonly type: typeof SelectorType = SelectorType;\n public readonly icons: typeof IconEnum = IconEnum;\n\n @Input()\n public show2D: boolean;\n\n @Input()\n public show3D: boolean;\n\n @Input()\n public currentType: SelectorType;\n\n @Output()\n public onIconClick: EventEmitter<SelectorType> = new EventEmitter();\n\n @Output()\n public currentTypeChange: EventEmitter<SelectorType> = new EventEmitter();\n\n public twoDIcon: SafeHtml | null;\n public threeDIcon: SafeHtml | null;\n\n constructor(\n private _iconCache: IconCacheService,\n private _changeDetector: ChangeDetectorRef\n ) {\n this.twoDIcon = this._iconCache.getIcon(this.icons.TwoD);\n this.threeDIcon = this._iconCache.getIcon(this.icons.ThreeD);\n }\n\n ngOnInit() {\n }\n\n public handleIconClick(type: SelectorType): void {\n this.currentType = type;\n this.currentTypeChange.next(this.currentType);\n this.onIconClick.next(this.currentType);\n this._changeDetector.detectChanges();\n }\n\n}\n","import {\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n ViewEncapsulation\n} from '@angular/core';\nimport {JsonUtilsService} from './utils/json-utils.service';\nimport {ProductConnectorService} from './service/product-connector.service';\nimport {DictionaryService} from './service/dictionary.service';\nimport {Subscription} from 'rxjs';\nimport {ProductEventService} from './service/product-event.service';\nimport {ArticleListObject} from '@colijnit/articleapi/build/model/article-list-object';\nimport {ProductSettingsService} from './service/product-settings.service';\nimport {Selection} from '@colijnit/articleapi/build/model/selection';\nimport {ArticleQuickSel} from '@colijnit/articleapi/build/model/article-quick-sel';\n\n@Component({\n selector: 'app-ione-product',\n templateUrl: './ione-product.component.html',\n styleUrls: ['./ione-product.component.css'],\n encapsulation: ViewEncapsulation.Emulated\n})\nexport class IoneProductComponent implements OnChanges, OnDestroy {\n\n @Input()\n public sku: string;\n\n @Input()\n public set settings(value: any) {\n if (value) {\n let settings: any;\n if (typeof value === 'string') {\n settings = JSON.parse(value);\n } else {\n settings = value;\n }\n this._settingsService.createSettingsFromObject(settings);\n // this._initConnection(settings);\n }\n }\n\n public get settings(): any {\n return this._settings;\n }\n\n @Output()\n public onAddToCart: EventEmitter<string> = new EventEmitter<string>();\n\n @Output()\n public forceRenderImage: EventEmitter<void> = new EventEmitter<void>();\n\n @Output()\n public onAlternativeClick: EventEmitter<ArticleListObject> = new EventEmitter<ArticleListObject>();\n\n @Output()\n public onArticleInfoReceived: EventEmitter<string> = new EventEmitter<string>();\n\n @Output()\n public onArticleReceived: EventEmitter<ArticleQuickSel> = new EventEmitter<ArticleQuickSel>();\n\n @Output()\n public onSelectionsReceived: EventEmitter<Selection[]> = new EventEmitter<Selection[]>();\n\n @Output()\n public onAddToQuote: EventEmitter<string> = new EventEmitter<string>();\n\n public upAndLoaded = false;\n private _settings: any;\n private _subs: Subscription[] = [];\n\n constructor (\n private _dictionary: DictionaryService,\n private _jsonUtils: JsonUtilsService,\n private _ione: ProductConnectorService,\n private _changeDetector: ChangeDetectorRef,\n private _appEventService: ProductEventService,\n private _settingsService: ProductSettingsService\n ) {\n // this.sku = 'CF-HILL';\n // this.sku = 'CF-ALMADA';\n // this.sku = 'CF-39904ANT';\n // this.sku = 'CF-22346001';\n // this.sku = '104';\n // this.sku = '1000561986';\n // this.sku = '1000234793';\n // this.sku = '1066';\n // this.sku = '104';\n\n this._subs.push(\n this._settingsService.settingsLoaded.subscribe(loaded => this._handleSettingsLoaded(loaded)),\n // this._dictionary.dictionaryLoaded.subscribe(d => this.upAndLoaded = true),\n this._appEventService.onAddToCart.subscribe(json => this.onAddToCart.emit(json)),\n this._appEventService.onAddToQuote.subscribe(json => this.onAddToQuote.emit(json)),\n this._appEventService.onAlternativeClick.subscribe(article => this.onAlternativeClick.emit(article)),\n this._appEventService.onArticleInfoReceived.subscribe(info => this._handleAnswerInfoReceived(info)),\n this._appEventService.onArticleReceived.subscribe(article => this.onArticleReceived.emit(article)),\n this._appEventService.onSelectionsReceived.subscribe(selections => this.onSelectionsReceived.emit(selections)),\n );\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this._changeDetector.detectChanges();\n }\n\n ngOnDestroy(): void {\n this._subs.forEach(s => s.unsubscribe());\n }\n\n private _handleSettingsLoaded(loaded: boolean): void {\n if (loaded) {\n this.upAndLoaded = true;\n this._initConnection();\n }\n }\n\n private _handleAnswerInfoReceived(info: string): void {\n this.onArticleInfoReceived.next(info);\n }\n\n // we need to prepare the settings before we can use it for the 3d configurator bundle\n private async _initConnection(): Promise<void> {\n this._ione.initDefaultDevelopTestConnection();\n // settingsToUse.session = this._ione.connector.connector.session;\n setTimeout(() => {\n this._changeDetector.detectChanges();\n });\n // this._settings = settingsToUse;\n }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ArticleFullObject } from '@colijnit/articleapi/build/model/article-full-object';\nimport { CoText } from '@colijnit/mainapi/build/model/co-text';\nimport { ProductEventService } from '../../service/product-event.service';\nimport { BitUtils } from '../../utils/bit-utils';\n\n@Component({\n selector: 'app-product-additional-description',\n templateUrl: './product-additional-description.component.html',\n styleUrls: ['./product-additional-description.component.scss']\n})\nexport class ProductAdditionalDescriptionComponent implements OnInit {\n\n @Input()\n public set article(value: ArticleFullObject) {\n this._article = value;\n if (this._article) {\n this.description = this.article.additionalDescription;\n this._prepareDescription();\n }\n }\n\n public get article(): ArticleFullObject {\n return this._article;\n }\n\n public description: string;\n\n private _article: ArticleFullObject;\n\n constructor(\n private _appEventService: ProductEventService\n ) {}\n\n ngOnInit() {\n }\n\n public onReadMore(): void {\n this._appEventService.onUpdateProductInfoTab.next(0);\n }\n\n private _prepareDescription(): void {\n\n this.description = '';\n\n if (this.article.texts && this.article.texts.length > 0) {\n this.article.texts.forEach((txt: CoText) => {\n if (BitUtils.IsShortDescription(txt.publication)) {\n this.description += txt.text;\n }\n });\n\n this.description = this.description.replace(/<[^>]*>?/gm, '');\n if (this.description.length > 250) {\n this.description = this.description.substr(0, 250) + ' [..]';\n }\n }\n\n }\n\n}\n","import { ChangeDetectorRef, Component, ElementRef, Input, OnDestroy, ViewChild } from '@angular/core';\nimport { ArticleFullObject } from '@colijnit/articleapi/build/model/article-full-object';\nimport { Subscription } from 'rxjs';\nimport { ProductEventService } from '../../service/product-event.service';\n\n@Component({\n selector: 'app-product-info-tabs',\n templateUrl: './product-info-tabs.component.html',\n styleUrls: ['./product-info-tabs.component.scss']\n})\nexport class ProductInfoTabsComponent implements OnDestroy {\n\n public activeTab: number;\n public activeTabHeight: number = 0;\n\n @ViewChild('tabContent')\n public tabContent: ElementRef;\n\n public tabs: any[] = [];\n\n public articleObject: ArticleFullObject;\n\n @Input ()\n set article(value: ArticleFullObject) {\n if (value) {\n this.articleObject = value;\n this._setupTabs();\n this.updateTab(0);\n }\n }\n\n private _subs: Subscription[] = [];\n\n constructor(\n private _appEventService: ProductEventService\n ) {\n this._subs.push(\n this._appEventService.onUpdateProductInfoTab.subscribe((index: number) => {\n this.updateTab(index);\n this.tabContent.nativeElement.scrollIntoView({ behavior: 'smooth' });\n })\n );\n }\n\n ngOnDestroy(): void {\n this._subs.forEach(s => s.unsubscribe());\n }\n\n public updateTab(tabIndex: number) {\n this.activeTab = tabIndex;\n this.updateHeight(tabIndex);\n }\n\n public updateHeight(tabIndex: number): void {\n if (this.tabContent.nativeElement.children.length > 0) {\n if (this.tabContent.nativeElement.children[tabIndex] !== undefined) {\n this.activeTabHeight = this.tabContent.nativeElement.children[tabIndex].offsetHeight;\n }\n }\n }\n\n private _setupTabs(): void {\n this.tabs.push({ title: 'DESCRIPTION' });\n this.tabs.push({ title: 'FEATURES' });\n\n if (this.articleObject.documents !== undefined && this.articleObject.documents.length > 0) {\n this.tabs.push({ title: 'DOWNLOADS' });\n }\n\n if (this.articleObject.symbols !== undefined && this.articleObject.symbols.length > 0) {\n this.tabs.push({ title: 'SYMBOLS' });\n }\n\n }\n\n}\n","import {Injectable} from '@angular/core';\r\nimport {ProductSettingsService} from './product-settings.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ProductInitializerService {\r\n\r\n constructor(\r\n private _settingsService: ProductSettingsService\r\n ) {\r\n }\r\n\r\n public async initializeApp(): Promise<void> {\r\n return this._settingsService.initializeSettings();\r\n }\r\n\r\n}\r\n","import { APP_INITIALIZER, CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\n\nimport {\n ArticleTileModule,\n ButtonModule,\n FilesUploadModule,\n IconModule,\n InputTextModule,\n LevelIndicatorModule,\n LoaderModule,\n NumberPickerModule,\n PriceDisplayPipeModule,\n ScrollContainerModule,\n TileModule\n} from '@colijnit/corecomponents';\nimport { ProductDescriptionComponent } from './components/product-description/product-description.component';\nimport { ImageCarouselComponent } from './components/image-carousel/image-carousel.component';\nimport { ProductPageComponent } from './components/product-page/product-page.component';\nimport { IconCacheService } from './service/icon-cache.service';\nimport { ProductConnectorAdapterService } from './service/product-connector-adapter.service';\nimport { ProductConnectorService } from './service/product-connector.service';\nimport { ProductDocumentsComponent } from './components/product-documents/product-documents.component';\nimport { ProductRelatedComponent } from './components/product-related/product-related.component';\nimport { HeaderComponent } from './components/core/header/header.component';\nimport { ProductInfoComponent } from './components/product-info/product-info.component';\nimport { ProductAdditionalInfoComponent } from './components/product-additional-info/product-additional-info.component';\nimport { ProductPropertiesComponent } from './components/product-properties/product-properties.component';\nimport { ProductDeliveryComponent } from './components/product-delivery/product-delivery.component';\nimport { ProductStockComponent } from './components/product-stock/product-stock.component';\nimport { ProductSymbolsComponent } from './components/product-symbols/product-symbols.component';\nimport { ProductPriceComponent } from './components/product-price/product-price.component';\nimport { ProductAddtocartComponent } from './components/product-addtocart/product-addtocart.component';\nimport { LocalizePipe } from './pipe/localize.pipe';\nimport { ProductSelectorTypeComponent } from './components/product-selector-type/product-selector-type.component';\nimport { IoneProductComponent } from './ione-product.component';\nimport { CommonModule } from '@angular/common';\nimport { ProductAdditionalDescriptionComponent } from './components/product-additional-description/product-additional-description.component';\nimport { ProductInfoTabsComponent } from './components/product-info-tabs/product-info-tabs.component';\n// import { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { ProductInitializerService } from './service/product-initializer.service';\nimport { ProductSettingsService } from './service/product-settings.service';\n\nexport function initializeApp(context: ProductInitializerService) {\n const x = () => context.initializeApp();\n return x;\n}\n\n@NgModule({\n imports: [\n // BrowserAnimationsModule,\n CommonModule,\n ButtonModule,\n IconModule,\n NumberPickerModule,\n InputTextModule,\n FilesUploadModule,\n LoaderModule,\n ScrollContainerModule,\n TileModule,\n LevelIndicatorModule,\n PriceDisplayPipeModule,\n ArticleTileModule\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n declarations: [\n IoneProductComponent,\n ProductPageComponent,\n ImageCarouselComponent,\n ProductDescriptionComponent,\n ProductDocumentsComponent,\n ProductRelatedComponent,\n HeaderComponent,\n ProductInfoComponent,\n ProductAdditionalInfoComponent,\n ProductPropertiesComponent,\n ProductDeliveryComponent,\n ProductStockComponent,\n ProductSymbolsComponent,\n ProductPriceComponent,\n ProductAddtocartComponent,\n ProductInfoTabsComponent,\n LocalizePipe,\n ProductSelectorTypeComponent,\n ProductAdditionalDescriptionComponent\n ],\n entryComponents: [\n IoneProductComponent\n ],\n providers: [\n ProductSettingsService,\n ProductConnectorService,\n ProductConnectorAdapterService,\n IconCacheService,\n {\n provide: APP_INITIALIZER,\n useFactory: initializeApp,\n deps: [ProductInitializerService],\n multi: true\n }\n ],\n exports: [IoneProductComponent],\n bootstrap: [\n IoneProductComponent\n ]\n})\nexport class IoneProductModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n\nexport {HeaderComponent as ɵn} from './app/components/core/header/header.component';\nexport {ImageCarouselComponent as ɵj} from './app/components/image-carousel/image-carousel.component';\nexport {ProductAdditionalDescriptionComponent as ɵba} from './app/components/product-additional-description/product-additional-description.component';\nexport {ProductAdditionalInfoComponent as ɵp} from './app/components/product-additional-info/product-additional-info.component';\nexport {ProductAddtocartComponent as ɵx} from './app/components/product-addtocart/product-addtocart.component';\nexport {ProductDeliveryComponent as ɵs} from './app/components/product-delivery/product-delivery.component';\nexport {ProductDescriptionComponent as ɵk} from './app/components/product-description/product-description.component';\nexport {ProductDocumentsComponent as ɵl} from './app/components/product-documents/product-documents.component';\nexport {ProductInfoTabsComponent as ɵy} from './app/components/product-info-tabs/product-info-tabs.component';\nexport {ProductInfoComponent as ɵo} from './app/components/product-info/product-info.component';\nexport {ProductPageComponent as ɵh} from './app/components/product-page/product-page.component';\nexport {ProductPriceComponent as ɵw} from './app/components/product-price/product-price.component';\nexport {ProductPropertiesComponent as ɵr} from './app/components/product-properties/product-properties.component';\nexport {ProductRelatedComponent as ɵm} from './app/components/product-related/product-related.component';\nexport {ProductSelectorTypeComponent as ɵz} from './app/components/product-selector-type/product-selector-type.component';\nexport {ProductStockComponent as ɵu} from './app/components/product-stock/product-stock.component';\nexport {ProductSymbolsComponent as ɵv} from './app/components/product-symbols/product-symbols.component';\nexport {IoneProductComponent as ɵa} from './app/ione-product.component';\nexport {LocalizePipe as ɵt} from './app/pipe/localize.pipe';\nexport {DictionaryService as ɵb} from './app/service/dictionary.service';\nexport {IconCacheService as ɵi} from './app/service/icon-cache.service';\nexport {ProductConnectorAdapterService as ɵe} from './app/service/product-connector-adapter.service';\nexport {ProductConnectorService as ɵd} from './app/service/product-connector.service';\nexport {ProductEventService as ɵg} from './app/service/product-event.service';\nexport {ProductInitializerService as ɵbb} from './app/service/product-initializer.service';\nexport {ProductModuleService as ɵq} from './app/service/product-module.service';\nexport {ProductSettingsService as ɵf} from './app/service/product-settings.service';\nexport {JsonUtilsService as ɵc} from './app/utils/json-utils.service';"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"colijnit-product.js","sources":["ng://@colijnit/product/app/product-version.ts","ng://@colijnit/product/app/utils/json-utils.service.ts","ng://@colijnit/product/app/model/settings-options.ts","ng://@colijnit/product/app/model/render-modes.ts","ng://@colijnit/product/app/model/render-parameters.ts","ng://@colijnit/product/app/model/productSettings.ts","ng://@colijnit/product/app/service/product-connector-adapter.service.ts","ng://@colijnit/product/app/enum/language-code.enum.ts","ng://@colijnit/product/assets/dictionary/text.properties.ts","ng://@colijnit/product/app/service/dictionary.service.ts","ng://@colijnit/product/app/service/product-settings.service.ts","ng://@colijnit/product/app/service/product-connector.service.ts","ng://@colijnit/product/app/service/product-event.service.ts","ng://@colijnit/product/app/ione-product.component.ts","ng://@colijnit/product/app/service/product-initializer.service.ts","ng://@colijnit/product/app/components/product-external-source/product-external-source.component.ts","ng://@colijnit/product/app/model/stock-and-delivery.ts","ng://@colijnit/product/app/enum/selector-type.enum.ts","ng://@colijnit/product/app/enum/icon.enum.ts","ng://@colijnit/product/app/model/icon.ts","ng://@colijnit/product/app/service/icon-cache.service.ts","ng://@colijnit/product/app/components/product-page/product-page.component.ts","ng://@colijnit/product/app/components/product-selector-type/product-selector-type.component.ts","ng://@colijnit/product/app/components/image-carousel/image-carousel.component.ts","ng://@colijnit/product/app/components/product-description/product-description.component.ts","ng://@colijnit/product/app/utils/bit-utils.ts","ng://@colijnit/product/app/components/product-additional-description/product-additional-description.component.ts","ng://@colijnit/product/app/components/product-price/product-price.component.ts","ng://@colijnit/product/app/components/product-addtocart/product-addtocart.component.ts","ng://@colijnit/product/app/components/product-related/product-related.component.ts","ng://@colijnit/product/app/components/product-stock/product-stock.component.ts","ng://@colijnit/product/app/pipe/localize.pipe.ts","ng://@colijnit/product/app/components/product-delivery/product-delivery.component.ts","ng://@colijnit/product/app/components/product-info-tabs/product-info-tabs.component.ts","ng://@colijnit/product/app/pipe/pipe.module.ts","ng://@colijnit/product/app/components/product-documents/product-documents.component.ts","ng://@colijnit/product/app/components/core/header/header.component.ts","ng://@colijnit/product/app/components/product-info/product-info.component.ts","ng://@colijnit/product/app/components/product-additional-info/product-additional-info.component.ts","ng://@colijnit/product/app/components/product-properties/product-properties.component.ts","ng://@colijnit/product/app/components/product-symbols/product-symbols.component.ts","ng://@colijnit/product/app/components/product-page/product-page.module.ts","ng://@colijnit/product/app/components/product-external-source/product-external-source.module.ts","ng://@colijnit/product/app/ione-product.module.ts","ng://@colijnit/product/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 = \"2.9.0\";\n public publishDate = \"7-9-2023 15:18:44\";\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 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\n\r\nexport class ProductSettings {\r\n\r\n public url: string;\r\n public schema: string;\r\n public version: string;\r\n public branch: string;\r\n public currency: number;\r\n public username: string;\r\n public password: string;\r\n public session: any = undefined;\r\n public useGroups: boolean = true;\r\n public useRenders: boolean = false;\r\n public useLoginEncryption: boolean = true;\r\n public createWebOrder: boolean = true;\r\n public useMatch: boolean = false;\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 timeoutInMs: number;\r\n public languageCode: string;\r\n public options: SettingsOptions = new SettingsOptions();\r\n public renderParameters: RenderParameters = new RenderParameters();\r\n}\r\n","import {Injectable, OnDestroy} from '@angular/core';\r\nimport {Subject} 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 {ProductSettingsService} from './product-settings.service';\r\nimport {ProductSettings} from '../model/productSettings';\r\nimport {MainApi} from '@colijnit/mainapi';\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\r\n private _boFactory: BusinessObjectFactory = new BusinessObjectFactory();\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.articleConnector.showLoader.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.articleConnector.showLoader.subscribe(value => this.showLoader.next(value));\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 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 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 showLoader: boolean = true,\r\n instanceId?: any,\r\n configuratorStatistics?: ConfiguratorStatisticsEnvironment\r\n ): Promise<string> {\r\n return this.articleConnector.getJsonArticleFlatTree(goodId, goodType, quantity, showLoader, instanceId, configuratorStatistics);\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): Promise<ArticleFullObject> {\r\n const response: DataServiceResponseData = await this.articleConnector.getArticleFullObject(goodId);\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(sku: string, quantity: number): Promise<DataServiceResponseData> {\r\n return await this.transactionConnector.addWebSessionTransactionLine(sku, quantity);\r\n }\r\n\r\n public async getWebTransaction(): Promise<DataServiceResponseData> {\r\n return await this.transactionConnector.getWebSessionSalesOrder();\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 \"nl\": {\r\n \"ADDITIONAL_DATA\": \"Extra informatie\",\r\n \"ALTERNATIVE_PRODUCTS\": \"Alternatieve producten\",\r\n \"ARTICLE_NUMBER\": \"Artikel nummer\",\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_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 },\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_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 }\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\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 _http: HttpClient,\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(): 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 this.settingsFinished();\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 this.settingsFinished();\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\n\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 {DataServiceResponseData} from '@colijnit/ioneconnector/build/model/data-service-response-data';\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\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 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 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 showLoader: boolean = true,\r\n configuratorStatistics?: ConfiguratorStatisticsEnvironment): Promise<string> {\r\n return this._adapterService.getJsonArticleFlatTree(goodId, goodType, quantity, showLoader, this._instanceId, configuratorStatistics);\r\n }\r\n\r\n public async addWebSessionTransactionLine(sku: string, quantity: number): Promise<DataServiceResponseData> {\r\n return await this._adapterService.addWebSessionTransactionLine(sku, quantity);\r\n }\r\n\r\n public getWebTransaction(): void {\r\n this._adapterService.getWebTransaction().then((response) => {\r\n console.log(response);\r\n });\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 {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\n\r\n@Directive()\r\n@Injectable()\r\nexport class ProductEventService {\r\n\r\n @Output()\r\n public onAddToCart: Subject<string> = new Subject<string>();\r\n\r\n @Output()\r\n public onAlternativeClick: Subject<ArticleListObject> = new Subject<ArticleListObject>();\r\n\r\n @Output()\r\n public onAddToQuote: Subject<string> = new Subject<string>();\r\n\r\n @Output()\r\n public onForceRenderImage: Subject<void> = new Subject<void>();\r\n\r\n public onArticleReceived: Subject<ArticleQuickSel> = new Subject<ArticleQuickSel>();\r\n\r\n public onSelectionsReceived: Subject<Selection[]> = new Subject<Selection[]>();\r\n\r\n public onImageReceived: Subject<string> = new Subject<string>();\r\n\r\n public onRenderStarted: Subject<void> = new Subject<void>();\r\n\r\n public onRenderImageReceived: Subject<string> = new Subject<string>();\r\n\r\n public onDraftRenderImageReceived: Subject<string> = new Subject<string>();\r\n\r\n public onArticleInfoReceived: Subject<string> = new Subject<string>();\r\n\r\n public onUpdateProductInfoTab: Subject<number> = new Subject<number>();\r\n\r\n}\r\n","import {\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n ViewEncapsulation\n} from '@angular/core';\nimport {JsonUtilsService} from './utils/json-utils.service';\nimport {ProductConnectorService} from './service/product-connector.service';\nimport {DictionaryService} from './service/dictionary.service';\nimport {Subscription} from 'rxjs';\nimport {ProductEventService} from './service/product-event.service';\nimport {ArticleListObject} from '@colijnit/articleapi/build/model/article-list-object';\nimport {ProductSettingsService} from './service/product-settings.service';\nimport {Selection} from '@colijnit/articleapi/build/model/selection';\nimport {ArticleQuickSel} from '@colijnit/articleapi/build/model/article-quick-sel';\nimport {ProductConnectorAdapterService} from './service/product-connector-adapter.service';\n\n@Component({\n selector: 'app-ione-product',\n template: `\n <app-product-page [sku]=\"sku\"\n ></app-product-page>\n `,\n providers: [\n ProductEventService,\n ProductSettingsService,\n ProductConnectorAdapterService,\n ProductConnectorService\n ],\n encapsulation: ViewEncapsulation.Emulated,\n styleUrls: ['./ione-product.component.css']\n})\nexport class IoneProductComponent implements OnChanges, OnDestroy {\n\n @Input()\n public sku: string;\n\n @Input()\n public set settings(value: any) {\n if (value) {\n let settings: any;\n if (typeof value === 'string') {\n settings = JSON.parse(value);\n } else {\n settings = value;\n }\n this._settingsService.createSettingsFromObject(settings);\n // this._initConnection(settings);\n }\n }\n\n public get settings(): any {\n return this._settings;\n }\n\n @Output()\n public onAddToCart: EventEmitter<string> = new EventEmitter<string>();\n\n @Output()\n public forceRenderImage: EventEmitter<void> = new EventEmitter<void>();\n\n @Output()\n public onAlternativeClick: EventEmitter<ArticleListObject> = new EventEmitter<ArticleListObject>();\n\n @Output()\n public onArticleInfoReceived: EventEmitter<string> = new EventEmitter<string>();\n\n @Output()\n public onArticleReceived: EventEmitter<ArticleQuickSel> = new EventEmitter<ArticleQuickSel>();\n\n @Output()\n public onSelectionsReceived: EventEmitter<Selection[]> = new EventEmitter<Selection[]>();\n\n @Output()\n public onAddToQuote: EventEmitter<string> = new EventEmitter<string>();\n\n private _settings: any;\n private _subs: Subscription[] = [];\n\n constructor (\n private _dictionary: DictionaryService,\n private _jsonUtils: JsonUtilsService,\n private _ione: ProductConnectorService,\n private _changeDetector: ChangeDetectorRef,\n private _appEventService: ProductEventService,\n private _settingsService: ProductSettingsService\n ) {\n // this.sku = 'CF-HILL';\n // this.sku = 'CF-ALMADA';\n // this.sku = 'CF-39904ANT';\n // this.sku = 'CF-22346001';\n // this.sku = '104';\n // this.sku = '1000561986';\n // this.sku = '1000567768';\n // this.sku = '1000234793';\n // this.sku = '1066';\n // this.sku = '104';\n\n // this.sku = \"70000107\";\n\n this._subs.push(\n // this._dictionary.dictionaryLoaded.subscribe(d => this.upAndLoaded = true),\n this._appEventService.onAddToCart.subscribe((json: string) => {\n this._handleAddToCart(json);\n }),\n this._appEventService.onAddToQuote.subscribe(json => this.onAddToQuote.emit(json)),\n this._appEventService.onAlternativeClick.subscribe(article => this.onAlternativeClick.emit(article)),\n this._appEventService.onArticleInfoReceived.subscribe(info => this._handleAnswerInfoReceived(info)),\n this._appEventService.onArticleReceived.subscribe(article => this.onArticleReceived.emit(article)),\n this._appEventService.onSelectionsReceived.subscribe(selections => this.onSelectionsReceived.emit(selections)),\n );\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this._changeDetector.detectChanges();\n }\n\n ngOnDestroy(): void {\n this._subs.forEach(s => s.unsubscribe());\n }\n\n private _handleAnswerInfoReceived(info: string): void {\n this.onArticleInfoReceived.next(info);\n }\n\n private async _handleAddToCart(json: string): Promise<void> {\n if (this._settingsService.settings.createWebOrder) {\n if (json) {\n const articleTreeData = JSON.parse(json);\n if (articleTreeData.articleTree && articleTreeData.articleTree.article) {\n if (articleTreeData.articleTree.compositeGoods && Array.isArray(articleTreeData.articleTree.compositeGoods) &&\n articleTreeData.articleTree.compositeGoods.length > 0 && articleTreeData.articleTree.subArticles && Array.isArray(articleTreeData.articleTree.subArticles)) {\n for (let i = 0; i < articleTreeData.articleTree.compositeGoods.length - 1; i++) {\n const good = articleTreeData.articleTree.compositeGoods[i];\n const subArticle = articleTreeData.articleTree.subArticles[i];\n await this._ione.addWebSessionTransactionLine(subArticle.articleNumber, good.quantity);\n }\n } else {\n await this._ione.addWebSessionTransactionLine(articleTreeData.articleTree.article.articleNumber, 1);\n }\n }\n }\n }\n this.onAddToCart.emit(json);\n }\n}\n","import {Injectable} from '@angular/core';\r\nimport {ProductSettingsService} from './product-settings.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ProductInitializerService {\r\n\r\n constructor(\r\n private _settingsService: ProductSettingsService\r\n ) {\r\n }\r\n\r\n public async initializeApp(): Promise<void> {\r\n return this._settingsService.initializeSettings();\r\n }\r\n\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\n\r\n@Component({\r\n selector: 'co-product-external-source',\r\n template: `\r\n <ng-container *ngIf=\"loaded\">\r\n <ng-container *ngIf=\"showProduct\">\r\n <app-product-page\r\n [sku]=\"sku\"\r\n [settings]=\"externalSettings\"\r\n ></app-product-page>\r\n </ng-container>\r\n <ng-container *ngIf=\"!showProduct\">\r\n <iframe width=\"100%\" height=\"100%\" [src]=\"safeUrl\" frameborder=\"0\" allowfullscreen></iframe>\r\n </ng-container>\r\n </ng-container>\r\n `,\r\n providers: [\r\n ProductEventService,\r\n ProductSettingsService,\r\n ProductConnectorAdapterService,\r\n ProductConnectorService\r\n ],\r\n encapsulation: ViewEncapsulation.None\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 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 options: {};\r\n\r\n @Output()\r\n public addToCart: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n @Output()\r\n public addToQuote: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n @Output()\r\n public alternativeClick: EventEmitter<ArticleListObject> = new EventEmitter<ArticleListObject>();\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 safeUrl: SafeResourceUrl;\r\n public loaded: boolean = false;\r\n public externalUrl: string;\r\n public externalSettings: any = {};\r\n\r\n private _externalSource: ExternalSource;\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(json => this.addToCart.next(json)),\r\n this._appEventService.onAddToQuote.subscribe(json => this.addToQuote.next(json)),\r\n this._appEventService.onAlternativeClick.subscribe(article => this.alternativeClick.next(article))\r\n )\r\n }\r\n\r\n ngOnDestroy() {\r\n this._subs.forEach(s => s.unsubscribe());\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 // 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.showProduct = true;\r\n } else {\r\n this.externalUrl = this.externalSource.url;\r\n this.safeUrl = this._sanitizer.bypassSecurityTrustResourceUrl(this.externalUrl);\r\n this.showProduct = false;\r\n }\r\n this.loaded = true;\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.. **/\n\nexport enum IconEnum {\n AddToCartDrop = \"add_to_cart_drop\",\n DeliveryTruck = \"delivery_truck\",\n Download = \"download\",\n FullScreen = \"full_screen\",\n Location = \"location\",\n Logo = \"logo\",\n MagicWand = \"magic_wand\",\n NormalScreen = \"normal_screen\",\n Quote = \"quote\",\n Refresh = \"refresh\",\n ThreeD = \"three_d\",\n Truck = \"truck\",\n TwoD = \"two_d\",\n Warehouse = \"warehouse\"\n}","/** AUTO GENERATED FILE. DO NOT CHANGE.. **/\n\nexport const IconSvg: {[iconName: string]: string} = {\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>\",\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>\",\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>\",\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>\",\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>\",\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>\",\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>\",\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>\",\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>\",\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>\",\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>\",\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>\",\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>\",\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>\"\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 {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n Renderer2,\n ViewChild\n} from '@angular/core';\nimport { ProductConnectorService } from '../../service/product-connector.service';\nimport { ArticleFullObject } from '@colijnit/articleapi/build/model/article-full-object';\nimport { Subscription } from 'rxjs';\nimport { StockAndDelivery } from '../../model/stock-and-delivery';\nimport { SelectorType } from '../../enum/selector-type.enum';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { IconEnum } from '../../enum/icon.enum';\nimport { IconCacheService } from '../../service/icon-cache.service';\nimport { ProductSettingsService } from '../../service/product-settings.service';\nimport { ProductEventService } from '../../service/product-event.service';\nimport {DeliveryPrognosis} from '@colijnit/articleapi/build/model/delivery-prognosis';\n\n@Component({\n selector: 'app-product-page',\n templateUrl: './product-page.component.html',\n styleUrls: ['./product-page.component.scss'],\n animations: [\n trigger('toggleFullScreen', [\n state('fullscreen', style({'position': 'fixed', 'top': '0', 'left': '0', 'width': '100%', 'height': '100%'})),\n state('halfscreen', style({'position': '*', 'top': '*', 'left': '*', 'width': '*', 'height': '*'})),\n transition('halfscreen <=> fullscreen', animate('200ms ease-in-out')),\n ]),\n trigger('toggleTopLeft', [\n state('fullscreen', style({'position': 'fixed', 'top': '0', 'left': '0'})),\n state('halfscreen', style({'position': 'absolute', 'top': '*', 'left': '*'})),\n transition('halfscreen <=> fullscreen', animate('200ms ease-in-out')),\n ]),\n trigger('toggleTopRight', [\n state('fullscreen', style({'position': 'fixed', 'top': '0', 'right': '0'})),\n state('halfscreen', style({'position': '*', 'top': '*', 'right': '*'})),\n transition('halfscreen <=> fullscreen', animate('200ms ease-in-out')),\n ]),\n trigger('toggleFullScreenRight', [\n state('fullscreen', style({'position': 'fixed', 'width': '400px', 'top': '0', 'right': '0'})),\n state('halfscreen', style({'position': '*', 'width': '*', 'top': '*', 'right': '*'})),\n transition('halfscreen <=> fullscreen', animate('200ms ease-in-out')),\n ]),\n trigger('toggleVisibilityByState', [\n state('hide', style({'opacity': '0', 'display': 'none'})),\n state('show', style({'display': 'block', 'opacity': '1'})),\n transition('hide <=> show', animate('200ms 100ms ease-in-out')),\n ]),\n trigger('toggleVisibility', [\n state('void', style({'opacity': '0'})),\n state('*', style({'opacity': '1'})),\n transition('void => *', animate('200ms ease-in-out')),\n ])\n ]\n})\nexport class ProductPageComponent implements OnInit, OnDestroy, AfterViewInit {\n\n public readonly icon: typeof IconEnum = IconEnum;\n\n @ViewChild('configurator', { read: ElementRef })\n public configurator: ElementRef;\n\n @ViewChild('selections', { read: ElementRef })\n public selections: ElementRef;\n\n @ViewChild('fullscreenbutton', { read: ElementRef })\n public fullscreenbutton: ElementRef;\n\n @Input()\n public set sku(value: string) {\n if (value) {\n if (this.configuring) {\n this.show3D = false;\n this.fullScreen = false;\n this.configuring = false;\n this._changeDetector.detectChanges();\n }\n this._sku = value;\n this._getArticle();\n }\n }\n\n public get sku(): string {\n return this._sku;\n }\n\n @Input()\n public set settings(value: any) {\n if (value) {\n if (typeof value === 'string') {\n this._settings = JSON.parse(value);\n } else {\n this._settings = value;\n }\n }\n }\n\n public get settings(): any {\n return this._settings;\n }\n\n public set fullScreen(value: boolean) {\n this._fullScreen = value;\n this.fullscreenAnimationEnd = true;\n this._changeDetector.detectChanges();\n // setTimeout(() => {\n // this.fullscreenAnimationEnd = true;\n // }, 400)\n }\n\n public get fullScreen(): boolean {\n return this._fullScreen;\n }\n\n public get fullScreenIcon(): IconEnum {\n return this.fullScreen ? this.icon.NormalScreen : this.icon.FullScreen;\n }\n\n public set currentView(value: SelectorType) {\n this._currentView = value;\n this.show2D = this._currentView === SelectorType.TwoD;\n this.show3D = this._currentView === SelectorType.ThreeD;\n this._changeDetector.detectChanges();\n }\n\n public get currentView(): SelectorType {\n return this._currentView;\n }\n\n public article: ArticleFullObject;\n public stockAndDelivery: StockAndDelivery;\n public configurable = false;\n public threeD = false;\n public selectorType: SelectorType;\n public show2D = true;\n public show3D = false;\n public configuring: boolean = false;\n public fullscreenAnimationEnd: boolean = false;\n public settingsLoaded: boolean = false;\n private _sku: string;\n private _initializedSub: Subscription;\n private _fullScreen: boolean = false;\n private _currentView: SelectorType;\n private _subs: Subscription[] = [];\n private _settings: any;\n\n constructor(private _ione: ProductConnectorService,\n private _renderer: Renderer2,\n private _changeDetector: ChangeDetectorRef,\n public iconCache: IconCacheService,\n public settingsService: ProductSettingsService,\n public appEventService: ProductEventService\n ) {\n this._subs.push(\n this.appEventService.onForceRenderImage.subscribe((x) => {\n if (this.selections.nativeElement) {\n this.selections.nativeElement.forceRenderImage();\n }\n }),\n this.settingsService.settingsLoaded.subscribe(loaded => this._handleSettingsLoaded(loaded)),\n this._ione.controllerInitialized.subscribe((initialized: boolean) => {\n this.settingsLoaded = initialized;\n })\n );\n\n }\n\n ngOnInit() {\n if (this._settings) {\n this.settingsService.settings = undefined;\n this.settingsService.createSettingsFromObject(this._settings);\n } else {\n this._settings = this.settingsService.settings;\n }\n }\n\n ngAfterViewInit(): void {\n }\n\n ngOnDestroy(): void {\n this._subs.forEach(s => s.unsubscribe());\n if (this._initializedSub) {\n this._initializedSub.unsubscribe();\n }\n this.configurator = undefined;\n this.selections = undefined;\n this.fullscreenbutton = undefined;\n }\n\n public setInstance(event: CustomEvent): void {\n if (event.detail) {\n this._ione.setInstance(event.detail);\n }\n }\n\n public handleStartConfiguration(): void {\n this.configuring = true;\n this._changeDetector.detectChanges();\n }\n\n public showFullScreen(): void {\n this.fullScreen = !this.fullScreen;\n }\n\n private _handleSettingsLoaded(loaded: boolean): void {\n if (loaded) {\n this._ione.initConnection();\n }\n }\n\n private async _getArticle(): Promise<void> {\n if (this._initializedSub) {\n this._initializedSub.unsubscribe();\n }\n this._initializedSub = this._ione.controllerInitialized.subscribe(async (init: boolean) => {\n if (init) {\n this._ione.getFullArticle(this._sku).then((article: ArticleFullObject) => {\n this.article = article;\n if (this.article) {\n this.configurable = this.article.goodType === 'B';\n if (this.configurable) {\n this.currentView = SelectorType.TwoD;\n }\n this.threeD = this.article.is3D;\n this.selectorType = this.article.selectorTypeCustomer;\n this._ione.getDeliveryPrognosis(this.article.goodId).then((stockInfo: DeliveryPrognosis) => {\n const stockAndDelivery: DeliveryPrognosis = stockInfo;\n this.stockAndDelivery = new StockAndDelivery(0, stockAndDelivery.returnValue ? stockAndDelivery.returnValue : ' ');\n this._changeDetector.detectChanges();\n });\n this._changeDetector.detectChanges();\n }\n });\n }\n });\n }\n\n}\n","import { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { IconCacheService } from '../../service/icon-cache.service';\nimport { IconEnum } from '../../enum/icon.enum';\nimport { SelectorType } from '../../enum/selector-type.enum';\n\n@Component({\n selector: 'app-product-selector-type',\n templateUrl: './product-selector-type.component.html',\n styleUrls: ['./product-selector-type.component.scss']\n})\nexport class ProductSelectorTypeComponent implements OnInit {\n\n public readonly type: typeof SelectorType = SelectorType;\n public readonly icons: typeof IconEnum = IconEnum;\n\n @Input()\n public show2D: boolean;\n\n @Input()\n public show3D: boolean;\n\n @Input()\n public currentType: SelectorType;\n\n @Output()\n public onIconClick: EventEmitter<SelectorType> = new EventEmitter();\n\n @Output()\n public currentTypeChange: EventEmitter<SelectorType> = new EventEmitter();\n\n public twoDIcon: SafeHtml | null;\n public threeDIcon: SafeHtml | null;\n\n constructor(\n private _iconCache: IconCacheService,\n private _changeDetector: ChangeDetectorRef\n ) {\n this.twoDIcon = this._iconCache.getIcon(this.icons.TwoD);\n this.threeDIcon = this._iconCache.getIcon(this.icons.ThreeD);\n }\n\n ngOnInit() {\n }\n\n public handleIconClick(type: SelectorType): void {\n this.currentType = type;\n this.currentTypeChange.next(this.currentType);\n this.onIconClick.next(this.currentType);\n this._changeDetector.detectChanges();\n }\n\n}\n","import { ChangeDetectorRef, Component, ElementRef, HostBinding, HostListener, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { CoDocument } from '@colijnit/mainapi/build/model/co-document';\nimport { ProductConnectorService } from '../../service/product-connector.service';\nimport { ProductEventService } from '../../service/product-event.service';\nimport { Subscription } from 'rxjs';\nimport { IconEnum } from '../../enum/icon.enum';\nimport { IconCacheService } from '../../service/icon-cache.service';\nimport {DomSanitizer, SafeUrl} from '@angular/platform-browser';\nimport {DocumentContent} from '@colijnit/articleapi/build/model/document-content';\n\n@Component({\n selector: 'app-image-carousel',\n templateUrl: './image-carousel.component.html',\n styleUrls: ['./image-carousel.component.scss']\n})\nexport class ImageCarouselComponent implements OnInit, OnDestroy {\n\n public readonly icons: typeof IconEnum = IconEnum;\n\n public showLoader: boolean = false;\n\n @ViewChild('carousel', { read: ElementRef })\n public carousel: ElementRef;\n\n @Input()\n public showRefresh: boolean = false;\n\n @Input()\n public set images(value: CoDocument[]) {\n if (value && value.length > 0) {\n this._images = value;\n this._loadImages();\n this._changeDetector.detectChanges();\n }\n }\n\n @HostListener('window:resize')\n public handleWindowResize(): void {\n this.resizing = true;\n this._scrollCarouselToIndex();\n clearTimeout(this._resizeTimer);\n this._resizeTimer = setTimeout(() => {\n this.resizing = false;\n }, 200);\n }\n\n @HostListener('swipeleft')\n public gotoNextSlide(): void {\n this.currentIndex++;\n }\n\n @HostListener('swiperight')\n public gotoPrevSlide(): void {\n this.currentIndex--;\n }\n\n public isCurrentIndex(index: number): boolean {\n return this.currentIndex === index;\n }\n\n public get currentIndex(): number {\n return this._currentIndex;\n }\n\n public set currentIndex(value: number) {\n this._currentIndex = value;\n this._scrollCarouselToIndex();\n }\n\n @HostBinding('class.resizing')\n public resizing = false;\n\n public get images(): CoDocument[] {\n return this._images;\n }\n\n private _resizeTimer: any;\n\n private _currentIndex = 0;\n\n private _images = [];\n private _subs: Subscription[] = [];\n\n constructor(\n private _ione: ProductConnectorService,\n private _appEventService: ProductEventService,\n private _changeDetector: ChangeDetectorRef,\n private _domSanitizer: DomSanitizer,\n public iconCache: IconCacheService,\n ) {\n this._subs.push(\n this._appEventService.onRenderStarted.subscribe(() => {\n this.showLoader = true;\n }),\n this._appEventService.onDraftRenderImageReceived.subscribe((url: string) => {\n if (this._images[0] instanceof CoDocument) {\n this._images.unshift(url);\n } else {\n this._images[0] = url;\n }\n this.showLoader = false;\n }),\n );\n\n }\n\n ngOnInit() {\n }\n\n ngOnDestroy(): void {\n this.carousel = undefined;\n this._subs.forEach(s => s.unsubscribe());\n }\n\n public handleThumbClick(index: number): void {\n this.currentIndex = index;\n }\n\n public onForceRenderImage(): void {\n this._appEventService.onForceRenderImage.next();\n }\n\n public getImageSrc(image: CoDocument | CustomEvent): SafeUrl {\n let source = '';\n if (image instanceof CoDocument) {\n if (image.filePath) {\n source = image.filePath;\n } else {\n source = image.documentBodyAsDataUri;\n }\n } else if (image.detail !== undefined) {\n source = image.detail;\n }\n\n return this._domSanitizer.bypassSecurityTrustUrl(source);\n }\n\n private _loadImages(): void {\n if (this._images) {\n this._images.forEach((i: CoDocument) => {\n if (!i.documentBody && !i.filePath) {\n this._ione.getDocumentContent(i.documentId, false).then((content: DocumentContent) => {\n if (content) {\n i.documentBody = content.documentContent;\n }\n });\n }\n });\n }\n }\n\n private _scrollCarouselToIndex(): void {\n if (this.currentIndex > -1 && this.currentIndex <= this.images.length) {\n const movePx: number = this.currentIndex * this.carousel.nativeElement.clientWidth;\n if (this.carousel && this.carousel.nativeElement) {\n this.carousel.nativeElement.scrollLeft = movePx;\n // this.carousel.nativeElement.scrollTo({\n // left: movePx,\n // behavior: 'smooth'\n // });\n }\n }\n }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ArticleFullObject } from '@colijnit/articleapi/build/model/article-full-object';\n\n@Component({\n selector: 'app-product-description',\n templateUrl: './product-description.component.html',\n styleUrls: ['./product-description.component.scss']\n})\nexport class ProductDescriptionComponent implements OnInit {\n\n @Input()\n public article: ArticleFullObject;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\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';\nimport { ArticleFullObject } from '@colijnit/articleapi/build/model/article-full-object';\nimport { CoText } from '@colijnit/mainapi/build/model/co-text';\nimport { ProductEventService } from '../../service/product-event.service';\nimport { BitUtils } from '../../utils/bit-utils';\n\n@Component({\n selector: 'app-product-additional-description',\n templateUrl: './product-additional-description.component.html',\n styleUrls: ['./product-additional-description.component.scss']\n})\nexport class ProductAdditionalDescriptionComponent implements OnInit {\n\n @Input()\n public set article(value: ArticleFullObject) {\n this._article = value;\n if (this._article) {\n this.description = this.article.additionalDescription;\n this._prepareDescription();\n }\n }\n\n public get article(): ArticleFullObject {\n return this._article;\n }\n\n public description: string;\n\n private _article: ArticleFullObject;\n\n constructor(\n private _appEventService: ProductEventService\n ) {}\n\n ngOnInit() {\n }\n\n public onReadMore(): void {\n this._appEventService.onUpdateProductInfoTab.next(0);\n }\n\n private _prepareDescription(): void {\n\n this.description = '';\n\n if (this.article.texts && this.article.texts.length > 0) {\n this.article.texts.forEach((txt: CoText) => {\n if (BitUtils.IsShortDescription(txt.publication)) {\n this.description += txt.text;\n }\n });\n\n this.description = this.description.replace(/<[^>]*>?/gm, '');\n if (this.description.length > 250) {\n this.description = this.description.substr(0, 250) + ' [..]';\n }\n }\n\n }\n\n}\n","import { ChangeDetectorRef, Component, Input, OnInit } from '@angular/core';\nimport { ArticlePricing } from '@colijnit/articleapi/build/model/article-pricing';\n\n@Component({\n selector: 'app-product-price',\n templateUrl: './product-price.component.html',\n styleUrls: ['./product-price.component.scss']\n})\nexport class ProductPriceComponent implements OnInit {\n\n @Input()\n public set pricing(value: any) {\n this._pricing = value;\n this._setPrices();\n }\n\n public get pricing(): any {\n return this._pricing;\n }\n\n @Input()\n public set configurable(value: boolean) {\n this._configurable = value;\n this._setPrices();\n }\n\n public fromPrice: number;\n public toPrice: number;\n public valutaSign: string;\n public fromLabel: string;\n public toLabel: string;\n public showFromPrice: boolean = false;\n\n private _pricing: ArticlePricing;\n private _configurable: boolean = false;\n\n constructor(private _changeDetector: ChangeDetectorRef) { }\n\n ngOnInit() {\n }\n\n private _setPrices(): void {\n if (this._pricing) {\n this.valutaSign = this._getSign(this._pricing.retailCurrency);\n if (this._configurable) {\n this.fromPrice = this._pricing.retailBasePrice ? this._pricing.retailBasePrice : this._pricing.priceBaseline;\n this.fromLabel = this._pricing.retailBasePrice ? 'PRICE' : 'FROM';\n this.toPrice = undefined;\n } else {\n this.fromPrice = this._pricing.retailSuggestedPrice ? this._pricing.retailSuggestedPrice : this._pricing.retailBasePrice;\n this.fromLabel = this._pricing.retailSuggestedPrice ? 'Was' : 'PRICE';\n this.toPrice = this._pricing.retailSuggestedPrice ? this._pricing.retailBasePrice : undefined;\n this.toLabel = this._pricing.retailSuggestedPrice ? 'IS_NOW' : '';\n }\n this._changeDetector.detectChanges();\n }\n }\n\n private _getSign(currency: string): string {\n switch (currency) {\n case 'EUR':\n return '€';\n default:\n return '€';\n }\n }\n\n}\n","import { Component, ElementRef, EventEmitter, HostBinding, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\nimport { IconCacheService } from '../../service/icon-cache.service';\nimport { IconEnum } from '../../enum/icon.enum';\nimport { ArticleQuantity } from '../../model/article-quantity.model';\nimport { ProductConnectorService } from '../../service/product-connector.service';\nimport { ProductEventService } from '../../service/product-event.service';\nimport { ArticleFullObject } from '@colijnit/articleapi/build/model/article-full-object';\nimport {ArticleExtended} from '@colijnit/articleapi/build/model/article-extended.bo';\nimport {ConfiguratorStatisticsEnvironment} from '@colijnit/articleapi/build/model/configurator-statistics-environment';\nimport {ProductSettingsService} from '../../service/product-settings.service';\n\n@Component({\n selector: 'app-product-addtocart',\n templateUrl: './product-addtocart.component.html',\n styleUrls: ['./product-addtocart.component.scss']\n})\nexport class ProductAddtocartComponent implements OnInit, OnDestroy {\n\n public readonly icon: typeof IconEnum = IconEnum;\n\n @ViewChild('addtocartbutton', { read: ElementRef })\n public addToCartButton: ElementRef;\n\n @Input()\n public article: ArticleFullObject;\n\n @Input()\n public configurable: boolean = false;\n\n @Input()\n public configuring: boolean = false;\n\n @HostBinding('class.full-screen')\n @Input()\n public fullscreen: boolean = false;\n\n @Input()\n public set quantity(value: number) {\n this._quantity = Math.max(1, value);\n }\n\n public get quantity(): number {\n return this._quantity;\n }\n\n @Output()\n public startConfiguration: EventEmitter<void> = new EventEmitter<void>();\n\n @Output()\n public addToCartClick: EventEmitter<number> = new EventEmitter<number>();\n\n @Output()\n public addToQuoteClick: EventEmitter<number> = new EventEmitter<number>();\n\n public showQuoteButton: boolean = false;\n\n private _quantity = 1;\n\n constructor(\n public iconCache: IconCacheService,\n private _ioneControllerService: ProductConnectorService,\n private _appEventService: ProductEventService,\n private _settingsService: ProductSettingsService\n ) { }\n\n ngOnInit() {\n }\n\n ngOnDestroy(): void {\n this.addToCartButton = undefined;\n }\n\n public async handleAddToCartClick(quantity: number): Promise<void> {\n this._appEventService.onAddToCart.next(await this._getJSONFromArticleObject({article: this.article, quantity: quantity}));\n }\n\n public async handleAddToQuoteClick(quantity: number): Promise<void> {\n this._appEventService.onAddToQuote.next(await this._getJSONFromArticleObject({article: this.article, quantity: quantity}));\n }\n\n private async _getJSONFromArticleObject(article: ArticleQuantity): Promise<string> {\n const configuratorStatistics = new ConfiguratorStatisticsEnvironment();\n configuratorStatistics.userType = 'iOneProductPage';\n configuratorStatistics.transactionType = 'Sales';\n configuratorStatistics.actionDomain = 'bundle';\n configuratorStatistics.sessionId = this._settingsService.settings.session ? this._settingsService.settings.session.sessionId : 'unknown';\n configuratorStatistics.webHost = window.location.host;\n configuratorStatistics.bundleHost = window.location.host;\n return await this._ioneControllerService.getJsonArticleFlatTree(\n article.article.goodId, article.article.goodType, article.quantity, true, configuratorStatistics);\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { ArticleListObject } from '@colijnit/articleapi/build/model/article-list-object';\nimport { ProductConnectorService } from '../../service/product-connector.service';\nimport { ProductEventService } from '../../service/product-event.service';\nimport {DocumentContent} from '@colijnit/articleapi/build/model/document-content';\n\n@Component({\n selector: 'app-product-related',\n templateUrl: './product-related.component.html',\n styleUrls: ['./product-related.component.scss']\n})\nexport class ProductRelatedComponent {\n\n @Input()\n public refType: number;\n\n @Input()\n public label: string;\n\n @Input()\n public isSmallModus: boolean = true;\n\n @Input()\n public set articles(value: ArticleListObject[]) {\n if (value) {\n if (this.refType && this.refType !== undefined) {\n if (value.length > 0) {\n value.forEach((x: ArticleListObject) => {\n if (x.refType === this.refType) {\n this._articles.push(x);\n }\n });\n }\n } else {\n this._articles = value;\n }\n this._loadImages();\n }\n }\n\n public get articles(): ArticleListObject[] {\n return this._articles;\n }\n\n private _articles: ArticleListObject[] = [];\n\n constructor(\n private _iOne: ProductConnectorService,\n private _appEventService: ProductEventService\n ) { }\n\n public handleContentClick(article: ArticleListObject): void {\n this._appEventService.onAlternativeClick.next(article);\n }\n\n private _loadImages(): void {\n this._articles.forEach((a: ArticleListObject) => {\n if (!a.image.documentBody) {\n this._iOne.getDocumentContent(a.image.documentId).then((content: DocumentContent) => {\n if (content) {\n a.image.documentBody = content.documentContent;\n }\n });\n }\n });\n }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { ProductConnectorService } from '../../service/product-connector.service';\nimport { IconCacheService } from '../../service/icon-cache.service';\nimport { IconEnum } from '../../enum/icon.enum';\nimport { StockAndDelivery } from '../../model/stock-and-delivery';\n\n@Component({\n selector: 'app-product-stock',\n templateUrl: './product-stock.component.html',\n styleUrls: ['./product-stock.component.scss']\n})\nexport class ProductStockComponent implements OnInit {\n\n public readonly icon: typeof IconEnum = IconEnum;\n\n @Input()\n public set stockAndDelivery(value: StockAndDelivery) {\n if (value) {\n this.numberInStock = value.stock;\n }\n }\n\n public numberInStock: number;\n public iconData: SafeHtml;\n\n constructor(private _iOne: ProductConnectorService, private _iconCache: IconCacheService) {\n this.iconData = this._iconCache.getIcon(this.icon.Warehouse);\n }\n\n ngOnInit() {\n }\n\n}\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport { DictionaryService } from '../service/dictionary.service';\r\n\r\n@Pipe({\r\n name: 'localize'\r\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 { Component, Input, OnInit } from '@angular/core';\nimport { ProductConnectorService } from '../../service/product-connector.service';\nimport { IconCacheService } from '../../service/icon-cache.service';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { IconEnum } from '../../enum/icon.enum';\nimport { StockAndDelivery } from '../../model/stock-and-delivery';\nimport { LocalizePipe } from '../../pipe/localize.pipe';\n\n@Component({\n selector: 'app-product-delivery',\n templateUrl: './product-delivery.component.html',\n styleUrls: ['./product-delivery.component.scss']\n})\nexport class ProductDeliveryComponent implements OnInit {\n\n public readonly icon: typeof IconEnum = IconEnum;\n\n @Input()\n public set stockAndDelivery(value: StockAndDelivery) {\n if (value) {\n this.deliveryDescription = value.deliveryDescription;\n if (this.deliveryDescription.length > 0 && this.deliveryDescription[0] === ' ') {\n this.deliveryDescription = this._localizePipe.transform('ASK_FOR_INFORMATION');\n }\n }\n }\n\n public deliveryDescription: string;\n public iconData: SafeHtml;\n\n constructor(\n private _localizePipe: LocalizePipe,\n private _iOne: ProductConnectorService,\n private _iconCache: IconCacheService\n ) {\n this.iconData = this._iconCache.getIcon(this.icon.Truck);\n }\n\n ngOnInit() {\n }\n}\n","import { ChangeDetectorRef, Component, ElementRef, Input, OnDestroy, ViewChild } from '@angular/core';\nimport { ArticleFullObject } from '@colijnit/articleapi/build/model/article-full-object';\nimport { Subscription } from 'rxjs';\nimport { ProductEventService } from '../../service/product-event.service';\n\n@Component({\n selector: 'app-product-info-tabs',\n templateUrl: './product-info-tabs.component.html',\n styleUrls: ['./product-info-tabs.component.scss']\n})\nexport class ProductInfoTabsComponent implements OnDestroy {\n\n public activeTab: number;\n public activeTabHeight: number = 0;\n\n @ViewChild('tabContent')\n public tabContent: ElementRef;\n\n public tabs: any[] = [];\n\n public articleObject: ArticleFullObject;\n\n @Input ()\n set article(value: ArticleFullObject) {\n if (value) {\n this.articleObject = value;\n this._setupTabs();\n this.updateTab(0);\n }\n }\n\n private _subs: Subscription[] = [];\n\n constructor(\n private _appEventService: ProductEventService\n ) {\n this._subs.push(\n this._appEventService.onUpdateProductInfoTab.subscribe((index: number) => {\n this.updateTab(index);\n this.tabContent.nativeElement.scrollIntoView({ behavior: 'smooth' });\n })\n );\n }\n\n ngOnDestroy(): void {\n this._subs.forEach(s => s.unsubscribe());\n }\n\n public updateTab(tabIndex: number) {\n this.activeTab = tabIndex;\n this.updateHeight(tabIndex);\n }\n\n public updateHeight(tabIndex: number): void {\n if (this.tabContent.nativeElement.children.length > 0) {\n if (this.tabContent.nativeElement.children[tabIndex] !== undefined) {\n this.activeTabHeight = this.tabContent.nativeElement.children[tabIndex].offsetHeight;\n }\n }\n }\n\n private _setupTabs(): void {\n this.tabs.push({ title: 'DESCRIPTION' });\n this.tabs.push({ title: 'FEATURES' });\n\n if (this.articleObject.documents !== undefined && this.articleObject.documents.length > 0) {\n this.tabs.push({ title: 'DOWNLOADS' });\n }\n\n if (this.articleObject.symbols !== undefined && this.articleObject.symbols.length > 0) {\n this.tabs.push({ title: 'SYMBOLS' });\n }\n\n }\n\n}\n","import {NgModule} from '@angular/core';\r\nimport {LocalizePipe} from './localize.pipe';\r\n\r\n@NgModule({\r\n exports: [\r\n LocalizePipe\r\n ],\r\n declarations: [\r\n LocalizePipe\r\n ],\r\n providers: [\r\n LocalizePipe\r\n ]\r\n})\r\nexport class PipeModule {\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\nimport { CoDocument } from '@colijnit/mainapi/build/model/co-document';\nimport { IconEnum } from '../../enum/icon.enum';\nimport { ProductConnectorService } from '../../service/product-connector.service';\nimport { IconCacheService } from '../../service/icon-cache.service';\n\n@Component({\n selector: 'app-product-documents',\n templateUrl: './product-documents.component.html',\n styleUrls: ['./product-documents.component.css']\n})\nexport class ProductDocumentsComponent {\n\n public readonly icon: typeof IconEnum = IconEnum;\n\n @Input()\n public showLabel: boolean = false;\n\n @Input()\n public documents: CoDocument[] = [];\n\n constructor(public iconCache: IconCacheService) { }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss']\n})\nexport class HeaderComponent implements OnInit {\n\n @Input()\n public label: string;\n\n @Input()\n public amount: number;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ArticleFullObject } from '@colijnit/articleapi/build/model/article-full-object';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\n\nexport enum TabType {\n Additional = 'additional',\n Properties = 'properties'\n}\n\n@Component({\n selector: 'app-product-info',\n templateUrl: './product-info.component.html',\n styleUrls: ['./product-info.component.scss'],\n animations: [\n trigger('showContent', [\n state('void', style({'opacity': '0'})),\n state('*', style({'opacity': '1'})),\n transition('void => *', animate('200ms 100ms ease-in-out')),\n ])\n ]\n})\nexport class ProductInfoComponent implements OnInit {\n\n public readonly tabType: typeof TabType = TabType;\n\n @Input()\n public article: ArticleFullObject;\n\n public currentTab: TabType = TabType.Additional;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n public switchTab(tab: TabType): void {\n this.currentTab = tab;\n }\n\n}\n","import { ChangeDetectorRef, Component, Input, OnInit, SecurityContext } from '@angular/core';\nimport { CoText } from '@colijnit/mainapi/build/model/co-text';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { ArticleFullObject } from '@colijnit/articleapi/build/model/article-full-object';\nimport { SuperArticle } from '@colijnit/articleapi/build/model/super-article';\nimport { BitUtils } from '../../utils/bit-utils';\nimport {ProductConnectorService} from '../../service/product-connector.service';\n\n@Component({\n selector: 'app-product-additional-info',\n templateUrl: './product-additional-info.component.html',\n styleUrls: ['./product-additional-info.component.scss']\n})\nexport class ProductAdditionalInfoComponent implements OnInit {\n\n @Input()\n public set article(value: ArticleFullObject) {\n if (value) {\n this._article = value;\n this._buildInfo().then(() => {\n this._changeDetector.detectChanges();\n });\n }\n }\n\n public get article(): ArticleFullObject {\n return this._article;\n }\n\n @Input()\n public showLabel: boolean = false;\n\n public textParts: SafeHtml[] = [];\n public info: string;\n\n private _article: ArticleFullObject;\n private _superArticles: Map<string, SuperArticle> = new Map();\n\n constructor(\n private _sanitizer: DomSanitizer,\n private _connectorService: ProductConnectorService,\n private _changeDetector: ChangeDetectorRef\n ) {\n }\n\n ngOnInit() {\n }\n\n private async _getTextsSuperArticle(): Promise<SafeHtml[]> {\n return new Promise(async (resolve: Function, reject: Function) => {\n const texts: SafeHtml[] = [];\n if (this.article.superArticleNr) {\n let mainArticle;\n if (this._superArticles.has(this.article.superArticleNr)) {\n mainArticle = this._superArticles.get(this.article.superArticleNr);\n } else {\n mainArticle = await this._connectorService.getSuperArticle(this.article.superArticleNr);\n this._superArticles.set(this.article.superArticleNr, mainArticle);\n }\n mainArticle.texts.forEach((txt: CoText) => {\n if (BitUtils.IsFullDescription(txt.publication)) {\n const safeTxt: SafeHtml = this._sanitizer.sanitize(SecurityContext.HTML, txt.text);\n texts.push(safeTxt);\n }\n });\n resolve(texts);\n } else {\n resolve(texts);\n }\n });\n }\n\n private async _prepareArticleTexts(): Promise<void> {\n const texts: SafeHtml[] = await this._getTextsSuperArticle();\n if (texts.length > 0) {\n this.textParts.push(...texts);\n }\n if (this.article.texts) {\n this.article.texts.forEach((txt: CoText) => {\n if (BitUtils.IsFullDescription(txt.publication)) {\n const safeTxt: SafeHtml = this._sanitizer.sanitize(SecurityContext.HTML, txt.text);\n this.textParts.push(safeTxt);\n }\n });\n }\n }\n\n private async _buildInfo(): Promise<void> {\n this.textParts.length = 0;\n await this._prepareArticleTexts();\n if (this.textParts.length === 0) {\n if (this.article.additionalDescription) {\n this.textParts.push(this.article.additionalDescription);\n } else if (this.article.description) {\n this.textParts.push(this.article.description);\n }\n }\n return;\n }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ArticleFullObject } from '@colijnit/articleapi/build/model/article-full-object';\n\nexport const propertyMap: Map<string, string> = new Map([\n ['articleNr', 'ARTICLE_NUMBER'],\n ['catExtra', 'CATEGORY'],\n ['catType', 'CATEGORY_TYPE'],\n ['description', 'DESCRIPTION'],\n ['material', 'MATERIAL'],\n ['title', 'TITLE'],\n ['turnOverGroup', 'TURNOVERGROUP'],\n ['height', 'HEIGHT'],\n ['width', 'WIDTH']\n]);\n\n@Component({\n selector: 'app-product-properties',\n templateUrl: './product-properties.component.html',\n styleUrls: ['./product-properties.component.scss']\n})\nexport class ProductPropertiesComponent implements OnInit {\n\n @Input()\n public set article(value: ArticleFullObject) {\n this._article = value;\n this._prepareProperties();\n }\n\n public get article(): ArticleFullObject {\n return this._article;\n }\n\n @Input()\n public showLabel: boolean = false;\n\n public properties: {key: string, value: string}[] = [];\n\n private _article: ArticleFullObject;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n private _prepareProperties(): void {\n this.properties.length = 0;\n if (!this._article) {\n return;\n }\n propertyMap.forEach((value: string, key: string) => {\n if (this.article.hasOwnProperty(key)) {\n this.properties.push({key: value, value: this.article[key]});\n }\n });\n }\n\n}\n","import { Component, HostBinding, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-product-symbols',\n templateUrl: './product-symbols.component.html',\n styleUrls: ['./product-symbols.component.scss']\n})\nexport class ProductSymbolsComponent implements OnInit {\n\n @Input()\n public set symbols(value: any) {\n this._symbols = value;\n if (this._symbols && this._symbols.hasOwnProperty('fontCode')) {\n this._className = this._symbols['fontCode'] === 'VLOER' ? 'floor' : (this._className === 'WAS' ? 'ginetex' : '');\n }\n if (this._symbols && this._symbols.hasOwnProperty('symbolString')) {\n for (let i = 0; i < this._symbols['symbolString'].length; i++) {\n this.symbolStrings.push(this._symbols['symbolString'][i]);\n }\n }\n }\n\n public get symbols(): any {\n return this._symbols;\n }\n\n @HostBinding('class')\n public _className: string;\n\n public symbolStrings: string[] = [];\n\n private _symbols: any;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import {CUSTOM_ELEMENTS_SCHEMA, NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductPageComponent} from './product-page.component';\r\nimport {ProductSelectorTypeComponent} from '../product-selector-type/product-selector-type.component';\r\nimport {ImageCarouselComponent} from '../image-carousel/image-carousel.component';\r\nimport {\r\n ArticleTileModule,\r\n ButtonModule,\r\n FilesUploadModule,\r\n IconModule,\r\n InputTextModule,\r\n LevelIndicatorModule,\r\n LoaderModule,\r\n NumberPickerModule,\r\n PriceDisplayPipeModule,\r\n ScrollContainerModule,\r\n TileModule\r\n} from '@colijnit/corecomponents';\r\nimport {ProductDescriptionComponent} from '../product-description/product-description.component';\r\nimport {ProductAdditionalDescriptionComponent} from '../product-additional-description/product-additional-description.component';\r\nimport {ProductPriceComponent} from '../product-price/product-price.component';\r\nimport {ProductAddtocartComponent} from '../product-addtocart/product-addtocart.component';\r\nimport {ProductRelatedComponent} from '../product-related/product-related.component';\r\nimport {ProductStockComponent} from '../product-stock/product-stock.component';\r\nimport {ProductDeliveryComponent} from '../product-delivery/product-delivery.component';\r\nimport {ProductInfoTabsComponent} from '../product-info-tabs/product-info-tabs.component';\r\nimport {PipeModule} from '../../pipe/pipe.module';\r\nimport {ProductDocumentsComponent} from '../product-documents/product-documents.component';\r\nimport {HeaderComponent} from '../core/header/header.component';\r\nimport {ProductInfoComponent} from '../product-info/product-info.component';\r\nimport {ProductAdditionalInfoComponent} from '../product-additional-info/product-additional-info.component';\r\nimport {ProductPropertiesComponent} from '../product-properties/product-properties.component';\r\nimport {ProductSymbolsComponent} from '../product-symbols/product-symbols.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IconModule,\r\n LoaderModule,\r\n PipeModule,\r\n NumberPickerModule,\r\n ButtonModule,\r\n PriceDisplayPipeModule,\r\n InputTextModule,\r\n FilesUploadModule,\r\n ScrollContainerModule,\r\n TileModule,\r\n LevelIndicatorModule,\r\n ArticleTileModule,\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n declarations: [\r\n ProductPageComponent,\r\n ProductSelectorTypeComponent,\r\n ImageCarouselComponent,\r\n ProductDescriptionComponent,\r\n ProductAdditionalDescriptionComponent,\r\n ProductPriceComponent,\r\n ProductAddtocartComponent,\r\n ProductRelatedComponent,\r\n ProductStockComponent,\r\n ProductDeliveryComponent,\r\n ProductInfoTabsComponent,\r\n ProductDocumentsComponent,\r\n HeaderComponent,\r\n ProductInfoComponent,\r\n ProductAdditionalInfoComponent,\r\n ProductPropertiesComponent,\r\n ProductSymbolsComponent\r\n ],\r\n exports: [ProductPageComponent]\r\n})\r\nexport class ProductPageModule {\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\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ProductPageModule\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 {APP_INITIALIZER, NgModule} from '@angular/core';\nimport {IoneProductComponent} from './ione-product.component';\nimport {CommonModule} from '@angular/common';\n// import {BrowserAnimationsModule} from '@angular/platform-browser/animations';\nimport {ProductInitializerService} from './service/product-initializer.service';\nimport {ProductExternalSourceModule} from './components/product-external-source/product-external-source.module';\nimport {ProductPageModule} from './components/product-page/product-page.module';\n\nexport function initializeApp(context: ProductInitializerService) {\n const x = () => context.initializeApp();\n return x;\n}\n\n@NgModule({\n imports: [\n // BrowserAnimationsModule,\n CommonModule,\n ProductExternalSourceModule,\n ProductPageModule\n ],\n declarations: [\n IoneProductComponent\n ],\n entryComponents: [\n IoneProductComponent\n ],\n providers: [\n {\n provide: APP_INITIALIZER,\n useFactory: initializeApp,\n deps: [ProductInitializerService],\n multi: true\n }\n ],\n exports: [IoneProductComponent],\n bootstrap: [\n IoneProductComponent\n ]\n})\nexport class IoneProductModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n\nexport {HeaderComponent as ɵw} from './app/components/core/header/header.component';\nexport {ImageCarouselComponent as ɵm} from './app/components/image-carousel/image-carousel.component';\nexport {ProductAdditionalDescriptionComponent as ɵo} from './app/components/product-additional-description/product-additional-description.component';\nexport {ProductAdditionalInfoComponent as ɵy} from './app/components/product-additional-info/product-additional-info.component';\nexport {ProductAddtocartComponent as ɵq} from './app/components/product-addtocart/product-addtocart.component';\nexport {ProductDeliveryComponent as ɵt} from './app/components/product-delivery/product-delivery.component';\nexport {ProductDescriptionComponent as ɵn} from './app/components/product-description/product-description.component';\nexport {ProductDocumentsComponent as ɵv} from './app/components/product-documents/product-documents.component';\nexport {ProductInfoTabsComponent as ɵu} from './app/components/product-info-tabs/product-info-tabs.component';\nexport {ProductInfoComponent as ɵx} from './app/components/product-info/product-info.component';\nexport {ProductPageComponent as ɵf} from './app/components/product-page/product-page.component';\nexport {ProductPageModule as ɵa} from './app/components/product-page/product-page.module';\nexport {ProductPriceComponent as ɵp} from './app/components/product-price/product-price.component';\nexport {ProductPropertiesComponent as ɵz} from './app/components/product-properties/product-properties.component';\nexport {ProductRelatedComponent as ɵr} from './app/components/product-related/product-related.component';\nexport {ProductSelectorTypeComponent as ɵl} from './app/components/product-selector-type/product-selector-type.component';\nexport {ProductStockComponent as ɵs} from './app/components/product-stock/product-stock.component';\nexport {ProductSymbolsComponent as ɵba} from './app/components/product-symbols/product-symbols.component';\nexport {IoneProductComponent as ɵbb} from './app/ione-product.component';\nexport {LocalizePipe as ɵc} from './app/pipe/localize.pipe';\nexport {PipeModule as ɵb} from './app/pipe/pipe.module';\nexport {DictionaryService as ɵd} from './app/service/dictionary.service';\nexport {IconCacheService as ɵj} from './app/service/icon-cache.service';\nexport {ProductConnectorAdapterService as ɵh} from './app/service/product-connector-adapter.service';\nexport {ProductConnectorService as ɵg} from './app/service/product-connector.service';\nexport {ProductEventService as ɵk} from './app/service/product-event.service';\nexport {ProductInitializerService as ɵbc} from './app/service/product-initializer.service';\nexport {ProductSettingsService as ɵi} from './app/service/product-settings.service';\nexport {JsonUtilsService as ɵe} from './app/utils/json-utils.service';"],"names":[],"mappings":"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"}