UNPKG

@blinkk/editor

Version:

Structured content editor with live previews.

93 lines (92 loc) 3.68 kB
import { DeepObject, Field, FieldComponent, FieldConfig, SelectiveEditor, SortableFieldComponent, TemplateResult, Types } from '@blinkk/selective-edit'; import { MediaFieldComponent, MediaFieldConfig } from './media'; import { LiveEditorGlobalConfig } from '../editor'; export interface MediaListFieldConfig extends FieldConfig { /** * Label for adding more list items. */ addLabel?: string; /** * Label for when the list is empty. */ emptyLabel?: string; /** * Field definition for the media field. */ fieldConfig?: MediaFieldConfig; } export interface MediaListFieldComponent extends FieldComponent { /** * Can the list add more items? */ allowAdd?: boolean; /** * Can the list remove items? */ allowRemove?: boolean; /** * Handle expanding an item. * * @param item List item */ expandItem(item: MediaListItemComponent): void; /** * Event handler for deleting items. * * @param evt Click event from delete action. * @param index Item index being deleted. */ handleDeleteItem(evt: Event, index: number): void; /** * Number of items in the list. */ length: number; } export interface MediaListItemComponent { listField: MediaListFieldComponent & SortableFieldComponent; mediaField: MediaFieldComponent; isExpanded: boolean; template: (editor: SelectiveEditor, data: DeepObject, index: number) => TemplateResult; uid: string; } export interface MediaListItemConstructor { new (listField: MediaListFieldComponent & SortableFieldComponent, mediaField: MediaFieldComponent): MediaListItemComponent; } declare const MediaListField_base: (new (...args: any[]) => { _droppableUi?: import("@blinkk/selective-edit").DroppableUiComponent | undefined; droppableUi: import("@blinkk/selective-edit").DroppableUiComponent; }) & (new (...args: any[]) => { _sortableUi?: import("@blinkk/selective-edit/dist/src/mixins/sortable").SortableUiComponent | undefined; sortableUi: import("@blinkk/selective-edit/dist/src/mixins/sortable").SortableUiComponent; }) & typeof Field; export declare class MediaListField extends MediaListField_base implements MediaListFieldComponent { config: MediaListFieldConfig; globalConfig: LiveEditorGlobalConfig; protected items: Array<MediaListItemComponent> | null; protected MediaListItemCls: MediaListItemConstructor; protected MediaListItemDefaultConfig: MediaFieldConfig; usingAutoFields: boolean; constructor(types: Types, config: MediaListFieldConfig, globalConfig: LiveEditorGlobalConfig, fieldType?: string); get allowAdd(): boolean; get allowRemove(): boolean; protected ensureItems(editor: SelectiveEditor): Array<MediaListItemComponent>; expandItem(item: MediaListItemComponent): void; handleAddItem(evt: Event, editor: SelectiveEditor, data: DeepObject): void; handleDeleteItem(evt: Event, index: number): void; handleFiles(files: Array<File>): void; handleSort(startIndex: number, endIndex: number): void; get isClean(): boolean; get isValid(): boolean; /** * Length of the list. */ get length(): number; templateAdd(editor: SelectiveEditor, data: DeepObject): TemplateResult; templateEmpty(editor: SelectiveEditor, data: DeepObject): TemplateResult; templateInput(editor: SelectiveEditor, data: DeepObject): TemplateResult; get value(): any; } export declare class RemoteMediaListField extends MediaListField { constructor(types: Types, config: MediaListFieldConfig, globalConfig: LiveEditorGlobalConfig, fieldType?: string); } export {};