sea-chart 1.1.91 → 1.1.92

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.
@@ -1,24 +1,20 @@
1
1
  import React from 'react';
2
2
  import './index.css';
3
- const importAll = requireContext => {
4
- requireContext.keys().forEach(requireContext);
5
- };
6
- try {
7
- importAll(require.context('../../assets/icons', true, /\.svg$/));
8
- } catch (error) {
9
- // eslint-disable-next-line no-console
10
- console.log(error);
11
- }
3
+ const components = {};
4
+ const requireContext = require.context('../../assets/icons', false, /\.svg$/);
5
+ requireContext.keys().forEach(path => {
6
+ const iconName = path.replace(/^\.\/(.*?)\.svg$/, '$1').toLowerCase();
7
+ components[iconName] = requireContext(path).default;
8
+ });
12
9
  const Icon = props => {
13
10
  const {
14
11
  className,
15
12
  symbol
16
13
  } = props;
17
14
  const iconClass = `sea-chart-icon sea-chart-icon-${symbol} ${className || ''}`;
18
- return /*#__PURE__*/React.createElement("svg", {
15
+ const IconComponent = components[symbol];
16
+ return /*#__PURE__*/React.createElement(IconComponent, {
19
17
  className: iconClass
20
- }, /*#__PURE__*/React.createElement("use", {
21
- xlinkHref: `#${symbol}`
22
- }));
18
+ });
23
19
  };
24
20
  export default Icon;
@@ -1,6 +1,6 @@
1
1
  import _DTableFiltersPopover from "dtable-ui-component/lib/DTableFiltersPopover";
2
2
  import React, { useCallback, useContext, useMemo, useState } from 'react';
3
- import { getTableById } from 'dtable-utils';
3
+ import { getTableById, getValidFilters } from 'dtable-utils';
4
4
  import { eventStopPropagation, generatorKey } from '../../../utils';
5
5
  import intl from '../../../intl';
6
6
  import context from '../../../context';
@@ -8,7 +8,7 @@ import { DepartmentsContext, FirstDayOfWeekContext } from '../../../utils/contex
8
8
  import { CHART_TYPE } from '../../../constants';
9
9
  import './data-filter.css';
10
10
  const DataFilter = _ref => {
11
- var _availableFilters;
11
+ var _availableFilters, _window$dtable;
12
12
  let {
13
13
  chart,
14
14
  tables,
@@ -31,12 +31,24 @@ const DataFilter = _ref => {
31
31
  filters,
32
32
  filter_conjunction
33
33
  } = config;
34
+ const shownColumns = useMemo(() => {
35
+ const table = getTableById(tables, table_id);
36
+ if (!table || !table.columns) return [];
37
+ if (!shown_column_keys) {
38
+ return table.columns;
39
+ } else {
40
+ return table.columns.filter(column => shown_column_keys.includes(column.key));
41
+ }
42
+ }, [shown_column_keys, table_id, tables]);
43
+ const validFilters = useMemo(() => {
44
+ return getValidFilters(filters, shownColumns);
45
+ }, [filters, shownColumns]);
34
46
  let availableFilters = [];
35
47
  // some of the filters of TABLE_ELEMENT maybe one of the hidden columns, so we need to filter them out
36
48
  if (shown_column_keys && type === CHART_TYPE.TABLE_ELEMENT) {
37
- availableFilters = filters === null || filters === void 0 ? void 0 : filters.filter(filter => shown_column_keys.includes(filter.column_key));
49
+ availableFilters = validFilters === null || validFilters === void 0 ? void 0 : validFilters.filter(filter => shown_column_keys.includes(filter.column_key));
38
50
  } else {
39
- availableFilters = filters;
51
+ availableFilters = validFilters;
40
52
  }
41
53
  const toggleFilterPopover = useCallback(event => {
42
54
  eventStopPropagation(event);
@@ -48,15 +60,6 @@ const DataFilter = _ref => {
48
60
  const id = useMemo(() => {
49
61
  return 'sea-chart-data-filter-' + generatorKey();
50
62
  }, []);
51
- const shownColumns = useMemo(() => {
52
- const table = getTableById(tables, table_id);
53
- if (!table || !table.columns) return [];
54
- if (!shown_column_keys) {
55
- return table.columns;
56
- } else {
57
- return table.columns.filter(column => shown_column_keys.includes(column.key));
58
- }
59
- }, [shown_column_keys, table_id, tables]);
60
63
  const filterLength = ((_availableFilters = availableFilters) === null || _availableFilters === void 0 ? void 0 : _availableFilters.length) || 0;
61
64
  const filterMessage = useMemo(() => {
62
65
  let filterMessage = intl.get('Filter');
@@ -71,6 +74,10 @@ const DataFilter = _ref => {
71
74
  return filter_conjunction || 'And';
72
75
  }, [filter_conjunction]);
73
76
  const collaborators = context.getCollaboratorsFromCache();
77
+ const userDepartmentIdsMap = ((_window$dtable = window.dtable) === null || _window$dtable === void 0 ? void 0 : _window$dtable.userDepartmentIdsMap) || {
78
+ 'current_user_department_ids': [],
79
+ 'current_user_department_and_sub_ids': []
80
+ };
74
81
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
75
82
  id: id,
76
83
  className: "sea-chart-data-filter mb-1",
@@ -79,15 +86,17 @@ const DataFilter = _ref => {
79
86
  className: "dtable-font dtable-icon-filter"
80
87
  }), /*#__PURE__*/React.createElement("span", null, filterMessage)), isFilterSetterShow && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_DTableFiltersPopover, {
81
88
  isNeedSubmit: true,
89
+ userDepartmentIdsMap: userDepartmentIdsMap,
90
+ departments: departments,
82
91
  target: id,
83
- filters: availableFilters,
84
- filterConjunction: filterConjunction,
85
92
  columns: shownColumns,
86
- departments: departments,
93
+ filterConjunction: filterConjunction,
94
+ filters: availableFilters,
87
95
  collaborators: collaborators,
88
96
  hidePopover: toggleFilterPopover,
89
97
  update: updateFilters,
90
- firstDayOfWeek: firstDayOfWeek
98
+ firstDayOfWeek: firstDayOfWeek,
99
+ isSupportAdvanced: true
91
100
  })));
92
101
  };
