@mopinion/deploy
Version:
Deploy your Mopinion feedback forms with ease
209 lines (169 loc) • 8.31 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.abort = abort;
exports.getActive = getActive;
exports.initDeployments = initDeployments;
exports.load = load;
var _api = require("../api");
var _rules = require("../rules");
var _utils = require("../utils");
var _config = require("../config");
var _listeners = require("../listeners");
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
var globalListenerStore = (0, _listeners.createGlobalListenerStore)({
onLocationChange: function onLocationChange() {
return initDeployments();
}
});
function handleListenerStore() {
globalListenerStore.clearListeners(true);
if (Object.keys((0, _config.getConfig)(function (config) {
return config.deployments;
})).length > 0) {
globalListenerStore.setListeners();
}
}
function handleAssistant(id) {
if ((0, _config.getDebugEnabled)(id)) {
return;
}
try {
var search = window.location.href.split('?')[1];
var urlParams = new URLSearchParams(search);
var assistantToken = urlParams.get('mopinion-assistant') || (0, _utils.getCookie)('MOP_assistant');
if (assistantToken) {
(0, _utils.setCookie)('MOP_assistant', assistantToken);
(0, _api.validateAssistant)(id, {
onSuccess: function onSuccess(response) {
if (response.valid) {
(0, _config.setDebugEnabled)(id, true);
Promise.resolve().then(function () {
return _interopRequireWildcard(require("../assistant"));
}).then(function (assistant) {
assistant.start();
});
load(id);
}
}
});
}
} catch (e) {}
}
function load() {
var id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
var customConfig = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var refresh = customConfig.refresh;
(0, _config.setConfig)(function (config) {
return _objectSpread(_objectSpread(_objectSpread({}, config), customConfig), {}, {
refresh: refresh,
debug: config.debug
});
});
handleAssistant(id);
var onSuccess = function onSuccess(response) {
if (!response.OK) {
return;
}
if (response.deployment) {
if (refresh) {
abortOne(id);
}
(0, _config.setConfig)(function (config) {
var _config$mopinion, _config$survey, _response$global, _customConfig$mopinio;
return _objectSpread(_objectSpread({}, config), {}, {
mopinion: _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, (_config$mopinion = config.mopinion) !== null && _config$mopinion !== void 0 ? _config$mopinion : {}), (_config$survey = config.survey) !== null && _config$survey !== void 0 ? _config$survey : {}), (_response$global = response.global) !== null && _response$global !== void 0 ? _response$global : {}), response.deployment.use_collect && {
use_collect: response.deployment.use_collect
}), (_customConfig$mopinio = customConfig.mopinion) !== null && _customConfig$mopinio !== void 0 ? _customConfig$mopinio : {}),
deployments: _objectSpread(_objectSpread({}, config.deployments), {}, _defineProperty({}, id, response.deployment))
});
});
}
initDeployments();
};
if ((0, _config.getDebugEnabled)(id) && (0, _config.getDebugVersion)(id) === 'draft') {
(0, _api.loadDraft)(id, {
onSuccess: onSuccess
});
return;
}
(0, _api.loadDeployment)(id, {
onSuccess: onSuccess
});
}
function initDeployments() {
handleListenerStore();
Object.keys((0, _config.getConfig)(function (config) {
return config.deployments;
})).forEach(function (deploymentKey) {
var deployment = (0, _config.getConfig)(function (config) {
return config.deployments[deploymentKey];
});
initRules(deployment);
});
}
function initRules() {
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
published = _ref.published,
id = _ref.id,
rules = _ref.rules;
if (!published) {
return;
}
rules === null || rules === void 0 ? void 0 : rules.forEach(function (rule) {
(0, _utils.schedule)(function () {
var _getRule;
if (!(0, _rules.getRule)(function (rules) {
return rules[rule.id];
})) {
(0, _rules.setRule)(function (rules) {
rules[rule.id] = (0, _rules.createRule)({
rule: rule,
globalListenerStore: globalListenerStore
});
});
}
(_getRule = (0, _rules.getRule)(function (rules) {
return rules[rule.id];
})) === null || _getRule === void 0 ? void 0 : _getRule.checkConditions();
});
});
}
function abort(deploymentKey) {
if (deploymentKey) {
return abortOne(deploymentKey);
}
Object.keys((0, _config.getConfig)(function (config) {
return config.deployments;
})).forEach(function (deploymentKey) {
abortOne(deploymentKey);
});
}
function abortOne(deploymentKey) {
var deployment = (0, _config.getConfig)(function (config) {
var _config$deployments;
return (_config$deployments = config.deployments) === null || _config$deployments === void 0 ? void 0 : _config$deployments[deploymentKey];
});
if (deployment) {
var _deployment$rules;
(_deployment$rules = deployment.rules) === null || _deployment$rules === void 0 ? void 0 : _deployment$rules.forEach(function (rule) {
(0, _rules.removeRule)(rule.id);
});
(0, _config.setConfig)(function (config) {
delete config.deployments[deploymentKey];
});
}
handleListenerStore();
}
function getActive() {
return (0, _config.getConfig)(function (config) {
return config.deployments;
});
}
//# sourceMappingURL=app.js.map