Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
{"version":3,"file":"b6fe2bb5-7854.c4ce1f92650264e67bcf.js","mappings":"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","sources":["webpack://graylog-web-interface/./src/views/components/searchbar/queryinput/ace.ts","webpack://graylog-web-interface/./src/views/components/searchbar/queryinput/StyledAceEditor.jsx","webpack://graylog-web-interface/./src/views/components/searchbar/queryinput/BasicQueryInput.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/SearchBarAutocompletions.ts","webpack://graylog-web-interface/./src/views/components/searchbar/queryinput/QueryInput.tsx","webpack://graylog-web-interface/./src/views/components/searchbar/queryinput/ace-queryinput.js"],"sourcesContent":["/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport AceEditor from 'react-ace';\n\nimport './ace-queryinput';\nimport 'ace-builds/src-noconflict/ext-language_tools';\nimport 'ace-builds/src-noconflict/mode-lucene';\nimport 'ace-builds/webpack-resolver';\n\nexport default AceEditor;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport styled, { css } from 'styled-components';\n\nimport AceEditor from './ace';\n\nconst StyledAceEditor = styled(AceEditor).attrs(({ aceTheme, theme, $height }) => ({\n // NOTE: After setting the prop we need to swap them back so AceEditor uses the proper styles\n theme: aceTheme, /* stylelint-disable-line */\n $scTheme: theme,\n $height,\n}))(({ $scTheme, $height, disabled, value }) => css`\n &.ace-queryinput {\n ${$height ? `height: ${$height}px !important` : ''};\n min-height: 34px;\n width: 100% !important;\n background-color: ${$scTheme.colors.input.background};\n color: ${$scTheme.utils.contrastingColor($scTheme.colors.input.background, 'AAA')};\n border: 1px solid ${$scTheme.colors.variant.light.default};\n border-radius: 4px;\n\n &.ace_multiselect .ace_selection.ace_start {\n box-shadow: 0 0 3px 0 ${$scTheme.colors.input.background};\n }\n\n .ace_gutter {\n background: ${$scTheme.colors.input.background};\n color: ${$scTheme.utils.contrastingColor($scTheme.colors.input.background, 'AAA')};\n }\n\n .ace_print-margin {\n width: 1px;\n background: ${$scTheme.colors.input.background};\n }\n\n .ace_cursor {\n color: ${$scTheme.colors.gray[50]};\n display: ${disabled ? 'none' : 'block'} !important;\n }\n\n .ace_hidden-cursors {\n display: ${value ? 'block' : 'none'};\n }\n\n .ace_marker-layer .ace_selection {\n background: ${$scTheme.colors.variant.lightest.default};\n }\n\n .ace_marker-layer .ace_step {\n background: ${$scTheme.colors.variant.warning};\n }\n\n .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: none;\n }\n\n .ace_marker-layer .ace_active-line {\n background: ${$scTheme.colors.input.background};\n }\n\n .ace_gutter-active-line {\n background-color: ${$scTheme.colors.input.background};\n }\n\n .ace_marker-layer .ace_selected-word {\n border: 1px solid ${$scTheme.colors.gray[80]};\n }\n\n .ace_invisible {\n color: ${$scTheme.colors.input.background};\n }\n\n .ace_keyword,\n .ace_meta,\n .ace_storage,\n .ace_storage.ace_type,\n .ace_support.ace_type {\n color: ${$scTheme.colors.variant.primary};\n }\n\n .ace_keyword.ace_operator {\n color: ${$scTheme.colors.variant.darker.info};\n }\n\n .ace_constant.ace_character,\n .ace_constant.ace_language,\n .ace_constant.ace_numeric,\n .ace_keyword.ace_other.ace_unit,\n .ace_support.ace_constant,\n .ace_variable.ace_parameter {\n color: ${$scTheme.colors.variant.dark.danger};\n }\n\n .ace_constant.ace_other {\n color: ${$scTheme.colors.variant.default};\n }\n\n .ace_invalid {\n color: ${$scTheme.utils.readableColor($scTheme.colors.brand.primary)};\n background-color: ${$scTheme.colors.brand.primary};\n }\n\n .ace_invalid.ace_deprecated {\n color: ${$scTheme.utils.readableColor($scTheme.colors.brand.primary)};\n background-color: ${$scTheme.colors.variant.dark.primary};\n }\n\n .ace_fold {\n background-color: ${$scTheme.colors.variant.info};\n border-color: ${$scTheme.utils.contrastingColor($scTheme.colors.input.background, 'AAA')};\n }\n\n .ace_entity.ace_name.ace_function,\n .ace_support.ace_function,\n .ace_variable,\n .ace_term {\n color: ${$scTheme.colors.variant.info};\n }\n\n .ace_support.ace_class,\n .ace_support.ace_type {\n color: ${$scTheme.colors.variant.dark.warning};\n }\n\n .ace_heading,\n .ace_markup.ace_heading,\n .ace_string {\n color: ${$scTheme.colors.variant.dark.success};\n }\n\n .ace_entity.ace_name.ace_tag,\n .ace_entity.ace_other.ace_attribute-name,\n .ace_meta.ace_tag,\n .ace_string.ace_regexp,\n .ace_variable {\n color: ${$scTheme.colors.brand.primary};\n }\n\n .ace_comment {\n color: ${$scTheme.colors.gray[60]};\n }\n\n .ace_indent-guide {\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bdu3f/BwAlfgctduB85QAAAABJRU5ErkJggg==) right repeat-y;\n }\n\n .ace_placeholder {\n left: 0;\n right: 0;\n padding: 0;\n margin-top: 6px;\n margin-left: 6px;\n transform: none;\n opacity: 1;\n z-index: auto !important;\n font-family: inherit !important;\n font-size: ${$scTheme.fonts.size.body};\n color: ${$scTheme.colors.input.placeholder};\n text-overflow: ellipsis;\n max-width: 100%;\n overflow: hidden;\n }\n\n .ace_marker {\n border-bottom: 2px dashed;\n position: absolute;\n border-radius: 0;\n margin-top: 1px;\n }\n\n .ace_marker.ace_validation_error {\n border-color: ${$scTheme.colors.variant.danger};\n }\n\n .ace_marker.ace_validation_warning {\n border-color: ${$scTheme.colors.variant.dark.warning};\n }\n }\n`);\n\nexport default StyledAceEditor;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { forwardRef, useMemo, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTheme } from 'styled-components';\n\nimport type { QueryValidationState } from 'views/components/searchbar/queryvalidation/types';\n\nimport StyledAceEditor from './StyledAceEditor';\nimport type { Editor } from './ace-types';\n\nexport type BaseProps = {\n className?: string\n error?: QueryValidationState,\n height?: number,\n maxLines?: number,\n onLoad?: (editor: Editor) => void,\n placeholder?: string,\n value: string,\n warning?: QueryValidationState,\n wrapEnabled?: boolean,\n};\n\ntype EnabledInputProps = BaseProps & {\n disabled: false,\n enableAutocompletion?: boolean,\n onBlur?: (query: string) => void,\n onChange: (query: string) => Promise,\n onExecute: (editor: Editor) => void,\n};\ntype DisabledInputProps = BaseProps & { disabled: true };\ntype Props = EnabledInputProps | DisabledInputProps\n\nconst isEnabledInput = (props: Props): props is EnabledInputProps => !props.disabled;\nconst isDisabledInput = (props: Props): props is DisabledInputProps => props.disabled;\n\nconst getMarkers = (errors: QueryValidationState | undefined, warnings: QueryValidationState | undefined) => {\n const markerClassName = 'ace_marker';\n const createMarkers = (explanations = [], className = '') => explanations.map(({\n beginLine,\n beginColumn,\n endLine,\n endColumn,\n }) => ({\n startRow: beginLine,\n startCol: beginColumn,\n endRow: endLine,\n endCol: endColumn,\n type: 'background',\n className,\n }));\n\n return [\n ...createMarkers(errors?.explanations, `${markerClassName} ace_validation_error`),\n ...createMarkers(warnings?.explanations, `${markerClassName} ace_validation_warning`),\n ];\n};\n\n// Basic query input component which is being implemented by the `QueryInput` component.\n// This is just a very basic query input which can be implemented for example to display a read only query.\nconst BasicQueryInput = forwardRef((props, ref) => {\n const {\n className,\n disabled,\n error,\n height,\n maxLines,\n placeholder,\n value,\n warning,\n wrapEnabled,\n onLoad,\n } = props;\n const theme = useTheme();\n const markers = useMemo(() => getMarkers(error, warning), [error, warning]);\n const _onLoad = useCallback((editor) => {\n if (editor) {\n editor.renderer.setScrollMargin(6, 5);\n editor.renderer.setPadding(12);\n onLoad?.(editor);\n }\n }, [onLoad]);\n\n const commonProps = {\n $height: height,\n aceTheme: 'ace-queryinput', // NOTE: is usually just `theme` but we need that prop for styled-components\n className,\n disabled,\n editorProps: { $blockScrolling: Infinity, selectionStyle: 'line' },\n fontSize: theme.fonts.size.large,\n highlightActiveLine: false,\n markers,\n maxLines,\n minLines: 1,\n mode: 'lucene',\n name: 'QueryEditor',\n placeholder,\n readOnly: disabled,\n ref,\n setOptions: { indentedSoftWrap: false },\n showGutter: false,\n showPrintMargin: false,\n value,\n wrapEnabled,\n onLoad: _onLoad,\n };\n\n if (isDisabledInput(props)) {\n return ;\n }\n\n if (isEnabledInput(props)) {\n const {\n onBlur,\n onChange,\n onExecute,\n enableAutocompletion,\n } = props;\n\n return (\n \n );\n }\n\n return null;\n});\n\nBasicQueryInput.propTypes = {\n className: PropTypes.string,\n // @ts-ignore\n disabled: PropTypes.bool,\n enableAutocompletion: PropTypes.bool,\n error: PropTypes.any,\n height: PropTypes.number,\n maxLines: PropTypes.number,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n onExecute: PropTypes.func,\n onLoad: PropTypes.func,\n placeholder: PropTypes.string,\n value: PropTypes.string,\n warning: PropTypes.any,\n wrapEnabled: PropTypes.bool,\n};\n\nBasicQueryInput.defaultProps = {\n className: '',\n disabled: false,\n enableAutocompletion: false,\n error: undefined,\n height: undefined,\n maxLines: 4,\n onBlur: undefined,\n onChange: undefined,\n onExecute: undefined,\n onLoad: undefined,\n placeholder: '',\n value: '',\n warning: undefined,\n wrapEnabled: true,\n};\n\nexport default BasicQueryInput;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport { sortBy, uniqBy } from 'lodash';\n\nimport type { TimeRange, NoTimeRangeOverride } from 'views/logic/queries/Query';\nimport type FieldTypeMapping from 'views/logic/fieldtypes/FieldTypeMapping';\n\nimport type {\n Editor,\n ResultsCallback,\n Session,\n Position,\n CompletionResult,\n AutoCompleter,\n Token,\n Line,\n} from './queryinput/ace-types';\n\nexport type FieldTypes = { all: FieldIndex, query: FieldIndex };\ntype FieldIndex = { [fieldName: string]: FieldTypeMapping };\n\nexport type CompleterContext = Readonly<{\n currentToken: Token | undefined | null,\n lastToken: Token | undefined | null,\n prefix: string,\n tokens: Array,\n currentTokenIdx: number,\n timeRange?: TimeRange | NoTimeRangeOverride,\n streams?: Array\n fieldTypes?: FieldTypes,\n}>;\n\nexport interface Completer {\n getCompletions(context: CompleterContext): Array | Promise>;\n shouldShowCompletions?: (currentLine: number, lines: Array>) => boolean;\n}\n\nconst onCompleterError = (error: Error) => {\n // eslint-disable-next-line no-console\n console.warn('Exception thrown in completer: ', error);\n};\n\nexport default class SearchBarAutoCompletions implements AutoCompleter {\n private readonly completers: Array;\n\n private readonly timeRange: TimeRange | NoTimeRangeOverride | undefined;\n\n private readonly streams: Array;\n\n private readonly fieldTypes: FieldTypes;\n\n constructor(completers: Array, timeRange: TimeRange | NoTimeRangeOverride | undefined, streams: Array, fieldTypes: FieldTypes) {\n this.completers = completers;\n this.timeRange = timeRange;\n this.streams = streams;\n this.fieldTypes = fieldTypes;\n }\n\n getCompletions = async (editor: Editor, session: Session, pos: Position, prefix: string, callback: ResultsCallback) => {\n const tokens = editor.session.getTokens(pos.row);\n const currentToken = editor.session.getTokenAt(pos.row, pos.column);\n const currentTokenIdx = tokens.findIndex((t) => (t === currentToken));\n\n const lastToken: Token | undefined | null = currentTokenIdx > 0 ? tokens[currentTokenIdx - 1] : null;\n\n const results = await Promise.all(\n this.completers\n .map(async (completer) => {\n try {\n return await completer.getCompletions({ currentToken, lastToken, prefix, tokens, currentTokenIdx, timeRange: this.timeRange, streams: this.streams, fieldTypes: this.fieldTypes });\n } catch (e) {\n onCompleterError(e);\n }\n\n return [];\n }),\n );\n const uniqResults = uniqBy(sortBy(results.flat(), ['score', 'name']), 'name');\n\n callback(null, uniqResults);\n };\n\n shouldShowCompletions = (currentLine: number, lines: Array>) => {\n return this.completers.some((completer) => {\n if (typeof completer.shouldShowCompletions === 'function') {\n try {\n return completer.shouldShowCompletions(currentLine, lines);\n } catch (e) {\n onCompleterError(e);\n }\n }\n\n return false;\n });\n };\n}\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\nimport * as React from 'react';\nimport { useCallback, useMemo, useContext, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { isEmpty } from 'lodash';\nimport type { FormikErrors } from 'formik';\n\nimport UserPreferencesContext from 'contexts/UserPreferencesContext';\nimport type { TimeRange, NoTimeRangeOverride } from 'views/logic/queries/Query';\nimport QueryValidationActions from 'views/actions/QueryValidationActions';\nimport type { QueryValidationState } from 'views/components/searchbar/queryvalidation/types';\nimport useFieldTypes from 'views/logic/fieldtypes/useFieldTypes';\nimport { DEFAULT_TIMERANGE } from 'views/Constants';\nimport { isNoTimeRangeOverride } from 'views/typeGuards/timeRange';\nimport usePluginEntities from 'views/logic/usePluginEntities';\n\nimport type { AutoCompleter, Editor } from './ace-types';\nimport type { BaseProps } from './BasicQueryInput';\nimport BaseQueryInput from './BasicQueryInput';\n\nimport SearchBarAutoCompletions from '../SearchBarAutocompletions';\nimport type { Completer, FieldTypes } from '../SearchBarAutocompletions';\n\nconst defaultCompleterFactory = (...args: ConstructorParameters) => new SearchBarAutoCompletions(...args);\n\nconst displayValidationErrors = () => {\n QueryValidationActions.displayValidationErrors();\n};\n\nconst handleExecution = ({\n editor,\n onExecute,\n value,\n error,\n disableExecution,\n isValidating,\n validate,\n}: {\n editor: Editor,\n onExecute: (query: string) => void,\n value: string,\n error: QueryValidationState | undefined,\n disableExecution: boolean,\n isValidating: boolean,\n validate: () => Promise>,\n}) => {\n const execute = () => {\n if (editor?.completer && editor.completer.popup) {\n editor.completer.popup.hide();\n }\n\n onExecute(value);\n };\n\n if (isValidating) {\n validate().then((errors) => {\n if (isEmpty(errors)) {\n execute();\n } else {\n displayValidationErrors();\n }\n });\n\n return;\n }\n\n if (error) {\n displayValidationErrors();\n }\n\n if (disableExecution || error) {\n return;\n }\n\n execute();\n};\n\n// This function takes care of all editor configuration options, which do not rely on external data.\n// It will only run once, on mount, which is important for e.g. the event listeners.\nconst _onLoadEditor = (editor, isInitialTokenizerUpdate: React.MutableRefObject) => {\n if (editor) {\n editor.commands.removeCommands(['find', 'indent', 'outdent']);\n\n editor.session.on('tokenizerUpdate', (input, { bgTokenizer: { currentLine, lines } }) => {\n if (!isInitialTokenizerUpdate.current) {\n editor.completers.forEach((completer) => {\n if (completer?.shouldShowCompletions(currentLine, lines)) {\n editor.execCommand('startAutocomplete');\n }\n });\n }\n\n if (isInitialTokenizerUpdate.current) {\n // eslint-disable-next-line no-param-reassign\n isInitialTokenizerUpdate.current = false;\n }\n });\n\n editor.renderer.setScrollMargin(6, 5);\n editor.renderer.setPadding(12);\n }\n};\n\n// This function takes care of updating the editor config on every render.\n// This is necessary for configuration options which rely on external data.\n// Unfortunately it is not possible to configure for example the command once\n// with the `onLoad` or `commands` prop, because the reference for the related function will be outdated.\nconst _updateEditorConfiguration = (node, completer, onExecute) => {\n const editor = node && node.editor;\n\n if (editor) {\n editor.commands.addCommand({\n name: 'Execute',\n bindKey: { win: 'Enter', mac: 'Enter' },\n exec: onExecute,\n });\n\n editor.completers = [completer];\n }\n};\n\nconst useCompleter = ({ streams, timeRange, completerFactory }: Pick) => {\n const completers = usePluginEntities('views.completers') ?? [];\n const { data: queryFields } = useFieldTypes(streams, isNoTimeRangeOverride(timeRange) ? DEFAULT_TIMERANGE : timeRange);\n const { data: allFields } = useFieldTypes([], DEFAULT_TIMERANGE);\n const fieldTypes = useMemo(() => {\n const queryFieldsByName = Object.fromEntries((queryFields ?? []).map((field) => [field.name, field]));\n const allFieldsByName = Object.fromEntries((allFields ?? []).map((field) => [field.name, field]));\n\n return { all: allFieldsByName, query: queryFieldsByName };\n }, [allFields, queryFields]);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return useMemo(() => completerFactory(completers, timeRange, streams, fieldTypes), [completerFactory, timeRange, streams, fieldTypes]);\n};\n\ntype Props = BaseProps & {\n completerFactory?: (\n completers: Array,\n timeRange: TimeRange | NoTimeRangeOverride | undefined,\n streams: Array,\n fieldTypes: FieldTypes,\n ) => AutoCompleter,\n disableExecution?: boolean,\n isValidating?: boolean,\n onBlur?: (query: string) => void,\n onChange: (query: string) => Promise,\n onExecute: (query: string) => void,\n streams?: Array | undefined,\n timeRange?: TimeRange | NoTimeRangeOverride | undefined,\n validate: () => Promise>,\n};\n\nconst QueryInput = ({\n className,\n completerFactory = defaultCompleterFactory,\n disableExecution,\n error,\n height,\n isValidating,\n maxLines,\n onBlur,\n onChange,\n onExecute: onExecuteProp,\n placeholder,\n streams,\n timeRange,\n value,\n validate,\n warning,\n wrapEnabled,\n}: Props) => {\n const isInitialTokenizerUpdate = useRef(true);\n const { enableSmartSearch } = useContext(UserPreferencesContext);\n const completer = useCompleter({ streams, timeRange, completerFactory });\n const onLoadEditor = useCallback((editor: Editor) => _onLoadEditor(editor, isInitialTokenizerUpdate), []);\n const onExecute = useCallback((editor: Editor) => handleExecution({\n editor,\n onExecute: onExecuteProp,\n value,\n error,\n disableExecution,\n isValidating,\n validate,\n }), [onExecuteProp, value, error, disableExecution, isValidating, validate]);\n const updateEditorConfiguration = useCallback((node) => _updateEditorConfiguration(node, completer, onExecute), [onExecute, completer]);\n\n return (\n \n );\n};\n\nQueryInput.propTypes = {\n className: PropTypes.string,\n completerFactory: PropTypes.func,\n disableExecution: PropTypes.bool,\n error: PropTypes.any,\n height: PropTypes.number,\n isValidating: PropTypes.bool.isRequired,\n maxLines: PropTypes.number,\n onBlur: PropTypes.func,\n onChange: PropTypes.func.isRequired,\n onExecute: PropTypes.func.isRequired,\n placeholder: PropTypes.string,\n streams: PropTypes.array,\n timeRange: PropTypes.object,\n value: PropTypes.string,\n warning: PropTypes.any,\n wrapEnabled: PropTypes.bool,\n validate: PropTypes.func.isRequired,\n};\n\nQueryInput.defaultProps = {\n className: '',\n completerFactory: defaultCompleterFactory,\n disableExecution: false,\n error: undefined,\n height: undefined,\n maxLines: undefined,\n onBlur: undefined,\n placeholder: '',\n streams: undefined,\n timeRange: undefined,\n value: '',\n warning: undefined,\n wrapEnabled: undefined,\n};\n\nexport default QueryInput;\n","/*\n * Copyright (C) 2020 Graylog, Inc.\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the Server Side Public License, version 1,\n * as published by MongoDB, Inc.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * Server Side Public License for more details.\n *\n * You should have received a copy of the Server Side Public License\n * along with this program. If not, see\n * .\n */\n// eslint-disable-next-line no-undef\nace.define('ace/theme/ace-queryinput', ['require', 'exports', 'module', 'ace/lib/dom'], (acequire, exports) => {\n /* eslint-disable no-param-reassign */\n exports.isDark = false;\n\n exports.cssClass = 'ace-queryinput';\n /* eslint-enable no-param-reassign */\n\n const dom = acequire('../lib/dom');\n\n dom.importCssString(exports.cssText, exports.cssClass);\n});\n"],"names":["AceEditor","styled","attrs","theme","aceTheme","$scTheme","$height","disabled","value","css","colors","input","background","utils","contrastingColor","variant","light","gray","lightest","warning","primary","darker","info","dark","danger","readableColor","brand","success","fonts","size","body","placeholder","BasicQueryInput","forwardRef","props","ref","className","error","height","maxLines","wrapEnabled","onLoad","useTheme","markers","useMemo","warnings","markerClassName","createMarkers","map","startRow","beginLine","startCol","beginColumn","endRow","endLine","endCol","endColumn","type","errors","explanations","_onLoad","useCallback","editor","renderer","setScrollMargin","setPadding","commonProps","editorProps","$blockScrolling","Infinity","selectionStyle","fontSize","large","highlightActiveLine","minLines","mode","name","readOnly","setOptions","indentedSoftWrap","showGutter","showPrintMargin","isDisabledInput","isEnabledInput","onBlur","onChange","onExecute","enableAutocompletion","enableBasicAutocompletion","enableLiveAutocompletion","propTypes","PropTypes","defaultProps","undefined","onCompleterError","console","warn","SearchBarAutoCompletions","completers","timeRange","streams","fieldTypes","session","pos","prefix","callback","tokens","getTokens","row","currentToken","getTokenAt","column","currentTokenIdx","findIndex","t","lastToken","Promise","all","completer","getCompletions","this","results","uniqResults","uniqBy","sortBy","flat","currentLine","lines","some","shouldShowCompletions","e","defaultCompleterFactory","args","displayValidationErrors","QueryValidationActions","QueryInput","completerFactory","disableExecution","isValidating","onExecuteProp","validate","isInitialTokenizerUpdate","useRef","enableSmartSearch","useContext","UserPreferencesContext","usePluginEntities","queryFields","useFieldTypes","isNoTimeRangeOverride","DEFAULT_TIMERANGE","data","allFields","queryFieldsByName","Object","fromEntries","field","query","useCompleter","onLoadEditor","commands","removeCommands","on","bgTokenizer","current","forEach","execCommand","_onLoadEditor","execute","popup","hide","then","isEmpty","handleExecution","updateEditorConfiguration","node","addCommand","bindKey","win","mac","exec","_updateEditorConfiguration","ace","define","acequire","exports","isDark","cssClass","importCssString","cssText"],"sourceRoot":""}