From 519f6ae931fc35e22434f41f59714800de4f30d5 Mon Sep 17 00:00:00 2001 From: yihao Date: Wed, 11 Feb 2026 15:27:54 +0800 Subject: [PATCH 01/22] Rename vue-components/src/utils/pubsub to TypeScript --- .eslintignore | 1 + .gitignore | 6 ++++++ packages/vue-components/src/utils/{pubsub.js => pubsub.ts} | 0 3 files changed, 7 insertions(+) rename packages/vue-components/src/utils/{pubsub.js => pubsub.ts} (100%) diff --git a/.eslintignore b/.eslintignore index cc44517afa..046b1595b0 100644 --- a/.eslintignore +++ b/.eslintignore @@ -50,6 +50,7 @@ packages/vue-components/src/directives/Closeable.js packages/vue-components/src/directives/Float.js packages/vue-components/src/utils/NodeList.js packages/vue-components/src/utils/utils.js +packages/vue-components/src/utils/pubsub.js # --- packages/vue-components end --- diff --git a/.gitignore b/.gitignore index 9e363394d6..3a1a107ce6 100644 --- a/.gitignore +++ b/.gitignore @@ -106,6 +106,12 @@ packages/core/index.js packages/core/src/lib/progress/*.js # --- packages/core end --- +# --- packages/vue-components --- + +# Ignore JS files that are compiled from TS +packages/vue-components/src/utils/pubsub.js +# --- packages/vue-components end --- + # Manual type definitions need to be included !packages/cli/src/lib/live-server/index.d.ts diff --git a/packages/vue-components/src/utils/pubsub.js b/packages/vue-components/src/utils/pubsub.ts similarity index 100% rename from packages/vue-components/src/utils/pubsub.js rename to packages/vue-components/src/utils/pubsub.ts From 4e7990f6a47da60ccfcc71d19c629ad9e9805a6d Mon Sep 17 00:00:00 2001 From: yihao Date: Wed, 11 Feb 2026 15:28:22 +0800 Subject: [PATCH 02/22] Adapt vue-components/src/utils/pubsub to TypeScript --- packages/vue-components/src/utils/pubsub.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/vue-components/src/utils/pubsub.ts b/packages/vue-components/src/utils/pubsub.ts index 9c5eb2e29d..e49ed58002 100644 --- a/packages/vue-components/src/utils/pubsub.ts +++ b/packages/vue-components/src/utils/pubsub.ts @@ -1,13 +1,13 @@ -const subscribers = {}; +const subscribers: Record void)[]> = {}; -export function subscribe(event, handler) { +export function subscribe(event: string, handler: () => void): void { if (!subscribers[event]) { subscribers[event] = []; } subscribers[event].push(handler); } -export function publish(event) { +export function publish(event: string): void { if (!subscribers[event]) { return; } From 7d5345b9c4a6fa5030cc35ae97d40f76017d2914 Mon Sep 17 00:00:00 2001 From: yihao Date: Wed, 11 Feb 2026 15:28:53 +0800 Subject: [PATCH 03/22] Rename vue-components/src/utils/urls to TypeScript --- .eslintignore | 1 + .gitignore | 1 + packages/vue-components/src/utils/{urls.js => urls.ts} | 0 3 files changed, 2 insertions(+) rename packages/vue-components/src/utils/{urls.js => urls.ts} (100%) diff --git a/.eslintignore b/.eslintignore index 046b1595b0..e53e8365f8 100644 --- a/.eslintignore +++ b/.eslintignore @@ -51,6 +51,7 @@ packages/vue-components/src/directives/Float.js packages/vue-components/src/utils/NodeList.js packages/vue-components/src/utils/utils.js packages/vue-components/src/utils/pubsub.js +packages/vue-components/src/utils/urls.js # --- packages/vue-components end --- diff --git a/.gitignore b/.gitignore index 3a1a107ce6..c17642ced6 100644 --- a/.gitignore +++ b/.gitignore @@ -110,6 +110,7 @@ packages/core/src/lib/progress/*.js # Ignore JS files that are compiled from TS packages/vue-components/src/utils/pubsub.js +packages/vue-components/src/utils/urls.js # --- packages/vue-components end --- # Manual type definitions need to be included diff --git a/packages/vue-components/src/utils/urls.js b/packages/vue-components/src/utils/urls.ts similarity index 100% rename from packages/vue-components/src/utils/urls.js rename to packages/vue-components/src/utils/urls.ts From 50bc202734bee77ce7467dfe00c754ac2d79123d Mon Sep 17 00:00:00 2001 From: yihao Date: Wed, 11 Feb 2026 15:29:27 +0800 Subject: [PATCH 04/22] Adapt vue-components/src/utils/urls to TypeScript --- packages/vue-components/src/utils/urls.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/vue-components/src/utils/urls.ts b/packages/vue-components/src/utils/urls.ts index 4aa0a0dbfd..9a29a4a565 100644 --- a/packages/vue-components/src/utils/urls.ts +++ b/packages/vue-components/src/utils/urls.ts @@ -1,4 +1,4 @@ -export default function normalizeUrl(url) { +export default function normalizeUrl(url: string): string { if (url.endsWith('.html')) { return url.toLowerCase(); } else if (url.endsWith('/')) { From 582ab95a9481e0af2a6291ccb808194254657780 Mon Sep 17 00:00:00 2001 From: yihao Date: Wed, 11 Feb 2026 15:29:57 +0800 Subject: [PATCH 05/22] Rename vue-components/src/utils/dropdown to TypeScript --- .eslintignore | 1 + .gitignore | 1 + packages/vue-components/src/utils/{dropdown.js => dropdown.ts} | 0 3 files changed, 2 insertions(+) rename packages/vue-components/src/utils/{dropdown.js => dropdown.ts} (100%) diff --git a/.eslintignore b/.eslintignore index e53e8365f8..fd1f8f466e 100644 --- a/.eslintignore +++ b/.eslintignore @@ -52,6 +52,7 @@ packages/vue-components/src/utils/NodeList.js packages/vue-components/src/utils/utils.js packages/vue-components/src/utils/pubsub.js packages/vue-components/src/utils/urls.js +packages/vue-components/src/utils/dropdown.js # --- packages/vue-components end --- diff --git a/.gitignore b/.gitignore index c17642ced6..827820d6c4 100644 --- a/.gitignore +++ b/.gitignore @@ -111,6 +111,7 @@ packages/core/src/lib/progress/*.js # Ignore JS files that are compiled from TS packages/vue-components/src/utils/pubsub.js packages/vue-components/src/utils/urls.js +packages/vue-components/src/utils/dropdown.js # --- packages/vue-components end --- # Manual type definitions need to be included diff --git a/packages/vue-components/src/utils/dropdown.js b/packages/vue-components/src/utils/dropdown.ts similarity index 100% rename from packages/vue-components/src/utils/dropdown.js rename to packages/vue-components/src/utils/dropdown.ts From b2b7327bcecffba2ee63e90c4031e27f12317d56 Mon Sep 17 00:00:00 2001 From: yihao Date: Wed, 11 Feb 2026 15:30:48 +0800 Subject: [PATCH 06/22] Adapt vue-components/src/utils/dropdown to TypeScript --- packages/vue-components/src/utils/dropdown.ts | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/packages/vue-components/src/utils/dropdown.ts b/packages/vue-components/src/utils/dropdown.ts index fb93264f25..da868c42a0 100644 --- a/packages/vue-components/src/utils/dropdown.ts +++ b/packages/vue-components/src/utils/dropdown.ts @@ -1,9 +1,10 @@ -export default function preventOverflowOnMobile(el) { +export default function preventOverflowOnMobile(el: HTMLElement): void { // get highest-level dropdown menu - let rootDropdownMenu = el; - let currentEl = el; + let rootDropdownMenu: HTMLElement = el; + let currentEl: Node | null = el; while (currentEl) { - if (currentEl.classList && currentEl.classList.contains('dropdown-menu')) { + if (currentEl instanceof HTMLElement + && currentEl.classList.contains('dropdown-menu')) { rootDropdownMenu = currentEl; } currentEl = currentEl.parentNode; @@ -13,7 +14,11 @@ export default function preventOverflowOnMobile(el) { if (rootDropdownMenu.offsetWidth > window.innerWidth) { rootDropdownMenu.setAttribute('style', 'left: 0px;'); } else { - const dropdownPosition = rootDropdownMenu.parentNode.getBoundingClientRect(); + const parentNode = rootDropdownMenu.parentNode as HTMLElement | null; + if (!parentNode) { + return; + } + const dropdownPosition = parentNode.getBoundingClientRect(); const overflowedWidth = dropdownPosition.left + rootDropdownMenu.offsetWidth - window.innerWidth; const leftPosition = overflowedWidth < 0 ? dropdownPosition.left From 651341a908c0f454314256fd8989c6f97a71fbca Mon Sep 17 00:00:00 2001 From: yihao Date: Wed, 11 Feb 2026 15:31:33 +0800 Subject: [PATCH 07/22] Rename vue-components/src/utils/submenu to TypeScript --- .eslintignore | 1 + .gitignore | 1 + packages/vue-components/src/utils/{submenu.js => submenu.ts} | 0 3 files changed, 2 insertions(+) rename packages/vue-components/src/utils/{submenu.js => submenu.ts} (100%) diff --git a/.eslintignore b/.eslintignore index fd1f8f466e..e3ade48014 100644 --- a/.eslintignore +++ b/.eslintignore @@ -53,6 +53,7 @@ packages/vue-components/src/utils/utils.js packages/vue-components/src/utils/pubsub.js packages/vue-components/src/utils/urls.js packages/vue-components/src/utils/dropdown.js +packages/vue-components/src/utils/submenu.js # --- packages/vue-components end --- diff --git a/.gitignore b/.gitignore index 827820d6c4..26328594fe 100644 --- a/.gitignore +++ b/.gitignore @@ -112,6 +112,7 @@ packages/core/src/lib/progress/*.js packages/vue-components/src/utils/pubsub.js packages/vue-components/src/utils/urls.js packages/vue-components/src/utils/dropdown.js +packages/vue-components/src/utils/submenu.js # --- packages/vue-components end --- # Manual type definitions need to be included diff --git a/packages/vue-components/src/utils/submenu.js b/packages/vue-components/src/utils/submenu.ts similarity index 100% rename from packages/vue-components/src/utils/submenu.js rename to packages/vue-components/src/utils/submenu.ts From edc2b252bbcb2767fff54047691df14d657c5ea0 Mon Sep 17 00:00:00 2001 From: yihao Date: Wed, 11 Feb 2026 15:33:02 +0800 Subject: [PATCH 08/22] Adapt vue-components/src/utils/submenu to TypeScript --- packages/vue-components/src/Submenu.vue | 6 +++--- packages/vue-components/src/utils/submenu.ts | 21 ++++++++++++-------- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/packages/vue-components/src/Submenu.vue b/packages/vue-components/src/Submenu.vue index 4c32a4149f..06b582535a 100644 --- a/packages/vue-components/src/Submenu.vue +++ b/packages/vue-components/src/Submenu.vue @@ -25,7 +25,7 @@