dtable-statistic 4.4.24-alpha.9 → 5.0.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 (198) hide show
  1. package/es/assets/css/color-picker.css +53 -0
  2. package/es/assets/css/color-rules-popover.css +144 -0
  3. package/es/assets/css/dashboard.css +0 -1
  4. package/es/assets/css/dialog.css +0 -30
  5. package/es/assets/css/slider.css +77 -0
  6. package/es/assets/css/statistic-chart.module.css +11 -0
  7. package/es/assets/css/statistic-custom-title.module.css +3 -0
  8. package/es/assets/css/statistic-custom.module.css +4 -0
  9. package/es/assets/css/statistic-numeric-column-item.module.css +43 -0
  10. package/es/assets/css/statistic-time-picker.module.css +21 -0
  11. package/es/calculator/base-calculator.js +80 -0
  12. package/es/calculator/basic-chart-calculator.js +349 -0
  13. package/es/calculator/combination-calculator.js +246 -0
  14. package/es/calculator/compare-bar-calculator.js +197 -0
  15. package/es/calculator/completeness-calculator.js +215 -0
  16. package/es/calculator/copy-value.js +53 -0
  17. package/es/calculator/dashboard-calculator.js +70 -0
  18. package/es/calculator/heat-map-calculator.js +148 -0
  19. package/es/calculator/horizontal-bar-calculator.js +67 -0
  20. package/es/calculator/index.js +81 -0
  21. package/es/calculator/map-calculator.js +103 -0
  22. package/es/calculator/mirror-calculator.js +146 -0
  23. package/es/calculator/number-card-calculator.js +60 -0
  24. package/es/calculator/pivot-table-calculator.js +821 -0
  25. package/es/calculator/scatter-calculator.js +75 -0
  26. package/es/calculator/thread-manager.js +57 -0
  27. package/es/calculator/trend-calculator.js +113 -0
  28. package/es/calculator/workers/basic-chart-calculator-worker.js +495 -0
  29. package/es/calculator/workers/calculator.worker.js +44 -0
  30. package/es/calculator/workers/card-calculator-worker.js +40 -0
  31. package/es/calculator/workers/combination-calculator-worker.js +276 -0
  32. package/es/calculator/workers/compare-bar-chart-calculator-worker.js +150 -0
  33. package/es/calculator/workers/completeness-calculator-worker.js +208 -0
  34. package/es/calculator/workers/dashboard-calculator-worker.js +68 -0
  35. package/es/calculator/workers/mirror-calculator-worker.js +152 -0
  36. package/es/calculator/workers/pivot-table-calculator-worker.js +718 -0
  37. package/es/calculator/workers/scatter-calculator-worker.js +80 -0
  38. package/es/calculator/workers/trend-calculator-worker.js +108 -0
  39. package/es/calculator/world-map-calculator.js +124 -0
  40. package/es/components/dialog/chart-addition-edit-dialog.js +90 -0
  41. package/es/components/dialog/chart-addition-widgets/chart-selector.js +259 -0
  42. package/es/components/dialog/chart-addition-widgets/statistic-chart-selector.module.css +83 -0
  43. package/es/components/dialog/enlarged-chart-dialog.js +13 -8
  44. package/es/components/dialog/statistic-record-dialog/index.js +34 -25
  45. package/es/components/dialog/statistic-types-dialog/index.css +14 -0
  46. package/es/components/dialog/statistic-types-dialog/index.js +62 -0
  47. package/es/components/dropdown-menu/statistic-dropdown-menu.js +2 -2
  48. package/es/components/popover/color-rules/color-rule.js +183 -0
  49. package/es/components/popover/color-rules/index.js +87 -0
  50. package/es/components/popover/color-rules/rule-filters/filter.js +221 -0
  51. package/es/components/popover/color-rules/rule-filters/index.css +210 -0
  52. package/es/components/popover/color-rules/rule-filters/index.js +97 -0
  53. package/es/components/popover/color-rules/rule-filters/number-input.js +78 -0
  54. package/es/components/popover/color-rules-popover.js +218 -0
  55. package/es/components/popover/color-selector-popover.js +83 -0
  56. package/es/constants/index.js +2 -1
  57. package/es/custom-g2.js +644 -0
  58. package/es/dashboard.js +31 -9
  59. package/es/desktop-dashboard.js +32 -51
  60. package/es/mobile-dashboard.js +16 -8
  61. package/es/model/bar-group.js +58 -0
  62. package/es/model/bar.js +47 -0
  63. package/es/model/base-model.js +18 -0
  64. package/es/model/basic-number-card.js +25 -0
  65. package/es/model/combination.js +48 -0
  66. package/es/model/compare-bar.js +56 -0
  67. package/es/model/completeness-group.js +31 -0
  68. package/es/model/completeness.js +25 -0
  69. package/es/model/custom-bar.js +25 -0
  70. package/es/model/dashboard.js +20 -0
  71. package/es/model/generic-model.js +222 -0
  72. package/es/model/heat-map.js +33 -0
  73. package/es/model/horizontal-bar-group.js +55 -0
  74. package/es/model/horizontal-bar.js +47 -0
  75. package/es/model/index.js +187 -0
  76. package/es/model/map.js +38 -0
  77. package/es/model/mirror.js +33 -0
  78. package/es/model/pie.js +38 -0
  79. package/es/model/ring.js +40 -0
  80. package/es/model/scatter.js +22 -0
  81. package/es/model/table.js +32 -0
  82. package/es/model/trend.js +32 -0
  83. package/es/model/world-map.js +34 -0
  84. package/es/service/chart-service.js +15 -8
  85. package/es/service/dashboard-service.js +29 -25
  86. package/es/stat-editor/chart-name-editor.js +68 -0
  87. package/es/stat-editor/index.js +75 -0
  88. package/es/stat-editor/stat-settings/advance-chart-settings/basic-number-card-settings.js +153 -0
  89. package/es/stat-editor/stat-settings/advance-chart-settings/combination-settings.js +422 -0
  90. package/es/stat-editor/stat-settings/advance-chart-settings/dashboard-chart-settings.js +203 -0
  91. package/es/stat-editor/stat-settings/advance-chart-settings/geo-granularity-settings.js +23 -0
  92. package/es/stat-editor/stat-settings/advance-chart-settings/heat-map-settings.js +104 -0
  93. package/es/stat-editor/stat-settings/advance-chart-settings/index.js +334 -0
  94. package/es/stat-editor/stat-settings/advance-chart-settings/map-settings.js +119 -0
  95. package/es/stat-editor/stat-settings/advance-chart-settings/mirror-settings.js +132 -0
  96. package/es/stat-editor/stat-settings/advance-chart-settings/style-setting/combination-style-setting.js +240 -0
  97. package/es/stat-editor/stat-settings/advance-chart-settings/style-setting/heat-map-settings.js +89 -0
  98. package/es/stat-editor/stat-settings/advance-chart-settings/style-setting/map-setting.js +138 -0
  99. package/es/stat-editor/stat-settings/advance-chart-settings/summary-settings.js +331 -0
  100. package/es/stat-editor/stat-settings/advance-chart-settings/trend-chart-settings.js +143 -0
  101. package/es/stat-editor/stat-settings/advance-chart-settings/world-map-settings.js +109 -0
  102. package/es/stat-editor/stat-settings/basic-chart-settings/advance-bar-chart-settings.js +153 -0
  103. package/es/stat-editor/stat-settings/basic-chart-settings/bar-settings.js +144 -0
  104. package/es/stat-editor/stat-settings/basic-chart-settings/completeness-chart-settings.js +214 -0
  105. package/es/stat-editor/stat-settings/basic-chart-settings/custom-bar-settings.js +121 -0
  106. package/es/stat-editor/stat-settings/basic-chart-settings/groupby-settings.js +172 -0
  107. package/es/stat-editor/stat-settings/basic-chart-settings/horizontal-axis-group-settings.js +366 -0
  108. package/es/stat-editor/stat-settings/basic-chart-settings/horizontal-bar-settings.js +142 -0
  109. package/es/stat-editor/stat-settings/basic-chart-settings/horizontal-group-chart-settings.js +150 -0
  110. package/es/stat-editor/stat-settings/basic-chart-settings/index.js +473 -0
  111. package/es/stat-editor/stat-settings/basic-chart-settings/pie-settings.js +182 -0
  112. package/es/stat-editor/stat-settings/basic-chart-settings/pivot-table-settings.js +564 -0
  113. package/es/stat-editor/stat-settings/basic-chart-settings/scatter-settings.js +112 -0
  114. package/es/stat-editor/stat-settings/basic-chart-settings/stack-item-settings.js +87 -0
  115. package/es/stat-editor/stat-settings/basic-chart-settings/stacks-settings.js +187 -0
  116. package/es/stat-editor/stat-settings/basic-chart-settings/style-setting/bar-chart-style-setting.js +300 -0
  117. package/es/stat-editor/stat-settings/basic-chart-settings/style-setting/completeness-style.js +113 -0
  118. package/es/stat-editor/stat-settings/basic-chart-settings/style-setting/horizontal-bar-chart-style.js +289 -0
  119. package/es/stat-editor/stat-settings/basic-chart-settings/style-setting/label-font-size-editor.js +58 -0
  120. package/es/stat-editor/stat-settings/basic-chart-settings/style-setting/pie-chart-style-settings.js +359 -0
  121. package/es/stat-editor/stat-settings/basic-chart-settings/style-setting/time-compare-style.js +48 -0
  122. package/es/stat-editor/stat-settings/basic-chart-settings/summary-method-setting.js +121 -0
  123. package/es/stat-editor/stat-settings/basic-chart-settings/summary-settings.js +143 -0
  124. package/es/stat-editor/stat-settings/basic-chart-settings/time-comparison-settings.js +269 -0
  125. package/es/stat-editor/stat-settings/basic-chart-settings/timer-picker.js +104 -0
  126. package/es/stat-editor/stat-settings/basic-chart-settings/y-axis-group-settings.js +366 -0
  127. package/es/stat-editor/stat-settings/color-setting/color-group-selector.js +55 -0
  128. package/es/stat-editor/stat-settings/color-setting/color-picker.js +130 -0
  129. package/es/stat-editor/stat-settings/color-setting/color-use-type-selector.js +374 -0
  130. package/es/stat-editor/stat-settings/map/map-level.js +72 -0
  131. package/es/stat-editor/stat-settings/map/map-province-city.js +151 -0
  132. package/es/stat-editor/stat-settings/public-setting/axis-label-position-setting.js +108 -0
  133. package/es/stat-editor/stat-settings/public-setting/base-settings.js +154 -0
  134. package/es/stat-editor/stat-settings/public-setting/calender.js +125 -0
  135. package/es/stat-editor/stat-settings/public-setting/column-settings.js +24 -0
  136. package/es/stat-editor/stat-settings/public-setting/custom-title-setting.js +62 -0
  137. package/es/stat-editor/stat-settings/public-setting/data-sort-setting.js +61 -0
  138. package/es/stat-editor/stat-settings/public-setting/ind-toggle-setting.js +35 -0
  139. package/es/stat-editor/stat-settings/public-setting/min-max-setting.js +60 -0
  140. package/es/stat-editor/stat-settings/public-setting/numeric-summary-item.js +123 -0
  141. package/es/stat-editor/stat-settings/public-setting/toggle-setting.js +33 -0
  142. package/es/stat-editor/stat-settings/public-setting/type-settings/index.css +29 -0
  143. package/es/stat-editor/stat-settings/public-setting/type-settings/index.js +82 -0
  144. package/es/stat-list/chart-preview.js +20 -19
  145. package/es/stat-list/index.js +21 -15
  146. package/es/stat-view/area-chart.js +551 -0
  147. package/es/stat-view/bar-chart.js +582 -0
  148. package/es/stat-view/base-chart.js +132 -0
  149. package/es/stat-view/basic-number-card.js +201 -0
  150. package/es/stat-view/combination-chart.js +546 -0
  151. package/es/stat-view/compare-chart.js +483 -0
  152. package/es/stat-view/completeness-chart.js +390 -0
  153. package/es/stat-view/custom-bar.js +418 -0
  154. package/es/stat-view/dashboard-chart.js +266 -0
  155. package/es/stat-view/heat-map.js +463 -0
  156. package/es/stat-view/horizontal-bar-chart.js +562 -0
  157. package/es/stat-view/index.js +156 -47
  158. package/es/stat-view/line-chart.js +518 -0
  159. package/es/stat-view/map.js +448 -0
  160. package/es/stat-view/mirror.js +275 -0
  161. package/es/stat-view/pie-chart.js +290 -0
  162. package/es/stat-view/pivot-table/index.js +196 -0
  163. package/es/stat-view/pivot-table/one-dimension-table-no-numeric-columns.js +156 -0
  164. package/es/stat-view/pivot-table/one-dimension-table-with-numeric-columns.js +176 -0
  165. package/es/stat-view/pivot-table/pivot-table-display-name.js +215 -0
  166. package/es/stat-view/pivot-table/statistic-pivot-table.module.css +132 -0
  167. package/es/stat-view/pivot-table/two-dimension-table.js +384 -0
  168. package/es/stat-view/ring-chart.js +392 -0
  169. package/es/stat-view/scatter-chart.js +306 -0
  170. package/es/stat-view/treemap-chart.js +253 -0
  171. package/es/stat-view/trend-chart.js +249 -0
  172. package/es/stat-view/world-map.js +431 -0
  173. package/es/tabs/tab.js +2 -2
  174. package/es/utils/basic-chart-utils.js +29 -0
  175. package/es/utils/cell-format.js +115 -0
  176. package/es/utils/collaborator.js +50 -0
  177. package/es/utils/color-utils.js +134 -0
  178. package/es/utils/column-utils.js +110 -0
  179. package/es/utils/column.js +20 -0
  180. package/es/utils/common-utils.js +352 -2
  181. package/es/utils/date-format.js +71 -0
  182. package/es/utils/export-table-utils.js +69 -0
  183. package/es/utils/index.js +89 -12
  184. package/es/utils/map.js +114 -0
  185. package/es/utils/model.js +19 -0
  186. package/es/utils/row-utils.js +134 -0
  187. package/es/utils/search.js +73 -0
  188. package/es/utils/sql-utils.js +359 -0
  189. package/es/utils/stat-utils.js +351 -0
  190. package/es/utils/trend-utils.js +135 -0
  191. package/package.json +8 -6
  192. package/es/components/dialog/chart-edit-dialog.js +0 -93
  193. package/es/components/dtable-popover.js +0 -97
  194. package/es/components/dtable-search-input.js +0 -135
  195. package/es/components/index.js +0 -41
  196. package/es/components/loading.js +0 -15
  197. package/es/components/modal-portal.js +0 -26
  198. package/es/model/conver-statItem.js +0 -124
