vxe-pc-ui 4.16.21 → 4.16.22
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/dist/all.esm.js +316 -66
- package/dist/style.css +1 -1
- package/dist/style.min.css +1 -1
- package/es/color-picker/index.js +14 -0
- package/es/color-picker/src/color-picker.js +40 -28
- package/es/color-picker/src/util.js +252 -36
- package/es/date-picker/src/date-picker.js +2 -1
- package/es/date-range-picker/src/date-range-picker.js +2 -1
- package/es/icon/style.css +1 -1
- package/es/select/src/select.js +2 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/lib/color-picker/index.js +14 -0
- package/lib/color-picker/index.min.js +1 -1
- package/lib/color-picker/src/color-picker.js +38 -27
- package/lib/color-picker/src/color-picker.min.js +1 -1
- package/lib/color-picker/src/util.js +272 -49
- package/lib/color-picker/src/util.min.js +1 -1
- package/lib/date-picker/src/date-picker.js +2 -1
- package/lib/date-picker/src/date-picker.min.js +1 -1
- package/lib/date-range-picker/src/date-range-picker.js +2 -1
- package/lib/date-range-picker/src/date-range-picker.min.js +1 -1
- package/lib/icon/style/style.css +1 -1
- package/lib/icon/style/style.min.css +1 -1
- package/lib/index.umd.js +324 -80
- package/lib/index.umd.min.js +1 -1
- package/lib/select/src/select.js +2 -1
- package/lib/select/src/select.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/package.json +1 -1
- package/packages/color-picker/index.ts +15 -0
- package/packages/color-picker/src/color-picker.ts +40 -29
- package/packages/color-picker/src/util.ts +267 -42
- package/packages/date-picker/src/date-picker.ts +3 -2
- package/packages/date-range-picker/src/date-range-picker.ts +3 -2
- package/packages/select/src/select.ts +3 -2
- package/types/components/color-picker.d.ts +93 -0
- package/types/components/grid.d.ts +6 -0
- package/types/components/table.d.ts +2 -2
- package/types/ui/index.d.ts +2 -0
- /package/es/icon/{iconfont.1784868322028.ttf → iconfont.1784893283450.ttf} +0 -0
- /package/es/icon/{iconfont.1784868322028.woff → iconfont.1784893283450.woff} +0 -0
- /package/es/icon/{iconfont.1784868322028.woff2 → iconfont.1784893283450.woff2} +0 -0
- /package/es/{iconfont.1784868322028.ttf → iconfont.1784893283450.ttf} +0 -0
- /package/es/{iconfont.1784868322028.woff → iconfont.1784893283450.woff} +0 -0
- /package/es/{iconfont.1784868322028.woff2 → iconfont.1784893283450.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1784868322028.ttf → iconfont.1784893283450.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1784868322028.woff → iconfont.1784893283450.woff} +0 -0
- /package/lib/icon/style/{iconfont.1784868322028.woff2 → iconfont.1784893283450.woff2} +0 -0
- /package/lib/{iconfont.1784868322028.ttf → iconfont.1784893283450.ttf} +0 -0
- /package/lib/{iconfont.1784868322028.woff → iconfont.1784893283450.woff} +0 -0
- /package/lib/{iconfont.1784868322028.woff2 → iconfont.1784893283450.woff2} +0 -0
package/es/ui/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { VxeUI, setConfig, setIcon } from '@vxe-ui/core';
|
|
2
2
|
import { dynamicApp } from '../dynamics';
|
|
3
3
|
import { warnLog } from './src/log';
|
|
4
|
-
export const version = "4.16.
|
|
4
|
+
export const version = "4.16.22";
|
|
5
5
|
VxeUI.uiVersion = version;
|
|
6
6
|
VxeUI.dynamicApp = dynamicApp;
|
|
7
7
|
export function config(options) {
|
package/es/ui/src/log.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { VxeUI } from '@vxe-ui/core';
|
|
2
2
|
const { log } = VxeUI;
|
|
3
|
-
const uiVersion = `ui v${"4.16.
|
|
3
|
+
const uiVersion = `ui v${"4.16.22"}`;
|
|
4
4
|
export function createComponentLog(name) {
|
|
5
5
|
const tableVersion = VxeUI.tableVersion ? `table v${VxeUI.tableVersion}` : '';
|
|
6
6
|
const ganttVersion = VxeUI.ganttVersion ? `gantt v${VxeUI.ganttVersion}` : '';
|
|
@@ -7,6 +7,7 @@ exports.default = exports.VxeColorPicker = exports.ColorPicker = void 0;
|
|
|
7
7
|
var _core = require("@vxe-ui/core");
|
|
8
8
|
var _colorPicker = _interopRequireDefault(require("./src/color-picker"));
|
|
9
9
|
var _dynamics = require("../dynamics");
|
|
10
|
+
var _util = require("./src/util");
|
|
10
11
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
12
|
const VxeColorPicker = exports.VxeColorPicker = Object.assign({}, _colorPicker.default, {
|
|
12
13
|
install(app) {
|
|
@@ -15,5 +16,18 @@ const VxeColorPicker = exports.VxeColorPicker = Object.assign({}, _colorPicker.d
|
|
|
15
16
|
});
|
|
16
17
|
_dynamics.dynamicApp.use(VxeColorPicker);
|
|
17
18
|
_core.VxeUI.component(_colorPicker.default);
|
|
19
|
+
_core.VxeUI.color = {
|
|
20
|
+
parseColor: _util.parseColor,
|
|
21
|
+
hasRgb: _util.hasRgb,
|
|
22
|
+
hasHex: _util.hasHex,
|
|
23
|
+
toRgb: _util.toRgb,
|
|
24
|
+
toRgbString: _util.toRgbString,
|
|
25
|
+
toHex: _util.toHex,
|
|
26
|
+
toHexString: _util.toHexString,
|
|
27
|
+
toHsl: _util.toHsl,
|
|
28
|
+
toHsv: _util.toHsv,
|
|
29
|
+
lighten: _util.lighten,
|
|
30
|
+
darken: _util.darken
|
|
31
|
+
};
|
|
18
32
|
const ColorPicker = exports.ColorPicker = VxeColorPicker;
|
|
19
33
|
var _default = exports.default = VxeColorPicker;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.VxeColorPicker=exports.ColorPicker=void 0;var _core=require("@vxe-ui/core"),_colorPicker=_interopRequireDefault(require("./src/color-picker")),_dynamics=require("../dynamics");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let VxeColorPicker=exports.VxeColorPicker=Object.assign({},_colorPicker.default,{install(e){e.component(_colorPicker.default.name,_colorPicker.default)}}),ColorPicker=(_dynamics.dynamicApp.use(VxeColorPicker),_core.VxeUI.component(_colorPicker.default),exports.ColorPicker=VxeColorPicker);var _default=exports.default=VxeColorPicker;
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.VxeColorPicker=exports.ColorPicker=void 0;var _core=require("@vxe-ui/core"),_colorPicker=_interopRequireDefault(require("./src/color-picker")),_dynamics=require("../dynamics"),_util=require("./src/util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let VxeColorPicker=exports.VxeColorPicker=Object.assign({},_colorPicker.default,{install(e){e.component(_colorPicker.default.name,_colorPicker.default)}}),ColorPicker=(_dynamics.dynamicApp.use(VxeColorPicker),_core.VxeUI.component(_colorPicker.default),_core.VxeUI.color={parseColor:_util.parseColor,hasRgb:_util.hasRgb,hasHex:_util.hasHex,toRgb:_util.toRgb,toRgbString:_util.toRgbString,toHex:_util.toHex,toHexString:_util.toHexString,toHsl:_util.toHsl,toHsv:_util.toHsv,lighten:_util.lighten,darken:_util.darken},exports.ColorPicker=VxeColorPicker);var _default=exports.default=VxeColorPicker;
|
|
@@ -81,6 +81,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
81
81
|
const $xeModal = (0, _vue.inject)('$xeModal', null);
|
|
82
82
|
const $xeDrawer = (0, _vue.inject)('$xeDrawer', null);
|
|
83
83
|
const $xeTable = (0, _vue.inject)('$xeTable', null);
|
|
84
|
+
const $xeCard = (0, _vue.inject)('$xeCard', null);
|
|
84
85
|
const $xeForm = (0, _vue.inject)('$xeForm', null);
|
|
85
86
|
const formItemInfo = (0, _vue.inject)('xeFormItemInfo', null);
|
|
86
87
|
const WinEyeDropper = typeof window !== 'undefined' ? window.EyeDropper : null;
|
|
@@ -158,7 +159,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
158
159
|
if (_xeUtils.default.isBoolean(globalTransfer)) {
|
|
159
160
|
return globalTransfer;
|
|
160
161
|
}
|
|
161
|
-
if ($xeTable || $xeModal || $xeDrawer || $xeForm) {
|
|
162
|
+
if ($xeTable || $xeModal || $xeDrawer || $xeCard || $xeForm) {
|
|
162
163
|
return true;
|
|
163
164
|
}
|
|
164
165
|
}
|
|
@@ -240,31 +241,41 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
240
241
|
const isRgb = computeIsRgb.value;
|
|
241
242
|
const hueSliderEl = refHueSliderElem.value;
|
|
242
243
|
const alphaSliderEl = refAlphaSliderElem.value;
|
|
243
|
-
const colorRest = (0, _util.
|
|
244
|
-
reactData.hexValue =
|
|
245
|
-
reactData.rValue =
|
|
246
|
-
reactData.gValue =
|
|
247
|
-
reactData.bValue =
|
|
248
|
-
reactData.aValue =
|
|
249
|
-
if (colorRest
|
|
250
|
-
if (
|
|
251
|
-
|
|
252
|
-
const rgbRest = (0, _util.hexToRgb)(colorRest.hex);
|
|
253
|
-
if (rgbRest) {
|
|
254
|
-
reactData.rValue = rgbRest.r;
|
|
255
|
-
reactData.gValue = rgbRest.g;
|
|
256
|
-
reactData.bValue = rgbRest.b;
|
|
257
|
-
reactData.aValue = rgbRest.a;
|
|
258
|
-
}
|
|
259
|
-
}
|
|
244
|
+
const colorRest = (0, _util.parseValColor)(selectColor);
|
|
245
|
+
reactData.hexValue = '';
|
|
246
|
+
reactData.rValue = 0;
|
|
247
|
+
reactData.gValue = 0;
|
|
248
|
+
reactData.bValue = 0;
|
|
249
|
+
reactData.aValue = 1;
|
|
250
|
+
if (colorRest) {
|
|
251
|
+
if (colorRest.type === 'hex') {
|
|
252
|
+
reactData.hexValue = colorRest.hex;
|
|
260
253
|
} else {
|
|
261
|
-
|
|
262
|
-
|
|
254
|
+
reactData.rValue = colorRest.r;
|
|
255
|
+
reactData.gValue = colorRest.g;
|
|
256
|
+
reactData.bValue = colorRest.b;
|
|
257
|
+
reactData.aValue = colorRest.a;
|
|
258
|
+
}
|
|
259
|
+
if (colorRest.value) {
|
|
260
|
+
if (isRgb) {
|
|
261
|
+
if (colorRest.type === 'hex') {
|
|
262
|
+
const rgbRest = (0, _util.hexToRgb)(colorRest.hex);
|
|
263
|
+
if (rgbRest) {
|
|
264
|
+
reactData.rValue = rgbRest.r;
|
|
265
|
+
reactData.gValue = rgbRest.g;
|
|
266
|
+
reactData.bValue = rgbRest.b;
|
|
267
|
+
reactData.aValue = rgbRest.a;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
} else {
|
|
271
|
+
if (colorRest.type !== 'hex') {
|
|
272
|
+
reactData.hexValue = (0, _util.rgbToHexVal)(colorRest.r, colorRest.g, colorRest.b, colorRest.a);
|
|
273
|
+
}
|
|
263
274
|
}
|
|
264
275
|
}
|
|
265
276
|
}
|
|
266
277
|
if (isAniVisible) {
|
|
267
|
-
const hsvRest = colorRest.type === 'hex' ? (0, _util.hexToHsv)(colorRest.hex) : (0, _util.rgbToHsv)(colorRest);
|
|
278
|
+
const hsvRest = colorRest ? colorRest.type === 'hex' ? (0, _util.hexToHsv)(colorRest.hex) : (0, _util.rgbToHsv)(colorRest) : null;
|
|
268
279
|
const colorPanelEl = refColorPanelElem.value;
|
|
269
280
|
if (hsvRest) {
|
|
270
281
|
if (colorPanelEl) {
|
|
@@ -277,7 +288,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
277
288
|
}
|
|
278
289
|
}
|
|
279
290
|
if (alphaSliderEl) {
|
|
280
|
-
handleAlphaColor(alphaSliderEl.clientWidth *
|
|
291
|
+
handleAlphaColor(alphaSliderEl.clientWidth * reactData.aValue);
|
|
281
292
|
}
|
|
282
293
|
}
|
|
283
294
|
};
|
|
@@ -455,7 +466,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
455
466
|
gNum = itemNum - offsetNum;
|
|
456
467
|
break;
|
|
457
468
|
}
|
|
458
|
-
reactData.panelColor = (0, _util.
|
|
469
|
+
reactData.panelColor = (0, _util.toValRgb)(rNum, gNum, bNum);
|
|
459
470
|
hueSliderBtnEl.style.left = (0, _dom.toCssUnit)(offsetLeft);
|
|
460
471
|
}
|
|
461
472
|
};
|
|
@@ -532,7 +543,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
532
543
|
bValue,
|
|
533
544
|
aValue
|
|
534
545
|
} = reactData;
|
|
535
|
-
reactData.selectColor = (0, _util.
|
|
546
|
+
reactData.selectColor = (0, _util.toValRgb)(rValue, gValue, bValue, aValue);
|
|
536
547
|
updateModelColor();
|
|
537
548
|
};
|
|
538
549
|
const handleInputAlphaEvent = () => {
|
|
@@ -591,12 +602,12 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
591
602
|
const colorPanelRect = colorPanelEl.getBoundingClientRect();
|
|
592
603
|
const offsetTop = Math.min(clientHeight, Math.max(0, clientY - colorPanelRect.y));
|
|
593
604
|
const offsetLeft = Math.min(clientWidth, Math.max(0, clientX - colorPanelRect.x));
|
|
594
|
-
const colorRest = (0, _util.
|
|
605
|
+
const colorRest = (0, _util.parseValColor)(panelColor);
|
|
595
606
|
if (colorRest) {
|
|
596
607
|
const hsvRest = colorRest.type === 'hex' ? (0, _util.hexToHsv)(colorRest.hex) : (0, _util.rgbToHsv)(colorRest);
|
|
597
608
|
if (hsvRest) {
|
|
598
609
|
const ragRest = (0, _util.hsvToRgb)(hsvRest.h, offsetLeft / clientWidth, 1 - offsetTop / clientHeight);
|
|
599
|
-
reactData.selectColor = (0, _util.
|
|
610
|
+
reactData.selectColor = (0, _util.toValRgb)(ragRest.r, ragRest.g, ragRest.b, showAlpha ? aValue : null);
|
|
600
611
|
updateModelColor();
|
|
601
612
|
}
|
|
602
613
|
}
|
|
@@ -898,7 +909,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
898
909
|
reactData.hexValue = val;
|
|
899
910
|
},
|
|
900
911
|
onChange() {
|
|
901
|
-
const colorRest = (0, _util.
|
|
912
|
+
const colorRest = (0, _util.parseValColor)(reactData.hexValue);
|
|
902
913
|
if (colorRest) {
|
|
903
914
|
if (colorRest.value) {
|
|
904
915
|
reactData.selectColor = colorRest.value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_util=require("./util"),_button=_interopRequireDefault(require("../../button")),_input=_interopRequireDefault(require("../../input")),_numberInput=_interopRequireDefault(require("../../number-input"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeColorPicker",props:{modelValue:String,placeholder:String,clearable:{type:Boolean,default:()=>(0,_ui.getConfig)().colorPicker.clearable},type:{type:String,default:()=>(0,_ui.getConfig)().colorPicker.type},size:{type:String,default:()=>(0,_ui.getConfig)().colorPicker.size||(0,_ui.getConfig)().size},className:[String,Function],popupClassName:[String,Function],colors:{type:Array,default:()=>_xeUtils.default.clone((0,_ui.getConfig)().colorPicker.colors,!0)||[]},showAlpha:{type:Boolean,default:()=>(0,_ui.getConfig)().colorPicker.showAlpha},showEyeDropper:{type:Boolean,default:()=>(0,_ui.getConfig)().colorPicker.showEyeDropper},showColorExtractor:{type:Boolean,default:()=>(0,_ui.getConfig)().colorPicker.showColorExtractor},showQuick:{type:Boolean,default:()=>(0,_ui.getConfig)().colorPicker.showQuick},readonly:{type:Boolean,default:null},disabled:{type:Boolean,default:null},clickToCopy:{type:Boolean,default:()=>(0,_ui.getConfig)().colorPicker.clickToCopy},placement:String,transfer:{type:Boolean,default:null},popupConfig:Object},emits:["update:modelValue","change","clear","click"],setup(_,e){let t=e.emit,D=(0,_vue.inject)("$xeModal",null),O=(0,_vue.inject)("$xeDrawer",null),M=(0,_vue.inject)("$xeTable",null),o=(0,_vue.inject)("$xeForm",null),a=(0,_vue.inject)("xeFormItemInfo",null),h="undefined"!=typeof window?window.EyeDropper:null;var l=_xeUtils.default.uniqueId();let S=(0,_ui.useSize)(_).computeSize,d=(0,_vue.ref)(),m=(0,_vue.ref)(),g=(0,_vue.ref)(),x=(0,_vue.ref)(),f=(0,_vue.ref)(),b=(0,_vue.ref)(),C=(0,_vue.ref)(),k=(0,_vue.ref)(),y=(0,_vue.ref)(),V=(0,_vue.reactive)({initialized:!1,selectTyle:"hex",selectColor:""+(_.modelValue||""),showTypePopup:!1,panelColor:"",hexValue:"",rValue:0,gValue:0,bValue:0,aValue:0,panelIndex:0,panelStyle:{},panelPlacement:null,visiblePanel:!1,isAniVisible:!1,isActivated:!1}),w=[{label:"HEX",value:"hex"},{label:"RGB",value:"rgb"}],i={},L=(0,_vue.computed)(()=>{var e=_.readonly;return null===e?!!o&&o.props.readonly:e}),P=(0,_vue.computed)(()=>{var e=_.disabled;return null===e?!!o&&o.props.disabled:e}),E=(0,_vue.computed)(()=>{var e=_.transfer;if(null===e){var l=(0,_ui.getConfig)().colorPicker.transfer;if(_xeUtils.default.isBoolean(l))return l;if(M||D||O||o)return!0}return e}),N=(0,_vue.computed)(()=>{var e=_.colors;return e?e.map(e=>_xeUtils.default.isString(e)?{label:e,value:e}:{label:_xeUtils.default.eqNull(e.label)?e.value:e.label,value:e.value}):[]}),T=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().colorPicker.popupConfig,_.popupConfig)),I=(0,_vue.computed)(()=>{var e=V.selectTyle;return"rgb"===e}),j=(0,_vue.computed)(()=>{let l=V.selectTyle;return w.find(e=>e.value===l)}),H={refElem:d},$={},R={xID:l,props:_,context:e,reactData:V,getRefMaps:()=>H,getComputeMaps:()=>$},F=e=>{t("update:modelValue",e)},u=()=>{var e=_.modelValue;V.selectColor=_xeUtils.default.toValueString(e),U()},r=()=>{var e=_.type;let l="rgb"!==e&&"rgba"!==e?"hex":"rgb";V.selectTyle=l,u()},U=()=>{var e,{selectColor:l,isAniVisible:o}=V,t=I.value,a=x.value,i=b.value,l=(0,_util.parseColor)(l);V.hexValue=l.hex,V.rValue=l.r,V.gValue=l.g,V.bValue=l.b,V.aValue=l.a,l.value&&(t?"hex"===l.type&&(t=(0,_util.hexToRgb)(l.hex))&&(V.rValue=t.r,V.gValue=t.g,V.bValue=t.b,V.aValue=t.a):"hex"!==l.type&&(V.hexValue=(0,_util.rgbToHex)(l))),o&&(t="hex"===l.type?(0,_util.hexToHsv)(l.hex):(0,_util.rgbToHsv)(l),o=k.value,t&&(o&&(e=o.clientHeight*(1-t.v),o=o.clientWidth*t.s,ne(o,e)),a)&&te(_xeUtils.default.ceil((1-t.h/360)*a.clientWidth)),i)&&p(i.clientWidth*l.a)},W=()=>{V.panelIndex<(0,_utils.getLastZIndex)()&&(V.panelIndex=(0,_utils.nextZIndex)())},n=()=>{let o=_.placement,t=V.panelIndex,a=d.value,i=g.value,u=E.value,r=T.value;var e=()=>{var e=(0,_dom.updatePanelPlacement)(a,i,{placement:r.placement||o,defaultPlacement:r.defaultPlacement,teleportTo:u}),l=Object.assign(e.style,{zIndex:t});V.panelStyle=l,V.panelPlacement=e.placement};return e(),(0,_vue.nextTick)().then(e)},c=()=>{var e=i.hpTimeout;P.value||(e&&(clearTimeout(e),i.hpTimeout=void 0),V.initialized||(V.initialized=!0),V.isActivated=!0,V.isAniVisible=!0,setTimeout(()=>{U(),V.visiblePanel=!0},10),W(),n())},s=()=>{V.visiblePanel=!1,i.hpTimeout=setTimeout(()=>{V.isAniVisible=!1},350)},v=(e,l)=>{(V.selectColor=l)!==_.modelValue&&(F(l),q("change",{value:l},e),o)&&a&&o.triggerItemEvent(e,a.itemConfig.field,l)},Y=(e,l)=>{v(e,l),q("clear",{value:l},e)},X=()=>{P.value||V.visiblePanel||c()},G=()=>{V.isActivated=!1},K=e=>{Y(e,null),s()},Q=e=>{var{selectTyle:l,selectColor:o,hexValue:t}=V,l="hex"===l?t:o;v(e,l),s()},Z=e=>{e.preventDefault(),(V.visiblePanel?s:c)()},J=e=>{Z(e),q("click",{},e)},ee=()=>{V.showTypePopup=!1},le=e=>{e.stopPropagation(),V.showTypePopup=!V.showTypePopup},oe=e=>{var l=V.selectTyle;e!==l&&(V.selectTyle=e,U()),V.showTypePopup=!1},te=t=>{var a=x.value,i=f.value;if(a&&i){t<0&&(t=0);var a=_xeUtils.default.toInteger(a.clientWidth),u=255,a=_xeUtils.default.ceil(1530/a*t),r=a%u;let e=0,l=0,o=0;switch(Math.ceil(a/u)){case 1:e=u,o=r;break;case 2:e=u-r,o=u;break;case 3:l=r,o=u;break;case 4:l=u,o=u-r;break;case 5:e=r,l=u;break;case 6:e=u,l=u-r}V.panelColor=(0,_util.toRgb)(e,l,o),i.style.left=(0,_dom.toCssUnit)(t)}},B=e=>{var l=x.value,o=f.value;l&&o&&(o=l.getBoundingClientRect(),l=_xeUtils.default.toInteger(l.clientWidth),l=_xeUtils.default.ceil(Math.min(l-1,Math.max(1,e.clientX-o.x))),te(l))},ae=e=>{e.preventDefault(),document.onmousemove=e=>{e.preventDefault(),B(e)},document.onmouseup=e=>{document.onmousemove=null,document.onmouseup=null,B(e)}},p=e=>{var l=V.selectColor,o=b.value,t=C.value;o&&t&&(o=o.getBoundingClientRect().width,o=_xeUtils.default.ceil(100/o*(e=o<(e=e<0?0:e)?o:e)/100,2),V.aValue=o,t.style.left=(0,_dom.toCssUnit)(e),V.selectColor=(0,_util.updateColorAlpha)(l,o))},z=e=>{var l=b.value,o=C.value;l&&o&&(l=(o=l.getBoundingClientRect()).width,l=Math.min(l,Math.max(0,e.clientX-o.x)),p(l),U())},ie=e=>{e.preventDefault(),document.onmousemove=e=>{e.preventDefault(),z(e)},document.onmouseup=e=>{document.onmousemove=null,document.onmouseup=null,z(e)}},A=()=>{var{rValue:e,gValue:l,bValue:o,aValue:t}=V;V.selectColor=(0,_util.toRgb)(e,l,o,t),U()},ue=()=>{var e=V.aValue,l=b.value,o=C.value;l&&o&&(o=l.getBoundingClientRect().width*e,p(o))},re=(e,l)=>{l=l.value;V.selectColor=l,U()},ne=(e,l)=>{var o=y.value;o&&(o.style.top=(0,_dom.toCssUnit)(l),o.style.left=(0,_dom.toCssUnit)(e))},ce=()=>{if(h)try{(new h).open().then(e=>{e&&e.sRGBHex&&(V.selectColor=e.sRGBHex,U())}).catch(()=>{})}catch(e){}},se=(e,l)=>{var o,t=_.showAlpha,{panelColor:a,aValue:i}=V,u=k.value,r=y.value;u&&r&&({clientWidth:r,clientHeight:o}=u,u=u.getBoundingClientRect(),l=Math.min(o,Math.max(0,l-u.y)),e=Math.min(r,Math.max(0,e-u.x)),(u=(0,_util.parseColor)(a))&&(a="hex"===u.type?(0,_util.hexToHsv)(u.hex):(0,_util.rgbToHsv)(u))&&(u=(0,_util.hsvToRgb)(a.h,e/r,1-l/o),V.selectColor=(0,_util.toRgb)(u.r,u.g,u.b,t?i:null),U()),ne(e,l))},ve=e=>{e.stopPropagation(),e.preventDefault(),se(e.clientX,e.clientY),document.onmousemove=e=>{se(e.clientX,e.clientY)},document.onmouseup=()=>{document.onmousemove=null,document.onmouseup=null}},pe=()=>{var e=V.selectColor;e&&_ui.VxeUI.clipboard.copy(e)&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:(0,_ui.getI18n)("vxe.colorPicker.copySuccess",[e]),status:"success"})},de=e=>{var l=V.visiblePanel;P.value||l&&(l=g.value,((0,_dom.getEventTargetNode)(e,l).flag?n:s)())},_e=e=>{var l,o,t=V.visiblePanel;P.value||(l=d.value,o=g.value,V.isActivated=(0,_dom.getEventTargetNode)(e,l).flag||(0,_dom.getEventTargetNode)(e,o).flag,t&&!V.isActivated&&s())},he=()=>{var{visiblePanel:e,isActivated:l}=V;e&&s(),l&&(V.isActivated=!1),(e||l)&&(e=m.value)&&e.blur()},me=()=>{var e=V.visiblePanel;e&&n()},q=(e,l,o)=>{t(e,(0,_ui.createEvent)(o,{$colorPicker:R},l))};l={dispatchEvent:q};Object.assign(R,l,{});return(0,_vue.watch)(()=>_.modelValue,()=>{u()}),(0,_vue.watch)(()=>_.type,()=>{r()}),(0,_vue.onMounted)(()=>{_ui.globalEvents.on(R,"mousewheel",de),_ui.globalEvents.on(R,"mousedown",_e),_ui.globalEvents.on(R,"blur",he),_ui.globalEvents.on(R,"resize",me)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(R,"mousewheel"),_ui.globalEvents.off(R,"mousedown"),_ui.globalEvents.off(R,"blur"),_ui.globalEvents.off(R,"resize")}),r(),(0,_vue.provide)("$xeColorPicker",R),R.renderVN=()=>{var{className:e,popupClassName:l,clearable:o,modelValue:t}=_,{initialized:a,isActivated:i,isAniVisible:u,visiblePanel:r}=V,n=S.value,c=P.value,s=E.value,v=L.value,p=T.value.appendTo;return v?(0,_vue.h)("div",{ref:d,class:["vxe-color-picker--readonly",e]},[(0,_vue.h)("div",{class:"vxe-color-picker--readonly-color",style:{backgroundColor:t}})]):(0,_vue.h)("div",{ref:d,class:["vxe-color-picker",e?_xeUtils.default.isFunction(e)?e({$colorPicker:R}):e:"",{["size--"+n]:n,"is--selected":!!t,"is--visible":r,"is--disabled":c,"is--active":i}]},[(0,_vue.h)("input",{ref:m,class:"vxe-color-picker--input",onFocus:X,onBlur:G}),(0,_vue.h)("div",{class:"vxe-color-picker--inner",onClick:J},[(0,_vue.h)("div",{class:"vxe-color-picker--inner-color",style:{backgroundColor:t}})]),(0,_vue.h)(_vue.Teleport,{to:(0,_dom.getPopupContainer)(p),disabled:!s||!a},[(0,_vue.h)("div",{ref:g,class:["vxe-table--ignore-clear vxe-color-picker--panel",l?_xeUtils.default.isFunction(l)?l({$colorPicker:R}):l:"",{["size--"+n]:n,"is--transfer":s,"ani--leave":u,"ani--enter":r}],placement:V.panelPlacement,style:V.panelStyle},[a&&(r||u)?(0,_vue.h)("div",{class:"vxe-color-picker--panel-wrapper",onClick:ee},[(v=_.showColorExtractor,e=V.panelColor,v?(0,_vue.h)("div",{ref:k,class:"vxe-color-picker--color-wrapper",onMousedown:ve},[(0,_vue.h)("div",{class:"vxe-color-picker--color-bg",style:{backgroundColor:e}}),(0,_vue.h)("div",{class:"vxe-color-picker--white-bg"}),(0,_vue.h)("div",{class:"vxe-color-picker--black-bg"}),(0,_vue.h)("div",{ref:y,class:"vxe-color-picker--color-active"})]):(0,_ui.renderEmptyElement)(R)),(()=>{var{showAlpha:e,clickToCopy:l,showEyeDropper:o}=_,{selectTyle:t,showTypePopup:a,hexValue:i,rValue:u,gValue:r,bValue:n,aValue:c,selectColor:s,panelColor:v}=V,p=I.value,d=j.value;return(0,_vue.h)("div",{class:"vxe-color-picker--bar-wrapper"},[(0,_vue.h)("div",{class:"vxe-color-picker--slider-wrapper"},[o&&h?(0,_vue.h)("div",{class:"vxe-color-picker--color-dropper"},[(0,_vue.h)("span",{class:"vxe-color-picker--color-dropper-btn",onClick:ce},[(0,_vue.h)("i",{class:(0,_ui.getIcon)().COLOR_PICKER_EYE_DROPPER})])]):(0,_ui.renderEmptyElement)(R),(0,_vue.h)("div",{class:"vxe-color-picker--slider-preview"},[(0,_vue.h)("div",{class:"vxe-color-picker--preview-btn"},[(0,_vue.h)("div",{class:"vxe-color-picker--preview-color",style:{backgroundColor:s}},l?[(0,_vue.h)("span",{class:"vxe-color-picker--preview-copy-btn",onClick:pe},[(0,_vue.h)("i",{class:(0,_ui.getIcon)().COLOR_PICKER_COLOR_COPY})])]:[])])]),(0,_vue.h)("div",{class:"vxe-color-picker--slider-handle"},[(0,_vue.h)("div",{ref:x,class:"vxe-color-picker--bar-hue-slider",onClick:B},[(0,_vue.h)("div",{ref:f,class:"vxe-color-picker--bar-hue-btn",onMousedown:ae})]),e?(0,_vue.h)("div",{ref:b,class:"vxe-color-picker--bar-alpha-slider",onClick:z},[(0,_vue.h)("div",{class:"vxe-color-picker--bar-alpha-bg",style:{background:`linear-gradient(to right, rgba(0, 0, 0, 0), ${v})`}}),(0,_vue.h)("div",{ref:C,class:"vxe-color-picker--bar-alpha-btn",onMousedown:ie})]):(0,_ui.renderEmptyElement)(R)])]),(0,_vue.h)("div",{class:"vxe-color-picker--custom-wrapper"},[(0,_vue.h)("div",{class:"vxe-color-picker--type-switch"},[(0,_vue.h)("div",{class:"vxe-color-picker--type-label",onClick:le},[(0,_vue.h)("span",""+(d?d.label:t)),(0,_vue.h)("span",{class:"vxe-color-picker--type-icon"},[(0,_vue.h)("i",{class:a?(0,_ui.getIcon)().COLOR_PICKER_TPTY_OPEN:(0,_ui.getIcon)().COLOR_PICKER_TPTY_CLOSE})])]),(0,_vue.h)("div",{class:["vxe-color-picker--type-popup",{"is--visible":a}]},w.map(l=>(0,_vue.h)("div",{class:"vxe-color-picker--type-item",onClick(e){e.stopPropagation(),oe(l.value)}},l.label)))]),(0,_vue.h)("div",{class:`vxe-color-picker--${t}-wrapper`},p?[(0,_vue.h)("div",{class:"vxe-color-picker--input-wrapper"},[(0,_vue.h)(_numberInput.default,{type:"integer",size:"mini",align:"center",min:0,max:255,maxLength:3,placeholder:"",modelValue:u,controlConfig:{showButton:!1},"onUpdate:modelValue"(e){V.rValue=e},onChange:A}),(0,_vue.h)(_numberInput.default,{type:"integer",size:"mini",align:"center",min:0,max:255,maxLength:3,placeholder:"",modelValue:r,controlConfig:{showButton:!1},"onUpdate:modelValue"(e){V.gValue=e},onChange:A}),(0,_vue.h)(_numberInput.default,{type:"integer",size:"mini",align:"center",min:0,max:255,maxLength:3,placeholder:"",modelValue:n,controlConfig:{showButton:!1},"onUpdate:modelValue"(e){V.bValue=e},onChange:A}),(0,_vue.h)(_numberInput.default,{type:"number",size:"mini",align:"center",min:0,max:1,step:.01,maxLength:4,placeholder:"",modelValue:c,controlConfig:{showButton:!1},"onUpdate:modelValue"(e){V.aValue=e},onChange:ue})]),(0,_vue.h)("div",{class:"vxe-color-picker--input-title"},[(0,_vue.h)("span","R"),(0,_vue.h)("span","G"),(0,_vue.h)("span","B"),(0,_vue.h)("span","A")])]:[(0,_vue.h)("div",{class:"vxe-color-picker--input-wrapper"},[(0,_vue.h)(_input.default,{type:"text",size:"mini",align:"center",maxLength:9,placeholder:"",modelValue:i,"onUpdate:modelValue"(e){V.hexValue=e},onChange(){var e=(0,_util.parseColor)(V.hexValue);e&&e.value&&(V.selectColor=e.value,U())}})]),(0,_vue.h)("div",{class:"vxe-color-picker--input-title"},(0,_ui.getI18n)("vxe.colorPicker.hex"))])])])})(),(c=_.showQuick,i=N.value,c&&i.length?(0,_vue.h)("div",{class:"vxe-color-picker--quick-wrapper"},i.map((l,e)=>(0,_vue.h)("div",{key:e,class:"vxe-color-picker--quick-item",title:l.label||"",style:{backgroundColor:l.value},onClick(e){re(e,l)}}))):(0,_ui.renderEmptyElement)(R)),(0,_vue.h)("div",{class:"vxe-color-picker--footer-wrapper"},[o?(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.colorPicker.clear"),size:"mini",onClick:K}):(0,_ui.renderEmptyElement)(R),(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.colorPicker.confirm"),size:"mini",status:"primary",onClick:Q})])]):(0,_ui.renderEmptyElement)(R)])])])},R},render(){return this.renderVN()}});
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_util=require("./util"),_button=_interopRequireDefault(require("../../button")),_input=_interopRequireDefault(require("../../input")),_numberInput=_interopRequireDefault(require("../../number-input"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeColorPicker",props:{modelValue:String,placeholder:String,clearable:{type:Boolean,default:()=>(0,_ui.getConfig)().colorPicker.clearable},type:{type:String,default:()=>(0,_ui.getConfig)().colorPicker.type},size:{type:String,default:()=>(0,_ui.getConfig)().colorPicker.size||(0,_ui.getConfig)().size},className:[String,Function],popupClassName:[String,Function],colors:{type:Array,default:()=>_xeUtils.default.clone((0,_ui.getConfig)().colorPicker.colors,!0)||[]},showAlpha:{type:Boolean,default:()=>(0,_ui.getConfig)().colorPicker.showAlpha},showEyeDropper:{type:Boolean,default:()=>(0,_ui.getConfig)().colorPicker.showEyeDropper},showColorExtractor:{type:Boolean,default:()=>(0,_ui.getConfig)().colorPicker.showColorExtractor},showQuick:{type:Boolean,default:()=>(0,_ui.getConfig)().colorPicker.showQuick},readonly:{type:Boolean,default:null},disabled:{type:Boolean,default:null},clickToCopy:{type:Boolean,default:()=>(0,_ui.getConfig)().colorPicker.clickToCopy},placement:String,transfer:{type:Boolean,default:null},popupConfig:Object},emits:["update:modelValue","change","clear","click"],setup(_,e){let t=e.emit,D=(0,_vue.inject)("$xeModal",null),O=(0,_vue.inject)("$xeDrawer",null),M=(0,_vue.inject)("$xeTable",null),S=(0,_vue.inject)("$xeCard",null),o=(0,_vue.inject)("$xeForm",null),a=(0,_vue.inject)("xeFormItemInfo",null),h="undefined"!=typeof window?window.EyeDropper:null;var l=_xeUtils.default.uniqueId();let L=(0,_ui.useSize)(_).computeSize,d=(0,_vue.ref)(),m=(0,_vue.ref)(),g=(0,_vue.ref)(),x=(0,_vue.ref)(),f=(0,_vue.ref)(),b=(0,_vue.ref)(),C=(0,_vue.ref)(),k=(0,_vue.ref)(),y=(0,_vue.ref)(),V=(0,_vue.reactive)({initialized:!1,selectTyle:"hex",selectColor:""+(_.modelValue||""),showTypePopup:!1,panelColor:"",hexValue:"",rValue:0,gValue:0,bValue:0,aValue:0,panelIndex:0,panelStyle:{},panelPlacement:null,visiblePanel:!1,isAniVisible:!1,isActivated:!1}),w=[{label:"HEX",value:"hex"},{label:"RGB",value:"rgb"}],i={},j=(0,_vue.computed)(()=>{var e=_.readonly;return null===e?!!o&&o.props.readonly:e}),P=(0,_vue.computed)(()=>{var e=_.disabled;return null===e?!!o&&o.props.disabled:e}),E=(0,_vue.computed)(()=>{var e=_.transfer;if(null===e){var l=(0,_ui.getConfig)().colorPicker.transfer;if(_xeUtils.default.isBoolean(l))return l;if(M||D||O||S||o)return!0}return e}),N=(0,_vue.computed)(()=>{var e=_.colors;return e?e.map(e=>_xeUtils.default.isString(e)?{label:e,value:e}:{label:_xeUtils.default.eqNull(e.label)?e.value:e.label,value:e.value}):[]}),T=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().colorPicker.popupConfig,_.popupConfig)),I=(0,_vue.computed)(()=>{var e=V.selectTyle;return"rgb"===e}),$=(0,_vue.computed)(()=>{let l=V.selectTyle;return w.find(e=>e.value===l)}),H={refElem:d},F={},R={xID:l,props:_,context:e,reactData:V,getRefMaps:()=>H,getComputeMaps:()=>F},W=e=>{t("update:modelValue",e)},u=()=>{var e=_.modelValue;V.selectColor=_xeUtils.default.toValueString(e),U()},r=()=>{var e=_.type;let l="rgb"!==e&&"rgba"!==e?"hex":"rgb";V.selectTyle=l,u()},U=()=>{var{selectColor:e,isAniVisible:l}=V,o=I.value,t=x.value,a=b.value,e=(0,_util.parseValColor)(e);V.hexValue="",V.rValue=0,V.gValue=0,V.bValue=0,V.aValue=1,e&&("hex"===e.type?V.hexValue=e.hex:(V.rValue=e.r,V.gValue=e.g,V.bValue=e.b,V.aValue=e.a),e.value)&&(o?"hex"===e.type&&(o=(0,_util.hexToRgb)(e.hex))&&(V.rValue=o.r,V.gValue=o.g,V.bValue=o.b,V.aValue=o.a):"hex"!==e.type&&(V.hexValue=(0,_util.rgbToHexVal)(e.r,e.g,e.b,e.a))),l&&(o=e?"hex"===e.type?(0,_util.hexToHsv)(e.hex):(0,_util.rgbToHsv)(e):null,l=k.value,o&&(l&&(e=l.clientHeight*(1-o.v),l=l.clientWidth*o.s,ce(l,e)),t)&&ae(_xeUtils.default.ceil((1-o.h/360)*t.clientWidth)),a)&&p(a.clientWidth*V.aValue)},Y=()=>{V.panelIndex<(0,_utils.getLastZIndex)()&&(V.panelIndex=(0,_utils.nextZIndex)())},n=()=>{let o=_.placement,t=V.panelIndex,a=d.value,i=g.value,u=E.value,r=T.value;var e=()=>{var e=(0,_dom.updatePanelPlacement)(a,i,{placement:r.placement||o,defaultPlacement:r.defaultPlacement,teleportTo:u}),l=Object.assign(e.style,{zIndex:t});V.panelStyle=l,V.panelPlacement=e.placement};return e(),(0,_vue.nextTick)().then(e)},c=()=>{var e=i.hpTimeout;P.value||(e&&(clearTimeout(e),i.hpTimeout=void 0),V.initialized||(V.initialized=!0),V.isActivated=!0,V.isAniVisible=!0,setTimeout(()=>{U(),V.visiblePanel=!0},10),Y(),n())},s=()=>{V.visiblePanel=!1,i.hpTimeout=setTimeout(()=>{V.isAniVisible=!1},350)},v=(e,l)=>{(V.selectColor=l)!==_.modelValue&&(W(l),q("change",{value:l},e),o)&&a&&o.triggerItemEvent(e,a.itemConfig.field,l)},X=(e,l)=>{v(e,l),q("clear",{value:l},e)},G=()=>{P.value||V.visiblePanel||c()},K=()=>{V.isActivated=!1},Q=e=>{X(e,null),s()},Z=e=>{var{selectTyle:l,selectColor:o,hexValue:t}=V,l="hex"===l?t:o;v(e,l),s()},J=e=>{e.preventDefault(),(V.visiblePanel?s:c)()},ee=e=>{J(e),q("click",{},e)},le=()=>{V.showTypePopup=!1},oe=e=>{e.stopPropagation(),V.showTypePopup=!V.showTypePopup},te=e=>{var l=V.selectTyle;e!==l&&(V.selectTyle=e,U()),V.showTypePopup=!1},ae=t=>{var a=x.value,i=f.value;if(a&&i){t<0&&(t=0);var a=_xeUtils.default.toInteger(a.clientWidth),u=255,a=_xeUtils.default.ceil(1530/a*t),r=a%u;let e=0,l=0,o=0;switch(Math.ceil(a/u)){case 1:e=u,o=r;break;case 2:e=u-r,o=u;break;case 3:l=r,o=u;break;case 4:l=u,o=u-r;break;case 5:e=r,l=u;break;case 6:e=u,l=u-r}V.panelColor=(0,_util.toValRgb)(e,l,o),i.style.left=(0,_dom.toCssUnit)(t)}},B=e=>{var l=x.value,o=f.value;l&&o&&(o=l.getBoundingClientRect(),l=_xeUtils.default.toInteger(l.clientWidth),l=_xeUtils.default.ceil(Math.min(l-1,Math.max(1,e.clientX-o.x))),ae(l))},ie=e=>{e.preventDefault(),document.onmousemove=e=>{e.preventDefault(),B(e)},document.onmouseup=e=>{document.onmousemove=null,document.onmouseup=null,B(e)}},p=e=>{var l=V.selectColor,o=b.value,t=C.value;o&&t&&(o=o.getBoundingClientRect().width,o=_xeUtils.default.ceil(100/o*(e=o<(e=e<0?0:e)?o:e)/100,2),V.aValue=o,t.style.left=(0,_dom.toCssUnit)(e),V.selectColor=(0,_util.updateColorAlpha)(l,o))},z=e=>{var l=b.value,o=C.value;l&&o&&(l=(o=l.getBoundingClientRect()).width,l=Math.min(l,Math.max(0,e.clientX-o.x)),p(l),U())},ue=e=>{e.preventDefault(),document.onmousemove=e=>{e.preventDefault(),z(e)},document.onmouseup=e=>{document.onmousemove=null,document.onmouseup=null,z(e)}},A=()=>{var{rValue:e,gValue:l,bValue:o,aValue:t}=V;V.selectColor=(0,_util.toValRgb)(e,l,o,t),U()},re=()=>{var e=V.aValue,l=b.value,o=C.value;l&&o&&(o=l.getBoundingClientRect().width*e,p(o))},ne=(e,l)=>{l=l.value;V.selectColor=l,U()},ce=(e,l)=>{var o=y.value;o&&(o.style.top=(0,_dom.toCssUnit)(l),o.style.left=(0,_dom.toCssUnit)(e))},se=()=>{if(h)try{(new h).open().then(e=>{e&&e.sRGBHex&&(V.selectColor=e.sRGBHex,U())}).catch(()=>{})}catch(e){}},ve=(e,l)=>{var o,t=_.showAlpha,{panelColor:a,aValue:i}=V,u=k.value,r=y.value;u&&r&&({clientWidth:r,clientHeight:o}=u,u=u.getBoundingClientRect(),l=Math.min(o,Math.max(0,l-u.y)),e=Math.min(r,Math.max(0,e-u.x)),(u=(0,_util.parseValColor)(a))&&(a="hex"===u.type?(0,_util.hexToHsv)(u.hex):(0,_util.rgbToHsv)(u))&&(u=(0,_util.hsvToRgb)(a.h,e/r,1-l/o),V.selectColor=(0,_util.toValRgb)(u.r,u.g,u.b,t?i:null),U()),ce(e,l))},pe=e=>{e.stopPropagation(),e.preventDefault(),ve(e.clientX,e.clientY),document.onmousemove=e=>{ve(e.clientX,e.clientY)},document.onmouseup=()=>{document.onmousemove=null,document.onmouseup=null}},de=()=>{var e=V.selectColor;e&&_ui.VxeUI.clipboard.copy(e)&&_ui.VxeUI.modal&&_ui.VxeUI.modal.message({content:(0,_ui.getI18n)("vxe.colorPicker.copySuccess",[e]),status:"success"})},_e=e=>{var l=V.visiblePanel;P.value||l&&(l=g.value,((0,_dom.getEventTargetNode)(e,l).flag?n:s)())},he=e=>{var l,o,t=V.visiblePanel;P.value||(l=d.value,o=g.value,V.isActivated=(0,_dom.getEventTargetNode)(e,l).flag||(0,_dom.getEventTargetNode)(e,o).flag,t&&!V.isActivated&&s())},me=()=>{var{visiblePanel:e,isActivated:l}=V;e&&s(),l&&(V.isActivated=!1),(e||l)&&(e=m.value)&&e.blur()},ge=()=>{var e=V.visiblePanel;e&&n()},q=(e,l,o)=>{t(e,(0,_ui.createEvent)(o,{$colorPicker:R},l))};l={dispatchEvent:q};Object.assign(R,l,{});return(0,_vue.watch)(()=>_.modelValue,()=>{u()}),(0,_vue.watch)(()=>_.type,()=>{r()}),(0,_vue.onMounted)(()=>{_ui.globalEvents.on(R,"mousewheel",_e),_ui.globalEvents.on(R,"mousedown",he),_ui.globalEvents.on(R,"blur",me),_ui.globalEvents.on(R,"resize",ge)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(R,"mousewheel"),_ui.globalEvents.off(R,"mousedown"),_ui.globalEvents.off(R,"blur"),_ui.globalEvents.off(R,"resize")}),r(),(0,_vue.provide)("$xeColorPicker",R),R.renderVN=()=>{var{className:e,popupClassName:l,clearable:o,modelValue:t}=_,{initialized:a,isActivated:i,isAniVisible:u,visiblePanel:r}=V,n=L.value,c=P.value,s=E.value,v=j.value,p=T.value.appendTo;return v?(0,_vue.h)("div",{ref:d,class:["vxe-color-picker--readonly",e]},[(0,_vue.h)("div",{class:"vxe-color-picker--readonly-color",style:{backgroundColor:t}})]):(0,_vue.h)("div",{ref:d,class:["vxe-color-picker",e?_xeUtils.default.isFunction(e)?e({$colorPicker:R}):e:"",{["size--"+n]:n,"is--selected":!!t,"is--visible":r,"is--disabled":c,"is--active":i}]},[(0,_vue.h)("input",{ref:m,class:"vxe-color-picker--input",onFocus:G,onBlur:K}),(0,_vue.h)("div",{class:"vxe-color-picker--inner",onClick:ee},[(0,_vue.h)("div",{class:"vxe-color-picker--inner-color",style:{backgroundColor:t}})]),(0,_vue.h)(_vue.Teleport,{to:(0,_dom.getPopupContainer)(p),disabled:!s||!a},[(0,_vue.h)("div",{ref:g,class:["vxe-table--ignore-clear vxe-color-picker--panel",l?_xeUtils.default.isFunction(l)?l({$colorPicker:R}):l:"",{["size--"+n]:n,"is--transfer":s,"ani--leave":u,"ani--enter":r}],placement:V.panelPlacement,style:V.panelStyle},[a&&(r||u)?(0,_vue.h)("div",{class:"vxe-color-picker--panel-wrapper",onClick:le},[(v=_.showColorExtractor,e=V.panelColor,v?(0,_vue.h)("div",{ref:k,class:"vxe-color-picker--color-wrapper",onMousedown:pe},[(0,_vue.h)("div",{class:"vxe-color-picker--color-bg",style:{backgroundColor:e}}),(0,_vue.h)("div",{class:"vxe-color-picker--white-bg"}),(0,_vue.h)("div",{class:"vxe-color-picker--black-bg"}),(0,_vue.h)("div",{ref:y,class:"vxe-color-picker--color-active"})]):(0,_ui.renderEmptyElement)(R)),(()=>{var{showAlpha:e,clickToCopy:l,showEyeDropper:o}=_,{selectTyle:t,showTypePopup:a,hexValue:i,rValue:u,gValue:r,bValue:n,aValue:c,selectColor:s,panelColor:v}=V,p=I.value,d=$.value;return(0,_vue.h)("div",{class:"vxe-color-picker--bar-wrapper"},[(0,_vue.h)("div",{class:"vxe-color-picker--slider-wrapper"},[o&&h?(0,_vue.h)("div",{class:"vxe-color-picker--color-dropper"},[(0,_vue.h)("span",{class:"vxe-color-picker--color-dropper-btn",onClick:se},[(0,_vue.h)("i",{class:(0,_ui.getIcon)().COLOR_PICKER_EYE_DROPPER})])]):(0,_ui.renderEmptyElement)(R),(0,_vue.h)("div",{class:"vxe-color-picker--slider-preview"},[(0,_vue.h)("div",{class:"vxe-color-picker--preview-btn"},[(0,_vue.h)("div",{class:"vxe-color-picker--preview-color",style:{backgroundColor:s}},l?[(0,_vue.h)("span",{class:"vxe-color-picker--preview-copy-btn",onClick:de},[(0,_vue.h)("i",{class:(0,_ui.getIcon)().COLOR_PICKER_COLOR_COPY})])]:[])])]),(0,_vue.h)("div",{class:"vxe-color-picker--slider-handle"},[(0,_vue.h)("div",{ref:x,class:"vxe-color-picker--bar-hue-slider",onClick:B},[(0,_vue.h)("div",{ref:f,class:"vxe-color-picker--bar-hue-btn",onMousedown:ie})]),e?(0,_vue.h)("div",{ref:b,class:"vxe-color-picker--bar-alpha-slider",onClick:z},[(0,_vue.h)("div",{class:"vxe-color-picker--bar-alpha-bg",style:{background:`linear-gradient(to right, rgba(0, 0, 0, 0), ${v})`}}),(0,_vue.h)("div",{ref:C,class:"vxe-color-picker--bar-alpha-btn",onMousedown:ue})]):(0,_ui.renderEmptyElement)(R)])]),(0,_vue.h)("div",{class:"vxe-color-picker--custom-wrapper"},[(0,_vue.h)("div",{class:"vxe-color-picker--type-switch"},[(0,_vue.h)("div",{class:"vxe-color-picker--type-label",onClick:oe},[(0,_vue.h)("span",""+(d?d.label:t)),(0,_vue.h)("span",{class:"vxe-color-picker--type-icon"},[(0,_vue.h)("i",{class:a?(0,_ui.getIcon)().COLOR_PICKER_TPTY_OPEN:(0,_ui.getIcon)().COLOR_PICKER_TPTY_CLOSE})])]),(0,_vue.h)("div",{class:["vxe-color-picker--type-popup",{"is--visible":a}]},w.map(l=>(0,_vue.h)("div",{class:"vxe-color-picker--type-item",onClick(e){e.stopPropagation(),te(l.value)}},l.label)))]),(0,_vue.h)("div",{class:`vxe-color-picker--${t}-wrapper`},p?[(0,_vue.h)("div",{class:"vxe-color-picker--input-wrapper"},[(0,_vue.h)(_numberInput.default,{type:"integer",size:"mini",align:"center",min:0,max:255,maxLength:3,placeholder:"",modelValue:u,controlConfig:{showButton:!1},"onUpdate:modelValue"(e){V.rValue=e},onChange:A}),(0,_vue.h)(_numberInput.default,{type:"integer",size:"mini",align:"center",min:0,max:255,maxLength:3,placeholder:"",modelValue:r,controlConfig:{showButton:!1},"onUpdate:modelValue"(e){V.gValue=e},onChange:A}),(0,_vue.h)(_numberInput.default,{type:"integer",size:"mini",align:"center",min:0,max:255,maxLength:3,placeholder:"",modelValue:n,controlConfig:{showButton:!1},"onUpdate:modelValue"(e){V.bValue=e},onChange:A}),(0,_vue.h)(_numberInput.default,{type:"number",size:"mini",align:"center",min:0,max:1,step:.01,maxLength:4,placeholder:"",modelValue:c,controlConfig:{showButton:!1},"onUpdate:modelValue"(e){V.aValue=e},onChange:re})]),(0,_vue.h)("div",{class:"vxe-color-picker--input-title"},[(0,_vue.h)("span","R"),(0,_vue.h)("span","G"),(0,_vue.h)("span","B"),(0,_vue.h)("span","A")])]:[(0,_vue.h)("div",{class:"vxe-color-picker--input-wrapper"},[(0,_vue.h)(_input.default,{type:"text",size:"mini",align:"center",maxLength:9,placeholder:"",modelValue:i,"onUpdate:modelValue"(e){V.hexValue=e},onChange(){var e=(0,_util.parseValColor)(V.hexValue);e&&e.value&&(V.selectColor=e.value,U())}})]),(0,_vue.h)("div",{class:"vxe-color-picker--input-title"},(0,_ui.getI18n)("vxe.colorPicker.hex"))])])])})(),(c=_.showQuick,i=N.value,c&&i.length?(0,_vue.h)("div",{class:"vxe-color-picker--quick-wrapper"},i.map((l,e)=>(0,_vue.h)("div",{key:e,class:"vxe-color-picker--quick-item",title:l.label||"",style:{backgroundColor:l.value},onClick(e){ne(e,l)}}))):(0,_ui.renderEmptyElement)(R)),(0,_vue.h)("div",{class:"vxe-color-picker--footer-wrapper"},[o?(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.colorPicker.clear"),size:"mini",onClick:Q}):(0,_ui.renderEmptyElement)(R),(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.colorPicker.confirm"),size:"mini",status:"primary",onClick:Z})])]):(0,_ui.renderEmptyElement)(R)])])])},R},render(){return this.renderVN()}});
|
|
@@ -3,15 +3,24 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.darken = void 0;
|
|
6
7
|
exports.hasHex = hasHex;
|
|
7
8
|
exports.hasRgb = hasRgb;
|
|
8
9
|
exports.hexToHsv = hexToHsv;
|
|
9
10
|
exports.hexToRgb = hexToRgb;
|
|
10
11
|
exports.hsvToRgb = hsvToRgb;
|
|
12
|
+
exports.lighten = void 0;
|
|
11
13
|
exports.parseColor = parseColor;
|
|
12
|
-
exports.
|
|
14
|
+
exports.parseValColor = parseValColor;
|
|
15
|
+
exports.rgbToHexVal = rgbToHexVal;
|
|
13
16
|
exports.rgbToHsv = rgbToHsv;
|
|
17
|
+
exports.toHex = toHex;
|
|
18
|
+
exports.toHexString = toHexString;
|
|
19
|
+
exports.toHsl = toHsl;
|
|
20
|
+
exports.toHsv = toHsv;
|
|
14
21
|
exports.toRgb = toRgb;
|
|
22
|
+
exports.toRgbString = toRgbString;
|
|
23
|
+
exports.toValRgb = toValRgb;
|
|
15
24
|
exports.updateColorAlpha = updateColorAlpha;
|
|
16
25
|
var _xeUtils = _interopRequireDefault(require("xe-utils"));
|
|
17
26
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -24,13 +33,148 @@ const hexAlphaNumMaps = {};
|
|
|
24
33
|
});
|
|
25
34
|
const rgbRE = /^rgb(a?)\((\d{1,3})[,\s]+(\d{1,3})[,\s]+(\d{1,3})([,//\s]+([0-9.]{1,4})(%?))?\)$/;
|
|
26
35
|
function hasRgb(value) {
|
|
27
|
-
return value && rgbRE.test(value);
|
|
36
|
+
return !!(value && rgbRE.test(value));
|
|
28
37
|
}
|
|
29
38
|
const hexRE = /^(#?)([0-9A-Fa-f]{6})([0-9A-Fa-f]{2})?$/;
|
|
30
39
|
function hasHex(value) {
|
|
31
|
-
return value && hexRE.test(value);
|
|
40
|
+
return !!(value && hexRE.test(value));
|
|
32
41
|
}
|
|
33
|
-
function
|
|
42
|
+
function toRgb(value) {
|
|
43
|
+
if (value) {
|
|
44
|
+
if (hexRE.test(value)) {
|
|
45
|
+
return hexToRgb(value);
|
|
46
|
+
}
|
|
47
|
+
return parseRgbVal(value);
|
|
48
|
+
}
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
function toRgbString(value) {
|
|
52
|
+
const rgbRest = toRgb(value);
|
|
53
|
+
if (rgbRest) {
|
|
54
|
+
return rgbRest.label;
|
|
55
|
+
}
|
|
56
|
+
return '';
|
|
57
|
+
}
|
|
58
|
+
function toHex(value) {
|
|
59
|
+
if (value) {
|
|
60
|
+
if (rgbRE.test(value)) {
|
|
61
|
+
return rgbValToHex(value);
|
|
62
|
+
}
|
|
63
|
+
return parseHexVal(value);
|
|
64
|
+
}
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
function toHexString(value) {
|
|
68
|
+
const hexRest = toHex(value);
|
|
69
|
+
if (hexRest) {
|
|
70
|
+
return hexRest.label;
|
|
71
|
+
}
|
|
72
|
+
return '';
|
|
73
|
+
}
|
|
74
|
+
function toHsl(value) {
|
|
75
|
+
const rgbRest = toRgb(value);
|
|
76
|
+
if (rgbRest) {
|
|
77
|
+
const hslRest = rgbToHsl(rgbRest);
|
|
78
|
+
if (hslRest) {
|
|
79
|
+
const rest = Object.assign({
|
|
80
|
+
value,
|
|
81
|
+
type: 'hsl'
|
|
82
|
+
}, hslRest);
|
|
83
|
+
return rest;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
function toHsv(value) {
|
|
89
|
+
const rgbRest = toRgb(value);
|
|
90
|
+
if (rgbRest) {
|
|
91
|
+
const hslRest = rgbToHsv(rgbRest);
|
|
92
|
+
if (hslRest) {
|
|
93
|
+
const rest = Object.assign({
|
|
94
|
+
value,
|
|
95
|
+
type: 'hsv'
|
|
96
|
+
}, hslRest);
|
|
97
|
+
return rest;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
function parseColor(val, format) {
|
|
103
|
+
if (val) {
|
|
104
|
+
if (format === 'hex') {
|
|
105
|
+
return toHex(val);
|
|
106
|
+
}
|
|
107
|
+
if (format === 'hsl') {
|
|
108
|
+
return toHsl(val);
|
|
109
|
+
}
|
|
110
|
+
if (format === 'hsv') {
|
|
111
|
+
return toHsv(val);
|
|
112
|
+
}
|
|
113
|
+
return toRgb(val);
|
|
114
|
+
}
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
function handleNumClamp(val) {
|
|
118
|
+
return Math.min(1, Math.max(0, val));
|
|
119
|
+
}
|
|
120
|
+
function createLightenDarken(isAdd) {
|
|
121
|
+
return function (val, ratio) {
|
|
122
|
+
const colorRest = parseColor(val);
|
|
123
|
+
const hslRest = toHsl(val);
|
|
124
|
+
if (colorRest && hslRest) {
|
|
125
|
+
ratio = ratio === 0 ? 0 : ratio || 10;
|
|
126
|
+
hslRest.l += (isAdd ? ratio : -ratio) / 100;
|
|
127
|
+
hslRest.l = handleNumClamp(hslRest.l);
|
|
128
|
+
const rgbRest = hslToRgb(hslRest);
|
|
129
|
+
if (rgbRest) {
|
|
130
|
+
if ((colorRest === null || colorRest === void 0 ? void 0 : colorRest.type) === 'hex') {
|
|
131
|
+
return rgbToHexVal(rgbRest.r, rgbRest.g, rgbRest.b, hslRest.a);
|
|
132
|
+
}
|
|
133
|
+
return toValRgb(rgbRest.r, rgbRest.g, rgbRest.b, hslRest.a);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return val;
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
const lighten = exports.lighten = createLightenDarken(1);
|
|
140
|
+
const darken = exports.darken = createLightenDarken(0);
|
|
141
|
+
function parseHexVal(value) {
|
|
142
|
+
if (value) {
|
|
143
|
+
const hexRest = value.match(hexRE);
|
|
144
|
+
if (hexRest) {
|
|
145
|
+
const rest = {
|
|
146
|
+
value,
|
|
147
|
+
label: value,
|
|
148
|
+
type: 'hex',
|
|
149
|
+
hex: value,
|
|
150
|
+
hexV: hexRest[2],
|
|
151
|
+
hexA: hexRest[3] || '',
|
|
152
|
+
a: (hexRest[3] ? hexAlphaKeyMaps[hexRest[3].toUpperCase()] : 1) || 1
|
|
153
|
+
};
|
|
154
|
+
return rest;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
return null;
|
|
158
|
+
}
|
|
159
|
+
function parseRgbVal(value) {
|
|
160
|
+
if (value) {
|
|
161
|
+
const rgbRest = value.match(rgbRE);
|
|
162
|
+
if (rgbRest) {
|
|
163
|
+
const rest = {
|
|
164
|
+
value,
|
|
165
|
+
label: value,
|
|
166
|
+
type: rgbRest[6] ? 'rgba' : 'rgb',
|
|
167
|
+
r: parseInt(rgbRest[2]),
|
|
168
|
+
g: parseInt(rgbRest[3]),
|
|
169
|
+
b: parseInt(rgbRest[4]),
|
|
170
|
+
a: rgbRest[7] ? parseInt(rgbRest[6]) / 100 : rgbRest[6] ? parseFloat(rgbRest[6]) : 1
|
|
171
|
+
};
|
|
172
|
+
return rest;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
return null;
|
|
176
|
+
}
|
|
177
|
+
function parseValColor(value) {
|
|
34
178
|
const rest = {
|
|
35
179
|
value: '',
|
|
36
180
|
type: '',
|
|
@@ -43,60 +187,45 @@ function parseColor(value) {
|
|
|
43
187
|
a: 1
|
|
44
188
|
};
|
|
45
189
|
if (value) {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
rest
|
|
50
|
-
rest.hex = value;
|
|
51
|
-
rest.hexV = hexRest[2];
|
|
52
|
-
rest.hexA = hexRest[3] || '';
|
|
53
|
-
rest.a = (hexRest[3] ? hexAlphaKeyMaps[hexRest[3].toUpperCase()] : 1) || 1;
|
|
54
|
-
}
|
|
55
|
-
const rgbRest = value.match(rgbRE);
|
|
56
|
-
if (rgbRest) {
|
|
57
|
-
rest.value = value;
|
|
58
|
-
rest.type = rgbRest[6] ? 'rgba' : 'rgb';
|
|
59
|
-
rest.r = parseInt(rgbRest[2]);
|
|
60
|
-
rest.g = parseInt(rgbRest[3]);
|
|
61
|
-
rest.b = parseInt(rgbRest[4]);
|
|
62
|
-
rest.a = rgbRest[7] ? parseInt(rgbRest[6]) / 100 : rgbRest[6] ? parseFloat(rgbRest[6]) : 1;
|
|
190
|
+
if (hexRE.test(value)) {
|
|
191
|
+
return Object.assign(rest, parseHexVal(value));
|
|
192
|
+
} else if (rgbRE.test(value)) {
|
|
193
|
+
return Object.assign(rest, parseRgbVal(value));
|
|
63
194
|
}
|
|
64
195
|
}
|
|
65
196
|
return rest;
|
|
66
197
|
}
|
|
67
198
|
function updateColorAlpha(value, alpha = 1) {
|
|
68
|
-
const colorRest =
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
return toRgb(r, g, b, alpha);
|
|
78
|
-
}
|
|
79
|
-
if (type === 'hex') {
|
|
80
|
-
return `#${hexV}${alpha === 1 ? '' : hexAlphaNumMaps[alpha] || ''}`;
|
|
199
|
+
const colorRest = parseValColor(value);
|
|
200
|
+
if (colorRest) {
|
|
201
|
+
const {
|
|
202
|
+
type
|
|
203
|
+
} = colorRest;
|
|
204
|
+
if (type === 'hex') {
|
|
205
|
+
return `#${colorRest.hexV}${alpha === 1 ? '' : hexAlphaNumMaps[alpha] || ''}`;
|
|
206
|
+
}
|
|
207
|
+
return toValRgb(colorRest.r, colorRest.g, colorRest.b, alpha);
|
|
81
208
|
}
|
|
82
209
|
return '';
|
|
83
210
|
}
|
|
84
|
-
function
|
|
85
|
-
if (_xeUtils.default.eqNull(a)) {
|
|
211
|
+
function toValRgb(r, g, b, a) {
|
|
212
|
+
if (_xeUtils.default.eqNull(a) || a === 1) {
|
|
86
213
|
return `rgb(${r},${g},${b})`;
|
|
87
214
|
}
|
|
88
215
|
return `rgba(${r},${g},${b},${a})`;
|
|
89
216
|
}
|
|
90
|
-
function
|
|
91
|
-
|
|
92
|
-
|
|
217
|
+
function rgbValToHex(value) {
|
|
218
|
+
const rgbRest = parseRgbVal(value);
|
|
219
|
+
if (rgbRest) {
|
|
220
|
+
const hexVal = rgbToHexVal(rgbRest.r, rgbRest.g, rgbRest.b, rgbRest.a);
|
|
221
|
+
if (hexVal) {
|
|
222
|
+
return parseHexVal(hexVal);
|
|
223
|
+
}
|
|
93
224
|
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
a = 1
|
|
99
|
-
} = rgbRest;
|
|
225
|
+
return null;
|
|
226
|
+
}
|
|
227
|
+
function rgbToHexVal(r, g, b, a) {
|
|
228
|
+
a = _xeUtils.default.isNumber(a) ? a : 1;
|
|
100
229
|
const hexR = r.toString(16).padStart(2, '0');
|
|
101
230
|
const hexG = g.toString(16).padStart(2, '0');
|
|
102
231
|
const hexB = b.toString(16).padStart(2, '0');
|
|
@@ -147,6 +276,93 @@ function rgbToHsv(rgbRest) {
|
|
|
147
276
|
v: _xeUtils.default.round(val, 2)
|
|
148
277
|
};
|
|
149
278
|
}
|
|
279
|
+
function rgbToHsl(rgbRest) {
|
|
280
|
+
if (!rgbRest) {
|
|
281
|
+
return null;
|
|
282
|
+
}
|
|
283
|
+
const {
|
|
284
|
+
r,
|
|
285
|
+
g,
|
|
286
|
+
b,
|
|
287
|
+
a
|
|
288
|
+
} = rgbRest;
|
|
289
|
+
const rNorm = r / 255;
|
|
290
|
+
const gNorm = g / 255;
|
|
291
|
+
const bNorm = b / 255;
|
|
292
|
+
const max = Math.max(rNorm, gNorm, bNorm);
|
|
293
|
+
const min = Math.min(rNorm, gNorm, bNorm);
|
|
294
|
+
const delta = max - min;
|
|
295
|
+
let h = 0;
|
|
296
|
+
let s = 0;
|
|
297
|
+
const l = (max + min) / 2;
|
|
298
|
+
if (delta !== 0) {
|
|
299
|
+
s = l > 0.5 ? delta / (2 - max - min) : delta / (max + min);
|
|
300
|
+
if (max === rNorm) {
|
|
301
|
+
h = (gNorm - bNorm) / delta % 6;
|
|
302
|
+
} else if (max === gNorm) {
|
|
303
|
+
h = (bNorm - rNorm) / delta + 2;
|
|
304
|
+
} else {
|
|
305
|
+
h = (rNorm - gNorm) / delta + 4;
|
|
306
|
+
}
|
|
307
|
+
h *= 60;
|
|
308
|
+
if (h < 0) {
|
|
309
|
+
h += 360;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
return {
|
|
313
|
+
h,
|
|
314
|
+
s,
|
|
315
|
+
l,
|
|
316
|
+
a: _xeUtils.default.isNumber(a) ? a : 1
|
|
317
|
+
};
|
|
318
|
+
}
|
|
319
|
+
function hslToRgb(slRest) {
|
|
320
|
+
if (!slRest) {
|
|
321
|
+
return null;
|
|
322
|
+
}
|
|
323
|
+
let {
|
|
324
|
+
h,
|
|
325
|
+
s,
|
|
326
|
+
l
|
|
327
|
+
} = slRest;
|
|
328
|
+
const sNorm = s;
|
|
329
|
+
const lNorm = l;
|
|
330
|
+
h = (h % 360 + 360) % 360;
|
|
331
|
+
const c = (1 - Math.abs(2 * lNorm - 1)) * sNorm;
|
|
332
|
+
const x = c * (1 - Math.abs(h / 60 % 2 - 1));
|
|
333
|
+
const m = lNorm - c / 2;
|
|
334
|
+
let r, g, b;
|
|
335
|
+
if (h >= 0 && h < 60) {
|
|
336
|
+
r = c;
|
|
337
|
+
g = x;
|
|
338
|
+
b = 0;
|
|
339
|
+
} else if (h >= 60 && h < 120) {
|
|
340
|
+
r = x;
|
|
341
|
+
g = c;
|
|
342
|
+
b = 0;
|
|
343
|
+
} else if (h >= 120 && h < 180) {
|
|
344
|
+
r = 0;
|
|
345
|
+
g = c;
|
|
346
|
+
b = x;
|
|
347
|
+
} else if (h >= 180 && h < 240) {
|
|
348
|
+
r = 0;
|
|
349
|
+
g = x;
|
|
350
|
+
b = c;
|
|
351
|
+
} else if (h >= 240 && h < 300) {
|
|
352
|
+
r = x;
|
|
353
|
+
g = 0;
|
|
354
|
+
b = c;
|
|
355
|
+
} else {
|
|
356
|
+
r = c;
|
|
357
|
+
g = 0;
|
|
358
|
+
b = x;
|
|
359
|
+
}
|
|
360
|
+
return {
|
|
361
|
+
r: Math.round((r + m) * 255),
|
|
362
|
+
g: Math.round((g + m) * 255),
|
|
363
|
+
b: Math.round((b + m) * 255)
|
|
364
|
+
};
|
|
365
|
+
}
|
|
150
366
|
function hsvToRgb(h, s, v) {
|
|
151
367
|
let r = 0;
|
|
152
368
|
let g = 0;
|
|
@@ -205,11 +421,18 @@ function hexToRgb(str) {
|
|
|
205
421
|
if (str) {
|
|
206
422
|
const rests = str.match(/^(#?)([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})?$/);
|
|
207
423
|
if (rests) {
|
|
424
|
+
const r = parseInt(rests[2], 16);
|
|
425
|
+
const g = parseInt(rests[3], 16);
|
|
426
|
+
const b = parseInt(rests[4], 16);
|
|
427
|
+
const a = (rests[5] ? hexAlphaKeyMaps[rests[5].toUpperCase()] : 1) || 1;
|
|
208
428
|
return {
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
429
|
+
value: str,
|
|
430
|
+
label: toValRgb(r, g, b, rests[5] ? a : null),
|
|
431
|
+
type: rests[5] ? 'rgba' : 'rgb',
|
|
432
|
+
r,
|
|
433
|
+
g,
|
|
434
|
+
b,
|
|
435
|
+
a
|
|
213
436
|
};
|
|
214
437
|
}
|
|
215
438
|
}
|