Package-level declarations

Functions

Link copied to clipboard
fun ErrorFormState(error: Error, modifier: Modifier = Modifier)
Link copied to clipboard
fun Form(editor: DocumentEditor, config: FormConfig = editor.config, navigation: @Composable (navigator: PageCollection, state: PageCollectionState) -> Unit? = { navigator, state -> if (state.pages.isNotEmpty()) { JoyPageSelector( state = state, isPageDuplicateEnabled = config.pages.enableDuplicates && config.mode != Mode.readonly, onDuplicate = { page, keepValues -> navigator.duplicate(page, page.name, keepValues) config.events.onChange?.invoke(ComponentEvent.PageEvent.PageCreate(page = page)) }, onChange = { val page = navigator.navigate(it) ?: return@JoyPageSelector }, allowDeletingPages = config.pages.enableDeletes && config.mode != Mode.readonly, onDelete = { val isDeleted = navigator.delete(it) if (!isDeleted) return@JoyPageSelector config.events.onChange?.invoke(ComponentEvent.PageEvent.PageDelete(page = it)) }, ) } }, error: @Composable (Error) -> Unit = { ErrorFormState(it) }, modifier: Modifier = Modifier, arrangement: Arrangement.Vertical = Arrangement.spacedBy(16.dp), contentPadding: PaddingValues = PaddingValues(0.dp))

High-level composable to render a document using a DocumentEditor.

fun Form(editor: DocumentEditor, mode: Mode = Mode.fill, maxAllowedSizeMB: Int? = null, onUpload: suspend (ComponentEvent<AbstractFileEditor>) -> List<String>? = null, onCapture: suspend (ComponentEvent<AbstractCompStringEditor>) -> String?? = null, onBlur: (event: ComponentEvent<*>) -> Unit? = null, onFocus: (event: ComponentEvent<*>) -> Unit? = null, license: String? = Secrets.LICENSE, isPageDuplicateEnabled: Boolean = false, isPageDeleteEnabled: Boolean = false, singleClickRowEdit: Boolean = false, onFieldChange: (event: ComponentEvent<*>) -> Unit? = null, navigation: @Composable (navigator: PageCollection, state: PageCollectionState) -> Unit? = { navigator, state -> if (state.pages.isNotEmpty()) { JoyPageSelector( state = state, isPageDuplicateEnabled = isPageDuplicateEnabled && mode != Mode.readonly, onDuplicate = { page, keepValues -> navigator.duplicate(page, page.name, keepValues) val component = ComponentEvent.PageEvent.PageCreate(page = page) onFieldChange?.invoke(component) }, onChange = { val page = navigator.navigate(it) ?: return@JoyPageSelector }, allowDeletingPages = isPageDeleteEnabled && mode != Mode.readonly, onDelete = { val isDeleted = navigator.delete(it) if (!isDeleted) return@JoyPageSelector val component = ComponentEvent.PageEvent.PageDelete(page = it) onFieldChange?.invoke(component) }, ) } }, error: @Composable (Error) -> Unit = { ErrorFormState(it) }, showUnsupportedFields: Boolean = false, showUnsupportedColumns: Boolean = true, showRowNumbers: Boolean = true, modifier: Modifier = Modifier, arrangement: Arrangement.Vertical = Arrangement.spacedBy(16.dp), contentPadding: PaddingValues = PaddingValues(0.dp), inlineFields: Boolean = false, decoratorConfig: DecoratorConfig = DecoratorConfig.Default)

High-level composable to render a document using a DocumentEditor. Orchestrates page navigation, component rendering and event emission.

Link copied to clipboard
fun rememberDocumentEditor(document: Document, config: FormConfig, validateSchema: Boolean = true, identity: IdentityGenerator = IdentityGenerator.default, onError: ErrorHandler = NoOpErrorHandler): DocumentEditor

Remember a DocumentEditor for a given Document across recompositions. Uses Compose remember with inputs to recreate the editor when they change.

fun rememberDocumentEditor(bytes: ByteArray, config: FormConfig, validateSchema: Boolean = true, identity: IdentityGenerator = IdentityGenerator.default, onError: ErrorHandler = NoOpErrorHandler): DocumentEditor

Remember a DocumentEditor for raw JSON bytes across recompositions.

fun rememberDocumentEditor(json: String, config: FormConfig, validateSchema: Boolean = true, identity: IdentityGenerator = IdentityGenerator.default, onError: ErrorHandler = NoOpErrorHandler): DocumentEditor

Remember a DocumentEditor for a JSON string input across recompositions.

fun rememberDocumentEditor(document: Document, validateSchema: Boolean = true, identity: IdentityGenerator = IdentityGenerator.default, layout: LayoutConfig = LayoutConfig.convenientMobile(), functions: ResolutionResourceBuilder.() -> Unit? = null, onError: ErrorHandler = NoOpErrorHandler, onChange: DocumentEditor.(ChangeEvent) -> Unit? = null): DocumentEditor
fun rememberDocumentEditor(bytes: ByteArray, validateSchema: Boolean = true, identity: IdentityGenerator = IdentityGenerator.default, layout: LayoutConfig = LayoutConfig.convenientMobile(), functions: ResolutionResourceBuilder.() -> Unit? = null, onError: ErrorHandler = NoOpErrorHandler, onChange: DocumentEditor.(ChangeEvent) -> Unit? = null): DocumentEditor
fun rememberDocumentEditor(json: String, validateSchema: Boolean = true, identity: IdentityGenerator = IdentityGenerator.default, layout: LayoutConfig = LayoutConfig.convenientMobile(), functions: ResolutionResourceBuilder.() -> Unit? = null, onError: ErrorHandler = NoOpErrorHandler, onChange: DocumentEditor.(ChangeEvent) -> Unit? = null): DocumentEditor