@netless/telebox-insider 0.3.0-beta.5 → 0.3.0-beta.6
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 +70 -12
- package/dist/style.css +95 -2
- package/dist/telebox-insider.cjs.js +576 -191
- package/dist/telebox-insider.cjs.js.map +1 -1
- package/dist/telebox-insider.es.js +576 -191
- package/dist/telebox-insider.es.js.map +1 -1
- package/package.json +1 -1
- package/src/AppMenu/index.ts +145 -0
- package/src/AppMenu/style.scss +109 -0
- package/src/TeleBoxCollector/index.ts +35 -1
- package/src/TeleBoxCollector/style.scss +11 -1
- package/src/TeleBoxManager/MaxTitleBar/index.ts +5 -2
- package/src/TeleBoxManager/MaxTitleBar/style.scss +1 -1
- package/src/TeleBoxManager/index.ts +468 -190
- package/src/TeleBoxManager/typings.ts +2 -0
package/dist/index.d.ts
CHANGED
|
@@ -700,9 +700,12 @@ interface TeleBoxCollectorConfig {
|
|
|
700
700
|
namespace?: string;
|
|
701
701
|
styles?: TeleStyles;
|
|
702
702
|
onClick?: () => void;
|
|
703
|
+
getBoxesStatus?: () => Map<string, TeleBoxState>;
|
|
703
704
|
}
|
|
704
705
|
declare class TeleBoxCollector {
|
|
705
|
-
|
|
706
|
+
getBoxesStatus?: () => Map<string, TeleBoxState>;
|
|
707
|
+
constructor({ visible, readonly, darkMode, namespace, styles, onClick, getBoxesStatus }: TeleBoxCollectorConfig);
|
|
708
|
+
get boxesStatus(): Map<string, TeleBoxState> | undefined;
|
|
706
709
|
readonly styles: TeleStyles;
|
|
707
710
|
readonly namespace: string;
|
|
708
711
|
get visible(): boolean;
|
|
@@ -710,6 +713,7 @@ declare class TeleBoxCollector {
|
|
|
710
713
|
get darkMode(): boolean;
|
|
711
714
|
onClick: (() => void) | undefined;
|
|
712
715
|
$collector: HTMLElement | undefined;
|
|
716
|
+
$appMenuContainer: HTMLDivElement;
|
|
713
717
|
/**
|
|
714
718
|
* Mount collector to a root element.
|
|
715
719
|
*/
|
|
@@ -718,6 +722,8 @@ declare class TeleBoxCollector {
|
|
|
718
722
|
* Unmount collector from the root element.
|
|
719
723
|
*/
|
|
720
724
|
unmount(): this;
|
|
725
|
+
private hasMinimizedBox;
|
|
726
|
+
updateBoxesStatus(): void;
|
|
721
727
|
setVisible(visible: boolean): this;
|
|
722
728
|
setReadonly(readonly: boolean): this;
|
|
723
729
|
setDarkMode(darkMode: boolean): this;
|
|
@@ -756,6 +762,8 @@ interface TeleBoxManagerConfig extends Pick<TeleBoxConfig, "prefersColorScheme"
|
|
|
756
762
|
root?: HTMLElement;
|
|
757
763
|
/** Where the minimized boxes go. */
|
|
758
764
|
collector?: TeleBoxCollector;
|
|
765
|
+
/** Whether to use boxes status. */
|
|
766
|
+
useBoxesStatus?: boolean;
|
|
759
767
|
}
|
|
760
768
|
type TeleBoxManagerBoxConfigBaseProps = "title" | "visible" | "width" | "height" | "minWidth" | "minHeight" | "x" | "y" | "resizable" | "draggable" | "fixRatio" | "zIndex" | "boxStatus" | "lastNotMinimizedBoxStatus";
|
|
761
769
|
type TeleBoxManagerCreateConfig = Pick<TeleBoxConfig, TeleBoxManagerBoxConfigBaseProps | "content" | "footer" | "id" | "focus">;
|
|
@@ -804,8 +812,9 @@ interface MaxTitleBarConfig extends DefaultTitleBarConfig {
|
|
|
804
812
|
getBoxesStatus?: () => Map<string, TeleBoxState>;
|
|
805
813
|
}
|
|
806
814
|
declare class MaxTitleBar extends DefaultTitleBar {
|
|
807
|
-
getBoxesStatus?:
|
|
815
|
+
getBoxesStatus?: () => Map<string, TeleBoxState>;
|
|
808
816
|
constructor(config: MaxTitleBarConfig);
|
|
817
|
+
get boxesStatus(): Map<string, TeleBoxState> | undefined;
|
|
809
818
|
hasMaximizedBoxInStatus(): boolean;
|
|
810
819
|
get MaximizedBoxes(): MaxTitleBarTeleBox[];
|
|
811
820
|
/**
|
|
@@ -831,6 +840,37 @@ declare class MaxTitleBar extends DefaultTitleBar {
|
|
|
831
840
|
protected containerRect: TeleBoxRect;
|
|
832
841
|
}
|
|
833
842
|
|
|
843
|
+
type AppId = string;
|
|
844
|
+
interface AppMenuProps {
|
|
845
|
+
manager: TeleBoxManager;
|
|
846
|
+
container: HTMLDivElement;
|
|
847
|
+
theme: TeleBoxColorScheme;
|
|
848
|
+
getBoxesStatus?: () => Map<string, TeleBoxState>;
|
|
849
|
+
}
|
|
850
|
+
declare class AppMenu {
|
|
851
|
+
private readonly namespace;
|
|
852
|
+
readonly container: HTMLDivElement;
|
|
853
|
+
private readonly badge;
|
|
854
|
+
private readonly menuView;
|
|
855
|
+
private readonly manager;
|
|
856
|
+
private theme;
|
|
857
|
+
private getBoxesStatus?;
|
|
858
|
+
constructor(props: AppMenuProps);
|
|
859
|
+
get boxesStatus(): Map<string, TeleBoxState>;
|
|
860
|
+
get minimizedBoxesStatus(): TeleBoxState[];
|
|
861
|
+
private c;
|
|
862
|
+
containerClickHandler: () => void;
|
|
863
|
+
private menuViewClickHandler;
|
|
864
|
+
private createDefaultAppMenu;
|
|
865
|
+
private init;
|
|
866
|
+
updatePrefersColorSchemeHandler: () => void;
|
|
867
|
+
appMenuChange: () => void;
|
|
868
|
+
private createMinimizedItem;
|
|
869
|
+
private renderMenuView;
|
|
870
|
+
render(minimizedBoxesStatus: Map<AppId, TELE_BOX_STATE.Minimized>): void;
|
|
871
|
+
destroy(): void;
|
|
872
|
+
}
|
|
873
|
+
|
|
834
874
|
type ValConfig = {
|
|
835
875
|
prefersColorScheme: Val<TeleBoxColorScheme, boolean>;
|
|
836
876
|
containerRect: Val<TeleBoxRect, boolean>;
|
|
@@ -846,9 +886,11 @@ interface TeleBoxManager extends ValEnhancedResult<ValConfig> {
|
|
|
846
886
|
declare class TeleBoxManager {
|
|
847
887
|
private boxesStatus$;
|
|
848
888
|
private lastNotMinimizedBoxesStatus$;
|
|
849
|
-
private
|
|
889
|
+
private appMenu;
|
|
890
|
+
private useBoxesStatus;
|
|
891
|
+
private effectBoxesStatusTimer?;
|
|
850
892
|
private effectLastNotMinimizedBoxStatusTimer?;
|
|
851
|
-
constructor({ root, prefersColorScheme, minimized, maximized, fence, containerRect, collector, namespace, readonly, }?: TeleBoxManagerConfig);
|
|
893
|
+
constructor({ root, prefersColorScheme, minimized, maximized, fence, containerRect, collector, namespace, readonly, useBoxesStatus, }?: TeleBoxManagerConfig);
|
|
852
894
|
get boxes(): ReadonlyArray<TeleBox>;
|
|
853
895
|
get topBox(): TeleBox | undefined;
|
|
854
896
|
readonly events: TeleBoxManagerEvents;
|
|
@@ -857,6 +899,7 @@ declare class TeleBoxManager {
|
|
|
857
899
|
readonly namespace: string;
|
|
858
900
|
_darkMode$: Val<boolean, boolean>;
|
|
859
901
|
_calcCollectorRect: () => TeleBoxRect | undefined;
|
|
902
|
+
_setCollectorRect: (collectorRect: TeleBoxRect | undefined) => void;
|
|
860
903
|
get darkMode(): boolean;
|
|
861
904
|
_state$: Val<TeleBoxState, boolean>;
|
|
862
905
|
get state(): TeleBoxState;
|
|
@@ -864,24 +907,39 @@ declare class TeleBoxManager {
|
|
|
864
907
|
setState(state: TeleBoxState, skipUpdate?: boolean): this;
|
|
865
908
|
setBoxStatus(boxId: string, boxStatus?: TeleBoxState, skipUpdate?: boolean): void;
|
|
866
909
|
getBoxStatus(boxId: string): TeleBoxState | undefined;
|
|
867
|
-
getLastNotMinimizedBoxStatus(boxId: string): NotMinimizedBoxState | undefined;
|
|
868
910
|
get boxesStatus(): ReadonlyMap<string, TeleBoxState>;
|
|
869
911
|
get lastNotMinimizedBoxesStatus(): ReadonlyMap<string, NotMinimizedBoxState>;
|
|
870
|
-
setBoxesStatus(boxesStatus: Map<string, TeleBoxState>, skipUpdate?: boolean): void
|
|
871
|
-
private effectBoxStatusTimerFunc;
|
|
912
|
+
setBoxesStatus(boxesStatus: Map<string, TeleBoxState>, skipUpdate?: boolean): Promise<void>;
|
|
872
913
|
private effectBoxStatusChange;
|
|
914
|
+
private effectBoxesStatusTimerFunc;
|
|
915
|
+
effectBoxesStatusChange(skipUpdate?: boolean): Promise<void>;
|
|
873
916
|
hasBoxesStatus(): boolean;
|
|
874
917
|
hasMinimizedBox(): boolean;
|
|
918
|
+
getMinimizedBoxesStatus(): Map<string, TELE_BOX_STATE.Minimized>;
|
|
919
|
+
getNotMinimizedBoxesStatus(): Map<string, NotMinimizedBoxState>;
|
|
920
|
+
getAllMaximizedBoxesStatus(): Map<string, TELE_BOX_STATE.Maximized>;
|
|
921
|
+
getAllNormalBoxesStatus(): Map<string, TELE_BOX_STATE.Normal>;
|
|
922
|
+
getLastNotMinimizedBoxStatus(boxId: string): NotMinimizedBoxState | undefined;
|
|
875
923
|
setLastNotMinimizedBoxStatus(boxId: string, lastNotMinimizedBoxStatus?: NotMinimizedBoxState, skipUpdate?: boolean): void;
|
|
876
924
|
setLastNotMinimizedBoxesStatus(lastNotMinimizedBoxesStatus: Map<string, NotMinimizedBoxState>, skipUpdate?: boolean): void;
|
|
877
925
|
private effectLastNotMinimizedBoxStatusChange;
|
|
878
|
-
private
|
|
926
|
+
private effectLastNotMinimizedBoxStatusFunc;
|
|
927
|
+
private getUnabledBoxesStatusZIndex;
|
|
928
|
+
/** Maximized box zIndex range: 100-299 */
|
|
929
|
+
getMaxMaximizedBoxZIndex(): number;
|
|
930
|
+
/** normal box zIndex range: 300-499 */
|
|
931
|
+
getMaxNormalBoxZIndex(): number;
|
|
879
932
|
create(config?: TeleBoxManagerCreateConfig, smartPosition?: boolean): ReadonlyTeleBox;
|
|
880
933
|
query(config?: TeleBoxManagerQueryConfig): ReadonlyTeleBox[];
|
|
881
934
|
queryOne(config?: TeleBoxManagerQueryConfig): ReadonlyTeleBox | undefined;
|
|
882
935
|
update(boxID: string, config: TeleBoxManagerUpdateConfig, skipUpdate?: boolean): void;
|
|
883
936
|
updateAll(config: TeleBoxManagerUpdateConfig, skipUpdate?: boolean): void;
|
|
884
|
-
|
|
937
|
+
setBox(boxOrID: string | TeleBox, options: {
|
|
938
|
+
status?: TeleBoxState;
|
|
939
|
+
lastNotMinimizedBoxStatus?: NotMinimizedBoxState;
|
|
940
|
+
zIndex?: number;
|
|
941
|
+
}, skipUpdate?: boolean, effectFunc?: () => void): void;
|
|
942
|
+
remove(boxOrID: string | TeleBox, skipUpdate?: boolean, effectFunc?: () => void): ReadonlyTeleBox | undefined;
|
|
885
943
|
removeTopBox(): ReadonlyTeleBox | undefined;
|
|
886
944
|
removeAll(skipUpdate?: boolean): ReadonlyTeleBox[];
|
|
887
945
|
destroy(skipUpdate?: boolean): void;
|
|
@@ -897,11 +955,11 @@ declare class TeleBoxManager {
|
|
|
897
955
|
protected updateBox(box: TeleBox, config: TeleBoxManagerUpdateConfig, skipUpdate?: boolean): void;
|
|
898
956
|
protected smartPosition(config?: TeleBoxConfig): TeleBoxConfig;
|
|
899
957
|
protected makeBoxTop(box: TeleBox, skipUpdate?: boolean): void;
|
|
958
|
+
private getMaximizedTopBox;
|
|
900
959
|
protected makeMaximizedTopBoxFocus(): void;
|
|
901
|
-
protected makeMaximizedBoxFocus(maximizedBox: MaxTitleBarTeleBox, skipUpdate?: boolean): void;
|
|
902
|
-
protected makeMaximizedBoxBlur(): void;
|
|
903
960
|
protected getBoxIndex(boxOrID: TeleBox | string): number;
|
|
904
|
-
|
|
961
|
+
getBox(boxOrID: TeleBox | string): TeleBox | undefined;
|
|
962
|
+
createMinimizedAppMenu(): AppMenu | undefined;
|
|
905
963
|
}
|
|
906
964
|
|
|
907
965
|
export { DefaultTitleBar, type DefaultTitleBarButton, type DefaultTitleBarConfig, type NotMinimizedBoxState, type ReadonlyTeleBox, TELE_BOX_COLOR_SCHEME, TELE_BOX_DELEGATE_EVENT, TELE_BOX_EVENT, TELE_BOX_MANAGER_EVENT, TELE_BOX_RESIZE_HANDLE, TELE_BOX_STATE, TeleBox, TeleBoxCollector, type TeleBoxCollectorConfig, type TeleBoxColorScheme, type TeleBoxConfig, type TeleBoxCoord, type TeleBoxDelegateEvent, type TeleBoxDelegateEventConfig, type TeleBoxDelegateEvents, TeleBoxDragHandleType, type TeleBoxEvent, type TeleBoxEventConfig, type TeleBoxEvents, type TeleBoxHandleType, TeleBoxManager, type TeleBoxManagerConfig, type TeleBoxManagerCreateConfig, type TeleBoxManagerEvent, type TeleBoxManagerEventConfig, type TeleBoxManagerEvents, type TeleBoxManagerQueryConfig, type TeleBoxManagerUpdateConfig, type TeleBoxRect, type TeleBoxSize, type TeleBoxState, type TeleTitleBar, type TeleTitleBarConfig, type TeleTitleBarEvent };
|
package/dist/style.css
CHANGED
|
@@ -362,7 +362,7 @@
|
|
|
362
362
|
visibility: hidden;
|
|
363
363
|
display: block;
|
|
364
364
|
position: absolute;
|
|
365
|
-
z-index:
|
|
365
|
+
z-index: 1000;
|
|
366
366
|
width: 40px;
|
|
367
367
|
height: 40px;
|
|
368
368
|
margin: 0;
|
|
@@ -397,6 +397,16 @@
|
|
|
397
397
|
|
|
398
398
|
.telebox-color-scheme-dark.telebox-collector {
|
|
399
399
|
background-color: #43434d;
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
.telebox-collector-shadow {
|
|
403
|
+
position: absolute;
|
|
404
|
+
top: 0;
|
|
405
|
+
left: 0;
|
|
406
|
+
width: 100%;
|
|
407
|
+
height: 100%;
|
|
408
|
+
z-index: -1;
|
|
409
|
+
pointer-events: none;
|
|
400
410
|
}.telebox-max-titlebar {
|
|
401
411
|
user-select: none;
|
|
402
412
|
-webkit-touch-callout: none;
|
|
@@ -405,7 +415,7 @@
|
|
|
405
415
|
position: absolute;
|
|
406
416
|
top: 0;
|
|
407
417
|
left: 0;
|
|
408
|
-
z-index:
|
|
418
|
+
z-index: 1000;
|
|
409
419
|
}
|
|
410
420
|
.telebox-max-titlebar .telebox-title {
|
|
411
421
|
display: none;
|
|
@@ -503,4 +513,87 @@
|
|
|
503
513
|
}
|
|
504
514
|
.telebox-color-scheme-dark .telebox-title {
|
|
505
515
|
color: #e9e9e9;
|
|
516
|
+
}.telebox-app-menu-app-menu-badge {
|
|
517
|
+
position: absolute;
|
|
518
|
+
right: 0;
|
|
519
|
+
top: 0;
|
|
520
|
+
z-index: 1;
|
|
521
|
+
width: auto;
|
|
522
|
+
height: 12px;
|
|
523
|
+
max-width: 100%;
|
|
524
|
+
overflow: hidden;
|
|
525
|
+
text-overflow: ellipsis;
|
|
526
|
+
white-space: nowrap;
|
|
527
|
+
color: #fff;
|
|
528
|
+
background-color: red;
|
|
529
|
+
border-radius: 6px;
|
|
530
|
+
padding: 0 4px;
|
|
531
|
+
font-size: 12px;
|
|
532
|
+
line-height: 12px;
|
|
533
|
+
text-align: center;
|
|
534
|
+
transform: scale(0.7);
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
.telebox-app-menu-app-menu-tooltip {
|
|
538
|
+
position: absolute;
|
|
539
|
+
right: 0;
|
|
540
|
+
bottom: 0;
|
|
541
|
+
transform: translateY(-50px);
|
|
542
|
+
width: 100px;
|
|
543
|
+
height: auto;
|
|
544
|
+
display: flex;
|
|
545
|
+
flex-flow: column nowrap;
|
|
546
|
+
align-items: center;
|
|
547
|
+
justify-content: flex-end;
|
|
548
|
+
box-shadow: 0 2px 6px #2f419226;
|
|
549
|
+
border-radius: 4px;
|
|
550
|
+
padding: 3px 0;
|
|
551
|
+
background-color: #fff;
|
|
552
|
+
pointer-events: none;
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
.telebox-app-menu-app-menu-item {
|
|
556
|
+
display: flex;
|
|
557
|
+
flex-flow: row nowrap;
|
|
558
|
+
align-items: center;
|
|
559
|
+
justify-content: space-between;
|
|
560
|
+
padding: 0 5px 0 15px;
|
|
561
|
+
box-sizing: border-box;
|
|
562
|
+
width: 100%;
|
|
563
|
+
pointer-events: auto;
|
|
564
|
+
color: #999;
|
|
565
|
+
}
|
|
566
|
+
.telebox-app-menu-app-menu-item:hover {
|
|
567
|
+
background-color: #f0f0f0;
|
|
568
|
+
}
|
|
569
|
+
.telebox-app-menu-app-menu-item.show-all, .telebox-app-menu-app-menu-item.hidden-all {
|
|
570
|
+
padding-left: 20px;
|
|
571
|
+
pointer-events: none;
|
|
572
|
+
background-size: 15%;
|
|
573
|
+
background-position-y: center;
|
|
574
|
+
background-position-x: 2px;
|
|
575
|
+
background-repeat: no-repeat;
|
|
576
|
+
}
|
|
577
|
+
.telebox-app-menu-app-menu-item.active {
|
|
578
|
+
color: #333;
|
|
579
|
+
pointer-events: auto;
|
|
580
|
+
}
|
|
581
|
+
.telebox-app-menu-app-menu-item.hidden-all {
|
|
582
|
+
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMjggMjgiPgogICAgPGRlZnM+CiAgICAgICAgPHBhdGggaWQ9ImEiIGQ9Ik0wIDBoMjZ2MjZIMHoiIC8+CiAgICAgICAgPHBhdGggaWQ9ImMiIGQ9Ik0yNi44NjkgMEwyOCAxLjEzMVYyNi44N0wyNi44NjkgMjhIMS4xM0wwIDI2Ljg3VjEuMTMxTDEuMTMgMHoiIC8+CiAgICA8L2RlZnM+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEgMSkiPgogICAgICAgICAgICA8bWFzayBpZD0iYiIgZmlsbD0iI2ZmZiI+CiAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNhIiAvPgogICAgICAgICAgICA8L21hc2s+CiAgICAgICAgICAgIDxwYXRoIGZpbGw9Im5vbmUiIGQ9Ik0tNC42NDI5LTQuNjQyOWgzNS4yODU4djM1LjI4NThILTQuNjQyOXoiIG1hc2s9InVybCgjYikiIC8+CiAgICAgICAgPC9nPgogICAgICAgIDxnPgogICAgICAgICAgICA8bWFzayBpZD0iZCIgZmlsbD0iI2ZmZiI+CiAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNjIiAvPgogICAgICAgICAgICA8L21hc2s+CiAgICAgICAgICAgIDxwYXRoIGZpbGw9Im5vbmUiIGQ9Ik0tMTcuNTE2OCAxNEwxNC0xNy41MTY4IDQ1LjUxNjggMTQgMTQgNDUuNTE2OHoiIG1hc2s9InVybCgjZCkiIC8+CiAgICAgICAgPC9nPgogICAgICAgIDxwYXRoIHN0cm9rZT0iI0E3QTdDQSIgc3Ryb2tlLXdpZHRoPSIxLjIiCiAgICAgICAgICAgIGQ9Ik0xMC4wODg2IDIxLjQ4NjV2LTMuNjk2Nkg2LjM5Mk0yMS4zODU1IDEwLjE4OTVoLTMuNjk2NlY2LjQ5M00yMS40MDIgMTcuNzk4M2gtMy42OTY2djMuNjk2Nk0xMC4yNTAzIDYuMTQ5OHYzLjg5ODVINi4zNTE3IiAvPgogICAgPC9nPgo8L3N2Zz4K);
|
|
583
|
+
}
|
|
584
|
+
.telebox-app-menu-app-menu-item.show-all {
|
|
585
|
+
border-top: 1px solid #ccc;
|
|
586
|
+
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMjggMjgiPgogICAgPGRlZnM+CiAgICAgICAgPHBhdGggaWQ9ImEiIGQ9Ik0wIDBoMjh2MjhIMHoiIC8+CiAgICA8L2RlZnM+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxtYXNrIGlkPSJiIiBmaWxsPSIjZmZmIj4KICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjYSIgLz4KICAgICAgICA8L21hc2s+CiAgICAgICAgPGcgZmlsbD0iI0E3QTdDQSIgZmlsbC1ydWxlPSJub256ZXJvIiBtYXNrPSJ1cmwoI2IpIj4KICAgICAgICAgICAgPHBhdGgKICAgICAgICAgICAgICAgIGQ9Ik0yMC40ODEgMTcuMWgxLjJ2NC41ODFIMTcuMXYtMS4yaDMuMzgxVjE3LjF6bS0xNC4xOTA1LS4wMDloMS4ydjMuMzgxaDMuMzgwOXYxLjJoLTQuNTgxdi00LjU4MXpNMTcuMSA2LjE5MDVoNC41ODF2NC41ODA5aC0xLjJ2LTMuMzgxSDE3LjF2LTEuMnptLTEwLjcwMDguMTA4N2g0Ljc5ODV2MS4ySDcuNTk5MnYzLjU5ODVoLTEuMlY2LjI5OTJ6IiAvPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+Cg==);
|
|
587
|
+
}
|
|
588
|
+
|
|
589
|
+
.telebox-app-menu-app-menu-item-title {
|
|
590
|
+
flex: 1;
|
|
591
|
+
overflow: hidden;
|
|
592
|
+
text-overflow: ellipsis;
|
|
593
|
+
white-space: nowrap;
|
|
594
|
+
font-size: 12px;
|
|
595
|
+
line-height: 20px;
|
|
596
|
+
text-align: left;
|
|
597
|
+
height: 20px;
|
|
598
|
+
pointer-events: none;
|
|
506
599
|
}
|