From 47c08d7906d0c50718be1d1007f8cb2d8a422e0f Mon Sep 17 00:00:00 2001 From: BoykoAlex Date: Thu, 24 Aug 2017 20:05:59 -0400 Subject: [PATCH] Adjust API for properties metadata --- src/demo/app/metamodel.ts | 6 ++++-- src/lib/src/shared/flo.common.ts | 4 ++-- src/lib/src/shared/flo.properties.ts | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/demo/app/metamodel.ts b/src/demo/app/metamodel.ts index 001aed8..89cb6f5 100644 --- a/src/demo/app/metamodel.ts +++ b/src/demo/app/metamodel.ts @@ -100,8 +100,10 @@ class Metadata implements Flo.ElementMetadata { return Promise.resolve(this.rawData.properties.find(p => p.id === property)); } - properties() : Promise> { - return Promise.resolve(this.rawData.properties); + properties() : Promise> { + let propertiesMap = new Map(); + this.rawData.properties.forEach(p => propertiesMap.set(p.id, p)); + return Promise.resolve(propertiesMap); } } diff --git a/src/lib/src/shared/flo.common.ts b/src/lib/src/shared/flo.common.ts index 5a1a428..9b45e00 100644 --- a/src/lib/src/shared/flo.common.ts +++ b/src/lib/src/shared/flo.common.ts @@ -35,7 +35,7 @@ export namespace Flo { readonly group : string; description?() : Promise; get(property : String) : Promise; - properties() : Promise>; + properties() : Promise>; 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()) }; } } diff --git a/src/lib/src/shared/flo.properties.ts b/src/lib/src/shared/flo.properties.ts index 42cd5a4..a97e66a 100644 --- a/src/lib/src/shared/flo.properties.ts +++ b/src/lib/src/shared/flo.properties.ts @@ -123,7 +123,7 @@ export namespace Properties { protected createProperties() : Promise> { 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 {