UNPKG

sanity-plugin-computed-field

Version:

Sanity plugin that computes a field's value based on other fields or relationships with its document or external data. In other words, this field memoizes a value in a document using GROQ to lookup and custom javascript to compute the value from those GRO

111 lines (85 loc) 3.35 kB
import {BooleanDefinition} from 'sanity' import {BooleanInputProps} from 'sanity' import {BooleanOptions} from 'sanity' import {BooleanSchemaType} from 'sanity' import {NumberDefinition} from 'sanity' import {NumberInputProps} from 'sanity' import {NumberOptions} from 'sanity' import {NumberSchemaType} from 'sanity' import {Plugin as Plugin_2} from 'sanity' import {default as React_2} from 'react' import {StringDefinition} from 'sanity' import {StringInputProps} from 'sanity' import {TextDefinition} from 'sanity' import {TextOptions} from 'sanity' import {TextSchemaType} from 'sanity' export declare interface ComputedBooleanDefinition extends Omit<BooleanDefinition, 'type' | 'options'> { type: 'computedBoolean' options: ComputedBooleanOptions } export declare const ComputedBooleanInput: React_2.FC<ComputedBooleanInputProps> export declare type ComputedBooleanInputProps = BooleanInputProps<ComputedBooleanSchemaType> declare type ComputedBooleanOptions = ComputedFieldOptions<boolean> & BooleanOptions export declare const computedBooleanSchema: { type: 'boolean' name: 'computedBoolean' } & Omit<BooleanDefinition, 'preview'> declare interface ComputedBooleanSchemaType extends Omit<BooleanSchemaType, 'options'> { options: ComputedBooleanOptions } declare type ComputedFieldOptions<FieldType> = { buttonText?: string documentQuerySelection: string reduceQueryResult: (queryResult: ComputedQueryResult) => FieldType | Promise<FieldType> } declare interface ComputedFieldPluginConfig {} export declare interface ComputedNumberDefinition extends Omit<NumberDefinition, 'type' | 'options'> { type: 'computedNumber' options: ComputedNumberOptions } export declare const ComputedNumberInput: React_2.FC<ComputedNumberInputProps> export declare type ComputedNumberInputProps = NumberInputProps<ComputedNumberSchemaType> /** * @public */ declare type ComputedNumberOptions = ComputedFieldOptions<number> & NumberOptions export declare const computedNumberSchema: { type: 'number' name: 'computedNumber' } & Omit<NumberDefinition, 'preview'> declare interface ComputedNumberSchemaType extends Omit<NumberSchemaType, 'options'> { options: ComputedNumberOptions } declare type ComputedQueryResult = { draft?: any published: any } export declare const computedStringSchema: { type: 'string' name: 'computedString' } & Omit<StringDefinition, 'preview'> export declare interface ComputedTextDefinition extends Omit<TextDefinition, 'type' | 'options'> { type: 'computedText' options: ComputedTextOptions } export declare const ComputedTextInput: React_2.FC<ComputedTextInputProps> export declare type ComputedTextInputProps = StringInputProps<ComputedTextSchemaType> declare type ComputedTextOptions = ComputedFieldOptions<string> & TextOptions export declare const computedTextSchema: { type: 'text' name: 'computedText' } & Omit<TextDefinition, 'preview'> declare interface ComputedTextSchemaType extends Omit<TextSchemaType, 'options'> { options: ComputedTextOptions } export declare const sanityComputedField: Plugin_2<void | ComputedFieldPluginConfig> export {} declare module '@sanity/types' { interface IntrinsicDefinitions { computedBoolean: ComputedBooleanDefinition computedText: ComputedTextDefinition computedNumber: ComputedNumberDefinition } }