@whitesev/pops 1.5.2 → 1.5.3

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@whitesev/pops",
3
- "version": "1.5.2",
3
+ "version": "1.5.3",
4
4
  "description": "弹窗库",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.esm.js",
package/src/Pops.ts CHANGED
@@ -80,7 +80,7 @@ class Pops {
80
80
  /** 配置 */
81
81
  config = {
82
82
  /** 版本号 */
83
- version: "2024.8.15",
83
+ version: "2024.9.9",
84
84
  cssText: {
85
85
  /** 主CSS */
86
86
  index: indexCSS,
@@ -448,11 +448,13 @@ export class PopsFolder {
448
448
  * @param fileName
449
449
  * @param latestTime
450
450
  * @param [fileSize="-"]
451
+ * @param isFolder
451
452
  */
452
453
  function createFolderRowElement(
453
454
  fileName: string,
454
- latestTime = "-",
455
- fileSize = "-"
455
+ latestTime: string | number = "-",
456
+ fileSize: string | number = "-",
457
+ isFolder: boolean = false
456
458
  ) {
457
459
  let origin_fileName = fileName;
458
460
  let origin_latestTime = latestTime;
@@ -467,7 +469,7 @@ export class PopsFolder {
467
469
  let fileFormatSize = popsDOMUtils.createElement("td");
468
470
  let fileType = "";
469
471
  let fileIcon = Folder_ICON.folder;
470
- if (arguments.length === 1) {
472
+ if (isFolder) {
471
473
  /* 文件夹 */
472
474
  latestTime = "";
473
475
  fileSize = "";
@@ -523,6 +525,7 @@ export class PopsFolder {
523
525
  fileName: origin_fileName,
524
526
  latestTime: origin_latestTime,
525
527
  fileSize: origin_fileSize,
528
+ isFolder: isFolder,
526
529
  };
527
530
 
528
531
  (fileNameElement as any)["__value__"] = __value__;
@@ -547,8 +550,9 @@ export class PopsFolder {
547
550
  */
548
551
  function createMobileFolderRowElement(
549
552
  fileName: string,
550
- latestTime = "-",
551
- fileSize = "-"
553
+ latestTime: number | string = "-",
554
+ fileSize: number | string = "-",
555
+ isFolder: boolean = false
552
556
  ) {
553
557
  let origin_fileName = fileName;
554
558
  let origin_latestTime = latestTime;
@@ -559,7 +563,7 @@ export class PopsFolder {
559
563
  let fileNameElement = popsDOMUtils.createElement("td");
560
564
  let fileType = "";
561
565
  let fileIcon = Folder_ICON.folder;
562
- if (arguments.length === 1) {
566
+ if (isFolder) {
563
567
  /* 文件夹 */
564
568
  latestTime = "";
565
569
  fileSize = "";
@@ -603,6 +607,7 @@ export class PopsFolder {
603
607
  fileName: origin_fileName,
604
608
  latestTime: origin_latestTime,
605
609
  fileSize: origin_fileSize,
610
+ isFolder: isFolder,
606
611
  };
607
612
 
608
613
  (fileNameElement as any)["__value__"] = __value__;
@@ -833,34 +838,28 @@ export class PopsFolder {
833
838
  }
834
839
  /**
835
840
  * 对配置进行排序
836
- * @param _config_
841
+ * @param folderDataConfigList
837
842
  * @param sortName 比较的属性,默认fileName
838
843
  * @param isDesc 是否降序,默认false(升序)
839
844
  */
840
845
  function sortFolderConfig(
841
- _config_: PopsFolderDataConfig[],
846
+ folderDataConfigList: PopsFolderDataConfig[],
842
847
  sortName: "fileName" | "fileSize" | "latestTime" = "fileName",
843
848
  isDesc = false
844
849
  ) {
845
- _config_.sort((a, b) => {
846
- let beforeVal = a[sortName];
847
- let afterVal = b[sortName];
848
- if (sortName === "fileName") {
849
- /* 文件名,进行字符串转换 */
850
- beforeVal = beforeVal.toString();
851
- afterVal = afterVal.toString();
852
- } else if (sortName === "fileSize") {
853
- /* 文件大小,进行Float转换 */
854
-
855
- beforeVal = parseFloat(beforeVal as string);
856
-
857
- afterVal = parseFloat(afterVal as string);
858
- } else if (sortName === "latestTime") {
859
- /* 文件时间 */
860
- beforeVal = new Date(beforeVal).getTime();
861
- afterVal = new Date(afterVal).getTime();
862
- }
863
- if (typeof beforeVal === "string" && typeof afterVal === "string") {
850
+ console.log(folderDataConfigList, sortName, isDesc);
851
+ if (sortName === "fileName") {
852
+ // 如果是以文件名排序,文件夹优先放前面
853
+ let onlyFolderDataConfigList = folderDataConfigList.filter((value) => {
854
+ return value.isFolder;
855
+ });
856
+ let onlyFileDataConfigList = folderDataConfigList.filter((value) => {
857
+ return !value.isFolder;
858
+ });
859
+ // 文件夹排序
860
+ onlyFolderDataConfigList.sort((leftConfig, rightConfig) => {
861
+ let beforeVal = leftConfig[sortName].toString();
862
+ let afterVal = rightConfig[sortName].toString();
864
863
  let compareVal = beforeVal.localeCompare(afterVal);
865
864
  if (isDesc) {
866
865
  /* 降序 */
@@ -871,7 +870,42 @@ export class PopsFolder {
871
870
  }
872
871
  }
873
872
  return compareVal;
873
+ });
874
+ // 文件名排序
875
+ onlyFileDataConfigList.sort((leftConfig, rightConfig) => {
876
+ let beforeVal = leftConfig[sortName].toString();
877
+ let afterVal = rightConfig[sortName].toString();
878
+ let compareVal = beforeVal.localeCompare(afterVal);
879
+ if (isDesc) {
880
+ /* 降序 */
881
+ if (compareVal > 0) {
882
+ compareVal = -1;
883
+ } else if (compareVal < 0) {
884
+ compareVal = 1;
885
+ }
886
+ }
887
+ return compareVal;
888
+ });
889
+ if (isDesc) {
890
+ // 降序,文件夹在下面
891
+ return [...onlyFileDataConfigList, ...onlyFolderDataConfigList];
874
892
  } else {
893
+ // 升序,文件夹在上面
894
+ return [...onlyFolderDataConfigList, ...onlyFileDataConfigList];
895
+ }
896
+ } else {
897
+ folderDataConfigList.sort((beforeConfig, afterConfig) => {
898
+ let beforeVal = beforeConfig[sortName];
899
+ let afterVal = afterConfig[sortName];
900
+ if (sortName === "fileSize") {
901
+ /* 文件大小,进行Float转换 */
902
+ beforeVal = parseFloat(beforeVal.toString());
903
+ afterVal = parseFloat(afterVal.toString());
904
+ } else if (sortName === "latestTime") {
905
+ /* 文件时间 */
906
+ beforeVal = new Date(beforeVal).getTime();
907
+ afterVal = new Date(afterVal).getTime();
908
+ }
875
909
  if (beforeVal > afterVal) {
876
910
  if (isDesc) {
877
911
  /* 降序 */
@@ -889,9 +923,9 @@ export class PopsFolder {
889
923
  } else {
890
924
  return 0;
891
925
  }
892
- }
893
- });
894
- return _config_;
926
+ });
927
+ return folderDataConfigList;
928
+ }
895
929
  }
896
930
  /**
897
931
  * 添加元素
@@ -902,8 +936,8 @@ export class PopsFolder {
902
936
  _config_.forEach((item) => {
903
937
  if (item["isFolder"]) {
904
938
  let { folderELement, fileNameElement } = pops.isPhone()
905
- ? createMobileFolderRowElement(item["fileName"])
906
- : createFolderRowElement(item["fileName"]);
939
+ ? createMobileFolderRowElement(item["fileName"], "", "", true)
940
+ : createFolderRowElement(item["fileName"], "", "", true);
907
941
 
908
942
  popsDOMUtils.on<MouseEvent | PointerEvent>(
909
943
  fileNameElement,
@@ -918,13 +952,15 @@ export class PopsFolder {
918
952
  let { folderELement, fileNameElement } = pops.isPhone()
919
953
  ? createMobileFolderRowElement(
920
954
  item["fileName"],
921
- (item as any)["latestTime"],
922
- (item as any)["fileSize"]
955
+ item.latestTime,
956
+ item.fileSize,
957
+ false
923
958
  )
924
959
  : createFolderRowElement(
925
960
  item["fileName"],
926
- (item as any)["latestTime"],
927
- (item as any)["fileSize"]
961
+ item.latestTime,
962
+ item.fileSize,
963
+ false
928
964
  );
929
965
  setFileClickEvent(fileNameElement, item);
930
966
 
@@ -990,7 +1026,6 @@ export class PopsFolder {
990
1026
  * @param {PointerEvent} target
991
1027
  * @param {HTMLElement} event
992
1028
  * @param {string} sortName
993
- * @returns
994
1029
  */
995
1030
  function arrowSortClickEvent(
996
1031
  target: HTMLDivElement,
@@ -1029,7 +1064,7 @@ export class PopsFolder {
1029
1064
  childrenList.push(__value__);
1030
1065
  });
1031
1066
  let sortedConfigList = sortFolderConfig(
1032
- childrenList as any,
1067
+ childrenList,
1033
1068
  config.sort.name,
1034
1069
  config.sort.isDesc
1035
1070
  );