@saasquatch/squatch-js 2.4.3-3 → 2.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"squatch.min.js","sources":["../node_modules/@ungap/url-search-params/esm/index.js"],"sourcesContent":["/*! (c) Andrea Giammarchi - ISC */\nvar self = this || /* istanbul ignore next */ {};\ntry {\n (function (URLSearchParams, plus) {\n if (\n new URLSearchParams('q=%2B').get('q') !== plus ||\n new URLSearchParams({q: plus}).get('q') !== plus ||\n new URLSearchParams([['q', plus]]).get('q') !== plus ||\n new URLSearchParams('q=\\n').toString() !== 'q=%0A' ||\n new URLSearchParams({q: ' &'}).toString() !== 'q=+%26' ||\n new URLSearchParams({q: '%zx'}).toString() !== 'q=%25zx'\n )\n throw URLSearchParams;\n self.URLSearchParams = URLSearchParams;\n }(URLSearchParams, '+'));\n} catch(URLSearchParams) {\n (function (Object, String, isArray) {'use strict';\n var create = Object.create;\n var defineProperty = Object.defineProperty;\n var find = /[!'\\(\\)~]|%20|%00/g;\n var findPercentSign = /%(?![0-9a-fA-F]{2})/g;\n var plus = /\\+/g;\n var replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n var proto = {\n append: function (key, value) {\n appendTo(this._ungap, key, value);\n },\n delete: function (key) {\n delete this._ungap[key];\n },\n get: function (key) {\n return this.has(key) ? this._ungap[key][0] : null;\n },\n getAll: function (key) {\n return this.has(key) ? this._ungap[key].slice(0) : [];\n },\n has: function (key) {\n return key in this._ungap;\n },\n set: function (key, value) {\n this._ungap[key] = [String(value)];\n },\n forEach: function (callback, thisArg) {\n var self = this;\n for (var key in self._ungap)\n self._ungap[key].forEach(invoke, key);\n function invoke(value) {\n callback.call(thisArg, value, String(key), self);\n }\n },\n toJSON: function () {\n return {};\n },\n toString: function () {\n var query = [];\n for (var key in this._ungap) {\n var encoded = encode(key);\n for (var\n i = 0,\n value = this._ungap[key];\n i < value.length; i++\n ) {\n query.push(encoded + '=' + encode(value[i]));\n }\n }\n return query.join('&');\n }\n };\n for (var key in proto)\n defineProperty(URLSearchParams.prototype, key, {\n configurable: true,\n writable: true,\n value: proto[key]\n });\n self.URLSearchParams = URLSearchParams;\n function URLSearchParams(query) {\n var dict = create(null);\n defineProperty(this, '_ungap', {value: dict});\n switch (true) {\n case !query:\n break;\n case typeof query === 'string':\n if (query.charAt(0) === '?') {\n query = query.slice(1);\n }\n for (var\n pairs = query.split('&'),\n i = 0,\n length = pairs.length; i < length; i++\n ) {\n var value = pairs[i];\n var index = value.indexOf('=');\n if (-1 < index) {\n appendTo(\n dict,\n decode(value.slice(0, index)),\n decode(value.slice(index + 1))\n );\n } else if (value.length){\n appendTo(\n dict,\n decode(value),\n ''\n );\n }\n }\n break;\n case isArray(query):\n for (var\n i = 0,\n length = query.length; i < length; i++\n ) {\n var value = query[i];\n appendTo(dict, value[0], value[1]);\n }\n break;\n case 'forEach' in query:\n query.forEach(addEach, dict);\n break;\n default:\n for (var key in query)\n appendTo(dict, key, query[key]);\n }\n }\n\n function addEach(value, key) {\n appendTo(this, key, value);\n }\n\n function appendTo(dict, key, value) {\n var res = isArray(value) ? value.join(',') : value;\n if (key in dict)\n dict[key].push(res);\n else\n dict[key] = [res];\n }\n\n function decode(str) {\n return decodeURIComponent(str.replace(findPercentSign, '%25').replace(plus, ' '));\n }\n\n function encode(str) {\n return encodeURIComponent(str).replace(find, replacer);\n }\n\n function replacer(match) {\n return replace[match];\n }\n\n }(Object, String, Array.isArray));\n}\n\n(function (URLSearchParamsProto) {\n\n var iterable = false;\n try { iterable = !!Symbol.iterator; } catch (o_O) {}\n\n /* istanbul ignore else */\n if (!('forEach' in URLSearchParamsProto)) {\n URLSearchParamsProto.forEach = function forEach(callback, thisArg) {\n var self = this;\n var names = Object.create(null);\n this.toString()\n .replace(/=[\\s\\S]*?(?:&|$)/g, '=')\n .split('=')\n .forEach(function (name) {\n if (!name.length || name in names)\n return;\n (names[name] = self.getAll(name)).forEach(function(value) {\n callback.call(thisArg, value, name, self);\n });\n });\n };\n }\n\n /* istanbul ignore else */\n if (!('keys' in URLSearchParamsProto)) {\n URLSearchParamsProto.keys = function keys() {\n return iterator(this, function(value, key) { this.push(key); });\n };\n }\n\n /* istanbul ignore else */\n if (!('values' in URLSearchParamsProto)) {\n URLSearchParamsProto.values = function values() {\n return iterator(this, function(value, key) { this.push(value); });\n };\n }\n\n /* istanbul ignore else */\n if (!('entries' in URLSearchParamsProto)) {\n URLSearchParamsProto.entries = function entries() {\n return iterator(this, function(value, key) { this.push([key, value]); });\n };\n }\n\n /* istanbul ignore else */\n if (iterable && !(Symbol.iterator in URLSearchParamsProto)) {\n URLSearchParamsProto[Symbol.iterator] = URLSearchParamsProto.entries;\n }\n\n /* istanbul ignore else */\n if (!('sort' in URLSearchParamsProto)) {\n URLSearchParamsProto.sort = function sort() {\n var\n entries = this.entries(),\n entry = entries.next(),\n done = entry.done,\n keys = [],\n values = Object.create(null),\n i, key, value\n ;\n while (!done) {\n value = entry.value;\n key = value[0];\n keys.push(key);\n if (!(key in values)) {\n values[key] = [];\n }\n values[key].push(value[1]);\n entry = entries.next();\n done = entry.done;\n }\n // not the champion in efficiency\n // but these two bits just do the job\n keys.sort();\n for (i = 0; i < keys.length; i++) {\n this.delete(keys[i]);\n }\n for (i = 0; i < keys.length; i++) {\n key = keys[i];\n this.append(key, values[key].shift());\n }\n };\n }\n\n function iterator(self, callback) {\n var items = [];\n self.forEach(callback, items);\n /* istanbul ignore next */\n return iterable ?\n items[Symbol.iterator]() :\n {\n next: function() {\n var value = items.shift();\n return {done: value === void 0, value: value};\n }\n };\n }\n\n /* istanbul ignore next */\n (function (Object) {\n var\n dP = Object.defineProperty,\n gOPD = Object.getOwnPropertyDescriptor,\n createSearchParamsPollute = function (search) {\n function append(name, value) {\n URLSearchParamsProto.append.call(this, name, value);\n name = this.toString();\n search.set.call(this._usp, name ? ('?' + name) : '');\n }\n function del(name) {\n URLSearchParamsProto.delete.call(this, name);\n name = this.toString();\n search.set.call(this._usp, name ? ('?' + name) : '');\n }\n function set(name, value) {\n URLSearchParamsProto.set.call(this, name, value);\n name = this.toString();\n search.set.call(this._usp, name ? ('?' + name) : '');\n }\n return function (sp, value) {\n sp.append = append;\n sp.delete = del;\n sp.set = set;\n return dP(sp, '_usp', {\n configurable: true,\n writable: true,\n value: value\n });\n };\n },\n createSearchParamsCreate = function (polluteSearchParams) {\n return function (obj, sp) {\n dP(\n obj, '_searchParams', {\n configurable: true,\n writable: true,\n value: polluteSearchParams(sp, obj)\n }\n );\n return sp;\n };\n },\n updateSearchParams = function (sp) {\n var append = sp.append;\n sp.append = URLSearchParamsProto.append;\n URLSearchParams.call(sp, sp._usp.search.slice(1));\n sp.append = append;\n },\n verifySearchParams = function (obj, Class) {\n if (!(obj instanceof Class)) throw new TypeError(\n \"'searchParams' accessed on an object that \" +\n \"does not implement interface \" + Class.name\n );\n },\n upgradeClass = function (Class) {\n var\n ClassProto = Class.prototype,\n searchParams = gOPD(ClassProto, 'searchParams'),\n href = gOPD(ClassProto, 'href'),\n search = gOPD(ClassProto, 'search'),\n createSearchParams\n ;\n if (!searchParams && search && search.set) {\n createSearchParams = createSearchParamsCreate(\n createSearchParamsPollute(search)\n );\n Object.defineProperties(\n ClassProto,\n {\n href: {\n get: function () {\n return href.get.call(this);\n },\n set: function (value) {\n var sp = this._searchParams;\n href.set.call(this, value);\n if (sp) updateSearchParams(sp);\n }\n },\n search: {\n get: function () {\n return search.get.call(this);\n },\n set: function (value) {\n var sp = this._searchParams;\n search.set.call(this, value);\n if (sp) updateSearchParams(sp);\n }\n },\n searchParams: {\n get: function () {\n verifySearchParams(this, Class);\n return this._searchParams || createSearchParams(\n this,\n new URLSearchParams(this.search.slice(1))\n );\n },\n set: function (sp) {\n verifySearchParams(this, Class);\n createSearchParams(this, sp);\n }\n }\n }\n );\n }\n }\n ;\n try {\n upgradeClass(HTMLAnchorElement);\n if (/^function|object$/.test(typeof URL) && URL.prototype)\n upgradeClass(URL);\n } catch (meh) {}\n }(Object));\n\n}(self.URLSearchParams.prototype, Object));\nexport default self.URLSearchParams;\n"],"names":["self","URLSearchParams","plus","get","q","toString","Object","String","isArray","create","defineProperty","find","findPercentSign","replace","!","'","(",")","~","%20","%00","proto","append","key","value","appendTo","this","_ungap","delete","has","getAll","slice","set","forEach","callback","thisArg","invoke","call","toJSON","query","encoded","encode","i","length","push","join","prototype","configurable","writable","dict","charAt","pairs","split","index","indexOf","decode","addEach","res","str","decodeURIComponent","encodeURIComponent","replacer","match","Array","URLSearchParamsProto","iterable","Symbol","iterator","o_O","items","next","shift","done","names","name","keys","values","entries","sort","entry","dP","gOPD","getOwnPropertyDescriptor","updateSearchParams","sp","_usp","search","verifySearchParams","obj","Class","TypeError","upgradeClass","createSearchParams","polluteSearchParams","ClassProto","searchParams","href","del","createSearchParamsPollute","defineProperties","_searchParams","HTMLAnchorElement","test","URL","meh"],"mappings":"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"}
1
+ {"version":3,"file":"squatch.min.js","sources":["../node_modules/@ungap/url-search-params/esm/index.js"],"sourcesContent":["/*! (c) Andrea Giammarchi - ISC */\nvar self = this || /* istanbul ignore next */ {};\ntry {\n (function (URLSearchParams, plus) {\n if (\n new URLSearchParams('q=%2B').get('q') !== plus ||\n new URLSearchParams({q: plus}).get('q') !== plus ||\n new URLSearchParams([['q', plus]]).get('q') !== plus ||\n new URLSearchParams('q=\\n').toString() !== 'q=%0A' ||\n new URLSearchParams({q: ' &'}).toString() !== 'q=+%26' ||\n new URLSearchParams({q: '%zx'}).toString() !== 'q=%25zx'\n )\n throw URLSearchParams;\n self.URLSearchParams = URLSearchParams;\n }(URLSearchParams, '+'));\n} catch(URLSearchParams) {\n (function (Object, String, isArray) {'use strict';\n var create = Object.create;\n var defineProperty = Object.defineProperty;\n var find = /[!'\\(\\)~]|%20|%00/g;\n var findPercentSign = /%(?![0-9a-fA-F]{2})/g;\n var plus = /\\+/g;\n var replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n var proto = {\n append: function (key, value) {\n appendTo(this._ungap, key, value);\n },\n delete: function (key) {\n delete this._ungap[key];\n },\n get: function (key) {\n return this.has(key) ? this._ungap[key][0] : null;\n },\n getAll: function (key) {\n return this.has(key) ? this._ungap[key].slice(0) : [];\n },\n has: function (key) {\n return key in this._ungap;\n },\n set: function (key, value) {\n this._ungap[key] = [String(value)];\n },\n forEach: function (callback, thisArg) {\n var self = this;\n for (var key in self._ungap)\n self._ungap[key].forEach(invoke, key);\n function invoke(value) {\n callback.call(thisArg, value, String(key), self);\n }\n },\n toJSON: function () {\n return {};\n },\n toString: function () {\n var query = [];\n for (var key in this._ungap) {\n var encoded = encode(key);\n for (var\n i = 0,\n value = this._ungap[key];\n i < value.length; i++\n ) {\n query.push(encoded + '=' + encode(value[i]));\n }\n }\n return query.join('&');\n }\n };\n for (var key in proto)\n defineProperty(URLSearchParams.prototype, key, {\n configurable: true,\n writable: true,\n value: proto[key]\n });\n self.URLSearchParams = URLSearchParams;\n function URLSearchParams(query) {\n var dict = create(null);\n defineProperty(this, '_ungap', {value: dict});\n switch (true) {\n case !query:\n break;\n case typeof query === 'string':\n if (query.charAt(0) === '?') {\n query = query.slice(1);\n }\n for (var\n pairs = query.split('&'),\n i = 0,\n length = pairs.length; i < length; i++\n ) {\n var value = pairs[i];\n var index = value.indexOf('=');\n if (-1 < index) {\n appendTo(\n dict,\n decode(value.slice(0, index)),\n decode(value.slice(index + 1))\n );\n } else if (value.length){\n appendTo(\n dict,\n decode(value),\n ''\n );\n }\n }\n break;\n case isArray(query):\n for (var\n i = 0,\n length = query.length; i < length; i++\n ) {\n var value = query[i];\n appendTo(dict, value[0], value[1]);\n }\n break;\n case 'forEach' in query:\n query.forEach(addEach, dict);\n break;\n default:\n for (var key in query)\n appendTo(dict, key, query[key]);\n }\n }\n\n function addEach(value, key) {\n appendTo(this, key, value);\n }\n\n function appendTo(dict, key, value) {\n var res = isArray(value) ? value.join(',') : value;\n if (key in dict)\n dict[key].push(res);\n else\n dict[key] = [res];\n }\n\n function decode(str) {\n return decodeURIComponent(str.replace(findPercentSign, '%25').replace(plus, ' '));\n }\n\n function encode(str) {\n return encodeURIComponent(str).replace(find, replacer);\n }\n\n function replacer(match) {\n return replace[match];\n }\n\n }(Object, String, Array.isArray));\n}\n\n(function (URLSearchParamsProto) {\n\n var iterable = false;\n try { iterable = !!Symbol.iterator; } catch (o_O) {}\n\n /* istanbul ignore else */\n if (!('forEach' in URLSearchParamsProto)) {\n URLSearchParamsProto.forEach = function forEach(callback, thisArg) {\n var self = this;\n var names = Object.create(null);\n this.toString()\n .replace(/=[\\s\\S]*?(?:&|$)/g, '=')\n .split('=')\n .forEach(function (name) {\n if (!name.length || name in names)\n return;\n (names[name] = self.getAll(name)).forEach(function(value) {\n callback.call(thisArg, value, name, self);\n });\n });\n };\n }\n\n /* istanbul ignore else */\n if (!('keys' in URLSearchParamsProto)) {\n URLSearchParamsProto.keys = function keys() {\n return iterator(this, function(value, key) { this.push(key); });\n };\n }\n\n /* istanbul ignore else */\n if (!('values' in URLSearchParamsProto)) {\n URLSearchParamsProto.values = function values() {\n return iterator(this, function(value, key) { this.push(value); });\n };\n }\n\n /* istanbul ignore else */\n if (!('entries' in URLSearchParamsProto)) {\n URLSearchParamsProto.entries = function entries() {\n return iterator(this, function(value, key) { this.push([key, value]); });\n };\n }\n\n /* istanbul ignore else */\n if (iterable && !(Symbol.iterator in URLSearchParamsProto)) {\n URLSearchParamsProto[Symbol.iterator] = URLSearchParamsProto.entries;\n }\n\n /* istanbul ignore else */\n if (!('sort' in URLSearchParamsProto)) {\n URLSearchParamsProto.sort = function sort() {\n var\n entries = this.entries(),\n entry = entries.next(),\n done = entry.done,\n keys = [],\n values = Object.create(null),\n i, key, value\n ;\n while (!done) {\n value = entry.value;\n key = value[0];\n keys.push(key);\n if (!(key in values)) {\n values[key] = [];\n }\n values[key].push(value[1]);\n entry = entries.next();\n done = entry.done;\n }\n // not the champion in efficiency\n // but these two bits just do the job\n keys.sort();\n for (i = 0; i < keys.length; i++) {\n this.delete(keys[i]);\n }\n for (i = 0; i < keys.length; i++) {\n key = keys[i];\n this.append(key, values[key].shift());\n }\n };\n }\n\n function iterator(self, callback) {\n var items = [];\n self.forEach(callback, items);\n /* istanbul ignore next */\n return iterable ?\n items[Symbol.iterator]() :\n {\n next: function() {\n var value = items.shift();\n return {done: value === void 0, value: value};\n }\n };\n }\n\n /* istanbul ignore next */\n (function (Object) {\n var\n dP = Object.defineProperty,\n gOPD = Object.getOwnPropertyDescriptor,\n createSearchParamsPollute = function (search) {\n function append(name, value) {\n URLSearchParamsProto.append.call(this, name, value);\n name = this.toString();\n search.set.call(this._usp, name ? ('?' + name) : '');\n }\n function del(name) {\n URLSearchParamsProto.delete.call(this, name);\n name = this.toString();\n search.set.call(this._usp, name ? ('?' + name) : '');\n }\n function set(name, value) {\n URLSearchParamsProto.set.call(this, name, value);\n name = this.toString();\n search.set.call(this._usp, name ? ('?' + name) : '');\n }\n return function (sp, value) {\n sp.append = append;\n sp.delete = del;\n sp.set = set;\n return dP(sp, '_usp', {\n configurable: true,\n writable: true,\n value: value\n });\n };\n },\n createSearchParamsCreate = function (polluteSearchParams) {\n return function (obj, sp) {\n dP(\n obj, '_searchParams', {\n configurable: true,\n writable: true,\n value: polluteSearchParams(sp, obj)\n }\n );\n return sp;\n };\n },\n updateSearchParams = function (sp) {\n var append = sp.append;\n sp.append = URLSearchParamsProto.append;\n URLSearchParams.call(sp, sp._usp.search.slice(1));\n sp.append = append;\n },\n verifySearchParams = function (obj, Class) {\n if (!(obj instanceof Class)) throw new TypeError(\n \"'searchParams' accessed on an object that \" +\n \"does not implement interface \" + Class.name\n );\n },\n upgradeClass = function (Class) {\n var\n ClassProto = Class.prototype,\n searchParams = gOPD(ClassProto, 'searchParams'),\n href = gOPD(ClassProto, 'href'),\n search = gOPD(ClassProto, 'search'),\n createSearchParams\n ;\n if (!searchParams && search && search.set) {\n createSearchParams = createSearchParamsCreate(\n createSearchParamsPollute(search)\n );\n Object.defineProperties(\n ClassProto,\n {\n href: {\n get: function () {\n return href.get.call(this);\n },\n set: function (value) {\n var sp = this._searchParams;\n href.set.call(this, value);\n if (sp) updateSearchParams(sp);\n }\n },\n search: {\n get: function () {\n return search.get.call(this);\n },\n set: function (value) {\n var sp = this._searchParams;\n search.set.call(this, value);\n if (sp) updateSearchParams(sp);\n }\n },\n searchParams: {\n get: function () {\n verifySearchParams(this, Class);\n return this._searchParams || createSearchParams(\n this,\n new URLSearchParams(this.search.slice(1))\n );\n },\n set: function (sp) {\n verifySearchParams(this, Class);\n createSearchParams(this, sp);\n }\n }\n }\n );\n }\n }\n ;\n try {\n upgradeClass(HTMLAnchorElement);\n if (/^function|object$/.test(typeof URL) && URL.prototype)\n upgradeClass(URL);\n } catch (meh) {}\n }(Object));\n\n}(self.URLSearchParams.prototype, Object));\nexport default self.URLSearchParams;\n"],"names":["self","URLSearchParams","plus","get","q","toString","Object","String","isArray","create","defineProperty","find","findPercentSign","replace","!","'","(",")","~","%20","%00","proto","append","key","value","appendTo","this","_ungap","delete","has","getAll","slice","set","forEach","callback","thisArg","invoke","call","toJSON","query","encoded","encode","i","length","push","join","prototype","configurable","writable","dict","charAt","pairs","split","index","indexOf","decode","addEach","res","str","decodeURIComponent","encodeURIComponent","replacer","match","Array","URLSearchParamsProto","iterable","Symbol","iterator","o_O","items","next","shift","done","names","name","keys","values","entries","sort","entry","dP","gOPD","getOwnPropertyDescriptor","updateSearchParams","sp","_usp","search","verifySearchParams","obj","Class","TypeError","upgradeClass","createSearchParams","polluteSearchParams","ClassProto","searchParams","href","del","createSearchParamsPollute","defineProperties","_searchParams","HTMLAnchorElement","test","URL","meh"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import*as e from"debug";import t from"debug";import*as n from"eventbusjs";import*as i from"superagent";import r from"js-cookie";function o(e,t=""){const n={Accept:"application/json","Content-Type":"application/json"};return t&&(n["X-SaaSquatch-User-Token"]=t),c(i.get(e).withCredentials().set(n)).then(e=>{return!e.headers["content-type"]||(t=e.headers["content-type"].toLowerCase(),"number"!=typeof n&&(n=0),n+"application/json".length>t.length||-1===t.indexOf("application/json",n))?e.text:JSON.parse(e.text);var t,n},({response:e})=>{throw JSON.parse(e.text)})}function s(e,t,n){const r={Accept:"application/json","Content-Type":"application/json"};return n&&(r["X-SaaSquatch-User-Token"]=n),c(i.post(e).send(t).set(r)).then(({text:e})=>e?JSON.parse(e):e,e=>{let t;try{t=JSON.parse(e.response.text)}catch(t){throw e||t}throw t})}function a(e,t,n){const r={Accept:"application/json","Content-Type":"application/json","X-SaaSquatch-Referrer":window?window.location.href:""};return n&&(r["X-SaaSquatch-User-Token"]=n),c(i.put(e).withCredentials().send(t).set(r)).then(({text:e})=>e?JSON.parse(e):e,e=>{let t;try{t=JSON.parse(e.response.text)}catch(t){throw e||t}throw t})}function c(e){return new Promise((t,n)=>{e.on("error",n),e.end((e,i)=>{e?n(e):t(i)})})}function d(e,t){if(!l(e))return!1;const n=Object.keys(e);return Array.isArray(t)?t.reduce((e,t)=>e&&n.indexOf(t)>=0,!0):e.hasOwnProperty(t)}function l(e){return"object"==typeof e}function u(e,...t){return t.forEach(n=>{if(!d(e,t))throw new Error(n+" is required")}),!0}function h(e){if(!l(e))throw new Error("config must be an object");if(!d(e,"tenantAlias")||"string"!=typeof e.tenantAlias)throw new Error("tenantAlias not provided");return{tenantAlias:e.tenantAlias,domain:d(e,"domain")&&"string"==typeof e.domain&&e.domain||"https://app.referralsaasquatch.com",debug:d(e,"debug")&&"boolean"==typeof e.debug&&e.debug||!1,npmCdn:d(e,"npmCdn")&&"string"==typeof e.npmCdn&&e.npmCdn||"https://fast.ssqt.io/npm"}}function p(e){if(!l(e))throw new Error("Widget properties must be an object");return u(e,"user"),e}class m{constructor(e){const t=h(e);this.tenantAlias=t.tenantAlias,this.domain=t.domain,this.npmCdn=t.npmCdn}cookieUser(e){const{widgetType:t,engagementMedium:n="POPUP",jwt:i,user:r}=e,o=encodeURIComponent(this.tenantAlias),s=g({widgetType:t,engagementMedium:n});return a(this.domain+`/api/v1/${o}/widget/user/cookie_user${s}`,JSON.stringify(r||{}),i)}upsertUser(e){const t=p(e),{widgetType:n,engagementMedium:i="POPUP",jwt:o,user:s}=t,c=encodeURIComponent(this.tenantAlias),d=encodeURIComponent(s.accountId),l=encodeURIComponent(s.id),u=g({widgetType:n,engagementMedium:i}),h=this.domain+`/api/v1/${c}/widget/account/${d}/user/${l}/upsert${u}`,m=r.get("_saasquatch");return m&&(s.cookies=m),a(h,JSON.stringify(s),o)}render(e){const t=p(e),{widgetType:n,engagementMedium:i="POPUP",jwt:r,user:s}=t,a=encodeURIComponent(this.tenantAlias),c=encodeURIComponent(s.accountId),d=encodeURIComponent(s.id),l=g({widgetType:n,engagementMedium:i});return o(this.domain+`/api/v1/${a}/widget/account/${c}/user/${d}/render${l}`,r)}invite({emailList:e=[],userId:t,accountId:n,tenantAlias:i}){const r=encodeURIComponent(i);return s(this.domain+`/api/v1/${r}/mail/referralinvite`,JSON.stringify({sendingAccountId:n,sendingUserId:t,recipients:e}))}squatchReferralCookie(){const e=encodeURIComponent(this.tenantAlias),t=r.get("_saasquatch"),n=t?`?cookies=${encodeURIComponent(t)}`:"";return o(`${this.domain}/a/${e}/widgets/squatchcookiejson${n}`)}}function g({widgetType:e,engagementMedium:t}){return(e?`?widgetType=${encodeURIComponent(e)}`:"")+`${e?"&":"?"}engagementMedium=${encodeURIComponent(t)}`}class f{constructor(e){const t=e;this.domain=d(t,"domain")&&"string"==typeof t.domain?t.domain:"https://app.referralsaasquatch.com"}pushAnalyticsLoadEvent(e){const t=encodeURIComponent(e.tenantAlias),n=encodeURIComponent(e.externalAccountId),i=encodeURIComponent(e.externalUserId),r=encodeURIComponent(e.engagementMedium),o=e.programId?`&programId=${encodeURIComponent(e.programId)}`:"";return s(this.domain+`/a/${t}/widgets/analytics/loaded?externalAccountId=${n}&externalUserId=${i}&engagementMedium=${r}${o}`,JSON.stringify({}))}pushAnalyticsShareClickedEvent(e){const t=encodeURIComponent(e.tenantAlias),n=encodeURIComponent(e.externalAccountId),i=encodeURIComponent(e.externalUserId),r=encodeURIComponent(e.engagementMedium),o=encodeURIComponent(e.shareMedium);return s(this.domain+`/a/${t}/widgets/analytics/shared?externalAccountId=${n}&externalUserId=${i}&engagementMedium=${r}&shareMedium=${o}`,JSON.stringify({}))}}const w=t("squatch-js:widget");class y{constructor(e){w("widget initializing ..."),this.content="error"===e.content?this._error(e.rsCode):e.content,this.type=e.type,this.widgetApi=e.api,this.npmCdn=e.npmCdn,this.analyticsApi=new f({domain:e.domain}),this.frame=document.createElement("iframe"),this.frame.squatchJsApi=this,this.frame.width="100%",this.frame.scrolling="no",this.frame.setAttribute("style","border: 0; background-color: none; width: 1px; min-width: 100%;"),this.context=e.context}_loadEvent(e){if(!e)return;if(!l(e))throw new Error("Widget Load event identity property is not an object");let t;if(d(e,"programId")){if(!d(e,["tenantAlias","accountId","userId","engagementMedium"]))throw new Error("Widget Load event missing required properties");t={tenantAlias:e.tenantAlias,externalAccountId:e.accountId,externalUserId:e.userId,engagementMedium:e.engagementMedium,programId:e.programId}}else{const{analytics:n,mode:i}=e;t={tenantAlias:n.attributes.tenant,externalAccountId:n.attributes.accountId,externalUserId:n.attributes.userId,engagementMedium:i.widgetMode}}this.analyticsApi.pushAnalyticsLoadEvent(t).then(e=>{w(`${t.engagementMedium} loaded event recorded.`)}).catch(e=>{w(new Error(`pushAnalyticsLoadEvent() ${e}`))})}_shareEvent(e,t){e&&this.analyticsApi.pushAnalyticsShareClickedEvent({tenantAlias:e.analytics.attributes.tenant,externalAccountId:e.analytics.attributes.accountId,externalUserId:e.analytics.attributes.userId,engagementMedium:e.mode.widgetMode,shareMedium:t}).then(n=>{w(`${e.mode.widgetMode} share ${t} event recorded. ${n}`)}).catch(e=>{w(new Error(`pushAnalyticsLoadEvent() ${e}`))})}_inviteContacts(e,t){e&&this.widgetApi.invite({tenantAlias:e.analytics.attributes.tenant,accountId:e.analytics.attributes.accountId,userId:e.analytics.attributes.userId,emailList:t}).then(e=>{w(`Sent email invites to share ${t}. ${e}`)}).catch(e=>{w(new Error(`invite() ${e}`))})}_error(e,t="modal",n=""){return`<!DOCTYPE html>\n \x3c!--[if IE 7]><html class="ie7 oldie" lang="en"><![endif]--\x3e\n \x3c!--[if IE 8]><html class="ie8 oldie" lang="en"><![endif]--\x3e\n \x3c!--[if gt IE 8]>\x3c!--\x3e<html lang="en">\x3c!--<![endif]--\x3e\n <head>\n <link rel="stylesheet" media="all" href="https://fast.ssqt.io/assets/css/widget/errorpage.css">\n <style>\n ${n}\n </style>\n </head>\n <body>\n\n <div class="squatch-container ${t}" style="width:100%">\n <div class="errorheader">\n <button type="button" class="close" onclick="window.frameElement.squatchJsApi.close();">&times;</button>\n <p class="errortitle">Error</p>\n </div>\n <div class="errorbody">\n <div class="sadface"><img src="https://fast.ssqt.io/assets/images/face.png"></div>\n <h4>Our referral program is temporarily unavailable.</h4><br>\n <p>Please reload the page or check back later.</p>\n <p>If the persists please contact our support team.</p>\n <br>\n <br>\n <div class="right-align errtxt">\n Error Code: ${e}\n </div>\n </div>\n </div>\n </body>\n </html>`}async _findInnerContainer(){const{contentWindow:e}=this.frame;if(!e)throw new Error("Squatch.js frame inner frame is empty");const t=e.document;function n(){const e=t.getElementsByTagName("sqh-global-container"),n=t.getElementsByClassName("squatch-container");return e.length>0?e[0]:n.length>0?n[0]:null}let i=null;for(let e=0;e<5&&(i=n(),!i);e++)await v(100);return i||t.body}reload({email:e,firstName:t,lastName:n},i){const r=this.frame.contentWindow,o=this.context.engagementMedium||"POPUP";if(!r)throw new Error("Frame needs a content window");const s=r.document;let a;if("upsert"===this.context.type)a=this.widgetApi.upsertUser({user:{email:e||null,firstName:t||null,lastName:n||null,id:this.context.user.id,accountId:this.context.user.accountId},engagementMedium:o,widgetType:this.type,jwt:i});else{if("cookie"!==this.context.type)throw new Error("can't reload an error widget");a=this.widgetApi.cookieUser({user:{email:e||null,firstName:t||null,lastName:n||null},engagementMedium:o,widgetType:this.type,jwt:i})}a.then(({template:t})=>{if(t){this.content=t;const n=s.createElement("button"),i=s.getElementsByClassName("squatch-register")[0];i&&(n.className="btn btn-primary",n.id="show-stats-btn",n.textContent="REFERRER_WIDGET"===this.type?"Show Stats":"Show Reward",n.setAttribute("style","POPUP"===o?"margin-top: 10px; max-width: 130px; width: 100%;":"margin-top: 10px;"),n.onclick=()=>{this.load(),"POPUP"===o&&this.open()},i.style.paddingTop="30px",i.innerHTML=`<p><strong>${e}</strong><br>Has been successfully registered</p>`,i.appendChild(n))}}).catch(({message:e})=>{w(`${e}`)})}}function v(e){return new Promise(function(t,n){setTimeout(function(){t()},e)})}function b(e,t){let n,i=[],r=e,o="DOMContentLoaded",s=(r.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(r.readyState);return s||r.addEventListener(o,n=()=>{for(r.removeEventListener(o,n),s=!0;n=i.shift();)n()}),s?setTimeout(t,0):i.push(t)}const E=t("squatch-js:EMBEDwidget");class C extends y{constructor(e,t){let n;if(super(e),"string"==typeof t?(n=document.querySelector(t),E("loading widget with selector",n)):t instanceof HTMLElement?(n=t,E("loading widget with container",n)):t?(n=null,E("container must be an HTMLElement or string",t)):(n=document.querySelector("#squatchembed")||document.querySelector(".squatchembed"),E("loading widget with default selector",n)),!(n instanceof HTMLElement))throw new Error(`element with selector '${t}' not found.'`);this.element=n}async load(){var e=this;this.context.container?(this.element.style.visibility="hidden",this.element.style.height="0",this.element.style["overflow-y"]="hidden",this.element.firstChild?this.element.replaceChild(this.frame,this.element.firstChild):this.element.appendChild(this.frame)):this.element.firstChild&&"#text"!==this.element.firstChild.nodeName||this.element.appendChild(this.frame);const{contentWindow:t}=this.frame;if(!t)throw new Error("Frame needs a content window");const n=t.document;n.open(),n.write(this.content),n.write(`<script src="${this.npmCdn}/resize-observer-polyfill@1.5.x"><\/script>`),n.close(),b(n,async function(){const i=t.squatch||t.widgetIdent,r=n.getElementById("cta");if(r){if(!r.parentNode)throw new Error("ctaElement needs a parentNode");r.parentNode.removeChild(r)}e.frame.height=n.body.scrollHeight,new t.ResizeObserver(t=>{for(const n of t){const{height:t}=n.contentRect;e.frame.height=t}}).observe(await e._findInnerContainer()),e.context.container||(e._loadEvent(i),E("loaded"))})}open(){var e,t,n,i,r,o;if(!this.frame)return E("no target element to open");this.element.style.visibility="unset",this.element.style.height="auto",this.element.style["overflow-y"]="auto",null==(e=this.frame)||null==(t=e.contentDocument)||t.dispatchEvent(new CustomEvent("sq:refresh"));const s=(null==(n=this.frame)||null==(i=n.contentWindow)?void 0:i.squatch)||(null==(r=this.frame)||null==(o=r.contentWindow)?void 0:o.widgetIdent);this._loadEvent(s),E("loaded")}close(){if(!this.frame)return E("no target element to close");this.element.style.visibility="hidden",this.element.style.height="0",this.element.style["overflow-y"]="hidden",E("Embed widget closed")}_error(e,t="embed",n=""){return super._error(e,t,n)}}const A=t("squatch-js:POPUPwidget");class I extends y{constructor(e,t=".squatchpop"){super(e);try{this.triggerElement=document.querySelector(t),t&&!this.triggerElement&&A("No element found with trigger selector",t)}catch(e){A("Not a valid selector",t)}this.triggerElement&&(this.triggerElement.onclick=()=>{this.open()}),this.triggerWhenCTA=document.querySelector(".squatchpop"),"#cta"===t&&this.triggerWhenCTA&&(this.triggerWhenCTA.onclick=()=>{this.open()}),this.popupdiv=document.createElement("div"),this.popupdiv.id="squatchModal",this.popupdiv.setAttribute("style","display: none; position: fixed; z-index: 1; padding-top: 5%; left: 0; top: -2000px; width: 100%; height: 100%; overflow: auto; background-color: rgba(0,0,0,0.4);"),this.popupcontent=document.createElement("div"),this.popupcontent.setAttribute("style","margin: auto; width: 80%; max-width: 500px; position: relative;"),this.popupdiv.onclick=e=>{this._clickedOutside(e)}}load(){this.popupdiv.appendChild(this.popupcontent),document.body.appendChild(this.popupdiv),this.popupcontent.appendChild(this.frame);const e=this.frame.contentWindow.document;e.open(),e.write(this.content),e.write(`<script src="${this.npmCdn}/resize-observer-polyfill@1.5.x"><\/script>`),e.close(),A("Popup template loaded into iframe"),this._setupResizeHandler()}_setupResizeHandler(){var e=this;const t=this.popupdiv,n=this.frame,{contentWindow:i}=n;if(!i)throw new Error("Frame needs a content window");const r=i.document;b(r,async function(){r.body.style.overflowY="hidden",t.style.visibility="hidden",t.style.display="block",n.height=`${r.body.offsetHeight}px`,new i.ResizeObserver(e=>{for(const i of e){const{top:e,bottom:r}=i.contentRect;n.height=r+e+"",i.target.style="",t.style.paddingTop=window.innerHeight>Number(n.height)?(window.innerHeight-Number(n.height))/2+"px":"5px"}}).observe(await e._findInnerContainer())})}open(){const e=this.popupdiv,t=this.frame,{contentWindow:n}=t;if(!n)throw new Error("Squatch.js has an empty iframe");const i=n.document;b(i,()=>{var r;const o=n.squatch||n.widgetIdent,s=i.getElementById("cta");s&&s.parentNode.removeChild(s),e.style.visibility="visible",e.style.top="0px",null==(r=t.contentDocument)||r.dispatchEvent(new CustomEvent("sq:refresh")),this._loadEvent(o),A("Popup opened")})}close(){this.popupdiv.style.visibility="hidden",this.popupdiv.style.top="-2000px",A("Popup closed")}_clickedOutside({target:e}){e===this.popupdiv&&this.close()}_error(e,t="modal",n=""){return super._error(e,t,n||"body { margin: 0; } .modal { box-shadow: none; border: 0; }")}}const x=e("squatch-js:CTAwidget");class U extends I{constructor(e,t){x("CTA constructor");const n=document.createElement("div");n.id="cta",document.body.appendChild(n),super(e,"#cta"),t.side||t.position||(t.position="bottom",t.side="right"),"middle"===t.position?(this.position="top: 45%;",this.side="center"===t.side?"right: 45%;":`${t.side}: -10px;`):(this.position=`${t.position}: -10px;`,this.side="center"===t.side?"right: 45%;":`${t.side}: 20px;`),this.positionClass=t.position,this.ctaFrame=document.createElement("iframe"),this.ctaFrame.squatchJsApi=this,this.ctaFrame.scrolling="no",this.ctaFrame.setAttribute("style",`border:0; background-color:transparent; position:fixed; display:none;${this.side}${this.position}`),document.body.appendChild(this.ctaFrame),x("ctaframe appended to body")}load(){if(super.load(),!this.frame.contentWindow)throw new Error("frame requires a contentWindow");const e=this.frame.contentWindow.document,t=this.ctaFrame,n=this.positionClass;b(e,()=>{const i=e.getElementById("cta");if(i){if(!i.parentNode)throw new Error("ctaElement requires a parentNode");i.parentNode.removeChild(i);const e=t.contentWindow;if(!e)throw new Error("ctaFrame requires a contentWindow");const r=e.document;r.open(),r.write(i.innerHTML),r.write(`<script src="${this.npmCdn}/resize-observer-polyfill@1.5.x"><\/script>`),r.close(),b(r,()=>{const i=r.getElementsByClassName("cta-container")[0];i.style.position="fixed",t.height=i.offsetHeight,t.width=i.scrollWidth,t.style.display="block",i.classList.contains(n)||(i.className+=` ${n}`),new e.ResizeObserver(e=>{for(const n of e){const{height:e,width:i}=n.contentRect;t.height=e,t.width=i}}).observe(i),x("CTA template loaded into iframe")})}else x(new Error("CTA element not found in theme"))})}open(){super.open()}close(){super.close()}}const q=t("squatch-js:widgets");class _{constructor(e){const t=h(e);this.tenantAlias=t.tenantAlias,this.domain=t.domain,this.npmCdn=t.npmCdn,this.eventBus=n,this.api=new m(t),n.addEventListener("submit_email",_._cb)}async createCookieUser(e){try{const t=await this.api.cookieUser(e);return{widget:this._renderWidget(t,e,{type:"cookie",engagementMedium:e.engagementMedium}),user:t.user}}catch(t){throw q(t),t.apiErrorCode&&this._renderErrorWidget(t,e.engagementMedium),t}}async upsertUser(e){const t=p(e);try{const n=await this.api.upsertUser(t);return{widget:this._renderWidget(n,t,{type:"upsert",user:t.user,engagementMedium:e.engagementMedium,container:e.container,trigger:e.trigger}),user:n.user}}catch(t){throw q(t),t.apiErrorCode&&this._renderErrorWidget(t,e.engagementMedium),t}}async render(e){const t=p(e);try{const e=await this.api.cookieUser(t);return{widget:this._renderWidget({template:e},t,{type:"cookie",engagementMedium:t.engagementMedium}),user:e.user}}catch(e){throw e.apiErrorCode&&this._renderErrorWidget(e,t.engagementMedium),e}}autofill(e){const t=e;if("function"==typeof t)return void this.api.squatchReferralCookie().then((...e)=>t(...e)).catch(e=>{throw q("Autofill error",e),e});if("string"!=typeof t)throw new Error("Autofill accepts a string or function");let n,i=document.querySelectorAll(t);if(!(i.length>0))throw q("Element id/class or function missing"),new Error("Element id/class or function missing");n=i[0],this.api.squatchReferralCookie().then(({code:e})=>{n.value=e}).catch(e=>{throw e})}submitEmail(e){n.removeEventListener("submit_email",_._cb),n.addEventListener("submit_email",e)}_renderWidget(e,t,n){if(q("Rendering Widget..."),!e)throw new Error("Unable to get a response");let i,r=!1,o=!1;const s=e.jsOptions||"",a={content:e.template,type:t.widgetType||s.widget.defaultWidgetType,api:this.api,domain:this.domain,npmCdn:this.npmCdn,context:n};return s.widgetUrlMappings&&s.widgetUrlMappings.forEach(t=>{_._matchesUrl(t.url)&&("CONVERSION_WIDGET"!==t.widgetType||e.user.referredBy&&e.user.referredBy.code?(r=t.displayOnLoad,o=t.showAsCTA,q(`Display ${t.widgetType} on ${t.url}`)):q(`Don't display ${t.widgetType} when no referral on widget rule match ${t.url}`))}),s.conversionUrls&&s.conversionUrls.forEach(t=>{e.user.referredBy&&_._matchesUrl(t)&&q("This is a conversion URL",t)}),s.fuelTankAutofillUrls&&(q("We found a fuel tank autofill!"),s.fuelTankAutofillUrls.forEach(({url:t,formSelector:n})=>{if(_._matchesUrl(t)&&(q("Fuel Tank URL matches"),e.user.referredBy&&e.user.referredBy.code)){const t=document.querySelector(n);t?t.value=e.user.referredBy.referredReward.fuelTankCode||"":q(new Error(`Element with id/class ${n} was not found.`))}})),o||"EMBED"!==t.engagementMedium?o||"POPUP"!==t.engagementMedium?o?(q("display CTA"),i=new U(a,{side:s.cta.content.buttonSide,position:s.cta.content.buttonPosition}),i.load(),r&&i.open()):(q("display popup on load"),i=new I(a),i.load(),r&&i.open()):(i=new I(a,a.context.trigger),i.load(),r&&i.open()):(i=new C(a,a.context.container),i.load()),i}_renderErrorWidget(e,t="POPUP"){const{apiErrorCode:n,rsCode:i,message:r}=e;q(new Error(`${n} (${i}) ${r}`));const o={content:"error",rsCode:i,api:this.api,domain:this.domain,npmCdn:this.npmCdn,type:"ERROR_WIDGET",context:{type:"error"}};let s;"EMBED"===t?(s=new C(o),s.load()):"POPUP"===t&&(s=new I(o),s.load())}static _matchesUrl(e){return!!window.location.href.match(new RegExp(e))}static _cb(e,t,n){let i;i="string"==typeof n||n instanceof String?{email:n}:n,t.reload(i)}}class S{constructor(e){const t=h(e);this.tenantAlias=t.tenantAlias,this.domain=t.domain}track(e,t){const n=t,i=function(e){if(u(e,"accountId","events","userId"),!Array.isArray(e.events))throw new Error("'events' should be an array");return e}(e),{jwt:r}=function(e){if(!l(e))throw new Error("'options' should be an object");return e}(n),o=encodeURIComponent(this.tenantAlias),a=encodeURIComponent(i.userId),c=encodeURIComponent(i.accountId);return s(this.domain+`/api/v1/${o}/open/account/${c}/user/${a}/events`,JSON.stringify(i),r)}}function $(){return($=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e}).apply(this,arguments)}var R={};try{!function(e,t){if(new e("q=%2B").get("q")!==t||new e({q:t}).get("q")!==t||new e([["q",t]]).get("q")!==t||"q=%0A"!==new e("q=\n").toString()||"q=+%26"!==new e({q:" &"}).toString()||"q=%25zx"!==new e({q:"%zx"}).toString())throw e;R.URLSearchParams=e}(URLSearchParams,"+")}catch(e){!function(e,t,n){var i=e.create,r=e.defineProperty,o=/[!'\(\)~]|%20|%00/g,s=/%(?![0-9a-fA-F]{2})/g,a=/\+/g,c={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"},d={append:function(e,t){p(this._ungap,e,t)},delete:function(e){delete this._ungap[e]},get:function(e){return this.has(e)?this._ungap[e][0]:null},getAll:function(e){return this.has(e)?this._ungap[e].slice(0):[]},has:function(e){return e in this._ungap},set:function(e,n){this._ungap[e]=[t(n)]},forEach:function(e,n){var i=this;for(var r in i._ungap)i._ungap[r].forEach(o,r);function o(o){e.call(n,o,t(r),i)}},toJSON:function(){return{}},toString:function(){var e=[];for(var t in this._ungap)for(var n=g(t),i=0,r=this._ungap[t];i<r.length;i++)e.push(n+"="+g(r[i]));return e.join("&")}};for(var l in d)r(u.prototype,l,{configurable:!0,writable:!0,value:d[l]});function u(e){var t=i(null);switch(r(this,"_ungap",{value:t}),!0){case!e:break;case"string"==typeof e:"?"===e.charAt(0)&&(e=e.slice(1));for(var o=e.split("&"),s=0,a=o.length;s<a;s++){var c=(d=o[s]).indexOf("=");-1<c?p(t,m(d.slice(0,c)),m(d.slice(c+1))):d.length&&p(t,m(d),"")}break;case n(e):for(s=0,a=e.length;s<a;s++){var d;p(t,(d=e[s])[0],d[1])}break;case"forEach"in e:e.forEach(h,t);break;default:for(var l in e)p(t,l,e[l])}}function h(e,t){p(this,t,e)}function p(e,t,i){var r=n(i)?i.join(","):i;t in e?e[t].push(r):e[t]=[r]}function m(e){return decodeURIComponent(e.replace(s,"%25").replace(a," "))}function g(e){return encodeURIComponent(e).replace(o,f)}function f(e){return c[e]}R.URLSearchParams=u}(Object,String,Array.isArray)}!function(e){var t=!1;try{t=!!Symbol.iterator}catch(e){}function n(e,n){var i=[];return e.forEach(n,i),t?i[Symbol.iterator]():{next:function(){var e=i.shift();return{done:void 0===e,value:e}}}}"forEach"in e||(e.forEach=function(e,t){var n=this,i=Object.create(null);this.toString().replace(/=[\s\S]*?(?:&|$)/g,"=").split("=").forEach(function(r){r.length&&!(r in i)&&(i[r]=n.getAll(r)).forEach(function(i){e.call(t,i,r,n)})})}),"keys"in e||(e.keys=function(){return n(this,function(e,t){this.push(t)})}),"values"in e||(e.values=function(){return n(this,function(e,t){this.push(e)})}),"entries"in e||(e.entries=function(){return n(this,function(e,t){this.push([t,e])})}),t&&!(Symbol.iterator in e)&&(e[Symbol.iterator]=e.entries),"sort"in e||(e.sort=function(){for(var e,t,n,i=this.entries(),r=i.next(),o=r.done,s=[],a=Object.create(null);!o;)s.push(t=(n=r.value)[0]),t in a||(a[t]=[]),a[t].push(n[1]),o=(r=i.next()).done;for(s.sort(),e=0;e<s.length;e++)this.delete(s[e]);for(e=0;e<s.length;e++)this.append(t=s[e],a[t].shift())}),function(t){var n=t.defineProperty,i=t.getOwnPropertyDescriptor,r=function(t){var n=t.append;t.append=e.append,URLSearchParams.call(t,t._usp.search.slice(1)),t.append=n},o=function(e,t){if(!(e instanceof t))throw new TypeError("'searchParams' accessed on an object that does not implement interface "+t.name)},s=function(s){var a,c,d=s.prototype,l=i(d,"searchParams"),u=i(d,"href"),h=i(d,"search");!l&&h&&h.set&&(c=function(t){function i(n,i){e.append.call(this,n,i),n=this.toString(),t.set.call(this._usp,n?"?"+n:"")}function r(n){e.delete.call(this,n),n=this.toString(),t.set.call(this._usp,n?"?"+n:"")}function o(n,i){e.set.call(this,n,i),n=this.toString(),t.set.call(this._usp,n?"?"+n:"")}return function(e,t){return e.append=i,e.delete=r,e.set=o,n(e,"_usp",{configurable:!0,writable:!0,value:t})}}(h),a=function(e,t){return n(e,"_searchParams",{configurable:!0,writable:!0,value:c(t,e)}),t},t.defineProperties(d,{href:{get:function(){return u.get.call(this)},set:function(e){var t=this._searchParams;u.set.call(this,e),t&&r(t)}},search:{get:function(){return h.get.call(this)},set:function(e){var t=this._searchParams;h.set.call(this,e),t&&r(t)}},searchParams:{get:function(){return o(this,s),this._searchParams||a(this,new URLSearchParams(this.search.slice(1)))},set:function(e){o(this,s),a(this,e)}}}))};try{s(HTMLAnchorElement),/^function|object$/.test(typeof URL)&&URL.prototype&&s(URL)}catch(e){}}(Object)}(R.URLSearchParams.prototype);var P=R.URLSearchParams;const k=t("squatch-js"),O=e=>"object"==typeof e&&!Array.isArray(e),T=(e,t)=>{const n=n=>O(t[n])&&e.hasOwnProperty(n)&&O(e[n]),i=Object.getOwnPropertyNames(t).map(i=>({[i]:n(i)?T(e[i],t[i]):t[i]})).reduce((e,t)=>$({},e,t),{});return $({},e,i)};function M(e){return atob(e.replace(/_/g,"/").replace(/-/g,"+"))}function j(e){return btoa(e).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function N(){console.log("Having trouble using Squatch.js? Go to https://docs.referralsaasquatch.com/developer/ for tutorials, references and error codes.")}const L=t("squatch-js");let W=null,J=null,B=null;function D(){return W}function H(){return J}function z(){return null}function F(){return B}function G(e){const n=h(e);(n.tenantAlias.match("^test")||n.debug)&&t.enable("squatch-js*"),L("initializing ..."),W=new m(n),J=new _(n),B=new S(n),L("Widget API instance",W),L("Widgets instance",J),L("Events API instance",B)}function X(e){e()}function Y(e){H().autofill(e)}function V(e){H().submitEmail(e)}function K(){!function(){const e=window.location.search,t=new P(e).get("_saasquatch")||"";if(t){let e="",n="",i="";try{e=JSON.parse(M(t))}catch(e){return void k("Unable to decode params",e)}try{n=JSON.parse(M(r.get("_saasquatch"))),k("existing cookie",n)}catch(e){k("Unable to retrieve cookie",e)}try{const t=function(){var e,t,n="weird_get_top_level_domain=cookie",i=document.location.hostname.split(".");for(e=i.length-1;e>=0;e--)if(t=i.slice(e).join("."),document.cookie=n+";domain=."+t+";",document.cookie.indexOf(n)>-1)return document.cookie=n.split("=")[0]+"=;domain=."+t+";expires=Thu, 01 Jan 1970 00:00:01 GMT;",t}();if(k("domain retrieved:",t),n){const t=T(n,e);i=j(JSON.stringify(t)),k("cookie to store:",t)}else i=j(JSON.stringify(e)),k("cookie to store:",e);r.set("_saasquatch",i,{expires:365,secure:!1,sameSite:"Lax",domain:t,path:"/"})}catch(e){k("Unable to set cookie",e)}}}()}"undefined"==typeof document||window.SaaSquatchDoNotAutoDrop||K(),"undefined"!=typeof document&&function(){const e=window.squatch||null,t=window._squatch||null;if(e&&t){(t.ready||[]).forEach(e=>setTimeout(()=>e(),0)),window._squatch=void 0;try{delete window._squatch}catch(e){throw e}}}();export{U as CtaWidget,C as EmbedWidget,I as PopupWidget,m as WidgetApi,_ as Widgets,D as api,Y as autofill,F as events,N as help,G as init,K as pushCookie,X as ready,V as submitEmail,z as widget,H as widgets};
1
+ import*as e from"debug";import t from"debug";import*as n from"eventbusjs";import*as i from"superagent";import o from"js-cookie";function r(){return(r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e}).apply(this,arguments)}function s(e,t=""){const n={Accept:"application/json","Content-Type":"application/json"};return t&&(n["X-SaaSquatch-User-Token"]=t),d(i.get(e).withCredentials().set(n)).then(e=>{return!e.headers["content-type"]||(t=e.headers["content-type"].toLowerCase(),"number"!=typeof n&&(n=0),n+"application/json".length>t.length||-1===t.indexOf("application/json",n))?e.text:JSON.parse(e.text);var t,n},({response:e})=>{throw JSON.parse(e.text)})}function a(e,t,n){const o={Accept:"application/json","Content-Type":"application/json"};return n&&(o["X-SaaSquatch-User-Token"]=n),d(i.post(e).send(t).set(o)).then(({text:e})=>e?JSON.parse(e):e,e=>{let t;try{t=JSON.parse(e.response.text)}catch(t){throw e||t}throw t})}function c(e,t,n){const o={Accept:"application/json","Content-Type":"application/json","X-SaaSquatch-Referrer":window?window.location.href:""};return n&&(o["X-SaaSquatch-User-Token"]=n),d(i.put(e).withCredentials().send(t).set(o)).then(({text:e})=>e?JSON.parse(e):e,e=>{let t;try{t=JSON.parse(e.response.text)}catch(t){throw e||t}throw t})}function d(e){return new Promise((t,n)=>{e.on("error",n),e.end((e,i)=>{e?n(e):t(i)})})}function l(e,t){if(!u(e))return!1;const n=Object.keys(e);return Array.isArray(t)?t.reduce((e,t)=>e&&n.indexOf(t)>=0,!0):e.hasOwnProperty(t)}function u(e){return"object"==typeof e}function h(e,...t){return t.forEach(n=>{if(!l(e,t))throw new Error(n+" is required")}),!0}function p(e){if(!u(e))throw new Error("config must be an object");if(!l(e,"tenantAlias")||"string"!=typeof e.tenantAlias)throw new Error("tenantAlias not provided");return{tenantAlias:e.tenantAlias,domain:l(e,"domain")&&"string"==typeof e.domain&&e.domain||"https://app.referralsaasquatch.com",debug:l(e,"debug")&&"boolean"==typeof e.debug&&e.debug||!1,npmCdn:l(e,"npmCdn")&&"string"==typeof e.npmCdn&&e.npmCdn||"https://fast.ssqt.io/npm"}}function m(e){if(!u(e))throw new Error("Widget properties must be an object");return h(e,"user"),e}class g{constructor(e){const t=p(e);this.tenantAlias=t.tenantAlias,this.domain=t.domain,this.npmCdn=t.npmCdn}cookieUser(e){const{widgetType:t,engagementMedium:n="POPUP",jwt:i,user:o}=e,r=encodeURIComponent(this.tenantAlias),s=f({widgetType:t,engagementMedium:n});return c(this.domain+`/api/v1/${r}/widget/user/cookie_user${s}`,JSON.stringify(o||{}),i)}upsertUser(e){const t=m(e),{widgetType:n,engagementMedium:i="POPUP",jwt:r,user:s}=t,a=encodeURIComponent(this.tenantAlias),d=encodeURIComponent(s.accountId),l=encodeURIComponent(s.id),u=f({widgetType:n,engagementMedium:i}),h=this.domain+`/api/v1/${a}/widget/account/${d}/user/${l}/upsert${u}`,p=o.get("_saasquatch");return p&&(s.cookies=p),c(h,JSON.stringify(s),r)}render(e){const t=m(e),{widgetType:n,engagementMedium:i="POPUP",jwt:o,user:r}=t,a=encodeURIComponent(this.tenantAlias),c=encodeURIComponent(r.accountId),d=encodeURIComponent(r.id),l=f({widgetType:n,engagementMedium:i});return s(this.domain+`/api/v1/${a}/widget/account/${c}/user/${d}/render${l}`,o)}invite({emailList:e=[],userId:t,accountId:n,tenantAlias:i}){const o=encodeURIComponent(i);return a(this.domain+`/api/v1/${o}/mail/referralinvite`,JSON.stringify({sendingAccountId:n,sendingUserId:t,recipients:e}))}async squatchReferralCookie(){const e=encodeURIComponent(this.tenantAlias),t=o.get("_saasquatch")||"",n=t?`?cookies=${encodeURIComponent(t)}`:"",i=`${this.domain}/a/${e}/widgets/squatchcookiejson${n}`,a=await s(i);return Promise.resolve(r({},a,{encodedCookie:t}))}}function f({widgetType:e,engagementMedium:t}){return(e?`?widgetType=${encodeURIComponent(e)}`:"")+`${e?"&":"?"}engagementMedium=${encodeURIComponent(t)}`}class w{constructor(e){const t=e;this.domain=l(t,"domain")&&"string"==typeof t.domain?t.domain:"https://app.referralsaasquatch.com"}pushAnalyticsLoadEvent(e){const t=encodeURIComponent(e.tenantAlias),n=encodeURIComponent(e.externalAccountId),i=encodeURIComponent(e.externalUserId),o=encodeURIComponent(e.engagementMedium),r=e.programId?`&programId=${encodeURIComponent(e.programId)}`:"";return a(this.domain+`/a/${t}/widgets/analytics/loaded?externalAccountId=${n}&externalUserId=${i}&engagementMedium=${o}${r}`,JSON.stringify({}))}pushAnalyticsShareClickedEvent(e){const t=encodeURIComponent(e.tenantAlias),n=encodeURIComponent(e.externalAccountId),i=encodeURIComponent(e.externalUserId),o=encodeURIComponent(e.engagementMedium),r=encodeURIComponent(e.shareMedium);return a(this.domain+`/a/${t}/widgets/analytics/shared?externalAccountId=${n}&externalUserId=${i}&engagementMedium=${o}&shareMedium=${r}`,JSON.stringify({}))}}const y=t("squatch-js:widget");class v{constructor(e){y("widget initializing ..."),this.content="error"===e.content?this._error(e.rsCode):e.content,this.type=e.type,this.widgetApi=e.api,this.npmCdn=e.npmCdn,this.analyticsApi=new w({domain:e.domain}),this.frame=document.createElement("iframe"),this.frame.squatchJsApi=this,this.frame.width="100%",this.frame.scrolling="no",this.frame.setAttribute("style","border: 0; background-color: none; width: 1px; min-width: 100%;"),this.context=e.context}_loadEvent(e){if(!e)return;if(!u(e))throw new Error("Widget Load event identity property is not an object");let t;if(l(e,"programId")){if(!l(e,["tenantAlias","accountId","userId","engagementMedium"]))throw new Error("Widget Load event missing required properties");t={tenantAlias:e.tenantAlias,externalAccountId:e.accountId,externalUserId:e.userId,engagementMedium:e.engagementMedium,programId:e.programId}}else{const{analytics:n,mode:i}=e;t={tenantAlias:n.attributes.tenant,externalAccountId:n.attributes.accountId,externalUserId:n.attributes.userId,engagementMedium:i.widgetMode}}this.analyticsApi.pushAnalyticsLoadEvent(t).then(e=>{y(`${t.engagementMedium} loaded event recorded.`)}).catch(e=>{y(new Error(`pushAnalyticsLoadEvent() ${e}`))})}_shareEvent(e,t){e&&this.analyticsApi.pushAnalyticsShareClickedEvent({tenantAlias:e.analytics.attributes.tenant,externalAccountId:e.analytics.attributes.accountId,externalUserId:e.analytics.attributes.userId,engagementMedium:e.mode.widgetMode,shareMedium:t}).then(n=>{y(`${e.mode.widgetMode} share ${t} event recorded. ${n}`)}).catch(e=>{y(new Error(`pushAnalyticsLoadEvent() ${e}`))})}_inviteContacts(e,t){e&&this.widgetApi.invite({tenantAlias:e.analytics.attributes.tenant,accountId:e.analytics.attributes.accountId,userId:e.analytics.attributes.userId,emailList:t}).then(e=>{y(`Sent email invites to share ${t}. ${e}`)}).catch(e=>{y(new Error(`invite() ${e}`))})}_error(e,t="modal",n=""){return`<!DOCTYPE html>\n \x3c!--[if IE 7]><html class="ie7 oldie" lang="en"><![endif]--\x3e\n \x3c!--[if IE 8]><html class="ie8 oldie" lang="en"><![endif]--\x3e\n \x3c!--[if gt IE 8]>\x3c!--\x3e<html lang="en">\x3c!--<![endif]--\x3e\n <head>\n <link rel="stylesheet" media="all" href="https://fast.ssqt.io/assets/css/widget/errorpage.css">\n <style>\n ${n}\n </style>\n </head>\n <body>\n\n <div class="squatch-container ${t}" style="width:100%">\n <div class="errorheader">\n <button type="button" class="close" onclick="window.frameElement.squatchJsApi.close();">&times;</button>\n <p class="errortitle">Error</p>\n </div>\n <div class="errorbody">\n <div class="sadface"><img src="https://fast.ssqt.io/assets/images/face.png"></div>\n <h4>Our referral program is temporarily unavailable.</h4><br>\n <p>Please reload the page or check back later.</p>\n <p>If the persists please contact our support team.</p>\n <br>\n <br>\n <div class="right-align errtxt">\n Error Code: ${e}\n </div>\n </div>\n </div>\n </body>\n </html>`}async _findInnerContainer(){const{contentWindow:e}=this.frame;if(!e)throw new Error("Squatch.js frame inner frame is empty");const t=e.document;function n(){const e=t.getElementsByTagName("sqh-global-container"),n=t.getElementsByClassName("squatch-container");return e.length>0?e[0]:n.length>0?n[0]:null}let i=null;for(let e=0;e<5&&(i=n(),!i);e++)await b(100);return i||t.body}reload({email:e,firstName:t,lastName:n},i){const o=this.frame.contentWindow,r=this.context.engagementMedium||"POPUP";if(!o)throw new Error("Frame needs a content window");const s=o.document;let a;if("upsert"===this.context.type)a=this.widgetApi.upsertUser({user:{email:e||null,firstName:t||null,lastName:n||null,id:this.context.user.id,accountId:this.context.user.accountId},engagementMedium:r,widgetType:this.type,jwt:i});else{if("cookie"!==this.context.type)throw new Error("can't reload an error widget");a=this.widgetApi.cookieUser({user:{email:e||null,firstName:t||null,lastName:n||null},engagementMedium:r,widgetType:this.type,jwt:i})}a.then(({template:t})=>{if(t){this.content=t;const n=s.createElement("button"),i=s.getElementsByClassName("squatch-register")[0];i&&(n.className="btn btn-primary",n.id="show-stats-btn",n.textContent="REFERRER_WIDGET"===this.type?"Show Stats":"Show Reward",n.setAttribute("style","POPUP"===r?"margin-top: 10px; max-width: 130px; width: 100%;":"margin-top: 10px;"),n.onclick=()=>{this.load(),"POPUP"===r&&this.open()},i.style.paddingTop="30px",i.innerHTML=`<p><strong>${e}</strong><br>Has been successfully registered</p>`,i.appendChild(n))}}).catch(({message:e})=>{y(`${e}`)})}}function b(e){return new Promise(function(t,n){setTimeout(function(){t()},e)})}function E(e,t){let n,i=[],o=e,r="DOMContentLoaded",s=(o.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(o.readyState);return s||o.addEventListener(r,n=()=>{for(o.removeEventListener(r,n),s=!0;n=i.shift();)n()}),s?setTimeout(t,0):i.push(t)}const C=t("squatch-js:EMBEDwidget");class I extends v{constructor(e,t){let n;if(super(e),"string"==typeof t?(n=document.querySelector(t),C("loading widget with selector",n)):t instanceof HTMLElement?(n=t,C("loading widget with container",n)):t?(n=null,C("container must be an HTMLElement or string",t)):(n=document.querySelector("#squatchembed")||document.querySelector(".squatchembed"),C("loading widget with default selector",n)),!(n instanceof HTMLElement))throw new Error(`element with selector '${t}' not found.'`);this.element=n}async load(){var e=this;this.context.container?(this.element.style.visibility="hidden",this.element.style.height="0",this.element.style["overflow-y"]="hidden",this.element.firstChild?this.element.replaceChild(this.frame,this.element.firstChild):this.element.appendChild(this.frame)):this.element.firstChild&&"#text"!==this.element.firstChild.nodeName||this.element.appendChild(this.frame);const{contentWindow:t}=this.frame;if(!t)throw new Error("Frame needs a content window");const n=t.document;n.open(),n.write(this.content),n.write(`<script src="${this.npmCdn}/resize-observer-polyfill@1.5.x"><\/script>`),n.close(),E(n,async function(){const i=t.squatch||t.widgetIdent,o=n.getElementById("cta");if(o){if(!o.parentNode)throw new Error("ctaElement needs a parentNode");o.parentNode.removeChild(o)}e.frame.height=n.body.scrollHeight,new t.ResizeObserver(t=>{for(const n of t){const{height:t}=n.contentRect;e.frame.height=t}}).observe(await e._findInnerContainer()),e.context.container||(e._loadEvent(i),C("loaded"))})}open(){var e,t,n,i,o,r;if(!this.frame)return C("no target element to open");this.element.style.visibility="unset",this.element.style.height="auto",this.element.style["overflow-y"]="auto",null==(e=this.frame)||null==(t=e.contentDocument)||t.dispatchEvent(new CustomEvent("sq:refresh"));const s=(null==(n=this.frame)||null==(i=n.contentWindow)?void 0:i.squatch)||(null==(o=this.frame)||null==(r=o.contentWindow)?void 0:r.widgetIdent);this._loadEvent(s),C("loaded")}close(){if(!this.frame)return C("no target element to close");this.element.style.visibility="hidden",this.element.style.height="0",this.element.style["overflow-y"]="hidden",C("Embed widget closed")}_error(e,t="embed",n=""){return super._error(e,t,n)}}const A=t("squatch-js:POPUPwidget");class x extends v{constructor(e,t=".squatchpop"){super(e);try{this.triggerElement=document.querySelector(t),t&&!this.triggerElement&&A("No element found with trigger selector",t)}catch(e){A("Not a valid selector",t)}this.triggerElement&&(this.triggerElement.onclick=()=>{this.open()}),this.triggerWhenCTA=document.querySelector(".squatchpop"),"#cta"===t&&this.triggerWhenCTA&&(this.triggerWhenCTA.onclick=()=>{this.open()}),this.popupdiv=document.createElement("div"),this.popupdiv.id="squatchModal",this.popupdiv.setAttribute("style","display: none; position: fixed; z-index: 1; padding-top: 5%; left: 0; top: -2000px; width: 100%; height: 100%; overflow: auto; background-color: rgba(0,0,0,0.4);"),this.popupcontent=document.createElement("div"),this.popupcontent.setAttribute("style","margin: auto; width: 80%; max-width: 500px; position: relative;"),this.popupdiv.onclick=e=>{this._clickedOutside(e)}}load(){this.popupdiv.appendChild(this.popupcontent),document.body.appendChild(this.popupdiv),this.popupcontent.appendChild(this.frame);const e=this.frame.contentWindow.document;e.open(),e.write(this.content),e.write(`<script src="${this.npmCdn}/resize-observer-polyfill@1.5.x"><\/script>`),e.close(),A("Popup template loaded into iframe"),this._setupResizeHandler()}_setupResizeHandler(){var e=this;console.log("TESTING 123");const t=this.popupdiv,n=this.frame,{contentWindow:i}=n;if(!i)throw new Error("Frame needs a content window");const o=i.document;E(o,async function(){o.body.style.overflowY="hidden",t.style.visibility="hidden",t.style.display="block",n.height=`${o.body.offsetHeight}px`,new i.ResizeObserver(e=>{for(const i of e){const{top:e,bottom:o}=i.contentRect;n.height=o+e+"",i.target.style="",t.style.paddingTop=window.innerHeight>Number(n.height)?(window.innerHeight-Number(n.height))/2+"px":"5px"}}).observe(await e._findInnerContainer())})}open(){const e=this.popupdiv,t=this.frame,{contentWindow:n}=t;if(!n)throw new Error("Squatch.js has an empty iframe");const i=n.document;E(i,()=>{var o;const r=n.squatch||n.widgetIdent,s=i.getElementById("cta");s&&s.parentNode.removeChild(s),e.style.visibility="visible",e.style.top="0px",null==(o=t.contentDocument)||o.dispatchEvent(new CustomEvent("sq:refresh")),this._loadEvent(r),A("Popup opened")})}close(){this.popupdiv.style.visibility="hidden",this.popupdiv.style.top="-2000px",A("Popup closed")}_clickedOutside({target:e}){e===this.popupdiv&&this.close()}_error(e,t="modal",n=""){return super._error(e,t,n||"body { margin: 0; } .modal { box-shadow: none; border: 0; }")}}const U=e("squatch-js:CTAwidget");class q extends x{constructor(e,t){U("CTA constructor");const n=document.createElement("div");n.id="cta",document.body.appendChild(n),super(e,"#cta"),t.side||t.position||(t.position="bottom",t.side="right"),"middle"===t.position?(this.position="top: 45%;",this.side="center"===t.side?"right: 45%;":`${t.side}: -10px;`):(this.position=`${t.position}: -10px;`,this.side="center"===t.side?"right: 45%;":`${t.side}: 20px;`),this.positionClass=t.position,this.ctaFrame=document.createElement("iframe"),this.ctaFrame.squatchJsApi=this,this.ctaFrame.scrolling="no",this.ctaFrame.setAttribute("style",`border:0; background-color:transparent; position:fixed; display:none;${this.side}${this.position}`),document.body.appendChild(this.ctaFrame),U("ctaframe appended to body")}load(){if(super.load(),!this.frame.contentWindow)throw new Error("frame requires a contentWindow");const e=this.frame.contentWindow.document,t=this.ctaFrame,n=this.positionClass;E(e,()=>{const i=e.getElementById("cta");if(i){if(!i.parentNode)throw new Error("ctaElement requires a parentNode");i.parentNode.removeChild(i);const e=t.contentWindow;if(!e)throw new Error("ctaFrame requires a contentWindow");const o=e.document;o.open(),o.write(i.innerHTML),o.write(`<script src="${this.npmCdn}/resize-observer-polyfill@1.5.x"><\/script>`),o.close(),E(o,()=>{const i=o.getElementsByClassName("cta-container")[0];i.style.position="fixed",t.height=i.offsetHeight,t.width=i.scrollWidth,t.style.display="block",i.classList.contains(n)||(i.className+=` ${n}`),new e.ResizeObserver(e=>{for(const n of e){const{height:e,width:i}=n.contentRect;t.height=e,t.width=i}}).observe(i),U("CTA template loaded into iframe")})}else U(new Error("CTA element not found in theme"))})}open(){super.open()}close(){super.close()}}const _=t("squatch-js:widgets");class S{constructor(e){const t=p(e);this.tenantAlias=t.tenantAlias,this.domain=t.domain,this.npmCdn=t.npmCdn,this.eventBus=n,this.api=new g(t),n.addEventListener("submit_email",S._cb)}async createCookieUser(e){try{const t=await this.api.cookieUser(e);return{widget:this._renderWidget(t,e,{type:"cookie",engagementMedium:e.engagementMedium}),user:t.user}}catch(t){throw _(t),t.apiErrorCode&&this._renderErrorWidget(t,e.engagementMedium),t}}async upsertUser(e){const t=m(e);try{const n=await this.api.upsertUser(t);return{widget:this._renderWidget(n,t,{type:"upsert",user:t.user,engagementMedium:e.engagementMedium,container:e.container,trigger:e.trigger}),user:n.user}}catch(t){throw _(t),t.apiErrorCode&&this._renderErrorWidget(t,e.engagementMedium),t}}async render(e){const t=m(e);try{const e=await this.api.cookieUser(t);return{widget:this._renderWidget({template:e},t,{type:"cookie",engagementMedium:t.engagementMedium}),user:e.user}}catch(e){throw e.apiErrorCode&&this._renderErrorWidget(e,t.engagementMedium),e}}autofill(e){const t=e;if("function"==typeof t)return void this.api.squatchReferralCookie().then((...e)=>t(...e)).catch(e=>{throw _("Autofill error",e),e});if("string"!=typeof t)throw new Error("Autofill accepts a string or function");let n,i=document.querySelectorAll(t);if(!(i.length>0))throw _("Element id/class or function missing"),new Error("Element id/class or function missing");n=i[0],this.api.squatchReferralCookie().then(({code:e})=>{n.value=e}).catch(e=>{throw e})}submitEmail(e){n.removeEventListener("submit_email",S._cb),n.addEventListener("submit_email",e)}_renderWidget(e,t,n){if(_("Rendering Widget..."),!e)throw new Error("Unable to get a response");let i,o=!1,r=!1;const s=e.jsOptions||"",a={content:e.template,type:t.widgetType||s.widget.defaultWidgetType,api:this.api,domain:this.domain,npmCdn:this.npmCdn,context:n};return s.widgetUrlMappings&&s.widgetUrlMappings.forEach(t=>{S._matchesUrl(t.url)&&("CONVERSION_WIDGET"!==t.widgetType||e.user.referredBy&&e.user.referredBy.code?(o=t.displayOnLoad,r=t.showAsCTA,_(`Display ${t.widgetType} on ${t.url}`)):_(`Don't display ${t.widgetType} when no referral on widget rule match ${t.url}`))}),s.conversionUrls&&s.conversionUrls.forEach(t=>{e.user.referredBy&&S._matchesUrl(t)&&_("This is a conversion URL",t)}),s.fuelTankAutofillUrls&&(_("We found a fuel tank autofill!"),s.fuelTankAutofillUrls.forEach(({url:t,formSelector:n})=>{if(S._matchesUrl(t)&&(_("Fuel Tank URL matches"),e.user.referredBy&&e.user.referredBy.code)){const t=document.querySelector(n);t?t.value=e.user.referredBy.referredReward.fuelTankCode||"":_(new Error(`Element with id/class ${n} was not found.`))}})),r||"EMBED"!==t.engagementMedium?r||"POPUP"!==t.engagementMedium?r?(_("display CTA"),i=new q(a,{side:s.cta.content.buttonSide,position:s.cta.content.buttonPosition}),i.load(),o&&i.open()):(_("display popup on load"),i=new x(a),i.load(),o&&i.open()):(i=new x(a,a.context.trigger),i.load(),o&&i.open()):(i=new I(a,a.context.container),i.load()),i}_renderErrorWidget(e,t="POPUP"){const{apiErrorCode:n,rsCode:i,message:o}=e;_(new Error(`${n} (${i}) ${o}`));const r={content:"error",rsCode:i,api:this.api,domain:this.domain,npmCdn:this.npmCdn,type:"ERROR_WIDGET",context:{type:"error"}};let s;"EMBED"===t?(s=new I(r),s.load()):"POPUP"===t&&(s=new x(r),s.load())}static _matchesUrl(e){return!!window.location.href.match(new RegExp(e))}static _cb(e,t,n){let i;i="string"==typeof n||n instanceof String?{email:n}:n,t.reload(i)}}class ${constructor(e){const t=p(e);this.tenantAlias=t.tenantAlias,this.domain=t.domain}track(e,t){const n=t,i=function(e){if(h(e,"accountId","events","userId"),!Array.isArray(e.events))throw new Error("'events' should be an array");return e}(e),{jwt:o}=function(e){if(!u(e))throw new Error("'options' should be an object");return e}(n),r=encodeURIComponent(this.tenantAlias),s=encodeURIComponent(i.userId),c=encodeURIComponent(i.accountId);return a(this.domain+`/api/v1/${r}/open/account/${c}/user/${s}/events`,JSON.stringify(i),o)}}var P={};try{!function(e,t){if(new e("q=%2B").get("q")!==t||new e({q:t}).get("q")!==t||new e([["q",t]]).get("q")!==t||"q=%0A"!==new e("q=\n").toString()||"q=+%26"!==new e({q:" &"}).toString()||"q=%25zx"!==new e({q:"%zx"}).toString())throw e;P.URLSearchParams=e}(URLSearchParams,"+")}catch(e){!function(e,t,n){var i=e.create,o=e.defineProperty,r=/[!'\(\)~]|%20|%00/g,s=/%(?![0-9a-fA-F]{2})/g,a=/\+/g,c={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"},d={append:function(e,t){p(this._ungap,e,t)},delete:function(e){delete this._ungap[e]},get:function(e){return this.has(e)?this._ungap[e][0]:null},getAll:function(e){return this.has(e)?this._ungap[e].slice(0):[]},has:function(e){return e in this._ungap},set:function(e,n){this._ungap[e]=[t(n)]},forEach:function(e,n){var i=this;for(var o in i._ungap)i._ungap[o].forEach(r,o);function r(r){e.call(n,r,t(o),i)}},toJSON:function(){return{}},toString:function(){var e=[];for(var t in this._ungap)for(var n=g(t),i=0,o=this._ungap[t];i<o.length;i++)e.push(n+"="+g(o[i]));return e.join("&")}};for(var l in d)o(u.prototype,l,{configurable:!0,writable:!0,value:d[l]});function u(e){var t=i(null);switch(o(this,"_ungap",{value:t}),!0){case!e:break;case"string"==typeof e:"?"===e.charAt(0)&&(e=e.slice(1));for(var r=e.split("&"),s=0,a=r.length;s<a;s++){var c=(d=r[s]).indexOf("=");-1<c?p(t,m(d.slice(0,c)),m(d.slice(c+1))):d.length&&p(t,m(d),"")}break;case n(e):for(s=0,a=e.length;s<a;s++){var d;p(t,(d=e[s])[0],d[1])}break;case"forEach"in e:e.forEach(h,t);break;default:for(var l in e)p(t,l,e[l])}}function h(e,t){p(this,t,e)}function p(e,t,i){var o=n(i)?i.join(","):i;t in e?e[t].push(o):e[t]=[o]}function m(e){return decodeURIComponent(e.replace(s,"%25").replace(a," "))}function g(e){return encodeURIComponent(e).replace(r,f)}function f(e){return c[e]}P.URLSearchParams=u}(Object,String,Array.isArray)}!function(e){var t=!1;try{t=!!Symbol.iterator}catch(e){}function n(e,n){var i=[];return e.forEach(n,i),t?i[Symbol.iterator]():{next:function(){var e=i.shift();return{done:void 0===e,value:e}}}}"forEach"in e||(e.forEach=function(e,t){var n=this,i=Object.create(null);this.toString().replace(/=[\s\S]*?(?:&|$)/g,"=").split("=").forEach(function(o){o.length&&!(o in i)&&(i[o]=n.getAll(o)).forEach(function(i){e.call(t,i,o,n)})})}),"keys"in e||(e.keys=function(){return n(this,function(e,t){this.push(t)})}),"values"in e||(e.values=function(){return n(this,function(e,t){this.push(e)})}),"entries"in e||(e.entries=function(){return n(this,function(e,t){this.push([t,e])})}),t&&!(Symbol.iterator in e)&&(e[Symbol.iterator]=e.entries),"sort"in e||(e.sort=function(){for(var e,t,n,i=this.entries(),o=i.next(),r=o.done,s=[],a=Object.create(null);!r;)s.push(t=(n=o.value)[0]),t in a||(a[t]=[]),a[t].push(n[1]),r=(o=i.next()).done;for(s.sort(),e=0;e<s.length;e++)this.delete(s[e]);for(e=0;e<s.length;e++)this.append(t=s[e],a[t].shift())}),function(t){var n=t.defineProperty,i=t.getOwnPropertyDescriptor,o=function(t){var n=t.append;t.append=e.append,URLSearchParams.call(t,t._usp.search.slice(1)),t.append=n},r=function(e,t){if(!(e instanceof t))throw new TypeError("'searchParams' accessed on an object that does not implement interface "+t.name)},s=function(s){var a,c,d=s.prototype,l=i(d,"searchParams"),u=i(d,"href"),h=i(d,"search");!l&&h&&h.set&&(c=function(t){function i(n,i){e.append.call(this,n,i),n=this.toString(),t.set.call(this._usp,n?"?"+n:"")}function o(n){e.delete.call(this,n),n=this.toString(),t.set.call(this._usp,n?"?"+n:"")}function r(n,i){e.set.call(this,n,i),n=this.toString(),t.set.call(this._usp,n?"?"+n:"")}return function(e,t){return e.append=i,e.delete=o,e.set=r,n(e,"_usp",{configurable:!0,writable:!0,value:t})}}(h),a=function(e,t){return n(e,"_searchParams",{configurable:!0,writable:!0,value:c(t,e)}),t},t.defineProperties(d,{href:{get:function(){return u.get.call(this)},set:function(e){var t=this._searchParams;u.set.call(this,e),t&&o(t)}},search:{get:function(){return h.get.call(this)},set:function(e){var t=this._searchParams;h.set.call(this,e),t&&o(t)}},searchParams:{get:function(){return r(this,s),this._searchParams||a(this,new URLSearchParams(this.search.slice(1)))},set:function(e){r(this,s),a(this,e)}}}))};try{s(HTMLAnchorElement),/^function|object$/.test(typeof URL)&&URL.prototype&&s(URL)}catch(e){}}(Object)}(P.URLSearchParams.prototype);var R=P.URLSearchParams;const k=t("squatch-js"),O=e=>"object"==typeof e&&!Array.isArray(e),T=(e,t)=>{const n=n=>O(t[n])&&e.hasOwnProperty(n)&&O(e[n]),i=Object.getOwnPropertyNames(t).map(i=>({[i]:n(i)?T(e[i],t[i]):t[i]})).reduce((e,t)=>r({},e,t),{});return r({},e,i)};function M(e){return atob(e.replace(/_/g,"/").replace(/-/g,"+"))}function j(e){return btoa(e).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function N(){console.log("Having trouble using Squatch.js? Go to https://docs.referralsaasquatch.com/developer/ for tutorials, references and error codes.")}const L=t("squatch-js");let W=null,J=null,B=null;function D(){return W}function H(){return J}function z(){return B}function F(e){const n=p(e);(n.tenantAlias.match("^test")||n.debug)&&t.enable("squatch-js*"),L("initializing ..."),W=new g(n),J=new S(n),B=new $(n),L("Widget API instance",W),L("Widgets instance",J),L("Events API instance",B)}function G(e){e()}function X(e){H().autofill(e)}function Y(e){H().submitEmail(e)}function V(){!function(){const e=window.location.search,t=new R(e).get("_saasquatch")||"";if(t){let e="",n="",i="";try{e=JSON.parse(M(t))}catch(e){return void k("Unable to decode params",e)}try{n=JSON.parse(M(o.get("_saasquatch"))),k("existing cookie",n)}catch(e){k("Unable to retrieve cookie",e)}try{const t=function(){var e,t,n="weird_get_top_level_domain=cookie",i=document.location.hostname.split(".");for(e=i.length-1;e>=0;e--)if(t=i.slice(e).join("."),document.cookie=n+";domain=."+t+";",document.cookie.indexOf(n)>-1)return document.cookie=n.split("=")[0]+"=;domain=."+t+";expires=Thu, 01 Jan 1970 00:00:01 GMT;",t}();if(k("domain retrieved:",t),n){const t=T(n,e);i=j(JSON.stringify(t)),k("cookie to store:",t)}else i=j(JSON.stringify(e)),k("cookie to store:",e);o.set("_saasquatch",i,{expires:365,secure:!1,sameSite:"Lax",domain:t,path:"/"})}catch(e){k("Unable to set cookie",e)}}}()}"undefined"==typeof document||window.SaaSquatchDoNotAutoDrop||V(),"undefined"!=typeof document&&function(){const e=window.squatch||null,t=window._squatch||null;if(e&&t){(t.ready||[]).forEach(e=>setTimeout(()=>e(),0)),window._squatch=void 0;try{delete window._squatch}catch(e){throw e}}}();export{q as CtaWidget,I as EmbedWidget,x as PopupWidget,g as WidgetApi,S as Widgets,D as api,X as autofill,z as events,N as help,F as init,V as pushCookie,G as ready,Y as submitEmail,H as widgets};
2
2
  //# sourceMappingURL=squatch.modern.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"squatch.modern.js","sources":["../node_modules/@ungap/url-search-params/esm/index.js"],"sourcesContent":["/*! (c) Andrea Giammarchi - ISC */\nvar self = this || /* istanbul ignore next */ {};\ntry {\n (function (URLSearchParams, plus) {\n if (\n new URLSearchParams('q=%2B').get('q') !== plus ||\n new URLSearchParams({q: plus}).get('q') !== plus ||\n new URLSearchParams([['q', plus]]).get('q') !== plus ||\n new URLSearchParams('q=\\n').toString() !== 'q=%0A' ||\n new URLSearchParams({q: ' &'}).toString() !== 'q=+%26' ||\n new URLSearchParams({q: '%zx'}).toString() !== 'q=%25zx'\n )\n throw URLSearchParams;\n self.URLSearchParams = URLSearchParams;\n }(URLSearchParams, '+'));\n} catch(URLSearchParams) {\n (function (Object, String, isArray) {'use strict';\n var create = Object.create;\n var defineProperty = Object.defineProperty;\n var find = /[!'\\(\\)~]|%20|%00/g;\n var findPercentSign = /%(?![0-9a-fA-F]{2})/g;\n var plus = /\\+/g;\n var replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n var proto = {\n append: function (key, value) {\n appendTo(this._ungap, key, value);\n },\n delete: function (key) {\n delete this._ungap[key];\n },\n get: function (key) {\n return this.has(key) ? this._ungap[key][0] : null;\n },\n getAll: function (key) {\n return this.has(key) ? this._ungap[key].slice(0) : [];\n },\n has: function (key) {\n return key in this._ungap;\n },\n set: function (key, value) {\n this._ungap[key] = [String(value)];\n },\n forEach: function (callback, thisArg) {\n var self = this;\n for (var key in self._ungap)\n self._ungap[key].forEach(invoke, key);\n function invoke(value) {\n callback.call(thisArg, value, String(key), self);\n }\n },\n toJSON: function () {\n return {};\n },\n toString: function () {\n var query = [];\n for (var key in this._ungap) {\n var encoded = encode(key);\n for (var\n i = 0,\n value = this._ungap[key];\n i < value.length; i++\n ) {\n query.push(encoded + '=' + encode(value[i]));\n }\n }\n return query.join('&');\n }\n };\n for (var key in proto)\n defineProperty(URLSearchParams.prototype, key, {\n configurable: true,\n writable: true,\n value: proto[key]\n });\n self.URLSearchParams = URLSearchParams;\n function URLSearchParams(query) {\n var dict = create(null);\n defineProperty(this, '_ungap', {value: dict});\n switch (true) {\n case !query:\n break;\n case typeof query === 'string':\n if (query.charAt(0) === '?') {\n query = query.slice(1);\n }\n for (var\n pairs = query.split('&'),\n i = 0,\n length = pairs.length; i < length; i++\n ) {\n var value = pairs[i];\n var index = value.indexOf('=');\n if (-1 < index) {\n appendTo(\n dict,\n decode(value.slice(0, index)),\n decode(value.slice(index + 1))\n );\n } else if (value.length){\n appendTo(\n dict,\n decode(value),\n ''\n );\n }\n }\n break;\n case isArray(query):\n for (var\n i = 0,\n length = query.length; i < length; i++\n ) {\n var value = query[i];\n appendTo(dict, value[0], value[1]);\n }\n break;\n case 'forEach' in query:\n query.forEach(addEach, dict);\n break;\n default:\n for (var key in query)\n appendTo(dict, key, query[key]);\n }\n }\n\n function addEach(value, key) {\n appendTo(this, key, value);\n }\n\n function appendTo(dict, key, value) {\n var res = isArray(value) ? value.join(',') : value;\n if (key in dict)\n dict[key].push(res);\n else\n dict[key] = [res];\n }\n\n function decode(str) {\n return decodeURIComponent(str.replace(findPercentSign, '%25').replace(plus, ' '));\n }\n\n function encode(str) {\n return encodeURIComponent(str).replace(find, replacer);\n }\n\n function replacer(match) {\n return replace[match];\n }\n\n }(Object, String, Array.isArray));\n}\n\n(function (URLSearchParamsProto) {\n\n var iterable = false;\n try { iterable = !!Symbol.iterator; } catch (o_O) {}\n\n /* istanbul ignore else */\n if (!('forEach' in URLSearchParamsProto)) {\n URLSearchParamsProto.forEach = function forEach(callback, thisArg) {\n var self = this;\n var names = Object.create(null);\n this.toString()\n .replace(/=[\\s\\S]*?(?:&|$)/g, '=')\n .split('=')\n .forEach(function (name) {\n if (!name.length || name in names)\n return;\n (names[name] = self.getAll(name)).forEach(function(value) {\n callback.call(thisArg, value, name, self);\n });\n });\n };\n }\n\n /* istanbul ignore else */\n if (!('keys' in URLSearchParamsProto)) {\n URLSearchParamsProto.keys = function keys() {\n return iterator(this, function(value, key) { this.push(key); });\n };\n }\n\n /* istanbul ignore else */\n if (!('values' in URLSearchParamsProto)) {\n URLSearchParamsProto.values = function values() {\n return iterator(this, function(value, key) { this.push(value); });\n };\n }\n\n /* istanbul ignore else */\n if (!('entries' in URLSearchParamsProto)) {\n URLSearchParamsProto.entries = function entries() {\n return iterator(this, function(value, key) { this.push([key, value]); });\n };\n }\n\n /* istanbul ignore else */\n if (iterable && !(Symbol.iterator in URLSearchParamsProto)) {\n URLSearchParamsProto[Symbol.iterator] = URLSearchParamsProto.entries;\n }\n\n /* istanbul ignore else */\n if (!('sort' in URLSearchParamsProto)) {\n URLSearchParamsProto.sort = function sort() {\n var\n entries = this.entries(),\n entry = entries.next(),\n done = entry.done,\n keys = [],\n values = Object.create(null),\n i, key, value\n ;\n while (!done) {\n value = entry.value;\n key = value[0];\n keys.push(key);\n if (!(key in values)) {\n values[key] = [];\n }\n values[key].push(value[1]);\n entry = entries.next();\n done = entry.done;\n }\n // not the champion in efficiency\n // but these two bits just do the job\n keys.sort();\n for (i = 0; i < keys.length; i++) {\n this.delete(keys[i]);\n }\n for (i = 0; i < keys.length; i++) {\n key = keys[i];\n this.append(key, values[key].shift());\n }\n };\n }\n\n function iterator(self, callback) {\n var items = [];\n self.forEach(callback, items);\n /* istanbul ignore next */\n return iterable ?\n items[Symbol.iterator]() :\n {\n next: function() {\n var value = items.shift();\n return {done: value === void 0, value: value};\n }\n };\n }\n\n /* istanbul ignore next */\n (function (Object) {\n var\n dP = Object.defineProperty,\n gOPD = Object.getOwnPropertyDescriptor,\n createSearchParamsPollute = function (search) {\n function append(name, value) {\n URLSearchParamsProto.append.call(this, name, value);\n name = this.toString();\n search.set.call(this._usp, name ? ('?' + name) : '');\n }\n function del(name) {\n URLSearchParamsProto.delete.call(this, name);\n name = this.toString();\n search.set.call(this._usp, name ? ('?' + name) : '');\n }\n function set(name, value) {\n URLSearchParamsProto.set.call(this, name, value);\n name = this.toString();\n search.set.call(this._usp, name ? ('?' + name) : '');\n }\n return function (sp, value) {\n sp.append = append;\n sp.delete = del;\n sp.set = set;\n return dP(sp, '_usp', {\n configurable: true,\n writable: true,\n value: value\n });\n };\n },\n createSearchParamsCreate = function (polluteSearchParams) {\n return function (obj, sp) {\n dP(\n obj, '_searchParams', {\n configurable: true,\n writable: true,\n value: polluteSearchParams(sp, obj)\n }\n );\n return sp;\n };\n },\n updateSearchParams = function (sp) {\n var append = sp.append;\n sp.append = URLSearchParamsProto.append;\n URLSearchParams.call(sp, sp._usp.search.slice(1));\n sp.append = append;\n },\n verifySearchParams = function (obj, Class) {\n if (!(obj instanceof Class)) throw new TypeError(\n \"'searchParams' accessed on an object that \" +\n \"does not implement interface \" + Class.name\n );\n },\n upgradeClass = function (Class) {\n var\n ClassProto = Class.prototype,\n searchParams = gOPD(ClassProto, 'searchParams'),\n href = gOPD(ClassProto, 'href'),\n search = gOPD(ClassProto, 'search'),\n createSearchParams\n ;\n if (!searchParams && search && search.set) {\n createSearchParams = createSearchParamsCreate(\n createSearchParamsPollute(search)\n );\n Object.defineProperties(\n ClassProto,\n {\n href: {\n get: function () {\n return href.get.call(this);\n },\n set: function (value) {\n var sp = this._searchParams;\n href.set.call(this, value);\n if (sp) updateSearchParams(sp);\n }\n },\n search: {\n get: function () {\n return search.get.call(this);\n },\n set: function (value) {\n var sp = this._searchParams;\n search.set.call(this, value);\n if (sp) updateSearchParams(sp);\n }\n },\n searchParams: {\n get: function () {\n verifySearchParams(this, Class);\n return this._searchParams || createSearchParams(\n this,\n new URLSearchParams(this.search.slice(1))\n );\n },\n set: function (sp) {\n verifySearchParams(this, Class);\n createSearchParams(this, sp);\n }\n }\n }\n );\n }\n }\n ;\n try {\n upgradeClass(HTMLAnchorElement);\n if (/^function|object$/.test(typeof URL) && URL.prototype)\n upgradeClass(URL);\n } catch (meh) {}\n }(Object));\n\n}(self.URLSearchParams.prototype, Object));\nexport default self.URLSearchParams;\n"],"names":["self","URLSearchParams","plus","get","q","toString","Object","String","isArray","create","defineProperty","find","findPercentSign","replace","!","'","(",")","~","%20","%00","proto","append","key","value","appendTo","this","_ungap","delete","has","getAll","slice","set","forEach","callback","thisArg","invoke","call","toJSON","query","encoded","encode","i","length","push","join","prototype","configurable","writable","dict","charAt","pairs","split","index","indexOf","decode","addEach","res","str","decodeURIComponent","encodeURIComponent","replacer","match","Array","URLSearchParamsProto","iterable","Symbol","iterator","o_O","items","next","shift","done","names","name","keys","values","entries","sort","entry","dP","gOPD","getOwnPropertyDescriptor","updateSearchParams","sp","_usp","search","verifySearchParams","obj","Class","TypeError","upgradeClass","createSearchParams","polluteSearchParams","ClassProto","searchParams","href","del","createSearchParamsPollute","defineProperties","_searchParams","HTMLAnchorElement","test","URL","meh"],"mappings":"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"}
1
+ {"version":3,"file":"squatch.modern.js","sources":["../node_modules/@ungap/url-search-params/esm/index.js"],"sourcesContent":["/*! (c) Andrea Giammarchi - ISC */\nvar self = this || /* istanbul ignore next */ {};\ntry {\n (function (URLSearchParams, plus) {\n if (\n new URLSearchParams('q=%2B').get('q') !== plus ||\n new URLSearchParams({q: plus}).get('q') !== plus ||\n new URLSearchParams([['q', plus]]).get('q') !== plus ||\n new URLSearchParams('q=\\n').toString() !== 'q=%0A' ||\n new URLSearchParams({q: ' &'}).toString() !== 'q=+%26' ||\n new URLSearchParams({q: '%zx'}).toString() !== 'q=%25zx'\n )\n throw URLSearchParams;\n self.URLSearchParams = URLSearchParams;\n }(URLSearchParams, '+'));\n} catch(URLSearchParams) {\n (function (Object, String, isArray) {'use strict';\n var create = Object.create;\n var defineProperty = Object.defineProperty;\n var find = /[!'\\(\\)~]|%20|%00/g;\n var findPercentSign = /%(?![0-9a-fA-F]{2})/g;\n var plus = /\\+/g;\n var replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n var proto = {\n append: function (key, value) {\n appendTo(this._ungap, key, value);\n },\n delete: function (key) {\n delete this._ungap[key];\n },\n get: function (key) {\n return this.has(key) ? this._ungap[key][0] : null;\n },\n getAll: function (key) {\n return this.has(key) ? this._ungap[key].slice(0) : [];\n },\n has: function (key) {\n return key in this._ungap;\n },\n set: function (key, value) {\n this._ungap[key] = [String(value)];\n },\n forEach: function (callback, thisArg) {\n var self = this;\n for (var key in self._ungap)\n self._ungap[key].forEach(invoke, key);\n function invoke(value) {\n callback.call(thisArg, value, String(key), self);\n }\n },\n toJSON: function () {\n return {};\n },\n toString: function () {\n var query = [];\n for (var key in this._ungap) {\n var encoded = encode(key);\n for (var\n i = 0,\n value = this._ungap[key];\n i < value.length; i++\n ) {\n query.push(encoded + '=' + encode(value[i]));\n }\n }\n return query.join('&');\n }\n };\n for (var key in proto)\n defineProperty(URLSearchParams.prototype, key, {\n configurable: true,\n writable: true,\n value: proto[key]\n });\n self.URLSearchParams = URLSearchParams;\n function URLSearchParams(query) {\n var dict = create(null);\n defineProperty(this, '_ungap', {value: dict});\n switch (true) {\n case !query:\n break;\n case typeof query === 'string':\n if (query.charAt(0) === '?') {\n query = query.slice(1);\n }\n for (var\n pairs = query.split('&'),\n i = 0,\n length = pairs.length; i < length; i++\n ) {\n var value = pairs[i];\n var index = value.indexOf('=');\n if (-1 < index) {\n appendTo(\n dict,\n decode(value.slice(0, index)),\n decode(value.slice(index + 1))\n );\n } else if (value.length){\n appendTo(\n dict,\n decode(value),\n ''\n );\n }\n }\n break;\n case isArray(query):\n for (var\n i = 0,\n length = query.length; i < length; i++\n ) {\n var value = query[i];\n appendTo(dict, value[0], value[1]);\n }\n break;\n case 'forEach' in query:\n query.forEach(addEach, dict);\n break;\n default:\n for (var key in query)\n appendTo(dict, key, query[key]);\n }\n }\n\n function addEach(value, key) {\n appendTo(this, key, value);\n }\n\n function appendTo(dict, key, value) {\n var res = isArray(value) ? value.join(',') : value;\n if (key in dict)\n dict[key].push(res);\n else\n dict[key] = [res];\n }\n\n function decode(str) {\n return decodeURIComponent(str.replace(findPercentSign, '%25').replace(plus, ' '));\n }\n\n function encode(str) {\n return encodeURIComponent(str).replace(find, replacer);\n }\n\n function replacer(match) {\n return replace[match];\n }\n\n }(Object, String, Array.isArray));\n}\n\n(function (URLSearchParamsProto) {\n\n var iterable = false;\n try { iterable = !!Symbol.iterator; } catch (o_O) {}\n\n /* istanbul ignore else */\n if (!('forEach' in URLSearchParamsProto)) {\n URLSearchParamsProto.forEach = function forEach(callback, thisArg) {\n var self = this;\n var names = Object.create(null);\n this.toString()\n .replace(/=[\\s\\S]*?(?:&|$)/g, '=')\n .split('=')\n .forEach(function (name) {\n if (!name.length || name in names)\n return;\n (names[name] = self.getAll(name)).forEach(function(value) {\n callback.call(thisArg, value, name, self);\n });\n });\n };\n }\n\n /* istanbul ignore else */\n if (!('keys' in URLSearchParamsProto)) {\n URLSearchParamsProto.keys = function keys() {\n return iterator(this, function(value, key) { this.push(key); });\n };\n }\n\n /* istanbul ignore else */\n if (!('values' in URLSearchParamsProto)) {\n URLSearchParamsProto.values = function values() {\n return iterator(this, function(value, key) { this.push(value); });\n };\n }\n\n /* istanbul ignore else */\n if (!('entries' in URLSearchParamsProto)) {\n URLSearchParamsProto.entries = function entries() {\n return iterator(this, function(value, key) { this.push([key, value]); });\n };\n }\n\n /* istanbul ignore else */\n if (iterable && !(Symbol.iterator in URLSearchParamsProto)) {\n URLSearchParamsProto[Symbol.iterator] = URLSearchParamsProto.entries;\n }\n\n /* istanbul ignore else */\n if (!('sort' in URLSearchParamsProto)) {\n URLSearchParamsProto.sort = function sort() {\n var\n entries = this.entries(),\n entry = entries.next(),\n done = entry.done,\n keys = [],\n values = Object.create(null),\n i, key, value\n ;\n while (!done) {\n value = entry.value;\n key = value[0];\n keys.push(key);\n if (!(key in values)) {\n values[key] = [];\n }\n values[key].push(value[1]);\n entry = entries.next();\n done = entry.done;\n }\n // not the champion in efficiency\n // but these two bits just do the job\n keys.sort();\n for (i = 0; i < keys.length; i++) {\n this.delete(keys[i]);\n }\n for (i = 0; i < keys.length; i++) {\n key = keys[i];\n this.append(key, values[key].shift());\n }\n };\n }\n\n function iterator(self, callback) {\n var items = [];\n self.forEach(callback, items);\n /* istanbul ignore next */\n return iterable ?\n items[Symbol.iterator]() :\n {\n next: function() {\n var value = items.shift();\n return {done: value === void 0, value: value};\n }\n };\n }\n\n /* istanbul ignore next */\n (function (Object) {\n var\n dP = Object.defineProperty,\n gOPD = Object.getOwnPropertyDescriptor,\n createSearchParamsPollute = function (search) {\n function append(name, value) {\n URLSearchParamsProto.append.call(this, name, value);\n name = this.toString();\n search.set.call(this._usp, name ? ('?' + name) : '');\n }\n function del(name) {\n URLSearchParamsProto.delete.call(this, name);\n name = this.toString();\n search.set.call(this._usp, name ? ('?' + name) : '');\n }\n function set(name, value) {\n URLSearchParamsProto.set.call(this, name, value);\n name = this.toString();\n search.set.call(this._usp, name ? ('?' + name) : '');\n }\n return function (sp, value) {\n sp.append = append;\n sp.delete = del;\n sp.set = set;\n return dP(sp, '_usp', {\n configurable: true,\n writable: true,\n value: value\n });\n };\n },\n createSearchParamsCreate = function (polluteSearchParams) {\n return function (obj, sp) {\n dP(\n obj, '_searchParams', {\n configurable: true,\n writable: true,\n value: polluteSearchParams(sp, obj)\n }\n );\n return sp;\n };\n },\n updateSearchParams = function (sp) {\n var append = sp.append;\n sp.append = URLSearchParamsProto.append;\n URLSearchParams.call(sp, sp._usp.search.slice(1));\n sp.append = append;\n },\n verifySearchParams = function (obj, Class) {\n if (!(obj instanceof Class)) throw new TypeError(\n \"'searchParams' accessed on an object that \" +\n \"does not implement interface \" + Class.name\n );\n },\n upgradeClass = function (Class) {\n var\n ClassProto = Class.prototype,\n searchParams = gOPD(ClassProto, 'searchParams'),\n href = gOPD(ClassProto, 'href'),\n search = gOPD(ClassProto, 'search'),\n createSearchParams\n ;\n if (!searchParams && search && search.set) {\n createSearchParams = createSearchParamsCreate(\n createSearchParamsPollute(search)\n );\n Object.defineProperties(\n ClassProto,\n {\n href: {\n get: function () {\n return href.get.call(this);\n },\n set: function (value) {\n var sp = this._searchParams;\n href.set.call(this, value);\n if (sp) updateSearchParams(sp);\n }\n },\n search: {\n get: function () {\n return search.get.call(this);\n },\n set: function (value) {\n var sp = this._searchParams;\n search.set.call(this, value);\n if (sp) updateSearchParams(sp);\n }\n },\n searchParams: {\n get: function () {\n verifySearchParams(this, Class);\n return this._searchParams || createSearchParams(\n this,\n new URLSearchParams(this.search.slice(1))\n );\n },\n set: function (sp) {\n verifySearchParams(this, Class);\n createSearchParams(this, sp);\n }\n }\n }\n );\n }\n }\n ;\n try {\n upgradeClass(HTMLAnchorElement);\n if (/^function|object$/.test(typeof URL) && URL.prototype)\n upgradeClass(URL);\n } catch (meh) {}\n }(Object));\n\n}(self.URLSearchParams.prototype, Object));\nexport default self.URLSearchParams;\n"],"names":["self","URLSearchParams","plus","get","q","toString","Object","String","isArray","create","defineProperty","find","findPercentSign","replace","!","'","(",")","~","%20","%00","proto","append","key","value","appendTo","this","_ungap","delete","has","getAll","slice","set","forEach","callback","thisArg","invoke","call","toJSON","query","encoded","encode","i","length","push","join","prototype","configurable","writable","dict","charAt","pairs","split","index","indexOf","decode","addEach","res","str","decodeURIComponent","encodeURIComponent","replacer","match","Array","URLSearchParamsProto","iterable","Symbol","iterator","o_O","items","next","shift","done","names","name","keys","values","entries","sort","entry","dP","gOPD","getOwnPropertyDescriptor","updateSearchParams","sp","_usp","search","verifySearchParams","obj","Class","TypeError","upgradeClass","createSearchParams","polluteSearchParams","ClassProto","searchParams","href","del","createSearchParamsPollute","defineProperties","_searchParams","HTMLAnchorElement","test","URL","meh"],"mappings":"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"}