* ================================================================================
* Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
* ================================================================================
+ * Modifications Copyright (C) 2020 Nokia
+ * ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*/
import * as _ from "lodash";
-import {SchemaPropertyGroupModel, SchemaProperty} from '../aschema-property';
+import {SchemaPropertyGroupModel, SchemaProperty} from '../schema-property';
import { PROPERTY_DATA, PROPERTY_TYPES } from 'app/utils';
import { FilterPropertiesAssignmentData, PropertyBEModel, DerivedPropertyType, DerivedFEPropertyMap, DerivedFEProperty } from 'app/models';
valueObjOrig: any; //this is valueObj representation as saved in server
valueObjIsChanged: boolean;
derivedDataType: DerivedPropertyType;
+ origName: string;
constructor(property: PropertyBEModel){
super(property);
this.valueObj = null;
this.updateValueObjOrig();
this.resetValueObjValidation();
+ this.origName = this.name;
}
_.set(this.valueObj, childPropName, null);
}
} else {
- _.set(this.valueObj, childPropName, childProp.valueObj);
+ _.set(this.valueObj, childPropName, childProp.valueObj);
}
if (childProp.valueObjIsChanged) {
_.set(this.valueObjValidation, childPropName, childProp.valueObjIsValid);
if (!childProp.isChildOfListOrMap || childProp.derivedDataType !== DerivedPropertyType.MAP) {
return;
}
-
const childParentNames = this.getParentNamesArray(childProp.parentName);
const oldActualMapKey = childProp.getActualMapKey();
};
/* Returns array of individual parents for given prop path, with list/map UUIDs replaced with index/mapkey */
- public getParentNamesArray = (parentPropName: string, parentNames?: Array<string>): Array<string> => {
+ public getParentNamesArray = (parentPropName: string, parentNames?: Array<string>, noHashKeys:boolean = false): Array<string> => {
parentNames = parentNames || [];
if (parentPropName.indexOf("#") == -1) { return parentNames; } //finished recursing parents. return
let nameToInsert: string = parentProp.name;
if (parentProp.isChildOfListOrMap) {
- if (parentProp.derivedDataType == DerivedPropertyType.MAP) {
+ if (!noHashKeys && parentProp.derivedDataType == DerivedPropertyType.MAP && !parentProp.mapInlist) {
nameToInsert = parentProp.getActualMapKey();
} else { //LIST
let siblingProps = this.flattenedChildren.filter(prop => prop.parentName == parentProp.parentName).map(prop => prop.propertiesName);
}
parentNames.splice(0, 0, nameToInsert); //add prop name to array
- return this.getParentNamesArray(parentProp.parentName, parentNames); //continue recursing
+ return this.getParentNamesArray(parentProp.parentName, parentNames, noHashKeys); //continue recursing
}
public hasValueObjChanged() {
return JSON.stringify(valueObj);
}
- // return string value as is
- return valueObj;
+ // return trimmed string value
+ return valueObj.trim();
}
static parseValueObj(value: string, propertyType: PROPERTY_TYPES, propertyDerivedType: DerivedPropertyType, defaultValue?: string): any {