ukelli-ui
Version:
ukelli-ui 是基于 React 的 UI 库,提供简约和功能齐全的组件,可高度定制的组件接口,灵活的配置,提供给开发者另一种开发思路,也致力于尝试不同的组件使用和开发方向。
236 lines (190 loc) • 9.11 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.PopoverEntity = exports.GlobalPopover = exports.Pop = exports.PopoverHelper = void 0;
var _react = _interopRequireWildcard(require("react"));
var _reactDom = _interopRequireDefault(require("react-dom"));
var _popover = _interopRequireDefault(require("./popover"));
var _setDom = _interopRequireDefault(require("../set-dom"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
var PopoverHelper =
/*#__PURE__*/
function (_Component) {
_inherits(PopoverHelper, _Component);
function PopoverHelper(props) {
var _this;
_classCallCheck(this, PopoverHelper);
_this = _possibleConstructorReturn(this, _getPrototypeOf(PopoverHelper).call(this, props));
_this.state = {
relativeElem: null,
open: false,
children: null
};
return _this;
}
_createClass(PopoverHelper, [{
key: "closePopover",
value: function closePopover() {
console.warn('closePopover 要被废弃了,请使用 close');
this.close();
}
}, {
key: "close",
value: function close() {
this.setState({
open: false
});
}
}, {
key: "showPopover",
value: function showPopover() {
this.show.apply(this, arguments);
}
}, {
key: "show",
value: function show(elem, isShow, children, props) {
var _isShow = typeof isShow !== 'undefined' ? isShow : !this.state.open;
this.setState(function (prevState) {
return _objectSpread({}, props, {
relativeElem: elem || prevState.relativeElem,
open: _isShow,
children: children || prevState.children
});
});
}
}]);
return PopoverHelper;
}(_react.Component);
exports.PopoverHelper = PopoverHelper;
var PopoverWrapper =
/*#__PURE__*/
function (_PopoverHelper) {
_inherits(PopoverWrapper, _PopoverHelper);
function PopoverWrapper() {
_classCallCheck(this, PopoverWrapper);
return _possibleConstructorReturn(this, _getPrototypeOf(PopoverWrapper).apply(this, arguments));
}
_createClass(PopoverWrapper, [{
key: "render",
value: function render() {
var _this2 = this;
return _react["default"].createElement(_popover["default"], _extends({}, this.props, this.state, {
onClose: function onClose(e) {
return _this2.close();
}
}));
}
}]);
return PopoverWrapper;
}(PopoverHelper);
var PopoverEntity =
/*#__PURE__*/
function () {
function PopoverEntity() {
var _this3 = this;
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
_classCallCheck(this, PopoverEntity);
_defineProperty(this, "savePopWrapper", function (e) {
if (!e) return;
_this3.popoverEntity = e;
});
var _options$id = options.id,
id = _options$id === void 0 ? 'topPopover' : _options$id,
_options$fixed = options.fixed,
fixed = _options$fixed === void 0 ? false : _options$fixed;
this.id = id;
this.prevProps = {
fixed: fixed
};
this.popoverEntity = {};
this.prevOptions = {};
this.lifeTimer = null;
this.initDOM({});
}
_createClass(PopoverEntity, [{
key: "initDOM",
value: function initDOM(props) {
var topPopoverDOM = (0, _setDom["default"])(this.id);
var popoverWrapper = _react["default"].createElement(PopoverWrapper, _extends({}, props, {
ref: this.savePopWrapper
}));
_reactDom["default"].render(popoverWrapper, topPopoverDOM);
}
}, {
key: "showPopover",
value: function showPopover() {
console.warn('showPopover 要被废弃了,请使用 show 或者 set');
this.show.apply(this, arguments);
}
}, {
key: "setPopover",
value: function setPopover() {
console.warn('setPopover 要被废弃了,请使用 show 或者 set');
this.show.apply(this, arguments);
}
}, {
key: "show",
value: function show(options) {
options.open = true;
this.set(options);
}
}, {
key: "set",
value: function set(options) {
var _options = Object.assign({}, this.prevOptions, options);
var elem = _options.elem,
children = _options.children,
open = _options.open,
_options$props = _options.props,
props = _options$props === void 0 ? this.prevProps : _options$props;
this.prevProps = props;
this.prevOptions = _options;
this.popoverEntity.show(elem, open, children, props);
}
}, {
key: "close",
value: function close() {
var nextState = {
open: false
};
this.set(nextState);
}
}, {
key: "delayClose",
value: function delayClose() {
var _this4 = this;
var timer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 5000;
if (this.lifeTimer) clearTimeout(this.lifeTimer);
this.lifeTimer = setTimeout(function () {
_this4.close();
}, timer);
}
}]);
return PopoverEntity;
}();
exports.PopoverEntity = PopoverEntity;
var GlobalPopover = new PopoverEntity();
exports.GlobalPopover = GlobalPopover;
var Pop = GlobalPopover;
/**
* 例子
* GlobalPopover.setPopover({
* position, width = 400, onClose, elem, children, open, props = prevProps, id = 'topPopover'
* })
* id: 用于区分不同的 popover ,避免关闭错误
*/
exports.Pop = Pop;