mp-darkmode 1.1.4-beta.0 → 1.1.4
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/darkmode.js +37 -29
- package/dist/darkmode.js.map +1 -1
- package/dist/darkmode.min.js +1 -1
- package/doc/cn/API.md +12 -0
- package/doc/en/API.md +12 -0
- package/package.json +1 -1
package/dist/darkmode.js
CHANGED
|
@@ -2747,19 +2747,21 @@ var config = {
|
|
|
2747
2747
|
/*!*********************************!*\
|
|
2748
2748
|
!*** ./src/modules/constant.js ***!
|
|
2749
2749
|
\*********************************/
|
|
2750
|
-
/*! exports provided: MEDIA_QUERY, CLASS_PREFIX, HTML_CLASS, COLORATTR, BGCOLORATTR, ORIGINAL_COLORATTR, ORIGINAL_BGCOLORATTR, BGIMAGEATTR, DEFAULT_LIGHT_TEXTCOLOR, DEFAULT_LIGHT_BGCOLOR, DEFAULT_DARK_TEXTCOLOR, DEFAULT_DARK_BGCOLOR, WHITE_LIKE_COLOR_BRIGHTNESS, MAX_LIMIT_BGCOLOR_BRIGHTNESS, MIN_LIMIT_OFFSET_BRIGHTNESS, HIGH_BGCOLOR_BRIGHTNESS, HIGH_BLACKWHITE_HSL_BRIGHTNESS, LOW_BLACKWHITE_HSL_BRIGHTNESS, IGNORE_ALPHA, PAGE_HEIGHT, TABLE_NAME, IMPORTANT_REGEXP */
|
|
2750
|
+
/*! exports provided: MEDIA_QUERY, CLASS_PREFIX, DM_CLASSNAME_REGEXP, HTML_CLASS, COLORATTR, BGCOLORATTR, ORIGINAL_COLORATTR, ORIGINAL_BGCOLORATTR, BGIMAGEATTR, BG_COLOR_DELIMITER, DEFAULT_LIGHT_TEXTCOLOR, DEFAULT_LIGHT_BGCOLOR, DEFAULT_DARK_TEXTCOLOR, DEFAULT_DARK_BGCOLOR, WHITE_LIKE_COLOR_BRIGHTNESS, MAX_LIMIT_BGCOLOR_BRIGHTNESS, MIN_LIMIT_OFFSET_BRIGHTNESS, HIGH_BGCOLOR_BRIGHTNESS, HIGH_BLACKWHITE_HSL_BRIGHTNESS, LOW_BLACKWHITE_HSL_BRIGHTNESS, IGNORE_ALPHA, PAGE_HEIGHT, TABLE_NAME, IMPORTANT_REGEXP, SEMICOLON_PLACEHOLDER, SEMICOLON_PLACEHOLDER_REGEXP */
|
|
2751
2751
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
2752
2752
|
|
|
2753
2753
|
"use strict";
|
|
2754
2754
|
__webpack_require__.r(__webpack_exports__);
|
|
2755
2755
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MEDIA_QUERY", function() { return MEDIA_QUERY; });
|
|
2756
2756
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CLASS_PREFIX", function() { return CLASS_PREFIX; });
|
|
2757
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DM_CLASSNAME_REGEXP", function() { return DM_CLASSNAME_REGEXP; });
|
|
2757
2758
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HTML_CLASS", function() { return HTML_CLASS; });
|
|
2758
2759
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "COLORATTR", function() { return COLORATTR; });
|
|
2759
2760
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BGCOLORATTR", function() { return BGCOLORATTR; });
|
|
2760
2761
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ORIGINAL_COLORATTR", function() { return ORIGINAL_COLORATTR; });
|
|
2761
2762
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ORIGINAL_BGCOLORATTR", function() { return ORIGINAL_BGCOLORATTR; });
|
|
2762
2763
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BGIMAGEATTR", function() { return BGIMAGEATTR; });
|
|
2764
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BG_COLOR_DELIMITER", function() { return BG_COLOR_DELIMITER; });
|
|
2763
2765
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DEFAULT_LIGHT_TEXTCOLOR", function() { return DEFAULT_LIGHT_TEXTCOLOR; });
|
|
2764
2766
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DEFAULT_LIGHT_BGCOLOR", function() { return DEFAULT_LIGHT_BGCOLOR; });
|
|
2765
2767
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DEFAULT_DARK_TEXTCOLOR", function() { return DEFAULT_DARK_TEXTCOLOR; });
|
|
@@ -2774,6 +2776,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
2774
2776
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PAGE_HEIGHT", function() { return PAGE_HEIGHT; });
|
|
2775
2777
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TABLE_NAME", function() { return TABLE_NAME; });
|
|
2776
2778
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "IMPORTANT_REGEXP", function() { return IMPORTANT_REGEXP; });
|
|
2779
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SEMICOLON_PLACEHOLDER", function() { return SEMICOLON_PLACEHOLDER; });
|
|
2780
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SEMICOLON_PLACEHOLDER_REGEXP", function() { return SEMICOLON_PLACEHOLDER_REGEXP; });
|
|
2777
2781
|
/**
|
|
2778
2782
|
* @name 常量
|
|
2779
2783
|
*
|
|
@@ -2782,15 +2786,21 @@ var MEDIA_QUERY = '(prefers-color-scheme: dark)'; // Dark Mode的CSS媒体查询
|
|
|
2782
2786
|
|
|
2783
2787
|
var CLASS_PREFIX = 'js_darkmode__'; // Dark Mode class前缀
|
|
2784
2788
|
|
|
2789
|
+
var DM_CLASSNAME_REGEXP = new RegExp("".concat(CLASS_PREFIX, "\\d+"));
|
|
2785
2790
|
var HTML_CLASS = 'data_color_scheme_dark'; // 强制设置暗黑模式时给html加的class
|
|
2786
2791
|
|
|
2787
2792
|
var RANDOM = "".concat(new Date() * 1).concat(Math.round(Math.random() * 10)); // 生成个随机数,格式为时间戳+随机数
|
|
2788
2793
|
|
|
2789
|
-
var COLORATTR = "data-darkmode-color-".concat(RANDOM);
|
|
2790
|
-
|
|
2791
|
-
var
|
|
2792
|
-
|
|
2794
|
+
var COLORATTR = "data-darkmode-color-".concat(RANDOM); // dm color,即算法生成的新色值,单个
|
|
2795
|
+
|
|
2796
|
+
var BGCOLORATTR = "data-darkmode-bgcolor-".concat(RANDOM); // dm bg-color,即算法生成的新色值,有多个,用BG_COLOR_DELIMITER分割
|
|
2797
|
+
|
|
2798
|
+
var ORIGINAL_COLORATTR = "data-darkmode-original-color-".concat(RANDOM); // lm color,即原色值,单个
|
|
2799
|
+
|
|
2800
|
+
var ORIGINAL_BGCOLORATTR = "data-darkmode-original-bgcolor-".concat(RANDOM); // lm bg-color,即原色值,有多个,用BG_COLOR_DELIMITER分割
|
|
2801
|
+
|
|
2793
2802
|
var BGIMAGEATTR = "data-darkmode-bgimage-".concat(RANDOM);
|
|
2803
|
+
var BG_COLOR_DELIMITER = '|';
|
|
2794
2804
|
var DEFAULT_LIGHT_TEXTCOLOR = '#191919'; // 非Dark Mode下字体颜色
|
|
2795
2805
|
|
|
2796
2806
|
var DEFAULT_LIGHT_BGCOLOR = '#fff'; // 非Dark Mode下背景颜色
|
|
@@ -2813,6 +2823,10 @@ var TABLE_NAME = ['TABLE', 'TR', 'TD', 'TH']; // 支持bgcolor属性的table标
|
|
|
2813
2823
|
|
|
2814
2824
|
var IMPORTANT_REGEXP = / !important$/; // !important
|
|
2815
2825
|
|
|
2826
|
+
var SEMICOLON_PLACEHOLDER = '<$#_SEMICOLON_#$>'; // 分号占位符
|
|
2827
|
+
|
|
2828
|
+
var SEMICOLON_PLACEHOLDER_REGEXP = /<\$#_SEMICOLON_#\$>/g;
|
|
2829
|
+
|
|
2816
2830
|
/***/ }),
|
|
2817
2831
|
|
|
2818
2832
|
/***/ "./src/modules/cssUtils.js":
|
|
@@ -3461,10 +3475,6 @@ color_name__WEBPACK_IMPORTED_MODULE_1___default.a.transparent = [255, 255, 255,
|
|
|
3461
3475
|
// 节点相关操作工具API
|
|
3462
3476
|
|
|
3463
3477
|
|
|
3464
|
-
var SEMICOLON_PLACEHOLDER = '<$#_SEMICOLON_#$>'; // 分号占位符
|
|
3465
|
-
|
|
3466
|
-
var SEMICOLON_PLACEHOLDER_REGEXP = /<\$#_SEMICOLON_#\$>/g;
|
|
3467
|
-
var DM_CLASSNAME_REGEXP = new RegExp("".concat(_constant__WEBPACK_IMPORTED_MODULE_2__["CLASS_PREFIX"], "\\d+"));
|
|
3468
3478
|
var colorNameReg = new RegExp(Object.keys(color_name__WEBPACK_IMPORTED_MODULE_1___default.a).map(function (colorName) {
|
|
3469
3479
|
return "\\b".concat(colorName, "\\b");
|
|
3470
3480
|
}).join('|'), 'ig'); // 生成正则表达式来匹配这些colorName
|
|
@@ -3485,9 +3495,8 @@ var parseColor = function parseColor(value, parseTransparent) {
|
|
|
3485
3495
|
var color = color_name__WEBPACK_IMPORTED_MODULE_1___default.a[match.toLowerCase()];
|
|
3486
3496
|
return "".concat(color.length > 3 ? 'rgba' : 'rgb', "(").concat(color.toString(), ")");
|
|
3487
3497
|
});
|
|
3488
|
-
};
|
|
3498
|
+
}; // 计算mix颜色
|
|
3489
3499
|
|
|
3490
|
-
var BG_COLOR_DELIMITER = '|'; // 计算mix颜色
|
|
3491
3500
|
|
|
3492
3501
|
var mixColor = function mixColor(colors) {
|
|
3493
3502
|
if (!colors || colors.length < 1) return '';
|
|
@@ -3676,12 +3685,11 @@ var SDK = /*#__PURE__*/function () {
|
|
|
3676
3685
|
newColor = this._adjustBackgroundBrightness(color);
|
|
3677
3686
|
|
|
3678
3687
|
if (!options.hasInlineColor) {
|
|
3679
|
-
var parentTextColor = el[_constant__WEBPACK_IMPORTED_MODULE_2__["
|
|
3680
|
-
var parentBgColorStr = newColor || color;
|
|
3688
|
+
var parentTextColor = el[_constant__WEBPACK_IMPORTED_MODULE_2__["ORIGINAL_COLORATTR"]] || _config__WEBPACK_IMPORTED_MODULE_3__["default"].defaultLightTextColor;
|
|
3681
3689
|
|
|
3682
3690
|
var ret = this._adjustBrightness(color__WEBPACK_IMPORTED_MODULE_0___default()(parentTextColor), el, {
|
|
3683
3691
|
isTextColor: true,
|
|
3684
|
-
parentElementBgColorStr:
|
|
3692
|
+
parentElementBgColorStr: newColor || color
|
|
3685
3693
|
}, isUpdate);
|
|
3686
3694
|
|
|
3687
3695
|
if (ret.newColor) {
|
|
@@ -3745,10 +3753,10 @@ var SDK = /*#__PURE__*/function () {
|
|
|
3745
3753
|
if (!cssKVList) {
|
|
3746
3754
|
// 没有传入cssKVList就从内联样式中提取
|
|
3747
3755
|
// styles.cssText 读出来的颜色统一是rgba格式,除了用英文定义颜色(如:black、white)
|
|
3748
|
-
cssKVList = (styles.cssText && styles.cssText.replace(/("[^;]*);([^;]*")|('[^;]*);([^;]*')/g, "$1$3".concat(SEMICOLON_PLACEHOLDER, "$2$4")).split(';') || []).map(function (cssStr) {
|
|
3756
|
+
cssKVList = (styles.cssText && styles.cssText.replace(/("[^;]*);([^;]*")|('[^;]*);([^;]*')/g, "$1$3".concat(_constant__WEBPACK_IMPORTED_MODULE_2__["SEMICOLON_PLACEHOLDER"], "$2$4")).split(';') || []).map(function (cssStr) {
|
|
3749
3757
|
// 将cssStr转换为[key, value],并清除各个元素的前后空白字符
|
|
3750
3758
|
var splitIdx = cssStr.indexOf(':');
|
|
3751
|
-
return [cssStr.slice(0, splitIdx).toLowerCase(), cssStr.slice(splitIdx + 1).replace(SEMICOLON_PLACEHOLDER_REGEXP, ';')].map(function (item) {
|
|
3759
|
+
return [cssStr.slice(0, splitIdx).toLowerCase(), cssStr.slice(splitIdx + 1).replace(_constant__WEBPACK_IMPORTED_MODULE_2__["SEMICOLON_PLACEHOLDER_REGEXP"], ';')].map(function (item) {
|
|
3752
3760
|
return (item || '').replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
|
|
3753
3761
|
});
|
|
3754
3762
|
});
|
|
@@ -3820,7 +3828,7 @@ var SDK = /*#__PURE__*/function () {
|
|
|
3820
3828
|
}
|
|
3821
3829
|
|
|
3822
3830
|
if (nodeName === 'FONT' && !hasInlineColor) {
|
|
3823
|
-
// 如果是font
|
|
3831
|
+
// 如果是font标签且没有内联文本颜色样式
|
|
3824
3832
|
this._try(function () {
|
|
3825
3833
|
var color = el.getAttribute('color'); // 获取color的色值
|
|
3826
3834
|
|
|
@@ -3895,7 +3903,7 @@ var SDK = /*#__PURE__*/function () {
|
|
|
3895
3903
|
|
|
3896
3904
|
if (isUpdate && el.className && typeof el.className === 'string') {
|
|
3897
3905
|
// 先提取dm className
|
|
3898
|
-
var matches = el.className.match(DM_CLASSNAME_REGEXP);
|
|
3906
|
+
var matches = el.className.match(_constant__WEBPACK_IMPORTED_MODULE_2__["DM_CLASSNAME_REGEXP"]);
|
|
3899
3907
|
|
|
3900
3908
|
if (matches) {
|
|
3901
3909
|
dmClassName = matches[0];
|
|
@@ -3971,13 +3979,16 @@ var SDK = /*#__PURE__*/function () {
|
|
|
3971
3979
|
|
|
3972
3980
|
if (isBgColor || textColorIdx > 0) {
|
|
3973
3981
|
// 不处理-webkit-text-stroke-color
|
|
3974
|
-
var attrName = isBgColor ? _constant__WEBPACK_IMPORTED_MODULE_2__["BGCOLORATTR"] : _constant__WEBPACK_IMPORTED_MODULE_2__["COLORATTR"];
|
|
3975
|
-
var originalAttrName = isBgColor ? _constant__WEBPACK_IMPORTED_MODULE_2__["ORIGINAL_BGCOLORATTR"] : _constant__WEBPACK_IMPORTED_MODULE_2__["ORIGINAL_COLORATTR"];
|
|
3976
3982
|
var retColorStr = retColor ? retColor.toString() : match;
|
|
3977
3983
|
replaceIndex === 0 && Object(_domUtils__WEBPACK_IMPORTED_MODULE_5__["getChildrenAndIt"])(el).forEach(function (dom) {
|
|
3978
|
-
|
|
3979
|
-
|
|
3980
|
-
|
|
3984
|
+
if (isBgColor) {
|
|
3985
|
+
dom[_constant__WEBPACK_IMPORTED_MODULE_2__["BGCOLORATTR"]] = retColorStr;
|
|
3986
|
+
dom[_constant__WEBPACK_IMPORTED_MODULE_2__["ORIGINAL_BGCOLORATTR"]] = (dom[_constant__WEBPACK_IMPORTED_MODULE_2__["ORIGINAL_BGCOLORATTR"]] || _config__WEBPACK_IMPORTED_MODULE_3__["default"].defaultLightBgColor).split(_constant__WEBPACK_IMPORTED_MODULE_2__["BG_COLOR_DELIMITER"]).concat(match).join(_constant__WEBPACK_IMPORTED_MODULE_2__["BG_COLOR_DELIMITER"]);
|
|
3987
|
+
} else {
|
|
3988
|
+
dom[_constant__WEBPACK_IMPORTED_MODULE_2__["COLORATTR"]] = retColorStr;
|
|
3989
|
+
dom[_constant__WEBPACK_IMPORTED_MODULE_2__["ORIGINAL_COLORATTR"]] = match;
|
|
3990
|
+
} // 如果设置背景颜色,取消背景图片的影响
|
|
3991
|
+
|
|
3981
3992
|
|
|
3982
3993
|
if (isBgColor && color__WEBPACK_IMPORTED_MODULE_0___default()(retColorStr).alpha() >= _constant__WEBPACK_IMPORTED_MODULE_2__["IGNORE_ALPHA"] && dom[_constant__WEBPACK_IMPORTED_MODULE_2__["BGIMAGEATTR"]]) {
|
|
3983
3994
|
delete dom[_constant__WEBPACK_IMPORTED_MODULE_2__["BGIMAGEATTR"]];
|
|
@@ -3986,7 +3997,7 @@ var SDK = /*#__PURE__*/function () {
|
|
|
3986
3997
|
}
|
|
3987
3998
|
|
|
3988
3999
|
retColor && (cssChange = true);
|
|
3989
|
-
replaceIndex
|
|
4000
|
+
replaceIndex++;
|
|
3990
4001
|
return retColor || match;
|
|
3991
4002
|
}
|
|
3992
4003
|
|
|
@@ -4004,7 +4015,7 @@ var SDK = /*#__PURE__*/function () {
|
|
|
4004
4015
|
|
|
4005
4016
|
if ((isBackgroundAttr || isBorderImageAttr) && /url\([^)]*\)/i.test(value)) {
|
|
4006
4017
|
cssChange = true;
|
|
4007
|
-
var imgBgColor = mixColor((el[_constant__WEBPACK_IMPORTED_MODULE_2__["ORIGINAL_BGCOLORATTR"]] || _config__WEBPACK_IMPORTED_MODULE_3__["default"].defaultLightBgColor).split(BG_COLOR_DELIMITER)); // 在背景图片下加一层原背景颜色:
|
|
4018
|
+
var imgBgColor = mixColor((el[_constant__WEBPACK_IMPORTED_MODULE_2__["ORIGINAL_BGCOLORATTR"]] || _config__WEBPACK_IMPORTED_MODULE_3__["default"].defaultLightBgColor).split(_constant__WEBPACK_IMPORTED_MODULE_2__["BG_COLOR_DELIMITER"])); // 在背景图片下加一层原背景颜色:
|
|
4008
4019
|
// background-image使用多层背景(注意background-position也要多加一层 https://www.w3.org/TR/css-backgrounds-3/#layering);
|
|
4009
4020
|
// border-image不支持多层背景,需要添加background-color
|
|
4010
4021
|
|
|
@@ -4063,7 +4074,7 @@ var SDK = /*#__PURE__*/function () {
|
|
|
4063
4074
|
}); // 没有设置自定义字体颜色,则使用非 Dark Mode 下默认字体颜色
|
|
4064
4075
|
|
|
4065
4076
|
if (!hasInlineColor) {
|
|
4066
|
-
var textColor =
|
|
4077
|
+
var textColor = el[_constant__WEBPACK_IMPORTED_MODULE_2__["ORIGINAL_COLORATTR"]] || _config__WEBPACK_IMPORTED_MODULE_3__["default"].defaultLightTextColor;
|
|
4067
4078
|
cssKV += _global__WEBPACK_IMPORTED_MODULE_4__["cssUtils"].genCssKV('color', textColor);
|
|
4068
4079
|
Object(_domUtils__WEBPACK_IMPORTED_MODULE_5__["getChildrenAndIt"])(el).forEach(function (dom) {
|
|
4069
4080
|
dom[_constant__WEBPACK_IMPORTED_MODULE_2__["COLORATTR"]] = textColor;
|
|
@@ -4092,9 +4103,6 @@ var SDK = /*#__PURE__*/function () {
|
|
|
4092
4103
|
|
|
4093
4104
|
if (cssKV) {
|
|
4094
4105
|
// 有处理过或者是背景图片就加class以及css
|
|
4095
|
-
// TODO: 备份应该写到插件里
|
|
4096
|
-
el.setAttribute('data-style', styles.cssText); // 备份内联样式到data-style里,供编辑器做反处理
|
|
4097
|
-
|
|
4098
4106
|
if (!dmClassName) {
|
|
4099
4107
|
dmClassName = "".concat(_constant__WEBPACK_IMPORTED_MODULE_2__["CLASS_PREFIX"]).concat(this._idx++);
|
|
4100
4108
|
el.classList.add(dmClassName);
|