ngx-lift 1.10.3 → 19.0.0
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/README.md +5 -1
- package/fesm2022/ngx-lift.mjs +729 -194
- package/fesm2022/ngx-lift.mjs.map +1 -1
- package/index.d.ts +1638 -3
- package/package.json +6 -6
- package/esm2022/lib/const.mjs +0 -10
- package/esm2022/lib/models/async-state.model.mjs +0 -2
- package/esm2022/lib/models/index.mjs +0 -6
- package/esm2022/lib/models/kubernetes-list.model.mjs +0 -2
- package/esm2022/lib/models/kubernetes-object-condition.model.mjs +0 -2
- package/esm2022/lib/models/kubernetes-object-meta.model.mjs +0 -2
- package/esm2022/lib/models/kubernetes-object.model.mjs +0 -2
- package/esm2022/lib/operators/combine-latest-eager.operator.mjs +0 -48
- package/esm2022/lib/operators/create-async-state.operator.mjs +0 -61
- package/esm2022/lib/operators/distinct-on-change.operator.mjs +0 -80
- package/esm2022/lib/operators/index.mjs +0 -9
- package/esm2022/lib/operators/kubernetes-pagination.operator.mjs +0 -71
- package/esm2022/lib/operators/logger.operator.mjs +0 -21
- package/esm2022/lib/operators/poll.operator.mjs +0 -39
- package/esm2022/lib/operators/start-with-tap.operator.mjs +0 -15
- package/esm2022/lib/operators/switch-map-with-async-state.operator.mjs +0 -33
- package/esm2022/lib/pipes/array-join.pipe.mjs +0 -21
- package/esm2022/lib/pipes/byte-converter.pipe.mjs +0 -150
- package/esm2022/lib/pipes/index.mjs +0 -6
- package/esm2022/lib/pipes/is-https.pipe.mjs +0 -18
- package/esm2022/lib/pipes/mask.pipe.mjs +0 -36
- package/esm2022/lib/pipes/range.pipe.mjs +0 -19
- package/esm2022/lib/signals/combine-from.mjs +0 -90
- package/esm2022/lib/signals/computed-async.mjs +0 -63
- package/esm2022/lib/signals/create-trigger.mjs +0 -11
- package/esm2022/lib/signals/index.mjs +0 -7
- package/esm2022/lib/signals/inject-params.mjs +0 -35
- package/esm2022/lib/signals/inject-query-params.mjs +0 -53
- package/esm2022/lib/signals/merge-from.mjs +0 -71
- package/esm2022/lib/utils/difference-in-days.util.mjs +0 -25
- package/esm2022/lib/utils/form.util.mjs +0 -56
- package/esm2022/lib/utils/idle-detection/idle-detection.config.mjs +0 -7
- package/esm2022/lib/utils/idle-detection/idle-detection.module.mjs +0 -25
- package/esm2022/lib/utils/idle-detection/idle-detection.service.mjs +0 -190
- package/esm2022/lib/utils/idle-detection/index.mjs +0 -4
- package/esm2022/lib/utils/index.mjs +0 -10
- package/esm2022/lib/utils/internal.util.mjs +0 -13
- package/esm2022/lib/utils/is-empty.util.mjs +0 -49
- package/esm2022/lib/utils/is-equal.util.mjs +0 -24
- package/esm2022/lib/utils/is-promise.util.mjs +0 -5
- package/esm2022/lib/utils/omit-by.util.mjs +0 -12
- package/esm2022/lib/utils/pick-by.util.mjs +0 -16
- package/esm2022/lib/utils/range.util.mjs +0 -28
- package/esm2022/lib/utils/url.util.mjs +0 -34
- package/esm2022/lib/validators/date-range.validator.mjs +0 -58
- package/esm2022/lib/validators/index.mjs +0 -5
- package/esm2022/lib/validators/intersection.validator.mjs +0 -34
- package/esm2022/lib/validators/unique.validator.mjs +0 -64
- package/esm2022/lib/validators/url.validator.mjs +0 -14
- package/esm2022/ngx-lift.mjs +0 -5
- package/esm2022/public-api.mjs +0 -10
- package/lib/const.d.ts +0 -5
- package/lib/models/async-state.model.d.ts +0 -22
- package/lib/models/index.d.ts +0 -5
- package/lib/models/kubernetes-list.model.d.ts +0 -10
- package/lib/models/kubernetes-object-condition.model.d.ts +0 -28
- package/lib/models/kubernetes-object-meta.model.d.ts +0 -38
- package/lib/models/kubernetes-object.model.d.ts +0 -8
- package/lib/operators/combine-latest-eager.operator.d.ts +0 -7
- package/lib/operators/create-async-state.operator.d.ts +0 -64
- package/lib/operators/distinct-on-change.operator.d.ts +0 -55
- package/lib/operators/index.d.ts +0 -8
- package/lib/operators/kubernetes-pagination.operator.d.ts +0 -30
- package/lib/operators/logger.operator.d.ts +0 -11
- package/lib/operators/poll.operator.d.ts +0 -39
- package/lib/operators/start-with-tap.operator.d.ts +0 -10
- package/lib/operators/switch-map-with-async-state.operator.d.ts +0 -31
- package/lib/pipes/array-join.pipe.d.ts +0 -7
- package/lib/pipes/byte-converter.pipe.d.ts +0 -40
- package/lib/pipes/index.d.ts +0 -5
- package/lib/pipes/is-https.pipe.d.ts +0 -7
- package/lib/pipes/mask.pipe.d.ts +0 -19
- package/lib/pipes/range.pipe.d.ts +0 -10
- package/lib/signals/combine-from.d.ts +0 -25
- package/lib/signals/computed-async.d.ts +0 -29
- package/lib/signals/create-trigger.d.ts +0 -4
- package/lib/signals/index.d.ts +0 -6
- package/lib/signals/inject-params.d.ts +0 -63
- package/lib/signals/inject-query-params.d.ts +0 -71
- package/lib/signals/merge-from.d.ts +0 -13
- package/lib/utils/difference-in-days.util.d.ts +0 -19
- package/lib/utils/form.util.d.ts +0 -18
- package/lib/utils/idle-detection/idle-detection.config.d.ts +0 -5
- package/lib/utils/idle-detection/idle-detection.module.d.ts +0 -13
- package/lib/utils/idle-detection/idle-detection.service.d.ts +0 -119
- package/lib/utils/idle-detection/index.d.ts +0 -3
- package/lib/utils/index.d.ts +0 -9
- package/lib/utils/internal.util.d.ts +0 -4
- package/lib/utils/is-empty.util.d.ts +0 -10
- package/lib/utils/is-equal.util.d.ts +0 -7
- package/lib/utils/is-promise.util.d.ts +0 -1
- package/lib/utils/omit-by.util.d.ts +0 -7
- package/lib/utils/pick-by.util.d.ts +0 -7
- package/lib/utils/range.util.d.ts +0 -12
- package/lib/utils/url.util.d.ts +0 -24
- package/lib/validators/date-range.validator.d.ts +0 -19
- package/lib/validators/index.d.ts +0 -4
- package/lib/validators/intersection.validator.d.ts +0 -9
- package/lib/validators/unique.validator.d.ts +0 -18
- package/lib/validators/url.validator.d.ts +0 -3
- package/public-api.d.ts +0 -6
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ngx-lift",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "19.0.0",
|
|
4
4
|
"description": "A project has been crafted with the goal of enhancing and simplifying your Angular development experience.",
|
|
5
5
|
"author": "Guanghui Wang <guanghui-wang@foxmail.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -10,12 +10,14 @@
|
|
|
10
10
|
],
|
|
11
11
|
"repository": {
|
|
12
12
|
"type": "git",
|
|
13
|
-
"url": "git+https://github.com/wghglory/ngx-lift.git"
|
|
13
|
+
"url": "git+https://github.com/wghglory/ngx-lift-workspace.git"
|
|
14
14
|
},
|
|
15
15
|
"homepage": "https://ngx-lift.netlify.app",
|
|
16
16
|
"peerDependencies": {
|
|
17
|
-
"@angular/common": ">=
|
|
18
|
-
"@angular/core": ">=
|
|
17
|
+
"@angular/common": ">=19",
|
|
18
|
+
"@angular/core": ">=19",
|
|
19
|
+
"@angular/router": ">=19",
|
|
20
|
+
"@angular/forms": ">=19",
|
|
19
21
|
"rxjs": ">=7.8.0"
|
|
20
22
|
},
|
|
21
23
|
"dependencies": {
|
|
@@ -30,8 +32,6 @@
|
|
|
30
32
|
},
|
|
31
33
|
".": {
|
|
32
34
|
"types": "./index.d.ts",
|
|
33
|
-
"esm2022": "./esm2022/ngx-lift.mjs",
|
|
34
|
-
"esm": "./esm2022/ngx-lift.mjs",
|
|
35
35
|
"default": "./fesm2022/ngx-lift.mjs"
|
|
36
36
|
}
|
|
37
37
|
}
|
package/esm2022/lib/const.mjs
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
// https://regex101.com/library/mX1xW0
|
|
2
|
-
export const emailPattern = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/;
|
|
3
|
-
export const urlPattern = /^https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%_+.~#?&/=]*)$/;
|
|
4
|
-
export const httpsPattern = /^https:\/\/(?:www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%_+.~#?&/=]*)$/;
|
|
5
|
-
// https://regex101.com/library/dT0vT3?orderBy=RELEVANCE&search=ip
|
|
6
|
-
export const ipRegex = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
|
|
7
|
-
// A fully qualified domain name (FQDN) is a domain name that specifies its exact location in the tree hierarchy of the Domain Name System (DNS)
|
|
8
|
-
// https://www.regextester.com/103452
|
|
9
|
-
export const fqdnRegex = /(?=^.{4,253}$)(^((?!-)[a-zA-Z0-9-]{0,62}[a-zA-Z0-9]\.)+[a-zA-Z]{2,63}$)/;
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGlmdC9zcmMvbGliL2NvbnN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNDQUFzQztBQUN0QyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsbUZBQW1GLENBQUM7QUFFaEgsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUNyQiwwR0FBMEcsQ0FBQztBQUM3RyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQ3ZCLHlHQUF5RyxDQUFDO0FBRTVHLGtFQUFrRTtBQUNsRSxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQ2xCLGtLQUFrSyxDQUFDO0FBRXJLLGdKQUFnSjtBQUNoSixxQ0FBcUM7QUFDckMsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLHlFQUF5RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9yZWdleDEwMS5jb20vbGlicmFyeS9tWDF4VzBcbmV4cG9ydCBjb25zdCBlbWFpbFBhdHRlcm4gPSAvXihbXFx3LV0rKD86XFwuW1xcdy1dKykqKUAoKD86W1xcdy1dK1xcLikqXFx3W1xcdy1dezAsNjZ9KVxcLihbYS16XXsyLDZ9KD86XFwuW2Etel17Mn0pPykkLztcblxuZXhwb3J0IGNvbnN0IHVybFBhdHRlcm4gPVxuICAvXmh0dHBzPzpcXC9cXC8oPzp3d3dcXC4pP1stYS16QS1aMC05QDolLl8rfiM9XXsxLDI1Nn1cXC5bYS16QS1aMC05KCldezEsNn1cXGIoPzpbLWEtekEtWjAtOSgpQDolXysufiM/Ji89XSopJC87XG5leHBvcnQgY29uc3QgaHR0cHNQYXR0ZXJuID1cbiAgL15odHRwczpcXC9cXC8oPzp3d3dcXC4pP1stYS16QS1aMC05QDolLl8rfiM9XXsxLDI1Nn1cXC5bYS16QS1aMC05KCldezEsNn1cXGIoPzpbLWEtekEtWjAtOSgpQDolXysufiM/Ji89XSopJC87XG5cbi8vIGh0dHBzOi8vcmVnZXgxMDEuY29tL2xpYnJhcnkvZFQwdlQzP29yZGVyQnk9UkVMRVZBTkNFJnNlYXJjaD1pcFxuZXhwb3J0IGNvbnN0IGlwUmVnZXggPVxuICAvXigyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV1bMC05XT8pXFwuKDI1WzAtNV18MlswLTRdWzAtOV18WzAxXT9bMC05XVswLTldPylcXC4oMjVbMC01XXwyWzAtNF1bMC05XXxbMDFdP1swLTldWzAtOV0/KVxcLigyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV1bMC05XT8pJC87XG5cbi8vIEEgZnVsbHkgcXVhbGlmaWVkIGRvbWFpbiBuYW1lIChGUUROKSBpcyBhIGRvbWFpbiBuYW1lIHRoYXQgc3BlY2lmaWVzIGl0cyBleGFjdCBsb2NhdGlvbiBpbiB0aGUgdHJlZSBoaWVyYXJjaHkgb2YgdGhlIERvbWFpbiBOYW1lIFN5c3RlbSAoRE5TKVxuLy8gaHR0cHM6Ly93d3cucmVnZXh0ZXN0ZXIuY29tLzEwMzQ1MlxuZXhwb3J0IGNvbnN0IGZxZG5SZWdleCA9IC8oPz1eLns0LDI1M30kKSheKCg/IS0pW2EtekEtWjAtOS1dezAsNjJ9W2EtekEtWjAtOV1cXC4pK1thLXpBLVpdezIsNjN9JCkvO1xuIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMtc3RhdGUubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGlmdC9zcmMvbGliL21vZGVscy9hc3luYy1zdGF0ZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwRXJyb3JSZXNwb25zZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHN0YXRlIG9mIGFuIGFzeW5jaHJvbm91cyBvcGVyYXRpb24sIGluY2x1ZGluZyBsb2FkaW5nLCBlcnJvciwgYW5kIGRhdGEuXG4gKiBAdGVtcGxhdGUgVCAtIFRoZSB0eXBlIG9mIHRoZSBkYXRhIGluIHRoZSByZXNwb25zZS5cbiAqIEB0ZW1wbGF0ZSBFIC0gVGhlIHR5cGUgb2YgdGhlIGVycm9yIHJlc3BvbnNlLCBkZWZhdWx0aW5nIHRvIGBIdHRwRXJyb3JSZXNwb25zZWAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXN5bmNTdGF0ZTxULCBFID0gSHR0cEVycm9yUmVzcG9uc2U+IHtcbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBhc3luY2hyb25vdXMgb3BlcmF0aW9uIGlzIGluIHByb2dyZXNzLlxuICAgKi9cbiAgbG9hZGluZzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUmVwcmVzZW50cyBhbnkgZXJyb3IgdGhhdCBvY2N1cnJlZCBkdXJpbmcgdGhlIGFzeW5jaHJvbm91cyBvcGVyYXRpb24uXG4gICAqIE51bGwgaWYgbm8gZXJyb3Igb2NjdXJyZWQuXG4gICAqL1xuICBlcnJvcjogRSB8IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSBkYXRhIHJlc3VsdGluZyBmcm9tIHRoZSBhc3luY2hyb25vdXMgb3BlcmF0aW9uLlxuICAgKiBOdWxsIGlmIHRoZSBvcGVyYXRpb24gaGFzIG5vdCBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LlxuICAgKi9cbiAgZGF0YTogVCB8IG51bGw7XG59XG4iXX0=
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export * from './async-state.model';
|
|
2
|
-
export * from './kubernetes-list.model';
|
|
3
|
-
export * from './kubernetes-object.model';
|
|
4
|
-
export * from './kubernetes-object-condition.model';
|
|
5
|
-
export * from './kubernetes-object-meta.model';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGlmdC9zcmMvbGliL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsZ0NBQWdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FzeW5jLXN0YXRlLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4va3ViZXJuZXRlcy1saXN0Lm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4va3ViZXJuZXRlcy1vYmplY3QubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9rdWJlcm5ldGVzLW9iamVjdC1jb25kaXRpb24ubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9rdWJlcm5ldGVzLW9iamVjdC1tZXRhLm1vZGVsJztcbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3ViZXJuZXRlcy1saXN0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpZnQvc3JjL2xpYi9tb2RlbHMva3ViZXJuZXRlcy1saXN0Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0t1YmVybmV0ZXNPYmplY3R9IGZyb20gJy4va3ViZXJuZXRlcy1vYmplY3QubW9kZWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEt1YmVybmV0ZXNMaXN0PFQgZXh0ZW5kcyBLdWJlcm5ldGVzT2JqZWN0PiB7XG4gIGFwaVZlcnNpb246IHN0cmluZztcbiAgbWV0YWRhdGE6IHtjb250aW51ZTogc3RyaW5nOyByZXNvdXJjZVZlcnNpb246IHN0cmluZ307XG4gIGtpbmQ6IHN0cmluZztcbiAgaXRlbXM6IFRbXTtcbn1cbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3ViZXJuZXRlcy1vYmplY3QtY29uZGl0aW9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpZnQvc3JjL2xpYi9tb2RlbHMva3ViZXJuZXRlcy1vYmplY3QtY29uZGl0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEt1YmVybmV0ZXNPYmplY3RDb25kaXRpb248VCA9IHN0cmluZywgUiA9IHN0cmluZz4ge1xuICAvKipcbiAgICogbGFzdFRyYW5zaXRpb25UaW1lIGlzIGEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgbGFzdCB0aW1lIHRoZSBjb25kaXRpb24gdHJhbnNpdGlvbmVkIGZyb20gb25lIHN0YXR1cyB0byBhbm90aGVyLlxuICAgKiBJZiB0aGUgdW5kZXJseWluZyBjb25kaXRpb24gY2hhbmdlIGlzIHVua25vd24sIHRoZSB0aW1lIHdoZW4gdGhlIEFQSSBmaWVsZCBjaGFuZ2VkIGlzIHVzZWQuXG4gICAqL1xuICBsYXN0VHJhbnNpdGlvblRpbWU6IHN0cmluZztcblxuICAvKipcbiAgICogbWVzc2FnZSBpcyBhIHN0cmluZyBwcm92aWRpbmcgYSBodW1hbiAtIHJlYWRhYmxlIG1lc3NhZ2UgYWJvdXQgdGhlIHRyYW5zaXRpb24uIEl0IGNhbiBiZSBhbiBlbXB0eSBzdHJpbmcuXG4gICAqL1xuICBtZXNzYWdlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIHJlYXNvbiBpcyBhIHN0cmluZyBjb250YWluaW5nIGEgcHJvZ3JhbW1hdGljIGlkZW50aWZpZXIgaW5kaWNhdGluZyB0aGUgcmVhc29uIGZvciB0aGUgY29uZGl0aW9uJ3MgbGFzdCB0cmFuc2l0aW9uLlxuICAgKiBQcm9kdWNlcnMgb2Ygc3BlY2lmaWMgY29uZGl0aW9uIHR5cGVzIG1heSBkZWZpbmUgZXhwZWN0ZWQgdmFsdWVzIGFuZCBtZWFuaW5ncyBmb3IgdGhpcyBmaWVsZC5cbiAgICovXG4gIHJlYXNvbjogUjtcblxuICAvKipcbiAgICogc3RhdHVzIGlzIGFuIGVudW0gd2l0aCBwb3NzaWJsZSB2YWx1ZXMgJ1RydWUnLCAnRmFsc2UnLCBvciAnVW5rbm93bicgcmVwcmVzZW50aW5nIHRoZSBjdXJyZW50IHN0YXR1cyBvZiB0aGUgY29uZGl0aW9uLlxuICAgKi9cbiAgc3RhdHVzOiAnVHJ1ZScgfCAnRmFsc2UnIHwgJ1Vua25vd24nO1xuICAvKipcbiAgICogdHlwZSBpcyBhIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIHR5cGUgb2YgY29uZGl0aW9uIGluIENhbWVsQ2FzZSBvciBpbiBmb28uZXhhbXBsZS5jb20vQ2FtZWxDYXNlIGZvcm1hdC5cbiAgICovXG4gIHR5cGU6IFQ7XG5cbiAgLyoqXG4gICAqIG9ic2VydmVkR2VuZXJhdGlvbiBpcyBhbiBpbnRlZ2VyIHJlcHJlc2VudGluZyB0aGUubWV0YWRhdGEuZ2VuZXJhdGlvbiB0aGF0IHRoZSBjb25kaXRpb24gd2FzIHNldCBiYXNlZCB1cG9uLlxuICAgKi9cbiAgb2JzZXJ2ZWRHZW5lcmF0aW9uPzogbnVtYmVyO1xufVxuIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3ViZXJuZXRlcy1vYmplY3QtbWV0YS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWZ0L3NyYy9saWIvbW9kZWxzL2t1YmVybmV0ZXMtb2JqZWN0LW1ldGEubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvcmVmZXJlbmNlL2dlbmVyYXRlZC9rdWJlcm5ldGVzLWFwaS92MS4yMy8jb2JqZWN0bWV0YS12MS1tZXRhXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS3ViZXJuZXRlc09iamVjdE1ldGFWMSB7XG4gIG5hbWU6IHN0cmluZztcbiAgbmFtZXNwYWNlPzogc3RyaW5nOyAvLyBjYW4gYmUgdW5kZWZpbmVkIGZvciBjbHVzdGVyLXNjb3BlZCByZXNvdXJjZXNcbiAgc2VsZkxpbms/OiBzdHJpbmc7XG4gIHVpZD86IHN0cmluZztcbiAgcmVzb3VyY2VWZXJzaW9uPzogc3RyaW5nO1xuICBnZW5lcmF0aW9uPzogbnVtYmVyO1xuICBjcmVhdGlvblRpbWVzdGFtcD86IHN0cmluZztcbiAgZGVsZXRpb25UaW1lc3RhbXA/OiBzdHJpbmc7IC8vIG9ubHkgcHJlc2VudCBpZiB0aGUgb2JqZWN0IGlzIGJlaW5nIGRlbGV0ZWRcbiAgZGVsZXRpb25HcmFjZVBlcmlvZFNlY29uZHM/OiBudW1iZXI7IC8vIG9ubHkgcHJlc2VudCBpZiB0aGUgb2JqZWN0IGlzIGJlaW5nIGRlbGV0ZWRcbiAgbGFiZWxzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgYW5ub3RhdGlvbnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICBvd25lclJlZmVyZW5jZXM/OiBPd25lclJlZmVyZW5jZVtdO1xuICBmaW5hbGl6ZXJzPzogc3RyaW5nW107XG4gIGNsdXN0ZXJOYW1lPzogc3RyaW5nOyAvLyBvbmx5IHByZXNlbnQgZm9yIG9iamVjdHMgaW4gYSBjbHVzdGVyXG4gIG1hbmFnZWRGaWVsZHM/OiBNYW5hZ2VkRmllbGRbXTtcbn1cblxuaW50ZXJmYWNlIE93bmVyUmVmZXJlbmNlIHtcbiAgYXBpVmVyc2lvbjogc3RyaW5nO1xuICBraW5kOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgdWlkOiBzdHJpbmc7XG4gIGNvbnRyb2xsZXI6IGJvb2xlYW47XG4gIGJsb2NrT3duZXJEZWxldGlvbj86IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBNYW5hZ2VkRmllbGQge1xuICBhcGlWZXJzaW9uOiBzdHJpbmc7XG4gIGZpZWxkc1R5cGU6IHN0cmluZztcbiAgZmllbGRzVjE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBtYW5hZ2VyOiBzdHJpbmc7XG4gIG9wZXJhdGlvbjogc3RyaW5nO1xuICBzdWJyZXNvdXJjZT86IHN0cmluZztcbiAgdGltZTogc3RyaW5nO1xufVxuIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3ViZXJuZXRlcy1vYmplY3QubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGlmdC9zcmMvbGliL21vZGVscy9rdWJlcm5ldGVzLW9iamVjdC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHtLdWJlcm5ldGVzT2JqZWN0TWV0YVYxfSBmcm9tICcuL2t1YmVybmV0ZXMtb2JqZWN0LW1ldGEubW9kZWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEt1YmVybmV0ZXNPYmplY3Qge1xuICBhcGlWZXJzaW9uOiBzdHJpbmc7XG4gIGtpbmQ6IHN0cmluZztcbiAgbWV0YWRhdGE6IEt1YmVybmV0ZXNPYmplY3RNZXRhVjE7XG4gIHNwZWM/OiBhbnk7XG4gIHN0YXR1cz86IGFueTtcbn1cbiJdfQ==
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { combineLatest, startWith, Subject } from 'rxjs';
|
|
2
|
-
/**
|
|
3
|
-
* Combines multiple observables into a single observable emitting an array or dictionary
|
|
4
|
-
* of the latest values from each source observable.
|
|
5
|
-
* Adds startWith(null) for each Subject in combineLatest when the second parameter startWithNullForAll is false.
|
|
6
|
-
* When startWithNullForAll is true, each observable will startWith null.
|
|
7
|
-
*
|
|
8
|
-
* @template T - The type of the data in the observables.
|
|
9
|
-
*
|
|
10
|
-
* @param {Array<Observable<T>> | Record<string, Observable<T>>} sources -
|
|
11
|
-
* An array of observables or a dictionary of observables to be combined.
|
|
12
|
-
*
|
|
13
|
-
* @param {boolean} [startWithNullForAll=false] -
|
|
14
|
-
* Determines whether to start each observable with a `null` value.
|
|
15
|
-
*
|
|
16
|
-
* @returns {Observable<Array<T | null> | Record<string, T | null>>} -
|
|
17
|
-
* An observable emitting an array or dictionary of the latest values from each source observable.
|
|
18
|
-
*
|
|
19
|
-
* @throws {Error} -
|
|
20
|
-
* Throws an error if the provided argument is not an array of observables or a dictionary of observables.
|
|
21
|
-
*/
|
|
22
|
-
export function combineLatestEager(sources, startWithNullForAll = false) {
|
|
23
|
-
function observableMapper(observable) {
|
|
24
|
-
if (startWithNullForAll) {
|
|
25
|
-
return observable.pipe(startWith(null));
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
// Check if observable is a Subject, if true, apply startWith(null)
|
|
29
|
-
return observable instanceof Subject ? observable.pipe(startWith(null)) : observable;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
if (Array.isArray(sources)) {
|
|
33
|
-
// If sources is an array of observables
|
|
34
|
-
return combineLatest(sources.map(observableMapper));
|
|
35
|
-
}
|
|
36
|
-
else if (typeof sources === 'object' && sources !== null) {
|
|
37
|
-
// If sources is a dictionary of observables
|
|
38
|
-
const observables = {};
|
|
39
|
-
for (const [key, value] of Object.entries(sources)) {
|
|
40
|
-
observables[key] = observableMapper(value);
|
|
41
|
-
}
|
|
42
|
-
return combineLatest(observables);
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
throw new Error(`Invalid argument type. Please provide an array of observables or a dictionary of observables. Received: ${typeof sources}`);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYmluZS1sYXRlc3QtZWFnZXIub3BlcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGlmdC9zcmMvbGliL29wZXJhdG9ycy9jb21iaW5lLWxhdGVzdC1lYWdlci5vcGVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsYUFBYSxFQUFjLFNBQVMsRUFBRSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFZbkU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLE9BQTZELEVBQzdELG1CQUFtQixHQUFHLEtBQUs7SUFFM0IsU0FBUyxnQkFBZ0IsQ0FBSSxVQUF5QjtRQUNwRCxJQUFJLG1CQUFtQixFQUFFLENBQUM7WUFDeEIsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzFDLENBQUM7YUFBTSxDQUFDO1lBQ04sbUVBQW1FO1lBQ25FLE9BQU8sVUFBVSxZQUFZLE9BQU8sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO1FBQ3ZGLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDM0Isd0NBQXdDO1FBQ3hDLE9BQU8sYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7U0FBTSxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxPQUFPLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDM0QsNENBQTRDO1FBQzVDLE1BQU0sV0FBVyxHQUF5QyxFQUFFLENBQUM7UUFFN0QsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNuRCxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUVELE9BQU8sYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxJQUFJLEtBQUssQ0FDYiwyR0FBMkcsT0FBTyxPQUFPLEVBQUUsQ0FDNUgsQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBzdGFydFdpdGgsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgZnVuY3Rpb24gY29tYmluZUxhdGVzdEVhZ2VyPFQgZXh0ZW5kcyBPYnNlcnZhYmxlPHVua25vd24+W10+KFxuICBzb3VyY2VzOiBULFxuICBzdGFydFdpdGhOdWxsRm9yQWxsPzogYm9vbGVhbixcbik6IE9ic2VydmFibGU8e1tLIGluIGtleW9mIFRdOiBUW0tdIGV4dGVuZHMgT2JzZXJ2YWJsZTxpbmZlciBVPiA/IFUgfCBudWxsIDogbmV2ZXJ9PjtcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbWJpbmVMYXRlc3RFYWdlcjxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgT2JzZXJ2YWJsZTx1bmtub3duPj4+KFxuICBzb3VyY2VzOiBULFxuICBzdGFydFdpdGhOdWxsRm9yQWxsPzogYm9vbGVhbixcbik6IE9ic2VydmFibGU8e1tLIGluIGtleW9mIFRdOiBUW0tdIGV4dGVuZHMgT2JzZXJ2YWJsZTxpbmZlciBVPiA/IFUgfCBudWxsIDogbmV2ZXJ9PjtcblxuLyoqXG4gKiBDb21iaW5lcyBtdWx0aXBsZSBvYnNlcnZhYmxlcyBpbnRvIGEgc2luZ2xlIG9ic2VydmFibGUgZW1pdHRpbmcgYW4gYXJyYXkgb3IgZGljdGlvbmFyeVxuICogb2YgdGhlIGxhdGVzdCB2YWx1ZXMgZnJvbSBlYWNoIHNvdXJjZSBvYnNlcnZhYmxlLlxuICogQWRkcyBzdGFydFdpdGgobnVsbCkgZm9yIGVhY2ggU3ViamVjdCBpbiBjb21iaW5lTGF0ZXN0IHdoZW4gdGhlIHNlY29uZCBwYXJhbWV0ZXIgc3RhcnRXaXRoTnVsbEZvckFsbCBpcyBmYWxzZS5cbiAqIFdoZW4gc3RhcnRXaXRoTnVsbEZvckFsbCBpcyB0cnVlLCBlYWNoIG9ic2VydmFibGUgd2lsbCBzdGFydFdpdGggbnVsbC5cbiAqXG4gKiBAdGVtcGxhdGUgVCAtIFRoZSB0eXBlIG9mIHRoZSBkYXRhIGluIHRoZSBvYnNlcnZhYmxlcy5cbiAqXG4gKiBAcGFyYW0ge0FycmF5PE9ic2VydmFibGU8VD4+IHwgUmVjb3JkPHN0cmluZywgT2JzZXJ2YWJsZTxUPj59IHNvdXJjZXMgLVxuICogICBBbiBhcnJheSBvZiBvYnNlcnZhYmxlcyBvciBhIGRpY3Rpb25hcnkgb2Ygb2JzZXJ2YWJsZXMgdG8gYmUgY29tYmluZWQuXG4gKlxuICogQHBhcmFtIHtib29sZWFufSBbc3RhcnRXaXRoTnVsbEZvckFsbD1mYWxzZV0gLVxuICogICBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gc3RhcnQgZWFjaCBvYnNlcnZhYmxlIHdpdGggYSBgbnVsbGAgdmFsdWUuXG4gKlxuICogQHJldHVybnMge09ic2VydmFibGU8QXJyYXk8VCB8IG51bGw+IHwgUmVjb3JkPHN0cmluZywgVCB8IG51bGw+Pn0gLVxuICogICBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIGFuIGFycmF5IG9yIGRpY3Rpb25hcnkgb2YgdGhlIGxhdGVzdCB2YWx1ZXMgZnJvbSBlYWNoIHNvdXJjZSBvYnNlcnZhYmxlLlxuICpcbiAqIEB0aHJvd3Mge0Vycm9yfSAtXG4gKiAgIFRocm93cyBhbiBlcnJvciBpZiB0aGUgcHJvdmlkZWQgYXJndW1lbnQgaXMgbm90IGFuIGFycmF5IG9mIG9ic2VydmFibGVzIG9yIGEgZGljdGlvbmFyeSBvZiBvYnNlcnZhYmxlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbWJpbmVMYXRlc3RFYWdlcjxUPihcbiAgc291cmNlczogQXJyYXk8T2JzZXJ2YWJsZTxUPj4gfCBSZWNvcmQ8c3RyaW5nLCBPYnNlcnZhYmxlPFQ+PixcbiAgc3RhcnRXaXRoTnVsbEZvckFsbCA9IGZhbHNlLFxuKTogT2JzZXJ2YWJsZTxBcnJheTxUIHwgbnVsbD4gfCBSZWNvcmQ8c3RyaW5nLCBUIHwgbnVsbD4+IHtcbiAgZnVuY3Rpb24gb2JzZXJ2YWJsZU1hcHBlcjxUPihvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPFQ+KSB7XG4gICAgaWYgKHN0YXJ0V2l0aE51bGxGb3JBbGwpIHtcbiAgICAgIHJldHVybiBvYnNlcnZhYmxlLnBpcGUoc3RhcnRXaXRoKG51bGwpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQ2hlY2sgaWYgb2JzZXJ2YWJsZSBpcyBhIFN1YmplY3QsIGlmIHRydWUsIGFwcGx5IHN0YXJ0V2l0aChudWxsKVxuICAgICAgcmV0dXJuIG9ic2VydmFibGUgaW5zdGFuY2VvZiBTdWJqZWN0ID8gb2JzZXJ2YWJsZS5waXBlKHN0YXJ0V2l0aChudWxsKSkgOiBvYnNlcnZhYmxlO1xuICAgIH1cbiAgfVxuXG4gIGlmIChBcnJheS5pc0FycmF5KHNvdXJjZXMpKSB7XG4gICAgLy8gSWYgc291cmNlcyBpcyBhbiBhcnJheSBvZiBvYnNlcnZhYmxlc1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KHNvdXJjZXMubWFwKG9ic2VydmFibGVNYXBwZXIpKTtcbiAgfSBlbHNlIGlmICh0eXBlb2Ygc291cmNlcyA9PT0gJ29iamVjdCcgJiYgc291cmNlcyAhPT0gbnVsbCkge1xuICAgIC8vIElmIHNvdXJjZXMgaXMgYSBkaWN0aW9uYXJ5IG9mIG9ic2VydmFibGVzXG4gICAgY29uc3Qgb2JzZXJ2YWJsZXM6IFJlY29yZDxzdHJpbmcsIE9ic2VydmFibGU8VCB8IG51bGw+PiA9IHt9O1xuXG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoc291cmNlcykpIHtcbiAgICAgIG9ic2VydmFibGVzW2tleV0gPSBvYnNlcnZhYmxlTWFwcGVyKHZhbHVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChvYnNlcnZhYmxlcyk7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEludmFsaWQgYXJndW1lbnQgdHlwZS4gUGxlYXNlIHByb3ZpZGUgYW4gYXJyYXkgb2Ygb2JzZXJ2YWJsZXMgb3IgYSBkaWN0aW9uYXJ5IG9mIG9ic2VydmFibGVzLiBSZWNlaXZlZDogJHt0eXBlb2Ygc291cmNlc31gLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { catchError, map, of, pipe, startWith, tap } from 'rxjs';
|
|
2
|
-
/**
|
|
3
|
-
* createAsyncState transforms an Observable of type T into an Observable of AsyncState<T>.
|
|
4
|
-
* AsyncState<T> represents the loading, error, and data states for asynchronous operations.
|
|
5
|
-
*
|
|
6
|
-
* @template T - The type of the data in the observable.
|
|
7
|
-
* @template E - The type of the error that can occur.
|
|
8
|
-
*
|
|
9
|
-
* @param {Partial<Observer<T>> | ((value: T) => void)} [observerOrNextForOrigin] -
|
|
10
|
-
* An optional parameter that can be a partial TapObserver<T> or a function to handle the next value or error in the original Observable.
|
|
11
|
-
*
|
|
12
|
-
* @returns {UnaryFunction<Observable<T>, Observable<AsyncState<T, E>>>} -
|
|
13
|
-
* A function that transforms an observable stream into an asynchronous state.
|
|
14
|
-
*
|
|
15
|
-
* @example
|
|
16
|
-
* Usage 1: Simple request
|
|
17
|
-
* data$ = this.shopService.products$.pipe(
|
|
18
|
-
* createAsyncState({
|
|
19
|
-
* next: res => console.log('Side effect if success: ' + res),
|
|
20
|
-
* error: error => console.error('Side effect if error: ' + error.message)
|
|
21
|
-
* })
|
|
22
|
-
* );
|
|
23
|
-
*
|
|
24
|
-
* Usage 2: Dependent requests
|
|
25
|
-
* data$ = firstCall$.pipe(
|
|
26
|
-
* switchMap(() => this.shopService.products$),
|
|
27
|
-
* createAsyncState()
|
|
28
|
-
* );
|
|
29
|
-
*
|
|
30
|
-
* Another implementation thought when refreshing the data: instead of startWith, `merge of` emit as the trigger
|
|
31
|
-
*
|
|
32
|
-
* subject.pipe(
|
|
33
|
-
* switchMap(() => merge(
|
|
34
|
-
* of({ loading: true, error: null, data: null }),
|
|
35
|
-
* this.service.apiCall().pipe(
|
|
36
|
-
* map(data => ({ loading: false, error: null, data })),
|
|
37
|
-
* tap({
|
|
38
|
-
* next: res => callback?.(res.data),
|
|
39
|
-
* error: err => errorCallback?.(err),
|
|
40
|
-
* }),
|
|
41
|
-
* catchError(error => of({ loading: false, error, data: null })),
|
|
42
|
-
* ),
|
|
43
|
-
* ))
|
|
44
|
-
* )
|
|
45
|
-
*
|
|
46
|
-
* Usage 3: provide initialValue
|
|
47
|
-
*
|
|
48
|
-
* import {createAsyncState} from 'ngx-lift';
|
|
49
|
-
* import {noop} from 'rxjs';
|
|
50
|
-
*
|
|
51
|
-
* private userService = inject(UserService);
|
|
52
|
-
* private location = inject(Location);
|
|
53
|
-
*
|
|
54
|
-
* userState$ = this.userService
|
|
55
|
-
* .getUserById(1)
|
|
56
|
-
* .pipe(createAsyncState<User>(noop, {loading: false, error: null, data: this.location.getState()}));
|
|
57
|
-
*/
|
|
58
|
-
export function createAsyncState(observerOrNextForOrigin, initialValue = { loading: true, error: null, data: null }) {
|
|
59
|
-
return pipe(tap(observerOrNextForOrigin), map((data) => ({ loading: false, error: null, data })), startWith(initialValue), catchError((error) => of({ loading: false, error, data: null })));
|
|
60
|
-
}
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWFzeW5jLXN0YXRlLm9wZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpZnQvc3JjL2xpYi9vcGVyYXRvcnMvY3JlYXRlLWFzeW5jLXN0YXRlLm9wZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxVQUFVLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBNkIsTUFBTSxNQUFNLENBQUM7QUFJdkc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1REc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLHVCQUF3RSxFQUN4RSxlQUFvRSxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFDO0lBRTVHLE9BQU8sSUFBSSxDQUNULEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxFQUM1QixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxFQUNwRCxTQUFTLENBQUMsWUFBWSxDQUFDLEVBQ3ZCLFVBQVUsQ0FBQyxDQUFDLEtBQVEsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUMsQ0FDbEUsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0h0dHBFcnJvclJlc3BvbnNlfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge2NhdGNoRXJyb3IsIG1hcCwgT2JzZXJ2YWJsZSwgb2YsIHBpcGUsIHN0YXJ0V2l0aCwgdGFwLCBUYXBPYnNlcnZlciwgVW5hcnlGdW5jdGlvbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7QXN5bmNTdGF0ZX0gZnJvbSAnLi4vbW9kZWxzL2FzeW5jLXN0YXRlLm1vZGVsJztcblxuLyoqXG4gKiBjcmVhdGVBc3luY1N0YXRlIHRyYW5zZm9ybXMgYW4gT2JzZXJ2YWJsZSBvZiB0eXBlIFQgaW50byBhbiBPYnNlcnZhYmxlIG9mIEFzeW5jU3RhdGU8VD4uXG4gKiBBc3luY1N0YXRlPFQ+IHJlcHJlc2VudHMgdGhlIGxvYWRpbmcsIGVycm9yLCBhbmQgZGF0YSBzdGF0ZXMgZm9yIGFzeW5jaHJvbm91cyBvcGVyYXRpb25zLlxuICpcbiAqIEB0ZW1wbGF0ZSBUIC0gVGhlIHR5cGUgb2YgdGhlIGRhdGEgaW4gdGhlIG9ic2VydmFibGUuXG4gKiBAdGVtcGxhdGUgRSAtIFRoZSB0eXBlIG9mIHRoZSBlcnJvciB0aGF0IGNhbiBvY2N1ci5cbiAqXG4gKiBAcGFyYW0ge1BhcnRpYWw8T2JzZXJ2ZXI8VD4+IHwgKCh2YWx1ZTogVCkgPT4gdm9pZCl9IFtvYnNlcnZlck9yTmV4dEZvck9yaWdpbl0gLVxuICogICBBbiBvcHRpb25hbCBwYXJhbWV0ZXIgdGhhdCBjYW4gYmUgYSBwYXJ0aWFsIFRhcE9ic2VydmVyPFQ+IG9yIGEgZnVuY3Rpb24gdG8gaGFuZGxlIHRoZSBuZXh0IHZhbHVlIG9yIGVycm9yIGluIHRoZSBvcmlnaW5hbCBPYnNlcnZhYmxlLlxuICpcbiAqIEByZXR1cm5zIHtVbmFyeUZ1bmN0aW9uPE9ic2VydmFibGU8VD4sIE9ic2VydmFibGU8QXN5bmNTdGF0ZTxULCBFPj4+fSAtXG4gKiAgIEEgZnVuY3Rpb24gdGhhdCB0cmFuc2Zvcm1zIGFuIG9ic2VydmFibGUgc3RyZWFtIGludG8gYW4gYXN5bmNocm9ub3VzIHN0YXRlLlxuICpcbiAqIEBleGFtcGxlXG4gKiBVc2FnZSAxOiBTaW1wbGUgcmVxdWVzdFxuICogZGF0YSQgPSB0aGlzLnNob3BTZXJ2aWNlLnByb2R1Y3RzJC5waXBlKFxuICogICBjcmVhdGVBc3luY1N0YXRlKHtcbiAqICAgIG5leHQ6IHJlcyA9PiBjb25zb2xlLmxvZygnU2lkZSBlZmZlY3QgaWYgc3VjY2VzczogJyArIHJlcyksXG4gKiAgICBlcnJvcjogZXJyb3IgPT4gY29uc29sZS5lcnJvcignU2lkZSBlZmZlY3QgaWYgZXJyb3I6ICcgKyBlcnJvci5tZXNzYWdlKVxuICogICB9KVxuICogKTtcbiAqXG4gKiBVc2FnZSAyOiBEZXBlbmRlbnQgcmVxdWVzdHNcbiAqIGRhdGEkID0gZmlyc3RDYWxsJC5waXBlKFxuICogICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5zaG9wU2VydmljZS5wcm9kdWN0cyQpLFxuICogICBjcmVhdGVBc3luY1N0YXRlKClcbiAqICk7XG4gKlxuICogQW5vdGhlciBpbXBsZW1lbnRhdGlvbiB0aG91Z2h0IHdoZW4gcmVmcmVzaGluZyB0aGUgZGF0YTogaW5zdGVhZCBvZiBzdGFydFdpdGgsIGBtZXJnZSBvZmAgZW1pdCBhcyB0aGUgdHJpZ2dlclxuICpcbiAqIHN1YmplY3QucGlwZShcbiAqICAgc3dpdGNoTWFwKCgpID0+IG1lcmdlKFxuICogICAgIG9mKHsgbG9hZGluZzogdHJ1ZSwgZXJyb3I6IG51bGwsIGRhdGE6IG51bGwgfSksXG4gKiAgICAgdGhpcy5zZXJ2aWNlLmFwaUNhbGwoKS5waXBlKFxuICogICAgICAgbWFwKGRhdGEgPT4gKHsgbG9hZGluZzogZmFsc2UsIGVycm9yOiBudWxsLCBkYXRhIH0pKSxcbiAqICAgICAgIHRhcCh7XG4gKiAgICAgICAgIG5leHQ6IHJlcyA9PiBjYWxsYmFjaz8uKHJlcy5kYXRhKSxcbiAqICAgICAgICAgZXJyb3I6IGVyciA9PiBlcnJvckNhbGxiYWNrPy4oZXJyKSxcbiAqICAgICAgIH0pLFxuICogICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiBvZih7IGxvYWRpbmc6IGZhbHNlLCBlcnJvciwgZGF0YTogbnVsbCB9KSksXG4gKiAgICAgKSxcbiAqICAgKSlcbiAqIClcbiAqXG4gKiBVc2FnZSAzOiBwcm92aWRlIGluaXRpYWxWYWx1ZVxuICpcbiAqIGltcG9ydCB7Y3JlYXRlQXN5bmNTdGF0ZX0gZnJvbSAnbmd4LWxpZnQnO1xuICogaW1wb3J0IHtub29wfSBmcm9tICdyeGpzJztcbiAqXG4gKiBwcml2YXRlIHVzZXJTZXJ2aWNlID0gaW5qZWN0KFVzZXJTZXJ2aWNlKTtcbiAqIHByaXZhdGUgbG9jYXRpb24gPSBpbmplY3QoTG9jYXRpb24pO1xuICpcbiAqIHVzZXJTdGF0ZSQgPSB0aGlzLnVzZXJTZXJ2aWNlXG4gKiAgIC5nZXRVc2VyQnlJZCgxKVxuICogICAucGlwZShjcmVhdGVBc3luY1N0YXRlPFVzZXI+KG5vb3AsIHtsb2FkaW5nOiBmYWxzZSwgZXJyb3I6IG51bGwsIGRhdGE6IHRoaXMubG9jYXRpb24uZ2V0U3RhdGUoKX0pKTtcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUFzeW5jU3RhdGU8VCwgRSA9IEh0dHBFcnJvclJlc3BvbnNlPihcbiAgb2JzZXJ2ZXJPck5leHRGb3JPcmlnaW4/OiBQYXJ0aWFsPFRhcE9ic2VydmVyPFQ+PiB8ICgodmFsdWU6IFQpID0+IHZvaWQpLFxuICBpbml0aWFsVmFsdWU6IHtsb2FkaW5nOiBib29sZWFuOyBlcnJvcjogRSB8IG51bGw7IGRhdGE6IFQgfCBudWxsfSA9IHtsb2FkaW5nOiB0cnVlLCBlcnJvcjogbnVsbCwgZGF0YTogbnVsbH0sXG4pOiBVbmFyeUZ1bmN0aW9uPE9ic2VydmFibGU8VD4sIE9ic2VydmFibGU8QXN5bmNTdGF0ZTxULCBFPj4+IHtcbiAgcmV0dXJuIHBpcGUoXG4gICAgdGFwKG9ic2VydmVyT3JOZXh0Rm9yT3JpZ2luKSxcbiAgICBtYXAoKGRhdGEpID0+ICh7bG9hZGluZzogZmFsc2UsIGVycm9yOiBudWxsLCBkYXRhfSkpLFxuICAgIHN0YXJ0V2l0aChpbml0aWFsVmFsdWUpLFxuICAgIGNhdGNoRXJyb3IoKGVycm9yOiBFKSA9PiBvZih7bG9hZGluZzogZmFsc2UsIGVycm9yLCBkYXRhOiBudWxsfSkpLFxuICApO1xufVxuIl19
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { Observable } from 'rxjs';
|
|
2
|
-
/**
|
|
3
|
-
* Creates an operator function for RxJS Observables that filters out consecutive
|
|
4
|
-
* values that are considered equal according to a provided comparator function,
|
|
5
|
-
* and invokes a callback when a distinct value is encountered.
|
|
6
|
-
*
|
|
7
|
-
* @template T - The type of elements emitted by the observable.
|
|
8
|
-
* @param {(previousValue: T, currentValue: T) => void} onChangeCallback
|
|
9
|
-
* A callback function that will be invoked when a distinct value is encountered.
|
|
10
|
-
* It receives the previous distinct value and the current value.
|
|
11
|
-
* @param {(previousValue: T, currentValue: T) => boolean} [comparator]
|
|
12
|
-
* A function that determines if two values are considered equal.
|
|
13
|
-
* Defaults to a function that performs strict equality (===) comparison.
|
|
14
|
-
* @returns {OperatorFunction<T, T>} - The RxJS operator function.
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* Example 1:
|
|
18
|
-
* const source$ = new Observable<number>((observer) => {
|
|
19
|
-
* observer.next(1);
|
|
20
|
-
* observer.next(2);
|
|
21
|
-
* observer.next(2);
|
|
22
|
-
* observer.next(3);
|
|
23
|
-
* observer.next(3);
|
|
24
|
-
* observer.next(4);
|
|
25
|
-
* observer.next(5);
|
|
26
|
-
* observer.complete();
|
|
27
|
-
* });
|
|
28
|
-
*
|
|
29
|
-
* const distinctOnChange$ = source$.pipe(
|
|
30
|
-
* distinctOnChange(
|
|
31
|
-
* (prev, curr) => console.log(`Value changed from ${prev} to: ${curr}`),
|
|
32
|
-
* (prev, curr) => prev === curr,
|
|
33
|
-
* ),
|
|
34
|
-
* );
|
|
35
|
-
* distinctOnChange$.subscribe((res) => console.log(res));
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
* Example 2:
|
|
39
|
-
* distinctOnChange<RDEValue<OseInstance>[]>(
|
|
40
|
-
* () => {
|
|
41
|
-
* this.store.dispatch(
|
|
42
|
-
* addToast({
|
|
43
|
-
* toast: {
|
|
44
|
-
* type: ToastType.SUCCESS,
|
|
45
|
-
* title: this.l10nService.getMessage('STATUS_CHANGE'),
|
|
46
|
-
* description: this.l10nService.getMessage('STATUS_CHANGE_DESC'),
|
|
47
|
-
* },
|
|
48
|
-
* }),
|
|
49
|
-
* );
|
|
50
|
-
* },
|
|
51
|
-
* (prev, current) =>
|
|
52
|
-
* prev.every((prevInstance, index) => instanceComparator(prevInstance.entity, current[index].entity)),
|
|
53
|
-
* );
|
|
54
|
-
*/
|
|
55
|
-
export function distinctOnChange(onChangeCallback, comparator = (prev, curr) => prev === curr) {
|
|
56
|
-
return (source) => new Observable((subscriber) => {
|
|
57
|
-
let hasFirstValue = false;
|
|
58
|
-
let previousValue;
|
|
59
|
-
const subscription = source.subscribe({
|
|
60
|
-
next: (currentValue) => {
|
|
61
|
-
if (hasFirstValue) {
|
|
62
|
-
if (!comparator(previousValue, currentValue)) {
|
|
63
|
-
onChangeCallback(previousValue, currentValue);
|
|
64
|
-
previousValue = currentValue;
|
|
65
|
-
subscriber.next(currentValue);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
previousValue = currentValue;
|
|
70
|
-
hasFirstValue = true;
|
|
71
|
-
subscriber.next(currentValue);
|
|
72
|
-
}
|
|
73
|
-
},
|
|
74
|
-
error: (err) => subscriber.error(err),
|
|
75
|
-
complete: () => subscriber.complete(),
|
|
76
|
-
});
|
|
77
|
-
return () => subscription.unsubscribe();
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzdGluY3Qtb24tY2hhbmdlLm9wZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpZnQvc3JjL2xpYi9vcGVyYXRvcnMvZGlzdGluY3Qtb24tY2hhbmdlLm9wZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQThDLE1BQU0sTUFBTSxDQUFDO0FBRTdFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0RHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUM5QixnQkFBNkQsRUFDN0QsYUFBNkQsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssSUFBSTtJQUUxRixPQUFPLENBQUMsTUFBcUIsRUFBRSxFQUFFLENBQy9CLElBQUksVUFBVSxDQUFJLENBQUMsVUFBeUIsRUFBaUIsRUFBRTtRQUM3RCxJQUFJLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxhQUFnQixDQUFDO1FBRXJCLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7WUFDcEMsSUFBSSxFQUFFLENBQUMsWUFBZSxFQUFFLEVBQUU7Z0JBQ3hCLElBQUksYUFBYSxFQUFFLENBQUM7b0JBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUM7d0JBQzdDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQzt3QkFDOUMsYUFBYSxHQUFHLFlBQVksQ0FBQzt3QkFDN0IsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztvQkFDaEMsQ0FBQztnQkFDSCxDQUFDO3FCQUFNLENBQUM7b0JBQ04sYUFBYSxHQUFHLFlBQVksQ0FBQztvQkFDN0IsYUFBYSxHQUFHLElBQUksQ0FBQztvQkFDckIsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDaEMsQ0FBQztZQUNILENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxHQUFZLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO1lBQzlDLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFO1NBQ3RDLENBQUMsQ0FBQztRQUVILE9BQU8sR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzFDLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7T2JzZXJ2YWJsZSwgT3BlcmF0b3JGdW5jdGlvbiwgU3Vic2NyaWJlciwgVGVhcmRvd25Mb2dpY30gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBvcGVyYXRvciBmdW5jdGlvbiBmb3IgUnhKUyBPYnNlcnZhYmxlcyB0aGF0IGZpbHRlcnMgb3V0IGNvbnNlY3V0aXZlXG4gKiB2YWx1ZXMgdGhhdCBhcmUgY29uc2lkZXJlZCBlcXVhbCBhY2NvcmRpbmcgdG8gYSBwcm92aWRlZCBjb21wYXJhdG9yIGZ1bmN0aW9uLFxuICogYW5kIGludm9rZXMgYSBjYWxsYmFjayB3aGVuIGEgZGlzdGluY3QgdmFsdWUgaXMgZW5jb3VudGVyZWQuXG4gKlxuICogQHRlbXBsYXRlIFQgLSBUaGUgdHlwZSBvZiBlbGVtZW50cyBlbWl0dGVkIGJ5IHRoZSBvYnNlcnZhYmxlLlxuICogQHBhcmFtIHsocHJldmlvdXNWYWx1ZTogVCwgY3VycmVudFZhbHVlOiBUKSA9PiB2b2lkfSBvbkNoYW5nZUNhbGxiYWNrXG4gKiAgIEEgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGludm9rZWQgd2hlbiBhIGRpc3RpbmN0IHZhbHVlIGlzIGVuY291bnRlcmVkLlxuICogICBJdCByZWNlaXZlcyB0aGUgcHJldmlvdXMgZGlzdGluY3QgdmFsdWUgYW5kIHRoZSBjdXJyZW50IHZhbHVlLlxuICogQHBhcmFtIHsocHJldmlvdXNWYWx1ZTogVCwgY3VycmVudFZhbHVlOiBUKSA9PiBib29sZWFufSBbY29tcGFyYXRvcl1cbiAqICAgQSBmdW5jdGlvbiB0aGF0IGRldGVybWluZXMgaWYgdHdvIHZhbHVlcyBhcmUgY29uc2lkZXJlZCBlcXVhbC5cbiAqICAgRGVmYXVsdHMgdG8gYSBmdW5jdGlvbiB0aGF0IHBlcmZvcm1zIHN0cmljdCBlcXVhbGl0eSAoPT09KSBjb21wYXJpc29uLlxuICogQHJldHVybnMge09wZXJhdG9yRnVuY3Rpb248VCwgVD59IC0gVGhlIFJ4SlMgb3BlcmF0b3IgZnVuY3Rpb24uXG4gKlxuICogQGV4YW1wbGVcbiAqIEV4YW1wbGUgMTpcbiAqIGNvbnN0IHNvdXJjZSQgPSBuZXcgT2JzZXJ2YWJsZTxudW1iZXI+KChvYnNlcnZlcikgPT4ge1xuICogICBvYnNlcnZlci5uZXh0KDEpO1xuICogICBvYnNlcnZlci5uZXh0KDIpO1xuICogICBvYnNlcnZlci5uZXh0KDIpO1xuICogICBvYnNlcnZlci5uZXh0KDMpO1xuICogICBvYnNlcnZlci5uZXh0KDMpO1xuICogICBvYnNlcnZlci5uZXh0KDQpO1xuICogICBvYnNlcnZlci5uZXh0KDUpO1xuICogICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICogfSk7XG4gKlxuICogY29uc3QgZGlzdGluY3RPbkNoYW5nZSQgPSBzb3VyY2UkLnBpcGUoXG4gKiAgIGRpc3RpbmN0T25DaGFuZ2UoXG4gKiAgICAgKHByZXYsIGN1cnIpID0+IGNvbnNvbGUubG9nKGBWYWx1ZSBjaGFuZ2VkIGZyb20gJHtwcmV2fSB0bzogJHtjdXJyfWApLFxuICogICAgIChwcmV2LCBjdXJyKSA9PiBwcmV2ID09PSBjdXJyLFxuICogICApLFxuICogKTtcbiAqIGRpc3RpbmN0T25DaGFuZ2UkLnN1YnNjcmliZSgocmVzKSA9PiBjb25zb2xlLmxvZyhyZXMpKTtcbiAqXG4gKlxuICogRXhhbXBsZSAyOlxuICogZGlzdGluY3RPbkNoYW5nZTxSREVWYWx1ZTxPc2VJbnN0YW5jZT5bXT4oXG4gKiAgICgpID0+IHtcbiAqICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICogICAgICAgYWRkVG9hc3Qoe1xuICogICAgICAgICB0b2FzdDoge1xuICogICAgICAgICAgIHR5cGU6IFRvYXN0VHlwZS5TVUNDRVNTLFxuICogICAgICAgICAgIHRpdGxlOiB0aGlzLmwxMG5TZXJ2aWNlLmdldE1lc3NhZ2UoJ1NUQVRVU19DSEFOR0UnKSxcbiAqICAgICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy5sMTBuU2VydmljZS5nZXRNZXNzYWdlKCdTVEFUVVNfQ0hBTkdFX0RFU0MnKSxcbiAqICAgICAgICAgfSxcbiAqICAgICAgIH0pLFxuICogICAgICk7XG4gKiAgIH0sXG4gKiAgIChwcmV2LCBjdXJyZW50KSA9PlxuICogICAgIHByZXYuZXZlcnkoKHByZXZJbnN0YW5jZSwgaW5kZXgpID0+IGluc3RhbmNlQ29tcGFyYXRvcihwcmV2SW5zdGFuY2UuZW50aXR5LCBjdXJyZW50W2luZGV4XS5lbnRpdHkpKSxcbiAqICk7XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkaXN0aW5jdE9uQ2hhbmdlPFQ+KFxuICBvbkNoYW5nZUNhbGxiYWNrOiAocHJldmlvdXNWYWx1ZTogVCwgY3VycmVudFZhbHVlOiBUKSA9PiB2b2lkLFxuICBjb21wYXJhdG9yOiAocHJldmlvdXNWYWx1ZTogVCwgY3VycmVudFZhbHVlOiBUKSA9PiBib29sZWFuID0gKHByZXYsIGN1cnIpID0+IHByZXYgPT09IGN1cnIsXG4pOiBPcGVyYXRvckZ1bmN0aW9uPFQsIFQ+IHtcbiAgcmV0dXJuIChzb3VyY2U6IE9ic2VydmFibGU8VD4pID0+XG4gICAgbmV3IE9ic2VydmFibGU8VD4oKHN1YnNjcmliZXI6IFN1YnNjcmliZXI8VD4pOiBUZWFyZG93bkxvZ2ljID0+IHtcbiAgICAgIGxldCBoYXNGaXJzdFZhbHVlID0gZmFsc2U7XG4gICAgICBsZXQgcHJldmlvdXNWYWx1ZTogVDtcblxuICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gc291cmNlLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChjdXJyZW50VmFsdWU6IFQpID0+IHtcbiAgICAgICAgICBpZiAoaGFzRmlyc3RWYWx1ZSkge1xuICAgICAgICAgICAgaWYgKCFjb21wYXJhdG9yKHByZXZpb3VzVmFsdWUsIGN1cnJlbnRWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgb25DaGFuZ2VDYWxsYmFjayhwcmV2aW91c1ZhbHVlLCBjdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgICBwcmV2aW91c1ZhbHVlID0gY3VycmVudFZhbHVlO1xuICAgICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQoY3VycmVudFZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcHJldmlvdXNWYWx1ZSA9IGN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgIGhhc0ZpcnN0VmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGN1cnJlbnRWYWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKGVycjogdW5rbm93bikgPT4gc3Vic2NyaWJlci5lcnJvcihlcnIpLFxuICAgICAgICBjb21wbGV0ZTogKCkgPT4gc3Vic2NyaWJlci5jb21wbGV0ZSgpLFxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiAoKSA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9KTtcbn1cbiJdfQ==
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export * from './combine-latest-eager.operator';
|
|
2
|
-
export * from './create-async-state.operator';
|
|
3
|
-
export * from './distinct-on-change.operator';
|
|
4
|
-
export * from './kubernetes-pagination.operator';
|
|
5
|
-
export * from './logger.operator';
|
|
6
|
-
export * from './poll.operator';
|
|
7
|
-
export * from './start-with-tap.operator';
|
|
8
|
-
export * from './switch-map-with-async-state.operator';
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGlmdC9zcmMvbGliL29wZXJhdG9ycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsd0NBQXdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbWJpbmUtbGF0ZXN0LWVhZ2VyLm9wZXJhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vY3JlYXRlLWFzeW5jLXN0YXRlLm9wZXJhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZGlzdGluY3Qtb24tY2hhbmdlLm9wZXJhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4va3ViZXJuZXRlcy1wYWdpbmF0aW9uLm9wZXJhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbG9nZ2VyLm9wZXJhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vcG9sbC5vcGVyYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL3N0YXJ0LXdpdGgtdGFwLm9wZXJhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vc3dpdGNoLW1hcC13aXRoLWFzeW5jLXN0YXRlLm9wZXJhdG9yJztcbiJdfQ==
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* ******************************************************************
|
|
3
|
-
* Copyright (c) 2024 Broadcom. All Rights Reserved.
|
|
4
|
-
* Broadcom Confidential. The term "Broadcom" refers to Broadcom Inc.
|
|
5
|
-
* and/or its subsidiaries.
|
|
6
|
-
* ******************************************************************
|
|
7
|
-
*/
|
|
8
|
-
import { EMPTY, expand, reduce } from 'rxjs';
|
|
9
|
-
/**
|
|
10
|
-
* Fetches paginated Kubernetes resources by continually making requests
|
|
11
|
-
* until all pages have been retrieved, and aggregates the items from all pages
|
|
12
|
-
* into a single KubernetesList.
|
|
13
|
-
*
|
|
14
|
-
* @template T The type of the items contained within the KubernetesList.
|
|
15
|
-
* @param http The HttpClient instance used to make the HTTP requests.
|
|
16
|
-
* @param endpoint The API endpoint to fetch the resources from.
|
|
17
|
-
* @param initialParams Optional initial parameters to include in the request.
|
|
18
|
-
* Can include query parameters like filters and pagination settings.
|
|
19
|
-
* `limit` and `continue` parameters are parameters for kubernetes
|
|
20
|
-
* @returns An observable that emits a single KubernetesList containing all items from all pages.
|
|
21
|
-
*/
|
|
22
|
-
export function aggregatePaginatedKubernetesResources(http, endpoint, initialParams = {}) {
|
|
23
|
-
return (source$) => {
|
|
24
|
-
return source$.pipe(expand((response) => {
|
|
25
|
-
const { metadata } = response;
|
|
26
|
-
const { continue: continueToken } = metadata;
|
|
27
|
-
if (continueToken) {
|
|
28
|
-
const params = { ...initialParams, continue: continueToken };
|
|
29
|
-
return http.get(endpoint, { params });
|
|
30
|
-
}
|
|
31
|
-
return EMPTY; // No more pages
|
|
32
|
-
}), reduce((acc, current) => {
|
|
33
|
-
const { items: currentPageItems } = current;
|
|
34
|
-
if (currentPageItems) {
|
|
35
|
-
acc.items = acc.items.concat(currentPageItems);
|
|
36
|
-
}
|
|
37
|
-
return acc;
|
|
38
|
-
}));
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Fetches paginated Kubernetes resources by continually making requests
|
|
43
|
-
* until all pages have been retrieved.
|
|
44
|
-
*
|
|
45
|
-
* @template T The type of the items contained within the KubernetesList.
|
|
46
|
-
* @param http The HttpClient instance used to make the HTTP requests.
|
|
47
|
-
* @param endpoint The API endpoint to fetch the resources from.
|
|
48
|
-
* @param initialParams Optional initial parameters to include in the request.
|
|
49
|
-
* Can include query parameters like filters and pagination settings.
|
|
50
|
-
* `limit` and `continue` parameters are parameters for kubernetes
|
|
51
|
-
* @returns An observable that emits a single KubernetesList containing all items from all pages.
|
|
52
|
-
*/
|
|
53
|
-
export function fetchPaginatedKubernetesResources(http, endpoint, initialParams = {}) {
|
|
54
|
-
const initialRequest$ = http.get(endpoint, { params: initialParams });
|
|
55
|
-
return initialRequest$.pipe(expand((response) => {
|
|
56
|
-
const { metadata } = response;
|
|
57
|
-
const { continue: continueToken } = metadata;
|
|
58
|
-
if (continueToken) {
|
|
59
|
-
const params = { ...initialParams, continue: continueToken };
|
|
60
|
-
return http.get(endpoint, { params });
|
|
61
|
-
}
|
|
62
|
-
return EMPTY; // No more pages
|
|
63
|
-
}), reduce((acc, current) => {
|
|
64
|
-
const { items: currentPageItems } = current;
|
|
65
|
-
if (currentPageItems) {
|
|
66
|
-
acc.items = acc.items.concat(currentPageItems);
|
|
67
|
-
}
|
|
68
|
-
return acc;
|
|
69
|
-
}));
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3ViZXJuZXRlcy1wYWdpbmF0aW9uLm9wZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpZnQvc3JjL2xpYi9vcGVyYXRvcnMva3ViZXJuZXRlcy1wYWdpbmF0aW9uLm9wZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUdILE9BQU8sRUFBQyxLQUFLLEVBQUUsTUFBTSxFQUFnQyxNQUFNLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFJekU7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBTSxVQUFVLHFDQUFxQyxDQUNuRCxJQUFnQixFQUNoQixRQUFnQixFQUNoQixnQkFBMkYsRUFBRTtJQUU3RixPQUFPLENBQUMsT0FBc0MsRUFBRSxFQUFFO1FBQ2hELE9BQU8sT0FBTyxDQUFDLElBQUksQ0FDakIsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDbEIsTUFBTSxFQUFDLFFBQVEsRUFBQyxHQUFHLFFBQVEsQ0FBQztZQUM1QixNQUFNLEVBQUMsUUFBUSxFQUFFLGFBQWEsRUFBQyxHQUFHLFFBQVEsQ0FBQztZQUMzQyxJQUFJLGFBQWEsRUFBRSxDQUFDO2dCQUNsQixNQUFNLE1BQU0sR0FBRyxFQUFDLEdBQUcsYUFBYSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUMsQ0FBQztnQkFDM0QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFvQixRQUFRLEVBQUUsRUFBQyxNQUFNLEVBQUMsQ0FBQyxDQUFDO1lBQ3pELENBQUM7WUFDRCxPQUFPLEtBQUssQ0FBQyxDQUFDLGdCQUFnQjtRQUNoQyxDQUFDLENBQUMsRUFDRixNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDdEIsTUFBTSxFQUFDLEtBQUssRUFBRSxnQkFBZ0IsRUFBQyxHQUFHLE9BQU8sQ0FBQztZQUMxQyxJQUFJLGdCQUFnQixFQUFFLENBQUM7Z0JBQ3JCLEdBQUcsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUNqRCxDQUFDO1lBQ0QsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7Ozs7OztHQVdHO0FBRUgsTUFBTSxVQUFVLGlDQUFpQyxDQUMvQyxJQUFnQixFQUNoQixRQUFnQixFQUNoQixnQkFBMkYsRUFBRTtJQUU3RixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFvQixRQUFRLEVBQUUsRUFBQyxNQUFNLEVBQUUsYUFBYSxFQUFDLENBQUMsQ0FBQztJQUV2RixPQUFPLGVBQWUsQ0FBQyxJQUFJLENBQ3pCLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1FBQ2xCLE1BQU0sRUFBQyxRQUFRLEVBQUMsR0FBRyxRQUFRLENBQUM7UUFDNUIsTUFBTSxFQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUMsR0FBRyxRQUFRLENBQUM7UUFDM0MsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNsQixNQUFNLE1BQU0sR0FBRyxFQUFDLEdBQUcsYUFBYSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUMsQ0FBQztZQUMzRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQW9CLFFBQVEsRUFBRSxFQUFDLE1BQU0sRUFBQyxDQUFDLENBQUM7UUFDekQsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDLENBQUMsZ0JBQWdCO0lBQ2hDLENBQUMsQ0FBQyxFQUNGLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUN0QixNQUFNLEVBQUMsS0FBSyxFQUFFLGdCQUFnQixFQUFDLEdBQUcsT0FBTyxDQUFDO1FBQzFDLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUNyQixHQUFHLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDakQsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQyxDQUFDLENBQ0gsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjQgQnJvYWRjb20uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBCcm9hZGNvbSBDb25maWRlbnRpYWwuIFRoZSB0ZXJtIFwiQnJvYWRjb21cIiByZWZlcnMgdG8gQnJvYWRjb20gSW5jLlxuICogYW5kL29yIGl0cyBzdWJzaWRpYXJpZXMuXG4gKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG5pbXBvcnQge0h0dHBDbGllbnR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7RU1QVFksIGV4cGFuZCwgT2JzZXJ2YWJsZSwgT3BlcmF0b3JGdW5jdGlvbiwgcmVkdWNlfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtLdWJlcm5ldGVzTGlzdCwgS3ViZXJuZXRlc09iamVjdH0gZnJvbSAnLi4vbW9kZWxzJztcblxuLyoqXG4gKiBGZXRjaGVzIHBhZ2luYXRlZCBLdWJlcm5ldGVzIHJlc291cmNlcyBieSBjb250aW51YWxseSBtYWtpbmcgcmVxdWVzdHNcbiAqIHVudGlsIGFsbCBwYWdlcyBoYXZlIGJlZW4gcmV0cmlldmVkLCBhbmQgYWdncmVnYXRlcyB0aGUgaXRlbXMgZnJvbSBhbGwgcGFnZXNcbiAqIGludG8gYSBzaW5nbGUgS3ViZXJuZXRlc0xpc3QuXG4gKlxuICogQHRlbXBsYXRlIFQgVGhlIHR5cGUgb2YgdGhlIGl0ZW1zIGNvbnRhaW5lZCB3aXRoaW4gdGhlIEt1YmVybmV0ZXNMaXN0LlxuICogQHBhcmFtIGh0dHAgVGhlIEh0dHBDbGllbnQgaW5zdGFuY2UgdXNlZCB0byBtYWtlIHRoZSBIVFRQIHJlcXVlc3RzLlxuICogQHBhcmFtIGVuZHBvaW50IFRoZSBBUEkgZW5kcG9pbnQgdG8gZmV0Y2ggdGhlIHJlc291cmNlcyBmcm9tLlxuICogQHBhcmFtIGluaXRpYWxQYXJhbXMgT3B0aW9uYWwgaW5pdGlhbCBwYXJhbWV0ZXJzIHRvIGluY2x1ZGUgaW4gdGhlIHJlcXVlc3QuXG4gKiAgICAgICAgICAgICAgICAgICAgICBDYW4gaW5jbHVkZSBxdWVyeSBwYXJhbWV0ZXJzIGxpa2UgZmlsdGVycyBhbmQgcGFnaW5hdGlvbiBzZXR0aW5ncy5cbiAqIGBsaW1pdGAgYW5kIGBjb250aW51ZWAgcGFyYW1ldGVycyBhcmUgcGFyYW1ldGVycyBmb3Iga3ViZXJuZXRlc1xuICogQHJldHVybnMgQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGEgc2luZ2xlIEt1YmVybmV0ZXNMaXN0IGNvbnRhaW5pbmcgYWxsIGl0ZW1zIGZyb20gYWxsIHBhZ2VzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYWdncmVnYXRlUGFnaW5hdGVkS3ViZXJuZXRlc1Jlc291cmNlczxUIGV4dGVuZHMgS3ViZXJuZXRlc09iamVjdD4oXG4gIGh0dHA6IEh0dHBDbGllbnQsXG4gIGVuZHBvaW50OiBzdHJpbmcsXG4gIGluaXRpYWxQYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCAoc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbilbXT4gPSB7fSxcbik6IE9wZXJhdG9yRnVuY3Rpb248S3ViZXJuZXRlc0xpc3Q8VD4sIEt1YmVybmV0ZXNMaXN0PFQ+PiB7XG4gIHJldHVybiAoc291cmNlJDogT2JzZXJ2YWJsZTxLdWJlcm5ldGVzTGlzdDxUPj4pID0+IHtcbiAgICByZXR1cm4gc291cmNlJC5waXBlKFxuICAgICAgZXhwYW5kKChyZXNwb25zZSkgPT4ge1xuICAgICAgICBjb25zdCB7bWV0YWRhdGF9ID0gcmVzcG9uc2U7XG4gICAgICAgIGNvbnN0IHtjb250aW51ZTogY29udGludWVUb2tlbn0gPSBtZXRhZGF0YTtcbiAgICAgICAgaWYgKGNvbnRpbnVlVG9rZW4pIHtcbiAgICAgICAgICBjb25zdCBwYXJhbXMgPSB7Li4uaW5pdGlhbFBhcmFtcywgY29udGludWU6IGNvbnRpbnVlVG9rZW59O1xuICAgICAgICAgIHJldHVybiBodHRwLmdldDxLdWJlcm5ldGVzTGlzdDxUPj4oZW5kcG9pbnQsIHtwYXJhbXN9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gRU1QVFk7IC8vIE5vIG1vcmUgcGFnZXNcbiAgICAgIH0pLFxuICAgICAgcmVkdWNlKChhY2MsIGN1cnJlbnQpID0+IHtcbiAgICAgICAgY29uc3Qge2l0ZW1zOiBjdXJyZW50UGFnZUl0ZW1zfSA9IGN1cnJlbnQ7XG4gICAgICAgIGlmIChjdXJyZW50UGFnZUl0ZW1zKSB7XG4gICAgICAgICAgYWNjLml0ZW1zID0gYWNjLml0ZW1zLmNvbmNhdChjdXJyZW50UGFnZUl0ZW1zKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSksXG4gICAgKTtcbiAgfTtcbn1cblxuLyoqXG4gKiBGZXRjaGVzIHBhZ2luYXRlZCBLdWJlcm5ldGVzIHJlc291cmNlcyBieSBjb250aW51YWxseSBtYWtpbmcgcmVxdWVzdHNcbiAqIHVudGlsIGFsbCBwYWdlcyBoYXZlIGJlZW4gcmV0cmlldmVkLlxuICpcbiAqIEB0ZW1wbGF0ZSBUIFRoZSB0eXBlIG9mIHRoZSBpdGVtcyBjb250YWluZWQgd2l0aGluIHRoZSBLdWJlcm5ldGVzTGlzdC5cbiAqIEBwYXJhbSBodHRwIFRoZSBIdHRwQ2xpZW50IGluc3RhbmNlIHVzZWQgdG8gbWFrZSB0aGUgSFRUUCByZXF1ZXN0cy5cbiAqIEBwYXJhbSBlbmRwb2ludCBUaGUgQVBJIGVuZHBvaW50IHRvIGZldGNoIHRoZSByZXNvdXJjZXMgZnJvbS5cbiAqIEBwYXJhbSBpbml0aWFsUGFyYW1zIE9wdGlvbmFsIGluaXRpYWwgcGFyYW1ldGVycyB0byBpbmNsdWRlIGluIHRoZSByZXF1ZXN0LlxuICogICAgICAgICAgICAgICAgICAgICAgQ2FuIGluY2x1ZGUgcXVlcnkgcGFyYW1ldGVycyBsaWtlIGZpbHRlcnMgYW5kIHBhZ2luYXRpb24gc2V0dGluZ3MuXG4gKiBgbGltaXRgIGFuZCBgY29udGludWVgIHBhcmFtZXRlcnMgYXJlIHBhcmFtZXRlcnMgZm9yIGt1YmVybmV0ZXNcbiAqIEByZXR1cm5zIEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyBhIHNpbmdsZSBLdWJlcm5ldGVzTGlzdCBjb250YWluaW5nIGFsbCBpdGVtcyBmcm9tIGFsbCBwYWdlcy5cbiAqL1xuXG5leHBvcnQgZnVuY3Rpb24gZmV0Y2hQYWdpbmF0ZWRLdWJlcm5ldGVzUmVzb3VyY2VzPFQgZXh0ZW5kcyBLdWJlcm5ldGVzT2JqZWN0PihcbiAgaHR0cDogSHR0cENsaWVudCxcbiAgZW5kcG9pbnQ6IHN0cmluZyxcbiAgaW5pdGlhbFBhcmFtczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IChzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuKVtdPiA9IHt9LFxuKSB7XG4gIGNvbnN0IGluaXRpYWxSZXF1ZXN0JCA9IGh0dHAuZ2V0PEt1YmVybmV0ZXNMaXN0PFQ+PihlbmRwb2ludCwge3BhcmFtczogaW5pdGlhbFBhcmFtc30pO1xuXG4gIHJldHVybiBpbml0aWFsUmVxdWVzdCQucGlwZShcbiAgICBleHBhbmQoKHJlc3BvbnNlKSA9PiB7XG4gICAgICBjb25zdCB7bWV0YWRhdGF9ID0gcmVzcG9uc2U7XG4gICAgICBjb25zdCB7Y29udGludWU6IGNvbnRpbnVlVG9rZW59ID0gbWV0YWRhdGE7XG4gICAgICBpZiAoY29udGludWVUb2tlbikge1xuICAgICAgICBjb25zdCBwYXJhbXMgPSB7Li4uaW5pdGlhbFBhcmFtcywgY29udGludWU6IGNvbnRpbnVlVG9rZW59O1xuICAgICAgICByZXR1cm4gaHR0cC5nZXQ8S3ViZXJuZXRlc0xpc3Q8VD4+KGVuZHBvaW50LCB7cGFyYW1zfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gRU1QVFk7IC8vIE5vIG1vcmUgcGFnZXNcbiAgICB9KSxcbiAgICByZWR1Y2UoKGFjYywgY3VycmVudCkgPT4ge1xuICAgICAgY29uc3Qge2l0ZW1zOiBjdXJyZW50UGFnZUl0ZW1zfSA9IGN1cnJlbnQ7XG4gICAgICBpZiAoY3VycmVudFBhZ2VJdGVtcykge1xuICAgICAgICBhY2MuaXRlbXMgPSBhY2MuaXRlbXMuY29uY2F0KGN1cnJlbnRQYWdlSXRlbXMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9KSxcbiAgKTtcbn1cbiJdfQ==
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { pipe, tap } from 'rxjs';
|
|
2
|
-
// Map each LoggerType to its corresponding console function
|
|
3
|
-
const loggerFunctions = {
|
|
4
|
-
count: console.count.bind(console),
|
|
5
|
-
debug: console.debug.bind(console),
|
|
6
|
-
dir: console.dir.bind(console),
|
|
7
|
-
log: console.log.bind(console),
|
|
8
|
-
table: console.table.bind(console),
|
|
9
|
-
};
|
|
10
|
-
/**
|
|
11
|
-
* Logger operator for RxJS observables.
|
|
12
|
-
*
|
|
13
|
-
* @param loggerType The type of logger to be used: 'count', 'debug', 'dir', 'log', 'table'.
|
|
14
|
-
* Defaults to 'log' if not provided or if an unknown type is specified.
|
|
15
|
-
* @returns An RxJS operator function that logs values using the specified console function.
|
|
16
|
-
*/
|
|
17
|
-
export const logger = (loggerType = 'log') => pipe(tap((value) => {
|
|
18
|
-
const logFunction = loggerFunctions[loggerType] || console.log.bind(console);
|
|
19
|
-
logFunction(value);
|
|
20
|
-
}));
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLm9wZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpZnQvc3JjL2xpYi9vcGVyYXRvcnMvbG9nZ2VyLm9wZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBbUIsSUFBSSxFQUFFLEdBQUcsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQVNqRCw0REFBNEQ7QUFDNUQsTUFBTSxlQUFlLEdBQXdDO0lBQzNELEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDbEMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUNsQyxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQzlCLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDOUIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztDQUNuQyxDQUFDO0FBRUY7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLENBQUksYUFBeUIsS0FBSyxFQUEwQixFQUFFLENBQ2xGLElBQUksQ0FDRixHQUFHLENBQUMsQ0FBQyxLQUFRLEVBQUUsRUFBRTtJQUNmLE1BQU0sV0FBVyxHQUFHLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3RSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDckIsQ0FBQyxDQUFDLENBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7T3BlcmF0b3JGdW5jdGlvbiwgcGlwZSwgdGFwfSBmcm9tICdyeGpzJztcblxuLy8gRGVmaW5lIGEgdHlwZSBmb3IgZGlmZmVyZW50IGxvZ2dlciBmdW5jdGlvbnNcbnR5cGUgTG9nZ2VyVHlwZSA9ICdjb3VudCcgfCAnZGVidWcnIHwgJ2RpcicgfCAnbG9nJyB8ICd0YWJsZSc7XG5cbi8vIERlZmluZSBhIG1vcmUgcGVybWlzc2l2ZSB0eXBlIGZvciBjb25zb2xlIGZ1bmN0aW9uc1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbnR5cGUgQ29uc29sZUZ1bmN0aW9uID0gKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkO1xuXG4vLyBNYXAgZWFjaCBMb2dnZXJUeXBlIHRvIGl0cyBjb3JyZXNwb25kaW5nIGNvbnNvbGUgZnVuY3Rpb25cbmNvbnN0IGxvZ2dlckZ1bmN0aW9uczogUmVjb3JkPExvZ2dlclR5cGUsIENvbnNvbGVGdW5jdGlvbj4gPSB7XG4gIGNvdW50OiBjb25zb2xlLmNvdW50LmJpbmQoY29uc29sZSksXG4gIGRlYnVnOiBjb25zb2xlLmRlYnVnLmJpbmQoY29uc29sZSksXG4gIGRpcjogY29uc29sZS5kaXIuYmluZChjb25zb2xlKSxcbiAgbG9nOiBjb25zb2xlLmxvZy5iaW5kKGNvbnNvbGUpLFxuICB0YWJsZTogY29uc29sZS50YWJsZS5iaW5kKGNvbnNvbGUpLFxufTtcblxuLyoqXG4gKiBMb2dnZXIgb3BlcmF0b3IgZm9yIFJ4SlMgb2JzZXJ2YWJsZXMuXG4gKlxuICogQHBhcmFtIGxvZ2dlclR5cGUgVGhlIHR5cGUgb2YgbG9nZ2VyIHRvIGJlIHVzZWQ6ICdjb3VudCcsICdkZWJ1ZycsICdkaXInLCAnbG9nJywgJ3RhYmxlJy5cbiAqICAgICAgICAgICAgICAgICAgIERlZmF1bHRzIHRvICdsb2cnIGlmIG5vdCBwcm92aWRlZCBvciBpZiBhbiB1bmtub3duIHR5cGUgaXMgc3BlY2lmaWVkLlxuICogQHJldHVybnMgQW4gUnhKUyBvcGVyYXRvciBmdW5jdGlvbiB0aGF0IGxvZ3MgdmFsdWVzIHVzaW5nIHRoZSBzcGVjaWZpZWQgY29uc29sZSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IGxvZ2dlciA9IDxUPihsb2dnZXJUeXBlOiBMb2dnZXJUeXBlID0gJ2xvZycpOiBPcGVyYXRvckZ1bmN0aW9uPFQsIFQ+ID0+XG4gIHBpcGUoXG4gICAgdGFwKCh2YWx1ZTogVCkgPT4ge1xuICAgICAgY29uc3QgbG9nRnVuY3Rpb24gPSBsb2dnZXJGdW5jdGlvbnNbbG9nZ2VyVHlwZV0gfHwgY29uc29sZS5sb2cuYmluZChjb25zb2xlKTtcbiAgICAgIGxvZ0Z1bmN0aW9uKHZhbHVlKTtcbiAgICB9KSxcbiAgKTtcbiJdfQ==
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { toObservable } from '@angular/core/rxjs-interop';
|
|
2
|
-
import { catchError, EMPTY, exhaustMap, from, isObservable, map, merge, of, share, startWith, timer, } from 'rxjs';
|
|
3
|
-
import { isPromise } from '../utils/is-promise.util';
|
|
4
|
-
export function poll(options) {
|
|
5
|
-
const timerEmitValue = '__timer__emission__';
|
|
6
|
-
const timer$ = timer(options.delay || 0, options.interval).pipe(map((i) => `${timerEmitValue}${i}`));
|
|
7
|
-
const trigger$ = options.forceRefresh === undefined
|
|
8
|
-
? EMPTY
|
|
9
|
-
: isObservable(options.forceRefresh)
|
|
10
|
-
? options.forceRefresh
|
|
11
|
-
: toObservable(options.forceRefresh);
|
|
12
|
-
let inputByForceRefresh = undefined; // if forceRefresh is not provided, input will be undefined
|
|
13
|
-
return merge(trigger$, timer$).pipe(exhaustMap((input) => {
|
|
14
|
-
// input can be either by forceRefresh or timer
|
|
15
|
-
const isTimerTrigger = typeof input === 'string' && input.includes(timerEmitValue);
|
|
16
|
-
const isManualTrigger = !isTimerTrigger;
|
|
17
|
-
if (isManualTrigger) {
|
|
18
|
-
inputByForceRefresh = input;
|
|
19
|
-
}
|
|
20
|
-
// build params by input
|
|
21
|
-
// if paramsBuilder is provided, params will be the value of this function call
|
|
22
|
-
// if paramsBuilder is not provided, params will be the value emitted by the forceRefresh
|
|
23
|
-
const params = options.paramsBuilder ? options.paramsBuilder(inputByForceRefresh) : inputByForceRefresh;
|
|
24
|
-
// NOTE: using exhaustMap will NOT emit ${timerEmitValue}0 if forceRefresh is not provided
|
|
25
|
-
// using concatMap will emit ${timerEmitValue}0 if forceRefresh is not provided
|
|
26
|
-
const isFirstRequest = input === `${timerEmitValue}0`; // timer first emission when forceRefresh is not provided
|
|
27
|
-
const fnResult = options.pollingFn(params);
|
|
28
|
-
const fnResult$ = isObservable(fnResult) ? fnResult : isPromise(fnResult) ? from(fnResult) : of(fnResult);
|
|
29
|
-
let observable$ = fnResult$.pipe(map((data) => ({ loading: false, error: null, data })), catchError((error) => of({ loading: false, error, data: null })));
|
|
30
|
-
if (isFirstRequest) {
|
|
31
|
-
observable$ = observable$.pipe(startWith(options.initialValue ?? { loading: true, error: null, data: null }));
|
|
32
|
-
}
|
|
33
|
-
if (isManualTrigger) {
|
|
34
|
-
observable$ = observable$.pipe(startWith({ loading: true, error: null, data: null }));
|
|
35
|
-
}
|
|
36
|
-
return observable$;
|
|
37
|
-
}), share());
|
|
38
|
-
}
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9sbC5vcGVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWZ0L3NyYy9saWIvb3BlcmF0b3JzL3BvbGwub3BlcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFDTCxVQUFVLEVBQ1YsS0FBSyxFQUNMLFVBQVUsRUFDVixJQUFJLEVBQ0osWUFBWSxFQUNaLEdBQUcsRUFDSCxLQUFLLEVBRUwsRUFBRSxFQUNGLEtBQUssRUFDTCxTQUFTLEVBQ1QsS0FBSyxHQUNOLE1BQU0sTUFBTSxDQUFDO0FBR2QsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBMkNuRCxNQUFNLFVBQVUsSUFBSSxDQUFjLE9BT2pDO0lBQ0MsTUFBTSxjQUFjLEdBQUcscUJBQXFCLENBQUM7SUFDN0MsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLGNBQWMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFckcsTUFBTSxRQUFRLEdBQ1osT0FBTyxDQUFDLFlBQVksS0FBSyxTQUFTO1FBQ2hDLENBQUMsQ0FBQyxLQUFLO1FBQ1AsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDO1lBQ2xDLENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWTtZQUN0QixDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUUzQyxJQUFJLG1CQUFtQixHQUFzQixTQUFTLENBQUMsQ0FBQywyREFBMkQ7SUFFbkgsT0FBTyxLQUFLLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FDakMsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDbkIsK0NBQStDO1FBQy9DLE1BQU0sY0FBYyxHQUFHLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ25GLE1BQU0sZUFBZSxHQUFHLENBQUMsY0FBYyxDQUFDO1FBQ3hDLElBQUksZUFBZSxFQUFFLENBQUM7WUFDcEIsbUJBQW1CLEdBQUcsS0FBYyxDQUFDO1FBQ3ZDLENBQUM7UUFFRCx3QkFBd0I7UUFDeEIsK0VBQStFO1FBQy9FLHlGQUF5RjtRQUN6RixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLG1CQUE0QixDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDO1FBRWpILDBGQUEwRjtRQUMxRiwrRUFBK0U7UUFDL0UsTUFBTSxjQUFjLEdBQUcsS0FBSyxLQUFLLEdBQUcsY0FBYyxHQUFHLENBQUMsQ0FBQyx5REFBeUQ7UUFFaEgsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzQyxNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUUxRyxJQUFJLFdBQVcsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUM5QixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxFQUNwRCxVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDLENBQy9ELENBQUM7UUFFRixJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQ25CLFdBQVcsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUM1QixTQUFTLENBQUMsT0FBTyxDQUFDLFlBQVksSUFBSyxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFTLENBQUMsQ0FDckYsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ3BCLFdBQVcsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RGLENBQUM7UUFFRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDLENBQUMsRUFDRixLQUFLLEVBQUUsQ0FDUixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7U2lnbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dG9PYnNlcnZhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1xuICBjYXRjaEVycm9yLFxuICBFTVBUWSxcbiAgZXhoYXVzdE1hcCxcbiAgZnJvbSxcbiAgaXNPYnNlcnZhYmxlLFxuICBtYXAsXG4gIG1lcmdlLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgc2hhcmUsXG4gIHN0YXJ0V2l0aCxcbiAgdGltZXIsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge0FzeW5jU3RhdGV9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQge2lzUHJvbWlzZX0gZnJvbSAnLi4vdXRpbHMvaXMtcHJvbWlzZS51dGlsJztcblxuLyoqXG4gKiBQb2xscyBkYXRhIGF0IGEgc3BlY2lmaWVkIGludGVydmFsIGFuZCBjYW4gYmUgdHJpZ2dlcmVkIG1hbnVhbGx5LCBhbmQgcmV0dXJucyBhbiBvYnNlcnZhYmxlIHRoYXRcbiAqIGVtaXRzIHRoZSByZXN1bHQgb2YgdGhlIHBvbGwgYXMgYW4gYEFzeW5jU3RhdGVgIG9iamVjdC5cbiAqXG4gKiBAdGVtcGxhdGUgRGF0YSAtIFRoZSB0eXBlIG9mIHRoZSBkYXRhIGVtaXR0ZWQgYnkgdGhlIHBvbGxpbmcgZnVuY3Rpb24uXG4gKiBAdGVtcGxhdGUgSW5wdXQgLSBUaGUgdHlwZSBvZiB0aGUgaW5wdXQgcGFyYW1ldGVyIHVzZWQgdG8gYnVpbGQgcG9sbGluZyBwYXJhbWV0ZXJzLlxuICogQHBhcmFtIG9wdGlvbnMuaW50ZXJ2YWwgLSBUaGUgaW50ZXJ2YWwgaW4gbWlsbGlzZWNvbmRzIGJldHdlZW4gZWFjaCBwb2xsLlxuICogQHBhcmFtIG9wdGlvbnMucG9sbGluZ0ZuIC0gQSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gT2JzZXJ2YWJsZSwgUHJvbWlzZSwgb3IgcHJpbWl0aXZlIHZhbHVlLlxuICogQHBhcmFtIG9wdGlvbnMuZm9yY2VSZWZyZXNoIC0gQW4gb3B0aW9uYWwgT2JzZXJ2YWJsZSBvciBTaWduYWwgdGhhdCB0cmlnZ2VycyBhIG1hbnVhbCByZWZyZXNoIG9mIHRoZSBwb2xsaW5nIGZ1bmN0aW9uLlxuICogQHBhcmFtIG9wdGlvbnMucGFyYW1zQnVpbGRlciAtIEFuIG9wdGlvbmFsIGZ1bmN0aW9uIHRoYXQgYnVpbGRzIHBhcmFtZXRlcnMgZm9yIHRoZSBwb2xsaW5nIGZ1bmN0aW9uIGJhc2VkIG9uIHRoZSBpbnB1dC4gVGhlIHZhbHVlIGVtaXR0ZWQgYnkgdGhlIGZvcmNlUmVmcmVzaCBvYnNlcnZhYmxlIHdpbGwgc2VydmUgYXMgdGhlIHBhcmFtZXRlci5cbiAqIEBwYXJhbSBvcHRpb25zLmluaXRpYWxWYWx1ZSAtIEFuIGluaXRpYWwgdmFsdWUgdG8gcmV0dXJuIGJlZm9yZSB0aGUgZmlyc3QgcG9sbC5cbiAqIEBwYXJhbSBvcHRpb25zLmRlbGF5IC0gQW4gb3B0aW9uYWwgZGVsYXksIGluIG1pbGxpc2Vjb25kcywgdG8gd2FpdCBiZWZvcmUgc3RhcnRpbmcgdGhlIGZpcnN0IHBvbGwuXG4gKlxuICogQHJldHVybnMgQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXN1bHQgb2YgdGhlIHBvbGwgYXMgYW4gYEFzeW5jU3RhdGVgIG9iamVjdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBvbGw8RGF0YT4ob3B0aW9uczoge1xuICBpbnRlcnZhbDogbnVtYmVyO1xuICBwb2xsaW5nRm46IChwYXJhbXM6IGFueSkgPT4gT2JzZXJ2YWJsZTxEYXRhPiB8IFByb21pc2U8RGF0YT4gfCBEYXRhO1xuICBpbml0aWFsVmFsdWU/OiBBc3luY1N0YXRlPERhdGE+O1xuICBkZWxheT86IG51bWJlcjtcbn0pOiBPYnNlcnZhYmxlPEFzeW5jU3RhdGU8RGF0YT4+O1xuXG4vLyBmb3JjZVJlZnJlc2ggb3V0cHV0IGlzIHRoZSBwb2xsaW5nRm4gcGFyYW1zJyBpbnB1dFxuZXhwb3J0IGZ1bmN0aW9uIHBvbGw8RGF0YSwgSW5wdXQ+KG9wdGlvbnM6IHtcbiAgaW50ZXJ2YWw6IG51bWJlcjtcbiAgcG9sbGluZ0ZuOiAocGFyYW1zOiBJbnB1dCkgPT4gT2JzZXJ2YWJsZTxEYXRhPiB8IFByb21pc2U8RGF0YT4gfCBEYXRhO1xuICBmb3JjZVJlZnJlc2g6IE9ic2VydmFibGU8SW5wdXQ+IHwgU2lnbmFsPElucHV0PjtcbiAgaW5pdGlhbFZhbHVlPzogQXN5bmNTdGF0ZTxEYXRhPjtcbiAgZGVsYXk/OiBudW1iZXI7XG59KTogT2JzZXJ2YWJsZTxBc3luY1N0YXRlPERhdGE+PjtcblxuLy8gcGFyYW1zQnVpbGRlciBleGlzdHMsIGZvcmNlUmVmcmVzaCBvdXRwdXQgaXMgdGhlIHBhcmFtc0J1aWxkZXIgcGFyYW1zJyBpbnB1dFxuZXhwb3J0IGZ1bmN0aW9uIHBvbGw8RGF0YSwgSW5wdXQ+KG9wdGlvbnM6IHtcbiAgaW50ZXJ2YWw6IG51bWJlcjtcbiAgcG9sbGluZ0ZuOiAocGFyYW1zOiBhbnkpID0+IE9ic2VydmFibGU8RGF0YT4gfCBQcm9taXNlPERhdGE+IHwgRGF0YTtcbiAgZm9yY2VSZWZyZXNoOiBPYnNlcnZhYmxlPElucHV0PiB8IFNpZ25hbDxJbnB1dD47XG4gIHBhcmFtc0J1aWxkZXI6IChpbnB1dDogSW5wdXQpID0+IGFueTtcbiAgaW5pdGlhbFZhbHVlPzogQXN5bmNTdGF0ZTxEYXRhPjtcbiAgZGVsYXk/OiBudW1iZXI7XG59KTogT2JzZXJ2YWJsZTxBc3luY1N0YXRlPERhdGE+PjtcblxuZXhwb3J0IGZ1bmN0aW9uIHBvbGw8RGF0YSwgSW5wdXQ+KG9wdGlvbnM6IHtcbiAgaW50ZXJ2YWw6IG51bWJlcjtcbiAgcG9sbGluZ0ZuOiAocGFyYW1zOiBhbnkpID0+IE9ic2VydmFibGU8RGF0YT4gfCBQcm9taXNlPERhdGE+IHwgRGF0YTtcbiAgZm9yY2VSZWZyZXNoPzogT2JzZXJ2YWJsZTxJbnB1dD4gfCBTaWduYWw8SW5wdXQ+O1xuICBwYXJhbXNCdWlsZGVyPzogKGlucHV0OiBJbnB1dCkgPT4gYW55O1xuICBpbml0aWFsVmFsdWU/OiBBc3luY1N0YXRlPERhdGE+O1xuICBkZWxheT86IG51bWJlcjtcbn0pOiBPYnNlcnZhYmxlPEFzeW5jU3RhdGU8RGF0YT4+IHtcbiAgY29uc3QgdGltZXJFbWl0VmFsdWUgPSAnX190aW1lcl9fZW1pc3Npb25fXyc7XG4gIGNvbnN0IHRpbWVyJCA9IHRpbWVyKG9wdGlvbnMuZGVsYXkgfHwgMCwgb3B0aW9ucy5pbnRlcnZhbCkucGlwZShtYXAoKGkpID0+IGAke3RpbWVyRW1pdFZhbHVlfSR7aX1gKSk7XG5cbiAgY29uc3QgdHJpZ2dlciQgPVxuICAgIG9wdGlvbnMuZm9yY2VSZWZyZXNoID09PSB1bmRlZmluZWRcbiAgICAgID8gRU1QVFlcbiAgICAgIDogaXNPYnNlcnZhYmxlKG9wdGlvbnMuZm9yY2VSZWZyZXNoKVxuICAgICAgICA/IG9wdGlvbnMuZm9yY2VSZWZyZXNoXG4gICAgICAgIDogdG9PYnNlcnZhYmxlKG9wdGlvbnMuZm9yY2VSZWZyZXNoKTtcblxuICBsZXQgaW5wdXRCeUZvcmNlUmVmcmVzaDogSW5wdXQgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7IC8vIGlmIGZvcmNlUmVmcmVzaCBpcyBub3QgcHJvdmlkZWQsIGlucHV0IHdpbGwgYmUgdW5kZWZpbmVkXG5cbiAgcmV0dXJuIG1lcmdlKHRyaWdnZXIkLCB0aW1lciQpLnBpcGUoXG4gICAgZXhoYXVzdE1hcCgoaW5wdXQpID0+IHtcbiAgICAgIC8vIGlucHV0IGNhbiBiZSBlaXRoZXIgYnkgZm9yY2VSZWZyZXNoIG9yIHRpbWVyXG4gICAgICBjb25zdCBpc1RpbWVyVHJpZ2dlciA9IHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycgJiYgaW5wdXQuaW5jbHVkZXModGltZXJFbWl0VmFsdWUpO1xuICAgICAgY29uc3QgaXNNYW51YWxUcmlnZ2VyID0gIWlzVGltZXJUcmlnZ2VyO1xuICAgICAgaWYgKGlzTWFudWFsVHJpZ2dlcikge1xuICAgICAgICBpbnB1dEJ5Rm9yY2VSZWZyZXNoID0gaW5wdXQgYXMgSW5wdXQ7XG4gICAgICB9XG5cbiAgICAgIC8vIGJ1aWxkIHBhcmFtcyBieSBpbnB1dFxuICAgICAgLy8gaWYgcGFyYW1zQnVpbGRlciBpcyBwcm92aWRlZCwgcGFyYW1zIHdpbGwgYmUgdGhlIHZhbHVlIG9mIHRoaXMgZnVuY3Rpb24gY2FsbFxuICAgICAgLy8gaWYgcGFyYW1zQnVpbGRlciBpcyBub3QgcHJvdmlkZWQsIHBhcmFtcyB3aWxsIGJlIHRoZSB2YWx1ZSBlbWl0dGVkIGJ5IHRoZSBmb3JjZVJlZnJlc2hcbiAgICAgIGNvbnN0IHBhcmFtcyA9IG9wdGlvbnMucGFyYW1zQnVpbGRlciA/IG9wdGlvbnMucGFyYW1zQnVpbGRlcihpbnB1dEJ5Rm9yY2VSZWZyZXNoIGFzIElucHV0KSA6IGlucHV0QnlGb3JjZVJlZnJlc2g7XG5cbiAgICAgIC8vIE5PVEU6IHVzaW5nIGV4aGF1c3RNYXAgd2lsbCBOT1QgZW1pdCAke3RpbWVyRW1pdFZhbHVlfTAgaWYgZm9yY2VSZWZyZXNoIGlzIG5vdCBwcm92aWRlZFxuICAgICAgLy8gdXNpbmcgY29uY2F0TWFwIHdpbGwgZW1pdCAke3RpbWVyRW1pdFZhbHVlfTAgaWYgZm9yY2VSZWZyZXNoIGlzIG5vdCBwcm92aWRlZFxuICAgICAgY29uc3QgaXNGaXJzdFJlcXVlc3QgPSBpbnB1dCA9PT0gYCR7dGltZXJFbWl0VmFsdWV9MGA7IC8vIHRpbWVyIGZpcnN0IGVtaXNzaW9uIHdoZW4gZm9yY2VSZWZyZXNoIGlzIG5vdCBwcm92aWRlZFxuXG4gICAgICBjb25zdCBmblJlc3VsdCA9IG9wdGlvbnMucG9sbGluZ0ZuKHBhcmFtcyk7XG4gICAgICBjb25zdCBmblJlc3VsdCQgPSBpc09ic2VydmFibGUoZm5SZXN1bHQpID8gZm5SZXN1bHQgOiBpc1Byb21pc2UoZm5SZXN1bHQpID8gZnJvbShmblJlc3VsdCkgOiBvZihmblJlc3VsdCk7XG5cbiAgICAgIGxldCBvYnNlcnZhYmxlJCA9IGZuUmVzdWx0JC5waXBlKFxuICAgICAgICBtYXAoKGRhdGEpID0+ICh7bG9hZGluZzogZmFsc2UsIGVycm9yOiBudWxsLCBkYXRhfSkpLFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4gb2Yoe2xvYWRpbmc6IGZhbHNlLCBlcnJvciwgZGF0YTogbnVsbH0pKSxcbiAgICAgICk7XG5cbiAgICAgIGlmIChpc0ZpcnN0UmVxdWVzdCkge1xuICAgICAgICBvYnNlcnZhYmxlJCA9IG9ic2VydmFibGUkLnBpcGUoXG4gICAgICAgICAgc3RhcnRXaXRoKG9wdGlvbnMuaW5pdGlhbFZhbHVlID8/ICh7bG9hZGluZzogdHJ1ZSwgZXJyb3I6IG51bGwsIGRhdGE6IG51bGx9IGFzIGFueSkpLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKGlzTWFudWFsVHJpZ2dlcikge1xuICAgICAgICBvYnNlcnZhYmxlJCA9IG9ic2VydmFibGUkLnBpcGUoc3RhcnRXaXRoKHtsb2FkaW5nOiB0cnVlLCBlcnJvcjogbnVsbCwgZGF0YTogbnVsbH0pKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG9ic2VydmFibGUkO1xuICAgIH0pLFxuICAgIHNoYXJlKCksXG4gICk7XG59XG4iXX0=
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Operator that taps into a callback before the source Observable starts emitting values.
|
|
3
|
-
*
|
|
4
|
-
* This operator is useful for triggering a side effect before the main Observable starts emitting.
|
|
5
|
-
*
|
|
6
|
-
* @param callback A function to be executed before the source Observable emits its first value.
|
|
7
|
-
* @returns An RxJS operator function that taps into the callback and then switchMaps to the source Observable.
|
|
8
|
-
*/
|
|
9
|
-
export function startWithTap(callback) {
|
|
10
|
-
return (source) => {
|
|
11
|
-
callback();
|
|
12
|
-
return source;
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnQtd2l0aC10YXAub3BlcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGlmdC9zcmMvbGliL29wZXJhdG9ycy9zdGFydC13aXRoLXRhcC5vcGVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBSSxRQUFvQjtJQUNsRCxPQUFPLENBQUMsTUFBcUIsRUFBRSxFQUFFO1FBQy9CLFFBQVEsRUFBRSxDQUFDO1FBQ1gsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogT3BlcmF0b3IgdGhhdCB0YXBzIGludG8gYSBjYWxsYmFjayBiZWZvcmUgdGhlIHNvdXJjZSBPYnNlcnZhYmxlIHN0YXJ0cyBlbWl0dGluZyB2YWx1ZXMuXG4gKlxuICogVGhpcyBvcGVyYXRvciBpcyB1c2VmdWwgZm9yIHRyaWdnZXJpbmcgYSBzaWRlIGVmZmVjdCBiZWZvcmUgdGhlIG1haW4gT2JzZXJ2YWJsZSBzdGFydHMgZW1pdHRpbmcuXG4gKlxuICogQHBhcmFtIGNhbGxiYWNrIEEgZnVuY3Rpb24gdG8gYmUgZXhlY3V0ZWQgYmVmb3JlIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSBlbWl0cyBpdHMgZmlyc3QgdmFsdWUuXG4gKiBAcmV0dXJucyBBbiBSeEpTIG9wZXJhdG9yIGZ1bmN0aW9uIHRoYXQgdGFwcyBpbnRvIHRoZSBjYWxsYmFjayBhbmQgdGhlbiBzd2l0Y2hNYXBzIHRvIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0YXJ0V2l0aFRhcDxUPihjYWxsYmFjazogKCkgPT4gdm9pZCkge1xuICByZXR1cm4gKHNvdXJjZTogT2JzZXJ2YWJsZTxUPikgPT4ge1xuICAgIGNhbGxiYWNrKCk7XG4gICAgcmV0dXJuIHNvdXJjZTtcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { switchMap } from 'rxjs';
|
|
2
|
-
import { createAsyncState } from './create-async-state.operator';
|
|
3
|
-
/**
|
|
4
|
-
* Custom RxJS operator that uses switchMap to handle asynchronous operations and
|
|
5
|
-
* transforms the emitted values into an AsyncState object.
|
|
6
|
-
*
|
|
7
|
-
* @template T - The type of data emitted by the observable returned by the project.
|
|
8
|
-
* @template K - The type of value emitted by the source observable.
|
|
9
|
-
* @template E - The type of error that can be encountered during the asynchronous operation.
|
|
10
|
-
*
|
|
11
|
-
* @param {function(K): Observable<T>} project - A function that takes a value emitted by the source
|
|
12
|
-
* observable and returns an observable representing an asynchronous operation.
|
|
13
|
-
*
|
|
14
|
-
* @returns {OperatorFunction<K, AsyncState<T, E>>} - An RxJS operator that transforms the source observable into
|
|
15
|
-
* an observable of AsyncState objects.
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* // Usage of the switchMapWithAsyncState operator
|
|
19
|
-
* const source$ = new BehaviorSubject<number>(1);
|
|
20
|
-
*
|
|
21
|
-
* const asyncOperation = (value: number) => {
|
|
22
|
-
* return of(value * 2).pipe(delay(1000));
|
|
23
|
-
* };
|
|
24
|
-
*
|
|
25
|
-
* const result$ = source$.pipe(switchMapWithAsyncState(asyncOperation));
|
|
26
|
-
* result$.subscribe((state) => {
|
|
27
|
-
* console.log(state); // Outputs AsyncState objects with loading, data, and error properties.
|
|
28
|
-
* });
|
|
29
|
-
*/
|
|
30
|
-
export function switchMapWithAsyncState(project) {
|
|
31
|
-
return (source) => source.pipe(switchMap((value, index) => project(value, index).pipe(createAsyncState())));
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLW1hcC13aXRoLWFzeW5jLXN0YXRlLm9wZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpZnQvc3JjL2xpYi9vcGVyYXRvcnMvc3dpdGNoLW1hcC13aXRoLWFzeW5jLXN0YXRlLm9wZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBK0IsU0FBUyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRzdELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBRS9EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBCRztBQUNILE1BQU0sVUFBVSx1QkFBdUIsQ0FDckMsT0FBbUQ7SUFFbkQsT0FBTyxDQUFDLE1BQXFCLEVBQUUsRUFBRSxDQUMvQixNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cEVycm9yUmVzcG9uc2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgT3BlcmF0b3JGdW5jdGlvbiwgc3dpdGNoTWFwfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtBc3luY1N0YXRlfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHtjcmVhdGVBc3luY1N0YXRlfSBmcm9tICcuL2NyZWF0ZS1hc3luYy1zdGF0ZS5vcGVyYXRvcic7XG5cbi8qKlxuICogQ3VzdG9tIFJ4SlMgb3BlcmF0b3IgdGhhdCB1c2VzIHN3aXRjaE1hcCB0byBoYW5kbGUgYXN5bmNocm9ub3VzIG9wZXJhdGlvbnMgYW5kXG4gKiB0cmFuc2Zvcm1zIHRoZSBlbWl0dGVkIHZhbHVlcyBpbnRvIGFuIEFzeW5jU3RhdGUgb2JqZWN0LlxuICpcbiAqIEB0ZW1wbGF0ZSBUIC0gVGhlIHR5cGUgb2YgZGF0YSBlbWl0dGVkIGJ5IHRoZSBvYnNlcnZhYmxlIHJldHVybmVkIGJ5IHRoZSBwcm9qZWN0LlxuICogQHRlbXBsYXRlIEsgLSBUaGUgdHlwZSBvZiB2YWx1ZSBlbWl0dGVkIGJ5IHRoZSBzb3VyY2Ugb2JzZXJ2YWJsZS5cbiAqIEB0ZW1wbGF0ZSBFIC0gVGhlIHR5cGUgb2YgZXJyb3IgdGhhdCBjYW4gYmUgZW5jb3VudGVyZWQgZHVyaW5nIHRoZSBhc3luY2hyb25vdXMgb3BlcmF0aW9uLlxuICpcbiAqIEBwYXJhbSB7ZnVuY3Rpb24oSyk6IE9ic2VydmFibGU8VD59IHByb2plY3QgLSBBIGZ1bmN0aW9uIHRoYXQgdGFrZXMgYSB2YWx1ZSBlbWl0dGVkIGJ5IHRoZSBzb3VyY2VcbiAqIG9ic2VydmFibGUgYW5kIHJldHVybnMgYW4gb2JzZXJ2YWJsZSByZXByZXNlbnRpbmcgYW4gYXN5bmNocm9ub3VzIG9wZXJhdGlvbi5cbiAqXG4gKiBAcmV0dXJucyB7T3BlcmF0b3JGdW5jdGlvbjxLLCBBc3luY1N0YXRlPFQsIEU+Pn0gLSBBbiBSeEpTIG9wZXJhdG9yIHRoYXQgdHJhbnNmb3JtcyB0aGUgc291cmNlIG9ic2VydmFibGUgaW50b1xuICogYW4gb2JzZXJ2YWJsZSBvZiBBc3luY1N0YXRlIG9iamVjdHMuXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFVzYWdlIG9mIHRoZSBzd2l0Y2hNYXBXaXRoQXN5bmNTdGF0ZSBvcGVyYXRvclxuICogY29uc3Qgc291cmNlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigxKTtcbiAqXG4gKiBjb25zdCBhc3luY09wZXJhdGlvbiA9ICh2YWx1ZTogbnVtYmVyKSA9PiB7XG4gKiAgIHJldHVybiBvZih2YWx1ZSAqIDIpLnBpcGUoZGVsYXkoMTAwMCkpO1xuICogfTtcbiAqXG4gKiBjb25zdCByZXN1bHQkID0gc291cmNlJC5waXBlKHN3aXRjaE1hcFdpdGhBc3luY1N0YXRlKGFzeW5jT3BlcmF0aW9uKSk7XG4gKiByZXN1bHQkLnN1YnNjcmliZSgoc3RhdGUpID0+IHtcbiAqICAgY29uc29sZS5sb2coc3RhdGUpOyAvLyBPdXRwdXRzIEFzeW5jU3RhdGUgb2JqZWN0cyB3aXRoIGxvYWRpbmcsIGRhdGEsIGFuZCBlcnJvciBwcm9wZXJ0aWVzLlxuICogfSk7XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzd2l0Y2hNYXBXaXRoQXN5bmNTdGF0ZTxULCBLLCBFID0gSHR0cEVycm9yUmVzcG9uc2U+KFxuICBwcm9qZWN0OiAodmFsdWU6IEssIGluZGV4OiBudW1iZXIpID0+IE9ic2VydmFibGU8VD4sXG4pOiBPcGVyYXRvckZ1bmN0aW9uPEssIEFzeW5jU3RhdGU8VCwgRT4+IHtcbiAgcmV0dXJuIChzb3VyY2U6IE9ic2VydmFibGU8Sz4pID0+XG4gICAgc291cmNlLnBpcGUoc3dpdGNoTWFwKCh2YWx1ZSwgaW5kZXgpID0+IHByb2plY3QodmFsdWUsIGluZGV4KS5waXBlKGNyZWF0ZUFzeW5jU3RhdGU8VCwgRT4oKSkpKTtcbn1cbiJdfQ==
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class ArrayJoinPipe {
|
|
4
|
-
transform(value, separator = ',') {
|
|
5
|
-
if (Array.isArray(value)) {
|
|
6
|
-
return value.join(separator);
|
|
7
|
-
}
|
|
8
|
-
// For non-array cases or unexpected types, return the value as is
|
|
9
|
-
return value;
|
|
10
|
-
}
|
|
11
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArrayJoinPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
12
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ArrayJoinPipe, isStandalone: true, name: "arrayJoin" }); }
|
|
13
|
-
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArrayJoinPipe, decorators: [{
|
|
15
|
-
type: Pipe,
|
|
16
|
-
args: [{
|
|
17
|
-
name: 'arrayJoin',
|
|
18
|
-
standalone: true,
|
|
19
|
-
}]
|
|
20
|
-
}] });
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktam9pbi5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpZnQvc3JjL2xpYi9waXBlcy9hcnJheS1qb2luLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLElBQUksRUFBZ0IsTUFBTSxlQUFlLENBQUM7O0FBTWxELE1BQU0sT0FBTyxhQUFhO0lBQ3hCLFNBQVMsQ0FBQyxLQUFjLEVBQUUsWUFBb0IsR0FBRztRQUMvQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN6QixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUVELGtFQUFrRTtRQUNsRSxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7K0dBUlUsYUFBYTs2R0FBYixhQUFhOzs0RkFBYixhQUFhO2tCQUp6QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxXQUFXO29CQUNqQixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1BpcGUsIFBpcGVUcmFuc2Zvcm19IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdhcnJheUpvaW4nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBBcnJheUpvaW5QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybSh2YWx1ZTogdW5rbm93biwgc2VwYXJhdG9yOiBzdHJpbmcgPSAnLCcpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5qb2luKHNlcGFyYXRvcik7XG4gICAgfVxuXG4gICAgLy8gRm9yIG5vbi1hcnJheSBjYXNlcyBvciB1bmV4cGVjdGVkIHR5cGVzLCByZXR1cm4gdGhlIHZhbHVlIGFzIGlzXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59XG4iXX0=
|