dtable-ui-component 6.0.95-beta.2 → 6.0.96

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 (35) hide show
  1. package/lib/CheckboxEditor/mb-editor.js +2 -10
  2. package/lib/CheckboxEditor/pc-editor.js +2 -10
  3. package/lib/CheckboxFormatter/index.js +4 -13
  4. package/lib/DTableColumnIcon/index.js +74 -0
  5. package/lib/DTableFiltersPopover/utils/filter-item-utils.js +4 -4
  6. package/lib/DTableFiltersPopover/utils/index.js +57 -24
  7. package/lib/DTableFiltersPopover/widgets/filter-list/index.css +4 -2
  8. package/lib/{SvgIcon → DTableIcon}/index.css +2 -2
  9. package/lib/DTableIcon/index.js +44 -0
  10. package/lib/DTableIcon/svg-icon.js +56 -0
  11. package/lib/DTableSelect/utils.js +3 -0
  12. package/lib/DTableSwitch/index.css +2 -1
  13. package/lib/FieldDisplaySetting/field-item.js +10 -3
  14. package/lib/PhoneNumberLink/index.js +29 -0
  15. package/lib/RowExpandDialog/column-content/index.css +4 -2
  16. package/lib/RowExpandDialog/column-content/index.js +4 -4
  17. package/lib/RowExpandFormatter/constants.js +2 -2
  18. package/lib/RowExpandFormatter/email-formatter/index.css +1 -29
  19. package/lib/RowExpandFormatter/email-formatter/index.js +3 -3
  20. package/lib/RowExpandFormatter/formula-formatter/index.css +2 -0
  21. package/lib/RowExpandFormatter/formula-formatter/index.js +15 -12
  22. package/lib/RowExpandFormatter/index.css +2 -0
  23. package/lib/RowExpandFormatter/index.js +1 -0
  24. package/lib/RowExpandFormatter/text/index.css +2 -0
  25. package/lib/RowExpandFormatter/text/index.js +49 -0
  26. package/lib/RowExpandFormatter/url-formatter/index.css +1 -0
  27. package/lib/RowExpandFormatter/url-formatter/index.js +3 -3
  28. package/lib/RowExpandView/body/index.css +4 -0
  29. package/lib/SelectOptionGroup/index.css +5 -2
  30. package/lib/assets/icons/telephone.svg +14 -0
  31. package/lib/css/row-expand.css +27 -0
  32. package/lib/index.js +21 -7
  33. package/lib/toaster/toaster.js +1 -38
  34. package/package.json +3 -3
  35. package/lib/SvgIcon/index.js +0 -38
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.default = void 0;
9
9
  var _react = _interopRequireWildcard(require("react"));
10
10
  var _classnames = _interopRequireDefault(require("classnames"));
11
- var _SvgIcon = _interopRequireDefault(require("../SvgIcon"));
11
+ var _DTableIcon = _interopRequireDefault(require("../DTableIcon"));
12
12
  var _constants = require("../constants");
13
13
  var _jsxRuntime = require("react/jsx-runtime");
