tdesign-mobile-vue
Version:
tdesign-mobile-vue
510 lines (502 loc) • 16.1 kB
JavaScript
/**
* tdesign v1.7.0
* (c) 2024 TDesign Group
* @license MIT
*/
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
var _createClass = require('@babel/runtime/helpers/createClass');
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
var _common_js_colorPicker_gradient = require('../../../_chunks/dep-6f00700e.js');
var _common_js_colorPicker_cmyk = require('./cmyk.js');
require('lodash/isString');
require('lodash/isNull');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
var _classCallCheck__default = /*#__PURE__*/_interopDefaultLegacy(_classCallCheck);
var _createClass__default = /*#__PURE__*/_interopDefaultLegacy(_createClass);
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
var _Color;
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
var mathRound = Math.round;
var hsv2rgba = function hsv2rgba(states) {
return _common_js_colorPicker_gradient.tinycolor(states).toRgb();
};
var hsv2hsva = function hsv2hsva(states) {
return _common_js_colorPicker_gradient.tinycolor(states).toHsv();
};
var hsv2hsla = function hsv2hsla(states) {
return _common_js_colorPicker_gradient.tinycolor(states).toHsl();
};
var gradientColors2string = function gradientColors2string(object) {
var points = object.points,
degree = object.degree;
var colorsStop = points.sort(function (pA, pB) {
return pA.left - pB.left;
}).map(function (p) {
return "".concat(p.color, " ").concat(Math.round(p.left * 100) / 100, "%");
});
return "linear-gradient(".concat(degree, "deg,").concat(colorsStop.join(","), ")");
};
var getColorWithoutAlpha = function getColorWithoutAlpha(color) {
return _common_js_colorPicker_gradient.tinycolor(color).setAlpha(1).toHexString();
};
var genId = function genId() {
return (1 + Math.random() * 4294967295).toString(16);
};
var genGradientPoint = function genGradientPoint(left, color) {
return {
id: genId(),
left: left,
color: color
};
};
var Color = /*#__PURE__*/function () {
function Color(input) {
_classCallCheck__default["default"](this, Color);
_defineProperty__default["default"](this, "states", {
s: 100,
v: 100,
h: 100,
a: 1
});
_defineProperty__default["default"](this, "originColor", void 0);
_defineProperty__default["default"](this, "isGradient", void 0);
_defineProperty__default["default"](this, "gradientStates", {
colors: [],
degree: 0,
selectedId: null,
css: ""
});
this.update(input);
}
return _createClass__default["default"](Color, [{
key: "update",
value: function update(input) {
if (input === this.originColor) {
return;
}
var gradientColors = _common_js_colorPicker_gradient.parseGradientString(input);
if (this.isGradient && !gradientColors) {
var colorHsv = _common_js_colorPicker_gradient.tinycolor(input).toHsv();
this.states = colorHsv;
this.updateCurrentGradientColor();
return;
}
this.originColor = input;
this.isGradient = false;
var colorInput = input;
if (gradientColors) {
var _points$, _this$gradientSelecte;
this.isGradient = true;
var object = gradientColors;
var points = object.points.map(function (c) {
return genGradientPoint(c.left, c.color);
});
this.gradientStates = {
colors: points,
degree: object.degree,
selectedId: ((_points$ = points[0]) === null || _points$ === void 0 ? void 0 : _points$.id) || null
};
this.gradientStates.css = this.linearGradient;
colorInput = (_this$gradientSelecte = this.gradientSelectedPoint) === null || _this$gradientSelecte === void 0 ? void 0 : _this$gradientSelecte.color;
}
this.updateStates(colorInput);
}
}, {
key: "saturation",
get: function get() {
return this.states.s;
},
set: function set(value) {
this.states.s = Math.max(0, Math.min(100, value));
this.updateCurrentGradientColor();
}
}, {
key: "value",
get: function get() {
return this.states.v;
},
set: function set(value) {
this.states.v = Math.max(0, Math.min(100, value));
this.updateCurrentGradientColor();
}
}, {
key: "hue",
get: function get() {
return this.states.h;
},
set: function set(value) {
this.states.h = Math.max(0, Math.min(360, value));
this.updateCurrentGradientColor();
}
}, {
key: "alpha",
get: function get() {
return this.states.a;
},
set: function set(value) {
this.states.a = Math.max(0, Math.min(1, Math.round(value * 100) / 100));
this.updateCurrentGradientColor();
}
}, {
key: "rgb",
get: function get() {
var _hsv2rgba = hsv2rgba(this.states),
r = _hsv2rgba.r,
g = _hsv2rgba.g,
b = _hsv2rgba.b;
return "rgb(".concat(mathRound(r), ", ").concat(mathRound(g), ", ").concat(mathRound(b), ")");
}
}, {
key: "rgba",
get: function get() {
var _hsv2rgba2 = hsv2rgba(this.states),
r = _hsv2rgba2.r,
g = _hsv2rgba2.g,
b = _hsv2rgba2.b,
a = _hsv2rgba2.a;
return "rgba(".concat(mathRound(r), ", ").concat(mathRound(g), ", ").concat(mathRound(b), ", ").concat(a, ")");
}
}, {
key: "hsv",
get: function get() {
var _this$getHsva = this.getHsva(),
h = _this$getHsva.h,
s = _this$getHsva.s,
v = _this$getHsva.v;
return "hsv(".concat(h, ", ").concat(s, "%, ").concat(v, "%)");
}
}, {
key: "hsva",
get: function get() {
var _this$getHsva2 = this.getHsva(),
h = _this$getHsva2.h,
s = _this$getHsva2.s,
v = _this$getHsva2.v,
a = _this$getHsva2.a;
return "hsva(".concat(h, ", ").concat(s, "%, ").concat(v, "%, ").concat(a, ")");
}
}, {
key: "hsl",
get: function get() {
var _this$getHsla = this.getHsla(),
h = _this$getHsla.h,
s = _this$getHsla.s,
l = _this$getHsla.l;
return "hsl(".concat(h, ", ").concat(s, "%, ").concat(l, "%)");
}
}, {
key: "hsla",
get: function get() {
var _this$getHsla2 = this.getHsla(),
h = _this$getHsla2.h,
s = _this$getHsla2.s,
l = _this$getHsla2.l,
a = _this$getHsla2.a;
return "hsla(".concat(h, ", ").concat(s, "%, ").concat(l, "%, ").concat(a, ")");
}
}, {
key: "hex",
get: function get() {
return _common_js_colorPicker_gradient.tinycolor(this.states).toHexString();
}
}, {
key: "hex8",
get: function get() {
return _common_js_colorPicker_gradient.tinycolor(this.states).toHex8String();
}
}, {
key: "cmyk",
get: function get() {
var _this$getCmyk = this.getCmyk(),
c = _this$getCmyk.c,
m = _this$getCmyk.m,
y = _this$getCmyk.y,
k = _this$getCmyk.k;
return "cmyk(".concat(c, ", ").concat(m, ", ").concat(y, ", ").concat(k, ")");
}
}, {
key: "css",
get: function get() {
if (this.isGradient) {
return this.linearGradient;
}
return this.rgba;
}
}, {
key: "linearGradient",
get: function get() {
var gradientColors = this.gradientColors,
gradientDegree = this.gradientDegree;
return gradientColors2string({
points: gradientColors,
degree: gradientDegree
});
}
}, {
key: "gradientColors",
get: function get() {
return this.gradientStates.colors;
},
set: function set(colors) {
this.gradientStates.colors = colors;
this.gradientStates.css = this.linearGradient;
}
}, {
key: "gradientSelectedId",
get: function get() {
return this.gradientStates.selectedId;
},
set: function set(id) {
var _this$gradientSelecte2;
if (id === this.gradientSelectedId) {
return;
}
this.gradientStates.selectedId = id;
this.updateStates((_this$gradientSelecte2 = this.gradientSelectedPoint) === null || _this$gradientSelecte2 === void 0 ? void 0 : _this$gradientSelecte2.color);
}
}, {
key: "gradientDegree",
get: function get() {
return this.gradientStates.degree;
},
set: function set(degree) {
this.gradientStates.degree = Math.max(0, Math.min(360, degree));
this.gradientStates.css = this.linearGradient;
}
}, {
key: "gradientSelectedPoint",
get: function get() {
var gradientColors = this.gradientColors,
gradientSelectedId = this.gradientSelectedId;
return gradientColors.find(function (color) {
return color.id === gradientSelectedId;
});
}
}, {
key: "getFormatsColorMap",
value: function getFormatsColorMap() {
return {
HEX: this.hex,
CMYK: this.cmyk,
RGB: this.rgb,
RGBA: this.rgba,
HSL: this.hsl,
HSLA: this.hsla,
HSV: this.hsv,
HSVA: this.hsva,
CSS: this.css,
HEX8: this.hex8
};
}
}, {
key: "updateCurrentGradientColor",
value: function updateCurrentGradientColor() {
var isGradient = this.isGradient,
gradientColors = this.gradientColors,
gradientSelectedId = this.gradientSelectedId;
var length = gradientColors.length;
var current = this.gradientSelectedPoint;
if (!isGradient || length === 0 || !current) {
return false;
}
var index = gradientColors.findIndex(function (color) {
return color.id === gradientSelectedId;
});
var newColor = _objectSpread(_objectSpread({}, current), {}, {
color: this.rgba
});
gradientColors.splice(index, 1, newColor);
this.gradientColors = gradientColors.slice();
return this;
}
}, {
key: "updateStates",
value: function updateStates(input) {
var color = _common_js_colorPicker_gradient.tinycolor(_common_js_colorPicker_cmyk.cmykInputToColor(input));
var hsva = color.toHsv();
this.states = hsva;
}
}, {
key: "getRgba",
value: function getRgba() {
var _hsv2rgba3 = hsv2rgba(this.states),
r = _hsv2rgba3.r,
g = _hsv2rgba3.g,
b = _hsv2rgba3.b,
a = _hsv2rgba3.a;
return {
r: mathRound(r),
g: mathRound(g),
b: mathRound(b),
a: a
};
}
}, {
key: "getCmyk",
value: function getCmyk() {
var _this$getRgba = this.getRgba(),
r = _this$getRgba.r,
g = _this$getRgba.g,
b = _this$getRgba.b;
var _rgb2cmyk = _common_js_colorPicker_cmyk.rgb2cmyk(r, g, b),
_rgb2cmyk2 = _slicedToArray__default["default"](_rgb2cmyk, 4),
c = _rgb2cmyk2[0],
m = _rgb2cmyk2[1],
y = _rgb2cmyk2[2],
k = _rgb2cmyk2[3];
return {
c: mathRound(c * 100),
m: mathRound(m * 100),
y: mathRound(y * 100),
k: mathRound(k * 100)
};
}
}, {
key: "getHsva",
value: function getHsva() {
var _hsv2hsva = hsv2hsva(this.states),
h = _hsv2hsva.h,
s = _hsv2hsva.s,
v = _hsv2hsva.v,
a = _hsv2hsva.a;
h = mathRound(h);
s = mathRound(s * 100);
v = mathRound(v * 100);
a *= 1;
return {
h: h,
s: s,
v: v,
a: a
};
}
}, {
key: "getHsla",
value: function getHsla() {
var _hsv2hsla = hsv2hsla(this.states),
h = _hsv2hsla.h,
s = _hsv2hsla.s,
l = _hsv2hsla.l,
a = _hsv2hsla.a;
h = mathRound(h);
s = mathRound(s * 100);
l = mathRound(l * 100);
a *= 1;
return {
h: h,
s: s,
l: l,
a: a
};
}
}, {
key: "equals",
value: function equals(color) {
return _common_js_colorPicker_gradient.tinycolor.equals(this.rgba, color);
}
}], [{
key: "isValid",
value: function isValid(color) {
if (_common_js_colorPicker_gradient.parseGradientString(color)) {
return true;
}
return _common_js_colorPicker_gradient.tinycolor(color).isValid();
}
}, {
key: "hsva2color",
value: function hsva2color(h, s, v, a) {
return _common_js_colorPicker_gradient.tinycolor({
h: h,
s: s,
v: v,
a: a
}).toHsvString();
}
}, {
key: "hsla2color",
value: function hsla2color(h, s, l, a) {
return _common_js_colorPicker_gradient.tinycolor({
h: h,
s: s,
l: l,
a: a
}).toHslString();
}
}, {
key: "rgba2color",
value: function rgba2color(r, g, b, a) {
return _common_js_colorPicker_gradient.tinycolor({
r: r,
g: g,
b: b,
a: a
}).toHsvString();
}
}, {
key: "hex2color",
value: function hex2color(hex, a) {
var color = _common_js_colorPicker_gradient.tinycolor(hex);
color.setAlpha(a);
return color.toHexString();
}
}, {
key: "object2color",
value: function object2color(object, format) {
if (format === "CMYK") {
var c = object.c,
m = object.m,
y = object.y,
k = object.k;
return "cmyk(".concat(c, ", ").concat(m, ", ").concat(y, ", ").concat(k, ")");
}
var color = _common_js_colorPicker_gradient.tinycolor(object, {
format: format
});
return color.toRgbString();
}
}]);
}();
_Color = Color;
_defineProperty__default["default"](Color, "isGradientColor", function (input) {
return !!_common_js_colorPicker_gradient.isGradientColor(input);
});
_defineProperty__default["default"](Color, "compare", function (color1, color2) {
var isGradientColor1 = _Color.isGradientColor(color1);
var isGradientColor2 = _Color.isGradientColor(color2);
if (isGradientColor1 && isGradientColor2) {
var gradientColor1 = gradientColors2string(_common_js_colorPicker_gradient.parseGradientString(color1));
var gradientColor2 = gradientColors2string(_common_js_colorPicker_gradient.parseGradientString(color2));
return gradientColor1 === gradientColor2;
}
if (!isGradientColor1 && !isGradientColor2) {
return _common_js_colorPicker_gradient.tinycolor.equals(color1, color2);
}
return false;
});
var COLOR_OBJECT_OUTPUT_KEYS = ["alpha", "css", "hex", "hex8", "hsl", "hsla", "hsv", "hsva", "rgb", "rgba", "saturation", "value", "isGradient"];
var getColorObject = function getColorObject(color) {
if (!color) {
return null;
}
var colorObject = /* @__PURE__ */Object.create(null);
COLOR_OBJECT_OUTPUT_KEYS.forEach(function (key) {
return colorObject[key] = color[key];
});
if (color.isGradient) {
colorObject.linearGradient = color.linearGradient;
}
return colorObject;
};
exports.Color = Color;
exports["default"] = Color;
exports.genGradientPoint = genGradientPoint;
exports.genId = genId;
exports.getColorObject = getColorObject;
exports.getColorWithoutAlpha = getColorWithoutAlpha;
exports.gradientColors2string = gradientColors2string;
//# sourceMappingURL=color.js.map