diff --git a/packages/editor-ui/package.json b/packages/editor-ui/package.json index 5d5c63a298..86638283dc 100644 --- a/packages/editor-ui/package.json +++ b/packages/editor-ui/package.json @@ -78,6 +78,7 @@ "vue-json-pretty": "2.2.4", "vue-markdown-render": "catalog:frontend", "vue-router": "catalog:frontend", + "vue-virtual-scroller": "2.0.0-beta.8", "vue3-touch-events": "^4.1.3", "xss": "catalog:" }, diff --git a/packages/editor-ui/src/vue-virtual-scroller.d.ts b/packages/editor-ui/src/vue-virtual-scroller.d.ts new file mode 100644 index 0000000000..1e6ef322aa --- /dev/null +++ b/packages/editor-ui/src/vue-virtual-scroller.d.ts @@ -0,0 +1,112 @@ +declare module 'vue-virtual-scroller' { + import { + type ObjectEmitsOptions, + type PublicProps, + type SetupContext, + type SlotsType, + type VNode, + } from 'vue'; + + interface RecycleScrollerProps { + items: readonly T[]; + direction?: 'vertical' | 'horizontal'; + itemSize?: number | null; + gridItems?: number; + itemSecondarySize?: number; + minItemSize?: number; + sizeField?: string; + typeField?: string; + keyField?: keyof T; + pageMode?: boolean; + prerender?: number; + buffer?: number; + emitUpdate?: boolean; + updateInterval?: number; + listClass?: string; + itemClass?: string; + listTag?: string; + itemTag?: string; + } + + interface DynamicScrollerProps extends RecycleScrollerProps { + minItemSize: number; + } + + interface RecycleScrollerEmitOptions extends ObjectEmitsOptions { + resize: () => void; + visible: () => void; + hidden: () => void; + update: ( + startIndex: number, + endIndex: number, + visibleStartIndex: number, + visibleEndIndex: number, + ) => void; + 'scroll-start': () => void; + 'scroll-end': () => void; + } + + interface RecycleScrollerSlotProps { + item: T; + index: number; + active: boolean; + } + + interface RecycleScrollerSlots { + default(slotProps: RecycleScrollerSlotProps): unknown; + before(): unknown; + empty(): unknown; + after(): unknown; + } + + export interface RecycleScrollerInstance { + getScroll(): { start: number; end: number }; + scrollToItem(index: number): void; + scrollToPosition(position: number): void; + } + + export const RecycleScroller: ( + props: RecycleScrollerProps & PublicProps, + ctx?: SetupContext>>, + expose?: (exposed: RecycleScrollerInstance) => void, + ) => VNode & { + __ctx?: { + props: RecycleScrollerProps & PublicProps; + expose(exposed: RecycleScrollerInstance): void; + slots: RecycleScrollerSlots; + }; + }; + + export const DynamicScroller: ( + props: DynamicScrollerProps & PublicProps, + ctx?: SetupContext>>, + expose?: (exposed: RecycleScrollerInstance) => void, + ) => VNode & { + __ctx?: { + props: DynamicScrollerProps & PublicProps; + expose(exposed: RecycleScrollerInstance): void; + slots: RecycleScrollerSlots; + }; + }; + + interface DynamicScrollerItemProps { + item: T; + active: boolean; + sizeDependencies?: unknown[]; + watchData?: boolean; + tag?: string; + emitResize?: boolean; + onResize?: () => void; + } + + interface DynamicScrollerItemEmitOptions extends ObjectEmitsOptions { + resize: () => void; + } + + export const DynamicScrollerItem: ( + props: DynamicScrollerItemProps & PublicProps, + ctx?: SetupContext, + ) => VNode; + + export function IdState(options?: { idProp?: (value: any) => unknown }): unknown; +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 10e0fbf08b..7f11bcad25 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -265,7 +265,7 @@ importers: version: 4.0.7 axios: specifier: 'catalog:' - version: 1.7.4 + version: 1.7.4(debug@4.3.7) dotenv: specifier: 8.6.0 version: 8.6.0 @@ -333,7 +333,7 @@ importers: dependencies: axios: specifier: 'catalog:' - version: 1.7.4 + version: 1.7.4(debug@4.3.7) packages/@n8n/codemirror-lang: dependencies: @@ -407,7 +407,7 @@ importers: version: 3.666.0(@aws-sdk/client-sts@3.666.0) '@getzep/zep-cloud': specifier: 1.0.12 - version: 1.0.12(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(langchain@0.3.5(7umjwzmwnymi4lyinuvazmp6ki)) + version: 1.0.12(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(langchain@0.3.5(4ubssgvn2k3t3hxnzmxuoc2aja)) '@getzep/zep-js': specifier: 0.9.0 version: 0.9.0 @@ -434,7 +434,7 @@ importers: version: 0.3.1(@aws-sdk/client-sso-oidc@3.666.0(@aws-sdk/client-sts@3.666.0))(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13) '@langchain/community': specifier: 0.3.11 - version: 0.3.11(simkpjwqw7qnwbripe37u5qu7a) + version: 0.3.11(tzffvezibmkr4px5bpuitcp7xu) '@langchain/core': specifier: 'catalog:' version: 0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)) @@ -521,7 +521,7 @@ importers: version: 23.0.1 langchain: specifier: 0.3.5 - version: 0.3.5(7umjwzmwnymi4lyinuvazmp6ki) + version: 0.3.5(4ubssgvn2k3t3hxnzmxuoc2aja) lodash: specifier: 'catalog:' version: 4.17.21 @@ -774,7 +774,7 @@ importers: version: 1.11.0 axios: specifier: 'catalog:' - version: 1.7.4 + version: 1.7.4(debug@4.3.7) bcryptjs: specifier: 2.4.3 version: 2.4.3 @@ -1093,7 +1093,7 @@ importers: dependencies: '@langchain/core': specifier: 'catalog:' - version: 0.3.15(openai@4.69.0(zod@3.23.8)) + version: 0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)) '@n8n/client-oauth2': specifier: workspace:* version: link:../@n8n/client-oauth2 @@ -1105,7 +1105,7 @@ importers: version: 1.11.0 axios: specifier: 'catalog:' - version: 1.7.4 + version: 1.7.4(debug@4.3.7) concat-stream: specifier: 2.0.0 version: 2.0.0 @@ -1395,7 +1395,7 @@ importers: version: 10.11.0(vue@3.5.11(typescript@5.6.2)) axios: specifier: 'catalog:' - version: 1.7.4 + version: 1.7.4(debug@4.3.7) bowser: specifier: 2.11.0 version: 2.11.0 @@ -1489,6 +1489,9 @@ importers: vue-router: specifier: catalog:frontend version: 4.4.5(vue@3.5.11(typescript@5.6.2)) + vue-virtual-scroller: + specifier: 2.0.0-beta.8 + version: 2.0.0-beta.8(vue@3.5.11(typescript@5.6.2)) vue3-touch-events: specifier: ^4.1.3 version: 4.1.3 @@ -1872,7 +1875,7 @@ importers: version: 0.15.2 axios: specifier: 'catalog:' - version: 1.7.4 + version: 1.7.4(debug@4.3.7) callsites: specifier: 3.1.0 version: 3.1.0 @@ -1918,7 +1921,7 @@ importers: devDependencies: '@langchain/core': specifier: 'catalog:' - version: 0.3.15(openai@4.69.0) + version: 0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)) '@types/deep-equal': specifier: ^1.0.1 version: 1.0.1 @@ -9212,6 +9215,9 @@ packages: resolution: {integrity: sha512-MGZAq0Q3OuRYgZKvlB69z4gLN4G3PvgC4A2zhkCXCXrLD5wm2cCnwNB59xOBVA+srZ0zEes6u+VylcPIkB4SqA==} engines: {node: 6.* || 8.* || >= 10.*} + mitt@2.1.0: + resolution: {integrity: sha512-ILj2TpLiysu2wkBbWjAmww7TkZb65aiQO+DkVdUTBpBXq+MHYiETENkKFMtsJZX1Lf4pe4QOrTSjIfUwN5lRdg==} + mjml-accordion@4.15.3: resolution: {integrity: sha512-LPNVSj1LyUVYT9G1gWwSw3GSuDzDsQCu0tPB2uDsq4VesYNnU6v3iLCQidMiR6azmIt13OEozG700ygAUuA6Ng==} @@ -12096,6 +12102,16 @@ packages: peerDependencies: vue: ^3.3.4 + vue-observe-visibility@2.0.0-alpha.1: + resolution: {integrity: sha512-flFbp/gs9pZniXR6fans8smv1kDScJ8RS7rEpMjhVabiKeq7Qz3D9+eGsypncjfIyyU84saU88XZ0zjbD6Gq/g==} + peerDependencies: + vue: ^3.0.0 + + vue-resize@2.0.0-alpha.1: + resolution: {integrity: sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg==} + peerDependencies: + vue: ^3.0.0 + vue-router@4.4.5: resolution: {integrity: sha512-4fKZygS8cH1yCyuabAXGUAsyi1b2/o/OKgu/RUb+znIYOxPRxdkytJEx+0wGcpBE1pX6vUgh5jwWOKRGvuA/7Q==} peerDependencies: @@ -12107,6 +12123,11 @@ packages: peerDependencies: typescript: ^5.6.2 + vue-virtual-scroller@2.0.0-beta.8: + resolution: {integrity: sha512-b8/f5NQ5nIEBRTNi6GcPItE4s7kxNHw2AIHLtDp+2QvqdTjVN0FgONwX9cr53jWRgnu+HRLPaWDOR2JPI5MTfQ==} + peerDependencies: + vue: ^3.2.0 + vue3-touch-events@4.1.3: resolution: {integrity: sha512-uXTclRzn7de1mgiDIZ8N4J/wnWl1vBPLTWr60fqoLXu7ifhDKpl83Q2m9qA20KfEiAy+L4X/xXGc5ptGmdPh4A==} @@ -14066,7 +14087,7 @@ snapshots: '@gar/promisify@1.1.3': optional: true - '@getzep/zep-cloud@1.0.12(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(langchain@0.3.5(7umjwzmwnymi4lyinuvazmp6ki))': + '@getzep/zep-cloud@1.0.12(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(langchain@0.3.5(4ubssgvn2k3t3hxnzmxuoc2aja))': dependencies: form-data: 4.0.0 node-fetch: 2.7.0(encoding@0.1.13) @@ -14075,7 +14096,7 @@ snapshots: zod: 3.23.8 optionalDependencies: '@langchain/core': 0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)) - langchain: 0.3.5(7umjwzmwnymi4lyinuvazmp6ki) + langchain: 0.3.5(4ubssgvn2k3t3hxnzmxuoc2aja) transitivePeerDependencies: - encoding @@ -14542,7 +14563,7 @@ snapshots: - aws-crt - encoding - '@langchain/community@0.3.11(simkpjwqw7qnwbripe37u5qu7a)': + '@langchain/community@0.3.11(tzffvezibmkr4px5bpuitcp7xu)': dependencies: '@ibm-cloud/watsonx-ai': 1.1.2 '@langchain/core': 0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)) @@ -14552,7 +14573,7 @@ snapshots: flat: 5.0.2 ibm-cloud-sdk-core: 5.1.0 js-yaml: 4.1.0 - langchain: 0.3.5(7umjwzmwnymi4lyinuvazmp6ki) + langchain: 0.3.5(4ubssgvn2k3t3hxnzmxuoc2aja) langsmith: 0.2.3(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)) uuid: 10.0.0 zod: 3.23.8 @@ -14565,7 +14586,7 @@ snapshots: '@aws-sdk/client-s3': 3.666.0 '@aws-sdk/credential-provider-node': 3.666.0(@aws-sdk/client-sso-oidc@3.666.0(@aws-sdk/client-sts@3.666.0))(@aws-sdk/client-sts@3.666.0) '@azure/storage-blob': 12.18.0(encoding@0.1.13) - '@getzep/zep-cloud': 1.0.12(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(langchain@0.3.5(7umjwzmwnymi4lyinuvazmp6ki)) + '@getzep/zep-cloud': 1.0.12(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13)(langchain@0.3.5(4ubssgvn2k3t3hxnzmxuoc2aja)) '@getzep/zep-js': 0.9.0 '@google-ai/generativelanguage': 2.6.0(encoding@0.1.13) '@google-cloud/storage': 7.12.1(encoding@0.1.13) @@ -14629,38 +14650,6 @@ snapshots: transitivePeerDependencies: - openai - '@langchain/core@0.3.15(openai@4.69.0(zod@3.23.8))': - dependencies: - ansi-styles: 5.2.0 - camelcase: 6.3.0 - decamelize: 1.2.0 - js-tiktoken: 1.0.12 - langsmith: 0.2.3(openai@4.69.0(zod@3.23.8)) - mustache: 4.2.0 - p-queue: 6.6.2 - p-retry: 4.6.2 - uuid: 10.0.0 - zod: 3.23.8 - zod-to-json-schema: 3.23.3(zod@3.23.8) - transitivePeerDependencies: - - openai - - '@langchain/core@0.3.15(openai@4.69.0)': - dependencies: - ansi-styles: 5.2.0 - camelcase: 6.3.0 - decamelize: 1.2.0 - js-tiktoken: 1.0.12 - langsmith: 0.2.3(openai@4.69.0) - mustache: 4.2.0 - p-queue: 6.6.2 - p-retry: 4.6.2 - uuid: 10.0.0 - zod: 3.23.8 - zod-to-json-schema: 3.23.3(zod@3.23.8) - transitivePeerDependencies: - - openai - '@langchain/google-common@0.1.1(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(zod@3.23.8)': dependencies: '@langchain/core': 0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)) @@ -15278,7 +15267,7 @@ snapshots: '@rudderstack/rudder-sdk-node@2.0.9(tslib@2.6.2)': dependencies: - axios: 1.7.4 + axios: 1.7.4(debug@4.3.7) axios-retry: 3.7.0 component-type: 1.2.1 join-component: 1.1.0 @@ -17534,17 +17523,9 @@ snapshots: '@babel/runtime': 7.24.7 is-retry-allowed: 2.2.0 - axios@1.7.4: - dependencies: - follow-redirects: 1.15.6(debug@4.3.6) - form-data: 4.0.0 - proxy-from-env: 1.1.0 - transitivePeerDependencies: - - debug - axios@1.7.4(debug@4.3.7): dependencies: - follow-redirects: 1.15.6(debug@4.3.7) + follow-redirects: 1.15.6(debug@4.3.6) form-data: 4.0.0 proxy-from-env: 1.1.0 transitivePeerDependencies: @@ -19226,7 +19207,7 @@ snapshots: eslint-import-resolver-node@0.3.9: dependencies: - debug: 3.2.7(supports-color@5.5.0) + debug: 3.2.7(supports-color@8.1.1) is-core-module: 2.13.1 resolve: 1.22.8 transitivePeerDependencies: @@ -19251,7 +19232,7 @@ snapshots: eslint-module-utils@2.8.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0): dependencies: - debug: 3.2.7(supports-color@5.5.0) + debug: 3.2.7(supports-color@8.1.1) optionalDependencies: '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.6.2) eslint: 8.57.0 @@ -19271,7 +19252,7 @@ snapshots: array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 array.prototype.flatmap: 1.3.2 - debug: 3.2.7(supports-color@5.5.0) + debug: 3.2.7(supports-color@8.1.1) doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 @@ -20062,7 +20043,7 @@ snapshots: array-parallel: 0.1.3 array-series: 0.1.5 cross-spawn: 4.0.2 - debug: 3.2.7(supports-color@5.5.0) + debug: 3.2.7(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -21378,7 +21359,7 @@ snapshots: kuler@2.0.0: {} - langchain@0.3.5(7umjwzmwnymi4lyinuvazmp6ki): + langchain@0.3.5(4ubssgvn2k3t3hxnzmxuoc2aja): dependencies: '@langchain/core': 0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)) '@langchain/openai': 0.3.11(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13) @@ -21402,7 +21383,7 @@ snapshots: '@langchain/groq': 0.1.2(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13) '@langchain/mistralai': 0.1.1(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8)))(encoding@0.1.13) '@langchain/ollama': 0.1.1(@langchain/core@0.3.15(openai@4.69.0(encoding@0.1.13)(zod@3.23.8))) - axios: 1.7.4 + axios: 1.7.4(debug@4.3.7) cheerio: 1.0.0 handlebars: 4.7.8 transitivePeerDependencies: @@ -21421,28 +21402,6 @@ snapshots: optionalDependencies: openai: 4.69.0(encoding@0.1.13)(zod@3.23.8) - langsmith@0.2.3(openai@4.69.0(zod@3.23.8)): - dependencies: - '@types/uuid': 10.0.0 - commander: 10.0.1 - p-queue: 6.6.2 - p-retry: 4.6.2 - semver: 7.6.0 - uuid: 10.0.0 - optionalDependencies: - openai: 4.69.0(zod@3.23.8) - - langsmith@0.2.3(openai@4.69.0): - dependencies: - '@types/uuid': 10.0.0 - commander: 10.0.1 - p-queue: 6.6.2 - p-retry: 4.6.2 - semver: 7.6.0 - uuid: 10.0.0 - optionalDependencies: - openai: 4.69.0(zod@3.23.8) - lazy-ass@1.6.0: {} ldapts@4.2.6: @@ -21956,6 +21915,8 @@ snapshots: lodash: 4.17.21 pretender: 3.4.7 + mitt@2.1.0: {} + mjml-accordion@4.15.3(encoding@0.1.13): dependencies: '@babel/runtime': 7.24.7 @@ -22777,22 +22738,6 @@ snapshots: - encoding - supports-color - openai@4.69.0(zod@3.23.8): - dependencies: - '@types/node': 18.16.16 - '@types/node-fetch': 2.6.4 - abort-controller: 3.0.0 - agentkeepalive: 4.2.1 - form-data-encoder: 1.7.2 - formdata-node: 4.4.1 - node-fetch: 2.7.0(encoding@0.1.13) - optionalDependencies: - zod: 3.23.8 - transitivePeerDependencies: - - encoding - - supports-color - optional: true - openapi-sampler@1.5.1: dependencies: '@types/json-schema': 7.0.15 @@ -22973,7 +22918,7 @@ snapshots: pdf-parse@1.1.1: dependencies: - debug: 3.2.7(supports-color@5.5.0) + debug: 3.2.7(supports-color@8.1.1) node-ensure: 0.0.0 transitivePeerDependencies: - supports-color @@ -23804,7 +23749,7 @@ snapshots: rhea@1.0.24: dependencies: - debug: 3.2.7(supports-color@5.5.0) + debug: 3.2.7(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -25441,6 +25386,14 @@ snapshots: markdown-it: 13.0.2 vue: 3.5.11(typescript@5.6.2) + vue-observe-visibility@2.0.0-alpha.1(vue@3.5.11(typescript@5.6.2)): + dependencies: + vue: 3.5.11(typescript@5.6.2) + + vue-resize@2.0.0-alpha.1(vue@3.5.11(typescript@5.6.2)): + dependencies: + vue: 3.5.11(typescript@5.6.2) + vue-router@4.4.5(vue@3.5.11(typescript@5.6.2)): dependencies: '@vue/devtools-api': 6.6.4 @@ -25453,6 +25406,13 @@ snapshots: semver: 7.6.0 typescript: 5.6.2 + vue-virtual-scroller@2.0.0-beta.8(vue@3.5.11(typescript@5.6.2)): + dependencies: + mitt: 2.1.0 + vue: 3.5.11(typescript@5.6.2) + vue-observe-visibility: 2.0.0-alpha.1(vue@3.5.11(typescript@5.6.2)) + vue-resize: 2.0.0-alpha.1(vue@3.5.11(typescript@5.6.2)) + vue3-touch-events@4.1.3: {} vue@3.5.11(typescript@5.6.2):