@whitesev/utils 2.11.7 → 2.11.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/index.amd.js +129 -75
- package/dist/index.amd.js.map +1 -1
- package/dist/index.amd.min.js +1 -1
- package/dist/index.amd.min.js.map +1 -1
- package/dist/index.cjs.js +129 -75
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.cjs.min.js +1 -1
- package/dist/index.cjs.min.js.map +1 -1
- package/dist/index.esm.js +129 -75
- package/dist/index.esm.js.map +1 -1
- package/dist/index.esm.min.js +1 -1
- package/dist/index.esm.min.js.map +1 -1
- package/dist/index.iife.js +129 -75
- package/dist/index.iife.js.map +1 -1
- package/dist/index.iife.min.js +1 -1
- package/dist/index.iife.min.js.map +1 -1
- package/dist/index.system.js +129 -75
- package/dist/index.system.js.map +1 -1
- package/dist/index.system.min.js +1 -1
- package/dist/index.system.min.js.map +1 -1
- package/dist/index.umd.js +129 -75
- package/dist/index.umd.js.map +1 -1
- package/dist/index.umd.min.js +1 -1
- package/dist/index.umd.min.js.map +1 -1
- package/dist/types/src/Utils.d.ts +82 -35
- package/dist/types/src/types/env.d.ts +2 -0
- package/package.json +1 -1
- package/src/Utils.ts +186 -119
- package/src/types/env.d.ts +2 -0
package/dist/index.iife.js
CHANGED
|
@@ -240,7 +240,7 @@ var Utils = (function () {
|
|
|
240
240
|
const setInterval$1 = (...args) => loadOrReturnBroker().setInterval(...args);
|
|
241
241
|
const setTimeout$1 = (...args) => loadOrReturnBroker().setTimeout(...args);
|
|
242
242
|
|
|
243
|
-
const version = "2.11.
|
|
243
|
+
const version = "2.11.9";
|
|
244
244
|
|
|
245
245
|
/* eslint-disable */
|
|
246
246
|
// ==UserScript==
|
|
@@ -6130,31 +6130,35 @@ var Utils = (function () {
|
|
|
6130
6130
|
* 元素是否可见
|
|
6131
6131
|
* @param $el
|
|
6132
6132
|
* @param $css
|
|
6133
|
+
* @returns
|
|
6134
|
+
* + true 可见
|
|
6135
|
+
* + false 不可见
|
|
6133
6136
|
*/
|
|
6134
|
-
function
|
|
6137
|
+
const isVisibleNode = function ($css, $el) {
|
|
6135
6138
|
let flag = true;
|
|
6136
|
-
if (
|
|
6137
|
-
flag =
|
|
6139
|
+
if (!($el instanceof HTMLElement)) {
|
|
6140
|
+
flag = false;
|
|
6138
6141
|
}
|
|
6139
6142
|
else {
|
|
6140
|
-
|
|
6141
|
-
|
|
6142
|
-
|
|
6143
|
-
|
|
6144
|
-
|
|
6145
|
-
|
|
6146
|
-
|
|
6147
|
-
|
|
6148
|
-
|
|
6143
|
+
if (typeof $el.checkVisibility === "function") {
|
|
6144
|
+
flag = $el.checkVisibility();
|
|
6145
|
+
}
|
|
6146
|
+
else {
|
|
6147
|
+
flag =
|
|
6148
|
+
$css.position !== "static" &&
|
|
6149
|
+
$css.display !== "none" &&
|
|
6150
|
+
$css.visibility !== "hidden" &&
|
|
6151
|
+
$css.opacity !== "0";
|
|
6152
|
+
}
|
|
6149
6153
|
}
|
|
6150
6154
|
return flag;
|
|
6151
|
-
}
|
|
6155
|
+
};
|
|
6152
6156
|
/**
|
|
6153
6157
|
* 查询元素的z-index
|
|
6154
6158
|
* 并比较值是否是已获取的最大值
|
|
6155
6159
|
* @param $el
|
|
6156
6160
|
*/
|
|
6157
|
-
function
|
|
6161
|
+
const queryMaxZIndex = function ($el) {
|
|
6158
6162
|
if (typeof ignoreCallBack === "function") {
|
|
6159
6163
|
const ignoreResult = ignoreCallBack($el);
|
|
6160
6164
|
if (typeof ignoreResult === "boolean" && !ignoreResult) {
|
|
@@ -6162,9 +6166,9 @@ var Utils = (function () {
|
|
|
6162
6166
|
}
|
|
6163
6167
|
}
|
|
6164
6168
|
/** 元素的样式 */
|
|
6165
|
-
const nodeStyle = that.windowApi.
|
|
6169
|
+
const nodeStyle = that.windowApi.globalThis.getComputedStyle($el);
|
|
6166
6170
|
/* 不对position为static和display为none的元素进行获取它们的z-index */
|
|
6167
|
-
if (isVisibleNode($el
|
|
6171
|
+
if (isVisibleNode(nodeStyle, $el)) {
|
|
6168
6172
|
const nodeZIndex = parseInt(nodeStyle.zIndex);
|
|
6169
6173
|
if (!isNaN(nodeZIndex)) {
|
|
6170
6174
|
if (nodeZIndex > zIndex) {
|
|
@@ -6180,7 +6184,7 @@ var Utils = (function () {
|
|
|
6180
6184
|
});
|
|
6181
6185
|
}
|
|
6182
6186
|
}
|
|
6183
|
-
}
|
|
6187
|
+
};
|
|
6184
6188
|
target.querySelectorAll("*").forEach(($elItem) => {
|
|
6185
6189
|
queryMaxZIndex($elItem);
|
|
6186
6190
|
});
|
|
@@ -6205,33 +6209,31 @@ var Utils = (function () {
|
|
|
6205
6209
|
if (typeof deviation !== "number" || Number.isNaN(deviation)) {
|
|
6206
6210
|
deviation = 10;
|
|
6207
6211
|
}
|
|
6208
|
-
|
|
6209
|
-
|
|
6210
|
-
|
|
6211
|
-
|
|
6212
|
-
const
|
|
6213
|
-
|
|
6214
|
-
|
|
6215
|
-
|
|
6216
|
-
|
|
6217
|
-
|
|
6218
|
-
|
|
6219
|
-
|
|
6220
|
-
|
|
6221
|
-
|
|
6222
|
-
|
|
6223
|
-
|
|
6224
|
-
|
|
6225
|
-
|
|
6226
|
-
|
|
6227
|
-
|
|
6228
|
-
|
|
6229
|
-
|
|
6230
|
-
|
|
6231
|
-
|
|
6232
|
-
|
|
6233
|
-
center,
|
|
6234
|
-
];
|
|
6212
|
+
/** 坐标偏移 */
|
|
6213
|
+
const positionDistance = 10;
|
|
6214
|
+
const defaultCalcPostion = [];
|
|
6215
|
+
const maxPostionX = globalThis.innerWidth;
|
|
6216
|
+
const maxPostionY = globalThis.innerHeight;
|
|
6217
|
+
const gridXCount = 8;
|
|
6218
|
+
const gridYCount = 8;
|
|
6219
|
+
for (let i = 0; i < gridXCount; i++) {
|
|
6220
|
+
for (let j = 0; j < gridYCount; j++) {
|
|
6221
|
+
const positionX = globalThis.innerWidth * (i / gridXCount) + positionDistance;
|
|
6222
|
+
const positionY = globalThis.innerHeight * (j / gridYCount) + positionDistance;
|
|
6223
|
+
const position = {
|
|
6224
|
+
x: positionX,
|
|
6225
|
+
y: positionY,
|
|
6226
|
+
};
|
|
6227
|
+
if (position.x > maxPostionX) {
|
|
6228
|
+
position.x = maxPostionX;
|
|
6229
|
+
}
|
|
6230
|
+
if (position.y > maxPostionY) {
|
|
6231
|
+
position.y = maxPostionY;
|
|
6232
|
+
}
|
|
6233
|
+
defaultCalcPostion.push(position);
|
|
6234
|
+
}
|
|
6235
|
+
}
|
|
6236
|
+
const delayHandlerElementPostionList = defaultCalcPostion;
|
|
6235
6237
|
if ($el) {
|
|
6236
6238
|
delayHandlerElementPostionList.length = 0;
|
|
6237
6239
|
if (Array.isArray($el)) {
|
|
@@ -6243,61 +6245,79 @@ var Utils = (function () {
|
|
|
6243
6245
|
}
|
|
6244
6246
|
const positionInfoList = delayHandlerElementPostionList
|
|
6245
6247
|
.map((position) => {
|
|
6246
|
-
let
|
|
6248
|
+
let $position;
|
|
6247
6249
|
let positionX;
|
|
6248
6250
|
let positionY;
|
|
6249
6251
|
if (position instanceof HTMLElement) {
|
|
6250
|
-
|
|
6252
|
+
$position = position;
|
|
6251
6253
|
const nodeRect = position.getBoundingClientRect();
|
|
6252
6254
|
positionX = nodeRect.x + nodeRect.width / 2;
|
|
6253
6255
|
positionY = nodeRect.y + nodeRect.height / 2;
|
|
6254
6256
|
}
|
|
6255
6257
|
else {
|
|
6256
|
-
|
|
6258
|
+
$position = document.elementFromPoint(position.x, position.y);
|
|
6257
6259
|
positionX = position.x;
|
|
6258
6260
|
positionY = position.y;
|
|
6259
6261
|
}
|
|
6260
|
-
const shadowRoot =
|
|
6262
|
+
const shadowRoot = $position?.shadowRoot;
|
|
6261
6263
|
if (shadowRoot) {
|
|
6262
|
-
|
|
6264
|
+
// 处理ShadowRoot
|
|
6265
|
+
$position = shadowRoot.elementFromPoint(positionX, positionY);
|
|
6263
6266
|
}
|
|
6264
|
-
if (
|
|
6265
|
-
return;
|
|
6266
|
-
if (positionNode instanceof HTMLScriptElement)
|
|
6267
|
-
return;
|
|
6268
|
-
if (positionNode instanceof HTMLMetaElement)
|
|
6269
|
-
return;
|
|
6270
|
-
if (positionNode instanceof HTMLHeadElement)
|
|
6267
|
+
if (!($position instanceof HTMLElement))
|
|
6271
6268
|
return;
|
|
6272
|
-
|
|
6273
|
-
return;
|
|
6274
|
-
let parent = positionNode;
|
|
6269
|
+
let $parent = $position;
|
|
6275
6270
|
let zIndex = 0;
|
|
6276
|
-
let maxZIndexNode = null;
|
|
6277
|
-
|
|
6278
|
-
|
|
6271
|
+
let $maxZIndexNode = null;
|
|
6272
|
+
let rect = {
|
|
6273
|
+
x: 0,
|
|
6274
|
+
y: 0,
|
|
6275
|
+
width: 0,
|
|
6276
|
+
height: 0,
|
|
6277
|
+
top: 0,
|
|
6278
|
+
right: 0,
|
|
6279
|
+
bottom: 0,
|
|
6280
|
+
left: 0,
|
|
6281
|
+
};
|
|
6282
|
+
while ($parent) {
|
|
6283
|
+
const nodeStyle = globalThis.getComputedStyle($parent);
|
|
6279
6284
|
const nodeZIndex = parseInt(nodeStyle.zIndex);
|
|
6280
6285
|
if (nodeStyle.position !== "static" && !isNaN(nodeZIndex)) {
|
|
6281
6286
|
if (nodeZIndex > zIndex) {
|
|
6282
6287
|
zIndex = nodeZIndex;
|
|
6283
|
-
maxZIndexNode = parent;
|
|
6288
|
+
$maxZIndexNode = $parent;
|
|
6284
6289
|
}
|
|
6285
6290
|
}
|
|
6286
|
-
parent = parent.parentElement;
|
|
6291
|
+
$parent = $parent.parentElement;
|
|
6292
|
+
}
|
|
6293
|
+
if ($maxZIndexNode) {
|
|
6294
|
+
const maxRect = $maxZIndexNode.getBoundingClientRect();
|
|
6295
|
+
rect = {
|
|
6296
|
+
x: maxRect.x,
|
|
6297
|
+
y: maxRect.y,
|
|
6298
|
+
width: maxRect.width,
|
|
6299
|
+
height: maxRect.height,
|
|
6300
|
+
top: maxRect.top,
|
|
6301
|
+
right: maxRect.right,
|
|
6302
|
+
bottom: maxRect.bottom,
|
|
6303
|
+
left: maxRect.left,
|
|
6304
|
+
};
|
|
6287
6305
|
}
|
|
6288
6306
|
return {
|
|
6289
|
-
/**
|
|
6307
|
+
/** 计算偏移量后的z-index值 */
|
|
6290
6308
|
zIndex: zIndex + deviation,
|
|
6291
|
-
/**
|
|
6309
|
+
/** 获取到的最大的z-index值 */
|
|
6292
6310
|
originZIndex: zIndex,
|
|
6293
6311
|
/** 拥有最大z-index的元素 */
|
|
6294
|
-
node: maxZIndexNode,
|
|
6312
|
+
node: $maxZIndexNode,
|
|
6295
6313
|
/** 目标坐标元素 */
|
|
6296
|
-
positionNode:
|
|
6297
|
-
/** x坐标 */
|
|
6314
|
+
positionNode: $position,
|
|
6315
|
+
/** 目标x坐标 */
|
|
6298
6316
|
positionX: positionX,
|
|
6299
|
-
/** y坐标 */
|
|
6317
|
+
/** 目标y坐标 */
|
|
6300
6318
|
positionY: positionY,
|
|
6319
|
+
/** node位置信息 */
|
|
6320
|
+
rect,
|
|
6301
6321
|
};
|
|
6302
6322
|
})
|
|
6303
6323
|
.filter((it) => it != null);
|
|
@@ -8322,6 +8342,20 @@ var Utils = (function () {
|
|
|
8322
8342
|
* 深度获取对象的某个属性
|
|
8323
8343
|
* @param target 待获取的对象
|
|
8324
8344
|
* @param handler 获取属性的回调
|
|
8345
|
+
* @example
|
|
8346
|
+
* Utils.queryProperty(window,(target)=>{
|
|
8347
|
+
* if(target.xxx){
|
|
8348
|
+
* return {
|
|
8349
|
+
* isFind: true,
|
|
8350
|
+
* data: target.xxx,
|
|
8351
|
+
* }
|
|
8352
|
+
* }else{
|
|
8353
|
+
* return {
|
|
8354
|
+
* isFind: false,
|
|
8355
|
+
* data: target.aabbcc,
|
|
8356
|
+
* }
|
|
8357
|
+
* }
|
|
8358
|
+
* })
|
|
8325
8359
|
*/
|
|
8326
8360
|
queryProperty(target, handler) {
|
|
8327
8361
|
if (target == null) {
|
|
@@ -8337,10 +8371,23 @@ var Utils = (function () {
|
|
|
8337
8371
|
* 异步-深度获取对象属性
|
|
8338
8372
|
* @param target 待获取的对象
|
|
8339
8373
|
* @param handler 获取属性的回调
|
|
8374
|
+
* @example
|
|
8375
|
+
* Utils.asyncQueryProperty(window, async (target)=>{
|
|
8376
|
+
* if(target.xxx){
|
|
8377
|
+
* return {
|
|
8378
|
+
* isFind: true,
|
|
8379
|
+
* data: target.xxx,
|
|
8380
|
+
* }
|
|
8381
|
+
* }else{
|
|
8382
|
+
* return {
|
|
8383
|
+
* isFind: false,
|
|
8384
|
+
* data: target.aabbcc,
|
|
8385
|
+
* }
|
|
8386
|
+
* }
|
|
8387
|
+
* })
|
|
8340
8388
|
*/
|
|
8341
8389
|
async asyncQueryProperty(target, handler) {
|
|
8342
8390
|
if (target == null) {
|
|
8343
|
-
// @ts-expect-error 空返回
|
|
8344
8391
|
return;
|
|
8345
8392
|
}
|
|
8346
8393
|
const handleResult = await handler(target);
|
|
@@ -8352,7 +8399,8 @@ var Utils = (function () {
|
|
|
8352
8399
|
/**
|
|
8353
8400
|
* 创建一个新的Utils实例
|
|
8354
8401
|
* @param option
|
|
8355
|
-
* @
|
|
8402
|
+
* @example
|
|
8403
|
+
* Utils.createUtils();
|
|
8356
8404
|
*/
|
|
8357
8405
|
createUtils(option) {
|
|
8358
8406
|
return new Utils(option);
|
|
@@ -8420,7 +8468,9 @@ var Utils = (function () {
|
|
|
8420
8468
|
/**
|
|
8421
8469
|
* 覆盖对象中的函数this指向
|
|
8422
8470
|
* @param target 需要覆盖的对象
|
|
8423
|
-
* @param
|
|
8471
|
+
* @param objectThis 覆盖的this指向,如果为传入,则默认为对象本身
|
|
8472
|
+
* @example
|
|
8473
|
+
* Utils.coverObjectFunctionThis({})
|
|
8424
8474
|
*/
|
|
8425
8475
|
coverObjectFunctionThis = commonUtil.coverObjectFunctionThis.bind(commonUtil);
|
|
8426
8476
|
/**
|
|
@@ -8471,7 +8521,7 @@ var Utils = (function () {
|
|
|
8471
8521
|
/**
|
|
8472
8522
|
* 自动使用 Worker 执行 setTimeout
|
|
8473
8523
|
* @param callback 回调函数
|
|
8474
|
-
* @param
|
|
8524
|
+
* @param timeout 延迟时间,默认为0
|
|
8475
8525
|
*/
|
|
8476
8526
|
workerSetTimeout(callback, timeout = 0) {
|
|
8477
8527
|
try {
|
|
@@ -8542,6 +8592,10 @@ var Utils = (function () {
|
|
|
8542
8592
|
/**
|
|
8543
8593
|
* 判断页面中是否存在`worker-src`的CSP规则
|
|
8544
8594
|
* @param timeout 超时时间,默认为`1500ms`
|
|
8595
|
+
* @example
|
|
8596
|
+
* Utils.hasWorkerCSP().then((hasCSP) => {
|
|
8597
|
+
* console.log(hasCSP);
|
|
8598
|
+
* })
|
|
8545
8599
|
*/
|
|
8546
8600
|
hasWorkerCSP(timeout = 1500) {
|
|
8547
8601
|
return new Promise((resolve) => {
|