mp-darkmode 1.1.7 → 1.1.9
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 +60 -26
- package/dist/darkmode.js.map +1 -1
- package/dist/darkmode.min.js +1 -1
- package/package.json +1 -1
package/dist/darkmode.js
CHANGED
|
@@ -2509,6 +2509,7 @@ function init() {
|
|
|
2509
2509
|
_modules_config__WEBPACK_IMPORTED_MODULE_1__["default"].set('string', opt, 'defaultLightBgColor');
|
|
2510
2510
|
_modules_config__WEBPACK_IMPORTED_MODULE_1__["default"].set('string', opt, 'defaultDarkTextColor');
|
|
2511
2511
|
_modules_config__WEBPACK_IMPORTED_MODULE_1__["default"].set('string', opt, 'defaultDarkBgColor');
|
|
2512
|
+
_modules_global__WEBPACK_IMPORTED_MODULE_2__["sdk"].init();
|
|
2512
2513
|
|
|
2513
2514
|
if (!_modules_config__WEBPACK_IMPORTED_MODULE_1__["default"].mode && mql === null && window.matchMedia) {
|
|
2514
2515
|
// 匹配媒体查询
|
|
@@ -2762,7 +2763,7 @@ var config = {
|
|
|
2762
2763
|
/*!*********************************!*\
|
|
2763
2764
|
!*** ./src/modules/constant.js ***!
|
|
2764
2765
|
\*********************************/
|
|
2765
|
-
/*! 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 */
|
|
2766
|
+
/*! 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, CSS_PROP_SERIES, CSS_PROP_LIST, TABLE_NAME, IMPORTANT_REGEXP, SEMICOLON_PLACEHOLDER, SEMICOLON_PLACEHOLDER_REGEXP */
|
|
2766
2767
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
2767
2768
|
|
|
2768
2769
|
"use strict";
|
|
@@ -2789,6 +2790,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
2789
2790
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LOW_BLACKWHITE_HSL_BRIGHTNESS", function() { return LOW_BLACKWHITE_HSL_BRIGHTNESS; });
|
|
2790
2791
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "IGNORE_ALPHA", function() { return IGNORE_ALPHA; });
|
|
2791
2792
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PAGE_HEIGHT", function() { return PAGE_HEIGHT; });
|
|
2793
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CSS_PROP_SERIES", function() { return CSS_PROP_SERIES; });
|
|
2794
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CSS_PROP_LIST", function() { return CSS_PROP_LIST; });
|
|
2792
2795
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TABLE_NAME", function() { return TABLE_NAME; });
|
|
2793
2796
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "IMPORTANT_REGEXP", function() { return IMPORTANT_REGEXP; });
|
|
2794
2797
|
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SEMICOLON_PLACEHOLDER", function() { return SEMICOLON_PLACEHOLDER; });
|
|
@@ -2834,6 +2837,28 @@ var LOW_BLACKWHITE_HSL_BRIGHTNESS = 22;
|
|
|
2834
2837
|
var IGNORE_ALPHA = 0.05; // 忽略的透明度阈值
|
|
2835
2838
|
|
|
2836
2839
|
var PAGE_HEIGHT = window.getInnerHeight && window.getInnerHeight() || window.innerHeight || document.documentElement.clientHeight;
|
|
2840
|
+
var CSS_PROP_SERIES = {
|
|
2841
|
+
// 支持的css属性,按类型做分类
|
|
2842
|
+
BG_COLOR: ['background-color', 'background-image', 'background'],
|
|
2843
|
+
TEXT_SHADOW: ['text-shadow'],
|
|
2844
|
+
TEXT_COLOR: ['-webkit-text-stroke', '-webkit-text-stroke-color', 'text-decoration', 'text-decoration-color', 'text-emphasis-color', 'color', '-webkit-text-fill-color'],
|
|
2845
|
+
BORDER_COLOR: ['border-image', '-webkit-border-image', 'border', 'border-top', 'border-right', 'border-bottom', 'border-left', 'border-color', 'border-top-color', 'border-right-color', 'border-bottom-color', 'border-left-color', 'border-block-color', 'border-block-start-color', 'border-block-end-color', 'border-inline-color', 'border-inline-start-color', 'border-inline-end-color', 'outline', 'outline-color', 'box-shadow', // TODO: 不知道为啥之前没处理,后面需要留意下
|
|
2846
|
+
'column-rule', 'column-rule-color'] // SVG_COLOR: [ // TODO: SVG后面再处理
|
|
2847
|
+
// 'fill',
|
|
2848
|
+
// 'stroke',
|
|
2849
|
+
// 'stop-color',
|
|
2850
|
+
// 'flood-color',
|
|
2851
|
+
// 'lighting-color',
|
|
2852
|
+
// ],
|
|
2853
|
+
// FILTER: [ // TODO: filter后面再考虑要不要处理
|
|
2854
|
+
// 'filter'
|
|
2855
|
+
// ],
|
|
2856
|
+
|
|
2857
|
+
};
|
|
2858
|
+
var CSS_PROP_LIST = Object.keys(CSS_PROP_SERIES).map(function (key) {
|
|
2859
|
+
return CSS_PROP_SERIES[key].join('|');
|
|
2860
|
+
}).join('|').split('|'); // 支持的css属性平铺列表
|
|
2861
|
+
|
|
2837
2862
|
var TABLE_NAME = ['TABLE', 'TR', 'TD', 'TH']; // 支持bgcolor属性的table标签列表
|
|
2838
2863
|
|
|
2839
2864
|
var IMPORTANT_REGEXP = / !important$/; // !important
|
|
@@ -3611,19 +3636,19 @@ var SDK = /*#__PURE__*/function () {
|
|
|
3611
3636
|
|
|
3612
3637
|
_defineProperty(this, "_idx", 0);
|
|
3613
3638
|
|
|
3614
|
-
_defineProperty(this, "_defaultDarkTextColorRgb",
|
|
3639
|
+
_defineProperty(this, "_defaultDarkTextColorRgb", null);
|
|
3615
3640
|
|
|
3616
|
-
_defineProperty(this, "_defaultDarkBgColorRgb",
|
|
3641
|
+
_defineProperty(this, "_defaultDarkBgColorRgb", null);
|
|
3617
3642
|
|
|
3618
|
-
_defineProperty(this, "_defaultDarkBgColorHSL",
|
|
3643
|
+
_defineProperty(this, "_defaultDarkBgColorHSL", null);
|
|
3619
3644
|
|
|
3620
|
-
_defineProperty(this, "_defaultDarkTextColorBrightness",
|
|
3645
|
+
_defineProperty(this, "_defaultDarkTextColorBrightness", null);
|
|
3621
3646
|
|
|
3622
|
-
_defineProperty(this, "_defaultDarkBgColorBrightness",
|
|
3647
|
+
_defineProperty(this, "_defaultDarkBgColorBrightness", null);
|
|
3623
3648
|
|
|
3624
|
-
_defineProperty(this, "_defaultDarkBgColorHslBrightness",
|
|
3649
|
+
_defineProperty(this, "_defaultDarkBgColorHslBrightness", null);
|
|
3625
3650
|
|
|
3626
|
-
_defineProperty(this, "_maxLimitOffsetBrightness",
|
|
3651
|
+
_defineProperty(this, "_maxLimitOffsetBrightness", null);
|
|
3627
3652
|
|
|
3628
3653
|
_defineProperty(this, "isDarkmode", false);
|
|
3629
3654
|
}
|
|
@@ -3780,6 +3805,17 @@ var SDK = /*#__PURE__*/function () {
|
|
|
3780
3805
|
typeof _config__WEBPACK_IMPORTED_MODULE_3__["default"].error === 'function' && _config__WEBPACK_IMPORTED_MODULE_3__["default"].error(e);
|
|
3781
3806
|
}
|
|
3782
3807
|
}
|
|
3808
|
+
}, {
|
|
3809
|
+
key: "init",
|
|
3810
|
+
value: function init() {
|
|
3811
|
+
this._defaultDarkTextColorRgb = ColorParser(_config__WEBPACK_IMPORTED_MODULE_3__["default"].defaultDarkTextColor).rgb().array();
|
|
3812
|
+
this._defaultDarkBgColorRgb = ColorParser(_config__WEBPACK_IMPORTED_MODULE_3__["default"].defaultDarkBgColor).rgb().array();
|
|
3813
|
+
this._defaultDarkBgColorHSL = ColorParser(_config__WEBPACK_IMPORTED_MODULE_3__["default"].defaultDarkBgColor).hsl().array();
|
|
3814
|
+
this._defaultDarkTextColorBrightness = getColorPerceivedBrightness(this._defaultDarkTextColorRgb);
|
|
3815
|
+
this._defaultDarkBgColorBrightness = getColorPerceivedBrightness(this._defaultDarkBgColorRgb);
|
|
3816
|
+
this._defaultDarkBgColorHslBrightness = this._defaultDarkBgColorHSL[2];
|
|
3817
|
+
this._maxLimitOffsetBrightness = this._defaultDarkTextColorBrightness - this._defaultDarkBgColorBrightness;
|
|
3818
|
+
}
|
|
3783
3819
|
}, {
|
|
3784
3820
|
key: "convert",
|
|
3785
3821
|
value: function convert(el, cssKVList, isUpdate) {
|
|
@@ -3815,8 +3851,8 @@ var SDK = /*#__PURE__*/function () {
|
|
|
3815
3851
|
|
|
3816
3852
|
var hasInlineBackground = false;
|
|
3817
3853
|
var hasInlineBackgroundImage = false;
|
|
3818
|
-
var elBackgroundPositionAttr;
|
|
3819
|
-
var elBackgroundSizeAttr;
|
|
3854
|
+
var elBackgroundPositionAttr = null;
|
|
3855
|
+
var elBackgroundSizeAttr = null;
|
|
3820
3856
|
cssKVList = cssKVList.filter(function (_ref) {
|
|
3821
3857
|
var _ref2 = _slicedToArray(_ref, 2),
|
|
3822
3858
|
key = _ref2[0],
|
|
@@ -3839,7 +3875,7 @@ var SDK = /*#__PURE__*/function () {
|
|
|
3839
3875
|
} // 过滤掉一些key
|
|
3840
3876
|
|
|
3841
3877
|
|
|
3842
|
-
return [
|
|
3878
|
+
return _constant__WEBPACK_IMPORTED_MODULE_2__["CSS_PROP_LIST"].indexOf(key) > -1;
|
|
3843
3879
|
}).sort(function (_ref3, _ref4) {
|
|
3844
3880
|
var _ref5 = _slicedToArray(_ref3, 1),
|
|
3845
3881
|
key1 = _ref5[0];
|
|
@@ -3985,10 +4021,10 @@ var SDK = /*#__PURE__*/function () {
|
|
|
3985
4021
|
var oldValue = value;
|
|
3986
4022
|
var cssChange = false; // 找出色值来处理
|
|
3987
4023
|
|
|
3988
|
-
var isBgColor =
|
|
3989
|
-
var isTextShadow = key
|
|
3990
|
-
var textColorIdx = [
|
|
3991
|
-
var isBorderColor =
|
|
4024
|
+
var isBgColor = _constant__WEBPACK_IMPORTED_MODULE_2__["CSS_PROP_SERIES"].BG_COLOR.indexOf(key) > -1;
|
|
4025
|
+
var isTextShadow = _constant__WEBPACK_IMPORTED_MODULE_2__["CSS_PROP_SERIES"].TEXT_SHADOW.indexOf(key) > -1;
|
|
4026
|
+
var textColorIdx = _constant__WEBPACK_IMPORTED_MODULE_2__["CSS_PROP_SERIES"].TEXT_COLOR.indexOf(key);
|
|
4027
|
+
var isBorderColor = _constant__WEBPACK_IMPORTED_MODULE_2__["CSS_PROP_SERIES"].BORDER_COLOR.indexOf(key) > -1;
|
|
3992
4028
|
var isGradient = /gradient/.test(value);
|
|
3993
4029
|
var gradientColors = [];
|
|
3994
4030
|
var extStyle = '';
|
|
@@ -4034,8 +4070,8 @@ var SDK = /*#__PURE__*/function () {
|
|
|
4034
4070
|
var retColor = !hasInlineBackgroundImage && ret.newColor;
|
|
4035
4071
|
extStyle += ret.extStyle; // 对背景颜色和文字颜色做继承传递,用于文字亮度计算
|
|
4036
4072
|
|
|
4037
|
-
if (isBgColor || textColorIdx >
|
|
4038
|
-
//
|
|
4073
|
+
if (isBgColor || textColorIdx > 3) {
|
|
4074
|
+
// 只处理color及之后的属性
|
|
4039
4075
|
var retColorStr = retColor ? retColor.toString() : match;
|
|
4040
4076
|
replaceIndex === 0 && Object(_domUtils__WEBPACK_IMPORTED_MODULE_5__["getChildrenAndIt"])(el).forEach(function (dom) {
|
|
4041
4077
|
if (isBgColor) {
|
|
@@ -4044,6 +4080,7 @@ var SDK = /*#__PURE__*/function () {
|
|
|
4044
4080
|
} else {
|
|
4045
4081
|
dom[_constant__WEBPACK_IMPORTED_MODULE_2__["COLORATTR"]] = retColorStr;
|
|
4046
4082
|
dom[_constant__WEBPACK_IMPORTED_MODULE_2__["ORIGINAL_COLORATTR"]] = match;
|
|
4083
|
+
dom.setAttribute(_constant__WEBPACK_IMPORTED_MODULE_2__["ORIGINAL_COLORATTR"], match);
|
|
4047
4084
|
} // 如果设置背景颜色,取消背景图片的影响
|
|
4048
4085
|
|
|
4049
4086
|
|
|
@@ -4074,14 +4111,13 @@ var SDK = /*#__PURE__*/function () {
|
|
|
4074
4111
|
|
|
4075
4112
|
if ((isBackgroundAttr || isBorderImageAttr) && /url\([^)]*\)/i.test(value)) {
|
|
4076
4113
|
cssChange = true;
|
|
4077
|
-
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"])); //
|
|
4114
|
+
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"])); // const imgBgColor = el[BGCOLORATTR] || config.defaultLightBgColor;
|
|
4115
|
+
// 在背景图片下加一层原背景颜色:
|
|
4078
4116
|
// background-image使用多层背景(注意background-position也要多加一层 https://www.w3.org/TR/css-backgrounds-3/#layering);
|
|
4079
4117
|
// border-image不支持多层背景,需要添加background-color
|
|
4080
4118
|
|
|
4081
4119
|
value = value.replace(/^(.*?)url\(([^)]*)\)(.*)$/i, function (matches) {
|
|
4082
4120
|
var newValue = matches;
|
|
4083
|
-
var newBackgroundPositionValue = '';
|
|
4084
|
-
var newBackgroundSizeValue = '';
|
|
4085
4121
|
var tmpCssKvStr = '';
|
|
4086
4122
|
|
|
4087
4123
|
if (!el[_constant__WEBPACK_IMPORTED_MODULE_2__["BGIMAGEATTR"]]) {
|
|
@@ -4096,15 +4132,13 @@ var SDK = /*#__PURE__*/function () {
|
|
|
4096
4132
|
tmpCssKvStr = _global__WEBPACK_IMPORTED_MODULE_4__["cssUtils"].genCssKV(key, imgBgColor ? "".concat(newValue, ",linear-gradient(").concat(imgBgColor, ", ").concat(imgBgColor, ")") : newValue);
|
|
4097
4133
|
|
|
4098
4134
|
if (elBackgroundPositionAttr) {
|
|
4099
|
-
|
|
4100
|
-
|
|
4101
|
-
tmpCssKvStr += _global__WEBPACK_IMPORTED_MODULE_4__["cssUtils"].genCssKV('background-position', "".concat(newBackgroundPositionValue, ",top left"));
|
|
4135
|
+
cssKV += _global__WEBPACK_IMPORTED_MODULE_4__["cssUtils"].genCssKV('background-position', elBackgroundPositionAttr);
|
|
4136
|
+
tmpCssKvStr += _global__WEBPACK_IMPORTED_MODULE_4__["cssUtils"].genCssKV('background-position', imgBgColor ? "".concat(elBackgroundPositionAttr, ",top left") : elBackgroundPositionAttr);
|
|
4102
4137
|
}
|
|
4103
4138
|
|
|
4104
4139
|
if (elBackgroundSizeAttr) {
|
|
4105
|
-
|
|
4106
|
-
|
|
4107
|
-
tmpCssKvStr += _global__WEBPACK_IMPORTED_MODULE_4__["cssUtils"].genCssKV('background-size', "".concat(newBackgroundSizeValue, ",100%"));
|
|
4140
|
+
cssKV += _global__WEBPACK_IMPORTED_MODULE_4__["cssUtils"].genCssKV('background-size', elBackgroundSizeAttr);
|
|
4141
|
+
tmpCssKvStr += _global__WEBPACK_IMPORTED_MODULE_4__["cssUtils"].genCssKV('background-size', imgBgColor ? "".concat(elBackgroundSizeAttr, ",100%") : elBackgroundSizeAttr);
|
|
4108
4142
|
}
|
|
4109
4143
|
|
|
4110
4144
|
if (dmBgClassName) {
|