@unicom-cloud/utils 0.1.31 → 0.1.33

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.
Files changed (369) hide show
  1. package/case-name/index.js +1 -1
  2. package/caseName.js +1 -1
  3. package/class-name/index.js +6 -5
  4. package/className.js +1 -1
  5. package/clipboard-copy/index.js +1 -1
  6. package/clipboardCopy.js +1 -1
  7. package/constant/address.js +1 -1
  8. package/constant/chineseCharacters.js +1 -1
  9. package/constant/constellations.js +1 -1
  10. package/constant/domain.js +1 -1
  11. package/constant/emoji.js +1 -1
  12. package/constant/identity.js +1 -1
  13. package/constant/index.js +1 -1
  14. package/constant/isMobile.js +7 -0
  15. package/constant/keyboardCode.js +1 -1
  16. package/constant/licensePlate.js +1 -1
  17. package/constant/name.js +1 -1
  18. package/constant/platform.js +18 -17
  19. package/constant/protocol.js +1 -1
  20. package/constant/string.js +1 -1
  21. package/constant/ui.js +1 -1
  22. package/constant.js +1 -1
  23. package/content-disposition/index.js +1 -1
  24. package/contentDisposition.js +1 -1
  25. package/cookie/index.js +1 -1
  26. package/cookie/src/api.js +1 -1
  27. package/cookie/src/assign.js +1 -1
  28. package/cookie/src/converter.js +1 -1
  29. package/cookie.js +1 -1
  30. package/date/convertTime.js +1 -1
  31. package/date/convertToDuration.js +1 -1
  32. package/date/index.js +5 -5
  33. package/date.js +5 -5
  34. package/decimal/decimal.js +1 -1
  35. package/decimal/index.js +1 -1
  36. package/decimal.js +1 -1
  37. package/dom-helpers/activeElement.js +1 -1
  38. package/dom-helpers/addClass.js +1 -1
  39. package/dom-helpers/addEventListener.js +1 -1
  40. package/dom-helpers/animate.js +1 -1
  41. package/dom-helpers/animationFrame.js +1 -1
  42. package/dom-helpers/attribute.js +1 -1
  43. package/dom-helpers/camelize.js +1 -1
  44. package/dom-helpers/camelizeStyle.js +1 -1
  45. package/dom-helpers/canUseDOM.js +1 -1
  46. package/dom-helpers/childElements.js +1 -1
  47. package/dom-helpers/childNodes.js +1 -1
  48. package/dom-helpers/clear.js +1 -1
  49. package/dom-helpers/closest.js +1 -1
  50. package/dom-helpers/collectElements.js +1 -1
  51. package/dom-helpers/collectSiblings.js +1 -1
  52. package/dom-helpers/contains.js +1 -1
  53. package/dom-helpers/css.js +1 -1
  54. package/dom-helpers/filterEventHandler.js +1 -1
  55. package/dom-helpers/getComputedStyle.js +1 -1
  56. package/dom-helpers/getElementCoordinates.js +46 -0
  57. package/dom-helpers/getScrollAccessor.js +1 -1
  58. package/dom-helpers/hasClass.js +1 -1
  59. package/dom-helpers/height.js +1 -1
  60. package/dom-helpers/hyphenate.js +1 -1
  61. package/dom-helpers/hyphenateStyle.js +1 -1
  62. package/dom-helpers/index.js +87 -84
  63. package/dom-helpers/insertAfter.js +1 -1
  64. package/dom-helpers/isDocument.js +1 -1
  65. package/dom-helpers/isInput.js +1 -1
  66. package/dom-helpers/isTransform.js +1 -1
  67. package/dom-helpers/isVisible.js +1 -1
  68. package/dom-helpers/isWindow.js +1 -1
  69. package/dom-helpers/listen.js +1 -1
  70. package/dom-helpers/matches.js +1 -1
  71. package/dom-helpers/nextUntil.js +1 -1
  72. package/dom-helpers/offset.js +1 -1
  73. package/dom-helpers/offsetParent.js +1 -1
  74. package/dom-helpers/ownerDocument.js +1 -1
  75. package/dom-helpers/ownerWindow.js +1 -1
  76. package/dom-helpers/parents.js +1 -1
  77. package/dom-helpers/position.js +1 -1
  78. package/dom-helpers/prepend.js +1 -1
  79. package/dom-helpers/querySelectorAll.js +1 -1
  80. package/dom-helpers/reflow.js +1 -1
  81. package/dom-helpers/remove.js +1 -1
  82. package/dom-helpers/removeClass.js +1 -1
  83. package/dom-helpers/removeEventListener.js +1 -1
  84. package/dom-helpers/scrollLeft.js +1 -1
  85. package/dom-helpers/scrollParent.js +1 -1
  86. package/dom-helpers/scrollTo.js +1 -1
  87. package/dom-helpers/scrollTop.js +1 -1
  88. package/dom-helpers/scrollbarSize.js +1 -1
  89. package/dom-helpers/siblings.js +1 -1
  90. package/dom-helpers/text.js +1 -1
  91. package/dom-helpers/toggleClass.js +1 -1
  92. package/dom-helpers/transitionEnd.js +2 -2
  93. package/dom-helpers/triggerEvent.js +1 -1
  94. package/dom-helpers/types.js +1 -1
  95. package/dom-helpers/width.js +1 -1
  96. package/domHelpers.js +65 -63
  97. package/emitter/index.js +1 -1
  98. package/emitter/src/index.js +1 -1
  99. package/emitter.js +1 -1
  100. package/escape/index.js +11 -0
  101. package/escape.js +6 -0
  102. package/file/fileToURL.js +1 -1
  103. package/file/index.js +1 -1
  104. package/file/saveAs.js +1 -1
  105. package/file.js +1 -1
  106. package/idb/index.js +1 -1
  107. package/idb.js +1 -1
  108. package/index.js +1 -1
  109. package/invariant/index.js +1 -1
  110. package/invariant.js +1 -1
  111. package/is/index.js +196 -141
  112. package/is/lib/isAscii.js +9 -0
  113. package/is/lib/isBase64.js +13 -0
  114. package/is/lib/isChinese.js +19 -0
  115. package/is/lib/isDataURI.js +25 -0
  116. package/is/lib/isEmail.js +72 -0
  117. package/is/lib/isFQDN.js +21 -0
  118. package/is/lib/isFullWidth.js +10 -0
  119. package/is/lib/isHSL.js +11 -0
  120. package/is/lib/isHalfWidth.js +10 -0
  121. package/is/lib/isHash.js +23 -0
  122. package/is/lib/isHexColor.js +12 -0
  123. package/is/lib/isIMEI.js +19 -0
  124. package/is/lib/isIP.js +21 -0
  125. package/is/lib/isIPRange.js +25 -0
  126. package/is/lib/isIdentityCard.js +190 -0
  127. package/is/lib/isJWT.js +14 -0
  128. package/is/lib/isMACAddress.js +9 -0
  129. package/is/lib/isMD5.js +9 -0
  130. package/is/lib/isMimeType.js +9 -0
  131. package/is/lib/isMobilePhone.js +192 -0
  132. package/is/lib/isPort.js +7 -0
  133. package/is/lib/isRgbColor.js +18 -0
  134. package/is/lib/isSemVer.js +20 -0
  135. package/is/lib/isSlug.js +9 -0
  136. package/is/lib/isStrongPassword.js +48 -0
  137. package/is/lib/isURL.js +78 -0
  138. package/is/lib/isUUID.js +24 -0
  139. package/is/lib/isVariableWidth.js +10 -0
  140. package/is/lib/util/assertString.js +12 -0
  141. package/is.js +122 -66
  142. package/lunar/index.js +1 -1
  143. package/lunar/lib/Holiday.js +1 -1
  144. package/lunar/lib/HolidayUtil.js +1 -1
  145. package/lunar/lib/I18n.js +1 -1
  146. package/lunar/lib/JieQi.js +1 -1
  147. package/lunar/lib/Lunar.js +1 -1
  148. package/lunar/lib/LunarMonth.js +1 -1
  149. package/lunar/lib/LunarTime.js +1 -1
  150. package/lunar/lib/LunarUtil.js +1 -1
  151. package/lunar/lib/LunarYear.js +1 -1
  152. package/lunar/lib/ShouXingUtil.js +1 -1
  153. package/lunar/lib/Solar.js +1 -1
  154. package/lunar/lib/SolarHalfYear.js +1 -1
  155. package/lunar/lib/SolarMonth.js +1 -1
  156. package/lunar/lib/SolarSeason.js +1 -1
  157. package/lunar/lib/SolarUtil.js +1 -1
  158. package/lunar/lib/SolarWeek.js +1 -1
  159. package/lunar/lib/SolarYear.js +1 -1
  160. package/lunar/lib/index.js +1 -1
  161. package/lunar.js +1 -1
  162. package/math/index.js +1 -1
  163. package/math.js +1 -1
  164. package/md5/index.js +1 -1
  165. package/md5.js +1 -1
  166. package/mock/MockWebSocket.js +1 -1
  167. package/mock/MockXMLHttpRequest.js +1 -1
  168. package/mock/index.js +1 -1
  169. package/mock.js +1 -1
  170. package/normalize-wheel/ExecutionEnvironment.js +1 -1
  171. package/normalize-wheel/UserAgent_DEPRECATED.js +1 -1
  172. package/normalize-wheel/index.js +1 -1
  173. package/normalize-wheel/isEventSupported.js +1 -1
  174. package/normalizeWheel.js +1 -1
  175. package/number-to-chinese/index.js +1 -1
  176. package/numberToChinese.js +1 -1
  177. package/nzh/cn.js +1 -1
  178. package/nzh/hk.js +1 -1
  179. package/nzh/index.js +1 -1
  180. package/nzh/nzh.js +1 -1
  181. package/nzh/src/autoGet.js +1 -1
  182. package/nzh/src/index.js +1 -1
  183. package/nzh/src/langs/cn_b.js +1 -1
  184. package/nzh/src/langs/cn_s.js +1 -1
  185. package/nzh/src/langs/hk_b.js +1 -1
  186. package/nzh/src/langs/hk_s.js +1 -1
  187. package/nzh/src/utils.js +1 -1
  188. package/nzh.js +1 -1
  189. package/object-keys-sort/index.js +1 -1
  190. package/object-prototype-to-string-call/index.js +2 -2
  191. package/objectKeysSort.js +1 -1
  192. package/objectPrototypeToStringCall.js +1 -1
  193. package/package.json +1 -1
  194. package/pinyin/index.js +1 -1
  195. package/pinyin/simplified.js +1 -1
  196. package/pinyin/src/core.js +1 -1
  197. package/pinyin/src/simplified.js +6 -6
  198. package/pinyin/src/simplified_dict.js +5 -4
  199. package/pinyin/src/traditional.js +4 -4
  200. package/pinyin/src/traditional_dict.js +4 -3
  201. package/pinyin/traditional.js +1 -1
  202. package/pinyin.js +1 -1
  203. package/query-string/base.js +1 -1
  204. package/query-string/index.js +1 -1
  205. package/query-string/splitOnFirst.js +1 -1
  206. package/queryString.js +1 -1
  207. package/random/address.js +1 -1
  208. package/random/constellation.js +1 -1
  209. package/random/image.js +1 -1
  210. package/random/index.js +1 -1
  211. package/random/licensePlate.js +1 -1
  212. package/random/name.js +1 -1
  213. package/random/number.js +1 -1
  214. package/random/text.js +1 -1
  215. package/random/time.js +1 -1
  216. package/random/web.js +1 -1
  217. package/random.js +1 -1
  218. package/screenfull/index.js +1 -1
  219. package/screenfull.js +1 -1
  220. package/sleep/index.js +1 -1
  221. package/sleep.js +1 -1
  222. package/snapdom/index.js +1 -1
  223. package/snapdom/src/api/preCache.js +1 -1
  224. package/snapdom/src/api/snapdom.js +198 -153
  225. package/snapdom/src/core/cache.js +1 -1
  226. package/snapdom/src/core/capture.js +121 -326
  227. package/snapdom/src/core/clone.js +117 -266
  228. package/snapdom/src/core/context.js +1 -1
  229. package/snapdom/src/core/plugins.js +1 -1
  230. package/snapdom/src/core/prepare.js +48 -157
  231. package/snapdom/src/exporters/download.js +15 -11
  232. package/snapdom/src/exporters/toBlob.js +10 -15
  233. package/snapdom/src/exporters/toCanvas.js +72 -65
  234. package/snapdom/src/exporters/toImg.js +1 -1
  235. package/snapdom/src/modules/CSSVar.js +1 -1
  236. package/snapdom/src/modules/background.js +1 -1
  237. package/snapdom/src/modules/changeCSS.js +1 -1
  238. package/snapdom/src/modules/counter.js +1 -1
  239. package/snapdom/src/modules/fonts.js +118 -112
  240. package/snapdom/src/modules/iconFonts.js +133 -69
  241. package/snapdom/src/modules/images.js +36 -33
  242. package/snapdom/src/modules/lineClamp.js +1 -1
  243. package/snapdom/src/modules/pseudo.js +275 -161
  244. package/snapdom/src/modules/rasterize.js +6 -7
  245. package/snapdom/src/modules/snapFetch.js +1 -1
  246. package/snapdom/src/modules/styles.js +89 -67
  247. package/snapdom/src/modules/svgDefs.js +73 -60
  248. package/snapdom/src/utils/browser.js +13 -8
  249. package/snapdom/src/utils/capture.helpers.js +131 -0
  250. package/snapdom/src/utils/clone.helpers.js +283 -0
  251. package/snapdom/src/utils/css.js +1 -1
  252. package/snapdom/src/utils/helpers.js +1 -1
  253. package/snapdom/src/utils/image.js +15 -24
  254. package/snapdom/src/utils/prepare.helpers.js +8 -0
  255. package/snapdom/src/utils/transforms.helpers.js +211 -0
  256. package/snapdom.js +1 -1
  257. package/string/index.js +1 -1
  258. package/string.js +1 -1
  259. package/tinycolor/index.js +1 -1
  260. package/tinycolor/src/conversion.js +1 -1
  261. package/tinycolor/src/css-color-names.js +1 -1
  262. package/tinycolor/src/format-input.js +1 -1
  263. package/tinycolor/src/from-ratio.js +12 -11
  264. package/tinycolor/src/index.js +1 -1
  265. package/tinycolor/src/random.js +30 -29
  266. package/tinycolor/src/readability.js +1 -1
  267. package/tinycolor/src/to-ms-filter.js +1 -1
  268. package/tinycolor/src/utils.js +1 -1
  269. package/tinycolor.js +1 -1
  270. package/tree/index.js +54 -75
  271. package/tree/search/index.js +1 -1
  272. package/tree.js +9 -11
  273. package/tween/index.js +1 -1
  274. package/tween/src/easing.js +1 -1
  275. package/tween/src/tween.js +15 -14
  276. package/tween.js +1 -1
  277. package/types/constant/isMobile.d.ts +3 -0
  278. package/types/date/index.d.ts +3 -3
  279. package/types/dom-helpers/getElementCoordinates.d.ts +40 -0
  280. package/types/dom-helpers/index.d.ts +3 -1
  281. package/types/escape/index.d.ts +2 -0
  282. package/types/is/index.d.ts +28 -1
  283. package/types/is/lib/isAscii.d.ts +1 -0
  284. package/types/is/lib/isBase64.d.ts +1 -0
  285. package/types/is/lib/isChinese.d.ts +4 -0
  286. package/types/is/lib/isDataURI.d.ts +1 -0
  287. package/types/is/lib/isEmail.d.ts +1 -0
  288. package/types/is/lib/isFQDN.d.ts +1 -0
  289. package/types/is/lib/isFullWidth.d.ts +2 -0
  290. package/types/is/lib/isHSL.d.ts +1 -0
  291. package/types/is/lib/isHalfWidth.d.ts +2 -0
  292. package/types/is/lib/isHash.d.ts +1 -0
  293. package/types/is/lib/isHexColor.d.ts +1 -0
  294. package/types/is/lib/isIMEI.d.ts +1 -0
  295. package/types/is/lib/isIP.d.ts +1 -0
  296. package/types/is/lib/isIPRange.d.ts +1 -0
  297. package/types/is/lib/isIdentityCard.d.ts +1 -0
  298. package/types/is/lib/isJWT.d.ts +1 -0
  299. package/types/is/lib/isMACAddress.d.ts +1 -0
  300. package/types/is/lib/isMD5.d.ts +1 -0
  301. package/types/is/lib/isMimeType.d.ts +1 -0
  302. package/types/is/lib/isMobilePhone.d.ts +2 -0
  303. package/types/is/lib/isOctal.d.ts +1 -0
  304. package/types/is/lib/isPort.d.ts +1 -0
  305. package/types/is/lib/isRgbColor.d.ts +1 -0
  306. package/types/is/lib/isSemVer.d.ts +1 -0
  307. package/types/is/lib/isSlug.d.ts +1 -0
  308. package/types/is/lib/isStrongPassword.d.ts +1 -0
  309. package/types/is/lib/isURL.d.ts +1 -0
  310. package/types/is/lib/isUUID.d.ts +1 -0
  311. package/types/is/lib/isVariableWidth.d.ts +1 -0
  312. package/types/is/lib/util/assertString.d.ts +1 -0
  313. package/types/pinyin/es/main.d.ts +4 -0
  314. package/types/pinyin/es/traditional.d.ts +4 -0
  315. package/types/snapdom/src/api/snapdom.d.ts +11 -79
  316. package/types/snapdom/src/exporters/toCanvas.d.ts +11 -3
  317. package/types/snapdom/src/exporters/toJpg.d.ts +1 -0
  318. package/types/snapdom/src/exporters/toPng.d.ts +6 -0
  319. package/types/snapdom/src/exporters/toSvg.d.ts +1 -0
  320. package/types/snapdom/src/exporters/toWebp.d.ts +1 -0
  321. package/types/snapdom/src/modules/iconFonts.d.ts +7 -20
  322. package/types/snapdom/src/modules/pseudo.d.ts +18 -0
  323. package/types/snapdom/src/modules/rasterize.d.ts +6 -10
  324. package/types/snapdom/src/utils/browser.d.ts +0 -3
  325. package/types/snapdom/src/utils/capture.helpers.d.ts +45 -0
  326. package/types/snapdom/src/utils/clone.helpers.d.ts +97 -0
  327. package/types/snapdom/src/utils/image.d.ts +0 -8
  328. package/types/snapdom/src/utils/index.d.ts +1 -1
  329. package/types/snapdom/src/utils/prepare.helpers.d.ts +9 -0
  330. package/types/snapdom/src/utils/transforms.helpers.d.ts +118 -0
  331. package/types/tree/index.d.ts +3 -4
  332. package/types/validate/src/index.d.ts +23 -25
  333. package/types/validate/src/interface.d.ts +5 -3
  334. package/types/validate/src/locale/en-US.d.ts +12 -2
  335. package/types/validate/src/locale/index.d.ts +171 -0
  336. package/types/validate/src/locale/zh-CN.d.ts +12 -2
  337. package/types/validate/src/rules/base.d.ts +3 -1
  338. package/types/validate/src/rules/custom.d.ts +1 -1
  339. package/types/validate/src/rules/type.d.ts +10 -0
  340. package/ui-color/compareColorByRange.js +1 -1
  341. package/ui-color/index.js +8 -7
  342. package/uiColor.js +25 -24
  343. package/url-toolkit/index.js +1 -1
  344. package/url-toolkit/src/url-toolkit.js +1 -1
  345. package/urlToolkit.js +1 -1
  346. package/validate/index.js +23 -25
  347. package/validate/src/index.js +116 -73
  348. package/validate/src/locale/en-US.js +12 -2
  349. package/validate/src/locale/index.js +11 -0
  350. package/validate/src/locale/zh-CN.js +12 -2
  351. package/validate/src/rules/array.js +2 -2
  352. package/validate/src/rules/base.js +35 -31
  353. package/validate/src/rules/boolean.js +1 -1
  354. package/validate/src/rules/custom.js +2 -2
  355. package/validate/src/rules/number.js +1 -1
  356. package/validate/src/rules/object.js +1 -1
  357. package/validate/src/rules/string.js +6 -5
  358. package/validate/src/rules/type.js +84 -14
  359. package/validate.js +23 -25
  360. package/version/index.js +1 -1
  361. package/version.js +1 -1
  362. package/xlsx/index.d.ts +4 -8
  363. package/xlsx/index.js +1 -1
  364. package/xlsx/xlsx.js +2 -2
  365. package/xlsx.js +1 -1
  366. package/types/validate/src/message.d.ts +0 -2
  367. package/types/validate/src/utils.d.ts +0 -3
  368. package/validate/src/message.js +0 -5
  369. package/validate/src/utils.js +0 -8
