UNPKG

@mopinion/deploy

Version:

Deploy your Mopinion feedback forms with ease

221 lines (220 loc) 8.63 kB
"use strict"; 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