@findify/mjs
Version: 
Findify widgets
130 lines (96 loc) • 5.62 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
  value: true
});
var _defaultProps2 = require("recompose/defaultProps");
var _defaultProps3 = _interopRequireDefault(_defaultProps2);
var _compose2 = require("recompose/compose");
var _compose3 = _interopRequireDefault(_compose2);
var _react = require("react");
var _withNodeState = require("../decorators/withNodeState");
var _withNodeState2 = _interopRequireDefault(_withNodeState);
var _withLocationManager = require("../decorators/withLocationManager");
var _withLocationManager2 = _interopRequireDefault(_withLocationManager);
var _watchIsMobile = require("../decorators/watchIsMobile");
var _watchIsMobile2 = _interopRequireDefault(_watchIsMobile);
var _connectProvider = require("../decorators/connectProvider");
var _connectProvider2 = _interopRequireDefault(_connectProvider);
var _withFakeHandlers = require("../decorators/withFakeHandlers");
var _withFakeHandlers2 = _interopRequireDefault(_withFakeHandlers);
var _withFakeLocation = require("../decorators/withFakeLocation");
var _withFakeLocation2 = _interopRequireDefault(_withFakeLocation);
var _postProcess = require("../decorators/postProcess");
var _postProcess2 = _interopRequireDefault(_postProcess);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
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; }
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
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; } }
/**
 * Global components are self generated and could be used
 * on external web-sited
 */
var createGlobalComponent = function createGlobalComponent(_ref) {
  var type = _ref.type,
      node = _ref.node,
      config = _ref.config,
      hooks = _ref.hooks,
      analytics = _ref.analytics,
      initialHTML = _ref.initialHTML,
      decorators = _ref.decorators,
      provider = _ref.provider;
  return _compose3.default.apply(void 0, [(0, _defaultProps3.default)({
    config: config,
    hooks: hooks,
    analytics: analytics
  }), (0, _withLocationManager2.default)(config, hooks), (0, _withNodeState2.default)({
    node: node,
    initialHTML: initialHTML
  }), (0, _watchIsMobile2.default)(config), (0, _connectProvider2.default)(provider)].concat(_toConsumableArray(decorators), [_postProcess2.default]));
};
/**
 * Inline components are buddy components which you can use
 * in tests or in react app
 */
var createInlineComponent = function createInlineComponent(_ref2) {
  var type = _ref2.type,
      node = _ref2.node,
      config = _ref2.config,
      hooks = _ref2.hooks,
      analytics = _ref2.analytics,
      decorators = _ref2.decorators,
      provider = _ref2.provider;
  return _compose3.default.apply(void 0, [(0, _defaultProps3.default)({
    inline: true
  }), (0, _withFakeHandlers2.default)({
    config: config
  }), _withFakeLocation2.default, (0, _withNodeState2.default)(), (0, _connectProvider2.default)(provider)].concat(_toConsumableArray(decorators)));
};
exports.default = function (_ref3) {
  var appendTo = _ref3.appendTo,
      component = _ref3.component,
      provider = _ref3.provider;
  return function () {
    for (var _len = arguments.length, decorators = new Array(_len), _key = 0; _key < _len; _key++) {
      decorators[_key] = arguments[_key];
    }
    return function (_ref4) {
      var _ref4$inline = _ref4.inline,
          inline = _ref4$inline === void 0 ? false : _ref4$inline,
          props = _objectWithoutProperties(_ref4, ["inline"]);
      return inline ? createInlineComponent(_objectSpread({}, props, {
        provider: provider,
        decorators: decorators
      }))(component) : {
        appendTo: appendTo,
        Component: (0, _react.createElement)(createGlobalComponent(_objectSpread({}, props, {
          provider: provider,
          decorators: decorators
        }))(component))
      };
    };
  };
};