vue-stack-tabs 0.1.51 → 1.0.1

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.
Files changed (94) hide show
  1. package/README.md +717 -3
  2. package/dist/index.d.ts +3 -0
  3. package/dist/src/lib/StackTabs.vue.d.ts +33 -161
  4. package/dist/src/lib/components/ContextMenu/ContextMenuItem.vue.d.ts +6 -6
  5. package/dist/src/lib/components/ContextMenu/index.vue.d.ts +14 -14
  6. package/dist/src/lib/components/PageLoading.vue.d.ts +5 -5
  7. package/dist/src/lib/components/TabHeader/TabHeaderButton.vue.d.ts +24 -15
  8. package/dist/src/lib/components/TabHeader/TabHeaderItem.vue.d.ts +10 -8
  9. package/dist/src/lib/components/TabHeader/TabHeaderScroll.vue.d.ts +31 -13
  10. package/dist/src/lib/components/TabHeader/index.vue.d.ts +172 -20
  11. package/dist/src/lib/hooks/tabPanel/evict.d.ts +24 -0
  12. package/dist/src/lib/hooks/tabPanel/evict.spec.d.ts +1 -0
  13. package/dist/src/lib/hooks/tabPanel/scroll.d.ts +8 -0
  14. package/dist/src/lib/hooks/tabPanel/session.d.ts +9 -0
  15. package/dist/src/lib/hooks/tabPanel/state.d.ts +77 -0
  16. package/dist/src/lib/hooks/useContextMenu.d.ts +6 -1
  17. package/dist/src/lib/hooks/useTabActions.d.ts +68 -0
  18. package/dist/src/lib/hooks/{useTabMitt.d.ts → useTabEventBus.d.ts} +4 -3
  19. package/dist/src/lib/hooks/useTabLoading.d.ts +6 -0
  20. package/dist/src/lib/hooks/{useTabpanel.d.ts → useTabPanel.d.ts} +20 -14
  21. package/dist/src/lib/hooks/useTabPanel.spec.d.ts +1 -0
  22. package/dist/src/lib/hooks/useTabRouter.d.ts +14 -5
  23. package/dist/src/lib/i18n/index.d.ts +1 -1
  24. package/dist/src/lib/i18n/lang/en.d.ts +1 -0
  25. package/dist/src/lib/i18n/lang/zh-CN.d.ts +1 -0
  26. package/dist/src/lib/index.d.ts +5 -4
  27. package/dist/src/lib/model/TabModel.d.ts +20 -3
  28. package/dist/src/lib/model/TabModel.spec.d.ts +1 -0
  29. package/dist/src/lib/utils/iframeBridge.d.ts +31 -0
  30. package/dist/src/lib/utils/iframeBridge.spec.d.ts +1 -0
  31. package/dist/src/lib/utils/scrollUtils.d.ts +28 -0
  32. package/dist/src/lib/utils/tabInfoEncoder.d.ts +19 -0
  33. package/dist/src/lib/utils/tabInfoEncoder.spec.d.ts +1 -0
  34. package/dist/src/lib/utils/urlParser.d.ts +19 -0
  35. package/dist/src/lib/utils/urlParser.spec.d.ts +1 -0
  36. package/dist/src/lib/versionLogger.d.ts +2 -0
  37. package/dist/style.css +1 -1
  38. package/dist/vue-stack-tabs.css +1 -0
  39. package/dist/vue-stack-tabs.es.js +1795 -1679
  40. package/dist/vue-stack-tabs.umd.js +1 -5
  41. package/package.json +76 -39
  42. package/src/lib/StackTabs.vue +222 -47
  43. package/src/lib/assets/image/open.svg +1 -0
  44. package/src/lib/assets/style/common/var.scss +1 -1
  45. package/src/lib/assets/style/icon.scss +6 -0
  46. package/src/lib/assets/style/stackTab.scss +46 -3
  47. package/src/lib/assets/style/transition.scss +63 -62
  48. package/src/lib/components/ContextMenu/ContextMenuItem.vue +7 -0
  49. package/src/lib/components/ContextMenu/index.vue +50 -38
  50. package/src/lib/components/PageLoading.vue +30 -10
  51. package/src/lib/components/TabHeader/TabHeaderButton.vue +12 -3
  52. package/src/lib/components/TabHeader/TabHeaderItem.vue +31 -27
  53. package/src/lib/components/TabHeader/TabHeaderScroll.vue +83 -77
  54. package/src/lib/components/TabHeader/index.vue +45 -40
  55. package/src/lib/hooks/tabPanel/evict.spec.ts +85 -0
  56. package/src/lib/hooks/tabPanel/evict.ts +57 -0
  57. package/src/lib/hooks/tabPanel/scroll.ts +52 -0
  58. package/src/lib/hooks/tabPanel/session.ts +33 -0
  59. package/src/lib/hooks/tabPanel/state.ts +52 -0
  60. package/src/lib/hooks/useContextMenu.ts +22 -20
  61. package/src/lib/hooks/useTabActions.ts +148 -0
  62. package/src/lib/hooks/useTabEventBus.ts +31 -0
  63. package/src/lib/hooks/useTabLoading.ts +12 -4
  64. package/src/lib/hooks/useTabPanel.spec.ts +34 -0
  65. package/src/lib/hooks/useTabPanel.tsx +546 -0
  66. package/src/lib/hooks/useTabRouter.ts +114 -103
  67. package/src/lib/i18n/index.ts +14 -18
  68. package/src/lib/i18n/lang/en.ts +2 -1
  69. package/src/lib/i18n/lang/zh-CN.ts +2 -1
  70. package/src/lib/iframe.vue +6 -0
  71. package/src/lib/index.ts +27 -8
  72. package/src/lib/model/TabModel.spec.ts +40 -0
  73. package/src/lib/model/TabModel.ts +22 -9
  74. package/src/lib/nuxt/module.d.ts +19 -0
  75. package/src/lib/nuxt/module.ts +34 -0
  76. package/src/lib/nuxt/runtime/plugin.client.ts +11 -0
  77. package/src/lib/utils/iframeBridge.spec.ts +37 -0
  78. package/src/lib/utils/iframeBridge.ts +52 -0
  79. package/src/lib/utils/{TabScrollHelper.ts → scrollUtils.ts} +23 -29
  80. package/src/lib/utils/tabInfoEncoder.spec.ts +42 -0
  81. package/src/lib/utils/tabInfoEncoder.ts +65 -0
  82. package/src/lib/utils/urlParser.spec.ts +45 -0
  83. package/src/lib/utils/urlParser.ts +42 -0
  84. package/src/lib/{banner.ts → versionLogger.ts} +4 -5
  85. package/dist/src/lib/banner.d.ts +0 -2
  86. package/dist/src/lib/hooks/useStackTab.d.ts +0 -11
  87. package/dist/src/lib/utils/TabIdHelper.d.ts +0 -11
  88. package/dist/src/lib/utils/TabScrollHelper.d.ts +0 -33
  89. package/dist/src/lib/utils/UriHelper.d.ts +0 -4
  90. package/src/lib/hooks/useStackTab.ts +0 -119
  91. package/src/lib/hooks/useTabMitt.ts +0 -30
  92. package/src/lib/hooks/useTabpanel.tsx +0 -708
  93. package/src/lib/utils/TabIdHelper.ts +0 -70
  94. package/src/lib/utils/UriHelper.ts +0 -22
