dtable-statistic 4.2.2 → 4.3.1

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 (219) hide show
  1. package/es/api/dtable-db-api.js +31 -37
  2. package/es/calculator/base-calculator.js +49 -99
  3. package/es/calculator/basic-chart-calculator.js +335 -559
  4. package/es/calculator/combination-calculator.js +231 -299
  5. package/es/calculator/compare-bar-calculator.js +184 -281
  6. package/es/calculator/completeness-calculator.js +203 -288
  7. package/es/calculator/copy-value.js +18 -18
  8. package/es/calculator/dashboard-calculator.js +68 -137
  9. package/es/calculator/heat-map-calculator.js +139 -220
  10. package/es/calculator/horizontal-bar-calculator.js +64 -93
  11. package/es/calculator/index.js +53 -69
  12. package/es/calculator/map-calculator.js +98 -174
  13. package/es/calculator/mirror-calculator.js +137 -216
  14. package/es/calculator/number-card-calculator.js +58 -126
  15. package/es/calculator/pivot-table-calculator.js +750 -792
  16. package/es/calculator/scatter-calculator.js +72 -140
  17. package/es/calculator/thread-manager.js +48 -67
  18. package/es/calculator/trend-calculator.js +107 -191
  19. package/es/calculator/workers/basic-chart-calculator-worker.js +194 -165
  20. package/es/calculator/workers/calculator.worker.js +22 -6
  21. package/es/calculator/workers/card-calculator-worker.js +16 -14
  22. package/es/calculator/workers/combination-calculator-worker.js +128 -135
  23. package/es/calculator/workers/compare-bar-chart-calculator-worker.js +80 -96
  24. package/es/calculator/workers/completeness-calculator-worker.js +56 -49
  25. package/es/calculator/workers/dashboard-calculator-worker.js +24 -22
  26. package/es/calculator/workers/mirror-calculator-worker.js +52 -52
  27. package/es/calculator/workers/pivot-table-calculator-worker.js +247 -230
  28. package/es/calculator/workers/scatter-calculator-worker.js +34 -32
  29. package/es/calculator/workers/trend-calculator-worker.js +33 -29
  30. package/es/calculator/world-map-calculator.js +120 -197
  31. package/es/components/common-add-tool.js +7 -5
  32. package/es/components/dialog/chart-addition-edit-dialog.js +67 -77
  33. package/es/components/dialog/chart-addition-widgets/chart-selector.js +57 -67
  34. package/es/components/dialog/color-theme-dialog.js +34 -47
  35. package/es/components/dialog/delete-confirmation-dialog.js +7 -5
  36. package/es/components/dialog/enlarged-chart-dialog.js +68 -81
  37. package/es/components/dialog/new-table-dialog.js +62 -80
  38. package/es/components/dialog/new-view-dialog.js +50 -62
  39. package/es/components/dialog/rename-view-dialog.js +49 -58
  40. package/es/components/dialog/statistic-record-dialog/index.js +233 -231
  41. package/es/components/dialog/statistic-types-dialog/index.js +40 -49
  42. package/es/components/dialog/table-select-dialog.js +61 -70
  43. package/es/components/dropdown-menu/statistic-dropdown-menu.js +129 -142
  44. package/es/components/dtable-popover.js +62 -81
  45. package/es/components/dtable-search-input.js +89 -99
  46. package/es/components/dtable-select.js +55 -74
  47. package/es/components/icon.js +5 -3
  48. package/es/components/loading.js +1 -1
  49. package/es/components/modal-portal.js +15 -32
  50. package/es/components/popover/color-rules/color-rule.js +137 -141
  51. package/es/components/popover/color-rules/index.js +58 -66
  52. package/es/components/popover/color-rules/rule-filters/filter.js +124 -124
  53. package/es/components/popover/color-rules/rule-filters/index.js +50 -58
  54. package/es/components/popover/color-rules/rule-filters/number-input.js +42 -57
  55. package/es/components/popover/color-rules-popover.js +117 -121
  56. package/es/components/popover/color-selector-popover.js +60 -70
  57. package/es/components/seatable-radio/index.js +2 -2
  58. package/es/components/select/option-group.js +139 -157
  59. package/es/components/select/option.js +26 -40
  60. package/es/components/select/select.js +97 -112
  61. package/es/components/toast/alert.js +65 -80
  62. package/es/components/toast/index.js +1 -1
  63. package/es/components/toast/toast.js +76 -103
  64. package/es/components/toast/toastManager.js +57 -93
  65. package/es/components/toast/toaster.js +58 -56
  66. package/es/constants/color-rules.js +8 -5
  67. package/es/constants/dtable-select-style.js +44 -48
  68. package/es/constants/event-types.js +4 -4
  69. package/es/constants/index.js +328 -242
  70. package/es/constants/map.js +2 -2
  71. package/es/constants/model.js +20 -20
  72. package/es/constants/regions.js +1 -1
  73. package/es/constants/zIndexes.js +1 -1
  74. package/es/custom-g2.js +11 -11
  75. package/es/dashboard.js +343 -333
  76. package/es/desktop-dashboard.js +217 -224
  77. package/es/index.js +45 -58
  78. package/es/locale/index.js +3 -3
  79. package/es/locale/lang/de.js +1 -1
  80. package/es/locale/lang/en.js +7 -7
  81. package/es/locale/lang/fr.js +1 -1
  82. package/es/locale/lang/zh_CN.js +1 -1
  83. package/es/mobile-dashboard.js +76 -89
  84. package/es/model/bar-group.js +34 -44
  85. package/es/model/bar.js +26 -36
  86. package/es/model/base-model.js +11 -12
  87. package/es/model/basic-number-card.js +10 -20
  88. package/es/model/collaborators.js +10 -11
  89. package/es/model/combination.js +32 -42
  90. package/es/model/compare-bar.js +30 -40
  91. package/es/model/completeness-group.js +19 -29
  92. package/es/model/completeness.js +14 -24
  93. package/es/model/custom-bar.js +14 -24
  94. package/es/model/dashboard.js +9 -19
  95. package/es/model/generic-model.js +187 -197
  96. package/es/model/heat-map.js +16 -26
  97. package/es/model/horizontal-bar-group.js +32 -42
  98. package/es/model/horizontal-bar.js +26 -36
  99. package/es/model/index.js +31 -3
  100. package/es/model/map.js +20 -30
  101. package/es/model/mirror.js +15 -25
  102. package/es/model/pie.js +21 -31
  103. package/es/model/ring.js +23 -33
  104. package/es/model/scatter.js +11 -21
  105. package/es/model/statistic-dashboard.js +7 -8
  106. package/es/model/table.js +19 -29
  107. package/es/model/trend.js +15 -25
  108. package/es/model/world-map.js +17 -27
  109. package/es/service/chart-service.js +69 -65
  110. package/es/service/dashboard-service.js +421 -419
  111. package/es/service/map-json.js +112 -132
  112. package/es/stat-editor/chart-name-editor.js +44 -58
  113. package/es/stat-editor/index.js +59 -70
  114. package/es/stat-editor/stat-settings/advance-chart-settings/basic-number-card-settings.js +93 -98
  115. package/es/stat-editor/stat-settings/advance-chart-settings/combination-settings.js +246 -248
  116. package/es/stat-editor/stat-settings/advance-chart-settings/dashboard-chart-settings.js +127 -126
  117. package/es/stat-editor/stat-settings/advance-chart-settings/geo-granularity-settings.js +5 -3
  118. package/es/stat-editor/stat-settings/advance-chart-settings/heat-map-settings.js +78 -90
  119. package/es/stat-editor/stat-settings/advance-chart-settings/index.js +146 -150
  120. package/es/stat-editor/stat-settings/advance-chart-settings/map-settings.js +88 -98
  121. package/es/stat-editor/stat-settings/advance-chart-settings/mirror-settings.js +100 -118
  122. package/es/stat-editor/stat-settings/advance-chart-settings/style-setting/combination-style-setting.js +161 -148
  123. package/es/stat-editor/stat-settings/advance-chart-settings/style-setting/heat-map-settings.js +58 -66
  124. package/es/stat-editor/stat-settings/advance-chart-settings/style-setting/map-setting.js +58 -60
  125. package/es/stat-editor/stat-settings/advance-chart-settings/summary-settings.js +152 -148
  126. package/es/stat-editor/stat-settings/advance-chart-settings/trend-chart-settings.js +101 -105
  127. package/es/stat-editor/stat-settings/advance-chart-settings/world-map-settings.js +81 -91
  128. package/es/stat-editor/stat-settings/basic-chart-settings/advance-bar-chart-settings.js +110 -122
  129. package/es/stat-editor/stat-settings/basic-chart-settings/bar-settings.js +101 -113
  130. package/es/stat-editor/stat-settings/basic-chart-settings/completeness-chart-settings.js +130 -120
  131. package/es/stat-editor/stat-settings/basic-chart-settings/custom-bar-settings.js +88 -102
  132. package/es/stat-editor/stat-settings/basic-chart-settings/groupby-settings.js +88 -102
  133. package/es/stat-editor/stat-settings/basic-chart-settings/horizontal-axis-group-settings.js +200 -194
  134. package/es/stat-editor/stat-settings/basic-chart-settings/horizontal-bar-settings.js +98 -110
  135. package/es/stat-editor/stat-settings/basic-chart-settings/horizontal-group-chart-settings.js +106 -118
  136. package/es/stat-editor/stat-settings/basic-chart-settings/index.js +212 -223
  137. package/es/stat-editor/stat-settings/basic-chart-settings/pie-settings.js +109 -119
  138. package/es/stat-editor/stat-settings/basic-chart-settings/pivot-table-settings.js +329 -319
  139. package/es/stat-editor/stat-settings/basic-chart-settings/scatter-settings.js +82 -90
  140. package/es/stat-editor/stat-settings/basic-chart-settings/stack-item-settings.js +58 -65
  141. package/es/stat-editor/stat-settings/basic-chart-settings/stacks-settings.js +126 -116
  142. package/es/stat-editor/stat-settings/basic-chart-settings/style-setting/bar-chart-style-setting.js +201 -182
  143. package/es/stat-editor/stat-settings/basic-chart-settings/style-setting/completeness-style.js +79 -79
  144. package/es/stat-editor/stat-settings/basic-chart-settings/style-setting/horizontal-bar-chart-style.js +196 -175
  145. package/es/stat-editor/stat-settings/basic-chart-settings/style-setting/label-font-size-editor.js +35 -50
  146. package/es/stat-editor/stat-settings/basic-chart-settings/style-setting/pie-chart-style-settings.js +180 -147
  147. package/es/stat-editor/stat-settings/basic-chart-settings/style-setting/time-compare-style.js +31 -40
  148. package/es/stat-editor/stat-settings/basic-chart-settings/summary-method-setting.js +56 -67
  149. package/es/stat-editor/stat-settings/basic-chart-settings/summary-settings.js +60 -69
  150. package/es/stat-editor/stat-settings/basic-chart-settings/time-comparison-settings.js +165 -158
  151. package/es/stat-editor/stat-settings/basic-chart-settings/timer-picker.js +61 -74
  152. package/es/stat-editor/stat-settings/basic-chart-settings/y-axis-group-settings.js +199 -193
  153. package/es/stat-editor/stat-settings/color-setting/color-group-selector.js +25 -38
  154. package/es/stat-editor/stat-settings/color-setting/color-picker.js +79 -86
  155. package/es/stat-editor/stat-settings/color-setting/color-use-type-selector.js +138 -120
  156. package/es/stat-editor/stat-settings/map/map-level.js +31 -43
  157. package/es/stat-editor/stat-settings/map/map-province-city.js +82 -83
  158. package/es/stat-editor/stat-settings/public-setting/axis-label-position-setting.js +48 -50
  159. package/es/stat-editor/stat-settings/public-setting/base-settings.js +96 -96
  160. package/es/stat-editor/stat-settings/public-setting/calender.js +69 -75
  161. package/es/stat-editor/stat-settings/public-setting/column-settings.js +5 -3
  162. package/es/stat-editor/stat-settings/public-setting/custom-title-setting.js +36 -41
  163. package/es/stat-editor/stat-settings/public-setting/data-sort-setting.js +37 -41
  164. package/es/stat-editor/stat-settings/public-setting/ind-toggle-setting.js +25 -38
  165. package/es/stat-editor/stat-settings/public-setting/min-max-setting.js +40 -52
  166. package/es/stat-editor/stat-settings/public-setting/numeric-summary-item.js +90 -93
  167. package/es/stat-editor/stat-settings/public-setting/toggle-setting.js +23 -36
  168. package/es/stat-editor/stat-settings/public-setting/type-settings/index.js +39 -44
  169. package/es/stat-list/chart-preview.js +85 -98
  170. package/es/stat-list/index.js +170 -178
  171. package/es/stat-view/area-chart.js +282 -274
  172. package/es/stat-view/bar-chart.js +300 -292
  173. package/es/stat-view/base-chart.js +58 -52
  174. package/es/stat-view/basic-number-card.js +115 -168
  175. package/es/stat-view/combination-chart.js +298 -334
  176. package/es/stat-view/compare-chart.js +256 -254
  177. package/es/stat-view/completeness-chart.js +194 -206
  178. package/es/stat-view/custom-bar.js +221 -223
  179. package/es/stat-view/dashboard-chart.js +122 -180
  180. package/es/stat-view/heat-map.js +268 -294
  181. package/es/stat-view/horizontal-bar-chart.js +291 -281
  182. package/es/stat-view/index.js +136 -152
  183. package/es/stat-view/line-chart.js +267 -265
  184. package/es/stat-view/map.js +246 -246
  185. package/es/stat-view/mirror.js +141 -152
  186. package/es/stat-view/pie-chart.js +143 -156
  187. package/es/stat-view/pivot-table/index.js +113 -118
  188. package/es/stat-view/pivot-table/one-dimension-table-no-numeric-columns.js +104 -102
  189. package/es/stat-view/pivot-table/one-dimension-table-with-numeric-columns.js +116 -118
  190. package/es/stat-view/pivot-table/pivot-table-display-name.js +96 -95
  191. package/es/stat-view/pivot-table/two-dimension-table.js +238 -229
  192. package/es/stat-view/ring-chart.js +189 -200
  193. package/es/stat-view/scatter-chart.js +162 -213
  194. package/es/stat-view/treemap-chart.js +136 -200
  195. package/es/stat-view/trend-chart.js +137 -183
  196. package/es/stat-view/world-map.js +233 -243
  197. package/es/tabs/index.js +164 -169
  198. package/es/tabs/tab.js +101 -116
  199. package/es/utils/basic-chart-utils.js +7 -9
  200. package/es/utils/cell-format.js +48 -51
  201. package/es/utils/cell-value.js +1 -1
  202. package/es/utils/collaborator.js +15 -14
  203. package/es/utils/color-utils.js +48 -37
  204. package/es/utils/column-utils.js +47 -33
  205. package/es/utils/column.js +1 -1
  206. package/es/utils/common-utils.js +111 -117
  207. package/es/utils/date-format.js +17 -17
  208. package/es/utils/export-table-utils.js +507 -396
  209. package/es/utils/index.js +6 -6
  210. package/es/utils/map.js +30 -34
  211. package/es/utils/model.js +3 -5
  212. package/es/utils/object.js +4 -4
  213. package/es/utils/pivot-table.js +20 -20
  214. package/es/utils/row-utils.js +41 -33
  215. package/es/utils/search.js +18 -20
  216. package/es/utils/sql-utils.js +132 -98
  217. package/es/utils/stat-utils.js +303 -320
  218. package/es/utils/trend-utils.js +57 -67
  219. package/package.json +2 -2
