sea-chart 2.0.35 → 2.0.36

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 (84) hide show
  1. package/dist/api/index.js +17 -59
  2. package/dist/assets/css/sea-chart-d3-tooltip.css +0 -1
  3. package/dist/components/color-popover/color-rules-popover.js +4 -2
  4. package/dist/components/drill-down-settings/drill-down-fields-popover/index.js +5 -4
  5. package/dist/components/icon/index.js +9 -13
  6. package/dist/components/number-input/index.js +7 -13
  7. package/dist/components/popover/hide-column-popover/hide-column-popover-widgets/hide-column-item.js +7 -3
  8. package/dist/components/popover/hide-column-popover/hide-column-popover.css +5 -1
  9. package/dist/components/popover/hide-column-popover/hide-column-popover.js +2 -4
  10. package/dist/components/popover/sort-popover/sort-popover.js +6 -7
  11. package/dist/components/statistic-record-dialog/index.js +9 -8
  12. package/dist/components/tooltip/index.js +26 -8
  13. package/dist/editor/index.js +5 -1
  14. package/dist/locale/lang/de.js +1 -0
  15. package/dist/locale/lang/en.js +1 -0
  16. package/dist/locale/lang/es.js +1 -0
  17. package/dist/locale/lang/fr.js +1 -0
  18. package/dist/locale/lang/pt.js +1 -0
  19. package/dist/locale/lang/ru.js +1 -0
  20. package/dist/locale/lang/zh_CN.js +1 -0
  21. package/dist/model/funnel.js +2 -2
  22. package/dist/model/map-bubble.js +4 -0
  23. package/dist/services/map-json.js +3 -0
  24. package/dist/settings/advance-bar-settings/data-settings.js +1 -1
  25. package/dist/settings/advance-bar-settings/style-settings.js +4 -3
  26. package/dist/settings/bar-settings/data-settings.js +1 -1
  27. package/dist/settings/bar-settings/style-settings.js +2 -2
  28. package/dist/settings/basic-number-card/data-settings.js +3 -2
  29. package/dist/settings/combination-settings/data-settings.js +0 -1
  30. package/dist/settings/combination-settings/style-settings.js +2 -2
  31. package/dist/settings/dashboard-settings/data-settings.js +3 -2
  32. package/dist/settings/funnel-settings/components/funnel-layer-setting.js +7 -7
  33. package/dist/settings/index.js +8 -3
  34. package/dist/settings/table-element-settings/components/data-filter.js +24 -25
  35. package/dist/settings/table-element-settings/index.css +1 -31
  36. package/dist/settings/table-settings/data-settings.js +3 -2
  37. package/dist/settings/time-comparison-settings/style-settings.js +2 -2
  38. package/dist/settings/widgets/basic-summary/index.js +8 -7
  39. package/dist/settings/widgets/common-data-settings.js +7 -6
  40. package/dist/settings/widgets/data-filter/index.js +30 -22
  41. package/dist/settings/widgets/group-by.js +4 -3
  42. package/dist/settings/widgets/summary-settings.js +3 -2
  43. package/dist/settings/widgets/y-axis-group-settings.js +3 -2
  44. package/dist/utils/cell-format-utils.js +9 -7
  45. package/dist/utils/chart-utils/base-utils.js +194 -86
  46. package/dist/utils/chart-utils/index.js +5 -3
  47. package/dist/utils/chart-utils/original-data-utils/basic-chart-calculator.js +5 -5
  48. package/dist/utils/chart-utils/original-data-utils/card-calculator.js +8 -2
  49. package/dist/utils/chart-utils/original-data-utils/dashboard-calculator.js +12 -3
  50. package/dist/utils/chart-utils/original-data-utils/pivot-table-calculator.js +4 -1
  51. package/dist/utils/chart-utils/original-data-utils/scatter-calculator.js +1 -0
  52. package/dist/utils/chart-utils/original-data-utils/trend-calculator.js +24 -3
  53. package/dist/utils/chart-utils/sql-statistics-utils.js +182 -177
  54. package/dist/utils/column-utils.js +20 -7
  55. package/dist/utils/contexts.js +5 -2
  56. package/dist/utils/index.js +25 -4
  57. package/dist/utils/row-record-utils.js +100 -20
  58. package/dist/utils/sql/column-2-sql-column.js +10 -10
  59. package/dist/utils/trend-utils.js +15 -2
  60. package/dist/view/index.css +2 -8
  61. package/dist/view/index.js +14 -9
  62. package/dist/view/wrapper/area-group.js +15 -7
  63. package/dist/view/wrapper/bar-compare.js +18 -2
  64. package/dist/view/wrapper/bar-custom-stack.js +35 -9
  65. package/dist/view/wrapper/bar-group.js +55 -26
  66. package/dist/view/wrapper/bar-stack.js +2 -2
  67. package/dist/view/wrapper/basic-number-card.js +27 -3
  68. package/dist/view/wrapper/chart-component.js +43 -440
  69. package/dist/view/wrapper/completeness-group.js +104 -49
  70. package/dist/view/wrapper/dashboard.js +68 -18
  71. package/dist/view/wrapper/horizontal-bar-group.js +26 -6
  72. package/dist/view/wrapper/horizontal-bar-stack.js +2 -2
  73. package/dist/view/wrapper/line-group.js +8 -3
  74. package/dist/view/wrapper/map-world-bubble.js +1 -0
  75. package/dist/view/wrapper/map-world.js +1 -0
  76. package/dist/view/wrapper/pie.js +1 -1
  77. package/dist/view/wrapper/ring.js +1 -1
  78. package/dist/view/wrapper/scatter.js +8 -6
  79. package/dist/view/wrapper/table/two-dimension-table.js +3 -2
  80. package/dist/view/wrapper/table-element/components/records-header/index.js +0 -1
  81. package/dist/view/wrapper/table-element/components/resize-column-handle/resize-column-handle.js +3 -1
  82. package/dist/view/wrapper/table-element/index.js +16 -21
  83. package/dist/view/wrapper/trend.js +24 -1
  84. package/package.json +15 -12