14
14
  class MBCheckboxEditor extends _react.Component {
@@ -52,15 +52,7 @@ class MBCheckboxEditor extends _react.Component {
52
52
  const className = (0, _classnames.default)('dtable-ui-checkbox-check-mark', {
53
53
  'dtable-ui-checkbox-check-svg': !(symbol !== null && symbol !== void 0 && symbol.startsWith('dtable-icon'))
54
54
  });
55
- if (symbol.startsWith('dtable-icon')) {
56
- return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
57
- className: `dtable-font ${symbol} ${className || ''}`,
58
- style: {
59
- color
60
- }
61
- });
62
- }
63
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_SvgIcon.default, {
55
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_DTableIcon.default, {
64
56
  className: className,
65
57
  symbol: symbol,
66
58
  color: color
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.default = void 0;
9
9
  var _react = _interopRequireWildcard(require("react"));
10
10
  var _classnames = _interopRequireDefault(require("classnames"));
11
- var _SvgIcon = _interopRequireDefault(require("../SvgIcon"));
11
+ var _DTableIcon = _interopRequireDefault(require("../DTableIcon"));
12
12
  var _constants = require("../constants");
13
13
  var _jsxRuntime = require("react/jsx-runtime");
14
14
  class PCCheckboxEditor extends _react.Component {
@@ -65,15 +65,7 @@ class PCCheckboxEditor extends _react.Component {
65
65
  const className = (0, _classnames.default)('dtable-ui-checkbox-check-mark', {
66
66
  'dtable-ui-checkbox-check-svg': !(symbol !== null && symbol !== void 0 && symbol.startsWith('dtable-icon'))
67
67
  });
68
- if (symbol.startsWith('dtable-icon')) {
69
- return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
70
- className: `dtable-font ${symbol} ${className || ''}`,
71
- style: {
72
- color
73
- }
74
- });
75
- }
76
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_SvgIcon.default, {
68
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_DTableIcon.default, {
77
69
  className: className,
78
70
  symbol: symbol,
79
71
  color: color
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var _classnames = _interopRequireDefault(require("classnames"));
10
- var _SvgIcon = _interopRequireDefault(require("../SvgIcon"));
10
+ var _DTableIcon = _interopRequireDefault(require("../DTableIcon"));
11
11
  var _constants = require("../constants");
12
12
  require("./index.css");
13
13
  var _jsxRuntime = require("react/jsx-runtime");
@@ -15,20 +15,11 @@ class CheckboxFormatter extends _react.default.PureComponent {
15
15
  constructor() {
16
16
  super(...arguments);
17
17
  this.renderIcon = (symbol, color) => {
18
- let className = 'dtable-ui-checkbox-check-mark';
19
- if (symbol.startsWith('dtable-icon')) {
20
- return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
21
- className: `dtable-font ${symbol} ${className || ''}`,
22
- style: {
23
- color
24
- }
25
- });
26
- }
27
- className = (0, _classnames.default)(className, {
18
+ const className = (0, _classnames.default)('dtable-ui-checkbox-check-mark', {
28
19
  'dtable-ui-checkbox-check-svg': !(symbol !== null && symbol !== void 0 && symbol.startsWith('dtable-icon')),
29
- 'scale-icon': _constants.isMobile
20
+ 'scale-icon-150': _constants.isMobile
30
21
  });
31
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_SvgIcon.default, {
22
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_DTableIcon.default, {
32
23
  className: className,
33
24
  symbol: symbol,
34
25
  color: color
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _classnames = _interopRequireDefault(require("classnames"));
9
+ var _dtableUtils = require("dtable-utils");
10
+ var _DTableIcon = _interopRequireDefault(require("../DTableIcon"));
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ const COLUMNS_ICON_CONFIG = {
13
+ [_dtableUtils.CellType.DEFAULT]: 'dtable-font dtable-icon-single-line-text',
14
+ [_dtableUtils.CellType.TEXT]: 'dtable-font dtable-icon-single-line-text',
15
+ [_dtableUtils.CellType.STRING]: 'dtable-font dtable-icon-single-line-text',
16
+ [_dtableUtils.CellType.NUMBER]: 'dtable-font dtable-icon-number',
17
+ [_dtableUtils.CellType.CHECKBOX]: 'dtable-font dtable-icon-check-square-solid',
18
+ [_dtableUtils.CellType.DATE]: 'dtable-font dtable-icon-calendar-alt-solid',
19
+ [_dtableUtils.CellType.SINGLE_SELECT]: 'dtable-font dtable-icon-single-election',
20
+ [_dtableUtils.CellType.LONG_TEXT]: 'dtable-font dtable-icon-long-text',
21
+ [_dtableUtils.CellType.IMAGE]: 'dtable-font dtable-icon-picture',
22
+ [_dtableUtils.CellType.FILE]: 'dtable-font dtable-icon-file-alt-solid',
23
+ [_dtableUtils.CellType.MULTIPLE_SELECT]: 'dtable-font dtable-icon-multiple-selection',
24
+ [_dtableUtils.CellType.COLLABORATOR]: 'dtable-font dtable-icon-collaborator',
25
+ [_dtableUtils.CellType.LINK]: 'dtable-font dtable-icon-link-other-record',
26
+ [_dtableUtils.CellType.FORMULA]: 'dtable-font dtable-icon-formula',
27
+ [_dtableUtils.CellType.LINK_FORMULA]: 'dtable-font dtable-icon-link-formulas',
28
+ [_dtableUtils.CellType.CREATOR]: 'dtable-font dtable-icon-creator',
29
+ [_dtableUtils.CellType.CTIME]: 'dtable-font dtable-icon-creation-time',
30
+ [_dtableUtils.CellType.LAST_MODIFIER]: 'dtable-font dtable-icon-creator',
31
+ [_dtableUtils.CellType.MTIME]: 'dtable-font dtable-icon-creation-time',
32
+ [_dtableUtils.CellType.GEOLOCATION]: 'dtable-font dtable-icon-location',
33
+ [_dtableUtils.CellType.AUTO_NUMBER]: 'dtable-font dtable-icon-autonumber',
34
+ [_dtableUtils.CellType.URL]: 'dtable-font dtable-icon-url',
35
+ [_dtableUtils.CellType.EMAIL]: 'dtable-font dtable-icon-email',
36
+ [_dtableUtils.CellType.DURATION]: 'dtable-font dtable-icon-duration',
37
+ [_dtableUtils.CellType.BUTTON]: 'dtable-font dtable-icon-button',
38
+ [_dtableUtils.CellType.RATE]: 'dtable-font dtable-icon-rate',
39
+ [_dtableUtils.CellType.DIGITAL_SIGN]: 'dtable-font dtable-icon-handwritten-signature',
40
+ [_dtableUtils.CellType.DEPARTMENT_SINGLE_SELECT]: 'dtable-font dtable-icon-department-single-selection'
41
+ };
42
+ const COLUMN_DISPLAY_TYPE_ICON_CONFIG = {
43
+ [_dtableUtils.CellType.TEXT]: {
44
+ [_dtableUtils.TEXT_DISPLAY_TYPE_MAP.PHONE]: 'telephone'
45
+ }
46
+ };
47
+ const DTableColumnIcon = _ref => {
48
+ let {
49
+ column,
50
+ color,
51
+ className,
52
+ ariaHidden = false,
53
+ getSvg
54
+ } = _ref;
55
+ const columnType = column === null || column === void 0 ? void 0 : column.type;
56
+ if (!columnType) return null;
57
+ const columnDisplayType = (0, _dtableUtils.getColumnDisplayType)(column);
58
+ let symbol = null;
59
+ let displayTypeIconConfig = COLUMN_DISPLAY_TYPE_ICON_CONFIG[columnType];
60
+ if (displayTypeIconConfig && columnDisplayType) {
61
+ symbol = displayTypeIconConfig[columnDisplayType];
62
+ }
63
+ if (!symbol) {
64
+ symbol = COLUMNS_ICON_CONFIG[columnType];
65
+ }
66
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_DTableIcon.default, {
67
+ className: (0, _classnames.default)('dtable-column-icon', className),
68
+ symbol: symbol,
69
+ color: color,
70
+ ariaHidden: ariaHidden,
71
+ getSvg: getSvg
72
+ });
73
+ };
74
+ var _default = exports.default = DTableColumnIcon;
@@ -1,19 +1,19 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
3
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.default = void 0;
8
9
  var _react = _interopRequireWildcard(require("react"));
9
- var _dtableUtils = require("dtable-utils");
10
+ var _DTableColumnIcon = _interopRequireDefault(require("../../DTableColumnIcon"));
10
11
  var _lang = require("../../lang");
11
12
  var _jsxRuntime = require("react/jsx-runtime");
12
13
  class FilterItemUtils {
13
14
  static generatorColumnOption(column) {
14
15
  if (!column) return null;
15
16
  const {
16
- type,
17
17
  name
18
18
  } = column;
19
19
  return {
@@ -23,8 +23,8 @@ class FilterItemUtils {
23
23
  label: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.Fragment, {
24
24
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
25
25
  className: "filter-header-icon",
26
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)("i", {
27
- className: _dtableUtils.COLUMNS_ICON_CONFIG[type]
26
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_DTableColumnIcon.default, {
27
+ column: column
28
28
  })
29
29
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
30
30
  className: "select-option-name",
@@ -133,17 +133,22 @@ const getColumnOptions = column => {
133
133
  }
134
134
  if (type === _dtableUtils.CellType.LINK) {
135
135
  const {
136
- array_type
136
+ array_type,
137
+ array_data
137
138
  } = data || {};
138
139
  if (array_type === _dtableUtils.FORMULA_RESULT_TYPE.BOOL) {
139
- return _dtableUtils.FILTER_COLUMN_OPTIONS[_dtableUtils.CellType.CHECKBOX];
140
+ return (0, _dtableUtils.getColumnFilterOptions)({
141
+ type: _dtableUtils.CellType.CHECKBOX
142
+ });
140
143
  }
141
144
  if (array_type === _dtableUtils.FORMULA_RESULT_TYPE.STRING) {
142
- return _dtableUtils.FILTER_COLUMN_OPTIONS[_dtableUtils.CellType.TEXT];
145
+ return (0, _dtableUtils.getColumnFilterOptions)({
146
+ type: _dtableUtils.CellType.TEXT
147
+ });
143
148
  }
144
- return getFilterOptionsByArrayType(array_type);
149
+ return getFilterOptionsByArrayType(array_type, array_data);
145
150
  }
146
- return _dtableUtils.FILTER_COLUMN_OPTIONS[type] || {};
151
+ return (0, _dtableUtils.getColumnFilterOptions)(column);
147
152
  };
148
153
  exports.getColumnOptions = getColumnOptions;
149
154
  const getFormulaColumnFilterOptions = column => {
@@ -152,23 +157,32 @@ const getFormulaColumnFilterOptions = column => {
152
157
  } = column;
153
158
  const {
154
159
  result_type,
155
- array_type
160
+ array_type,
161
+ array_data
156
162
  } = data || {};
157
163
  if (result_type === _dtableUtils.FORMULA_RESULT_TYPE.BOOL) {
158
- return _dtableUtils.FILTER_COLUMN_OPTIONS[_dtableUtils.CellType.CHECKBOX];
164
+ return (0, _dtableUtils.getColumnFilterOptions)({
165
+ type: _dtableUtils.CellType.CHECKBOX
166
+ });
159
167
  }
160
168
  if (result_type === _dtableUtils.FORMULA_RESULT_TYPE.STRING) {
161
- return _dtableUtils.FILTER_COLUMN_OPTIONS[_dtableUtils.CellType.TEXT];
169
+ return (0, _dtableUtils.getColumnFilterOptions)({
170
+ type: _dtableUtils.CellType.TEXT
171
+ });
162
172
  }
163
173
  if ([_dtableUtils.FORMULA_RESULT_TYPE.NUMBER, _dtableUtils.FORMULA_RESULT_TYPE.DATE].includes(result_type)) {
164
- return _dtableUtils.FILTER_COLUMN_OPTIONS[result_type];
174
+ return (0, _dtableUtils.getColumnFilterOptions)({
175
+ type: result_type
176
+ });
165
177
  }
166
178
  if (result_type === _dtableUtils.FORMULA_RESULT_TYPE.ARRAY) {
167
- return getFilterOptionsByArrayType(array_type);
179
+ return getFilterOptionsByArrayType(array_type, array_data);
168
180
  }
169
- return _dtableUtils.FILTER_COLUMN_OPTIONS[_dtableUtils.CellType.TEXT];
181
+ return (0, _dtableUtils.getColumnFilterOptions)({
182
+ type: _dtableUtils.CellType.TEXT
183
+ });
170
184
  };
171
- const getFilterOptionsByArrayType = array_type => {
185
+ const getFilterOptionsByArrayType = (array_type, array_data) => {
172
186
  if (!array_type) {
173
187
  return {};
174
188
  }
@@ -187,10 +201,21 @@ const getFilterOptionsByArrayType = array_type => {
187
201
 
188
202
  // only support: is
189
203
  if (checkType === _dtableUtils.CellType.CHECKBOX || checkType === _dtableUtils.CellType.BOOL) {
190
- return _dtableUtils.FILTER_COLUMN_OPTIONS[_dtableUtils.CellType.CHECKBOX];
204
+ return (0, _dtableUtils.getColumnFilterOptions)({
205
+ type: _dtableUtils.CellType.CHECKBOX
206
+ });
191
207
  }
192
- let filterOptions = _dtableUtils.FILTER_COLUMN_OPTIONS[checkType] || _dtableUtils.FILTER_COLUMN_OPTIONS[_dtableUtils.CellType.TEXT];
193
- let {
208
+ const filterOptions = (0, _dtableUtils.checkColumnHasFilterOptions)({
209
+ type: checkType,
210
+ data: array_data
211
+ }) ? (0, _dtableUtils.getColumnFilterOptions)({
212
+ type: checkType,
213
+ data: array_data
214
+ }) : (0, _dtableUtils.getColumnFilterOptions)({
215
+ type: _dtableUtils.CellType.TEXT,
216
+ data: array_data
217
+ });
218
+ const {
194
219
  filterPredicateList
195
220
  } = filterOptions;
196
221
  if (filterPredicateList && !filterPredicateList.includes(_dtableUtils.FILTER_PREDICATE_TYPE.EMPTY)) {
@@ -393,8 +418,8 @@ exports.generateDefaultUser = generateDefaultUser;
393
418
  const getDefaultFilter = columns => {
394
419
  if (!columns) return null;
395
420
  let defaultColumn = columns[0];
396
- if (!_dtableUtils.FILTER_COLUMN_OPTIONS[defaultColumn.type]) {
397
- defaultColumn = columns.find(c => _dtableUtils.FILTER_COLUMN_OPTIONS[c.type]);
421
+ if (!(0, _dtableUtils.checkColumnHasFilterOptions)(defaultColumn)) {
422
+ defaultColumn = columns.find(c => (0, _dtableUtils.checkColumnHasFilterOptions)(c));
398
423
  }
399
424
  if (!defaultColumn) return null;
400
425
  return getFilterByColumn(defaultColumn);
@@ -433,9 +458,12 @@ const getFilterColumns = columns => {
433
458
  type
434
459
  } = column;
435
460
  if (data && (type === _dtableUtils.CellType.LINK || _dtableUtils.FORMULA_COLUMN_TYPES_MAP[type] && data.result_type === _dtableUtils.FORMULA_RESULT_TYPE.ARRAY)) {
436
- return Object.prototype.hasOwnProperty.call(_dtableUtils.FILTER_COLUMN_OPTIONS, data.array_type);
461
+ return (0, _dtableUtils.checkColumnHasFilterOptions)({
462
+ type: data.array_type,
463
+ data: data.array_data
464
+ });
437
465
  }
438
- return Object.prototype.hasOwnProperty.call(_dtableUtils.FILTER_COLUMN_OPTIONS, type);
466
+ return (0, _dtableUtils.checkColumnHasFilterOptions)(column);
439
467
  });
440
468
  };
441
469
  exports.getFilterColumns = getFilterColumns;
@@ -702,17 +730,22 @@ const getFilterConfigOptions = column => {
702
730
  }
703
731
  if (type === _dtableUtils.CellType.LINK) {
704
732
  const {
705
- array_type
733
+ array_type,
734
+ array_data
706
735
  } = data || {};
707
736
  if (array_type === _dtableUtils.FORMULA_RESULT_TYPE.BOOL) {
708
- return _dtableUtils.FILTER_COLUMN_OPTIONS[_dtableUtils.CellType.CHECKBOX];
737
+ return (0, _dtableUtils.getColumnFilterOptions)({
738
+ type: _dtableUtils.CellType.CHECKBOX
739
+ });
709
740
  }
710
741
  if (array_type === _dtableUtils.FORMULA_RESULT_TYPE.STRING) {
711
- return _dtableUtils.FILTER_COLUMN_OPTIONS[_dtableUtils.CellType.TEXT];
742
+ return (0, _dtableUtils.getColumnFilterOptions)({
743
+ type: _dtableUtils.CellType.TEXT
744
+ });
712
745
  }
713
- return getFilterOptionsByArrayType(array_type);
746
+ return getFilterOptionsByArrayType(array_type, array_data);
714
747
  }
715
- return _dtableUtils.FILTER_COLUMN_OPTIONS[type] || {};
748
+ return (0, _dtableUtils.getColumnFilterOptions)(column) || {};
716
749
  };
717
750
  exports.getFilterConfigOptions = getFilterConfigOptions;
718
751
  const getMultipleSelectUpdatedFilterTerm = (filterTerm, option) => {
@@ -416,13 +416,15 @@
416
416
  margin-left: -0.3125rem;
417
417
  }
418
418
 
419
- .filter-header-icon .dtable-font {
419
+ .filter-header-icon .dtable-font,
420
+ .filter-header-icon .multicolor-icon {
420
421
  font-size: 14px;
421
422
  color: #aaa;
422
423
  cursor: default;
423
424
  }
424
425
 
425
- .option.option-active .filter-header-icon .dtable-font {
426
+ .option.option-active .filter-header-icon .dtable-font,
427
+ .option.option-active .filter-header-icon .multicolor-icon {
426
428
  color: #fff;
427
429
  }
428
430
 
@@ -1,10 +1,10 @@
1
- .dtable-ui-multicolor-icon {
1
+ .multicolor-icon {
2
2
  width: 1em;
3
3
  height: 1em;
4
4
  fill: currentColor;
5
5
  overflow: hidden;
6
6
  }
7
7
 
8
- .dtable-ui-multicolor-icon.scale-icon {
8
+ .multicolor-icon.scale-icon-150 {
9
9
  transform: scale(1.5);
10
10
  }
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _classnames = _interopRequireDefault(require("classnames"));
9
+ var _svgIcon = _interopRequireDefault(require("./svg-icon"));
10
+ require("./index.css");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ const DTableIcon = _ref => {
13
+ let {
14
+ className,
15
+ symbol,
16
+ color,
17
+ ariaHidden = false,
18
+ getSvg
19
+ } = _ref;
20
+ if (!symbol) return null;
21
+ if (symbol.includes('dtable-icon')) {
22
+ let customProps = {};
23
+ if (ariaHidden) {
24
+ customProps['aria-hidden'] = ariaHidden;
25
+ }
26
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("i", {
27
+ className: (0, _classnames.default)(symbol, className, {
28
+ 'dtable-font': !symbol.includes('dtable-font')
29
+ }),
30
+ style: {
31
+ color
32
+ },
33
+ ...customProps
34
+ });
35
+ }
36
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_svgIcon.default, {
37
+ symbol: symbol,
38
+ color: color,
39
+ className: className,
40
+ ariaHidden: ariaHidden,
41
+ getSvg: getSvg
42
+ });
43
+ };
44
+ var _default = exports.default = DTableIcon;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _classnames = _interopRequireDefault(require("classnames"));
9
+ var _jsxRuntime = require("react/jsx-runtime");
10
+ let svgIconComponents = null;
11
+ const loadSvgIconComponents = () => {
12
+ // load svg icons from ui-components
13
+ const requireContext = require.context('../assets/icons', false, /\.svg$/);
14
+ let iconComponents = {};
15
+ requireContext.keys().forEach(path => {
16
+ const iconName = path.replace(/^\.\/(.*?)\.svg$/, '$1').toLowerCase();
17
+ iconComponents[iconName] = requireContext(path).default;
18
+ });
19
+ return iconComponents;
20
+ };
21
+ const getSvgIconComponents = () => {
22
+ if (!svgIconComponents) {
23
+ svgIconComponents = loadSvgIconComponents();
24
+ }
25
+ return svgIconComponents;
26
+ };
27
+ const SvgIcon = _ref => {
28
+ let {
29
+ className,
30
+ symbol,
31
+ color,
32
+ ariaHidden,
33
+ getSvg
34
+ } = _ref;
35
+ if (!symbol) return null;
36
+ let props = {
37
+ style: {
38
+ fill: color
39
+ }
40
+ };
41
+ if (ariaHidden) {
42
+ props['aria-hidden'] = ariaHidden;
43
+ }
44
+ const iconComponents = getSvgIconComponents();
45
+ let IconComponent = iconComponents[symbol];
46
+ if (!IconComponent && getSvg) {
47
+ // try to get svg icon from other modules
48
+ IconComponent = getSvg(symbol);
49
+ }
50
+ if (!IconComponent) return null;
51
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(IconComponent, {
52
+ className: (0, _classnames.default)('multicolor-icon', className, `multicolor-icon-${symbol}`),
53
+ ...props
54
+ });
55
+ };
56
+ var _default = exports.default = SvgIcon;
@@ -121,6 +121,9 @@ const MenuSelectStyle = exports.MenuSelectStyle = {
121
121
  },
122
122
  '.header-icon .dtable-font': {
123
123
  color: '#aaa'
124
+ },
125
+ '.header-icon .multicolor-icon': {
126
+ color: '#aaa'
124
127
  }
125
128
  };
126
129
  },
@@ -26,7 +26,8 @@
26
26
  color: #212529;
27
27
  }
28
28
 
29
- .dtable-switch.sm .custom-switch .dtable-font {
29
+ .dtable-switch.sm .custom-switch .dtable-font,
30
+ .dtable-switch.sm .custom-switch .multicolor-icon {
30
31
  -webkit-transform: scale(.8);
31
32
  transform: scale(.8);
32
33
  display: inline-block;
@@ -7,8 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
  var _react = _interopRequireWildcard(require("react"));
10
- var _dtableUtils = require("dtable-utils");
11
10
  var _DTableSwitch = _interopRequireDefault(require("../DTableSwitch"));
11
+ var _DTableColumnIcon = _interopRequireDefault(require("../DTableColumnIcon"));
12
12
  var _jsxRuntime = require("react/jsx-runtime");
13
13
  function FieldItem(_ref) {
14
14
  let {
@@ -63,10 +63,17 @@ function FieldItem(_ref) {
63
63
  onMoveField(droppedColumnKey, field.key);
64
64
  };
65
65
  const placeholder = () => {
66
+ const {
67
+ type,
68
+ data
69
+ } = field;
66
70
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
67
71
  className: "field-switch",
68
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("i", {
69
- className: `dtable-font ${_dtableUtils.COLUMNS_ICON_CONFIG[field.type]}`
72
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_DTableColumnIcon.default, {
73
+ column: {
74
+ type,
75
+ data
76
+ }
70
77
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
71
78
  children: field.name
72
79
  })]
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _classnames = _interopRequireDefault(require("classnames"));
9
+ var _DTableIcon = _interopRequireDefault(require("../DTableIcon"));
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ const PhoneNumberLink = _ref => {
12
+ let {
13
+ phoneNumber,
14
+ className
15
+ } = _ref;
16
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("a", {
17
+ className: (0, _classnames.default)(className),
18
+ href: `tel:${typeof phoneNumber === 'string' ? phoneNumber.trim() : ''}`,
19
+ tabIndex: 0,
20
+ "aria-label": "",
21
+ target: "_blank",
22
+ rel: "noopener noreferrer",
23
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_DTableIcon.default, {
24
+ className: "jump-link-icon",
25
+ symbol: "telephone"
26
+ })
27
+ });
28
+ };
29
+ var _default = exports.default = PhoneNumberLink;
@@ -10,13 +10,15 @@
10
10
  width: 24px;
11
11
  }
12
12
 
13
- .dtable-ui-header-icon .dtable-font {
13
+ .dtable-ui-header-icon .dtable-font,
14
+ .dtable-ui-header-icon .multicolor-icon {
14
15
  font-size: 14px;
15
16
  color: #aaa;
16
17
  cursor: default;
17
18
  }
18
19
 
19
- .dtable-ui-row-expand-column-content .dtable-ui-row-expand-column-content-info .dtable-ui-header-icon .dtable-font {
20
+ .dtable-ui-row-expand-column-content .dtable-ui-row-expand-column-content-info .dtable-ui-header-icon .dtable-font,
21
+ .dtable-ui-row-expand-column-content .dtable-ui-row-expand-column-content-info .dtable-ui-header-icon .multicolor-icon {
20
22
  color: #212529a6;
21
23
  }
22
24
 
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
3
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
@@ -7,7 +8,7 @@ Object.defineProperty(exports, "__esModule", {
7
8
  exports.default = void 0;
8
9
  var _react = _interopRequireWildcard(require("react"));
9
10
  var _reactstrap = require("reactstrap");
10
- var _dtableUtils = require("dtable-utils");
11
+ var _DTableColumnIcon = _interopRequireDefault(require("../../DTableColumnIcon"));
11
12
  require("./index.css");
12
13
  var _jsxRuntime = require("react/jsx-runtime");
13
14
  const ColumnContent = _ref => {
@@ -18,7 +19,6 @@ const ColumnContent = _ref => {
18
19
  const descriptionRef = (0, _react.useRef)(null);
19
20
  const {
20
21
  name,
21
- type,
22
22
  key,
23
23
  description
24
24
  } = column;
@@ -30,8 +30,8 @@ const ColumnContent = _ref => {
30
30
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
31
31
  className: "dtable-ui-header-icon",
32
32
  id: `header-icon-${key}`,
33
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)("i", {
34
- className: _dtableUtils.COLUMNS_ICON_CONFIG[type]
33
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_DTableColumnIcon.default, {
34
+ column: column
35
35
  })
36
36
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
37
37
  className: "dtable-ui-row-expand-column-name",
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.DEFAULT_FORMATTER = void 0;
8
8
  var _dtableUtils = require("dtable-utils");
9
- var _TextFormatter = _interopRequireDefault(require("../TextFormatter"));
9
+ var _text = _interopRequireDefault(require("./text"));
10
10
  var _NumberFormatter = _interopRequireDefault(require("../NumberFormatter"));
11
11
  var _CheckboxFormatter = _interopRequireDefault(require("../CheckboxFormatter"));
12
12
  var _DateFormatter = _interopRequireDefault(require("../DateFormatter"));
@@ -32,7 +32,7 @@ var _linkFormatter = _interopRequireDefault(require("./link-formatter"));
32
32
  var _formulaFormatter = _interopRequireDefault(require("./formula-formatter"));
33
33
  var _departmentFormatter = _interopRequireDefault(require("./department-formatter"));
34
34
  const DEFAULT_FORMATTER = exports.DEFAULT_FORMATTER = {
35
- [_dtableUtils.CellType.TEXT]: _TextFormatter.default,
35
+ [_dtableUtils.CellType.TEXT]: _text.default,
36
36
  [_dtableUtils.CellType.NUMBER]: _NumberFormatter.default,
37
37
  [_dtableUtils.CellType.CHECKBOX]: _CheckboxFormatter.default,
38
38
  [_dtableUtils.CellType.DATE]: _DateFormatter.default,
@@ -1,30 +1,2 @@
1
1
  @import url('../../css/cell-formatter.css');
2
-
3
- .dtable-ui-row-expand-formatter .dtable-ui.email-formatter .email-formatter-value,
4
- .dtable-ui-row-expand-formatter .dtable-ui.url-formatter .url-formatter-value {
5
- text-decoration: underline;
6
- width: 95%;
7
- display: inline-flex;
8
- }
9
-
10
- .dtable-ui-row-expand-formatter .dtable-ui .row-expand-jump-link {
11
- display: inline-flex;
12
- align-items: center;
13
- font-size: 14px;
14
- height: 22px;
15
- position: absolute;
16
- top: 8px;
17
- right: 22px;
18
- border: 1px solid #eee;
19
- padding: 0 4px;
20
- color: #999;
21
- border-radius: 2px;
22
- background: #fff;
23
- cursor: pointer;
24
- box-shadow: 0 0 1px;
25
- }
26
-
27
- .dtable-ui-row-expand-formatter .dtable-ui .row-expand-jump-link:hover {
28
- background: #eee;
29
- border: 1px solid #c9c9c9;
30
- }
2
+ @import url('../../css/row-expand.css');
@@ -26,14 +26,14 @@ class RowExpandEmailFormatter extends _react.default.Component {
26
26
  containerClassName,
27
27
  value
28
28
  } = this.props;
29
- let classname = (0, _classnames.default)('dtable-ui cell-formatter-container email-formatter', containerClassName);
29
+ let classname = (0, _classnames.default)('dtable-ui cell-formatter-container email-formatter row-expand-jump-link-container', containerClassName);
30
30
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
31
31
  className: classname,
32
32
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
33
- className: "email-formatter-value text-truncate",
33
+ className: "email-formatter-value row-expand-jump-link-value text-truncate",
34
34
  children: value
35
35
  }), (0, _editorUtils.getTrimmedString)(value) && /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
36
- className: "dtable-font dtable-icon-email row-expand-jump-link",
36
+ className: "dtable-font dtable-icon-email row-expand-jump-link-btn",
37
37
  onClick: this.onOpenEmailLink
38
38
  })]
39
39
  });
@@ -0,0 +1,2 @@
1
+ @import url('../../css/cell-formatter.css');
2
+ @import url('../../css/row-expand.css');
@@ -10,12 +10,14 @@ var _classnames = _interopRequireDefault(require("classnames"));
10
10
  var _dtableUtils = require("dtable-utils");
11
11
  var _baseFormatterConfig = _interopRequireDefault(require("../../formatterConfig/base-formatter-config"));
12
12
  var _TextFormatter = _interopRequireDefault(require("../../TextFormatter"));
13
+ var _PhoneNumberLink = _interopRequireDefault(require("../../PhoneNumberLink"));
13
14
  var _utils = require("../../FormulaFormatter/utils");
14
15
  var _utils2 = require("../../utils/utils");
15
16
  var _cellValueValidator = _interopRequireDefault(require("../../FormulaFormatter/cell-value-validator"));
16
17
  var _toaster = _interopRequireDefault(require("../../toaster"));
17
18
  var _lang = require("../../lang");
18
19
  require("../../FormulaFormatter/index.css");
20
+ require("./index.css");
19
21
  var _jsxRuntime = require("react/jsx-runtime");
20
22
  class RowExpandFormulaFormatter extends _react.default.Component {
21
23
  constructor() {
@@ -61,13 +63,6 @@ class RowExpandFormulaFormatter extends _react.default.Component {
61
63
  width: '320px'
62
64
  };
63
65
  }
64
- const columnType = (0, _dtableUtils.getColumnType)(column);
65
- if ([_dtableUtils.CellType.URL, _dtableUtils.CellType.EMAIL].includes(columnType)) {
66
- style = {
67
- ...style,
68
- position: 'relative'
69
- };
70
- }
71
66
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
72
67
  className: "d-flex align-items-center form-control disabled h-auto",
73
68
  style: style,
@@ -125,6 +120,11 @@ class RowExpandFormulaFormatter extends _react.default.Component {
125
120
  formulaEmail = cellValue[0];
126
121
  formulaEmail = formulaEmail ? formulaEmail.trim() : '';
127
122
  }
123
+ let formulaPhoneNumber = '';
124
+ if ((0, _dtableUtils.checkIsDisplayAsPhoneNumberColumn)(column)) {
125
+ formulaPhoneNumber = cellValue[0];
126
+ formulaPhoneNumber = formulaPhoneNumber ? formulaPhoneNumber.trim() : '';
127
+ }
128
128
  return this.renderBorder(/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
129
129
  className: "dtable-ui formula-formatter multiple",
130
130
  children: cellValue.map((v, index) => {
@@ -133,16 +133,19 @@ class RowExpandFormulaFormatter extends _react.default.Component {
133
133
  className: (0, _classnames.default)('formula-formatter-content-item', {
134
134
  'simple-cell-formatter': (0, _utils.isSimpleCellFormatter)(array_type)
135
135
  }, {
136
- 'formula-url-formatter-column': formulaUrl || formulaEmail
136
+ 'row-expand-jump-link-container': !!(formulaUrl || formulaEmail || formulaPhoneNumber)
137
137
  }),
138
- children: [formulaUrl && /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
138
+ children: [!!formulaUrl && /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
139
139
  "aria-hidden": "true",
140
- className: "dtable-font dtable-icon-url formula-url-link",
140
+ className: "dtable-font dtable-icon-url formula-url-link row-expand-jump-link-btn",
141
141
  onClick: this.onOpenUrlLink.bind(this, formulaUrl)
142
- }), formulaEmail && /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
142
+ }), !!formulaEmail && /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
143
143
  "aria-hidden": "true",
144
- className: "dtable-font dtable-icon-email formula-email-link",
144
+ className: "dtable-font dtable-icon-email formula-email-link row-expand-jump-link-btn",
145
145
  onClick: this.onOpenEmailLink.bind(this, formulaEmail)
146
+ }), !!formulaPhoneNumber && /*#__PURE__*/(0, _jsxRuntime.jsx)(_PhoneNumberLink.default, {
147
+ phoneNumber: formulaPhoneNumber,
148
+ className: "row-expand-jump-link-btn"
146
149
  }), this.createColumnFormatter(Formatter, formatterProps)]
147
150
  }, `formula-formatter-content-item-${index}`);
148
151
  })
@@ -25,6 +25,7 @@
25
25
  height: 2.375rem;
26
26
  line-height: 2.375rem;
27
27
  width: 100%;
28
+ text-decoration: none;
28
29
  }
29
30
 
30
31
  .dtable-ui.dtable-ui-row-expand-formatter .dtable-ui.multiple-select-formatter .dtable-ui.select-item {
@@ -46,6 +47,7 @@
46
47
  }
47
48
 
48
49
  .dtable-ui.dtable-ui-row-expand-formatter .form-control {
50
+ position: relative;
49
51
  background-color: #f8f9fa;
50
52
  padding: 0 10px;
51
53
  height: fit-content;
@@ -77,6 +77,7 @@ class RowExpandFormatter extends _react.default.Component {
77
77
  className: "form-control d-flex align-items-center w-100",
78
78
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Formatter, {
79
79
  value: cellValue,
80
+ column: column,
80
81
  containerClassName: containerClassName
81
82
  })
82
83
  });
@@ -0,0 +1,2 @@
1
+ @import url('../../css/cell-formatter.css');
2
+ @import url('../../css/row-expand.css');
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _classnames = _interopRequireDefault(require("classnames"));
10
+ var _dtableUtils = require("dtable-utils");
11
+ var _PhoneNumberLink = _interopRequireDefault(require("../../PhoneNumberLink"));
12
+ var _editorUtils = require("../../utils/editor-utils");
13
+ require("./index.css");
14
+ var _jsxRuntime = require("react/jsx-runtime");
15
+ class TextFormatter extends _react.default.Component {
16
+ constructor() {
17
+ super(...arguments);
18
+ this.getFormattedValue = val => {
19
+ if (typeof val === 'object') {
20
+ return null;
21
+ }
22
+ if (Object.prototype.toString.call(val) === '[object Boolean]') {
23
+ return val + '';
24
+ }
25
+ return val;
26
+ };
27
+ }
28
+ render() {
29
+ const {
30
+ containerClassName,
31
+ value,
32
+ column
33
+ } = this.props;
34
+ const classname = (0, _classnames.default)('dtable-ui cell-formatter-container row-expand-jump-link-container text-formatter', containerClassName);
35
+ const formattedValue = this.getFormattedValue(value);
36
+ const isDisplayAsAsPhoneNumber = column ? (0, _dtableUtils.checkIsDisplayAsPhoneNumberColumn)(column) : false;
37
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
38
+ className: classname,
39
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
40
+ className: "text-formatter-value row-expand-jump-link-value text-truncate",
41
+ children: formattedValue
42
+ }), isDisplayAsAsPhoneNumber && !!(0, _editorUtils.getTrimmedString)(value) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_PhoneNumberLink.default, {
43
+ phoneNumber: value,
44
+ className: "row-expand-jump-link-btn"
45
+ })]
46
+ });
47
+ }
48
+ }
49
+ var _default = exports.default = TextFormatter;
@@ -1 +1,2 @@
1
1
  @import url('../../css/cell-formatter.css');
2
+ @import url('../../css/row-expand.css');
@@ -39,14 +39,14 @@ class UrlFormatter extends _react.default.Component {
39
39
  containerClassName,
40
40
  value
41
41
  } = this.props;
42
- let classname = (0, _classnames.default)('dtable-ui cell-formatter-container url-formatter', containerClassName);
42
+ const classname = (0, _classnames.default)('dtable-ui cell-formatter-container url-formatter row-expand-jump-link-container', containerClassName);
43
43
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
44
44
  className: classname,
45
45
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
46
- className: "url-formatter-value text-truncate",
46
+ className: "url-formatter-value row-expand-jump-link-value text-truncate",
47
47
  children: value
48
48
  }), (0, _editorUtils.getTrimmedString)(value) && /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
49
- className: "dtable-font dtable-icon-url row-expand-jump-link",
49
+ className: "dtable-font dtable-icon-url row-expand-jump-link-btn",
50
50
  onClick: this.onOpenUrlLink
51
51
  })]
52
52
  });
