@cainiaofe/cn-ui-charts
Version:
192 lines (191 loc) • 6.02 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.componentMap = exports.componentLoopMap = void 0;
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
var _featurePosition = require("../../types/feature-position");
var _util = require("../util/util");
var _statisticSetter = require("../setter/statistic-setter");
var _set = _interopRequireDefault(require("lodash/set"));
var _excluded = ["autoFit", "data", "children"];
var componentLoopMap = {};
exports.componentLoopMap = componentLoopMap;
var summary = {
title: '中心结果汇总',
value: 'summary',
position: [_featurePosition.FeaturePosition.pie],
getDefaultProps: function getDefaultProps() {
return {
title: '共计'
};
},
getPrototypeList: function getPrototypeList(position, config) {
return [{
title: '汇总标题',
name: 'title',
setter: 'CnI18nSetter'
}];
},
handleFeature: function handleFeature(config) {
var _ref = config || {},
featureItemConfig = _ref.featureItemConfig,
props = _ref.props,
options = _ref.options,
position = _ref.position;
var _ref2 = featureItemConfig || {},
itemOptions = _ref2.options;
var statics = [{
type: "text",
style: {
text: (itemOptions === null || itemOptions === void 0 ? void 0 : itemOptions.title) || '共计',
x: "50%",
y: "50%",
dy: -10,
fontSize: 20,
textAlign: "center",
textBaseline: "middle",
fontWeight: "bold"
}
}, {
type: "text",
data: {
transform: [{
type: "custom",
callback: function callback(d) {
var sum = d.reduce(function (r, curr) {
var _options$encode;
var key = (options === null || options === void 0 ? void 0 : (_options$encode = options.encode) === null || _options$encode === void 0 ? void 0 : _options$encode.y) || 'value';
r += curr[key];
return r;
}, 0);
return [sum];
}
}]
},
encode: {
text: function text(d) {
return d;
}
},
style: {
x: "50%",
y: "50%",
fontSize: 16,
dy: 10,
textAlign: "center",
textBaseline: "top",
fontWeight: "bold"
}
}];
var _ref3 = options || {},
autoFit = _ref3.autoFit,
data = _ref3.data,
children = _ref3.children,
rest = (0, _objectWithoutPropertiesLoose2["default"])(_ref3, _excluded);
var result = {};
if (autoFit) {
result.autoFit = autoFit;
}
if (data) {
result.data = data;
}
if ((0, _util.isArrayNotEmpty)(children)) {
result.children = [].concat(children, statics);
} else {
result.children = [rest].concat(statics);
}
return result;
}
};
var loop = {
title: '图表轮询',
value: 'loop',
position: [_featurePosition.FeaturePosition.pie, _featurePosition.FeaturePosition.line, _featurePosition.FeaturePosition.column, _featurePosition.FeaturePosition.statisticCard],
getDefaultProps: function getDefaultProps() {
return {};
},
getPrototypeList: function getPrototypeList(position, config) {
return [{
name: 'interval',
title: '轮询间隔时间(单位秒)',
display: 'inline',
setter: 'NumberSetter'
}, {
name: 'needLoading',
title: '展示loading效果',
display: 'inline',
defaultValue: false,
setter: 'BoolSetter'
}];
},
handleFeature: function handleFeature(config) {
var _ref4 = config || {},
featureItemConfig = _ref4.featureItemConfig,
props = _ref4.props,
sendRequest = _ref4.sendRequest;
var _ref5 = props || {},
_nodeId = _ref5._nodeId;
var _ref6 = featureItemConfig || {},
active = _ref6.active,
options = _ref6.options;
var _ref7 = options || {},
interval = _ref7.interval,
needLoading = _ref7.needLoading;
if (active && _nodeId && typeof interval === 'number' && interval >= 2 && componentLoopMap[_nodeId] === undefined) {
componentLoopMap[_nodeId] = setInterval(function () {
sendRequest === null || sendRequest === void 0 ? void 0 : sendRequest({
needLoading: needLoading
});
}, interval * 1000);
}
}
};
var labelFilter = {
title: 'x轴标签过滤',
value: 'labelFilter',
position: [_featurePosition.FeaturePosition.line, _featurePosition.FeaturePosition.column],
getDefaultProps: function getDefaultProps() {
return {};
},
getPrototypeList: function getPrototypeList(position, config) {
return [{
title: '开启过滤(x轴过密时开启)',
name: 'labelFilter',
setter: (0, _statisticSetter.getMixedSetterSnippet)({
setters: [{
componentName: 'BoolSetter',
title: '是/否'
}, (0, _util.getJSExpressionPrototype)({
type: 'base'
})]
})
}];
},
handleFeature: function handleFeature(config) {
var _ref8 = config || {},
featureItemConfig = _ref8.featureItemConfig,
props = _ref8.props,
options = _ref8.options,
position = _ref8.position;
var _ref9 = featureItemConfig || {},
itemOptions = _ref9.options;
var _ref10 = itemOptions || {},
labelFilter = _ref10.labelFilter;
if (labelFilter === true) {
var firstOptions = (0, _util.getFirstOptions)(options);
if (firstOptions) {
(0, _set["default"])(firstOptions, 'axis.x.labelFilter', function (item, index, data) {
var dl = data === null || data === void 0 ? void 0 : data.length;
return index % Math.ceil(dl / 10) === 0;
});
}
}
return options;
}
};
var componentMap = {
summary: summary,
loop: loop,
labelFilter: labelFilter
};
exports.componentMap = componentMap;