mp-darkmode 1.2.1 → 1.2.3-beta.0
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 +151 -48
- package/dist/darkmode.js.map +1 -1
- package/dist/darkmode.min.js +1 -1
- package/package.json +1 -1
package/dist/darkmode.js
CHANGED
|
@@ -2357,6 +2357,13 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
2357
2357
|
/* harmony import */ var _modules_constant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./modules/constant */ "./src/modules/constant.js");
|
|
2358
2358
|
/* harmony import */ var _modules_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modules/config */ "./src/modules/config.js");
|
|
2359
2359
|
/* harmony import */ var _modules_global__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./modules/global */ "./src/modules/global.js");
|
|
2360
|
+
/* harmony import */ var _modules_domUtils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./modules/domUtils */ "./src/modules/domUtils.js");
|
|
2361
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2362
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
2363
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
2364
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
2365
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
2366
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
2360
2367
|
/**
|
|
2361
2368
|
* @name Darkmode主入口
|
|
2362
2369
|
*
|
|
@@ -2411,6 +2418,7 @@ var classReg = new RegExp("".concat(_modules_constant__WEBPACK_IMPORTED_MODULE_0
|
|
|
2411
2418
|
|
|
2412
2419
|
|
|
2413
2420
|
|
|
2421
|
+
|
|
2414
2422
|
// Dark Mode切换
|
|
2415
2423
|
var mql = null;
|
|
2416
2424
|
var switchToDarkmode = function switchToDarkmode(mqlObj) {
|
|
@@ -2468,10 +2476,34 @@ var switchToDarkmode = function switchToDarkmode(mqlObj) {
|
|
|
2468
2476
|
_modules_global__WEBPACK_IMPORTED_MODULE_2__["sdk"].isDarkmode && _modules_global__WEBPACK_IMPORTED_MODULE_2__["tnQueue"].forEach(function (text) {
|
|
2469
2477
|
return _modules_global__WEBPACK_IMPORTED_MODULE_2__["bgStack"].contains(text, function (bg) {
|
|
2470
2478
|
_modules_global__WEBPACK_IMPORTED_MODULE_2__["cssUtils"].addCss(_modules_global__WEBPACK_IMPORTED_MODULE_2__["cssUtils"].genCss(bg.className, bg.cssKV)); // 写入非首屏样式
|
|
2479
|
+
typeof bg.cb === 'function' && bg.cb(bg);
|
|
2480
|
+
|
|
2481
|
+
// 还得处理该背景下的所有新老节点
|
|
2482
|
+
[bg.elOld, bg.el].forEach(function (el) {
|
|
2483
|
+
var _el$COLORATTR, _el$BGCOLORATTR, _el$ORIGINAL_COLORATT, _el$ORIGINAL_BGCOLORA, _el$BGIMAGEATTR, _el$COMPLEMENTARY_BGI;
|
|
2484
|
+
var inheritAttrs = [[_modules_constant__WEBPACK_IMPORTED_MODULE_0__["COLORATTR"], (_el$COLORATTR = el[_modules_constant__WEBPACK_IMPORTED_MODULE_0__["COLORATTR"]]) !== null && _el$COLORATTR !== void 0 ? _el$COLORATTR : null], [_modules_constant__WEBPACK_IMPORTED_MODULE_0__["BGCOLORATTR"], (_el$BGCOLORATTR = el[_modules_constant__WEBPACK_IMPORTED_MODULE_0__["BGCOLORATTR"]]) !== null && _el$BGCOLORATTR !== void 0 ? _el$BGCOLORATTR : null], [_modules_constant__WEBPACK_IMPORTED_MODULE_0__["ORIGINAL_COLORATTR"], (_el$ORIGINAL_COLORATT = el[_modules_constant__WEBPACK_IMPORTED_MODULE_0__["ORIGINAL_COLORATTR"]]) !== null && _el$ORIGINAL_COLORATT !== void 0 ? _el$ORIGINAL_COLORATT : null], [_modules_constant__WEBPACK_IMPORTED_MODULE_0__["ORIGINAL_BGCOLORATTR"], (_el$ORIGINAL_BGCOLORA = el[_modules_constant__WEBPACK_IMPORTED_MODULE_0__["ORIGINAL_BGCOLORATTR"]]) !== null && _el$ORIGINAL_BGCOLORA !== void 0 ? _el$ORIGINAL_BGCOLORA : null], [_modules_constant__WEBPACK_IMPORTED_MODULE_0__["BGIMAGEATTR"], (_el$BGIMAGEATTR = el[_modules_constant__WEBPACK_IMPORTED_MODULE_0__["BGIMAGEATTR"]]) !== null && _el$BGIMAGEATTR !== void 0 ? _el$BGIMAGEATTR : null], [_modules_constant__WEBPACK_IMPORTED_MODULE_0__["COMPLEMENTARY_BGIMAGECOLORATTR"], (_el$COMPLEMENTARY_BGI = el[_modules_constant__WEBPACK_IMPORTED_MODULE_0__["COMPLEMENTARY_BGIMAGECOLORATTR"]]) !== null && _el$COMPLEMENTARY_BGI !== void 0 ? _el$COMPLEMENTARY_BGI : null]];
|
|
2485
|
+
var children = Object(_modules_domUtils__WEBPACK_IMPORTED_MODULE_3__["getChildrenAndIt"])(el, true);
|
|
2486
|
+
children.forEach(function (child) {
|
|
2487
|
+
// 重置继承属性
|
|
2488
|
+
inheritAttrs.forEach(function (_ref) {
|
|
2489
|
+
var _ref2 = _slicedToArray(_ref, 2),
|
|
2490
|
+
attr = _ref2[0],
|
|
2491
|
+
value = _ref2[1];
|
|
2492
|
+
if (value === null) {
|
|
2493
|
+
delete child[attr];
|
|
2494
|
+
} else {
|
|
2495
|
+
child[attr] = value;
|
|
2496
|
+
}
|
|
2497
|
+
});
|
|
2498
|
+
});
|
|
2499
|
+
children.forEach(function (child) {
|
|
2500
|
+
// 重新运行Dark Mode处理逻辑
|
|
2501
|
+
_modules_global__WEBPACK_IMPORTED_MODULE_2__["cssUtils"].addCss(_modules_global__WEBPACK_IMPORTED_MODULE_2__["sdk"].convert(child, undefined, false, true));
|
|
2502
|
+
});
|
|
2503
|
+
});
|
|
2471
2504
|
});
|
|
2472
2505
|
});
|
|
2473
2506
|
}
|
|
2474
|
-
|
|
2475
2507
|
if (_modules_config__WEBPACK_IMPORTED_MODULE_1__["default"].needJudgeFirstPage || !_modules_config__WEBPACK_IMPORTED_MODULE_1__["default"].needJudgeFirstPage && !_modules_global__WEBPACK_IMPORTED_MODULE_2__["domUtils"].showFirstPage) {
|
|
2476
2508
|
// config.needJudgeFirstPage === ture,表示需要判断首屏但是正文长度没超过一屏
|
|
2477
2509
|
// config.needJudgeFirstPage === false && domUtils.showFirstPage === false,表示不需要判断首屏且没有做首屏优化
|
|
@@ -2636,7 +2668,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
2636
2668
|
// Darkmode配置
|
|
2637
2669
|
|
|
2638
2670
|
var BgNodeStack = /*#__PURE__*/function () {
|
|
2639
|
-
// 需要判断位置的背景堆栈,{ el, className, cssKV, updated, rect }
|
|
2671
|
+
// 需要判断位置的背景堆栈,{ elOld, el, className, cssKV, updated, rect }
|
|
2640
2672
|
// 索引值
|
|
2641
2673
|
|
|
2642
2674
|
function BgNodeStack(prefix) {
|
|
@@ -2654,6 +2686,7 @@ var BgNodeStack = /*#__PURE__*/function () {
|
|
|
2654
2686
|
var className = "".concat(this._prefix).concat(this._idx++);
|
|
2655
2687
|
el.classList.add(className);
|
|
2656
2688
|
this._stack.unshift({
|
|
2689
|
+
elOld: el,
|
|
2657
2690
|
el: el,
|
|
2658
2691
|
className: className,
|
|
2659
2692
|
cssKV: cssKV,
|
|
@@ -2679,7 +2712,8 @@ var BgNodeStack = /*#__PURE__*/function () {
|
|
|
2679
2712
|
}
|
|
2680
2713
|
});
|
|
2681
2714
|
while (idxStack.length) {
|
|
2682
|
-
var
|
|
2715
|
+
var idx = idxStack.shift();
|
|
2716
|
+
var item = this._stack.splice(idx, 1)[0];
|
|
2683
2717
|
typeof callback === 'function' && callback(item);
|
|
2684
2718
|
}
|
|
2685
2719
|
}
|
|
@@ -3122,6 +3156,15 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
3122
3156
|
* @param {boolean} isFirstPageStyle 是否首屏样式
|
|
3123
3157
|
* @return void
|
|
3124
3158
|
*
|
|
3159
|
+
* @method watch 监听生成css键值对
|
|
3160
|
+
* @param {string} key css属性
|
|
3161
|
+
* @param {function} cb 回调函数
|
|
3162
|
+
* @return void
|
|
3163
|
+
*
|
|
3164
|
+
* @method unwatch 取消监听生成css键值对
|
|
3165
|
+
* @param {string} key css属性
|
|
3166
|
+
* @return void
|
|
3167
|
+
*
|
|
3125
3168
|
*/
|
|
3126
3169
|
|
|
3127
3170
|
// 常量
|
|
@@ -3133,6 +3176,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
3133
3176
|
var CssUtils = /*#__PURE__*/function () {
|
|
3134
3177
|
// 首屏样式
|
|
3135
3178
|
// 非首屏样式
|
|
3179
|
+
// 监听器,用于监听生成css键值对
|
|
3136
3180
|
|
|
3137
3181
|
// 是否运行过Dark Mode处理逻辑(写入过非首屏样式表则表示已运行过)
|
|
3138
3182
|
|
|
@@ -3140,6 +3184,7 @@ var CssUtils = /*#__PURE__*/function () {
|
|
|
3140
3184
|
_classCallCheck(this, CssUtils);
|
|
3141
3185
|
_defineProperty(this, "_firstPageStyle", '');
|
|
3142
3186
|
_defineProperty(this, "_otherPageStyle", '');
|
|
3187
|
+
_defineProperty(this, "_watcher", {});
|
|
3143
3188
|
_defineProperty(this, "isFinish", false);
|
|
3144
3189
|
}
|
|
3145
3190
|
|
|
@@ -3147,6 +3192,8 @@ var CssUtils = /*#__PURE__*/function () {
|
|
|
3147
3192
|
_createClass(CssUtils, [{
|
|
3148
3193
|
key: "genCssKV",
|
|
3149
3194
|
value: function genCssKV(key, val) {
|
|
3195
|
+
var _this$_watcher$key, _this$_watcher;
|
|
3196
|
+
(_this$_watcher$key = (_this$_watcher = this._watcher)[key]) === null || _this$_watcher$key === void 0 ? void 0 : _this$_watcher$key.call(_this$_watcher);
|
|
3150
3197
|
return "".concat(key, ": ").concat(val, " !important;");
|
|
3151
3198
|
}
|
|
3152
3199
|
|
|
@@ -3212,6 +3259,20 @@ var CssUtils = /*#__PURE__*/function () {
|
|
|
3212
3259
|
// 写入样式表
|
|
3213
3260
|
styles && document.head.insertAdjacentHTML('beforeend', "<style type=\"text/css\">".concat(styles, "</style>"));
|
|
3214
3261
|
}
|
|
3262
|
+
|
|
3263
|
+
// 监听生成css键值对
|
|
3264
|
+
}, {
|
|
3265
|
+
key: "watch",
|
|
3266
|
+
value: function watch(key, cb) {
|
|
3267
|
+
this._watcher[key] = cb;
|
|
3268
|
+
}
|
|
3269
|
+
|
|
3270
|
+
// 取消监听生成css键值对
|
|
3271
|
+
}, {
|
|
3272
|
+
key: "unwatch",
|
|
3273
|
+
value: function unwatch(key) {
|
|
3274
|
+
delete this._watcher[key];
|
|
3275
|
+
}
|
|
3215
3276
|
}]);
|
|
3216
3277
|
return CssUtils;
|
|
3217
3278
|
}();
|
|
@@ -3250,6 +3311,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
3250
3311
|
*
|
|
3251
3312
|
* @function getChildrenAndIt 获取某个节点及它的所有子节点
|
|
3252
3313
|
* @param {DOM Object} el 节点对象
|
|
3314
|
+
* @param {boolean} exceptIt 是否排除自身
|
|
3253
3315
|
* @return {DOM Object Array} 节点对象列表
|
|
3254
3316
|
*
|
|
3255
3317
|
* @function hasTextNode 判断某个节点里是否包含文字节点
|
|
@@ -3269,7 +3331,8 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
3269
3331
|
// 获取某个节点及它的所有子节点
|
|
3270
3332
|
function getChildrenAndIt(el) {
|
|
3271
3333
|
var _ref;
|
|
3272
|
-
|
|
3334
|
+
var exceptIt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
3335
|
+
return (_ref = exceptIt ? [] : [el]).concat.apply(_ref, _toConsumableArray(el.querySelectorAll('*')));
|
|
3273
3336
|
}
|
|
3274
3337
|
;
|
|
3275
3338
|
|
|
@@ -3748,7 +3811,7 @@ var SDK = /*#__PURE__*/function () {
|
|
|
3748
3811
|
// 调整明度
|
|
3749
3812
|
_createClass(SDK, [{
|
|
3750
3813
|
key: "_adjustBrightness",
|
|
3751
|
-
value: function _adjustBrightness(color, el, options, isUpdate) {
|
|
3814
|
+
value: function _adjustBrightness(color, el, options, isUpdate, needReset) {
|
|
3752
3815
|
// 背景:
|
|
3753
3816
|
// 处理原则:白背景改黑,其他高感知亮度背景调暗,低亮度适当提高亮度(感知亮度:https://www.w3.org/TR/AERT/#color-contrast)
|
|
3754
3817
|
// 处理方法:
|
|
@@ -3778,10 +3841,12 @@ var SDK = /*#__PURE__*/function () {
|
|
|
3778
3841
|
// 根据最小可觉差Just-noticeable difference(即JND,表示人类或动物对于某一特定的感官刺激所能察觉的最小改变)和韦伯-费希纳定律,在特定条件下,人类能感知小至 0.5% - 2% 的变化,0.5%换算成对比度为1.1
|
|
3779
3842
|
// https://zh.wikipedia.org/wiki/%E6%9C%80%E5%B0%8F%E5%8F%AF%E8%A6%BA%E5%B7%AE 最小可觉差wiki
|
|
3780
3843
|
// https://zh.wikipedia.org/wiki/%E9%9F%8B%E4%BC%AF-%E8%B2%BB%E5%B8%8C%E7%B4%8D%E5%AE%9A%E7%90%86 韦伯-费希纳定理wiki
|
|
3781
|
-
if (el[_constant__WEBPACK_IMPORTED_MODULE_2__["COMPLEMENTARY_BGIMAGECOLORATTR"]] === color.toString() || this.getContrast(el[_constant__WEBPACK_IMPORTED_MODULE_2__["COMPLEMENTARY_BGIMAGECOLORATTR"]], color.toString()) < 1.1)
|
|
3782
|
-
|
|
3783
|
-
|
|
3784
|
-
|
|
3844
|
+
if (el[_constant__WEBPACK_IMPORTED_MODULE_2__["COMPLEMENTARY_BGIMAGECOLORATTR"]] === color.toString() || this.getContrast(el[_constant__WEBPACK_IMPORTED_MODULE_2__["COMPLEMENTARY_BGIMAGECOLORATTR"]], color.toString()) < 1.1) {
|
|
3845
|
+
return {
|
|
3846
|
+
newColor: needReset ? color.toString() : '',
|
|
3847
|
+
extStyle: extStyle
|
|
3848
|
+
};
|
|
3849
|
+
}
|
|
3785
3850
|
|
|
3786
3851
|
// 否则取消背景图片补色的影响
|
|
3787
3852
|
Object(_domUtils__WEBPACK_IMPORTED_MODULE_5__["getChildrenAndIt"])(el).forEach(function (dom) {
|
|
@@ -3797,7 +3862,7 @@ var SDK = /*#__PURE__*/function () {
|
|
|
3797
3862
|
var ret = this._adjustBrightness(parentTextColor, el, {
|
|
3798
3863
|
isTextColor: true,
|
|
3799
3864
|
parentElementBgColorStr: newColor || color
|
|
3800
|
-
}, isUpdate);
|
|
3865
|
+
}, isUpdate, needReset);
|
|
3801
3866
|
if (ret.newColor) {
|
|
3802
3867
|
extStyle += _global__WEBPACK_IMPORTED_MODULE_4__["cssUtils"].genCssKV('color', ret.newColor);
|
|
3803
3868
|
} else {
|
|
@@ -3813,7 +3878,13 @@ var SDK = /*#__PURE__*/function () {
|
|
|
3813
3878
|
// 无背景图片
|
|
3814
3879
|
if (parentElementBgColor && !el[_constant__WEBPACK_IMPORTED_MODULE_2__["BGIMAGEATTR"]]) {
|
|
3815
3880
|
newColor = this._adjustTextBrightness(color, parentElementBgColor);
|
|
3816
|
-
|
|
3881
|
+
var emitNameSuffix = '';
|
|
3882
|
+
if (isUpdate) {
|
|
3883
|
+
emitNameSuffix = 'ByUpdateStyle';
|
|
3884
|
+
} else if (needReset) {
|
|
3885
|
+
emitNameSuffix = 'ByReset';
|
|
3886
|
+
}
|
|
3887
|
+
_global__WEBPACK_IMPORTED_MODULE_4__["plugins"].emit("afterConvertTextColor".concat(emitNameSuffix), el, {
|
|
3817
3888
|
// fontColor: color,
|
|
3818
3889
|
fontColor: newColor,
|
|
3819
3890
|
bgColor: parentElementBgColor
|
|
@@ -3905,7 +3976,7 @@ var SDK = /*#__PURE__*/function () {
|
|
|
3905
3976
|
// 叠加渐变色到背景色中,并更新背景色相关属性值以及文本颜色
|
|
3906
3977
|
}, {
|
|
3907
3978
|
key: "_updateBgWithGradient",
|
|
3908
|
-
value: function _updateBgWithGradient(gradientColor, el, className, cssKVList, hasInlineColor, isUpdate) {
|
|
3979
|
+
value: function _updateBgWithGradient(gradientColor, el, className, cssKVList, hasInlineColor, isUpdate, needReset) {
|
|
3909
3980
|
var newBgColor = Object(_color__WEBPACK_IMPORTED_MODULE_1__["mixColors"])([el[_constant__WEBPACK_IMPORTED_MODULE_2__["BGCOLORATTR"]] || _config__WEBPACK_IMPORTED_MODULE_3__["default"].defaultDarkBgColor, gradientColor], 'normal');
|
|
3910
3981
|
var newOriginalBgColor = (el[_constant__WEBPACK_IMPORTED_MODULE_2__["ORIGINAL_BGCOLORATTR"]] || _config__WEBPACK_IMPORTED_MODULE_3__["default"].defaultLightBgColor).split(_constant__WEBPACK_IMPORTED_MODULE_2__["BG_COLOR_DELIMITER"]).concat(gradientColor.toString()).join(_constant__WEBPACK_IMPORTED_MODULE_2__["BG_COLOR_DELIMITER"]);
|
|
3911
3982
|
Object(_domUtils__WEBPACK_IMPORTED_MODULE_5__["getChildrenAndIt"])(el).forEach(function (dom) {
|
|
@@ -3920,7 +3991,7 @@ var SDK = /*#__PURE__*/function () {
|
|
|
3920
3991
|
isTextColor: true,
|
|
3921
3992
|
isBorderColor: false,
|
|
3922
3993
|
hasInlineColor: hasInlineColor
|
|
3923
|
-
}, isUpdate);
|
|
3994
|
+
}, isUpdate, needReset);
|
|
3924
3995
|
if (ret.newColor) return _global__WEBPACK_IMPORTED_MODULE_4__["cssUtils"].genCss(className, _global__WEBPACK_IMPORTED_MODULE_4__["cssUtils"].genCssKV('color', ret.newColor));
|
|
3925
3996
|
}
|
|
3926
3997
|
return '';
|
|
@@ -3952,14 +4023,20 @@ var SDK = /*#__PURE__*/function () {
|
|
|
3952
4023
|
// 处理节点
|
|
3953
4024
|
}, {
|
|
3954
4025
|
key: "convert",
|
|
3955
|
-
value: function convert(el, cssKVList, isUpdate) {
|
|
4026
|
+
value: function convert(el, cssKVList, isUpdate, needReset) {
|
|
3956
4027
|
var _this = this;
|
|
3957
4028
|
_global__WEBPACK_IMPORTED_MODULE_4__["plugins"].resetCss();
|
|
3958
|
-
|
|
4029
|
+
var emitNameSuffix = '';
|
|
4030
|
+
if (isUpdate) {
|
|
4031
|
+
emitNameSuffix = 'ByUpdateStyle';
|
|
4032
|
+
} else if (needReset) {
|
|
4033
|
+
emitNameSuffix = 'ByReset';
|
|
4034
|
+
}
|
|
4035
|
+
_global__WEBPACK_IMPORTED_MODULE_4__["plugins"].emit("beforeConvertNode".concat(emitNameSuffix), el);
|
|
3959
4036
|
var css = ''; // css
|
|
3960
4037
|
var bgCss = ''; // 文字底图css
|
|
3961
4038
|
|
|
3962
|
-
if (this.isDarkmode || isUpdate) {
|
|
4039
|
+
if (this.isDarkmode || isUpdate || needReset) {
|
|
3963
4040
|
var nodeName = el.nodeName;
|
|
3964
4041
|
if (_config__WEBPACK_IMPORTED_MODULE_3__["default"].whitelist.tagName.indexOf(nodeName) > -1) return '';
|
|
3965
4042
|
if (_config__WEBPACK_IMPORTED_MODULE_3__["default"].whitelist.attribute.some(function (attribute) {
|
|
@@ -4102,7 +4179,7 @@ var SDK = /*#__PURE__*/function () {
|
|
|
4102
4179
|
|
|
4103
4180
|
var dmClassName = '';
|
|
4104
4181
|
var dmBgClassName = '';
|
|
4105
|
-
if (isUpdate && el.className && typeof el.className === 'string') {
|
|
4182
|
+
if ((isUpdate || needReset) && el.className && typeof el.className === 'string') {
|
|
4106
4183
|
// 先提取dm className
|
|
4107
4184
|
var matches = el.className.match(_constant__WEBPACK_IMPORTED_MODULE_2__["DM_CLASSNAME_REGEXP"]);
|
|
4108
4185
|
if (matches) {
|
|
@@ -4116,6 +4193,11 @@ var SDK = /*#__PURE__*/function () {
|
|
|
4116
4193
|
}
|
|
4117
4194
|
}
|
|
4118
4195
|
var cssKV = ''; // css键值对
|
|
4196
|
+
var noColor = needReset;
|
|
4197
|
+
noColor && _global__WEBPACK_IMPORTED_MODULE_4__["cssUtils"].watch('color', function () {
|
|
4198
|
+
noColor = false;
|
|
4199
|
+
_global__WEBPACK_IMPORTED_MODULE_4__["cssUtils"].unwatch('color');
|
|
4200
|
+
});
|
|
4119
4201
|
cssKVList.forEach(function (_ref9) {
|
|
4120
4202
|
var _ref10 = _slicedToArray(_ref9, 2),
|
|
4121
4203
|
key = _ref10[0],
|
|
@@ -4166,7 +4248,7 @@ var SDK = /*#__PURE__*/function () {
|
|
|
4166
4248
|
isTextColor: textColorIdx > -1,
|
|
4167
4249
|
isBorderColor: isBorderColor,
|
|
4168
4250
|
hasInlineColor: hasInlineColor
|
|
4169
|
-
}, isUpdate);
|
|
4251
|
+
}, isUpdate, needReset);
|
|
4170
4252
|
var retColor = !hasInlineBackgroundImage && ret.newColor;
|
|
4171
4253
|
extStyle += ret.extStyle;
|
|
4172
4254
|
|
|
@@ -4232,23 +4314,25 @@ var SDK = /*#__PURE__*/function () {
|
|
|
4232
4314
|
cssKV += _global__WEBPACK_IMPORTED_MODULE_4__["cssUtils"].genCssKV('background-size', elBackgroundSizeAttr);
|
|
4233
4315
|
tmpCssKvStr += _global__WEBPACK_IMPORTED_MODULE_4__["cssUtils"].genCssKV('background-size', imgBgColor ? "".concat(elBackgroundSizeAttr, ",100%") : elBackgroundSizeAttr);
|
|
4234
4316
|
}
|
|
4235
|
-
if (
|
|
4236
|
-
|
|
4237
|
-
|
|
4238
|
-
|
|
4239
|
-
dom[_constant__WEBPACK_IMPORTED_MODULE_2__["COMPLEMENTARY_BGIMAGECOLORATTR"]] = imgBgColor || newValue;
|
|
4240
|
-
});
|
|
4241
|
-
} else {
|
|
4242
|
-
// 否则背景图入栈
|
|
4243
|
-
_global__WEBPACK_IMPORTED_MODULE_4__["bgStack"].push(el, tmpCssKvStr, function () {
|
|
4317
|
+
if (!needReset) {
|
|
4318
|
+
if (dmBgClassName) {
|
|
4319
|
+
// 如果是文字底图,则直接加样式
|
|
4320
|
+
bgCss += _global__WEBPACK_IMPORTED_MODULE_4__["cssUtils"].genCss(dmBgClassName, tmpCssKvStr);
|
|
4244
4321
|
Object(_domUtils__WEBPACK_IMPORTED_MODULE_5__["getChildrenAndIt"])(el).forEach(function (dom) {
|
|
4245
4322
|
dom[_constant__WEBPACK_IMPORTED_MODULE_2__["COMPLEMENTARY_BGIMAGECOLORATTR"]] = imgBgColor || newValue;
|
|
4246
4323
|
});
|
|
4247
|
-
}
|
|
4324
|
+
} else {
|
|
4325
|
+
// 否则背景图入栈
|
|
4326
|
+
_global__WEBPACK_IMPORTED_MODULE_4__["bgStack"].push(el, tmpCssKvStr, function () {
|
|
4327
|
+
Object(_domUtils__WEBPACK_IMPORTED_MODULE_5__["getChildrenAndIt"])(el).forEach(function (dom) {
|
|
4328
|
+
dom[_constant__WEBPACK_IMPORTED_MODULE_2__["COMPLEMENTARY_BGIMAGECOLORATTR"]] = imgBgColor || newValue;
|
|
4329
|
+
});
|
|
4330
|
+
});
|
|
4331
|
+
}
|
|
4248
4332
|
}
|
|
4249
4333
|
} else {
|
|
4250
4334
|
// border-image元素,如果当前元素没有背景颜色,补背景颜色
|
|
4251
|
-
if (imgBgColor && !hasInlineBackground) {
|
|
4335
|
+
if (imgBgColor && !hasInlineBackground && !needReset) {
|
|
4252
4336
|
tmpCssKvStr = _global__WEBPACK_IMPORTED_MODULE_4__["cssUtils"].genCssKV('background-image', "linear-gradient(".concat(imgBgColor, ", ").concat(imgBgColor, ")"));
|
|
4253
4337
|
if (dmBgClassName) {
|
|
4254
4338
|
// 如果是文字底图,则直接加样式
|
|
@@ -4273,32 +4357,42 @@ var SDK = /*#__PURE__*/function () {
|
|
|
4273
4357
|
}
|
|
4274
4358
|
}
|
|
4275
4359
|
}
|
|
4276
|
-
if (cssChange) {
|
|
4277
|
-
!isUpdate && _constant__WEBPACK_IMPORTED_MODULE_2__["IMPORTANT_REGEXP"].test(oldValue) && (styles[key] = oldValue.replace(_constant__WEBPACK_IMPORTED_MODULE_2__["IMPORTANT_REGEXP"], '')); // 清除inline style的!important
|
|
4360
|
+
if (cssChange || needReset) {
|
|
4361
|
+
!isUpdate && !needReset && _constant__WEBPACK_IMPORTED_MODULE_2__["IMPORTANT_REGEXP"].test(oldValue) && (styles[key] = oldValue.replace(_constant__WEBPACK_IMPORTED_MODULE_2__["IMPORTANT_REGEXP"], '')); // 清除inline style的!important
|
|
4278
4362
|
if (isGradient) {
|
|
4279
|
-
if (
|
|
4280
|
-
|
|
4281
|
-
|
|
4282
|
-
|
|
4283
|
-
// 是无背景图的渐变,需要重新计算背景色
|
|
4284
|
-
css += _this._updateBgWithGradient(gradientMixColor, el, dmBgClassName, cssKVList, hasInlineColor, isUpdate);
|
|
4285
|
-
}
|
|
4286
|
-
} else {
|
|
4287
|
-
// 否则渐变入栈
|
|
4288
|
-
_global__WEBPACK_IMPORTED_MODULE_4__["bgStack"].push(el, _global__WEBPACK_IMPORTED_MODULE_4__["cssUtils"].genCssKV(key, value), function (item) {
|
|
4289
|
-
// 渐变入栈
|
|
4363
|
+
if (!needReset) {
|
|
4364
|
+
if (dmBgClassName) {
|
|
4365
|
+
// 如果是文字底图,则直接加样式
|
|
4366
|
+
bgCss += _global__WEBPACK_IMPORTED_MODULE_4__["cssUtils"].genCss(dmBgClassName, _global__WEBPACK_IMPORTED_MODULE_4__["cssUtils"].genCssKV(key, value));
|
|
4290
4367
|
if (/^background/.test(key) && !/url\([^)]*\)/i.test(value)) {
|
|
4291
4368
|
// 是无背景图的渐变,需要重新计算背景色
|
|
4292
|
-
css += _this._updateBgWithGradient(gradientMixColor, el,
|
|
4369
|
+
css += _this._updateBgWithGradient(gradientMixColor, el, dmBgClassName, cssKVList, hasInlineColor, isUpdate, needReset);
|
|
4293
4370
|
}
|
|
4294
|
-
}
|
|
4371
|
+
} else {
|
|
4372
|
+
// 否则渐变入栈
|
|
4373
|
+
_global__WEBPACK_IMPORTED_MODULE_4__["bgStack"].push(el, _global__WEBPACK_IMPORTED_MODULE_4__["cssUtils"].genCssKV(key, value), function (item) {
|
|
4374
|
+
// 渐变入栈
|
|
4375
|
+
if (/^background/.test(key) && !/url\([^)]*\)/i.test(value)) {
|
|
4376
|
+
// 是无背景图的渐变,需要重新计算背景色
|
|
4377
|
+
css += _this._updateBgWithGradient(gradientMixColor, el, item.className, cssKVList, hasInlineColor, isUpdate, needReset);
|
|
4378
|
+
}
|
|
4379
|
+
});
|
|
4380
|
+
}
|
|
4295
4381
|
}
|
|
4296
4382
|
} else {
|
|
4297
|
-
|
|
4383
|
+
if (key === 'color') {
|
|
4384
|
+
noColor = false;
|
|
4385
|
+
_global__WEBPACK_IMPORTED_MODULE_4__["cssUtils"].unwatch('color');
|
|
4386
|
+
}
|
|
4387
|
+
cssKV += _global__WEBPACK_IMPORTED_MODULE_4__["cssUtils"].genCssKV(key, !cssChange && needReset ? el.style[key] : value);
|
|
4298
4388
|
}
|
|
4299
4389
|
}
|
|
4300
4390
|
});
|
|
4301
4391
|
});
|
|
4392
|
+
if (noColor) {
|
|
4393
|
+
cssKV += _global__WEBPACK_IMPORTED_MODULE_4__["cssUtils"].genCssKV('color', el.style.color || el[_constant__WEBPACK_IMPORTED_MODULE_2__["COLORATTR"]] || _config__WEBPACK_IMPORTED_MODULE_3__["default"].defaultDarkTextColor);
|
|
4394
|
+
_global__WEBPACK_IMPORTED_MODULE_4__["cssUtils"].unwatch('color');
|
|
4395
|
+
}
|
|
4302
4396
|
if (cssKV) {
|
|
4303
4397
|
// 有处理过或者是背景图片就加class以及css
|
|
4304
4398
|
if (!dmClassName) {
|
|
@@ -4309,7 +4403,7 @@ var SDK = /*#__PURE__*/function () {
|
|
|
4309
4403
|
}
|
|
4310
4404
|
css += bgCss; // 追加文字底图样式,要在添加cssKV之后添加,避免被覆盖
|
|
4311
4405
|
|
|
4312
|
-
if (!isUpdate && Object(_domUtils__WEBPACK_IMPORTED_MODULE_5__["hasTextNode"])(el)) {
|
|
4406
|
+
if (!isUpdate && Object(_domUtils__WEBPACK_IMPORTED_MODULE_5__["hasTextNode"])(el) && !needReset) {
|
|
4313
4407
|
// 如果节点里有文本,要判断是否在背景图里
|
|
4314
4408
|
if (_config__WEBPACK_IMPORTED_MODULE_3__["default"].delayBgJudge) {
|
|
4315
4409
|
// 延迟背景判断
|
|
@@ -4322,7 +4416,7 @@ var SDK = /*#__PURE__*/function () {
|
|
|
4322
4416
|
}
|
|
4323
4417
|
}
|
|
4324
4418
|
}
|
|
4325
|
-
_global__WEBPACK_IMPORTED_MODULE_4__["plugins"].emit("afterConvertNode".concat(
|
|
4419
|
+
_global__WEBPACK_IMPORTED_MODULE_4__["plugins"].emit("afterConvertNode".concat(emitNameSuffix), el);
|
|
4326
4420
|
return css;
|
|
4327
4421
|
}
|
|
4328
4422
|
|
|
@@ -4366,6 +4460,8 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
4366
4460
|
* @constructor
|
|
4367
4461
|
* @param {string} prefix 类名前缀
|
|
4368
4462
|
*
|
|
4463
|
+
* @attr {number} length 队列长度
|
|
4464
|
+
*
|
|
4369
4465
|
* @method push 文本节点入队
|
|
4370
4466
|
* @param {DOM Object} el 文本节点对象
|
|
4371
4467
|
* @return void
|
|
@@ -4393,8 +4489,15 @@ var TextNodeQueue = /*#__PURE__*/function () {
|
|
|
4393
4489
|
this._prefix = prefix;
|
|
4394
4490
|
}
|
|
4395
4491
|
|
|
4396
|
-
//
|
|
4492
|
+
// 队列长度
|
|
4397
4493
|
_createClass(TextNodeQueue, [{
|
|
4494
|
+
key: "length",
|
|
4495
|
+
get: function get() {
|
|
4496
|
+
return this._queue.length;
|
|
4497
|
+
}
|
|
4498
|
+
|
|
4499
|
+
// 文本节点入队
|
|
4500
|
+
}, {
|
|
4398
4501
|
key: "push",
|
|
4399
4502
|
value: function push(el) {
|
|
4400
4503
|
var className = "".concat(this._prefix).concat(this._idx++);
|