## Summary
- Moved out canvas loading handling to canvas store
- Tag editable routes via meta to remove router dependency from generic
helpers
- Replace all occurrences of `genericHelpers` mixin with composable and
audit usage
- Moved out `isRedirectSafe` and `getRedirectQueryParameter` out of
genericHelpers to remove dependency on router
Removing the router dependency is important, because `useRouter` and
`useRoute` compostables are only available if called from component
instance. So if composable is nested within another composable, we
wouldn't be able to use these. In this case we'd always need to inject
the router and pass it through several composables. That's why I moved
the `readonly` logic to router meta and `isRedirectSafe` and
`getRedirectQueryParameter` out as they were only used in a single
component.
---------
Signed-off-by: Oleg Ivaniv <me@olegivaniv.com>
## Summary
Required as part of NodeView refactoring:
- Migrates `pinData` mixin to `usePinnedData` composable.
- Adds `useActiveNode` and `useNodeType` composables
## Related tickets and issues
https://linear.app/n8n/issue/N8N-6355/pindata
## Review / Merge checklist
- [x] PR title and summary are descriptive. **Remember, the title
automatically goes into the changelog. Use `(no-changelog)` otherwise.**
([conventions](https://github.com/n8n-io/n8n/blob/master/.github/pull_request_title_conventions.md))
- [x] [Docs updated](https://github.com/n8n-io/n8n-docs) or follow-up
ticket created.
- [x] Tests included.
> A bug is not considered fixed, unless a test is added to prevent it
from happening again.
> A feature is not complete without tests.
- Convert `nodeHelpers` mixin into composable and fix types
- Replace usage of the mixin with the new composable
- Add missing store imports in components that were dependent on opaque
imports from nodeHelpers mixin
- Refactor the `CollectionParameter` component to the modern script
setup syntax
Github issue / Community forum post (link here to close automatically):
---------
Signed-off-by: Oleg Ivaniv <me@olegivaniv.com>
* ✨ Create rule `no-unneeded-backticks`
* 👕 Enable rule
* ⚡ Run rule on `cli`
* ⚡ Run rule on `core`
* ⚡ Run rule on `workflow`
* ⚡ Rule rule on `design-system`
* ⚡ Run rule on `node-dev`
* ⚡ Run rule on `editor-ui`
* ⚡ Run rule on `nodes-base`
* ✨ Added `utils` module. Moved `canvasHelpers` and old `utils.ts` file to it
* ✨ Moved rest of utils and helpers
* ⚡ Fixing sytax errors
* 🔨 Refactoring new utils files
* 🔨 Organizing imports, adding comments and a bit more refactoring
* ✔️ Fixing tests
* 🔨 Moving mixins to `src`
* ✨ 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, fi xing 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
* 👌 Addressing PR review comments
* 👌 Addressing new PR comments
* 👌 Updating invite id logic in signup view
* refactor(editor-ui): update 'vue-json-pretty' and adjust component to preserve same behaviour (#4152)
* fix(editor-ui): export interface to solve 'TS4082: Default export of the module has or is using private name' error temporarily
* refactor(editor-ui): update 'vue-json-pretty' and adjust component to preserve same behaviour
* refactor(editor-ui): move json data view into its own component (#4158)
* refactor(editor-ui): move json data view into its own component
* fix(editor-ui): make JSON data component work again
* fix(editor-ui): JSON data component type issues
* fix(editor-ui): JSON data component prop 'inputData'
* refactor(editor-ui): rename helper function
* fix(editor-ui): add declaration to `vue-json-pretty` component
* refactor(editor-ui): JSON mapping move more logic to new component
* refactor(editor-ui): some cleanup in JSON mapping component
* refactor(editor-ui): changing key mapping translation
* refactor(editor-ui): add basic drag'n'drop functionality to JSON view
* refactor(editor-ui): moving JSON view actions into separate components
* fix(editor-ui): JSON view action copy default selected path
* fix(editor-ui): refactor draggable to play nicer with other (3rd party) components
* fix(editor-ui): improve draggable performance
* fix(editor-ui): add disable user selection class to body
* fix(editor-ui): reduce click handler cognitive load in JSON view copy actions
* fix(editor-ui): JSON view mapped path
* fix(editor-ui): remove unnecessary wrapper around RunDataTable.vue
* fix(editor-ui): respect input node distance when json parameter path is copied
* fix(editor-ui): JSON mapping property highlight
* fix(editor-ui): block event only on mousemove for draggable to not select content
* refactor(editor-ui): fixing prop types and organising imports
* fix(editor-ui): JSON view use double quotes where appropriate
* fix(editor-ui): fix new package additions after merge conflict
* fix(editor-ui): fix package update after merge conflict
* fix(editor-ui): JSON view prop names text break
* fix(editor-ui): use kebab-case name for component
* fix(editor-ui): calling convertPath on draggable node path
* feat(editor-ui): add mapping discoverability tooltip to mappable inputs (#4227)
* refactor(editor-ui): move json data view into its own component
* fix(editor-ui): make JSON data component work again
* fix(editor-ui): JSON data component type issues
* fix(editor-ui): JSON data component prop 'inputData'
* refactor(editor-ui): rename helper function
* fix(editor-ui): add declaration to `vue-json-pretty` component
* refactor(editor-ui): JSON mapping move more logic to new component
* refactor(editor-ui): some cleanup in JSON mapping component
* refactor(editor-ui): changing key mapping translation
* refactor(editor-ui): add basic drag'n'drop functionality to JSON view
* refactor(editor-ui): moving JSON view actions into separate components
* fix(editor-ui): JSON view action copy default selected path
* fix(editor-ui): refactor draggable to play nicer with other (3rd party) components
* fix(editor-ui): improve draggable performance
* fix(editor-ui): add disable user selection class to body
* fix(editor-ui): reduce click handler cognitive load in JSON view copy actions
* fix(editor-ui): JSON view mapped path
* fix(editor-ui): remove unnecessary wrapper around RunDataTable.vue
* fix(editor-ui): respect input node distance when json parameter path is copied
* fix(editor-ui): JSON mapping property highlight
* fix(editor-ui): block event only on mousemove for draggable to not select content
* refactor(editor-ui): fixing prop types and organising imports
* fix(editor-ui): JSON view use double quotes where appropriate
* fix(editor-ui): fix new package additions after merge conflict
* fix(editor-ui): fix package update after merge conflict
* fix(editor-ui): JSON view prop names text break
* fix(editor-ui): update helper after merge conflict
* refactor(editor-ui): cleanup RunaDataTable tooltips
* refactor(editor-ui): add temporary static tooltip to input with mapping
* fix(editor-ui): input mapping tooltip proper input name
* fix(editor-ui): show input mapping tooltip when conditions are met
* fix(editor-ui): show different input mapping tooltip for different view types (table, json)
* fix(editor-ui): drop lodash isEmpty
* fix(editor-ui): using and keeping only getter function
* fix(editor-ui): check `INodeExecutionData[]` array emptyness (still needs some improvement)
* feat(editor-ui): add telemetry calls to data mapping (#4250)
* fix(editor-ui): add types package for jsonpath
* fix(editor-ui): JSON view drag'n'drop telemetry call
* fix(editor-ui): add data mapping tooltip close telemetry to parameter input
* fix(editor-ui): execute previous node tooltip linebreak
* fix(editor-ui): input data mapping tooltip show-hide logic
* fix(editor-ui): input data mapping tooltip position
* fix(editor-ui): using a placeholder gif in mapping discoverability tooltip
* refactor(design-system): adding optional configurable buttons to tooltip (#4260)
* refactor(design-system): unbreaking wrapper around element ui tooltip
* fix(design-system): update test snapshot
* refactor(design-system): adding buttons to tooltip
* fix(design-system): update test snapshot
* fix(design-system): change tooltip props and some cleanup
* fix(design-system): update test snapshot
* chore: fix package lock file after merge
* fix(editor-ui): modifications according to Max's review (#4273)
* fix(editor-ui): modifications according to Max's review
* fix(editor-ui): JSON prop names should not be written bold
* fix(editor-ui): use proper animated gif in JSON data mapping discoverability tooltip