css-color-parser-h 2.0.0 → 2.0.2

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.
@@ -1 +1 @@
1
- !function(){"use strict";var r={819:function(r){r.exports=require("color-convert")}},t={};function e(n){var o=t[n];if(void 0!==o)return o.exports;var a=t[n]={exports:{}};return r[n](a,a.exports,e),a.exports}e.d=function(r,t){for(var n in t)e.o(t,n)&&!e.o(r,n)&&Object.defineProperty(r,n,{enumerable:!0,get:t[n]})},e.o=function(r,t){return Object.prototype.hasOwnProperty.call(r,t)},e.r=function(r){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(r,"__esModule",{value:!0})};var n={};!function(){e.r(n),e.d(n,{CssColorParser:function(){return s},fromArray:function(){return _},fromColorStr:function(){return h},fromHSL:function(){return S},fromHWB:function(){return v},fromJson:function(){return R},fromRandom:function(){return y},parseCssColorStr:function(){return l},parseHEX:function(){return p},parseHSLA:function(){return b},parseHWB:function(){return g},parseKeyWord:function(){return u},parseRGBA:function(){return f}});var r=function(){function r(){}return r.type=function(r,t,e){var n=typeof e;if(n!==r)throw new Error("Expected ".concat(t," to be typeof ").concat(r,", actual typeof was ").concat(n))},r.types=function(r,t,e){var n=typeof e;if(!r.includes(n))throw new Error("Expected ".concat(t," to be typeof ").concat(r.join("|"),", actual typeof was ").concat(n))},r}();function t(r,t){return null==r||isNaN(r)&&"number"==typeof t?t:r}function o(r,t,e){return e>t?e=t:e<r&&(e=r),e}function a(r,t){return Number(r.toFixed(t))}var s=function(){function r(r,t,e,n){this.r=255,this.g=255,this.b=255,this.a=1,this.setColor(r,t,e,n)}return r.prototype.setColor=function(r,e,n,a){this.r=o(0,255,t(Number(r),0)),this.g=o(0,255,t(Number(e),0)),this.b=o(0,255,t(Number(n),0)),this.a=o(0,1,t(Number(a),1))},r.prototype.toRGBA=function(){var r=this.toJson();return 1===r.a?"rgb(".concat(r.r,",").concat(r.g,",").concat(r.b,")"):"rgba(".concat(r.r,",").concat(r.g,",").concat(r.b,",").concat(r.a,")")},r.prototype.toString=function(){return this.toRGBA()},r.prototype.toNormalize=function(){return{r:a(this.r/255,2),g:a(this.g/255,2),b:a(this.b/255,2),a:a(this.a,2)}},r.prototype.toHEX=function(){var r=this.toJson(),t=r.r.toString(16);t.length<2&&(t="0".concat(t));var e=r.g.toString(16);e.length<2&&(e="0".concat(e));var n=r.b.toString(16);if(n.length<2&&(n="0".concat(n)),this.a<1){var o=parseInt((255*this.a).toFixed()).toString(16);return o.length<2&&(o="0".concat(o)),"#".concat(t).concat(e).concat(n).concat(o)}return"#".concat(t).concat(e).concat(n)},r.prototype.toArray=function(){var r=this.toJson();return[r.r,r.g,r.b,r.a]},r.prototype.toJson=function(){return{r:parseInt(this.r.toFixed()),g:parseInt(this.g.toFixed()),b:parseInt(this.b.toFixed()),a:parseFloat(this.a.toFixed(2))}},r.prototype.clone=function(){return new r(this.r,this.g,this.b,this.a)},r.prototype.equals=function(r){return this===r||this.r===r.r&&this.g===r.g&&this.b===r.g&&this.a===r.a},r}(),c=function(){function r(){}return r.clearStrSpace=function(r){return r.replace(/\s/g,"")},r.trimStr=function(r){return(r=r.replace(/\s+/g," ")).trim()},r.parse3BitsHEX=function(e){var n=/^#([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])?$/i.exec(e);if(n){var o=t(n[4],"f");return[r._parseResStrForRgb(parseInt(n[1]+n[1],16)),r._parseResStrForRgb(parseInt(n[2]+n[2],16)),r._parseResStrForRgb(parseInt(n[3]+n[3],16)),r._parsePercent(parseInt(o+o,16)/255)]}return null},r.parse6BitsHEX=function(e){var n=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})?$/i.exec(e);if(n){var o=t(n[4],"ff");return[r._parseResStrForRgb(parseInt(n[1],16)),r._parseResStrForRgb(parseInt(n[2],16)),r._parseResStrForRgb(parseInt(n[3],16)),r._parsePercent(parseInt(o,16)/255)]}return null},r.parseRGBA=function(t){var e=/^rgba?\(([0-9.]+%?),([0-9.]+%?),([0-9.]+%?)(?:,([0-9.]+%?))?\)$/i.exec(t);return e?[r._parseResStrForRgb(e[1]),r._parseResStrForRgb(e[2]),r._parseResStrForRgb(e[3]),r._parsePercent(e[4])]:null},r.parseHSLA=function(t){var e=/^hsla?\(([0-9.]+)(?:deg)?,([0-9.]+%?),([0-9.]+%?)(?:,([0-9.]+%?))?\)$/i.exec(t);return e?[r._parseResStrForHue(e[1]),r._parsePercent(e[2]),r._parsePercent(e[3]),r._parsePercent(e[4])]:null},r.parseHWB=function(t){var e=/^hwb\s?\(\s?([0-9.]+)(?:deg)?\s([0-9.]+%?)\s([0-9.]+%?)\s?(?:\/\s?([0-9.]+%?))?\s?\)$/i.exec(t);return e?[r._parseResStrForHue(e[1]),r._parsePercent(e[2]),r._parsePercent(e[3]),r._parsePercent(e[4])]:null},r.parseRGBA2=function(t){var e=/^rgba?\s?\(\s?([0-9.]+%?)\s?([0-9.]+%?)\s?([0-9.]+%?)(?:\s?\/\s?([0-9.]+%?))?\s?\)$/i.exec(t);return e?[r._parseResStrForRgb(e[1]),r._parseResStrForRgb(e[2]),r._parseResStrForRgb(e[3]),r._parsePercent(e[4])]:null},r.parseHSLA2=function(t){var e=/^hsla?\s?\(\s?([0-9.]+)(?:deg)?\s([0-9.]+%?)\s([0-9.]+%?)\s?(?:\/\s?([0-9.]+%?))?\s?\)$/i.exec(t);return e?[r._parseResStrForHue(e[1]),r._parsePercent(e[2]),r._parsePercent(e[3]),r._parsePercent(e[4])]:null},r._parseResStrForRgb=function(r){return"string"==typeof r&&(r=parseFloat(r)/("%"===r.substr(-1)?100/255:1)),isNaN(r)&&(r=1),o(0,255,r)},r._parseResStrForHue=function(r){return"string"==typeof r&&(r=parseFloat(r)),isNaN(r)&&(r=0),o(0,360,r)},r._parsePercent=function(r){return"string"==typeof r&&(r=parseFloat(r)/("%"===r.substr(-1)?100:1)),isNaN(r)&&(r=1),o(0,1,r)},r}(),i=e(819);function u(r){var t=c.clearStrSpace(r),e=i.keyword.rgb(t);return e&&_(e)}function p(r){var t=c.clearStrSpace(r),e=c.parse3BitsHEX(t);return e||(e=c.parse6BitsHEX(t)),e&&_(e)}function f(r){var t=c.clearStrSpace(r),e=c.parseRGBA(t);if(!e){var n=c.trimStr(r);e=c.parseRGBA2(n)}return e&&_(e)}function b(r){var t=c.clearStrSpace(r),e=c.parseHSLA(t);if(!e){var n=c.trimStr(r);e=c.parseHSLA2(n)}return e&&S(e[0],e[1],e[2],e[3])}function g(r){var t=c.trimStr(r),e=c.parseHWB(t);return e&&v(e[0],e[1],e[2],e[3])}function l(t){return r.type("string","color",t),p(t)||f(t)||u(t)||b(t)||g(t)}function h(t){return r.type("string","color",t),p(t)||f(t)||u(t)||b(t)||g(t)}function S(r,e,n,a){var c=i.hsl.rgb(o(0,360,r),o(0,100,100*e),o(0,100,100*n));return new s(c[0],c[1],c[2],t(Number(a),1))}function v(r,e,n,a){var c=i.hwb.rgb(o(0,360,r),o(0,100,100*e),o(0,100,100*n));return new s(c[0],c[1],c[2],t(Number(a),1))}function y(r,t){if("string"==typeof r&&(r=l(r)),"string"==typeof t&&(t=l(t)),!r||!t)throw new Error("fail to create object from random");var e=Math.random()*Math.abs(t.r-r.r)+Math.min(r.r,t.r),n=Math.random()*Math.abs(t.g-r.g)+Math.min(r.g,t.g),o=Math.random()*Math.abs(t.b-r.b)+Math.min(r.b,t.b),a=Math.random()*Math.abs(t.a-r.a)+Math.min(r.a,t.a);return new s(e,n,o,a)}function R(r){return new s(r.r,r.g,r.b,r.a)}function _(r){return new s(r[0],r[1],r[2],r[3])}}();var o=exports;for(var a in n)o[a]=n[a];n.__esModule&&Object.defineProperty(o,"__esModule",{value:!0})}();
1
+ !function(){"use strict";var r={n:function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,{a:e}),e},d:function(t,e){for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},o:function(r,t){return Object.prototype.hasOwnProperty.call(r,t)},r:function(r){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(r,"__esModule",{value:!0})}},t={};r.r(t),r.d(t,{CssColorParser:function(){return i},fromArray:function(){return d},fromColorStr:function(){return S},fromHSL:function(){return m},fromHWB:function(){return y},fromJson:function(){return v},fromRandom:function(){return R},parseCssColorStr:function(){return l},parseHEX:function(){return f},parseHSLA:function(){return g},parseHWB:function(){return h},parseKeyWord:function(){return p},parseRGBA:function(){return b}});var e=function(){function r(){}return r.type=function(r,t,e){var n=typeof e;if(n!==r)throw new Error("Expected ".concat(t," to be typeof ").concat(r,", actual typeof was ").concat(n))},r.types=function(r,t,e){var n=typeof e;if(!r.includes(n))throw new Error("Expected ".concat(t," to be typeof ").concat(r.join("|"),", actual typeof was ").concat(n))},r}();function n(r,t){return null==r||isNaN(r)&&"number"==typeof t?t:r}function a(r,t,e){return e>t?e=t:e<r&&(e=r),e}function o(r,t){return Number(r.toFixed(t))}var s=function(){function r(){}return r.clearStrSpace=function(r){return r.replace(/\s/g,"")},r.trimStr=function(r){return(r=r.replace(/\s+/g," ")).trim()},r.parse3BitsHEX=function(t){var e=/^#([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])?$/i.exec(t);if(e){var a=n(e[4],"f");return[r._parseResStrForRgb(parseInt(e[1]+e[1],16)),r._parseResStrForRgb(parseInt(e[2]+e[2],16)),r._parseResStrForRgb(parseInt(e[3]+e[3],16)),r._parsePercent(parseInt(a+a,16)/255)]}return null},r.parse6BitsHEX=function(t){var e=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})?$/i.exec(t);if(e){var a=n(e[4],"ff");return[r._parseResStrForRgb(parseInt(e[1],16)),r._parseResStrForRgb(parseInt(e[2],16)),r._parseResStrForRgb(parseInt(e[3],16)),r._parsePercent(parseInt(a,16)/255)]}return null},r.parseRGBA=function(t){var e=/^rgba?\(([0-9.]+%?),([0-9.]+%?),([0-9.]+%?)(?:,([0-9.]+%?))?\)$/i.exec(t);return e?[r._parseResStrForRgb(e[1]),r._parseResStrForRgb(e[2]),r._parseResStrForRgb(e[3]),r._parsePercent(e[4])]:null},r.parseHSLA=function(t){var e=/^hsla?\(([0-9.]+)(?:deg)?,([0-9.]+%?),([0-9.]+%?)(?:,([0-9.]+%?))?\)$/i.exec(t);return e?[r._parseResStrForHue(e[1]),r._parsePercent(e[2]),r._parsePercent(e[3]),r._parsePercent(e[4])]:null},r.parseHWB=function(t){var e=/^hwb\s?\(\s?([0-9.]+)(?:deg)?\s([0-9.]+%?)\s([0-9.]+%?)\s?(?:\/\s?([0-9.]+%?))?\s?\)$/i.exec(t);return e?[r._parseResStrForHue(e[1]),r._parsePercent(e[2]),r._parsePercent(e[3]),r._parsePercent(e[4])]:null},r.parseRGBA2=function(t){var e=/^rgba?\s?\(\s?([0-9.]+%?)\s?([0-9.]+%?)\s?([0-9.]+%?)(?:\s?\/\s?([0-9.]+%?))?\s?\)$/i.exec(t);return e?[r._parseResStrForRgb(e[1]),r._parseResStrForRgb(e[2]),r._parseResStrForRgb(e[3]),r._parsePercent(e[4])]:null},r.parseHSLA2=function(t){var e=/^hsla?\s?\(\s?([0-9.]+)(?:deg)?\s([0-9.]+%?)\s([0-9.]+%?)\s?(?:\/\s?([0-9.]+%?))?\s?\)$/i.exec(t);return e?[r._parseResStrForHue(e[1]),r._parsePercent(e[2]),r._parsePercent(e[3]),r._parsePercent(e[4])]:null},r._parseResStrForRgb=function(r){return"string"==typeof r&&(r=parseFloat(r)/("%"===r.substr(-1)?100/255:1)),isNaN(r)&&(r=1),a(0,255,r)},r._parseResStrForHue=function(r){return"string"==typeof r&&(r=parseFloat(r)),isNaN(r)&&(r=0),a(0,360,r)},r._parsePercent=function(r){return"string"==typeof r&&(r=parseFloat(r)/("%"===r.substr(-1)?100:1)),isNaN(r)&&(r=1),a(0,1,r)},r}(),i=function(){function r(r,t,e,n){this.r=255,this.g=255,this.b=255,this.a=1,this.setColor(r,t,e,n)}return r.prototype.setColor=function(r,t,e,o){this.r=a(0,255,n(Number(r),0)),this.g=a(0,255,n(Number(t),0)),this.b=a(0,255,n(Number(e),0)),this.a=a(0,1,n(Number(o),1))},r.prototype.toRGBA=function(){var r=this.toJson();return 1===r.a?"rgb(".concat(r.r,",").concat(r.g,",").concat(r.b,")"):"rgba(".concat(r.r,",").concat(r.g,",").concat(r.b,",").concat(r.a,")")},r.prototype.toString=function(){return this.toRGBA()},r.prototype.toNormalize=function(){return{r:o(this.r/255,2),g:o(this.g/255,2),b:o(this.b/255,2),a:o(this.a,2)}},r.prototype.toHEX=function(){var r=this.toJson(),t=r.r.toString(16);t.length<2&&(t="0".concat(t));var e=r.g.toString(16);e.length<2&&(e="0".concat(e));var n=r.b.toString(16);if(n.length<2&&(n="0".concat(n)),this.a<1){var a=parseInt((255*this.a).toFixed()).toString(16);return a.length<2&&(a="0".concat(a)),"#".concat(t).concat(e).concat(n).concat(a)}return"#".concat(t).concat(e).concat(n)},r.prototype.toArray=function(){var r=this.toJson();return[r.r,r.g,r.b,r.a]},r.prototype.toJson=function(){return{r:parseInt(this.r.toFixed()),g:parseInt(this.g.toFixed()),b:parseInt(this.b.toFixed()),a:parseFloat(this.a.toFixed(2))}},r.prototype.clone=function(){return new r(this.r,this.g,this.b,this.a)},r.prototype.equals=function(r){return this===r||this.r===r.r&&this.g===r.g&&this.b===r.g&&this.a===r.a},r.parseHEX=function(t){var e=s.clearStrSpace(t),n=s.parse3BitsHEX(e);return n||(n=s.parse6BitsHEX(e)),n&&r.fromArray(n)},r.parseRGBA=function(t){var e=s.clearStrSpace(t),n=s.parseRGBA(e);if(!n){var a=s.trimStr(t);n=s.parseRGBA2(a)}return n&&r.fromArray(n)},r.fromJson=function(t){return new r(t.r,t.g,t.b,t.a)},r.fromArray=function(t){return new r(t[0],t[1],t[2],t[3])},r.fromRandom=function(t,e){return new r(Math.random()*Math.abs(e.r-t.r)+Math.min(t.r,e.r),Math.random()*Math.abs(e.g-t.g)+Math.min(t.g,e.g),Math.random()*Math.abs(e.b-t.b)+Math.min(t.b,e.b),Math.random()*Math.abs(e.a-t.a)+Math.min(t.a,e.a))},r}(),c=require("color-convert"),u=r.n(c);function p(r){var t=s.clearStrSpace(r),e=u().keyword.rgb(t);return e&&d(e)}function f(r){var t=s.clearStrSpace(r),e=s.parse3BitsHEX(t);return e||(e=s.parse6BitsHEX(t)),e&&d(e)}function b(r){var t=s.clearStrSpace(r),e=s.parseRGBA(t);if(!e){var n=s.trimStr(r);e=s.parseRGBA2(n)}return e&&d(e)}function g(r){var t=s.clearStrSpace(r),e=s.parseHSLA(t);if(!e){var n=s.trimStr(r);e=s.parseHSLA2(n)}return e&&m(e[0],e[1],e[2],e[3])}function h(r){var t=s.trimStr(r),e=s.parseHWB(t);return e&&y(e[0],e[1],e[2],e[3])}function l(r){return e.type("string","color",r),f(r)||b(r)||p(r)||g(r)||h(r)}function S(r){return e.type("string","color",r),f(r)||b(r)||p(r)||g(r)||h(r)}function m(r,t,e,o){var s=u().hsl.rgb(a(0,360,r),a(0,100,100*t),a(0,100,100*e));return new i(s[0],s[1],s[2],n(Number(o),1))}function y(r,t,e,o){var s=u().hwb.rgb(a(0,360,r),a(0,100,100*t),a(0,100,100*e));return new i(s[0],s[1],s[2],n(Number(o),1))}function R(r,t){if("string"==typeof r&&(r=l(r)),"string"==typeof t&&(t=l(t)),!r||!t)throw new Error("fail to create object from random");var e=Math.random()*Math.abs(t.r-r.r)+Math.min(r.r,t.r),n=Math.random()*Math.abs(t.g-r.g)+Math.min(r.g,t.g),a=Math.random()*Math.abs(t.b-r.b)+Math.min(r.b,t.b),o=Math.random()*Math.abs(t.a-r.a)+Math.min(r.a,t.a);return new i(e,n,a,o)}function v(r){return new i(r.r,r.g,r.b,r.a)}function d(r){return new i(r[0],r[1],r[2],r[3])}var _=exports;for(var M in t)_[M]=t[M];t.__esModule&&Object.defineProperty(_,"__esModule",{value:!0})}();
@@ -1132,6 +1132,18 @@ module.exports = {
1132
1132
  /******/ }
1133
1133
  /******/
1134
1134
  /************************************************************************/
1135
+ /******/ /* webpack/runtime/compat get default export */
1136
+ /******/ !function() {
1137
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
1138
+ /******/ __webpack_require__.n = function(module) {
1139
+ /******/ var getter = module && module.__esModule ?
1140
+ /******/ function() { return module['default']; } :
1141
+ /******/ function() { return module; };
1142
+ /******/ __webpack_require__.d(getter, { a: getter });
1143
+ /******/ return getter;
1144
+ /******/ };
1145
+ /******/ }();
1146
+ /******/
1135
1147
  /******/ /* webpack/runtime/define property getters */
1136
1148
  /******/ !function() {
1137
1149
  /******/ // define getter functions for harmony exports
@@ -1233,6 +1245,151 @@ function setNumberPrecision(number, precision) {
1233
1245
  return Number(number.toFixed(precision));
1234
1246
  }
1235
1247
 
1248
+ ;// CONCATENATED MODULE: ./src/utils/color-tools.ts
1249
+
1250
+ /*
1251
+ * @Author: roman_123
1252
+ * @Description: 部分核心代码修改自cesium
1253
+ * @Date: 2022-11-28 17:32:57
1254
+ * @LastEditTime: 2022-12-06 00:02:21
1255
+ */
1256
+ var CssColorStringParser = /** @class */ (function () {
1257
+ function CssColorStringParser() {
1258
+ }
1259
+ // 去除字符串内所有空格
1260
+ CssColorStringParser.clearStrSpace = function (v) {
1261
+ return v.replace(/\s/g, '');
1262
+ };
1263
+ // 去除字符串两边空格,将中间多个空格合并为一个
1264
+ CssColorStringParser.trimStr = function (v) {
1265
+ v = v.replace(/\s+/g, ' ');
1266
+ return v.trim();
1267
+ };
1268
+ // 解析3位16进制 #fff #fff0
1269
+ CssColorStringParser.parse3BitsHEX = function (v) {
1270
+ var regx = /^#([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])?$/i;
1271
+ var res = regx.exec(v);
1272
+ if (res) {
1273
+ var res4 = defaultValue(res[4], 'f');
1274
+ var r = CssColorStringParser._parseResStrForRgb(parseInt(res[1] + res[1], 16));
1275
+ var g = CssColorStringParser._parseResStrForRgb(parseInt(res[2] + res[2], 16));
1276
+ var b = CssColorStringParser._parseResStrForRgb(parseInt(res[3] + res[3], 16));
1277
+ var a = CssColorStringParser._parsePercent(parseInt(res4 + res4, 16) / 255);
1278
+ return [r, g, b, a];
1279
+ }
1280
+ return null;
1281
+ };
1282
+ // 解析6位16进制 #ffffff #ffffff00
1283
+ CssColorStringParser.parse6BitsHEX = function (v) {
1284
+ var regx = /^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})?$/i;
1285
+ var res = regx.exec(v);
1286
+ if (res) {
1287
+ var res4 = defaultValue(res[4], 'ff');
1288
+ var r = CssColorStringParser._parseResStrForRgb(parseInt(res[1], 16));
1289
+ var g = CssColorStringParser._parseResStrForRgb(parseInt(res[2], 16));
1290
+ var b = CssColorStringParser._parseResStrForRgb(parseInt(res[3], 16));
1291
+ var a = CssColorStringParser._parsePercent(parseInt(res4, 16) / 255.0);
1292
+ return [r, g, b, a];
1293
+ }
1294
+ return null;
1295
+ };
1296
+ // 解析rgb rgba rgb(255,255,255) rgba(255,255,255,1) rgba(100%,100%,100%, 1)
1297
+ CssColorStringParser.parseRGBA = function (v) {
1298
+ var regx = /^rgba?\(([0-9.]+%?),([0-9.]+%?),([0-9.]+%?)(?:,([0-9.]+%?))?\)$/i;
1299
+ var res = regx.exec(v);
1300
+ if (res) {
1301
+ var r = CssColorStringParser._parseResStrForRgb(res[1]);
1302
+ var g = CssColorStringParser._parseResStrForRgb(res[2]);
1303
+ var b = CssColorStringParser._parseResStrForRgb(res[3]);
1304
+ var a = CssColorStringParser._parsePercent(res[4]);
1305
+ return [r, g, b, a];
1306
+ }
1307
+ return null;
1308
+ };
1309
+ // 解析hsl hsla hsl(360,100%,100%) hsla(360,100%,100%,1)
1310
+ CssColorStringParser.parseHSLA = function (v) {
1311
+ var regx = /^hsla?\(([0-9.]+)(?:deg)?,([0-9.]+%?),([0-9.]+%?)(?:,([0-9.]+%?))?\)$/i;
1312
+ var res = regx.exec(v);
1313
+ if (res) {
1314
+ var h = CssColorStringParser._parseResStrForHue(res[1]);
1315
+ var s = CssColorStringParser._parsePercent(res[2]);
1316
+ var l = CssColorStringParser._parsePercent(res[3]);
1317
+ var a = CssColorStringParser._parsePercent(res[4]);
1318
+ return [h, s, l, a];
1319
+ }
1320
+ return null;
1321
+ };
1322
+ // 解析hwb
1323
+ CssColorStringParser.parseHWB = function (v) {
1324
+ var regx = /^hwb\s?\(\s?([0-9.]+)(?:deg)?\s([0-9.]+%?)\s([0-9.]+%?)\s?(?:\/\s?([0-9.]+%?))?\s?\)$/i;
1325
+ var res = regx.exec(v);
1326
+ if (res) {
1327
+ var h = CssColorStringParser._parseResStrForHue(res[1]);
1328
+ var w = CssColorStringParser._parsePercent(res[2]);
1329
+ var b = CssColorStringParser._parsePercent(res[3]);
1330
+ var a = CssColorStringParser._parsePercent(res[4]);
1331
+ return [h, w, b, a];
1332
+ }
1333
+ return null;
1334
+ };
1335
+ // 解析rgb rgb(178 57 57 / 44%) 字符串中存在空格,因此使用清除两侧空格的原始字符串
1336
+ CssColorStringParser.parseRGBA2 = function (v) {
1337
+ var regx = /^rgba?\s?\(\s?([0-9.]+%?)\s?([0-9.]+%?)\s?([0-9.]+%?)(?:\s?\/\s?([0-9.]+%?))?\s?\)$/i;
1338
+ var res = regx.exec(v);
1339
+ if (res) {
1340
+ var r = CssColorStringParser._parseResStrForRgb(res[1]);
1341
+ var g = CssColorStringParser._parseResStrForRgb(res[2]);
1342
+ var b = CssColorStringParser._parseResStrForRgb(res[3]);
1343
+ var a = CssColorStringParser._parsePercent(res[4]);
1344
+ return [r, g, b, a];
1345
+ }
1346
+ return null;
1347
+ };
1348
+ // 解析hsl hsl(215 85% 62% / 1)
1349
+ CssColorStringParser.parseHSLA2 = function (v) {
1350
+ var regx = /^hsla?\s?\(\s?([0-9.]+)(?:deg)?\s([0-9.]+%?)\s([0-9.]+%?)\s?(?:\/\s?([0-9.]+%?))?\s?\)$/i;
1351
+ var res = regx.exec(v);
1352
+ if (res) {
1353
+ var h = CssColorStringParser._parseResStrForHue(res[1]);
1354
+ var s = CssColorStringParser._parsePercent(res[2]);
1355
+ var l = CssColorStringParser._parsePercent(res[3]);
1356
+ var a = CssColorStringParser._parsePercent(res[4]);
1357
+ return [h, s, l, a];
1358
+ }
1359
+ return null;
1360
+ };
1361
+ // 将结果解析为数字
1362
+ CssColorStringParser._parseResStrForRgb = function (v) {
1363
+ if (typeof v === 'string') {
1364
+ v = parseFloat(v) / ('%' === v.substr(-1) ? 100.0 / 255 : 1);
1365
+ }
1366
+ if (isNaN(v)) {
1367
+ v = 1;
1368
+ }
1369
+ return limitNumber(0, 255, v);
1370
+ };
1371
+ CssColorStringParser._parseResStrForHue = function (v) {
1372
+ if (typeof v === 'string') {
1373
+ v = parseFloat(v);
1374
+ }
1375
+ if (isNaN(v)) {
1376
+ v = 0;
1377
+ }
1378
+ return limitNumber(0, 360, v);
1379
+ };
1380
+ CssColorStringParser._parsePercent = function (v) {
1381
+ if (typeof v === 'string') {
1382
+ v = parseFloat(v) / ('%' === v.substr(-1) ? 100.0 : 1);
1383
+ }
1384
+ if (isNaN(v)) {
1385
+ v = 1;
1386
+ }
1387
+ return limitNumber(0, 1, v);
1388
+ };
1389
+ return CssColorStringParser;
1390
+ }());
1391
+
1392
+
1236
1393
  ;// CONCATENATED MODULE: ./src/CssColorParser.ts
1237
1394
  /*
1238
1395
  * @Descripttion: 颜色解析器
@@ -1240,9 +1397,10 @@ function setNumberPrecision(number, precision) {
1240
1397
  * @Author: roman_123
1241
1398
  * @Date: 2021-01-19 09:22:11
1242
1399
  * @LastEditors: Please set LastEditors
1243
- * @LastEditTime: 2023-05-26 11:20:17
1400
+ * @LastEditTime: 2023-05-26 15:59:40
1244
1401
  */
1245
1402
 
1403
+
1246
1404
  var CssColorParser = /** @class */ (function () {
1247
1405
  function CssColorParser(red, green, blue, alpha) {
1248
1406
  this.r = 255;
@@ -1374,165 +1532,98 @@ var CssColorParser = /** @class */ (function () {
1374
1532
  this.a === color.a);
1375
1533
  }
1376
1534
  };
1377
- return CssColorParser;
1378
- }());
1379
- /* harmony default export */ var src_CssColorParser = (CssColorParser);
1380
-
1381
- ;// CONCATENATED MODULE: ./src/utils/color-tools.ts
1382
-
1383
- /*
1384
- * @Author: roman_123
1385
- * @Description: 部分核心代码修改自cesium
1386
- * @Date: 2022-11-28 17:32:57
1387
- * @LastEditTime: 2022-12-06 00:02:21
1388
- */
1389
- var CssColorStringParser = /** @class */ (function () {
1390
- function CssColorStringParser() {
1391
- }
1392
- // 去除字符串内所有空格
1393
- CssColorStringParser.clearStrSpace = function (v) {
1394
- return v.replace(/\s/g, '');
1395
- };
1396
- // 去除字符串两边空格,将中间多个空格合并为一个
1397
- CssColorStringParser.trimStr = function (v) {
1398
- v = v.replace(/\s+/g, ' ');
1399
- return v.trim();
1400
- };
1401
- // 解析3位16进制 #fff #fff0
1402
- CssColorStringParser.parse3BitsHEX = function (v) {
1403
- var regx = /^#([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])?$/i;
1404
- var res = regx.exec(v);
1405
- if (res) {
1406
- var res4 = defaultValue(res[4], 'f');
1407
- var r = CssColorStringParser._parseResStrForRgb(parseInt(res[1] + res[1], 16));
1408
- var g = CssColorStringParser._parseResStrForRgb(parseInt(res[2] + res[2], 16));
1409
- var b = CssColorStringParser._parseResStrForRgb(parseInt(res[3] + res[3], 16));
1410
- var a = CssColorStringParser._parsePercent(parseInt(res4 + res4, 16) / 255);
1411
- return [r, g, b, a];
1412
- }
1413
- return null;
1414
- };
1415
- // 解析6位16进制 #ffffff #ffffff00
1416
- CssColorStringParser.parse6BitsHEX = function (v) {
1417
- var regx = /^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})?$/i;
1418
- var res = regx.exec(v);
1419
- if (res) {
1420
- var res4 = defaultValue(res[4], 'ff');
1421
- var r = CssColorStringParser._parseResStrForRgb(parseInt(res[1], 16));
1422
- var g = CssColorStringParser._parseResStrForRgb(parseInt(res[2], 16));
1423
- var b = CssColorStringParser._parseResStrForRgb(parseInt(res[3], 16));
1424
- var a = CssColorStringParser._parsePercent(parseInt(res4, 16) / 255.0);
1425
- return [r, g, b, a];
1426
- }
1427
- return null;
1428
- };
1429
- // 解析rgb rgba rgb(255,255,255) rgba(255,255,255,1) rgba(100%,100%,100%, 1)
1430
- CssColorStringParser.parseRGBA = function (v) {
1431
- var regx = /^rgba?\(([0-9.]+%?),([0-9.]+%?),([0-9.]+%?)(?:,([0-9.]+%?))?\)$/i;
1432
- var res = regx.exec(v);
1433
- if (res) {
1434
- var r = CssColorStringParser._parseResStrForRgb(res[1]);
1435
- var g = CssColorStringParser._parseResStrForRgb(res[2]);
1436
- var b = CssColorStringParser._parseResStrForRgb(res[3]);
1437
- var a = CssColorStringParser._parsePercent(res[4]);
1438
- return [r, g, b, a];
1439
- }
1440
- return null;
1441
- };
1442
- // 解析hsl hsla hsl(360,100%,100%) hsla(360,100%,100%,1)
1443
- CssColorStringParser.parseHSLA = function (v) {
1444
- var regx = /^hsla?\(([0-9.]+)(?:deg)?,([0-9.]+%?),([0-9.]+%?)(?:,([0-9.]+%?))?\)$/i;
1445
- var res = regx.exec(v);
1446
- if (res) {
1447
- var h = CssColorStringParser._parseResStrForHue(res[1]);
1448
- var s = CssColorStringParser._parsePercent(res[2]);
1449
- var l = CssColorStringParser._parsePercent(res[3]);
1450
- var a = CssColorStringParser._parsePercent(res[4]);
1451
- return [h, s, l, a];
1452
- }
1453
- return null;
1454
- };
1455
- // 解析hwb
1456
- CssColorStringParser.parseHWB = function (v) {
1457
- var regx = /^hwb\s?\(\s?([0-9.]+)(?:deg)?\s([0-9.]+%?)\s([0-9.]+%?)\s?(?:\/\s?([0-9.]+%?))?\s?\)$/i;
1458
- var res = regx.exec(v);
1459
- if (res) {
1460
- var h = CssColorStringParser._parseResStrForHue(res[1]);
1461
- var w = CssColorStringParser._parsePercent(res[2]);
1462
- var b = CssColorStringParser._parsePercent(res[3]);
1463
- var a = CssColorStringParser._parsePercent(res[4]);
1464
- return [h, w, b, a];
1465
- }
1466
- return null;
1467
- };
1468
- // 解析rgb rgb(178 57 57 / 44%) 字符串中存在空格,因此使用清除两侧空格的原始字符串
1469
- CssColorStringParser.parseRGBA2 = function (v) {
1470
- var regx = /^rgba?\s?\(\s?([0-9.]+%?)\s?([0-9.]+%?)\s?([0-9.]+%?)(?:\s?\/\s?([0-9.]+%?))?\s?\)$/i;
1471
- var res = regx.exec(v);
1472
- if (res) {
1473
- var r = CssColorStringParser._parseResStrForRgb(res[1]);
1474
- var g = CssColorStringParser._parseResStrForRgb(res[2]);
1475
- var b = CssColorStringParser._parseResStrForRgb(res[3]);
1476
- var a = CssColorStringParser._parsePercent(res[4]);
1477
- return [r, g, b, a];
1535
+ /**
1536
+ * @description: 解析16进制颜色
1537
+ * @param {string} v
1538
+ * @return {CssColorParser}
1539
+ * @example: parseHEX('#FFF')
1540
+ */
1541
+ CssColorParser.parseHEX = function (v) {
1542
+ var cssStr = CssColorStringParser.clearStrSpace(v);
1543
+ var res = CssColorStringParser.parse3BitsHEX(cssStr);
1544
+ if (!res) {
1545
+ res = CssColorStringParser.parse6BitsHEX(cssStr);
1478
1546
  }
1479
- return null;
1547
+ return res && CssColorParser.fromArray(res);
1480
1548
  };
1481
- // 解析hsl hsl(215 85% 62% / 1)
1482
- CssColorStringParser.parseHSLA2 = function (v) {
1483
- var regx = /^hsla?\s?\(\s?([0-9.]+)(?:deg)?\s([0-9.]+%?)\s([0-9.]+%?)\s?(?:\/\s?([0-9.]+%?))?\s?\)$/i;
1484
- var res = regx.exec(v);
1485
- if (res) {
1486
- var h = CssColorStringParser._parseResStrForHue(res[1]);
1487
- var s = CssColorStringParser._parsePercent(res[2]);
1488
- var l = CssColorStringParser._parsePercent(res[3]);
1489
- var a = CssColorStringParser._parsePercent(res[4]);
1490
- return [h, s, l, a];
1549
+ /**
1550
+ * @description: 解析rgba、rgb颜色
1551
+ * @param {string} v
1552
+ * @return {CssColorParser}
1553
+ * @example: parseRGBA('rgba(255,255,255,1)')
1554
+ */
1555
+ CssColorParser.parseRGBA = function (v) {
1556
+ var cssStr = CssColorStringParser.clearStrSpace(v);
1557
+ var res = CssColorStringParser.parseRGBA(cssStr);
1558
+ if (!res) {
1559
+ var cssStr2 = CssColorStringParser.trimStr(v);
1560
+ res = CssColorStringParser.parseRGBA2(cssStr2);
1491
1561
  }
1492
- return null;
1562
+ return res && CssColorParser.fromArray(res);
1493
1563
  };
1494
- // 将结果解析为数字
1495
- CssColorStringParser._parseResStrForRgb = function (v) {
1496
- if (typeof v === 'string') {
1497
- v = parseFloat(v) / ('%' === v.substr(-1) ? 100.0 / 255 : 1);
1498
- }
1499
- if (isNaN(v)) {
1500
- v = 1;
1501
- }
1502
- return limitNumber(0, 255, v);
1564
+ /**
1565
+ * @description: 将ColorJson格式的json数据转换为解析对象
1566
+ * @param {ColorJson} json
1567
+ * @return {CssColorParser}
1568
+ * @example: fromJson({r: 255, g: 255, b: 255, a: 1})
1569
+ */
1570
+ CssColorParser.fromJson = function (json) {
1571
+ return new CssColorParser(json.r, json.g, json.b, json.a);
1503
1572
  };
1504
- CssColorStringParser._parseResStrForHue = function (v) {
1505
- if (typeof v === 'string') {
1506
- v = parseFloat(v);
1507
- }
1508
- if (isNaN(v)) {
1509
- v = 0;
1510
- }
1511
- return limitNumber(0, 360, v);
1573
+ /**
1574
+ * @description: 将RGBA数组转换为解析对象
1575
+ * @param {Array} color
1576
+ * @return {CssColorParser}
1577
+ * @example: fromJson([255,255,255,1])
1578
+ */
1579
+ CssColorParser.fromArray = function (color) {
1580
+ return new CssColorParser(color[0], color[1], color[2], color[3]);
1512
1581
  };
1513
- CssColorStringParser._parsePercent = function (v) {
1514
- if (typeof v === 'string') {
1515
- v = parseFloat(v) / ('%' === v.substr(-1) ? 100.0 : 1);
1516
- }
1517
- if (isNaN(v)) {
1518
- v = 1;
1519
- }
1520
- return limitNumber(0, 1, v);
1582
+ /**
1583
+ * @description: 产生随机颜色
1584
+ * @return {CssColorParser}
1585
+ * @example: fromRandom(new CssColorParser(0,0,0,0), new CssColorParser(255,255,255,1))
1586
+ */
1587
+ CssColorParser.fromRandom = function (color1, color2) {
1588
+ var r = Math.random() * Math.abs(color2.r - color1.r) +
1589
+ Math.min(color1.r, color2.r);
1590
+ var g = Math.random() * Math.abs(color2.g - color1.g) +
1591
+ Math.min(color1.g, color2.g);
1592
+ var b = Math.random() * Math.abs(color2.b - color1.b) +
1593
+ Math.min(color1.b, color2.b);
1594
+ var a = Math.random() * Math.abs(color2.a - color1.a) +
1595
+ Math.min(color1.a, color2.a);
1596
+ return new CssColorParser(r, g, b, a);
1521
1597
  };
1522
- return CssColorStringParser;
1598
+ return CssColorParser;
1523
1599
  }());
1524
-
1600
+ /* harmony default export */ var src_CssColorParser = (CssColorParser);
1525
1601
 
1526
- ;// CONCATENATED MODULE: ./src/utils/parsers/parsers.ts
1602
+ // EXTERNAL MODULE: ./node_modules/color-convert/index.js
1603
+ var color_convert = __webpack_require__(907);
1604
+ var color_convert_default = /*#__PURE__*/__webpack_require__.n(color_convert);
1605
+ ;// CONCATENATED MODULE: ./src/utils/parsers.ts
1606
+
1527
1607
 
1528
1608
 
1529
1609
 
1530
- var convert = __webpack_require__(907);
1610
+ /**
1611
+ * @description: 解析颜色关键字
1612
+ * @param {string} v
1613
+ * @return {CssColorParser}
1614
+ * @example: parseKeyWord('red')
1615
+ */
1531
1616
  function parseKeyWord(v) {
1532
1617
  var cssStr = CssColorStringParser.clearStrSpace(v);
1533
- var res = convert.keyword.rgb(cssStr);
1618
+ var res = color_convert_default().keyword.rgb(cssStr);
1534
1619
  return res && fromArray(res);
1535
1620
  }
1621
+ /**
1622
+ * @description: 解析16进制字符串
1623
+ * @param {string} v
1624
+ * @return {CssColorParser}
1625
+ * @example: parseHEX('#FFF')
1626
+ */
1536
1627
  function parseHEX(v) {
1537
1628
  var cssStr = CssColorStringParser.clearStrSpace(v);
1538
1629
  var res = CssColorStringParser.parse3BitsHEX(cssStr);
@@ -1541,6 +1632,12 @@ function parseHEX(v) {
1541
1632
  }
1542
1633
  return res && fromArray(res);
1543
1634
  }
1635
+ /**
1636
+ * @description: 解析RGBA
1637
+ * @param {string} v
1638
+ * @return {CssColorParser}
1639
+ * @example: parseRGBA('rgba(255,255,255,1)')
1640
+ */
1544
1641
  function parseRGBA(v) {
1545
1642
  var cssStr = CssColorStringParser.clearStrSpace(v);
1546
1643
  var res = CssColorStringParser.parseRGBA(cssStr);
@@ -1550,6 +1647,12 @@ function parseRGBA(v) {
1550
1647
  }
1551
1648
  return res && fromArray(res);
1552
1649
  }
1650
+ /**
1651
+ * @description: 解析HSLA
1652
+ * @param {string} v
1653
+ * @return {CssColorParser}
1654
+ * @example: parseHSLA('hsla(215,85%,62%,0.8)')
1655
+ */
1553
1656
  function parseHSLA(v) {
1554
1657
  var cssStr = CssColorStringParser.clearStrSpace(v);
1555
1658
  var res = CssColorStringParser.parseHSLA(cssStr);
@@ -1559,6 +1662,12 @@ function parseHSLA(v) {
1559
1662
  }
1560
1663
  return res && fromHSL(res[0], res[1], res[2], res[3]);
1561
1664
  }
1665
+ /**
1666
+ * @description: 解析HWB
1667
+ * @param {string} v
1668
+ * @return {CssColorParser}
1669
+ * @example: parseHWB('hwb(215deg 30% 6% / 80%)')
1670
+ */
1562
1671
  function parseHWB(v) {
1563
1672
  var cssStr2 = CssColorStringParser.trimStr(v);
1564
1673
  var res = CssColorStringParser.parseHWB(cssStr2);
@@ -1596,7 +1705,7 @@ function fromColorStr(v) {
1596
1705
  * @example: fromHSL(0,1,1,1)
1597
1706
  */
1598
1707
  function fromHSL(h, s, l, a) {
1599
- var res = convert.hsl.rgb(limitNumber(0, 360, h), limitNumber(0, 100, s * 100), limitNumber(0, 100, l * 100));
1708
+ var res = color_convert_default().hsl.rgb(limitNumber(0, 360, h), limitNumber(0, 100, s * 100), limitNumber(0, 100, l * 100));
1600
1709
  return new src_CssColorParser(res[0], res[1], res[2], defaultValue(Number(a), 1));
1601
1710
  }
1602
1711
  /**
@@ -1609,14 +1718,14 @@ function fromHSL(h, s, l, a) {
1609
1718
  * @example: fromHSL(0,1,1,1)
1610
1719
  */
1611
1720
  function fromHWB(h, w, b, a) {
1612
- var res = convert.hwb.rgb(limitNumber(0, 360, h), limitNumber(0, 100, w * 100), limitNumber(0, 100, b * 100));
1721
+ var res = color_convert_default().hwb.rgb(limitNumber(0, 360, h), limitNumber(0, 100, w * 100), limitNumber(0, 100, b * 100));
1613
1722
  return new src_CssColorParser(res[0], res[1], res[2], defaultValue(Number(a), 1));
1614
1723
  }
1615
1724
  /**
1616
- * @description: 从解析器中产生随机颜色
1617
- * @return {CssColorParser}
1618
- * @author: roman_123
1619
- */
1725
+ * @description: 产生随机颜色
1726
+ * @return {CssColorParser}
1727
+ * @example: fromRandom('#000', ''#fff)
1728
+ */
1620
1729
  function fromRandom(color1, color2) {
1621
1730
  if (typeof color1 === 'string') {
1622
1731
  color1 = parseCssColorStr(color1);
@@ -1661,7 +1770,7 @@ function fromArray(color) {
1661
1770
  * @Author: roman_123
1662
1771
  * @Description:
1663
1772
  * @Date: 2023-05-25 17:45:22
1664
- * @LastEditTime: 2023-05-26 11:17:48
1773
+ * @LastEditTime: 2023-05-26 15:54:02
1665
1774
  */
1666
1775
 
1667
1776