@findify/mjs
Version:
Findify widgets
111 lines (79 loc) • 4.07 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.init = undefined;
var _getComponentNodes = require("./helpers/getComponentNodes");
var _getComponentNodes2 = _interopRequireDefault(_getComponentNodes);
var _appendFeature = require("./helpers/appendFeature");
var _appendFeature2 = _interopRequireDefault(_appendFeature);
var _handleAnalytics = require("./helpers/handleAnalytics");
var _handleAnalytics2 = _interopRequireDefault(_handleAnalytics);
var _injectFeature = require("./helpers/injectFeature");
var _injectFeature2 = _interopRequireDefault(_injectFeature);
var _isBot = require("./helpers/isBot");
var _isBot2 = _interopRequireDefault(_isBot);
var _elementDataset = require("element-dataset");
var _elementDataset2 = _interopRequireDefault(_elementDataset);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, 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; }
if (__DEVELOPMENT__) {
require('regenerator-runtime/runtime');
require('@findify/ui-components/dist/wrapped.css');
}
if (typeof document !== 'undefined') (0, _elementDataset2.default)();
var prepareConfig = function prepareConfig(config) {
var frameDisabled = config.frameDisabled || _isBot2.default;
var css = [];
if (!__DEVELOPMENT__) {
if (frameDisabled) {
css.push(require('!!file-loader?name=styles.css!@findify/ui-components/dist/wrapped.css'));
} else {
css.push('https://cdnjs.cloudflare.com/ajax/libs/normalize/7.0.0/normalize.min.css');
css.push(require('!!raw-loader!@findify/ui-components/dist/styles.css'));
}
}
return _objectSpread({}, config, {
frameDisabled: frameDisabled,
css: css.concat(_toConsumableArray(config.css))
});
};
var init = exports.init = function init(cfg, analytics) {
var appendFeature = (0, _appendFeature2.default)(analytics);
var config = prepareConfig(cfg);
global.findifyCreateFeature = (0, _injectFeature2.default)(config, analytics);
var initialize = function initialize() {
return setImmediate(function () {
(0, _handleAnalytics2.default)(analytics, config);
if (['paused', 'disabled'].includes(config.status)) return;
return (0, _getComponentNodes2.default)(config).forEach(appendFeature);
});
};
if (['complete', 'loaded', 'interactive'].includes(document.readyState) && document.body) {
initialize();
} else {
document.addEventListener('DOMContentLoaded', initialize, false);
}
};
if (__DEVELOPMENT__) {
var config = require('../dev/config').default;
var analytics = require('@findify/analytics').default;
var client = analytics({
key: config.api.key,
platform: {
bigcommerce: true
}
});
var api = {
key: config.api.key,
user: client.user
};
init(_objectSpread({}, config, {
api: api
}), client);
}