@colijnit/product 1.0.13 → 1.9.3
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/components/image-carousel/image-carousel.component.d.ts +8 -4
- package/app/components/product-additional-description/product-additional-description.component.d.ts +2 -1
- package/app/components/product-additional-info/product-additional-info.component.d.ts +2 -1
- package/app/components/product-addtocart/product-addtocart.component.d.ts +2 -1
- package/app/components/product-delivery/product-delivery.component.d.ts +1 -1
- package/app/components/product-info-tabs/product-info-tabs.component.d.ts +1 -1
- package/app/components/product-page/product-page.component.d.ts +8 -5
- package/app/components/product-price/product-price.component.d.ts +3 -2
- package/app/components/product-properties/product-properties.component.d.ts +2 -1
- package/app/components/product-related/product-related.component.d.ts +2 -1
- package/app/components/product-stock/product-stock.component.d.ts +1 -1
- package/app/components/product-symbols/product-symbols.component.d.ts +2 -1
- package/app/ione-product.component.d.ts +8 -5
- package/app/ione-product.module.d.ts +2 -0
- package/app/model/settings.d.ts +5 -0
- package/app/service/app-event.service.d.ts +5 -0
- package/app/service/app-initializer.service.d.ts +6 -0
- package/app/service/dictionary.service.d.ts +2 -2
- package/app/service/i-one-connector-adapter.service.d.ts +5 -2
- package/app/service/i-one-controller.service.d.ts +5 -3
- package/app/service/icon-cache.service.d.ts +1 -1
- package/app/service/settings.service.d.ts +5 -3
- package/app/style/_scrollbars.mixins.scss +18 -0
- package/app/style/_variables.scss +21 -0
- package/{css/styles.css → app/style/product-globals.scss} +97 -73
- package/bundles/colijnit-product.umd.js +271 -224
- package/bundles/colijnit-product.umd.js.map +1 -1
- package/bundles/colijnit-product.umd.min.js +2 -2
- package/bundles/colijnit-product.umd.min.js.map +1 -1
- package/colijnit-product.d.ts +1 -0
- package/colijnit-product.metadata.json +1 -1
- package/esm2015/app/components/core/header/header.component.js +4 -4
- package/esm2015/app/components/image-carousel/image-carousel.component.js +23 -19
- package/esm2015/app/components/product-additional-description/product-additional-description.component.js +4 -4
- package/esm2015/app/components/product-additional-info/product-additional-info.component.js +7 -7
- package/esm2015/app/components/product-addtocart/product-addtocart.component.js +29 -21
- package/esm2015/app/components/product-delivery/product-delivery.component.js +4 -4
- package/esm2015/app/components/product-description/product-description.component.js +4 -4
- package/esm2015/app/components/product-documents/product-documents.component.js +4 -4
- package/esm2015/app/components/product-info/product-info.component.js +4 -4
- package/esm2015/app/components/product-info-tabs/product-info-tabs.component.js +5 -5
- package/esm2015/app/components/product-page/product-page.component.js +27 -56
- package/esm2015/app/components/product-price/product-price.component.js +5 -5
- package/esm2015/app/components/product-properties/product-properties.component.js +5 -5
- package/esm2015/app/components/product-related/product-related.component.js +7 -7
- package/esm2015/app/components/product-selector-type/product-selector-type.component.js +8 -8
- package/esm2015/app/components/product-stock/product-stock.component.js +4 -4
- package/esm2015/app/components/product-symbols/product-symbols.component.js +4 -4
- package/esm2015/app/ione-product.component.js +26 -52
- package/esm2015/app/ione-product.module.js +20 -5
- package/esm2015/app/model/settings.js +2 -1
- package/esm2015/app/pipe/localize.pipe.js +2 -2
- package/esm2015/app/service/app-event.service.js +13 -9
- package/esm2015/app/service/app-initializer.service.js +26 -0
- package/esm2015/app/service/dictionary.service.js +4 -4
- package/esm2015/app/service/i-one-connector-adapter.service.js +13 -7
- package/esm2015/app/service/i-one-controller.service.js +21 -8
- package/esm2015/app/service/icon-cache.service.js +3 -3
- package/esm2015/app/service/module.service.js +5 -5
- package/esm2015/app/service/settings.service.js +50 -21
- package/esm2015/app/utils/json-utils.service.js +7 -8
- package/esm2015/colijnit-product.js +2 -1
- package/esm5/app/components/core/header/header.component.js +4 -4
- package/esm5/app/components/image-carousel/image-carousel.component.js +23 -19
- package/esm5/app/components/product-additional-description/product-additional-description.component.js +4 -4
- package/esm5/app/components/product-additional-info/product-additional-info.component.js +13 -12
- package/esm5/app/components/product-addtocart/product-addtocart.component.js +41 -29
- package/esm5/app/components/product-delivery/product-delivery.component.js +4 -4
- package/esm5/app/components/product-description/product-description.component.js +4 -4
- package/esm5/app/components/product-documents/product-documents.component.js +4 -4
- package/esm5/app/components/product-info/product-info.component.js +4 -4
- package/esm5/app/components/product-info-tabs/product-info-tabs.component.js +5 -5
- package/esm5/app/components/product-page/product-page.component.js +29 -58
- package/esm5/app/components/product-price/product-price.component.js +5 -5
- package/esm5/app/components/product-properties/product-properties.component.js +5 -5
- package/esm5/app/components/product-related/product-related.component.js +7 -7
- package/esm5/app/components/product-selector-type/product-selector-type.component.js +8 -8
- package/esm5/app/components/product-stock/product-stock.component.js +4 -4
- package/esm5/app/components/product-symbols/product-symbols.component.js +4 -4
- package/esm5/app/ione-product.component.js +27 -59
- package/esm5/app/ione-product.module.js +20 -5
- package/esm5/app/model/settings.js +2 -1
- package/esm5/app/pipe/localize.pipe.js +5 -5
- package/esm5/app/service/app-event.service.js +13 -9
- package/esm5/app/service/app-initializer.service.js +29 -0
- package/esm5/app/service/dictionary.service.js +7 -7
- package/esm5/app/service/i-one-connector-adapter.service.js +13 -7
- package/esm5/app/service/i-one-controller.service.js +22 -9
- package/esm5/app/service/icon-cache.service.js +3 -3
- package/esm5/app/service/module.service.js +7 -7
- package/esm5/app/service/settings.service.js +117 -86
- package/esm5/app/utils/json-utils.service.js +8 -9
- package/esm5/colijnit-product.js +2 -1
- package/fesm2015/colijnit-product.js +196 -157
- package/fesm2015/colijnit-product.js.map +1 -1
- package/fesm5/colijnit-product.js +276 -233
- package/fesm5/colijnit-product.js.map +1 -1
- package/package.json +17 -42
- package/colijnit-product-1.0.13.tgz +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../node_modules/tslib/tslib.es6.js","ng://@colijnit/product/app/enum/language-code.enum.ts","ng://@colijnit/product/app/components/product-description/product-description.component.ts","ng://@colijnit/product/app/service/i-one-connector-adapter.service.ts","ng://@colijnit/product/app/utils/json-utils.service.ts","ng://@colijnit/product/app/utils/string-utils.ts","ng://@colijnit/product/app/model/render-modes.ts","ng://@colijnit/product/assets/dictionary/text.properties.ts","ng://@colijnit/product/app/service/dictionary.service.ts","ng://@colijnit/product/app/model/settings-options.ts","ng://@colijnit/product/app/model/render-parameters.ts","ng://@colijnit/product/app/enum/icon.enum.ts","ng://@colijnit/product/app/model/settings.ts","ng://@colijnit/product/app/service/settings.service.ts","ng://@colijnit/product/app/service/i-one-controller.service.ts","ng://@colijnit/product/app/service/app-event.service.ts","ng://@colijnit/product/app/model/icon.ts","ng://@colijnit/product/app/enum/selector-type.enum.ts","ng://@colijnit/product/app/service/icon-cache.service.ts","ng://@colijnit/product/app/components/image-carousel/image-carousel.component.ts","ng://@colijnit/product/app/model/stock-and-delivery.ts","ng://@colijnit/product/app/components/product-info/product-info.component.ts","ng://@colijnit/product/app/components/product-page/product-page.component.ts","ng://@colijnit/product/app/components/product-documents/product-documents.component.ts","ng://@colijnit/product/app/components/product-related/product-related.component.ts","ng://@colijnit/product/app/components/core/header/header.component.ts","ng://@colijnit/product/app/service/module.service.ts","ng://@colijnit/product/app/utils/bit-utils.ts","ng://@colijnit/product/app/components/product-additional-info/product-additional-info.component.ts","ng://@colijnit/product/app/components/product-properties/product-properties.component.ts","ng://@colijnit/product/app/pipe/localize.pipe.ts","ng://@colijnit/product/app/components/product-delivery/product-delivery.component.ts","ng://@colijnit/product/app/components/product-stock/product-stock.component.ts","ng://@colijnit/product/app/components/product-symbols/product-symbols.component.ts","ng://@colijnit/product/app/components/product-price/product-price.component.ts","ng://@colijnit/product/app/components/product-addtocart/product-addtocart.component.ts","ng://@colijnit/product/app/components/product-selector-type/product-selector-type.component.ts","ng://@colijnit/product/app/ione-product.component.ts","ng://@colijnit/product/app/components/product-additional-description/product-additional-description.component.ts","ng://@colijnit/product/app/components/product-info-tabs/product-info-tabs.component.ts","ng://@colijnit/product/app/ione-product.module.ts"],"names":["__decorate","decorators","target","key","desc","d","c","arguments","length","r","Object","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","this","n","v","op","TypeError","call","pop","push","__read","o","m","ar","error","__spread","concat","LanguageCode","ProductDescriptionComponent","prototype","ngOnInit","tslib_1.__decorate","Input","Component","selector","template","IOneConnectorAdapterService","showLoader","Subject","ngOnDestroy","connector","unsubscribe","initConnector","options","_this","Connector","session","subscribe","getDeliveryPrognosis","goodId","getDeliveryPrognosisForArticle","getArticleGroupImages","getTurnoverGroupImages","getSuperArticleImages","getJsonConfiguredArticles","getFullArticle","skuOrId","getSuperArticle","id","getDocumentContent","docId","thumbnail","Injectable","providedIn","JsonUtilsService","readJsonFile","filePath","fetch","response","_a","ok","json","console","statusText","e_1","message","RenderModes","StringUtils","ReplaceOccurrencesIn","source","placeholder","replacementTexts","_i","outString","replace","RegExp","_escapeRegExp","len","IsString","str","IsStringWithLength","Dictionary","strings","nl","ADDITIONAL_DATA","ALTERNATIVE_PRODUCTS","ARTICLE_NUMBER","CATEGORY","CATEGORY_TYPE","CONFIGURE","DELIVERY_TIME_PERIOD","DESCRIPTION","DOCUMENTS","DOWNLOADS","FEATURES","HEIGHT","MATERIAL","PRODUCT_IN_STOCK","PRODUCT_NOT_IN_STOCK","PROPERTIES","QUOTATION","READ_MORE","RELATED_PRODUCTS","SHOPPING_CART_IN","SHOW_IN","STOCK","SYMBOLS","TITLE","TURNOVERGROUP","VARIANTS","WIDTH","de","DictionaryService","_http","_jsonUtils","dictionaryUrl","_dictionaries","Map","_placeholder","_language","_rootUrl","_dictBasePath","setDictionary","language","Dutch","has","undefined","dictionary","substr","toLowerCase","set","get","upperCaseFirst","text","charAt","toUpperCase","slice","HttpClient","SettingsOptions","showStockStatus","showZoomButton","showTagFilter","showAsConfigured","inlineAnswers","showArButton","arEnabled","vrEnabled","IconEnum","RenderParameters","host","port","secure","renderMode","RenderShop","Settings","useGroups","useRenders","useEncryption","useMatch","renderParameters","SettingsService","_jsonUtilsService","_dictionaryService","settingsLoaded","BehaviorSubject","_settings","createSettingsFromObject","obj","settings","hasOwnProperty","url","rootUrl","schema","version","branch","currency","client","languageCode","username","password","timeoutInMs","assetPath","assetIndex","initializeSettings","IOneControllerService","_settingsService","controllerInitialized","_initializing","_initialized","defaultDevTestOptions","Options","subs","_article","_shouldShowLoader","forEach","sub","initDefaultDevelopTestConnection","Error","ajaxUrl","currencyId","useLoginEncryption","onShowLoaderChange","AppEventService","onAddToCart","onAlternativeClick","onAddToQuote","onForceRenderImage","onImageReceived","onRenderStarted","onRenderImageReceived","onArticleInfoReceived","onUpdateProductInfoTab","Output","SelectorType","IconSvg","add_to_cart_drop","delivery_truck","download","full_screen","location","logo","magic_wand","normal_screen","quote","refresh","three_d","truck","two_d","warehouse","IconCacheService","_sanitizer","_iconCache","_allIcons","setIconCache","getIcon","iconName","bypassSecurityTrustHtml","DomSanitizer","ImageCarouselComponent","_ione","_appEventService","_changeDetector","iconCache","icons","showRefresh","resizing","_currentIndex","_images","_subs","CoDocument","unshift","_loadImages","detectChanges","handleWindowResize","_scrollCarouselToIndex","clearTimeout","_resizeTimer","setTimeout","gotoNextSlide","currentIndex","gotoPrevSlide","isCurrentIndex","index","carousel","s","handleThumbClick","getImageSrc","image","documentBodyAsDataUri","Date","detail","timeStamp","documentBody","documentId","images","movePx","nativeElement","clientWidth","scrollLeft","ChangeDetectorRef","ViewChild","read","ElementRef","HostListener","HostBinding","StockAndDelivery","stock","deliveryDescription","TabType","ProductPageComponent","_renderer","settingsService","appEventService","icon","configurable","threeD","show2D","show3D","configuring","fullscreenAnimationEnd","_fullScreen","x","selections","forceRenderImage","_sku","fullScreen","_getArticle","_prepareFullscreen","NormalScreen","FullScreen","_currentView","TwoD","ThreeD","ngAfterViewInit","_initializedSub","configurator","fullscreenbutton","handleStartConfiguration","showFullScreen","configuratorRect","getBoundingClientRect","setStyle","left","top","selectionsRect","width","buttonRect","init","article","goodType","currentView","homeBrandId","selectorType","selectorTypeCustomer","stockInfo","stockAndDelivery","Renderer2","animations","trigger","state","style","height","transition","animate","right","opacity","display","ProductDocumentsComponent","showLabel","documents","ProductRelatedComponent","_iOne","isSmallModus","_articles","refType","handleContentClick","a","HeaderComponent","ProductInfoComponent","tabType","currentTab","Additional","switchTab","tab","ModuleService","_iOneConnectorService","_superArticles","getArticle","mainArticle","BitUtils","IsShortDescription","bit","IsFullDescription","IsMetaTitle","IsMetaDescription","IsMetaKeys","ProductAdditionalInfoComponent","_moduleService","textParts","_buildInfo","_getTextsSuperArticle","texts","superArticleNr","txt","publication","safeTxt","sanitize","SecurityContext","HTML","catch","_prepareArticleTexts","_b","additionalDescription","description","propertyMap","ProductPropertiesComponent","properties","_prepareProperties","LocalizePipe","transform","Array","isArray","Pipe","name","ProductDeliveryComponent","_localizePipe","iconData","Truck","providers","ProductStockComponent","Warehouse","numberInStock","ProductSymbolsComponent","symbolStrings","_symbols","_className","ProductPriceComponent","showFromPrice","_configurable","_pricing","_setPrices","valutaSign","_getSign","retailCurrency","fromPrice","retailBasePrice","priceBaseline","fromLabel","toPrice","retailSuggestedPrice","toLabel","ProductAddtocartComponent","_ioneControllerService","fullscreen","startConfiguration","EventEmitter","addToCartClick","addToQuoteClick","showQuoteButton","_quantity","Math","max","addToCartButton","handleAddToCartClick","quantity","_getJSONFromArticleObject","_c","handleAddToQuoteClick","returnObject","baseGoodId","selectorData","jsonString","jsonObject","JSON","parse","stringify","ProductSelectorTypeComponent","type","onIconClick","currentTypeChange","twoDIcon","threeDIcon","handleIconClick","currentType","IoneProductComponent","_dictionary","upAndLoaded","loaded","_handleSettingsLoaded","emit","info","_handleAnswerInfoReceived","ngOnChanges","changes","_initConnection","encapsulation","ViewEncapsulation","Emulated","ProductAdditionalDescriptionComponent","_prepareDescription","onReadMore","ProductInfoTabsComponent","activeTabHeight","tabs","updateTab","tabContent","scrollIntoView","behavior","articleObject","_setupTabs","tabIndex","activeTab","updateHeight","children","offsetHeight","title","symbols","IoneProductModule","NgModule","imports","CommonModule","ButtonModule","IconModule","NumberPickerModule","InputTextModule","FilesUploadModule","LoaderModule","ScrollContainerModule","TileModule","LevelIndicatorModule","PriceDisplayPipeModule","ArticleTileModule","schemas","CUSTOM_ELEMENTS_SCHEMA","declarations","entryComponents","exports","bootstrap"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\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);\r\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); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\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","import { Component, Input, OnInit } from '@angular/core';\nimport { ArticleFullObject } from '@colijnit//ioneconnector/build/model/article-full-object';\n\n@Component({\n selector: 'app-product-description',\n templateUrl: './product-description.component.html',\n styleUrls: ['./product-description.component.scss']\n})\nexport class ProductDescriptionComponent implements OnInit {\n\n @Input()\n public article: ArticleFullObject;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { Connector } from '@colijnit//ioneconnector';\r\nimport { Options } from '@colijnit//ioneconnector/build/model/options';\r\nimport { SuperArticleImage } from '@colijnit//ioneconnector/build/model/super-article-image';\r\nimport { TurnoverGroupImage } from '@colijnit//ioneconnector/build/model/turnover-group-image';\r\nimport { ArticleGroupImage } from '@colijnit//ioneconnector/build/model/article-group-image';\r\nimport { ArticleFullObject } from '@colijnit//ioneconnector/build/model/article-full-object';\r\nimport { SuperArticle } from '@colijnit/ioneconnector/build/model/super-article';\r\n\r\n// Sole responsibility is simply to wrap around a colijn.Connector to create a stable inner interface to the library in a 1:1 method way.\r\n// Only to be used by the IOneControllerService.\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class IOneConnectorAdapterService implements OnDestroy {\r\n\r\n public readonly showLoader: Subject<boolean> = new Subject<boolean>();\r\n\r\n public connector?: Connector;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.connector.showLoader.unsubscribe();\r\n }\r\n\r\n public initConnector(options: Options): void {\r\n this.connector = new Connector(options);\r\n options.session = this.connector.session;\r\n this.connector.showLoader.subscribe(value => this.showLoader.next(value));\r\n }\r\n\r\n public getDeliveryPrognosis(goodId: number): Promise<any> {\r\n return this.connector.getDeliveryPrognosisForArticle(goodId);\r\n }\r\n\r\n public getArticleGroupImages(): Promise<ArticleGroupImage[]> {\r\n return this.connector.getArticleGroupImages();\r\n }\r\n\r\n public getTurnoverGroupImages(): Promise<TurnoverGroupImage[]> {\r\n return this.connector.getTurnoverGroupImages();\r\n }\r\n\r\n public getSuperArticleImages(): Promise<SuperArticleImage[]> {\r\n return this.connector.getSuperArticleImages();\r\n }\r\n\r\n public getJsonConfiguredArticles(): Promise<void> {\r\n return this.connector.getJsonConfiguredArticles();\r\n }\r\n\r\n public getFullArticle(skuOrId: string): Promise<ArticleFullObject> {\r\n return this.connector.getFullArticle(skuOrId);\r\n }\r\n\r\n public getSuperArticle(id: string): Promise<SuperArticle> {\r\n return this.connector.getSuperArticle(id);\r\n }\r\n\r\n public getDocumentContent(docId: number, thumbnail: boolean = true): Promise<any> {\r\n return this.connector.getDocumentContent(docId, thumbnail);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class JsonUtilsService {\r\n\r\n public async readJsonFile(filePath: string): Promise<any> {\r\n try {\r\n const response = await fetch(filePath);\r\n if (!response.ok) {\r\n console.error('Error getting translation:', response.statusText);\r\n return '';\r\n } else {\r\n return response.json();\r\n }\r\n } catch (e) {\r\n console.error('Error getting translation:', e.message);\r\n return '';\r\n }\r\n }\r\n}\r\n","\r\n// Static utility functions holder related to strings.\r\nimport { ArticleFullObject } from '@colijnit/ioneconnector/build/model/article-full-object';\r\nimport { ArticleQuantity } from '../model/article-quantity.model';\r\n\r\nexport class StringUtils {\r\n\r\n /**\r\n * Returns a new string where given placeholder in given source string are replaced by given replacement texts.\r\n *\r\n * Example usage:\r\n *\r\n * source = \"ABCDABCD\"\r\n * placeholder = \"BC\"\r\n * replacementTexts = \"Z\", \"Z\" (REST arguments)\r\n * OUTPUT = \"AZDAZD\"\r\n *\r\n * @param {string} source\r\n * @param {string} placeholder\r\n * @param {string} replacementTexts If only one is given, this function replaces all placeholders with that single replacementText.\r\n * If more are given, placeholders without a corresponding replacementText will remain their original placeholder characters.\r\n */\r\n public static ReplaceOccurrencesIn(source: string, placeholder: string, ...replacementTexts: string[]): string {\r\n // parameter guards\r\n if (!(source)) {\r\n return undefined;\r\n }\r\n if (!placeholder || replacementTexts.length === 0) {\r\n return source;\r\n }\r\n let outString: string = source;\r\n // one replacementText means replace for all\r\n if (replacementTexts.length === 1) {\r\n // \"g\" is the g flag to replace globally\r\n outString = outString.replace(new RegExp(this._escapeRegExp(placeholder), \"g\"), replacementTexts[0]);\r\n } else {\r\n // replace occurence i by replacementTexts[i], one at a time in loop (there might be a faster way..)\r\n for (let i: number = 0, len: number = replacementTexts.length; i < len; i++) {\r\n outString = outString.replace(placeholder, replacementTexts[i]);\r\n }\r\n }\r\n return outString;\r\n }\r\n\r\n public static IsString(str: any): boolean {\r\n return typeof str === 'string';\r\n }\r\n\r\n // Returns whether given str is a string and has a length > 0.\r\n public static IsStringWithLength(str: string): boolean {\r\n return str && StringUtils.IsString(str) && str.length > 0;\r\n }\r\n\r\n // Returns given string, escaped for use as string literal in regular expressions.\r\n private static _escapeRegExp(str: string): string {\r\n return str;// .replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^$\\|]/g, \"\\\\$&\");\r\n }\r\n\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","export class Dictionary {\r\n\r\n public strings: {} = {\r\n \"nl\": {\r\n \"ADDITIONAL_DATA\": \"Extra informatie\",\r\n \"ALTERNATIVE_PRODUCTS\": \"Alternatieve producten\",\r\n \"ARTICLE_NUMBER\": \"Artikel nummer\",\r\n \"CATEGORY\": \"Categorie\",\r\n \"CATEGORY_TYPE\": \"Categorie type\",\r\n \"CONFIGURE\": \"Configureren\",\r\n \"DELIVERY_TIME_PERIOD\": \"Levertijd\",\r\n \"DESCRIPTION\": \"Omschrijving\",\r\n \"DOCUMENTS\": \"Documenten\",\r\n \"DOWNLOADS\": \"Downloads\",\r\n \"FEATURES\": \"Kenmerken\",\r\n \"HEIGHT\": \"Hoogte\",\r\n \"MATERIAL\": \"Materiaal\",\r\n \"PRODUCT_IN_STOCK\": \"Op voorraad\",\r\n \"PRODUCT_NOT_IN_STOCK\": \"Niet op voorraad\",\r\n \"PROPERTIES\": \"Eigenschappen\",\r\n \"QUOTATION\": \"Quotatie\",\r\n \"READ_MORE\": \"Lees meer\",\r\n \"RELATED_PRODUCTS\": \"Gerelateerde producten\",\r\n \"SHOPPING_CART_IN\": \"In winkelwagen\",\r\n \"SHOW_IN\": \"Laat zien\",\r\n \"STOCK\": \"Voorraad\",\r\n \"SYMBOLS\": \"Symbolen\",\r\n \"TITLE\": \"Titel\",\r\n \"TURNOVERGROUP\": \"Omzetgroep\",\r\n \"VARIANTS\": \"Varianten\",\r\n \"WIDTH\": \"Breedte\"\r\n },\r\n \"de\": {\r\n \"ADDITIONAL_DATA\": \"Extra informatie\",\r\n \"ALTERNATIVE_PRODUCTS\": \"Alternative Produkte\",\r\n \"ARTICLE_NUMBER\": \"Artikelnummer\",\r\n \"CATEGORY\": \"Kategorie\",\r\n \"CATEGORY_TYPE\": \"Kategorietype\",\r\n \"CONFIGURE\": \"Konfigurieren\",\r\n \"DELIVERY_TIME_PERIOD\": \"Lieferzeit\",\r\n \"DESCRIPTION\": \"Beschreibung\",\r\n \"DOCUMENTS\": \"Dateien\",\r\n \"DOWNLOADS\": \"Downloads\",\r\n \"FEATURES\": \"Eigenschaften\",\r\n \"HEIGHT\": \"Höhe\",\r\n \"MATERIAL\": \"Material\",\r\n \"PRODUCT_IN_STOCK\": \"Auf lager\",\r\n \"PRODUCT_NOT_IN_STOCK\": \"Nicht auf lager\",\r\n \"PROPERTIES\": \"Eigenschaften\",\r\n \"QUOTATION\": \"Angebot\",\r\n \"READ_MORE\": \"Lesen Sie mehr\",\r\n \"RELATED_PRODUCTS\": \"Verwandte Produkte\",\r\n \"SHOPPING_CART_IN\": \"Im Einkaufswagen\",\r\n \"SHOW_IN\": \"Zeigen\",\r\n \"STOCK\": \"Vorrat\",\r\n \"SYMBOLS\": \"Symbole\",\r\n \"TITLE\": \"Titulatur\",\r\n \"TURNOVERGROUP\": \"Umsatzgruppe\",\r\n \"VARIANTS\": \"Varianten\",\r\n \"WIDTH\": \"Breite\"\r\n }\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { LanguageCode } from '../enum/language-code.enum';\r\nimport { StringUtils } from '../utils/string-utils';\r\nimport { JsonUtilsService } from '../utils/json-utils.service';\r\nimport { Dictionary } from '../../assets/dictionary/text.properties';\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","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","/** AUTO GENERATED FILE. DO NOT CHANGE.. **/\n\nexport enum IconEnum {\n AddToCartDrop = \"add_to_cart_drop\",\n DeliveryTruck = \"delivery_truck\",\n Download = \"download\",\n FullScreen = \"full_screen\",\n Location = \"location\",\n Logo = \"logo\",\n MagicWand = \"magic_wand\",\n NormalScreen = \"normal_screen\",\n Quote = \"quote\",\n Refresh = \"refresh\",\n ThreeD = \"three_d\",\n Truck = \"truck\",\n TwoD = \"two_d\",\n Warehouse = \"warehouse\"\n}","import { SettingsOptions } from './settings-options';\r\nimport { RenderParameters } from './render-parameters';\r\n\r\nexport class Settings {\r\n\r\n public url: string;\r\n public schema: string;\r\n public version: string;\r\n public branch: string;\r\n public currency: number;\r\n public username: string;\r\n public password: string;\r\n public session: any = undefined;\r\n public useGroups: boolean = true;\r\n public useRenders: boolean = false;\r\n public useEncryption: boolean = true;\r\n public useMatch: boolean = false;\r\n public assetPath: string;\r\n public assetIndex: string;\r\n public client: string;\r\n public timeoutInMs: number;\r\n public languageCode: string;\r\n public options: SettingsOptions = new SettingsOptions();\r\n public renderParameters: RenderParameters = new RenderParameters();\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs/Rx';\r\nimport { JsonUtilsService } from '../utils/json-utils.service';\r\nimport { DictionaryService } from './dictionary.service';\r\nimport { Settings } from '../model/settings';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SettingsService {\r\n\r\n public set settings(value: Settings) {\r\n this._settings = value;\r\n }\r\n\r\n public get settings(): Settings {\r\n return this._settings;\r\n }\r\n\r\n public settingsLoaded: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n\r\n private _settings: Settings;\r\n\r\n constructor(\r\n private _jsonUtilsService: JsonUtilsService,\r\n private _dictionaryService: DictionaryService\r\n ) {\r\n // this._initializeSettings();\r\n }\r\n\r\n public async createSettingsFromObject(obj: any): Promise<void> {\r\n this.settings = new Settings();\r\n if (obj.hasOwnProperty('url')) {\r\n this.settings.url = obj['url'];\r\n this._dictionaryService.rootUrl = this.settings.url.replace('/ajaxservice', '');\r\n }\r\n if (obj.hasOwnProperty('schema')) {\r\n this.settings.schema = obj['schema'];\r\n }\r\n if (obj.hasOwnProperty('version')) {\r\n this.settings.version = obj['version'];\r\n }\r\n if (obj.hasOwnProperty('branch')) {\r\n this.settings.branch = obj['branch'];\r\n }\r\n if (obj.hasOwnProperty('currency')) {\r\n this.settings.currency = obj['currency'];\r\n }\r\n if (obj.hasOwnProperty('client')) {\r\n this.settings.client = obj['client'];\r\n }\r\n if (obj.hasOwnProperty('languageCode')) {\r\n this.settings.languageCode = obj['languageCode'];\r\n }\r\n if (obj.hasOwnProperty('username')) {\r\n this.settings.username = obj['username'];\r\n }\r\n if (obj.hasOwnProperty('password')) {\r\n this.settings.password = obj['password'];\r\n }\r\n if (obj.hasOwnProperty('timeoutInMs')) {\r\n this.settings.timeoutInMs = obj['timeoutInMs'];\r\n }\r\n if (obj.hasOwnProperty('session')) {\r\n this.settings.session = obj['session'];\r\n }\r\n if (obj.hasOwnProperty('useGroups')) {\r\n this.settings.useGroups = obj['useGroups'];\r\n }\r\n if (obj.hasOwnProperty('useEncryption')) {\r\n this.settings.useEncryption = obj['useEncryption'];\r\n }\r\n if (obj.hasOwnProperty('useMatch')) {\r\n this.settings.useMatch = obj['useMatch'];\r\n }\r\n if (obj.hasOwnProperty('assetPath')) {\r\n this.settings.assetPath = obj['assetPath'];\r\n if (this.settings.assetPath[this.settings.assetPath.length - 1] !== '/') {\r\n this.settings.assetPath += '/';\r\n }\r\n }\r\n if (obj.hasOwnProperty('assetIndex')) {\r\n this.settings.assetIndex = obj['assetIndex'];\r\n }\r\n if (obj.hasOwnProperty('options')) {\r\n this.settings.options = obj['options'];\r\n }\r\n if (obj.hasOwnProperty('renderParameters')) {\r\n this.settings.renderParameters = obj['renderParameters'];\r\n }\r\n await this._dictionaryService.setDictionary(this.settings.languageCode);\r\n this.settingsLoaded.next(true);\r\n }\r\n\r\n public async initializeSettings(settings: any): Promise<void> {\r\n if (settings) {\r\n await this.createSettingsFromObject(settings);\r\n }\r\n }\r\n\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { Subscription } from 'rxjs/Subscription';\r\nimport { Article } from '@colijnit//ioneconnector/build/model/article';\r\nimport { Options } from '@colijnit//ioneconnector/build/model/options';\r\nimport { SuperArticleImage } from '@colijnit//ioneconnector/build/model/super-article-image';\r\nimport { TurnoverGroupImage } from '@colijnit//ioneconnector/build/model/turnover-group-image';\r\nimport { ArticleGroupImage } from '@colijnit//ioneconnector/build/model/article-group-image';\r\n\r\nimport { IOneConnectorAdapterService } from './i-one-connector-adapter.service';\r\nimport { BehaviorSubject } from 'rxjs/BehaviorSubject';\r\nimport { ArticleFullObject } from '@colijnit//ioneconnector/build/model/article-full-object';\r\nimport { SuperArticle } from '@colijnit/ioneconnector/build/model/super-article';\r\nimport { SettingsService } from './settings.service';\r\nimport { Settings } from '../model/settings';\r\n\r\n// Holds all iONE backend related state and methods for a running HomeDecorator. To be used anywhere internally.\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class IOneControllerService implements OnDestroy {\r\n public get article(): Article {\r\n return this._article;\r\n }\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 _article: Article;\r\n\r\n private _shouldShowLoader: boolean;\r\n private _initializing = false;\r\n private _initialized = false;\r\n\r\n private readonly defaultDevTestOptions: Options = new Options();\r\n\r\n private readonly subs: Subscription[] = [];\r\n\r\n constructor(\r\n public connector: IOneConnectorAdapterService,\r\n private _settingsService: SettingsService\r\n ) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subs.forEach(sub => sub.unsubscribe());\r\n }\r\n\r\n public async initDefaultDevelopTestConnection(): Promise<void> {\r\n if (this._initialized || this._initializing) {\r\n return;\r\n }\r\n this._initializing = true;\r\n try {\r\n const settings: Settings = this._settingsService.settings;\r\n if (!settings) {\r\n throw Error('Settings are not defined!');\r\n }\r\n this.defaultDevTestOptions.url = settings.url;\r\n this.defaultDevTestOptions.ajaxUrl = settings.url;\r\n this.defaultDevTestOptions.schema = settings.schema;\r\n this.defaultDevTestOptions.version = settings.version;\r\n this.defaultDevTestOptions.branch = settings.branch;\r\n this.defaultDevTestOptions.username = settings.username;\r\n this.defaultDevTestOptions.password = settings.password;\r\n this.defaultDevTestOptions.currencyId = settings.currency;\r\n this.defaultDevTestOptions.useGroups = settings.useGroups;\r\n this.defaultDevTestOptions.useRenders = settings.useRenders;\r\n this.defaultDevTestOptions.useLoginEncryption = settings.useEncryption;\r\n\r\n this.connector.initConnector(this.defaultDevTestOptions);\r\n this._settingsService.settings.session = this.defaultDevTestOptions.session;\r\n this.controllerInitialized.next(true);\r\n this._initialized = true;\r\n this._initializing = false;\r\n } catch (e) {\r\n this._initializing = false;\r\n }\r\n }\r\n\r\n public getFullArticle(skuOrId: string): Promise<ArticleFullObject> {\r\n return this.connector.getFullArticle(skuOrId);\r\n }\r\n\r\n public getDocumentContent(docId: number, thumbnail: boolean = true): Promise<any> {\r\n return this.connector.getDocumentContent(docId, thumbnail);\r\n }\r\n\r\n public getDeliveryPrognosis(goodId: number): Promise<any> {\r\n return this.connector.getDeliveryPrognosis(goodId);\r\n }\r\n\r\n // will be called in future\r\n public getArticleGroupImages(): Promise<ArticleGroupImage[]> {\r\n return this.connector.getArticleGroupImages();\r\n }\r\n\r\n public getTurnoverGroupImages(): Promise<TurnoverGroupImage[]> {\r\n return this.connector.getTurnoverGroupImages();\r\n }\r\n\r\n // will be called in future\r\n public getSuperArticleImages(): Promise<SuperArticleImage[]> {\r\n return this.connector.getSuperArticleImages();\r\n }\r\n\r\n public getSuperArticle(id: string): Promise<SuperArticle> {\r\n return this.connector.getSuperArticle(id);\r\n }\r\n\r\n public getJsonConfiguredArticles(): Promise<any> {\r\n return this.connector.getJsonConfiguredArticles();\r\n }\r\n\r\n public onShowLoaderChange(showLoader: boolean): void {\r\n this._shouldShowLoader = showLoader;\r\n }\r\n}\r\n","import { Injectable, Output } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { ArticleListObject } from '@colijnit/ioneconnector/build/model/article-list-object';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AppEventService {\r\n\r\n @Output()\r\n public onAddToCart: Subject<string> = new Subject<string>();\r\n\r\n @Output()\r\n public onAlternativeClick: Subject<ArticleListObject> = new Subject<ArticleListObject>();\r\n\r\n @Output()\r\n public onAddToQuote: Subject<string> = new Subject<string>();\r\n\r\n @Output()\r\n public onForceRenderImage: Subject<void> = new Subject<void>();\r\n\r\n public onImageReceived: Subject<string> = new Subject<string>();\r\n\r\n public onRenderStarted: Subject<void> = new Subject<void>();\r\n\r\n public onRenderImageReceived: Subject<string> = new Subject<string>();\r\n\r\n public onArticleInfoReceived: Subject<string> = new Subject<string>();\r\n\r\n public onUpdateProductInfoTab: Subject<number> = new Subject<number>();\r\n\r\n}\r\n","/** AUTO GENERATED FILE. DO NOT CHANGE.. **/\n\nexport const IconSvg: {[iconName: string]: string} = {\n \"add_to_cart_drop\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M16.58,34.84a1.8,1.8,0,1,0,1.8,1.8A1.79,1.79,0,0,0,16.58,34.84Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M31.49,34.84a1.8,1.8,0,1,0,1.8,1.8A1.79,1.79,0,0,0,31.49,34.84Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M35.6,17.9l-1.51.18L31.88,20.3l1.31-.17a.88.88,0,0,1,1,1.08L32.35,29.5a1.52,1.52,0,0,1-1.44,1.2H16.51a1.75,1.75,0,0,1-1.57-1.17l-2.31-5.6a1,1,0,0,1,.85-1.29l4.43-.56-1.86-1.86-5.13.61a1,1,0,0,0-.87,1.28l3.34,9.44A1.73,1.73,0,0,0,15,32.72H32.64a1.51,1.51,0,0,0,1.43-1.2L36.6,19A.89.89,0,0,0,35.6,17.9Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M39,17a1.87,1.87,0,0,0-1.36,1.46l-.42,2.89c-.1.67.31,1,.9.7a2.75,2.75,0,0,0,1.33-1.7L40,18A.73.73,0,0,0,39,17Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"24 25.35 32.04 17.3 27.04 17.3 27.04 10 20.95 10 20.95 17.3 15.96 17.3 24 25.35\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"delivery_truck\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M25,45A20,20,0,1,1,45,25,20,20,0,0,1,25,45ZM25,6.29A18.71,18.71,0,1,0,43.71,25,18.73,18.73,0,0,0,25,6.29Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M21.86,24.09a7.14,7.14,0,0,1,.72-3.24,6.94,6.94,0,0,1,1.18-1.66H13v10.1h8.51a3.25,3.25,0,0,1,3.27-3.07A3.33,3.33,0,0,1,27,27V25.75H21.9Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M21.65,30.47h-.48a3.51,3.51,0,0,1,1.13,2.19h1.57a3.22,3.22,0,0,1-1.41-.83A3.13,3.13,0,0,1,21.65,30.47Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M34.63,21.89H28.87c-.3.25-.5.43-.63.56v8H28a3.19,3.19,0,0,1-.82,1.37,3.3,3.3,0,0,1-1.41.82H29a3.53,3.53,0,0,1,7,0h1V27.1Zm-.2,5.38H30.8a.47.47,0,0,1-.46-.46V23.36a.46.46,0,0,1,.46-.46h2.1a.45.45,0,0,1,.42.27l1.53,3.45A.46.46,0,0,1,34.43,27.27Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M16.42,30.47a3.51,3.51,0,0,0-1.13,2.19H14.6l-1.6-1V30.47Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M30,33.08a2.53,2.53,0,1,0,2.53-2.53A2.52,2.52,0,0,0,30,33.08Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M16.27,33.08a2.53,2.53,0,1,0,2.53-2.53A2.52,2.52,0,0,0,16.27,33.08Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M22.45,17.27h-3.2a4.29,4.29,0,0,1,1.61-3.49,6.45,6.45,0,0,1,4.31-1.38,6.79,6.79,0,0,1,2.92.57A4.72,4.72,0,0,1,30,14.62a4,4,0,0,1,.72,2.26,3.74,3.74,0,0,1-.23,1.27,5.31,5.31,0,0,1-.73,1.29,12,12,0,0,1-1.4,1.29A8.74,8.74,0,0,0,27.06,22a3.17,3.17,0,0,0-.46.94,7.56,7.56,0,0,0-.23,1.65h-3.3v-.49a6,6,0,0,1,.59-2.68,6.8,6.8,0,0,1,1.94-2.25,9.44,9.44,0,0,0,1.56-1.41,1.5,1.5,0,0,0,.27-.9,1.47,1.47,0,0,0-.65-1.19A2.9,2.9,0,0,0,25,15.14a2.77,2.77,0,0,0-1.84.6A1.91,1.91,0,0,0,22.45,17.27Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M24.78,27.42a2.06,2.06,0,0,1,1.51.61,2,2,0,0,1,.63,1.47A2,2,0,0,1,26.3,31a2.08,2.08,0,0,1-1.5.62A2,2,0,0,1,23.31,31a2.08,2.08,0,0,1,0-2.95A2,2,0,0,1,24.78,27.42Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"download\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\" version=\\\"1.1\\\" sodipodi:docname=\\\"download.svg\\\" inkscape:version=\\\"0.92.4 (5da689c313, 2019-01-14)\\\"><metadata ><rdf:RDF><cc:Work rdf:about=\\\"\\\"><dc:format>image/svg+xml</dc:format><dc:type rdf:resource=\\\"http://purl.org/dc/dcmitype/StillImage\\\" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs /><sodipodi:namedview pagecolor=\\\"#ffffff\\\" bordercolor=\\\"#666666\\\" borderopacity=\\\"1\\\" objecttolerance=\\\"10\\\" gridtolerance=\\\"10\\\" guidetolerance=\\\"10\\\" inkscape:pageopacity=\\\"0\\\" inkscape:pageshadow=\\\"2\\\" inkscape:window-width=\\\"1920\\\" inkscape:window-height=\\\"1017\\\" showgr inkscape:zoom=\\\"6.675088\\\" inkscape:cx=\\\"-14.056273\\\" inkscape:cy=\\\"29.806579\\\" inkscape:window-x=\\\"-8\\\" inkscape:window-y=\\\"-8\\\" inkscape:window-maximized=\\\"1\\\" inkscape:current-layer=\\\"svg8\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"m 498.966,339.946 c -7.197,0 -13.034,5.837 -13.034,13.034 v 49.804 c 0,28.747 -23.388,52.135 -52.135,52.135 H 78.203 c -28.747,0 -52.135,-23.388 -52.135,-52.135 V 352.98 c 0,-7.197 -5.835,-13.034 -13.034,-13.034 C 5.835,339.946 0,345.782 0,352.98 v 49.804 c 0,43.121 35.082,78.203 78.203,78.203 h 355.594 c 43.121,0 78.203,-35.082 78.203,-78.203 V 352.98 c 0,-7.198 -5.835,-13.034 -13.034,-13.034 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"M 419.833,391.3 H 92.167 c -7.197,0 -13.034,5.837 -13.034,13.034 0,7.197 5.835,13.034 13.034,13.034 h 327.665 c 7.199,0 13.034,-5.835 13.034,-13.034 0,-7.197 -5.835,-13.034 -13.033,-13.034 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"m 387.919,207.93 c -4.795,-5.367 -13.034,-5.834 -18.404,-1.038 L 269.033,296.657 V 44.048 c 0,-7.197 -5.835,-13.034 -13.034,-13.034 -7.197,0 -13.034,5.835 -13.034,13.034 V 296.657 L 142.483,206.893 c -5.367,-4.796 -13.607,-4.328 -18.404,1.038 -4.794,5.369 -4.331,13.609 1.037,18.404 l 109.174,97.527 c 6.187,5.529 13.946,8.292 21.708,8.292 7.759,0 15.519,-2.763 21.708,-8.289 l 109.174,-97.53 c 5.37,-4.798 5.834,-13.038 1.039,-18.405 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></svg>\",\n \"full_screen\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M38,38.17H12v-26H38ZM13.24,36.93H36.76V13.4H13.24Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"17.35 32.81 17.35 26.75 19.46 28.86 28.69 19.63 26.59 17.52 32.65 17.52 32.65 23.58 30.54 21.47 21.31 30.71 23.41 32.81 17.35 32.81\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"location\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M25,12.67A8.33,8.33,0,0,0,16.67,21c0,4.6,8.33,16.67,8.33,16.67S33.33,25.6,33.33,21A8.33,8.33,0,0,0,25,12.67Zm0,10.41A2.08,2.08,0,1,1,27.08,21,2.08,2.08,0,0,1,25,23.08Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"logo\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"10\\\" y=\\\"21.19\\\" width=\\\"2.04\\\" height=\\\"6.32\\\" fill=\\\"#484f60\\\"/><path d=\\\"M18.66,29.24a3.84,3.84,0,0,1-2.85-1.19,4.19,4.19,0,0,1,0-5.77,4,4,0,0,1,5.71,0,4.19,4.19,0,0,1,0,5.77A3.85,3.85,0,0,1,18.66,29.24Zm0-6.16a1.79,1.79,0,0,0-1.38.58,2.12,2.12,0,0,0-.57,1.51,2,2,0,0,0,.57,1.49,1.94,1.94,0,0,0,2.76,0,2.08,2.08,0,0,0,.56-1.5,2.15,2.15,0,0,0-.56-1.51A1.76,1.76,0,0,0,18.67,23.08Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"31.05 29.18 27.33 25.02 27.33 29.14 25.29 29.14 25.29 21.15 26.57 21.15 30.29 25.33 30.29 21.19 32.33 21.19 32.33 29.18 31.05 29.18\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"35.34 29.14 35.34 21.19 39.9 21.19 39.9 23.17 37.38 23.17 37.38 23.9 39.66 23.9 39.66 25.87 37.38 25.87 37.38 27.14 40 27.14 40 29.14 35.34 29.14\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"magic_wand\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><title>magic_wand</title><g style=\\\"isolation:isolate\\\"><path d=\\\"M20.45,10.71a.28.28,0,0,1,.49-.19l1.4,1.25a.93.93,0,0,0,.83.23L25,11.62a.29.29,0,0,1,.34.41l-.76,1.71a.93.93,0,0,0,0,.86l.93,1.62c.12.26,0,.45-.29.45l-1.86-.2a1,1,0,0,0-.81.32l-1.26,1.38a.28.28,0,0,1-.5-.14l-.39-1.83a1,1,0,0,0-.55-.67l-1.71-.77a.28.28,0,0,1,0-.52l1.62-.94a1,1,0,0,0,.48-.73Z\\\" fill=\\\"#484f60\\\"/><g style=\\\"mix-blend-mode:lighten\\\"><path d=\\\"M23.3,16.21a1,1,0,0,0-.8.31l-1,1.13a.29.29,0,0,1-.51-.14L20.66,16a1,1,0,0,0-.55-.68l-1.39-.62a.28.28,0,0,1,0-.52L20,13.45a1,1,0,0,0,.48-.73l.16-1.5a.29.29,0,0,1,.49-.2l1.13,1a.93.93,0,0,0,.83.23L24.58,12a.29.29,0,0,1,.34.41l-.62,1.38a.91.91,0,0,0,.05.86l.75,1.32a.29.29,0,0,1-.29.44Z\\\" fill=\\\"#484f60\\\"/></g><path d=\\\"M33.57,36.76a.53.53,0,0,1,0,.72l-2.37,2.18a.48.48,0,0,1-.7,0L18,25.34a.51.51,0,0,1,0-.71l2.36-2.19a.49.49,0,0,1,.7,0Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M18.6,19.94a.51.51,0,0,1,0,.71L16.2,22.84a.48.48,0,0,1-.7,0l-2.76-3.13a.51.51,0,0,1,0-.71l2.37-2.19a.48.48,0,0,1,.7,0Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M30.67,10.55a.29.29,0,0,1,.47.24v1.12a1,1,0,0,0,.4.77l.9.66a.29.29,0,0,1-.08.52l-1.07.35a1,1,0,0,0-.61.61l-.35,1.06a.28.28,0,0,1-.51.09l-.67-.91a1,1,0,0,0-.77-.4H27.27a.29.29,0,0,1-.25-.47l.66-.9a.93.93,0,0,0,.14-.85l-.35-1.07a.29.29,0,0,1,.38-.38l1.07.35a1,1,0,0,0,.85-.13Z\\\" fill=\\\"#484f60\\\"/><g style=\\\"mix-blend-mode:lighten\\\"><path d=\\\"M29.25,14.88a1,1,0,0,0-.77-.4h-.86a.29.29,0,0,1-.24-.47l.5-.69a.93.93,0,0,0,.14-.85l-.26-.82c-.07-.27.1-.44.37-.37l.82.26a1,1,0,0,0,.85-.13l.69-.51a.29.29,0,0,1,.47.25V12a.94.94,0,0,0,.39.76l.7.51a.29.29,0,0,1-.09.52l-.81.26a1,1,0,0,0-.62.61l-.26.82a.29.29,0,0,1-.52.08Z\\\" fill=\\\"#484f60\\\"/></g><path d=\\\"M37,15.81a.29.29,0,0,1,.32.43l-.13.26a.91.91,0,0,0,0,.85l.15.26A.29.29,0,0,1,37,18l-.29,0a.93.93,0,0,0-.81.27l-.2.21a.28.28,0,0,1-.5-.16l0-.29a1,1,0,0,0-.52-.69l-.27-.13a.28.28,0,0,1,0-.52l.26-.13a.93.93,0,0,0,.5-.71l0-.29a.29.29,0,0,1,.5-.17l.21.21a.92.92,0,0,0,.82.26Z\\\" fill=\\\"#484f60\\\"/><g style=\\\"mix-blend-mode:lighten\\\"><path d=\\\"M35.25,18a1,1,0,0,0-.52-.7l-.12-.05a.28.28,0,0,1,0-.52l.12-.06a1,1,0,0,0,.51-.7V15.8a.29.29,0,0,1,.5-.18l.09.1a.92.92,0,0,0,.82.26l.13,0a.29.29,0,0,1,.32.42L37,16.5a.91.91,0,0,0,0,.85l.07.12a.29.29,0,0,1-.31.43l-.13,0a1,1,0,0,0-.82.28l-.09.1a.28.28,0,0,1-.5-.16Z\\\" fill=\\\"#484f60\\\"/></g></g></svg>\",\n \"normal_screen\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M38,38.17H12v-26H38ZM13.24,36.93H36.76V13.4H13.24Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"22.18 29.83 24.29 31.93 24.29 25.87 18.23 25.87 20.34 27.98 16.43 31.89 18.28 33.73 22.18 29.83\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"33.57 18.44 31.73 16.6 27.82 20.51 25.71 18.4 25.71 24.46 31.77 24.46 29.66 22.35 33.57 18.44\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"quote\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M14.5,31.51V12a.5.5,0,0,1,.5-.5H35a.5.5,0,0,1,.5.5V38a.5.5,0,0,1-.5.5H21.27V40H35a2,2,0,0,0,2-2V12a2,2,0,0,0-2-2H15a2,2,0,0,0-2,2V31.51Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M21.27,40V33.56c0-1.78-.27-2.05-2.05-2.05H13Z\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17.5\\\" y=\\\"18.5\\\" width=\\\"6\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"25.5\\\" y=\\\"21.5\\\" width=\\\"7\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"25.5\\\" y=\\\"18.5\\\" width=\\\"7\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"26.5\\\" y=\\\"25.5\\\" width=\\\"6\\\" height=\\\"4\\\" transform=\\\"translate(59 55) rotate(-180)\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17.5\\\" y=\\\"28.5\\\" width=\\\"7\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17.5\\\" y=\\\"25.5\\\" width=\\\"7\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17.5\\\" y=\\\"14.5\\\" width=\\\"6\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"26.5\\\" y=\\\"34.5\\\" width=\\\"6\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"refresh\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\" version=\\\"1.1\\\" sodipodi:docname=\\\"refresh.svg\\\" inkscape:version=\\\"0.92.4 (5da689c313, 2019-01-14)\\\"><metadata ><rdf:RDF><cc:Work rdf:about=\\\"\\\"><dc:format>image/svg+xml</dc:format><dc:type rdf:resource=\\\"http://purl.org/dc/dcmitype/StillImage\\\" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs /><sodipodi:namedview pagecolor=\\\"#ffffff\\\" bordercolor=\\\"#666666\\\" borderopacity=\\\"1\\\" objecttolerance=\\\"10\\\" gridtolerance=\\\"10\\\" guidetolerance=\\\"10\\\" inkscape:pageopacity=\\\"0\\\" inkscape:pageshadow=\\\"2\\\" inkscape:window-width=\\\"1920\\\" inkscape:window-height=\\\"1017\\\" showgr inkscape:zoom=\\\"9.44\\\" inkscape:cx=\\\"13.990693\\\" inkscape:cy=\\\"13.961336\\\" inkscape:window-x=\\\"-8\\\" inkscape:window-y=\\\"-8\\\" inkscape:window-maximized=\\\"1\\\" inkscape:current-layer=\\\"svg6\\\" /><g transform=\\\"matrix(0.05356365,0,0,0.05356365,11.44076,11.82465)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"M 414.32892,173.53368 397.86852,58.29997 c -1.3534,-9.447409 -12.96516,-13.373353 -19.75699,-6.581524 l -23.97472,23.97472 C 323.3074,57.095569 288.30682,47.308258 252.3168,47.308258 c -108.23157,0 -195.126154,84.711612 -197.8314,192.852392 -0.147446,5.91103 4.149441,10.98085 9.992183,11.82206 l 46.516107,6.64982 c 6.93462,1.01194 13.38577,-4.43269 13.28954,-11.68548 -0.9646,-71.37163 56.68057,-129.79595 128.03357,-129.79595 17.27835,0 34.3526,3.51232 50.13165,10.23043 l -23.11022,23.11022 c -6.74915,6.74915 -2.91866,18.3966 6.58152,19.75699 l 115.23371,16.4604 c 7.59269,1.14465 14.26423,-5.4586 13.17546,-13.17546 z\\\" style=\\\"fill:#484f60;fill-opacity:1;stroke-width:0.77603161\\\" /></g></g><path inkscape:connector-curvature=\\\"0\\\" d=\\\"m 35.105827,24.725982 -2.489742,-0.355606 c -0.321647,-0.04073 -0.711797,0.234897 -0.711797,0.671018 0,3.781814 -3.076753,6.858567 -6.858567,6.858567 -0.920628,0 -1.830946,-0.186303 -2.673013,-0.542533 l 1.198298,-1.198297 c 0.361507,-0.361507 0.156331,-0.985389 -0.352533,-1.058254 l -6.172336,-0.882302 c -0.405403,-0.05792 -0.764422,0.289765 -0.705726,0.705725 l 0.881637,6.172381 c 0.07258,0.506577 0.694003,0.71545 1.058254,0.352527 l 1.315225,-1.314599 c 1.643397,0.987012 3.516951,1.506391 5.450194,1.506391 5.769264,0 10.423029,-4.514936 10.595325,-10.27871 0.0091,-0.317237 -0.221012,-0.591248 -0.535219,-0.636308 z\\\" style=\\\"fill:#484f60;fill-opacity:1;stroke-width:0.04156709\\\" /></svg>\",\n \"three_d\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M16.08,30.77a4.85,4.85,0,0,1-3-.8,4,4,0,0,0-2.49-.15,6.21,6.21,0,0,0,2.53,1.09,12.84,12.84,0,0,0,2.93-.14\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M14.27,19.68A4.71,4.71,0,0,0,11,20.78l2,.14c.31,0,1.2-.69,1.55-.81a3.88,3.88,0,0,1,1.65-.24l-1.94-.19\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M21.64,28.79a4.13,4.13,0,0,0-3.1-4c.89-.7,1.77-1.09,2.26-2.21a5.12,5.12,0,0,0,.35-1.9c-.13-3.24-2.64-3.73-5.29-4.15a4,4,0,0,1,3.44,3.7,4.61,4.61,0,0,1-.83,3.12,9.7,9.7,0,0,1-1.82,1.43,4.3,4.3,0,0,1,3.17,4.34,4.9,4.9,0,0,1-4.21,5c2.09-.34,4.37-.64,5.46-2.69a5,5,0,0,0,.57-2.58\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M28.44,18.88l.38-.07.48-.06.57,0h.75l.36,0,.35.05c-.2,0-.42-.08-1.57-.25l-.36-.05-.37,0h-.77l-.59,0-.49.07a3.08,3.08,0,0,0-.39.07l-.3.07V31.38H27l.13,0h1.63l.21,0h.2l.2,0h.05l1.55-.24h0l-.34.05-.33,0H29.12l-.36,0-.33,0a1.15,1.15,0,0,1-.28-.06V19Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M40,24.34a9,9,0,0,0-3-7.1,11.06,11.06,0,0,0-4.47-1.86c4.38,1.13,6.23,5.31,6.13,9.54-.12,4.5-2.27,8.55-6.86,9.66,2.59-.63,5-1.41,6.52-3.78A12,12,0,0,0,40,24.34\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M35.38,16.71A7.32,7.32,0,0,1,36.74,18a7.82,7.82,0,0,1,1,1.73,10.32,10.32,0,0,1,.68,2.16,13.86,13.86,0,0,1,.23,2.59,15,15,0,0,1-.25,2.78,11.39,11.39,0,0,1-.68,2.31,9.34,9.34,0,0,1-1,1.85,8.23,8.23,0,0,1-1.28,1.4,7.76,7.76,0,0,1-1.7,1.07,9.07,9.07,0,0,1-2,.69,13.36,13.36,0,0,1-2.26.33,18.25,18.25,0,0,1-2.45,0c-.5,0-1-.08-1.39-.12l-1.17-.14c-.36,0-.68-.11-1-.16l-.77-.15V15.86c.34-.09.71-.18,1.09-.26s.81-.15,1.24-.21.88-.12,1.34-.17.95-.1,1.44-.13a20.57,20.57,0,0,1,2.33,0,12,12,0,0,1,2,.24,8.24,8.24,0,0,1,1.72.55A7.1,7.1,0,0,1,35.38,16.71ZM27.92,31.53a6.53,6.53,0,0,0,2.46-.32A4.81,4.81,0,0,0,32.32,30a5.82,5.82,0,0,0,1.27-2.18A10.11,10.11,0,0,0,34,24.67a8.65,8.65,0,0,0-.42-2.85,4.94,4.94,0,0,0-1.18-2,4.45,4.45,0,0,0-1.83-1.11,6.55,6.55,0,0,0-2.35-.28l-.59,0-.49.07a3.08,3.08,0,0,0-.39.07l-.3.07V31.38a2.11,2.11,0,0,0,.29.06l.34,0,.37,0,.36,0h.07\\\" fill=\\\"#484f60\\\"/><path d=\\\"M14.57,16.47a5.49,5.49,0,0,1,2,.22,3.89,3.89,0,0,1,1.49.84A3.66,3.66,0,0,1,19,18.89a4.29,4.29,0,0,1,.33,1.7,5.29,5.29,0,0,1-.17,1.34,4.29,4.29,0,0,1-.5,1.16,4.17,4.17,0,0,1-.84.94,4.88,4.88,0,0,1-1.16.69v.05a3.7,3.7,0,0,1,1.22.5,4,4,0,0,1,1,.92,4.61,4.61,0,0,1,.69,1.3,5.24,5.24,0,0,1,.25,1.62,5.36,5.36,0,0,1-.42,2.15,4.44,4.44,0,0,1-1.2,1.64,4.84,4.84,0,0,1-1.86,1,6.78,6.78,0,0,1-2.39.23,7.69,7.69,0,0,1-2.36-.52,6.89,6.89,0,0,1-.9-.42,4.36,4.36,0,0,1-.69-.47l.62-2.9a4.12,4.12,0,0,0,.53.34,6.21,6.21,0,0,0,.73.36,5.69,5.69,0,0,0,.88.31,5.19,5.19,0,0,0,1,.15,3.11,3.11,0,0,0,1.1-.13,2,2,0,0,0,.8-.45,1.93,1.93,0,0,0,.49-.71,2.35,2.35,0,0,0,.17-.89A2.48,2.48,0,0,0,16,27.67a2.23,2.23,0,0,0-.63-.79,2.9,2.9,0,0,0-.89-.46,3.5,3.5,0,0,0-1-.15H12.2V23.44l1.23,0a3.44,3.44,0,0,0,.83-.11,2.83,2.83,0,0,0,.79-.36,2,2,0,0,0,.6-.62,2,2,0,0,0,.23-.94,1.8,1.8,0,0,0-.13-.71,1.36,1.36,0,0,0-.38-.56,1.58,1.58,0,0,0-.64-.35,2.79,2.79,0,0,0-.9-.1,4.07,4.07,0,0,0-.84.13c-.27.08-.53.18-.78.28a6.56,6.56,0,0,0-1.17.7L10.42,18a5,5,0,0,1,.72-.51,7.82,7.82,0,0,1,2.12-.82A8,8,0,0,1,14.57,16.47Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"truck\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\" version=\\\"1.1\\\" sodipodi:docname=\\\"truck.svg\\\" inkscape:version=\\\"0.92.4 (5da689c313, 2019-01-14)\\\"><metadata ><rdf:RDF><cc:Work rdf:about=\\\"\\\"><dc:format>image/svg+xml</dc:format><dc:type rdf:resource=\\\"http://purl.org/dc/dcmitype/StillImage\\\" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs /><sodipodi:namedview pagecolor=\\\"#ffffff\\\" bordercolor=\\\"#666666\\\" borderopacity=\\\"1\\\" objecttolerance=\\\"10\\\" gridtolerance=\\\"10\\\" guidetolerance=\\\"10\\\" inkscape:pageopacity=\\\"0\\\" inkscape:pageshadow=\\\"2\\\" inkscape:window-width=\\\"1920\\\" inkscape:window-height=\\\"1017\\\" showgr inkscape:zoom=\\\"9.44\\\" inkscape:cx=\\\"31.555563\\\" inkscape:cy=\\\"21.585628\\\" inkscape:window-x=\\\"-8\\\" inkscape:window-y=\\\"-8\\\" inkscape:window-maximized=\\\"1\\\" inkscape:current-layer=\\\"svg8\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"m 119.467,337.067 c -28.237,0 -51.2,22.963 -51.2,51.2 0,28.237 22.963,51.2 51.2,51.2 28.237,0 51.2,-22.963 51.2,-51.2 0,-28.237 -22.964,-51.2 -51.2,-51.2 z m 0,85.333 c -18.825,0 -34.133,-15.309 -34.133,-34.133 0,-18.825 15.309,-34.133 34.133,-34.133 18.824,0 34.133,15.309 34.133,34.133 0,18.824 -15.309,34.133 -34.133,34.133 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"m 409.6,337.067 c -28.237,0 -51.2,22.963 -51.2,51.2 0,28.237 22.963,51.2 51.2,51.2 28.237,0 51.2,-22.963 51.2,-51.2 0,-28.237 -22.963,-51.2 -51.2,-51.2 z m 0,85.333 c -18.825,0 -34.133,-15.309 -34.133,-34.133 0,-18.825 15.309,-34.133 34.133,-34.133 18.825,0 34.133,15.309 34.133,34.133 0,18.824 -15.308,34.133 -34.133,34.133 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"m 510.643,289.784 -76.8,-119.467 c -1.57,-2.441 -4.275,-3.917 -7.177,-3.917 H 332.8 c -4.719,0 -8.533,3.823 -8.533,8.533 v 213.333 c 0,4.719 3.814,8.533 8.533,8.533 h 34.133 v -17.067 h -25.6 V 183.467 h 80.674 l 72.926,113.442 v 82.825 H 452.266 V 396.8 h 51.2 c 4.719,0 8.533,-3.814 8.533,-8.533 V 294.4 c 10e-4,-1.63 -0.468,-3.243 -1.356,-4.616 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"M 375.467,277.333 V 217.6 h 68.267 v -17.067 h -76.8 c -4.719,0 -8.533,3.823 -8.533,8.533 v 76.8 c 0,4.719 3.814,8.533 8.533,8.533 h 128 V 277.332 H 375.467 Z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"M 332.8,106.667 H 8.533 C 3.823,106.667 0,110.49 0,115.2 v 273.067 c 0,4.719 3.823,8.533 8.533,8.533 H 76.8 V 379.733 H 17.067 v -256 h 307.2 v 256 H 162.133 V 396.8 H 332.8 c 4.719,0 8.533,-3.814 8.533,-8.533 V 115.2 c 0,-4.71 -3.814,-8.533 -8.533,-8.533 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><rect x=\\\"8.533\\\" y=\\\"345.60001\\\" width=\\\"51.200001\\\" height=\\\"17.066999\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><rect x=\\\"179.2\\\" y=\\\"345.60001\\\" width=\\\"145.067\\\" height=\\\"17.066999\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><rect x=\\\"469.33301\\\" y=\\\"345.60001\\\" width=\\\"34.132999\\\" height=\\\"17.066999\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><rect x=\\\"34.132999\\\" y=\\\"140.8\\\" width=\\\"298.66699\\\" height=\\\"17.066999\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><rect x=\\\"110.933\\\" y=\\\"379.733\\\" width=\\\"17.066999\\\" height=\\\"17.066999\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><rect x=\\\"401.06699\\\" y=\\\"379.733\\\" width=\\\"17.066999\\\" height=\\\"17.066999\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></svg>\",\n \"two_d\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M22.41,33.89H11V31c.87-.76,1.75-1.56,2.62-2.41S15.2,27,15.73,26.39A11.84,11.84,0,0,0,17.4,24a4.45,4.45,0,0,0,.5-2,2.52,2.52,0,0,0-.64-1.85,2.47,2.47,0,0,0-1.84-.65,4.57,4.57,0,0,0-1.89.45,8.17,8.17,0,0,0-1.84,1.14h-.31V17.2a10.26,10.26,0,0,1,2-.73,10.46,10.46,0,0,1,2.71-.36,5.79,5.79,0,0,1,4.16,1.37,5.15,5.15,0,0,1,1.44,3.9,7.37,7.37,0,0,1-.69,3.14A12.94,12.94,0,0,1,19,27.59c-.6.66-1.19,1.26-1.79,1.81s-1,.93-1.28,1.15h6.53Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M38.14,20.79a7.49,7.49,0,0,0-2.37-3,6.52,6.52,0,0,0-2.17-1,11.93,11.93,0,0,0-3.06-.35H25.26V33.89h5.13a13.25,13.25,0,0,0,3-.3,6.61,6.61,0,0,0,2.33-1.08,7.71,7.71,0,0,0,2.34-3A9.9,9.9,0,0,0,39,25.19,10.47,10.47,0,0,0,38.14,20.79Zm-3.49,7.27a4,4,0,0,1-1.51,1.88,3.77,3.77,0,0,1-1.22.54,10.07,10.07,0,0,1-2,.14H29V19.7H30a9.8,9.8,0,0,1,1.81.13,3.75,3.75,0,0,1,1.18.46,4.07,4.07,0,0,1,1.65,1.92,7.4,7.4,0,0,1,.52,2.94A7.92,7.92,0,0,1,34.65,28.06Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"warehouse\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\" version=\\\"1.1\\\" sodipodi:docname=\\\"warehouse.svg\\\" inkscape:version=\\\"0.92.4 (5da689c313, 2019-01-14)\\\"><metadata ><rdf:RDF><cc:Work rdf:about=\\\"\\\"><dc:format>image/svg+xml</dc:format><dc:type rdf:resource=\\\"http://purl.org/dc/dcmitype/StillImage\\\" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs /><sodipodi:namedview pagecolor=\\\"#ffffff\\\" bordercolor=\\\"#666666\\\" borderopacity=\\\"1\\\" objecttolerance=\\\"10\\\" gridtolerance=\\\"10\\\" guidetolerance=\\\"10\\\" inkscape:pageopacity=\\\"0\\\" inkscape:pageshadow=\\\"2\\\" inkscape:window-width=\\\"1920\\\" inkscape:window-height=\\\"1017\\\" showgr inkscape:zoom=\\\"6.675088\\\" inkscape:cx=\\\"9.6569985\\\" inkscape:cy=\\\"12.384637\\\" inkscape:window-x=\\\"-8\\\" inkscape:window-y=\\\"-8\\\" inkscape:window-maximized=\\\"1\\\" inkscape:current-layer=\\\"svg8\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"M 507.785,146.242 260.318,1.175 c -2.603,-1.519 -5.803,-1.57 -8.439,-0.111 L 4.412,137.598 C 1.69,139.091 0,141.958 0,145.064 v 358.4 c 0,4.719 3.823,8.533 8.533,8.533 H 51.2 c 4.71,0 8.533,-3.814 8.533,-8.533 V 204.798 h 392.533 v 298.667 c 0,4.719 3.814,8.533 8.533,8.533 h 42.667 c 4.719,0 8.533,-3.814 8.533,-8.533 V 153.598 c 10e-4,-3.03 -1.603,-5.829 -4.214,-7.356 z m -12.852,348.689 h -25.6 V 196.264 c 0,-4.71 -3.814,-8.533 -8.533,-8.533 H 51.2 c -4.71,0 -8.533,3.823 -8.533,8.533 v 298.667 h -25.6 V 150.099 L 255.872,18.344 494.933,158.487 Z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"m 426.667,392.531 h -102.4 c -4.719,0 -8.533,3.814 -8.533,8.533 v 102.4 c 0,4.719 3.814,8.533 8.533,8.533 h 102.4 c 4.719,0 8.533,-3.814 8.533,-8.533 v -102.4 c 0,-4.719 -3.814,-8.533 -8.533,-8.533 z m -8.534,102.4 H 332.8 v -85.333 h 85.333 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"m 384,401.064 v 25.6 h -17.067 v -25.6 h -17.067 v 34.133 c 0,4.719 3.814,8.533 8.533,8.533 h 34.133 c 4.719,0 8.533,-3.814 8.533,-8.533 v -34.133 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"m 324.267,392.531 h -102.4 c -4.71,0 -8.533,3.814 -8.533,8.533 v 102.4 c 0,4.719 3.823,8.533 8.533,8.533 h 102.4 c 4.719,0 8.533,-3.814 8.533,-8.533 v -102.4 c 0,-4.719 -3.814,-8.533 -8.533,-8.533 z m -8.534,102.4 H 230.4 v -85.333 h 85.333 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"m 281.6,401.064 v 25.6 h -17.067 v -25.6 h -17.067 v 34.133 c 0,4.719 3.823,8.533 8.533,8.533 h 34.133 c 4.719,0 8.533,-3.814 8.533,-8.533 v -34.133 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"m 426.667,290.131 h -102.4 c -4.719,0 -8.533,3.814 -8.533,8.533 v 102.4 c 0,4.719 3.814,8.533 8.533,8.533 h 102.4 c 4.719,0 8.533,-3.814 8.533,-8.533 v -102.4 c 0,-4.719 -3.814,-8.533 -8.533,-8.533 z m -8.534,102.4 H 332.8 v -85.333 h 85.333 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"m 384,298.664 v 25.6 h -17.067 v -25.6 h -17.067 v 34.133 c 0,4.719 3.814,8.533 8.533,8.533 h 34.133 c 4.719,0 8.533,-3.814 8.533,-8.533 v -34.133 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><rect x=\\\"51.200001\\\" y=\\\"255.998\\\" width=\\\"409.60001\\\" height=\\\"17.066999\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><rect x=\\\"51.200001\\\" y=\\\"221.864\\\" width=\\\"409.60001\\\" height=\\\"17.066999\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"m 298.667,119.464 h -85.333 c -4.71,0 -8.533,3.823 -8.533,8.533 v 34.133 c 0,4.71 3.823,8.533 8.533,8.533 h 85.333 c 4.719,0 8.533,-3.823 8.533,-8.533 v -34.133 c 0,-4.71 -3.814,-8.533 -8.533,-8.533 z m -8.534,34.134 h -68.267 v -17.067 h 68.267 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></svg>\"\n};","export enum SelectorType {\r\n TwoD = '2D',\r\n ThreeD = '3D',\r\n Omni = 'Omni'\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\nimport { IconSvg } from '../model/icon';\r\nimport { IconEnum } from '../enum/icon.enum';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class IconCacheService {\r\n /**\r\n * All the icons as a large JSON object, from the all-icons.json file.\r\n * The object has property keys that are the icon names, and property values with the data string of the actual svg icon.\r\n */\r\n public get iconCache(): { [iconName: string]: SafeHtml } {\r\n return this._iconCache;\r\n }\r\n\r\n private _iconCache: { [iconName: string]: SafeHtml } = {};\r\n\r\n private _allIcons: any;\r\n\r\n constructor(private _sanitizer: DomSanitizer) {\r\n this._allIcons = IconSvg;\r\n this.setIconCache();\r\n }\r\n\r\n public getIcon(iconName: IconEnum): SafeHtml {\r\n return this._iconCache[iconName.toLowerCase()];\r\n }\r\n\r\n public setIconCache(): void {\r\n for (const key in this._allIcons) {\r\n if (this._allIcons.hasOwnProperty(key)) {\r\n this._iconCache[key.toLowerCase()] = this._sanitizer.bypassSecurityTrustHtml(this._allIcons[key]);\r\n }\r\n }\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component, ElementRef, HostBinding, HostListener, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { CoDocument } from '@colijnit//ioneconnector/build/model/co-document';\nimport { IOneControllerService } from '../../service/i-one-controller.service';\nimport { AppEventService } from '../../service/app-event.service';\nimport { Subscription } from 'rxjs';\nimport { IconEnum } from '../../enum/icon.enum';\nimport { IconCacheService } from '../../service/icon-cache.service';\n\n@Component({\n selector: 'app-image-carousel',\n templateUrl: './image-carousel.component.html',\n styleUrls: ['./image-carousel.component.scss']\n})\nexport class ImageCarouselComponent implements OnInit, OnDestroy {\n\n public readonly icons: typeof IconEnum = IconEnum;\n\n public showLoader: boolean = false;\n\n @ViewChild('carousel', { read: ElementRef })\n public carousel: ElementRef;\n\n @Input()\n public showRefresh: boolean = false;\n\n @Input()\n public set images(value: CoDocument[]) {\n if (value && value.length > 0) {\n this._images = value;\n this._loadImages();\n this._changeDetector.detectChanges();\n }\n }\n\n @HostListener('window:resize')\n public handleWindowResize(): void {\n this.resizing = true;\n this._scrollCarouselToIndex();\n clearTimeout(this._resizeTimer);\n this._resizeTimer = setTimeout(() => {\n this.resizing = false;\n }, 200);\n }\n\n @HostListener('swipeleft')\n public gotoNextSlide(): void {\n this.currentIndex++;\n }\n\n @HostListener('swiperight')\n public gotoPrevSlide(): void {\n this.currentIndex--;\n }\n\n public isCurrentIndex(index: number): boolean {\n return this.currentIndex === index;\n }\n\n public get currentIndex(): number {\n return this._currentIndex;\n }\n\n public set currentIndex(value: number) {\n this._currentIndex = value;\n this._scrollCarouselToIndex();\n }\n\n @HostBinding('class.resizing')\n public resizing = false;\n\n public get images(): CoDocument[] {\n return this._images;\n }\n\n private _resizeTimer: any;\n\n private _currentIndex = 0;\n\n private _images = [];\n private _subs: Subscription[] = [];\n\n constructor(\n private _ione: IOneControllerService,\n private _appEventService: AppEventService,\n private _changeDetector: ChangeDetectorRef,\n public iconCache: IconCacheService,\n ) {\n this._subs.push(\n this._appEventService.onRenderStarted.subscribe(() => {\n this.showLoader = true;\n }),\n this._appEventService.onRenderImageReceived.subscribe((url: string) => {\n if (this._images[0] instanceof CoDocument) {\n this._images.unshift(url);\n } else {\n this._images[0] = url;\n }\n this.showLoader = false;\n }),\n );\n\n }\n\n ngOnInit() {\n }\n\n ngOnDestroy(): void {\n this.carousel = undefined;\n this._subs.forEach(s => s.unsubscribe());\n }\n\n public handleThumbClick(index: number): void {\n this.currentIndex = index;\n }\n\n public onForceRenderImage(): void {\n this._appEventService.onForceRenderImage.next();\n }\n\n public getImageSrc(image: CoDocument | CustomEvent): string {\n if (image instanceof CoDocument) {\n if (image.filePath) {\n return image.filePath;\n } else {\n return image.documentBodyAsDataUri;\n }\n } else {\n const date = new Date();\n return image.detail + '?v=' + image.timeStamp;\n }\n }\n\n private _loadImages(): void {\n if (this._images) {\n this._images.forEach((i: CoDocument) => {\n if (!i.documentBody && !i.filePath) {\n this._ione.getDocumentContent(i.documentId, false).then((body: string) => {\n i.documentBody = body;\n });\n }\n });\n }\n }\n\n private _scrollCarouselToIndex(): void {\n if (this.currentIndex > -1 && this.currentIndex <= this.images.length) {\n const movePx: number = this.currentIndex * this.carousel.nativeElement.clientWidth;\n if (this.carousel && this.carousel.nativeElement) {\n this.carousel.nativeElement.scrollLeft = movePx;\n // this.carousel.nativeElement.scrollTo({\n // left: movePx,\n // behavior: 'smooth'\n // });\n }\n }\n }\n\n}\n","export class StockAndDelivery {\r\n\r\n public stock: number = 0;\r\n public deliveryDescription: string;\r\n\r\n constructor(stock?: any, deliveryDescription?: string) {\r\n this.stock = stock;\r\n this.deliveryDescription = deliveryDescription;\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ArticleFullObject } from '@colijnit//ioneconnector/build/model/article-full-object';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\n\nexport enum TabType {\n Additional = 'additional',\n Properties = 'properties'\n}\n\n@Component({\n selector: 'app-product-info',\n templateUrl: './product-info.component.html',\n styleUrls: ['./product-info.component.scss'],\n animations: [\n trigger('showContent', [\n state('void', style({'opacity': '0'})),\n state('*', style({'opacity': '1'})),\n transition('void => *', animate('200ms 100ms ease-in-out')),\n ])\n ]\n})\nexport class ProductInfoComponent implements OnInit {\n\n public readonly tabType: typeof TabType = TabType;\n\n @Input()\n public article: ArticleFullObject;\n\n public currentTab: TabType = TabType.Additional;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n public switchTab(tab: TabType): void {\n this.currentTab = tab;\n }\n\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n Renderer2,\n ViewChild\n} from '@angular/core';\nimport { IOneControllerService } from '../../service/i-one-controller.service';\nimport { ArticleFullObject } from '@colijnit//ioneconnector/build/model/article-full-object';\nimport { Subscription } from 'rxjs/Subscription';\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 { SettingsService } from '../../service/settings.service';\nimport { AppEventService } from '../../service/app-event.service';\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({'top': '0', 'left': '0', 'width': '100%', 'height': '100%'})),\n state('halfscreen', style({'top': '*', 'left': '*', 'width': '*', 'height': '*'})),\n transition('halfscreen <=> fullscreen', animate('200ms ease-in-out')),\n ]),\n trigger('toggleTopLeft', [\n state('fullscreen', style({'top': '0', 'left': '0'})),\n state('halfscreen', style({'top': '*', 'left': '*'})),\n transition('halfscreen <=> fullscreen', animate('200ms ease-in-out')),\n ]),\n trigger('toggleFullScreenRight', [\n state('fullscreen', style({'width': '400px', 'top': '0', 'right': '0'})),\n state('halfscreen', style({'width': '*', 'top': '*', 'right': '*'})),\n transition('halfscreen <=> fullscreen', animate('200ms ease-in-out')),\n ]),\n trigger('toggleVisibilityByState', [\n state('hide', style({'opacity': '0', 'display': 'none'})),\n state('show', style({'display': 'block', 'opacity': '1'})),\n transition('hide <=> show', animate('200ms 100ms ease-in-out')),\n ]),\n trigger('toggleVisibility', [\n state('void', style({'opacity': '0'})),\n state('*', style({'opacity': '1'})),\n transition('void => *', animate('200ms ease-in-out')),\n ])\n ]\n})\nexport class ProductPageComponent implements OnInit, OnDestroy, AfterViewInit {\n\n public readonly icon: typeof IconEnum = IconEnum;\n\n @ViewChild('configurator', { read: ElementRef })\n public configurator: ElementRef;\n\n @ViewChild('selections', { read: ElementRef })\n public selections: ElementRef;\n\n @ViewChild('fullscreenbutton', { read: ElementRef })\n public fullscreenbutton: ElementRef;\n\n @Input()\n public set sku(value: string) {\n if (value) {\n if (this.configuring) {\n this.show3D = false;\n this.fullScreen = false;\n this.configuring = false;\n this._changeDetector.detectChanges();\n }\n this._sku = value;\n this._getArticle();\n }\n }\n\n public get sku(): string {\n return this._sku;\n }\n\n public set fullScreen(value: boolean) {\n this._fullScreen = value;\n this.fullscreenAnimationEnd = true;\n this._prepareFullscreen();\n this._changeDetector.detectChanges();\n // setTimeout(() => {\n // this.fullscreenAnimationEnd = true;\n // }, 400)\n }\n\n public get fullScreen(): boolean {\n return this._fullScreen;\n }\n\n public get fullScreenIcon(): IconEnum {\n return this.fullScreen ? this.icon.NormalScreen : this.icon.FullScreen;\n }\n\n public set currentView(value: SelectorType) {\n this._currentView = value;\n this.show2D = this._currentView === SelectorType.TwoD;\n this.show3D = this._currentView === SelectorType.ThreeD;\n this._changeDetector.detectChanges();\n }\n\n public get currentView(): SelectorType {\n return this._currentView;\n }\n\n public article: ArticleFullObject;\n public stockAndDelivery: StockAndDelivery;\n public configurable = false;\n public threeD = false;\n public selectorType: SelectorType;\n public show2D = true;\n public show3D = false;\n public configuring: boolean = false;\n public fullscreenAnimationEnd: boolean = false;\n private _sku: string;\n private _initializedSub: Subscription;\n private _fullScreen: boolean = false;\n private _currentView: SelectorType;\n private _subs: Subscription[] = [];\n\n constructor(private _ione: IOneControllerService,\n private _renderer: Renderer2,\n private _changeDetector: ChangeDetectorRef,\n public iconCache: IconCacheService,\n public settingsService: SettingsService,\n public appEventService: AppEventService\n ) {\n this._subs.push(\n this.appEventService.onForceRenderImage.subscribe((x) => {\n if (this.selections.nativeElement){\n this.selections.nativeElement.forceRenderImage();\n }\n })\n );\n\n }\n\n ngOnInit() {\n }\n\n ngAfterViewInit(): void {\n }\n\n ngOnDestroy(): void {\n this._subs.forEach(s => s.unsubscribe());\n if (this._initializedSub) {\n this._initializedSub.unsubscribe();\n }\n this.configurator = undefined;\n this.selections = undefined;\n this.fullscreenbutton = undefined;\n }\n\n public 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 _prepareFullscreen(): void {\n if (this.fullScreen) {\n if (this.configurator && this.configurator.nativeElement) {\n const configuratorRect: DOMRect = this.configurator.nativeElement.getBoundingClientRect();\n this._renderer.setStyle(this.configurator.nativeElement, 'left', configuratorRect.left);\n this._renderer.setStyle(this.configurator.nativeElement, 'top', configuratorRect.top);\n this._renderer.setStyle(this.configurator.nativeElement, 'position', 'fixed');\n }\n if (this.selections && this.selections.nativeElement) {\n const selectionsRect: DOMRect = this.selections.nativeElement.getBoundingClientRect();\n this._renderer.setStyle(this.selections.nativeElement, 'left', selectionsRect.left);\n this._renderer.setStyle(this.selections.nativeElement, 'top', selectionsRect.top);\n this._renderer.setStyle(this.selections.nativeElement, 'width', selectionsRect.width + 'px');\n this._renderer.setStyle(this.selections.nativeElement, 'position', 'fixed');\n }\n if (this.fullscreenbutton && this.fullscreenbutton.nativeElement) {\n const buttonRect: DOMRect = this.fullscreenbutton.nativeElement.getBoundingClientRect();\n this._renderer.setStyle(this.fullscreenbutton.nativeElement, 'left', buttonRect.left);\n this._renderer.setStyle(this.fullscreenbutton.nativeElement, 'top', buttonRect.top);\n this._renderer.setStyle(this.fullscreenbutton.nativeElement, 'position', 'fixed');\n }\n } else {\n if (this.configurator && this.configurator.nativeElement) {\n this._renderer.setStyle(this.configurator.nativeElement, 'left', '*');\n this._renderer.setStyle(this.configurator.nativeElement, 'top', '*');\n this._renderer.setStyle(this.configurator.nativeElement, 'position', 'relative');\n }\n if (this.selections && this.selections.nativeElement) {\n this._renderer.setStyle(this.selections.nativeElement, 'left', '*');\n this._renderer.setStyle(this.selections.nativeElement, 'top', '*');\n this._renderer.setStyle(this.selections.nativeElement, 'position', 'relative');\n }\n if (this.fullscreenbutton && this.fullscreenbutton.nativeElement) {\n this._renderer.setStyle(this.fullscreenbutton.nativeElement, 'position', 'absolute');\n }\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 this.configurable = this.article.goodType === 'B';\n if (this.configurable) {\n this.currentView = SelectorType.TwoD;\n }\n this.threeD = this.article.homeBrandId !== undefined && this.article.homeBrandId !== null;\n this.selectorType = this.article.selectorTypeCustomer;\n this._ione.getDeliveryPrognosis(this.article.goodId).then((stockInfo) => {\n const stockAndDelivery = stockInfo;\n this.stockAndDelivery = new StockAndDelivery(stockAndDelivery.stock, stockAndDelivery.deliveryDescription);\n this._changeDetector.detectChanges();\n });\n this._changeDetector.detectChanges();\n });\n }\n });\n }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { CoDocument } from '@colijnit//ioneconnector/build/model/co-document';\nimport { IconEnum } from '../../enum/icon.enum';\nimport { IOneControllerService } from '../../service/i-one-controller.service';\nimport { IconCacheService } from '../../service/icon-cache.service';\n\n@Component({\n selector: 'app-product-documents',\n templateUrl: './product-documents.component.html',\n styleUrls: ['./product-documents.component.css']\n})\nexport class ProductDocumentsComponent {\n\n public readonly icon: typeof IconEnum = IconEnum;\n\n @Input()\n public showLabel: boolean = false;\n\n @Input()\n public documents: CoDocument[] = [];\n\n constructor(public iconCache: IconCacheService) { }\n\n}\n","import { Component, Input } from '@angular/core';\nimport { ArticleListObject } from '@colijnit//ioneconnector/build/model/article-list-object';\nimport { IOneControllerService } from '../../service/i-one-controller.service';\nimport { AppEventService } from '../../service/app-event.service';\n\n@Component({\n selector: 'app-product-related',\n templateUrl: './product-related.component.html',\n styleUrls: ['./product-related.component.scss']\n})\nexport class ProductRelatedComponent {\n\n @Input()\n public refType: number;\n\n @Input()\n public label: string;\n\n @Input()\n public isSmallModus: boolean = true;\n\n @Input()\n public set articles(value: ArticleListObject[]) {\n if (value) {\n if (this.refType && this.refType !== undefined) {\n if (value.length > 0) {\n value.forEach((x: ArticleListObject) => {\n if (x.refType === this.refType) {\n this._articles.push(x);\n }\n });\n }\n } else {\n this._articles = value;\n }\n this._loadImages();\n }\n }\n\n public get articles(): ArticleListObject[] {\n return this._articles;\n }\n\n private _articles: ArticleListObject[] = [];\n\n constructor(\n private _iOne: IOneControllerService,\n private _appEventService: AppEventService\n ) { }\n\n public handleContentClick(article: ArticleListObject): void {\n this._appEventService.onAlternativeClick.next(article);\n }\n\n private _loadImages(): void {\n this._articles.forEach((a: ArticleListObject) => {\n if (!a.image.documentBody) {\n this._iOne.getDocumentContent(a.image.documentId).then(d => a.image.documentBody = d);\n }\n });\n }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss']\n})\nexport class HeaderComponent implements OnInit {\n\n @Input()\n public label: string;\n\n @Input()\n public amount: number;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Injectable } from '@angular/core';\r\nimport { IOneControllerService } from './i-one-controller.service';\r\nimport { ArticleFullObject } from '@colijnit/ioneconnector/build/model/article-full-object';\r\nimport { SuperArticle } from '@colijnit/ioneconnector/build/model/super-article';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ModuleService {\r\n\r\n private _superArticles: Map<string, SuperArticle> = new Map();\r\n\r\n constructor(\r\n private _iOneConnectorService: IOneControllerService\r\n ) {}\r\n\r\n public async getArticle(id: string): Promise<SuperArticle> {\r\n return await this._getArticle(id);\r\n }\r\n\r\n private async _getArticle(id: string): Promise<SuperArticle> {\r\n if (this._superArticles.has(id)) {\r\n return this._superArticles.get(id);\r\n } else {\r\n const mainArticle = await this._iOneConnectorService.getSuperArticle(id);\r\n this._superArticles.set(id, mainArticle);\r\n return mainArticle;\r\n }\r\n }\r\n}\r\n","export class BitUtils {\r\n\r\n public static IsShortDescription(bit: number): boolean {\r\n return (1 & bit) > 0;\r\n }\r\n\r\n public static IsFullDescription(bit: number): boolean {\r\n return (2 & bit) > 0;\r\n }\r\n\r\n public static IsMetaTitle(bit: number): boolean {\r\n return (4 & bit) > 0;\r\n }\r\n\r\n public static IsMetaDescription(bit: number): boolean {\r\n return (8 & bit) > 0;\r\n }\r\n\r\n public static IsMetaKeys(bit: number): boolean {\r\n return (16 & bit) > 0;\r\n }\r\n\r\n}\r\n","import { ChangeDetectorRef, Component, Input, OnInit, SecurityContext } from '@angular/core';\nimport { CoText } from '@colijnit//ioneconnector/build/model/co-text';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { ArticleFullObject } from '@colijnit/ioneconnector/build/model/article-full-object';\nimport { ModuleService } from '../../service/module.service';\nimport { SuperArticle } from '@colijnit/ioneconnector/build/model/super-article';\nimport { BitUtils } from '../../utils/bit-utils';\n\n@Component({\n selector: 'app-product-additional-info',\n templateUrl: './product-additional-info.component.html',\n styleUrls: ['./product-additional-info.component.scss']\n})\nexport class ProductAdditionalInfoComponent implements OnInit {\n\n @Input()\n public set article(value: ArticleFullObject) {\n if (value) {\n this._article = value;\n this._buildInfo().then(() => {\n this._changeDetector.detectChanges();\n });\n }\n }\n\n public get article(): ArticleFullObject {\n return this._article;\n }\n\n @Input()\n public showLabel: boolean = false;\n\n public textParts: SafeHtml[] = [];\n public info: string;\n\n private _article: ArticleFullObject;\n\n constructor(\n private _sanitizer: DomSanitizer,\n private _moduleService: ModuleService,\n private _changeDetector: ChangeDetectorRef\n ) {\n }\n\n ngOnInit() {\n }\n\n private _getTextsSuperArticle(): Promise<SafeHtml[]> {\n return new Promise((resolve: Function, reject: Function) => {\n const texts: SafeHtml[] = [];\n if (this.article.superArticleNr) {\n this._moduleService.getArticle(this.article.superArticleNr).then((mainArticle: SuperArticle) => {\n mainArticle.texts.forEach((txt: CoText) => {\n if (BitUtils.IsFullDescription(txt.publication)) {\n const safeTxt: SafeHtml = this._sanitizer.sanitize(SecurityContext.HTML, txt.text);\n texts.push(safeTxt);\n }\n });\n resolve(texts);\n }).catch(() => {\n resolve([]);\n });\n } else {\n resolve(texts);\n }\n });\n }\n\n private async _prepareArticleTexts(): Promise<void> {\n const texts: SafeHtml[] = await this._getTextsSuperArticle();\n if (texts.length > 0) {\n this.textParts.push(...texts);\n }\n if (this.article.texts) {\n this.article.texts.forEach((txt: CoText) => {\n if (BitUtils.IsFullDescription(txt.publication)) {\n const safeTxt: SafeHtml = this._sanitizer.sanitize(SecurityContext.HTML, txt.text);\n this.textParts.push(safeTxt);\n }\n });\n }\n }\n\n private async _buildInfo(): Promise<void> {\n this.textParts.length = 0;\n await this._prepareArticleTexts();\n if (this.textParts.length === 0) {\n if (this.article.additionalDescription) {\n this.textParts.push(this.article.additionalDescription);\n } else if (this.article.description) {\n this.textParts.push(this.article.description);\n }\n }\n return;\n }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ArticleFullObject } from '@colijnit//ioneconnector/build/model/article-full-object';\n\nexport const propertyMap: Map<string, string> = new Map([\n ['articleNr', 'ARTICLE_NUMBER'],\n ['catExtra', 'CATEGORY'],\n ['catType', 'CATEGORY_TYPE'],\n ['description', 'DESCRIPTION'],\n ['material', 'MATERIAL'],\n ['title', 'TITLE'],\n ['turnOverGroup', 'TURNOVERGROUP'],\n ['height', 'HEIGHT'],\n ['width', 'WIDTH']\n]);\n\n@Component({\n selector: 'app-product-properties',\n templateUrl: './product-properties.component.html',\n styleUrls: ['./product-properties.component.scss']\n})\nexport class ProductPropertiesComponent implements OnInit {\n\n @Input()\n public set article(value: ArticleFullObject) {\n this._article = value;\n this._prepareProperties();\n }\n\n public get article(): ArticleFullObject {\n return this._article;\n }\n\n @Input()\n public showLabel: boolean = false;\n\n public properties: {key: string, value: string}[] = [];\n\n private _article: ArticleFullObject;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n private _prepareProperties(): void {\n this.properties.length = 0;\n if (!this._article) {\n return;\n }\n propertyMap.forEach((value: string, key: string) => {\n if (this.article.hasOwnProperty(key)) {\n this.properties.push({key: value, value: this.article[key]});\n }\n });\n }\n\n}\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport { DictionaryService } from '../service/dictionary.service';\r\n\r\n@Pipe({\r\n name: 'localize'\r\n})\r\n// A pipe for localizing string values in view templates.\r\nexport class LocalizePipe implements PipeTransform {\r\n\r\n constructor(private _dictionaryService: DictionaryService) {}\r\n\r\n transform(value: string, upperCaseFirst: boolean = true, replace: string|string[] = []): string {\r\n if (!value) {\r\n return '';\r\n }\r\n replace = replace ? replace : [];\r\n if (!Array.isArray(replace)) {\r\n replace = [replace];\r\n }\r\n return this._dictionaryService.get(value, upperCaseFirst, ...replace);\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\nimport { IOneControllerService } from '../../service/i-one-controller.service';\nimport { IconCacheService } from '../../service/icon-cache.service';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { IconEnum } from '../../enum/icon.enum';\nimport { StockAndDelivery } from '../../model/stock-and-delivery';\nimport { LocalizePipe } from '../../pipe/localize.pipe';\n\n@Component({\n selector: 'app-product-delivery',\n templateUrl: './product-delivery.component.html',\n styleUrls: ['./product-delivery.component.scss'],\n providers: [ LocalizePipe ]\n})\nexport class ProductDeliveryComponent implements OnInit {\n\n public readonly icon: typeof IconEnum = IconEnum;\n\n @Input()\n public set stockAndDelivery(value: StockAndDelivery) {\n if (value) {\n this.deliveryDescription = value.deliveryDescription;\n if (this.deliveryDescription.length > 0 && this.deliveryDescription[0] === ' ') {\n this.deliveryDescription = this._localizePipe.transform('ASK_FOR_INFORMATION');\n }\n }\n }\n\n public deliveryDescription: string;\n public iconData: SafeHtml;\n\n constructor(\n private _localizePipe: LocalizePipe,\n private _iOne: IOneControllerService,\n private _iconCache: IconCacheService\n ) {\n this.iconData = this._iconCache.getIcon(this.icon.Truck);\n }\n\n ngOnInit() {\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { IOneControllerService } from '../../service/i-one-controller.service';\nimport { IconCacheService } from '../../service/icon-cache.service';\nimport { IconEnum } from '../../enum/icon.enum';\nimport { StockAndDelivery } from '../../model/stock-and-delivery';\n\n@Component({\n selector: 'app-product-stock',\n templateUrl: './product-stock.component.html',\n styleUrls: ['./product-stock.component.scss']\n})\nexport class ProductStockComponent implements OnInit {\n\n public readonly icon: typeof IconEnum = IconEnum;\n\n @Input()\n public set stockAndDelivery(value: StockAndDelivery) {\n if (value) {\n this.numberInStock = value.stock;\n }\n }\n\n public numberInStock: number;\n public iconData: SafeHtml;\n\n constructor(private _iOne: IOneControllerService, private _iconCache: IconCacheService) {\n this.iconData = this._iconCache.getIcon(this.icon.Warehouse);\n }\n\n ngOnInit() {\n }\n\n}\n","import { Component, HostBinding, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-product-symbols',\n templateUrl: './product-symbols.component.html',\n styleUrls: ['./product-symbols.component.scss']\n})\nexport class ProductSymbolsComponent implements OnInit {\n\n @Input()\n public set symbols(value: any) {\n this._symbols = value;\n if (this._symbols && this._symbols.hasOwnProperty('fontCode')) {\n this._className = this._symbols['fontCode'] === 'VLOER' ? 'floor' : (this._className === 'WAS' ? 'ginetex' : '');\n }\n if (this._symbols && this._symbols.hasOwnProperty('symbolString')) {\n for (let i = 0; i < this._symbols['symbolString'].length; i++) {\n this.symbolStrings.push(this._symbols['symbolString'][i]);\n }\n }\n }\n\n public get symbols(): any {\n return this._symbols;\n }\n\n @HostBinding('class')\n public _className: string;\n\n public symbolStrings: string[] = [];\n\n private _symbols: any;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { ChangeDetectorRef, Component, Input, OnInit } from '@angular/core';\nimport { ArticlePricing } from '@colijnit//ioneconnector/build/model/article-pricing';\n\n@Component({\n selector: 'app-product-price',\n templateUrl: './product-price.component.html',\n styleUrls: ['./product-price.component.scss']\n})\nexport class ProductPriceComponent implements OnInit {\n\n @Input()\n public set pricing(value: any) {\n this._pricing = value;\n this._setPrices();\n }\n\n public get pricing(): any {\n return this._pricing;\n }\n\n @Input()\n public set configurable(value: boolean) {\n this._configurable = value;\n this._setPrices();\n }\n\n public fromPrice: number;\n public toPrice: number;\n public valutaSign: string;\n public fromLabel: string;\n public toLabel: string;\n public showFromPrice: boolean = false;\n\n private _pricing: ArticlePricing;\n private _configurable: boolean = false;\n\n constructor(private _changeDetector: ChangeDetectorRef) { }\n\n ngOnInit() {\n }\n\n private _setPrices(): void {\n if (this._pricing) {\n this.valutaSign = this._getSign(this._pricing.retailCurrency);\n if (this._configurable) {\n this.fromPrice = this._pricing.retailBasePrice ? this._pricing.retailBasePrice : this._pricing.priceBaseline;\n this.fromLabel = this._pricing.retailBasePrice ? 'PRICE' : 'FROM';\n this.toPrice = undefined;\n } else {\n this.fromPrice = this._pricing.retailSuggestedPrice ? this._pricing.retailSuggestedPrice : this._pricing.retailBasePrice;\n this.fromLabel = this._pricing.retailSuggestedPrice ? 'Was' : 'PRICE';\n this.toPrice = this._pricing.retailSuggestedPrice ? this._pricing.retailBasePrice : undefined;\n this.toLabel = this._pricing.retailSuggestedPrice ? 'IS_NOW' : '';\n }\n this._changeDetector.detectChanges();\n }\n }\n\n private _getSign(currency: string): string {\n switch (currency) {\n case 'EUR':\n return 'â¬';\n default:\n return 'â¬';\n }\n }\n\n}\n","import { Component, ElementRef, EventEmitter, HostBinding, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\nimport { IconCacheService } from '../../service/icon-cache.service';\nimport { IconEnum } from '../../enum/icon.enum';\nimport { ArticleQuantity } from '../../model/article-quantity.model';\nimport { IOneControllerService } from '../../service/i-one-controller.service';\nimport { AppEventService } from '../../service/app-event.service';\nimport { ArticleFullObject } from '@colijnit/ioneconnector/build/model/article-full-object';\n\n@Component({\n selector: 'app-product-addtocart',\n templateUrl: './product-addtocart.component.html',\n styleUrls: ['./product-addtocart.component.scss']\n})\nexport class ProductAddtocartComponent implements OnInit, OnDestroy {\n\n public readonly icon: typeof IconEnum = IconEnum;\n\n @ViewChild('addtocartbutton', { read: ElementRef })\n public addToCartButton: ElementRef;\n\n @Input()\n public article: ArticleFullObject;\n\n @Input()\n public configurable: boolean = false;\n\n @Input()\n public configuring: boolean = false;\n\n @HostBinding('class.full-screen')\n @Input()\n public fullscreen: boolean = false;\n\n @Input()\n public set quantity(value: number) {\n this._quantity = Math.max(1, value);\n }\n\n public get quantity(): number {\n return this._quantity;\n }\n\n @Output()\n public startConfiguration: EventEmitter<void> = new EventEmitter<void>();\n\n @Output()\n public addToCartClick: EventEmitter<number> = new EventEmitter<number>();\n\n @Output()\n public addToQuoteClick: EventEmitter<number> = new EventEmitter<number>();\n\n public showQuoteButton: boolean = false;\n\n private _quantity = 1;\n\n constructor(\n public iconCache: IconCacheService,\n private _ioneControllerService: IOneControllerService,\n private _appEventService: AppEventService\n ) { }\n\n ngOnInit() {\n }\n\n ngOnDestroy(): void {\n this.addToCartButton = undefined;\n }\n\n public async handleAddToCartClick(quantity: number): Promise<void> {\n this._appEventService.onAddToCart.next(await this._getJSONFromArticleObject({article: this.article, quantity: quantity}));\n }\n\n public async handleAddToQuoteClick(quantity: number): Promise<void> {\n this._appEventService.onAddToQuote.next(await this._getJSONFromArticleObject({article: this.article, quantity: quantity}));\n }\n\n private async _getJSONFromArticleObject(article: ArticleQuantity): Promise<string> {\n const returnObject: {goodId: number, baseGoodId: number, selectorData: {}, quantity: number} =\n {goodId: 0, baseGoodId: 0, selectorData: {}, quantity: 0};\n returnObject.baseGoodId = article.article.goodId;\n returnObject.selectorData = {};\n returnObject.quantity = article.quantity;\n if (article.article.goodType === 'B') {\n const jsonString = await this._ioneControllerService.getJsonConfiguredArticles();\n const jsonObject = JSON.parse(jsonString);\n returnObject.goodId = jsonObject.hasOwnProperty('compositionGoodId') ? jsonObject['compositionGoodId'] : 0;\n returnObject.selectorData = jsonObject;\n } else { // treat as simple article\n returnObject.goodId = article.article.goodId;\n }\n return JSON.stringify(returnObject);\n }\n\n}\n","import { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { IconCacheService } from '../../service/icon-cache.service';\nimport { IconEnum } from '../../enum/icon.enum';\nimport { SelectorType } from '../../enum/selector-type.enum';\n\n@Component({\n selector: 'app-product-selector-type',\n templateUrl: './product-selector-type.component.html',\n styleUrls: ['./product-selector-type.component.scss']\n})\nexport class ProductSelectorTypeComponent implements OnInit {\n\n public readonly type: typeof SelectorType = SelectorType;\n public readonly icons: typeof IconEnum = IconEnum;\n\n @Input()\n public show2D: boolean;\n\n @Input()\n public show3D: boolean;\n\n @Input()\n public currentType: SelectorType;\n\n @Output()\n public onIconClick: EventEmitter<SelectorType> = new EventEmitter();\n\n @Output()\n public currentTypeChange: EventEmitter<SelectorType> = new EventEmitter();\n\n public twoDIcon: SafeHtml | null;\n public threeDIcon: SafeHtml | null;\n\n constructor(\n private _iconCache: IconCacheService,\n private _changeDetector: ChangeDetectorRef\n ) {\n this.twoDIcon = this._iconCache.getIcon(this.icons.TwoD);\n this.threeDIcon = this._iconCache.getIcon(this.icons.ThreeD);\n }\n\n ngOnInit() {\n }\n\n public handleIconClick(type: SelectorType): void {\n this.currentType = type;\n this.currentTypeChange.next(this.currentType);\n this.onIconClick.next(this.currentType);\n this._changeDetector.detectChanges();\n }\n\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n ViewEncapsulation\n} from '@angular/core';\nimport { JsonUtilsService } from './utils/json-utils.service';\nimport { IOneControllerService } from './service/i-one-controller.service';\nimport { DictionaryService } from './service/dictionary.service';\nimport { Subscription } from 'rxjs';\nimport { AppEventService } from './service/app-event.service';\nimport { ArticleListObject } from '@colijnit/ioneconnector/build/model/article-list-object';\nimport { SettingsService } from './service/settings.service';\n\n@Component({\n selector: 'app-ione-product',\n templateUrl: './ione-product.component.html',\n styleUrls: ['./ione-product.component.css'],\n encapsulation: ViewEncapsulation.Emulated\n})\nexport class IoneProductComponent implements OnInit, OnChanges, OnDestroy, AfterViewInit {\n\n @Input()\n public sku: string;\n\n @Input()\n public set settings(value: any) {\n if (value) {\n let settings: any;\n if (typeof value === 'string') {\n settings = JSON.parse(value);\n } else {\n settings = value;\n }\n this._settingsService.initializeSettings(settings);\n // this._initConnection(settings);\n }\n }\n\n public get settings(): any {\n return this._settings;\n }\n\n @Output()\n public onAddToCart: EventEmitter<string> = new EventEmitter<string>();\n\n @Output()\n public forceRenderImage: EventEmitter<void> = new EventEmitter<void>();\n\n @Output()\n public onAlternativeClick: EventEmitter<ArticleListObject> = new EventEmitter<ArticleListObject>();\n\n @Output()\n public onArticleInfoReceived: EventEmitter<string> = new EventEmitter<string>();\n\n @Output()\n public onAddToQuote: EventEmitter<string> = new EventEmitter<string>();\n\n public upAndLoaded = false;\n private _settings: any;\n private _subs: Subscription[] = [];\n\n constructor (\n private _dictionary: DictionaryService,\n private _jsonUtils: JsonUtilsService,\n private _ione: IOneControllerService,\n private _changeDetector: ChangeDetectorRef,\n private _appEventService: AppEventService,\n private _settingsService: SettingsService\n ) {\n/*\n this.settings = {\n url: 'https://ione.simonealbani.com:8443/ione',\n schema: '4899',\n version: '249',\n branch: '1',\n assetPath: 'https://cdn1.colijn-it.nl/content43/',\n //username: 'gast3',\n //password: 'gast3',\n languageCode: \"DE\",\n options: {\n showAsConfigured: true\n },\n renderParameters: {\n host: \"render1.colijn-it.nl\",\n port: 8443,\n secure: true,\n renderMode: \"render_shop\",\n settings: {\n camRotationX: 0.35,\n camRotationY: 1.3\n }\n }\n };\n\n // this.sku = 'CF-HILL';\n // this.sku = 'CF-ALMADA';\n // this.sku = 'CF-39904ANT';\n this.sku = 'CF-22346001';\n this.sku = '1000';\n*/\n\n this._subs.push(\n this._settingsService.settingsLoaded.subscribe(loaded => this._handleSettingsLoaded(loaded)),\n // this._dictionary.dictionaryLoaded.subscribe(d => this.upAndLoaded = true),\n this._appEventService.onAddToCart.subscribe(json => this.onAddToCart.emit(json)),\n this._appEventService.onAddToQuote.subscribe(json => this.onAddToQuote.emit(json)),\n this._appEventService.onAlternativeClick.subscribe(article => this.onAlternativeClick.emit(article)),\n this._appEventService.onArticleInfoReceived.subscribe(info => this._handleAnswerInfoReceived(info)),\n );\n }\n\n async ngOnInit(): Promise<void> {\n }\n\n async ngAfterViewInit(): Promise<void> {\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this._changeDetector.detectChanges();\n }\n\n ngOnDestroy(): void {\n this._subs.forEach(s => s.unsubscribe());\n }\n\n private _handleSettingsLoaded(loaded: boolean): void {\n if (loaded) {\n this.upAndLoaded = true;\n this._initConnection();\n }\n }\n\n private _handleAnswerInfoReceived(info: string): void {\n this.onArticleInfoReceived.next(info);\n }\n\n // we need to prepare the settings before we can use it for the 3d configurator bundle\n private async _initConnection(): Promise<void> {\n this._ione.initDefaultDevelopTestConnection();\n // settingsToUse.session = this._ione.connector.connector.session;\n setTimeout(() => {\n this._changeDetector.detectChanges();\n });\n // this._settings = settingsToUse;\n }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ArticleFullObject } from '@colijnit/ioneconnector/build/model/article-full-object';\nimport { CoText } from '@colijnit/ioneconnector/build/model/co-text';\nimport { AppEventService } from '../../service/app-event.service';\nimport { BitUtils } from '../../utils/bit-utils';\n\n@Component({\n selector: 'app-product-additional-description',\n templateUrl: './product-additional-description.component.html',\n styleUrls: ['./product-additional-description.component.scss']\n})\nexport class ProductAdditionalDescriptionComponent implements OnInit {\n\n @Input()\n public set article(value: ArticleFullObject) {\n this._article = value;\n if (this._article) {\n this.description = this.article.additionalDescription;\n this._prepareDescription();\n }\n }\n\n public get article(): ArticleFullObject {\n return this._article;\n }\n\n public description: string;\n\n private _article: ArticleFullObject;\n\n constructor(\n private _appEventService: AppEventService\n ) {}\n\n ngOnInit() {\n }\n\n public onReadMore(): void {\n this._appEventService.onUpdateProductInfoTab.next(0);\n }\n\n private _prepareDescription(): void {\n\n this.description = '';\n\n if (this.article.texts && this.article.texts.length > 0) {\n this.article.texts.forEach((txt: CoText) => {\n if (BitUtils.IsShortDescription(txt.publication)) {\n this.description += txt.text;\n }\n });\n\n this.description = this.description.replace(/<[^>]*>?/gm, '');\n if (this.description.length > 250) {\n this.description = this.description.substr(0, 250) + ' [..]';\n }\n }\n\n }\n\n}\n","import { ChangeDetectorRef, Component, ElementRef, Input, OnDestroy, ViewChild } from '@angular/core';\nimport { ArticleFullObject } from '@colijnit/ioneconnector/build/model/article-full-object';\nimport { Subscription } from 'rxjs';\nimport { AppEventService } from '../../service/app-event.service';\n\n@Component({\n selector: 'app-product-info-tabs',\n templateUrl: './product-info-tabs.component.html',\n styleUrls: ['./product-info-tabs.component.scss']\n})\nexport class ProductInfoTabsComponent implements OnDestroy {\n\n public activeTab: number;\n public activeTabHeight: number = 0;\n\n @ViewChild('tabContent')\n public tabContent: ElementRef;\n\n public tabs: any[] = [];\n\n public articleObject: ArticleFullObject;\n\n @Input ()\n set article(value: ArticleFullObject) {\n if (value) {\n this.articleObject = value;\n this._setupTabs();\n this.updateTab(0);\n }\n }\n\n private _subs: Subscription[] = [];\n\n constructor(\n private _appEventService: AppEventService\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 { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\n\nimport {\n ArticleTileModule,\n ButtonModule,\n FilesUploadModule,\n IconModule,\n InputTextModule,\n LevelIndicatorModule,\n LoaderModule,\n NumberPickerModule,\n PriceDisplayPipeModule,\n ScrollContainerModule,\n TileModule\n} from '@colijnit/corecomponents';\nimport { ProductDescriptionComponent } from './components/product-description/product-description.component';\nimport { ImageCarouselComponent } from './components/image-carousel/image-carousel.component';\nimport { ProductPageComponent } from './components/product-page/product-page.component';\nimport { IconCacheService } from './service/icon-cache.service';\nimport { IOneConnectorAdapterService } from './service/i-one-connector-adapter.service';\nimport { IOneControllerService } from './service/i-one-controller.service';\nimport { ProductDocumentsComponent } from './components/product-documents/product-documents.component';\nimport { ProductRelatedComponent } from './components/product-related/product-related.component';\nimport { HeaderComponent } from './components/core/header/header.component';\nimport { ProductInfoComponent } from './components/product-info/product-info.component';\nimport { ProductAdditionalInfoComponent } from './components/product-additional-info/product-additional-info.component';\nimport { ProductPropertiesComponent } from './components/product-properties/product-properties.component';\nimport { ProductDeliveryComponent } from './components/product-delivery/product-delivery.component';\nimport { ProductStockComponent } from './components/product-stock/product-stock.component';\nimport { ProductSymbolsComponent } from './components/product-symbols/product-symbols.component';\nimport { ProductPriceComponent } from './components/product-price/product-price.component';\nimport { ProductAddtocartComponent } from './components/product-addtocart/product-addtocart.component';\nimport { LocalizePipe } from './pipe/localize.pipe';\nimport { ProductSelectorTypeComponent } from './components/product-selector-type/product-selector-type.component';\nimport { IoneProductComponent } from './ione-product.component';\nimport { CommonModule } from '@angular/common';\nimport { ProductAdditionalDescriptionComponent } from './components/product-additional-description/product-additional-description.component';\nimport { ProductInfoTabsComponent } from './components/product-info-tabs/product-info-tabs.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ButtonModule,\n IconModule,\n NumberPickerModule,\n InputTextModule,\n FilesUploadModule,\n LoaderModule,\n ScrollContainerModule,\n TileModule,\n LevelIndicatorModule,\n PriceDisplayPipeModule,\n ArticleTileModule\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n declarations: [\n IoneProductComponent,\n ProductPageComponent,\n ImageCarouselComponent,\n ProductDescriptionComponent,\n ProductDocumentsComponent,\n ProductRelatedComponent,\n HeaderComponent,\n ProductInfoComponent,\n ProductAdditionalInfoComponent,\n ProductPropertiesComponent,\n ProductDeliveryComponent,\n ProductStockComponent,\n ProductSymbolsComponent,\n ProductPriceComponent,\n ProductAddtocartComponent,\n ProductInfoTabsComponent,\n LocalizePipe,\n ProductSelectorTypeComponent,\n ProductAdditionalDescriptionComponent\n ],\n entryComponents: [\n IoneProductComponent\n ],\n providers: [\n IOneControllerService,\n IOneConnectorAdapterService,\n IconCacheService\n ],\n exports: [IoneProductComponent],\n bootstrap: [\n IoneProductComponent\n ]\n})\nexport class IoneProductModule {\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../node_modules/tslib/tslib.es6.js","ng://@colijnit/product/app/enum/language-code.enum.ts","ng://@colijnit/product/app/components/product-description/product-description.component.ts","ng://@colijnit/product/app/service/i-one-connector-adapter.service.ts","ng://@colijnit/product/app/utils/json-utils.service.ts","ng://@colijnit/product/app/utils/string-utils.ts","ng://@colijnit/product/app/model/render-modes.ts","ng://@colijnit/product/assets/dictionary/text.properties.ts","ng://@colijnit/product/app/service/dictionary.service.ts","ng://@colijnit/product/app/model/settings-options.ts","ng://@colijnit/product/app/model/render-parameters.ts","ng://@colijnit/product/app/enum/icon.enum.ts","ng://@colijnit/product/app/model/settings.ts","ng://@colijnit/product/app/service/settings.service.ts","ng://@colijnit/product/app/service/i-one-controller.service.ts","ng://@colijnit/product/app/service/app-event.service.ts","ng://@colijnit/product/app/model/icon.ts","ng://@colijnit/product/app/enum/selector-type.enum.ts","ng://@colijnit/product/app/service/icon-cache.service.ts","ng://@colijnit/product/app/components/image-carousel/image-carousel.component.ts","ng://@colijnit/product/app/model/stock-and-delivery.ts","ng://@colijnit/product/app/components/product-info/product-info.component.ts","ng://@colijnit/product/app/components/product-page/product-page.component.ts","ng://@colijnit/product/app/components/product-documents/product-documents.component.ts","ng://@colijnit/product/app/components/product-related/product-related.component.ts","ng://@colijnit/product/app/components/core/header/header.component.ts","ng://@colijnit/product/app/service/module.service.ts","ng://@colijnit/product/app/utils/bit-utils.ts","ng://@colijnit/product/app/components/product-additional-info/product-additional-info.component.ts","ng://@colijnit/product/app/components/product-properties/product-properties.component.ts","ng://@colijnit/product/app/pipe/localize.pipe.ts","ng://@colijnit/product/app/components/product-delivery/product-delivery.component.ts","ng://@colijnit/product/app/components/product-stock/product-stock.component.ts","ng://@colijnit/product/app/components/product-symbols/product-symbols.component.ts","ng://@colijnit/product/app/components/product-price/product-price.component.ts","ng://@colijnit/product/app/components/product-addtocart/product-addtocart.component.ts","ng://@colijnit/product/app/components/product-selector-type/product-selector-type.component.ts","ng://@colijnit/product/app/ione-product.component.ts","ng://@colijnit/product/app/components/product-additional-description/product-additional-description.component.ts","ng://@colijnit/product/app/components/product-info-tabs/product-info-tabs.component.ts","ng://@colijnit/product/app/service/app-initializer.service.ts","ng://@colijnit/product/app/ione-product.module.ts"],"names":["__decorate","decorators","target","key","desc","d","c","arguments","length","r","Object","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","this","n","v","op","TypeError","call","pop","push","__read","o","m","ar","error","__spread","concat","LanguageCode","ProductDescriptionComponent","prototype","ngOnInit","Input","Component","selector","template","IOneConnectorAdapterService","showLoader","Subject","ngOnDestroy","connector","unsubscribe","initConnector","options","_this","Connector","session","subscribe","setInstance","instanceId","setInstanceToConfigure","getDeliveryPrognosis","goodId","getDeliveryPrognosisForArticle","getArticleGroupImages","getTurnoverGroupImages","getSuperArticleImages","getJsonConfiguredArticles","configuratorStatistics","getJsonArticleFlatTree","getFullArticle","skuOrId","getSuperArticle","id","getDocumentContent","docId","thumbnail","Injectable","providedIn","JsonUtilsService","readJsonFile","filePath","fetch","response","_a","ok","json","console","e_1","message","RenderModes","StringUtils","ReplaceOccurrencesIn","source","placeholder","replacementTexts","_i","outString","replace","RegExp","_escapeRegExp","len","IsString","str","IsStringWithLength","Dictionary","strings","nl","ADDITIONAL_DATA","ALTERNATIVE_PRODUCTS","ARTICLE_NUMBER","CATEGORY","CATEGORY_TYPE","CONFIGURE","DELIVERY_TIME_PERIOD","DESCRIPTION","DOCUMENTS","DOWNLOADS","FEATURES","HEIGHT","MATERIAL","PRODUCT_IN_STOCK","PRODUCT_NOT_IN_STOCK","PROPERTIES","QUOTATION","READ_MORE","RELATED_PRODUCTS","SHOPPING_CART_IN","SHOW_IN","STOCK","SYMBOLS","TITLE","TURNOVERGROUP","VARIANTS","WIDTH","de","DictionaryService","_http","_jsonUtils","dictionaryUrl","_dictionaries","Map","_placeholder","_language","_rootUrl","_dictBasePath","setDictionary","language","Dutch","has","undefined","dictionary","substr","toLowerCase","set","get","upperCaseFirst","text","charAt","toUpperCase","slice","HttpClient","SettingsOptions","showStockStatus","showZoomButton","showTagFilter","showAsConfigured","inlineAnswers","showArButton","arEnabled","vrEnabled","IconEnum","RenderParameters","host","port","secure","renderMode","RenderShop","Settings","useGroups","useRenders","useEncryption","useMatch","currencySymbol","renderParameters","SettingsService","_jsonUtilsService","_dictionaryService","settingsLoaded","BehaviorSubject","_settings","initializeSettings","settings","jsonSettings","assign","settingsFinished","createSettingsFromObject","obj","hasOwnProperty","url","rootUrl","schema","version","branch","currency","client","languageCode","username","password","timeoutInMs","assetPath","threeDAssetPath","gtm","assetIndex","lightPresetsIndex","additionalTranslationFile","IOneControllerService","_settingsService","controllerInitialized","_initializing","_initialized","defaultDevTestOptions","Options","subs","_article","_shouldShowLoader","forEach","sub","initDefaultDevelopTestConnection","Error","currencyId","useLoginEncryption","ConfiguratorStatisticsEnvironment","userType","transactionType","actionDomain","sessionId","webHost","window","location","bundleHost","onShowLoaderChange","AppEventService","onAddToCart","onAlternativeClick","onAddToQuote","onForceRenderImage","onArticleReceived","onSelectionsReceived","onImageReceived","onRenderStarted","onRenderImageReceived","onDraftRenderImageReceived","onArticleInfoReceived","onUpdateProductInfoTab","Output","Directive","SelectorType","IconSvg","add_to_cart_drop","delivery_truck","download","full_screen","logo","magic_wand","normal_screen","quote","refresh","three_d","truck","two_d","warehouse","IconCacheService","_sanitizer","_iconCache","_allIcons","setIconCache","getIcon","iconName","bypassSecurityTrustHtml","DomSanitizer","ImageCarouselComponent","_ione","_appEventService","_changeDetector","_domSanitizer","iconCache","icons","showRefresh","resizing","_currentIndex","_images","_subs","CoDocument","unshift","_loadImages","detectChanges","handleWindowResize","_scrollCarouselToIndex","clearTimeout","_resizeTimer","setTimeout","gotoNextSlide","currentIndex","gotoPrevSlide","isCurrentIndex","index","carousel","s","handleThumbClick","getImageSrc","image","documentBodyAsDataUri","detail","bypassSecurityTrustUrl","documentBody","documentId","images","movePx","nativeElement","clientWidth","scrollLeft","ChangeDetectorRef","ViewChild","read","ElementRef","HostListener","HostBinding","StockAndDelivery","stock","deliveryDescription","TabType","ProductPageComponent","_renderer","settingsService","appEventService","icon","configurable","threeD","show2D","show3D","configuring","fullscreenAnimationEnd","_fullScreen","x","selections","forceRenderImage","_sku","fullScreen","_getArticle","NormalScreen","FullScreen","_currentView","TwoD","ThreeD","ngAfterViewInit","_initializedSub","configurator","fullscreenbutton","event","handleStartConfiguration","showFullScreen","init","article","goodType","currentView","homeBrandId","selectorType","selectorTypeCustomer","stockInfo","stockAndDelivery","Renderer2","animations","trigger","state","style","position","top","left","width","height","transition","animate","right","opacity","display","ProductDocumentsComponent","showLabel","documents","ProductRelatedComponent","_iOne","isSmallModus","_articles","refType","handleContentClick","a","HeaderComponent","ProductInfoComponent","tabType","currentTab","Additional","switchTab","tab","ModuleService","_iOneConnectorService","_superArticles","getArticle","mainArticle","BitUtils","IsShortDescription","bit","IsFullDescription","IsMetaTitle","IsMetaDescription","IsMetaKeys","ProductAdditionalInfoComponent","_moduleService","textParts","_buildInfo","_getTextsSuperArticle","texts","superArticleNr","txt","publication","safeTxt","sanitize","SecurityContext","HTML","catch","_prepareArticleTexts","_b","additionalDescription","description","propertyMap","ProductPropertiesComponent","properties","_prepareProperties","LocalizePipe","transform","Array","isArray","Pipe","name","ProductDeliveryComponent","_localizePipe","iconData","Truck","providers","ProductStockComponent","Warehouse","numberInStock","ProductSymbolsComponent","symbolStrings","_symbols","_className","ProductPriceComponent","showFromPrice","_configurable","_pricing","_setPrices","valutaSign","_getSign","retailCurrency","fromPrice","retailBasePrice","priceBaseline","fromLabel","toPrice","retailSuggestedPrice","toLabel","ProductAddtocartComponent","_ioneControllerService","fullscreen","startConfiguration","EventEmitter","addToCartClick","addToQuoteClick","showQuoteButton","_quantity","Math","max","addToCartButton","handleAddToCartClick","quantity","_getJSONFromArticleObject","_c","handleAddToQuoteClick","returnObject","baseGoodId","selectorData","articleTree","selectorDataJson","selectorDataObject","JSON","parse","articleFlatTreeJson","stringify","ProductSelectorTypeComponent","type","onIconClick","currentTypeChange","twoDIcon","threeDIcon","handleIconClick","currentType","IoneProductComponent","_dictionary","upAndLoaded","loaded","_handleSettingsLoaded","emit","info","_handleAnswerInfoReceived","ngOnChanges","changes","_initConnection","encapsulation","ViewEncapsulation","Emulated","ProductAdditionalDescriptionComponent","_prepareDescription","onReadMore","ProductInfoTabsComponent","activeTabHeight","tabs","updateTab","tabContent","scrollIntoView","behavior","articleObject","_setupTabs","tabIndex","activeTab","updateHeight","children","offsetHeight","title","symbols","AppInitializerService","initializeApp","context","IoneProductModule","NgModule","imports","CommonModule","ButtonModule","IconModule","NumberPickerModule","InputTextModule","FilesUploadModule","LoaderModule","ScrollContainerModule","TileModule","LevelIndicatorModule","PriceDisplayPipeModule","ArticleTileModule","schemas","CUSTOM_ELEMENTS_SCHEMA","declarations","entryComponents","provide","APP_INITIALIZER","useFactory","deps","multi","exports","bootstrap"],"mappings":";;;;;;;;;;;;;;oFAoDO,SAASA,EAAWC,EAAYC,EAAQC,EAAKC,GAChD,IAA2HC,EAAvHC,EAAIC,UAAUC,OAAQC,EAAIH,EAAI,EAAIJ,EAAkB,OAATE,EAAgBA,EAAOM,OAAOC,yBAAyBT,EAAQC,GAAOC,EACrH,GAAuB,iBAAZQ,SAAoD,mBAArBA,QAAQC,SAAyBJ,EAAIG,QAAQC,SAASZ,EAAYC,EAAQC,EAAKC,QACpH,IAAK,IAAIU,EAAIb,EAAWO,OAAS,EAAGM,GAAK,EAAGA,KAAST,EAAIJ,EAAWa,MAAIL,GAAKH,EAAI,EAAID,EAAEI,GAAKH,EAAI,EAAID,EAAEH,EAAQC,EAAKM,GAAKJ,EAAEH,EAAQC,KAASM,GAChJ,OAAOH,EAAI,GAAKG,GAAKC,OAAOK,eAAeb,EAAQC,EAAKM,GAAIA,EAWzD,SAASO,EAAUC,EAASC,EAAYC,EAAGC,GAE9C,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUC,GAAS,IAAMC,EAAKN,EAAUO,KAAKF,IAAW,MAAOG,GAAKL,EAAOK,IACpF,SAASC,EAASJ,GAAS,IAAMC,EAAKN,EAAiB,MAAEK,IAAW,MAAOG,GAAKL,EAAOK,IACvF,SAASF,EAAKI,GAJlB,IAAeL,EAIaK,EAAOC,KAAOT,EAAQQ,EAAOL,QAJ1CA,EAIyDK,EAAOL,MAJhDA,aAAiBN,EAAIM,EAAQ,IAAIN,GAAE,SAAUG,GAAWA,EAAQG,OAITO,KAAKR,EAAWK,GAClGH,GAAMN,EAAYA,EAAUa,MAAMhB,EAASC,GAAc,KAAKS,WAI/D,SAASO,EAAYjB,EAASkB,GACjC,IAAsGC,EAAGC,EAAGC,EAAGC,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPJ,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,IAAOK,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEZ,KAAMkB,EAAK,GAAIC,MAASD,EAAK,GAAIE,OAAUF,EAAK,IAAwB,mBAAXG,SAA0BT,EAAES,OAAOC,UAAY,WAAa,OAAOC,OAAUX,EACvJ,SAASM,EAAKM,GAAK,OAAO,SAAUC,GAAK,OACzC,SAAcC,GACV,GAAIjB,EAAG,MAAM,IAAIkB,UAAU,mCAC3B,KAAOd,GAAG,IACN,GAAIJ,EAAI,EAAGC,IAAMC,EAAY,EAARe,EAAG,GAAShB,EAAU,OAAIgB,EAAG,GAAKhB,EAAS,SAAOC,EAAID,EAAU,SAAMC,EAAEiB,KAAKlB,GAAI,GAAKA,EAAEV,SAAWW,EAAIA,EAAEiB,KAAKlB,EAAGgB,EAAG,KAAKtB,KAAM,OAAOO,EAE3J,OADID,EAAI,EAAGC,IAAGe,EAAK,CAAS,EAARA,EAAG,GAAQf,EAAEb,QACzB4B,EAAG,IACP,KAAK,EAAG,KAAK,EAAGf,EAAIe,EAAI,MACxB,KAAK,EAAc,OAAXb,EAAEC,QAAgB,CAAEhB,MAAO4B,EAAG,GAAItB,MAAM,GAChD,KAAK,EAAGS,EAAEC,QAASJ,EAAIgB,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKb,EAAEI,IAAIY,MAAOhB,EAAEG,KAAKa,MAAO,SACxC,QACI,KAAMlB,EAAIE,EAAEG,MAAML,EAAIA,EAAE9B,OAAS,GAAK8B,EAAEA,EAAE9B,OAAS,KAAkB,IAAV6C,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEb,EAAI,EAAG,SACjG,GAAc,IAAVa,EAAG,MAAcf,GAAMe,EAAG,GAAKf,EAAE,IAAMe,EAAG,GAAKf,EAAE,IAAM,CAAEE,EAAEC,MAAQY,EAAG,GAAI,MAC9E,GAAc,IAAVA,EAAG,IAAYb,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIA,EAAIe,EAAI,MAC7D,GAAIf,GAAKE,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIE,EAAEI,IAAIa,KAAKJ,GAAK,MACvDf,EAAE,IAAIE,EAAEI,IAAIY,MAChBhB,EAAEG,KAAKa,MAAO,SAEtBH,EAAKlB,EAAKoB,KAAKtC,EAASuB,GAC1B,MAAOZ,GAAKyB,EAAK,CAAC,EAAGzB,GAAIS,EAAI,EAAI,QAAWD,EAAIE,EAAI,EACtD,GAAY,EAARe,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAE5B,MAAO4B,EAAG,GAAKA,EAAG,QAAK,EAAQtB,MAAM,GArB9BL,CAAK,CAACyB,EAAGC,MA8CtD,SAASM,EAAOC,EAAGR,GACtB,IAAIS,EAAsB,mBAAXZ,QAAyBW,EAAEX,OAAOC,UACjD,IAAKW,EAAG,OAAOD,EACf,IAAmBlD,EAAYmB,EAA3Bd,EAAI8C,EAAEL,KAAKI,GAAOE,EAAK,GAC3B,IACI,WAAc,IAANV,GAAgBA,KAAM,MAAQ1C,EAAIK,EAAEa,QAAQI,MAAM8B,EAAGJ,KAAKhD,EAAEgB,OAExE,MAAOqC,GAASlC,EAAI,CAAEkC,MAAOA,GACjC,QACQ,IACQrD,IAAMA,EAAEsB,OAAS6B,EAAI9C,EAAU,SAAI8C,EAAEL,KAAKzC,GAE1D,QAAkB,GAAIc,EAAG,MAAMA,EAAEkC,OAE7B,OAAOD,EAGJ,SAASE,IACZ,IAAK,IAAIF,EAAK,GAAI/C,EAAI,EAAGA,EAAIP,UAAUC,OAAQM,IAC3C+C,EAAKA,EAAGG,OAAON,EAAOnD,UAAUO,KACpC,OAAO+C,MClJCI,eCaV,SAAAC,KAKF,OAHEA,EAAAC,UAAAC,SAAA,aAJApE,EAAA,CADCqE,EAAAA,uCAFUH,EAA2BlE,EAAA,CALvCsE,EAAAA,UAAU,CACTC,SAAU,0BACVC,SAAA,0hBAGWN,mBCcX,SAAAO,IAJgBvB,KAAAwB,WAA+B,IAAIC,EAAAA,eAOnDF,EAAAN,UAAAS,YAAA,WACE1B,KAAK2B,UAAUH,WAAWI,eAGrBL,EAAAN,UAAAY,cAAP,SAAqBC,GAArB,IAAAC,EAAA/B,KACEA,KAAK2B,UAAY,IAAIK,EAAAA,UAAUF,GAC/BA,EAAQG,QAAUjC,KAAK2B,UAAUM,QACjCjC,KAAK2B,UAAUH,WAAWU,WAAU,SAAA3D,GAAS,OAAAwD,EAAKP,WAAW/C,KAAKF,OAG7DgD,EAAAN,UAAAkB,YAAP,SAAmBC,GACjBpC,KAAK2B,UAAUU,uBAAuBD,GAAY,IAG7Cb,EAAAN,UAAAqB,qBAAP,SAA4BC,GAC1B,OAAOvC,KAAK2B,UAAUa,+BAA+BD,IAGhDhB,EAAAN,UAAAwB,sBAAP,WACE,OAAOzC,KAAK2B,UAAUc,yBAGjBlB,EAAAN,UAAAyB,uBAAP,WACE,OAAO1C,KAAK2B,UAAUe,0BAGjBnB,EAAAN,UAAA0B,sBAAP,WACE,OAAO3C,KAAK2B,UAAUgB,yBAGjBpB,EAAAN,UAAA2B,0BAAP,SAAiCC,GAC/B,OAAO7C,KAAK2B,UAAUiB,0BAA0BC,IAG3CtB,EAAAN,UAAA6B,uBAAP,SAA8BP,GAC5B,OAAOvC,KAAK2B,UAAUmB,uBAAuBP,IAGxChB,EAAAN,UAAA8B,eAAP,SAAsBC,GACpB,OAAOhD,KAAK2B,UAAUoB,eAAeC,IAGhCzB,EAAAN,UAAAgC,gBAAP,SAAuBC,GACrB,OAAOlD,KAAK2B,UAAUsB,gBAAgBC,IAGjC3B,EAAAN,UAAAkC,mBAAP,SAA0BC,EAAeC,GACvC,YADuC,IAAAA,IAAAA,GAAA,GAChCrD,KAAK2B,UAAUwB,mBAAmBC,EAAOC,+FAxDvC9B,EAA2BzE,EAAA,CAHvCwG,EAAAA,WAAW,CACVC,WAAY,UAEDhC,mBCXb,SAAAiC,YAEeA,EAAAvC,UAAAwC,aAAb,SAA0BC,qGAEL,6BAAA,CAAA,EAAMC,MAAMD,WAC7B,OADME,EAAWC,EAAArE,QACHsE,GAGZ,CAAA,EAAOF,EAASG,QAFhB,CAAA,EAAO,aAMT,kBADAC,QAAQpD,MAAM,sBAAuBqD,EAAEC,SACvC,CAAA,EAAO,wHAZAV,EAAgB1G,EAAA,CAH5BwG,EAAAA,WAAW,CACVC,WAAY,UAEDC,OHLb,SAAYzC,GACVA,EAAA,MAAA,QACAA,EAAA,QAAA,QACAA,EAAA,OAAA,QACAA,EAAA,OAAA,QAJF,CAAYA,IAAAA,EAAY,KIKxB,ICLYoD,EDKZC,EAAA,WAAA,SAAAA,KAqDA,OApCgBA,EAAAC,qBAAd,SAAmCC,EAAgBC,OAAqB,IAAAC,EAAA,GAAAC,EAAA,EAAAA,EAAApH,UAAAC,OAAAmH,IAAAD,EAAAC,EAAA,GAAApH,UAAAoH,GAEtE,GAAI,EAAJ,CAGA,IAAKF,GAA2C,IAA5BC,EAAiBlH,OACnC,OAAOgH,EAET,IAAII,EAAoBJ,EAExB,GAAgC,IAA5BE,EAAiBlH,OAEnBoH,EAAYA,EAAUC,QAAQ,IAAIC,OAAO5E,KAAK6E,cAAcN,GAAc,KAAMC,EAAiB,SAGjG,IAAK,IAAI5G,EAAY,EAAGkH,EAAcN,EAAiBlH,OAAQM,EAAIkH,EAAKlH,IACtE8G,EAAYA,EAAUC,QAAQJ,EAAaC,EAAiB5G,IAGhE,OAAO8G,IAGKN,EAAAW,SAAd,SAAuBC,GACrB,MAAsB,iBAARA,GAIFZ,EAAAa,mBAAd,SAAiCD,GAC/B,OAAOA,GAAOZ,EAAYW,SAASC,IAAQA,EAAI1H,OAAS,GAI3C8G,EAAAS,cAAf,SAA6BG,GAC3B,OAAOA,GAGXZ,EArDA,GELAc,EAAA,WAESlF,KAAAmF,QAAc,CACnBC,GAAM,CACJC,gBAAmB,mBACnBC,qBAAwB,yBACxBC,eAAkB,iBAClBC,SAAY,YACZC,cAAiB,iBACjBC,UAAa,eACbC,qBAAwB,YACxBC,YAAe,eACfC,UAAa,aACbC,UAAa,YACbC,SAAY,YACZC,OAAU,SACVC,SAAY,YACZC,iBAAoB,cACpBC,qBAAwB,mBACxBC,WAAc,gBACdC,UAAa,WACbC,UAAa,YACbC,iBAAoB,yBACpBC,iBAAoB,iBACpBC,QAAW,YACXC,MAAS,WACTC,QAAW,WACXC,MAAS,QACTC,cAAiB,aACjBC,SAAY,YACZC,MAAS,WAEXC,GAAM,CACJ3B,gBAAmB,mBACnBC,qBAAwB,uBACxBC,eAAkB,gBAClBC,SAAY,YACZC,cAAiB,gBACjBC,UAAa,gBACbC,qBAAwB,aACxBC,YAAe,eACfC,UAAa,UACbC,UAAa,YACbC,SAAY,gBACZC,OAAU,OACVC,SAAY,WACZC,iBAAoB,YACpBC,qBAAwB,kBACxBC,WAAc,gBACdC,UAAa,UACbC,UAAa,iBACbC,iBAAoB,qBACpBC,iBAAoB,mBACpBC,QAAW,SACXC,MAAS,SACTC,QAAW,UACXC,MAAS,YACTC,cAAiB,eACjBC,SAAY,YACZC,MAAS,yBCzBb,SAAAE,EACUC,EACAC,GADAnH,KAAAkH,MAAAA,EACAlH,KAAAmH,WAAAA,EAxBOnH,KAAAoH,cAAwB,6BAgBjCpH,KAAAqH,cAAwD,IAAIC,IAInDtH,KAAAuH,aAAuB,YAlBxC/J,OAAAK,eAAWoJ,EAAAhG,UAAA,WAAQ,KAAnB,WACE,OAAOjB,KAAKwH,2CAGdhK,OAAAK,eAAWoJ,EAAAhG,UAAA,UAAO,KAAlB,SAAmB1C,GACjByB,KAAKyH,SAAWlJ,EAChByB,KAAK0H,cAAgB1H,KAAKyH,SAAW,IAAMzH,KAAKoH,+CAqBrCH,EAAAhG,UAAA0G,cAAb,SAA2BC,mFACzB5H,KAAKwH,UAAYI,GAAY7G,EAAa8G,MACrC7H,KAAKqH,cAAcS,IAAI9H,KAAKwH,iBAEsCO,KAD/DC,EAAa,IAAI9C,GACTC,QAAQnF,KAAKwH,UAAUS,OAAO,EAAG,GAAGC,gBAChDlI,KAAKqH,cAAcc,IAAInI,KAAKwH,UAAWQ,EAAW7C,QAAQnF,KAAKwH,UAAUS,OAAO,EAAG,GAAGC,2BA8BrFjB,EAAAhG,UAAAmH,IAAP,SAAWnL,EAAaoL,QAAA,IAAAA,IAAAA,GAAA,OAAgC,IAAA7D,EAAA,GAAAC,EAAA,EAAAA,EAAApH,UAAAC,OAAAmH,IAAAD,EAAAC,EAAA,GAAApH,UAAAoH,GACtD,IAAKL,EAAYa,mBAAmBhI,GAClC,OAAOA,GAAO,GAGhB,IAAIqL,EAAetI,KAAKqH,cAAce,IAAIpI,KAAK4H,UAAU3K,GAazD,OAZAqL,EAAOlE,EAAYa,mBAAmBqD,GAAQA,EAAOrL,EAGnDqL,EADED,EACKC,EAAKC,OAAO,GAAGC,cAAgBF,EAAKG,MAAM,GAE1CH,EAAKC,OAAO,GAAGL,cAAgBI,EAAKG,MAAM,GAG/CjE,EAAiBlH,OAAS,IAC5BgL,EAAOlE,EAAYC,qBAAoBtF,MAAhCqF,EAAWvD,EAAA,CAAsByH,EAAMtI,KAAKuH,cAAiB/C,KAG/D8D,4CA3DQI,EAAAA,kBACKlF,wIAzBXyD,EAAiBnK,EAAA,CAH7BwG,EAAAA,WAAW,CACVC,WAAY,UAED0D,MCXb0B,EAAA,WACS3I,KAAA4I,iBAA2B,EAC3B5I,KAAA6I,gBAA0B,EAC1B7I,KAAA8I,eAAyB,EACzB9I,KAAA+I,kBAA4B,EAC5B/I,KAAAgJ,eAAyB,EACzBhJ,KAAAiJ,cAAwB,EAExBjJ,KAAAkJ,WAAqB,EACrBlJ,KAAAmJ,WAAqB,IHT9B,SAAYhF,GACVA,EAAA,WAAA,cACAA,EAAA,WAAA,cACAA,EAAA,WAAA,cAHF,CAAYA,IAAAA,EAAW,KIEvB,ICAYiF,EDAZC,EAAA,WACSrJ,KAAAsJ,KAAe,GACftJ,KAAAuJ,KAAe,EACfvJ,KAAAwJ,QAAkB,EAClBxJ,KAAAyJ,WAA0BtF,EAAYuF,YEH/CC,EAAA,WASS3J,KAAAiC,aAAe8F,EACf/H,KAAA4J,WAAqB,EACrB5J,KAAA6J,YAAsB,EACtB7J,KAAA8J,eAAyB,EACzB9J,KAAA+J,UAAoB,EAGpB/J,KAAAgK,eAAyB,IAQzBhK,KAAA8B,QAA2B,IAAI6G,EAC/B3I,KAAAiK,iBAAqC,IAAIZ,gBCJhD,SAAAa,EACUC,EACAC,GADApK,KAAAmK,kBAAAA,EACAnK,KAAAoK,mBAAAA,EANHpK,KAAAqK,eAA2C,IAAIC,EAAAA,iBAAgB,GAgHxE,OAxHE9M,OAAAK,eAAWqM,EAAAjJ,UAAA,WAAQ,KAInB,WACE,OAAOjB,KAAKuK,eALd,SAAoBhM,GAClByB,KAAKuK,UAAYhM,mCAiBN2L,EAAAjJ,UAAAuJ,mBAAb,iHAE0B,oBAAbC,SAAP,CAAA,EAAA,GACmB,CAAA,EAAMzK,KAAKmK,kBAAkB1G,aAAa,wCAAzDiH,EAAe7G,EAAArE,OACrBQ,KAAKyK,SAAWjN,OAAOmN,OAAO,IAAIhB,EAAYe,GAC9C1K,KAAKyK,SAAS3I,QAAUtE,OAAOmN,OAAO,IAAIhC,EAAmB3I,KAAKyK,SAAS3I,SAC3E9B,KAAK4K,gCAEL5K,KAAKyK,SAAWjN,OAAOmN,OAAO,IAAIhB,EAAYc,UAC9CzK,KAAKyK,SAAS3I,QAAUtE,OAAOmN,OAAO,IAAIhC,EAAmB3I,KAAKyK,SAAS3I,SAC3E9B,KAAK4K,sDAIIV,EAAAjJ,UAAA4J,yBAAb,SAAsCC,6EAC/B9K,KAAKyK,WACRzK,KAAKyK,SAAW,IAAId,GAElBmB,EAAIC,eAAe,SACrB/K,KAAKyK,SAASO,IAAMF,EAAS,IAC7B9K,KAAKoK,mBAAmBa,QAAUjL,KAAKyK,SAASO,IAAIrG,QAAQ,eAAgB,KAE1EmG,EAAIC,eAAe,YACrB/K,KAAKyK,SAASS,OAASJ,EAAY,QAEjCA,EAAIC,eAAe,aACrB/K,KAAKyK,SAASU,QAAUL,EAAa,SAEnCA,EAAIC,eAAe,YACrB/K,KAAKyK,SAASW,OAASN,EAAY,QAEjCA,EAAIC,eAAe,cACrB/K,KAAKyK,SAASY,SAAWP,EAAc,UAErCA,EAAIC,eAAe,YACrB/K,KAAKyK,SAASa,OAASR,EAAY,QAEjCA,EAAIC,eAAe,kBACrB/K,KAAKyK,SAASc,aAAeT,EAAkB,cAE7CA,EAAIC,eAAe,cACrB/K,KAAKyK,SAASe,SAAWV,EAAc,UAErCA,EAAIC,eAAe,cACrB/K,KAAKyK,SAASgB,SAAWX,EAAc,UAErCA,EAAIC,eAAe,iBACrB/K,KAAKyK,SAASiB,YAAcZ,EAAiB,aAE3CA,EAAIC,eAAe,aACrB/K,KAAKyK,SAASxI,QAAU6I,EAAa,SAEnCA,EAAIC,eAAe,eACrB/K,KAAKyK,SAASb,UAAYkB,EAAe,WAEvCA,EAAIC,eAAe,mBACrB/K,KAAKyK,SAASX,cAAgBgB,EAAmB,eAE/CA,EAAIC,eAAe,cACrB/K,KAAKyK,SAASV,SAAWe,EAAc,UAErCA,EAAIC,eAAe,eACrB/K,KAAKyK,SAASkB,UAAYb,EAAe,UAC2B,MAAhE9K,KAAKyK,SAASkB,UAAU3L,KAAKyK,SAASkB,UAAUrO,OAAS,KAC3D0C,KAAKyK,SAASkB,WAAa,KAE7B3L,KAAKyK,SAASmB,gBAAkB5L,KAAKyK,SAASkB,WAE5Cb,EAAIC,eAAe,qBACrB/K,KAAKyK,SAASmB,gBAAkBd,EAAqB,gBAC2B,MAA5E9K,KAAKyK,SAASmB,gBAAgB5L,KAAKyK,SAASmB,gBAAgBtO,OAAS,KACvE0C,KAAKyK,SAASmB,iBAAmB,MAGjCd,EAAIC,eAAe,oBACrB/K,KAAKyK,SAAST,eAAiBc,EAAoB,gBAEjDA,EAAIC,eAAe,SACrB/K,KAAKyK,SAASoB,IAAMf,EAAS,KAE3BA,EAAIC,eAAe,gBACrB/K,KAAKyK,SAASqB,WAAahB,EAAgB,YAEzCA,EAAIC,eAAe,uBACrB/K,KAAKyK,SAASsB,kBAAoBjB,EAAuB,mBAEvDA,EAAIC,eAAe,+BACrB/K,KAAKyK,SAASuB,0BAA4BlB,EAA+B,2BAEvEA,EAAIC,eAAe,aACrB/K,KAAKyK,SAAS3I,QAAUgJ,EAAa,SAEnCA,EAAIC,eAAe,sBACrB/K,KAAKyK,SAASR,iBAAmBa,EAAsB,kBAEzD9K,KAAK4K,8BAGMV,EAAAjJ,UAAA2J,iBAAb,qGACE,MAAA,CAAA,EAAM5K,KAAKoK,mBAAmBzC,cAAc3H,KAAKyK,SAASc,6BAA1D1H,EAAArE,OACAQ,KAAKqK,eAAe5L,MAAK,wDAzGE+E,SACCyD,KAhBnBiD,EAAepN,EAAA,CAD3BwG,EAAAA,cACY4G,mBC+BX,SAAA+B,EACStK,EACCuK,GADDlM,KAAA2B,UAAAA,EACC3B,KAAAkM,iBAAAA,EAdHlM,KAAAmM,sBAAkD,IAAI7B,EAAAA,iBAAyB,GAK9EtK,KAAAoM,eAAgB,EAChBpM,KAAAqM,cAAe,EAENrM,KAAAsM,sBAAiC,IAAIC,EAAAA,QAErCvM,KAAAwM,KAAuB,UAlBxChP,OAAAK,eAAWoO,EAAAhL,UAAA,UAAO,KAAlB,WACE,OAAOjB,KAAKyM,0CAGdjP,OAAAK,eAAWoO,EAAAhL,UAAA,mBAAgB,KAA3B,WACE,OAAOjB,KAAK0M,mDAqBdT,EAAAhL,UAAAS,YAAA,WACE1B,KAAKwM,KAAKG,SAAQ,SAAAC,GAAO,OAAAA,EAAIhL,kBAGlBqK,EAAAhL,UAAA4L,iCAAb,oFACE,GAAI7M,KAAKqM,cAAgBrM,KAAKoM,cAC5B,MAAA,CAAA,GAEFpM,KAAKoM,eAAgB,EACrB,IAEE,KADM3B,EAAqBzK,KAAKkM,iBAAiBzB,UAE/C,MAAMqC,MAAM,6BAEd9M,KAAKsM,sBAAsBtB,IAAMP,EAASO,IAC1ChL,KAAKsM,sBAAsBpB,OAAST,EAASS,OAC7ClL,KAAKsM,sBAAsBnB,QAAUV,EAASU,QAC9CnL,KAAKsM,sBAAsBlB,OAASX,EAASW,OAC7CpL,KAAKsM,sBAAsBd,SAAWf,EAASe,SAC/CxL,KAAKsM,sBAAsBb,SAAWhB,EAASgB,SAC/CzL,KAAKsM,sBAAsBS,WAAatC,EAASY,SACjDrL,KAAKsM,sBAAsB1C,UAAYa,EAASb,UAChD5J,KAAKsM,sBAAsBzC,WAAaY,EAASZ,WACjD7J,KAAKsM,sBAAsBU,mBAAqBvC,EAASX,cAEzD9J,KAAK2B,UAAUE,cAAc7B,KAAKsM,uBAClCtM,KAAKkM,iBAAiBzB,SAASxI,QAAUjC,KAAKsM,sBAAsBrK,QACpEjC,KAAKmM,sBAAsB1N,MAAK,GAChCuB,KAAKqM,cAAe,EACpBrM,KAAKoM,eAAgB,EACrB,MAAO1N,GACPsB,KAAKoM,eAAgB,mBAIlBH,EAAAhL,UAAAkB,YAAP,SAAmBC,GACjBpC,KAAK2B,UAAUQ,YAAYC,IAGtB6J,EAAAhL,UAAA8B,eAAP,SAAsBC,GACpB,OAAOhD,KAAK2B,UAAUoB,eAAeC,IAGhCiJ,EAAAhL,UAAAkC,mBAAP,SAA0BC,EAAeC,GACvC,YADuC,IAAAA,IAAAA,GAAA,GAChCrD,KAAK2B,UAAUwB,mBAAmBC,EAAOC,IAG3C4I,EAAAhL,UAAAqB,qBAAP,SAA4BC,GAC1B,OAAOvC,KAAK2B,UAAUW,qBAAqBC,IAItC0J,EAAAhL,UAAAwB,sBAAP,WACE,OAAOzC,KAAK2B,UAAUc,yBAGjBwJ,EAAAhL,UAAAyB,uBAAP,WACE,OAAO1C,KAAK2B,UAAUe,0BAIjBuJ,EAAAhL,UAAA0B,sBAAP,WACE,OAAO3C,KAAK2B,UAAUgB,yBAGjBsJ,EAAAhL,UAAAgC,gBAAP,SAAuBC,GACrB,OAAOlD,KAAK2B,UAAUsB,gBAAgBC,IAGjC+I,EAAAhL,UAAA2B,0BAAP,WACE,IAAMC,EAAyB,IAAIoK,EAAAA,kCAOnC,OANApK,EAAuBqK,SAAW,kBAClCrK,EAAuBsK,gBAAkB,QACzCtK,EAAuBuK,aAAe,SACtCvK,EAAuBwK,UAAYrN,KAAKkM,iBAAiBzB,SAASxI,QAAUjC,KAAKkM,iBAAiBzB,SAASxI,QAAQoL,UAAY,UAC/HxK,EAAuByK,QAAUC,OAAOC,SAASlE,KACjDzG,EAAuB4K,WAAaF,OAAOC,SAASlE,KAC7CtJ,KAAK2B,UAAUiB,0BAA0BC,IAG3CoJ,EAAAhL,UAAA6B,uBAAP,SAA8BP,GAC5B,OAAOvC,KAAK2B,UAAUmB,uBAAuBP,IAGxC0J,EAAAhL,UAAAyM,mBAAP,SAA0BlM,GACxBxB,KAAK0M,kBAAoBlL,4CA1FPD,SACQ2I,6HAvBjB+B,EAAqBnP,EAAA,CAHjCwG,EAAAA,WAAW,CACVC,WAAY,UAED0I,mBCVb,SAAA0B,IAGS3N,KAAA4N,YAA+B,IAAInM,EAAAA,QAGnCzB,KAAA6N,mBAAiD,IAAIpM,EAAAA,QAGrDzB,KAAA8N,aAAgC,IAAIrM,EAAAA,QAGpCzB,KAAA+N,mBAAoC,IAAItM,EAAAA,QAExCzB,KAAAgO,kBAAsC,IAAIvM,EAAAA,QAE1CzB,KAAAiO,qBAA6C,IAAIxM,EAAAA,QAEjDzB,KAAAkO,gBAAmC,IAAIzM,EAAAA,QAEvCzB,KAAAmO,gBAAiC,IAAI1M,EAAAA,QAErCzB,KAAAoO,sBAAyC,IAAI3M,EAAAA,QAE7CzB,KAAAqO,2BAA8C,IAAI5M,EAAAA,QAElDzB,KAAAsO,sBAAyC,IAAI7M,EAAAA,QAE7CzB,KAAAuO,uBAA0C,IAAI9M,EAAAA,0GAzBrD3E,EAAA,CADC0R,EAAAA,4CAID1R,EAAA,CADC0R,EAAAA,mDAID1R,EAAA,CADC0R,EAAAA,6CAID1R,EAAA,CADC0R,EAAAA,mDAXUb,EAAe7Q,EAAA,CAJ3B2R,EAAAA,YACAnL,EAAAA,WAAW,CACVC,WAAY,UAEDoK,OJRb,SAAYvE,GACRA,EAAA,cAAA,mBACAA,EAAA,cAAA,iBACAA,EAAA,SAAA,WACAA,EAAA,WAAA,cACAA,EAAA,SAAA,WACAA,EAAA,KAAA,OACAA,EAAA,UAAA,aACAA,EAAA,aAAA,gBACAA,EAAA,MAAA,QACAA,EAAA,QAAA,UACAA,EAAA,OAAA,UACAA,EAAA,MAAA,QACAA,EAAA,KAAA,QACAA,EAAA,UAAA,YAdJ,CAAYA,IAAAA,EAAQ,KKAb,ICFKsF,EDECC,EAAyC,CACrDC,iBAAoB,2zBACpBC,eAAkB,ixDAClBC,SAAY,ikLACZC,YAAe,wTACfvB,SAAY,uQACZwB,KAAQ,8yBACRC,WAAc,syEACdC,cAAiB,oZACjBC,MAAS,k0BACTC,QAAW,y2EACXC,QAAW,okGACXC,MAAS,myPACTC,MAAS,g+BACTC,UAAa,yjNEKV,SAAAC,EAAoBC,GAAA1P,KAAA0P,WAAAA,EAJZ1P,KAAA2P,WAA+C,GAKnD3P,KAAK4P,UAAYjB,EACjB3O,KAAK6P,sBAVTrS,OAAAK,eAAW4R,EAAAxO,UAAA,YAAS,KAApB,WACI,OAAOjB,KAAK2P,4CAYTF,EAAAxO,UAAA6O,QAAP,SAAeC,GACX,OAAO/P,KAAK2P,WAAWI,EAAS7H,gBAG7BuH,EAAAxO,UAAA4O,aAAP,WACE,IAAK,IAAM5S,KAAO+C,KAAK4P,UACjB5P,KAAK4P,UAAU7E,eAAe9N,KAChC+C,KAAK2P,WAAW1S,EAAIiL,eAAiBlI,KAAK0P,WAAWM,wBAAwBhQ,KAAK4P,UAAU3S,+CAZlEgT,EAAAA,uIAbvBR,EAAgB3S,EAAA,CAH5BwG,EAAAA,WAAW,CACVC,WAAY,UAEDkM,mBC0EX,SAAAS,EACUC,EACAC,EACAC,EACAC,EACDC,GALT,IAAAxO,EAAA/B,KACUA,KAAAmQ,MAAAA,EACAnQ,KAAAoQ,iBAAAA,EACApQ,KAAAqQ,gBAAAA,EACArQ,KAAAsQ,cAAAA,EACDtQ,KAAAuQ,UAAAA,EAvEOvQ,KAAAwQ,MAAyBpH,EAElCpJ,KAAAwB,YAAsB,EAMtBxB,KAAAyQ,aAAuB,EA6CvBzQ,KAAA0Q,UAAW,EAQV1Q,KAAA2Q,cAAgB,EAEhB3Q,KAAA4Q,QAAU,GACV5Q,KAAA6Q,MAAwB,GAS9B7Q,KAAK6Q,MAAMtQ,KACTP,KAAKoQ,iBAAiBjC,gBAAgBjM,WAAU,WAC9CH,EAAKP,YAAa,KAEpBxB,KAAKoQ,iBAAiB/B,2BAA2BnM,WAAU,SAAC8I,GACtDjJ,EAAK6O,QAAQ,aAAcE,EAAAA,WAC7B/O,EAAK6O,QAAQG,QAAQ/F,GAErBjJ,EAAK6O,QAAQ,GAAK5F,EAEpBjJ,EAAKP,YAAa,MA8D1B,OAtIEhE,OAAAK,eAAWqS,EAAAjP,UAAA,SAAM,KA4CjB,WACE,OAAOjB,KAAK4Q,aA7Cd,SAAkBrS,GACZA,GAASA,EAAMjB,OAAS,IAC1B0C,KAAK4Q,QAAUrS,EACfyB,KAAKgR,cACLhR,KAAKqQ,gBAAgBY,kDAKlBf,EAAAjP,UAAAiQ,mBAAP,WADA,IAAAnP,EAAA/B,KAEEA,KAAK0Q,UAAW,EAChB1Q,KAAKmR,yBACLC,aAAapR,KAAKqR,cAClBrR,KAAKqR,aAAeC,YAAW,WAC7BvP,EAAK2O,UAAW,IACf,MAIER,EAAAjP,UAAAsQ,cAAP,WACEvR,KAAKwR,gBAIAtB,EAAAjP,UAAAwQ,cAAP,WACEzR,KAAKwR,gBAGAtB,EAAAjP,UAAAyQ,eAAP,SAAsBC,GACpB,OAAO3R,KAAKwR,eAAiBG,GAG/BnU,OAAAK,eAAWqS,EAAAjP,UAAA,eAAY,KAAvB,WACE,OAAOjB,KAAK2Q,mBAGd,SAAwBpS,GACtByB,KAAK2Q,cAAgBpS,EACrByB,KAAKmR,0DAwCPjB,EAAAjP,UAAAC,SAAA,aAGAgP,EAAAjP,UAAAS,YAAA,WACE1B,KAAK4R,cAAW7J,EAChB/H,KAAK6Q,MAAMlE,SAAQ,SAAAkF,GAAK,OAAAA,EAAEjQ,kBAGrBsO,EAAAjP,UAAA6Q,iBAAP,SAAwBH,GACtB3R,KAAKwR,aAAeG,GAGfzB,EAAAjP,UAAA8M,mBAAP,WACE/N,KAAKoQ,iBAAiBrC,mBAAmBtP,QAGpCyR,EAAAjP,UAAA8Q,YAAP,SAAmBC,GACjB,IAAI1N,EAAS,GAWb,OAVI0N,aAAiBlB,EAAAA,WAEjBxM,EADE0N,EAAMtO,SACCsO,EAAMtO,SAENsO,EAAMC,2BAESlK,IAAjBiK,EAAME,SACf5N,EAAS0N,EAAME,QAGVlS,KAAKsQ,cAAc6B,uBAAuB7N,IAG3C4L,EAAAjP,UAAA+P,YAAR,WAAA,IAAAjP,EAAA/B,KACMA,KAAK4Q,SACP5Q,KAAK4Q,QAAQjE,SAAQ,SAAC/O,GACfA,EAAEwU,cAAiBxU,EAAE8F,UACxB3B,EAAKoO,MAAMhN,mBAAmBvF,EAAEyU,YAAY,GAAOvT,MAAK,SAACG,GACvDrB,EAAEwU,aAAenT,SAOnBiR,EAAAjP,UAAAkQ,uBAAR,WACE,GAAInR,KAAKwR,cAAgB,GAAKxR,KAAKwR,cAAgBxR,KAAKsS,OAAOhV,OAAQ,CACrE,IAAMiV,EAAiBvS,KAAKwR,aAAexR,KAAK4R,SAASY,cAAcC,YACnEzS,KAAK4R,UAAY5R,KAAK4R,SAASY,gBACjCxS,KAAK4R,SAASY,cAAcE,WAAaH,8CArE9BtG,SACW0B,SACDgF,EAAAA,yBACF1C,EAAAA,oBACLR,KAlEpB3S,EAAA,CADC8V,EAAAA,UAAU,WAAY,CAAEC,KAAMC,EAAAA,6CAI/BhW,EAAA,CADCqE,EAAAA,2CAIDrE,EAAA,CADCqE,EAAAA,oCAUDrE,EAAA,CADCiW,EAAAA,aAAa,yDAWdjW,EAAA,CADCiW,EAAAA,aAAa,gDAMdjW,EAAA,CADCiW,EAAAA,aAAa,iDAmBdjW,EAAA,CADCkW,EAAAA,YAAY,kDAtDF9C,EAAsBpT,EAAA,CALlCsE,EAAAA,UAAU,CACTC,SAAU,qBACVC,SAAA,w+HAGW4O,MCdb+C,EAKE,SAAYC,EAAaC,GAHlBnT,KAAAkT,MAAgB,EAIrBlT,KAAKkT,MAAQA,EACblT,KAAKmT,oBAAsBA,IHP/B,SAAYzE,GACVA,EAAA,KAAA,KACAA,EAAA,OAAA,KACAA,EAAA,KAAA,OAHF,CAAYA,IAAAA,EAAY,SIIZ0E,eCiIV,SAAAC,EAAoBlD,EACAmD,EACAjD,EACDE,EACAgD,EACAC,GALnB,IAAAzR,EAAA/B,KAAoBA,KAAAmQ,MAAAA,EACAnQ,KAAAsT,UAAAA,EACAtT,KAAAqQ,gBAAAA,EACDrQ,KAAAuQ,UAAAA,EACAvQ,KAAAuT,gBAAAA,EACAvT,KAAAwT,gBAAAA,EA7EHxT,KAAAyT,KAAwBrK,EA2DjCpJ,KAAA0T,cAAe,EACf1T,KAAA2T,QAAS,EAET3T,KAAA4T,QAAS,EACT5T,KAAA6T,QAAS,EACT7T,KAAA8T,aAAuB,EACvB9T,KAAA+T,wBAAkC,EAGjC/T,KAAAgU,aAAuB,EAEvBhU,KAAA6Q,MAAwB,GAS9B7Q,KAAK6Q,MAAMtQ,KACTP,KAAKwT,gBAAgBzF,mBAAmB7L,WAAU,SAAC+R,GAC7ClS,EAAKmS,WAAW1B,eAClBzQ,EAAKmS,WAAW1B,cAAc2B,uBA+DxC,OArIE3W,OAAAK,eAAWwV,EAAApS,UAAA,MAAG,KAad,WACE,OAAOjB,KAAKoU,UAdd,SAAe7V,GACTA,IACEyB,KAAK8T,cACP9T,KAAK6T,QAAS,EACd7T,KAAKqU,YAAa,EAClBrU,KAAK8T,aAAc,EACnB9T,KAAKqQ,gBAAgBY,iBAEvBjR,KAAKoU,KAAO7V,EACZyB,KAAKsU,gDAQT9W,OAAAK,eAAWwV,EAAApS,UAAA,aAAU,KASrB,WACE,OAAOjB,KAAKgU,iBAVd,SAAsBzV,GACpByB,KAAKgU,YAAczV,EACnByB,KAAK+T,wBAAyB,EAC9B/T,KAAKqQ,gBAAgBY,iDAUvBzT,OAAAK,eAAWwV,EAAApS,UAAA,iBAAc,KAAzB,WACE,OAAOjB,KAAKqU,WAAarU,KAAKyT,KAAKc,aAAevU,KAAKyT,KAAKe,4CAG9DhX,OAAAK,eAAWwV,EAAApS,UAAA,cAAW,KAOtB,WACE,OAAOjB,KAAKyU,kBARd,SAAuBlW,GACrByB,KAAKyU,aAAelW,EACpByB,KAAK4T,OAAS5T,KAAKyU,eAAiB/F,EAAagG,KACjD1U,KAAK6T,OAAS7T,KAAKyU,eAAiB/F,EAAaiG,OACjD3U,KAAKqQ,gBAAgBY,iDAuCvBoC,EAAApS,UAAAC,SAAA,aAGAmS,EAAApS,UAAA2T,gBAAA,aAGAvB,EAAApS,UAAAS,YAAA,WACE1B,KAAK6Q,MAAMlE,SAAQ,SAAAkF,GAAK,OAAAA,EAAEjQ,iBACtB5B,KAAK6U,iBACP7U,KAAK6U,gBAAgBjT,cAEvB5B,KAAK8U,kBAAe/M,EACpB/H,KAAKkU,gBAAanM,EAClB/H,KAAK+U,sBAAmBhN,GAGnBsL,EAAApS,UAAAkB,YAAP,SAAmB6S,GACbA,EAAM9C,QACRlS,KAAKmQ,MAAMhO,YAAY6S,EAAM9C,SAI1BmB,EAAApS,UAAAgU,yBAAP,WACEjV,KAAK8T,aAAc,EACnB9T,KAAKqQ,gBAAgBY,iBAGhBoC,EAAApS,UAAAiU,eAAP,WACElV,KAAKqU,YAAcrU,KAAKqU,YAGZhB,EAAApS,UAAAqT,YAAd,gGACMtU,KAAK6U,iBACP7U,KAAK6U,gBAAgBjT,cAEvB5B,KAAK6U,gBAAkB7U,KAAKmQ,MAAMhE,sBAAsBjK,WAAU,SAAOiT,GAAa,OAAArX,EAAAiE,OAAA,OAAA,GAAA,wDAChFoT,GACFnV,KAAKmQ,MAAMpN,eAAe/C,KAAKoU,MAAMtV,MAAK,SAACsW,GACzCrT,EAAKqT,QAAUA,EACfrT,EAAK2R,aAAyC,MAA1B3R,EAAKqT,QAAQC,SAC7BtT,EAAK2R,eACP3R,EAAKuT,YAAc5G,EAAagG,MAElC3S,EAAK4R,YAAsC5L,IAA7BhG,EAAKqT,QAAQG,aAA0D,OAA7BxT,EAAKqT,QAAQG,YACrExT,EAAKyT,aAAezT,EAAKqT,QAAQK,qBACjC1T,EAAKoO,MAAM7N,qBAAqBP,EAAKqT,QAAQ7S,QAAQzD,MAAK,SAAC4W,GACzD,IAAMC,EAAmBD,EACzB3T,EAAK4T,iBAAmB,IAAI1C,EAAiB0C,EAAiBzC,MAAOyC,EAAiBxC,qBACtFpR,EAAKsO,gBAAgBY,mBAEvBlP,EAAKsO,gBAAgBY,oFAnEFhF,SACI2J,EAAAA,iBACMjD,EAAAA,yBACPlD,SACMvF,SACAyD,KA1EpC7Q,EAAA,CADC8V,EAAAA,UAAU,eAAgB,CAAEC,KAAMC,EAAAA,iDAInChW,EAAA,CADC8V,EAAAA,UAAU,aAAc,CAAEC,KAAMC,EAAAA,+CAIjChW,EAAA,CADC8V,EAAAA,UAAU,mBAAoB,CAAEC,KAAMC,EAAAA,qDAIvChW,EAAA,CADCqE,EAAAA,iCAbUkS,EAAoBvW,EAAA,CArChCsE,EAAAA,UAAU,CACTC,SAAU,mBACVC,SAAA,qhNAEAuU,WAAY,CACVC,EAAAA,QAAQ,mBAAoB,CAC1BC,EAAAA,MAAM,aAAcC,EAAAA,MAAM,CAACC,SAAY,QAASC,IAAO,IAAKC,KAAQ,IAAKC,MAAS,OAAQC,OAAU,UACpGN,EAAAA,MAAM,aAAcC,EAAAA,MAAM,CAACC,SAAY,IAAKC,IAAO,IAAKC,KAAQ,IAAKC,MAAS,IAAKC,OAAU,OAC7FC,EAAAA,WAAW,4BAA6BC,EAAAA,QAAQ,wBAElDT,EAAAA,QAAQ,gBAAiB,CACvBC,EAAAA,MAAM,aAAcC,EAAAA,MAAM,CAACC,SAAY,QAASC,IAAO,IAAKC,KAAQ,OACpEJ,EAAAA,MAAM,aAAcC,EAAAA,MAAM,CAACC,SAAY,WAAYC,IAAO,IAAKC,KAAQ,OACvEG,EAAAA,WAAW,4BAA6BC,EAAAA,QAAQ,wBAElDT,EAAAA,QAAQ,iBAAkB,CACxBC,EAAAA,MAAM,aAAcC,EAAAA,MAAM,CAACC,SAAY,QAASC,IAAO,IAAKM,MAAS,OACrET,EAAAA,MAAM,aAAcC,EAAAA,MAAM,CAACC,SAAY,IAAKC,IAAO,IAAKM,MAAS,OACjEF,EAAAA,WAAW,4BAA6BC,EAAAA,QAAQ,wBAElDT,EAAAA,QAAQ,wBAAyB,CAC/BC,EAAAA,MAAM,aAAcC,EAAAA,MAAM,CAACC,SAAY,QAASG,MAAS,QAASF,IAAO,IAAKM,MAAS,OACvFT,EAAAA,MAAM,aAAcC,EAAAA,MAAM,CAACC,SAAY,IAAKG,MAAS,IAAKF,IAAO,IAAKM,MAAS,OAC/EF,EAAAA,WAAW,4BAA6BC,EAAAA,QAAQ,wBAElDT,EAAAA,QAAQ,0BAA2B,CACjCC,EAAAA,MAAM,OAAQC,EAAAA,MAAM,CAACS,QAAW,IAAKC,QAAW,UAChDX,EAAAA,MAAM,OAAQC,EAAAA,MAAM,CAACU,QAAW,QAASD,QAAW,OACpDH,EAAAA,WAAW,gBAAiBC,EAAAA,QAAQ,8BAEtCT,EAAAA,QAAQ,mBAAoB,CAC1BC,EAAAA,MAAM,OAAQC,EAAAA,MAAM,CAACS,QAAW,OAChCV,EAAAA,MAAM,IAAKC,EAAAA,MAAM,CAACS,QAAW,OAC7BH,EAAAA,WAAW,YAAaC,EAAAA,QAAQ,otTAIzBlD,mBCtCX,SAAAsD,EAAmBpG,GAAAvQ,KAAAuQ,UAAAA,EARHvQ,KAAAyT,KAAwBrK,EAGjCpJ,KAAA4W,WAAqB,EAGrB5W,KAAA6W,UAA0B,GAInC,gDAFgCpH,KAL9B3S,EAAA,CADCqE,EAAAA,yCAIDrE,EAAA,CADCqE,EAAAA,yCAPUwV,EAAyB7Z,EAAA,CALrCsE,EAAAA,UAAU,CACTC,SAAU,wBACVC,SAAA,i9CAGWqV,mBCkCX,SAAAG,EACUC,EACA3G,GADApQ,KAAA+W,MAAAA,EACA/W,KAAAoQ,iBAAAA,EA5BHpQ,KAAAgX,cAAwB,EAwBvBhX,KAAAiX,UAAiC,GAmB3C,OAxCEzZ,OAAAK,eAAWiZ,EAAA7V,UAAA,WAAQ,KAiBnB,WACE,OAAOjB,KAAKiX,eAlBd,SAAoB1Y,GADpB,IAAAwD,EAAA/B,KAEMzB,IACEyB,KAAKkX,cAA4BnP,IAAjB/H,KAAKkX,QACnB3Y,EAAMjB,OAAS,GACjBiB,EAAMoO,SAAQ,SAACsH,GACTA,EAAEiD,UAAYnV,EAAKmV,SACrBnV,EAAKkV,UAAU1W,KAAK0T,MAK1BjU,KAAKiX,UAAY1Y,EAEnByB,KAAKgR,gDAeF8F,EAAA7V,UAAAkW,mBAAP,SAA0B/B,GACxBpV,KAAKoQ,iBAAiBvC,mBAAmBpP,KAAK2W,IAGxC0B,EAAA7V,UAAA+P,YAAR,WAAA,IAAAjP,EAAA/B,KACEA,KAAKiX,UAAUtK,SAAQ,SAACyK,GACjBA,EAAEpF,MAAMI,cACXrQ,EAAKgV,MAAM5T,mBAAmBiU,EAAEpF,MAAMK,YAAYvT,MAAK,SAAA3B,GAAK,OAAAia,EAAEpF,MAAMI,aAAejV,kDAXxE8O,SACW0B,KAlC5B7Q,EAAA,CADCqE,EAAAA,uCAIDrE,EAAA,CADCqE,EAAAA,qCAIDrE,EAAA,CADCqE,EAAAA,4CAIDrE,EAAA,CADCqE,EAAAA,sCAXU2V,EAAuBha,EAAA,CALnCsE,EAAAA,UAAU,CACTC,SAAU,sBACVC,SAAA,y8DAGWwV,mBCKX,SAAAO,KAKF,OAHEA,EAAApW,UAAAC,SAAA,aAPApE,EAAA,CADCqE,EAAAA,qCAIDrE,EAAA,CADCqE,EAAAA,sCALUkW,EAAeva,EAAA,CAL3BsE,EAAAA,UAAU,CACTC,SAAU,aACVC,SAAA,mVAGW+V,OJHb,SAAYjE,GACVA,EAAA,WAAA,aACAA,EAAA,WAAA,aAFF,CAAYA,IAAAA,EAAO,sBA0BjB,SAAAkE,IAPgBtX,KAAAuX,QAA0BnE,EAKnCpT,KAAAwX,WAAsBpE,EAAQqE,WAWvC,OAPEH,EAAArW,UAAAC,SAAA,aAGOoW,EAAArW,UAAAyW,UAAP,SAAiBC,GACf3X,KAAKwX,WAAaG,GAVpB7a,EAAA,CADCqE,EAAAA,uCAJUmW,EAAoBxa,EAAA,CAZhCsE,EAAAA,UAAU,CACTC,SAAU,mBACVC,SAAA,k3BAEAuU,WAAY,CACVC,EAAAA,QAAQ,cAAe,CACrBC,EAAAA,MAAM,OAAQC,EAAAA,MAAM,CAACS,QAAW,OAChCV,EAAAA,MAAM,IAAKC,EAAAA,MAAM,CAACS,QAAW,OAC7BH,EAAAA,WAAW,YAAaC,EAAAA,QAAQ,uRAIzBe,mBKTX,SAAAM,EACUC,GAAA7X,KAAA6X,sBAAAA,EAHF7X,KAAA8X,eAA4C,IAAIxQ,WAM3CsQ,EAAA3W,UAAA8W,WAAb,SAAwB7U,6FACf,MAAA,CAAA,EAAMlD,KAAKsU,YAAYpR,WAA9B,MAAA,CAAA,EAAOW,EAAArE,gBAGKoY,EAAA3W,UAAAqT,YAAd,SAA0BpR,0GACpBlD,KAAK8X,eAAehQ,IAAI5E,GAC1B,CAAA,EAAOlD,KAAK8X,eAAe1P,IAAIlF,IAD7B,CAAA,EAAA,UAGkB,MAAA,CAAA,EAAMlD,KAAK6X,sBAAsB5U,gBAAgBC,WAErE,OAFM8U,EAAcnU,EAAArE,OACpBQ,KAAK8X,eAAe3P,IAAIjF,EAAI8U,GAC5B,CAAA,EAAOA,oDAbsB/L,+GALtB2L,EAAa9a,EAAA,CAHzBwG,EAAAA,WAAW,CACVC,WAAY,UAEDqU,MCRbK,EAAA,WAAA,SAAAA,KAsBA,OApBgBA,EAAAC,mBAAd,SAAiCC,GAC/B,OAAQ,EAAIA,GAAO,GAGPF,EAAAG,kBAAd,SAAgCD,GAC9B,OAAQ,EAAIA,GAAO,GAGPF,EAAAI,YAAd,SAA0BF,GACxB,OAAQ,EAAIA,GAAO,GAGPF,EAAAK,kBAAd,SAAgCH,GAC9B,OAAQ,EAAIA,GAAO,GAGPF,EAAAM,WAAd,SAAyBJ,GACvB,OAAQ,GAAKA,GAAO,GAGxBF,EAtBA,gBCqCE,SAAAO,EACU9I,EACA+I,EACApI,GAFArQ,KAAA0P,WAAAA,EACA1P,KAAAyY,eAAAA,EACAzY,KAAAqQ,gBAAAA,EAVHrQ,KAAA4W,WAAqB,EAErB5W,KAAA0Y,UAAwB,GAgEjC,OAhFElb,OAAAK,eAAW2a,EAAAvX,UAAA,UAAO,KASlB,WACE,OAAOjB,KAAKyM,cAVd,SAAmBlO,GADnB,IAAAwD,EAAA/B,KAEMzB,IACFyB,KAAKyM,SAAWlO,EAChByB,KAAK2Y,aAAa7Z,MAAK,WACrBiD,EAAKsO,gBAAgBY,qDAwB3BuH,EAAAvX,UAAAC,SAAA,aAGQsX,EAAAvX,UAAA2X,sBAAR,WAAA,IAAA7W,EAAA/B,KACE,OAAO,IAAI7B,SAAQ,SAACC,EAAmBC,GACrC,IAAMwa,EAAoB,GACtB9W,EAAKqT,QAAQ0D,eACf/W,EAAK0W,eAAeV,WAAWhW,EAAKqT,QAAQ0D,gBAAgBha,MAAK,SAACkZ,GAChEA,EAAYa,MAAMlM,SAAQ,SAACoM,GACzB,GAAId,EAASG,kBAAkBW,EAAIC,aAAc,CAC/C,IAAMC,EAAoBlX,EAAK2N,WAAWwJ,SAASC,EAAAA,gBAAgBC,KAAML,EAAIzQ,MAC7EuQ,EAAMtY,KAAK0Y,OAGf7a,EAAQya,MACPQ,OAAM,WACPjb,EAAQ,OAGVA,EAAQya,OAKAL,EAAAvX,UAAAqY,qBAAd,oHAC4B,MAAA,CAAA,EAAMtZ,KAAK4Y,uCAA/BC,EAAoBU,EAAA/Z,QAChBlC,OAAS,IACjBuG,EAAA7D,KAAK0Y,WAAUnY,KAAIxB,MAAA8E,EAAAhD,EAAIgY,IAErB7Y,KAAKoV,QAAQyD,OACf7Y,KAAKoV,QAAQyD,MAAMlM,SAAQ,SAACoM,GAC1B,GAAId,EAASG,kBAAkBW,EAAIC,aAAc,CAC/C,IAAMC,EAAoBlX,EAAK2N,WAAWwJ,SAASC,EAAAA,gBAAgBC,KAAML,EAAIzQ,MAC7EvG,EAAK2W,UAAUnY,KAAK0Y,mBAMdT,EAAAvX,UAAA0X,WAAd,qGAEE,OADA3Y,KAAK0Y,UAAUpb,OAAS,EACxB,CAAA,EAAM0C,KAAKsZ,+BAQX,OARAzV,EAAArE,OAC8B,IAA1BQ,KAAK0Y,UAAUpb,SACb0C,KAAKoV,QAAQoE,sBACfxZ,KAAK0Y,UAAUnY,KAAKP,KAAKoV,QAAQoE,uBACxBxZ,KAAKoV,QAAQqE,aACtBzZ,KAAK0Y,UAAUnY,KAAKP,KAAKoV,QAAQqE,cAGrC,CAAA,oDAvDoBxJ,EAAAA,oBACI2H,SACCjF,EAAAA,qBAxB3B7V,EAAA,CADCqE,EAAAA,qCAeDrE,EAAA,CADCqE,EAAAA,yCAhBUqX,EAA8B1b,EAAA,CAL1CsE,EAAAA,UAAU,CACTC,SAAU,8BACVC,SAAA,2kBAGWkX,MCVAkB,EAAmC,IAAIpS,IAAI,CACtD,CAAC,YAAa,kBACd,CAAC,WAAY,YACb,CAAC,UAAW,iBACZ,CAAC,cAAe,eAChB,CAAC,WAAY,YACb,CAAC,QAAS,SACV,CAAC,gBAAiB,iBAClB,CAAC,SAAU,UACX,CAAC,QAAS,wBA2BV,SAAAqS,IANO3Z,KAAA4W,WAAqB,EAErB5W,KAAA4Z,WAA6C,GAqBtD,OAjCEpc,OAAAK,eAAW8b,EAAA1Y,UAAA,UAAO,KAKlB,WACE,OAAOjB,KAAKyM,cANd,SAAmBlO,GACjByB,KAAKyM,SAAWlO,EAChByB,KAAK6Z,sDAgBPF,EAAA1Y,UAAAC,SAAA,aAGQyY,EAAA1Y,UAAA4Y,mBAAR,WAAA,IAAA9X,EAAA/B,KACEA,KAAK4Z,WAAWtc,OAAS,EACpB0C,KAAKyM,UAGViN,EAAY/M,SAAQ,SAACpO,EAAetB,GAC9B8E,EAAKqT,QAAQrK,eAAe9N,IAC9B8E,EAAK6X,WAAWrZ,KAAK,CAACtD,IAAKsB,EAAOA,MAAOwD,EAAKqT,QAAQnY,SA5B5DH,EAAA,CADCqE,EAAAA,qCAWDrE,EAAA,CADCqE,EAAAA,yCAZUwY,EAA0B7c,EAAA,CALtCsE,EAAAA,UAAU,CACTC,SAAU,yBACVC,SAAA,4zBAGWqY,mBCXX,SAAAG,EAAoB1P,GAAApK,KAAAoK,mBAAAA,EAYtB,OAVE0P,EAAA7Y,UAAA8Y,UAAA,SAAUxb,EAAe8J,EAAgC1D,SACvD,YADuB,IAAA0D,IAAAA,GAAA,QAAgC,IAAA1D,IAAAA,EAAA,IAClDpG,GAGLoG,EAAUA,GAAoB,GACzBqV,MAAMC,QAAQtV,KACjBA,EAAU,CAACA,KAENd,EAAA7D,KAAKoK,oBAAmBhC,IAAGrJ,MAAA8E,EAAAhD,EAAA,CAACtC,EAAO8J,GAAmB1D,KANpD,6CAJ6BsC,KAF7B6S,EAAYhd,EAAA,CAJxBod,EAAAA,KAAK,CACJC,KAAM,cAGKL,mBCwBX,SAAAM,EACUC,EACAtD,EACApH,GAFA3P,KAAAqa,cAAAA,EACAra,KAAA+W,MAAAA,EACA/W,KAAA2P,WAAAA,EAlBM3P,KAAAyT,KAAwBrK,EAoBtCpJ,KAAKsa,SAAWta,KAAK2P,WAAWG,QAAQ9P,KAAKyT,KAAK8G,OAKtD,OAtBE/c,OAAAK,eAAWuc,EAAAnZ,UAAA,mBAAgB,KAA3B,SAA4B1C,GACtBA,IACFyB,KAAKmT,oBAAsB5U,EAAM4U,oBAC7BnT,KAAKmT,oBAAoB7V,OAAS,GAAqC,MAAhC0C,KAAKmT,oBAAoB,KAClEnT,KAAKmT,oBAAsBnT,KAAKqa,cAAcN,UAAU,0DAgB9DK,EAAAnZ,UAAAC,SAAA,sDAPyB4Y,SACR7N,SACKwD,KAftB3S,EAAA,CADCqE,EAAAA,8CAJUiZ,EAAwBtd,EAAA,CANpCsE,EAAAA,UAAU,CACTC,SAAU,uBACVC,SAAA,ibAEAkZ,UAAW,CAAEV,wqBAEFM,mBCYX,SAAAK,EAAoB1D,EAAsCpH,GAAtC3P,KAAA+W,MAAAA,EAAsC/W,KAAA2P,WAAAA,EAZ1C3P,KAAAyT,KAAwBrK,EAatCpJ,KAAKsa,SAAWta,KAAK2P,WAAWG,QAAQ9P,KAAKyT,KAAKiH,WAMtD,OAhBEld,OAAAK,eAAW4c,EAAAxZ,UAAA,mBAAgB,KAA3B,SAA4B1C,GACtBA,IACFyB,KAAK2a,cAAgBpc,EAAM2U,wCAW/BuH,EAAAxZ,UAAAC,SAAA,sDAJ2B+K,SAA2CwD,KATtE3S,EAAA,CADCqE,EAAAA,8CAJUsZ,EAAqB3d,EAAA,CALjCsE,EAAAA,UAAU,CACTC,SAAU,oBACVC,SAAA,6+CAGWmZ,mBCqBX,SAAAG,IAJO5a,KAAA6a,cAA0B,GASnC,OA5BErd,OAAAK,eAAW+c,EAAA3Z,UAAA,UAAO,KAYlB,WACE,OAAOjB,KAAK8a,cAbd,SAAmBvc,GAKjB,GAJAyB,KAAK8a,SAAWvc,EACZyB,KAAK8a,UAAY9a,KAAK8a,SAAS/P,eAAe,cAChD/K,KAAK+a,WAA2C,UAA9B/a,KAAK8a,SAAmB,SAAgB,QAA+B,QAApB9a,KAAK+a,WAAuB,UAAY,IAE3G/a,KAAK8a,UAAY9a,KAAK8a,SAAS/P,eAAe,gBAChD,IAAK,IAAInN,EAAI,EAAGA,EAAIoC,KAAK8a,SAAuB,aAAExd,OAAQM,IACxDoC,KAAK6a,cAActa,KAAKP,KAAK8a,SAAuB,aAAEld,qCAkB5Dgd,EAAA3Z,UAAAC,SAAA,aAzBApE,EAAA,CADCqE,EAAAA,qCAkBDrE,EAAA,CADCkW,EAAAA,YAAY,2CAnBF4H,EAAuB9d,EAAA,CALnCsE,EAAAA,UAAU,CACTC,SAAU,sBACVC,SAAA,6sBAGWsZ,mBC6BX,SAAAI,EAAoB3K,GAAArQ,KAAAqQ,gBAAAA,EALbrQ,KAAAib,eAAyB,EAGxBjb,KAAAkb,eAAyB,EAiCnC,OAxDE1d,OAAAK,eAAWmd,EAAA/Z,UAAA,UAAO,KAKlB,WACE,OAAOjB,KAAKmb,cANd,SAAmB5c,GACjByB,KAAKmb,SAAW5c,EAChByB,KAAKob,8CAQP5d,OAAAK,eAAWmd,EAAA/Z,UAAA,eAAY,KAAvB,SAAwB1C,GACtByB,KAAKkb,cAAgB3c,EACrByB,KAAKob,8CAePJ,EAAA/Z,UAAAC,SAAA,aAGQ8Z,EAAA/Z,UAAAma,WAAR,WACMpb,KAAKmb,WACPnb,KAAKqb,WAAarb,KAAKsb,SAAStb,KAAKmb,SAASI,gBAC1Cvb,KAAKkb,eACPlb,KAAKwb,UAAYxb,KAAKmb,SAASM,gBAAkBzb,KAAKmb,SAASM,gBAAkBzb,KAAKmb,SAASO,cAC/F1b,KAAK2b,UAAY3b,KAAKmb,SAASM,gBAAkB,QAAU,OAC3Dzb,KAAK4b,aAAU7T,IAEf/H,KAAKwb,UAAYxb,KAAKmb,SAASU,qBAAuB7b,KAAKmb,SAASU,qBAAuB7b,KAAKmb,SAASM,gBACzGzb,KAAK2b,UAAY3b,KAAKmb,SAASU,qBAAuB,MAAQ,QAC9D7b,KAAK4b,QAAU5b,KAAKmb,SAASU,qBAAuB7b,KAAKmb,SAASM,qBAAkB1T,EACpF/H,KAAK8b,QAAU9b,KAAKmb,SAASU,qBAAuB,SAAW,IAEjE7b,KAAKqQ,gBAAgBY,kBAIjB+J,EAAA/Z,UAAAqa,SAAR,SAAiBjQ,GACf,OAAQA,GACN,IAAK,MAEL,QACE,MAAO,+CA3BwBsH,EAAAA,qBAzBrC7V,EAAA,CADCqE,EAAAA,qCAWDrE,EAAA,CADCqE,EAAAA,0CAZU6Z,EAAqBle,EAAA,CALjCsE,EAAAA,UAAU,CACTC,SAAU,oBACVC,SAAA,24BAGW0Z,mBC+CX,SAAAe,EACSxL,EACCyL,EACA5L,GAFDpQ,KAAAuQ,UAAAA,EACCvQ,KAAAgc,uBAAAA,EACAhc,KAAAoQ,iBAAAA,EA3CMpQ,KAAAyT,KAAwBrK,EASjCpJ,KAAA0T,cAAwB,EAGxB1T,KAAA8T,aAAuB,EAIvB9T,KAAAic,YAAsB,EAYtBjc,KAAAkc,mBAAyC,IAAIC,EAAAA,aAG7Cnc,KAAAoc,eAAuC,IAAID,EAAAA,aAG3Cnc,KAAAqc,gBAAwC,IAAIF,EAAAA,aAE5Cnc,KAAAsc,iBAA2B,EAE1Btc,KAAAuc,UAAY,EAgDtB,OAnEE/e,OAAAK,eAAWke,EAAA9a,UAAA,WAAQ,KAInB,WACE,OAAOjB,KAAKuc,eALd,SAAoBhe,GAClByB,KAAKuc,UAAYC,KAAKC,IAAI,EAAGle,oCA0B/Bwd,EAAA9a,UAAAC,SAAA,aAGA6a,EAAA9a,UAAAS,YAAA,WACE1B,KAAK0c,qBAAkB3U,GAGZgU,EAAA9a,UAAA0b,qBAAb,SAAkCC,qGACO,OAAvCrD,GAAA1V,EAAA7D,KAAKoQ,iBAAiBxC,aAAYnP,KAAK,CAAA,EAAMuB,KAAK6c,0BAA0B,CAACzH,QAASpV,KAAKoV,QAASwH,SAAUA,mBAA9GrD,EAAAxa,MAAA8E,EAAA,CAAuCiZ,EAAAtd,qBAG5Buc,EAAA9a,UAAA8b,sBAAb,SAAmCH,qGACO,OAAxCrD,GAAA1V,EAAA7D,KAAKoQ,iBAAiBtC,cAAarP,KAAK,CAAA,EAAMuB,KAAK6c,0BAA0B,CAACzH,QAASpV,KAAKoV,QAASwH,SAAUA,mBAA/GrD,EAAAxa,MAAA8E,EAAA,CAAwCiZ,EAAAtd,qBAG5Buc,EAAA9a,UAAA4b,0BAAd,SAAwCzH,gHAChC4H,EACJ,CAACza,OAAQ,EAAG0a,WAAY,EAAGC,aAAc,GAAIN,SAAU,EAAGO,YAAa,KAC5DF,WAAa7H,EAAQA,QAAQ7S,OAC1Cya,EAAaE,aAAe,GAC5BF,EAAaJ,SAAWxH,EAAQwH,SACC,MAA7BxH,EAAQA,QAAQC,SAAhB,CAAA,EAAA,GACuB,CAAA,EAAMrV,KAAKgc,uBAAuBpZ,oCAI/B,OAJtBwa,EAAmBvZ,EAAArE,OACnB6d,EAAqBC,KAAKC,MAAMH,GACtCJ,EAAaza,OAAS8a,EAAmBtS,eAAe,qBAAuBsS,EAAsC,kBAAIA,EAA2B,OACpJL,EAAaE,aAAeG,EACA,CAAA,EAAMrd,KAAKgc,uBAAuBlZ,uBAAuBka,EAAaza,uBAA5Fib,EAAsB3Z,EAAArE,UAE1Bwd,EAAaG,YAAcG,KAAKC,MAAMC,iBAIZ,OAD5BR,EAAaza,OAAS6S,EAAQA,QAAQ7S,OACV,CAAA,EAAMvC,KAAKgc,uBAAuBlZ,uBAAuBka,EAAaza,iBAA5Fib,EAAsB3Z,EAAArE,UAE1Bwd,EAAaG,YAAcG,KAAKC,MAAMC,qBAG1C,MAAA,CAAA,EAAOF,KAAKG,UAAUT,qDA1CJvN,SACcxD,SACN0B,KAxC5B7Q,EAAA,CADC8V,EAAAA,UAAU,kBAAmB,CAAEC,KAAMC,EAAAA,oDAItChW,EAAA,CADCqE,EAAAA,uCAIDrE,EAAA,CADCqE,EAAAA,4CAIDrE,EAAA,CADCqE,EAAAA,2CAKDrE,EAAA,CAFCkW,EAAAA,YAAY,qBACZ7R,EAAAA,0CAIDrE,EAAA,CADCqE,EAAAA,sCAUDrE,EAAA,CADC0R,EAAAA,mDAID1R,EAAA,CADC0R,EAAAA,+CAID1R,EAAA,CADC0R,EAAAA,gDAnCUuN,EAAyBjf,EAAA,CALrCsE,EAAAA,UAAU,CACTC,SAAU,wBACVC,SAAA,+7EAGWya,oBCqBX,SAAA2B,EACU/N,EACAU,GADArQ,KAAA2P,WAAAA,EACA3P,KAAAqQ,gBAAAA,EAvBMrQ,KAAA2d,KAA4BjP,EAC5B1O,KAAAwQ,MAAyBpH,EAYlCpJ,KAAA4d,YAA0C,IAAIzB,EAAAA,aAG9Cnc,KAAA6d,kBAAgD,IAAI1B,EAAAA,aASzDnc,KAAK8d,SAAW9d,KAAK2P,WAAWG,QAAQ9P,KAAKwQ,MAAMkE,MACnD1U,KAAK+d,WAAa/d,KAAK2P,WAAWG,QAAQ9P,KAAKwQ,MAAMmE,QAazD,OAVE+I,EAAAzc,UAAAC,SAAA,aAGOwc,EAAAzc,UAAA+c,gBAAP,SAAuBL,GACrB3d,KAAKie,YAAcN,EACnB3d,KAAK6d,kBAAkBpf,KAAKuB,KAAKie,aACjCje,KAAK4d,YAAYnf,KAAKuB,KAAKie,aAC3Bje,KAAKqQ,gBAAgBY,0DAdDxB,SACKkD,EAAAA,qBAnB3B7V,EAAA,CADCqE,EAAAA,sCAIDrE,EAAA,CADCqE,EAAAA,sCAIDrE,EAAA,CADCqE,EAAAA,2CAIDrE,EAAA,CADC0R,EAAAA,4CAID1R,EAAA,CADC0R,EAAAA,kDAjBUkP,EAA4B5gB,EAAA,CALxCsE,EAAAA,UAAU,CACTC,SAAU,4BACVC,SAAA,o7BAGWoc,oBCkEX,SAAAQ,EACUC,EACAhX,EACAgJ,EACAE,EACAD,EACAlE,GANV,IAAAnK,EAAA/B,KACUA,KAAAme,YAAAA,EACAne,KAAAmH,WAAAA,EACAnH,KAAAmQ,MAAAA,EACAnQ,KAAAqQ,gBAAAA,EACArQ,KAAAoQ,iBAAAA,EACApQ,KAAAkM,iBAAAA,EA9BHlM,KAAA4N,YAAoC,IAAIuO,EAAAA,aAGxCnc,KAAAmU,iBAAuC,IAAIgI,EAAAA,aAG3Cnc,KAAA6N,mBAAsD,IAAIsO,EAAAA,aAG1Dnc,KAAAsO,sBAA8C,IAAI6N,EAAAA,aAGlDnc,KAAAgO,kBAA2C,IAAImO,EAAAA,aAG/Cnc,KAAAiO,qBAAkD,IAAIkO,EAAAA,aAGtDnc,KAAA8N,aAAqC,IAAIqO,EAAAA,aAEzCnc,KAAAoe,aAAc,EAEbpe,KAAA6Q,MAAwB,GAgB9B7Q,KAAK6Q,MAAMtQ,KACTP,KAAKkM,iBAAiB7B,eAAenI,WAAU,SAAAmc,GAAU,OAAAtc,EAAKuc,sBAAsBD,MAEpFre,KAAKoQ,iBAAiBxC,YAAY1L,WAAU,SAAA6B,GAAQ,OAAAhC,EAAK6L,YAAY2Q,KAAKxa,MAC1E/D,KAAKoQ,iBAAiBtC,aAAa5L,WAAU,SAAA6B,GAAQ,OAAAhC,EAAK+L,aAAayQ,KAAKxa,MAC5E/D,KAAKoQ,iBAAiBvC,mBAAmB3L,WAAU,SAAAkT,GAAW,OAAArT,EAAK8L,mBAAmB0Q,KAAKnJ,MAC3FpV,KAAKoQ,iBAAiB9B,sBAAsBpM,WAAU,SAAAsc,GAAQ,OAAAzc,EAAK0c,0BAA0BD,MAC7Fxe,KAAKoQ,iBAAiBpC,kBAAkB9L,WAAU,SAAAkT,GAAW,OAAArT,EAAKiM,kBAAkBuQ,KAAKnJ,MACzFpV,KAAKoQ,iBAAiBnC,qBAAqB/L,WAAU,SAAAgS,GAAc,OAAAnS,EAAKkM,qBAAqBsQ,KAAKrK,OAiCxG,OAjGE1W,OAAAK,eAAWqgB,EAAAjd,UAAA,WAAQ,KAanB,WACE,OAAOjB,KAAKuK,eAdd,SAAoBhM,GAClB,GAAIA,EAAO,CACT,IAAIkM,OAAQ,EAEVA,EADmB,iBAAVlM,EACE+e,KAAKC,MAAMhf,GAEXA,EAEbyB,KAAKkM,iBAAiBrB,yBAAyBJ,qCA4DnDyT,EAAAjd,UAAAyd,YAAA,SAAYC,GACV3e,KAAKqQ,gBAAgBY,iBAGvBiN,EAAAjd,UAAAS,YAAA,WACE1B,KAAK6Q,MAAMlE,SAAQ,SAAAkF,GAAK,OAAAA,EAAEjQ,kBAGpBsc,EAAAjd,UAAAqd,sBAAR,SAA8BD,GACxBA,IACFre,KAAKoe,aAAc,EACnBpe,KAAK4e,oBAIDV,EAAAjd,UAAAwd,0BAAR,SAAkCD,GAChCxe,KAAKsO,sBAAsB7P,KAAK+f,IAIpBN,EAAAjd,UAAA2d,gBAAd,gGACE5e,KAAKmQ,MAAMtD,mCAEXyE,YAAW,WACTvP,EAAKsO,gBAAgBY,uEAjDFhK,SACDzD,SACLyI,SACU0G,EAAAA,yBACChF,SACAzD,KAnD5BpN,EAAA,CADCqE,EAAAA,mCAIDrE,EAAA,CADCqE,EAAAA,sCAmBDrE,EAAA,CADC0R,EAAAA,4CAID1R,EAAA,CADC0R,EAAAA,iDAID1R,EAAA,CADC0R,EAAAA,mDAID1R,EAAA,CADC0R,EAAAA,sDAID1R,EAAA,CADC0R,EAAAA,kDAID1R,EAAA,CADC0R,EAAAA,qDAID1R,EAAA,CADC0R,EAAAA,6CAzCU0P,EAAoBphB,EAAA,CANhCsE,EAAAA,UAAU,CACTC,SAAU,mBACVC,SAAA,4EAEAud,cAAeC,EAAAA,kBAAkBC,wBAEtBb,oBCCX,SAAAc,EACU5O,GAAApQ,KAAAoQ,iBAAAA,EA6BZ,OA9CE5S,OAAAK,eAAWmhB,EAAA/d,UAAA,UAAO,KAQlB,WACE,OAAOjB,KAAKyM,cATd,SAAmBlO,GACjByB,KAAKyM,SAAWlO,EACZyB,KAAKyM,WACPzM,KAAKyZ,YAAczZ,KAAKoV,QAAQoE,sBAChCxZ,KAAKif,wDAgBTD,EAAA/d,UAAAC,SAAA,aAGO8d,EAAA/d,UAAAie,WAAP,WACElf,KAAKoQ,iBAAiB7B,uBAAuB9P,KAAK,IAG5CugB,EAAA/d,UAAAge,oBAAR,WAAA,IAAAld,EAAA/B,KAEEA,KAAKyZ,YAAc,GAEfzZ,KAAKoV,QAAQyD,OAAS7Y,KAAKoV,QAAQyD,MAAMvb,OAAS,IACpD0C,KAAKoV,QAAQyD,MAAMlM,SAAQ,SAACoM,GACtBd,EAASC,mBAAmBa,EAAIC,eAClCjX,EAAK0X,aAAeV,EAAIzQ,SAI5BtI,KAAKyZ,YAAczZ,KAAKyZ,YAAY9U,QAAQ,aAAc,IACtD3E,KAAKyZ,YAAYnc,OAAS,MAC5B0C,KAAKyZ,YAAczZ,KAAKyZ,YAAYxR,OAAO,EAAG,KAAO,oDAvB/B0F,KAjB5B7Q,EAAA,CADCqE,EAAAA,qCAFU6d,EAAqCliB,EAAA,CALjDsE,EAAAA,UAAU,CACTC,SAAU,qCACVC,SAAA,8rBAGW0d,oBCsBX,SAAAG,EACU/O,GADV,IAAArO,EAAA/B,KACUA,KAAAoQ,iBAAAA,EArBHpQ,KAAAof,gBAA0B,EAK1Bpf,KAAAqf,KAAc,GAabrf,KAAA6Q,MAAwB,GAK9B7Q,KAAK6Q,MAAMtQ,KACTP,KAAKoQ,iBAAiB7B,uBAAuBrM,WAAU,SAACyP,GACtD5P,EAAKud,UAAU3N,GACf5P,EAAKwd,WAAW/M,cAAcgN,eAAe,CAAEC,SAAU,eAoCjE,OApDEjiB,OAAAK,eAAIshB,EAAAle,UAAA,UAAO,KAAX,SAAY1C,GACNA,IACFyB,KAAK0f,cAAgBnhB,EACrByB,KAAK2f,aACL3f,KAAKsf,UAAU,qCAiBnBH,EAAAle,UAAAS,YAAA,WACE1B,KAAK6Q,MAAMlE,SAAQ,SAAAkF,GAAK,OAAAA,EAAEjQ,kBAGrBud,EAAAle,UAAAqe,UAAP,SAAiBM,GACf5f,KAAK6f,UAAYD,EACjB5f,KAAK8f,aAAaF,IAGbT,EAAAle,UAAA6e,aAAP,SAAoBF,GACd5f,KAAKuf,WAAW/M,cAAcuN,SAASziB,OAAS,QACOyK,IAArD/H,KAAKuf,WAAW/M,cAAcuN,SAASH,KACzC5f,KAAKof,gBAAkBpf,KAAKuf,WAAW/M,cAAcuN,SAASH,GAAUI,eAKtEb,EAAAle,UAAA0e,WAAR,WACE3f,KAAKqf,KAAK9e,KAAK,CAAE0f,MAAO,gBACxBjgB,KAAKqf,KAAK9e,KAAK,CAAE0f,MAAO,kBAEalY,IAAjC/H,KAAK0f,cAAc7I,WAA2B7W,KAAK0f,cAAc7I,UAAUvZ,OAAS,GACtF0C,KAAKqf,KAAK9e,KAAK,CAAE0f,MAAO,mBAGSlY,IAA/B/H,KAAK0f,cAAcQ,SAAyBlgB,KAAK0f,cAAcQ,QAAQ5iB,OAAS,GAClF0C,KAAKqf,KAAK9e,KAAK,CAAE0f,MAAO,sDApCAtS,KAlB5B7Q,EAAA,CADC8V,EAAAA,UAAU,gDAQX9V,EAAA,CADCqE,EAAAA,qCAZUge,EAAwBriB,EAAA,CALpCsE,EAAAA,UAAU,CACTC,SAAU,wBACVC,SAAA,y1EAGW6d,oBCFX,SAAAgB,EACUjU,GAAAlM,KAAAkM,iBAAAA,SAIGiU,EAAAlf,UAAAmf,cAAb,8EACE,MAAA,CAAA,EAAOpgB,KAAKkM,iBAAiB1B,sEALHN,+GAHjBiW,EAAqBrjB,EAAA,CAHjCwG,EAAAA,WAAW,CACVC,WAAY,UAED4c,eCoCGC,GAAcC,GAE5B,OADU,WAAM,OAAAA,EAAQD,mCA8D1B,SAAAE,KACA,OADaA,EAAiBxjB,EAAA,CA1D7ByjB,EAAAA,SAAS,CACRC,QAAS,CAEPC,EAAAA,aACAC,EAAAA,aACAC,EAAAA,WACAC,EAAAA,mBACAC,EAAAA,gBACAC,EAAAA,kBACAC,EAAAA,aACAC,EAAAA,sBACAC,EAAAA,WACAC,EAAAA,qBACAC,EAAAA,uBACAC,EAAAA,mBAEFC,QAAS,CAACC,EAAAA,wBACVC,aAAc,CACZrD,GACA7K,EACAnD,EACAlP,EACA2V,EACAG,EACAO,EACAC,EACAkB,EACAmB,EACAS,EACAK,EACAG,EACAI,EACAe,EACAoD,GACArF,EACA4D,GACAsB,IAEFwC,gBAAiB,CACftD,IAEF1D,UAAW,CACTtQ,EACA+B,EACA1K,EACAkO,EACA,CACEgS,QAASC,EAAAA,gBACTC,WAAYvB,GACZwB,KAAM,CAACzB,IACP0B,OAAO,IAGXC,QAAS,CAAC5D,IACV6D,UAAW,CACT7D,OAGSoC","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\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);\r\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); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\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","import { Component, Input, OnInit } from '@angular/core';\nimport { ArticleFullObject } from '@colijnit//ioneconnector/build/model/article-full-object';\n\n@Component({\n selector: 'app-product-description',\n templateUrl: './product-description.component.html',\n styleUrls: ['./product-description.component.scss']\n})\nexport class ProductDescriptionComponent implements OnInit {\n\n @Input()\n public article: ArticleFullObject;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { Connector } from '@colijnit//ioneconnector';\r\nimport { Options } from '@colijnit//ioneconnector/build/model/options';\r\nimport { SuperArticleImage } from '@colijnit//ioneconnector/build/model/super-article-image';\r\nimport { TurnoverGroupImage } from '@colijnit//ioneconnector/build/model/turnover-group-image';\r\nimport { ArticleGroupImage } from '@colijnit//ioneconnector/build/model/article-group-image';\r\nimport { ArticleFullObject } from '@colijnit//ioneconnector/build/model/article-full-object';\r\nimport { SuperArticle } from '@colijnit/ioneconnector/build/model/super-article';\r\nimport { ConfiguratorStatisticsEnvironment } from '@colijnit/ioneconnector/build/model/configurator-statistics-environment';\r\n\r\n// Sole responsibility is simply to wrap around a colijn.Connector to create a stable inner interface to the library in a 1:1 method way.\r\n// Only to be used by the IOneControllerService.\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class IOneConnectorAdapterService implements OnDestroy {\r\n\r\n public readonly showLoader: Subject<boolean> = new Subject<boolean>();\r\n\r\n public connector?: Connector;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.connector.showLoader.unsubscribe();\r\n }\r\n\r\n public initConnector(options: Options): void {\r\n this.connector = new Connector(options);\r\n options.session = this.connector.session;\r\n this.connector.showLoader.subscribe(value => this.showLoader.next(value));\r\n }\r\n\r\n public setInstance(instanceId: string): void {\r\n this.connector.setInstanceToConfigure(instanceId, false);\r\n }\r\n\r\n public getDeliveryPrognosis(goodId: number): Promise<any> {\r\n return this.connector.getDeliveryPrognosisForArticle(goodId);\r\n }\r\n\r\n public getArticleGroupImages(): Promise<ArticleGroupImage[]> {\r\n return this.connector.getArticleGroupImages();\r\n }\r\n\r\n public getTurnoverGroupImages(): Promise<TurnoverGroupImage[]> {\r\n return this.connector.getTurnoverGroupImages();\r\n }\r\n\r\n public getSuperArticleImages(): Promise<SuperArticleImage[]> {\r\n return this.connector.getSuperArticleImages();\r\n }\r\n\r\n public getJsonConfiguredArticles(configuratorStatistics?: ConfiguratorStatisticsEnvironment): Promise<void> {\r\n return this.connector.getJsonConfiguredArticles(configuratorStatistics);\r\n }\r\n\r\n public getJsonArticleFlatTree(goodId: number): Promise<void> {\r\n return this.connector.getJsonArticleFlatTree(goodId);\r\n }\r\n\r\n public getFullArticle(skuOrId: string): Promise<ArticleFullObject> {\r\n return this.connector.getFullArticle(skuOrId);\r\n }\r\n\r\n public getSuperArticle(id: string): Promise<SuperArticle> {\r\n return this.connector.getSuperArticle(id);\r\n }\r\n\r\n public getDocumentContent(docId: number, thumbnail: boolean = true): Promise<any> {\r\n return this.connector.getDocumentContent(docId, thumbnail);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class JsonUtilsService {\r\n\r\n public async readJsonFile(filePath: string): Promise<any> {\r\n try {\r\n const response = await fetch(filePath);\r\n if (!response.ok) {\r\n return null;\r\n } else {\r\n return response.json();\r\n }\r\n } catch (e) {\r\n console.error('Error getting file:', e.message);\r\n return '';\r\n }\r\n }\r\n}\r\n","\r\n// Static utility functions holder related to strings.\r\nimport { ArticleFullObject } from '@colijnit/ioneconnector/build/model/article-full-object';\r\nimport { ArticleQuantity } from '../model/article-quantity.model';\r\n\r\nexport class StringUtils {\r\n\r\n /**\r\n * Returns a new string where given placeholder in given source string are replaced by given replacement texts.\r\n *\r\n * Example usage:\r\n *\r\n * source = \"ABCDABCD\"\r\n * placeholder = \"BC\"\r\n * replacementTexts = \"Z\", \"Z\" (REST arguments)\r\n * OUTPUT = \"AZDAZD\"\r\n *\r\n * @param {string} source\r\n * @param {string} placeholder\r\n * @param {string} replacementTexts If only one is given, this function replaces all placeholders with that single replacementText.\r\n * If more are given, placeholders without a corresponding replacementText will remain their original placeholder characters.\r\n */\r\n public static ReplaceOccurrencesIn(source: string, placeholder: string, ...replacementTexts: string[]): string {\r\n // parameter guards\r\n if (!(source)) {\r\n return undefined;\r\n }\r\n if (!placeholder || replacementTexts.length === 0) {\r\n return source;\r\n }\r\n let outString: string = source;\r\n // one replacementText means replace for all\r\n if (replacementTexts.length === 1) {\r\n // \"g\" is the g flag to replace globally\r\n outString = outString.replace(new RegExp(this._escapeRegExp(placeholder), \"g\"), replacementTexts[0]);\r\n } else {\r\n // replace occurence i by replacementTexts[i], one at a time in loop (there might be a faster way..)\r\n for (let i: number = 0, len: number = replacementTexts.length; i < len; i++) {\r\n outString = outString.replace(placeholder, replacementTexts[i]);\r\n }\r\n }\r\n return outString;\r\n }\r\n\r\n public static IsString(str: any): boolean {\r\n return typeof str === 'string';\r\n }\r\n\r\n // Returns whether given str is a string and has a length > 0.\r\n public static IsStringWithLength(str: string): boolean {\r\n return str && StringUtils.IsString(str) && str.length > 0;\r\n }\r\n\r\n // Returns given string, escaped for use as string literal in regular expressions.\r\n private static _escapeRegExp(str: string): string {\r\n return str;// .replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^$\\|]/g, \"\\\\$&\");\r\n }\r\n\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","export class Dictionary {\r\n\r\n public strings: {} = {\r\n \"nl\": {\r\n \"ADDITIONAL_DATA\": \"Extra informatie\",\r\n \"ALTERNATIVE_PRODUCTS\": \"Alternatieve producten\",\r\n \"ARTICLE_NUMBER\": \"Artikel nummer\",\r\n \"CATEGORY\": \"Categorie\",\r\n \"CATEGORY_TYPE\": \"Categorie type\",\r\n \"CONFIGURE\": \"Configureren\",\r\n \"DELIVERY_TIME_PERIOD\": \"Levertijd\",\r\n \"DESCRIPTION\": \"Omschrijving\",\r\n \"DOCUMENTS\": \"Documenten\",\r\n \"DOWNLOADS\": \"Downloads\",\r\n \"FEATURES\": \"Kenmerken\",\r\n \"HEIGHT\": \"Hoogte\",\r\n \"MATERIAL\": \"Materiaal\",\r\n \"PRODUCT_IN_STOCK\": \"Op voorraad\",\r\n \"PRODUCT_NOT_IN_STOCK\": \"Niet op voorraad\",\r\n \"PROPERTIES\": \"Eigenschappen\",\r\n \"QUOTATION\": \"Quotatie\",\r\n \"READ_MORE\": \"Lees meer\",\r\n \"RELATED_PRODUCTS\": \"Gerelateerde producten\",\r\n \"SHOPPING_CART_IN\": \"In winkelwagen\",\r\n \"SHOW_IN\": \"Laat zien\",\r\n \"STOCK\": \"Voorraad\",\r\n \"SYMBOLS\": \"Symbolen\",\r\n \"TITLE\": \"Titel\",\r\n \"TURNOVERGROUP\": \"Omzetgroep\",\r\n \"VARIANTS\": \"Varianten\",\r\n \"WIDTH\": \"Breedte\"\r\n },\r\n \"de\": {\r\n \"ADDITIONAL_DATA\": \"Extra informatie\",\r\n \"ALTERNATIVE_PRODUCTS\": \"Alternative Produkte\",\r\n \"ARTICLE_NUMBER\": \"Artikelnummer\",\r\n \"CATEGORY\": \"Kategorie\",\r\n \"CATEGORY_TYPE\": \"Kategorietype\",\r\n \"CONFIGURE\": \"Konfigurieren\",\r\n \"DELIVERY_TIME_PERIOD\": \"Lieferzeit\",\r\n \"DESCRIPTION\": \"Beschreibung\",\r\n \"DOCUMENTS\": \"Dateien\",\r\n \"DOWNLOADS\": \"Downloads\",\r\n \"FEATURES\": \"Eigenschaften\",\r\n \"HEIGHT\": \"Höhe\",\r\n \"MATERIAL\": \"Material\",\r\n \"PRODUCT_IN_STOCK\": \"Auf lager\",\r\n \"PRODUCT_NOT_IN_STOCK\": \"Nicht auf lager\",\r\n \"PROPERTIES\": \"Eigenschaften\",\r\n \"QUOTATION\": \"Angebot\",\r\n \"READ_MORE\": \"Lesen Sie mehr\",\r\n \"RELATED_PRODUCTS\": \"Verwandte Produkte\",\r\n \"SHOPPING_CART_IN\": \"Im Einkaufswagen\",\r\n \"SHOW_IN\": \"Zeigen\",\r\n \"STOCK\": \"Vorrat\",\r\n \"SYMBOLS\": \"Symbole\",\r\n \"TITLE\": \"Titulatur\",\r\n \"TURNOVERGROUP\": \"Umsatzgruppe\",\r\n \"VARIANTS\": \"Varianten\",\r\n \"WIDTH\": \"Breite\"\r\n }\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { LanguageCode } from '../enum/language-code.enum';\r\nimport { StringUtils } from '../utils/string-utils';\r\nimport { JsonUtilsService } from '../utils/json-utils.service';\r\nimport { Dictionary } from '../../assets/dictionary/text.properties';\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","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","/** AUTO GENERATED FILE. DO NOT CHANGE.. **/\n\nexport enum IconEnum {\n AddToCartDrop = \"add_to_cart_drop\",\n DeliveryTruck = \"delivery_truck\",\n Download = \"download\",\n FullScreen = \"full_screen\",\n Location = \"location\",\n Logo = \"logo\",\n MagicWand = \"magic_wand\",\n NormalScreen = \"normal_screen\",\n Quote = \"quote\",\n Refresh = \"refresh\",\n ThreeD = \"three_d\",\n Truck = \"truck\",\n TwoD = \"two_d\",\n Warehouse = \"warehouse\"\n}","import { SettingsOptions } from './settings-options';\r\nimport { RenderParameters } from './render-parameters';\r\n\r\nexport class Settings {\r\n\r\n public url: string;\r\n public schema: string;\r\n public version: string;\r\n public branch: string;\r\n public currency: number;\r\n public username: string;\r\n public password: string;\r\n public session: any = undefined;\r\n public useGroups: boolean = true;\r\n public useRenders: boolean = false;\r\n public useEncryption: boolean = true;\r\n public useMatch: boolean = false;\r\n public assetPath: string;\r\n public assetIndex: string;\r\n public currencySymbol: string = '€';\r\n public threeDAssetPath: string;\r\n public lightPresetsIndex: string;\r\n public additionalTranslationFile: string;\r\n public gtm: string;\r\n public client: string;\r\n public timeoutInMs: number;\r\n public languageCode: string;\r\n public options: SettingsOptions = new SettingsOptions();\r\n public renderParameters: RenderParameters = new RenderParameters();\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { JsonUtilsService } from '../utils/json-utils.service';\r\nimport { DictionaryService } from './dictionary.service';\r\nimport { Settings } from '../model/settings';\r\nimport { SettingsOptions } from '../model/settings-options';\r\n\r\ndeclare let settings: any;\r\n\r\n@Injectable()\r\nexport class SettingsService {\r\n\r\n public set settings(value: Settings) {\r\n this._settings = value;\r\n }\r\n\r\n public get settings(): Settings {\r\n return this._settings;\r\n }\r\n\r\n public settingsLoaded: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n\r\n private _settings: Settings;\r\n\r\n constructor(\r\n private _jsonUtilsService: JsonUtilsService,\r\n private _dictionaryService: DictionaryService\r\n ) {\r\n }\r\n\r\n public async initializeSettings(): Promise<void> {\r\n // see if there's a json file for application settings\r\n if (typeof settings === 'undefined') {\r\n const jsonSettings = await this._jsonUtilsService.readJsonFile('product-settings.json');\r\n this.settings = Object.assign(new Settings(), jsonSettings);\r\n this.settings.options = Object.assign(new SettingsOptions(), this.settings.options);\r\n this.settingsFinished();\r\n } else {\r\n this.settings = Object.assign(new Settings(), settings);\r\n this.settings.options = Object.assign(new SettingsOptions(), this.settings.options);\r\n this.settingsFinished();\r\n }\r\n }\r\n\r\n public async createSettingsFromObject(obj: any): Promise<void> {\r\n if (!this.settings) {\r\n this.settings = new Settings();\r\n }\r\n if (obj.hasOwnProperty('url')) {\r\n this.settings.url = obj['url'];\r\n this._dictionaryService.rootUrl = this.settings.url.replace('/ajaxservice', '');\r\n }\r\n if (obj.hasOwnProperty('schema')) {\r\n this.settings.schema = obj['schema'];\r\n }\r\n if (obj.hasOwnProperty('version')) {\r\n this.settings.version = obj['version'];\r\n }\r\n if (obj.hasOwnProperty('branch')) {\r\n this.settings.branch = obj['branch'];\r\n }\r\n if (obj.hasOwnProperty('currency')) {\r\n this.settings.currency = obj['currency'];\r\n }\r\n if (obj.hasOwnProperty('client')) {\r\n this.settings.client = obj['client'];\r\n }\r\n if (obj.hasOwnProperty('languageCode')) {\r\n this.settings.languageCode = obj['languageCode'];\r\n }\r\n if (obj.hasOwnProperty('username')) {\r\n this.settings.username = obj['username'];\r\n }\r\n if (obj.hasOwnProperty('password')) {\r\n this.settings.password = obj['password'];\r\n }\r\n if (obj.hasOwnProperty('timeoutInMs')) {\r\n this.settings.timeoutInMs = obj['timeoutInMs'];\r\n }\r\n if (obj.hasOwnProperty('session')) {\r\n this.settings.session = obj['session'];\r\n }\r\n if (obj.hasOwnProperty('useGroups')) {\r\n this.settings.useGroups = obj['useGroups'];\r\n }\r\n if (obj.hasOwnProperty('useEncryption')) {\r\n this.settings.useEncryption = obj['useEncryption'];\r\n }\r\n if (obj.hasOwnProperty('useMatch')) {\r\n this.settings.useMatch = obj['useMatch'];\r\n }\r\n if (obj.hasOwnProperty('assetPath')) {\r\n this.settings.assetPath = obj['assetPath'];\r\n if (this.settings.assetPath[this.settings.assetPath.length - 1] !== '/') {\r\n this.settings.assetPath += '/';\r\n }\r\n this.settings.threeDAssetPath = this.settings.assetPath;\r\n }\r\n if (obj.hasOwnProperty('threeDAssetPath')) {\r\n this.settings.threeDAssetPath = obj['threeDAssetPath'];\r\n if (this.settings.threeDAssetPath[this.settings.threeDAssetPath.length - 1] !== '/') {\r\n this.settings.threeDAssetPath += '/';\r\n }\r\n }\r\n if (obj.hasOwnProperty('currencySymbol')) {\r\n this.settings.currencySymbol = obj['currencySymbol'];\r\n }\r\n if (obj.hasOwnProperty('gtm')) {\r\n this.settings.gtm = obj['gtm'];\r\n }\r\n if (obj.hasOwnProperty('assetIndex')) {\r\n this.settings.assetIndex = obj['assetIndex'];\r\n }\r\n if (obj.hasOwnProperty('lightPresetsIndex')) {\r\n this.settings.lightPresetsIndex = obj['lightPresetsIndex'];\r\n }\r\n if (obj.hasOwnProperty('additionalTranslationFile')) {\r\n this.settings.additionalTranslationFile = obj['additionalTranslationFile'];\r\n }\r\n if (obj.hasOwnProperty('options')) {\r\n this.settings.options = obj['options'];\r\n }\r\n if (obj.hasOwnProperty('renderParameters')) {\r\n this.settings.renderParameters = obj['renderParameters'];\r\n }\r\n this.settingsFinished();\r\n }\r\n\r\n public async settingsFinished(): Promise<void> {\r\n await this._dictionaryService.setDictionary(this.settings.languageCode);\r\n this.settingsLoaded.next(true);\r\n }\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { Article } from '@colijnit//ioneconnector/build/model/article';\r\nimport { Options } from '@colijnit//ioneconnector/build/model/options';\r\nimport { SuperArticleImage } from '@colijnit//ioneconnector/build/model/super-article-image';\r\nimport { TurnoverGroupImage } from '@colijnit//ioneconnector/build/model/turnover-group-image';\r\nimport { ArticleGroupImage } from '@colijnit//ioneconnector/build/model/article-group-image';\r\n\r\nimport { IOneConnectorAdapterService } from './i-one-connector-adapter.service';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ArticleFullObject } from '@colijnit//ioneconnector/build/model/article-full-object';\r\nimport { SuperArticle } from '@colijnit/ioneconnector/build/model/super-article';\r\nimport { SettingsService } from './settings.service';\r\nimport { Settings } from '../model/settings';\r\nimport { ConfiguratorStatisticsEnvironment } from '@colijnit/ioneconnector/build/model/configurator-statistics-environment';\r\n\r\n// Holds all iONE backend related state and methods for a running HomeDecorator. To be used anywhere internally.\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class IOneControllerService implements OnDestroy {\r\n public get article(): Article {\r\n return this._article;\r\n }\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 _article: Article;\r\n\r\n private _shouldShowLoader: boolean;\r\n private _initializing = false;\r\n private _initialized = false;\r\n\r\n private readonly defaultDevTestOptions: Options = new Options();\r\n\r\n private readonly subs: Subscription[] = [];\r\n\r\n constructor(\r\n public connector: IOneConnectorAdapterService,\r\n private _settingsService: SettingsService\r\n ) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subs.forEach(sub => sub.unsubscribe());\r\n }\r\n\r\n public async initDefaultDevelopTestConnection(): Promise<void> {\r\n if (this._initialized || this._initializing) {\r\n return;\r\n }\r\n this._initializing = true;\r\n try {\r\n const settings: Settings = this._settingsService.settings;\r\n if (!settings) {\r\n throw Error('Settings are not defined!');\r\n }\r\n this.defaultDevTestOptions.url = settings.url;\r\n this.defaultDevTestOptions.schema = settings.schema;\r\n this.defaultDevTestOptions.version = settings.version;\r\n this.defaultDevTestOptions.branch = settings.branch;\r\n this.defaultDevTestOptions.username = settings.username;\r\n this.defaultDevTestOptions.password = settings.password;\r\n this.defaultDevTestOptions.currencyId = settings.currency;\r\n this.defaultDevTestOptions.useGroups = settings.useGroups;\r\n this.defaultDevTestOptions.useRenders = settings.useRenders;\r\n this.defaultDevTestOptions.useLoginEncryption = settings.useEncryption;\r\n\r\n this.connector.initConnector(this.defaultDevTestOptions);\r\n this._settingsService.settings.session = this.defaultDevTestOptions.session;\r\n this.controllerInitialized.next(true);\r\n this._initialized = true;\r\n this._initializing = false;\r\n } catch (e) {\r\n this._initializing = false;\r\n }\r\n }\r\n\r\n public setInstance(instanceId: string): void {\r\n this.connector.setInstance(instanceId);\r\n }\r\n\r\n public getFullArticle(skuOrId: string): Promise<ArticleFullObject> {\r\n return this.connector.getFullArticle(skuOrId);\r\n }\r\n\r\n public getDocumentContent(docId: number, thumbnail: boolean = true): Promise<any> {\r\n return this.connector.getDocumentContent(docId, thumbnail);\r\n }\r\n\r\n public getDeliveryPrognosis(goodId: number): Promise<any> {\r\n return this.connector.getDeliveryPrognosis(goodId);\r\n }\r\n\r\n // will be called in future\r\n public getArticleGroupImages(): Promise<ArticleGroupImage[]> {\r\n return this.connector.getArticleGroupImages();\r\n }\r\n\r\n public getTurnoverGroupImages(): Promise<TurnoverGroupImage[]> {\r\n return this.connector.getTurnoverGroupImages();\r\n }\r\n\r\n // will be called in future\r\n public getSuperArticleImages(): Promise<SuperArticleImage[]> {\r\n return this.connector.getSuperArticleImages();\r\n }\r\n\r\n public getSuperArticle(id: string): Promise<SuperArticle> {\r\n return this.connector.getSuperArticle(id);\r\n }\r\n\r\n public getJsonConfiguredArticles(): Promise<any> {\r\n const configuratorStatistics = new ConfiguratorStatisticsEnvironment();\r\n configuratorStatistics.userType = 'iOneProductPage';\r\n configuratorStatistics.transactionType = 'Sales';\r\n configuratorStatistics.actionDomain = 'bundle';\r\n configuratorStatistics.sessionId = this._settingsService.settings.session ? this._settingsService.settings.session.sessionId : 'unknown';\r\n configuratorStatistics.webHost = window.location.host;\r\n configuratorStatistics.bundleHost = window.location.host;\r\n return this.connector.getJsonConfiguredArticles(configuratorStatistics);\r\n }\r\n\r\n public getJsonArticleFlatTree(goodId: number): Promise<any> {\r\n return this.connector.getJsonArticleFlatTree(goodId);\r\n }\r\n\r\n public onShowLoaderChange(showLoader: boolean): void {\r\n this._shouldShowLoader = showLoader;\r\n }\r\n}\r\n","import { Injectable, Output, Directive } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { ArticleListObject } from '@colijnit/ioneconnector/build/model/article-list-object';\r\nimport { Article } from '@colijnit//ioneconnector/build/model/article';\r\nimport { Selection } from '@colijnit/ioneconnector/build/model/selection';\r\n\r\n@Directive()\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AppEventService {\r\n\r\n @Output()\r\n public onAddToCart: Subject<string> = new Subject<string>();\r\n\r\n @Output()\r\n public onAlternativeClick: Subject<ArticleListObject> = new Subject<ArticleListObject>();\r\n\r\n @Output()\r\n public onAddToQuote: Subject<string> = new Subject<string>();\r\n\r\n @Output()\r\n public onForceRenderImage: Subject<void> = new Subject<void>();\r\n\r\n public onArticleReceived: Subject<Article> = new Subject<Article>();\r\n\r\n public onSelectionsReceived: Subject<Selection[]> = new Subject<Selection[]>();\r\n\r\n public onImageReceived: Subject<string> = new Subject<string>();\r\n\r\n public onRenderStarted: Subject<void> = new Subject<void>();\r\n\r\n public onRenderImageReceived: Subject<string> = new Subject<string>();\r\n\r\n public onDraftRenderImageReceived: Subject<string> = new Subject<string>();\r\n\r\n public onArticleInfoReceived: Subject<string> = new Subject<string>();\r\n\r\n public onUpdateProductInfoTab: Subject<number> = new Subject<number>();\r\n\r\n}\r\n","/** AUTO GENERATED FILE. DO NOT CHANGE.. **/\n\nexport const IconSvg: {[iconName: string]: string} = {\n \"add_to_cart_drop\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M16.58,34.84a1.8,1.8,0,1,0,1.8,1.8A1.79,1.79,0,0,0,16.58,34.84Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M31.49,34.84a1.8,1.8,0,1,0,1.8,1.8A1.79,1.79,0,0,0,31.49,34.84Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M35.6,17.9l-1.51.18L31.88,20.3l1.31-.17a.88.88,0,0,1,1,1.08L32.35,29.5a1.52,1.52,0,0,1-1.44,1.2H16.51a1.75,1.75,0,0,1-1.57-1.17l-2.31-5.6a1,1,0,0,1,.85-1.29l4.43-.56-1.86-1.86-5.13.61a1,1,0,0,0-.87,1.28l3.34,9.44A1.73,1.73,0,0,0,15,32.72H32.64a1.51,1.51,0,0,0,1.43-1.2L36.6,19A.89.89,0,0,0,35.6,17.9Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M39,17a1.87,1.87,0,0,0-1.36,1.46l-.42,2.89c-.1.67.31,1,.9.7a2.75,2.75,0,0,0,1.33-1.7L40,18A.73.73,0,0,0,39,17Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"24 25.35 32.04 17.3 27.04 17.3 27.04 10 20.95 10 20.95 17.3 15.96 17.3 24 25.35\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"delivery_truck\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M25,45A20,20,0,1,1,45,25,20,20,0,0,1,25,45ZM25,6.29A18.71,18.71,0,1,0,43.71,25,18.73,18.73,0,0,0,25,6.29Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M21.86,24.09a7.14,7.14,0,0,1,.72-3.24,6.94,6.94,0,0,1,1.18-1.66H13v10.1h8.51a3.25,3.25,0,0,1,3.27-3.07A3.33,3.33,0,0,1,27,27V25.75H21.9Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M21.65,30.47h-.48a3.51,3.51,0,0,1,1.13,2.19h1.57a3.22,3.22,0,0,1-1.41-.83A3.13,3.13,0,0,1,21.65,30.47Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M34.63,21.89H28.87c-.3.25-.5.43-.63.56v8H28a3.19,3.19,0,0,1-.82,1.37,3.3,3.3,0,0,1-1.41.82H29a3.53,3.53,0,0,1,7,0h1V27.1Zm-.2,5.38H30.8a.47.47,0,0,1-.46-.46V23.36a.46.46,0,0,1,.46-.46h2.1a.45.45,0,0,1,.42.27l1.53,3.45A.46.46,0,0,1,34.43,27.27Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M16.42,30.47a3.51,3.51,0,0,0-1.13,2.19H14.6l-1.6-1V30.47Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M30,33.08a2.53,2.53,0,1,0,2.53-2.53A2.52,2.52,0,0,0,30,33.08Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M16.27,33.08a2.53,2.53,0,1,0,2.53-2.53A2.52,2.52,0,0,0,16.27,33.08Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M22.45,17.27h-3.2a4.29,4.29,0,0,1,1.61-3.49,6.45,6.45,0,0,1,4.31-1.38,6.79,6.79,0,0,1,2.92.57A4.72,4.72,0,0,1,30,14.62a4,4,0,0,1,.72,2.26,3.74,3.74,0,0,1-.23,1.27,5.31,5.31,0,0,1-.73,1.29,12,12,0,0,1-1.4,1.29A8.74,8.74,0,0,0,27.06,22a3.17,3.17,0,0,0-.46.94,7.56,7.56,0,0,0-.23,1.65h-3.3v-.49a6,6,0,0,1,.59-2.68,6.8,6.8,0,0,1,1.94-2.25,9.44,9.44,0,0,0,1.56-1.41,1.5,1.5,0,0,0,.27-.9,1.47,1.47,0,0,0-.65-1.19A2.9,2.9,0,0,0,25,15.14a2.77,2.77,0,0,0-1.84.6A1.91,1.91,0,0,0,22.45,17.27Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M24.78,27.42a2.06,2.06,0,0,1,1.51.61,2,2,0,0,1,.63,1.47A2,2,0,0,1,26.3,31a2.08,2.08,0,0,1-1.5.62A2,2,0,0,1,23.31,31a2.08,2.08,0,0,1,0-2.95A2,2,0,0,1,24.78,27.42Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"download\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\" version=\\\"1.1\\\" sodipodi:docname=\\\"download.svg\\\" inkscape:version=\\\"0.92.4 (5da689c313, 2019-01-14)\\\"><metadata ><rdf:RDF><cc:Work rdf:about=\\\"\\\"><dc:format>image/svg+xml</dc:format><dc:type rdf:resource=\\\"http://purl.org/dc/dcmitype/StillImage\\\" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs /><sodipodi:namedview pagecolor=\\\"#ffffff\\\" bordercolor=\\\"#666666\\\" borderopacity=\\\"1\\\" objecttolerance=\\\"10\\\" gridtolerance=\\\"10\\\" guidetolerance=\\\"10\\\" inkscape:pageopacity=\\\"0\\\" inkscape:pageshadow=\\\"2\\\" inkscape:window-width=\\\"1920\\\" inkscape:window-height=\\\"1017\\\" showgr inkscape:zoom=\\\"6.675088\\\" inkscape:cx=\\\"-14.056273\\\" inkscape:cy=\\\"29.806579\\\" inkscape:window-x=\\\"-8\\\" inkscape:window-y=\\\"-8\\\" inkscape:window-maximized=\\\"1\\\" inkscape:current-layer=\\\"svg8\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"m 498.966,339.946 c -7.197,0 -13.034,5.837 -13.034,13.034 v 49.804 c 0,28.747 -23.388,52.135 -52.135,52.135 H 78.203 c -28.747,0 -52.135,-23.388 -52.135,-52.135 V 352.98 c 0,-7.197 -5.835,-13.034 -13.034,-13.034 C 5.835,339.946 0,345.782 0,352.98 v 49.804 c 0,43.121 35.082,78.203 78.203,78.203 h 355.594 c 43.121,0 78.203,-35.082 78.203,-78.203 V 352.98 c 0,-7.198 -5.835,-13.034 -13.034,-13.034 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"M 419.833,391.3 H 92.167 c -7.197,0 -13.034,5.837 -13.034,13.034 0,7.197 5.835,13.034 13.034,13.034 h 327.665 c 7.199,0 13.034,-5.835 13.034,-13.034 0,-7.197 -5.835,-13.034 -13.033,-13.034 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"m 387.919,207.93 c -4.795,-5.367 -13.034,-5.834 -18.404,-1.038 L 269.033,296.657 V 44.048 c 0,-7.197 -5.835,-13.034 -13.034,-13.034 -7.197,0 -13.034,5.835 -13.034,13.034 V 296.657 L 142.483,206.893 c -5.367,-4.796 -13.607,-4.328 -18.404,1.038 -4.794,5.369 -4.331,13.609 1.037,18.404 l 109.174,97.527 c 6.187,5.529 13.946,8.292 21.708,8.292 7.759,0 15.519,-2.763 21.708,-8.289 l 109.174,-97.53 c 5.37,-4.798 5.834,-13.038 1.039,-18.405 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05555739,0,0,0.05555739,10.739964,11.357401)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></svg>\",\n \"full_screen\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M38,38.17H12v-26H38ZM13.24,36.93H36.76V13.4H13.24Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"17.35 32.81 17.35 26.75 19.46 28.86 28.69 19.63 26.59 17.52 32.65 17.52 32.65 23.58 30.54 21.47 21.31 30.71 23.41 32.81 17.35 32.81\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"location\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M25,12.67A8.33,8.33,0,0,0,16.67,21c0,4.6,8.33,16.67,8.33,16.67S33.33,25.6,33.33,21A8.33,8.33,0,0,0,25,12.67Zm0,10.41A2.08,2.08,0,1,1,27.08,21,2.08,2.08,0,0,1,25,23.08Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"logo\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><rect x=\\\"10\\\" y=\\\"21.19\\\" width=\\\"2.04\\\" height=\\\"6.32\\\" fill=\\\"#484f60\\\"/><path d=\\\"M18.66,29.24a3.84,3.84,0,0,1-2.85-1.19,4.19,4.19,0,0,1,0-5.77,4,4,0,0,1,5.71,0,4.19,4.19,0,0,1,0,5.77A3.85,3.85,0,0,1,18.66,29.24Zm0-6.16a1.79,1.79,0,0,0-1.38.58,2.12,2.12,0,0,0-.57,1.51,2,2,0,0,0,.57,1.49,1.94,1.94,0,0,0,2.76,0,2.08,2.08,0,0,0,.56-1.5,2.15,2.15,0,0,0-.56-1.51A1.76,1.76,0,0,0,18.67,23.08Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"31.05 29.18 27.33 25.02 27.33 29.14 25.29 29.14 25.29 21.15 26.57 21.15 30.29 25.33 30.29 21.19 32.33 21.19 32.33 29.18 31.05 29.18\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"35.34 29.14 35.34 21.19 39.9 21.19 39.9 23.17 37.38 23.17 37.38 23.9 39.66 23.9 39.66 25.87 37.38 25.87 37.38 27.14 40 27.14 40 29.14 35.34 29.14\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"magic_wand\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><title>magic_wand</title><g style=\\\"isolation:isolate\\\"><path d=\\\"M20.45,10.71a.28.28,0,0,1,.49-.19l1.4,1.25a.93.93,0,0,0,.83.23L25,11.62a.29.29,0,0,1,.34.41l-.76,1.71a.93.93,0,0,0,0,.86l.93,1.62c.12.26,0,.45-.29.45l-1.86-.2a1,1,0,0,0-.81.32l-1.26,1.38a.28.28,0,0,1-.5-.14l-.39-1.83a1,1,0,0,0-.55-.67l-1.71-.77a.28.28,0,0,1,0-.52l1.62-.94a1,1,0,0,0,.48-.73Z\\\" fill=\\\"#484f60\\\"/><g style=\\\"mix-blend-mode:lighten\\\"><path d=\\\"M23.3,16.21a1,1,0,0,0-.8.31l-1,1.13a.29.29,0,0,1-.51-.14L20.66,16a1,1,0,0,0-.55-.68l-1.39-.62a.28.28,0,0,1,0-.52L20,13.45a1,1,0,0,0,.48-.73l.16-1.5a.29.29,0,0,1,.49-.2l1.13,1a.93.93,0,0,0,.83.23L24.58,12a.29.29,0,0,1,.34.41l-.62,1.38a.91.91,0,0,0,.05.86l.75,1.32a.29.29,0,0,1-.29.44Z\\\" fill=\\\"#484f60\\\"/></g><path d=\\\"M33.57,36.76a.53.53,0,0,1,0,.72l-2.37,2.18a.48.48,0,0,1-.7,0L18,25.34a.51.51,0,0,1,0-.71l2.36-2.19a.49.49,0,0,1,.7,0Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M18.6,19.94a.51.51,0,0,1,0,.71L16.2,22.84a.48.48,0,0,1-.7,0l-2.76-3.13a.51.51,0,0,1,0-.71l2.37-2.19a.48.48,0,0,1,.7,0Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M30.67,10.55a.29.29,0,0,1,.47.24v1.12a1,1,0,0,0,.4.77l.9.66a.29.29,0,0,1-.08.52l-1.07.35a1,1,0,0,0-.61.61l-.35,1.06a.28.28,0,0,1-.51.09l-.67-.91a1,1,0,0,0-.77-.4H27.27a.29.29,0,0,1-.25-.47l.66-.9a.93.93,0,0,0,.14-.85l-.35-1.07a.29.29,0,0,1,.38-.38l1.07.35a1,1,0,0,0,.85-.13Z\\\" fill=\\\"#484f60\\\"/><g style=\\\"mix-blend-mode:lighten\\\"><path d=\\\"M29.25,14.88a1,1,0,0,0-.77-.4h-.86a.29.29,0,0,1-.24-.47l.5-.69a.93.93,0,0,0,.14-.85l-.26-.82c-.07-.27.1-.44.37-.37l.82.26a1,1,0,0,0,.85-.13l.69-.51a.29.29,0,0,1,.47.25V12a.94.94,0,0,0,.39.76l.7.51a.29.29,0,0,1-.09.52l-.81.26a1,1,0,0,0-.62.61l-.26.82a.29.29,0,0,1-.52.08Z\\\" fill=\\\"#484f60\\\"/></g><path d=\\\"M37,15.81a.29.29,0,0,1,.32.43l-.13.26a.91.91,0,0,0,0,.85l.15.26A.29.29,0,0,1,37,18l-.29,0a.93.93,0,0,0-.81.27l-.2.21a.28.28,0,0,1-.5-.16l0-.29a1,1,0,0,0-.52-.69l-.27-.13a.28.28,0,0,1,0-.52l.26-.13a.93.93,0,0,0,.5-.71l0-.29a.29.29,0,0,1,.5-.17l.21.21a.92.92,0,0,0,.82.26Z\\\" fill=\\\"#484f60\\\"/><g style=\\\"mix-blend-mode:lighten\\\"><path d=\\\"M35.25,18a1,1,0,0,0-.52-.7l-.12-.05a.28.28,0,0,1,0-.52l.12-.06a1,1,0,0,0,.51-.7V15.8a.29.29,0,0,1,.5-.18l.09.1a.92.92,0,0,0,.82.26l.13,0a.29.29,0,0,1,.32.42L37,16.5a.91.91,0,0,0,0,.85l.07.12a.29.29,0,0,1-.31.43l-.13,0a1,1,0,0,0-.82.28l-.09.1a.28.28,0,0,1-.5-.16Z\\\" fill=\\\"#484f60\\\"/></g></g></svg>\",\n \"normal_screen\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M38,38.17H12v-26H38ZM13.24,36.93H36.76V13.4H13.24Z\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"22.18 29.83 24.29 31.93 24.29 25.87 18.23 25.87 20.34 27.98 16.43 31.89 18.28 33.73 22.18 29.83\\\" fill=\\\"#484f60\\\"/><polygon points=\\\"33.57 18.44 31.73 16.6 27.82 20.51 25.71 18.4 25.71 24.46 31.77 24.46 29.66 22.35 33.57 18.44\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"quote\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M14.5,31.51V12a.5.5,0,0,1,.5-.5H35a.5.5,0,0,1,.5.5V38a.5.5,0,0,1-.5.5H21.27V40H35a2,2,0,0,0,2-2V12a2,2,0,0,0-2-2H15a2,2,0,0,0-2,2V31.51Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M21.27,40V33.56c0-1.78-.27-2.05-2.05-2.05H13Z\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17.5\\\" y=\\\"18.5\\\" width=\\\"6\\\" height=\\\"4\\\" fill=\\\"#484f60\\\"/><rect x=\\\"25.5\\\" y=\\\"21.5\\\" width=\\\"7\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"25.5\\\" y=\\\"18.5\\\" width=\\\"7\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"26.5\\\" y=\\\"25.5\\\" width=\\\"6\\\" height=\\\"4\\\" transform=\\\"translate(59 55) rotate(-180)\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17.5\\\" y=\\\"28.5\\\" width=\\\"7\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17.5\\\" y=\\\"25.5\\\" width=\\\"7\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"17.5\\\" y=\\\"14.5\\\" width=\\\"6\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/><rect x=\\\"26.5\\\" y=\\\"34.5\\\" width=\\\"6\\\" height=\\\"1\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"refresh\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\" version=\\\"1.1\\\" sodipodi:docname=\\\"refresh.svg\\\" inkscape:version=\\\"0.92.4 (5da689c313, 2019-01-14)\\\"><metadata ><rdf:RDF><cc:Work rdf:about=\\\"\\\"><dc:format>image/svg+xml</dc:format><dc:type rdf:resource=\\\"http://purl.org/dc/dcmitype/StillImage\\\" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs /><sodipodi:namedview pagecolor=\\\"#ffffff\\\" bordercolor=\\\"#666666\\\" borderopacity=\\\"1\\\" objecttolerance=\\\"10\\\" gridtolerance=\\\"10\\\" guidetolerance=\\\"10\\\" inkscape:pageopacity=\\\"0\\\" inkscape:pageshadow=\\\"2\\\" inkscape:window-width=\\\"1920\\\" inkscape:window-height=\\\"1017\\\" showgr inkscape:zoom=\\\"9.44\\\" inkscape:cx=\\\"13.990693\\\" inkscape:cy=\\\"13.961336\\\" inkscape:window-x=\\\"-8\\\" inkscape:window-y=\\\"-8\\\" inkscape:window-maximized=\\\"1\\\" inkscape:current-layer=\\\"svg6\\\" /><g transform=\\\"matrix(0.05356365,0,0,0.05356365,11.44076,11.82465)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"M 414.32892,173.53368 397.86852,58.29997 c -1.3534,-9.447409 -12.96516,-13.373353 -19.75699,-6.581524 l -23.97472,23.97472 C 323.3074,57.095569 288.30682,47.308258 252.3168,47.308258 c -108.23157,0 -195.126154,84.711612 -197.8314,192.852392 -0.147446,5.91103 4.149441,10.98085 9.992183,11.82206 l 46.516107,6.64982 c 6.93462,1.01194 13.38577,-4.43269 13.28954,-11.68548 -0.9646,-71.37163 56.68057,-129.79595 128.03357,-129.79595 17.27835,0 34.3526,3.51232 50.13165,10.23043 l -23.11022,23.11022 c -6.74915,6.74915 -2.91866,18.3966 6.58152,19.75699 l 115.23371,16.4604 c 7.59269,1.14465 14.26423,-5.4586 13.17546,-13.17546 z\\\" style=\\\"fill:#484f60;fill-opacity:1;stroke-width:0.77603161\\\" /></g></g><path inkscape:connector-curvature=\\\"0\\\" d=\\\"m 35.105827,24.725982 -2.489742,-0.355606 c -0.321647,-0.04073 -0.711797,0.234897 -0.711797,0.671018 0,3.781814 -3.076753,6.858567 -6.858567,6.858567 -0.920628,0 -1.830946,-0.186303 -2.673013,-0.542533 l 1.198298,-1.198297 c 0.361507,-0.361507 0.156331,-0.985389 -0.352533,-1.058254 l -6.172336,-0.882302 c -0.405403,-0.05792 -0.764422,0.289765 -0.705726,0.705725 l 0.881637,6.172381 c 0.07258,0.506577 0.694003,0.71545 1.058254,0.352527 l 1.315225,-1.314599 c 1.643397,0.987012 3.516951,1.506391 5.450194,1.506391 5.769264,0 10.423029,-4.514936 10.595325,-10.27871 0.0091,-0.317237 -0.221012,-0.591248 -0.535219,-0.636308 z\\\" style=\\\"fill:#484f60;fill-opacity:1;stroke-width:0.04156709\\\" /></svg>\",\n \"three_d\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M16.08,30.77a4.85,4.85,0,0,1-3-.8,4,4,0,0,0-2.49-.15,6.21,6.21,0,0,0,2.53,1.09,12.84,12.84,0,0,0,2.93-.14\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M14.27,19.68A4.71,4.71,0,0,0,11,20.78l2,.14c.31,0,1.2-.69,1.55-.81a3.88,3.88,0,0,1,1.65-.24l-1.94-.19\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M21.64,28.79a4.13,4.13,0,0,0-3.1-4c.89-.7,1.77-1.09,2.26-2.21a5.12,5.12,0,0,0,.35-1.9c-.13-3.24-2.64-3.73-5.29-4.15a4,4,0,0,1,3.44,3.7,4.61,4.61,0,0,1-.83,3.12,9.7,9.7,0,0,1-1.82,1.43,4.3,4.3,0,0,1,3.17,4.34,4.9,4.9,0,0,1-4.21,5c2.09-.34,4.37-.64,5.46-2.69a5,5,0,0,0,.57-2.58\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M28.44,18.88l.38-.07.48-.06.57,0h.75l.36,0,.35.05c-.2,0-.42-.08-1.57-.25l-.36-.05-.37,0h-.77l-.59,0-.49.07a3.08,3.08,0,0,0-.39.07l-.3.07V31.38H27l.13,0h1.63l.21,0h.2l.2,0h.05l1.55-.24h0l-.34.05-.33,0H29.12l-.36,0-.33,0a1.15,1.15,0,0,1-.28-.06V19Z\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M40,24.34a9,9,0,0,0-3-7.1,11.06,11.06,0,0,0-4.47-1.86c4.38,1.13,6.23,5.31,6.13,9.54-.12,4.5-2.27,8.55-6.86,9.66,2.59-.63,5-1.41,6.52-3.78A12,12,0,0,0,40,24.34\\\" fill=\\\"#484f60\\\" opacity=\\\"0.5\\\"/><path d=\\\"M35.38,16.71A7.32,7.32,0,0,1,36.74,18a7.82,7.82,0,0,1,1,1.73,10.32,10.32,0,0,1,.68,2.16,13.86,13.86,0,0,1,.23,2.59,15,15,0,0,1-.25,2.78,11.39,11.39,0,0,1-.68,2.31,9.34,9.34,0,0,1-1,1.85,8.23,8.23,0,0,1-1.28,1.4,7.76,7.76,0,0,1-1.7,1.07,9.07,9.07,0,0,1-2,.69,13.36,13.36,0,0,1-2.26.33,18.25,18.25,0,0,1-2.45,0c-.5,0-1-.08-1.39-.12l-1.17-.14c-.36,0-.68-.11-1-.16l-.77-.15V15.86c.34-.09.71-.18,1.09-.26s.81-.15,1.24-.21.88-.12,1.34-.17.95-.1,1.44-.13a20.57,20.57,0,0,1,2.33,0,12,12,0,0,1,2,.24,8.24,8.24,0,0,1,1.72.55A7.1,7.1,0,0,1,35.38,16.71ZM27.92,31.53a6.53,6.53,0,0,0,2.46-.32A4.81,4.81,0,0,0,32.32,30a5.82,5.82,0,0,0,1.27-2.18A10.11,10.11,0,0,0,34,24.67a8.65,8.65,0,0,0-.42-2.85,4.94,4.94,0,0,0-1.18-2,4.45,4.45,0,0,0-1.83-1.11,6.55,6.55,0,0,0-2.35-.28l-.59,0-.49.07a3.08,3.08,0,0,0-.39.07l-.3.07V31.38a2.11,2.11,0,0,0,.29.06l.34,0,.37,0,.36,0h.07\\\" fill=\\\"#484f60\\\"/><path d=\\\"M14.57,16.47a5.49,5.49,0,0,1,2,.22,3.89,3.89,0,0,1,1.49.84A3.66,3.66,0,0,1,19,18.89a4.29,4.29,0,0,1,.33,1.7,5.29,5.29,0,0,1-.17,1.34,4.29,4.29,0,0,1-.5,1.16,4.17,4.17,0,0,1-.84.94,4.88,4.88,0,0,1-1.16.69v.05a3.7,3.7,0,0,1,1.22.5,4,4,0,0,1,1,.92,4.61,4.61,0,0,1,.69,1.3,5.24,5.24,0,0,1,.25,1.62,5.36,5.36,0,0,1-.42,2.15,4.44,4.44,0,0,1-1.2,1.64,4.84,4.84,0,0,1-1.86,1,6.78,6.78,0,0,1-2.39.23,7.69,7.69,0,0,1-2.36-.52,6.89,6.89,0,0,1-.9-.42,4.36,4.36,0,0,1-.69-.47l.62-2.9a4.12,4.12,0,0,0,.53.34,6.21,6.21,0,0,0,.73.36,5.69,5.69,0,0,0,.88.31,5.19,5.19,0,0,0,1,.15,3.11,3.11,0,0,0,1.1-.13,2,2,0,0,0,.8-.45,1.93,1.93,0,0,0,.49-.71,2.35,2.35,0,0,0,.17-.89A2.48,2.48,0,0,0,16,27.67a2.23,2.23,0,0,0-.63-.79,2.9,2.9,0,0,0-.89-.46,3.5,3.5,0,0,0-1-.15H12.2V23.44l1.23,0a3.44,3.44,0,0,0,.83-.11,2.83,2.83,0,0,0,.79-.36,2,2,0,0,0,.6-.62,2,2,0,0,0,.23-.94,1.8,1.8,0,0,0-.13-.71,1.36,1.36,0,0,0-.38-.56,1.58,1.58,0,0,0-.64-.35,2.79,2.79,0,0,0-.9-.1,4.07,4.07,0,0,0-.84.13c-.27.08-.53.18-.78.28a6.56,6.56,0,0,0-1.17.7L10.42,18a5,5,0,0,1,.72-.51,7.82,7.82,0,0,1,2.12-.82A8,8,0,0,1,14.57,16.47Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"truck\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\" version=\\\"1.1\\\" sodipodi:docname=\\\"truck.svg\\\" inkscape:version=\\\"0.92.4 (5da689c313, 2019-01-14)\\\"><metadata ><rdf:RDF><cc:Work rdf:about=\\\"\\\"><dc:format>image/svg+xml</dc:format><dc:type rdf:resource=\\\"http://purl.org/dc/dcmitype/StillImage\\\" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs /><sodipodi:namedview pagecolor=\\\"#ffffff\\\" bordercolor=\\\"#666666\\\" borderopacity=\\\"1\\\" objecttolerance=\\\"10\\\" gridtolerance=\\\"10\\\" guidetolerance=\\\"10\\\" inkscape:pageopacity=\\\"0\\\" inkscape:pageshadow=\\\"2\\\" inkscape:window-width=\\\"1920\\\" inkscape:window-height=\\\"1017\\\" showgr inkscape:zoom=\\\"9.44\\\" inkscape:cx=\\\"31.555563\\\" inkscape:cy=\\\"21.585628\\\" inkscape:window-x=\\\"-8\\\" inkscape:window-y=\\\"-8\\\" inkscape:window-maximized=\\\"1\\\" inkscape:current-layer=\\\"svg8\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06827145,0,0,0.06827064,7.670918,5.1378096)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"m 119.467,337.067 c -28.237,0 -51.2,22.963 -51.2,51.2 0,28.237 22.963,51.2 51.2,51.2 28.237,0 51.2,-22.963 51.2,-51.2 0,-28.237 -22.964,-51.2 -51.2,-51.2 z m 0,85.333 c -18.825,0 -34.133,-15.309 -34.133,-34.133 0,-18.825 15.309,-34.133 34.133,-34.133 18.824,0 34.133,15.309 34.133,34.133 0,18.824 -15.309,34.133 -34.133,34.133 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"m 409.6,337.067 c -28.237,0 -51.2,22.963 -51.2,51.2 0,28.237 22.963,51.2 51.2,51.2 28.237,0 51.2,-22.963 51.2,-51.2 0,-28.237 -22.963,-51.2 -51.2,-51.2 z m 0,85.333 c -18.825,0 -34.133,-15.309 -34.133,-34.133 0,-18.825 15.309,-34.133 34.133,-34.133 18.825,0 34.133,15.309 34.133,34.133 0,18.824 -15.308,34.133 -34.133,34.133 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"m 510.643,289.784 -76.8,-119.467 c -1.57,-2.441 -4.275,-3.917 -7.177,-3.917 H 332.8 c -4.719,0 -8.533,3.823 -8.533,8.533 v 213.333 c 0,4.719 3.814,8.533 8.533,8.533 h 34.133 v -17.067 h -25.6 V 183.467 h 80.674 l 72.926,113.442 v 82.825 H 452.266 V 396.8 h 51.2 c 4.719,0 8.533,-3.814 8.533,-8.533 V 294.4 c 10e-4,-1.63 -0.468,-3.243 -1.356,-4.616 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"M 375.467,277.333 V 217.6 h 68.267 v -17.067 h -76.8 c -4.719,0 -8.533,3.823 -8.533,8.533 v 76.8 c 0,4.719 3.814,8.533 8.533,8.533 h 128 V 277.332 H 375.467 Z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"M 332.8,106.667 H 8.533 C 3.823,106.667 0,110.49 0,115.2 v 273.067 c 0,4.719 3.823,8.533 8.533,8.533 H 76.8 V 379.733 H 17.067 v -256 h 307.2 v 256 H 162.133 V 396.8 H 332.8 c 4.719,0 8.533,-3.814 8.533,-8.533 V 115.2 c 0,-4.71 -3.814,-8.533 -8.533,-8.533 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><rect x=\\\"8.533\\\" y=\\\"345.60001\\\" width=\\\"51.200001\\\" height=\\\"17.066999\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><rect x=\\\"179.2\\\" y=\\\"345.60001\\\" width=\\\"145.067\\\" height=\\\"17.066999\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><rect x=\\\"469.33301\\\" y=\\\"345.60001\\\" width=\\\"34.132999\\\" height=\\\"17.066999\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><rect x=\\\"34.132999\\\" y=\\\"140.8\\\" width=\\\"298.66699\\\" height=\\\"17.066999\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><rect x=\\\"110.933\\\" y=\\\"379.733\\\" width=\\\"17.066999\\\" height=\\\"17.066999\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><rect x=\\\"401.06699\\\" y=\\\"379.733\\\" width=\\\"17.066999\\\" height=\\\"17.066999\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.06813214,0,0,0.06813214,7.6,6.2856989)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></svg>\",\n \"two_d\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\"><path d=\\\"M22.41,33.89H11V31c.87-.76,1.75-1.56,2.62-2.41S15.2,27,15.73,26.39A11.84,11.84,0,0,0,17.4,24a4.45,4.45,0,0,0,.5-2,2.52,2.52,0,0,0-.64-1.85,2.47,2.47,0,0,0-1.84-.65,4.57,4.57,0,0,0-1.89.45,8.17,8.17,0,0,0-1.84,1.14h-.31V17.2a10.26,10.26,0,0,1,2-.73,10.46,10.46,0,0,1,2.71-.36,5.79,5.79,0,0,1,4.16,1.37,5.15,5.15,0,0,1,1.44,3.9,7.37,7.37,0,0,1-.69,3.14A12.94,12.94,0,0,1,19,27.59c-.6.66-1.19,1.26-1.79,1.81s-1,.93-1.28,1.15h6.53Z\\\" fill=\\\"#484f60\\\"/><path d=\\\"M38.14,20.79a7.49,7.49,0,0,0-2.37-3,6.52,6.52,0,0,0-2.17-1,11.93,11.93,0,0,0-3.06-.35H25.26V33.89h5.13a13.25,13.25,0,0,0,3-.3,6.61,6.61,0,0,0,2.33-1.08,7.71,7.71,0,0,0,2.34-3A9.9,9.9,0,0,0,39,25.19,10.47,10.47,0,0,0,38.14,20.79Zm-3.49,7.27a4,4,0,0,1-1.51,1.88,3.77,3.77,0,0,1-1.22.54,10.07,10.07,0,0,1-2,.14H29V19.7H30a9.8,9.8,0,0,1,1.81.13,3.75,3.75,0,0,1,1.18.46,4.07,4.07,0,0,1,1.65,1.92,7.4,7.4,0,0,1,.52,2.94A7.92,7.92,0,0,1,34.65,28.06Z\\\" fill=\\\"#484f60\\\"/></svg>\",\n \"warehouse\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 50 50\\\" version=\\\"1.1\\\" sodipodi:docname=\\\"warehouse.svg\\\" inkscape:version=\\\"0.92.4 (5da689c313, 2019-01-14)\\\"><metadata ><rdf:RDF><cc:Work rdf:about=\\\"\\\"><dc:format>image/svg+xml</dc:format><dc:type rdf:resource=\\\"http://purl.org/dc/dcmitype/StillImage\\\" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs /><sodipodi:namedview pagecolor=\\\"#ffffff\\\" bordercolor=\\\"#666666\\\" borderopacity=\\\"1\\\" objecttolerance=\\\"10\\\" gridtolerance=\\\"10\\\" guidetolerance=\\\"10\\\" inkscape:pageopacity=\\\"0\\\" inkscape:pageshadow=\\\"2\\\" inkscape:window-width=\\\"1920\\\" inkscape:window-height=\\\"1017\\\" showgr inkscape:zoom=\\\"6.675088\\\" inkscape:cx=\\\"9.6569985\\\" inkscape:cy=\\\"12.384637\\\" inkscape:window-x=\\\"-8\\\" inkscape:window-y=\\\"-8\\\" inkscape:window-maximized=\\\"1\\\" inkscape:current-layer=\\\"svg8\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"M 507.785,146.242 260.318,1.175 c -2.603,-1.519 -5.803,-1.57 -8.439,-0.111 L 4.412,137.598 C 1.69,139.091 0,141.958 0,145.064 v 358.4 c 0,4.719 3.823,8.533 8.533,8.533 H 51.2 c 4.71,0 8.533,-3.814 8.533,-8.533 V 204.798 h 392.533 v 298.667 c 0,4.719 3.814,8.533 8.533,8.533 h 42.667 c 4.719,0 8.533,-3.814 8.533,-8.533 V 153.598 c 10e-4,-3.03 -1.603,-5.829 -4.214,-7.356 z m -12.852,348.689 h -25.6 V 196.264 c 0,-4.71 -3.814,-8.533 -8.533,-8.533 H 51.2 c -4.71,0 -8.533,3.823 -8.533,8.533 v 298.667 h -25.6 V 150.099 L 255.872,18.344 494.933,158.487 Z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"m 426.667,392.531 h -102.4 c -4.719,0 -8.533,3.814 -8.533,8.533 v 102.4 c 0,4.719 3.814,8.533 8.533,8.533 h 102.4 c 4.719,0 8.533,-3.814 8.533,-8.533 v -102.4 c 0,-4.719 -3.814,-8.533 -8.533,-8.533 z m -8.534,102.4 H 332.8 v -85.333 h 85.333 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"m 384,401.064 v 25.6 h -17.067 v -25.6 h -17.067 v 34.133 c 0,4.719 3.814,8.533 8.533,8.533 h 34.133 c 4.719,0 8.533,-3.814 8.533,-8.533 v -34.133 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"m 324.267,392.531 h -102.4 c -4.71,0 -8.533,3.814 -8.533,8.533 v 102.4 c 0,4.719 3.823,8.533 8.533,8.533 h 102.4 c 4.719,0 8.533,-3.814 8.533,-8.533 v -102.4 c 0,-4.719 -3.814,-8.533 -8.533,-8.533 z m -8.534,102.4 H 230.4 v -85.333 h 85.333 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"m 281.6,401.064 v 25.6 h -17.067 v -25.6 h -17.067 v 34.133 c 0,4.719 3.823,8.533 8.533,8.533 h 34.133 c 4.719,0 8.533,-3.814 8.533,-8.533 v -34.133 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"m 426.667,290.131 h -102.4 c -4.719,0 -8.533,3.814 -8.533,8.533 v 102.4 c 0,4.719 3.814,8.533 8.533,8.533 h 102.4 c 4.719,0 8.533,-3.814 8.533,-8.533 v -102.4 c 0,-4.719 -3.814,-8.533 -8.533,-8.533 z m -8.534,102.4 H 332.8 v -85.333 h 85.333 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"m 384,298.664 v 25.6 h -17.067 v -25.6 h -17.067 v 34.133 c 0,4.719 3.814,8.533 8.533,8.533 h 34.133 c 4.719,0 8.533,-3.814 8.533,-8.533 v -34.133 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><rect x=\\\"51.200001\\\" y=\\\"255.998\\\" width=\\\"409.60001\\\" height=\\\"17.066999\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><rect x=\\\"51.200001\\\" y=\\\"221.864\\\" width=\\\"409.60001\\\" height=\\\"17.066999\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\"><g style=\\\"fill:#484f60;fill-opacity:1\\\"><path inkscape:connector-curvature=\\\"0\\\" d=\\\"m 298.667,119.464 h -85.333 c -4.71,0 -8.533,3.823 -8.533,8.533 v 34.133 c 0,4.71 3.823,8.533 8.533,8.533 h 85.333 c 4.719,0 8.533,-3.823 8.533,-8.533 v -34.133 c 0,-4.71 -3.814,-8.533 -8.533,-8.533 z m -8.534,34.134 h -68.267 v -17.067 h 68.267 z\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></g></g><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /><g transform=\\\"matrix(0.05570714,0,0,0.05570648,10.763,10.859394)\\\" style=\\\"fill:#484f60;fill-opacity:1\\\" /></svg>\"\n};","export enum SelectorType {\r\n TwoD = '2D',\r\n ThreeD = '3D',\r\n Omni = 'Omni'\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\nimport { IconSvg } from '../model/icon';\r\nimport { IconEnum } from '../enum/icon.enum';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class IconCacheService {\r\n /**\r\n * All the icons as a large JSON object, from the all-icons.json file.\r\n * The object has property keys that are the icon names, and property values with the data string of the actual svg icon.\r\n */\r\n public get iconCache(): { [iconName: string]: SafeHtml } {\r\n return this._iconCache;\r\n }\r\n\r\n private _iconCache: { [iconName: string]: SafeHtml } = {};\r\n\r\n private _allIcons: any;\r\n\r\n constructor(private _sanitizer: DomSanitizer) {\r\n this._allIcons = IconSvg;\r\n this.setIconCache();\r\n }\r\n\r\n public getIcon(iconName: IconEnum): SafeHtml {\r\n return this._iconCache[iconName.toLowerCase()];\r\n }\r\n\r\n public setIconCache(): void {\r\n for (const key in this._allIcons) {\r\n if (this._allIcons.hasOwnProperty(key)) {\r\n this._iconCache[key.toLowerCase()] = this._sanitizer.bypassSecurityTrustHtml(this._allIcons[key]);\r\n }\r\n }\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component, ElementRef, HostBinding, HostListener, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { CoDocument } from '@colijnit//ioneconnector/build/model/co-document';\nimport { IOneControllerService } from '../../service/i-one-controller.service';\nimport { AppEventService } from '../../service/app-event.service';\nimport { Subscription } from 'rxjs';\nimport { IconEnum } from '../../enum/icon.enum';\nimport { IconCacheService } from '../../service/icon-cache.service';\nimport {DomSanitizer, SafeUrl} from '@angular/platform-browser';\n\n@Component({\n selector: 'app-image-carousel',\n templateUrl: './image-carousel.component.html',\n styleUrls: ['./image-carousel.component.scss']\n})\nexport class ImageCarouselComponent implements OnInit, OnDestroy {\n\n public readonly icons: typeof IconEnum = IconEnum;\n\n public showLoader: boolean = false;\n\n @ViewChild('carousel', { read: ElementRef })\n public carousel: ElementRef;\n\n @Input()\n public showRefresh: boolean = false;\n\n @Input()\n public set images(value: CoDocument[]) {\n if (value && value.length > 0) {\n this._images = value;\n this._loadImages();\n this._changeDetector.detectChanges();\n }\n }\n\n @HostListener('window:resize')\n public handleWindowResize(): void {\n this.resizing = true;\n this._scrollCarouselToIndex();\n clearTimeout(this._resizeTimer);\n this._resizeTimer = setTimeout(() => {\n this.resizing = false;\n }, 200);\n }\n\n @HostListener('swipeleft')\n public gotoNextSlide(): void {\n this.currentIndex++;\n }\n\n @HostListener('swiperight')\n public gotoPrevSlide(): void {\n this.currentIndex--;\n }\n\n public isCurrentIndex(index: number): boolean {\n return this.currentIndex === index;\n }\n\n public get currentIndex(): number {\n return this._currentIndex;\n }\n\n public set currentIndex(value: number) {\n this._currentIndex = value;\n this._scrollCarouselToIndex();\n }\n\n @HostBinding('class.resizing')\n public resizing = false;\n\n public get images(): CoDocument[] {\n return this._images;\n }\n\n private _resizeTimer: any;\n\n private _currentIndex = 0;\n\n private _images = [];\n private _subs: Subscription[] = [];\n\n constructor(\n private _ione: IOneControllerService,\n private _appEventService: AppEventService,\n private _changeDetector: ChangeDetectorRef,\n private _domSanitizer: DomSanitizer,\n public iconCache: IconCacheService,\n ) {\n this._subs.push(\n this._appEventService.onRenderStarted.subscribe(() => {\n this.showLoader = true;\n }),\n this._appEventService.onDraftRenderImageReceived.subscribe((url: string) => {\n if (this._images[0] instanceof CoDocument) {\n this._images.unshift(url);\n } else {\n this._images[0] = url;\n }\n this.showLoader = false;\n }),\n );\n\n }\n\n ngOnInit() {\n }\n\n ngOnDestroy(): void {\n this.carousel = undefined;\n this._subs.forEach(s => s.unsubscribe());\n }\n\n public handleThumbClick(index: number): void {\n this.currentIndex = index;\n }\n\n public onForceRenderImage(): void {\n this._appEventService.onForceRenderImage.next();\n }\n\n public getImageSrc(image: CoDocument | CustomEvent): SafeUrl {\n let source = '';\n if (image instanceof CoDocument) {\n if (image.filePath) {\n source = image.filePath;\n } else {\n source = image.documentBodyAsDataUri;\n }\n } else if (image.detail !== undefined) {\n source = image.detail;\n }\n\n return this._domSanitizer.bypassSecurityTrustUrl(source);\n }\n\n private _loadImages(): void {\n if (this._images) {\n this._images.forEach((i: CoDocument) => {\n if (!i.documentBody && !i.filePath) {\n this._ione.getDocumentContent(i.documentId, false).then((body: string) => {\n i.documentBody = body;\n });\n }\n });\n }\n }\n\n private _scrollCarouselToIndex(): void {\n if (this.currentIndex > -1 && this.currentIndex <= this.images.length) {\n const movePx: number = this.currentIndex * this.carousel.nativeElement.clientWidth;\n if (this.carousel && this.carousel.nativeElement) {\n this.carousel.nativeElement.scrollLeft = movePx;\n // this.carousel.nativeElement.scrollTo({\n // left: movePx,\n // behavior: 'smooth'\n // });\n }\n }\n }\n\n}\n","export class StockAndDelivery {\r\n\r\n public stock: number = 0;\r\n public deliveryDescription: string;\r\n\r\n constructor(stock?: any, deliveryDescription?: string) {\r\n this.stock = stock;\r\n this.deliveryDescription = deliveryDescription;\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ArticleFullObject } from '@colijnit//ioneconnector/build/model/article-full-object';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\n\nexport enum TabType {\n Additional = 'additional',\n Properties = 'properties'\n}\n\n@Component({\n selector: 'app-product-info',\n templateUrl: './product-info.component.html',\n styleUrls: ['./product-info.component.scss'],\n animations: [\n trigger('showContent', [\n state('void', style({'opacity': '0'})),\n state('*', style({'opacity': '1'})),\n transition('void => *', animate('200ms 100ms ease-in-out')),\n ])\n ]\n})\nexport class ProductInfoComponent implements OnInit {\n\n public readonly tabType: typeof TabType = TabType;\n\n @Input()\n public article: ArticleFullObject;\n\n public currentTab: TabType = TabType.Additional;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n public switchTab(tab: TabType): void {\n this.currentTab = tab;\n }\n\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n Renderer2,\n ViewChild\n} from '@angular/core';\nimport { IOneControllerService } from '../../service/i-one-controller.service';\nimport { ArticleFullObject } from '@colijnit//ioneconnector/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 { SettingsService } from '../../service/settings.service';\nimport { AppEventService } from '../../service/app-event.service';\n\n@Component({\n selector: 'app-product-page',\n templateUrl: './product-page.component.html',\n styleUrls: ['./product-page.component.scss'],\n animations: [\n trigger('toggleFullScreen', [\n state('fullscreen', style({'position': 'fixed', 'top': '0', 'left': '0', 'width': '100%', 'height': '100%'})),\n state('halfscreen', style({'position': '*', 'top': '*', 'left': '*', 'width': '*', 'height': '*'})),\n transition('halfscreen <=> fullscreen', animate('200ms ease-in-out')),\n ]),\n trigger('toggleTopLeft', [\n state('fullscreen', style({'position': 'fixed', 'top': '0', 'left': '0'})),\n state('halfscreen', style({'position': 'absolute', 'top': '*', 'left': '*'})),\n transition('halfscreen <=> fullscreen', animate('200ms ease-in-out')),\n ]),\n trigger('toggleTopRight', [\n state('fullscreen', style({'position': 'fixed', 'top': '0', 'right': '0'})),\n state('halfscreen', style({'position': '*', 'top': '*', 'right': '*'})),\n transition('halfscreen <=> fullscreen', animate('200ms ease-in-out')),\n ]),\n trigger('toggleFullScreenRight', [\n state('fullscreen', style({'position': 'fixed', 'width': '400px', 'top': '0', 'right': '0'})),\n state('halfscreen', style({'position': '*', 'width': '*', 'top': '*', 'right': '*'})),\n transition('halfscreen <=> fullscreen', animate('200ms ease-in-out')),\n ]),\n trigger('toggleVisibilityByState', [\n state('hide', style({'opacity': '0', 'display': 'none'})),\n state('show', style({'display': 'block', 'opacity': '1'})),\n transition('hide <=> show', animate('200ms 100ms ease-in-out')),\n ]),\n trigger('toggleVisibility', [\n state('void', style({'opacity': '0'})),\n state('*', style({'opacity': '1'})),\n transition('void => *', animate('200ms ease-in-out')),\n ])\n ]\n})\nexport class ProductPageComponent implements OnInit, OnDestroy, AfterViewInit {\n\n public readonly icon: typeof IconEnum = IconEnum;\n\n @ViewChild('configurator', { read: ElementRef })\n public configurator: ElementRef;\n\n @ViewChild('selections', { read: ElementRef })\n public selections: ElementRef;\n\n @ViewChild('fullscreenbutton', { read: ElementRef })\n public fullscreenbutton: ElementRef;\n\n @Input()\n public set sku(value: string) {\n if (value) {\n if (this.configuring) {\n this.show3D = false;\n this.fullScreen = false;\n this.configuring = false;\n this._changeDetector.detectChanges();\n }\n this._sku = value;\n this._getArticle();\n }\n }\n\n public get sku(): string {\n return this._sku;\n }\n\n public set fullScreen(value: boolean) {\n this._fullScreen = value;\n this.fullscreenAnimationEnd = true;\n this._changeDetector.detectChanges();\n // setTimeout(() => {\n // this.fullscreenAnimationEnd = true;\n // }, 400)\n }\n\n public get fullScreen(): boolean {\n return this._fullScreen;\n }\n\n public get fullScreenIcon(): IconEnum {\n return this.fullScreen ? this.icon.NormalScreen : this.icon.FullScreen;\n }\n\n public set currentView(value: SelectorType) {\n this._currentView = value;\n this.show2D = this._currentView === SelectorType.TwoD;\n this.show3D = this._currentView === SelectorType.ThreeD;\n this._changeDetector.detectChanges();\n }\n\n public get currentView(): SelectorType {\n return this._currentView;\n }\n\n public article: ArticleFullObject;\n public stockAndDelivery: StockAndDelivery;\n public configurable = false;\n public threeD = false;\n public selectorType: SelectorType;\n public show2D = true;\n public show3D = false;\n public configuring: boolean = false;\n public fullscreenAnimationEnd: boolean = false;\n private _sku: string;\n private _initializedSub: Subscription;\n private _fullScreen: boolean = false;\n private _currentView: SelectorType;\n private _subs: Subscription[] = [];\n\n constructor(private _ione: IOneControllerService,\n private _renderer: Renderer2,\n private _changeDetector: ChangeDetectorRef,\n public iconCache: IconCacheService,\n public settingsService: SettingsService,\n public appEventService: AppEventService\n ) {\n this._subs.push(\n this.appEventService.onForceRenderImage.subscribe((x) => {\n if (this.selections.nativeElement){\n this.selections.nativeElement.forceRenderImage();\n }\n })\n );\n\n }\n\n ngOnInit() {\n }\n\n ngAfterViewInit(): void {\n }\n\n ngOnDestroy(): void {\n this._subs.forEach(s => s.unsubscribe());\n if (this._initializedSub) {\n this._initializedSub.unsubscribe();\n }\n this.configurator = undefined;\n this.selections = undefined;\n this.fullscreenbutton = undefined;\n }\n\n public setInstance(event: CustomEvent): void {\n if (event.detail) {\n this._ione.setInstance(event.detail);\n }\n }\n\n public handleStartConfiguration(): void {\n this.configuring = true;\n this._changeDetector.detectChanges();\n }\n\n public showFullScreen(): void {\n this.fullScreen = !this.fullScreen;\n }\n\n private async _getArticle(): Promise<void> {\n if (this._initializedSub) {\n this._initializedSub.unsubscribe();\n }\n this._initializedSub = this._ione.controllerInitialized.subscribe(async (init: boolean) => {\n if (init) {\n this._ione.getFullArticle(this._sku).then((article: ArticleFullObject) => {\n this.article = article;\n this.configurable = this.article.goodType === 'B';\n if (this.configurable) {\n this.currentView = SelectorType.TwoD;\n }\n this.threeD = this.article.homeBrandId !== undefined && this.article.homeBrandId !== null;\n this.selectorType = this.article.selectorTypeCustomer;\n this._ione.getDeliveryPrognosis(this.article.goodId).then((stockInfo) => {\n const stockAndDelivery = stockInfo;\n this.stockAndDelivery = new StockAndDelivery(stockAndDelivery.stock, stockAndDelivery.deliveryDescription);\n this._changeDetector.detectChanges();\n });\n this._changeDetector.detectChanges();\n });\n }\n });\n }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { CoDocument } from '@colijnit//ioneconnector/build/model/co-document';\nimport { IconEnum } from '../../enum/icon.enum';\nimport { IOneControllerService } from '../../service/i-one-controller.service';\nimport { IconCacheService } from '../../service/icon-cache.service';\n\n@Component({\n selector: 'app-product-documents',\n templateUrl: './product-documents.component.html',\n styleUrls: ['./product-documents.component.css']\n})\nexport class ProductDocumentsComponent {\n\n public readonly icon: typeof IconEnum = IconEnum;\n\n @Input()\n public showLabel: boolean = false;\n\n @Input()\n public documents: CoDocument[] = [];\n\n constructor(public iconCache: IconCacheService) { }\n\n}\n","import { Component, Input } from '@angular/core';\nimport { ArticleListObject } from '@colijnit//ioneconnector/build/model/article-list-object';\nimport { IOneControllerService } from '../../service/i-one-controller.service';\nimport { AppEventService } from '../../service/app-event.service';\n\n@Component({\n selector: 'app-product-related',\n templateUrl: './product-related.component.html',\n styleUrls: ['./product-related.component.scss']\n})\nexport class ProductRelatedComponent {\n\n @Input()\n public refType: number;\n\n @Input()\n public label: string;\n\n @Input()\n public isSmallModus: boolean = true;\n\n @Input()\n public set articles(value: ArticleListObject[]) {\n if (value) {\n if (this.refType && this.refType !== undefined) {\n if (value.length > 0) {\n value.forEach((x: ArticleListObject) => {\n if (x.refType === this.refType) {\n this._articles.push(x);\n }\n });\n }\n } else {\n this._articles = value;\n }\n this._loadImages();\n }\n }\n\n public get articles(): ArticleListObject[] {\n return this._articles;\n }\n\n private _articles: ArticleListObject[] = [];\n\n constructor(\n private _iOne: IOneControllerService,\n private _appEventService: AppEventService\n ) { }\n\n public handleContentClick(article: ArticleListObject): void {\n this._appEventService.onAlternativeClick.next(article);\n }\n\n private _loadImages(): void {\n this._articles.forEach((a: ArticleListObject) => {\n if (!a.image.documentBody) {\n this._iOne.getDocumentContent(a.image.documentId).then(d => a.image.documentBody = d);\n }\n });\n }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss']\n})\nexport class HeaderComponent implements OnInit {\n\n @Input()\n public label: string;\n\n @Input()\n public amount: number;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Injectable } from '@angular/core';\r\nimport { IOneControllerService } from './i-one-controller.service';\r\nimport { ArticleFullObject } from '@colijnit/ioneconnector/build/model/article-full-object';\r\nimport { SuperArticle } from '@colijnit/ioneconnector/build/model/super-article';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ModuleService {\r\n\r\n private _superArticles: Map<string, SuperArticle> = new Map();\r\n\r\n constructor(\r\n private _iOneConnectorService: IOneControllerService\r\n ) {}\r\n\r\n public async getArticle(id: string): Promise<SuperArticle> {\r\n return await this._getArticle(id);\r\n }\r\n\r\n private async _getArticle(id: string): Promise<SuperArticle> {\r\n if (this._superArticles.has(id)) {\r\n return this._superArticles.get(id);\r\n } else {\r\n const mainArticle = await this._iOneConnectorService.getSuperArticle(id);\r\n this._superArticles.set(id, mainArticle);\r\n return mainArticle;\r\n }\r\n }\r\n}\r\n","export class BitUtils {\r\n\r\n public static IsShortDescription(bit: number): boolean {\r\n return (1 & bit) > 0;\r\n }\r\n\r\n public static IsFullDescription(bit: number): boolean {\r\n return (2 & bit) > 0;\r\n }\r\n\r\n public static IsMetaTitle(bit: number): boolean {\r\n return (4 & bit) > 0;\r\n }\r\n\r\n public static IsMetaDescription(bit: number): boolean {\r\n return (8 & bit) > 0;\r\n }\r\n\r\n public static IsMetaKeys(bit: number): boolean {\r\n return (16 & bit) > 0;\r\n }\r\n\r\n}\r\n","import { ChangeDetectorRef, Component, Input, OnInit, SecurityContext } from '@angular/core';\nimport { CoText } from '@colijnit//ioneconnector/build/model/co-text';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { ArticleFullObject } from '@colijnit/ioneconnector/build/model/article-full-object';\nimport { ModuleService } from '../../service/module.service';\nimport { SuperArticle } from '@colijnit/ioneconnector/build/model/super-article';\nimport { BitUtils } from '../../utils/bit-utils';\n\n@Component({\n selector: 'app-product-additional-info',\n templateUrl: './product-additional-info.component.html',\n styleUrls: ['./product-additional-info.component.scss']\n})\nexport class ProductAdditionalInfoComponent implements OnInit {\n\n @Input()\n public set article(value: ArticleFullObject) {\n if (value) {\n this._article = value;\n this._buildInfo().then(() => {\n this._changeDetector.detectChanges();\n });\n }\n }\n\n public get article(): ArticleFullObject {\n return this._article;\n }\n\n @Input()\n public showLabel: boolean = false;\n\n public textParts: SafeHtml[] = [];\n public info: string;\n\n private _article: ArticleFullObject;\n\n constructor(\n private _sanitizer: DomSanitizer,\n private _moduleService: ModuleService,\n private _changeDetector: ChangeDetectorRef\n ) {\n }\n\n ngOnInit() {\n }\n\n private _getTextsSuperArticle(): Promise<SafeHtml[]> {\n return new Promise((resolve: Function, reject: Function) => {\n const texts: SafeHtml[] = [];\n if (this.article.superArticleNr) {\n this._moduleService.getArticle(this.article.superArticleNr).then((mainArticle: SuperArticle) => {\n mainArticle.texts.forEach((txt: CoText) => {\n if (BitUtils.IsFullDescription(txt.publication)) {\n const safeTxt: SafeHtml = this._sanitizer.sanitize(SecurityContext.HTML, txt.text);\n texts.push(safeTxt);\n }\n });\n resolve(texts);\n }).catch(() => {\n resolve([]);\n });\n } else {\n resolve(texts);\n }\n });\n }\n\n private async _prepareArticleTexts(): Promise<void> {\n const texts: SafeHtml[] = await this._getTextsSuperArticle();\n if (texts.length > 0) {\n this.textParts.push(...texts);\n }\n if (this.article.texts) {\n this.article.texts.forEach((txt: CoText) => {\n if (BitUtils.IsFullDescription(txt.publication)) {\n const safeTxt: SafeHtml = this._sanitizer.sanitize(SecurityContext.HTML, txt.text);\n this.textParts.push(safeTxt);\n }\n });\n }\n }\n\n private async _buildInfo(): Promise<void> {\n this.textParts.length = 0;\n await this._prepareArticleTexts();\n if (this.textParts.length === 0) {\n if (this.article.additionalDescription) {\n this.textParts.push(this.article.additionalDescription);\n } else if (this.article.description) {\n this.textParts.push(this.article.description);\n }\n }\n return;\n }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ArticleFullObject } from '@colijnit//ioneconnector/build/model/article-full-object';\n\nexport const propertyMap: Map<string, string> = new Map([\n ['articleNr', 'ARTICLE_NUMBER'],\n ['catExtra', 'CATEGORY'],\n ['catType', 'CATEGORY_TYPE'],\n ['description', 'DESCRIPTION'],\n ['material', 'MATERIAL'],\n ['title', 'TITLE'],\n ['turnOverGroup', 'TURNOVERGROUP'],\n ['height', 'HEIGHT'],\n ['width', 'WIDTH']\n]);\n\n@Component({\n selector: 'app-product-properties',\n templateUrl: './product-properties.component.html',\n styleUrls: ['./product-properties.component.scss']\n})\nexport class ProductPropertiesComponent implements OnInit {\n\n @Input()\n public set article(value: ArticleFullObject) {\n this._article = value;\n this._prepareProperties();\n }\n\n public get article(): ArticleFullObject {\n return this._article;\n }\n\n @Input()\n public showLabel: boolean = false;\n\n public properties: {key: string, value: string}[] = [];\n\n private _article: ArticleFullObject;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n private _prepareProperties(): void {\n this.properties.length = 0;\n if (!this._article) {\n return;\n }\n propertyMap.forEach((value: string, key: string) => {\n if (this.article.hasOwnProperty(key)) {\n this.properties.push({key: value, value: this.article[key]});\n }\n });\n }\n\n}\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport { DictionaryService } from '../service/dictionary.service';\r\n\r\n@Pipe({\r\n name: 'localize'\r\n})\r\n// A pipe for localizing string values in view templates.\r\nexport class LocalizePipe implements PipeTransform {\r\n\r\n constructor(private _dictionaryService: DictionaryService) {}\r\n\r\n transform(value: string, upperCaseFirst: boolean = true, replace: string|string[] = []): string {\r\n if (!value) {\r\n return '';\r\n }\r\n replace = replace ? replace : [];\r\n if (!Array.isArray(replace)) {\r\n replace = [replace];\r\n }\r\n return this._dictionaryService.get(value, upperCaseFirst, ...replace);\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\nimport { IOneControllerService } from '../../service/i-one-controller.service';\nimport { IconCacheService } from '../../service/icon-cache.service';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { IconEnum } from '../../enum/icon.enum';\nimport { StockAndDelivery } from '../../model/stock-and-delivery';\nimport { LocalizePipe } from '../../pipe/localize.pipe';\n\n@Component({\n selector: 'app-product-delivery',\n templateUrl: './product-delivery.component.html',\n styleUrls: ['./product-delivery.component.scss'],\n providers: [ LocalizePipe ]\n})\nexport class ProductDeliveryComponent implements OnInit {\n\n public readonly icon: typeof IconEnum = IconEnum;\n\n @Input()\n public set stockAndDelivery(value: StockAndDelivery) {\n if (value) {\n this.deliveryDescription = value.deliveryDescription;\n if (this.deliveryDescription.length > 0 && this.deliveryDescription[0] === ' ') {\n this.deliveryDescription = this._localizePipe.transform('ASK_FOR_INFORMATION');\n }\n }\n }\n\n public deliveryDescription: string;\n public iconData: SafeHtml;\n\n constructor(\n private _localizePipe: LocalizePipe,\n private _iOne: IOneControllerService,\n private _iconCache: IconCacheService\n ) {\n this.iconData = this._iconCache.getIcon(this.icon.Truck);\n }\n\n ngOnInit() {\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { IOneControllerService } from '../../service/i-one-controller.service';\nimport { IconCacheService } from '../../service/icon-cache.service';\nimport { IconEnum } from '../../enum/icon.enum';\nimport { StockAndDelivery } from '../../model/stock-and-delivery';\n\n@Component({\n selector: 'app-product-stock',\n templateUrl: './product-stock.component.html',\n styleUrls: ['./product-stock.component.scss']\n})\nexport class ProductStockComponent implements OnInit {\n\n public readonly icon: typeof IconEnum = IconEnum;\n\n @Input()\n public set stockAndDelivery(value: StockAndDelivery) {\n if (value) {\n this.numberInStock = value.stock;\n }\n }\n\n public numberInStock: number;\n public iconData: SafeHtml;\n\n constructor(private _iOne: IOneControllerService, private _iconCache: IconCacheService) {\n this.iconData = this._iconCache.getIcon(this.icon.Warehouse);\n }\n\n ngOnInit() {\n }\n\n}\n","import { Component, HostBinding, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-product-symbols',\n templateUrl: './product-symbols.component.html',\n styleUrls: ['./product-symbols.component.scss']\n})\nexport class ProductSymbolsComponent implements OnInit {\n\n @Input()\n public set symbols(value: any) {\n this._symbols = value;\n if (this._symbols && this._symbols.hasOwnProperty('fontCode')) {\n this._className = this._symbols['fontCode'] === 'VLOER' ? 'floor' : (this._className === 'WAS' ? 'ginetex' : '');\n }\n if (this._symbols && this._symbols.hasOwnProperty('symbolString')) {\n for (let i = 0; i < this._symbols['symbolString'].length; i++) {\n this.symbolStrings.push(this._symbols['symbolString'][i]);\n }\n }\n }\n\n public get symbols(): any {\n return this._symbols;\n }\n\n @HostBinding('class')\n public _className: string;\n\n public symbolStrings: string[] = [];\n\n private _symbols: any;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { ChangeDetectorRef, Component, Input, OnInit } from '@angular/core';\nimport { ArticlePricing } from '@colijnit//ioneconnector/build/model/article-pricing';\n\n@Component({\n selector: 'app-product-price',\n templateUrl: './product-price.component.html',\n styleUrls: ['./product-price.component.scss']\n})\nexport class ProductPriceComponent implements OnInit {\n\n @Input()\n public set pricing(value: any) {\n this._pricing = value;\n this._setPrices();\n }\n\n public get pricing(): any {\n return this._pricing;\n }\n\n @Input()\n public set configurable(value: boolean) {\n this._configurable = value;\n this._setPrices();\n }\n\n public fromPrice: number;\n public toPrice: number;\n public valutaSign: string;\n public fromLabel: string;\n public toLabel: string;\n public showFromPrice: boolean = false;\n\n private _pricing: ArticlePricing;\n private _configurable: boolean = false;\n\n constructor(private _changeDetector: ChangeDetectorRef) { }\n\n ngOnInit() {\n }\n\n private _setPrices(): void {\n if (this._pricing) {\n this.valutaSign = this._getSign(this._pricing.retailCurrency);\n if (this._configurable) {\n this.fromPrice = this._pricing.retailBasePrice ? this._pricing.retailBasePrice : this._pricing.priceBaseline;\n this.fromLabel = this._pricing.retailBasePrice ? 'PRICE' : 'FROM';\n this.toPrice = undefined;\n } else {\n this.fromPrice = this._pricing.retailSuggestedPrice ? this._pricing.retailSuggestedPrice : this._pricing.retailBasePrice;\n this.fromLabel = this._pricing.retailSuggestedPrice ? 'Was' : 'PRICE';\n this.toPrice = this._pricing.retailSuggestedPrice ? this._pricing.retailBasePrice : undefined;\n this.toLabel = this._pricing.retailSuggestedPrice ? 'IS_NOW' : '';\n }\n this._changeDetector.detectChanges();\n }\n }\n\n private _getSign(currency: string): string {\n switch (currency) {\n case 'EUR':\n return '€';\n default:\n return '€';\n }\n }\n\n}\n","import { Component, ElementRef, EventEmitter, HostBinding, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\nimport { IconCacheService } from '../../service/icon-cache.service';\nimport { IconEnum } from '../../enum/icon.enum';\nimport { ArticleQuantity } from '../../model/article-quantity.model';\nimport { IOneControllerService } from '../../service/i-one-controller.service';\nimport { AppEventService } from '../../service/app-event.service';\nimport { ArticleFullObject } from '@colijnit/ioneconnector/build/model/article-full-object';\n\n@Component({\n selector: 'app-product-addtocart',\n templateUrl: './product-addtocart.component.html',\n styleUrls: ['./product-addtocart.component.scss']\n})\nexport class ProductAddtocartComponent implements OnInit, OnDestroy {\n\n public readonly icon: typeof IconEnum = IconEnum;\n\n @ViewChild('addtocartbutton', { read: ElementRef })\n public addToCartButton: ElementRef;\n\n @Input()\n public article: ArticleFullObject;\n\n @Input()\n public configurable: boolean = false;\n\n @Input()\n public configuring: boolean = false;\n\n @HostBinding('class.full-screen')\n @Input()\n public fullscreen: boolean = false;\n\n @Input()\n public set quantity(value: number) {\n this._quantity = Math.max(1, value);\n }\n\n public get quantity(): number {\n return this._quantity;\n }\n\n @Output()\n public startConfiguration: EventEmitter<void> = new EventEmitter<void>();\n\n @Output()\n public addToCartClick: EventEmitter<number> = new EventEmitter<number>();\n\n @Output()\n public addToQuoteClick: EventEmitter<number> = new EventEmitter<number>();\n\n public showQuoteButton: boolean = false;\n\n private _quantity = 1;\n\n constructor(\n public iconCache: IconCacheService,\n private _ioneControllerService: IOneControllerService,\n private _appEventService: AppEventService\n ) { }\n\n ngOnInit() {\n }\n\n ngOnDestroy(): void {\n this.addToCartButton = undefined;\n }\n\n public async handleAddToCartClick(quantity: number): Promise<void> {\n this._appEventService.onAddToCart.next(await this._getJSONFromArticleObject({article: this.article, quantity: quantity}));\n }\n\n public async handleAddToQuoteClick(quantity: number): Promise<void> {\n this._appEventService.onAddToQuote.next(await this._getJSONFromArticleObject({article: this.article, quantity: quantity}));\n }\n\n private async _getJSONFromArticleObject(article: ArticleQuantity): Promise<string> {\n const returnObject: {goodId: number, baseGoodId: number, selectorData: {}, quantity: number, articleTree: {}} =\n {goodId: 0, baseGoodId: 0, selectorData: {}, quantity: 0, articleTree: {}};\n returnObject.baseGoodId = article.article.goodId;\n returnObject.selectorData = {};\n returnObject.quantity = article.quantity;\n if (article.article.goodType === 'B') {\n const selectorDataJson = await this._ioneControllerService.getJsonConfiguredArticles();\n const selectorDataObject = JSON.parse(selectorDataJson);\n returnObject.goodId = selectorDataObject.hasOwnProperty('compositionGoodId') ? selectorDataObject['compositionGoodId'] : selectorDataObject['goodId'];\n returnObject.selectorData = selectorDataObject;\n const articleFlatTreeJson = await this._ioneControllerService.getJsonArticleFlatTree(returnObject.goodId);\n if (articleFlatTreeJson) {\n returnObject.articleTree = JSON.parse(articleFlatTreeJson);\n }\n } else { // treat as simple article\n returnObject.goodId = article.article.goodId;\n const articleFlatTreeJson = await this._ioneControllerService.getJsonArticleFlatTree(returnObject.goodId);\n if (articleFlatTreeJson) {\n returnObject.articleTree = JSON.parse(articleFlatTreeJson);\n }\n }\n return JSON.stringify(returnObject);\n }\n\n}\n","import { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { IconCacheService } from '../../service/icon-cache.service';\nimport { IconEnum } from '../../enum/icon.enum';\nimport { SelectorType } from '../../enum/selector-type.enum';\n\n@Component({\n selector: 'app-product-selector-type',\n templateUrl: './product-selector-type.component.html',\n styleUrls: ['./product-selector-type.component.scss']\n})\nexport class ProductSelectorTypeComponent implements OnInit {\n\n public readonly type: typeof SelectorType = SelectorType;\n public readonly icons: typeof IconEnum = IconEnum;\n\n @Input()\n public show2D: boolean;\n\n @Input()\n public show3D: boolean;\n\n @Input()\n public currentType: SelectorType;\n\n @Output()\n public onIconClick: EventEmitter<SelectorType> = new EventEmitter();\n\n @Output()\n public currentTypeChange: EventEmitter<SelectorType> = new EventEmitter();\n\n public twoDIcon: SafeHtml | null;\n public threeDIcon: SafeHtml | null;\n\n constructor(\n private _iconCache: IconCacheService,\n private _changeDetector: ChangeDetectorRef\n ) {\n this.twoDIcon = this._iconCache.getIcon(this.icons.TwoD);\n this.threeDIcon = this._iconCache.getIcon(this.icons.ThreeD);\n }\n\n ngOnInit() {\n }\n\n public handleIconClick(type: SelectorType): void {\n this.currentType = type;\n this.currentTypeChange.next(this.currentType);\n this.onIconClick.next(this.currentType);\n this._changeDetector.detectChanges();\n }\n\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n ViewEncapsulation\n} from '@angular/core';\nimport { JsonUtilsService } from './utils/json-utils.service';\nimport { IOneControllerService } from './service/i-one-controller.service';\nimport { DictionaryService } from './service/dictionary.service';\nimport { Subscription } from 'rxjs';\nimport { AppEventService } from './service/app-event.service';\nimport { ArticleListObject } from '@colijnit/ioneconnector/build/model/article-list-object';\nimport { SettingsService } from './service/settings.service';\nimport { Article } from '@colijnit//ioneconnector/build/model/article';\nimport { Selection } from '@colijnit/ioneconnector/build/model/selection';\n\n@Component({\n selector: 'app-ione-product',\n templateUrl: './ione-product.component.html',\n styleUrls: ['./ione-product.component.css'],\n encapsulation: ViewEncapsulation.Emulated\n})\nexport class IoneProductComponent implements OnChanges, OnDestroy {\n\n @Input()\n public sku: string;\n\n @Input()\n public set settings(value: any) {\n if (value) {\n let settings: any;\n if (typeof value === 'string') {\n settings = JSON.parse(value);\n } else {\n settings = value;\n }\n this._settingsService.createSettingsFromObject(settings);\n // this._initConnection(settings);\n }\n }\n\n public get settings(): any {\n return this._settings;\n }\n\n @Output()\n public onAddToCart: EventEmitter<string> = new EventEmitter<string>();\n\n @Output()\n public forceRenderImage: EventEmitter<void> = new EventEmitter<void>();\n\n @Output()\n public onAlternativeClick: EventEmitter<ArticleListObject> = new EventEmitter<ArticleListObject>();\n\n @Output()\n public onArticleInfoReceived: EventEmitter<string> = new EventEmitter<string>();\n\n @Output()\n public onArticleReceived: EventEmitter<Article> = new EventEmitter<Article>();\n\n @Output()\n public onSelectionsReceived: EventEmitter<Selection[]> = new EventEmitter<Selection[]>();\n\n @Output()\n public onAddToQuote: EventEmitter<string> = new EventEmitter<string>();\n\n public upAndLoaded = false;\n private _settings: any;\n private _subs: Subscription[] = [];\n\n constructor (\n private _dictionary: DictionaryService,\n private _jsonUtils: JsonUtilsService,\n private _ione: IOneControllerService,\n private _changeDetector: ChangeDetectorRef,\n private _appEventService: AppEventService,\n private _settingsService: SettingsService\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\n this._subs.push(\n this._settingsService.settingsLoaded.subscribe(loaded => this._handleSettingsLoaded(loaded)),\n // this._dictionary.dictionaryLoaded.subscribe(d => this.upAndLoaded = true),\n this._appEventService.onAddToCart.subscribe(json => this.onAddToCart.emit(json)),\n this._appEventService.onAddToQuote.subscribe(json => this.onAddToQuote.emit(json)),\n this._appEventService.onAlternativeClick.subscribe(article => this.onAlternativeClick.emit(article)),\n this._appEventService.onArticleInfoReceived.subscribe(info => this._handleAnswerInfoReceived(info)),\n this._appEventService.onArticleReceived.subscribe(article => this.onArticleReceived.emit(article)),\n this._appEventService.onSelectionsReceived.subscribe(selections => this.onSelectionsReceived.emit(selections)),\n );\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this._changeDetector.detectChanges();\n }\n\n ngOnDestroy(): void {\n this._subs.forEach(s => s.unsubscribe());\n }\n\n private _handleSettingsLoaded(loaded: boolean): void {\n if (loaded) {\n this.upAndLoaded = true;\n this._initConnection();\n }\n }\n\n private _handleAnswerInfoReceived(info: string): void {\n this.onArticleInfoReceived.next(info);\n }\n\n // we need to prepare the settings before we can use it for the 3d configurator bundle\n private async _initConnection(): Promise<void> {\n this._ione.initDefaultDevelopTestConnection();\n // settingsToUse.session = this._ione.connector.connector.session;\n setTimeout(() => {\n this._changeDetector.detectChanges();\n });\n // this._settings = settingsToUse;\n }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ArticleFullObject } from '@colijnit/ioneconnector/build/model/article-full-object';\nimport { CoText } from '@colijnit/ioneconnector/build/model/co-text';\nimport { AppEventService } from '../../service/app-event.service';\nimport { BitUtils } from '../../utils/bit-utils';\n\n@Component({\n selector: 'app-product-additional-description',\n templateUrl: './product-additional-description.component.html',\n styleUrls: ['./product-additional-description.component.scss']\n})\nexport class ProductAdditionalDescriptionComponent implements OnInit {\n\n @Input()\n public set article(value: ArticleFullObject) {\n this._article = value;\n if (this._article) {\n this.description = this.article.additionalDescription;\n this._prepareDescription();\n }\n }\n\n public get article(): ArticleFullObject {\n return this._article;\n }\n\n public description: string;\n\n private _article: ArticleFullObject;\n\n constructor(\n private _appEventService: AppEventService\n ) {}\n\n ngOnInit() {\n }\n\n public onReadMore(): void {\n this._appEventService.onUpdateProductInfoTab.next(0);\n }\n\n private _prepareDescription(): void {\n\n this.description = '';\n\n if (this.article.texts && this.article.texts.length > 0) {\n this.article.texts.forEach((txt: CoText) => {\n if (BitUtils.IsShortDescription(txt.publication)) {\n this.description += txt.text;\n }\n });\n\n this.description = this.description.replace(/<[^>]*>?/gm, '');\n if (this.description.length > 250) {\n this.description = this.description.substr(0, 250) + ' [..]';\n }\n }\n\n }\n\n}\n","import { ChangeDetectorRef, Component, ElementRef, Input, OnDestroy, ViewChild } from '@angular/core';\nimport { ArticleFullObject } from '@colijnit/ioneconnector/build/model/article-full-object';\nimport { Subscription } from 'rxjs';\nimport { AppEventService } from '../../service/app-event.service';\n\n@Component({\n selector: 'app-product-info-tabs',\n templateUrl: './product-info-tabs.component.html',\n styleUrls: ['./product-info-tabs.component.scss']\n})\nexport class ProductInfoTabsComponent implements OnDestroy {\n\n public activeTab: number;\n public activeTabHeight: number = 0;\n\n @ViewChild('tabContent')\n public tabContent: ElementRef;\n\n public tabs: any[] = [];\n\n public articleObject: ArticleFullObject;\n\n @Input ()\n set article(value: ArticleFullObject) {\n if (value) {\n this.articleObject = value;\n this._setupTabs();\n this.updateTab(0);\n }\n }\n\n private _subs: Subscription[] = [];\n\n constructor(\n private _appEventService: AppEventService\n ) {\n this._subs.push(\n this._appEventService.onUpdateProductInfoTab.subscribe((index: number) => {\n this.updateTab(index);\n this.tabContent.nativeElement.scrollIntoView({ behavior: 'smooth' });\n })\n );\n }\n\n ngOnDestroy(): void {\n this._subs.forEach(s => s.unsubscribe());\n }\n\n public updateTab(tabIndex: number) {\n this.activeTab = tabIndex;\n this.updateHeight(tabIndex);\n }\n\n public updateHeight(tabIndex: number): void {\n if (this.tabContent.nativeElement.children.length > 0) {\n if (this.tabContent.nativeElement.children[tabIndex] !== undefined) {\n this.activeTabHeight = this.tabContent.nativeElement.children[tabIndex].offsetHeight;\n }\n }\n }\n\n private _setupTabs(): void {\n this.tabs.push({ title: 'DESCRIPTION' });\n this.tabs.push({ title: 'FEATURES' });\n\n if (this.articleObject.documents !== undefined && this.articleObject.documents.length > 0) {\n this.tabs.push({ title: 'DOWNLOADS' });\n }\n\n if (this.articleObject.symbols !== undefined && this.articleObject.symbols.length > 0) {\n this.tabs.push({ title: 'SYMBOLS' });\n }\n\n }\n\n}\n","import {Injectable} from '@angular/core';\r\nimport {SettingsService} from './settings.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AppInitializerService {\r\n\r\n constructor(\r\n private _settingsService: SettingsService\r\n ) {\r\n }\r\n\r\n public async initializeApp(): Promise<void> {\r\n return this._settingsService.initializeSettings();\r\n }\r\n\r\n}\r\n","import { APP_INITIALIZER, CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\n\nimport {\n ArticleTileModule,\n ButtonModule,\n FilesUploadModule,\n IconModule,\n InputTextModule,\n LevelIndicatorModule,\n LoaderModule,\n NumberPickerModule,\n PriceDisplayPipeModule,\n ScrollContainerModule,\n TileModule\n} from '@colijnit/corecomponents';\nimport { ProductDescriptionComponent } from './components/product-description/product-description.component';\nimport { ImageCarouselComponent } from './components/image-carousel/image-carousel.component';\nimport { ProductPageComponent } from './components/product-page/product-page.component';\nimport { IconCacheService } from './service/icon-cache.service';\nimport { IOneConnectorAdapterService } from './service/i-one-connector-adapter.service';\nimport { IOneControllerService } from './service/i-one-controller.service';\nimport { ProductDocumentsComponent } from './components/product-documents/product-documents.component';\nimport { ProductRelatedComponent } from './components/product-related/product-related.component';\nimport { HeaderComponent } from './components/core/header/header.component';\nimport { ProductInfoComponent } from './components/product-info/product-info.component';\nimport { ProductAdditionalInfoComponent } from './components/product-additional-info/product-additional-info.component';\nimport { ProductPropertiesComponent } from './components/product-properties/product-properties.component';\nimport { ProductDeliveryComponent } from './components/product-delivery/product-delivery.component';\nimport { ProductStockComponent } from './components/product-stock/product-stock.component';\nimport { ProductSymbolsComponent } from './components/product-symbols/product-symbols.component';\nimport { ProductPriceComponent } from './components/product-price/product-price.component';\nimport { ProductAddtocartComponent } from './components/product-addtocart/product-addtocart.component';\nimport { LocalizePipe } from './pipe/localize.pipe';\nimport { ProductSelectorTypeComponent } from './components/product-selector-type/product-selector-type.component';\nimport { IoneProductComponent } from './ione-product.component';\nimport { CommonModule } from '@angular/common';\nimport { ProductAdditionalDescriptionComponent } from './components/product-additional-description/product-additional-description.component';\nimport { ProductInfoTabsComponent } from './components/product-info-tabs/product-info-tabs.component';\n// import { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { AppInitializerService } from './service/app-initializer.service';\nimport { SettingsService } from './service/settings.service';\n\nexport function initializeApp(context: AppInitializerService) {\n const x = () => context.initializeApp();\n return x;\n}\n\n@NgModule({\n imports: [\n // BrowserAnimationsModule,\n CommonModule,\n ButtonModule,\n IconModule,\n NumberPickerModule,\n InputTextModule,\n FilesUploadModule,\n LoaderModule,\n ScrollContainerModule,\n TileModule,\n LevelIndicatorModule,\n PriceDisplayPipeModule,\n ArticleTileModule\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n declarations: [\n IoneProductComponent,\n ProductPageComponent,\n ImageCarouselComponent,\n ProductDescriptionComponent,\n ProductDocumentsComponent,\n ProductRelatedComponent,\n HeaderComponent,\n ProductInfoComponent,\n ProductAdditionalInfoComponent,\n ProductPropertiesComponent,\n ProductDeliveryComponent,\n ProductStockComponent,\n ProductSymbolsComponent,\n ProductPriceComponent,\n ProductAddtocartComponent,\n ProductInfoTabsComponent,\n LocalizePipe,\n ProductSelectorTypeComponent,\n ProductAdditionalDescriptionComponent\n ],\n entryComponents: [\n IoneProductComponent\n ],\n providers: [\n SettingsService,\n IOneControllerService,\n IOneConnectorAdapterService,\n IconCacheService,\n {\n provide: APP_INITIALIZER,\n useFactory: initializeApp,\n deps: [AppInitializerService],\n multi: true\n }\n ],\n exports: [IoneProductComponent],\n bootstrap: [\n IoneProductComponent\n ]\n})\nexport class IoneProductModule {\n}\n"]}
|