{"version":3,"sources":["../../src/sdk/common/rxjs/object.subject.ts"],"sourcesContent":["import { Observable, BehaviorSubject } from 'rxjs';\nimport { deepCompare } from '../utils';\nimport { distinctUniqueKey } from './distinct-unique-key.operator';\n\n/**\n * @ignore\n */\nexport class ObjectSubject<T extends {}, K extends keyof T = keyof T> extends BehaviorSubject<T> {\n    constructor(value: T = null) {\n        super(value);\n    }\n\n    observeKey<R = T[K]>(key: K): Observable<R> {\n        return this.pipe<any>(distinctUniqueKey(key));\n    }\n\n    next(value: T): void {\n        if (!value) {\n            super.next(null);\n        } else if (\n            !this.value || //\n            !deepCompare(this.prepareForCompare(this.value), this.prepareForCompare(value))\n        ) {\n            super.next(this.prepareForNext(value));\n        }\n    }\n\n    nextData(value: T): void {\n        if (!value) {\n            super.next('' as any);\n        } else if (\n            !this.value || //\n            !deepCompare(this.prepareForCompare(this.value), this.prepareForCompare(value))\n        ) {\n            super.next(this.prepareForNext(value));\n        }\n    }\n\n    prepareForNext(value: T): T {\n        return value;\n    }\n\n    prepareForCompare(value: T): any {\n        return value;\n    }\n}"],"mappings":";;;;;;;;AAAA,SAAqB,uBAAuB;AAOrC,IAAM,gBAAN,cAAuE,gBAAmB;AAAA,EAC7F,YAAY,QAAW,MAAM;AACzB,UAAM,KAAK;AAAA,EACf;AAAA,EAEA,WAAqB,KAAuB;AACxC,WAAO,KAAK,KAAU,kBAAkB,GAAG,CAAC;AAAA,EAChD;AAAA,EAEA,KAAK,OAAgB;AACjB,QAAI,CAAC,OAAO;AACR,YAAM,KAAK,IAAI;AAAA,IACnB,WACI,CAAC,KAAK;AAAA,IACN,CAAC,YAAY,KAAK,kBAAkB,KAAK,KAAK,GAAG,KAAK,kBAAkB,KAAK,CAAC,GAChF;AACE,YAAM,KAAK,KAAK,eAAe,KAAK,CAAC;AAAA,IACzC;AAAA,EACJ;AAAA,EAEA,SAAS,OAAgB;AACrB,QAAI,CAAC,OAAO;AACR,YAAM,KAAK,EAAS;AAAA,IACxB,WACI,CAAC,KAAK;AAAA,IACN,CAAC,YAAY,KAAK,kBAAkB,KAAK,KAAK,GAAG,KAAK,kBAAkB,KAAK,CAAC,GAChF;AACE,YAAM,KAAK,KAAK,eAAe,KAAK,CAAC;AAAA,IACzC;AAAA,EACJ;AAAA,EAEA,eAAe,OAAa;AACxB,WAAO;AAAA,EACX;AAAA,EAEA,kBAAkB,OAAe;AAC7B,WAAO;AAAA,EACX;AACJ;","names":[]}