UNPKG

@qrvey/formula-lang

Version:

QFormula support for qrvey projects

36 lines (35 loc) 5.4 kB
import { DateDifUnitParam } from '../../constants/interfaces'; export declare function toDate(value: string): string; export declare const setTimezoneToColumnDate: string; export declare const dateFormatScript: string; export declare const dayScript: (value: any) => string; export declare const monthScript: (value: any) => string; export declare const yearScript: (value: any) => string; export declare const hourScript: (value: any, timeFormat?: string) => string; export declare const minuteScript: (value: any) => string; export declare const secondScript: (value: any) => string; /** * Extracts the nanosecond value from a given date and divides it by 1,000,000. */ export declare const millisecondScript: (value: any) => string; export declare function dateDif(start: any, end: any, unit: DateDifUnitParam): string; export declare const getValueScript = "def GET_VALUE(def c){return (c.empty ? null : c.value)}"; export declare const isNullScript = "def IS_NULL_SCRIPT(def value, def replacement) { return value ?: replacement; }"; export declare const properScript = "String PROPER_STRING(String input) {\n if (input == null) return null;\n def str = input.toLowerCase();\n def builder = new StringBuilder(str);\n \n def chartLists = [\" \", \"!\", \"\\\"\", \"#\", \"$\", \"%\", \"&\", \"'\", \"(\", \")\", \"*\", \"+\", \",\", \"-\", \".\", \"/\", \":\", \";\", \"<\", \"=\", \">\", \"?\", \"@\", \"[\", \"\\\\\", \"]\", \"^\", \"_\", \"`\", \"{\", \"|\", \"}\", \"~\"];\n \n boolean flag = true;\n \n for(int i = 0; i < builder.length(); i++) {\n String ch = builder.charAt(i).toString();\n if (flag) { \n builder.replace(i, i + 1, ch.toUpperCase());\n flag = false;\n }\n flag = chartLists.contains(ch);\n }\n return builder.toString();\n }"; export declare const greatestScript = "def GREATEST(def numbers) {\n def max;\n if (numbers[0] instanceof ZonedDateTime) {\n max = numbers[0];\n if (max === null) return null;\n for (int i = 1; i < numbers.length; i++) {\n if (numbers[i] === null) return null;\n def current = numbers[i];\n if (current.isAfter(max)) {\n max = current;\n }\n }\n return max;\n } else {\n max = numbers[0];\n if (max === null) return null;\n for (int i = 1; i < numbers.length; i++) {\n if (numbers[i] === null) return null;\n if (numbers[i] > max) {\n max = numbers[i];\n }\n }\n return max;\n }\n}"; export declare const leastScript = "def LEAST(def numbers) {\n def min;\n if (numbers[0] instanceof ZonedDateTime) {\n min = numbers[0];\n if (min === null) return null;\n for (int i = 1; i < numbers.length; i++) {\n if (numbers[i] === null) return null;\n def current = numbers[i];\n if (current.isBefore(min)) {\n min = current;\n }\n }\n return min;\n } else {\n min = numbers[0];\n if (min === null) return null;\n for (int i = 1; i < numbers.length; i++) {\n if (numbers[i] === null) return null;\n if (numbers[i] < min) {\n min = numbers[i];\n }\n }\n return min;\n }\n}"; export declare const lengthScript = "def LENGTH(def str){return str != null ? str.length() : 0}"; export declare const sqrtScript = "def SQRT(def num){return num == null || num < 0 ? null : Math.sqrt(num) }"; export declare const expScript = "def EXP(def num){return num != null ? Math.exp(num) : null}"; export declare const replaceScript = "def REPLACE(def str, def target, def replacement) {\n if (str == null || target == null || replacement == null) return null;\n if (target == '') return str;\n return str.replace(target, replacement);\n}"; export declare const includeScript = "def INCLUDE(def str, def targetSearch) { if (str == null || targetSearch == null) return null; return str.contains(targetSearch);}"; export declare const evenScript = "def EVEN(def value) {\n if (value == null) return null;\n def _value = Math.abs(value);\n def sign = value < 0 ? -1 : 1;\n return ((long) Math.ceil(_value / 2.0) * 2) * sign;\n}"; export declare const logScript = "def LOG(def base, def value) {\n if (base == null || value == null) return null;\n if (base <= 1 || value <= 0) return null;\n return (Math.log(value) / Math.log(base));\n}"; export declare const oddScript = "def ODD(def value) {\n if (value == null) return null;\n def _value = Math.abs(value);\n def sign = value < 0 ? -1 : 1;\n return ((long) Math.ceil((_value + 1)/ 2.0) * 2 - 1) * sign;\n}"; export declare const powerScript = "def POWER(def value, def numberToRaise) {\n if (value == null || numberToRaise == null) return null;\n if (value == 0 && numberToRaise < 0) return null;\n return Math.pow(value, numberToRaise);\n}"; export declare const roundDownScript = "def ROUNDDOWN(def value, def places) {\n if (value == null || places == null) return null; \n if (places > 10) places = 10;\n if (places < 0) places = 0;\n def _value = Math.abs(value);\n def sign = value < 0 ? -1 : 1;\n def scale = Math.pow(10, places);\n return (Math.floor(_value * scale) / scale) * sign;\n}"; export declare const roundScript: string; export declare const roundUpScript: string; export declare const subStringScript: string; export declare const textScript = "def TEXT(def v) { return v == null ? null : v.toString(); }"; export declare const nowScript: string;