@mopinion/survey
Version:
Collect customer feedback with the Mopinion survey library
747 lines (746 loc) • 31.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports._get = _get;
exports.addClass = void 0;
exports.anonymizeValue = anonymizeValue;
exports.appendScript = appendScript;
exports.appendStyle = appendStyle;
exports.createId = createId;
exports.createRandomId = createRandomId;
exports.encodeQuotes = exports.debounce = void 0;
exports.findSelector = findSelector;
exports.getCookie = void 0;
exports.getDataAttr = getDataAttr;
exports.getDatafieldIdFromExtra = getDatafieldIdFromExtra;
exports.getIdFromField = getIdFromField;
exports.getImageUri = getImageUri;
exports.getJsFromString = getJsFromString;
exports.getMetaData = getMetaData;
exports.getNonce = getNonce;
exports.getPageSearch = getPageSearch;
exports.getPageUrl = getPageUrl;
exports.getStorage = getStorage;
exports.getStrParam = void 0;
exports.getTextContent = getTextContent;
exports.getUrlParam = void 0;
exports.getWebsiteDataName = getWebsiteDataName;
exports.getWebsiteDataValue = getWebsiteDataValue;
exports.isFontLoaded = exports.isArray = exports.hasClass = void 0;
exports.isLandingPage = isLandingPage;
exports.isPreviewPage = isPreviewPage;
exports.isUuid = isUuid;
exports.loadFonts = void 0;
exports.log = log;
exports.makeClassName = makeClassName;
exports.mapBrFromString = mapBrFromString;
exports.prependChild = exports.objectToFormData = exports.nodeListToArray = void 0;
exports.range = range;
exports.rectIsHidden = rectIsHidden;
exports.removeClass = void 0;
exports.removeEmptyFromNestedObject = removeEmptyFromNestedObject;
exports.removeStorage = removeStorage;
exports.rnd = rnd;
exports.scrollEmbeddedIntoView = scrollEmbeddedIntoView;
exports.setCookie = exports.serialize = void 0;
exports.setLangAttribute = setLangAttribute;
exports.setStorage = setStorage;
exports.shuffleArray = shuffleArray;
exports.startsWith = startsWith;
exports.stringify = stringify;
exports.stripTags = stripTags;
exports.supportsCSSStyleSheetReplace = supportsCSSStyleSheetReplace;
exports.triggerEvent = exports.throttle = void 0;
exports.tryFocus = tryFocus;
var _preact = require("preact");
function _toArray(r) { return _arrayWithHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableRest(); }
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function tryDecode() {
var str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
try {
return decodeURIComponent(str);
} catch (e) {
return str;
}
}
function tryEncode() {
var str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
try {
return encodeURIComponent(str);
} catch (e) {
return str;
}
}
function isEncoded() {
var uri = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
try {
return uri !== decodeURIComponent(uri);
} catch (e) {
return false;
}
}
var getUrlParam = exports.getUrlParam = function getUrlParam() {
var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
var search = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window.location.search;
name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');
var regex = new RegExp('[\\?&]' + name + '=([^&#]*)');
var results = regex.exec(search);
return results === null ? '' : tryDecode(results[1].replace(/\+/g, ' '));
};
var getStrParam = exports.getStrParam = function getStrParam(name, str) {
name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');
var regex = new RegExp('[\\?&]' + name + '=([^&#]*)');
var results = regex.exec(str);
return results === null ? '' : tryDecode(results[1].replace(/\+/g, ' '));
};
var getCookie = exports.getCookie = function getCookie(cookieKey) {
var _iterator = _createForOfIteratorHelper(document.cookie.split('; ')),
_step;
try {
for (_iterator.s(); !(_step = _iterator.n()).done;) {
var cookie = _step.value;
var _cookie$split = cookie.split('='),
_cookie$split2 = _slicedToArray(_cookie$split, 2),
key = _cookie$split2[0],
val = _cookie$split2[1];
if (cookieKey === key) {
return tryDecode(val);
}
}
} catch (err) {
_iterator.e(err);
} finally {
_iterator.f();
}
};
function rootDomain() {
var parts = window.location.hostname.split('.');
if (parts.length <= 2) {
return window.location.hostname;
}
var sliced = parts.slice(-3);
if (['co', 'com'].indexOf(sliced[1]) > -1) return sliced.join('.');
return sliced.slice(-2).join('.');
}
var setCookie = exports.setCookie = function setCookie(name, value, days) {
var expires = '';
if (days) {
var date = new Date();
date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);
expires = "; expires=".concat(date.toUTCString());
}
var secure = document.location.protocol === 'https:' ? '; Secure' : '';
var cookie = "".concat(name, "=").concat(value || '').concat(expires, ";domain=.").concat(rootDomain(), ";path=/").concat(secure, ";");
document.cookie = cookie;
};
function isValidSource() {
var str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
return /^((http|https):\/\/)/.test(str);
}
function appendStyle(url) {
if (!isValidSource(url)) {
return;
}
if (document.querySelector("link[href=\"".concat(url, "\"]"))) {
return;
}
var style = document.createElement('link');
style.type = 'text/css';
style.rel = 'stylesheet';
style.href = url;
document.head.appendChild(style);
}
function appendScript() {
var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
onLoad = _ref.onLoad;
if (!isValidSource(url)) {
return;
}
if (document.querySelector("script[src=\"".concat(url, "\"]"))) {
return;
}
var script = document.createElement('script');
script.src = url;
script.type = 'text/javascript';
script.setAttribute('data-testid', 'custom-script');
document.head.appendChild(script);
if (typeof onLoad === 'function') {
var done = false;
script.onload = script.onreadystatechange = function () {
if (!done && (!script.readyState || script.readyState === 'loaded' || script.readyState === 'complete')) {
done = true;
try {
onLoad();
} catch (e) {}
}
};
}
}
var debounce = exports.debounce = function debounce(fn, delay) {
var timerId;
return function () {
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (timerId) {
clearTimeout(timerId);
}
timerId = setTimeout(function () {
fn.apply(void 0, args);
timerId = null;
}, delay);
};
};
var throttle = exports.throttle = function throttle(fn, delay) {
var lastCall = 0;
return function () {
var now = new Date().getTime();
if (now - lastCall < delay) {
return;
}
lastCall = now;
return fn.apply(void 0, arguments);
};
};
var addClass = exports.addClass = function addClass(elements, className) {
for (var i = 0; i < elements.length; i++) {
var element = elements[i];
if (element.classList) {
element.classList.add(className);
} else {
element.className += ' ' + className;
}
}
};
var removeClass = exports.removeClass = function removeClass(elements, className) {
for (var i = 0; i < elements.length; i++) {
var element = elements[i];
if (element.classList) {
element.classList.remove(className);
} else {
element.className = element.className.replace(new RegExp('(^|\\b)' + className.split(' ').join('|') + '(\\b|$)', 'gi'), ' ');
}
}
};
var hasClass = exports.hasClass = function hasClass(element, className) {
if (element.classList) {
return element.classList.contains(className);
} else {
return new RegExp('(\\s|^)' + className + '(\\s|$)').test(element.className);
}
};
var loadFonts = exports.loadFonts = function loadFonts() {
var fonts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
var fontsDomain = arguments.length > 1 ? arguments[1] : undefined;
if (typeof fonts === 'string') {
fonts = [].concat(fonts);
}
var fontsShouldLoad = fonts.filter(function (f) {
return f && !isFontLoaded(f);
});
if (fontsShouldLoad.length) {
appendStyle("https://".concat(fontsDomain, "/css?family=").concat(fontsShouldLoad.map(function (f) {
return f.replace(/ /g, '+');
}).join('|')));
}
return fontsShouldLoad;
};
var isFontLoaded = exports.isFontLoaded = function isFontLoaded(font) {
var node = document.createElement('span');
node.innerHTML = 'giItT1WQy@!-/#';
node.style.position = 'absolute';
node.style.left = '-10000px';
node.style.top = '-10000px';
node.style.fontSize = '300px';
node.style.fontFamily = 'sans-serif';
node.style.fontVariant = 'normal';
node.style.fontStyle = 'normal';
node.style.fontWeight = 'normal';
node.style.letterSpacing = '0';
document.body.appendChild(node);
var width = node.offsetWidth;
node.style.fontFamily = font + ', sans-serif';
var widthAfterFont = node.offsetWidth;
node.parentNode.removeChild(node);
return widthAfterFont !== width;
};
var _objectToFormData = exports.objectToFormData = function objectToFormData(formData, obj, previousKey) {
if (obj instanceof Object) {
Object.keys(obj).forEach(function (key) {
var value = obj[key];
if (value instanceof Object && !isArray(value)) {
return _objectToFormData(formData, value, key);
}
if (previousKey) {
key = "".concat(previousKey, "[").concat(key, "]");
}
if (isArray(value)) {
value.forEach(function (val, i) {
return _objectToFormData(formData, val, "".concat(key, "[").concat(i, "]"));
});
} else {
formData.append(key, value);
}
});
return formData;
}
};
var _serialize = exports.serialize = function serialize(obj, prefix) {
var str = [],
p;
for (p in obj) {
if (obj.hasOwnProperty(p)) {
var k = prefix ? prefix + '[' + p + ']' : p,
v = obj[p];
str.push(v !== null && _typeof(v) === 'object' ? _serialize(v, k) : encodeURIComponent(k) + '=' + encodeURIComponent(v));
}
}
return str.join('&');
};
var triggerEvent = exports.triggerEvent = function triggerEvent(data) {
var element = data.element || document;
if (typeof CustomEvent === 'function') {
var e = new CustomEvent('mopinion_' + data.event, {
bubbles: false,
detail: data
});
element.dispatchEvent(e);
} else {
var _e = document.createEvent('CustomEvent');
_e.initCustomEvent('mopinion_' + data.event, false, false, data);
element.dispatchEvent(_e);
}
};
var encodeQuotes = exports.encodeQuotes = function encodeQuotes(text) {
var map = {
'"': '"',
"'": '''
};
return text.replace(/["']/g, function (m) {
return map[m];
});
};
var prependChild = exports.prependChild = function prependChild(parentElement, newElement) {
return parentElement.insertBefore(newElement, parentElement.firstChild);
};
var isArray = exports.isArray = function isArray(t) {
if (Array.isArray) {
return Array.isArray(t);
} else {
return t instanceof Array;
}
};
var nodeListToArray = exports.nodeListToArray = function nodeListToArray(list) {
return Array.prototype.slice.call(list);
};
function anonymizeValue(target) {
var value = target.value || target.getAttribute('value');
if (value) {
var replacedValue = value.replace(/./g, '*');
target.setAttribute('value', replacedValue);
target.value = replacedValue;
}
return target;
}
function rnd() {
return Math.random().toString(36);
}
function shuffleArray(array, keepLastIndex) {
return array.map(function (a, index) {
return {
sort: keepLastIndex && index === array.length - 1 ? 1 : Math.random(),
value: a
};
}).sort(function (a, b) {
return a.sort - b.sort;
}).map(function (a) {
return a.value;
});
}
function createRandomId() {
var len = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 35;
var bits = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 36;
var outStr = '',
newStr;
while (outStr.length < len) {
newStr = Math.random().toString(bits).slice(2);
outStr += newStr.slice(0, Math.min(newStr.length, len - outStr.length));
}
return outStr;
}
function createId(len) {
var time = new Date().getTime();
return "".concat(time).concat(createRandomId(len));
}
function stripTags() {
var str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
return String(str).replace(/(<([^>]+)>)/gi, '');
}
function getMetaData() {
var webView = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
var metaData = webView ? window.metaData : window.__mopinionMetaData;
return Object.keys(metaData !== null && metaData !== void 0 ? metaData : {}).map(function (metaDataKey) {
return {
label: metaDataKey,
value: metaData[metaDataKey],
type: 'category'
};
});
}
function startsWith(startStr, fullStr) {
return fullStr.substr(0, startStr.length) === startStr;
}
function getImageUri(uri) {
if (startsWith('data:image', uri)) {
return uri;
}
return "https://cacheorcheck.mopinion.com/survey/public/image?file=".concat(uri);
}
function _get(value, path, defaultValue) {
var ignoreWindow = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
return String(path).replace(/\["|\['|\[/g, '.').replace(/"]|']|]/g, '').split('.').reduce(function (acc, current, index, currentArr) {
if (index === 0 && current === 'window' && ignoreWindow) {
return acc;
}
try {
var key = current.replace(/[()]/g, '');
var wildcard = key === '*';
var lastWildcard = key === '*LAST';
if ((wildcard || lastWildcard) && Array.isArray(acc)) {
var _acc$, _acc$pop;
var nextSearchKey = currentArr[index + 1];
acc = acc.filter(function (item) {
return item === null || item === void 0 ? void 0 : item[nextSearchKey];
});
return wildcard ? (_acc$ = acc[0]) !== null && _acc$ !== void 0 ? _acc$ : defaultValue : (_acc$pop = acc.pop()) !== null && _acc$pop !== void 0 ? _acc$pop : defaultValue;
} else {
acc = typeof acc[key] === 'function' ? acc[key]() : acc[key];
return acc !== null && acc !== void 0 ? acc : defaultValue;
}
} catch (e) {
return defaultValue;
}
}, value);
}
function getJsFromString(str) {
try {
return _get(window, str, undefined);
} catch (e) {
return undefined;
}
}
function removeEmptyFromNestedObject(obj) {
var newObj = {};
Object.keys(obj).forEach(function (key) {
if (obj[key] && _typeof(obj[key]) === 'object') {
newObj[key] = removeEmptyFromNestedObject(obj[key]);
} else if (obj[key] !== null) {
newObj[key] = obj[key];
}
});
return newObj;
}
function isUuid(id) {
return isNaN(Number(id));
}
function getTextContent(sel, divName, multipleIndex) {
var selector;
try {
selector = findSelector(sel, divName, multipleIndex);
} catch (e) {}
if (selector) {
if (selector.nodeName === 'INPUT') {
return selector.value;
} else {
return selector.textContent;
}
}
return '';
}
function mapBrFromString(str, requiredMarkLabel) {
if (typeof str !== 'string') return str;
if (str.split('<br/>').length === 1 && str.split('<br>').length === 1) return str;
var br = str.split('<br/>').length > 1 ? '<br/>' : '<br>';
if (requiredMarkLabel) {
return str.split(br).map(function (item, index) {
return index === str.split(br).length - 1 ? (0, _preact.h)("span", null, item, (0, _preact.h)("span", {
"aria-label": requiredMarkLabel,
"class": "required-mark"
}, "*"), (0, _preact.h)("br", null)) : (0, _preact.h)("span", null, item, (0, _preact.h)("br", null));
});
} else {
return str.split(br).map(function (item) {
return (0, _preact.h)("span", null, item, (0, _preact.h)("br", null));
});
}
}
function getDataAttr(sel, divName, multipleIndex) {
var selector;
var cleanSel = sel.replace(/{{FORM_DIV}}\s/, '');
var selObj = cleanSel.split(' ');
try {
selector = findSelector(sel, divName, multipleIndex);
} catch (e) {}
if (selector) {
var selAttr = selObj.length > 1 ? selObj[1].replace(/\[|\]/gi, '') : cleanSel.replace(/\[|\]/gi, '');
return selector.getAttribute(selAttr) || '';
}
return '';
}
function findSelector(sel, divName, multipleIndex) {
var selectorArray = sel.split('{{FORM_DIV}}');
if (sel.match('{{FORM_DIV}}') !== null && selectorArray.length > 1) {
var selector = selectorArray[1].trim();
var _selector$split = selector.split(' '),
_selector$split2 = _toArray(_selector$split),
baseDiv = _selector$split2[0],
rest = _selector$split2.slice(1);
var selectedDiv = divName instanceof HTMLElement && divName.className.length ? ".".concat(divName.className.split(' ')[0]) : divName instanceof HTMLElement && divName.id.length ? "#".concat(divName.id) : '';
return rest.length > 0 ? document.querySelectorAll(selectedDiv)[multipleIndex].closest(baseDiv).querySelector(rest.join(' ')) : document.querySelectorAll(selectedDiv)[multipleIndex].closest(baseDiv);
}
return document.querySelector(sel);
}
function isLandingPage() {
return document.location.pathname.indexOf('/survey/public/take-survey/') > -1 || document.location.pathname.indexOf('/survey/public/email-survey/') > -1;
}
function isPreviewPage() {
return document.location.pathname.indexOf('/survey/manage/preview/') > -1 || document.location.pathname.indexOf('/data-collection/survey/preview/') > -1 || document.location.pathname.indexOf('/data-collection/survey/edit/') > -1 || document.location.pathname.indexOf('/survey/public/preview/') > -1 || document.location.href.indexOf('blank') > -1 && window.parent.window.origin.indexOf('.mopinion.com') > -1;
}
function getPageUrl() {
var _document$querySelect, _document$querySelect2;
var value = (_document$querySelect = (_document$querySelect2 = document.querySelector('#public-survey-page-querystring')) === null || _document$querySelect2 === void 0 ? void 0 : _document$querySelect2.value) !== null && _document$querySelect !== void 0 ? _document$querySelect : '';
return isLandingPage() ? "".concat(document.location.href).concat(value) : document.location.href;
}
function getPageSearch() {
var _document$querySelect3, _document$querySelect4;
return isLandingPage() ? (_document$querySelect3 = (_document$querySelect4 = document.querySelector('#public-survey-page-querystring')) === null || _document$querySelect4 === void 0 ? void 0 : _document$querySelect4.value) !== null && _document$querySelect3 !== void 0 ? _document$querySelect3 : '' : document.location.search;
}
function tryFocus(el, timeout) {
var exception = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {};
var focusFn = function focusFn() {
try {
el.focus();
} catch (e) {
exception();
}
};
if (timeout) {
return setTimeout(function () {
return focusFn();
}, timeout);
}
return focusFn();
}
function getNonce(type) {
var _document$querySelect9;
if (type === 'style') {
var _document$querySelect5, _document$querySelect6;
if (window._MOPINION_NONCE) {
return window._MOPINION_NONCE;
}
if ((_document$querySelect5 = document.querySelector('[data-style-nonce]')) !== null && _document$querySelect5 !== void 0 && _document$querySelect5.getAttribute('data-style-nonce')) {
return document.querySelector('[data-style-nonce]').getAttribute('data-style-nonce');
}
if ((_document$querySelect6 = document.querySelector('style[nonce]')) !== null && _document$querySelect6 !== void 0 && _document$querySelect6.nonce) {
return document.querySelector('style[nonce]').nonce;
}
}
if (type === 'script') {
var _document$querySelect7, _document$querySelect8;
if ((_document$querySelect7 = document.querySelector('[data-script-nonce]')) !== null && _document$querySelect7 !== void 0 && _document$querySelect7.getAttribute('data-script-nonce')) {
return document.querySelector('[data-script-nonce]').getAttribute('data-script-nonce');
}
if ((_document$querySelect8 = document.querySelector('script[nonce]')) !== null && _document$querySelect8 !== void 0 && _document$querySelect8.nonce) {
return document.querySelector('script[nonce]').nonce;
}
}
return (_document$querySelect9 = document.querySelector('[nonce]')) === null || _document$querySelect9 === void 0 ? void 0 : _document$querySelect9.nonce;
}
function rectIsHidden(rect) {
if (!rect) {
return true;
}
return (rect === null || rect === void 0 ? void 0 : rect.width) === 0 && (rect === null || rect === void 0 ? void 0 : rect.height) === 0 && (rect === null || rect === void 0 ? void 0 : rect.top) === 0 && (rect === null || rect === void 0 ? void 0 : rect.bottom) === 0 && (rect === null || rect === void 0 ? void 0 : rect.left) === 0 && (rect === null || rect === void 0 ? void 0 : rect.right) === 0 && (rect === null || rect === void 0 ? void 0 : rect.x) === 0 && (rect === null || rect === void 0 ? void 0 : rect.y) === 0;
}
function makeClassName() {
var prefix = function prefix(str) {
return 'mop-' + str;
};
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
args[_key2] = arguments[_key2];
}
return args.reduce(function (classNameString, current) {
if (typeof current === 'string' && current.length > 0) {
classNameString.push(prefix(current));
}
if (isArray(current)) {
classNameString.push(current.map(function (str) {
return prefix(str);
}).join(' '));
}
if ((current === null || current === void 0 ? void 0 : current.prefix) === false && current !== null && current !== void 0 && current.className) {
classNameString.push(current.className);
}
return classNameString;
}, []).join(' ');
}
function scrollEmbeddedIntoView(el) {
try {
var y = el.getBoundingClientRect().top + window.pageYOffset + -150;
window.scrollTo({
top: y,
behavior: 'smooth'
});
} catch (e) {}
}
function setLangAttribute() {
var locale = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
try {
var langCode = locale.split('_')[0];
document.documentElement.setAttribute('lang', langCode);
} catch (e) {}
}
function stringify() {
var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var cache = [];
try {
return JSON.stringify(obj, function (key, value) {
if (_typeof(value) === 'object' && value !== null) {
if (cache.indexOf(value) !== -1) {
return;
}
cache.push(value);
}
return value;
});
} catch (e) {
return '';
}
}
function getWebsiteDataName(_ref2) {
var _ref2$block = _ref2.block,
block = _ref2$block === void 0 ? {} : _ref2$block,
_ref2$type = _ref2.type,
type = _ref2$type === void 0 ? '' : _ref2$type,
_ref2$index = _ref2.index,
index = _ref2$index === void 0 ? 0 : _ref2$index;
return "".concat(block.typeName, "_").concat(type, "_").concat(block.id, "_").concat(index + 1).replace(/\W/g, '');
}
function getWebsiteDataValue() {
var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
type = _ref3.type,
value = _ref3.value,
divName = _ref3.divName,
multipleIndex = _ref3.multipleIndex;
var getData = function getData() {
switch (type) {
case 'data_attr':
return getDataAttr(value, divName, multipleIndex);
case 'css_selector':
return getTextContent(value, divName, multipleIndex);
case 'js':
var jsValue = getJsFromString(value);
if (typeof jsValue !== 'string') {
try {
return stringify(jsValue);
} catch (e) {}
}
return jsValue;
case 'cookie':
return getCookie(value);
case 'url_parameter':
var param = isEncoded(value) ? value : tryEncode(value);
return getUrlParam(param, getPageSearch());
default:
return '';
}
};
var foundData = getData();
return typeof foundData === 'string' ? foundData : '';
}
function getStorage(key) {
try {
var obj = JSON.parse(sessionStorage.getItem(key));
var isExpired = new Date().getTime() > Number(obj.time);
if (isExpired) {
return undefined;
}
return obj.value;
} catch (e) {
return undefined;
}
}
function setStorage(key, value) {
try {
sessionStorage.setItem(key, JSON.stringify({
time: new Date().getTime() + 60000 * 10,
value: value
}));
} catch (e) {}
}
function removeStorage(key) {
try {
sessionStorage.removeItem(key);
} catch (e) {}
}
function range() {
var start = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
var end = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 10;
var arr = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
var c = end - start + 1;
while (c--) {
arr[c] = end--;
}
return arr;
}
function getIdFromField() {
var field = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
return field.replace(/([^1-9]+)/, '').split('_');
}
function getDatafieldIdFromExtra(_ref4) {
var _block$properties2, _block$properties5;
var _ref4$block = _ref4.block,
block = _ref4$block === void 0 ? {} : _ref4$block,
_ref4$extra = _ref4.extra1,
extra1 = _ref4$extra === void 0 ? '' : _ref4$extra,
extra2 = _ref4.extra2;
if (extra1 === 'extra' && extra2) {
var _block$properties;
return (_block$properties = block.properties) === null || _block$properties === void 0 || (_block$properties = _block$properties.elements_extra) === null || _block$properties === void 0 || (_block$properties = _block$properties[extra2]) === null || _block$properties === void 0 ? void 0 : _block$properties.data_field;
}
if (extra1 === 'name' && !((_block$properties2 = block.properties) !== null && _block$properties2 !== void 0 && (_block$properties2 = _block$properties2.elements) !== null && _block$properties2 !== void 0 && (_block$properties2 = _block$properties2.name) !== null && _block$properties2 !== void 0 && _block$properties2.combine)) {
var _block$properties3;
return (_block$properties3 = block.properties) === null || _block$properties3 === void 0 || (_block$properties3 = _block$properties3.elements) === null || _block$properties3 === void 0 || (_block$properties3 = _block$properties3.name) === null || _block$properties3 === void 0 || (_block$properties3 = _block$properties3.subelements) === null || _block$properties3 === void 0 || (_block$properties3 = _block$properties3.lastname) === null || _block$properties3 === void 0 ? void 0 : _block$properties3.data_field;
}
if (extra1 === 'firstname') {
var _block$properties4;
return (_block$properties4 = block.properties) === null || _block$properties4 === void 0 || (_block$properties4 = _block$properties4.elements) === null || _block$properties4 === void 0 || (_block$properties4 = _block$properties4.name) === null || _block$properties4 === void 0 || (_block$properties4 = _block$properties4.subelements) === null || _block$properties4 === void 0 || (_block$properties4 = _block$properties4.firstname) === null || _block$properties4 === void 0 ? void 0 : _block$properties4.data_field;
}
return (_block$properties5 = block.properties) === null || _block$properties5 === void 0 || (_block$properties5 = _block$properties5.elements) === null || _block$properties5 === void 0 || (_block$properties5 = _block$properties5[extra1]) === null || _block$properties5 === void 0 ? void 0 : _block$properties5.data_field;
}
function log() {
var DEBUG = getCookie('MopinionDebug') == 1;
if (DEBUG) {
var _console;
(_console = console).log.apply(_console, arguments);
}
}
function supportsCSSStyleSheetReplace() {
try {
var sheet = new CSSStyleSheet();
return typeof sheet.replaceSync === 'function';
} catch (e) {
return false;
}
}
//# sourceMappingURL=index.js.map