@qrvey/formula-lang
Version:
QFormula support for qrvey projects
36 lines (35 loc) • 5.4 kB
TypeScript
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;