mirror of
https://github.com/directus/directus.git
synced 2026-01-30 05:38:02 -05:00
Enable alpha channel in color selector (#9224)
* Fix localstorage file deletion (#9126)
* excluded VS specific files
* new files after updating directus sources
* case insensitive string matching fix
* Remove accidental commit files
* Cleanup gitignore
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Update dependency vite to v2.6.11 (#9121)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* Update dependency axios to v0.24.0 (#9132)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* New Crowdin updates (#9138)
* Update source file en-US.yaml
* New translations en-US.yaml (Serbian (Latin))
* New translations en-US.yaml (Portuguese, Brazilian)
* New translations en-US.yaml (Indonesian)
* New translations en-US.yaml (Spanish, Chile)
* New translations en-US.yaml (Thai)
* New translations en-US.yaml (Hindi)
* New translations en-US.yaml (Chinese Traditional)
* New translations en-US.yaml (Spanish, Latin America)
* New translations en-US.yaml (Russian)
* New translations en-US.yaml (Polish)
* New translations en-US.yaml (Portuguese)
* New translations en-US.yaml (Swedish)
* New translations en-US.yaml (Turkish)
* New translations en-US.yaml (Estonian)
* New translations en-US.yaml (Vietnamese)
* New translations en-US.yaml (Chinese Simplified)
* New translations en-US.yaml (French)
* New translations en-US.yaml (Finnish)
* New translations en-US.yaml (Spanish)
* New translations en-US.yaml (Arabic)
* New translations en-US.yaml (Bulgarian)
* New translations en-US.yaml (Catalan)
* New translations en-US.yaml (Danish)
* New translations en-US.yaml (German)
* New translations en-US.yaml (Hungarian)
* New translations en-US.yaml (Italian)
* New translations en-US.yaml (Japanese)
* New translations en-US.yaml (Lithuanian)
* New translations en-US.yaml (Dutch)
* New translations en-US.yaml (Norwegian)
* New translations en-US.yaml (Slovenian)
* Update dependency @types/busboy to v0.3.1 (#9096)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* Update dependency @types/js-yaml to v4.0.4 (#9090)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* Update dependency sass to v1.43.3 (#9035)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* Docs structure (#9071)
* WIP
* updates
* docs updates
* structure
* big structure update
* docs module icon change
* in-app docs nav
* more content and structure changes
* Remove redundant
* Fix docs build in app
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Update dependency stylelint-config-standard to v23 (#9026)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* Update dependency stylelint to v14 (#9016)
* Update dependency stylelint to v14
* Update dependency stylelint-scss to v4
* Update dependency stylelint-order to v5
* Undo command change
* Update stylelint command
* Use modern color syntax
Who knew this was already supported everywhere? Awesome!!
* Update stylelint-config-standard
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Pin dependency stylelint-config-standard to 23.0.0 (#9140)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* Fix type issues in busboy update
* Change v-checkbox background color when disabled (#9070)
* Change v-checkbox background color when disabled
* Only apply style for block input.
* Don't enforce rgb modern syntax
* Use textarea input for textarea placeholder (#9041)
* Reworked Sass to automatically generate color variations from palette (#8890)
* Reworked Sass to automatically generate color variations from palette
* Fixed naming scheme for mixing colors
* Updated light theme to use pre-defined steps
* Updated dark theme to use pre-defined steps, added steps at 90 & 110
* Hardcoded -alt color variations, extracted color variation generator to reusable mixin.
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Update dependency ts-node to v10.4.0 (#9083)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* Update dependency eslint to v8.1.0 (#9091)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* Update dependency oracledb to v5.3.0 (#9042)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* Update typescript-eslint monorepo to v5.2.0 (#9133)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* fix time series date field allow list (#9143)
* Wait for checks before auto-merge Crowdin updates (#9156)
* Update dependency lint-staged to v11.2.5 (#9155)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* Ignore email field in oauth and store email in external_identifier (#9153)
* Ignore email field in oauth and store email in external_identifier if needed
* Removed unused variable
* docs: improve running locally (#9142)
* Update gatsby monorepo to v4 (#9028)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Jay Cammarano <jay.cammarano@gmail.com>
* Update dependency micromark to v3.0.7 (#9141)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* Add missing config options file
* Fix link/method ref
* Remove homepage redirect
* Add padding to calendar layout event
* Update dependency stylelint to v14.0.1 (#9168)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* Update dependency vite to v2.6.12 (#9169)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* Re-add missing oauth docs (#9170)
* Update Node.js to v16.13.0 (#9174)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* Added the provider to auth hooks (#9059)
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Update dependency knex-schema-inspector to v1.6.4 (#9159)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* Update dependency sass to v1.43.4 (#9177)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* Update dependency lint-staged to v11.2.6 (#9175)
* Set no-cache header on extension sources (#9186)
This should hopefully fix caching issues some users were experiencing.
* Clean up App type shims (#9190)
* Clean up App base url replacement (#9192)
* removed toLowerCase for dbSafe fields (#9183)
* Add `folder`, `template`, `enableCreate`, `enableSelect` options to the files interface (#9184)
* Always show folder icon for alias tables (folders) (#9187)
* Always show folder icon for alias tables (folders)
* Update app/src/modules/settings/routes/data-model/collections/components/collection-item.vue
Co-authored-by: Nicola Krumschmidt <nicola.krumschmidt@freenet.de>
Co-authored-by: Nicola Krumschmidt <nicola.krumschmidt@freenet.de>
* Fixed dynamic translations import. (#9179)
* Fixes broken links in docs (#9172)
* first half of broken links fixed
* next chunk of broken links resolved
* next chunk of urls
* last chunk of links
* one more
* filter rules
* homepage links
* removed localhost
* filter rules for query
* updated links
* relationships link
* changed links from references to glossary
* Export API dist folder at the root of the package path (#9199)
* Clarified some oauth things in the docs (#9203)
* Update dependency vite to v2.6.13 (#9193)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* Update dependency pinia to v2.0.0 (#9205)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* Update dependency simple-git-hooks to v2.7.0 (#9195)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* Update dependency @vitejs/plugin-vue to v1.9.4 (#9181)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* Force renovate to use Node 16.13 (#9209)
* Revert "Force renovate to use Node 16.13 (#9209)" (#9219)
* Update popular links
* removed unused code
RGBA-> RGB(A)
added alpha slider
added label to alpha
* change alpha back to 0-100
* Update dependency vite-plugin-md to v0.11.4 (#9206)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* tweak fallback interface selectors (#9234)
* update field flow styling
* Add configurable headers for webhooks (#8855)
* Add configurable headers for webhooks
* Update api/src/database/migrations/20211016A-add-webhook-headers.ts
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* broken database docs mirroring link
* Fixes for docs links
* LDAP auth provider (#9074)
* Added LDAP implementation
* Cleanup and added refresh checking
* Added provider check to ldap
* Added LDAP docs
* Always update LDAP user role on authentication
* Fetched package-json from github
* Fixed lint error
* Update api/src/auth/drivers/ldap.ts
* Update api/src/auth/drivers/ldap.ts
* Added missing locale key
* Update docs/guides/api-config.md
* Update docs/configuration/config-options.md
* Update api/src/auth/drivers/ldap.ts
* Added back LDAP example
* Update config-options.md
* getUserID function sjhouldn't care about password
* Added LOCKOUT to INVALID_ACCOUNT_FLAGS
* Update styling approach for v-select
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Append `access_token` to images in WYSIWYG only once (#9062)
* append access_token to image in wysiwyg only once
* do not append token in previewUrl when clicking an image from wysiwyg
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Pin dependency @types/ldapjs to 2.2.1 (#9238)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* Fix generated columns being required. (#9200)
* Fix generated columns being required. Also prevent schema changes on generated columns.
* Fix type errors
* Disable `unique` and `nullable` instead of not showing them.
* Fix other type error
* Nullable check small refactor
* Fixed MSSQL query
* Fixed oracle query
* Map interface improvements (#9239)
* Add tooltips on feature hover on the interface
* Add marker on geocoder search result
* Improve map interface style
* Fix dynamic variables not working anymore in UUID filter (#9180)
* Fix $CURRENT_USER not working anymore in UUID filter
* $Handle CURRENT_ROLE too
* Add CLI to exports (#9241)
* v9.0.0-rc.100
* Update changelog.md
* Update package.json
* Update package.json
* Fixed Github oauth config (#9256)
* Removed invalid column in mssql schema inspector (#9260)
* workflow-dispatch added to e2e-tests.yml (#9265)
* fix new field group selection (#9301)
* Add shadows to v-menu angles (#9297)
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* Revise GitHub workflows #2 (#9240)
* GitHub workflow revision #2
* Add a few comments
* Add and fix comments
* Move kodiak config into .github
To not overflow the root directory
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* Rearrange on events in e2e workflow (#9308)
* New Crowdin updates (#9158)
* New translations en-US.yaml (Danish)
* New translations en-US.yaml (German)
* New translations en-US.yaml (Italian)
* New translations en-US.yaml (Polish)
* New translations en-US.yaml (French)
* New translations en-US.yaml (French)
* New translations en-US.yaml (Estonian)
* New translations en-US.yaml (Polish)
* New translations en-US.yaml (Vietnamese)
* New translations en-US.yaml (Vietnamese)
* New translations en-US.yaml (Breton)
* New translations en-US.yaml (Norwegian)
* New translations en-US.yaml (Norwegian)
* New translations en-US.yaml (Serbian (Latin))
* New translations en-US.yaml (Portuguese, Brazilian)
* New translations en-US.yaml (Indonesian)
* New translations en-US.yaml (Spanish, Chile)
* New translations en-US.yaml (Thai)
* New translations en-US.yaml (Malay)
* New translations en-US.yaml (Breton)
* New translations en-US.yaml (Chinese Traditional)
* New translations en-US.yaml (Spanish, Latin America)
* New translations en-US.yaml (Russian)
* New translations en-US.yaml (Polish)
* New translations en-US.yaml (Swedish)
* New translations en-US.yaml (Turkish)
* New translations en-US.yaml (Estonian)
* New translations en-US.yaml (Vietnamese)
* New translations en-US.yaml (Chinese Simplified)
* New translations en-US.yaml (French)
* New translations en-US.yaml (Finnish)
* New translations en-US.yaml (Spanish)
* New translations en-US.yaml (Arabic)
* New translations en-US.yaml (Bulgarian)
* New translations en-US.yaml (Catalan)
* New translations en-US.yaml (Czech)
* New translations en-US.yaml (Danish)
* New translations en-US.yaml (German)
* New translations en-US.yaml (Greek)
* New translations en-US.yaml (Ukrainian)
* New translations en-US.yaml (Hungarian)
* New translations en-US.yaml (Italian)
* New translations en-US.yaml (Japanese)
* New translations en-US.yaml (Lithuanian)
* New translations en-US.yaml (Dutch)
* New translations en-US.yaml (Norwegian)
* New translations en-US.yaml (Slovenian)
* Update source file en-US.yaml
* New translations en-US.yaml (Romanian)
* New translations en-US.yaml (Serbian (Latin))
* New translations en-US.yaml (Portuguese, Brazilian)
* New translations en-US.yaml (Indonesian)
* New translations en-US.yaml (Persian)
* New translations en-US.yaml (Spanish, Chile)
* New translations en-US.yaml (Thai)
* New translations en-US.yaml (Malay)
* New translations en-US.yaml (Bengali, India)
* New translations en-US.yaml (Chinese Traditional)
* New translations en-US.yaml (Spanish, Latin America)
* New translations en-US.yaml (Russian)
* New translations en-US.yaml (Polish)
* New translations en-US.yaml (Slovak)
* New translations en-US.yaml (Serbian (Cyrillic))
* New translations en-US.yaml (Swedish)
* New translations en-US.yaml (Turkish)
* New translations en-US.yaml (Estonian)
* New translations en-US.yaml (Vietnamese)
* New translations en-US.yaml (Chinese Simplified)
* New translations en-US.yaml (French)
* New translations en-US.yaml (Finnish)
* New translations en-US.yaml (Spanish)
* New translations en-US.yaml (Afrikaans)
* New translations en-US.yaml (Arabic)
* New translations en-US.yaml (Bulgarian)
* New translations en-US.yaml (Catalan)
* New translations en-US.yaml (Czech)
* New translations en-US.yaml (Danish)
* New translations en-US.yaml (German)
* New translations en-US.yaml (Greek)
* New translations en-US.yaml (Hebrew)
* New translations en-US.yaml (Ukrainian)
* New translations en-US.yaml (Hungarian)
* New translations en-US.yaml (Italian)
* New translations en-US.yaml (Japanese)
* New translations en-US.yaml (Georgian)
* New translations en-US.yaml (Lithuanian)
* New translations en-US.yaml (Dutch)
* New translations en-US.yaml (Norwegian)
* New translations en-US.yaml (Slovenian)
* Update source file en-US.yaml
* Update source file en-US.yaml
* New translations en-US.yaml (Spanish)
* New translations en-US.yaml (Polish)
* New translations en-US.yaml (Bulgarian)
* New translations en-US.yaml (Bulgarian)
* New translations en-US.yaml (Bulgarian)
* New translations en-US.yaml (Bulgarian)
* New translations en-US.yaml (Bulgarian)
* New translations en-US.yaml (Bulgarian)
* New translations en-US.yaml (Bulgarian)
* New translations en-US.yaml (Bulgarian)
* New translations en-US.yaml (Russian)
* New translations en-US.yaml (Chinese Traditional)
* New translations en-US.yaml (Chinese Traditional)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* Removed undefined type from LDAP userAccountControl (#9309)
* Feat/custom ldap mail attribute (#9307)
* Allow custom email field for LDAP
* Update docs
* Break out into variable and don't cast to String
* Set calendar height to 100% (#9295)
* Set calendar height to 100% and set `smallHeader to true
* Unset `smallHeader`
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* Update Oracle to support `is_generated` (#9310)
* Switch back to fkirc/skip-duplicate-actions (#9312)
All changes have been merged in
* Update dependency npm to v8.1.2 (#9221)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* New translations en-US.yaml (German) (#9316)
* Update dependency knex to v0.95.12 (#9208)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Added state param to oauth to make Okta happy (#9289)
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Update typescript-eslint monorepo to v5.3.0 (#9317)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* prefix aggregation field with table name (#9314)
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Update dependency rollup to v2.59.0 (#9293)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* End-to-end tests for filters (#9078)
* reorganized for sanity
* filter tests for _eq/_neq
* logical operators
* update one one to many
* /:collection PATCH one to many
* base tables.id => uuids to minimize collisions
* tests pass
* added python to dockerfile
* tests passing
* ci?
* ci...
* hanging async
* Input code json (#9291)
* remove language selection for input code type JSON
* lint as json when type is json
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Add SET NULL to directus_files.uploaded_by constraint (#9305)
* add set null to directus_files constraint
* SET NULL on created_by and modified_by
* "user_created" and "user_updated" => SET NULL
* SET NULL on collections optional system fields
* fixed dropColumn()
* Add line breaks, cause little OCD
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Update translation icon in interface selector (#9292)
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Map layout and interface improvements (#9288)
* Map layout and interface improvements
* Fix marker not showing up on geocoder search
* Replaced geocoder search placeholder
* Fix geocoder hit area
* Fix item popup positioning
* Removed unselect button
* Removed "No results" popup
* Removed option to filter map on demand vs automatically
* Renamed Geometry field option
* Added placeholder to template option
* Hide "Delete" button when no feature are selected
* Lint fix
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* add content and fix broken links (#9321)
* Fix issues with fields config (#9324)
* Fix issues with fields config
* Fix /fields endpoint return type for alias fields
* Fix display selection in relational interfaces
* fixes many dead links (#9325)
* New Crowdin updates (#9326)
* Update source file en-US.yaml
* New translations en-US.yaml (Portuguese, Brazilian)
* New translations en-US.yaml (Spanish, Chile)
* New translations en-US.yaml (Thai)
* New translations en-US.yaml (Spanish, Latin America)
* New translations en-US.yaml (Russian)
* New translations en-US.yaml (Polish)
* New translations en-US.yaml (Chinese Simplified)
* New translations en-US.yaml (French)
* New translations en-US.yaml (Spanish)
* New translations en-US.yaml (Arabic)
* New translations en-US.yaml (Bulgarian)
* New translations en-US.yaml (Catalan)
* New translations en-US.yaml (Danish)
* New translations en-US.yaml (German)
* New translations en-US.yaml (Hungarian)
* New translations en-US.yaml (Italian)
* New translations en-US.yaml (Slovenian)
* Added supported function to geometryHelper, added geometrySupport to serverinfo (#9290)
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* fix lint warnings (#9287)
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Fixes broken docs links (#9327)
* a few more dead links
* one last link set
* fixed bad link
* filter files by folder when a folder is specified (#9285)
* Prevent file input preloading drawer (#9282)
* improve disabled interface selector style (#9281)
* Fix: disable sort field for singleton collections (#9270)
* disable sort for singleton collections
* fix modify sort then activate singleton
* Fixed nullable and unique disabled check (#9269)
* Context menu improvements (#9271)
* add focusout to close context menus
* add "Edit collection" to collections context menu
* disable context menu when nothing to show
* remove obsolete code
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* fix(graphql): remove __typename from selection nodes when present (#9318)
* fix(graphql): remove __typename from selection nodes when present
* fix: cast selectionNode to FieldNode in filter callback
* New translations en-US.yaml (Italian) (#9330)
* New translations en-US.yaml (Arabic) (#9332)
* New translations en-US.yaml (Breton) (#9335)
* fix m2a not savable (#9349)
* Translations interface fix (#9333)
* Translations interface fix
Fixes issue
* Translations interface fix (2)
* Fix eslint warnings (#9357)
* Fixes broken links in the documentation (#9354)
* broken links
* more broken links
* last but not least
* Update dependency @types/sharp to v0.29.3 (#9352)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* Fix nullable boolean (#8497)
* nullable boolean can now be set to null again after it weas true or false
* Implementation changed to Composition API
* Implementation changed to Composition API
* fixed formatting issues
* fixed formatting issues
* fixed formatting issues
* fixed formatting issues
* run linters on branch
* run linters on branch
* run linters on branch
* run linters on branch
* fixed formatting issues
* changes to checkbox interface reverted
* changes to checkbox interface reverted
* Update boolean.vue
* Fix date on sqlite (#7774)
* fix date on sqlite
* remove unused imports
* rename KnexSpatial to KnexDate
Co-authored-by: Jose Varela <joselcvarela@gmail.com>
* New translations en-US.yaml (Polish) (#9361)
* Added openid fallback to user token info if profile URL not defined (#9368)
* Update gatsby monorepo to v4.1.0 (#9367)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* remove default color options from labels display (#9362)
* Translate system fields when creating new collections (#8104)
* translate system fields when create collections
* handle '$t:' translations only on interface
Co-authored-by: Jose Varela <joselcvarela@gmail.com>
* Update vue monorepo to v3.2.21 (#9341)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* Update dependency mime to v2.6.0 (#9370)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* Update dependency marked to v3.0.8 (#9359)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* Update dependency openid-client to v5 (#9202)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* add live chat to public docs (#9373)
* Docs live chat tweak (#9374)
* add live chat to public docs
* moving snippet to correct element
Co-authored-by: Ben Haynes <ben@rngr.org>
* Fix condition to translate directus collections (#9353)
* Fix condition to translate directus collections
* Check whether collection belongs to 'directus_collections'
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* Update dependency knex to v0.95.13 (#9378)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* Update dependency @types/ldapjs to v2.2.2 (#9377)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* Set user token as unique (#9381)
* Update users.md (#9382)
* Update dependency mime to v3 (#9380)
* New translations en-US.yaml (Russian) (#9388)
* New translations en-US.yaml (Bulgarian) (#9402)
* New translations en-US.yaml (Bulgarian) (#9405)
* New translations en-US.yaml (Bulgarian) (#9409)
* New translations en-US.yaml (Bulgarian) (#9413)
* New translations en-US.yaml (Bulgarian) (#9415)
* Enhance comments in CI workflow (#9408)
* Fix hover effect on o2m and m2a lists (#9412) (#9414)
* Added user rebinding on reconnect in LDAP (#9339)
* Added reconnect handling code for LDAP
* Update api/src/auth/drivers/ldap.ts
* Improved error handling
* Updated re-bind so we can await it when required
* Added bind check before operations to ensure client has user
* Cleaned up reconnect handling in LDAP
* Minor cleanup
* Minor cleanup
* Link to all (open & closed) issues in bug report (#9394)
* fix corresponding field name (#9393)
* Update config-options.md (#9218)
* Update config-options.md
* Update config-options.md
* Update dependency pinia to v2.0.1 (#9428)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* Fixed SET NULL on directus_files for MSSQL (#9425)
* fixed migration on mssql
* removed useless migration
* Use primary key as default sort in map layout (#9403)
* Move renovate config into .github (#9404)
* remove module and collection overrides from role
* Update fullcalendar monorepo to v5.10.1 (#9386)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* Update dependency tinymce to v5.10.1 (#9385)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* Add placeholder to Language Indicator Field for first Translations setup (#9337)
* Hide Language Indicator Field initially
* fix lint error
* revert hiding languageFIeld & add placeholder
* Fix related value for alias typed fields (#9210) (#9401)
* Allow dynamic user variables to be used with filter rules (cont.) (#9376)
* Move permissions extraction to accountability
* Fix permissions retrieval for public user
* Fetch user / role context in permissions middleware
* Remove unnecessary parseFilter
* Rename schemaCache to systemCache
* Add permissions caching
* Add system cache invalidation on permission changes
* Improve caching perf by reducing scope
* Add note to docs
* Clarify compatibility with conditional fields/filters
* Fix lint warning
* Allow nested vars in system-filter-input
* Add custom getter function that resolves arrays
* Add is-dynamic-variable util
* Export new util
* Cleanup parse filter
* Fix build
* Move debounce up to use-items
* Remove unused prop
* 🧹
* Fix input pattern usage w/ vars
* Remove debounce from search-input, increase throttle
* Update dependency pinia to v2.0.2 (#9436)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* Rework hook registration (#8027)
* Rework hook registration
* Remove event and action fields from hook payloads
* Move "error" action to "request.error" filter
* Emit meta and context objects in filters and actions
* Run filters sequentially
* Update hook templates
* Fix CLI hook test
* Also emit `<collection>.items.crud` when emitting `items.crud`.
* Update hook docs
Co-authored-by: Oreilles <oreilles.github@nitoref.io>
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Fix duplicate hubspot injection (#9437)
* Clean up API exports (#9418)
* Move API entrypoint to typescipt
* Remove explicit cli exort from API
The "./*" export should export all subpaths, so explicitly exporting the cli shouldn't be necessary.
* Remove dedicated start script from API
This script isn't even included in the final npm package and it's only used by the test Dockerfile.
* Tweak project-settings page (#9440)
* New Crowdin updates (#9442)
* New translations en-US.yaml (Serbian (Latin))
* New translations en-US.yaml (Portuguese, Brazilian)
* New translations en-US.yaml (Spanish, Chile)
* New translations en-US.yaml (Thai)
* New translations en-US.yaml (Breton)
* New translations en-US.yaml (Spanish, Latin America)
* New translations en-US.yaml (Russian)
* New translations en-US.yaml (Polish)
* New translations en-US.yaml (Swedish)
* New translations en-US.yaml (Estonian)
* New translations en-US.yaml (Chinese Simplified)
* New translations en-US.yaml (French)
* New translations en-US.yaml (Finnish)
* New translations en-US.yaml (Spanish)
* New translations en-US.yaml (Bulgarian)
* New translations en-US.yaml (Catalan)
* New translations en-US.yaml (Danish)
* New translations en-US.yaml (German)
* New translations en-US.yaml (Hungarian)
* New translations en-US.yaml (Italian)
* New translations en-US.yaml (Lithuanian)
* New translations en-US.yaml (Dutch)
* New translations en-US.yaml (Slovenian)
* Rename Collections Modules to Content Module (#9441)
* Rename collections->content module
* Replace collection name
* Replace some loose ends
* Add exports fields to all packages (#9443)
* Rename activity->notifications module (#9446)
* v9.0.0-rc.101
* Update changelog.md
* New translations en-US.yaml (Italian) (#9458)
* New translations en-US.yaml (Italian) (#9472)
* New translations en-US.yaml (Italian) (#9476)
* Resolve calendar link to detail page (#9477)
* Remove leading slash
* Group Renovate updates & schedule weekly (#9479)
* Fix invalid collection for Interface Display Template for M2M relationships (#9420)
* Fix invalid collection for Interface Display Template (#9419)
* use o2m ollection on m2m interface
* apply same fix on files
Co-authored-by: Jose Varela <joselcvarela@gmail.com>
* SDK: refactor constructors (#9080)
* refactor: more intuitive interfaces
* refactor: simpler refresh
before: on every request we were debouncing a refresh request
after: call refresh only once before now() + 'expires'
* refactor: prefix on base storage
* fixup! refactor: simpler refresh before: on every request we were debouncing a refresh request after: call refresh only once before now() + 'expires'
* refactor: simpler axios transport
before: handle auth headers
after: auth headers are handled on directus instance
* refactor: simpler usage of Directus constructor
* fixup! refactor: simpler refresh before: on every request we were debouncing a refresh request after: call refresh only once before now() + 'expires'
* refactor: fix tests based on previous changes
* refactor: better auth constructor
before: depends on SDK instance
after: depends on Transport and Storage instance
* accept staticToken from auth
* make transport and storage as optional on options
* fix type auth refresh
* simplify transport
* fix test for previous changes
* improve auth class
* revert some IAuth props because tests
* allow to force memory of localstorage on storage
* add tests for previous change
* document everything and simplify some things
* fix override headers on request
* better name typing
* fix private axios
* removed boolean from CLI auth.refresh()
* fix missing url in some examples
* soem grammar updates
Co-authored-by: Jay Cammarano <jay.cammarano@gmail.com>
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Fixing some type errors in app (#9466)
* Fixing some type errors in app
* Remove unused import
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Fix render template for number template parts (#9406) (#9407)
* fix docs homepage header responsiveness (#9450)
* New translations en-US.yaml (Italian) (#9482)
* Fix nested system-interface-options usage (#9483)
* Improve null check in list
* Fix options syncing in system-interface-options
* Fix m2a relations on editing field (#9484)
Fixes #9463
* Fix presentation-links interfaces (#9485)
Fixes #9457
* fix docs about sdk refactor (#9486)
* Clarify hook register function parameter descriptions in docs (#9489)
* Clarify hook register function parameter descriptions in docs
* Update package-lock.json
* Update docs/extensions/hooks.md
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
* Schedule Renovate on a daily basis for now (#9488)
* Use hash instead of random for default index name (#9448)
* [Fix]: Use hash instead of random for default index name
* Move hash function to separate util file
* Reduce max size of index name to 60 from 64
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Remove collection listing option from role settings (#9490)
* Fixes #8920
* Revert changes in seeds / migrations
* Add new migration to drop column
Co-authored-by: Yannick Mol <yannick@molmediasolutions.nl>
* Remove beta flag from insights & enable by default (#9491)
* New Crowdin updates (#9493)
* Update source file en-US.yaml
* New translations en-US.yaml (Serbian (Latin))
* New translations en-US.yaml (Portuguese, Brazilian)
* New translations en-US.yaml (Indonesian)
* New translations en-US.yaml (Persian)
* New translations en-US.yaml (Spanish, Chile)
* New translations en-US.yaml (Thai)
* New translations en-US.yaml (Breton)
* New translations en-US.yaml (Chinese Traditional)
* New translations en-US.yaml (Spanish, Latin America)
* New translations en-US.yaml (Russian)
* New translations en-US.yaml (Polish)
* New translations en-US.yaml (Portuguese)
* New translations en-US.yaml (Swedish)
* New translations en-US.yaml (Turkish)
* New translations en-US.yaml (Estonian)
* New translations en-US.yaml (Vietnamese)
* New translations en-US.yaml (Chinese Simplified)
* New translations en-US.yaml (French)
* New translations en-US.yaml (Finnish)
* New translations en-US.yaml (Spanish)
* New translations en-US.yaml (Arabic)
* New translations en-US.yaml (Bulgarian)
* New translations en-US.yaml (Catalan)
* New translations en-US.yaml (Czech)
* New translations en-US.yaml (Danish)
* New translations en-US.yaml (German)
* New translations en-US.yaml (Hungarian)
* New translations en-US.yaml (Italian)
* New translations en-US.yaml (Japanese)
* New translations en-US.yaml (Korean)
* New translations en-US.yaml (Lithuanian)
* New translations en-US.yaml (Dutch)
* New translations en-US.yaml (Slovenian)
* Clean up interface options type (#9447)
* Move union query application to applyQuery, fix where clause (#9494)
* Move union query application to applyQuery, fix where clause
Fixes #9228
* Handle case where union IDs length = 0
* Return modified db query
* Apply union last
* Don't show all migrations logged on init (#9496)
* Small fixes for Hooks documentation (#9497)
Remove erroneous closing bracket and remove index position from input as it should be an object in this context, not an array.
* Prevent negative hashes from being generated (#9501)
Fixes #9499
* Properly handle M2A fields in fieldStore and useFieldTree (#9432)
* Properly handle M2A fields in fieldStore and useFieldTree
* Fix addNode
* Rewrote use-field-tree
* Remember visited paths
* Fix error whith undefined relation.meta
* Fix importing the SDK from a Node ESM environment (#9502)
* Update geometric types and patch new field flow. (#9397)
* Update geometric types and patch new field flow.
* Add migration
* Fixed migrations
* Also fixed migrations
* Update migration ID
* Cleanup type selector a bit
* Add missing fallback interface/display for new types
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* v9.0.0
* Update changelog.md
* Revert "Schedule Renovate on a daily basis for now (#9488)" (#9508)
This reverts commit 42512b8874.
* Update Docker installation documentation (#9514)
* Reflect new stable version and available Docker tags
* Clean-up
* Add note about Directus version in bug report (#9517)
* Remove quotes on string values for raw display (#9522)
* fix repeater field names title format (#9504)
* Remove note about RC in the readme (#9513)
* Update package-lock.json & fix warning from eslint (#9509)
* Update package-lock.json
To reflect latest release
* Fix warning from eslint
* Include the ESM entrypoint when publishing to npm (#9535)
* divider title placeholder (#9532)
* Fix missing and wrong translations (#9537)
* add installation to docs homepage
* add translated field docs
* formatting
* Data model dense (#9558)
* remove extra popup padding
* tweak sidebar spacing
* use dense on data model collection listing
* small text update (#9554)
* Minor docs fixes (#9553)
* Fix lose data on M2M (#9548)
* save initial items of m2m relation
* merge initial, draft and selected on new selection
* Update NPM dependencies (non-major) (#9506)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
* fix elements z-index higher than app header bar (#9530)
* selector for override (#9562)
* Fix pr title for major updates from renovate (#9594)
* update in-app docs nav (#9610)
* update in-app docs nav
* remove section from in-app docs
* fix in-app docs homepage (#9611)
* fixes: #9568 (#9612)
* added switch
* small bug fixes and stacked layout support
* added Alpha config to color inteface
* set default val of showAlpha
* removed alpha switch
* added slider bg
* slider css fix for safari
* slider rounded edges
* slider rounded edges
* slider rounded edges
* slider rounded edges
* padding for slider
* renamed Allow Alpha to Opacity
* Update app/src/interfaces/select-color/select-color.vue
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* Update app/src/interfaces/select-color/select-color.vue
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* implemented suggestions made by @rijkvanzanten
Co-authored-by: Paul Boudewijn <paul@helderinternet.nl>
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Ben Haynes <ben@rngr.org>
Co-authored-by: Oreille <33065839+Oreilles@users.noreply.github.com>
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
Co-authored-by: illubyte Studios <47870619+Illubyte@users.noreply.github.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Aiden Foxx <aiden.foxx.mail@gmail.com>
Co-authored-by: José Varela <joselcvarela@gmail.com>
Co-authored-by: Jay Cammarano <jay.cammarano@gmail.com>
Co-authored-by: Nicola Krumschmidt <nicola.krumschmidt@freenet.de>
Co-authored-by: Alexander <45934058+GrefriT@users.noreply.github.com>
Co-authored-by: Jay Cammarano <67079013+jaycammarano@users.noreply.github.com>
Co-authored-by: Armen Danielyan <armen@animazer.com>
Co-authored-by: Jakob <26389546+Jakob-em@users.noreply.github.com>
Co-authored-by: Theraloss <danilo.polani@gmail.com>
Co-authored-by: Adrian Dimitrov <dimitrov.adrian@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Dorian Zedler <dorian@itsblue.de>
Co-authored-by: Nitwel <mail@nitwel.de>
Co-authored-by: Hugues BUREAU <huguesbureau@hotmail.fr>
Co-authored-by: d1rOn <trubay.andrey@gmail.com>
Co-authored-by: Rémi Alvergnat <toilal.dev@gmail.com>
Co-authored-by: Oreilles <oreilles.github@nitoref.io>
Co-authored-by: Farid Saud <faridsaud93@gmail.com>
Co-authored-by: Yannick Mol <yannick@molmediasolutions.nl>
Co-authored-by: Tyler Forest-Hauser <tyler@foresthauser.com>
This commit is contained in:
@@ -131,6 +131,8 @@ body {
|
||||
height: 4px;
|
||||
padding: 8px 0;
|
||||
background-color: var(--background-page);
|
||||
background-image: var(--v-slider-track-background-image);
|
||||
border-radius: 10px;
|
||||
cursor: pointer;
|
||||
appearance: none;
|
||||
|
||||
|
||||
@@ -12,6 +12,18 @@ export default defineInterface({
|
||||
recommendedDisplays: ['color'],
|
||||
group: 'selection',
|
||||
options: [
|
||||
{
|
||||
field: 'opacity',
|
||||
name: '$t:interfaces.select-color.opacity',
|
||||
type: 'boolean',
|
||||
meta: {
|
||||
width: 'half',
|
||||
interface: 'boolean',
|
||||
},
|
||||
schema: {
|
||||
default_value: false,
|
||||
},
|
||||
},
|
||||
{
|
||||
field: 'presets',
|
||||
name: '$t:interfaces.select-color.preset_colors',
|
||||
|
||||
@@ -5,13 +5,19 @@
|
||||
v-model="hex"
|
||||
:disabled="disabled"
|
||||
:placeholder="placeholder || t('interfaces.select-color.placeholder')"
|
||||
:pattern="/#([a-f\d]{2}){3}/i"
|
||||
:pattern="opacity ? /#([a-f\d]{2}){4}/i : /#([a-f\d]{2}){3}/i"
|
||||
class="color-input"
|
||||
maxlength="7"
|
||||
:maxlength="opacity ? 9 : 7"
|
||||
@focus="activate"
|
||||
>
|
||||
<template #prepend>
|
||||
<v-input ref="htmlColorInput" v-model="hex" type="color" class="html-color-select" />
|
||||
<v-input
|
||||
ref="htmlColorInput"
|
||||
:model-value="hex ? hex.substr(0, 7) : null"
|
||||
type="color"
|
||||
class="html-color-select"
|
||||
@update:model-value="setSwatchValue($event)"
|
||||
/>
|
||||
<v-button
|
||||
class="swatch"
|
||||
:icon="true"
|
||||
@@ -30,14 +36,38 @@
|
||||
</v-input>
|
||||
</template>
|
||||
|
||||
<div class="color-data-inputs" :class="{ stacked: width === 'half' }">
|
||||
<div class="color-data-input color-type">
|
||||
<div
|
||||
class="color-data-inputs"
|
||||
:style="{
|
||||
'grid-template-columns': opacity
|
||||
? width === 'half'
|
||||
? 'repeat(4, 1fr)'
|
||||
: 'repeat(6, 1fr)'
|
||||
: width === 'half'
|
||||
? 'repeat(3, 1fr)'
|
||||
: 'repeat(5, 1fr)',
|
||||
}"
|
||||
:class="{ stacked: width === 'half' }"
|
||||
>
|
||||
<div
|
||||
class="color-data-input color-type"
|
||||
:style="{
|
||||
'grid-column': opacity
|
||||
? width === 'half'
|
||||
? '1 / span 4'
|
||||
: '1 / span 2'
|
||||
: width === 'half'
|
||||
? '1 / span 3'
|
||||
: '1 / span 2',
|
||||
}"
|
||||
>
|
||||
<v-select v-model="colorType" :items="colorTypes" />
|
||||
</div>
|
||||
<template v-if="colorType === 'RGB'">
|
||||
<template v-if="colorType === 'RGB' || colorType === 'RGBA'">
|
||||
<v-input
|
||||
v-for="(val, i) in rgb"
|
||||
v-for="(val, i) in rgb.length > 3 ? rgb.slice(0, -1) : rgb"
|
||||
:key="i"
|
||||
:hidden="i === 3"
|
||||
type="number"
|
||||
:model-value="val"
|
||||
class="color-data-input"
|
||||
@@ -48,10 +78,22 @@
|
||||
maxlength="3"
|
||||
@update:model-value="setValue('rgb', i, $event)"
|
||||
/>
|
||||
</template>
|
||||
<template v-if="colorType === 'HSL'">
|
||||
<v-input
|
||||
v-for="(val, i) in hsl"
|
||||
v-if="opacity"
|
||||
type="number"
|
||||
:model-value="alpha"
|
||||
class="color-data-input"
|
||||
pattern="\d*"
|
||||
:min="0"
|
||||
:max="100"
|
||||
:step="1"
|
||||
maxlength="3"
|
||||
@update:model-value="setValue('alpha', 0, $event)"
|
||||
/>
|
||||
</template>
|
||||
<template v-if="colorType === 'HSL' || colorType === 'HSLA'">
|
||||
<v-input
|
||||
v-for="(val, i) in hsl.length > 3 ? hsl.slice(0, -1) : hsl"
|
||||
:key="i"
|
||||
type="number"
|
||||
:model-value="val"
|
||||
@@ -63,8 +105,41 @@
|
||||
maxlength="3"
|
||||
@update:model-value="setValue('hsl', i, $event)"
|
||||
/>
|
||||
<v-input
|
||||
v-if="opacity"
|
||||
type="number"
|
||||
:model-value="alpha"
|
||||
class="color-data-input"
|
||||
pattern="\d*"
|
||||
:min="0"
|
||||
:max="100"
|
||||
:step="1"
|
||||
maxlength="3"
|
||||
@update:model-value="setValue('alpha', 0, $event)"
|
||||
/>
|
||||
</template>
|
||||
</div>
|
||||
<div v-if="opacity" class="color-data-alphas">
|
||||
<div class="color-data-alpha">
|
||||
<v-slider
|
||||
:model-value="alpha"
|
||||
:min="0"
|
||||
:max="100"
|
||||
:step="1"
|
||||
:style="{
|
||||
'--v-slider-color': 'none',
|
||||
'--background-page': 'none',
|
||||
'--v-slider-fill-color': 'none',
|
||||
'--v-slider-thumb-color': 'var(--foreground-normal)',
|
||||
'--v-slider-track-background-image':
|
||||
'linear-gradient(to right, transparent,' +
|
||||
(hex && hex.length === 9 ? hex.slice(0, -2) : hex ? hex : 'transparent') +
|
||||
'), url(\'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAMUlEQVQ4T2NkYGAQYcAP3uCTZhw1gGGYhAGBZIA/nYDCgBDAm9BGDWAAJyRCgLaBCAAgXwixzAS0pgAAAABJRU5ErkJggg==\')',
|
||||
}"
|
||||
@update:model-value="setValue('alpha', 0, $event)"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="presets" class="presets">
|
||||
<v-button
|
||||
v-for="preset in presets"
|
||||
@@ -145,16 +220,20 @@ export default defineComponent({
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
opacity: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
},
|
||||
emits: ['input'],
|
||||
setup(props, { emit }) {
|
||||
const { t } = useI18n();
|
||||
|
||||
const htmlColorInput = ref<ComponentPublicInstance | null>(null);
|
||||
type ColorType = 'RGB' | 'HSL';
|
||||
type ColorType = 'RGB' | 'HSL' | 'RGBA' | 'HSLA';
|
||||
|
||||
const colorTypes = ['RGB', 'HSL'] as ColorType[];
|
||||
const colorType = ref<ColorType>('RGB');
|
||||
let colorTypes = props.opacity ? ref<ColorType[]>(['RGBA', 'HSLA']) : ref<ColorType[]>(['RGB', 'HSL']);
|
||||
const colorType = ref<ColorType>(props.opacity ? 'RGBA' : 'RGB');
|
||||
|
||||
function unsetColor() {
|
||||
emit('input', null);
|
||||
@@ -164,6 +243,25 @@ export default defineComponent({
|
||||
(htmlColorInput.value?.$el as HTMLElement).getElementsByTagName('input')[0].click();
|
||||
}
|
||||
|
||||
function setShowAlpha(val: boolean) {
|
||||
if (val) {
|
||||
colorTypes.value = ['RGBA', 'HSLA'];
|
||||
if (colorType.value === 'RGB' || colorType.value === 'RGBA') {
|
||||
colorType.value = 'RGBA';
|
||||
} else {
|
||||
colorType.value = 'HSLA';
|
||||
}
|
||||
} else {
|
||||
setValue('alpha', 0, 100);
|
||||
if (colorType.value === 'RGB' || colorType.value === 'RGBA') {
|
||||
colorType.value = 'RGB';
|
||||
} else {
|
||||
colorType.value = 'HSL';
|
||||
}
|
||||
colorTypes.value = ['RGB', 'HSL'];
|
||||
}
|
||||
}
|
||||
|
||||
const isValidColor = computed<boolean>(() => rgb.value !== null && props.value !== null);
|
||||
|
||||
const lowContrast = computed(() => {
|
||||
@@ -175,7 +273,7 @@ export default defineComponent({
|
||||
return color.value.contrast(pageColor) < 1.1;
|
||||
});
|
||||
|
||||
const { hsl, rgb, hex, color } = useColor();
|
||||
const { hsl, rgb, hex, alpha, color } = useColor();
|
||||
|
||||
return {
|
||||
t,
|
||||
@@ -184,30 +282,50 @@ export default defineComponent({
|
||||
rgb,
|
||||
hsl,
|
||||
hex,
|
||||
alpha,
|
||||
htmlColorInput,
|
||||
activateColorPicker,
|
||||
isValidColor,
|
||||
Color,
|
||||
setValue,
|
||||
setSwatchValue,
|
||||
lowContrast,
|
||||
unsetColor,
|
||||
setShowAlpha,
|
||||
};
|
||||
|
||||
function setValue(type: 'rgb' | 'hsl', i: number, val: number) {
|
||||
function setValue(type: 'rgb' | 'hsl' | 'alpha', i: number, val: number) {
|
||||
if (type === 'rgb') {
|
||||
const newArray = [...rgb.value];
|
||||
newArray[i] = val;
|
||||
rgb.value = newArray;
|
||||
} else {
|
||||
} else if (type === 'hsl') {
|
||||
const newArray = [...hsl.value];
|
||||
newArray[i] = val;
|
||||
hsl.value = newArray;
|
||||
} else {
|
||||
alpha.value = val;
|
||||
}
|
||||
}
|
||||
|
||||
function setSwatchValue(color: string) {
|
||||
hex.value = `${color}${hex.value !== null && hex.value.length === 9 ? hex.value.substr(-2) : ''}`;
|
||||
}
|
||||
|
||||
function useColor() {
|
||||
const color = ref<Color | null>(null);
|
||||
|
||||
const getHexa = (): string | null => {
|
||||
if (color.value !== null) {
|
||||
let alpha = Math.round(255 * color.value.alpha())
|
||||
.toString(16)
|
||||
.toUpperCase();
|
||||
alpha = alpha.padStart(2, '0');
|
||||
return color.value.rgb().array().length === 4 ? `${color.value.hex()}${alpha}` : color.value.hex();
|
||||
}
|
||||
return null;
|
||||
};
|
||||
|
||||
watch(
|
||||
() => props.value,
|
||||
(newValue) => {
|
||||
@@ -218,25 +336,27 @@ export default defineComponent({
|
||||
|
||||
const rgb = computed<number[]>({
|
||||
get() {
|
||||
return color.value !== null ? color.value.rgb().array().map(Math.round) : [0, 0, 0];
|
||||
const arr = color.value !== null ? color.value.rgb().array() : props.opacity ? [0, 0, 0, 1] : [0, 0, 0];
|
||||
return arr.length === 4 ? [...arr.slice(0, -1).map(Math.round), arr[3]] : arr.map(Math.round);
|
||||
},
|
||||
set(newRGB) {
|
||||
setColor(Color.rgb(newRGB));
|
||||
setColor(Color.rgb(newRGB).alpha(newRGB.length === 4 ? newRGB[3] : 1));
|
||||
},
|
||||
});
|
||||
|
||||
const hsl = computed<number[]>({
|
||||
get() {
|
||||
return color.value !== null ? color.value.hsl().array().map(Math.round) : [0, 0, 0];
|
||||
const arr = color.value !== null ? color.value.hsl().array() : props.opacity ? [0, 0, 0, 1] : [0, 0, 0];
|
||||
return arr.length === 4 ? [...arr.slice(0, -1).map(Math.round), arr[3]] : arr.map(Math.round);
|
||||
},
|
||||
set(newHSL) {
|
||||
setColor(Color.hsl(newHSL));
|
||||
setColor(Color.hsl(newHSL).alpha(newHSL.length === 4 ? newHSL[3] : 1));
|
||||
},
|
||||
});
|
||||
|
||||
const hex = computed<string | null>({
|
||||
get() {
|
||||
return color.value !== null ? color.value.hex() : null;
|
||||
return getHexa();
|
||||
},
|
||||
set(newHex) {
|
||||
if (newHex === null || newHex === '') {
|
||||
@@ -248,7 +368,20 @@ export default defineComponent({
|
||||
},
|
||||
});
|
||||
|
||||
return { rgb, hsl, hex, color };
|
||||
const alpha = computed<number>({
|
||||
get() {
|
||||
return color.value !== null ? Math.round(color?.value?.alpha() * 100) : 100;
|
||||
},
|
||||
set(newAlpha) {
|
||||
if (newAlpha === null) {
|
||||
return;
|
||||
}
|
||||
const newColor = color.value !== null ? color.value.rgb().array() : [0, 0, 0];
|
||||
setColor(Color(newColor).alpha(newAlpha / 100));
|
||||
},
|
||||
});
|
||||
|
||||
return { rgb, hsl, hex, alpha, color };
|
||||
|
||||
function setColor(newColor: Color | null) {
|
||||
color.value = newColor;
|
||||
@@ -256,7 +389,7 @@ export default defineComponent({
|
||||
if (newColor === null) {
|
||||
unsetColor();
|
||||
} else {
|
||||
emit('input', newColor.hex());
|
||||
emit('input', getHexa());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -314,15 +447,10 @@ export default defineComponent({
|
||||
.color-data-inputs {
|
||||
display: grid;
|
||||
grid-gap: 0px;
|
||||
grid-template-columns: repeat(5, 1fr);
|
||||
width: 100%;
|
||||
padding: 12px 10px;
|
||||
}
|
||||
|
||||
.color-data-inputs .color-type {
|
||||
grid-column: 1 / span 2;
|
||||
}
|
||||
|
||||
.color-data-inputs .color-data-input {
|
||||
--border-radius: 0px;
|
||||
}
|
||||
@@ -351,14 +479,6 @@ export default defineComponent({
|
||||
--border-radius: 0px 4px 4px 0px;
|
||||
}
|
||||
|
||||
.color-data-inputs.stacked {
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
}
|
||||
|
||||
.color-data-inputs.stacked .color-type {
|
||||
grid-column: 1 / span 3;
|
||||
}
|
||||
|
||||
.color-data-inputs.stacked .color-data-input:not(:first-child) :deep(.input) {
|
||||
margin-top: calc(-2 * var(--border-width));
|
||||
margin-left: initial;
|
||||
@@ -379,4 +499,21 @@ export default defineComponent({
|
||||
.color-data-inputs.stacked .color-data-input:last-child {
|
||||
--border-radius: 0px 0px 4px 0px;
|
||||
}
|
||||
|
||||
.color-data-alphas {
|
||||
display: grid;
|
||||
grid-gap: 12px;
|
||||
align-items: baseline;
|
||||
width: 100%;
|
||||
height: 45px;
|
||||
padding: 12px 14px;
|
||||
}
|
||||
|
||||
.color-data-alphas .color-data-alpha {
|
||||
display: grid;
|
||||
}
|
||||
|
||||
.color-data-alphas .color-data-alpha .slider input {
|
||||
background-color: transparent;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1301,6 +1301,7 @@ interfaces:
|
||||
description: Enter or select a color value
|
||||
placeholder: Choose a color...
|
||||
preset_colors: Preset Colors
|
||||
opacity: Opacity
|
||||
preset_colors_add_label: Add new color...
|
||||
name_placeholder: Enter color name...
|
||||
datetime:
|
||||
|
||||
@@ -1257,6 +1257,7 @@ interfaces:
|
||||
description: Введите или выберите значение цвета
|
||||
placeholder: Выберите цвет...
|
||||
preset_colors: Предустановленные цвета
|
||||
opacity: Альфа канал
|
||||
preset_colors_add_label: Добавить новый цвет...
|
||||
name_placeholder: Введите название цвета...
|
||||
datetime:
|
||||
|
||||
@@ -143,6 +143,7 @@ dd a {
|
||||
@include form-grid;
|
||||
}
|
||||
|
||||
input[type='number']::-webkit-inner-spin-button,
|
||||
input[type='search']::-webkit-search-decoration,
|
||||
input[type='search']::-webkit-search-cancel-button,
|
||||
input[type='search']::-webkit-search-results-button,
|
||||
|
||||
Reference in New Issue
Block a user