* Add bundle type to constants and types
* Add support for API bundle extensions
* Rename generateExtensionsEntry to generateExtensionsEntrypoint
* Add support for App bundle extensions
* Refactor App extension registration
* Replace extensions inject with useExtensions()
* Replace getInterfaces() with useExtensions()
* Replace getDisplays() with useExtensions()
* Replace getLayouts() with useExtensions()
* Replace getModules() with useExtensions()
* Replace getPanels() with useExtensions()
* Replace getOperations() with useExtensions()
* Add useExtension() composable
* Replace useExtensions() with useExtension() where applicable
* Remove interface getters
* Remove display getters
* Remove layout getters
* Remove module getter
* Remove panel getters
* Remove operation getters
* Rename extension register.ts files to index.ts
* Perform module pre register check in parallel
* Remove Refs from AppExtensionConfigs type
* Remove old extension shims
* Ensure registration of modules is awaited when hydrating
* Add support for scaffolding package extensions
* Add support for building bundle extensions
* Add JsonValue type
* Use json for complex command line flags
* Load internal extensions if custom ones are not available
* Fix extension manifest validation for pack extensions
* Fix tests in shared
* Add SplitEntrypoint type
* Move command specific utils to helpers
* Add SDK version getter
* Move extension dev deps generation to helpers
* Move template path to getter util
* Move template copying to a helper
* Only rename copied template files
* Add directus-extension add command
* Convert provided extension source path to url
* Replace deprecated import.meta.globEager
* Mock URL.createObjectURL to make App unit tests pass
* Update rollup-plugin-typescript2
* indentation
* sort vite glob imported modules
* fix unintentional wrong commit
* Simplify app extension import logic
* reinstall @rollup/plugin-virtual
* add test for getInterfaces() expected sort order
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
* fix empty form info
* hide circle
* Allow setting prop icon to false in v-info
* Add inline prop to v-form to disable info icon
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* this works in the form-field setting up for refactor
* refactored the useRaw and made form-field-raw-editor
* add defaults
* add tests for render submitting and cancelling
* add isNil
* delete the comment
* add a cancel button
* change let to const
* add the if statement when it's not a object
* delete the .raw-value and place it in the raw-editor form field
* rename submit to setRawValue
* change submit to set-raw-value
* add a possibility to add a placeholder to the system-raw-editor
* implement the system-raw-editor to the form-field-raw-editor
* update the snapshot and fix the emitted tests
* found out we can disable the gutter and line-numbers
* add a language prop to the system when it's not defined it should default to mustache
* delete style; add language and add type
* update the html in tests
* add input-code for the extended validation
* add default value
* Update form-field-raw-editor.vue language to plaintext
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* update test
Co-authored-by: Vincent Kempers <vincentkempers@vincents-mbp.lan>
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* fix form divider when opened from drawer item
* remove redundant functions
* change back the form order to what is was
* add the option to swap between relation fields and junction fields
* fix language
* added m2m options as dropdown with more abilities
* remove the hide options and put off instead
* remove the off option from m2m junctionFieldLocation
Co-authored-by: Gabriel Shtenberg <gabriels@brainpop.com>
Co-authored-by: dev name <devn@brainpop.com>
* Fix sort field assignment in relationships
* fixed a merge error
* add sort logic to API
* using isNil for a more concise condition expression
* Removed the custom getSortMax function in favor of Math.max
* increment sort value accordingly for bulk creates
* make reordering sort start with 1 instead of 0
* account for bulk create in API side
* removed the redundant frontend sorting code
* reverted change from pr #14987
* updated selectedOnPage to support both item duplication and sorting
* Revert "account for bulk create in API side"
This reverts commit b37ed207f3.
* re-add bulk create increment sort logic
* prevent sending "+" as primary key for newly created relational items (#15353)
* re-add the removed new line as it felt odd
* ensure sql query fires once only
* fix return value
* use `.max()`
Co-authored-by: André Gaul <andre@gaul.io>
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* move components without dependencies to packages
* make every components use vue script setup
* move components and utils from shared to @directus/components
* fix imports
* move over some more components
* get rid of unnecessary isEmpty and notEmpty
* move pagination
* fix missing !
* move groupable components
* move text-overflow and useElementSize
* fix icons not being shown
* add first unit tests
* remove capitalizeFirst
* simple cleanup
* add css-var unit test
* move over most other components
* make every component use script setup
* add some more unit tests
* add more tests and burn v-switch to the ground. 🔥
* add checkbox tests
* start with next test
* add storybook
* add more pages to storybook
* add final stories
* fix stories actions
* improve action fix
* cleaning props and adding tests
* unit tests -.-
* add some documentation to components
* Add docs to each prop
* clean storybook paths
* add more unit tests
* apply v-select fix
* update lock file
* small tweaks
* move back to shared
* fix imports
* fix imports
* cleaning
* stories to typescript
* Fix version number
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* Fix lint issues
Merge in main
* Add support for resizing columns.
Disable sorting on json columns
* Replaced static text with translations
* remove unused variables
* add no collection/fields states to system-fields
* turn columns to notice when creating list-m2m
* tweak system-fields no fields background color
* add danger styling for deselect in table layout
* add tooltips
* prevent linking to items without ID yet
* fix launch icon for list layout
* tweak padding for per page
* Update missing types
* resolve ::v-deep to :deep warning
* minor style tweaks
* fix search
* fix destructuring crashing when no permissions
* remove unused variables
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
* Prevent duplicate rootPath for image in file-preview
* Add rootPath to file and file-image for downloading
* Revert change to v-image
* Patch rootPaths accordingly
* Fix missing file name on download
* first draft for translations rtl implementation
* make direction field dybamic
* Fixed default direction field
* added directionality to: tags, input-multiline, repeater (list)
* added directionality for wysiwyg, input-autocomplete, groups
* reverted directionality in wysiwyg-editor
* removed hardcoded rtl, ltr buttons from wysiwyg toolbar
* working directionality in wysiwyg editor
* also add v-if to await language for second language (split-view) in translations.vue
* added watcher for changing wysiwyg directionality on language change
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: Martijn de Voogd <devoogd@kissthefrog.nl>
Co-authored-by: Martijn <73393707+martijn-dev@users.noreply.github.com>
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
* removing getrootpath
* removed redundant getRootPath from components
* We use leading / everywhere else in api usage
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Install / bootstrap vitest
* Install c8
* Add tests for add-query-to-path
* Don't set global maplibre token on individual style
This feels wrong to me. We have a single global access token that should be used for these things. Overriding that with a token that's found for individual styles on top of the same global object in order of configured maps feels weird, as the latter tokens will override the earlier ones. Needs more research though
* Install testing libraries
* Use happy-dom as env in vitest
* Enable ts checking in tests
* Remove unused jest config
* Organize store imports
* Remove types from TSDoc in add-query-to-path
* Improve check in add-related-primary-key-to-fields
* Add reusable stub for anything touching nanoid
* Add tests for add-related-primary-key-to-fields
* Move adjust date to shared
* Remove arraysAreEqual util in favor of relying on lodash
* Fix add-related-primary-key-to-fields test
* Add test coverage for capitlize-first
* Add TSDoc/tests for extract-field-from-function
* Add test coverage for formatFieldFunction
* Add test coverage for format-filesize
* Add test coverage for get-groups
* Add tests for get-root-path
* cleanup imports
* Move tests to live next to source files
* Add tests for user-name
* Update type to match function behavior
* Add test coverage for point-on-line
* Add tests for is-empty
* Add test coverage for is-hex
* Remove getSetting util
Bit pointless to have a util function to just read a value from a store
* Add test coverage for get-related-collection
* Add test coverage for get-theme
* Add test coverage for get-with-arrays
* Add test coverage for hide-drag-image
* Add test coverage for is-permission-empty
* Remove unused import
* Add test for jwt-payload
* Add snapshot rendering test for v-sheet
* Add whitespace
* Rename __test_utils__ -> __utils__
* Add composable test
* Update app/tsconfig.json
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>