n8n/packages/editor-ui/src/views/CanvasAddButton.vue

86 lines
2.2 KiB
Vue
Raw Normal View History

feat(editor, core, cli): implement new workflow experience (#4358) * feat(ExecuteWorkflowTrigger node): Implement ExecuteWorkflowTrigger node (#4108) * feat(ExecuteWorkflowTrigger node): Implement ExecuteWorkflowTrigger node * feat(editor): Do not show duplicate button if canvas contains `maxNodes` amount of nodes * feat(ManualTrigger node): Implement ManualTrigger node (#4110) * feat(ManualTrigger node): Implement ManualTrigger node * :memo: Remove generics doc items from ManualTrigger node * feat(editor-ui): Trigger tab redesign (#4150) * :construction: Begin with TriggerPanel implementation, add Other Trigger Nodes subcategory * :construction: Extracted categorized categories/subcategory/nodes rendering into its own component — CategorizedItems, removed SubcategoryPanel, added translations * :sparkles: Implement MainPanel background scrim * :recycle: Move `categoriesWithNodes`, 'visibleNodeTypes` and 'categorizedItems` to store, implemented dynamic categories count based on `selectedType` * :bug: Fix SlideTransition for all the NodeCreato panels * :lipstick: Fix cursos for CategoryItem and NodeItem * :bug: Make sure ALL_NODE_FILTER is always set when MainPanel is mounted * :art: Address PR comments * label: Use Array type for CategorizedItems props * :label: Add proper types for Vue props * 🎨 Use standard component registration for CategorizedItems inside TriggerHelperPanel * 🎨 Use kebab case for main-panel and icon component * :label: Improve types * feat(editor-ui): Redesign search input inside node creator panel (#4204) * :construction: Begin with TriggerPanel implementation, add Other Trigger Nodes subcategory * :construction: Extracted categorized categories/subcategory/nodes rendering into its own component — CategorizedItems, removed SubcategoryPanel, added translations * :sparkles: Implement MainPanel background scrim * :recycle: Move `categoriesWithNodes`, 'visibleNodeTypes` and 'categorizedItems` to store, implemented dynamic categories count based on `selectedType` * :bug: Fix SlideTransition for all the NodeCreato panels * :lipstick: Fix cursos for CategoryItem and NodeItem * :bug: Make sure ALL_NODE_FILTER is always set when MainPanel is mounted * :art: Address PR comments * label: Use Array type for CategorizedItems props * :label: Add proper types for Vue props * 🎨 Use standard component registration for CategorizedItems inside TriggerHelperPanel * :sparkles: Redesign search input and unify usage of categorized items * :label: Use lowercase "Boolean" as `isSearchVisible` computed return type * :fire: Remove useless emit * :sparkles: Implement no result view based on subcategory, minor fixes * :art: Remove unused properties * feat(node-email): Change EmailReadImap display name and name (#4239) * feat(editor-ui): Implement "Choose a Triger" action and related behaviour (#4226) * :sparkles: Implement "Choose a Triger" action and related behaviour * :mute: Lint fix * :recycle: Remove PlaceholderTrigger node, add a button instead * :art: Merge onMouseEnter and onMouseLeave to a single function * :bulb: Add comment * :fire: Remove PlaceholderNode registration * :art: Rename TriggerPlaceholderButton to CanvasAddButton * :sparkles: Add method to unregister custom action and rework CanvasAddButton centering logic * :art: Run `setRecenteredCanvasAddButtonPosition` on `CanvasAddButton` mount * fix(editor): Fix selecting of node from node-creator panel by clicking * :twisted_rightwards_arrows: Merge fixes * fix(editor): Show execute workflow trigger instead of workflow trigger in the trigger helper panel * feat(editor): Fix node creator panel slide transition (#4261) * fix(editor): Fix node creator panel slide-in/slide-out transitions * :art: Fix naming * :art: Use kebab-case for transition component name * feat(editor): Disable execution and show notice when user tries to run workflow without enabled triggers * fix(editor): Address first batch of new WF experience review (#4279) * fix(editor): Fix first batch of review items * bug(editor): Fix nodeview canvas add button centering * :mute: Fix linter errors * bug(ManualTrigger Node): Fix manual trigger node execution * fix(editor): Do not show canvas add button in execution or demo mode and prevent clicking if creator is open * fix(editor): do not show pin data tooltip for manual trigger node * fix(editor): do not use nodeViewOffset on zoomToFit * :lipstick: Add margin for last node creator item and set font-weight to 700 for category title * :sparkles: Position welcome note next to the added trigger node * :bug: Remve always true welcome note * feat(editor): Minor UI and UX tweaks (#4328) * :lipstick: Make top viewport buttons less prominent * :sparkles: Allow user to switch to all tabs if it contains filter results, move nodecreator state props to its own module * :mute: Fix linting errors * :mute: Fix linting errors * :mute: Fix linting errors * chore(build): Ping Turbo version to 1.5.5 * :lipstick: Minor traigger panel and node view style changes * :speech_balloon: Update display name of execute workflow trigger * feat(core, editor): Update subworkflow execution logic (#4269) * :sparkles: Implement `findWorkflowStart` * :zap: Extend `WorkflowOperationError` * :zap: Add `WorkflowOperationError` to toast * :blue_book: Extend interface * :sparkles: Add `subworkflowExecutionError` to store * :sparkles: Create `SubworkflowOperationError` * :zap: Render subworkflow error as node error * :truck: Move subworkflow start validation to `cli` * :zap: Reset subworkflow execution error state * :fire: Remove unused import * :zap: Adjust CLI commands * :fire: Remove unneeded check * :fire: Remove stray log * :zap: Simplify syntax * :zap: Sort in case both Start and EWT present * :recycle: Address Omar's feedback * :fire: Remove unneeded lint exception * :pencil2: Fix copy * :shirt: Fix lint * fix: moved find start node function to catchable place Co-authored-by: Omar Ajoue <krynble@gmail.com> * :lipstick: Change ExecuteWorkflow node to primary * :sparkles: Allow user to navigate to all tab if it contains search results * :bug: Fixed canvas control button while in demo, disable workflow activation for non-activavle nodes and revert zoomToFit bottom offset * :fix: Do not chow request text if there's results * :speech_balloon: Update noResults text Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Omar Ajoue <krynble@gmail.com>
2022-10-18 05:23:22 -07:00
<template>
feat(editor): Node creator actions (#4696) * WIP: Node Actions List UI * WIP: Recommended Actions and preseting of fields * WIP: Resource category * :art: Moved actions categorisation to the server * :label: Add missing INodeAction type * :sparkles: Improve SSR categorisation, fix adding of mixed actions * :recycle: Refactor CategorizedItems to composition api, style fixes * WIP: Adding multiple nodes * :recycle: Refactor rest of the NodeCreator component to composition API, conver globalLinkActions to composable * :sparkles: Allow actions dragging, fix search and refactor passing of actions to categorized items * :lipstick: Fix node actions title * Migrate to the pinia store, add posthog feature and various fixes * :bug: Fix filtering of trigger actions when not merged * fix: N8N-5439 — Do not use simple node item when at NodeHelperPanel root * :bug: Design review fixes * :bug: Fix disabling of merged actions * Fix trigger root filtering * :sparkles: Allow for custom node actions parser, introduce hubspot parser * :bug: Fix initial node params validation, fix position of second added node * :bug: Introduce operations category, removed canvas node names overrride, fix API actions display and prevent dragging of action nodes * :sparkles: Prevent NDV auto-open feature flag * :bug: Inject recommened action for trigger nodes without actions * Refactored NodeCreatorNode to Storybook, change filtering of merged nodes for the trigger helper panel, minor fixes * Improve rendering of app nodes and animation * Cleanup, any only enable accordion transition on triggerhelperpanel * Hide node creator scrollbars in Firefox * Minor styles fixes * Do not copy the array in rendering method * Removed unused props * Fix memory leak * Fix categorisation of regular nodes with a single resource * Implement telemetry calls for node actions * Move categorization to FE * Fix client side actions categorisation * Skip custom action show * Only load tooltip for NodeIcon if necessary * Fix lodash startCase import * Remove lodash.startcase * Cleanup * Fix node creator autofocus on "tab" * Prevent posthog getFeatureFlag from crashing * Debugging preview env search issues * Remove logs * Make sure the pre-filled params are update not overwritten * Get rid of transition in itemiterator * WIP: Rough version of NodeActions keyboard navigation, replace nodeCreator composable with Pinia store module * Rewrite to add support for ActionItem to ItemIterator and make CategorizedItems accept items props * Fix category item counter & cleanup * Add APIHint to actions search no-result, clean up NodeCreatorNode * Improve node actions no results message * Remove logging, fix filtering of recommended placeholder category * Remove unused NodeActions component and node merging feature falg * Do not show regular nodes without actions * Make sure to add manual trigger when adding http node via actions hint * Fixed api hint footer line height * Prevent pointer-events od NodeIcon img and remove "this" from template * Address PR points * Fix e2e specs * Make sure canvas ia loaded * Make sure canvas ia loaded before opening nodeCreator in e2e spec * Fix flaky workflows tags e2e getter * Imrpove node creator click outside UX, add manual node to regular nodes added from trigger panel * Add manual trigger node if dragging regular from trigger panel
2022-12-09 01:56:36 -08:00
<div :class="$style.container" :style="containerCssVars" ref="container" data-test-id="canvas-add-button">
<n8n-tooltip placement="top" :value="showTooltip" manual :disabled="nodeCreatorStore.showScrim" :popper-class="$style.tooltip" :open-delay="700">
<button :class="$style.button" @click="$emit('click')" data-test-id="canvas-plus-button">
feat(editor, core, cli): implement new workflow experience (#4358) * feat(ExecuteWorkflowTrigger node): Implement ExecuteWorkflowTrigger node (#4108) * feat(ExecuteWorkflowTrigger node): Implement ExecuteWorkflowTrigger node * feat(editor): Do not show duplicate button if canvas contains `maxNodes` amount of nodes * feat(ManualTrigger node): Implement ManualTrigger node (#4110) * feat(ManualTrigger node): Implement ManualTrigger node * :memo: Remove generics doc items from ManualTrigger node * feat(editor-ui): Trigger tab redesign (#4150) * :construction: Begin with TriggerPanel implementation, add Other Trigger Nodes subcategory * :construction: Extracted categorized categories/subcategory/nodes rendering into its own component — CategorizedItems, removed SubcategoryPanel, added translations * :sparkles: Implement MainPanel background scrim * :recycle: Move `categoriesWithNodes`, 'visibleNodeTypes` and 'categorizedItems` to store, implemented dynamic categories count based on `selectedType` * :bug: Fix SlideTransition for all the NodeCreato panels * :lipstick: Fix cursos for CategoryItem and NodeItem * :bug: Make sure ALL_NODE_FILTER is always set when MainPanel is mounted * :art: Address PR comments * label: Use Array type for CategorizedItems props * :label: Add proper types for Vue props * 🎨 Use standard component registration for CategorizedItems inside TriggerHelperPanel * 🎨 Use kebab case for main-panel and icon component * :label: Improve types * feat(editor-ui): Redesign search input inside node creator panel (#4204) * :construction: Begin with TriggerPanel implementation, add Other Trigger Nodes subcategory * :construction: Extracted categorized categories/subcategory/nodes rendering into its own component — CategorizedItems, removed SubcategoryPanel, added translations * :sparkles: Implement MainPanel background scrim * :recycle: Move `categoriesWithNodes`, 'visibleNodeTypes` and 'categorizedItems` to store, implemented dynamic categories count based on `selectedType` * :bug: Fix SlideTransition for all the NodeCreato panels * :lipstick: Fix cursos for CategoryItem and NodeItem * :bug: Make sure ALL_NODE_FILTER is always set when MainPanel is mounted * :art: Address PR comments * label: Use Array type for CategorizedItems props * :label: Add proper types for Vue props * 🎨 Use standard component registration for CategorizedItems inside TriggerHelperPanel * :sparkles: Redesign search input and unify usage of categorized items * :label: Use lowercase "Boolean" as `isSearchVisible` computed return type * :fire: Remove useless emit * :sparkles: Implement no result view based on subcategory, minor fixes * :art: Remove unused properties * feat(node-email): Change EmailReadImap display name and name (#4239) * feat(editor-ui): Implement "Choose a Triger" action and related behaviour (#4226) * :sparkles: Implement "Choose a Triger" action and related behaviour * :mute: Lint fix * :recycle: Remove PlaceholderTrigger node, add a button instead * :art: Merge onMouseEnter and onMouseLeave to a single function * :bulb: Add comment * :fire: Remove PlaceholderNode registration * :art: Rename TriggerPlaceholderButton to CanvasAddButton * :sparkles: Add method to unregister custom action and rework CanvasAddButton centering logic * :art: Run `setRecenteredCanvasAddButtonPosition` on `CanvasAddButton` mount * fix(editor): Fix selecting of node from node-creator panel by clicking * :twisted_rightwards_arrows: Merge fixes * fix(editor): Show execute workflow trigger instead of workflow trigger in the trigger helper panel * feat(editor): Fix node creator panel slide transition (#4261) * fix(editor): Fix node creator panel slide-in/slide-out transitions * :art: Fix naming * :art: Use kebab-case for transition component name * feat(editor): Disable execution and show notice when user tries to run workflow without enabled triggers * fix(editor): Address first batch of new WF experience review (#4279) * fix(editor): Fix first batch of review items * bug(editor): Fix nodeview canvas add button centering * :mute: Fix linter errors * bug(ManualTrigger Node): Fix manual trigger node execution * fix(editor): Do not show canvas add button in execution or demo mode and prevent clicking if creator is open * fix(editor): do not show pin data tooltip for manual trigger node * fix(editor): do not use nodeViewOffset on zoomToFit * :lipstick: Add margin for last node creator item and set font-weight to 700 for category title * :sparkles: Position welcome note next to the added trigger node * :bug: Remve always true welcome note * feat(editor): Minor UI and UX tweaks (#4328) * :lipstick: Make top viewport buttons less prominent * :sparkles: Allow user to switch to all tabs if it contains filter results, move nodecreator state props to its own module * :mute: Fix linting errors * :mute: Fix linting errors * :mute: Fix linting errors * chore(build): Ping Turbo version to 1.5.5 * :lipstick: Minor traigger panel and node view style changes * :speech_balloon: Update display name of execute workflow trigger * feat(core, editor): Update subworkflow execution logic (#4269) * :sparkles: Implement `findWorkflowStart` * :zap: Extend `WorkflowOperationError` * :zap: Add `WorkflowOperationError` to toast * :blue_book: Extend interface * :sparkles: Add `subworkflowExecutionError` to store * :sparkles: Create `SubworkflowOperationError` * :zap: Render subworkflow error as node error * :truck: Move subworkflow start validation to `cli` * :zap: Reset subworkflow execution error state * :fire: Remove unused import * :zap: Adjust CLI commands * :fire: Remove unneeded check * :fire: Remove stray log * :zap: Simplify syntax * :zap: Sort in case both Start and EWT present * :recycle: Address Omar's feedback * :fire: Remove unneeded lint exception * :pencil2: Fix copy * :shirt: Fix lint * fix: moved find start node function to catchable place Co-authored-by: Omar Ajoue <krynble@gmail.com> * :lipstick: Change ExecuteWorkflow node to primary * :sparkles: Allow user to navigate to all tab if it contains search results * :bug: Fixed canvas control button while in demo, disable workflow activation for non-activavle nodes and revert zoomToFit bottom offset * :fix: Do not chow request text if there's results * :speech_balloon: Update noResults text Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Omar Ajoue <krynble@gmail.com>
2022-10-18 05:23:22 -07:00
<font-awesome-icon icon="plus" size="lg" />
</button>
<template #content>
<p v-text="$locale.baseText('nodeView.canvasAddButton.addATriggerNodeBeforeExecuting')" />
</template>
</n8n-tooltip>
<p :class="$style.label" v-text="$locale.baseText('nodeView.canvasAddButton.addFirstStep')" />
</div>
</template>
feat(editor): Node creator actions (#4696) * WIP: Node Actions List UI * WIP: Recommended Actions and preseting of fields * WIP: Resource category * :art: Moved actions categorisation to the server * :label: Add missing INodeAction type * :sparkles: Improve SSR categorisation, fix adding of mixed actions * :recycle: Refactor CategorizedItems to composition api, style fixes * WIP: Adding multiple nodes * :recycle: Refactor rest of the NodeCreator component to composition API, conver globalLinkActions to composable * :sparkles: Allow actions dragging, fix search and refactor passing of actions to categorized items * :lipstick: Fix node actions title * Migrate to the pinia store, add posthog feature and various fixes * :bug: Fix filtering of trigger actions when not merged * fix: N8N-5439 — Do not use simple node item when at NodeHelperPanel root * :bug: Design review fixes * :bug: Fix disabling of merged actions * Fix trigger root filtering * :sparkles: Allow for custom node actions parser, introduce hubspot parser * :bug: Fix initial node params validation, fix position of second added node * :bug: Introduce operations category, removed canvas node names overrride, fix API actions display and prevent dragging of action nodes * :sparkles: Prevent NDV auto-open feature flag * :bug: Inject recommened action for trigger nodes without actions * Refactored NodeCreatorNode to Storybook, change filtering of merged nodes for the trigger helper panel, minor fixes * Improve rendering of app nodes and animation * Cleanup, any only enable accordion transition on triggerhelperpanel * Hide node creator scrollbars in Firefox * Minor styles fixes * Do not copy the array in rendering method * Removed unused props * Fix memory leak * Fix categorisation of regular nodes with a single resource * Implement telemetry calls for node actions * Move categorization to FE * Fix client side actions categorisation * Skip custom action show * Only load tooltip for NodeIcon if necessary * Fix lodash startCase import * Remove lodash.startcase * Cleanup * Fix node creator autofocus on "tab" * Prevent posthog getFeatureFlag from crashing * Debugging preview env search issues * Remove logs * Make sure the pre-filled params are update not overwritten * Get rid of transition in itemiterator * WIP: Rough version of NodeActions keyboard navigation, replace nodeCreator composable with Pinia store module * Rewrite to add support for ActionItem to ItemIterator and make CategorizedItems accept items props * Fix category item counter & cleanup * Add APIHint to actions search no-result, clean up NodeCreatorNode * Improve node actions no results message * Remove logging, fix filtering of recommended placeholder category * Remove unused NodeActions component and node merging feature falg * Do not show regular nodes without actions * Make sure to add manual trigger when adding http node via actions hint * Fixed api hint footer line height * Prevent pointer-events od NodeIcon img and remove "this" from template * Address PR points * Fix e2e specs * Make sure canvas ia loaded * Make sure canvas ia loaded before opening nodeCreator in e2e spec * Fix flaky workflows tags e2e getter * Imrpove node creator click outside UX, add manual node to regular nodes added from trigger panel * Add manual trigger node if dragging regular from trigger panel
2022-12-09 01:56:36 -08:00
<script setup lang="ts">
import { computed } from 'vue';
feat(editor, core, cli): implement new workflow experience (#4358) * feat(ExecuteWorkflowTrigger node): Implement ExecuteWorkflowTrigger node (#4108) * feat(ExecuteWorkflowTrigger node): Implement ExecuteWorkflowTrigger node * feat(editor): Do not show duplicate button if canvas contains `maxNodes` amount of nodes * feat(ManualTrigger node): Implement ManualTrigger node (#4110) * feat(ManualTrigger node): Implement ManualTrigger node * :memo: Remove generics doc items from ManualTrigger node * feat(editor-ui): Trigger tab redesign (#4150) * :construction: Begin with TriggerPanel implementation, add Other Trigger Nodes subcategory * :construction: Extracted categorized categories/subcategory/nodes rendering into its own component — CategorizedItems, removed SubcategoryPanel, added translations * :sparkles: Implement MainPanel background scrim * :recycle: Move `categoriesWithNodes`, 'visibleNodeTypes` and 'categorizedItems` to store, implemented dynamic categories count based on `selectedType` * :bug: Fix SlideTransition for all the NodeCreato panels * :lipstick: Fix cursos for CategoryItem and NodeItem * :bug: Make sure ALL_NODE_FILTER is always set when MainPanel is mounted * :art: Address PR comments * label: Use Array type for CategorizedItems props * :label: Add proper types for Vue props * 🎨 Use standard component registration for CategorizedItems inside TriggerHelperPanel * 🎨 Use kebab case for main-panel and icon component * :label: Improve types * feat(editor-ui): Redesign search input inside node creator panel (#4204) * :construction: Begin with TriggerPanel implementation, add Other Trigger Nodes subcategory * :construction: Extracted categorized categories/subcategory/nodes rendering into its own component — CategorizedItems, removed SubcategoryPanel, added translations * :sparkles: Implement MainPanel background scrim * :recycle: Move `categoriesWithNodes`, 'visibleNodeTypes` and 'categorizedItems` to store, implemented dynamic categories count based on `selectedType` * :bug: Fix SlideTransition for all the NodeCreato panels * :lipstick: Fix cursos for CategoryItem and NodeItem * :bug: Make sure ALL_NODE_FILTER is always set when MainPanel is mounted * :art: Address PR comments * label: Use Array type for CategorizedItems props * :label: Add proper types for Vue props * 🎨 Use standard component registration for CategorizedItems inside TriggerHelperPanel * :sparkles: Redesign search input and unify usage of categorized items * :label: Use lowercase "Boolean" as `isSearchVisible` computed return type * :fire: Remove useless emit * :sparkles: Implement no result view based on subcategory, minor fixes * :art: Remove unused properties * feat(node-email): Change EmailReadImap display name and name (#4239) * feat(editor-ui): Implement "Choose a Triger" action and related behaviour (#4226) * :sparkles: Implement "Choose a Triger" action and related behaviour * :mute: Lint fix * :recycle: Remove PlaceholderTrigger node, add a button instead * :art: Merge onMouseEnter and onMouseLeave to a single function * :bulb: Add comment * :fire: Remove PlaceholderNode registration * :art: Rename TriggerPlaceholderButton to CanvasAddButton * :sparkles: Add method to unregister custom action and rework CanvasAddButton centering logic * :art: Run `setRecenteredCanvasAddButtonPosition` on `CanvasAddButton` mount * fix(editor): Fix selecting of node from node-creator panel by clicking * :twisted_rightwards_arrows: Merge fixes * fix(editor): Show execute workflow trigger instead of workflow trigger in the trigger helper panel * feat(editor): Fix node creator panel slide transition (#4261) * fix(editor): Fix node creator panel slide-in/slide-out transitions * :art: Fix naming * :art: Use kebab-case for transition component name * feat(editor): Disable execution and show notice when user tries to run workflow without enabled triggers * fix(editor): Address first batch of new WF experience review (#4279) * fix(editor): Fix first batch of review items * bug(editor): Fix nodeview canvas add button centering * :mute: Fix linter errors * bug(ManualTrigger Node): Fix manual trigger node execution * fix(editor): Do not show canvas add button in execution or demo mode and prevent clicking if creator is open * fix(editor): do not show pin data tooltip for manual trigger node * fix(editor): do not use nodeViewOffset on zoomToFit * :lipstick: Add margin for last node creator item and set font-weight to 700 for category title * :sparkles: Position welcome note next to the added trigger node * :bug: Remve always true welcome note * feat(editor): Minor UI and UX tweaks (#4328) * :lipstick: Make top viewport buttons less prominent * :sparkles: Allow user to switch to all tabs if it contains filter results, move nodecreator state props to its own module * :mute: Fix linting errors * :mute: Fix linting errors * :mute: Fix linting errors * chore(build): Ping Turbo version to 1.5.5 * :lipstick: Minor traigger panel and node view style changes * :speech_balloon: Update display name of execute workflow trigger * feat(core, editor): Update subworkflow execution logic (#4269) * :sparkles: Implement `findWorkflowStart` * :zap: Extend `WorkflowOperationError` * :zap: Add `WorkflowOperationError` to toast * :blue_book: Extend interface * :sparkles: Add `subworkflowExecutionError` to store * :sparkles: Create `SubworkflowOperationError` * :zap: Render subworkflow error as node error * :truck: Move subworkflow start validation to `cli` * :zap: Reset subworkflow execution error state * :fire: Remove unused import * :zap: Adjust CLI commands * :fire: Remove unneeded check * :fire: Remove stray log * :zap: Simplify syntax * :zap: Sort in case both Start and EWT present * :recycle: Address Omar's feedback * :fire: Remove unneeded lint exception * :pencil2: Fix copy * :shirt: Fix lint * fix: moved find start node function to catchable place Co-authored-by: Omar Ajoue <krynble@gmail.com> * :lipstick: Change ExecuteWorkflow node to primary * :sparkles: Allow user to navigate to all tab if it contains search results * :bug: Fixed canvas control button while in demo, disable workflow activation for non-activavle nodes and revert zoomToFit bottom offset * :fix: Do not chow request text if there's results * :speech_balloon: Update noResults text Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Omar Ajoue <krynble@gmail.com>
2022-10-18 05:23:22 -07:00
import { XYPosition } from '@/Interface';
refactor(editor): Finish pinia migration, remove all vuex dependancies (#4533) * ✨ Added pinia support. Migrated community nodes module. * ✨ Added ui pinia store, moved some data from root store to it, updated modals to work with pinia stores * ✨ Added ui pinia store and migrated a part of the root store * ✨ Migrated `settings` store to pinia * ✨ Removing vuex store refs from router * ✨ Migrated `users` module to pinia store * ⚡ Fixing errors after sync with master * ⚡ One more error after merge * ⚡ Created `workflows` pinia store. Moved large part of root store to it. Started updating references. * ✨ Finished migrating workflows store to pinia * ⚡ Renaming some getters and actions to make more sense * ✨ Finished migrating the root store to pinia * ✨ Migrated ndv store to pinia * ⚡ Renaming main panel dimensions getter so it doesn't clash with data prop name * ✔️ Fixing lint errors * ✨ Migrated `templates` store to pinia * ✨ Migrated the `nodeTypes`store * ⚡ Removed unused pieces of code and oold vuex modules * ✨ Adding vuex calls to pinia store, fixing wrong references * 💄 Removing leftover $store refs * ⚡ Added legacy getters and mutations to store to support webhooks * ⚡ Added missing front-end hooks, updated vuex state subscriptions to pinia * ✔️ Fixing linting errors * ⚡ Removing vue composition api plugin * ⚡ Fixing main sidebar state when loading node view * 🐛 Fixing an error when activating workflows * 🐛 Fixing isses with workflow settings and executions auto-refresh * 🐛 Removing duplicate listeners which cause import error * 🐛 Fixing route authentication * ⚡ Updating freshly pulled $store refs * ⚡ Adding deleted const * ⚡ Updating store references in ee features. Reseting NodeView credentials update flag when resetting workspace * ⚡ Adding return type to email submission modal * ⚡ Making NodeView only react to paste event when active * 🐛 Fixing signup view errors * ✨ Started migrating the `credentials` module to pinia * 👌 Addressing PR review comments * ✨ Migrated permissions module to pinia * ✨ Migrated `nodeCreator`, `tags` and `versions` modules to pinia * ✨ Implemented webhooks pinia store * ⚡ Removing all leftover vuex files and references * ✨ Removing final vuex refs * ⚡ Updating expected credentialId type * ⚡ Removing node credentials subscription code, reducing node click debounce timeout * 🐛 Fixing pushing nodes downstream when inserting new node * ✔️ Fixing a lint error in new type guard * ⚡ Updating helper reference * ✔️ Removing unnecessary awaits * ⚡ fix(editor): remove unnecessary imports from NDV * ⚡ Merging mapStores blocks in NodeView * ⚡ fix(editor): make sure JS Plumb not loaded earlier than needed * ⚡ Updating type guard nad credentials subscriptions * ⚡ Updating type guard so it doesn't use `any` type Co-authored-by: Csaba Tuncsik <csaba@n8n.io>
2022-11-09 01:01:50 -08:00
import { useNodeCreatorStore } from '@/stores/nodeCreator';
feat(editor, core, cli): implement new workflow experience (#4358) * feat(ExecuteWorkflowTrigger node): Implement ExecuteWorkflowTrigger node (#4108) * feat(ExecuteWorkflowTrigger node): Implement ExecuteWorkflowTrigger node * feat(editor): Do not show duplicate button if canvas contains `maxNodes` amount of nodes * feat(ManualTrigger node): Implement ManualTrigger node (#4110) * feat(ManualTrigger node): Implement ManualTrigger node * :memo: Remove generics doc items from ManualTrigger node * feat(editor-ui): Trigger tab redesign (#4150) * :construction: Begin with TriggerPanel implementation, add Other Trigger Nodes subcategory * :construction: Extracted categorized categories/subcategory/nodes rendering into its own component — CategorizedItems, removed SubcategoryPanel, added translations * :sparkles: Implement MainPanel background scrim * :recycle: Move `categoriesWithNodes`, 'visibleNodeTypes` and 'categorizedItems` to store, implemented dynamic categories count based on `selectedType` * :bug: Fix SlideTransition for all the NodeCreato panels * :lipstick: Fix cursos for CategoryItem and NodeItem * :bug: Make sure ALL_NODE_FILTER is always set when MainPanel is mounted * :art: Address PR comments * label: Use Array type for CategorizedItems props * :label: Add proper types for Vue props * 🎨 Use standard component registration for CategorizedItems inside TriggerHelperPanel * 🎨 Use kebab case for main-panel and icon component * :label: Improve types * feat(editor-ui): Redesign search input inside node creator panel (#4204) * :construction: Begin with TriggerPanel implementation, add Other Trigger Nodes subcategory * :construction: Extracted categorized categories/subcategory/nodes rendering into its own component — CategorizedItems, removed SubcategoryPanel, added translations * :sparkles: Implement MainPanel background scrim * :recycle: Move `categoriesWithNodes`, 'visibleNodeTypes` and 'categorizedItems` to store, implemented dynamic categories count based on `selectedType` * :bug: Fix SlideTransition for all the NodeCreato panels * :lipstick: Fix cursos for CategoryItem and NodeItem * :bug: Make sure ALL_NODE_FILTER is always set when MainPanel is mounted * :art: Address PR comments * label: Use Array type for CategorizedItems props * :label: Add proper types for Vue props * 🎨 Use standard component registration for CategorizedItems inside TriggerHelperPanel * :sparkles: Redesign search input and unify usage of categorized items * :label: Use lowercase "Boolean" as `isSearchVisible` computed return type * :fire: Remove useless emit * :sparkles: Implement no result view based on subcategory, minor fixes * :art: Remove unused properties * feat(node-email): Change EmailReadImap display name and name (#4239) * feat(editor-ui): Implement "Choose a Triger" action and related behaviour (#4226) * :sparkles: Implement "Choose a Triger" action and related behaviour * :mute: Lint fix * :recycle: Remove PlaceholderTrigger node, add a button instead * :art: Merge onMouseEnter and onMouseLeave to a single function * :bulb: Add comment * :fire: Remove PlaceholderNode registration * :art: Rename TriggerPlaceholderButton to CanvasAddButton * :sparkles: Add method to unregister custom action and rework CanvasAddButton centering logic * :art: Run `setRecenteredCanvasAddButtonPosition` on `CanvasAddButton` mount * fix(editor): Fix selecting of node from node-creator panel by clicking * :twisted_rightwards_arrows: Merge fixes * fix(editor): Show execute workflow trigger instead of workflow trigger in the trigger helper panel * feat(editor): Fix node creator panel slide transition (#4261) * fix(editor): Fix node creator panel slide-in/slide-out transitions * :art: Fix naming * :art: Use kebab-case for transition component name * feat(editor): Disable execution and show notice when user tries to run workflow without enabled triggers * fix(editor): Address first batch of new WF experience review (#4279) * fix(editor): Fix first batch of review items * bug(editor): Fix nodeview canvas add button centering * :mute: Fix linter errors * bug(ManualTrigger Node): Fix manual trigger node execution * fix(editor): Do not show canvas add button in execution or demo mode and prevent clicking if creator is open * fix(editor): do not show pin data tooltip for manual trigger node * fix(editor): do not use nodeViewOffset on zoomToFit * :lipstick: Add margin for last node creator item and set font-weight to 700 for category title * :sparkles: Position welcome note next to the added trigger node * :bug: Remve always true welcome note * feat(editor): Minor UI and UX tweaks (#4328) * :lipstick: Make top viewport buttons less prominent * :sparkles: Allow user to switch to all tabs if it contains filter results, move nodecreator state props to its own module * :mute: Fix linting errors * :mute: Fix linting errors * :mute: Fix linting errors * chore(build): Ping Turbo version to 1.5.5 * :lipstick: Minor traigger panel and node view style changes * :speech_balloon: Update display name of execute workflow trigger * feat(core, editor): Update subworkflow execution logic (#4269) * :sparkles: Implement `findWorkflowStart` * :zap: Extend `WorkflowOperationError` * :zap: Add `WorkflowOperationError` to toast * :blue_book: Extend interface * :sparkles: Add `subworkflowExecutionError` to store * :sparkles: Create `SubworkflowOperationError` * :zap: Render subworkflow error as node error * :truck: Move subworkflow start validation to `cli` * :zap: Reset subworkflow execution error state * :fire: Remove unused import * :zap: Adjust CLI commands * :fire: Remove unneeded check * :fire: Remove stray log * :zap: Simplify syntax * :zap: Sort in case both Start and EWT present * :recycle: Address Omar's feedback * :fire: Remove unneeded lint exception * :pencil2: Fix copy * :shirt: Fix lint * fix: moved find start node function to catchable place Co-authored-by: Omar Ajoue <krynble@gmail.com> * :lipstick: Change ExecuteWorkflow node to primary * :sparkles: Allow user to navigate to all tab if it contains search results * :bug: Fixed canvas control button while in demo, disable workflow activation for non-activavle nodes and revert zoomToFit bottom offset * :fix: Do not chow request text if there's results * :speech_balloon: Update noResults text Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Omar Ajoue <krynble@gmail.com>
2022-10-18 05:23:22 -07:00
feat(editor): Node creator actions (#4696) * WIP: Node Actions List UI * WIP: Recommended Actions and preseting of fields * WIP: Resource category * :art: Moved actions categorisation to the server * :label: Add missing INodeAction type * :sparkles: Improve SSR categorisation, fix adding of mixed actions * :recycle: Refactor CategorizedItems to composition api, style fixes * WIP: Adding multiple nodes * :recycle: Refactor rest of the NodeCreator component to composition API, conver globalLinkActions to composable * :sparkles: Allow actions dragging, fix search and refactor passing of actions to categorized items * :lipstick: Fix node actions title * Migrate to the pinia store, add posthog feature and various fixes * :bug: Fix filtering of trigger actions when not merged * fix: N8N-5439 — Do not use simple node item when at NodeHelperPanel root * :bug: Design review fixes * :bug: Fix disabling of merged actions * Fix trigger root filtering * :sparkles: Allow for custom node actions parser, introduce hubspot parser * :bug: Fix initial node params validation, fix position of second added node * :bug: Introduce operations category, removed canvas node names overrride, fix API actions display and prevent dragging of action nodes * :sparkles: Prevent NDV auto-open feature flag * :bug: Inject recommened action for trigger nodes without actions * Refactored NodeCreatorNode to Storybook, change filtering of merged nodes for the trigger helper panel, minor fixes * Improve rendering of app nodes and animation * Cleanup, any only enable accordion transition on triggerhelperpanel * Hide node creator scrollbars in Firefox * Minor styles fixes * Do not copy the array in rendering method * Removed unused props * Fix memory leak * Fix categorisation of regular nodes with a single resource * Implement telemetry calls for node actions * Move categorization to FE * Fix client side actions categorisation * Skip custom action show * Only load tooltip for NodeIcon if necessary * Fix lodash startCase import * Remove lodash.startcase * Cleanup * Fix node creator autofocus on "tab" * Prevent posthog getFeatureFlag from crashing * Debugging preview env search issues * Remove logs * Make sure the pre-filled params are update not overwritten * Get rid of transition in itemiterator * WIP: Rough version of NodeActions keyboard navigation, replace nodeCreator composable with Pinia store module * Rewrite to add support for ActionItem to ItemIterator and make CategorizedItems accept items props * Fix category item counter & cleanup * Add APIHint to actions search no-result, clean up NodeCreatorNode * Improve node actions no results message * Remove logging, fix filtering of recommended placeholder category * Remove unused NodeActions component and node merging feature falg * Do not show regular nodes without actions * Make sure to add manual trigger when adding http node via actions hint * Fixed api hint footer line height * Prevent pointer-events od NodeIcon img and remove "this" from template * Address PR points * Fix e2e specs * Make sure canvas ia loaded * Make sure canvas ia loaded before opening nodeCreator in e2e spec * Fix flaky workflows tags e2e getter * Imrpove node creator click outside UX, add manual node to regular nodes added from trigger panel * Add manual trigger node if dragging regular from trigger panel
2022-12-09 01:56:36 -08:00
export interface Props {
showTooltip: boolean;
position: XYPosition;
}
const props = defineProps<Props>();
const nodeCreatorStore = useNodeCreatorStore();
const containerCssVars = computed(() => ({
'--trigger-placeholder-left-position': `${props.position[0]}px`,
'--trigger-placeholder-top-position': `${props.position[1]}px`,
}));
feat(editor, core, cli): implement new workflow experience (#4358) * feat(ExecuteWorkflowTrigger node): Implement ExecuteWorkflowTrigger node (#4108) * feat(ExecuteWorkflowTrigger node): Implement ExecuteWorkflowTrigger node * feat(editor): Do not show duplicate button if canvas contains `maxNodes` amount of nodes * feat(ManualTrigger node): Implement ManualTrigger node (#4110) * feat(ManualTrigger node): Implement ManualTrigger node * :memo: Remove generics doc items from ManualTrigger node * feat(editor-ui): Trigger tab redesign (#4150) * :construction: Begin with TriggerPanel implementation, add Other Trigger Nodes subcategory * :construction: Extracted categorized categories/subcategory/nodes rendering into its own component — CategorizedItems, removed SubcategoryPanel, added translations * :sparkles: Implement MainPanel background scrim * :recycle: Move `categoriesWithNodes`, 'visibleNodeTypes` and 'categorizedItems` to store, implemented dynamic categories count based on `selectedType` * :bug: Fix SlideTransition for all the NodeCreato panels * :lipstick: Fix cursos for CategoryItem and NodeItem * :bug: Make sure ALL_NODE_FILTER is always set when MainPanel is mounted * :art: Address PR comments * label: Use Array type for CategorizedItems props * :label: Add proper types for Vue props * 🎨 Use standard component registration for CategorizedItems inside TriggerHelperPanel * 🎨 Use kebab case for main-panel and icon component * :label: Improve types * feat(editor-ui): Redesign search input inside node creator panel (#4204) * :construction: Begin with TriggerPanel implementation, add Other Trigger Nodes subcategory * :construction: Extracted categorized categories/subcategory/nodes rendering into its own component — CategorizedItems, removed SubcategoryPanel, added translations * :sparkles: Implement MainPanel background scrim * :recycle: Move `categoriesWithNodes`, 'visibleNodeTypes` and 'categorizedItems` to store, implemented dynamic categories count based on `selectedType` * :bug: Fix SlideTransition for all the NodeCreato panels * :lipstick: Fix cursos for CategoryItem and NodeItem * :bug: Make sure ALL_NODE_FILTER is always set when MainPanel is mounted * :art: Address PR comments * label: Use Array type for CategorizedItems props * :label: Add proper types for Vue props * 🎨 Use standard component registration for CategorizedItems inside TriggerHelperPanel * :sparkles: Redesign search input and unify usage of categorized items * :label: Use lowercase "Boolean" as `isSearchVisible` computed return type * :fire: Remove useless emit * :sparkles: Implement no result view based on subcategory, minor fixes * :art: Remove unused properties * feat(node-email): Change EmailReadImap display name and name (#4239) * feat(editor-ui): Implement "Choose a Triger" action and related behaviour (#4226) * :sparkles: Implement "Choose a Triger" action and related behaviour * :mute: Lint fix * :recycle: Remove PlaceholderTrigger node, add a button instead * :art: Merge onMouseEnter and onMouseLeave to a single function * :bulb: Add comment * :fire: Remove PlaceholderNode registration * :art: Rename TriggerPlaceholderButton to CanvasAddButton * :sparkles: Add method to unregister custom action and rework CanvasAddButton centering logic * :art: Run `setRecenteredCanvasAddButtonPosition` on `CanvasAddButton` mount * fix(editor): Fix selecting of node from node-creator panel by clicking * :twisted_rightwards_arrows: Merge fixes * fix(editor): Show execute workflow trigger instead of workflow trigger in the trigger helper panel * feat(editor): Fix node creator panel slide transition (#4261) * fix(editor): Fix node creator panel slide-in/slide-out transitions * :art: Fix naming * :art: Use kebab-case for transition component name * feat(editor): Disable execution and show notice when user tries to run workflow without enabled triggers * fix(editor): Address first batch of new WF experience review (#4279) * fix(editor): Fix first batch of review items * bug(editor): Fix nodeview canvas add button centering * :mute: Fix linter errors * bug(ManualTrigger Node): Fix manual trigger node execution * fix(editor): Do not show canvas add button in execution or demo mode and prevent clicking if creator is open * fix(editor): do not show pin data tooltip for manual trigger node * fix(editor): do not use nodeViewOffset on zoomToFit * :lipstick: Add margin for last node creator item and set font-weight to 700 for category title * :sparkles: Position welcome note next to the added trigger node * :bug: Remve always true welcome note * feat(editor): Minor UI and UX tweaks (#4328) * :lipstick: Make top viewport buttons less prominent * :sparkles: Allow user to switch to all tabs if it contains filter results, move nodecreator state props to its own module * :mute: Fix linting errors * :mute: Fix linting errors * :mute: Fix linting errors * chore(build): Ping Turbo version to 1.5.5 * :lipstick: Minor traigger panel and node view style changes * :speech_balloon: Update display name of execute workflow trigger * feat(core, editor): Update subworkflow execution logic (#4269) * :sparkles: Implement `findWorkflowStart` * :zap: Extend `WorkflowOperationError` * :zap: Add `WorkflowOperationError` to toast * :blue_book: Extend interface * :sparkles: Add `subworkflowExecutionError` to store * :sparkles: Create `SubworkflowOperationError` * :zap: Render subworkflow error as node error * :truck: Move subworkflow start validation to `cli` * :zap: Reset subworkflow execution error state * :fire: Remove unused import * :zap: Adjust CLI commands * :fire: Remove unneeded check * :fire: Remove stray log * :zap: Simplify syntax * :zap: Sort in case both Start and EWT present * :recycle: Address Omar's feedback * :fire: Remove unneeded lint exception * :pencil2: Fix copy * :shirt: Fix lint * fix: moved find start node function to catchable place Co-authored-by: Omar Ajoue <krynble@gmail.com> * :lipstick: Change ExecuteWorkflow node to primary * :sparkles: Allow user to navigate to all tab if it contains search results * :bug: Fixed canvas control button while in demo, disable workflow activation for non-activavle nodes and revert zoomToFit bottom offset * :fix: Do not chow request text if there's results * :speech_balloon: Update noResults text Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Omar Ajoue <krynble@gmail.com>
2022-10-18 05:23:22 -07:00
</script>
<style lang="scss" module>
.container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 100px;
height: 100px;
position: absolute;
top: var(--trigger-placeholder-top-position);
left: var(--trigger-placeholder-left-position);
// We have to increase z-index to make sure it's higher than selecting box in NodeView
// otherwise the clics wouldn't register
z-index: 101;
&:hover .button svg path {
fill: var(--color-primary)
}
}
.button {
background: var(--color-foreground-xlight);
border: 2px dashed var(--color-foreground-xdark);
border-radius: 8px;
padding: 0;
min-width: 100px;
min-height: 100px;
cursor: pointer;
svg {
width: 26px !important;
height: 40px;
path {
fill: var(--color-foreground-xdark)
}
}
}
.tooltip {
max-width: 180px;
}
.label {
width: max-content;
font-weight: var(--font-weight-bold);
font-size: var(--font-size-m);
line-height: var(--font-line-height-xloose );
color: var(--color-text-dark);
margin-top: var(--spacing-2xs);
}
</style>