{"version":3,"sources":["webpack://ArtifiIntegration/webpack/universalModuleDefinition","webpack://ArtifiIntegration/webpack/bootstrap","webpack://ArtifiIntegration/./src/enums.ts","webpack://ArtifiIntegration/./src/index.ts","webpack://ArtifiIntegration/./src/utils.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;QCVA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;;;;;;AClFa;AACb;AACA,cAAc,mBAAO,CAAC,+BAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,gEAAgE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,6DAA6D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,6GAA6G;AAC9G,kDAAkD,yCAAW;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4EAA4E;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sEAAsE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,+EAA+E;AAChF;AACA;AACA;AACA;AACA;AACA,CAAC,mEAAmE;;;;;;;;;;;;;ACzEvD;AACb;AACA;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,+DAA+D,gBAAgB,EAAE,EAAE;AAC9G;AACA,mCAAmC,MAAM,6BAA6B,EAAE,YAAY,WAAW,EAAE;AACjG,kCAAkC,MAAM,iCAAiC,EAAE,YAAY,WAAW,EAAE;AACpG,+BAA+B,qFAAqF;AACpH;AACA,KAAK;AACL;AACA;AACA,aAAa,6BAA6B,0BAA0B,aAAa,EAAE,qBAAqB;AACxG,gBAAgB,qDAAqD,oEAAoE,aAAa,EAAE;AACxJ,sBAAsB,sBAAsB,qBAAqB,GAAG;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,kCAAkC,SAAS;AAC3C,kCAAkC,WAAW,UAAU;AACvD,yCAAyC,cAAc;AACvD;AACA,6GAA6G,OAAO,UAAU;AAC9H,gFAAgF,iBAAiB,OAAO;AACxG,wDAAwD,gBAAgB,QAAQ,OAAO;AACvF,8CAA8C,gBAAgB,gBAAgB,OAAO;AACrF;AACA,iCAAiC;AACjC;AACA;AACA,SAAS,YAAY,aAAa,OAAO,EAAE,UAAU,WAAW;AAChE,mCAAmC,SAAS;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,cAAc;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAO,CAAC,+BAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB,EAAE,EAAE;AACrB;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,wCAAwC,uBAAuB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,aAA2B,IAAI,KAAE;AAC/F;AACA;AACA;AACA;AACA;AACA,6CAA6C,8CAA8C;AAC3F;AACA;AACA,oDAAoD,+CAA+C;AACnG;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,wCAAwC,uBAAuB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,aAA2B,IAAI,KAAE;AAC/E;AACA;AACA;AACA;AACA;AACA,6BAA6B,8CAA8C;AAC3E;AACA;AACA,oCAAoC,+CAA+C;AACnF;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,sCAAsC,qUAAqU,qCAAqC,sDAAsD,KAAK,+BAA+B,sCAAsC,KAAK;AACrhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iKAAiK;AACjK,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4GAA4G;AAC5G,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,8EAA8E;AAC9E;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AC1ca;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"artifi-integration.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ArtifiIntegration\"] = factory();\n\telse\n\t\troot[\"ArtifiIntegration\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/index.ts\");\n","\"use strict\";\r\nexports.__esModule = true;\r\nvar utils_1 = require(\"./utils\");\r\nvar Environment;\r\n(function (Environment) {\r\n Environment[\"demo\"] = \"demo\";\r\n Environment[\"stageDev\"] = \"stageDev\";\r\n Environment[\"integrationDev\"] = \"integrationDev\";\r\n Environment[\"production\"] = \"production\";\r\n Environment[\"development\"] = \"development\";\r\n Environment[\"stage\"] = \"stage\";\r\n Environment[\"integration\"] = \"integration\";\r\n})(Environment = exports.Environment || (exports.Environment = {}));\r\nvar Components;\r\n(function (Components) {\r\n Components[\"text\"] = \"textbox\";\r\n Components[\"image\"] = \"image\";\r\n Components[\"fabric\"] = \"fabric\";\r\n Components[\"irs\"] = \"irs\";\r\n Components[\"productview\"] = \"productview\";\r\n Components[\"price\"] = \"price\";\r\n Components[\"custom\"] = \"custom\";\r\n Components[\"productOptions\"] = \"productOptions\";\r\n Components[\"zoom\"] = \"zoom\";\r\n Components[\"addToCart\"] = \"addToCart\";\r\n})(Components = exports.Components || (exports.Components = {}));\r\nvar DefaultComponentContainers;\r\n(function (DefaultComponentContainers) {\r\n DefaultComponentContainers[\"textbox\"] = \"artifi-textbox\";\r\n DefaultComponentContainers[\"image\"] = \"artifi-image\";\r\n DefaultComponentContainers[\"fabric\"] = \"artifi-fabric\";\r\n DefaultComponentContainers[\"irs\"] = \"artifi-irs\";\r\n DefaultComponentContainers[\"productview\"] = \"artifi-product-views\";\r\n DefaultComponentContainers[\"price\"] = \"artifi-price\";\r\n DefaultComponentContainers[\"custom\"] = \"artifi-custom\";\r\n DefaultComponentContainers[\"productOptions\"] = \"artifi-product-options\";\r\n DefaultComponentContainers[\"zoom\"] = \"artifi-zoom\";\r\n DefaultComponentContainers[\"addToCart\"] = \"artifi-add-to-cart\";\r\n})(DefaultComponentContainers = exports.DefaultComponentContainers || (exports.DefaultComponentContainers = {}));\r\nexports.CDNServer = utils_1.getEnvironmentCDNPath(process.env.CLIENT);\r\nvar ExternalScripts;\r\n(function (ExternalScripts) {\r\n ExternalScripts[\"redux\"] = \"https://unpkg.com/redux@4.0.5/dist/redux.js\";\r\n ExternalScripts[\"react\"] = \"https://unpkg.com/react@16/umd/react.development.js\";\r\n ExternalScripts[\"reactDom\"] = \"https://unpkg.com/react-dom@16/umd/react-dom.development.js\";\r\n ExternalScripts[\"reactRedux\"] = \"https://cdnjs.cloudflare.com/ajax/libs/react-redux/7.2.0/react-redux.min.js\";\r\n})(ExternalScripts = exports.ExternalScripts || (exports.ExternalScripts = {}));\r\n// NOTE: redux-dynamic-modules/core/thunk didn't have any CDN right now.\r\nvar ArtifiScripts;\r\n(function (ArtifiScripts) {\r\n ArtifiScripts[\"reduxDynamicModule\"] = \"core/scripts/dev/redux-dynamic-modules\";\r\n ArtifiScripts[\"reduxDynamicModuleCore\"] = \"core/scripts/dev/redux-dynamic-modules-core\";\r\n ArtifiScripts[\"reduxDynamicModuleThunk\"] = \"core/scripts/dev/redux-dynamic-modules-thunk\";\r\n ArtifiScripts[\"artifiCore\"] = \"core/dist/artifi\";\r\n})(ArtifiScripts = exports.ArtifiScripts || (exports.ArtifiScripts = {}));\r\nvar ArtifiComponents;\r\n(function (ArtifiComponents) {\r\n ArtifiComponents[\"textbox\"] = \"textbox/dist/artifi-textbox\";\r\n ArtifiComponents[\"image\"] = \"graphics/dist/artifi-graphics\";\r\n ArtifiComponents[\"fabric\"] = \"fabric-renderer/dist/artifi-fabric\";\r\n ArtifiComponents[\"irs\"] = \"irs-renderer/dist/artifi-irs\";\r\n ArtifiComponents[\"productview\"] = \"product-views/dist/artifi-product-views\";\r\n ArtifiComponents[\"price\"] = \"price/dist/artifi-price\";\r\n ArtifiComponents[\"custom\"] = \"#\";\r\n ArtifiComponents[\"productOptions\"] = \"product-options/dist/artifi-product-options\";\r\n ArtifiComponents[\"zoom\"] = \"zoom/dist/artifi-zoom\";\r\n ArtifiComponents[\"addToCart\"] = \"add-to-cart/dist/artifi-add-to-cart\";\r\n})(ArtifiComponents = exports.ArtifiComponents || (exports.ArtifiComponents = {}));\r\n/* WindowEvents are just for outside events for parent application */\r\nvar WindowEvents;\r\n(function (WindowEvents) {\r\n WindowEvents[\"INIT_START\"] = \"artifi-component-init-start\";\r\n WindowEvents[\"INIT_DONE\"] = \"artifi-component-init-done\";\r\n})(WindowEvents = exports.WindowEvents || (exports.WindowEvents = {}));\r\n","\"use strict\";\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(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))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nvar __awaiter = (this && this.__awaiter) || function (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\nvar __generator = (this && this.__generator) || function (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\nvar __rest = (this && this.__rest) || function (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\nexports.__esModule = true;\r\nvar enums_1 = require(\"./enums\");\r\nvar init = /** @class */ (function () {\r\n function init(_a) {\r\n var _this = this;\r\n var props = __rest(_a, []);\r\n this.props = props;\r\n this.props.environment = this.props.environment\r\n ? this.props.environment\r\n : enums_1.Environment.development;\r\n this.loadDependencies().then(function () {\r\n _this.props.onCoreLoaded && _this.props.onCoreLoaded();\r\n if (_this.props.aotLoading) {\r\n _this.loadComponents();\r\n }\r\n });\r\n }\r\n init.prototype.dispatchWindowEvents = function (EventName) {\r\n var event = new Event(EventName);\r\n window.dispatchEvent(event);\r\n };\r\n init.prototype.loadComponents = function () {\r\n this.dispatchWindowEvents(enums_1.WindowEvents.INIT_START);\r\n this.initCore();\r\n };\r\n init.prototype.loadExternalDependencies = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _a, _b, _i, item;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n _a = [];\r\n for (_b in enums_1.ExternalScripts)\r\n _a.push(_b);\r\n _i = 0;\r\n _c.label = 1;\r\n case 1:\r\n if (!(_i < _a.length)) return [3 /*break*/, 4];\r\n item = _a[_i];\r\n return [4 /*yield*/, this.loadAsyncScript(enums_1.ExternalScripts[item], false)];\r\n case 2:\r\n _c.sent();\r\n _c.label = 3;\r\n case 3:\r\n _i++;\r\n return [3 /*break*/, 1];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n init.prototype.loadArtifiDependencies = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _a, _b, _i, i, url, prefix;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n _a = [];\r\n for (_b in enums_1.ArtifiScripts)\r\n _a.push(_b);\r\n _i = 0;\r\n _c.label = 1;\r\n case 1:\r\n if (!(_i < _a.length)) return [3 /*break*/, 4];\r\n i = _a[_i];\r\n url = enums_1.CDNServer[this.props.environment] + enums_1.ArtifiScripts[i];\r\n prefix = '.js';\r\n if (i === 'artifiCore') {\r\n prefix = (this.props.environment == enums_1.Environment.development ? '.js' : '.min.js');\r\n }\r\n url += prefix;\r\n return [4 /*yield*/, this.loadScript(url, i === 'artifiCore')];\r\n case 2:\r\n _c.sent();\r\n _c.label = 3;\r\n case 3:\r\n _i++;\r\n return [3 /*break*/, 1];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n init.prototype.loadDependencies = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var promise;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n promise = new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: \r\n /* External Scripts */\r\n return [4 /*yield*/, this.loadExternalDependencies()];\r\n case 1:\r\n /* External Scripts */\r\n _a.sent();\r\n /* Artifi Scripts */\r\n return [4 /*yield*/, this.loadArtifiDependencies()];\r\n case 2:\r\n /* Artifi Scripts */\r\n _a.sent();\r\n resolve();\r\n return [2 /*return*/];\r\n }\r\n });\r\n }); });\r\n return [2 /*return*/, promise];\r\n });\r\n });\r\n };\r\n init.prototype.loadAsyncScript = function (url, buildTimestamp) {\r\n if (buildTimestamp === void 0) { buildTimestamp = true; }\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, new Promise(function (resolve, reject) {\r\n // resolve if already loaded\r\n if (document.querySelector('script[src=\"' + url + '\"]')) {\r\n resolve({\r\n script: url,\r\n loaded: true,\r\n status: \"Already Loaded\",\r\n });\r\n }\r\n else {\r\n // load script\r\n var script = document.createElement(\"script\");\r\n script.type = \"text/javascript\";\r\n // script.async = true;\r\n if (buildTimestamp) {\r\n script.src = url + '?' + (process.env.BUILD_TIMESTAMP || '');\r\n }\r\n else {\r\n script.src = url;\r\n }\r\n script.onload = function () {\r\n resolve({ script: url, loaded: true, status: \"Loaded\" });\r\n };\r\n script.onerror = function (error) {\r\n return resolve({ script: url, loaded: false, status: \"Loaded\" });\r\n };\r\n document.getElementsByTagName(\"head\")[0].appendChild(script);\r\n }\r\n })];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n init.prototype.loadScript = function (url, buildTimestamp) {\r\n if (buildTimestamp === void 0) { buildTimestamp = true; }\r\n return new Promise(function (resolve, reject) {\r\n // resolve if already loaded\r\n if (document.querySelector('script[src=\"' + url + '\"]')) {\r\n resolve({\r\n script: url,\r\n loaded: true,\r\n status: \"Already Loaded\",\r\n });\r\n }\r\n else {\r\n // load script\r\n var script = document.createElement(\"script\");\r\n script.type = \"text/javascript\";\r\n if (buildTimestamp) {\r\n script.src = url + '?' + (process.env.BUILD_TIMESTAMP || '');\r\n }\r\n else {\r\n script.src = url;\r\n }\r\n script.onload = function () {\r\n resolve({ script: url, loaded: true, status: \"Loaded\" });\r\n };\r\n script.onerror = function (error) {\r\n return resolve({ script: url, loaded: false, status: \"Loaded\" });\r\n };\r\n document.getElementsByTagName(\"head\")[0].appendChild(script);\r\n }\r\n });\r\n };\r\n init.prototype.initCore = function () {\r\n var data = __assign(__assign({ sku: this.props.sku, websiteId: this.props.websiteId, userId: this.props.userId, isGuest: this.props.isGuest, webApiClientKey: this.props.webApiClientKey, productCode: this.props.productCode, divisionId: this.props.divisionId, productId: this.props.productId, familyId: this.props.familyId, companyId: this.props.companyId }, (this.props.customizedProductId ? { customizedProductId: this.props.customizedProductId } : {})), (this.props.environment ? { environment: this.props.environment } : {}));\r\n this.dispatch(window._Artifi.AppActions.INIT_APP_MODEL, data);\r\n this.subscribeStore();\r\n };\r\n init.prototype.subscribeStore = function () {\r\n var _this = this;\r\n window._Artifi.Store.subscribe(function () {\r\n var state = window._Artifi.Store.getState();\r\n var EditorAction = window._Artifi.EditorAction;\r\n var lastAction = state.lastAction;\r\n switch (lastAction.type) {\r\n case EditorAction.VIEW_LOADED: {\r\n _this.loadOtherComponents(state);\r\n break;\r\n }\r\n }\r\n });\r\n };\r\n init.prototype.getComponentContainer = function (component) {\r\n var container = enums_1.DefaultComponentContainers[component];\r\n if (this.props[component]) {\r\n var customConfig = this.props[component];\r\n if (typeof customConfig == \"string\") {\r\n container = customConfig;\r\n }\r\n else if (typeof customConfig == \"object\" && customConfig.id) {\r\n container = customConfig.id;\r\n }\r\n }\r\n return document.querySelector(\"#\" + container);\r\n };\r\n init.prototype.getComponentCDNLink = function (component) {\r\n var url = enums_1.CDNServer[this.props.environment] + enums_1.ArtifiComponents[component];\r\n url = url + (this.props.environment == enums_1.Environment.development ? '.js' : '.min.js');\r\n if (this.props[component]) {\r\n var customConfig = this.props[component];\r\n if (typeof customConfig == \"object\" && customConfig.url) {\r\n url = customConfig.url;\r\n }\r\n }\r\n return url;\r\n };\r\n init.prototype.loadProductViews = function () {\r\n var _this = this;\r\n var productViewContainer = this.getComponentContainer(enums_1.Components.productview);\r\n if (productViewContainer) {\r\n this.loadAsyncScript(this.getComponentCDNLink(enums_1.Components.productview)).then(function () {\r\n var productViewConfig = _this.props[enums_1.Components.productview];\r\n _this.renderComponent(window.ArtifiProductViews.ProductViewsContainer, productViewContainer, (productViewConfig && productViewConfig.props) || {});\r\n });\r\n }\r\n };\r\n init.prototype.loadPrice = function () {\r\n var _this = this;\r\n var priceContainer = this.getComponentContainer(enums_1.Components.price);\r\n if (priceContainer) {\r\n this.loadAsyncScript(this.getComponentCDNLink(enums_1.Components.price)).then(function () {\r\n var priceConfig = _this.props[enums_1.Components.price];\r\n priceConfig = priceConfig && priceConfig.props ? priceConfig.props : {};\r\n _this.renderComponent(window.ArtifiPrice.PriceContainer, priceContainer, (priceConfig) || {});\r\n });\r\n }\r\n };\r\n init.prototype.loadProductOptions = function () {\r\n var _this = this;\r\n var productOptionsContainer = this.getComponentContainer(enums_1.Components.productOptions);\r\n if (productOptionsContainer) {\r\n this.loadAsyncScript(this.getComponentCDNLink(enums_1.Components.productOptions)).then(function () {\r\n var clientProps = _this.props[enums_1.Components.productOptions];\r\n var props = clientProps && clientProps.props ? clientProps.props : {};\r\n _this.renderComponent(window.ArtifiProductOptions.ProductOptionsContainer, productOptionsContainer, props);\r\n });\r\n }\r\n };\r\n init.prototype.loadZoom = function () {\r\n var _this = this;\r\n var zoomContainer = this.getComponentContainer(enums_1.Components.zoom);\r\n if (zoomContainer) {\r\n this.loadAsyncScript(this.getComponentCDNLink(enums_1.Components.zoom)).then(function () {\r\n var clientProps = _this.props[enums_1.Components.zoom];\r\n var props = clientProps && clientProps.props ? clientProps.props : {};\r\n _this.renderComponent(window.ArtifiZoom.ZoomContainer, zoomContainer, props);\r\n });\r\n }\r\n };\r\n init.prototype.loadAddToCart = function () {\r\n var _this = this;\r\n var addToCartContainer = this.getComponentContainer(enums_1.Components.addToCart);\r\n if (addToCartContainer) {\r\n this.loadAsyncScript(this.getComponentCDNLink(enums_1.Components.addToCart)).then(function () {\r\n var clientProps = _this.props[enums_1.Components.addToCart];\r\n var props = clientProps && clientProps.props ? clientProps.props : {};\r\n _this.renderComponent(window.ArtifiAddToCart.AddToCartContainer, addToCartContainer, props);\r\n });\r\n }\r\n };\r\n init.prototype.isWidgetAllowed = function (widgetsData, views, currentWidget) {\r\n if (widgetsData[currentWidget].allow) {\r\n return true;\r\n }\r\n var widgetExistsInView = false;\r\n for (var currentView in views) {\r\n if (views[currentView][currentWidget] && Object.keys(views[currentView][currentWidget]).length > 0) {\r\n widgetExistsInView = true;\r\n break;\r\n }\r\n }\r\n return widgetExistsInView;\r\n };\r\n init.prototype.loadWidgetComponent = function (widgetsData, views) {\r\n for (var widget in widgetsData) {\r\n if (this.isWidgetAllowed(widgetsData, views, widget)) {\r\n switch (widget) {\r\n case enums_1.Components.text:\r\n this.renderTextComponent();\r\n break;\r\n case enums_1.Components.image:\r\n this.renderImageComponent();\r\n break;\r\n }\r\n }\r\n }\r\n };\r\n init.prototype.loadOtherComponents = function (state) {\r\n var _this = this;\r\n /* load renderer component */\r\n var renderer = this.getRenderer(state);\r\n var sku = state.appData.sku;\r\n var viewData = state.editorData.views[sku];\r\n var selectedViewId = viewData.selectedView.viewId;\r\n this.displayRenderer(renderer);\r\n /* render hybrid or custom component */\r\n if (typeof this.props[enums_1.Components.custom] != 'undefined') {\r\n var customContainer_1 = this.getComponentContainer(enums_1.Components.custom);\r\n if (customContainer_1) {\r\n this.loadAsyncScript(this.getComponentCDNLink(enums_1.Components.custom)).then(function () {\r\n if (_this.props[enums_1.Components.custom]['libName']) {\r\n // TODO: dynamically add component name\r\n _this.renderComponent(window._artifiComponent.MaxwellComponent, customContainer_1);\r\n }\r\n });\r\n }\r\n }\r\n /* Text graphics panel */\r\n var widgetsData = state.editorData.views[sku].viewList[selectedViewId]\r\n .allowedObjects;\r\n this.loadProductViews();\r\n this.loadPrice();\r\n this.loadProductOptions();\r\n this.loadWidgetComponent(widgetsData, state.editorData.views[sku].viewList);\r\n this.loadZoom();\r\n this.loadAddToCart();\r\n this.dispatchWindowEvents(enums_1.WindowEvents.INIT_DONE);\r\n if (this.props.onComponentsLoaded) {\r\n this.props.onComponentsLoaded();\r\n }\r\n };\r\n init.prototype.getRenderer = function (state) {\r\n var renderer;\r\n if (this.props.renderer) {\r\n renderer = this.props.renderer;\r\n }\r\n else {\r\n renderer = state.editorData.renderer\r\n ? state.editorData.renderer\r\n : enums_1.Components.fabric;\r\n }\r\n return renderer;\r\n };\r\n init.prototype.displayRenderer = function (renderer) {\r\n var _this = this;\r\n var rendererContainer = this.getComponentContainer(renderer);\r\n if (rendererContainer) {\r\n switch (renderer) {\r\n case enums_1.Components.fabric:\r\n this.loadAsyncScript(this.getComponentCDNLink(enums_1.Components.fabric)).then(function () {\r\n _this.renderComponent(window.ArtifiFabric.FabricContainer, rendererContainer);\r\n });\r\n break;\r\n case enums_1.Components.irs:\r\n this.loadAsyncScript(this.getComponentCDNLink(enums_1.Components.irs)).then(function () {\r\n _this.renderComponent(window.ArtifiIrs.IrsContainer, rendererContainer);\r\n });\r\n break;\r\n }\r\n }\r\n };\r\n init.prototype.renderTextComponent = function () {\r\n var _this = this;\r\n var textContainer = this.getComponentContainer(enums_1.Components.text);\r\n if (textContainer) {\r\n this.loadAsyncScript(this.getComponentCDNLink(enums_1.Components.text)).then(function () {\r\n _this.renderComponent(window.ArtifiTextbox.TextContainer, textContainer);\r\n });\r\n }\r\n };\r\n init.prototype.renderImageComponent = function () {\r\n var _this = this;\r\n var imageContainer = this.getComponentContainer(enums_1.Components.image);\r\n if (imageContainer) {\r\n this.loadAsyncScript(this.getComponentCDNLink(enums_1.Components.image)).then(function () {\r\n _this.renderComponent(window.ArtifiGraphics\r\n .GraphicsContainer, imageContainer);\r\n });\r\n }\r\n };\r\n init.prototype.dispatch = function (type, payload) {\r\n window._Artifi.Store.dispatch({\r\n type: type,\r\n payload: payload,\r\n });\r\n };\r\n init.prototype.renderComponent = function (element, target, props) {\r\n window.ReactDOM.render(window.React.createElement(element, props || {}), target);\r\n };\r\n return init;\r\n}());\r\nexports.init = init;\r\n","\"use strict\";\r\nexports.__esModule = true;\r\nfunction getEnvironmentCDNPath(client) {\r\n if (!client) {\r\n return {\r\n production: \"https://prod.artifi.io/\",\r\n development: \"./packages/\",\r\n stage: \"\",\r\n integration: \"//react.artifi.net/packages/\",\r\n demo: \"\",\r\n integrationDev: './packages/',\r\n stageDev: ''\r\n };\r\n }\r\n if (client === 'staples') {\r\n return {\r\n production: \"https://prod.artifi.io/\",\r\n development: \"./staples/\",\r\n stage: \"\",\r\n integration: \"//react.artifi.net/staples/\",\r\n demo: \"\",\r\n integrationDev: './staples/',\r\n stageDev: ''\r\n };\r\n }\r\n}\r\nexports.getEnvironmentCDNPath = getEnvironmentCDNPath;\r\n"],"sourceRoot":""}