1234567891011121314151617181920212223242526272829303132333435363738 |
- class CustomField {
- constructor(definition) {
- this.definition = definition;
- }
- }
- export class CustomFieldStringTemplate extends CustomField {
- constructor(definition) {
- super(definition);
- this.format = definition.settings.stringtemplateFormat;
- this.separator = definition.settings.stringtemplateSeparator;
- }
- getFormattedValue(rawValue) {
- const ret = (rawValue ?? [])
- .filter(value => !!value.trim())
- .map(value => {
- let _ret = this.format.replace(/[%$]\{.+?[^0-9]\}/g, function(_match) {
- let __ret;
- if (_match.match(/%\{value\}/i)) {
- __ret = value;
- } else {
- _match = _match.replace(/^\$/, "");
- try {
- const _json = JSON.parse(_match);
- __ret = value.replace(new RegExp(_json.regex, _json.flags), _json.replace);
- } catch (err) {
- console.error(err);
- }
- }
- return __ret;
- });
- return _ret;
- })
- .join(this.separator ?? '');
- return ret;
- }
- }
|