import Template from 'template'; import valueIsUrl from 'utility/value-is-url'; import getNodeParameters from 'utility/get-node-parameters'; import FieldValue, { PrimitiveValue } from 'type/field-value'; interface Input { readonly value: FieldValue; } class FieldValueTemplate extends Template { protected getHtml(): string { if (this.valueIsList()) { return this.formatValueAsList(); } if (this.valueIsUrl()) { return this.formatValueAsUrl(); } return this.formatValueAsString(); } private valueIsList(): boolean { const value = this.getValue(); return Array.isArray(value); } private valueIsUrl(): boolean { const value = this.getValue(); return valueIsUrl(value); } private formatValueAsList(): string { const value = this.getValue(); const list = value as PrimitiveValue[]; const serialized_elements = list.map((element) => { return this.serializeListElement(element); }); const list_html = serialized_elements.join('\n'); return `