amis-formula
Version:
负责 amis 里面的表达式实现,内置公式,编辑器等
47 lines (43 loc) • 1.08 kB
JavaScript
/**
* amis-formula v6.13.0
* Copyright 2021-2025 fex
*/
import { Evaluator } from './evalutor.js';
var entityMap = {
'&': '&',
'<': '<',
'>': '>',
'"': '"',
"'": ''',
'/': '/'
};
var escapeHtml = function (str) {
return String(str).replace(/[&<>"'\/]/g, function (s) {
return entityMap[s];
});
};
/**
* filter 是历史包袱,不建议使用。因为这是之前的语法,所以在公式解析里面做了兼容。
* 建议用 ${ LEFT(xxx) } 这种函数调用语法。
*/
var filters = {
raw: function (input) { return input; },
html: function (input) {
if (input == null) {
return input;
}
return escapeHtml(input);
}
};
function registerFilter(name, fn) {
filters[name] = fn;
Evaluator.extendDefaultFilters(filters);
}
function extendsFilters(value) {
Object.assign(filters, value);
Evaluator.extendDefaultFilters(filters);
}
function getFilters() {
return filters;
}
export { extendsFilters, filters, getFilters, registerFilter };