UNPKG

@arcgis/coding-components

Version:

Contains components for editing code in different languages. The currently supported languages are html, css, json, TypeScript, JavaScript, and Arcade.

82 lines (81 loc) 3.13 kB
/// <reference types="@arcgis/core/interfaces.d.ts" /> import { IRange, editor } from 'monaco-editor'; import { ArcGISFieldType, SqlExpressionLiteral } from './types'; import { ApiVariable } from '@arcgis/languages-api-utils'; export interface ValidationSyntaxContext { token: string; range: IRange; startDelimiter?: boolean; content?: ValidationSyntaxContext[]; } export declare enum TokenType { SINGLE = "SINGLE", EMPTY_FIELD = "EMPTY_FIELD", ERROR = "ERROR", FIELD = "FIELD", KEYWORD_IN = "IN", KEYWORD_NOT_IN = "NOT IN", KEYWORD_BETWEEN = "BETWEEN", KEYWORD_NOT_BETWEEN = "NOT BETWEEN", LIST = "LIST", NEGATION = "NOT", NUMBER = "NUMBER", OPERATOR = "OPERATOR", PARENTHESES = "PARENTHESES", STRING = "STRING", UNKNOWN = "UNKNOWN" } export declare enum Token { CASE = "CASE", CASE_ELSE = "ELSE", CASE_THEN = "THEN", CASE_WHEN = "WHEN", COMMA = ",", DOUBLE_QUOTE = "\"", EMPTY = "", END = "END", INTERVAL = "INTERVAL", LEFT_PARENTHESES = "(", NEW_LINE = "\n", RIGHT_PARENTHESES = ")", SINGLE_QUOTE = "'", WHITE_SPACE = " " } export declare enum NodeReturnType { BOOLEAN = "BOOLEAN", DOUBLE = "DOUBLE", EXPRESSION_LIST = "EXPRESSION-LIST", FLOAT = "FLOAT", INTEGER = "INTEGER", NULL = "NULL", NUMBER = "NUMBER", REAL = "REAL", STRING = "STRING", SMALL_INT = "SMALLINT", UNKNOWN_FUNCTION = "UNKNOWN_FUNCTION" } export declare enum CallableExpressionResponse { FUNCTION = "FUNCTION", EXPRESSION_LIST = "EXPRESSION_LIST", SUCCESS = "SUCCESS", NON_CALLABLE = "NON_CALLABLE" } export declare const isValidIntervalValue: RegExp; export declare const relationalTypes: SqlExpressionLiteral[]; export declare const qualifiers: TokenType[]; export declare function convertArcgisTypeToSqlReturnType(arcgisType: ArcGISFieldType): SqlExpressionLiteral; export declare const identifyNodeReturnType: (node: __esri.SQLNode, fields: ApiVariable[]) => SqlExpressionLiteral | "time-only" | "unknown_function"; /** * Helper function to identify if the given type is able to be used in arithmetic operations */ export declare const isArithmeticType: (type: SqlExpressionLiteral) => boolean; /** * SQL allows arithmetic operations on intervals combined with dates or numbers. */ export declare const isValidIntervalArithmetic: (leftNode: __esri.SQLNode, rightNode: __esri.SQLNode, fields: ApiVariable[]) => boolean; export declare const isNumericType: (type: SqlExpressionLiteral) => boolean; export declare const formatListToString: (types: SqlExpressionLiteral[], delimiter: string) => string; export declare const formatType: (type: string) => string; export declare const getValueFromNode: (node: __esri.SQLNode) => number | string; export declare const addNewMarker: (message: string, range: __esri.SQLSourceLocation | IRange, markers: editor.IMarkerData[], isNodeFormat?: boolean) => void; export declare const validateTypeMatch: (node: __esri.SQLNode, expectedType: NodeReturnType, markers: editor.IMarkerData[], fields: ApiVariable[]) => void;