@colijnit/product 258.1.4 → 259.1.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.
- package/app/bundle/service/local-storage.service.d.ts +14 -0
- package/app/ione-product.component.d.ts +6 -1
- package/bundles/colijnit-product.umd.js +586 -504
- package/bundles/colijnit-product.umd.js.map +1 -1
- package/colijnit-product.d.ts +1 -0
- package/colijnit-product.metadata.json +1 -1
- package/esm2015/app/bundle/service/local-storage.service.js +37 -0
- package/esm2015/app/ione-product.component.js +36 -5
- package/esm2015/app/product-version.js +3 -3
- package/esm2015/colijnit-product.js +2 -1
- package/fesm2015/colijnit-product.js +288 -223
- package/fesm2015/colijnit-product.js.map +1 -1
- package/package.json +8 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"colijnit-product.umd.js","sources":["../../src/app/product-version.ts","../../node_modules/tslib/tslib.es6.mjs","../../src/app/service/product-event.service.ts","../../src/app/utils/json-utils.service.ts","../../src/app/enum/language-code.enum.ts","../../src/assets/dictionary/text.properties.ts","../../src/app/service/dictionary.service.ts","../../src/app/model/settings-options.ts","../../src/app/model/render-modes.ts","../../src/app/model/render-parameters.ts","../../src/app/model/productSettings.ts","../../src/app/service/product-settings.service.ts","../../src/app/service/product-connector-adapter.service.ts","../../src/app/service/product-connector.service.ts","../../src/app/ione-product.component.ts","../../src/app/model/stock-and-delivery.ts","../../src/app/enum/selector-type.enum.ts","../../src/app/enum/icon.enum.ts","../../src/app/model/icon.ts","../../src/app/service/icon-cache.service.ts","../../src/app/components/product-page/product-page.component.ts","../../src/app/components/product-selector-type/product-selector-type.component.ts","../../src/app/pipe/localize.pipe.ts","../../src/app/pipe/pipe.module.ts","../../src/app/components/product-selector-type/product-selector-type.module.ts","../../src/app/components/image-carousel/image-carousel.component.ts","../../src/app/components/image-carousel/image-carousel.module.ts","../../src/app/components/product-description/product-description.component.ts","../../src/app/components/product-description/product-description.module.ts","../../src/app/utils/bit-utils.ts","../../src/app/components/product-additional-description/product-additional-description.component.ts","../../src/app/components/product-additional-description/product-additional-description.module.ts","../../src/app/components/product-price/product-price.component.ts","../../src/app/components/product-price/product-price.module.ts","../../src/app/components/product-addtocart/product-addtocart.component.ts","../../src/app/components/product-addtocart/product-addtocart.module.ts","../../src/app/components/product-related/product-related.component.ts","../../src/app/components/core/header/header.component.ts","../../src/app/components/core/header/header.module.ts","../../src/app/components/product-related/product-related.module.ts","../../src/app/components/product-stock/product-stock.component.ts","../../src/app/components/product-stock/product-stock.module.ts","../../src/app/components/product-delivery/product-delivery.component.ts","../../src/app/components/product-delivery/product-delivery.module.ts","../../src/app/components/product-info-tabs/product-info-tabs.component.ts","../../src/app/components/product-additional-info/product-additional-info.component.ts","../../src/app/components/product-additional-info/product-additional-info.module.ts","../../src/app/components/product-properties/product-properties.component.ts","../../src/app/components/product-properties/product-properties.module.ts","../../src/app/components/product-documents/product-documents.component.ts","../../src/app/components/product-documents/product-document.module.ts","../../src/app/components/product-symbols/product-symbols.component.ts","../../src/app/components/product-symbols/product-symbols.module.ts","../../src/app/components/product-info-tabs/product-info-tabs.module.ts","../../src/app/components/product-dialog/product-dialog.component.ts","../../src/app/components/product-dialog/product-dialog.module.ts","../../src/app/components/render-carousel/render-carousel.component.ts","../../src/app/components/render-carousel/render-carousel.module.ts","../../src/app/components/product-page/product-page.module.ts","../../src/app/service/product-script-loader.service.ts","../../src/app/components/product-hd/product-hd.component.ts","../../src/app/components/product-hd/product-hd.module.ts","../../src/app/components/product-external-source/product-external-source.component.ts","../../src/app/components/product-external-source/product-external-source.module.ts","../../src/app/ione-product.module.ts","../../src/colijnit-product.ts"],"sourcesContent":["// this file is dynamically created, do not change this\nexport class Version {\n public name = \"@colijnit/product\";\n public description = \"Product detail page project for iOne\";\n public symVer = \"258.1.4\";\n public publishDate = \"23-6-2025 16:38:29\";\n}","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","import {Directive, Injectable, Output} from '@angular/core';\r\nimport {Subject} from 'rxjs';\r\nimport {ArticleListObject} from '@colijnit/articleapi/build/model/article-list-object';\r\nimport {Selection} from '@colijnit/articleapi/build/model/selection';\r\nimport {ArticleQuickSel} from '@colijnit/articleapi/build/model/article-quick-sel';\r\nimport {ArticleExtended} from '@colijnit/articleapi/build/model/article-extended.bo';\r\nimport {ArticleListObjectExtended} from '@colijnit/articleapi/build/model/article-list-object-extended.bo';\r\nimport {ValidationMessage} from '@colijnit/ioneconnector/build/model/validation-message';\r\n\r\n@Directive()\r\n@Injectable()\r\nexport class ProductEventService {\r\n\r\n public onAddToCart: Subject<{ article: string | ArticleListObjectExtended, quantity: number }> = new Subject<{ article: string | ArticleListObjectExtended, quantity: number }>();\r\n public onAlternativeClick: Subject<ArticleListObject> = new Subject<ArticleListObject>();\r\n public onAddToQuote: Subject<string> = new Subject<string>();\r\n public onForceRenderImage: Subject<void> = new Subject<void>();\r\n public onArticleReceived: Subject<ArticleQuickSel> = new Subject<ArticleQuickSel>();\r\n public onSelectionsReceived: Subject<Selection[]> = new Subject<Selection[]>();\r\n public onImageReceived: Subject<string> = new Subject<string>();\r\n public onRenderStarted: Subject<void> = new Subject<void>();\r\n public onRenderImageReceived: Subject<string> = new Subject<string>();\r\n public onDraftRenderImageReceived: Subject<CustomEvent> = new Subject<CustomEvent>();\r\n public onArticleInfoReceived: Subject<string> = new Subject<string>();\r\n public onAnswersAvailable: Subject<boolean> = new Subject<boolean>();\r\n public onReadyToRender: Subject<boolean> = new Subject<boolean>();\r\n public onUpdateProductInfoTab: Subject<number> = new Subject<number>();\r\n public errorMessage: Subject<ValidationMessage[]> = new Subject<ValidationMessage[]>();\r\n public onGetRenderForRenderCarousel: Subject<any> = new Subject<any>();\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class JsonUtilsService {\r\n\r\n public async readJsonFile(filePath: string): Promise<any> {\r\n try {\r\n const response = await fetch(filePath);\r\n if (!response.ok) {\r\n return null;\r\n } else {\r\n return response.json();\r\n }\r\n } catch (e) {\r\n console.error('Error getting file:', e.message);\r\n return '';\r\n }\r\n }\r\n}\r\n","export enum LanguageCode {\r\n Dutch = \"nl-NL\",\r\n English = \"en-GB\",\r\n German = \"de-DE\",\r\n French = \"fr-FR\",\r\n}\r\n","export class Dictionary {\r\n\r\n public strings: {} = {\r\n \"en\": {\r\n \"ADDITIONAL_DATA\": \"Additional information\",\r\n \"ALTERNATIVE_PRODUCTS\": \"Alternative products\",\r\n \"ARTICLE_NUMBER\": \"Productnumber\",\r\n \"AS_CONFIGURED\": \"As configured\",\r\n \"CATEGORY\": \"Category\",\r\n \"CATEGORY_TYPE\": \"Category type\",\r\n \"CONFIGURE\": \"Configure\",\r\n \"DELIVERY_TIME_PERIOD\": \"Delivery time\",\r\n \"DESCRIPTION\": \"Description\",\r\n \"DOCUMENTS\": \"Documents\",\r\n \"DOWNLOADS\": \"Downloads\",\r\n \"FEATURES\": \"Features\",\r\n \"HEIGHT\": \"Height\",\r\n \"MATERIAL\": \"Material\",\r\n \"PRODUCT_IN_STOCK\": \"In stock\",\r\n \"PRODUCT_LIMITED_STOCK\": \"Limited stock\",\r\n \"PRODUCT_NOT_IN_STOCK\": \"Not in stock\",\r\n \"PROPERTIES\": \"Characteristics\",\r\n \"QUOTATION\": \"Quotation\",\r\n \"READ_MORE\": \"Read more\",\r\n \"RELATED_PRODUCTS\": \"Related products\",\r\n \"SHOPPING_CART_IN\": \"In Shopping Cart\",\r\n \"SHOW_IN\": \"Show in\",\r\n \"STOCK\": \"Stock\",\r\n \"SYMBOLS\": \"Symbols\",\r\n \"TITLE\": \"Title\",\r\n \"TURNOVERGROUP\": \"Turnover group\",\r\n \"VARIANTS\": \"Variations\",\r\n \"WIDTH\": \"Width\",\r\n \"SUGGESTION\": \"Suggestion\",\r\n },\r\n \"nl\": {\r\n \"ADDITIONAL_DATA\": \"Extra informatie\",\r\n \"ALTERNATIVE_PRODUCTS\": \"Alternatieve producten\",\r\n \"ARTICLE_NUMBER\": \"Artikel nummer\",\r\n \"AS_CONFIGURED\": \"Zoals samengesteld\",\r\n \"CATEGORY\": \"Categorie\",\r\n \"CATEGORY_TYPE\": \"Categorie type\",\r\n \"CONFIGURE\": \"Configureren\",\r\n \"DELIVERY_TIME_PERIOD\": \"Levertijd\",\r\n \"DESCRIPTION\": \"Omschrijving\",\r\n \"DOCUMENTS\": \"Documenten\",\r\n \"DOWNLOADS\": \"Downloads\",\r\n \"FEATURES\": \"Kenmerken\",\r\n \"HEIGHT\": \"Hoogte\",\r\n \"MATERIAL\": \"Materiaal\",\r\n \"PRODUCT_IN_STOCK\": \"Op voorraad\",\r\n \"PRODUCT_LIMITED_STOCK\": \"Beperkt op voorraad\",\r\n \"PRODUCT_NOT_IN_STOCK\": \"Niet op voorraad\",\r\n \"PROPERTIES\": \"Eigenschappen\",\r\n \"QUOTATION\": \"Quotatie\",\r\n \"READ_MORE\": \"Lees meer\",\r\n \"RELATED_PRODUCTS\": \"Gerelateerde producten\",\r\n \"SHOPPING_CART_IN\": \"In winkelwagen\",\r\n \"SHOW_IN\": \"Laat zien\",\r\n \"STOCK\": \"Voorraad\",\r\n \"SYMBOLS\": \"Symbolen\",\r\n \"TITLE\": \"Titel\",\r\n \"TURNOVERGROUP\": \"Omzetgroep\",\r\n \"VARIANTS\": \"Varianten\",\r\n \"WIDTH\": \"Breedte\",\r\n \"SUGGESTION\": \"Suggesties bij\",\r\n },\r\n \"de\": {\r\n \"ADDITIONAL_DATA\": \"Extra informatie\",\r\n \"ALTERNATIVE_PRODUCTS\": \"Alternative Produkte\",\r\n \"ARTICLE_NUMBER\": \"Artikelnummer\",\r\n \"CATEGORY\": \"Kategorie\",\r\n \"CATEGORY_TYPE\": \"Kategorietype\",\r\n \"CONFIGURE\": \"Konfigurieren\",\r\n \"DELIVERY_TIME_PERIOD\": \"Lieferzeit\",\r\n \"DESCRIPTION\": \"Beschreibung\",\r\n \"DOCUMENTS\": \"Dateien\",\r\n \"DOWNLOADS\": \"Downloads\",\r\n \"FEATURES\": \"Eigenschaften\",\r\n \"HEIGHT\": \"Höhe\",\r\n \"MATERIAL\": \"Material\",\r\n \"PRODUCT_IN_STOCK\": \"Auf lager\",\r\n \"PRODUCT_LIMITED_STOCK\": \"Begrentzt auf lager\",\r\n \"PRODUCT_NOT_IN_STOCK\": \"Nicht auf lager\",\r\n \"PROPERTIES\": \"Eigenschaften\",\r\n \"QUOTATION\": \"Angebot\",\r\n \"READ_MORE\": \"Lesen Sie mehr\",\r\n \"RELATED_PRODUCTS\": \"Verwandte Produkte\",\r\n \"SHOPPING_CART_IN\": \"Im Einkaufswagen\",\r\n \"SHOW_IN\": \"Zeigen\",\r\n \"STOCK\": \"Vorrat\",\r\n \"SYMBOLS\": \"Symbole\",\r\n \"TITLE\": \"Titulatur\",\r\n \"TURNOVERGROUP\": \"Umsatzgruppe\",\r\n \"VARIANTS\": \"Varianten\",\r\n \"WIDTH\": \"Breite\",\r\n \"SUGGESTION\": \"Suggesties bij\",\r\n }\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { 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\nimport {LanguageCode} from '@colijnit/ioneconnector/build/enum/language-code.enum';\r\nimport {GetAccessTokenFunction, Options} from '@colijnit/ioneconnector/build/model/options';\r\n\r\nexport class ProductSettings extends Options {\r\n public currency: number;\r\n public session: any = undefined;\r\n public createWebOrder: boolean = true;\r\n public assetPath: string;\r\n public assetIndex: string;\r\n public currencySymbol: string = '€';\r\n public threeDAssetPath: string;\r\n public lightPresetsIndex: string;\r\n public additionalTranslationFile: string;\r\n public gtm: string;\r\n public client: string;\r\n public options: SettingsOptions = new SettingsOptions();\r\n public renderParameters: RenderParameters = new RenderParameters();\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { JsonUtilsService } from '../utils/json-utils.service';\r\nimport { DictionaryService } from './dictionary.service';\r\nimport { ProductSettings } from '../model/productSettings';\r\nimport { SettingsOptions } from '../model/settings-options';\r\n\r\ndeclare let settings: any;\r\n\r\n@Injectable()\r\nexport class ProductSettingsService {\r\n\r\n public set settings(value: ProductSettings) {\r\n this._settings = value;\r\n }\r\n\r\n public get settings(): ProductSettings {\r\n return this._settings;\r\n }\r\n\r\n public settingsLoaded: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n\r\n private _settings: ProductSettings;\r\n\r\n constructor(\r\n private _jsonUtilsService: JsonUtilsService,\r\n private _dictionaryService: DictionaryService\r\n ) {\r\n }\r\n\r\n public async initializeSettings(finish: boolean = true): Promise<void> {\r\n // see if there's a json file for application settings\r\n if (typeof settings === 'undefined') {\r\n const jsonSettings = await this._jsonUtilsService.readJsonFile('product-settings.json');\r\n if (jsonSettings) {\r\n this.settings = Object.assign(new ProductSettings(), jsonSettings);\r\n this.settings.options = Object.assign(new SettingsOptions(), this.settings.options);\r\n if (finish) {\r\n this.settingsFinished();\r\n }\r\n }\r\n } else {\r\n this.settings = Object.assign(new ProductSettings(), settings);\r\n this.settings.options = Object.assign(new SettingsOptions(), this.settings.options);\r\n if (finish) {\r\n this.settingsFinished();\r\n }\r\n }\r\n }\r\n\r\n public async createSettingsFromObject(obj: any): Promise<void> {\r\n if (!this.settings) {\r\n this.settings = new ProductSettings();\r\n }\r\n const ownOptions = Object.assign({}, this.settings.options);\r\n const ownRenderParameters = Object.assign({}, this.settings.renderParameters);\r\n this.settings = Object.assign({}, this.settings, obj);\r\n if (obj.renderParameters) {\r\n this.settings.renderParameters = Object.assign({}, ownRenderParameters, obj.renderParameters);\r\n }\r\n if (obj.options) {\r\n this.settings.options = Object.assign({}, ownOptions, obj.options);\r\n }\r\n if (obj.hasOwnProperty('assetPath')) {\r\n this.settings.assetPath = obj['assetPath'];\r\n if (this.settings.assetPath[this.settings.assetPath.length - 1] !== '/') {\r\n this.settings.assetPath += '/';\r\n }\r\n this.settings.threeDAssetPath = this.settings.assetPath;\r\n }\r\n if (obj.hasOwnProperty('threeDAssetPath')) {\r\n this.settings.threeDAssetPath = obj['threeDAssetPath'];\r\n if (this.settings.threeDAssetPath[this.settings.threeDAssetPath.length - 1] !== '/') {\r\n this.settings.threeDAssetPath += '/';\r\n }\r\n }\r\n this.settingsFinished();\r\n }\r\n\r\n public async settingsFinished(): Promise<void> {\r\n await this._dictionaryService.setDictionary(this.settings.languageCode);\r\n this.settingsLoaded.next(true);\r\n }\r\n}\r\n","import {Injectable, OnDestroy} from '@angular/core';\r\nimport {Subject, Subscription} from 'rxjs';\r\nimport {ArticleFullObject} from '@colijnit/articleapi/build/model/article-full-object';\r\nimport {SuperArticle} from '@colijnit/articleapi/build/model/super-article';\r\nimport {ConfiguratorStatisticsEnvironment} from '@colijnit/articleapi/build/model/configurator-statistics-environment';\r\nimport {Articles} from '@colijnit/articleapi/build/articles';\r\nimport {Options} from '@colijnit/ioneconnector/build/model/options';\r\nimport {DataServiceResponseData} from '@colijnit/ioneconnector/build/model/data-service-response-data';\r\nimport {DeliveryPrognosis} from '@colijnit/articleapi/build/model/delivery-prognosis';\r\nimport {DocumentContent} from '@colijnit/articleapi/build/model/document-content';\r\nimport {BusinessObjectFactory} from '@colijnit/ioneconnector/build/service/business-object-factory';\r\nimport {Transaction} from '@colijnit/transactionapi/build/transaction';\r\nimport {ProductSettings} from '../model/productSettings';\r\nimport {MainApi} from '@colijnit/mainapi';\r\nimport {TransactionInfoResponse} from '@colijnit/transactionapi/build/model/transaction-info-response.bo';\r\nimport {ArticleListObjectExtended} from '@colijnit/articleapi/build/model/article-list-object-extended.bo';\r\nimport {ProductEventService} from './product-event.service';\r\nimport {ValidationMessage} from '@colijnit/ioneconnector/build/model/validation-message';\r\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 private _subs: Subscription[] = [];\r\n\r\n constructor(\r\n private _eventService: ProductEventService\r\n ) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._subs.forEach(s => s.unsubscribe());\r\n }\r\n\r\n public async initConnector(options: Options): Promise<void> {\r\n this.articleConnector = new Articles(options);\r\n await this.articleConnector.connect();\r\n this.transactionConnector = new Transaction(options);\r\n this._subs.push(\r\n // @ts-ignore\r\n this.articleConnector.showLoader.subscribe(value => this.showLoader.next(value))\r\n )\r\n }\r\n\r\n public setInstance(instanceId: string): void {\r\n // this.articleConnector.setInstanceToConfigure(instanceId, false);\r\n }\r\n\r\n public async getProductBundleSettings(url: string, upId: number): Promise<string> {\r\n const tempSettings: ProductSettings = new ProductSettings();\r\n tempSettings.url = url;\r\n tempSettings.schema = upId.toString();\r\n const tempMainConnector = new MainApi(tempSettings);\r\n const response: any = await tempMainConnector.getPublicParams(upId);\r\n if (response) {\r\n return response.productSettings;\r\n }\r\n return \"\";\r\n }\r\n\r\n public convertArticleFullObjectToArticleExtended(article: ArticleFullObject): ArticleListObjectExtended {\r\n if (article) {\r\n return this._boFactory.makeWithRawBackendData(ArticleListObjectExtended, article) as ArticleListObjectExtended;\r\n }\r\n }\r\n\r\n public async getDeliveryPrognosis(goodId: number, branchNr?: string): Promise<any> {\r\n const deliveryPrognosis: DeliveryPrognosis = await this.getSelectorDeliveryDate();\r\n if (!deliveryPrognosis || !deliveryPrognosis.returnValue) {\r\n return this.getDeliveryDate2(goodId);\r\n }\r\n return deliveryPrognosis;\r\n }\r\n\r\n public async getSelectorDeliveryDate(): Promise<DeliveryPrognosis> {\r\n const response: DataServiceResponseData = await this.articleConnector.getSelectorDeliveryDate();\r\n if (response && response.validationResult && response.validationResult.success) {\r\n return this._boFactory.makeWithRawBackendData(DeliveryPrognosis, response.resultObject) as unknown as DeliveryPrognosis;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n public async getArtStockStatus(goodId: number): Promise<number> {\r\n const response: DataServiceResponseData = await this.articleConnector.getArtStockStatus(goodId);\r\n if (response && response.validationResult && response.validationResult.success) {\r\n return response.resultObject;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n public async getDeliveryDate2(goodId: number): Promise<DeliveryPrognosis> {\r\n const response: DataServiceResponseData = await this.articleConnector.getDeliveryDate2(goodId);\r\n if (response && response.validationResult && response.validationResult.success) {\r\n return this._boFactory.makeWithRawBackendData(DeliveryPrognosis, response.resultObject) as unknown as DeliveryPrognosis;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n public async getJsonConfiguredArticles(configuratorStatistics?: ConfiguratorStatisticsEnvironment): Promise<string> {\r\n const response: DataServiceResponseData = await this.articleConnector.getJsonConfiguredArticles(configuratorStatistics);\r\n if (response && response.validationResult && response.validationResult.success) {\r\n return response.resultObject;\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n public async getJsonArticleFlatTree(\r\n goodId: number,\r\n goodType: string,\r\n quantity: number,\r\n externalSource: boolean = false,\r\n showLoader: boolean = true,\r\n instanceId?: any,\r\n configuratorStatistics?: ConfiguratorStatisticsEnvironment\r\n ): Promise<string> {\r\n return this.articleConnector.getJsonArticleFlatTree(goodId, goodType, quantity, externalSource, showLoader, instanceId, configuratorStatistics).catch((messages: ValidationMessage[]) => {\r\n this._eventService.errorMessage.next(messages);\r\n return null;\r\n });\r\n }\r\n\r\n public async getGeneratedArtDirectly(goodId: number, showLoader: boolean): Promise<number> {\r\n return this.articleConnector.getGeneratedArtDirectly(goodId, showLoader).catch((messages: ValidationMessage[]) => {\r\n this._eventService.errorMessage.next(messages);\r\n return null;\r\n });\r\n }\r\n\r\n\r\n\r\n public async getGoodIdFromArticleNr(sku: string): Promise<number> {\r\n const response: DataServiceResponseData = await this.articleConnector.getGoodIdFromArticleNr(sku);\r\n if (response && response.validationResult && response.validationResult.success) {\r\n return response.resultObject;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n public async getArticleFullObject(goodId: number, showLoader: boolean = true): Promise<ArticleFullObject> {\r\n const response: DataServiceResponseData = await this.articleConnector.getArticleFullObject(goodId, showLoader);\r\n if (response && response.validationResult && response.validationResult.success) {\r\n return this._boFactory.makeWithRawBackendData(ArticleFullObject, response.resultObject) as ArticleFullObject;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n public async getSuperArticle(id: string, branch?: string): Promise<SuperArticle> {\r\n const response: DataServiceResponseData = await this.articleConnector.getSuperArticleQuickSel(id, branch);\r\n if (response && response.validationResult && response.validationResult.success) {\r\n return this._boFactory.makeWithRawBackendData(SuperArticle, response.resultObject) as SuperArticle;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n public async getDocumentContent(docId: number, thumbnail: boolean = true): Promise<DocumentContent> {\r\n const response: DataServiceResponseData = await this.articleConnector.getDocumentContent(docId, thumbnail);\r\n if (response && response.validationResult && response.validationResult.success) {\r\n return this._boFactory.makeWithRawBackendData(DocumentContent, response.resultObject) as unknown as DocumentContent;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n public async addWebSessionTransactionLine(transactionUuid: string, sku: string, quantity: number): Promise<string> {\r\n const response: DataServiceResponseData = await this.transactionConnector.addWebSessionTransactionLine(transactionUuid, sku, quantity);\r\n if (response && response.validationResult && response.validationResult.success) {\r\n const infoResponse: TransactionInfoResponse = this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject) as TransactionInfoResponse;\r\n return infoResponse.transactionInfo.uuid;\r\n }\r\n return \"\";\r\n }\r\n}\r\n","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\nimport {ArticleExtended} from '@colijnit/articleapi/build/model/article-extended.bo';\r\nimport {ArticleListObjectExtended} from '@colijnit/articleapi/build/model/article-list-object-extended.bo';\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 convertArticleFullObjectToArticleExtended(article: ArticleFullObject): ArticleListObjectExtended {\r\n return this._adapterService.convertArticleFullObjectToArticleExtended(article);\r\n }\r\n\r\n public async getFullArticle(sku: string): Promise<ArticleFullObject> {\r\n const goodId: number = await this._adapterService.getGoodIdFromArticleNr(sku);\r\n if (goodId) {\r\n return this._adapterService.getArticleFullObject(goodId);\r\n }\r\n return null;\r\n }\r\n\r\n public getDocumentContent(docId: number, thumbnail: boolean = true): Promise<DocumentContent> {\r\n return this._adapterService.getDocumentContent(docId, thumbnail);\r\n }\r\n\r\n public getDeliveryPrognosis(goodId: number): Promise<DeliveryPrognosis> {\r\n return this._adapterService.getDeliveryPrognosis(goodId);\r\n }\r\n\r\n public async getSelectorDeliveryDate(): Promise<DeliveryPrognosis> {\r\n return this._adapterService.getSelectorDeliveryDate();\r\n }\r\n\r\n public getArtStockStatus(goodId: number): Promise<number> {\r\n return this._adapterService.getArtStockStatus(goodId);\r\n }\r\n\r\n public getDeliveryDate2(goodId: number): Promise<DeliveryPrognosis> {\r\n return this._adapterService.getDeliveryDate2(goodId);\r\n }\r\n\r\n public getSuperArticle(id: string): Promise<SuperArticle> {\r\n return this._adapterService.getSuperArticle(id);\r\n }\r\n\r\n public getJsonArticleFlatTree(\r\n goodId: number,\r\n goodType: string,\r\n quantity: number,\r\n externalSource: boolean = false,\r\n showLoader: boolean = true,\r\n configuratorStatistics?: ConfiguratorStatisticsEnvironment): Promise<string> {\r\n return this._adapterService.getJsonArticleFlatTree(goodId, goodType, quantity, externalSource, showLoader, this._instanceId, configuratorStatistics);\r\n }\r\n\r\n public getGeneratedArtDirectly(goodId: number, showLoader: boolean = true): Promise<number> {\r\n return this._adapterService.getGeneratedArtDirectly(goodId, showLoader);\r\n }\r\n\r\n public async addWebSessionTransactionLine(transactionUuid: string, sku: string, quantity: number): Promise<string> {\r\n return await this._adapterService.addWebSessionTransactionLine(transactionUuid, sku, quantity);\r\n }\r\n\r\n public onShowLoaderChange(showLoader: boolean): void {\r\n this._shouldShowLoader = showLoader;\r\n }\r\n}\r\n","import {Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewEncapsulation} from '@angular/core';\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 {ArticleListObjectExtended} from '@colijnit/articleapi/build/model/article-list-object-extended.bo';\nimport {ProductConnectorService} from './service/product-connector.service';\nimport {ProductConnectorAdapterService} from './service/product-connector-adapter.service';\n\n@Component({\n selector: 'app-ione-product',\n template: `\n <app-product-page *ngIf=\"settingsLoaded\"\n [createFrozenArticle]=\"handleAddArticleInternally\"\n [isReturn]=\"isReturn\"\n [sku]=\"sku\"\n [showRelatedProductsPopup]=\"showRelatedProductsPopup\"\n [enableRenderCarousel]=\"enableRenderCarousel\"\n (openStockEvent)=\"openStock()\"\n ></app-product-page>\n <!-- <co-button [label]=\"'click'\" (click)=\"showHD = !showHD\"></co-button>\n <co-product-hd [sku]=\"'657946ca-e1e1-41fd-7ae0-08dbf7df0cef'\" *ngIf=\"showHD\"></co-product-hd>-->\n `,\n providers: [\n ProductSettingsService,\n ProductConnectorService,\n ProductEventService,\n ProductConnectorAdapterService\n ],\n encapsulation: ViewEncapsulation.Emulated,\n styleUrls: ['./ione-product.component.css']\n})\nexport class IoneProductComponent implements OnInit, OnDestroy {\n\n @Input()\n public sku: string;\n\n @Input()\n public isReturn: boolean;\n\n @Input()\n public showRelatedProductsPopup: boolean;\n\n @Input()\n public enableRenderCarousel: boolean = false;\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 @Input()\n public handleAddArticleInternally: boolean = true;\n\n @Output()\n public onAddToCart: EventEmitter<{ article: string | ArticleListObjectExtended, quantity: number }> = new EventEmitter<{ article: string | ArticleListObjectExtended, quantity: number }>();\n\n @Output()\n public forceRenderImage: EventEmitter<void> = new EventEmitter<void>();\n\n @Output()\n public getRenderForRenderCarousel: EventEmitter<any> = 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 @Output()\n public openStockEvent: EventEmitter<void> = new EventEmitter<void>();\n\n @Output()\n public onAnswersAvailable: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n public settingsLoaded: boolean = false;\n public showHD: boolean = false;\n\n private _settings: any;\n private _subs: Subscription[] = [];\n\n constructor (\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 = '1000567767';\n // this.sku = '1066';\n // this.sku = '104';\n // this.sku = \"70000107\";\n // this.sku = \"grover\";\n // this.sku = \"1000610952\";\n // this.sku = \"4387\";\n // this.sku = \"1000612725\";\n\n this._subs.push(\n this._appEventService.onAddToCart.subscribe((data: { article: string | ArticleListObjectExtended, quantity: number }) => {\n this._handleAddToCart(data);\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 this._appEventService.onAnswersAvailable.subscribe(answers => this._handleAnswersAvailable(answers)),\n this._settingsService.settingsLoaded.subscribe(loaded => {\n this.settingsLoaded = loaded;\n }),\n );\n }\n\n async ngOnInit(): Promise<void> {\n await this._settingsService.initializeSettings(this._settings === undefined);\n if (this._settings) {\n this._settingsService.createSettingsFromObject(this._settings);\n }\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 _handleAnswersAvailable(answers: boolean): void {\n this.onAnswersAvailable.next(answers);\n }\n\n private async _handleAddToCart(data: { article: string | ArticleListObjectExtended, quantity: number }): Promise<void> {\n this.onAddToCart.emit(data);\n }\n public openStock() {\n this.openStockEvent.emit();\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","/** AUTO GENERATED FILE. DO NOT CHANGE.. **/\n\nexport enum IconEnum {\n AddToCartDrop = \"add_to_cart_drop\",\n ArrowPointLeft = \"arrow_point_left\",\n ArrowPointRight = \"arrow_point_right\",\n CrossSkinny = \"cross_skinny\",\n DeliveryTruck = \"delivery_truck\",\n Download = \"download\",\n FullScreen = \"full_screen\",\n LinkSimpleRegular = \"link_simple_regular\",\n Location = \"location\",\n Logo = \"logo\",\n MagicWand = \"magic_wand\",\n NormalScreen = \"normal_screen\",\n Quote = \"quote\",\n Refresh = \"refresh\",\n SaveSkinny = \"save_skinny\",\n ThreeD = \"three_d\",\n Truck = \"truck\",\n TwoD = \"two_d\",\n Warehouse = \"warehouse\"\n}\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 \"arrow_point_left\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 51 51\\\" enable-background=\\\"new 0 0 51 51\\\" ><path fill=\\\"#484F5F\\\" d=\\\"M31.9,36.7l-14.7-9.6C17.1,27,17,26.9,17,26.7v-2.4c0-0.2,0.1-0.3,0.2-0.4l14.7-9.6c0.2-0.2,0.5-0.1,0.7,0.1l1.4,2.1c0.2,0.2,0.1,0.5-0.1,0.7l-12,7.8c-0.3,0.2-0.3,0.6,0,0.8l12,7.8c0.2,0.2,0.3,0.5,0.1,0.7l-1.4,2.1C32.4,36.8,32.1,36.8,31.9,36.7z\\\"/></svg>\",\n \"arrow_point_right\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 51 51\\\" enable-background=\\\"new 0 0 51 51\\\" ><path fill=\\\"#484F5F\\\" d=\\\"M19.1,14.3l14.7,9.6c0.1,0.1,0.2,0.2,0.2,0.4v2.4c0,0.2-0.1,0.3-0.2,0.4l-14.7,9.6c-0.2,0.2-0.5,0.1-0.7-0.1l-1.4-2.1c-0.2-0.2-0.1-0.5,0.1-0.7l12-7.8c0.3-0.2,0.3-0.6,0-0.8l-12-7.8c-0.2-0.2-0.3-0.5-0.1-0.7l1.4-2.1C18.6,14.2,18.9,14.2,19.1,14.3z\\\"/></svg>\",\n \"cross_skinny\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 30 30\\\"><g ><polygon points=\\\"25.35 5.52 24.65 4.81 15 14.46 5.35 4.81 4.65 5.52 14.29 15.17 4.65 24.81 5.35 25.52 15 15.87 24.65 25.52 25.35 24.81 15.71 15.17 25.35 5.52\\\" fill=\\\"#484f60\\\"/></g></svg>\",\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 \"link_simple_regular\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M0 256C0 167.6 71.6 96 160 96l72 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-72 0C98.1 144 48 194.1 48 256s50.1 112 112 112l72 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-72 0C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160l-72 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0c61.9 0 112-50.1 112-112s-50.1-112-112-112l-72 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0c88.4 0 160 71.6 160 160zM184 232l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\\\"/></svg>\",\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 \"save_skinny\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><polygon points=\\\"23.8 38.1 14.9 25.6 15.7 25 23.6 36.2 35.2 12.9 36.1 13.4 23.8 38.1\\\" fill=\\\"#fff\\\"/></svg>\",\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};\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, EventEmitter,\n Input,\n OnDestroy,\n OnInit, Output,\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';\nimport {ExternalSource} from '@colijnit/articleapi/build/model/external-source.bo';\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\n})\nexport class ProductPageComponent implements OnInit, OnDestroy, AfterViewInit {\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 @Input()\n public externalSource: ExternalSource;\n\n @Input()\n public createFrozenArticle: boolean = true;\n\n @Input()\n public isReturn: boolean = false;\n\n @Input()\n public showRelatedProductsPopup: boolean = false;\n\n @Input()\n public enableRenderCarousel: boolean;\n\n @Output()\n public openStockEvent: EventEmitter<void> = new EventEmitter<void>();\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\n\n public article: ArticleFullObject;\n public stockAndDelivery: StockAndDelivery;\n public configurable: boolean = false;\n public threeD: boolean = false;\n public selectorType: SelectorType;\n public show2D: boolean = true;\n public show3D: boolean = false;\n public configuring: boolean = false;\n public showAddToCart: 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 this.appEventService.onAnswersAvailable.subscribe((answers) => {\n if (answers && this.configurable) {\n this.showAddToCart = false;\n } else {\n this.showAddToCart = true;\n }\n }),\n this.appEventService.onGetRenderForRenderCarousel.subscribe((renderParameters: any) => {\n if (this.selections.nativeElement) {\n this.selections.nativeElement.getRenderForRenderCarousel(renderParameters);\n }\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' && (this.article.isConfigurable || this.article.isConfigurable === undefined);\n // this.configurable = this.article.goodType === 'B';\n if (this.configurable) {\n this.showAddToCart = false;\n this.currentView = SelectorType.TwoD;\n } else {\n this.showAddToCart = true;\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 this.showRelatedProductsPopup = false;\n }\n public openStock() {\n this.openStockEvent.emit();\n }\n\n public handlePopUpChange(event: boolean){\n this.showRelatedProductsPopup = event;\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 template: `\n <div *ngIf=\"show2D || show3D\" class=\"show-in\" [textContent]=\"'SHOW_IN' | localize\"></div>\n <co-icon *ngIf=\"show2D && !showRenderCarousel\" class=\"selector-type-icon\"\n [class.active]=\"currentType === type.TwoD\"\n [iconData]=\"twoDIcon\"\n (click)=\"handleIconClick(type.TwoD)\"\n ></co-icon>\n\n <co-icon *ngIf=\"show2D && showRenderCarousel\" class=\"selector-type-icon\"\n [class.active]=\"currentType === type.TwoD\"\n [iconData]=\"twoDIcon\"\n (click)=\"handleIconClick(type.TwoD)\"\n ></co-icon>\n\n <co-icon *ngIf=\"show3D\" class=\"selector-type-icon\"\n [class.active]=\"currentType === type.ThreeD\"\n [iconData]=\"threeDIcon\"\n (click)=\"handleIconClick(type.ThreeD)\"\n ></co-icon>\n `,\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 showRenderCarousel: 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 {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 {NgModule} from '@angular/core';\r\nimport {LocalizePipe} from './localize.pipe';\r\n\r\n@NgModule({\r\n declarations: [\r\n LocalizePipe\r\n ],\r\n providers: [\r\n LocalizePipe\r\n ],\r\n exports: [\r\n LocalizePipe\r\n ]\r\n})\r\nexport class PipeModule {\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductSelectorTypeComponent} from './product-selector-type.component';\r\nimport {PipeModule} from '../../pipe/pipe.module';\r\nimport {IconModule} from '@colijnit/corecomponents';\r\n// import {IconModule} from '@colijnit/corecomponents';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n PipeModule,\r\n IconModule,\r\n /*,\r\n IconModule*/\r\n ],\r\n declarations: [\r\n ProductSelectorTypeComponent\r\n ],\r\n exports: [\r\n ProductSelectorTypeComponent\r\n ]\r\n})\r\nexport class ProductSelectorTypeModule {\r\n}\r\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n ViewChild\n} 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 {DomSanitizer, SafeUrl} from '@angular/platform-browser';\nimport {DocumentContent} from '@colijnit/articleapi/build/model/document-content';\n\nexport class ImageViewModel {\n public image: CoDocument | string;\n public source: SafeUrl;\n public originalSource: string;\n}\n\n@Component({\n selector: 'app-image-carousel',\n template: `\n <div id=\"product_page_carousel\">\n <div id=\"product_page_carousel_items\">\n <co-loader [isShown]=\"true\" *ngIf=\"showLoader\"></co-loader>\n <div #carousel class=\"inner-carousel\">\n <!-- This has been taken out of the for loop to prevent flashing images when updating. -->\n <div *ngIf=\"imageViewModels[0]\" class=\"carousel-item\" [id]=\"'slide-0'\" [class.active]=\"isCurrentIndex(0)\" (click)=\"handleShowImage(imageViewModels[0])\">\n <img [src]=\"imageViewModels[0].source\">\n </div>\n <div *ngFor=\"let imageViewModel of imageViewModels.slice(1); let index = index\" class=\"carousel-item\"\n [id]=\"'slide-' + (index + 1)\" [class.active]=\"isCurrentIndex((index + 1))\" (click)=\"handleShowImage(imageViewModel)\">\n <img [src]=\"imageViewModel.source\">\n </div>\n <div class=\"carousel-scroller-layer\" *ngIf=\"imageViewModels && imageViewModels.length > 1\">\n <div class=\"carousel-item-scroller prev\" (click)=\"gotoPrevSlide()\" *ngIf=\"currentIndex > 0\"></div>\n <div class=\"carousel-item-scroller next\" (click)=\"gotoNextSlide()\" *ngIf=\"currentIndex < images.length - 1\"></div>\n </div>\n </div>\n <!--\n <co-icon class=\"selector-type-icon refresh-button\" [iconData]=\"iconCache.getIcon(icons.Refresh)\" (click)=\"onForceRenderImage()\" [class.loading]=\"showLoader\" *ngIf=\"showRefresh\"></co-icon>\n -->\n </div>\n\n <div id=\"product_page_carousel_thumbs\">\n <co-scroll-container class=\"scroll-container\" *ngIf=\"imageViewModels && imageViewModels.length > 1\">\n <div *ngFor=\"let imageViewModel of imageViewModels; let index = index\" class=\"carousel-thumb\"\n [class.active]=\"index === currentIndex\">\n <img [src]=\"imageViewModel.source\" (click)=\"handleThumbClick(index)\"/>\n </div>\n </co-scroll-container>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./image-carousel.component.scss']\n})\nexport class ImageCarouselComponent implements OnDestroy {\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 | string)[]) {\n if (value && value.length > 0) {\n this._images = this._filterValidImages(value);\n this._loadAndRescaleImages();\n this._changeDetector.detectChanges();\n }\n }\n\n public get images(): (CoDocument | string)[] {\n return this._images;\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 imageViewModels: ImageViewModel[] = [];\n public showLoader: boolean = false;\n\n private _resizeTimer: any;\n private _currentIndex = 0;\n private _images: (CoDocument | string)[] = [];\n private _subs: Subscription[] = [];\n\n private _resizeCanvasHeight: number = 500;\n\n constructor(\n private _ione: ProductConnectorService,\n private _appEventService: ProductEventService,\n private _changeDetector: ChangeDetectorRef,\n private _domSanitizer: DomSanitizer\n ) {\n this._subs.push(\n this._appEventService.onRenderStarted.subscribe(() => {\n this.showLoader = true;\n this._changeDetector.detectChanges();\n setTimeout(() => {\n this.showLoader = false;\n this._changeDetector.detectChanges();\n }, 10000);\n }),\n this._appEventService.onDraftRenderImageReceived.subscribe((event: CustomEvent) => {\n if (event && event.detail) {\n if (this._images[0] instanceof CoDocument) {\n this._images.unshift(event.detail);\n } else {\n this._images[0] = event.detail;\n }\n this._loadAndRescaleImages();\n }\n this.showLoader = false;\n this._changeDetector.detectChanges();\n })\n );\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 handleShowImage(imageViewModel: ImageViewModel): void {\n if (imageViewModel && imageViewModel.originalSource) {\n let popupWindow: Window = window.open('', 'Image zoom', 'width=600,height=400');\n // Set the content of the popup window\n popupWindow.document.write('<html><head><title>Image zoom</title></head><body>');\n popupWindow.document.write(`<img src=${imageViewModel.originalSource} alt=\"Image\" style=\"width:100%; height:auto;\">`);\n popupWindow.document.write('</body></html>');\n // Close the document to render the popup window\n popupWindow.document.close();\n }\n }\n\n private _filterValidImages(value: (CoDocument | string)[]): (CoDocument | string)[] {\n if (!value) {\n return [];\n }\n return value.filter((doc: CoDocument | string) => {\n const pattern = /\\.(jpg|jpeg|png|gif|bmp|tiff|webp)$/i;\n return typeof doc === 'string' || (pattern.test(doc.fileName) || !!doc.filePath);\n });\n }\n\n private _loadAndRescaleImages(): void {\n this.imageViewModels.length = 0;\n if (this._images) {\n this._images.forEach((i: CoDocument | string) => {\n let imageViewModel = new ImageViewModel();\n imageViewModel.image = i;\n if (typeof i === 'string') { // is a rendered image coming from configurator\n this._resizeAndSanitizeSource(i, imageViewModel);\n } else {\n if (i.filePath) {\n this._resizeAndSanitizeSource(i.filePath, imageViewModel);\n } else if (i.documentBody) {\n this._resizeAndSanitizeSource(i.documentBodyAsDataUri, imageViewModel);\n } else {\n this._ione.getDocumentContent(i.documentId, false).then((content: DocumentContent) => {\n if (content) {\n i.documentBody = content.documentContent;\n this._resizeAndSanitizeSource(i.documentBodyAsDataUri, imageViewModel);\n this._changeDetector.detectChanges();\n }\n });\n }\n }\n this.imageViewModels.push(imageViewModel);\n this._changeDetector.detectChanges();\n });\n }\n }\n\n private _resizeAndSanitizeSource(source: string, imageViewModel: ImageViewModel): void {\n const resizeCanvas: HTMLCanvasElement = document.createElement('canvas');\n const resizeCanvasContext: CanvasRenderingContext2D = resizeCanvas.getContext('2d');\n const resizeImage: HTMLImageElement = document.createElement('img');\n resizeImage.crossOrigin = 'anonymous';\n resizeImage.onload = async () => {\n resizeCanvasContext.imageSmoothingEnabled = true;\n resizeCanvasContext.imageSmoothingQuality = 'high';\n // Get the original image dimensions\n const originalWidth = resizeImage.width;\n const originalHeight = resizeImage.height;\n\n // Calculate the aspect ratio\n const aspectRatio = originalWidth / originalHeight;\n\n // Calculate the new width and height while maintaining the aspect ratio\n let newWidth: number = this._resizeCanvasHeight;\n let newHeight: number = this._resizeCanvasHeight;\n\n if (originalWidth > originalHeight) {\n newHeight = this._resizeCanvasHeight / aspectRatio;\n } else {\n newWidth = this._resizeCanvasHeight * aspectRatio;\n }\n\n // Set the canvas size to the new width and height\n resizeCanvas.width = newWidth;\n resizeCanvas.height = newHeight;\n\n const imageWidth: number = this._resizeCanvasHeight * (resizeImage.height / resizeImage.width);\n resizeCanvasContext.drawImage(resizeImage, 0, 0, newWidth, newHeight);\n const resizedSource = resizeCanvas.toDataURL('image/jpeg');\n\n imageViewModel.source = this._domSanitizer.bypassSecurityTrustUrl(resizedSource);\n imageViewModel.originalSource = source;\n this._changeDetector.detectChanges();\n };\n // @ts-ignore\n resizeImage.src = source;\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 {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ImageCarouselComponent} from './image-carousel.component';\r\nimport {/*IconModule, */LoaderModule, ScrollContainerModule} from '@colijnit/corecomponents';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n LoaderModule,\r\n // IconModule,\r\n ScrollContainerModule\r\n ],\r\n declarations: [\r\n ImageCarouselComponent\r\n ],\r\n exports: [\r\n ImageCarouselComponent\r\n ]\r\n})\r\nexport class ImageCarouselModule {\r\n}\r\n","import { 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 template: `\n <div class=\"pd-title-wrapper\">\n <span class=\"pd-description\" [textContent]=\"article?.descriptionRetail\" *ngIf=\"article?.descriptionRetail\"></span>\n <span class=\"pd-sku\" [textContent]=\"article?.articleNr\" *ngIf=\"article?.articleNr\"></span>\n </div>\n `,\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 {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductDescriptionComponent} from './product-description.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n ProductDescriptionComponent\r\n ],\r\n exports: [\r\n ProductDescriptionComponent\r\n ]\r\n})\r\nexport class ProductDescriptionModule {\r\n}\r\n","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 template: `\n <ng-container *ngIf=\"description !== ''\">\n <div class=\"pd-additional-description\">\n <p [innerHTML]=\"description\"></p>\n <button class=\"pd-read-more-btn\" [textContent]=\"'READ_MORE' | localize\" (click)=\"onReadMore()\"></button>\n </div>\n </ng-container>\n `,\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 {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductAdditionalDescriptionComponent} from './product-additional-description.component';\r\nimport {PipeModule} from '../../pipe/pipe.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n PipeModule\r\n ],\r\n declarations: [\r\n ProductAdditionalDescriptionComponent\r\n ],\r\n exports: [\r\n ProductAdditionalDescriptionComponent\r\n ]\r\n})\r\nexport class ProductAdditionalDescriptionModule {\r\n}\r\n","import { 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 template: `\n <div *ngIf=\"toPrice\">\n <div class=\"price-wrapper\" *ngIf=\"fromPrice > toPrice\">\n <div class=\"from-price-label\" [textContent]=\"fromLabel | localize\"></div>\n <div class=\"from-price\" [textContent]=\"fromPrice | priceDisplay: valutaSign\"></div>\n </div>\n <div class=\"price-wrapper\">\n <div class=\"to-price-label\" [textContent]=\"toLabel | localize\"></div>\n <div class=\"to-price\" [textContent]=\"toPrice | priceDisplay: valutaSign\"></div>\n </div>\n </div>\n `,\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 this.toLabel = '';\n } else {\n const hasSuggested = this._pricing.retailSuggestedPrice !== undefined && this._pricing.retailSuggestedPrice !== null;\n\n this.fromPrice = hasSuggested ? this._pricing.retailSuggestedPrice : this._pricing.retailBasePrice;\n this.fromLabel = hasSuggested ? 'Was' : 'PRICE';\n\n // Always set toPrice to base price\n this.toPrice = this._pricing.retailBasePrice;\n this.toLabel = hasSuggested ? 'IS_NOW' : 'PRICE';\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 {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductPriceComponent} from './product-price.component';\r\nimport {PipeModule} from '../../pipe/pipe.module';\r\nimport {PriceDisplayPipeModule} from '@colijnit/corecomponents';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n PipeModule,\r\n PriceDisplayPipeModule\r\n ],\r\n declarations: [\r\n ProductPriceComponent\r\n ],\r\n exports: [\r\n ProductPriceComponent\r\n ]\r\n})\r\nexport class ProductPriceModule {\r\n}\r\n","import { 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 {ConfiguratorStatisticsEnvironment} from '@colijnit/articleapi/build/model/configurator-statistics-environment';\nimport {ProductSettingsService} from '../../service/product-settings.service';\nimport {ArticleListObjectExtended} from '@colijnit/articleapi/build/model/article-list-object-extended.bo';\nimport {ExternalSource} from '@colijnit/articleapi/build/model/external-source.bo';\nimport {ProductConnectorAdapterService} from '../../service/product-connector-adapter.service';\n\n@Component({\n selector: 'app-product-addtocart',\n template: `\n <div class=\"atc-wrapper\">\n <ng-container *ngIf=\"isReturn\">\n <co-number-picker *ngIf=\"!configurable && !configuring\" class=\"quantity-select\" [(model)]=\"quantity\" [min]=\"-100\" horizontal></co-number-picker>\n </ng-container>\n\n <ng-container *ngIf=\"!isReturn\">\n <co-number-picker *ngIf=\"!configurable && !configuring\" class=\"quantity-select\" [(model)]=\"quantity\" [min]=\"1\" horizontal></co-number-picker>\n </ng-container>\n\n <div class=\"button-wrapper\" *ngIf=\"configurable\">\n <co-button class=\"configure-button\"\n [iconData]=\"iconCache.getIcon(icon.MagicWand)\"\n [label]=\"'CONFIGURE' | localize\"\n (onClick)=\"startConfiguration.emit()\"\n ></co-button>\n </div>\n <div class=\"button-wrapper\" *ngIf=\"showAddToCart && !configurable\">\n <co-button #addtocartbutton class=\"cart-button\"\n [iconData]=\"iconCache.getIcon(icon.AddToCartDrop)\"\n [label]=\"'SHOPPING_CART_IN' | localize\"\n (onClick)=\"handleAddToCartClick(quantity)\"\n ></co-button>\n <co-button class=\"cart-button quote\" *ngIf=\"showQuoteButton\"\n [iconData]=\"iconCache.getIcon(icon.Quote)\"\n [label]=\"'QUOTATION' | localize\"\n (onClick)=\"handleAddToQuoteClick(quantity)\"\n ></co-button>\n </div>\n </div>\n `,\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 externalSource: ExternalSource;\n\n @Input()\n public createFrozenArticle: boolean = true;\n\n @Input()\n public configurable: boolean = false;\n\n @Input()\n public configuring: boolean = false;\n\n @Input()\n public showAddToCart: boolean = false;\n\n @Input()\n public isReturn: 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 if (this.isReturn) {\n if (this._quantity === 1) {\n this._quantity = -1;\n } else {\n this._quantity = value\n }\n } else {\n this._quantity = Math.max(1, value);\n }\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 @Output()\n public showRelatedPopup: EventEmitter<boolean> = new EventEmitter<boolean>()\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 private _productConnectorAdapterService: ProductConnectorAdapterService\n ) { }\n\n ngOnInit() {\n }\n\n ngOnDestroy(): void {\n this.addToCartButton = undefined;\n }\n\n public async handleAddToCartClick(quantity: number): Promise<void> {\n if (this.createFrozenArticle) {\n if (this.article.goodType === 'B') {\n\n if (this.article.isConfigurable) {\n const article = await this._getJSONFromArticleObject({article: this.article, quantity: quantity});\n if (article) {\n this._appEventService.onAddToCart.next({article: article, quantity: quantity});\n }\n } else {\n const generatedGoodId: number = await this._getGeneratedArtDirectly(this.article.goodId);\n if (generatedGoodId) {\n const articleFull: ArticleFullObject = await this._productConnectorAdapterService.getArticleFullObject(generatedGoodId, true);\n const article: ArticleListObjectExtended = this._ioneControllerService.convertArticleFullObjectToArticleExtended(articleFull);\n this._appEventService.onAddToCart.next({article: article, quantity: quantity});\n }\n }\n } else {\n let article: ArticleListObjectExtended | string;\n if (!!this.externalSource) {\n article = await this._getJSONFromArticleObject({article: this.article, quantity: quantity});\n } else {\n article = this._ioneControllerService.convertArticleFullObjectToArticleExtended(this.article);\n }\n if (article) {\n this._appEventService.onAddToCart.next({article: article, quantity: quantity});\n }\n }\n } else {\n const article: ArticleListObjectExtended = this._ioneControllerService.convertArticleFullObjectToArticleExtended(this.article);\n this._appEventService.onAddToCart.next({ article: article, quantity: quantity });\n }\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, !!this.externalSource, true, configuratorStatistics);\n }\n\n private async _getGeneratedArtDirectly(goodId: number): Promise<number> {\n return await this._ioneControllerService.getGeneratedArtDirectly(goodId, true);\n }\n}\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductAddtocartComponent} from './product-addtocart.component';\r\nimport {ButtonModule, NumberPickerModule} from '@colijnit/corecomponents';\r\nimport {PipeModule} from '../../pipe/pipe.module';\r\nimport {LoaderModule} from \"@colijnit/corecomponents_v12\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n NumberPickerModule,\r\n ButtonModule,\r\n PipeModule,\r\n LoaderModule\r\n ],\r\n declarations: [\r\n ProductAddtocartComponent\r\n ],\r\n exports: [\r\n ProductAddtocartComponent\r\n ]\r\n})\r\nexport class ProductAddtocartModule {\r\n}\r\n","import {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';\nimport {ProductConnectorAdapterService} from \"../../service/product-connector-adapter.service\";\nimport {ArticleQuantity} from \"../../model/article-quantity.model\";\nimport {ConfiguratorStatisticsEnvironment} from \"@colijnit/articleapi/build/model/configurator-statistics-environment\";\nimport {ProductSettingsService} from \"../../service/product-settings.service\";\nimport {ArticleFullObject} from '@colijnit/articleapi/build/model/article-full-object';\nimport {ArticleListObjectExtended} from '@colijnit/articleapi/build/model/article-list-object-extended.bo';\nimport {ExternalSource} from '@colijnit/articleapi/build/model/external-source.bo';\n\n@Component({\n selector: 'app-product-related',\n template: `\n <div *ngIf=\"articles && articles.length > 0\">\n <app-header [label]=\"label\" [amount]=\"articles?.length\" *ngIf=\"label\"></app-header>\n <co-scroll-container>\n <div class=\"article-wrapper\" *ngFor=\"let article of articles\">\n <co-article-tile\n [imageData]=\"article.image.documentBodyAsDataUri\"\n [description]=\"article.description\"\n [price]=\"article.price\"\n [level]=\"article.stockStatus\"\n [hasCartButton]=\"true\"\n [isSmallModus]=\"isSmallModus\"\n [hasConfigureButton]=\"article.goodType === 'B'\"\n (contentClick)=\"handleContentClick(article)\"\n (cartButtonClick)=\"handleAddToCartClick(article)\"\n (configureButtonClick)=\"handleContentClick(article)\"\n (threeDButtonClick)=\"handleThreeDButtonClick(article)\"\n ></co-article-tile>\n </div>\n </co-scroll-container>\n </div>\n `,\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 externalSource: ExternalSource;\n\n @Input()\n public isSmallModus: boolean = true;\n\n @Input()\n public createFrozenArticle: 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 private _productConnectorAdapterService: ProductConnectorAdapterService,\n private _settingsService: ProductSettingsService\n ) {\n }\n\n public handleContentClick(article: ArticleListObject): void {\n this._appEventService.onAlternativeClick.next(article);\n }\n\n public async handleAddToCartClick(article: ArticleListObject): Promise<void> {\n const quantity: number = 1;\n const articleFull: ArticleFullObject = await this._productConnectorAdapterService.getArticleFullObject(article.goodId, true);\n if (articleFull) {\n if (this.createFrozenArticle) {\n const article: ArticleListObjectExtended = this._iOne.convertArticleFullObjectToArticleExtended(articleFull);\n this._appEventService.onAddToCart.next({article: article, quantity: quantity});\n // this._appEventService.onAddToCart.next({ article: await this._getJSONFromArticleObject({article: articleFull, quantity: quantity}), quantity: quantity });\n } else {\n const article: ArticleListObjectExtended = this._iOne.convertArticleFullObjectToArticleExtended(articleFull);\n this._appEventService.onAddToCart.next({article: article, quantity: quantity});\n }\n }\n }\n\n public handleConfigureButtonClick(article: ArticleListObject): void {\n\n }\n\n public handleThreeDButtonClick(article: ArticleListObject): void {\n\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._iOne.getJsonArticleFlatTree(\n article.article.goodId, article.article.goodType, article.quantity, !!this.externalSource, true, configuratorStatistics);\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","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-header',\n template: `\n <ng-container *ngIf=\"label\">\n <div class=\"header-wrapper\">\n <h3 [textContent]=\"label\"></h3>\n <span *ngIf=\"amount\" class=\"amount\" [textContent]=\"'(' + amount + ')'\"></span>\n </div>\n </ng-container>\n `,\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 {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {HeaderComponent} from './header.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n HeaderComponent\r\n ],\r\n exports: [\r\n HeaderComponent\r\n ]\r\n})\r\nexport class HeaderModule {\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductRelatedComponent} from './product-related.component';\r\nimport {HeaderModule} from '../core/header/header.module';\r\nimport {ArticleTileModule} from '@colijnit/corecomponents_v12';\r\nimport {ScrollContainerModule} from '@colijnit/corecomponents'\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n HeaderModule,\r\n ScrollContainerModule,\r\n ArticleTileModule\r\n ],\r\n declarations: [\r\n ProductRelatedComponent\r\n ],\r\n exports: [\r\n ProductRelatedComponent\r\n ]\r\n})\r\nexport class ProductRelatedModule {\r\n}\r\n","import {Component, EventEmitter, Input, OnInit, Output} 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 template: `\n <!--<app-header [label]=\"'STOCK' | localize\"></app-header>-->\n <!--<co-level-indicator [model]=\"'medium'\"></co-level-indicator>-->\n <div class=\"product-stock-wrapper\">\n <co-icon class=\"stock-icon\" [iconData]=\"iconData\"></co-icon>\n <div class=\"product-stock-fields\" (click)=\"openStock()\">\n <div class=\"pp-default-label\" [class.in-stock]=\"inStock\" [textContent]=\"stockLabel | localize\"></div>\n </div>\n </div>\n `,\n styleUrls: ['./product-stock.component.scss']\n})\nexport class ProductStockComponent {\n public readonly icon: typeof IconEnum = IconEnum;\n\n @Input()\n public set goodId(value: number) {\n this._goodId = value;\n this._getStockStatus();\n }\n\n public get goodId(): number {\n return this._goodId;\n }\n\n @Output()\n public openStockEvent: EventEmitter<void> = new EventEmitter<void>();\n\n public inStock: boolean = false;\n public stockLabel: string;\n public iconData: SafeHtml;\n\n private _goodId: number;\n\n constructor(\n private _iOne: ProductConnectorService,\n private _iconCache: IconCacheService\n ) {\n this.iconData = this._iconCache.getIcon(this.icon.Warehouse);\n }\n\n public openStock() {\n this.openStockEvent.emit();\n }\n\n private _getStockStatus(): void {\n if (this.goodId) {\n this._iOne.getArtStockStatus(this.goodId).then((result: any) => {\n switch (result) {\n case 1: // niet op voorraad\n this.stockLabel = 'PRODUCT_LIMITED_STOCK';\n this.inStock = true;\n break;\n case 2:\n this.stockLabel = 'PRODUCT_IN_STOCK';\n this.inStock = true;\n break;\n default:\n this.stockLabel = 'PRODUCT_NOT_IN_STOCK';\n this.inStock = false;\n break;\n }\n })\n }\n }\n}\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductStockComponent} from './product-stock.component';\r\nimport {IconModule} from '@colijnit/corecomponents';\r\nimport {PipeModule} from '../../pipe/pipe.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IconModule,\r\n PipeModule\r\n ],\r\n declarations: [\r\n ProductStockComponent\r\n ],\r\n exports: [\r\n ProductStockComponent\r\n ]\r\n})\r\nexport class ProductStockModule {\r\n}\r\n","import { 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 template: `\n <!--<app-header [label]=\"'DELIVERY_TIME_PERIOD' | localize\"></app-header>-->\n <div class=\"product-delivery-wrapper\">\n <co-icon class=\"delivery-icon\" [iconData]=\"iconData\"></co-icon>\n <div class=\"product-delivery-fields\">\n <div class=\"pp-default-label\" [textContent]=\"'DELIVERY_TIME_PERIOD' | localize\"></div>\n <div class=\"pp-default-description\" [textContent]=\"deliveryDescription | date:'dd MMMM yyyy'\"></div>\n </div>\n </div>\n `,\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 {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductDeliveryComponent} from './product-delivery.component';\r\nimport {IconModule} from '@colijnit/corecomponents';\r\nimport {PipeModule} from '../../pipe/pipe.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IconModule,\r\n PipeModule\r\n ],\r\n declarations: [\r\n ProductDeliveryComponent\r\n ],\r\n exports: [\r\n ProductDeliveryComponent\r\n ]\r\n})\r\nexport class ProductDeliveryModule {\r\n}\r\n","import { 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 template: `\n <div class=\"tab-container\">\n <div class=\"tab-header\">\n <button *ngFor=\"let tab of tabs; let i = index\" class=\"tab-header-button\" [class.active]=\"activeTab === i\" [textContent]=\"tab.title | localize\" (click)=\"updateTab(i)\"></button>\n </div>\n <div class=\"tab-content\" #tabContent [style.height.px]=\"(activeTabHeight > 0 ? activeTabHeight : '')\">\n <div class=\"tab-content-item\" *ngFor=\"let tab of tabs; let i = index\" [class.active]=\"activeTab === i\">\n <ng-container *ngIf=\"i === 0\">\n <app-product-additional-info class=\"\" [article]=\"articleObject\" [showLabel]=\"false\"></app-product-additional-info>\n </ng-container>\n <ng-container *ngIf=\"i === 1\">\n <app-product-properties class=\"\" [article]=\"articleObject\" [showLabel]=\"false\"></app-product-properties>\n </ng-container>\n <ng-container *ngIf=\"i === 2\">\n <app-product-documents [showLabel]=\"false\" class=\"\" *ngIf=\"articleObject?.documents && articleObject?.documents.length > 0\" [documents]=\"articleObject?.documents\"></app-product-documents>\n </ng-container>\n <ng-container *ngIf=\"i === 3\">\n <app-product-symbols class=\"\" *ngIf=\"articleObject?.symbols && articleObject?.symbols.length > 0\" [symbols]=\"articleObject?.symbols\"></app-product-symbols>\n </ng-container>\n </div>\n </div>\n </div>\n `,\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 { 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 template: `\n <h3 *ngIf=\"showLabel\" [textContent]=\"'ADDITIONAL_DATA' | localize\"></h3>\n <ng-container *ngIf=\"textParts && textParts.length > 0\">\n <div class=\"additional-info-parts\" *ngFor=\"let text of textParts\" [innerHTML]=\"text\"></div>\n </ng-container>\n `,\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 {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductAdditionalInfoComponent} from './product-additional-info.component';\r\nimport {PipeModule} from '../../pipe/pipe.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n PipeModule\r\n ],\r\n declarations: [\r\n ProductAdditionalInfoComponent\r\n ],\r\n exports: [\r\n ProductAdditionalInfoComponent\r\n ]\r\n})\r\nexport class ProductAdditionalInfoModule {\r\n}\r\n","import { 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 template: `\n <div class=\"article-properties-wrapper\">\n <h3 *ngIf=\"showLabel\" [textContent]=\"'PROPERTIES' | localize\"></h3>\n <ng-container *ngFor=\"let property of properties\">\n <div class=\"article-property\">\n <div class=\"article-property-key\" [textContent]=\"property.key | localize\"></div>\n <div class=\"article-property-value\" [textContent]=\"property.value\"></div>\n </div>\n </ng-container>\n </div>\n `,\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 {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductPropertiesComponent} from './product-properties.component';\r\nimport {PipeModule} from '../../pipe/pipe.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n PipeModule\r\n ],\r\n declarations: [\r\n ProductPropertiesComponent\r\n ],\r\n exports: [\r\n ProductPropertiesComponent\r\n ]\r\n})\r\nexport class ProductPropertiesModule {\r\n}\r\n","import { 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 template: `\n <app-header *ngIf=\"showLabel\" [label]=\"'DOCUMENTS' | localize\" [amount]=\"documents?.length\"></app-header>\n <div *ngIf=\"documents && documents.length > 0\">\n <co-files-upload [documents]=\"documents\" [canAdd]=\"false\" readonly></co-files-upload>\n </div>\n `,\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 {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductDocumentsComponent} from './product-documents.component';\r\nimport {HeaderModule} from '../core/header/header.module';\r\nimport {PipeModule} from '../../pipe/pipe.module';\r\nimport {FilesUploadModule} from '@colijnit/corecomponents';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n HeaderModule,\r\n PipeModule,\r\n FilesUploadModule\r\n ],\r\n declarations: [\r\n ProductDocumentsComponent\r\n ],\r\n exports: [\r\n ProductDocumentsComponent\r\n ]\r\n})\r\nexport class ProductDocumentModule {\r\n}\r\n","import { Component, HostBinding, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-product-symbols',\n template: `\n <div *ngIf=\"symbols && symbols.length > 0\">\n <app-header [label]=\"'SYMBOLS' | localize\" [amount]=\"symbols?.length\"></app-header>\n <co-scroll-container>\n <co-tile small noImagePlaceholder *ngFor=\"let symbol of symbolStrings\">\n <ng-container tile-over-image>\n <div class=\"symbol\" [textContent]=\"symbol\"></div>\n </ng-container>\n <ng-container tile-extra-bottom-content>\n <div class=\"symbol-name\" [textContent]=\"'Wat moet hier?'\"></div>\n </ng-container>\n </co-tile>\n </co-scroll-container>\n </div>\n `,\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 {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductSymbolsComponent} from './product-symbols.component';\r\nimport {HeaderModule} from '../core/header/header.module';\r\nimport {PipeModule} from '../../pipe/pipe.module';\r\nimport {ScrollContainerModule, TileModule} from '@colijnit/corecomponents';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n HeaderModule,\r\n PipeModule,\r\n ScrollContainerModule,\r\n TileModule\r\n ],\r\n declarations: [\r\n ProductSymbolsComponent\r\n ],\r\n exports: [\r\n ProductSymbolsComponent\r\n ]\r\n})\r\nexport class ProductSymbolsModule {\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductInfoTabsComponent} from './product-info-tabs.component';\r\nimport {PipeModule} from '../../pipe/pipe.module';\r\nimport {ProductAdditionalInfoModule} from '../product-additional-info/product-additional-info.module';\r\nimport {ProductPropertiesModule} from '../product-properties/product-properties.module';\r\nimport {ProductDocumentModule} from '../product-documents/product-document.module';\r\nimport {ProductSymbolsModule} from '../product-symbols/product-symbols.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n PipeModule,\r\n ProductAdditionalInfoModule,\r\n ProductPropertiesModule,\r\n ProductDocumentModule,\r\n ProductSymbolsModule\r\n ],\r\n declarations: [\r\n ProductInfoTabsComponent\r\n ],\r\n exports: [\r\n ProductInfoTabsComponent\r\n ]\r\n})\r\nexport class ProductInfoTabsModule {\r\n}\r\n","import {Component, EventEmitter, HostBinding, Input, OnInit, Output, ViewEncapsulation} from '@angular/core';\r\nimport {DomSanitizer} from '@angular/platform-browser';\r\nimport {ProductConnectorService} from '../../service/product-connector.service';\r\nimport {ArticleListObject} from '@colijnit/articleapi/build/model/article-list-object';\r\nimport {ProductEventService} from '../../service/product-event.service';\r\nimport {ProductSettingsService} from '../../service/product-settings.service';\r\nimport {ProductConnectorAdapterService} from '../../service/product-connector-adapter.service';\r\nimport {ArticleFullObject} from \"@colijnit/articleapi/build/model/article-full-object\";\r\nimport {IconEnum} from \"../../enum/icon.enum\";\r\nimport {IconCacheService} from \"../../service/icon-cache.service\";\r\nimport {SelectorType} from \"../../enum/selector-type.enum\";\r\n\r\n\r\n@Component({\r\n selector: 'co-product-dialog',\r\n template: `\r\n <div class=\"product-dialog-wrap\">\r\n <div class=\"product-dialog-container\">\r\n <div class=\"container-header\">\r\n <div class=\"header-info\">\r\n <h3>\r\n <co-icon [iconData]=\"iconCache.getIcon(icon.LinkSimpleRegular)\"\r\n (click)=\"closeCatalog()\"></co-icon>{{ 'SUGGESTION' | localize }} <b>{{ mainArticle.name }}</b> ({{ mainArticle.articleNr }})\r\n </h3>\r\n </div>\r\n <div class=\"close-icon\" (click)=\"closeCatalog()\">\r\n <co-icon class=\"fullscreen-button\"\r\n [iconData]=\"iconCache.getIcon(icon.CrossSkinny)\"\r\n (click)=\"closeCatalog()\"></co-icon>\r\n </div>\r\n </div>\r\n <div class=\"related-product-container\">\r\n <app-product-related\r\n class=\"no-padding\"\r\n *ngIf=\"articles\"\r\n [articles]=\"articles\">\r\n </app-product-related>\r\n </div>\r\n <div class=\"close-button-container\">\r\n <button class=\"ok-button\" (click)=\"closeCatalog()\">\r\n <co-icon [iconData]=\"iconCache.getIcon(icon.SaveSkinny)\"\r\n (click)=\"closeCatalog()\"></co-icon>\r\n </button>\r\n <button class=\"close-button\" (click)=\"closeCatalog()\">\r\n <co-icon [iconData]=\"iconCache.getIcon(icon.CrossSkinny)\"\r\n (click)=\"closeCatalog()\"></co-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n `,\r\n styleUrls: ['./product-dialog.component.scss'],\r\n})\r\nexport class ProductDialogComponent implements OnInit {\r\n public readonly icon: typeof IconEnum = IconEnum;\r\n @Input()\r\n public refType: number;\r\n\r\n @Input()\r\n public mainArticle: ArticleFullObject;\r\n\r\n @Input()\r\n public articles: ArticleListObject[];\r\n\r\n @Output()\r\n public closeRelatedPopup: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n @HostBinding('class.co-product-dialog')\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n constructor(\r\n public iconCache: IconCacheService,\r\n private _sanitizer: DomSanitizer,\r\n private _productConnectorService: ProductConnectorService,\r\n private _productConnectorAdapterService: ProductConnectorAdapterService,\r\n private _appEventService: ProductEventService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n public closeCatalog() {\r\n // need to emit close\r\n this.closeRelatedPopup.emit(false);\r\n }\r\n\r\n protected readonly type = SelectorType;\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductDialogComponent} from \"./product-dialog.component\";\r\nimport {PipeModule} from \"../../pipe/pipe.module\";\r\nimport {ProductRelatedModule} from \"../product-related/product-related.module\";\r\nimport {IconModule} from \"@colijnit/corecomponents\";\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n PipeModule,\r\n ProductRelatedModule,\r\n IconModule\r\n ],\r\n declarations: [\r\n ProductDialogComponent\r\n ],\r\n exports: [\r\n ProductDialogComponent\r\n ]\r\n})\r\nexport class ProductDialogModule {\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n HostBinding,\r\n HostListener,\r\n Input, OnChanges,\r\n OnDestroy,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {ProductEventService} from '../../service/product-event.service';\r\nimport {Subscription} from 'rxjs';\r\nimport {ArticleFullObject} from \"@colijnit/articleapi/build/model/article-full-object\";\r\nimport {IconCacheService} from \"../../service/icon-cache.service\";\r\nimport {IconEnum} from \"../../enum/icon.enum\";\r\n\r\nexport class VectorObject {\r\n public x: number;\r\n public y: number;\r\n public z: number;\r\n}\r\n\r\nexport class RenderParameters {\r\n public objectRotation: VectorObject;\r\n public margin: number;\r\n}\r\n\r\n@Component({\r\n selector: 'app-render-carousel',\r\n template: `\r\n <div id=\"product_page_carousel\">\r\n <div id=\"product_page_carousel_render_items\">\r\n <co-loader [isShown]=\"showLoader\"></co-loader>\r\n <div #carousel class=\"inner-carousel\">\r\n <div class=\"inner-carousel-render\">\r\n <img\r\n [src]=\"renderedImage\"\r\n [class.loaded]=\"renderedImageLoaded\"\r\n (load)=\"onRenderLoaded()\"\r\n class=\"fade-image\"\r\n alt=\"\">\r\n </div>\r\n <div class=\"carousel-scroller-layer\">\r\n <div class=\"carousel-item-scroller prev\" (click)=\"gotoPrevSlide()\">\r\n <co-icon [iconData]=\"iconCache.getIcon(icon.ArrowPointLeft)\"></co-icon>\r\n </div>\r\n <div class=\"carousel-item-scroller next\" (click)=\"gotoNextSlide()\">\r\n <co-icon [iconData]=\"iconCache.getIcon(icon.ArrowPointRight)\"></co-icon>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n styleUrls: ['./render-carousel.component.scss']\r\n})\r\nexport class RenderCarouselComponent implements OnDestroy, OnChanges {\r\n @ViewChild('carousel', {read: ElementRef})\r\n public carousel: ElementRef;\r\n\r\n @Input()\r\n public showRefresh: boolean = false;\r\n\r\n @Input()\r\n public article: ArticleFullObject;\r\n\r\n @HostListener('window:resize')\r\n public handleWindowResize(): void {\r\n this.resizing = true;\r\n clearTimeout(this._resizeTimer);\r\n this._resizeTimer = setTimeout(() => {\r\n this.resizing = false;\r\n }, 200);\r\n }\r\n\r\n @HostListener('swipeleft')\r\n public gotoNextSlide(): void {\r\n this.showLoader = true;\r\n this.currentRenderAngleIndex = (this.currentRenderAngleIndex + 1) % this.renderAngles.length;\r\n this._createNewRender();\r\n }\r\n\r\n @HostListener('swiperight')\r\n public gotoPrevSlide(): void {\r\n this.showLoader = true;\r\n this.currentRenderAngleIndex = ( this.currentRenderAngleIndex - 1 + this.renderAngles.length) % this.renderAngles.length;\r\n this._createNewRender();\r\n }\r\n\r\n @HostBinding('class.resizing')\r\n public resizing = false;\r\n\r\n public showLoader: boolean = true;\r\n public renderedImage: string;\r\n public renderedImageLoaded: boolean = false;\r\n\r\n // For now we will just use mock data\r\n public renderAngles: any = [0, -45, -90, -135, -180, -225, -270, -315];\r\n public currentRenderAngleIndex: number = 0;\r\n public readonly icon: typeof IconEnum = IconEnum;\r\n private _resizeTimer: any;\r\n private _subs: Subscription[] = [];\r\n\r\n constructor(\r\n public iconCache: IconCacheService,\r\n private _appEventService: ProductEventService,\r\n private _changeDetector: ChangeDetectorRef,\r\n ) {\r\n this._subs.push(\r\n this._appEventService.onReadyToRender.subscribe((readyToRender: boolean) => {\r\n if (readyToRender) {\r\n this.showLoader = true;\r\n this._createNewRender();\r\n }\r\n }),\r\n this._appEventService.onRenderStarted.subscribe(()=> {\r\n this.showLoader = true;\r\n this._changeDetector.detectChanges();\r\n }),\r\n this._appEventService.onRenderImageReceived.subscribe((image: string) => {\r\n this.renderedImage = image;\r\n this.showLoader = false;\r\n this._changeDetector.detectChanges();\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.carousel = undefined;\r\n this._subs.forEach(s => s.unsubscribe());\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.renderedImageLoaded = false;\r\n }\r\n\r\n public onRenderLoaded(): void {\r\n this.renderedImageLoaded = true;\r\n }\r\n\r\n private _getRenderSettings(): RenderParameters {\r\n const settings: RenderParameters = new RenderParameters();\r\n const rotation: VectorObject = new VectorObject();\r\n rotation.x = 0;\r\n rotation.y = this.renderAngles[this.currentRenderAngleIndex];\r\n rotation.z = 0\r\n settings.objectRotation = rotation;\r\n settings.margin = 15;\r\n return settings\r\n }\r\n\r\n private _createNewRender(): void {\r\n this.showLoader = true;\r\n this.renderedImageLoaded = false;\r\n const renderParams: RenderParameters = this._getRenderSettings();\r\n this._appEventService.onGetRenderForRenderCarousel.next(renderParams);\r\n }\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {IconModule,LoaderModule, ScrollContainerModule} from '@colijnit/corecomponents';\r\nimport {RenderCarouselComponent} from \"./render-carousel.component\";\r\nimport {IconCollapseHandleModule} from \"@colijnit/corecomponents_v12\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n LoaderModule,\r\n ScrollContainerModule,\r\n IconModule,\r\n IconCollapseHandleModule\r\n ],\r\n declarations: [\r\n RenderCarouselComponent\r\n ],\r\n exports: [\r\n RenderCarouselComponent\r\n ]\r\n})\r\nexport class RenderCarouselModule {\r\n}\r\n","import {CUSTOM_ELEMENTS_SCHEMA, NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductPageComponent} from './product-page.component';\r\nimport {ProductSelectorTypeModule} from '../product-selector-type/product-selector-type.module';\r\nimport {ImageCarouselModule} from '../image-carousel/image-carousel.module';\r\nimport {IconModule} from '@colijnit/corecomponents';\r\nimport {ProductDescriptionModule} from '../product-description/product-description.module';\r\nimport {ProductAdditionalDescriptionModule} from '../product-additional-description/product-additional-description.module';\r\nimport {ProductPriceModule} from '../product-price/product-price.module';\r\nimport {ProductAddtocartModule} from '../product-addtocart/product-addtocart.module';\r\nimport {ProductRelatedModule} from '../product-related/product-related.module';\r\nimport {ProductStockModule} from '../product-stock/product-stock.module';\r\nimport {ProductDeliveryModule} from '../product-delivery/product-delivery.module';\r\nimport {ProductInfoTabsModule} from '../product-info-tabs/product-info-tabs.module';\r\nimport {PipeModule} from '../../pipe/pipe.module';\r\nimport {ProductDialogModule} from \"../product-dialog/product-dialog.module\";\r\nimport {LoaderModule} from \"@colijnit/corecomponents_v12\";\r\nimport {RenderCarouselModule} from \"../render-carousel/render-carousel.module\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ProductSelectorTypeModule,\r\n ImageCarouselModule,\r\n IconModule,\r\n ProductDescriptionModule,\r\n ProductAdditionalDescriptionModule,\r\n ProductPriceModule,\r\n ProductAddtocartModule,\r\n ProductRelatedModule,\r\n ProductStockModule,\r\n ProductDeliveryModule,\r\n ProductInfoTabsModule,\r\n PipeModule,\r\n ProductDialogModule,\r\n LoaderModule,\r\n RenderCarouselModule\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n declarations: [\r\n ProductPageComponent\r\n ],\r\n exports: [\r\n ProductPageComponent\r\n ]\r\n})\r\nexport class ProductPageModule {\r\n}\r\n","import {Inject, Injectable, PLATFORM_ID, Renderer2} from '@angular/core';\r\nimport {isPlatformBrowser} from '@angular/common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProductScriptLoaderService {\r\n\r\n private _scriptsOrLinksElements: any[] = [];\r\n\r\n constructor(\r\n @Inject(PLATFORM_ID)\r\n private platformId: any\r\n ) {\r\n\r\n }\r\n\r\n public loadScript(url: string, renderer: Renderer2): Promise<void> {\r\n return new Promise((resolve, reject) => {\r\n if (!isPlatformBrowser(this.platformId)) {\r\n reject('Not in browser environment');\r\n return;\r\n }\r\n\r\n const existingScript = document.getElementById(url);\r\n if (existingScript) {\r\n resolve(); // Script already loaded\r\n return;\r\n }\r\n\r\n const script = renderer.createElement('script');\r\n\r\n script.id = url;\r\n script.src = url;\r\n script.type = 'text/javascript';\r\n script.async = true;\r\n\r\n script.onload = () => resolve();\r\n script.onerror = (error) => reject(`Error loading script: ${url}`);\r\n\r\n renderer.appendChild(document.head, script);\r\n this._scriptsOrLinksElements.push(script);\r\n });\r\n }\r\n\r\n public unloadScripts(renderer: Renderer2): void {\r\n for (let i = this._scriptsOrLinksElements.length - 1; i >= 0; i--) {\r\n renderer.removeChild(document.head, this._scriptsOrLinksElements[i]);\r\n this._scriptsOrLinksElements.pop();\r\n }\r\n }\r\n\r\n public addStyleSheet(url: string, renderer: Renderer2): Promise<void> {\r\n return new Promise((resolve, reject) => {\r\n if (!isPlatformBrowser(this.platformId)) {\r\n reject('Not in browser environment');\r\n return;\r\n }\r\n\r\n const existingStyleSheet = document.getElementById(url);\r\n if (existingStyleSheet) {\r\n resolve(); // Script already loaded\r\n return;\r\n }\r\n\r\n const link = renderer.createElement('link');\r\n link.id = url;\r\n link.href = url;\r\n link.rel = 'stylesheet';\r\n\r\n link.onload = () => resolve();\r\n link.onerror = (error) => reject(`Error loading styleSheet: ${url}`);\r\n\r\n renderer.appendChild(document.head, link);\r\n this._scriptsOrLinksElements.push(link);\r\n });\r\n }\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n OnDestroy,\r\n Output,\r\n Renderer2,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {ProductScriptLoaderService} from '../../service/product-script-loader.service';\r\nimport {ExternalSourceParameter} from '@colijnit/articleapi/build/model/external-source-parameter.bo';\r\n\r\n@Component({\r\n selector: 'co-product-hd',\r\n template: `\r\n <hde-configurator #hdeConfigurator\r\n language=\"nl\"\r\n localizationFileExtension=\".json\"\r\n (configurationFinished)=\"handleConfigurationFinished($event)\"\r\n (configurationFailed)=\"handleError($event)\"\r\n >\r\n <hde-progress-bar></hde-progress-bar>\r\n </hde-configurator>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ProductHdComponent implements OnDestroy {\r\n @ViewChild('hdeConfigurator', {read: ElementRef}) set content(child) {\r\n this.hdeConfigurator = child;\r\n this._prepareAttributes();\r\n }\r\n\r\n @Input()\r\n public set sku(value: string) {\r\n this._sku = value;\r\n this._prepareAttributes();\r\n }\r\n\r\n public get sku(): string {\r\n return this._sku;\r\n }\r\n\r\n @Input()\r\n public token: string; //= \"eyJhbGciOiJSUzI1NiIsImtpZCI6IkYxOThERkVEOEUwQTQ1MzY3M0M1MUE2Rjk1QUVDQzU3RTM0NjM4RkRSUzI1NiIsInR5cCI6ImF0K2p3dCIsIng1dCI6IjhaamY3WTRLUlRaenhScHZsYTdNVi1OR09QMCJ9.eyJuYmYiOjE3MzcxMjQ2NDQsImV4cCI6MTczNzEyODI0NCwiaXNzIjoiaHR0cHM6Ly9ibXNpZGVudGl0eS1hY2NlcHRhbmNlLmF6dXJld2Vic2l0ZXMubmV0IiwiYXVkIjpbImNhdGFsb2dxdWVyeWFwaSIsImNvbmZpZ3VyYXRvcmFwaSIsInByb2R1Y3R2YXJpYW50Y29tbWFuZGFwaSIsInByb2R1Y3R2YXJpYW50cXVlcnlhcGkiXSwiY2xpZW50X2lkIjoiaW1wZXJzb25hdGlvbi5jbGllbnQiLCJzdWIiOiIwOTMwZDI4Mi05NGU4LTQ5MGEtOGI2NC1mYTk1YmIyYzE1ODIiLCJhdXRoX3RpbWUiOjE3MzcxMjQ2NDQsImlkcCI6ImxvY2FsIiwiZW52aXJvbm1lbnQiOiJNU0wiLCJzZWxsZXIiOiJTRTAwMDA5NiIsInNlbGxlcmd1aWQiOiIxMDk1MWJjNS1hZmMzLTQ1MGEtNmVkMS0wOGQ4NDNlNmE5OTQiLCJwZXJtaXNzaW9uIjpbInNhbGVzLmV4cG9ydHRlbXBsYXRlcy5yZWFkIiwiZG9jdW1lbnRsaWJyYXJ5LnRhZy5yZWFkIiwiZG9jdW1lbnRsaWJyYXJ5LmRvY3VtZW50LnJlYWQiLCJkb2N1bWVudGxpYnJhcnkudGFnZ3JvdXAucmVhZCIsInNhbGVzLm9yZGVyLndyaXRlIiwic2FsZXMuY3VzdG9tZXIucmVhZCIsInNhbGVzLm9yZGVyLmRlbGl2ZXJ5YWRkcmVzcy53cml0ZSIsInNlcnZpY2UucmVxdWVzdC5yZWFkIiwiY2F0YWxvZy50YWcucmVhZCIsInNhbGVzLm9yZGVyLnJlYWQiLCJzYWxlcy5jdXN0b21lci53cml0ZSIsInJlcXVlc3Rmb3JxdW90ZS53cml0ZSIsInNhbGVzLm9yZGVyLmJvb2siLCJyZXF1ZXN0Zm9ycXVvdGUucmVhZCIsInNhbGVzLmxlYWQucmVhZCIsInB1cmNoYXNlLm9yZGVyLnJlYWQiLCJzYWxlcy5xdW90ZS5yZWFkIiwic2FsZXMucXVvdGUud3JpdGUiLCJjYXRhbG9nLml0ZW0ucmVhZCIsInNhbGVzLmxlYWQud3JpdGUiLCJzZXJ2aWNlLnJlcXVlc3Quc3VibWl0Iiwic2FsZXMub3JkZXIuZGVsaXZlcnlhZGRyZXNzLnJlYWQiLCJwdXJjaGFzZS5vcmRlci53cml0ZSIsInB1cmNoYXNlLm9yZGVyLnByaWNlcy53cml0ZSIsInB1cmNoYXNlLm9yZGVyLnByaWNlcy5yZWFkIiwic2VydmljZS5yZXF1ZXN0LndyaXRlIiwiY2F0YWxvZy5jYXRhbG9nLnJlYWQiLCJjYXRhbG9nLmNhdGFsb2cud3JpdGUiLCJjYXRhbG9nLmN1cnJlbmN5LnJlYWQiLCJjYXRhbG9nLmN1cnJlbmN5LndyaXRlIiwiY2F0YWxvZy5pdGVtLndyaXRlIiwiY2F0YWxvZy5sb2NhbGl6YXRpb24ucmVhZCIsImNhdGFsb2cubG9jYWxpemF0aW9uLndyaXRlIiwiY2F0YWxvZy5wcm9kdWN0LnJlYWQiLCJjYXRhbG9nLnByb2R1Y3Qud3JpdGUiLCJjYXRhbG9nLnByb2R1Y3RzZXR0aW5nLnJlYWQiLCJjYXRhbG9nLnByb2R1Y3RzZXR0aW5nLndyaXRlIiwiY2F0YWxvZy5zZWxsZXIucmVhZCIsImNhdGFsb2cuc2VsbGVyLndyaXRlIiwiY2F0YWxvZy50YWcud3JpdGUiLCJjYXRhbG9nLnVvbS5yZWFkIiwiY2F0YWxvZy51b20ud3JpdGUiLCJjYXRhbG9nLnZhdGNhdGVnb3J5LnJlYWQiLCJjYXRhbG9nLnZhdGNhdGVnb3J5LndyaXRlIiwiY2F0YWxvZy52ZW5kb3IucmVhZCIsImNhdGFsb2cudmVuZG9yLndyaXRlIiwicHVyY2hhc2Uuc2VsbGVyLnJlYWQiLCJwdXJjaGFzZS5zZWxsZXIud3JpdGUiLCJjYXRhbG9nLmFydGljbGUucmVhZCIsImNhdGFsb2cuYXJ0aWNsZS53cml0ZSIsInNhbGVzLnF1b3RlLmxpbmVzLnJlYWQiLCJzYWxlcy5xdW90ZS5saW5lcy53cml0ZSIsInNhbGVzLnNlbGxlci5yZWFkIiwic2FsZXMuc2VsbGVyLndyaXRlIiwiYWNjb3VudGluZy52ZW5kb3JpbnZvaWNlLnJlYWQiLCJpZGVudGl0eS51c2VyLnJlYWQiLCJpZGVudGl0eS51c2VyLndyaXRlIiwiaWRlbnRpdHkucm9sZS5yZWFkIiwic2VsbGVyLnByb2R1Y3RwcmljZS5zZXR0aW5ncy5yZWFkIiwic2VsbGVyLnByb2R1Y3RwcmljZS5zZXR0aW5ncy53cml0ZSIsImNvbmZpZ3VyYXRvci5wdXJjaGFzZXByaWNlLnJlYWQiLCJzdG9jay5mYWJyaWMucmVhZCIsInNhbGVzLm9yZGVyLnBsYWNlIl0sIm5hbWUiOiJSb2JpbiIsImZhbWlseV9uYW1lIjoiZGUgV2ludGVyIChDb2xpam4tSVQpIiwicm9sZSI6WyJzZWxsZXIiLCJkZWFsZXJfbWFuYWdlciJdLCJpYXQiOjE3MzcxMjQ2NDQsInNjb3BlIjpbImNhdGFsb2dxdWVyeWFwaSIsImNvbmZpZ3VyYXRvcmFwaSIsInByb2R1Y3R2YXJpYW50Y29tbWFuZGFwaSIsInByb2R1Y3R2YXJpYW50cXVlcnlhcGkiXSwiYW1yIjpbImltcGVyc29uYXRpb24iXX0.IrmgJbyPrWwNYO1xgyFcV3OsmQ7qF5nbhux8opLz8VW4za3co4aXUE4E9HYBzJFpurcv9T7oL0AhbQq4zbjNSW973GYAFI_euIMZobtzXHK_coBuTxWXnfDC8MmFAJhduIt1HXgYVX6dtY_RWwaHfEIy4J5YBjxzWgHgDrRG_Edn5_QKfC6PuTzLUoHkIaulehGk8ptlRKwNoHiGAxkHt-grefBjPlyeW98O9PqPzl4_wR6P_c8wJQiFCjAPpADvkKuwdN06BJ2Q9mXQasYOom5M6f-B51PBRyajX-f20rA3jj16bRLnIqvWRZ-p-U2zxfWUKwBAXa-aEcLH6LHTAQ\";\r\n\r\n @Input()\r\n public variant: string = '';\r\n\r\n @Input()\r\n public urlParams: ExternalSourceParameter[] = [];\r\n\r\n @Output()\r\n public configuratorFinished: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n @Output()\r\n public configurationError: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n\r\n @HostBinding('class.co-product-hd')\r\n public showClass: boolean = true;\r\n\r\n public hdeConfigurator: ElementRef;\r\n\r\n private _sku: string;\r\n\r\n constructor(\r\n private _scriptLoader: ProductScriptLoaderService,\r\n private _renderer: Renderer2\r\n ) {\r\n }\r\n\r\n ngOnDestroy() {\r\n this._scriptLoader.unloadScripts(this._renderer);\r\n }\r\n\r\n public handleConfigurationFinished(event: CustomEvent): void {\r\n if (event.detail.variant && typeof event.detail.variant === 'string') {\r\n this.configuratorFinished.emit(event.detail.variant);\r\n } else {\r\n this.configuratorFinished.emit(this.variant);\r\n }\r\n }\r\n\r\n public handleError(event: CustomEvent): void {\r\n this.configurationError.emit(event.detail.status);\r\n }\r\n\r\n private _prepareAttributes(): void {\r\n if (this.hdeConfigurator && this.hdeConfigurator.nativeElement && this.urlParams && this.token && (this.sku || this.variant)) {\r\n //for local testing please turn off for packing and publishing!\r\n //this.prepareTestingUrlparams();\r\n\r\n this._prepareConfiguratorUrls();\r\n this.hdeConfigurator.nativeElement.setAttribute('bearerToken', this.token);\r\n if (this._sku) {\r\n this.hdeConfigurator.nativeElement.setAttribute('data-productId', this._sku);\r\n }\r\n if (this.variant) {\r\n this.hdeConfigurator.nativeElement.setAttribute('data-productVariantId', this.variant);\r\n }\r\n this._loadTheScripts();\r\n }\r\n }\r\n\r\n //set necessary references to configurator.\r\n private _prepareConfiguratorUrls(): void {\r\n //fetch the setting from the external source\r\n let apiurl: string = this.urlParams.find((item: ExternalSourceParameter) => item.key === 'apiurl').value;\r\n let productVariantCommandApiUrl: string = this.urlParams.find((item: ExternalSourceParameter) => item.key === 'productVariantCommandApiUrl').value;\r\n let productVariantQueryApiUrl: string = this.urlParams.find((item: ExternalSourceParameter) => item.key === 'productVariantQueryApiUrl').value;\r\n let localizationApiUrl: string = this.urlParams.find((item: ExternalSourceParameter) => item.key === 'localizationApiUrl').value;\r\n\r\n //apply to configurator\r\n this.hdeConfigurator.nativeElement.setAttribute('apiurl', apiurl);\r\n this.hdeConfigurator.nativeElement.setAttribute('productVariantCommandApiUrl', productVariantCommandApiUrl);\r\n this.hdeConfigurator.nativeElement.setAttribute('productVariantQueryApiUrl', productVariantQueryApiUrl);\r\n this.hdeConfigurator.nativeElement.setAttribute('localizationApiUrl', localizationApiUrl)\r\n }\r\n\r\n // load external scripts into client\r\n private async _loadTheScripts(): Promise<void> {\r\n let headerUrls: string = this.urlParams.find((item: ExternalSourceParameter) => item.key === 'header').value;\r\n let headerArray: string[] = headerUrls.replace(/\\s+/g, '').split(',');\r\n for (let i = 0; i < headerArray.length; i++) {\r\n await this._scriptLoader.loadScript(headerArray[i], this._renderer).catch((error) => console.error(error));\r\n }\r\n\r\n let styles: string = this.urlParams.find((item: ExternalSourceParameter) => item.key === 'stylesheet').value;\r\n let stylesArray: string[] = styles.replace(/\\s+/g, '').split(',');\r\n for (let j = 0; j < stylesArray.length; j++) {\r\n await this._scriptLoader.addStyleSheet(stylesArray[j], this._renderer);\r\n }\r\n\r\n //for local testing please turn off for packing and publishing!\r\n /*const scripts: string[] = [\r\n // hard-coded for now, should come from the external source\r\n 'https://hde-cdn.azureedge.net/libs/components/Configurator/1.0.33/polyfills.js',\r\n 'https://hde-cdn.azureedge.net/libs/components/Configurator/1.0.33/runtime.js',\r\n 'https://hde-cdn.azureedge.net/libs/components/Configurator/1.0.33/main.js'\r\n ]\r\n for (let i = 0; i < scripts.length; i++) {\r\n await this._scriptLoader.loadScript(scripts[i], this._renderer).catch((error) => console.error(error));\r\n }\r\n await this._scriptLoader.addStyleSheet('https://hde-cdn.azureedge.net/libs/components/Configurator/1.0.33/styles.css', this._renderer);*/\r\n }\r\n\r\n\r\n\r\n //for local testing please turn off for packing and publishing!\r\n /*private prepareTestingUrlparams(): void {\r\n let headers: ExternalSourceParameter = new ExternalSourceParameter();\r\n headers.id = 1;\r\n headers.key = 'header';\r\n headers.value = 'https://hde-cdn.azureedge.net/libs/components/Configurator/1.0.33/polyfills.js,https://hde-cdn.azureedge.net/libs/components/Configurator/1.0.33/runtime.js,https://hde-cdn.azureedge.net/libs/components/Configurator/1.0.33/main.js';\r\n let styles: ExternalSourceParameter = new ExternalSourceParameter();\r\n styles.id = 2;\r\n styles.key = 'stylesheet';\r\n styles.value = 'https://hde-cdn.azureedge.net/libs/components/Configurator/1.0.33/styles.css';\r\n this.urlParams.push(headers);\r\n this.urlParams.push(styles);\r\n let aurl: ExternalSourceParameter = new ExternalSourceParameter();\r\n aurl.id = 3;\r\n aurl.key = 'apiurl';\r\n aurl.value = 'https://bmsproductconfigurator-acceptance.azurewebsites.net/api/configurator/';\r\n let purl: ExternalSourceParameter = new ExternalSourceParameter();\r\n purl.id = 4;\r\n purl.key = 'productVariantCommandApiUrl';\r\n purl.value = 'https://bmsproductvariantcommand-acceptance.azurewebsites.net/';\r\n let qurl: ExternalSourceParameter = new ExternalSourceParameter();\r\n qurl.id = 5;\r\n qurl.key = 'productVariantQueryApiUrl';\r\n qurl.value = 'https://bmsproductvariantquery-acceptance.azurewebsites.net/';\r\n let lurl: ExternalSourceParameter = new ExternalSourceParameter();\r\n lurl.id = 6;\r\n lurl.key = 'localizationApiUrl';\r\n lurl.value = 'https://hde-cdn.azureedge.net/libs/BMS.DST.Localization/';\r\n this.urlParams.push(headers);\r\n this.urlParams.push(styles);\r\n this.urlParams.push(aurl);\r\n this.urlParams.push(purl);\r\n this.urlParams.push(qurl);\r\n this.urlParams.push(lurl);\r\n }*/\r\n}\r\n","import {CUSTOM_ELEMENTS_SCHEMA, NgModule, NO_ERRORS_SCHEMA} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductHdComponent} from './product-hd.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n ProductHdComponent\r\n ],\r\n schemas: [\r\n CUSTOM_ELEMENTS_SCHEMA,\r\n NO_ERRORS_SCHEMA\r\n ],\r\n exports: [\r\n ProductHdComponent\r\n ]\r\n})\r\nexport class ProductHdModule {\r\n}\r\n","import {Component, EventEmitter, HostBinding, Input, OnDestroy, OnInit, Output, ViewEncapsulation} from '@angular/core';\r\nimport {DomSanitizer, SafeResourceUrl} from '@angular/platform-browser';\r\nimport {ExternalSource} from '@colijnit/articleapi/build/model/external-source.bo';\r\nimport {ProductConnectorService} from '../../service/product-connector.service';\r\nimport {ArticleListObject} from '@colijnit/articleapi/build/model/article-list-object';\r\nimport {ProductEventService} from '../../service/product-event.service';\r\nimport {Subscription} from 'rxjs';\r\nimport {ProductSettingsService} from '../../service/product-settings.service';\r\nimport {ProductConnectorAdapterService} from '../../service/product-connector-adapter.service';\r\nimport {CatalogDefinition} from '@colijnit/articleapi/build/model/catalog-definition.bo';\r\nimport {ExternalSourceArticleAddInterface} from '@colijnit/articleapi/build/interface/external-source-article-add.interface';\r\nimport {ArticleListObjectExtended} from '@colijnit/articleapi/build/model/article-list-object-extended.bo';\r\nimport {ExternalCatalogStartupInfo} from '@colijnit/articleapi/build/model/external-catalog-startup-info';\r\nimport {ExternalSourceParameter} from '@colijnit/articleapi/build/model/external-source-parameter.bo';\r\n\r\n@Component({\r\n selector: 'co-product-external-source',\r\n template: `\r\n <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 [externalSource]=\"externalSource\"\r\n ></app-product-page>\r\n </ng-container>\r\n <ng-container *ngIf=\"showSource\">\r\n <iframe width=\"100%\" height=\"100%\" [src]=\"safeUrl\" frameborder=\"0\" allowfullscreen></iframe>\r\n </ng-container>\r\n <ng-container *ngIf=\"showConfigurator\">\r\n <co-product-hd width=\"100%\" height=\"100%\"\r\n [sku]=\"sku\"\r\n [variant]=\"variant\"\r\n [token]=\"token\"\r\n [urlParams]=\"urlParams\"\r\n (configuratorFinished)=\"handleConfigurationFinished($event)\"></co-product-hd>\r\n </ng-container>\r\n </ng-container>\r\n `,\r\n providers: [\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 catalogDefinition: CatalogDefinition;\r\n\r\n @Input()\r\n public set externalSource(value: ExternalSource) {\r\n this._externalSource = value;\r\n this.loaded = false;\r\n this._prepareExternalSource();\r\n }\r\n\r\n public get externalSource(): ExternalSource {\r\n return this._externalSource;\r\n }\r\n\r\n @Input()\r\n public set externalCatalogStartupInfo(value: ExternalCatalogStartupInfo) {\r\n if (value) {\r\n this._externalCatalogStartupInfo = value;\r\n this.externalSource = value.externalSource;\r\n this.loaded = false;\r\n this._prepareExternalSource();\r\n }\r\n }\r\n\r\n public get externalCatalogStartupInfo(): ExternalCatalogStartupInfo {\r\n return this._externalCatalogStartupInfo;\r\n }\r\n\r\n @Input()\r\n public options: {};\r\n\r\n @Output()\r\n public addToCart: EventEmitter<ExternalSourceArticleAddInterface> = new EventEmitter<ExternalSourceArticleAddInterface>();\r\n\r\n @Output()\r\n public addToQuote: EventEmitter<ExternalSourceArticleAddInterface> = new EventEmitter<ExternalSourceArticleAddInterface>();\r\n\r\n @Output()\r\n public alternativeClick: EventEmitter<ArticleListObject> = new EventEmitter<ArticleListObject>();\r\n\r\n @Output()\r\n public configuratorFinished: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n @HostBinding('class.co-product-external-source')\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n public showProduct: boolean = false;\r\n public showConfigurator: boolean = false;\r\n public showSource: boolean = false;\r\n public safeUrl: SafeResourceUrl;\r\n public loaded: boolean = false;\r\n public externalUrl: string;\r\n public externalSettings: any = {};\r\n\r\n public token: string = \"\";//= \"eyJhbGciOiJSUzI1NiIsImtpZCI6IkYxOThERkVEOEUwQTQ1MzY3M0M1MUE2Rjk1QUVDQzU3RTM0NjM4RkRSUzI1NiIsInR5cCI6ImF0K2p3dCIsIng1dCI6IjhaamY3WTRLUlRaenhScHZsYTdNVi1OR09QMCJ9.eyJuYmYiOjE3MzIxOTkyOTUsImV4cCI6MTczMjIwMjg5NSwiaXNzIjoiaHR0cHM6Ly9ibXNpZGVudGl0eS1hY2NlcHRhbmNlLmF6dXJld2Vic2l0ZXMubmV0IiwiYXVkIjpbImNhdGFsb2dxdWVyeWFwaSIsImNvbmZpZ3VyYXRvcmFwaSIsInByb2R1Y3R2YXJpYW50Y29tbWFuZGFwaSIsInByb2R1Y3R2YXJpYW50cXVlcnlhcGkiXSwiY2xpZW50X2lkIjoiaW1wZXJzb25hdGlvbi5jbGllbnQiLCJzdWIiOiIwOTMwZDI4Mi05NGU4LTQ5MGEtOGI2NC1mYTk1YmIyYzE1ODIiLCJhdXRoX3RpbWUiOjE3MzIxOTkyOTUsImlkcCI6ImxvY2FsIiwiZW52aXJvbm1lbnQiOiJNU0wiLCJzZWxsZXIiOiJTRTAwMDA5NiIsInNlbGxlcmd1aWQiOiIxMDk1MWJjNS1hZmMzLTQ1MGEtNmVkMS0wOGQ4NDNlNmE5OTQiLCJwZXJtaXNzaW9uIjpbInNhbGVzLmV4cG9ydHRlbXBsYXRlcy5yZWFkIiwiZG9jdW1lbnRsaWJyYXJ5LnRhZy5yZWFkIiwiZG9jdW1lbnRsaWJyYXJ5LmRvY3VtZW50LnJlYWQiLCJkb2N1bWVudGxpYnJhcnkudGFnZ3JvdXAucmVhZCIsInNhbGVzLm9yZGVyLndyaXRlIiwic2FsZXMuY3VzdG9tZXIucmVhZCIsInNhbGVzLm9yZGVyLmRlbGl2ZXJ5YWRkcmVzcy53cml0ZSIsInNlcnZpY2UucmVxdWVzdC5yZWFkIiwiY2F0YWxvZy50YWcucmVhZCIsInNhbGVzLm9yZGVyLnJlYWQiLCJzYWxlcy5jdXN0b21lci53cml0ZSIsInJlcXVlc3Rmb3JxdW90ZS53cml0ZSIsInNhbGVzLm9yZGVyLmJvb2siLCJyZXF1ZXN0Zm9ycXVvdGUucmVhZCIsInNhbGVzLmxlYWQucmVhZCIsInB1cmNoYXNlLm9yZGVyLnJlYWQiLCJzYWxlcy5xdW90ZS5yZWFkIiwic2FsZXMucXVvdGUud3JpdGUiLCJjYXRhbG9nLml0ZW0ucmVhZCIsInNhbGVzLmxlYWQud3JpdGUiLCJzZXJ2aWNlLnJlcXVlc3Quc3VibWl0Iiwic2FsZXMub3JkZXIuZGVsaXZlcnlhZGRyZXNzLnJlYWQiLCJwdXJjaGFzZS5vcmRlci53cml0ZSIsInB1cmNoYXNlLm9yZGVyLnByaWNlcy53cml0ZSIsInB1cmNoYXNlLm9yZGVyLnByaWNlcy5yZWFkIiwic2VydmljZS5yZXF1ZXN0LndyaXRlIiwiY2F0YWxvZy5jYXRhbG9nLnJlYWQiLCJjYXRhbG9nLmNhdGFsb2cud3JpdGUiLCJjYXRhbG9nLmN1cnJlbmN5LnJlYWQiLCJjYXRhbG9nLmN1cnJlbmN5LndyaXRlIiwiY2F0YWxvZy5pdGVtLndyaXRlIiwiY2F0YWxvZy5sb2NhbGl6YXRpb24ucmVhZCIsImNhdGFsb2cubG9jYWxpemF0aW9uLndyaXRlIiwiY2F0YWxvZy5wcm9kdWN0LnJlYWQiLCJjYXRhbG9nLnByb2R1Y3Qud3JpdGUiLCJjYXRhbG9nLnByb2R1Y3RzZXR0aW5nLnJlYWQiLCJjYXRhbG9nLnByb2R1Y3RzZXR0aW5nLndyaXRlIiwiY2F0YWxvZy5zZWxsZXIucmVhZCIsImNhdGFsb2cuc2VsbGVyLndyaXRlIiwiY2F0YWxvZy50YWcud3JpdGUiLCJjYXRhbG9nLnVvbS5yZWFkIiwiY2F0YWxvZy51b20ud3JpdGUiLCJjYXRhbG9nLnZhdGNhdGVnb3J5LnJlYWQiLCJjYXRhbG9nLnZhdGNhdGVnb3J5LndyaXRlIiwiY2F0YWxvZy52ZW5kb3IucmVhZCIsImNhdGFsb2cudmVuZG9yLndyaXRlIiwicHVyY2hhc2Uuc2VsbGVyLnJlYWQiLCJwdXJjaGFzZS5zZWxsZXIud3JpdGUiLCJjYXRhbG9nLmFydGljbGUucmVhZCIsImNhdGFsb2cuYXJ0aWNsZS53cml0ZSIsInNhbGVzLnF1b3RlLmxpbmVzLnJlYWQiLCJzYWxlcy5xdW90ZS5saW5lcy53cml0ZSIsInNhbGVzLnNlbGxlci5yZWFkIiwic2FsZXMuc2VsbGVyLndyaXRlIiwiYWNjb3VudGluZy52ZW5kb3JpbnZvaWNlLnJlYWQiLCJpZGVudGl0eS51c2VyLnJlYWQiLCJpZGVudGl0eS51c2VyLndyaXRlIiwiaWRlbnRpdHkucm9sZS5yZWFkIiwic2VsbGVyLnByb2R1Y3RwcmljZS5zZXR0aW5ncy5yZWFkIiwic2VsbGVyLnByb2R1Y3RwcmljZS5zZXR0aW5ncy53cml0ZSIsImNvbmZpZ3VyYXRvci5wdXJjaGFzZXByaWNlLnJlYWQiLCJzdG9jay5mYWJyaWMucmVhZCJdLCJuYW1lIjoiUm9iaW4iLCJmYW1pbHlfbmFtZSI6ImRlIFdpbnRlciAoQ29saWpuLUlUKSIsInJvbGUiOlsic2VsbGVyIiwiZGVhbGVyX21hbmFnZXIiXSwiaWF0IjoxNzMyMTk5Mjk1LCJzY29wZSI6WyJjYXRhbG9ncXVlcnlhcGkiLCJjb25maWd1cmF0b3JhcGkiLCJwcm9kdWN0dmFyaWFudGNvbW1hbmRhcGkiLCJwcm9kdWN0dmFyaWFudHF1ZXJ5YXBpIl0sImFtciI6WyJpbXBlcnNvbmF0aW9uIl19.rbguVPnkXXDzsM6QKgXulhrF41jIjCuGDV13ig1GC8MewLCJ7wA038OSwT26sx2mCexjvuGYt45YScfPwfTkDy3ErPmHRods64X1dJWZnf-23NTP2iI32K_1vMZH5GOGbMzuFtbKAFQv4hgFAxoyWqFVWyJvuOtQcWyZStROyPHwjAnpnj-x1cVQpOhbO-kQUFvy_VUrPpF3aYVCcO2cFirQTXR6kxSGcYGGcsPY-_eiAd93UdG2EM6xLAocDLaFV72CQI6XEs0WQG1f4SqvH52v3OTkgWBLgYV35gpyIe0-2nazGL0R8pTNuDqrOb7OGmuTRMoTIiRi67-wTxx8cQ\";\r\n public variant: string = \"\";\r\n public urlParams: ExternalSourceParameter[] = [];\r\n\r\n\r\n\r\n private _externalSource: ExternalSource;\r\n private _externalCatalogStartupInfo: ExternalCatalogStartupInfo;\r\n private _subs: Subscription[] = [];\r\n\r\n constructor(\r\n private _sanitizer: DomSanitizer,\r\n private _productConnectorService: ProductConnectorService,\r\n private _appEventService: ProductEventService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this._subs.push(\r\n this._appEventService.onAddToCart.subscribe((data: { article: string | ArticleListObjectExtended, quantity: number }) => {\r\n this.addToCart.next({\r\n article: data.article,\r\n quantity: data.quantity,\r\n catalogDefinition: this.catalogDefinition,\r\n externalSource: this._externalSource\r\n });\r\n }),\r\n this._appEventService.onAddToQuote.subscribe(json => {\r\n this.addToQuote.next({\r\n article: json,\r\n quantity: 1,\r\n catalogDefinition: this.catalogDefinition,\r\n externalSource: this._externalSource\r\n });\r\n }),\r\n this._appEventService.onAlternativeClick.subscribe(article => this.alternativeClick.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 public handleConfigurationFinished(variantString: string) {\r\n this.configuratorFinished.emit(variantString);\r\n }\r\n\r\n private async _prepareExternalSource(): Promise<void> {\r\n if (!this._externalSource) {\r\n return;\r\n }\r\n this.externalUrl = undefined;\r\n this.externalSettings = {};\r\n if (this.externalSource.type === 'CATF') {\r\n await this._prepareCatFarm();\r\n } else if (this.externalSource.type === 'HTDL'){\r\n this._prepareConfigurator();\r\n } else {\r\n this._prepareSource();\r\n }\r\n }\r\n\r\n private async _prepareCatFarm(): Promise<void> {\r\n // get bundle settings from external source\r\n const bundleSettings: string = await this._productConnectorService.getProductBundleSettings(this.externalSource.url, parseInt(this.externalSource.schema, 0));\r\n this.externalSettings = JSON.parse(bundleSettings);\r\n if (this.options) {\r\n this.externalSettings.options = this.options;\r\n }\r\n // this.externalSettings.assetPath = \"https://cdn1.colijn-it.nl/content43\";\r\n // this.externalSettings.threeDAssetPath = \"https://cdn1.colijn-it.nl/content43\";\r\n if (this.externalSource.username && this.externalSource.password) {\r\n this.externalSettings.useLoginEncryption = true;\r\n this.externalSettings.username = this.externalSource.username;\r\n this.externalSettings.password = this.externalSource.password;\r\n }\r\n // finally show the catalog\r\n this.switchToProduct();\r\n this.loaded = true;\r\n }\r\n\r\n private _prepareConfigurator(): void {\r\n if(this.externalCatalogStartupInfo) {\r\n this.token = this.externalCatalogStartupInfo.token;\r\n this.sku = this.externalCatalogStartupInfo.externalGoodId;\r\n this.variant = this.externalCatalogStartupInfo.flattenedGoodId;\r\n this.urlParams = this.externalCatalogStartupInfo.externalSource.parameters;\r\n this.switchToConfigurator();\r\n this.loaded = true;\r\n }\r\n }\r\n\r\n private _prepareSource(): void {\r\n this.externalUrl = this.externalSource.url;\r\n this.safeUrl = this._sanitizer.bypassSecurityTrustResourceUrl(this.externalUrl);\r\n this.switchToSource();\r\n this.loaded = true;\r\n }\r\n\r\n private switchToProduct():void {\r\n this.showProduct = true;\r\n this.showConfigurator = false;\r\n this.showSource = false;\r\n }\r\n\r\n private switchToConfigurator():void {\r\n this.showProduct = false;\r\n this.showConfigurator = true;\r\n this.showSource = false;\r\n }\r\n\r\n private switchToSource():void {\r\n this.showProduct = false;\r\n this.showConfigurator = false;\r\n this.showSource = true;\r\n }\r\n\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductExternalSourceComponent} from './product-external-source.component';\r\nimport {ProductPageModule} from '../product-page/product-page.module';\r\nimport {ProductHdModule} from '../product-hd/product-hd.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ProductPageModule,\r\n ProductHdModule\r\n ],\r\n declarations: [\r\n ProductExternalSourceComponent\r\n ],\r\n exports: [\r\n ProductExternalSourceComponent\r\n ]\r\n})\r\nexport class ProductExternalSourceModule {\r\n}\r\n","import {CUSTOM_ELEMENTS_SCHEMA, NgModule, NO_ERRORS_SCHEMA} from '@angular/core';\nimport {IoneProductComponent} from './ione-product.component';\nimport {CommonModule} from '@angular/common';\n// import {BrowserAnimationsModule} from '@angular/platform-browser/animations';\nimport {ProductPageModule} from './components/product-page/product-page.module';\nimport {ProductHdModule} from './components/product-hd/product-hd.module';\nimport {ProductExternalSourceModule} from './components/product-external-source/product-external-source.module';\nimport {ButtonModule} from '@colijnit/corecomponents_v12';\n\n@NgModule({\n imports: [\n // BrowserAnimationsModule,\n CommonModule,\n ProductPageModule,\n ProductHdModule,\n ProductExternalSourceModule,\n ButtonModule\n ],\n declarations: [\n IoneProductComponent\n ],\n exports: [\n IoneProductComponent\n ],\n schemas: [\n CUSTOM_ELEMENTS_SCHEMA,\n NO_ERRORS_SCHEMA\n ],\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 ɵu} from './app/components/core/header/header.component';\nexport {HeaderModule as ɵt} from './app/components/core/header/header.module';\nexport {ImageCarouselComponent as ɵj} from './app/components/image-carousel/image-carousel.component';\nexport {ImageCarouselModule as ɵi} from './app/components/image-carousel/image-carousel.module';\nexport {ProductAdditionalDescriptionComponent as ɵn} from './app/components/product-additional-description/product-additional-description.component';\nexport {ProductAdditionalDescriptionModule as ɵm} from './app/components/product-additional-description/product-additional-description.module';\nexport {ProductAdditionalInfoComponent as ɵbc} from './app/components/product-additional-info/product-additional-info.component';\nexport {ProductAdditionalInfoModule as ɵbb} from './app/components/product-additional-info/product-additional-info.module';\nexport {ProductAddtocartComponent as ɵr} from './app/components/product-addtocart/product-addtocart.component';\nexport {ProductAddtocartModule as ɵq} from './app/components/product-addtocart/product-addtocart.module';\nexport {ProductDeliveryComponent as ɵz} from './app/components/product-delivery/product-delivery.component';\nexport {ProductDeliveryModule as ɵy} from './app/components/product-delivery/product-delivery.module';\nexport {ProductDescriptionComponent as ɵl} from './app/components/product-description/product-description.component';\nexport {ProductDescriptionModule as ɵk} from './app/components/product-description/product-description.module';\nexport {ProductDialogComponent as ɵbl} from './app/components/product-dialog/product-dialog.component';\nexport {ProductDialogModule as ɵbk} from './app/components/product-dialog/product-dialog.module';\nexport {ProductDocumentModule as ɵbf} from './app/components/product-documents/product-document.module';\nexport {ProductDocumentsComponent as ɵbg} from './app/components/product-documents/product-documents.component';\nexport {ProductHdComponent as ɵbq} from './app/components/product-hd/product-hd.component';\nexport {ProductHdModule as ɵbp} from './app/components/product-hd/product-hd.module';\nexport {ProductInfoTabsComponent as ɵbj} from './app/components/product-info-tabs/product-info-tabs.component';\nexport {ProductInfoTabsModule as ɵba} from './app/components/product-info-tabs/product-info-tabs.module';\nexport {ProductPageComponent as ɵbo} 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 {ProductPriceModule as ɵo} from './app/components/product-price/product-price.module';\nexport {ProductPropertiesComponent as ɵbe} from './app/components/product-properties/product-properties.component';\nexport {ProductPropertiesModule as ɵbd} from './app/components/product-properties/product-properties.module';\nexport {ProductRelatedComponent as ɵv} from './app/components/product-related/product-related.component';\nexport {ProductRelatedModule as ɵs} from './app/components/product-related/product-related.module';\nexport {ProductSelectorTypeComponent as ɵg} from './app/components/product-selector-type/product-selector-type.component';\nexport {ProductSelectorTypeModule as ɵb} from './app/components/product-selector-type/product-selector-type.module';\nexport {ProductStockComponent as ɵx} from './app/components/product-stock/product-stock.component';\nexport {ProductStockModule as ɵw} from './app/components/product-stock/product-stock.module';\nexport {ProductSymbolsComponent as ɵbi} from './app/components/product-symbols/product-symbols.component';\nexport {ProductSymbolsModule as ɵbh} from './app/components/product-symbols/product-symbols.module';\nexport {RenderCarouselComponent as ɵbn} from './app/components/render-carousel/render-carousel.component';\nexport {RenderCarouselModule as ɵbm} from './app/components/render-carousel/render-carousel.module';\nexport {LocalizePipe as ɵd} from './app/pipe/localize.pipe';\nexport {PipeModule as ɵc} from './app/pipe/pipe.module';\nexport {DictionaryService as ɵe} from './app/service/dictionary.service';\nexport {IconCacheService as ɵh} from './app/service/icon-cache.service';\nexport {ProductScriptLoaderService as ɵbr} from './app/service/product-script-loader.service';\nexport {JsonUtilsService as ɵf} from './app/utils/json-utils.service';"],"names":["Subject","Directive","Injectable","StringUtils","HttpClient","RenderParameters","Options","BehaviorSubject","BusinessObjectFactory","Articles","Transaction","MainApi","ArticleListObjectExtended","DeliveryPrognosis","ArticleFullObject","SuperArticle","DocumentContent","TransactionInfoResponse","EventEmitter","Component","ViewEncapsulation","Input","Output","DomSanitizer","trigger","state","style","transition","animate","Renderer2","ChangeDetectorRef","ViewChild","ElementRef","Pipe","NgModule","CommonModule","IconModule","CoDocument","ChangeDetectionStrategy","HostListener","HostBinding","LoaderModule","ScrollContainerModule","PriceDisplayPipeModule","ConfiguratorStatisticsEnvironment","NumberPickerModule","ButtonModule","ArticleTileModule","SecurityContext","FilesUploadModule","TileModule","IconCollapseHandleModule","CUSTOM_ELEMENTS_SCHEMA","isPlatformBrowser","Inject","PLATFORM_ID","NO_ERRORS_SCHEMA"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"colijnit-product.umd.js","sources":["../../src/app/product-version.ts","../../node_modules/tslib/tslib.es6.mjs","../../src/app/model/settings-options.ts","../../src/app/model/render-modes.ts","../../src/app/model/render-parameters.ts","../../src/app/model/productSettings.ts","../../src/app/service/product-event.service.ts","../../src/app/service/product-connector-adapter.service.ts","../../src/app/utils/json-utils.service.ts","../../src/app/enum/language-code.enum.ts","../../src/assets/dictionary/text.properties.ts","../../src/app/service/dictionary.service.ts","../../src/app/service/product-settings.service.ts","../../src/app/service/product-connector.service.ts","../../src/app/bundle/service/local-storage.service.ts","../../src/app/ione-product.component.ts","../../src/app/model/stock-and-delivery.ts","../../src/app/enum/selector-type.enum.ts","../../src/app/enum/icon.enum.ts","../../src/app/model/icon.ts","../../src/app/service/icon-cache.service.ts","../../src/app/components/product-page/product-page.component.ts","../../src/app/components/product-selector-type/product-selector-type.component.ts","../../src/app/pipe/localize.pipe.ts","../../src/app/pipe/pipe.module.ts","../../src/app/components/product-selector-type/product-selector-type.module.ts","../../src/app/components/image-carousel/image-carousel.component.ts","../../src/app/components/image-carousel/image-carousel.module.ts","../../src/app/components/product-description/product-description.component.ts","../../src/app/components/product-description/product-description.module.ts","../../src/app/utils/bit-utils.ts","../../src/app/components/product-additional-description/product-additional-description.component.ts","../../src/app/components/product-additional-description/product-additional-description.module.ts","../../src/app/components/product-price/product-price.component.ts","../../src/app/components/product-price/product-price.module.ts","../../src/app/components/product-addtocart/product-addtocart.component.ts","../../src/app/components/product-addtocart/product-addtocart.module.ts","../../src/app/components/product-related/product-related.component.ts","../../src/app/components/core/header/header.component.ts","../../src/app/components/core/header/header.module.ts","../../src/app/components/product-related/product-related.module.ts","../../src/app/components/product-stock/product-stock.component.ts","../../src/app/components/product-stock/product-stock.module.ts","../../src/app/components/product-delivery/product-delivery.component.ts","../../src/app/components/product-delivery/product-delivery.module.ts","../../src/app/components/product-info-tabs/product-info-tabs.component.ts","../../src/app/components/product-additional-info/product-additional-info.component.ts","../../src/app/components/product-additional-info/product-additional-info.module.ts","../../src/app/components/product-properties/product-properties.component.ts","../../src/app/components/product-properties/product-properties.module.ts","../../src/app/components/product-documents/product-documents.component.ts","../../src/app/components/product-documents/product-document.module.ts","../../src/app/components/product-symbols/product-symbols.component.ts","../../src/app/components/product-symbols/product-symbols.module.ts","../../src/app/components/product-info-tabs/product-info-tabs.module.ts","../../src/app/components/product-dialog/product-dialog.component.ts","../../src/app/components/product-dialog/product-dialog.module.ts","../../src/app/components/render-carousel/render-carousel.component.ts","../../src/app/components/render-carousel/render-carousel.module.ts","../../src/app/components/product-page/product-page.module.ts","../../src/app/service/product-script-loader.service.ts","../../src/app/components/product-hd/product-hd.component.ts","../../src/app/components/product-hd/product-hd.module.ts","../../src/app/components/product-external-source/product-external-source.component.ts","../../src/app/components/product-external-source/product-external-source.module.ts","../../src/app/ione-product.module.ts","../../src/colijnit-product.ts"],"sourcesContent":["// this file is dynamically created, do not change this\nexport class Version {\n public name = \"@colijnit/product\";\n public description = \"Product detail page project for iOne\";\n public symVer = \"259.1.0\";\n public publishDate = \"7/9/2025, 9:58:59 AM\";\n}","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","export class SettingsOptions {\r\n public showStockStatus: boolean = false;\r\n public showZoomButton: boolean = false;\r\n public showTagFilter: boolean = false;\r\n public showAsConfigured: boolean = false;\r\n public inlineAnswers: boolean = false;\r\n public showArButton: boolean = false;\r\n\r\n public arEnabled: boolean = false;\r\n public vrEnabled: boolean = false;\r\n}\r\n","export enum RenderModes {\r\n RenderRoom = 'render_room',\r\n RenderShop = 'render_shop',\r\n RenderIone = 'render_ione'\r\n}\r\n","import { RenderModes } from './render-modes';\r\n\r\nexport class RenderParameters {\r\n public host: string = \"\";\r\n public port: number = 0;\r\n public secure: boolean = false;\r\n public renderMode: RenderModes = RenderModes.RenderShop;\r\n}\r\n","import { SettingsOptions } from './settings-options';\r\nimport { RenderParameters } from './render-parameters';\r\nimport {LanguageCode} from '@colijnit/ioneconnector/build/enum/language-code.enum';\r\nimport {GetAccessTokenFunction, Options} from '@colijnit/ioneconnector/build/model/options';\r\n\r\nexport class ProductSettings extends Options {\r\n public currency: number;\r\n public session: any = undefined;\r\n public createWebOrder: boolean = true;\r\n public assetPath: string;\r\n public assetIndex: string;\r\n public currencySymbol: string = '€';\r\n public threeDAssetPath: string;\r\n public lightPresetsIndex: string;\r\n public additionalTranslationFile: string;\r\n public gtm: string;\r\n public client: string;\r\n public options: SettingsOptions = new SettingsOptions();\r\n public renderParameters: RenderParameters = new RenderParameters();\r\n}\r\n","import {Directive, Injectable, Output} from '@angular/core';\r\nimport {Subject} from 'rxjs';\r\nimport {ArticleListObject} from '@colijnit/articleapi/build/model/article-list-object';\r\nimport {Selection} from '@colijnit/articleapi/build/model/selection';\r\nimport {ArticleQuickSel} from '@colijnit/articleapi/build/model/article-quick-sel';\r\nimport {ArticleExtended} from '@colijnit/articleapi/build/model/article-extended.bo';\r\nimport {ArticleListObjectExtended} from '@colijnit/articleapi/build/model/article-list-object-extended.bo';\r\nimport {ValidationMessage} from '@colijnit/ioneconnector/build/model/validation-message';\r\n\r\n@Directive()\r\n@Injectable()\r\nexport class ProductEventService {\r\n\r\n public onAddToCart: Subject<{ article: string | ArticleListObjectExtended, quantity: number }> = new Subject<{ article: string | ArticleListObjectExtended, quantity: number }>();\r\n public onAlternativeClick: Subject<ArticleListObject> = new Subject<ArticleListObject>();\r\n public onAddToQuote: Subject<string> = new Subject<string>();\r\n public onForceRenderImage: Subject<void> = new Subject<void>();\r\n public onArticleReceived: Subject<ArticleQuickSel> = new Subject<ArticleQuickSel>();\r\n public onSelectionsReceived: Subject<Selection[]> = new Subject<Selection[]>();\r\n public onImageReceived: Subject<string> = new Subject<string>();\r\n public onRenderStarted: Subject<void> = new Subject<void>();\r\n public onRenderImageReceived: Subject<string> = new Subject<string>();\r\n public onDraftRenderImageReceived: Subject<CustomEvent> = new Subject<CustomEvent>();\r\n public onArticleInfoReceived: Subject<string> = new Subject<string>();\r\n public onAnswersAvailable: Subject<boolean> = new Subject<boolean>();\r\n public onReadyToRender: Subject<boolean> = new Subject<boolean>();\r\n public onUpdateProductInfoTab: Subject<number> = new Subject<number>();\r\n public errorMessage: Subject<ValidationMessage[]> = new Subject<ValidationMessage[]>();\r\n public onGetRenderForRenderCarousel: Subject<any> = new Subject<any>();\r\n}\r\n","import {Injectable, OnDestroy} from '@angular/core';\r\nimport {Subject, Subscription} from 'rxjs';\r\nimport {ArticleFullObject} from '@colijnit/articleapi/build/model/article-full-object';\r\nimport {SuperArticle} from '@colijnit/articleapi/build/model/super-article';\r\nimport {ConfiguratorStatisticsEnvironment} from '@colijnit/articleapi/build/model/configurator-statistics-environment';\r\nimport {Articles} from '@colijnit/articleapi/build/articles';\r\nimport {Options} from '@colijnit/ioneconnector/build/model/options';\r\nimport {DataServiceResponseData} from '@colijnit/ioneconnector/build/model/data-service-response-data';\r\nimport {DeliveryPrognosis} from '@colijnit/articleapi/build/model/delivery-prognosis';\r\nimport {DocumentContent} from '@colijnit/articleapi/build/model/document-content';\r\nimport {BusinessObjectFactory} from '@colijnit/ioneconnector/build/service/business-object-factory';\r\nimport {Transaction} from '@colijnit/transactionapi/build/transaction';\r\nimport {ProductSettings} from '../model/productSettings';\r\nimport {MainApi} from '@colijnit/mainapi';\r\nimport {TransactionInfoResponse} from '@colijnit/transactionapi/build/model/transaction-info-response.bo';\r\nimport {ArticleListObjectExtended} from '@colijnit/articleapi/build/model/article-list-object-extended.bo';\r\nimport {ProductEventService} from './product-event.service';\r\nimport {ValidationMessage} from '@colijnit/ioneconnector/build/model/validation-message';\r\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 private _subs: Subscription[] = [];\r\n\r\n constructor(\r\n private _eventService: ProductEventService\r\n ) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._subs.forEach(s => s.unsubscribe());\r\n }\r\n\r\n public async initConnector(options: Options): Promise<void> {\r\n this.articleConnector = new Articles(options);\r\n await this.articleConnector.connect();\r\n this.transactionConnector = new Transaction(options);\r\n this._subs.push(\r\n // @ts-ignore\r\n this.articleConnector.showLoader.subscribe(value => this.showLoader.next(value))\r\n )\r\n }\r\n\r\n public setInstance(instanceId: string): void {\r\n // this.articleConnector.setInstanceToConfigure(instanceId, false);\r\n }\r\n\r\n public async getProductBundleSettings(url: string, upId: number): Promise<string> {\r\n const tempSettings: ProductSettings = new ProductSettings();\r\n tempSettings.url = url;\r\n tempSettings.schema = upId.toString();\r\n const tempMainConnector = new MainApi(tempSettings);\r\n const response: any = await tempMainConnector.getPublicParams(upId);\r\n if (response) {\r\n return response.productSettings;\r\n }\r\n return \"\";\r\n }\r\n\r\n public convertArticleFullObjectToArticleExtended(article: ArticleFullObject): ArticleListObjectExtended {\r\n if (article) {\r\n return this._boFactory.makeWithRawBackendData(ArticleListObjectExtended, article) as ArticleListObjectExtended;\r\n }\r\n }\r\n\r\n public async getDeliveryPrognosis(goodId: number, branchNr?: string): Promise<any> {\r\n const deliveryPrognosis: DeliveryPrognosis = await this.getSelectorDeliveryDate();\r\n if (!deliveryPrognosis || !deliveryPrognosis.returnValue) {\r\n return this.getDeliveryDate2(goodId);\r\n }\r\n return deliveryPrognosis;\r\n }\r\n\r\n public async getSelectorDeliveryDate(): Promise<DeliveryPrognosis> {\r\n const response: DataServiceResponseData = await this.articleConnector.getSelectorDeliveryDate();\r\n if (response && response.validationResult && response.validationResult.success) {\r\n return this._boFactory.makeWithRawBackendData(DeliveryPrognosis, response.resultObject) as unknown as DeliveryPrognosis;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n public async getArtStockStatus(goodId: number): Promise<number> {\r\n const response: DataServiceResponseData = await this.articleConnector.getArtStockStatus(goodId);\r\n if (response && response.validationResult && response.validationResult.success) {\r\n return response.resultObject;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n public async getDeliveryDate2(goodId: number): Promise<DeliveryPrognosis> {\r\n const response: DataServiceResponseData = await this.articleConnector.getDeliveryDate2(goodId);\r\n if (response && response.validationResult && response.validationResult.success) {\r\n return this._boFactory.makeWithRawBackendData(DeliveryPrognosis, response.resultObject) as unknown as DeliveryPrognosis;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n public async getJsonConfiguredArticles(configuratorStatistics?: ConfiguratorStatisticsEnvironment): Promise<string> {\r\n const response: DataServiceResponseData = await this.articleConnector.getJsonConfiguredArticles(configuratorStatistics);\r\n if (response && response.validationResult && response.validationResult.success) {\r\n return response.resultObject;\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n public async getJsonArticleFlatTree(\r\n goodId: number,\r\n goodType: string,\r\n quantity: number,\r\n externalSource: boolean = false,\r\n showLoader: boolean = true,\r\n instanceId?: any,\r\n configuratorStatistics?: ConfiguratorStatisticsEnvironment\r\n ): Promise<string> {\r\n return this.articleConnector.getJsonArticleFlatTree(goodId, goodType, quantity, externalSource, showLoader, instanceId, configuratorStatistics).catch((messages: ValidationMessage[]) => {\r\n this._eventService.errorMessage.next(messages);\r\n return null;\r\n });\r\n }\r\n\r\n public async getGeneratedArtDirectly(goodId: number, showLoader: boolean): Promise<number> {\r\n return this.articleConnector.getGeneratedArtDirectly(goodId, showLoader).catch((messages: ValidationMessage[]) => {\r\n this._eventService.errorMessage.next(messages);\r\n return null;\r\n });\r\n }\r\n\r\n\r\n\r\n public async getGoodIdFromArticleNr(sku: string): Promise<number> {\r\n const response: DataServiceResponseData = await this.articleConnector.getGoodIdFromArticleNr(sku);\r\n if (response && response.validationResult && response.validationResult.success) {\r\n return response.resultObject;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n public async getArticleFullObject(goodId: number, showLoader: boolean = true): Promise<ArticleFullObject> {\r\n const response: DataServiceResponseData = await this.articleConnector.getArticleFullObject(goodId, showLoader);\r\n if (response && response.validationResult && response.validationResult.success) {\r\n return this._boFactory.makeWithRawBackendData(ArticleFullObject, response.resultObject) as ArticleFullObject;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n public async getSuperArticle(id: string, branch?: string): Promise<SuperArticle> {\r\n const response: DataServiceResponseData = await this.articleConnector.getSuperArticleQuickSel(id, branch);\r\n if (response && response.validationResult && response.validationResult.success) {\r\n return this._boFactory.makeWithRawBackendData(SuperArticle, response.resultObject) as SuperArticle;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n public async getDocumentContent(docId: number, thumbnail: boolean = true): Promise<DocumentContent> {\r\n const response: DataServiceResponseData = await this.articleConnector.getDocumentContent(docId, thumbnail);\r\n if (response && response.validationResult && response.validationResult.success) {\r\n return this._boFactory.makeWithRawBackendData(DocumentContent, response.resultObject) as unknown as DocumentContent;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n public async addWebSessionTransactionLine(transactionUuid: string, sku: string, quantity: number): Promise<string> {\r\n const response: DataServiceResponseData = await this.transactionConnector.addWebSessionTransactionLine(transactionUuid, sku, quantity);\r\n if (response && response.validationResult && response.validationResult.success) {\r\n const infoResponse: TransactionInfoResponse = this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject) as TransactionInfoResponse;\r\n return infoResponse.transactionInfo.uuid;\r\n }\r\n return \"\";\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class JsonUtilsService {\r\n\r\n public async readJsonFile(filePath: string): Promise<any> {\r\n try {\r\n const response = await fetch(filePath);\r\n if (!response.ok) {\r\n return null;\r\n } else {\r\n return response.json();\r\n }\r\n } catch (e) {\r\n console.error('Error getting file:', e.message);\r\n return '';\r\n }\r\n }\r\n}\r\n","export enum LanguageCode {\r\n Dutch = \"nl-NL\",\r\n English = \"en-GB\",\r\n German = \"de-DE\",\r\n French = \"fr-FR\",\r\n}\r\n","export class Dictionary {\r\n\r\n public strings: {} = {\r\n \"en\": {\r\n \"ADDITIONAL_DATA\": \"Additional information\",\r\n \"ALTERNATIVE_PRODUCTS\": \"Alternative products\",\r\n \"ARTICLE_NUMBER\": \"Productnumber\",\r\n \"AS_CONFIGURED\": \"As configured\",\r\n \"CATEGORY\": \"Category\",\r\n \"CATEGORY_TYPE\": \"Category type\",\r\n \"CONFIGURE\": \"Configure\",\r\n \"DELIVERY_TIME_PERIOD\": \"Delivery time\",\r\n \"DESCRIPTION\": \"Description\",\r\n \"DOCUMENTS\": \"Documents\",\r\n \"DOWNLOADS\": \"Downloads\",\r\n \"FEATURES\": \"Features\",\r\n \"HEIGHT\": \"Height\",\r\n \"MATERIAL\": \"Material\",\r\n \"PRODUCT_IN_STOCK\": \"In stock\",\r\n \"PRODUCT_LIMITED_STOCK\": \"Limited stock\",\r\n \"PRODUCT_NOT_IN_STOCK\": \"Not in stock\",\r\n \"PROPERTIES\": \"Characteristics\",\r\n \"QUOTATION\": \"Quotation\",\r\n \"READ_MORE\": \"Read more\",\r\n \"RELATED_PRODUCTS\": \"Related products\",\r\n \"SHOPPING_CART_IN\": \"In Shopping Cart\",\r\n \"SHOW_IN\": \"Show in\",\r\n \"STOCK\": \"Stock\",\r\n \"SYMBOLS\": \"Symbols\",\r\n \"TITLE\": \"Title\",\r\n \"TURNOVERGROUP\": \"Turnover group\",\r\n \"VARIANTS\": \"Variations\",\r\n \"WIDTH\": \"Width\",\r\n \"SUGGESTION\": \"Suggestion\",\r\n },\r\n \"nl\": {\r\n \"ADDITIONAL_DATA\": \"Extra informatie\",\r\n \"ALTERNATIVE_PRODUCTS\": \"Alternatieve producten\",\r\n \"ARTICLE_NUMBER\": \"Artikel nummer\",\r\n \"AS_CONFIGURED\": \"Zoals samengesteld\",\r\n \"CATEGORY\": \"Categorie\",\r\n \"CATEGORY_TYPE\": \"Categorie type\",\r\n \"CONFIGURE\": \"Configureren\",\r\n \"DELIVERY_TIME_PERIOD\": \"Levertijd\",\r\n \"DESCRIPTION\": \"Omschrijving\",\r\n \"DOCUMENTS\": \"Documenten\",\r\n \"DOWNLOADS\": \"Downloads\",\r\n \"FEATURES\": \"Kenmerken\",\r\n \"HEIGHT\": \"Hoogte\",\r\n \"MATERIAL\": \"Materiaal\",\r\n \"PRODUCT_IN_STOCK\": \"Op voorraad\",\r\n \"PRODUCT_LIMITED_STOCK\": \"Beperkt op voorraad\",\r\n \"PRODUCT_NOT_IN_STOCK\": \"Niet op voorraad\",\r\n \"PROPERTIES\": \"Eigenschappen\",\r\n \"QUOTATION\": \"Quotatie\",\r\n \"READ_MORE\": \"Lees meer\",\r\n \"RELATED_PRODUCTS\": \"Gerelateerde producten\",\r\n \"SHOPPING_CART_IN\": \"In winkelwagen\",\r\n \"SHOW_IN\": \"Laat zien\",\r\n \"STOCK\": \"Voorraad\",\r\n \"SYMBOLS\": \"Symbolen\",\r\n \"TITLE\": \"Titel\",\r\n \"TURNOVERGROUP\": \"Omzetgroep\",\r\n \"VARIANTS\": \"Varianten\",\r\n \"WIDTH\": \"Breedte\",\r\n \"SUGGESTION\": \"Suggesties bij\",\r\n },\r\n \"de\": {\r\n \"ADDITIONAL_DATA\": \"Extra informatie\",\r\n \"ALTERNATIVE_PRODUCTS\": \"Alternative Produkte\",\r\n \"ARTICLE_NUMBER\": \"Artikelnummer\",\r\n \"CATEGORY\": \"Kategorie\",\r\n \"CATEGORY_TYPE\": \"Kategorietype\",\r\n \"CONFIGURE\": \"Konfigurieren\",\r\n \"DELIVERY_TIME_PERIOD\": \"Lieferzeit\",\r\n \"DESCRIPTION\": \"Beschreibung\",\r\n \"DOCUMENTS\": \"Dateien\",\r\n \"DOWNLOADS\": \"Downloads\",\r\n \"FEATURES\": \"Eigenschaften\",\r\n \"HEIGHT\": \"Höhe\",\r\n \"MATERIAL\": \"Material\",\r\n \"PRODUCT_IN_STOCK\": \"Auf lager\",\r\n \"PRODUCT_LIMITED_STOCK\": \"Begrentzt auf lager\",\r\n \"PRODUCT_NOT_IN_STOCK\": \"Nicht auf lager\",\r\n \"PROPERTIES\": \"Eigenschaften\",\r\n \"QUOTATION\": \"Angebot\",\r\n \"READ_MORE\": \"Lesen Sie mehr\",\r\n \"RELATED_PRODUCTS\": \"Verwandte Produkte\",\r\n \"SHOPPING_CART_IN\": \"Im Einkaufswagen\",\r\n \"SHOW_IN\": \"Zeigen\",\r\n \"STOCK\": \"Vorrat\",\r\n \"SYMBOLS\": \"Symbole\",\r\n \"TITLE\": \"Titulatur\",\r\n \"TURNOVERGROUP\": \"Umsatzgruppe\",\r\n \"VARIANTS\": \"Varianten\",\r\n \"WIDTH\": \"Breite\",\r\n \"SUGGESTION\": \"Suggesties bij\",\r\n }\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { 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(finish: boolean = true): Promise<void> {\r\n // see if there's a json file for application settings\r\n if (typeof settings === 'undefined') {\r\n const jsonSettings = await this._jsonUtilsService.readJsonFile('product-settings.json');\r\n if (jsonSettings) {\r\n this.settings = Object.assign(new ProductSettings(), jsonSettings);\r\n this.settings.options = Object.assign(new SettingsOptions(), this.settings.options);\r\n if (finish) {\r\n this.settingsFinished();\r\n }\r\n }\r\n } else {\r\n this.settings = Object.assign(new ProductSettings(), settings);\r\n this.settings.options = Object.assign(new SettingsOptions(), this.settings.options);\r\n if (finish) {\r\n this.settingsFinished();\r\n }\r\n }\r\n }\r\n\r\n public async createSettingsFromObject(obj: any): Promise<void> {\r\n if (!this.settings) {\r\n this.settings = new ProductSettings();\r\n }\r\n const ownOptions = Object.assign({}, this.settings.options);\r\n const ownRenderParameters = Object.assign({}, this.settings.renderParameters);\r\n this.settings = Object.assign({}, this.settings, obj);\r\n if (obj.renderParameters) {\r\n this.settings.renderParameters = Object.assign({}, ownRenderParameters, obj.renderParameters);\r\n }\r\n if (obj.options) {\r\n this.settings.options = Object.assign({}, ownOptions, obj.options);\r\n }\r\n if (obj.hasOwnProperty('assetPath')) {\r\n this.settings.assetPath = obj['assetPath'];\r\n if (this.settings.assetPath[this.settings.assetPath.length - 1] !== '/') {\r\n this.settings.assetPath += '/';\r\n }\r\n this.settings.threeDAssetPath = this.settings.assetPath;\r\n }\r\n if (obj.hasOwnProperty('threeDAssetPath')) {\r\n this.settings.threeDAssetPath = obj['threeDAssetPath'];\r\n if (this.settings.threeDAssetPath[this.settings.threeDAssetPath.length - 1] !== '/') {\r\n this.settings.threeDAssetPath += '/';\r\n }\r\n }\r\n this.settingsFinished();\r\n }\r\n\r\n public async settingsFinished(): Promise<void> {\r\n await this._dictionaryService.setDictionary(this.settings.languageCode);\r\n this.settingsLoaded.next(true);\r\n }\r\n}\r\n","import {Injectable, OnDestroy} from '@angular/core';\r\nimport {BehaviorSubject, Subscription} from 'rxjs';\r\nimport {Options} from '@colijnit/ioneconnector/build/model/options';\r\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\nimport {ArticleExtended} from '@colijnit/articleapi/build/model/article-extended.bo';\r\nimport {ArticleListObjectExtended} from '@colijnit/articleapi/build/model/article-list-object-extended.bo';\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 convertArticleFullObjectToArticleExtended(article: ArticleFullObject): ArticleListObjectExtended {\r\n return this._adapterService.convertArticleFullObjectToArticleExtended(article);\r\n }\r\n\r\n public async getFullArticle(sku: string): Promise<ArticleFullObject> {\r\n const goodId: number = await this._adapterService.getGoodIdFromArticleNr(sku);\r\n if (goodId) {\r\n return this._adapterService.getArticleFullObject(goodId);\r\n }\r\n return null;\r\n }\r\n\r\n public getDocumentContent(docId: number, thumbnail: boolean = true): Promise<DocumentContent> {\r\n return this._adapterService.getDocumentContent(docId, thumbnail);\r\n }\r\n\r\n public getDeliveryPrognosis(goodId: number): Promise<DeliveryPrognosis> {\r\n return this._adapterService.getDeliveryPrognosis(goodId);\r\n }\r\n\r\n public async getSelectorDeliveryDate(): Promise<DeliveryPrognosis> {\r\n return this._adapterService.getSelectorDeliveryDate();\r\n }\r\n\r\n public getArtStockStatus(goodId: number): Promise<number> {\r\n return this._adapterService.getArtStockStatus(goodId);\r\n }\r\n\r\n public getDeliveryDate2(goodId: number): Promise<DeliveryPrognosis> {\r\n return this._adapterService.getDeliveryDate2(goodId);\r\n }\r\n\r\n public getSuperArticle(id: string): Promise<SuperArticle> {\r\n return this._adapterService.getSuperArticle(id);\r\n }\r\n\r\n public getJsonArticleFlatTree(\r\n goodId: number,\r\n goodType: string,\r\n quantity: number,\r\n externalSource: boolean = false,\r\n showLoader: boolean = true,\r\n configuratorStatistics?: ConfiguratorStatisticsEnvironment): Promise<string> {\r\n return this._adapterService.getJsonArticleFlatTree(goodId, goodType, quantity, externalSource, showLoader, this._instanceId, configuratorStatistics);\r\n }\r\n\r\n public getGeneratedArtDirectly(goodId: number, showLoader: boolean = true): Promise<number> {\r\n return this._adapterService.getGeneratedArtDirectly(goodId, showLoader);\r\n }\r\n\r\n public async addWebSessionTransactionLine(transactionUuid: string, sku: string, quantity: number): Promise<string> {\r\n return await this._adapterService.addWebSessionTransactionLine(transactionUuid, sku, quantity);\r\n }\r\n\r\n public onShowLoaderChange(showLoader: boolean): void {\r\n this._shouldShowLoader = showLoader;\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\n\r\nexport class RootStorageObject {\r\n public id: string;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LocalStorageService {\r\n public readonly storage: Storage = localStorage;\r\n\r\n protected _appRoot: string = \"web-order\";\r\n\r\n protected _storageObj: RootStorageObject = new RootStorageObject();\r\n\r\n constructor() {\r\n this._initLocalStorageObj();\r\n }\r\n\r\n public save(): void {\r\n this.storage.setItem(this._appRoot, JSON.stringify(this._storageObj));\r\n }\r\n\r\n public clear(): void {\r\n this.storage.clear();\r\n }\r\n\r\n public set id(id: string) {\r\n this._storageObj.id = id;\r\n this.save();\r\n }\r\n\r\n public get id(): string {\r\n return this._storageObj ? this._storageObj.id : \"\";\r\n }\r\n\r\n protected _initLocalStorageObj(): void {\r\n this._storageObj = JSON.parse(this.storage.getItem(this._appRoot)) || this._storageObj;\r\n this.save();\r\n }\r\n}\r\n","import {Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewEncapsulation} from '@angular/core';\nimport {ProductConnectorService} from './service/product-connector.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 {ArticleListObjectExtended} from '@colijnit/articleapi/build/model/article-list-object-extended.bo';\nimport {ProductConnectorAdapterService} from './service/product-connector-adapter.service';\nimport {LocalStorageService} from \"./bundle/service/local-storage.service\";\n\n@Component({\n selector: 'app-ione-product',\n template: `\n <app-product-page *ngIf=\"settingsLoaded\"\n [createFrozenArticle]=\"handleAddArticleInternally\"\n [isReturn]=\"isReturn\"\n [sku]=\"sku\"\n [showRelatedProductsPopup]=\"showRelatedProductsPopup\"\n [enableRenderCarousel]=\"enableRenderCarousel\"\n (openStockEvent)=\"openStock()\"\n ></app-product-page>\n <!-- <co-button [label]=\"'click'\" (click)=\"showHD = !showHD\"></co-button>\n <co-product-hd [sku]=\"'657946ca-e1e1-41fd-7ae0-08dbf7df0cef'\" *ngIf=\"showHD\"></co-product-hd>-->\n `,\n providers: [\n ProductSettingsService,\n ProductConnectorService,\n ProductEventService,\n ProductConnectorAdapterService\n ],\n encapsulation: ViewEncapsulation.Emulated,\n styleUrls: ['./ione-product.component.css']\n})\nexport class IoneProductComponent implements OnInit, OnDestroy {\n\n @Input()\n public sku: string;\n\n @Input()\n public isReturn: boolean;\n\n @Input()\n public showRelatedProductsPopup: boolean;\n\n @Input()\n public enableRenderCarousel: boolean = false;\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 @Input()\n public handleAddArticleInternally: boolean = true;\n\n @Input()\n public handleAddToCartInternally: boolean = false;\n\n @Output()\n public onAddToCart: EventEmitter<{ article: string | ArticleListObjectExtended, quantity: number }> = new EventEmitter<{ article: string | ArticleListObjectExtended, quantity: number }>();\n\n @Output()\n public forceRenderImage: EventEmitter<void> = new EventEmitter<void>();\n\n @Output()\n public getRenderForRenderCarousel: EventEmitter<any> = 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 @Output()\n public openStockEvent: EventEmitter<void> = new EventEmitter<void>();\n\n @Output()\n public onAnswersAvailable: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n public settingsLoaded: boolean = false;\n public showHD: boolean = false;\n\n private _settings: any;\n private _subs: Subscription[] = [];\n\n constructor (\n private _appEventService: ProductEventService,\n private _settingsService: ProductSettingsService,\n private _productConnectorService: ProductConnectorService,\n private _localStorageService: LocalStorageService\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 = '1000567767';\n // this.sku = '1066';\n // this.sku = '104';\n // this.sku = \"70000107\";\n // this.sku = \"grover\";\n // this.sku = \"1000610952\";\n // this.sku = \"4387\";\n // this.sku = \"1000612725\";\n\n this._subs.push(\n this._appEventService.onAddToCart.subscribe((data: { article: string | ArticleListObjectExtended, quantity: number }) => {\n this._handleAddToCart(data);\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 this._appEventService.onAnswersAvailable.subscribe(answers => this._handleAnswersAvailable(answers)),\n this._settingsService.settingsLoaded.subscribe(loaded => {\n this.settingsLoaded = loaded;\n }),\n );\n }\n\n async ngOnInit(): Promise<void> {\n await this._settingsService.initializeSettings(this._settings === undefined);\n if (this._settings) {\n this._settingsService.createSettingsFromObject(this._settings);\n }\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 _handleAnswersAvailable(answers: boolean): void {\n this.onAnswersAvailable.next(answers);\n }\n\n private async _handleAddToCart(data: { article: string | ArticleListObjectExtended, quantity: number }): Promise<void> {\n if (this.handleAddToCartInternally) {\n if (data && data.article) {\n if (typeof data.article === 'string') {\n const article = JSON.parse(data.article as string);\n if (article.selectorData && article.selectorData.compositions) { // configured (frozen) article\n const transactionId: string =\n await this._productConnectorService.addWebSessionTransactionLine(\n this._localStorageService.id, article.selectorData.compositions[0].compositionArticleNo, data.quantity);\n if (transactionId) {\n this._localStorageService.id = transactionId;\n }\n }\n } else { // flat (simple) article\n if (data.article.hasOwnProperty('articleNr')) {\n const transactionId: string =\n await this._productConnectorService.addWebSessionTransactionLine(this._localStorageService.id, data.article['articleNr'], data.quantity);\n if (transactionId) {\n this._localStorageService.id = transactionId;\n }\n }\n }\n this.onAddToCart.next(data);\n }\n } else {\n this.onAddToCart.emit(data);\n }\n }\n\n public openStock() {\n this.openStockEvent.emit();\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","/** AUTO GENERATED FILE. DO NOT CHANGE.. **/\n\nexport enum IconEnum {\n AddToCartDrop = \"add_to_cart_drop\",\n ArrowPointLeft = \"arrow_point_left\",\n ArrowPointRight = \"arrow_point_right\",\n CrossSkinny = \"cross_skinny\",\n DeliveryTruck = \"delivery_truck\",\n Download = \"download\",\n FullScreen = \"full_screen\",\n LinkSimpleRegular = \"link_simple_regular\",\n Location = \"location\",\n Logo = \"logo\",\n MagicWand = \"magic_wand\",\n NormalScreen = \"normal_screen\",\n Quote = \"quote\",\n Refresh = \"refresh\",\n SaveSkinny = \"save_skinny\",\n ThreeD = \"three_d\",\n Truck = \"truck\",\n TwoD = \"two_d\",\n Warehouse = \"warehouse\"\n}\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 \"arrow_point_left\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 51 51\\\" enable-background=\\\"new 0 0 51 51\\\" ><path fill=\\\"#484F5F\\\" d=\\\"M31.9,36.7l-14.7-9.6C17.1,27,17,26.9,17,26.7v-2.4c0-0.2,0.1-0.3,0.2-0.4l14.7-9.6c0.2-0.2,0.5-0.1,0.7,0.1l1.4,2.1c0.2,0.2,0.1,0.5-0.1,0.7l-12,7.8c-0.3,0.2-0.3,0.6,0,0.8l12,7.8c0.2,0.2,0.3,0.5,0.1,0.7l-1.4,2.1C32.4,36.8,32.1,36.8,31.9,36.7z\\\"/></svg>\",\n \"arrow_point_right\": \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 51 51\\\" enable-background=\\\"new 0 0 51 51\\\" ><path fill=\\\"#484F5F\\\" d=\\\"M19.1,14.3l14.7,9.6c0.1,0.1,0.2,0.2,0.2,0.4v2.4c0,0.2-0.1,0.3-0.2,0.4l-14.7,9.6c-0.2,0.2-0.5,0.1-0.7-0.1l-1.4-2.1c-0.2-0.2-0.1-0.5,0.1-0.7l12-7.8c0.3-0.2,0.3-0.6,0-0.8l-12-7.8c-0.2-0.2-0.3-0.5-0.1-0.7l1.4-2.1C18.6,14.2,18.9,14.2,19.1,14.3z\\\"/></svg>\",\n \"cross_skinny\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 30 30\\\"><g ><polygon points=\\\"25.35 5.52 24.65 4.81 15 14.46 5.35 4.81 4.65 5.52 14.29 15.17 4.65 24.81 5.35 25.52 15 15.87 24.65 25.52 25.35 24.81 15.71 15.17 25.35 5.52\\\" fill=\\\"#484f60\\\"/></g></svg>\",\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 \"link_simple_regular\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M0 256C0 167.6 71.6 96 160 96l72 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-72 0C98.1 144 48 194.1 48 256s50.1 112 112 112l72 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-72 0C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160l-72 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0c61.9 0 112-50.1 112-112s-50.1-112-112-112l-72 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0c88.4 0 160 71.6 160 160zM184 232l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\\\"/></svg>\",\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 \"save_skinny\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 51 51\\\"><polygon points=\\\"23.8 38.1 14.9 25.6 15.7 25 23.6 36.2 35.2 12.9 36.1 13.4 23.8 38.1\\\" fill=\\\"#fff\\\"/></svg>\",\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};\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, EventEmitter,\n Input,\n OnDestroy,\n OnInit, Output,\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';\nimport {ExternalSource} from '@colijnit/articleapi/build/model/external-source.bo';\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\n})\nexport class ProductPageComponent implements OnInit, OnDestroy, AfterViewInit {\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 @Input()\n public externalSource: ExternalSource;\n\n @Input()\n public createFrozenArticle: boolean = true;\n\n @Input()\n public isReturn: boolean = false;\n\n @Input()\n public showRelatedProductsPopup: boolean = false;\n\n @Input()\n public enableRenderCarousel: boolean;\n\n @Output()\n public openStockEvent: EventEmitter<void> = new EventEmitter<void>();\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\n\n public article: ArticleFullObject;\n public stockAndDelivery: StockAndDelivery;\n public configurable: boolean = false;\n public threeD: boolean = false;\n public selectorType: SelectorType;\n public show2D: boolean = true;\n public show3D: boolean = false;\n public configuring: boolean = false;\n public showAddToCart: 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 this.appEventService.onAnswersAvailable.subscribe((answers) => {\n if (answers && this.configurable) {\n this.showAddToCart = false;\n } else {\n this.showAddToCart = true;\n }\n }),\n this.appEventService.onGetRenderForRenderCarousel.subscribe((renderParameters: any) => {\n if (this.selections.nativeElement) {\n this.selections.nativeElement.getRenderForRenderCarousel(renderParameters);\n }\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' && (this.article.isConfigurable || this.article.isConfigurable === undefined);\n // this.configurable = this.article.goodType === 'B';\n if (this.configurable) {\n this.showAddToCart = false;\n this.currentView = SelectorType.TwoD;\n } else {\n this.showAddToCart = true;\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 this.showRelatedProductsPopup = false;\n }\n public openStock() {\n this.openStockEvent.emit();\n }\n\n public handlePopUpChange(event: boolean){\n this.showRelatedProductsPopup = event;\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 template: `\n <div *ngIf=\"show2D || show3D\" class=\"show-in\" [textContent]=\"'SHOW_IN' | localize\"></div>\n <co-icon *ngIf=\"show2D && !showRenderCarousel\" class=\"selector-type-icon\"\n [class.active]=\"currentType === type.TwoD\"\n [iconData]=\"twoDIcon\"\n (click)=\"handleIconClick(type.TwoD)\"\n ></co-icon>\n\n <co-icon *ngIf=\"show2D && showRenderCarousel\" class=\"selector-type-icon\"\n [class.active]=\"currentType === type.TwoD\"\n [iconData]=\"twoDIcon\"\n (click)=\"handleIconClick(type.TwoD)\"\n ></co-icon>\n\n <co-icon *ngIf=\"show3D\" class=\"selector-type-icon\"\n [class.active]=\"currentType === type.ThreeD\"\n [iconData]=\"threeDIcon\"\n (click)=\"handleIconClick(type.ThreeD)\"\n ></co-icon>\n `,\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 showRenderCarousel: 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 {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 {NgModule} from '@angular/core';\r\nimport {LocalizePipe} from './localize.pipe';\r\n\r\n@NgModule({\r\n declarations: [\r\n LocalizePipe\r\n ],\r\n providers: [\r\n LocalizePipe\r\n ],\r\n exports: [\r\n LocalizePipe\r\n ]\r\n})\r\nexport class PipeModule {\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductSelectorTypeComponent} from './product-selector-type.component';\r\nimport {PipeModule} from '../../pipe/pipe.module';\r\nimport {IconModule} from '@colijnit/corecomponents';\r\n// import {IconModule} from '@colijnit/corecomponents';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n PipeModule,\r\n IconModule,\r\n /*,\r\n IconModule*/\r\n ],\r\n declarations: [\r\n ProductSelectorTypeComponent\r\n ],\r\n exports: [\r\n ProductSelectorTypeComponent\r\n ]\r\n})\r\nexport class ProductSelectorTypeModule {\r\n}\r\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n ViewChild\n} 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 {DomSanitizer, SafeUrl} from '@angular/platform-browser';\nimport {DocumentContent} from '@colijnit/articleapi/build/model/document-content';\n\nexport class ImageViewModel {\n public image: CoDocument | string;\n public source: SafeUrl;\n public originalSource: string;\n}\n\n@Component({\n selector: 'app-image-carousel',\n template: `\n <div id=\"product_page_carousel\">\n <div id=\"product_page_carousel_items\">\n <co-loader [isShown]=\"true\" *ngIf=\"showLoader\"></co-loader>\n <div #carousel class=\"inner-carousel\">\n <!-- This has been taken out of the for loop to prevent flashing images when updating. -->\n <div *ngIf=\"imageViewModels[0]\" class=\"carousel-item\" [id]=\"'slide-0'\" [class.active]=\"isCurrentIndex(0)\" (click)=\"handleShowImage(imageViewModels[0])\">\n <img [src]=\"imageViewModels[0].source\">\n </div>\n <div *ngFor=\"let imageViewModel of imageViewModels.slice(1); let index = index\" class=\"carousel-item\"\n [id]=\"'slide-' + (index + 1)\" [class.active]=\"isCurrentIndex((index + 1))\" (click)=\"handleShowImage(imageViewModel)\">\n <img [src]=\"imageViewModel.source\">\n </div>\n <div class=\"carousel-scroller-layer\" *ngIf=\"imageViewModels && imageViewModels.length > 1\">\n <div class=\"carousel-item-scroller prev\" (click)=\"gotoPrevSlide()\" *ngIf=\"currentIndex > 0\"></div>\n <div class=\"carousel-item-scroller next\" (click)=\"gotoNextSlide()\" *ngIf=\"currentIndex < images.length - 1\"></div>\n </div>\n </div>\n <!--\n <co-icon class=\"selector-type-icon refresh-button\" [iconData]=\"iconCache.getIcon(icons.Refresh)\" (click)=\"onForceRenderImage()\" [class.loading]=\"showLoader\" *ngIf=\"showRefresh\"></co-icon>\n -->\n </div>\n\n <div id=\"product_page_carousel_thumbs\">\n <co-scroll-container class=\"scroll-container\" *ngIf=\"imageViewModels && imageViewModels.length > 1\">\n <div *ngFor=\"let imageViewModel of imageViewModels; let index = index\" class=\"carousel-thumb\"\n [class.active]=\"index === currentIndex\">\n <img [src]=\"imageViewModel.source\" (click)=\"handleThumbClick(index)\"/>\n </div>\n </co-scroll-container>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./image-carousel.component.scss']\n})\nexport class ImageCarouselComponent implements OnDestroy {\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 | string)[]) {\n if (value && value.length > 0) {\n this._images = this._filterValidImages(value);\n this._loadAndRescaleImages();\n this._changeDetector.detectChanges();\n }\n }\n\n public get images(): (CoDocument | string)[] {\n return this._images;\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 imageViewModels: ImageViewModel[] = [];\n public showLoader: boolean = false;\n\n private _resizeTimer: any;\n private _currentIndex = 0;\n private _images: (CoDocument | string)[] = [];\n private _subs: Subscription[] = [];\n\n private _resizeCanvasHeight: number = 500;\n\n constructor(\n private _ione: ProductConnectorService,\n private _appEventService: ProductEventService,\n private _changeDetector: ChangeDetectorRef,\n private _domSanitizer: DomSanitizer\n ) {\n this._subs.push(\n this._appEventService.onRenderStarted.subscribe(() => {\n this.showLoader = true;\n this._changeDetector.detectChanges();\n setTimeout(() => {\n this.showLoader = false;\n this._changeDetector.detectChanges();\n }, 10000);\n }),\n this._appEventService.onDraftRenderImageReceived.subscribe((event: CustomEvent) => {\n if (event && event.detail) {\n if (this._images[0] instanceof CoDocument) {\n this._images.unshift(event.detail);\n } else {\n this._images[0] = event.detail;\n }\n this._loadAndRescaleImages();\n }\n this.showLoader = false;\n this._changeDetector.detectChanges();\n })\n );\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 handleShowImage(imageViewModel: ImageViewModel): void {\n if (imageViewModel && imageViewModel.originalSource) {\n let popupWindow: Window = window.open('', 'Image zoom', 'width=600,height=400');\n // Set the content of the popup window\n popupWindow.document.write('<html><head><title>Image zoom</title></head><body>');\n popupWindow.document.write(`<img src=${imageViewModel.originalSource} alt=\"Image\" style=\"width:100%; height:auto;\">`);\n popupWindow.document.write('</body></html>');\n // Close the document to render the popup window\n popupWindow.document.close();\n }\n }\n\n private _filterValidImages(value: (CoDocument | string)[]): (CoDocument | string)[] {\n if (!value) {\n return [];\n }\n return value.filter((doc: CoDocument | string) => {\n const pattern = /\\.(jpg|jpeg|png|gif|bmp|tiff|webp)$/i;\n return typeof doc === 'string' || (pattern.test(doc.fileName) || !!doc.filePath);\n });\n }\n\n private _loadAndRescaleImages(): void {\n this.imageViewModels.length = 0;\n if (this._images) {\n this._images.forEach((i: CoDocument | string) => {\n let imageViewModel = new ImageViewModel();\n imageViewModel.image = i;\n if (typeof i === 'string') { // is a rendered image coming from configurator\n this._resizeAndSanitizeSource(i, imageViewModel);\n } else {\n if (i.filePath) {\n this._resizeAndSanitizeSource(i.filePath, imageViewModel);\n } else if (i.documentBody) {\n this._resizeAndSanitizeSource(i.documentBodyAsDataUri, imageViewModel);\n } else {\n this._ione.getDocumentContent(i.documentId, false).then((content: DocumentContent) => {\n if (content) {\n i.documentBody = content.documentContent;\n this._resizeAndSanitizeSource(i.documentBodyAsDataUri, imageViewModel);\n this._changeDetector.detectChanges();\n }\n });\n }\n }\n this.imageViewModels.push(imageViewModel);\n this._changeDetector.detectChanges();\n });\n }\n }\n\n private _resizeAndSanitizeSource(source: string, imageViewModel: ImageViewModel): void {\n const resizeCanvas: HTMLCanvasElement = document.createElement('canvas');\n const resizeCanvasContext: CanvasRenderingContext2D = resizeCanvas.getContext('2d');\n const resizeImage: HTMLImageElement = document.createElement('img');\n resizeImage.crossOrigin = 'anonymous';\n resizeImage.onload = async () => {\n resizeCanvasContext.imageSmoothingEnabled = true;\n resizeCanvasContext.imageSmoothingQuality = 'high';\n // Get the original image dimensions\n const originalWidth = resizeImage.width;\n const originalHeight = resizeImage.height;\n\n // Calculate the aspect ratio\n const aspectRatio = originalWidth / originalHeight;\n\n // Calculate the new width and height while maintaining the aspect ratio\n let newWidth: number = this._resizeCanvasHeight;\n let newHeight: number = this._resizeCanvasHeight;\n\n if (originalWidth > originalHeight) {\n newHeight = this._resizeCanvasHeight / aspectRatio;\n } else {\n newWidth = this._resizeCanvasHeight * aspectRatio;\n }\n\n // Set the canvas size to the new width and height\n resizeCanvas.width = newWidth;\n resizeCanvas.height = newHeight;\n\n const imageWidth: number = this._resizeCanvasHeight * (resizeImage.height / resizeImage.width);\n resizeCanvasContext.drawImage(resizeImage, 0, 0, newWidth, newHeight);\n const resizedSource = resizeCanvas.toDataURL('image/jpeg');\n\n imageViewModel.source = this._domSanitizer.bypassSecurityTrustUrl(resizedSource);\n imageViewModel.originalSource = source;\n this._changeDetector.detectChanges();\n };\n // @ts-ignore\n resizeImage.src = source;\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 {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ImageCarouselComponent} from './image-carousel.component';\r\nimport {/*IconModule, */LoaderModule, ScrollContainerModule} from '@colijnit/corecomponents';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n LoaderModule,\r\n // IconModule,\r\n ScrollContainerModule\r\n ],\r\n declarations: [\r\n ImageCarouselComponent\r\n ],\r\n exports: [\r\n ImageCarouselComponent\r\n ]\r\n})\r\nexport class ImageCarouselModule {\r\n}\r\n","import { 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 template: `\n <div class=\"pd-title-wrapper\">\n <span class=\"pd-description\" [textContent]=\"article?.descriptionRetail\" *ngIf=\"article?.descriptionRetail\"></span>\n <span class=\"pd-sku\" [textContent]=\"article?.articleNr\" *ngIf=\"article?.articleNr\"></span>\n </div>\n `,\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 {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductDescriptionComponent} from './product-description.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n ProductDescriptionComponent\r\n ],\r\n exports: [\r\n ProductDescriptionComponent\r\n ]\r\n})\r\nexport class ProductDescriptionModule {\r\n}\r\n","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 template: `\n <ng-container *ngIf=\"description !== ''\">\n <div class=\"pd-additional-description\">\n <p [innerHTML]=\"description\"></p>\n <button class=\"pd-read-more-btn\" [textContent]=\"'READ_MORE' | localize\" (click)=\"onReadMore()\"></button>\n </div>\n </ng-container>\n `,\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 {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductAdditionalDescriptionComponent} from './product-additional-description.component';\r\nimport {PipeModule} from '../../pipe/pipe.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n PipeModule\r\n ],\r\n declarations: [\r\n ProductAdditionalDescriptionComponent\r\n ],\r\n exports: [\r\n ProductAdditionalDescriptionComponent\r\n ]\r\n})\r\nexport class ProductAdditionalDescriptionModule {\r\n}\r\n","import { 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 template: `\n <div *ngIf=\"toPrice\">\n <div class=\"price-wrapper\" *ngIf=\"fromPrice > toPrice\">\n <div class=\"from-price-label\" [textContent]=\"fromLabel | localize\"></div>\n <div class=\"from-price\" [textContent]=\"fromPrice | priceDisplay: valutaSign\"></div>\n </div>\n <div class=\"price-wrapper\">\n <div class=\"to-price-label\" [textContent]=\"toLabel | localize\"></div>\n <div class=\"to-price\" [textContent]=\"toPrice | priceDisplay: valutaSign\"></div>\n </div>\n </div>\n `,\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 this.toLabel = '';\n } else {\n const hasSuggested = this._pricing.retailSuggestedPrice !== undefined && this._pricing.retailSuggestedPrice !== null;\n\n this.fromPrice = hasSuggested ? this._pricing.retailSuggestedPrice : this._pricing.retailBasePrice;\n this.fromLabel = hasSuggested ? 'Was' : 'PRICE';\n\n // Always set toPrice to base price\n this.toPrice = this._pricing.retailBasePrice;\n this.toLabel = hasSuggested ? 'IS_NOW' : 'PRICE';\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 {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductPriceComponent} from './product-price.component';\r\nimport {PipeModule} from '../../pipe/pipe.module';\r\nimport {PriceDisplayPipeModule} from '@colijnit/corecomponents';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n PipeModule,\r\n PriceDisplayPipeModule\r\n ],\r\n declarations: [\r\n ProductPriceComponent\r\n ],\r\n exports: [\r\n ProductPriceComponent\r\n ]\r\n})\r\nexport class ProductPriceModule {\r\n}\r\n","import { 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 {ConfiguratorStatisticsEnvironment} from '@colijnit/articleapi/build/model/configurator-statistics-environment';\nimport {ProductSettingsService} from '../../service/product-settings.service';\nimport {ArticleListObjectExtended} from '@colijnit/articleapi/build/model/article-list-object-extended.bo';\nimport {ExternalSource} from '@colijnit/articleapi/build/model/external-source.bo';\nimport {ProductConnectorAdapterService} from '../../service/product-connector-adapter.service';\n\n@Component({\n selector: 'app-product-addtocart',\n template: `\n <div class=\"atc-wrapper\">\n <ng-container *ngIf=\"isReturn\">\n <co-number-picker *ngIf=\"!configurable && !configuring\" class=\"quantity-select\" [(model)]=\"quantity\" [min]=\"-100\" horizontal></co-number-picker>\n </ng-container>\n\n <ng-container *ngIf=\"!isReturn\">\n <co-number-picker *ngIf=\"!configurable && !configuring\" class=\"quantity-select\" [(model)]=\"quantity\" [min]=\"1\" horizontal></co-number-picker>\n </ng-container>\n\n <div class=\"button-wrapper\" *ngIf=\"configurable\">\n <co-button class=\"configure-button\"\n [iconData]=\"iconCache.getIcon(icon.MagicWand)\"\n [label]=\"'CONFIGURE' | localize\"\n (onClick)=\"startConfiguration.emit()\"\n ></co-button>\n </div>\n <div class=\"button-wrapper\" *ngIf=\"showAddToCart && !configurable\">\n <co-button #addtocartbutton class=\"cart-button\"\n [iconData]=\"iconCache.getIcon(icon.AddToCartDrop)\"\n [label]=\"'SHOPPING_CART_IN' | localize\"\n (onClick)=\"handleAddToCartClick(quantity)\"\n ></co-button>\n <co-button class=\"cart-button quote\" *ngIf=\"showQuoteButton\"\n [iconData]=\"iconCache.getIcon(icon.Quote)\"\n [label]=\"'QUOTATION' | localize\"\n (onClick)=\"handleAddToQuoteClick(quantity)\"\n ></co-button>\n </div>\n </div>\n `,\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 externalSource: ExternalSource;\n\n @Input()\n public createFrozenArticle: boolean = true;\n\n @Input()\n public configurable: boolean = false;\n\n @Input()\n public configuring: boolean = false;\n\n @Input()\n public showAddToCart: boolean = false;\n\n @Input()\n public isReturn: 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 if (this.isReturn) {\n if (this._quantity === 1) {\n this._quantity = -1;\n } else {\n this._quantity = value\n }\n } else {\n this._quantity = Math.max(1, value);\n }\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 @Output()\n public showRelatedPopup: EventEmitter<boolean> = new EventEmitter<boolean>()\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 private _productConnectorAdapterService: ProductConnectorAdapterService\n ) { }\n\n ngOnInit() {\n }\n\n ngOnDestroy(): void {\n this.addToCartButton = undefined;\n }\n\n public async handleAddToCartClick(quantity: number): Promise<void> {\n if (this.createFrozenArticle) {\n if (this.article.goodType === 'B') {\n\n if (this.article.isConfigurable) {\n const article = await this._getJSONFromArticleObject({article: this.article, quantity: quantity});\n if (article) {\n this._appEventService.onAddToCart.next({article: article, quantity: quantity});\n }\n } else {\n const generatedGoodId: number = await this._getGeneratedArtDirectly(this.article.goodId);\n if (generatedGoodId) {\n const articleFull: ArticleFullObject = await this._productConnectorAdapterService.getArticleFullObject(generatedGoodId, true);\n const article: ArticleListObjectExtended = this._ioneControllerService.convertArticleFullObjectToArticleExtended(articleFull);\n this._appEventService.onAddToCart.next({article: article, quantity: quantity});\n }\n }\n } else {\n let article: ArticleListObjectExtended | string;\n if (!!this.externalSource) {\n article = await this._getJSONFromArticleObject({article: this.article, quantity: quantity});\n } else {\n article = this._ioneControllerService.convertArticleFullObjectToArticleExtended(this.article);\n }\n if (article) {\n this._appEventService.onAddToCart.next({article: article, quantity: quantity});\n }\n }\n } else {\n const article: ArticleListObjectExtended = this._ioneControllerService.convertArticleFullObjectToArticleExtended(this.article);\n this._appEventService.onAddToCart.next({ article: article, quantity: quantity });\n }\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, !!this.externalSource, true, configuratorStatistics);\n }\n\n private async _getGeneratedArtDirectly(goodId: number): Promise<number> {\n return await this._ioneControllerService.getGeneratedArtDirectly(goodId, true);\n }\n}\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductAddtocartComponent} from './product-addtocart.component';\r\nimport {ButtonModule, NumberPickerModule} from '@colijnit/corecomponents';\r\nimport {PipeModule} from '../../pipe/pipe.module';\r\nimport {LoaderModule} from \"@colijnit/corecomponents_v12\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n NumberPickerModule,\r\n ButtonModule,\r\n PipeModule,\r\n LoaderModule\r\n ],\r\n declarations: [\r\n ProductAddtocartComponent\r\n ],\r\n exports: [\r\n ProductAddtocartComponent\r\n ]\r\n})\r\nexport class ProductAddtocartModule {\r\n}\r\n","import {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';\nimport {ProductConnectorAdapterService} from \"../../service/product-connector-adapter.service\";\nimport {ArticleQuantity} from \"../../model/article-quantity.model\";\nimport {ConfiguratorStatisticsEnvironment} from \"@colijnit/articleapi/build/model/configurator-statistics-environment\";\nimport {ProductSettingsService} from \"../../service/product-settings.service\";\nimport {ArticleFullObject} from '@colijnit/articleapi/build/model/article-full-object';\nimport {ArticleListObjectExtended} from '@colijnit/articleapi/build/model/article-list-object-extended.bo';\nimport {ExternalSource} from '@colijnit/articleapi/build/model/external-source.bo';\n\n@Component({\n selector: 'app-product-related',\n template: `\n <div *ngIf=\"articles && articles.length > 0\">\n <app-header [label]=\"label\" [amount]=\"articles?.length\" *ngIf=\"label\"></app-header>\n <co-scroll-container>\n <div class=\"article-wrapper\" *ngFor=\"let article of articles\">\n <co-article-tile\n [imageData]=\"article.image.documentBodyAsDataUri\"\n [description]=\"article.description\"\n [price]=\"article.price\"\n [level]=\"article.stockStatus\"\n [hasCartButton]=\"true\"\n [isSmallModus]=\"isSmallModus\"\n [hasConfigureButton]=\"article.goodType === 'B'\"\n (contentClick)=\"handleContentClick(article)\"\n (cartButtonClick)=\"handleAddToCartClick(article)\"\n (configureButtonClick)=\"handleContentClick(article)\"\n (threeDButtonClick)=\"handleThreeDButtonClick(article)\"\n ></co-article-tile>\n </div>\n </co-scroll-container>\n </div>\n `,\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 externalSource: ExternalSource;\n\n @Input()\n public isSmallModus: boolean = true;\n\n @Input()\n public createFrozenArticle: 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 private _productConnectorAdapterService: ProductConnectorAdapterService,\n private _settingsService: ProductSettingsService\n ) {\n }\n\n public handleContentClick(article: ArticleListObject): void {\n this._appEventService.onAlternativeClick.next(article);\n }\n\n public async handleAddToCartClick(article: ArticleListObject): Promise<void> {\n const quantity: number = 1;\n const articleFull: ArticleFullObject = await this._productConnectorAdapterService.getArticleFullObject(article.goodId, true);\n if (articleFull) {\n if (this.createFrozenArticle) {\n const article: ArticleListObjectExtended = this._iOne.convertArticleFullObjectToArticleExtended(articleFull);\n this._appEventService.onAddToCart.next({article: article, quantity: quantity});\n // this._appEventService.onAddToCart.next({ article: await this._getJSONFromArticleObject({article: articleFull, quantity: quantity}), quantity: quantity });\n } else {\n const article: ArticleListObjectExtended = this._iOne.convertArticleFullObjectToArticleExtended(articleFull);\n this._appEventService.onAddToCart.next({article: article, quantity: quantity});\n }\n }\n }\n\n public handleConfigureButtonClick(article: ArticleListObject): void {\n\n }\n\n public handleThreeDButtonClick(article: ArticleListObject): void {\n\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._iOne.getJsonArticleFlatTree(\n article.article.goodId, article.article.goodType, article.quantity, !!this.externalSource, true, configuratorStatistics);\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","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-header',\n template: `\n <ng-container *ngIf=\"label\">\n <div class=\"header-wrapper\">\n <h3 [textContent]=\"label\"></h3>\n <span *ngIf=\"amount\" class=\"amount\" [textContent]=\"'(' + amount + ')'\"></span>\n </div>\n </ng-container>\n `,\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 {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {HeaderComponent} from './header.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n HeaderComponent\r\n ],\r\n exports: [\r\n HeaderComponent\r\n ]\r\n})\r\nexport class HeaderModule {\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductRelatedComponent} from './product-related.component';\r\nimport {HeaderModule} from '../core/header/header.module';\r\nimport {ArticleTileModule} from '@colijnit/corecomponents_v12';\r\nimport {ScrollContainerModule} from '@colijnit/corecomponents'\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n HeaderModule,\r\n ScrollContainerModule,\r\n ArticleTileModule\r\n ],\r\n declarations: [\r\n ProductRelatedComponent\r\n ],\r\n exports: [\r\n ProductRelatedComponent\r\n ]\r\n})\r\nexport class ProductRelatedModule {\r\n}\r\n","import {Component, EventEmitter, Input, OnInit, Output} 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 template: `\n <!--<app-header [label]=\"'STOCK' | localize\"></app-header>-->\n <!--<co-level-indicator [model]=\"'medium'\"></co-level-indicator>-->\n <div class=\"product-stock-wrapper\">\n <co-icon class=\"stock-icon\" [iconData]=\"iconData\"></co-icon>\n <div class=\"product-stock-fields\" (click)=\"openStock()\">\n <div class=\"pp-default-label\" [class.in-stock]=\"inStock\" [textContent]=\"stockLabel | localize\"></div>\n </div>\n </div>\n `,\n styleUrls: ['./product-stock.component.scss']\n})\nexport class ProductStockComponent {\n public readonly icon: typeof IconEnum = IconEnum;\n\n @Input()\n public set goodId(value: number) {\n this._goodId = value;\n this._getStockStatus();\n }\n\n public get goodId(): number {\n return this._goodId;\n }\n\n @Output()\n public openStockEvent: EventEmitter<void> = new EventEmitter<void>();\n\n public inStock: boolean = false;\n public stockLabel: string;\n public iconData: SafeHtml;\n\n private _goodId: number;\n\n constructor(\n private _iOne: ProductConnectorService,\n private _iconCache: IconCacheService\n ) {\n this.iconData = this._iconCache.getIcon(this.icon.Warehouse);\n }\n\n public openStock() {\n this.openStockEvent.emit();\n }\n\n private _getStockStatus(): void {\n if (this.goodId) {\n this._iOne.getArtStockStatus(this.goodId).then((result: any) => {\n switch (result) {\n case 1: // niet op voorraad\n this.stockLabel = 'PRODUCT_LIMITED_STOCK';\n this.inStock = true;\n break;\n case 2:\n this.stockLabel = 'PRODUCT_IN_STOCK';\n this.inStock = true;\n break;\n default:\n this.stockLabel = 'PRODUCT_NOT_IN_STOCK';\n this.inStock = false;\n break;\n }\n })\n }\n }\n}\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductStockComponent} from './product-stock.component';\r\nimport {IconModule} from '@colijnit/corecomponents';\r\nimport {PipeModule} from '../../pipe/pipe.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IconModule,\r\n PipeModule\r\n ],\r\n declarations: [\r\n ProductStockComponent\r\n ],\r\n exports: [\r\n ProductStockComponent\r\n ]\r\n})\r\nexport class ProductStockModule {\r\n}\r\n","import { 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 template: `\n <!--<app-header [label]=\"'DELIVERY_TIME_PERIOD' | localize\"></app-header>-->\n <div class=\"product-delivery-wrapper\">\n <co-icon class=\"delivery-icon\" [iconData]=\"iconData\"></co-icon>\n <div class=\"product-delivery-fields\">\n <div class=\"pp-default-label\" [textContent]=\"'DELIVERY_TIME_PERIOD' | localize\"></div>\n <div class=\"pp-default-description\" [textContent]=\"deliveryDescription | date:'dd MMMM yyyy'\"></div>\n </div>\n </div>\n `,\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 {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductDeliveryComponent} from './product-delivery.component';\r\nimport {IconModule} from '@colijnit/corecomponents';\r\nimport {PipeModule} from '../../pipe/pipe.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IconModule,\r\n PipeModule\r\n ],\r\n declarations: [\r\n ProductDeliveryComponent\r\n ],\r\n exports: [\r\n ProductDeliveryComponent\r\n ]\r\n})\r\nexport class ProductDeliveryModule {\r\n}\r\n","import { 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 template: `\n <div class=\"tab-container\">\n <div class=\"tab-header\">\n <button *ngFor=\"let tab of tabs; let i = index\" class=\"tab-header-button\" [class.active]=\"activeTab === i\" [textContent]=\"tab.title | localize\" (click)=\"updateTab(i)\"></button>\n </div>\n <div class=\"tab-content\" #tabContent [style.height.px]=\"(activeTabHeight > 0 ? activeTabHeight : '')\">\n <div class=\"tab-content-item\" *ngFor=\"let tab of tabs; let i = index\" [class.active]=\"activeTab === i\">\n <ng-container *ngIf=\"i === 0\">\n <app-product-additional-info class=\"\" [article]=\"articleObject\" [showLabel]=\"false\"></app-product-additional-info>\n </ng-container>\n <ng-container *ngIf=\"i === 1\">\n <app-product-properties class=\"\" [article]=\"articleObject\" [showLabel]=\"false\"></app-product-properties>\n </ng-container>\n <ng-container *ngIf=\"i === 2\">\n <app-product-documents [showLabel]=\"false\" class=\"\" *ngIf=\"articleObject?.documents && articleObject?.documents.length > 0\" [documents]=\"articleObject?.documents\"></app-product-documents>\n </ng-container>\n <ng-container *ngIf=\"i === 3\">\n <app-product-symbols class=\"\" *ngIf=\"articleObject?.symbols && articleObject?.symbols.length > 0\" [symbols]=\"articleObject?.symbols\"></app-product-symbols>\n </ng-container>\n </div>\n </div>\n </div>\n `,\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 { 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 template: `\n <h3 *ngIf=\"showLabel\" [textContent]=\"'ADDITIONAL_DATA' | localize\"></h3>\n <ng-container *ngIf=\"textParts && textParts.length > 0\">\n <div class=\"additional-info-parts\" *ngFor=\"let text of textParts\" [innerHTML]=\"text\"></div>\n </ng-container>\n `,\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 {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductAdditionalInfoComponent} from './product-additional-info.component';\r\nimport {PipeModule} from '../../pipe/pipe.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n PipeModule\r\n ],\r\n declarations: [\r\n ProductAdditionalInfoComponent\r\n ],\r\n exports: [\r\n ProductAdditionalInfoComponent\r\n ]\r\n})\r\nexport class ProductAdditionalInfoModule {\r\n}\r\n","import { 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 template: `\n <div class=\"article-properties-wrapper\">\n <h3 *ngIf=\"showLabel\" [textContent]=\"'PROPERTIES' | localize\"></h3>\n <ng-container *ngFor=\"let property of properties\">\n <div class=\"article-property\">\n <div class=\"article-property-key\" [textContent]=\"property.key | localize\"></div>\n <div class=\"article-property-value\" [textContent]=\"property.value\"></div>\n </div>\n </ng-container>\n </div>\n `,\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 {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductPropertiesComponent} from './product-properties.component';\r\nimport {PipeModule} from '../../pipe/pipe.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n PipeModule\r\n ],\r\n declarations: [\r\n ProductPropertiesComponent\r\n ],\r\n exports: [\r\n ProductPropertiesComponent\r\n ]\r\n})\r\nexport class ProductPropertiesModule {\r\n}\r\n","import { 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 template: `\n <app-header *ngIf=\"showLabel\" [label]=\"'DOCUMENTS' | localize\" [amount]=\"documents?.length\"></app-header>\n <div *ngIf=\"documents && documents.length > 0\">\n <co-files-upload [documents]=\"documents\" [canAdd]=\"false\" readonly></co-files-upload>\n </div>\n `,\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 {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductDocumentsComponent} from './product-documents.component';\r\nimport {HeaderModule} from '../core/header/header.module';\r\nimport {PipeModule} from '../../pipe/pipe.module';\r\nimport {FilesUploadModule} from '@colijnit/corecomponents';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n HeaderModule,\r\n PipeModule,\r\n FilesUploadModule\r\n ],\r\n declarations: [\r\n ProductDocumentsComponent\r\n ],\r\n exports: [\r\n ProductDocumentsComponent\r\n ]\r\n})\r\nexport class ProductDocumentModule {\r\n}\r\n","import { Component, HostBinding, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-product-symbols',\n template: `\n <div *ngIf=\"symbols && symbols.length > 0\">\n <app-header [label]=\"'SYMBOLS' | localize\" [amount]=\"symbols?.length\"></app-header>\n <co-scroll-container>\n <co-tile small noImagePlaceholder *ngFor=\"let symbol of symbolStrings\">\n <ng-container tile-over-image>\n <div class=\"symbol\" [textContent]=\"symbol\"></div>\n </ng-container>\n <ng-container tile-extra-bottom-content>\n <div class=\"symbol-name\" [textContent]=\"'Wat moet hier?'\"></div>\n </ng-container>\n </co-tile>\n </co-scroll-container>\n </div>\n `,\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 {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductSymbolsComponent} from './product-symbols.component';\r\nimport {HeaderModule} from '../core/header/header.module';\r\nimport {PipeModule} from '../../pipe/pipe.module';\r\nimport {ScrollContainerModule, TileModule} from '@colijnit/corecomponents';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n HeaderModule,\r\n PipeModule,\r\n ScrollContainerModule,\r\n TileModule\r\n ],\r\n declarations: [\r\n ProductSymbolsComponent\r\n ],\r\n exports: [\r\n ProductSymbolsComponent\r\n ]\r\n})\r\nexport class ProductSymbolsModule {\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductInfoTabsComponent} from './product-info-tabs.component';\r\nimport {PipeModule} from '../../pipe/pipe.module';\r\nimport {ProductAdditionalInfoModule} from '../product-additional-info/product-additional-info.module';\r\nimport {ProductPropertiesModule} from '../product-properties/product-properties.module';\r\nimport {ProductDocumentModule} from '../product-documents/product-document.module';\r\nimport {ProductSymbolsModule} from '../product-symbols/product-symbols.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n PipeModule,\r\n ProductAdditionalInfoModule,\r\n ProductPropertiesModule,\r\n ProductDocumentModule,\r\n ProductSymbolsModule\r\n ],\r\n declarations: [\r\n ProductInfoTabsComponent\r\n ],\r\n exports: [\r\n ProductInfoTabsComponent\r\n ]\r\n})\r\nexport class ProductInfoTabsModule {\r\n}\r\n","import {Component, EventEmitter, HostBinding, Input, OnInit, Output, ViewEncapsulation} from '@angular/core';\r\nimport {DomSanitizer} from '@angular/platform-browser';\r\nimport {ProductConnectorService} from '../../service/product-connector.service';\r\nimport {ArticleListObject} from '@colijnit/articleapi/build/model/article-list-object';\r\nimport {ProductEventService} from '../../service/product-event.service';\r\nimport {ProductSettingsService} from '../../service/product-settings.service';\r\nimport {ProductConnectorAdapterService} from '../../service/product-connector-adapter.service';\r\nimport {ArticleFullObject} from \"@colijnit/articleapi/build/model/article-full-object\";\r\nimport {IconEnum} from \"../../enum/icon.enum\";\r\nimport {IconCacheService} from \"../../service/icon-cache.service\";\r\nimport {SelectorType} from \"../../enum/selector-type.enum\";\r\n\r\n\r\n@Component({\r\n selector: 'co-product-dialog',\r\n template: `\r\n <div class=\"product-dialog-wrap\">\r\n <div class=\"product-dialog-container\">\r\n <div class=\"container-header\">\r\n <div class=\"header-info\">\r\n <h3>\r\n <co-icon [iconData]=\"iconCache.getIcon(icon.LinkSimpleRegular)\"\r\n (click)=\"closeCatalog()\"></co-icon>{{ 'SUGGESTION' | localize }} <b>{{ mainArticle.name }}</b> ({{ mainArticle.articleNr }})\r\n </h3>\r\n </div>\r\n <div class=\"close-icon\" (click)=\"closeCatalog()\">\r\n <co-icon class=\"fullscreen-button\"\r\n [iconData]=\"iconCache.getIcon(icon.CrossSkinny)\"\r\n (click)=\"closeCatalog()\"></co-icon>\r\n </div>\r\n </div>\r\n <div class=\"related-product-container\">\r\n <app-product-related\r\n class=\"no-padding\"\r\n *ngIf=\"articles\"\r\n [articles]=\"articles\">\r\n </app-product-related>\r\n </div>\r\n <div class=\"close-button-container\">\r\n <button class=\"ok-button\" (click)=\"closeCatalog()\">\r\n <co-icon [iconData]=\"iconCache.getIcon(icon.SaveSkinny)\"\r\n (click)=\"closeCatalog()\"></co-icon>\r\n </button>\r\n <button class=\"close-button\" (click)=\"closeCatalog()\">\r\n <co-icon [iconData]=\"iconCache.getIcon(icon.CrossSkinny)\"\r\n (click)=\"closeCatalog()\"></co-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n `,\r\n styleUrls: ['./product-dialog.component.scss'],\r\n})\r\nexport class ProductDialogComponent implements OnInit {\r\n public readonly icon: typeof IconEnum = IconEnum;\r\n @Input()\r\n public refType: number;\r\n\r\n @Input()\r\n public mainArticle: ArticleFullObject;\r\n\r\n @Input()\r\n public articles: ArticleListObject[];\r\n\r\n @Output()\r\n public closeRelatedPopup: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n @HostBinding('class.co-product-dialog')\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n constructor(\r\n public iconCache: IconCacheService,\r\n private _sanitizer: DomSanitizer,\r\n private _productConnectorService: ProductConnectorService,\r\n private _productConnectorAdapterService: ProductConnectorAdapterService,\r\n private _appEventService: ProductEventService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n public closeCatalog() {\r\n // need to emit close\r\n this.closeRelatedPopup.emit(false);\r\n }\r\n\r\n protected readonly type = SelectorType;\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductDialogComponent} from \"./product-dialog.component\";\r\nimport {PipeModule} from \"../../pipe/pipe.module\";\r\nimport {ProductRelatedModule} from \"../product-related/product-related.module\";\r\nimport {IconModule} from \"@colijnit/corecomponents\";\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n PipeModule,\r\n ProductRelatedModule,\r\n IconModule\r\n ],\r\n declarations: [\r\n ProductDialogComponent\r\n ],\r\n exports: [\r\n ProductDialogComponent\r\n ]\r\n})\r\nexport class ProductDialogModule {\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n HostBinding,\r\n HostListener,\r\n Input, OnChanges,\r\n OnDestroy,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {ProductEventService} from '../../service/product-event.service';\r\nimport {Subscription} from 'rxjs';\r\nimport {ArticleFullObject} from \"@colijnit/articleapi/build/model/article-full-object\";\r\nimport {IconCacheService} from \"../../service/icon-cache.service\";\r\nimport {IconEnum} from \"../../enum/icon.enum\";\r\n\r\nexport class VectorObject {\r\n public x: number;\r\n public y: number;\r\n public z: number;\r\n}\r\n\r\nexport class RenderParameters {\r\n public objectRotation: VectorObject;\r\n public margin: number;\r\n}\r\n\r\n@Component({\r\n selector: 'app-render-carousel',\r\n template: `\r\n <div id=\"product_page_carousel\">\r\n <div id=\"product_page_carousel_render_items\">\r\n <co-loader [isShown]=\"showLoader\"></co-loader>\r\n <div #carousel class=\"inner-carousel\">\r\n <div class=\"inner-carousel-render\">\r\n <img\r\n [src]=\"renderedImage\"\r\n [class.loaded]=\"renderedImageLoaded\"\r\n (load)=\"onRenderLoaded()\"\r\n class=\"fade-image\"\r\n alt=\"\">\r\n </div>\r\n <div class=\"carousel-scroller-layer\">\r\n <div class=\"carousel-item-scroller prev\" (click)=\"gotoPrevSlide()\">\r\n <co-icon [iconData]=\"iconCache.getIcon(icon.ArrowPointLeft)\"></co-icon>\r\n </div>\r\n <div class=\"carousel-item-scroller next\" (click)=\"gotoNextSlide()\">\r\n <co-icon [iconData]=\"iconCache.getIcon(icon.ArrowPointRight)\"></co-icon>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n styleUrls: ['./render-carousel.component.scss']\r\n})\r\nexport class RenderCarouselComponent implements OnDestroy, OnChanges {\r\n @ViewChild('carousel', {read: ElementRef})\r\n public carousel: ElementRef;\r\n\r\n @Input()\r\n public showRefresh: boolean = false;\r\n\r\n @Input()\r\n public article: ArticleFullObject;\r\n\r\n @HostListener('window:resize')\r\n public handleWindowResize(): void {\r\n this.resizing = true;\r\n clearTimeout(this._resizeTimer);\r\n this._resizeTimer = setTimeout(() => {\r\n this.resizing = false;\r\n }, 200);\r\n }\r\n\r\n @HostListener('swipeleft')\r\n public gotoNextSlide(): void {\r\n this.showLoader = true;\r\n this.currentRenderAngleIndex = (this.currentRenderAngleIndex + 1) % this.renderAngles.length;\r\n this._createNewRender();\r\n }\r\n\r\n @HostListener('swiperight')\r\n public gotoPrevSlide(): void {\r\n this.showLoader = true;\r\n this.currentRenderAngleIndex = ( this.currentRenderAngleIndex - 1 + this.renderAngles.length) % this.renderAngles.length;\r\n this._createNewRender();\r\n }\r\n\r\n @HostBinding('class.resizing')\r\n public resizing = false;\r\n\r\n public showLoader: boolean = true;\r\n public renderedImage: string;\r\n public renderedImageLoaded: boolean = false;\r\n\r\n // For now we will just use mock data\r\n public renderAngles: any = [0, -45, -90, -135, -180, -225, -270, -315];\r\n public currentRenderAngleIndex: number = 0;\r\n public readonly icon: typeof IconEnum = IconEnum;\r\n private _resizeTimer: any;\r\n private _subs: Subscription[] = [];\r\n\r\n constructor(\r\n public iconCache: IconCacheService,\r\n private _appEventService: ProductEventService,\r\n private _changeDetector: ChangeDetectorRef,\r\n ) {\r\n this._subs.push(\r\n this._appEventService.onReadyToRender.subscribe((readyToRender: boolean) => {\r\n if (readyToRender) {\r\n this.showLoader = true;\r\n this._createNewRender();\r\n }\r\n }),\r\n this._appEventService.onRenderStarted.subscribe(()=> {\r\n this.showLoader = true;\r\n this._changeDetector.detectChanges();\r\n }),\r\n this._appEventService.onRenderImageReceived.subscribe((image: string) => {\r\n this.renderedImage = image;\r\n this.showLoader = false;\r\n this._changeDetector.detectChanges();\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.carousel = undefined;\r\n this._subs.forEach(s => s.unsubscribe());\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.renderedImageLoaded = false;\r\n }\r\n\r\n public onRenderLoaded(): void {\r\n this.renderedImageLoaded = true;\r\n }\r\n\r\n private _getRenderSettings(): RenderParameters {\r\n const settings: RenderParameters = new RenderParameters();\r\n const rotation: VectorObject = new VectorObject();\r\n rotation.x = 0;\r\n rotation.y = this.renderAngles[this.currentRenderAngleIndex];\r\n rotation.z = 0\r\n settings.objectRotation = rotation;\r\n settings.margin = 15;\r\n return settings\r\n }\r\n\r\n private _createNewRender(): void {\r\n this.showLoader = true;\r\n this.renderedImageLoaded = false;\r\n const renderParams: RenderParameters = this._getRenderSettings();\r\n this._appEventService.onGetRenderForRenderCarousel.next(renderParams);\r\n }\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {IconModule,LoaderModule, ScrollContainerModule} from '@colijnit/corecomponents';\r\nimport {RenderCarouselComponent} from \"./render-carousel.component\";\r\nimport {IconCollapseHandleModule} from \"@colijnit/corecomponents_v12\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n LoaderModule,\r\n ScrollContainerModule,\r\n IconModule,\r\n IconCollapseHandleModule\r\n ],\r\n declarations: [\r\n RenderCarouselComponent\r\n ],\r\n exports: [\r\n RenderCarouselComponent\r\n ]\r\n})\r\nexport class RenderCarouselModule {\r\n}\r\n","import {CUSTOM_ELEMENTS_SCHEMA, NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductPageComponent} from './product-page.component';\r\nimport {ProductSelectorTypeModule} from '../product-selector-type/product-selector-type.module';\r\nimport {ImageCarouselModule} from '../image-carousel/image-carousel.module';\r\nimport {IconModule} from '@colijnit/corecomponents';\r\nimport {ProductDescriptionModule} from '../product-description/product-description.module';\r\nimport {ProductAdditionalDescriptionModule} from '../product-additional-description/product-additional-description.module';\r\nimport {ProductPriceModule} from '../product-price/product-price.module';\r\nimport {ProductAddtocartModule} from '../product-addtocart/product-addtocart.module';\r\nimport {ProductRelatedModule} from '../product-related/product-related.module';\r\nimport {ProductStockModule} from '../product-stock/product-stock.module';\r\nimport {ProductDeliveryModule} from '../product-delivery/product-delivery.module';\r\nimport {ProductInfoTabsModule} from '../product-info-tabs/product-info-tabs.module';\r\nimport {PipeModule} from '../../pipe/pipe.module';\r\nimport {ProductDialogModule} from \"../product-dialog/product-dialog.module\";\r\nimport {LoaderModule} from \"@colijnit/corecomponents_v12\";\r\nimport {RenderCarouselModule} from \"../render-carousel/render-carousel.module\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ProductSelectorTypeModule,\r\n ImageCarouselModule,\r\n IconModule,\r\n ProductDescriptionModule,\r\n ProductAdditionalDescriptionModule,\r\n ProductPriceModule,\r\n ProductAddtocartModule,\r\n ProductRelatedModule,\r\n ProductStockModule,\r\n ProductDeliveryModule,\r\n ProductInfoTabsModule,\r\n PipeModule,\r\n ProductDialogModule,\r\n LoaderModule,\r\n RenderCarouselModule\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n declarations: [\r\n ProductPageComponent\r\n ],\r\n exports: [\r\n ProductPageComponent\r\n ]\r\n})\r\nexport class ProductPageModule {\r\n}\r\n","import {Inject, Injectable, PLATFORM_ID, Renderer2} from '@angular/core';\r\nimport {isPlatformBrowser} from '@angular/common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProductScriptLoaderService {\r\n\r\n private _scriptsOrLinksElements: any[] = [];\r\n\r\n constructor(\r\n @Inject(PLATFORM_ID)\r\n private platformId: any\r\n ) {\r\n\r\n }\r\n\r\n public loadScript(url: string, renderer: Renderer2): Promise<void> {\r\n return new Promise((resolve, reject) => {\r\n if (!isPlatformBrowser(this.platformId)) {\r\n reject('Not in browser environment');\r\n return;\r\n }\r\n\r\n const existingScript = document.getElementById(url);\r\n if (existingScript) {\r\n resolve(); // Script already loaded\r\n return;\r\n }\r\n\r\n const script = renderer.createElement('script');\r\n\r\n script.id = url;\r\n script.src = url;\r\n script.type = 'text/javascript';\r\n script.async = true;\r\n\r\n script.onload = () => resolve();\r\n script.onerror = (error) => reject(`Error loading script: ${url}`);\r\n\r\n renderer.appendChild(document.head, script);\r\n this._scriptsOrLinksElements.push(script);\r\n });\r\n }\r\n\r\n public unloadScripts(renderer: Renderer2): void {\r\n for (let i = this._scriptsOrLinksElements.length - 1; i >= 0; i--) {\r\n renderer.removeChild(document.head, this._scriptsOrLinksElements[i]);\r\n this._scriptsOrLinksElements.pop();\r\n }\r\n }\r\n\r\n public addStyleSheet(url: string, renderer: Renderer2): Promise<void> {\r\n return new Promise((resolve, reject) => {\r\n if (!isPlatformBrowser(this.platformId)) {\r\n reject('Not in browser environment');\r\n return;\r\n }\r\n\r\n const existingStyleSheet = document.getElementById(url);\r\n if (existingStyleSheet) {\r\n resolve(); // Script already loaded\r\n return;\r\n }\r\n\r\n const link = renderer.createElement('link');\r\n link.id = url;\r\n link.href = url;\r\n link.rel = 'stylesheet';\r\n\r\n link.onload = () => resolve();\r\n link.onerror = (error) => reject(`Error loading styleSheet: ${url}`);\r\n\r\n renderer.appendChild(document.head, link);\r\n this._scriptsOrLinksElements.push(link);\r\n });\r\n }\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n OnDestroy,\r\n Output,\r\n Renderer2,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {ProductScriptLoaderService} from '../../service/product-script-loader.service';\r\nimport {ExternalSourceParameter} from '@colijnit/articleapi/build/model/external-source-parameter.bo';\r\n\r\n@Component({\r\n selector: 'co-product-hd',\r\n template: `\r\n <hde-configurator #hdeConfigurator\r\n language=\"nl\"\r\n localizationFileExtension=\".json\"\r\n (configurationFinished)=\"handleConfigurationFinished($event)\"\r\n (configurationFailed)=\"handleError($event)\"\r\n >\r\n <hde-progress-bar></hde-progress-bar>\r\n </hde-configurator>\r\n `,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ProductHdComponent implements OnDestroy {\r\n @ViewChild('hdeConfigurator', {read: ElementRef}) set content(child) {\r\n this.hdeConfigurator = child;\r\n this._prepareAttributes();\r\n }\r\n\r\n @Input()\r\n public set sku(value: string) {\r\n this._sku = value;\r\n this._prepareAttributes();\r\n }\r\n\r\n public get sku(): string {\r\n return this._sku;\r\n }\r\n\r\n @Input()\r\n public token: string; //= \"eyJhbGciOiJSUzI1NiIsImtpZCI6IkYxOThERkVEOEUwQTQ1MzY3M0M1MUE2Rjk1QUVDQzU3RTM0NjM4RkRSUzI1NiIsInR5cCI6ImF0K2p3dCIsIng1dCI6IjhaamY3WTRLUlRaenhScHZsYTdNVi1OR09QMCJ9.eyJuYmYiOjE3MzcxMjQ2NDQsImV4cCI6MTczNzEyODI0NCwiaXNzIjoiaHR0cHM6Ly9ibXNpZGVudGl0eS1hY2NlcHRhbmNlLmF6dXJld2Vic2l0ZXMubmV0IiwiYXVkIjpbImNhdGFsb2dxdWVyeWFwaSIsImNvbmZpZ3VyYXRvcmFwaSIsInByb2R1Y3R2YXJpYW50Y29tbWFuZGFwaSIsInByb2R1Y3R2YXJpYW50cXVlcnlhcGkiXSwiY2xpZW50X2lkIjoiaW1wZXJzb25hdGlvbi5jbGllbnQiLCJzdWIiOiIwOTMwZDI4Mi05NGU4LTQ5MGEtOGI2NC1mYTk1YmIyYzE1ODIiLCJhdXRoX3RpbWUiOjE3MzcxMjQ2NDQsImlkcCI6ImxvY2FsIiwiZW52aXJvbm1lbnQiOiJNU0wiLCJzZWxsZXIiOiJTRTAwMDA5NiIsInNlbGxlcmd1aWQiOiIxMDk1MWJjNS1hZmMzLTQ1MGEtNmVkMS0wOGQ4NDNlNmE5OTQiLCJwZXJtaXNzaW9uIjpbInNhbGVzLmV4cG9ydHRlbXBsYXRlcy5yZWFkIiwiZG9jdW1lbnRsaWJyYXJ5LnRhZy5yZWFkIiwiZG9jdW1lbnRsaWJyYXJ5LmRvY3VtZW50LnJlYWQiLCJkb2N1bWVudGxpYnJhcnkudGFnZ3JvdXAucmVhZCIsInNhbGVzLm9yZGVyLndyaXRlIiwic2FsZXMuY3VzdG9tZXIucmVhZCIsInNhbGVzLm9yZGVyLmRlbGl2ZXJ5YWRkcmVzcy53cml0ZSIsInNlcnZpY2UucmVxdWVzdC5yZWFkIiwiY2F0YWxvZy50YWcucmVhZCIsInNhbGVzLm9yZGVyLnJlYWQiLCJzYWxlcy5jdXN0b21lci53cml0ZSIsInJlcXVlc3Rmb3JxdW90ZS53cml0ZSIsInNhbGVzLm9yZGVyLmJvb2siLCJyZXF1ZXN0Zm9ycXVvdGUucmVhZCIsInNhbGVzLmxlYWQucmVhZCIsInB1cmNoYXNlLm9yZGVyLnJlYWQiLCJzYWxlcy5xdW90ZS5yZWFkIiwic2FsZXMucXVvdGUud3JpdGUiLCJjYXRhbG9nLml0ZW0ucmVhZCIsInNhbGVzLmxlYWQud3JpdGUiLCJzZXJ2aWNlLnJlcXVlc3Quc3VibWl0Iiwic2FsZXMub3JkZXIuZGVsaXZlcnlhZGRyZXNzLnJlYWQiLCJwdXJjaGFzZS5vcmRlci53cml0ZSIsInB1cmNoYXNlLm9yZGVyLnByaWNlcy53cml0ZSIsInB1cmNoYXNlLm9yZGVyLnByaWNlcy5yZWFkIiwic2VydmljZS5yZXF1ZXN0LndyaXRlIiwiY2F0YWxvZy5jYXRhbG9nLnJlYWQiLCJjYXRhbG9nLmNhdGFsb2cud3JpdGUiLCJjYXRhbG9nLmN1cnJlbmN5LnJlYWQiLCJjYXRhbG9nLmN1cnJlbmN5LndyaXRlIiwiY2F0YWxvZy5pdGVtLndyaXRlIiwiY2F0YWxvZy5sb2NhbGl6YXRpb24ucmVhZCIsImNhdGFsb2cubG9jYWxpemF0aW9uLndyaXRlIiwiY2F0YWxvZy5wcm9kdWN0LnJlYWQiLCJjYXRhbG9nLnByb2R1Y3Qud3JpdGUiLCJjYXRhbG9nLnByb2R1Y3RzZXR0aW5nLnJlYWQiLCJjYXRhbG9nLnByb2R1Y3RzZXR0aW5nLndyaXRlIiwiY2F0YWxvZy5zZWxsZXIucmVhZCIsImNhdGFsb2cuc2VsbGVyLndyaXRlIiwiY2F0YWxvZy50YWcud3JpdGUiLCJjYXRhbG9nLnVvbS5yZWFkIiwiY2F0YWxvZy51b20ud3JpdGUiLCJjYXRhbG9nLnZhdGNhdGVnb3J5LnJlYWQiLCJjYXRhbG9nLnZhdGNhdGVnb3J5LndyaXRlIiwiY2F0YWxvZy52ZW5kb3IucmVhZCIsImNhdGFsb2cudmVuZG9yLndyaXRlIiwicHVyY2hhc2Uuc2VsbGVyLnJlYWQiLCJwdXJjaGFzZS5zZWxsZXIud3JpdGUiLCJjYXRhbG9nLmFydGljbGUucmVhZCIsImNhdGFsb2cuYXJ0aWNsZS53cml0ZSIsInNhbGVzLnF1b3RlLmxpbmVzLnJlYWQiLCJzYWxlcy5xdW90ZS5saW5lcy53cml0ZSIsInNhbGVzLnNlbGxlci5yZWFkIiwic2FsZXMuc2VsbGVyLndyaXRlIiwiYWNjb3VudGluZy52ZW5kb3JpbnZvaWNlLnJlYWQiLCJpZGVudGl0eS51c2VyLnJlYWQiLCJpZGVudGl0eS51c2VyLndyaXRlIiwiaWRlbnRpdHkucm9sZS5yZWFkIiwic2VsbGVyLnByb2R1Y3RwcmljZS5zZXR0aW5ncy5yZWFkIiwic2VsbGVyLnByb2R1Y3RwcmljZS5zZXR0aW5ncy53cml0ZSIsImNvbmZpZ3VyYXRvci5wdXJjaGFzZXByaWNlLnJlYWQiLCJzdG9jay5mYWJyaWMucmVhZCIsInNhbGVzLm9yZGVyLnBsYWNlIl0sIm5hbWUiOiJSb2JpbiIsImZhbWlseV9uYW1lIjoiZGUgV2ludGVyIChDb2xpam4tSVQpIiwicm9sZSI6WyJzZWxsZXIiLCJkZWFsZXJfbWFuYWdlciJdLCJpYXQiOjE3MzcxMjQ2NDQsInNjb3BlIjpbImNhdGFsb2dxdWVyeWFwaSIsImNvbmZpZ3VyYXRvcmFwaSIsInByb2R1Y3R2YXJpYW50Y29tbWFuZGFwaSIsInByb2R1Y3R2YXJpYW50cXVlcnlhcGkiXSwiYW1yIjpbImltcGVyc29uYXRpb24iXX0.IrmgJbyPrWwNYO1xgyFcV3OsmQ7qF5nbhux8opLz8VW4za3co4aXUE4E9HYBzJFpurcv9T7oL0AhbQq4zbjNSW973GYAFI_euIMZobtzXHK_coBuTxWXnfDC8MmFAJhduIt1HXgYVX6dtY_RWwaHfEIy4J5YBjxzWgHgDrRG_Edn5_QKfC6PuTzLUoHkIaulehGk8ptlRKwNoHiGAxkHt-grefBjPlyeW98O9PqPzl4_wR6P_c8wJQiFCjAPpADvkKuwdN06BJ2Q9mXQasYOom5M6f-B51PBRyajX-f20rA3jj16bRLnIqvWRZ-p-U2zxfWUKwBAXa-aEcLH6LHTAQ\";\r\n\r\n @Input()\r\n public variant: string = '';\r\n\r\n @Input()\r\n public urlParams: ExternalSourceParameter[] = [];\r\n\r\n @Output()\r\n public configuratorFinished: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n @Output()\r\n public configurationError: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n\r\n @HostBinding('class.co-product-hd')\r\n public showClass: boolean = true;\r\n\r\n public hdeConfigurator: ElementRef;\r\n\r\n private _sku: string;\r\n\r\n constructor(\r\n private _scriptLoader: ProductScriptLoaderService,\r\n private _renderer: Renderer2\r\n ) {\r\n }\r\n\r\n ngOnDestroy() {\r\n this._scriptLoader.unloadScripts(this._renderer);\r\n }\r\n\r\n public handleConfigurationFinished(event: CustomEvent): void {\r\n if (event.detail.variant && typeof event.detail.variant === 'string') {\r\n this.configuratorFinished.emit(event.detail.variant);\r\n } else {\r\n this.configuratorFinished.emit(this.variant);\r\n }\r\n }\r\n\r\n public handleError(event: CustomEvent): void {\r\n this.configurationError.emit(event.detail.status);\r\n }\r\n\r\n private _prepareAttributes(): void {\r\n if (this.hdeConfigurator && this.hdeConfigurator.nativeElement && this.urlParams && this.token && (this.sku || this.variant)) {\r\n //for local testing please turn off for packing and publishing!\r\n //this.prepareTestingUrlparams();\r\n\r\n this._prepareConfiguratorUrls();\r\n this.hdeConfigurator.nativeElement.setAttribute('bearerToken', this.token);\r\n if (this._sku) {\r\n this.hdeConfigurator.nativeElement.setAttribute('data-productId', this._sku);\r\n }\r\n if (this.variant) {\r\n this.hdeConfigurator.nativeElement.setAttribute('data-productVariantId', this.variant);\r\n }\r\n this._loadTheScripts();\r\n }\r\n }\r\n\r\n //set necessary references to configurator.\r\n private _prepareConfiguratorUrls(): void {\r\n //fetch the setting from the external source\r\n let apiurl: string = this.urlParams.find((item: ExternalSourceParameter) => item.key === 'apiurl').value;\r\n let productVariantCommandApiUrl: string = this.urlParams.find((item: ExternalSourceParameter) => item.key === 'productVariantCommandApiUrl').value;\r\n let productVariantQueryApiUrl: string = this.urlParams.find((item: ExternalSourceParameter) => item.key === 'productVariantQueryApiUrl').value;\r\n let localizationApiUrl: string = this.urlParams.find((item: ExternalSourceParameter) => item.key === 'localizationApiUrl').value;\r\n\r\n //apply to configurator\r\n this.hdeConfigurator.nativeElement.setAttribute('apiurl', apiurl);\r\n this.hdeConfigurator.nativeElement.setAttribute('productVariantCommandApiUrl', productVariantCommandApiUrl);\r\n this.hdeConfigurator.nativeElement.setAttribute('productVariantQueryApiUrl', productVariantQueryApiUrl);\r\n this.hdeConfigurator.nativeElement.setAttribute('localizationApiUrl', localizationApiUrl)\r\n }\r\n\r\n // load external scripts into client\r\n private async _loadTheScripts(): Promise<void> {\r\n let headerUrls: string = this.urlParams.find((item: ExternalSourceParameter) => item.key === 'header').value;\r\n let headerArray: string[] = headerUrls.replace(/\\s+/g, '').split(',');\r\n for (let i = 0; i < headerArray.length; i++) {\r\n await this._scriptLoader.loadScript(headerArray[i], this._renderer).catch((error) => console.error(error));\r\n }\r\n\r\n let styles: string = this.urlParams.find((item: ExternalSourceParameter) => item.key === 'stylesheet').value;\r\n let stylesArray: string[] = styles.replace(/\\s+/g, '').split(',');\r\n for (let j = 0; j < stylesArray.length; j++) {\r\n await this._scriptLoader.addStyleSheet(stylesArray[j], this._renderer);\r\n }\r\n\r\n //for local testing please turn off for packing and publishing!\r\n /*const scripts: string[] = [\r\n // hard-coded for now, should come from the external source\r\n 'https://hde-cdn.azureedge.net/libs/components/Configurator/1.0.33/polyfills.js',\r\n 'https://hde-cdn.azureedge.net/libs/components/Configurator/1.0.33/runtime.js',\r\n 'https://hde-cdn.azureedge.net/libs/components/Configurator/1.0.33/main.js'\r\n ]\r\n for (let i = 0; i < scripts.length; i++) {\r\n await this._scriptLoader.loadScript(scripts[i], this._renderer).catch((error) => console.error(error));\r\n }\r\n await this._scriptLoader.addStyleSheet('https://hde-cdn.azureedge.net/libs/components/Configurator/1.0.33/styles.css', this._renderer);*/\r\n }\r\n\r\n\r\n\r\n //for local testing please turn off for packing and publishing!\r\n /*private prepareTestingUrlparams(): void {\r\n let headers: ExternalSourceParameter = new ExternalSourceParameter();\r\n headers.id = 1;\r\n headers.key = 'header';\r\n headers.value = 'https://hde-cdn.azureedge.net/libs/components/Configurator/1.0.33/polyfills.js,https://hde-cdn.azureedge.net/libs/components/Configurator/1.0.33/runtime.js,https://hde-cdn.azureedge.net/libs/components/Configurator/1.0.33/main.js';\r\n let styles: ExternalSourceParameter = new ExternalSourceParameter();\r\n styles.id = 2;\r\n styles.key = 'stylesheet';\r\n styles.value = 'https://hde-cdn.azureedge.net/libs/components/Configurator/1.0.33/styles.css';\r\n this.urlParams.push(headers);\r\n this.urlParams.push(styles);\r\n let aurl: ExternalSourceParameter = new ExternalSourceParameter();\r\n aurl.id = 3;\r\n aurl.key = 'apiurl';\r\n aurl.value = 'https://bmsproductconfigurator-acceptance.azurewebsites.net/api/configurator/';\r\n let purl: ExternalSourceParameter = new ExternalSourceParameter();\r\n purl.id = 4;\r\n purl.key = 'productVariantCommandApiUrl';\r\n purl.value = 'https://bmsproductvariantcommand-acceptance.azurewebsites.net/';\r\n let qurl: ExternalSourceParameter = new ExternalSourceParameter();\r\n qurl.id = 5;\r\n qurl.key = 'productVariantQueryApiUrl';\r\n qurl.value = 'https://bmsproductvariantquery-acceptance.azurewebsites.net/';\r\n let lurl: ExternalSourceParameter = new ExternalSourceParameter();\r\n lurl.id = 6;\r\n lurl.key = 'localizationApiUrl';\r\n lurl.value = 'https://hde-cdn.azureedge.net/libs/BMS.DST.Localization/';\r\n this.urlParams.push(headers);\r\n this.urlParams.push(styles);\r\n this.urlParams.push(aurl);\r\n this.urlParams.push(purl);\r\n this.urlParams.push(qurl);\r\n this.urlParams.push(lurl);\r\n }*/\r\n}\r\n","import {CUSTOM_ELEMENTS_SCHEMA, NgModule, NO_ERRORS_SCHEMA} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductHdComponent} from './product-hd.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n ProductHdComponent\r\n ],\r\n schemas: [\r\n CUSTOM_ELEMENTS_SCHEMA,\r\n NO_ERRORS_SCHEMA\r\n ],\r\n exports: [\r\n ProductHdComponent\r\n ]\r\n})\r\nexport class ProductHdModule {\r\n}\r\n","import {Component, EventEmitter, HostBinding, Input, OnDestroy, OnInit, Output, ViewEncapsulation} from '@angular/core';\r\nimport {DomSanitizer, SafeResourceUrl} from '@angular/platform-browser';\r\nimport {ExternalSource} from '@colijnit/articleapi/build/model/external-source.bo';\r\nimport {ProductConnectorService} from '../../service/product-connector.service';\r\nimport {ArticleListObject} from '@colijnit/articleapi/build/model/article-list-object';\r\nimport {ProductEventService} from '../../service/product-event.service';\r\nimport {Subscription} from 'rxjs';\r\nimport {ProductSettingsService} from '../../service/product-settings.service';\r\nimport {ProductConnectorAdapterService} from '../../service/product-connector-adapter.service';\r\nimport {CatalogDefinition} from '@colijnit/articleapi/build/model/catalog-definition.bo';\r\nimport {ExternalSourceArticleAddInterface} from '@colijnit/articleapi/build/interface/external-source-article-add.interface';\r\nimport {ArticleListObjectExtended} from '@colijnit/articleapi/build/model/article-list-object-extended.bo';\r\nimport {ExternalCatalogStartupInfo} from '@colijnit/articleapi/build/model/external-catalog-startup-info';\r\nimport {ExternalSourceParameter} from '@colijnit/articleapi/build/model/external-source-parameter.bo';\r\n\r\n@Component({\r\n selector: 'co-product-external-source',\r\n template: `\r\n <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 [externalSource]=\"externalSource\"\r\n ></app-product-page>\r\n </ng-container>\r\n <ng-container *ngIf=\"showSource\">\r\n <iframe width=\"100%\" height=\"100%\" [src]=\"safeUrl\" frameborder=\"0\" allowfullscreen></iframe>\r\n </ng-container>\r\n <ng-container *ngIf=\"showConfigurator\">\r\n <co-product-hd width=\"100%\" height=\"100%\"\r\n [sku]=\"sku\"\r\n [variant]=\"variant\"\r\n [token]=\"token\"\r\n [urlParams]=\"urlParams\"\r\n (configuratorFinished)=\"handleConfigurationFinished($event)\"></co-product-hd>\r\n </ng-container>\r\n </ng-container>\r\n `,\r\n providers: [\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 catalogDefinition: CatalogDefinition;\r\n\r\n @Input()\r\n public set externalSource(value: ExternalSource) {\r\n this._externalSource = value;\r\n this.loaded = false;\r\n this._prepareExternalSource();\r\n }\r\n\r\n public get externalSource(): ExternalSource {\r\n return this._externalSource;\r\n }\r\n\r\n @Input()\r\n public set externalCatalogStartupInfo(value: ExternalCatalogStartupInfo) {\r\n if (value) {\r\n this._externalCatalogStartupInfo = value;\r\n this.externalSource = value.externalSource;\r\n this.loaded = false;\r\n this._prepareExternalSource();\r\n }\r\n }\r\n\r\n public get externalCatalogStartupInfo(): ExternalCatalogStartupInfo {\r\n return this._externalCatalogStartupInfo;\r\n }\r\n\r\n @Input()\r\n public options: {};\r\n\r\n @Output()\r\n public addToCart: EventEmitter<ExternalSourceArticleAddInterface> = new EventEmitter<ExternalSourceArticleAddInterface>();\r\n\r\n @Output()\r\n public addToQuote: EventEmitter<ExternalSourceArticleAddInterface> = new EventEmitter<ExternalSourceArticleAddInterface>();\r\n\r\n @Output()\r\n public alternativeClick: EventEmitter<ArticleListObject> = new EventEmitter<ArticleListObject>();\r\n\r\n @Output()\r\n public configuratorFinished: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n @HostBinding('class.co-product-external-source')\r\n public showClass() {\r\n return true;\r\n }\r\n\r\n public showProduct: boolean = false;\r\n public showConfigurator: boolean = false;\r\n public showSource: boolean = false;\r\n public safeUrl: SafeResourceUrl;\r\n public loaded: boolean = false;\r\n public externalUrl: string;\r\n public externalSettings: any = {};\r\n\r\n public token: string = \"\";//= \"eyJhbGciOiJSUzI1NiIsImtpZCI6IkYxOThERkVEOEUwQTQ1MzY3M0M1MUE2Rjk1QUVDQzU3RTM0NjM4RkRSUzI1NiIsInR5cCI6ImF0K2p3dCIsIng1dCI6IjhaamY3WTRLUlRaenhScHZsYTdNVi1OR09QMCJ9.eyJuYmYiOjE3MzIxOTkyOTUsImV4cCI6MTczMjIwMjg5NSwiaXNzIjoiaHR0cHM6Ly9ibXNpZGVudGl0eS1hY2NlcHRhbmNlLmF6dXJld2Vic2l0ZXMubmV0IiwiYXVkIjpbImNhdGFsb2dxdWVyeWFwaSIsImNvbmZpZ3VyYXRvcmFwaSIsInByb2R1Y3R2YXJpYW50Y29tbWFuZGFwaSIsInByb2R1Y3R2YXJpYW50cXVlcnlhcGkiXSwiY2xpZW50X2lkIjoiaW1wZXJzb25hdGlvbi5jbGllbnQiLCJzdWIiOiIwOTMwZDI4Mi05NGU4LTQ5MGEtOGI2NC1mYTk1YmIyYzE1ODIiLCJhdXRoX3RpbWUiOjE3MzIxOTkyOTUsImlkcCI6ImxvY2FsIiwiZW52aXJvbm1lbnQiOiJNU0wiLCJzZWxsZXIiOiJTRTAwMDA5NiIsInNlbGxlcmd1aWQiOiIxMDk1MWJjNS1hZmMzLTQ1MGEtNmVkMS0wOGQ4NDNlNmE5OTQiLCJwZXJtaXNzaW9uIjpbInNhbGVzLmV4cG9ydHRlbXBsYXRlcy5yZWFkIiwiZG9jdW1lbnRsaWJyYXJ5LnRhZy5yZWFkIiwiZG9jdW1lbnRsaWJyYXJ5LmRvY3VtZW50LnJlYWQiLCJkb2N1bWVudGxpYnJhcnkudGFnZ3JvdXAucmVhZCIsInNhbGVzLm9yZGVyLndyaXRlIiwic2FsZXMuY3VzdG9tZXIucmVhZCIsInNhbGVzLm9yZGVyLmRlbGl2ZXJ5YWRkcmVzcy53cml0ZSIsInNlcnZpY2UucmVxdWVzdC5yZWFkIiwiY2F0YWxvZy50YWcucmVhZCIsInNhbGVzLm9yZGVyLnJlYWQiLCJzYWxlcy5jdXN0b21lci53cml0ZSIsInJlcXVlc3Rmb3JxdW90ZS53cml0ZSIsInNhbGVzLm9yZGVyLmJvb2siLCJyZXF1ZXN0Zm9ycXVvdGUucmVhZCIsInNhbGVzLmxlYWQucmVhZCIsInB1cmNoYXNlLm9yZGVyLnJlYWQiLCJzYWxlcy5xdW90ZS5yZWFkIiwic2FsZXMucXVvdGUud3JpdGUiLCJjYXRhbG9nLml0ZW0ucmVhZCIsInNhbGVzLmxlYWQud3JpdGUiLCJzZXJ2aWNlLnJlcXVlc3Quc3VibWl0Iiwic2FsZXMub3JkZXIuZGVsaXZlcnlhZGRyZXNzLnJlYWQiLCJwdXJjaGFzZS5vcmRlci53cml0ZSIsInB1cmNoYXNlLm9yZGVyLnByaWNlcy53cml0ZSIsInB1cmNoYXNlLm9yZGVyLnByaWNlcy5yZWFkIiwic2VydmljZS5yZXF1ZXN0LndyaXRlIiwiY2F0YWxvZy5jYXRhbG9nLnJlYWQiLCJjYXRhbG9nLmNhdGFsb2cud3JpdGUiLCJjYXRhbG9nLmN1cnJlbmN5LnJlYWQiLCJjYXRhbG9nLmN1cnJlbmN5LndyaXRlIiwiY2F0YWxvZy5pdGVtLndyaXRlIiwiY2F0YWxvZy5sb2NhbGl6YXRpb24ucmVhZCIsImNhdGFsb2cubG9jYWxpemF0aW9uLndyaXRlIiwiY2F0YWxvZy5wcm9kdWN0LnJlYWQiLCJjYXRhbG9nLnByb2R1Y3Qud3JpdGUiLCJjYXRhbG9nLnByb2R1Y3RzZXR0aW5nLnJlYWQiLCJjYXRhbG9nLnByb2R1Y3RzZXR0aW5nLndyaXRlIiwiY2F0YWxvZy5zZWxsZXIucmVhZCIsImNhdGFsb2cuc2VsbGVyLndyaXRlIiwiY2F0YWxvZy50YWcud3JpdGUiLCJjYXRhbG9nLnVvbS5yZWFkIiwiY2F0YWxvZy51b20ud3JpdGUiLCJjYXRhbG9nLnZhdGNhdGVnb3J5LnJlYWQiLCJjYXRhbG9nLnZhdGNhdGVnb3J5LndyaXRlIiwiY2F0YWxvZy52ZW5kb3IucmVhZCIsImNhdGFsb2cudmVuZG9yLndyaXRlIiwicHVyY2hhc2Uuc2VsbGVyLnJlYWQiLCJwdXJjaGFzZS5zZWxsZXIud3JpdGUiLCJjYXRhbG9nLmFydGljbGUucmVhZCIsImNhdGFsb2cuYXJ0aWNsZS53cml0ZSIsInNhbGVzLnF1b3RlLmxpbmVzLnJlYWQiLCJzYWxlcy5xdW90ZS5saW5lcy53cml0ZSIsInNhbGVzLnNlbGxlci5yZWFkIiwic2FsZXMuc2VsbGVyLndyaXRlIiwiYWNjb3VudGluZy52ZW5kb3JpbnZvaWNlLnJlYWQiLCJpZGVudGl0eS51c2VyLnJlYWQiLCJpZGVudGl0eS51c2VyLndyaXRlIiwiaWRlbnRpdHkucm9sZS5yZWFkIiwic2VsbGVyLnByb2R1Y3RwcmljZS5zZXR0aW5ncy5yZWFkIiwic2VsbGVyLnByb2R1Y3RwcmljZS5zZXR0aW5ncy53cml0ZSIsImNvbmZpZ3VyYXRvci5wdXJjaGFzZXByaWNlLnJlYWQiLCJzdG9jay5mYWJyaWMucmVhZCJdLCJuYW1lIjoiUm9iaW4iLCJmYW1pbHlfbmFtZSI6ImRlIFdpbnRlciAoQ29saWpuLUlUKSIsInJvbGUiOlsic2VsbGVyIiwiZGVhbGVyX21hbmFnZXIiXSwiaWF0IjoxNzMyMTk5Mjk1LCJzY29wZSI6WyJjYXRhbG9ncXVlcnlhcGkiLCJjb25maWd1cmF0b3JhcGkiLCJwcm9kdWN0dmFyaWFudGNvbW1hbmRhcGkiLCJwcm9kdWN0dmFyaWFudHF1ZXJ5YXBpIl0sImFtciI6WyJpbXBlcnNvbmF0aW9uIl19.rbguVPnkXXDzsM6QKgXulhrF41jIjCuGDV13ig1GC8MewLCJ7wA038OSwT26sx2mCexjvuGYt45YScfPwfTkDy3ErPmHRods64X1dJWZnf-23NTP2iI32K_1vMZH5GOGbMzuFtbKAFQv4hgFAxoyWqFVWyJvuOtQcWyZStROyPHwjAnpnj-x1cVQpOhbO-kQUFvy_VUrPpF3aYVCcO2cFirQTXR6kxSGcYGGcsPY-_eiAd93UdG2EM6xLAocDLaFV72CQI6XEs0WQG1f4SqvH52v3OTkgWBLgYV35gpyIe0-2nazGL0R8pTNuDqrOb7OGmuTRMoTIiRi67-wTxx8cQ\";\r\n public variant: string = \"\";\r\n public urlParams: ExternalSourceParameter[] = [];\r\n\r\n\r\n\r\n private _externalSource: ExternalSource;\r\n private _externalCatalogStartupInfo: ExternalCatalogStartupInfo;\r\n private _subs: Subscription[] = [];\r\n\r\n constructor(\r\n private _sanitizer: DomSanitizer,\r\n private _productConnectorService: ProductConnectorService,\r\n private _appEventService: ProductEventService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this._subs.push(\r\n this._appEventService.onAddToCart.subscribe((data: { article: string | ArticleListObjectExtended, quantity: number }) => {\r\n this.addToCart.next({\r\n article: data.article,\r\n quantity: data.quantity,\r\n catalogDefinition: this.catalogDefinition,\r\n externalSource: this._externalSource\r\n });\r\n }),\r\n this._appEventService.onAddToQuote.subscribe(json => {\r\n this.addToQuote.next({\r\n article: json,\r\n quantity: 1,\r\n catalogDefinition: this.catalogDefinition,\r\n externalSource: this._externalSource\r\n });\r\n }),\r\n this._appEventService.onAlternativeClick.subscribe(article => this.alternativeClick.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 public handleConfigurationFinished(variantString: string) {\r\n this.configuratorFinished.emit(variantString);\r\n }\r\n\r\n private async _prepareExternalSource(): Promise<void> {\r\n if (!this._externalSource) {\r\n return;\r\n }\r\n this.externalUrl = undefined;\r\n this.externalSettings = {};\r\n if (this.externalSource.type === 'CATF') {\r\n await this._prepareCatFarm();\r\n } else if (this.externalSource.type === 'HTDL'){\r\n this._prepareConfigurator();\r\n } else {\r\n this._prepareSource();\r\n }\r\n }\r\n\r\n private async _prepareCatFarm(): Promise<void> {\r\n // get bundle settings from external source\r\n const bundleSettings: string = await this._productConnectorService.getProductBundleSettings(this.externalSource.url, parseInt(this.externalSource.schema, 0));\r\n this.externalSettings = JSON.parse(bundleSettings);\r\n if (this.options) {\r\n this.externalSettings.options = this.options;\r\n }\r\n // this.externalSettings.assetPath = \"https://cdn1.colijn-it.nl/content43\";\r\n // this.externalSettings.threeDAssetPath = \"https://cdn1.colijn-it.nl/content43\";\r\n if (this.externalSource.username && this.externalSource.password) {\r\n this.externalSettings.useLoginEncryption = true;\r\n this.externalSettings.username = this.externalSource.username;\r\n this.externalSettings.password = this.externalSource.password;\r\n }\r\n // finally show the catalog\r\n this.switchToProduct();\r\n this.loaded = true;\r\n }\r\n\r\n private _prepareConfigurator(): void {\r\n if(this.externalCatalogStartupInfo) {\r\n this.token = this.externalCatalogStartupInfo.token;\r\n this.sku = this.externalCatalogStartupInfo.externalGoodId;\r\n this.variant = this.externalCatalogStartupInfo.flattenedGoodId;\r\n this.urlParams = this.externalCatalogStartupInfo.externalSource.parameters;\r\n this.switchToConfigurator();\r\n this.loaded = true;\r\n }\r\n }\r\n\r\n private _prepareSource(): void {\r\n this.externalUrl = this.externalSource.url;\r\n this.safeUrl = this._sanitizer.bypassSecurityTrustResourceUrl(this.externalUrl);\r\n this.switchToSource();\r\n this.loaded = true;\r\n }\r\n\r\n private switchToProduct():void {\r\n this.showProduct = true;\r\n this.showConfigurator = false;\r\n this.showSource = false;\r\n }\r\n\r\n private switchToConfigurator():void {\r\n this.showProduct = false;\r\n this.showConfigurator = true;\r\n this.showSource = false;\r\n }\r\n\r\n private switchToSource():void {\r\n this.showProduct = false;\r\n this.showConfigurator = false;\r\n this.showSource = true;\r\n }\r\n\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ProductExternalSourceComponent} from './product-external-source.component';\r\nimport {ProductPageModule} from '../product-page/product-page.module';\r\nimport {ProductHdModule} from '../product-hd/product-hd.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ProductPageModule,\r\n ProductHdModule\r\n ],\r\n declarations: [\r\n ProductExternalSourceComponent\r\n ],\r\n exports: [\r\n ProductExternalSourceComponent\r\n ]\r\n})\r\nexport class ProductExternalSourceModule {\r\n}\r\n","import {CUSTOM_ELEMENTS_SCHEMA, NgModule, NO_ERRORS_SCHEMA} from '@angular/core';\nimport {IoneProductComponent} from './ione-product.component';\nimport {CommonModule} from '@angular/common';\n// import {BrowserAnimationsModule} from '@angular/platform-browser/animations';\nimport {ProductPageModule} from './components/product-page/product-page.module';\nimport {ProductHdModule} from './components/product-hd/product-hd.module';\nimport {ProductExternalSourceModule} from './components/product-external-source/product-external-source.module';\nimport {ButtonModule} from '@colijnit/corecomponents_v12';\n\n@NgModule({\n imports: [\n // BrowserAnimationsModule,\n CommonModule,\n ProductPageModule,\n ProductHdModule,\n ProductExternalSourceModule,\n ButtonModule\n ],\n declarations: [\n IoneProductComponent\n ],\n exports: [\n IoneProductComponent\n ],\n schemas: [\n CUSTOM_ELEMENTS_SCHEMA,\n NO_ERRORS_SCHEMA\n ],\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 {LocalStorageService as ɵbs} from './app/bundle/service/local-storage.service';\nexport {HeaderComponent as ɵu} from './app/components/core/header/header.component';\nexport {HeaderModule as ɵt} from './app/components/core/header/header.module';\nexport {ImageCarouselComponent as ɵj} from './app/components/image-carousel/image-carousel.component';\nexport {ImageCarouselModule as ɵi} from './app/components/image-carousel/image-carousel.module';\nexport {ProductAdditionalDescriptionComponent as ɵn} from './app/components/product-additional-description/product-additional-description.component';\nexport {ProductAdditionalDescriptionModule as ɵm} from './app/components/product-additional-description/product-additional-description.module';\nexport {ProductAdditionalInfoComponent as ɵbc} from './app/components/product-additional-info/product-additional-info.component';\nexport {ProductAdditionalInfoModule as ɵbb} from './app/components/product-additional-info/product-additional-info.module';\nexport {ProductAddtocartComponent as ɵr} from './app/components/product-addtocart/product-addtocart.component';\nexport {ProductAddtocartModule as ɵq} from './app/components/product-addtocart/product-addtocart.module';\nexport {ProductDeliveryComponent as ɵz} from './app/components/product-delivery/product-delivery.component';\nexport {ProductDeliveryModule as ɵy} from './app/components/product-delivery/product-delivery.module';\nexport {ProductDescriptionComponent as ɵl} from './app/components/product-description/product-description.component';\nexport {ProductDescriptionModule as ɵk} from './app/components/product-description/product-description.module';\nexport {ProductDialogComponent as ɵbl} from './app/components/product-dialog/product-dialog.component';\nexport {ProductDialogModule as ɵbk} from './app/components/product-dialog/product-dialog.module';\nexport {ProductDocumentModule as ɵbf} from './app/components/product-documents/product-document.module';\nexport {ProductDocumentsComponent as ɵbg} from './app/components/product-documents/product-documents.component';\nexport {ProductHdComponent as ɵbq} from './app/components/product-hd/product-hd.component';\nexport {ProductHdModule as ɵbp} from './app/components/product-hd/product-hd.module';\nexport {ProductInfoTabsComponent as ɵbj} from './app/components/product-info-tabs/product-info-tabs.component';\nexport {ProductInfoTabsModule as ɵba} from './app/components/product-info-tabs/product-info-tabs.module';\nexport {ProductPageComponent as ɵbo} 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 {ProductPriceModule as ɵo} from './app/components/product-price/product-price.module';\nexport {ProductPropertiesComponent as ɵbe} from './app/components/product-properties/product-properties.component';\nexport {ProductPropertiesModule as ɵbd} from './app/components/product-properties/product-properties.module';\nexport {ProductRelatedComponent as ɵv} from './app/components/product-related/product-related.component';\nexport {ProductRelatedModule as ɵs} from './app/components/product-related/product-related.module';\nexport {ProductSelectorTypeComponent as ɵg} from './app/components/product-selector-type/product-selector-type.component';\nexport {ProductSelectorTypeModule as ɵb} from './app/components/product-selector-type/product-selector-type.module';\nexport {ProductStockComponent as ɵx} from './app/components/product-stock/product-stock.component';\nexport {ProductStockModule as ɵw} from './app/components/product-stock/product-stock.module';\nexport {ProductSymbolsComponent as ɵbi} from './app/components/product-symbols/product-symbols.component';\nexport {ProductSymbolsModule as ɵbh} from './app/components/product-symbols/product-symbols.module';\nexport {RenderCarouselComponent as ɵbn} from './app/components/render-carousel/render-carousel.component';\nexport {RenderCarouselModule as ɵbm} from './app/components/render-carousel/render-carousel.module';\nexport {LocalizePipe as ɵd} from './app/pipe/localize.pipe';\nexport {PipeModule as ɵc} from './app/pipe/pipe.module';\nexport {DictionaryService as ɵe} from './app/service/dictionary.service';\nexport {IconCacheService as ɵh} from './app/service/icon-cache.service';\nexport {ProductScriptLoaderService as ɵbr} from './app/service/product-script-loader.service';\nexport {JsonUtilsService as ɵf} from './app/utils/json-utils.service';"],"names":["RenderParameters","Options","Subject","Directive","Injectable","BusinessObjectFactory","Articles","Transaction","MainApi","ArticleListObjectExtended","DeliveryPrognosis","ArticleFullObject","SuperArticle","DocumentContent","TransactionInfoResponse","StringUtils","HttpClient","BehaviorSubject","EventEmitter","Component","ViewEncapsulation","Input","Output","DomSanitizer","trigger","state","style","transition","animate","Renderer2","ChangeDetectorRef","ViewChild","ElementRef","Pipe","NgModule","CommonModule","IconModule","CoDocument","ChangeDetectionStrategy","HostListener","HostBinding","LoaderModule","ScrollContainerModule","PriceDisplayPipeModule","ConfiguratorStatisticsEnvironment","NumberPickerModule","ButtonModule","ArticleTileModule","SecurityContext","FilesUploadModule","TileModule","IconCollapseHandleModule","CUSTOM_ELEMENTS_SCHEMA","isPlatformBrowser","Inject","PLATFORM_ID","NO_ERRORS_SCHEMA"],"mappings":"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"}
|