@@ -71,7 +71,7 @@ const StyleSettings = _ref => {
71
71
  });
72
72
  }, [chart, onChange]);
73
73
  const onYAxisMinChange = (0, _react.useCallback)(min => {
74
- const newMin = parseInt(min);
74
+ const newMin = parseFloat(min);
75
75
  if (Number.isNaN(newMin)) return;
76
76
  const {
77
77
  config
@@ -85,7 +85,7 @@ const StyleSettings = _ref => {
85
85
  });
86
86
  }, [chart, onChange]);
87
87
  const onYAxisMaxChange = (0, _react.useCallback)(max => {
88
- const newMax = parseInt(max);
88
+ const newMax = parseFloat(max);
89
89
  if (Number.isNaN(newMax)) return;
90
90
  const {
91
91
  config
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
  var _DTableSelect2 = _interopRequireDefault(require("dtable-ui-component/lib/DTableSelect"));
10
+ var _DTableColumnIcon2 = _interopRequireDefault(require("dtable-ui-component/lib/DTableColumnIcon"));
10
11
  var _react = _interopRequireWildcard(require("react"));
11
12
  var _reactstrap = require("reactstrap");
12
13
  var _dtableUtils = require("dtable-utils");
@@ -67,8 +68,8 @@ const DataSettings = _ref => {
67
68
  value: column,
68
69
  label: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
69
70
  className: "sea-chart-column-icon"
70
- }, /*#__PURE__*/_react.default.createElement("i", {
71
- className: _dtableUtils.COLUMNS_ICON_CONFIG[column.type]
71
+ }, /*#__PURE__*/_react.default.createElement(_DTableColumnIcon2.default, {
72
+ column: column
72
73
  })), /*#__PURE__*/_react.default.createElement("span", {
73
74
  className: 'select-module select-module-name ml-0'
74
75
  }, column.name))
@@ -13,7 +13,6 @@ var _commonDataSettings = _interopRequireDefault(require("../widgets/common-data
13
13
  var _divider = _interopRequireDefault(require("../widgets/divider"));
14
14
  var _groupBy = _interopRequireDefault(require("../widgets/group-by"));
15
15
  var _summarySettings = _interopRequireDefault(require("../widgets/summary-settings"));
16
- var _utils = require("../../utils");
17
16
  var _constants = require("../../constants");
18
17
  var _intl = _interopRequireDefault(require("../../intl"));
19
18
  const DataSettings = _ref => {
@@ -63,7 +63,7 @@ const StyleSettings = _ref => {
63
63
  onChange && onChange(update);
64
64
  }, [chart, onChange]);
65
65
  const onYAxisMinChange = (0, _react.useCallback)((key, min) => {
66
- const newMin = parseInt(min);
66
+ const newMin = parseFloat(min);
67
67
  if (Number.isNaN(newMin)) return;
68
68
  const update = {
69
69
  [key]: newMin
@@ -71,7 +71,7 @@ const StyleSettings = _ref => {
71
71
  onChange && onChange(update);
72
72
  }, [onChange]);
73
73
  const onYAxisMaxChange = (0, _react.useCallback)((key, max) => {
74
- const newMax = parseInt(max);
74
+ const newMax = parseFloat(max);
75
75
  if (Number.isNaN(newMax)) return;
76
76
  const update = {
77
77
  [key]: newMax
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
  var _DTableSelect2 = _interopRequireDefault(require("dtable-ui-component/lib/DTableSelect"));
10
+ var _DTableColumnIcon2 = _interopRequireDefault(require("dtable-ui-component/lib/DTableColumnIcon"));
10
11
  var _react = _interopRequireWildcard(require("react"));
11
12
  var _reactstrap = require("reactstrap");
12
13
  var _dtableUtils = require("dtable-utils");
@@ -52,8 +53,8 @@ const DataSettings = _ref => {
52
53
  value: column,
53
54
  label: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
54
55
  className: "sea-chart-column-icon"
55
- }, /*#__PURE__*/_react.default.createElement("i", {
56
- className: _dtableUtils.COLUMNS_ICON_CONFIG[column.type]
56
+ }, /*#__PURE__*/_react.default.createElement(_DTableColumnIcon2.default, {
57
+ column: column
57
58
  })), /*#__PURE__*/_react.default.createElement("span", {
58
59
  className: 'select-module select-module-name ml-0'
59
60
  }, column.name))
@@ -7,10 +7,10 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = FunnelLayerSetting;
9
9
  var _DTableSelect2 = _interopRequireDefault(require("dtable-ui-component/lib/DTableSelect"));
10
- var _dtableUtils = require("dtable-utils");
10
+ var _DTableColumnIcon2 = _interopRequireDefault(require("dtable-ui-component/lib/DTableColumnIcon"));
11
11
  var _react = _interopRequireWildcard(require("react"));
12
12
  var _reactstrap = require("reactstrap");
13
- var _lodashEs = require("lodash-es");
13
+ var _lodash = require("lodash");
14
14
  var _intl = _interopRequireDefault(require("../../../intl"));
15
15
  var _dndList = _interopRequireDefault(require("./dnd-list"));
16
16
  function FunnelLayerSetting(_ref) {
@@ -25,8 +25,8 @@ function FunnelLayerSetting(_ref) {
25
25
  value: column,
26
26
  label: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
27
27
  className: "header-icon"
28
- }, /*#__PURE__*/_react.default.createElement("i", {
29
- className: _dtableUtils.COLUMNS_ICON_CONFIG[column.type]
28
+ }, /*#__PURE__*/_react.default.createElement(_DTableColumnIcon2.default, {
29
+ column: column
30
30
  })), /*#__PURE__*/_react.default.createElement("span", {
31
31
  className: 'select-option-name'
32
32
  }, column.name))
@@ -45,8 +45,8 @@ function FunnelLayerSetting(_ref) {
45
45
  value: selectedColumn,
46
46
  label: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
47
47
  className: "header-icon"
48
- }, /*#__PURE__*/_react.default.createElement("i", {
49
- className: _dtableUtils.COLUMNS_ICON_CONFIG[selectedColumn.type]
48
+ }, /*#__PURE__*/_react.default.createElement(_DTableColumnIcon2.default, {
49
+ column: selectedColumn
50
50
  })), /*#__PURE__*/_react.default.createElement("span", {
51
51
  className: 'select-option-name'
52
52
  }, selectedColumn.name))
@@ -57,7 +57,7 @@ function FunnelLayerSetting(_ref) {
57
57
  const {
58
58
  value
59
59
  } = option;
60
- const newList = (0, _lodashEs.cloneDeep)(value.data.options);
60
+ const newList = (0, _lodash.cloneDeep)(value.data.options);
61
61
  onChange({
62
62
  'x_axis_column_key': value.key,
63
63
  'x_axis_option_list': newList
@@ -41,7 +41,8 @@ const Settings = _ref => {
41
41
  children,
42
42
  departments,
43
43
  globalTheme,
44
- lang
44
+ lang,
45
+ firstDayOfWeek
45
46
  } = _ref;
46
47
  const [type, setType] = (0, _react.useState)(_constants.CHART_SETTINGS_TYPE.DATA);
47
48
  const [labelColorConfigs, setLabelColorConfigs] = (0, _react.useState)([]);
@@ -119,7 +120,11 @@ const Settings = _ref => {
119
120
  }, /*#__PURE__*/_react.default.createElement("div", {
120
121
  id: "sea-chart-settings-content",
121
122
  className: "chart-settings-content"
122
- }, type === _constants.CHART_SETTINGS_TYPE.DATA && /*#__PURE__*/_react.default.createElement(_contexts.DepartmentsContext.Provider, {
123
+ }, type === _constants.CHART_SETTINGS_TYPE.DATA && /*#__PURE__*/_react.default.createElement(_contexts.FirstDayOfWeekContext.Provider, {
124
+ value: {
125
+ firstDayOfWeek
126
+ }
127
+ }, /*#__PURE__*/_react.default.createElement(_contexts.DepartmentsContext.Provider, {
123
128
  value: {
124
129
  departments
125
130
  }
@@ -128,7 +133,7 @@ const Settings = _ref => {
128
133
  chart: chart,
129
134
  tables: tables,
130
135
  onChange: modifyStatistic
131
- })), type === _constants.CHART_SETTINGS_TYPE.CHART_STYLE && /*#__PURE__*/_react.default.createElement(_styleSettings.default, {
136
+ }))), type === _constants.CHART_SETTINGS_TYPE.CHART_STYLE && /*#__PURE__*/_react.default.createElement(_styleSettings.default, {
132
137
  chart: chart,
133
138
  tables: tables,
134
139
  labelColorConfigs: labelColorConfigs,
@@ -13,10 +13,9 @@ var _utils = require("../../../utils");
13
13
  var _intl = _interopRequireDefault(require("../../../intl"));
14
14
  var _context = _interopRequireDefault(require("../../../context"));
15
15
  var _contexts = require("../../../utils/contexts");
16
- var _constants = require("../../../constants");
17
16
  require("./data-filter.css");
18
17
  const DataFilter = _ref => {
19
- var _availableFilters;
18
+ var _window$dtable;
20
19
  let {
21
20
  chart,
22
21
  tables,
@@ -26,23 +25,25 @@ const DataFilter = _ref => {
26
25
  const {
27
26
  departments
28
27
  } = (0, _react.useContext)(_contexts.DepartmentsContext);
28
+ const {
29
+ firstDayOfWeek
30
+ } = (0, _react.useContext)(_contexts.FirstDayOfWeekContext);
29
31
  const {
30
32
  config
31
33
  } = chart;
32
34
  const {
33
- type,
34
35
  table_id,
35
- shown_column_keys,
36
36
  filters,
37
37
  filter_conjunction
38
38
  } = config;
39
- let availableFilters = [];
40
- // some of the filters of TABLE_ELEMENT maybe one of the hidden columns, so we need to filter them out
41
- if (shown_column_keys && type === _constants.CHART_TYPE.TABLE_ELEMENT) {
42
- availableFilters = filters === null || filters === void 0 ? void 0 : filters.filter(filter => shown_column_keys.includes(filter.column_key));
43
- } else {
44
- availableFilters = filters;
45
- }
39
+ const columns = (0, _react.useMemo)(() => {
40
+ const table = (0, _dtableUtils.getTableById)(tables, table_id);
41
+ if (!table || !table.columns) return [];
42
+ return table.columns;
43
+ }, [table_id, tables]);
44
+ const validFilters = (0, _react.useMemo)(() => {
45
+ return (0, _dtableUtils.getValidFilters)(filters, columns);
46
+ }, [filters, columns]);
46
47
  const toggleFilterPopover = (0, _react.useCallback)(event => {
47
48
  (0, _utils.eventStopPropagation)(event);
48
49
  setIsFilterSetterShow(!isFilterSetterShow);
@@ -53,16 +54,7 @@ const DataFilter = _ref => {
53
54
  const id = (0, _react.useMemo)(() => {
54
55
  return 'sea-chart-data-filter-' + (0, _utils.generatorKey)();
55
56
  }, []);
56
- const shownColumns = (0, _react.useMemo)(() => {
57
- const table = (0, _dtableUtils.getTableById)(tables, table_id);
58
- if (!table || !table.columns) return [];
59
- if (!shown_column_keys) {
60
- return table.columns;
61
- } else {
62
- return table.columns.filter(column => shown_column_keys.includes(column.key));
63
- }
64
- }, [shown_column_keys, table_id, tables]);
65
- const filterLength = ((_availableFilters = availableFilters) === null || _availableFilters === void 0 ? void 0 : _availableFilters.length) || 0;
57
+ const filterLength = (validFilters === null || validFilters === void 0 ? void 0 : validFilters.length) || 0;
66
58
  const filterMessage = (0, _react.useMemo)(() => {
67
59
  let filterMessage = _intl.default.get('Filter');
68
60
  if (filterLength === 1) {
@@ -76,6 +68,10 @@ const DataFilter = _ref => {
76
68
  return filter_conjunction || 'And';
77
69
  }, [filter_conjunction]);
78
70
  const collaborators = _context.default.getCollaboratorsFromCache();
71
+ const userDepartmentIdsMap = ((_window$dtable = window.dtable) === null || _window$dtable === void 0 ? void 0 : _window$dtable.userDepartmentIdsMap) || {
72
+ 'current_user_department_ids': [],
73
+ 'current_user_department_and_sub_ids': []
74
+ };
79
75
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
80
76
  id: id,
81
77
  className: "sea-chart-data-filter mb-1",
@@ -84,14 +80,17 @@ const DataFilter = _ref => {
84
80
  className: "dtable-font dtable-icon-filter"
85
81
  }), /*#__PURE__*/_react.default.createElement("span", null, filterMessage)), isFilterSetterShow && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_DTableFiltersPopover2.default, {
86
82
  isNeedSubmit: true,
83
+ userDepartmentIdsMap: userDepartmentIdsMap,
84
+ departments: departments,
87
85
  target: id,
88
- filters: availableFilters,
86
+ columns: columns,
89
87
  filterConjunction: filterConjunction,
90
- columns: shownColumns,
91
- departments: departments,
88
+ filters: validFilters,
92
89
  collaborators: collaborators,
93
90
  hidePopover: toggleFilterPopover,
94
- update: updateFilters
91
+ update: updateFilters,
92
+ firstDayOfWeek: firstDayOfWeek,
93
+ isSupportAdvanced: true
95
94
  })));
96
95
  };
97
96
  var _default = exports.default = DataFilter;
@@ -127,16 +127,7 @@
127
127
  color: #666666;
128
128
  }
129
129
 
130
- .setting-item-permission-title:hover {
131
- cursor: pointer;
132
- }
133
-
134
- .setting-item-permission-title.disable:hover {
135
- cursor: default;
136
- }
137
-
138
- .setting-item .filters-setting-btn.disable:hover,
139
- .setting-item .setting-item-permission-title.disabled:hover {
130
+ .setting-item .filters-setting-btn.disable:hover {
140
131
  cursor: not-allowed;
141
132
  color: hsl(0, 0%, 60%);
142
133
  background-color: hsl(0, 0%, 95%);
@@ -151,27 +142,6 @@
151
142
  color: #666666;
152
143
  }
153
144
 
154
- .setting-item .setting-item-permission-title .dtable-icon-right {
155
- color: #ccc;
156
- font-size: 10px;
157
- cursor: pointer;
158
- transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
159
- }
160
-
161
- .setting-item .setting-item-permission-title .dtable-icon-right:hover {
162
- color: #666666;
163
- }
164
-
165
- .setting-item .setting-item-permission-title .dtable-icon-right.rotate {
166
- transform: rotate(90deg);
167
- }
168
-
169
- .setting-item .setting-item-permission-title.disabled {
170
- padding: 3px 4px;
171
- border-radius: 4px;
172
- line-height: 22px;
173
- }
174
-
175
145
  .setting-item .check-record-format-switch .custom-switch .custom-switch-description {
176
146
  width: 230px;
177
147
  white-space: break-spaces;
@@ -8,6 +8,7 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.default = void 0;
9
9
  var _DTableSelect2 = _interopRequireDefault(require("dtable-ui-component/lib/DTableSelect"));
10
10
  var _DTableSwitch2 = _interopRequireDefault(require("dtable-ui-component/lib/DTableSwitch"));
11
+ var _DTableColumnIcon2 = _interopRequireDefault(require("dtable-ui-component/lib/DTableColumnIcon"));
11
12
  var _react = _interopRequireWildcard(require("react"));
12
13
  var _reactstrap = require("reactstrap");
13
14
  var _dtableUtils = require("dtable-utils");
@@ -45,8 +46,8 @@ const DataSettings = _ref => {
45
46
  value: column,
46
47
  label: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
47
48
  className: "sea-chart-column-icon"
48
- }, /*#__PURE__*/_react.default.createElement("i", {
49
- className: _dtableUtils.COLUMNS_ICON_CONFIG[column.type]
49
+ }, /*#__PURE__*/_react.default.createElement(_DTableColumnIcon2.default, {
50
+ column: column
50
51
  })), /*#__PURE__*/_react.default.createElement("span", {
51
52
  className: "select-module select-module-name ml-0"
52
53
  }, column.name))
@@ -55,7 +55,7 @@ const StyleSettings = _ref => {
55
55
  });
56
56
  }, [chart, onChange]);
57
57
  const onYAxisMinChange = (0, _react.useCallback)(min => {
58
- const newMin = parseInt(min);
58
+ const newMin = parseFloat(min);
59
59
  if (Number.isNaN(newMin)) return;
60
60
  const {
61
61
  config
@@ -69,7 +69,7 @@ const StyleSettings = _ref => {
69
69
  });
70
70
  }, [chart, onChange]);
71
71
  const onYAxisMaxChange = (0, _react.useCallback)(max => {
72
- const newMax = parseInt(max);
72
+ const newMax = parseFloat(max);
73
73
  if (Number.isNaN(newMax)) return;
74
74
  const {
75
75
  config
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
  var _DTableSelect2 = _interopRequireDefault(require("dtable-ui-component/lib/DTableSelect"));
10
+ var _DTableColumnIcon2 = _interopRequireDefault(require("dtable-ui-component/lib/DTableColumnIcon"));
10
11
  var _react = _interopRequireWildcard(require("react"));
11
12
  var _reactstrap = require("reactstrap");
12
13
  var _dtableUtils = require("dtable-utils");
@@ -20,13 +21,13 @@ const BasicSummary = _ref => {
20
21
  tables,
21
22
  chart,
22
23
  onChange,
23
- summaryTypeOptions: oldSummaryTypeOptions = _constants.CHART_SUMMARY_TYPES,
24
+ showSummaryTypes = true,
24
25
  summaryTypeKey = 'y_axis_summary_type',
25
- summaryColumnKey = 'y_axis_summary_column_key',
26
26
  summaryMethodKey = 'y_axis_summary_method',
27
- showSummaryTypes = true,
28
- label,
29
- supportColumnTypes = [_dtableUtils.CellType.NUMBER, _dtableUtils.CellType.DATE]
27
+ summaryColumnKey = 'y_axis_summary_column_key',
28
+ supportColumnTypes = [_dtableUtils.CellType.NUMBER, _dtableUtils.CellType.DATE],
29
+ summaryTypeOptions: oldSummaryTypeOptions = _constants.CHART_SUMMARY_TYPES,
30
+ label
30
31
  } = _ref;
31
32
  const selectedTable = (0, _react.useMemo)(() => {
32
33
  const {
@@ -52,8 +53,8 @@ const BasicSummary = _ref => {
52
53
  column: column,
53
54
  label: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
54
55
  className: "sea-chart-column-icon"
55
- }, /*#__PURE__*/_react.default.createElement("i", {
56
- className: _dtableUtils.COLUMNS_ICON_CONFIG[column.type]
56
+ }, /*#__PURE__*/_react.default.createElement(_DTableColumnIcon2.default, {
57
+ column: column
57
58
  })), /*#__PURE__*/_react.default.createElement("span", {
58
59
  className: "select-module select-module-name ml-0"
59
60
  }, column.name))
@@ -21,6 +21,7 @@ const CommonDataSettings = _ref => {
21
21
  tables,
22
22
  onChange
23
23
  } = _ref;
24
+ const validTables = Array.isArray(tables) ? tables : [];
24
25
  const {
25
26
  config
26
27
  } = chart;
@@ -57,14 +58,14 @@ const CommonDataSettings = _ref => {
57
58
  });
58
59
  }, [onChange]);
59
60
  const generateConfig = (0, _react.useCallback)(config => {
60
- return (0, _utils.generateChartConfig)(config, tables);
61
- }, [tables]);
61
+ return (0, _utils.generateChartConfig)(config, validTables);
62
+ }, [validTables]);
62
63
  const {
63
64
  table_id,
64
65
  drill_down_status,
65
66
  drill_down_fields
66
67
  } = config;
67
- const selectedTable = tables.find(table => table._id === table_id);
68
+ const selectedTable = validTables.find(table => table._id === table_id);
68
69
  const columns = selectedTable ? selectedTable.columns : [];
69
70
  const drillDownStatus = drill_down_status !== undefined && drill_down_status !== null ? drill_down_status : true;
70
71
  // use all columns as default
@@ -75,15 +76,15 @@ const CommonDataSettings = _ref => {
75
76
  generateChartConfig: generateConfig,
76
77
  onChange: onChange
77
78
  }), /*#__PURE__*/_react.default.createElement(_selectTable.default, {
78
- tables: tables,
79
+ tables: validTables,
79
80
  selectedTableId: table_id,
80
81
  onChange: onTableChange
81
82
  }), dataSources === 'filter' && /*#__PURE__*/_react.default.createElement(_dataFilter.default, {
82
- tables: tables,
83
+ tables: validTables,
83
84
  chart: chart,
84
85
  onChange: onChange
85
86
  }), dataSources === 'view' && /*#__PURE__*/_react.default.createElement(_selectView.default, {
86
- tables: tables,
87
+ tables: validTables,
87
88
  selectedTableId: table_id,
88
89
  selectedViewId: chart.config.view_id,
89
90
  onChange: onViewChange
@@ -16,6 +16,7 @@ var _context = _interopRequireDefault(require("../../../context"));
16
16
  var _contexts = require("../../../utils/contexts");
17
17
  require("./index.css");
18
18
  const DataFilter = _ref => {
19
+ var _window$dtable;
19
20
  let {
20
21
  chart,
21
22
  tables,
@@ -25,6 +26,9 @@ const DataFilter = _ref => {
25
26
  const {
26
27
  departments
27
28
  } = (0, _react.useContext)(_contexts.DepartmentsContext);
29
+ const {
30
+ firstDayOfWeek
31
+ } = (0, _react.useContext)(_contexts.FirstDayOfWeekContext);
28
32
  const toggleFilterPopover = (0, _react.useCallback)(event => {
29
33
  (0, _utils.eventStopPropagation)(event);
30
34
  setIsFilterSetterShow(!isFilterSetterShow);
@@ -44,21 +48,24 @@ const DataFilter = _ref => {
44
48
  } = config;
45
49
  return (0, _dtableUtils.getTableById)(tables, table_id);
46
50
  }, [tables, chart]);
51
+ const {
52
+ config
53
+ } = chart;
54
+ const {
55
+ filters
56
+ } = config;
57
+ const validFilters = (0, _react.useMemo)(() => {
58
+ return (0, _dtableUtils.getValidFilters)(filters, table === null || table === void 0 ? void 0 : table.columns);
59
+ }, [filters, table]);
47
60
  const filterMessage = (0, _react.useMemo)(() => {
48
- const {
49
- config
50
- } = chart;
51
- const {
52
- filters
53
- } = config;
54
61
  let filterMessage = _intl.default.get('Filter');
55
- if (filters.length === 1) {
62
+ if (validFilters.length === 1) {
56
63
  filterMessage = _intl.default.get('1 Filter');
57
- } else if (filters.length > 1) {
58
- filterMessage = filters.length + ' ' + _intl.default.get('Filters');
64
+ } else if (validFilters.length > 1) {
65
+ filterMessage = validFilters.length + ' ' + _intl.default.get('Filters');
59
66
  }
60
67
  return filterMessage;
61
- }, [chart]);
68
+ }, [validFilters]);
62
69
  const filterConjunction = (0, _react.useMemo)(() => {
63
70
  const {
64
71
  config
@@ -69,12 +76,10 @@ const DataFilter = _ref => {
69
76
  return filter_conjunction || 'And';
70
77
  }, [chart]);
71
78
  const collaborators = _context.default.getCollaboratorsFromCache();
72
- const {
73
- config
74
- } = chart;
75
- const {
76
- filters
77
- } = config;
79
+ const userDepartmentIdsMap = ((_window$dtable = window.dtable) === null || _window$dtable === void 0 ? void 0 : _window$dtable.userDepartmentIdsMap) || {
80
+ 'current_user_department_ids': [],
81
+ 'current_user_department_and_sub_ids': []
82
+ };
78
83
  return /*#__PURE__*/_react.default.createElement(_reactstrap.FormGroup, {
79
84
  className: "sea-chart-parameter-item"
80
85
  }, /*#__PURE__*/_react.default.createElement(_reactstrap.Label, null, _intl.default.get('Data_settings')), table ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
@@ -83,17 +88,20 @@ const DataFilter = _ref => {
83
88
  onClick: toggleFilterPopover
84
89
  }, /*#__PURE__*/_react.default.createElement("i", {
85
90
  className: "dtable-font dtable-icon-filter"
86
- }), /*#__PURE__*/_react.default.createElement("span", null, filterMessage)), isFilterSetterShow && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_DTableFiltersPopover2.default, {
91
+ }), /*#__PURE__*/_react.default.createElement("span", null, filterMessage)), isFilterSetterShow && /*#__PURE__*/_react.default.createElement(_DTableFiltersPopover2.default, {
87
92
  isNeedSubmit: true,
93
+ userDepartmentIdsMap: userDepartmentIdsMap,
94
+ departments: departments,
88
95
  target: id,
89
- filters: filters,
90
- filterConjunction: filterConjunction,
91
96
  columns: table.columns,
92
- departments: departments,
97
+ filterConjunction: filterConjunction,
98
+ filters: validFilters,
93
99
  collaborators: collaborators,
94
100
  hidePopover: toggleFilterPopover,
95
- update: updateFilters
96
- }))) : /*#__PURE__*/_react.default.createElement("div", {
101
+ update: updateFilters,
102
+ firstDayOfWeek: firstDayOfWeek,
103
+ isSupportAdvanced: true
104
+ })) : /*#__PURE__*/_react.default.createElement("div", {
97
105
  id: id,
98
106
  className: "sea-chart-data-filter disabled"
99
107
  }, /*#__PURE__*/_react.default.createElement("i", {
@@ -8,6 +8,7 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.default = void 0;
9
9
  var _DTableSelect2 = _interopRequireDefault(require("dtable-ui-component/lib/DTableSelect"));
10
10
  var _DTableCustomizeSelect2 = _interopRequireDefault(require("dtable-ui-component/lib/DTableCustomizeSelect"));
11
+ var _DTableColumnIcon2 = _interopRequireDefault(require("dtable-ui-component/lib/DTableColumnIcon"));
11
12
  var _react = _interopRequireWildcard(require("react"));
12
13
  var _classnames = _interopRequireDefault(require("classnames"));
13
14
  var _reactstrap = require("reactstrap");
@@ -100,8 +101,8 @@ class GroupBy extends _react.Component {
100
101
  value: column,
101
102
  label: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
102
103
  className: "header-icon"
103
- }, /*#__PURE__*/_react.default.createElement("i", {
104
- className: _dtableUtils.COLUMNS_ICON_CONFIG[column.type]
104
+ }, /*#__PURE__*/_react.default.createElement(_DTableColumnIcon2.default, {
105
+ column: column
105
106
  })), /*#__PURE__*/_react.default.createElement("span", {
106
107
  className: 'select-option-name'
107
108
  }, column.name))
@@ -193,7 +194,7 @@ class GroupBy extends _react.Component {
193
194
  const {
194
195
  type: groupbyColumnType
195
196
  } = groupbyColumn;
196
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, (_dtableUtils.DATE_COLUMN_OPTIONS.includes(groupbyColumnType) || (0, _columnUtils.islinkDateFormula)(groupbyColumn)) && this.renderGroupbyDateGranulates(), groupbyColumnType === _dtableUtils.CellType.GEOLOCATION && this.geolocationGranulatesOptions.length > 0 && this.renderGroupbyGeolocationGranulates());
197
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, (_dtableUtils.DATE_COLUMN_OPTIONS.includes(groupbyColumnType) || (0, _columnUtils.isDateFormulaColumn)(groupbyColumn)) && this.renderGroupbyDateGranulates(), groupbyColumnType === _dtableUtils.CellType.GEOLOCATION && this.geolocationGranulatesOptions.length > 0 && this.renderGroupbyGeolocationGranulates());
197
198
  };
198
199
  this.dateGranulatesOptions = this.generatorGranulatesOptions(_constants.DATE_GRANULATES);
199
200
  this.initOptions(_props);
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
  var _DTableSelect2 = _interopRequireDefault(require("dtable-ui-component/lib/DTableSelect"));
10
+ var _DTableColumnIcon2 = _interopRequireDefault(require("dtable-ui-component/lib/DTableColumnIcon"));
10
11
  var _react = _interopRequireWildcard(require("react"));
11
12
  var _dtableUtils = require("dtable-utils");
12
13
  var _reactstrap = require("reactstrap");
@@ -50,8 +51,8 @@ class SummarySettings extends _react.Component {
50
51
  value: column,
51
52
  label: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
52
53
  className: "sea-chart-column-icon"
53
- }, /*#__PURE__*/_react.default.createElement("i", {
54
- className: _dtableUtils.COLUMNS_ICON_CONFIG[column.type]
54
+ }, /*#__PURE__*/_react.default.createElement(_DTableColumnIcon2.default, {
55
+ column: column
55
56
  })), /*#__PURE__*/_react.default.createElement("span", {
56
57
  className: 'select-module select-module-name ml-0'
57
58
  }, column.name))
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
  var _DTableSelect2 = _interopRequireDefault(require("dtable-ui-component/lib/DTableSelect"));
10
+ var _DTableColumnIcon2 = _interopRequireDefault(require("dtable-ui-component/lib/DTableColumnIcon"));
10
11
  var _react = _interopRequireWildcard(require("react"));
11
12
  var _reactstrap = require("reactstrap");
12
13
  var _dtableUtils = require("dtable-utils");
@@ -82,8 +83,8 @@ class YAxisGroupSettings extends _react.Component {
82
83
  value: column,
83
84
  label: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
84
85
  className: "sea-chart-column-icon"
85
- }, /*#__PURE__*/_react.default.createElement("i", {
86
- className: _dtableUtils.COLUMNS_ICON_CONFIG[column.type]
86
+ }, /*#__PURE__*/_react.default.createElement(_DTableColumnIcon2.default, {
87
+ column: column
87
88
  })), /*#__PURE__*/_react.default.createElement("span", {
88
89
  className: 'select-module select-module-name ml-0'
89
90
  }, column.name))
@@ -7,7 +7,6 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.getClientLinkDisplayString = exports.getClientFormulaDisplayString = exports.getClientCellValueDisplayString = void 0;
8
8
  var _dayjs = _interopRequireDefault(require("dayjs"));
9
9
  var _dtableUtils = require("dtable-utils");
10
- var _objectUtils = _interopRequireDefault(require("./object-utils"));
11
10
  const getClientFormulaDisplayString = function (value, columnData) {
12
11
  let {
13
12
  collaborators = []
@@ -38,12 +37,15 @@ const getClientLinkDisplayString = (links, columnData, _ref) => {
38
37
  if (!columnData || !Array.isArray(links) || links.length === 0) {
39
38
  return null;
40
39
  }
41
-
42
- // eslint-disable-next-line
43
- const formulaData = _objectUtils.default.hasOwnProperty(columnData, 'result_type') ? columnData : {
44
- ...columnData,
45
- result_type: _dtableUtils.FORMULA_RESULT_TYPE.ARRAY
46
- };
40
+ let formulaData = columnData;
41
+ const hasResultType = Object.prototype.hasOwnProperty.call(columnData, 'result_type');
42
+ if (!hasResultType) {
43
+ formulaData = {
44
+ ...columnData,
45
+ result_type: _dtableUtils.FORMULA_RESULT_TYPE.ARRAY,
46
+ array_type: 'text'
47
+ };
48
+ }
47
49
  const displayValue = links.map(link => link.display_value);
48
50
  return getClientFormulaDisplayString(displayValue, formulaData, {
49
51
  collaborators