const v = data[key];
if (data.hasOwnProperty(key)) {
- const pattern = v === false
- ? `${field.replace(':', '\\:\\s*')}\\s*`
- : `${field.replace(':', '\\:\\s*')}\\:\\s*"[\\w|\\#|\\-|\\/]*"\\s*`;
+ let pattern: string;
+ if (v === false) {
+ pattern = `${field.replace(':', '\\:\\s*')}\\s*`;
+ } else if (key.startsWith('prop-')) {
+ // On properties, only remove key:value duplicates, allowing
+ // multiple properties with the same key.
+ pattern = `${field.replace(':', '\\:\\s*')}\\:\\s*${v}\\s*`;
+ } else {
+ pattern = `${field.replace(':', '\\:\\s*')}\\:\\s*[\\w|\\#|\\-|\\/]*\\s*`;
+ }
value = value.replace(new RegExp(pattern), '');
}
setProp: (propertyValue: PropertyValue, properties: PropertyValue[]) => {
dispatch<any>(changeAdvancedFormProperty(
'properties',
- [...properties.filter(e => e.keyID! !== propertyValue.keyID!), propertyValue]
+ [...properties, propertyValue]
));
dispatch<any>(resetAdvancedFormProperty('key'));
dispatch<any>(resetAdvancedFormProperty('value'));