@opentinyvue/vue-huicharts-bar 2.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2022 - present TinyVue Authors.
4
+ Copyright (c) 2022 - present Huawei Cloud Computing Technologies Co., Ltd.
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in all
14
+ copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ SOFTWARE.
package/index.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ import HuiChartsBar from './src/chart-bar.vue';
2
+ export { HuiChartsBar };
3
+ export default HuiChartsBar;
package/lib/index.js ADDED
@@ -0,0 +1,417 @@
1
+ import Core, { cloneDeep, getRows, getTooltip, getFormatted, getStackMap, isNull, get, set } from '@opentinyvue/vue-huicharts-core';
2
+ import { $prefix } from '@opentinyvue/vue-common';
3
+
4
+ function normalizeComponent(scriptExports, render, staticRenderFns, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {
5
+ var options = typeof scriptExports === "function" ? scriptExports.options : scriptExports;
6
+ if (render) {
7
+ options.render = render;
8
+ options.staticRenderFns = staticRenderFns;
9
+ options._compiled = true;
10
+ }
11
+ var hook;
12
+ if (injectStyles) {
13
+ hook = injectStyles;
14
+ }
15
+ if (hook) {
16
+ if (options.functional) {
17
+ options._injectStyles = hook;
18
+ var originalRender = options.render;
19
+ options.render = function renderWithStyleInjection(h, context) {
20
+ hook.call(context);
21
+ return originalRender(h, context);
22
+ };
23
+ } else {
24
+ var existing = options.beforeCreate;
25
+ options.beforeCreate = existing ? [].concat(existing, hook) : [hook];
26
+ }
27
+ }
28
+ return {
29
+ exports: scriptExports,
30
+ options
31
+ };
32
+ }
33
+
34
+ function _extends() {
35
+ return _extends = Object.assign ? Object.assign.bind() : function(n) {
36
+ for (var e = 1; e < arguments.length; e++) {
37
+ var t = arguments[e];
38
+ for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
39
+ }
40
+ return n;
41
+ }, _extends.apply(null, arguments);
42
+ }
43
+ var VALUE_AXIS_OPACITY = 0.5;
44
+ var getBarDimAxis = function getBarDimAxis2(args) {
45
+ var innerRows = args.innerRows, dimAxisName = args.dimAxisName, dimension = args.dimension, axisVisible = args.axisVisible, dimAxisType = args.dimAxisType, dims = args.dims;
46
+ return dimension.map(function(item) {
47
+ return {
48
+ type: "category",
49
+ name: dimAxisName,
50
+ nameLocation: "middle",
51
+ nameGap: 22,
52
+ data: dimAxisType === "value" ? getValueAxisData(dims) : innerRows.map(function(row) {
53
+ return row[item];
54
+ }),
55
+ axisLabel: {
56
+ formatter: function formatter(value) {
57
+ return String(value);
58
+ }
59
+ },
60
+ show: axisVisible
61
+ };
62
+ });
63
+ };
64
+ var getBarMeaAxis = function getBarMeaAxis2(args) {
65
+ var axisVisible = args.axisVisible, digit = args.digit, max = args.max, _args$meaAxisName = args.meaAxisName, meaAxisName = _args$meaAxisName === void 0 ? [] : _args$meaAxisName, meaAxisType = args.meaAxisType, min = args.min, scale = args.scale;
66
+ var meaAxisBase = {
67
+ type: "value",
68
+ axisTick: {
69
+ show: false
70
+ },
71
+ show: axisVisible
72
+ };
73
+ var _ref = {}, _ref$meaAxis = _ref.meaAxis, meaAxis = _ref$meaAxis === void 0 ? [] : _ref$meaAxis, _ref$i = _ref.i, i = _ref$i === void 0 ? 0 : _ref$i, formatter = _ref.formatter;
74
+ for (; i < 2; i++) {
75
+ if (meaAxisType[i]) {
76
+ formatter = factoryFmt({
77
+ meaAxisType,
78
+ i,
79
+ digit
80
+ });
81
+ meaAxis[i] = _extends({}, meaAxisBase, {
82
+ axisLabel: {
83
+ formatter
84
+ }
85
+ });
86
+ } else {
87
+ meaAxis[i] = _extends({}, meaAxisBase);
88
+ }
89
+ Object.assign(meaAxis[i], {
90
+ max: max[i] || null,
91
+ min: min[i] || null,
92
+ name: meaAxisName[i] || "",
93
+ scale: scale[i] || false
94
+ });
95
+ }
96
+ return meaAxis;
97
+ };
98
+ var factoryFmt = function factoryFmt2(_ref2) {
99
+ var meaAxisType = _ref2.meaAxisType, i = _ref2.i, digit = _ref2.digit;
100
+ return function(val) {
101
+ return getFormatted(val, meaAxisType[i], digit);
102
+ };
103
+ };
104
+ var getLegend = function getLegend2(args) {
105
+ var legendName = args.legendName;
106
+ var legendBase = {
107
+ show: true
108
+ };
109
+ var formatter = function formatter2(name) {
110
+ return !legendName[name] ? name : legendName[name];
111
+ };
112
+ return _extends({}, legendBase, {
113
+ formatter
114
+ });
115
+ };
116
+ var getDims = function getDims2(rows, dimension) {
117
+ return rows.map(function(row) {
118
+ return row[dimension[0]];
119
+ });
120
+ };
121
+ var getValueAxisData = function getValueAxisData2(dims) {
122
+ var max = Math.max.apply(Math, dims);
123
+ var min = Math.min.apply(Math, dims);
124
+ var _ref3 = {}, _ref3$result = _ref3.result, result = _ref3$result === void 0 ? [] : _ref3$result, _ref3$i = _ref3.i, i = _ref3$i === void 0 ? min : _ref3$i;
125
+ for (; i <= max; i++) {
126
+ result.push(i);
127
+ }
128
+ return result;
129
+ };
130
+ var getBarSeries = function getBarSeries2(args) {
131
+ var axisSite = args.axisSite, barGap = args.barGap, dimAxisType = args.dimAxisType; args.dims; var innerRows = args.innerRows, isHistogram = args.isHistogram, itemStyle = args.itemStyle;
132
+ if (!itemStyle.barWidth) {
133
+ itemStyle.barWidth = "auto";
134
+ }
135
+ args.label; var labelMap = args.labelMap, metrics = args.metrics, opacity = args.opacity, _args$showLine = args.showLine, showLine = _args$showLine === void 0 ? [] : _args$showLine, stack = args.stack;
136
+ var _ref4 = {}, secondAxis = _ref4.secondAxis, secondDimAxisIndex = _ref4.secondDimAxisIndex, _ref4$series = _ref4.series, series = _ref4$series === void 0 ? [] : _ref4$series, _ref4$seriesTemp = _ref4.seriesTemp, seriesTemp = _ref4$seriesTemp === void 0 ? {} : _ref4$seriesTemp, stackMap = _ref4.stackMap, _ref4$stackNum = _ref4.stackNum, stackNum = _ref4$stackNum === void 0 ? 0 : _ref4$stackNum;
137
+ secondAxis = (isHistogram ? axisSite == null ? void 0 : axisSite.right : axisSite == null ? void 0 : axisSite.top) || [];
138
+ secondDimAxisIndex = isHistogram ? "yAxisIndex" : "xAxisIndex";
139
+ stackMap = stack && getStackMap(stack);
140
+ metrics.forEach(function(item) {
141
+ return seriesTemp[item] = [];
142
+ });
143
+ innerRows.forEach(function(row) {
144
+ return metrics.forEach(function(item) {
145
+ return seriesTemp[item].push(row[item]);
146
+ });
147
+ });
148
+ series = Object.keys(seriesTemp).map(function(item) {
149
+ var _seriesItem;
150
+ var name = !isNull(labelMap[item]) ? labelMap[item] : item;
151
+ var type = ~showLine.indexOf(item) ? "line" : "bar";
152
+ var axisIndex = ~secondAxis.indexOf(item) ? "1" : "0";
153
+ var seriesItem = (_seriesItem = {
154
+ name,
155
+ type
156
+ }, _seriesItem[secondDimAxisIndex] = axisIndex, _seriesItem);
157
+ var defaultItemStyle = {};
158
+ stack && stackMap[item] && (seriesItem.stack = stackMap[item]);
159
+ if (Object.keys(stack).length) {
160
+ if (stackNum === Object.keys(stackMap).length - 1 || isNull(seriesItem.stack)) {
161
+ seriesItem.itemStyle = Object.assign(defaultItemStyle, seriesItem.itemStyle);
162
+ }
163
+ if (!isNull(seriesItem.stack)) {
164
+ stackNum++;
165
+ }
166
+ seriesItem.itemStyle = _extends({
167
+ borderWidth: 2,
168
+ borderColor: "transparent"
169
+ }, seriesItem.itemStyle);
170
+ }
171
+ itemStyle && (seriesItem.itemStyle = itemStyle);
172
+ var itemOpacity = opacity || get(seriesItem, "itemStyle.opacity");
173
+ dimAxisType === "value" && Object.assign(seriesItem, {
174
+ barGap,
175
+ barCategoryGap: "1%"
176
+ });
177
+ dimAxisType === "value" && isNull(itemOpacity) && (itemOpacity = VALUE_AXIS_OPACITY);
178
+ !isNull(itemOpacity) && set(seriesItem, "itemStyle.opacity", itemOpacity);
179
+ return seriesItem;
180
+ });
181
+ return series.length ? series : false;
182
+ };
183
+ var getDataValue = function getDataValue2(data2, dimension, metrics, innerRows, dims) {
184
+ var dimensionData = dimension[0];
185
+ var dataTemp = {};
186
+ data2.forEach(function(item, index2) {
187
+ dataTemp[item[dimensionData]] = item;
188
+ });
189
+ var dataItemTemp = {};
190
+ metrics.forEach(function(item, index2) {
191
+ dataItemTemp[item] = null;
192
+ });
193
+ var max = Math.max.apply(Math, dims);
194
+ var min = Math.min.apply(Math, dims);
195
+ var _ref5 = {}, _ref5$result = _ref5.result, result = _ref5$result === void 0 ? [] : _ref5$result, _ref5$i = _ref5.i, i = _ref5$i === void 0 ? min : _ref5$i, index = _ref5.index;
196
+ for (; i <= max; i++) {
197
+ var _extends2;
198
+ index = dims.indexOf(i);
199
+ result.push(~index ? dataTemp[i] : _extends((_extends2 = {}, _extends2[dimensionData] = i, _extends2), dataItemTemp));
200
+ }
201
+ return result;
202
+ };
203
+ var histogram = function histogram2(columns, rows, settings, extra, isHistogram) {
204
+ if (isHistogram === void 0) {
205
+ isHistogram = true;
206
+ }
207
+ var innerRows = cloneDeep(rows);
208
+ var _settings$axisSite = settings.axisSite, axisSite = _settings$axisSite === void 0 ? {} : _settings$axisSite, _settings$dimension = settings.dimension, dimension = _settings$dimension === void 0 ? [columns[0]] : _settings$dimension; settings.axisLabel; var _settings$axisVisible = settings.axisVisible, axisVisible = _settings$axisVisible === void 0 ? true : _settings$axisVisible;
209
+ var _settings$digit = settings.digit, digit = _settings$digit === void 0 ? 2 : _settings$digit, _settings$dataOrder = settings.dataOrder, dataOrder = _settings$dataOrder === void 0 ? false : _settings$dataOrder, _settings$scale = settings.scale, scale = _settings$scale === void 0 ? [false, false] : _settings$scale, _settings$min = settings.min, min = _settings$min === void 0 ? [null, null] : _settings$min, _settings$max = settings.max, max = _settings$max === void 0 ? [null, null] : _settings$max, _settings$stack = settings.stack, stack = _settings$stack === void 0 ? {} : _settings$stack;
210
+ var tooltipVisible = extra.tooltipVisible, legendVisible = extra.legendVisible;
211
+ var _settings$labelMap = settings.labelMap, labelMap = _settings$labelMap === void 0 ? {} : _settings$labelMap, _settings$legendName = settings.legendName, legendName = _settings$legendName === void 0 ? {} : _settings$legendName, label = settings.label, _settings$itemStyle = settings.itemStyle, itemStyle = _settings$itemStyle === void 0 ? {} : _settings$itemStyle, showLine = settings.showLine, _settings$barGap = settings.barGap, barGap = _settings$barGap === void 0 ? "-100%" : _settings$barGap, opacity = settings.opacity;
212
+ var _ref6 = {}, _ref6$metrics = _ref6.metrics, metrics = _ref6$metrics === void 0 ? columns.slice() : _ref6$metrics, meaAxisType = _ref6.meaAxisType, dimAxisType = _ref6.dimAxisType, meaAxisName = _ref6.meaAxisName, _ref6$dimAxisName = _ref6.dimAxisName, dimAxisName = _ref6$dimAxisName === void 0 ? true : _ref6$dimAxisName, dims = _ref6.dims;
213
+ if (dataOrder) {
214
+ var label2 = dataOrder.label, order = dataOrder.order;
215
+ if (label2 && order) {
216
+ innerRows.sort(function(a, b) {
217
+ return order === "desc" ? a[label2] - b[label2] : b[label2] - a[label2];
218
+ });
219
+ }
220
+ }
221
+ var xAxis = {};
222
+ var yAxis = {};
223
+ dims = getDims(innerRows, dimension);
224
+ if (isHistogram) {
225
+ if (axisSite.right && axisSite.left) {
226
+ metrics = axisSite.left.concat(axisSite.right);
227
+ } else if (settings.metrics) {
228
+ metrics = settings.metrics;
229
+ } else if (axisSite.left && !axisSite.right) {
230
+ metrics = axisSite.left;
231
+ } else {
232
+ metrics.splice(columns.indexOf(dimension[0]), 1);
233
+ }
234
+ dimAxisType = settings.xAxisType || "category";
235
+ meaAxisType = settings.yAxisType || ["normal", "normal"];
236
+ dimAxisName = settings.xAxisName || "";
237
+ meaAxisName = settings.yAxisName || [];
238
+ xAxis = getBarDimAxis({
239
+ innerRows,
240
+ dimAxisName,
241
+ dimension,
242
+ axisVisible,
243
+ dimAxisType,
244
+ dims
245
+ });
246
+ yAxis = getBarMeaAxis({
247
+ meaAxisName,
248
+ meaAxisType,
249
+ axisVisible,
250
+ digit,
251
+ scale,
252
+ min,
253
+ max
254
+ });
255
+ } else {
256
+ if (axisSite.bottom && axisSite.top) {
257
+ metrics = axisSite.top.concat(axisSite.bottom);
258
+ } else if (!axisSite.right && axisSite.bottom) {
259
+ metrics = axisSite.bottom;
260
+ } else if (settings.metrics) {
261
+ metrics = settings.metrics;
262
+ } else {
263
+ metrics.splice(columns.indexOf(dimension[0]), 1);
264
+ }
265
+ dimAxisType = settings.yAxisType || "category";
266
+ meaAxisType = settings.xAxisType || ["normal", "normal"];
267
+ dimAxisName = settings.yAxisName || "";
268
+ xAxis = getBarDimAxis({
269
+ innerRows,
270
+ dimAxisName,
271
+ dimension,
272
+ axisVisible,
273
+ dimAxisType,
274
+ dims
275
+ });
276
+ yAxis = getBarMeaAxis({
277
+ axisVisible,
278
+ meaAxisType,
279
+ meaAxisName,
280
+ scale,
281
+ digit,
282
+ max,
283
+ min
284
+ });
285
+ }
286
+ if (opacity) {
287
+ var itemStyleBase = {
288
+ opacity
289
+ };
290
+ Object.assign(itemStyle, itemStyleBase);
291
+ }
292
+ var tempRows = innerRows.map(function(row) {
293
+ var temp = _extends({}, row);
294
+ for (var _i = 0, _Object$entries = Object.entries(labelMap); _i < _Object$entries.length; _i++) {
295
+ var _Object$entries$_i = _Object$entries[_i], key = _Object$entries$_i[0], value = _Object$entries$_i[1];
296
+ if (Object.prototype.hasOwnProperty.call(row, key)) {
297
+ temp[value] = temp[key];
298
+ }
299
+ }
300
+ return temp;
301
+ });
302
+ var data2 = getRows({
303
+ columns,
304
+ metrics,
305
+ labelMap,
306
+ rows: tempRows,
307
+ dimension
308
+ });
309
+ if (dimAxisType === "value") {
310
+ data2 = getDataValue(data2, dimension, metrics, innerRows, dims);
311
+ }
312
+ var lineDataName = showLine ? [].concat(showLine) : [];
313
+ var legend = legendVisible ? getLegend({
314
+ legendName,
315
+ metrics,
316
+ labelMap
317
+ }) : {
318
+ show: false
319
+ };
320
+ var tooltip = tooltipVisible ? getTooltip({
321
+ axisSite,
322
+ yAxisType: meaAxisType
323
+ }) : {
324
+ show: false
325
+ };
326
+ var tipHtml = tooltip.formatter;
327
+ var args = {
328
+ innerRows,
329
+ metrics,
330
+ stack,
331
+ axisSite,
332
+ isHistogram,
333
+ labelMap,
334
+ itemStyle,
335
+ label
336
+ };
337
+ Object.assign(args, {
338
+ showLine,
339
+ dimAxisType,
340
+ dimension,
341
+ barGap,
342
+ opacity,
343
+ dims
344
+ });
345
+ var options = {
346
+ data: data2,
347
+ itemStyle,
348
+ tipHtml,
349
+ lineDataName,
350
+ legend,
351
+ tooltip,
352
+ yAxis,
353
+ xAxis,
354
+ label,
355
+ stack,
356
+ series: getBarSeries(args)
357
+ };
358
+ if (typeof options.stack === "object" && options.stack !== null && Object.keys(options.stack).length > 0) {
359
+ options.type = "stack";
360
+ }
361
+ return options;
362
+ };
363
+ var render = function render2() {
364
+ var _vm = this;
365
+ var _h = _vm.$createElement;
366
+ var _c = _vm._self._c || _h;
367
+ return _c("div", {
368
+ staticClass: "hui-chart chart-box"
369
+ }, [_c("div", {
370
+ ref: "chartRef",
371
+ style: {
372
+ width: _vm.width,
373
+ height: _vm.height
374
+ }
375
+ }), _vm._t("default")], 2);
376
+ };
377
+ var staticRenderFns = [];
378
+ var __vue2_script = {
379
+ name: $prefix + "ChartBar",
380
+ mixins: [Core],
381
+ data: function data() {
382
+ return {
383
+ iChartName: "BarChart"
384
+ };
385
+ },
386
+ methods: {
387
+ updateChart: function updateChart() {
388
+ var _this$data = this.data, _this$data$columns = _this$data.columns, columns = _this$data$columns === void 0 ? [] : _this$data$columns, _this$data$rows = _this$data.rows, rows = _this$data$rows === void 0 ? [] : _this$data$rows;
389
+ var extra = {
390
+ tooltipVisible: this.tooltipVisible,
391
+ legendVisible: this.legendVisible,
392
+ extend: this.extend
393
+ };
394
+ var option = histogram(columns, rows, this.settings, extra, false);
395
+ this.huiChartOption = _extends({
396
+ smooth: true
397
+ }, option, {
398
+ direction: "horizontal"
399
+ });
400
+ }
401
+ }
402
+ };
403
+ var __cssModules = {};
404
+ var __component__ = /* @__PURE__ */ normalizeComponent(__vue2_script, render, staticRenderFns, false, __vue2_injectStyles);
405
+ function __vue2_injectStyles(context) {
406
+ for (var o in __cssModules) {
407
+ this[o] = __cssModules[o];
408
+ }
409
+ }
410
+ var HuiChartsBar = /* @__PURE__ */ function() {
411
+ return __component__.exports;
412
+ }();
413
+ HuiChartsBar.install = function(Vue) {
414
+ Vue.component(HuiChartsBar.name, HuiChartsBar);
415
+ };
416
+
417
+ export { HuiChartsBar, HuiChartsBar as default };
package/package.json ADDED
@@ -0,0 +1,19 @@
1
+ {
2
+ "name": "@opentinyvue/vue-huicharts-bar",
3
+ "version": "2.21.0",
4
+ "description": "",
5
+ "main": "./lib/index.js",
6
+ "module": "./lib/index.js",
7
+ "sideEffects": false,
8
+ "type": "module",
9
+ "dependencies": {
10
+ "@opentinyvue/vue-huicharts-core": "~2.21.0",
11
+ "@opentinyvue/vue-common": "~2.21.0"
12
+ },
13
+ "license": "MIT",
14
+ "types": "index.d.ts",
15
+ "scripts": {
16
+ "build": "pnpm -w build:ui $npm_package_name",
17
+ "//postversion": "pnpm build"
18
+ }
19
+ }
@@ -0,0 +1,6 @@
1
+ declare const _default: import("vue/types/vue").ExtendedVue<import("vue").default, {
2
+ iChartName: string;
3
+ }, {
4
+ updateChart(): void;
5
+ }, any, Record<never, any>>;
6
+ export default _default;
@@ -0,0 +1,23 @@
1
+ export declare const histogram: (columns: any, rows: any, settings: any, extra: any, isHistogram?: boolean) => {
2
+ data: never[];
3
+ itemStyle: any;
4
+ tipHtml: any;
5
+ lineDataName: any[];
6
+ legend: {
7
+ formatter: (name: any) => any;
8
+ show: boolean;
9
+ } | {
10
+ show: boolean;
11
+ };
12
+ tooltip: {
13
+ trigger: string;
14
+ formatter: (items: any) => string;
15
+ } | {
16
+ show: boolean;
17
+ };
18
+ yAxis: {};
19
+ xAxis: {};
20
+ label: any;
21
+ stack: any;
22
+ series: boolean | never[];
23
+ };