@mailbiz/onsite-godeep-vendor 0.1.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/onsite-godeep-vendor.d.ts +224 -0
- package/dist/onsite-godeep-vendor.js +1 -0
- package/dist/onsite-godeep-vendor.js.map +1 -0
- package/dist/onsite-godeep-vendor.min.d.ts +224 -0
- package/dist/onsite-godeep-vendor.min.js +125 -0
- package/dist/onsite-godeep-vendor.min.js.map +1 -0
- package/package.json +64 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onsite-godeep-vendor.js","sources":["../../../common/temp/node_modules/.pnpm/tslib@2.3.0/node_modules/tslib/tslib.es6.js","../../../common/temp/node_modules/.pnpm/tslib@2.3.1/node_modules/tslib/tslib.es6.js","../../../common/temp/node_modules/.pnpm/@mailbiz+tracker-core@0.1.13/node_modules/@mailbiz/tracker-core/dist/index.module.js","../../../common/temp/node_modules/.pnpm/lz-string@1.4.4/node_modules/lz-string/libs/lz-string.js","../../../common/temp/node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/rng.js","../../../common/temp/node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/regex.js","../../../common/temp/node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/validate.js","../../../common/temp/node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/stringify.js","../../../common/temp/node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/parse.js","../../../common/temp/node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/v35.js","../../../common/temp/node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/native.js","../../../common/temp/node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/v4.js","../../../common/temp/node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/sha1.js","../../../common/temp/node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/v5.js","../../../libraries/onsite-core/dist/onsite-core.module.js","../src/helpers.ts","../src/types.ts","../src/urls.ts","../src/tracker.ts","../src/cart-recovery.ts","../src/vendor.ts","../src/index.ts"],"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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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 var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(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, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, 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\n/** @deprecated */\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\n/** @deprecated */\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 __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\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\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\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 (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, 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, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","/*! *****************************************************************************\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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 var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(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, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, 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\n/** @deprecated */\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\n/** @deprecated */\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 __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\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\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\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 (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, 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, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { __spreadArray, __assign } from 'tslib';\nimport { v4 } from 'uuid';\n\nvar version$1 = \"0.1.13\";\n\n/**\n * Decodes a url safe Base 64 encoded string\n * @remarks See: {@link http://tools.ietf.org/html/rfc4648#page-7}\n * @param data - String to decode\n * @returns The decoded string\n */\n/**\n * Encodes a string into a url safe Base 64 encoded string\n * @remarks See: {@link http://tools.ietf.org/html/rfc4648#page-7}\n * @param data - String to encode\n * @returns The url safe Base 64 string\n */\nfunction base64urlencode(data) {\n if (!data) {\n return data;\n }\n var enc = base64encode(data);\n return enc.replace(/=/g, '').replace(/\\+/g, '-').replace(/\\//g, '_');\n}\nvar b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n/**\n * Encode string as base64.\n * Any type can be passed, but will be stringified\n *\n * @param data - string to encode\n * @returns base64-encoded string\n */\nfunction base64encode(data) {\n // discuss at: http://phpjs.org/functions/base64_encode/\n // original by: Tyler Akins (http://rumkin.com)\n // improved by: Bayron Guevara\n // improved by: Thunder.m\n // improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\n // improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\n // improved by: Rafał Kukawski (http://kukawski.pl)\n // bugfixed by: Pellentesque Malesuada\n // example 1: base64_encode('Kevin van Zonneveld');\n // returns 1: 'S2V2aW4gdmFuIFpvbm5ldmVsZA=='\n // example 2: base64_encode('a');\n // returns 2: 'YQ=='\n // example 3: base64_encode('✓ à la mode');\n // returns 3: '4pyTIMOgIGxhIG1vZGU='\n var o1;\n var o2;\n var o3;\n var h1;\n var h2;\n var h3;\n var h4;\n var bits;\n var i = 0;\n var ac = 0;\n var tmp_arr = [];\n if (!data) {\n return data;\n }\n data = unescape(encodeURIComponent(data));\n do {\n // pack three octets into four hexets\n o1 = data.charCodeAt(i++);\n o2 = data.charCodeAt(i++);\n o3 = data.charCodeAt(i++);\n bits = (o1 << 16) | (o2 << 8) | o3;\n h1 = (bits >> 18) & 0x3f;\n h2 = (bits >> 12) & 0x3f;\n h3 = (bits >> 6) & 0x3f;\n h4 = bits & 0x3f;\n // use hexets to index into b64, and append result to encoded string\n tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);\n } while (i < data.length);\n var enc = tmp_arr.join('');\n var r = data.length % 3;\n return (r ? enc.slice(0, r - 3) : enc) + '==='.slice(r || 3);\n}\n\nvar label = 'MB Tracker: ';\nvar LOG_LEVEL;\n(function (LOG_LEVEL) {\n LOG_LEVEL[LOG_LEVEL[\"none\"] = 0] = \"none\";\n LOG_LEVEL[LOG_LEVEL[\"error\"] = 1] = \"error\";\n LOG_LEVEL[LOG_LEVEL[\"warn\"] = 2] = \"warn\";\n LOG_LEVEL[LOG_LEVEL[\"debug\"] = 3] = \"debug\";\n LOG_LEVEL[LOG_LEVEL[\"info\"] = 4] = \"info\";\n})(LOG_LEVEL || (LOG_LEVEL = {}));\nvar LOG = logger();\nfunction logger(logLevel) {\n if (logLevel === void 0) { logLevel = LOG_LEVEL.warn; }\n function setLogLevel(level) {\n if (LOG_LEVEL[level]) {\n logLevel = level;\n }\n else {\n logLevel = LOG_LEVEL.warn;\n }\n }\n /**\n * Log errors, with or without error object\n */\n function error(message, error) {\n var extraParams = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n extraParams[_i - 2] = arguments[_i];\n }\n if (logLevel >= LOG_LEVEL.error && typeof console !== 'undefined') {\n var logMsg = label + message + '\\n';\n if (error) {\n console.error.apply(console, __spreadArray([logMsg + '\\n', error], extraParams));\n }\n else {\n console.error.apply(console, __spreadArray([logMsg], extraParams));\n }\n }\n }\n /**\n * Log warnings, with or without error object\n */\n function warn(message, error) {\n var extraParams = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n extraParams[_i - 2] = arguments[_i];\n }\n if (logLevel >= LOG_LEVEL.warn && typeof console !== 'undefined') {\n var logMsg = label + message;\n if (error) {\n console.warn.apply(console, __spreadArray([logMsg + '\\n', error], extraParams));\n }\n else {\n console.warn.apply(console, __spreadArray([logMsg], extraParams));\n }\n }\n }\n /**\n * Log debug messages\n */\n function debug(message) {\n var extraParams = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n extraParams[_i - 1] = arguments[_i];\n }\n if (logLevel >= LOG_LEVEL.debug && typeof console !== 'undefined') {\n console.debug.apply(console, __spreadArray([label + message], extraParams));\n }\n }\n /**\n * Log info messages\n */\n function info(message) {\n var extraParams = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n extraParams[_i - 1] = arguments[_i];\n }\n if (logLevel >= LOG_LEVEL.info && typeof console !== 'undefined') {\n console.info.apply(console, __spreadArray([label + message], extraParams));\n }\n }\n return { setLogLevel: setLogLevel, warn: warn, error: error, debug: debug, info: info };\n}\n\nfunction payloadBuilder() {\n var dict = {};\n var allJson = [];\n var jsonForProcessing = [];\n var processor;\n var add = function (key, value) {\n if (value != null && value !== '') {\n // null also checks undefined\n dict[key] = value;\n }\n };\n var addDict = function (dict) {\n for (var key in dict) {\n if (Object.prototype.hasOwnProperty.call(dict, key)) {\n add(key, dict[key]);\n }\n }\n };\n var addJson = function (keyIfEncoded, keyIfNotEncoded, json) {\n if (json && isNonEmptyJson(json)) {\n var jsonWithKeys = { keyIfEncoded: keyIfEncoded, keyIfNotEncoded: keyIfNotEncoded, json: json };\n jsonForProcessing.push(jsonWithKeys);\n allJson.push(jsonWithKeys);\n }\n };\n var addJsonProps = function (keyIfNotEncoded, json) {\n // If key was found in dict, use it.\n if (dict[keyIfNotEncoded] && typeof dict[keyIfNotEncoded] === 'object') {\n dict[keyIfNotEncoded] = __assign(__assign({}, dict[keyIfNotEncoded]), json);\n return;\n }\n // If already exists key the but the value was not an object, do nothing.\n if (dict[keyIfNotEncoded] && typeof dict[keyIfNotEncoded] === 'object') {\n LOG.error(\"The key '\" + keyIfNotEncoded + \"' found in dictionary but was not an object\");\n return;\n }\n var currentJsonForProcessing = jsonForProcessing.find(function (j) { return j.keyIfNotEncoded === keyIfNotEncoded; });\n var currentJson = allJson.find(function (j) { return j.keyIfNotEncoded === keyIfNotEncoded; });\n if (!currentJsonForProcessing || !currentJson) {\n return addJson(keyIfNotEncoded, keyIfNotEncoded, json);\n }\n currentJsonForProcessing.json = __assign(__assign({}, currentJsonForProcessing.json), json);\n currentJson.json = __assign(__assign({}, currentJson.json), json);\n };\n return {\n add: add,\n addDict: addDict,\n addJson: addJson,\n addJsonProps: addJsonProps,\n getPayload: function () { return dict; },\n getJson: function () { return allJson; },\n withJsonProcessor: function (jsonProcessor) {\n processor = jsonProcessor;\n },\n build: function () {\n processor === null || processor === void 0 ? void 0 : processor(this, jsonForProcessing);\n return dict;\n }\n };\n}\n/**\n * A helper to build a Mailbiz Tracker request from a set of name-value pairs, provided using the add methods.\n * Will base64 encode JSON, if desired, on build\n *\n * @returns The request builder, with add and build methods\n */\nfunction payloadJsonProcessor(encodeBase64) {\n return function (payloadBuilder, jsonForProcessing) {\n for (var _i = 0, jsonForProcessing_1 = jsonForProcessing; _i < jsonForProcessing_1.length; _i++) {\n var json = jsonForProcessing_1[_i];\n var str = JSON.stringify(json.json);\n if (encodeBase64) {\n payloadBuilder.add(json.keyIfEncoded, base64urlencode(str));\n }\n else {\n // only 'data' should be a string\n payloadBuilder.add(json.keyIfNotEncoded, json.keyIfNotEncoded === 'data' ? str : json.json);\n }\n }\n jsonForProcessing.length = 0;\n };\n}\n/**\n * Is property a non-empty JSON?\n * @param property - Checks if object is non-empty json\n */\nfunction isNonEmptyJson(property) {\n if (!isJson(property)) {\n return false;\n }\n for (var key in property) {\n if (Object.prototype.hasOwnProperty.call(property, key)) {\n return true;\n }\n }\n return false;\n}\n/**\n * Is property a JSON?\n * @param property - Checks if object is json\n */\nfunction isJson(property) {\n return (typeof property !== 'undefined' &&\n property !== null &&\n (property.constructor === {}.constructor || property.constructor === [].constructor));\n}\n\n/**\n * Transform optional/old-behavior number timestamp into`Timestamp` ADT\n *\n * @param timestamp - optional number or timestamp object\n * @returns correct timestamp object\n */\nfunction getTimestamp(timestamp) {\n if (timestamp == null) {\n return { type: 'created_at', value: new Date().toISOString() };\n }\n else if (typeof timestamp === 'string') {\n return { type: 'created_at', value: timestamp };\n }\n else if (timestamp.type === 'true_timestamp') {\n // We can return timestamp here, but this is safer fallback\n return { type: 'true_timestamp', value: timestamp.value };\n }\n else {\n return { type: 'created_at', value: timestamp.value || new Date().toISOString() };\n }\n}\nfunction getTimeZone() {\n var offset = new Date().getTimezoneOffset();\n var o = Math.abs(offset);\n return (offset < 0 ? '+' : '-') + ('00' + Math.floor(o / 60)).slice(-2) + ':' + ('00' + (o % 60)).slice(-2);\n}\n/**\n * Create a tracker core object\n *\n * @param base64 - Whether to base 64 encode contexts and self describing event JSONs\n * @param corePlugins - The core plugins to be processed with each event\n * @param callback - Function applied to every payload dictionary object\n * @returns Tracker core\n */\nfunction trackerCore(configuration) {\n if (configuration === void 0) { configuration = {}; }\n function newCore(base64, corePlugins, callback) {\n var encodeBase64 = base64;\n var payloadPairs = {}; // Dictionary of key-value pairs which get added to every payload, e.g. tracker version\n /**\n * Gets called by every trackXXX method\n * Adds context and payloadPairs name-value pairs to the payload\n * Applies the callback to the built payload\n *\n * @param pb - Payload\n * @param context - Custom contexts relating to the event\n * @param timestamp - Timestamp of the event\n * @returns Payload after the callback is applied\n */\n function track(pb, _context, timestamp) {\n var _a;\n pb.withJsonProcessor(payloadJsonProcessor(encodeBase64));\n pb.add('hash', v4());\n pb.addDict(payloadPairs);\n var tstamp = getTimestamp(timestamp);\n pb.addJson('timings', 'timings', (_a = {},\n _a[tstamp.type] = tstamp.value.toString(),\n _a.timezone = getTimeZone(),\n _a));\n corePlugins.forEach(function (plugin) {\n try {\n if (plugin.beforeTrack) {\n plugin.beforeTrack(pb);\n }\n }\n catch (ex) {\n LOG.error('Plugin beforeTrack', ex);\n }\n });\n if (typeof callback === 'function') {\n callback(pb);\n }\n var finalPayload = pb.build();\n corePlugins.forEach(function (plugin) {\n try {\n if (plugin.afterTrack) {\n plugin.afterTrack(finalPayload);\n }\n }\n catch (ex) {\n LOG.error('Plugin afterTrack', ex);\n }\n });\n return finalPayload;\n }\n /**\n * Set a persistent key-value pair to be added to every payload\n *\n * @param key - Field name\n * @param value - Field value\n */\n function addPayloadPair(key, value) {\n payloadPairs[key] = value;\n }\n /**\n * Set a persistent key-value pair to be added on json property to every payload\n *\n * @param key - Field name\n * @param value - Field value\n */\n function addJsonPayloadPair(jsonKey) {\n return function (key, value) {\n payloadPairs[jsonKey] = payloadPairs[jsonKey] || {};\n payloadPairs[jsonKey][key] = value;\n };\n }\n /**\n * Set a persistent key-value pair to be added on context property to every payload\n *\n * @param key - Field name\n * @param value - Field value\n */\n function addPayloadContextPair(key, value) {\n return addJsonPayloadPair('context')(key, value);\n }\n /**\n * Set a persistent key-value pair to be added on identity property to every payload\n *\n * @param key - Field name\n * @param value - Field value\n */\n function addPayloadIdentityPair(key, value) {\n return addJsonPayloadPair('identity')(key, value);\n }\n var core = {\n track: track,\n addPayloadPair: addPayloadPair,\n addPayloadContextPair: addPayloadContextPair,\n addPayloadIdentityPair: addPayloadIdentityPair,\n getBase64Encoding: function () {\n return encodeBase64;\n },\n setBase64Encoding: function (encode) {\n encodeBase64 = encode;\n },\n addPayloadDict: function (dict) {\n for (var key in dict) {\n if (Object.prototype.hasOwnProperty.call(dict, key)) {\n payloadPairs[key] = dict[key];\n }\n }\n },\n resetPayloadPairs: function (dict) {\n payloadPairs = isJson(dict) ? dict : {};\n },\n setTrackerVersion: function (version) {\n addPayloadContextPair('js_version', version);\n },\n setTrackerNamespace: function (_name) {\n // addPayloadPair('tna', name);\n },\n setAppId: function (appId) {\n addPayloadPair('app_id', appId);\n },\n setPlatform: function (value) {\n addPayloadContextPair('platform', value);\n },\n setUserId: function (userId) {\n addPayloadIdentityPair('user_id', userId);\n },\n setScreenResolution: function (width, height) {\n addPayloadContextPair('screen', width + 'x' + height);\n },\n setViewport: function (width, height) {\n addPayloadContextPair('view_size', width + 'x' + height);\n },\n setColorDepth: function (_depth) {\n // addPayloadPair('cd', depth);\n },\n setTimezone: function (timezone) {\n addJsonPayloadPair('timings')('timezone', timezone);\n },\n setLang: function (lang) {\n addPayloadContextPair('language', lang);\n },\n setIpAddress: function (ip) {\n addPayloadContextPair('ip', ip);\n },\n setUseragent: function (useragent) {\n addPayloadContextPair('ua', useragent);\n }\n };\n return core;\n }\n var base64 = configuration.base64, corePlugins = configuration.corePlugins, callback = configuration.callback;\n var plugins = corePlugins !== null && corePlugins !== void 0 ? corePlugins : [];\n var partialCore = newCore(base64 !== null && base64 !== void 0 ? base64 : false, plugins, callback);\n var core = __assign({}, partialCore);\n plugins === null || plugins === void 0 ? void 0 : plugins.forEach(function (plugin) {\n var _a, _b;\n (_a = plugin.logger) === null || _a === void 0 ? void 0 : _a.call(plugin, LOG);\n (_b = plugin.activateCorePlugin) === null || _b === void 0 ? void 0 : _b.call(plugin, core);\n });\n return core;\n}\n/**\n * Build a self-describing event\n * A custom event type, allowing for an event to be tracked using your own custom schema\n * and a data object which conforms to the supplied schema\n *\n * @param event - Contains the properties and schema location for the event\n * @returns PayloadBuilder to be sent to {@link @mailbiz/tracker-core#TrackerCore.track}\n */\nfunction buildSelfDescribingEvent(event) {\n var data = event.event.data, eventName = event.eventName;\n var pb = payloadBuilder();\n pb.add('event', eventName);\n pb.addJson('data', 'data', __assign({}, data));\n return pb;\n}\n/**\n * Build a Page View Event\n * Represents a Page View, which is typically fired as soon as possible when a web page\n * is loaded within the users browser. Often also fired on \"virtual page views\" within\n * Single Page Applications (SPA).\n *\n * @param event - Contains the properties for the Page View event\n * @returns PayloadBuilder to be sent to {@link @mailbiz/tracker-core#TrackerCore.track}\n */\nfunction buildPageView(event) {\n var pageUrl = event.pageUrl, pageTitle = event.pageTitle, referrer = event.referrer, keywords = event.keywords;\n var pb = payloadBuilder();\n pb.add('event', 'page.view');\n var urlPaths = (pageUrl !== null && pageUrl !== void 0 ? pageUrl : '').split('//').join('').split('/');\n var urlPath = urlPaths.length > 1 ? urlPaths[urlPaths.length - 1].split('/')[0] : '';\n pb.addJsonProps('data', {\n page: {\n title: pageTitle,\n url: pageUrl,\n path: \"/\" + urlPath,\n referrer: referrer,\n keywords: keywords\n }\n });\n return pb;\n}\n/**\n * Build a Page Ping Event\n * Fires when activity tracking is enabled in the browser.\n * Tracks same information as the last tracked Page View and includes scroll\n * information from the current page view\n *\n * @param event - Contains the properties for the Page Ping event\n * @returns PayloadBuilder to be sent to {@link @mailbiz/tracker-core#TrackerCore.track}\n */\nfunction buildPagePing(event) {\n var pageUrl = event.pageUrl, pageTitle = event.pageTitle, referrer = event.referrer, minXOffset = event.minXOffset, maxXOffset = event.maxXOffset, minYOffset = event.minYOffset, maxYOffset = event.maxYOffset;\n var pb = payloadBuilder();\n pb.add('event', 'page.ping'); // 'pp' for Page Ping\n var page = {\n title: pageTitle,\n url: pageUrl,\n referrer: referrer\n };\n if (minXOffset && !isNaN(Number(minXOffset)))\n page.pp_mix = minXOffset.toString();\n if (maxXOffset && !isNaN(Number(maxXOffset)))\n page.pp_max = maxXOffset.toString();\n if (minYOffset && !isNaN(Number(minYOffset)))\n page.pp_miy = minYOffset.toString();\n if (maxYOffset && !isNaN(Number(maxYOffset)))\n page.pp_may = maxYOffset.toString();\n pb.addJsonProps('data', {\n page: page\n });\n return pb;\n}\n/**\n * Build a Account Sync Event\n * Fires to synchronize update user data\n *\n * @param event - Contains the user data\n * @returns PayloadBuilder to be sent to {@link @mailbiz/tracker-core#TrackerCore.track}\n */\nfunction buildAccountSync(event) {\n var pb = payloadBuilder();\n pb.add('event', 'account.sync');\n pb.addJsonProps('data', __assign({}, removeEmptyProperties(__assign({}, event))));\n return pb;\n}\n/**\n * Build a Account Login Event\n * Fires when user log in\n *\n * @param event - Contains the user data\n * @returns PayloadBuilder to be sent to {@link @mailbiz/tracker-core#TrackerCore.track}\n */\nfunction buildAccountLogin(event) {\n var pb = payloadBuilder();\n pb.add('event', 'account.login');\n pb.addJsonProps('data', __assign({}, removeEmptyProperties(__assign({}, event))));\n return pb;\n}\n/**\n * Build a Add To Cart Event\n * For tracking users adding items from a cart\n * on an ecommerce site.\n *\n * @param event - Contains the properties for the Add To Cart event\n * @returns PayloadBuilder to be sent to {@link @mailbiz/tracker-core#TrackerCore.track}\n */\nfunction buildAddToCart(event) {\n return buildSelfDescribingEvent({\n event: {\n data: {\n products: event.products.map(function (p) { return removeEmptyProperties(__assign({}, p)); })\n }\n },\n eventName: 'cart.add'\n });\n}\n/**\n * Build a Cart Sync From Cart Event\n * For sync cart data\n *\n * @param event - Contains the properties for the Cart Sync From Cart event\n * @returns PayloadBuilder to be sent to {@link @mailbiz/tracker-core#TrackerCore.track}\n */\nfunction buildCartSync(event) {\n return buildSelfDescribingEvent({\n event: {\n data: __assign({}, event)\n },\n eventName: 'cart.sync'\n });\n}\n/**\n * Build a Cart Item Quantity Change Event\n *\n * @param eventName\n * @returns PayloadBuilder to be sent to {@link @mailbiz/tracker-core#TrackerCore.track}\n */\nvar buildCartChangeQuantity = function (eventName) {\n return function (event) {\n return buildSelfDescribingEvent({\n event: {\n data: __assign({}, event)\n },\n eventName: eventName\n });\n };\n};\n/**\n * Build a Cart Item update Event\n *\n * @param event - Contains the properties for the Cart event\n * @returns PayloadBuilder to be sent to {@link @mailbiz/tracker-core#TrackerCore.track}\n */\nfunction buildCartItemUpdate(event) {\n return buildCartChangeQuantity('cart.item.update')(event);\n}\n/**\n * Build a Set Postal Code From Cart Event\n *\n * @param event - Contains the properties for the Cart event\n * @returns PayloadBuilder to be sent to {@link @mailbiz/tracker-core#TrackerCore.track}\n */\nfunction buildCartSetPostalCode(event) {\n return buildSelfDescribingEvent({\n event: {\n data: __assign({}, event)\n },\n eventName: 'cart.setpostalcode'\n });\n}\n/**\n * Build a Set Coupon From Cart Event\n *\n * @param event - Contains the properties for the Cart event\n * @returns PayloadBuilder to be sent to {@link @mailbiz/tracker-core#TrackerCore.track}\n */\nfunction buildCartSetCoupon(event) {\n return buildSelfDescribingEvent({\n event: {\n data: __assign({}, event)\n },\n eventName: 'cart.setcoupon'\n });\n}\n/**\n * Build a Set Checkout Step Event\n *\n * @param event - Contains the properties for the Checkout event\n * @returns PayloadBuilder to be sent to {@link @mailbiz/tracker-core#TrackerCore.track}\n */\nfunction buildCheckoutStep(event) {\n return buildSelfDescribingEvent({\n event: {\n data: __assign({}, event)\n },\n eventName: 'checkout.step'\n });\n}\n/**\n * Build a Order Complete Event\n *\n * @param event - Contains the properties for the Order event\n * @returns PayloadBuilder to be sent to {@link @mailbiz/tracker-core#TrackerCore.track}\n */\nfunction buildOrderComplete(event) {\n return buildSelfDescribingEvent({\n event: {\n data: __assign({}, event)\n },\n eventName: 'order.complete'\n });\n}\n/**\n * Build a Order Cancel Event\n *\n * @param event - Contains the properties for the Order event\n * @returns PayloadBuilder to be sent to {@link @mailbiz/tracker-core#TrackerCore.track}\n */\nfunction buildOrderCancel(event) {\n return buildSelfDescribingEvent({\n event: {\n data: __assign({}, event)\n },\n eventName: 'order.cancel'\n });\n}\n/**\n * Build a Product View From Product Event\n * For product view data\n *\n * @param event - Contains the properties for the Product View From Product Event\n * @returns PayloadBuilder to be sent to {@link @mailbiz/tracker-core#TrackerCore.track}\n */\nfunction buildProductView(event) {\n return buildSelfDescribingEvent({\n event: {\n data: __assign({}, removeEmptyProperties(__assign({}, event)))\n },\n eventName: 'product.view'\n });\n}\n/**\n * Build a Site Search Event\n * Used when a user performs a search action on a page\n *\n * @param event - Contains the properties for the Site Search event\n * @returns PayloadBuilder to be sent to {@link @mailbiz/tracker-core#TrackerCore.track}\n */\nfunction buildSiteSearch(event) {\n var terms = event.terms, filters = event.filters, totalResults = event.totalResults, pageResults = event.pageResults;\n return buildSelfDescribingEvent({\n event: {\n data: removeEmptyProperties({ terms: terms, filters: filters, totalResults: totalResults, pageResults: pageResults })\n },\n eventName: 'site.search'\n });\n}\n/**\n * Returns a copy of a JSON with undefined and null properties removed\n *\n * @param event - JSON object to clean\n * @param exemptFields - Set of fields which should not be removed even if empty\n * @returns A cleaned copy of eventJson\n */\nfunction removeEmptyProperties(event, exemptFields) {\n if (exemptFields === void 0) { exemptFields = {}; }\n var ret = {};\n for (var k in event) {\n if (exemptFields[k] || (event[k] !== null && typeof event[k] !== 'undefined')) {\n ret[k] = event[k];\n }\n }\n return ret;\n}\n\n/**\n * A library of helpful methods for Mailbiz JavaScript Trackers\n * Contains Context Generation, Event Payload Builders, and Core Plugins.\n *\n * @packageDocumentation\n */\nvar version = version$1;\n\nexport { LOG, LOG_LEVEL, buildAccountLogin, buildAccountSync, buildAddToCart, buildCartItemUpdate, buildCartSetCoupon, buildCartSetPostalCode, buildCartSync, buildCheckoutStep, buildOrderCancel, buildOrderComplete, buildPagePing, buildPageView, buildProductView, buildSelfDescribingEvent, buildSiteSearch, isJson, isNonEmptyJson, payloadBuilder, payloadJsonProcessor, trackerCore, version };\n//# sourceMappingURL=index.module.js.map\n","// Copyright (c) 2013 Pieroxy <pieroxy@pieroxy.net>\n// This work is free. You can redistribute it and/or modify it\n// under the terms of the WTFPL, Version 2\n// For more information see LICENSE.txt or http://www.wtfpl.net/\n//\n// For more information, the home page:\n// http://pieroxy.net/blog/pages/lz-string/testing.html\n//\n// LZ-based compression algorithm, version 1.4.4\nvar LZString = (function() {\n\n// private property\nvar f = String.fromCharCode;\nvar keyStrBase64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nvar keyStrUriSafe = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$\";\nvar baseReverseDic = {};\n\nfunction getBaseValue(alphabet, character) {\n if (!baseReverseDic[alphabet]) {\n baseReverseDic[alphabet] = {};\n for (var i=0 ; i<alphabet.length ; i++) {\n baseReverseDic[alphabet][alphabet.charAt(i)] = i;\n }\n }\n return baseReverseDic[alphabet][character];\n}\n\nvar LZString = {\n compressToBase64 : function (input) {\n if (input == null) return \"\";\n var res = LZString._compress(input, 6, function(a){return keyStrBase64.charAt(a);});\n switch (res.length % 4) { // To produce valid Base64\n default: // When could this happen ?\n case 0 : return res;\n case 1 : return res+\"===\";\n case 2 : return res+\"==\";\n case 3 : return res+\"=\";\n }\n },\n\n decompressFromBase64 : function (input) {\n if (input == null) return \"\";\n if (input == \"\") return null;\n return LZString._decompress(input.length, 32, function(index) { return getBaseValue(keyStrBase64, input.charAt(index)); });\n },\n\n compressToUTF16 : function (input) {\n if (input == null) return \"\";\n return LZString._compress(input, 15, function(a){return f(a+32);}) + \" \";\n },\n\n decompressFromUTF16: function (compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 16384, function(index) { return compressed.charCodeAt(index) - 32; });\n },\n\n //compress into uint8array (UCS-2 big endian format)\n compressToUint8Array: function (uncompressed) {\n var compressed = LZString.compress(uncompressed);\n var buf=new Uint8Array(compressed.length*2); // 2 bytes per character\n\n for (var i=0, TotalLen=compressed.length; i<TotalLen; i++) {\n var current_value = compressed.charCodeAt(i);\n buf[i*2] = current_value >>> 8;\n buf[i*2+1] = current_value % 256;\n }\n return buf;\n },\n\n //decompress from uint8array (UCS-2 big endian format)\n decompressFromUint8Array:function (compressed) {\n if (compressed===null || compressed===undefined){\n return LZString.decompress(compressed);\n } else {\n var buf=new Array(compressed.length/2); // 2 bytes per character\n for (var i=0, TotalLen=buf.length; i<TotalLen; i++) {\n buf[i]=compressed[i*2]*256+compressed[i*2+1];\n }\n\n var result = [];\n buf.forEach(function (c) {\n result.push(f(c));\n });\n return LZString.decompress(result.join(''));\n\n }\n\n },\n\n\n //compress into a string that is already URI encoded\n compressToEncodedURIComponent: function (input) {\n if (input == null) return \"\";\n return LZString._compress(input, 6, function(a){return keyStrUriSafe.charAt(a);});\n },\n\n //decompress from an output of compressToEncodedURIComponent\n decompressFromEncodedURIComponent:function (input) {\n if (input == null) return \"\";\n if (input == \"\") return null;\n input = input.replace(/ /g, \"+\");\n return LZString._decompress(input.length, 32, function(index) { return getBaseValue(keyStrUriSafe, input.charAt(index)); });\n },\n\n compress: function (uncompressed) {\n return LZString._compress(uncompressed, 16, function(a){return f(a);});\n },\n _compress: function (uncompressed, bitsPerChar, getCharFromInt) {\n if (uncompressed == null) return \"\";\n var i, value,\n context_dictionary= {},\n context_dictionaryToCreate= {},\n context_c=\"\",\n context_wc=\"\",\n context_w=\"\",\n context_enlargeIn= 2, // Compensate for the first entry which should not count\n context_dictSize= 3,\n context_numBits= 2,\n context_data=[],\n context_data_val=0,\n context_data_position=0,\n ii;\n\n for (ii = 0; ii < uncompressed.length; ii += 1) {\n context_c = uncompressed.charAt(ii);\n if (!Object.prototype.hasOwnProperty.call(context_dictionary,context_c)) {\n context_dictionary[context_c] = context_dictSize++;\n context_dictionaryToCreate[context_c] = true;\n }\n\n context_wc = context_w + context_c;\n if (Object.prototype.hasOwnProperty.call(context_dictionary,context_wc)) {\n context_w = context_wc;\n } else {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n if (context_w.charCodeAt(0)<256) {\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<8 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | value;\n if (context_data_position ==bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = 0;\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<16 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++;\n context_w = String(context_c);\n }\n }\n\n // Output the code for w.\n if (context_w !== \"\") {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n if (context_w.charCodeAt(0)<256) {\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<8 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | value;\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = 0;\n }\n value = context_w.charCodeAt(0);\n for (i=0 ; i<16 ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n }\n\n // Mark the end of the stream\n value = 2;\n for (i=0 ; i<context_numBits ; i++) {\n context_data_val = (context_data_val << 1) | (value&1);\n if (context_data_position == bitsPerChar-1) {\n context_data_position = 0;\n context_data.push(getCharFromInt(context_data_val));\n context_data_val = 0;\n } else {\n context_data_position++;\n }\n value = value >> 1;\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data.push(getCharFromInt(context_data_val));\n break;\n }\n else context_data_position++;\n }\n return context_data.join('');\n },\n\n decompress: function (compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 32768, function(index) { return compressed.charCodeAt(index); });\n },\n\n _decompress: function (length, resetValue, getNextValue) {\n var dictionary = [],\n next,\n enlargeIn = 4,\n dictSize = 4,\n numBits = 3,\n entry = \"\",\n result = [],\n i,\n w,\n bits, resb, maxpower, power,\n c,\n data = {val:getNextValue(0), position:resetValue, index:1};\n\n for (i = 0; i < 3; i += 1) {\n dictionary[i] = i;\n }\n\n bits = 0;\n maxpower = Math.pow(2,2);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (next = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 2:\n return \"\";\n }\n dictionary[3] = c;\n w = c;\n result.push(c);\n while (true) {\n if (data.index > length) {\n return \"\";\n }\n\n bits = 0;\n maxpower = Math.pow(2,numBits);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (c = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 2:\n return result.join('');\n }\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n if (dictionary[c]) {\n entry = dictionary[c];\n } else {\n if (c === dictSize) {\n entry = w + w.charAt(0);\n } else {\n return null;\n }\n }\n result.push(entry);\n\n // Add w+entry[0] to the dictionary.\n dictionary[dictSize++] = w + entry.charAt(0);\n enlargeIn--;\n\n w = entry;\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n }\n }\n};\n return LZString;\n})();\n\nif (typeof define === 'function' && define.amd) {\n define(function () { return LZString; });\n} else if( typeof module !== 'undefined' && module != null ) {\n module.exports = LZString\n}\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import validate from './validate.js';\n\nfunction parse(uuid) {\n if (!validate(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nexport default parse;","import { unsafeStringify } from './stringify.js';\nimport parse from './parse.js';\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nexport const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexport const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexport default function v35(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n var _namespace;\n\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = parse(namespace);\n }\n\n if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\nfunction f(s, x, y, z) {\n switch (s) {\n case 0:\n return x & y ^ ~x & z;\n\n case 1:\n return x ^ y ^ z;\n\n case 2:\n return x & y ^ x & z ^ y & z;\n\n case 3:\n return x ^ y ^ z;\n }\n}\n\nfunction ROTL(x, n) {\n return x << n | x >>> 32 - n;\n}\n\nfunction sha1(bytes) {\n const K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n const H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof bytes === 'string') {\n const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = [];\n\n for (let i = 0; i < msg.length; ++i) {\n bytes.push(msg.charCodeAt(i));\n }\n } else if (!Array.isArray(bytes)) {\n // Convert Array-like to Array\n bytes = Array.prototype.slice.call(bytes);\n }\n\n bytes.push(0x80);\n const l = bytes.length / 4 + 2;\n const N = Math.ceil(l / 16);\n const M = new Array(N);\n\n for (let i = 0; i < N; ++i) {\n const arr = new Uint32Array(16);\n\n for (let j = 0; j < 16; ++j) {\n arr[j] = bytes[i * 64 + j * 4] << 24 | bytes[i * 64 + j * 4 + 1] << 16 | bytes[i * 64 + j * 4 + 2] << 8 | bytes[i * 64 + j * 4 + 3];\n }\n\n M[i] = arr;\n }\n\n M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);\n M[N - 1][14] = Math.floor(M[N - 1][14]);\n M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;\n\n for (let i = 0; i < N; ++i) {\n const W = new Uint32Array(80);\n\n for (let t = 0; t < 16; ++t) {\n W[t] = M[i][t];\n }\n\n for (let t = 16; t < 80; ++t) {\n W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);\n }\n\n let a = H[0];\n let b = H[1];\n let c = H[2];\n let d = H[3];\n let e = H[4];\n\n for (let t = 0; t < 80; ++t) {\n const s = Math.floor(t / 20);\n const T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t] >>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = H[0] + a >>> 0;\n H[1] = H[1] + b >>> 0;\n H[2] = H[2] + c >>> 0;\n H[3] = H[3] + d >>> 0;\n H[4] = H[4] + e >>> 0;\n }\n\n return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];\n}\n\nexport default sha1;","import v35 from './v35.js';\nimport sha1 from './sha1.js';\nconst v5 = v35('v5', 0x50, sha1);\nexport default v5;","import { __assign, __awaiter, __generator } from 'tslib';\nimport { LOG as LOG$1 } from '@mailbiz/tracker-core';\nimport { compressToEncodedURIComponent as compressToEncodedURIComponent$1, decompressFromEncodedURIComponent as decompressFromEncodedURIComponent$1 } from 'lz-string';\nimport { v5, v4 } from 'uuid';\n\nvar CoreApi = /** @class */ (function () {\n function CoreApi(core) {\n this.core = core;\n }\n CoreApi.prototype.setUserId = function (id, email) {\n var _a;\n var globalStateManager = this.core.context.globalStateManager;\n if (!globalStateManager || (!id && !email)) {\n return;\n }\n var state = globalStateManager.get({});\n globalStateManager.set(__assign(__assign({}, state), { user: {\n id: id,\n email: email || ((_a = state === null || state === void 0 ? void 0 : state.user) === null || _a === void 0 ? void 0 : _a.email),\n } }));\n };\n return CoreApi;\n}());\n\nvar prefix = 'MB Onsite:';\nvar applyPrefix = function (args) {\n args.unshift('color:#259fa5;font-weight:bold');\n args.unshift('%c' + prefix);\n return args;\n};\nvar LOG = {\n debug: function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n applyPrefix(args);\n ((_a = window === null || window === void 0 ? void 0 : window.MailbizOnsite) === null || _a === void 0 ? void 0 : _a.debug) && console.log.apply(console, args);\n },\n warn: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n applyPrefix(args);\n console.warn.apply(console, args);\n },\n log: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n applyPrefix(args);\n console.log.apply(console, args);\n },\n error: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n applyPrefix(args);\n console.error.apply(console, args);\n },\n};\n\nvar roundDecimals = function (value) {\n return Number(Math.round((value + Number.EPSILON) * 100) / 100);\n};\nvar debounce = function (callback, wait) {\n if (wait === void 0) { wait = 300; }\n var timeoutId = null;\n return (function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n clearTimeout(timeoutId);\n timeoutId = setTimeout(function () {\n callback.apply(null, args);\n }, wait);\n });\n};\nvar throttle = function (fn, wait, options) {\n if (wait === void 0) { wait = 300; }\n var baseOptions = {\n leading: true, // Calls the function immediately at the start of the throttle period\n };\n options = __assign(__assign({}, baseOptions), options);\n var inThrottle;\n var currentTimeout;\n var lastTime;\n var timeoutResetThrottle = function () {\n currentTimeout = setTimeout(function () {\n inThrottle = false;\n }, wait);\n };\n var callFn = function (context, args) {\n fn.apply(context, args);\n lastTime = Date.now();\n timeoutResetThrottle();\n };\n var timeoutCallFn = function (context, args) {\n clearTimeout(currentTimeout);\n currentTimeout = setTimeout(function () {\n callFn(context, args);\n }, Math.max(wait - (Date.now() - lastTime), 0));\n };\n return function () {\n var context = this;\n /* eslint prefer-rest-params: \"off\" */\n var args = arguments;\n if (!inThrottle && options.leading) {\n callFn(context, args);\n }\n else {\n timeoutCallFn(context, args);\n }\n inThrottle = true;\n };\n};\n// @Param obj - should be an object or an array\nvar isEmptyObject = function (obj) {\n if (typeof obj !== 'object') {\n return false;\n }\n try {\n return Object.keys(obj).length <= 0;\n }\n catch (_err) {\n return false;\n }\n};\nvar onlyNumbers = function (input) {\n if (!input) {\n return '';\n }\n return input.replace(/\\D/g, '');\n};\nvar removeAll = function (input, valueToRemove) {\n return replaceAll(input, valueToRemove, '');\n};\nvar replaceAll = function (input, oldVal, newVal) {\n if (!input) {\n return '';\n }\n return input.split(oldVal).join(newVal);\n};\nvar capitalize = function (input) {\n if (!input || !input.charAt) {\n return '';\n }\n return \"\" + input.charAt(0).toUpperCase() + input.slice(1);\n};\nvar stringToBase64 = function (input) {\n if (!window.btoa)\n return '';\n return window.btoa(unescape(encodeURIComponent(input)));\n};\nvar base64ToString = function (input) {\n if (!window.atob)\n return '';\n return decodeURIComponent(escape(window.atob(input)));\n};\nvar isWindowIframe = function () {\n try {\n return window.self !== window.top;\n }\n catch (e) {\n return true;\n }\n};\nvar waitUntil = function (isWaitingDone, timeout, retryDelay) {\n if (timeout === void 0) { timeout = 5000; }\n if (retryDelay === void 0) { retryDelay = 250; }\n return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, new Promise(function (resolve, reject) {\n var start = new Date().getTime();\n var interval = setInterval(function () {\n if (isWaitingDone()) {\n clearInterval(interval);\n resolve();\n }\n else if (new Date().getTime() - start > timeout) {\n clearInterval(interval);\n reject();\n }\n }, retryDelay);\n })];\n });\n });\n};\nfunction waitInMilliseconds(seconds) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, new Promise(function (resolve) { return setTimeout(resolve, seconds); })];\n });\n });\n}\nvar emailRegex = new RegExp(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/);\nfunction looksLikeEmail(str) {\n var isString = function () { return typeof str === 'string'; };\n var passedRegex = function () { return emailRegex.test(str); };\n var hasDotAfterAt = function () { return str.indexOf('@') < str.lastIndexOf('.'); };\n return !!(str && isString() && hasDotAfterAt() && passedRegex());\n}\nfunction looksLikePhone(str) {\n var _a;\n if (!(str === null || str === void 0 ? void 0 : str.length)) {\n return false;\n }\n var phone = str === null || str === void 0 ? void 0 : str.replace(/[^0-9]/g, '');\n if (((_a = phone === null || phone === void 0 ? void 0 : phone.length) !== null && _a !== void 0 ? _a : 0) < 10) {\n return false;\n }\n return true;\n}\nfunction tryToParseJson(value) {\n try {\n var parsedData = JSON.parse(value);\n return parsedData;\n }\n catch (_a) {\n return null;\n }\n}\nfunction arrayFromNodeList(nodeList) {\n var _a;\n // Avoid Array.from for IE compatibility\n var arr = [];\n for (var i = 0; i < ((_a = nodeList === null || nodeList === void 0 ? void 0 : nodeList.length) !== null && _a !== void 0 ? _a : 0); i++) {\n arr.push(nodeList[i]);\n }\n return arr;\n}\nvar fixUrlIfNeeded = function (url) {\n var _a, _b, _c;\n if (typeof url !== 'string' || !url) {\n return undefined;\n }\n // Protocol\n var missingProtocol = url.indexOf('http://') !== 0 && url.indexOf('https://') !== 0;\n if (missingProtocol) {\n var protocol = ((_b = (_a = window === null || window === void 0 ? void 0 : window.location) === null || _a === void 0 ? void 0 : _a.protocol) === null || _b === void 0 ? void 0 : _b.includes('http')) ? (_c = window === null || window === void 0 ? void 0 : window.location) === null || _c === void 0 ? void 0 : _c.protocol : 'https:';\n var hasDoubleSlash = (url === null || url === void 0 ? void 0 : url.indexOf('//')) === 0;\n var protocolString = hasDoubleSlash ? \"\" + protocol : protocol + \"//\";\n url = \"\" + protocolString + url;\n }\n var protocolLength = url.indexOf('://') + 3;\n var fixedUrl = url.slice(0, protocolLength);\n // Double, leading and trailing slashes\n for (var i = protocolLength; i < url.length; i++) {\n if (url[i] !== '/') {\n // Optimize loop\n fixedUrl += url[i];\n continue;\n }\n if (\n // Look ahead to avoid double slash\n url[i + 1] === '/' ||\n // Remove trailing slash\n i === url.length - 1 ||\n // Avoid double slash after protocol\n fixedUrl.length === protocolLength) {\n continue;\n }\n fixedUrl += url[i];\n }\n return fixedUrl;\n};\nfunction urlSearchParamsToObject(searchParams) {\n try {\n return searchParams.split('&').reduce(function (acc, curr) {\n var _a = curr.split('='), encodedBaseKey = _a[0], encodedValue = _a[1];\n var baseKey = decodeURIComponent(encodedBaseKey);\n var value = decodeURIComponent(encodedValue);\n // Purposefully using double equals to catch undefined and null\n if (!baseKey || encodedValue == null) {\n return acc;\n }\n // Consider nested keys as well as simple keys\n var keys = baseKey.match(/[^\\[\\]]+/g) || [baseKey];\n // Construct nested structure if needed\n var current = acc;\n // Avoid the last key since it's the value\n for (var i = 0; i < keys.length - 1; i++) {\n var key = keys[i];\n var nextKey = keys[i + 1];\n var isNextKeyArray = !isNaN(Number(nextKey));\n // Create the nested structure if it doesn't exist\n if (current[key] === undefined) {\n current[key] = isNextKeyArray ? [] : {};\n }\n current = current[key];\n }\n // Set value after traversing the nested structure\n var lastKey = keys[keys.length - 1];\n current[lastKey] = current[lastKey] || value;\n return acc;\n }, {});\n }\n catch (error) {\n return;\n }\n}\n\nvar Url = /** @class */ (function () {\n function Url() {\n }\n Url.getQueryParameters = function (options) {\n var _a;\n var url = (options === null || options === void 0 ? void 0 : options.url) || window.location.href;\n var dontExpandParameters = (options === null || options === void 0 ? void 0 : options.dontExpandPipedParameters) || false;\n var parameters = {};\n var parametersString = url.split('?')[1];\n if (!parametersString) {\n return parameters;\n }\n parametersString = parametersString.split('/#')[0].split('#')[0];\n var parametersArray = parametersString.split('&');\n for (var i = 0; i < parametersArray.length; i++) {\n var pair = parametersArray[i].split('=');\n var key = pair === null || pair === void 0 ? void 0 : pair[0];\n if (key) {\n var value = void 0;\n try {\n value = decodeURIComponent(pair[1]);\n }\n catch (_b) {\n value = (pair === null || pair === void 0 ? void 0 : pair[1]) || '';\n }\n parameters = __assign(__assign({}, parameters), (dontExpandParameters ? (_a = {}, _a[key] = value, _a) : Url.expandPipedParametersIfNeeded(key, value)));\n }\n }\n return parameters;\n };\n Url.addQueryParameters = function (url, parameters) {\n var urlObject = new URL(url);\n var urlParameters = urlObject.searchParams;\n Object.keys(parameters).forEach(function (key) {\n urlParameters.set(key, parameters[key]);\n });\n urlObject.search = urlParameters.toString();\n return urlObject.toString();\n };\n Url.redirectAddingCurrentUtmParameters = function (url) {\n url = url[0] === '/' ? \"\" + window.location.origin + url : url;\n var currentQueryParameters = Url.getQueryParameters({ dontExpandPipedParameters: true });\n var utmParametersList = Object.keys(Url.UtmParametersBeforeExpanding);\n var newUtmOnlyParameters = {};\n utmParametersList.forEach(function (utmName) {\n if (typeof currentQueryParameters[utmName] === 'undefined') {\n return;\n }\n newUtmOnlyParameters[utmName] = currentQueryParameters[utmName];\n });\n window.location.replace(Url.addQueryParameters(url, newUtmOnlyParameters));\n };\n Url.expandPipedParametersIfNeeded = function (paramKey, paramValue) {\n var _a, _b;\n var _c;\n var propertiesToExpandInOrder = (_c = Url.pipedUtmParametersMap) === null || _c === void 0 ? void 0 : _c[paramKey];\n if (!propertiesToExpandInOrder) {\n return _a = {}, _a[paramKey] = paramValue, _a;\n }\n try {\n var expandedParameters = {};\n var values = paramValue.split('|');\n var safeCount = Math.min(propertiesToExpandInOrder.length, values.length);\n for (var i = 0; i < safeCount; i++) {\n var property = propertiesToExpandInOrder[i];\n expandedParameters[property] = values[i] || '';\n }\n return expandedParameters;\n }\n catch (e) {\n console.error(\"Error expanding piped parameters for key \\\"\" + paramKey + \"\\\":\", e);\n return _b = {}, _b[paramKey] = paramValue, _b; // Fallback to original value if expansion throws\n }\n };\n Url.getAllMapParamValuesAsObject = function (map) {\n var result = {};\n Object.keys(map).forEach(function (key) {\n var paramsArray = Url.pipedUtmParametersMap[key];\n paramsArray.forEach(function (param) {\n result[param] = param;\n });\n });\n return result;\n };\n Url.getAllMapParamKeysAsObject = function (map) {\n var result = {};\n Object.keys(map).forEach(function (key) {\n result[key] = key;\n });\n return result;\n };\n Url.defaultUtmParameters = {\n utm_source: 'utm_source',\n utm_medium: 'utm_medium',\n utm_campaign: 'utm_campaign',\n utm_journey: 'utm_journey',\n utm_journey_channel: 'utm_journey_channel',\n utm_journey_type: 'utm_journey_type',\n };\n Url.pipedUtmParametersMap = {\n utm_flow_params: ['utm_step_id', 'utm_journey_version', 'utm_journey_instance'],\n };\n Url.UtmParameters = __assign(__assign({}, Url.defaultUtmParameters), Url.getAllMapParamValuesAsObject(Url.pipedUtmParametersMap));\n Url.UtmParametersBeforeExpanding = __assign(__assign({}, Url.defaultUtmParameters), Url.getAllMapParamKeysAsObject(Url.pipedUtmParametersMap));\n return Url;\n}());\n\n//https://pieroxy.net/blog/pages/lz-string/guide.html\nvar compressToEncodedURIComponent = function (input) {\n try {\n return compressToEncodedURIComponent$1(input);\n }\n catch (err) {\n LOG$1.debug('compress error', err);\n return '';\n }\n};\n//https://pieroxy.net/blog/pages/lz-string/guide.html\nvar decompressFromEncodedURIComponent = function (input) {\n try {\n return decompressFromEncodedURIComponent$1(input);\n }\n catch (err) {\n LOG$1.debug('compress error', err);\n return '';\n }\n};\n\nfunction isDifferent(currentVal, newVal, keys) {\n var keysToCheck = keys;\n if (keysToCheck == null) {\n var currentValKeys = Object.keys(currentVal);\n var newValKeys = Object.keys(newVal);\n if (currentValKeys.length !== newValKeys.length) {\n return true;\n }\n else if (currentValKeys.length === 0 && newValKeys.length === 0) {\n return false;\n }\n else {\n keysToCheck = currentValKeys;\n }\n }\n var different = false;\n keysToCheck.forEach(function (key) {\n if (different === true) {\n return;\n }\n if (typeof currentVal[key] === 'object' && typeof newVal[key] === 'object') {\n if (isDifferent((currentVal[key] || {}), (newVal[key] || {}))) {\n different = true;\n }\n return;\n }\n if (currentVal[key] !== newVal[key]) {\n different = true;\n return;\n }\n });\n return different;\n}\nvar CookieStorageAdapter = /** @class */ (function () {\n function CookieStorageAdapter() {\n }\n CookieStorageAdapter.prototype.getItem = function (name) {\n var nameEQ = name + '=';\n var ca = window.document.cookie.split(';');\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) == ' ')\n c = c.substring(1, c.length);\n if (c.indexOf(nameEQ) == 0)\n return c.substring(nameEQ.length, c.length);\n }\n return null;\n };\n CookieStorageAdapter.prototype.removeItem = function (name) {\n window.document.cookie = name + '=; Max-Age=-99999999;';\n };\n CookieStorageAdapter.prototype.setItem = function (name, value) {\n var days = 30;\n var expires = '';\n {\n var date = new Date();\n date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);\n expires = '; expires=' + date.toUTCString();\n }\n window.document.cookie = name + '=' + (value || '') + expires + '; path=/';\n };\n return CookieStorageAdapter;\n}());\nvar StorageFactoryType;\n(function (StorageFactoryType) {\n StorageFactoryType[\"session\"] = \"session\";\n StorageFactoryType[\"local\"] = \"local\";\n StorageFactoryType[\"cookie\"] = \"cookie\";\n})(StorageFactoryType || (StorageFactoryType = {}));\n/**\n * Create the storage constructor\n * @param {String} id The storage ID\n * @param {enum} sessionType 'local' | 'session' | 'cookie'\n */\nvar StorageFactory = /** @class */ (function () {\n function StorageFactory(name, expires, sessionType) {\n this.id = \"mb_\" + name;\n // should be less than session expiration time\n this.expires = expires !== null && expires !== void 0 ? expires : 60 * 25; // 25 min default\n var supportsLocalStorage = typeof window.localStorage !== 'undefined';\n this.sessionType = sessionType !== null && sessionType !== void 0 ? sessionType : (supportsLocalStorage ? StorageFactoryType.local : StorageFactoryType.cookie);\n this.storage =\n this.sessionType === StorageFactoryType.cookie\n ? new CookieStorageAdapter()\n : this.sessionType === StorageFactoryType.local\n ? window.localStorage\n : window.sessionStorage;\n }\n StorageFactory.prototype.set = function (data) {\n try {\n var expires = this.expires;\n var item = compressToEncodedURIComponent(JSON.stringify({\n expires: expires ? new Date().getTime() + expires * 1000 : null,\n data: data,\n }));\n if (!this.itemExceedsSizeLimit(item)) {\n this.storage.setItem(this.id, item);\n }\n else {\n LOG.debug(\"Storage \" + this.id + \" exceeded size limit and was cleared\");\n this.remove();\n }\n }\n catch (_er) { }\n };\n StorageFactory.prototype.get = function (fallback, ignoreExpiration) {\n var _a;\n try {\n var str = (_a = this.storage.getItem(this.id)) !== null && _a !== void 0 ? _a : '';\n var rawData = decompressFromEncodedURIComponent(str);\n var data = rawData ? JSON.parse(rawData) : undefined;\n if (!data || !(data === null || data === void 0 ? void 0 : data.data)) {\n throw new Error('No data');\n }\n if (ignoreExpiration || isExpirationTimeValid(data.expires)) {\n return data === null || data === void 0 ? void 0 : data.data;\n }\n this.remove();\n }\n catch (_er) { }\n return __assign({}, fallback);\n };\n StorageFactory.prototype.isValid = function () {\n var _a;\n var rawData = decompressFromEncodedURIComponent((_a = this.storage.getItem(this.id)) !== null && _a !== void 0 ? _a : '');\n var data = rawData ? JSON.parse(rawData) : undefined;\n if (!data) {\n return false;\n }\n return isExpirationTimeValid(data.expires);\n };\n StorageFactory.prototype.renewExpirationDate = function () {\n try {\n var data = this.get({}, true);\n this.set(data);\n }\n catch (_er) { }\n };\n StorageFactory.prototype.remove = function () {\n this.storage.removeItem(this.id);\n };\n StorageFactory.prototype.itemExceedsSizeLimit = function (item) {\n // Avoid Object.values for IE 10 support\n var values = Object.keys(item).map(function (key) { return item[key]; });\n var size = new Blob(values).size; // has IE 10 support\n var limit = this.sessionType === StorageFactoryType.cookie ? 2000 : 20000; // 2KB or 20KB\n return size > limit;\n };\n return StorageFactory;\n}());\n/**\n * Check if an expiration date has past or not\n * @param {Integer} expires The expiration timestamp\n * @return {Boolean} If true, data is still valid\n */\nfunction isExpirationTimeValid(expires) {\n // If there's no expiration date, return true\n if (expires === null)\n return true;\n try {\n // Get the difference between the timestamp and expiration date\n var difference = expires - new Date().getTime();\n // Check if the data has expired\n return difference > 0;\n }\n catch (_er) { }\n return true;\n}\nvar CookieRetriever = /** @class */ (function () {\n function CookieRetriever() {\n }\n CookieRetriever.get = function (name) {\n return new CookieStorageAdapter().getItem(name);\n };\n return CookieRetriever;\n}());\n\n// #endregion\n// #region [Event definition]\n// All events\nvar Events;\n(function (Events) {\n Events[\"pageView\"] = \"pageView\";\n Events[\"accountLogin\"] = \"accountLogin\";\n Events[\"accountSync\"] = \"accountSync\";\n Events[\"productView\"] = \"productView\";\n Events[\"cartSync\"] = \"cartSync\";\n Events[\"addToCart\"] = \"addToCart\";\n Events[\"cartItemUpdate\"] = \"cartItemUpdate\";\n Events[\"cartSetPostalCode\"] = \"cartSetPostalCode\";\n Events[\"cartSetCoupon\"] = \"cartSetCoupon\";\n Events[\"checkoutStep\"] = \"checkoutStep\";\n Events[\"orderComplete\"] = \"orderComplete\";\n Events[\"orderCancel\"] = \"orderCancel\";\n})(Events || (Events = {}));\n// #endregion\n\nvar EventsState = /** @class */ (function () {\n function EventsState(appId) {\n var storageName = \"tracker_v_\" + appId;\n this.eventsStateManager = new StorageFactory(storageName);\n }\n EventsState.prototype.shouldOptimizeAndAvoidTrackingCartSync = function (newEventData, currentEventData) {\n var _a, _b;\n var newItems = (_a = newEventData === null || newEventData === void 0 ? void 0 : newEventData.cart) === null || _a === void 0 ? void 0 : _a.items;\n var currentItems = (_b = currentEventData === null || currentEventData === void 0 ? void 0 : currentEventData.cart) === null || _b === void 0 ? void 0 : _b.items;\n return (newItems === null || newItems === void 0 ? void 0 : newItems.length) === 0 && (currentItems === null || currentItems === void 0 ? void 0 : currentItems.length) === 0;\n };\n EventsState.prototype.shouldTrack = function (name, newEventData, currentEventData) {\n var isCartSyncEvent = name === Events.cartSync;\n if (isCartSyncEvent &&\n this.shouldOptimizeAndAvoidTrackingCartSync(newEventData, currentEventData)) {\n return false;\n }\n return isDifferent(currentEventData, newEventData);\n };\n EventsState.prototype.digestNewEvent = function (name, newEventData) {\n var eventsState = this.getCurrentState();\n var currentEventData = (eventsState === null || eventsState === void 0 ? void 0 : eventsState[name]) || {};\n var shouldTrack = this.shouldTrack(name, newEventData, currentEventData);\n if (shouldTrack) {\n eventsState[name] = newEventData;\n this.eventsStateManager.set(eventsState);\n }\n else {\n // Event is the same, so it still valid\n this.eventsStateManager.renewExpirationDate();\n }\n return { shouldTrack: shouldTrack };\n };\n EventsState.prototype.getCurrentState = function () {\n return this.eventsStateManager.get({});\n };\n return EventsState;\n}());\n\nvar TRACKER_NAME = 'mbtrack';\nvar eventsState;\nfunction loadTracker(m, b, t, r, a, c, k) {\n var _a;\n // Stop if the mbtrack namespace i already exists\n if (!m[a]) {\n // Initialize the 'GlobalMBZNamespace' array\n m['GlobalMBZNamespace'] = (m['GlobalMBZNamespace'] || []);\n // Add the new mbtrack namespace to the global array so tracker.js can find it\n m['GlobalMBZNamespace'].push(a);\n // Create the mbtrack function\n m[a] = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n (m[a].q = m[a].q || []).push(args);\n };\n // Initialize the asynchronous queue\n m[a].q = m[a].q || [];\n // Create a new script element\n c = b.createElement(t);\n // Get the first script on the page\n k = b.getElementsByTagName(t)[0];\n // The new script should load asynchronously\n c.async = true;\n // Load mbtrack\n c.src = r;\n // Insert the mbtrack script before every other script so it executes as soon as possible\n (_a = k.parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(c, k);\n }\n}\nfunction setVendor() {\n var onsiteSettings = window.MailbizOnsite || {};\n track('setPlatformVendor', onsiteSettings.vendor);\n}\nfunction setBaseUri() {\n var onsiteSettings = window.MailbizOnsite || {};\n track('setBaseUri', onsiteSettings.baseuri);\n}\nfunction setRecoveryUrl() {\n var _a;\n var onsiteSettings = window.MailbizOnsite || {};\n var recoveryUrl = (_a = onsiteSettings.features.cartRecovery) === null || _a === void 0 ? void 0 : _a.recoveryUrl;\n if (recoveryUrl) {\n track('setRecoveryUrl', recoveryUrl);\n }\n}\nfunction setCustomUrl(url) {\n track('setCustomUrl', url);\n}\nfunction setOnsiteVersion(version) {\n if (version === void 0) { version = ''; }\n track('setOnsiteVersion', version);\n}\nfunction setUtmNavigationContext(utmStateManager) {\n var _a;\n var storedUtms = ((_a = utmStateManager.get({})) === null || _a === void 0 ? void 0 : _a.utmData) || {};\n var queryParams = Url.getQueryParameters();\n var currentUtms = {};\n Object.keys(Url.UtmParameters).forEach(function (utmName) {\n var currentUtm = queryParams[utmName];\n if (currentUtm) {\n currentUtms[utmName] = currentUtm;\n }\n });\n var finalUtms = __assign(__assign({}, storedUtms), currentUtms);\n if (!(Object.keys(finalUtms).length > 0)) {\n return;\n }\n utmStateManager.set({ utmData: finalUtms });\n track('setUtmData', finalUtms);\n}\nfunction setNavigationUser(globalState) {\n var state = globalState.get({});\n var _a = state.user, user = _a === void 0 ? {} : _a;\n if (user.id || user.email) {\n track('setUserId', user.id || user.email);\n globalState.set(state);\n }\n}\nvar bootstrapTracker = function (initialData) {\n var appId = initialData.appId, _a = initialData.scriptUrl, scriptUrl = _a === void 0 ? 'https://cdn.jsdelivr.net/npm/@mailbiz/javascript-tracker' : _a, collectUrl = initialData.collectUrl, heartbeatDelay = initialData.heartbeatDelay, _b = initialData.connectionTimeout, connectionTimeout = _b === void 0 ? 9999999 : _b;\n if (!appId) {\n LOG.warn('app_id is missing on bootstrapTracker');\n return;\n }\n eventsState = new EventsState(appId);\n // This really is the best way? Think about it\n loadTracker(window, document, 'script', scriptUrl, TRACKER_NAME);\n // Register default Mailbiz Tracker Collector URL\n track('newTracker', 'mbone', collectUrl, {\n appId: appId,\n connectionTimeout: connectionTimeout,\n });\n if (heartbeatDelay && heartbeatDelay > 0) {\n track('enableActivityTracking', {\n minimumVisitLength: heartbeatDelay,\n heartbeatDelay: heartbeatDelay,\n });\n }\n LOG.debug(\"Tracker \" + TRACKER_NAME + \" initialized\");\n};\nvar getCurrentEventsState = function () {\n return eventsState.getCurrentState();\n};\nvar track = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n LOG.log('track', args);\n window[TRACKER_NAME] && window[TRACKER_NAME].apply(window[TRACKER_NAME], args);\n};\nvar trackIfNeeded = function (event, data, opt) {\n opt = opt || { force: false };\n var shouldTrack = eventsState.digestNewEvent(event, data).shouldTrack;\n if (shouldTrack || (opt === null || opt === void 0 ? void 0 : opt.force)) {\n track(eventsNameTrack[event], data);\n }\n else {\n LOG.log(capitalize(event) + \": no change, should not update\", data);\n }\n};\nvar eventsNameTrack = Object.entries(Events)\n .map(function (_a) {\n var key = _a[0], value = _a[1];\n return [key, \"track\" + capitalize(value)];\n})\n .reduce(function (acc, _a) {\n var _b;\n var key = _a[0], value = _a[1];\n return (__assign(__assign({}, acc), (_b = {}, _b[key] = value, _b)));\n}, {});\n// All event methods implementations, indexed by the original event name\nvar defaultTimer = 200;\nvar trackerEventMethods = Object.entries(Events)\n .map(function (_a) {\n var key = _a[0], eventName = _a[1];\n var method = throttle(function (eventData, opt) {\n var eventHasData = Boolean(eventData);\n if (eventHasData) {\n trackIfNeeded(eventName, eventData, opt);\n }\n else {\n track(eventsNameTrack[eventName]);\n }\n }, defaultTimer);\n return [key, method];\n})\n .reduce(function (acc, _a) {\n var _b;\n var key = _a[0], value = _a[1];\n return (__assign(__assign({}, acc), (_b = {}, _b[key] = value, _b)));\n}, {});\nvar tracker = __assign({ track: track, getCurrentEventsState: getCurrentEventsState, setNavigationContext: function (_a) {\n var context = _a.context, runtimeSettings = _a.runtimeSettings;\n setNavigationUser(context.globalStateManager);\n setUtmNavigationContext(context.utmStateManager);\n setVendor();\n setBaseUri();\n setRecoveryUrl();\n setOnsiteVersion(runtimeSettings.version);\n }, setCustomUrl: setCustomUrl }, trackerEventMethods);\n\nvar context = undefined;\nvar api = undefined;\nfunction setContext(ctx) {\n if (!ctx) {\n return;\n }\n onsiteCore.context = context = ctx;\n}\nvar bootstrap = function (settings, context) {\n var _a;\n if (!settings) {\n LOG.warn('Onsite not initialized. Missing initial global settings \"window.MailbizOnsite\".');\n return;\n }\n setContext(context);\n onsiteCore.api = api = new CoreApi(onsiteCore);\n var trackerFeature = (_a = settings === null || settings === void 0 ? void 0 : settings.features) === null || _a === void 0 ? void 0 : _a.tracker;\n if (typeof trackerFeature === 'object' && (trackerFeature === null || trackerFeature === void 0 ? void 0 : trackerFeature.enabled)) {\n bootstrapTracker({\n appId: settings.app_id,\n scriptUrl: trackerFeature.scriptUrl,\n collectUrl: trackerFeature.apiUrl,\n heartbeatDelay: trackerFeature.pagePingDelay || 0,\n });\n }\n};\nvar onsiteCore = {\n $: function () { var _a; return (_a = window._mbz_) === null || _a === void 0 ? void 0 : _a.$; },\n context: context,\n bootstrap: bootstrap,\n tracker: tracker,\n api: api,\n};\n\nvar VendorBase = /** @class */ (function () {\n function VendorBase() {\n this.init = false;\n this.onsiteSettings = undefined;\n this.core = undefined;\n this.runtimeSettings = undefined;\n }\n VendorBase.prototype.bootstrap = function (onsiteCore) {\n var _a, _b, _c, _d;\n if (this.init) {\n LOG.debug('Vendor already initialized');\n return;\n }\n if (!onsiteCore) {\n LOG.warn('Onsite not initialized. Missing initial OnsiteCore data.');\n return;\n }\n this.onsiteSettings = window.MailbizOnsite;\n if (!this.onsiteSettings || typeof this.onsiteSettings !== 'object') {\n LOG.warn('Onsite not initialized. Var \"window.MailbizOnsite\" was not defined');\n return;\n }\n if (!this.onsiteSettings.app_id) {\n LOG.warn('Onsite not initialized. Missing \"app_id\" parameter.');\n return;\n }\n if (typeof this.shouldBootstrapVendor === 'function' && !this.shouldBootstrapVendor()) {\n // Log inside shouldBootstrapVendor of each vendor\n return;\n }\n this.core = onsiteCore;\n var thirtyDays = 30 * 24 * 60 * 60;\n var onsiteCoreContext = {\n globalStateManager: new StorageFactory(\"tracker_c_\" + this.onsiteSettings.app_id),\n utmStateManager: new StorageFactory(\"tracker_u_\" + this.onsiteSettings.app_id, thirtyDays),\n };\n onsiteCore.bootstrap(this.onsiteSettings, onsiteCoreContext);\n // Only init features after all bootstraps\n if (((_b = (_a = this.onsiteSettings.features) === null || _a === void 0 ? void 0 : _a.cartRecovery) === null || _b === void 0 ? void 0 : _b.enabled) && this.bootstrapVendorCartRecovery) {\n this.bootstrapVendorCartRecovery(this);\n }\n if (((_d = (_c = this.onsiteSettings.features) === null || _c === void 0 ? void 0 : _c.tracker) === null || _d === void 0 ? void 0 : _d.enabled) && this.bootstrapVendorTracker) {\n onsiteCore.tracker.setNavigationContext({\n context: onsiteCoreContext,\n runtimeSettings: this.runtimeSettings,\n });\n if (this.shouldTrackPageView()) {\n onsiteCore.tracker.pageView();\n }\n this.bootstrapVendorTracker(this);\n }\n this.init = true;\n };\n return VendorBase;\n}());\n\nvar OrderIds = {\n TEMPORARY: '', // Empty string order id is used for temporary orders\n};\n\nvar InterceptionSchedule;\n(function (InterceptionSchedule) {\n InterceptionSchedule[\"BEFORE\"] = \"BEFORE\";\n InterceptionSchedule[\"AFTER\"] = \"AFTER\";\n})(InterceptionSchedule || (InterceptionSchedule = {}));\n//#endregion\nvar XMLHttpRequestReadyState;\n(function (XMLHttpRequestReadyState) {\n XMLHttpRequestReadyState[XMLHttpRequestReadyState[\"UNSENT\"] = 0] = \"UNSENT\";\n XMLHttpRequestReadyState[XMLHttpRequestReadyState[\"OPENED\"] = 1] = \"OPENED\";\n XMLHttpRequestReadyState[XMLHttpRequestReadyState[\"HEADERS_RECEIVED\"] = 2] = \"HEADERS_RECEIVED\";\n XMLHttpRequestReadyState[XMLHttpRequestReadyState[\"LOADING\"] = 3] = \"LOADING\";\n XMLHttpRequestReadyState[XMLHttpRequestReadyState[\"DONE\"] = 4] = \"DONE\";\n})(XMLHttpRequestReadyState || (XMLHttpRequestReadyState = {}));\n\nvar Network = /** @class */ (function () {\n function Network() {\n }\n // Simple wrapper for XMLHttpRequest\n // Adds property that indicates if request was made by Mailbiz Onsite\n Network.request = function (options) {\n return __awaiter(this, void 0, void 0, function () {\n var url, _a, method, _b, responseType, _c, headers, params, data;\n return __generator(this, function (_d) {\n url = options.url, _a = options.method, method = _a === void 0 ? 'GET' : _a, _b = options.responseType, responseType = _b === void 0 ? 'json' : _b, _c = options.headers, headers = _c === void 0 ? {} : _c, params = options.params, data = options.data;\n return [2 /*return*/, new Promise(function (resolve, reject) {\n var xhr = new window.XMLHttpRequest();\n var fullUrl = url;\n if (params) {\n // Dont use URLSearchParams for IE compatibility\n var paramsString = Object.keys(params)\n .map(function (k) { return k + \"=\" + params[k]; })\n .join('&');\n fullUrl = url + \"?\" + paramsString;\n }\n xhr.open(method, fullUrl, true);\n xhr.responseType = responseType;\n xhr._isMailbizTrackerOwnRequest = true;\n for (var key in headers) {\n xhr.setRequestHeader(key, headers[key]);\n }\n xhr.onload = function () {\n if (this.status >= 200 && this.status < 300) {\n resolve({\n status: this.status,\n data: xhr.response,\n });\n }\n else {\n reject({\n status: this.status,\n data: xhr.response,\n });\n }\n };\n xhr.onerror = function () {\n reject({\n status: this.status,\n data: xhr.response,\n });\n };\n xhr.send(data);\n })];\n });\n });\n };\n // Intercepts requests made by XMLHttpRequest and Fetch\n // By default ignores requests made by Mailbiz Onsite\n // Deprecated, version 2.0 is recommended and defined below\n Network.deprecated_setupInterception = function (callback, shouldInterceptUrl, shouldInterceptMailbizOnsiteRequests) {\n if (shouldInterceptUrl === void 0) { shouldInterceptUrl = function () { return true; }; }\n if (shouldInterceptMailbizOnsiteRequests === void 0) { shouldInterceptMailbizOnsiteRequests = false; }\n // Cleanup\n var cleanup = false;\n var cleanupFunction = function () { return (cleanup = true); };\n // XMLHttpRequest\n var handleStateChange = function () {\n var _a;\n if (cleanup) {\n return;\n }\n var isReady = this.readyState === 4;\n if (!isReady) {\n return;\n }\n var shouldIntercept = shouldInterceptUrl(this.responseURL);\n if (!shouldIntercept) {\n return;\n }\n var isOwnRequest = (_a = this) === null || _a === void 0 ? void 0 : _a._isMailbizTrackerOwnRequest;\n var ignore = isOwnRequest && !shouldInterceptMailbizOnsiteRequests;\n if (ignore) {\n return;\n }\n callback(this.response);\n };\n var originalSend = window.XMLHttpRequest.prototype.send;\n window.XMLHttpRequest.prototype.send = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n this.addEventListener('readystatechange', handleStateChange.bind(this));\n originalSend.apply(this, args);\n };\n // Fetch\n var originalFetch = window === null || window === void 0 ? void 0 : window.fetch;\n if (originalFetch) {\n window.fetch = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var responsePromise, firstArg, url, response, text;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n responsePromise = originalFetch.apply(void 0, args);\n if (cleanup) {\n return [2 /*return*/, responsePromise];\n }\n firstArg = args[0];\n url = '';\n if (typeof firstArg === 'string') {\n url = firstArg;\n }\n else if (firstArg instanceof Request) {\n url = firstArg.url;\n }\n else if (firstArg instanceof URL) {\n url = firstArg.href;\n }\n if (!shouldInterceptUrl(url)) return [3 /*break*/, 5];\n _b.label = 1;\n case 1:\n _b.trys.push([1, 4, , 5]);\n return [4 /*yield*/, responsePromise];\n case 2:\n response = (_b.sent()).clone();\n return [4 /*yield*/, response.text()];\n case 3:\n text = _b.sent();\n callback(text);\n return [3 /*break*/, 5];\n case 4:\n _b.sent();\n return [3 /*break*/, 5];\n case 5: return [2 /*return*/, responsePromise];\n }\n });\n });\n };\n }\n // Cleanup\n return cleanupFunction;\n };\n // Fetch\n Network.interceptFetch = function (responsePromise, urlArg, optionsArg) {\n var _a, _b, _c;\n return __awaiter(this, void 0, void 0, function () {\n var url, processCurrentInterception, i;\n var _this = this;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n url = '';\n if (typeof urlArg === 'string') {\n url = urlArg;\n }\n else if ((_a = urlArg) === null || _a === void 0 ? void 0 : _a.url) {\n url = urlArg.url;\n }\n else if ((_b = urlArg) === null || _b === void 0 ? void 0 : _b.href) {\n url = urlArg.href;\n }\n processCurrentInterception = function (interception) { return __awaiter(_this, void 0, void 0, function () {\n var responseClone, responseText;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!interception) {\n return [2 /*return*/];\n }\n if (!interception.shouldInterceptUrl(url)) {\n return [2 /*return*/];\n }\n if (interception.schedule === InterceptionSchedule.BEFORE) {\n interception.callback({\n url: url,\n body: optionsArg === null || optionsArg === void 0 ? void 0 : optionsArg.body,\n responseText: undefined,\n });\n }\n if (interception.schedule !== InterceptionSchedule.AFTER) {\n return [2 /*return*/];\n }\n return [4 /*yield*/, responsePromise];\n case 1:\n responseClone = (_a.sent()).clone();\n return [4 /*yield*/, responseClone.text()];\n case 2:\n responseText = _a.sent();\n interception.callback({\n url: url,\n body: optionsArg === null || optionsArg === void 0 ? void 0 : optionsArg.body,\n responseText: responseText,\n });\n return [2 /*return*/];\n }\n });\n }); };\n if (!url) {\n return [2 /*return*/];\n }\n i = 0;\n _d.label = 1;\n case 1:\n if (!(i < Network.interceptionsCurrentIndex)) return [3 /*break*/, 4];\n // Need to await for clone\n return [4 /*yield*/, processCurrentInterception((_c = Network.interceptions) === null || _c === void 0 ? void 0 : _c[i])];\n case 2:\n // Need to await for clone\n _d.sent();\n _d.label = 3;\n case 3:\n i++;\n return [3 /*break*/, 1];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n // Intercepts requests made by XMLHttpRequest and Fetch\n // By default ignores requests made by Mailbiz Onsite\n Network.setupInterception = function (options) {\n var callback = options.callback, schedule = options.schedule, _a = options.shouldInterceptUrl, shouldInterceptUrl = _a === void 0 ? function () { return true; } : _a, _b = options.shouldInterceptMailbizOnsiteRequests, shouldInterceptMailbizOnsiteRequests = _b === void 0 ? false : _b;\n // First time setup and original method override\n var isFirstInterception = Network.interceptionsCurrentIndex === 0;\n if (isFirstInterception) {\n Network.interceptionFirstTimeSetup();\n }\n // Index\n var interceptionIndex = Network.interceptionsCurrentIndex;\n Network.interceptionsCurrentIndex++;\n // Add to list\n Network.interceptions[interceptionIndex] = {\n callback: callback,\n schedule: schedule,\n shouldInterceptUrl: shouldInterceptUrl,\n shouldInterceptMailbizOnsiteRequests: shouldInterceptMailbizOnsiteRequests,\n };\n // Cleanup\n var cleanupFunction = function () { return delete Network.interceptions[interceptionIndex]; };\n return cleanupFunction;\n };\n //\n // Interception 2.0\n //\n // Creates an interception queue for XMLHttpRequest and Fetch\n // Makes Response, Body and URL available to the interception callback\n Network.interceptions = {};\n Network.interceptionsCurrentIndex = 0;\n // XMLHttpRequest\n Network.interceptXMLHttpRequestStateChange = function (body) {\n var _a;\n var thisXMLHttpRequest = this;\n var processCurrentInterception = function (interception) {\n var _a;\n if (!interception) {\n return;\n }\n var state = thisXMLHttpRequest.readyState;\n var schedule = interception.schedule;\n var isBeforeSchedule = state === XMLHttpRequestReadyState.HEADERS_RECEIVED && schedule === InterceptionSchedule.BEFORE;\n var isAfterSchedule = state === XMLHttpRequestReadyState.DONE && schedule === InterceptionSchedule.AFTER;\n if (!isBeforeSchedule && !isAfterSchedule) {\n return;\n }\n var shouldIntercept = interception.shouldInterceptUrl(thisXMLHttpRequest.responseURL);\n if (!shouldIntercept) {\n return;\n }\n var isOwnRequest = (_a = thisXMLHttpRequest) === null || _a === void 0 ? void 0 : _a._isMailbizTrackerOwnRequest;\n var shouldIgnore = isOwnRequest && !interception.shouldInterceptMailbizOnsiteRequests;\n if (shouldIgnore) {\n return;\n }\n interception.callback({\n url: thisXMLHttpRequest.responseURL,\n body: body,\n responseText: thisXMLHttpRequest.responseText,\n });\n };\n for (var i = 0; i < Network.interceptionsCurrentIndex; i++) {\n processCurrentInterception((_a = Network.interceptions) === null || _a === void 0 ? void 0 : _a[i]);\n }\n };\n Network.interceptionFirstTimeSetup = function () {\n // Setup XMLHttpRequest interception\n var originalSend = window.XMLHttpRequest.prototype.send;\n window.XMLHttpRequest.prototype.send = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var body = args[0];\n this.addEventListener('readystatechange', Network.interceptXMLHttpRequestStateChange.bind(this, body));\n originalSend.apply(this, args);\n };\n // Setup Fetch interception\n var originalFetch = window === null || window === void 0 ? void 0 : window.fetch;\n if (!originalFetch) {\n return;\n }\n window.fetch = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(this, void 0, void 0, function () {\n var input, init, responsePromise;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n input = args[0], init = args[1];\n responsePromise = originalFetch.apply(this, args);\n _b.label = 1;\n case 1:\n _b.trys.push([1, 3, , 4]);\n return [4 /*yield*/, Network.interceptFetch(responsePromise, input, init)];\n case 2:\n _b.sent();\n return [3 /*break*/, 4];\n case 3:\n _b.sent();\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/, responsePromise];\n }\n });\n });\n };\n };\n return Network;\n}());\n\nvar GUIDGenerator = /** @class */ (function () {\n function GUIDGenerator() {\n }\n // UUID will always be the same for the same input\n GUIDGenerator.generateFromInput = function (input) {\n return v5(input, this.mailbizNamespaceUuid);\n };\n // When we don't have an input, we generate a random UUID\n GUIDGenerator.generateRandom = function () {\n var uuid;\n try {\n // This might fail if the browser doesn't support crypto\n uuid = v4();\n }\n catch (_a) {\n // We fallback to a double seeded time based UUID\n uuid = this.fallbackCreateRandomUUID();\n }\n return uuid;\n };\n GUIDGenerator.fallbackCreateRandomUUID = function () {\n var nowTimeSeed = this.getTimeSeed();\n var pseudoRandomSeed = Math.random();\n var timeSeed = this.initialTimeSeed + nowTimeSeed + pseudoRandomSeed;\n return this.generateFromInput(timeSeed);\n };\n GUIDGenerator.getTimeSeed = function () {\n var _a;\n var time = new Date().getTime();\n var perfTime;\n if (typeof ((_a = window === null || window === void 0 ? void 0 : window.performance) === null || _a === void 0 ? void 0 : _a.now) === 'function') {\n // performance.now has IE >= 10 support\n perfTime = window.performance.now();\n }\n else {\n perfTime = '';\n }\n return \"\" + time + perfTime;\n };\n // Allows for the fallback UUID generation the be double seeded\n // Clients would have to load the page and also generate the\n // uuid, both, exactly at the same time (up to microsecond thanks\n // to performance.now) to cause a collision\n GUIDGenerator.harvestInitialTimeSeedIfNeeded = function () {\n if (!window.crypto) {\n this.initialTimeSeed = this.getTimeSeed();\n }\n };\n GUIDGenerator.mailbizNamespaceUuid = 'fb546a66-380b-41fb-b409-d0b1c9d057e9';\n GUIDGenerator.initialTimeSeed = '';\n return GUIDGenerator;\n}());\n\nfunction createObservationLoop(getObservedString, callbackFn, options) {\n var _this = this;\n var defaultOptions = {\n interval: 500,\n delay: 0,\n once: false,\n };\n options = __assign(__assign({}, defaultOptions), options);\n var previous = getObservedString();\n var cleanup;\n var intervalFn = function () { return __awaiter(_this, void 0, void 0, function () {\n var current;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n current = getObservedString();\n if (current === previous) {\n return [2 /*return*/];\n }\n previous = current;\n if (!options.delay) return [3 /*break*/, 2];\n return [4 /*yield*/, waitInMilliseconds(options.delay)];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n callbackFn();\n if (options.once) {\n cleanup();\n }\n return [2 /*return*/];\n }\n });\n }); };\n var intervalId = setInterval(intervalFn, options.interval);\n cleanup = function () { return clearInterval(intervalId); };\n return cleanup;\n}\n\n/*eslint prefer-const: off */\nvar NavigationObserver = /** @class */ (function () {\n function NavigationObserver() {\n }\n NavigationObserver.observePathChange = function (callbackFn, options) {\n var getObservedString = function () {\n return window.location.pathname;\n };\n return createObservationLoop(getObservedString, callbackFn, options);\n };\n // Used to be able to watch pathname, hash and search changes without specific events\n NavigationObserver.observePathSearchHashChange = function (callbackFn, options) {\n var getObservedString = function () {\n return [window.location.pathname, window.location.search, window.location.hash].join('');\n };\n return createObservationLoop(getObservedString, callbackFn, options);\n };\n // IE 8\n NavigationObserver.observeHashChange = function (callbackFn, delay) {\n var _this = this;\n delay = delay || 0;\n var onChangeFn = function () { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!delay) return [3 /*break*/, 2];\n return [4 /*yield*/, waitInMilliseconds(delay)];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n callbackFn();\n return [2 /*return*/];\n }\n });\n }); };\n window.addEventListener('hashchange', onChangeFn, false);\n return function () { return window.removeEventListener('hashchange', onChangeFn, false); };\n };\n return NavigationObserver;\n}());\n\nvar cartRecoveryLoadingTemplate = \"<div data-mbz-cr-loading>\\n <style>\\n [data-mbz-cr-loading] {\\n position: fixed;\\n display: flex;\\n align-items: center;\\n flex-direction: column;\\n justify-content: center;\\n top: 0;\\n width: 100%;\\n background: #00000054;\\n height: 100%;\\n z-index: 99999;\\n }\\n .mbz-cr-loading-content {\\n position: relative;\\n width: 480px;\\n height: 280px;\\n display: flex;\\n align-items: center;\\n flex-direction: column;\\n justify-content: center;\\n background: #fff;\\n border: 1px solid #EAEAEA;\\n border-radius: 5px;\\n margin: 16px;\\n padding: 40px;\\n }\\n .mbz-lds-ring {\\n display: block;\\n position: relative;\\n width: 50px;\\n height: 50px;\\n margin: 0 auto;\\n }\\n .mbz-lds-ring div {\\n box-sizing: border-box;\\n display: block;\\n position: absolute;\\n width: 40px;\\n height: 40px;\\n margin: 4px;\\n border: 4px solid #999999;\\n border-radius: 50%;\\n animation: mbz-lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\\n border-color: #999999 transparent transparent transparent;\\n }\\n .mbz-lds-ring div:nth-child(1) {\\n animation-delay: -0.45s;\\n }\\n .mbz-lds-ring div:nth-child(2) {\\n animation-delay: -0.3s;\\n }\\n .mbz-lds-ring div:nth-child(3) {\\n animation-delay: -0.15s;\\n }\\n @keyframes mbz-lds-ring {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(360deg);\\n }\\n }\\n\\n .mbz-cr-loader {\\n width: 100%;\\n }\\n\\n .mbz-cr-loading-txt {\\n padding-top: 8px;\\n text-align: center;\\n display: block;\\n }\\n @media only screen and (max-width: 512px) {\\n .mbz-cr-loading-content {\\n width: calc(100% - 32px);\\n }\\n }\\n </style>\\n\\n <div class=\\\"mbz-cr-loading-content\\\">\\n <div class=\\\"mbz-cr-loader\\\"><div class=\\\"mbz-lds-ring\\\"><div></div><div></div><div></div><div></div></div></div>\\n <span class=\\\"mbz-cr-loading-txt\\\">Aguarde um momento...</span>\\n </div>\\n</div>\\n\";\n\nvar validUtms = ['mailbiz', 'flowbiz'];\nvar isValidUtm = function (utm) {\n var _a;\n for (var i = 0; i < validUtms.length; i++) {\n if (((_a = utm === null || utm === void 0 ? void 0 : utm.toLowerCase()) === null || _a === void 0 ? void 0 : _a.indexOf(validUtms[i])) !== -1) {\n return true;\n }\n }\n return false;\n};\nfunction getRecoveryDataFromQuery(appId) {\n var queryParams = Url.getQueryParameters();\n var cr = queryParams._mb_cr_, utm = queryParams.utm_source;\n if (!cr || !utm || !isValidUtm(utm)) {\n return {};\n }\n var cartRecoveryObjectHash;\n try {\n var crHash = base64ToString(cr);\n cartRecoveryObjectHash = JSON.parse(crHash);\n if (!(cartRecoveryObjectHash === null || cartRecoveryObjectHash === void 0 ? void 0 : cartRecoveryObjectHash.c) ||\n !(cartRecoveryObjectHash === null || cartRecoveryObjectHash === void 0 ? void 0 : cartRecoveryObjectHash.t) ||\n !(cartRecoveryObjectHash === null || cartRecoveryObjectHash === void 0 ? void 0 : cartRecoveryObjectHash.u) ||\n !(cartRecoveryObjectHash === null || cartRecoveryObjectHash === void 0 ? void 0 : cartRecoveryObjectHash.its) ||\n !(cartRecoveryObjectHash === null || cartRecoveryObjectHash === void 0 ? void 0 : cartRecoveryObjectHash.its.length) ||\n !appId ||\n appId !== cartRecoveryObjectHash.t) {\n return {};\n }\n }\n catch (ex) {\n LOG.error(ex);\n }\n return {\n hash: cr,\n model: cartRecoveryObjectHash,\n };\n}\nfunction showRedirectLoading($d) {\n $d.ready(function () {\n window.document.body.insertAdjacentHTML('beforeend', cartRecoveryLoadingTemplate);\n setTimeout(function () {\n $d('[data-mbz-cr-loading] .mbz-cr-loading-txt').html('Estamos verificando o estoque...');\n }, 1000);\n });\n}\nfunction removeRedirectLoading($d) {\n $d.ready(function () {\n $d('[data-mbz-cr-loading]').remove();\n });\n}\nfunction redirectToRecoveryUrlIfNeeded() {\n var _a, _b;\n var recoveryUrl = fixUrlIfNeeded((_a = window.MailbizOnsite.features.cartRecovery) === null || _a === void 0 ? void 0 : _a.recoveryUrl);\n if (!recoveryUrl) {\n return;\n }\n var currentUrlWithoutQueryString = fixUrlIfNeeded(\"\" + window.location.origin + window.location.pathname);\n if (recoveryUrl === currentUrlWithoutQueryString) {\n return;\n }\n var redirectedParameterName = 'mbz_redirected';\n var alreadyRedirected = (_b = Url.getQueryParameters()) === null || _b === void 0 ? void 0 : _b[redirectedParameterName];\n if (alreadyRedirected) {\n return;\n }\n var currentSearch = window.location.search;\n var separator = currentSearch.indexOf('?') !== -1 ? '&' : '?';\n var redirectedParameter = redirectedParameterName + \"=1\";\n var currentSearchWithRedirectedParameter = \"\" + currentSearch + separator + redirectedParameter;\n window.location.replace(\"\" + recoveryUrl + currentSearchWithRedirectedParameter);\n}\n\nvar ProcessManager = /** @class */ (function () {\n function ProcessManager() {\n this.methods = [];\n }\n ProcessManager.prototype.add = function (name, method) {\n if (this.methods.some(function (method) { return method.name === name; })) {\n return;\n }\n var cleanup = method();\n var hasCleanup = cleanup && typeof cleanup === 'function';\n var managedMethod = __assign({ name: name, method: method }, (hasCleanup && { cleanup: cleanup }));\n this.methods.push(managedMethod);\n };\n ProcessManager.prototype.clear = function (name) {\n // Remove one method\n if (name) {\n var method = this.methods.find(function (method) { return method.name === name; });\n if (!method) {\n return;\n }\n this.methods = this.methods.filter(function (method) { return method.name !== name; });\n if (!method.cleanup && !(typeof method.cleanup === 'function')) {\n return;\n }\n method.cleanup();\n return;\n }\n // Remove all methods\n for (var _i = 0, _a = this.methods; _i < _a.length; _i++) {\n var method = _a[_i];\n if (method.cleanup && typeof method.cleanup === 'function') {\n method.cleanup();\n }\n }\n this.methods = [];\n };\n ProcessManager.prototype.clearAndAdd = function (name, method) {\n this.clear(name);\n this.add(name, method);\n };\n return ProcessManager;\n}());\n\nvar SupportedEventsForRecordingEnum;\n(function (SupportedEventsForRecordingEnum) {\n SupportedEventsForRecordingEnum[\"cartSync\"] = \"cartSync\";\n SupportedEventsForRecordingEnum[\"accountSync\"] = \"accountSync\";\n SupportedEventsForRecordingEnum[\"checkoutStep\"] = \"checkoutStep\";\n SupportedEventsForRecordingEnum[\"orderComplete\"] = \"orderComplete\";\n SupportedEventsForRecordingEnum[\"productView\"] = \"productView\";\n SupportedEventsForRecordingEnum[\"cartSetPostalCode\"] = \"cartSetPostalCode\";\n SupportedEventsForRecordingEnum[\"cartSetCoupon\"] = \"cartSetCoupon\";\n SupportedEventsForRecordingEnum[\"addToCart;\"] = \"addToCart\";\n})(SupportedEventsForRecordingEnum || (SupportedEventsForRecordingEnum = {}));\nvar initialRecordStorage = {\n // Cart\n cart_id: undefined,\n // Variations\n variations: {},\n // Account\n users: [],\n // Cart / Order (generics)\n address: undefined,\n subtotal: -1,\n freight: -1,\n currency: undefined,\n tax: -1,\n coupons: undefined,\n discounts: -1,\n total: -1,\n // Cart Items\n cartSkus: [],\n // Orders\n orders: {},\n};\nvar RecordManager = /** @class */ (function () {\n function RecordManager(appId, oldSalt, newSalt) {\n if (oldSalt === void 0) { oldSalt = ''; }\n if (newSalt === void 0) { newSalt = ''; }\n if (oldSalt !== newSalt) {\n new StorageFactory(\"tracker_v\" + oldSalt + \"_record_\" + appId).remove();\n }\n this.storageManager = new StorageFactory(\"tracker_v\" + newSalt + \"_record_\" + appId);\n }\n RecordManager.prototype.getStorage = function () {\n return __assign(__assign({}, initialRecordStorage), this.storageManager.get(__assign(__assign({}, initialRecordStorage), { variations: {}, users: [], cartSkus: [], orders: {} }), true));\n };\n RecordManager.prototype.setStorage = function (data) {\n this.storageManager.set(data);\n };\n RecordManager.prototype.stripUndefinedNull = function (obj) {\n for (var key in obj) {\n // Double equals null checks for undefined and null, letting other falsy values pass, like 0 and \"\"\n if (obj[key] == null) {\n delete obj[key];\n }\n }\n return obj;\n };\n RecordManager.prototype.firstValid = function () {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n // Double equals null checks for undefined and null, letting other falsy values pass, like 0 and \"\"\n return values.find(function (v) { return v != null; });\n };\n // Provide an event and get missing data filled in. Missing is a property that is undefined, null or simply missing in the object.\n // Only the last version of relevant data will be enriched.\n // If you don't want some data to be enriched, it needs to be passed in. It can't be undefined or null, which is enriched.\n // e.g.: send -1 for subtotal, send \"\" for coupons, [] for items, {} for address and so on.\n RecordManager.prototype.enrichEvent = function (event, eventData) {\n try {\n switch (event) {\n case Events.cartSync:\n return this.enrichCartSync(eventData);\n case Events.accountSync:\n return this.enrichAccountSync(eventData);\n case Events.checkoutStep:\n return this.enrichCheckoutStep(eventData);\n case Events.orderComplete:\n return this.enrichOrderComplete(eventData);\n case Events.productView:\n return this.enrichProductView(eventData);\n case Events.cartSetPostalCode:\n return this.enrichCartSetPostalCode(eventData);\n case Events.cartSetCoupon:\n return this.enrichCartSetCoupon(eventData);\n case Events.addToCart:\n return this.enrichAddToCart(eventData);\n default:\n throw new Error(\"enrichEvent: Event \" + event + \" not supported\");\n }\n }\n catch (ex) {\n LOG.error(ex);\n return eventData;\n }\n };\n //#region [Variations]\n //\n // Variations\n //\n RecordManager.prototype.enrichStorageVariations = function (storageVariations, items) {\n var _this = this;\n var _a;\n storageVariations = storageVariations || {};\n // Make items into enriched variations\n (_a = items === null || items === void 0 ? void 0 : items.filter(function (i) { return !!i.sku; })) === null || _a === void 0 ? void 0 : _a.forEach(function (item) {\n var _a;\n var variation = (_a = storageVariations === null || storageVariations === void 0 ? void 0 : storageVariations[item.sku]) !== null && _a !== void 0 ? _a : {};\n variation.stock = _this.firstValid(item === null || item === void 0 ? void 0 : item.stock, variation === null || variation === void 0 ? void 0 : variation.stock);\n variation.available = _this.firstValid(item === null || item === void 0 ? void 0 : item.available, variation === null || variation === void 0 ? void 0 : variation.available);\n variation.quantity = _this.firstValid(item === null || item === void 0 ? void 0 : item.quantity, variation === null || variation === void 0 ? void 0 : variation.quantity);\n variation.product_id = _this.firstValid(item === null || item === void 0 ? void 0 : item.product_id, variation === null || variation === void 0 ? void 0 : variation.product_id);\n variation.category = _this.firstValid(item === null || item === void 0 ? void 0 : item.category, variation === null || variation === void 0 ? void 0 : variation.category);\n variation.brand = _this.firstValid(item === null || item === void 0 ? void 0 : item.brand, variation === null || variation === void 0 ? void 0 : variation.brand);\n variation.sku = _this.firstValid(item === null || item === void 0 ? void 0 : item.sku, variation === null || variation === void 0 ? void 0 : variation.sku);\n variation.name = _this.firstValid(item === null || item === void 0 ? void 0 : item.name, variation === null || variation === void 0 ? void 0 : variation.name);\n variation.price = _this.firstValid(item === null || item === void 0 ? void 0 : item.price, variation === null || variation === void 0 ? void 0 : variation.price);\n variation.price_from = _this.firstValid(item === null || item === void 0 ? void 0 : item.price_from, variation === null || variation === void 0 ? void 0 : variation.price_from);\n variation.image_url = _this.firstValid(item === null || item === void 0 ? void 0 : item.image_url, variation === null || variation === void 0 ? void 0 : variation.image_url);\n variation.url = _this.firstValid(item === null || item === void 0 ? void 0 : item.url, variation === null || variation === void 0 ? void 0 : variation.url);\n variation.properties = _this.firstValid(item === null || item === void 0 ? void 0 : item.properties, variation === null || variation === void 0 ? void 0 : variation.properties);\n variation.recovery_properties = _this.firstValid(item === null || item === void 0 ? void 0 : item.recovery_properties, variation === null || variation === void 0 ? void 0 : variation.recovery_properties);\n variation = _this.stripUndefinedNull(variation);\n storageVariations[item.sku] = variation;\n });\n return storageVariations;\n };\n RecordManager.prototype.getCartItemFromStorageVariation = function (variation) {\n var item = {};\n // stock is not allowed in cart item events\n // available is not allowed in cart item events\n item.quantity = variation.quantity;\n item.product_id = variation.product_id;\n item.category = variation.category;\n item.brand = variation.brand;\n item.sku = variation.sku;\n item.name = variation.name;\n item.price = variation.price;\n item.price_from = variation.price_from;\n item.image_url = variation.image_url;\n item.url = variation.url;\n item.properties = variation.properties;\n item.recovery_properties = variation.recovery_properties;\n return this.stripUndefinedNull(item);\n };\n RecordManager.prototype.getOrderItemFromStorageVariation = function (variation) {\n var item = {};\n // stock is not allowed in cart item events\n // available is not allowed in cart item events\n item.quantity = variation.quantity;\n item.product_id = variation.product_id;\n item.category = variation.category;\n item.brand = variation.brand;\n item.sku = variation.sku;\n item.name = variation.name;\n item.price = variation.price;\n item.price_from = variation.price_from;\n item.image_url = variation.image_url;\n item.url = variation.url;\n item.properties = variation.properties;\n // recovery_properties is not needed in order.complete\n return this.stripUndefinedNull(item);\n };\n RecordManager.prototype.getProductItemFromStorageVariation = function (variation) {\n var item = {};\n item.stock = variation.stock;\n item.available = variation.available;\n // quantity is not allowed in product variant events\n // product_id is not allowed in product variant events\n // category is not allowed in product variant events\n // brand is not allowed in product variant events\n item.sku = variation.sku;\n item.name = variation.name;\n item.price = variation.price;\n item.price_from = variation.price_from;\n item.image_url = variation.image_url;\n item.url = variation.url;\n item.properties = variation.properties;\n item.recovery_properties = variation.recovery_properties;\n return this.stripUndefinedNull(item);\n };\n //#endregion\n //#region [Cart Sync]\n //\n // Cart Sync\n //\n RecordManager.prototype.enrichCartSync = function (cartSyncEvent) {\n var _this = this;\n var _a, _b, _c, _d, _e, _f, _g;\n var storage = this.getStorage();\n var cart = (_a = cartSyncEvent === null || cartSyncEvent === void 0 ? void 0 : cartSyncEvent.cart) !== null && _a !== void 0 ? _a : {};\n // Props\n storage.cart_id = cart.cart_id = this.firstValid(cart === null || cart === void 0 ? void 0 : cart.cart_id, storage === null || storage === void 0 ? void 0 : storage.cart_id);\n storage.address = cart.delivery_address = this.firstValid(cart === null || cart === void 0 ? void 0 : cart.delivery_address, storage === null || storage === void 0 ? void 0 : storage.address);\n storage.subtotal = cart.subtotal = this.firstValid(cart === null || cart === void 0 ? void 0 : cart.subtotal, storage === null || storage === void 0 ? void 0 : storage.subtotal);\n storage.freight = cart.freight = this.firstValid(cart === null || cart === void 0 ? void 0 : cart.freight, storage === null || storage === void 0 ? void 0 : storage.freight);\n storage.currency = cart.currency = this.firstValid(cart === null || cart === void 0 ? void 0 : cart.currency, storage === null || storage === void 0 ? void 0 : storage.currency);\n storage.tax = cart.tax = this.firstValid(cart === null || cart === void 0 ? void 0 : cart.tax, storage === null || storage === void 0 ? void 0 : storage.tax);\n storage.coupons = cart.coupons = this.firstValid(cart === null || cart === void 0 ? void 0 : cart.coupons, storage === null || storage === void 0 ? void 0 : storage.coupons);\n storage.discounts = cart.discounts = this.firstValid(cart === null || cart === void 0 ? void 0 : cart.discounts, storage === null || storage === void 0 ? void 0 : storage.discounts);\n storage.total = cart.total = this.firstValid(cart === null || cart === void 0 ? void 0 : cart.total, storage === null || storage === void 0 ? void 0 : storage.total);\n // Items\n if (!(cart === null || cart === void 0 ? void 0 : cart.items) && ((_b = storage === null || storage === void 0 ? void 0 : storage.cartSkus) === null || _b === void 0 ? void 0 : _b.length)) {\n cart.items = storage.cartSkus.map(function (sku) { return ({ sku: sku }); });\n }\n else {\n storage.cartSkus = (_e = (_d = (_c = cart === null || cart === void 0 ? void 0 : cart.items) === null || _c === void 0 ? void 0 : _c.filter(function (item) { return !!item.sku; })) === null || _d === void 0 ? void 0 : _d.map(function (item) { return item.sku; })) !== null && _e !== void 0 ? _e : [];\n }\n // Variations\n // Make CartItems into StorageVariations\n storage.variations = this.enrichStorageVariations(storage.variations, cart === null || cart === void 0 ? void 0 : cart.items);\n // Extract CartItems items back\n cart.items = (_g = (_f = cart.items) === null || _f === void 0 ? void 0 : _f.map(function (i) { var _a; return (_a = storage.variations[i.sku]) !== null && _a !== void 0 ? _a : i; })) === null || _g === void 0 ? void 0 : _g.map(function (i) { return _this.getCartItemFromStorageVariation(i); });\n // Clean up temporary order complete\n storage.orders[OrderIds.TEMPORARY] = {};\n // Update storage and return\n this.setStorage(storage);\n return { cart: this.stripUndefinedNull(cart) };\n };\n //#endregion\n //#region [Account Sync]\n //\n // Account Sync\n //\n RecordManager.prototype.findUserIndex = function (storageUsers, user) {\n return storageUsers === null || storageUsers === void 0 ? void 0 : storageUsers.findIndex(function (storageUser) {\n return !!(user.user_id && user.user_id === storageUser.user_id) ||\n !!(user.email && user.email === storageUser.email) ||\n !!(user.phone && user.phone === storageUser.phone) ||\n !!(user.name && user.name === storageUser.name);\n });\n };\n RecordManager.prototype.enrichAccountSync = function (accountSyncEvent) {\n var _a, _b, _c;\n var storage = this.getStorage();\n storage.users = (_a = storage.users) !== null && _a !== void 0 ? _a : [];\n var user = (_b = accountSyncEvent === null || accountSyncEvent === void 0 ? void 0 : accountSyncEvent.user) !== null && _b !== void 0 ? _b : {};\n var storageUserIndex = this.findUserIndex(storage.users, user);\n var storageUser = (_c = storage.users[storageUserIndex]) !== null && _c !== void 0 ? _c : {};\n // Props\n storageUser.user_id = user.user_id = this.firstValid(user === null || user === void 0 ? void 0 : user.user_id, storageUser === null || storageUser === void 0 ? void 0 : storageUser.user_id);\n storageUser.email = user.email = this.firstValid(user === null || user === void 0 ? void 0 : user.email, storageUser === null || storageUser === void 0 ? void 0 : storageUser.email);\n storageUser.phone = user.phone = this.firstValid(user === null || user === void 0 ? void 0 : user.phone, storageUser === null || storageUser === void 0 ? void 0 : storageUser.phone);\n storageUser.name = user.name = this.firstValid(user === null || user === void 0 ? void 0 : user.name, storageUser === null || storageUser === void 0 ? void 0 : storageUser.name);\n storageUser.plan = user.plan = this.firstValid(user === null || user === void 0 ? void 0 : user.plan, storageUser === null || storageUser === void 0 ? void 0 : storageUser.plan);\n storageUser.logins = user.logins = this.firstValid(user === null || user === void 0 ? void 0 : user.logins, storageUser === null || storageUser === void 0 ? void 0 : storageUser.logins);\n storageUser.created_at = user.created_at = this.firstValid(user === null || user === void 0 ? void 0 : user.created_at, storageUser === null || storageUser === void 0 ? void 0 : storageUser.created_at);\n // Update storage\n if (Object.keys(storageUser).length > 0) {\n if (storageUserIndex === -1) {\n storage.users.push(storageUser);\n }\n else {\n storage.users[storageUserIndex] = storageUser;\n }\n this.setStorage(storage);\n }\n // And return\n this.setStorage(storage);\n return { user: this.stripUndefinedNull(user) };\n };\n //#endregion\n //#region [Checkout Step]\n //\n // Checkout Step\n //\n RecordManager.prototype.enrichCheckoutStep = function (checkoutStepEvent) {\n var _a;\n var storage = this.getStorage();\n var checkout = (_a = checkoutStepEvent === null || checkoutStepEvent === void 0 ? void 0 : checkoutStepEvent.checkout) !== null && _a !== void 0 ? _a : {};\n storage.cart_id = checkout.cart_id = this.firstValid(checkout === null || checkout === void 0 ? void 0 : checkout.cart_id, storage === null || storage === void 0 ? void 0 : storage.cart_id);\n this.setStorage(storage);\n return { checkout: this.stripUndefinedNull(checkoutStepEvent.checkout) };\n };\n //#endregion\n //#region [Order Complete]\n //\n // Order Complete\n //\n RecordManager.prototype.enrichOrderComplete = function (orderCompleteEvent) {\n var _this = this;\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;\n var storage = this.getStorage();\n storage.orders = storage.orders || {};\n var order = (_a = orderCompleteEvent === null || orderCompleteEvent === void 0 ? void 0 : orderCompleteEvent.order) !== null && _a !== void 0 ? _a : {};\n var storageOrder = (_c = (_b = storage.orders) === null || _b === void 0 ? void 0 : _b[order === null || order === void 0 ? void 0 : order.order_id]) !== null && _c !== void 0 ? _c : {};\n // Props\n storageOrder.order_id = order.order_id = this.firstValid(order === null || order === void 0 ? void 0 : order.order_id, storageOrder === null || storageOrder === void 0 ? void 0 : storageOrder.order_id);\n storageOrder.cart_id = order.cart_id = this.firstValid(order === null || order === void 0 ? void 0 : order.cart_id, storageOrder === null || storageOrder === void 0 ? void 0 : storageOrder.cart_id, storage === null || storage === void 0 ? void 0 : storage.cart_id);\n storageOrder.subtotal = order.subtotal =\n (_d = this.firstValid(order === null || order === void 0 ? void 0 : order.subtotal, storageOrder === null || storageOrder === void 0 ? void 0 : storageOrder.subtotal, storage === null || storage === void 0 ? void 0 : storage.subtotal)) !== null && _d !== void 0 ? _d : -1;\n storageOrder.freight = order.freight =\n (_e = this.firstValid(order === null || order === void 0 ? void 0 : order.freight, storageOrder === null || storageOrder === void 0 ? void 0 : storageOrder.freight, storage === null || storage === void 0 ? void 0 : storage.freight)) !== null && _e !== void 0 ? _e : -1;\n storage.currency =\n storageOrder.currency =\n order.currency =\n this.firstValid(order === null || order === void 0 ? void 0 : order.currency, storageOrder === null || storageOrder === void 0 ? void 0 : storageOrder.currency, storage === null || storage === void 0 ? void 0 : storage.currency);\n storageOrder.tax = order.tax = (_f = this.firstValid(order === null || order === void 0 ? void 0 : order.tax, storageOrder === null || storageOrder === void 0 ? void 0 : storageOrder.tax, storage === null || storage === void 0 ? void 0 : storage.tax)) !== null && _f !== void 0 ? _f : -1;\n storageOrder.discounts = order.discounts =\n (_g = this.firstValid(order === null || order === void 0 ? void 0 : order.discounts, storageOrder === null || storageOrder === void 0 ? void 0 : storageOrder.discounts, storage === null || storage === void 0 ? void 0 : storage.discounts)) !== null && _g !== void 0 ? _g : -1;\n storageOrder.total = order.total = (_h = this.firstValid(order === null || order === void 0 ? void 0 : order.total, storageOrder === null || storageOrder === void 0 ? void 0 : storageOrder.total, storage === null || storage === void 0 ? void 0 : storage.total)) !== null && _h !== void 0 ? _h : -1;\n storageOrder.coupons = order.coupons = this.firstValid(order === null || order === void 0 ? void 0 : order.coupons, storageOrder === null || storageOrder === void 0 ? void 0 : storageOrder.coupons, storage === null || storage === void 0 ? void 0 : storage.coupons);\n storageOrder.payment_methods = order.payment_methods = this.firstValid(order === null || order === void 0 ? void 0 : order.payment_methods, storageOrder === null || storageOrder === void 0 ? void 0 : storageOrder.payment_methods);\n storageOrder.delivery_methods = order.delivery_methods = this.firstValid(order === null || order === void 0 ? void 0 : order.delivery_methods, storageOrder === null || storageOrder === void 0 ? void 0 : storageOrder.delivery_methods);\n // items are not recorded this way because it would take up too much storage. we save only the skus in orderSkus\n storage.address =\n storageOrder.delivery_address =\n order.delivery_address =\n this.firstValid(order === null || order === void 0 ? void 0 : order.delivery_address, storageOrder === null || storageOrder === void 0 ? void 0 : storageOrder.delivery_address, storage === null || storage === void 0 ? void 0 : storage.address);\n // Items\n if (!((_j = order.items) === null || _j === void 0 ? void 0 : _j.length) && (((_k = storageOrder === null || storageOrder === void 0 ? void 0 : storageOrder.orderSkus) === null || _k === void 0 ? void 0 : _k.length) || ((_l = storage === null || storage === void 0 ? void 0 : storage.cartSkus) === null || _l === void 0 ? void 0 : _l.length))) {\n order.items = this.firstValid((_m = storageOrder === null || storageOrder === void 0 ? void 0 : storageOrder.orderSkus) === null || _m === void 0 ? void 0 : _m.map(function (sku) { return ({ sku: sku }); }), (_o = storage === null || storage === void 0 ? void 0 : storage.cartSkus) === null || _o === void 0 ? void 0 : _o.map(function (sku) { return ({ sku: sku }); }));\n }\n storageOrder.orderSkus = this.firstValid((_q = (_p = order === null || order === void 0 ? void 0 : order.items) === null || _p === void 0 ? void 0 : _p.filter(function (i) { return !!i.sku; })) === null || _q === void 0 ? void 0 : _q.map(function (i) { return i.sku; }), storageOrder === null || storageOrder === void 0 ? void 0 : storageOrder.orderSkus);\n // Variations\n // Make OrderItems into StorageVariations\n storage.variations = this.enrichStorageVariations(storage.variations, order === null || order === void 0 ? void 0 : order.items);\n // Extract OrderItems items back\n order.items = (_s = (_r = order.items) === null || _r === void 0 ? void 0 : _r.map(function (i) { var _a; return (_a = storage.variations[i.sku]) !== null && _a !== void 0 ? _a : i; })) === null || _s === void 0 ? void 0 : _s.map(function (i) { return _this.getOrderItemFromStorageVariation(i); });\n // Storage logic\n // After an order is complete, the cart is empty, we no longer wish to recover several generic properties. Also,\n // if necessary for a second order.complete event of the same id, the data is recorded inside the storageOrder\n storage.cart_id = initialRecordStorage.cart_id;\n storage.cartSkus = [];\n storage.total = initialRecordStorage.total;\n storage.subtotal = initialRecordStorage.subtotal;\n storage.freight = initialRecordStorage.freight;\n storage.discounts = initialRecordStorage.discounts;\n storage.tax = initialRecordStorage.tax;\n storage.coupons = initialRecordStorage.coupons;\n // Update storage and return\n if (order.order_id) {\n storage.orders[order.order_id] = this.stripUndefinedNull(storageOrder);\n }\n this.setStorage(storage);\n return { order: this.stripUndefinedNull(order) };\n };\n //#endregion\n //#region [Product View]\n //\n // Product View\n //\n RecordManager.prototype.enrichProductView = function (productViewEvent) {\n var _this = this;\n var _a, _b, _c, _d, _e, _f;\n var storage = this.getStorage();\n storage.variations = storage.variations || {};\n var product = (_a = productViewEvent === null || productViewEvent === void 0 ? void 0 : productViewEvent.product) !== null && _a !== void 0 ? _a : {};\n var productViewLooseProps = ['brand', 'category', 'url', 'product_id'];\n // Variations\n // Make ProductItems into StorageVariations\n storage.variations = this.enrichStorageVariations(storage.variations, (_b = product === null || product === void 0 ? void 0 : product.variants) === null || _b === void 0 ? void 0 : _b.map(function (v) {\n productViewLooseProps.forEach(function (prop) {\n if (prop === 'url') {\n // Url has this specific logic in which a product url shouldn't overwrite a variation url\n product[prop] && !v[prop] && (v[prop] = product[prop]);\n }\n else {\n product[prop] && (v[prop] = product[prop]);\n }\n });\n return v;\n }));\n // Extract ProductItems items back\n product.variants = (_d = (_c = product === null || product === void 0 ? void 0 : product.variants) === null || _c === void 0 ? void 0 : _c.map(function (v) { var _a; return (_a = storage.variations[v.sku]) !== null && _a !== void 0 ? _a : v; })) === null || _d === void 0 ? void 0 : _d.map(function (v) { return _this.getProductItemFromStorageVariation(v); });\n // Props\n var missingProps = productViewLooseProps.filter(function (prop) { return !product[prop]; });\n // Fill in props that are missing from product, but are present in variations\n if (missingProps.length) {\n var _loop_1 = function (i) {\n var variant = product.variants[i];\n missingProps.forEach(function (missingProp) {\n var _a, _b;\n // Get the data from the enriched variations, from storage\n var prop = (_b = (_a = storage.variations) === null || _a === void 0 ? void 0 : _a[variant.sku]) === null || _b === void 0 ? void 0 : _b[missingProp];\n if (prop) {\n product[missingProp] = prop;\n }\n });\n };\n // Use only the variations from this event, which should be all the variations of the product\n for (var i = 0; i < ((_f = (_e = product === null || product === void 0 ? void 0 : product.variants) === null || _e === void 0 ? void 0 : _e.length) !== null && _f !== void 0 ? _f : 0); i++) {\n _loop_1(i);\n }\n }\n // Update storage and return\n this.setStorage(storage);\n return { product: this.stripUndefinedNull(product) };\n };\n //#endregion\n //#region [Cart PostalCode]\n //\n // PostalCode\n //\n RecordManager.prototype.enrichCartSetPostalCode = function (postalCodeEvent) {\n var _a, _b, _c;\n var storage = this.getStorage();\n // Cart Id\n storage.cart_id = postalCodeEvent.cart_id = this.firstValid(postalCodeEvent.cart_id, storage.cart_id);\n // Postal and and address\n var cleanStoragePostalCode = (_b = (_a = storage === null || storage === void 0 ? void 0 : storage.address) === null || _a === void 0 ? void 0 : _a.postal_code) === null || _b === void 0 ? void 0 : _b.replace(/\\D/g, '');\n var cleanPostalCode = (_c = postalCodeEvent === null || postalCodeEvent === void 0 ? void 0 : postalCodeEvent.postal_code) === null || _c === void 0 ? void 0 : _c.replace(/\\D/g, '');\n // Storage logic\n // If postal code changed the address is no longer valid\n var postalCodeChanged = cleanPostalCode && cleanPostalCode !== cleanStoragePostalCode;\n if (postalCodeChanged) {\n storage.address = {\n postal_code: postalCodeEvent.postal_code,\n };\n }\n // Update storage and return\n this.setStorage(storage);\n return this.stripUndefinedNull(postalCodeEvent);\n };\n //#endregion\n //#region [Cart Coupon]\n //\n // Coupon\n //\n RecordManager.prototype.enrichCartSetCoupon = function (couponEvent) {\n var storage = this.getStorage();\n storage.cart_id = couponEvent.cart_id = this.firstValid(couponEvent.cart_id, storage.cart_id);\n storage.coupons = couponEvent.coupon = this.firstValid(couponEvent.coupon, storage.coupons);\n // Update storage and return\n this.setStorage(storage);\n return this.stripUndefinedNull(couponEvent);\n };\n //#endregion\n //#region [Add To Cart]\n RecordManager.prototype.enrichAddToCart = function (addToCartEvent) {\n var _this = this;\n var _a, _b;\n var storage = this.getStorage();\n storage.variations = storage.variations || [];\n // Variations\n // Make CartItems into StorageVariations\n storage.variations = this.enrichStorageVariations(storage.variations, addToCartEvent === null || addToCartEvent === void 0 ? void 0 : addToCartEvent.products);\n // Extract CartItems items back\n addToCartEvent.products = (_b = (_a = addToCartEvent === null || addToCartEvent === void 0 ? void 0 : addToCartEvent.products) === null || _a === void 0 ? void 0 : _a.map(function (i) { var _a; return (_a = storage.variations[i.sku]) !== null && _a !== void 0 ? _a : i; })) === null || _b === void 0 ? void 0 : _b.map(function (i) { return _this.getCartItemFromStorageVariation(i); });\n if (!addToCartEvent.products) {\n return {};\n }\n // Update storage and return\n this.setStorage(storage);\n return addToCartEvent;\n };\n return RecordManager;\n}());\n\nvar ManagedCartId = /** @class */ (function () {\n function ManagedCartId(appId) {\n this.oneDayExpirationInSeconds = 24 * 60 * 60;\n GUIDGenerator.harvestInitialTimeSeedIfNeeded();\n this.storageManager = new StorageFactory(\"tracker_cart_id_\" + appId, this.oneDayExpirationInSeconds);\n this.storage = this.storageManager.get({ cartId: undefined });\n }\n ManagedCartId.prototype.getCartId = function () {\n var _a, _b, _c;\n if (!((_a = this.storage) === null || _a === void 0 ? void 0 : _a.cartId)) {\n this.generateNewCartId();\n }\n else {\n this.storageManager.renewExpirationDate();\n }\n return (_c = (_b = this.storage) === null || _b === void 0 ? void 0 : _b.cartId) !== null && _c !== void 0 ? _c : '';\n };\n ManagedCartId.prototype.generateNewCartId = function () {\n this.storage.cartId = GUIDGenerator.generateRandom();\n this.storageManager.set(this.storage);\n };\n return ManagedCartId;\n}());\n\nvar TemporaryOrder = /** @class */ (function () {\n function TemporaryOrder() {\n }\n TemporaryOrder.newOrder = function (core, recordManager) {\n var _a;\n var order = { order_id: OrderIds.TEMPORARY };\n var enrichedOrder = recordManager.enrichEvent(Events.orderComplete, { order: order });\n // We don't want to send a temporary order if there's no cart_id.\n // The cart_id is the only identifier of a temporary order / cart\n // that has been closed with temporary order_id.\n //\n // Additionally, temporary order flow is completely dependant on record-manager:\n // We rely on it to recover the cart_id of the temporary order when confirming\n // the order, if this doesn't work we effectively duplicate the order!\n // We rely on it to recover the cart_id of the temporary order when canceling\n // the order, if this doesn't work we are sending orders that don't exist!\n // Because of that, this is a good way to also check if record-manager (and storage!)\n // is available on the current machine. If it isn't, we ignore temporary orders.\n //\n // If record-manager is able to enrich the order correctly, we can be confident that\n // recovering the cart_id will work correctly when needed to confirm or cancel the order.\n //\n // Also, enriching the event this way adds all\n // available information in record-manager to the order.\n if (!((_a = enrichedOrder === null || enrichedOrder === void 0 ? void 0 : enrichedOrder.order) === null || _a === void 0 ? void 0 : _a.cart_id)) {\n return;\n }\n core.tracker.orderComplete(enrichedOrder);\n };\n TemporaryOrder.getLastTemporaryOrderCartIdIfValid = function (core, recordManager) {\n var _a, _b, _c, _d;\n // Expires after 25 minutes of no events\n var lastSentOrder = (_a = core.tracker.getCurrentEventsState()) === null || _a === void 0 ? void 0 : _a.orderComplete;\n var lastSentOrderId = (_b = lastSentOrder === null || lastSentOrder === void 0 ? void 0 : lastSentOrder.order) === null || _b === void 0 ? void 0 : _b.order_id;\n var isLastSentOrderTemporary = lastSentOrderId === OrderIds.TEMPORARY;\n if (!isLastSentOrderTemporary) {\n return;\n }\n // Expires after a single cart.sync event\n // We have to be careful and avoid unneeded cart.sync events after the temporary order, as they\n // can invalidate this check if there's a new cart_id in play.\n // If the last order.complete event was a temporary order, we can double check with record-manager.\n var recordManagerOrder = recordManager.enrichEvent(Events.orderComplete, {\n order: { order_id: OrderIds.TEMPORARY },\n });\n var lastSentCartId = (_c = lastSentOrder === null || lastSentOrder === void 0 ? void 0 : lastSentOrder.order) === null || _c === void 0 ? void 0 : _c.cart_id;\n var recordManagerCartId = (_d = recordManagerOrder === null || recordManagerOrder === void 0 ? void 0 : recordManagerOrder.order) === null || _d === void 0 ? void 0 : _d.cart_id;\n // We only want to get the order if it happens right after the temporary order.\n // This verification is to avoid getting older / invalid orders.\n if (lastSentCartId && lastSentCartId !== recordManagerCartId) {\n return;\n }\n return lastSentCartId;\n };\n TemporaryOrder.cancelLastOrder = function (core, recordManager) {\n var validTemporaryOrderCartId = this.getLastTemporaryOrderCartIdIfValid(core, recordManager);\n if (!validTemporaryOrderCartId) {\n return;\n }\n core.tracker.orderCancel({ cart_id: validTemporaryOrderCartId });\n };\n TemporaryOrder.confirmLastOrder = function (core, recordManager, order) {\n var _a;\n order = order || {};\n var temporaryOrderCartId = this.getLastTemporaryOrderCartIdIfValid(core, recordManager);\n var originalOrderId = (_a = order === null || order === void 0 ? void 0 : order.order_id) !== null && _a !== void 0 ? _a : OrderIds.TEMPORARY;\n // If there's no valid temporary order, a normal order is issued.\n // There's no order duplication risk because if storage is not available we don't send temporary orders.\n // If the temporary order is valid, we will update the existing order in the BE.\n // For that, we insert the correct cart_id and also insert the temporary\n // order_id to get the order correctly enriched from record-manager.\n if (temporaryOrderCartId) {\n order.cart_id = temporaryOrderCartId;\n order.order_id = OrderIds.TEMPORARY;\n }\n var enrichedOrder = recordManager.enrichEvent(Events.orderComplete, { order: order });\n // If the order_id was changed to temporary, we set it back here.\n enrichedOrder.order.order_id = originalOrderId;\n core.tracker.orderComplete({ order: order });\n };\n return TemporaryOrder;\n}());\n\nfunction parseUrlEncodedFormData(body) {\n var _a;\n var urlDecodedBody = decodeURIComponent((_a = body === null || body === void 0 ? void 0 : body.replace(/\\+/g, ' ')) !== null && _a !== void 0 ? _a : '');\n return (urlDecodedBody.split('&').reduce(function (acc, curr) {\n var _a = curr.split('='), key = _a[0], value = _a[1];\n //@ts-ignore\n acc[key] = value;\n return acc;\n }, {}) || {});\n}\nfunction parseFormDataObject(body) {\n var result = {};\n body.forEach(function (value, key) {\n if (typeof value === 'string') {\n //@ts-ignore\n result[key] = value;\n }\n });\n return result;\n}\nfunction parseFormData(body) {\n var _a;\n if (typeof body === 'string') {\n return parseUrlEncodedFormData(body);\n }\n if ((_a = body) === null || _a === void 0 ? void 0 : _a.forEach) {\n return parseFormDataObject(body);\n }\n return {};\n}\n\nexport { CookieRetriever, CoreApi, Events, GUIDGenerator, InterceptionSchedule, LOG, ManagedCartId, NavigationObserver, Network, OrderIds, ProcessManager, RecordManager, StorageFactory, StorageFactoryType, SupportedEventsForRecordingEnum, TemporaryOrder, Url, VendorBase, XMLHttpRequestReadyState, arrayFromNodeList, base64ToString, bootstrapTracker, capitalize, createObservationLoop, debounce, fixUrlIfNeeded, getCurrentEventsState, getRecoveryDataFromQuery, isDifferent, isEmptyObject, isWindowIframe, looksLikeEmail, looksLikePhone, onlyNumbers, onsiteCore, parseFormData, redirectToRecoveryUrlIfNeeded, removeAll, removeRedirectLoading, replaceAll, roundDecimals, showRedirectLoading, stringToBase64, throttle, track, trackIfNeeded, tracker, tryToParseJson, urlSearchParamsToObject, waitInMilliseconds, waitUntil };\n//# sourceMappingURL=onsite-core.module.js.map\n","import { F1SContext, GodeepPedido, GodeepWindow } from './types';\n\ndeclare global {\n interface Window extends GodeepWindow {}\n var f1s: F1SContext | undefined;\n var PEDIDO: GodeepPedido | undefined;\n}\n\nexport function getProductIdFromSku(sku: string | undefined): string | undefined {\n return sku;\n}\n\nexport function handleImagePath(imgPath?: string): string | undefined {\n return imgPath;\n}\n\nexport function parseStringToFloat(value: string | undefined): number | undefined {\n if (typeof value === 'number') {\n return value;\n } else if (typeof value === 'string') {\n const cleanedValue = value.replace('R$', '').trim();\n const normalizedValue = cleanedValue.replace(/\\./g, '').replace(',', '.');\n const parsedValue = parseFloat(normalizedValue);\n return isNaN(parsedValue) ? undefined : parsedValue;\n }\n return undefined;\n}\n\nexport function getProductIdFromDOM(): string | undefined {\n const input = document.querySelector<HTMLInputElement>('#product-detail input[data-product]');\n if (!input) {\n return undefined;\n }\n return input.dataset.product;\n}\n\nexport function getImageUrlFromProductId(productId?: string): string | undefined {\n if (!productId) {\n return;\n }\n return `${window.location.origin}/imagem/produto/id/${productId}/width/500/height/500`;\n}\n\nexport function getProductUrlFromSlug(slug?: string): string | undefined {\n if (!slug) {\n return undefined;\n }\n return `${window.location.origin}/produto/${slug}`;\n}\n\nexport function getCartValueFromDOM(elementId: string): number | undefined {\n const element = document.getElementById(elementId);\n if (!element) {\n return undefined;\n }\n return parseStringToFloat(element.textContent ?? undefined);\n}\n\nexport function getF1sContext() {\n return typeof f1s !== 'undefined' ? f1s : window?.f1s;\n}\n\nexport function getPedidoContext(): GodeepPedido | undefined {\n return typeof PEDIDO !== 'undefined' ? PEDIDO : window?.PEDIDO;\n}\n","import { IndexedObject, OnsiteCoreWindow } from '@mailbiz/onsite-core';\n\nexport interface GodeepWindow extends OnsiteCoreWindow {\n dataLayer?: GoogleDataLayerEntry[];\n f1s?: F1SContext;\n F1SOLUCOES?: F1SOLUCOESContext;\n PEDIDO?: GodeepPedido;\n}\n\nexport interface GodeepPedido {\n data_estimada_entrega: number;\n numero_pedido: number;\n valor_frete: string;\n valor_itens: string;\n valor_total: string;\n}\n\nexport interface GoogleDataLayerPurchaseItem {\n item_id: string;\n item_name: string;\n affiliation: string;\n item_list_name: string;\n item_list_id: string | null;\n item_brand: string;\n item_variant: string | null;\n index: number;\n item_category: string;\n item_category2: string;\n item_category3: string;\n quantity: number;\n currency: string;\n price: number;\n discount: number;\n}\n\nexport interface GoogleDataLayerPurchaseData {\n items: GoogleDataLayerPurchaseItem[];\n transaction_id: number;\n value: string;\n currency: string;\n tax: number;\n shipping: string;\n}\n\nexport type GoogleDataLayerEntry = GoogleDataLayerPurchaseEntry | unknown;\n\nexport interface GoogleDataLayerPurchaseEntry {\n '0': 'event';\n '1': 'purchase';\n '2': GoogleDataLayerPurchaseData;\n}\n\nexport enum GodeepCheckoutStep {\n IDENTIFICATION = 'IDENTIFICATION',\n MAIN = 'MAIN',\n PAYMENT = 'PAYMENT',\n COMPLETE = 'COMPLETE',\n}\n\nexport interface F1SContext {\n env?: string;\n url?: string;\n browserUrl?: string;\n module?: string;\n controller?: string;\n action?: string;\n baseUrl?: string;\n baseUri?: string;\n imagesBaseUrl?: string;\n showMessageInactivity?: boolean;\n baseSkin?: string;\n session?: {\n user?: number;\n orderType?: number;\n orderTypeChoosedByClient?: boolean;\n };\n fingerprint?: boolean;\n checkUnauthenticatedBasket?: boolean;\n checkAbandoned?: boolean;\n termsVerify?: string | null;\n cookieVerify?: {\n update?: boolean;\n exists?: boolean;\n };\n params?: {\n slug?: string;\n module?: string;\n controller?: string;\n action?: string;\n };\n basketCountDown?: boolean;\n configurations?: {\n orders?: {\n savedCartPageSize?: string;\n restrictStore?: string;\n basketQuantityMode?: string;\n purchaseOrderNumber?: string;\n messageToNotificationAbandonedCart?: string;\n automaticLoadAbandonedCart?: string;\n };\n products?: {\n modelVariation?: boolean;\n };\n clients?: {\n serasaIntegration?: boolean;\n allowExistingContactEmailOnRegistration?: number;\n messageEditedConfirmation?: string;\n unmoderatedEditedRegisterByClient?: string;\n unmoderatedEditedRegisterByRepresentative?: string;\n validateMessages?: {\n cnpj_exists?: string;\n };\n };\n deliveryForms?: {\n distinctClassificationSelection?: boolean;\n allowPurchaserFobTransport?: string;\n purchaserFobTransportCode?: string;\n };\n directBilling?: {\n blockClientAddressEdit?: string;\n };\n };\n mercadopago?: {\n pubkey?: string;\n };\n konduto?: {\n pubkey?: string;\n pageCategory?: string;\n };\n apiData?: {\n user?: number;\n };\n preOrder?: boolean;\n telesalesPortal?: boolean;\n hubDesenvolvedor?: {\n active?: boolean;\n block_client_data?: boolean;\n block_client_address?: boolean;\n allow_edit_state_registration_on_empty?: boolean;\n allow_only_clients_with_state_registration?: boolean;\n allow_edit_email_on_empty?: boolean;\n allow_edit_phone_on_empty?: boolean;\n allow_edit_address_on_empty?: boolean;\n allow_edit_neighborhood_on_empty?: boolean;\n };\n cielo3dsMethod?: string[];\n}\n\nexport interface F1SOLUCOESContext {\n Admin?: IndexedObject<any>;\n Base?: {\n Central?: IndexedObject<any>;\n Carrinho?: IndexedObject<any>;\n Produtos?: {\n Events?: IndexedObject<any>;\n Interface?: IndexedObject<any>;\n };\n Events?: IndexedObject<any>;\n Interface?: IndexedObject<any>;\n };\n Default?: {\n Carrinho?: {\n Events?: IndexedObject<any>;\n Interface?: IndexedObject<any>;\n Requests?: IndexedObject<any>;\n Pagamento?: IndexedObject<any>;\n };\n Cadastro?: IndexedObject<any>;\n Clientes?: IndexedObject<any>;\n Central?: {\n FaleConosco?: IndexedObject<any>;\n Faq?: IndexedObject<any>;\n Rma?: IndexedObject<any>;\n };\n Events?: IndexedObject<any>;\n Index?: IndexedObject<any>;\n Produtos?: {\n Comparador?: IndexedObject<any>;\n Detalhe?: IndexedObject<any>;\n Produtos?: IndexedObject<any>;\n Events?: IndexedObject<any>;\n Interface?: IndexedObject<any>;\n };\n Interface?: IndexedObject<any>;\n Requests?: IndexedObject<any>;\n Autocomplete?: {\n triggerOn?: string;\n enabled?: boolean;\n keyword?: string | null;\n changedSinceLastAjaxRequest?: boolean;\n inRequest?: boolean;\n url?: string;\n timeout?: number | null;\n element?: IndexedObject<any>;\n box?: IndexedObject<any>;\n };\n };\n Panel?: IndexedObject<any>;\n GatewayPagamento?: IndexedObject<any>;\n dataLayer?: {\n products?: F1DataLayerProduct[];\n };\n Fingerprint?: IndexedObject<any>;\n AvaliablePayment?: IndexedObject<any>;\n}\n\nexport interface F1DataLayerProduct {\n id?: number;\n code?: string;\n name?: string;\n url?: string;\n images?: string[];\n status?: string;\n categories?: Array<Array<{ id: number; name: string }>>;\n old_price?: number | null;\n price?: number | null;\n spot_price?: number | null;\n specs?: {\n brand?: string;\n ean?: string;\n variation?: string | null;\n manufacturer?: string | null;\n partNumber?: string | null;\n };\n sku?: string;\n stock?: string | null;\n params?: {\n list_id?: string;\n list_name?: string;\n list_position?: number;\n quantity?: string | number;\n };\n}\n\nexport interface GodeepRecoveryProperties {\n id?: string;\n}\n\nexport interface GodeepBasketProduct {\n id: string;\n code: string;\n slug: string;\n name: string;\n model: string | null;\n variation: string | null;\n variations: string[];\n quantity: number;\n stock: number;\n multipleinventory: number;\n value: number;\n customdiscperc: null | string;\n fcustomdiscperc: string;\n calculatedcustomdiscperc: null | string;\n extendedWarrantyValue: string;\n baseWithDiscounts: string;\n basketDiscountPercentage: string;\n gross: number;\n netvalue: number;\n totalst: string;\n fvalue: string;\n fnetvalue: string;\n fnegotiatedvalue: string;\n negotiated: boolean;\n fnettotal: string;\n ftotalItemWithDiscount: string;\n commission: number;\n commissionCurrency: string;\n totalCommissionCurrency: string;\n totalcomst: string;\n fvalueipi: string;\n fcalculatedipi: string;\n fpercenticms: string;\n fpercentipi: string;\n freightByItem: string;\n freightUnitaryByItem: string;\n fwtaxbenefit: string;\n icms: number;\n difal: number;\n st: number;\n fst: string;\n ficms: string;\n fdifal: string;\n total: number;\n categories: string[];\n discounts: string;\n region: string;\n attributes: null | unknown;\n baseWithDiscountsCurrency: string;\n ipiRatePercentage: string;\n icmsValueCurrency: string;\n difalValueCurrency: string;\n stValueCurrency: string;\n netValueCurrency: string;\n totalCurrency: string;\n isExclusiveComplement: boolean;\n isBonusCreditDiscounted: boolean;\n frontAttributes: Record<string, unknown>;\n}\n\nexport interface GodeepBasketInfo {\n count: number;\n quantity: number;\n retail: string;\n gross: string;\n 'product-total': string;\n total: string;\n subtotal: string;\n 'subtotal-with-segment-discount': string;\n segmentDiscount: string;\n extendedWarranty: string;\n}\n\nexport interface GodeepFreightItem {\n value: null | number;\n unitary: number;\n apportionment: number;\n taxValue: null | number;\n taxMatrixLine: null | unknown;\n}\n\nexport interface GodeepFreightAvailable {\n code: string;\n extra_message: null | string;\n name: string;\n cart_info: string;\n delivery: string;\n value: number;\n taxValue: number;\n valueCurrency: string;\n discount_percentage: null | string;\n delivery_type: string;\n delivery_classification: string;\n minimum_basket_value: number;\n items: Record<string, GodeepFreightItem>;\n calculated: number;\n cnpj: null | string;\n modality: null | string;\n summary: string;\n attributes: Record<string, unknown>;\n delivery_time: number;\n}\n\nexport interface GodeepFreight {\n used: null | string;\n type: null | string;\n pickupname: null | string;\n pickupid: null | string;\n license_plate: null | string;\n vehicle_model: null | string;\n date_withdrawal: null | string;\n value: number;\n taxValue: number;\n constValue: null | number;\n hasDiscount: boolean;\n available: Record<string, GodeepFreightAvailable> | [];\n type_classification: null | string;\n show_cif: boolean;\n valueCurrency: string;\n constValueCurrency: null | string;\n}\n\nexport interface GodeepBasket {\n products: GodeepBasketProduct[];\n name: string;\n 'general-custom-discount-perc': null | string;\n 'general-custom-discount-value': null | string;\n 'limit-minimum-cd': string;\n basket: GodeepBasketInfo;\n freight: GodeepFreight;\n messages: null | unknown;\n render: {\n 'has-conditions': number;\n 'methods-payment': string;\n };\n}\n\nexport interface GodeepBaskets {\n [key: string]: GodeepBasket;\n}\n\nexport interface GodeepDiscount {\n name: string;\n value: string;\n rules: null | unknown;\n messages: null | unknown;\n}\n\nexport interface GodeepPaymentConditions {\n installments: number;\n installment: string;\n total: string;\n content: string;\n}\n\nexport interface GodeepPaymentMethod {\n id: number;\n identifier: string;\n name: string;\n type: string;\n type_aux_info: null | string;\n gateway: string;\n position: number;\n conditions: Record<string, GodeepPaymentConditions>;\n}\n\nexport interface GodeepAvailablePaymentMethods {\n pix: GodeepPaymentMethod[];\n card: GodeepPaymentMethod[];\n financing: GodeepPaymentMethod[];\n bankbill: GodeepPaymentMethod[];\n debitcard: GodeepPaymentMethod[];\n transfer: GodeepPaymentMethod[];\n}\n\nexport interface GodeepCartResponse {\n discount: GodeepDiscount;\n baskets: GodeepBaskets;\n custom_discount: {\n error: boolean;\n message: null | string;\n };\n payments: null | unknown;\n availablePaymentMethods: GodeepAvailablePaymentMethods;\n 'service-tax': string;\n render: {\n 'method-payments': string;\n };\n conditions: number;\n 'payment-method': null | string;\n 'payment-method-installment': null | string;\n 'operation-type': string;\n quantity: number;\n bonification: string;\n total: string;\n count: number;\n subtotal: string;\n 'subtotal-with-segment-discount': string;\n commission: string;\n 'overprice-total': string;\n 'st-total': string;\n 'icms-total': string;\n 'ipi-total': string;\n 'ipi-pis-cofins-total': string;\n 'fcp-total': string;\n 'difal-total': string;\n retail: string;\n gross: string;\n 'products-total': string;\n 'extended-warranty-total': string;\n 'payment-total': string;\n 'payment-discount': number;\n 'payment-discount-rate': number;\n fpaymentDiscount: string;\n 'payment-discount-currency': string;\n 'segment-discount': string;\n 'coupon-and-progressive-discount': string;\n 'total-discount': string;\n 'tax-discount': string;\n 'tax-benefit': string;\n 'total-plus-payment-discount': string;\n 'subtotal-discounted': string;\n 'discount-suitable-rules': boolean;\n 'general-custom-discount-value': null | string;\n 'general-custom-discount-perc': null | string;\n coupon: null | unknown;\n reload: boolean;\n freight: GodeepFreight;\n}\n\nexport interface GodeepAccountRegistrationAddress {\n cep?: string;\n number?: string;\n neighborhood?: string;\n state?: string;\n street?: string;\n complement?: string;\n city?: string;\n reference?: string;\n}\n\nexport interface GodeepAccountRegistrationDeliveryAddress {\n replicate?: string;\n}\n\nexport interface GodeepAccountRegistrationBillingAddress {\n replicate?: string;\n}\n\nexport interface GodeepAccountRegistrationContacts {\n role?: string;\n name?: string;\n email?: string;\n birth_date?: string;\n password?: string;\n cpf?: string;\n department?: string;\n phone_number?: string;\n cellphone_number?: string;\n confirm?: string;\n active?: string;\n}\n\nexport interface GodeepAccountRegistrationPayload {\n person_type?: string;\n id?: string;\n cnpj?: string;\n name_corporate?: string;\n registration_state?: string;\n email?: string;\n 'contrato_social-upload'?: string;\n 'documento_socios-upload'?: string;\n registration_municipal?: string;\n name_fancy?: string;\n phone_number?: string;\n 'cartao_cnpj-upload'?: string;\n address?: GodeepAccountRegistrationAddress;\n deliveryaddress?: GodeepAccountRegistrationDeliveryAddress;\n billingaddress?: GodeepAccountRegistrationBillingAddress;\n contacts?: GodeepAccountRegistrationContacts;\n}\n","export const URLS = {\n checkoutPage: '/carrinho',\n checkoutPaymentPage: '/carrinho/pagamento',\n checkoutFinalizationPage: '/carrinho/finalizacao',\n registrationPage: '/cliente/cadastro',\n\n productDetailPage: '/produtos/detalhe',\n\n cartInfoEndpoint: '/carrinho/info',\n cartItensEndpoint: '/carrinho/itens',\n accountRegistrationEndpoint: '/cliente/cadastro',\n\n addProductEndpoint: (productId: string, quantity: string) =>\n `/carrinho/adicionar-produtos/basket-id/1/id/${productId}/quantity/${quantity}`,\n};\n","import {\n LOG,\n VendorBase,\n OnsiteCore,\n ProcessManager,\n RecordManager,\n Events,\n ManagedCartId,\n looksLikeEmail,\n Network,\n InterceptionSchedule,\n InterceptionCallbackContext,\n tryToParseJson,\n arrayFromNodeList,\n CleanupFunction,\n StorageFactory,\n} from '@mailbiz/onsite-core';\nimport { CartEvent, CartItemEvent, ProductEvent, ProductVariant, UserEvent } from '@mailbiz/tracker-core';\nimport {\n getCartValueFromDOM,\n getF1sContext,\n getImageUrlFromProductId,\n getPedidoContext,\n getProductUrlFromSlug,\n parseStringToFloat,\n} from './helpers';\nimport {\n F1DataLayerProduct,\n GodeepBasketProduct,\n GodeepCartResponse,\n GodeepCheckoutStep,\n GodeepWindow,\n GoogleDataLayerEntry,\n GoogleDataLayerPurchaseEntry,\n} from './types';\nimport { URLS } from './urls';\n\ndeclare global {\n interface Window extends GodeepWindow {}\n}\n\nlet core: OnsiteCore;\nlet recordManager: RecordManager;\nlet processManager: ProcessManager;\nlet managedCartId: ManagedCartId;\nlet sentOrderIdsStorage: StorageFactory;\n\ninterface LocalState {\n init?: boolean;\n}\nlet localState: LocalState;\n\nconst mapValueFindValue = (inputs: HTMLInputElement[]) => inputs.map((i) => i?.value).find((v) => !!v);\n\nconst checkoutStepNameToStepNumberMap: { [key in GodeepCheckoutStep]: number } = {\n [GodeepCheckoutStep.IDENTIFICATION]: 1,\n [GodeepCheckoutStep.MAIN]: 2,\n [GodeepCheckoutStep.PAYMENT]: 3,\n [GodeepCheckoutStep.COMPLETE]: 4,\n};\n\n//#region [account.sync]\nfunction handleAccountSync(user: Partial<UserEvent>): void {\n if (!user.email || !looksLikeEmail(user.email)) {\n return;\n }\n\n const accountSyncEvent = recordManager.enrichEvent(Events.accountSync, { user });\n core.tracker.accountSync(accountSyncEvent);\n core.api?.setUserId(accountSyncEvent.user.email, accountSyncEvent.user.email);\n}\n\nfunction interceptAccountRegistrationAndHandleAccountSync(ctx: InterceptionCallbackContext): void {\n const formData = ctx?.body;\n if (!formData || typeof formData !== 'string') {\n return;\n }\n\n const params = new URLSearchParams(formData);\n const email = params.get('email') || params.get('contacts[email]') || undefined;\n const name = params.get('name_fancy') || params.get('contacts[name]') || undefined;\n const phone = params.get('phone_number') || params.get('contacts[phone_number]') || undefined;\n\n handleAccountSync({ email, name, phone });\n}\n\nfunction setupUsernameInputListenerAndHandleAccountSync(): CleanupFunction {\n const input = window.document.querySelector<HTMLInputElement>('#username');\n\n const onChange = () => {\n const email = input?.value;\n handleAccountSync({ email });\n };\n\n input?.addEventListener('input', onChange);\n return () => input?.removeEventListener('input', onChange);\n}\n\nfunction setupRegistrationPageInputListenersAndHandleAccountSync(): CleanupFunction {\n const emails = arrayFromNodeList(window.document.querySelectorAll<HTMLInputElement>('#contacts-email, #email'));\n const names = arrayFromNodeList(\n window.document.querySelectorAll<HTMLInputElement>('#contacts-name, #name_fancy, #name_corporate')\n );\n const phones = arrayFromNodeList(\n window.document.querySelectorAll<HTMLInputElement>(\n '#contacts-cellphone_number, #contacts-phone_number, #phone_number'\n )\n );\n\n const inputs = [...emails, ...names, ...phones].filter((e) => !!e);\n\n const onChange = () => {\n const email = mapValueFindValue(emails);\n const name = mapValueFindValue(names);\n const phone = mapValueFindValue(phones);\n handleAccountSync({ email, name, phone });\n };\n\n inputs.forEach((i) => i?.addEventListener('input', onChange));\n return () => inputs.forEach((i) => i?.removeEventListener('input', onChange));\n}\n//#endregion\n\n//#region [cart.sync]\nfunction handleCartSync(cart: Partial<CartEvent>): void {\n const cartSyncEvent = recordManager.enrichEvent(Events.cartSync, { cart });\n core.tracker.cartSync(cartSyncEvent);\n}\n\nfunction parseBasketProductsToCartItems(products: GodeepBasketProduct[]): CartItemEvent[] {\n return products?.map((product) => ({\n product_id: product?.id,\n sku: product?.id,\n name: product?.name,\n url: getProductUrlFromSlug(product?.slug),\n image_url: getImageUrlFromProductId(product?.id),\n category: product?.categories?.length ? product.categories[product.categories.length - 1] : undefined,\n quantity: product?.quantity,\n price: product?.value,\n }));\n}\n\nfunction parseCartResponseToCartEvent(response: GodeepCartResponse): Partial<CartEvent> {\n const basketKey = Object.keys(response.baskets)[0];\n const basket = response.baskets[basketKey];\n\n return {\n cart_id: managedCartId.getCartId(),\n subtotal: parseStringToFloat(basket.basket?.subtotal),\n total: parseStringToFloat(basket.basket?.total),\n freight: basket?.freight?.value,\n discounts: parseStringToFloat(basket.basket?.segmentDiscount),\n items: parseBasketProductsToCartItems(basket?.products),\n };\n}\n\nfunction parseF1DataLayerProductsToCartItems(products: F1DataLayerProduct[]): CartItemEvent[] {\n return products\n .map((product): CartItemEvent | undefined => {\n const productId = product.id?.toString();\n if (!productId) {\n return undefined;\n }\n return {\n product_id: productId,\n sku: productId,\n name: product?.name,\n image_url: getImageUrlFromProductId(productId),\n quantity: parseInt(product.params?.quantity?.toString() || '1', 10),\n price: product?.price ?? undefined,\n price_from: product?.old_price ?? undefined,\n category: getCategoryFromF1DataLayer(product),\n };\n })\n .filter((item): item is CartItemEvent => item !== undefined);\n}\n\nfunction handleCheckoutCartPageLoadCartSync(): void {\n const isCheckoutPage = window.location.pathname.toLowerCase().indexOf(URLS.checkoutPage) === 0;\n const isPaymentPage = window.location.pathname.toLowerCase().indexOf(URLS.checkoutPaymentPage) === 0;\n const isFinalizationPage = window.location.pathname.toLowerCase().indexOf(URLS.checkoutFinalizationPage) === 0;\n\n if (!isCheckoutPage || isPaymentPage || isFinalizationPage) {\n return;\n }\n\n const f1Products = window.F1SOLUCOES?.dataLayer?.products;\n if (!f1Products?.length) {\n return;\n }\n\n const items = parseF1DataLayerProductsToCartItems(f1Products);\n\n const cart: Partial<CartEvent> = {\n cart_id: managedCartId.getCartId(),\n freight: getCartValueFromDOM('freight'),\n subtotal: getCartValueFromDOM('subtotal'),\n discounts: getCartValueFromDOM('discounts'),\n total: getCartValueFromDOM('total'),\n items,\n };\n\n handleCartSync(cart);\n}\n\nfunction interceptCartRequestsAndHandleCartSync(ctx: InterceptionCallbackContext): void {\n const response = tryToParseJson<GodeepCartResponse>(ctx?.responseText);\n if (!response) {\n return;\n }\n\n const cart = parseCartResponseToCartEvent(response);\n handleCartSync(cart);\n}\n//#endregion\n\n//#region [product.view]\nfunction getCategoryFromF1DataLayer(product?: F1DataLayerProduct): string | undefined {\n const categories = product?.categories?.[0];\n if (!categories?.length) {\n return undefined;\n }\n return categories[categories.length - 1]?.name;\n}\n\nfunction handleProductView(): void {\n const isProductPage = getF1sContext()?.browserUrl === URLS.productDetailPage;\n if (!isProductPage) {\n return;\n }\n\n const f1Product = window.F1SOLUCOES?.dataLayer?.products?.[0];\n if (!f1Product) {\n LOG.debug('handleProductView: Is a product page but no f1Product found');\n return;\n }\n\n const productId = f1Product?.id?.toString();\n if (!productId) {\n LOG.debug('handleProductView: Unable to find a product id');\n return;\n }\n\n const product: ProductEvent = {\n product_id: productId,\n url: f1Product?.url,\n category: getCategoryFromF1DataLayer(f1Product),\n };\n\n const price = f1Product?.price ?? undefined;\n const price_from = f1Product?.old_price && f1Product.old_price !== 0 ? f1Product.old_price : undefined;\n const stockString = f1Product?.stock;\n const stock = stockString !== null ? parseInt(f1Product?.stock || '0', 10) : undefined;\n const available = stock !== undefined ? stock > 0 : undefined;\n\n const variant: ProductVariant = {\n sku: productId,\n name: f1Product?.name,\n image_url: getImageUrlFromProductId(productId),\n price,\n price_from,\n stock,\n available,\n };\n\n product.variants = [variant];\n\n const productView = recordManager.enrichEvent(Events.productView, { product });\n core.tracker.productView(productView);\n}\n//#endregion\n\n//#region [order.complete]\nfunction isGoogleDataLayerPurchaseEntry(entry: GoogleDataLayerEntry): entry is GoogleDataLayerPurchaseEntry {\n const e = entry as GoogleDataLayerPurchaseEntry;\n return e?.['0'] === 'event' && e?.['1'] === 'purchase' && !!e?.['2']?.transaction_id;\n}\n\nfunction getGoogleDataLayerPurchaseEntry(): GoogleDataLayerPurchaseEntry | undefined {\n return window?.dataLayer?.find((e) => isGoogleDataLayerPurchaseEntry(e)) as GoogleDataLayerPurchaseEntry | undefined;\n}\n\nfunction getOrderIdFromDOM(): string | undefined {\n const element = window.document.querySelector<HTMLElement>('.cart-finalization__order-number-number');\n const text = element?.innerText || element?.textContent;\n return text?.trim() || undefined;\n}\n\nfunction getOrderIdFromPedido(): string | undefined {\n const pedido = getPedidoContext();\n return pedido?.numero_pedido?.toString() || undefined;\n}\n\nfunction getOrderIdFromGoogleDataLayer(): string | undefined {\n const purchaseEntry = getGoogleDataLayerPurchaseEntry();\n return purchaseEntry?.['2']?.transaction_id?.toString() || undefined;\n}\n\nfunction getOrderId(): string | undefined {\n return getOrderIdFromDOM() || getOrderIdFromPedido() || getOrderIdFromGoogleDataLayer();\n}\n\nfunction getSentOrderIds(): string[] {\n return sentOrderIdsStorage.get({ ids: [] as string[] })?.ids || [];\n}\n\nfunction addSentOrderId(orderId: string): void {\n const ids = getSentOrderIds();\n if (!ids.includes(orderId)) {\n ids.push(orderId);\n sentOrderIdsStorage.set({ ids });\n }\n}\n\nfunction hasOrderBeenSent(orderId: string): boolean {\n return getSentOrderIds().includes(orderId);\n}\n\nfunction parseStandardDecimal(value: string | number | undefined): number | undefined {\n if (typeof value === 'number') {\n return value;\n }\n if (typeof value === 'string') {\n const parsed = parseFloat(value);\n return isNaN(parsed) ? undefined : parsed;\n }\n return undefined;\n}\n\nfunction handleOrderComplete(): void {\n const orderId = getOrderId();\n if (!orderId) {\n return;\n }\n\n if (hasOrderBeenSent(orderId)) {\n return;\n }\n\n const subtotal = getCartValueFromDOM('subtotal-with-segment-discount');\n const total = getCartValueFromDOM('total');\n const freight = getCartValueFromDOM('freight');\n\n const purchaseEntry = getGoogleDataLayerPurchaseEntry();\n const purchaseData = purchaseEntry?.['2'];\n\n const order = {\n cart_id: managedCartId.getCartId(),\n order_id: orderId,\n subtotal: subtotal ?? parseStandardDecimal(purchaseData?.value),\n total: total ?? parseStandardDecimal(purchaseData?.value),\n freight: freight ?? parseStandardDecimal(purchaseData?.shipping),\n tax: purchaseData?.tax,\n };\n\n const orderCompleteEvent = recordManager.enrichEvent(Events.orderComplete, { order });\n core.tracker.orderComplete(orderCompleteEvent);\n\n addSentOrderId(orderId);\n managedCartId.generateNewCartId();\n}\n//#endregion\n\n//#region [checkout.step]\nfunction getCheckoutStepFromPath(): GodeepCheckoutStep | undefined {\n const pathname = window.location.pathname.toLowerCase();\n\n if (pathname.indexOf(URLS.checkoutFinalizationPage) === 0) {\n return GodeepCheckoutStep.COMPLETE;\n }\n if (pathname.indexOf(URLS.checkoutPaymentPage) === 0) {\n return GodeepCheckoutStep.PAYMENT;\n }\n if (pathname.indexOf(URLS.checkoutPage) === 0) {\n const hasIdentificationElement = !!window.document.getElementById('identification');\n if (hasIdentificationElement) {\n return GodeepCheckoutStep.IDENTIFICATION;\n }\n const hasMainElement = !!window.document.getElementById('main');\n if (hasMainElement) {\n return GodeepCheckoutStep.MAIN;\n }\n }\n\n return undefined;\n}\n\nfunction handleCheckoutStep(): GodeepCheckoutStep | undefined {\n const stepName = getCheckoutStepFromPath();\n if (!stepName) {\n return undefined;\n }\n\n const step = checkoutStepNameToStepNumberMap[stepName];\n\n const checkout = {\n cart_id: managedCartId.getCartId(),\n step_name: stepName,\n step,\n total_steps: 4,\n };\n\n const checkoutStepEvent = recordManager.enrichEvent(Events.checkoutStep, { checkout });\n core.tracker.checkoutStep(checkoutStepEvent);\n\n return stepName;\n}\n//#endregion\n\n//#region [Bootstrap]\nfunction bootstrapCommonFlow(): void {\n handleAccountSync({});\n\n processManager.add('setupUsernameInputListenerAndHandleAccountSync', setupUsernameInputListenerAndHandleAccountSync);\n\n processManager.add('interceptCartInfoRequestAndHandleCartSync', () =>\n Network.setupInterception({\n callback: interceptCartRequestsAndHandleCartSync,\n schedule: InterceptionSchedule.AFTER,\n shouldInterceptUrl: (url) => url.includes(URLS.cartInfoEndpoint),\n })\n );\n\n processManager.add('interceptCartItensRequestAndHandleCartSync', () =>\n Network.setupInterception({\n callback: interceptCartRequestsAndHandleCartSync,\n schedule: InterceptionSchedule.AFTER,\n shouldInterceptUrl: (url) => url.includes(URLS.cartItensEndpoint),\n })\n );\n\n processManager.add('interceptAccountRegistrationAndHandleAccountSync', () =>\n Network.setupInterception({\n callback: interceptAccountRegistrationAndHandleAccountSync,\n schedule: InterceptionSchedule.BEFORE,\n shouldInterceptUrl: (url) => url.includes(URLS.accountRegistrationEndpoint),\n })\n );\n}\n\nfunction bootstrapCheckoutFlow(): void {\n handleCheckoutCartPageLoadCartSync();\n\n const stepName = handleCheckoutStep();\n\n if (stepName === GodeepCheckoutStep.COMPLETE) {\n handleOrderComplete();\n }\n}\n\nfunction bootstrapNavigationFlow(): void {\n handleProductView();\n\n const isRegistrationPage = window.location.pathname.toLowerCase().indexOf(URLS.registrationPage) === 0;\n if (isRegistrationPage) {\n processManager.add(\n 'setupRegistrationPageInputListenersAndHandleAccountSync',\n setupRegistrationPageInputListenersAndHandleAccountSync\n );\n }\n}\n\nfunction bootstrap(): void {\n bootstrapCommonFlow();\n const isCheckoutPage = window.location.pathname.toLowerCase().indexOf(URLS.checkoutPage) === 0;\n if (isCheckoutPage) {\n bootstrapCheckoutFlow();\n } else {\n bootstrapNavigationFlow();\n }\n}\n\nfunction validateBootstrap(): boolean {\n let warn;\n let error;\n\n if (!core || typeof core !== 'object') {\n error = 'vendorInstance.core is null or is not an object.';\n }\n\n warn && LOG.warn(warn);\n error && LOG.error(error);\n\n return !warn && !error;\n}\n\nexport function bootstrapVendorTracker(vendorInstance: VendorBase): void {\n initialize(vendorInstance);\n\n if (!validateBootstrap()) {\n return;\n }\n\n bootstrap();\n\n localState.init = true;\n}\n\nfunction initialize(vendorInstance: VendorBase): void {\n const appId = vendorInstance.onsiteSettings!.app_id;\n processManager?.clear();\n\n localState = { init: false };\n\n core = vendorInstance.core as OnsiteCore;\n recordManager = new RecordManager(appId);\n managedCartId = new ManagedCartId(appId);\n processManager = new ProcessManager();\n\n const thirtyDaysExpiration = 30 * 24 * 60 * 60;\n sentOrderIdsStorage = new StorageFactory(`tracker_sent_orders_${appId}`, thirtyDaysExpiration);\n}\n//#endregion\n\nexport function destroyVendorTracker(): void {\n processManager?.clear();\n}\n","import {\n CartRecoveryObjectHash,\n LOG,\n Network,\n Url,\n VendorBase,\n getRecoveryDataFromQuery,\n showRedirectLoading,\n redirectToRecoveryUrlIfNeeded,\n removeRedirectLoading,\n} from '@mailbiz/onsite-core';\nimport { GodeepWindow } from './types';\nimport { URLS } from './urls';\n\ndeclare const window: GodeepWindow;\n\nfunction isUserLoggedIn(): boolean {\n return !!document.querySelector('#main');\n}\n\nfunction isCartEmpty(): boolean {\n return !window.F1SOLUCOES?.dataLayer?.products?.length;\n}\n\nasync function recoverCart(cartRecoveryObject: CartRecoveryObjectHash): Promise<void> {\n const requests = cartRecoveryObject.its\n .filter((it) => {\n const [_q, productId] = it;\n return !!productId;\n })\n .map((it) => {\n const [quantity, productId] = it;\n return Network.request({\n url: URLS.addProductEndpoint(productId, quantity || '1'),\n method: 'GET',\n });\n });\n\n await Promise.all(requests);\n}\n\nexport async function bootstrapVendorCartRecovery(vendorInstance: VendorBase) {\n const appId = vendorInstance?.onsiteSettings?.app_id || '';\n const $d = window?._mbz_?.$;\n if (!appId) {\n LOG.error('CartRecovery: Invalid appId');\n return;\n }\n if (!$d) {\n LOG.error('CartRecovery: DomHelper not found');\n return;\n }\n\n const { model: cartRecoveryObject, hash } = getRecoveryDataFromQuery(appId) ?? {};\n if (!cartRecoveryObject || !hash) {\n LOG.debug('CartRecovery: No cartRecoveryObject or hash, should not recover');\n return;\n }\n\n redirectToRecoveryUrlIfNeeded();\n\n if (!isUserLoggedIn()) {\n LOG.debug('CartRecovery: User not logged in, should not recover');\n return;\n }\n\n if (!isCartEmpty()) {\n LOG.debug('CartRecovery: Current cart is not empty, should not recover');\n return;\n }\n\n try {\n showRedirectLoading($d);\n await recoverCart(cartRecoveryObject);\n Url.redirectAddingCurrentUtmParameters(URLS.checkoutPage);\n } catch (e) {\n LOG.error('CartRecovery: Error while recovering cart', e);\n removeRedirectLoading($d);\n }\n}\n","import { VendorBase, OnsiteCore, isWindowIframe } from '@mailbiz/onsite-core';\nimport { bootstrapVendorTracker, destroyVendorTracker } from './tracker';\nimport { version } from '../package.json';\nimport { bootstrapVendorCartRecovery } from './cart-recovery';\nimport { LOG } from '@mailbiz/tracker-core';\n\nexport default class GodeepVendor extends VendorBase {\n declare bootstrap: (onsiteCore: OnsiteCore) => void;\n runtimeSettings = {\n version,\n };\n shouldBootstrapVendor = () => {\n if (isWindowIframe()) {\n LOG.debug('Stopping vendor bootstrap: iframe detected');\n return false;\n }\n return true;\n };\n shouldTrackPageView = () => true;\n bootstrapVendorTracker = bootstrapVendorTracker;\n bootstrapVendorCartRecovery = bootstrapVendorCartRecovery;\n destroy() {\n destroyVendorTracker();\n }\n}\n","import { onsiteCore } from '@mailbiz/onsite-core';\nimport { GodeepWindow } from './types';\nimport GodeepVendor from './vendor';\n\ndeclare global {\n interface Window extends GodeepWindow {}\n}\n\nconst vendor = new GodeepVendor();\nvendor.bootstrap(onsiteCore);\n"],"names":["__awaiter","__generator","LOG","URL","compressToEncodedURIComponent$1","decompressFromEncodedURIComponent$1","bootstrap"],"mappings":"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"}
|