@@ -1,185 +1,57 @@
1
1
  import { TransitionProps, DefineComponent } from 'vue';
2
2
  import { ITabData, TabScrollMode } from './model/TabModel';
3
-
4
- declare const _default: __VLS_WithTemplateSlots<DefineComponent<{
5
- defaultTabs?: ITabData[] | undefined;
6
- max?: number | undefined;
7
- append?: string | undefined;
8
- contextmenu?: boolean | object | undefined;
9
- pageTransition?: string | undefined;
10
- pageTransitionBack?: string | undefined;
11
- tabTransition?: string | TransitionProps | undefined;
12
- tabScrollMode?: TabScrollMode | undefined;
13
- width?: string | undefined;
14
- height?: string | undefined;
15
- i18n?: string | undefined;
16
- space?: number | undefined;
17
- globalScroll: boolean;
3
+ type __VLS_Props = {
4
+ defaultTabs?: ITabData[];
5
+ max?: number;
6
+ contextmenu?: boolean | object;
7
+ pageTransition?: string;
8
+ pageTransitionBack?: string;
9
+ tabTransition?: string | TransitionProps;
10
+ tabScrollMode?: TabScrollMode;
11
+ width?: string;
12
+ height?: string;
13
+ i18n?: string;
14
+ space?: number;
15
+ globalScroll?: boolean;
18
16
  iframePath: string;
19
- sessionPrefix?: string | undefined;
20
- }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
17
+ sessionPrefix?: string;
18
+ /** 允许通过 postMessage 调用 openTab 的 iframe 来源,默认仅同源 */
19
+ iframeAllowedOrigins?: string[];
20
+ };
21
+ declare function __VLS_template(): {
22
+ attrs: Partial<{}>;
23
+ slots: {
24
+ leftButton?(_: {}): any;
25
+ rightButton?(_: {}): any;
26
+ };
27
+ refs: {};
28
+ rootEl: HTMLDivElement;
29
+ };
30
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
31
+ declare const __VLS_component: DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
21
32
  onActive: (...args: any[]) => void;
