nhanh-pure-function 1.3.13 → 1.3.14

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.
@@ -184,9 +184,9 @@ export class _LocalDrag {
184
184
  }
185
185
 
186
186
  /** 进入全屏模式 */
187
- export function _EnterFullscreen(content: HTMLElement): void;
187
+ export function _EnterFullscreen(content: HTMLElement): Promise<void>;
188
188
  /** 退出全屏模式 */
189
- export function _ExitFullscreen(): void;
189
+ export function _ExitFullscreen(): Promise<void>;
190
190
  /** 判断是否处于全屏模式 */
191
191
  export function _IsFullscreen(): HTMLElement | undefined;
192
192
 
package/lib/User/User.js CHANGED
@@ -485,33 +485,34 @@ export class _LocalDrag {
485
485
 
486
486
  /** 进入全屏模式 */
487
487
  export function _EnterFullscreen(content) {
488
- if (!content) return console.error("No DOM: ", content);
489
- if (content.requestFullscreen) {
490
- content.requestFullscreen();
488
+ if (!content) {
489
+ return Promise.reject("No DOM: ", content);
490
+ } else if (content.requestFullscreen) {
491
+ return content.requestFullscreen();
491
492
  } else if (content.mozRequestFullScreen) {
492
493
  // Firefox
493
- content.mozRequestFullScreen();
494
+ return content.mozRequestFullScreen();
494
495
  } else if (content.webkitRequestFullscreen) {
495
496
  // Chrome, Safari and Opera
496
- content.webkitRequestFullscreen();
497
+ return content.webkitRequestFullscreen();
497
498
  } else if (content.msRequestFullscreen) {
498
499
  // IE/Edge
499
- content.msRequestFullscreen();
500
+ return content.msRequestFullscreen();
500
501
  }
501
502
  }
502
503
  /** 退出全屏模式 */
503
504
  export function _ExitFullscreen() {
504
505
  if (document.exitFullscreen) {
505
- document.exitFullscreen();
506
+ return document.exitFullscreen();
506
507
  } else if (document.mozCancelFullScreen) {
507
508
  // Firefox
508
- document.mozCancelFullScreen();
509
+ return document.mozCancelFullScreen();
509
510
  } else if (document.webkitExitFullscreen) {
510
511
  // Chrome, Safari and Opera
511
- document.webkitExitFullscreen();
512
+ return document.webkitExitFullscreen();
512
513
  } else if (document.msExitFullscreen) {
513
514
  // IE/Edge
514
- document.msExitFullscreen();
515
+ return document.msExitFullscreen();
515
516
  }
516
517
  }
517
518
  /** 判断是否处于全屏模式 */
@@ -65,7 +65,7 @@ export function _MergeObjects<T, T1>(A: T, B: T1): T & T1;
65
65
  */
66
66
  export function _TimeTransition(
67
67
  time: number | Date,
68
- template: string,
68
+ template?: string,
69
69
  pad?: boolean
70
70
  ): string;
71
71
 
@@ -91,7 +91,7 @@ export function _GetHrefName(href: string, defaultName = "file"): string;
91
91
  * @param {string} href 文件路径
92
92
  * @param {string} fileName 导出文件名
93
93
  */
94
- export function _DownloadFile(href: string, fileName?: string): void;
94
+ export function _DownloadFile(href: string, fileName?: string): Promise<void>;
95
95
 
96
96
  /**
97
97
  * 获取帧率
@@ -86,34 +86,47 @@ export function _CapitalizeFirstLetter(string) {
86
86
  * @param {Object | Array} B
87
87
  * @returns A&B || B
88
88
  */
89
- export function _MergeObjects(A, B, visitedObjects = []) {
89
+ export function _MergeObjects(
90
+ A,
91
+ B,
92
+ visitedObjects = [],
93
+ outTime = +new Date()
94
+ ) {
95
+ /** 疑似死循环 */
96
+ if (outTime < +new Date() - 2000) {
97
+ console.error("_MergeObjects 合并异常:疑似死循环");
98
+ return null;
99
+ }
100
+
90
101
  const getType = (v) => (Array.isArray(v) ? "array" : typeof v);
91
102
  const TA = getType(A);
92
103
  const TB = getType(B);
93
104
 
94
105
  if (TA != TB) return B;
95
- if (visitedObjects.some((item) => item == B)) return B;
96
-
97
- if (TA == "object") {
98
- visitedObjects.push(A, B);
99
- for (const key in B) {
100
- if (Object.prototype.hasOwnProperty.call(B, key)) {
101
- const BC = B[key];
102
- const AC = A[key];
103
- const fianlValue = _MergeObjects(AC, BC, visitedObjects);
104
- A[key] = fianlValue;
106
+
107
+ if (TA == "object" || TA == "array") {
108
+ if (visitedObjects.some(([a, b]) => a == A && b == B)) return A;
109
+ visitedObjects.push([A, B]);
110
+
111
+ if (TA == "object") {
112
+ for (const key in B) {
113
+ if (Object.prototype.hasOwnProperty.call(B, key)) {
114
+ const BC = B[key];
115
+ const AC = A[key];
116
+ const fianlValue = _MergeObjects(AC, BC, visitedObjects, outTime);
117
+ A[key] = fianlValue;
118
+ }
105
119
  }
120
+ return A;
121
+ } else if (TA == "array") {
122
+ B.forEach((item, index) => {
123
+ const BC = item;
124
+ const AC = A[index];
125
+ const fianlValue = _MergeObjects(AC, BC, visitedObjects, outTime);
126
+ A[index] = fianlValue;
127
+ });
128
+ return A;
106
129
  }
107
- return A;
108
- } else if (TA == "array") {
109
- visitedObjects.push(A, B);
110
- B.forEach((item, index) => {
111
- const BC = item;
112
- const AC = A[index];
113
- const fianlValue = _MergeObjects(AC, BC, visitedObjects);
114
- A[index] = fianlValue;
115
- });
116
- return A;
117
130
  } else return B;
118
131
  }
119
132
 
@@ -123,7 +136,11 @@ export function _MergeObjects(A, B, visitedObjects = []) {
123
136
  * @param {String} template 完整模板 --> YYYY MM DD hh mm ss ms
124
137
  * @param {Boolean} pad 补0
125
138
  */
126
- export function _TimeTransition(time, template, pad = true) {
139
+ export function _TimeTransition(
140
+ time,
141
+ template = "YYYY-MM-DD hh:mm:ss",
142
+ pad = true
143
+ ) {
127
144
  try {
128
145
  time = new Date(time);
129
146
  } catch (error) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nhanh-pure-function",
3
- "version": "1.3.13",
3
+ "version": "1.3.14",
4
4
  "description": "纯函数工具",
5
5
  "main": "lib/Index.js",
6
6
  "scripts": {