@whitesev/pops 2.3.5 → 2.3.7
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 +474 -431
- package/dist/index.amd.js.map +1 -1
- package/dist/index.cjs.js +474 -431
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +474 -431
- package/dist/index.esm.js.map +1 -1
- package/dist/index.iife.js +474 -431
- package/dist/index.iife.js.map +1 -1
- package/dist/index.system.js +474 -431
- package/dist/index.system.js.map +1 -1
- package/dist/index.umd.js +474 -431
- package/dist/index.umd.js.map +1 -1
- package/dist/types/src/PopsCore.d.ts +8 -0
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -180,9 +180,19 @@ const PopsCoreDefaultEnv = {
|
|
|
180
180
|
window: window,
|
|
181
181
|
globalThis: globalThis,
|
|
182
182
|
self: self,
|
|
183
|
+
setTimeout: globalThis.setTimeout.bind(globalThis),
|
|
184
|
+
setInterval: globalThis.setInterval.bind(globalThis),
|
|
185
|
+
clearTimeout: globalThis.clearTimeout.bind(globalThis),
|
|
186
|
+
clearInterval: globalThis.clearInterval.bind(globalThis),
|
|
183
187
|
};
|
|
184
188
|
const PopsCoreEnv = Object.assign({}, PopsCoreDefaultEnv);
|
|
185
189
|
const PopsCore = {
|
|
190
|
+
init(option) {
|
|
191
|
+
if (!option) {
|
|
192
|
+
option = Object.assign({}, PopsCoreDefaultEnv);
|
|
193
|
+
}
|
|
194
|
+
Object.assign(PopsCoreEnv, option);
|
|
195
|
+
},
|
|
186
196
|
get document() {
|
|
187
197
|
return PopsCoreEnv.document;
|
|
188
198
|
},
|
|
@@ -195,6 +205,18 @@ const PopsCore = {
|
|
|
195
205
|
get self() {
|
|
196
206
|
return PopsCoreEnv.self;
|
|
197
207
|
},
|
|
208
|
+
get setTimeout() {
|
|
209
|
+
return PopsCoreEnv.setTimeout;
|
|
210
|
+
},
|
|
211
|
+
get setInterval() {
|
|
212
|
+
return PopsCoreEnv.setInterval;
|
|
213
|
+
},
|
|
214
|
+
get clearTimeout() {
|
|
215
|
+
return PopsCoreEnv.clearTimeout;
|
|
216
|
+
},
|
|
217
|
+
get clearInterval() {
|
|
218
|
+
return PopsCoreEnv.clearInterval;
|
|
219
|
+
},
|
|
198
220
|
};
|
|
199
221
|
const OriginPrototype = {
|
|
200
222
|
Object: {
|
|
@@ -713,7 +735,7 @@ class PopsUtils {
|
|
|
713
735
|
return setTimeout$1(callback, timeout);
|
|
714
736
|
}
|
|
715
737
|
catch (error) {
|
|
716
|
-
return
|
|
738
|
+
return PopsCore.setTimeout(callback, timeout);
|
|
717
739
|
}
|
|
718
740
|
}
|
|
719
741
|
/**
|
|
@@ -728,7 +750,7 @@ class PopsUtils {
|
|
|
728
750
|
catch (error) {
|
|
729
751
|
}
|
|
730
752
|
finally {
|
|
731
|
-
|
|
753
|
+
PopsCore.clearTimeout(timeId);
|
|
732
754
|
}
|
|
733
755
|
}
|
|
734
756
|
/**
|
|
@@ -739,7 +761,7 @@ class PopsUtils {
|
|
|
739
761
|
return setInterval$1(callback, timeout);
|
|
740
762
|
}
|
|
741
763
|
catch (error) {
|
|
742
|
-
return
|
|
764
|
+
return PopsCore.setInterval(callback, timeout);
|
|
743
765
|
}
|
|
744
766
|
}
|
|
745
767
|
/**
|
|
@@ -754,7 +776,7 @@ class PopsUtils {
|
|
|
754
776
|
catch (error) {
|
|
755
777
|
}
|
|
756
778
|
finally {
|
|
757
|
-
|
|
779
|
+
PopsCore.clearInterval(timeId);
|
|
758
780
|
}
|
|
759
781
|
}
|
|
760
782
|
}
|
|
@@ -1130,6 +1152,7 @@ class PopsDOMUtilsEvent {
|
|
|
1130
1152
|
* })
|
|
1131
1153
|
*/
|
|
1132
1154
|
ready(callback) {
|
|
1155
|
+
const that = this;
|
|
1133
1156
|
if (typeof callback !== "function") {
|
|
1134
1157
|
return;
|
|
1135
1158
|
}
|
|
@@ -1175,7 +1198,7 @@ class PopsDOMUtilsEvent {
|
|
|
1175
1198
|
function addDomReadyListener() {
|
|
1176
1199
|
for (let index = 0; index < targetList.length; index++) {
|
|
1177
1200
|
let item = targetList[index];
|
|
1178
|
-
item.target
|
|
1201
|
+
that.on(item.target, item.eventType, item.callback);
|
|
1179
1202
|
}
|
|
1180
1203
|
}
|
|
1181
1204
|
/**
|
|
@@ -1184,7 +1207,7 @@ class PopsDOMUtilsEvent {
|
|
|
1184
1207
|
function removeDomReadyListener() {
|
|
1185
1208
|
for (let index = 0; index < targetList.length; index++) {
|
|
1186
1209
|
let item = targetList[index];
|
|
1187
|
-
item.target
|
|
1210
|
+
that.off(item.target, item.eventType, item.callback);
|
|
1188
1211
|
}
|
|
1189
1212
|
}
|
|
1190
1213
|
if (checkDOMReadyState()) {
|
|
@@ -1466,9 +1489,7 @@ class PopsDOMUtilsEvent {
|
|
|
1466
1489
|
eventNameList = [eventNameList];
|
|
1467
1490
|
}
|
|
1468
1491
|
eventNameList.forEach((eventName) => {
|
|
1469
|
-
|
|
1470
|
-
capture: Boolean(capture),
|
|
1471
|
-
});
|
|
1492
|
+
this.on(element, eventName, stopEvent, { capture: Boolean(capture) });
|
|
1472
1493
|
});
|
|
1473
1494
|
}
|
|
1474
1495
|
}
|
|
@@ -5117,57 +5138,101 @@ const PopsFolder = {
|
|
|
5117
5138
|
if ($mask != null) {
|
|
5118
5139
|
$anim.after($mask);
|
|
5119
5140
|
}
|
|
5120
|
-
|
|
5121
|
-
|
|
5122
|
-
|
|
5123
|
-
|
|
5124
|
-
|
|
5125
|
-
|
|
5126
|
-
|
|
5127
|
-
|
|
5128
|
-
|
|
5129
|
-
|
|
5130
|
-
|
|
5131
|
-
|
|
5132
|
-
|
|
5133
|
-
|
|
5134
|
-
|
|
5135
|
-
|
|
5136
|
-
|
|
5137
|
-
|
|
5138
|
-
|
|
5139
|
-
|
|
5140
|
-
|
|
5141
|
-
|
|
5142
|
-
|
|
5143
|
-
|
|
5144
|
-
|
|
5145
|
-
|
|
5146
|
-
|
|
5147
|
-
|
|
5148
|
-
|
|
5149
|
-
|
|
5150
|
-
if (
|
|
5151
|
-
|
|
5152
|
-
|
|
5153
|
-
|
|
5154
|
-
if (fileName.toLowerCase().endsWith("." + keyName)) {
|
|
5155
|
-
fileType = keyName;
|
|
5156
|
-
fileIcon = Folder_ICON[keyName];
|
|
5157
|
-
break;
|
|
5158
|
-
}
|
|
5141
|
+
class PopsFolder {
|
|
5142
|
+
init() {
|
|
5143
|
+
config.folder.sort();
|
|
5144
|
+
this.initFolderView(config.folder);
|
|
5145
|
+
/* 将数据存到全部文件的属性_config_中 */
|
|
5146
|
+
let allFilesElement = folderFileListBreadcrumbPrimaryElement.querySelector(".pops-folder-list .pops-folder-file-list-breadcrumb-allFiles:first-child");
|
|
5147
|
+
Reflect.set(allFilesElement, "_config_", config.folder);
|
|
5148
|
+
/* 设置点击顶部的全部文件事件 */
|
|
5149
|
+
popsDOMUtils.on(allFilesElement, "click", (event) => {
|
|
5150
|
+
this.setBreadcrumbClickEvent(event, true, config.folder);
|
|
5151
|
+
});
|
|
5152
|
+
// 文件名的点击排序
|
|
5153
|
+
popsDOMUtils.on(folderListSortFileNameElement.closest("th"), "click", (event) => {
|
|
5154
|
+
this.arrowToSortFolderInfoView(folderListSortFileNameElement, event, "fileName");
|
|
5155
|
+
}, {
|
|
5156
|
+
capture: true,
|
|
5157
|
+
});
|
|
5158
|
+
// 修改事件的点击排序
|
|
5159
|
+
popsDOMUtils.on(folderListSortLatestTimeElement.closest("th"), "click", (event) => {
|
|
5160
|
+
this.arrowToSortFolderInfoView(folderListSortLatestTimeElement, event, "latestTime");
|
|
5161
|
+
}, {
|
|
5162
|
+
capture: true,
|
|
5163
|
+
});
|
|
5164
|
+
// 文件大小的点击排序
|
|
5165
|
+
popsDOMUtils.on(folderListSortFileSizeElement.closest("th"), "click", (event) => {
|
|
5166
|
+
this.arrowToSortFolderInfoView(folderListSortFileSizeElement, event, "fileSize");
|
|
5167
|
+
}, {
|
|
5168
|
+
capture: true,
|
|
5169
|
+
});
|
|
5170
|
+
/* 设置默认触发的arrow */
|
|
5171
|
+
if (config.sort.name === "fileName") {
|
|
5172
|
+
popsDOMUtils.trigger(folderListSortFileNameElement, "click", {
|
|
5173
|
+
notChangeSortRule: true,
|
|
5174
|
+
});
|
|
5159
5175
|
}
|
|
5160
|
-
if (
|
|
5161
|
-
|
|
5162
|
-
|
|
5176
|
+
else if (config.sort.name === "latestTime") {
|
|
5177
|
+
popsDOMUtils.trigger(folderListSortLatestTimeElement, "click", {
|
|
5178
|
+
notChangeSortRule: true,
|
|
5179
|
+
});
|
|
5180
|
+
}
|
|
5181
|
+
else if (config.sort.name === "fileSize") {
|
|
5182
|
+
popsDOMUtils.trigger(folderListSortFileSizeElement, "click", {
|
|
5183
|
+
notChangeSortRule: true,
|
|
5184
|
+
});
|
|
5163
5185
|
}
|
|
5164
5186
|
}
|
|
5165
|
-
|
|
5166
|
-
|
|
5167
|
-
|
|
5168
|
-
|
|
5169
|
-
|
|
5170
|
-
|
|
5187
|
+
/**
|
|
5188
|
+
* 创建文件夹元素
|
|
5189
|
+
* @param fileName 文件名
|
|
5190
|
+
* @param latestTime 修改时间
|
|
5191
|
+
* @param [fileSize="-"] 文件大小
|
|
5192
|
+
* @param isFolder 是否是文件夹
|
|
5193
|
+
*/
|
|
5194
|
+
createFolderRowElement(fileName, latestTime = "-", fileSize = "-", isFolder = false) {
|
|
5195
|
+
let origin_fileName = fileName;
|
|
5196
|
+
let origin_latestTime = latestTime;
|
|
5197
|
+
let origin_fileSize = fileSize;
|
|
5198
|
+
let folderElement = popsDOMUtils.createElement("tr");
|
|
5199
|
+
let fileNameElement = popsDOMUtils.createElement("td");
|
|
5200
|
+
let fileTimeElement = popsDOMUtils.createElement("td");
|
|
5201
|
+
let fileFormatSize = popsDOMUtils.createElement("td");
|
|
5202
|
+
let fileType = "";
|
|
5203
|
+
let fileIcon = Folder_ICON.folder;
|
|
5204
|
+
if (isFolder) {
|
|
5205
|
+
/* 文件夹 */
|
|
5206
|
+
latestTime = "";
|
|
5207
|
+
fileSize = "";
|
|
5208
|
+
}
|
|
5209
|
+
else {
|
|
5210
|
+
/* 文件 */
|
|
5211
|
+
fileIcon = "";
|
|
5212
|
+
if (typeof latestTime === "number") {
|
|
5213
|
+
latestTime = popsUtils.formatTime(latestTime);
|
|
5214
|
+
}
|
|
5215
|
+
if (typeof fileSize === "number") {
|
|
5216
|
+
fileSize = popsUtils.formatByteToSize(fileSize);
|
|
5217
|
+
}
|
|
5218
|
+
for (let keyName in Folder_ICON) {
|
|
5219
|
+
if (fileName.toLowerCase().endsWith("." + keyName)) {
|
|
5220
|
+
fileType = keyName;
|
|
5221
|
+
fileIcon = Folder_ICON[keyName];
|
|
5222
|
+
break;
|
|
5223
|
+
}
|
|
5224
|
+
}
|
|
5225
|
+
if (!Boolean(fileIcon)) {
|
|
5226
|
+
fileType = "Null";
|
|
5227
|
+
fileIcon = Folder_ICON.Null;
|
|
5228
|
+
}
|
|
5229
|
+
}
|
|
5230
|
+
folderElement.className = "pops-folder-list-table__body-row";
|
|
5231
|
+
fileNameElement.className = "pops-folder-list-table__body-td";
|
|
5232
|
+
fileTimeElement.className = "pops-folder-list-table__body-td";
|
|
5233
|
+
fileFormatSize.className = "pops-folder-list-table__body-td";
|
|
5234
|
+
PopsSafeUtils.setSafeHTML(fileNameElement,
|
|
5235
|
+
/*html*/ `
|
|
5171
5236
|
<div class="pops-folder-list-file-name cursor-p">
|
|
5172
5237
|
<div>
|
|
5173
5238
|
<img src="${fileIcon}" alt="${fileType}" class="pops-folder-list-file-icon u-file-icon u-file-icon--list">
|
|
@@ -5177,80 +5242,84 @@ const PopsFolder = {
|
|
|
5177
5242
|
</div>
|
|
5178
5243
|
</div>
|
|
5179
5244
|
`);
|
|
5180
|
-
|
|
5181
|
-
|
|
5245
|
+
PopsSafeUtils.setSafeHTML(fileTimeElement,
|
|
5246
|
+
/*html*/ `
|
|
5182
5247
|
<div class="pops-folder-list__time">
|
|
5183
5248
|
<span>${latestTime}</span>
|
|
5184
5249
|
</div>
|
|
5185
5250
|
`);
|
|
5186
|
-
|
|
5187
|
-
|
|
5251
|
+
PopsSafeUtils.setSafeHTML(fileFormatSize,
|
|
5252
|
+
/*html*/ `
|
|
5188
5253
|
<div class="pops-folder-list-format-size">
|
|
5189
5254
|
<span>${fileSize}</span>
|
|
5190
5255
|
</div>
|
|
5191
5256
|
`);
|
|
5192
|
-
|
|
5193
|
-
|
|
5194
|
-
|
|
5195
|
-
|
|
5196
|
-
|
|
5197
|
-
|
|
5198
|
-
|
|
5199
|
-
|
|
5200
|
-
|
|
5201
|
-
|
|
5202
|
-
|
|
5203
|
-
|
|
5204
|
-
|
|
5205
|
-
|
|
5206
|
-
|
|
5207
|
-
|
|
5208
|
-
|
|
5209
|
-
|
|
5210
|
-
|
|
5211
|
-
|
|
5212
|
-
}
|
|
5213
|
-
/**
|
|
5214
|
-
* 创建移动端文件夹元素
|
|
5215
|
-
*/
|
|
5216
|
-
function createMobileFolderRowElement(fileName, latestTime = "-", fileSize = "-", isFolder = false) {
|
|
5217
|
-
let origin_fileName = fileName;
|
|
5218
|
-
let origin_latestTime = latestTime;
|
|
5219
|
-
let origin_fileSize = fileSize;
|
|
5220
|
-
let folderELement = popsDOMUtils.createElement("tr");
|
|
5221
|
-
let fileNameElement = popsDOMUtils.createElement("td");
|
|
5222
|
-
let fileType = "";
|
|
5223
|
-
let fileIcon = Folder_ICON.folder;
|
|
5224
|
-
if (isFolder) {
|
|
5225
|
-
/* 文件夹 */
|
|
5226
|
-
latestTime = "";
|
|
5227
|
-
fileSize = "";
|
|
5257
|
+
/* 存储原来的值 */
|
|
5258
|
+
let __value__ = {
|
|
5259
|
+
fileName: origin_fileName,
|
|
5260
|
+
latestTime: origin_latestTime,
|
|
5261
|
+
fileSize: origin_fileSize,
|
|
5262
|
+
isFolder: isFolder,
|
|
5263
|
+
};
|
|
5264
|
+
Reflect.set(fileNameElement, "__value__", __value__);
|
|
5265
|
+
Reflect.set(fileTimeElement, "__value__", __value__);
|
|
5266
|
+
Reflect.set(fileFormatSize, "__value__", __value__);
|
|
5267
|
+
Reflect.set(folderElement, "__value__", __value__);
|
|
5268
|
+
folderElement.appendChild(fileNameElement);
|
|
5269
|
+
folderElement.appendChild(fileTimeElement);
|
|
5270
|
+
folderElement.appendChild(fileFormatSize);
|
|
5271
|
+
return {
|
|
5272
|
+
folderElement,
|
|
5273
|
+
fileNameElement,
|
|
5274
|
+
fileTimeElement,
|
|
5275
|
+
fileFormatSize,
|
|
5276
|
+
};
|
|
5228
5277
|
}
|
|
5229
|
-
|
|
5230
|
-
|
|
5231
|
-
|
|
5232
|
-
|
|
5233
|
-
|
|
5234
|
-
|
|
5235
|
-
|
|
5236
|
-
|
|
5237
|
-
|
|
5238
|
-
|
|
5239
|
-
|
|
5240
|
-
|
|
5241
|
-
|
|
5242
|
-
|
|
5243
|
-
|
|
5278
|
+
/**
|
|
5279
|
+
* 创建移动端文件夹元素
|
|
5280
|
+
* @param fileName 文件名
|
|
5281
|
+
* @param latestTime 创建时间
|
|
5282
|
+
* @param [fileSize="-"] 文件大小
|
|
5283
|
+
* @param isFolder 是否是文件夹
|
|
5284
|
+
*/
|
|
5285
|
+
createFolderRowElementByMobile(fileName, latestTime = "-", fileSize = "-", isFolder = false) {
|
|
5286
|
+
let origin_fileName = fileName;
|
|
5287
|
+
let origin_latestTime = latestTime;
|
|
5288
|
+
let origin_fileSize = fileSize;
|
|
5289
|
+
let folderElement = popsDOMUtils.createElement("tr");
|
|
5290
|
+
let fileNameElement = popsDOMUtils.createElement("td");
|
|
5291
|
+
let fileType = "";
|
|
5292
|
+
let fileIcon = Folder_ICON.folder;
|
|
5293
|
+
if (isFolder) {
|
|
5294
|
+
/* 文件夹 */
|
|
5295
|
+
latestTime = "";
|
|
5296
|
+
fileSize = "";
|
|
5244
5297
|
}
|
|
5245
|
-
|
|
5246
|
-
|
|
5247
|
-
fileIcon =
|
|
5298
|
+
else {
|
|
5299
|
+
/* 文件 */
|
|
5300
|
+
fileIcon = "";
|
|
5301
|
+
if (typeof latestTime === "number") {
|
|
5302
|
+
latestTime = popsUtils.formatTime(latestTime);
|
|
5303
|
+
}
|
|
5304
|
+
if (typeof fileSize === "number") {
|
|
5305
|
+
fileSize = popsUtils.formatByteToSize(fileSize);
|
|
5306
|
+
}
|
|
5307
|
+
for (let keyName in Folder_ICON) {
|
|
5308
|
+
if (fileName.toLowerCase().endsWith("." + keyName)) {
|
|
5309
|
+
fileType = keyName;
|
|
5310
|
+
fileIcon = Folder_ICON[keyName];
|
|
5311
|
+
break;
|
|
5312
|
+
}
|
|
5313
|
+
}
|
|
5314
|
+
if (!Boolean(fileIcon)) {
|
|
5315
|
+
fileType = "Null";
|
|
5316
|
+
fileIcon = Folder_ICON.Null;
|
|
5317
|
+
}
|
|
5248
5318
|
}
|
|
5249
|
-
|
|
5250
|
-
|
|
5251
|
-
|
|
5252
|
-
|
|
5253
|
-
/*html*/ `
|
|
5319
|
+
folderElement.className = "pops-folder-list-table__body-row";
|
|
5320
|
+
fileNameElement.className = "pops-folder-list-table__body-td";
|
|
5321
|
+
PopsSafeUtils.setSafeHTML(fileNameElement,
|
|
5322
|
+
/*html*/ `
|
|
5254
5323
|
<div class="pops-folder-list-file-name pops-mobile-folder-list-file-name cursor-p">
|
|
5255
5324
|
<img src="${fileIcon}" alt="${fileType}" class="pops-folder-list-file-icon u-file-icon u-file-icon--list">
|
|
5256
5325
|
<div>
|
|
@@ -5259,139 +5328,138 @@ const PopsFolder = {
|
|
|
5259
5328
|
</div>
|
|
5260
5329
|
</div>
|
|
5261
5330
|
`);
|
|
5262
|
-
|
|
5263
|
-
|
|
5264
|
-
|
|
5265
|
-
|
|
5266
|
-
|
|
5267
|
-
|
|
5268
|
-
|
|
5269
|
-
|
|
5270
|
-
|
|
5271
|
-
|
|
5272
|
-
|
|
5273
|
-
|
|
5274
|
-
|
|
5275
|
-
|
|
5276
|
-
|
|
5277
|
-
|
|
5278
|
-
|
|
5279
|
-
|
|
5280
|
-
|
|
5281
|
-
|
|
5282
|
-
|
|
5283
|
-
|
|
5284
|
-
|
|
5285
|
-
|
|
5286
|
-
|
|
5287
|
-
|
|
5288
|
-
|
|
5289
|
-
|
|
5290
|
-
|
|
5291
|
-
|
|
5292
|
-
|
|
5293
|
-
|
|
5294
|
-
|
|
5295
|
-
|
|
5296
|
-
|
|
5297
|
-
|
|
5298
|
-
|
|
5299
|
-
|
|
5300
|
-
|
|
5301
|
-
|
|
5302
|
-
|
|
5303
|
-
|
|
5304
|
-
|
|
5305
|
-
|
|
5306
|
-
|
|
5307
|
-
|
|
5308
|
-
|
|
5309
|
-
|
|
5310
|
-
|
|
5311
|
-
|
|
5312
|
-
|
|
5313
|
-
|
|
5314
|
-
|
|
5315
|
-
|
|
5316
|
-
|
|
5317
|
-
|
|
5318
|
-
|
|
5319
|
-
|
|
5320
|
-
|
|
5331
|
+
/* 存储原来的值 */
|
|
5332
|
+
let __value__ = {
|
|
5333
|
+
fileName: origin_fileName,
|
|
5334
|
+
latestTime: origin_latestTime,
|
|
5335
|
+
fileSize: origin_fileSize,
|
|
5336
|
+
isFolder: isFolder,
|
|
5337
|
+
};
|
|
5338
|
+
Reflect.set(fileNameElement, "__value__", __value__);
|
|
5339
|
+
Reflect.set(folderElement, "__value__", __value__);
|
|
5340
|
+
folderElement.appendChild(fileNameElement);
|
|
5341
|
+
return {
|
|
5342
|
+
folderElement,
|
|
5343
|
+
fileNameElement,
|
|
5344
|
+
};
|
|
5345
|
+
}
|
|
5346
|
+
/**
|
|
5347
|
+
* 清空文件夹信息页面
|
|
5348
|
+
*/
|
|
5349
|
+
clearFolderInfoView() {
|
|
5350
|
+
PopsSafeUtils.setSafeHTML(folderListBodyElement, "");
|
|
5351
|
+
}
|
|
5352
|
+
/**
|
|
5353
|
+
* 创建顶部导航的箭头图标
|
|
5354
|
+
*/
|
|
5355
|
+
createHeaderArrowIcon() {
|
|
5356
|
+
let $arrowIcon = popsDOMUtils.createElement("div", {
|
|
5357
|
+
className: "iconArrow",
|
|
5358
|
+
});
|
|
5359
|
+
return $arrowIcon;
|
|
5360
|
+
}
|
|
5361
|
+
/**
|
|
5362
|
+
* 添加顶部导航元素
|
|
5363
|
+
* @param folderName 文件夹名
|
|
5364
|
+
* @param folderDataConfig 文件夹配置
|
|
5365
|
+
*/
|
|
5366
|
+
createBreadcrumb(folderName, folderDataConfig) {
|
|
5367
|
+
let $breadcrumb = popsDOMUtils.createElement("span", {
|
|
5368
|
+
className: "pops-folder-file-list-breadcrumb-allFiles cursor-p",
|
|
5369
|
+
innerHTML: `<a>${folderName}</a>`,
|
|
5370
|
+
_config_: folderDataConfig,
|
|
5371
|
+
}, {
|
|
5372
|
+
title: folderName,
|
|
5373
|
+
});
|
|
5374
|
+
return $breadcrumb;
|
|
5375
|
+
}
|
|
5376
|
+
/**
|
|
5377
|
+
* 顶部导航的点击事件
|
|
5378
|
+
* @param clickEvent
|
|
5379
|
+
* @param isTop 是否是全部文件按钮
|
|
5380
|
+
* @param dataConfigList 配置
|
|
5381
|
+
*/
|
|
5382
|
+
setBreadcrumbClickEvent(clickEvent, isTop, dataConfigList) {
|
|
5383
|
+
this.clearFolderInfoView();
|
|
5384
|
+
/* 获取当前的导航元素 */
|
|
5385
|
+
let $click = clickEvent.target;
|
|
5386
|
+
let currentBreadcrumb = $click.closest("span.pops-folder-file-list-breadcrumb-allFiles");
|
|
5387
|
+
if (currentBreadcrumb) {
|
|
5388
|
+
while (currentBreadcrumb.nextElementSibling) {
|
|
5389
|
+
currentBreadcrumb.nextElementSibling.remove();
|
|
5390
|
+
}
|
|
5391
|
+
}
|
|
5392
|
+
else {
|
|
5393
|
+
console.error("获取导航按钮失败");
|
|
5321
5394
|
}
|
|
5395
|
+
let loadingMask = PopsLoading.init({
|
|
5396
|
+
parent: $content,
|
|
5397
|
+
content: {
|
|
5398
|
+
text: "获取文件列表中...",
|
|
5399
|
+
},
|
|
5400
|
+
mask: {
|
|
5401
|
+
enable: true,
|
|
5402
|
+
clickEvent: {
|
|
5403
|
+
toClose: false,
|
|
5404
|
+
toHide: false,
|
|
5405
|
+
},
|
|
5406
|
+
},
|
|
5407
|
+
addIndexCSS: false,
|
|
5408
|
+
});
|
|
5409
|
+
this.initFolderView(dataConfigList);
|
|
5410
|
+
loadingMask.close();
|
|
5322
5411
|
}
|
|
5323
|
-
|
|
5324
|
-
|
|
5325
|
-
|
|
5326
|
-
|
|
5327
|
-
|
|
5328
|
-
|
|
5329
|
-
|
|
5330
|
-
|
|
5331
|
-
|
|
5332
|
-
|
|
5333
|
-
|
|
5334
|
-
|
|
5335
|
-
|
|
5412
|
+
/**
|
|
5413
|
+
* 文件夹的点击事件 - 进入文件夹
|
|
5414
|
+
*
|
|
5415
|
+
* 先情况页面元素
|
|
5416
|
+
* @param clickEvent
|
|
5417
|
+
* @param dataConfig
|
|
5418
|
+
*/
|
|
5419
|
+
async enterFolder(clickEvent, dataConfig) {
|
|
5420
|
+
this.clearFolderInfoView();
|
|
5421
|
+
let loadingMask = PopsLoading.init({
|
|
5422
|
+
parent: $content,
|
|
5423
|
+
content: {
|
|
5424
|
+
text: "获取文件列表中...",
|
|
5336
5425
|
},
|
|
5337
|
-
|
|
5338
|
-
|
|
5339
|
-
|
|
5340
|
-
|
|
5341
|
-
loadingMask.close();
|
|
5342
|
-
}
|
|
5343
|
-
/**
|
|
5344
|
-
* 刷新文件列表界面信息
|
|
5345
|
-
* @param event
|
|
5346
|
-
* @param folderDataConfig
|
|
5347
|
-
*/
|
|
5348
|
-
async function refreshFolderInfoClickEvent(event, folderDataConfig) {
|
|
5349
|
-
clearFolderRow();
|
|
5350
|
-
let loadingMask = PopsLoading.init({
|
|
5351
|
-
parent: $content,
|
|
5352
|
-
content: {
|
|
5353
|
-
text: "获取文件列表中...",
|
|
5354
|
-
},
|
|
5355
|
-
mask: {
|
|
5356
|
-
enable: true,
|
|
5357
|
-
},
|
|
5358
|
-
addIndexCSS: false,
|
|
5359
|
-
});
|
|
5360
|
-
if (typeof folderDataConfig.clickEvent === "function") {
|
|
5361
|
-
let childConfig = await folderDataConfig.clickEvent(event, folderDataConfig);
|
|
5362
|
-
/* 添加顶部导航的箭头 */
|
|
5363
|
-
folderFileListBreadcrumbPrimaryElement.appendChild(createHeaderArrowIcon());
|
|
5364
|
-
/* 添加顶部导航的链接文字 */
|
|
5365
|
-
let breadcrumbAllFilesElement = createHeaderFileLinkNavgiation(folderDataConfig.fileName, childConfig);
|
|
5366
|
-
folderFileListBreadcrumbPrimaryElement.appendChild(breadcrumbAllFilesElement);
|
|
5367
|
-
/* 设置顶部导航点击事件 */
|
|
5368
|
-
popsDOMUtils.on(breadcrumbAllFilesElement, "click", function (event) {
|
|
5369
|
-
breadcrumbAllFilesElementClickEvent(event, false, childConfig);
|
|
5426
|
+
mask: {
|
|
5427
|
+
enable: true,
|
|
5428
|
+
},
|
|
5429
|
+
addIndexCSS: false,
|
|
5370
5430
|
});
|
|
5371
|
-
|
|
5431
|
+
if (typeof dataConfig.clickEvent === "function") {
|
|
5432
|
+
let childConfig = await dataConfig.clickEvent(clickEvent, dataConfig);
|
|
5433
|
+
/* 添加顶部导航的箭头 */
|
|
5434
|
+
folderFileListBreadcrumbPrimaryElement.appendChild(this.createHeaderArrowIcon());
|
|
5435
|
+
/* 添加顶部导航的链接文字 */
|
|
5436
|
+
let breadcrumbAllFilesElement = this.createBreadcrumb(dataConfig.fileName, childConfig);
|
|
5437
|
+
folderFileListBreadcrumbPrimaryElement.appendChild(breadcrumbAllFilesElement);
|
|
5438
|
+
/* 设置顶部导航点击事件 */
|
|
5439
|
+
popsDOMUtils.on(breadcrumbAllFilesElement, "click", (event) => {
|
|
5440
|
+
this.setBreadcrumbClickEvent(event, false, childConfig);
|
|
5441
|
+
});
|
|
5442
|
+
this.initFolderView(childConfig);
|
|
5443
|
+
}
|
|
5444
|
+
loadingMask.close();
|
|
5372
5445
|
}
|
|
5373
|
-
|
|
5374
|
-
|
|
5375
|
-
|
|
5376
|
-
|
|
5377
|
-
|
|
5378
|
-
|
|
5379
|
-
|
|
5380
|
-
|
|
5381
|
-
|
|
5382
|
-
|
|
5383
|
-
event?.stopPropagation();
|
|
5384
|
-
event?.stopImmediatePropagation();
|
|
5385
|
-
let linkElement = targetElement.querySelector("a");
|
|
5386
|
-
if (typeof _config_.clickEvent === "function") {
|
|
5387
|
-
let downloadInfo = await _config_.clickEvent(event, _config_);
|
|
5446
|
+
/**
|
|
5447
|
+
* 文件的点击事件 - 下载文件
|
|
5448
|
+
* @param $target
|
|
5449
|
+
* @param dataConfig
|
|
5450
|
+
*/
|
|
5451
|
+
async downloadFile(clickEvent, $row, dataConfig) {
|
|
5452
|
+
popsDOMUtils.preventEvent(clickEvent);
|
|
5453
|
+
let $link = $row.querySelector("a");
|
|
5454
|
+
if (typeof dataConfig.clickEvent === "function") {
|
|
5455
|
+
let downloadInfo = await dataConfig.clickEvent(clickEvent, dataConfig);
|
|
5388
5456
|
if (downloadInfo != null &&
|
|
5389
5457
|
typeof downloadInfo === "object" &&
|
|
5390
5458
|
!Array.isArray(downloadInfo) &&
|
|
5391
5459
|
typeof downloadInfo.url === "string" &&
|
|
5392
5460
|
downloadInfo.url.trim() !== "") {
|
|
5393
|
-
|
|
5394
|
-
|
|
5461
|
+
$link.setAttribute("href", downloadInfo.url);
|
|
5462
|
+
$link.setAttribute("target", "_blank");
|
|
5395
5463
|
if (downloadInfo.autoDownload) {
|
|
5396
5464
|
if (downloadInfo.mode == null || downloadInfo.mode === "") {
|
|
5397
5465
|
/* 未设置mode的话默认为aBlank */
|
|
@@ -5435,215 +5503,190 @@ const PopsFolder = {
|
|
|
5435
5503
|
}
|
|
5436
5504
|
}
|
|
5437
5505
|
}
|
|
5438
|
-
}
|
|
5439
|
-
|
|
5440
|
-
|
|
5441
|
-
|
|
5442
|
-
|
|
5443
|
-
|
|
5444
|
-
|
|
5445
|
-
|
|
5446
|
-
|
|
5447
|
-
|
|
5448
|
-
|
|
5449
|
-
|
|
5450
|
-
|
|
5451
|
-
|
|
5452
|
-
|
|
5453
|
-
|
|
5454
|
-
|
|
5455
|
-
|
|
5456
|
-
|
|
5457
|
-
|
|
5458
|
-
|
|
5459
|
-
|
|
5460
|
-
|
|
5461
|
-
|
|
5462
|
-
|
|
5463
|
-
|
|
5506
|
+
}
|
|
5507
|
+
/**
|
|
5508
|
+
* 对配置进行排序
|
|
5509
|
+
* @param folderDataConfigList
|
|
5510
|
+
* @param sortName 比较的属性,默认fileName
|
|
5511
|
+
* @param isDesc 是否降序,默认false(升序)
|
|
5512
|
+
*/
|
|
5513
|
+
sortFolderConfig(folderDataConfigList, sortName = "fileName", isDesc = false) {
|
|
5514
|
+
if (sortName === "fileName") {
|
|
5515
|
+
// 如果是以文件名排序,文件夹优先放前面
|
|
5516
|
+
let onlyFolderDataConfigList = folderDataConfigList.filter((value) => {
|
|
5517
|
+
return value.isFolder;
|
|
5518
|
+
});
|
|
5519
|
+
let onlyFileDataConfigList = folderDataConfigList.filter((value) => {
|
|
5520
|
+
return !value.isFolder;
|
|
5521
|
+
});
|
|
5522
|
+
// 文件夹排序
|
|
5523
|
+
onlyFolderDataConfigList.sort((leftConfig, rightConfig) => {
|
|
5524
|
+
let beforeVal = leftConfig[sortName].toString();
|
|
5525
|
+
let afterVal = rightConfig[sortName].toString();
|
|
5526
|
+
let compareVal = beforeVal.localeCompare(afterVal);
|
|
5527
|
+
if (isDesc) {
|
|
5528
|
+
/* 降序 */
|
|
5529
|
+
if (compareVal > 0) {
|
|
5530
|
+
compareVal = -1;
|
|
5531
|
+
}
|
|
5532
|
+
else if (compareVal < 0) {
|
|
5533
|
+
compareVal = 1;
|
|
5534
|
+
}
|
|
5464
5535
|
}
|
|
5465
|
-
|
|
5466
|
-
|
|
5536
|
+
return compareVal;
|
|
5537
|
+
});
|
|
5538
|
+
// 文件名排序
|
|
5539
|
+
onlyFileDataConfigList.sort((leftConfig, rightConfig) => {
|
|
5540
|
+
let beforeVal = leftConfig[sortName].toString();
|
|
5541
|
+
let afterVal = rightConfig[sortName].toString();
|
|
5542
|
+
let compareVal = beforeVal.localeCompare(afterVal);
|
|
5543
|
+
if (isDesc) {
|
|
5544
|
+
/* 降序 */
|
|
5545
|
+
if (compareVal > 0) {
|
|
5546
|
+
compareVal = -1;
|
|
5547
|
+
}
|
|
5548
|
+
else if (compareVal < 0) {
|
|
5549
|
+
compareVal = 1;
|
|
5550
|
+
}
|
|
5467
5551
|
}
|
|
5468
|
-
|
|
5469
|
-
|
|
5470
|
-
});
|
|
5471
|
-
// 文件名排序
|
|
5472
|
-
onlyFileDataConfigList.sort((leftConfig, rightConfig) => {
|
|
5473
|
-
let beforeVal = leftConfig[sortName].toString();
|
|
5474
|
-
let afterVal = rightConfig[sortName].toString();
|
|
5475
|
-
let compareVal = beforeVal.localeCompare(afterVal);
|
|
5552
|
+
return compareVal;
|
|
5553
|
+
});
|
|
5476
5554
|
if (isDesc) {
|
|
5477
|
-
|
|
5478
|
-
|
|
5479
|
-
|
|
5480
|
-
|
|
5481
|
-
|
|
5482
|
-
|
|
5483
|
-
}
|
|
5555
|
+
// 降序,文件夹在下面
|
|
5556
|
+
return [...onlyFileDataConfigList, ...onlyFolderDataConfigList];
|
|
5557
|
+
}
|
|
5558
|
+
else {
|
|
5559
|
+
// 升序,文件夹在上面
|
|
5560
|
+
return [...onlyFolderDataConfigList, ...onlyFileDataConfigList];
|
|
5484
5561
|
}
|
|
5485
|
-
return compareVal;
|
|
5486
|
-
});
|
|
5487
|
-
if (isDesc) {
|
|
5488
|
-
// 降序,文件夹在下面
|
|
5489
|
-
return [...onlyFileDataConfigList, ...onlyFolderDataConfigList];
|
|
5490
5562
|
}
|
|
5491
5563
|
else {
|
|
5492
|
-
|
|
5493
|
-
|
|
5494
|
-
|
|
5495
|
-
|
|
5496
|
-
|
|
5497
|
-
|
|
5498
|
-
|
|
5499
|
-
let afterVal = afterConfig[sortName];
|
|
5500
|
-
if (sortName === "fileSize") {
|
|
5501
|
-
/* 文件大小,进行Float转换 */
|
|
5502
|
-
beforeVal = parseFloat(beforeVal.toString());
|
|
5503
|
-
afterVal = parseFloat(afterVal.toString());
|
|
5504
|
-
}
|
|
5505
|
-
else if (sortName === "latestTime") {
|
|
5506
|
-
/* 文件时间 */
|
|
5507
|
-
beforeVal = new Date(beforeVal).getTime();
|
|
5508
|
-
afterVal = new Date(afterVal).getTime();
|
|
5509
|
-
}
|
|
5510
|
-
if (beforeVal > afterVal) {
|
|
5511
|
-
if (isDesc) {
|
|
5512
|
-
/* 降序 */
|
|
5513
|
-
return -1;
|
|
5564
|
+
folderDataConfigList.sort((beforeConfig, afterConfig) => {
|
|
5565
|
+
let beforeVal = beforeConfig[sortName];
|
|
5566
|
+
let afterVal = afterConfig[sortName];
|
|
5567
|
+
if (sortName === "fileSize") {
|
|
5568
|
+
/* 文件大小,进行Float转换 */
|
|
5569
|
+
beforeVal = parseFloat(beforeVal.toString());
|
|
5570
|
+
afterVal = parseFloat(afterVal.toString());
|
|
5514
5571
|
}
|
|
5515
|
-
else {
|
|
5516
|
-
|
|
5572
|
+
else if (sortName === "latestTime") {
|
|
5573
|
+
/* 文件时间 */
|
|
5574
|
+
beforeVal = new Date(beforeVal).getTime();
|
|
5575
|
+
afterVal = new Date(afterVal).getTime();
|
|
5517
5576
|
}
|
|
5518
|
-
|
|
5519
|
-
|
|
5520
|
-
|
|
5521
|
-
|
|
5522
|
-
|
|
5577
|
+
if (beforeVal > afterVal) {
|
|
5578
|
+
if (isDesc) {
|
|
5579
|
+
/* 降序 */
|
|
5580
|
+
return -1;
|
|
5581
|
+
}
|
|
5582
|
+
else {
|
|
5583
|
+
return 1;
|
|
5584
|
+
}
|
|
5585
|
+
}
|
|
5586
|
+
else if (beforeVal < afterVal) {
|
|
5587
|
+
if (isDesc) {
|
|
5588
|
+
/* 降序 */
|
|
5589
|
+
return 1;
|
|
5590
|
+
}
|
|
5591
|
+
else {
|
|
5592
|
+
return -1;
|
|
5593
|
+
}
|
|
5523
5594
|
}
|
|
5524
5595
|
else {
|
|
5525
|
-
return
|
|
5596
|
+
return 0;
|
|
5526
5597
|
}
|
|
5598
|
+
});
|
|
5599
|
+
return folderDataConfigList;
|
|
5600
|
+
}
|
|
5601
|
+
}
|
|
5602
|
+
/**
|
|
5603
|
+
* 添加文件夹/文件行元素
|
|
5604
|
+
* @param dataConfig 配置
|
|
5605
|
+
*/
|
|
5606
|
+
initFolderView(dataConfig) {
|
|
5607
|
+
// 先对文件夹、文件进行排序
|
|
5608
|
+
this.sortFolderConfig(dataConfig, config.sort.name, config.sort.isDesc);
|
|
5609
|
+
dataConfig.forEach((item) => {
|
|
5610
|
+
if (item.isFolder) {
|
|
5611
|
+
let { folderElement, fileNameElement } = popsUtils.isPhone()
|
|
5612
|
+
? this.createFolderRowElementByMobile(item.fileName, "", "", true)
|
|
5613
|
+
: this.createFolderRowElement(item.fileName, "", "", true);
|
|
5614
|
+
// 文件夹 - 点击事件
|
|
5615
|
+
popsDOMUtils.on(fileNameElement, "click", (event) => {
|
|
5616
|
+
// 进入文件夹
|
|
5617
|
+
this.enterFolder(event, item);
|
|
5618
|
+
});
|
|
5619
|
+
folderListBodyElement.appendChild(folderElement);
|
|
5527
5620
|
}
|
|
5528
5621
|
else {
|
|
5529
|
-
|
|
5622
|
+
let { folderElement, fileNameElement } = popsUtils.isPhone()
|
|
5623
|
+
? this.createFolderRowElementByMobile(item.fileName, item.latestTime, item.fileSize, false)
|
|
5624
|
+
: this.createFolderRowElement(item.fileName, item.latestTime, item.fileSize, false);
|
|
5625
|
+
// 文件 - 点击事件
|
|
5626
|
+
popsDOMUtils.on(fileNameElement, "click", (event) => {
|
|
5627
|
+
// 下载文件
|
|
5628
|
+
this.downloadFile(event, fileNameElement, item);
|
|
5629
|
+
});
|
|
5630
|
+
folderListBodyElement.appendChild(folderElement);
|
|
5530
5631
|
}
|
|
5531
5632
|
});
|
|
5532
|
-
return folderDataConfigList;
|
|
5533
5633
|
}
|
|
5534
|
-
|
|
5535
|
-
|
|
5536
|
-
|
|
5537
|
-
|
|
5538
|
-
|
|
5539
|
-
|
|
5540
|
-
|
|
5541
|
-
|
|
5542
|
-
|
|
5543
|
-
|
|
5544
|
-
|
|
5545
|
-
|
|
5546
|
-
|
|
5547
|
-
|
|
5548
|
-
|
|
5549
|
-
|
|
5634
|
+
/**
|
|
5635
|
+
* 移除所有箭头的被访问状态
|
|
5636
|
+
*/
|
|
5637
|
+
removeArrowActiveStatus() {
|
|
5638
|
+
[
|
|
5639
|
+
...Array.from(folderListSortFileNameElement.querySelectorAll(".pops-folder-icon-active")),
|
|
5640
|
+
...Array.from(folderListSortLatestTimeElement.querySelectorAll(".pops-folder-icon-active")),
|
|
5641
|
+
...Array.from(folderListSortFileSizeElement.querySelectorAll(".pops-folder-icon-active")),
|
|
5642
|
+
].forEach((ele) => ele.classList.remove("pops-folder-icon-active"));
|
|
5643
|
+
}
|
|
5644
|
+
/**
|
|
5645
|
+
* 修改导航箭头的状态
|
|
5646
|
+
*/
|
|
5647
|
+
changeArrowActive(arrowUp, arrowDown, isDesc) {
|
|
5648
|
+
this.removeArrowActiveStatus();
|
|
5649
|
+
if (isDesc) {
|
|
5650
|
+
arrowDown.classList.add("pops-folder-icon-active");
|
|
5550
5651
|
}
|
|
5551
5652
|
else {
|
|
5552
|
-
|
|
5553
|
-
? createMobileFolderRowElement(item["fileName"], item.latestTime, item.fileSize, false)
|
|
5554
|
-
: createFolderRowElement(item["fileName"], item.latestTime, item.fileSize, false);
|
|
5555
|
-
setFileClickEvent(fileNameElement, item);
|
|
5556
|
-
folderListBodyElement.appendChild(folderELement);
|
|
5653
|
+
arrowUp.classList.add("pops-folder-icon-active");
|
|
5557
5654
|
}
|
|
5558
|
-
});
|
|
5559
|
-
}
|
|
5560
|
-
addFolderElement(config.folder);
|
|
5561
|
-
/* 将数据存到全部文件的属性_config_中 */
|
|
5562
|
-
let allFilesElement = folderFileListBreadcrumbPrimaryElement.querySelector(".pops-folder-list .pops-folder-file-list-breadcrumb-allFiles:first-child");
|
|
5563
|
-
allFilesElement._config_ = config.folder;
|
|
5564
|
-
/* 设置点击顶部的全部文件事件 */
|
|
5565
|
-
popsDOMUtils.on(allFilesElement, "click", (event) => {
|
|
5566
|
-
breadcrumbAllFilesElementClickEvent(event, true, config.folder);
|
|
5567
|
-
});
|
|
5568
|
-
/* 移除所有的当前排序的arrow */
|
|
5569
|
-
function removeAllArrowActive() {
|
|
5570
|
-
[
|
|
5571
|
-
...Array.from(folderListSortFileNameElement.querySelectorAll(".pops-folder-icon-active")),
|
|
5572
|
-
...Array.from(folderListSortLatestTimeElement.querySelectorAll(".pops-folder-icon-active")),
|
|
5573
|
-
...Array.from(folderListSortFileSizeElement.querySelectorAll(".pops-folder-icon-active")),
|
|
5574
|
-
].forEach((ele) => ele.classList.remove("pops-folder-icon-active"));
|
|
5575
|
-
}
|
|
5576
|
-
/* 设置当前的排序的arrow */
|
|
5577
|
-
function changeArrowActive(arrowUp, arrowDown, isDesc) {
|
|
5578
|
-
removeAllArrowActive();
|
|
5579
|
-
if (isDesc) {
|
|
5580
|
-
arrowDown.classList.add("pops-folder-icon-active");
|
|
5581
5655
|
}
|
|
5582
|
-
|
|
5583
|
-
|
|
5584
|
-
|
|
5585
|
-
|
|
5586
|
-
|
|
5587
|
-
|
|
5588
|
-
|
|
5589
|
-
|
|
5590
|
-
|
|
5591
|
-
|
|
5592
|
-
|
|
5593
|
-
|
|
5594
|
-
|
|
5595
|
-
|
|
5596
|
-
|
|
5597
|
-
|
|
5598
|
-
|
|
5599
|
-
|
|
5600
|
-
|
|
5601
|
-
|
|
5602
|
-
|
|
5656
|
+
/**
|
|
5657
|
+
* 排序按钮的点击事件
|
|
5658
|
+
* @param target
|
|
5659
|
+
* @param event
|
|
5660
|
+
* @param sortName
|
|
5661
|
+
*/
|
|
5662
|
+
arrowToSortFolderInfoView(target, event, sortName) {
|
|
5663
|
+
const notChangeSortRule = Reflect.get(event, "notChangeSortRule");
|
|
5664
|
+
if (!notChangeSortRule) {
|
|
5665
|
+
config.sort.name = sortName;
|
|
5666
|
+
config.sort.isDesc = !config.sort.isDesc;
|
|
5667
|
+
}
|
|
5668
|
+
let arrowUp = target.querySelector(".pops-folder-icon-arrow-up");
|
|
5669
|
+
let arrowDown = target.querySelector(".pops-folder-icon-arrow-down");
|
|
5670
|
+
this.changeArrowActive(arrowUp, arrowDown, config.sort.isDesc);
|
|
5671
|
+
if (typeof config.sort.callback === "function" &&
|
|
5672
|
+
config.sort.callback(target, event, config.sort.name, config.sort.isDesc)) {
|
|
5673
|
+
return;
|
|
5674
|
+
}
|
|
5675
|
+
let childrenList = [];
|
|
5676
|
+
Array.from(folderListBodyElement.children).forEach((trElement) => {
|
|
5677
|
+
let __value__ = Reflect.get(trElement, "__value__");
|
|
5678
|
+
Reflect.set(__value__, "target", trElement);
|
|
5679
|
+
childrenList.push(__value__);
|
|
5680
|
+
});
|
|
5681
|
+
let sortedConfigList = this.sortFolderConfig(childrenList, config.sort.name, config.sort.isDesc);
|
|
5682
|
+
sortedConfigList.forEach((item) => {
|
|
5683
|
+
folderListBodyElement.appendChild(item.target);
|
|
5684
|
+
});
|
|
5603
5685
|
}
|
|
5604
|
-
let childrenList = [];
|
|
5605
|
-
Array.from(folderListBodyElement.children).forEach((trElement) => {
|
|
5606
|
-
let __value__ = trElement["__value__"];
|
|
5607
|
-
__value__["target"] = trElement;
|
|
5608
|
-
childrenList.push(__value__);
|
|
5609
|
-
});
|
|
5610
|
-
let sortedConfigList = sortFolderConfig(childrenList, config.sort.name, config.sort.isDesc);
|
|
5611
|
-
sortedConfigList.forEach((item) => {
|
|
5612
|
-
folderListBodyElement.appendChild(item.target);
|
|
5613
|
-
});
|
|
5614
|
-
}
|
|
5615
|
-
/* 设置当前排序的图标按钮 */
|
|
5616
|
-
popsDOMUtils.on(folderListSortFileNameElement.closest("th"), "click", function (event) {
|
|
5617
|
-
arrowSortClickEvent(folderListSortFileNameElement, event, "fileName");
|
|
5618
|
-
}, {
|
|
5619
|
-
capture: true,
|
|
5620
|
-
});
|
|
5621
|
-
popsDOMUtils.on(folderListSortLatestTimeElement.closest("th"), "click", void 0, function (event) {
|
|
5622
|
-
arrowSortClickEvent(folderListSortLatestTimeElement, event, "latestTime");
|
|
5623
|
-
}, {
|
|
5624
|
-
capture: true,
|
|
5625
|
-
});
|
|
5626
|
-
popsDOMUtils.on(folderListSortFileSizeElement.closest("th"), "click", void 0, function (event) {
|
|
5627
|
-
arrowSortClickEvent(folderListSortFileSizeElement, event, "fileSize");
|
|
5628
|
-
}, {
|
|
5629
|
-
capture: true,
|
|
5630
|
-
});
|
|
5631
|
-
/* 设置默认触发的arrow */
|
|
5632
|
-
if (config.sort.name === "fileName") {
|
|
5633
|
-
popsDOMUtils.trigger(folderListSortFileNameElement, "click", {
|
|
5634
|
-
notChangeSortRule: true,
|
|
5635
|
-
});
|
|
5636
|
-
}
|
|
5637
|
-
else if (config.sort.name === "latestTime") {
|
|
5638
|
-
popsDOMUtils.trigger(folderListSortLatestTimeElement, "click", {
|
|
5639
|
-
notChangeSortRule: true,
|
|
5640
|
-
});
|
|
5641
|
-
}
|
|
5642
|
-
else if (config.sort.name === "fileSize") {
|
|
5643
|
-
popsDOMUtils.trigger(folderListSortFileSizeElement, "click", {
|
|
5644
|
-
notChangeSortRule: true,
|
|
5645
|
-
});
|
|
5646
5686
|
}
|
|
5687
|
+
const popsFolder = new PopsFolder();
|
|
5688
|
+
popsFolder.init();
|
|
5689
|
+
Reflect.set($pops, "data-pops-folder", popsFolder);
|
|
5647
5690
|
/* 拖拽 */
|
|
5648
5691
|
if (config.drag) {
|
|
5649
5692
|
PopsInstanceUtils.drag($pops, {
|
|
@@ -11600,7 +11643,7 @@ class Pops {
|
|
|
11600
11643
|
/** 配置 */
|
|
11601
11644
|
config = {
|
|
11602
11645
|
/** 版本号 */
|
|
11603
|
-
version: "2025.8.
|
|
11646
|
+
version: "2025.8.30",
|
|
11604
11647
|
cssText: PopsCSS,
|
|
11605
11648
|
/** icon图标的svg代码 */
|
|
11606
11649
|
iconSVG: PopsIcon.$data,
|