@opentiny/vue-renderless 3.1.0-alpha.0 → 3.5.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.
Files changed (178) hide show
  1. package/action-menu/index.js +10 -0
  2. package/action-menu/vue.js +26 -0
  3. package/amount/index.js +334 -0
  4. package/amount/vue.js +206 -0
  5. package/area/index.js +162 -0
  6. package/area/vue.js +68 -0
  7. package/autonavi-map/index.js +28 -0
  8. package/avatar/index.js +5 -1
  9. package/avatar/vue.js +2 -1
  10. package/baidu-map/index.js +28 -0
  11. package/breadcrumb/index.js +9 -0
  12. package/breadcrumb/vue.js +25 -3
  13. package/breadcrumb-item/index.js +26 -0
  14. package/breadcrumb-item/vue.js +20 -11
  15. package/bulletin-board/index.js +4 -1
  16. package/button-group/vue.js +1 -1
  17. package/calendar/index.js +14 -14
  18. package/card-template/index.js +1 -1
  19. package/cascader/index.js +21 -7
  20. package/cascader/vue.js +1 -2
  21. package/cascader-node/index.js +3 -1
  22. package/cascader-panel/index.js +12 -4
  23. package/cascader-panel/vue.js +1 -2
  24. package/chart-bar/index.js +533 -0
  25. package/chart-boxplot/index.js +270 -0
  26. package/chart-candle/index.js +428 -0
  27. package/chart-core/deps/constants.js +65 -0
  28. package/chart-core/deps/numerify.js +286 -0
  29. package/chart-core/deps/utils.js +205 -0
  30. package/chart-core/index.js +541 -0
  31. package/chart-core/modules/animation.js +10 -0
  32. package/chart-core/modules/extend.js +36 -0
  33. package/chart-core/modules/mark.js +7 -0
  34. package/chart-core/vue.js +128 -0
  35. package/chart-funnel/index.js +155 -0
  36. package/chart-gauge/index.js +153 -0
  37. package/chart-graph/index.js +38 -0
  38. package/chart-heatmap/index.js +407 -0
  39. package/chart-line/index.js +358 -0
  40. package/chart-liquidfill/index.js +119 -0
  41. package/chart-map/index.js +261 -0
  42. package/chart-pie/index.js +327 -0
  43. package/chart-radar/index.js +181 -0
  44. package/chart-sankey/index.js +166 -0
  45. package/chart-scatter/index.js +360 -0
  46. package/chart-sunburst/index.js +36 -0
  47. package/chart-tree/index.js +107 -0
  48. package/chart-waterfall/index.js +231 -0
  49. package/chart-wordcloud/index.js +109 -0
  50. package/checkbox/index.js +4 -4
  51. package/checkbox-button/index.js +3 -1
  52. package/common/bigInt.js +5 -2
  53. package/common/date.js +17 -17
  54. package/common/deps/date-util.js +15 -5
  55. package/common/deps/date.js +6 -6
  56. package/common/deps/dom.js +18 -6
  57. package/common/deps/eSpaceCtrl.js +286 -0
  58. package/common/deps/fullscreen/apis.js +22 -22
  59. package/common/deps/memorize.js +3 -3
  60. package/common/deps/modal-queue.js +2 -0
  61. package/common/deps/popper.js +12 -10
  62. package/common/deps/popup-manager.js +16 -5
  63. package/common/deps/resize-event.js +6 -2
  64. package/common/deps/scrollbar-width.js +6 -2
  65. package/common/deps/tree-model/node.js +30 -10
  66. package/common/deps/tree-model/tree-store.js +33 -21
  67. package/common/deps/tree-model/util.js +6 -2
  68. package/common/deps/upload-ajax.js +7 -1
  69. package/common/deps/vue-popper.js +2 -2
  70. package/common/string.js +1 -1
  71. package/company/index.js +56 -0
  72. package/company/vue.js +35 -0
  73. package/country/index.js +54 -0
  74. package/country/vue.js +35 -0
  75. package/credit-card-form/index.js +1 -0
  76. package/currency/index.js +78 -0
  77. package/currency/vue.js +39 -0
  78. package/date-panel/index.js +16 -6
  79. package/date-picker/index.js +9 -5
  80. package/date-range/index.js +28 -9
  81. package/date-table/index.js +3 -1
  82. package/dept/index.js +318 -0
  83. package/dept/vue.js +163 -0
  84. package/detail-page/index.js +4 -1
  85. package/dialog-box/index.js +14 -4
  86. package/dialog-box/vue.js +7 -3
  87. package/drop-roles/index.js +73 -0
  88. package/drop-roles/vue.js +38 -0
  89. package/dropdown/index.js +5 -4
  90. package/dropdown/vue.js +5 -3
  91. package/dropdown-item/index.js +15 -0
  92. package/dropdown-item/vue.js +27 -13
  93. package/espace/index.js +129 -0
  94. package/espace/vue.js +52 -0
  95. package/exception/index.js +1 -1
  96. package/file-upload/index.js +336 -291
  97. package/form/index.js +3 -1
  98. package/form/vue.js +15 -0
  99. package/form-item/index.js +15 -5
  100. package/fullscreen/index.js +4 -4
  101. package/fullscreen/vue.js +3 -3
  102. package/grid/core/interceptor.js +4 -7
  103. package/grid/plugins/export.js +2 -2
  104. package/grid/plugins/exportExcel.js +28 -10
  105. package/grid/static/array/findTree.js +1 -1
  106. package/grid/static/base/helperCreateGetObjects.js +1 -1
  107. package/grid/static/base/helperEqualCompare.js +2 -2
  108. package/grid/static/base/helperGetHGSKeys.js +1 -1
  109. package/grid/static/base/uniqueId.js +1 -1
  110. package/grid/static/object/assign.js +3 -3
  111. package/grid/static/string/toString.js +3 -3
  112. package/hrapprover/index.js +118 -0
  113. package/hrapprover/vue.js +102 -0
  114. package/locales/index.js +116 -0
  115. package/locales/vue.js +46 -0
  116. package/logon-user/index.js +23 -0
  117. package/logon-user/vue.js +22 -0
  118. package/logout/index.js +118 -0
  119. package/logout/vue.js +22 -0
  120. package/milestone/index.js +2 -1
  121. package/mini-picker/index.js +1 -1
  122. package/mini-picker/vue.js +1 -1
  123. package/modal/index.js +4 -2
  124. package/month-table/index.js +2 -2
  125. package/nav-menu/index.js +2 -2
  126. package/numeric/index.js +5 -2
  127. package/package.json +33 -136
  128. package/pager-item/vue.js +6 -2
  129. package/picker/index.js +43 -17
  130. package/picker/timezone.js +2 -2
  131. package/picker-column/index.js +7 -3
  132. package/pop-upload/index.js +5 -3
  133. package/popeditor/index.js +15 -7
  134. package/popover/index.js +87 -54
  135. package/popover/vue.js +13 -9
  136. package/rate/index.js +2 -2
  137. package/rich-text/clipboard.js +77 -0
  138. package/rich-text/index.js +176 -0
  139. package/rich-text/module/file-upload.js +118 -0
  140. package/rich-text/module/image-drop.js +54 -0
  141. package/rich-text/module/image-upload.js +84 -0
  142. package/rich-text/options.js +187 -0
  143. package/rich-text/table-module.js +557 -0
  144. package/rich-text/vue.js +149 -0
  145. package/roles/index.js +87 -0
  146. package/roles/vue.js +39 -0
  147. package/search/index.js +32 -27
  148. package/search/vue.js +7 -2
  149. package/select/index.js +328 -304
  150. package/select/vue.js +19 -9
  151. package/select-dropdown/index.js +1 -1
  152. package/slider/index.js +9 -11
  153. package/slider/vue.js +3 -3
  154. package/split/vue.js +1 -1
  155. package/tab-nav/index.js +0 -6
  156. package/tab-nav/vue.js +0 -14
  157. package/table/index.js +1 -1
  158. package/text-popup/index.js +6 -4
  159. package/time/index.js +3 -1
  160. package/time-range/index.js +6 -2
  161. package/time-spinner/index.js +15 -5
  162. package/toggle-menu/index.js +11 -0
  163. package/toggle-menu/vue.js +2 -1
  164. package/tooltip/index.js +46 -35
  165. package/tooltip/vue.js +5 -1
  166. package/tree/index.js +57 -21
  167. package/tree-menu/index.js +3 -1
  168. package/tree-node/index.js +7 -3
  169. package/upload/index.js +14 -5
  170. package/user/index.js +634 -0
  171. package/user/vue.js +113 -0
  172. package/user-account/index.js +23 -0
  173. package/user-account/vue.js +25 -0
  174. package/user-contact/index.js +1 -4
  175. package/user-head/index.js +33 -11
  176. package/user-head/vue.js +10 -7
  177. package/user-link/index.js +43 -0
  178. package/user-link/vue.js +60 -0
