@netless/telebox-insider 0.3.0-beta.1 → 0.3.0-beta.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/dist/index.d.ts +5 -5
- package/dist/telebox-insider.cjs.js +26 -13
- package/dist/telebox-insider.cjs.js.map +1 -1
- package/dist/telebox-insider.es.js +26 -13
- package/dist/telebox-insider.es.js.map +1 -1
- package/package.json +1 -1
- package/src/TeleBoxManager/MaxTitleBar/index.ts +18 -13
- package/src/TeleBoxManager/index.ts +14 -6
package/package.json
CHANGED
|
@@ -12,11 +12,12 @@ export interface MaxTitleBarConfig extends DefaultTitleBarConfig {
|
|
|
12
12
|
boxes: MaxTitleBarTeleBox[];
|
|
13
13
|
containerRect: TeleBoxRect;
|
|
14
14
|
focusedBox?: MaxTitleBarTeleBox;
|
|
15
|
-
|
|
15
|
+
getBoxesStatus?: () => Map<string, TeleBoxState>;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
export class MaxTitleBar extends DefaultTitleBar {
|
|
19
|
-
|
|
19
|
+
|
|
20
|
+
public getBoxesStatus?: MaxTitleBarConfig["getBoxesStatus"];
|
|
20
21
|
public constructor(config: MaxTitleBarConfig) {
|
|
21
22
|
super(config);
|
|
22
23
|
|
|
@@ -24,22 +25,27 @@ export class MaxTitleBar extends DefaultTitleBar {
|
|
|
24
25
|
this.focusedBox = config.focusedBox;
|
|
25
26
|
this.containerRect = config.containerRect;
|
|
26
27
|
this.darkMode = config.darkMode;
|
|
27
|
-
this.
|
|
28
|
+
this.getBoxesStatus = config.getBoxesStatus;
|
|
28
29
|
}
|
|
29
|
-
|
|
30
30
|
public hasMaximizedBoxInStatus(): boolean {
|
|
31
|
-
if (
|
|
32
|
-
|
|
31
|
+
if (this.getBoxesStatus) {
|
|
32
|
+
const boxesStatus = this.getBoxesStatus();
|
|
33
|
+
if (boxesStatus.size) {
|
|
34
|
+
const hasMaximizedBox = [...boxesStatus.values()].find((state) => state === TELE_BOX_STATE.Maximized);
|
|
35
|
+
return !!hasMaximizedBox;
|
|
36
|
+
}
|
|
33
37
|
}
|
|
34
|
-
|
|
35
|
-
return !!hasMaximizedBox;
|
|
38
|
+
return false;
|
|
36
39
|
}
|
|
37
40
|
|
|
38
41
|
public get MaximizedBoxes(): MaxTitleBarTeleBox[] {
|
|
39
|
-
if (
|
|
40
|
-
|
|
42
|
+
if (this.getBoxesStatus) {
|
|
43
|
+
const boxesStatus = this.getBoxesStatus();
|
|
44
|
+
if (boxesStatus) {
|
|
45
|
+
return this.boxes.filter((box) => boxesStatus && boxesStatus.get(box.id) === TELE_BOX_STATE.Maximized);
|
|
46
|
+
}
|
|
41
47
|
}
|
|
42
|
-
return
|
|
48
|
+
return [];
|
|
43
49
|
}
|
|
44
50
|
|
|
45
51
|
/**
|
|
@@ -103,8 +109,7 @@ export class MaxTitleBar extends DefaultTitleBar {
|
|
|
103
109
|
}
|
|
104
110
|
}
|
|
105
111
|
|
|
106
|
-
public
|
|
107
|
-
this.boxesStatus = boxesStatus;
|
|
112
|
+
public updateBoxesStatus(): void {
|
|
108
113
|
if (this.hasMaximizedBoxInStatus()) {
|
|
109
114
|
this.setBoxStatus(TELE_BOX_STATE.Maximized);
|
|
110
115
|
}
|
|
@@ -315,7 +315,9 @@ export class TeleBoxManager {
|
|
|
315
315
|
state: state$.value,
|
|
316
316
|
boxes: this.boxes$.value,
|
|
317
317
|
containerRect: containerRect$.value,
|
|
318
|
-
|
|
318
|
+
getBoxesStatus: () => {
|
|
319
|
+
return this.boxesStatus$;
|
|
320
|
+
},
|
|
319
321
|
onEvent: (event): void => {
|
|
320
322
|
switch (event.type) {
|
|
321
323
|
case TELE_BOX_DELEGATE_EVENT.Maximize: {
|
|
@@ -452,7 +454,8 @@ export class TeleBoxManager {
|
|
|
452
454
|
}
|
|
453
455
|
}
|
|
454
456
|
|
|
455
|
-
|
|
457
|
+
public setBoxesStatus(boxesStatus: Map<string, TeleBoxState>, skipUpdate = false): void {
|
|
458
|
+
this.boxesStatus$ = boxesStatus;
|
|
456
459
|
let topBox:TeleBox | undefined;
|
|
457
460
|
const topBoxId = this.topBox?.id;
|
|
458
461
|
let hasMinimizedBox = false;
|
|
@@ -480,11 +483,11 @@ export class TeleBoxManager {
|
|
|
480
483
|
}
|
|
481
484
|
if (topBox && topBoxId !== topBox.id) {
|
|
482
485
|
this.makeBoxTop(topBox, skipUpdate);
|
|
483
|
-
this.focusTopBox();
|
|
484
486
|
this.topBox$.setValue(topBox);
|
|
487
|
+
this.focusTopBox();
|
|
485
488
|
}
|
|
486
489
|
if (this.maxTitleBar) {
|
|
487
|
-
this.maxTitleBar.
|
|
490
|
+
this.maxTitleBar.updateBoxesStatus();
|
|
488
491
|
}
|
|
489
492
|
}
|
|
490
493
|
|
|
@@ -509,7 +512,8 @@ export class TeleBoxManager {
|
|
|
509
512
|
}
|
|
510
513
|
}
|
|
511
514
|
|
|
512
|
-
|
|
515
|
+
public setLastNotMinimizedBoxesStatus(lastNotMinimizedBoxesStatus: Map<string, NotMinimizedBoxState>, skipUpdate = false): void {
|
|
516
|
+
this.lastNotMinimizedBoxesStatus$ = lastNotMinimizedBoxesStatus;
|
|
513
517
|
this.boxes.forEach((box) => {
|
|
514
518
|
const boxStatus = lastNotMinimizedBoxesStatus.get(box.id);
|
|
515
519
|
if (boxStatus) {
|
|
@@ -684,6 +688,10 @@ export class TeleBoxManager {
|
|
|
684
688
|
const deletedBoxes = boxes.splice(index, 1);
|
|
685
689
|
this.boxes$.setValue(boxes);
|
|
686
690
|
deletedBoxes.forEach((box) => box.destroy());
|
|
691
|
+
if (box) {
|
|
692
|
+
this.boxesStatus$.delete(box.id);
|
|
693
|
+
this.lastNotMinimizedBoxesStatus$.delete(box.id);
|
|
694
|
+
}
|
|
687
695
|
if (!skipUpdate) {
|
|
688
696
|
if (this.boxes.length <= 0) {
|
|
689
697
|
this.setMaximized(false);
|
|
@@ -939,7 +947,7 @@ export class TeleBoxManager {
|
|
|
939
947
|
return currentBox;
|
|
940
948
|
}
|
|
941
949
|
return topBox.zIndex > currentBox.zIndex ? topBox : currentBox;
|
|
942
|
-
});
|
|
950
|
+
}, );
|
|
943
951
|
if (maximizedBox) {
|
|
944
952
|
this.maxTitleBar.focusBox(maximizedBox);
|
|
945
953
|
}
|