+
import { defineComponent } from 'vue';
import NodeIcon from '@/components/NodeIcon.vue';
-import { genericHelpers } from '@/mixins/genericHelpers';
import type { ITemplatesNode } from '@/Interface';
import { filterTemplateNodes } from '@/utils/nodeTypesUtils';
@@ -24,7 +23,6 @@ export default defineComponent({
components: {
NodeIcon,
},
- mixins: [genericHelpers],
props: {
nodes: {
type: Array,
diff --git a/packages/editor-ui/src/components/OutputPanel.vue b/packages/editor-ui/src/components/OutputPanel.vue
index 33c8faaba9..61fcd57677 100644
--- a/packages/editor-ui/src/components/OutputPanel.vue
+++ b/packages/editor-ui/src/components/OutputPanel.vue
@@ -1,5 +1,6 @@
import('@/components/RunDataTable.vue'));
const RunDataJson = defineAsyncComponent(async () => import('@/components/RunDataJson.vue'));
@@ -644,7 +644,6 @@ export default defineComponent({
RunDataHtml,
RunDataSearch,
},
- mixins: [genericHelpers],
props: {
node: {
type: Object as PropType,
@@ -759,7 +758,10 @@ export default defineComponent({
this.hidePinDataDiscoveryTooltip();
},
computed: {
- ...mapStores(useNodeTypesStore, useNDVStore, useWorkflowsStore),
+ ...mapStores(useNodeTypesStore, useNDVStore, useWorkflowsStore, useSourceControlStore),
+ isReadOnlyRoute() {
+ return this.$route?.meta?.readOnlyCanvas === true;
+ },
activeNode(): INodeUi | null {
return this.ndvStore.activeNode;
},
@@ -1402,7 +1404,7 @@ export default defineComponent({
}
},
async downloadJsonData() {
- const fileName = this.node!.name.replace(/[^\w\d]/g, '_');
+ const fileName = this.node.name.replace(/[^\w\d]/g, '_');
const blob = new Blob([JSON.stringify(this.rawInputData, null, 2)], {
type: 'application/json',
});
@@ -1413,7 +1415,7 @@ export default defineComponent({
this.binaryDataDisplayVisible = true;
this.binaryDataDisplayData = {
- node: this.node!.name,
+ node: this.node.name,
runIndex: this.runIndex,
outputIndex: this.currentOutputIndex,
index,
diff --git a/packages/editor-ui/src/components/RunDataJsonActions.vue b/packages/editor-ui/src/components/RunDataJsonActions.vue
index 22f45fe7ff..9ea46e3372 100644
--- a/packages/editor-ui/src/components/RunDataJsonActions.vue
+++ b/packages/editor-ui/src/components/RunDataJsonActions.vue
@@ -41,7 +41,6 @@ import { mapStores, storeToRefs } from 'pinia';
import jp from 'jsonpath';
import type { INodeUi } from '@/Interface';
import type { IDataObject } from 'n8n-workflow';
-import { genericHelpers } from '@/mixins/genericHelpers';
import { clearJsonKey, convertPath } from '@/utils/typesUtils';
import { executionDataToJson } from '@/utils/nodeTypesUtils';
import { useWorkflowsStore } from '@/stores/workflows.store';
@@ -51,6 +50,8 @@ import { useToast } from '@/composables/useToast';
import { useI18n } from '@/composables/useI18n';
import { nonExistingJsonPath } from '@/constants';
import { useClipboard } from '@/composables/useClipboard';
+import { useNodeTypesStore } from '@/stores/nodeTypes.store';
+import { useSourceControlStore } from '@/stores/sourceControl.store';
import { usePinnedData } from '@/composables/usePinnedData';
type JsonPathData = {
@@ -60,7 +61,6 @@ type JsonPathData = {
export default defineComponent({
name: 'RunDataJsonActions',
- mixins: [genericHelpers],
props: {
node: {
type: Object as PropType,
@@ -109,7 +109,10 @@ export default defineComponent({
};
},
computed: {
- ...mapStores(useNDVStore, useWorkflowsStore),
+ ...mapStores(useNodeTypesStore, useNDVStore, useWorkflowsStore, useSourceControlStore),
+ isReadOnlyRoute() {
+ return this.$route?.meta?.readOnlyCanvas === true;
+ },
activeNode(): INodeUi | null {
return this.ndvStore.activeNode;
},
diff --git a/packages/editor-ui/src/components/TemplateCard.vue b/packages/editor-ui/src/components/TemplateCard.vue
index e793cf11df..1eab5bc6a9 100644
--- a/packages/editor-ui/src/components/TemplateCard.vue
+++ b/packages/editor-ui/src/components/TemplateCard.vue
@@ -48,7 +48,6 @@