UNPKG

tuya-panel-kit

Version:

a functional component library for developing tuya device panels!

239 lines (191 loc) 7.86 kB
Object.defineProperty(exports, "__esModule", { value: true }); var _jsxFileName = 'src/components/popup/index.js'; var _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; }; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _modal = require('../modal'); var _modal2 = _interopRequireDefault(_modal); var _countdown = require('./countdown'); var _countdown2 = _interopRequireDefault(_countdown); var _datePicker = require('./date-picker'); var _datePicker2 = _interopRequireDefault(_datePicker); var _timerPicker = require('./timer-picker'); var _timerPicker2 = _interopRequireDefault(_timerPicker); var _numberSelector = require('./number-selector'); var _numberSelector2 = _interopRequireDefault(_numberSelector); var _list = require('./list'); var _list2 = _interopRequireDefault(_list); var _picker = require('./picker'); var _picker2 = _interopRequireDefault(_picker); var _custom = require('./custom'); var _custom2 = _interopRequireDefault(_custom); var _notificationLegacy = require('../notification-legacy'); var _notificationLegacy2 = _interopRequireDefault(_notificationLegacy); var _dropdown = require('./dropdown'); var _dropdown2 = _interopRequireDefault(_dropdown); var _tips = require('../tips'); var _tips2 = _interopRequireDefault(_tips); var _utils = require('../../utils'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } var cx = _utils.RatioUtils.convertX; var commonProps = { onCancel: _modal2.default.close, onConfirm: _modal2.default.close }; var commonModalProps = { alignContainer: 'bottom', onMaskPress: _modal2.default.close }; var Popup = { countdown: function countdown(props, modalOpts) { var countdownProps = _extends({}, commonProps, props); var modalProps = _extends({}, commonModalProps, modalOpts); _modal2.default.render(_react2.default.createElement(_countdown2.default, _extends({}, countdownProps, { __source: { fileName: _jsxFileName, lineNumber: 31 } })), modalProps); }, datePicker: function datePicker(props, modalOpts) { var datePickerProps = _extends({}, commonProps, props); var modalProps = _extends({}, commonModalProps, modalOpts); _modal2.default.render(_react2.default.createElement(_datePicker2.default, _extends({}, datePickerProps, { __source: { fileName: _jsxFileName, lineNumber: 37 } })), modalProps); }, numberSelector: function numberSelector(props, modalOpts) { var numberSelectorProps = _extends({}, commonProps, props); var modalProps = _extends({}, commonModalProps, modalOpts); _modal2.default.render(_react2.default.createElement(_numberSelector2.default, _extends({}, numberSelectorProps, { __source: { fileName: _jsxFileName, lineNumber: 43 } })), modalProps); }, list: function list(props, modalOpts) { var listProps = _extends({}, commonProps, props); var modalProps = _extends({}, commonModalProps, modalOpts); _modal2.default.render(_react2.default.createElement(_list2.default, _extends({}, listProps, { __source: { fileName: _jsxFileName, lineNumber: 49 } })), modalProps); }, picker: function picker(props, modalOpts) { var pickerProps = _extends({}, commonProps, props); var modalProps = _extends({}, commonModalProps, modalOpts); _modal2.default.render(_react2.default.createElement(_picker2.default, _extends({}, pickerProps, { __source: { fileName: _jsxFileName, lineNumber: 55 } })), modalProps); }, custom: function custom(props, modalOpts) { var customProps = _extends({}, commonProps, props); var modalProps = _extends({}, commonModalProps, modalOpts); _modal2.default.render(_react2.default.createElement(_custom2.default, _extends({}, customProps, { __source: { fileName: _jsxFileName, lineNumber: 61 } })), modalProps); }, timerPicker: function timerPicker(props, modalOpts) { var timerPickerProps = _extends({}, commonProps, props); var modalProps = _extends({}, commonModalProps, modalOpts); _modal2.default.render(_react2.default.createElement(_timerPicker2.default, _extends({}, timerPickerProps, { __source: { fileName: _jsxFileName, lineNumber: 67 } })), modalProps); }, toast: function toast(props, modalOpts) { if (__DEV__) { console.warn('Popup.toast 已废弃,可能将会在后续版本中移除,请考虑使用 Notification.show'); } var noticeProps = _extends({ onClose: _modal2.default.close }, props); var modalProps = _extends({ alignContainer: 'top', mask: false }, modalOpts); _modal2.default.render(_react2.default.createElement(_notificationLegacy2.default, _extends({}, noticeProps, { __source: { fileName: _jsxFileName, lineNumber: 83 } })), modalProps); }, tips: function tips(props, modalOpts) { var contentStyle = props.contentStyle, modalChildStyle = props.modalChildStyle, maskStyle = props.maskStyle, alignContainer = props.alignContainer, onMaskPress = props.onMaskPress; var maskWidth = contentStyle !== undefined && contentStyle.width ? contentStyle.width : cx(64); var modalStyle = void 0; if (modalChildStyle !== undefined && modalChildStyle.height) { var height = modalChildStyle.height, rest = _objectWithoutProperties(modalChildStyle, ['height']); modalStyle = rest; } else { modalStyle = modalChildStyle; } var modalProps = _extends({}, modalOpts, { maskStyle: [{ backgroundColor: 'rgba(0, 0, 0, 0.1)', alignItems: 'center' }, maskStyle], modalChildStyle: [modalStyle, { minWidth: maskWidth }], alignContainer: alignContainer || 'center' }); _modal2.default.render(_react2.default.createElement(_tips2.default, _extends({}, props, { withModal: true, __source: { fileName: _jsxFileName, lineNumber: 103 } })), modalProps); }, dropdown: function dropdown(props, modalOpts) { var listProps = _extends({}, commonProps, props); var dropdownDirectionX = props.dropdownDirectionX, dropdownDirectionY = props.dropdownDirectionY, dropdownDirectionXValue = props.dropdownDirectionXValue, dropdownDirectionYValue = props.dropdownDirectionYValue; var maskStyle = { alignItems: dropdownDirectionX === 'left' ? 'flex-start' : 'flex-end', backgroundColor: 'transparent' }; if (dropdownDirectionX === 'left') { maskStyle.left = dropdownDirectionXValue || 0; } else { maskStyle.right = dropdownDirectionXValue || 0; } if (dropdownDirectionY === 'bottom') { maskStyle.bottom = dropdownDirectionYValue || 0; } else { maskStyle.top = dropdownDirectionYValue || 0; } var modalProps = _extends({}, commonModalProps, modalOpts, { maskStyle: maskStyle, alignContainer: dropdownDirectionY || 'top' }); _modal2.default.render(_react2.default.createElement(_dropdown2.default, _extends({}, listProps, { __source: { fileName: _jsxFileName, lineNumber: 136 } })), modalProps); }, close: _modal2.default.close, render: _modal2.default.render }; exports.default = Popup;