@@ -1,17 +1,17 @@
1
- /* 2025-11-19 10:03:21 */
1
+ /* 2025-12-17 18:26:57 */
2
2
  import { cache as s } from "../core/cache.js";
3
- import { NO_DEFAULTS_TAGS as v, getStyleKey as E } from "../utils/css.js";
4
- const m = /* @__PURE__ */ new WeakMap(), f = /* @__PURE__ */ new Map();
5
- let d = 0;
6
- function u() {
7
- d++;
3
+ import { NO_DEFAULTS_TAGS as S, getStyleKey as E } from "../utils/css.js";
4
+ const b = /* @__PURE__ */ new WeakMap(), p = /* @__PURE__ */ new Map();
5
+ let g = 0;
6
+ function l() {
7
+ g++;
8
8
  }
9
- let b = !1;
9
+ let y = !1;
10
10
  function k(t = document.documentElement) {
11
- if (!b) {
12
- b = !0;
11
+ if (!y) {
12
+ y = !0;
13
13
  try {
14
- new MutationObserver(() => u()).observe(t, {
14
+ new MutationObserver(() => l()).observe(t, {
15
15
  subtree: !0,
16
16
  childList: !0,
17
17
  characterData: !0,
@@ -20,7 +20,7 @@ function k(t = document.documentElement) {
20
20
  } catch {
21
21
  }
22
22
  try {
23
- new MutationObserver(() => u()).observe(document.head, {
23
+ new MutationObserver(() => l()).observe(document.head, {
24
24
  subtree: !0,
25
25
  childList: !0,
26
26
  characterData: !0,
@@ -30,21 +30,36 @@ function k(t = document.documentElement) {
30
30
  }
31
31
  try {
32
32
  const e = document.fonts;
33
- e && (e.addEventListener?.("loadingdone", u), e.ready?.then(() => u()).catch(() => {
33
+ e && (e.addEventListener?.("loadingdone", l), e.ready?.then(() => l()).catch(() => {
34
34
  }));
35
35
  } catch {
36
36
  }
37
37
  }
38
38
  }
39
- function F(t, e = {}) {
40
- const o = {}, r = t.getPropertyValue("visibility");
41
- for (let n = 0; n < t.length; n++) {
42
- const a = t[n];
43
- let i = t.getPropertyValue(a);
44
- (a === "background-image" || a === "content") && i.includes("url(") && !i.includes("data:") && (i = "none"), o[a] = i;
39
+ function T(t, e = {}) {
40
+ const i = {}, n = t.getPropertyValue("visibility");
41
+ for (let r = 0; r < t.length; r++) {
42
+ const a = t[r];
43
+ let u = t.getPropertyValue(a);
44
+ (a === "background-image" || a === "content") && u.includes("url(") && !u.includes("data:") && (u = "none"), i[a] = u;
45
45
  }
46
+ const o = [
47
+ "text-decoration-line",
48
+ "text-decoration-color",
49
+ "text-decoration-style",
50
+ "text-decoration-thickness",
51
+ "text-underline-offset",
52
+ "text-decoration-skip-ink"
53
+ ];
54
+ for (const r of o)
55
+ if (!i[r])
56
+ try {
57
+ const a = t.getPropertyValue(r);
58
+ a && (i[r] = a);
59
+ } catch {
60
+ }
46
61
  if (e.embedFonts) {
47
- const n = [
62
+ const r = [
48
63
  "font-feature-settings",
49
64
  "font-variation-settings",
50
65
  "font-kerning",
@@ -52,34 +67,34 @@ function F(t, e = {}) {
52
67
  "font-variant-ligatures",
53
68
  "font-optical-sizing"
54
69
  ];
55
- for (const a of n)
56
- if (!o[a])
70
+ for (const a of r)
71
+ if (!i[a])
57
72
  try {
58
- const i = t.getPropertyValue(a);
59
- i && (o[a] = i);
73
+ const u = t.getPropertyValue(a);
74
+ u && (i[a] = u);
60
75
  } catch {
61
76
  }
62
77
  }
63
- return r === "hidden" && (o.opacity = "0"), o;
78
+ return n === "hidden" && (i.opacity = "0"), i;
64
79
  }
65
- const y = /* @__PURE__ */ new WeakMap();
66
- function M(t) {
67
- let e = y.get(t);
80
+ const v = /* @__PURE__ */ new WeakMap();
81
+ function w(t) {
82
+ let e = v.get(t);
68
83
  return e || (e = Object.entries(t).sort(
69
- (r, n) => r[0] < n[0] ? -1 : r[0] > n[0] ? 1 : 0
70
- ).map(([r, n]) => `${r}:${n}`).join(";"), y.set(t, e), e);
84
+ (n, o) => n[0] < o[0] ? -1 : n[0] > o[0] ? 1 : 0
85
+ ).map(([n, o]) => `${n}:${o}`).join(";"), v.set(t, e), e);
71
86
  }
72
- function T(t, e = null, o = {}) {
73
- const r = m.get(t);
74
- if (r && r.epoch === d) return r.snapshot;
75
- const n = e || getComputedStyle(t), a = F(n, o);
76
- return B(t, n, a), m.set(t, { epoch: d, snapshot: a }), a;
87
+ function _(t, e = null, i = {}) {
88
+ const n = b.get(t);
89
+ if (n && n.epoch === g) return n.snapshot;
90
+ const o = e || getComputedStyle(t), r = T(o, i);
91
+ return H(t, o, r), b.set(t, { epoch: g, snapshot: r }), r;
77
92
  }
78
- function _(t, e) {
93
+ function F(t, e) {
79
94
  return t && t.session && t.persist ? t : t && (t.styleMap || t.styleCache || t.nodeMap) ? {
80
95
  session: t,
81
96
  persist: {
82
- snapshotKeyCache: f,
97
+ snapshotKeyCache: p,
83
98
  defaultStyle: s.defaultStyle,
84
99
  baseStyle: s.baseStyle,
85
100
  image: s.image,
@@ -91,7 +106,7 @@ function _(t, e) {
91
106
  } : {
92
107
  session: s.session,
93
108
  persist: {
94
- snapshotKeyCache: f,
109
+ snapshotKeyCache: p,
95
110
  defaultStyle: s.defaultStyle,
96
111
  baseStyle: s.baseStyle,
97
112
  image: s.image,
@@ -102,51 +117,58 @@ function _(t, e) {
102
117
  options: t || e || {}
103
118
  };
104
119
  }
105
- async function I(t, e, o, r) {
120
+ async function R(t, e, i, n) {
106
121
  if (t.tagName === "STYLE") return;
107
- const n = _(o, r), a = n.options && n.options.cache || "auto";
108
- if (a !== "disabled" && k(document.documentElement), a === "disabled" && !n.session.__bumpedForDisabled && (u(), f.clear(), n.session.__bumpedForDisabled = !0), v.has(t.tagName?.toLowerCase())) {
109
- const l = t.getAttribute?.("style");
110
- l && e.setAttribute("style", l);
122
+ const o = F(i, n), r = o.options && o.options.cache || "auto";
123
+ if (r !== "disabled" && k(document.documentElement), r === "disabled" && !o.session.__bumpedForDisabled && (l(), p.clear(), o.session.__bumpedForDisabled = !0), S.has(t.tagName?.toLowerCase())) {
124
+ const d = t.getAttribute?.("style");
125
+ d && e.setAttribute("style", d);
111
126
  }
112
- const { session: i, persist: p } = n;
113
- i.styleCache.has(t) || i.styleCache.set(t, getComputedStyle(t));
114
- const S = i.styleCache.get(t), g = T(t, S, n.options), h = M(g);
115
- let c = p.snapshotKeyCache.get(h);
116
- if (!c) {
117
- const l = t.tagName?.toLowerCase() || "div";
118
- c = E(g, l), p.snapshotKeyCache.set(h, c);
127
+ const { session: a, persist: u } = o;
128
+ a.styleCache.has(t) || a.styleCache.set(t, getComputedStyle(t));
129
+ const c = a.styleCache.get(t), h = _(t, c, o.options), m = w(h);
130
+ let f = u.snapshotKeyCache.get(m);
131
+ if (!f) {
132
+ const d = t.tagName?.toLowerCase() || "div";
133
+ f = E(h, d), u.snapshotKeyCache.set(m, f);
119
134
  }
120
- i.styleMap.set(e, c);
135
+ a.styleMap.set(e, f);
121
136
  }
122
137
  function C(t) {
123
138
  return t instanceof HTMLImageElement || t instanceof HTMLCanvasElement || t instanceof HTMLVideoElement || t instanceof HTMLIFrameElement || t instanceof SVGElement || t instanceof HTMLObjectElement || t instanceof HTMLEmbedElement;
124
139
  }
125
- function L(t) {
140
+ function M(t) {
126
141
  return t.backgroundImage && t.backgroundImage !== "none" || t.backgroundColor && t.backgroundColor !== "rgba(0, 0, 0, 0)" && t.backgroundColor !== "transparent" || (parseFloat(t.borderTopWidth) || 0) > 0 || (parseFloat(t.borderBottomWidth) || 0) > 0 || (parseFloat(t.paddingTop) || 0) > 0 || (parseFloat(t.paddingBottom) || 0) > 0 ? !0 : (t.overflowBlock || t.overflowY || "visible") !== "visible";
127
142
  }
128
- function w(t) {
143
+ function L(t) {
129
144
  const e = t.parentElement;
130
145
  if (!e) return !1;
131
- const o = getComputedStyle(e).display || "";
132
- return o.includes("flex") || o.includes("grid");
146
+ const i = getComputedStyle(e).display || "";
147
+ return i.includes("flex") || i.includes("grid");
133
148
  }
134
- function H(t, e) {
149
+ function N(t, e) {
135
150
  if (t.textContent && /\S/.test(t.textContent)) return !0;
136
- const o = t.firstElementChild, r = t.lastElementChild;
137
- if (o && o.tagName === "BR" || r && r.tagName === "BR") return !0;
138
- const n = t.scrollHeight;
139
- if (n === 0) return !1;
140
- const a = parseFloat(e.paddingTop) || 0, i = parseFloat(e.paddingBottom) || 0;
141
- return n > a + i;
151
+ const i = t.firstElementChild, n = t.lastElementChild;
152
+ if (i && i.tagName === "BR" || n && n.tagName === "BR") return !0;
153
+ const o = t.scrollHeight;
154
+ if (o === 0) return !1;
155
+ const r = parseFloat(e.paddingTop) || 0, a = parseFloat(e.paddingBottom) || 0;
156
+ return o > r + a;
142
157
  }
143
- function B(t, e, o) {
158
+ function H(t, e, i) {
144
159
  if (t instanceof HTMLElement && t.style && t.style.height) return;
145
- const r = e.display || "";
146
- if (r.includes("flex") || r.includes("grid") || C(t)) return;
147
- const n = e.position;
148
- n === "absolute" || n === "fixed" || n === "sticky" || e.transform === "none" && (L(e) || w(t) || H(t, e) && (delete o.height, delete o["block-size"]));
160
+ const n = t.tagName && t.tagName.toLowerCase();
161
+ if (!n || n !== "div" && n !== "section" && n !== "article" && n !== "main" && n !== "aside" && n !== "header" && n !== "footer" && n !== "nav" && n !== "ol" && n !== "ul" && n !== "li")
162
+ return;
163
+ const o = e.display || "";
164
+ if (o.includes("flex") || o.includes("grid") || C(t)) return;
165
+ const r = e.position;
166
+ if (r === "absolute" || r === "fixed" || r === "sticky" || e.transform !== "none" || M(e) || L(t)) return;
167
+ const a = e.overflowX || e.overflow || "visible", u = e.overflowY || e.overflow || "visible";
168
+ if (a !== "visible" || u !== "visible") return;
169
+ const c = e.clip;
170
+ c && c !== "auto" && c !== "rect(auto, auto, auto, auto)" || e.visibility === "hidden" || e.opacity === "0" || N(t, e) && (delete i.height, delete i["block-size"]);
149
171
  }
150
172
  export {
151
- I as inlineAllStyles
173
+ R as inlineAllStyles
152
174
  };
@@ -1,8 +1,8 @@
1
- /* 2025-11-19 10:03:21 */
2
- function E(s, R) {
3
- if (!s || !(s instanceof Element)) return;
4
- const y = s.ownerDocument || document, b = y, w = s instanceof SVGSVGElement ? [s] : Array.from(s.querySelectorAll("svg"));
5
- if (w.length === 0) return;
1
+ /* 2025-12-17 18:26:57 */
2
+ function R(o, N) {
3
+ if (!o || !(o instanceof Element)) return;
4
+ const w = o.ownerDocument || document, v = w, y = o instanceof SVGSVGElement ? [o] : Array.from(o.querySelectorAll("svg"));
5
+ if (y.length === 0) return;
6
6
  const m = /url\(\s*#([^)]+)\)/g, p = [
7
7
  "fill",
8
8
  "stroke",
@@ -13,81 +13,94 @@ function E(s, R) {
13
13
  "marker-start",
14
14
  "marker-mid",
15
15
  "marker-end"
16
- ], v = (e) => window.CSS && CSS.escape ? CSS.escape(e) : e.replace(/[^a-zA-Z0-9_-]/g, "\\$&"), l = new Set(
17
- Array.from(s.querySelectorAll("[id]")).map((e) => e.id)
18
- ), f = /* @__PURE__ */ new Set();
16
+ ], x = (t) => window.CSS && CSS.escape ? CSS.escape(t) : t.replace(/[^a-zA-Z0-9_-]/g, "\\$&"), q = "http://www.w3.org/1999/xlink", b = (t) => {
17
+ if (!t || !t.getAttribute) return null;
18
+ let n = t.getAttribute("href") || t.getAttribute("xlink:href") || (typeof t.getAttributeNS == "function" ? t.getAttributeNS(q, "href") : null);
19
+ if (n) return n;
20
+ const r = t.attributes;
21
+ if (!r) return null;
22
+ for (let s = 0; s < r.length; s++) {
23
+ const e = r[s];
24
+ if (!e || !e.name) continue;
25
+ if (e.name === "href") return e.value;
26
+ const i = e.name.indexOf(":");
27
+ if (i !== -1 && e.name.slice(i + 1) === "href")
28
+ return e.value;
29
+ }
30
+ return null;
31
+ }, c = new Set(
32
+ Array.from(o.querySelectorAll("[id]")).map((t) => t.id)
33
+ ), d = /* @__PURE__ */ new Set();
19
34
  let A = !1;
20
- const d = (e) => {
21
- if (!e) return;
35
+ const h = (t, n = null) => {
36
+ if (!t) return;
22
37
  m.lastIndex = 0;
23
- let n;
24
- for (; n = m.exec(e); ) {
38
+ let r;
39
+ for (; r = m.exec(t); ) {
25
40
  A = !0;
26
- const t = (n[1] || "").trim();
27
- t && !l.has(t) && f.add(t);
41
+ const s = (r[1] || "").trim();
42
+ s && (c.has(s) || (d.add(s), n && !n.has(s) && n.add(s)));
28
43
  }
29
- }, q = (e) => {
30
- const n = e.querySelectorAll(
31
- 'use[href^="#"], use[xlink\\:href^="#"]'
32
- );
33
- for (const r of n) {
34
- const o = r.getAttribute("href") || r.getAttribute("xlink:href");
35
- if (!o || !o.startsWith("#")) continue;
44
+ }, E = (t) => {
45
+ const n = t.querySelectorAll("use");
46
+ for (const e of n) {
47
+ const i = b(e);
48
+ if (!i || !i.startsWith("#")) continue;
36
49
  A = !0;
37
- const c = o.slice(1).trim();
38
- c && !l.has(c) && f.add(c);
50
+ const a = i.slice(1).trim();
51
+ a && !c.has(a) && d.add(a);
39
52
  }
40
- const a = e.querySelectorAll('*[style*="url("],*[fill^="url("], *[stroke^="url("],*[filter^="url("], *[clip-path^="url("],*[mask^="url("],*[marker^="url("], *[marker-start^="url("],*[marker-mid^="url("], *[marker-end^="url("]');
41
- for (const r of a) {
42
- d(r.getAttribute("style") || "");
43
- for (const o of p) d(r.getAttribute(o));
53
+ const s = t.querySelectorAll('*[style*="url("],*[fill^="url("], *[stroke^="url("],*[filter^="url("],*[clip-path^="url("],*[mask^="url("],*[marker^="url("],*[marker-start^="url("],*[marker-mid^="url("],*[marker-end^="url("]');
54
+ for (const e of s) {
55
+ h(e.getAttribute("style") || "");
56
+ for (const i of p) h(e.getAttribute(i));
44
57
  }
45
58
  };
46
- for (const e of w) q(e);
59
+ for (const t of y) E(t);
47
60
  if (!A) return;
48
- let i = s.querySelector("svg.inline-defs-container");
49
- i || (i = y.createElementNS("http://www.w3.org/2000/svg", "svg"), i.classList.add("inline-defs-container"), i.setAttribute("aria-hidden", "true"), i.setAttribute(
61
+ let l = o.querySelector("svg.inline-defs-container");
62
+ l || (l = w.createElementNS("http://www.w3.org/2000/svg", "svg"), l.classList.add("inline-defs-container"), l.setAttribute("aria-hidden", "true"), l.setAttribute(
50
63
  "style",
51
64
  "position:absolute;width:0;height:0;overflow:hidden"
52
- ), s.insertBefore(i, s.firstChild || null));
53
- let h = i.querySelector("defs") || null;
54
- const x = (e) => {
55
- if (!e || l.has(e)) return null;
56
- const n = v(e), t = (a) => {
57
- const r = b.querySelector(a);
58
- return r && !s.contains(r) ? r : null;
65
+ ), o.insertBefore(l, o.firstChild || null));
66
+ let g = l.querySelector("defs") || null;
67
+ const I = (t) => {
68
+ if (!t || c.has(t)) return null;
69
+ const n = x(t), r = (s) => {
70
+ const e = v.querySelector(s);
71
+ return e && !o.contains(e) ? e : null;
59
72
  };
60
- return t(`svg defs > *#${n}`) || t(`svg > symbol#${n}`) || t(`*#${n}`);
73
+ return r(`svg defs > *#${n}`) || r(`svg > symbol#${n}`) || r(`*#${n}`);
61
74
  };
62
- if (!f.size) return;
63
- const g = new Set(f), S = /* @__PURE__ */ new Set();
64
- for (; g.size; ) {
65
- const e = g.values().next().value;
66
- if (g.delete(e), !e || l.has(e) || S.has(e)) continue;
67
- const n = x(e);
75
+ if (!d.size) return;
76
+ const u = new Set(d), S = /* @__PURE__ */ new Set();
77
+ for (; u.size; ) {
78
+ const t = u.values().next().value;
79
+ if (u.delete(t), !t || c.has(t) || S.has(t)) continue;
80
+ const n = I(t);
68
81
  if (!n) {
69
- S.add(e);
82
+ S.add(t);
70
83
  continue;
71
84
  }
72
- h || (h = y.createElementNS("http://www.w3.org/2000/svg", "defs"), i.appendChild(h));
73
- const t = n.cloneNode(!0);
74
- t.id || t.setAttribute("id", e), h.appendChild(t), S.add(e), l.add(e);
75
- const a = [t, ...t.querySelectorAll("*")];
76
- for (const r of a) {
77
- const o = r.getAttribute?.("href") || r.getAttribute?.("xlink:href");
78
- if (o && o.startsWith("#")) {
79
- const u = o.slice(1).trim();
80
- u && !l.has(u) && !S.has(u) && g.add(u);
85
+ g || (g = w.createElementNS("http://www.w3.org/2000/svg", "defs"), l.appendChild(g));
86
+ const r = n.cloneNode(!0);
87
+ r.id || r.setAttribute("id", t), g.appendChild(r), S.add(t), c.add(t);
88
+ const s = [r, ...r.querySelectorAll("*")];
89
+ for (const e of s) {
90
+ const i = b(e);
91
+ if (i && i.startsWith("#")) {
92
+ const f = i.slice(1).trim();
93
+ f && !c.has(f) && !S.has(f) && u.add(f);
81
94
  }
82
- const c = r.getAttribute?.("style") || "";
83
- c && d(c);
84
- for (const u of p) {
85
- const k = r.getAttribute?.(u);
86
- k && d(k);
95
+ const a = e.getAttribute?.("style") || "";
96
+ a && h(a, u);
97
+ for (const f of p) {
98
+ const k = e.getAttribute?.(f);
99
+ k && h(k, u);
87
100
  }
88
101
  }
89
102
  }
90
103
  }
91
104
  export {
92
- E as inlineExternalDefsAndSymbols
105
+ R as inlineExternalDefsAndSymbols
93
106
  };
@@ -1,13 +1,18 @@
1
- /* 2025-11-19 10:03:21 */
2
- function s(e, { fast: t = !1 } = {}) {
3
- if (t) return e();
1
+ /* 2025-12-17 18:26:57 */
2
+ function d(e, { fast: i = !1 } = {}) {
3
+ if (i) return e();
4
4
  "requestIdleCallback" in window ? requestIdleCallback(e, { timeout: 50 }) : setTimeout(e, 1);
5
5
  }
6
- function o() {
7
- const e = typeof navigator < "u" && navigator.userAgent ? navigator.userAgent : "", t = /^((?!chrome|android).)*safari/i.test(e), i = /AppleWebKit/i.test(e) && /Mobile/i.test(e) && !/Safari/i.test(e), a = /(MicroMessenger|wxwork|WeCom|WindowsWechat|MacWechat)/i.test(e);
8
- return t || i || a;
6
+ function l() {
7
+ if (typeof navigator > "u") return !1;
8
+ const e = navigator.userAgent || "", i = e.toLowerCase(), t = i.includes("safari") && !i.includes("chrome") && !i.includes("crios") && // Chrome on iOS
9
+ !i.includes("fxios") && // Firefox on iOS
10
+ !i.includes("android"), s = /applewebkit/i.test(e), o = /mobile/i.test(e), a = !/safari/i.test(e), n = s && o && a, r = /(micromessenger|wxwork|wecom|windowswechat|macwechat)/i.test(e), c = /(baiduboxapp|baidubrowser|baidusearch|baiduboxlite)/i.test(
11
+ i
12
+ ), u = /ipad|iphone|ipod/.test(i) && s;
13
+ return t || n || r || c || u;
9
14
  }
10
15
  export {
11
- s as idle,
12
- o as isSafari
16
+ d as idle,
17
+ l as isSafari
13
18
  };
@@ -0,0 +1,131 @@
1
+ /* 2025-12-17 18:26:57 */
2
+ function M(e, t) {
3
+ if (!e || !t || !t.style) return;
4
+ const o = getComputedStyle(e);
5
+ try {
6
+ t.style.boxShadow = "none";
7
+ } catch {
8
+ }
9
+ try {
10
+ t.style.textShadow = "none";
11
+ } catch {
12
+ }
13
+ try {
14
+ t.style.outline = "none";
15
+ } catch {
16
+ }
17
+ const s = (o.filter || "").replace(/\bblur\([^()]*\)\s*/gi, "").replace(/\bdrop-shadow\([^()]*\)\s*/gi, "").trim().replace(/\s+/g, " ");
18
+ try {
19
+ t.style.filter = s.length ? s : "none";
20
+ } catch {
21
+ }
22
+ }
23
+ function b(e) {
24
+ const t = document.createTreeWalker(e, NodeFilter.SHOW_COMMENT), o = [];
25
+ for (; t.nextNode(); ) o.push(t.currentNode);
26
+ for (const r of o) r.remove();
27
+ }
28
+ function g(e, t = {}) {
29
+ const { stripFrameworkDirectives: o = !0 } = t, r = /* @__PURE__ */ new Set(["xml", "xlink"]), s = document.createTreeWalker(e, NodeFilter.SHOW_ELEMENT);
30
+ for (; s.nextNode(); ) {
31
+ const n = s.currentNode;
32
+ for (const f of Array.from(n.attributes)) {
33
+ const i = f.name;
34
+ if (i.includes("@")) {
35
+ n.removeAttribute(i);
36
+ continue;
37
+ }
38
+ if (i.includes(":")) {
39
+ const l = i.split(":", 1)[0];
40
+ if (!r.has(l)) {
41
+ n.removeAttribute(i);
42
+ continue;
43
+ }
44
+ }
45
+ if (o && (i.startsWith("x-") || // Alpine
46
+ i.startsWith("v-") || // Vue
47
+ i.startsWith(":") || // Vue/Alpine shorthand
48
+ i.startsWith("on:") || // Svelte
49
+ i.startsWith("bind:") || // Svelte
50
+ i.startsWith("let:") || // Svelte
51
+ i.startsWith("class:"))) {
52
+ n.removeAttribute(i);
53
+ continue;
54
+ }
55
+ }
56
+ }
57
+ }
58
+ function k(e, t = {}) {
59
+ e && (g(e, t), b(e));
60
+ }
61
+ function x(e) {
62
+ try {
63
+ const t = e.getAttribute?.("style") || "";
64
+ return /\b(height|width|block-size|inline-size)\s*:/.test(t);
65
+ } catch {
66
+ return !1;
67
+ }
68
+ }
69
+ function v(e) {
70
+ return e instanceof HTMLImageElement || e instanceof HTMLCanvasElement || e instanceof HTMLVideoElement || e instanceof HTMLIFrameElement || e instanceof SVGElement || e instanceof HTMLObjectElement || e instanceof HTMLEmbedElement;
71
+ }
72
+ function w(e, t) {
73
+ if (!(e instanceof Element) || x(e) || v(e)) return !1;
74
+ const o = t.position;
75
+ if (o === "absolute" || o === "fixed" || o === "sticky") return !1;
76
+ const r = t.display || "";
77
+ return !(r.includes("flex") || r.includes("grid") || r.startsWith("table") || t.transform && t.transform !== "none");
78
+ }
79
+ function H(e, t, o = /* @__PURE__ */ new Map()) {
80
+ function r(s, n) {
81
+ if (!(s instanceof Element) || !(n instanceof Element)) return;
82
+ const f = s.childElementCount > n.childElementCount, i = o.get(s) || getComputedStyle(s);
83
+ if (o.has(s) || o.set(s, i), f && w(s, i)) {
84
+ n.style.height || (n.style.height = "auto"), n.style.width || (n.style.width = "auto"), n.style.removeProperty("block-size"), n.style.removeProperty("inline-size"), n.style.minHeight || (n.style.minHeight = "0"), n.style.minWidth || (n.style.minWidth = "0"), n.style.maxHeight || (n.style.maxHeight = "none"), n.style.maxWidth || (n.style.maxWidth = "none");
85
+ const a = i.overflowY || i.overflowBlock || "visible", c = i.overflowX || i.overflowInline || "visible";
86
+ (a !== "visible" || c !== "visible") && (n.style.overflow = "visible");
87
+ }
88
+ const l = Array.from(s.children), u = Array.from(n.children);
89
+ for (let a = 0; a < Math.min(l.length, u.length); a++)
90
+ r(l[a], u[a]);
91
+ }
92
+ r(e, t);
93
+ }
94
+ function E(e) {
95
+ const t = getComputedStyle(e);
96
+ return !(t.display === "none" || t.position === "absolute" || t.position === "fixed" || t.position === "sticky" || (t.cssFloat || t.float || "none") !== "none" || t.transform && t.transform !== "none");
97
+ }
98
+ function W(e, t) {
99
+ if (!(e instanceof Element)) return !1;
100
+ if (e.getAttribute("data-capture") === "exclude" && t?.excludeMode === "remove")
101
+ return !0;
102
+ if (Array.isArray(t?.exclude))
103
+ for (const o of t.exclude)
104
+ try {
105
+ if (e.matches(o)) return t.excludeMode === "remove";
106
+ } catch {
107
+ }
108
+ return !1;
109
+ }
110
+ function S(e, t) {
111
+ const o = getComputedStyle(e), r = e.getBoundingClientRect();
112
+ let s = 1 / 0, n = -1 / 0, f = !1;
113
+ const i = Array.from(e.children);
114
+ for (const d of i) {
115
+ if (W(d, t) || !E(d)) continue;
116
+ const y = d.getBoundingClientRect(), m = y.top - r.top, h = y.bottom - r.top;
117
+ h <= m || (m < s && (s = m), h > n && (n = h), f = !0);
118
+ }
119
+ const l = f ? Math.max(0, n - s) : 0, u = parseFloat(o.borderTopWidth) || 0, a = parseFloat(o.borderBottomWidth) || 0, c = parseFloat(o.paddingTop) || 0, p = parseFloat(o.paddingBottom) || 0;
120
+ return u + a + c + p + l;
121
+ }
122
+ const A = (e, t = 3) => Number.isFinite(e) ? Math.round(e * 10 ** t) / 10 ** t : e;
123
+ export {
124
+ S as estimateKeptHeight,
125
+ A as limitDecimals,
126
+ b as removeAllComments,
127
+ g as sanitizeAttributesForXHTML,
128
+ k as sanitizeCloneForXHTML,
129
+ H as shrinkAutoSizeBoxes,
130
+ M as stripRootShadows
131
+ };