define([ 'lodash' ], function ( _ ) { var METADATA_BY_TYPE = { 'generator': { values: [ { key: "name", name: "Name", format: "string" }, { key: "utc", name: "Time", format: "utc", hints: { domain: 1 } }, { key: "yesterday", name: "Yesterday", format: "utc", hints: { domain: 2 } }, { key: "wavelengths", name: "Wavelength", unit: "nm", format: 'string[]', hints: { range: 4 } }, // Need to enable "LocalTimeSystem" plugin to make use of this // { // key: "local", // name: "Time", // format: "local-format", // source: "utc", // hints: { // domain: 3 // } // }, { key: "sin", name: "Sine", unit: "Hz", formatString: '%0.2f', hints: { range: 1 } }, { key: "cos", name: "Cosine", unit: "deg", formatString: '%0.2f', hints: { range: 2 } }, { key: "intensities", name: "Intensities", format: 'number[]', hints: { range: 3 } } ] }, 'example.state-generator': { values: [ { key: "name", name: "Name", format: "string" }, { key: "utc", name: "Time", format: "utc", hints: { domain: 1 } }, { key: "local", name: "Time", format: "utc", source: "utc", hints: { domain: 2 } }, { key: "state", source: "value", name: "State", format: "enum", enumerations: [ { value: 0, string: "OFF" }, { value: 1, string: "ON" } ], hints: { range: 1 } }, { key: "value", name: "Value", hints: { range: 2 } } ] } }; function GeneratorMetadataProvider() { } GeneratorMetadataProvider.prototype.supportsMetadata = function (domainObject) { return Object.prototype.hasOwnProperty.call(METADATA_BY_TYPE, domainObject.type); }; GeneratorMetadataProvider.prototype.getMetadata = function (domainObject) { return Object.assign( {}, domainObject.telemetry, METADATA_BY_TYPE[domainObject.type] ); }; return GeneratorMetadataProvider; });