|
|
|
@@ -130,42 +130,42 @@ export function initAiLib(hpml: Hpml) {
|
|
|
|
|
|
|
|
|
|
export const funcDefs: Record<string, { in: any[]; out: any; category: string; icon: any; }> = {
|
|
|
|
|
if: { in: ['boolean', 0, 0], out: 0, category: 'flow', icon: 'ti ti-share' },
|
|
|
|
|
for: { in: ['number', 'function'], out: null, category: 'flow', icon: 'fas fa-recycle' },
|
|
|
|
|
not: { in: ['boolean'], out: 'boolean', category: 'logical', icon: 'fas fa-flag' },
|
|
|
|
|
or: { in: ['boolean', 'boolean'], out: 'boolean', category: 'logical', icon: 'fas fa-flag' },
|
|
|
|
|
and: { in: ['boolean', 'boolean'], out: 'boolean', category: 'logical', icon: 'fas fa-flag' },
|
|
|
|
|
for: { in: ['number', 'function'], out: null, category: 'flow', icon: 'ti ti-recycle' },
|
|
|
|
|
not: { in: ['boolean'], out: 'boolean', category: 'logical', icon: 'ti ti-flag' },
|
|
|
|
|
or: { in: ['boolean', 'boolean'], out: 'boolean', category: 'logical', icon: 'ti ti-flag' },
|
|
|
|
|
and: { in: ['boolean', 'boolean'], out: 'boolean', category: 'logical', icon: 'ti ti-flag' },
|
|
|
|
|
add: { in: ['number', 'number'], out: 'number', category: 'operation', icon: 'ti ti-plus' },
|
|
|
|
|
subtract: { in: ['number', 'number'], out: 'number', category: 'operation', icon: 'ti ti-minus' },
|
|
|
|
|
multiply: { in: ['number', 'number'], out: 'number', category: 'operation', icon: 'ti ti-x' },
|
|
|
|
|
divide: { in: ['number', 'number'], out: 'number', category: 'operation', icon: 'fas fa-divide' },
|
|
|
|
|
mod: { in: ['number', 'number'], out: 'number', category: 'operation', icon: 'fas fa-divide' },
|
|
|
|
|
round: { in: ['number'], out: 'number', category: 'operation', icon: 'fas fa-calculator' },
|
|
|
|
|
eq: { in: [0, 0], out: 'boolean', category: 'comparison', icon: 'fas fa-equals' },
|
|
|
|
|
notEq: { in: [0, 0], out: 'boolean', category: 'comparison', icon: 'fas fa-not-equal' },
|
|
|
|
|
gt: { in: ['number', 'number'], out: 'boolean', category: 'comparison', icon: 'fas fa-greater-than' },
|
|
|
|
|
lt: { in: ['number', 'number'], out: 'boolean', category: 'comparison', icon: 'fas fa-less-than' },
|
|
|
|
|
gtEq: { in: ['number', 'number'], out: 'boolean', category: 'comparison', icon: 'fas fa-greater-than-equal' },
|
|
|
|
|
ltEq: { in: ['number', 'number'], out: 'boolean', category: 'comparison', icon: 'fas fa-less-than-equal' },
|
|
|
|
|
divide: { in: ['number', 'number'], out: 'number', category: 'operation', icon: 'ti ti-divide' },
|
|
|
|
|
mod: { in: ['number', 'number'], out: 'number', category: 'operation', icon: 'ti ti-divide' },
|
|
|
|
|
round: { in: ['number'], out: 'number', category: 'operation', icon: 'ti ti-calculator' },
|
|
|
|
|
eq: { in: [0, 0], out: 'boolean', category: 'comparison', icon: 'ti ti-equal' },
|
|
|
|
|
notEq: { in: [0, 0], out: 'boolean', category: 'comparison', icon: 'ti ti-equal-not' },
|
|
|
|
|
gt: { in: ['number', 'number'], out: 'boolean', category: 'comparison', icon: 'ti ti-math-greater' },
|
|
|
|
|
lt: { in: ['number', 'number'], out: 'boolean', category: 'comparison', icon: 'ti ti-math-lower' },
|
|
|
|
|
gtEq: { in: ['number', 'number'], out: 'boolean', category: 'comparison', icon: 'ti ti-math-equal-greater' },
|
|
|
|
|
ltEq: { in: ['number', 'number'], out: 'boolean', category: 'comparison', icon: 'ti ti-math-equal-lower' },
|
|
|
|
|
strLen: { in: ['string'], out: 'number', category: 'text', icon: 'ti ti-quote' },
|
|
|
|
|
strPick: { in: ['string', 'number'], out: 'string', category: 'text', icon: 'ti ti-quote' },
|
|
|
|
|
strReplace: { in: ['string', 'string', 'string'], out: 'string', category: 'text', icon: 'ti ti-quote' },
|
|
|
|
|
strReverse: { in: ['string'], out: 'string', category: 'text', icon: 'ti ti-quote' },
|
|
|
|
|
join: { in: ['stringArray', 'string'], out: 'string', category: 'text', icon: 'ti ti-quote' },
|
|
|
|
|
stringToNumber: { in: ['string'], out: 'number', category: 'convert', icon: 'fas fa-exchange-alt' },
|
|
|
|
|
numberToString: { in: ['number'], out: 'string', category: 'convert', icon: 'fas fa-exchange-alt' },
|
|
|
|
|
splitStrByLine: { in: ['string'], out: 'stringArray', category: 'convert', icon: 'fas fa-exchange-alt' },
|
|
|
|
|
pick: { in: [null, 'number'], out: null, category: 'list', icon: 'fas fa-indent' },
|
|
|
|
|
listLen: { in: [null], out: 'number', category: 'list', icon: 'fas fa-indent' },
|
|
|
|
|
rannum: { in: ['number', 'number'], out: 'number', category: 'random', icon: 'fas fa-dice' },
|
|
|
|
|
dailyRannum: { in: ['number', 'number'], out: 'number', category: 'random', icon: 'fas fa-dice' },
|
|
|
|
|
seedRannum: { in: [null, 'number', 'number'], out: 'number', category: 'random', icon: 'fas fa-dice' },
|
|
|
|
|
random: { in: ['number'], out: 'boolean', category: 'random', icon: 'fas fa-dice' },
|
|
|
|
|
dailyRandom: { in: ['number'], out: 'boolean', category: 'random', icon: 'fas fa-dice' },
|
|
|
|
|
seedRandom: { in: [null, 'number'], out: 'boolean', category: 'random', icon: 'fas fa-dice' },
|
|
|
|
|
randomPick: { in: [0], out: 0, category: 'random', icon: 'fas fa-dice' },
|
|
|
|
|
dailyRandomPick: { in: [0], out: 0, category: 'random', icon: 'fas fa-dice' },
|
|
|
|
|
seedRandomPick: { in: [null, 0], out: 0, category: 'random', icon: 'fas fa-dice' },
|
|
|
|
|
DRPWPM: { in: ['stringArray'], out: 'string', category: 'random', icon: 'fas fa-dice' }, // dailyRandomPickWithProbabilityMapping
|
|
|
|
|
stringToNumber: { in: ['string'], out: 'number', category: 'convert', icon: 'ti ti-arrows-right-left' },
|
|
|
|
|
numberToString: { in: ['number'], out: 'string', category: 'convert', icon: 'ti ti-arrows-right-left' },
|
|
|
|
|
splitStrByLine: { in: ['string'], out: 'stringArray', category: 'convert', icon: 'ti ti-arrows-right-left' },
|
|
|
|
|
pick: { in: [null, 'number'], out: null, category: 'list', icon: 'ti ti-indent-increase' },
|
|
|
|
|
listLen: { in: [null], out: 'number', category: 'list', icon: 'ti ti-indent-increase' },
|
|
|
|
|
rannum: { in: ['number', 'number'], out: 'number', category: 'random', icon: 'ti ti-dice' },
|
|
|
|
|
dailyRannum: { in: ['number', 'number'], out: 'number', category: 'random', icon: 'ti ti-dice' },
|
|
|
|
|
seedRannum: { in: [null, 'number', 'number'], out: 'number', category: 'random', icon: 'ti ti-dice' },
|
|
|
|
|
random: { in: ['number'], out: 'boolean', category: 'random', icon: 'ti ti-dice' },
|
|
|
|
|
dailyRandom: { in: ['number'], out: 'boolean', category: 'random', icon: 'ti ti-dice' },
|
|
|
|
|
seedRandom: { in: [null, 'number'], out: 'boolean', category: 'random', icon: 'ti ti-dice' },
|
|
|
|
|
randomPick: { in: [0], out: 0, category: 'random', icon: 'ti ti-dice' },
|
|
|
|
|
dailyRandomPick: { in: [0], out: 0, category: 'random', icon: 'ti ti-dice' },
|
|
|
|
|
seedRandomPick: { in: [null, 0], out: 0, category: 'random', icon: 'ti ti-dice' },
|
|
|
|
|
DRPWPM: { in: ['stringArray'], out: 'string', category: 'random', icon: 'ti ti-dice' }, // dailyRandomPickWithProbabilityMapping
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export function initHpmlLib(expr: Expr, scope: HpmlScope, randomSeed: string, visitor?: any) {
|
|
|
|
|