@@ -0,0 +1,270 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
+ import { getFormated, htmlHandler, getLegend } from '@opentiny/vue-renderless/chart-core/deps/utils';
5
+ import { itemPoint, itemLabel, itemContent } from '@opentiny/vue-renderless/chart-core/deps/constants';
6
+ var getXAxis = function getXAxis(args) {
7
+ var columns = args.columns,
8
+ xAxisName = args.xAxisName,
9
+ axisVisible = args.axisVisible,
10
+ xAxisType = args.xAxisType;
11
+ return [{
12
+ type: xAxisType,
13
+ nameLocation: 'middle',
14
+ nameGap: 22,
15
+ name: xAxisName || '',
16
+ axisTick: {
17
+ show: true,
18
+ lineStyle: {
19
+ color: '#eee'
20
+ }
21
+ },
22
+ data: columns,
23
+ show: axisVisible
24
+ }];
25
+ };
26
+ var getSeries = function getSeries(args) {
27
+ var area = args.area,
28
+ areaStyle = args.areaStyle,
29
+ itemStyle = args.itemStyle,
30
+ label = args.label,
31
+ lineStyle = args.lineStyle,
32
+ _args$outliers = args.outliers,
33
+ outliers = _args$outliers === void 0 ? [] : _args$outliers,
34
+ rows = args.rows;
35
+ var _ref = {},
36
+ _ref$series = _ref.series,
37
+ series = _ref$series === void 0 ? [] : _ref$series,
38
+ _ref$arr = _ref.arr,
39
+ arr = _ref$arr === void 0 ? ['boxplot', 'scatter'] : _ref$arr;
40
+ arr.forEach(function (item) {
41
+ if (item === 'scatter' && !outliers.length) {
42
+ return;
43
+ }
44
+ var data = item === 'boxplot' ? rows : outliers;
45
+ var seriesItem = {
46
+ name: '',
47
+ type: item,
48
+ data: data
49
+ };
50
+ area && (seriesItem.areaStyle = {});
51
+ label && (seriesItem.label = label);
52
+ lineStyle && (seriesItem.lineStyle = lineStyle);
53
+ itemStyle && (seriesItem.itemStyle = itemStyle);
54
+ areaStyle && (seriesItem.areaStyle = areaStyle);
55
+ series.push(seriesItem);
56
+ });
57
+ return series;
58
+ };
59
+ var factoryFmt = function factoryFmt(_ref2) {
60
+ var yAxisType = _ref2.yAxisType,
61
+ i = _ref2.i,
62
+ digit = _ref2.digit;
63
+ return function (val) {
64
+ return getFormated(val, yAxisType[i], digit);
65
+ };
66
+ };
67
+ var getYAxis = function getYAxis(args) {
68
+ var axisVisible = args.axisVisible,
69
+ digit = args.digit,
70
+ max = args.max,
71
+ min = args.min,
72
+ scale = args.scale,
73
+ yAxisName = args.yAxisName,
74
+ yAxisType = args.yAxisType;
75
+ var yAxisBase = {
76
+ type: 'value',
77
+ axisTick: {
78
+ show: false
79
+ },
80
+ show: axisVisible
81
+ };
82
+ var _ref3 = {},
83
+ _ref3$yAxis = _ref3.yAxis,
84
+ yAxis = _ref3$yAxis === void 0 ? [] : _ref3$yAxis,
85
+ _ref3$len = _ref3.len,
86
+ len = _ref3$len === void 0 ? yAxisType.length >= 2 ? 2 : 1 : _ref3$len,
87
+ _ref3$i = _ref3.i,
88
+ i = _ref3$i === void 0 ? 0 : _ref3$i;
89
+ for (; i < len; i++) {
90
+ if (!yAxisType[i]) {
91
+ yAxis[i] = _objectSpread({}, yAxisBase);
92
+ } else {
93
+ var formatter = factoryFmt({
94
+ yAxisType: yAxisType,
95
+ i: i,
96
+ digit: digit
97
+ });
98
+ var yAxisAdv = {
99
+ axisLabel: {
100
+ formatter: formatter
101
+ }
102
+ };
103
+ yAxis[i] = _objectSpread(_objectSpread({}, yAxisBase), yAxisAdv);
104
+ var name = yAxisName[i] || '';
105
+ Object.assign(yAxis[i], {
106
+ name: name,
107
+ scale: scale[i] || false,
108
+ min: min[i] || null,
109
+ max: max[i] || null
110
+ });
111
+ }
112
+ }
113
+ return yAxis;
114
+ };
115
+ var tooltipTemplate = function tooltipTemplate(_ref4, tooltipLabel) {
116
+ var data = _ref4.data,
117
+ seriesType = _ref4.seriesType,
118
+ seriesName = _ref4.seriesName,
119
+ color = _ref4.color,
120
+ value = _ref4.value,
121
+ name = _ref4.name;
122
+ var tpl = [];
123
+ if (seriesType === 'boxplot') {
124
+ var tips = [];
125
+ tooltipLabel.forEach(function (label, idx) {
126
+ tips.push("".concat(itemPoint(color)).concat(itemLabel(label)).concat(itemContent(data[idx + 1])));
127
+ });
128
+ tpl.push(tips.join('<br/>'));
129
+ } else {
130
+ tpl.push(itemPoint(color));
131
+ if (Array.isArray(value)) {
132
+ tpl.push(value.join(': '));
133
+ } else {
134
+ tpl.push("".concat(seriesName || name, ": "));
135
+ tpl.push(value);
136
+ }
137
+ tpl.push('<br>');
138
+ }
139
+ return tpl;
140
+ };
141
+ var getTooltip = function getTooltip(args) {
142
+ var tooltipFormatter = args.tooltipFormatter,
143
+ tooltipLabel = args.tooltipLabel;
144
+ return {
145
+ trigger: 'item',
146
+ formatter: function formatter(items) {
147
+ if (tooltipFormatter) {
148
+ return tooltipFormatter.apply(null, arguments);
149
+ }
150
+ var tpl = [];
151
+ var _ref5 = items[0] || {},
152
+ name = _ref5.name,
153
+ axisValueLabel = _ref5.axisValueLabel;
154
+ var title = name || axisValueLabel;
155
+ title && tpl.push("".concat(title, "<br>"));
156
+ if (Array.isArray(items)) {
157
+ items.forEach(function (item) {
158
+ tpl = tpl.concat(tooltipTemplate(item, tooltipLabel));
159
+ });
160
+ } else {
161
+ tpl = tooltipTemplate(items, tooltipLabel);
162
+ }
163
+ return tpl.join('');
164
+ }
165
+ };
166
+ };
167
+ export var boxplot = function boxplot(columns, rows, settings, extra) {
168
+ rows = Array.isArray(rows) ? rows : [];
169
+ columns = Array.isArray(columns) ? columns : [];
170
+ var _settings$axisSite = settings.axisSite,
171
+ axisSite = _settings$axisSite === void 0 ? {} : _settings$axisSite,
172
+ _settings$yAxisType = settings.yAxisType,
173
+ yAxisType = _settings$yAxisType === void 0 ? ['normal'] : _settings$yAxisType,
174
+ _settings$xAxisType = settings.xAxisType,
175
+ xAxisType = _settings$xAxisType === void 0 ? 'category' : _settings$xAxisType,
176
+ _settings$yAxisName = settings.yAxisName,
177
+ yAxisName = _settings$yAxisName === void 0 ? '' : _settings$yAxisName,
178
+ _settings$xAxisName = settings.xAxisName,
179
+ xAxisName = _settings$xAxisName === void 0 ? '' : _settings$xAxisName;
180
+ var _settings$axisVisible = settings.axisVisible,
181
+ axisVisible = _settings$axisVisible === void 0 ? true : _settings$axisVisible,
182
+ area = settings.area,
183
+ _settings$scale = settings.scale,
184
+ scale = _settings$scale === void 0 ? [false, false] : _settings$scale,
185
+ _settings$min = settings.min,
186
+ min = _settings$min === void 0 ? [null, null] : _settings$min,
187
+ _settings$max = settings.max,
188
+ max = _settings$max === void 0 ? [null, null] : _settings$max;
189
+ var _settings$nullAddZero = settings.nullAddZero,
190
+ nullAddZero = _settings$nullAddZero === void 0 ? false : _settings$nullAddZero,
191
+ _settings$digit = settings.digit,
192
+ digit = _settings$digit === void 0 ? 2 : _settings$digit,
193
+ _settings$legendName = settings.legendName,
194
+ legendName = _settings$legendName === void 0 ? {} : _settings$legendName,
195
+ _settings$labelMap = settings.labelMap,
196
+ labelMap = _settings$labelMap === void 0 ? {} : _settings$labelMap,
197
+ label = settings.label,
198
+ itemStyle = settings.itemStyle;
199
+ var lineStyle = settings.lineStyle,
200
+ areaStyle = settings.areaStyle,
201
+ _settings$tooltipLabe = settings.tooltipLabel,
202
+ tooltipLabel = _settings$tooltipLabe === void 0 ? ['lower', 'Q1', 'median', 'Q3', 'upper'] : _settings$tooltipLabe;
203
+ var legendVisible = extra.legendVisible,
204
+ outliers = extra.outliers,
205
+ tooltipFormatter = extra.tooltipFormatter,
206
+ tooltipVisible = extra.tooltipVisible;
207
+ var metrics = columns.slice();
208
+ if (axisSite.right && axisSite.left) {
209
+ metrics = axisSite.left.concat(axisSite.right);
210
+ } else if (!axisSite.right && axisSite.left) {
211
+ metrics = axisSite.left;
212
+ } else if (settings.metrics) {
213
+ metrics = settings.metrics;
214
+ }
215
+ var legend = legendVisible && getLegend({
216
+ metrics: metrics,
217
+ legendName: legendName,
218
+ labelMap: labelMap
219
+ });
220
+ var getParams = function getParams() {
221
+ return {
222
+ tooltipFormatter: tooltipFormatter,
223
+ tooltipLabel: htmlHandler(tooltipLabel),
224
+ digit: digit
225
+ };
226
+ };
227
+ var tooltip = tooltipVisible && getTooltip(getParams());
228
+ var xAxis = getXAxis({
229
+ columns: columns,
230
+ xAxisName: xAxisName,
231
+ axisVisible: axisVisible,
232
+ xAxisType: xAxisType
233
+ });
234
+ var yAxisParams = {
235
+ yAxisName: yAxisName,
236
+ yAxisType: yAxisType,
237
+ axisVisible: axisVisible
238
+ };
239
+ Object.assign(yAxisParams, {
240
+ scale: scale,
241
+ min: min,
242
+ max: max,
243
+ digit: digit
244
+ });
245
+ var yAxis = getYAxis(yAxisParams);
246
+ var seriesParams = {
247
+ rows: rows,
248
+ axisSite: axisSite,
249
+ metrics: metrics,
250
+ area: area,
251
+ nullAddZero: nullAddZero,
252
+ labelMap: labelMap,
253
+ label: label
254
+ };
255
+ Object.assign(seriesParams, {
256
+ itemStyle: itemStyle,
257
+ lineStyle: lineStyle,
258
+ areaStyle: areaStyle,
259
+ xAxisType: xAxisType,
260
+ outliers: outliers
261
+ });
262
+ var series = getSeries(seriesParams);
263
+ return {
264
+ legend: legend,
265
+ xAxis: xAxis,
266
+ series: series,
267
+ yAxis: yAxis,
268
+ tooltip: tooltip
269
+ };
270
+ };
@@ -0,0 +1,428 @@
1
+ import { getFormated } from '@opentiny/vue-renderless/chart-core/deps/utils';
2
+ import { itemPoint, itemLabel, itemContent } from '@opentiny/vue-renderless/chart-core/deps/constants';
3
+ import { isNull } from '@opentiny/vue-renderless/common/type';
4
+ var DEF_MA = [5, 10, 20, 30];
5
+ var DEF_DOWN_COLOR = '#eb171f';
6
+ var DEF_UP_COLOR = '#00a874';
7
+ var DEF_START = 50;
8
+ var DEF_END = 100;
9
+ var SHOW_FALSE = {
10
+ show: false
11
+ };
12
+ var defaultKName = '';
13
+ var getCandleLegend = function getCandleLegend(args) {
14
+ var MA = args.MA,
15
+ labelMap = args.labelMap,
16
+ legendName = args.legendName,
17
+ showMA = args.showMA;
18
+ var data = [defaultKName];
19
+ showMA && (data = data.concat(MA.map(function (v) {
20
+ return "MA".concat(v);
21
+ })));
22
+ labelMap && (data = data.map(function (v) {
23
+ return isNull(labelMap[v]) ? v : labelMap[v];
24
+ }));
25
+ function formatter(name) {
26
+ return isNull(legendName[name]) ? name : legendName[name];
27
+ }
28
+ return {
29
+ data: data,
30
+ formatter: formatter
31
+ };
32
+ };
33
+ var getCandleTooltip = function getCandleTooltip(args) {
34
+ var dataType = args.dataType,
35
+ digit = args.digit,
36
+ labelMap = args.labelMap,
37
+ metrics = args.metrics;
38
+ function position(pos, params, el, elRect, size) {
39
+ var result = {
40
+ top: 10
41
+ };
42
+ var side = pos[0] < size.viewSize[0] / 2 ? 'right' : 'left';
43
+ result[side] = 60;
44
+ return result;
45
+ }
46
+ function formatter(options) {
47
+ var tplt = [];
48
+ tplt.push("".concat(itemContent(options[0].axisValue), "<br>"));
49
+ options.forEach(function (opt) {
50
+ var color = opt.color,
51
+ componentSubType = opt.componentSubType,
52
+ data = opt.data,
53
+ seriesName = opt.seriesName;
54
+ var name = isNull(labelMap[seriesName]) ? seriesName : labelMap[seriesName];
55
+ tplt.push("".concat(itemPoint(color)).concat(itemContent(name), ": "));
56
+ if (componentSubType === 'candlestick') {
57
+ tplt.push('<br>');
58
+ metrics.slice(0, 4).forEach(function (m, i) {
59
+ var name = isNull(labelMap[m]) ? m : labelMap[m];
60
+ var value = getFormated(data[i + 1], dataType, digit);
61
+ tplt.push("".concat(itemLabel("- ".concat(name))).concat(itemContent(value), "<br>"));
62
+ });
63
+ } else if (componentSubType === 'line') {
64
+ var value = getFormated(data, dataType, digit);
65
+ tplt.push("".concat(itemContent(value), "<br>"));
66
+ } else if (componentSubType === 'bar') {
67
+ var _value = getFormated(data[1], dataType, digit);
68
+ tplt.push("".concat(itemContent(_value), "<br>"));
69
+ }
70
+ });
71
+ return tplt.join('');
72
+ }
73
+ return {
74
+ axisPointer: {
75
+ type: 'cross'
76
+ },
77
+ formatter: formatter,
78
+ position: position,
79
+ trigger: 'axis'
80
+ };
81
+ };
82
+ var getCandleVisualMap = function getCandleVisualMap(args) {
83
+ var MA = args.MA,
84
+ downColor = args.downColor,
85
+ showMA = args.showMA,
86
+ upColor = args.upColor;
87
+ var seriesIndex = showMA ? 1 + MA.length : 1;
88
+ var pieces = [{
89
+ value: 1,
90
+ color: downColor
91
+ }, {
92
+ value: -1,
93
+ color: upColor
94
+ }];
95
+ return {
96
+ dimension: 2,
97
+ pieces: pieces,
98
+ seriesIndex: seriesIndex,
99
+ show: false
100
+ };
101
+ };
102
+ var getCandleGrid = function getCandleGrid(args) {
103
+ var showVol = args.showVol;
104
+ var height = showVol ? '50%' : '65%';
105
+ return [{
106
+ containLabel: false,
107
+ left: '10%',
108
+ right: '8%',
109
+ top: '10%',
110
+ height: height
111
+ }, {
112
+ containLabel: false,
113
+ left: '10%',
114
+ right: '8%',
115
+ top: '65%',
116
+ height: '16%'
117
+ }];
118
+ };
119
+ var getCandleXAxis = function getCandleXAxis(args) {
120
+ var data = args.dims;
121
+ var _ref = {},
122
+ _ref$type = _ref.type,
123
+ type = _ref$type === void 0 ? 'category' : _ref$type,
124
+ _ref$scale = _ref.scale,
125
+ scale = _ref$scale === void 0 ? true : _ref$scale,
126
+ _ref$boundaryGap = _ref.boundaryGap,
127
+ boundaryGap = _ref$boundaryGap === void 0 ? false : _ref$boundaryGap,
128
+ _ref$splitLine = _ref.splitLine,
129
+ splitLine = _ref$splitLine === void 0 ? SHOW_FALSE : _ref$splitLine;
130
+ var _ref2 = {},
131
+ _ref2$axisLine = _ref2.axisLine,
132
+ axisLine = _ref2$axisLine === void 0 ? {
133
+ onZero: false
134
+ } : _ref2$axisLine,
135
+ _ref2$axisTick = _ref2.axisTick,
136
+ axisTick = _ref2$axisTick === void 0 ? SHOW_FALSE : _ref2$axisTick,
137
+ _ref2$axisLabel = _ref2.axisLabel,
138
+ axisLabel = _ref2$axisLabel === void 0 ? SHOW_FALSE : _ref2$axisLabel;
139
+ var _ref3 = {},
140
+ _ref3$min = _ref3.min,
141
+ min = _ref3$min === void 0 ? 'dataMin' : _ref3$min,
142
+ _ref3$max = _ref3.max,
143
+ max = _ref3$max === void 0 ? 'dataMax' : _ref3$max,
144
+ _ref3$gridIndex = _ref3.gridIndex,
145
+ gridIndex = _ref3$gridIndex === void 0 ? 1 : _ref3$gridIndex;
146
+ return [{
147
+ axisLine: axisLine,
148
+ boundaryGap: boundaryGap,
149
+ data: data,
150
+ max: max,
151
+ min: min,
152
+ scale: scale,
153
+ splitLine: splitLine,
154
+ type: type
155
+ }, {
156
+ axisLine: axisLine,
157
+ boundaryGap: boundaryGap,
158
+ data: data,
159
+ max: max,
160
+ min: min,
161
+ scale: scale,
162
+ splitLine: splitLine,
163
+ type: type,
164
+ axisLabel: axisLabel,
165
+ axisTick: axisTick,
166
+ gridIndex: gridIndex
167
+ }];
168
+ };
169
+ var getCandleYAxis = function getCandleYAxis(args) {
170
+ var dataType = args.dataType,
171
+ digit = args.digit;
172
+ var _ref4 = {},
173
+ _ref4$scale = _ref4.scale,
174
+ scale = _ref4$scale === void 0 ? true : _ref4$scale,
175
+ _ref4$gridIndex = _ref4.gridIndex,
176
+ gridIndex = _ref4$gridIndex === void 0 ? 1 : _ref4$gridIndex,
177
+ _ref4$splitNumber = _ref4.splitNumber,
178
+ splitNumber = _ref4$splitNumber === void 0 ? 2 : _ref4$splitNumber,
179
+ _ref4$axisLine = _ref4.axisLine,
180
+ axisLine = _ref4$axisLine === void 0 ? SHOW_FALSE : _ref4$axisLine;
181
+ var _ref5 = {},
182
+ _ref5$axisTick = _ref5.axisTick,
183
+ axisTick = _ref5$axisTick === void 0 ? SHOW_FALSE : _ref5$axisTick,
184
+ _ref5$axisLabel = _ref5.axisLabel,
185
+ axisLabel = _ref5$axisLabel === void 0 ? SHOW_FALSE : _ref5$axisLabel,
186
+ _ref5$splitLine = _ref5.splitLine,
187
+ splitLine = _ref5$splitLine === void 0 ? SHOW_FALSE : _ref5$splitLine;
188
+ var formatter = function formatter(val) {
189
+ return getFormated(val, dataType, digit);
190
+ };
191
+ return [{
192
+ scale: scale,
193
+ axisTick: axisTick,
194
+ axisLabel: {
195
+ formatter: formatter
196
+ }
197
+ }, {
198
+ scale: scale,
199
+ axisTick: axisTick,
200
+ axisLabel: axisLabel,
201
+ gridIndex: gridIndex,
202
+ splitNumber: splitNumber,
203
+ axisLine: axisLine,
204
+ splitLine: splitLine
205
+ }];
206
+ };
207
+ var getCandleDataZoom = function getCandleDataZoom(args) {
208
+ var start = args.start,
209
+ end = args.end;
210
+ return [{
211
+ type: 'inside',
212
+ xAxisIndex: [0, 1],
213
+ start: start,
214
+ end: end
215
+ }, {
216
+ type: 'slider',
217
+ xAxisIndex: [0, 1],
218
+ start: start,
219
+ end: end,
220
+ show: true,
221
+ top: '85%'
222
+ }];
223
+ };
224
+ var calculateMA = function calculateMA(dayCount, data, digit) {
225
+ var result = [];
226
+ data.forEach(function (d, k) {
227
+ if (k < dayCount) {
228
+ result.push('-');
229
+ } else {
230
+ var _ref6 = {},
231
+ _ref6$acc = _ref6.acc,
232
+ acc = _ref6$acc === void 0 ? 0 : _ref6$acc,
233
+ _ref6$i = _ref6.i,
234
+ i = _ref6$i === void 0 ? 0 : _ref6$i;
235
+ for (; i < dayCount; i++) {
236
+ acc += data[k - i][1];
237
+ }
238
+ result.push(Number((acc / dayCount).toFixed(digit)));
239
+ }
240
+ });
241
+ return result;
242
+ };
243
+ var getCandleSeries = function getCandleSeries(args) {
244
+ var MA = args.MA,
245
+ digit = args.digit,
246
+ downColor = args.downColor,
247
+ itemStyle = args.itemStyle,
248
+ labelMap = args.labelMap,
249
+ showMA = args.showMA,
250
+ showVol = args.showVol,
251
+ upColor = args.upColor,
252
+ values = args.values,
253
+ volumes = args.volumes;
254
+ var style = itemStyle || {
255
+ color: upColor,
256
+ color0: downColor,
257
+ borderColor: null,
258
+ borderColor0: null
259
+ };
260
+ var lineStyle = {
261
+ opacity: 0.5
262
+ };
263
+ var name = isNull(labelMap[defaultKName]) ? defaultKName : labelMap[defaultKName];
264
+ var series = [{
265
+ name: name,
266
+ data: values,
267
+ type: 'candlestick',
268
+ itemStyle: style
269
+ }];
270
+ if (showMA) {
271
+ MA.forEach(function (d) {
272
+ var key = "MA".concat(d);
273
+ var serieName = isNull(labelMap[key]) ? key : labelMap[key];
274
+ var serieData = calculateMA(d, values, digit);
275
+ series.push({
276
+ name: serieName,
277
+ data: serieData,
278
+ type: 'line',
279
+ lineStyle: lineStyle,
280
+ smooth: true
281
+ });
282
+ });
283
+ }
284
+ if (showVol) {
285
+ series.push({
286
+ name: 'Volume',
287
+ data: volumes,
288
+ type: 'bar',
289
+ xAxisIndex: 1,
290
+ yAxisIndex: 1
291
+ });
292
+ }
293
+ return series;
294
+ };
295
+ export var candle = function candle(columns, rows, settings, extra) {
296
+ var _settings$dimension = settings.dimension,
297
+ dimension = _settings$dimension === void 0 ? columns[0] : _settings$dimension,
298
+ _settings$metrics = settings.metrics,
299
+ metrics = _settings$metrics === void 0 ? columns.slice(1, 6) : _settings$metrics,
300
+ _settings$digit = settings.digit,
301
+ digit = _settings$digit === void 0 ? 2 : _settings$digit,
302
+ itemStyle = settings.itemStyle;
303
+ var _settings$labelMap = settings.labelMap,
304
+ labelMap = _settings$labelMap === void 0 ? {} : _settings$labelMap,
305
+ _settings$legendName = settings.legendName,
306
+ legendName = _settings$legendName === void 0 ? {} : _settings$legendName,
307
+ _settings$MA = settings.MA,
308
+ MA = _settings$MA === void 0 ? DEF_MA : _settings$MA,
309
+ _settings$showMA = settings.showMA,
310
+ showMA = _settings$showMA === void 0 ? false : _settings$showMA,
311
+ _settings$showVol = settings.showVol,
312
+ showVol = _settings$showVol === void 0 ? false : _settings$showVol;
313
+ var _settings$showDataZoo = settings.showDataZoom,
314
+ showDataZoom = _settings$showDataZoo === void 0 ? false : _settings$showDataZoo,
315
+ _settings$downColor = settings.downColor,
316
+ downColor = _settings$downColor === void 0 ? DEF_DOWN_COLOR : _settings$downColor,
317
+ _settings$upColor = settings.upColor,
318
+ upColor = _settings$upColor === void 0 ? DEF_UP_COLOR : _settings$upColor;
319
+ var _settings$start = settings.start,
320
+ start = _settings$start === void 0 ? DEF_START : _settings$start,
321
+ _settings$end = settings.end,
322
+ end = _settings$end === void 0 ? DEF_END : _settings$end,
323
+ dataType = settings.dataType;
324
+ var tooltipVisible = extra.tooltipVisible,
325
+ legendVisible = extra.legendVisible,
326
+ t = extra.t;
327
+ var isLiteData = Array.isArray(rows[0]);
328
+ var _ref7 = {},
329
+ _ref7$dims = _ref7.dims,
330
+ dims = _ref7$dims === void 0 ? [] : _ref7$dims,
331
+ _ref7$values = _ref7.values,
332
+ values = _ref7$values === void 0 ? [] : _ref7$values,
333
+ _ref7$volumes = _ref7.volumes,
334
+ volumes = _ref7$volumes === void 0 ? [] : _ref7$volumes;
335
+ var candleMetrics = metrics.slice(0, 4);
336
+ var volumeMetrics = metrics[4];
337
+ defaultKName = t('ui.chart.kName');
338
+ if (isLiteData) {
339
+ rows.forEach(function (row) {
340
+ var itemResult = [];
341
+ dims.push(row[columns.indexOf(dimension)]);
342
+ candleMetrics.forEach(function (item) {
343
+ return itemResult.push(row[columns.indexOf(item)]);
344
+ });
345
+ values.push(itemResult);
346
+ volumeMetrics && volumes.push(row[columns.indexOf(volumeMetrics)]);
347
+ });
348
+ } else {
349
+ rows.forEach(function (row, index) {
350
+ var itemResult = [];
351
+ dims.push(row[dimension]);
352
+ candleMetrics.forEach(function (item) {
353
+ return itemResult.push(row[item]);
354
+ });
355
+ values.push(itemResult);
356
+ if (volumeMetrics) {
357
+ var status = row[metrics[0]] > row[metrics[1]] ? 1 : -1;
358
+ volumes.push([index, row[volumeMetrics], status]);
359
+ }
360
+ });
361
+ }
362
+ var params = {
363
+ MA: MA,
364
+ labelMap: labelMap,
365
+ legendName: legendName,
366
+ showMA: showMA
367
+ };
368
+ var legend = legendVisible && getCandleLegend(params);
369
+ params = {
370
+ dataType: dataType,
371
+ digit: digit,
372
+ labelMap: labelMap,
373
+ metrics: metrics
374
+ };
375
+ var tooltip = tooltipVisible && getCandleTooltip(params);
376
+ params = {
377
+ downColor: downColor,
378
+ upColor: upColor,
379
+ MA: MA,
380
+ showMA: showMA
381
+ };
382
+ var visualMap = showVol && getCandleVisualMap(params);
383
+ var dataZoom = showDataZoom && getCandleDataZoom({
384
+ start: start,
385
+ end: end
386
+ });
387
+ var grid = getCandleGrid({
388
+ showVol: showVol
389
+ });
390
+ var xAxis = getCandleXAxis({
391
+ dims: dims
392
+ });
393
+ var yAxis = getCandleYAxis({
394
+ dataType: dataType,
395
+ digit: digit
396
+ });
397
+ params = {
398
+ values: values,
399
+ volumes: volumes,
400
+ upColor: upColor,
401
+ downColor: downColor,
402
+ showMA: showMA
403
+ };
404
+ Object.assign(params, {
405
+ MA: MA,
406
+ showVol: showVol,
407
+ labelMap: labelMap,
408
+ digit: digit,
409
+ itemStyle: itemStyle
410
+ });
411
+ var series = getCandleSeries(params);
412
+ var axisPointer = {
413
+ link: {
414
+ xAxisIndex: 'all'
415
+ }
416
+ };
417
+ return {
418
+ legend: legend,
419
+ tooltip: tooltip,
420
+ visualMap: visualMap,
421
+ grid: grid,
422
+ xAxis: xAxis,
423
+ yAxis: yAxis,
424
+ dataZoom: dataZoom,
425
+ series: series,
426
+ axisPointer: axisPointer
427
+ };
428
+ };