mp-darkmode 1.1.8 → 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 CHANGED
@@ -2763,7 +2763,7 @@ var config = {
2763
2763
  /*!*********************************!*\
2764
2764
  !*** ./src/modules/constant.js ***!
2765
2765
  \*********************************/
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, 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 */
2767
2767
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
2768
2768
 
2769
2769
  "use strict";
@@ -2790,6 +2790,8 @@ __webpack_require__.r(__webpack_exports__);
2790
2790
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LOW_BLACKWHITE_HSL_BRIGHTNESS", function() { return LOW_BLACKWHITE_HSL_BRIGHTNESS; });
2791
2791
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "IGNORE_ALPHA", function() { return IGNORE_ALPHA; });
2792
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; });
2793
2795
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TABLE_NAME", function() { return TABLE_NAME; });
2794
2796
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "IMPORTANT_REGEXP", function() { return IMPORTANT_REGEXP; });
2795
2797
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SEMICOLON_PLACEHOLDER", function() { return SEMICOLON_PLACEHOLDER; });
@@ -2835,6 +2837,28 @@ var LOW_BLACKWHITE_HSL_BRIGHTNESS = 22;
2835
2837
  var IGNORE_ALPHA = 0.05; // 忽略的透明度阈值
2836
2838
 
2837
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
+
2838
2862
  var TABLE_NAME = ['TABLE', 'TR', 'TD', 'TH']; // 支持bgcolor属性的table标签列表
2839
2863
 
2840
2864
  var IMPORTANT_REGEXP = / !important$/; // !important
@@ -3827,8 +3851,8 @@ var SDK = /*#__PURE__*/function () {
3827
3851
 
3828
3852
  var hasInlineBackground = false;
3829
3853
  var hasInlineBackgroundImage = false;
3830
- var elBackgroundPositionAttr;
3831
- var elBackgroundSizeAttr;
3854
+ var elBackgroundPositionAttr = null;
3855
+ var elBackgroundSizeAttr = null;
3832
3856
  cssKVList = cssKVList.filter(function (_ref) {
3833
3857
  var _ref2 = _slicedToArray(_ref, 2),
3834
3858
  key = _ref2[0],
@@ -3851,7 +3875,7 @@ var SDK = /*#__PURE__*/function () {
3851
3875
  } // 过滤掉一些key
3852
3876
 
3853
3877
 
3854
- return ['-webkit-border-image', 'border-image', 'color', 'background-color', 'background-image', 'background', 'border', 'border-top', 'border-right', 'border-bottom', 'border-left', 'border-color', 'border-top-color', 'border-right-color', 'border-bottom-color', 'border-left-color', '-webkit-text-fill-color', '-webkit-text-stroke', '-webkit-text-stroke-color', 'text-shadow'].indexOf(key) > -1;
3878
+ return _constant__WEBPACK_IMPORTED_MODULE_2__["CSS_PROP_LIST"].indexOf(key) > -1;
3855
3879
  }).sort(function (_ref3, _ref4) {
3856
3880
  var _ref5 = _slicedToArray(_ref3, 1),
3857
3881
  key1 = _ref5[0];
@@ -3997,10 +4021,10 @@ var SDK = /*#__PURE__*/function () {
3997
4021
  var oldValue = value;
3998
4022
  var cssChange = false; // 找出色值来处理
3999
4023
 
4000
- var isBgColor = /^background/.test(key);
4001
- var isTextShadow = key === 'text-shadow';
4002
- var textColorIdx = ['-webkit-text-stroke-color', 'color', '-webkit-text-fill-color'].indexOf(key);
4003
- var isBorderColor = /^border/.test(key);
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;
4004
4028
  var isGradient = /gradient/.test(value);
4005
4029
  var gradientColors = [];
4006
4030
  var extStyle = '';
@@ -4046,8 +4070,8 @@ var SDK = /*#__PURE__*/function () {
4046
4070
  var retColor = !hasInlineBackgroundImage && ret.newColor;
4047
4071
  extStyle += ret.extStyle; // 对背景颜色和文字颜色做继承传递,用于文字亮度计算
4048
4072
 
4049
- if (isBgColor || textColorIdx > 0) {
4050
- // 不处理-webkit-text-stroke-color
4073
+ if (isBgColor || textColorIdx > 3) {
4074
+ // 只处理color及之后的属性
4051
4075
  var retColorStr = retColor ? retColor.toString() : match;
4052
4076
  replaceIndex === 0 && Object(_domUtils__WEBPACK_IMPORTED_MODULE_5__["getChildrenAndIt"])(el).forEach(function (dom) {
4053
4077
  if (isBgColor) {
@@ -4056,6 +4080,7 @@ var SDK = /*#__PURE__*/function () {
4056
4080
  } else {
4057
4081
  dom[_constant__WEBPACK_IMPORTED_MODULE_2__["COLORATTR"]] = retColorStr;
4058
4082
  dom[_constant__WEBPACK_IMPORTED_MODULE_2__["ORIGINAL_COLORATTR"]] = match;
4083
+ dom.setAttribute(_constant__WEBPACK_IMPORTED_MODULE_2__["ORIGINAL_COLORATTR"], match);
4059
4084
  } // 如果设置背景颜色,取消背景图片的影响
4060
4085
 
4061
4086
 
@@ -4086,14 +4111,13 @@ var SDK = /*#__PURE__*/function () {
4086
4111
 
4087
4112
  if ((isBackgroundAttr || isBorderImageAttr) && /url\([^)]*\)/i.test(value)) {
4088
4113
  cssChange = true;
4089
- 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
+ // 在背景图片下加一层原背景颜色:
4090
4116
  // background-image使用多层背景(注意background-position也要多加一层 https://www.w3.org/TR/css-backgrounds-3/#layering);
4091
4117
  // border-image不支持多层背景,需要添加background-color
4092
4118
 
4093
4119
  value = value.replace(/^(.*?)url\(([^)]*)\)(.*)$/i, function (matches) {
4094
4120
  var newValue = matches;
4095
- var newBackgroundPositionValue = '';
4096
- var newBackgroundSizeValue = '';
4097
4121
  var tmpCssKvStr = '';
4098
4122
 
4099
4123
  if (!el[_constant__WEBPACK_IMPORTED_MODULE_2__["BGIMAGEATTR"]]) {
@@ -4108,15 +4132,13 @@ var SDK = /*#__PURE__*/function () {
4108
4132
  tmpCssKvStr = _global__WEBPACK_IMPORTED_MODULE_4__["cssUtils"].genCssKV(key, imgBgColor ? "".concat(newValue, ",linear-gradient(").concat(imgBgColor, ", ").concat(imgBgColor, ")") : newValue);
4109
4133
 
4110
4134
  if (elBackgroundPositionAttr) {
4111
- newBackgroundPositionValue = "top left,".concat(elBackgroundPositionAttr);
4112
- cssKV += _global__WEBPACK_IMPORTED_MODULE_4__["cssUtils"].genCssKV('background-position', "".concat(newBackgroundPositionValue));
4113
- 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);
4114
4137
  }
4115
4138
 
4116
4139
  if (elBackgroundSizeAttr) {
4117
- newBackgroundSizeValue = "100%,".concat(elBackgroundSizeAttr);
4118
- cssKV += _global__WEBPACK_IMPORTED_MODULE_4__["cssUtils"].genCssKV('background-size', "".concat(newBackgroundSizeValue));
4119
- 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);
4120
4142
  }
4121
4143
 
4122
4144
  if (dmBgClassName) {