{"code":"import * as tslib_1 from \"tslib\";\r\nimport { Unit } from \"./unit\";\r\nimport { Mdo } from \"./mdo\";\r\nimport { Stats } from \"./stats\";\r\nimport { ModelDelta, DeltaStatus } from \"../base/model-delta\";\r\nimport { ArgumentError } from \"@iotile/iotile-common\";\r\nvar Stream = /** @class */ (function () {\r\n    function Stream(data) {\r\n        if (data === void 0) { data = {}; }\r\n        this.enabled = true;\r\n        this.inputUnit = null;\r\n        this.outputUnit = null;\r\n        this.slug = data.slug;\r\n        this.id = data.id;\r\n        this.variable = data.variable;\r\n        this.device = data.device;\r\n        this.project = data.project;\r\n        this.mdoType = data.mdo_type || null;\r\n        this.mdo = new Mdo(data);\r\n        this.stats = new Stats();\r\n        this.rawValueFormat = data.raw_value_format || '<L';\r\n        this._rawData = data;\r\n        this.projectId = data.project_id;\r\n        this.createdOn = data.created_on;\r\n        this.type = data.data_type;\r\n        this.enabled = data.enabled || true;\r\n        //We always clear isModified since it will be set by the ProjectOverlay on an already built object\r\n        this.isModified = false;\r\n        this.data = [];\r\n        this.dataLabel = data.data_label;\r\n        if (data.block) {\r\n            this.block = data.block;\r\n        }\r\n        if (data.var_name) {\r\n            this.variableName = data.var_name;\r\n        }\r\n        if (data.var_type) {\r\n            this.variableType = data.var_type;\r\n        }\r\n        this.variableLocalId = data.var_lid;\r\n        if (data.input_unit) {\r\n            this.inputUnit = new Unit(data.input_unit);\r\n        }\r\n        if (data.output_unit) {\r\n            this.outputUnit = new Unit(data.output_unit);\r\n        }\r\n    }\r\n    Stream.prototype.loadData = function (data) {\r\n        this.slug = data.slug;\r\n        this.id = data.id;\r\n        this.variable = data.variable;\r\n        this.device = data.device;\r\n        this.project = data.project;\r\n        this.mdoType = data.mdo_type || null;\r\n        this.mdo = new Mdo(data);\r\n        this.stats = new Stats();\r\n        this.rawValueFormat = data.raw_value_format || '<L';\r\n        this._rawData = data;\r\n        this.projectId = data.project_id;\r\n        this.createdOn = data.created_on;\r\n        this.type = data.data_type;\r\n        this.enabled = data.enabled || true;\r\n        //We always clear isModified since it will be set by the ProjectOverlay on an already built object\r\n        this.isModified = false;\r\n        this.data = [];\r\n        this.dataLabel = data.data_label;\r\n        if (data.block) {\r\n            this.block = data.block;\r\n        }\r\n        if (data.var_name) {\r\n            this.variableName = data.var_name;\r\n        }\r\n        if (data.var_type) {\r\n            this.variableType = data.var_type;\r\n        }\r\n        this.variableLocalId = data.var_lid;\r\n        if (data.input_unit) {\r\n            this.inputUnit = new Unit(data.input_unit);\r\n        }\r\n        if (data.output_unit) {\r\n            this.outputUnit = new Unit(data.output_unit);\r\n        }\r\n    };\r\n    Stream.prototype.toJson = function () {\r\n        var obj = {\r\n            id: this.id,\r\n            project_id: this.projectId,\r\n            project: this.project,\r\n            device: this.device,\r\n            variable: this.variable,\r\n            data_label: this.dataLabel,\r\n            raw_value_format: this.rawValueFormat,\r\n            mdo_type: this.mdoType,\r\n            slug: this.slug,\r\n            type: this.type,\r\n            created_on: this.createdOn,\r\n            enabled: this.enabled,\r\n            input_unit: null,\r\n            output_unit: null\r\n        };\r\n        if (this.inputUnit) {\r\n            obj['input_unit'] = this.inputUnit.toJson();\r\n        }\r\n        if (this.outputUnit) {\r\n            obj['output_unit'] = this.outputUnit.toJson();\r\n        }\r\n        this.mdo.addToObject(obj, true);\r\n        return obj;\r\n    };\r\n    Stream.prototype.addStats = function (stats) {\r\n        this.stats = stats;\r\n    };\r\n    Stream.prototype.addData = function (data) {\r\n        this.data = data;\r\n    };\r\n    Stream.prototype.getLocalVarId = function () {\r\n        if (this.variable) {\r\n            var elements = this.variable.split(\"--\");\r\n            if (elements.length === 3) {\r\n                return elements[2];\r\n            }\r\n        }\r\n        return \"\";\r\n    };\r\n    Stream.prototype.resetData = function () {\r\n        this.data = [];\r\n    };\r\n    Stream.prototype.getPatchPayload = function () {\r\n        var basic = {\r\n            mdo_type: this.mdoType,\r\n            enabled: this.enabled\r\n        };\r\n        var payload = Object.assign(basic, this.mdo.getPatchPayload());\r\n        if (this.inputUnit) {\r\n            payload['input_unit'] = this.inputUnit.slug;\r\n        }\r\n        if (this.outputUnit) {\r\n            payload['output_unit'] = this.outputUnit.slug;\r\n        }\r\n        if (this.dataLabel) {\r\n            payload['data_label'] = this.dataLabel;\r\n        }\r\n        return payload;\r\n    };\r\n    return Stream;\r\n}());\r\nexport { Stream };\r\nvar StreamDelta = /** @class */ (function (_super) {\r\n    tslib_1.__extends(StreamDelta, _super);\r\n    function StreamDelta() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    return StreamDelta;\r\n}(ModelDelta));\r\nexport { StreamDelta };\r\nvar StreamLabelDelta = /** @class */ (function (_super) {\r\n    tslib_1.__extends(StreamLabelDelta, _super);\r\n    function StreamLabelDelta(oldLabel, newLabel, slug, guid) {\r\n        var _this = _super.call(this, StreamLabelDelta.ClassName, slug, guid) || this;\r\n        _this.oldLabel = oldLabel;\r\n        _this.newLabel = newLabel;\r\n        return _this;\r\n    }\r\n    StreamLabelDelta.prototype.check = function (stream) {\r\n        if (stream.dataLabel == this.newLabel) {\r\n            return DeltaStatus.Outdated;\r\n        }\r\n        else if (stream.dataLabel !== this.oldLabel) {\r\n            return DeltaStatus.Conflicted;\r\n        }\r\n        return DeltaStatus.Applies;\r\n    };\r\n    StreamLabelDelta.prototype.apply = function (stream) {\r\n        stream.dataLabel = this.newLabel;\r\n    };\r\n    StreamLabelDelta.prototype.getPatch = function () {\r\n        return {\r\n            data_label: this.newLabel\r\n        };\r\n    };\r\n    StreamLabelDelta.prototype.serializeArguments = function () {\r\n        return {\r\n            oldLabel: this.oldLabel,\r\n            newLabel: this.newLabel\r\n        };\r\n    };\r\n    StreamLabelDelta.Deserialize = function (guid, slug, serializedArgs) {\r\n        return new StreamLabelDelta(serializedArgs.oldLabel, serializedArgs.newLabel, slug, guid);\r\n    };\r\n    StreamLabelDelta.ClassName = \"StreamLabelDelta\";\r\n    return StreamLabelDelta;\r\n}(StreamDelta));\r\nexport { StreamLabelDelta };\r\nvar StreamMDODelta = /** @class */ (function (_super) {\r\n    tslib_1.__extends(StreamMDODelta, _super);\r\n    function StreamMDODelta(oldMDO, oldType, newMDO, newType, slug, guid) {\r\n        var _this = _super.call(this, StreamMDODelta.ClassName, slug, guid) || this;\r\n        _this.oldMDO = oldMDO;\r\n        _this.oldType = oldType;\r\n        _this.newMDO = newMDO;\r\n        _this.newType = newType;\r\n        return _this;\r\n    }\r\n    StreamMDODelta.prototype.check = function (stream) {\r\n        if (stream.mdo.equal(this.newMDO) && stream.mdoType == this.newType) {\r\n            return DeltaStatus.Outdated;\r\n        }\r\n        else if (!stream.mdo.equal(this.oldMDO) || stream.mdoType !== this.oldType) {\r\n            return DeltaStatus.Conflicted;\r\n        }\r\n        return DeltaStatus.Applies;\r\n    };\r\n    StreamMDODelta.prototype.apply = function (stream) {\r\n        stream.mdo.setFromMdo(this.newMDO);\r\n        stream.mdoType = this.newType;\r\n    };\r\n    StreamMDODelta.prototype.getPatch = function () {\r\n        return {\r\n            mdo_type: this.newType,\r\n            mdo_label: this.newMDO.label,\r\n            multiplication_factor: this.newMDO.m,\r\n            division_factor: this.newMDO.d,\r\n            offset: this.newMDO.o\r\n        };\r\n    };\r\n    StreamMDODelta.prototype.serializeArguments = function () {\r\n        return {\r\n            oldMDO: this.oldMDO.toJson(false),\r\n            oldType: this.oldType,\r\n            newMDO: this.newMDO.toJson(false),\r\n            newType: this.newType\r\n        };\r\n    };\r\n    StreamMDODelta.Deserialize = function (guid, slug, serializedArgs) {\r\n        var oldMDO = new Mdo(serializedArgs.oldMDO);\r\n        var oldType = serializedArgs.oldType;\r\n        var newMDO = new Mdo(serializedArgs.newMDO);\r\n        var newType = serializedArgs.newType;\r\n        return new StreamMDODelta(oldMDO, oldType, newMDO, newType, slug, guid);\r\n    };\r\n    StreamMDODelta.ClassName = \"StreamMDODelta\";\r\n    return StreamMDODelta;\r\n}(StreamDelta));\r\nexport { StreamMDODelta };\r\nexport var UnitType;\r\n(function (UnitType) {\r\n    UnitType[UnitType[\"Input\"] = 0] = \"Input\";\r\n    UnitType[UnitType[\"Output\"] = 1] = \"Output\";\r\n})(UnitType || (UnitType = {}));\r\n/*\r\n * A delta representing a change in units for a stream.\r\n * This class has a slight complication in that the old units for a stream\r\n * may be null if they were never initialized.\r\n */\r\nvar StreamUnitsDelta = /** @class */ (function (_super) {\r\n    tslib_1.__extends(StreamUnitsDelta, _super);\r\n    function StreamUnitsDelta(oldUnits, newUnits, type, slug, classname, guid) {\r\n        var _this = _super.call(this, classname, slug, guid) || this;\r\n        _this.oldUnit = oldUnits;\r\n        _this.newUnit = newUnits;\r\n        _this.type = type;\r\n        if (_this.newUnit == null) {\r\n            throw new ArgumentError(\"You must always set a valid new unit in StreamUnitsDelta\");\r\n        }\r\n        return _this;\r\n    }\r\n    StreamUnitsDelta.prototype.getSlug = function (unit) {\r\n        if (unit == null) {\r\n            return null;\r\n        }\r\n        return unit.slug;\r\n    };\r\n    StreamUnitsDelta.prototype.check = function (stream) {\r\n        var unitSlug = this.getSlug(stream.inputUnit);\r\n        if (this.type == UnitType.Output) {\r\n            unitSlug = this.getSlug(stream.outputUnit);\r\n        }\r\n        var oldSlug = this.getSlug(this.oldUnit);\r\n        var newSlug = this.getSlug(this.newUnit);\r\n        if (unitSlug === newSlug) {\r\n            return DeltaStatus.Outdated;\r\n        }\r\n        else if (unitSlug === oldSlug) {\r\n            return DeltaStatus.Applies;\r\n        }\r\n        else {\r\n            return DeltaStatus.Conflicted;\r\n        }\r\n    };\r\n    /*\r\n     * If the old units are null we need to create them from scratch\r\n     * otherwise we can just update them with our new data.\r\n     */\r\n    StreamUnitsDelta.prototype.apply = function (stream) {\r\n        if (this.type == UnitType.Input && stream.inputUnit == null) {\r\n            stream.inputUnit = new Unit(this.newUnit.toJson());\r\n        }\r\n        else if (this.type == UnitType.Output && stream.outputUnit == null) {\r\n            stream.outputUnit = new Unit(this.newUnit.toJson());\r\n        }\r\n        else {\r\n            var unit = stream.outputUnit;\r\n            if (this.type == UnitType.Input) {\r\n                unit = stream.inputUnit;\r\n            }\r\n            if (unit) {\r\n                unit.setFromUnit(this.newUnit);\r\n            }\r\n        }\r\n    };\r\n    StreamUnitsDelta.prototype.getPatch = function () {\r\n        var paramName = 'output_unit';\r\n        if (this.type == UnitType.Input) {\r\n            paramName = 'input_unit';\r\n        }\r\n        var patch = {};\r\n        patch[paramName] = this.newUnit.slug;\r\n        return patch;\r\n    };\r\n    StreamUnitsDelta.prototype.serializeArguments = function () {\r\n        return {\r\n            oldUnit: this.oldUnit ? this.oldUnit.toJson() : null,\r\n            newUnit: this.newUnit.toJson(),\r\n            type: this.type\r\n        };\r\n    };\r\n    return StreamUnitsDelta;\r\n}(StreamDelta));\r\nexport { StreamUnitsDelta };\r\nvar StreamInputUnitsDelta = /** @class */ (function (_super) {\r\n    tslib_1.__extends(StreamInputUnitsDelta, _super);\r\n    function StreamInputUnitsDelta(oldUnits, newUnits, slug, guid) {\r\n        return _super.call(this, oldUnits, newUnits, UnitType.Input, slug, StreamInputUnitsDelta.ClassName, guid) || this;\r\n    }\r\n    StreamInputUnitsDelta.Deserialize = function (guid, slug, serializedArgs) {\r\n        var oldUnit = null;\r\n        if (serializedArgs.oldUnit) {\r\n            oldUnit = new Unit(serializedArgs.oldUnit);\r\n        }\r\n        var newUnit = new Unit(serializedArgs.newUnit);\r\n        return new StreamInputUnitsDelta(oldUnit, newUnit, slug, guid);\r\n    };\r\n    StreamInputUnitsDelta.ClassName = \"StreamInputUnitsDelta\";\r\n    return StreamInputUnitsDelta;\r\n}(StreamUnitsDelta));\r\nexport { StreamInputUnitsDelta };\r\nvar StreamOutputUnitsDelta = /** @class */ (function (_super) {\r\n    tslib_1.__extends(StreamOutputUnitsDelta, _super);\r\n    function StreamOutputUnitsDelta(oldUnits, newUnits, slug, guid) {\r\n        return _super.call(this, oldUnits, newUnits, UnitType.Output, slug, StreamOutputUnitsDelta.ClassName, guid) || this;\r\n    }\r\n    StreamOutputUnitsDelta.Deserialize = function (guid, slug, serializedArgs) {\r\n        var oldUnit = null;\r\n        if (serializedArgs.oldUnit) {\r\n            oldUnit = new Unit(serializedArgs.oldUnit);\r\n        }\r\n        var newUnit = new Unit(serializedArgs.newUnit);\r\n        return new StreamOutputUnitsDelta(oldUnit, newUnit, slug, guid);\r\n    };\r\n    StreamOutputUnitsDelta.ClassName = \"StreamOutputUnitsDelta\";\r\n    return StreamOutputUnitsDelta;\r\n}(StreamUnitsDelta));\r\nexport { StreamOutputUnitsDelta };\r\n//# sourceMappingURL=stream.js.map","map":{"version":3,"file":"stream.js","sourceRoot":"","sources":["../src/models/stream.ts"],"names":[],"mappings":"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"},"dts":{"name":"/Users/jheadley/Documents/GitHub/ts-iotile-cloud/models/stream.d.ts","text":"import { SerializedUnit, Unit } from \"./unit\";\r\nimport { DataPoint } from \"./datapoint\";\r\nimport { Mdo } from \"./mdo\";\r\nimport { Stats } from \"./stats\";\r\nimport { ModelDelta, DeltaStatus } from \"../base/model-delta\";\r\nexport interface StreamDictionary {\r\n    [index: string]: Stream;\r\n}\r\nexport interface SerializedStream {\r\n    id: string;\r\n    project_id: string;\r\n    project: string;\r\n    slug: string;\r\n    device: string;\r\n    variable: string;\r\n    raw_value_format: string;\r\n    data_label: string;\r\n    input_unit: SerializedUnit;\r\n    output_unit: SerializedUnit;\r\n    mdo_type: string;\r\n    mdo_label: string;\r\n    multiplication_factor: number;\r\n    division_factor: number;\r\n    offset: number;\r\n    type: string;\r\n    created_on: string;\r\n    enabled: boolean;\r\n}\r\nexport declare class Stream {\r\n    [key: string]: any;\r\n    id: string;\r\n    slug: string;\r\n    variable: string;\r\n    device: string;\r\n    project: string;\r\n    enabled: boolean;\r\n    createdOn: string;\r\n    type: string;\r\n    projectId: string;\r\n    data: Array<DataPoint>;\r\n    mdo: Mdo;\r\n    inputUnit: Unit | null;\r\n    outputUnit: Unit | null;\r\n    template?: string;\r\n    org?: string;\r\n    block?: string;\r\n    variableName?: string;\r\n    variableType?: string;\r\n    variableLocalId?: number;\r\n    mdoType?: string;\r\n    dataLabel?: string;\r\n    stats?: Stats;\r\n    isModified?: boolean;\r\n    rawValueFormat?: string;\r\n    private _rawData;\r\n    constructor(data?: any);\r\n    loadData(data: any): void;\r\n    toJson(): SerializedStream;\r\n    addStats(stats: Stats): void;\r\n    addData(data: Array<DataPoint>): void;\r\n    getLocalVarId(): string;\r\n    resetData(): void;\r\n    getPatchPayload(): any;\r\n}\r\nexport declare abstract class StreamDelta extends ModelDelta<Stream> {\r\n}\r\nexport declare class StreamLabelDelta extends StreamDelta {\r\n    private oldLabel;\r\n    private newLabel;\r\n    static ClassName: string;\r\n    constructor(oldLabel: string, newLabel: string, slug: string, guid?: string);\r\n    check(stream: Stream): DeltaStatus;\r\n    apply(stream: Stream): void;\r\n    getPatch(): {};\r\n    protected serializeArguments(): {};\r\n    static Deserialize(guid: string, slug: string, serializedArgs: any): StreamLabelDelta;\r\n}\r\nexport declare class StreamMDODelta extends StreamDelta {\r\n    private oldMDO;\r\n    private oldType;\r\n    private newMDO;\r\n    private newType;\r\n    static ClassName: string;\r\n    constructor(oldMDO: Mdo, oldType: string, newMDO: Mdo, newType: string, slug: string, guid?: string);\r\n    check(stream: Stream): DeltaStatus;\r\n    apply(stream: Stream): void;\r\n    getPatch(): {};\r\n    protected serializeArguments(): {};\r\n    static Deserialize(guid: string, slug: string, serializedArgs: any): StreamMDODelta;\r\n}\r\nexport declare enum UnitType {\r\n    Input = 0,\r\n    Output = 1\r\n}\r\nexport declare class StreamUnitsDelta extends StreamDelta {\r\n    private oldUnit;\r\n    private newUnit;\r\n    private type;\r\n    constructor(oldUnits: Unit | null, newUnits: Unit, type: UnitType, slug: string, classname: string, guid?: string);\r\n    private getSlug;\r\n    check(stream: Stream): DeltaStatus;\r\n    apply(stream: Stream): void;\r\n    getPatch(): {};\r\n    protected serializeArguments(): {};\r\n}\r\nexport declare class StreamInputUnitsDelta extends StreamUnitsDelta {\r\n    static ClassName: string;\r\n    constructor(oldUnits: Unit | null, newUnits: Unit, slug: string, guid?: string);\r\n    static Deserialize(guid: string, slug: string, serializedArgs: any): StreamInputUnitsDelta;\r\n}\r\nexport declare class StreamOutputUnitsDelta extends StreamUnitsDelta {\r\n    static ClassName: string;\r\n    constructor(oldUnits: Unit | null, newUnits: Unit, slug: string, guid?: string);\r\n    static Deserialize(guid: string, slug: string, serializedArgs: any): StreamOutputUnitsDelta;\r\n}\r\n"}}