93
102
  export default DataFilter;
@@ -1,13 +1,14 @@
1
1
  import _DTableFiltersPopover from "dtable-ui-component/lib/DTableFiltersPopover";
2
2
  import React, { useCallback, useContext, useMemo, useState } from 'react';
3
3
  import { Label, FormGroup } from 'reactstrap';
4
- import { getTableById } from 'dtable-utils';
4
+ import { getTableById, getValidFilters } from 'dtable-utils';
5
5
  import { eventStopPropagation, generatorKey } from '../../../utils';
6
6
  import intl from '../../../intl';
7
7
  import context from '../../../context';
8
8
  import { DepartmentsContext, FirstDayOfWeekContext } from '../../../utils/contexts';
9
9
  import './index.css';
10
10
  const DataFilter = _ref => {
11
+ var _window$dtable;
11
12
  let {
12
13
  chart,
13
14
  tables,
@@ -64,12 +65,19 @@ const DataFilter = _ref => {
64
65
  return filter_conjunction || 'And';
65
66
  }, [chart]);
66
67
  const collaborators = context.getCollaboratorsFromCache();
68
+ const userDepartmentIdsMap = ((_window$dtable = window.dtable) === null || _window$dtable === void 0 ? void 0 : _window$dtable.userDepartmentIdsMap) || {
69
+ 'current_user_department_ids': [],
70
+ 'current_user_department_and_sub_ids': []
71
+ };
67
72
  const {
68
73
  config
69
74
  } = chart;
70
75
  const {
71
76
  filters
72
77
  } = config;
78
+ const validFilters = useMemo(() => {
79
+ return getValidFilters(filters, table.columns);
80
+ }, [filters, table.columns]);
73
81
  return /*#__PURE__*/React.createElement(FormGroup, {
74
82
  className: "sea-chart-parameter-item"
75
83
  }, /*#__PURE__*/React.createElement(Label, null, intl.get('Data_settings')), table ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
@@ -78,18 +86,20 @@ const DataFilter = _ref => {
78
86
  onClick: toggleFilterPopover
79
87
  }, /*#__PURE__*/React.createElement("i", {
80
88
  className: "dtable-font dtable-icon-filter"
81
- }), /*#__PURE__*/React.createElement("span", null, filterMessage)), isFilterSetterShow && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_DTableFiltersPopover, {
89
+ }), /*#__PURE__*/React.createElement("span", null, filterMessage)), isFilterSetterShow && /*#__PURE__*/React.createElement(_DTableFiltersPopover, {
82
90
  isNeedSubmit: true,
91
+ userDepartmentIdsMap: userDepartmentIdsMap,
92
+ departments: departments,
83
93
  target: id,
84
- filters: filters,
85
- filterConjunction: filterConjunction,
86
94
  columns: table.columns,
87
- departments: departments,
95
+ filterConjunction: filterConjunction,
96
+ filters: validFilters,
88
97
  collaborators: collaborators,
89
98
  hidePopover: toggleFilterPopover,
90
99
  update: updateFilters,
91
- firstDayOfWeek: firstDayOfWeek
92
- }))) : /*#__PURE__*/React.createElement("div", {
100
+ firstDayOfWeek: firstDayOfWeek,
101
+ isSupportAdvanced: true
102
+ })) : /*#__PURE__*/React.createElement("div", {
93
103
  id: id,
94
104
  className: "sea-chart-data-filter disabled"
95
105
  }, /*#__PURE__*/React.createElement("i", {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sea-chart",
3
- "version": "1.1.91",
3
+ "version": "1.1.92",
4
4
  "main": "./dist/index.js",
5
5
  "dependencies": {
6
6
  "@antv/data-set": "0.11.8",
@@ -143,7 +143,6 @@
143
143
  "resolve": "1.12.0",
144
144
  "resolve-url-loader": "5.0.0",
145
145
  "rimraf": "^5.0.7",
146
- "svg-sprite-loader": "^6.0.11",
147
146
  "svgo-loader": "^3.0.0",
148
147
  "sass-loader": "13.3.2",
149
148
  "style-loader": "^1.0.1",