UNPKG

@riil-frontend/component-page-config

Version:

page config components,include components list,component attribute panel and page canvas

279 lines (245 loc) 10.3 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports["default"] = void 0; var _collapse = _interopRequireDefault(require("@alifd/next/lib/collapse")); var _message = _interopRequireDefault(require("@alifd/next/lib/message")); var _balloon = _interopRequireDefault(require("@alifd/next/lib/balloon")); var _box = _interopRequireDefault(require("@alifd/next/lib/box")); var _divider = _interopRequireDefault(require("@alifd/next/lib/divider")); var _search = _interopRequireDefault(require("@alifd/next/lib/search")); var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose")); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _react = _interopRequireWildcard(require("react")); var _lodash = _interopRequireDefault(require("lodash")); var _propTypes = _interopRequireDefault(require("prop-types")); var _componentRiilIcon = _interopRequireDefault(require("@riil-frontend/component-riil-icon")); require("./index.scss"); var _util = require("../util"); var _constant = require("../constant"); var _IconTitle = _interopRequireDefault(require("./IconTitle")); function ComList(props) { var comList = props.comList, onItemDragStart = props.onItemDragStart, collapseProps = props.collapseProps, customGetComRequire = props.customGetComRequire, onItemDragEnd = props.onItemDragEnd, comDict = props.comDict, helpVisible = props.helpVisible; var _useState = (0, _react.useState)(""), searchKey = _useState[0], setSearchKey = _useState[1]; var _useState2 = (0, _react.useState)([]), expandedKeys = _useState2[0], setExpandedKeys = _useState2[1]; var _useState3 = (0, _react.useState)({ config: [], contentObj: { children: [] }, otherList: [] }), data = _useState3[0], setData = _useState3[1]; (0, _react.useEffect)(function () { var _config = comList && comList.map(function (ele, index) { var children = []; ele.children.forEach(function (item) { if (!item.importFrom || item.type === _constant.COMLIST_TEMPLATE_TYPE) { children.push(item); } else { var Com = (0, _util.getComRequire)(item.type, comDict, customGetComRequire); var conf = Com ? _lodash["default"].cloneDeep(Com.config) : null; conf = (0, _extends2["default"])({}, conf, item.config); var myConfig = item.config, other = (0, _objectWithoutPropertiesLoose2["default"])(item, ["config"]); conf && children.push((0, _extends2["default"])({}, conf, other)); } }); return (0, _extends2["default"])({}, ele, { children: children }); }); var _contentObj = null; var _otherList = []; _config.forEach(function (ele) { if (ele.key === "layout") { _contentObj = ele; } else { _otherList.push(ele); } }); _otherList = _otherList.map(function (ele) { var children = ele.children.filter(function (item) { if (searchKey === "") { return item; } var name = item.name.toLocaleLowerCase(); return name.includes(searchKey.toLocaleLowerCase()); }); return (0, _extends2["default"])({}, ele, { children: children }); }); setData({ config: _config, contentObj: _contentObj, otherList: _otherList }); setExpandedKeys(_otherList.map(function (ele) { return ele.key; })); }, [comList, comDict, searchKey]); var config = data.config, contentObj = data.contentObj, otherList = data.otherList; return /*#__PURE__*/_react["default"].createElement("div", { className: "uicbb-com-list-3" }, /*#__PURE__*/_react["default"].createElement("div", { className: "uicbb-com-list-search" }, /*#__PURE__*/_react["default"].createElement(_search["default"], { hasClear: true, style: { width: "100%" }, shape: "simple", onChange: function onChange(value) { setSearchKey(value); } })), /*#__PURE__*/_react["default"].createElement("div", { className: "uicbb-com-list-body" }, contentObj ? /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", { className: "uicbb-com-list-contenter-header" }, /*#__PURE__*/_react["default"].createElement(_divider["default"], { direction: "ver" }), /*#__PURE__*/_react["default"].createElement("span", null, contentObj.title)), /*#__PURE__*/_react["default"].createElement("div", { className: "uicbb-com-list-contenter-wrap" }, /*#__PURE__*/_react["default"].createElement(_box["default"], { direction: "row", wrap: true, spacing: 28, justify: "space-between" }, contentObj.children.map(function (item, index) { var _item$attributes; return /*#__PURE__*/_react["default"].createElement("div", { key: "comlistContent" + index, className: "icbb-com-list-item " + ((index === 0 ? helpVisible : false) ? "hover-state" : ""), draggable: true, onDragStart: function onDragStart(e) { e.dataTransfer.setData("text/plain", JSON.stringify(item)); onItemDragStart && onItemDragStart(item, e); }, onDragEnd: function onDragEnd(e) { onItemDragEnd && onItemDragEnd(e); }, onDragOver: function onDragOver(e) {} }, /*#__PURE__*/_react["default"].createElement(_balloon["default"], { align: "r", offset: [6, 0], closable: false, visible: index === 0 ? helpVisible : false, trigger: /*#__PURE__*/_react["default"].createElement("div", { key: "comlistContent" + index, className: "uicbb-com-list-item " + ((index === 0 ? helpVisible : false) ? "hover-state" : ""), draggable: true, onDragStart: function onDragStart(e) { e.dataTransfer.setData("text/plain", JSON.stringify(item)); onItemDragStart && onItemDragStart(item, e); }, onDragEnd: function onDragEnd(e) { onItemDragEnd && onItemDragEnd(e); }, onDragOver: function onDragOver(e) {} }, /*#__PURE__*/_react["default"].createElement(_box["default"], { className: "uicbb-com-list-item-icon", align: "center", justify: "center" }, /*#__PURE__*/_react["default"].createElement(_componentRiilIcon["default"], { type: item.icon, size: "medium" })), /*#__PURE__*/_react["default"].createElement("div", { style: { textAlign: "center" }, className: "uicbb-com-list-item-label" }, item.name || (item === null || item === void 0 ? void 0 : (_item$attributes = item.attributes) === null || _item$attributes === void 0 ? void 0 : _item$attributes.comName) || item.type)) }, "\u8BF7\u5148\u62D6\u5165\u5BB9\u5668\uFF0C\u518D\u62D6\u5165\u7EC4\u4EF6")); })))) : null, /*#__PURE__*/_react["default"].createElement("div", { className: "uicbb-com-list-divider" }, /*#__PURE__*/_react["default"].createElement(_divider["default"], null)), /*#__PURE__*/_react["default"].createElement(_collapse["default"], (0, _extends2["default"])({}, collapseProps, { className: "com-list-collapse collapse-no-title-background", expandedKeys: expandedKeys, onExpand: function onExpand(v) { setExpandedKeys(v); } }), otherList.map(function (ele) { return /*#__PURE__*/_react["default"].createElement(_collapse["default"].Panel, { className: ele.children.length > 0 ? "" : "empty-content", key: ele.key, title: ele.iconInfo ? /*#__PURE__*/_react["default"].createElement(_IconTitle["default"], { title: ele.title, iconInfo: ele.iconInfo }) : ele.title }, ele.message ? /*#__PURE__*/_react["default"].createElement(_message["default"], { type: "notice", closeable: true, style: { marginBottom: 16 } }, ele.message) : null, /*#__PURE__*/_react["default"].createElement(_box["default"], { direction: "row", wrap: true, spacing: [12, 28], justify: "space-between" }, ele.children.map(function (item, index) { var _item$attributes2; return /*#__PURE__*/_react["default"].createElement("div", { key: "comlist" + index, className: "uicbb-com-list-item", draggable: true, onDragStart: function onDragStart(e) { e.dataTransfer.setData("text/plain", JSON.stringify(item)); onItemDragStart && onItemDragStart(item, e); }, onDragEnd: function onDragEnd(e) { onItemDragEnd && onItemDragEnd(e); }, onDragOver: function onDragOver(e) {} }, /*#__PURE__*/_react["default"].createElement(_box["default"], { className: "uicbb-com-list-item-icon", align: "center", justify: "center" }, /*#__PURE__*/_react["default"].createElement("img", { src: item.path + "/assets/icon/" + item.icon + ".svg" })), /*#__PURE__*/_react["default"].createElement("div", { style: { textAlign: "center" }, className: "uicbb-com-list-item-label" }, item.name || (item === null || item === void 0 ? void 0 : (_item$attributes2 = item.attributes) === null || _item$attributes2 === void 0 ? void 0 : _item$attributes2.comName) || item.type)); }))); })))); } ComList.propTypes = { /** * 组件列表数据exp:[{key:'workbench',title:'工作台',children:[{type: 'component-exp-alarm-list', importFrom: 'npm',icon:'help'}] }], * */ comList: _propTypes["default"].array, /** * 当组件图标拖拽开始时回调 * @type {(config:Object,e:MouseEvent)=>{}} config为拖拽组件的配置数据,e为鼠标event */ onItemDragStart: _propTypes["default"].func, /** * 透传折叠面板属性 */ collapseProps: _propTypes["default"].object, /** * 自定义组件类引用方法 */ customGetComRequire: _propTypes["default"].func }; ComList.defaultProps = {}; var _default = ComList; exports["default"] = _default;