Created
April 27, 2025 21:38
-
-
Save rickmark/7d3850aca59dd9c32e207338f995019a to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| try { | |
| (function() { | |
| var exports = exports || {}; | |
| !function(t) { | |
| exports.qs = t() | |
| }(function() { | |
| return function t(e, n, i) { | |
| function r(a, s) { | |
| if (!n[a]) { | |
| if (!e[a]) { | |
| var u = "function" == typeof require && require; | |
| if (!s && u) | |
| return u(a, !0); | |
| if (o) | |
| return o(a, !0); | |
| var l = new Error("Cannot find module '" + a + "'"); | |
| throw l.code = "MODULE_NOT_FOUND", | |
| l | |
| } | |
| var c = n[a] = { | |
| exports: {} | |
| }; | |
| e[a][0].call(c.exports, function(t) { | |
| var n = e[a][1][t]; | |
| return r(n ? n : t) | |
| }, c, c.exports, t, e, n, i) | |
| } | |
| return n[a].exports | |
| } | |
| for (var o = "function" == typeof require && require, a = 0; a < i.length; a++) | |
| r(i[a]); | |
| return r | |
| }({ | |
| 1: [function(t, e) { | |
| "use strict"; | |
| var n = t("./stringify") | |
| , i = t("./parse"); | |
| e.exports = { | |
| stringify: n, | |
| parse: i | |
| } | |
| } | |
| , { | |
| "./parse": 2, | |
| "./stringify": 3 | |
| }], | |
| 2: [function(t, e) { | |
| "use strict"; | |
| var n = t("./utils") | |
| , i = Object.prototype.hasOwnProperty | |
| , r = { | |
| delimiter: "&", | |
| depth: 5, | |
| arrayLimit: 20, | |
| parameterLimit: 1e3, | |
| strictNullHandling: !1, | |
| plainObjects: !1, | |
| allowPrototypes: !1, | |
| allowDots: !1, | |
| decoder: n.decode | |
| } | |
| , o = function(t, e) { | |
| for (var n = {}, r = t.split(e.delimiter, e.parameterLimit === 1 / 0 ? void 0 : e.parameterLimit), o = 0; o < r.length; ++o) { | |
| var a, s, u = r[o], l = u.indexOf("]=") === -1 ? u.indexOf("=") : u.indexOf("]=") + 1; | |
| l === -1 ? (a = e.decoder(u), | |
| s = e.strictNullHandling ? null : "") : (a = e.decoder(u.slice(0, l)), | |
| s = e.decoder(u.slice(l + 1))), | |
| i.call(n, a) ? n[a] = [].concat(n[a]).concat(s) : n[a] = s | |
| } | |
| return n | |
| } | |
| , a = function t(e, n, i) { | |
| if (!e.length) | |
| return n; | |
| var r, o = e.shift(); | |
| if ("[]" === o) | |
| r = [], | |
| r = r.concat(t(e, n, i)); | |
| else { | |
| r = i.plainObjects ? Object.create(null) : {}; | |
| var a = "[" === o[0] && "]" === o[o.length - 1] ? o.slice(1, o.length - 1) : o | |
| , s = parseInt(a, 10); | |
| !isNaN(s) && o !== a && String(s) === a && s >= 0 && i.parseArrays && s <= i.arrayLimit ? (r = [], | |
| r[s] = t(e, n, i)) : r[a] = t(e, n, i) | |
| } | |
| return r | |
| } | |
| , s = function(t, e, n) { | |
| if (t) { | |
| var r = n.allowDots ? t.replace(/\.([^\.\[]+)/g, "[$1]") : t | |
| , o = /^([^\[\]]*)/ | |
| , s = /(\[[^\[\]]*\])/g | |
| , u = o.exec(r) | |
| , l = []; | |
| if (u[1]) { | |
| if (!n.plainObjects && i.call(Object.prototype, u[1]) && !n.allowPrototypes) | |
| return; | |
| l.push(u[1]) | |
| } | |
| for (var c = 0; null !== (u = s.exec(r)) && c < n.depth; ) | |
| c += 1, | |
| (n.plainObjects || !i.call(Object.prototype, u[1].replace(/\[|\]/g, "")) || n.allowPrototypes) && l.push(u[1]); | |
| return u && l.push("[" + r.slice(u.index) + "]"), | |
| a(l, e, n) | |
| } | |
| }; | |
| e.exports = function(t, e) { | |
| var i = e || {}; | |
| if (null !== i.decoder && void 0 !== i.decoder && "function" != typeof i.decoder) | |
| throw new TypeError("Decoder has to be a function."); | |
| if (i.delimiter = "string" == typeof i.delimiter || n.isRegExp(i.delimiter) ? i.delimiter : r.delimiter, | |
| i.depth = "number" == typeof i.depth ? i.depth : r.depth, | |
| i.arrayLimit = "number" == typeof i.arrayLimit ? i.arrayLimit : r.arrayLimit, | |
| i.parseArrays = i.parseArrays !== !1, | |
| i.decoder = "function" == typeof i.decoder ? i.decoder : r.decoder, | |
| i.allowDots = "boolean" == typeof i.allowDots ? i.allowDots : r.allowDots, | |
| i.plainObjects = "boolean" == typeof i.plainObjects ? i.plainObjects : r.plainObjects, | |
| i.allowPrototypes = "boolean" == typeof i.allowPrototypes ? i.allowPrototypes : r.allowPrototypes, | |
| i.parameterLimit = "number" == typeof i.parameterLimit ? i.parameterLimit : r.parameterLimit, | |
| i.strictNullHandling = "boolean" == typeof i.strictNullHandling ? i.strictNullHandling : r.strictNullHandling, | |
| "" === t || null === t || "undefined" == typeof t) | |
| return i.plainObjects ? Object.create(null) : {}; | |
| for (var a = "string" == typeof t ? o(t, i) : t, u = i.plainObjects ? Object.create(null) : {}, l = Object.keys(a), c = 0; c < l.length; ++c) { | |
| var d = l[c] | |
| , h = s(d, a[d], i); | |
| u = n.merge(u, h, i) | |
| } | |
| return n.compact(u) | |
| } | |
| } | |
| , { | |
| "./utils": 4 | |
| }], | |
| 3: [function(t, e) { | |
| "use strict"; | |
| var n = t("./utils") | |
| , i = { | |
| brackets: function(t) { | |
| return t + "[]" | |
| }, | |
| indices: function(t, e) { | |
| return t + "[" + e + "]" | |
| }, | |
| repeat: function(t) { | |
| return t | |
| } | |
| } | |
| , r = { | |
| delimiter: "&", | |
| strictNullHandling: !1, | |
| skipNulls: !1, | |
| encode: !0, | |
| encoder: n.encode | |
| } | |
| , o = function t(e, i, r, o, a, s, u, l, c) { | |
| var d = e; | |
| if ("function" == typeof u) | |
| d = u(i, d); | |
| else if (d instanceof Date) | |
| d = d.toISOString(); | |
| else if (null === d) { | |
| if (o) | |
| return s ? s(i) : i; | |
| d = "" | |
| } | |
| if ("string" == typeof d || "number" == typeof d || "boolean" == typeof d || n.isBuffer(d)) | |
| return s ? [s(i) + "=" + s(d)] : [i + "=" + String(d)]; | |
| var h = []; | |
| if ("undefined" == typeof d) | |
| return h; | |
| var f; | |
| if (Array.isArray(u)) | |
| f = u; | |
| else { | |
| var p = Object.keys(d); | |
| f = l ? p.sort(l) : p | |
| } | |
| for (var m = 0; m < f.length; ++m) { | |
| var g = f[m]; | |
| a && null === d[g] || (h = Array.isArray(d) ? h.concat(t(d[g], r(i, g), r, o, a, s, u, l, c)) : h.concat(t(d[g], i + (c ? "." + g : "[" + g + "]"), r, o, a, s, u, l, c))) | |
| } | |
| return h | |
| }; | |
| e.exports = function(t, e) { | |
| var n, a, s = t, u = e || {}, l = "undefined" == typeof u.delimiter ? r.delimiter : u.delimiter, c = "boolean" == typeof u.strictNullHandling ? u.strictNullHandling : r.strictNullHandling, d = "boolean" == typeof u.skipNulls ? u.skipNulls : r.skipNulls, h = "boolean" == typeof u.encode ? u.encode : r.encode, f = h ? "function" == typeof u.encoder ? u.encoder : r.encoder : null, p = "function" == typeof u.sort ? u.sort : null, m = "undefined" != typeof u.allowDots && u.allowDots; | |
| if (null !== u.encoder && void 0 !== u.encoder && "function" != typeof u.encoder) | |
| throw new TypeError("Encoder has to be a function."); | |
| "function" == typeof u.filter ? (a = u.filter, | |
| s = a("", s)) : Array.isArray(u.filter) && (n = a = u.filter); | |
| var g = []; | |
| if ("object" != typeof s || null === s) | |
| return ""; | |
| var y; | |
| y = u.arrayFormat in i ? u.arrayFormat : "indices"in u ? u.indices ? "indices" : "repeat" : "indices"; | |
| var v = i[y]; | |
| n || (n = Object.keys(s)), | |
| p && n.sort(p); | |
| for (var b = 0; b < n.length; ++b) { | |
| var _ = n[b]; | |
| d && null === s[_] || (g = g.concat(o(s[_], _, v, c, d, f, a, p, m))) | |
| } | |
| return g.join(l) | |
| } | |
| } | |
| , { | |
| "./utils": 4 | |
| }], | |
| 4: [function(t, e, n) { | |
| "use strict"; | |
| var i = function() { | |
| for (var t = new Array(256), e = 0; e < 256; ++e) | |
| t[e] = "%" + ((e < 16 ? "0" : "") + e.toString(16)).toUpperCase(); | |
| return t | |
| }(); | |
| n.arrayToObject = function(t, e) { | |
| for (var n = e.plainObjects ? Object.create(null) : {}, i = 0; i < t.length; ++i) | |
| "undefined" != typeof t[i] && (n[i] = t[i]); | |
| return n | |
| } | |
| , | |
| n.merge = function(t, e, i) { | |
| if (!e) | |
| return t; | |
| if ("object" != typeof e) { | |
| if (Array.isArray(t)) | |
| t.push(e); | |
| else { | |
| if ("object" != typeof t) | |
| return [t, e]; | |
| t[e] = !0 | |
| } | |
| return t | |
| } | |
| if ("object" != typeof t) | |
| return [t].concat(e); | |
| var r = t; | |
| return Array.isArray(t) && !Array.isArray(e) && (r = n.arrayToObject(t, i)), | |
| Object.keys(e).reduce(function(t, r) { | |
| var o = e[r]; | |
| return Object.prototype.hasOwnProperty.call(t, r) ? t[r] = n.merge(t[r], o, i) : t[r] = o, | |
| t | |
| }, r) | |
| } | |
| , | |
| n.decode = function(t) { | |
| try { | |
| return decodeURIComponent(t.replace(/\+/g, " ")) | |
| } catch (e) { | |
| return t | |
| } | |
| } | |
| , | |
| n.encode = function(t) { | |
| if (0 === t.length) | |
| return t; | |
| for (var e = "string" == typeof t ? t : String(t), n = "", r = 0; r < e.length; ++r) { | |
| var o = e.charCodeAt(r); | |
| 45 === o || 46 === o || 95 === o || 126 === o || o >= 48 && o <= 57 || o >= 65 && o <= 90 || o >= 97 && o <= 122 ? n += e.charAt(r) : o < 128 ? n += i[o] : o < 2048 ? n += i[192 | o >> 6] + i[128 | 63 & o] : o < 55296 || o >= 57344 ? n += i[224 | o >> 12] + i[128 | o >> 6 & 63] + i[128 | 63 & o] : (r += 1, | |
| o = 65536 + ((1023 & o) << 10 | 1023 & e.charCodeAt(r)), | |
| n += i[240 | o >> 18] + i[128 | o >> 12 & 63] + i[128 | o >> 6 & 63] + i[128 | 63 & o]) | |
| } | |
| return n | |
| } | |
| , | |
| n.compact = function(t, e) { | |
| if ("object" != typeof t || null === t) | |
| return t; | |
| var i = e || [] | |
| , r = i.indexOf(t); | |
| if (r !== -1) | |
| return i[r]; | |
| if (i.push(t), | |
| Array.isArray(t)) { | |
| for (var o = [], a = 0; a < t.length; ++a) | |
| t[a] && "object" == typeof t[a] ? o.push(n.compact(t[a], i)) : "undefined" != typeof t[a] && o.push(t[a]); | |
| return o | |
| } | |
| for (var s = Object.keys(t), u = 0; u < s.length; ++u) { | |
| var l = s[u]; | |
| t[l] = n.compact(t[l], i) | |
| } | |
| return t | |
| } | |
| , | |
| n.isRegExp = function(t) { | |
| return "[object RegExp]" === Object.prototype.toString.call(t) | |
| } | |
| , | |
| n.isBuffer = function(t) { | |
| return null !== t && "undefined" != typeof t && !!(t.constructor && t.constructor.isBuffer && t.constructor.isBuffer(t)) | |
| } | |
| } | |
| , {}] | |
| }, {}, [1])(1) | |
| }), | |
| function(t) { | |
| var e = function() { | |
| "use strict"; | |
| function t(e, n, i, r) { | |
| function a(e, i) { | |
| if (null === e) | |
| return null; | |
| if (0 === i) | |
| return e; | |
| var s, d; | |
| if ("object" != typeof e) | |
| return e; | |
| if (t.__isArray(e)) | |
| s = []; | |
| else if (t.__isRegExp(e)) | |
| s = new RegExp(e.source,o(e)), | |
| e.lastIndex && (s.lastIndex = e.lastIndex); | |
| else if (t.__isDate(e)) | |
| s = new Date(e.getTime()); | |
| else { | |
| if (c && Buffer.isBuffer(e)) | |
| return s = new Buffer(e.length), | |
| e.copy(s), | |
| s; | |
| "undefined" == typeof r ? (d = Object.getPrototypeOf(e), | |
| s = Object.create(d)) : (s = Object.create(r), | |
| d = r) | |
| } | |
| if (n) { | |
| var h = u.indexOf(e); | |
| if (h != -1) | |
| return l[h]; | |
| u.push(e), | |
| l.push(s) | |
| } | |
| for (var f in e) { | |
| var p; | |
| d && (p = Object.getOwnPropertyDescriptor(d, f)), | |
| p && null == p.set || (s[f] = a(e[f], i - 1)) | |
| } | |
| return s | |
| } | |
| var s; | |
| "object" == typeof n && (i = n.depth, | |
| r = n.prototype, | |
| s = n.filter, | |
| n = n.circular); | |
| var u = [] | |
| , l = [] | |
| , c = "undefined" != typeof Buffer; | |
| return "undefined" == typeof n && (n = !0), | |
| "undefined" == typeof i && (i = 1 / 0), | |
| a(e, i) | |
| } | |
| function e(t) { | |
| return Object.prototype.toString.call(t) | |
| } | |
| function n(t) { | |
| return "object" == typeof t && "[object Date]" === e(t) | |
| } | |
| function i(t) { | |
| return "object" == typeof t && "[object Array]" === e(t) | |
| } | |
| function r(t) { | |
| return "object" == typeof t && "[object RegExp]" === e(t) | |
| } | |
| function o(t) { | |
| var e = ""; | |
| return t.global && (e += "g"), | |
| t.ignoreCase && (e += "i"), | |
| t.multiline && (e += "m"), | |
| e | |
| } | |
| return t.clonePrototype = function(t) { | |
| if (null === t) | |
| return null; | |
| var e = function() {}; | |
| return e.prototype = t, | |
| new e | |
| } | |
| , | |
| t.__objToStr = e, | |
| t.__isDate = n, | |
| t.__isArray = i, | |
| t.__isRegExp = r, | |
| t.__getRegExpFlags = o, | |
| t | |
| }(); | |
| t.clone = e | |
| }("object" == typeof exports ? exports : this), | |
| function(t) { | |
| exports.topdomain = t() | |
| }(function() { | |
| return function t(e, n, i) { | |
| function r(a, s) { | |
| if (!n[a]) { | |
| if (!e[a]) { | |
| var u = "function" == typeof require && require; | |
| if (!s && u) | |
| return u(a, !0); | |
| if (o) | |
| return o(a, !0); | |
| var l = new Error("Cannot find module '" + a + "'"); | |
| throw l.code = "MODULE_NOT_FOUND", | |
| l | |
| } | |
| var c = n[a] = { | |
| exports: {} | |
| }; | |
| e[a][0].call(c.exports, function(t) { | |
| var n = e[a][1][t]; | |
| return r(n ? n : t) | |
| }, c, c.exports, t, e, n, i) | |
| } | |
| return n[a].exports | |
| } | |
| for (var o = "function" == typeof require && require, a = 0; a < i.length; a++) | |
| r(i[a]); | |
| return r | |
| }({ | |
| 1: [function(t, e, n) { | |
| "use strict"; | |
| function i(t) { | |
| for (var e = n.cookie, i = n.levels(t), r = 0; r < i.length; ++r) { | |
| var o = "__tld__" | |
| , a = i[r] | |
| , s = { | |
| domain: "." + a | |
| }; | |
| if (e(o, 1, s), | |
| e(o)) | |
| return e(o, null, s), | |
| a | |
| } | |
| return "" | |
| } | |
| var r = t("component-url").parse | |
| , o = t("component-cookie"); | |
| i.levels = function(t) { | |
| var e = r(t).hostname | |
| , n = e.split(".") | |
| , i = n[n.length - 1] | |
| , o = []; | |
| if (4 === n.length && i === parseInt(i, 10)) | |
| return o; | |
| if (n.length <= 1) | |
| return o; | |
| for (var a = n.length - 2; a >= 0; --a) | |
| o.push(n.slice(a).join(".")); | |
| return o | |
| } | |
| , | |
| i.cookie = o, | |
| n = e.exports = i | |
| } | |
| , { | |
| "component-cookie": 2, | |
| "component-url": 3 | |
| }], | |
| 2: [function(t, e) { | |
| function n(t, e, n) { | |
| n = n || {}; | |
| var i = a(t) + "=" + a(e); | |
| null == e && (n.maxage = -1), | |
| n.maxage && (n.expires = new Date(+new Date + n.maxage)), | |
| n.path && (i += "; path=" + n.path), | |
| n.domain && (i += "; domain=" + n.domain), | |
| n.expires && (i += "; expires=" + n.expires.toUTCString()), | |
| n.secure && (i += "; secure"), | |
| document.cookie = i | |
| } | |
| function i() { | |
| var t; | |
| try { | |
| t = document.cookie | |
| } catch (t) { | |
| return "undefined" != typeof console && "function" == typeof console.error && console.error(t.stack || t), | |
| {} | |
| } | |
| return o(t) | |
| } | |
| function r(t) { | |
| return i()[t] | |
| } | |
| function o(t) { | |
| var e, n = {}, i = t.split(/ *; */); | |
| if ("" == i[0]) | |
| return n; | |
| for (var r = 0; r < i.length; ++r) | |
| e = i[r].split("="), | |
| n[s(e[0])] = s(e[1]); | |
| return n | |
| } | |
| function a(t) { | |
| try { | |
| return encodeURIComponent(t) | |
| } catch (t) {} | |
| } | |
| function s(t) { | |
| try { | |
| return decodeURIComponent(t) | |
| } catch (t) {} | |
| } | |
| e.exports = function(t, e, o) { | |
| switch (arguments.length) { | |
| case 3: | |
| case 2: | |
| return n(t, e, o); | |
| case 1: | |
| return r(t); | |
| default: | |
| return i() | |
| } | |
| } | |
| } | |
| , {}], | |
| 3: [function(t, e, n) { | |
| function i(t) { | |
| switch (t) { | |
| case "http:": | |
| return 80; | |
| case "https:": | |
| return 443; | |
| default: | |
| return location.port | |
| } | |
| } | |
| n.parse = function(t) { | |
| var e = document.createElement("a"); | |
| return e.href = t, | |
| { | |
| href: e.href, | |
| host: e.host || location.host, | |
| port: "0" === e.port || "" === e.port ? i(e.protocol) : e.port, | |
| hash: e.hash, | |
| hostname: e.hostname || location.hostname, | |
| pathname: "/" != e.pathname.charAt(0) ? "/" + e.pathname : e.pathname, | |
| protocol: e.protocol && ":" != e.protocol ? e.protocol : location.protocol, | |
| search: e.search, | |
| query: e.search.slice(1) | |
| } | |
| } | |
| , | |
| n.isAbsolute = function(t) { | |
| return 0 == t.indexOf("//") || !!~t.indexOf("://") | |
| } | |
| , | |
| n.isRelative = function(t) { | |
| return !n.isAbsolute(t) | |
| } | |
| , | |
| n.isCrossDomain = function(t) { | |
| t = n.parse(t); | |
| var e = n.parse(e.href); | |
| return t.hostname !== e.hostname || t.port !== e.port || t.protocol !== e.protocol | |
| } | |
| } | |
| , {}] | |
| }, {}, [1])(1) | |
| }), | |
| function() { | |
| exports.utils = { | |
| timeout: function(t, e) { | |
| return setTimeout(e, t) | |
| }, | |
| getCurrentTimestamp: function() { | |
| return (new Date).getTime() | |
| }, | |
| sampleArray: function(t) { | |
| return t[Math.floor(Math.random() * t.length)] | |
| }, | |
| shuffleArray: function(t) { | |
| var e, n, i, r, o, a; | |
| if (t.length > 1) { | |
| for (a = [], | |
| e = i = r = t.length - 1; r <= 1 ? i <= 1 : i >= 1; e = r <= 1 ? ++i : --i) | |
| n = Math.floor(Math.random() * (e + 1)), | |
| a.push((o = [t[n], t[e]], | |
| t[e] = o[0], | |
| t[n] = o[1], | |
| o)); | |
| return a | |
| } | |
| }, | |
| buildLogger: function(t, e) { | |
| var n, i, r, o; | |
| i = { | |
| silent: 0, | |
| error: 1, | |
| warn: 2, | |
| info: 3, | |
| debug: 4 | |
| }, | |
| r = { | |
| level: e || "warn" | |
| }, | |
| n = function(e, n) { | |
| return r[e] = function() { | |
| var o, a; | |
| if (n <= i[r.level]) { | |
| o = Array.prototype.slice.apply(arguments), | |
| i[r.level] > 3 && "performance"in window && "now"in window.performance && o.unshift("+" + Math.round(performance.now()) + "ms"), | |
| o.unshift(t); | |
| try { | |
| return "undefined" != typeof console && null !== console && null != (a = console[e]) ? a.apply(console, o) : void 0 | |
| } catch (t) { | |
| return console.log(e + " " + o.join(", ")) | |
| } | |
| } | |
| } | |
| } | |
| ; | |
| for (e in i) | |
| o = i[e], | |
| n(e, o); | |
| return r | |
| }, | |
| ajaxSimpleCors: function(t) { | |
| var e, n, i, r; | |
| return e = t.body || {}, | |
| i = (t.method || "GET").toUpperCase(), | |
| n = "GET" === i || "POST" === i ? i : (e._method = i, | |
| "POST"), | |
| r = new XMLHttpRequest, | |
| r.open(n, t.url, t.async), | |
| r.withCredentials = !!t.withCredentials, | |
| r.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"), | |
| r.setRequestHeader("Accept", "application/json"), | |
| t.callback && (r.onload = function() { | |
| var e; | |
| return e = JSON.parse(r.responseText), | |
| e.redirect_url ? (t.onRedirect && t.onRedirect(e), | |
| exports.utils.ajaxSimpleCors({ | |
| url: e.redirect_url, | |
| callback: t.callback, | |
| withCredentials: t.withCredentials | |
| })) : t.callback(e) | |
| } | |
| ), | |
| "GET" !== n ? r.send(exports.qs.stringify(e, t.qsOpts)) : r.send() | |
| }, | |
| isBlank: function(t) { | |
| return !t || /^\s*$/.test(t) | |
| } | |
| } | |
| } | |
| .call(this), | |
| function(t) { | |
| exports.Cookies = t() | |
| }(function() { | |
| function t() { | |
| for (var t = 0, e = {}; t < arguments.length; t++) { | |
| var n = arguments[t]; | |
| for (var i in n) | |
| e[i] = n[i] | |
| } | |
| return e | |
| } | |
| function e(t) { | |
| return t.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent) | |
| } | |
| function n(i) { | |
| function r() {} | |
| function o(e, n, o) { | |
| if ("undefined" != typeof document) { | |
| o = t({ | |
| path: "/" | |
| }, r.defaults, o), | |
| "number" == typeof o.expires && (o.expires = new Date(1 * new Date + 864e5 * o.expires)), | |
| o.expires = o.expires ? o.expires.toUTCString() : ""; | |
| try { | |
| var a = JSON.stringify(n); | |
| /^[\{\[]/.test(a) && (n = a) | |
| } catch (t) {} | |
| n = i.write ? i.write(n, e) : encodeURIComponent(String(n)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent), | |
| e = encodeURIComponent(String(e)).replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent).replace(/[\(\)]/g, escape); | |
| var s = ""; | |
| for (var u in o) | |
| o[u] && (s += "; " + u, | |
| o[u] !== !0 && (s += "=" + o[u].split(";")[0])); | |
| return document.cookie = e + "=" + n + s | |
| } | |
| } | |
| function a(t, n) { | |
| if ("undefined" != typeof document) { | |
| for (var r = {}, o = document.cookie ? document.cookie.split("; ") : [], a = 0; a < o.length; a++) { | |
| var s = o[a].split("=") | |
| , u = s.slice(1).join("="); | |
| n || '"' !== u.charAt(0) || (u = u.slice(1, -1)); | |
| try { | |
| var l = e(s[0]); | |
| if (u = (i.read || i)(u, l) || e(u), | |
| n) | |
| try { | |
| u = JSON.parse(u) | |
| } catch (t) {} | |
| if (r[l] = u, | |
| t === l) | |
| break | |
| } catch (t) {} | |
| } | |
| return t ? r[t] : r | |
| } | |
| } | |
| return r.set = o, | |
| r.get = function(t) { | |
| return a(t, !1) | |
| } | |
| , | |
| r.getJSON = function(t) { | |
| return a(t, !0) | |
| } | |
| , | |
| r.remove = function(e, n) { | |
| o(e, "", t(n, { | |
| expires: -1 | |
| })) | |
| } | |
| , | |
| r.defaults = {}, | |
| r.withConverter = n, | |
| r | |
| } | |
| return n(function() {}) | |
| }), | |
| !function(t, e) { | |
| exports[t] = e() | |
| }("domready", function(t) { | |
| function e(t) { | |
| for (f = 1; t = i.shift(); ) | |
| t() | |
| } | |
| var n, i = [], r = !1, o = document, a = o.documentElement, s = a.doScroll, u = "DOMContentLoaded", l = "addEventListener", c = "onreadystatechange", d = "readyState", h = s ? /^loaded|^c/ : /^loaded|c/, f = h.test(o[d]); | |
| return o[l] && o[l](u, n = function() { | |
| o.removeEventListener(u, n, r), | |
| e() | |
| } | |
| , r), | |
| s && o.attachEvent(c, n = function() { | |
| /^c/.test(o[d]) && (o.detachEvent(c, n), | |
| e()) | |
| } | |
| ), | |
| t = s ? function(e) { | |
| self != top ? f ? e() : i.push(e) : function() { | |
| try { | |
| a.doScroll("left") | |
| } catch (n) { | |
| return setTimeout(function() { | |
| t(e) | |
| }, 50) | |
| } | |
| e() | |
| }() | |
| } | |
| : function(t) { | |
| f ? t() : i.push(t) | |
| } | |
| }), | |
| function(t) { | |
| var e = 0 | |
| , n = window.requestAnimationFrame || window.msRequestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.oRequestAnimationFrame || function(t) { | |
| var n = (new Date).getTime() | |
| , i = Math.max(0, 16 - (n - e)) | |
| , r = setTimeout(function() { | |
| t(n + i) | |
| }, i); | |
| return e = n + i, | |
| r | |
| } | |
| ; | |
| t.requestAnimationFrame = function(t, e) { | |
| return n.call(window, t, e) | |
| } | |
| }("object" == typeof exports ? exports : this), | |
| function(t) { | |
| var e = "addEventListener"in window ? "addEventListener" : "attachEvent" | |
| , n = function(t) { | |
| return "addEventListener" === t ? function(t, e, n) { | |
| return t.addEventListener(e, n, !1) | |
| } | |
| : function(t, e, n) { | |
| return t.attachEvent("on" + e, n) | |
| } | |
| }(e); | |
| t.addEventListener = n | |
| }("object" == typeof exports ? exports : this), | |
| function() { | |
| var t = function(t, e) { | |
| return function() { | |
| return t.apply(e, arguments) | |
| } | |
| }; | |
| exports.DomHelpers = function() { | |
| function e(e) { | |
| this.getElement = t(this.getElement, this), | |
| this.reverseChildren = t(this.reverseChildren, this), | |
| this.isVisible = t(this.isVisible, this), | |
| this.detectOrientation = t(this.detectOrientation, this), | |
| this.calcScreenHeight = t(this.calcScreenHeight, this), | |
| this.calcWindowWidth = t(this.calcWindowWidth, this), | |
| this.calcWindowHeight = t(this.calcWindowHeight, this), | |
| this.bindEvent = t(this.bindEvent, this), | |
| this._getInitialStyleFloat = t(this._getInitialStyleFloat, this), | |
| this.translateY = t(this.translateY, this), | |
| this.transition = t(this.transition, this), | |
| this.setOpacity = t(this.setOpacity, this), | |
| this.clearInlineStyle = t(this.clearInlineStyle, this), | |
| this.setStyle = t(this.setStyle, this), | |
| this.getComputedStyle = t(this.getComputedStyle, this), | |
| this.config = e | |
| } | |
| return e.prototype.getComputedStyle = function(t, e) { | |
| return this.config.BROWSER_SUPPORT.features.getComputedStyle ? getComputedStyle(t, null).getPropertyValue(e) : t.currentStyle[e] | |
| } | |
| , | |
| e.prototype.setStyle = function(t, e, n) { | |
| return t.style.setProperty(e, n, "important") | |
| } | |
| , | |
| e.prototype.clearInlineStyle = function(t, e) { | |
| return t.style.removeProperty(e) | |
| } | |
| , | |
| e.prototype.setOpacity = function(t, e) { | |
| return this.setStyle(t, "opacity", e) | |
| } | |
| , | |
| e.prototype.transition = function(t, e) { | |
| if (this.config.BROWSER_SUPPORT.features.transition) | |
| return this.config.BROWSER_SUPPORT.features.transform ? this.setStyle(t, "transition", e) : this.setStyle(t, "transition", e.replace(/transform/g, "bottom")) | |
| } | |
| , | |
| e.prototype.translateY = function(t, e) { | |
| var n; | |
| return this.config.BROWSER_SUPPORT.features.transform ? this.setStyle(t, "transform", "translate3d(0, " + e + "px, 0)") : (n = this._getInitialStyleFloat(t, "bottom"), | |
| "static" === this.getComputedStyle(t, "position") && this.setStyle(t, "position", "relative"), | |
| this.setStyle(t, "bottom", -e + n + "px")) | |
| } | |
| , | |
| e.prototype._getInitialStyleFloat = function(t, e) { | |
| var n; | |
| return (n = t.getAttribute("data-initial-" + e)) ? parseFloat(n, 10) : (n = parseFloat(this.getComputedStyle(t, e), 10) || 0, | |
| t.setAttribute("data-initial-" + e, n), | |
| n) | |
| } | |
| , | |
| e.prototype.bindEvent = function(t, e, n) { | |
| return exports.addEventListener(t, e, n) | |
| } | |
| , | |
| e.prototype.calcWindowHeight = function() { | |
| return innerHeight | |
| } | |
| , | |
| e.prototype.calcWindowWidth = function() { | |
| return innerWidth | |
| } | |
| , | |
| e.prototype.calcScreenHeight = function() { | |
| return "portrait" === this.detectOrientation() ? Math.max(screen.availHeight, screen.availWidth) : Math.min(screen.availHeight, screen.availWidth) | |
| } | |
| , | |
| e.prototype.detectOrientation = function() { | |
| return this.calcWindowHeight() > this.calcWindowWidth() ? "portrait" : "landscape" | |
| } | |
| , | |
| e.prototype.isVisible = function(t) { | |
| return !(!t || !(t.offsetWidth || t.offsetHeight || t.getClientRects().length)) | |
| } | |
| , | |
| e.prototype.reverseChildren = function(t) { | |
| var e, n, i, r; | |
| for (r = [], | |
| n = e = 0, | |
| i = t.childNodes.length - 1; 0 <= i ? e <= i : e >= i; n = 0 <= i ? ++e : --e) | |
| r.push(t.insertBefore(t.childNodes[n], t.firstChild)); | |
| return r | |
| } | |
| , | |
| e.prototype.getElement = function(t) { | |
| return t instanceof HTMLElement ? t : document.querySelector(t) | |
| } | |
| , | |
| e | |
| }() | |
| } | |
| .call(this), | |
| function() { | |
| var t = Date.now || function() { | |
| return (new Date).getTime() | |
| } | |
| , e = function(e, n, i) { | |
| var r, o, a, s = null, u = 0; | |
| i || (i = {}); | |
| var l = function() { | |
| u = i.leading === !1 ? 0 : t(), | |
| s = null, | |
| a = e.apply(r, o), | |
| s || (r = o = null) | |
| }; | |
| return function() { | |
| var c = t(); | |
| u || i.leading !== !1 || (u = c); | |
| var d = n - (c - u); | |
| return r = this, | |
| o = arguments, | |
| d <= 0 || d > n ? (s && (clearTimeout(s), | |
| s = null), | |
| u = c, | |
| a = e.apply(r, o), | |
| s || (r = o = null)) : s || i.trailing === !1 || (s = setTimeout(l, d)), | |
| a | |
| } | |
| }; | |
| exports.throttle = e | |
| }(), | |
| function() { | |
| var t = function(t, e) { | |
| return function() { | |
| return t.apply(e, arguments) | |
| } | |
| }; | |
| exports.TypingIndicator = function() { | |
| function e(e, n) { | |
| this._bindTypingEvents = t(this._bindTypingEvents, this), | |
| this._handleWebSocketMessage = t(this._handleWebSocketMessage, this); | |
| var i; | |
| i = e.BROWSER_SUPPORT.features.webSocket && e.BROWSER_SUPPORT.features.cors && e.BROWSER_SUPPORT.features.json, | |
| i && (this.$el = n.$el, | |
| this.config = e, | |
| this.pusherData = JSON.parse(this.$el.getAttribute("data-pusher")), | |
| this.ws = new WebSocket(this.pusherData.web_socket_url), | |
| this.ws.onmessage = this._handleWebSocketMessage) | |
| } | |
| return e.prototype._handleWebSocketMessage = function(t) { | |
| var e; | |
| return e = JSON.parse(t.data), | |
| "string" == typeof e.data && (e.data = JSON.parse(e.data)), | |
| "pusher_internal:subscription_succeeded" === e.event ? this._bindTypingEvents() : "pusher:connection_established" === e.event ? exports.utils.ajaxSimpleCors({ | |
| method: "POST", | |
| url: this.pusherData.auth_url, | |
| withCredentials: /^(staging|preprod)/.test(this.config.ENV), | |
| body: { | |
| survey_request_token: this.pusherData.survey_request_token, | |
| socket_id: e.data.socket_id, | |
| channel_name: this.pusherData.channel_name | |
| }, | |
| callback: function(t) { | |
| return function(e) { | |
| var n; | |
| return n = { | |
| event: "pusher:subscribe", | |
| data: { | |
| auth: e.auth, | |
| channel: t.pusherData.channel_name | |
| } | |
| }, | |
| t.ws.send(JSON.stringify(n)) | |
| } | |
| }(this) | |
| }) : void 0 | |
| } | |
| , | |
| e.prototype._bindTypingEvents = function() { | |
| var t, e, n, i; | |
| return i = 0, | |
| n = 1e3, | |
| t = function(t) { | |
| return function() { | |
| var e; | |
| if (!(i >= n)) | |
| return e = { | |
| event: "client-typing", | |
| channel: t.pusherData.channel_name, | |
| data: { | |
| survey_request_token: t.pusherData.survey_request_token | |
| } | |
| }, | |
| t.ws.send(JSON.stringify(e)), | |
| i += 1 | |
| } | |
| }(this), | |
| e = exports.throttle(t, 2e3), | |
| exports.addEventListener(this.$el, "input", e) | |
| } | |
| , | |
| e | |
| }() | |
| } | |
| .call(this), | |
| function() { | |
| var t = function(t, e) { | |
| return function() { | |
| return t.apply(e, arguments) | |
| } | |
| }; | |
| this.AdditionalQuestionsOptions = function() { | |
| function e(e) { | |
| this._handleOptionSelected = t(this._handleOptionSelected, this); | |
| var n, i, r, o; | |
| if (this.dom = new exports.DomHelpers, | |
| this.$container = this.dom.getElement(e), | |
| this.$container) { | |
| for (this.$options = this.$container.querySelectorAll("input"), | |
| o = this.$options, | |
| i = 0, | |
| r = o.length; i < r; i++) | |
| n = o[i], | |
| this.dom.bindEvent(n, "change", this._handleOptionSelected); | |
| this._handleOptionSelected() | |
| } | |
| } | |
| return e.prototype._handleOptionSelected = function() { | |
| var t, e, n, i, r; | |
| for (r = this.$options, | |
| e = 0, | |
| i = r.length; e < i; e++) | |
| t = r[e], | |
| n = t.parentElement.querySelector(".survey-response-input textarea"), | |
| n && (t.checked ? n.classList.remove("is-hidden") : n.classList.add("is-hidden")) | |
| } | |
| , | |
| e | |
| }() | |
| } | |
| .call(this), | |
| function() { | |
| var t = function(t, e) { | |
| return function() { | |
| return t.apply(e, arguments) | |
| } | |
| }; | |
| this.AdditionalQuestionsScale = function() { | |
| function e(e) { | |
| this._handleScaleSelected = t(this._handleScaleSelected, this); | |
| var n, i, r, o; | |
| if (this.dom = new exports.DomHelpers, | |
| this.$container = this.dom.getElement(e), | |
| this.$container) { | |
| for (this.$scales = this.$container.querySelectorAll("input"), | |
| o = this.$scales, | |
| i = 0, | |
| r = o.length; i < r; i++) | |
| n = o[i], | |
| this.dom.bindEvent(n, "change", this._handleScaleSelected); | |
| this.$container.querySelector("input:checked") && this._handleScaleSelected() | |
| } | |
| } | |
| return e.prototype._handleScaleSelected = function() { | |
| this.$container.classList.add("is-active") | |
| } | |
| , | |
| e | |
| }() | |
| } | |
| .call(this), | |
| function() { | |
| var t = function(t, e) { | |
| return function() { | |
| return t.apply(e, arguments) | |
| } | |
| }; | |
| exports.DisplayStrategy = function() { | |
| function e(e, n) { | |
| this._setupTypingIndicator = t(this._setupTypingIndicator, this), | |
| this._disableMask = t(this._disableMask, this), | |
| this._resizeMask = t(this._resizeMask, this), | |
| this._computeMaskHeight = t(this._computeMaskHeight, this), | |
| this._setupMask = t(this._setupMask, this), | |
| this._pseudoBlurCommentBox = t(this._pseudoBlurCommentBox, this), | |
| this._pseudoFocusCommentBox = t(this._pseudoFocusCommentBox, this), | |
| this._surveyAqIsVisible = t(this._surveyAqIsVisible, this), | |
| this._surveyIsVisible = t(this._surveyIsVisible, this), | |
| this._surveyHasFocus = t(this._surveyHasFocus, this), | |
| this._setupEventHandlers = t(this._setupEventHandlers, this), | |
| this._injectThankYouTemplate = t(this._injectThankYouTemplate, this), | |
| this._filterSavedAnswer = t(this._filterSavedAnswer, this), | |
| this._fillInSavedAnswer = t(this._fillInSavedAnswer, this), | |
| this._bindAdditionalQuestionSubmit = t(this._bindAdditionalQuestionSubmit, this), | |
| this._bindAdditionalQuestionPreviousLink = t(this._bindAdditionalQuestionPreviousLink, this), | |
| this._getFormParams = t(this._getFormParams, this), | |
| this._renderViewBeforeAdditionalQuestions = t(this._renderViewBeforeAdditionalQuestions, this), | |
| this._injectAdditionalQuestionTemplate = t(this._injectAdditionalQuestionTemplate, this), | |
| this._skipComment = t(this._skipComment, this), | |
| this._confirmationText = t(this._confirmationText, this), | |
| this._clearScore = t(this._clearScore, this), | |
| this._setScore = t(this._setScore, this), | |
| this._getScore = t(this._getScore, this), | |
| this._measure = t(this._measure, this), | |
| this._injectTemplate = t(this._injectTemplate, this), | |
| this._removeModal = t(this._removeModal, this), | |
| this._remove = t(this._remove, this), | |
| this._getTemplate = t(this._getTemplate, this), | |
| this.toggleStateForPreview = t(this.toggleStateForPreview, this), | |
| this.canHide = t(this.canHide, this); | |
| var i; | |
| this.config = e, | |
| this.opts = n, | |
| (i = this.opts).offsets || (i.offsets = {}), | |
| this.timingFactor = 1, | |
| this.transitionDuration = .5 * this.timingFactor, | |
| this.transitionEasing = "cubic-bezier(0.32, 0.6, 0.08, 1.00)", | |
| this.dom = new exports.DomHelpers(this.config), | |
| this.state = "initial", | |
| this.hasAdditionalQuestions = !1 | |
| } | |
| return e.prototype.canHide = function() { | |
| return "question" === this.state || "toast" === this.state | |
| } | |
| , | |
| e.prototype.toggleStateForPreview = function(t, e, n) { | |
| var i, r, o; | |
| if (null == n && (n = {}), | |
| i = t.slice(), | |
| r = this.state.slice(), | |
| i !== r) | |
| switch (this.config.LOGGER.debug("Toggling '" + r + "' -> '" + i + "'."), | |
| this.score && (e = this.score), | |
| o = r + " -> " + i) { | |
| case "toast -> question": | |
| return this._showQuestion(); | |
| case "toast -> comment": | |
| return this._showComment(e); | |
| case "question -> toast": | |
| return this._hideQuestion(); | |
| case "question -> comment": | |
| return this._showComment(e); | |
| case "comment -> question": | |
| return n.disableClearScoreOnHideComment || this._clearScore(), | |
| this._showQuestion(); | |
| case "comment -> toast": | |
| return n.disableClearScoreOnHideComment || this._clearScore(), | |
| this._hideComment(); | |
| default: | |
| return this.config.LOGGER.error("Cannot toggle '" + r + "' -> '" + i + "'.") | |
| } | |
| } | |
| , | |
| e.prototype._getTemplate = function(t) { | |
| var e; | |
| return e = function(e) { | |
| return function(n) { | |
| return e.token = n.token, | |
| t(n) | |
| } | |
| }(this), | |
| this.config.SURVEY_TEMPLATE ? e(this.config.SURVEY_TEMPLATE) : (this.config.TELEMETRY.instrument("GET_TEMPLATE_START", { | |
| token: this.opts.params._delighted_survey_request_token | |
| }), | |
| exports.utils.ajaxSimpleCors({ | |
| method: "POST", | |
| url: this.config.SURVEY_URL, | |
| body: this.opts.params, | |
| withCredentials: /^(staging|preprod)/.test(this.config.ENV), | |
| callback: function(t) { | |
| return function(n) { | |
| return n.abort ? (t.config.TELEMETRY.instrument("GET_TEMPLATE_ABORT", { | |
| reason: n.reason | |
| }), | |
| t.config.LOGGER.warn("Survey cancelled because " + n.reason + "."), | |
| null != n.last_surveyed_timestamp ? t.config.STATE_MANAGER.setLastSurveyedTimestamp(1e3 * n.last_surveyed_timestamp, { | |
| token: n.last_surveyed_token | |
| }) : void 0) : (t.config.TELEMETRY.instrument("GET_TEMPLATE_OK", { | |
| token: n.token | |
| }), | |
| e(n)) | |
| } | |
| }(this), | |
| onRedirect: function(t) { | |
| return function(e) { | |
| return t.config.TELEMETRY.instrument("GET_TEMPLATE_REDIRECT", { | |
| original_url: t.config.SURVEY_URL, | |
| redirect_url: e.redirect_url | |
| }) | |
| } | |
| }(this) | |
| })) | |
| } | |
| , | |
| e.prototype._remove = function() { | |
| return exports.requestAnimationFrame(function(t) { | |
| return function() { | |
| return exports.utils.timeout(1e3 * t.transitionDuration, function() { | |
| if (t.$root) | |
| return t.$root.parentNode.removeChild(t.$root), | |
| t.$root = null | |
| }) | |
| } | |
| }(this)) | |
| } | |
| , | |
| e.prototype._removeModal = function() { | |
| return exports.requestAnimationFrame(function(t) { | |
| return function() { | |
| return exports.utils.timeout(1e3 * t.transitionDuration, function() { | |
| if (t.$rootModal) | |
| return t.$rootModal.parentNode.removeChild(t.$rootModal), | |
| t.$rootModal = null | |
| }) | |
| } | |
| }(this)) | |
| } | |
| , | |
| e.prototype._injectTemplate = function(t) { | |
| var e; | |
| return document.body.insertAdjacentHTML("beforeend", t.html), | |
| this.$root = document.querySelector("#delighted-web-" + t.id), | |
| this.$rootModal = document.querySelector("#delighted-web-modal-" + t.id), | |
| this.$survey = this.$root.querySelector(".delighted-web-survey"), | |
| this.$surveyInner = this.$root.querySelector(".delighted-web-survey-inner"), | |
| this.$surveyPowered = this.$root.querySelector(".delighted-web-survey-powered"), | |
| this.$surveyClose = this.$root.querySelector(".delighted-web-survey-close"), | |
| this.$stepQuestion = this.$root.querySelector(".delighted-web-step-question"), | |
| this.$stepComment = this.$root.querySelector(".delighted-web-step-comment"), | |
| this.$stepThanks = this.$root.querySelector(".delighted-web-step-thanks"), | |
| this.$stepAdditionalQuestion = this.$rootModal.querySelector(".delighted-web-aq-content"), | |
| this.$stepAdditionalQuestionClose = this.$rootModal.querySelector(".delighted-web-aq-close"), | |
| this.$surveyModalClose = this.$rootModal.querySelector(".delighted-web-survey-close"), | |
| e = this.$root.querySelector(".delighted-web-label-comment").getAttribute("data-text"), | |
| this._confirmationTextByScore = JSON.parse(e), | |
| this._setupMask() | |
| } | |
| , | |
| e.prototype._measure = function() { | |
| return this.heightSurvey = this.$survey.offsetHeight, | |
| this.heightStepQuestion = this.$stepQuestion.offsetHeight, | |
| this.heightStepComment = this.$stepComment.offsetHeight, | |
| this.heightStepThanks = this.$stepThanks.offsetHeight | |
| } | |
| , | |
| e.prototype._getScore = function(t) { | |
| return { | |
| text: t.innerText, | |
| number: parseInt(t.getAttribute("data-score"), 10) | |
| } | |
| } | |
| , | |
| e.prototype._setScore = function(t) { | |
| var e, n, i, r, o; | |
| if (t) { | |
| for (this.score = t, | |
| o = this.$stepQuestion.querySelectorAll(".delighted-web-question-score-number"), | |
| n = 0, | |
| i = o.length; n < i; n++) | |
| e = o[n], | |
| t.number === this._getScore(e).number ? (e.classList.remove("delighted-web-is-inactive"), | |
| e.classList.add("delighted-web-is-active")) : (e.classList.add("delighted-web-is-inactive"), | |
| e.classList.remove("delighted-web-is-active")); | |
| return this.$stepQuestion.querySelector(".delighted-web-question-score-numbers").classList.add("delighted-web-is-active"), | |
| this.$stepComment.querySelector(".delighted-web-label-comment").innerText = this._confirmationText(t), | |
| (r = this.$surveyPowered.getAttribute("data-powered-by-url")) ? this.$surveyPowered.href = r : void 0 | |
| } | |
| } | |
| , | |
| e.prototype._clearScore = function() { | |
| var t, e, n, i; | |
| for (this.score = null, | |
| i = this.$stepQuestion.querySelectorAll(".delighted-web-question-score-number"), | |
| e = 0, | |
| n = i.length; e < n; e++) | |
| t = i[e], | |
| t.classList.remove("delighted-web-is-inactive"), | |
| t.classList.remove("delighted-web-is-active"); | |
| return this.$stepQuestion.querySelector(".delighted-web-question-score-numbers").classList.remove("delighted-web-is-active") | |
| } | |
| , | |
| e.prototype._confirmationText = function(t) { | |
| return this._confirmationTextByScore[t.number] | |
| } | |
| , | |
| e.prototype._skipComment = function(t) { | |
| return this.config.PREVIEW_MODE ? this.config.SKIP_COMMENT_STEP : t.redirect_after_comment | |
| } | |
| , | |
| e.prototype._injectAdditionalQuestionTemplate = function(t) { | |
| var e, n, i, r; | |
| this.$stepAdditionalQuestion.innerHTML = t, | |
| this._bindAdditionalQuestionSubmit(), | |
| i = this.$stepAdditionalQuestion.querySelector(".delighted-web-aq-prev-link"), | |
| i ? this._bindAdditionalQuestionPreviousLink(i) : (n = this.$stepAdditionalQuestion.querySelector(".delighted-web-aq-first-prev-link"), | |
| n && this._bindAdditionalQuestionPreviousLink(n)), | |
| this._fillInSavedAnswer(), | |
| new AdditionalQuestionsOptions(this.$stepAdditionalQuestion), | |
| r = this.$stepAdditionalQuestion.querySelector(".delighted-web-aq-toggle-panels-scale"), | |
| r && new AdditionalQuestionsScale(r), | |
| e = this.$stepAdditionalQuestion.querySelector("input[type=email],input[type=text],textarea:not(.is-hidden)"), | |
| e && e.focus() | |
| } | |
| , | |
| e.prototype._renderViewBeforeAdditionalQuestions = function(t) { | |
| var e; | |
| this.$stepAdditionalQuestion.setAttribute("aria-hidden", "true"), | |
| "comment" === t ? (this._showComment(this.score), | |
| "function" == typeof (e = this.opts).onRespond && e.onRespond({ | |
| token: this.token, | |
| score: this.score.number | |
| }), | |
| exports.utils.timeout(this.transitionDuration, this._setupTypingIndicator)) : this._showQuestion(), | |
| this._setupEventHandlers() | |
| } | |
| , | |
| e.prototype._getFormParams = function(t) { | |
| var e, n, i, r, o, a; | |
| for (n = t.querySelectorAll("input[type=email],input[type=text],textarea,input[type=checkbox]:checked,input[type=radio]:checked"), | |
| a = {}, | |
| i = 0, | |
| r = n.length; i < r; i++) | |
| e = n[i], | |
| "[]" === e.name.slice(-2) ? (o = e.name.slice(0, -2), | |
| a[o] ? a[o].push(e.value) : a[o] = [e.value]) : a[e.name] = e.value; | |
| return a | |
| } | |
| , | |
| e.prototype._bindAdditionalQuestionPreviousLink = function(t) { | |
| return this.dom.bindEvent(t, "click", function(e) { | |
| return function() { | |
| var n, i; | |
| if (!e.isLoadingAdditionalQuestion) | |
| return e.isLoadingAdditionalQuestion = !0, | |
| n = t.parentNode.getAttribute("data-action"), | |
| n ? (e._renderViewBeforeAdditionalQuestions(n), | |
| e.isLoadingAdditionalQuestion = !1) : (i = t.parentNode.dataset.url, | |
| exports.utils.ajaxSimpleCors({ | |
| method: "GET", | |
| url: i, | |
| withCredentials: /^(staging|preprod)/.test(e.config.ENV), | |
| callback: function(t) { | |
| if (e.isLoadingAdditionalQuestion = !1, | |
| t.aq_html) | |
| return e._injectAdditionalQuestionTemplate(t.aq_html) | |
| } | |
| })) | |
| } | |
| }(this)) | |
| } | |
| , | |
| e.prototype._bindAdditionalQuestionSubmit = function() { | |
| return this.dom.bindEvent(this.$stepAdditionalQuestion.querySelector("form"), "submit", function(t) { | |
| return function(e) { | |
| var n, i, r; | |
| if (!t.isLoadingAdditionalQuestion) | |
| return t.isLoadingAdditionalQuestion = !0, | |
| e.preventDefault(), | |
| t.$stepAdditionalQuestion.querySelector(".delighted-web-btn").classList.add("delighted-web-btn-disabled"), | |
| n = e.target, | |
| r = t._getFormParams(n), | |
| exports.utils.ajaxSimpleCors({ | |
| method: "PUT", | |
| url: n.action, | |
| body: r, | |
| qsOpts: { | |
| arrayFormat: "brackets" | |
| }, | |
| withCredentials: /^(staging|preprod)/.test(t.config.ENV), | |
| callback: function(e) { | |
| return t.isLoadingAdditionalQuestion = !1, | |
| e.aq_html ? (t._injectAdditionalQuestionTemplate(e.aq_html), | |
| t.config.STATE_MANAGER.setSavedAnswer(n.dataset.questionId, t._filterSavedAnswer(r))) : t._showThanks() | |
| } | |
| }), | |
| "function" == typeof (i = t.opts).onAqAnswer ? i.onAqAnswer({ | |
| token: t.token, | |
| question_id: n.dataset.questionId, | |
| answer: r | |
| }) : void 0 | |
| } | |
| }(this)) | |
| } | |
| , | |
| e.prototype._fillInSavedAnswer = function() { | |
| var t, e, n, i, r, o, a, s; | |
| if (t = this.$stepAdditionalQuestion.querySelector("form"), | |
| i = t.dataset.questionId, | |
| r = t.dataset.questionType, | |
| e = this.config.STATE_MANAGER.getSavedAnswer(i)) { | |
| switch (r) { | |
| case "scale": | |
| case "select_one": | |
| null != (o = t.querySelector("[name='additional_question_answer'][value='" + e.additional_question_answer + "']")) && (o.checked = !0); | |
| break; | |
| case "select_many": | |
| n = Array.prototype.slice.call(e.additional_question_answer || []), | |
| n.forEach(function() { | |
| return function(e) { | |
| var n; | |
| return null != (n = t.querySelector("[name='additional_question_answer[]'][value='" + e + "']")) ? n.checked = !0 : void 0 | |
| } | |
| }(this)); | |
| break; | |
| default: | |
| null != (a = t.querySelector("#additional_question_answer")) && (a.value = e.additional_question_answer) | |
| } | |
| s = Array.prototype.slice.call(t.querySelectorAll("textarea") || []), | |
| s.forEach(function() { | |
| return function(t) { | |
| if (e[t.name]) | |
| return t.value = e[t.name]; | |
| } | |
| }(this)) | |
| } | |
| } | |
| , | |
| e.prototype._filterSavedAnswer = function(t) { | |
| return Object.keys(t).filter(function(t) { | |
| return "_method" !== t | |
| }).reduce(function(e, n) { | |
| return e[n] = t[n], | |
| e | |
| }, {}) | |
| } | |
| , | |
| e.prototype._injectThankYouTemplate = function(t) { | |
| return this.$stepThanks.innerHTML = t, | |
| this._measure() | |
| } | |
| , | |
| e.prototype._setupEventHandlers = function() { | |
| var t, e, n, i, r; | |
| for (r = this.$stepQuestion.querySelectorAll(".delighted-web-question-score-number"), | |
| e = function(t) { | |
| return function(e) { | |
| return t.dom.bindEvent(e, "click", function(n) { | |
| var i, r, o; | |
| return n.preventDefault(), | |
| r = t._getScore(e), | |
| o = e.getAttribute("data-url"), | |
| exports.utils.ajaxSimpleCors({ | |
| url: o, | |
| withCredentials: /^(staging|preprod)/.test(t.config.ENV), | |
| callback: function(e) { | |
| return t.$stepComment.querySelector(".delighted-web-comment-submit").innerText = e.button_submit_label, | |
| e.aq_html && (t.hasAdditionalQuestions = !0, | |
| t._injectAdditionalQuestionTemplate(e.aq_html)), | |
| "thanks" !== t.state && t._injectThankYouTemplate(e.thank_you_html), | |
| t.$stepComment.querySelector(".delighted-web-comment").action = o, | |
| t._skipComment(e) ? (t.skipComment = !0, | |
| t.hasAdditionalQuestions ? t._showAdditionalQuestion() : t._showThanks()) : t._showComment(r) | |
| } | |
| }), | |
| "function" == typeof (i = t.opts).onRespond && i.onRespond({ | |
| token: t.token, | |
| score: r.number | |
| }), | |
| exports.utils.timeout(t.transitionDuration, t._setupTypingIndicator) | |
| }) | |
| } | |
| }(this), | |
| n = 0, | |
| i = r.length; n < i; n++) | |
| t = r[n], | |
| e(t); | |
| return this.dom.bindEvent(this.$stepComment.querySelector(".delighted-web-comment"), "submit", function(t) { | |
| return function(e) { | |
| var n, i, r, o, a, s, u; | |
| for (e.preventDefault(), | |
| i = e.target, | |
| o = {}, | |
| u = i.querySelectorAll("input, textarea"), | |
| a = 0, | |
| s = u.length; a < s; a++) | |
| n = u[a], | |
| o[n.name] = n.value; | |
| return exports.utils.ajaxSimpleCors({ | |
| method: "PUT", | |
| url: i.action, | |
| body: o, | |
| withCredentials: /^(staging|preprod)/.test(t.config.ENV) | |
| }), | |
| t.hasAdditionalQuestions ? t._showAdditionalQuestion() : t._showThanks(), | |
| "function" == typeof (r = t.opts).onComment ? r.onComment({ | |
| token: t.token | |
| }) : void 0 | |
| } | |
| }(this)), | |
| this.dom.bindEvent(this.$stepComment.querySelector(".delighted-web-comment-box"), "focus", this._pseudoFocusCommentBox), | |
| this.dom.bindEvent(this.$stepComment.querySelector(".delighted-web-comment-box"), "blur", this._pseudoBlurCommentBox), | |
| this.dom.bindEvent(this.$surveyClose, "click", function(t) { | |
| return function() { | |
| return t.hide({ | |
| source: "close" | |
| }) | |
| } | |
| }(this)), | |
| this.dom.bindEvent(this.$stepAdditionalQuestionClose, "click", function(t) { | |
| return function() { | |
| return t.hide({ | |
| source: "close_additional_questions" | |
| }) | |
| } | |
| }(this)), | |
| this.dom.bindEvent(document, "keyup", function(t) { | |
| return function(e) { | |
| if (27 === e.keyCode) { | |
| if (t._surveyIsVisible() && t._surveyHasFocus()) | |
| return t.hide({ | |
| source: "close" | |
| }); | |
| if (t._surveyAqIsVisible()) | |
| return t.hide({ | |
| source: "close_additional_questions" | |
| }) | |
| } | |
| } | |
| }(this)), | |
| this.dom.bindEvent(window, "click", function(t) { | |
| return function(e) { | |
| if (t.$rootModal && e.target === t.$rootModal) | |
| return t.hide({ | |
| source: "close_additional_questions" | |
| }) | |
| } | |
| }(this)) | |
| } | |
| , | |
| e.prototype._surveyHasFocus = function() { | |
| return this.$root.contains(document.activeElement) | |
| } | |
| , | |
| e.prototype._surveyIsVisible = function() { | |
| return this.dom.isVisible(this.$root) | |
| } | |
| , | |
| e.prototype._surveyAqIsVisible = function() { | |
| return this.dom.isVisible(this.$rootModal) | |
| } | |
| , | |
| e.prototype._pseudoFocusCommentBox = function() { | |
| return this.$stepComment.querySelector(".delighted-web-comment-box").classList.add("delighted-web-is-focus") | |
| } | |
| , | |
| e.prototype._pseudoBlurCommentBox = function() { | |
| return this.$stepComment.querySelector(".delighted-web-comment-box").classList.remove("delighted-web-is-focus") | |
| } | |
| , | |
| e.prototype._setupMask = function() { | |
| return null != this.opts.offsets.bottom && this.opts.offsets.bottom > 0 ? this.dom.setStyle(this.$root, "bottom", this.opts.offsets.bottom + "px") : this.dom.setStyle(this.$root, "overflow", "visible") | |
| } | |
| , | |
| e.prototype._computeMaskHeight = function(t) { | |
| return t + 16 | |
| } | |
| , | |
| e.prototype._resizeMask = function(t, e) { | |
| var n, i, r, o; | |
| return null == e && (e = !0), | |
| i = this.$root.offsetHeight, | |
| n = this._computeMaskHeight(t), | |
| r = n > i, | |
| o = function(t) { | |
| return function() { | |
| return t.dom.setStyle(t.$root, "height", n + "px"), | |
| t._measure() | |
| } | |
| }(this), | |
| r || !e ? o() : exports.utils.timeout(1e3 * this.transitionDuration, o) | |
| } | |
| , | |
| e.prototype._disableMask = function() { | |
| return this.dom.setStyle(this.$root, "height", "auto"), | |
| this.dom.setStyle(this.$root, "overflow", "visible"), | |
| this.dom.setStyle(this.$root, "bottom", 0) | |
| } | |
| , | |
| e.prototype._setupTypingIndicator = function() { | |
| if (!this.opts.disableTypingIndicator && !this.hasSetupTypingIndicator) | |
| return this.hasSetupTypingIndicator = !0, | |
| new exports.TypingIndicator(this.config,{ | |
| $el: this.$stepComment.querySelector(".delighted-web-comment-box") | |
| }) | |
| } | |
| , | |
| e | |
| }() | |
| } | |
| .call(this), | |
| function() { | |
| var t = function(t, e) { | |
| return function() { | |
| return t.apply(e, arguments) | |
| } | |
| } | |
| , e = function(t, e) { | |
| function i() { | |
| this.constructor = t | |
| } | |
| for (var r in e) | |
| n.call(e, r) && (t[r] = e[r]); | |
| return i.prototype = e.prototype, | |
| t.prototype = new i, | |
| t.__super__ = e.prototype, | |
| t | |
| } | |
| , n = {}.hasOwnProperty; | |
| exports.DisplayStrategyDesktop = function(n) { | |
| function i() { | |
| this._autoSizeQuestionLabel = t(this._autoSizeQuestionLabel, this), | |
| this._animateBtns = t(this._animateBtns, this), | |
| this._resetBtnsAnimation = t(this._resetBtnsAnimation, this), | |
| this._setupEventHandlers = t(this._setupEventHandlers, this), | |
| this._injectTemplate = t(this._injectTemplate, this), | |
| this._showThanks = t(this._showThanks, this), | |
| this._showAdditionalQuestion = t(this._showAdditionalQuestion, this), | |
| this._hideComment = t(this._hideComment, this), | |
| this._showComment = t(this._showComment, this), | |
| this._showQuestion = t(this._showQuestion, this), | |
| this.hideModal = t(this.hideModal, this), | |
| this.hide = t(this.hide, this), | |
| this.show = t(this.show, this), | |
| i.__super__.constructor.apply(this, arguments), | |
| this.autoHideDelay = 2 * this.timingFactor, | |
| this.opacityTransitionDuration = .15 * this.timingFactor, | |
| this.opacityTransitionEasing = "ease-in-out" | |
| } | |
| return e(i, n), | |
| i.prototype.show = function() { | |
| return this._getTemplate(function(t) { | |
| return function(e) { | |
| return t._injectTemplate(e), | |
| t._measure(), | |
| t._setupEventHandlers(), | |
| t._showQuestion() | |
| } | |
| }(this)) | |
| } | |
| , | |
| i.prototype.hide = function(t) { | |
| return null == t && (t = {}), | |
| this.state = "hidden", | |
| exports.requestAnimationFrame(function(e) { | |
| return function() { | |
| return e.hideModal(), | |
| e.dom.setOpacity(e.$survey, 1), | |
| exports.requestAnimationFrame(function() { | |
| var n; | |
| return e.dom.transition(e.$survey, "transform " + e.transitionDuration + "s " + e.transitionEasing + " 0s, opacity " + e.opacityTransitionDuration + "s " + e.opacityTransitionEasing + " " + (e.transitionDuration - e.opacityTransitionDuration) / 5 + "s"), | |
| e.dom.setOpacity(e.$survey, 0), | |
| e.dom.translateY(e.$survey, e.heightSurvey), | |
| e._remove(), | |
| "function" == typeof (n = e.opts).onHide ? n.onHide({ | |
| token: e.token, | |
| source: t.source | |
| }) : void 0 | |
| }) | |
| } | |
| }(this)) | |
| } | |
| , | |
| i.prototype.hideModal = function() { | |
| return exports.requestAnimationFrame(function(t) { | |
| return function() { | |
| if (t.$rootModal) | |
| return t.dom.setOpacity(t.$rootModal, 1), | |
| exports.requestAnimationFrame(function() { | |
| if (t.$rootModal) | |
| return t.dom.transition(t.$rootModal, "opacity " + t.opacityTransitionDuration + "s " + t.opacityTransitionEasing + " " + (t.transitionDuration - t.opacityTransitionDuration) / 5 + "s"), | |
| t.dom.setOpacity(t.$rootModal, 0), | |
| t._removeModal() | |
| }) | |
| } | |
| }(this)) | |
| } | |
| , | |
| i.prototype._showQuestion = function(t) { | |
| return "comment" === this.state ? void this._hideComment() : (this.state = "question", | |
| exports.requestAnimationFrame(function(e) { | |
| return function() { | |
| return e.$stepQuestion.classList.add("delighted-web-is-shown"), | |
| e._autoSizeQuestionLabel(), | |
| e._measure(), | |
| e.dom.setStyle(e.$root, "visibility", "visible"), | |
| e.dom.transition(e.$survey, "none"), | |
| e.dom.translateY(e.$survey, e.heightSurvey), | |
| exports.requestAnimationFrame(function() { | |
| var n; | |
| return e.opts.disableShowAnimations || e.dom.transition(e.$survey, "transform " + e.transitionDuration + "s " + e.transitionEasing + " 0s"), | |
| e.dom.setOpacity(e.$survey, 1), | |
| e.dom.translateY(e.$survey, e.heightSurvey - e.heightStepQuestion), | |
| e.dom.translateY(e.$surveyPowered, -(e.heightSurvey - e.heightStepQuestion)), | |
| e._resizeMask(e.heightStepQuestion), | |
| e.opts.disableShowAnimations || e._animateBtns(), | |
| "function" == typeof (n = e.opts).onShow && n.onShow({ | |
| token: e.token | |
| }), | |
| "function" == typeof t ? t() : void 0 | |
| }) | |
| } | |
| }(this))) | |
| } | |
| , | |
| i.prototype._showComment = function(t) { | |
| return this.state = "comment", | |
| exports.requestAnimationFrame(function(e) { | |
| return function() { | |
| var n, i; | |
| return e._setScore(t), | |
| e.opts.disableShowCommentAnimations || e.dom.transition(e.$survey, "transform " + e.transitionDuration + "s " + e.transitionEasing + " 0s"), | |
| e.dom.translateY(e.$survey, e.heightSurvey - e.heightStepQuestion - e.heightStepComment), | |
| e.opts.disableShowCommentAnimations || e.dom.transition(e.$surveyPowered, "transform " + e.transitionDuration + "s " + e.transitionEasing + " 0s"), | |
| e.dom.translateY(e.$surveyPowered, -(e.heightSurvey - e.heightStepQuestion - e.heightStepComment)), | |
| e._resizeMask(e.heightStepQuestion + e.heightStepComment), | |
| i = e.opts.disableShowCommentAnimations ? 0 : 1e3 * e.transitionDuration, | |
| exports.utils.timeout(i, function() { | |
| return e.$stepComment.querySelector(".delighted-web-comment-box").focus() | |
| }), | |
| e._pseudoFocusCommentBox(), | |
| e.$stepComment.querySelector(".delighted-web-comment-box").setAttribute("tabindex", "0"), | |
| e.$stepComment.querySelector(".delighted-web-comment-submit").setAttribute("tabindex", "0"), | |
| "function" == typeof (n = e.opts).onShowComment ? n.onShowComment() : void 0 | |
| } | |
| }(this)) | |
| } | |
| , | |
| i.prototype._hideComment = function() { | |
| return "comment" !== this.state ? void this.config.LOGGER.error("Must be in 'comment' state to hide comment (was '" + this.state + "').") : (this.state = "question", | |
| exports.requestAnimationFrame(function(t) { | |
| return function() { | |
| return t.$stepComment.querySelector(".delighted-web-comment-box").blur(), | |
| t.dom.transition(t.$survey, "transform " + t.transitionDuration + "s " + t.transitionEasing + " 0s"), | |
| t.dom.translateY(t.$survey, t.heightSurvey - t.heightStepQuestion), | |
| t.dom.transition(t.$surveyPowered, "transform " + t.transitionDuration + "s " + t.transitionEasing + " 0s"), | |
| t.dom.translateY(t.$surveyPowered, -(t.heightSurvey - t.heightStepQuestion)), | |
| t._resizeMask(t.heightStepQuestion) | |
| } | |
| }(this))) | |
| } | |
| , | |
| i.prototype._showAdditionalQuestion = function() { | |
| return this.state = "additional_question", | |
| exports.requestAnimationFrame(function(t) { | |
| return function() { | |
| var e; | |
| return t.dom.setOpacity(t.$stepQuestion, 1), | |
| t.dom.setOpacity(t.$stepComment, 1), | |
| t.dom.setOpacity(t.$rootModal, 0), | |
| t.dom.setStyle(t.$rootModal, "visibility", "visible"), | |
| t._measure(), | |
| e = t.skipComment ? 0 : t.heightStepComment, | |
| t.dom.transition(t.$survey, "none"), | |
| t.dom.translateY(t.$survey, t.heightSurvey - t.heightStepQuestion - e), | |
| t.dom.transition(t.$surveyPowered, "none"), | |
| t.dom.translateY(t.$surveyPowered, -(t.heightSurvey - t.heightStepQuestion - e)), | |
| exports.requestAnimationFrame(function() { | |
| return t.dom.transition(t.$rootModal, "opacity " + t.opacityTransitionDuration + "s " + t.opacityTransitionEasing + " " + (t.transitionDuration - t.opacityTransitionDuration) / 5 + "s"), | |
| t.dom.setOpacity(t.$rootModal, 1), | |
| t.dom.transition(t.$stepQuestion, "opacity " + t.opacityTransitionDuration + "s " + t.opacityTransitionEasing + " 0s"), | |
| t.dom.setOpacity(t.$stepQuestion, 0), | |
| t.dom.transition(t.$stepComment, "opacity " + t.opacityTransitionDuration + "s " + t.opacityTransitionEasing + " 0s"), | |
| t.dom.setOpacity(t.$stepComment, 0), | |
| t.dom.transition(t.$survey, "transform " + t.transitionDuration + "s " + t.transitionEasing + " 0s"), | |
| t.dom.translateY(t.$survey, t.heightSurvey), | |
| t.dom.transition(t.$surveyPowered, "transform " + t.transitionDuration + "s " + t.transitionEasing + " 0s"), | |
| t.dom.translateY(t.$surveyPowered, -t.heightSurvey), | |
| t._resizeMask(t.heightSurvey - t.heightStepQuestion - t.heightStepComment) | |
| }) | |
| } | |
| }(this)) | |
| } | |
| , | |
| i.prototype._showThanks = function() { | |
| return this.state = "thanks", | |
| exports.requestAnimationFrame(function(t) { | |
| return function() { | |
| var e, n, i; | |
| return t.dom.setOpacity(t.$stepQuestion, 1), | |
| t.dom.setOpacity(t.$stepComment, 1), | |
| t.dom.setOpacity(t.$stepThanks, 0), | |
| t.hideModal(), | |
| n = t.skipComment ? 0 : t.heightStepComment, | |
| e = t.$stepThanks.querySelector(".delighted-web-thanks"), | |
| i = e.classList.contains("delighted-web-thanks-custom"), | |
| t.dom.setStyle(e, "display", "block"), | |
| t._measure(), | |
| t.dom.transition(t.$survey, "none"), | |
| t.dom.translateY(t.$survey, t.heightSurvey - t.heightStepQuestion - n), | |
| t.dom.transition(t.$surveyPowered, "none"), | |
| t.dom.translateY(t.$surveyPowered, -(t.heightSurvey - t.heightStepQuestion - n)), | |
| i || (t.dom.setOpacity(t.$surveyPowered, 1), | |
| t.dom.setOpacity(t.$surveyClose, 1)), | |
| exports.requestAnimationFrame(function() { | |
| if (t.dom.transition(t.$stepQuestion, "opacity " + t.opacityTransitionDuration + "s " + t.opacityTransitionEasing + " 0s"), | |
| t.dom.setOpacity(t.$stepQuestion, 0), | |
| t.dom.transition(t.$stepComment, "opacity " + t.opacityTransitionDuration + "s " + t.opacityTransitionEasing + " 0s"), | |
| t.dom.setOpacity(t.$stepComment, 0), | |
| t.dom.transition(t.$stepThanks, "opacity " + t.opacityTransitionDuration + "s " + t.opacityTransitionEasing + " 0s"), | |
| t.dom.setOpacity(t.$stepThanks, 1), | |
| t.dom.translateY(t.$stepThanks, -(t.heightStepQuestion + t.heightStepComment)), | |
| t.dom.transition(t.$survey, "transform " + t.transitionDuration + "s " + t.transitionEasing + " 0s"), | |
| t.dom.translateY(t.$survey, t.heightSurvey - t.heightStepThanks), | |
| t.dom.transition(t.$surveyPowered, "transform " + t.transitionDuration + "s " + t.transitionEasing + " 0s"), | |
| t.dom.translateY(t.$surveyPowered, -(t.heightSurvey - t.heightStepThanks)), | |
| t._resizeMask(t.heightSurvey - t.heightStepQuestion - t.heightStepComment), | |
| !i) | |
| return t.dom.transition(t.$surveyPowered, "opacity " + t.opacityTransitionDuration + "s " + t.opacityTransitionEasing + " 0s"), | |
| t.dom.setOpacity(t.$surveyPowered, 0), | |
| t.dom.transition(t.$surveyClose, "opacity " + t.opacityTransitionDuration + "s " + t.opacityTransitionEasing + " 0s"), | |
| t.dom.setOpacity(t.$surveyClose, 0), | |
| exports.utils.timeout(1e3 * (t.transitionDuration + t.autoHideDelay), function() { | |
| return t.hide({ | |
| source: "auto_hide" | |
| }) | |
| }) | |
| }) | |
| } | |
| }(this)) | |
| } | |
| , | |
| i.prototype._injectTemplate = function() { | |
| if (i.__super__._injectTemplate.apply(this, arguments), | |
| this.dom.setStyle(this.$survey, "display", "block"), | |
| this.$root.classList.add("delighted-web-desktop"), | |
| this.$rootModal.classList.add("delighted-web-desktop"), | |
| this.opts.darkBackground === !0) | |
| return this.$rootModal.classList.add("delighted-web-modal-dark") | |
| } | |
| , | |
| i.prototype._setupEventHandlers = function() { | |
| var t, e; | |
| return i.__super__._setupEventHandlers.apply(this, arguments), | |
| this.dom.bindEvent(this.$root.querySelector(".delighted-web-label-question"), "click", function(t) { | |
| return function() { | |
| return exports.requestAnimationFrame(function() { | |
| return t._resetBtnsAnimation(), | |
| exports.requestAnimationFrame(function() { | |
| return t._animateBtns() | |
| }) | |
| }) | |
| } | |
| }(this)), | |
| t = this.$stepComment.querySelector(".delighted-web-comment-box"), | |
| e = this.$root.querySelector(".delighted-web-label-comment"), | |
| this.dom.bindEvent(t, "input", function(n) { | |
| return function() { | |
| var i; | |
| return i = "" === t.value ? "block" : "none", | |
| n.dom.setStyle(e, "display", i) | |
| } | |
| }(this)) | |
| } | |
| , | |
| i.prototype._resetBtnsAnimation = function() { | |
| var t, e, n, i, r, o, a; | |
| if (this.config.BROWSER_SUPPORT.features.animation) { | |
| for (e = this.$stepQuestion.querySelectorAll(".delighted-web-question-score-number"), | |
| n = e.length, | |
| a = [], | |
| r = i = 0, | |
| o = e.length; i < o; r = ++i) | |
| t = e[r], | |
| a.push(this.dom.setStyle(t, "animation", "none")); | |
| return a | |
| } | |
| } | |
| , | |
| i.prototype._animateBtns = function() { | |
| var t, e, n, i, r, o, a, s, u, l; | |
| if (this.config.BROWSER_SUPPORT.features.animation) { | |
| for (e = this.$stepQuestion.querySelectorAll(".delighted-web-question-score-number"), | |
| i = e.length, | |
| n = this.opts.buttonAnimationDirection, | |
| r = (.65 * this.transitionDuration).toFixed(3), | |
| l = [], | |
| a = o = 0, | |
| s = e.length; o < s; a = ++o) | |
| t = e[a], | |
| u = n > 0 ? a : i - a, | |
| l.push(this.dom.setStyle(t, "animation", "delighted-web-btn-anim " + r + "s linear " + (u * r / (i - 1)).toFixed(3) + "s 1 normal both")); | |
| return l | |
| } | |
| } | |
| , | |
| i.prototype._autoSizeQuestionLabel = function() { | |
| var t, e, n, i; | |
| return n = this.$root.querySelector(".delighted-web-question .delighted-web-column"), | |
| t = this.$root.querySelector(".delighted-web-label-question"), | |
| e = t.cloneNode(!0), | |
| this.dom.setStyle(e, "position", "absolute"), | |
| this.dom.setStyle(e, "white-space", "nowrap"), | |
| this.dom.setStyle(e, "opacity", "0"), | |
| t.parentNode.appendChild(e), | |
| i = e.offsetWidth, | |
| t.parentNode.removeChild(e), | |
| i < 650 ? this.dom.setStyle(n, "max-width", "none") : this.dom.clearInlineStyle(n, "max-width") | |
| } | |
| , | |
| i | |
| }(exports.DisplayStrategy) | |
| } | |
| .call(this), | |
| function() { | |
| var t, e, n, i = function(t, e) { | |
| return function() { | |
| return t.apply(e, arguments) | |
| } | |
| }; | |
| t = 0, | |
| e = 1, | |
| n = function() { | |
| function n() { | |
| this.disengage = i(this.disengage, this), | |
| this.engage = i(this.engage, this), | |
| this.inferState = i(this.inferState, this), | |
| this.isEngaged = !1, | |
| this.originals = {} | |
| } | |
| return n.prototype.inferState = function(n) { | |
| return n.config.BROWSER_SUPPORT.platform.isIos && n.windowHeight < .94 * n.availHeight ? t : e | |
| } | |
| , | |
| n.prototype.engage = function(t) { | |
| var n; | |
| if (!this.isEngaged) | |
| return n = t === e ? "100px" : "101vh", | |
| this.originals.bodyHeight = document.body.style.height, | |
| this.originals.bodyOverflow = document.body.style.overflow, | |
| document.body.style.height = n, | |
| document.body.style.overflow = "hidden", | |
| this.originals.htmlHeight = document.documentElement.style.height, | |
| this.originals.htmlOverflow = document.documentElement.style.overflow, | |
| document.documentElement.style.height = n, | |
| document.documentElement.style.overflow = "hidden", | |
| this.originals.windowScrollX = scrollX, | |
| this.originals.windowScrollY = scrollY, | |
| window.scrollX = 0, | |
| window.scrollY = 0, | |
| this.isEngaged = !0 | |
| } | |
| , | |
| n.prototype.disengage = function() { | |
| if (this.isEngaged) | |
| return document.body.style.height = this.originals.bodyHeight, | |
| document.body.style.overflow = this.originals.bodyOverflow, | |
| document.documentElement.style.height = this.originals.htmlHeight, | |
| document.documentElement.style.overflow = this.originals.htmlOverflow, | |
| scrollTo(this.originals.windowScrollX, this.originals.windowScrollY), | |
| this.isEngaged = !1 | |
| } | |
| , | |
| n | |
| }(), | |
| exports.ScrollLock = new n | |
| } | |
| .call(this), | |
| function() { | |
| var t = function(t, e) { | |
| return function() { | |
| return t.apply(e, arguments) | |
| } | |
| } | |
| , e = function(t, e) { | |
| function i() { | |
| this.constructor = t | |
| } | |
| for (var r in e) | |
| n.call(e, r) && (t[r] = e[r]); | |
| return i.prototype = e.prototype, | |
| t.prototype = new i, | |
| t.__super__ = e.prototype, | |
| t | |
| } | |
| , n = {}.hasOwnProperty; | |
| exports.DisplayStrategyTouch = function(n) { | |
| function i() { | |
| this._optimizeCommentBoxHeight = t(this._optimizeCommentBoxHeight, this), | |
| this._computeMaskHeight = t(this._computeMaskHeight, this), | |
| this._inferScrollState = t(this._inferScrollState, this), | |
| this._setupEventHandlers = t(this._setupEventHandlers, this), | |
| this._measure = t(this._measure, this), | |
| this._injectTemplate = t(this._injectTemplate, this), | |
| this._hideToast = t(this._hideToast, this), | |
| this._showThanks = t(this._showThanks, this), | |
| this._showAdditionalQuestion = t(this._showAdditionalQuestion, this), | |
| this._hideComment = t(this._hideComment, this), | |
| this._showComment = t(this._showComment, this), | |
| this._hideQuestion = t(this._hideQuestion, this), | |
| this._showQuestion = t(this._showQuestion, this), | |
| this._showSurvey = t(this._showSurvey, this), | |
| this._hideSurvey = t(this._hideSurvey, this), | |
| this._showToast = t(this._showToast, this), | |
| this.hideModal = t(this.hideModal, this), | |
| this.hide = t(this.hide, this), | |
| this.show = t(this.show, this), | |
| i.__super__.constructor.apply(this, arguments), | |
| this.autoHideDelay = 1.5 * this.timingFactor | |
| } | |
| return e(i, n), | |
| i.prototype.show = function() { | |
| return this._getTemplate(function(t) { | |
| return function(e) { | |
| return t._injectTemplate(e), | |
| t._measure(), | |
| t._setupEventHandlers(), | |
| t._showToast() | |
| } | |
| }(this)) | |
| } | |
| , | |
| i.prototype.hide = function(t) { | |
| return null == t && (t = {}), | |
| this.state = "hidden", | |
| exports.requestAnimationFrame(function(e) { | |
| return function() { | |
| var n; | |
| return e.hideModal(), | |
| e.opts.disableScrollLock || exports.ScrollLock.disengage(), | |
| e.dom.transition(e.$survey, "transform " + e.transitionDuration + "s " + e.transitionEasing + " 0s"), | |
| e.dom.translateY(e.$survey, e.heightSurvey), | |
| e._remove(), | |
| "function" == typeof (n = e.opts).onHide ? n.onHide({ | |
| token: e.token, | |
| source: t.source | |
| }) : void 0 | |
| } | |
| }(this)) | |
| } | |
| , | |
| i.prototype.hideModal = function() { | |
| return this._removeModal() | |
| } | |
| , | |
| i.prototype._showToast = function() { | |
| return this.state = "toast", | |
| exports.requestAnimationFrame(function(t) { | |
| return function() { | |
| return t.dom.setStyle(t.$root, "visibility", "visible"), | |
| t.dom.translateY(t.$toast, t.heightToast), | |
| exports.requestAnimationFrame(function() { | |
| var e; | |
| return t.opts.disableShowAnimations || t.dom.transition(t.$toast, "transform " + t.transitionDuration + "s " + t.transitionEasing + " 0s"), | |
| t.dom.translateY(t.$toast, 0), | |
| t._resizeMask(t.heightToast), | |
| "function" == typeof (e = t.opts).onShow ? e.onShow({ | |
| token: t.token | |
| }) : void 0 | |
| }) | |
| } | |
| }(this)) | |
| } | |
| , | |
| i.prototype._hideSurvey = function(t) { | |
| return window.clearTimeout(this.showSurveyTimeout), | |
| this.surveyShowing = !1, | |
| exports.requestAnimationFrame(function(e) { | |
| return function() { | |
| return e.dom.setStyle(e.$toast, "display", "block"), | |
| e.dom.translateY(e.$toast, 0), | |
| e.dom.transition(e.$survey, "transform " + e.transitionDuration + "s " + e.transitionEasing + " 0s"), | |
| e.dom.translateY(e.$survey, e.heightSurvey), | |
| e._resizeMask(e.heightToast), | |
| "function" == typeof t ? t() : void 0 | |
| } | |
| }(this)) | |
| } | |
| , | |
| i.prototype._showSurvey = function(t) { | |
| return this.surveyShowing ? "function" == typeof t ? t() : void 0 : (this.surveyShowing = !0, | |
| exports.requestAnimationFrame(function(e) { | |
| return function() { | |
| var n; | |
| return n = e._inferScrollState(), | |
| e.dom.setStyle(e.$survey, "display", "block"), | |
| e._measure(), | |
| e.dom.transition(e.$toast, "none"), | |
| e.dom.translateY(e.$toast, 0), | |
| e.dom.transition(e.$survey, "none"), | |
| e.dom.translateY(e.$survey, e.heightSurvey), | |
| exports.requestAnimationFrame(function() { | |
| var i; | |
| return e.dom.transition(e.$toast, "transform " + e.transitionDuration + "s " + e.transitionEasing + " 0s"), | |
| e.dom.translateY(e.$toast, e.heightToast), | |
| e.dom.transition(e.$survey, "transform " + e.transitionDuration + "s " + e.transitionEasing + " 0s"), | |
| e.dom.translateY(e.$survey, 0), | |
| e._disableMask(), | |
| i = 1e3 * e.transitionDuration, | |
| e.showSurveyTimeout = exports.utils.timeout(i, function() { | |
| return e.opts.disableScrollLock || exports.ScrollLock.engage(n), | |
| e.dom.setStyle(e.$toast, "display", "none"), | |
| "function" == typeof t ? t() : void 0 | |
| }) | |
| }) | |
| } | |
| }(this))) | |
| } | |
| , | |
| i.prototype._showQuestion = function(t) { | |
| return this.dom.setStyle(this.$root, "display", "block"), | |
| this.dom.setStyle(this.$rootModal, "display", "none"), | |
| this.state = "question", | |
| exports.requestAnimationFrame(function(e) { | |
| return function() { | |
| return e.$surveyInner.classList.add("delighted-web-is-questioning"), | |
| e.$surveyInner.classList.remove("delighted-web-is-commenting"), | |
| e.$surveyInner.classList.remove("delighted-web-is-thanking"), | |
| e.$stepQuestion.classList.add("delighted-web-is-shown"), | |
| e.$stepComment.classList.remove("delighted-web-is-shown"), | |
| e.$stepThanks.classList.remove("delighted-web-is-shown"), | |
| e.dom.setStyle(e.$stepQuestion, "display", "flex"), | |
| e.dom.setStyle(e.$stepComment, "display", "none"), | |
| e.dom.setStyle(e.$stepThanks, "display", "none"), | |
| e.$stepQuestion.setAttribute("aria-hidden", "false"), | |
| e.$stepComment.setAttribute("aria-hidden", "true"), | |
| e.$stepAdditionalQuestion.setAttribute("aria-hidden", "true"), | |
| e.$stepThanks.setAttribute("aria-hidden", "true"), | |
| e._showSurvey(t) | |
| } | |
| }(this)) | |
| } | |
| , | |
| i.prototype._hideQuestion = function() { | |
| return "question" !== this.state ? void this.config.LOGGER.error("Must be in 'question' state to hide question (was '" + this.state + "').") : (this.state = "toast", | |
| this._hideSurvey(function(t) { | |
| return function() { | |
| return t.$surveyInner.classList.remove("delighted-web-is-questioning"), | |
| t.$surveyInner.classList.remove("delighted-web-is-commenting"), | |
| t.$surveyInner.classList.remove("delighted-web-is-thanking"), | |
| t.$stepQuestion.classList.remove("delighted-web-is-shown"), | |
| t.$stepComment.classList.remove("delighted-web-is-shown"), | |
| t.$stepThanks.classList.remove("delighted-web-is-shown"), | |
| t.dom.setStyle(t.$stepQuestion, "display", "none"), | |
| t.dom.setStyle(t.$stepComment, "display", "none"), | |
| t.dom.setStyle(t.$stepThanks, "display", "none") | |
| } | |
| }(this))) | |
| } | |
| , | |
| i.prototype._showComment = function(t) { | |
| return this.state = "comment", | |
| this._setScore(t), | |
| this._optimizeCommentBoxHeight(), | |
| this.dom.setStyle(this.$root, "display", "block"), | |
| this.dom.setStyle(this.$rootModal, "display", "none"), | |
| this.dom.setStyle(this.$stepQuestion, "display", "none"), | |
| this.dom.setStyle(this.$stepComment, "display", "block"), | |
| this.dom.setStyle(this.$stepThanks, "display", "none"), | |
| this.$stepComment.setAttribute("aria-hidden", "false"), | |
| this._measure(), | |
| this.$surveyInner.classList.remove("delighted-web-is-questioning"), | |
| this.$surveyInner.classList.add("delighted-web-is-commenting"), | |
| this.$surveyInner.classList.remove("delighted-web-is-thanking"), | |
| this.$stepComment.querySelector(".delighted-web-comment-box").focus(), | |
| this._showSurvey(this.opts.onShowComment) | |
| } | |
| , | |
| i.prototype._hideComment = function() { | |
| return "comment" !== this.state ? void this.config.LOGGER.error("Must be in 'comment' state to hide comment (was '" + this.state + "').") : (this.state = "toast", | |
| this._hideSurvey(function(t) { | |
| return function() { | |
| return t.$surveyInner.classList.remove("delighted-web-is-questioning"), | |
| t.$surveyInner.classList.remove("delighted-web-is-commenting"), | |
| t.$surveyInner.classList.remove("delighted-web-is-thanking"), | |
| t.$stepQuestion.classList.remove("delighted-web-is-shown"), | |
| t.$stepComment.classList.remove("delighted-web-is-shown"), | |
| t.$stepThanks.classList.remove("delighted-web-is-shown"), | |
| t.dom.setStyle(t.$stepQuestion, "display", "none"), | |
| t.dom.setStyle(t.$stepComment, "display", "none"), | |
| t.dom.setStyle(t.$stepThanks, "display", "none") | |
| } | |
| }(this))) | |
| } | |
| , | |
| i.prototype._showAdditionalQuestion = function() { | |
| return this.state = "additional_question", | |
| exports.requestAnimationFrame(function(t) { | |
| return function() { | |
| return t.dom.setStyle(t.$root, "display", "none"), | |
| t.dom.setStyle(t.$rootModal, "display", "block"), | |
| t.dom.setStyle(t.$rootModal, "visibility", "visible"), | |
| t.$stepQuestion.setAttribute("aria-hidden", "true"), | |
| t.$stepComment.setAttribute("aria-hidden", "true"), | |
| t.$stepAdditionalQuestion.setAttribute("aria-hidden", "false"), | |
| t.$stepThanks.setAttribute("aria-hidden", "true") | |
| } | |
| }(this)) | |
| } | |
| , | |
| i.prototype._showThanks = function() { | |
| return this.state = "thanks", | |
| exports.requestAnimationFrame(function(t) { | |
| return function() { | |
| var e, n; | |
| if (t.dom.setStyle(t.$root, "display", "block"), | |
| t.dom.setStyle(t.$rootModal, "display", "none"), | |
| t.dom.setStyle(t.$stepQuestion, "display", "none"), | |
| t.dom.setStyle(t.$stepComment, "display", "none"), | |
| t.dom.setStyle(t.$stepThanks, "display", "flex"), | |
| t._removeModal(), | |
| t.$surveyInner.classList.remove("delighted-web-is-commenting"), | |
| t.$surveyInner.classList.add("delighted-web-is-thanking"), | |
| t.$stepQuestion.setAttribute("aria-hidden", "true"), | |
| t.$stepComment.setAttribute("aria-hidden", "true"), | |
| t.$stepAdditionalQuestion.setAttribute("aria-hidden", "true"), | |
| t.$stepThanks.setAttribute("aria-hidden", "false"), | |
| e = t.$stepThanks.querySelector(".delighted-web-thanks"), | |
| n = e.classList.contains("delighted-web-thanks-custom"), | |
| t.dom.setStyle(e, "display", "block"), | |
| t._measure(), | |
| !n) | |
| return t.dom.setOpacity(t.$surveyClose, 1), | |
| exports.requestAnimationFrame(function() { | |
| return t.dom.transition(t.$surveyClose, "opacity " + t.transitionDuration + "s " + t.transitionEasing + " 0s"), | |
| t.dom.setOpacity(t.$surveyClose, 0), | |
| exports.utils.timeout(1e3 * (t.transitionDuration + t.autoHideDelay), function() { | |
| return t.hide({ | |
| source: "auto_hide" | |
| }) | |
| }) | |
| }) | |
| } | |
| }(this)) | |
| } | |
| , | |
| i.prototype._hideToast = function() { | |
| return this.state = "initial", | |
| exports.requestAnimationFrame(function(t) { | |
| return function() { | |
| return t.dom.transition(t.$toast, "transform " + t.transitionDuration + "s " + t.transitionEasing + " 0s"), | |
| t.dom.translateY(t.$toast, t.heightToast) | |
| } | |
| }(this)) | |
| } | |
| , | |
| i.prototype._injectTemplate = function() { | |
| return i.__super__._injectTemplate.apply(this, arguments), | |
| this.$toast = this.$root.querySelector(".delighted-web-toast"), | |
| this.$toastClose = this.$root.querySelector(".delighted-web-toast-close"), | |
| this.dom.setStyle(this.$toast, "display", "block"), | |
| this.opts.offsets.top && this.dom.setStyle(this.$surveyInner, "margin-top", this.opts.offsets.top + "px"), | |
| this.opts.offsets.top && this.dom.setStyle(this.$surveyClose, "margin-top", this.opts.offsets.top + "px"), | |
| "asc" === this.opts.mobileScoreOrdering && this.dom.reverseChildren(this.$root.querySelector(".delighted-web-question-score-numbers")), | |
| this.$root.classList.add("delighted-web-touch"), | |
| this.$rootModal.classList.add("delighted-web-touch") | |
| } | |
| , | |
| i.prototype._measure = function() { | |
| return i.__super__._measure.apply(this, arguments), | |
| this.widthToast = this.$toast.offsetWidth, | |
| this.widthToastClose = this.$toastClose.offsetWidth, | |
| this.heightToast = this.$toast.offsetHeight | |
| } | |
| , | |
| i.prototype._setupEventHandlers = function() { | |
| return i.__super__._setupEventHandlers.apply(this, arguments), | |
| this.dom.bindEvent(this.$stepComment.querySelector(".delighted-web-comment-prev-link"), "click", function(t) { | |
| return function() { | |
| return t._showQuestion() | |
| } | |
| }(this)), | |
| this.dom.bindEvent(this.$toast, "click", function(t) { | |
| return function(e) { | |
| var n; | |
| return t._measure(), | |
| e.clientX < t.widthToast - t.widthToastClose ? t._showQuestion() : (t._hideToast(), | |
| t._remove(), | |
| t._removeModal(), | |
| "function" == typeof (n = t.opts).onHide ? n.onHide({ | |
| token: t.token, | |
| source: "toast_close" | |
| }) : void 0) | |
| } | |
| }(this)), | |
| this.dom.bindEvent(window, "orientationchange", function(t) { | |
| return function() { | |
| return t._optimizeCommentBoxHeight() | |
| } | |
| }(this)), | |
| this.dom.bindEvent(window, "resize", this._optimizeCommentBoxHeight()) | |
| } | |
| , | |
| i.prototype._inferScrollState = function() { | |
| return exports.ScrollLock.inferState({ | |
| config: this.config, | |
| windowHeight: this.dom.calcWindowHeight(), | |
| availHeight: this.dom.calcScreenHeight() | |
| }) | |
| } | |
| , | |
| i.prototype._computeMaskHeight = function() { | |
| return i.__super__._computeMaskHeight.apply(this, arguments) - 50 | |
| } | |
| , | |
| i.prototype._optimizeCommentBoxHeight = function() { | |
| var t; | |
| return t = function(t) { | |
| return function() { | |
| var e, n, i, r, o, a, s, u, l, c, d, h; | |
| return e = 24, | |
| l = 6, | |
| d = t.dom.calcWindowHeight(), | |
| h = t.dom.calcWindowWidth(), | |
| u = 2 * e, | |
| n = 6 * e, | |
| s = 10 * e, | |
| i = t.config.BROWSER_SUPPORT.platform.isIpad, | |
| r = t.config.BROWSER_SUPPORT.platform.isIphone, | |
| o = t.config.BROWSER_SUPPORT.platform.isIpod, | |
| a = "portrait" === t.dom.detectOrientation(), | |
| c = i ? a ? Math.floor(.4 * d) : Math.floor(.2 * d) : r || o ? a ? Math.floor(.3 * d) : Math.floor(.1 * d) : n, | |
| c -= c % e, | |
| Math.min(s, Math.max(u, c)) + 2 * l | |
| } | |
| }(this), | |
| this.dom.setStyle(this.$stepComment.querySelector(".delighted-web-comment-box"), "height", t() + "px") | |
| } | |
| , | |
| i | |
| }(exports.DisplayStrategy) | |
| } | |
| .call(this), | |
| function() { | |
| var t, e = function(t, e) { | |
| return function() { | |
| return t.apply(e, arguments) | |
| } | |
| }; | |
| t = function() { | |
| function t(t) { | |
| this.hide = e(this.hide, this), | |
| this.logger = t.LOGGER | |
| } | |
| return t.prototype.hide = function() { | |
| var t, e; | |
| return t = null != (e = exports.displayStrategyProxy) ? e.displayStrategy : void 0, | |
| (null != t ? t.canHide() : void 0) ? (this.logger.info("Hiding survey."), | |
| t.hide(), | |
| delighted.wasEligible = !1) : this.logger.info("A survey can only be hidden when it is visible and the person has not responded. Current state: " + t.state) | |
| } | |
| , | |
| t | |
| }(), | |
| exports.Survey = t | |
| } | |
| .call(this), | |
| function() { | |
| var t, e = function(t, e) { | |
| return function() { | |
| return t.apply(e, arguments) | |
| } | |
| }; | |
| t = function() { | |
| function t(t) { | |
| this.updateSurveyTemplate = e(this.updateSurveyTemplate, this), | |
| this.toggleStateForPreview = e(this.toggleStateForPreview, this), | |
| this.displayStrategy = t | |
| } | |
| return t.prototype.toggleStateForPreview = function(t, e, n) { | |
| return null == n && (n = {}), | |
| this.displayStrategy.toggleStateForPreview(t, e, n) | |
| } | |
| , | |
| t.prototype.updateSurveyTemplate = function(t) { | |
| return this.displayStrategy.config.SURVEY_TEMPLATE = t | |
| } | |
| , | |
| t | |
| }(), | |
| exports.displayStrategyProxy = null, | |
| exports.showSurvey = function(e, n, i) { | |
| var r, o, a, s, u, l, c; | |
| return e.LOGGER.info("Survey showing."), | |
| c = function(t, n) { | |
| var i; | |
| return i = exports.clone(n || {}), | |
| e.PREVIEW_MODE && (i.displayStrategy = exports.displayStrategyProxy), | |
| "function" == typeof t ? t(i) : void 0 | |
| } | |
| , | |
| u = function(t) { | |
| var n; | |
| return e.LOGGER.info("Survey shown."), | |
| e.STATE_MANAGER.getLastSurveyedToken() !== t.token && e.STATE_MANAGER.setLastSurveyedTimestamp(exports.utils.getCurrentTimestamp(), { | |
| token: t.token | |
| }), | |
| e.TELEMETRY.instrument("SURVEY_SHOWN"), | |
| n = new exports.Survey(e), | |
| c(i.onShow, { | |
| survey: n | |
| }) | |
| } | |
| , | |
| l = function() { | |
| return e.LOGGER.debug("Survey shown comment."), | |
| e.TELEMETRY.instrument("SURVEY_SHOWN_COMMENT"), | |
| c(i.onShowComment) | |
| } | |
| , | |
| s = function(t) { | |
| return e.LOGGER.debug("Survey responded."), | |
| e.STATE_MANAGER.setLastRespondedTimestamp(exports.utils.getCurrentTimestamp(), { | |
| token: t.token | |
| }), | |
| e.TELEMETRY.instrument("SURVEY_RESPONDED", { | |
| score: t.score | |
| }), | |
| c(i.onRespond, { | |
| score: t.score | |
| }) | |
| } | |
| , | |
| o = function() { | |
| return e.LOGGER.debug("Survey commented."), | |
| e.TELEMETRY.instrument("SURVEY_COMMENTED"), | |
| c(i.onComment) | |
| } | |
| , | |
| r = function(t) { | |
| return e.LOGGER.debug("Survey additional question answered."), | |
| e.TELEMETRY.instrument("SURVEY_AQ_ANSWERED", { | |
| question_id: t.question_id, | |
| answer: t.answer | |
| }), | |
| c(i.onAqAnswer) | |
| } | |
| , | |
| a = function(t) { | |
| return e.LOGGER.info("Survey hidden."), | |
| "toast_close" !== t.source && "close" !== t.source && "close_additional_questions" !== t.source || e.STATE_MANAGER.setLastRespondedTimestamp(exports.utils.getCurrentTimestamp(), { | |
| token: t.token | |
| }), | |
| e.TELEMETRY.instrument("SURVEY_HIDDEN", { | |
| source: t.source | |
| }), | |
| e.TELEMETRY.flush(), | |
| c(i.onHide) | |
| } | |
| , | |
| exports.domready(function() { | |
| var c, d, h; | |
| return d = { | |
| params: n, | |
| onShow: u, | |
| onShowComment: l, | |
| onRespond: s, | |
| onComment: o, | |
| onAqAnswer: r, | |
| onHide: a, | |
| buttonAnimationDirection: i.buttonAnimationDirection, | |
| disableShowAnimations: i.disableShowAnimations, | |
| disableShowCommentAnimations: i.disableShowCommentAnimations, | |
| disableScrollLock: i.disableScrollLock, | |
| disableTypingIndicator: i.disableTypingIndicator, | |
| offsets: i.offsets, | |
| mobileScoreOrdering: i.mobileScoreOrdering, | |
| darkBackground: i.darkBackground | |
| }, | |
| h = "desktop" !== e.FORCE_DISPLAY_STRATEGY && ("touch" === e.FORCE_DISPLAY_STRATEGY || e.BROWSER_SUPPORT.platform.isTouch), | |
| c = h ? new exports.DisplayStrategyTouch(e,d) : new exports.DisplayStrategyDesktop(e,d), | |
| exports.displayStrategyProxy = new t(c), | |
| c.show() | |
| }) | |
| } | |
| } | |
| .call(this), | |
| function(t, e) { | |
| var n = t.parse | |
| , i = [1, 4, 5, 6, 7, 10, 11] | |
| , r = function(r) { | |
| var o, a, s = 0; | |
| if (a = /^(\d{4}|[+\-]\d{6})(?:-(\d{2})(?:-(\d{2}))?)?(?:T(\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{3}))?)?(?:(Z)|([+\-])(\d{2})(?::(\d{2}))?)?)?$/.exec(r)) { | |
| for (var u, l = 0; u = i[l]; ++l) | |
| a[u] = +a[u] || 0; | |
| a[2] = (+a[2] || 1) - 1, | |
| a[3] = +a[3] || 1, | |
| "Z" !== a[8] && a[9] !== e && (s = 60 * a[10] + a[11], | |
| "+" === a[9] && (s = 0 - s)), | |
| o = t.UTC(a[1], a[2], a[3], a[4], a[5] + s, a[6], a[7]) | |
| } else | |
| o = n ? n(r) : NaN; | |
| return o | |
| }; | |
| exports.iso8601 = { | |
| parse: r | |
| } | |
| }(Date), | |
| function() { | |
| exports.generateProperties = function(t, e, n) { | |
| var i, r, o, a, s, u, l; | |
| return u = exports.clone(e.properties || {}), | |
| i = function(e) { | |
| var n, i; | |
| return i = e.timeSinceFirstSeen, | |
| n = i > 1e3 * t.RETURN_DELAY, | |
| t.LOGGER.debug("Returning visitor:", n, "(~" + i + " ms since first seen)"), | |
| n | |
| } | |
| , | |
| l = t.PREFIX_PROPERTIES ? "Delighted " : "", | |
| null == u[r = l + "Page"] && (u[r] = document.title), | |
| null == u[o = l + "Page URL"] && (u[o] = location.href), | |
| null == u[a = l + "Referrer URL"] && (u[a] = document.referrer), | |
| i(n) && null == u[s = l + "Visitor Type"] && (u[s] = "Returning"), | |
| u._delighted_user_agent = navigator.userAgent, | |
| t.IS_TEST && (u._delighted_test = "1"), | |
| n.token && (u._delighted_survey_request_token = n.token), | |
| u | |
| } | |
| } | |
| .call(this), | |
| function() { | |
| exports.checkSurveyEligibility = function(t, e) { | |
| var n, i, r, o, a, s, u, l, c, d, h, f, p, m, g, y, v, b, _, w; | |
| return t.TELEMETRY.instrument("CHECKING_ELIGIBILITY"), | |
| i = window[t.NAME], | |
| n = exports.utils.getCurrentTimestamp(), | |
| a = function(t, e) { | |
| var n, i; | |
| return n = null != t.createdAt && exports.iso8601.parse(t.createdAt), | |
| i = "number" == typeof n && !isNaN(n), | |
| i ? n : e | |
| } | |
| , | |
| o = function(e, n) { | |
| var i, r, o, a; | |
| o = exports.generateProperties(t, e, n), | |
| r = {}; | |
| for (i in o) | |
| a = o[i], | |
| r[i] = a; | |
| return e.email && (r.email = e.email), | |
| e.name && (r.name = e.name), | |
| r | |
| } | |
| , | |
| _ = function(t) { | |
| return Math.random() <= t.sampleFactor | |
| } | |
| , | |
| s = 1e3 * e.initialDelay, | |
| v = e.recurringPeriod ? 1e3 * e.recurringPeriod : t.NEVER_FUTURE_TIMESTAMP, | |
| h = 1e3 * e.minSurveyInterval, | |
| f = 1e3 * e.minTimeForDisplay, | |
| r = t.STATE_MANAGER.getSetFirstSeenTimestamp(n), | |
| u = a(e, r), | |
| c = t.STATE_MANAGER.getLastSurveyedTimestamp() || t.NEVER_PAST_TIMESTAMP, | |
| d = t.STATE_MANAGER.getLastSurveyedToken(), | |
| l = t.STATE_MANAGER.getLastRespondedTimestamp() || t.NEVER_PAST_TIMESTAMP, | |
| w = n - r, | |
| g = e.forceDisplay ? n : (p = Math.max(c, u), | |
| m = c > t.NEVER_PAST_TIMESTAMP ? v : s, | |
| p + m), | |
| g = Math.max(g, c + h), | |
| t.TELEMETRY.instrument("ELIGIBILITY_TIMESTAMPS", { | |
| firstSeenTimestamp: r, | |
| initialTimestamp: u, | |
| lastSurveyTimestamp: c, | |
| nextSurveyTimestamp: g, | |
| sentCreatedAt: e.createdAt | |
| }), | |
| b = i.wasEligible ? { | |
| isEligible: !1, | |
| reason: "person has already been surveyed during this session" | |
| } : "m5KZudle4UrncwrN" === t.WRITE_KEY && !e.disableScrollLock && /file/.test(location.protocol) ? { | |
| isEligible: !1, | |
| reason: "configuration is unsupported" | |
| } : t.IS_TEST ? { | |
| isEligible: !0, | |
| reason: "test mode is enabled", | |
| params: o(e, { | |
| timeSinceFirstSeen: w | |
| }), | |
| delay: 0 | |
| } : n - c < f && l < c && d ? { | |
| isEligible: !0, | |
| isRedisplay: !0, | |
| reason: "person has an active survey (valid for another " + Math.round(Math.max(0, f - n + c) / 1e3) + " seconds)", | |
| params: o(e, { | |
| timeSinceFirstSeen: w, | |
| token: d | |
| }), | |
| delay: 0 | |
| } : g <= n ? _(e) ? t.PLAN_LIMIT_EXHAUSTED ? { | |
| isEligible: !1, | |
| reason: "although person is eligible, and was sampled (rate: " + 100 * e.sampleFactor + "%), plan survey limit is exhausted", | |
| exhausted: !0 | |
| } : { | |
| isEligible: !0, | |
| reason: "person is eligible, and was sampled (rate: " + 100 * e.sampleFactor + "%)", | |
| params: o(e, { | |
| timeSinceFirstSeen: w | |
| }), | |
| delay: 1e3 * e.minTimeOnPage | |
| } : { | |
| isEligible: !1, | |
| reason: "although person is eligible, they were not sampled (rate: " + 100 * e.sampleFactor + "%)" | |
| } : (y = g >= t.NEVER_FUTURE_TIMESTAMP ? "person has already been surveyed and recurring surveys are not configured" : "person is not eligible until " + new Date(g), | |
| { | |
| isEligible: !1, | |
| reason: y | |
| }), | |
| b.isEligible && (i.wasEligible = !0), | |
| b | |
| } | |
| } | |
| .call(this), | |
| function() { | |
| var t = new RegExp("bot|crawl|spider|borg|yahoo|slurp|archiver|netresearch|lycos|scooter |altavista|teoma|oegp|charlotte|http client|htdig|ichiro|mogimogi|larbin|pompos|scrubby |searchsight|semanticdiscovery|snappy|speedy|voila|vortex|voyager|zao|zeal|dataparksearch |findlinks|yottaamonitor|browsermob|httpmonitor|bingpreview|pagepeeker|webthumb|url2png|zooshot |gomeza|google sketchup|read later|pingdom|facebook|rackspace|scan|link|ezine|preview |dig|tarantula|urllib|jakarta|wget|rget|monitor|libwww|moozilla|seer|spice|snoopy|feedfetcher |google wireless transcoder|curl|wordpress|java|netfront|archive|xenu|feed|appmanager|covario |perl|host|lwp|page speed|ptst|digext|nutch|sleuth|yottaamonitor","i"); | |
| exports.isBot = function(e) { | |
| return t.test(e) | |
| } | |
| }(), | |
| function(t, e, n) { | |
| function i(t, e) { | |
| return typeof t === e | |
| } | |
| function r() { | |
| var t, e, n, r, o, a, s; | |
| for (var u in _) | |
| if (_.hasOwnProperty(u)) { | |
| if (t = [], | |
| e = _[u], | |
| e.name && (t.push(e.name.toLowerCase()), | |
| e.options && e.options.aliases && e.options.aliases.length)) | |
| for (n = 0; n < e.options.aliases.length; n++) | |
| t.push(e.options.aliases[n].toLowerCase()); | |
| for (r = i(e.fn, "function") ? e.fn() : e.fn, | |
| o = 0; o < t.length; o++) | |
| a = t[o], | |
| s = a.split("."), | |
| 1 === s.length ? x[s[0]] = r : (!x[s[0]] || x[s[0]]instanceof Boolean || (x[s[0]] = new Boolean(x[s[0]])), | |
| x[s[0]][s[1]] = r), | |
| b.push((r ? "" : "no-") + s.join("-")) | |
| } | |
| } | |
| function o(t) { | |
| var e = k.className | |
| , n = x._config.classPrefix || ""; | |
| if (S && (e = e.baseVal), | |
| x._config.enableJSClass) { | |
| var i = new RegExp("(^|\\s)" + n + "no-js(\\s|$)"); | |
| e = e.replace(i, "$1" + n + "js$2") | |
| } | |
| x._config.enableClasses && (e += " " + n + t.join(" " + n), | |
| S ? k.className.baseVal = e : k.className = e) | |
| } | |
| function a() { | |
| return "function" != typeof e.createElement ? e.createElement(arguments[0]) : S ? e.createElementNS.call(e, "http://www.w3.org/2000/svg", arguments[0]) : e.createElement.apply(e, arguments) | |
| } | |
| function s() { | |
| var t = e.body; | |
| return t || (t = a(S ? "svg" : "body"), | |
| t.fake = !0), | |
| t | |
| } | |
| function u(t, n, i, r) { | |
| var o, u, l, c, d = "modernizr", h = a("div"), f = s(); | |
| if (parseInt(i, 10)) | |
| for (; i--; ) | |
| l = a("div"), | |
| l.id = r ? r[i] : d + (i + 1), | |
| h.appendChild(l); | |
| return o = a("style"), | |
| o.type = "text/css", | |
| o.id = "s" + d, | |
| (f.fake ? f : h).appendChild(o), | |
| f.appendChild(h), | |
| o.styleSheet ? o.styleSheet.cssText = t : o.appendChild(e.createTextNode(t)), | |
| h.id = d, | |
| f.fake && (f.style.background = "", | |
| f.style.overflow = "hidden", | |
| c = k.style.overflow, | |
| k.style.overflow = "hidden", | |
| k.appendChild(f)), | |
| u = n(h, t), | |
| f.fake ? (f.parentNode.removeChild(f), | |
| k.style.overflow = c, | |
| k.offsetHeight) : h.parentNode.removeChild(h), | |
| !!u | |
| } | |
| function l(t, e) { | |
| return !!~("" + t).indexOf(e) | |
| } | |
| function c(t) { | |
| return t.replace(/([a-z])-([a-z])/g, function(t, e, n) { | |
| return e + n.toUpperCase() | |
| }).replace(/^-/, "") | |
| } | |
| function d(t, e) { | |
| return function() { | |
| return t.apply(e, arguments) | |
| } | |
| } | |
| function h(t, e, n) { | |
| var r; | |
| for (var o in t) | |
| if (t[o]in e) | |
| return n === !1 ? t[o] : (r = e[t[o]], | |
| i(r, "function") ? d(r, n || e) : r); | |
| return !1 | |
| } | |
| function f(t) { | |
| return t.replace(/([A-Z])/g, function(t, e) { | |
| return "-" + e.toLowerCase() | |
| }).replace(/^ms-/, "-ms-") | |
| } | |
| function p(e, n, i) { | |
| var r; | |
| if ("getComputedStyle"in t) { | |
| r = getComputedStyle.call(t, e, n); | |
| var o = t.console; | |
| if (null !== r) | |
| i && (r = r.getPropertyValue(i)); | |
| else if (o) { | |
| var a = o.error ? "error" : "log"; | |
| o[a].call(o, "getComputedStyle returning null, its possible modernizr test results are inaccurate") | |
| } | |
| } else | |
| r = !n && e.currentStyle && e.currentStyle[i]; | |
| return r | |
| } | |
| function m(e, i) { | |
| var r = e.length; | |
| if ("CSS"in t && "supports"in t.CSS) { | |
| for (; r--; ) | |
| if (t.CSS.supports(f(e[r]), i)) | |
| return !0; | |
| return !1 | |
| } | |
| if ("CSSSupportsRule"in t) { | |
| for (var o = []; r--; ) | |
| o.push("(" + f(e[r]) + ":" + i + ")"); | |
| return o = o.join(" or "), | |
| u("@supports (" + o + ") { #modernizr { position: absolute; } }", function(t) { | |
| return "absolute" == p(t, null, "position") | |
| }) | |
| } | |
| return n | |
| } | |
| function g(t, e, r, o) { | |
| function s() { | |
| d && (delete j.style, | |
| delete j.modElem) | |
| } | |
| if (o = !i(o, "undefined") && o, | |
| !i(r, "undefined")) { | |
| var u = m(t, r); | |
| if (!i(u, "undefined")) | |
| return u | |
| } | |
| for (var d, h, f, p, g, y = ["modernizr", "tspan", "samp"]; !j.style && y.length; ) | |
| d = !0, | |
| j.modElem = a(y.shift()), | |
| j.style = j.modElem.style; | |
| for (f = t.length, | |
| h = 0; h < f; h++) | |
| if (p = t[h], | |
| g = j.style[p], | |
| l(p, "-") && (p = c(p)), | |
| j.style[p] !== n) { | |
| if (o || i(r, "undefined")) | |
| return s(), | |
| "pfx" != e || p; | |
| try { | |
| j.style[p] = r | |
| } catch (t) {} | |
| if (j.style[p] != g) | |
| return s(), | |
| "pfx" != e || p | |
| } | |
| return s(), | |
| !1 | |
| } | |
| function y(t, e, n, r, o) { | |
| var a = t.charAt(0).toUpperCase() + t.slice(1) | |
| , s = (t + " " + P.join(a + " ") + a).split(" "); | |
| return i(e, "string") || i(e, "undefined") ? g(s, e, r, o) : (s = (t + " " + N.join(a + " ") + a).split(" "), | |
| h(s, e, n)) | |
| } | |
| function v(t, e, i) { | |
| return y(t, n, n, e, i) | |
| } | |
| var b = [] | |
| , _ = [] | |
| , w = { | |
| _version: "3.6.0", | |
| _config: { | |
| classPrefix: "", | |
| enableClasses: !0, | |
| enableJSClass: !0, | |
| usePrefixes: !0 | |
| }, | |
| _q: [], | |
| on: function(t, e) { | |
| var n = this; | |
| setTimeout(function() { | |
| e(n[t]) | |
| }, 0) | |
| }, | |
| addTest: function(t, e, n) { | |
| _.push({ | |
| name: t, | |
| fn: e, | |
| options: n | |
| }) | |
| }, | |
| addAsyncTest: function(t) { | |
| _.push({ | |
| name: null, | |
| fn: t | |
| }) | |
| } | |
| } | |
| , x = function() {}; | |
| x.prototype = w, | |
| x = new x, | |
| x.addTest("cookies", function() { | |
| try { | |
| e.cookie = "cookietest=1"; | |
| var t = e.cookie.indexOf("cookietest=") != -1; | |
| return e.cookie = "cookietest=1; expires=Thu, 01-Jan-1970 00:00:01 GMT", | |
| t | |
| } catch (t) { | |
| return !1 | |
| } | |
| }), | |
| x.addTest("cors", "XMLHttpRequest"in t && "withCredentials"in new XMLHttpRequest), | |
| x.addTest("json", "JSON"in t && "parse"in JSON && "stringify"in JSON), | |
| x.addTest("queryselector", "querySelector"in e && "querySelectorAll"in e); | |
| var T = !1; | |
| try { | |
| T = "WebSocket"in t && 2 === t.WebSocket.CLOSING | |
| } catch (t) {} | |
| x.addTest("websockets", T); | |
| var k = e.documentElement | |
| , S = "svg" === k.nodeName.toLowerCase() | |
| , C = function() { | |
| function t(t, e) { | |
| var r; | |
| return !!t && (e && "string" != typeof e || (e = a(e || "div")), | |
| t = "on" + t, | |
| r = t in e, | |
| !r && i && (e.setAttribute || (e = a("div")), | |
| e.setAttribute(t, ""), | |
| r = "function" == typeof e[t], | |
| e[t] !== n && (e[t] = n), | |
| e.removeAttribute(t)), | |
| r) | |
| } | |
| var i = !("onblur"in e.documentElement); | |
| return t | |
| }(); | |
| w.hasEvent = C; | |
| var M = w._config.usePrefixes ? " -webkit- -moz- -o- -ms- ".split(" ") : ["", ""]; | |
| w._prefixes = M; | |
| var D = "CSS"in t && "supports"in t.CSS | |
| , A = "supportsCSS"in t; | |
| x.addTest("supports", D || A); | |
| var E = w.testStyles = u; | |
| x.addTest("touchevents", function() { | |
| var n; | |
| if ("ontouchstart"in t || t.DocumentTouch && e instanceof DocumentTouch) | |
| n = !0; | |
| else { | |
| var i = ["@media (", M.join("touch-enabled),("), "heartz", ")", "{#modernizr{top:9px;position:absolute}}"].join(""); | |
| E(i, function(t) { | |
| n = 9 === t.offsetTop | |
| }) | |
| } | |
| return n | |
| }); | |
| var L = "Moz O ms Webkit" | |
| , P = w._config.usePrefixes ? L.split(" ") : []; | |
| w._cssomPrefixes = P; | |
| var N = w._config.usePrefixes ? L.toLowerCase().split(" ") : []; | |
| w._domPrefixes = N; | |
| var O = { | |
| elem: a("modernizr") | |
| }; | |
| x._q.push(function() { | |
| delete O.elem | |
| }); | |
| var j = { | |
| style: O.elem.style | |
| }; | |
| x._q.unshift(function() { | |
| delete j.style | |
| }), | |
| w.testAllProps = y, | |
| w.testAllProps = v, | |
| x.addTest("cssanimations", v("animationName", "a", !0)), | |
| x.addTest("csstransforms3d", function() { | |
| return !!v("perspective", "1px", !0) | |
| }), | |
| x.addTest("csstransitions", v("transition", "all", !0)), | |
| r(), | |
| o(b), | |
| delete w.addTest, | |
| delete w.addAsyncTest; | |
| for (var Y = 0; Y < x._q.length; Y++) | |
| x._q[Y](); | |
| exports.Modernizr = x | |
| }(window, document), | |
| function() { | |
| exports.detectBrowserSupport = function() { | |
| var t, e, n, i, r; | |
| return t = document.createElement("div"), | |
| e = document.createElement("textarea"), | |
| r = navigator.userAgent, | |
| n = { | |
| cookies: exports.Modernizr.cookies, | |
| animation: exports.Modernizr.cssanimations, | |
| transition: exports.Modernizr.csstransitions, | |
| transform: exports.Modernizr.csstransforms3d, | |
| getComputedStyle: !!("getComputedStyle"in window), | |
| cors: exports.Modernizr.cors, | |
| json: exports.Modernizr.json, | |
| webSocket: exports.Modernizr.websockets, | |
| inputEvent: exports.Modernizr.hasEvent("input"), | |
| querySelector: exports.Modernizr.queryselector, | |
| styleRemoveProperty: !!("removeProperty"in t.style), | |
| sendBeacon: !!("sendBeacon"in window.navigator) | |
| }, | |
| i = { | |
| isBot: exports.isBot(r), | |
| isTouch: exports.Modernizr.touchevents, | |
| isIos: /(iPad|iPod|iPhone)/.test(r), | |
| isIpad: /iPad/.test(r), | |
| isIpod: /iPod/.test(r), | |
| isIphone: /iPhone/.test(r) | |
| }, | |
| { | |
| features: n, | |
| platform: i | |
| } | |
| } | |
| } | |
| .call(this), | |
| function() { | |
| var t = function(t, e) { | |
| return function() { | |
| return t.apply(e, arguments) | |
| } | |
| }; | |
| exports.Telemetry = function() { | |
| function e(e) { | |
| this._addEventListeners = t(this._addEventListeners, this), | |
| this.flush = t(this.flush, this), | |
| this.instrument = t(this.instrument, this), | |
| this.config = e, | |
| this.dom = new exports.DomHelpers(e), | |
| this.dataSetId = Math.random().toString(16).substring(2), | |
| this.data = { | |
| dataSetId: this.dataSetId, | |
| telemetryVersion: n, | |
| events: [] | |
| }, | |
| this._addEventListeners(), | |
| this.config.LOGGER.debug("Telemetry init."), | |
| this.lastFlushEventLength = 0 | |
| } | |
| var n; | |
| return n = 3, | |
| e.prototype.instrument = function(t, e) { | |
| var n; | |
| return null == e && (e = {}), | |
| n = exports.clone(e), | |
| n.name = t, | |
| n.timestamp = (new Date).getTime(), | |
| n.treatments = this.config.EXPERIMENTS.treatments, | |
| this.data.events.push(n), | |
| "SURVEY_SHOWN" === t && (this.shouldAutoFlushOnVisibilityChange = !0), | |
| this.config.LOGGER.debug("Telemetry instrument:", t, n) | |
| } | |
| , | |
| e.prototype.flush = function(t) { | |
| var e; | |
| if (this.config.TELEMETRY_URL && this.data.events.length > 0 && this.data.events.length !== this.lastFlushEventLength) | |
| return t && this.instrument(t), | |
| this.lastFlushEventLength = this.data.events.length, | |
| this.config.LOGGER.debug("Telemetry flush:", this.data), | |
| e = new Blob([exports.qs.stringify({ | |
| data: this.data | |
| })],{ | |
| type: "application/x-www-form-urlencoded" | |
| }), | |
| this.config.BROWSER_SUPPORT.features.sendBeacon ? navigator.sendBeacon(this.config.TELEMETRY_URL, e) : void 0 | |
| } | |
| , | |
| e.prototype._addEventListeners = function() { | |
| return this.dom.bindEvent(window, "visibilitychange", function(t) { | |
| return function() { | |
| t.shouldAutoFlushOnVisibilityChange && t.flush("WINDOW_VISIBILITYCHANGE") | |
| } | |
| }(this)) | |
| } | |
| , | |
| e | |
| }() | |
| } | |
| .call(this), | |
| function() { | |
| var t, e = function(t, e) { | |
| return function() { | |
| return t.apply(e, arguments) | |
| } | |
| }; | |
| t = function() { | |
| function t(t) { | |
| this._changeState = e(this._changeState, this), | |
| this._setState = e(this._setState, this), | |
| this._getState = e(this._getState, this), | |
| this._deserializeTimestampCookieValue = e(this._deserializeTimestampCookieValue, this), | |
| this._serializeTimestampCookieValue = e(this._serializeTimestampCookieValue, this), | |
| this._toShortName = e(this._toShortName, this), | |
| this._writeTimestampCookie = e(this._writeTimestampCookie, this), | |
| this._readTimestampCookie = e(this._readTimestampCookie, this), | |
| this.setSavedAnswer = e(this.setSavedAnswer, this), | |
| this.getSavedAnswer = e(this.getSavedAnswer, this), | |
| this.reset = e(this.reset, this), | |
| this.setLastRespondedTimestamp = e(this.setLastRespondedTimestamp, this), | |
| this.getLastRespondedTimestamp = e(this.getLastRespondedTimestamp, this), | |
| this.setLastSurveyedTimestamp = e(this.setLastSurveyedTimestamp, this), | |
| this.getLastSurveyedToken = e(this.getLastSurveyedToken, this), | |
| this.getLastSurveyedTimestamp = e(this.getLastSurveyedTimestamp, this), | |
| this.getSetFirstSeenTimestamp = e(this.getSetFirstSeenTimestamp, this), | |
| this.setFirstSeenTimestamp = e(this.setFirstSeenTimestamp, this), | |
| this.getFirstSeenTimestamp = e(this.getFirstSeenTimestamp, this), | |
| this.config = t | |
| } | |
| var n; | |
| return n = { | |
| delighted_fst: "fst", | |
| delighted_lst: "lst", | |
| delighted_lrt: "lrt", | |
| saved_answers: "sa" | |
| }, | |
| t.prototype.getFirstSeenTimestamp = function() { | |
| var t; | |
| return t = this._readTimestampCookie(this.config.COOKIE_FIRST_SEEN_TIMESTAMP), | |
| null != t ? t.timestamp : void 0 | |
| } | |
| , | |
| t.prototype.setFirstSeenTimestamp = function(t, e) { | |
| return this._writeTimestampCookie({ | |
| name: this.config.COOKIE_FIRST_SEEN_TIMESTAMP, | |
| timestamp: t, | |
| metadata: e, | |
| expires: this.config.COOKIE_FIRST_SEEN_TIMESTAMP_EXPIRY_DAYS | |
| }), | |
| t | |
| } | |
| , | |
| t.prototype.getSetFirstSeenTimestamp = function(t, e) { | |
| return this.getFirstSeenTimestamp() || this.setFirstSeenTimestamp(t, e) | |
| } | |
| , | |
| t.prototype.getLastSurveyedTimestamp = function() { | |
| var t; | |
| return t = this._readTimestampCookie(this.config.COOKIE_LAST_SURVEYED_TIMESTAMP), | |
| null != t ? t.timestamp : void 0 | |
| } | |
| , | |
| t.prototype.getLastSurveyedToken = function() { | |
| var t; | |
| return t = this._readTimestampCookie(this.config.COOKIE_LAST_SURVEYED_TIMESTAMP), | |
| null != t ? t.metadata.token : void 0 | |
| } | |
| , | |
| t.prototype.setLastSurveyedTimestamp = function(t, e) { | |
| return this._writeTimestampCookie({ | |
| name: this.config.COOKIE_LAST_SURVEYED_TIMESTAMP, | |
| timestamp: t, | |
| metadata: e, | |
| expires: this.config.COOKIE_LAST_SURVEYED_TIMESTAMP_EXPIRY_DAYS | |
| }), | |
| t | |
| } | |
| , | |
| t.prototype.getLastRespondedTimestamp = function() { | |
| var t; | |
| return t = this._readTimestampCookie(this.config.COOKIE_LAST_RESPONDED_TIMESTAMP), | |
| null != t ? t.timestamp : void 0 | |
| } | |
| , | |
| t.prototype.setLastRespondedTimestamp = function(t, e) { | |
| return this._writeTimestampCookie({ | |
| name: this.config.COOKIE_LAST_RESPONDED_TIMESTAMP, | |
| timestamp: t, | |
| metadata: e, | |
| expires: this.config.COOKIE_LAST_RESPONDED_TIMESTAMP_EXPIRY_DAYS | |
| }), | |
| t | |
| } | |
| , | |
| t.prototype.reset = function() { | |
| return exports.Cookies.remove(this.config.COOKIE_NAME, { | |
| domain: this.config.COOKIE_DOMAIN | |
| }), | |
| exports.Cookies.remove(this.config.COOKIE_FIRST_SEEN_TIMESTAMP, { | |
| domain: this.config.COOKIE_DOMAIN | |
| }), | |
| exports.Cookies.remove(this.config.COOKIE_LAST_SURVEYED_TIMESTAMP, { | |
| domain: this.config.COOKIE_DOMAIN | |
| }), | |
| exports.Cookies.remove(this.config.COOKIE_LAST_RESPONDED_TIMESTAMP, { | |
| domain: this.config.COOKIE_DOMAIN | |
| }) | |
| } | |
| , | |
| t.prototype.getSavedAnswer = function(t) { | |
| var e, n; | |
| return n = this._getState(), | |
| e = n[this.config.SURVEY_CONTEXT_ID] || {}, | |
| e = n[this.config.SURVEY_CONTEXT_ID][this._toShortName("saved_answers")] || {}, | |
| e[t] | |
| } | |
| , | |
| t.prototype.setSavedAnswer = function(t, e) { | |
| return this._changeState(function(n) { | |
| return function(i) { | |
| var r, o, a; | |
| return r = i[o = n.config.SURVEY_CONTEXT_ID] || (i[o] = {}), | |
| r = r[a = n._toShortName("saved_answers")] || (r[a] = {}), | |
| r[t] = e | |
| } | |
| }(this)) | |
| } | |
| , | |
| t.prototype._readTimestampCookie = function(t) { | |
| var e, n, i, r; | |
| if (this.config.SURVEY_CONTEXT_ID) { | |
| if (i = this._getState(), | |
| i[n = this.config.SURVEY_CONTEXT_ID] || (i[n] = {}), | |
| e = i[this.config.SURVEY_CONTEXT_ID], | |
| r = e[this._toShortName(t)]) | |
| return { | |
| timestamp: new Date(parseInt(r.t, 10)).getTime(), | |
| metadata: r.m | |
| } | |
| } else if (r = exports.Cookies.get(t), | |
| null != r) | |
| return this._deserializeTimestampCookieValue(r) | |
| } | |
| , | |
| t.prototype._writeTimestampCookie = function(t) { | |
| var e; | |
| return this.config.SURVEY_CONTEXT_ID ? this._changeState(function(e) { | |
| return function(n) { | |
| var i, r; | |
| return i = n[r = e.config.SURVEY_CONTEXT_ID] || (n[r] = {}), | |
| i[e._toShortName(t.name)] = { | |
| t: t.timestamp.toString(), | |
| m: t.metadata | |
| } | |
| } | |
| }(this)) : (e = this._serializeTimestampCookieValue(t.timestamp, t.metadata), | |
| exports.Cookies.set(t.name, e, { | |
| expires: t.expires, | |
| domain: this.config.COOKIE_DOMAIN, | |
| samesite: "lax" | |
| })) | |
| } | |
| , | |
| t.prototype._toShortName = function(t) { | |
| return n[t] || t | |
| } | |
| , | |
| t.prototype._serializeTimestampCookieValue = function(t, e) { | |
| return [t.toString(), JSON.stringify(e || {})].join(":") | |
| } | |
| , | |
| t.prototype._deserializeTimestampCookieValue = function(t) { | |
| var e, n, i; | |
| return n = t.split(":"), | |
| i = n.shift(), | |
| e = n.join(":") || "{}", | |
| { | |
| timestamp: new Date(parseInt(i, 10)).getTime(), | |
| metadata: JSON.parse(e) | |
| } | |
| } | |
| , | |
| t.prototype._getState = function() { | |
| var t, e, n, i, r, o, a, s; | |
| if (n = exports.Cookies.get(this.config.COOKIE_NAME), | |
| !exports.utils.isBlank(n)) | |
| return JSON.parse(n); | |
| for (a = {}, | |
| t = a[this.config.SURVEY_CONTEXT_ID] = {}, | |
| o = [this.config.COOKIE_FIRST_SEEN_TIMESTAMP, this.config.COOKIE_LAST_SURVEYED_TIMESTAMP, this.config.COOKIE_LAST_RESPONDED_TIMESTAMP], | |
| i = 0, | |
| r = o.length; i < r; i++) | |
| e = o[i], | |
| n = exports.Cookies.get(e), | |
| n && (s = this._deserializeTimestampCookieValue(n), | |
| t[this._toShortName(e)] = { | |
| t: s.timestamp.toString(), | |
| m: s.metadata | |
| }), | |
| exports.Cookies.remove(e, { | |
| domain: this.config.COOKIE_DOMAIN | |
| }); | |
| return this._setState(a) | |
| } | |
| , | |
| t.prototype._setState = function(t) { | |
| return exports.Cookies.set(this.config.COOKIE_NAME, JSON.stringify(t), { | |
| expires: this.config.COOKIE_EXPIRY_DAYS, | |
| domain: this.config.COOKIE_DOMAIN, | |
| samesite: "lax" | |
| }), | |
| t | |
| } | |
| , | |
| t.prototype._changeState = function(t) { | |
| var e; | |
| return e = this._getState(), | |
| t(e), | |
| this._setState(e) | |
| } | |
| , | |
| t | |
| }(), | |
| exports.StateManager = t | |
| } | |
| .call(this), | |
| function() { | |
| var t; | |
| t = function() { | |
| function t(t, e) { | |
| null == e && (e = {}), | |
| this.config = t, | |
| this.treatments = e.treatments || {} | |
| } | |
| return t | |
| }(), | |
| exports.Experiments = t | |
| } | |
| .call(this), | |
| function() { | |
| exports.loadDelightedLibrary = function(t) { | |
| var e, n, i, r, o, a, s, u, l, c, d; | |
| if (d = window._delighted, | |
| d || (d = window._delighted = {}), | |
| n = window[t.NAME], | |
| !n.isInitialized) { | |
| if (n.isInitialized = !0, | |
| u = exports.qs.parse(location.search.substring(1)), | |
| t.IS_TEST = n.isTest || /test/.test(u.delighted) || new RegExp(t.COOKIE_IS_TEST + "=1").test(document.cookie), | |
| t.IS_DEBUG = n.isDebug || /debug/.test(u.delighted) || new RegExp(t.COOKIE_IS_DEBUG + "=1").test(document.cookie), | |
| /touch/.test(u.delighted) && (t.FORCE_DISPLAY_STRATEGY = "touch"), | |
| t.COOKIE_DOMAIN = "." + exports.topdomain(location.href), | |
| "." === t.COOKIE_DOMAIN && (t.COOKIE_DOMAIN = null), | |
| s = n.logLevel || t.LOG_LEVEL || (t.IS_DEBUG ? "debug" : "info"), | |
| t.LOGGER = exports.utils.buildLogger("[Delighted]", s), | |
| t.LOGGER.debug("Configuration:", t), | |
| !t.IS_TEST && !t.ACTIVE) | |
| return void t.LOGGER.warn('Currently turned off. To turn it on, sign in to Delighted, go to Edit and send > Web and click "Turn on". If you turned it on recently, you may need to wait a few minutes.'); | |
| if (t.BROWSER_SUPPORT = exports.detectBrowserSupport(), | |
| t.LOGGER.debug("Browser support:", t.BROWSER_SUPPORT), | |
| o = !t.BROWSER_SUPPORT.platform.isBot && t.BROWSER_SUPPORT.features.querySelector && t.BROWSER_SUPPORT.features.styleRemoveProperty && t.BROWSER_SUPPORT.features.json && t.BROWSER_SUPPORT.features.cors && t.BROWSER_SUPPORT.features.inputEvent && t.BROWSER_SUPPORT.features.cookies, | |
| t.EXPERIMENTS = new exports.Experiments(t,{ | |
| treatments: exports.clone(t.OVERRIDE_EXPERIMENT_TREATMENTS || {}) | |
| }), | |
| t.TELEMETRY = new exports.Telemetry(t), | |
| t.TELEMETRY.instrument("TELEMETRY_INIT", { | |
| browserSupport: t.BROWSER_SUPPORT, | |
| cookieDomain: t.COOKIE_DOMAIN, | |
| isTest: t.IS_TEST, | |
| isDebug: t.IS_DEBUG, | |
| logLevel: s | |
| }), | |
| !o) | |
| return void t.LOGGER.warn("Unsupported browser."); | |
| if (!t.IS_TEST && !t.ENABLE_TOUCH_PLATFORMS && t.BROWSER_SUPPORT.platform.isTouch) | |
| return void t.LOGGER.warn("Touch platforms not enabled."); | |
| for (t.STATE_MANAGER = new exports.StateManager(t), | |
| n.survey = function(e) { | |
| var n; | |
| return t.LOGGER.debug("Survey called."), | |
| t.TELEMETRY.instrument("SURVEY_CALLED", { | |
| inputOpts: e | |
| }), | |
| d.activeSurveyContextId ? void (d.activeSurveyContextId === t.SURVEY_CONTEXT_ID ? t.LOGGER.info("Survey not shown because it's already active.") : t.LOGGER.info("Survey not shown because there's another active survey (" + d.activeSurveyContextId + ")")) : (d.activeSurveyContextId = t.SURVEY_CONTEXT_ID, | |
| e = exports.clone(e || {}), | |
| null == e.initialDelay && (e.initialDelay = t.DEFAULT_INITIAL_DELAY), | |
| null == e.recurringPeriod && (e.recurringPeriod = t.DEFAULT_RECURRING_PERIOD), | |
| null == e.forceDisplay && (e.forceDisplay = t.DEFAULT_FORCE_DISPLAY), | |
| null == e.minTimeOnPage && (e.minTimeOnPage = t.DEFAULT_MIN_TIME_ON_PAGE), | |
| null == e.minTimeForDisplay && (e.minTimeForDisplay = t.DEFAULT_MIN_TIME_FOR_DISPLAY), | |
| null == e.minSurveyInterval && (e.minSurveyInterval = t.DEFAULT_MIN_SURVEY_INTERVAL), | |
| null == e.sampleFactor && (e.sampleFactor = t.DEFAULT_SAMPLE_FACTOR), | |
| null == e.buttonAnimationDirection && (e.buttonAnimationDirection = "stars_five" === t.DEFAULT_SURVEY_TYPE.id ? 1 : -1), | |
| null == e.disableShowAnimations && (e.disableShowAnimations = !1), | |
| null == e.disableShowCommentAnimations && (e.disableShowCommentAnimations = !1), | |
| null == e.disableScrollLock && (e.disableScrollLock = !1), | |
| null == e.disableTypingIndicator && (e.disableTypingIndicator = !1), | |
| null == e.offsets && (e.offsets = {}), | |
| "m5KZudle4UrncwrN" === t.WRITE_KEY && /file/.test(location.protocol) && (e.initialDelay = t.DEFAULT_INITIAL_DELAY, | |
| e.forceDisplay = t.DEFAULT_FORCE_DISPLAY, | |
| e.minTimeOnPage = 60), | |
| n = exports.checkSurveyEligibility(t, e), | |
| t.LOGGER.debug("Survey options:", e), | |
| t.LOGGER.debug("Survey eligibility:", n), | |
| t.TELEMETRY.instrument("ELIGIBILITY_RESULT", { | |
| inputOpts: e, | |
| eligibility: n | |
| }), | |
| n.isEligible ? (t.LOGGER.info("Survey will show because " + n.reason + "..."), | |
| exports.utils.timeout(n.delay, function() { | |
| return exports.showSurvey(t, n.params, { | |
| onShow: e.onShow, | |
| onShowComment: e.onShowComment, | |
| onRespond: e.onRespond, | |
| onComment: e.onComment, | |
| onAqAnswer: e.onAqAnswer, | |
| onHide: function() { | |
| return function() { | |
| if (d.activeSurveyContextId === t.SURVEY_CONTEXT_ID && delete d.activeSurveyContextId, | |
| e.onHide) | |
| return e.onHide() | |
| } | |
| }(this), | |
| buttonAnimationDirection: e.buttonAnimationDirection, | |
| disableShowAnimations: e.disableShowAnimations || n.isRedisplay, | |
| disableShowCommentAnimations: e.disableShowCommentAnimations, | |
| disableScrollLock: e.disableScrollLock, | |
| disableTypingIndicator: e.disableTypingIndicator, | |
| offsets: e.offsets, | |
| mobileScoreOrdering: e.mobileScoreOrdering, | |
| darkBackground: e.darkBackground | |
| }) | |
| })) : (t.LOGGER.info("Survey not shown because " + n.reason + "."), | |
| d.activeSurveyContextId === t.SURVEY_CONTEXT_ID ? delete d.activeSurveyContextId : void 0)) | |
| } | |
| , | |
| n.reset = function() { | |
| return t.LOGGER.debug("Reset called."), | |
| t.TELEMETRY.instrument("RESET_CALLED"), | |
| t.STATE_MANAGER.reset() | |
| } | |
| , | |
| (t.IS_TEST || /reset/.test(u.delighted)) && n.reset(), | |
| c = [], | |
| r = 0, | |
| a = n.length; r < a; r++) | |
| l = n[r], | |
| i = l[0], | |
| e = l[1], | |
| t.LOGGER.debug("Dequeued:", i, e), | |
| c.push(n[i].apply(n, e)); | |
| return c | |
| } | |
| } | |
| } | |
| .call(this); | |
| exports.loadDelightedLibrary({ | |
| "ENV": "production", | |
| "ACTIVE": true, | |
| "LOG_LEVEL": null, | |
| "SURVEY_CONTEXT_ID": "20Dj3ijbDX13sWs7", | |
| "NAME": "delightedNps6", | |
| "WRITE_KEY": "DTeRadAokVBVznwh", | |
| "PREVIEW_MODE": false, | |
| "DEFAULT_SURVEY_TYPE": { | |
| "id": "nps", | |
| "human_name_short": "NPS", | |
| "aggregate_score_name_short": "NPS", | |
| "aggregate_score_range": [-100, 100], | |
| "groups": [{ | |
| "id": "promoter", | |
| "id_pluralized": "promoters", | |
| "id_dasherized": "promoter", | |
| "smiley_name": "promoter", | |
| "scores_gte": 9, | |
| "scores_lte": 10, | |
| "human_name": "promoter", | |
| "human_name_pluralized": "promoters", | |
| "human_name_titleized": "Promoter", | |
| "human_name_titleized_pluralized": "Promoters", | |
| "baked_score": false, | |
| "color_bg": "#b2e257", | |
| "color_fg": "#97C049" | |
| }, { | |
| "id": "passive", | |
| "id_pluralized": "passives", | |
| "id_dasherized": "passive", | |
| "smiley_name": "passive", | |
| "scores_gte": 7, | |
| "scores_lte": 8, | |
| "human_name": "passive", | |
| "human_name_pluralized": "passives", | |
| "human_name_titleized": "Passive", | |
| "human_name_titleized_pluralized": "Passives", | |
| "baked_score": false, | |
| "color_bg": "#e5e7eb", | |
| "color_fg": "#878E99" | |
| }, { | |
| "id": "detractor", | |
| "id_pluralized": "detractors", | |
| "id_dasherized": "detractor", | |
| "smiley_name": "detractor", | |
| "scores_gte": 0, | |
| "scores_lte": 6, | |
| "human_name": "detractor", | |
| "human_name_pluralized": "detractors", | |
| "human_name_titleized": "Detractor", | |
| "human_name_titleized_pluralized": "Detractors", | |
| "baked_score": false, | |
| "color_bg": "#ff665e", | |
| "color_fg": "#ff665e" | |
| }], | |
| "groups_by_score": { | |
| "9": { | |
| "id": "promoter", | |
| "id_pluralized": "promoters", | |
| "id_dasherized": "promoter", | |
| "smiley_name": "promoter", | |
| "scores_gte": 9, | |
| "scores_lte": 10, | |
| "human_name": "promoter", | |
| "human_name_pluralized": "promoters", | |
| "human_name_titleized": "Promoter", | |
| "human_name_titleized_pluralized": "Promoters", | |
| "baked_score": false, | |
| "color_bg": "#b2e257", | |
| "color_fg": "#97C049" | |
| }, | |
| "10": { | |
| "id": "promoter", | |
| "id_pluralized": "promoters", | |
| "id_dasherized": "promoter", | |
| "smiley_name": "promoter", | |
| "scores_gte": 9, | |
| "scores_lte": 10, | |
| "human_name": "promoter", | |
| "human_name_pluralized": "promoters", | |
| "human_name_titleized": "Promoter", | |
| "human_name_titleized_pluralized": "Promoters", | |
| "baked_score": false, | |
| "color_bg": "#b2e257", | |
| "color_fg": "#97C049" | |
| }, | |
| "7": { | |
| "id": "passive", | |
| "id_pluralized": "passives", | |
| "id_dasherized": "passive", | |
| "smiley_name": "passive", | |
| "scores_gte": 7, | |
| "scores_lte": 8, | |
| "human_name": "passive", | |
| "human_name_pluralized": "passives", | |
| "human_name_titleized": "Passive", | |
| "human_name_titleized_pluralized": "Passives", | |
| "baked_score": false, | |
| "color_bg": "#e5e7eb", | |
| "color_fg": "#878E99" | |
| }, | |
| "8": { | |
| "id": "passive", | |
| "id_pluralized": "passives", | |
| "id_dasherized": "passive", | |
| "smiley_name": "passive", | |
| "scores_gte": 7, | |
| "scores_lte": 8, | |
| "human_name": "passive", | |
| "human_name_pluralized": "passives", | |
| "human_name_titleized": "Passive", | |
| "human_name_titleized_pluralized": "Passives", | |
| "baked_score": false, | |
| "color_bg": "#e5e7eb", | |
| "color_fg": "#878E99" | |
| }, | |
| "0": { | |
| "id": "detractor", | |
| "id_pluralized": "detractors", | |
| "id_dasherized": "detractor", | |
| "smiley_name": "detractor", | |
| "scores_gte": 0, | |
| "scores_lte": 6, | |
| "human_name": "detractor", | |
| "human_name_pluralized": "detractors", | |
| "human_name_titleized": "Detractor", | |
| "human_name_titleized_pluralized": "Detractors", | |
| "baked_score": false, | |
| "color_bg": "#ff665e", | |
| "color_fg": "#ff665e" | |
| }, | |
| "1": { | |
| "id": "detractor", | |
| "id_pluralized": "detractors", | |
| "id_dasherized": "detractor", | |
| "smiley_name": "detractor", | |
| "scores_gte": 0, | |
| "scores_lte": 6, | |
| "human_name": "detractor", | |
| "human_name_pluralized": "detractors", | |
| "human_name_titleized": "Detractor", | |
| "human_name_titleized_pluralized": "Detractors", | |
| "baked_score": false, | |
| "color_bg": "#ff665e", | |
| "color_fg": "#ff665e" | |
| }, | |
| "2": { | |
| "id": "detractor", | |
| "id_pluralized": "detractors", | |
| "id_dasherized": "detractor", | |
| "smiley_name": "detractor", | |
| "scores_gte": 0, | |
| "scores_lte": 6, | |
| "human_name": "detractor", | |
| "human_name_pluralized": "detractors", | |
| "human_name_titleized": "Detractor", | |
| "human_name_titleized_pluralized": "Detractors", | |
| "baked_score": false, | |
| "color_bg": "#ff665e", | |
| "color_fg": "#ff665e" | |
| }, | |
| "3": { | |
| "id": "detractor", | |
| "id_pluralized": "detractors", | |
| "id_dasherized": "detractor", | |
| "smiley_name": "detractor", | |
| "scores_gte": 0, | |
| "scores_lte": 6, | |
| "human_name": "detractor", | |
| "human_name_pluralized": "detractors", | |
| "human_name_titleized": "Detractor", | |
| "human_name_titleized_pluralized": "Detractors", | |
| "baked_score": false, | |
| "color_bg": "#ff665e", | |
| "color_fg": "#ff665e" | |
| }, | |
| "4": { | |
| "id": "detractor", | |
| "id_pluralized": "detractors", | |
| "id_dasherized": "detractor", | |
| "smiley_name": "detractor", | |
| "scores_gte": 0, | |
| "scores_lte": 6, | |
| "human_name": "detractor", | |
| "human_name_pluralized": "detractors", | |
| "human_name_titleized": "Detractor", | |
| "human_name_titleized_pluralized": "Detractors", | |
| "baked_score": false, | |
| "color_bg": "#ff665e", | |
| "color_fg": "#ff665e" | |
| }, | |
| "5": { | |
| "id": "detractor", | |
| "id_pluralized": "detractors", | |
| "id_dasherized": "detractor", | |
| "smiley_name": "detractor", | |
| "scores_gte": 0, | |
| "scores_lte": 6, | |
| "human_name": "detractor", | |
| "human_name_pluralized": "detractors", | |
| "human_name_titleized": "Detractor", | |
| "human_name_titleized_pluralized": "Detractors", | |
| "baked_score": false, | |
| "color_bg": "#ff665e", | |
| "color_fg": "#ff665e" | |
| }, | |
| "6": { | |
| "id": "detractor", | |
| "id_pluralized": "detractors", | |
| "id_dasherized": "detractor", | |
| "smiley_name": "detractor", | |
| "scores_gte": 0, | |
| "scores_lte": 6, | |
| "human_name": "detractor", | |
| "human_name_pluralized": "detractors", | |
| "human_name_titleized": "Detractor", | |
| "human_name_titleized_pluralized": "Detractors", | |
| "baked_score": false, | |
| "color_bg": "#ff665e", | |
| "color_fg": "#ff665e" | |
| } | |
| }, | |
| "chart_y_tick_values": [-100, -50, 0, 50, 100], | |
| "chart_y_domain": [-125, 125] | |
| }, | |
| "DEFAULT_INITIAL_DELAY": 0, | |
| "DEFAULT_RECURRING_PERIOD": null, | |
| "DEFAULT_FORCE_DISPLAY": false, | |
| "DEFAULT_MIN_TIME_ON_PAGE": 2, | |
| "DEFAULT_MIN_TIME_FOR_DISPLAY": 120, | |
| "DEFAULT_MIN_SURVEY_INTERVAL": 31556952, | |
| "DEFAULT_SAMPLE_FACTOR": 1.0, | |
| "PLAN_LIMIT_EXHAUSTED": false, | |
| "ENABLE_TOUCH_PLATFORMS": true, | |
| "OVERRIDE_EXPERIMENT_TREATMENTS": {}, | |
| "COOKIE_NAME": "_delighted_web", | |
| "COOKIE_EXPIRY_DAYS": 3650, | |
| "COOKIE_LAST_SURVEYED_TIMESTAMP": "_delighted_lst", | |
| "COOKIE_LAST_SURVEYED_TIMESTAMP_EXPIRY_DAYS": 3650, | |
| "COOKIE_LAST_RESPONDED_TIMESTAMP": "_delighted_lrt", | |
| "COOKIE_LAST_RESPONDED_TIMESTAMP_EXPIRY_DAYS": 3650, | |
| "COOKIE_FIRST_SEEN_TIMESTAMP": "_delighted_fst", | |
| "COOKIE_FIRST_SEEN_TIMESTAMP_EXPIRY_DAYS": 3650, | |
| "COOKIE_IS_TEST": "_delighted_tst", | |
| "COOKIE_IS_DEBUG": "_delighted_dbg", | |
| "NEVER_FUTURE_TIMESTAMP": 4618380874000, | |
| "NEVER_PAST_TIMESTAMP": -1693048870000, | |
| "RETURN_DELAY": 21600, | |
| "PREFIX_PROPERTIES": true, | |
| "SURVEY_URL": "https://web.delighted.com/t/ScPVZHkO", | |
| "TELEMETRY_URL": "https://web.delighted.com/integrations/web/v1/telemetry/DTeRadAokVBVznwh" | |
| }); | |
| } | |
| )(); | |
| } catch (e) { | |
| if (console && console.error) { | |
| // :ALLOW_CONSOLE: | |
| var message; | |
| try { | |
| message = (e && e.message) || String(e); | |
| } catch (e) {} | |
| ;console.log("[Delighted] Error loading: ", message); | |
| // :ALLOW_CONSOLE: | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment