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`

241 lines (239 loc) 7.59 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.CnLayoutBlockPrototype = void 0; var _i18n = _interopRequireDefault(require("../../locales/i18n")); var _logo = _interopRequireDefault(require("./logo")); var _autoBlock = require("../cn-layout-cell/components/split/auto-block"); var _util = require("../../common/util/util"); var _idSetter = _interopRequireDefault(require("../../common/setter/id-setter")); var _setterSnippet = require("../../common/manager/setter-snippet"); var _columnSelectSetter = _interopRequireDefault(require("../../common/setter/column-select-setter")); var _block = require("../../common/util/block"); var _getLowCodeCoreUtil; var getAcc = function getAcc(arr, index) { if (Array.isArray(arr) && arr.length > 0) { return arr.reduce(function (last, count, i) { if (i <= index) { return +count + last; } return last; }, 0); } return 0; }; var CnLayoutBlockPrototype = exports.CnLayoutBlockPrototype = { title: _i18n["default"].get({ id: 'Block', dm: '块' }), componentName: 'CnLayoutBlock', icon: _logo["default"], docUrl: '', isContainer: true, canResizing: function canResizing(node, triggerDirection) { (0, _autoBlock.updateSpan)({ parent: node.parent, child: node, type: 'refresh' }); // 只开放块右侧句柄 if (['e'].includes(triggerDirection)) { return true; } return false; }, onResizeStart: function onResizeStart(e, d, currentNode) { var _ref = currentNode || {}, parent = _ref.parent; if (parent) { var parentNode = parent.getDOMNode(); if (parentNode) { currentNode.parentRect = parentNode.getBoundingClientRect(); } } currentNode.lastDeltaX = 0; currentNode.lastGroupList = ''; }, onResize: function onResize(e, d, currentNode) { var _currentNode$parent; // 获取合法移动位移 // 判断是否要变化 // 更新鼠标开始位置,更新span信息 var deltaX = e.deltaX, trigger = e.trigger; var parentIndex = currentNode.index; var lastFlatenMap = currentNode === null || currentNode === void 0 ? void 0 : (_currentNode$parent = currentNode.parent) === null || _currentNode$parent === void 0 ? void 0 : _currentNode$parent.lastFlatenMap; if (!lastFlatenMap || !deltaX) { return; } var _lastFlatenMap$parent = lastFlatenMap[parentIndex], groupInnerIndex = _lastFlatenMap$parent.groupInnerIndex, groupList = _lastFlatenMap$parent.groupList; var latestDeltaX = deltaX - currentNode.lastDeltaX || 0; var afterGroupList = (0, _block.calculateAfterGroupList)({ beforeGroupList: groupList.split(','), direction: latestDeltaX > 0 ? 'r' : 'l', groupInnerIndex: groupInnerIndex }); var groupAccInnerIndex = trigger === 'e' ? groupInnerIndex : groupInnerIndex - 1; if (!(afterGroupList !== null && afterGroupList !== void 0 && afterGroupList.length)) { return; } var step = getAcc(afterGroupList, groupAccInnerIndex) - getAcc(groupList.split(','), groupAccInnerIndex); if (currentNode.movementAtOnce === step && currentNode.lastGroupList === groupList) { return; } var stepPx = currentNode.parentRect.width / 12 * step; var tolerance = 40; if (Math.abs(latestDeltaX) > Math.abs(stepPx) - tolerance) { currentNode.movementAtOnce = step; currentNode.lastGroupList = groupList; currentNode.lastDeltaX += stepPx; (0, _autoBlock.updateSpan)({ parent: currentNode.parent, child: currentNode, type: 'resize', offset: step }); } }, onResizeEnd: function onResizeEnd(e, d, currentNode) { currentNode.movementAtOnce = 'clear'; }, configure: [{ name: 'isCnLayoutBlock', title: 'CnLayoutBlock', initialValue: true, display: 'none' }, { name: '_context', title: _i18n["default"].get({ id: 'Context', dm: '上下文' }), initialValue: { type: 'JSExpression', value: 'this' }, display: 'none' }, { title: _i18n["default"].get({ id: 'Style', dm: '样式' }), type: 'group', display: 'accordion', collapsed: false, items: [{ name: 'hidden', display: 'inline', title: _i18n["default"].get({ id: 'WhetherToHide', dm: '是否隐藏' }), setter: 'VariableSetter', supportVariable: true }, { name: 'foldable', title: _i18n["default"].get({ id: 'OpenDeploymentStow', dm: '开启展开收起' }), initialValue: false, display: 'inline', setter: 'BoolSetter' }] }, (0, _setterSnippet.getGroupSetterSnippet)({ items: [{ name: 'span', title: _i18n["default"].get({ id: 'HowManyColumnsInARow12Total', dm: '在一行中占几列(共12列)' }), display: 'inline', setter: (0, _setterSnippet.getMixedSetterSnippet)({ setters: [{ componentName: _columnSelectSetter["default"], title: _i18n["default"].get({ id: 'GraphicSelection', dm: '图形选择' }) }, { componentName: 'NumberSetter', title: _i18n["default"].get({ id: 'DigitalInput', dm: '数字输入' }) }] }) }], outerConfig: { title: _i18n["default"].get({ id: 'Layout', dm: '布局' }) } }), { name: 'buttons', title: _i18n["default"].get({ id: 'BottomButtonBar', dm: '底部按钮栏' }), display: 'accordion', // collapsed:false, initialValue: [], setter: (_getLowCodeCoreUtil = (0, _util.getLowCodeCoreUtil)('button.createButtonListSetters')) === null || _getLowCodeCoreUtil === void 0 ? void 0 : _getLowCodeCoreUtil({ position: (0, _util.getLowCodeCoreUtil)('enumMap.ButtonPosition.blockButton'), supportCnFormat: true }) }, { title: _i18n["default"].get({ id: 'AdvancedConfiguration', dm: '高级配置' }), type: 'group', collapsed: true, display: 'accordion', items: [{ name: '_nodeId', title: _i18n["default"].get({ id: 'NodeID', dm: '节点 ID' }), display: 'inline', initialValue: function initialValue() { return this.getNode().id; }, setter: /*#__PURE__*/React.createElement(_idSetter["default"], null) }, { name: 'handleProps', title: _i18n["default"].get({ id: 'SetComponentPropsManually', dm: '手动设置组件props' }), display: 'inline', setter: { title: _i18n["default"].get({ id: 'WritingJsExpressions', dm: '写js表达式' }), componentName: 'CnRowDataSetter', props: function props() { return { list: [], initialCode: _i18n["default"].get({ id: 'OldPropsStateProps', dm: "(oldProps, state) =>{\n // 给组件设置新的props。\n // oldProps.xxx = 'xxx';\n // return oldProps;\n}" }), tip: _i18n["default"].get({ id: 'OldPropsTheComponentsOriginalPro_2018921453', dm: 'oldProps: 组件的原始props\nstate:全部的数据,在左侧列表中选择使用。' }) }; } } }] }] }; // 原型配置请参考:https://lark.alipay.com/vision/docs/prototype