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.
- package/lib/DTableColorPicker/index.css +9 -7
- package/lib/DTableColorPicker/index.js +68 -47
- package/lib/DTableColorPicker/{utils/index.js → utils.js} +1 -2
- package/lib/locals/de.js +1 -1
- package/lib/locals/en.js +1 -1
- package/lib/locals/es.js +1 -1
- package/lib/locals/fr.js +1 -1
- package/lib/locals/pt.js +1 -1
- package/lib/locals/ru.js +1 -1
- package/lib/locals/zh-CN.js +1 -1
- package/package.json +1 -1
- package/lib/DTableColorPicker/constants/index.js +0 -16
|
@@ -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
|
-
|
|
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:
|
|
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
|
|
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)(
|
|
33
|
-
const
|
|
34
|
-
let currentUsedColors =
|
|
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')
|
|
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 ===
|
|
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 ===
|
|
62
|
-
newMode =
|
|
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 =
|
|
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
|
|
142
|
+
case RGB_COLORS_MAP.RED:
|
|
121
143
|
{
|
|
122
144
|
setRedVal(newVal);
|
|
123
145
|
break;
|
|
124
146
|
}
|
|
125
|
-
case
|
|
147
|
+
case RGB_COLORS_MAP.GREEN:
|
|
126
148
|
{
|
|
127
149
|
setGreenVal(newVal);
|
|
128
150
|
break;
|
|
129
151
|
}
|
|
130
|
-
case
|
|
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 ===
|
|
164
|
+
if (specColor === RGB_COLORS_MAP.GREEN) {
|
|
143
165
|
val = greenVal;
|
|
144
166
|
setSpecColor = setGreenVal;
|
|
145
|
-
} else if (specColor ===
|
|
167
|
+
} else if (specColor === RGB_COLORS_MAP.BLUE) {
|
|
146
168
|
val = blueVal;
|
|
147
169
|
setSpecColor = setBlueVal;
|
|
148
170
|
}
|
|
149
|
-
if (
|
|
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 (
|
|
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
|
|
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 ===
|
|
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 (
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
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
|
-
},
|
|
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 === "
|
|
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
|
-
|
|
243
|
-
|
|
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 ===
|
|
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(
|
|
274
|
-
onChange: e => onChangeRgb(e,
|
|
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(
|
|
280
|
-
onChange: e => onChangeRgb(e,
|
|
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(
|
|
286
|
-
onChange: e => onChangeRgb(e,
|
|
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)('
|
|
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 === "
|
|
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
|
-
|
|
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
package/lib/locals/en.js
CHANGED
package/lib/locals/es.js
CHANGED
package/lib/locals/fr.js
CHANGED
package/lib/locals/pt.js
CHANGED
package/lib/locals/ru.js
CHANGED
package/lib/locals/zh-CN.js
CHANGED
package/package.json
CHANGED
|
@@ -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
|
-
};
|