Files
directus/app/src/interfaces/input-autocomplete-api/index.ts
Rijk van Zanten 2720e0c18e Add new field flow (#9109)
* Add new grouping setup to interfaces

* [WIP] Start on new field flow

* Add preview svgs

* Update preview svg

* Add basic saving mechanism. Start on magic

* Add interface options to simple inputs

* Fix missing t

* Fix custom options not rendering

* Fix interface options overrides

* Sync m2o name key

* Setup m2o related collection input

* Add collections generation

* Add circular prevention & type syncing

* Small fixes in m2o context generation

* Move o2m options to fn structure

* Conclude o2m (i think)

* Start on toggle to advanced

* Style advanced toggle button

* Add localType File support, start documenting

* Add presentation/group localtypes

* Use function style interface options in m2m

* Don't require collection prop in field template component

* Implement most of m2m magic

* Restructure store updater

* Finish useFieldDetailStore restructure

* Only register root index in module folders

* Do the thing

* Finish m2m magic, tweak fallback styles

* Fix o2m display template setup

* Remove options comp for translations interface

* Show languages collection picker in translations

* Finish translations alterations

* Add magic for files type

* Officially wave goodbye to the old store setup

It served it's purpose, but what a nightmare to maintain. Welcome to the new version

* Update schema tab

* Add field pane

* Finish interface section

* Add display section

* Add conditions

* Update tabs to use localType from store

* Start on relationship tab

* Update m2m relational setup

* Start on m2o

* Finish m2o setup

* Finish o2m setup

* Add m2a magic

* Various tweaks

* Add m2a setup

* Add save button to advanced flow

* Load existing values on start

* Add upsert to stores, allow updating existing items

* Please the linter gods

* Remove seemingly redundant interface option

@Oreilles Seeing the geometry type is already configured in the schema configuration, this particular option on the interface feels redundant (?)

* Remove unnecessary option component overrides

* Track relationships in required fields for save state

* Fix relations previews on editing existing fields

* Use standard vs advanced for input options

* Remove note from simple field setup

* Add divider to field config

* Use background subdued

* Default required to false

* Add required icons to key/relationship

* Tweak colors

* Fix infinite loop in group creation

* Make setup responsive

* Allow switching interface at will

* Add m2a related collections picker

* Fix relations persisting on field deletion

* Add "Create in Advanced" shortcut

Just for you @joselcvarela

* Fix PK field staging on collection create

* Revert "Remove seemingly redundant interface option"

This reverts commit e5e09a051e.

* Fix map interface options
2021-10-25 20:29:04 -04:00

142 lines
2.8 KiB
TypeScript

import { defineInterface } from '@directus/shared/utils';
import InterfaceInputAutocompleteAPI from './input-autocomplete-api.vue';
import PreviewSVG from './preview.svg?raw';
export default defineInterface({
id: 'input-autocomplete-api',
name: '$t:interfaces.input-autocomplete-api.input-autocomplete-api',
description: '$t:interfaces.input-autocomplete-api.description',
icon: 'find_in_page',
component: InterfaceInputAutocompleteAPI,
types: ['string', 'text'],
localTypes: ['standard'],
group: 'standard',
recommendedDisplays: ['formatted-value'],
options: [
{
field: 'url',
name: '$t:url',
type: 'string',
meta: {
interface: 'input',
options: {
placeholder: 'https://example.com/search?q={{value}}',
font: 'monospace',
},
width: 'full',
},
},
{
field: 'resultsPath',
name: '$t:interfaces.input-autocomplete-api.results_path',
type: 'string',
meta: {
interface: 'input',
options: {
placeholder: 'result.predictions',
font: 'monospace',
},
width: 'half',
},
},
{
field: 'valuePath',
name: '$t:interfaces.input-autocomplete-api.value_path',
type: 'string',
meta: {
interface: 'input',
options: {
placeholder: 'structured_main_text',
font: 'monospace',
},
width: 'half',
},
},
{
field: 'trigger',
name: '$t:interfaces.input-autocomplete-api.trigger',
type: 'string',
schema: {
default_value: 'throttle',
},
meta: {
width: 'half',
interface: 'select-dropdown',
options: {
choices: [
{
text: 'Throttle',
value: 'throttle',
},
{
text: 'Debounce',
value: 'debounce',
},
],
},
},
},
{
field: 'rate',
name: '$t:interfaces.input-autocomplete-api.rate',
type: 'integer',
schema: {
default_value: 500,
},
meta: {
width: 'half',
interface: 'input',
},
},
{
field: 'placeholder',
name: '$t:placeholder',
meta: {
width: 'half',
interface: 'input',
options: {
placeholder: '$t:enter_a_placeholder',
},
},
},
{
field: 'font',
name: '$t:font',
type: 'string',
meta: {
width: 'half',
interface: 'select-dropdown',
options: {
choices: [
{ text: '$t:sans_serif', value: 'sans-serif' },
{ text: '$t:monospace', value: 'monospace' },
{ text: '$t:serif', value: 'serif' },
],
},
},
schema: {
default_value: 'sans-serif',
},
},
{
field: 'iconLeft',
name: '$t:icon_left',
type: 'string',
meta: {
width: 'half',
interface: 'select-icon',
},
},
{
field: 'iconRight',
name: '$t:icon_right',
type: 'string',
meta: {
width: 'half',
interface: 'select-icon',
},
},
],
preview: PreviewSVG,
});