UNPKG

@cainiaofe/cn-ui-layout

Version:

- 安装 cone-cli | [Cone-CLI 使用指引](https://alidocs.dingtalk.com/i/nodes/xdqZp24KneBJzvGM6XezJvyb7RA0Nr1E) - `tnpm i -g @alife/cone-cli@latest` - 安装依赖包 - `cone install` - 启动研发 - `cone start`

127 lines (125 loc) 6.18 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports["default"] = exports.CnLayoutBlock = void 0; var _react = _interopRequireWildcard(require("react")); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose")); var _cnLayout = require("../../components/cn-layout"); var _util = require("../../common/util/util"); var _isPlainObject = _interopRequireDefault(require("lodash/isPlainObject")); var _useFooterAutoWidth = require("../../common/hook/useFooterAutoWidth"); var _eventName = require("../../common/util/event-name"); var _const = require("../../common/util/const"); var _classnames = _interopRequireDefault(require("classnames")); require("./view.scss"); var _excluded = ["children", "handleProps", "_context", "buttons", "_nodeId", "hidden", "title", "foldable", "_unsafe_MixedSetter_buttons_select", "className", "extraDom"]; var _window; function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; } var _ref = ((_window = window) === null || _window === void 0 ? void 0 : _window.CNUI) || {}, CnPageFooter = _ref.CnPageFooter, CnButton = _ref.CnButton, CnIcon = _ref.CnIcon; var CnLayoutBlock = exports.CnLayoutBlock = function CnLayoutBlock(props) { var _ref2 = props || {}, children = _ref2.children, handleProps = _ref2.handleProps, _context = _ref2._context, buttons = _ref2.buttons, _nodeId = _ref2._nodeId, hidden = _ref2.hidden, title = _ref2.title, foldable = _ref2.foldable, _unsafe_MixedSetter_buttons_select = _ref2._unsafe_MixedSetter_buttons_select, _ref2$className = _ref2.className, className = _ref2$className === void 0 ? '' : _ref2$className, extraDom = _ref2.extraDom, rest = (0, _objectWithoutPropertiesLoose2["default"])(_ref2, _excluded); var state = _context === null || _context === void 0 ? void 0 : _context.state; var footerId = "block-footer-" + _nodeId; var containerId = "block-" + _nodeId; var _useState = (0, _react.useState)(false), isFold = _useState[0], setIsFold = _useState[1]; var toggleOpen = function toggleOpen() { _const.cacheFoldStore[_nodeId] = !isFold; setIsFold(!isFold); }; (0, _useFooterAutoWidth.useFooterAutoWidth)({ footerId: footerId, containerId: containerId, hidden: hidden }); (0, _react.useEffect)(function () { if (hidden !== undefined) { (0, _eventName.emitEvent)(_eventName.CnSectionCalculateLayout, { _nodeId: _nodeId }); } }, [props === null || props === void 0 ? void 0 : props.hidden]); // 监听折叠状态变化,触发重新计算布局 (0, _react.useEffect)(function () { (0, _eventName.emitEvent)(_eventName.CnSectionCalculateLayout, { _nodeId: _nodeId }); }, [isFold]); if (hidden === true) { return null; } var extraProps = (0, _extends2["default"])({ id: containerId }, rest); if (typeof handleProps === 'function') { var tempProps = (0, _util.executeFunction)(handleProps, (0, _extends2["default"])({}, extraProps), _context === null || _context === void 0 ? void 0 : _context.state); if ((0, _isPlainObject["default"])(tempProps)) { extraProps = tempProps; } } var buttonDom = null; var isSlot = _unsafe_MixedSetter_buttons_select === 'SlotSetter'; if ((0, _util.isArrayNotEmpty)(buttons) || isSlot || foldable) { var _getLowCodeCoreUtil; buttonDom = /*#__PURE__*/_react["default"].createElement(CnPageFooter, { id: footerId, style: { position: 'fixed', bottom: 0, zIndex: 1 }, mode: 'block', leftSlot: foldable && CnButton ? /*#__PURE__*/_react["default"].createElement(CnButton, { onClick: toggleOpen, className: "cn-layout-block-fold-button" }, /*#__PURE__*/_react["default"].createElement(CnIcon, { type: 'arrow-double-left' })) : null, rightSlot: isSlot ? buttons : (_getLowCodeCoreUtil = (0, _util.getLowCodeCoreUtil)('util.makeButtons')) === null || _getLowCodeCoreUtil === void 0 ? void 0 : _getLowCodeCoreUtil({ buttons: buttons === null || buttons === void 0 ? void 0 : buttons.map(function (item) { return (0, _extends2["default"])({}, item, { position: (0, _util.getLowCodeCoreUtil)('enumMap.ButtonPosition.blockButton') }); }), _context: _context, state: state, recordDataSource: {} }) }); } return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", { className: (0, _classnames["default"])({ 'cn-layout-block-toggle-container': true, 'cn-layout-block-toggle-container-fold': isFold }), onClick: toggleOpen }, /*#__PURE__*/_react["default"].createElement("div", { className: "cn-layout-block-toggle-button" })), /*#__PURE__*/_react["default"].createElement(_cnLayout.CnLayoutBlock, (0, _extends2["default"])({}, extraProps, { className: (0, _classnames["default"])(className, { 'cn-layout-block-fold': isFold }) }), extraDom, children, buttonDom)); }; CnLayoutBlock.typeMark = 'Block'; CnLayoutBlock.displayName = 'CnLayoutBlock'; var _default = exports["default"] = CnLayoutBlock;