@etherspot/data-utils
Version:
Etherspot Data Utils
1 lines • 2.07 kB
Source Map (JSON)
{"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":[]}