@mopinion/deploy
Version:
Deploy your Mopinion feedback forms with ease
221 lines (220 loc) • 8.63 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.clock = clock;
exports.cookie = cookie;
exports.css_selector = css_selector;
exports.date = date;
exports.devices = devices;
exports.event_listeners = event_listeners;
exports.form_events = form_events;
exports.js = js;
exports.location = location;
exports.number_of_pages = number_of_pages;
exports.pause = pause;
exports.percentage = percentage;
exports.referrer = referrer;
exports.scrollpos = scrollpos;
exports.time = time;
exports.time_after_valid = time_after_valid;
exports.time_in_session = time_in_session;
exports.type = type;
var _utils = require("../utils");
var _utils2 = require("./utils");
function pause(isPaused) {
return !isPaused;
}
function location() {
var locations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
var url = (0, _utils2.parseUrlString)(document.location.href);
var operatorMap = {
exists: 'contains',
'does not exist': 'does not contain'
};
return (0, _utils2.handleOrConditionArray)(locations, function (locationCondition) {
var _operatorMap$location;
return (0, _utils2.testCondition)({
value1: url,
value2: (0, _utils2.parseUrlString)(locationCondition.value),
operator: (_operatorMap$location = operatorMap[locationCondition.operator]) !== null && _operatorMap$location !== void 0 ? _operatorMap$location : locationCondition.operator,
regex: locationCondition.regex
});
});
}
function referrer() {
var referrers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
var _ref = arguments.length > 1 ? arguments[1] : undefined,
state = _ref.state;
if (referrers.length === 0) return true;
var url = (0, _utils2.parseUrlString)(state.referrer || document.referrer);
var operatorMap = {
exists: 'contains',
'does not exist': 'does not contain'
};
return (0, _utils2.handleOrConditionArray)(referrers, function (referrerCondition) {
var _operatorMap$referrer;
if (typeof referrerCondition === 'string') {
return (0, _utils2.testCondition)({
value1: url,
value2: (0, _utils2.parseUrlString)(referrerCondition),
operator: 'contains',
regex: false
});
}
return (0, _utils2.testCondition)({
value1: url,
value2: (0, _utils2.parseUrlString)(referrerCondition.value),
operator: (_operatorMap$referrer = operatorMap[referrerCondition.operator]) !== null && _operatorMap$referrer !== void 0 ? _operatorMap$referrer : referrerCondition.operator,
regex: referrerCondition.regex
});
});
}
function cookie() {
var cookies = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
return (0, _utils2.handleOrConditionArray)(cookies, function (cookieCondition) {
return (0, _utils2.testCondition)({
value1: (0, _utils.getCookie)(cookieCondition.name),
operator: cookieCondition.operator,
value2: cookieCondition.value
});
});
}
function js() {
var jsVars = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
return (0, _utils2.handleOrConditionArray)(jsVars, function (jsVarCondition) {
return (0, _utils2.testCondition)({
value1: (0, _utils2.getJsFromString)(jsVarCondition.name),
operator: jsVarCondition.operator,
value2: jsVarCondition.value
});
});
}
function css_selector() {
var cssSelectors = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
return (0, _utils2.handleOrConditionArray)(cssSelectors, function (cssSelectorCondition) {
return (0, _utils2.testCondition)({
value1: (0, _utils2.getCssSelectorTextContent)(cssSelectorCondition.name),
operator: cssSelectorCondition.operator,
value2: cssSelectorCondition.value
});
});
}
function number_of_pages() {
var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
check = _ref2.check,
amount = _ref2.amount;
var _ref3 = arguments.length > 1 ? arguments[1] : undefined,
state = _ref3.state;
if (!check) {
return true;
}
if (check === 'min') {
return state.pageCount >= Number(amount);
}
if (check === 'max') {
return state.pageCount <= Number(amount);
}
}
function devices() {
var devices = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
var deviceData = (0, _utils2.getDeviceType)();
return devices.some(function (deviceType) {
if (deviceType === 'desktop') {
return !deviceData.phone && !deviceData.seven_inch && !deviceData.tablet;
}
if (deviceType === 'tablet') {
return deviceData.tablet || deviceData.seven_inch;
}
if (deviceType === 'mobile') {
return deviceData.phone || deviceData.seven_inch;
}
});
}
function date() {
var dateCondition = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return (0, _utils2.testCondition)((0, _utils2.prepareDateComparison)(dateCondition));
}
function clock() {
var timeCondition = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return (0, _utils2.testCondition)((0, _utils2.prepareTimeComparison)(timeCondition));
}
function type(newOrReturning, _ref4) {
var state = _ref4.state;
return newOrReturning === 'new' && !state.returning || newOrReturning === 'returning' && state.returning;
}
function percentage(perc, _ref5) {
var state = _ref5.state;
return parseFloat(perc) > parseFloat(state.percentage);
}
function scrollpos() {
var scrollpos = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var _scrollpos$from = scrollpos.from,
from = _scrollpos$from === void 0 ? 'top' : _scrollpos$from,
px = scrollpos.px;
var docHeight = document.body.scrollHeight;
var winHeight = window.innerHeight;
var scrollTop = (window.pageYOffset || document.scrollTop) - (document.clientTop || 0);
var scrollTopPerc = (scrollTop + winHeight) / docHeight * 100;
var scrollBottom = docHeight - (scrollTop + winHeight);
var scrollBottomPerc = 100 - scrollTopPerc;
var usePerc = isNaN(px) && String(px).indexOf('%') > -1;
var pixels = Number(px);
var perc = Number(String(px).replace('%', ''));
return from === 'top' && !usePerc && scrollTop >= pixels || from === 'top' && usePerc && scrollTopPerc >= perc || from === 'bottom' && !usePerc && scrollBottom <= pixels || from === 'bottom' && usePerc && scrollBottomPerc <= perc;
}
function time(time, _ref6) {
var state = _ref6.state;
var currentTime = (0, _utils.timeInSeconds)();
var timeOnPage = state.timeOnPage;
if (typeof timeOnPage === 'undefined') {
return false;
}
return currentTime - timeOnPage >= Number(time);
}
function time_after_valid(timeAfterValid, _ref7) {
var state = _ref7.state;
var currentTime = (0, _utils.timeInSeconds)();
var timeAfterValidOnPage = state.timeAfterValid;
if (typeof timeAfterValidOnPage === 'undefined') {
return false;
}
return currentTime - timeAfterValidOnPage >= Number(timeAfterValid);
}
function time_in_session(timeInSession, _ref8) {
var state = _ref8.state;
return state.sessionTime >= Number(timeInSession);
}
function event_listeners() {
var eventListeners = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
var _ref9 = arguments.length > 1 ? arguments[1] : undefined,
state = _ref9.state;
return (0, _utils2.handleOrConditionArray)(eventListeners, function (listenerCondition) {
var _state$eventListeners;
var selector = listenerCondition.selector,
event = listenerCondition.event,
operator = listenerCondition.operator;
return (0, _utils2.testCondition)({
value1: (_state$eventListeners = state.eventListeners) === null || _state$eventListeners === void 0 ? void 0 : _state$eventListeners[selector],
value2: event,
operator: operator
});
});
}
function form_events() {
var formEvents = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
var _ref0 = arguments.length > 1 ? arguments[1] : undefined,
state = _ref0.state;
return (0, _utils2.handleOrConditionArray)(formEvents, function (formEventCondition) {
var _state$formEvents;
var formKey = formEventCondition.formKey,
event = formEventCondition.event,
operator = formEventCondition.operator;
return (0, _utils2.testCondition)({
value1: (_state$formEvents = state.formEvents) === null || _state$formEvents === void 0 ? void 0 : _state$formEvents[formKey],
value2: event,
operator: operator
});
});
}
//# sourceMappingURL=ruleConditionTests.js.map