package/es/utils/index.js CHANGED
@@ -1,22 +1,22 @@
1
- export var isFunction = function isFunction(functionToCheck) {
2
- var getType = {};
1
+ export const isFunction = functionToCheck => {
2
+ const getType = {};
3
3
  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
4
4
  };
5
- export var getEventClassName = function getEventClassName(e) {
5
+ export const getEventClassName = e => {
6
6
  // svg mouseEvent event.target.className is an object
7
7
  if (!e || !e.target) return '';
8
8
  return e.target.getAttribute('class') || '';
9
9
  };
10
- export var hexToRgb = function hexToRgb(hex) {
10
+ export const hexToRgb = hex => {
11
11
  hex = hex.replace('#', '');
12
- var bigint = parseInt(hex, 16);
12
+ const bigint = parseInt(hex, 16);
13
13
  return {
14
14
  r: bigint >> 16 & 255,
15
15
  g: bigint >> 8 & 255,
16
16
  b: bigint & 255
17
17
  };
18
18
  };
19
- export var isMobile = typeof window !== 'undefined' && (window.innerWidth < 768 || navigator.userAgent.toLowerCase().match(/(ipod|ipad|iphone|android|coolpad|mmp|smartphone|midp|wap|xoom|symbian|j2me|blackberry|wince)/i) != null);
19
+ export const isMobile = typeof window !== 'undefined' && (window.innerWidth < 768 || navigator.userAgent.toLowerCase().match(/(ipod|ipad|iphone|android|coolpad|mmp|smartphone|midp|wap|xoom|symbian|j2me|blackberry|wince)/i) != null);
20
20
  export { getClientCellValueDisplayString, getClientFormulaDisplayString } from './cell-format';
21
21
  export { hasOwnProperty, isEmptyObject, isSameObject } from './object';
22
22
  export { isCellValueChanged } from './cell-value';
package/es/utils/map.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import { GEOLOCATION_GRANULARITY, STAT_TYPE } from '../constants';
2
2
  import { MAP_LEVEL, MUNICIPALITIES } from '../constants/map';
3
3
  import { regions } from '../constants/regions';
4
- var COUNTY_SCALE_WIDTH = 5.95;
5
- var COUNTY_SCALE_HEIGHT = 4.37;
6
- export var getGeoGranularityByLevel = function getGeoGranularityByLevel(mapLevel) {
4
+ const COUNTY_SCALE_WIDTH = 5.95;
5
+ const COUNTY_SCALE_HEIGHT = 4.37;
6
+ export const getGeoGranularityByLevel = mapLevel => {
7
7
  switch (mapLevel) {
8
8
  case MAP_LEVEL.PROVINCE:
9
9
  {
@@ -20,31 +20,31 @@ export var getGeoGranularityByLevel = function getGeoGranularityByLevel(mapLevel
20
20
  }
21
21
  }
22
22
  };
23
- export var fixGeoGranularity = function fixGeoGranularity(_ref) {
24
- var mapLevel = _ref.mapLevel,
25
- mapLocation = _ref.mapLocation;
23
+ export const fixGeoGranularity = _ref => {
24
+ let {
25
+ mapLevel,
26
+ mapLocation
27
+ } = _ref;
26
28
  if (!mapLevel || mapLevel === MAP_LEVEL.COUNTRY || !mapLocation) {
27
29
  return GEOLOCATION_GRANULARITY.PROVINCE;
28
30
  }
29
31
 
30
32
  // e.g. Beijing
31
- var provinceName = mapLocation.province,
32
- cityName = mapLocation.city;
33
+ const {
34
+ province: provinceName,
35
+ city: cityName
36
+ } = mapLocation;
33
37
  if (provinceName && MUNICIPALITIES.includes(provinceName)) {
34
38
  return GEOLOCATION_GRANULARITY.DISTRICT;
35
39
  }
36
40
 
37
41
  // e.g. HongKong
38
- var selectedProvince = provinceName && regions.find(function (province) {
39
- return province.name === provinceName;
40
- });
42
+ const selectedProvince = provinceName && regions.find(province => province.name === provinceName);
41
43
  if (selectedProvince && selectedProvince.disable_drill_down) {
42
44
  return GEOLOCATION_GRANULARITY.PROVINCE;
43
45
  }
44
- var cities = selectedProvince && selectedProvince.cities;
45
- var selectedCity = cities && cityName && cities.find(function (city) {
46
- return city.name === cityName;
47
- });
46
+ const cities = selectedProvince && selectedProvince.cities;
47
+ const selectedCity = cities && cityName && cities.find(city => city.name === cityName);
48
48
  if (mapLevel === MAP_LEVEL.CITY && selectedCity && selectedCity.disable_drill_down) {
49
49
  return GEOLOCATION_GRANULARITY.CITY;
50
50
  }
@@ -52,10 +52,12 @@ export var fixGeoGranularity = function fixGeoGranularity(_ref) {
52
52
  // others
53
53
  return getGeoGranularityByLevel(mapLevel);
54
54
  };
55
- export var fixMapGeoGranularity = function fixMapGeoGranularity(chart) {
56
- var type = chart.type,
57
- map_level = chart.map_level,
58
- map_location = chart.map_location;
55
+ export const fixMapGeoGranularity = chart => {
56
+ const {
57
+ type,
58
+ map_level,
59
+ map_location
60
+ } = chart;
59
61
  if (type !== STAT_TYPE.MAP && type !== STAT_TYPE.MAP_BUBBLE) {
60
62
  return chart.geolocation_granularity;
61
63
  }
@@ -64,18 +66,16 @@ export var fixMapGeoGranularity = function fixMapGeoGranularity(chart) {
64
66
  mapLocation: map_location
65
67
  });
66
68
  };
67
- export var getRegionScaleOffsets = function getRegionScaleOffsets(mapLevel, mapLocation) {
68
- var countryScaleOffsets = {
69
+ export const getRegionScaleOffsets = (mapLevel, mapLocation) => {
70
+ const countryScaleOffsets = {
69
71
  scale_w: COUNTY_SCALE_WIDTH,
70
72
  scale_h: COUNTY_SCALE_HEIGHT
71
73
  };
72
74
  switch (mapLevel) {
73
75
  case MAP_LEVEL.PROVINCE:
74
76
  {
75
- var provinceName = mapLocation && mapLocation.province;
76
- var province = provinceName && regions.find(function (province) {
77
- return province.name === provinceName;
78
- });
77
+ const provinceName = mapLocation && mapLocation.province;
78
+ const province = provinceName && regions.find(province => province.name === provinceName);
79
79
  if (!province) return countryScaleOffsets;
80
80
  return {
81
81
  scale_w: province.scale_w,
@@ -84,15 +84,11 @@ export var getRegionScaleOffsets = function getRegionScaleOffsets(mapLevel, mapL
84
84
  }
85
85
  case MAP_LEVEL.CITY:
86
86
  {
87
- var _provinceName = mapLocation && mapLocation.province;
88
- var _province = _provinceName && regions.find(function (province) {
89
- return province.name === _provinceName;
90
- });
91
- var cities = _province && _province.cities;
92
- var cityName = mapLocation.city;
93
- var city = cityName && Array.isArray(cities) && cities.find(function (city) {
94
- return city.name === cityName;
95
- });
87
+ const provinceName = mapLocation && mapLocation.province;
88
+ const province = provinceName && regions.find(province => province.name === provinceName);
89
+ const cities = province && province.cities;
90
+ const cityName = mapLocation.city;
91
+ const city = cityName && Array.isArray(cities) && cities.find(city => city.name === cityName);
96
92
  if (!city) return countryScaleOffsets;
97
93
  return {
98
94
  scale_w: city.scale_w,
package/es/utils/model.js CHANGED
@@ -1,13 +1,11 @@
1
1
  import { hasOwnProperty } from './object';
2
- export var getChartConfigValueFromKey = function getChartConfigValueFromKey(key, object) {
2
+ export const getChartConfigValueFromKey = (key, object) => {
3
3
  if (!hasOwnProperty(object, key)) {
4
4
  return null;
5
5
  }
6
6
  return object[key];
7
7
  };
8
- export var getChartConfigValueFromKeys = function getChartConfigValueFromKeys(keys, object) {
9
- var existKey = keys.find(function (key) {
10
- return hasOwnProperty(object, key);
11
- });
8
+ export const getChartConfigValueFromKeys = (keys, object) => {
9
+ const existKey = keys.find(key => hasOwnProperty(object, key));
12
10
  return existKey ? object[existKey] : null;
13
11
  };
@@ -1,6 +1,6 @@
1
1
  import { isValidElement } from 'react';
2
- export var isSameObject = function isSameObject(a, b) {
3
- var k;
2
+ export const isSameObject = (a, b) => {
3
+ let k;
4
4
  for (k in a) {
5
5
  if (a.hasOwnProperty(k)) {
6
6
  if (typeof a[k] === 'function' && typeof b[k] === 'function' || isValidElement(a[k]) && isValidElement(b[k])) {
@@ -18,9 +18,9 @@ export var isSameObject = function isSameObject(a, b) {
18
18
  }
19
19
  return true;
20
20
  };
21
- export var isEmptyObject = function isEmptyObject(obj) {
21
+ export const isEmptyObject = obj => {
22
22
  return Object.keys(obj).length === 0 && obj.constructor === Object;
23
23
  };
24
- export var hasOwnProperty = function hasOwnProperty(obj, prop) {
24
+ export const hasOwnProperty = (obj, prop) => {
25
25
  return Object.prototype.hasOwnProperty.call(obj, prop);
26
26
  };
@@ -1,16 +1,16 @@
1
1
  import { FORMULA_COLUMN_TYPES_MAP, isNumber } from 'dtable-store';
2
2
  import { STATISTICS_COUNT_TYPE, SUMMARY_METHOD_MAP } from '../constants';
3
- var getCellValueFromRow = function getCellValueFromRow(row, formulaRow, columnType, columnKey, sqlKey, isSqlQuery) {
3
+ const getCellValueFromRow = (row, formulaRow, columnType, columnKey, sqlKey, isSqlQuery) => {
4
4
  if (!isSqlQuery) {
5
5
  if (FORMULA_COLUMN_TYPES_MAP[columnType]) {
6
- var cellValue = formulaRow[columnKey];
6
+ const cellValue = formulaRow[columnKey];
7
7
  return Array.isArray(cellValue) ? cellValue[0] : cellValue;
8
8
  }
9
9
  return row[columnKey];
10
10
  }
11
11
  return row[sqlKey];
12
12
  };
13
- export var getPivotTableSummaryTotal = function getPivotTableSummaryTotal(summaryColumnType, summaryColumnKey, sqlKey, summaryType, summaryMethod, rows, formulaRows, isSqlQuery) {
13
+ export const getPivotTableSummaryTotal = (summaryColumnType, summaryColumnKey, sqlKey, summaryType, summaryMethod, rows, formulaRows, isSqlQuery) => {
14
14
  if (summaryType === STATISTICS_COUNT_TYPE.COUNT) {
15
15
  return rows.length;
16
16
  }
@@ -20,11 +20,11 @@ export var getPivotTableSummaryTotal = function getPivotTableSummaryTotal(summar
20
20
  switch (summaryMethod) {
21
21
  case SUMMARY_METHOD_MAP.Distinct_values:
22
22
  {
23
- var count = 0;
24
- var existMap = {};
25
- rows.forEach(function (row) {
26
- var formulaRow = formulaRows && formulaRows[row._id];
27
- var cellValue = getCellValueFromRow(row, formulaRow, summaryColumnType, summaryColumnKey, sqlKey, isSqlQuery);
23
+ let count = 0;
24
+ let existMap = {};
25
+ rows.forEach(row => {
26
+ const formulaRow = formulaRows && formulaRows[row._id];
27
+ let cellValue = getCellValueFromRow(row, formulaRow, summaryColumnType, summaryColumnKey, sqlKey, isSqlQuery);
28
28
  if (!cellValue) {
29
29
  if (cellValue === 0) {
30
30
  cellValue = '0';
@@ -42,11 +42,11 @@ export var getPivotTableSummaryTotal = function getPivotTableSummaryTotal(summar
42
42
  case SUMMARY_METHOD_MAP.Sum:
43
43
  case SUMMARY_METHOD_MAP.Mean:
44
44
  {
45
- var sum = 0;
46
- var validNumbersCount = 0;
47
- rows.forEach(function (row) {
48
- var formulaRow = formulaRows && formulaRows[row._id];
49
- var cellValue = getCellValueFromRow(row, formulaRow, summaryColumnType, summaryColumnKey, sqlKey, isSqlQuery);
45
+ let sum = 0;
46
+ let validNumbersCount = 0;
47
+ rows.forEach(row => {
48
+ const formulaRow = formulaRows && formulaRows[row._id];
49
+ let cellValue = getCellValueFromRow(row, formulaRow, summaryColumnType, summaryColumnKey, sqlKey, isSqlQuery);
50
50
  if (isNumber(cellValue)) {
51
51
  validNumbersCount++;
52
52
  sum += cellValue;
@@ -65,22 +65,22 @@ export var getPivotTableSummaryTotal = function getPivotTableSummaryTotal(summar
65
65
  if (rows.length === 0) {
66
66
  return 0;
67
67
  }
68
- var result = rows.reduce(function (current, next) {
69
- var currentFormulaRow = formulaRows && formulaRows[current._id];
70
- var nextFormulaRow = formulaRows && formulaRows[next._id];
71
- var currentValue = getCellValueFromRow(current, currentFormulaRow, summaryColumnType, summaryColumnKey, sqlKey, isSqlQuery);
72
- var nextValue = getCellValueFromRow(next, nextFormulaRow, summaryColumnType, summaryColumnKey, sqlKey, isSqlQuery);
68
+ let result = rows.reduce((current, next) => {
69
+ const currentFormulaRow = formulaRows && formulaRows[current._id];
70
+ const nextFormulaRow = formulaRows && formulaRows[next._id];
71
+ let currentValue = getCellValueFromRow(current, currentFormulaRow, summaryColumnType, summaryColumnKey, sqlKey, isSqlQuery);
72
+ let nextValue = getCellValueFromRow(next, nextFormulaRow, summaryColumnType, summaryColumnKey, sqlKey, isSqlQuery);
73
73
  if (!nextValue && nextValue !== 0) {
74
74
  return current;
75
75
  }
76
- var isNextGreater = currentValue < nextValue;
76
+ let isNextGreater = currentValue < nextValue;
77
77
  if (summaryMethod === SUMMARY_METHOD_MAP.Min) {
78
78
  return isNextGreater ? current : next;
79
79
  } else {
80
80
  return isNextGreater ? next : current;
81
81
  }
82
82
  });
83
- var formulaRow = formulaRows && formulaRows[result._id];
83
+ const formulaRow = formulaRows && formulaRows[result._id];
84
84
  return getCellValueFromRow(result, formulaRow, summaryColumnType, summaryColumnKey, sqlKey, isSqlQuery);
85
85
  }
86
86
  default:
@@ -1,6 +1,6 @@
1
1
  import { CellType, COLLABORATOR_COLUMN_TYPES, FORMULA_COLUMN_TYPES_MAP, FORMULA_RESULT_TYPE, isNumber, getNumberDisplayString } from 'dtable-store';
2
2
  import { getClientFormulaDisplayString } from '../utils';
3
- export var isEmptyGeolocationCell = function isEmptyGeolocationCell(cellValue, format) {
3
+ export const isEmptyGeolocationCell = (cellValue, format) => {
4
4
  if (!cellValue) return null;
5
5
  if (format === 'lng_lat') {
6
6
  return (cellValue.lng || cellValue.lng === 0) && (cellValue.lat || cellValue.lat === 0);
@@ -10,40 +10,47 @@ export var isEmptyGeolocationCell = function isEmptyGeolocationCell(cellValue, f
10
10
  }
11
11
  return cellValue.province;
12
12
  };
13
- export var isValidRow = function isValidRow(row, formulaRow, column, includeEmpty) {
14
- var columnType = column.type,
15
- columnKey = column.key;
13
+ export const isValidRow = (row, formulaRow, column, includeEmpty) => {
14
+ const {
15
+ type: columnType,
16
+ key: columnKey
17
+ } = column;
16
18
  if (includeEmpty || columnType === CellType.CHECKBOX) return true;
17
19
  if (columnType === CellType.GEOLOCATION) {
18
- var geo_format = column.data.geo_format;
20
+ const {
21
+ geo_format
22
+ } = column.data;
19
23
  return isEmptyGeolocationCell(row[columnKey], geo_format);
20
24
  }
21
- var cellValue = row[columnKey];
25
+ let cellValue = row[columnKey];
22
26
  if (FORMULA_COLUMN_TYPES_MAP[columnType] || columnType === CellType.LINK) {
23
27
  cellValue = formulaRow ? formulaRow[columnKey] : null;
24
28
  }
25
29
  return cellValue || cellValue === 0;
26
30
  };
27
- export var getFormattedLabel = function getFormattedLabel(column, name, collaborators) {
28
- var columnType = column.type,
29
- columnData = column.data;
31
+ export const getFormattedLabel = (column, name, collaborators) => {
32
+ let {
33
+ type: columnType,
34
+ data: columnData
35
+ } = column;
30
36
  if (columnType === CellType.SINGLE_SELECT || columnType === CellType.MULTIPLE_SELECT) {
31
- var options = columnData ? columnData.options : [];
32
- var selectedOption = options.find(function (o) {
33
- var id = name;
37
+ let options = columnData ? columnData.options : [];
38
+ let selectedOption = options.find(o => {
39
+ let id = name;
34
40
  if (Array.isArray(name)) {
35
41
  id = name[0];
36
42
  }
37
43
  return o.id === id;
38
44
  });
39
- var _ref = selectedOption || {},
40
- optionName = _ref.name;
45
+ let {
46
+ name: optionName
47
+ } = selectedOption || {};
41
48
  if (selectedOption) {
42
49
  return optionName;
43
50
  }
44
51
  } else if (columnType === CellType.COLLABORATOR) {
45
- var collaborator = collaborators.find(function (item) {
46
- var email = name;
52
+ let collaborator = collaborators.find(item => {
53
+ let email = name;
47
54
  if (Array.isArray(name)) {
48
55
  email = name[0];
49
56
  }
@@ -56,26 +63,25 @@ export var getFormattedLabel = function getFormattedLabel(column, name, collabor
56
63
  if (name === 'anonymous') {
57
64
  return name;
58
65
  } else {
59
- var _collaborator = collaborators.find(function (item) {
60
- return item.email === name;
61
- });
62
- if (_collaborator) {
63
- return _collaborator.name;
66
+ let collaborator = collaborators.find(item => item.email === name);
67
+ if (collaborator) {
68
+ return collaborator.name;
64
69
  }
65
70
  }
66
71
  } else if (columnType === CellType.LINK) {
67
72
  return getClientFormulaDisplayString(Array.isArray(name) ? name : [name], columnData, {
68
- collaborators: collaborators
73
+ collaborators
69
74
  });
70
75
  } else if (columnType === CellType.CHECKBOX) {
71
76
  return name == 'true' ? 'Checked' : 'Unchecked';
72
77
  } else if (FORMULA_COLUMN_TYPES_MAP[columnType]) {
73
- var _ref2 = columnData || {},
74
- result_type = _ref2.result_type,
75
- array_type = _ref2.array_type;
78
+ const {
79
+ result_type,
80
+ array_type
81
+ } = columnData || {};
76
82
  if (!name && !isNumber(name)) return '';
77
83
  if (result_type === FORMULA_RESULT_TYPE.NUMBER) {
78
- var valueNumber = parseFloat(name);
84
+ const valueNumber = parseFloat(name);
79
85
  return isNumber(valueNumber) ? getNumberDisplayString(valueNumber, column.data) : name;
80
86
  }
81
87
  if (result_type === FORMULA_RESULT_TYPE.ARRAY) {
@@ -83,15 +89,15 @@ export var getFormattedLabel = function getFormattedLabel(column, name, collabor
83
89
  if ([CellType.CREATOR, CellType.LAST_MODIFIER].includes(array_type) && name === 'anonymous') {
84
90
  return name;
85
91
  }
86
- var _collaborator2 = collaborators.find(function (item) {
87
- var email = name;
92
+ const collaborator = collaborators.find(item => {
93
+ let email = name;
88
94
  if (Array.isArray(name)) {
89
95
  email = name[0];
90
96
  }
91
97
  return item.email === email;
92
98
  });
93
- if (_collaborator2) {
94
- return _collaborator2.name;
99
+ if (collaborator) {
100
+ return collaborator.name;
95
101
  }
96
102
  }
97
103
  }
@@ -103,10 +109,12 @@ export var getFormattedLabel = function getFormattedLabel(column, name, collabor
103
109
  };
104
110
  export function getCellValue(row, formulaRow, column) {
105
111
  if (!column) return null;
106
- var type = column.type,
107
- key = column.key;
112
+ const {
113
+ type,
114
+ key
115
+ } = column;
108
116
  if (FORMULA_COLUMN_TYPES_MAP[type]) {
109
- var cellValue = formulaRow && formulaRow[key];
117
+ const cellValue = formulaRow && formulaRow[key];
110
118
  if (Array.isArray(cellValue)) {
111
119
  return cellValue[0];
112
120
  }
@@ -1,43 +1,41 @@
1
1
  import dayjs from 'dayjs';
2
2
  import { CellType, getNumberDisplayString, getMultipleOptionName, getCollaboratorsName, getGeolocationDisplayString } from 'dtable-store';
3
3
  import { getSelectColumnOptions } from './column';
4
- var SUPPORT_SEARCH_COLUMN_TYPES = [CellType.DATE, CellType.TEXT, CellType.LONG_TEXT, CellType.NUMBER, CellType.URL, CellType.EMAIL, CellType.SINGLE_SELECT, CellType.CTIME, CellType.MTIME, CellType.MULTIPLE_SELECT, CellType.LAST_MODIFIER, CellType.CREATOR, CellType.COLLABORATOR, CellType.LINK, CellType.FORMULA, CellType.LINK_FORMULA, CellType.AUTO_NUMBER, CellType.GEOLOCATION, CellType.DURATION];
5
- export var searchRows = function searchRows(rows, columns, val, processRow) {
6
- var dtableCollaborators = window.app.collaboratorsCache || [];
7
- var collaborators = window.app.state.collaborators;
8
- var searchResult = [];
9
- rows.forEach(function (row) {
10
- var column = columns.find(function (column) {
11
- var columnType = column.type,
12
- columnKey = column.key;
4
+ const SUPPORT_SEARCH_COLUMN_TYPES = [CellType.DATE, CellType.TEXT, CellType.LONG_TEXT, CellType.NUMBER, CellType.URL, CellType.EMAIL, CellType.SINGLE_SELECT, CellType.CTIME, CellType.MTIME, CellType.MULTIPLE_SELECT, CellType.LAST_MODIFIER, CellType.CREATOR, CellType.COLLABORATOR, CellType.LINK, CellType.FORMULA, CellType.LINK_FORMULA, CellType.AUTO_NUMBER, CellType.GEOLOCATION, CellType.DURATION];
5
+ export const searchRows = (rows, columns, val, processRow) => {
6
+ let dtableCollaborators = window.app.collaboratorsCache || [];
7
+ let collaborators = window.app.state.collaborators;
8
+ let searchResult = [];
9
+ rows.forEach(row => {
10
+ let column = columns.find(column => {
11
+ const {
12
+ type: columnType,
13
+ key: columnKey
14
+ } = column;
13
15
  if (!SUPPORT_SEARCH_COLUMN_TYPES.includes(columnType)) {
14
16
  return false;
15
17
  }
16
- var cellValue = row[columnKey];
18
+ const cellValue = row[columnKey];
17
19
  if (cellValue) {
18
- var text;
20
+ let text;
19
21
  if (columnType === CellType.LONG_TEXT) {
20
22
  text = cellValue.text;
21
23
  } else if (columnType === CellType.NUMBER || columnType === CellType.DURATION) {
22
24
  text = getNumberDisplayString(cellValue, column.data);
23
25
  } else if (columnType === CellType.SINGLE_SELECT) {
24
- var options = getSelectColumnOptions(column);
25
- var option = options.find(function (option) {
26
- return option.id === cellValue;
27
- });
26
+ const options = getSelectColumnOptions(column);
27
+ const option = options.find(option => option.id === cellValue);
28
28
  text = option ? option.name : '';
29
29
  } else if (columnType === CellType.MULTIPLE_SELECT) {
30
- var _options = getSelectColumnOptions(column);
31
- text = getMultipleOptionName(_options, cellValue);
30
+ const options = getSelectColumnOptions(column);
31
+ text = getMultipleOptionName(options, cellValue);
32
32
  } else if (columnType === CellType.COLLABORATOR) {
33
33
  text = getCollaboratorsName(collaborators, cellValue);
34
34
  } else if (columnType === CellType.LAST_MODIFIER || columnType === CellType.CREATOR) {
35
35
  if (cellValue === 'anonymous') {
36
36
  text = cellValue;
37
37
  } else {
38
- var collaborator = collaborators.find(function (collaborator) {
39
- return collaborator.email === cellValue;
40
- });
38
+ let collaborator = collaborators.find(collaborator => collaborator.email === cellValue);
41
39
  if (!collaborator) {
42
40
  collaborator = dtableCollaborators[cellValue];
43
41
  }