UNPKG

maycur-business

Version:

maycur business react components of web

95 lines (77 loc) 4.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = createPopperInstance; var _popper = _interopRequireDefault(require("popper.js")); var _defer = _interopRequireDefault(require("../utils/defer")); var _prefix = _interopRequireDefault(require("../utils/prefix")); var _getCorePlacement = _interopRequireDefault(require("../utils/getCorePlacement")); var _getInnerElements2 = _interopRequireDefault(require("../utils/getInnerElements")); var _getOffsetDistanceInPx = _interopRequireDefault(require("../utils/getOffsetDistanceInPx")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (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 = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { 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; } /** * Creates a new popper instance * @param {Object} data * @return {Object} - the popper instance */ function createPopperInstance(data) { var el = data.el, popper = data.popper, _data$settings = data.settings, position = _data$settings.position, popperOptions = _data$settings.popperOptions, offset = _data$settings.offset, distance = _data$settings.distance, flipDuration = _data$settings.flipDuration, _onUpdate = _data$settings.onUpdate, _onCreate = _data$settings.onCreate; var _getInnerElements = (0, _getInnerElements2["default"])(popper), tooltip = _getInnerElements.tooltip; var config = _objectSpread({ placement: position }, popperOptions || {}, { modifiers: _objectSpread({}, popperOptions ? popperOptions.modifiers : {}, { flip: _objectSpread({ padding: distance + 5 /* 5px from viewport boundary */ }, popperOptions && popperOptions.modifiers ? popperOptions.modifiers.flip : {}), offset: _objectSpread({ offset: offset }, popperOptions && popperOptions.modifiers ? popperOptions.modifiers.offset : {}) }), onUpdate: function onUpdate(dataObject) { var styles = tooltip.style; styles.top = ''; styles.bottom = ''; styles.left = ''; styles.right = ''; styles[(0, _getCorePlacement["default"])(popper.getAttribute('x-placement'))] = (0, _getOffsetDistanceInPx["default"])(distance); _onUpdate && _onUpdate(dataObject); }, onCreate: function onCreate(dataObject) { _onCreate && _onCreate(dataObject); } }); // Update the popper's position whenever its content changes // Not supported in IE10 unless polyfilled if (window.MutationObserver) { var styles = popper.style; var observer = new MutationObserver(function (mutations, observer) { styles[(0, _prefix["default"])('transitionDuration')] = '0ms'; data.popperInstance.update(); (0, _defer["default"])(function () { styles[(0, _prefix["default"])('transitionDuration')] = flipDuration + 'ms'; }); }); observer.observe(popper, { childList: true, subtree: true, characterData: true }); data._mutationObserver = observer; } return new _popper["default"](el, popper, config); }