Skip to content

Columns Component

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

<script setup>
import { ref } from 'vue'
import { FlyqlColumns } from 'flyql/editor'
const expr = ref('')
const columns = {
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="{ modifiers: 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., { modifiers: true })
onKeyDiscoveryFunctionnullRemote key discovery callback
placeholderString''Placeholder text
autofocusBooleanfalseAuto-focus on mount
debugBooleanfalseDebug logging
darkBooleanfalseEnable dark theme (see theming)
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 modifiers and aliases:

message, status|upper, host as h, metadata.labels.env
PartSyntaxExample
Columnnamemessage
Modifiername|modifierstatus|upper
Modifier with argsname|modifier(arg)name|truncate(50)
Aliasname as aliashost as h
Nestedparent.childmetadata.labels.env
Chained modifiersname|mod1|mod2msg|lower|truncate(100)