@whitesev/pops 3.3.3 → 3.3.5
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 +93 -34
- 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 +93 -34
- 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 +93 -34
- 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 +93 -34
- 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 +93 -34
- 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 +93 -34
- 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/Pops.d.ts +11 -10
- package/dist/types/src/components/folder/types/index.d.ts +18 -13
- package/dist/types/src/components/tooltip/index.d.ts +1 -1
- package/dist/types/src/config/GlobalConfig.d.ts +1 -0
- package/dist/types/src/handler/PopsHandler.d.ts +2 -5
- package/dist/types/src/types/components.d.ts +7 -0
- package/package.json +1 -1
- package/src/components/alert/defaultConfig.ts +1 -0
- package/src/components/confirm/defaultConfig.ts +1 -0
- package/src/components/drawer/defaultConfig.ts +1 -0
- package/src/components/folder/defaultConfig.ts +1 -0
- package/src/components/folder/index.ts +58 -33
- package/src/components/folder/types/index.ts +29 -19
- package/src/components/iframe/defaultConfig.ts +1 -0
- package/src/components/loading/defaultConfig.ts +1 -0
- package/src/components/panel/defaultConfig.ts +1 -0
- package/src/components/prompt/defaultConfig.ts +1 -0
- package/src/handler/PopsHandler.ts +34 -10
- package/src/types/components.d.ts +7 -0
package/dist/index.esm.js
CHANGED
|
@@ -3488,19 +3488,37 @@ const PopsHandler = {
|
|
|
3488
3488
|
const $shadowContainer = popsDOMUtils.createElement("div", {
|
|
3489
3489
|
className: "pops-shadow-container",
|
|
3490
3490
|
});
|
|
3491
|
+
let $shadowRoot;
|
|
3491
3492
|
if (config.useShadowRoot) {
|
|
3492
|
-
|
|
3493
|
-
return {
|
|
3494
|
-
$shadowContainer,
|
|
3495
|
-
$shadowRoot,
|
|
3496
|
-
};
|
|
3493
|
+
$shadowRoot = $shadowContainer.attachShadow({ mode: "open" });
|
|
3497
3494
|
}
|
|
3498
3495
|
else {
|
|
3499
|
-
|
|
3500
|
-
|
|
3501
|
-
|
|
3502
|
-
|
|
3496
|
+
$shadowRoot = $shadowContainer;
|
|
3497
|
+
}
|
|
3498
|
+
// 添加键盘监听
|
|
3499
|
+
// rightClickMenu
|
|
3500
|
+
// searchSuggestion
|
|
3501
|
+
// tooltip
|
|
3502
|
+
// 以上都不需要添加该事件监听
|
|
3503
|
+
if (config.stopKeyDownEventPropagation) {
|
|
3504
|
+
popsDOMUtils.on($shadowRoot, "keydown", [
|
|
3505
|
+
'input[type="text"]',
|
|
3506
|
+
'input[type="password"]',
|
|
3507
|
+
'input[type="number"]',
|
|
3508
|
+
'input[type="email"]',
|
|
3509
|
+
'input[type="url"]',
|
|
3510
|
+
'input[type="search"]',
|
|
3511
|
+
"input:not([type])",
|
|
3512
|
+
"textarea",
|
|
3513
|
+
], (evt) => {
|
|
3514
|
+
evt.stopImmediatePropagation();
|
|
3515
|
+
evt.stopPropagation();
|
|
3516
|
+
}, { capture: true });
|
|
3503
3517
|
}
|
|
3518
|
+
return {
|
|
3519
|
+
$shadowContainer,
|
|
3520
|
+
$shadowRoot,
|
|
3521
|
+
};
|
|
3504
3522
|
},
|
|
3505
3523
|
/**
|
|
3506
3524
|
* 处理初始化
|
|
@@ -4027,6 +4045,7 @@ const PopsAlertDefaultConfig = () => {
|
|
|
4027
4045
|
lightStyle: null,
|
|
4028
4046
|
darkStyle: null,
|
|
4029
4047
|
beforeAppendToPageCallBack() { },
|
|
4048
|
+
stopKeyDownEventPropagation: true,
|
|
4030
4049
|
};
|
|
4031
4050
|
};
|
|
4032
4051
|
|
|
@@ -4235,6 +4254,7 @@ const PopsConfirmDefaultConfig = () => {
|
|
|
4235
4254
|
lightStyle: null,
|
|
4236
4255
|
darkStyle: null,
|
|
4237
4256
|
beforeAppendToPageCallBack() { },
|
|
4257
|
+
stopKeyDownEventPropagation: true,
|
|
4238
4258
|
};
|
|
4239
4259
|
};
|
|
4240
4260
|
|
|
@@ -4443,6 +4463,7 @@ const PopsDrawerDefaultConfig = () => {
|
|
|
4443
4463
|
darkStyle: null,
|
|
4444
4464
|
beforeAppendToPageCallBack() { },
|
|
4445
4465
|
forbiddenScroll: false,
|
|
4466
|
+
stopKeyDownEventPropagation: true,
|
|
4446
4467
|
};
|
|
4447
4468
|
};
|
|
4448
4469
|
|
|
@@ -4663,6 +4684,7 @@ const PopsLoadingDefaultConfig = () => {
|
|
|
4663
4684
|
lightStyle: null,
|
|
4664
4685
|
darkStyle: null,
|
|
4665
4686
|
addIndexCSS: true,
|
|
4687
|
+
stopKeyDownEventPropagation: true,
|
|
4666
4688
|
};
|
|
4667
4689
|
};
|
|
4668
4690
|
|
|
@@ -4891,6 +4913,7 @@ const PopsFolderDefaultConfig = () => {
|
|
|
4891
4913
|
lightStyle: null,
|
|
4892
4914
|
darkStyle: null,
|
|
4893
4915
|
beforeAppendToPageCallBack() { },
|
|
4916
|
+
stopKeyDownEventPropagation: true,
|
|
4894
4917
|
};
|
|
4895
4918
|
};
|
|
4896
4919
|
|
|
@@ -5348,10 +5371,13 @@ const PopsFolder = {
|
|
|
5348
5371
|
</div>`);
|
|
5349
5372
|
// 存储原来的值
|
|
5350
5373
|
Reflect.set($fileName, "__value__", folderData);
|
|
5351
|
-
Reflect.set($folder, "
|
|
5374
|
+
Reflect.set($folder, "__value__", folderData);
|
|
5352
5375
|
$folder.appendChild($fileName);
|
|
5353
5376
|
return {
|
|
5354
5377
|
folderElement: $folder,
|
|
5378
|
+
/**
|
|
5379
|
+
* 超链接标签的容器
|
|
5380
|
+
*/
|
|
5355
5381
|
fileNameElement: $fileName,
|
|
5356
5382
|
};
|
|
5357
5383
|
}
|
|
@@ -5440,8 +5466,17 @@ const PopsFolder = {
|
|
|
5440
5466
|
},
|
|
5441
5467
|
addIndexCSS: false,
|
|
5442
5468
|
});
|
|
5469
|
+
let childConfig;
|
|
5443
5470
|
if (typeof dataConfig.clickEvent === "function") {
|
|
5444
|
-
const
|
|
5471
|
+
const result = await dataConfig.clickEvent(clickEvent, dataConfig);
|
|
5472
|
+
if (Array.isArray(result)) {
|
|
5473
|
+
childConfig = result;
|
|
5474
|
+
}
|
|
5475
|
+
}
|
|
5476
|
+
else if (Array.isArray(dataConfig.clickEvent)) {
|
|
5477
|
+
childConfig = dataConfig.clickEvent;
|
|
5478
|
+
}
|
|
5479
|
+
if (childConfig) {
|
|
5445
5480
|
// 添加顶部导航的箭头
|
|
5446
5481
|
folderFileListBreadcrumbPrimaryElement.appendChild(this.createHeaderArrowIcon());
|
|
5447
5482
|
// 添加顶部导航的链接文字
|
|
@@ -5455,50 +5490,65 @@ const PopsFolder = {
|
|
|
5455
5490
|
}
|
|
5456
5491
|
loadingMask.close();
|
|
5457
5492
|
}
|
|
5493
|
+
/**
|
|
5494
|
+
* 更新文件的显示的链接信息
|
|
5495
|
+
*
|
|
5496
|
+
* 这里主要用于鼠标中键或者右键触发,左键触发方式会根据mode进行处理
|
|
5497
|
+
* @returns 更新的文件的下载链接
|
|
5498
|
+
*/
|
|
5499
|
+
updateFileLink($row, downloadInfo) {
|
|
5500
|
+
const downloadUrl = typeof downloadInfo?.url === "string" ? downloadInfo.url.trim() : "";
|
|
5501
|
+
if (downloadUrl !== "" && downloadUrl !== "null" && downloadUrl !== "undefined") {
|
|
5502
|
+
const $link = $row.querySelector("a");
|
|
5503
|
+
$link.setAttribute("href", downloadUrl);
|
|
5504
|
+
return downloadUrl;
|
|
5505
|
+
}
|
|
5506
|
+
}
|
|
5458
5507
|
/**
|
|
5459
5508
|
* 文件的点击事件 - 下载文件
|
|
5460
|
-
* @param
|
|
5509
|
+
* @param evt 点击事件
|
|
5510
|
+
* @param $row 列表项
|
|
5461
5511
|
* @param dataConfig
|
|
5462
5512
|
*/
|
|
5463
|
-
async
|
|
5464
|
-
|
|
5465
|
-
const $link = $row.querySelector("a");
|
|
5513
|
+
async onFileClick(evt, $row, dataConfig) {
|
|
5514
|
+
let downloadInfo;
|
|
5466
5515
|
if (typeof dataConfig.clickEvent === "function") {
|
|
5467
|
-
const
|
|
5468
|
-
if (
|
|
5469
|
-
|
|
5470
|
-
|
|
5471
|
-
|
|
5472
|
-
|
|
5473
|
-
|
|
5474
|
-
|
|
5475
|
-
|
|
5476
|
-
|
|
5477
|
-
|
|
5478
|
-
|
|
5479
|
-
|
|
5516
|
+
const result = await dataConfig.clickEvent(evt, dataConfig);
|
|
5517
|
+
if (typeof result === "object" && result != null && !Array.isArray(result)) {
|
|
5518
|
+
downloadInfo = result;
|
|
5519
|
+
}
|
|
5520
|
+
}
|
|
5521
|
+
else if (typeof dataConfig.clickEvent === "object" &&
|
|
5522
|
+
dataConfig.clickEvent != null &&
|
|
5523
|
+
!Array.isArray(dataConfig.clickEvent)) {
|
|
5524
|
+
downloadInfo = dataConfig.clickEvent;
|
|
5525
|
+
}
|
|
5526
|
+
if (downloadInfo) {
|
|
5527
|
+
const downloadUrl = this.updateFileLink($row, downloadInfo);
|
|
5528
|
+
if (downloadUrl) {
|
|
5529
|
+
if (typeof downloadInfo.mode === "string") {
|
|
5480
5530
|
if (downloadInfo.mode === "a" || downloadInfo.mode === "aBlank") {
|
|
5481
5531
|
// a标签下载
|
|
5482
5532
|
const $anchor = popsDOMUtils.createElement("a");
|
|
5483
5533
|
if (downloadInfo.mode === "aBlank") {
|
|
5484
5534
|
$anchor.setAttribute("target", "_blank");
|
|
5485
5535
|
}
|
|
5486
|
-
$anchor.href =
|
|
5536
|
+
$anchor.href = downloadUrl;
|
|
5487
5537
|
$anchor.click();
|
|
5488
5538
|
}
|
|
5489
5539
|
else if (downloadInfo.mode === "open" || downloadInfo.mode === "openBlank") {
|
|
5490
5540
|
// window.open下载
|
|
5491
5541
|
if (downloadInfo.mode === "openBlank") {
|
|
5492
|
-
globalThis.open(
|
|
5542
|
+
globalThis.open(downloadUrl, "_blank");
|
|
5493
5543
|
}
|
|
5494
5544
|
else {
|
|
5495
|
-
globalThis.open(
|
|
5545
|
+
globalThis.open(downloadUrl);
|
|
5496
5546
|
}
|
|
5497
5547
|
}
|
|
5498
5548
|
else if (downloadInfo.mode === "iframe") {
|
|
5499
5549
|
// iframe下载
|
|
5500
5550
|
const $downloadIframe = popsDOMUtils.createElement("iframe");
|
|
5501
|
-
$downloadIframe.src =
|
|
5551
|
+
$downloadIframe.src = downloadUrl;
|
|
5502
5552
|
$downloadIframe.onload = function () {
|
|
5503
5553
|
popsUtils.setTimeout(() => {
|
|
5504
5554
|
$downloadIframe.remove();
|
|
@@ -5680,8 +5730,14 @@ const PopsFolder = {
|
|
|
5680
5730
|
// 文件 - 点击事件
|
|
5681
5731
|
popsDOMUtils.on(fileNameElement, "click", (event) => {
|
|
5682
5732
|
// 下载文件
|
|
5683
|
-
|
|
5733
|
+
popsDOMUtils.preventEvent(event);
|
|
5734
|
+
this.onFileClick(event, fileNameElement, item);
|
|
5684
5735
|
});
|
|
5736
|
+
// 如果clickEvent不是函数,那么现在就可以进行配置
|
|
5737
|
+
if (typeof item.clickEvent === "object" && item.clickEvent !== null && !Array.isArray(item.clickEvent)) {
|
|
5738
|
+
// {} 单文件配置
|
|
5739
|
+
this.updateFileLink(fileNameElement, item.clickEvent);
|
|
5740
|
+
}
|
|
5685
5741
|
folderListBodyElement.appendChild(folderElement);
|
|
5686
5742
|
}
|
|
5687
5743
|
});
|
|
@@ -5823,6 +5879,7 @@ const PopsIframeDefaultConfig = () => {
|
|
|
5823
5879
|
lightStyle: null,
|
|
5824
5880
|
darkStyle: null,
|
|
5825
5881
|
beforeAppendToPageCallBack() { },
|
|
5882
|
+
stopKeyDownEventPropagation: true,
|
|
5826
5883
|
};
|
|
5827
5884
|
};
|
|
5828
5885
|
|
|
@@ -6946,6 +7003,7 @@ const PopsPanelDefaultConfig = () => {
|
|
|
6946
7003
|
lightStyle: null,
|
|
6947
7004
|
darkStyle: null,
|
|
6948
7005
|
beforeAppendToPageCallBack() { },
|
|
7006
|
+
stopKeyDownEventPropagation: true,
|
|
6949
7007
|
};
|
|
6950
7008
|
};
|
|
6951
7009
|
|
|
@@ -11713,6 +11771,7 @@ const PopsPromptDefaultConfig = () => {
|
|
|
11713
11771
|
lightStyle: null,
|
|
11714
11772
|
darkStyle: null,
|
|
11715
11773
|
beforeAppendToPageCallBack() { },
|
|
11774
|
+
stopKeyDownEventPropagation: true,
|
|
11716
11775
|
};
|
|
11717
11776
|
};
|
|
11718
11777
|
|
|
@@ -13366,7 +13425,7 @@ const PopsSearchSuggestion = {
|
|
|
13366
13425
|
},
|
|
13367
13426
|
};
|
|
13368
13427
|
|
|
13369
|
-
const version = "3.3.
|
|
13428
|
+
const version = "3.3.5";
|
|
13370
13429
|
|
|
13371
13430
|
class Pops {
|
|
13372
13431
|
/** 配置 */
|