tab-nav.d.ts 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302
  1. import { EpPropFinalized, EpPropMergeType } from "../../../utils/vue/props/types.js";
  2. import "../../../utils/index.js";
  3. import { TabPaneName, TabsPaneContext } from "./constants.js";
  4. import { TabBarInstance } from "./tab-bar.js";
  5. import * as vue from "vue";
  6. import { ExtractPropTypes, ExtractPublicPropTypes } from "vue";
  7. import * as vue_jsx_runtime0 from "vue/jsx-runtime";
  8. //#region ../../packages/components/tabs/src/tab-nav.d.ts
  9. declare const tabNavProps: {
  10. readonly panes: EpPropFinalized<(new (...args: any[]) => {
  11. uid: number;
  12. getVnode: () => vue.VNode;
  13. slots: vue.Slots;
  14. props: {
  15. label?: string | undefined;
  16. name?: (string | number) | undefined;
  17. closable?: boolean | undefined;
  18. disabled?: boolean | undefined;
  19. lazy?: boolean | undefined;
  20. };
  21. paneName: TabPaneName | undefined;
  22. active: boolean;
  23. index: string | undefined;
  24. isClosable: boolean;
  25. isFocusInsidePane: () => boolean | undefined;
  26. }[]) | (() => {
  27. uid: number;
  28. getVnode: () => vue.VNode;
  29. slots: vue.Slots;
  30. props: {
  31. label?: string | undefined;
  32. name?: (string | number) | undefined;
  33. closable?: boolean | undefined;
  34. disabled?: boolean | undefined;
  35. lazy?: boolean | undefined;
  36. };
  37. paneName: TabPaneName | undefined;
  38. active: boolean;
  39. index: string | undefined;
  40. isClosable: boolean;
  41. isFocusInsidePane: () => boolean | undefined;
  42. }[]) | ((new (...args: any[]) => {
  43. uid: number;
  44. getVnode: () => vue.VNode;
  45. slots: vue.Slots;
  46. props: {
  47. label?: string | undefined;
  48. name?: (string | number) | undefined;
  49. closable?: boolean | undefined;
  50. disabled?: boolean | undefined;
  51. lazy?: boolean | undefined;
  52. };
  53. paneName: TabPaneName | undefined;
  54. active: boolean;
  55. index: string | undefined;
  56. isClosable: boolean;
  57. isFocusInsidePane: () => boolean | undefined;
  58. }[]) | (() => {
  59. uid: number;
  60. getVnode: () => vue.VNode;
  61. slots: vue.Slots;
  62. props: {
  63. label?: string | undefined;
  64. name?: (string | number) | undefined;
  65. closable?: boolean | undefined;
  66. disabled?: boolean | undefined;
  67. lazy?: boolean | undefined;
  68. };
  69. paneName: TabPaneName | undefined;
  70. active: boolean;
  71. index: string | undefined;
  72. isClosable: boolean;
  73. isFocusInsidePane: () => boolean | undefined;
  74. }[]))[], unknown, unknown, () => [], boolean>;
  75. readonly currentName: EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, "", boolean>;
  76. readonly editable: BooleanConstructor;
  77. readonly type: EpPropFinalized<StringConstructor, "" | "card" | "border-card", unknown, "", boolean>;
  78. readonly stretch: BooleanConstructor;
  79. readonly tabindex: EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, undefined, boolean>;
  80. };
  81. declare const tabNavEmits: {
  82. tabClick: (tab: TabsPaneContext, tabName: TabPaneName, ev: Event) => boolean;
  83. tabRemove: (tab: TabsPaneContext, ev: Event) => boolean;
  84. };
  85. type TabNavProps = ExtractPropTypes<typeof tabNavProps>;
  86. type TabNavPropsPublic = ExtractPublicPropTypes<typeof tabNavProps>;
  87. type TabNavEmits = typeof tabNavEmits;
  88. declare const TabNav: vue.DefineComponent<{
  89. readonly panes: EpPropFinalized<(new (...args: any[]) => {
  90. uid: number;
  91. getVnode: () => vue.VNode;
  92. slots: vue.Slots;
  93. props: {
  94. label?: string | undefined;
  95. name?: (string | number) | undefined;
  96. closable?: boolean | undefined;
  97. disabled?: boolean | undefined;
  98. lazy?: boolean | undefined;
  99. };
  100. paneName: TabPaneName | undefined;
  101. active: boolean;
  102. index: string | undefined;
  103. isClosable: boolean;
  104. isFocusInsidePane: () => boolean | undefined;
  105. }[]) | (() => {
  106. uid: number;
  107. getVnode: () => vue.VNode;
  108. slots: vue.Slots;
  109. props: {
  110. label?: string | undefined;
  111. name?: (string | number) | undefined;
  112. closable?: boolean | undefined;
  113. disabled?: boolean | undefined;
  114. lazy?: boolean | undefined;
  115. };
  116. paneName: TabPaneName | undefined;
  117. active: boolean;
  118. index: string | undefined;
  119. isClosable: boolean;
  120. isFocusInsidePane: () => boolean | undefined;
  121. }[]) | ((new (...args: any[]) => {
  122. uid: number;
  123. getVnode: () => vue.VNode;
  124. slots: vue.Slots;
  125. props: {
  126. label?: string | undefined;
  127. name?: (string | number) | undefined;
  128. closable?: boolean | undefined;
  129. disabled?: boolean | undefined;
  130. lazy?: boolean | undefined;
  131. };
  132. paneName: TabPaneName | undefined;
  133. active: boolean;
  134. index: string | undefined;
  135. isClosable: boolean;
  136. isFocusInsidePane: () => boolean | undefined;
  137. }[]) | (() => {
  138. uid: number;
  139. getVnode: () => vue.VNode;
  140. slots: vue.Slots;
  141. props: {
  142. label?: string | undefined;
  143. name?: (string | number) | undefined;
  144. closable?: boolean | undefined;
  145. disabled?: boolean | undefined;
  146. lazy?: boolean | undefined;
  147. };
  148. paneName: TabPaneName | undefined;
  149. active: boolean;
  150. index: string | undefined;
  151. isClosable: boolean;
  152. isFocusInsidePane: () => boolean | undefined;
  153. }[]))[], unknown, unknown, () => [], boolean>;
  154. readonly currentName: EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, "", boolean>;
  155. readonly editable: BooleanConstructor;
  156. readonly type: EpPropFinalized<StringConstructor, "" | "card" | "border-card", unknown, "", boolean>;
  157. readonly stretch: BooleanConstructor;
  158. readonly tabindex: EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, undefined, boolean>;
  159. }, () => vue_jsx_runtime0.JSX.Element, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
  160. tabClick: (tab: TabsPaneContext, tabName: TabPaneName, ev: Event) => boolean;
  161. tabRemove: (tab: TabsPaneContext, ev: Event) => boolean;
  162. }, string, vue.PublicProps, Readonly<ExtractPropTypes<{
  163. readonly panes: EpPropFinalized<(new (...args: any[]) => {
  164. uid: number;
  165. getVnode: () => vue.VNode;
  166. slots: vue.Slots;
  167. props: {
  168. label?: string | undefined;
  169. name?: (string | number) | undefined;
  170. closable?: boolean | undefined;
  171. disabled?: boolean | undefined;
  172. lazy?: boolean | undefined;
  173. };
  174. paneName: TabPaneName | undefined;
  175. active: boolean;
  176. index: string | undefined;
  177. isClosable: boolean;
  178. isFocusInsidePane: () => boolean | undefined;
  179. }[]) | (() => {
  180. uid: number;
  181. getVnode: () => vue.VNode;
  182. slots: vue.Slots;
  183. props: {
  184. label?: string | undefined;
  185. name?: (string | number) | undefined;
  186. closable?: boolean | undefined;
  187. disabled?: boolean | undefined;
  188. lazy?: boolean | undefined;
  189. };
  190. paneName: TabPaneName | undefined;
  191. active: boolean;
  192. index: string | undefined;
  193. isClosable: boolean;
  194. isFocusInsidePane: () => boolean | undefined;
  195. }[]) | ((new (...args: any[]) => {
  196. uid: number;
  197. getVnode: () => vue.VNode;
  198. slots: vue.Slots;
  199. props: {
  200. label?: string | undefined;
  201. name?: (string | number) | undefined;
  202. closable?: boolean | undefined;
  203. disabled?: boolean | undefined;
  204. lazy?: boolean | undefined;
  205. };
  206. paneName: TabPaneName | undefined;
  207. active: boolean;
  208. index: string | undefined;
  209. isClosable: boolean;
  210. isFocusInsidePane: () => boolean | undefined;
  211. }[]) | (() => {
  212. uid: number;
  213. getVnode: () => vue.VNode;
  214. slots: vue.Slots;
  215. props: {
  216. label?: string | undefined;
  217. name?: (string | number) | undefined;
  218. closable?: boolean | undefined;
  219. disabled?: boolean | undefined;
  220. lazy?: boolean | undefined;
  221. };
  222. paneName: TabPaneName | undefined;
  223. active: boolean;
  224. index: string | undefined;
  225. isClosable: boolean;
  226. isFocusInsidePane: () => boolean | undefined;
  227. }[]))[], unknown, unknown, () => [], boolean>;
  228. readonly currentName: EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, "", boolean>;
  229. readonly editable: BooleanConstructor;
  230. readonly type: EpPropFinalized<StringConstructor, "" | "card" | "border-card", unknown, "", boolean>;
  231. readonly stretch: BooleanConstructor;
  232. readonly tabindex: EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, undefined, boolean>;
  233. }>> & {
  234. onTabClick?: ((tab: {
  235. uid: number;
  236. getVnode: () => vue.VNode;
  237. slots: vue.Slots;
  238. props: {
  239. label?: string | undefined;
  240. name?: (string | number) | undefined;
  241. closable?: boolean | undefined;
  242. disabled?: boolean | undefined;
  243. lazy?: boolean | undefined;
  244. };
  245. paneName: TabPaneName | undefined;
  246. active: boolean;
  247. index: string | undefined;
  248. isClosable: boolean;
  249. isFocusInsidePane: () => boolean | undefined;
  250. }, tabName: TabPaneName, ev: Event) => any) | undefined;
  251. onTabRemove?: ((tab: {
  252. uid: number;
  253. getVnode: () => vue.VNode;
  254. slots: vue.Slots;
  255. props: {
  256. label?: string | undefined;
  257. name?: (string | number) | undefined;
  258. closable?: boolean | undefined;
  259. disabled?: boolean | undefined;
  260. lazy?: boolean | undefined;
  261. };
  262. paneName: TabPaneName | undefined;
  263. active: boolean;
  264. index: string | undefined;
  265. isClosable: boolean;
  266. isFocusInsidePane: () => boolean | undefined;
  267. }, ev: Event) => any) | undefined;
  268. }, {
  269. readonly type: EpPropMergeType<StringConstructor, "" | "card" | "border-card", unknown>;
  270. readonly tabindex: EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown>;
  271. readonly stretch: boolean;
  272. readonly editable: boolean;
  273. readonly panes: {
  274. uid: number;
  275. getVnode: () => vue.VNode;
  276. slots: vue.Slots;
  277. props: {
  278. label?: string | undefined;
  279. name?: (string | number) | undefined;
  280. closable?: boolean | undefined;
  281. disabled?: boolean | undefined;
  282. lazy?: boolean | undefined;
  283. };
  284. paneName: TabPaneName | undefined;
  285. active: boolean;
  286. index: string | undefined;
  287. isClosable: boolean;
  288. isFocusInsidePane: () => boolean | undefined;
  289. }[];
  290. readonly currentName: EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown>;
  291. }, {}>;
  292. type TabNavInstance = InstanceType<typeof TabNav> & {
  293. scrollToActiveTab: () => Promise<void>;
  294. removeFocus: () => void;
  295. focusActiveTab: () => void;
  296. scheduleRender: () => void;
  297. tabListRef: HTMLDivElement | undefined;
  298. tabBarRef: TabBarInstance | undefined;
  299. };
  300. //#endregion
  301. export { TabNavEmits, TabNavInstance, TabNavProps, TabNavPropsPublic, tabNavEmits, tabNavProps };