Skip to content

Columns Component

The FlyqlColumns component provides a dedicated input for column expressions — selecting, filtering, and applying transformers to columns.

<script setup>
import { ref } from 'vue'
import { FlyqlColumns, ColumnSchema } from 'flyql-vue'
const expr = ref('')
const columns = ColumnSchema.fromPlainObject({
status: { type: 'number', suggest: true },
level: { type: 'enum', suggest: true },
service: { type: 'string', suggest: true },
host: { type: 'string', suggest: true },
})
function onParsed(parsed) {
console.log('Parsed columns:', parsed)
}
</script>
<template>
<FlyqlColumns
v-model="expr"
:columns="columns"
:capabilities="{ transformers: true }"
placeholder="message, status|upper, host as h"
@update:parsed="onParsed"
/>
</template>
PropTypeDefaultDescription
modelValueString''Expression text (v-model)
columnsObject{}Column schema
capabilitiesObjectnullParser capabilities (e.g., { transformers: true })
registryTransformerRegistrynullCustom transformer registry (see Custom Transformers)
rendererRegistryRendererRegistrynullCustom renderer registry (see Custom Renderers). When null the editor disables renderer parsing entirely; supplying any registry (even an empty one) enables the post-alias | grammar.
onKeyDiscoveryFunctionnullRemote key discovery callback
placeholderString''Placeholder text
autofocusBooleanfalseAuto-focus on mount
debugBooleanfalseDebug logging
darkBooleanfalseEnable dark theme (see theming)
<script setup>
import { FlyqlColumns } from 'flyql-vue'
import { Renderer, RendererRegistry, ArgSpec } from 'flyql/renderers'
import { Type } from 'flyql'
class HrefRenderer extends Renderer {
get name() { return 'href' }
get argSchema() { return [new ArgSpec(Type.String, true)] }
}
const rendererRegistry = new RendererRegistry()
rendererRegistry.register(new HrefRenderer())
</script>
<template>
<FlyqlColumns v-model="query" :columns="schema" :renderer-registry="rendererRegistry" />
</template>
EventPayloadDescription
update:modelValuestringExpression text changed (v-model)
update:parsedParsedColumn[]Parsed column array updated
submitUser pressed Shift+Enter
parse-errorstringParse error message
focusComponent gained focus
blurComponent lost focus
MethodReturnsDescription
focus()Focus the input
blur()Blur the input
getQueryStatus(){ valid: boolean, message: string }Validate the expression
getParsedColumns()ParsedColumn[]Get parsed column array

Column expressions use a comma-separated format with optional transformers and aliases:

message, status|upper, host as h, metadata.labels.env
PartSyntaxExample
Columnnamemessage
Transformername|transformerstatus|upper
Transformer with argsname|transformer(arg)name|truncate(50)
Aliasname as aliashost as h
Nestedparent.childmetadata.labels.env
Chained transformersname|t1|t2msg|lower|truncate(100)