Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
const createLoremPropertyRecord = (column: ColumnDescription) => {
const lorem = new LoremIpsum();
const value = lorem.generateWords(5);
const v: PropertyValue = {
valueFormat: PropertyValueFormat.Primitive,
value,
displayValue: value,
};
const pd: PropertyDescription = {
typename: "text",
name: column.key,
displayLabel: column.label,
};
column.propertyDescription = pd;
return new PropertyRecord(v, pd);
};
const createEnumPropertyRecord = (rowIndex: number, column: ColumnDescription) => {
const value = rowIndex % 4;
const v: PropertyValue = {
valueFormat: PropertyValueFormat.Primitive,
value,
displayValue: value.toString(),
};
const pd: PropertyDescription = {
typename: "enum",
name: column.key,
displayLabel: column.label,
};
column.propertyDescription = pd;
const enumPropertyRecord = new PropertyRecord(v, pd);
enumPropertyRecord.property.enum = { choices: [], isStrict: false };
enumPropertyRecord.property.enum.choices = [
{ label: "Yellow", value: 0 },
{ label: "Red", value: 1 },
{ label: "Green", value: 2 },
{ label: "Blue", value: 3 },
];
return enumPropertyRecord;
};
const createPropertyRecord = (value: any, column: ColumnDescription, typename: string) => {
const v: PropertyValue = {
valueFormat: PropertyValueFormat.Primitive,
value,
displayValue: value,
};
const pd: PropertyDescription = {
typename,
name: column.key,
displayLabel: column.label,
};
column.propertyDescription = pd;
return new PropertyRecord(v, pd);
};
private getArrayProperties(items: PropertyRecord[]) {
const additionalProperties: PropertyRecord[] = [
new PropertyRecord(
{
valueFormat: PropertyValueFormat.Primitive,
value: items.length,
displayValue: items.length.toString(),
},
{
displayLabel: UiComponents.translate("property.arrayLength"),
name: "array_length",
typename: "int",
}),
];
const modifiedProperties: PropertyRecord[] = items.map((item, index): PropertyRecord => {
const newProperty = { ...item.property };
newProperty.displayLabel = `[${index + 1}]`;
newProperty.name = `${newProperty.name}_${index}`;
const v: PrimitiveValue = {
valueFormat: PropertyValueFormat.Primitive,
value,
displayValue: value,
};
const p: PropertyDescription = {
name: "tree-cell-editor",
displayLabel: "Tree Cell Editor",
typename,
};
if (editor)
p.editor = { name: editor, params: [] };
const record = new PropertyRecord(v, p);
record.description = "";
record.isReadonly = false;
return record;
}
const createRecord = (propertyDescription: PropertyDescription, typeDescription: TypeDescription,
value: Value, displayValue: DisplayValue, isReadOnly: boolean, isMerged: boolean, extendedData?: { [key: string]: any }): PropertyRecord => {
const valueObj = createValue(propertyDescription, typeDescription, isMerged, value, displayValue);
const record = new PropertyRecord(valueObj, propertyDescription);
if (displayValue)
record.description = createRecordDescription(typeDescription, displayValue);
if (isMerged)
record.isMerged = true;
if (isReadOnly)
record.isReadonly = true;
if (extendedData)
record.extendedData = extendedData;
if (displayValue && DisplayValue.isPrimitive(displayValue) && getLinks(displayValue).length !== 0)
record.links = {
matcher: getLinks,
};
return record;
};
function nodeToPropertyRecord(node: TreeModelNode) {
const value: PrimitiveValue = {
displayValue: node.item.label,
value: node.item.label,
valueFormat: PropertyValueFormat.Primitive,
};
const property: PropertyDescription = {
displayLabel: UiComponents.translate("general.label"),
typename: node.item && node.item.typename ? node.item.typename : "string",
name: "node_label",
};
return new PropertyRecord(value, property);
}