@dereekb/rxjs 9.24.44 → 9.24.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ## [9.24.45](https://github.com/dereekb/dbx-components/compare/v9.24.44-dev...v9.24.45) (2023-09-20)
6
+
7
+
8
+
5
9
  ## [9.24.44](https://github.com/dereekb/dbx-components/compare/v9.24.43-dev...v9.24.44) (2023-09-14)
6
10
 
7
11
 
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@dereekb/rxjs",
3
- "version": "9.24.44",
3
+ "version": "9.24.45",
4
4
  "type": "commonjs",
5
5
  "main": "./src/index.js",
6
6
  "types": "./src/index.d.ts",
7
7
  "dependencies": {},
8
8
  "peerDependencies": {
9
9
  "rxjs": "^7.5.0",
10
- "@dereekb/util": "9.24.44",
10
+ "@dereekb/util": "9.24.45",
11
11
  "lodash.isequal": "^4.5.0",
12
12
  "make-error": "^1.3.0",
13
13
  "class-validator": "^0.13.2",
@@ -19,7 +19,26 @@ export declare class ListLoadingStateContextInstance<L = unknown, S extends List
19
19
  * Returns the current values or an empty list.
20
20
  */
21
21
  readonly list$: Observable<L[]>;
22
+ /**
23
+ * Returns true while loading and the current value is considered empty.
24
+ */
25
+ readonly isEmptyLoading$: Observable<boolean>;
26
+ /**
27
+ * Whether or not the current value is empty.
28
+ *
29
+ * Only resolves when the first non-loading event has occured.
30
+ *
31
+ * After that, will return true if the value is empty even if loading a new value.
32
+ */
22
33
  readonly isEmpty$: Observable<boolean>;
34
+ /**
35
+ * Whether or not the current value is empty and not loading.
36
+ *
37
+ * Only resolves when the first non-loading event has occured.
38
+ *
39
+ * After that, will return true if the value is empty even if loading a new value.
40
+ */
41
+ readonly isEmptyAndNotLoading$: Observable<boolean>;
23
42
  protected loadingEventForLoadingPair(state: S, config?: LoadingEventForListLoadingStateConfig): ListLoadingStateContextEvent<L>;
24
43
  }
25
44
  export declare function listLoadingStateContext<T = unknown, S extends ListLoadingState<T> = ListLoadingState<T>>(config: LoadingStateContextInstanceInputConfig<S, LoadingEventForListLoadingStateConfig<S>>): ListLoadingStateContextInstance<T, S>;
@@ -16,8 +16,28 @@ class ListLoadingStateContextInstance extends loading_context_state_1.AbstractLo
16
16
  * Returns the current values or an empty list.
17
17
  */
18
18
  this.list$ = this.stream$.pipe((0, rxjs_1.map)((x) => { var _a; return (_a = x.value) !== null && _a !== void 0 ? _a : []; }), (0, rxjs_1.shareReplay)(1));
19
+ /**
20
+ * Returns true while loading and the current value is considered empty.
21
+ */
22
+ this.isEmptyLoading$ = this.stream$.pipe((0, rxjs_1.map)((x) => (0, loading_state_1.loadingStateIsLoading)(x) && (0, loading_state_list_1.listLoadingStateIsEmpty)(x)), (0, rxjs_1.distinctUntilChanged)(), (0, rxjs_1.shareReplay)(1));
23
+ /**
24
+ * Whether or not the current value is empty.
25
+ *
26
+ * Only resolves when the first non-loading event has occured.
27
+ *
28
+ * After that, will return true if the value is empty even if loading a new value.
29
+ */
19
30
  this.isEmpty$ = this.stream$.pipe((0, rxjs_1.skipWhile)((x) => (0, loading_state_1.loadingStateIsLoading)(x)), // skip until the first non-loading event has occured
20
31
  (0, loading_state_list_1.isListLoadingStateEmpty)(), (0, rxjs_1.distinctUntilChanged)());
