nexfep 0.5.2 → 0.5.4

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/README-CN.md CHANGED
@@ -240,6 +240,18 @@ window.setSize(800, 600);
240
240
  window.openDevTools();
241
241
  ```
242
242
 
243
+ ### 页面 API 的 Typescript 定义
244
+
245
+ 在前端的 `tsconfig.json` 中添加以下内容即可在前端页面中使用 `nexfep` 定义的 API 类型:
246
+
247
+ ```json
248
+ {
249
+ "compilerOptions": {
250
+ "types": ["nexfep/frontend"]
251
+ }
252
+ }
253
+ ```
254
+
243
255
  ### 自定义事件
244
256
 
245
257
  #### 触发事件
@@ -412,8 +424,10 @@ pool.onCustomMessage = (window, message, data) => {
412
424
  window.close(); // 关闭窗口
413
425
  window.minimize(); // 最小化窗口
414
426
  window.unminimize(); // 还原最小化的窗口
427
+ window.toggleMinimize(); // 切换最小化状态
415
428
  window.maximize(); // 最大化窗口
416
429
  window.unmaximize(); // 还原最大化的窗口
430
+ window.toggleMaximize(); // 切换最大化状态
417
431
  window.setTitle("标题"); // 设置窗口标题
418
432
  window.openDevTools(); // 打开开发者工具
419
433
  window.closeDevTools(); // 关闭开发者工具
package/README.md CHANGED
@@ -238,6 +238,18 @@ window.setSize(800, 600);
238
238
  window.openDevTools();
239
239
  ```
240
240
 
241
+ ### TypeScript Definitions for Frontend API
242
+
243
+ Add the following content to your frontend's `tsconfig.json` to use the frontend API definitions:
244
+
245
+ ```json
246
+ {
247
+ "compilerOptions": {
248
+ "types": ["nexfep/frontend"]
249
+ }
250
+ }
251
+ ```
252
+
241
253
  ### Custom Events
242
254
 
243
255
  #### Invoke Events
@@ -410,8 +422,10 @@ The following injected functions can be directly called in the page for window c
410
422
  window.close(); // Close window
411
423
  window.minimize(); // Minimize window
412
424
  window.unminimize(); // Restore minimized window
425
+ window.toggleMinimize(); // Toggle minimized state
413
426
  window.maximize(); // Maximize window
414
427
  window.unmaximize(); // Restore maximized window
428
+ window.toggleMaximize(); // Toggle maximized state
415
429
  window.setTitle("Title"); // Set window title
416
430
  window.openDevTools(); // Open developer tools
417
431
  window.closeDevTools(); // Close developer tools
@@ -8,6 +8,8 @@ declare global {
8
8
  close: () => void
9
9
  minimize: () => void
10
10
  unminimize: () => void
11
+ toggleMaximize: () => void
12
+ toggleMinimize: () => void
11
13
  maximize: () => void
12
14
  unmaximize: () => void
13
15
  setTitle: (title: string) => void
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nexfep",
3
- "version": "0.5.2",
3
+ "version": "0.5.4",
4
4
  "description": "A desktop application framework based on @webviewjs/webview",
5
5
  "keywords": [
6
6
  "@webviewjs/webview",
@@ -22,6 +22,7 @@
22
22
  },
23
23
  "typesVersions": {
24
24
  "*": {
25
+ ".": ["./index.d.ts"],
25
26
  "frontend": ["./frontend/index.d.ts"]
26
27
  }
27
28
  },
@@ -85,7 +85,7 @@ class Window {
85
85
  return this.window.isFocused();
86
86
  }
87
87
  focus() {
88
- this.window.setMinimized(false);
88
+ this.unMinimize();
89
89
  this.window.focus();
90
90
  }
91
91
  hide() {
@@ -206,6 +206,16 @@ class WindowPool {
206
206
  const MessageBody = { type: 'NexfepUnMaximizeWindow' }
207
207
  window.ipc.postMessage(JSON.stringify(MessageBody));
208
208
  };
209
+
210
+ window.toggleMaximize = () => {
211
+ const MessageBody = { type: 'NexfepToggleMaximizeWindow' }
212
+ window.ipc.postMessage(JSON.stringify(MessageBody));
213
+ };
214
+
215
+ window.toggleMinimize = () => {
216
+ const MessageBody = { type: 'NexfepToggleMinimizeWindow' }
217
+ window.ipc.postMessage(JSON.stringify(MessageBody));
218
+ };
209
219
  window.setTitle = (title) => {
210
220
  const MessageBody = { type: 'NexfepSetTitle', title: title }
211
221
  window.ipc.postMessage(JSON.stringify(MessageBody));
@@ -342,25 +352,31 @@ class WindowPool {
342
352
  this.closeWindow(windowObj);
343
353
  }
344
354
  else if (dataObj.type == "NexfepMinimizeWindow") {
345
- window.setMinimized(true);
355
+ windowObj.minimize();
346
356
  }
347
357
  else if (dataObj.type == "NexfepUnMinimizeWindow") {
348
- window.setMinimized(false);
358
+ windowObj.unMinimize();
349
359
  }
350
360
  else if (dataObj.type == "NexfepMaximizeWindow") {
351
- window.setMaximized(true);
361
+ windowObj.maximize();
352
362
  }
353
363
  else if (dataObj.type == "NexfepUnMaximizeWindow") {
354
- window.setMaximized(false);
364
+ windowObj.unMaximize();
365
+ }
366
+ else if (dataObj.type == "NexfepToggleMaximizeWindow") {
367
+ windowObj.toggleMaximize();
368
+ }
369
+ else if (dataObj.type == "NexfepToggleMinimizeWindow") {
370
+ windowObj.toggleMinimize();
355
371
  }
356
372
  else if (dataObj.type == "NexfepSetTitle") {
357
- window.setTitle(dataObj.title);
373
+ windowObj.setTitle(dataObj.title);
358
374
  }
359
375
  else if (dataObj.type == "NexfepOpenDevTools") {
360
- webview.openDevtools();
376
+ windowObj.openDevTools();
361
377
  }
362
378
  else if (dataObj.type == "NexfepCloseDevTools") {
363
- webview.closeDevtools();
379
+ windowObj.closeDevTools();
364
380
  }
365
381
  else if (dataObj.type == "NexfepInvoke") {
366
382
  const handlers = this.handlers.get(dataObj.event) || [];