dtable-ui-component 5.0.21-alpha.3 → 5.0.21-alpha.5

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,12 +1,13 @@
1
1
  .dtable-color-picker {
2
2
  width: 240px;
3
+ height: 370px;
3
4
  background-color: #fff;
4
5
  border-radius: 2px;
5
6
  z-index: 100;
6
7
  padding: 0.75rem;
7
8
  line-height: normal;
8
9
  position: absolute;
9
- box-shadow: rgba(0, 0, 0, 0.3) 0px 0px 2px, rgba(0, 0, 0, 0.3) 0px 4px 8px
10
+ box-shadow: rgba(0, 0, 0, 0.3) 0px 0px 2px, rgba(0, 0, 0, 0.3) 0px 4px 8px;
10
11
  }
11
12
 
12
13
  .dtable-color-picker .chrome-picker {
@@ -56,7 +57,12 @@
56
57
  }
57
58
 
58
59
  .dtable-color-picker .color-setting .mode-btn {
59
- color: #666;
60
+ cursor: pointer;
61
+ }
62
+
63
+ .dtable-color-picker .color-setting .mode-btn:hover,
64
+ .dtable-color-picker .color-setting .mode-btn:hover .dtable-font {
65
+ color: #555;
60
66
  }
61
67
 
62
68
  .dtable-color-picker .color-setting input {
@@ -104,7 +110,7 @@
104
110
  }
105
111
 
106
112
  .dtable-color-picker .color-setting .dtable-font {
107
- font-size: 13px;
113
+ font-size: 12px;
108
114
  margin-left: 2px;
109
115
  color: #ccc;
110
116
  display: inline-block;
@@ -112,10 +118,6 @@
112
118
  cursor: pointer;
113
119
  }
114
120
 
115
- .dtable-color-picker .color-setting .dtable-font:hover {
116
- color: #999;
117
- }
118
-
119
121
  .dtable-color-picker .saturation-black {
120
122
  cursor: pointer;
121
123
  }
@@ -9,18 +9,28 @@ exports.default = void 0;
9
9
  var _react = _interopRequireWildcard(require("react"));
10
10
  var _reactstrap = require("reactstrap");
11
11
  var _reactColor = require("react-color");
12
+ var _dtableUtils = require("dtable-utils");
12
13
  var _lang = require("../lang");
13
14
  var _ClickOutside = _interopRequireDefault(require("../ClickOutside"));
14
- var _constants = require("./constants");
15
15
  var _utils = require("./utils");
16
16
  require("./index.css");
