Adjust API for properties metadata

This commit is contained in:
BoykoAlex
2017-08-24 20:05:59 -04:00
parent 78e7df47b3
commit 47c08d7906
3 changed files with 7 additions and 5 deletions

View File

@@ -100,8 +100,10 @@ class Metadata implements Flo.ElementMetadata {
return Promise.resolve(this.rawData.properties.find(p => p.id === property));
}
properties() : Promise<Array<Flo.PropertyMetadata>> {
return Promise.resolve(this.rawData.properties);
properties() : Promise<Map<string,Flo.PropertyMetadata>> {
let propertiesMap = new Map<string, Flo.PropertyMetadata>();
this.rawData.properties.forEach(p => propertiesMap.set(p.id, p));
return Promise.resolve(propertiesMap);
}
}

View File

@@ -35,7 +35,7 @@ export namespace Flo {
readonly group : string;
description?() : Promise<string>;
get(property : String) : Promise<PropertyMetadata>;
properties() : Promise<Array<PropertyMetadata>>;
properties() : Promise<Map<string, PropertyMetadata>>;
readonly metadata? : ExtraMetadata;
readonly [propName : string] : any;
}
@@ -218,7 +218,7 @@ export namespace Flo {
group: group,
unresolved: true,
get: (property : String) => new Promise(resolve => resolve()),
properties: () => Promise.resolve([])
properties: () => Promise.resolve(new Map<string, PropertyMetadata>())
};
}
}

View File

@@ -123,7 +123,7 @@ export namespace Properties {
protected createProperties() : Promise<Array<Property>> {
let metadata : Flo.ElementMetadata = this.cell.attr('metadata');
return Promise.resolve(metadata.properties().then(propsMetadata => propsMetadata.map(m => this.createProperty(m))));
return Promise.resolve(metadata.properties().then(propsMetadata => Array.from(propsMetadata.values()).map(m => this.createProperty(m))));
}
protected createProperty(metadata : Flo.PropertyMetadata) : Property {