UNPKG

@cainiaofe/cn-ui-charts

Version:
547 lines (544 loc) 17 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.createCellSnippet = exports.createBlockSnippet = exports.createAsideSnippet = void 0; exports.createDefaultFilter = createDefaultFilter; exports.createFeatureSetters = createFeatureSetters; exports.createFilterConfigSetter = createFilterConfigSetter; exports.createFilterSelectSetters = createFilterSelectSetters; exports.createGridlSnippet = exports.createFooterSnippet = void 0; exports.createHeaderSnippet = createHeaderSnippet; exports.createRowColSnippet = exports.createPSnippet = void 0; exports.createSectionInitialChildren = createSectionInitialChildren; exports.createSectionSnippet = void 0; exports.getArraySetterSnippet = getArraySetterSnippet; exports.getChartCommonOptions = getChartCommonOptions; exports.getChartCommonStyleSetterSnippet = getChartCommonStyleSetterSnippet; exports.getCnSelectSetterSnippet = getCnSelectSetterSnippet; exports.getColumnCharOptions = getColumnCharOptions; exports.getComponentSlotSetterSnippet = getComponentSlotSetterSnippet; exports.getComponentTitle = getComponentTitle; exports.getDataOriginSetterSnippet = getDataOriginSetterSnippet; exports.getGroupSetterSnippet = getGroupSetterSnippet; exports.getJSXTemplate = getJSXTemplate; exports.getLineCharOptions = getLineCharOptions; exports.getNodeIdSetterSnippet = getNodeIdSetterSnippet; exports.getObjectSetterSnippet = getObjectSetterSnippet; exports.getPieCharOptions = getPieCharOptions; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _const = require("../util/const"); var _util = require("../util/util"); var _feature = require("./feature"); var _checkboxSetter = _interopRequireDefault(require("../setter/checkbox-setter")); var _displayPosition = require("../../types/display-position"); var _idSetter = _interopRequireDefault(require("../setter/id-setter")); function getObjectSetterSnippet(config) { var _ref = config || {}, items = _ref.items; return { componentName: 'ObjectSetter', props: { config: { items: items } } }; } function createHeaderSnippet() { return { componentName: 'CnLayoutHeader', title: '页头', props: {}, children: [createCellSnippet()] }; } ; var createCellSnippet = function createCellSnippet(children) { return { componentName: 'CnLayoutCell', title: '容器', props: {}, children: children || [] }; }; exports.createCellSnippet = createCellSnippet; var createFooterSnippet = function createFooterSnippet() { return { componentName: 'CnLayoutFooter', title: '页尾', props: {}, children: [createCellSnippet()] }; }; exports.createFooterSnippet = createFooterSnippet; var createSectionSnippet = function createSectionSnippet(_temp) { var _ref2 = _temp === void 0 ? {} : _temp, blockProps = _ref2.blockProps; return { componentName: _const.SECTION, title: '瓷片分组', props: {}, children: [createBlockSnippet({ blockProps: blockProps })] }; }; exports.createSectionSnippet = createSectionSnippet; var createBlockSnippet = function createBlockSnippet(_temp2) { var _ref3 = _temp2 === void 0 ? {} : _temp2, blockProps = _ref3.blockProps; return { componentName: _const.TILE, title: '瓷片', props: (0, _extends2["default"])({}, blockProps), children: [createCellSnippet()] }; }; exports.createBlockSnippet = createBlockSnippet; var createGridlSnippet = function createGridlSnippet() { return { componentName: _const.GRID, title: '网格容器', props: { rows: 2, cols: 2 }, children: [] }; }; exports.createGridlSnippet = createGridlSnippet; var createRowColSnippet = function createRowColSnippet(componentName) { if (componentName === void 0) { componentName = _const.COL; } return { componentName: componentName, title: componentName === _const.COL ? '列容器' : '行容器', props: {}, children: [] }; }; exports.createRowColSnippet = createRowColSnippet; var createAsideSnippet = function createAsideSnippet() { return { componentName: 'CnLayoutAside', title: '侧边栏', props: {}, children: [createCellSnippet(createSectionSnippet())] }; }; /** * 返回包裹了P标签的schema,会根据dragged的类型设置不同的属性 * @param {*} dragged 被拖入的组件,是个引擎 node 类型 * @returns {} 返回值是个对象 */ exports.createAsideSnippet = createAsideSnippet; var createPSnippet = function createPSnippet() { return { componentName: _const.P, title: '段落', props: {}, children: [] }; }; exports.createPSnippet = createPSnippet; function getDataOriginSetterSnippet(config) { if (config === void 0) { config = {}; } return (0, _extends2["default"])({ name: 'dataOrigin', title: '数据来源', display: 'block', initialValue: 'static', setter: { componentName: 'RadioGroupSetter', props: { options: [{ title: '静态数据', value: 'static' }, { title: '远程请求', value: 'request' }] } } }, config); } function createSectionInitialChildren() { return [createBlockSnippet({ blockProps: { _layout: { span: 6 } } }), createBlockSnippet({ blockProps: { _layout: { span: 6 } } })]; } function createFilterSelectSetters(config, extraConfig) { var _ref4 = config || {}, mode = _ref4.mode; return [(0, _extends2["default"])({ name: '_bindFilter', title: '选择筛选栏', setter: function setter(prop) { var _prop$getNode, _prop$getNode$call, _prop$getNode$call$do, _prop$getNode$call$do2; var options = []; prop === null || prop === void 0 ? void 0 : (_prop$getNode = prop.getNode) === null || _prop$getNode === void 0 ? void 0 : (_prop$getNode$call = _prop$getNode.call(prop)) === null || _prop$getNode$call === void 0 ? void 0 : (_prop$getNode$call$do = _prop$getNode$call.document) === null || _prop$getNode$call$do === void 0 ? void 0 : (_prop$getNode$call$do2 = _prop$getNode$call$do.nodesMap) === null || _prop$getNode$call$do2 === void 0 ? void 0 : _prop$getNode$call$do2.forEach(function (item) { if (item.getPropValue('isCnFilter')) { var _item$propsData; var prefix = '筛选栏'; var id = item.id || ''; var title = prefix + "_" + ((0, _util.handleI18nLabel)(item === null || item === void 0 ? void 0 : (_item$propsData = item.propsData) === null || _item$propsData === void 0 ? void 0 : _item$propsData.title) || ''); options.push({ title: title, value: id }); } }); return { componentName: 'CnSelectSetter', props: { mode: mode, options: options, selectProps: { hasClear: true } } }; } }, extraConfig)]; } function createFilterConfigSetter() { return { name: 'filterConfig', title: '过滤条件', setter: getObjectSetterSnippet({ items: [].concat(createFilterSelectSetters({ mode: 'multiple' }, { title: '绑定筛选条件' })) }) }; } function getChartCommonStyleSetterSnippet(config) { var _ref5 = config || {}, _ref5$items = _ref5.items, items = _ref5$items === void 0 ? [] : _ref5$items, heightConfig = _ref5.heightConfig; return { name: 'chartStyle', title: '样式', display: 'accordion', setter: getObjectSetterSnippet({ items: [(0, _extends2["default"])({ name: 'height', title: '高度', setter: 'NumberSetter', defaultValue: 288 }, heightConfig)].concat(items) }) }; } function getGroupSetterSnippet(config) { var _ref6 = config || {}, outerConfig = _ref6.outerConfig, items = _ref6.items; return (0, _extends2["default"])({ type: 'group', title: '分组', // extraProps: { // display: 'block', // }, display: 'accordion', items: items }, outerConfig); } function getArraySetterSnippet(config) { var _ref7 = config || {}, initialValue = _ref7.initialValue, configure = _ref7.configure; return { componentName: 'ArraySetter', props: { mode: 'list', itemSetter: { componentName: 'ObjectSetter', initialValue: initialValue, props: { config: { items: configure } } } } }; } function getCnSelectSetterSnippet(config) { var _ref8 = config || {}, propsConfig = _ref8.propsConfig, options = _ref8.options; return { componentName: 'CnSelectSetter', props: (0, _extends2["default"])({ options: options, selectProps: { hasClear: true } }, propsConfig) }; } function getComponentSlotSetterSnippet(config) { var _ref9 = config || {}, title = _ref9.title, slotInitialValue = _ref9.slotInitialValue; return { name: 'componentSlot', title: title || '开启区域筛选', setter: { componentName: "SlotSetter", title: "组件坑位", initialValue: slotInitialValue || { type: "JSSlot", value: [createDefaultFilter()] } }, extraProps: { getValue: function getValue(target, value) { if (value && (value === null || value === void 0 ? void 0 : value.type) === 'JSSlot') { return value; } else if (value === undefined || value === null) { return ''; } else { return { type: "JSSlot", value: [{ componentName: "CnFilter", props: { title: '区域的筛选栏' } }] }; } } } }; } function getChartCommonOptions() { return { autoFit: true // theme: "classic", }; } function getPieCharOptions() { return (0, _extends2["default"])({}, getChartCommonOptions(), { type: "interval", coordinate: { type: "theta" }, transform: [{ type: "stackY" }], animate: { enter: { type: "waveIn" } } }); } function getColumnCharOptions() { return (0, _extends2["default"])({}, getChartCommonOptions(), { type: "interval" }); } function getLineCharOptions() { return (0, _extends2["default"])({}, getChartCommonOptions(), { type: "line" }); } function createDefaultFilter() { return { componentName: "CnFilter", props: { title: '瓷片筛选栏', filterStyle: { showFolder: false, showSelected: false, enableConfig: false, showBottomLine: false, hideButton: true, removeEmptyLabel: true, size: 'small', maxVisibleRow: 999 }, className: 'l2-cn-filter-in-chart', config: [{ "label": "", "name": "radio", "componentName": "RadioGroup", "options": { "extra": { "direction": "hoz", "type": "button" }, "dataSource": [{ "label": "选项1", "value": "radio1" }, { "label": "选项2", "value": "radio2" }], "dataOrigin": "static" } }] } }; } function createFeatureSetters(config) { if (config === void 0) { config = {}; } var _config = config, position = _config.position; var prototypeList = (0, _util.getItemPrototypeListByPosition)({ position: position, primaryKey: 'name', componentMap: _feature.componentMap }); var configure = []; if ((prototypeList === null || prototypeList === void 0 ? void 0 : prototypeList.length) > 0) { configure.push({ name: 'options', display: 'plain', title: '请完善配置', setter: { componentName: 'ObjectSetter', props: { config: { items: [].concat(prototypeList) } } } }); } else { return []; } return { componentName: 'ArraySetter', props: { mode: 'list', itemSetter: { componentName: 'ObjectSetter', initialValue: { active: true }, props: { config: { items: [{ name: 'name', display: 'inline', title: '功能名称', isRequired: true, setter: { componentName: 'SelectSetter', props: function props(field) { var _field$parent, _field$parent$parent, _field$parent$parent$, _field$parent$parent$2; var parentComponentConfig = field === null || field === void 0 ? void 0 : (_field$parent = field.parent) === null || _field$parent === void 0 ? void 0 : (_field$parent$parent = _field$parent.parent) === null || _field$parent$parent === void 0 ? void 0 : (_field$parent$parent$ = _field$parent$parent.parent) === null || _field$parent$parent$ === void 0 ? void 0 : (_field$parent$parent$2 = _field$parent$parent$.getValue) === null || _field$parent$parent$2 === void 0 ? void 0 : _field$parent$parent$2.call(_field$parent$parent$); var componentName = parentComponentConfig === null || parentComponentConfig === void 0 ? void 0 : parentComponentConfig.componentName; var validatorList = (0, _util.getItemListByPosition)({ position: position, componentMap: _feature.componentMap, extraQueryParams: { showInFilterComponentList: componentName } }); return { options: validatorList }; } }, extraProps: { setValue: function setValue(target, value) { var _Object$keys; var defaultProps = (0, _util.getItemDefaultProps)(_feature.componentMap, position, value); if (defaultProps && ((_Object$keys = Object.keys(defaultProps)) === null || _Object$keys === void 0 ? void 0 : _Object$keys.length) > 0) { var _target$parent, _target$parent$setPro; target === null || target === void 0 ? void 0 : (_target$parent = target.parent) === null || _target$parent === void 0 ? void 0 : (_target$parent$setPro = _target$parent.setPropValue) === null || _target$parent$setPro === void 0 ? void 0 : _target$parent$setPro.call(_target$parent, 'options', defaultProps); } else { var _target$parent2, _target$parent2$setPr; target === null || target === void 0 ? void 0 : (_target$parent2 = target.parent) === null || _target$parent2 === void 0 ? void 0 : (_target$parent2$setPr = _target$parent2.setPropValue) === null || _target$parent2$setPr === void 0 ? void 0 : _target$parent2$setPr.call(_target$parent2, 'options', {}); } } } }, { name: 'active', display: 'inline', isRequired: true, // className: 'cn-array-setter-validator-active', title: '启用', // setter: <CheckboxSetter />, setter: { componentName: 'MixedSetter', props: { setters: [{ componentName: /*#__PURE__*/React.createElement(_checkboxSetter["default"], null), title: '启用/禁用' }] } } }].concat(configure) } } } } }; } function getJSXTemplate(config) { if (config) { var _ref10 = config || {}, position = _ref10.position; var temp = { componentName: 'CnJSXSetter', props: { usePopup: true, enableFullscreen: true, theme: 'vs' }, title: 'React JSX代码' }; if ([_displayPosition.DisplayPosition.statisticCard_titleTip].includes(position)) { temp.initialValue = { type: 'js', source: "function content(item, state) { \n \n}", compiled: 'function main(){\n \n "use strict";\n\nvar __compiledFunc__ = function content(item, state) {\n \n};\n return __compiledFunc__.apply(this, arguments);\n }', error: {} }; } return temp; } } function getNodeIdSetterSnippet() { return { name: '_nodeId', title: '节点 ID', display: 'inline', initialValue: function initialValue() { return this.getNode().id; }, setter: /*#__PURE__*/React.createElement(_idSetter["default"], null) }; } function getComponentTitle(config) { return (0, _extends2["default"])({ name: 'title', title: '组件名称', display: 'inline', setter: 'StringSetter' }, config); }