Skip to content
Draft

Vue3 #20787

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
85c28fa
Update Vue dependencies to Vue 3 with compat mode
dannon Aug 8, 2025
c38f369
Update webpack config for Vue 3 compatibility
dannon Aug 8, 2025
9fcbd56
Update TypeScript config for Vue 3
dannon Aug 8, 2025
7e0256d
Update ESLint to vue3-recommended rules
dannon Aug 8, 2025
59aee3a
Replace Vue.set/delete with direct property assignment
dannon Aug 8, 2025
92a91b6
Fix $listeners usage for Vue 3 compatibility
dannon Aug 11, 2025
c50007b
Replace Vue 2 filters with method calls
dannon Aug 11, 2025
fa98dcc
Update app mount pattern to Vue 3 createApp
dannon Aug 11, 2025
76dee96
Fix TypeScript imports for Vue 3
dannon Aug 11, 2025
31671db
Replace set() with direct property assignment
dannon Aug 11, 2025
3d294e6
Replace del() with delete operator
dannon Aug 11, 2025
b5f92ba
Update Vue Router imports to v4
dannon Aug 11, 2025
e315a1e
Update slot syntax to v-slot
dannon Aug 11, 2025
635d24b
Fix v-for template key placement
dannon Aug 11, 2025
77a37a8
Add emits declarations to components
dannon Aug 11, 2025
7b2c724
Remove deprecated .native modifier
dannon Aug 11, 2025
9c6f821
Update destroyed hooks to unmounted
dannon Aug 11, 2025
434376a
Replace $on/$off event bus with mitt
dannon Aug 11, 2025
57d1891
Fix TypeScript errors in store files
dannon Aug 11, 2025
39c863f
Update async components with defineAsyncComponent
dannon Aug 11, 2025
a687b34
Update custom directives for Vue 3
dannon Aug 11, 2025
0f49bc1
Fix ConnectionId TypeScript type
dannon Aug 11, 2025
f791079
Fix v-slot on non-template elements
dannon Aug 11, 2025
d3cd53a
Update Vue Router type imports
dannon Aug 11, 2025
4a01c6c
Fix toast component typing for Vue 3
dannon Aug 11, 2025
ad207f6
Fix useCollectionCreator component type
dannon Aug 11, 2025
7cbab28
Fix useWorkbooks component ref type
dannon Aug 11, 2025
735e023
Configure Vue 3 compat mode and fix types
dannon Aug 12, 2025
e753629
Add vue-demi shim for Pinia compatibility
dannon Aug 12, 2025
8c79312
Upgrade Pinia to v3 for Vue 3
dannon Aug 12, 2025
3d33451
Update Vue and @vue/compat to 3.5.18
dannon Aug 12, 2025
cc04f03
Replace .sync with v-model:propName syntax
dannon Aug 12, 2025
019a223
Update destroyed hook to unmounted
dannon Aug 12, 2025
fda80e8
Replace $scopedSlots with $slots
dannon Aug 12, 2025
869e930
Fix renderless component slot errors
dannon Aug 12, 2025
9fa911e
Remove Vue 2 set() usage
dannon Aug 14, 2025
62044aa
Fix graph state type compatibility
dannon Aug 14, 2025
c121fde
Fix invocation store typing
dannon Aug 14, 2025
306015d
Update safe dependencies and TypeScript
dannon Aug 14, 2025
dd37326
Update vue-multiselect to v3
dannon Aug 14, 2025
b18ec8c
Upgrade ESLint to v9 simplified
dannon Aug 14, 2025
938cbd8
ESLint 9 auto-fix changes
dannon Aug 14, 2025
dee3a57
Fix ESLint Vue template detection
dannon Aug 15, 2025
95cf1ae
Add TypeScript rules and fix imports
dannon Aug 15, 2025
82326a4
Upgrade vue/tsconfig
dannon Aug 15, 2025
b0cf0df
Fix v-bind attribute ordering
dannon Aug 15, 2025
5d8d550
Fix invalid HTML: wrap th elements in tr inside thead in CarbonEmissi…
dannon Aug 17, 2025
8291151
Fix v-bind and other attribute order issues
dannon Aug 17, 2025
d9119f5
Fix Vue 3 slot syntax compatibility issues
dannon Aug 18, 2025
a347271
Add guards for event handling in gcard
dannon Aug 18, 2025
3b2a657
Convert provider components to Composition API setup pattern
dannon Aug 18, 2025
20595e6
Fix vue-router-4 route access via router
dannon Aug 18, 2025
3cd893a
Clean up route access -- useRoute instead of access through router
dannon Aug 18, 2025
47250da
Fix 'Proxy object could not be cloned' error in ToolSearch
dannon Aug 18, 2025
a8530dd
Force spacing between tool name and desc
dannon Aug 18, 2025
6a23088
Fix DataCloneError in wf action tests; unwrap proxies before clone
dannon Aug 19, 2025
19bf787
Fix vue-router and types post-rebase
dannon Aug 26, 2025
137f049
Fix userMultiToolCredentials ref unwrapping - use shallowRef for Map
dannon Oct 26, 2025
a87793c
Fix upload modal close button and transitions
dannon Oct 27, 2025
8ec4fb8
Fix multiselect aria-label accessibility issue
dannon Oct 27, 2025
327d308
Fix collection name input event handler for Vue 3
dannon Oct 28, 2025
009c6c3
Update Vite config for Vue 3 compat mode
dannon Dec 4, 2025
152db32
Update mountVueComponent.js for Vue 3 app creation
dannon Dec 4, 2025
fc00caa
Add portal-vue mock for Vue 3 compatibility
dannon Dec 4, 2025
30d189f
Configure Vue 3 compat mode in vitest setup
dannon Dec 4, 2025
60a32a5
Update vitest helpers for Vue Test Utils v2
dannon Dec 4, 2025
6f13784
Use IconDefinition imports instead of string names in states.ts
dannon Dec 4, 2025
a7b92c0
Fix ExpandedItems scoped slots for Vue 3 compat mode
dannon Dec 12, 2025
2e3cdaf
Update vitest-fail-on-console to not fail on Vue compat warnings
dannon Dec 16, 2025
7995c43
Add Pinia and PascalCase Bootstrap-Vue stubs to test helpers
dannon Dec 16, 2025
7af3b77
Update tests for Vue Test Utils v2 patterns
dannon Dec 16, 2025
a4b476e
Fix HistoryView test for Vue Router 4 and improve test helpers
dannon Jan 2, 2026
7b5851f
Add compatibility adapters for Vue Test Utils and Vue Router
dannon Jan 8, 2026
231b80e
Fix entities hoisting for pnpm and pin Vue versions at 3.5.18
dannon Jan 13, 2026
780148c
Fix test infrastructure issues for Vue 3 / VTU v2
dannon Jan 14, 2026
078ee75
Convert router guards from next() callbacks to return pattern
dannon Feb 28, 2026
b0f134b
Replace Vue.extend() with mountVueComponent utility
dannon Feb 28, 2026
62c7e90
Remove unused Vue 2 dependencies
dannon Feb 28, 2026
dcf22c1
Fix build errors for Vue 3 compilation
dannon Feb 28, 2026
fba19a5
Fix Vue 3 build errors after rebase
dannon Apr 28, 2026
0d75e35
Fix vitest setup undefined Vue reference
dannon Apr 28, 2026
8f56c20
Fix Vue 3 / VTU v2 patterns in tests and stores
dannon Apr 28, 2026
8db3a2a
Mock Worker globally and import vi in test mock helpers
dannon Apr 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .ci/eslint_wrapper.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ set -e
# Setting NODE_PATH and config appropriately, using dependencies from
# client/node_modules, run eslint against args passed to this script.
# Primary use case here is for a pre-commit check.
NODE_PATH=src/ node client/node_modules/eslint/bin/eslint.js -c client/.eslintrc.js "$@"
NODE_PATH=src/ node client/node_modules/eslint/bin/eslint.js -c client/eslint.config.mjs "$@"
164 changes: 0 additions & 164 deletions client/.eslintrc.js

