@chayns-components/color-picker 5.0.0-beta.1000
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/LICENSE +21 -0
- package/README.md +34 -0
- package/lib/cjs/api/color/get.js +33 -0
- package/lib/cjs/api/color/get.js.map +1 -0
- package/lib/cjs/api/color/put.js +37 -0
- package/lib/cjs/api/color/put.js.map +1 -0
- package/lib/cjs/components/ColorPickerProvider.js +96 -0
- package/lib/cjs/components/ColorPickerProvider.js.map +1 -0
- package/lib/cjs/components/color-picker/ColorPicker.js +43 -0
- package/lib/cjs/components/color-picker/ColorPicker.js.map +1 -0
- package/lib/cjs/components/color-picker/ColorPicker.styles.js +12 -0
- package/lib/cjs/components/color-picker/ColorPicker.styles.js.map +1 -0
- package/lib/cjs/components/color-picker/color-picker-wrapper/ColorPickerWrapper.js +50 -0
- package/lib/cjs/components/color-picker/color-picker-wrapper/ColorPickerWrapper.js.map +1 -0
- package/lib/cjs/components/color-picker/color-picker-wrapper/ColorPickerWrapper.styles.js +64 -0
- package/lib/cjs/components/color-picker/color-picker-wrapper/ColorPickerWrapper.styles.js.map +1 -0
- package/lib/cjs/components/color-picker-popup/ColorPickerPopup.js +32 -0
- package/lib/cjs/components/color-picker-popup/ColorPickerPopup.js.map +1 -0
- package/lib/cjs/components/color-picker-popup/ColorPickerPopup.styles.js +13 -0
- package/lib/cjs/components/color-picker-popup/ColorPickerPopup.styles.js.map +1 -0
- package/lib/cjs/components/color-picker-popup/color-area/ColorArea.js +246 -0
- package/lib/cjs/components/color-picker-popup/color-area/ColorArea.js.map +1 -0
- package/lib/cjs/components/color-picker-popup/color-area/ColorArea.styles.js +45 -0
- package/lib/cjs/components/color-picker-popup/color-area/ColorArea.styles.js.map +1 -0
- package/lib/cjs/components/color-picker-popup/more-options/MoreOptions.js +90 -0
- package/lib/cjs/components/color-picker-popup/more-options/MoreOptions.js.map +1 -0
- package/lib/cjs/components/color-picker-popup/more-options/MoreOptions.styles.js +35 -0
- package/lib/cjs/components/color-picker-popup/more-options/MoreOptions.styles.js.map +1 -0
- package/lib/cjs/components/color-picker-popup/preset-colors/PresetColors.js +148 -0
- package/lib/cjs/components/color-picker-popup/preset-colors/PresetColors.js.map +1 -0
- package/lib/cjs/components/color-picker-popup/preset-colors/PresetColors.styles.js +15 -0
- package/lib/cjs/components/color-picker-popup/preset-colors/PresetColors.styles.js.map +1 -0
- package/lib/cjs/components/color-picker-popup/preset-colors/preset-button/PresetButton.js +47 -0
- package/lib/cjs/components/color-picker-popup/preset-colors/preset-button/PresetButton.js.map +1 -0
- package/lib/cjs/components/color-picker-popup/preset-colors/preset-button/PresetButton.styles.js +28 -0
- package/lib/cjs/components/color-picker-popup/preset-colors/preset-button/PresetButton.styles.js.map +1 -0
- package/lib/cjs/components/color-picker-popup/preset-colors/preset-color/PresetColor.js +50 -0
- package/lib/cjs/components/color-picker-popup/preset-colors/preset-color/PresetColor.js.map +1 -0
- package/lib/cjs/components/color-picker-popup/preset-colors/preset-color/PresetColor.styles.js +44 -0
- package/lib/cjs/components/color-picker-popup/preset-colors/preset-color/PresetColor.styles.js.map +1 -0
- package/lib/cjs/components/color-picker-popup/sliders/Sliders.js +75 -0
- package/lib/cjs/components/color-picker-popup/sliders/Sliders.js.map +1 -0
- package/lib/cjs/components/color-picker-popup/sliders/Sliders.styles.js +20 -0
- package/lib/cjs/components/color-picker-popup/sliders/Sliders.styles.js.map +1 -0
- package/lib/cjs/components/color-picker-popup/sliders/color-preview/ColorPreview.js +22 -0
- package/lib/cjs/components/color-picker-popup/sliders/color-preview/ColorPreview.js.map +1 -0
- package/lib/cjs/components/color-picker-popup/sliders/color-preview/ColorPreview.styles.js +46 -0
- package/lib/cjs/components/color-picker-popup/sliders/color-preview/ColorPreview.styles.js.map +1 -0
- package/lib/cjs/components/hue-slider/HueSlider.js +135 -0
- package/lib/cjs/components/hue-slider/HueSlider.js.map +1 -0
- package/lib/cjs/components/hue-slider/HueSlider.styles.js +88 -0
- package/lib/cjs/components/hue-slider/HueSlider.styles.js.map +1 -0
- package/lib/cjs/components/transparency-slider/TransparencySlider.js +122 -0
- package/lib/cjs/components/transparency-slider/TransparencySlider.js.map +1 -0
- package/lib/cjs/components/transparency-slider/TransparencySlider.styles.js +123 -0
- package/lib/cjs/components/transparency-slider/TransparencySlider.styles.js.map +1 -0
- package/lib/cjs/constants/color.js +72 -0
- package/lib/cjs/constants/color.js.map +1 -0
- package/lib/cjs/index.js +48 -0
- package/lib/cjs/index.js.map +1 -0
- package/lib/cjs/types/colorPicker.js +2 -0
- package/lib/cjs/types/colorPicker.js.map +1 -0
- package/lib/cjs/utils/color.js +245 -0
- package/lib/cjs/utils/color.js.map +1 -0
- package/lib/esm/api/color/get.js +26 -0
- package/lib/esm/api/color/get.js.map +1 -0
- package/lib/esm/api/color/put.js +30 -0
- package/lib/esm/api/color/put.js.map +1 -0
- package/lib/esm/components/ColorPickerProvider.js +89 -0
- package/lib/esm/components/ColorPickerProvider.js.map +1 -0
- package/lib/esm/components/color-picker/ColorPicker.js +39 -0
- package/lib/esm/components/color-picker/ColorPicker.js.map +1 -0
- package/lib/esm/components/color-picker/ColorPicker.styles.js +5 -0
- package/lib/esm/components/color-picker/ColorPicker.styles.js.map +1 -0
- package/lib/esm/components/color-picker/color-picker-wrapper/ColorPickerWrapper.js +42 -0
- package/lib/esm/components/color-picker/color-picker-wrapper/ColorPickerWrapper.js.map +1 -0
- package/lib/esm/components/color-picker/color-picker-wrapper/ColorPickerWrapper.styles.js +69 -0
- package/lib/esm/components/color-picker/color-picker-wrapper/ColorPickerWrapper.styles.js.map +1 -0
- package/lib/esm/components/color-picker-popup/ColorPickerPopup.js +28 -0
- package/lib/esm/components/color-picker-popup/ColorPickerPopup.js.map +1 -0
- package/lib/esm/components/color-picker-popup/ColorPickerPopup.styles.js +6 -0
- package/lib/esm/components/color-picker-popup/ColorPickerPopup.styles.js.map +1 -0
- package/lib/esm/components/color-picker-popup/color-area/ColorArea.js +237 -0
- package/lib/esm/components/color-picker-popup/color-area/ColorArea.js.map +1 -0
- package/lib/esm/components/color-picker-popup/color-area/ColorArea.styles.js +38 -0
- package/lib/esm/components/color-picker-popup/color-area/ColorArea.styles.js.map +1 -0
- package/lib/esm/components/color-picker-popup/more-options/MoreOptions.js +82 -0
- package/lib/esm/components/color-picker-popup/more-options/MoreOptions.js.map +1 -0
- package/lib/esm/components/color-picker-popup/more-options/MoreOptions.styles.js +37 -0
- package/lib/esm/components/color-picker-popup/more-options/MoreOptions.styles.js.map +1 -0
- package/lib/esm/components/color-picker-popup/preset-colors/PresetColors.js +152 -0
- package/lib/esm/components/color-picker-popup/preset-colors/PresetColors.js.map +1 -0
- package/lib/esm/components/color-picker-popup/preset-colors/PresetColors.styles.js +8 -0
- package/lib/esm/components/color-picker-popup/preset-colors/PresetColors.styles.js.map +1 -0
- package/lib/esm/components/color-picker-popup/preset-colors/preset-button/PresetButton.js +40 -0
- package/lib/esm/components/color-picker-popup/preset-colors/preset-button/PresetButton.js.map +1 -0
- package/lib/esm/components/color-picker-popup/preset-colors/preset-button/PresetButton.styles.js +27 -0
- package/lib/esm/components/color-picker-popup/preset-colors/preset-button/PresetButton.styles.js.map +1 -0
- package/lib/esm/components/color-picker-popup/preset-colors/preset-color/PresetColor.js +43 -0
- package/lib/esm/components/color-picker-popup/preset-colors/preset-color/PresetColor.js.map +1 -0
- package/lib/esm/components/color-picker-popup/preset-colors/preset-color/PresetColor.styles.js +43 -0
- package/lib/esm/components/color-picker-popup/preset-colors/preset-color/PresetColor.styles.js.map +1 -0
- package/lib/esm/components/color-picker-popup/sliders/Sliders.js +67 -0
- package/lib/esm/components/color-picker-popup/sliders/Sliders.js.map +1 -0
- package/lib/esm/components/color-picker-popup/sliders/Sliders.styles.js +13 -0
- package/lib/esm/components/color-picker-popup/sliders/Sliders.styles.js.map +1 -0
- package/lib/esm/components/color-picker-popup/sliders/color-preview/ColorPreview.js +14 -0
- package/lib/esm/components/color-picker-popup/sliders/color-preview/ColorPreview.js.map +1 -0
- package/lib/esm/components/color-picker-popup/sliders/color-preview/ColorPreview.styles.js +42 -0
- package/lib/esm/components/color-picker-popup/sliders/color-preview/ColorPreview.styles.js.map +1 -0
- package/lib/esm/components/hue-slider/HueSlider.js +128 -0
- package/lib/esm/components/hue-slider/HueSlider.js.map +1 -0
- package/lib/esm/components/hue-slider/HueSlider.styles.js +84 -0
- package/lib/esm/components/hue-slider/HueSlider.styles.js.map +1 -0
- package/lib/esm/components/transparency-slider/TransparencySlider.js +115 -0
- package/lib/esm/components/transparency-slider/TransparencySlider.js.map +1 -0
- package/lib/esm/components/transparency-slider/TransparencySlider.styles.js +125 -0
- package/lib/esm/components/transparency-slider/TransparencySlider.styles.js.map +1 -0
- package/lib/esm/constants/color.js +66 -0
- package/lib/esm/constants/color.js.map +1 -0
- package/lib/esm/index.js +6 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/types/colorPicker.js +2 -0
- package/lib/esm/types/colorPicker.js.map +1 -0
- package/lib/esm/utils/color.js +229 -0
- package/lib/esm/utils/color.js.map +1 -0
- package/lib/types/api/color/get.d.ts +1 -0
- package/lib/types/api/color/put.d.ts +2 -0
- package/lib/types/components/ColorPickerProvider.d.ts +35 -0
- package/lib/types/components/color-picker/ColorPicker.d.ts +61 -0
- package/lib/types/components/color-picker/ColorPicker.styles.d.ts +1 -0
- package/lib/types/components/color-picker/color-picker-wrapper/ColorPickerWrapper.d.ts +20 -0
- package/lib/types/components/color-picker/color-picker-wrapper/ColorPickerWrapper.styles.d.ts +18 -0
- package/lib/types/components/color-picker-popup/ColorPickerPopup.d.ts +16 -0
- package/lib/types/components/color-picker-popup/ColorPickerPopup.styles.d.ts +1 -0
- package/lib/types/components/color-picker-popup/color-area/ColorArea.d.ts +6 -0
- package/lib/types/components/color-picker-popup/color-area/ColorArea.styles.d.ts +267 -0
- package/lib/types/components/color-picker-popup/more-options/MoreOptions.d.ts +6 -0
- package/lib/types/components/color-picker-popup/more-options/MoreOptions.styles.d.ts +9 -0
- package/lib/types/components/color-picker-popup/preset-colors/PresetColors.d.ts +13 -0
- package/lib/types/components/color-picker-popup/preset-colors/PresetColors.styles.d.ts +1 -0
- package/lib/types/components/color-picker-popup/preset-colors/preset-button/PresetButton.d.ts +13 -0
- package/lib/types/components/color-picker-popup/preset-colors/preset-button/PresetButton.styles.d.ts +6 -0
- package/lib/types/components/color-picker-popup/preset-colors/preset-color/PresetColor.d.ts +10 -0
- package/lib/types/components/color-picker-popup/preset-colors/preset-color/PresetColor.styles.d.ts +12 -0
- package/lib/types/components/color-picker-popup/sliders/Sliders.d.ts +9 -0
- package/lib/types/components/color-picker-popup/sliders/Sliders.styles.d.ts +2 -0
- package/lib/types/components/color-picker-popup/sliders/color-preview/ColorPreview.d.ts +6 -0
- package/lib/types/components/color-picker-popup/sliders/color-preview/ColorPreview.styles.d.ts +10 -0
- package/lib/types/components/hue-slider/HueSlider.d.ts +25 -0
- package/lib/types/components/hue-slider/HueSlider.styles.d.ts +15 -0
- package/lib/types/components/transparency-slider/TransparencySlider.d.ts +24 -0
- package/lib/types/components/transparency-slider/TransparencySlider.styles.d.ts +24 -0
- package/lib/types/constants/color.d.ts +3 -0
- package/lib/types/index.d.ts +6 -0
- package/lib/types/types/colorPicker.d.ts +27 -0
- package/lib/types/utils/color.d.ts +32 -0
- package/package.json +86 -0
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _ColorArea = require("./ColorArea.styles");
|
|
9
|
+
var _colors = require("@chayns/colors");
|
|
10
|
+
var _chaynsApi = require("chayns-api");
|
|
11
|
+
var _framerMotion = require("framer-motion");
|
|
12
|
+
var _color = require("../../../utils/color");
|
|
13
|
+
var _ColorPickerProvider = require("../../ColorPickerProvider");
|
|
14
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
15
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
16
|
+
const ColorArea = () => {
|
|
17
|
+
const {
|
|
18
|
+
selectedColor,
|
|
19
|
+
updateSelectedColor,
|
|
20
|
+
updateIsPresetColor,
|
|
21
|
+
isPresetColor,
|
|
22
|
+
shouldGetCoordinates,
|
|
23
|
+
canGetColorFromArea,
|
|
24
|
+
updateShouldGetCoordinates,
|
|
25
|
+
updateShouldCallOnSelect,
|
|
26
|
+
hueColor
|
|
27
|
+
} = (0, _react.useContext)(_ColorPickerProvider.ColorPickerContext);
|
|
28
|
+
const [opacity, setOpacity] = (0, _react.useState)(1);
|
|
29
|
+
const [scale, setScale] = (0, _react.useState)({
|
|
30
|
+
scaleX: 0,
|
|
31
|
+
scaleY: 0
|
|
32
|
+
});
|
|
33
|
+
const isPresetColorRef = (0, _react.useRef)(false);
|
|
34
|
+
const shouldGetCoordinatesRef = (0, _react.useRef)(false);
|
|
35
|
+
const canDrag = (0, _react.useRef)(false);
|
|
36
|
+
const canvasRef = (0, _react.useRef)(null);
|
|
37
|
+
const pseudoRef = (0, _react.useRef)(null);
|
|
38
|
+
const dragControls = (0, _framerMotion.useDragControls)();
|
|
39
|
+
const x = (0, _framerMotion.useMotionValue)(0);
|
|
40
|
+
const y = (0, _framerMotion.useMotionValue)(0);
|
|
41
|
+
(0, _react.useEffect)(() => {
|
|
42
|
+
isPresetColorRef.current = isPresetColor ?? false;
|
|
43
|
+
}, [isPresetColor]);
|
|
44
|
+
(0, _react.useEffect)(() => {
|
|
45
|
+
shouldGetCoordinatesRef.current = shouldGetCoordinates ?? true;
|
|
46
|
+
}, [shouldGetCoordinates]);
|
|
47
|
+
(0, _react.useEffect)(() => {
|
|
48
|
+
if (selectedColor) {
|
|
49
|
+
const {
|
|
50
|
+
a
|
|
51
|
+
} = (0, _color.extractRgbValues)(selectedColor);
|
|
52
|
+
setOpacity(a);
|
|
53
|
+
}
|
|
54
|
+
}, [selectedColor]);
|
|
55
|
+
(0, _react.useEffect)(() => {
|
|
56
|
+
const canvas = canvasRef.current;
|
|
57
|
+
if (!canvas) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
const rect = canvas.getBoundingClientRect();
|
|
61
|
+
const scaleX = canvas.width / rect.width;
|
|
62
|
+
const scaleY = canvas.height / rect.height;
|
|
63
|
+
setScale({
|
|
64
|
+
scaleX,
|
|
65
|
+
scaleY
|
|
66
|
+
});
|
|
67
|
+
}, []);
|
|
68
|
+
const setColor = (0, _react.useCallback)(() => {
|
|
69
|
+
const xCord = x.get();
|
|
70
|
+
const yCord = y.get();
|
|
71
|
+
if (typeof updateSelectedColor === 'function') {
|
|
72
|
+
const color = (0, _color.getColorFromCoordinates)({
|
|
73
|
+
coordinates: {
|
|
74
|
+
x: xCord,
|
|
75
|
+
y: yCord
|
|
76
|
+
},
|
|
77
|
+
canvas: canvasRef,
|
|
78
|
+
opacity,
|
|
79
|
+
scale
|
|
80
|
+
});
|
|
81
|
+
if (color === 'transparent') {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
updateSelectedColor(color);
|
|
85
|
+
}
|
|
86
|
+
}, [opacity, scale, updateSelectedColor, x, y]);
|
|
87
|
+
(0, _react.useEffect)(() => {
|
|
88
|
+
var _canvasRef$current;
|
|
89
|
+
const ctx = (_canvasRef$current = canvasRef.current) === null || _canvasRef$current === void 0 ? void 0 : _canvasRef$current.getContext('2d');
|
|
90
|
+
if (!ctx) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
const hsv = (0, _color.rgbToHsv)(hueColor);
|
|
94
|
+
const hex = (0, _colors.hsvToHex)({
|
|
95
|
+
h: (hsv === null || hsv === void 0 ? void 0 : hsv.h) ?? 1,
|
|
96
|
+
s: 1,
|
|
97
|
+
v: 1
|
|
98
|
+
});
|
|
99
|
+
const colorGradiant = ctx.createLinearGradient(0, 0, 300, 0);
|
|
100
|
+
colorGradiant.addColorStop(0, '#fff');
|
|
101
|
+
colorGradiant.addColorStop(1, hex ?? 'red');
|
|
102
|
+
ctx.fillStyle = colorGradiant;
|
|
103
|
+
ctx.fillRect(0, 0, 300, 150);
|
|
104
|
+
const transparentGradiant = ctx.createLinearGradient(0, 0, 0, 150);
|
|
105
|
+
transparentGradiant.addColorStop(0, 'transparent');
|
|
106
|
+
transparentGradiant.addColorStop(1, '#000');
|
|
107
|
+
ctx.fillStyle = transparentGradiant;
|
|
108
|
+
ctx.fillRect(0, 0, 300, 150);
|
|
109
|
+
if (isPresetColorRef.current) {
|
|
110
|
+
if (typeof updateIsPresetColor === 'function') {
|
|
111
|
+
updateIsPresetColor(false);
|
|
112
|
+
}
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
if (canGetColorFromArea) {
|
|
116
|
+
setColor();
|
|
117
|
+
}
|
|
118
|
+
}, [canGetColorFromArea, hueColor, setColor, updateIsPresetColor]);
|
|
119
|
+
(0, _react.useEffect)(() => {
|
|
120
|
+
if (selectedColor && shouldGetCoordinatesRef.current) {
|
|
121
|
+
const cords = (0, _color.getCoordinatesFromColor)({
|
|
122
|
+
color: selectedColor,
|
|
123
|
+
canvas: canvasRef,
|
|
124
|
+
tolerance: 10
|
|
125
|
+
});
|
|
126
|
+
if (cords) {
|
|
127
|
+
x.set(cords.x);
|
|
128
|
+
y.set(cords.y);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}, [selectedColor, x, y]);
|
|
132
|
+
const handleDrag = (0, _react.useCallback)(() => {
|
|
133
|
+
setColor();
|
|
134
|
+
}, [setColor]);
|
|
135
|
+
const handleClick = (0, _react.useCallback)(event => {
|
|
136
|
+
if (typeof updateShouldGetCoordinates === 'function') {
|
|
137
|
+
updateShouldGetCoordinates(false);
|
|
138
|
+
}
|
|
139
|
+
const {
|
|
140
|
+
left,
|
|
141
|
+
top
|
|
142
|
+
} = event.target.getBoundingClientRect();
|
|
143
|
+
x.set(event.clientX - left - 10);
|
|
144
|
+
y.set(event.clientY - top - 10);
|
|
145
|
+
setColor();
|
|
146
|
+
}, [setColor, updateShouldGetCoordinates, x, y]);
|
|
147
|
+
const handlePointerUp = (0, _react.useCallback)(() => {
|
|
148
|
+
canDrag.current = false;
|
|
149
|
+
void (0, _chaynsApi.setRefreshScrollEnabled)(true);
|
|
150
|
+
if (typeof updateShouldGetCoordinates === 'function') {
|
|
151
|
+
updateShouldGetCoordinates(true);
|
|
152
|
+
}
|
|
153
|
+
if (typeof updateShouldCallOnSelect === 'function') {
|
|
154
|
+
updateShouldCallOnSelect(true);
|
|
155
|
+
}
|
|
156
|
+
}, [updateShouldCallOnSelect, updateShouldGetCoordinates]);
|
|
157
|
+
const move = (0, _react.useCallback)((xCords, yCords) => {
|
|
158
|
+
let newXCords = xCords;
|
|
159
|
+
let newYCords = yCords;
|
|
160
|
+
switch (true) {
|
|
161
|
+
case xCords > 300:
|
|
162
|
+
newXCords = 300;
|
|
163
|
+
break;
|
|
164
|
+
case xCords < 0:
|
|
165
|
+
newXCords = 0;
|
|
166
|
+
break;
|
|
167
|
+
default:
|
|
168
|
+
break;
|
|
169
|
+
}
|
|
170
|
+
switch (true) {
|
|
171
|
+
case yCords > 150:
|
|
172
|
+
newYCords = 150;
|
|
173
|
+
break;
|
|
174
|
+
case yCords < 0:
|
|
175
|
+
newYCords = 0;
|
|
176
|
+
break;
|
|
177
|
+
default:
|
|
178
|
+
break;
|
|
179
|
+
}
|
|
180
|
+
x.set(newXCords);
|
|
181
|
+
y.set(newYCords);
|
|
182
|
+
setColor();
|
|
183
|
+
}, [setColor, x, y]);
|
|
184
|
+
const handleMouseMove = (0, _react.useCallback)(event => {
|
|
185
|
+
if (canDrag.current && pseudoRef.current) {
|
|
186
|
+
const {
|
|
187
|
+
left,
|
|
188
|
+
top
|
|
189
|
+
} = pseudoRef.current.getBoundingClientRect();
|
|
190
|
+
const xCords = event.clientX - left - 10;
|
|
191
|
+
const yCords = event.clientY - top - 10;
|
|
192
|
+
move(xCords, yCords);
|
|
193
|
+
}
|
|
194
|
+
}, [move]);
|
|
195
|
+
const handleTouchMove = (0, _react.useCallback)(event => {
|
|
196
|
+
if (canDrag.current && pseudoRef.current) {
|
|
197
|
+
event.preventDefault();
|
|
198
|
+
void (0, _chaynsApi.setRefreshScrollEnabled)(false);
|
|
199
|
+
const {
|
|
200
|
+
left,
|
|
201
|
+
top
|
|
202
|
+
} = pseudoRef.current.getBoundingClientRect();
|
|
203
|
+
const xCords = event.changedTouches[0] ? event.changedTouches[0].clientX - left - 10 : event.pageX;
|
|
204
|
+
const yCords = event.changedTouches[0] ? event.changedTouches[0].clientY - top - 10 : event.pageY;
|
|
205
|
+
move(xCords, yCords);
|
|
206
|
+
}
|
|
207
|
+
}, [move]);
|
|
208
|
+
const handleStartDrag = (0, _react.useCallback)(() => {
|
|
209
|
+
if (typeof updateShouldGetCoordinates === 'function') {
|
|
210
|
+
updateShouldGetCoordinates(false);
|
|
211
|
+
}
|
|
212
|
+
canDrag.current = true;
|
|
213
|
+
window.addEventListener('mousemove', handleMouseMove);
|
|
214
|
+
window.addEventListener('touchmove', handleTouchMove);
|
|
215
|
+
const endTouching = () => {
|
|
216
|
+
handlePointerUp();
|
|
217
|
+
window.removeEventListener('mousemove', handleMouseMove);
|
|
218
|
+
window.removeEventListener('touchmove', handleTouchMove);
|
|
219
|
+
window.removeEventListener('pointerup', endTouching);
|
|
220
|
+
window.removeEventListener('touchend', endTouching);
|
|
221
|
+
};
|
|
222
|
+
window.addEventListener('pointerup', endTouching);
|
|
223
|
+
window.addEventListener('touchend', endTouching);
|
|
224
|
+
}, [handleMouseMove, handlePointerUp, handleTouchMove, updateShouldGetCoordinates]);
|
|
225
|
+
return (0, _react.useMemo)(() => /*#__PURE__*/_react.default.createElement(_ColorArea.StyledColorArea, null, /*#__PURE__*/_react.default.createElement(_ColorArea.StyledColorAreaCanvas, {
|
|
226
|
+
ref: canvasRef
|
|
227
|
+
}), /*#__PURE__*/_react.default.createElement(_ColorArea.StyledColorAreaPseudo, {
|
|
228
|
+
ref: pseudoRef,
|
|
229
|
+
onPointerDown: handleStartDrag,
|
|
230
|
+
onClick: handleClick
|
|
231
|
+
}, /*#__PURE__*/_react.default.createElement(_ColorArea.StyledMotionColorAreaPointer, {
|
|
232
|
+
drag: true,
|
|
233
|
+
dragConstraints: pseudoRef,
|
|
234
|
+
style: {
|
|
235
|
+
x,
|
|
236
|
+
y
|
|
237
|
+
},
|
|
238
|
+
dragElastic: false,
|
|
239
|
+
dragMomentum: false,
|
|
240
|
+
dragControls: dragControls,
|
|
241
|
+
onDrag: handleDrag
|
|
242
|
+
}))), [dragControls, handleClick, handleDrag, handleStartDrag, x, y]);
|
|
243
|
+
};
|
|
244
|
+
ColorArea.displayName = 'ColorArea';
|
|
245
|
+
var _default = exports.default = ColorArea;
|
|
246
|
+
//# sourceMappingURL=ColorArea.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ColorArea.js","names":["_react","_interopRequireWildcard","require","_ColorArea","_colors","_chaynsApi","_framerMotion","_color","_ColorPickerProvider","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ColorArea","selectedColor","updateSelectedColor","updateIsPresetColor","isPresetColor","shouldGetCoordinates","canGetColorFromArea","updateShouldGetCoordinates","updateShouldCallOnSelect","hueColor","useContext","ColorPickerContext","opacity","setOpacity","useState","scale","setScale","scaleX","scaleY","isPresetColorRef","useRef","shouldGetCoordinatesRef","canDrag","canvasRef","pseudoRef","dragControls","useDragControls","x","useMotionValue","y","useEffect","current","extractRgbValues","canvas","rect","getBoundingClientRect","width","height","setColor","useCallback","xCord","yCord","color","getColorFromCoordinates","coordinates","_canvasRef$current","ctx","getContext","hsv","rgbToHsv","hex","hsvToHex","h","s","v","colorGradiant","createLinearGradient","addColorStop","fillStyle","fillRect","transparentGradiant","cords","getCoordinatesFromColor","tolerance","handleDrag","handleClick","event","left","top","target","clientX","clientY","handlePointerUp","setRefreshScrollEnabled","move","xCords","yCords","newXCords","newYCords","handleMouseMove","handleTouchMove","preventDefault","changedTouches","pageX","pageY","handleStartDrag","window","addEventListener","endTouching","removeEventListener","useMemo","createElement","StyledColorArea","StyledColorAreaCanvas","ref","StyledColorAreaPseudo","onPointerDown","onClick","StyledMotionColorAreaPointer","drag","dragConstraints","style","dragElastic","dragMomentum","onDrag","displayName","_default","exports"],"sources":["../../../../../src/components/color-picker-popup/color-area/ColorArea.tsx"],"sourcesContent":["import React, { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport {\n StyledColorArea,\n StyledColorAreaCanvas,\n StyledColorAreaPseudo,\n StyledMotionColorAreaPointer,\n} from './ColorArea.styles';\n\nimport { hsvToHex } from '@chayns/colors';\nimport { setRefreshScrollEnabled } from 'chayns-api';\nimport { useDragControls, useMotionValue } from 'framer-motion';\nimport type { Scale } from '../../../types/colorPicker';\nimport {\n extractRgbValues,\n getColorFromCoordinates,\n getCoordinatesFromColor,\n rgbToHsv,\n} from '../../../utils/color';\nimport { ColorPickerContext } from '../../ColorPickerProvider';\n\nconst ColorArea = () => {\n const {\n selectedColor,\n updateSelectedColor,\n updateIsPresetColor,\n isPresetColor,\n shouldGetCoordinates,\n canGetColorFromArea,\n updateShouldGetCoordinates,\n updateShouldCallOnSelect,\n hueColor,\n } = useContext(ColorPickerContext);\n\n const [opacity, setOpacity] = useState<number>(1);\n const [scale, setScale] = useState<Scale>({ scaleX: 0, scaleY: 0 });\n\n const isPresetColorRef = useRef(false);\n const shouldGetCoordinatesRef = useRef(false);\n const canDrag = useRef(false);\n const canvasRef = useRef<HTMLCanvasElement>(null);\n const pseudoRef = useRef<HTMLDivElement>(null);\n\n const dragControls = useDragControls();\n\n const x = useMotionValue(0);\n const y = useMotionValue(0);\n\n useEffect(() => {\n isPresetColorRef.current = isPresetColor ?? false;\n }, [isPresetColor]);\n\n useEffect(() => {\n shouldGetCoordinatesRef.current = shouldGetCoordinates ?? true;\n }, [shouldGetCoordinates]);\n\n useEffect(() => {\n if (selectedColor) {\n const { a } = extractRgbValues(selectedColor);\n\n setOpacity(a);\n }\n }, [selectedColor]);\n\n useEffect(() => {\n const canvas = canvasRef.current;\n\n if (!canvas) {\n return;\n }\n\n const rect = canvas.getBoundingClientRect();\n\n const scaleX = canvas.width / rect.width;\n const scaleY = canvas.height / rect.height;\n\n setScale({ scaleX, scaleY });\n }, []);\n\n const setColor = useCallback(() => {\n const xCord = x.get();\n const yCord = y.get();\n\n if (typeof updateSelectedColor === 'function') {\n const color = getColorFromCoordinates({\n coordinates: {\n x: xCord,\n y: yCord,\n },\n canvas: canvasRef,\n opacity,\n scale,\n });\n\n if (color === 'transparent') {\n return;\n }\n\n updateSelectedColor(color);\n }\n }, [opacity, scale, updateSelectedColor, x, y]);\n\n useEffect(() => {\n const ctx = canvasRef.current?.getContext('2d');\n\n if (!ctx) {\n return;\n }\n\n const hsv = rgbToHsv(hueColor);\n\n const hex = hsvToHex({ h: hsv?.h ?? 1, s: 1, v: 1 });\n\n const colorGradiant = ctx.createLinearGradient(0, 0, 300, 0);\n colorGradiant.addColorStop(0, '#fff');\n colorGradiant.addColorStop(1, hex ?? 'red');\n\n ctx.fillStyle = colorGradiant;\n ctx.fillRect(0, 0, 300, 150);\n\n const transparentGradiant = ctx.createLinearGradient(0, 0, 0, 150);\n\n transparentGradiant.addColorStop(0, 'transparent');\n transparentGradiant.addColorStop(1, '#000');\n\n ctx.fillStyle = transparentGradiant;\n ctx.fillRect(0, 0, 300, 150);\n\n if (isPresetColorRef.current) {\n if (typeof updateIsPresetColor === 'function') {\n updateIsPresetColor(false);\n }\n\n return;\n }\n\n if (canGetColorFromArea) {\n setColor();\n }\n }, [canGetColorFromArea, hueColor, setColor, updateIsPresetColor]);\n\n useEffect(() => {\n if (selectedColor && shouldGetCoordinatesRef.current) {\n const cords = getCoordinatesFromColor({\n color: selectedColor,\n canvas: canvasRef,\n tolerance: 10,\n });\n\n if (cords) {\n x.set(cords.x);\n y.set(cords.y);\n }\n }\n }, [selectedColor, x, y]);\n\n const handleDrag = useCallback(() => {\n setColor();\n }, [setColor]);\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n if (typeof updateShouldGetCoordinates === 'function') {\n updateShouldGetCoordinates(false);\n }\n\n const { left, top } = (event.target as HTMLDivElement).getBoundingClientRect();\n\n x.set(event.clientX - left - 10);\n y.set(event.clientY - top - 10);\n\n setColor();\n },\n [setColor, updateShouldGetCoordinates, x, y],\n );\n\n const handlePointerUp = useCallback(() => {\n canDrag.current = false;\n\n void setRefreshScrollEnabled(true);\n\n if (typeof updateShouldGetCoordinates === 'function') {\n updateShouldGetCoordinates(true);\n }\n\n if (typeof updateShouldCallOnSelect === 'function') {\n updateShouldCallOnSelect(true);\n }\n }, [updateShouldCallOnSelect, updateShouldGetCoordinates]);\n\n const move = useCallback(\n (xCords: number, yCords: number) => {\n let newXCords = xCords;\n let newYCords = yCords;\n\n switch (true) {\n case xCords > 300:\n newXCords = 300;\n break;\n case xCords < 0:\n newXCords = 0;\n break;\n default:\n break;\n }\n\n switch (true) {\n case yCords > 150:\n newYCords = 150;\n break;\n case yCords < 0:\n newYCords = 0;\n break;\n default:\n break;\n }\n\n x.set(newXCords);\n y.set(newYCords);\n\n setColor();\n },\n [setColor, x, y],\n );\n\n const handleMouseMove = useCallback(\n (event: MouseEvent) => {\n if (canDrag.current && pseudoRef.current) {\n const { left, top } = pseudoRef.current.getBoundingClientRect();\n\n const xCords = event.clientX - left - 10;\n const yCords = event.clientY - top - 10;\n\n move(xCords, yCords);\n }\n },\n [move],\n );\n\n const handleTouchMove = useCallback(\n (event: TouchEvent) => {\n if (canDrag.current && pseudoRef.current) {\n event.preventDefault();\n\n void setRefreshScrollEnabled(false);\n\n const { left, top } = pseudoRef.current.getBoundingClientRect();\n\n const xCords = event.changedTouches[0]\n ? event.changedTouches[0].clientX - left - 10\n : (event as unknown as { pageX: number }).pageX;\n const yCords = event.changedTouches[0]\n ? event.changedTouches[0].clientY - top - 10\n : (event as unknown as { pageY: number }).pageY;\n\n move(xCords, yCords);\n }\n },\n [move],\n );\n\n const handleStartDrag = useCallback(() => {\n if (typeof updateShouldGetCoordinates === 'function') {\n updateShouldGetCoordinates(false);\n }\n\n canDrag.current = true;\n\n window.addEventListener('mousemove', handleMouseMove);\n window.addEventListener('touchmove', handleTouchMove);\n\n const endTouching = () => {\n handlePointerUp();\n\n window.removeEventListener('mousemove', handleMouseMove);\n window.removeEventListener('touchmove', handleTouchMove);\n window.removeEventListener('pointerup', endTouching);\n window.removeEventListener('touchend', endTouching);\n };\n\n window.addEventListener('pointerup', endTouching);\n window.addEventListener('touchend', endTouching);\n }, [handleMouseMove, handlePointerUp, handleTouchMove, updateShouldGetCoordinates]);\n\n return useMemo(\n () => (\n <StyledColorArea>\n <StyledColorAreaCanvas ref={canvasRef} />\n <StyledColorAreaPseudo\n ref={pseudoRef}\n onPointerDown={handleStartDrag}\n onClick={handleClick}\n >\n <StyledMotionColorAreaPointer\n drag\n dragConstraints={pseudoRef}\n style={{ x, y }}\n dragElastic={false}\n dragMomentum={false}\n dragControls={dragControls}\n onDrag={handleDrag}\n />\n </StyledColorAreaPseudo>\n </StyledColorArea>\n ),\n [dragControls, handleClick, handleDrag, handleStartDrag, x, y],\n );\n};\n\nColorArea.displayName = 'ColorArea';\n\nexport default ColorArea;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.StyledMotionColorAreaPointer = exports.StyledColorAreaPseudo = exports.StyledColorAreaCanvas = exports.StyledColorArea = void 0;
|
|
7
|
+
var _framerMotion = require("framer-motion");
|
|
8
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
const StyledColorArea = exports.StyledColorArea = _styledComponents.default.div`
|
|
11
|
+
height: 150px;
|
|
12
|
+
width: 300px;
|
|
13
|
+
position: relative;
|
|
14
|
+
user-select: none;
|
|
15
|
+
overflow: hidden;
|
|
16
|
+
cursor: crosshair;
|
|
17
|
+
`;
|
|
18
|
+
const StyledColorAreaCanvas = exports.StyledColorAreaCanvas = _styledComponents.default.canvas`
|
|
19
|
+
user-select: none;
|
|
20
|
+
`;
|
|
21
|
+
const StyledColorAreaPseudo = exports.StyledColorAreaPseudo = _styledComponents.default.div`
|
|
22
|
+
position: absolute;
|
|
23
|
+
top: -10px;
|
|
24
|
+
left: -10px;
|
|
25
|
+
touch-action: none;
|
|
26
|
+
user-select: none;
|
|
27
|
+
|
|
28
|
+
height: 170px;
|
|
29
|
+
width: 320px;
|
|
30
|
+
`;
|
|
31
|
+
const StyledMotionColorAreaPointer = exports.StyledMotionColorAreaPointer = (0, _styledComponents.default)(_framerMotion.motion.div)`
|
|
32
|
+
position: absolute;
|
|
33
|
+
border-radius: 100%;
|
|
34
|
+
border: 2px solid white;
|
|
35
|
+
width: 20px;
|
|
36
|
+
height: 20px;
|
|
37
|
+
box-shadow:
|
|
38
|
+
0 0 5px 0 rgba(0, 0, 0, 0.5),
|
|
39
|
+
0 0 3px 0 rgba(0, 0, 0, 0.5) inset;
|
|
40
|
+
pointer-events: none;
|
|
41
|
+
user-select: none;
|
|
42
|
+
top: 0;
|
|
43
|
+
left: 0;
|
|
44
|
+
`;
|
|
45
|
+
//# sourceMappingURL=ColorArea.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ColorArea.styles.js","names":["_framerMotion","require","_styledComponents","_interopRequireDefault","e","__esModule","default","StyledColorArea","exports","styled","div","StyledColorAreaCanvas","canvas","StyledColorAreaPseudo","StyledMotionColorAreaPointer","motion"],"sources":["../../../../../src/components/color-picker-popup/color-area/ColorArea.styles.ts"],"sourcesContent":["import { motion } from 'framer-motion';\nimport styled from 'styled-components';\n\nexport const StyledColorArea = styled.div`\n height: 150px;\n width: 300px;\n position: relative;\n user-select: none;\n overflow: hidden;\n cursor: crosshair;\n`;\n\nexport const StyledColorAreaCanvas = styled.canvas`\n user-select: none;\n`;\n\nexport const StyledColorAreaPseudo = styled.div`\n position: absolute;\n top: -10px;\n left: -10px;\n touch-action: none;\n user-select: none;\n\n height: 170px;\n width: 320px;\n`;\n\nexport const StyledMotionColorAreaPointer = styled(motion.div)`\n position: absolute;\n border-radius: 100%;\n border: 2px solid white;\n width: 20px;\n height: 20px;\n box-shadow:\n 0 0 5px 0 rgba(0, 0, 0, 0.5),\n 0 0 3px 0 rgba(0, 0, 0, 0.5) inset;\n pointer-events: none;\n user-select: none;\n top: 0;\n left: 0;\n`;\n"],"mappings":";;;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAC,sBAAA,CAAAF,OAAA;AAAuC,SAAAE,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEhC,MAAMG,eAAe,GAAAC,OAAA,CAAAD,eAAA,GAAGE,yBAAM,CAACC,GAAG;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMC,qBAAqB,GAAAH,OAAA,CAAAG,qBAAA,GAAGF,yBAAM,CAACG,MAAM;AAClD;AACA,CAAC;AAEM,MAAMC,qBAAqB,GAAAL,OAAA,CAAAK,qBAAA,GAAGJ,yBAAM,CAACC,GAAG;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMI,4BAA4B,GAAAN,OAAA,CAAAM,4BAAA,GAAG,IAAAL,yBAAM,EAACM,oBAAM,CAACL,GAAG,CAAC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _core = require("@chayns-components/core");
|
|
8
|
+
var _colors = require("@chayns/colors");
|
|
9
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _color = require("../../../utils/color");
|
|
11
|
+
var _ColorPickerProvider = require("../../ColorPickerProvider");
|
|
12
|
+
var _MoreOptions = require("./MoreOptions.styles");
|
|
13
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
14
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
15
|
+
const MoreOptions = () => {
|
|
16
|
+
const {
|
|
17
|
+
selectedColor,
|
|
18
|
+
updateSelectedColor,
|
|
19
|
+
updateShouldCallOnSelect
|
|
20
|
+
} = (0, _react.useContext)(_ColorPickerProvider.ColorPickerContext);
|
|
21
|
+
const areaProvider = (0, _react.useContext)(_core.AreaContext);
|
|
22
|
+
const [tmpHexValue, setTmpHexValue] = (0, _react.useState)('');
|
|
23
|
+
const [tmpRgbValue, setTmpRgbValue] = (0, _react.useState)('');
|
|
24
|
+
const [isHexInvalid, setIsHexInvalid] = (0, _react.useState)(false);
|
|
25
|
+
const [isRgbInvalid, setIsRgbInvalid] = (0, _react.useState)(false);
|
|
26
|
+
const shouldChangeColor = (0, _react.useMemo)(() => areaProvider.shouldChangeColor ?? false, [areaProvider.shouldChangeColor]);
|
|
27
|
+
const handleHexChange = event => {
|
|
28
|
+
setTmpHexValue(event.target.value);
|
|
29
|
+
const isValid = (0, _colors.isHex)(event.target.value);
|
|
30
|
+
setIsHexInvalid(!isValid);
|
|
31
|
+
if (typeof updateSelectedColor === 'function' && isValid) {
|
|
32
|
+
const {
|
|
33
|
+
r,
|
|
34
|
+
g,
|
|
35
|
+
b,
|
|
36
|
+
a
|
|
37
|
+
} = (0, _color.hexToRgb)(event.target.value);
|
|
38
|
+
updateSelectedColor(`rgba(${r},${g},${b},${a})`);
|
|
39
|
+
}
|
|
40
|
+
if (typeof updateShouldCallOnSelect === 'function' && isValid) {
|
|
41
|
+
updateShouldCallOnSelect(true);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
const handleRgbChange = event => {
|
|
45
|
+
setTmpRgbValue(event.target.value);
|
|
46
|
+
const isValid = (0, _color.isValidRGBA)(event.target.value);
|
|
47
|
+
setIsRgbInvalid(!isValid);
|
|
48
|
+
if (typeof updateSelectedColor === 'function' && isValid) {
|
|
49
|
+
updateSelectedColor(event.target.value);
|
|
50
|
+
}
|
|
51
|
+
if (typeof updateShouldCallOnSelect === 'function' && isValid) {
|
|
52
|
+
updateShouldCallOnSelect(true);
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
(0, _react.useEffect)(() => {
|
|
56
|
+
if (selectedColor) {
|
|
57
|
+
if ((0, _color.isValidRGBA)(selectedColor)) {
|
|
58
|
+
setTmpRgbValue(selectedColor);
|
|
59
|
+
setTmpHexValue((0, _color.rgbToHex)((0, _color.extractRgbValues)(selectedColor ?? '')));
|
|
60
|
+
} else {
|
|
61
|
+
const {
|
|
62
|
+
r,
|
|
63
|
+
g,
|
|
64
|
+
b,
|
|
65
|
+
a
|
|
66
|
+
} = (0, _color.hexToRgb)(selectedColor);
|
|
67
|
+
setTmpRgbValue(`rgba(${r},${g},${b},${a})`);
|
|
68
|
+
setTmpHexValue(selectedColor);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}, [selectedColor]);
|
|
72
|
+
return /*#__PURE__*/_react.default.createElement(_MoreOptions.StyledMoreOptions, null, /*#__PURE__*/_react.default.createElement(_core.AccordionGroup, {
|
|
73
|
+
isWrapped: true
|
|
74
|
+
}, /*#__PURE__*/_react.default.createElement(_core.Accordion, {
|
|
75
|
+
title: "Erweitert"
|
|
76
|
+
}, /*#__PURE__*/_react.default.createElement(_MoreOptions.StyledMoreOptionsInputWrapper, null, /*#__PURE__*/_react.default.createElement(_MoreOptions.StyledMoreOptionsInput, {
|
|
77
|
+
$shouldChangeColor: shouldChangeColor,
|
|
78
|
+
value: tmpHexValue,
|
|
79
|
+
onChange: handleHexChange,
|
|
80
|
+
$isInvalid: isHexInvalid
|
|
81
|
+
}), /*#__PURE__*/_react.default.createElement(_MoreOptions.StyledMoreOptionsInput, {
|
|
82
|
+
$shouldChangeColor: shouldChangeColor,
|
|
83
|
+
value: tmpRgbValue,
|
|
84
|
+
onChange: handleRgbChange,
|
|
85
|
+
$isInvalid: isRgbInvalid
|
|
86
|
+
})))));
|
|
87
|
+
};
|
|
88
|
+
MoreOptions.displayName = 'MoreOptions';
|
|
89
|
+
var _default = exports.default = MoreOptions;
|
|
90
|
+
//# sourceMappingURL=MoreOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MoreOptions.js","names":["_core","require","_colors","_react","_interopRequireWildcard","_color","_ColorPickerProvider","_MoreOptions","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","MoreOptions","selectedColor","updateSelectedColor","updateShouldCallOnSelect","useContext","ColorPickerContext","areaProvider","AreaContext","tmpHexValue","setTmpHexValue","useState","tmpRgbValue","setTmpRgbValue","isHexInvalid","setIsHexInvalid","isRgbInvalid","setIsRgbInvalid","shouldChangeColor","useMemo","handleHexChange","event","target","value","isValid","isHex","g","b","hexToRgb","handleRgbChange","isValidRGBA","useEffect","rgbToHex","extractRgbValues","createElement","StyledMoreOptions","AccordionGroup","isWrapped","Accordion","title","StyledMoreOptionsInputWrapper","StyledMoreOptionsInput","$shouldChangeColor","onChange","$isInvalid","displayName","_default","exports"],"sources":["../../../../../src/components/color-picker-popup/more-options/MoreOptions.tsx"],"sourcesContent":["import { Accordion, AccordionGroup, AreaContext } from '@chayns-components/core';\nimport { isHex } from '@chayns/colors';\nimport React, { useContext, useEffect, useMemo, useState, type ChangeEvent } from 'react';\n\nimport { extractRgbValues, hexToRgb, isValidRGBA, rgbToHex } from '../../../utils/color';\nimport { ColorPickerContext } from '../../ColorPickerProvider';\nimport {\n StyledMoreOptions,\n StyledMoreOptionsInput,\n StyledMoreOptionsInputWrapper,\n} from './MoreOptions.styles';\n\nconst MoreOptions = () => {\n const { selectedColor, updateSelectedColor, updateShouldCallOnSelect } =\n useContext(ColorPickerContext);\n const areaProvider = useContext(AreaContext);\n\n const [tmpHexValue, setTmpHexValue] = useState('');\n const [tmpRgbValue, setTmpRgbValue] = useState('');\n const [isHexInvalid, setIsHexInvalid] = useState(false);\n const [isRgbInvalid, setIsRgbInvalid] = useState(false);\n\n const shouldChangeColor = useMemo(\n () => areaProvider.shouldChangeColor ?? false,\n [areaProvider.shouldChangeColor],\n );\n\n const handleHexChange = (event: ChangeEvent<HTMLInputElement>) => {\n setTmpHexValue(event.target.value);\n\n const isValid = isHex(event.target.value);\n\n setIsHexInvalid(!isValid);\n\n if (typeof updateSelectedColor === 'function' && isValid) {\n const { r, g, b, a } = hexToRgb(event.target.value);\n\n updateSelectedColor(`rgba(${r},${g},${b},${a})`);\n }\n\n if (typeof updateShouldCallOnSelect === 'function' && isValid) {\n updateShouldCallOnSelect(true);\n }\n };\n\n const handleRgbChange = (event: ChangeEvent<HTMLInputElement>) => {\n setTmpRgbValue(event.target.value);\n\n const isValid = isValidRGBA(event.target.value);\n\n setIsRgbInvalid(!isValid);\n\n if (typeof updateSelectedColor === 'function' && isValid) {\n updateSelectedColor(event.target.value);\n }\n\n if (typeof updateShouldCallOnSelect === 'function' && isValid) {\n updateShouldCallOnSelect(true);\n }\n };\n\n useEffect(() => {\n if (selectedColor) {\n if (isValidRGBA(selectedColor)) {\n setTmpRgbValue(selectedColor);\n setTmpHexValue(rgbToHex(extractRgbValues(selectedColor ?? '')));\n } else {\n const { r, g, b, a } = hexToRgb(selectedColor);\n\n setTmpRgbValue(`rgba(${r},${g},${b},${a})`);\n setTmpHexValue(selectedColor);\n }\n }\n }, [selectedColor]);\n\n return (\n <StyledMoreOptions>\n <AccordionGroup isWrapped>\n <Accordion title=\"Erweitert\">\n <StyledMoreOptionsInputWrapper>\n <StyledMoreOptionsInput\n $shouldChangeColor={shouldChangeColor}\n value={tmpHexValue}\n onChange={handleHexChange}\n $isInvalid={isHexInvalid}\n />\n <StyledMoreOptionsInput\n $shouldChangeColor={shouldChangeColor}\n value={tmpRgbValue}\n onChange={handleRgbChange}\n $isInvalid={isRgbInvalid}\n />\n </StyledMoreOptionsInputWrapper>\n </Accordion>\n </AccordionGroup>\n </StyledMoreOptions>\n );\n};\n\nMoreOptions.displayName = 'MoreOptions';\n\nexport default MoreOptions;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.StyledMoreOptionsInputWrapper = exports.StyledMoreOptionsInput = exports.StyledMoreOptions = void 0;
|
|
7
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
+
const StyledMoreOptions = exports.StyledMoreOptions = _styledComponents.default.div``;
|
|
10
|
+
const StyledMoreOptionsInputWrapper = exports.StyledMoreOptionsInputWrapper = _styledComponents.default.div`
|
|
11
|
+
display: flex;
|
|
12
|
+
justify-content: space-between;
|
|
13
|
+
gap: 8px;
|
|
14
|
+
align-items: center;
|
|
15
|
+
`;
|
|
16
|
+
const StyledMoreOptionsInput = exports.StyledMoreOptionsInput = _styledComponents.default.input`
|
|
17
|
+
width: 100%;
|
|
18
|
+
border-radius: 3px;
|
|
19
|
+
border: 1px solid
|
|
20
|
+
${({
|
|
21
|
+
theme,
|
|
22
|
+
$isInvalid
|
|
23
|
+
}) => $isInvalid ? theme.wrong : 'rgba(160, 160, 160, 0.3)'};
|
|
24
|
+
background-color: ${({
|
|
25
|
+
theme,
|
|
26
|
+
$shouldChangeColor
|
|
27
|
+
}) => theme.colorMode === 'classic' || $shouldChangeColor ? theme['000'] : theme['100']};
|
|
28
|
+
color: ${({
|
|
29
|
+
theme,
|
|
30
|
+
$isInvalid
|
|
31
|
+
}) => $isInvalid ? theme.wrong : theme.text};
|
|
32
|
+
padding: 8px 10px;
|
|
33
|
+
font-size: 11px;
|
|
34
|
+
`;
|
|
35
|
+
//# sourceMappingURL=MoreOptions.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MoreOptions.styles.js","names":["_styledComponents","_interopRequireDefault","require","e","__esModule","default","StyledMoreOptions","exports","styled","div","StyledMoreOptionsInputWrapper","StyledMoreOptionsInput","input","theme","$isInvalid","wrong","$shouldChangeColor","colorMode","text"],"sources":["../../../../../src/components/color-picker-popup/more-options/MoreOptions.styles.ts"],"sourcesContent":["import type { WithTheme } from '@chayns-components/core';\nimport styled from 'styled-components';\n\nexport const StyledMoreOptions = styled.div``;\nexport const StyledMoreOptionsInputWrapper = styled.div`\n display: flex;\n justify-content: space-between;\n gap: 8px;\n align-items: center;\n`;\n\ntype StyledMoreOptionsInputProps = WithTheme<{ $isInvalid: boolean; $shouldChangeColor: boolean }>;\n\nexport const StyledMoreOptionsInput = styled.input<StyledMoreOptionsInputProps>`\n width: 100%;\n border-radius: 3px;\n border: 1px solid\n ${({ theme, $isInvalid }: StyledMoreOptionsInputProps) =>\n $isInvalid ? theme.wrong : 'rgba(160, 160, 160, 0.3)'};\n background-color: ${({ theme, $shouldChangeColor }: StyledMoreOptionsInputProps) =>\n theme.colorMode === 'classic' || $shouldChangeColor ? theme['000'] : theme['100']};\n color: ${({ theme, $isInvalid }: StyledMoreOptionsInputProps) =>\n $isInvalid ? theme.wrong : theme.text};\n padding: 8px 10px;\n font-size: 11px;\n`;\n"],"mappings":";;;;;;AACA,IAAAA,iBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAuC,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEhC,MAAMG,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAGE,yBAAM,CAACC,GAAG,EAAE;AACtC,MAAMC,6BAA6B,GAAAH,OAAA,CAAAG,6BAAA,GAAGF,yBAAM,CAACC,GAAG;AACvD;AACA;AACA;AACA;AACA,CAAC;AAIM,MAAME,sBAAsB,GAAAJ,OAAA,CAAAI,sBAAA,GAAGH,yBAAM,CAACI,KAAkC;AAC/E;AACA;AACA;AACA,UAAU,CAAC;EAAEC,KAAK;EAAEC;AAAwC,CAAC,KACjDA,UAAU,GAAGD,KAAK,CAACE,KAAK,GAAG,0BAA0B;AACjE,wBAAwB,CAAC;EAAEF,KAAK;EAAEG;AAAgD,CAAC,KAC3EH,KAAK,CAACI,SAAS,KAAK,SAAS,IAAID,kBAAkB,GAAGH,KAAK,CAAC,KAAK,CAAC,GAAGA,KAAK,CAAC,KAAK,CAAC;AACzF,aAAa,CAAC;EAAEA,KAAK;EAAEC;AAAwC,CAAC,KACxDA,UAAU,GAAGD,KAAK,CAACE,KAAK,GAAGF,KAAK,CAACK,IAAI;AAC7C;AACA;AACA,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _colors = require("@chayns/colors");
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _get = require("../../../api/color/get");
|
|
10
|
+
var _put = require("../../../api/color/put");
|
|
11
|
+
var _color = require("../../../constants/color");
|
|
12
|
+
var _color2 = require("../../../utils/color");
|
|
13
|
+
var _ColorPickerProvider = require("../../ColorPickerProvider");
|
|
14
|
+
var _PresetButton = _interopRequireDefault(require("./preset-button/PresetButton"));
|
|
15
|
+
var _PresetColor = _interopRequireDefault(require("./preset-color/PresetColor"));
|
|
16
|
+
var _PresetColors = require("./PresetColors.styles");
|
|
17
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
18
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
19
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
20
|
+
const PresetColors = ({
|
|
21
|
+
presetColors,
|
|
22
|
+
onPresetColorRemove,
|
|
23
|
+
onPresetColorAdd,
|
|
24
|
+
shouldUseSiteColors
|
|
25
|
+
}) => {
|
|
26
|
+
const {
|
|
27
|
+
selectedColor
|
|
28
|
+
} = (0, _react.useContext)(_ColorPickerProvider.ColorPickerContext);
|
|
29
|
+
const [siteColors, setSiteColors] = (0, _react.useState)(undefined);
|
|
30
|
+
const loadSiteColors = async presetColorId => {
|
|
31
|
+
const colors = await (0, _put.getSiteColors)();
|
|
32
|
+
setSiteColors(prevColors => {
|
|
33
|
+
var _prevColors$find;
|
|
34
|
+
const newColors = colors.value.map(color => {
|
|
35
|
+
const {
|
|
36
|
+
r,
|
|
37
|
+
g,
|
|
38
|
+
b,
|
|
39
|
+
a
|
|
40
|
+
} = (0, _color2.hexToRgb)(color);
|
|
41
|
+
const newColor = `rgba(${r},${g},${b},${a})`;
|
|
42
|
+
return {
|
|
43
|
+
color: newColor,
|
|
44
|
+
id: Math.random().toString(),
|
|
45
|
+
isCustom: true
|
|
46
|
+
};
|
|
47
|
+
});
|
|
48
|
+
if (!presetColorId) {
|
|
49
|
+
return newColors;
|
|
50
|
+
}
|
|
51
|
+
const deletedColor = prevColors === null || prevColors === void 0 || (_prevColors$find = prevColors.find(({
|
|
52
|
+
id
|
|
53
|
+
}) => id === presetColorId)) === null || _prevColors$find === void 0 ? void 0 : _prevColors$find.color;
|
|
54
|
+
if (!deletedColor) {
|
|
55
|
+
return newColors;
|
|
56
|
+
}
|
|
57
|
+
const filteredColors = newColors === null || newColors === void 0 ? void 0 : newColors.filter(({
|
|
58
|
+
color
|
|
59
|
+
}) => color !== deletedColor);
|
|
60
|
+
const formattedColors = filteredColors === null || filteredColors === void 0 ? void 0 : filteredColors.map(({
|
|
61
|
+
color
|
|
62
|
+
}) => {
|
|
63
|
+
const rgbValues = (0, _color2.extractRgbValues)(color);
|
|
64
|
+
return (0, _color2.rgbToHex)(rgbValues);
|
|
65
|
+
});
|
|
66
|
+
void (0, _get.putSiteColors)(formattedColors ?? []);
|
|
67
|
+
return filteredColors;
|
|
68
|
+
});
|
|
69
|
+
};
|
|
70
|
+
(0, _react.useEffect)(() => {
|
|
71
|
+
if (!shouldUseSiteColors) {
|
|
72
|
+
setSiteColors(undefined);
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
void loadSiteColors();
|
|
76
|
+
}, [shouldUseSiteColors]);
|
|
77
|
+
const combinedColors = (0, _react.useMemo)(() => {
|
|
78
|
+
const tmp = (presetColors ?? []).map(({
|
|
79
|
+
color,
|
|
80
|
+
isCustom,
|
|
81
|
+
id
|
|
82
|
+
}) => {
|
|
83
|
+
let newColor = color;
|
|
84
|
+
if ((0, _colors.isHex)(color)) {
|
|
85
|
+
const {
|
|
86
|
+
r,
|
|
87
|
+
g,
|
|
88
|
+
b,
|
|
89
|
+
a
|
|
90
|
+
} = (0, _color2.hexToRgb)(color);
|
|
91
|
+
newColor = `rgba(${r},${g},${b},${a})`;
|
|
92
|
+
}
|
|
93
|
+
return {
|
|
94
|
+
id,
|
|
95
|
+
isCustom,
|
|
96
|
+
color: newColor
|
|
97
|
+
};
|
|
98
|
+
});
|
|
99
|
+
return [..._color.PRESETCOLORS, ...(siteColors ?? []), ...tmp];
|
|
100
|
+
}, [presetColors, siteColors]);
|
|
101
|
+
const content = (0, _react.useMemo)(() => {
|
|
102
|
+
const items = [];
|
|
103
|
+
combinedColors.forEach(({
|
|
104
|
+
color,
|
|
105
|
+
id
|
|
106
|
+
}) => {
|
|
107
|
+
items.push(/*#__PURE__*/_react.default.createElement(_PresetColor.default, {
|
|
108
|
+
key: `preset-color__${id}`,
|
|
109
|
+
color: color
|
|
110
|
+
}));
|
|
111
|
+
});
|
|
112
|
+
return items;
|
|
113
|
+
}, [combinedColors]);
|
|
114
|
+
const currentPresetColor = (0, _react.useMemo)(() => combinedColors.find(({
|
|
115
|
+
color
|
|
116
|
+
}) => color === selectedColor), [combinedColors, selectedColor]);
|
|
117
|
+
const handleAddColor = presetColor => {
|
|
118
|
+
if (typeof onPresetColorAdd === 'function') {
|
|
119
|
+
onPresetColorAdd(presetColor);
|
|
120
|
+
}
|
|
121
|
+
setSiteColors(prevColors => {
|
|
122
|
+
const colors = [...(prevColors ?? []), presetColor];
|
|
123
|
+
const newColors = colors === null || colors === void 0 ? void 0 : colors.map(({
|
|
124
|
+
color
|
|
125
|
+
}) => {
|
|
126
|
+
const rgbValues = (0, _color2.extractRgbValues)(color);
|
|
127
|
+
return (0, _color2.rgbToHex)(rgbValues);
|
|
128
|
+
});
|
|
129
|
+
void (0, _get.putSiteColors)(newColors);
|
|
130
|
+
return colors;
|
|
131
|
+
});
|
|
132
|
+
};
|
|
133
|
+
const handleRemoveColor = presetColorId => {
|
|
134
|
+
void loadSiteColors(presetColorId);
|
|
135
|
+
if (typeof onPresetColorRemove === 'function') {
|
|
136
|
+
onPresetColorRemove(presetColorId);
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
return /*#__PURE__*/_react.default.createElement(_PresetColors.StyledPresetColors, null, content, /*#__PURE__*/_react.default.createElement(_PresetButton.default, {
|
|
140
|
+
id: currentPresetColor === null || currentPresetColor === void 0 ? void 0 : currentPresetColor.id,
|
|
141
|
+
isCustom: currentPresetColor === null || currentPresetColor === void 0 ? void 0 : currentPresetColor.isCustom,
|
|
142
|
+
onAdd: handleAddColor,
|
|
143
|
+
onRemove: handleRemoveColor
|
|
144
|
+
}));
|
|
145
|
+
};
|
|
146
|
+
PresetColors.displayName = 'PresetColors';
|
|
147
|
+
var _default = exports.default = PresetColors;
|
|
148
|
+
//# sourceMappingURL=PresetColors.js.map
|