@netless/telebox-insider 0.3.0-beta.2 → 0.3.0-beta.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/dist/index.d.ts CHANGED
@@ -801,10 +801,10 @@ interface MaxTitleBarConfig extends DefaultTitleBarConfig {
801
801
  boxes: MaxTitleBarTeleBox[];
802
802
  containerRect: TeleBoxRect;
803
803
  focusedBox?: MaxTitleBarTeleBox;
804
- boxesStatus?: Map<string, TeleBoxState>;
804
+ getBoxesStatus?: () => Map<string, TeleBoxState>;
805
805
  }
806
806
  declare class MaxTitleBar extends DefaultTitleBar {
807
- boxesStatus?: Map<string, TeleBoxState>;
807
+ getBoxesStatus?: MaxTitleBarConfig["getBoxesStatus"];
808
808
  constructor(config: MaxTitleBarConfig);
809
809
  hasMaximizedBoxInStatus(): boolean;
810
810
  get MaximizedBoxes(): MaxTitleBarTeleBox[];
@@ -815,7 +815,7 @@ declare class MaxTitleBar extends DefaultTitleBar {
815
815
  */
816
816
  focusBox(box?: MaxTitleBarTeleBox): void;
817
817
  setContainerRect(rect: TeleBoxRect): void;
818
- setBoxesStatus(boxesStatus: Map<string, TeleBoxState>): void;
818
+ updateBoxesStatus(): void;
819
819
  setBoxes(boxes: MaxTitleBarTeleBox[]): void;
820
820
  setState(state: TeleBoxState): void;
821
821
  setReadonly(readonly: boolean): void;
@@ -861,11 +861,17 @@ declare class TeleBoxManager {
861
861
  /** @deprecated use setMaximized and setMinimized instead */
862
862
  setState(state: TeleBoxState, skipUpdate?: boolean): this;
863
863
  setBoxStatus(boxId: string, boxStatus?: TeleBoxState, skipUpdate?: boolean): void;
864
- private setBoxesStatus;
864
+ getBoxStatus(boxId: string): TeleBoxState | undefined;
865
+ getLastNotMinimizedBoxStatus(boxId: string): NotMinimizedBoxState | undefined;
866
+ get boxesStatus(): ReadonlyMap<string, TeleBoxState>;
867
+ get lastNotMinimizedBoxesStatus(): ReadonlyMap<string, NotMinimizedBoxState>;
868
+ setBoxesStatus(boxesStatus: Map<string, TeleBoxState>, skipUpdate?: boolean): void;
869
+ private effectBoxStatusChange;
865
870
  hasBoxesStatus(): boolean;
866
871
  hasMinimizedBox(): boolean;
867
872
  setLastNotMinimizedBoxStatus(boxId: string, lastNotMinimizedBoxStatus?: NotMinimizedBoxState, skipUpdate?: boolean): void;
868
- private setLastNotMinimizedBoxesStatus;
873
+ setLastNotMinimizedBoxesStatus(lastNotMinimizedBoxesStatus: Map<string, NotMinimizedBoxState>, skipUpdate?: boolean): void;
874
+ private effectLastNotMinimizedBoxStatusChange;
869
875
  private getAllMinimizedBoxes;
870
876
  create(config?: TeleBoxManagerCreateConfig, smartPosition?: boolean): ReadonlyTeleBox;
871
877
  query(config?: TeleBoxManagerQueryConfig): ReadonlyTeleBox[];
@@ -2419,20 +2419,26 @@ class MaxTitleBar extends DefaultTitleBar {
2419
2419
  this.focusedBox = config.focusedBox;
2420
2420
  this.containerRect = config.containerRect;
2421
2421
  this.darkMode = config.darkMode;
2422
- this.boxesStatus = config.boxesStatus;
2422
+ this.getBoxesStatus = config.getBoxesStatus;
2423
2423
  }
2424
2424
  hasMaximizedBoxInStatus() {
2425
- if (!this.boxesStatus || this.boxesStatus.size === 0) {
2426
- return false;
2425
+ if (this.getBoxesStatus) {
2426
+ const boxesStatus = this.getBoxesStatus();
2427
+ if (boxesStatus.size) {
2428
+ const hasMaximizedBox = [...boxesStatus.values()].find((state) => state === exports.TELE_BOX_STATE.Maximized);
2429
+ return !!hasMaximizedBox;
2430
+ }
2427
2431
  }
2428
- const hasMaximizedBox = [...this.boxesStatus.values()].find((state) => state === exports.TELE_BOX_STATE.Maximized);
2429
- return !!hasMaximizedBox;
2432
+ return false;
2430
2433
  }
2431
2434
  get MaximizedBoxes() {
2432
- if (!this.boxesStatus || this.boxesStatus.size === 0) {
2433
- return [];
2435
+ if (this.getBoxesStatus) {
2436
+ const boxesStatus = this.getBoxesStatus();
2437
+ if (boxesStatus) {
2438
+ return this.boxes.filter((box) => boxesStatus && boxesStatus.get(box.id) === exports.TELE_BOX_STATE.Maximized);
2439
+ }
2434
2440
  }
2435
- return this.boxes.filter((box) => this.boxesStatus && this.boxesStatus.get(box.id) === exports.TELE_BOX_STATE.Maximized);
2441
+ return [];
2436
2442
  }
2437
2443
  focusBox(box) {
2438
2444
  var _a, _b;
@@ -2477,8 +2483,7 @@ class MaxTitleBar extends DefaultTitleBar {
2477
2483
  this.$titleBar.style.width = width + "px";
2478
2484
  }
2479
2485
  }
2480
- setBoxesStatus(boxesStatus) {
2481
- this.boxesStatus = boxesStatus;
2486
+ updateBoxesStatus() {
2482
2487
  if (this.hasMaximizedBoxInStatus()) {
2483
2488
  this.setBoxStatus(exports.TELE_BOX_STATE.Maximized);
2484
2489
  }
@@ -2686,6 +2691,7 @@ class TeleBoxManager {
2686
2691
  this.setBoxStatus(box.id, exports.TELE_BOX_STATE.Normal);
2687
2692
  }
2688
2693
  });
2694
+ this.effectBoxStatusChange();
2689
2695
  }
2690
2696
  minimized$.setValue(false);
2691
2697
  }
@@ -2771,13 +2777,16 @@ class TeleBoxManager {
2771
2777
  state: state$.value,
2772
2778
  boxes: this.boxes$.value,
2773
2779
  containerRect: containerRect$.value,
2774
- boxesStatus: this.boxesStatus$,
2780
+ getBoxesStatus: () => {
2781
+ return this.boxesStatus$;
2782
+ },
2775
2783
  onEvent: (event) => {
2776
2784
  var _a, _b, _c;
2777
2785
  switch (event.type) {
2778
2786
  case exports.TELE_BOX_DELEGATE_EVENT.Maximize: {
2779
2787
  if (this.hasBoxesStatus() && ((_a = this.maxTitleBar.focusedBox) == null ? void 0 : _a.id)) {
2780
2788
  this.setBoxStatus(this.maxTitleBar.focusedBox.id, exports.TELE_BOX_STATE.Normal);
2789
+ this.effectBoxStatusChange();
2781
2790
  this.makeMaximizedTopBoxFocus();
2782
2791
  } else {
2783
2792
  maximized$.setValue(!maximized$.value);
@@ -2787,6 +2796,7 @@ class TeleBoxManager {
2787
2796
  case exports.TELE_BOX_DELEGATE_EVENT.Minimize: {
2788
2797
  if (this.hasBoxesStatus() && ((_b = this.maxTitleBar.focusedBox) == null ? void 0 : _b.id)) {
2789
2798
  this.setBoxStatus(this.maxTitleBar.focusedBox.id, exports.TELE_BOX_STATE.Minimized);
2799
+ this.effectBoxStatusChange();
2790
2800
  this.makeMaximizedTopBoxFocus();
2791
2801
  } else {
2792
2802
  minimized$.setValue(true);
@@ -2860,32 +2870,49 @@ class TeleBoxManager {
2860
2870
  return this;
2861
2871
  }
2862
2872
  setBoxStatus(boxId, boxStatus, skipUpdate = false) {
2863
- const boxesStatus = this.boxesStatus$;
2864
2873
  if (boxStatus) {
2865
- const oldBoxStatus = boxesStatus.get(boxId);
2866
- boxesStatus.set(boxId, boxStatus);
2874
+ const oldBoxStatus = this.boxesStatus$.get(boxId);
2875
+ this.boxesStatus$.set(boxId, boxStatus);
2867
2876
  if (boxStatus === exports.TELE_BOX_STATE.Minimized && oldBoxStatus !== exports.TELE_BOX_STATE.Minimized) {
2868
2877
  this.setLastNotMinimizedBoxStatus(boxId, oldBoxStatus, skipUpdate);
2878
+ this.effectLastNotMinimizedBoxStatusChange();
2869
2879
  } else if (oldBoxStatus === exports.TELE_BOX_STATE.Minimized && boxStatus !== exports.TELE_BOX_STATE.Minimized) {
2870
2880
  this.setLastNotMinimizedBoxStatus(boxId, void 0, skipUpdate);
2881
+ this.effectLastNotMinimizedBoxStatusChange();
2871
2882
  }
2872
2883
  } else {
2873
- boxesStatus.delete(boxId);
2884
+ this.boxesStatus$.delete(boxId);
2874
2885
  this.setLastNotMinimizedBoxStatus(boxId, void 0, skipUpdate);
2886
+ this.effectLastNotMinimizedBoxStatusChange();
2875
2887
  }
2876
- this.setBoxesStatus(boxesStatus, skipUpdate);
2877
2888
  if (!skipUpdate) {
2878
2889
  this.events.emit(exports.TELE_BOX_MANAGER_EVENT.BoxStatus, { id: boxId, boxStatus });
2879
2890
  }
2880
2891
  }
2892
+ getBoxStatus(boxId) {
2893
+ return this.boxesStatus$.get(boxId);
2894
+ }
2895
+ getLastNotMinimizedBoxStatus(boxId) {
2896
+ return this.lastNotMinimizedBoxesStatus$.get(boxId);
2897
+ }
2898
+ get boxesStatus() {
2899
+ return this.boxesStatus$;
2900
+ }
2901
+ get lastNotMinimizedBoxesStatus() {
2902
+ return this.lastNotMinimizedBoxesStatus$;
2903
+ }
2881
2904
  setBoxesStatus(boxesStatus, skipUpdate = false) {
2905
+ this.boxesStatus$ = boxesStatus;
2906
+ this.effectBoxStatusChange(skipUpdate);
2907
+ }
2908
+ effectBoxStatusChange(skipUpdate = false) {
2882
2909
  var _a, _b, _c, _d;
2883
2910
  let topBox;
2884
2911
  const topBoxId = (_a = this.topBox) == null ? void 0 : _a.id;
2885
2912
  let hasMinimizedBox = false;
2886
2913
  this.boxes.forEach((box) => {
2887
2914
  var _a2;
2888
- const boxStatus = boxesStatus.get(box.id);
2915
+ const boxStatus = this.boxesStatus$.get(box.id);
2889
2916
  if (boxStatus) {
2890
2917
  if (boxStatus !== exports.TELE_BOX_STATE.Minimized && box.zIndex > ((_a2 = topBox == null ? void 0 : topBox.zIndex) != null ? _a2 : 0)) {
2891
2918
  topBox = box;
@@ -2910,7 +2937,7 @@ class TeleBoxManager {
2910
2937
  this.focusTopBox();
2911
2938
  }
2912
2939
  if (this.maxTitleBar) {
2913
- this.maxTitleBar.setBoxesStatus(boxesStatus);
2940
+ this.maxTitleBar.updateBoxesStatus();
2914
2941
  }
2915
2942
  }
2916
2943
  hasBoxesStatus() {
@@ -2920,23 +2947,23 @@ class TeleBoxManager {
2920
2947
  return this.boxes.some((box) => box.boxStatus && box.boxStatus === exports.TELE_BOX_STATE.Minimized);
2921
2948
  }
2922
2949
  setLastNotMinimizedBoxStatus(boxId, lastNotMinimizedBoxStatus, skipUpdate = false) {
2923
- const boxesStatus = this.lastNotMinimizedBoxesStatus$;
2924
2950
  if (lastNotMinimizedBoxStatus) {
2925
- boxesStatus.set(boxId, lastNotMinimizedBoxStatus);
2951
+ this.lastNotMinimizedBoxesStatus$.set(boxId, lastNotMinimizedBoxStatus);
2926
2952
  } else {
2927
- boxesStatus.delete(boxId);
2953
+ this.lastNotMinimizedBoxesStatus$.delete(boxId);
2928
2954
  }
2929
- this.setLastNotMinimizedBoxesStatus(boxesStatus, skipUpdate);
2930
2955
  if (!skipUpdate) {
2931
2956
  this.events.emit(exports.TELE_BOX_MANAGER_EVENT.LastNotMinimizedBoxStatus, { id: boxId, boxStatus: lastNotMinimizedBoxStatus });
2932
2957
  }
2933
2958
  }
2934
2959
  setLastNotMinimizedBoxesStatus(lastNotMinimizedBoxesStatus, skipUpdate = false) {
2960
+ this.lastNotMinimizedBoxesStatus$ = lastNotMinimizedBoxesStatus;
2961
+ this.effectLastNotMinimizedBoxStatusChange(skipUpdate);
2962
+ }
2963
+ effectLastNotMinimizedBoxStatusChange(skipUpdate = false) {
2935
2964
  this.boxes.forEach((box) => {
2936
- const boxStatus = lastNotMinimizedBoxesStatus.get(box.id);
2937
- if (boxStatus) {
2938
- box.setLastNotMinimizedBoxStatus(boxStatus, skipUpdate);
2939
- }
2965
+ const boxStatus = this.lastNotMinimizedBoxesStatus$.get(box.id);
2966
+ box.setLastNotMinimizedBoxStatus(boxStatus, skipUpdate);
2940
2967
  });
2941
2968
  }
2942
2969
  getAllMinimizedBoxes() {
@@ -2966,9 +2993,11 @@ class TeleBoxManager {
2966
2993
  this.boxes$.setValue([...this.boxes, box]);
2967
2994
  if (box.boxStatus) {
2968
2995
  this.setBoxStatus(box.id, box.boxStatus, true);
2996
+ this.effectBoxStatusChange(true);
2969
2997
  }
2970
2998
  if (box._lastNotMinimizedBoxStatus$.value) {
2971
2999
  this.setLastNotMinimizedBoxStatus(box.id, box._lastNotMinimizedBoxStatus$.value, true);
3000
+ this.effectLastNotMinimizedBoxStatusChange();
2972
3001
  }
2973
3002
  box._delegateEvents.on(exports.TELE_BOX_DELEGATE_EVENT.Maximize, () => {
2974
3003
  if (box.boxStatus) {
@@ -2981,6 +3010,7 @@ class TeleBoxManager {
2981
3010
  }
2982
3011
  });
2983
3012
  }
3013
+ this.effectBoxStatusChange();
2984
3014
  this.makeMaximizedTopBoxFocus();
2985
3015
  } else {
2986
3016
  this.setMaximized(!this.maximized);
@@ -2990,6 +3020,7 @@ class TeleBoxManager {
2990
3020
  if (box.boxStatus) {
2991
3021
  const oldBoxStatus = box.boxStatus;
2992
3022
  this.setBoxStatus(box.id, exports.TELE_BOX_STATE.Minimized);
3023
+ this.effectBoxStatusChange();
2993
3024
  if (oldBoxStatus === exports.TELE_BOX_STATE.Maximized) {
2994
3025
  this.makeMaximizedTopBoxFocus();
2995
3026
  }
@@ -3062,16 +3093,20 @@ class TeleBoxManager {
3062
3093
  }
3063
3094
  remove(boxOrID, skipUpdate = false) {
3064
3095
  const box = this.getBox(boxOrID);
3065
- if (box) {
3066
- this.setBoxStatus(box.id, void 0, skipUpdate);
3067
- this.setLastNotMinimizedBoxStatus(box.id, void 0, skipUpdate);
3068
- }
3069
3096
  const index2 = this.getBoxIndex(boxOrID);
3070
3097
  if (index2 >= 0) {
3071
3098
  const boxes = this.boxes.slice();
3072
3099
  const deletedBoxes = boxes.splice(index2, 1);
3073
3100
  this.boxes$.setValue(boxes);
3074
3101
  deletedBoxes.forEach((box2) => box2.destroy());
3102
+ if (box) {
3103
+ this.setBoxStatus(box.id, void 0, skipUpdate);
3104
+ this.boxesStatus$.delete(box.id);
3105
+ this.effectBoxStatusChange(skipUpdate);
3106
+ this.setLastNotMinimizedBoxStatus(box.id, void 0, skipUpdate);
3107
+ this.lastNotMinimizedBoxesStatus$.delete(box.id);
3108
+ this.effectLastNotMinimizedBoxStatusChange();
3109
+ }
3075
3110
  if (!skipUpdate) {
3076
3111
  if (this.boxes.length <= 0) {
3077
3112
  this.setMaximized(false);
@@ -3226,9 +3261,11 @@ class TeleBoxManager {
3226
3261
  }
3227
3262
  if (config.boxStatus) {
3228
3263
  this.setBoxStatus(box.id, config.boxStatus, skipUpdate);
3264
+ this.effectBoxStatusChange(skipUpdate);
3229
3265
  }
3230
3266
  if (config.lastNotMinimizedBoxStatus) {
3231
3267
  this.setLastNotMinimizedBoxStatus(box.id, config.lastNotMinimizedBoxStatus, skipUpdate);
3268
+ this.effectLastNotMinimizedBoxStatusChange();
3232
3269
  }
3233
3270
  }
3234
3271
  smartPosition(config = {}) {