This file was deleted.

76 changes: 76 additions & 0 deletions client/__mocks__/vue-router.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
module.exports = {
createRouter: jest.fn(() => ({
push: jest.fn(),
replace: jest.fn(),
go: jest.fn(),
back: jest.fn(),
forward: jest.fn(),
beforeEach: jest.fn(),
afterEach: jest.fn(),
install: jest.fn(),
resolve: jest.fn((route) => ({ href: `resolved-${route}` })),
})),
createWebHistory: jest.fn(() => ({
base: "/",
push: jest.fn(),
replace: jest.fn(),
go: jest.fn(),
back: jest.fn(),
forward: jest.fn(),
})),
createWebHashHistory: jest.fn(() => ({
base: "/",
push: jest.fn(),
replace: jest.fn(),
go: jest.fn(),
back: jest.fn(),
forward: jest.fn(),
})),
createMemoryHistory: jest.fn(() => ({
base: "/",
push: jest.fn(),
replace: jest.fn(),
go: jest.fn(),
back: jest.fn(),
forward: jest.fn(),
})),
useRoute: jest.fn(() => ({
path: "/",
params: {},
query: {},
hash: "",
fullPath: "/",
matched: [],
meta: {},
name: undefined,
})),
useRouter: jest.fn(() => ({
push: jest.fn(),
replace: jest.fn(),
go: jest.fn(),
back: jest.fn(),
forward: jest.fn(),
resolve: jest.fn((route) => ({ href: `resolved-${route}` })),
currentRoute: {
value: {
path: "/",
params: {},
query: {},
hash: "",
fullPath: "/",
matched: [],
meta: {},
name: undefined,
},
},
})),
RouterLink: {
name: "RouterLink",
props: ["to"],
template: "<a><slot /></a>",
},
RouterView: {
name: "RouterView",
template: "<div />",
},
};
4 changes: 2 additions & 2 deletions client/build-config.shared.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ export const legacyAliases = {
jqueryVendor: path.join(libsBase, "jquery/jquery.js"),
storemodern: path.join(__dirname, "node_modules/store/dist/store.modern.js"),

// Vue
vue: path.join(__dirname, "node_modules/vue/dist/vue.esm.js"),
// Vue - use @vue/compat for Vue 3 compatibility mode
vue: path.join(__dirname, "node_modules/@vue/compat"),

// Build config
config: path.join(scriptsBase, "config", process.env.NODE_ENV || "development") + ".js",
Expand Down
Loading
Loading