32
+ /**
33
+ * Whether or not the current value is empty and not loading.
34
+ *
35
+ * Only resolves when the first non-loading event has occured.
36
+ *
37
+ * After that, will return true if the value is empty even if loading a new value.
38
+ */
39
+ this.isEmptyAndNotLoading$ = this.stream$.pipe((0, rxjs_1.skipWhile)((x) => (0, loading_state_1.loadingStateIsLoading)(x)), // skip until the first non-loading event has occured
40
+ (0, rxjs_1.map)((x) => !(0, loading_state_1.loadingStateIsLoading)(x) && (0, loading_state_list_1.listLoadingStateIsEmpty)(x)), (0, rxjs_1.distinctUntilChanged)());
21
41
  }
22
42
  loadingEventForLoadingPair(state, config = {}) {
23
43
  const { showLoadingOnNoValue } = config;
@@ -1 +1 @@
1
- {"version":3,"file":"loading.context.state.list.js","sourceRoot":"","sources":["../../../../../../packages/rxjs/src/lib/loading/loading.context.state.list.ts"],"names":[],"mappings":";;;AAAA,wCAAqF;AACrF,+BAAqF;AACrF,mDAA0E;AAC1E,mEAAwN;AACxN,6DAA+D;AAa/D;;GAEG;AACH,MAAa,+BAAkG,SAAQ,2DAAsH;IAA7O;;QACE;;WAEG;QACM,UAAK,GAAoB,IAAI,CAAC,OAAO,CAAC,IAAI,CACjD,IAAA,UAAG,EAAC,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,MAAA,CAAC,CAAC,KAAK,mCAAI,EAAE,CAAA,EAAA,CAAC,EACzB,IAAA,kBAAW,EAAC,CAAC,CAAC,CACf,CAAC;QACO,aAAQ,GAAwB,IAAI,CAAC,OAAO,CAAC,IAAI,CACxD,IAAA,gBAAS,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,qCAAqB,EAAC,CAAC,CAAC,CAAC,EAAE,qDAAqD;QACjG,IAAA,4CAAuB,GAAE,EACzB,IAAA,2BAAoB,GAAE,CACvB,CAAC;IA8BJ,CAAC;IA5BW,0BAA0B,CAAC,KAAQ,EAAE,SAAgD,EAAE;QAC/F,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,CAAC;QAExC,IAAI,OAAO,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CAAC;QAC7B,MAAM,KAAK,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAC;QAC3B,IAAI,KAAK,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAC;QAEzB,MAAM,QAAQ,GAAG,KAAK,IAAI,IAAI,CAAC;QAE/B,IAAI,QAAQ,EAAE;YACZ,KAAK,GAAG,IAAA,iBAAU,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,kCAAkC;SACtE;QAED,uBAAuB;QACvB,IAAI,CAAC,IAAA,sBAAe,EAAC,KAAK,CAAC,EAAE;YAC3B,IAAI,oBAAoB,EAAE;gBACxB,OAAO,GAAG,CAAC,QAAQ,CAAC;aACrB;iBAAM;gBACL,OAAO,GAAG,IAAA,qCAAqB,EAAC,KAAK,CAAC,CAAC;aACxC;SACF;QAED,OAAO;YACL,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;YACzB,KAAK;YACL,KAAK;SACN,CAAC;IACJ,CAAC;CACF;AA1CD,0EA0CC;AAED,SAAgB,uBAAuB,CAAmE,MAA2F;IACnM,OAAO,IAAI,+BAA+B,CAAC,MAAM,CAAC,CAAC;AACrD,CAAC;AAFD,0DAEC"}
1
+ {"version":3,"file":"loading.context.state.list.js","sourceRoot":"","sources":["../../../../../../packages/rxjs/src/lib/loading/loading.context.state.list.ts"],"names":[],"mappings":";;;AAAA,wCAAqF;AACrF,+BAAgG;AAChG,mDAA0E;AAC1E,mEAAwN;AACxN,6DAAwF;AAaxF;;GAEG;AACH,MAAa,+BAAkG,SAAQ,2DAAsH;IAA7O;;QACE;;WAEG;QACM,UAAK,GAAoB,IAAI,CAAC,OAAO,CAAC,IAAI,CACjD,IAAA,UAAG,EAAC,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,MAAA,CAAC,CAAC,KAAK,mCAAI,EAAE,CAAA,EAAA,CAAC,EACzB,IAAA,kBAAW,EAAC,CAAC,CAAC,CACf,CAAC;QAEF;;WAEG;QACM,oBAAe,GAAwB,IAAI,CAAC,OAAO,CAAC,IAAI,CAC/D,IAAA,UAAG,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,qCAAqB,EAAC,CAAC,CAAC,IAAI,IAAA,4CAAuB,EAAC,CAAC,CAAC,CAAC,EAClE,IAAA,2BAAoB,GAAE,EACtB,IAAA,kBAAW,EAAC,CAAC,CAAC,CACf,CAAC;QAEF;;;;;;WAMG;QACM,aAAQ,GAAwB,IAAI,CAAC,OAAO,CAAC,IAAI,CACxD,IAAA,gBAAS,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,qCAAqB,EAAC,CAAC,CAAC,CAAC,EAAE,qDAAqD;QACjG,IAAA,4CAAuB,GAAE,EACzB,IAAA,2BAAoB,GAAE,CACvB,CAAC;QAEF;;;;;;WAMG;QACM,0BAAqB,GAAwB,IAAI,CAAC,OAAO,CAAC,IAAI,CACrE,IAAA,gBAAS,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,qCAAqB,EAAC,CAAC,CAAC,CAAC,EAAE,qDAAqD;QACjG,IAAA,UAAG,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAA,qCAAqB,EAAC,CAAC,CAAC,IAAI,IAAA,4CAAuB,EAAC,CAAC,CAAC,CAAC,EACnE,IAAA,2BAAoB,GAAE,CACvB,CAAC;IA8BJ,CAAC;IA5BW,0BAA0B,CAAC,KAAQ,EAAE,SAAgD,EAAE;QAC/F,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,CAAC;QAExC,IAAI,OAAO,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CAAC;QAC7B,MAAM,KAAK,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAC;QAC3B,IAAI,KAAK,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAC;QAEzB,MAAM,QAAQ,GAAG,KAAK,IAAI,IAAI,CAAC;QAE/B,IAAI,QAAQ,EAAE;YACZ,KAAK,GAAG,IAAA,iBAAU,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,kCAAkC;SACtE;QAED,uBAAuB;QACvB,IAAI,CAAC,IAAA,sBAAe,EAAC,KAAK,CAAC,EAAE;YAC3B,IAAI,oBAAoB,EAAE;gBACxB,OAAO,GAAG,CAAC,QAAQ,CAAC;aACrB;iBAAM;gBACL,OAAO,GAAG,IAAA,qCAAqB,EAAC,KAAK,CAAC,CAAC;aACxC;SACF;QAED,OAAO;YACL,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;YACzB,KAAK;YACL,KAAK;SACN,CAAC;IACJ,CAAC;CACF;AAxED,0EAwEC;AAED,SAAgB,uBAAuB,CAAmE,MAA2F;IACnM,OAAO,IAAI,+BAA+B,CAAC,MAAM,CAAC,CAAC;AACrD,CAAC;AAFD,0DAEC"}
@@ -1,6 +1,12 @@
1
1
  import { PageNumber } from '@dereekb/util';
2
2
  import { Observable, OperatorFunction } from 'rxjs';
3
3
  import { ListLoadingState, PageLoadingState } from './loading.state';
4
+ /**
5
+ * Returns true if the loading state is not loading and is empty.
6
+ *
7
+ * @param listLoadingState
8
+ * @returns
9
+ */
4
10
  export declare function listLoadingStateIsEmpty<T = unknown>(listLoadingState: ListLoadingState<T>): boolean;
5
11
  export declare function isListLoadingStateEmpty<T = unknown>(): OperatorFunction<ListLoadingState<T>, boolean>;
6
12
  /**
@@ -3,9 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.pageLoadingStateFromObs = exports.isListLoadingStateEmpty = exports.listLoadingStateIsEmpty = void 0;
4
4
  const rxjs_1 = require("@dereekb/rxjs");
5
5
  const rxjs_2 = require("rxjs");
6
+ // TODO: breaking change refactor: Switch the names of these functions below, so the isListLoadingStateEmpty is the non-operator function.
7
+ /**
8
+ * Returns true if the loading state is not loading and is empty.
9
+ *
10
+ * @param listLoadingState
11
+ * @returns
12
+ */
6
13
  function listLoadingStateIsEmpty(listLoadingState) {
7
- var _a;
8
- return Boolean(listLoadingState.value && !((_a = listLoadingState.value) === null || _a === void 0 ? void 0 : _a.length));
14
+ return Boolean(!listLoadingState.value || !listLoadingState.value.length);
9
15
  }
10
16
  exports.listLoadingStateIsEmpty = listLoadingStateIsEmpty;
11
17
  function isListLoadingStateEmpty() {
@@ -1 +1 @@
1
- {"version":3,"file":"loading.state.list.js","sourceRoot":"","sources":["../../../../../../packages/rxjs/src/lib/loading/loading.state.list.ts"],"names":[],"mappings":";;;AAAA,wCAAoD;AAEpD,+BAAiE;AAGjE,SAAgB,uBAAuB,CAAc,gBAAqC;;IACxF,OAAO,OAAO,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC,CAAA,MAAA,gBAAgB,CAAC,KAAK,0CAAE,MAAM,CAAA,CAAC,CAAC;AAC5E,CAAC;AAFD,0DAEC;AAED,SAAgB,uBAAuB;IACrC,OAAO,IAAA,UAAG,EAAC,uBAAuB,CAAC,CAAC;AACtC,CAAC;AAFD,0DAEC;AAED;;GAEG;AACH,SAAgB,uBAAuB,CAAI,GAAkB,EAAE,SAAmB,EAAE,OAAmB,CAAC;IACtG,OAAO,IAAA,0BAAmB,EAAC,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,CAC7C,IAAA,UAAG,EAAC,CAAC,CAAC,EAAE,EAAE;QACP,CAAyB,CAAC,IAAI,GAAG,IAAI,CAAC;QACvC,OAAO,CAAwB,CAAC;IAClC,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAPD,0DAOC"}
1
+ {"version":3,"file":"loading.state.list.js","sourceRoot":"","sources":["../../../../../../packages/rxjs/src/lib/loading/loading.state.list.ts"],"names":[],"mappings":";;;AAAA,wCAAoD;AAEpD,+BAAiE;AAGjE,0IAA0I;AAE1I;;;;;GAKG;AACH,SAAgB,uBAAuB,CAAc,gBAAqC;IACxF,OAAO,OAAO,CAAC,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC5E,CAAC;AAFD,0DAEC;AAED,SAAgB,uBAAuB;IACrC,OAAO,IAAA,UAAG,EAAC,uBAAuB,CAAC,CAAC;AACtC,CAAC;AAFD,0DAEC;AAED;;GAEG;AACH,SAAgB,uBAAuB,CAAI,GAAkB,EAAE,SAAmB,EAAE,OAAmB,CAAC;IACtG,OAAO,IAAA,0BAAmB,EAAC,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,CAC7C,IAAA,UAAG,EAAC,CAAC,CAAC,EAAE,EAAE;QACP,CAAyB,CAAC,IAAI,GAAG,IAAI,CAAC;QACvC,OAAO,CAAwB,CAAC;IAClC,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAPD,0DAOC"}