22
33
  onPageLoaded: (...args: any[]) => void;
23
- }, string, import('vue').PublicProps, Readonly<{
24
- defaultTabs?: ITabData[] | undefined;
25
- max?: number | undefined;
26
- append?: string | undefined;
27
- contextmenu?: boolean | object | undefined;
28
- pageTransition?: string | undefined;
29
- pageTransitionBack?: string | undefined;
30
- tabTransition?: string | TransitionProps | undefined;
31
- tabScrollMode?: TabScrollMode | undefined;
32
- width?: string | undefined;
33
- height?: string | undefined;
34
- i18n?: string | undefined;
35
- space?: number | undefined;
36
- globalScroll: boolean;
37
- iframePath: string;
38
- sessionPrefix?: string | undefined;
39
- }> & Readonly<{
34
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
40
35
  onOnActive?: ((...args: any[]) => any) | undefined;
41
36
  onOnPageLoaded?: ((...args: any[]) => any) | undefined;
42
37
  }>, {
43
- contextmenu: boolean | object;
44
38
  max: number;
39
+ contextmenu: boolean | object;
45
40
  space: number;
46
41
  width: string;
47
42
  tabScrollMode: TabScrollMode;
48
43
  tabTransition: string | TransitionProps;
49
44
  defaultTabs: ITabData[];
50
- append: string;
51
45
  pageTransition: string;
52
46
  pageTransitionBack: string;
53
47
  height: string;
54
48
  i18n: string;
55
49
  globalScroll: boolean;
56
50
  sessionPrefix: string;
57
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>, {
58
- leftButton?(_: {}): any;
59
- rightButton?(_: {}): any;
60
- }>;
51
+ iframeAllowedOrigins: string[];
52
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
53
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
61
54
  export default _default;
62
- export declare const __VLS_globalTypesStart: {};
63
- declare global {
64
- type __VLS_IntrinsicElements = __VLS_PickNotAny<import('vue/jsx-runtime').JSX.IntrinsicElements, __VLS_PickNotAny<globalThis.JSX.IntrinsicElements, Record<string, any>>>;
65
- type __VLS_Element = __VLS_PickNotAny<import('vue/jsx-runtime').JSX.Element, globalThis.JSX.Element>;
66
- type __VLS_GlobalComponents = __VLS_PickNotAny<import('vue').GlobalComponents, {}> & __VLS_PickNotAny<import('@vue/runtime-core').GlobalComponents, {}> & __VLS_PickNotAny<import('@vue/runtime-dom').GlobalComponents, {}> & Pick<typeof import('vue'), 'Transition' | 'TransitionGroup' | 'KeepAlive' | 'Suspense' | 'Teleport'>;
67
- type __VLS_BuiltInPublicProps = __VLS_PickNotAny<import('vue').VNodeProps, {}> & __VLS_PickNotAny<import('vue').AllowedComponentProps, {}> & __VLS_PickNotAny<import('vue').ComponentCustomProps, {}>;
68
- type __VLS_IsAny<T> = 0 extends 1 & T ? true : false;
69
- type __VLS_PickNotAny<A, B> = __VLS_IsAny<A> extends true ? B : A;
70
- const __VLS_intrinsicElements: __VLS_IntrinsicElements;
71
- function __VLS_getVForSourceType(source: number): [number, number, number][];
72
- function __VLS_getVForSourceType(source: string): [string, number, number][];
73
- function __VLS_getVForSourceType<T extends any[]>(source: T): [
74
- item: T[number],
75
- key: number,
76
- index: number
77
- ][];
78
- function __VLS_getVForSourceType<T extends {
79
- [Symbol.iterator](): Iterator<any>;
80
- }>(source: T): [
81
- item: T extends {
82
- [Symbol.iterator](): Iterator<infer T1>;
83
- } ? T1 : never,
84
- key: number,
85
- index: undefined
86
- ][];
87
- function __VLS_getVForSourceType<T extends number | {
88
- [Symbol.iterator](): Iterator<any>;
89
- }>(source: T): [
90
- item: number | (Exclude<T, number> extends {
91
- [Symbol.iterator](): Iterator<infer T1>;
92
- } ? T1 : never),
93
- key: number,
94
- index: undefined
95
- ][];
96
- function __VLS_getVForSourceType<T>(source: T): [
97
- item: T[keyof T],
98
- key: keyof T,
99
- index: number
100
- ][];
101
- function __VLS_getSlotParams<T>(slot: T): Parameters<__VLS_PickNotAny<NonNullable<T>, (...args: any[]) => any>>;
102
- function __VLS_getSlotParam<T>(slot: T): Parameters<__VLS_PickNotAny<NonNullable<T>, (...args: any[]) => any>>[0];
103
- function __VLS_directiveFunction<T>(dir: T): T extends import('vue').ObjectDirective<infer E, infer V> | import('vue').FunctionDirective<infer E, infer V> ? (value: V) => void : T;
104
- function __VLS_withScope<T, K>(ctx: T, scope: K): ctx is T & K;
105
- function __VLS_makeOptional<T>(t: T): {
106
- [K in keyof T]?: T[K];
107
- };
108
- type __VLS_SelfComponent<N, C> = string extends N ? {} : N extends string ? {
109
- [P in N]: C;
110
- } : {};
111
- type __VLS_WithComponent<N0 extends string, LocalComponents, N1 extends string, N2 extends string, N3 extends string> = N1 extends keyof LocalComponents ? N1 extends N0 ? Pick<LocalComponents, N0 extends keyof LocalComponents ? N0 : never> : {
112
- [K in N0]: LocalComponents[N1];
113
- } : N2 extends keyof LocalComponents ? N2 extends N0 ? Pick<LocalComponents, N0 extends keyof LocalComponents ? N0 : never> : {
114
- [K in N0]: LocalComponents[N2];
115
- } : N3 extends keyof LocalComponents ? N3 extends N0 ? Pick<LocalComponents, N0 extends keyof LocalComponents ? N0 : never> : {
116
- [K in N0]: LocalComponents[N3];
117
- } : N1 extends keyof __VLS_GlobalComponents ? N1 extends N0 ? Pick<__VLS_GlobalComponents, N0 extends keyof __VLS_GlobalComponents ? N0 : never> : {
118
- [K in N0]: __VLS_GlobalComponents[N1];
119
- } : N2 extends keyof __VLS_GlobalComponents ? N2 extends N0 ? Pick<__VLS_GlobalComponents, N0 extends keyof __VLS_GlobalComponents ? N0 : never> : {
120
- [K in N0]: __VLS_GlobalComponents[N2];
121
- } : N3 extends keyof __VLS_GlobalComponents ? N3 extends N0 ? Pick<__VLS_GlobalComponents, N0 extends keyof __VLS_GlobalComponents ? N0 : never> : {
122
- [K in N0]: __VLS_GlobalComponents[N3];
123
- } : {
124
- [K in N0]: unknown;
125
- };
126
- function __VLS_asFunctionalComponent<T, K = T extends new (...args: any) => any ? InstanceType<T> : unknown>(t: T, instance?: K): T extends new (...args: any) => any ? (props: (K extends {
127
- $props: infer Props;
128
- } ? Props : any) & Record<string, unknown>, ctx?: any) => __VLS_Element & {
129
- __ctx?: {
130
- attrs?: any;
131
- slots?: K extends {
132
- $slots: infer Slots;
133
- } ? Slots : any;
134
- emit?: K extends {
135
- $emit: infer Emit;
136
- } ? Emit : any;
137
- } & {
138
- props?: (K extends {
139
- $props: infer Props;
140
- } ? Props : any) & Record<string, unknown>;
141
- expose?(exposed: K): void;
142
- };
143
- } : T extends () => any ? (props: {}, ctx?: any) => ReturnType<T> : T extends (...args: any) => any ? T : (_: {} & Record<string, unknown>, ctx?: any) => {
144
- __ctx?: {
145
- attrs?: any;
146
- expose?: any;
147
- slots?: any;
148
- emit?: any;
149
- props?: {} & Record<string, unknown>;
150
- };
151
- };
152
- function __VLS_elementAsFunction<T>(tag: T, endTag?: T): (_: T & Record<string, unknown>) => void;
153
- function __VLS_functionalComponentArgsRest<T extends (...args: any) => any>(t: T): Parameters<T>['length'] extends 2 ? [any] : [];
154
- function __VLS_pickFunctionalComponentCtx<T, K>(comp: T, compInstance: K): __VLS_PickNotAny<'__ctx' extends keyof __VLS_PickNotAny<K, {}> ? K extends {
155
- __ctx?: infer Ctx;
156
- } ? Ctx : never : any, T extends (props: any, ctx: infer Ctx) => any ? Ctx : any>;
157
- type __VLS_FunctionalComponentProps<T, K> = '__ctx' extends keyof __VLS_PickNotAny<K, {}> ? K extends {
158
- __ctx?: {
159
- props?: infer P;
160
- };
161
- } ? NonNullable<P> : never : T extends (props: infer P, ...args: any) => any ? P : {};
162
- type __VLS_AsFunctionOrAny<F> = unknown extends F ? any : ((...args: any) => any) extends F ? F : any;
163
- function __VLS_normalizeSlot<S>(s: S): S extends () => infer R ? (props: {}) => R : S;
164
- /**
165
- * emit
166
- */
167
- type __VLS_UnionToIntersection<U> = (U extends unknown ? (arg: U) => unknown : never) extends ((arg: infer P) => unknown) ? P : never;
168
- type __VLS_OverloadUnionInner<T, U = unknown> = U & T extends (...args: infer A) => infer R ? U extends T ? never : __VLS_OverloadUnionInner<T, Pick<T, keyof T> & U & ((...args: A) => R)> | ((...args: A) => R) : never;
169
- type __VLS_OverloadUnion<T> = Exclude<__VLS_OverloadUnionInner<(() => never) & T>, T extends () => never ? never : () => never>;
170
- type __VLS_ConstructorOverloads<T> = __VLS_OverloadUnion<T> extends infer F ? F extends (event: infer E, ...args: infer A) => any ? {
171
- [K in E & string]: (...args: A) => void;
172
- } : never : never;
173
- type __VLS_NormalizeEmits<T> = __VLS_PrettifyGlobal<__VLS_UnionToIntersection<__VLS_ConstructorOverloads<T> & {
174
- [K in keyof T]: T[K] extends any[] ? {
175
- (...args: T[K]): void;
176
- } : never;
177
- }>>;
178
- type __VLS_PrettifyGlobal<T> = {
179
- [K in keyof T]: T[K];
180
- } & {};
181
- }
182
- export declare const __VLS_globalTypesEnd: {};
183
55
  type __VLS_WithTemplateSlots<T, S> = T & {
184
56
  new (): {
185
57
  $slots: S;
@@ -1,8 +1,8 @@
1
- declare const _default: import('vue').DefineComponent<{
2
- icon?: string | undefined;
1
+ type __VLS_Props = {
2
+ /** 图标 class,如 stack-tab__icon-reload svg-mask */
3
+ icon?: string;
4
+ /** 显示文本 */
3
5
  title: string;
4
- }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{
5
- icon?: string | undefined;
6
- title: string;
7
- }> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
6
+ };
7
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
8
8
  export default _default;
@@ -1,21 +1,21 @@
1
1
  import { ITabItem, IContextMenu } from '../../model/TabModel';
2
-
3
- declare const _default: import('vue').DefineComponent<{
2
+ type __VLS_Props = {
4
3
  index: number;
5
- left: number;
6
- top: number;
7
- contextMenu?: IContextMenu[] | undefined;
8
- tabItem: ITabItem;
9
- max: number;
10
- }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{
11
- index: number;
12
- left: number;
13
- top: number;
14
- contextMenu?: IContextMenu[] | undefined;
4
+ left?: number;
5
+ top?: number;
6
+ contextMenu?: Array<IContextMenu>;
15
7
  tabItem: ITabItem;
16
8
  max: number;
17
- }> & Readonly<{}>, {
9
+ };
10
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
11
+ close: () => any;
12
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
13
+ onClose?: (() => any) | undefined;
14
+ }>, {
18
15
  left: number;
19
16
  top: number;
20
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
17
+ contextMenu: Array<IContextMenu>;
18
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
19
+ menuElementRef: HTMLDivElement;
20
+ }, HTMLDivElement>;
21
21
  export default _default;
@@ -1,6 +1,6 @@
1
- declare const _default: import('vue').DefineComponent<{
2
- tId: string;
3
- }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{
4
- tId: string;
5
- }> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
1
+ type __VLS_Props = {
2
+ /** 当前标签 id,用于过滤 PAGE_LOADING 事件 */
3
+ tabId: string;
4
+ };
5
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
6
6
  export default _default;
@@ -1,20 +1,29 @@
1
- declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<{
2
- disabled?: boolean | undefined;
3
- shadow?: string | null | undefined;
4
- iconClass?: string | undefined;
5
- title?: string | undefined;
6
- }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{
7
- disabled?: boolean | undefined;
8
- shadow?: string | null | undefined;
9
- iconClass?: string | undefined;
10
- title?: string | undefined;
11
- }> & Readonly<{}>, {
1
+ type __VLS_Props = {
2
+ /** 是否禁用 */
3
+ disabled?: boolean;
4
+ /** 阴影方向,用于滚动到边界时的视觉提示 */
5
+ shadow?: 'left' | 'right' | null;
6
+ /** 图标 class(无 slot 时使用) */
7
+ iconClass?: string;
8
+ /** 悬停提示 */
9
+ title?: string;
10
+ };
11
+ declare function __VLS_template(): {
12
+ attrs: Partial<{}>;
13
+ slots: {
14
+ icon?(_: {}): any;
15
+ };
16
+ refs: {};
17
+ rootEl: HTMLDivElement;
18
+ };
19
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
20
+ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
21
+ title: string;
12
22
  disabled: boolean;
13
- shadow: string | null;
23
+ shadow: "left" | "right" | null;
14
24
  iconClass: string;
15
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>, {
16
- icon?(_: {}): any;
17
- }>;
25
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
26
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
18
27
  export default _default;
19
28
  type __VLS_WithTemplateSlots<T, S> = T & {
20
29
  new (): {
@@ -1,12 +1,14 @@
1
- declare const _default: import('vue').DefineComponent<{
1
+ import { ITabItem } from '../../model/TabModel';
2
+ type __VLS_Props = {
2
3
  item: ITabItem;
3
- }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
4
- close: (...args: any[]) => void;
4
+ };
5
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
5
6
  active: (...args: any[]) => void;
6
- }, string, import('vue').PublicProps, Readonly<{
7
- item: ITabItem;
8
- }> & Readonly<{
9
- onClose?: ((...args: any[]) => any) | undefined;
7
+ close: (...args: any[]) => void;
8
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
10
9
  onActive?: ((...args: any[]) => any) | undefined;
11
- }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
10
+ onClose?: ((...args: any[]) => any) | undefined;
11
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
12
+ tabElementRef: HTMLLIElement;
13
+ }, HTMLLIElement>;
12
14
  export default _default;
@@ -1,21 +1,39 @@
1
- declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<{
2
- space?: number | undefined;
3
- isScrollWheel?: boolean | undefined;
4
- isScrollButton?: boolean | undefined;
5
- }, {
1
+ type __VLS_Props = {
2
+ /** 每次点击箭头或滚轮的移动距离(px) */
3
+ space?: number;
4
+ /** 是否支持滚轮滚动 */
5
+ isScrollWheel?: boolean;
6
+ /** 是否显示左右箭头 */
7
+ isScrollButton?: boolean;
8
+ };
9
+ declare function __VLS_template(): {
10
+ attrs: Partial<{}>;
11
+ slots: {
12
+ default?(_: {}): any;
13
+ };
14
+ refs: {
15
+ headerScroll: HTMLDivElement;
16
+ container: HTMLDivElement;
17
+ bar: HTMLDivElement;
18
+ thumb: HTMLDivElement;
19
+ };
20
+ rootEl: any;
21
+ };
22
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
23
+ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {
6
24
  scrollIntoView: (el: HTMLElement) => void;
7
25
  isInView: (el: HTMLElement) => boolean;
8
- }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{
9
- space?: number | undefined;
10
- isScrollWheel?: boolean | undefined;
11
- isScrollButton?: boolean | undefined;
12
- }> & Readonly<{}>, {
26
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
13
27
  space: number;
14
28
  isScrollWheel: boolean;
15
29
  isScrollButton: boolean;
16
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>, {
17
- default?(_: {}): any;
18
- }>;
30
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
31
+ headerScroll: HTMLDivElement;
32
+ container: HTMLDivElement;
33
+ bar: HTMLDivElement;
34
+ thumb: HTMLDivElement;
35
+ }, any>;
36
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
19
37
  export default _default;
20
38
  type __VLS_WithTemplateSlots<T, S> = T & {
21
39
  new (): {
@@ -1,31 +1,183 @@
1
- import { TransitionProps } from 'vue';
1
+ import { nextTick, TransitionProps } from 'vue';
2
2
  import { TabScrollMode } from '../../model/TabModel';
3
-
4
- declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<{
3
+ type __VLS_Props = {
5
4
  space: number;
6
- tabScrollMode?: TabScrollMode | undefined;
7
- tabTransition?: string | TransitionProps | undefined;
8
- contextmenu?: boolean | object | undefined;
9
- max?: number | undefined;
10
- }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
5
+ tabScrollMode?: TabScrollMode;
6
+ tabTransition?: string | TransitionProps;
7
+ contextmenu?: boolean | object;
8
+ max?: number;
9
+ };
10
+ declare function __VLS_template(): {
11
+ attrs: Partial<{}>;
12
+ slots: {
13
+ leftButton?(_: {}): any;
14
+ rightButton?(_: {}): any;
15
+ };
16
+ refs: {
17
+ scrollContainerRef: ({
18
+ $: import('vue').ComponentInternalInstance;
19
+ $data: {};
20
+ $props: {
21
+ readonly space?: number | undefined;
22
+ readonly isScrollWheel?: boolean | undefined;
23
+ readonly isScrollButton?: boolean | undefined;
24
+ } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
25
+ $attrs: {
26
+ [x: string]: unknown;
27
+ };
28
+ $refs: {
29
+ [x: string]: unknown;
30
+ } & {
31
+ headerScroll: HTMLDivElement;
32
+ container: HTMLDivElement;
33
+ bar: HTMLDivElement;
34
+ thumb: HTMLDivElement;
35
+ };
36
+ $slots: Readonly<{
37
+ [name: string]: import('vue').Slot<any> | undefined;
38
+ }>;
39
+ $root: import('vue').ComponentPublicInstance | null;
40
+ $parent: import('vue').ComponentPublicInstance | null;
41
+ $host: Element | null;
42
+ $emit: (event: string, ...args: any[]) => void;
43
+ $el: any;
44
+ $options: import('vue').ComponentOptionsBase<Readonly<{
45
+ space?: number;
46
+ isScrollWheel?: boolean;
47
+ isScrollButton?: boolean;
48
+ }> & Readonly<{}>, {
49
+ scrollIntoView: (el: HTMLElement) => void;
50
+ isInView: (el: HTMLElement) => boolean;
51
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, {
52
+ space: number;
53
+ isScrollWheel: boolean;
54
+ isScrollButton: boolean;
55
+ }, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & {
56
+ beforeCreate?: (() => void) | (() => void)[];
57
+ created?: (() => void) | (() => void)[];
58
+ beforeMount?: (() => void) | (() => void)[];
59
+ mounted?: (() => void) | (() => void)[];
60
+ beforeUpdate?: (() => void) | (() => void)[];
61
+ updated?: (() => void) | (() => void)[];
62
+ activated?: (() => void) | (() => void)[];
63
+ deactivated?: (() => void) | (() => void)[];
64
+ beforeDestroy?: (() => void) | (() => void)[];
65
+ beforeUnmount?: (() => void) | (() => void)[];
66
+ destroyed?: (() => void) | (() => void)[];
67
+ unmounted?: (() => void) | (() => void)[];
68
+ renderTracked?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
69
+ renderTriggered?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
70
+ errorCaptured?: ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void)[];
71
+ };
72
+ $forceUpdate: () => void;
73
+ $nextTick: typeof nextTick;
74
+ $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import('@vue/reactivity').OnCleanup]) => any : (...args: [any, any, import('@vue/reactivity').OnCleanup]) => any, options?: import('vue').WatchOptions): import('vue').WatchStopHandle;
75
+ } & Readonly<{
76
+ space: number;
77
+ isScrollWheel: boolean;
78
+ isScrollButton: boolean;
79
+ }> & Omit<Readonly<{
80
+ space?: number;
81
+ isScrollWheel?: boolean;
82
+ isScrollButton?: boolean;
83
+ }> & Readonly<{}>, "scrollIntoView" | "isInView" | ("space" | "isScrollWheel" | "isScrollButton")> & import('vue').ShallowUnwrapRef<{
84
+ scrollIntoView: (el: HTMLElement) => void;
85
+ isInView: (el: HTMLElement) => boolean;
86
+ }> & {} & import('vue').ComponentCustomProperties & {} & {
87
+ $slots: {
88
+ default?(_: {}): any;
89
+ };
90
+ }) | null;
91
+ };
92
+ rootEl: HTMLDivElement;
93
+ };
94
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
95
+ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
11
96
  active: (...args: any[]) => void;
12
- }, string, import('vue').PublicProps, Readonly<{
13
- space: number;
14
- tabScrollMode?: TabScrollMode | undefined;
15
- tabTransition?: string | TransitionProps | undefined;
16
- contextmenu?: boolean | object | undefined;
17
- max?: number | undefined;
18
- }> & Readonly<{
97
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
19
98
  onActive?: ((...args: any[]) => any) | undefined;
20
99
  }>, {
21
- contextmenu: boolean | object;
22
100
  max: number;
101
+ contextmenu: boolean | object;
23
102
  tabScrollMode: TabScrollMode;
24
103
  tabTransition: string | TransitionProps;
25
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>, {
26
- leftButton?(_: {}): any;
27
- rightButton?(_: {}): any;
28
- }>;
104
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
105
+ scrollContainerRef: ({
106
+ $: import('vue').ComponentInternalInstance;
107
+ $data: {};
108
+ $props: {
109
+ readonly space?: number | undefined;
110
+ readonly isScrollWheel?: boolean | undefined;
111
+ readonly isScrollButton?: boolean | undefined;
112
+ } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
113
+ $attrs: {
114
+ [x: string]: unknown;
115
+ };
116
+ $refs: {
117
+ [x: string]: unknown;
118
+ } & {
119
+ headerScroll: HTMLDivElement;
120
+ container: HTMLDivElement;
121
+ bar: HTMLDivElement;
122
+ thumb: HTMLDivElement;
123
+ };
124
+ $slots: Readonly<{
125
+ [name: string]: import('vue').Slot<any> | undefined;
126
+ }>;
127
+ $root: import('vue').ComponentPublicInstance | null;
128
+ $parent: import('vue').ComponentPublicInstance | null;
129
+ $host: Element | null;
130
+ $emit: (event: string, ...args: any[]) => void;
131
+ $el: any;
132
+ $options: import('vue').ComponentOptionsBase<Readonly<{
133
+ space?: number;
134
+ isScrollWheel?: boolean;
135
+ isScrollButton?: boolean;
136
+ }> & Readonly<{}>, {
137
+ scrollIntoView: (el: HTMLElement) => void;
138
+ isInView: (el: HTMLElement) => boolean;
139
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, {
140
+ space: number;
141
+ isScrollWheel: boolean;
142
+ isScrollButton: boolean;
143
+ }, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & {
144
+ beforeCreate?: (() => void) | (() => void)[];
145
+ created?: (() => void) | (() => void)[];
146
+ beforeMount?: (() => void) | (() => void)[];
147
+ mounted?: (() => void) | (() => void)[];
148
+ beforeUpdate?: (() => void) | (() => void)[];
149
+ updated?: (() => void) | (() => void)[];
150
+ activated?: (() => void) | (() => void)[];
151
+ deactivated?: (() => void) | (() => void)[];
152
+ beforeDestroy?: (() => void) | (() => void)[];
153
+ beforeUnmount?: (() => void) | (() => void)[];
154
+ destroyed?: (() => void) | (() => void)[];
155
+ unmounted?: (() => void) | (() => void)[];
156
+ renderTracked?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
157
+ renderTriggered?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
158
+ errorCaptured?: ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void)[];
159
+ };
160
+ $forceUpdate: () => void;
161
+ $nextTick: typeof nextTick;
162
+ $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import('@vue/reactivity').OnCleanup]) => any : (...args: [any, any, import('@vue/reactivity').OnCleanup]) => any, options?: import('vue').WatchOptions): import('vue').WatchStopHandle;
163
+ } & Readonly<{
164
+ space: number;
165
+ isScrollWheel: boolean;
166
+ isScrollButton: boolean;
167
+ }> & Omit<Readonly<{
168
+ space?: number;
169
+ isScrollWheel?: boolean;
170
+ isScrollButton?: boolean;
171
+ }> & Readonly<{}>, "scrollIntoView" | "isInView" | ("space" | "isScrollWheel" | "isScrollButton")> & import('vue').ShallowUnwrapRef<{
172
+ scrollIntoView: (el: HTMLElement) => void;
173
+ isInView: (el: HTMLElement) => boolean;
174
+ }> & {} & import('vue').ComponentCustomProperties & {} & {
175
+ $slots: {
176
+ default?(_: {}): any;
177
+ };
178
+ }) | null;
179
+ }, HTMLDivElement>;
180
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
29
181
  export default _default;
