funda-ui 1.0.540 → 1.0.546
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/ColorPicker/index.css +28 -8
- package/ColorPicker/index.d.ts +2 -0
- package/ColorPicker/index.js +18 -7
- package/Tree/index.js +0 -16
- package/lib/cjs/ColorPicker/index.d.ts +2 -0
- package/lib/cjs/ColorPicker/index.js +18 -7
- package/lib/cjs/Tree/index.js +0 -16
- package/lib/css/ColorPicker/index.css +28 -8
- package/lib/esm/ColorPicker/index.scss +73 -30
- package/lib/esm/ColorPicker/index.tsx +23 -11
- package/lib/esm/Tree/TreeList.tsx +0 -15
- package/package.json +1 -1
package/ColorPicker/index.css
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
/* ======================================================
|
|
2
2
|
<!-- Color Picker -->
|
|
3
3
|
/* ====================================================== */
|
|
4
|
-
.custom-
|
|
4
|
+
.custom-colorpicker__wrapper {
|
|
5
|
+
position: relative;
|
|
5
6
|
--color-control-border-radius: 0.375rem;
|
|
6
7
|
--color-control-size: 30px;
|
|
7
8
|
--color-control-border-color: rgba(0,0,0,.1);
|
|
9
|
+
/* placeholder */
|
|
10
|
+
}
|
|
11
|
+
.custom-colorpicker__wrapper .custom-colorpicker-control {
|
|
8
12
|
-webkit-appearance: none;
|
|
9
13
|
-moz-appearance: none;
|
|
10
14
|
appearance: none;
|
|
@@ -15,24 +19,40 @@
|
|
|
15
19
|
border: none;
|
|
16
20
|
cursor: pointer;
|
|
17
21
|
}
|
|
18
|
-
.custom-
|
|
22
|
+
.custom-colorpicker__wrapper .custom-colorpicker-control::-webkit-color-swatch {
|
|
19
23
|
border: 2px solid var(--color-control-border-color);
|
|
20
24
|
}
|
|
21
|
-
.custom-
|
|
25
|
+
.custom-colorpicker__wrapper .custom-colorpicker-control::-moz-color-swatch {
|
|
22
26
|
border: 2px solid var(--color-control-border-color);
|
|
23
27
|
}
|
|
24
|
-
.custom-
|
|
28
|
+
.custom-colorpicker__wrapper .custom-colorpicker-control:disabled {
|
|
25
29
|
cursor: not-allowed;
|
|
26
30
|
}
|
|
27
|
-
.custom-
|
|
31
|
+
.custom-colorpicker__wrapper .custom-colorpicker__transparent-placeholder {
|
|
32
|
+
position: absolute;
|
|
33
|
+
width: var(--color-control-size);
|
|
34
|
+
height: var(--color-control-size);
|
|
35
|
+
left: 0;
|
|
36
|
+
top: 0;
|
|
37
|
+
z-index: 1;
|
|
38
|
+
pointer-events: none;
|
|
39
|
+
background: #fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==) repeat;
|
|
40
|
+
}
|
|
41
|
+
.custom-colorpicker__wrapper.custom-colorpicker--rounded .custom-colorpicker-control::-webkit-color-swatch {
|
|
42
|
+
border-radius: var(--color-control-border-radius);
|
|
43
|
+
}
|
|
44
|
+
.custom-colorpicker__wrapper.custom-colorpicker--rounded .custom-colorpicker-control::-moz-color-swatch {
|
|
28
45
|
border-radius: var(--color-control-border-radius);
|
|
29
46
|
}
|
|
30
|
-
.custom-
|
|
47
|
+
.custom-colorpicker__wrapper.custom-colorpicker--rounded .custom-colorpicker__transparent-placeholder {
|
|
31
48
|
border-radius: var(--color-control-border-radius);
|
|
32
49
|
}
|
|
33
|
-
.custom-
|
|
50
|
+
.custom-colorpicker__wrapper.custom-colorpicker--circle .custom-colorpicker-control::-webkit-color-swatch {
|
|
51
|
+
border-radius: 50%;
|
|
52
|
+
}
|
|
53
|
+
.custom-colorpicker__wrapper.custom-colorpicker--circle .custom-colorpicker-control::-moz-color-swatch {
|
|
34
54
|
border-radius: 50%;
|
|
35
55
|
}
|
|
36
|
-
.custom-
|
|
56
|
+
.custom-colorpicker__wrapper.custom-colorpicker--circle .custom-colorpicker__transparent-placeholder {
|
|
37
57
|
border-radius: 50%;
|
|
38
58
|
}
|
package/ColorPicker/index.d.ts
CHANGED
|
@@ -7,6 +7,8 @@ declare module 'react' {
|
|
|
7
7
|
interface ColorPickerProps extends React.ComponentPropsWithoutRef<"input"> {
|
|
8
8
|
wrapperClassName?: string;
|
|
9
9
|
controlClassName?: string;
|
|
10
|
+
clearBtnClassName?: string;
|
|
11
|
+
clearBtnLabel?: string;
|
|
10
12
|
value?: string;
|
|
11
13
|
label?: React.ReactNode | string;
|
|
12
14
|
name?: string;
|
package/ColorPicker/index.js
CHANGED
|
@@ -96,7 +96,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
96
96
|
/* harmony export */ });
|
|
97
97
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(787);
|
|
98
98
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
99
|
-
var _excluded = ["wrapperClassName", "controlClassName", "disabled", "required", "readOnly", "value", "label", "name", "shape", "id", "style", "tabIndex", "onChange", "onBlur", "onFocus"];
|
|
99
|
+
var _excluded = ["wrapperClassName", "controlClassName", "clearBtnClassName", "clearBtnLabel", "disabled", "required", "readOnly", "value", "label", "name", "shape", "id", "style", "tabIndex", "onChange", "onBlur", "onFocus"];
|
|
100
100
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
101
101
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
102
102
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
@@ -111,6 +111,8 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
|
|
|
111
111
|
var ColorPicker = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function (props, _ref) {
|
|
112
112
|
var wrapperClassName = props.wrapperClassName,
|
|
113
113
|
controlClassName = props.controlClassName,
|
|
114
|
+
clearBtnClassName = props.clearBtnClassName,
|
|
115
|
+
clearBtnLabel = props.clearBtnLabel,
|
|
114
116
|
disabled = props.disabled,
|
|
115
117
|
required = props.required,
|
|
116
118
|
readOnly = props.readOnly,
|
|
@@ -137,10 +139,10 @@ var ColorPicker = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)
|
|
|
137
139
|
if (shape && typeof shape === 'string') {
|
|
138
140
|
switch (shape) {
|
|
139
141
|
case 'rounded':
|
|
140
|
-
shapeClassName = 'custom-
|
|
142
|
+
shapeClassName = 'custom-colorpicker--rounded';
|
|
141
143
|
break;
|
|
142
144
|
case 'circle':
|
|
143
|
-
shapeClassName = 'custom-
|
|
145
|
+
shapeClassName = 'custom-colorpicker--circle';
|
|
144
146
|
break;
|
|
145
147
|
}
|
|
146
148
|
}
|
|
@@ -182,7 +184,7 @@ var ColorPicker = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)
|
|
|
182
184
|
setChangedVal(value || '');
|
|
183
185
|
}, [value]);
|
|
184
186
|
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
|
|
185
|
-
className: wrapperClassName || wrapperClassName === '' ? wrapperClassName : "mb-3 position-relative",
|
|
187
|
+
className: wrapperClassName || wrapperClassName === '' ? "custom-colorpicker__wrapper ".concat(shapeClassName, " ").concat(wrapperClassName) : "custom-colorpicker__wrapper mb-3 position-relative ".concat(shapeClassName),
|
|
186
188
|
ref: rootRef
|
|
187
189
|
}, label ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("label", {
|
|
188
190
|
htmlFor: idRes,
|
|
@@ -203,7 +205,7 @@ var ColorPicker = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)
|
|
|
203
205
|
},
|
|
204
206
|
tabIndex: tabIndex || 0,
|
|
205
207
|
type: "color",
|
|
206
|
-
className: "".concat(controlClassName || controlClassName === '' ? controlClassName : "form-control custom-
|
|
208
|
+
className: "".concat(controlClassName || controlClassName === '' ? controlClassName : "form-control custom-colorpicker-control flex-grow-0"),
|
|
207
209
|
id: idRes,
|
|
208
210
|
name: name,
|
|
209
211
|
value: changedVal,
|
|
@@ -214,11 +216,20 @@ var ColorPicker = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)
|
|
|
214
216
|
required: required || null,
|
|
215
217
|
readOnly: readOnly || null,
|
|
216
218
|
style: style
|
|
217
|
-
}, attributes))
|
|
219
|
+
}, attributes)), changedVal !== '' ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", {
|
|
220
|
+
tabIndex: -1,
|
|
221
|
+
type: "button",
|
|
222
|
+
className: clearBtnClassName || 'btn btn-link btn-sm',
|
|
223
|
+
onClick: function onClick() {
|
|
224
|
+
setChangedVal('');
|
|
225
|
+
}
|
|
226
|
+
}, clearBtnLabel || 'clear')) : null), required ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", {
|
|
218
227
|
className: "position-absolute end-0 top-0 my-2 mx-2"
|
|
219
228
|
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", {
|
|
220
229
|
className: "text-danger"
|
|
221
|
-
}, "*"))) : ''))
|
|
230
|
+
}, "*"))) : '', changedVal === '' ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
|
|
231
|
+
className: "custom-colorpicker__transparent-placeholder"
|
|
232
|
+
})) : null));
|
|
222
233
|
});
|
|
223
234
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ColorPicker);
|
|
224
235
|
})();
|
package/Tree/index.js
CHANGED
|
@@ -916,22 +916,6 @@ function TreeList(props) {
|
|
|
916
916
|
});
|
|
917
917
|
activeClass(hyperlink, 'add', 'selected');
|
|
918
918
|
}
|
|
919
|
-
|
|
920
|
-
// Note: that component re-rendering (such as routing changes) will cause collapsing problems
|
|
921
|
-
// with `onSelect()`, please use `useMemo()` to wrap `<Tree />`, like this:
|
|
922
|
-
/*
|
|
923
|
-
function TreeMemo(props: any) {
|
|
924
|
-
const {t, callback, data} = props;
|
|
925
|
-
const dependencies = props.data !== null && props.data.length === 0 ? props.data : '';
|
|
926
|
-
return useMemo(() => {
|
|
927
|
-
return <Tree
|
|
928
|
-
data={data}
|
|
929
|
-
showLine={true}
|
|
930
|
-
onSelect={callback}
|
|
931
|
-
/>
|
|
932
|
-
}, [dependencies]);
|
|
933
|
-
}
|
|
934
|
-
*/
|
|
935
919
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(e, {
|
|
936
920
|
key: hyperlink.dataset.key,
|
|
937
921
|
slug: hyperlink.dataset.slug,
|
|
@@ -7,6 +7,8 @@ declare module 'react' {
|
|
|
7
7
|
interface ColorPickerProps extends React.ComponentPropsWithoutRef<"input"> {
|
|
8
8
|
wrapperClassName?: string;
|
|
9
9
|
controlClassName?: string;
|
|
10
|
+
clearBtnClassName?: string;
|
|
11
|
+
clearBtnLabel?: string;
|
|
10
12
|
value?: string;
|
|
11
13
|
label?: React.ReactNode | string;
|
|
12
14
|
name?: string;
|
|
@@ -96,7 +96,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
96
96
|
/* harmony export */ });
|
|
97
97
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(787);
|
|
98
98
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
99
|
-
var _excluded = ["wrapperClassName", "controlClassName", "disabled", "required", "readOnly", "value", "label", "name", "shape", "id", "style", "tabIndex", "onChange", "onBlur", "onFocus"];
|
|
99
|
+
var _excluded = ["wrapperClassName", "controlClassName", "clearBtnClassName", "clearBtnLabel", "disabled", "required", "readOnly", "value", "label", "name", "shape", "id", "style", "tabIndex", "onChange", "onBlur", "onFocus"];
|
|
100
100
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
101
101
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
102
102
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
@@ -111,6 +111,8 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
|
|
|
111
111
|
var ColorPicker = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function (props, _ref) {
|
|
112
112
|
var wrapperClassName = props.wrapperClassName,
|
|
113
113
|
controlClassName = props.controlClassName,
|
|
114
|
+
clearBtnClassName = props.clearBtnClassName,
|
|
115
|
+
clearBtnLabel = props.clearBtnLabel,
|
|
114
116
|
disabled = props.disabled,
|
|
115
117
|
required = props.required,
|
|
116
118
|
readOnly = props.readOnly,
|
|
@@ -137,10 +139,10 @@ var ColorPicker = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)
|
|
|
137
139
|
if (shape && typeof shape === 'string') {
|
|
138
140
|
switch (shape) {
|
|
139
141
|
case 'rounded':
|
|
140
|
-
shapeClassName = 'custom-
|
|
142
|
+
shapeClassName = 'custom-colorpicker--rounded';
|
|
141
143
|
break;
|
|
142
144
|
case 'circle':
|
|
143
|
-
shapeClassName = 'custom-
|
|
145
|
+
shapeClassName = 'custom-colorpicker--circle';
|
|
144
146
|
break;
|
|
145
147
|
}
|
|
146
148
|
}
|
|
@@ -182,7 +184,7 @@ var ColorPicker = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)
|
|
|
182
184
|
setChangedVal(value || '');
|
|
183
185
|
}, [value]);
|
|
184
186
|
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
|
|
185
|
-
className: wrapperClassName || wrapperClassName === '' ? wrapperClassName : "mb-3 position-relative",
|
|
187
|
+
className: wrapperClassName || wrapperClassName === '' ? "custom-colorpicker__wrapper ".concat(shapeClassName, " ").concat(wrapperClassName) : "custom-colorpicker__wrapper mb-3 position-relative ".concat(shapeClassName),
|
|
186
188
|
ref: rootRef
|
|
187
189
|
}, label ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("label", {
|
|
188
190
|
htmlFor: idRes,
|
|
@@ -203,7 +205,7 @@ var ColorPicker = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)
|
|
|
203
205
|
},
|
|
204
206
|
tabIndex: tabIndex || 0,
|
|
205
207
|
type: "color",
|
|
206
|
-
className: "".concat(controlClassName || controlClassName === '' ? controlClassName : "form-control custom-
|
|
208
|
+
className: "".concat(controlClassName || controlClassName === '' ? controlClassName : "form-control custom-colorpicker-control flex-grow-0"),
|
|
207
209
|
id: idRes,
|
|
208
210
|
name: name,
|
|
209
211
|
value: changedVal,
|
|
@@ -214,11 +216,20 @@ var ColorPicker = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)
|
|
|
214
216
|
required: required || null,
|
|
215
217
|
readOnly: readOnly || null,
|
|
216
218
|
style: style
|
|
217
|
-
}, attributes))
|
|
219
|
+
}, attributes)), changedVal !== '' ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", {
|
|
220
|
+
tabIndex: -1,
|
|
221
|
+
type: "button",
|
|
222
|
+
className: clearBtnClassName || 'btn btn-link btn-sm',
|
|
223
|
+
onClick: function onClick() {
|
|
224
|
+
setChangedVal('');
|
|
225
|
+
}
|
|
226
|
+
}, clearBtnLabel || 'clear')) : null), required ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", {
|
|
218
227
|
className: "position-absolute end-0 top-0 my-2 mx-2"
|
|
219
228
|
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", {
|
|
220
229
|
className: "text-danger"
|
|
221
|
-
}, "*"))) : ''))
|
|
230
|
+
}, "*"))) : '', changedVal === '' ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
|
|
231
|
+
className: "custom-colorpicker__transparent-placeholder"
|
|
232
|
+
})) : null));
|
|
222
233
|
});
|
|
223
234
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ColorPicker);
|
|
224
235
|
})();
|
package/lib/cjs/Tree/index.js
CHANGED
|
@@ -916,22 +916,6 @@ function TreeList(props) {
|
|
|
916
916
|
});
|
|
917
917
|
activeClass(hyperlink, 'add', 'selected');
|
|
918
918
|
}
|
|
919
|
-
|
|
920
|
-
// Note: that component re-rendering (such as routing changes) will cause collapsing problems
|
|
921
|
-
// with `onSelect()`, please use `useMemo()` to wrap `<Tree />`, like this:
|
|
922
|
-
/*
|
|
923
|
-
function TreeMemo(props: any) {
|
|
924
|
-
const {t, callback, data} = props;
|
|
925
|
-
const dependencies = props.data !== null && props.data.length === 0 ? props.data : '';
|
|
926
|
-
return useMemo(() => {
|
|
927
|
-
return <Tree
|
|
928
|
-
data={data}
|
|
929
|
-
showLine={true}
|
|
930
|
-
onSelect={callback}
|
|
931
|
-
/>
|
|
932
|
-
}, [dependencies]);
|
|
933
|
-
}
|
|
934
|
-
*/
|
|
935
919
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(e, {
|
|
936
920
|
key: hyperlink.dataset.key,
|
|
937
921
|
slug: hyperlink.dataset.slug,
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
/* ======================================================
|
|
2
2
|
<!-- Color Picker -->
|
|
3
3
|
/* ====================================================== */
|
|
4
|
-
.custom-
|
|
4
|
+
.custom-colorpicker__wrapper {
|
|
5
|
+
position: relative;
|
|
5
6
|
--color-control-border-radius: 0.375rem;
|
|
6
7
|
--color-control-size: 30px;
|
|
7
8
|
--color-control-border-color: rgba(0,0,0,.1);
|
|
9
|
+
/* placeholder */
|
|
10
|
+
}
|
|
11
|
+
.custom-colorpicker__wrapper .custom-colorpicker-control {
|
|
8
12
|
-webkit-appearance: none;
|
|
9
13
|
-moz-appearance: none;
|
|
10
14
|
appearance: none;
|
|
@@ -15,24 +19,40 @@
|
|
|
15
19
|
border: none;
|
|
16
20
|
cursor: pointer;
|
|
17
21
|
}
|
|
18
|
-
.custom-
|
|
22
|
+
.custom-colorpicker__wrapper .custom-colorpicker-control::-webkit-color-swatch {
|
|
19
23
|
border: 2px solid var(--color-control-border-color);
|
|
20
24
|
}
|
|
21
|
-
.custom-
|
|
25
|
+
.custom-colorpicker__wrapper .custom-colorpicker-control::-moz-color-swatch {
|
|
22
26
|
border: 2px solid var(--color-control-border-color);
|
|
23
27
|
}
|
|
24
|
-
.custom-
|
|
28
|
+
.custom-colorpicker__wrapper .custom-colorpicker-control:disabled {
|
|
25
29
|
cursor: not-allowed;
|
|
26
30
|
}
|
|
27
|
-
.custom-
|
|
31
|
+
.custom-colorpicker__wrapper .custom-colorpicker__transparent-placeholder {
|
|
32
|
+
position: absolute;
|
|
33
|
+
width: var(--color-control-size);
|
|
34
|
+
height: var(--color-control-size);
|
|
35
|
+
left: 0;
|
|
36
|
+
top: 0;
|
|
37
|
+
z-index: 1;
|
|
38
|
+
pointer-events: none;
|
|
39
|
+
background: #fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==) repeat;
|
|
40
|
+
}
|
|
41
|
+
.custom-colorpicker__wrapper.custom-colorpicker--rounded .custom-colorpicker-control::-webkit-color-swatch {
|
|
42
|
+
border-radius: var(--color-control-border-radius);
|
|
43
|
+
}
|
|
44
|
+
.custom-colorpicker__wrapper.custom-colorpicker--rounded .custom-colorpicker-control::-moz-color-swatch {
|
|
28
45
|
border-radius: var(--color-control-border-radius);
|
|
29
46
|
}
|
|
30
|
-
.custom-
|
|
47
|
+
.custom-colorpicker__wrapper.custom-colorpicker--rounded .custom-colorpicker__transparent-placeholder {
|
|
31
48
|
border-radius: var(--color-control-border-radius);
|
|
32
49
|
}
|
|
33
|
-
.custom-
|
|
50
|
+
.custom-colorpicker__wrapper.custom-colorpicker--circle .custom-colorpicker-control::-webkit-color-swatch {
|
|
51
|
+
border-radius: 50%;
|
|
52
|
+
}
|
|
53
|
+
.custom-colorpicker__wrapper.custom-colorpicker--circle .custom-colorpicker-control::-moz-color-swatch {
|
|
34
54
|
border-radius: 50%;
|
|
35
55
|
}
|
|
36
|
-
.custom-
|
|
56
|
+
.custom-colorpicker__wrapper.custom-colorpicker--circle .custom-colorpicker__transparent-placeholder {
|
|
37
57
|
border-radius: 50%;
|
|
38
58
|
}
|
|
@@ -2,47 +2,90 @@
|
|
|
2
2
|
<!-- Color Picker -->
|
|
3
3
|
/* ====================================================== */
|
|
4
4
|
|
|
5
|
-
.custom-
|
|
6
|
-
|
|
5
|
+
.custom-colorpicker__wrapper {
|
|
6
|
+
position: relative;
|
|
7
7
|
--color-control-border-radius: 0.375rem;
|
|
8
8
|
--color-control-size: 30px;
|
|
9
9
|
--color-control-border-color: rgba(0,0,0,.1);
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
12
|
+
.custom-colorpicker-control {
|
|
13
|
+
|
|
14
|
+
-webkit-appearance: none;
|
|
15
|
+
-moz-appearance: none;
|
|
16
|
+
appearance: none;
|
|
17
|
+
background-color: transparent;
|
|
18
|
+
padding: 0 !important;
|
|
19
|
+
width: var(--color-control-size) !important;
|
|
20
|
+
height: var(--color-control-size) !important;
|
|
21
|
+
border: none;
|
|
22
|
+
cursor: pointer;
|
|
23
|
+
|
|
24
|
+
&::-webkit-color-swatch {
|
|
25
|
+
border: 2px solid var(--color-control-border-color);
|
|
26
|
+
}
|
|
27
|
+
&::-moz-color-swatch {
|
|
28
|
+
border: 2px solid var(--color-control-border-color);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
&:disabled {
|
|
32
|
+
cursor: not-allowed;
|
|
33
|
+
}
|
|
28
34
|
|
|
29
|
-
&:disabled {
|
|
30
|
-
cursor: not-allowed;
|
|
31
|
-
}
|
|
32
35
|
|
|
33
|
-
&.custom-form-control-color--rounded::-webkit-color-swatch {
|
|
34
|
-
border-radius: var(--color-control-border-radius);
|
|
35
36
|
}
|
|
36
|
-
|
|
37
|
-
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
/* placeholder */
|
|
41
|
+
.custom-colorpicker__transparent-placeholder {
|
|
42
|
+
position: absolute;
|
|
43
|
+
width: var(--color-control-size);
|
|
44
|
+
height: var(--color-control-size);
|
|
45
|
+
left: 0;
|
|
46
|
+
top: 0;
|
|
47
|
+
z-index: 1;
|
|
48
|
+
pointer-events: none;
|
|
49
|
+
background: #fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==) repeat;
|
|
38
50
|
}
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
&.custom-colorpicker--rounded {
|
|
54
|
+
.custom-colorpicker-control {
|
|
55
|
+
&::-webkit-color-swatch {
|
|
56
|
+
border-radius: var(--color-control-border-radius);
|
|
57
|
+
}
|
|
39
58
|
|
|
59
|
+
&::-moz-color-swatch {
|
|
60
|
+
border-radius: var(--color-control-border-radius);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.custom-colorpicker__transparent-placeholder {
|
|
65
|
+
border-radius: var(--color-control-border-radius);
|
|
66
|
+
}
|
|
67
|
+
|
|
40
68
|
|
|
41
|
-
&.custom-form-control-color--circle::-webkit-color-swatch {
|
|
42
|
-
border-radius: 50%;
|
|
43
69
|
}
|
|
44
|
-
|
|
45
|
-
|
|
70
|
+
|
|
71
|
+
&.custom-colorpicker--circle {
|
|
72
|
+
|
|
73
|
+
.custom-colorpicker-control {
|
|
74
|
+
&::-webkit-color-swatch {
|
|
75
|
+
border-radius: 50%;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
&::-moz-color-swatch {
|
|
79
|
+
border-radius: 50%;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.custom-colorpicker__transparent-placeholder {
|
|
84
|
+
border-radius: 50%;
|
|
85
|
+
}
|
|
86
|
+
|
|
46
87
|
}
|
|
47
|
-
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
|
|
48
91
|
}
|
|
@@ -9,6 +9,8 @@ declare module 'react' {
|
|
|
9
9
|
interface ColorPickerProps extends React.ComponentPropsWithoutRef<"input"> {
|
|
10
10
|
wrapperClassName?: string;
|
|
11
11
|
controlClassName?: string;
|
|
12
|
+
clearBtnClassName?: string;
|
|
13
|
+
clearBtnLabel?: string;
|
|
12
14
|
value?: string;
|
|
13
15
|
label?: React.ReactNode | string;
|
|
14
16
|
name?: string;
|
|
@@ -32,6 +34,8 @@ const ColorPicker = forwardRef((props: ColorPickerProps, ref: any) => {
|
|
|
32
34
|
const {
|
|
33
35
|
wrapperClassName,
|
|
34
36
|
controlClassName,
|
|
37
|
+
clearBtnClassName,
|
|
38
|
+
clearBtnLabel,
|
|
35
39
|
disabled,
|
|
36
40
|
required,
|
|
37
41
|
readOnly,
|
|
@@ -59,11 +63,11 @@ const ColorPicker = forwardRef((props: ColorPickerProps, ref: any) => {
|
|
|
59
63
|
if (shape && typeof shape === 'string') {
|
|
60
64
|
switch (shape) {
|
|
61
65
|
case 'rounded':
|
|
62
|
-
shapeClassName = 'custom-
|
|
63
|
-
break;
|
|
66
|
+
shapeClassName = 'custom-colorpicker--rounded';
|
|
67
|
+
break;
|
|
64
68
|
case 'circle':
|
|
65
|
-
shapeClassName = 'custom-
|
|
66
|
-
break;
|
|
69
|
+
shapeClassName = 'custom-colorpicker--circle';
|
|
70
|
+
break;
|
|
67
71
|
}
|
|
68
72
|
}
|
|
69
73
|
|
|
@@ -73,7 +77,7 @@ const ColorPicker = forwardRef((props: ColorPickerProps, ref: any) => {
|
|
|
73
77
|
rootRef.current.classList.add('focus');
|
|
74
78
|
|
|
75
79
|
//
|
|
76
|
-
onFocus?.(event);
|
|
80
|
+
onFocus?.(event);
|
|
77
81
|
}
|
|
78
82
|
|
|
79
83
|
function handleChange(event: ChangeEvent<HTMLInputElement>) {
|
|
@@ -111,19 +115,19 @@ const ColorPicker = forwardRef((props: ColorPickerProps, ref: any) => {
|
|
|
111
115
|
|
|
112
116
|
useEffect(() => {
|
|
113
117
|
|
|
118
|
+
|
|
114
119
|
// update default value
|
|
115
120
|
//--------------
|
|
116
121
|
setChangedVal(value || '');
|
|
117
122
|
|
|
118
|
-
|
|
119
123
|
}, [value]);
|
|
120
124
|
|
|
121
125
|
|
|
122
126
|
return (
|
|
123
127
|
<>
|
|
124
128
|
|
|
125
|
-
<div className={wrapperClassName || wrapperClassName === '' ? wrapperClassName :
|
|
126
|
-
{label ? <><label htmlFor={idRes} className="form-label" dangerouslySetInnerHTML={{__html: `${label}`}}></label></> : null}
|
|
129
|
+
<div className={wrapperClassName || wrapperClassName === '' ? `custom-colorpicker__wrapper ${shapeClassName} ${wrapperClassName}` : `custom-colorpicker__wrapper mb-3 position-relative ${shapeClassName}`} ref={rootRef}>
|
|
130
|
+
{label ? <><label htmlFor={idRes} className="form-label" dangerouslySetInnerHTML={{ __html: `${label}` }}></label></> : null}
|
|
127
131
|
|
|
128
132
|
<div className="input-group">
|
|
129
133
|
<input
|
|
@@ -135,11 +139,11 @@ const ColorPicker = forwardRef((props: ColorPickerProps, ref: any) => {
|
|
|
135
139
|
ref.current = node;
|
|
136
140
|
}
|
|
137
141
|
}}
|
|
138
|
-
|
|
139
|
-
|
|
142
|
+
|
|
143
|
+
|
|
140
144
|
tabIndex={tabIndex || 0}
|
|
141
145
|
type='color'
|
|
142
|
-
className={`${controlClassName || controlClassName === '' ? controlClassName : "form-control custom-
|
|
146
|
+
className={`${controlClassName || controlClassName === '' ? controlClassName : "form-control custom-colorpicker-control flex-grow-0"}`}
|
|
143
147
|
id={idRes}
|
|
144
148
|
name={name}
|
|
145
149
|
value={changedVal}
|
|
@@ -153,9 +157,17 @@ const ColorPicker = forwardRef((props: ColorPickerProps, ref: any) => {
|
|
|
153
157
|
{...attributes}
|
|
154
158
|
/>
|
|
155
159
|
|
|
160
|
+
{changedVal !== '' ? <><button tabIndex={-1} type="button" className={clearBtnClassName || 'btn btn-link btn-sm'} onClick={() => {
|
|
161
|
+
setChangedVal('');
|
|
162
|
+
}}>{clearBtnLabel || 'clear'}
|
|
163
|
+
</button></> : null}
|
|
164
|
+
|
|
165
|
+
|
|
156
166
|
</div>
|
|
157
167
|
{required ? <><span className="position-absolute end-0 top-0 my-2 mx-2"><span className="text-danger">*</span></span></> : ''}
|
|
158
168
|
|
|
169
|
+
{changedVal === '' ? <><div className="custom-colorpicker__transparent-placeholder"></div></> : null}
|
|
170
|
+
|
|
159
171
|
</div>
|
|
160
172
|
|
|
161
173
|
|
|
@@ -269,21 +269,6 @@ export default function TreeList(props: TreeListProps) {
|
|
|
269
269
|
}
|
|
270
270
|
|
|
271
271
|
|
|
272
|
-
// Note: that component re-rendering (such as routing changes) will cause collapsing problems
|
|
273
|
-
// with `onSelect()`, please use `useMemo()` to wrap `<Tree />`, like this:
|
|
274
|
-
/*
|
|
275
|
-
function TreeMemo(props: any) {
|
|
276
|
-
const {t, callback, data} = props;
|
|
277
|
-
const dependencies = props.data !== null && props.data.length === 0 ? props.data : '';
|
|
278
|
-
return useMemo(() => {
|
|
279
|
-
return <Tree
|
|
280
|
-
data={data}
|
|
281
|
-
showLine={true}
|
|
282
|
-
onSelect={callback}
|
|
283
|
-
/>
|
|
284
|
-
}, [dependencies]);
|
|
285
|
-
}
|
|
286
|
-
*/
|
|
287
272
|
onSelect?.(e, {
|
|
288
273
|
key: hyperlink.dataset.key,
|
|
289
274
|
slug: hyperlink.dataset.slug,
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"author": "UIUX Lab",
|
|
3
3
|
"email": "uiuxlab@gmail.com",
|
|
4
4
|
"name": "funda-ui",
|
|
5
|
-
"version": "1.0.
|
|
5
|
+
"version": "1.0.546",
|
|
6
6
|
"description": "React components using pure Bootstrap 5+ which does not contain any external style and script libraries.",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|