@@ -151,6 +151,10 @@
151
151
  right: 0;
152
152
  }
153
153
 
154
+ .dtable-ui-row-expand-formatter .dtable-ui .row-expand-jump-link .jump-link-icon {
155
+ color: #999;
156
+ }
157
+
154
158
  .dtable-ui-mobile-row-expand-body .dtable-ui-row-expand-formatter .dtable-ui.url-formatter .url-formatter-value,
155
159
  .dtable-ui-mobile-row-expand-body .dtable-ui-row-expand-formatter .dtable-ui.email-formatter .email-formatter-value {
156
160
  width: calc(100% - 40px);
@@ -59,15 +59,18 @@
59
59
  }
60
60
 
61
61
  .option:hover .header-icon .dtable-font,
62
+ .option:hover .header-icon .multicolor-icon,
62
63
  .option.option-active .select-option-name {
63
64
  color: #fff;
64
65
  }
65
66
 
66
- .option.option-active .header-icon .dtable-font {
67
+ .option.option-active .header-icon .dtable-font,
68
+ .option.option-active .header-icon .multicolor-icon {
67
69
  color: #fff;
68
70
  }
69
71
 
70
- .option:not(.option-active):hover .header-icon .dtable-font {
72
+ .option:not(.option-active):hover .header-icon .dtable-font,
73
+ .option:not(.option-active):hover .header-icon .multicolor-icon {
71
74
  color: #aaa;
72
75
  }
73
76
 
@@ -0,0 +1,14 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
4
+ viewBox="0 0 32 32" style="enable-background:new 0 0 32 32;" xml:space="preserve">
5
+ <style type="text/css">
6
+ .st0{fill:#999999;}
7
+ </style>
8
+ <title>telephone</title>
9
+ <g id="telephone">
10
+ <path id="路径" class="st0" d="M24.2,31C11.4,31,1.1,20.7,1.1,7.9C1.1,4.1,4.2,1,7.9,1c0.7,0,1.7,0.1,2.2,0.4
11
+ c0.4,0.2,0.9,0.6,1,1.1l2.1,9c0.1,0.5,0,1.1-0.3,1.4c-0.2,0.2-0.5,0.3-2.2,1.2c1.5,3.2,4,5.8,7.3,7.3c0.9-1.9,1-1.9,1.2-2.1
12
+ c0.4-0.4,0.8-0.5,1.4-0.4c5.7,1.3,8.7,2,9,2.1c0.5,0.1,0.8,0.5,1,0.9c0.2,0.5,0.4,1.5,0.4,2.2C31,28,27.9,31,24.2,31z"/>
13
+ </g>
14
+ </svg>
@@ -0,0 +1,27 @@
1
+ .dtable-ui-row-expand-formatter .dtable-ui .row-expand-jump-link-value {
2
+ text-decoration: underline;
3
+ width: 95%;
4
+ display: inline-flex;
5
+ }
6
+
7
+ .dtable-ui-row-expand-formatter .dtable-ui .row-expand-jump-link-btn {
8
+ display: inline-flex;
9
+ align-items: center;
10
+ font-size: 14px;
11
+ height: 22px;
12
+ position: absolute;
13
+ top: 8px;
14
+ right: 9px;
15
+ border: 1px solid #eee;
16
+ padding: 0 4px;
17
+ color: #999;
18
+ border-radius: 2px;
19
+ background: #fff;
20
+ cursor: pointer;
21
+ box-shadow: 0 0 1px;
22
+ }
23
+
24
+ .dtable-ui-row-expand-formatter .dtable-ui .row-expand-jump-link:hover {
25
+ background: #eee;
26
+ border: 1px solid #c9c9c9;
27
+ }
package/lib/index.js CHANGED
@@ -100,6 +100,12 @@ Object.defineProperty(exports, "DTableColorPicker", {
100
100
  return _DTableColorPicker.default;
101
101
  }
102
102
  });
103
+ Object.defineProperty(exports, "DTableColumnIcon", {
104
+ enumerable: true,
105
+ get: function () {
106
+ return _DTableColumnIcon.default;
107
+ }
108
+ });
103
109
  Object.defineProperty(exports, "DTableCommonAddTool", {
104
110
  enumerable: true,
105
111
  get: function () {
@@ -142,6 +148,12 @@ Object.defineProperty(exports, "DTableGroupSelect", {
142
148
  return _index.default;
143
149
  }
144
150
  });
151
+ Object.defineProperty(exports, "DTableIcon", {
152
+ enumerable: true,
153
+ get: function () {
154
+ return _DTableIcon.default;
155
+ }
156
+ });
145
157
  Object.defineProperty(exports, "DTableModalHeader", {
146
158
  enumerable: true,
147
159
  get: function () {
@@ -460,6 +472,12 @@ Object.defineProperty(exports, "NumberFormatter", {
460
472
  return _NumberFormatter.default;
461
473
  }
462
474
  });
475
+ Object.defineProperty(exports, "PhoneNumberLink", {
476
+ enumerable: true,
477
+ get: function () {
478
+ return _PhoneNumberLink.default;
479
+ }
480
+ });
463
481
  Object.defineProperty(exports, "Picker", {
464
482
  enumerable: true,
465
483
  get: function () {
@@ -550,12 +568,6 @@ Object.defineProperty(exports, "SingleSelectFormatter", {
550
568
  return _SingleSelectFormatter.default;
551
569
  }
552
570
  });
553
- Object.defineProperty(exports, "SvgIcon", {
554
- enumerable: true,
555
- get: function () {
556
- return _SvgIcon.default;
557
- }
558
- });
559
571
  Object.defineProperty(exports, "TabBar", {
560
572
  enumerable: true,
561
573
  get: function () {
@@ -695,7 +707,8 @@ var _DTableRadioGroup = _interopRequireDefault(require("./DTableRadioGroup"));
695
707
  var _DTableEmptyTip = _interopRequireDefault(require("./DTableEmptyTip"));
696
708
  var _IconButton = _interopRequireDefault(require("./IconButton"));
697
709
  var _UploadProgress = _interopRequireDefault(require("./UploadProgress"));
698
- var _SvgIcon = _interopRequireDefault(require("./SvgIcon"));
710
+ var _DTableIcon = _interopRequireDefault(require("./DTableIcon"));
711
+ var _DTableColumnIcon = _interopRequireDefault(require("./DTableColumnIcon"));
699
712
  var _AsyncUserSelect = _interopRequireDefault(require("./AsyncUserSelect"));
700
713
  var _ActionSheet = _interopRequireDefault(require("./ActionSheet"));
701
714
  var _ActivityIndicator = _interopRequireDefault(require("./ActivityIndicator"));
@@ -713,6 +726,7 @@ var _TabBar = _interopRequireDefault(require("./TabBar"));
713
726
  var _TextareaItem = _interopRequireDefault(require("./TextareaItem"));
714
727
  var _Toast = _interopRequireDefault(require("./Toast"));
715
728
  var _BodyPortal = _interopRequireDefault(require("./BodyPortal"));
729
+ var _PhoneNumberLink = _interopRequireDefault(require("./PhoneNumberLink"));
716
730
  var _MobileModal = _interopRequireDefault(require("./MobileModal"));
717
731
  var _MobileOperationSheet = _interopRequireDefault(require("./MobileOperationSheet"));
718
732
  var _MobileUpload = _interopRequireDefault(require("./MobileUpload"));
@@ -20,8 +20,6 @@ class Toaster {
20
20
  constructor() {
21
21
  var _this = this;
22
22
  this._bindNotify = handler => {
23
- // 在绑定通知处理器时,确保只有一个容器
24
- this._ensureSingleContainer();
25
23
  this.notifyHandler = handler;
26
24
  };
27
25
  this._bindGetToasts = handler => {
@@ -65,14 +63,6 @@ class Toaster {
65
63
  });
66
64
  };
67
65
  if (!isBrowser) return;
68
-
69
- // 单例模式:如果已经存在实例,直接返回
70
- if (Toaster.instance) {
71
- return Toaster.instance;
72
- }
73
-
74
- // 清理可能存在的旧容器
75
- this._cleanupOldContainers();
76
66
  const container = document.createElement('div');
77
67
  container.setAttribute('data-evergreen-toaster-container', '');
78
68
  document.body.appendChild(container);
@@ -82,33 +72,6 @@ class Toaster {
82
72
  bindGetToasts: this._bindGetToasts,
83
73
  bindCloseAll: this._bindCloseAll
84
74
  }));
85
-
86
- // 保存实例引用
87
- Toaster.instance = this;
88
- }
89
-
90
- // 清理旧的 toaster 容器
91
- _cleanupOldContainers() {
92
- const oldContainers = document.querySelectorAll('[data-evergreen-toaster-container]');
93
- oldContainers.forEach(container => {
94
- if (container.parentNode) {
95
- container.parentNode.removeChild(container);
96
- }
97
- });
98
- }
99
- // 确保 DOM 中只有一个 toaster 容器
100
- _ensureSingleContainer() {
101
- const containers = document.querySelectorAll('[data-evergreen-toaster-container]');
102
- if (containers.length > 1) {
103
- // 保留第一个容器(我们的实例),删除其他的
104
- for (let i = 1; i < containers.length; i++) {
105
- const container = containers[i];
106
- if (container.parentNode) {
107
- container.parentNode.removeChild(container);
108
- }
109
- }
110
- }
111
75
  }
112
76
  }
113
- exports.default = Toaster;
114
- Toaster.instance = null;
77
+ exports.default = Toaster;
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "dtable-ui-component",
3
- "version": "6.0.95-beta.2",
3
+ "version": "6.0.96",
4
4
  "main": "./lib/index.js",
5
5
  "dependencies": {
6
6
  "@seafile/react-image-lightbox": "4.0.2",
7
- "@seafile/seafile-calendar": "0.0.31",
7
+ "@seafile/seafile-calendar": "~0.0.32",
8
8
  "@seafile/seafile-editor": "~2.0.14",
9
9
  "classnames": "~2.5.*",
10
10
  "dayjs": "1.10.7",
11
- "dtable-utils": "~5.0.22",
11
+ "dtable-utils": "~5.0.26",
12
12
  "is-hotkey": "0.2.0",
13
13
  "rc-checkbox": "3.5.0",
14
14
  "react-color": "2.19.3",
@@ -1,38 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _react = _interopRequireDefault(require("react"));
9
- require("./index.css");
10
- var _jsxRuntime = require("react/jsx-runtime");
11
- const iconComponents = {};
12
- const requireContext = require.context('../assets/icons', false, /\.svg$/);
13
- requireContext.keys().forEach(path => {
14
- const iconName = path.replace(/^\.\/(.*?)\.svg$/, '$1').toLowerCase();
15
- iconComponents[iconName] = requireContext(path).default;
16
- });
17
- const SvgIcon = _ref => {
18
- let {
19
- className,
20
- symbol,
21
- color
22
- } = _ref;
23
- if (!symbol) return null;
24
- const iconClass = `dtable-ui-multicolor-icon multicolor-icon-${symbol} ${className || ''}`;
25
- const props = {
26
- className: iconClass,
27
- style: {
28
- fill: color
29
- },
30
- ariaHidden: 'true'
31
- };
32
- const IconComponent = iconComponents[symbol];
33
- if (!IconComponent) return null;
34
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(IconComponent, {
35
- ...props
36
- });
37
- };
38
- var _default = exports.default = SvgIcon;