17
- const DTableColorPicker = props => {
17
+ const DEFAULT_COLORS = ['#ffffff', '#f5f5f5', '#eef6f9', '#deffe6', '#def7c4', '#fefdb5', '#feebb6', '#ffdde5'];
18
+ const COLOR_PICKER_MODE = {
19
+ HEX: 'hex',
20
+ RGBA: 'rgba'
21
+ };
22
+ const RGB_COLORS_MAP = {
23
+ RED: 'r',
24
+ GREEN: 'g',
25
+ BLUE: 'b'
26
+ };
27
+ const LOCAL_STORAGE_KEY = 'dtable-color-picker';
28
+ const DTableColorPicker = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
18
29
  const {
19
30
  onToggle,
20
31
  popoverStyle,
21
32
  color,
22
- defaultColors,
23
- storageKey
33
+ defaultColors
24
34
  } = props;
25
35
  const initialRgbaColor = (0, _utils.hexToRgba)(color);
26
36
  const [value, setValue] = (0, _react.useState)(initialRgbaColor);
@@ -29,12 +39,24 @@ const DTableColorPicker = props => {
29
39
  const [redVal, setRedVal] = (0, _react.useState)(initialRgbaColor.r);
30
40
  const [greenVal, setGreenVal] = (0, _react.useState)(initialRgbaColor.g);
31
41
  const [blueVal, setBlueVal] = (0, _react.useState)(initialRgbaColor.b);
32
- const [colorMode, setColorMode] = (0, _react.useState)(_constants.COLOR_PICKER_MODE.HEX); // hex or rgb
33
- const currentUsedColorsStr = window.localStorage.getItem(storageKey);
34
- let currentUsedColors = currentUsedColorsStr ? JSON.parse(currentUsedColorsStr) : [];
42
+ const [colorMode, setColorMode] = (0, _react.useState)(COLOR_PICKER_MODE.HEX); // hex or rgb
43
+ const colorPickerRef = (0, _react.useRef)(null);
44
+ let currentUsedColors = [];
45
+ const currentUsedColorsStr = window.localStorage.getItem(LOCAL_STORAGE_KEY);
46
+ try {
47
+ currentUsedColors = currentUsedColorsStr ? JSON.parse(currentUsedColorsStr) : [];
48
+ } catch (error) {
49
+ console.error('Error parsing current used colors from localStorage:', error);
50
+ }
35
51
  (0, _react.useEffect)(() => {
36
- document.querySelector('.chrome-picker > div:last-of-type > .flexbox-fix:first-of-type').classList.add('color-bar');
52
+ const colorBarElement = document.querySelector('.chrome-picker > div:last-of-type > .flexbox-fix:first-of-type');
53
+ if (colorBarElement) {
54
+ colorBarElement.classList.add('color-bar');
55
+ }
37
56
  }, []);
57
+ (0, _react.useImperativeHandle)(ref, () => ({
58
+ getHeight: () => colorPickerRef.current ? colorPickerRef.current.offsetHeight : 0
59
+ }));
38
60
  const onChangeChromePicker = newColor => {
39
61
  const rgba = newColor.rgb;
40
62
  rgba.a = Math.round(rgba.a * 100) / 100;
@@ -48,7 +70,7 @@ const DTableColorPicker = props => {
48
70
  } = rgba;
49
71
  setAlphaVal((0, _utils.toPercentage)(a));
50
72
  updateValue(rgba);
51
- if (colorMode === _constants.COLOR_PICKER_MODE.HEX) {
73
+ if (colorMode === COLOR_PICKER_MODE.HEX) {
52
74
  setHexVal(hexVal);
53
75
  } else {
54
76
  setRedVal(r);
@@ -58,8 +80,8 @@ const DTableColorPicker = props => {
58
80
  };
59
81
  const onChangeMode = () => {
60
82
  let newMode;
61
- if (colorMode === _constants.COLOR_PICKER_MODE.HEX) {
62
- newMode = _constants.COLOR_PICKER_MODE.RGBA;
83
+ if (colorMode === COLOR_PICKER_MODE.HEX) {
84
+ newMode = COLOR_PICKER_MODE.RGBA;
63
85
  const rgba = (0, _utils.hexToRgba)(color);
64
86
  const {
65
87
  r,
@@ -70,7 +92,7 @@ const DTableColorPicker = props => {
70
92
  setGreenVal(g);
71
93
  setBlueVal(b);
72
94
  } else {
73
- newMode = _constants.COLOR_PICKER_MODE.HEX;
95
+ newMode = COLOR_PICKER_MODE.HEX;
74
96
  const hexVal = (0, _utils.rgbaToHex)(value, false, false);
75
97
  setHexVal(hexVal);
76
98
  }
@@ -117,17 +139,17 @@ const DTableColorPicker = props => {
117
139
  if (!regex.test(newVal)) return;
118
140
  if (newVal) newVal = parseInt(newVal);
119
141
  switch (specColor) {
120
- case _constants.RGB_COLORS_MAP.RED:
142
+ case RGB_COLORS_MAP.RED:
121
143
  {
122
144
  setRedVal(newVal);
123
145
  break;
124
146
  }
125
- case _constants.RGB_COLORS_MAP.GREEN:
147
+ case RGB_COLORS_MAP.GREEN:
126
148
  {
127
149
  setGreenVal(newVal);
128
150
  break;
129
151
  }
130
- case _constants.RGB_COLORS_MAP.BLUT:
152
+ case RGB_COLORS_MAP.BLUE:
131
153
  {
132
154
  setBlueVal(newVal);
133
155
  break;
@@ -139,14 +161,14 @@ const DTableColorPicker = props => {
139
161
  const onRgbInputBlur = specColor => {
140
162
  let val = redVal;
141
163
  let setSpecColor = setRedVal;
142
- if (specColor === _constants.RGB_COLORS_MAP.GREEN) {
164
+ if (specColor === RGB_COLORS_MAP.GREEN) {
143
165
  val = greenVal;
144
166
  setSpecColor = setGreenVal;
145
- } else if (specColor === _constants.RGB_COLORS_MAP.BLUT) {
167
+ } else if (specColor === RGB_COLORS_MAP.BLUE) {
146
168
  val = blueVal;
147
169
  setSpecColor = setBlueVal;
148
170
  }
149
- if (!val || val < 0 || val > 255) {
171
+ if ((0, _dtableUtils.isEmpty)(val) || val < 0 || val > 255) {
150
172
  setSpecColor(value[specColor]);
151
173
  return;
152
174
  }
@@ -162,7 +184,7 @@ const DTableColorPicker = props => {
162
184
  props.onSubmit(submitHex);
163
185
  };
164
186
  const onAlphaInputBlur = () => {
165
- if (!alphaVal || alphaVal < 0 || alphaVal > 100) {
187
+ if ((0, _dtableUtils.isEmpty)(alphaVal) || alphaVal < 0 || alphaVal > 100) {
166
188
  setAlphaVal((0, _utils.toPercentage)(value.a));
167
189
  return;
168
190
  }
@@ -180,8 +202,7 @@ const DTableColorPicker = props => {
180
202
  }
181
203
  };
182
204
  const onSelectDefaultColor = color => {
183
- const hexVal = color.slice(1);
184
- const rgba = (0, _utils.hexToRgba)(hexVal);
205
+ const rgba = (0, _utils.hexToRgba)(color);
185
206
  const {
186
207
  r,
187
208
  g,
@@ -189,35 +210,34 @@ const DTableColorPicker = props => {
189
210
  a
190
211
  } = rgba;
191
212
  const alphaVal = (0, _utils.toPercentage)(a);
192
- if (colorMode === _constants.COLOR_PICKER_MODE.HEX) {
193
- setHexVal(hexVal);
194
- } else {
213
+ if (colorMode === COLOR_PICKER_MODE.RGBA) {
195
214
  setRedVal(r);
196
215
  setGreenVal(g);
197
216
  setBlueVal(b);
198
217
  }
218
+ setHexVal(color.slice(1, 7));
199
219
  setAlphaVal(alphaVal);
200
220
  updateValue(rgba);
201
221
  };
202
222
  const onClosePopover = () => {
203
- if (storageKey) {
204
- if (currentUsedColors.length >= 8) currentUsedColors.pop();
205
- const hex = (0, _utils.rgbaToHex)(value);
206
- if (!currentUsedColors.includes(hex)) {
207
- currentUsedColors.unshift(hex);
208
- window.localStorage.setItem(storageKey, JSON.stringify(currentUsedColors));
209
- }
223
+ if (currentUsedColors.length >= 8) currentUsedColors.pop();
224
+ const hex = (0, _utils.rgbaToHex)(value);
225
+ if (!currentUsedColors.includes(hex)) {
226
+ currentUsedColors.unshift(hex);
227
+ window.localStorage.setItem(LOCAL_STORAGE_KEY, JSON.stringify(currentUsedColors));
210
228
  }
211
229
  onToggle();
212
230
  };
213
231
  const renderDefaultContainer = () => {
232
+ const colors = defaultColors ? defaultColors.slice(0, 8) : DEFAULT_COLORS;
214
233
  return /*#__PURE__*/_react.default.createElement("div", {
215
234
  className: "default-color-setting"
216
235
  }, /*#__PURE__*/_react.default.createElement("span", null, (0, _lang.getLocale)('Default')), /*#__PURE__*/_react.default.createElement("div", {
217
236
  className: "default-colors-container d-flex mt-2 mb-2"
218
- }, (defaultColors || _constants.DEFAULT_COLORS).map((color, index) => {
237
+ }, colors.map((color, index) => {
238
+ const isLight = (0, _utils.isLightColor)(color);
219
239
  return /*#__PURE__*/_react.default.createElement("div", {
220
- className: "color-item mr-2",
240
+ className: "color-item mr-2 ".concat(isLight ? '' : 'dark'),
221
241
  onClick: () => onSelectDefaultColor(color),
222
242
  key: "default-color-".concat(index)
223
243
  }, /*#__PURE__*/_react.default.createElement("span", {
@@ -225,7 +245,7 @@ const DTableColorPicker = props => {
225
245
  style: {
226
246
  backgroundColor: color
227
247
  }
228
- }, color === "#".concat(hexVal) && !currentUsedColors.includes(color) && alphaVal === 100 && /*#__PURE__*/_react.default.createElement("i", {
248
+ }, color === "".concat((0, _utils.rgbaToHex)(value)) && alphaVal === 100 && /*#__PURE__*/_react.default.createElement("i", {
229
249
  className: "dtable-icon-color-check dtable-font dtable-icon-check-mark"
230
250
  })));
231
251
  })));
@@ -238,11 +258,11 @@ const DTableColorPicker = props => {
238
258
  }), /*#__PURE__*/_react.default.createElement("div", {
239
259
  className: "color-setting d-flex align-items-center ".concat(colorMode)
240
260
  }, /*#__PURE__*/_react.default.createElement("span", {
241
- className: "mode-btn d-flex"
242
- }, colorMode === _constants.COLOR_PICKER_MODE.HEX ? 'HEX' : 'RGB', /*#__PURE__*/_react.default.createElement("i", {
243
- onClick: onChangeMode,
261
+ className: "mode-btn d-flex",
262
+ onClick: onChangeMode
263
+ }, colorMode === COLOR_PICKER_MODE.HEX ? 'HEX' : 'RGB', /*#__PURE__*/_react.default.createElement("i", {
244
264
  className: "dtable-font dtable-icon-right"
245
- })), colorMode === _constants.COLOR_PICKER_MODE.HEX ? renderHexContainer() : renderRgbContainer(), /*#__PURE__*/_react.default.createElement(_reactstrap.Input, {
265
+ })), colorMode === COLOR_PICKER_MODE.HEX ? renderHexContainer() : renderRgbContainer(), /*#__PURE__*/_react.default.createElement(_reactstrap.Input, {
246
266
  className: "alpha-input",
247
267
  type: "text",
248
268
  value: alphaVal + '%',
@@ -270,26 +290,26 @@ const DTableColorPicker = props => {
270
290
  className: "rgb-input",
271
291
  type: "text",
272
292
  value: redVal,
273
- onBlur: () => onRgbInputBlur(_constants.RGB_COLORS_MAP.RED),
274
- onChange: e => onChangeRgb(e, _constants.RGB_COLORS_MAP.RED)
293
+ onBlur: () => onRgbInputBlur(RGB_COLORS_MAP.RED),
294
+ onChange: e => onChangeRgb(e, RGB_COLORS_MAP.RED)
275
295
  }), /*#__PURE__*/_react.default.createElement("span", null, "G"), /*#__PURE__*/_react.default.createElement(_reactstrap.Input, {
276
296
  className: "rgb-input",
277
297
  type: "text",
278
298
  value: greenVal,
279
- onBlur: () => onRgbInputBlur(_constants.RGB_COLORS_MAP.GREEN),
280
- onChange: e => onChangeRgb(e, _constants.RGB_COLORS_MAP.GREEN)
299
+ onBlur: () => onRgbInputBlur(RGB_COLORS_MAP.GREEN),
300
+ onChange: e => onChangeRgb(e, RGB_COLORS_MAP.GREEN)
281
301
  }), /*#__PURE__*/_react.default.createElement("span", null, "B"), /*#__PURE__*/_react.default.createElement(_reactstrap.Input, {
282
302
  className: "rgb-input",
283
303
  type: "text",
284
304
  value: blueVal,
285
- onBlur: () => onRgbInputBlur(_constants.RGB_COLORS_MAP.BLUT),
286
- onChange: e => onChangeRgb(e, _constants.RGB_COLORS_MAP.BLUT)
305
+ onBlur: () => onRgbInputBlur(RGB_COLORS_MAP.BLUE),
306
+ onChange: e => onChangeRgb(e, RGB_COLORS_MAP.BLUE)
287
307
  }));
288
308
  };
289
309
  const renderUsedContainer = () => {
290
310
  return /*#__PURE__*/_react.default.createElement("div", {
291
311
  className: "current-used-container mt-2"
292
- }, /*#__PURE__*/_react.default.createElement("span", null, (0, _lang.getLocale)('Used')), /*#__PURE__*/_react.default.createElement("div", {
312
+ }, /*#__PURE__*/_react.default.createElement("span", null, (0, _lang.getLocale)('Recently_used')), /*#__PURE__*/_react.default.createElement("div", {
293
313
  className: "current-used-colors d-flex mt-2"
294
314
  }, currentUsedColors.length > 0 ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, currentUsedColors.map((color, index) => {
295
315
  const isLight = (0, _utils.isLightColor)(color);
@@ -302,7 +322,7 @@ const DTableColorPicker = props => {
302
322
  style: {
303
323
  backgroundColor: color
304
324
  }
305
- }, color === "#".concat(hexVal) && /*#__PURE__*/_react.default.createElement("i", {
325
+ }, color === "".concat((0, _utils.rgbaToHex)(value)) && /*#__PURE__*/_react.default.createElement("i", {
306
326
  className: "dtable-icon-color-check dtable-font dtable-icon-check-mark"
307
327
  })));
308
328
  })) : /*#__PURE__*/_react.default.createElement("div", {
@@ -313,9 +333,10 @@ const DTableColorPicker = props => {
313
333
  onClickOutside: onClosePopover
314
334
  }, /*#__PURE__*/_react.default.createElement("div", {
315
335
  style: popoverStyle,
336
+ ref: colorPickerRef,
316
337
  className: "dtable-color-picker"
317
338
  }, renderDefaultContainer(), renderCustomContainer(), renderUsedContainer()));
318
- };
339
+ });
319
340
  DTableColorPicker.defaultProps = {
320
341
  color: '#ffffff'
321
342
  };
@@ -12,8 +12,7 @@ const hexToRgba = color => {
12
12
  let g;
13
13
  let b;
14
14
  let a = 1;
15
- let hex = color;
16
- hex = hex.replace(/^#/, '');
15
+ const hex = color.replace(/^#/, '');
17
16
  if (hex.length === 6 || hex.length === 8) {
18
17
  r = parseInt(hex.slice(0, 2), 16);
19
18
  g = parseInt(hex.slice(2, 4), 16);
package/lib/locals/de.js CHANGED
@@ -98,6 +98,6 @@ const de = {
98
98
  "Select_department": "Bereich auswählen",
99
99
  "Default": "Standard",
100
100
  "Custom": "Benutzerdefiniert",
101
- "Used": "Verwendet"
101
+ "Recently_used": "Kürzlich benutzt"
102
102
  };
103
103
  var _default = exports.default = de;
package/lib/locals/en.js CHANGED
@@ -98,6 +98,6 @@ const en = {
98
98
  "Select_department": "Select department",
99
99
  "Default": "Default",
100
100
  "Custom": "Custom",
101
- "Used": "Used"
101
+ "Recently_used": "Recently used"
102
102
  };
103
103
  var _default = exports.default = en;
package/lib/locals/es.js CHANGED
@@ -98,6 +98,6 @@ const es = {
98
98
  "Select_department": "Select department",
99
99
  "Default": "Incumplimiento de contrato",
100
100
  "Custom": "Costumbres",
101
- "Used": "Acostumbrado a"
101
+ "Recently_used": "Recientemente usado"
102
102
  };
103
103
  var _default = exports.default = es;
package/lib/locals/fr.js CHANGED
@@ -98,6 +98,6 @@ const fr = {
98
98
  "Select_department": "Sélectionner un département",
99
99
  "Default": "Violation",
100
100
  "Custom": "Les coutumes",
101
- "Used": "Habitué à"
101
+ "Recently_used": "Utilisé récemment"
102
102
  };
103
103
  var _default = exports.default = fr;
package/lib/locals/pt.js CHANGED
@@ -98,6 +98,6 @@ const pt = {
98
98
  "Select_department": "Select department",
99
99
  "Default": "por omissão",
100
100
  "Custom": "personalizado",
101
- "Used": "usado"
101
+ "Recently_used": "usado recentemente"
102
102
  };
103
103
  var _default = exports.default = pt;
package/lib/locals/ru.js CHANGED
@@ -98,6 +98,6 @@ const ru = {
98
98
  "Select_department": "Select department",
99
99
  "Default": "Нарушение обязательств",
100
100
  "Custom": "Обычаи",
101
- "Used": "Привыкнуть"
101
+ "Recently_used": "Недавно использованный"
102
102
  };
103
103
  var _default = exports.default = ru;
@@ -98,6 +98,6 @@ const zh_CN = {
98
98
  "Select_department": "选择部门",
99
99
  "Default": "默认",
100
100
  "Custom": "自定义",
101
- "Used": "使用过"
101
+ "Recently_used": "最近使用"
102
102
  };
103
103
  var _default = exports.default = zh_CN;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dtable-ui-component",
3
- "version": "5.0.21-alpha.3",
3
+ "version": "5.0.21-alpha.5",
4
4
  "main": "./lib/index.js",
5
5
  "dependencies": {
6
6
  "@seafile/react-image-lightbox": "2.0.5",
@@ -1,16 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.RGB_COLORS_MAP = exports.DEFAULT_COLORS = exports.COLOR_PICKER_MODE = void 0;
7
- const DEFAULT_COLORS = exports.DEFAULT_COLORS = ['#ffffff', '#f5f5f5', '#eef6f9', '#deffe6', '#def7c4', '#fefdb5', '#feebb6', '#ffdde5'];
8
- const COLOR_PICKER_MODE = exports.COLOR_PICKER_MODE = {
9
- HEX: 'hex',
10
- RGBA: 'rgba'
11
- };
12
- const RGB_COLORS_MAP = exports.RGB_COLORS_MAP = {
13
- RED: 'r',
14
- GREEN: 'g',
15
- BLUT: 'b'
16
- };