json-schema-form-vue3
Version:
A Vue 3 component for editing JSON Schema with nested object and array support
100 lines (89 loc) • 3.04 kB
TypeScript
import { App } from 'vue';
import { ComponentOptionsMixin } from 'vue';
import { ComponentProvideOptions } from 'vue';
import { DefineComponent } from 'vue';
import { JSONSchema7TypeName } from 'json-schema';
import { PublicProps } from 'vue';
declare type __VLS_Props = {
modelValue: ExtendedSchemaProperty | JsonSchema_2;
isRootLevel?: boolean;
};
declare type ExtendedSchemaProperty = SchemaProperty_2 & {
items?: SchemaProperty_2;
};
export declare const install: (app: App) => void;
export declare interface JsonSchema {
type: 'object';
title?: string;
description?: string;
properties: Record<string, SchemaProperty_2>;
required?: string[];
}
declare type JsonSchema_2 = {
type: 'object';
properties: Record<string, SchemaProperty_2>;
required?: string[];
$schema?: string;
$id?: string;
$comment?: string;
title?: string;
description?: string;
};
export declare const JsonSchemaForm: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
"update:model-value": (value: ExtendedSchemaProperty | JsonSchema_2) => any;
}, string, PublicProps, Readonly<__VLS_Props> & Readonly<{
"onUpdate:model-value"?: ((value: ExtendedSchemaProperty | JsonSchema_2) => any) | undefined;
}>, {
isRootLevel: boolean;
}, {}, {}, {}, string, ComponentProvideOptions, false, {
formRef: unknown;
}, HTMLDivElement>;
declare const plugin: {
install: (app: App) => void;
component: DefineComponent<{
modelValue: ( SchemaProperty_2 & {
items?: SchemaProperty_2;
}) | JsonSchema_2;
isRootLevel?: boolean;
}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
"update:model-value": (value: ( SchemaProperty_2 & {
items?: SchemaProperty_2;
}) | JsonSchema_2) => any;
}, string, PublicProps, Readonly<{
modelValue: ( SchemaProperty_2 & {
items?: SchemaProperty_2;
}) | JsonSchema_2;
isRootLevel?: boolean;
}> & Readonly<{
"onUpdate:model-value"?: ((value: ( SchemaProperty_2 & {
items?: SchemaProperty_2;
}) | JsonSchema_2) => any) | undefined;
}>, {
isRootLevel: boolean;
}, {}, {}, {}, string, ComponentProvideOptions, false, {
formRef: unknown;
}, HTMLDivElement>;
};
export default plugin;
export declare type SchemaProperty = {
type: JSONSchema7TypeName;
title?: string;
description?: string;
properties?: Record<string, SchemaProperty_2>;
required?: string[];
} & ({
type: 'array';
items: SchemaProperty_2;
} | {
type: Exclude<JSONSchema7TypeName, 'array'>;
items?: never;
});
declare interface SchemaProperty_2 {
type: JSONSchema7TypeName;
title?: string;
description?: string;
properties?: Record<string, SchemaProperty_2>;
items?: SchemaProperty_2;
required?: string[];
}
export { }