n8n-editor-ui 1.110.1 → 1.112.0
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.
- package/dist/assets/{AddDataStoreModal-D3j8deoq.css → AddDataStoreModal-B7jBhCjt.css} +5 -3
- package/dist/assets/{AddDataStoreModal-BXMe2_Yo.js → AddDataStoreModal-CLYFuWF4.js} +19 -9
- package/dist/assets/{AnimatedSpinner-CxbOZIWM.js → AnimatedSpinner-D7Nt5ZAz.js} +2 -1
- package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-D-tU5Nsg.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-BzK1dfc7.js} +2 -1
- package/dist/assets/{AuthView-ty01eojq.js → AuthView-Db8T18BU.js} +3 -2
- package/dist/assets/{ChangePasswordView-nmwMP1GF.js → ChangePasswordView-Clb7ta4t.js} +4 -3
- package/dist/assets/CollectionParameter-BGBoLgV2.js +5 -0
- package/dist/assets/{ConsumedTokensDetails.vue_vue_type_script_setup_true_lang-CSmXlf80.js → ConsumedTokensDetails.vue_vue_type_script_setup_true_lang-BG5somV-.js} +2 -1
- package/dist/assets/{CredentialsView-IHneFweR.js → CredentialsView-CydHAPfb.js} +11 -9
- package/dist/assets/{DataStoreActions.vue_vue_type_script_setup_true_lang-Dug6Q9SH.js → DataStoreActions.vue_vue_type_script_setup_true_lang-qftEof1u.js} +7 -2
- package/dist/assets/{DataStoreDetailsView-DSpK3R_L.css → DataStoreDetailsView-C8fMxukz.css} +103 -82
- package/dist/assets/{DataStoreDetailsView-BZ7cLl6L.js → DataStoreDetailsView-DZK3pYSP.js} +1271 -696
- package/dist/assets/{DataStoreView-CzuM5UmJ.js → DataStoreView-CT0OnFLR.js} +14 -29
- package/dist/assets/{DemoFooter-CTFaju55.js → DemoFooter-DHwNRr6t.js} +7 -6
- package/dist/assets/{EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-DirQeoxa.js → EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-Y97PdUKW.js} +2 -1
- package/dist/assets/{EntityNotFound-SgHEB5Zx.js → EntityNotFound-BDjIF_1D.js} +2 -1
- package/dist/assets/{EntityUnAuthorised-Ba1UjrRW.js → EntityUnAuthorised-Dz3DXm1-.js} +2 -1
- package/dist/assets/{ErrorView-DR_boVdR.js → ErrorView-BH0St5KC.js} +2 -1
- package/dist/assets/{EvaluationsRootView-DutxuCnH.js → EvaluationsRootView-CnJlr4OF.js} +2 -1
- package/dist/assets/{EvaluationsView-ClUUTcAC.js → EvaluationsView-DABp8z-m.js} +4 -3
- package/dist/assets/{ExecutionsTime.vue_vue_type_script_setup_true_lang-_0D6TWFX.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-gCj_FZH6.js} +3 -2
- package/dist/assets/{ExecutionsView-gF8JMKIq.js → ExecutionsView-CivgrlFE.js} +14 -12
- package/dist/assets/{ExecutionsView-DpVZbkhT.css → ExecutionsView-GKNLT5Ec.css} +1 -1
- package/dist/assets/{FixedCollectionParameter-DTkvAml6.css → FixedCollectionParameter-Dg7ZadcB.css} +18 -18
- package/dist/assets/{FixedCollectionParameter-D9zye2vX.js → FixedCollectionParameter-l8xC6wRw.js} +7 -3
- package/dist/assets/{ForgotMyPasswordView-EkWEVktJ.js → ForgotMyPasswordView-WF87QWAH.js} +4 -3
- package/dist/assets/{InfoAccordion-u7XlbH6a.js → InfoAccordion-8iWJ2sSU.js} +2 -1
- package/dist/assets/{InsightsChartAverageRuntime-CoBgniUR.js → InsightsChartAverageRuntime-BEd6XJn6.js} +5 -4
- package/dist/assets/{InsightsChartFailed-Dn6SuM16.js → InsightsChartFailed-CVwzK3ch.js} +5 -4
- package/dist/assets/{InsightsChartFailureRate-CJl1j0ob.js → InsightsChartFailureRate-BeA77_lp.js} +5 -4
- package/dist/assets/{InsightsChartTimeSaved-B5DjojXI.js → InsightsChartTimeSaved-DkgR7j7U.js} +5 -4
- package/dist/assets/{InsightsChartTotal-T1SFp7S-.js → InsightsChartTotal--1QxzvAZ.js} +5 -4
- package/dist/assets/{InsightsDashboard-CCDahAm5.js → InsightsDashboard-cHCzH4ZY.js} +13 -11
- package/dist/assets/{InsightsPaywall-Cp82bMTp.js → InsightsPaywall-neQ9PmYP.js} +2 -1
- package/dist/assets/{InsightsSummary-I5vKNG0I.js → InsightsSummary-BekdjOxv.js} +4 -2
- package/dist/assets/{InsightsTableWorkflows-D1U89HJ4.js → InsightsTableWorkflows-LMO-UU8h.js} +5 -4
- package/dist/assets/{Logo-DHG_oEvt.js → Logo-DXNRuN8z.js} +2 -1
- package/dist/assets/{LogsPanel-CvmnM4bL.js → LogsPanel-2GQHQFmh.js} +38 -23
- package/dist/assets/{LogsPanel-BinqqXXh.css → LogsPanel-CUsQIBpC.css} +17 -17
- package/dist/assets/{MainHeader-pDg5KXTB.css → MainHeader-6lIHYgJG.css} +16 -16
- package/dist/assets/{MainHeader-CTxGLJsC.js → MainHeader-BlBek00C.js} +14 -13
- package/dist/assets/{MainSidebar-D_xwIVsL.js → MainSidebar-qdHg8D5V.js} +3 -2
- package/dist/assets/{NodeCreation-iNUuiza-.js → NodeCreation-DO5k3aK3.js} +4 -3
- package/dist/assets/{NodeCreator-DMpMHPcz.js → NodeCreator-C3Pmrqkh.js} +4 -6
- package/dist/assets/{NodeDetailsView-BKEGFeZ7.js → NodeDetailsView-BACft9ex.js} +18 -17
- package/dist/assets/{NodeDetailsView-CjdovDgq.css → NodeDetailsView-CBYV4Rrz.css} +11 -11
- package/dist/assets/{NodeDetailsViewV2-XPdbzrLu.js → NodeDetailsViewV2--1S2eK5u.js} +14 -13
- package/dist/assets/{NodeView-Bj14aKtm.js → NodeView-BRwQ5Cqs.js} +185 -113
- package/dist/assets/{NodeView-BRa11kAq.css → NodeView-Chs2u0U9.css} +70 -31
- package/dist/assets/{PageViewLayout--7SkYsc9.js → PageViewLayout-DldtilHz.js} +2 -1
- package/dist/assets/{PrebuiltAgentTemplatesView-B7fK6krA.js → PrebuiltAgentTemplatesView-ChyN8J2x.js} +3 -2
- package/dist/assets/{ProjectBreadcrumb-BxMwihEP.js → ProjectBreadcrumb-9uWmVmc7.js} +2 -1
- package/dist/assets/{ProjectHeader-CVfPUZNI.js → ProjectHeader-CWapIKXf.js} +93 -23
- package/dist/assets/{ProjectSettings-t9C-Ly49.js → ProjectSettings-BlYXGYRx.js} +5 -3
- package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-zVio8c2n.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-DjpouOrH.js} +2 -1
- package/dist/assets/{ResourcesListLayout-O-Z59wTE.js → ResourcesListLayout-CfDIFGjS.js} +7 -6
- package/dist/assets/{ResourcesListLayout-B5eMf4SI.css → ResourcesListLayout-vTwRIDRz.css} +8 -8
- package/dist/assets/{RunDataJson-0J6_FxmM.js → RunDataJson-CTm3-xdY.js} +4 -3
- package/dist/assets/{RunDataJsonActions-ZbUSwg32.js → RunDataJsonActions-B_yBOGYB.js} +2 -1
- package/dist/assets/{RunDataParsedAiContent-Byf4f3hM.js → RunDataParsedAiContent-Cg9vUI0v.js} +3 -2
- package/dist/assets/{RunDataSearch-CyCbN9Nc.js → RunDataSearch-DPt2MvbI.js} +2 -1
- package/dist/assets/{RunDataTable-Rj0zhULj.js → RunDataTable-DHVRSqQT.js} +2 -1
- package/dist/assets/{SamlOnboarding-UDfF4zGH.js → SamlOnboarding-CN_xGqen.js} +4 -3
- package/dist/assets/{SelectedItemsInfo-CfUb0ZrI.css → SelectedItemsInfo-Dl4uynXs.css} +5 -3
- package/dist/assets/{SelectedItemsInfo-64VntNmH.js → SelectedItemsInfo-DzoCyQOW.js} +12 -7
- package/dist/assets/{SettingsApiView-BMYiuOCY.js → SettingsApiView-BIKCRKGM.js} +2 -1
- package/dist/assets/{SettingsCommunityNodesView-BULfnkhp.js → SettingsCommunityNodesView-ClWYmDB8.js} +7 -4
- package/dist/assets/{SettingsExternalSecrets-DgYPNKtM.js → SettingsExternalSecrets-D58JxT3V.js} +2 -1
- package/dist/assets/{SettingsLdapView-B64PusRO.js → SettingsLdapView-uImCjvMm.js} +2 -1
- package/dist/assets/{SettingsLogStreamingView-DiDxOEmg.js → SettingsLogStreamingView-DUn62Yq4.js} +2 -1
- package/dist/assets/{SettingsPersonalView-TP__Drcl.js → SettingsPersonalView-DGiCMsXu.js} +2 -1
- package/dist/assets/{SettingsSourceControl-FiqxT6qx.js → SettingsSourceControl-CVik5czR.js} +2 -1
- package/dist/assets/{SettingsSso-e5ntwax1.js → SettingsSso-BQkWpsdO.js} +2 -1
- package/dist/assets/{SettingsUsageAndPlan-BiNhzaI3.js → SettingsUsageAndPlan-BuwgmEka.js} +2 -1
- package/dist/assets/{SettingsUsersView-g3odVDFj.js → SettingsUsersView-DCmtHeMa.js} +2 -1
- package/dist/assets/{SettingsView-5M3uETdg.js → SettingsView-CrBThv_a.js} +2 -1
- package/dist/assets/{SetupView-DOX9lfRU.js → SetupView-CES8Gnnv.js} +4 -3
- package/dist/assets/{SetupWorkflowCredentialsButton-DMIEMB5C.js → SetupWorkflowCredentialsButton-Bjhx_rck.js} +2 -1
- package/dist/assets/{SetupWorkflowFromTemplateView-DEJsN9PM.js → SetupWorkflowFromTemplateView-C8kmCc7J.js} +4 -3
- package/dist/assets/{SigninView-FKXG_00n.js → SigninView-24xKsh_S.js} +4 -3
- package/dist/assets/{SignoutView-ppJ6lbCU.js → SignoutView-DgFIUUyh.js} +2 -1
- package/dist/assets/{SignupView-CmcH1BYL.js → SignupView-BckB-uUh.js} +4 -3
- package/dist/assets/{TableBase-DBeBHkOY.js → TableBase-CQEzJfeN.js} +2 -1
- package/dist/assets/{Tags-CdXa3Xx9.js → Tags-DbX-5_Fk.js} +2 -2
- package/dist/assets/{TemplateDetails-BxvljQA3.js → TemplateDetails-BGraOFbY.js} +3 -2
- package/dist/assets/{TemplateList-CV9csLUI.js → TemplateList-5P1N08U1.js} +2 -1
- package/dist/assets/{TemplatesCollectionView-4dKgKAQR.js → TemplatesCollectionView-D2-SU0eR.js} +7 -7
- package/dist/assets/{TemplatesSearchView-taSkU7cY.js → TemplatesSearchView-ncBXTfOM.js} +4 -3
- package/dist/assets/{TemplatesView-CXSlz1M1.js → TemplatesView-DO7HuUts.js} +2 -1
- package/dist/assets/{TemplatesWorkflowView-C-x3Aov1.js → TemplatesWorkflowView-BvrjU4RD.js} +7 -7
- package/dist/assets/{TriggerPanel-C-c5cPsc.js → TriggerPanel-BFQ6veDz.js} +10 -8
- package/dist/assets/{VariablesView-Bh0OeH4s.css → VariablesView-BHcrNXsw.css} +6 -6
- package/dist/assets/{VariablesView-C3mX49G9.js → VariablesView-BVzruwEA.js} +17 -14
- package/dist/assets/{WorkerView-DYK4TcTw.js → WorkerView-DRM6mgWJ.js} +9 -6
- package/dist/assets/{WorkflowActivator-DZIgVvgL.js → WorkflowActivator-BOt1oNlm.js} +4 -3
- package/dist/assets/{WorkflowExecutionsInfoAccordion-CivRIQhL.js → WorkflowExecutionsInfoAccordion-BjZUTKcs.js} +3 -2
- package/dist/assets/{WorkflowExecutionsLandingPage-kBAMGqy2.js → WorkflowExecutionsLandingPage-ENKxL7Yh.js} +4 -3
- package/dist/assets/{WorkflowExecutionsPreview-Bnd5-B-d.js → WorkflowExecutionsPreview-Cdgg29u5.js} +5 -4
- package/dist/assets/{WorkflowExecutionsView-CIfisPDk.js → WorkflowExecutionsView-t3W7WuAy.js} +9 -9
- package/dist/assets/{WorkflowHistory-JXOUdJnK.js → WorkflowHistory--OLvuBs1.js} +3 -2
- package/dist/assets/{WorkflowOnboardingView-Dc1KYhGC.js → WorkflowOnboardingView-C8y96ur1.js} +2 -1
- package/dist/assets/{WorkflowPreview-BF9SI0vn.js → WorkflowPreview-C1XHoZmU.js} +2 -1
- package/dist/assets/{WorkflowsView-CTnvp65F.js → WorkflowsView-B9rxI0No.js} +272 -62
- package/dist/assets/{WorkflowsView-BuvoAeDm.css → WorkflowsView-MF9XcT0u.css} +186 -0
- package/dist/assets/{canvas-DbK7UyVG.js → canvas-D2PwiGnN.js} +1 -1
- package/dist/assets/{chartjs.utils-DIRvJRrn.js → chartjs.utils-B6sz8yOh.js} +2 -2
- package/dist/assets/{core-Br-UFy15.js → core-Be7WBA6o.js} +2 -1
- package/dist/assets/{en-DdNgUrpa.js → en-CJyn5rnO.js} +32 -25
- package/dist/assets/{global-link-actions--TiC75iP.js → global-link-actions-B9WsUojd.js} +1 -1
- package/dist/assets/index-4g2Akj0I.js +13861 -0
- package/dist/assets/{index-DXNU_2Fk.css → index-B7wrqKiF.css} +8207 -8184
- package/dist/assets/{index--OJ5nhDf.js → index-BJG79OsS.js} +326678 -342011
- package/dist/assets/{index-D2apwRup.js → index-LOlKxvn4.js} +2 -1
- package/dist/assets/loadDefaultEn-DNiURDi9.js +8 -0
- package/dist/assets/{pickBy-BljOBsPy.js → pickBy-BMn768eW.js} +1 -1
- package/dist/assets/{readyToRunWorkflows.store-Dhb8bhvk.js → readyToRunWorkflows.store-HSpbq3Bf.js} +2 -1
- package/dist/assets/readyToRunWorkflowsV2.store-DcRVIsRt.js +138 -0
- package/dist/assets/sqlite3-DBpDb1lf.wasm +0 -0
- package/dist/assets/sqlite3-opfs-async-proxy-CYRFPDln.js +579 -0
- package/dist/assets/sqlite3-worker1-bundler-friendly-DF3WqBKq.js +11289 -0
- package/dist/assets/{templateActions-B4GEcBXU.js → templateActions-DR_XHPc4.js} +1 -1
- package/dist/assets/{useBeforeUnload-ZtUpNFCu.js → useBeforeUnload-DmAaB1v5.js} +2 -1
- package/dist/assets/{useExecutionDebugging-Bve-aaKO.js → useExecutionDebugging-B8xDxcb6.js} +2 -1
- package/dist/assets/{useImportCurlCommand-CAuor9Pu.js → useImportCurlCommand-BaN8fxqM.js} +2 -1
- package/dist/assets/{useProjectPages-CH519D2j.js → useProjectPages-B-oTYbCo.js} +2 -1
- package/dist/assets/{usePushConnection-Db77V5LR.js → usePushConnection-Bcd2_XWM.js} +36 -22
- package/dist/assets/{useWorkflowActivate-7Rw9KyzM.js → useWorkflowActivate-BDE2t3MM.js} +2 -1
- package/dist/assets/worker-DZxlyUFA.js +11826 -0
- package/dist/index.html +4 -3
- package/index.html +1 -1
- package/package.json +1 -1
- package/vite/i18n-locales-hmr-helpers.ts +19 -0
- package/vite.config.mts +33 -6
- package/dist/assets/CollectionParameter-CQji5w8u.js +0 -4
- package/dist/assets/Tag-BQAJRKFE.js +0 -32
- package/dist/assets/Tag-Cg-Hqs2H.css +0 -153
- package/dist/assets/dataStore.store-HuymAG46.js +0 -288
package/dist/index.html
CHANGED
|
@@ -7,14 +7,15 @@
|
|
|
7
7
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
|
8
8
|
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
|
|
9
9
|
<link rel="icon" href="/{{BASE_PATH}}/favicon.ico" />
|
|
10
|
-
|
|
10
|
+
%CONFIG_TAGS%
|
|
11
11
|
<link rel="stylesheet" href="/{{BASE_PATH}}/static/prefers-color-scheme.css">
|
|
12
12
|
<script src="/{{BASE_PATH}}/static/base-path.js" type="text/javascript"></script>
|
|
13
13
|
<script src="/{{BASE_PATH}}/static/posthog.init.js" type="text/javascript"></script>
|
|
14
14
|
|
|
15
15
|
<title>n8n.io - Workflow Automation</title>
|
|
16
|
-
<script type="module" crossorigin src="/{{BASE_PATH}}/assets/index
|
|
17
|
-
<link rel="
|
|
16
|
+
<script type="module" crossorigin src="/{{BASE_PATH}}/assets/index-BJG79OsS.js"></script>
|
|
17
|
+
<link rel="modulepreload" crossorigin href="/{{BASE_PATH}}/assets/index-4g2Akj0I.js">
|
|
18
|
+
<link rel="stylesheet" crossorigin href="/{{BASE_PATH}}/assets/index-B7wrqKiF.css">
|
|
18
19
|
</head>
|
|
19
20
|
<body>
|
|
20
21
|
<noscript>
|
package/index.html
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
|
6
6
|
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
|
|
7
7
|
<link rel="icon" href="/favicon.ico" />
|
|
8
|
-
%
|
|
8
|
+
%CONFIG_TAGS%
|
|
9
9
|
<link rel="stylesheet" href="/{{BASE_PATH}}/static/prefers-color-scheme.css">
|
|
10
10
|
<script src="/{{BASE_PATH}}/static/base-path.js" type="text/javascript"></script>
|
|
11
11
|
<script src="/{{BASE_PATH}}/static/posthog.init.js" type="text/javascript"></script>
|
package/package.json
CHANGED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { sep as pathSep } from 'path';
|
|
2
|
+
|
|
3
|
+
export const isLocaleFile = (file: string): boolean =>
|
|
4
|
+
file.endsWith('.json') && file.includes(`${pathSep}locales${pathSep}`);
|
|
5
|
+
|
|
6
|
+
export const extractLocale = (file: string): string | null => {
|
|
7
|
+
const match = file.match(new RegExp(`${pathSep}locales${pathSep}([^${pathSep}]+)\\.json$`));
|
|
8
|
+
return match?.[1] ?? null;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export const sendLocaleUpdate = (server: any, file: string): void => {
|
|
12
|
+
if (!isLocaleFile(file)) return;
|
|
13
|
+
const locale = extractLocale(file);
|
|
14
|
+
server.ws.send({
|
|
15
|
+
type: 'custom',
|
|
16
|
+
event: 'n8n:locale-update',
|
|
17
|
+
data: { locales: locale ? [locale] : [], file },
|
|
18
|
+
});
|
|
19
|
+
};
|
package/vite.config.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import vue from '@vitejs/plugin-vue';
|
|
2
|
-
import { posix as pathPosix, resolve } from 'path';
|
|
2
|
+
import { posix as pathPosix, resolve, sep as pathSep } from 'path';
|
|
3
3
|
import { defineConfig, mergeConfig, type UserConfig } from 'vite';
|
|
4
4
|
import { viteStaticCopy } from 'vite-plugin-static-copy';
|
|
5
5
|
import { nodePolyfills } from 'vite-plugin-node-polyfills';
|
|
@@ -12,6 +12,7 @@ import components from 'unplugin-vue-components/vite';
|
|
|
12
12
|
import browserslistToEsbuild from 'browserslist-to-esbuild';
|
|
13
13
|
import legacy from '@vitejs/plugin-legacy';
|
|
14
14
|
import browserslist from 'browserslist';
|
|
15
|
+
import { isLocaleFile, sendLocaleUpdate } from './vite/i18n-locales-hmr-helpers';
|
|
15
16
|
|
|
16
17
|
const publicPath = process.env.VUE_APP_PUBLIC_PATH || '/';
|
|
17
18
|
|
|
@@ -24,6 +25,8 @@ const packagesDir = resolve(__dirname, '..', '..');
|
|
|
24
25
|
const alias = [
|
|
25
26
|
{ find: '@', replacement: resolve(__dirname, 'src') },
|
|
26
27
|
{ find: 'stream', replacement: 'stream-browserify' },
|
|
28
|
+
// Ensure bare imports resolve to sources (not dist)
|
|
29
|
+
{ find: '@n8n/i18n', replacement: resolve(packagesDir, 'frontend', '@n8n', 'i18n', 'src') },
|
|
27
30
|
{
|
|
28
31
|
find: /^@n8n\/chat(.+)$/,
|
|
29
32
|
replacement: resolve(packagesDir, 'frontend', '@n8n', 'chat', 'src$1'),
|
|
@@ -126,17 +129,41 @@ const plugins: UserConfig['plugins'] = [
|
|
|
126
129
|
{
|
|
127
130
|
name: 'Insert config script',
|
|
128
131
|
transformIndexHtml: (html, ctx) => {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
132
|
+
// Skip config tags when using Vite dev server. Otherwise the BE
|
|
133
|
+
// will replace it with the actual config script in cli/src/commands/start.ts.
|
|
134
|
+
return ctx.server
|
|
135
|
+
? html
|
|
136
|
+
.replace('%CONFIG_TAGS%', '')
|
|
137
|
+
.replaceAll('/{{BASE_PATH}}', '//localhost:5678')
|
|
138
|
+
.replaceAll('/{{REST_ENDPOINT}}', '/rest')
|
|
139
|
+
: html;
|
|
134
140
|
},
|
|
135
141
|
},
|
|
136
142
|
// For sanitize-html
|
|
137
143
|
nodePolyfills({
|
|
138
144
|
include: ['fs', 'path', 'url', 'util', 'timers'],
|
|
139
145
|
}),
|
|
146
|
+
{
|
|
147
|
+
name: 'i18n-locales-hmr',
|
|
148
|
+
configureServer(server) {
|
|
149
|
+
const localesDir = resolve(packagesDir, 'frontend', '@n8n', 'i18n', 'src', 'locales');
|
|
150
|
+
server.watcher.add(localesDir);
|
|
151
|
+
|
|
152
|
+
// Only emit for add/unlink; change events are handled in handleHotUpdate
|
|
153
|
+
server.watcher.on('all', (event, file) => {
|
|
154
|
+
if ((event === 'add' || event === 'unlink') && isLocaleFile(file)) {
|
|
155
|
+
sendLocaleUpdate(server, file);
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
},
|
|
159
|
+
handleHotUpdate(ctx) {
|
|
160
|
+
const { file, server } = ctx;
|
|
161
|
+
if (!isLocaleFile(file)) return;
|
|
162
|
+
sendLocaleUpdate(server, file);
|
|
163
|
+
// Swallow default HMR for this file to prevent full page reloads
|
|
164
|
+
return [];
|
|
165
|
+
},
|
|
166
|
+
},
|
|
140
167
|
];
|
|
141
168
|
|
|
142
169
|
const { RELEASE: release } = process.env;
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { d as defineComponent, h as createElementBlock, g as openBlock, K as mergeProps, X as renderSlot, t as toDisplayString, _ as _export_sfc } from "./index--OJ5nhDf.js";
|
|
2
|
-
const _hoisted_1 = { key: 1 };
|
|
3
|
-
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
4
|
-
...{ name: "N8nTag" },
|
|
5
|
-
__name: "Tag",
|
|
6
|
-
props: {
|
|
7
|
-
text: {},
|
|
8
|
-
clickable: { type: Boolean, default: true }
|
|
9
|
-
},
|
|
10
|
-
setup(__props) {
|
|
11
|
-
return (_ctx, _cache) => {
|
|
12
|
-
return openBlock(), createElementBlock("span", mergeProps({
|
|
13
|
-
class: ["n8n-tag", _ctx.$style.tag, { [_ctx.$style.clickable]: _ctx.clickable }]
|
|
14
|
-
}, _ctx.$attrs), [
|
|
15
|
-
_ctx.$slots["tag"] ? renderSlot(_ctx.$slots, "tag", { key: 0 }) : (openBlock(), createElementBlock("span", _hoisted_1, toDisplayString(_ctx.text), 1))
|
|
16
|
-
], 16);
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
const tag = "_tag_49pvx_123";
|
|
21
|
-
const clickable = "_clickable_49pvx_138";
|
|
22
|
-
const style0 = {
|
|
23
|
-
tag,
|
|
24
|
-
clickable
|
|
25
|
-
};
|
|
26
|
-
const cssModules = {
|
|
27
|
-
"$style": style0
|
|
28
|
-
};
|
|
29
|
-
const Tag = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModules", cssModules]]);
|
|
30
|
-
export {
|
|
31
|
-
Tag as T
|
|
32
|
-
};
|
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
/* BEM support Func
|
|
2
|
-
-------------------------- */
|
|
3
|
-
/* Transition
|
|
4
|
-
-------------------------- */
|
|
5
|
-
/* Color
|
|
6
|
-
-------------------------- */
|
|
7
|
-
/* Link
|
|
8
|
-
-------------------------- */
|
|
9
|
-
/* Border
|
|
10
|
-
-------------------------- */
|
|
11
|
-
/* Outline
|
|
12
|
-
-------------------------- */
|
|
13
|
-
/* Box shadow
|
|
14
|
-
-------------------------- */
|
|
15
|
-
/* Fill
|
|
16
|
-
-------------------------- */
|
|
17
|
-
/* Typography
|
|
18
|
-
-------------------------- */
|
|
19
|
-
/* z-index
|
|
20
|
-
-------------------------- */
|
|
21
|
-
/* Disable base
|
|
22
|
-
-------------------------- */
|
|
23
|
-
/* Icon
|
|
24
|
-
-------------------------- */
|
|
25
|
-
/* Checkbox
|
|
26
|
-
-------------------------- */
|
|
27
|
-
/* Radio
|
|
28
|
-
-------------------------- */
|
|
29
|
-
/* Select
|
|
30
|
-
-------------------------- */
|
|
31
|
-
/* Alert
|
|
32
|
-
-------------------------- */
|
|
33
|
-
/* MessageBox
|
|
34
|
-
-------------------------- */
|
|
35
|
-
/* Message
|
|
36
|
-
-------------------------- */
|
|
37
|
-
/* Notification
|
|
38
|
-
-------------------------- */
|
|
39
|
-
/* Input
|
|
40
|
-
-------------------------- */
|
|
41
|
-
/* Cascader
|
|
42
|
-
-------------------------- */
|
|
43
|
-
/* Group
|
|
44
|
-
-------------------------- */
|
|
45
|
-
/* Tab
|
|
46
|
-
-------------------------- */
|
|
47
|
-
/* Button
|
|
48
|
-
-------------------------- */
|
|
49
|
-
/* cascader
|
|
50
|
-
-------------------------- */
|
|
51
|
-
/* Switch
|
|
52
|
-
-------------------------- */
|
|
53
|
-
/* Dialog
|
|
54
|
-
-------------------------- */
|
|
55
|
-
/* Table
|
|
56
|
-
-------------------------- */
|
|
57
|
-
/* Pagination
|
|
58
|
-
-------------------------- */
|
|
59
|
-
/* Popup
|
|
60
|
-
-------------------------- */
|
|
61
|
-
/* Popover
|
|
62
|
-
-------------------------- */
|
|
63
|
-
/* Tooltip
|
|
64
|
-
-------------------------- */
|
|
65
|
-
/* Tag
|
|
66
|
-
-------------------------- */
|
|
67
|
-
/* Tree
|
|
68
|
-
-------------------------- */
|
|
69
|
-
/* Dropdown
|
|
70
|
-
-------------------------- */
|
|
71
|
-
/* Badge
|
|
72
|
-
-------------------------- */
|
|
73
|
-
/* Card
|
|
74
|
-
--------------------------*/
|
|
75
|
-
/* Slider
|
|
76
|
-
--------------------------*/
|
|
77
|
-
/* Steps
|
|
78
|
-
--------------------------*/
|
|
79
|
-
/* Menu
|
|
80
|
-
--------------------------*/
|
|
81
|
-
/* Rate
|
|
82
|
-
--------------------------*/
|
|
83
|
-
/* DatePicker
|
|
84
|
-
--------------------------*/
|
|
85
|
-
/* Loading
|
|
86
|
-
--------------------------*/
|
|
87
|
-
/* Scrollbar
|
|
88
|
-
--------------------------*/
|
|
89
|
-
/* Carousel
|
|
90
|
-
--------------------------*/
|
|
91
|
-
/* Collapse
|
|
92
|
-
--------------------------*/
|
|
93
|
-
/* Transfer
|
|
94
|
-
--------------------------*/
|
|
95
|
-
/* Header
|
|
96
|
-
--------------------------*/
|
|
97
|
-
/* Footer
|
|
98
|
-
--------------------------*/
|
|
99
|
-
/* Main
|
|
100
|
-
--------------------------*/
|
|
101
|
-
/* Timeline
|
|
102
|
-
--------------------------*/
|
|
103
|
-
/* Backtop
|
|
104
|
-
--------------------------*/
|
|
105
|
-
/* Link
|
|
106
|
-
--------------------------*/
|
|
107
|
-
/* Calendar
|
|
108
|
-
--------------------------*/
|
|
109
|
-
/* Form
|
|
110
|
-
-------------------------- */
|
|
111
|
-
/* Avatar
|
|
112
|
-
--------------------------*/
|
|
113
|
-
/* Break-point
|
|
114
|
-
--------------------------*/
|
|
115
|
-
/* Break-points
|
|
116
|
-
-------------------------- */
|
|
117
|
-
/* Scrollbar
|
|
118
|
-
-------------------------- */
|
|
119
|
-
/* Placeholder
|
|
120
|
-
-------------------------- */
|
|
121
|
-
/* BEM
|
|
122
|
-
-------------------------- */
|
|
123
|
-
._tag_49pvx_123 {
|
|
124
|
-
display: -webkit-box;
|
|
125
|
-
display: -ms-flexbox;
|
|
126
|
-
display: flex;
|
|
127
|
-
-webkit-box-align: center;
|
|
128
|
-
-ms-flex-align: center;
|
|
129
|
-
align-items: center;
|
|
130
|
-
-webkit-box-pack: center;
|
|
131
|
-
-ms-flex-pack: center;
|
|
132
|
-
justify-content: center;
|
|
133
|
-
min-width: -webkit-max-content;
|
|
134
|
-
min-width: -moz-max-content;
|
|
135
|
-
min-width: max-content;
|
|
136
|
-
height: var(--tag-height);
|
|
137
|
-
padding: var(--tag-padding);
|
|
138
|
-
line-height: var(--tag-line-height);
|
|
139
|
-
color: var(--tag-text-color);
|
|
140
|
-
background-color: var(--tag-background-color);
|
|
141
|
-
border: 1px solid var(--tag-border-color);
|
|
142
|
-
border-radius: var(--tag-border-radius);
|
|
143
|
-
font-size: var(--tag-font-size);
|
|
144
|
-
-webkit-transition: background-color 0.3s ease;
|
|
145
|
-
transition: background-color 0.3s ease;
|
|
146
|
-
}
|
|
147
|
-
._tag_49pvx_123._clickable_49pvx_138 {
|
|
148
|
-
cursor: pointer;
|
|
149
|
-
}
|
|
150
|
-
._tag_49pvx_123._clickable_49pvx_138:hover {
|
|
151
|
-
background-color: var(--tag-background-hover-color);
|
|
152
|
-
border-color: var(--tag-border-hover-color);
|
|
153
|
-
}
|
|
@@ -1,288 +0,0 @@
|
|
|
1
|
-
import { f6 as makeRestApiRequest, $ as defineStore, at as useRootStore, au as useProjectsStore, r as ref, gG as DATA_STORE_STORE } from "./index--OJ5nhDf.js";
|
|
2
|
-
const fetchDataStoresApi = async (context, projectId, options, filter) => {
|
|
3
|
-
const apiEndpoint = projectId ? `/projects/${projectId}/data-tables` : "/data-tables-global";
|
|
4
|
-
return await makeRestApiRequest(
|
|
5
|
-
context,
|
|
6
|
-
"GET",
|
|
7
|
-
apiEndpoint,
|
|
8
|
-
{
|
|
9
|
-
options: options ?? void 0,
|
|
10
|
-
filter: filter ?? void 0
|
|
11
|
-
}
|
|
12
|
-
);
|
|
13
|
-
};
|
|
14
|
-
const createDataStoreApi = async (context, name, projectId, columns) => {
|
|
15
|
-
return await makeRestApiRequest(
|
|
16
|
-
context,
|
|
17
|
-
"POST",
|
|
18
|
-
`/projects/${projectId}/data-tables`,
|
|
19
|
-
{
|
|
20
|
-
name,
|
|
21
|
-
columns: []
|
|
22
|
-
}
|
|
23
|
-
);
|
|
24
|
-
};
|
|
25
|
-
const deleteDataStoreApi = async (context, dataStoreId, projectId) => {
|
|
26
|
-
return await makeRestApiRequest(
|
|
27
|
-
context,
|
|
28
|
-
"DELETE",
|
|
29
|
-
`/projects/${projectId}/data-tables/${dataStoreId}`,
|
|
30
|
-
{
|
|
31
|
-
dataStoreId,
|
|
32
|
-
projectId
|
|
33
|
-
}
|
|
34
|
-
);
|
|
35
|
-
};
|
|
36
|
-
const updateDataStoreApi = async (context, dataStoreId, name, projectId) => {
|
|
37
|
-
return await makeRestApiRequest(
|
|
38
|
-
context,
|
|
39
|
-
"PATCH",
|
|
40
|
-
`/projects/${projectId}/data-tables/${dataStoreId}`,
|
|
41
|
-
{
|
|
42
|
-
name
|
|
43
|
-
}
|
|
44
|
-
);
|
|
45
|
-
};
|
|
46
|
-
const addDataStoreColumnApi = async (context, dataStoreId, projectId, column) => {
|
|
47
|
-
return await makeRestApiRequest(
|
|
48
|
-
context,
|
|
49
|
-
"POST",
|
|
50
|
-
`/projects/${projectId}/data-tables/${dataStoreId}/columns`,
|
|
51
|
-
{
|
|
52
|
-
...column
|
|
53
|
-
}
|
|
54
|
-
);
|
|
55
|
-
};
|
|
56
|
-
const deleteDataStoreColumnApi = async (context, dataStoreId, projectId, columnId) => {
|
|
57
|
-
return await makeRestApiRequest(
|
|
58
|
-
context,
|
|
59
|
-
"DELETE",
|
|
60
|
-
`/projects/${projectId}/data-tables/${dataStoreId}/columns/${columnId}`
|
|
61
|
-
);
|
|
62
|
-
};
|
|
63
|
-
const moveDataStoreColumnApi = async (context, dataStoreId, projectId, columnId, targetIndex) => {
|
|
64
|
-
return await makeRestApiRequest(
|
|
65
|
-
context,
|
|
66
|
-
"PATCH",
|
|
67
|
-
`/projects/${projectId}/data-tables/${dataStoreId}/columns/${columnId}/move`,
|
|
68
|
-
{
|
|
69
|
-
targetIndex
|
|
70
|
-
}
|
|
71
|
-
);
|
|
72
|
-
};
|
|
73
|
-
const getDataStoreRowsApi = async (context, dataStoreId, projectId, options) => {
|
|
74
|
-
return await makeRestApiRequest(context, "GET", `/projects/${projectId}/data-tables/${dataStoreId}/rows`, {
|
|
75
|
-
...options ?? {}
|
|
76
|
-
});
|
|
77
|
-
};
|
|
78
|
-
const insertDataStoreRowApi = async (context, dataStoreId, row, projectId) => {
|
|
79
|
-
return await makeRestApiRequest(
|
|
80
|
-
context,
|
|
81
|
-
"POST",
|
|
82
|
-
`/projects/${projectId}/data-tables/${dataStoreId}/insert`,
|
|
83
|
-
{
|
|
84
|
-
returnData: true,
|
|
85
|
-
data: [row]
|
|
86
|
-
}
|
|
87
|
-
);
|
|
88
|
-
};
|
|
89
|
-
const updateDataStoreRowsApi = async (context, dataStoreId, rowId, rowData, projectId) => {
|
|
90
|
-
return await makeRestApiRequest(
|
|
91
|
-
context,
|
|
92
|
-
"PATCH",
|
|
93
|
-
`/projects/${projectId}/data-tables/${dataStoreId}/rows`,
|
|
94
|
-
{
|
|
95
|
-
filter: { id: rowId },
|
|
96
|
-
data: rowData
|
|
97
|
-
}
|
|
98
|
-
);
|
|
99
|
-
};
|
|
100
|
-
const deleteDataStoreRowsApi = async (context, dataStoreId, rowIds, projectId) => {
|
|
101
|
-
return await makeRestApiRequest(
|
|
102
|
-
context,
|
|
103
|
-
"DELETE",
|
|
104
|
-
`/projects/${projectId}/data-tables/${dataStoreId}/rows`,
|
|
105
|
-
{
|
|
106
|
-
ids: rowIds.join(",")
|
|
107
|
-
}
|
|
108
|
-
);
|
|
109
|
-
};
|
|
110
|
-
const reorderItem = (items, oldIndex, newIndex) => {
|
|
111
|
-
return items.map((item) => {
|
|
112
|
-
if (item.index === oldIndex) return { ...item, index: newIndex };
|
|
113
|
-
if (oldIndex < newIndex && item.index > oldIndex && item.index <= newIndex) {
|
|
114
|
-
return { ...item, index: item.index - 1 };
|
|
115
|
-
}
|
|
116
|
-
if (oldIndex > newIndex && item.index >= newIndex && item.index < oldIndex) {
|
|
117
|
-
return { ...item, index: item.index + 1 };
|
|
118
|
-
}
|
|
119
|
-
return item;
|
|
120
|
-
});
|
|
121
|
-
};
|
|
122
|
-
const useDataStoreStore = defineStore(DATA_STORE_STORE, () => {
|
|
123
|
-
const rootStore = useRootStore();
|
|
124
|
-
const projectStore = useProjectsStore();
|
|
125
|
-
const dataStores = ref([]);
|
|
126
|
-
const totalCount = ref(0);
|
|
127
|
-
const fetchDataStores = async (projectId, page, pageSize) => {
|
|
128
|
-
const response = await fetchDataStoresApi(rootStore.restApiContext, projectId, {
|
|
129
|
-
skip: (page - 1) * pageSize,
|
|
130
|
-
take: pageSize
|
|
131
|
-
});
|
|
132
|
-
dataStores.value = response.data;
|
|
133
|
-
totalCount.value = response.count;
|
|
134
|
-
};
|
|
135
|
-
const createDataStore = async (name, projectId) => {
|
|
136
|
-
const newStore = await createDataStoreApi(rootStore.restApiContext, name, projectId);
|
|
137
|
-
if (!newStore.project && projectId) {
|
|
138
|
-
const project = await projectStore.fetchProject(projectId);
|
|
139
|
-
if (project) {
|
|
140
|
-
newStore.project = project;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
dataStores.value.push(newStore);
|
|
144
|
-
totalCount.value += 1;
|
|
145
|
-
return newStore;
|
|
146
|
-
};
|
|
147
|
-
const deleteDataStore = async (datastoreId, projectId) => {
|
|
148
|
-
const deleted = await deleteDataStoreApi(rootStore.restApiContext, datastoreId, projectId);
|
|
149
|
-
if (deleted) {
|
|
150
|
-
dataStores.value = dataStores.value.filter((store) => store.id !== datastoreId);
|
|
151
|
-
totalCount.value -= 1;
|
|
152
|
-
}
|
|
153
|
-
return deleted;
|
|
154
|
-
};
|
|
155
|
-
const deleteDataStoreColumn = async (datastoreId, projectId, columnId) => {
|
|
156
|
-
const deleted = await deleteDataStoreColumnApi(
|
|
157
|
-
rootStore.restApiContext,
|
|
158
|
-
datastoreId,
|
|
159
|
-
projectId,
|
|
160
|
-
columnId
|
|
161
|
-
);
|
|
162
|
-
if (deleted) {
|
|
163
|
-
const index = dataStores.value.findIndex((store) => store.id === datastoreId);
|
|
164
|
-
if (index !== -1) {
|
|
165
|
-
dataStores.value[index].columns = dataStores.value[index].columns.filter(
|
|
166
|
-
(col) => col.id !== columnId
|
|
167
|
-
);
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
return deleted;
|
|
171
|
-
};
|
|
172
|
-
const updateDataStore = async (datastoreId, name, projectId) => {
|
|
173
|
-
const updated = await updateDataStoreApi(
|
|
174
|
-
rootStore.restApiContext,
|
|
175
|
-
datastoreId,
|
|
176
|
-
name,
|
|
177
|
-
projectId
|
|
178
|
-
);
|
|
179
|
-
if (updated) {
|
|
180
|
-
const index = dataStores.value.findIndex((store) => store.id === datastoreId);
|
|
181
|
-
if (index !== -1) {
|
|
182
|
-
dataStores.value[index] = { ...dataStores.value[index], name };
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
return updated;
|
|
186
|
-
};
|
|
187
|
-
const fetchDataStoreDetails = async (datastoreId, projectId) => {
|
|
188
|
-
const response = await fetchDataStoresApi(rootStore.restApiContext, projectId, void 0, {
|
|
189
|
-
projectId,
|
|
190
|
-
id: datastoreId
|
|
191
|
-
});
|
|
192
|
-
if (response.data.length > 0) {
|
|
193
|
-
dataStores.value = response.data;
|
|
194
|
-
return response.data[0];
|
|
195
|
-
}
|
|
196
|
-
return null;
|
|
197
|
-
};
|
|
198
|
-
const fetchOrFindDataStore = async (datastoreId, projectId) => {
|
|
199
|
-
const existingStore = dataStores.value.find((store) => store.id === datastoreId);
|
|
200
|
-
if (existingStore) {
|
|
201
|
-
return existingStore;
|
|
202
|
-
}
|
|
203
|
-
return await fetchDataStoreDetails(datastoreId, projectId);
|
|
204
|
-
};
|
|
205
|
-
const addDataStoreColumn = async (datastoreId, projectId, column) => {
|
|
206
|
-
const newColumn = await addDataStoreColumnApi(
|
|
207
|
-
rootStore.restApiContext,
|
|
208
|
-
datastoreId,
|
|
209
|
-
projectId,
|
|
210
|
-
column
|
|
211
|
-
);
|
|
212
|
-
if (newColumn) {
|
|
213
|
-
const index = dataStores.value.findIndex((store) => store.id === datastoreId);
|
|
214
|
-
if (index !== -1) {
|
|
215
|
-
dataStores.value[index].columns.push(newColumn);
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
return newColumn;
|
|
219
|
-
};
|
|
220
|
-
const moveDataStoreColumn = async (datastoreId, projectId, columnId, targetIndex) => {
|
|
221
|
-
const moved = await moveDataStoreColumnApi(
|
|
222
|
-
rootStore.restApiContext,
|
|
223
|
-
datastoreId,
|
|
224
|
-
projectId,
|
|
225
|
-
columnId,
|
|
226
|
-
targetIndex
|
|
227
|
-
);
|
|
228
|
-
if (moved) {
|
|
229
|
-
const dsIndex = dataStores.value.findIndex((store) => store.id === datastoreId);
|
|
230
|
-
const fromIndex = dataStores.value[dsIndex].columns.findIndex((col) => col.id === columnId);
|
|
231
|
-
dataStores.value[dsIndex].columns = reorderItem(
|
|
232
|
-
dataStores.value[dsIndex].columns,
|
|
233
|
-
fromIndex,
|
|
234
|
-
targetIndex
|
|
235
|
-
);
|
|
236
|
-
}
|
|
237
|
-
return moved;
|
|
238
|
-
};
|
|
239
|
-
const fetchDataStoreContent = async (datastoreId, projectId, page, pageSize, sortBy) => {
|
|
240
|
-
return await getDataStoreRowsApi(rootStore.restApiContext, datastoreId, projectId, {
|
|
241
|
-
skip: (page - 1) * pageSize,
|
|
242
|
-
take: pageSize,
|
|
243
|
-
sortBy
|
|
244
|
-
});
|
|
245
|
-
};
|
|
246
|
-
const insertEmptyRow = async (dataStore) => {
|
|
247
|
-
const inserted = await insertDataStoreRowApi(
|
|
248
|
-
rootStore.restApiContext,
|
|
249
|
-
dataStore.id,
|
|
250
|
-
{},
|
|
251
|
-
dataStore.projectId
|
|
252
|
-
);
|
|
253
|
-
return inserted[0];
|
|
254
|
-
};
|
|
255
|
-
const updateRow = async (dataStoreId, projectId, rowId, rowData) => {
|
|
256
|
-
return await updateDataStoreRowsApi(
|
|
257
|
-
rootStore.restApiContext,
|
|
258
|
-
dataStoreId,
|
|
259
|
-
rowId,
|
|
260
|
-
rowData,
|
|
261
|
-
projectId
|
|
262
|
-
);
|
|
263
|
-
};
|
|
264
|
-
const deleteRows = async (dataStoreId, projectId, rowIds) => {
|
|
265
|
-
return await deleteDataStoreRowsApi(rootStore.restApiContext, dataStoreId, rowIds, projectId);
|
|
266
|
-
};
|
|
267
|
-
return {
|
|
268
|
-
dataStores,
|
|
269
|
-
totalCount,
|
|
270
|
-
fetchDataStores,
|
|
271
|
-
createDataStore,
|
|
272
|
-
deleteDataStore,
|
|
273
|
-
updateDataStore,
|
|
274
|
-
fetchDataStoreDetails,
|
|
275
|
-
fetchOrFindDataStore,
|
|
276
|
-
addDataStoreColumn,
|
|
277
|
-
deleteDataStoreColumn,
|
|
278
|
-
moveDataStoreColumn,
|
|
279
|
-
fetchDataStoreContent,
|
|
280
|
-
insertEmptyRow,
|
|
281
|
-
updateRow,
|
|
282
|
-
deleteRows
|
|
283
|
-
};
|
|
284
|
-
});
|
|
285
|
-
export {
|
|
286
|
-
reorderItem as r,
|
|
287
|
-
useDataStoreStore as u
|
|
288
|
-
};
|