@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
JavaScript
"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