@@ -9,6 +9,8 @@ var _dayjs = _interopRequireDefault(require("dayjs"));
9
9
  var _reactIntlUniversal = _interopRequireDefault(require("react-intl-universal"));
10
10
  var _dtableUtils = require("dtable-utils");
11
11
  var _cellValue = require("./cell-value");
12
+ var _column = require("./column");
13
+ var _collaborator = require("./collaborator");
12
14
  var _constants = require("../constants");
13
15
  var _pivotTable = require("./pivot-table");
14
16
  const isEmptyName = title => {
@@ -21,6 +23,73 @@ const isSummaryDateColumn = summaryColumn => {
21
23
  } = summaryColumn;
22
24
  return type !== _dtableUtils.CellType.LINK && (0, _dtableUtils.isDateColumn)(summaryColumn);
23
25
  };
26
+
27
+ // eslint-disable-next-line
28
+ const getTableValueDisplayName = (value, column) => {
29
+ let {
30
+ type,
31
+ data
32
+ } = column || {};
33
+ let {
34
+ collaborators
35
+ } = window.app.state;
36
+ switch (type) {
37
+ case _dtableUtils.CellType.SINGLE_SELECT:
38
+ case _dtableUtils.CellType.MULTIPLE_SELECT:
39
+ {
40
+ let options = (0, _column.getSelectColumnOptions)(column);
41
+ let option = (0, _dtableUtils.getOption)(options, value) || {};
42
+ return option.name;
43
+ }
44
+ case _dtableUtils.CellType.COLLABORATOR:
45
+ {
46
+ let collaborator = (0, _dtableUtils.getCollaborator)(collaborators, value) || {};
47
+ return collaborator.name;
48
+ }
49
+ case _dtableUtils.CellType.CREATOR:
50
+ case _dtableUtils.CellType.LAST_MODIFIER:
51
+ {
52
+ let collaborator = (0, _collaborator.getKnownCreatorByEmail)(collaborators, value) || {};
53
+ return collaborator.name;
54
+ }
55
+ case _dtableUtils.CellType.NUMBER:
56
+ {
57
+ let valueNumber = parseFloat(value);
58
+ let displayValue = (0, _dtableUtils.isNumber)(valueNumber) ? (0, _dtableUtils.getNumberDisplayString)(valueNumber, data) : value;
59
+ return displayValue;
60
+ }
61
+ case _dtableUtils.CellType.DATE:
62
+ {
63
+ let displayValue = value;
64
+ if (value && value.split('-').length === 3) {
65
+ let format = (0, _column.getDateColumnFormat)(column);
66
+ let spaceIndex = format.indexOf(' ');
67
+ if (spaceIndex > -1) {
68
+ format = format.slice(0, spaceIndex);
69
+ }
70
+ displayValue = (0, _dayjs.default)(value).format(format);
71
+ }
72
+ return displayValue;
73
+ }
74
+ case _dtableUtils.CellType.FORMULA:
75
+ case _dtableUtils.CellType.LINK_FORMULA:
76
+ {
77
+ let displayValue = value;
78
+ let {
79
+ result_type
80
+ } = data || {};
81
+ if (result_type === _dtableUtils.FORMULA_RESULT_TYPE.NUMBER) {
82
+ let valueNumber = parseFloat(value);
83
+ displayValue = (0, _dtableUtils.isNumber)(valueNumber) ? (0, _dtableUtils.getNumberDisplayString)(valueNumber, data) : value;
84
+ }
85
+ return displayValue;
86
+ }
87
+ default:
88
+ {
89
+ return value;
90
+ }
91
+ }
92
+ };
24
93
  const getValidValueForColumn = (column, value) => {
25
94
  if (!column) return '';
26
95
  const {
package/es/utils/index.js CHANGED
@@ -3,24 +3,101 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getEventClassName = void 0;
6
+ Object.defineProperty(exports, "generateDefaultUser", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _collaborator.generateDefaultUser;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "getClientCellValueDisplayString", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _cellFormat.getClientCellValueDisplayString;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "getClientFormulaDisplayString", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _cellFormat.getClientFormulaDisplayString;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "getDateColumnFormat", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _column.getDateColumnFormat;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "getKnownCreatorByEmail", {
31
+ enumerable: true,
32
+ get: function () {
33
+ return _collaborator.getKnownCreatorByEmail;
34
+ }
35
+ });
36
+ Object.defineProperty(exports, "getSelectColumnOptions", {
37
+ enumerable: true,
38
+ get: function () {
39
+ return _column.getSelectColumnOptions;
40
+ }
41
+ });
42
+ Object.defineProperty(exports, "getTodayDate", {
43
+ enumerable: true,
44
+ get: function () {
45
+ return _dateFormat.getTodayDate;
46
+ }
47
+ });
7
48
  Object.defineProperty(exports, "hasOwnProperty", {
8
49
  enumerable: true,
9
50
  get: function () {
10
51
  return _object.hasOwnProperty;
11
52
  }
12
53
  });
13
- exports.isMobile = exports.isFunction = void 0;
54
+ exports.hexToRgb = void 0;
55
+ Object.defineProperty(exports, "isCellValueChanged", {
56
+ enumerable: true,
57
+ get: function () {
58
+ return _cellValue.isCellValueChanged;
59
+ }
60
+ });
61
+ Object.defineProperty(exports, "isEmptyObject", {
62
+ enumerable: true,
63
+ get: function () {
64
+ return _object.isEmptyObject;
65
+ }
66
+ });
67
+ exports.isMobile = void 0;
68
+ Object.defineProperty(exports, "isSameObject", {
69
+ enumerable: true,
70
+ get: function () {
71
+ return _object.isSameObject;
72
+ }
73
+ });
74
+ Object.defineProperty(exports, "searchRows", {
75
+ enumerable: true,
76
+ get: function () {
77
+ return _search.searchRows;
78
+ }
79
+ });
80
+ Object.defineProperty(exports, "translateCalendar", {
81
+ enumerable: true,
82
+ get: function () {
83
+ return _dateFormat.translateCalendar;
84
+ }
85
+ });
86
+ var _cellFormat = require("./cell-format");
14
87
  var _object = require("./object");
15
- const isFunction = functionToCheck => {
16
- const getType = {};
17
- return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
18
- };
19
- exports.isFunction = isFunction;
20
- const getEventClassName = e => {
21
- // svg mouseEvent event.target.className is an object
22
- if (!e || !e.target) return '';
23
- return e.target.getAttribute('class') || '';
88
+ var _cellValue = require("./cell-value");
89
+ var _collaborator = require("./collaborator");
90
+ var _column = require("./column");
91
+ var _dateFormat = require("./date-format");
92
+ var _search = require("./search");
93
+ const hexToRgb = hex => {
94
+ hex = hex.replace('#', '');
95
+ const bigint = parseInt(hex, 16);
96
+ return {
97
+ r: bigint >> 16 & 255,
98
+ g: bigint >> 8 & 255,
99
+ b: bigint & 255
100
+ };
24
101
  };
25
- exports.getEventClassName = getEventClassName;
102
+ exports.hexToRgb = hexToRgb;
26
103
  const isMobile = exports.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);
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getRegionScaleOffsets = exports.getGeoGranularityByLevel = exports.fixMapGeoGranularity = exports.fixGeoGranularity = void 0;
7
+ var _constants = require("../constants");
8
+ var _map = require("../constants/map");
9
+ var _regions = require("../constants/regions");
10
+ const COUNTY_SCALE_WIDTH = 5.95;
11
+ const COUNTY_SCALE_HEIGHT = 4.37;
12
+ const getGeoGranularityByLevel = mapLevel => {
13
+ switch (mapLevel) {
14
+ case _map.MAP_LEVEL.PROVINCE:
15
+ {
16
+ return _constants.GEOLOCATION_GRANULARITY.CITY;
17
+ }
18
+ case _map.MAP_LEVEL.CITY:
19
+ {
20
+ return _constants.GEOLOCATION_GRANULARITY.DISTRICT;
21
+ }
22
+ default:
23
+ {
24
+ // default as 'country'
25
+ return _constants.GEOLOCATION_GRANULARITY.PROVINCE;
26
+ }
27
+ }
28
+ };
29
+ exports.getGeoGranularityByLevel = getGeoGranularityByLevel;
30
+ const fixGeoGranularity = _ref => {
31
+ let {
32
+ mapLevel,
33
+ mapLocation
34
+ } = _ref;
35
+ if (!mapLevel || mapLevel === _map.MAP_LEVEL.COUNTRY || !mapLocation) {
36
+ return _constants.GEOLOCATION_GRANULARITY.PROVINCE;
37
+ }
38
+
39
+ // e.g. Beijing
40
+ const {
41
+ province: provinceName,
42
+ city: cityName
43
+ } = mapLocation;
44
+ if (provinceName && _map.MUNICIPALITIES.includes(provinceName)) {
45
+ return _constants.GEOLOCATION_GRANULARITY.DISTRICT;
46
+ }
47
+
48
+ // e.g. HongKong
49
+ const selectedProvince = provinceName && _regions.regions.find(province => province.name === provinceName);
50
+ if (selectedProvince && selectedProvince.disable_drill_down) {
51
+ return _constants.GEOLOCATION_GRANULARITY.PROVINCE;
52
+ }
53
+ const cities = selectedProvince && selectedProvince.cities;
54
+ const selectedCity = cities && cityName && cities.find(city => city.name === cityName);
55
+ if (mapLevel === _map.MAP_LEVEL.CITY && selectedCity && selectedCity.disable_drill_down) {
56
+ return _constants.GEOLOCATION_GRANULARITY.CITY;
57
+ }
58
+
59
+ // others
60
+ return getGeoGranularityByLevel(mapLevel);
61
+ };
62
+ exports.fixGeoGranularity = fixGeoGranularity;
63
+ const fixMapGeoGranularity = chart => {
64
+ const {
65
+ type,
66
+ map_level,
67
+ map_location
68
+ } = chart;
69
+ if (type !== _constants.STAT_TYPE.MAP && type !== _constants.STAT_TYPE.MAP_BUBBLE) {
70
+ return chart.geolocation_granularity;
71
+ }
72
+ return fixGeoGranularity({
73
+ mapLevel: map_level,
74
+ mapLocation: map_location
75
+ });
76
+ };
77
+ exports.fixMapGeoGranularity = fixMapGeoGranularity;
78
+ const getRegionScaleOffsets = (mapLevel, mapLocation) => {
79
+ const countryScaleOffsets = {
80
+ scale_w: COUNTY_SCALE_WIDTH,
81
+ scale_h: COUNTY_SCALE_HEIGHT
82
+ };
83
+ switch (mapLevel) {
84
+ case _map.MAP_LEVEL.PROVINCE:
85
+ {
86
+ const provinceName = mapLocation && mapLocation.province;
87
+ const province = provinceName && _regions.regions.find(province => province.name === provinceName);
88
+ if (!province) return countryScaleOffsets;
89
+ return {
90
+ scale_w: province.scale_w,
91
+ scale_h: province.scale_h
92
+ };
93
+ }
94
+ case _map.MAP_LEVEL.CITY:
95
+ {
96
+ const provinceName = mapLocation && mapLocation.province;
97
+ const province = provinceName && _regions.regions.find(province => province.name === provinceName);
98
+ const cities = province && province.cities;
99
+ const cityName = mapLocation.city;
100
+ const city = cityName && Array.isArray(cities) && cities.find(city => city.name === cityName);
101
+ if (!city) return countryScaleOffsets;
102
+ return {
103
+ scale_w: city.scale_w,
104
+ scale_h: city.scale_h
105
+ };
106
+ }
107
+ default:
108
+ {
109
+ // default as 'country'
110
+ return countryScaleOffsets;
111
+ }
112
+ }
113
+ };
114
+ exports.getRegionScaleOffsets = getRegionScaleOffsets;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getChartConfigValueFromKeys = exports.getChartConfigValueFromKey = void 0;
7
+ var _object = require("./object");
8
+ const getChartConfigValueFromKey = (key, object) => {
9
+ if (!(0, _object.hasOwnProperty)(object, key)) {
10
+ return null;
11
+ }
12
+ return object[key];
13
+ };
14
+ exports.getChartConfigValueFromKey = getChartConfigValueFromKey;
15
+ const getChartConfigValueFromKeys = (keys, object) => {
16
+ const existKey = keys.find(key => (0, _object.hasOwnProperty)(object, key));
17
+ return existKey ? object[existKey] : null;
18
+ };
19
+ exports.getChartConfigValueFromKeys = getChartConfigValueFromKeys;
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getCellValue = getCellValue;
7
+ exports.isValidRow = exports.isEmptyGeolocationCell = exports.getFormattedLabel = void 0;
8
+ var _dtableUtils = require("dtable-utils");
9
+ var _utils = require("../utils");
10
+ const isEmptyGeolocationCell = (cellValue, format) => {
11
+ if (!cellValue) return null;
12
+ if (format === 'lng_lat') {
13
+ return (cellValue.lng || cellValue.lng === 0) && (cellValue.lat || cellValue.lat === 0);
14
+ }
15
+ if (format === 'country_region') {
16
+ return cellValue.country_region;
17
+ }
18
+ return cellValue.province;
19
+ };
20
+ exports.isEmptyGeolocationCell = isEmptyGeolocationCell;
21
+ const isValidRow = (row, formulaRow, column, includeEmpty) => {
22
+ const {
23
+ type: columnType,
24
+ key: columnKey
25
+ } = column;
26
+ if (includeEmpty || columnType === _dtableUtils.CellType.CHECKBOX) return true;
27
+ if (columnType === _dtableUtils.CellType.GEOLOCATION) {
28
+ const {
29
+ geo_format
30
+ } = column.data;
31
+ return isEmptyGeolocationCell(row[columnKey], geo_format);
32
+ }
33
+ let cellValue = row[columnKey];
34
+ if (_dtableUtils.FORMULA_COLUMN_TYPES_MAP[columnType] || columnType === _dtableUtils.CellType.LINK) {
35
+ cellValue = formulaRow ? formulaRow[columnKey] : null;
36
+ }
37
+ return cellValue || cellValue === 0;
38
+ };
39
+ exports.isValidRow = isValidRow;
40
+ const getFormattedLabel = (column, name, collaborators) => {
41
+ let {
42
+ type: columnType,
43
+ data: columnData
44
+ } = column;
45
+ if (columnType === _dtableUtils.CellType.SINGLE_SELECT || columnType === _dtableUtils.CellType.MULTIPLE_SELECT) {
46
+ let options = columnData ? columnData.options : [];
47
+ let selectedOption = options.find(o => {
48
+ let id = name;
49
+ if (Array.isArray(name)) {
50
+ id = name[0];
51
+ }
52
+ return o.id === id;
53
+ });
54
+ let {
55
+ name: optionName
56
+ } = selectedOption || {};
57
+ if (selectedOption) {
58
+ return optionName;
59
+ }
60
+ } else if (columnType === _dtableUtils.CellType.COLLABORATOR) {
61
+ let collaborator = collaborators.find(item => {
62
+ let email = name;
63
+ if (Array.isArray(name)) {
64
+ email = name[0];
65
+ }
66
+ return item.email === email;
67
+ });
68
+ if (collaborator) {
69
+ return collaborator.name;
70
+ }
71
+ } else if (columnType === _dtableUtils.CellType.CREATOR || columnType === _dtableUtils.CellType.LAST_MODIFIER) {
72
+ if (name === 'anonymous') {
73
+ return name;
74
+ } else {
75
+ let collaborator = collaborators.find(item => item.email === name);
76
+ if (collaborator) {
77
+ return collaborator.name;
78
+ }
79
+ }
80
+ } else if (columnType === _dtableUtils.CellType.LINK) {
81
+ return (0, _utils.getClientFormulaDisplayString)(Array.isArray(name) ? name : [name], columnData, {
82
+ collaborators
83
+ });
84
+ } else if (columnType === _dtableUtils.CellType.CHECKBOX) {
85
+ return name === 'true' ? 'Checked' : 'Unchecked';
86
+ } else if (_dtableUtils.FORMULA_COLUMN_TYPES_MAP[columnType]) {
87
+ const {
88
+ result_type,
89
+ array_type
90
+ } = columnData || {};
91
+ if (!name && !(0, _dtableUtils.isNumber)(name)) return '';
92
+ if (result_type === _dtableUtils.FORMULA_RESULT_TYPE.NUMBER) {
93
+ const valueNumber = parseFloat(name);
94
+ return (0, _dtableUtils.isNumber)(valueNumber) ? (0, _dtableUtils.getNumberDisplayString)(valueNumber, column.data) : name;
95
+ }
96
+ if (result_type === _dtableUtils.FORMULA_RESULT_TYPE.ARRAY) {
97
+ if (_dtableUtils.COLLABORATOR_COLUMN_TYPES.includes(array_type)) {
98
+ if ([_dtableUtils.CellType.CREATOR, _dtableUtils.CellType.LAST_MODIFIER].includes(array_type) && name === 'anonymous') {
99
+ return name;
100
+ }
101
+ const collaborator = collaborators.find(item => {
102
+ let email = name;
103
+ if (Array.isArray(name)) {
104
+ email = name[0];
105
+ }
106
+ return item.email === email;
107
+ });
108
+ if (collaborator) {
109
+ return collaborator.name;
110
+ }
111
+ }
112
+ }
113
+ }
114
+ if (!name) {
115
+ return '';
116
+ }
117
+ return name;
118
+ };
119
+ exports.getFormattedLabel = getFormattedLabel;
120
+ function getCellValue(row, formulaRow, column) {
121
+ if (!column) return null;
122
+ const {
123
+ type,
124
+ key
125
+ } = column;
126
+ if (_dtableUtils.FORMULA_COLUMN_TYPES_MAP[type]) {
127
+ const cellValue = formulaRow && formulaRow[key];
128
+ if (Array.isArray(cellValue)) {
129
+ return cellValue[0];
130
+ }
131
+ return cellValue;
132
+ }
133
+ return row[key];
134
+ }
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.searchRows = void 0;
8
+ var _dayjs = _interopRequireDefault(require("dayjs"));
9
+ var _dtableUtils = require("dtable-utils");
10
+ var _column = require("./column");
11
+ const SUPPORT_SEARCH_COLUMN_TYPES = [_dtableUtils.CellType.DATE, _dtableUtils.CellType.TEXT, _dtableUtils.CellType.LONG_TEXT, _dtableUtils.CellType.NUMBER, _dtableUtils.CellType.URL, _dtableUtils.CellType.EMAIL, _dtableUtils.CellType.SINGLE_SELECT, _dtableUtils.CellType.CTIME, _dtableUtils.CellType.MTIME, _dtableUtils.CellType.MULTIPLE_SELECT, _dtableUtils.CellType.LAST_MODIFIER, _dtableUtils.CellType.CREATOR, _dtableUtils.CellType.COLLABORATOR, _dtableUtils.CellType.LINK, _dtableUtils.CellType.FORMULA, _dtableUtils.CellType.LINK_FORMULA, _dtableUtils.CellType.AUTO_NUMBER, _dtableUtils.CellType.GEOLOCATION, _dtableUtils.CellType.DURATION];
12
+ const searchRows = (rows, columns, val, processRow) => {
13
+ let dtableCollaborators = window.app.collaboratorsCache || [];
14
+ let collaborators = window.app.state.collaborators;
15
+ let searchResult = [];
16
+ rows.forEach(row => {
17
+ let column = columns.find(column => {
18
+ const {
19
+ type: columnType,
20
+ key: columnKey
21
+ } = column;
22
+ if (!SUPPORT_SEARCH_COLUMN_TYPES.includes(columnType)) {
23
+ return false;
24
+ }
25
+ const cellValue = row[columnKey];
26
+ if (cellValue) {
27
+ let text;
28
+ if (columnType === _dtableUtils.CellType.LONG_TEXT) {
29
+ text = cellValue.text;
30
+ } else if (columnType === _dtableUtils.CellType.NUMBER || columnType === _dtableUtils.CellType.DURATION) {
31
+ text = (0, _dtableUtils.getNumberDisplayString)(cellValue, column.data);
32
+ } else if (columnType === _dtableUtils.CellType.SINGLE_SELECT) {
33
+ const options = (0, _column.getSelectColumnOptions)(column);
34
+ const option = options.find(option => option.id === cellValue);
35
+ text = option ? option.name : '';
36
+ } else if (columnType === _dtableUtils.CellType.MULTIPLE_SELECT) {
37
+ const options = (0, _column.getSelectColumnOptions)(column);
38
+ text = (0, _dtableUtils.getMultipleOptionName)(options, cellValue);
39
+ } else if (columnType === _dtableUtils.CellType.COLLABORATOR) {
40
+ text = (0, _dtableUtils.getCollaboratorsName)(collaborators, cellValue);
41
+ } else if (columnType === _dtableUtils.CellType.LAST_MODIFIER || columnType === _dtableUtils.CellType.CREATOR) {
42
+ if (cellValue === 'anonymous') {
43
+ text = cellValue;
44
+ } else {
45
+ let collaborator = collaborators.find(collaborator => collaborator.email === cellValue);
46
+ if (!collaborator) {
47
+ collaborator = dtableCollaborators[cellValue];
48
+ }
49
+ if (collaborator) {
50
+ text = collaborator.name;
51
+ }
52
+ }
53
+ } else if (columnType === _dtableUtils.CellType.GEOLOCATION) {
54
+ text = (0, _dtableUtils.getGeolocationDisplayString)(cellValue, column.data);
55
+ } else if (columnType === _dtableUtils.CellType.CTIME || columnType === _dtableUtils.CellType.MTIME) {
56
+ text = (0, _dayjs.default)(cellValue).format('YYYY-MM-DD HH:mm:ss');
57
+ } else {
58
+ text = cellValue;
59
+ }
60
+ if (!text || typeof text !== 'string') return false;
61
+ if (text.toLowerCase().indexOf(val.toLowerCase()) > -1) {
62
+ return true;
63
+ }
64
+ }
65
+ return false;
66
+ });
67
+ if (column) {
68
+ searchResult.push(processRow(row));
69
+ }
70
+ });
71
+ return searchResult;
72
+ };
73
+ exports.searchRows = searchRows;