30
182
  type __VLS_WithTemplateSlots<T, S> = T & {
31
183
  new (): {
@@ -0,0 +1,24 @@
1
+ import { ITabPage } from '../../model/TabModel';
2
+ /** 标记缓存为待驱逐 */
3
+ export declare const markCacheForEviction: (cacheName: string) => void;
4
+ /** 标记标签下所有页面为可驱逐,并标记该标签(关闭场景) */
5
+ export declare const markTabPagesForEviction: (tab: {
6
+ id: string;
7
+ pages: {
8
+ list(): ITabPage[];
9
+ };
10
+ }) => void;
11
+ /** 仅标记标签下所有页面为可驱逐(续签场景) */
12
+ export declare const markTabPagesForEvictionOnly: (tab: {
13
+ pages: {
14
+ list(): ITabPage[];
15
+ };
16
+ }) => void;
17
+ /** 将缓存 id 加入 caches */
18
+ export declare const addCache: (cacheName: string) => void;
19
+ /** 从 caches 中移除指定 id */
20
+ export declare const removeCache: (cacheName: string) => void;
21
+ /** 立即驱逐单个页面缓存 */
22
+ export declare const evictPageCache: (cacheName: string) => void;
23
+ /** 执行所有待驱逐缓存的驱逐 */
24
+ export declare const evictMarkedCaches: () => void;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ /** 恢复指定页面的滚动位置 */
2
+ export declare const restoreScroller: (pageCacheId: string) => void;
3
+ /** 保存指定页面的滚动位置 */
4
+ export declare const saveScroller: (pageCacheId: string) => void;
5
+ /** 移除指定页面的滚动记录 */
6
+ export declare const removeScroller: (pageCacheId: string) => void;
7
+ /** 为页面注册需要记录滚动位置的选择器 */
8
+ export declare const addPageScroller: (pageCacheId: string, ...selectorIds: string[]) => void;